From 01ff2c51d130643d39bc7183ab51c5853a7b4915 Mon Sep 17 00:00:00 2001 From: cdujeu Date: Fri, 7 Dec 2018 08:59:58 +0100 Subject: [PATCH] Last build --- .../gui.ajax/res/build/PydioComponents.js | 43 +++++++++++++----- .../gui.ajax/res/build/PydioComponents.min.js | 18 ++++---- .../res/build/PydioComponents.min.js.gz | Bin 548814 -> 548861 bytes 3 files changed, 40 insertions(+), 21 deletions(-) diff --git a/frontend/front-srv/assets/gui.ajax/res/build/PydioComponents.js b/frontend/front-srv/assets/gui.ajax/res/build/PydioComponents.js index 93564a0227..38f03d74fe 100644 --- a/frontend/front-srv/assets/gui.ajax/res/build/PydioComponents.js +++ b/frontend/front-srv/assets/gui.ajax/res/build/PydioComponents.js @@ -177839,6 +177839,18 @@ var Pydio = (function (_Observable) { return Pydio.instance; }; + /** + * Return current pydio version + * @return {*} + */ + + Pydio.getVersion = function getVersion() { + if (Pydio.instance && Pydio.instance.Parameters && Pydio.instance.Parameters.get("backend")) { + return Pydio.instance.Parameters.get("backend")["Version"]; + } + return ""; + }; + /** * Direct access to unique instance MessageHash * @return {{}} @@ -180055,7 +180067,6 @@ var PydioWebSocket = (function () { } if (target.getPath() === "" || target.getPath() === "/") { // This is probably a new cell folder - dm.getRootNode().reload(); break; } dm.addNode(target, false); @@ -180216,6 +180227,10 @@ var _utilXMLUtils = require('../util/XMLUtils'); var _utilXMLUtils2 = _interopRequireDefault(_utilXMLUtils); +var _Pydio = require('../Pydio'); + +var _Pydio2 = _interopRequireDefault(_Pydio); + var SystemJS = require('systemjs'); /** @@ -180384,10 +180399,10 @@ var ResourcesManager = (function () { ResourcesManager.prototype.loadCSSResource = function loadCSSResource(fileName) { - if (pydio.Parameters.get('SERVER_PREFIX_URI')) { - fileName = pydio.Parameters.get('SERVER_PREFIX_URI') + fileName; + if (_Pydio2['default'].getInstance().Parameters.get('SERVER_PREFIX_URI')) { + fileName = _Pydio2['default'].getInstance().Parameters.get('SERVER_PREFIX_URI') + fileName; } - fileName = fileName + "?v=" + pydio.Parameters.get("ajxpVersion"); + fileName = fileName + "?v=" + _Pydio2['default'].getVersion(); var found = false; var links = document.getElementsByTagName('link'); @@ -180433,7 +180448,7 @@ var ResourcesManager = (function () { } } } else if (node.nodeName === "clientForm" && node.firstChild) { - if (!node.getAttribute("theme") || node.getAttribute("theme") === pydio.Parameters.get("theme")) { + if (!node.getAttribute("theme") || node.getAttribute("theme") === _Pydio2['default'].getInstance().Parameters.get("theme")) { clForm = { formId: node.getAttribute("id"), formCode: node.firstChild.nodeValue }; } } @@ -180497,8 +180512,9 @@ var ResourcesManager = (function () { var registry = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0]; if (!registry) { - registry = window.pydio.Registry.getXML(); + registry = _Pydio2['default'].getInstance().Registry.getXML(); } + var version = _Pydio2['default'].getVersion(); var manager = new ResourcesManager(); var jsNodes = _utilXMLUtils2['default'].XPathSelectNodes(registry, 'plugins/*/client_settings/resources/js'); var node = undefined; @@ -180527,7 +180543,7 @@ var ResourcesManager = (function () { if (node.getAttribute('expose')) { ResourcesManager.__requires[node.getAttribute('expose')] = namespace; } - sysjsMap[namespace] = filepath; + sysjsMap[namespace] = filepath + "?v=" + version; sysjsMeta[namespace] = { format: 'global', deps: deps }; } SystemJS.config({ map: sysjsMap, meta: sysjsMeta }); @@ -180665,7 +180681,7 @@ ResourcesManager.__requires = {}; exports['default'] = ResourcesManager; module.exports = exports['default']; -},{"../util/XMLUtils":768,"systemjs":"systemjs"}],518:[function(require,module,exports){ +},{"../Pydio":511,"../util/XMLUtils":768,"systemjs":"systemjs"}],518:[function(require,module,exports){ /* * Copyright 2007-2018 Charles du Jeu - Abstrium SAS * This file is part of Pydio. @@ -212010,7 +212026,7 @@ var AjxpNode = (function (_Observable) { */ AjxpNode.prototype.getLabel = function getLabel() { - return this._label; + return this._label || ""; }; /** @@ -212034,7 +212050,7 @@ var AjxpNode = (function (_Observable) { */ AjxpNode.prototype.isRecycle = function isRecycle() { - return this.getAjxpMime() == 'ajxp_recycle'; + return this.getAjxpMime() === 'ajxp_recycle'; }; /** @@ -213621,9 +213637,12 @@ var MetaNodeProvider = (function () { MetaNodeProvider.parseTreeNode = function parseTreeNode(obj, workspaceSlug) { var defaultSlug = arguments.length <= 2 || arguments[2] === undefined ? '' : arguments[2]; - if (!obj || !obj.MetaStore) { + if (!obj) { return null; } + if (!obj.MetaStore) { + obj.MetaStore = {}; + } var pydio = _pydio2['default'].getInstance(); var nodeName = undefined; @@ -230428,4 +230447,4 @@ exports.FoldersTree = FoldersTree; },{"../util/DND":824,"pydio":"pydio","react":"react"}]},{},[784])(784) }); -//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2FwaS5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2Jhc2UvYnVmZmVyLmpzIiwibm9kZV9tb2R1bGVzL2FzbjEuanMvbGliL2FzbjEvYmFzZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2Jhc2Uvbm9kZS5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2Jhc2UvcmVwb3J0ZXIuanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS9jb25zdGFudHMvZGVyLmpzIiwibm9kZV9tb2R1bGVzL2FzbjEuanMvbGliL2FzbjEvY29uc3RhbnRzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzbjEuanMvbGliL2FzbjEvZGVjb2RlcnMvZGVyLmpzIiwibm9kZV9tb2R1bGVzL2FzbjEuanMvbGliL2FzbjEvZGVjb2RlcnMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS9kZWNvZGVycy9wZW0uanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS9lbmNvZGVycy9kZXIuanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS9lbmNvZGVycy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2VuY29kZXJzL3BlbS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYWNtLTIwMTUtMTItMDgubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2FjbS0yMDE1LTEyLTA4LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYWNtLTIwMTUtMTItMDgud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYXBpZ2F0ZXdheS0yMDE1LTA3LTA5Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9hcGlnYXRld2F5LTIwMTUtMDctMDkucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9hcHBsaWNhdGlvbi1hdXRvc2NhbGluZy0yMDE2LTAyLTA2Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9hcHBsaWNhdGlvbi1hdXRvc2NhbGluZy0yMDE2LTAyLTA2LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYXV0b3NjYWxpbmctMjAxMS0wMS0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYXV0b3NjYWxpbmctMjAxMS0wMS0wMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Nsb3VkZm9ybWF0aW9uLTIwMTAtMDUtMTUubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Nsb3VkZm9ybWF0aW9uLTIwMTAtMDUtMTUucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jbG91ZGZvcm1hdGlvbi0yMDEwLTA1LTE1LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Nsb3VkZnJvbnQtMjAxNi0xMS0yNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWRmcm9udC0yMDE2LTExLTI1LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWRmcm9udC0yMDE2LTExLTI1LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Nsb3VkZnJvbnQtMjAxNy0wMy0yNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWRmcm9udC0yMDE3LTAzLTI1LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWRmcm9udC0yMDE3LTEwLTMwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jbG91ZGhzbS0yMDE0LTA1LTMwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jbG91ZGhzbS0yMDE0LTA1LTMwLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWR0cmFpbC0yMDEzLTExLTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jbG91ZHRyYWlsLTIwMTMtMTEtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2RlYnVpbGQtMjAxNi0xMC0wNi5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY29kZWNvbW1pdC0yMDE1LTA0LTEzLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2RlY29tbWl0LTIwMTUtMDQtMTMucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2RlZGVwbG95LTIwMTQtMTAtMDYubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2NvZGVkZXBsb3ktMjAxNC0xMC0wNi5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2NvZGVkZXBsb3ktMjAxNC0xMC0wNi53YWl0ZXJzMi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2RlcGlwZWxpbmUtMjAxNS0wNy0wOS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY29nbml0by1pZGVudGl0eS0yMDE0LTA2LTMwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2duaXRvLWlkcC0yMDE2LTA0LTE4Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2duaXRvLXN5bmMtMjAxNC0wNi0zMC5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY29uZmlnLTIwMTQtMTEtMTIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2NvbmZpZy0yMDE0LTExLTEyLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY3VyLTIwMTctMDEtMDYubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2N1ci0yMDE3LTAxLTA2LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZGV2aWNlZmFybS0yMDE1LTA2LTIzLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9kZXZpY2VmYXJtLTIwMTUtMDYtMjMucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9kaXJlY3Rjb25uZWN0LTIwMTItMTAtMjUubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2RpcmVjdGNvbm5lY3QtMjAxMi0xMC0yNS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2R5bmFtb2RiLTIwMTEtMTItMDUubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2R5bmFtb2RiLTIwMTEtMTItMDUucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9keW5hbW9kYi0yMDExLTEyLTA1LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2R5bmFtb2RiLTIwMTItMDgtMTAubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VjMi0yMDE2LTExLTE1Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lYzItMjAxNi0xMS0xNS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VjMi0yMDE2LTExLTE1LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Vjci0yMDE1LTA5LTIxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lY3ItMjAxNS0wOS0yMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Vjcy0yMDE0LTExLTEzLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lY3MtMjAxNC0xMS0xMy5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Vjcy0yMDE0LTExLTEzLndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWNhY2hlLTIwMTUtMDItMDIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWNhY2hlLTIwMTUtMDItMDIucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljYWNoZS0yMDE1LTAyLTAyLndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWNiZWFuc3RhbGstMjAxMC0xMi0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2JlYW5zdGFsay0yMDEwLTEyLTAxLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2ZpbGVzeXN0ZW0tMjAxNS0wMi0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmctMjAxMi0wNi0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmctMjAxMi0wNi0wMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWNsb2FkYmFsYW5jaW5nLTIwMTItMDYtMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi0yMDE1LTEyLTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZ3YyLTIwMTUtMTItMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZ3YyLTIwMTUtMTItMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY21hcHJlZHVjZS0yMDA5LTAzLTMxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljbWFwcmVkdWNlLTIwMDktMDMtMzEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljbWFwcmVkdWNlLTIwMDktMDMtMzEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY3RyYW5zY29kZXItMjAxMi0wOS0yNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY3RyYW5zY29kZXItMjAxMi0wOS0yNS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWN0cmFuc2NvZGVyLTIwMTItMDktMjUud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZW1haWwtMjAxMC0xMi0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZW1haWwtMjAxMC0xMi0wMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VtYWlsLTIwMTAtMTItMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZXZlbnRzLTIwMTUtMTAtMDcubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2ZpcmVob3NlLTIwMTUtMDgtMDQubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2dhbWVsaWZ0LTIwMTUtMTAtMDEubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2luc3BlY3Rvci0yMDE2LTAyLTE2Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9pbnNwZWN0b3ItMjAxNi0wMi0xNi5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2lvdC0yMDE1LTA1LTI4Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9pb3QtZGF0YS0yMDE1LTA1LTI4Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9raW5lc2lzLTIwMTMtMTItMDIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2tpbmVzaXMtMjAxMy0xMi0wMi5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2tpbmVzaXMtMjAxMy0xMi0wMi53YWl0ZXJzMi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9rbXMtMjAxNC0xMS0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMva21zLTIwMTQtMTEtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9sYW1iZGEtMjAxNC0xMS0xMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbGFtYmRhLTIwMTQtMTEtMTEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9sYW1iZGEtMjAxNS0wMy0zMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbGFtYmRhLTIwMTUtMDMtMzEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9sZXgtbW9kZWxzLTIwMTctMDQtMTkubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2xleC1tb2RlbHMtMjAxNy0wNC0xOS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2xvZ3MtMjAxNC0wMy0yOC5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbG9ncy0yMDE0LTAzLTI4LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbWFjaGluZWxlYXJuaW5nLTIwMTQtMTItMTIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL21hY2hpbmVsZWFybmluZy0yMDE0LTEyLTEyLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbWFjaGluZWxlYXJuaW5nLTIwMTQtMTItMTIud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbWFya2V0cGxhY2Vjb21tZXJjZWFuYWx5dGljcy0yMDE1LTA3LTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9tZXRhZGF0YS5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9tb2JpbGVhbmFseXRpY3MtMjAxNC0wNi0wNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbW9uaXRvcmluZy0yMDEwLTA4LTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9tb25pdG9yaW5nLTIwMTAtMDgtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9tb25pdG9yaW5nLTIwMTAtMDgtMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbXR1cmstcmVxdWVzdGVyLTIwMTctMDEtMTcubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL210dXJrLXJlcXVlc3Rlci0yMDE3LTAxLTE3LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvb3Bzd29ya3MtMjAxMy0wMi0xOC5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvb3Bzd29ya3MtMjAxMy0wMi0xOC5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL29wc3dvcmtzLTIwMTMtMDItMTgud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcG9sbHktMjAxNi0wNi0xMC5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcmRzLTIwMTMtMDEtMTAubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDEzLTAxLTEwLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcmRzLTIwMTMtMDItMTIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDEzLTAyLTEyLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcmRzLTIwMTMtMDktMDkubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDEzLTA5LTA5LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDE0LTA5LTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZHMtMjAxNC0wOS0wMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDE0LTEwLTMxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZHMtMjAxNC0xMC0zMS53YWl0ZXJzMi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZWRzaGlmdC0yMDEyLTEyLTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZWRzaGlmdC0yMDEyLTEyLTAxLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcmVkc2hpZnQtMjAxMi0xMi0wMS53YWl0ZXJzMi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZWtvZ25pdGlvbi0yMDE2LTA2LTI3Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZWtvZ25pdGlvbi0yMDE2LTA2LTI3LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcm91dGU1My0yMDEzLTA0LTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yb3V0ZTUzLTIwMTMtMDQtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yb3V0ZTUzLTIwMTMtMDQtMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcm91dGU1M2RvbWFpbnMtMjAxNC0wNS0xNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcm91dGU1M2RvbWFpbnMtMjAxNC0wNS0xNS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3J1bnRpbWUubGV4LTIwMTYtMTEtMjgubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3MzLTIwMDYtMDMtMDEubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3MzLTIwMDYtMDMtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zMy0yMDA2LTAzLTAxLndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3NlcnZpY2VjYXRhbG9nLTIwMTUtMTItMTAubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3NlcnZpY2VjYXRhbG9nLTIwMTUtMTItMTAucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zbnMtMjAxMC0wMy0zMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvc25zLTIwMTAtMDMtMzEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zcXMtMjAxMi0xMS0wNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvc3FzLTIwMTItMTEtMDUucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zc20tMjAxNC0xMS0wNi5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvc3NtLTIwMTQtMTEtMDYucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zdG9yYWdlZ2F0ZXdheS0yMDEzLTA2LTMwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zdG9yYWdlZ2F0ZXdheS0yMDEzLTA2LTMwLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvc3RyZWFtcy5keW5hbW9kYi0yMDEyLTA4LTEwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zdHMtMjAxMS0wNi0xNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvd2FmLTIwMTUtMDgtMjQubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3dvcmtkb2NzLTIwMTYtMDUtMDEubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3dvcmtkb2NzLTIwMTYtMDUtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9hY20uanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2FwaWdhdGV3YXkuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2FwcGxpY2F0aW9uYXV0b3NjYWxpbmcuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2F1dG9zY2FsaW5nLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9icm93c2VyX2RlZmF1bHQuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2Nsb3VkZm9ybWF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9jbG91ZGZyb250LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9jbG91ZGhzbS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY2xvdWR0cmFpbC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY2xvdWR3YXRjaC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY2xvdWR3YXRjaGV2ZW50cy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY2xvdWR3YXRjaGxvZ3MuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2NvZGVidWlsZC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY29kZWNvbW1pdC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY29kZWRlcGxveS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY29kZXBpcGVsaW5lLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9jb2duaXRvaWRlbnRpdHkuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2NvZ25pdG9pZGVudGl0eXNlcnZpY2Vwcm92aWRlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY29nbml0b3N5bmMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2NvbmZpZ3NlcnZpY2UuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2N1ci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZGV2aWNlZmFybS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZGlyZWN0Y29ubmVjdC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZHluYW1vZGIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2R5bmFtb2Ric3RyZWFtcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWMyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9lY3IuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2Vjcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWZzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9lbGFzdGljYWNoZS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWxhc3RpY2JlYW5zdGFsay5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWxhc3RpY3RyYW5zY29kZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2VsYi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWxidjIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2Vtci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZmlyZWhvc2UuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2dhbWVsaWZ0LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9pbnNwZWN0b3IuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2lvdC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvaW90ZGF0YS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMva2luZXNpcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMva21zLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9sYW1iZGEuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2xleG1vZGVsYnVpbGRpbmdzZXJ2aWNlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9sZXhydW50aW1lLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9tYWNoaW5lbGVhcm5pbmcuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL21hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3MuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL21vYmlsZWFuYWx5dGljcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvbXR1cmsuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL29wc3dvcmtzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9wb2xseS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvcmRzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9yZWRzaGlmdC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvcmVrb2duaXRpb24uanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3JvdXRlNTMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3JvdXRlNTNkb21haW5zLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9zMy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvc2VydmljZWNhdGFsb2cuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3Nlcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvc25zLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9zcXMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3NzbS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvc3RvcmFnZWdhdGV3YXkuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3N0cy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvd2FmLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy93b3JrZG9jcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9hcGlfbG9hZGVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvYnJvd3NlckNyeXB0b0xpYi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9icm93c2VySGFzaFV0aWxzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2Jyb3dzZXJIbWFjLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2Jyb3dzZXJNZDUuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvYnJvd3NlclNoYTEuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvYnJvd3NlclNoYTI1Ni5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9icm93c2VyX2xvYWRlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jbG91ZGZyb250L3NpZ25lci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jb25maWcuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvY29yZS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jcmVkZW50aWFscy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jcmVkZW50aWFscy9jb2duaXRvX2lkZW50aXR5X2NyZWRlbnRpYWxzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxfcHJvdmlkZXJfY2hhaW4uanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvY3JlZGVudGlhbHMvc2FtbF9jcmVkZW50aWFscy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jcmVkZW50aWFscy90ZW1wb3JhcnlfY3JlZGVudGlhbHMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvY3JlZGVudGlhbHMvd2ViX2lkZW50aXR5X2NyZWRlbnRpYWxzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2R5bmFtb2RiL2NvbnZlcnRlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9keW5hbW9kYi9kb2N1bWVudF9jbGllbnQuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZHluYW1vZGIvbnVtYmVyVmFsdWUuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZHluYW1vZGIvc2V0LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2R5bmFtb2RiL3RyYW5zbGF0b3IuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZHluYW1vZGIvdHlwZXMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZXZlbnQtc3RyZWFtL2J1ZmZlcmVkLWNyZWF0ZS1ldmVudC1zdHJlYW0uanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZXZlbnQtc3RyZWFtL2V2ZW50LW1lc3NhZ2UtY2h1bmtlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9ldmVudC1zdHJlYW0vaW50NjQuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZXZlbnQtc3RyZWFtL3BhcnNlLWV2ZW50LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2V2ZW50LXN0cmVhbS9wYXJzZS1tZXNzYWdlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2V2ZW50LXN0cmVhbS9zcGxpdC1tZXNzYWdlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2V2ZW50LXN0cmVhbS90by1idWZmZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZXZlbnRfbGlzdGVuZXJzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2h0dHAuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvaHR0cC94aHIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvanNvbi9idWlsZGVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2pzb24vcGFyc2VyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL21vZGVsL2FwaS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9tb2RlbC9jb2xsZWN0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL21vZGVsL29wZXJhdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9tb2RlbC9wYWdpbmF0b3IuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvbW9kZWwvcmVzb3VyY2Vfd2FpdGVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL21vZGVsL3NoYXBlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3BhcmFtX3ZhbGlkYXRvci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9wb2xseS9wcmVzaWduZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcHJvdG9jb2wvanNvbi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9wcm90b2NvbC9xdWVyeS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9wcm90b2NvbC9yZXN0LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3Byb3RvY29sL3Jlc3RfanNvbi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9wcm90b2NvbC9yZXN0X3htbC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9xdWVyeS9xdWVyeV9wYXJhbV9zZXJpYWxpemVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3Jkcy9zaWduZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcmVnaW9uX2NvbmZpZy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9yZWdpb25fY29uZmlnX2RhdGEuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9yZXF1ZXN0LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3Jlc291cmNlX3dhaXRlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9yZXNwb25zZS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zMy9tYW5hZ2VkX3VwbG9hZC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXF1ZW50aWFsX2V4ZWN1dG9yLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2UuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2VydmljZXMvYXBpZ2F0ZXdheS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9jbG91ZGZyb250LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL2NvZ25pdG9pZGVudGl0eS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9keW5hbW9kYi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9lYzIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2VydmljZXMvaW90ZGF0YS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9sYW1iZGEuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2VydmljZXMvbWFjaGluZWxlYXJuaW5nLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3BvbGx5LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3Jkcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9yb3V0ZTUzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3MzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3Nxcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9zdHMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2lnbmVycy9wcmVzaWduLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NpZ25lcnMvcmVxdWVzdF9zaWduZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2lnbmVycy9zMy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zaWduZXJzL3YyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NpZ25lcnMvdjMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2lnbmVycy92M2h0dHBzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NpZ25lcnMvdjQuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2lnbmVycy92NF9jcmVkZW50aWFscy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zdGF0ZV9tYWNoaW5lLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3V0aWwuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIveG1sL2Jyb3dzZXJfcGFyc2VyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3htbC9idWlsZGVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3htbC9lc2NhcGUtYXR0cmlidXRlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3htbC9lc2NhcGUtZWxlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi94bWwveG1sLW5vZGUuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIveG1sL3htbC10ZXh0LmpzIiwibm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ibi5qcy9saWIvYm4uanMiLCJub2RlX21vZHVsZXMvYnJvcmFuZC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyLXJlc29sdmUvZW1wdHkuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvYWVzLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL2F1dGhDaXBoZXIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LWFlcy9kZWNyeXB0ZXIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvZW5jcnlwdGVyLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL2doYXNoLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL2luY3IzMi5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LWFlcy9tb2Rlcy9jYmMuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvbW9kZXMvY2ZiLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL21vZGVzL2NmYjEuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvbW9kZXMvY2ZiOC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LWFlcy9tb2Rlcy9jdHIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvbW9kZXMvZWNiLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL21vZGVzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL21vZGVzL2xpc3QuanNvbiIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LWFlcy9tb2Rlcy9vZmIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvc3RyZWFtQ2lwaGVyLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktY2lwaGVyL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1kZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1kZXMvbW9kZXMuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1yc2EvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1zaWduL2FsZ29zLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktc2lnbi9icm93c2VyL2FsZ29yaXRobXMuanNvbiIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LXNpZ24vYnJvd3Nlci9jdXJ2ZXMuanNvbiIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LXNpZ24vYnJvd3Nlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LXNpZ24vYnJvd3Nlci9zaWduLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktc2lnbi9icm93c2VyL3ZlcmlmeS5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9iYXNlNjQtanMvbGliL2I2NC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL25vZGVfbW9kdWxlcy9pc2FycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2V2ZW50cy9ldmVudHMuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3N0cmluZ19kZWNvZGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2J1ZmZlci14b3IvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2NpcGhlci1iYXNlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2NvbXBvbmVudC1lbWl0dGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2NvcmUtdXRpbC1pcy9saWIvdXRpbC5qcyIsIm5vZGVfbW9kdWxlcy9jcmVhdGUtZWNkaC9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2NyZWF0ZS1oYXNoL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvY3JlYXRlLWhhc2gvbWQ1LmpzIiwibm9kZV9tb2R1bGVzL2NyZWF0ZS1obWFjL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvY3JlYXRlLWhtYWMvbGVnYWN5LmpzIiwibm9kZV9tb2R1bGVzL2NyeXB0by1icm93c2VyaWZ5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Rlcy5qcy9saWIvZGVzLmpzIiwibm9kZV9tb2R1bGVzL2Rlcy5qcy9saWIvZGVzL2NiYy5qcyIsIm5vZGVfbW9kdWxlcy9kZXMuanMvbGliL2Rlcy9jaXBoZXIuanMiLCJub2RlX21vZHVsZXMvZGVzLmpzL2xpYi9kZXMvZGVzLmpzIiwibm9kZV9tb2R1bGVzL2Rlcy5qcy9saWIvZGVzL2VkZS5qcyIsIm5vZGVfbW9kdWxlcy9kZXMuanMvbGliL2Rlcy91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9kaWZmaWUtaGVsbG1hbi9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2RpZmZpZS1oZWxsbWFuL2xpYi9kaC5qcyIsIm5vZGVfbW9kdWxlcy9kaWZmaWUtaGVsbG1hbi9saWIvZ2VuZXJhdGVQcmltZS5qcyIsIm5vZGVfbW9kdWxlcy9kaWZmaWUtaGVsbG1hbi9saWIvcHJpbWVzLmpzb24iLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljLmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9jdXJ2ZS9iYXNlLmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9jdXJ2ZS9lZHdhcmRzLmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9jdXJ2ZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvY3VydmUvbW9udC5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvY3VydmUvc2hvcnQuanMiLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljL2N1cnZlcy5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvZWMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljL2VjL2tleS5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvZWMvc2lnbmF0dXJlLmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9lZGRzYS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvZWRkc2Eva2V5LmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9lZGRzYS9zaWduYXR1cmUuanMiLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljL3ByZWNvbXB1dGVkL3NlY3AyNTZrMS5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvdXRpbHMuanMiLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvcGFja2FnZS5qc29uIiwibm9kZV9tb2R1bGVzL2V2cF9ieXRlc3Rva2V5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2hhc2gtYmFzZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoLmpzIiwibm9kZV9tb2R1bGVzL2hhc2guanMvbGliL2hhc2gvY29tbW9uLmpzIiwibm9kZV9tb2R1bGVzL2hhc2guanMvbGliL2hhc2gvaG1hYy5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3JpcGVtZC5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3NoYS5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3NoYS8xLmpzIiwibm9kZV9tb2R1bGVzL2hhc2guanMvbGliL2hhc2gvc2hhLzIyNC5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3NoYS8yNTYuanMiLCJub2RlX21vZHVsZXMvaGFzaC5qcy9saWIvaGFzaC9zaGEvMzg0LmpzIiwibm9kZV9tb2R1bGVzL2hhc2guanMvbGliL2hhc2gvc2hhLzUxMi5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3NoYS9jb21tb24uanMiLCJub2RlX21vZHVsZXMvaGFzaC5qcy9saWIvaGFzaC91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9obWFjLWRyYmcvbGliL2htYWMtZHJiZy5qcyIsIm5vZGVfbW9kdWxlcy9pZWVlNzU0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2luZGV4b2YvaW5kZXguanMiLCJub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9pcy1idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvam1lc3BhdGgvam1lc3BhdGguanMiLCJub2RlX21vZHVsZXMvbWQ1LmpzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL21pbGxlci1yYWJpbi9saWIvbXIuanMiLCJub2RlX21vZHVsZXMvbWluaW1hbGlzdGljLWFzc2VydC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9taW5pbWFsaXN0aWMtY3J5cHRvLXV0aWxzL2xpYi91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9tb21lbnQvbW9tZW50LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWFzbjEvYWVzaWQuanNvbiIsIm5vZGVfbW9kdWxlcy9wYXJzZS1hc24xL2FzbjEuanMiLCJub2RlX21vZHVsZXMvcGFyc2UtYXNuMS9jZXJ0aWZpY2F0ZS5qcyIsIm5vZGVfbW9kdWxlcy9wYXJzZS1hc24xL2ZpeFByb2MuanMiLCJub2RlX21vZHVsZXMvcGFyc2UtYXNuMS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wYmtkZjIvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9wYmtkZjIvbGliL2FzeW5jLmpzIiwibm9kZV9tb2R1bGVzL3Bia2RmMi9saWIvZGVmYXVsdC1lbmNvZGluZy5qcyIsIm5vZGVfbW9kdWxlcy9wYmtkZjIvbGliL3ByZWNvbmRpdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9wYmtkZjIvbGliL3N5bmMtYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9wcm9jZXNzLW5leHRpY2stYXJncy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wdWJsaWMtZW5jcnlwdC9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3B1YmxpYy1lbmNyeXB0L21nZi5qcyIsIm5vZGVfbW9kdWxlcy9wdWJsaWMtZW5jcnlwdC9wcml2YXRlRGVjcnlwdC5qcyIsIm5vZGVfbW9kdWxlcy9wdWJsaWMtZW5jcnlwdC9wdWJsaWNFbmNyeXB0LmpzIiwibm9kZV9tb2R1bGVzL3B1YmxpYy1lbmNyeXB0L3dpdGhQdWJsaWMuanMiLCJub2RlX21vZHVsZXMvcHVibGljLWVuY3J5cHQveG9yLmpzIiwibm9kZV9tb2R1bGVzL3B1bnljb2RlL3B1bnljb2RlLmpzIiwibm9kZV9tb2R1bGVzL3F1ZXJ5c3RyaW5nLWVzMy9kZWNvZGUuanMiLCJub2RlX21vZHVsZXMvcXVlcnlzdHJpbmctZXMzL2VuY29kZS5qcyIsIm5vZGVfbW9kdWxlcy9xdWVyeXN0cmluZy1lczMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcXVlcnlzdHJpbmcvZGVjb2RlLmpzIiwibm9kZV9tb2R1bGVzL3F1ZXJ5c3RyaW5nL2VuY29kZS5qcyIsIm5vZGVfbW9kdWxlcy9yYW5kb21ieXRlcy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3JhbmRvbWZpbGwvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGxiYXIvZGlzdC9zY3JvbGxBcmVhLmpzIiwibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9kdXBsZXgtYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fZHVwbGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV9wYXNzdGhyb3VnaC5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fcmVhZGFibGUuanMiLCJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3RyYW5zZm9ybS5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fd3JpdGFibGUuanMiLCJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL0J1ZmZlckxpc3QuanMiLCJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL2Rlc3Ryb3kuanMiLCJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbS1icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9wYXNzdGhyb3VnaC5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vcmVhZGFibGUtYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vdHJhbnNmb3JtLmpzIiwibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS93cml0YWJsZS1icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3JlY29ubmVjdGluZy13ZWJzb2NrZXQvZGlzdC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9yaXBlbWQxNjAvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc2FmZS1idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL2hhc2guanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3NoYS5qcy9zaGEuanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL3NoYTEuanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL3NoYTIyNC5qcyIsIm5vZGVfbW9kdWxlcy9zaGEuanMvc2hhMjU2LmpzIiwibm9kZV9tb2R1bGVzL3NoYS5qcy9zaGEzODQuanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL3NoYTUxMi5qcyIsIm5vZGVfbW9kdWxlcy9zdHJlYW0tYnJvd3NlcmlmeS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9zdHJpbmdfZGVjb2Rlci9saWIvc3RyaW5nX2RlY29kZXIuanMiLCJub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvYWdlbnQtYmFzZS5qcyIsIm5vZGVfbW9kdWxlcy9zdXBlcmFnZW50L2xpYi9jbGllbnQuanMiLCJub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvaXMtb2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbGliL3JlcXVlc3QtYmFzZS5qcyIsIm5vZGVfbW9kdWxlcy9zdXBlcmFnZW50L2xpYi9yZXNwb25zZS1iYXNlLmpzIiwibm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3VybC91cmwuanMiLCJub2RlX21vZHVsZXMvdXRpbC1kZXByZWNhdGUvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy91dGlsL3N1cHBvcnQvaXNCdWZmZXJCcm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3V0aWwvdXRpbC5qcyIsIm5vZGVfbW9kdWxlcy91dWlkL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3V1aWQvbGliL2J5dGVzVG9VdWlkLmpzIiwibm9kZV9tb2R1bGVzL3V1aWQvbGliL3JuZy1icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3V1aWQvdjEuanMiLCJub2RlX21vZHVsZXMvdXVpZC92NC5qcyIsIm5vZGVfbW9kdWxlcy91dWlkNC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy92bS1icm93c2VyaWZ5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3dpY2tlZC1nb29kLXhwYXRoL2Rpc3Qvd2d4cGF0aC5pbnN0YWxsLW5vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9QeWRpby5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvQ29ubmV4aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9JZG1BcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL01ldGFDYWNoZVNlcnZpY2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL1B5ZGlvQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9QeWRpb1dlYlNvY2tldC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvUmVzb3VyY2VzTWFuYWdlci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvUmVzdENsaWVudC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL0FwaUNsaWVudC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9BQ0xTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0FjdGl2aXR5U2VydmljZUFwaS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9BZG1pblRyZWVTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0NoYW5nZVNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvQ29uZmlnU2VydmljZUFwaS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9Gcm9udGVuZFNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvR3JhcGhTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0luc3RhbGxTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0pvYnNTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0xvZ1NlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvTWFpbGVyU2VydmljZUFwaS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9NZXRhU2VydmljZUFwaS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9Qb2xpY3lTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1JvbGVTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1NlYXJjaFNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvU2hhcmVTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1RlbXBsYXRlc1NlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvVG9rZW5TZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1RyZWVTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1VwZGF0ZVNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvVXNlck1ldGFTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1VzZXJTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1dvcmtzcGFjZVNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9pbmRleC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0FjdGl2aXR5T2JqZWN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQWN0aXZpdHlPYmplY3RUeXBlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQWN0aXZpdHlPd25lclR5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0FjdGl2aXR5U3RyZWFtQ29udGV4dC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0FjdGl2aXR5U3Vic2NyaXB0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9DdGxQZWVyLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQ3RsU2VydmljZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0N0bFNlcnZpY2VDb21tYW5kLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQ3RsU2VydmljZVN0YXR1cy5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uRXhwb3J0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvRW5jcnlwdGlvbkltcG9ydC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25LZXkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uS2V5SW5mby5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbUFDTC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbUFDTEFjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbUFDTFNpbmdsZVF1ZXJ5LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1Ob2RlVHlwZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVBvbGljeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVBvbGljeUNvbmRpdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVBvbGljeUVmZmVjdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVBvbGljeUdyb3VwLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtUG9saWN5UmVzb3VyY2VHcm91cC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVJvbGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1Sb2xlU2luZ2xlUXVlcnkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVVzZXIuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1Vc2VyTWV0YS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVVzZXJNZXRhTmFtZXNwYWNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtVXNlclNpbmdsZVF1ZXJ5LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtV29ya3NwYWNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtV29ya3NwYWNlU2NvcGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0luc3RhbGxDaGVja1Jlc3VsdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSW5zdGFsbEluc3RhbGxDb25maWcuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JbnN0YWxsSW5zdGFsbFJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Kb2JzQWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0FjdGlvbkxvZy5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0pvYnNBY3Rpb25NZXNzYWdlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0FjdGlvbk91dHB1dC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0pvYnNDb21tYW5kLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0N0cmxDb21tYW5kLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Kb2JzSm9iLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0xpc3RKb2JzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0pvYnNOb2Rlc1NlbGVjdG9yLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic1NjaGVkdWxlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic1NvdXJjZUZpbHRlci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0pvYnNUYXNrLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic1Rhc2tTdGF0dXMuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Kb2JzVXNlcnNTZWxlY3Rvci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0xpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Mb2dMaXN0TG9nUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0xvZ0xvZ01lc3NhZ2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9NYWlsZXJNYWlsLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvTWFpbGVyU2VuZE1haWxSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL01haWxlclVzZXIuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9PYmplY3REYXRhU291cmNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvT2JqZWN0RW5jcnlwdGlvbk1vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9PYmplY3RTdG9yYWdlVHlwZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1BhY2thZ2VQYWNrYWdlU3RhdHVzLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUHJvdG9idWZBbnkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdEFDTENvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdENlbGwuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0Q2VsbEFjbC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RDaGFuZ2VDb2xsZWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdENoYW5nZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0Q29uZmlndXJhdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RDb250cm9sU2VydmljZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REZWxldGVOb2Rlc1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REZWxldGVSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RFcnJvci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udEJpbmFyeVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udFN0YXRlUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0R2V0QnVsa01ldGFSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RNZXRhQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RNZXRhZGF0YS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFBhZ2luYXRpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSZWxhdGlvblJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UmV2b2tlUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSZXZva2VSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSb2xlc0NvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTZWFyY2hSZXN1bHRzLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2VydmljZUNvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2V0dGluZ3NFbnRyeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTZXR0aW5nc01lbnVSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTZXR0aW5nc1NlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2hhcmVMaW5rLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RUZW1wbGF0ZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RUZW1wbGF0ZU5vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0VXNlckpvYlJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0VXNlckpvYlJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFVzZXJKb2JzQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFVzZXJzQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvU2VydmljZU9wZXJhdGlvblR5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUXVlcnkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVDaGFuZ2VMb2cuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlR2VvUG9pbnQuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlR2VvUXVlcnkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlTGlzdE5vZGVzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVOb2RlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVHJlZU5vZGVDaGFuZ2VFdmVudC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVOb2RlVHlwZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVRdWVyeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVSZWFkTm9kZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVTZWFyY2hSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVHJlZVN5bmNDaGFuZ2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlU3luY0NoYW5nZU5vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlU3luY0NoYW5nZVR5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlVmVyc2lvbmluZ1BvbGljeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGguanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVXBkYXRlUGFja2FnZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcC5qcyIsInJlcy9idWlsZC9jb3JlL2xhbmcvTG9nZ2VyLmpzIiwicmVzL2J1aWxkL2NvcmUvbGFuZy9PYnNlcnZhYmxlLmpzIiwicmVzL2J1aWxkL2NvcmUvbW9kZWwvQWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvbW9kZWwvQWp4cE5vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9DZWxsTW9kZWwuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9Db250cm9sbGVyLmpzIiwicmVzL2J1aWxkL2NvcmUvbW9kZWwvRW1wdHlOb2RlUHJvdmlkZXIuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9JZG1PYmplY3RIZWxwZXIuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9NZXRhTm9kZVByb3ZpZGVyLmpzIiwicmVzL2J1aWxkL2NvcmUvbW9kZWwvUHlkaW9EYXRhTW9kZWwuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9SZWdpc3RyeS5qcyIsInJlcy9idWlsZC9jb3JlL21vZGVsL1JlcG9zaXRvcnkuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9Vc2VyLmpzIiwicmVzL2J1aWxkL2NvcmUvdXRpbC9BY3Rpdml0eU1vbml0b3IuanMiLCJyZXMvYnVpbGQvY29yZS91dGlsL0Z1bmNVdGlscy5qcyIsInJlcy9idWlsZC9jb3JlL3V0aWwvSGFzaGVyVXRpbHMuanMiLCJyZXMvYnVpbGQvY29yZS91dGlsL0xhbmdVdGlscy5qcyIsInJlcy9idWlsZC9jb3JlL3V0aWwvUGF0aFV0aWxzLmpzIiwicmVzL2J1aWxkL2NvcmUvdXRpbC9YTUxVdGlscy5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2NoYXQvQ2hhdC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2NoYXQvQ2hhdENsaWVudC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2NoYXQvQ2hhdEljb24uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9jaGF0L0NoYXRVc2Vycy5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2NoYXQvTWVzc2FnZS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2R5bmFtaWMtZ3JpZC9EeW5hbWljR3JpZC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2R5bmFtaWMtZ3JpZC9HcmlkQnVpbGRlci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2R5bmFtaWMtZ3JpZC9HcmlkSXRlbU1peGluLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvZHluYW1pYy1ncmlkL1N0b3JlLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvZHluYW1pYy1ncmlkL2FzR3JpZEl0ZW0uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lZGl0b3IvUGFwZXJFZGl0b3IuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lZGl0b3IvUmVhY3RFZGl0b3JPcGVuZXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lbGVtZW50cy9DbGlwYm9hcmRUZXh0RmllbGQuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lbGVtZW50cy9MYWJlbFdpdGhUaXAuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lbGVtZW50cy9TaW1wbGVGaWd1cmVCYWRnZS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2luZGV4LmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvbGlzdC9Db25maWd1cmFibGVMaXN0RW50cnkuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9saXN0L0lubGluZUVkaXRvci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvTGlzdEVudHJ5LmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvbGlzdC9MaXN0RW50cnlOb2RlTGlzdGVuZXJNaXhpbi5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvTGlzdFBhZ2luYXRvci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvTWF0ZXJpYWxUYWJsZS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvTm9kZUxpc3RDdXN0b21Qcm92aWRlci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvU2ltcGxlTGlzdC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvU29ydENvbHVtbnMuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9saXN0L1NvcnRhYmxlTGlzdC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvVGFibGVMaXN0RW50cnkuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9saXN0L1RhYmxlTGlzdEhlYWRlci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL21lbnUvQnV0dG9uQ29tcG9zZWQuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L0J1dHRvbk1lbnUuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L0NvbnRleHRNZW51LmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvbWVudS9JY29uQnV0dG9uTWVudS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL21lbnUvSWNvbkJ1dHRvblBvcG92ZXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L01lbnVJdGVtc0NvbnN1bWVyLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvbWVudS9Qb3B1cE1lbnUuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L1Rvb2xiYXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L1V0aWxzLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvcG9saWNpZXMvUmVzb3VyY2VQb2xpY2llc1BhbmVsLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvVGVhbUNyZWF0aW9uRm9ybS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL1VzZXJDcmVhdGlvbkZvcm0uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9Vc2Vyc0NvbXBsZXRlci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL2FkZHJlc3Nib29rL0FkZHJlc3NCb29rLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvYWRkcmVzc2Jvb2svQWxwaGFQYWdpbmF0b3IuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hZGRyZXNzYm9vay9Mb2FkZXJzLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvYWRkcmVzc2Jvb2svTmVzdGVkTGlzdEl0ZW0uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hZGRyZXNzYm9vay9SaWdodFBhbmVsQ2FyZC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL2FkZHJlc3Nib29rL1NlYXJjaEZvcm0uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hZGRyZXNzYm9vay9TZWFyY2hQYW5lbC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL2FkZHJlc3Nib29rL1RlYW1DYXJkLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvYWRkcmVzc2Jvb2svVXNlckNhcmQuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hZGRyZXNzYm9vay9Vc2Vyc0xpc3QuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hdmF0YXIvQWN0aW9uc1BhbmVsLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvYXZhdGFyL0NlbGxBY3Rpb25zUmVuZGVyZXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hdmF0YXIvR3JhcGhQYW5lbC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL2F2YXRhci9Vc2VyQXZhdGFyLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXRpbC9ETkQuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91dGlsL01lc3NhZ2VzQ29uc3VtZXJNaXhpbi5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3ZpZXdzL0VtcHR5U3RhdGVWaWV3LmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdmlld3MvTW9kYWxBcHBCYXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy92aWV3cy9TaW1wbGVSZWFjdEFjdGlvbkJhci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3ZpZXdzL1RyZWVWaWV3LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdlNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcmFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6c0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwckRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3L0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3YzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaDVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDL0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDcnhGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2poQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN6dEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcm5DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDajZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN2eENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3hoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2wzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzF1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3NkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDemtFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN21DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4cEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDM3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsNmNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5bUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlrREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbHBEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2b0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDblpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6K0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbHRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxc0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsaUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMzVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNoZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDcGdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNwckVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzNkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3REQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN6L0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcjBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdGFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1cUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbnREQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2wyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25sQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDcEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMza0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzV0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaHhDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ252RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDalNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3hQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4MkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1K0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNwbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3ckVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDN2pJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3N0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbDZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcmhGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1d0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDak9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoMEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2g5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeG5CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2cEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeDVJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNyUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzFQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUM1bUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcDFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUMvT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDbkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNWhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbE9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNkQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbllBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDL0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNyeUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNubUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOWlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUM3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDNzZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuMkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqRUE7O0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcE9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUMvTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUMzQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDeENBO0FBQ0E7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDM0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDakpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQzVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzVnREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN1NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDN05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzd2REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ25LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUM1SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNoUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3BLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdlhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaFBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNXdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDbm9EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDakpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxNUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDeEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDMUdBO0FBQ0E7QUFDQTs7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNwR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDckdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzVDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQzlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2xoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDNUdBO0FBQ0E7O0FDREE7QUFDQTs7QUNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUM5Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzEvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3JOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUM5cUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pFQTtBQUNBOztBQ0RBO0FBQ0E7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNQQTtBQUNBOztBQ0RBO0FBQ0E7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeDVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ25zQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ25FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUMxa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUMxSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbHNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNucEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaGVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDblVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3ZsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2aUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDemNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDelBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9MQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5YUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0VEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25oRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM2lCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9KQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaE9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9OQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25OQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDemNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6WkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3MkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25iQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hjQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9RQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL1VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQzdNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDMVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3hNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUM5RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzNJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5T0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ2hKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNqMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckxBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3pIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2bEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3RIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDeFBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDcGFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6c0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaGxCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInZhciBhc24xID0gZXhwb3J0cztcblxuYXNuMS5iaWdudW0gPSByZXF1aXJlKCdibi5qcycpO1xuXG5hc24xLmRlZmluZSA9IHJlcXVpcmUoJy4vYXNuMS9hcGknKS5kZWZpbmU7XG5hc24xLmJhc2UgPSByZXF1aXJlKCcuL2FzbjEvYmFzZScpO1xuYXNuMS5jb25zdGFudHMgPSByZXF1aXJlKCcuL2FzbjEvY29uc3RhbnRzJyk7XG5hc24xLmRlY29kZXJzID0gcmVxdWlyZSgnLi9hc24xL2RlY29kZXJzJyk7XG5hc24xLmVuY29kZXJzID0gcmVxdWlyZSgnLi9hc24xL2VuY29kZXJzJyk7XG4iLCJ2YXIgYXNuMSA9IHJlcXVpcmUoJy4uL2FzbjEnKTtcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG5cbnZhciBhcGkgPSBleHBvcnRzO1xuXG5hcGkuZGVmaW5lID0gZnVuY3Rpb24gZGVmaW5lKG5hbWUsIGJvZHkpIHtcbiAgcmV0dXJuIG5ldyBFbnRpdHkobmFtZSwgYm9keSk7XG59O1xuXG5mdW5jdGlvbiBFbnRpdHkobmFtZSwgYm9keSkge1xuICB0aGlzLm5hbWUgPSBuYW1lO1xuICB0aGlzLmJvZHkgPSBib2R5O1xuXG4gIHRoaXMuZGVjb2RlcnMgPSB7fTtcbiAgdGhpcy5lbmNvZGVycyA9IHt9O1xufTtcblxuRW50aXR5LnByb3RvdHlwZS5fY3JlYXRlTmFtZWQgPSBmdW5jdGlvbiBjcmVhdGVOYW1lZChiYXNlKSB7XG4gIHZhciBuYW1lZDtcbiAgdHJ5IHtcbiAgICBuYW1lZCA9IHJlcXVpcmUoJ3ZtJykucnVuSW5UaGlzQ29udGV4dChcbiAgICAgICcoZnVuY3Rpb24gJyArIHRoaXMubmFtZSArICcoZW50aXR5KSB7XFxuJyArXG4gICAgICAnICB0aGlzLl9pbml0TmFtZWQoZW50aXR5KTtcXG4nICtcbiAgICAgICd9KSdcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbmFtZWQgPSBmdW5jdGlvbiAoZW50aXR5KSB7XG4gICAgICB0aGlzLl9pbml0TmFtZWQoZW50aXR5KTtcbiAgICB9O1xuICB9XG4gIGluaGVyaXRzKG5hbWVkLCBiYXNlKTtcbiAgbmFtZWQucHJvdG90eXBlLl9pbml0TmFtZWQgPSBmdW5jdGlvbiBpbml0bmFtZWQoZW50aXR5KSB7XG4gICAgYmFzZS5jYWxsKHRoaXMsIGVudGl0eSk7XG4gIH07XG5cbiAgcmV0dXJuIG5ldyBuYW1lZCh0aGlzKTtcbn07XG5cbkVudGl0eS5wcm90b3R5cGUuX2dldERlY29kZXIgPSBmdW5jdGlvbiBfZ2V0RGVjb2RlcihlbmMpIHtcbiAgZW5jID0gZW5jIHx8ICdkZXInO1xuICAvLyBMYXppbHkgY3JlYXRlIGRlY29kZXJcbiAgaWYgKCF0aGlzLmRlY29kZXJzLmhhc093blByb3BlcnR5KGVuYykpXG4gICAgdGhpcy5kZWNvZGVyc1tlbmNdID0gdGhpcy5fY3JlYXRlTmFtZWQoYXNuMS5kZWNvZGVyc1tlbmNdKTtcbiAgcmV0dXJuIHRoaXMuZGVjb2RlcnNbZW5jXTtcbn07XG5cbkVudGl0eS5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKGRhdGEsIGVuYywgb3B0aW9ucykge1xuICByZXR1cm4gdGhpcy5fZ2V0RGVjb2RlcihlbmMpLmRlY29kZShkYXRhLCBvcHRpb25zKTtcbn07XG5cbkVudGl0eS5wcm90b3R5cGUuX2dldEVuY29kZXIgPSBmdW5jdGlvbiBfZ2V0RW5jb2RlcihlbmMpIHtcbiAgZW5jID0gZW5jIHx8ICdkZXInO1xuICAvLyBMYXppbHkgY3JlYXRlIGVuY29kZXJcbiAgaWYgKCF0aGlzLmVuY29kZXJzLmhhc093blByb3BlcnR5KGVuYykpXG4gICAgdGhpcy5lbmNvZGVyc1tlbmNdID0gdGhpcy5fY3JlYXRlTmFtZWQoYXNuMS5lbmNvZGVyc1tlbmNdKTtcbiAgcmV0dXJuIHRoaXMuZW5jb2RlcnNbZW5jXTtcbn07XG5cbkVudGl0eS5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKGRhdGEsIGVuYywgLyogaW50ZXJuYWwgKi8gcmVwb3J0ZXIpIHtcbiAgcmV0dXJuIHRoaXMuX2dldEVuY29kZXIoZW5jKS5lbmNvZGUoZGF0YSwgcmVwb3J0ZXIpO1xufTtcbiIsInZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG52YXIgUmVwb3J0ZXIgPSByZXF1aXJlKCcuLi9iYXNlJykuUmVwb3J0ZXI7XG52YXIgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykuQnVmZmVyO1xuXG5mdW5jdGlvbiBEZWNvZGVyQnVmZmVyKGJhc2UsIG9wdGlvbnMpIHtcbiAgUmVwb3J0ZXIuY2FsbCh0aGlzLCBvcHRpb25zKTtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYmFzZSkpIHtcbiAgICB0aGlzLmVycm9yKCdJbnB1dCBub3QgQnVmZmVyJyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdGhpcy5iYXNlID0gYmFzZTtcbiAgdGhpcy5vZmZzZXQgPSAwO1xuICB0aGlzLmxlbmd0aCA9IGJhc2UubGVuZ3RoO1xufVxuaW5oZXJpdHMoRGVjb2RlckJ1ZmZlciwgUmVwb3J0ZXIpO1xuZXhwb3J0cy5EZWNvZGVyQnVmZmVyID0gRGVjb2RlckJ1ZmZlcjtcblxuRGVjb2RlckJ1ZmZlci5wcm90b3R5cGUuc2F2ZSA9IGZ1bmN0aW9uIHNhdmUoKSB7XG4gIHJldHVybiB7IG9mZnNldDogdGhpcy5vZmZzZXQsIHJlcG9ydGVyOiBSZXBvcnRlci5wcm90b3R5cGUuc2F2ZS5jYWxsKHRoaXMpIH07XG59O1xuXG5EZWNvZGVyQnVmZmVyLnByb3RvdHlwZS5yZXN0b3JlID0gZnVuY3Rpb24gcmVzdG9yZShzYXZlKSB7XG4gIC8vIFJldHVybiBza2lwcGVkIGRhdGFcbiAgdmFyIHJlcyA9IG5ldyBEZWNvZGVyQnVmZmVyKHRoaXMuYmFzZSk7XG4gIHJlcy5vZmZzZXQgPSBzYXZlLm9mZnNldDtcbiAgcmVzLmxlbmd0aCA9IHRoaXMub2Zmc2V0O1xuXG4gIHRoaXMub2Zmc2V0ID0gc2F2ZS5vZmZzZXQ7XG4gIFJlcG9ydGVyLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcywgc2F2ZS5yZXBvcnRlcik7XG5cbiAgcmV0dXJuIHJlcztcbn07XG5cbkRlY29kZXJCdWZmZXIucHJvdG90eXBlLmlzRW1wdHkgPSBmdW5jdGlvbiBpc0VtcHR5KCkge1xuICByZXR1cm4gdGhpcy5vZmZzZXQgPT09IHRoaXMubGVuZ3RoO1xufTtcblxuRGVjb2RlckJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4ID0gZnVuY3Rpb24gcmVhZFVJbnQ4KGZhaWwpIHtcbiAgaWYgKHRoaXMub2Zmc2V0ICsgMSA8PSB0aGlzLmxlbmd0aClcbiAgICByZXR1cm4gdGhpcy5iYXNlLnJlYWRVSW50OCh0aGlzLm9mZnNldCsrLCB0cnVlKTtcbiAgZWxzZVxuICAgIHJldHVybiB0aGlzLmVycm9yKGZhaWwgfHwgJ0RlY29kZXJCdWZmZXIgb3ZlcnJ1bicpO1xufVxuXG5EZWNvZGVyQnVmZmVyLnByb3RvdHlwZS5za2lwID0gZnVuY3Rpb24gc2tpcChieXRlcywgZmFpbCkge1xuICBpZiAoISh0aGlzLm9mZnNldCArIGJ5dGVzIDw9IHRoaXMubGVuZ3RoKSlcbiAgICByZXR1cm4gdGhpcy5lcnJvcihmYWlsIHx8ICdEZWNvZGVyQnVmZmVyIG92ZXJydW4nKTtcblxuICB2YXIgcmVzID0gbmV3IERlY29kZXJCdWZmZXIodGhpcy5iYXNlKTtcblxuICAvLyBTaGFyZSByZXBvcnRlciBzdGF0ZVxuICByZXMuX3JlcG9ydGVyU3RhdGUgPSB0aGlzLl9yZXBvcnRlclN0YXRlO1xuXG4gIHJlcy5vZmZzZXQgPSB0aGlzLm9mZnNldDtcbiAgcmVzLmxlbmd0aCA9IHRoaXMub2Zmc2V0ICsgYnl0ZXM7XG4gIHRoaXMub2Zmc2V0ICs9IGJ5dGVzO1xuICByZXR1cm4gcmVzO1xufVxuXG5EZWNvZGVyQnVmZmVyLnByb3RvdHlwZS5yYXcgPSBmdW5jdGlvbiByYXcoc2F2ZSkge1xuICByZXR1cm4gdGhpcy5iYXNlLnNsaWNlKHNhdmUgPyBzYXZlLm9mZnNldCA6IHRoaXMub2Zmc2V0LCB0aGlzLmxlbmd0aCk7XG59XG5cbmZ1bmN0aW9uIEVuY29kZXJCdWZmZXIodmFsdWUsIHJlcG9ydGVyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUubWFwKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgIGlmICghKGl0ZW0gaW5zdGFuY2VvZiBFbmNvZGVyQnVmZmVyKSlcbiAgICAgICAgaXRlbSA9IG5ldyBFbmNvZGVyQnVmZmVyKGl0ZW0sIHJlcG9ydGVyKTtcbiAgICAgIHRoaXMubGVuZ3RoICs9IGl0ZW0ubGVuZ3RoO1xuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfSwgdGhpcyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIGlmICghKDAgPD0gdmFsdWUgJiYgdmFsdWUgPD0gMHhmZikpXG4gICAgICByZXR1cm4gcmVwb3J0ZXIuZXJyb3IoJ25vbi1ieXRlIEVuY29kZXJCdWZmZXIgdmFsdWUnKTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5sZW5ndGggPSAxO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5sZW5ndGggPSBCdWZmZXIuYnl0ZUxlbmd0aCh2YWx1ZSk7XG4gIH0gZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmVwb3J0ZXIuZXJyb3IoJ1Vuc3VwcG9ydGVkIHR5cGU6ICcgKyB0eXBlb2YgdmFsdWUpO1xuICB9XG59XG5leHBvcnRzLkVuY29kZXJCdWZmZXIgPSBFbmNvZGVyQnVmZmVyO1xuXG5FbmNvZGVyQnVmZmVyLnByb3RvdHlwZS5qb2luID0gZnVuY3Rpb24gam9pbihvdXQsIG9mZnNldCkge1xuICBpZiAoIW91dClcbiAgICBvdXQgPSBuZXcgQnVmZmVyKHRoaXMubGVuZ3RoKTtcbiAgaWYgKCFvZmZzZXQpXG4gICAgb2Zmc2V0ID0gMDtcblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG91dDtcblxuICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgIHRoaXMudmFsdWUuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7XG4gICAgICBpdGVtLmpvaW4ob3V0LCBvZmZzZXQpO1xuICAgICAgb2Zmc2V0ICs9IGl0ZW0ubGVuZ3RoO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ251bWJlcicpXG4gICAgICBvdXRbb2Zmc2V0XSA9IHRoaXMudmFsdWU7XG4gICAgZWxzZSBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKVxuICAgICAgb3V0LndyaXRlKHRoaXMudmFsdWUsIG9mZnNldCk7XG4gICAgZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKHRoaXMudmFsdWUpKVxuICAgICAgdGhpcy52YWx1ZS5jb3B5KG91dCwgb2Zmc2V0KTtcbiAgICBvZmZzZXQgKz0gdGhpcy5sZW5ndGg7XG4gIH1cblxuICByZXR1cm4gb3V0O1xufTtcbiIsInZhciBiYXNlID0gZXhwb3J0cztcblxuYmFzZS5SZXBvcnRlciA9IHJlcXVpcmUoJy4vcmVwb3J0ZXInKS5SZXBvcnRlcjtcbmJhc2UuRGVjb2RlckJ1ZmZlciA9IHJlcXVpcmUoJy4vYnVmZmVyJykuRGVjb2RlckJ1ZmZlcjtcbmJhc2UuRW5jb2RlckJ1ZmZlciA9IHJlcXVpcmUoJy4vYnVmZmVyJykuRW5jb2RlckJ1ZmZlcjtcbmJhc2UuTm9kZSA9IHJlcXVpcmUoJy4vbm9kZScpO1xuIiwidmFyIFJlcG9ydGVyID0gcmVxdWlyZSgnLi4vYmFzZScpLlJlcG9ydGVyO1xudmFyIEVuY29kZXJCdWZmZXIgPSByZXF1aXJlKCcuLi9iYXNlJykuRW5jb2RlckJ1ZmZlcjtcbnZhciBEZWNvZGVyQnVmZmVyID0gcmVxdWlyZSgnLi4vYmFzZScpLkRlY29kZXJCdWZmZXI7XG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xuXG4vLyBTdXBwb3J0ZWQgdGFnc1xudmFyIHRhZ3MgPSBbXG4gICdzZXEnLCAnc2Vxb2YnLCAnc2V0JywgJ3NldG9mJywgJ29iamlkJywgJ2Jvb2wnLFxuICAnZ2VudGltZScsICd1dGN0aW1lJywgJ251bGxfJywgJ2VudW0nLCAnaW50JywgJ29iakRlc2MnLFxuICAnYml0c3RyJywgJ2JtcHN0cicsICdjaGFyc3RyJywgJ2dlbnN0cicsICdncmFwaHN0cicsICdpYTVzdHInLCAnaXNvNjQ2c3RyJyxcbiAgJ251bXN0cicsICdvY3RzdHInLCAncHJpbnRzdHInLCAndDYxc3RyJywgJ3VuaXN0cicsICd1dGY4c3RyJywgJ3ZpZGVvc3RyJ1xuXTtcblxuLy8gUHVibGljIG1ldGhvZHMgbGlzdFxudmFyIG1ldGhvZHMgPSBbXG4gICdrZXknLCAnb2JqJywgJ3VzZScsICdvcHRpb25hbCcsICdleHBsaWNpdCcsICdpbXBsaWNpdCcsICdkZWYnLCAnY2hvaWNlJyxcbiAgJ2FueScsICdjb250YWlucydcbl0uY29uY2F0KHRhZ3MpO1xuXG4vLyBPdmVycmlkZWQgbWV0aG9kcyBsaXN0XG52YXIgb3ZlcnJpZGVkID0gW1xuICAnX3BlZWtUYWcnLCAnX2RlY29kZVRhZycsICdfdXNlJyxcbiAgJ19kZWNvZGVTdHInLCAnX2RlY29kZU9iamlkJywgJ19kZWNvZGVUaW1lJyxcbiAgJ19kZWNvZGVOdWxsJywgJ19kZWNvZGVJbnQnLCAnX2RlY29kZUJvb2wnLCAnX2RlY29kZUxpc3QnLFxuXG4gICdfZW5jb2RlQ29tcG9zaXRlJywgJ19lbmNvZGVTdHInLCAnX2VuY29kZU9iamlkJywgJ19lbmNvZGVUaW1lJyxcbiAgJ19lbmNvZGVOdWxsJywgJ19lbmNvZGVJbnQnLCAnX2VuY29kZUJvb2wnXG5dO1xuXG5mdW5jdGlvbiBOb2RlKGVuYywgcGFyZW50KSB7XG4gIHZhciBzdGF0ZSA9IHt9O1xuICB0aGlzLl9iYXNlU3RhdGUgPSBzdGF0ZTtcblxuICBzdGF0ZS5lbmMgPSBlbmM7XG5cbiAgc3RhdGUucGFyZW50ID0gcGFyZW50IHx8IG51bGw7XG4gIHN0YXRlLmNoaWxkcmVuID0gbnVsbDtcblxuICAvLyBTdGF0ZVxuICBzdGF0ZS50YWcgPSBudWxsO1xuICBzdGF0ZS5hcmdzID0gbnVsbDtcbiAgc3RhdGUucmV2ZXJzZUFyZ3MgPSBudWxsO1xuICBzdGF0ZS5jaG9pY2UgPSBudWxsO1xuICBzdGF0ZS5vcHRpb25hbCA9IGZhbHNlO1xuICBzdGF0ZS5hbnkgPSBmYWxzZTtcbiAgc3RhdGUub2JqID0gZmFsc2U7XG4gIHN0YXRlLnVzZSA9IG51bGw7XG4gIHN0YXRlLnVzZURlY29kZXIgPSBudWxsO1xuICBzdGF0ZS5rZXkgPSBudWxsO1xuICBzdGF0ZVsnZGVmYXVsdCddID0gbnVsbDtcbiAgc3RhdGUuZXhwbGljaXQgPSBudWxsO1xuICBzdGF0ZS5pbXBsaWNpdCA9IG51bGw7XG4gIHN0YXRlLmNvbnRhaW5zID0gbnVsbDtcblxuICAvLyBTaG91bGQgY3JlYXRlIG5ldyBpbnN0YW5jZSBvbiBlYWNoIG1ldGhvZFxuICBpZiAoIXN0YXRlLnBhcmVudCkge1xuICAgIHN0YXRlLmNoaWxkcmVuID0gW107XG4gICAgdGhpcy5fd3JhcCgpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IE5vZGU7XG5cbnZhciBzdGF0ZVByb3BzID0gW1xuICAnZW5jJywgJ3BhcmVudCcsICdjaGlsZHJlbicsICd0YWcnLCAnYXJncycsICdyZXZlcnNlQXJncycsICdjaG9pY2UnLFxuICAnb3B0aW9uYWwnLCAnYW55JywgJ29iaicsICd1c2UnLCAnYWx0ZXJlZFVzZScsICdrZXknLCAnZGVmYXVsdCcsICdleHBsaWNpdCcsXG4gICdpbXBsaWNpdCcsICdjb250YWlucydcbl07XG5cbk5vZGUucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gY2xvbmUoKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcbiAgdmFyIGNzdGF0ZSA9IHt9O1xuICBzdGF0ZVByb3BzLmZvckVhY2goZnVuY3Rpb24ocHJvcCkge1xuICAgIGNzdGF0ZVtwcm9wXSA9IHN0YXRlW3Byb3BdO1xuICB9KTtcbiAgdmFyIHJlcyA9IG5ldyB0aGlzLmNvbnN0cnVjdG9yKGNzdGF0ZS5wYXJlbnQpO1xuICByZXMuX2Jhc2VTdGF0ZSA9IGNzdGF0ZTtcbiAgcmV0dXJuIHJlcztcbn07XG5cbk5vZGUucHJvdG90eXBlLl93cmFwID0gZnVuY3Rpb24gd3JhcCgpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuICBtZXRob2RzLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gICAgdGhpc1ttZXRob2RdID0gZnVuY3Rpb24gX3dyYXBwZWRNZXRob2QoKSB7XG4gICAgICB2YXIgY2xvbmUgPSBuZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzKTtcbiAgICAgIHN0YXRlLmNoaWxkcmVuLnB1c2goY2xvbmUpO1xuICAgICAgcmV0dXJuIGNsb25lW21ldGhvZF0uYXBwbHkoY2xvbmUsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgfSwgdGhpcyk7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5faW5pdCA9IGZ1bmN0aW9uIGluaXQoYm9keSkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG5cbiAgYXNzZXJ0KHN0YXRlLnBhcmVudCA9PT0gbnVsbCk7XG4gIGJvZHkuY2FsbCh0aGlzKTtcblxuICAvLyBGaWx0ZXIgY2hpbGRyZW5cbiAgc3RhdGUuY2hpbGRyZW4gPSBzdGF0ZS5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oY2hpbGQpIHtcbiAgICByZXR1cm4gY2hpbGQuX2Jhc2VTdGF0ZS5wYXJlbnQgPT09IHRoaXM7XG4gIH0sIHRoaXMpO1xuICBhc3NlcnQuZXF1YWwoc3RhdGUuY2hpbGRyZW4ubGVuZ3RoLCAxLCAnUm9vdCBub2RlIGNhbiBoYXZlIG9ubHkgb25lIGNoaWxkJyk7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5fdXNlQXJncyA9IGZ1bmN0aW9uIHVzZUFyZ3MoYXJncykge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG5cbiAgLy8gRmlsdGVyIGNoaWxkcmVuIGFuZCBhcmdzXG4gIHZhciBjaGlsZHJlbiA9IGFyZ3MuZmlsdGVyKGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiBhcmcgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yO1xuICB9LCB0aGlzKTtcbiAgYXJncyA9IGFyZ3MuZmlsdGVyKGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiAhKGFyZyBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpO1xuICB9LCB0aGlzKTtcblxuICBpZiAoY2hpbGRyZW4ubGVuZ3RoICE9PSAwKSB7XG4gICAgYXNzZXJ0KHN0YXRlLmNoaWxkcmVuID09PSBudWxsKTtcbiAgICBzdGF0ZS5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuXG4gICAgLy8gUmVwbGFjZSBwYXJlbnQgdG8gbWFpbnRhaW4gYmFja3dhcmQgbGlua1xuICAgIGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oY2hpbGQpIHtcbiAgICAgIGNoaWxkLl9iYXNlU3RhdGUucGFyZW50ID0gdGhpcztcbiAgICB9LCB0aGlzKTtcbiAgfVxuICBpZiAoYXJncy5sZW5ndGggIT09IDApIHtcbiAgICBhc3NlcnQoc3RhdGUuYXJncyA9PT0gbnVsbCk7XG4gICAgc3RhdGUuYXJncyA9IGFyZ3M7XG4gICAgc3RhdGUucmV2ZXJzZUFyZ3MgPSBhcmdzLm1hcChmdW5jdGlvbihhcmcpIHtcbiAgICAgIGlmICh0eXBlb2YgYXJnICE9PSAnb2JqZWN0JyB8fCBhcmcuY29uc3RydWN0b3IgIT09IE9iamVjdClcbiAgICAgICAgcmV0dXJuIGFyZztcblxuICAgICAgdmFyIHJlcyA9IHt9O1xuICAgICAgT2JqZWN0LmtleXMoYXJnKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgICBpZiAoa2V5ID09IChrZXkgfCAwKSlcbiAgICAgICAgICBrZXkgfD0gMDtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJnW2tleV07XG4gICAgICAgIHJlc1t2YWx1ZV0gPSBrZXk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSk7XG4gIH1cbn07XG5cbi8vXG4vLyBPdmVycmlkZWQgbWV0aG9kc1xuLy9cblxub3ZlcnJpZGVkLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gIE5vZGUucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiBfb3ZlcnJpZGVkKCkge1xuICAgIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWV0aG9kICsgJyBub3QgaW1wbGVtZW50ZWQgZm9yIGVuY29kaW5nOiAnICsgc3RhdGUuZW5jKTtcbiAgfTtcbn0pO1xuXG4vL1xuLy8gUHVibGljIG1ldGhvZHNcbi8vXG5cbnRhZ3MuZm9yRWFjaChmdW5jdGlvbih0YWcpIHtcbiAgTm9kZS5wcm90b3R5cGVbdGFnXSA9IGZ1bmN0aW9uIF90YWdNZXRob2QoKSB7XG4gICAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblxuICAgIGFzc2VydChzdGF0ZS50YWcgPT09IG51bGwpO1xuICAgIHN0YXRlLnRhZyA9IHRhZztcblxuICAgIHRoaXMuX3VzZUFyZ3MoYXJncyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbn0pO1xuXG5Ob2RlLnByb3RvdHlwZS51c2UgPSBmdW5jdGlvbiB1c2UoaXRlbSkge1xuICBhc3NlcnQoaXRlbSk7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBhc3NlcnQoc3RhdGUudXNlID09PSBudWxsKTtcbiAgc3RhdGUudXNlID0gaXRlbTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk5vZGUucHJvdG90eXBlLm9wdGlvbmFsID0gZnVuY3Rpb24gb3B0aW9uYWwoKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBzdGF0ZS5vcHRpb25hbCA9IHRydWU7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5kZWYgPSBmdW5jdGlvbiBkZWYodmFsKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBhc3NlcnQoc3RhdGVbJ2RlZmF1bHQnXSA9PT0gbnVsbCk7XG4gIHN0YXRlWydkZWZhdWx0J10gPSB2YWw7XG4gIHN0YXRlLm9wdGlvbmFsID0gdHJ1ZTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk5vZGUucHJvdG90eXBlLmV4cGxpY2l0ID0gZnVuY3Rpb24gZXhwbGljaXQobnVtKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBhc3NlcnQoc3RhdGUuZXhwbGljaXQgPT09IG51bGwgJiYgc3RhdGUuaW1wbGljaXQgPT09IG51bGwpO1xuICBzdGF0ZS5leHBsaWNpdCA9IG51bTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk5vZGUucHJvdG90eXBlLmltcGxpY2l0ID0gZnVuY3Rpb24gaW1wbGljaXQobnVtKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBhc3NlcnQoc3RhdGUuZXhwbGljaXQgPT09IG51bGwgJiYgc3RhdGUuaW1wbGljaXQgPT09IG51bGwpO1xuICBzdGF0ZS5pbXBsaWNpdCA9IG51bTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk5vZGUucHJvdG90eXBlLm9iaiA9IGZ1bmN0aW9uIG9iaigpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG5cbiAgc3RhdGUub2JqID0gdHJ1ZTtcblxuICBpZiAoYXJncy5sZW5ndGggIT09IDApXG4gICAgdGhpcy5fdXNlQXJncyhhcmdzKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk5vZGUucHJvdG90eXBlLmtleSA9IGZ1bmN0aW9uIGtleShuZXdLZXkpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIGFzc2VydChzdGF0ZS5rZXkgPT09IG51bGwpO1xuICBzdGF0ZS5rZXkgPSBuZXdLZXk7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5hbnkgPSBmdW5jdGlvbiBhbnkoKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBzdGF0ZS5hbnkgPSB0cnVlO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTm9kZS5wcm90b3R5cGUuY2hvaWNlID0gZnVuY3Rpb24gY2hvaWNlKG9iaikge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG5cbiAgYXNzZXJ0KHN0YXRlLmNob2ljZSA9PT0gbnVsbCk7XG4gIHN0YXRlLmNob2ljZSA9IG9iajtcbiAgdGhpcy5fdXNlQXJncyhPYmplY3Qua2V5cyhvYmopLm1hcChmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gb2JqW2tleV07XG4gIH0pKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk5vZGUucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24gY29udGFpbnMoaXRlbSkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG5cbiAgYXNzZXJ0KHN0YXRlLnVzZSA9PT0gbnVsbCk7XG4gIHN0YXRlLmNvbnRhaW5zID0gaXRlbTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8vXG4vLyBEZWNvZGluZ1xuLy9cblxuTm9kZS5wcm90b3R5cGUuX2RlY29kZSA9IGZ1bmN0aW9uIGRlY29kZShpbnB1dCwgb3B0aW9ucykge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG5cbiAgLy8gRGVjb2RlIHJvb3Qgbm9kZVxuICBpZiAoc3RhdGUucGFyZW50ID09PSBudWxsKVxuICAgIHJldHVybiBpbnB1dC53cmFwUmVzdWx0KHN0YXRlLmNoaWxkcmVuWzBdLl9kZWNvZGUoaW5wdXQsIG9wdGlvbnMpKTtcblxuICB2YXIgcmVzdWx0ID0gc3RhdGVbJ2RlZmF1bHQnXTtcbiAgdmFyIHByZXNlbnQgPSB0cnVlO1xuXG4gIHZhciBwcmV2S2V5ID0gbnVsbDtcbiAgaWYgKHN0YXRlLmtleSAhPT0gbnVsbClcbiAgICBwcmV2S2V5ID0gaW5wdXQuZW50ZXJLZXkoc3RhdGUua2V5KTtcblxuICAvLyBDaGVjayBpZiB0YWcgaXMgdGhlcmVcbiAgaWYgKHN0YXRlLm9wdGlvbmFsKSB7XG4gICAgdmFyIHRhZyA9IG51bGw7XG4gICAgaWYgKHN0YXRlLmV4cGxpY2l0ICE9PSBudWxsKVxuICAgICAgdGFnID0gc3RhdGUuZXhwbGljaXQ7XG4gICAgZWxzZSBpZiAoc3RhdGUuaW1wbGljaXQgIT09IG51bGwpXG4gICAgICB0YWcgPSBzdGF0ZS5pbXBsaWNpdDtcbiAgICBlbHNlIGlmIChzdGF0ZS50YWcgIT09IG51bGwpXG4gICAgICB0YWcgPSBzdGF0ZS50YWc7XG5cbiAgICBpZiAodGFnID09PSBudWxsICYmICFzdGF0ZS5hbnkpIHtcbiAgICAgIC8vIFRyaWFsIGFuZCBFcnJvclxuICAgICAgdmFyIHNhdmUgPSBpbnB1dC5zYXZlKCk7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoc3RhdGUuY2hvaWNlID09PSBudWxsKVxuICAgICAgICAgIHRoaXMuX2RlY29kZUdlbmVyaWMoc3RhdGUudGFnLCBpbnB1dCwgb3B0aW9ucyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB0aGlzLl9kZWNvZGVDaG9pY2UoaW5wdXQsIG9wdGlvbnMpO1xuICAgICAgICBwcmVzZW50ID0gdHJ1ZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcHJlc2VudCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaW5wdXQucmVzdG9yZShzYXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlc2VudCA9IHRoaXMuX3BlZWtUYWcoaW5wdXQsIHRhZywgc3RhdGUuYW55KTtcblxuICAgICAgaWYgKGlucHV0LmlzRXJyb3IocHJlc2VudCkpXG4gICAgICAgIHJldHVybiBwcmVzZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1c2ggb2JqZWN0IG9uIHN0YWNrXG4gIHZhciBwcmV2T2JqO1xuICBpZiAoc3RhdGUub2JqICYmIHByZXNlbnQpXG4gICAgcHJldk9iaiA9IGlucHV0LmVudGVyT2JqZWN0KCk7XG5cbiAgaWYgKHByZXNlbnQpIHtcbiAgICAvLyBVbndyYXAgZXhwbGljaXQgdmFsdWVzXG4gICAgaWYgKHN0YXRlLmV4cGxpY2l0ICE9PSBudWxsKSB7XG4gICAgICB2YXIgZXhwbGljaXQgPSB0aGlzLl9kZWNvZGVUYWcoaW5wdXQsIHN0YXRlLmV4cGxpY2l0KTtcbiAgICAgIGlmIChpbnB1dC5pc0Vycm9yKGV4cGxpY2l0KSlcbiAgICAgICAgcmV0dXJuIGV4cGxpY2l0O1xuICAgICAgaW5wdXQgPSBleHBsaWNpdDtcbiAgICB9XG5cbiAgICB2YXIgc3RhcnQgPSBpbnB1dC5vZmZzZXQ7XG5cbiAgICAvLyBVbndyYXAgaW1wbGljaXQgYW5kIG5vcm1hbCB2YWx1ZXNcbiAgICBpZiAoc3RhdGUudXNlID09PSBudWxsICYmIHN0YXRlLmNob2ljZSA9PT0gbnVsbCkge1xuICAgICAgaWYgKHN0YXRlLmFueSlcbiAgICAgICAgdmFyIHNhdmUgPSBpbnB1dC5zYXZlKCk7XG4gICAgICB2YXIgYm9keSA9IHRoaXMuX2RlY29kZVRhZyhcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHN0YXRlLmltcGxpY2l0ICE9PSBudWxsID8gc3RhdGUuaW1wbGljaXQgOiBzdGF0ZS50YWcsXG4gICAgICAgIHN0YXRlLmFueVxuICAgICAgKTtcbiAgICAgIGlmIChpbnB1dC5pc0Vycm9yKGJvZHkpKVxuICAgICAgICByZXR1cm4gYm9keTtcblxuICAgICAgaWYgKHN0YXRlLmFueSlcbiAgICAgICAgcmVzdWx0ID0gaW5wdXQucmF3KHNhdmUpO1xuICAgICAgZWxzZVxuICAgICAgICBpbnB1dCA9IGJvZHk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy50cmFjayAmJiBzdGF0ZS50YWcgIT09IG51bGwpXG4gICAgICBvcHRpb25zLnRyYWNrKGlucHV0LnBhdGgoKSwgc3RhcnQsIGlucHV0Lmxlbmd0aCwgJ3RhZ2dlZCcpO1xuXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy50cmFjayAmJiBzdGF0ZS50YWcgIT09IG51bGwpXG4gICAgICBvcHRpb25zLnRyYWNrKGlucHV0LnBhdGgoKSwgaW5wdXQub2Zmc2V0LCBpbnB1dC5sZW5ndGgsICdjb250ZW50Jyk7XG5cbiAgICAvLyBTZWxlY3QgcHJvcGVyIG1ldGhvZCBmb3IgdGFnXG4gICAgaWYgKHN0YXRlLmFueSlcbiAgICAgIHJlc3VsdCA9IHJlc3VsdDtcbiAgICBlbHNlIGlmIChzdGF0ZS5jaG9pY2UgPT09IG51bGwpXG4gICAgICByZXN1bHQgPSB0aGlzLl9kZWNvZGVHZW5lcmljKHN0YXRlLnRhZywgaW5wdXQsIG9wdGlvbnMpO1xuICAgIGVsc2VcbiAgICAgIHJlc3VsdCA9IHRoaXMuX2RlY29kZUNob2ljZShpbnB1dCwgb3B0aW9ucyk7XG5cbiAgICBpZiAoaW5wdXQuaXNFcnJvcihyZXN1bHQpKVxuICAgICAgcmV0dXJuIHJlc3VsdDtcblxuICAgIC8vIERlY29kZSBjaGlsZHJlblxuICAgIGlmICghc3RhdGUuYW55ICYmIHN0YXRlLmNob2ljZSA9PT0gbnVsbCAmJiBzdGF0ZS5jaGlsZHJlbiAhPT0gbnVsbCkge1xuICAgICAgc3RhdGUuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiBkZWNvZGVDaGlsZHJlbihjaGlsZCkge1xuICAgICAgICAvLyBOT1RFOiBXZSBhcmUgaWdub3JpbmcgZXJyb3JzIGhlcmUsIHRvIGxldCBwYXJzZXIgY29udGludWUgd2l0aCBvdGhlclxuICAgICAgICAvLyBwYXJ0cyBvZiBlbmNvZGVkIGRhdGFcbiAgICAgICAgY2hpbGQuX2RlY29kZShpbnB1dCwgb3B0aW9ucyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBEZWNvZGUgY29udGFpbmVkL2VuY29kZWQgYnkgc2NoZW1hLCBvbmx5IGluIGJpdCBvciBvY3RldCBzdHJpbmdzXG4gICAgaWYgKHN0YXRlLmNvbnRhaW5zICYmIChzdGF0ZS50YWcgPT09ICdvY3RzdHInIHx8IHN0YXRlLnRhZyA9PT0gJ2JpdHN0cicpKSB7XG4gICAgICB2YXIgZGF0YSA9IG5ldyBEZWNvZGVyQnVmZmVyKHJlc3VsdCk7XG4gICAgICByZXN1bHQgPSB0aGlzLl9nZXRVc2Uoc3RhdGUuY29udGFpbnMsIGlucHV0Ll9yZXBvcnRlclN0YXRlLm9iailcbiAgICAgICAgICAuX2RlY29kZShkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3Agb2JqZWN0XG4gIGlmIChzdGF0ZS5vYmogJiYgcHJlc2VudClcbiAgICByZXN1bHQgPSBpbnB1dC5sZWF2ZU9iamVjdChwcmV2T2JqKTtcblxuICAvLyBTZXQga2V5XG4gIGlmIChzdGF0ZS5rZXkgIT09IG51bGwgJiYgKHJlc3VsdCAhPT0gbnVsbCB8fCBwcmVzZW50ID09PSB0cnVlKSlcbiAgICBpbnB1dC5sZWF2ZUtleShwcmV2S2V5LCBzdGF0ZS5rZXksIHJlc3VsdCk7XG4gIGVsc2UgaWYgKHByZXZLZXkgIT09IG51bGwpXG4gICAgaW5wdXQuZXhpdEtleShwcmV2S2V5KTtcblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuTm9kZS5wcm90b3R5cGUuX2RlY29kZUdlbmVyaWMgPSBmdW5jdGlvbiBkZWNvZGVHZW5lcmljKHRhZywgaW5wdXQsIG9wdGlvbnMpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIGlmICh0YWcgPT09ICdzZXEnIHx8IHRhZyA9PT0gJ3NldCcpXG4gICAgcmV0dXJuIG51bGw7XG4gIGlmICh0YWcgPT09ICdzZXFvZicgfHwgdGFnID09PSAnc2V0b2YnKVxuICAgIHJldHVybiB0aGlzLl9kZWNvZGVMaXN0KGlucHV0LCB0YWcsIHN0YXRlLmFyZ3NbMF0sIG9wdGlvbnMpO1xuICBlbHNlIGlmICgvc3RyJC8udGVzdCh0YWcpKVxuICAgIHJldHVybiB0aGlzLl9kZWNvZGVTdHIoaW5wdXQsIHRhZywgb3B0aW9ucyk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ29iamlkJyAmJiBzdGF0ZS5hcmdzKVxuICAgIHJldHVybiB0aGlzLl9kZWNvZGVPYmppZChpbnB1dCwgc3RhdGUuYXJnc1swXSwgc3RhdGUuYXJnc1sxXSwgb3B0aW9ucyk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ29iamlkJylcbiAgICByZXR1cm4gdGhpcy5fZGVjb2RlT2JqaWQoaW5wdXQsIG51bGwsIG51bGwsIG9wdGlvbnMpO1xuICBlbHNlIGlmICh0YWcgPT09ICdnZW50aW1lJyB8fCB0YWcgPT09ICd1dGN0aW1lJylcbiAgICByZXR1cm4gdGhpcy5fZGVjb2RlVGltZShpbnB1dCwgdGFnLCBvcHRpb25zKTtcbiAgZWxzZSBpZiAodGFnID09PSAnbnVsbF8nKVxuICAgIHJldHVybiB0aGlzLl9kZWNvZGVOdWxsKGlucHV0LCBvcHRpb25zKTtcbiAgZWxzZSBpZiAodGFnID09PSAnYm9vbCcpXG4gICAgcmV0dXJuIHRoaXMuX2RlY29kZUJvb2woaW5wdXQsIG9wdGlvbnMpO1xuICBlbHNlIGlmICh0YWcgPT09ICdvYmpEZXNjJylcbiAgICByZXR1cm4gdGhpcy5fZGVjb2RlU3RyKGlucHV0LCB0YWcsIG9wdGlvbnMpO1xuICBlbHNlIGlmICh0YWcgPT09ICdpbnQnIHx8IHRhZyA9PT0gJ2VudW0nKVxuICAgIHJldHVybiB0aGlzLl9kZWNvZGVJbnQoaW5wdXQsIHN0YXRlLmFyZ3MgJiYgc3RhdGUuYXJnc1swXSwgb3B0aW9ucyk7XG5cbiAgaWYgKHN0YXRlLnVzZSAhPT0gbnVsbCkge1xuICAgIHJldHVybiB0aGlzLl9nZXRVc2Uoc3RhdGUudXNlLCBpbnB1dC5fcmVwb3J0ZXJTdGF0ZS5vYmopXG4gICAgICAgIC5fZGVjb2RlKGlucHV0LCBvcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaW5wdXQuZXJyb3IoJ3Vua25vd24gdGFnOiAnICsgdGFnKTtcbiAgfVxufTtcblxuTm9kZS5wcm90b3R5cGUuX2dldFVzZSA9IGZ1bmN0aW9uIF9nZXRVc2UoZW50aXR5LCBvYmopIHtcblxuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG4gIC8vIENyZWF0ZSBhbHRlcmVkIHVzZSBkZWNvZGVyIGlmIGltcGxpY2l0IGlzIHNldFxuICBzdGF0ZS51c2VEZWNvZGVyID0gdGhpcy5fdXNlKGVudGl0eSwgb2JqKTtcbiAgYXNzZXJ0KHN0YXRlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5wYXJlbnQgPT09IG51bGwpO1xuICBzdGF0ZS51c2VEZWNvZGVyID0gc3RhdGUudXNlRGVjb2Rlci5fYmFzZVN0YXRlLmNoaWxkcmVuWzBdO1xuICBpZiAoc3RhdGUuaW1wbGljaXQgIT09IHN0YXRlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdCkge1xuICAgIHN0YXRlLnVzZURlY29kZXIgPSBzdGF0ZS51c2VEZWNvZGVyLmNsb25lKCk7XG4gICAgc3RhdGUudXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0ID0gc3RhdGUuaW1wbGljaXQ7XG4gIH1cbiAgcmV0dXJuIHN0YXRlLnVzZURlY29kZXI7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5fZGVjb2RlQ2hvaWNlID0gZnVuY3Rpb24gZGVjb2RlQ2hvaWNlKGlucHV0LCBvcHRpb25zKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcbiAgdmFyIHJlc3VsdCA9IG51bGw7XG4gIHZhciBtYXRjaCA9IGZhbHNlO1xuXG4gIE9iamVjdC5rZXlzKHN0YXRlLmNob2ljZSkuc29tZShmdW5jdGlvbihrZXkpIHtcbiAgICB2YXIgc2F2ZSA9IGlucHV0LnNhdmUoKTtcbiAgICB2YXIgbm9kZSA9IHN0YXRlLmNob2ljZVtrZXldO1xuICAgIHRyeSB7XG4gICAgICB2YXIgdmFsdWUgPSBub2RlLl9kZWNvZGUoaW5wdXQsIG9wdGlvbnMpO1xuICAgICAgaWYgKGlucHV0LmlzRXJyb3IodmFsdWUpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHJlc3VsdCA9IHsgdHlwZToga2V5LCB2YWx1ZTogdmFsdWUgfTtcbiAgICAgIG1hdGNoID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpbnB1dC5yZXN0b3JlKHNhdmUpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSwgdGhpcyk7XG5cbiAgaWYgKCFtYXRjaClcbiAgICByZXR1cm4gaW5wdXQuZXJyb3IoJ0Nob2ljZSBub3QgbWF0Y2hlZCcpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vL1xuLy8gRW5jb2Rpbmdcbi8vXG5cbk5vZGUucHJvdG90eXBlLl9jcmVhdGVFbmNvZGVyQnVmZmVyID0gZnVuY3Rpb24gY3JlYXRlRW5jb2RlckJ1ZmZlcihkYXRhKSB7XG4gIHJldHVybiBuZXcgRW5jb2RlckJ1ZmZlcihkYXRhLCB0aGlzLnJlcG9ydGVyKTtcbn07XG5cbk5vZGUucHJvdG90eXBlLl9lbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUoZGF0YSwgcmVwb3J0ZXIsIHBhcmVudCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG4gIGlmIChzdGF0ZVsnZGVmYXVsdCddICE9PSBudWxsICYmIHN0YXRlWydkZWZhdWx0J10gPT09IGRhdGEpXG4gICAgcmV0dXJuO1xuXG4gIHZhciByZXN1bHQgPSB0aGlzLl9lbmNvZGVWYWx1ZShkYXRhLCByZXBvcnRlciwgcGFyZW50KTtcbiAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybjtcblxuICBpZiAodGhpcy5fc2tpcERlZmF1bHQocmVzdWx0LCByZXBvcnRlciwgcGFyZW50KSlcbiAgICByZXR1cm47XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbk5vZGUucHJvdG90eXBlLl9lbmNvZGVWYWx1ZSA9IGZ1bmN0aW9uIGVuY29kZShkYXRhLCByZXBvcnRlciwgcGFyZW50KSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICAvLyBEZWNvZGUgcm9vdCBub2RlXG4gIGlmIChzdGF0ZS5wYXJlbnQgPT09IG51bGwpXG4gICAgcmV0dXJuIHN0YXRlLmNoaWxkcmVuWzBdLl9lbmNvZGUoZGF0YSwgcmVwb3J0ZXIgfHwgbmV3IFJlcG9ydGVyKCkpO1xuXG4gIHZhciByZXN1bHQgPSBudWxsO1xuXG4gIC8vIFNldCByZXBvcnRlciB0byBzaGFyZSBpdCB3aXRoIGEgY2hpbGQgY2xhc3NcbiAgdGhpcy5yZXBvcnRlciA9IHJlcG9ydGVyO1xuXG4gIC8vIENoZWNrIGlmIGRhdGEgaXMgdGhlcmVcbiAgaWYgKHN0YXRlLm9wdGlvbmFsICYmIGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgIGlmIChzdGF0ZVsnZGVmYXVsdCddICE9PSBudWxsKVxuICAgICAgZGF0YSA9IHN0YXRlWydkZWZhdWx0J11cbiAgICBlbHNlXG4gICAgICByZXR1cm47XG4gIH1cblxuICAvLyBFbmNvZGUgY2hpbGRyZW4gZmlyc3RcbiAgdmFyIGNvbnRlbnQgPSBudWxsO1xuICB2YXIgcHJpbWl0aXZlID0gZmFsc2U7XG4gIGlmIChzdGF0ZS5hbnkpIHtcbiAgICAvLyBBbnl0aGluZyB0aGF0IHdhcyBnaXZlbiBpcyB0cmFuc2xhdGVkIHRvIGJ1ZmZlclxuICAgIHJlc3VsdCA9IHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoZGF0YSk7XG4gIH0gZWxzZSBpZiAoc3RhdGUuY2hvaWNlKSB7XG4gICAgcmVzdWx0ID0gdGhpcy5fZW5jb2RlQ2hvaWNlKGRhdGEsIHJlcG9ydGVyKTtcbiAgfSBlbHNlIGlmIChzdGF0ZS5jb250YWlucykge1xuICAgIGNvbnRlbnQgPSB0aGlzLl9nZXRVc2Uoc3RhdGUuY29udGFpbnMsIHBhcmVudCkuX2VuY29kZShkYXRhLCByZXBvcnRlcik7XG4gICAgcHJpbWl0aXZlID0gdHJ1ZTtcbiAgfSBlbHNlIGlmIChzdGF0ZS5jaGlsZHJlbikge1xuICAgIGNvbnRlbnQgPSBzdGF0ZS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24oY2hpbGQpIHtcbiAgICAgIGlmIChjaGlsZC5fYmFzZVN0YXRlLnRhZyA9PT0gJ251bGxfJylcbiAgICAgICAgcmV0dXJuIGNoaWxkLl9lbmNvZGUobnVsbCwgcmVwb3J0ZXIsIGRhdGEpO1xuXG4gICAgICBpZiAoY2hpbGQuX2Jhc2VTdGF0ZS5rZXkgPT09IG51bGwpXG4gICAgICAgIHJldHVybiByZXBvcnRlci5lcnJvcignQ2hpbGQgc2hvdWxkIGhhdmUgYSBrZXknKTtcbiAgICAgIHZhciBwcmV2S2V5ID0gcmVwb3J0ZXIuZW50ZXJLZXkoY2hpbGQuX2Jhc2VTdGF0ZS5rZXkpO1xuXG4gICAgICBpZiAodHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gcmVwb3J0ZXIuZXJyb3IoJ0NoaWxkIGV4cGVjdGVkLCBidXQgaW5wdXQgaXMgbm90IG9iamVjdCcpO1xuXG4gICAgICB2YXIgcmVzID0gY2hpbGQuX2VuY29kZShkYXRhW2NoaWxkLl9iYXNlU3RhdGUua2V5XSwgcmVwb3J0ZXIsIGRhdGEpO1xuICAgICAgcmVwb3J0ZXIubGVhdmVLZXkocHJldktleSk7XG5cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSwgdGhpcykuZmlsdGVyKGZ1bmN0aW9uKGNoaWxkKSB7XG4gICAgICByZXR1cm4gY2hpbGQ7XG4gICAgfSk7XG4gICAgY29udGVudCA9IHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoY29udGVudCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHN0YXRlLnRhZyA9PT0gJ3NlcW9mJyB8fCBzdGF0ZS50YWcgPT09ICdzZXRvZicpIHtcbiAgICAgIC8vIFRPRE8oaW5kdXRueSk6IHRoaXMgc2hvdWxkIGJlIHRocm93biBvbiBEU0wgbGV2ZWxcbiAgICAgIGlmICghKHN0YXRlLmFyZ3MgJiYgc3RhdGUuYXJncy5sZW5ndGggPT09IDEpKVxuICAgICAgICByZXR1cm4gcmVwb3J0ZXIuZXJyb3IoJ1RvbyBtYW55IGFyZ3MgZm9yIDogJyArIHN0YXRlLnRhZyk7XG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSlcbiAgICAgICAgcmV0dXJuIHJlcG9ydGVyLmVycm9yKCdzZXFvZi9zZXRvZiwgYnV0IGRhdGEgaXMgbm90IEFycmF5Jyk7XG5cbiAgICAgIHZhciBjaGlsZCA9IHRoaXMuY2xvbmUoKTtcbiAgICAgIGNoaWxkLl9iYXNlU3RhdGUuaW1wbGljaXQgPSBudWxsO1xuICAgICAgY29udGVudCA9IHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoZGF0YS5tYXAoZnVuY3Rpb24oaXRlbSkge1xuICAgICAgICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFVzZShzdGF0ZS5hcmdzWzBdLCBkYXRhKS5fZW5jb2RlKGl0ZW0sIHJlcG9ydGVyKTtcbiAgICAgIH0sIGNoaWxkKSk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZS51c2UgIT09IG51bGwpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuX2dldFVzZShzdGF0ZS51c2UsIHBhcmVudCkuX2VuY29kZShkYXRhLCByZXBvcnRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRlbnQgPSB0aGlzLl9lbmNvZGVQcmltaXRpdmUoc3RhdGUudGFnLCBkYXRhKTtcbiAgICAgIHByaW1pdGl2ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gRW5jb2RlIGRhdGEgaXRzZWxmXG4gIHZhciByZXN1bHQ7XG4gIGlmICghc3RhdGUuYW55ICYmIHN0YXRlLmNob2ljZSA9PT0gbnVsbCkge1xuICAgIHZhciB0YWcgPSBzdGF0ZS5pbXBsaWNpdCAhPT0gbnVsbCA/IHN0YXRlLmltcGxpY2l0IDogc3RhdGUudGFnO1xuICAgIHZhciBjbHMgPSBzdGF0ZS5pbXBsaWNpdCA9PT0gbnVsbCA/ICd1bml2ZXJzYWwnIDogJ2NvbnRleHQnO1xuXG4gICAgaWYgKHRhZyA9PT0gbnVsbCkge1xuICAgICAgaWYgKHN0YXRlLnVzZSA9PT0gbnVsbClcbiAgICAgICAgcmVwb3J0ZXIuZXJyb3IoJ1RhZyBjb3VsZCBiZSBvbWl0dGVkIG9ubHkgZm9yIC51c2UoKScpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3RhdGUudXNlID09PSBudWxsKVxuICAgICAgICByZXN1bHQgPSB0aGlzLl9lbmNvZGVDb21wb3NpdGUodGFnLCBwcmltaXRpdmUsIGNscywgY29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gV3JhcCBpbiBleHBsaWNpdFxuICBpZiAoc3RhdGUuZXhwbGljaXQgIT09IG51bGwpXG4gICAgcmVzdWx0ID0gdGhpcy5fZW5jb2RlQ29tcG9zaXRlKHN0YXRlLmV4cGxpY2l0LCBmYWxzZSwgJ2NvbnRleHQnLCByZXN1bHQpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5fZW5jb2RlQ2hvaWNlID0gZnVuY3Rpb24gZW5jb2RlQ2hvaWNlKGRhdGEsIHJlcG9ydGVyKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICB2YXIgbm9kZSA9IHN0YXRlLmNob2ljZVtkYXRhLnR5cGVdO1xuICBpZiAoIW5vZGUpIHtcbiAgICBhc3NlcnQoXG4gICAgICAgIGZhbHNlLFxuICAgICAgICBkYXRhLnR5cGUgKyAnIG5vdCBmb3VuZCBpbiAnICtcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHN0YXRlLmNob2ljZSkpKTtcbiAgfVxuICByZXR1cm4gbm9kZS5fZW5jb2RlKGRhdGEudmFsdWUsIHJlcG9ydGVyKTtcbn07XG5cbk5vZGUucHJvdG90eXBlLl9lbmNvZGVQcmltaXRpdmUgPSBmdW5jdGlvbiBlbmNvZGVQcmltaXRpdmUodGFnLCBkYXRhKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBpZiAoL3N0ciQvLnRlc3QodGFnKSlcbiAgICByZXR1cm4gdGhpcy5fZW5jb2RlU3RyKGRhdGEsIHRhZyk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ29iamlkJyAmJiBzdGF0ZS5hcmdzKVxuICAgIHJldHVybiB0aGlzLl9lbmNvZGVPYmppZChkYXRhLCBzdGF0ZS5yZXZlcnNlQXJnc1swXSwgc3RhdGUuYXJnc1sxXSk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ29iamlkJylcbiAgICByZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoZGF0YSwgbnVsbCwgbnVsbCk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ2dlbnRpbWUnIHx8IHRhZyA9PT0gJ3V0Y3RpbWUnKVxuICAgIHJldHVybiB0aGlzLl9lbmNvZGVUaW1lKGRhdGEsIHRhZyk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ251bGxfJylcbiAgICByZXR1cm4gdGhpcy5fZW5jb2RlTnVsbCgpO1xuICBlbHNlIGlmICh0YWcgPT09ICdpbnQnIHx8IHRhZyA9PT0gJ2VudW0nKVxuICAgIHJldHVybiB0aGlzLl9lbmNvZGVJbnQoZGF0YSwgc3RhdGUuYXJncyAmJiBzdGF0ZS5yZXZlcnNlQXJnc1swXSk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ2Jvb2wnKVxuICAgIHJldHVybiB0aGlzLl9lbmNvZGVCb29sKGRhdGEpO1xuICBlbHNlIGlmICh0YWcgPT09ICdvYmpEZXNjJylcbiAgICByZXR1cm4gdGhpcy5fZW5jb2RlU3RyKGRhdGEsIHRhZyk7XG4gIGVsc2VcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHRhZzogJyArIHRhZyk7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5faXNOdW1zdHIgPSBmdW5jdGlvbiBpc051bXN0cihzdHIpIHtcbiAgcmV0dXJuIC9eWzAtOSBdKiQvLnRlc3Qoc3RyKTtcbn07XG5cbk5vZGUucHJvdG90eXBlLl9pc1ByaW50c3RyID0gZnVuY3Rpb24gaXNQcmludHN0cihzdHIpIHtcbiAgcmV0dXJuIC9eW0EtWmEtejAtOSAnXFwoXFwpXFwrLFxcLVxcLlxcLzo9XFw/XSokLy50ZXN0KHN0cik7XG59O1xuIiwidmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxuZnVuY3Rpb24gUmVwb3J0ZXIob3B0aW9ucykge1xuICB0aGlzLl9yZXBvcnRlclN0YXRlID0ge1xuICAgIG9iajogbnVsbCxcbiAgICBwYXRoOiBbXSxcbiAgICBvcHRpb25zOiBvcHRpb25zIHx8IHt9LFxuICAgIGVycm9yczogW11cbiAgfTtcbn1cbmV4cG9ydHMuUmVwb3J0ZXIgPSBSZXBvcnRlcjtcblxuUmVwb3J0ZXIucHJvdG90eXBlLmlzRXJyb3IgPSBmdW5jdGlvbiBpc0Vycm9yKG9iaikge1xuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgUmVwb3J0ZXJFcnJvcjtcbn07XG5cblJlcG9ydGVyLnByb3RvdHlwZS5zYXZlID0gZnVuY3Rpb24gc2F2ZSgpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVwb3J0ZXJTdGF0ZTtcblxuICByZXR1cm4geyBvYmo6IHN0YXRlLm9iaiwgcGF0aExlbjogc3RhdGUucGF0aC5sZW5ndGggfTtcbn07XG5cblJlcG9ydGVyLnByb3RvdHlwZS5yZXN0b3JlID0gZnVuY3Rpb24gcmVzdG9yZShkYXRhKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlcG9ydGVyU3RhdGU7XG5cbiAgc3RhdGUub2JqID0gZGF0YS5vYmo7XG4gIHN0YXRlLnBhdGggPSBzdGF0ZS5wYXRoLnNsaWNlKDAsIGRhdGEucGF0aExlbik7XG59O1xuXG5SZXBvcnRlci5wcm90b3R5cGUuZW50ZXJLZXkgPSBmdW5jdGlvbiBlbnRlcktleShrZXkpIHtcbiAgcmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKGtleSk7XG59O1xuXG5SZXBvcnRlci5wcm90b3R5cGUuZXhpdEtleSA9IGZ1bmN0aW9uIGV4aXRLZXkoaW5kZXgpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVwb3J0ZXJTdGF0ZTtcblxuICBzdGF0ZS5wYXRoID0gc3RhdGUucGF0aC5zbGljZSgwLCBpbmRleCAtIDEpO1xufTtcblxuUmVwb3J0ZXIucHJvdG90eXBlLmxlYXZlS2V5ID0gZnVuY3Rpb24gbGVhdmVLZXkoaW5kZXgsIGtleSwgdmFsdWUpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVwb3J0ZXJTdGF0ZTtcblxuICB0aGlzLmV4aXRLZXkoaW5kZXgpO1xuICBpZiAoc3RhdGUub2JqICE9PSBudWxsKVxuICAgIHN0YXRlLm9ialtrZXldID0gdmFsdWU7XG59O1xuXG5SZXBvcnRlci5wcm90b3R5cGUucGF0aCA9IGZ1bmN0aW9uIHBhdGgoKSB7XG4gIHJldHVybiB0aGlzLl9yZXBvcnRlclN0YXRlLnBhdGguam9pbignLycpO1xufTtcblxuUmVwb3J0ZXIucHJvdG90eXBlLmVudGVyT2JqZWN0ID0gZnVuY3Rpb24gZW50ZXJPYmplY3QoKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlcG9ydGVyU3RhdGU7XG5cbiAgdmFyIHByZXYgPSBzdGF0ZS5vYmo7XG4gIHN0YXRlLm9iaiA9IHt9O1xuICByZXR1cm4gcHJldjtcbn07XG5cblJlcG9ydGVyLnByb3RvdHlwZS5sZWF2ZU9iamVjdCA9IGZ1bmN0aW9uIGxlYXZlT2JqZWN0KHByZXYpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVwb3J0ZXJTdGF0ZTtcblxuICB2YXIgbm93ID0gc3RhdGUub2JqO1xuICBzdGF0ZS5vYmogPSBwcmV2O1xuICByZXR1cm4gbm93O1xufTtcblxuUmVwb3J0ZXIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24gZXJyb3IobXNnKSB7XG4gIHZhciBlcnI7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlcG9ydGVyU3RhdGU7XG5cbiAgdmFyIGluaGVyaXRlZCA9IG1zZyBpbnN0YW5jZW9mIFJlcG9ydGVyRXJyb3I7XG4gIGlmIChpbmhlcml0ZWQpIHtcbiAgICBlcnIgPSBtc2c7XG4gIH0gZWxzZSB7XG4gICAgZXJyID0gbmV3IFJlcG9ydGVyRXJyb3Ioc3RhdGUucGF0aC5tYXAoZnVuY3Rpb24oZWxlbSkge1xuICAgICAgcmV0dXJuICdbJyArIEpTT04uc3RyaW5naWZ5KGVsZW0pICsgJ10nO1xuICAgIH0pLmpvaW4oJycpLCBtc2cubWVzc2FnZSB8fCBtc2csIG1zZy5zdGFjayk7XG4gIH1cblxuICBpZiAoIXN0YXRlLm9wdGlvbnMucGFydGlhbClcbiAgICB0aHJvdyBlcnI7XG5cbiAgaWYgKCFpbmhlcml0ZWQpXG4gICAgc3RhdGUuZXJyb3JzLnB1c2goZXJyKTtcblxuICByZXR1cm4gZXJyO1xufTtcblxuUmVwb3J0ZXIucHJvdG90eXBlLndyYXBSZXN1bHQgPSBmdW5jdGlvbiB3cmFwUmVzdWx0KHJlc3VsdCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZXBvcnRlclN0YXRlO1xuICBpZiAoIXN0YXRlLm9wdGlvbnMucGFydGlhbClcbiAgICByZXR1cm4gcmVzdWx0O1xuXG4gIHJldHVybiB7XG4gICAgcmVzdWx0OiB0aGlzLmlzRXJyb3IocmVzdWx0KSA/IG51bGwgOiByZXN1bHQsXG4gICAgZXJyb3JzOiBzdGF0ZS5lcnJvcnNcbiAgfTtcbn07XG5cbmZ1bmN0aW9uIFJlcG9ydGVyRXJyb3IocGF0aCwgbXNnKSB7XG4gIHRoaXMucGF0aCA9IHBhdGg7XG4gIHRoaXMucmV0aHJvdyhtc2cpO1xufTtcbmluaGVyaXRzKFJlcG9ydGVyRXJyb3IsIEVycm9yKTtcblxuUmVwb3J0ZXJFcnJvci5wcm90b3R5cGUucmV0aHJvdyA9IGZ1bmN0aW9uIHJldGhyb3cobXNnKSB7XG4gIHRoaXMubWVzc2FnZSA9IG1zZyArICcgYXQ6ICcgKyAodGhpcy5wYXRoIHx8ICcoc2hhbGxvdyknKTtcbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKVxuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIFJlcG9ydGVyRXJyb3IpO1xuXG4gIGlmICghdGhpcy5zdGFjaykge1xuICAgIHRyeSB7XG4gICAgICAvLyBJRSBvbmx5IGFkZHMgc3RhY2sgd2hlbiB0aHJvd25cbiAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLm1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuc3RhY2sgPSBlLnN0YWNrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG4iLCJ2YXIgY29uc3RhbnRzID0gcmVxdWlyZSgnLi4vY29uc3RhbnRzJyk7XG5cbmV4cG9ydHMudGFnQ2xhc3MgPSB7XG4gIDA6ICd1bml2ZXJzYWwnLFxuICAxOiAnYXBwbGljYXRpb24nLFxuICAyOiAnY29udGV4dCcsXG4gIDM6ICdwcml2YXRlJ1xufTtcbmV4cG9ydHMudGFnQ2xhc3NCeU5hbWUgPSBjb25zdGFudHMuX3JldmVyc2UoZXhwb3J0cy50YWdDbGFzcyk7XG5cbmV4cG9ydHMudGFnID0ge1xuICAweDAwOiAnZW5kJyxcbiAgMHgwMTogJ2Jvb2wnLFxuICAweDAyOiAnaW50JyxcbiAgMHgwMzogJ2JpdHN0cicsXG4gIDB4MDQ6ICdvY3RzdHInLFxuICAweDA1OiAnbnVsbF8nLFxuICAweDA2OiAnb2JqaWQnLFxuICAweDA3OiAnb2JqRGVzYycsXG4gIDB4MDg6ICdleHRlcm5hbCcsXG4gIDB4MDk6ICdyZWFsJyxcbiAgMHgwYTogJ2VudW0nLFxuICAweDBiOiAnZW1iZWQnLFxuICAweDBjOiAndXRmOHN0cicsXG4gIDB4MGQ6ICdyZWxhdGl2ZU9pZCcsXG4gIDB4MTA6ICdzZXEnLFxuICAweDExOiAnc2V0JyxcbiAgMHgxMjogJ251bXN0cicsXG4gIDB4MTM6ICdwcmludHN0cicsXG4gIDB4MTQ6ICd0NjFzdHInLFxuICAweDE1OiAndmlkZW9zdHInLFxuICAweDE2OiAnaWE1c3RyJyxcbiAgMHgxNzogJ3V0Y3RpbWUnLFxuICAweDE4OiAnZ2VudGltZScsXG4gIDB4MTk6ICdncmFwaHN0cicsXG4gIDB4MWE6ICdpc282NDZzdHInLFxuICAweDFiOiAnZ2Vuc3RyJyxcbiAgMHgxYzogJ3VuaXN0cicsXG4gIDB4MWQ6ICdjaGFyc3RyJyxcbiAgMHgxZTogJ2JtcHN0cidcbn07XG5leHBvcnRzLnRhZ0J5TmFtZSA9IGNvbnN0YW50cy5fcmV2ZXJzZShleHBvcnRzLnRhZyk7XG4iLCJ2YXIgY29uc3RhbnRzID0gZXhwb3J0cztcblxuLy8gSGVscGVyXG5jb25zdGFudHMuX3JldmVyc2UgPSBmdW5jdGlvbiByZXZlcnNlKG1hcCkge1xuICB2YXIgcmVzID0ge307XG5cbiAgT2JqZWN0LmtleXMobWFwKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIC8vIENvbnZlcnQga2V5IHRvIGludGVnZXIgaWYgaXQgaXMgc3RyaW5naWZpZWRcbiAgICBpZiAoKGtleSB8IDApID09IGtleSlcbiAgICAgIGtleSA9IGtleSB8IDA7XG5cbiAgICB2YXIgdmFsdWUgPSBtYXBba2V5XTtcbiAgICByZXNbdmFsdWVdID0ga2V5O1xuICB9KTtcblxuICByZXR1cm4gcmVzO1xufTtcblxuY29uc3RhbnRzLmRlciA9IHJlcXVpcmUoJy4vZGVyJyk7XG4iLCJ2YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuXG52YXIgYXNuMSA9IHJlcXVpcmUoJy4uLy4uL2FzbjEnKTtcbnZhciBiYXNlID0gYXNuMS5iYXNlO1xudmFyIGJpZ251bSA9IGFzbjEuYmlnbnVtO1xuXG4vLyBJbXBvcnQgREVSIGNvbnN0YW50c1xudmFyIGRlciA9IGFzbjEuY29uc3RhbnRzLmRlcjtcblxuZnVuY3Rpb24gREVSRGVjb2RlcihlbnRpdHkpIHtcbiAgdGhpcy5lbmMgPSAnZGVyJztcbiAgdGhpcy5uYW1lID0gZW50aXR5Lm5hbWU7XG4gIHRoaXMuZW50aXR5ID0gZW50aXR5O1xuXG4gIC8vIENvbnN0cnVjdCBiYXNlIHRyZWVcbiAgdGhpcy50cmVlID0gbmV3IERFUk5vZGUoKTtcbiAgdGhpcy50cmVlLl9pbml0KGVudGl0eS5ib2R5KTtcbn07XG5tb2R1bGUuZXhwb3J0cyA9IERFUkRlY29kZXI7XG5cbkRFUkRlY29kZXIucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uIGRlY29kZShkYXRhLCBvcHRpb25zKSB7XG4gIGlmICghKGRhdGEgaW5zdGFuY2VvZiBiYXNlLkRlY29kZXJCdWZmZXIpKVxuICAgIGRhdGEgPSBuZXcgYmFzZS5EZWNvZGVyQnVmZmVyKGRhdGEsIG9wdGlvbnMpO1xuXG4gIHJldHVybiB0aGlzLnRyZWUuX2RlY29kZShkYXRhLCBvcHRpb25zKTtcbn07XG5cbi8vIFRyZWUgbWV0aG9kc1xuXG5mdW5jdGlvbiBERVJOb2RlKHBhcmVudCkge1xuICBiYXNlLk5vZGUuY2FsbCh0aGlzLCAnZGVyJywgcGFyZW50KTtcbn1cbmluaGVyaXRzKERFUk5vZGUsIGJhc2UuTm9kZSk7XG5cbkRFUk5vZGUucHJvdG90eXBlLl9wZWVrVGFnID0gZnVuY3Rpb24gcGVla1RhZyhidWZmZXIsIHRhZywgYW55KSB7XG4gIGlmIChidWZmZXIuaXNFbXB0eSgpKVxuICAgIHJldHVybiBmYWxzZTtcblxuICB2YXIgc3RhdGUgPSBidWZmZXIuc2F2ZSgpO1xuICB2YXIgZGVjb2RlZFRhZyA9IGRlckRlY29kZVRhZyhidWZmZXIsICdGYWlsZWQgdG8gcGVlayB0YWc6IFwiJyArIHRhZyArICdcIicpO1xuICBpZiAoYnVmZmVyLmlzRXJyb3IoZGVjb2RlZFRhZykpXG4gICAgcmV0dXJuIGRlY29kZWRUYWc7XG5cbiAgYnVmZmVyLnJlc3RvcmUoc3RhdGUpO1xuXG4gIHJldHVybiBkZWNvZGVkVGFnLnRhZyA9PT0gdGFnIHx8IGRlY29kZWRUYWcudGFnU3RyID09PSB0YWcgfHxcbiAgICAoZGVjb2RlZFRhZy50YWdTdHIgKyAnb2YnKSA9PT0gdGFnIHx8IGFueTtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVUYWcgPSBmdW5jdGlvbiBkZWNvZGVUYWcoYnVmZmVyLCB0YWcsIGFueSkge1xuICB2YXIgZGVjb2RlZFRhZyA9IGRlckRlY29kZVRhZyhidWZmZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gZGVjb2RlIHRhZyBvZiBcIicgKyB0YWcgKyAnXCInKTtcbiAgaWYgKGJ1ZmZlci5pc0Vycm9yKGRlY29kZWRUYWcpKVxuICAgIHJldHVybiBkZWNvZGVkVGFnO1xuXG4gIHZhciBsZW4gPSBkZXJEZWNvZGVMZW4oYnVmZmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZWRUYWcucHJpbWl0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gZ2V0IGxlbmd0aCBvZiBcIicgKyB0YWcgKyAnXCInKTtcblxuICAvLyBGYWlsdXJlXG4gIGlmIChidWZmZXIuaXNFcnJvcihsZW4pKVxuICAgIHJldHVybiBsZW47XG5cbiAgaWYgKCFhbnkgJiZcbiAgICAgIGRlY29kZWRUYWcudGFnICE9PSB0YWcgJiZcbiAgICAgIGRlY29kZWRUYWcudGFnU3RyICE9PSB0YWcgJiZcbiAgICAgIGRlY29kZWRUYWcudGFnU3RyICsgJ29mJyAhPT0gdGFnKSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogXCInICsgdGFnICsgJ1wiJyk7XG4gIH1cblxuICBpZiAoZGVjb2RlZFRhZy5wcmltaXRpdmUgfHwgbGVuICE9PSBudWxsKVxuICAgIHJldHVybiBidWZmZXIuc2tpcChsZW4sICdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogXCInICsgdGFnICsgJ1wiJyk7XG5cbiAgLy8gSW5kZWZpbml0ZSBsZW5ndGguLi4gZmluZCBFTkQgdGFnXG4gIHZhciBzdGF0ZSA9IGJ1ZmZlci5zYXZlKCk7XG4gIHZhciByZXMgPSB0aGlzLl9za2lwVW50aWxFbmQoXG4gICAgICBidWZmZXIsXG4gICAgICAnRmFpbGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogXCInICsgdGhpcy50YWcgKyAnXCInKTtcbiAgaWYgKGJ1ZmZlci5pc0Vycm9yKHJlcykpXG4gICAgcmV0dXJuIHJlcztcblxuICBsZW4gPSBidWZmZXIub2Zmc2V0IC0gc3RhdGUub2Zmc2V0O1xuICBidWZmZXIucmVzdG9yZShzdGF0ZSk7XG4gIHJldHVybiBidWZmZXIuc2tpcChsZW4sICdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogXCInICsgdGFnICsgJ1wiJyk7XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fc2tpcFVudGlsRW5kID0gZnVuY3Rpb24gc2tpcFVudGlsRW5kKGJ1ZmZlciwgZmFpbCkge1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIHZhciB0YWcgPSBkZXJEZWNvZGVUYWcoYnVmZmVyLCBmYWlsKTtcbiAgICBpZiAoYnVmZmVyLmlzRXJyb3IodGFnKSlcbiAgICAgIHJldHVybiB0YWc7XG4gICAgdmFyIGxlbiA9IGRlckRlY29kZUxlbihidWZmZXIsIHRhZy5wcmltaXRpdmUsIGZhaWwpO1xuICAgIGlmIChidWZmZXIuaXNFcnJvcihsZW4pKVxuICAgICAgcmV0dXJuIGxlbjtcblxuICAgIHZhciByZXM7XG4gICAgaWYgKHRhZy5wcmltaXRpdmUgfHwgbGVuICE9PSBudWxsKVxuICAgICAgcmVzID0gYnVmZmVyLnNraXAobGVuKVxuICAgIGVsc2VcbiAgICAgIHJlcyA9IHRoaXMuX3NraXBVbnRpbEVuZChidWZmZXIsIGZhaWwpO1xuXG4gICAgLy8gRmFpbHVyZVxuICAgIGlmIChidWZmZXIuaXNFcnJvcihyZXMpKVxuICAgICAgcmV0dXJuIHJlcztcblxuICAgIGlmICh0YWcudGFnU3RyID09PSAnZW5kJylcbiAgICAgIGJyZWFrO1xuICB9XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fZGVjb2RlTGlzdCA9IGZ1bmN0aW9uIGRlY29kZUxpc3QoYnVmZmVyLCB0YWcsIGRlY29kZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucykge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHdoaWxlICghYnVmZmVyLmlzRW1wdHkoKSkge1xuICAgIHZhciBwb3NzaWJsZUVuZCA9IHRoaXMuX3BlZWtUYWcoYnVmZmVyLCAnZW5kJyk7XG4gICAgaWYgKGJ1ZmZlci5pc0Vycm9yKHBvc3NpYmxlRW5kKSlcbiAgICAgIHJldHVybiBwb3NzaWJsZUVuZDtcblxuICAgIHZhciByZXMgPSBkZWNvZGVyLmRlY29kZShidWZmZXIsICdkZXInLCBvcHRpb25zKTtcbiAgICBpZiAoYnVmZmVyLmlzRXJyb3IocmVzKSAmJiBwb3NzaWJsZUVuZClcbiAgICAgIGJyZWFrO1xuICAgIHJlc3VsdC5wdXNoKHJlcyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVTdHIgPSBmdW5jdGlvbiBkZWNvZGVTdHIoYnVmZmVyLCB0YWcpIHtcbiAgaWYgKHRhZyA9PT0gJ2JpdHN0cicpIHtcbiAgICB2YXIgdW51c2VkID0gYnVmZmVyLnJlYWRVSW50OCgpO1xuICAgIGlmIChidWZmZXIuaXNFcnJvcih1bnVzZWQpKVxuICAgICAgcmV0dXJuIHVudXNlZDtcbiAgICByZXR1cm4geyB1bnVzZWQ6IHVudXNlZCwgZGF0YTogYnVmZmVyLnJhdygpIH07XG4gIH0gZWxzZSBpZiAodGFnID09PSAnYm1wc3RyJykge1xuICAgIHZhciByYXcgPSBidWZmZXIucmF3KCk7XG4gICAgaWYgKHJhdy5sZW5ndGggJSAyID09PSAxKVxuICAgICAgcmV0dXJuIGJ1ZmZlci5lcnJvcignRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IGJtcHN0ciBsZW5ndGggbWlzbWF0Y2gnKTtcblxuICAgIHZhciBzdHIgPSAnJztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhdy5sZW5ndGggLyAyOyBpKyspIHtcbiAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHJhdy5yZWFkVUludDE2QkUoaSAqIDIpKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfSBlbHNlIGlmICh0YWcgPT09ICdudW1zdHInKSB7XG4gICAgdmFyIG51bXN0ciA9IGJ1ZmZlci5yYXcoKS50b1N0cmluZygnYXNjaWknKTtcbiAgICBpZiAoIXRoaXMuX2lzTnVtc3RyKG51bXN0cikpIHtcbiAgICAgIHJldHVybiBidWZmZXIuZXJyb3IoJ0RlY29kaW5nIG9mIHN0cmluZyB0eXBlOiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bXN0ciB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzJyk7XG4gICAgfVxuICAgIHJldHVybiBudW1zdHI7XG4gIH0gZWxzZSBpZiAodGFnID09PSAnb2N0c3RyJykge1xuICAgIHJldHVybiBidWZmZXIucmF3KCk7XG4gIH0gZWxzZSBpZiAodGFnID09PSAnb2JqRGVzYycpIHtcbiAgICByZXR1cm4gYnVmZmVyLnJhdygpO1xuICB9IGVsc2UgaWYgKHRhZyA9PT0gJ3ByaW50c3RyJykge1xuICAgIHZhciBwcmludHN0ciA9IGJ1ZmZlci5yYXcoKS50b1N0cmluZygnYXNjaWknKTtcbiAgICBpZiAoIXRoaXMuX2lzUHJpbnRzdHIocHJpbnRzdHIpKSB7XG4gICAgICByZXR1cm4gYnVmZmVyLmVycm9yKCdEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdwcmludHN0ciB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzJyk7XG4gICAgfVxuICAgIHJldHVybiBwcmludHN0cjtcbiAgfSBlbHNlIGlmICgvc3RyJC8udGVzdCh0YWcpKSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5yYXcoKS50b1N0cmluZygpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBidWZmZXIuZXJyb3IoJ0RlY29kaW5nIG9mIHN0cmluZyB0eXBlOiAnICsgdGFnICsgJyB1bnN1cHBvcnRlZCcpO1xuICB9XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fZGVjb2RlT2JqaWQgPSBmdW5jdGlvbiBkZWNvZGVPYmppZChidWZmZXIsIHZhbHVlcywgcmVsYXRpdmUpIHtcbiAgdmFyIHJlc3VsdDtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG4gIHZhciBpZGVudCA9IDA7XG4gIHdoaWxlICghYnVmZmVyLmlzRW1wdHkoKSkge1xuICAgIHZhciBzdWJpZGVudCA9IGJ1ZmZlci5yZWFkVUludDgoKTtcbiAgICBpZGVudCA8PD0gNztcbiAgICBpZGVudCB8PSBzdWJpZGVudCAmIDB4N2Y7XG4gICAgaWYgKChzdWJpZGVudCAmIDB4ODApID09PSAwKSB7XG4gICAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50KTtcbiAgICAgIGlkZW50ID0gMDtcbiAgICB9XG4gIH1cbiAgaWYgKHN1YmlkZW50ICYgMHg4MClcbiAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50KTtcblxuICB2YXIgZmlyc3QgPSAoaWRlbnRpZmllcnNbMF0gLyA0MCkgfCAwO1xuICB2YXIgc2Vjb25kID0gaWRlbnRpZmllcnNbMF0gJSA0MDtcblxuICBpZiAocmVsYXRpdmUpXG4gICAgcmVzdWx0ID0gaWRlbnRpZmllcnM7XG4gIGVsc2VcbiAgICByZXN1bHQgPSBbZmlyc3QsIHNlY29uZF0uY29uY2F0KGlkZW50aWZpZXJzLnNsaWNlKDEpKTtcblxuICBpZiAodmFsdWVzKSB7XG4gICAgdmFyIHRtcCA9IHZhbHVlc1tyZXN1bHQuam9pbignICcpXTtcbiAgICBpZiAodG1wID09PSB1bmRlZmluZWQpXG4gICAgICB0bXAgPSB2YWx1ZXNbcmVzdWx0LmpvaW4oJy4nKV07XG4gICAgaWYgKHRtcCAhPT0gdW5kZWZpbmVkKVxuICAgICAgcmVzdWx0ID0gdG1wO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVUaW1lID0gZnVuY3Rpb24gZGVjb2RlVGltZShidWZmZXIsIHRhZykge1xuICB2YXIgc3RyID0gYnVmZmVyLnJhdygpLnRvU3RyaW5nKCk7XG4gIGlmICh0YWcgPT09ICdnZW50aW1lJykge1xuICAgIHZhciB5ZWFyID0gc3RyLnNsaWNlKDAsIDQpIHwgMDtcbiAgICB2YXIgbW9uID0gc3RyLnNsaWNlKDQsIDYpIHwgMDtcbiAgICB2YXIgZGF5ID0gc3RyLnNsaWNlKDYsIDgpIHwgMDtcbiAgICB2YXIgaG91ciA9IHN0ci5zbGljZSg4LCAxMCkgfCAwO1xuICAgIHZhciBtaW4gPSBzdHIuc2xpY2UoMTAsIDEyKSB8IDA7XG4gICAgdmFyIHNlYyA9IHN0ci5zbGljZSgxMiwgMTQpIHwgMDtcbiAgfSBlbHNlIGlmICh0YWcgPT09ICd1dGN0aW1lJykge1xuICAgIHZhciB5ZWFyID0gc3RyLnNsaWNlKDAsIDIpIHwgMDtcbiAgICB2YXIgbW9uID0gc3RyLnNsaWNlKDIsIDQpIHwgMDtcbiAgICB2YXIgZGF5ID0gc3RyLnNsaWNlKDQsIDYpIHwgMDtcbiAgICB2YXIgaG91ciA9IHN0ci5zbGljZSg2LCA4KSB8IDA7XG4gICAgdmFyIG1pbiA9IHN0ci5zbGljZSg4LCAxMCkgfCAwO1xuICAgIHZhciBzZWMgPSBzdHIuc2xpY2UoMTAsIDEyKSB8IDA7XG4gICAgaWYgKHllYXIgPCA3MClcbiAgICAgIHllYXIgPSAyMDAwICsgeWVhcjtcbiAgICBlbHNlXG4gICAgICB5ZWFyID0gMTkwMCArIHllYXI7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5lcnJvcignRGVjb2RpbmcgJyArIHRhZyArICcgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCcpO1xuICB9XG5cbiAgcmV0dXJuIERhdGUuVVRDKHllYXIsIG1vbiAtIDEsIGRheSwgaG91ciwgbWluLCBzZWMsIDApO1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2RlY29kZU51bGwgPSBmdW5jdGlvbiBkZWNvZGVOdWxsKGJ1ZmZlcikge1xuICByZXR1cm4gbnVsbDtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVCb29sID0gZnVuY3Rpb24gZGVjb2RlQm9vbChidWZmZXIpIHtcbiAgdmFyIHJlcyA9IGJ1ZmZlci5yZWFkVUludDgoKTtcbiAgaWYgKGJ1ZmZlci5pc0Vycm9yKHJlcykpXG4gICAgcmV0dXJuIHJlcztcbiAgZWxzZVxuICAgIHJldHVybiByZXMgIT09IDA7XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fZGVjb2RlSW50ID0gZnVuY3Rpb24gZGVjb2RlSW50KGJ1ZmZlciwgdmFsdWVzKSB7XG4gIC8vIEJpZ2ludCwgcmV0dXJuIGFzIGl0IGlzIChhc3N1bWUgYmlnIGVuZGlhbilcbiAgdmFyIHJhdyA9IGJ1ZmZlci5yYXcoKTtcbiAgdmFyIHJlcyA9IG5ldyBiaWdudW0ocmF3KTtcblxuICBpZiAodmFsdWVzKVxuICAgIHJlcyA9IHZhbHVlc1tyZXMudG9TdHJpbmcoMTApXSB8fCByZXM7XG5cbiAgcmV0dXJuIHJlcztcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl91c2UgPSBmdW5jdGlvbiB1c2UoZW50aXR5LCBvYmopIHtcbiAgaWYgKHR5cGVvZiBlbnRpdHkgPT09ICdmdW5jdGlvbicpXG4gICAgZW50aXR5ID0gZW50aXR5KG9iaik7XG4gIHJldHVybiBlbnRpdHkuX2dldERlY29kZXIoJ2RlcicpLnRyZWU7XG59O1xuXG4vLyBVdGlsaXR5IG1ldGhvZHNcblxuZnVuY3Rpb24gZGVyRGVjb2RlVGFnKGJ1ZiwgZmFpbCkge1xuICB2YXIgdGFnID0gYnVmLnJlYWRVSW50OChmYWlsKTtcbiAgaWYgKGJ1Zi5pc0Vycm9yKHRhZykpXG4gICAgcmV0dXJuIHRhZztcblxuICB2YXIgY2xzID0gZGVyLnRhZ0NsYXNzW3RhZyA+PiA2XTtcbiAgdmFyIHByaW1pdGl2ZSA9ICh0YWcgJiAweDIwKSA9PT0gMDtcblxuICAvLyBNdWx0aS1vY3RldCB0YWcgLSBsb2FkXG4gIGlmICgodGFnICYgMHgxZikgPT09IDB4MWYpIHtcbiAgICB2YXIgb2N0ID0gdGFnO1xuICAgIHRhZyA9IDA7XG4gICAgd2hpbGUgKChvY3QgJiAweDgwKSA9PT0gMHg4MCkge1xuICAgICAgb2N0ID0gYnVmLnJlYWRVSW50OChmYWlsKTtcbiAgICAgIGlmIChidWYuaXNFcnJvcihvY3QpKVxuICAgICAgICByZXR1cm4gb2N0O1xuXG4gICAgICB0YWcgPDw9IDc7XG4gICAgICB0YWcgfD0gb2N0ICYgMHg3ZjtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGFnICY9IDB4MWY7XG4gIH1cbiAgdmFyIHRhZ1N0ciA9IGRlci50YWdbdGFnXTtcblxuICByZXR1cm4ge1xuICAgIGNsczogY2xzLFxuICAgIHByaW1pdGl2ZTogcHJpbWl0aXZlLFxuICAgIHRhZzogdGFnLFxuICAgIHRhZ1N0cjogdGFnU3RyXG4gIH07XG59XG5cbmZ1bmN0aW9uIGRlckRlY29kZUxlbihidWYsIHByaW1pdGl2ZSwgZmFpbCkge1xuICB2YXIgbGVuID0gYnVmLnJlYWRVSW50OChmYWlsKTtcbiAgaWYgKGJ1Zi5pc0Vycm9yKGxlbikpXG4gICAgcmV0dXJuIGxlbjtcblxuICAvLyBJbmRlZmluaXRlIGZvcm1cbiAgaWYgKCFwcmltaXRpdmUgJiYgbGVuID09PSAweDgwKVxuICAgIHJldHVybiBudWxsO1xuXG4gIC8vIERlZmluaXRlIGZvcm1cbiAgaWYgKChsZW4gJiAweDgwKSA9PT0gMCkge1xuICAgIC8vIFNob3J0IGZvcm1cbiAgICByZXR1cm4gbGVuO1xuICB9XG5cbiAgLy8gTG9uZyBmb3JtXG4gIHZhciBudW0gPSBsZW4gJiAweDdmO1xuICBpZiAobnVtID4gNClcbiAgICByZXR1cm4gYnVmLmVycm9yKCdsZW5ndGggb2N0ZWN0IGlzIHRvbyBsb25nJyk7XG5cbiAgbGVuID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW07IGkrKykge1xuICAgIGxlbiA8PD0gODtcbiAgICB2YXIgaiA9IGJ1Zi5yZWFkVUludDgoZmFpbCk7XG4gICAgaWYgKGJ1Zi5pc0Vycm9yKGopKVxuICAgICAgcmV0dXJuIGo7XG4gICAgbGVuIHw9IGo7XG4gIH1cblxuICByZXR1cm4gbGVuO1xufVxuIiwidmFyIGRlY29kZXJzID0gZXhwb3J0cztcblxuZGVjb2RlcnMuZGVyID0gcmVxdWlyZSgnLi9kZXInKTtcbmRlY29kZXJzLnBlbSA9IHJlcXVpcmUoJy4vcGVtJyk7XG4iLCJ2YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlcjtcblxudmFyIERFUkRlY29kZXIgPSByZXF1aXJlKCcuL2RlcicpO1xuXG5mdW5jdGlvbiBQRU1EZWNvZGVyKGVudGl0eSkge1xuICBERVJEZWNvZGVyLmNhbGwodGhpcywgZW50aXR5KTtcbiAgdGhpcy5lbmMgPSAncGVtJztcbn07XG5pbmhlcml0cyhQRU1EZWNvZGVyLCBERVJEZWNvZGVyKTtcbm1vZHVsZS5leHBvcnRzID0gUEVNRGVjb2RlcjtcblxuUEVNRGVjb2Rlci5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKGRhdGEsIG9wdGlvbnMpIHtcbiAgdmFyIGxpbmVzID0gZGF0YS50b1N0cmluZygpLnNwbGl0KC9bXFxyXFxuXSsvZyk7XG5cbiAgdmFyIGxhYmVsID0gb3B0aW9ucy5sYWJlbC50b1VwcGVyQ2FzZSgpO1xuXG4gIHZhciByZSA9IC9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLztcbiAgdmFyIHN0YXJ0ID0gLTE7XG4gIHZhciBlbmQgPSAtMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtYXRjaCA9IGxpbmVzW2ldLm1hdGNoKHJlKTtcbiAgICBpZiAobWF0Y2ggPT09IG51bGwpXG4gICAgICBjb250aW51ZTtcblxuICAgIGlmIChtYXRjaFsyXSAhPT0gbGFiZWwpXG4gICAgICBjb250aW51ZTtcblxuICAgIGlmIChzdGFydCA9PT0gLTEpIHtcbiAgICAgIGlmIChtYXRjaFsxXSAhPT0gJ0JFR0lOJylcbiAgICAgICAgYnJlYWs7XG4gICAgICBzdGFydCA9IGk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtYXRjaFsxXSAhPT0gJ0VORCcpXG4gICAgICAgIGJyZWFrO1xuICAgICAgZW5kID0gaTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoc3RhcnQgPT09IC0xIHx8IGVuZCA9PT0gLTEpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAnICsgbGFiZWwpO1xuXG4gIHZhciBiYXNlNjQgPSBsaW5lcy5zbGljZShzdGFydCArIDEsIGVuZCkuam9pbignJyk7XG4gIC8vIFJlbW92ZSBleGNlc3NpdmUgc3ltYm9sc1xuICBiYXNlNjQucmVwbGFjZSgvW15hLXowLTlcXCtcXC89XSsvZ2ksICcnKTtcblxuICB2YXIgaW5wdXQgPSBuZXcgQnVmZmVyKGJhc2U2NCwgJ2Jhc2U2NCcpO1xuICByZXR1cm4gREVSRGVjb2Rlci5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcywgaW5wdXQsIG9wdGlvbnMpO1xufTtcbiIsInZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG52YXIgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykuQnVmZmVyO1xuXG52YXIgYXNuMSA9IHJlcXVpcmUoJy4uLy4uL2FzbjEnKTtcbnZhciBiYXNlID0gYXNuMS5iYXNlO1xuXG4vLyBJbXBvcnQgREVSIGNvbnN0YW50c1xudmFyIGRlciA9IGFzbjEuY29uc3RhbnRzLmRlcjtcblxuZnVuY3Rpb24gREVSRW5jb2RlcihlbnRpdHkpIHtcbiAgdGhpcy5lbmMgPSAnZGVyJztcbiAgdGhpcy5uYW1lID0gZW50aXR5Lm5hbWU7XG4gIHRoaXMuZW50aXR5ID0gZW50aXR5O1xuXG4gIC8vIENvbnN0cnVjdCBiYXNlIHRyZWVcbiAgdGhpcy50cmVlID0gbmV3IERFUk5vZGUoKTtcbiAgdGhpcy50cmVlLl9pbml0KGVudGl0eS5ib2R5KTtcbn07XG5tb2R1bGUuZXhwb3J0cyA9IERFUkVuY29kZXI7XG5cbkRFUkVuY29kZXIucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShkYXRhLCByZXBvcnRlcikge1xuICByZXR1cm4gdGhpcy50cmVlLl9lbmNvZGUoZGF0YSwgcmVwb3J0ZXIpLmpvaW4oKTtcbn07XG5cbi8vIFRyZWUgbWV0aG9kc1xuXG5mdW5jdGlvbiBERVJOb2RlKHBhcmVudCkge1xuICBiYXNlLk5vZGUuY2FsbCh0aGlzLCAnZGVyJywgcGFyZW50KTtcbn1cbmluaGVyaXRzKERFUk5vZGUsIGJhc2UuTm9kZSk7XG5cbkRFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVDb21wb3NpdGUgPSBmdW5jdGlvbiBlbmNvZGVDb21wb3NpdGUodGFnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltaXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCkge1xuICB2YXIgZW5jb2RlZFRhZyA9IGVuY29kZVRhZyh0YWcsIHByaW1pdGl2ZSwgY2xzLCB0aGlzLnJlcG9ydGVyKTtcblxuICAvLyBTaG9ydCBmb3JtXG4gIGlmIChjb250ZW50Lmxlbmd0aCA8IDB4ODApIHtcbiAgICB2YXIgaGVhZGVyID0gbmV3IEJ1ZmZlcigyKTtcbiAgICBoZWFkZXJbMF0gPSBlbmNvZGVkVGFnO1xuICAgIGhlYWRlclsxXSA9IGNvbnRlbnQubGVuZ3RoO1xuICAgIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFsgaGVhZGVyLCBjb250ZW50IF0pO1xuICB9XG5cbiAgLy8gTG9uZyBmb3JtXG4gIC8vIENvdW50IG9jdGV0cyByZXF1aXJlZCB0byBzdG9yZSBsZW5ndGhcbiAgdmFyIGxlbk9jdGV0cyA9IDE7XG4gIGZvciAodmFyIGkgPSBjb250ZW50Lmxlbmd0aDsgaSA+PSAweDEwMDsgaSA+Pj0gOClcbiAgICBsZW5PY3RldHMrKztcblxuICB2YXIgaGVhZGVyID0gbmV3IEJ1ZmZlcigxICsgMSArIGxlbk9jdGV0cyk7XG4gIGhlYWRlclswXSA9IGVuY29kZWRUYWc7XG4gIGhlYWRlclsxXSA9IDB4ODAgfCBsZW5PY3RldHM7XG5cbiAgZm9yICh2YXIgaSA9IDEgKyBsZW5PY3RldHMsIGogPSBjb250ZW50Lmxlbmd0aDsgaiA+IDA7IGktLSwgaiA+Pj0gOClcbiAgICBoZWFkZXJbaV0gPSBqICYgMHhmZjtcblxuICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbIGhlYWRlciwgY29udGVudCBdKTtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVTdHIgPSBmdW5jdGlvbiBlbmNvZGVTdHIoc3RyLCB0YWcpIHtcbiAgaWYgKHRhZyA9PT0gJ2JpdHN0cicpIHtcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbIHN0ci51bnVzZWQgfCAwLCBzdHIuZGF0YSBdKTtcbiAgfSBlbHNlIGlmICh0YWcgPT09ICdibXBzdHInKSB7XG4gICAgdmFyIGJ1ZiA9IG5ldyBCdWZmZXIoc3RyLmxlbmd0aCAqIDIpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBidWYud3JpdGVVSW50MTZCRShzdHIuY2hhckNvZGVBdChpKSwgaSAqIDIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihidWYpO1xuICB9IGVsc2UgaWYgKHRhZyA9PT0gJ251bXN0cicpIHtcbiAgICBpZiAoIXRoaXMuX2lzTnVtc3RyKHN0cikpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCdFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHN1cHBvcnRzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29ubHkgZGlnaXRzIGFuZCBzcGFjZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzdHIpO1xuICB9IGVsc2UgaWYgKHRhZyA9PT0gJ3ByaW50c3RyJykge1xuICAgIGlmICghdGhpcy5faXNQcmludHN0cihzdHIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcignRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHN1cHBvcnRzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29ubHkgbGF0aW4gdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwgbGVmdCBhbmQgcmlndGggJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyZW50aGVzaXMsIHBsdXMgc2lnbiwgY29tbWEsIGh5cGhlbiwgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG90LCBzbGFzaCwgY29sb24sIGVxdWFsIHNpZ24sICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3F1ZXN0aW9uIG1hcmsnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoc3RyKTtcbiAgfSBlbHNlIGlmICgvc3RyJC8udGVzdCh0YWcpKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoc3RyKTtcbiAgfSBlbHNlIGlmICh0YWcgPT09ICdvYmpEZXNjJykge1xuICAgIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHN0cik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoJ0VuY29kaW5nIG9mIHN0cmluZyB0eXBlOiAnICsgdGFnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIHVuc3VwcG9ydGVkJyk7XG4gIH1cbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVPYmppZCA9IGZ1bmN0aW9uIGVuY29kZU9iamlkKGlkLCB2YWx1ZXMsIHJlbGF0aXZlKSB7XG4gIGlmICh0eXBlb2YgaWQgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKCF2YWx1ZXMpXG4gICAgICByZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcignc3RyaW5nIG9iamlkIGdpdmVuLCBidXQgbm8gdmFsdWVzIG1hcCBmb3VuZCcpO1xuICAgIGlmICghdmFsdWVzLmhhc093blByb3BlcnR5KGlkKSlcbiAgICAgIHJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCdvYmppZCBub3QgZm91bmQgaW4gdmFsdWVzIG1hcCcpO1xuICAgIGlkID0gdmFsdWVzW2lkXS5zcGxpdCgvW1xcc1xcLl0rL2cpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWQubGVuZ3RoOyBpKyspXG4gICAgICBpZFtpXSB8PSAwO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaWQpKSB7XG4gICAgaWQgPSBpZC5zbGljZSgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWQubGVuZ3RoOyBpKyspXG4gICAgICBpZFtpXSB8PSAwO1xuICB9XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KGlkKSkge1xuICAgIHJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCdvYmppZCgpIHNob3VsZCBiZSBlaXRoZXIgYXJyYXkgb3Igc3RyaW5nLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ290OiAnICsgSlNPTi5zdHJpbmdpZnkoaWQpKTtcbiAgfVxuXG4gIGlmICghcmVsYXRpdmUpIHtcbiAgICBpZiAoaWRbMV0gPj0gNDApXG4gICAgICByZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcignU2Vjb25kIG9iamlkIGlkZW50aWZpZXIgT09CJyk7XG4gICAgaWQuc3BsaWNlKDAsIDIsIGlkWzBdICogNDAgKyBpZFsxXSk7XG4gIH1cblxuICAvLyBDb3VudCBudW1iZXIgb2Ygb2N0ZXRzXG4gIHZhciBzaXplID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZGVudCA9IGlkW2ldO1xuICAgIGZvciAoc2l6ZSsrOyBpZGVudCA+PSAweDgwOyBpZGVudCA+Pj0gNylcbiAgICAgIHNpemUrKztcbiAgfVxuXG4gIHZhciBvYmppZCA9IG5ldyBCdWZmZXIoc2l6ZSk7XG4gIHZhciBvZmZzZXQgPSBvYmppZC5sZW5ndGggLSAxO1xuICBmb3IgKHZhciBpID0gaWQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgaWRlbnQgPSBpZFtpXTtcbiAgICBvYmppZFtvZmZzZXQtLV0gPSBpZGVudCAmIDB4N2Y7XG4gICAgd2hpbGUgKChpZGVudCA+Pj0gNykgPiAwKVxuICAgICAgb2JqaWRbb2Zmc2V0LS1dID0gMHg4MCB8IChpZGVudCAmIDB4N2YpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIob2JqaWQpO1xufTtcblxuZnVuY3Rpb24gdHdvKG51bSkge1xuICBpZiAobnVtIDwgMTApXG4gICAgcmV0dXJuICcwJyArIG51bTtcbiAgZWxzZVxuICAgIHJldHVybiBudW07XG59XG5cbkRFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVUaW1lID0gZnVuY3Rpb24gZW5jb2RlVGltZSh0aW1lLCB0YWcpIHtcbiAgdmFyIHN0cjtcbiAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh0aW1lKTtcblxuICBpZiAodGFnID09PSAnZ2VudGltZScpIHtcbiAgICBzdHIgPSBbXG4gICAgICB0d28oZGF0ZS5nZXRGdWxsWWVhcigpKSxcbiAgICAgIHR3byhkYXRlLmdldFVUQ01vbnRoKCkgKyAxKSxcbiAgICAgIHR3byhkYXRlLmdldFVUQ0RhdGUoKSksXG4gICAgICB0d28oZGF0ZS5nZXRVVENIb3VycygpKSxcbiAgICAgIHR3byhkYXRlLmdldFVUQ01pbnV0ZXMoKSksXG4gICAgICB0d28oZGF0ZS5nZXRVVENTZWNvbmRzKCkpLFxuICAgICAgJ1onXG4gICAgXS5qb2luKCcnKTtcbiAgfSBlbHNlIGlmICh0YWcgPT09ICd1dGN0aW1lJykge1xuICAgIHN0ciA9IFtcbiAgICAgIHR3byhkYXRlLmdldEZ1bGxZZWFyKCkgJSAxMDApLFxuICAgICAgdHdvKGRhdGUuZ2V0VVRDTW9udGgoKSArIDEpLFxuICAgICAgdHdvKGRhdGUuZ2V0VVRDRGF0ZSgpKSxcbiAgICAgIHR3byhkYXRlLmdldFVUQ0hvdXJzKCkpLFxuICAgICAgdHdvKGRhdGUuZ2V0VVRDTWludXRlcygpKSxcbiAgICAgIHR3byhkYXRlLmdldFVUQ1NlY29uZHMoKSksXG4gICAgICAnWidcbiAgICBdLmpvaW4oJycpO1xuICB9IGVsc2Uge1xuICAgIHRoaXMucmVwb3J0ZXIuZXJyb3IoJ0VuY29kaW5nICcgKyB0YWcgKyAnIHRpbWUgaXMgbm90IHN1cHBvcnRlZCB5ZXQnKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLl9lbmNvZGVTdHIoc3RyLCAnb2N0c3RyJyk7XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fZW5jb2RlTnVsbCA9IGZ1bmN0aW9uIGVuY29kZU51bGwoKSB7XG4gIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKCcnKTtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVJbnQgPSBmdW5jdGlvbiBlbmNvZGVJbnQobnVtLCB2YWx1ZXMpIHtcbiAgaWYgKHR5cGVvZiBudW0gPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKCF2YWx1ZXMpXG4gICAgICByZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcignU3RyaW5nIGludCBvciBlbnVtIGdpdmVuLCBidXQgbm8gdmFsdWVzIG1hcCcpO1xuICAgIGlmICghdmFsdWVzLmhhc093blByb3BlcnR5KG51bSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCdWYWx1ZXMgbWFwIGRvZXNuXFwndCBjb250YWluOiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KG51bSkpO1xuICAgIH1cbiAgICBudW0gPSB2YWx1ZXNbbnVtXTtcbiAgfVxuXG4gIC8vIEJpZ251bSwgYXNzdW1lIGJpZyBlbmRpYW5cbiAgaWYgKHR5cGVvZiBudW0gIT09ICdudW1iZXInICYmICFCdWZmZXIuaXNCdWZmZXIobnVtKSkge1xuICAgIHZhciBudW1BcnJheSA9IG51bS50b0FycmF5KCk7XG4gICAgaWYgKCFudW0uc2lnbiAmJiBudW1BcnJheVswXSAmIDB4ODApIHtcbiAgICAgIG51bUFycmF5LnVuc2hpZnQoMCk7XG4gICAgfVxuICAgIG51bSA9IG5ldyBCdWZmZXIobnVtQXJyYXkpO1xuICB9XG5cbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihudW0pKSB7XG4gICAgdmFyIHNpemUgPSBudW0ubGVuZ3RoO1xuICAgIGlmIChudW0ubGVuZ3RoID09PSAwKVxuICAgICAgc2l6ZSsrO1xuXG4gICAgdmFyIG91dCA9IG5ldyBCdWZmZXIoc2l6ZSk7XG4gICAgbnVtLmNvcHkob3V0KTtcbiAgICBpZiAobnVtLmxlbmd0aCA9PT0gMClcbiAgICAgIG91dFswXSA9IDBcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihvdXQpO1xuICB9XG5cbiAgaWYgKG51bSA8IDB4ODApXG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIobnVtKTtcblxuICBpZiAobnVtIDwgMHgxMDApXG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWzAsIG51bV0pO1xuXG4gIHZhciBzaXplID0gMTtcbiAgZm9yICh2YXIgaSA9IG51bTsgaSA+PSAweDEwMDsgaSA+Pj0gOClcbiAgICBzaXplKys7XG5cbiAgdmFyIG91dCA9IG5ldyBBcnJheShzaXplKTtcbiAgZm9yICh2YXIgaSA9IG91dC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIG91dFtpXSA9IG51bSAmIDB4ZmY7XG4gICAgbnVtID4+PSA4O1xuICB9XG4gIGlmKG91dFswXSAmIDB4ODApIHtcbiAgICBvdXQudW5zaGlmdCgwKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKG5ldyBCdWZmZXIob3V0KSk7XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fZW5jb2RlQm9vbCA9IGZ1bmN0aW9uIGVuY29kZUJvb2wodmFsdWUpIHtcbiAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIodmFsdWUgPyAweGZmIDogMCk7XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fdXNlID0gZnVuY3Rpb24gdXNlKGVudGl0eSwgb2JqKSB7XG4gIGlmICh0eXBlb2YgZW50aXR5ID09PSAnZnVuY3Rpb24nKVxuICAgIGVudGl0eSA9IGVudGl0eShvYmopO1xuICByZXR1cm4gZW50aXR5Ll9nZXRFbmNvZGVyKCdkZXInKS50cmVlO1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX3NraXBEZWZhdWx0ID0gZnVuY3Rpb24gc2tpcERlZmF1bHQoZGF0YUJ1ZmZlciwgcmVwb3J0ZXIsIHBhcmVudCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG4gIHZhciBpO1xuICBpZiAoc3RhdGVbJ2RlZmF1bHQnXSA9PT0gbnVsbClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgdmFyIGRhdGEgPSBkYXRhQnVmZmVyLmpvaW4oKTtcbiAgaWYgKHN0YXRlLmRlZmF1bHRCdWZmZXIgPT09IHVuZGVmaW5lZClcbiAgICBzdGF0ZS5kZWZhdWx0QnVmZmVyID0gdGhpcy5fZW5jb2RlVmFsdWUoc3RhdGVbJ2RlZmF1bHQnXSwgcmVwb3J0ZXIsIHBhcmVudCkuam9pbigpO1xuXG4gIGlmIChkYXRhLmxlbmd0aCAhPT0gc3RhdGUuZGVmYXVsdEJ1ZmZlci5sZW5ndGgpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGZvciAoaT0wOyBpIDwgZGF0YS5sZW5ndGg7IGkrKylcbiAgICBpZiAoZGF0YVtpXSAhPT0gc3RhdGUuZGVmYXVsdEJ1ZmZlcltpXSlcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbi8vIFV0aWxpdHkgbWV0aG9kc1xuXG5mdW5jdGlvbiBlbmNvZGVUYWcodGFnLCBwcmltaXRpdmUsIGNscywgcmVwb3J0ZXIpIHtcbiAgdmFyIHJlcztcblxuICBpZiAodGFnID09PSAnc2Vxb2YnKVxuICAgIHRhZyA9ICdzZXEnO1xuICBlbHNlIGlmICh0YWcgPT09ICdzZXRvZicpXG4gICAgdGFnID0gJ3NldCc7XG5cbiAgaWYgKGRlci50YWdCeU5hbWUuaGFzT3duUHJvcGVydHkodGFnKSlcbiAgICByZXMgPSBkZXIudGFnQnlOYW1lW3RhZ107XG4gIGVsc2UgaWYgKHR5cGVvZiB0YWcgPT09ICdudW1iZXInICYmICh0YWcgfCAwKSA9PT0gdGFnKVxuICAgIHJlcyA9IHRhZztcbiAgZWxzZVxuICAgIHJldHVybiByZXBvcnRlci5lcnJvcignVW5rbm93biB0YWc6ICcgKyB0YWcpO1xuXG4gIGlmIChyZXMgPj0gMHgxZilcbiAgICByZXR1cm4gcmVwb3J0ZXIuZXJyb3IoJ011bHRpLW9jdGV0IHRhZyBlbmNvZGluZyB1bnN1cHBvcnRlZCcpO1xuXG4gIGlmICghcHJpbWl0aXZlKVxuICAgIHJlcyB8PSAweDIwO1xuXG4gIHJlcyB8PSAoZGVyLnRhZ0NsYXNzQnlOYW1lW2NscyB8fCAndW5pdmVyc2FsJ10gPDwgNik7XG5cbiAgcmV0dXJuIHJlcztcbn1cbiIsInZhciBlbmNvZGVycyA9IGV4cG9ydHM7XG5cbmVuY29kZXJzLmRlciA9IHJlcXVpcmUoJy4vZGVyJyk7XG5lbmNvZGVycy5wZW0gPSByZXF1aXJlKCcuL3BlbScpO1xuIiwidmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxudmFyIERFUkVuY29kZXIgPSByZXF1aXJlKCcuL2RlcicpO1xuXG5mdW5jdGlvbiBQRU1FbmNvZGVyKGVudGl0eSkge1xuICBERVJFbmNvZGVyLmNhbGwodGhpcywgZW50aXR5KTtcbiAgdGhpcy5lbmMgPSAncGVtJztcbn07XG5pbmhlcml0cyhQRU1FbmNvZGVyLCBERVJFbmNvZGVyKTtcbm1vZHVsZS5leHBvcnRzID0gUEVNRW5jb2RlcjtcblxuUEVNRW5jb2Rlci5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKGRhdGEsIG9wdGlvbnMpIHtcbiAgdmFyIGJ1ZiA9IERFUkVuY29kZXIucHJvdG90eXBlLmVuY29kZS5jYWxsKHRoaXMsIGRhdGEpO1xuXG4gIHZhciBwID0gYnVmLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgdmFyIG91dCA9IFsgJy0tLS0tQkVHSU4gJyArIG9wdGlvbnMubGFiZWwgKyAnLS0tLS0nIF07XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcC5sZW5ndGg7IGkgKz0gNjQpXG4gICAgb3V0LnB1c2gocC5zbGljZShpLCBpICsgNjQpKTtcbiAgb3V0LnB1c2goJy0tLS0tRU5EICcgKyBvcHRpb25zLmxhYmVsICsgJy0tLS0tJyk7XG4gIHJldHVybiBvdXQuam9pbignXFxuJyk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0xMi0wOFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJhY21cIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBQ01cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBDZXJ0aWZpY2F0ZSBNYW5hZ2VyXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJBQ01cIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQ2VydGlmaWNhdGVNYW5hZ2VyXCIsXG4gICAgXCJ1aWRcIjogXCJhY20tMjAxNS0xMi0wOFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRUYWdzVG9DZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3ViamVjdEFsdGVybmF0aXZlTmFtZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRG9tYWluVmFsaWRhdGlvbk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2VyaWFsXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN1YmplY3RcIjoge30sXG4gICAgICAgICAgICAgIFwiSXNzdWVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJc3N1ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbXBvcnRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZXZva2VkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmV2b2NhdGlvblJlYXNvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOb3RCZWZvcmVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTm90QWZ0ZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiS2V5QWxnb3JpdGhtXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNpZ25hdHVyZUFsZ29yaXRobVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJblVzZUJ5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJGYWlsdXJlUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVuZXdhbFN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJSZW5ld2FsU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICBcIkRvbWFpblZhbGlkYXRpb25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlJlbmV3YWxTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkRvbWFpblZhbGlkYXRpb25PcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiS2V5VXNhZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRXh0ZW5kZWRLZXlVc2FnZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJPSURcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ2VydGlmaWNhdGVBdXRob3JpdHlBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiUmVuZXdhbEVsaWdpYmlsaXR5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkV4cG9ydENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiLFxuICAgICAgICAgIFwiUGFzc3BocmFzZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlBhc3NwaHJhc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQ2hhaW5cIjoge30sXG4gICAgICAgICAgXCJQcml2YXRlS2V5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQ2hhaW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbXBvcnRDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVcIixcbiAgICAgICAgICBcIlByaXZhdGVLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmF0ZUtleVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCIsXG4gICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQ2hhaW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVN0YXR1c2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluY2x1ZGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJleHRlbmRlZEtleVVzYWdlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJrZXlVc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwia2V5VHlwZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVN1bW1hcnlMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvckNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc0Zyb21DZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlcXVlc3RDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsaWRhdGlvbk1ldGhvZFwiOiB7fSxcbiAgICAgICAgICBcIlN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJEb21haW5WYWxpZGF0aW9uT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICAgICAgICBcIlZhbGlkYXRpb25Eb21haW5cIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbGlkYXRpb25Eb21haW5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUF1dGhvcml0eUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZW5kVmFsaWRhdGlvbkVtYWlsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiLFxuICAgICAgICAgIFwiRG9tYWluXCIsXG4gICAgICAgICAgXCJWYWxpZGF0aW9uRG9tYWluXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRG9tYWluXCI6IHt9LFxuICAgICAgICAgIFwiVmFsaWRhdGlvbkRvbWFpblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNlcnRpZmljYXRlT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIixcbiAgICAgICAgICBcIk9wdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbGlkYXRpb25FbWFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRhdGlvbkRvbWFpblwiOiB7fSxcbiAgICAgICAgICBcIlZhbGlkYXRpb25TdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVJlY29yZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZhbGlkYXRpb25NZXRob2RcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNlcnRpZmljYXRlVHJhbnNwYXJlbmN5TG9nZ2luZ1ByZWZlcmVuY2VcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0Q2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDZXJ0aWZpY2F0ZVN1bW1hcnlMaXN0XCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiQ2VydGlmaWNhdGVWYWxpZGF0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiA2MCxcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ2VydGlmaWNhdGVcIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiU1VDQ0VTU1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDZXJ0aWZpY2F0ZS5Eb21haW5WYWxpZGF0aW9uT3B0aW9uc1tdLlZhbGlkYXRpb25TdGF0dXNcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlBFTkRJTkdfVkFMSURBVElPTlwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDZXJ0aWZpY2F0ZS5Eb21haW5WYWxpZGF0aW9uT3B0aW9uc1tdLlZhbGlkYXRpb25TdGF0dXNcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJGQUlMRURcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ2VydGlmaWNhdGUuU3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wNy0wOVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJhcGlnYXRld2F5XCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEFQSSBHYXRld2F5XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJBUEkgR2F0ZXdheVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJhcGlnYXRld2F5LTIwMTUtMDctMDlcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQ3JlYXRlQXBpS2V5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGlrZXlzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdlbmVyYXRlRGlzdGluY3RJZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmFsdWVcIjoge30sXG4gICAgICAgICAgXCJzdGFnZUtleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImN1c3RvbWVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQXV0aG9yaXplclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2F1dGhvcml6ZXJzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwicHJvdmlkZXJBUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dGhUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiYXV0aG9yaXplclVyaVwiOiB7fSxcbiAgICAgICAgICBcImF1dGhvcml6ZXJDcmVkZW50aWFsc1wiOiB7fSxcbiAgICAgICAgICBcImlkZW50aXR5U291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiaWRlbnRpdHlWYWxpZGF0aW9uRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcImF1dGhvcml6ZXJSZXN1bHRUdGxJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVCYXNlUGF0aE1hcHBpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RvbWFpbm5hbWVzL3tkb21haW5fbmFtZX0vYmFzZXBhdGhtYXBwaW5nc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiLFxuICAgICAgICAgIFwicmVzdEFwaUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb21haW5fbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJhc2VQYXRoXCI6IHt9LFxuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGVwbG95bWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RlcGxveW1lbnRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInN0YWdlRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImNhY2hlQ2x1c3RlckVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNhY2hlQ2x1c3RlclNpemVcIjoge30sXG4gICAgICAgICAgXCJ2YXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2FuYXJ5U2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInBlcmNlbnRUcmFmZmljXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInN0YWdlVmFyaWFibGVPdmVycmlkZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidXNlU3RhZ2VDYWNoZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURvY3VtZW50YXRpb25QYXJ0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi9wYXJ0c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJsb2NhdGlvblwiLFxuICAgICAgICAgIFwicHJvcGVydGllc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEb2N1bWVudGF0aW9uVmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RvY3VtZW50YXRpb24vdmVyc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvY3VtZW50YXRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRG9tYWluTmFtZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZG9tYWlubmFtZXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlUHJpdmF0ZUtleVwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlQ2hhaW5cIjoge30sXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcInJlZ2lvbmFsQ2VydGlmaWNhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmVnaW9uYWxDZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcImVuZHBvaW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU1vZGVsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vbW9kZWxzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcImNvbnRlbnRUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJzY2hlbWFcIjoge30sXG4gICAgICAgICAgXCJjb250ZW50VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVxdWVzdFZhbGlkYXRvclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3JlcXVlc3R2YWxpZGF0b3JzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJ2YWxpZGF0ZVJlcXVlc3RCb2R5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2YWxpZGF0ZVJlcXVlc3RQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3twYXJlbnRfaWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInBhcmVudElkXCIsXG4gICAgICAgICAgXCJwYXRoUGFydFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGFyZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXJlbnRfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRoUGFydFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzE4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVzdEFwaVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImNsb25lRnJvbVwiOiB7fSxcbiAgICAgICAgICBcImJpbmFyeU1lZGlhVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWluaW11bUNvbXByZXNzaW9uU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXBpS2V5U291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiZW5kcG9pbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvbGljeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RhZ2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9zdGFnZXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCIsXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiY2FjaGVDbHVzdGVyRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2FjaGVDbHVzdGVyU2l6ZVwiOiB7fSxcbiAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImNhbmFyeVNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVXNhZ2VQbGFuXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImFwaVN0YWdlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhyb3R0bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInF1b3RhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyM1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVVzYWdlUGxhbktleVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdXNhZ2VwbGFucy97dXNhZ2VwbGFuSWR9L2tleXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCIsXG4gICAgICAgICAgXCJrZXlJZFwiLFxuICAgICAgICAgIFwia2V5VHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzYWdlcGxhbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2V5SWRcIjoge30sXG4gICAgICAgICAgXCJrZXlUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWcGNMaW5rXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92cGNsaW5rc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwidGFyZ2V0QXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJ0YXJnZXRBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXBpS2V5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGlrZXlzL3thcGlfS2V5fVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBpS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwaUtleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFwaV9LZXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vYXV0aG9yaXplcnMve2F1dGhvcml6ZXJfaWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImF1dGhvcml6ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXV0aG9yaXplcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0aG9yaXplcl9pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJhc2VQYXRoTWFwcGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZG9tYWlubmFtZXMve2RvbWFpbl9uYW1lfS9iYXNlcGF0aG1hcHBpbmdzL3tiYXNlX3BhdGh9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJiYXNlUGF0aFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkb21haW5OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG9tYWluX25hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJiYXNlUGF0aFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJhc2VfcGF0aFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNsaWVudENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jbGllbnRjZXJ0aWZpY2F0ZXMve2NsaWVudGNlcnRpZmljYXRlX2lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2xpZW50Q2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbGllbnRDZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50Y2VydGlmaWNhdGVfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEZXBsb3ltZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZGVwbG95bWVudHMve2RlcGxveW1lbnRfaWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVwbG95bWVudF9pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURvY3VtZW50YXRpb25QYXJ0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi9wYXJ0cy97cGFydF9pZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblBhcnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblBhcnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhcnRfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEb2N1bWVudGF0aW9uVmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RvY3VtZW50YXRpb24vdmVyc2lvbnMve2RvY192ZXJzaW9ufVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uVmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb2NfdmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURvbWFpbk5hbWVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RvbWFpbm5hbWVzL3tkb21haW5fbmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvbWFpbl9uYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlR2F0ZXdheVJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZ2F0ZXdheXJlc3BvbnNlcy97cmVzcG9uc2VfdHlwZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzcG9uc2VUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNwb25zZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNwb25zZV90eXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSW50ZWdyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH0vaW50ZWdyYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSW50ZWdyYXRpb25SZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfS9pbnRlZ3JhdGlvbi9yZXNwb25zZXMve3N0YXR1c19jb2RlfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCIsXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzX2NvZGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNZXRob2RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTWV0aG9kUmVzcG9uc2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH0vcmVzcG9uc2VzL3tzdGF0dXNfY29kZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiLFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c19jb2RlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTW9kZWxcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9tb2RlbHMve21vZGVsX25hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcIm1vZGVsTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibW9kZWxOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9kZWxfbmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJlcXVlc3RWYWxpZGF0b3JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXF1ZXN0dmFsaWRhdG9ycy97cmVxdWVzdHZhbGlkYXRvcl9pZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVxdWVzdFZhbGlkYXRvcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXF1ZXN0VmFsaWRhdG9ySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXF1ZXN0dmFsaWRhdG9yX2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZXN0QXBpXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU3RhZ2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9zdGFnZXMve3N0YWdlX25hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhZ2VfbmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVVzYWdlUGxhblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdXNhZ2VwbGFucy97dXNhZ2VwbGFuSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzYWdlcGxhbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVXNhZ2VQbGFuS2V5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zL3t1c2FnZXBsYW5JZH0va2V5cy97a2V5SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiLFxuICAgICAgICAgIFwia2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2FnZXBsYW5JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtleUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcGNMaW5rXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92cGNsaW5rcy97dnBjbGlua19pZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInZwY0xpbmtJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2cGNMaW5rSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNsaW5rX2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRmx1c2hTdGFnZUF1dGhvcml6ZXJzQ2FjaGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9zdGFnZXMve3N0YWdlX25hbWV9L2NhY2hlL2F1dGhvcml6ZXJzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhZ2VfbmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkZsdXNoU3RhZ2VDYWNoZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3N0YWdlcy97c3RhZ2VfbmFtZX0vY2FjaGUvZGF0YVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YWdlX25hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZW5lcmF0ZUNsaWVudENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jbGllbnRjZXJ0aWZpY2F0ZXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEFjY291bnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FjY291bnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QXBpS2V5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGlrZXlzL3thcGlfS2V5fVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwaUtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcGlLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcGlfS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5jbHVkZVZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbmNsdWRlVmFsdWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QXBpS2V5c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpa2V5c1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZVF1ZXJ5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3VzdG9tZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VzdG9tZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImluY2x1ZGVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluY2x1ZGVWYWx1ZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ3YXJuaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vYXV0aG9yaXplcnMve2F1dGhvcml6ZXJfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJhdXRob3JpemVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dGhvcml6ZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dGhvcml6ZXJfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QXV0aG9yaXplcnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9hdXRob3JpemVyc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QmFzZVBhdGhNYXBwaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9kb21haW5uYW1lcy97ZG9tYWluX25hbWV9L2Jhc2VwYXRobWFwcGluZ3Mve2Jhc2VfcGF0aH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJiYXNlUGF0aFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkb21haW5OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG9tYWluX25hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJiYXNlUGF0aFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJhc2VfcGF0aFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCYXNlUGF0aE1hcHBpbmdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9kb21haW5uYW1lcy97ZG9tYWluX25hbWV9L2Jhc2VwYXRobWFwcGluZ3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb21haW5fbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENsaWVudENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jbGllbnRjZXJ0aWZpY2F0ZXMve2NsaWVudGNlcnRpZmljYXRlX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNsaWVudENlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2xpZW50Q2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudGNlcnRpZmljYXRlX2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDbGllbnRDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NsaWVudGNlcnRpZmljYXRlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERlcGxveW1lbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kZXBsb3ltZW50cy97ZGVwbG95bWVudF9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVwbG95bWVudF9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVtYmVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVtYmVkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERlcGxveW1lbnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZGVwbG95bWVudHNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvY3VtZW50YXRpb25QYXJ0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi9wYXJ0cy97cGFydF9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImRvY3VtZW50YXRpb25QYXJ0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvY3VtZW50YXRpb25QYXJ0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXJ0X2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvY3VtZW50YXRpb25QYXJ0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RvY3VtZW50YXRpb24vcGFydHNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lUXVlcnlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXRoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9jYXRpb25TdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxvY2F0aW9uU3RhdHVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RG9jdW1lbnRhdGlvblZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kb2N1bWVudGF0aW9uL3ZlcnNpb25zL3tkb2NfdmVyc2lvbn1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImRvY3VtZW50YXRpb25WZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvY192ZXJzaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvY3VtZW50YXRpb25WZXJzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RvY3VtZW50YXRpb24vdmVyc2lvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvbWFpbk5hbWVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RvbWFpbm5hbWVzL3tkb21haW5fbmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb21haW5fbmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RG9tYWluTmFtZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RvbWFpbm5hbWVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RXhwb3J0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vc3RhZ2VzL3tzdGFnZV9uYW1lfS9leHBvcnRzL3tleHBvcnRfdHlwZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCIsXG4gICAgICAgICAgXCJleHBvcnRUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFnZV9uYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhwb3J0VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4cG9ydF90eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFjY2VwdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY2NlcHRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb250ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRlbnREaXNwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRGlzcG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib2R5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiYm9keVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEdhdGV3YXlSZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2dhdGV3YXlyZXNwb25zZXMve3Jlc3BvbnNlX3R5cGV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNwb25zZVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc3BvbnNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3BvbnNlX3R5cGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0MlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEdhdGV3YXlSZXNwb25zZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9nYXRld2F5cmVzcG9uc2VzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SW50ZWdyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH0vaW50ZWdyYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SW50ZWdyYXRpb25SZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfS9pbnRlZ3JhdGlvbi9yZXNwb25zZXMve3N0YXR1c19jb2RlfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiLFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c19jb2RlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNZXRob2RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TWV0aG9kUmVzcG9uc2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH0vcmVzcG9uc2VzL3tzdGF0dXNfY29kZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIixcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNfY29kZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TW9kZWxcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9tb2RlbHMve21vZGVsX25hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJtb2RlbE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1vZGVsTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vZGVsX25hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmbGF0dGVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbGF0dGVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNb2RlbFRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vbW9kZWxzL3ttb2RlbF9uYW1lfS9kZWZhdWx0X3RlbXBsYXRlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJtb2RlbE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1vZGVsTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vZGVsX25hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE1vZGVsc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L21vZGVsc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlcXVlc3RWYWxpZGF0b3JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXF1ZXN0dmFsaWRhdG9ycy97cmVxdWVzdHZhbGlkYXRvcl9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlcXVlc3RWYWxpZGF0b3JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVxdWVzdFZhbGlkYXRvcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVxdWVzdHZhbGlkYXRvcl9pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVxdWVzdFZhbGlkYXRvcnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXF1ZXN0dmFsaWRhdG9yc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVtYmVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVtYmVkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZXNvdXJjZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVtYmVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVtYmVkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlc3RBcGlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZXN0QXBpc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTZGtcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9zdGFnZXMve3N0YWdlX25hbWV9L3Nka3Mve3Nka190eXBlfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIixcbiAgICAgICAgICBcInNka1R5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YWdlX25hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZGtUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2RrX3R5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGVudFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250ZW50RGlzcG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LURpc3Bvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm9keVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcImJvZHlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTZGtUeXBlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zZGt0eXBlcy97c2RrdHlwZV9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNka3R5cGVfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0dlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNka1R5cGVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zZGt0eXBlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFN0YWdlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vc3RhZ2VzL3tzdGFnZV9uYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFnZV9uYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdGFnZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9zdGFnZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVwbG95bWVudElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaXRlbVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRUYWdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90YWdzL3tyZXNvdXJjZV9hcm59XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9hcm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFVzYWdlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zL3t1c2FnZXBsYW5JZH0vdXNhZ2VcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiLFxuICAgICAgICAgIFwic3RhcnREYXRlXCIsXG4gICAgICAgICAgXCJlbmREYXRlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNhZ2VwbGFuSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJrZXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFydERhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVuZERhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuZERhdGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1OFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFVzYWdlUGxhblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdXNhZ2VwbGFucy97dXNhZ2VwbGFuSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2FnZXBsYW5JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VXNhZ2VQbGFuS2V5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zL3t1c2FnZXBsYW5JZH0va2V5cy97a2V5SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiLFxuICAgICAgICAgIFwia2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2FnZXBsYW5JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtleUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFVzYWdlUGxhbktleXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3VzYWdlcGxhbnMve3VzYWdlcGxhbklkfS9rZXlzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2FnZXBsYW5JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVRdWVyeVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRVc2FnZVBsYW5zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJrZXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VnBjTGlua1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdnBjbGlua3Mve3ZwY2xpbmtfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidnBjTGlua0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZwY0xpbmtJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY2xpbmtfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFZwY0xpbmtzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92cGNsaW5rc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkltcG9ydEFwaUtleXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaWtleXM/bW9kZT1pbXBvcnRcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImJvZHlcIixcbiAgICAgICAgICBcImZvcm1hdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJib2R5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmb3JtYXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcm1hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWxPbldhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmYWlsb253YXJuaW5nc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJib2R5XCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIndhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkltcG9ydERvY3VtZW50YXRpb25QYXJ0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RvY3VtZW50YXRpb24vcGFydHNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImJvZHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1vZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsT25XYXJuaW5nc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmFpbG9ud2FybmluZ3NcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib2R5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiYm9keVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ3YXJuaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbXBvcnRSZXN0QXBpXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcz9tb2RlPWltcG9ydFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYm9keVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmYWlsT25XYXJuaW5nc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmFpbG9ud2FybmluZ3NcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm9keVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcImJvZHlcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEdhdGV3YXlSZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2dhdGV3YXlyZXNwb25zZXMve3Jlc3BvbnNlX3R5cGV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc3BvbnNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzcG9uc2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzcG9uc2VfdHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgICAgXCJyZXNwb25zZVBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzcG9uc2VUZW1wbGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNDJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRJbnRlZ3JhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfS9pbnRlZ3JhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCIsXG4gICAgICAgICAgXCJ0eXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwiaW50ZWdyYXRpb25IdHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cE1ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVyaVwiOiB7fSxcbiAgICAgICAgICBcImNvbm5lY3Rpb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiY3JlZGVudGlhbHNcIjoge30sXG4gICAgICAgICAgXCJyZXF1ZXN0UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXF1ZXN0VGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhc3N0aHJvdWdoQmVoYXZpb3JcIjoge30sXG4gICAgICAgICAgXCJjYWNoZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcImNhY2hlS2V5UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250ZW50SGFuZGxpbmdcIjoge30sXG4gICAgICAgICAgXCJ0aW1lb3V0SW5NaWxsaXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0SW50ZWdyYXRpb25SZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfS9pbnRlZ3JhdGlvbi9yZXNwb25zZXMve3N0YXR1c19jb2RlfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCIsXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzX2NvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWxlY3Rpb25QYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgIFwicmVzcG9uc2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc3BvbnNlVGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRlbnRIYW5kbGluZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0TWV0aG9kXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIixcbiAgICAgICAgICBcImF1dGhvcml6YXRpb25UeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRob3JpemF0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcImF1dGhvcml6ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcImFwaUtleVJlcXVpcmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJvcGVyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmVxdWVzdFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVlc3RNb2RlbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVxdWVzdFZhbGlkYXRvcklkXCI6IHt9LFxuICAgICAgICAgIFwiYXV0aG9yaXphdGlvblNjb3Blc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dE1ldGhvZFJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9L3Jlc3BvbnNlcy97c3RhdHVzX2NvZGV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIixcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNfY29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc3BvbnNlUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzcG9uc2VNb2RlbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRSZXN0QXBpXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImJvZHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1vZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsT25XYXJuaW5nc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmFpbG9ud2FybmluZ3NcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm9keVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcImJvZHlcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90YWdzL3tyZXNvdXJjZV9hcm59XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwidGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2FyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVzdEludm9rZUF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9hdXRob3JpemVycy97YXV0aG9yaXplcl9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImF1dGhvcml6ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXV0aG9yaXplcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0aG9yaXplcl9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImhlYWRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGhXaXRoUXVlcnlTdHJpbmdcIjoge30sXG4gICAgICAgICAgXCJib2R5XCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VWYXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWRkaXRpb25hbENvbnRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2xpZW50U3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2dcIjoge30sXG4gICAgICAgICAgXCJsYXRlbmN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmluY2lwYWxJZFwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcImF1dGhvcml6YXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGFpbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVzdEludm9rZU1ldGhvZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0aFdpdGhRdWVyeVN0cmluZ1wiOiB7fSxcbiAgICAgICAgICBcImJvZHlcIjoge30sXG4gICAgICAgICAgXCJoZWFkZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGllbnRDZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VWYXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib2R5XCI6IHt9LFxuICAgICAgICAgIFwiaGVhZGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9nXCI6IHt9LFxuICAgICAgICAgIFwibGF0ZW5jeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGFncy97cmVzb3VyY2VfYXJufVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcInRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9hcm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ0tleXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBY2NvdW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FjY291bnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBcGlLZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpa2V5cy97YXBpX0tleX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcGlLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBpS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXBpX0tleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2F1dGhvcml6ZXJzL3thdXRob3JpemVyX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiYXV0aG9yaXplcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRob3JpemVySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdXRob3JpemVyX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQmFzZVBhdGhNYXBwaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RvbWFpbm5hbWVzL3tkb21haW5fbmFtZX0vYmFzZXBhdGhtYXBwaW5ncy97YmFzZV9wYXRofVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIixcbiAgICAgICAgICBcImJhc2VQYXRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb21haW5fbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJhc2VQYXRoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmFzZV9wYXRoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ2xpZW50Q2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2xpZW50Y2VydGlmaWNhdGVzL3tjbGllbnRjZXJ0aWZpY2F0ZV9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjbGllbnRDZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsaWVudENlcnRpZmljYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRjZXJ0aWZpY2F0ZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEZXBsb3ltZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kZXBsb3ltZW50cy97ZGVwbG95bWVudF9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVwbG95bWVudF9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURvY3VtZW50YXRpb25QYXJ0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kb2N1bWVudGF0aW9uL3BhcnRzL3twYXJ0X2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblBhcnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblBhcnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhcnRfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEb2N1bWVudGF0aW9uVmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi92ZXJzaW9ucy97ZG9jX3ZlcnNpb259XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uVmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb2NfdmVyc2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURvbWFpbk5hbWVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZG9tYWlubmFtZXMve2RvbWFpbl9uYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvbWFpbl9uYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUdhdGV3YXlSZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZ2F0ZXdheXJlc3BvbnNlcy97cmVzcG9uc2VfdHlwZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc3BvbnNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzcG9uc2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzcG9uc2VfdHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNDJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVJbnRlZ3JhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9L2ludGVncmF0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSW50ZWdyYXRpb25SZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9L2ludGVncmF0aW9uL3Jlc3BvbnNlcy97c3RhdHVzX2NvZGV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCIsXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzX2NvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTWV0aG9kXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNZXRob2RSZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9L3Jlc3BvbnNlcy97c3RhdHVzX2NvZGV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIixcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNfY29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNb2RlbFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vbW9kZWxzL3ttb2RlbF9uYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwibW9kZWxOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtb2RlbE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtb2RlbF9uYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlcXVlc3RWYWxpZGF0b3JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3JlcXVlc3R2YWxpZGF0b3JzL3tyZXF1ZXN0dmFsaWRhdG9yX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVxdWVzdFZhbGlkYXRvcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXF1ZXN0VmFsaWRhdG9ySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXF1ZXN0dmFsaWRhdG9yX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlc3RBcGlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU3RhZ2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3N0YWdlcy97c3RhZ2VfbmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhZ2VfbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVVc2FnZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zL3t1c2FnZXBsYW5JZH0va2V5cy97a2V5SWR9L3VzYWdlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIixcbiAgICAgICAgICBcImtleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNhZ2VwbGFuSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJrZXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1OFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVVzYWdlUGxhblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zL3t1c2FnZXBsYW5JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzYWdlcGxhbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyM1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVZwY0xpbmtcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdnBjbGlua3Mve3ZwY2xpbmtfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidnBjTGlua0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZwY0xpbmtJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY2xpbmtfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJ2YWx1ZVwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImN1c3RvbWVySWRcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiZW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YWdlS2V5c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInByb3ZpZGVyQVJOc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXRoVHlwZVwiOiB7fSxcbiAgICAgICAgXCJhdXRob3JpemVyVXJpXCI6IHt9LFxuICAgICAgICBcImF1dGhvcml6ZXJDcmVkZW50aWFsc1wiOiB7fSxcbiAgICAgICAgXCJpZGVudGl0eVNvdXJjZVwiOiB7fSxcbiAgICAgICAgXCJpZGVudGl0eVZhbGlkYXRpb25FeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICBcImF1dGhvcml6ZXJSZXN1bHRUdGxJblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJiYXNlUGF0aFwiOiB7fSxcbiAgICAgICAgXCJyZXN0QXBpSWRcIjoge30sXG4gICAgICAgIFwic3RhZ2VcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImFwaVN1bW1hcnlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImF1dGhvcml6YXRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXBpS2V5UmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInBhdGhcIjoge30sXG4gICAgICAgIFwibWV0aG9kXCI6IHt9LFxuICAgICAgICBcInN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJjZXJ0aWZpY2F0ZU5hbWVcIjoge30sXG4gICAgICAgIFwiY2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgIFwiY2VydGlmaWNhdGVVcGxvYWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlZ2lvbmFsRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJyZWdpb25hbEhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgXCJyZWdpb25hbENlcnRpZmljYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJyZWdpb25hbENlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICBcImRpc3RyaWJ1dGlvbkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgIFwiZGlzdHJpYnV0aW9uSG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICBcImVuZHBvaW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwic2NoZW1hXCI6IHt9LFxuICAgICAgICBcImNvbnRlbnRUeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJ2YWxpZGF0ZVJlcXVlc3RCb2R5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ2YWxpZGF0ZVJlcXVlc3RQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMThcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICBcInBhcmVudElkXCI6IHt9LFxuICAgICAgICBcInBhdGhQYXJ0XCI6IHt9LFxuICAgICAgICBcInBhdGhcIjoge30sXG4gICAgICAgIFwicmVzb3VyY2VNZXRob2RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImh0dHBNZXRob2RcIjoge30sXG4gICAgICAgIFwiYXV0aG9yaXphdGlvblR5cGVcIjoge30sXG4gICAgICAgIFwiYXV0aG9yaXplcklkXCI6IHt9LFxuICAgICAgICBcImFwaUtleVJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXF1ZXN0VmFsaWRhdG9ySWRcIjoge30sXG4gICAgICAgIFwib3BlcmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJyZXF1ZXN0UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWVzdE1vZGVsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRob2RSZXNwb25zZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGhvZEludGVncmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXRob3JpemF0aW9uU2NvcGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgIFwicmVzcG9uc2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXNwb25zZU1vZGVsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7fSxcbiAgICAgICAgXCJ1cmlcIjoge30sXG4gICAgICAgIFwiY29ubmVjdGlvblR5cGVcIjoge30sXG4gICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICBcImNyZWRlbnRpYWxzXCI6IHt9LFxuICAgICAgICBcInJlcXVlc3RQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlcXVlc3RUZW1wbGF0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGFzc3Rocm91Z2hCZWhhdmlvclwiOiB7fSxcbiAgICAgICAgXCJjb250ZW50SGFuZGxpbmdcIjoge30sXG4gICAgICAgIFwidGltZW91dEluTWlsbGlzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjYWNoZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgXCJjYWNoZUtleVBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW50ZWdyYXRpb25SZXNwb25zZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwic3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgXCJzZWxlY3Rpb25QYXR0ZXJuXCI6IHt9LFxuICAgICAgICBcInJlc3BvbnNlUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXNwb25zZVRlbXBsYXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb250ZW50SGFuZGxpbmdcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgIFwid2FybmluZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYmluYXJ5TWVkaWFUeXBlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtQ29tcHJlc3Npb25TaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhcGlLZXlTb3VyY2VcIjoge30sXG4gICAgICAgIFwiZW5kcG9pbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICB9LFxuICAgICAgICBcInBvbGljeVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInBlcmNlbnRUcmFmZmljXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgXCJzdGFnZVZhcmlhYmxlT3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcInVzZVN0YWdlQ2FjaGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICBcImNsaWVudENlcnRpZmljYXRlSWRcIjoge30sXG4gICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcImNhY2hlQ2x1c3RlckVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImNhY2hlQ2x1c3RlclNpemVcIjoge30sXG4gICAgICAgIFwiY2FjaGVDbHVzdGVyU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIm1ldGhvZFNldHRpbmdzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJtZXRyaWNzRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibG9nZ2luZ0xldmVsXCI6IHt9LFxuICAgICAgICAgICAgICBcImRhdGFUcmFjZUVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInRocm90dGxpbmdCdXJzdExpbWl0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ0aHJvdHRsaW5nUmF0ZUxpbWl0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNhY2hpbmdFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjYWNoZVR0bEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY2FjaGVEYXRhRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJyZXF1aXJlQXV0aG9yaXphdGlvbkZvckNhY2hlQ29udHJvbFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidW5hdXRob3JpemVkQ2FjaGVDb250cm9sSGVhZGVyU3RyYXRlZ3lcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwidmFyaWFibGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcImRvY3VtZW50YXRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICBcImFjY2Vzc0xvZ1NldHRpbmdzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJmb3JtYXRcIjoge30sXG4gICAgICAgICAgICBcImRlc3RpbmF0aW9uQXJuXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImNhbmFyeVNldHRpbmdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwaUlkXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImJ1cnN0TGltaXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInJhdGVMaW1pdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvZmZzZXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInBlcmlvZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiYXBpU3RhZ2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0aHJvdHRsZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicXVvdGFcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICB9LFxuICAgICAgICBcInByb2R1Y3RDb2RlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJ2YWx1ZVwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJ0YXJnZXRBcm5zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJzdGF0dXNNZXNzYWdlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiY2xpZW50Q2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJwZW1FbmNvZGVkQ2VydGlmaWNhdGVcIjoge30sXG4gICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhwaXJhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJjbG91ZHdhdGNoUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJ0aHJvdHRsZVNldHRpbmdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJmZWF0dXJlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhcGlLZXlWZXJzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0MlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicmVzcG9uc2VUeXBlXCI6IHt9LFxuICAgICAgICBcInN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgIFwicmVzcG9uc2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlc3BvbnNlVGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRSZXNwb25zZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzR2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJmcmllbmRseU5hbWVcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiY29uZmlndXJhdGlvblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJmcmllbmRseU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImRlZmF1bHRWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNThcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInVzYWdlUGxhbklkXCI6IHt9LFxuICAgICAgICBcInN0YXJ0RGF0ZVwiOiB7fSxcbiAgICAgICAgXCJlbmREYXRlXCI6IHt9LFxuICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbHVlc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzZiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvcFwiOiB7fSxcbiAgICAgICAgICBcInBhdGhcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fSxcbiAgICAgICAgICBcImZyb21cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkdldEFwaUtleXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldEJhc2VQYXRoTWFwcGluZ3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldENsaWVudENlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIml0ZW1zXCJcbiAgICB9LFxuICAgIFwiR2V0RGVwbG95bWVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldERvbWFpbk5hbWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaXRlbXNcIlxuICAgIH0sXG4gICAgXCJHZXRNb2RlbHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldFJlc291cmNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIml0ZW1zXCJcbiAgICB9LFxuICAgIFwiR2V0UmVzdEFwaXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldFVzYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaXRlbXNcIlxuICAgIH0sXG4gICAgXCJHZXRVc2FnZVBsYW5LZXlzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaXRlbXNcIlxuICAgIH0sXG4gICAgXCJHZXRVc2FnZVBsYW5zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaXRlbXNcIlxuICAgIH0sXG4gICAgXCJHZXRWcGNMaW5rc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIml0ZW1zXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE2LTAyLTA2XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImF1dG9zY2FsaW5nXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmdcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZ1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJzaWduaW5nTmFtZVwiOiBcImFwcGxpY2F0aW9uLWF1dG9zY2FsaW5nXCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJBbnlTY2FsZUZyb250ZW5kU2VydmljZVwiLFxuICAgIFwidWlkXCI6IFwiYXBwbGljYXRpb24tYXV0b3NjYWxpbmctMjAxNi0wMi0wNlwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJEZWxldGVTY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNjaGVkdWxlZEFjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiLFxuICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJTY2FsYWJsZVRhcmdldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NhbGFibGVUYXJnZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjYWxhYmxlVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIixcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCIsXG4gICAgICAgICAgICAgICAgXCJNaW5DYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgIFwiTWF4Q2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICBcIlJvbGVBUk5cIixcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWluQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NhbGluZ0FjdGl2aXRpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjYWxpbmdBY3Rpdml0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aXZpdHlJZFwiLFxuICAgICAgICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiLFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIixcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJDYXVzZVwiLFxuICAgICAgICAgICAgICAgIFwiU3RhcnRUaW1lXCIsXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNDb2RlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGl2aXR5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDYXVzZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGV0YWlsc1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NhbGluZ1BvbGljaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTY2FsaW5nUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lBUk5cIixcbiAgICAgICAgICAgICAgICBcIlBvbGljeU5hbWVcIixcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIixcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCIsXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJDcmVhdGlvblRpbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUG9saWN5QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RlcFNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFsYXJtc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NoZWR1bGVkQWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVcIixcbiAgICAgICAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbkFSTlwiLFxuICAgICAgICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiLFxuICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVcIixcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjaGVkdWxlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2NhbGFibGVUYXJnZXRBY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRTY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvbGljeUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY3lBUk5cIjoge30sXG4gICAgICAgICAgXCJBbGFybXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFNjaGVkdWxlZEFjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiLFxuICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZWR1bGVcIjoge30sXG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NhbGFibGVUYXJnZXRBY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyU2NhbGFibGVUYXJnZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIjoge30sXG4gICAgICAgICAgXCJNaW5DYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4Q2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFkanVzdG1lbnRUeXBlXCI6IHt9LFxuICAgICAgICBcIlN0ZXBBZGp1c3RtZW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1ldHJpY0ludGVydmFsVXBwZXJCb3VuZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTY2FsaW5nQWRqdXN0bWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTWluQWRqdXN0bWVudE1hZ25pdHVkZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29vbGRvd25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1ldHJpY0FnZ3JlZ2F0aW9uVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUYXJnZXRWYWx1ZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYXJnZXRWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlByZWRlZmluZWRNZXRyaWNUeXBlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlByZWRlZmluZWRNZXRyaWNUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJSZXNvdXJjZUxhYmVsXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgICAgXCJOYW1lc3BhY2VcIixcbiAgICAgICAgICAgIFwiU3RhdGlzdGljXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdGF0aXN0aWNcIjoge30sXG4gICAgICAgICAgICBcIlVuaXRcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU2NhbGVPdXRDb29sZG93blwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2NhbGVJbkNvb2xkb3duXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEaXNhYmxlU2NhbGVJblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxhcm1OYW1lXCIsXG4gICAgICAgICAgXCJBbGFybUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBbGFybUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTWluQ2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1heENhcGFjaXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlU2NhbGFibGVUYXJnZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlNjYWxhYmxlVGFyZ2V0c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NhbGluZ0FjdGl2aXRpZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU2NhbGluZ0FjdGl2aXRpZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNjYWxpbmdQb2xpY2llc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTY2FsaW5nUG9saWNpZXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTEtMDEtMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiYXV0b3NjYWxpbmdcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkF1dG8gU2NhbGluZ1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJhdXRvc2NhbGluZy0yMDExLTAxLTAxXCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vYXV0b3NjYWxpbmcuYW1hem9uYXdzLmNvbS9kb2MvMjAxMS0wMS0wMS9cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQXR0YWNoSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF0dGFjaExvYWRCYWxhbmNlclRhcmdldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQVJOc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXR0YWNoTG9hZEJhbGFuY2VyVGFyZ2V0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXR0YWNoTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkF0dGFjaExvYWRCYWxhbmNlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb21wbGV0ZUxpZmVjeWNsZUFjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIixcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJMaWZlY3ljbGVBY3Rpb25SZXN1bHRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIjoge30sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpZmVjeWNsZUFjdGlvblRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGlmZWN5Y2xlQWN0aW9uUmVzdWx0XCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb21wbGV0ZUxpZmVjeWNsZUFjdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUF1dG9TY2FsaW5nR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJNaW5TaXplXCIsXG4gICAgICAgICAgXCJNYXhTaXplXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTWluU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzaXJlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWZhdWx0Q29vbGRvd25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1R5cGVcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja0dyYWNlUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQbGFjZW1lbnRHcm91cFwiOiB7fSxcbiAgICAgICAgICBcIlZQQ1pvbmVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGVybWluYXRpb25Qb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXdJbnN0YW5jZXNQcm90ZWN0ZWRGcm9tU2NhbGVJblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va1NwZWNpZmljYXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIixcbiAgICAgICAgICAgICAgICBcIkxpZmVjeWNsZVRyYW5zaXRpb25cIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMaWZlY3ljbGVUcmFuc2l0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTm90aWZpY2F0aW9uTWV0YWRhdGFcIjoge30sXG4gICAgICAgICAgICAgICAgXCJIZWFydGJlYXRUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0UmVzdWx0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTm90aWZpY2F0aW9uVGFyZ2V0QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VMaW5rZWRSb2xlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGFzc2ljTGlua1ZQQ0lkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xhc3NpY0xpbmtWUENTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckRhdGFcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiS2VybmVsSWRcIjoge30sXG4gICAgICAgICAgXCJSYW1kaXNrSWRcIjoge30sXG4gICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZU1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RQcmljZVwiOiB7fSxcbiAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7fSxcbiAgICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXNzb2NpYXRlUHVibGljSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQbGFjZW1lbnRUZW5hbmN5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlT3JVcGRhdGVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUF1dG9TY2FsaW5nR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRm9yY2VEZWxldGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTGlmZWN5Y2xlSG9va1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIixcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpZmVjeWNsZUhvb2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlTGlmZWN5Y2xlSG9va1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJUb3BpY0FSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRvcGljQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNjaGVkdWxlZEFjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFjY291bnRMaW1pdHNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFjY291bnRMaW1pdHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXhOdW1iZXJPZkF1dG9TY2FsaW5nR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhOdW1iZXJPZkxhdW5jaENvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOdW1iZXJPZkF1dG9TY2FsaW5nR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOdW1iZXJPZkxhdW5jaENvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFkanVzdG1lbnRUeXBlc1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQWRqdXN0bWVudFR5cGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWRqdXN0bWVudFR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBZGp1c3RtZW50VHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXV0b1NjYWxpbmdHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBdXRvU2NhbGluZ0dyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3Vwc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJNaW5TaXplXCIsXG4gICAgICAgICAgICAgICAgXCJNYXhTaXplXCIsXG4gICAgICAgICAgICAgICAgXCJEZXNpcmVkQ2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRDb29sZG93blwiLFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIixcbiAgICAgICAgICAgICAgICBcIkhlYWx0aENoZWNrVHlwZVwiLFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNaW5TaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNpcmVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRDb29sZG93blwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBUk5zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhlYWx0aENoZWNrVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkhlYWx0aENoZWNrR3JhY2VQZXJpb2RcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkxpZmVjeWNsZVN0YXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJIZWFsdGhTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIlByb3RlY3RlZEZyb21TY2FsZUluXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiTGlmZWN5Y2xlU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJIZWFsdGhTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlByb3RlY3RlZEZyb21TY2FsZUluXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdXNwZW5kZWRQcm9jZXNzZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlByb2Nlc3NOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU3VzcGVuc2lvblJlYXNvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBsYWNlbWVudEdyb3VwXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVlBDWm9uZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmFibGVkTWV0cmljc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiTWV0cmljXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiR3JhbnVsYXJpdHlcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUZXJtaW5hdGlvblBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5ld0luc3RhbmNlc1Byb3RlY3RlZEZyb21TY2FsZUluXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlTGlua2VkUm9sZUFSTlwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXV0b1NjYWxpbmdJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQXV0b1NjYWxpbmdJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0luc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCIsXG4gICAgICAgICAgICAgICAgXCJMaWZlY3ljbGVTdGF0ZVwiLFxuICAgICAgICAgICAgICAgIFwiSGVhbHRoU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgXCJQcm90ZWN0ZWRGcm9tU2NhbGVJblwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGlmZWN5Y2xlU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJIZWFsdGhTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb3RlY3RlZEZyb21TY2FsZUluXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUF1dG9TY2FsaW5nTm90aWZpY2F0aW9uVHlwZXNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUF1dG9TY2FsaW5nTm90aWZpY2F0aW9uVHlwZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ05vdGlmaWNhdGlvblR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJJbWFnZUlkXCIsXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIixcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkltYWdlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNsYXNzaWNMaW5rVlBDSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDbGFzc2ljTGlua1ZQQ1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2VyRGF0YVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktlcm5lbElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcG90UHJpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGxhY2VtZW50VGVuYW5jeVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGlmZWN5Y2xlSG9va1R5cGVzXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVMaWZlY3ljbGVIb29rVHlwZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGlmZWN5Y2xlSG9va3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxpZmVjeWNsZUhvb2tzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxpZmVjeWNsZUhvb2tOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMaWZlY3ljbGVUcmFuc2l0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTm90aWZpY2F0aW9uVGFyZ2V0QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5vdGlmaWNhdGlvbk1ldGFkYXRhXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSGVhcnRiZWF0VGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiR2xvYmFsVGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFJlc3VsdFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxvYWRCYWxhbmNlclRhcmdldEdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlclRhcmdldEdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9hZEJhbGFuY2VyVGFyZ2V0R3JvdXBBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNZXRyaWNDb2xsZWN0aW9uVHlwZXNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU1ldHJpY0NvbGxlY3Rpb25UeXBlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk1ldHJpY1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW51bGFyaXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkdyYW51bGFyaXR5XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOb3RpZmljYXRpb25Db25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRvcGljQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTm90aWZpY2F0aW9uVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb2xpY3lUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVQb2xpY2llc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjYWxpbmdQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9saWN5QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9saWN5VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFkanVzdG1lbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWluQWRqdXN0bWVudFN0ZXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1pbkFkanVzdG1lbnRNYWduaXR1ZGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNjYWxpbmdBZGp1c3RtZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb29sZG93blwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RlcEFkanVzdG1lbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3hcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNZXRyaWNBZ2dyZWdhdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFc3RpbWF0ZWRJbnN0YW5jZVdhcm11cFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWxhcm1zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDFcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRUcmFja2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NhbGluZ0FjdGl2aXRpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aXZpdHlJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTY2FsaW5nQWN0aXZpdGllc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY3Rpdml0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGl2aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NhbGluZ1Byb2Nlc3NUeXBlc1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU2NhbGluZ1Byb2Nlc3NUeXBlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb2Nlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlByb2Nlc3NOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlByb2Nlc3NOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2hlZHVsZWRBY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU2NoZWR1bGVkQWN0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjaGVkdWxlZFVwZGF0ZUdyb3VwQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWN1cnJlbmNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWluU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4U2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVzaXJlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVUYWdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUZXJtaW5hdGlvblBvbGljeVR5cGVzXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVUZXJtaW5hdGlvblBvbGljeVR5cGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVybWluYXRpb25Qb2xpY3lUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJTaG91bGREZWNyZW1lbnREZXNpcmVkQ2FwYWNpdHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTaG91bGREZWNyZW1lbnREZXNpcmVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXRhY2hJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3Rpdml0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hMb2FkQmFsYW5jZXJUYXJnZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFSTnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRldGFjaExvYWRCYWxhbmNlclRhcmdldEdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaExvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXRhY2hMb2FkQmFsYW5jZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZU1ldHJpY3NDb2xsZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1OVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZU1ldHJpY3NDb2xsZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiR3JhbnVsYXJpdHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudWxhcml0eVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVudGVyU3RhbmRieVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlNob3VsZERlY3JlbWVudERlc2lyZWRDYXBhY2l0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNob3VsZERlY3JlbWVudERlc2lyZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkVudGVyU3RhbmRieVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGl2aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkV4ZWN1dGVQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSG9ub3JDb29sZG93blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWV0cmljVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnJlYWNoVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkV4aXRTdGFuZGJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJFeGl0U3RhbmRieVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGl2aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dExpZmVjeWNsZUhvb2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpZmVjeWNsZUhvb2tOYW1lXCIsXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGlmZWN5Y2xlVHJhbnNpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25UYXJnZXRBUk5cIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25NZXRhZGF0YVwiOiB7fSxcbiAgICAgICAgICBcIkhlYXJ0YmVhdFRpbWVvdXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRSZXN1bHRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHV0TGlmZWN5Y2xlSG9va1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJUb3BpY0FSTlwiLFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVHlwZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJUb3BpY0FSTlwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRTY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQWRqdXN0bWVudFR5cGVcIjoge30sXG4gICAgICAgICAgXCJNaW5BZGp1c3RtZW50U3RlcFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluQWRqdXN0bWVudE1hZ25pdHVkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvb2xkb3duXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRyaWNBZ2dyZWdhdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGVwQWRqdXN0bWVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVzdGltYXRlZEluc3RhbmNlV2FybXVwXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRUcmFja2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXRTY2FsaW5nUG9saWN5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiQWxhcm1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRTY2hlZHVsZWRVcGRhdGVHcm91cEFjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWN1cnJlbmNlXCI6IHt9LFxuICAgICAgICAgIFwiTWluU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzaXJlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWNvcmRMaWZlY3ljbGVBY3Rpb25IZWFydGJlYXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpZmVjeWNsZUhvb2tOYW1lXCIsXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGlmZWN5Y2xlQWN0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlY29yZExpZmVjeWNsZUFjdGlvbkhlYXJ0YmVhdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3VtZVByb2Nlc3Nlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1cFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldERlc2lyZWRDYXBhY2l0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRlc2lyZWRDYXBhY2l0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2lyZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSG9ub3JDb29sZG93blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0SW5zdGFuY2VIZWFsdGhcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIkhlYWx0aFN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU2hvdWxkUmVzcGVjdEdyYWNlUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJbnN0YW5jZVByb3RlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCIsXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiUHJvdGVjdGVkRnJvbVNjYWxlSW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm90ZWN0ZWRGcm9tU2NhbGVJblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNldEluc3RhbmNlUHJvdGVjdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN1c3BlbmRQcm9jZXNzZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNXBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXJtaW5hdGVJbnN0YW5jZUluQXV0b1NjYWxpbmdHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiU2hvdWxkRGVjcmVtZW50RGVzaXJlZENhcGFjaXR5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTaG91bGREZWNyZW1lbnREZXNpcmVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJUZXJtaW5hdGVJbnN0YW5jZUluQXV0b1NjYWxpbmdHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGl2aXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBdXRvU2NhbGluZ0dyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzaXJlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWZhdWx0Q29vbGRvd25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrR3JhY2VQZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBsYWNlbWVudEdyb3VwXCI6IHt9LFxuICAgICAgICAgIFwiVlBDWm9uZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUZXJtaW5hdGlvblBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ld0luc3RhbmNlc1Byb3RlY3RlZEZyb21TY2FsZUluXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlTGlua2VkUm9sZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7fSxcbiAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgIFwiVmVyc2lvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvcGFnYXRlQXRMYXVuY2hcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGV2aWNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWaXJ0dWFsTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRldmljZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJFYnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiVm9sdW1lU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vRGV2aWNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMm5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3BhZ2F0ZUF0TGF1bmNoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzN1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMzeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNjYWxpbmdBZGp1c3RtZW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldHJpY0ludGVydmFsTG93ZXJCb3VuZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRyaWNJbnRlcnZhbFVwcGVyQm91bmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxhcm1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWxhcm1BUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUYXJnZXRWYWx1ZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlByZWRlZmluZWRNZXRyaWNUeXBlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlByZWRlZmluZWRNZXRyaWNUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJSZXNvdXJjZUxhYmVsXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgICAgXCJOYW1lc3BhY2VcIixcbiAgICAgICAgICAgIFwiU3RhdGlzdGljXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdGF0aXN0aWNcIjoge30sXG4gICAgICAgICAgICBcIlVuaXRcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFyZ2V0VmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGlzYWJsZVNjYWxlSW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0alwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNGtcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJBY3Rpdml0eUlkXCIsXG4gICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgXCJDYXVzZVwiLFxuICAgICAgICBcIlN0YXJ0VGltZVwiLFxuICAgICAgICBcIlN0YXR1c0NvZGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWN0aXZpdHlJZFwiOiB7fSxcbiAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJDYXVzZVwiOiB7fSxcbiAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNDb2RlXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRldGFpbHNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzU5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM1cFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIlNjYWxpbmdQcm9jZXNzZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVBdXRvU2NhbGluZ0dyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBdXRvU2NhbGluZ0dyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXV0b1NjYWxpbmdJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQXV0b1NjYWxpbmdJbnN0YW5jZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkxhdW5jaENvbmZpZ3VyYXRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOb3RpZmljYXRpb25Db25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJOb3RpZmljYXRpb25Db25maWd1cmF0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU2NhbGluZ1BvbGljaWVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2FsaW5nQWN0aXZpdGllc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBY3Rpdml0aWVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2hlZHVsZWRBY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlNjaGVkdWxlZFVwZGF0ZUdyb3VwQWN0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJUYWdzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEwLTA1LTE1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNsb3VkZm9ybWF0aW9uXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgQ2xvdWRGb3JtYXRpb25cIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkNsb3VkRm9ybWF0aW9uXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImNsb3VkZm9ybWF0aW9uLTIwMTAtMDUtMTVcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9jbG91ZGZvcm1hdGlvbi5hbWF6b25hd3MuY29tL2RvYy8yMDEwLTA1LTE1L1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDYW5jZWxVcGRhdGVTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudFJlcXVlc3RUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbnRpbnVlVXBkYXRlUm9sbGJhY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VzVG9Ta2lwXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFJlcXVlc3RUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb250aW51ZVVwZGF0ZVJvbGxiYWNrUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2hhbmdlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIixcbiAgICAgICAgICBcIkNoYW5nZVNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVVUkxcIjoge30sXG4gICAgICAgICAgXCJVc2VQcmV2aW91c1RlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJSb2xsYmFja0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlU2V0VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVDaGFuZ2VTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlVVJMXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEaXNhYmxlUm9sbGJhY2tcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGxiYWNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaW1lb3V0SW5NaW51dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25BUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJPbkZhaWx1cmVcIjoge30sXG4gICAgICAgICAgXCJTdGFja1BvbGljeUJvZHlcIjoge30sXG4gICAgICAgICAgXCJTdGFja1BvbGljeVVSTFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlVGVybWluYXRpb25Qcm90ZWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlU3RhY2tSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RhY2tJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiLFxuICAgICAgICAgIFwiQWNjb3VudHNcIixcbiAgICAgICAgICBcIlJlZ2lvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWNjb3VudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlZ2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlck92ZXJyaWRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcGVyYXRpb25QcmVmZXJlbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVN0YWNrSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdGFja1NldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVVUkxcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkbWluaXN0cmF0aW9uUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkV4ZWN1dGlvblJvbGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVTdGFja1NldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDaGFuZ2VTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNoYW5nZVNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVDaGFuZ2VTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJldGFpblJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU3RhY2tJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiLFxuICAgICAgICAgIFwiQWNjb3VudHNcIixcbiAgICAgICAgICBcIlJlZ2lvbnNcIixcbiAgICAgICAgICBcIlJldGFpblN0YWNrc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJBY2NvdW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uUHJlZmVyZW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldGFpblN0YWNrc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZVN0YWNrSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdGFja1NldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVTdGFja1NldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWNjb3VudExpbWl0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBY2NvdW50TGltaXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjb3VudExpbWl0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNoYW5nZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2hhbmdlU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVNldElkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzUmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xsYmFja0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlQ2hhbmdlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUGh5c2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJSZXBsYWNlbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTY29wZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUYXJnZXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVxdWlyZXNSZWNyZWF0aW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV2YWx1YXRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbmdlU291cmNlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhdXNpbmdFbnRpdHlcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja0V2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTdGFja0V2ZW50c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiLFxuICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwiU3RhY2tOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBoeXNpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlU3RhdHVzUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VQcm9wZXJ0aWVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja0luc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIixcbiAgICAgICAgICBcIlN0YWNrSW5zdGFuY2VBY2NvdW50XCIsXG4gICAgICAgICAgXCJTdGFja0luc3RhbmNlUmVnaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrSW5zdGFuY2VBY2NvdW50XCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJbnN0YW5jZVJlZ2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVN0YWNrSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0luc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGFja1NldElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBY2NvdW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyT3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNSZWFzb25cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIixcbiAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU3RhY2tSZXNvdXJjZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrUmVzb3VyY2VEZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiLFxuICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiLFxuICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVkVGltZXN0YW1wXCIsXG4gICAgICAgICAgICAgIFwiUmVzb3VyY2VTdGF0dXNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUGh5c2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXNvdXJjZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZXNvdXJjZVN0YXR1c1JlYXNvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNZXRhZGF0YVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0YWNrUmVzb3VyY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGh5c2ljYWxSZXNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU3RhY2tSZXNvdXJjZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1Jlc291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VTdGF0dXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGh5c2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VTdGF0dXNSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTdGFja1NldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhY2tTZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiVGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhY2tTZXRBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiQWRtaW5pc3RyYXRpb25Sb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkV4ZWN1dGlvblJvbGVOYW1lXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tTZXRPcGVyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiLFxuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTdGFja1NldE9wZXJhdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0T3BlcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGFja1NldElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiT3BlcmF0aW9uUHJlZmVyZW5jZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJldGFpblN0YWNrc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQWRtaW5pc3RyYXRpb25Sb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkV4ZWN1dGlvblJvbGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVuZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0YWNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTdGFja3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJTdGFja05hbWVcIixcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiLFxuICAgICAgICAgICAgICAgIFwiU3RhY2tTdGF0dXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNoYW5nZVNldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWxldGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFVwZGF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJvbGxiYWNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFja1N0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrU3RhdHVzUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGlzYWJsZVJvbGxiYWNrXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOb3RpZmljYXRpb25BUk5zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRpbWVvdXRJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPdXRwdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJPdXRwdXRLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJPdXRwdXRWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRXhwb3J0TmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGFyZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb290SWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFc3RpbWF0ZVRlbXBsYXRlQ29zdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZUJvZHlcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVVSTFwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkVzdGltYXRlVGVtcGxhdGVDb3N0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRXhlY3V0ZUNoYW5nZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkV4ZWN1dGVDaGFuZ2VTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdGFja1BvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRTdGFja1BvbGljeVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrUG9saWN5Qm9keVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVN0YWdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFRlbXBsYXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiU3RhZ2VzQXZhaWxhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRlbXBsYXRlU3VtbWFyeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZUJvZHlcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVVSTFwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRUZW1wbGF0ZVN1bW1hcnlSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTm9FY2hvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlckNvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYXBhYmlsaXRpZXNSZWFzb25cIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7fSxcbiAgICAgICAgICBcIkRlY2xhcmVkVHJhbnNmb3Jtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENoYW5nZVNldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdENoYW5nZVNldHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDaGFuZ2VTZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNoYW5nZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RXhwb3J0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdEV4cG9ydHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFeHBvcnRpbmdTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEltcG9ydHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkV4cG9ydE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhwb3J0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0SW1wb3J0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltcG9ydHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0YWNrSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhY2tJbnN0YW5jZUFjY291bnRcIjoge30sXG4gICAgICAgICAgXCJTdGFja0luc3RhbmNlUmVnaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RTdGFja0luc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhY2tTZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFjY291bnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0YWNrUmVzb3VyY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RTdGFja1Jlc291cmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrUmVzb3VyY2VTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiLFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlZFRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VTdGF0dXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQaHlzaWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlU3RhdHVzUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0YWNrU2V0T3BlcmF0aW9uUmVzdWx0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCIsXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0U3RhY2tTZXRPcGVyYXRpb25SZXN1bHRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VtbWFyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY2NvdW50XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWNjb3VudEdhdGVSZXN1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNSZWFzb25cIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0YWNrU2V0T3BlcmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0U3RhY2tTZXRPcGVyYXRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VtbWFyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RhY2tTZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0U3RhY2tTZXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VtbWFyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja1NldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RhY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrU3RhdHVzRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0U3RhY2tzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJTdGFja05hbWVcIixcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiLFxuICAgICAgICAgICAgICAgIFwiU3RhY2tTdGF0dXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRlbXBsYXRlRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFVwZGF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlbGV0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFja1N0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrU3RhdHVzUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGFyZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb290SWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRTdGFja1BvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrUG9saWN5Qm9keVwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrUG9saWN5VVJMXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lnbmFsUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiLFxuICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlVuaXF1ZUlkXCIsXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJVbmlxdWVJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BTdGFja1NldE9wZXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCIsXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTdG9wU3RhY2tTZXRPcGVyYXRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlVVJMXCI6IHt9LFxuICAgICAgICAgIFwiVXNlUHJldmlvdXNUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhY2tQb2xpY3lEdXJpbmdVcGRhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tQb2xpY3lEdXJpbmdVcGRhdGVVUkxcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJSb2xsYmFja0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhY2tQb2xpY3lCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tQb2xpY3lVUkxcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25BUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlVwZGF0ZVN0YWNrUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVN0YWNrSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIixcbiAgICAgICAgICBcIkFjY291bnRzXCIsXG4gICAgICAgICAgXCJSZWdpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFjY291bnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJPdmVycmlkZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uUHJlZmVyZW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJVcGRhdGVTdGFja0luc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU3RhY2tTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlVVJMXCI6IHt9LFxuICAgICAgICAgIFwiVXNlUHJldmlvdXNUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYXBhYmlsaXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcGVyYXRpb25QcmVmZXJlbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRtaW5pc3RyYXRpb25Sb2xlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uUm9sZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NvdW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlVwZGF0ZVN0YWNrU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUZXJtaW5hdGlvblByb3RlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvblwiLFxuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuYWJsZVRlcm1pbmF0aW9uUHJvdGVjdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJWYWxpZGF0ZVRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlVVJMXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlZhbGlkYXRlVGVtcGxhdGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOb0VjaG9cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJDYXBhYmlsaXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzUmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwiRGVjbGFyZWRUcmFuc2Zvcm1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcktleVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlclZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiVXNlUHJldmlvdXNWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb2x2ZWRWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSb2xsYmFja1RyaWdnZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJBcm5cIixcbiAgICAgICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk1vbml0b3JpbmdUaW1lSW5NaW51dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVnaW9uT3JkZXJcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZhaWx1cmVUb2xlcmFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmFpbHVyZVRvbGVyYW5jZVBlcmNlbnRhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1heENvbmN1cnJlbnRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWF4Q29uY3VycmVudFBlcmNlbnRhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0d1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlU3RhY2tFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0YWNrRXZlbnRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja1Jlc291cmNlc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdGFja1Jlc291cmNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdGFja3NcIlxuICAgIH0sXG4gICAgXCJMaXN0RXhwb3J0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXhwb3J0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RJbXBvcnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbXBvcnRzXCJcbiAgICB9LFxuICAgIFwiTGlzdFN0YWNrUmVzb3VyY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdGFja1Jlc291cmNlU3VtbWFyaWVzXCJcbiAgICB9LFxuICAgIFwiTGlzdFN0YWNrc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3RhY2tTdW1tYXJpZXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJTdGFja0V4aXN0c1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlU3RhY2tzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDIwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiAyMDAsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiVmFsaWRhdGlvbkVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTdGFja0NyZWF0ZUNvbXBsZXRlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlU3RhY2tzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDEyMCxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIHN0YWNrIHN0YXR1cyBpcyBDUkVBVEVfQ09NUExFVEUuXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ1JFQVRFX0NPTVBMRVRFXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDUkVBVEVfRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJERUxFVEVfQ09NUExFVEVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkRFTEVURV9GQUlMRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlJPTExCQUNLX0ZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUk9MTEJBQ0tfQ09NUExFVEVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlZhbGlkYXRpb25FcnJvclwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlN0YWNrRGVsZXRlQ29tcGxldGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTdGFja3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTIwLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldhaXQgdW50aWwgc3RhY2sgc3RhdHVzIGlzIERFTEVURV9DT01QTEVURS5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJERUxFVEVfQ09NUExFVEVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlZhbGlkYXRpb25FcnJvclwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkRFTEVURV9GQUlMRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkNSRUFURV9GQUlMRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlJPTExCQUNLX0ZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiVVBEQVRFX1JPTExCQUNLX0ZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiVVBEQVRFX1JPTExCQUNLX0lOX1BST0dSRVNTXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTdGFja1VwZGF0ZUNvbXBsZXRlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDEyMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTdGFja3NcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIHN0YWNrIHN0YXR1cyBpcyBVUERBVEVfQ09NUExFVEUuXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiVVBEQVRFX0NPTVBMRVRFXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJVUERBVEVfRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJVUERBVEVfUk9MTEJBQ0tfRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJVUERBVEVfUk9MTEJBQ0tfQ09NUExFVEVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlZhbGlkYXRpb25FcnJvclwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkNoYW5nZVNldENyZWF0ZUNvbXBsZXRlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ2hhbmdlU2V0XCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDEyMCxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIGNoYW5nZSBzZXQgc3RhdHVzIGlzIENSRUFURV9DT01QTEVURS5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ1JFQVRFX0NPTVBMRVRFXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJWYWxpZGF0aW9uRXJyb3JcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNi0xMS0yNVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjbG91ZGZyb250XCIsXG4gICAgXCJnbG9iYWxFbmRwb2ludFwiOiBcImNsb3VkZnJvbnQuYW1hem9uYXdzLmNvbVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LXhtbFwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkNsb3VkRnJvbnRcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBDbG91ZEZyb250XCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImNsb3VkZnJvbnQtMjAxNi0xMS0yNVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE2LTExLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9kaXN0cmlidXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTYtMTEtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURpc3RyaWJ1dGlvbldpdGhUYWdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L2Rpc3RyaWJ1dGlvbj9XaXRoVGFnc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTYtMTEtMjUvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUludmFsaWRhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9kaXN0cmlidXRpb24ve0Rpc3RyaWJ1dGlvbklkfS9pbnZhbGlkYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCIsXG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZGF0aW9uQmF0Y2hcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnZhbGlkYXRpb25CYXRjaFwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTYtMTEtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludmFsaWRhdGlvbkJhdGNoXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludmFsaWRhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludmFsaWRhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RyZWFtaW5nRGlzdHJpYnV0aW9uV2l0aFRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbj9XaXRoVGFnc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTYtMTEtMjUvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvZGlzdHJpYnV0aW9uL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L29yaWdpbi1hY2Nlc3MtaWRlbnRpdHkvY2xvdWRmcm9udC97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvZGlzdHJpYnV0aW9uL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvZGlzdHJpYnV0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnZhbGlkYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvZGlzdHJpYnV0aW9uL3tEaXN0cmlidXRpb25JZH0vaW52YWxpZGF0aW9uL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZhbGlkYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L3N0cmVhbWluZy1kaXN0cmlidXRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXRpZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVN1bW1hcnlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REaXN0cmlidXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L2Rpc3RyaWJ1dGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REaXN0cmlidXRpb25zQnlXZWJBQ0xJZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9kaXN0cmlidXRpb25zQnlXZWJBQ0xJZC97V2ViQUNMSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2ViQUNMSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIldlYkFDTElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkxpc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW52YWxpZGF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9kaXN0cmlidXRpb24ve0Rpc3RyaWJ1dGlvbklkfS9pbnZhbGlkYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnZhbGlkYXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRlVGltZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1pbmdEaXN0cmlidXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L3N0cmVhbWluZy1kaXN0cmlidXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uU3VtbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkFSTlwiLFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUzNPcmlnaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJBbGlhc2VzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUzNPcmlnaW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS90YWdnaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlRhZ3NcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS90YWdnaW5nP09wZXJhdGlvbj1UYWdcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnc1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVudGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvdGFnZ2luZz9PcGVyYXRpb249VW50YWdcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdLZXlzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlRhZ0tleXNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTYtMTEtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L2Rpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE2LTExLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiQ29tbWVudFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIjoge30sXG4gICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiT3JpZ2luc1wiLFxuICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCIsXG4gICAgICAgIFwiQ29tbWVudFwiLFxuICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdFJvb3RPYmplY3RcIjoge30sXG4gICAgICAgIFwiT3JpZ2luc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZUJlaGF2aW9yc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiTG9nZ2luZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgIFwiSW5jbHVkZUNvb2tpZXNcIixcbiAgICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgICBcIlByZWZpeFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJbmNsdWRlQ29va2llc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgXCJQcmVmaXhcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJpY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzdHJpY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fSxcbiAgICAgICAgXCJIdHRwVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJJc0lQVjZFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ05BTUVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JpZ2luXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9yaWdpblBhdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tSGVhZGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JpZ2luQ3VzdG9tSGVhZGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkhlYWRlck5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNPcmlnaW5Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDdXN0b21PcmlnaW5Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJIVFRQUG9ydFwiLFxuICAgICAgICAgICAgICAgICAgXCJIVFRQU1BvcnRcIixcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luUHJvdG9jb2xQb2xpY3lcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiSFRUUFBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkhUVFBTUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luUHJvdG9jb2xQb2xpY3lcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpblNzbFByb3RvY29sc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNzbFByb3RvY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUYXJnZXRPcmlnaW5JZFwiLFxuICAgICAgICBcIkZvcndhcmRlZFZhbHVlc1wiLFxuICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiVmlld2VyUHJvdG9jb2xQb2xpY3lcIixcbiAgICAgICAgXCJNaW5UVExcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGFyZ2V0T3JpZ2luSWRcIjoge30sXG4gICAgICAgIFwiRm9yd2FyZGVkVmFsdWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICB9LFxuICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZpZXdlclByb3RvY29sUG9saWN5XCI6IHt9LFxuICAgICAgICBcIk1pblRUTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dlZE1ldGhvZHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNtb290aFN0cmVhbWluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdFRUTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWF4VFRMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wcmVzc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVlcnlTdHJpbmdcIixcbiAgICAgICAgXCJDb29raWVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1ZXJ5U3RyaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb29raWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRm9yd2FyZFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJGb3J3YXJkXCI6IHt9LFxuICAgICAgICAgICAgXCJXaGl0ZWxpc3RlZE5hbWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSGVhZGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVlcnlTdHJpbmdDYWNoZUtleXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXdzQWNjb3VudE51bWJlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCIsXG4gICAgICAgIFwiSXRlbXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZWRNZXRob2RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIixcbiAgICAgICAgICAgIFwiSXRlbXNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWV0aG9kXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTGFtYmRhRnVuY3Rpb25BUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiRXZlbnRUeXBlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVCZWhhdmlvclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJQYXRoUGF0dGVyblwiLFxuICAgICAgICAgICAgICBcIlRhcmdldE9yaWdpbklkXCIsXG4gICAgICAgICAgICAgIFwiRm9yd2FyZGVkVmFsdWVzXCIsXG4gICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgICAgICAgXCJWaWV3ZXJQcm90b2NvbFBvbGljeVwiLFxuICAgICAgICAgICAgICBcIk1pblRUTFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQYXRoUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRPcmlnaW5JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJGb3J3YXJkZWRWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVmlld2VyUHJvdG9jb2xQb2xpY3lcIjoge30sXG4gICAgICAgICAgICAgIFwiTWluVFRMXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBbGxvd2VkTWV0aG9kc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU21vb3RoU3RyZWFtaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZWZhdWx0VFRMXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJNYXhUVExcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbXByZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDdXN0b21FcnJvclJlc3BvbnNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlc3BvbnNlUGFnZVBhdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVzcG9uc2VDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVycm9yQ2FjaGluZ01pblRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDbG91ZEZyb250RGVmYXVsdENlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJQU1DZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICBcIkFDTUNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICBcIlNTTFN1cHBvcnRNZXRob2RcIjoge30sXG4gICAgICAgIFwiTWluaW11bVByb3RvY29sVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJDZXJ0aWZpY2F0ZVNvdXJjZVwiOiB7XG4gICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJHZW9SZXN0cmljdGlvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJHZW9SZXN0cmljdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlJlc3RyaWN0aW9uVHlwZVwiLFxuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJSZXN0cmljdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiQVJOXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICBcIkluUHJvZ3Jlc3NJbnZhbGlkYXRpb25CYXRjaGVzXCIsXG4gICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJblByb2dyZXNzSW52YWxpZGF0aW9uQmF0Y2hlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJBY3RpdmVUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNpZ25lclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkF3c0FjY291bnROdW1iZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5UGFpcklkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5UGFpcklkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJQYXRoc1wiLFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQYXRoc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGF0aFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiQ3JlYXRlVGltZVwiLFxuICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJTM09yaWdpblwiLFxuICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIlMzT3JpZ2luXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGlhc2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiTG9nZ2luZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgICBcIlByZWZpeFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgICAgICBcIlByZWZpeFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiQVJOXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uU3VtbWFyeVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICBcIkFSTlwiLFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgICAgIFwiQWxpYXNlc1wiLFxuICAgICAgICAgICAgICBcIk9yaWdpbnNcIixcbiAgICAgICAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiLFxuICAgICAgICAgICAgICBcIkNhY2hlQmVoYXZpb3JzXCIsXG4gICAgICAgICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIixcbiAgICAgICAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiLFxuICAgICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiLFxuICAgICAgICAgICAgICBcIlJlc3RyaWN0aW9uc1wiLFxuICAgICAgICAgICAgICBcIldlYkFDTElkXCIsXG4gICAgICAgICAgICAgIFwiSHR0cFZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJJc0lQVjZFbmFibGVkXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3JpZ2luc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDYWNoZUJlaGF2aW9yc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVzdHJpY3Rpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJIdHRwVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJc0lQVjZFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdGllc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUxpc3QuTmV4dE1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlMaXN0LklzVHJ1bmNhdGVkXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlMaXN0Lkl0ZW1zXCJcbiAgICB9LFxuICAgIFwiTGlzdERpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJEaXN0cmlidXRpb25MaXN0Lk5leHRNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiRGlzdHJpYnV0aW9uTGlzdC5Jc1RydW5jYXRlZFwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRGlzdHJpYnV0aW9uTGlzdC5JdGVtc1wiXG4gICAgfSxcbiAgICBcIkxpc3RJbnZhbGlkYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiSW52YWxpZGF0aW9uTGlzdC5OZXh0TWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIkludmFsaWRhdGlvbkxpc3QuSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkludmFsaWRhdGlvbkxpc3QuSXRlbXNcIlxuICAgIH0sXG4gICAgXCJMaXN0U3RyZWFtaW5nRGlzdHJpYnV0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkxpc3QuTmV4dE1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0LklzVHJ1bmNhdGVkXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0Lkl0ZW1zXCJcbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJEaXN0cmlidXRpb25EZXBsb3llZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDYwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJHZXREaXN0cmlidXRpb25cIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMjUsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2FpdCB1bnRpbCBhIGRpc3RyaWJ1dGlvbiBpcyBkZXBsb3llZC5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJEZXBsb3llZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEaXN0cmlidXRpb24uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJJbnZhbGlkYXRpb25Db21wbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAyMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiR2V0SW52YWxpZGF0aW9uXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDMwLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldhaXQgdW50aWwgYW4gaW52YWxpZGF0aW9uIGhhcyBjb21wbGV0ZWQuXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ29tcGxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkludmFsaWRhdGlvbi5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkRlcGxveWVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNjAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkdldFN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAyNSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIGEgc3RyZWFtaW5nIGRpc3RyaWJ1dGlvbiBpcyBkZXBsb3llZC5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJEZXBsb3llZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb24uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNy0wMy0yNVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjbG91ZGZyb250XCIsXG4gICAgXCJnbG9iYWxFbmRwb2ludFwiOiBcImNsb3VkZnJvbnQuYW1hem9uYXdzLmNvbVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LXhtbFwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkNsb3VkRnJvbnRcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBDbG91ZEZyb250XCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImNsb3VkZnJvbnQtMjAxNy0wMy0yNVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTAzLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9kaXN0cmlidXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMDMtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURpc3RyaWJ1dGlvbldpdGhUYWdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L2Rpc3RyaWJ1dGlvbj9XaXRoVGFnc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMDMtMjUvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUludmFsaWRhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9kaXN0cmlidXRpb24ve0Rpc3RyaWJ1dGlvbklkfS9pbnZhbGlkYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCIsXG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZGF0aW9uQmF0Y2hcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnZhbGlkYXRpb25CYXRjaFwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMDMtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludmFsaWRhdGlvbkJhdGNoXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludmFsaWRhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludmFsaWRhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RyZWFtaW5nRGlzdHJpYnV0aW9uV2l0aFRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbj9XaXRoVGFnc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMDMtMjUvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvZGlzdHJpYnV0aW9uL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTZXJ2aWNlTGlua2VkUm9sZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9zZXJ2aWNlLWxpbmtlZC1yb2xlL3tSb2xlTmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJvbGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJvbGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUm9sZU5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L29yaWdpbi1hY2Nlc3MtaWRlbnRpdHkvY2xvdWRmcm9udC97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvZGlzdHJpYnV0aW9uL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvZGlzdHJpYnV0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnZhbGlkYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvZGlzdHJpYnV0aW9uL3tEaXN0cmlidXRpb25JZH0vaW52YWxpZGF0aW9uL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZhbGlkYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L3N0cmVhbWluZy1kaXN0cmlidXRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXRpZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVN1bW1hcnlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REaXN0cmlidXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L2Rpc3RyaWJ1dGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REaXN0cmlidXRpb25zQnlXZWJBQ0xJZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9kaXN0cmlidXRpb25zQnlXZWJBQ0xJZC97V2ViQUNMSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2ViQUNMSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIldlYkFDTElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkxpc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW52YWxpZGF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9kaXN0cmlidXRpb24ve0Rpc3RyaWJ1dGlvbklkfS9pbnZhbGlkYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnZhbGlkYXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRlVGltZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1pbmdEaXN0cmlidXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L3N0cmVhbWluZy1kaXN0cmlidXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uU3VtbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkFSTlwiLFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUzNPcmlnaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJBbGlhc2VzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUzNPcmlnaW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS90YWdnaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlRhZ3NcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS90YWdnaW5nP09wZXJhdGlvbj1UYWdcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnc1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVudGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvdGFnZ2luZz9PcGVyYXRpb249VW50YWdcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdLZXlzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlRhZ0tleXNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMDMtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L2Rpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTAzLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiQ29tbWVudFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIjoge30sXG4gICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiT3JpZ2luc1wiLFxuICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCIsXG4gICAgICAgIFwiQ29tbWVudFwiLFxuICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdFJvb3RPYmplY3RcIjoge30sXG4gICAgICAgIFwiT3JpZ2luc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZUJlaGF2aW9yc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiTG9nZ2luZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgIFwiSW5jbHVkZUNvb2tpZXNcIixcbiAgICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgICBcIlByZWZpeFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJbmNsdWRlQ29va2llc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgXCJQcmVmaXhcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJpY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzdHJpY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fSxcbiAgICAgICAgXCJIdHRwVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJJc0lQVjZFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ05BTUVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JpZ2luXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9yaWdpblBhdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tSGVhZGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JpZ2luQ3VzdG9tSGVhZGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkhlYWRlck5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNPcmlnaW5Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDdXN0b21PcmlnaW5Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJIVFRQUG9ydFwiLFxuICAgICAgICAgICAgICAgICAgXCJIVFRQU1BvcnRcIixcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luUHJvdG9jb2xQb2xpY3lcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiSFRUUFBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkhUVFBTUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luUHJvdG9jb2xQb2xpY3lcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpblNzbFByb3RvY29sc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNzbFByb3RvY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpblJlYWRUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5LZWVwYWxpdmVUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiVGFyZ2V0T3JpZ2luSWRcIixcbiAgICAgICAgXCJGb3J3YXJkZWRWYWx1ZXNcIixcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICBcIlZpZXdlclByb3RvY29sUG9saWN5XCIsXG4gICAgICAgIFwiTWluVFRMXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhcmdldE9yaWdpbklkXCI6IHt9LFxuICAgICAgICBcIkZvcndhcmRlZFZhbHVlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWaWV3ZXJQcm90b2NvbFBvbGljeVwiOiB7fSxcbiAgICAgICAgXCJNaW5UVExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93ZWRNZXRob2RzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbW9vdGhTdHJlYW1pbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlZmF1bHRUVExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1heFRUTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcHJlc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1ZXJ5U3RyaW5nXCIsXG4gICAgICAgIFwiQ29va2llc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWVyeVN0cmluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29va2llc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkZvcndhcmRcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRm9yd2FyZFwiOiB7fSxcbiAgICAgICAgICAgIFwiV2hpdGVsaXN0ZWROYW1lc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkhlYWRlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlF1ZXJ5U3RyaW5nQ2FjaGVLZXlzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF3c0FjY291bnROdW1iZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiLFxuICAgICAgICBcIkl0ZW1zXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FjaGVkTWV0aG9kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCIsXG4gICAgICAgICAgICBcIkl0ZW1zXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1ldGhvZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkV2ZW50VHlwZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlQmVoYXZpb3JcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUGF0aFBhdHRlcm5cIixcbiAgICAgICAgICAgICAgXCJUYXJnZXRPcmlnaW5JZFwiLFxuICAgICAgICAgICAgICBcIkZvcndhcmRlZFZhbHVlc1wiLFxuICAgICAgICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgICAgICAgIFwiVmlld2VyUHJvdG9jb2xQb2xpY3lcIixcbiAgICAgICAgICAgICAgXCJNaW5UVExcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUGF0aFBhdHRlcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiVGFyZ2V0T3JpZ2luSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRm9yd2FyZGVkVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZpZXdlclByb3RvY29sUG9saWN5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1pblRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQWxsb3dlZE1ldGhvZHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNtb290aFN0cmVhbWluZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVmYXVsdFRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTWF4VFRMXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb21wcmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3VzdG9tRXJyb3JSZXNwb25zZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRXJyb3JDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXNwb25zZVBhZ2VQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJlc3BvbnNlQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFcnJvckNhY2hpbmdNaW5UVExcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2xvdWRGcm9udERlZmF1bHRDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSUFNQ2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgXCJBQ01DZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgXCJTU0xTdXBwb3J0TWV0aG9kXCI6IHt9LFxuICAgICAgICBcIk1pbmltdW1Qcm90b2NvbFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQ2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2VydGlmaWNhdGVTb3VyY2VcIjoge1xuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiR2VvUmVzdHJpY3Rpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiR2VvUmVzdHJpY3Rpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJSZXN0cmljdGlvblR5cGVcIixcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUmVzdHJpY3Rpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIkFSTlwiLFxuICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgXCJJblByb2dyZXNzSW52YWxpZGF0aW9uQmF0Y2hlc1wiLFxuICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgXCJBY3RpdmVUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJBUk5cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5Qcm9ncmVzc0ludmFsaWRhdGlvbkJhdGNoZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgIFwiQWN0aXZlVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJFbmFibGVkXCIsXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTaWduZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBd3NBY2NvdW50TnVtYmVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIktleVBhaXJJZHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVBhaXJJZFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIktleVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUGF0aHNcIixcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUGF0aHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhdGhcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICBcIkNyZWF0ZVRpbWVcIixcbiAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiUzNPcmlnaW5cIixcbiAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgXCJFbmFibGVkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgXCJTM09yaWdpblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxpYXNlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICBcIkxvZ2dpbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJFbmFibGVkXCIsXG4gICAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgICAgXCJQcmVmaXhcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgXCJQcmVmaXhcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJpY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgIFwiT3JpZ2luQWNjZXNzSWRlbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIkFSTlwiLFxuICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgXCJBY3RpdmVUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJBUk5cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJBY3RpdmVUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvblN1bW1hcnlcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgXCJBUk5cIixcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIixcbiAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCIsXG4gICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICAgICAgICBcIkFsaWFzZXNcIixcbiAgICAgICAgICAgICAgXCJPcmlnaW5zXCIsXG4gICAgICAgICAgICAgIFwiRGVmYXVsdENhY2hlQmVoYXZpb3JcIixcbiAgICAgICAgICAgICAgXCJDYWNoZUJlaGF2aW9yc1wiLFxuICAgICAgICAgICAgICBcIkN1c3RvbUVycm9yUmVzcG9uc2VzXCIsXG4gICAgICAgICAgICAgIFwiQ29tbWVudFwiLFxuICAgICAgICAgICAgICBcIlByaWNlQ2xhc3NcIixcbiAgICAgICAgICAgICAgXCJFbmFibGVkXCIsXG4gICAgICAgICAgICAgIFwiVmlld2VyQ2VydGlmaWNhdGVcIixcbiAgICAgICAgICAgICAgXCJSZXN0cmljdGlvbnNcIixcbiAgICAgICAgICAgICAgXCJXZWJBQ0xJZFwiLFxuICAgICAgICAgICAgICBcIkh0dHBWZXJzaW9uXCIsXG4gICAgICAgICAgICAgIFwiSXNJUFY2RW5hYmxlZFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBbGlhc2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk9yaWdpbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVmYXVsdENhY2hlQmVoYXZpb3JcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ2FjaGVCZWhhdmlvcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkN1c3RvbUVycm9yUmVzcG9uc2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIlByaWNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVmlld2VyQ2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlc3RyaWN0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiV2ViQUNMSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiSHR0cFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiSXNJUFY2RW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXRpZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlMaXN0LklzVHJ1bmNhdGVkXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUxpc3QuTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdC5JdGVtc1wiXG4gICAgfSxcbiAgICBcIkxpc3REaXN0cmlidXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiRGlzdHJpYnV0aW9uTGlzdC5Jc1RydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJEaXN0cmlidXRpb25MaXN0Lk5leHRNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRpc3RyaWJ1dGlvbkxpc3QuSXRlbXNcIlxuICAgIH0sXG4gICAgXCJMaXN0SW52YWxpZGF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIkludmFsaWRhdGlvbkxpc3QuSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiSW52YWxpZGF0aW9uTGlzdC5OZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbnZhbGlkYXRpb25MaXN0Lkl0ZW1zXCJcbiAgICB9LFxuICAgIFwiTGlzdFN0cmVhbWluZ0Rpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0LklzVHJ1bmNhdGVkXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkxpc3QuTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uTGlzdC5JdGVtc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNy0xMC0zMFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjbG91ZGZyb250XCIsXG4gICAgXCJnbG9iYWxFbmRwb2ludFwiOiBcImNsb3VkZnJvbnQuYW1hem9uYXdzLmNvbVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LXhtbFwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkNsb3VkRnJvbnRcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBDbG91ZEZyb250XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJDbG91ZEZyb250XCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImNsb3VkZnJvbnQtMjAxNy0xMC0zMFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9kaXN0cmlidXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURpc3RyaWJ1dGlvbldpdGhUYWdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvbj9XaXRoVGFnc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2ZpZWxkLWxldmVsLWVuY3J5cHRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZmllbGQtbGV2ZWwtZW5jcnlwdGlvbi1wcm9maWxlXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm1cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSW52YWxpZGF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvbi97RGlzdHJpYnV0aW9uSWR9L2ludmFsaWRhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uSWRcIixcbiAgICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkludmFsaWRhdGlvbkJhdGNoXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uQmF0Y2hcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZGF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUHVibGljS2V5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3B1YmxpYy1rZXlcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlB1YmxpY0tleUNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQdWJsaWNLZXlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQdWJsaWNLZXlDb25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQdWJsaWNLZXlDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQdWJsaWNLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQdWJsaWNLZXlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvbldpdGhUYWdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3N0cmVhbWluZy1kaXN0cmlidXRpb24/V2l0aFRhZ3NcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL29yaWdpbi1hY2Nlc3MtaWRlbnRpdHkvY2xvdWRmcm9udC97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvbi97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZmllbGQtbGV2ZWwtZW5jcnlwdGlvbi97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2ZpZWxkLWxldmVsLWVuY3J5cHRpb24tcHJvZmlsZS97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUHVibGljS2V5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3B1YmxpYy1rZXkve0lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9zdHJlYW1pbmctZGlzdHJpYnV0aW9uL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9kaXN0cmlidXRpb24ve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9kaXN0cmlidXRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZpZWxkTGV2ZWxFbmNyeXB0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2ZpZWxkLWxldmVsLWVuY3J5cHRpb24ve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9maWVsZC1sZXZlbC1lbmNyeXB0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9maWVsZC1sZXZlbC1lbmNyeXB0aW9uLXByb2ZpbGUve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9maWVsZC1sZXZlbC1lbmNyeXB0aW9uLXByb2ZpbGUve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnZhbGlkYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZGlzdHJpYnV0aW9uL3tEaXN0cmlidXRpb25JZH0vaW52YWxpZGF0aW9uL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyelwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZhbGlkYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQdWJsaWNLZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvcHVibGljLWtleS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlB1YmxpY0tleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUHVibGljS2V5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UHVibGljS2V5Q29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3B1YmxpYy1rZXkve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHVibGljS2V5Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQdWJsaWNLZXlDb25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3N0cmVhbWluZy1kaXN0cmlidXRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXRpZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVN1bW1hcnlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REaXN0cmlidXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REaXN0cmlidXRpb25zQnlXZWJBQ0xJZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9kaXN0cmlidXRpb25zQnlXZWJBQ0xJZC97V2ViQUNMSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2ViQUNMSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIldlYkFDTElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkxpc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2ZpZWxkLWxldmVsLWVuY3J5cHRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uU3VtbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlF1ZXJ5QXJnUHJvZmlsZUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudFR5cGVQcm9maWxlQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZmllbGQtbGV2ZWwtZW5jcnlwdGlvbi1wcm9maWxlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlU3VtbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiRW5jcnlwdGlvbkVudGl0aWVzXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uRW50aXRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUxpc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW52YWxpZGF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9kaXN0cmlidXRpb24ve0Rpc3RyaWJ1dGlvbklkfS9pbnZhbGlkYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnZhbGlkYXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRlVGltZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQdWJsaWNLZXlzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3B1YmxpYy1rZXlcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHVibGljS2V5TGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQdWJsaWNLZXlTdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiRW5jb2RlZEtleVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkVuY29kZWRLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUHVibGljS2V5TGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1pbmdEaXN0cmlidXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3N0cmVhbWluZy1kaXN0cmlidXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uU3VtbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkFSTlwiLFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUzNPcmlnaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJBbGlhc2VzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUzNPcmlnaW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC90YWdnaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlRhZ3NcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC90YWdnaW5nP09wZXJhdGlvbj1UYWdcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnc1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVudGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvdGFnZ2luZz9PcGVyYXRpb249VW50YWdcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdLZXlzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlRhZ0tleXNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9maWVsZC1sZXZlbC1lbmNyeXB0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZmllbGQtbGV2ZWwtZW5jcnlwdGlvbi1wcm9maWxlL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQdWJsaWNLZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvcHVibGljLWtleS97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlB1YmxpY0tleUNvbmZpZ1wiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHVibGljS2V5Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHVibGljS2V5Q29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlB1YmxpY0tleUNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlB1YmxpY0tleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUHVibGljS2V5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3N0cmVhbWluZy1kaXN0cmlidXRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiLFxuICAgICAgICBcIkNvbW1lbnRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIlMzQ2Fub25pY2FsVXNlcklkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlMzQ2Fub25pY2FsVXNlcklkXCI6IHt9LFxuICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiLFxuICAgICAgICBcIk9yaWdpbnNcIixcbiAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiLFxuICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgXCJFbmFibGVkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgXCJBbGlhc2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlZmF1bHRSb290T2JqZWN0XCI6IHt9LFxuICAgICAgICBcIk9yaWdpbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdENhY2hlQmVoYXZpb3JcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FjaGVCZWhhdmlvcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1c3RvbUVycm9yUmVzcG9uc2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICBcIkxvZ2dpbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJFbmFibGVkXCIsXG4gICAgICAgICAgICBcIkluY2x1ZGVDb29raWVzXCIsXG4gICAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgICAgXCJQcmVmaXhcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSW5jbHVkZUNvb2tpZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlByaWNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmlld2VyQ2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWpcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlc3RyaWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiV2ViQUNMSWRcIjoge30sXG4gICAgICAgIFwiSHR0cFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiSXNJUFY2RW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNOQU1FXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yaWdpblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJPcmlnaW5QYXRoXCI6IHt9LFxuICAgICAgICAgICAgICBcIkN1c3RvbUhlYWRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yaWdpbkN1c3RvbUhlYWRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJIZWFkZXJOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkhlYWRlclZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkhlYWRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkhlYWRlclZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzT3JpZ2luQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luQWNjZXNzSWRlbnRpdHlcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tT3JpZ2luQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiSFRUUFBvcnRcIixcbiAgICAgICAgICAgICAgICAgIFwiSFRUUFNQb3J0XCIsXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpblByb3RvY29sUG9saWN5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkhUVFBQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJIVFRQU1BvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpblByb3RvY29sUG9saWN5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5Tc2xQcm90b2NvbHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTc2xQcm90b2NvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5SZWFkVGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luS2VlcGFsaXZlVGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRhcmdldE9yaWdpbklkXCIsXG4gICAgICAgIFwiRm9yd2FyZGVkVmFsdWVzXCIsXG4gICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgXCJWaWV3ZXJQcm90b2NvbFBvbGljeVwiLFxuICAgICAgICBcIk1pblRUTFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYXJnZXRPcmlnaW5JZFwiOiB7fSxcbiAgICAgICAgXCJGb3J3YXJkZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmlld2VyUHJvdG9jb2xQb2xpY3lcIjoge30sXG4gICAgICAgIFwiTWluVFRMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvd2VkTWV0aG9kc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU21vb3RoU3RyZWFtaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0VFRMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXhUVExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXByZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25JZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1ZXJ5U3RyaW5nXCIsXG4gICAgICAgIFwiQ29va2llc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWVyeVN0cmluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29va2llc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkZvcndhcmRcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRm9yd2FyZFwiOiB7fSxcbiAgICAgICAgICAgIFwiV2hpdGVsaXN0ZWROYW1lc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkhlYWRlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlF1ZXJ5U3RyaW5nQ2FjaGVLZXlzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF3c0FjY291bnROdW1iZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiLFxuICAgICAgICBcIkl0ZW1zXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FjaGVkTWV0aG9kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCIsXG4gICAgICAgICAgICBcIkl0ZW1zXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1ldGhvZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJMYW1iZGFGdW5jdGlvbkFSTlwiLFxuICAgICAgICAgICAgICBcIkV2ZW50VHlwZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJMYW1iZGFGdW5jdGlvbkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFdmVudFR5cGVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZUJlaGF2aW9yXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlBhdGhQYXR0ZXJuXCIsXG4gICAgICAgICAgICAgIFwiVGFyZ2V0T3JpZ2luSWRcIixcbiAgICAgICAgICAgICAgXCJGb3J3YXJkZWRWYWx1ZXNcIixcbiAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICAgICAgICBcIlZpZXdlclByb3RvY29sUG9saWN5XCIsXG4gICAgICAgICAgICAgIFwiTWluVFRMXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlBhdGhQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIlRhcmdldE9yaWdpbklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkZvcndhcmRlZFZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWaWV3ZXJQcm90b2NvbFBvbGljeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNaW5UVExcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFsbG93ZWRNZXRob2RzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTbW9vdGhTdHJlYW1pbmdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlZmF1bHRUVExcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1heFRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29tcHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvbklkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3VzdG9tRXJyb3JSZXNwb25zZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRXJyb3JDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXNwb25zZVBhZ2VQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJlc3BvbnNlQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFcnJvckNhY2hpbmdNaW5UVExcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2xvdWRGcm9udERlZmF1bHRDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSUFNQ2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgXCJBQ01DZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgXCJTU0xTdXBwb3J0TWV0aG9kXCI6IHt9LFxuICAgICAgICBcIk1pbmltdW1Qcm90b2NvbFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQ2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2VydGlmaWNhdGVTb3VyY2VcIjoge1xuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiR2VvUmVzdHJpY3Rpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiR2VvUmVzdHJpY3Rpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJSZXN0cmljdGlvblR5cGVcIixcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUmVzdHJpY3Rpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIkFSTlwiLFxuICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgXCJJblByb2dyZXNzSW52YWxpZGF0aW9uQmF0Y2hlc1wiLFxuICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgXCJBY3RpdmVUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJBUk5cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5Qcm9ncmVzc0ludmFsaWRhdGlvbkJhdGNoZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgIFwiQWN0aXZlVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJFbmFibGVkXCIsXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTaWduZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBd3NBY2NvdW50TnVtYmVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIktleVBhaXJJZHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVBhaXJJZFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIktleVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICBcIlF1ZXJ5QXJnUHJvZmlsZUNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29udGVudFR5cGVQcm9maWxlQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJGb3J3YXJkV2hlblF1ZXJ5QXJnUHJvZmlsZUlzVW5rbm93blwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGb3J3YXJkV2hlblF1ZXJ5QXJnUHJvZmlsZUlzVW5rbm93blwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVlcnlBcmdQcm9maWxlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVlcnlBcmdQcm9maWxlXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlF1ZXJ5QXJnXCIsXG4gICAgICAgICAgICAgICAgICBcIlByb2ZpbGVJZFwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJRdWVyeUFyZ1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiUHJvZmlsZUlkXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkZvcndhcmRXaGVuQ29udGVudFR5cGVJc1Vua25vd25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRm9yd2FyZFdoZW5Db250ZW50VHlwZUlzVW5rbm93blwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29udGVudFR5cGVQcm9maWxlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudFR5cGVQcm9maWxlXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIkZvcm1hdFwiLFxuICAgICAgICAgICAgICAgICAgXCJDb250ZW50VHlwZVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlByb2ZpbGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiQ29udGVudFR5cGVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCIsXG4gICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiLFxuICAgICAgICBcIkVuY3J5cHRpb25FbnRpdGllc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICBcIkVuY3J5cHRpb25FbnRpdGllc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFbmNyeXB0aW9uRW50aXR5XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlB1YmxpY0tleUlkXCIsXG4gICAgICAgICAgICAgIFwiUHJvdmlkZXJJZFwiLFxuICAgICAgICAgICAgICBcIkZpZWxkUGF0dGVybnNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUHVibGljS2V5SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJvdmlkZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJGaWVsZFBhdHRlcm5zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWVsZFBhdHRlcm5cIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMydFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUNvbmZpZ1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUGF0aHNcIixcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUGF0aHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhdGhcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICBcIkNyZWF0ZVRpbWVcIixcbiAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIkVuY29kZWRLZXlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiRW5jb2RlZEtleVwiOiB7fSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVcIixcbiAgICAgICAgXCJQdWJsaWNLZXlDb25maWdcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHVibGljS2V5Q29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzMxXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJTM09yaWdpblwiLFxuICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIlMzT3JpZ2luXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzM2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGlhc2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiTG9nZ2luZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgICBcIlByZWZpeFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgICAgICBcIlByZWZpeFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiQVJOXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMzVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0Z1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uU3VtbWFyeVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICBcIkFSTlwiLFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgICAgIFwiQWxpYXNlc1wiLFxuICAgICAgICAgICAgICBcIk9yaWdpbnNcIixcbiAgICAgICAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiLFxuICAgICAgICAgICAgICBcIkNhY2hlQmVoYXZpb3JzXCIsXG4gICAgICAgICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIixcbiAgICAgICAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiLFxuICAgICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiLFxuICAgICAgICAgICAgICBcIlJlc3RyaWN0aW9uc1wiLFxuICAgICAgICAgICAgICBcIldlYkFDTElkXCIsXG4gICAgICAgICAgICAgIFwiSHR0cFZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJJc0lQVjZFbmFibGVkXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3JpZ2luc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDYWNoZUJlaGF2aW9yc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVzdHJpY3Rpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJIdHRwVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJc0lQVjZFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMDUtMzBcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY2xvdWRoc21cIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJDbG91ZEhTTVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIENsb3VkSFNNXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJDbG91ZEhTTVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJDbG91ZEhzbUZyb250ZW5kU2VydmljZVwiLFxuICAgIFwidWlkXCI6IFwiY2xvdWRoc20tMjAxNC0wNS0zMFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRUYWdzVG9SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcIlRhZ0xpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSGFwZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGFiZWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGFiZWxcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIYXBnQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSHNtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJuZXRJZFwiLFxuICAgICAgICAgIFwiU3NoS2V5XCIsXG4gICAgICAgICAgXCJJYW1Sb2xlQXJuXCIsXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25UeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTc2hLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTc2hLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmlJcFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVuaUlwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWFtUm9sZUFyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklhbVJvbGVBcm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHRlcm5hbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXh0ZXJuYWxJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvblR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJzY3JpcHRpb25UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbGllbnRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN5c2xvZ0lwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3lzbG9nSXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDcmVhdGVIc21SZXF1ZXN0XCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTHVuYUNsaWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUhhcGdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhhcGdBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGFwZ0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSHNtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIc21Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSHNtQXJuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVsZXRlSHNtUmVxdWVzdFwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTHVuYUNsaWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50QXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIYXBnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIYXBnQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhhcGdBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIYXBnQXJuXCI6IHt9LFxuICAgICAgICAgIFwiSGFwZ1NlcmlhbFwiOiB7fSxcbiAgICAgICAgICBcIkhzbXNMYXN0QWN0aW9uRmFpbGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhzbXNQZW5kaW5nRGVsZXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSHNtc1BlbmRpbmdSZWdpc3RyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lc3RhbXBcIjoge30sXG4gICAgICAgICAgXCJQYXJ0aXRpb25TZXJpYWxMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSHNtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhzbUFyblwiOiB7fSxcbiAgICAgICAgICBcIkhzbVNlcmlhbE51bWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhzbUFyblwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiRW5pSWRcIjoge30sXG4gICAgICAgICAgXCJFbmlJcFwiOiB7fSxcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25TdGFydERhdGVcIjoge30sXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25FbmREYXRlXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIklhbVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJTZXJpYWxOdW1iZXJcIjoge30sXG4gICAgICAgICAgXCJWZW5kb3JOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSHNtVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlNvZnR3YXJlVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlNzaFB1YmxpY0tleVwiOiB7fSxcbiAgICAgICAgICBcIlNzaEtleUxhc3RVcGRhdGVkXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmVyQ2VydFVyaVwiOiB7fSxcbiAgICAgICAgICBcIlNlcnZlckNlcnRMYXN0VXBkYXRlZFwiOiB7fSxcbiAgICAgICAgICBcIlBhcnRpdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMdW5hQ2xpZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudEFyblwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlRmluZ2VycHJpbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRBcm5cIjoge30sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlRmluZ2VycHJpbnRcIjoge30sXG4gICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lc3RhbXBcIjoge30sXG4gICAgICAgICAgXCJMYWJlbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbmZpZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50QXJuXCIsXG4gICAgICAgICAgXCJDbGllbnRWZXJzaW9uXCIsXG4gICAgICAgICAgXCJIYXBnTGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRBcm5cIjoge30sXG4gICAgICAgICAgXCJDbGllbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiSGFwZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJDb25maWdGaWxlXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZmlnQ3JlZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBdmFpbGFibGVab25lc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBWkxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEhhcGdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIYXBnTGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIYXBnTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEhzbXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0THVuYUNsaWVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsaWVudExpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50TGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdMaXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5SGFwZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGFwZ0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIYXBnQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJQYXJ0aXRpb25TZXJpYWxMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIYXBnQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5SHNtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIc21Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSHNtQXJuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuaUlwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRW5pSXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJYW1Sb2xlQXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWFtUm9sZUFyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4dGVybmFsSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeHRlcm5hbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3lzbG9nSXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTeXNsb2dJcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1vZGlmeUhzbVJlcXVlc3RcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlMdW5hQ2xpZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRBcm5cIixcbiAgICAgICAgICBcIkNlcnRpZmljYXRlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudEFyblwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50QXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcIlRhZ0tleUxpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTMtMTEtMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY2xvdWR0cmFpbFwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkNsb3VkVHJhaWxcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBDbG91ZFRyYWlsXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcImNvbS5hbWF6b25hd3MuY2xvdWR0cmFpbC52MjAxMzExMDEuQ2xvdWRUcmFpbF8yMDEzMTEwMVwiLFxuICAgIFwidWlkXCI6IFwiY2xvdWR0cmFpbC0yMDEzLTExLTAxXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiQ3JlYXRlVHJhaWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJJbmNsdWRlR2xvYmFsU2VydmljZUV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXNNdWx0aVJlZ2lvblRyYWlsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVMb2dGaWxlVmFsaWRhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NMb2dHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzS2V5UHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNOYW1lXCI6IHtcbiAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuc1RvcGljQVJOXCI6IHt9LFxuICAgICAgICAgIFwiSW5jbHVkZUdsb2JhbFNlcnZpY2VFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzTXVsdGlSZWdpb25UcmFpbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhaWxBUk5cIjoge30sXG4gICAgICAgICAgXCJMb2dGaWxlVmFsaWRhdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzTG9nR3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc1JvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGVsZXRlVHJhaWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUcmFpbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidHJhaWxOYW1lTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbmNsdWRlU2hhZG93VHJhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0cmFpbExpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTM0tleVByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNuc1RvcGljTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTbnNUb3BpY0FSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluY2x1ZGVHbG9iYWxTZXJ2aWNlRXZlbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJc011bHRpUmVnaW9uVHJhaWxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhvbWVSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUcmFpbEFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxvZ0ZpbGVWYWxpZGF0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NMb2dHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSGFzQ3VzdG9tRXZlbnRTZWxlY3RvcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiR2V0RXZlbnRTZWxlY3RvcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWlsTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFpbE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFpbEFSTlwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50U2VsZWN0b3JzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiR2V0VHJhaWxTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklzTG9nZ2luZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF0ZXN0RGVsaXZlcnlFcnJvclwiOiB7fSxcbiAgICAgICAgICBcIkxhdGVzdE5vdGlmaWNhdGlvbkVycm9yXCI6IHt9LFxuICAgICAgICAgIFwiTGF0ZXN0RGVsaXZlcnlUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdGVzdE5vdGlmaWNhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRMb2dnaW5nVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9wTG9nZ2luZ1RpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF0ZXN0Q2xvdWRXYXRjaExvZ3NEZWxpdmVyeUVycm9yXCI6IHt9LFxuICAgICAgICAgIFwiTGF0ZXN0Q2xvdWRXYXRjaExvZ3NEZWxpdmVyeVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF0ZXN0RGlnZXN0RGVsaXZlcnlUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdGVzdERpZ2VzdERlbGl2ZXJ5RXJyb3JcIjoge30sXG4gICAgICAgICAgXCJMYXRlc3REZWxpdmVyeUF0dGVtcHRUaW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGF0ZXN0Tm90aWZpY2F0aW9uQXR0ZW1wdFRpbWVcIjoge30sXG4gICAgICAgICAgXCJMYXRlc3ROb3RpZmljYXRpb25BdHRlbXB0U3VjY2VlZGVkXCI6IHt9LFxuICAgICAgICAgIFwiTGF0ZXN0RGVsaXZlcnlBdHRlbXB0U3VjY2VlZGVkXCI6IHt9LFxuICAgICAgICAgIFwiVGltZUxvZ2dpbmdTdGFydGVkXCI6IHt9LFxuICAgICAgICAgIFwiVGltZUxvZ2dpbmdTdG9wcGVkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0UHVibGljS2V5c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQdWJsaWNLZXlMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsaWRpdHlTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsaWRpdHlFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpbmdlcnByaW50XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZExpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZExpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUYWdMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFnc0xpc3RcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMb29rdXBFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9va3VwQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZUtleVwiLFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkV2ZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRTb3VyY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2xvdWRUcmFpbEV2ZW50XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJQdXRFdmVudFNlbGVjdG9yc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhaWxOYW1lXCIsXG4gICAgICAgICAgXCJFdmVudFNlbGVjdG9yc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFpbE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFdmVudFNlbGVjdG9yc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFpbEFSTlwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50U2VsZWN0b3JzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdGFydExvZ2dpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3RvcExvZ2dpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiVXBkYXRlVHJhaWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzS2V5UHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5jbHVkZUdsb2JhbFNlcnZpY2VFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzTXVsdGlSZWdpb25UcmFpbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlTG9nRmlsZVZhbGlkYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzTG9nR3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc1JvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTM0tleVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljTmFtZVwiOiB7XG4gICAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbnNUb3BpY0FSTlwiOiB7fSxcbiAgICAgICAgICBcIkluY2x1ZGVHbG9iYWxTZXJ2aWNlRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc011bHRpUmVnaW9uVHJhaWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWlsQVJOXCI6IHt9LFxuICAgICAgICAgIFwiTG9nRmlsZVZhbGlkYXRpb25FbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0xvZ0dyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWFkV3JpdGVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSW5jbHVkZU1hbmFnZW1lbnRFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZVRyYWlsc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJ0cmFpbExpc3RcIlxuICAgIH0sXG4gICAgXCJMb29rdXBFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXZlbnRzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE2LTEwLTA2XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNvZGVidWlsZFwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIENvZGVCdWlsZFwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJDb2RlQnVpbGRfMjAxNjEwMDZcIixcbiAgICBcInVpZFwiOiBcImNvZGVidWlsZC0yMDE2LTEwLTA2XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkJhdGNoRGVsZXRlQnVpbGRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJ1aWxkc0RlbGV0ZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYnVpbGRzTm90RGVsZXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNDb2RlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQmF0Y2hHZXRCdWlsZHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYnVpbGRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYnVpbGRzTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQmF0Y2hHZXRQcm9qZWN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByb2plY3RzTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVByb2plY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInNvdXJjZVwiLFxuICAgICAgICAgIFwiYXJ0aWZhY3RzXCIsXG4gICAgICAgICAgXCJlbnZpcm9ubWVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjYWNoZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgICBcInRpbWVvdXRJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVuY3J5cHRpb25LZXlcIjoge30sXG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2cGNDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJhZGdlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlV2ViaG9va1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJicmFuY2hGaWx0ZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ3ZWJob29rXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQcm9qZWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVXZWJob29rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcm9qZWN0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkludmFsaWRhdGVQcm9qZWN0Q2FjaGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByb2plY3ROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3ROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJ1aWxkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzb3J0T3JkZXJcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJ1aWxkc0ZvclByb2plY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByb2plY3ROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwic29ydE9yZGVyXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDdXJhdGVkRW52aXJvbm1lbnRJbWFnZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGxhdGZvcm1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJwbGF0Zm9ybVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxhbmd1YWdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJpbWFnZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQcm9qZWN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzb3J0QnlcIjoge30sXG4gICAgICAgICAgXCJzb3J0T3JkZXJcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJwcm9qZWN0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRCdWlsZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJzb3VyY2VWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiYXJ0aWZhY3RzT3ZlcnJpZGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVudmlyb25tZW50VmFyaWFibGVzT3ZlcnJpZGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic291cmNlVHlwZU92ZXJyaWRlXCI6IHt9LFxuICAgICAgICAgIFwic291cmNlTG9jYXRpb25PdmVycmlkZVwiOiB7fSxcbiAgICAgICAgICBcInNvdXJjZUF1dGhPdmVycmlkZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJnaXRDbG9uZURlcHRoT3ZlcnJpZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJ1aWxkc3BlY092ZXJyaWRlXCI6IHt9LFxuICAgICAgICAgIFwiaW5zZWN1cmVTc2xPdmVycmlkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW52aXJvbm1lbnRUeXBlT3ZlcnJpZGVcIjoge30sXG4gICAgICAgICAgXCJpbWFnZU92ZXJyaWRlXCI6IHt9LFxuICAgICAgICAgIFwiY29tcHV0ZVR5cGVPdmVycmlkZVwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlT3ZlcnJpZGVcIjoge30sXG4gICAgICAgICAgXCJjYWNoZU92ZXJyaWRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlcnZpY2VSb2xlT3ZlcnJpZGVcIjoge30sXG4gICAgICAgICAgXCJwcml2aWxlZ2VkTW9kZU92ZXJyaWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aW1lb3V0SW5NaW51dGVzT3ZlcnJpZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJidWlsZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wQnVpbGRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYnVpbGRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUHJvamVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjYWNoZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgICBcInRpbWVvdXRJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVuY3J5cHRpb25LZXlcIjoge30sXG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2cGNDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJhZGdlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlV2ViaG9va1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJicmFuY2hGaWx0ZXJcIjoge30sXG4gICAgICAgICAgXCJyb3RhdGVTZWNyZXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIndlYmhvb2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICBcInN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbmRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImN1cnJlbnRQaGFzZVwiOiB7fSxcbiAgICAgICAgXCJidWlsZFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJzb3VyY2VWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcInByb2plY3ROYW1lXCI6IHt9LFxuICAgICAgICBcInBoYXNlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJwaGFzZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwicGhhc2VTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwic3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImVuZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZHVyYXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNvbnRleHRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiB7fSxcbiAgICAgICAgICAgIFwic2hhMjU2c3VtXCI6IHt9LFxuICAgICAgICAgICAgXCJtZDVzdW1cIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY2FjaGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW52aXJvbm1lbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmljZVJvbGVcIjoge30sXG4gICAgICAgIFwibG9nc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiZ3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJzdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJkZWVwTGlua1wiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJ0aW1lb3V0SW5NaW51dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJidWlsZENvbXBsZXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbml0aWF0b3JcIjoge30sXG4gICAgICAgIFwidnBjQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuZXR3b3JrSW50ZXJmYWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJzdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICAgIFwibmV0d29ya0ludGVyZmFjZUlkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcImxvY2F0aW9uXCI6IHt9LFxuICAgICAgICBcImdpdENsb25lRGVwdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImJ1aWxkc3BlY1wiOiB7fSxcbiAgICAgICAgXCJhdXRoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICB9LFxuICAgICAgICBcImluc2VjdXJlU3NsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJyZXNvdXJjZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJpbWFnZVwiLFxuICAgICAgICBcImNvbXB1dGVUeXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwiaW1hZ2VcIjoge30sXG4gICAgICAgIFwiY29tcHV0ZVR5cGVcIjoge30sXG4gICAgICAgIFwiZW52aXJvbm1lbnRWYXJpYWJsZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJpdmlsZWdlZE1vZGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImNlcnRpZmljYXRlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwidmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidnBjSWRcIjoge30sXG4gICAgICAgIFwic3VibmV0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwic2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcImFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY2FjaGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW52aXJvbm1lbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmljZVJvbGVcIjoge30sXG4gICAgICAgIFwidGltZW91dEluTWludXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW5jcnlwdGlvbktleVwiOiB7fSxcbiAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3ZWJob29rXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ2cGNDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICB9LFxuICAgICAgICBcImJhZGdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJiYWRnZUVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImJhZGdlUmVxdWVzdFVybFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwibG9jYXRpb25cIjoge30sXG4gICAgICAgIFwicGF0aFwiOiB7fSxcbiAgICAgICAgXCJuYW1lc3BhY2VUeXBlXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwicGFja2FnaW5nXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInVybFwiOiB7fSxcbiAgICAgICAgXCJwYXlsb2FkVXJsXCI6IHt9LFxuICAgICAgICBcInNlY3JldFwiOiB7fSxcbiAgICAgICAgXCJicmFuY2hGaWx0ZXJcIjoge30sXG4gICAgICAgIFwibGFzdE1vZGlmaWVkU2VjcmV0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wNC0xM1wiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjb2RlY29tbWl0XCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ29kZUNvbW1pdFwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIENvZGVDb21taXRcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkNvZGVDb21taXRcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQ29kZUNvbW1pdF8yMDE1MDQxM1wiLFxuICAgIFwidWlkXCI6IFwiY29kZWNvbW1pdC0yMDE1LTA0LTEzXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkJhdGNoR2V0UmVwb3NpdG9yaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcG9zaXRvcmllc05vdEZvdW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUJyYW5jaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImJyYW5jaE5hbWVcIixcbiAgICAgICAgICBcImNvbW1pdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYnJhbmNoTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNvbW1pdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUHVsbFJlcXVlc3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRpdGxlXCIsXG4gICAgICAgICAgXCJ0YXJnZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRpdGxlXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJ0YXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICAgICAgICBcInNvdXJjZVJlZmVyZW5jZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInNvdXJjZVJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImRlc3RpbmF0aW9uUmVmZXJlbmNlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2xpZW50UmVxdWVzdFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwdWxsUmVxdWVzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXBvc2l0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCcmFuY2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJicmFuY2hOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYnJhbmNoTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlbGV0ZWRCcmFuY2hcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNvbW1lbnRDb250ZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb21tZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVwb3NpdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVB1bGxSZXF1ZXN0RXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdEV2ZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcImFjdG9yQXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0RXZlbnRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0RXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZXZlbnREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInB1bGxSZXF1ZXN0RXZlbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWN0b3JBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJwdWxsUmVxdWVzdFN0YXR1c0NoYW5nZWRFdmVudE1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJwdWxsUmVxdWVzdFN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJwdWxsUmVxdWVzdFNvdXJjZVJlZmVyZW5jZVVwZGF0ZWRFdmVudE1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJiZWZvcmVDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJhZnRlckNvbW1pdElkXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInB1bGxSZXF1ZXN0TWVyZ2VkU3RhdGVDaGFuZ2VkRXZlbnRNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzdGluYXRpb25SZWZlcmVuY2VcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwibWVyZ2VNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCbG9iXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwiYmxvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYmxvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbnRlbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnJhbmNoXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYnJhbmNoTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJyYW5jaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29tbWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29tbWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbW1lbnRzRm9yQ29tcGFyZWRDb21taXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJhZnRlckNvbW1pdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYmVmb3JlQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJhZnRlckNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudHNGb3JDb21wYXJlZENvbW1pdERhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYmVmb3JlQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhZnRlckNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYmVmb3JlQmxvYklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWZ0ZXJCbG9iSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY29tbWVudHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbW1lbnRzRm9yUHVsbFJlcXVlc3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYmVmb3JlQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJhZnRlckNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudHNGb3JQdWxsUmVxdWVzdERhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImJlZm9yZUNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWZ0ZXJDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImJlZm9yZUJsb2JJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFmdGVyQmxvYklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbW1lbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb21taXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJjb21taXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNvbW1pdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbW1pdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb21taXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgICAgICBcInRyZWVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJwYXJlbnRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICBcImF1dGhvclwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY29tbWl0dGVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsRGF0YVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREaWZmZXJlbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImFmdGVyQ29tbWl0U3BlY2lmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYmVmb3JlQ29tbWl0U3BlY2lmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiYWZ0ZXJDb21taXRTcGVjaWZpZXJcIjoge30sXG4gICAgICAgICAgXCJiZWZvcmVQYXRoXCI6IHt9LFxuICAgICAgICAgIFwiYWZ0ZXJQYXRoXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGlmZmVyZW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImJlZm9yZUJsb2JcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImFmdGVyQmxvYlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY2hhbmdlVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE1lcmdlQ29uZmxpY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwiZGVzdGluYXRpb25Db21taXRTcGVjaWZpZXJcIixcbiAgICAgICAgICBcInNvdXJjZUNvbW1pdFNwZWNpZmllclwiLFxuICAgICAgICAgIFwibWVyZ2VPcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbkNvbW1pdFNwZWNpZmllclwiOiB7fSxcbiAgICAgICAgICBcInNvdXJjZUNvbW1pdFNwZWNpZmllclwiOiB7fSxcbiAgICAgICAgICBcIm1lcmdlT3B0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm1lcmdlYWJsZVwiLFxuICAgICAgICAgIFwiZGVzdGluYXRpb25Db21taXRJZFwiLFxuICAgICAgICAgIFwic291cmNlQ29tbWl0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibWVyZ2VhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbkNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwic291cmNlQ29tbWl0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQdWxsUmVxdWVzdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlcG9zaXRvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlcG9zaXRvcnlUcmlnZ2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25maWd1cmF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJ0cmlnZ2Vyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJyYW5jaGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJyYW5jaGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UHVsbFJlcXVlc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImF1dGhvckFyblwiOiB7fSxcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0U3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZXBvc2l0b3JpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwic29ydEJ5XCI6IHt9LFxuICAgICAgICAgIFwib3JkZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3JpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVwb3NpdG9yeUlkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTWVyZ2VQdWxsUmVxdWVzdEJ5RmFzdEZvcndhcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIixcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInNvdXJjZUNvbW1pdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUG9zdENvbW1lbnRGb3JDb21wYXJlZENvbW1pdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImFmdGVyQ29tbWl0SWRcIixcbiAgICAgICAgICBcImNvbnRlbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJiZWZvcmVDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImFmdGVyQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29udGVudFwiOiB7fSxcbiAgICAgICAgICBcImNsaWVudFJlcXVlc3RUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImJlZm9yZUNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwiYWZ0ZXJDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImJlZm9yZUJsb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImFmdGVyQmxvYklkXCI6IHt9LFxuICAgICAgICAgIFwibG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiUG9zdENvbW1lbnRGb3JQdWxsUmVxdWVzdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiLFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImJlZm9yZUNvbW1pdElkXCIsXG4gICAgICAgICAgXCJhZnRlckNvbW1pdElkXCIsXG4gICAgICAgICAgXCJjb250ZW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImJlZm9yZUNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwiYWZ0ZXJDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250ZW50XCI6IHt9LFxuICAgICAgICAgIFwiY2xpZW50UmVxdWVzdFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcImJlZm9yZUNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwiYWZ0ZXJDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImJlZm9yZUJsb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImFmdGVyQmxvYklkXCI6IHt9LFxuICAgICAgICAgIFwibG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiUG9zdENvbW1lbnRSZXBseVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW5SZXBseVRvXCIsXG4gICAgICAgICAgXCJjb250ZW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluUmVwbHlUb1wiOiB7fSxcbiAgICAgICAgICBcImNsaWVudFJlcXVlc3RUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250ZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJQdXRGaWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwiYnJhbmNoTmFtZVwiLFxuICAgICAgICAgIFwiZmlsZUNvbnRlbnRcIixcbiAgICAgICAgICBcImZpbGVQYXRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYnJhbmNoTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZpbGVDb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmaWxlUGF0aFwiOiB7fSxcbiAgICAgICAgICBcImZpbGVNb2RlXCI6IHt9LFxuICAgICAgICAgIFwicGFyZW50Q29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJjb21taXRNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImVtYWlsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbW1pdElkXCIsXG4gICAgICAgICAgXCJibG9iSWRcIixcbiAgICAgICAgICBcInRyZWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImJsb2JJZFwiOiB7fSxcbiAgICAgICAgICBcInRyZWVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFJlcG9zaXRvcnlUcmlnZ2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcInRyaWdnZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidHJpZ2dlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbmZpZ3VyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlc3RSZXBvc2l0b3J5VHJpZ2dlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJ0cmlnZ2Vyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRyaWdnZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdWNjZXNzZnVsRXhlY3V0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsZWRFeGVjdXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0cmlnZ2VyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZmFpbHVyZU1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDb21tZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb21tZW50SWRcIixcbiAgICAgICAgICBcImNvbnRlbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiY29udGVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURlZmF1bHRCcmFuY2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJkZWZhdWx0QnJhbmNoTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlZmF1bHRCcmFuY2hOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUHVsbFJlcXVlc3REZXNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVB1bGxSZXF1ZXN0U3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCIsXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdFN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICAgIFwicHVsbFJlcXVlc3RTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUHVsbFJlcXVlc3RUaXRsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiLFxuICAgICAgICAgIFwidGl0bGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcInRpdGxlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlcG9zaXRvcnlEZXNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5RGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSZXBvc2l0b3J5TmFtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwib2xkTmFtZVwiLFxuICAgICAgICAgIFwibmV3TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvbGROYW1lXCI6IHt9LFxuICAgICAgICAgIFwibmV3TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYWNjb3VudElkXCI6IHt9LFxuICAgICAgICBcInJlcG9zaXRvcnlJZFwiOiB7fSxcbiAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgXCJyZXBvc2l0b3J5RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiZGVmYXVsdEJyYW5jaFwiOiB7fSxcbiAgICAgICAgXCJsYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjbG9uZVVybEh0dHBcIjoge30sXG4gICAgICAgIFwiY2xvbmVVcmxTc2hcIjoge30sXG4gICAgICAgIFwiQXJuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJwdWxsUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICBcInRpdGxlXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcImxhc3RBY3Rpdml0eURhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInB1bGxSZXF1ZXN0U3RhdHVzXCI6IHt9LFxuICAgICAgICBcImF1dGhvckFyblwiOiB7fSxcbiAgICAgICAgXCJwdWxsUmVxdWVzdFRhcmdldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwic291cmNlUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICAgICAgICBcImRlc3RpbmF0aW9uUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICAgICAgICBcImRlc3RpbmF0aW9uQ29tbWl0XCI6IHt9LFxuICAgICAgICAgICAgICBcInNvdXJjZUNvbW1pdFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJtZXJnZU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImNsaWVudFJlcXVlc3RUb2tlblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaXNNZXJnZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm1lcmdlZEJ5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYnJhbmNoTmFtZVwiOiB7fSxcbiAgICAgICAgXCJjb21taXRJZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImNvbW1lbnRJZFwiOiB7fSxcbiAgICAgICAgXCJjb250ZW50XCI6IHt9LFxuICAgICAgICBcImluUmVwbHlUb1wiOiB7fSxcbiAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXRob3JBcm5cIjoge30sXG4gICAgICAgIFwiZGVsZXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY2xpZW50UmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZmlsZVBhdGhcIjoge30sXG4gICAgICAgIFwiZmlsZVBvc2l0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWxhdGl2ZUZpbGVWZXJzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwiZW1haWxcIjoge30sXG4gICAgICAgIFwiZGF0ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMm5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImJsb2JJZFwiOiB7fSxcbiAgICAgICAgXCJwYXRoXCI6IHt9LFxuICAgICAgICBcIm1vZGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwiZGVzdGluYXRpb25Bcm5cIixcbiAgICAgICAgICBcImV2ZW50c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzdGluYXRpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJjdXN0b21EYXRhXCI6IHt9LFxuICAgICAgICAgIFwiYnJhbmNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZVB1bGxSZXF1ZXN0RXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJHZXRDb21tZW50c0ZvckNvbXBhcmVkQ29tbWl0XCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJHZXRDb21tZW50c0ZvclB1bGxSZXF1ZXN0XCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJHZXREaWZmZXJlbmNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiTGlzdEJyYW5jaGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJicmFuY2hlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RQdWxsUmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkxpc3RSZXBvc2l0b3JpZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInJlcG9zaXRvcmllc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0xMC0wNlwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjb2RlZGVwbG95XCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ29kZURlcGxveVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIENvZGVEZXBsb3lcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkNvZGVEZXBsb3lcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQ29kZURlcGxveV8yMDE0MTAwNlwiLFxuICAgIFwidGltZXN0YW1wRm9ybWF0XCI6IFwidW5peFRpbWVzdGFtcFwiLFxuICAgIFwidWlkXCI6IFwiY29kZWRlcGxveS0yMDE0LTEwLTA2XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NUb09uUHJlbWlzZXNJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhZ3NcIixcbiAgICAgICAgICBcImluc3RhbmNlTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbnN0YW5jZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoR2V0QXBwbGljYXRpb25SZXZpc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwicmV2aXNpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJldmlzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJlcnJvck1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJyZXZpc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJldmlzaW9uTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZ2VuZXJpY1JldmlzaW9uSW5mb1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaEdldEFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uc0luZm9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQmF0Y2hHZXREZXBsb3ltZW50R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cE5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cHNJbmZvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVycm9yTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoR2V0RGVwbG95bWVudEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCIsXG4gICAgICAgICAgXCJpbnN0YW5jZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgICAgXCJpbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5zdGFuY2VzU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlcnJvck1lc3NhZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaEdldERlcGxveW1lbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRzSW5mb1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2JcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaEdldE9uUHJlbWlzZXNJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImluc3RhbmNlTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZUluZm9zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzcVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbnRpbnVlRGVwbG95bWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBcHBsaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNvbXB1dGVQbGF0Zm9ybVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEZXBsb3ltZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJpZ25vcmVBcHBsaWNhdGlvblN0b3BGYWlsdXJlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0SW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1cGRhdGVPdXRkYXRlZEluc3RhbmNlc09ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpbGVFeGlzdHNCZWhhdmlvclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURlcGxveW1lbnRDb25maWdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibWluaW11bUhlYWx0aHlIb3N0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHJhZmZpY1JvdXRpbmdDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbXB1dGVQbGF0Zm9ybVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURlcGxveW1lbnRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJzZXJ2aWNlUm9sZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ05hbWVcIjoge30sXG4gICAgICAgICAgXCJlYzJUYWdGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJvblByZW1pc2VzSW5zdGFuY2VUYWdGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRvU2NhbGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJ0cmlnZ2VyQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFsYXJtQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVwbG95bWVudFN0eWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJibHVlR3JlZW5EZXBsb3ltZW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9hZEJhbGFuY2VySW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZWMyVGFnU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJvblByZW1pc2VzVGFnU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGVwbG95bWVudENvbmZpZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ05hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEZXBsb3ltZW50R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiZGVwbG95bWVudEdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaG9va3NOb3RDbGVhbmVkVXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUdpdEh1YkFjY291bnRUb2tlblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0b2tlbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0b2tlbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyT25QcmVtaXNlc0luc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpbnN0YW5jZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QXBwbGljYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QXBwbGljYXRpb25SZXZpc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJyZXZpc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZXZpc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZXZpc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXZpc2lvbkluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGVwbG95bWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREZXBsb3ltZW50Q29uZmlnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdJbmZvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ05hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwibWluaW11bUhlYWx0aHlIb3N0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjb21wdXRlUGxhdGZvcm1cIjoge30sXG4gICAgICAgICAgICAgIFwidHJhZmZpY1JvdXRpbmdDb25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERlcGxveW1lbnRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREZXBsb3ltZW50SW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiLFxuICAgICAgICAgIFwiaW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgICAgXCJpbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5zdGFuY2VTdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRPblByZW1pc2VzSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImluc3RhbmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZUluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzcVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBcHBsaWNhdGlvblJldmlzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInNvcnRCeVwiOiB7fSxcbiAgICAgICAgICBcInNvcnRPcmRlclwiOiB7fSxcbiAgICAgICAgICBcInMzQnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiczNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3llZFwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJldmlzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QXBwbGljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGVwbG95bWVudENvbmZpZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ3NMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REZXBsb3ltZW50R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudEdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGVwbG95bWVudEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcImluc3RhbmNlU3RhdHVzRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImluc3RhbmNlVHlwZUZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZXNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGVwbG95bWVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImluY2x1ZGVPbmx5U3RhdHVzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlVGltZVJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJzdGFydFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJlbmRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RHaXRIdWJBY2NvdW50VG9rZW5OYW1lc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0b2tlbk5hbWVMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RPblByZW1pc2VzSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJhdGlvblN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcInRhZ0ZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0TGlmZWN5Y2xlRXZlbnRIb29rRXhlY3V0aW9uU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcImxpZmVjeWNsZUV2ZW50SG9va0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibGlmZWN5Y2xlRXZlbnRIb29rRXhlY3V0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckFwcGxpY2F0aW9uUmV2aXNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwicmV2aXNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJyZXZpc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3Rlck9uUHJlbWlzZXNJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImlhbVNlc3Npb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJpYW1Vc2VyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc0Zyb21PblByZW1pc2VzSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0YWdzXCIsXG4gICAgICAgICAgXCJpbnN0YW5jZU5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTa2lwV2FpdFRpbWVGb3JJbnN0YW5jZVRlcm1pbmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BEZXBsb3ltZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiYXV0b1JvbGxiYWNrRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwic3RhdHVzTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIm5ld0FwcGxpY2F0aW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURlcGxveW1lbnRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJjdXJyZW50RGVwbG95bWVudEdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJjdXJyZW50RGVwbG95bWVudEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIm5ld0RlcGxveW1lbnRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImVjMlRhZ0ZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9uUHJlbWlzZXNJbnN0YW5jZVRhZ0ZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dG9TY2FsaW5nR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcInRyaWdnZXJDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWxhcm1Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXBsb3ltZW50U3R5bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJsdWVHcmVlbkRlcGxveW1lbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2FkQmFsYW5jZXJJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlYzJUYWdTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9uUHJlbWlzZXNUYWdTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImhvb2tzTm90Q2xlYW5lZFVwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicmV2aXNpb25UeXBlXCI6IHt9LFxuICAgICAgICBcInMzTG9jYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJidW5kbGVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJlVGFnXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImdpdEh1YkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyZXBvc2l0b3J5XCI6IHt9LFxuICAgICAgICAgICAgXCJjb21taXRJZFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzdHJpbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImNvbnRlbnRcIjoge30sXG4gICAgICAgICAgICBcInNoYTI1NlwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudEdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJmaXJzdFVzZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhc3RVc2VkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWdpc3RlclRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzEyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbklkXCI6IHt9LFxuICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImxpbmtlZFRvR2l0SHViXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJnaXRIdWJBY2NvdW50TmFtZVwiOiB7fSxcbiAgICAgICAgXCJjb21wdXRlUGxhdGZvcm1cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudEdyb3VwSWRcIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiOiB7fSxcbiAgICAgICAgXCJlYzJUYWdGaWx0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvblByZW1pc2VzSW5zdGFuY2VUYWdGaWx0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXRvU2NhbGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgIFwidGFyZ2V0UmV2aXNpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHJpZ2dlckNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGFybUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlcGxveW1lbnRTdHlsZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYmx1ZUdyZWVuRGVwbG95bWVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICB9LFxuICAgICAgICBcImxvYWRCYWxhbmNlckluZm9cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhc3RTdWNjZXNzZnVsRGVwbG95bWVudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdEF0dGVtcHRlZERlcGxveW1lbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICB9LFxuICAgICAgICBcImVjMlRhZ1NldFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwib25QcmVtaXNlc1RhZ1NldFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyb1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29tcHV0ZVBsYXRmb3JtXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJob29rXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0cmlnZ2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRyaWdnZXJUYXJnZXRBcm5cIjoge30sXG4gICAgICAgICAgXCJ0cmlnZ2VyRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaWdub3JlUG9sbEFsYXJtRmFpbHVyZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWxhcm1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJlbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJldmVudHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGVwbG95bWVudFR5cGVcIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudE9wdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRlcm1pbmF0ZUJsdWVJbnN0YW5jZXNPbkRlcGxveW1lbnRTdWNjZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJhY3Rpb25cIjoge30sXG4gICAgICAgICAgICBcInRlcm1pbmF0aW9uV2FpdFRpbWVJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwbG95bWVudFJlYWR5T3B0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJhY3Rpb25PblRpbWVvdXRcIjoge30sXG4gICAgICAgICAgICBcIndhaXRUaW1lSW5NaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImdyZWVuRmxlZXRQcm92aXNpb25pbmdPcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImFjdGlvblwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImVsYkluZm9MaXN0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwidGFyZ2V0R3JvdXBJbmZvTGlzdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJlbmRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJlYzJUYWdTZXRMaXN0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwib25QcmVtaXNlc1RhZ1NldExpc3RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMydlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICBcImluc3RhbmNlSWRcIjoge30sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcImxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGlmZWN5Y2xlRXZlbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImxpZmVjeWNsZUV2ZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJkaWFnbm9zdGljc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiZXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJzY3JpcHROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJsb2dUYWlsXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJlbmRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnN0YW5jZVR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICBcImRlcGxveW1lbnRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudENvbmZpZ05hbWVcIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICBcInByZXZpb3VzUmV2aXNpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmV2aXNpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcImVycm9ySW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImNvZGVcIjoge30sXG4gICAgICAgICAgICBcIm1lc3NhZ2VcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29tcGxldGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlcGxveW1lbnRPdmVydmlld1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUGVuZGluZ1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSW5Qcm9ncmVzc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU3VjY2VlZGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJGYWlsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNraXBwZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlJlYWR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcImNyZWF0b3JcIjoge30sXG4gICAgICAgIFwiaWdub3JlQXBwbGljYXRpb25TdG9wRmFpbHVyZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICB9LFxuICAgICAgICBcInVwZGF0ZU91dGRhdGVkSW5zdGFuY2VzT25seVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicm9sbGJhY2tJbmZvXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xsYmFja0RlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICAgIFwicm9sbGJhY2tUcmlnZ2VyaW5nRGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICAgICAgXCJyb2xsYmFja01lc3NhZ2VcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwbG95bWVudFN0eWxlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0YXJnZXRJbnN0YW5jZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2lcIlxuICAgICAgICB9LFxuICAgICAgICBcImluc3RhbmNlVGVybWluYXRpb25XYWl0VGltZVN0YXJ0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImJsdWVHcmVlbkRlcGxveW1lbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsb2FkQmFsYW5jZXJJbmZvXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsRGVwbG95bWVudFN0YXR1c0luZm9cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmlsZUV4aXN0c0JlaGF2aW9yXCI6IHt9LFxuICAgICAgICBcImRlcGxveW1lbnRTdGF0dXNNZXNzYWdlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY29tcHV0ZVBsYXRmb3JtXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidGFnRmlsdGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXV0b1NjYWxpbmdHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2pcIlxuICAgICAgICB9LFxuICAgICAgICBcImVjMlRhZ1NldFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaW5zdGFuY2VOYW1lXCI6IHt9LFxuICAgICAgICBcImlhbVNlc3Npb25Bcm5cIjoge30sXG4gICAgICAgIFwiaWFtVXNlckFyblwiOiB7fSxcbiAgICAgICAgXCJpbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgXCJyZWdpc3RlclRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVyZWdpc3RlclRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0M1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJ0aW1lQmFzZWRDYW5hcnlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImNhbmFyeVBlcmNlbnRhZ2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImNhbmFyeUludGVydmFsXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInRpbWVCYXNlZExpbmVhclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwibGluZWFyUGVyY2VudGFnZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwibGluZWFySW50ZXJ2YWxcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0QXBwbGljYXRpb25SZXZpc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInJldmlzaW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3RBcHBsaWNhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImFwcGxpY2F0aW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3REZXBsb3ltZW50Q29uZmlnc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiZGVwbG95bWVudENvbmZpZ3NMaXN0XCJcbiAgICB9LFxuICAgIFwiTGlzdERlcGxveW1lbnRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImRlcGxveW1lbnRHcm91cHNcIlxuICAgIH0sXG4gICAgXCJMaXN0RGVwbG95bWVudEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaW5zdGFuY2VzTGlzdFwiXG4gICAgfSxcbiAgICBcIkxpc3REZXBsb3ltZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiZGVwbG95bWVudHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJEZXBsb3ltZW50U3VjY2Vzc2Z1bFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJHZXREZXBsb3ltZW50XCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDEyMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJTdWNjZWVkZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiZGVwbG95bWVudEluZm8uc3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJGYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiZGVwbG95bWVudEluZm8uc3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJTdG9wcGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcImRlcGxveW1lbnRJbmZvLnN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMDctMDlcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY29kZXBpcGVsaW5lXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ29kZVBpcGVsaW5lXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgQ29kZVBpcGVsaW5lXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkNvZGVQaXBlbGluZV8yMDE1MDcwOVwiLFxuICAgIFwidWlkXCI6IFwiY29kZXBpcGVsaW5lLTIwMTUtMDctMDlcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWNrbm93bGVkZ2VKb2JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCIsXG4gICAgICAgICAgXCJub25jZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcIm5vbmNlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWNrbm93bGVkZ2VUaGlyZFBhcnR5Sm9iXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiLFxuICAgICAgICAgIFwibm9uY2VcIixcbiAgICAgICAgICBcImNsaWVudFRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwibm9uY2VcIjoge30sXG4gICAgICAgICAgXCJjbGllbnRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUN1c3RvbUFjdGlvblR5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNhdGVnb3J5XCIsXG4gICAgICAgICAgXCJwcm92aWRlclwiLFxuICAgICAgICAgIFwidmVyc2lvblwiLFxuICAgICAgICAgIFwiaW5wdXRBcnRpZmFjdERldGFpbHNcIixcbiAgICAgICAgICBcIm91dHB1dEFydGlmYWN0RGV0YWlsc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjYXRlZ29yeVwiOiB7fSxcbiAgICAgICAgICBcInByb3ZpZGVyXCI6IHt9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcInNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImlucHV0QXJ0aWZhY3REZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm91dHB1dEFydGlmYWN0RGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYWN0aW9uVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhY3Rpb25UeXBlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaXBlbGluZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDdXN0b21BY3Rpb25UeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjYXRlZ29yeVwiLFxuICAgICAgICAgIFwicHJvdmlkZXJcIixcbiAgICAgICAgICBcInZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2F0ZWdvcnlcIjoge30sXG4gICAgICAgICAgXCJwcm92aWRlclwiOiB7fSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQaXBlbGluZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlV2ViaG9va1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3RlcldlYmhvb2tXaXRoVGhpcmRQYXJ0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ3ZWJob29rTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVTdGFnZVRyYW5zaXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBpcGVsaW5lTmFtZVwiLFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCIsXG4gICAgICAgICAgXCJ0cmFuc2l0aW9uVHlwZVwiLFxuICAgICAgICAgIFwicmVhc29uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRyYW5zaXRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwicmVhc29uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlU3RhZ2VUcmFuc2l0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiLFxuICAgICAgICAgIFwidHJhbnNpdGlvblR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidHJhbnNpdGlvblR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRKb2JEZXRhaWxzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYkRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFjY291bnRJZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQaXBlbGluZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInBpcGVsaW5lQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidXBkYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQaXBlbGluZUV4ZWN1dGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCIsXG4gICAgICAgICAgXCJwaXBlbGluZUV4ZWN1dGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZUV4ZWN1dGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcInBpcGVsaW5lVmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicGlwZWxpbmVFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiYXJ0aWZhY3RSZXZpc2lvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXZpc2lvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInJldmlzaW9uQ2hhbmdlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXZpc2lvblN1bW1hcnlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXZpc2lvblVybFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQaXBlbGluZVN0YXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwaXBlbGluZVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YWdlU3RhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzdGFnZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJpbmJvdW5kVHJhbnNpdGlvblN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJlbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJsYXN0Q2hhbmdlZEJ5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImxhc3RDaGFuZ2VkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiZGlzYWJsZWRSZWFzb25cIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYWN0aW9uU3RhdGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiY3VycmVudFJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzlcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJsYXRlc3RFeGVjdXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdW1tYXJ5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNDaGFuZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidG9rZW5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWRCeVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleHRlcm5hbEV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4dGVybmFsRXhlY3V0aW9uVXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInBlcmNlbnRDb21wbGV0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXJyb3JEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcImVudGl0eVVybFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJldmlzaW9uVXJsXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibGF0ZXN0RXhlY3V0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwicGlwZWxpbmVFeGVjdXRpb25JZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJwaXBlbGluZUV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVwZGF0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VGhpcmRQYXJ0eUpvYkRldGFpbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCIsXG4gICAgICAgICAgXCJjbGllbnRUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImNsaWVudFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiYWN0aW9uVHlwZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcImFjdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcInBpcGVsaW5lQ29udGV4dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiaW5wdXRBcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIm91dHB1dEFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiYXJ0aWZhY3RDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiY29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgICAgICAgICBcImVuY3J5cHRpb25LZXlcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibm9uY2VcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFjdGlvblR5cGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFjdGlvbk93bmVyRmlsdGVyXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFjdGlvblR5cGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFjdGlvblR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFBpcGVsaW5lRXhlY3V0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uU3VtbWFyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJwaXBlbGluZUV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImxhc3RVcGRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInNvdXJjZVJldmlzaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcImFjdGlvbk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJldmlzaW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZXZpc2lvblN1bW1hcnlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZXZpc2lvblVybFwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQaXBlbGluZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ1cGRhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RXZWJob29rc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ3ZWJob29rc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDhcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQb2xsRm9ySm9ic1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYWN0aW9uVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFjdGlvblR5cGVJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhCYXRjaFNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInF1ZXJ5UGFyYW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9ic1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJub25jZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFjY291bnRJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlBvbGxGb3JUaGlyZFBhcnR5Sm9ic1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYWN0aW9uVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFjdGlvblR5cGVJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhCYXRjaFNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImNsaWVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiam9iSWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRBY3Rpb25SZXZpc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIixcbiAgICAgICAgICBcImFjdGlvbk5hbWVcIixcbiAgICAgICAgICBcImFjdGlvblJldmlzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImFjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJhY3Rpb25SZXZpc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV3UmV2aXNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRBcHByb3ZhbFJlc3VsdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIixcbiAgICAgICAgICBcImFjdGlvbk5hbWVcIixcbiAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgIFwidG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYWN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcInN1bW1hcnlcIixcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwic3VtbWFyeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHByb3ZlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEpvYkZhaWx1cmVSZXN1bHRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCIsXG4gICAgICAgICAgXCJmYWlsdXJlRGV0YWlsc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImZhaWx1cmVEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNThcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRKb2JTdWNjZXNzUmVzdWx0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImN1cnJlbnRSZXZpc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzViXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJleGVjdXRpb25EZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRUaGlyZFBhcnR5Sm9iRmFpbHVyZVJlc3VsdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIixcbiAgICAgICAgICBcImNsaWVudFRva2VuXCIsXG4gICAgICAgICAgXCJmYWlsdXJlRGV0YWlsc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiZmFpbHVyZURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1OFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFRoaXJkUGFydHlKb2JTdWNjZXNzUmVzdWx0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiLFxuICAgICAgICAgIFwiY2xpZW50VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge30sXG4gICAgICAgICAgXCJjbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcImN1cnJlbnRSZXZpc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzViXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJleGVjdXRpb25EZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRXZWJob29rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ3ZWJob29rXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIndlYmhvb2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIndlYmhvb2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyV2ViaG9va1dpdGhUaGlyZFBhcnR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIndlYmhvb2tOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV0cnlTdGFnZUV4ZWN1dGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIixcbiAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uSWRcIixcbiAgICAgICAgICBcInJldHJ5TW9kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwaXBlbGluZUV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwicmV0cnlNb2RlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVFeGVjdXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0UGlwZWxpbmVFeGVjdXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQaXBlbGluZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGlwZWxpbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0aGlyZFBhcnR5Q29uZmlndXJhdGlvblVybFwiOiB7fSxcbiAgICAgICAgXCJlbnRpdHlVcmxUZW1wbGF0ZVwiOiB7fSxcbiAgICAgICAgXCJleGVjdXRpb25VcmxUZW1wbGF0ZVwiOiB7fSxcbiAgICAgICAgXCJyZXZpc2lvblVybFRlbXBsYXRlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIixcbiAgICAgICAgICBcImtleVwiLFxuICAgICAgICAgIFwic2VjcmV0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2V5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWNyZXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInF1ZXJ5YWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJtaW5pbXVtQ291bnRcIixcbiAgICAgICAgXCJtYXhpbXVtQ291bnRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibWluaW11bUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhpbXVtQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiaWRcIixcbiAgICAgICAgXCJpbnB1dEFydGlmYWN0RGV0YWlsc1wiLFxuICAgICAgICBcIm91dHB1dEFydGlmYWN0RGV0YWlsc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXR0aW5nc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhY3Rpb25Db25maWd1cmF0aW9uUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnB1dEFydGlmYWN0RGV0YWlsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvdXRwdXRBcnRpZmFjdERldGFpbHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJjYXRlZ29yeVwiLFxuICAgICAgICBcIm93bmVyXCIsXG4gICAgICAgIFwicHJvdmlkZXJcIixcbiAgICAgICAgXCJ2ZXJzaW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImNhdGVnb3J5XCI6IHt9LFxuICAgICAgICBcIm93bmVyXCI6IHt9LFxuICAgICAgICBcInByb3ZpZGVyXCI6IHt9LFxuICAgICAgICBcInZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgIFwicm9sZUFyblwiLFxuICAgICAgICBcImFydGlmYWN0U3RvcmVcIixcbiAgICAgICAgXCJzdGFnZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICBcImFydGlmYWN0U3RvcmVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJ0eXBlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJlbmNyeXB0aW9uS2V5XCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInN0YWdlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICBcImFjdGlvbnNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJibG9ja2Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFjdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhY3Rpb25UeXBlSWRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJhY3Rpb25UeXBlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicnVuT3JkZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIm91dHB1dEFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImlucHV0QXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJpZFwiLFxuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwidHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzIyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhY3Rpb25UeXBlSWRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWN0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyM1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGlwZWxpbmVDb250ZXh0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnB1dEFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwib3V0cHV0QXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhcnRpZmFjdENyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgXCJlbmNyeXB0aW9uS2V5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicGlwZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICBcInN0YWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFjdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZXZpc2lvblwiOiB7fSxcbiAgICAgICAgICBcImxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcInMzTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJidWNrZXROYW1lXCIsXG4gICAgICAgICAgICAgICAgICBcIm9iamVjdEtleVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJidWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJvYmplY3RLZXlcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiYWNjZXNzS2V5SWRcIixcbiAgICAgICAgXCJzZWNyZXRBY2Nlc3NLZXlcIixcbiAgICAgICAgXCJzZXNzaW9uVG9rZW5cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYWNjZXNzS2V5SWRcIjoge30sXG4gICAgICAgIFwic2VjcmV0QWNjZXNzS2V5XCI6IHt9LFxuICAgICAgICBcInNlc3Npb25Ub2tlblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwicmV2aXNpb25JZFwiLFxuICAgICAgICBcInJldmlzaW9uQ2hhbmdlSWRcIixcbiAgICAgICAgXCJjcmVhdGVkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInJldmlzaW9uSWRcIjoge30sXG4gICAgICAgIFwicmV2aXNpb25DaGFuZ2VJZFwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0OFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcImRlZmluaXRpb25cIixcbiAgICAgICAgXCJ1cmxcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGVmaW5pdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXJsXCI6IHt9LFxuICAgICAgICBcImVycm9yTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJlcnJvckNvZGVcIjoge30sXG4gICAgICAgIFwibGFzdFRyaWdnZXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhcm5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibmFtZVwiLFxuICAgICAgICBcInRhcmdldFBpcGVsaW5lXCIsXG4gICAgICAgIFwidGFyZ2V0QWN0aW9uXCIsXG4gICAgICAgIFwiZmlsdGVyc1wiLFxuICAgICAgICBcImF1dGhlbnRpY2F0aW9uXCIsXG4gICAgICAgIFwiYXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwidGFyZ2V0UGlwZWxpbmVcIjoge30sXG4gICAgICAgIFwidGFyZ2V0QWN0aW9uXCI6IHt9LFxuICAgICAgICBcImZpbHRlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcImpzb25QYXRoXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImpzb25QYXRoXCI6IHt9LFxuICAgICAgICAgICAgICBcIm1hdGNoRXF1YWxzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhlbnRpY2F0aW9uXCI6IHt9LFxuICAgICAgICBcImF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQWxsb3dlZElQUmFuZ2VcIjoge30sXG4gICAgICAgICAgICBcIlNlY3JldFRva2VuXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1OFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJtZXNzYWdlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJleHRlcm5hbEV4ZWN1dGlvbklkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1YlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInJldmlzaW9uXCIsXG4gICAgICAgIFwiY2hhbmdlSWRlbnRpZmllclwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJyZXZpc2lvblwiOiB7fSxcbiAgICAgICAgXCJjaGFuZ2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmV2aXNpb25TdW1tYXJ5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1ZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwic3VtbWFyeVwiOiB7fSxcbiAgICAgICAgXCJleHRlcm5hbEV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICBcInBlcmNlbnRDb21wbGV0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTA2LTMwXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNvZ25pdG8taWRlbnRpdHlcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBDb2duaXRvIElkZW50aXR5XCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFXU0NvZ25pdG9JZGVudGl0eVNlcnZpY2VcIixcbiAgICBcInVpZFwiOiBcImNvZ25pdG8taWRlbnRpdHktMjAxNC0wNi0zMFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVJZGVudGl0eVBvb2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbE5hbWVcIixcbiAgICAgICAgICBcIkFsbG93VW5hdXRoZW50aWNhdGVkSWRlbnRpdGllc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dVbmF1dGhlbnRpY2F0ZWRJZGVudGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdXBwb3J0ZWRMb2dpblByb3ZpZGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXZlbG9wZXJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcGVuSWRDb25uZWN0UHJvdmlkZXJBUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvZ25pdG9JZGVudGl0eVByb3ZpZGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTYW1sUHJvdmlkZXJBUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJZGVudGl0aWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eUlkc1RvRGVsZXRlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5SWRzVG9EZWxldGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVW5wcm9jZXNzZWRJZGVudGl0eUlkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUlkZW50aXR5UG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUlkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJZGVudGl0eVBvb2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICBcIkxvZ2luc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21Sb2xlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICBcIkNyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBY2Nlc3NLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTZWNyZXRLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiU2Vzc2lvblRva2VuXCI6IHt9LFxuICAgICAgICAgICAgICBcIkV4cGlyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiTG9naW5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJZGVudGl0eVBvb2xSb2xlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE9wZW5JZFRva2VuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgICAgXCJMb2dpbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICBcIlRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0T3BlbklkVG9rZW5Gb3JEZXZlbG9wZXJJZGVudGl0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIkxvZ2luc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgICAgXCJMb2dpbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVG9rZW5EdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICBcIlRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdElkZW50aXRpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiSGlkZURpc2FibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SWRlbnRpdHlQb29sc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklkZW50aXR5UG9vbE5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMb29rdXBEZXZlbG9wZXJJZGVudGl0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGV2ZWxvcGVyVXNlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGV2ZWxvcGVyVXNlcklkZW50aWZpZXJMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1lcmdlRGV2ZWxvcGVySWRlbnRpdGllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlVXNlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uVXNlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRldmVsb3BlclByb3ZpZGVyTmFtZVwiLFxuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlVXNlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblVzZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRGV2ZWxvcGVyUHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0SWRlbnRpdHlQb29sUm9sZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJSb2xlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVubGlua0RldmVsb3BlcklkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCIsXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiLFxuICAgICAgICAgIFwiRGV2ZWxvcGVyUHJvdmlkZXJOYW1lXCIsXG4gICAgICAgICAgXCJEZXZlbG9wZXJVc2VySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJEZXZlbG9wZXJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXZlbG9wZXJVc2VySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVubGlua0lkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCIsXG4gICAgICAgICAgXCJMb2dpbnNcIixcbiAgICAgICAgICBcIkxvZ2luc1RvUmVtb3ZlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgICAgXCJMb2dpbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9naW5zVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSWRlbnRpdHlQb29sXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVUb2tlbkNoZWNrXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgIFwiSWRlbnRpdHlQb29sTmFtZVwiLFxuICAgICAgICBcIkFsbG93VW5hdXRoZW50aWNhdGVkSWRlbnRpdGllc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgXCJJZGVudGl0eVBvb2xOYW1lXCI6IHt9LFxuICAgICAgICBcIkFsbG93VW5hdXRoZW50aWNhdGVkSWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VwcG9ydGVkTG9naW5Qcm92aWRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGV2ZWxvcGVyUHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICBcIk9wZW5JZENvbm5lY3RQcm92aWRlckFSTnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29nbml0b0lkZW50aXR5UHJvdmlkZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNhbWxQcm92aWRlckFSTnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgIFwiTG9naW5zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJBbWJpZ3VvdXNSb2xlUmVzb2x1dGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJ1bGVzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlJ1bGVzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJDbGFpbVwiLFxuICAgICAgICAgICAgICAgICAgICBcIk1hdGNoVHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlZhbHVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDbGFpbVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJNYXRjaFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTYtMDQtMThcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY29nbml0by1pZHBcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBDb2duaXRvIElkZW50aXR5IFByb3ZpZGVyXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFXU0NvZ25pdG9JZGVudGl0eVByb3ZpZGVyU2VydmljZVwiLFxuICAgIFwidWlkXCI6IFwiY29nbml0by1pZHAtMjAxNi0wNC0xOFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRDdXN0b21BdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJDdXN0b21BdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDdXN0b21BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5BZGRVc2VyVG9Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5Db25maXJtU2lnblVwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5DcmVhdGVVc2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRhdGlvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVtcG9yYXJ5UGFzc3dvcmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRm9yY2VBbGlhc0NyZWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXNzYWdlQWN0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGVzaXJlZERlbGl2ZXJ5TWVkaXVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluRGVsZXRlVXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluRGVsZXRlVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJBdHRyaWJ1dGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkRpc2FibGVQcm92aWRlckZvclVzZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluRGlzYWJsZVVzZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkVuYWJsZVVzZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkZvcmdldERldmljZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIkRldmljZUtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGV2aWNlS2V5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5HZXREZXZpY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRldmljZUtleVwiLFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGV2aWNlS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXZpY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGV2aWNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkdldFVzZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckNyZWF0ZURhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlclN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIk1GQU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWZhU2V0dGluZ1wiOiB7fSxcbiAgICAgICAgICBcIlVzZXJNRkFTZXR0aW5nTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5Jbml0aWF0ZUF1dGhcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkNsaWVudElkXCIsXG4gICAgICAgICAgXCJBdXRoRmxvd1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dGhGbG93XCI6IHt9LFxuICAgICAgICAgIFwiQXV0aFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudE1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbmFseXRpY3NNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGV4dERhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYWxsZW5nZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbGxlbmdlUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25SZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluTGlua1Byb3ZpZGVyRm9yVXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiRGVzdGluYXRpb25Vc2VyXCIsXG4gICAgICAgICAgXCJTb3VyY2VVc2VyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblVzZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZVVzZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluTGlzdERldmljZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnaW5hdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGV2aWNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnaW5hdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5MaXN0R3JvdXBzRm9yVXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluTGlzdFVzZXJBdXRoRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aEV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFdmVudFJlc3BvbnNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRSaXNrXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJSaXNrRGVjaXNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUmlza0xldmVsXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNoYWxsZW5nZVJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkNoYWxsZW5nZVJlc3BvbnNlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDb250ZXh0RGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkRldmljZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVGltZXpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ2l0eVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb3VudHJ5XCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50RmVlZGJhY2tcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJGZWVkYmFja1ZhbHVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRmVlZGJhY2tWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcm92aWRlclwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJGZWVkYmFja0RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5SZW1vdmVVc2VyRnJvbUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pblJlc2V0VXNlclBhc3N3b3JkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5SZXNwb25kVG9BdXRoQ2hhbGxlbmdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJDbGllbnRJZFwiLFxuICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYWxsZW5nZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFsbGVuZ2VSZXNwb25zZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJBbmFseXRpY3NNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGV4dERhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYWxsZW5nZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbGxlbmdlUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25SZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluU2V0VXNlck1GQVByZWZlcmVuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNNU01mYVNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb2Z0d2FyZVRva2VuTWZhU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pblNldFVzZXJTZXR0aW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIk1GQU9wdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1GQU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5VcGRhdGVBdXRoRXZlbnRGZWVkYmFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIkV2ZW50SWRcIixcbiAgICAgICAgICBcIkZlZWRiYWNrVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50SWRcIjoge30sXG4gICAgICAgICAgXCJGZWVkYmFja1ZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5VcGRhdGVEZXZpY2VTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJEZXZpY2VLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZUtleVwiOiB7fSxcbiAgICAgICAgICBcIkRldmljZVJlbWVtYmVyZWRTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pblVwZGF0ZVVzZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluVXNlckdsb2JhbFNpZ25PdXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVTb2Z0d2FyZVRva2VuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXNzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VjcmV0Q29kZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2Vzc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNoYW5nZVBhc3N3b3JkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcmV2aW91c1Bhc3N3b3JkXCIsXG4gICAgICAgICAgXCJQcm9wb3NlZFBhc3N3b3JkXCIsXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmV2aW91c1Bhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3Bvc2VkUGFzc3dvcmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJDb25maXJtRGV2aWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiLFxuICAgICAgICAgIFwiRGV2aWNlS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXZpY2VLZXlcIjoge30sXG4gICAgICAgICAgXCJEZXZpY2VTZWNyZXRWZXJpZmllckNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUGFzc3dvcmRWZXJpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTYWx0XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyQ29uZmlybWF0aW9uTmVjZXNzYXJ5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb25maXJtRm9yZ290UGFzc3dvcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsaWVudElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiQ29uZmlybWF0aW9uQ29kZVwiLFxuICAgICAgICAgIFwiUGFzc3dvcmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3JldEhhc2hcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbmZpcm1hdGlvbkNvZGVcIjoge30sXG4gICAgICAgICAgXCJQYXNzd29yZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbmFseXRpY3NNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckNvbnRleHREYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiYXV0aHR5cGVcIjogXCJub25lXCJcbiAgICB9LFxuICAgIFwiQ29uZmlybVNpZ25VcFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50SWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJDb25maXJtYXRpb25Db2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWNyZXRIYXNoXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25maXJtYXRpb25Db2RlXCI6IHt9LFxuICAgICAgICAgIFwiRm9yY2VBbGlhc0NyZWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbmFseXRpY3NNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckNvbnRleHREYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiYXV0aHR5cGVcIjogXCJub25lXCJcbiAgICB9LFxuICAgIFwiQ3JlYXRlR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUHJlY2VkZW5jZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUlkZW50aXR5UHJvdmlkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiLFxuICAgICAgICAgIFwiUHJvdmlkZXJUeXBlXCIsXG4gICAgICAgICAgXCJQcm92aWRlckRldGFpbHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3ZpZGVyVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3ZpZGVyRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXR0cmlidXRlTWFwcGluZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRwSWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVByb3ZpZGVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UHJvdmlkZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlc291cmNlU2VydmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNjb3Blc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlU2VydmVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlU2VydmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVVc2VySW1wb3J0Sm9iXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJKb2JOYW1lXCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc1JvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc1JvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VySW1wb3J0Sm9iXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVVc2VyUG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9vbE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9vbE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFtYmRhQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvVmVyaWZpZWRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGlhc0F0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0eFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJuYW1lQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU21zVmVyaWZpY2F0aW9uTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIkVtYWlsVmVyaWZpY2F0aW9uTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIkVtYWlsVmVyaWZpY2F0aW9uU3ViamVjdFwiOiB7fSxcbiAgICAgICAgICBcIlZlcmlmaWNhdGlvbk1lc3NhZ2VUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU21zQXV0aGVudGljYXRpb25NZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiTWZhQ29uZmlndXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkRldmljZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1OVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVtYWlsQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU21zQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlclBvb2xUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZG1pbkNyZWF0ZVVzZXJDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjaGVtYVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlclBvb2xBZGRPbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1aVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVVc2VyUG9vbENsaWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiQ2xpZW50TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkdlbmVyYXRlU2VjcmV0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWZyZXNoVG9rZW5WYWxpZGl0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVhZEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldyaXRlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwbGljaXRBdXRoRmxvd3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1dVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWxsYmFja1VSTHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1eFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvZ291dFVSTHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1elwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRSZWRpcmVjdFVSSVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93ZWRPQXV0aEZsb3dzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvd2VkT0F1dGhTY29wZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93ZWRPQXV0aEZsb3dzVXNlclBvb2xDbGllbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sQ2xpZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVVc2VyUG9vbERvbWFpblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluXCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpblwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJZGVudGl0eVByb3ZpZGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJQcm92aWRlck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJlc291cmNlU2VydmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJEZWxldGVVc2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZU5hbWVzXCIsXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJEZWxldGVVc2VyUG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVXNlclBvb2xDbGllbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkNsaWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVXNlclBvb2xEb21haW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpblwiLFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJQcm92aWRlck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVByb3ZpZGVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UHJvdmlkZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzb3VyY2VTZXJ2ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VTZXJ2ZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VTZXJ2ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmlza0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmlza0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmlza0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2clwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVXNlckltcG9ydEpvYlwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiSm9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlckltcG9ydEpvYlwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVVc2VyUG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1bFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVXNlclBvb2xDbGllbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkNsaWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xDbGllbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2N1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVXNlclBvb2xEb21haW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBV1NBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRG9tYWluXCI6IHt9LFxuICAgICAgICAgICAgICBcIlMzQnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgICBcIkNsb3VkRnJvbnREaXN0cmlidXRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRm9yZ2V0RGV2aWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXZpY2VLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZUtleVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkZvcmdvdFBhc3N3b3JkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3JldEhhc2hcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJDb250ZXh0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQW5hbHl0aWNzTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvZGVEZWxpdmVyeURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3cFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJHZXRDU1ZIZWFkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDU1ZIZWFkZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGV2aWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXZpY2VLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGV2aWNlS2V5XCI6IHt9LFxuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXZpY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGV2aWNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SWRlbnRpdHlQcm92aWRlckJ5SWRlbnRpZmllclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiSWRwSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiSWRwSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVByb3ZpZGVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UHJvdmlkZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNpZ25pbmdDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRVSUN1c3RvbWl6YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVUlDdXN0b21pemF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVJQ3VzdG9taXphdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTUZBT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNZmFTZXR0aW5nXCI6IHt9LFxuICAgICAgICAgIFwiVXNlck1GQVNldHRpbmdMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYXV0aHR5cGVcIjogXCJub25lXCJcbiAgICB9LFxuICAgIFwiR2V0VXNlckF0dHJpYnV0ZVZlcmlmaWNhdGlvbkNvZGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29kZURlbGl2ZXJ5RGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIkdldFVzZXJQb29sTWZhQ29uZmlnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbXNNZmFDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOGRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb2Z0d2FyZVRva2VuTWZhQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWZhQ29uZmlndXJhdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdsb2JhbFNpZ25PdXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbml0aWF0ZUF1dGhcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dGhGbG93XCIsXG4gICAgICAgICAgXCJDbGllbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoRmxvd1wiOiB7fSxcbiAgICAgICAgICBcIkF1dGhQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFuYWx5dGljc01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQ29udGV4dERhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYWxsZW5nZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbGxlbmdlUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25SZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REZXZpY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2luYXRpb25Ub2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRldmljZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2luYXRpb25Ub2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJZGVudGl0eVByb3ZpZGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByb3ZpZGVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aWRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByb3ZpZGVyVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZXNvdXJjZVNlcnZlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVNlcnZlcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VTZXJ2ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RVc2VySW1wb3J0Sm9ic1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnaW5hdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlckltcG9ydEpvYnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRqXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnaW5hdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFVzZXJQb29sQ2xpZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xDbGllbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNsaWVudE5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VXNlclBvb2xzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFtYmRhQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VXNlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNUb0dldFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnaW5hdGlvblRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2luYXRpb25Ub2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RVc2Vyc0luR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNlbmRDb25maXJtYXRpb25Db2RlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3JldEhhc2hcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJDb250ZXh0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQW5hbHl0aWNzTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvZGVEZWxpdmVyeURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3cFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJSZXNwb25kVG9BdXRoQ2hhbGxlbmdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRJZFwiLFxuICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJDaGFsbGVuZ2VSZXNwb25zZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFuYWx5dGljc01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQ29udGV4dERhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYWxsZW5nZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbGxlbmdlUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25SZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFJpc2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tcHJvbWlzZWRDcmVkZW50aWFsc1Jpc2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NvdW50VGFrZW92ZXJSaXNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmlza0V4Y2VwdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSaXNrQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSaXNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0VUlDdXN0b21pemF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ1NTXCI6IHt9LFxuICAgICAgICAgIFwiSW1hZ2VGaWxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVUlDdXN0b21pemF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVJQ3VzdG9taXphdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0VXNlck1GQVByZWZlcmVuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNNU01mYVNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb2Z0d2FyZVRva2VuTWZhU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRVc2VyUG9vbE1mYUNvbmZpZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiU21zTWZhQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU29mdHdhcmVUb2tlbk1mYUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1mYUNvbmZpZ3VyYXRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbXNNZmFDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOGRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb2Z0d2FyZVRva2VuTWZhQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWZhQ29uZmlndXJhdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFVzZXJTZXR0aW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIixcbiAgICAgICAgICBcIk1GQU9wdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1GQU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIlNpZ25VcFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50SWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjcmV0SGFzaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFzc3dvcmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRhdGlvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQW5hbHl0aWNzTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJDb250ZXh0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJDb25maXJtZWRcIixcbiAgICAgICAgICBcIlVzZXJTdWJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlckNvbmZpcm1lZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29kZURlbGl2ZXJ5RGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlclN1YlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJTdGFydFVzZXJJbXBvcnRKb2JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJKb2JJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJJbXBvcnRKb2JcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BVc2VySW1wb3J0Sm9iXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJKb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiSm9iSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VySW1wb3J0Sm9iXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBdXRoRXZlbnRGZWVkYmFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIkV2ZW50SWRcIixcbiAgICAgICAgICBcIkZlZWRiYWNrVG9rZW5cIixcbiAgICAgICAgICBcIkZlZWRiYWNrVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50SWRcIjoge30sXG4gICAgICAgICAgXCJGZWVkYmFja1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGZWVkYmFja1ZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGV2aWNlU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiLFxuICAgICAgICAgIFwiRGV2aWNlS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXZpY2VLZXlcIjoge30sXG4gICAgICAgICAgXCJEZXZpY2VSZW1lbWJlcmVkU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUHJlY2VkZW5jZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUlkZW50aXR5UHJvdmlkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVNYXBwaW5nXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZHBJZGVudGlmaWVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UHJvdmlkZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQcm92aWRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUmVzb3VyY2VTZXJ2ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2NvcGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VTZXJ2ZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VTZXJ2ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVVzZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlc1wiLFxuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvZGVEZWxpdmVyeURldGFpbHNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJVcGRhdGVVc2VyUG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0clwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhbWJkYUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b1ZlcmlmaWVkQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU21zVmVyaWZpY2F0aW9uTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIkVtYWlsVmVyaWZpY2F0aW9uTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIkVtYWlsVmVyaWZpY2F0aW9uU3ViamVjdFwiOiB7fSxcbiAgICAgICAgICBcIlZlcmlmaWNhdGlvbk1lc3NhZ2VUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU21zQXV0aGVudGljYXRpb25NZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiTWZhQ29uZmlndXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkRldmljZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1OVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVtYWlsQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU21zQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlclBvb2xUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZG1pbkNyZWF0ZVVzZXJDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJQb29sQWRkT25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVVc2VyUG9vbENsaWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiQ2xpZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVmcmVzaFRva2VuVmFsaWRpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlYWRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXcml0ZUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGxpY2l0QXV0aEZsb3dzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FsbGJhY2tVUkxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2dvdXRVUkxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWZhdWx0UmVkaXJlY3RVUklcIjoge30sXG4gICAgICAgICAgXCJBbGxvd2VkT0F1dGhGbG93c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzYwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxsb3dlZE9BdXRoU2NvcGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvd2VkT0F1dGhGbG93c1VzZXJQb29sQ2xpZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbmFseXRpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbENsaWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVmVyaWZ5U29mdHdhcmVUb2tlblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlckNvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJVc2VyQ29kZVwiOiB7fSxcbiAgICAgICAgICBcIkZyaWVuZGx5RGV2aWNlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJWZXJpZnlVc2VyQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiLFxuICAgICAgICAgIFwiQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvZGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiYXV0aHR5cGVcIjogXCJub25lXCJcbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkF0dHJpYnV0ZURhdGFUeXBlXCI6IHt9LFxuICAgICAgICBcIkRldmVsb3Blck9ubHlBdHRyaWJ1dGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk11dGFibGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOdW1iZXJBdHRyaWJ1dGVDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTWluVmFsdWVcIjoge30sXG4gICAgICAgICAgICBcIk1heFZhbHVlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0cmluZ0F0dHJpYnV0ZUNvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNaW5MZW5ndGhcIjoge30sXG4gICAgICAgICAgICBcIk1heExlbmd0aFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzZXJDcmVhdGVEYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzZXJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzZXJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTUZBT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsaXZlcnlNZWRpdW1cIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzEyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgIFwiUHJvdmlkZXJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICBcIlByb3ZpZGVyQXR0cmlidXRlVmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEZXZpY2VLZXlcIjoge30sXG4gICAgICAgIFwiRGV2aWNlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXZpY2VDcmVhdGVEYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRldmljZUxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGV2aWNlTGFzdEF1dGhlbnRpY2F0ZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzFtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBbmFseXRpY3NFbmRwb2ludElkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklwQWRkcmVzc1wiLFxuICAgICAgICBcIlNlcnZlck5hbWVcIixcbiAgICAgICAgXCJTZXJ2ZXJQYXRoXCIsXG4gICAgICAgIFwiSHR0cEhlYWRlcnNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICBcIlNlcnZlck5hbWVcIjoge30sXG4gICAgICAgIFwiU2VydmVyUGF0aFwiOiB7fSxcbiAgICAgICAgXCJIdHRwSGVhZGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJoZWFkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcImhlYWRlclZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkVuY29kZWREYXRhXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMXVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFeHBpcmVzSW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRva2VuVHlwZVwiOiB7fSxcbiAgICAgICAgXCJSZWZyZXNoVG9rZW5cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICB9LFxuICAgICAgICBcIklkVG9rZW5cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5ld0RldmljZU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJEZXZpY2VLZXlcIjoge30sXG4gICAgICAgICAgICBcIkRldmljZUdyb3VwS2V5XCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzI0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgIFwiUHJlY2VkZW5jZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkTWZhXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZE1mYVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTM3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuY29kZWREYXRhXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0MFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTNDFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzQzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM0NlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgXCJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgIFwiUHJvdmlkZXJUeXBlXCI6IHt9LFxuICAgICAgICBcIlByb3ZpZGVyRGV0YWlsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXR0cmlidXRlTWFwcGluZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWRwSWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0YVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNjb3BlTmFtZVwiLFxuICAgICAgICAgIFwiU2NvcGVEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTY29wZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTY29wZURlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICBcIklkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTY29wZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNGFcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0alwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSm9iTmFtZVwiOiB7fSxcbiAgICAgICAgXCJKb2JJZFwiOiB7fSxcbiAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICBcIlByZVNpZ25lZFVybFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhcnREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXBsZXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJDbG91ZFdhdGNoTG9nc1JvbGVBcm5cIjoge30sXG4gICAgICAgIFwiSW1wb3J0ZWRVc2Vyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2tpcHBlZFVzZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGYWlsZWRVc2Vyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcGxldGlvbk1lc3NhZ2VcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQYXNzd29yZFBvbGljeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTWluaW11bUxlbmd0aFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVxdWlyZVVwcGVyY2FzZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVxdWlyZUxvd2VyY2FzZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVxdWlyZU51bWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlJlcXVpcmVTeW1ib2xzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0dVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUHJlU2lnblVwXCI6IHt9LFxuICAgICAgICBcIkN1c3RvbU1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiUG9zdENvbmZpcm1hdGlvblwiOiB7fSxcbiAgICAgICAgXCJQcmVBdXRoZW50aWNhdGlvblwiOiB7fSxcbiAgICAgICAgXCJQb3N0QXV0aGVudGljYXRpb25cIjoge30sXG4gICAgICAgIFwiRGVmaW5lQXV0aENoYWxsZW5nZVwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVBdXRoQ2hhbGxlbmdlXCI6IHt9LFxuICAgICAgICBcIlZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZVwiOiB7fSxcbiAgICAgICAgXCJQcmVUb2tlbkdlbmVyYXRpb25cIjoge30sXG4gICAgICAgIFwiVXNlck1pZ3JhdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzR4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM0elwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNtc01lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiRW1haWxNZXNzYWdlXCI6IHt9LFxuICAgICAgICBcIkVtYWlsU3ViamVjdFwiOiB7fSxcbiAgICAgICAgXCJFbWFpbE1lc3NhZ2VCeUxpbmtcIjoge30sXG4gICAgICAgIFwiRW1haWxTdWJqZWN0QnlMaW5rXCI6IHt9LFxuICAgICAgICBcIkRlZmF1bHRFbWFpbE9wdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNTlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNoYWxsZW5nZVJlcXVpcmVkT25OZXdEZXZpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkRldmljZU9ubHlSZW1lbWJlcmVkT25Vc2VyUHJvbXB0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgXCJSZXBseVRvRW1haWxBZGRyZXNzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1Y1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlNuc0NhbGxlckFyblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTbnNDYWxsZXJBcm5cIjoge30sXG4gICAgICAgIFwiRXh0ZXJuYWxJZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzVlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBbGxvd0FkbWluQ3JlYXRlVXNlck9ubHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlVudXNlZEFjY291bnRWYWxpZGl0eURheXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkludml0ZU1lc3NhZ2VUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiU01TTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgIFwiRW1haWxNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgXCJFbWFpbFN1YmplY3RcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQWR2YW5jZWRTZWN1cml0eU1vZGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWR2YW5jZWRTZWN1cml0eU1vZGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlBvbGljaWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYW1iZGFDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNHVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTY2hlbWFBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdXRvVmVyaWZpZWRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzR2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGlhc0F0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNHhcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzZXJuYW1lQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0elwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU21zVmVyaWZpY2F0aW9uTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJFbWFpbFZlcmlmaWNhdGlvbk1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiRW1haWxWZXJpZmljYXRpb25TdWJqZWN0XCI6IHt9LFxuICAgICAgICBcIlZlcmlmaWNhdGlvbk1lc3NhZ2VUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1NFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU21zQXV0aGVudGljYXRpb25NZXNzYWdlXCI6IHt9LFxuICAgICAgICBcIk1mYUNvbmZpZ3VyYXRpb25cIjoge30sXG4gICAgICAgIFwiRGV2aWNlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1OVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXN0aW1hdGVkTnVtYmVyT2ZVc2Vyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW1haWxDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbXNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2VyUG9vbFRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNtc0NvbmZpZ3VyYXRpb25GYWlsdXJlXCI6IHt9LFxuICAgICAgICBcIkVtYWlsQ29uZmlndXJhdGlvbkZhaWx1cmVcIjoge30sXG4gICAgICAgIFwiRG9tYWluXCI6IHt9LFxuICAgICAgICBcIkFkbWluQ3JlYXRlVXNlckNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXNlclBvb2xBZGRPbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNWlcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFyblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzV1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM1d1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNXhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzV6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM2MFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNjJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzY0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQXBwbGljYXRpb25JZFwiLFxuICAgICAgICBcIlJvbGVBcm5cIixcbiAgICAgICAgXCJFeHRlcm5hbElkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFwcGxpY2F0aW9uSWRcIjoge30sXG4gICAgICAgIFwiUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJFeHRlcm5hbElkXCI6IHt9LFxuICAgICAgICBcIlVzZXJEYXRhU2hhcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNjdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgIFwiQ2xpZW50TmFtZVwiOiB7fSxcbiAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xpZW50U2VjcmV0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVmcmVzaFRva2VuVmFsaWRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlYWRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXcml0ZUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4cGxpY2l0QXV0aEZsb3dzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzV1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1d1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FsbGJhY2tVUkxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzV4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMb2dvdXRVUkxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzV6XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0UmVkaXJlY3RVUklcIjoge30sXG4gICAgICAgIFwiQWxsb3dlZE9BdXRoRmxvd3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNjBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93ZWRPQXV0aFNjb3Blc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dlZE9BdXRoRmxvd3NVc2VyUG9vbENsaWVudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQW5hbHl0aWNzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wcm9taXNlZENyZWRlbnRpYWxzUmlza0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNnNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFjY291bnRUYWtlb3ZlclJpc2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSaXNrRXhjZXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM3NlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJBY3Rpb25zXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkV2ZW50RmlsdGVyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRXZlbnRBY3Rpb25cIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRXZlbnRBY3Rpb25cIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZ4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQWN0aW9uc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOb3RpZnlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiU291cmNlQXJuXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkZyb21cIjoge30sXG4gICAgICAgICAgICBcIlJlcGx5VG9cIjoge30sXG4gICAgICAgICAgICBcIlNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwiQmxvY2tFbWFpbFwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnpcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTm9BY3Rpb25FbWFpbFwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnpcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWZhRW1haWxcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ6XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTG93QWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3M1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNZWRpdW1BY3Rpb25cIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzczXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkhpZ2hBY3Rpb25cIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzczXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZ6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiU3ViamVjdFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdWJqZWN0XCI6IHt9LFxuICAgICAgICBcIkh0bWxCb2R5XCI6IHt9LFxuICAgICAgICBcIlRleHRCb2R5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3M1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk5vdGlmeVwiLFxuICAgICAgICBcIkV2ZW50QWN0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5vdGlmeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXZlbnRBY3Rpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzc2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCbG9ja2VkSVBSYW5nZUxpc3RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIlNraXBwZWRJUFJhbmdlTGlzdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEZXN0aW5hdGlvblwiOiB7fSxcbiAgICAgICAgXCJEZWxpdmVyeU1lZGl1bVwiOiB7fSxcbiAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4M1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW1hZ2VVcmxcIjoge30sXG4gICAgICAgIFwiQ1NTXCI6IHt9LFxuICAgICAgICBcIkNTU1ZlcnNpb25cIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTbXNBdXRoZW50aWNhdGlvbk1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiU21zQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1Y1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOWVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMDYtMzBcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY29nbml0by1zeW5jXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIENvZ25pdG8gU3luY1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiLFxuICAgIFwidWlkXCI6IFwiY29nbml0by1zeW5jLTIwMTQtMDYtMzBcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQnVsa1B1Ymxpc2hcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9idWxrcHVibGlzaFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGF0YXNldFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2lkZW50aXRpZXMve0lkZW50aXR5SWR9L2RhdGFzZXRzL3tEYXRhc2V0TmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCIsXG4gICAgICAgICAgXCJEYXRhc2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhc2V0TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRhdGFzZXROYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YXNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURhdGFzZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9pZGVudGl0aWVzL3tJZGVudGl0eUlkfS9kYXRhc2V0cy97RGF0YXNldE5hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiLFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiLFxuICAgICAgICAgIFwiRGF0YXNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YXNldE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEYXRhc2V0TmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFzZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJZGVudGl0eVBvb2xVc2FnZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sVXNhZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJZGVudGl0eVVzYWdlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH0vaWRlbnRpdGllcy97SWRlbnRpdHlJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5VXNhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEYXRhc2V0Q291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRhdGFTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWxrUHVibGlzaERldGFpbHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9nZXRCdWxrUHVibGlzaERldGFpbHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkJ1bGtQdWJsaXNoU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1bGtQdWJsaXNoQ29tcGxldGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1bGtQdWJsaXNoU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiRmFpbHVyZU1lc3NhZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb2duaXRvRXZlbnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH0vZXZlbnRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldElkZW50aXR5UG9vbENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9jb25maWd1cmF0aW9uXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJQdXNoU3luY1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb2duaXRvU3RyZWFtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGF0YXNldHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9pZGVudGl0aWVzL3tJZGVudGl0eUlkfS9kYXRhc2V0c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiLFxuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YXNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdElkZW50aXR5UG9vbFVzYWdlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbFVzYWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVjb3Jkc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2lkZW50aXRpZXMve0lkZW50aXR5SWR9L2RhdGFzZXRzL3tEYXRhc2V0TmFtZX0vcmVjb3Jkc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aXR5SWRcIixcbiAgICAgICAgICBcIkRhdGFzZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFzZXROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGF0YXNldE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0U3luY0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXN0U3luY0NvdW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3luY1Nlc3Npb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3luY1Nlc3Npb25Ub2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhc2V0U3luY0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0TW9kaWZpZWRCeVwiOiB7fSxcbiAgICAgICAgICBcIk1lcmdlZERhdGFzZXROYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhc2V0RXhpc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhc2V0RGVsZXRlZEFmdGVyUmVxdWVzdGVkU3luY0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTeW5jU2Vzc2lvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJEZXZpY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9pZGVudGl0eS97SWRlbnRpdHlJZH0vZGV2aWNlXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiLFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiLFxuICAgICAgICAgIFwiUGxhdGZvcm1cIixcbiAgICAgICAgICBcIlRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBsYXRmb3JtXCI6IHt9LFxuICAgICAgICAgIFwiVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldENvZ25pdG9FdmVudHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9ldmVudHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJFdmVudHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJZGVudGl0eVBvb2xDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH0vY29uZmlndXJhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1c2hTeW5jXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvZ25pdG9TdHJlYW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiUHVzaFN5bmNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29nbml0b1N0cmVhbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3Vic2NyaWJlVG9EYXRhc2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH0vaWRlbnRpdGllcy97SWRlbnRpdHlJZH0vZGF0YXNldHMve0RhdGFzZXROYW1lfS9zdWJzY3JpcHRpb25zL3tEZXZpY2VJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCIsXG4gICAgICAgICAgXCJEYXRhc2V0TmFtZVwiLFxuICAgICAgICAgIFwiRGV2aWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YXNldE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEYXRhc2V0TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGV2aWNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbnN1YnNjcmliZUZyb21EYXRhc2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH0vaWRlbnRpdGllcy97SWRlbnRpdHlJZH0vZGF0YXNldHMve0RhdGFzZXROYW1lfS9zdWJzY3JpcHRpb25zL3tEZXZpY2VJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCIsXG4gICAgICAgICAgXCJEYXRhc2V0TmFtZVwiLFxuICAgICAgICAgIFwiRGV2aWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YXNldE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEYXRhc2V0TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGV2aWNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSZWNvcmRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH0vaWRlbnRpdGllcy97SWRlbnRpdHlJZH0vZGF0YXNldHMve0RhdGFzZXROYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aXR5SWRcIixcbiAgICAgICAgICBcIkRhdGFzZXROYW1lXCIsXG4gICAgICAgICAgXCJTeW5jU2Vzc2lvblRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFzZXROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGF0YXNldE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXZpY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlY29yZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJPcFwiLFxuICAgICAgICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgICAgICAgXCJTeW5jQ291bnRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiT3BcIjoge30sXG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN5bmNDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGV2aWNlTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTeW5jU2Vzc2lvblRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50Q29udGV4dFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LUNsaWVudC1Db250ZXh0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICBcIkRhdGFzZXROYW1lXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZEJ5XCI6IHt9LFxuICAgICAgICBcIkRhdGFTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOdW1SZWNvcmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgIFwiU3luY1Nlc3Npb25zQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRhdGFTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBcHBsaWNhdGlvbkFybnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIlJvbGVBcm5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgIFwiUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJTdHJlYW1pbmdTdGF0dXNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIlN5bmNDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0TW9kaWZpZWRCeVwiOiB7fSxcbiAgICAgICAgICBcIkRldmljZUxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwiZXhhbXBsZXNcIjoge31cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTExLTEyXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNvbmZpZ1wiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkNvbmZpZyBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgQ29uZmlnXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJDb25maWcgU2VydmljZVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJTdGFybGluZ0RvdmVTZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJjb25maWctMjAxNC0xMS0xMlwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJCYXRjaEdldFJlc291cmNlQ29uZmlnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUtleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJhc2VDb25maWd1cmF0aW9uSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJhY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjb25maWd1cmF0aW9uSXRlbUNhcHR1cmVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ3VyYXRpb25JdGVtU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY29uZmlndXJhdGlvblN0YXRlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXdzUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ3VyYXRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdXBwbGVtZW50YXJ5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1bnByb2Nlc3NlZFJlc291cmNlS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBZ2dyZWdhdGlvbkF1dGhvcml6YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dGhvcml6ZWRBY2NvdW50SWRcIixcbiAgICAgICAgICBcIkF1dGhvcml6ZWRBd3NSZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aG9yaXplZEFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkF1dGhvcml6ZWRBd3NSZWdpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDb25maWdSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29uZmlndXJhdGlvblJlY29yZGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uUmVjb3JkZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEZWxpdmVyeUNoYW5uZWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5Q2hhbm5lbE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsaXZlcnlDaGFubmVsTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUV2YWx1YXRpb25SZXN1bHRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBlbmRpbmdBZ2dyZWdhdGlvblJlcXVlc3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlcXVlc3RlckFjY291bnRJZFwiLFxuICAgICAgICAgIFwiUmVxdWVzdGVyQXdzUmVnaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcXVlc3RlckFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlcXVlc3RlckF3c1JlZ2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJldGVudGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJldGVudGlvbkNvbmZpZ3VyYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldGVudGlvbkNvbmZpZ3VyYXRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsaXZlckNvbmZpZ1NuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZWxpdmVyeUNoYW5uZWxOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlbGl2ZXJ5Q2hhbm5lbE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25maWdTbmFwc2hvdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBZ2dyZWdhdGVDb21wbGlhbmNlQnlDb25maWdSdWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBd3NSZWdpb25cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFnZ3JlZ2F0ZUNvbXBsaWFuY2VCeUNvbmZpZ1J1bGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF3c1JlZ2lvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWdncmVnYXRpb25BdXRob3JpemF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWdncmVnYXRpb25BdXRob3JpemF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbXBsaWFuY2VCeUNvbmZpZ1J1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlnUnVsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21wbGlhbmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbXBsaWFuY2VCeUNvbmZpZ1J1bGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29tcGxpYW5jZUJ5UmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbXBsaWFuY2VCeVJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29uZmlnUnVsZUV2YWx1YXRpb25TdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlnUnVsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlnUnVsZXNFdmFsdWF0aW9uU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ1J1bGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb25maWdSdWxlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0U3VjY2Vzc2Z1bEludm9jYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RGYWlsZWRJbnZvY2F0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0U3VjY2Vzc2Z1bEV2YWx1YXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RGYWlsZWRFdmFsdWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXJzdEFjdGl2YXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEVycm9yQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RFcnJvck1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGaXJzdEV2YWx1YXRpb25TdGFydGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbmZpZ1J1bGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlnUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25maWd1cmF0aW9uQWdncmVnYXRvclNvdXJjZXNTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVcIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFnZ3JlZ2F0ZWRTb3VyY2VTdGF0dXNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBd3NSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFVwZGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEVycm9yQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RFcnJvck1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25maWd1cmF0aW9uUmVjb3JkZXJTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblJlY29yZGVyTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlcnNTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJsYXN0U3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImxhc3RTdG9wVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZWNvcmRpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJsYXN0RXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibGFzdEVycm9yTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNDaGFuZ2VUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29uZmlndXJhdGlvblJlY29yZGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uUmVjb3JkZXJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblJlY29yZGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2NcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURlbGl2ZXJ5Q2hhbm5lbFN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeUNoYW5uZWxOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsaXZlcnlDaGFubmVsc1N0YXR1c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ1NuYXBzaG90RGVsaXZlcnlJbmZvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjb25maWdIaXN0b3J5RGVsaXZlcnlJbmZvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjb25maWdTdHJlYW1EZWxpdmVyeUluZm9cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwibGFzdEVycm9yQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJsYXN0RXJyb3JNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImxhc3RTdGF0dXNDaGFuZ2VUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGVsaXZlcnlDaGFubmVsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeUNoYW5uZWxOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsaXZlcnlDaGFubmVsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBlbmRpbmdBZ2dyZWdhdGlvblJlcXVlc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQZW5kaW5nQWdncmVnYXRpb25SZXF1ZXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVxdWVzdGVyQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVxdWVzdGVyQXdzUmVnaW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXRlbnRpb25Db25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXRlbnRpb25Db25maWd1cmF0aW9uTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0ZW50aW9uQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QWdncmVnYXRlQ29tcGxpYW5jZURldGFpbHNCeUNvbmZpZ1J1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZVwiLFxuICAgICAgICAgIFwiQ29uZmlnUnVsZU5hbWVcIixcbiAgICAgICAgICBcIkFjY291bnRJZFwiLFxuICAgICAgICAgIFwiQXdzUmVnaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgIFwiQXdzUmVnaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWdncmVnYXRlRXZhbHVhdGlvblJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkV2YWx1YXRpb25SZXN1bHRJZGVudGlmaWVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb21wbGlhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc3VsdFJlY29yZGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb25maWdSdWxlSW52b2tlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQW5ub3RhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF3c1JlZ2lvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEFnZ3JlZ2F0ZUNvbmZpZ1J1bGVDb21wbGlhbmNlU3VtbWFyeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBd3NSZWdpb25cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBCeUtleVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cEJ5S2V5XCI6IHt9LFxuICAgICAgICAgIFwiQWdncmVnYXRlQ29tcGxpYW5jZUNvdW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxpYW5jZVN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbXBsaWFuY2VEZXRhaWxzQnlDb25maWdSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb21wbGlhbmNlRGV0YWlsc0J5UmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmFsdWF0aW9uUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29tcGxpYW5jZVN1bW1hcnlCeUNvbmZpZ1J1bGVcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbXBsaWFuY2VTdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb21wbGlhbmNlU3VtbWFyeUJ5UmVzb3VyY2VUeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbXBsaWFuY2VTdW1tYXJpZXNCeVJlc291cmNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxpYW5jZVN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERpc2NvdmVyZWRSZXNvdXJjZUNvdW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidG90YWxEaXNjb3ZlcmVkUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUNvdW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlc291cmNlQ29uZmlnSGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJsYXRlclRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZWFybGllclRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2hyb25vbG9naWNhbE9yZGVyXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbmZpZ3VyYXRpb25JdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ3VyYXRpb25JdGVtQ2FwdHVyZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY29uZmlndXJhdGlvbkl0ZW1TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjb25maWd1cmF0aW9uU3RhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ3VyYXRpb25JdGVtTUQ1SGFzaFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhd3NSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJhdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZWxhdGVkRXZlbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJlbGF0aW9uc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZWxhdGlvbnNoaXBOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY29uZmlndXJhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN1cHBsZW1lbnRhcnlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REaXNjb3ZlcmVkUmVzb3VyY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImluY2x1ZGVEZWxldGVkUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUlkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VEZWxldGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QWdncmVnYXRpb25BdXRob3JpemF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRob3JpemVkQWNjb3VudElkXCIsXG4gICAgICAgICAgXCJBdXRob3JpemVkQXdzUmVnaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhvcml6ZWRBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgXCJBdXRob3JpemVkQXdzUmVnaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWdncmVnYXRpb25BdXRob3JpemF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRDb25maWdSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWdSdWxlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dENvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWNjb3VudEFnZ3JlZ2F0aW9uU291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3JnYW5pemF0aW9uQWdncmVnYXRpb25Tb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRDb25maWd1cmF0aW9uUmVjb3JkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uUmVjb3JkZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dERlbGl2ZXJ5Q2hhbm5lbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlDaGFubmVsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5Q2hhbm5lbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0RXZhbHVhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc3VsdFRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXN1bHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlRlc3RNb2RlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGYWlsZWRFdmFsdWF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UmV0ZW50aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kSW5EYXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldGVudGlvblBlcmlvZEluRGF5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0ZW50aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRDb25maWdSdWxlc0V2YWx1YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlnUnVsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0Q29uZmlndXJhdGlvblJlY29yZGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uUmVjb3JkZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wQ29uZmlndXJhdGlvblJlY29yZGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uUmVjb3JkZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29tcGxpYW5jZVR5cGVcIjoge30sXG4gICAgICAgIFwiQ29tcGxpYW5jZUNvbnRyaWJ1dG9yQ291bnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FwcGVkQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNhcEV4Y2VlZGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFnZ3JlZ2F0aW9uQXV0aG9yaXphdGlvbkFyblwiOiB7fSxcbiAgICAgICAgXCJBdXRob3JpemVkQWNjb3VudElkXCI6IHt9LFxuICAgICAgICBcIkF1dGhvcml6ZWRBd3NSZWdpb25cIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMXBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzI3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiU291cmNlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9LFxuICAgICAgICBcIkNvbmZpZ1J1bGVBcm5cIjoge30sXG4gICAgICAgIFwiQ29uZmlnUnVsZUlkXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlNjb3BlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDb21wbGlhbmNlUmVzb3VyY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlRhZ0tleVwiOiB7fSxcbiAgICAgICAgICAgIFwiVGFnVmFsdWVcIjoge30sXG4gICAgICAgICAgICBcIkNvbXBsaWFuY2VSZXNvdXJjZUlkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlNvdXJjZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIk93bmVyXCIsXG4gICAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiT3duZXJcIjoge30sXG4gICAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICBcIlNvdXJjZURldGFpbHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJFdmVudFNvdXJjZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiTWVzc2FnZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIk1heGltdW1FeGVjdXRpb25GcmVxdWVuY3lcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5wdXRQYXJhbWV0ZXJzXCI6IHt9LFxuICAgICAgICBcIk1heGltdW1FeGVjdXRpb25GcmVxdWVuY3lcIjoge30sXG4gICAgICAgIFwiQ29uZmlnUnVsZVN0YXRlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCI6IHt9LFxuICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yQXJuXCI6IHt9LFxuICAgICAgICBcIkFjY291bnRBZ2dyZWdhdGlvblNvdXJjZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9yZ2FuaXphdGlvbkFnZ3JlZ2F0aW9uU291cmNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzMyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdFVwZGF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjY291bnRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjb3VudElkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxBd3NSZWdpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBd3NSZWdpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUm9sZUFyblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSb2xlQXJuXCI6IHt9LFxuICAgICAgICBcIkF3c1JlZ2lvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsbEF3c1JlZ2lvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTM2NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwicm9sZUFSTlwiOiB7fSxcbiAgICAgICAgXCJyZWNvcmRpbmdHcm91cFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiYWxsU3VwcG9ydGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJpbmNsdWRlR2xvYmFsUmVzb3VyY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwicmVzb3VyY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibGFzdFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJsYXN0RXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICBcImxhc3RFcnJvck1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwibGFzdEF0dGVtcHRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhc3RTdWNjZXNzZnVsVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuZXh0RGVsaXZlcnlUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJzM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgIFwiczNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgIFwic25zVG9waWNBUk5cIjoge30sXG4gICAgICAgIFwiY29uZmlnU25hcHNob3REZWxpdmVyeVByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImRlbGl2ZXJ5RnJlcXVlbmN5XCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0M1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RJbkRheXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RJbkRheXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0OVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRXZhbHVhdGlvblJlc3VsdFF1YWxpZmllclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29uZmlnUnVsZU5hbWVcIjoge30sXG4gICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJPcmRlcmluZ1RpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvbXBsaWFudFJlc291cmNlQ291bnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5vbkNvbXBsaWFudFJlc291cmNlQ291bnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXBsaWFuY2VTdW1tYXJ5VGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0a1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvblJlc3VsdElkZW50aWZpZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzdWx0UmVjb3JkZWRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVJbnZva2VkVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbm5vdGF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUmVzdWx0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzV0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29tcGxpYW5jZVJlc291cmNlVHlwZVwiLFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVJlc291cmNlSWRcIixcbiAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCIsXG4gICAgICAgICAgXCJPcmRlcmluZ1RpbWVzdGFtcFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21wbGlhbmNlUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJDb21wbGlhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFubm90YXRpb25cIjoge30sXG4gICAgICAgICAgXCJPcmRlcmluZ1RpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkdldFJlc291cmNlQ29uZmlnSGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiY29uZmlndXJhdGlvbkl0ZW1zXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE3LTAxLTA2XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImN1clwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIENvc3QgYW5kIFVzYWdlIFJlcG9ydCBTZXJ2aWNlXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInNpZ25pbmdOYW1lXCI6IFwiY3VyXCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJBV1NPcmlnYW1pU2VydmljZUdhdGV3YXlTZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJjdXItMjAxNy0wMS0wNlwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJEZWxldGVSZXBvcnREZWZpbml0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcG9ydE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNwb25zZU1lc3NhZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlcG9ydERlZmluaXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcG9ydERlZmluaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UmVwb3J0RGVmaW5pdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVwb3J0RGVmaW5pdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBvcnREZWZpbml0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJlcG9ydE5hbWVcIixcbiAgICAgICAgXCJUaW1lVW5pdFwiLFxuICAgICAgICBcIkZvcm1hdFwiLFxuICAgICAgICBcIkNvbXByZXNzaW9uXCIsXG4gICAgICAgIFwiQWRkaXRpb25hbFNjaGVtYUVsZW1lbnRzXCIsXG4gICAgICAgIFwiUzNCdWNrZXRcIixcbiAgICAgICAgXCJTM1ByZWZpeFwiLFxuICAgICAgICBcIlMzUmVnaW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlcG9ydE5hbWVcIjoge30sXG4gICAgICAgIFwiVGltZVVuaXRcIjoge30sXG4gICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICBcIkNvbXByZXNzaW9uXCI6IHt9LFxuICAgICAgICBcIkFkZGl0aW9uYWxTY2hlbWFFbGVtZW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUzNCdWNrZXRcIjoge30sXG4gICAgICAgIFwiUzNQcmVmaXhcIjoge30sXG4gICAgICAgIFwiUzNSZWdpb25cIjoge30sXG4gICAgICAgIFwiQWRkaXRpb25hbEFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZVJlcG9ydERlZmluaXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wNi0yM1wiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJkZXZpY2VmYXJtXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgRGV2aWNlIEZhcm1cIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkRldmljZSBGYXJtXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkRldmljZUZhcm1fMjAxNTA2MjNcIixcbiAgICBcInVpZFwiOiBcImRldmljZWZhcm0tMjAxNS0wNi0yM1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVEZXZpY2VQb29sXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcm9qZWN0QXJuXCIsXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJydWxlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0QXJuXCI6IHt9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwicnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGV2aWNlUG9vbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVJbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwicGFja2FnZUNsZWFudXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4Y2x1ZGVBcHBQYWNrYWdlc0Zyb21DbGVhbnVwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlYm9vdEFmdGVyVXNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTmV0d29ya1Byb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByb2plY3RBcm5cIixcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdEFyblwiOiB7fSxcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJ1cGxpbmtCYW5kd2lkdGhCaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb3dubGlua0JhbmR3aWR0aEJpdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVwbGlua0RlbGF5TXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvd25saW5rRGVsYXlNc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXBsaW5rSml0dGVyTXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvd25saW5rSml0dGVyTXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVwbGlua0xvc3NQZXJjZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb3dubGlua0xvc3NQZXJjZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXR3b3JrUHJvZmlsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQcm9qZWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZWZhdWx0Sm9iVGltZW91dE1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVtb3RlQWNjZXNzU2Vzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJvamVjdEFyblwiLFxuICAgICAgICAgIFwiZGV2aWNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RBcm5cIjoge30sXG4gICAgICAgICAgXCJkZXZpY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJpbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgICBcInNzaFB1YmxpY0tleVwiOiB7fSxcbiAgICAgICAgICBcInJlbW90ZURlYnVnRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVtb3RlUmVjb3JkRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVtb3RlUmVjb3JkQXBwQXJuXCI6IHt9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNsaWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiY29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiYmlsbGluZ01ldGhvZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvbkFybnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW50ZXJhY3Rpb25Nb2RlXCI6IHt9LFxuICAgICAgICAgIFwic2tpcEFwcFJlc2lnblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVtb3RlQWNjZXNzU2Vzc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVXBsb2FkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcm9qZWN0QXJuXCIsXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RBcm5cIjoge30sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidXBsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWUENFQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJ2cGNlU2VydmljZU5hbWVcIixcbiAgICAgICAgICBcInNlcnZpY2VEbnNOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZwY2VDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInZwY2VTZXJ2aWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInNlcnZpY2VEbnNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25EZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZwY2VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEZXZpY2VQb29sXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTmV0d29ya1Byb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQcm9qZWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVtb3RlQWNjZXNzU2Vzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJ1blwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVVwbG9hZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZQQ0VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QWNjb3VudFNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFjY291bnRTZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiYXdzQWNjb3VudE51bWJlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ1bm1ldGVyZWREZXZpY2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ1bm1ldGVyZWRSZW1vdGVBY2Nlc3NEZXZpY2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJtYXhKb2JUaW1lb3V0TWludXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidHJpYWxNaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0b3RhbFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJyZW1haW5pbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJtYXhTbG90c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZGVmYXVsdEpvYlRpbWVvdXRNaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJza2lwQXBwUmVzaWduXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREZXZpY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXZpY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERldmljZUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGV2aWNlSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERldmljZVBvb2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXZpY2VQb29sXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERldmljZVBvb2xDb21wYXRpYmlsaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXZpY2VQb29sQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRldmljZVBvb2xBcm5cIjoge30sXG4gICAgICAgICAgXCJhcHBBcm5cIjoge30sXG4gICAgICAgICAgXCJ0ZXN0VHlwZVwiOiB7fSxcbiAgICAgICAgICBcInRlc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbXBhdGlibGVEZXZpY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbmNvbXBhdGlibGVEZXZpY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Sm9iXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXROZXR3b3JrUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5ldHdvcmtQcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE9mZmVyaW5nU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImN1cnJlbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRQZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFByb2plY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlbW90ZUFjY2Vzc1Nlc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZW1vdGVBY2Nlc3NTZXNzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSdW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFN1aXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3VpdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRlc3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0ZXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRVcGxvYWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFZQQ0VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkluc3RhbGxUb1JlbW90ZUFjY2Vzc1Nlc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlbW90ZUFjY2Vzc1Nlc3Npb25Bcm5cIixcbiAgICAgICAgICBcImFwcEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZW1vdGVBY2Nlc3NTZXNzaW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwiYXBwQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwVXBsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QXJ0aWZhY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIixcbiAgICAgICAgICBcInR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJleHRlbnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJ1cmxcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGV2aWNlSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRldmljZUluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERldmljZVBvb2xzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRldmljZVBvb2xzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERldmljZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGV2aWNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW5zdGFuY2VQcm9maWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZVByb2ZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEpvYnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3ROZXR3b3JrUHJvZmlsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV0d29ya1Byb2ZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdE9mZmVyaW5nUHJvbW90aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvZmZlcmluZ1Byb21vdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0T2ZmZXJpbmdUcmFuc2FjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib2ZmZXJpbmdUcmFuc2FjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdE9mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvZmZlcmluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFByb2plY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlbW90ZUFjY2Vzc1Nlc3Npb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVtb3RlQWNjZXNzU2Vzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJ1bnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydW5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzelwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTYW1wbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2FtcGxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInVybFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdWl0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdWl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRlc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGVzdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ2XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFVuaXF1ZVByb2JsZW1zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidW5pcXVlUHJvYmxlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJwcm9ibGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInJ1blwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiam9iXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdWl0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGVzdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGV2aWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXN1bHRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFVwbG9hZHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1cGxvYWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RWUENFQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1cmNoYXNlT2ZmZXJpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcInF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJvZmZlcmluZ1Byb21vdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib2ZmZXJpbmdUcmFuc2FjdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVuZXdPZmZlcmluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwicXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm9mZmVyaW5nVHJhbnNhY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1OFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjaGVkdWxlUnVuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcm9qZWN0QXJuXCIsXG4gICAgICAgICAgXCJkZXZpY2VQb29sQXJuXCIsXG4gICAgICAgICAgXCJ0ZXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RBcm5cIjoge30sXG4gICAgICAgICAgXCJhcHBBcm5cIjoge30sXG4gICAgICAgICAgXCJkZXZpY2VQb29sQXJuXCI6IHt9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRlc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4ZWN1dGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImpvYlRpbWVvdXRNaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhY2NvdW50c0NsZWFudXBcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFwcFBhY2thZ2VzQ2xlYW51cFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic2tpcEFwcFJlc2lnblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicnVuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wUmVtb3RlQWNjZXNzU2Vzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlbW90ZUFjY2Vzc1Nlc3Npb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BSdW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURldmljZUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwicHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgICBcImxhYmVsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGV2aWNlSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURldmljZVBvb2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXZpY2VQb29sXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInBhY2thZ2VDbGVhbnVwXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleGNsdWRlQXBwUGFja2FnZXNGcm9tQ2xlYW51cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWJvb3RBZnRlclVzZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZU5ldHdvcmtQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICBcInVwbGlua0JhbmR3aWR0aEJpdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvd25saW5rQmFuZHdpZHRoQml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXBsaW5rRGVsYXlNc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG93bmxpbmtEZWxheU1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1cGxpbmtKaXR0ZXJNc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG93bmxpbmtKaXR0ZXJNc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXBsaW5rTG9zc1BlcmNlbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvd25saW5rTG9zc1BlcmNlbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5ldHdvcmtQcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVByb2plY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVmYXVsdEpvYlRpbWVvdXRNaW51dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVZQQ0VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwidnBjZVNlcnZpY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic2VydmljZURuc05hbWVcIjoge30sXG4gICAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvbkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgIFwib3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwicGFja2FnZUNsZWFudXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4Y2x1ZGVBcHBQYWNrYWdlc0Zyb21DbGVhbnVwXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlYm9vdEFmdGVyVXNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInVwbGlua0JhbmR3aWR0aEJpdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRvd25saW5rQmFuZHdpZHRoQml0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXBsaW5rRGVsYXlNc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZG93bmxpbmtEZWxheU1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1cGxpbmtKaXR0ZXJNc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZG93bmxpbmtKaXR0ZXJNc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXBsaW5rTG9zc1BlcmNlbnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImRvd25saW5rTG9zc1BlcmNlbnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZWZhdWx0Sm9iVGltZW91dE1pbnV0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzExXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJyZXN1bHRcIjoge30sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJzdGFydGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0b3BwZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGV2aWNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgXCJyZW1vdGVEZWJ1Z0VuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcInJlbW90ZVJlY29yZEVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcInJlbW90ZVJlY29yZEFwcEFyblwiOiB7fSxcbiAgICAgICAgXCJob3N0QWRkcmVzc1wiOiB7fSxcbiAgICAgICAgXCJjbGllbnRJZFwiOiB7fSxcbiAgICAgICAgXCJiaWxsaW5nTWV0aG9kXCI6IHt9LFxuICAgICAgICBcImRldmljZU1pbnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICB9LFxuICAgICAgICBcImVuZHBvaW50XCI6IHt9LFxuICAgICAgICBcImRldmljZVVkaWRcIjoge30sXG4gICAgICAgIFwiaW50ZXJhY3Rpb25Nb2RlXCI6IHt9LFxuICAgICAgICBcInNraXBBcHBSZXNpZ25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwibWFudWZhY3R1cmVyXCI6IHt9LFxuICAgICAgICBcIm1vZGVsXCI6IHt9LFxuICAgICAgICBcIm1vZGVsSWRcIjoge30sXG4gICAgICAgIFwiZm9ybUZhY3RvclwiOiB7fSxcbiAgICAgICAgXCJwbGF0Zm9ybVwiOiB7fSxcbiAgICAgICAgXCJvc1wiOiB7fSxcbiAgICAgICAgXCJjcHVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImZyZXF1ZW5jeVwiOiB7fSxcbiAgICAgICAgICAgIFwiYXJjaGl0ZWN0dXJlXCI6IHt9LFxuICAgICAgICAgICAgXCJjbG9ja1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInJlc29sdXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIndpZHRoXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiaGVhcFNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1lbW9yeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW1hZ2VcIjoge30sXG4gICAgICAgIFwiY2FycmllclwiOiB7fSxcbiAgICAgICAgXCJyYWRpb1wiOiB7fSxcbiAgICAgICAgXCJyZW1vdGVBY2Nlc3NFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZW1vdGVEZWJ1Z0VuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImZsZWV0VHlwZVwiOiB7fSxcbiAgICAgICAgXCJmbGVldE5hbWVcIjoge30sXG4gICAgICAgIFwiaW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwiZGV2aWNlQXJuXCI6IHt9LFxuICAgICAgICBcImxhYmVsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInVkaWRcIjoge30sXG4gICAgICAgIFwiaW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRvdGFsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGVyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidW5tZXRlcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJ1cmxcIjoge30sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge30sXG4gICAgICAgIFwiY29udGVudFR5cGVcIjoge30sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwidnBjZVNlcnZpY2VOYW1lXCI6IHt9LFxuICAgICAgICBcInNlcnZpY2VEbnNOYW1lXCI6IHt9LFxuICAgICAgICBcInZwY2VDb25maWd1cmF0aW9uRGVzY3JpcHRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJ0ZXN0UGFja2FnZUFyblwiOiB7fSxcbiAgICAgICAgXCJmaWx0ZXJcIjoge30sXG4gICAgICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMydlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZXh0cmFEYXRhUGFja2FnZUFyblwiOiB7fSxcbiAgICAgICAgXCJuZXR3b3JrUHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgXCJsb2NhbGVcIjoge30sXG4gICAgICAgIFwibG9jYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICB9LFxuICAgICAgICBcInZwY2VDb25maWd1cmF0aW9uQXJuc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjdXN0b21lckFydGlmYWN0UGF0aHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMnhcIlxuICAgICAgICB9LFxuICAgICAgICBcInJhZGlvc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXV4aWxpYXJ5QXBwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJiaWxsaW5nTWV0aG9kXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcImxhdGl0dWRlXCIsXG4gICAgICAgIFwibG9uZ2l0dWRlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImxhdGl0dWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcImxvbmdpdHVkZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlvc1BhdGhzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJhbmRyb2lkUGF0aHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcImRldmljZUhvc3RQYXRoc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ3aWZpXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJibHVldG9vdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5mY1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ3BzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRldmljZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tcGF0aWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5jb21wYXRpYmlsaXR5TWVzc2FnZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInJlc3VsdFwiOiB7fSxcbiAgICAgICAgXCJzdGFydGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0b3BwZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY291bnRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2NcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiZGV2aWNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgXCJkZXZpY2VNaW51dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRvdGFsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXNzZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImZhaWxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwid2FybmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlcnJvcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdG9wcGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJza2lwcGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcIm9mZmVyaW5nXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJxdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZWZmZWN0aXZlT25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInBsYXRmb3JtXCI6IHt9LFxuICAgICAgICBcInJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY29zdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzcVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZnJlcXVlbmN5XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYW1vdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcImN1cnJlbmN5Q29kZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwicGxhdGZvcm1cIjoge30sXG4gICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwicmVzdWx0XCI6IHt9LFxuICAgICAgICBcInN0YXJ0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RvcHBlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb3VudGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJ0b3RhbEpvYnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbXBsZXRlZEpvYnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImJpbGxpbmdNZXRob2RcIjoge30sXG4gICAgICAgIFwiZGV2aWNlTWludXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmV0d29ya1Byb2ZpbGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGFyc2luZ1Jlc3VsdFVybFwiOiB7fSxcbiAgICAgICAgXCJyZXN1bHRDb2RlXCI6IHt9LFxuICAgICAgICBcInNlZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImFwcFVwbG9hZFwiOiB7fSxcbiAgICAgICAgXCJldmVudENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJqb2JUaW1lb3V0TWludXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGV2aWNlUG9vbEFyblwiOiB7fSxcbiAgICAgICAgXCJsb2NhbGVcIjoge30sXG4gICAgICAgIFwicmFkaW9zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzMxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3VzdG9tZXJBcnRpZmFjdFBhdGhzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3ZWJVcmxcIjoge30sXG4gICAgICAgIFwic2tpcEFwcFJlc2lnblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInJlc3VsdFwiOiB7fSxcbiAgICAgICAgXCJzdGFydGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0b3BwZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY291bnRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2NcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiZGV2aWNlTWludXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInJlc3VsdFwiOiB7fSxcbiAgICAgICAgXCJzdGFydGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0b3BwZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY291bnRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2NcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiZGV2aWNlTWludXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzU4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJvZmZlcmluZ1N0YXR1c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMza1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHJhbnNhY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgXCJvZmZlcmluZ1Byb21vdGlvbklkXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWRPblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb3N0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNxXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiR2V0T2ZmZXJpbmdTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBbXG4gICAgICAgIFwiY3VycmVudFwiLFxuICAgICAgICBcIm5leHRQZXJpb2RcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJMaXN0QXJ0aWZhY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJhcnRpZmFjdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0RGV2aWNlUG9vbHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImRldmljZVBvb2xzXCJcbiAgICB9LFxuICAgIFwiTGlzdERldmljZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImRldmljZXNcIlxuICAgIH0sXG4gICAgXCJMaXN0Sm9ic1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiam9ic1wiXG4gICAgfSxcbiAgICBcIkxpc3RPZmZlcmluZ1RyYW5zYWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwib2ZmZXJpbmdUcmFuc2FjdGlvbnNcIlxuICAgIH0sXG4gICAgXCJMaXN0T2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJvZmZlcmluZ3NcIlxuICAgIH0sXG4gICAgXCJMaXN0UHJvamVjdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInByb2plY3RzXCJcbiAgICB9LFxuICAgIFwiTGlzdFJ1bnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInJ1bnNcIlxuICAgIH0sXG4gICAgXCJMaXN0U2FtcGxlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwic2FtcGxlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTdWl0ZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInN1aXRlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RUZXN0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwidGVzdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0VW5pcXVlUHJvYmxlbXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInVuaXF1ZVByb2JsZW1zXCJcbiAgICB9LFxuICAgIFwiTGlzdFVwbG9hZHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInVwbG9hZHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTItMTAtMjVcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZGlyZWN0Y29ubmVjdFwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIERpcmVjdCBDb25uZWN0XCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIk92ZXJ0dXJlU2VydmljZVwiLFxuICAgIFwidWlkXCI6IFwiZGlyZWN0Y29ubmVjdC0yMDEyLTEwLTI1XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFsbG9jYXRlQ29ubmVjdGlvbk9uSW50ZXJjb25uZWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJiYW5kd2lkdGhcIixcbiAgICAgICAgICBcImNvbm5lY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJvd25lckFjY291bnRcIixcbiAgICAgICAgICBcImludGVyY29ubmVjdElkXCIsXG4gICAgICAgICAgXCJ2bGFuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJhbmR3aWR0aFwiOiB7fSxcbiAgICAgICAgICBcImNvbm5lY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwib3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIjoge30sXG4gICAgICAgICAgXCJ2bGFuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJBbGxvY2F0ZUhvc3RlZENvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiLFxuICAgICAgICAgIFwib3duZXJBY2NvdW50XCIsXG4gICAgICAgICAgXCJiYW5kd2lkdGhcIixcbiAgICAgICAgICBcImNvbm5lY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJ2bGFuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIm93bmVyQWNjb3VudFwiOiB7fSxcbiAgICAgICAgICBcImJhbmR3aWR0aFwiOiB7fSxcbiAgICAgICAgICBcImNvbm5lY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwidmxhblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFsbG9jYXRlUHJpdmF0ZVZpcnR1YWxJbnRlcmZhY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiLFxuICAgICAgICAgIFwib3duZXJBY2NvdW50XCIsXG4gICAgICAgICAgXCJuZXdQcml2YXRlVmlydHVhbEludGVyZmFjZUFsbG9jYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwib3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICAgIFwibmV3UHJpdmF0ZVZpcnR1YWxJbnRlcmZhY2VBbGxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZU5hbWVcIixcbiAgICAgICAgICAgICAgXCJ2bGFuXCIsXG4gICAgICAgICAgICAgIFwiYXNuXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcInZsYW5cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFzblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXV0aEtleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJhbWF6b25BZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcImFkZHJlc3NGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwiY3VzdG9tZXJBZGRyZXNzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBbGxvY2F0ZVB1YmxpY1ZpcnR1YWxJbnRlcmZhY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiLFxuICAgICAgICAgIFwib3duZXJBY2NvdW50XCIsXG4gICAgICAgICAgXCJuZXdQdWJsaWNWaXJ0dWFsSW50ZXJmYWNlQWxsb2NhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJvd25lckFjY291bnRcIjoge30sXG4gICAgICAgICAgXCJuZXdQdWJsaWNWaXJ0dWFsSW50ZXJmYWNlQWxsb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VOYW1lXCIsXG4gICAgICAgICAgICAgIFwidmxhblwiLFxuICAgICAgICAgICAgICBcImFzblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ2bGFuXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhc25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImF1dGhLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiYW1hem9uQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJjdXN0b21lckFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiYWRkcmVzc0ZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJyb3V0ZUZpbHRlclByZWZpeGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVDb25uZWN0aW9uV2l0aExhZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCIsXG4gICAgICAgICAgXCJsYWdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJsYWdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVIb3N0ZWRDb25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIixcbiAgICAgICAgICBcInBhcmVudENvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJwYXJlbnRDb25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlVmlydHVhbEludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCIsXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbmZpcm1Db25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvblN0YXRlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29uZmlybVByaXZhdGVWaXJ0dWFsSW50ZXJmYWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlU3RhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb25maXJtUHVibGljVmlydHVhbEludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VTdGF0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUJHUFBlZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgIFwibmV3QkdQUGVlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiYXNuXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhdXRoS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcImFkZHJlc3NGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwiYW1hem9uQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJjdXN0b21lckFkZHJlc3NcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDb25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2NhdGlvblwiLFxuICAgICAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICAgICAgXCJjb25uZWN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7fSxcbiAgICAgICAgICBcImJhbmR3aWR0aFwiOiB7fSxcbiAgICAgICAgICBcImNvbm5lY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGFnSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGlyZWN0Q29ubmVjdEdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheU5hbWVcIjoge30sXG4gICAgICAgICAgXCJhbWF6b25TaWRlQXNuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGlyZWN0Q29ubmVjdEdhdGV3YXlBc3NvY2lhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiLFxuICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5QXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUludGVyY29ubmVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0TmFtZVwiLFxuICAgICAgICAgIFwiYmFuZHdpZHRoXCIsXG4gICAgICAgICAgXCJsb2NhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnRlcmNvbm5lY3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYmFuZHdpZHRoXCI6IHt9LFxuICAgICAgICAgIFwibG9jYXRpb25cIjoge30sXG4gICAgICAgICAgXCJsYWdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzF3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTGFnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJudW1iZXJPZkNvbm5lY3Rpb25zXCIsXG4gICAgICAgICAgXCJsb2NhdGlvblwiLFxuICAgICAgICAgIFwiY29ubmVjdGlvbnNCYW5kd2lkdGhcIixcbiAgICAgICAgICBcImxhZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibnVtYmVyT2ZDb25uZWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9jYXRpb25cIjoge30sXG4gICAgICAgICAgXCJjb25uZWN0aW9uc0JhbmR3aWR0aFwiOiB7fSxcbiAgICAgICAgICBcImxhZ05hbWVcIjoge30sXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVByaXZhdGVWaXJ0dWFsSW50ZXJmYWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIixcbiAgICAgICAgICBcIm5ld1ByaXZhdGVWaXJ0dWFsSW50ZXJmYWNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIm5ld1ByaXZhdGVWaXJ0dWFsSW50ZXJmYWNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZU5hbWVcIixcbiAgICAgICAgICAgICAgXCJ2bGFuXCIsXG4gICAgICAgICAgICAgIFwiYXNuXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcInZsYW5cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFzblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXV0aEtleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJhbWF6b25BZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcImN1c3RvbWVyQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJhZGRyZXNzRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICBcInZpcnR1YWxHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUHVibGljVmlydHVhbEludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCIsXG4gICAgICAgICAgXCJuZXdQdWJsaWNWaXJ0dWFsSW50ZXJmYWNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIm5ld1B1YmxpY1ZpcnR1YWxJbnRlcmZhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlTmFtZVwiLFxuICAgICAgICAgICAgICBcInZsYW5cIixcbiAgICAgICAgICAgICAgXCJhc25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwidmxhblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXNuXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhdXRoS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcImFtYXpvbkFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiY3VzdG9tZXJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcImFkZHJlc3NGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwicm91dGVGaWx0ZXJQcmVmaXhlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQkdQUGVlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgICAgXCJhc25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImN1c3RvbWVyQWRkcmVzc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29ubmVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEaXJlY3RDb25uZWN0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURpcmVjdENvbm5lY3RHYXRld2F5QXNzb2NpYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIixcbiAgICAgICAgICBcInZpcnR1YWxHYXRld2F5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcInZpcnR1YWxHYXRld2F5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUFzc29jaWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJbnRlcmNvbm5lY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImludGVyY29ubmVjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImludGVyY29ubmVjdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0U3RhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVMYWdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxhZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxhZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWaXJ0dWFsSW50ZXJmYWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZVN0YXRlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25uZWN0aW9uTG9hXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwicHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibG9hQ29udGVudFR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2FcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMycFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25uZWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29ubmVjdGlvbnNPbkludGVyY29ubmVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEaXJlY3RDb25uZWN0R2F0ZXdheUFzc29jaWF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5QXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGlyZWN0Q29ubmVjdEdhdGV3YXlBdHRhY2htZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlBdHRhY2htZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlT3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXR0YWNobWVudFN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhdGVDaGFuZ2VFcnJvclwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGlyZWN0Q29ubmVjdEdhdGV3YXlzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIb3N0ZWRDb25uZWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnRlcmNvbm5lY3RMb2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImludGVyY29ubmVjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImludGVyY29ubmVjdElkXCI6IHt9LFxuICAgICAgICAgIFwicHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibG9hQ29udGVudFR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2FcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMycFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnRlcmNvbm5lY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImludGVyY29ubmVjdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibGFnSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwicHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibG9hQ29udGVudFR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMycFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9jYXRpb25zXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZVRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWaXJ0dWFsR2F0ZXdheXNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZpcnR1YWxHYXRld2F5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInZpcnR1YWxHYXRld2F5U3RhdGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZpcnR1YWxJbnRlcmZhY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYXNzb2NpYXRlQ29ubmVjdGlvbkZyb21MYWdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiLFxuICAgICAgICAgIFwibGFnSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwibGFnSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCIsXG4gICAgICAgICAgXCJ0YWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcInRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJ0YWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUxhZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibGFnSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibGFnSWRcIjoge30sXG4gICAgICAgICAgXCJsYWdOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibWluaW11bUxpbmtzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwib3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgXCJjb25uZWN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJjb25uZWN0aW9uU3RhdGVcIjoge30sXG4gICAgICAgIFwicmVnaW9uXCI6IHt9LFxuICAgICAgICBcImxvY2F0aW9uXCI6IHt9LFxuICAgICAgICBcImJhbmR3aWR0aFwiOiB7fSxcbiAgICAgICAgXCJ2bGFuXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXJ0bmVyTmFtZVwiOiB7fSxcbiAgICAgICAgXCJsb2FJc3N1ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFnSWRcIjoge30sXG4gICAgICAgIFwiYXdzRGV2aWNlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJvd25lckFjY291bnRcIjoge30sXG4gICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICBcImxvY2F0aW9uXCI6IHt9LFxuICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJ2bGFuXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhc25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImFtYXpvblNpZGVBc25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhLZXlcIjoge30sXG4gICAgICAgIFwiYW1hem9uQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgXCJjdXN0b21lckFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiYWRkcmVzc0ZhbWlseVwiOiB7fSxcbiAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlU3RhdGVcIjoge30sXG4gICAgICAgIFwiY3VzdG9tZXJSb3V0ZXJDb25maWdcIjoge30sXG4gICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICBcInJvdXRlRmlsdGVyUHJlZml4ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYmdwUGVlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiYXNuXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhdXRoS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcImFkZHJlc3NGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwiYW1hem9uQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJjdXN0b21lckFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiYmdwUGVlclN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICBcImJncFN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2lkclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheU5hbWVcIjoge30sXG4gICAgICAgIFwiYW1hem9uU2lkZUFzblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwib3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5U3RhdGVcIjoge30sXG4gICAgICAgIFwic3RhdGVDaGFuZ2VFcnJvclwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIjoge30sXG4gICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheVJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheU93bmVyQWNjb3VudFwiOiB7fSxcbiAgICAgICAgXCJhc3NvY2lhdGlvblN0YXRlXCI6IHt9LFxuICAgICAgICBcInN0YXRlQ2hhbmdlRXJyb3JcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpbnRlcmNvbm5lY3RJZFwiOiB7fSxcbiAgICAgICAgXCJpbnRlcmNvbm5lY3ROYW1lXCI6IHt9LFxuICAgICAgICBcImludGVyY29ubmVjdFN0YXRlXCI6IHt9LFxuICAgICAgICBcInJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7fSxcbiAgICAgICAgXCJiYW5kd2lkdGhcIjoge30sXG4gICAgICAgIFwibG9hSXNzdWVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhZ0lkXCI6IHt9LFxuICAgICAgICBcImF3c0RldmljZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImNvbm5lY3Rpb25zQmFuZHdpZHRoXCI6IHt9LFxuICAgICAgICBcIm51bWJlck9mQ29ubmVjdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhZ0lkXCI6IHt9LFxuICAgICAgICBcIm93bmVyQWNjb3VudFwiOiB7fSxcbiAgICAgICAgXCJsYWdOYW1lXCI6IHt9LFxuICAgICAgICBcImxhZ1N0YXRlXCI6IHt9LFxuICAgICAgICBcImxvY2F0aW9uXCI6IHt9LFxuICAgICAgICBcInJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJtaW5pbXVtTGlua3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImF3c0RldmljZVwiOiB7fSxcbiAgICAgICAgXCJjb25uZWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyM1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWxsb3dzSG9zdGVkQ29ubmVjdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMycFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibG9hQ29udGVudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibG9hQ29udGVudFR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJjb25uZWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyM1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwia2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUNvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImNvbm5lY3Rpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25uZWN0aW9uc09uSW50ZXJjb25uZWN0XCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImNvbm5lY3Rpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnRlcmNvbm5lY3RzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImludGVyY29ubmVjdHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvY2F0aW9uc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJsb2NhdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZpcnR1YWxHYXRld2F5c1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJ2aXJ0dWFsR2F0ZXdheXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZpcnR1YWxJbnRlcmZhY2VzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInZpcnR1YWxJbnRlcmZhY2VzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDExLTEyLTA1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImR5bmFtb2RiXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMFwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiRHluYW1vREJcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBEeW5hbW9EQlwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiRHluYW1vREJcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiRHluYW1vREJfMjAxMTEyMDVcIixcbiAgICBcInVpZFwiOiBcImR5bmFtb2RiLTIwMTEtMTItMDVcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQmF0Y2hHZXRJdGVtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXF1ZXN0SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVxdWVzdEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVucHJvY2Vzc2VkS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaFdyaXRlSXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVxdWVzdEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcXVlc3RJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNwb25zZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnByb2Nlc3NlZEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRhYmxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIktleVNjaGVtYVwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUl0ZW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuVmFsdWVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhYmxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEl0ZW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzVG9HZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc2lzdGVudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkl0ZW1cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWJsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkVGFibGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0SXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJJdGVtXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkl0ZW1cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwZWN0ZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHVyblZhbHVlc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlF1ZXJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIkhhc2hLZXlWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzVG9HZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnNpc3RlbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGFzaEtleVZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJhbmdlS2V5Q29uZGl0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2FuSW5kZXhGb3J3YXJkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydEtleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdEV2YWx1YXRlZEtleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2NhblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNUb0dldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjYW5GaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjYW5uZWRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdEV2YWx1YXRlZEtleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZVVwZGF0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZVVwZGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5WYWx1ZXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzVG9HZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc2lzdGVudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSGFzaEtleUVsZW1lbnRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSGFzaEtleUVsZW1lbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmFuZ2VLZXlFbGVtZW50XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTXCI6IHt9LFxuICAgICAgICBcIk5cIjoge30sXG4gICAgICAgIFwiQlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU1NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIk5TXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJCU1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU29cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQdXRSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSXRlbVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJdGVtXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJEZWxldGVSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSGFzaEtleUVsZW1lbnRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSGFzaEtleUVsZW1lbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmFuZ2VLZXlFbGVtZW50XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQXR0cmlidXRlTmFtZVwiLFxuICAgICAgICBcIkF0dHJpYnV0ZVR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJBdHRyaWJ1dGVUeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJlYWRDYXBhY2l0eVVuaXRzXCIsXG4gICAgICAgIFwiV3JpdGVDYXBhY2l0eVVuaXRzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlYWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXcml0ZUNhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWJsZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvbkRhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTGFzdEluY3JlYXNlRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTGFzdERlY3JlYXNlRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTnVtYmVyT2ZEZWNyZWFzZXNUb2RheVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVhZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIldyaXRlQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWJsZVNpemVCeXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4aXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF0dHJpYnV0ZVZhbHVlTGlzdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkJhdGNoR2V0SXRlbVwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUmVxdWVzdEl0ZW1zXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIlVucHJvY2Vzc2VkS2V5c1wiXG4gICAgfSxcbiAgICBcIkxpc3RUYWJsZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIkV4Y2x1c2l2ZVN0YXJ0VGFibGVOYW1lXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkxhc3RFdmFsdWF0ZWRUYWJsZU5hbWVcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlRhYmxlTmFtZXNcIlxuICAgIH0sXG4gICAgXCJRdWVyeVwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiRXhjbHVzaXZlU3RhcnRLZXlcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTGFzdEV2YWx1YXRlZEtleVwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSXRlbXNcIlxuICAgIH0sXG4gICAgXCJTY2FuXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJFeGNsdXNpdmVTdGFydEtleVwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJMYXN0RXZhbHVhdGVkS2V5XCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJdGVtc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIlRhYmxlRXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMjAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVGFibGVcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMjUsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQUNUSVZFXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlRhYmxlLlRhYmxlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlRhYmxlTm90RXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMjAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVGFibGVcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMjUsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEyLTA4LTEwXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImR5bmFtb2RiXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMFwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiRHluYW1vREJcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBEeW5hbW9EQlwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiRHluYW1vREJcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiRHluYW1vREJfMjAxMjA4MTBcIixcbiAgICBcInVpZFwiOiBcImR5bmFtb2RiLTIwMTItMDgtMTBcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQmF0Y2hHZXRJdGVtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXF1ZXN0SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVxdWVzdEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHVybkNvbnN1bWVkQ2FwYWNpdHlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNwb25zZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnByb2Nlc3NlZEtleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaFdyaXRlSXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVxdWVzdEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcXVlc3RJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuQ29uc3VtZWRDYXBhY2l0eVwiOiB7fSxcbiAgICAgICAgICBcIlJldHVybkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVucHJvY2Vzc2VkSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQmFja3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIkJhY2t1cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhY2t1cERldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUdsb2JhbFRhYmxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2xvYmFsVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2xvYmFsVGFibGVEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF0dHJpYnV0ZURlZmluaXRpb25zXCIsXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIktleVNjaGVtYVwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZURlZmluaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJLZXlTY2hlbWFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCIsXG4gICAgICAgICAgICAgICAgXCJQcm9qZWN0aW9uXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvamVjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCIsXG4gICAgICAgICAgICAgICAgXCJQcm9qZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm9qZWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RyZWFtU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQmFja3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYWNrdXBBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFja3VwQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFja3VwRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUl0ZW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uYWxPcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIlJldHVyblZhbHVlc1wiOiB7fSxcbiAgICAgICAgICBcIlJldHVybkNvbnN1bWVkQ2FwYWNpdHlcIjoge30sXG4gICAgICAgICAgXCJSZXR1cm5JdGVtQ29sbGVjdGlvbk1ldHJpY3NcIjoge30sXG4gICAgICAgICAgXCJDb25kaXRpb25FeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJdGVtQ29sbGVjdGlvbk1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRhYmxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVCYWNrdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhY2t1cEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYWNrdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYWNrdXBEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb250aW51b3VzQmFja3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnRpbnVvdXNCYWNrdXBzRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlR2xvYmFsVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHbG9iYWxUYWJsZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUdsb2JhbFRhYmxlU2V0dGluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGltaXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY291bnRNYXhSZWFkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjb3VudE1heFdyaXRlQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFibGVNYXhSZWFkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFibGVNYXhXcml0ZUNhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUaW1lVG9MaXZlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGltZVRvTGl2ZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJdGVtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1RvR2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnNpc3RlbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5Db25zdW1lZENhcGFjaXR5XCI6IHt9LFxuICAgICAgICAgIFwiUHJvamVjdGlvbkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJFeHByZXNzaW9uQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXRlbVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RCYWNrdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaW1lUmFuZ2VMb3dlckJvdW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRpbWVSYW5nZVVwcGVyQm91bmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRCYWNrdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYWNrdXBTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhYmxlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWJsZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJhY2t1cEFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJhY2t1cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCYWNrdXBDcmVhdGlvbkRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkJhY2t1cFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJhY2t1cFNpemVCeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdEV2YWx1YXRlZEJhY2t1cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RHbG9iYWxUYWJsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRHbG9iYWxUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiR2xvYmFsVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdEV2YWx1YXRlZEdsb2JhbFRhYmxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWJsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkVGFibGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NPZlJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1NlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEl0ZW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiSXRlbVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJJdGVtXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuQ29uc3VtZWRDYXBhY2l0eVwiOiB7fSxcbiAgICAgICAgICBcIlJldHVybkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiOiB7fSxcbiAgICAgICAgICBcIkNvbmRpdGlvbmFsT3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJDb25kaXRpb25FeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJdGVtQ29sbGVjdGlvbk1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlF1ZXJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VsZWN0XCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1RvR2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zaXN0ZW50UmVhZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5Q29uZGl0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWVyeUZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uYWxPcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIlNjYW5JbmRleEZvcndhcmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHVybkNvbnN1bWVkQ2FwYWNpdHlcIjoge30sXG4gICAgICAgICAgXCJQcm9qZWN0aW9uRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlckV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJLZXlDb25kaXRpb25FeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2FubmVkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RFdmFsdWF0ZWRLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlVGFibGVGcm9tQmFja3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYXJnZXRUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIkJhY2t1cEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlVGFibGVUb1BvaW50SW5UaW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIlRhcmdldFRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJVc2VMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzdG9yZURhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjYW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzVG9HZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlbGVjdFwiOiB7fSxcbiAgICAgICAgICBcIlNjYW5GaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1Z1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbmRpdGlvbmFsT3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydEtleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5Db25zdW1lZENhcGFjaXR5XCI6IHt9LFxuICAgICAgICAgIFwiVG90YWxTZWdtZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VnbWVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvamVjdGlvbkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnNpc3RlbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2Nhbm5lZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNvbnRpbnVvdXNCYWNrdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIlBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnRpbnVvdXNCYWNrdXBzRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUdsb2JhbFRhYmxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIlJlcGxpY2FVcGRhdGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2FVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDcmVhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpb25OYW1lXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlJlZ2lvbk5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVsZXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiUmVnaW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUdsb2JhbFRhYmxlU2V0dGluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJHbG9iYWxUYWJsZVByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHbG9iYWxUYWJsZUdsb2JhbFNlY29uZGFyeUluZGV4U2V0dGluZ3NVcGRhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxpY2FTZXR0aW5nc1VwZGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlJlZ2lvbk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVnaW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlcGxpY2FQcm92aXNpb25lZFJlYWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFJlYWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUl0ZW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uYWxPcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIlJldHVyblZhbHVlc1wiOiB7fSxcbiAgICAgICAgICBcIlJldHVybkNvbnN1bWVkQ2FwYWNpdHlcIjoge30sXG4gICAgICAgICAgXCJSZXR1cm5JdGVtQ29sbGVjdGlvbk1ldHJpY3NcIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25BdHRyaWJ1dGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXRlbUNvbGxlY3Rpb25NZXRyaWNzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZURlZmluaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdsb2JhbFNlY29uZGFyeUluZGV4VXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVXBkYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmRcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIktleVNjaGVtYVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlByb2plY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvamVjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWxldGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0cmVhbVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRpbWVUb0xpdmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiVGltZVRvTGl2ZVNwZWNpZmljYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGltZVRvTGl2ZVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2cVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzVG9HZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc2lzdGVudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2plY3Rpb25FeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNcIjoge30sXG4gICAgICAgIFwiTlwiOiB7fSxcbiAgICAgICAgXCJCXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTU1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTlNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIkJTXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk1cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk5VTExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkJPT0xcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgIFwiQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWJsZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMb2NhbFNlY29uZGFyeUluZGV4ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlB1dFJlcXVlc3RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJdGVtXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkl0ZW1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJEZWxldGVSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkl0ZW1Db2xsZWN0aW9uS2V5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlNpemVFc3RpbWF0ZVJhbmdlR0JcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJCYWNrdXBBcm5cIixcbiAgICAgICAgXCJCYWNrdXBOYW1lXCIsXG4gICAgICAgIFwiQmFja3VwU3RhdHVzXCIsXG4gICAgICAgIFwiQmFja3VwQ3JlYXRpb25EYXRlVGltZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCYWNrdXBBcm5cIjoge30sXG4gICAgICAgIFwiQmFja3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJCYWNrdXBTaXplQnl0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJhY2t1cFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJCYWNrdXBDcmVhdGlvbkRhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnaW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkdsb2JhbFRhYmxlQXJuXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR2xvYmFsVGFibGVTdGF0dXNcIjoge30sXG4gICAgICAgIFwiR2xvYmFsVGFibGVOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCIsXG4gICAgICAgICAgXCJLZXlUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJLZXlUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQcm9qZWN0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgXCJOb25LZXlBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSZWFkQ2FwYWNpdHlVbml0c1wiLFxuICAgICAgICBcIldyaXRlQ2FwYWNpdHlVbml0c1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZWFkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiV3JpdGVDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0cmVhbUVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0cmVhbVZpZXdUeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMybFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXR0cmlidXRlRGVmaW5pdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJLZXlTY2hlbWFcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhYmxlU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWJsZVNpemVCeXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWJsZUFyblwiOiB7fSxcbiAgICAgICAgXCJUYWJsZUlkXCI6IHt9LFxuICAgICAgICBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9qZWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbmRleFNpemVCeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbmRleEFyblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJHbG9iYWxTZWNvbmRhcnlJbmRleGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJLZXlTY2hlbWFcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb2plY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluZGV4U3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkJhY2tmaWxsaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluZGV4U2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluZGV4QXJuXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0cmVhbVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVzdFN0cmVhbUxhYmVsXCI6IHt9LFxuICAgICAgICBcIkxhdGVzdFN0cmVhbUFyblwiOiB7fSxcbiAgICAgICAgXCJSZXN0b3JlU3VtbWFyeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlJlc3RvcmVEYXRlVGltZVwiLFxuICAgICAgICAgICAgXCJSZXN0b3JlSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJTb3VyY2VCYWNrdXBBcm5cIjoge30sXG4gICAgICAgICAgICBcIlNvdXJjZVRhYmxlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJSZXN0b3JlRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVzdG9yZUluUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU1NFRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTGFzdEluY3JlYXNlRGF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdERlY3JlYXNlRGF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTnVtYmVyT2ZEZWNyZWFzZXNUb2RheVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVhZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIldyaXRlQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU1NFVHlwZVwiOiB7fSxcbiAgICAgICAgXCJLTVNNYXN0ZXJLZXlBcm5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCYWNrdXBEZXRhaWxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTb3VyY2VUYWJsZURldGFpbHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICAgIFwiVGFibGVJZFwiLFxuICAgICAgICAgICAgXCJLZXlTY2hlbWFcIixcbiAgICAgICAgICAgIFwiVGFibGVDcmVhdGlvbkRhdGVUaW1lXCIsXG4gICAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgICBcIlRhYmxlSWRcIjoge30sXG4gICAgICAgICAgICBcIlRhYmxlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJUYWJsZVNpemVCeXRlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUYWJsZUNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtQ291bnRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU291cmNlVGFibGVGZWF0dXJlRGV0YWlsc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTG9jYWxTZWNvbmRhcnlJbmRleGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJLZXlTY2hlbWFcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlByb2plY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkdsb2JhbFNlY29uZGFyeUluZGV4ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiUHJvamVjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdHJlYW1EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVGltZVRvTGl2ZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTU0VEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRpbWVUb0xpdmVTdGF0dXNcIjoge30sXG4gICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4aXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM29cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM29cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDb250aW51b3VzQmFja3Vwc1N0YXR1c1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb250aW51b3VzQmFja3Vwc1N0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQb2ludEluVGltZVJlY292ZXJ5RGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlBvaW50SW5UaW1lUmVjb3ZlcnlTdGF0dXNcIjoge30sXG4gICAgICAgICAgICBcIkVhcmxpZXN0UmVzdG9yYWJsZURhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkxhdGVzdFJlc3RvcmFibGVEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0OVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlZ2lvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnaW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2FTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhUHJvdmlzaW9uZWRSZWFkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGljYVByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXBsaWNhR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbmRleFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkUmVhZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkV3JpdGVDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNTZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF0dHJpYnV0ZVZhbHVlTGlzdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzb1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1Z1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNWZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJFbmFibGVkXCIsXG4gICAgICAgIFwiQXR0cmlidXRlTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNi0xMS0xNVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJlYzJcIixcbiAgICBcInByb3RvY29sXCI6IFwiZWMyXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIEVDMlwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEVsYXN0aWMgQ29tcHV0ZSBDbG91ZFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiRUMyXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImVjMi0yMDE2LTExLTE1XCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vZWMyLmFtYXpvbmF3cy5jb20vZG9jLzIwMTYtMTEtMTVcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWNjZXB0UmVzZXJ2ZWRJbnN0YW5jZXNFeGNoYW5nZVF1b3RlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0Q29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhcmdldENvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeGNoYW5nZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhjaGFuZ2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFjY2VwdFZwY0VuZHBvaW50Q29ubmVjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlcnZpY2VJZFwiLFxuICAgICAgICAgIFwiVnBjRW5kcG9pbnRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlSWRcIjoge30sXG4gICAgICAgICAgXCJWcGNFbmRwb2ludElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjRW5kcG9pbnRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVuc3VjY2Vzc2Z1bFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5zdWNjZXNzZnVsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWNjZXB0VnBjUGVlcmluZ0Nvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBbGxvY2F0ZUFkZHJlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluXCI6IHt9LFxuICAgICAgICAgIFwiQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVibGljSXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvY2F0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvY2F0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb21haW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb21haW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBbGxvY2F0ZUhvc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIixcbiAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9QbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdXRvUGxhY2VtZW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJxdWFudGl0eVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RJZFNldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc2lnbklwdjZBZGRyZXNzZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcHY2QWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkFkZHJlc3NDb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwdjZBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc2VzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzaWduZWRJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzaWduZWRJcHY2QWRkcmVzc2VzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzaWduUHJpdmF0ZUlwQWRkcmVzc2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxsb3dSZWFzc2lnbm1lbnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvd1JlYXNzaWdubWVudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVBZGRyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJQdWJsaWNJcFwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93UmVhc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG93UmVhc3NvY2lhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVEaGNwT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGhjcE9wdGlvbnNJZFwiLFxuICAgICAgICAgIFwiVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGhjcE9wdGlvbnNJZFwiOiB7fSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIixcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZVJvdXRlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiLFxuICAgICAgICAgIFwiU3VibmV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm91dGVUYWJsZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlU3VibmV0Q2lkckJsb2NrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlVnBjQ2lkckJsb2NrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2tcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaWRyQmxvY2tcIjoge30sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2lkckJsb2NrQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRyQmxvY2tBc3NvY2lhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdHRhY2hDbGFzc2ljTGlua1ZwY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR3JvdXBzXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdHRhY2hJbnRlcm5ldEdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkludGVybmV0R2F0ZXdheUlkXCIsXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnRlcm5ldEdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImludGVybmV0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF0dGFjaE5ldHdvcmtJbnRlcmZhY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRldmljZUluZGV4XCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGV2aWNlSW5kZXhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXZpY2VJbmRleFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0YWNobWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXR0YWNoVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXZpY2VcIixcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIlZvbHVtZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRldmljZVwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXR0YWNoVnBuR2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjSWRcIixcbiAgICAgICAgICBcIlZwbkdhdGV3YXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIlZwbkdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0F0dGFjaG1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXV0aG9yaXplU2VjdXJpdHlHcm91cEVncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR3JvdXBJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcFBlcm1pc3Npb25zXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2lkcklwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkcklwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnJvbVBvcnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcm9tUG9ydFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwUHJvdG9jb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcFByb3RvY29sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVG9Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG9Qb3J0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlU2VjdXJpdHlHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZVNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic291cmNlU2VjdXJpdHlHcm91cE93bmVySWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdXRob3JpemVTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaWRySXBcIjoge30sXG4gICAgICAgICAgXCJGcm9tUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIklwUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9LFxuICAgICAgICAgIFwiVG9Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCdW5kbGVJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiU3RvcmFnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVuZGxlVGFza1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJ1bmRsZUluc3RhbmNlVGFza1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNhbmNlbEJ1bmRsZVRhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1bmRsZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1bmRsZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVuZGxlVGFza1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJ1bmRsZUluc3RhbmNlVGFza1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNhbmNlbENvbnZlcnNpb25UYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb252ZXJzaW9uVGFza0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnZlcnNpb25UYXNrSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb252ZXJzaW9uVGFza0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVhc29uTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlYXNvbk1lc3NhZ2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxFeHBvcnRUYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFeHBvcnRUYXNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhwb3J0VGFza0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwb3J0VGFza0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsSW1wb3J0VGFza1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYW5jZWxSZWFzb25cIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltcG9ydFRhc2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltcG9ydFRhc2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydFRhc2tJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZXZpb3VzU3RhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmV2aW91c1N0YXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNhbmNlbFJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdzU2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsU3BvdEZsZWV0UmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZHNcIixcbiAgICAgICAgICBcIlRlcm1pbmF0ZUluc3RhbmNlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZXJtaW5hdGVJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZXJtaW5hdGVJbnN0YW5jZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWNjZXNzZnVsRmxlZXRSZXF1ZXN0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Y2Nlc3NmdWxGbGVldFJlcXVlc3RTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkN1cnJlbnRTcG90RmxlZXRSZXF1ZXN0U3RhdGVcIixcbiAgICAgICAgICAgICAgICBcIlByZXZpb3VzU3BvdEZsZWV0UmVxdWVzdFN0YXRlXCIsXG4gICAgICAgICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ3VycmVudFNwb3RGbGVldFJlcXVlc3RTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbnRTcG90RmxlZXRSZXF1ZXN0U3RhdGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcmV2aW91c1Nwb3RGbGVldFJlcXVlc3RTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZXZpb3VzU3BvdEZsZWV0UmVxdWVzdFN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsRmxlZXRSZXF1ZXN0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bEZsZWV0UmVxdWVzdFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRXJyb3JcIixcbiAgICAgICAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFcnJvclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkNvZGVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxTcG90SW5zdGFuY2VSZXF1ZXN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3BvdEluc3RhbmNlUmVxdWVzdElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90SW5zdGFuY2VSZXF1ZXN0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2hcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3BvdEluc3RhbmNlUmVxdWVzdElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FuY2VsbGVkU3BvdEluc3RhbmNlUmVxdWVzdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90SW5zdGFuY2VSZXF1ZXN0U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb25maXJtUHJvZHVjdEluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJQcm9kdWN0Q29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdENvZGVcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPd25lcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3duZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlGcGdhSW1hZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZUZwZ2FJbWFnZUlkXCIsXG4gICAgICAgICAgXCJTb3VyY2VSZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VGcGdhSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnBnYUltYWdlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcGdhSW1hZ2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiU291cmNlSW1hZ2VJZFwiLFxuICAgICAgICAgIFwiU291cmNlUmVnaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmNyeXB0ZWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImttc0tleUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUltYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VSZWdpb25cIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlUmVnaW9uXCIsXG4gICAgICAgICAgXCJTb3VyY2VTbmFwc2hvdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25SZWdpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXN0aW5hdGlvblJlZ2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuY3J5cHRlZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia21zS2V5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVzaWduZWRVcmxcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVzaWduZWRVcmxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VSZWdpb25cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDdXN0b21lckdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJncEFzblwiLFxuICAgICAgICAgIFwiUHVibGljSXBcIixcbiAgICAgICAgICBcIlR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmdwQXNuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNJcFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklwQWRkcmVzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDdXN0b21lckdhdGV3YXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzeFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXN0b21lckdhdGV3YXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEZWZhdWx0U3VibmV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Ym5ldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURlZmF1bHRWcGNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEaGNwT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGhjcENvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRoY3BDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRoY3BDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmFsdWVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaGNwT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRoY3BPcHRpb25zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRWdyZXNzT25seUludGVybmV0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0bFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRmxlZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlQ29uZmlnc1wiLFxuICAgICAgICAgIFwiVGFyZ2V0Q2FwYWNpdHlTcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTcG90T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQWxsb2NhdGlvblN0cmF0ZWd5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3JcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhjZXNzQ2FwYWNpdHlUZXJtaW5hdGlvblBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlQ29uZmlnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPdmVycmlkZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJNYXhQcmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIldlaWdodGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0Q2FwYWNpdHlTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZXJtaW5hdGVJbnN0YW5jZXNXaXRoRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbGlkRnJvbVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZFVudGlsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxhY2VVbmhlYWx0aHlJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1NwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnU3BlY2lmaWNhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbGVldElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRmxvd0xvZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJMb2dzUGVybWlzc2lvbkFyblwiLFxuICAgICAgICAgIFwiTG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkc1wiLFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJUcmFmZmljVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkRlbGl2ZXJMb2dzUGVybWlzc2lvbkFyblwiOiB7fSxcbiAgICAgICAgICBcIkxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVHJhZmZpY1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmxvd0xvZ0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmxvd0xvZ0lkU2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVGcGdhSW1hZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklucHV0U3RvcmFnZUxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5wdXRTdG9yYWdlTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvZ3NTdG9yYWdlTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnBnYUltYWdlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcGdhSW1hZ2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZwZ2FJbWFnZUdsb2JhbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnBnYUltYWdlR2xvYmFsSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWhcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmxvY2tEZXZpY2VNYXBwaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb1JlYm9vdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5vUmVib290XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVJbnN0YW5jZUV4cG9ydFRhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cG9ydFRvUzNUYXNrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwb3J0VG9TM1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNvbnRhaW5lckZvcm1hdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb250YWluZXJGb3JtYXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRpc2tJbWFnZUZvcm1hdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaXNrSW1hZ2VGb3JtYXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzQnVja2V0XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInMzQnVja2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM1ByZWZpeFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzM1ByZWZpeFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRFbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldEVudmlyb25tZW50XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhwb3J0VGFza1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4cG9ydFRhc2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVJbnRlcm5ldEdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW50ZXJuZXRHYXRld2F5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJuZXRHYXRld2F5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlS2V5UGFpclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5RmluZ2VycHJpbnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlGaW5nZXJwcmludFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleU1hdGVyaWFsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5TWF0ZXJpYWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5TmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIixcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlRGF0YVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVEYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTGF1bmNoVGVtcGxhdGVWZXJzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZURhdGFcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVEYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZVZlcnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVOYXRHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGxvY2F0aW9uSWRcIixcbiAgICAgICAgICBcIlN1Ym5ldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmF0R2F0ZXdheVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hdEdhdGV3YXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVOZXR3b3JrQWNsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV0d29ya0FjbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdwXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVOZXR3b3JrQWNsRW50cnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVncmVzc1wiLFxuICAgICAgICAgIFwiTmV0d29ya0FjbElkXCIsXG4gICAgICAgICAgXCJQcm90b2NvbFwiLFxuICAgICAgICAgIFwiUnVsZUFjdGlvblwiLFxuICAgICAgICAgIFwiUnVsZU51bWJlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRyQmxvY2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFZ3Jlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlZ3Jlc3NcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJY21wVHlwZUNvZGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3dVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJY21wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXB2NkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZDaWRyQmxvY2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrQWNsSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrQWNsSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb3J0UmFuZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3dlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3J0UmFuZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm90b2NvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb3RvY29sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUnVsZUFjdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVBY3Rpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSdWxlTnVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZU51bWJlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU5ldHdvcmtJbnRlcmZhY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1Ym5ldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcHY2QWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkFkZHJlc3NDb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwdjZBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3NVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc2VzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgwXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCIsXG4gICAgICAgICAgXCJQZXJtaXNzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkF3c0FjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkF3c1NlcnZpY2VcIjoge30sXG4gICAgICAgICAgXCJQZXJtaXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnRlcmZhY2VQZXJtaXNzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOGVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJmYWNlUGVybWlzc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBsYWNlbWVudEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlN0cmF0ZWd5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RyYXRlZ3lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCIsXG4gICAgICAgICAgXCJQcmljZVNjaGVkdWxlc1wiLFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmljZVNjaGVkdWxlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaWNlU2NoZWR1bGVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbmN5Q29kZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpY2VcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRlcm1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZXJtXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nc1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJvdXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzdGluYXRpb25DaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXN0aW5hdGlvbkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uSXB2NkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uSXB2NkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdhdGV3YXlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmF0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmF0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm91dGVUYWJsZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSb3V0ZVRhYmxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUm91dGVUYWJsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlVGFibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiLFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiR3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JvdXBJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ1NwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnU3BlY2lmaWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzkzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3BvdERhdGFmZWVkU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3BvdERhdGFmZWVkU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOTdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdERhdGFmZWVkU3Vic2NyaXB0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3VibmV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaWRyQmxvY2tcIixcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJDaWRyQmxvY2tcIjoge30sXG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJuZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZXNcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOWRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5jcnlwdGVkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1NwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnU3BlY2lmaWNhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzlmXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVnBjXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaWRyQmxvY2tcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2lkckJsb2NrXCI6IHt9LFxuICAgICAgICAgIFwiQW1hem9uUHJvdmlkZWRJcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYW1hem9uUHJvdmlkZWRJcHY2Q2lkckJsb2NrXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUZW5hbmN5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUZW5hbmN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVnBjRW5kcG9pbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCIsXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0VuZHBvaW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lEb2N1bWVudFwiOiB7fSxcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJvdXRlVGFibGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlByaXZhdGVEbnNFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNFbmRwb2ludFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzluXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0VuZHBvaW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZwY0VuZHBvaW50Q29ubmVjdGlvbk5vdGlmaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbkFyblwiLFxuICAgICAgICAgIFwiQ29ubmVjdGlvbkV2ZW50c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlZwY0VuZHBvaW50SWRcIjoge30sXG4gICAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ29ubmVjdGlvbkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5dlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb25uZWN0aW9uTm90aWZpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZwY0VuZHBvaW50U2VydmljZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5ldHdvcmtMb2FkQmFsYW5jZXJBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXB0YW5jZVJlcXVpcmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrTG9hZEJhbGFuY2VyQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmV0d29ya0xvYWRCYWxhbmNlckFyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmljZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhMFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWcGNQZWVyaW5nQ29ubmVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZWVyT3duZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBlZXJPd25lcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVlclZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGVlclZwY0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBlZXJSZWdpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWcG5Db25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDdXN0b21lckdhdGV3YXlJZFwiLFxuICAgICAgICAgIFwiVHlwZVwiLFxuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkN1c3RvbWVyR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlZwbkdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvcHRpb25zXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdGljUm91dGVzT25seVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0aWNSb3V0ZXNPbmx5XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVHVubmVsT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlR1bm5lbEluc2lkZUNpZHJcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJlU2hhcmVkS2V5XCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwbkNvbm5lY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cG5Db25uZWN0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVnBuQ29ubmVjdGlvblJvdXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbkNpZHJCbG9ja1wiLFxuICAgICAgICAgIFwiVnBuQ29ubmVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uQ2lkckJsb2NrXCI6IHt9LFxuICAgICAgICAgIFwiVnBuQ29ubmVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVnBuR2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFtYXpvblNpZGVBc25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwbkdhdGV3YXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhb1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cG5HYXRld2F5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ3VzdG9tZXJHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDdXN0b21lckdhdGV3YXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDdXN0b21lckdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURoY3BPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaGNwT3B0aW9uc0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRoY3BPcHRpb25zSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5Db2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuQ29kZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZsZWV0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZHNcIixcbiAgICAgICAgICBcIlRlcm1pbmF0ZUluc3RhbmNlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZsZWV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXZcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmxlZXRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlcm1pbmF0ZUluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VjY2Vzc2Z1bEZsZWV0RGVsZXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VjY2Vzc2Z1bEZsZWV0RGVsZXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ3VycmVudEZsZWV0U3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW50RmxlZXRTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByZXZpb3VzRmxlZXRTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZXZpb3VzRmxlZXRTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZsZWV0SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbGVldElkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsRmxlZXREZWxldGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxGbGVldERlbGV0aW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVycm9yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmxlZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZsZWV0SWRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVGbG93TG9nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxvd0xvZ0lkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbG93TG9nSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGbG93TG9nSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZwZ2FJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnBnYUltYWdlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUludGVybmV0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW50ZXJuZXRHYXRld2F5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW50ZXJuZXRHYXRld2F5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnRlcm5ldEdhdGV3YXlJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUtleVBhaXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVMYXVuY2hUZW1wbGF0ZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWZXJzaW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JkXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhdW5jaFRlbXBsYXRlVmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxseURlbGV0ZWRMYXVuY2hUZW1wbGF0ZVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VjY2Vzc2Z1bGx5RGVsZXRlZExhdW5jaFRlbXBsYXRlVmVyc2lvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlTmFtZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZlcnNpb25OdW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uTnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsbHlEZWxldGVkTGF1bmNoVGVtcGxhdGVWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bGx5RGVsZXRlZExhdW5jaFRlbXBsYXRlVmVyc2lvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlTmFtZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZlcnNpb25OdW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uTnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzcG9uc2VFcnJvclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3BvbnNlRXJyb3JcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTmF0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmF0R2F0ZXdheUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hdEdhdGV3YXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hdEdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hdEdhdGV3YXlJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU5ldHdvcmtBY2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrQWNsSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrQWNsSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVOZXR3b3JrQWNsRW50cnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVncmVzc1wiLFxuICAgICAgICAgIFwiTmV0d29ya0FjbElkXCIsXG4gICAgICAgICAgXCJSdWxlTnVtYmVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVncmVzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bGVOdW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlTnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTmV0d29ya0ludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJGb3JjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQbGFjZW1lbnRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJvdXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzdGluYXRpb25DaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXN0aW5hdGlvbkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uSXB2NkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uSXB2NkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlVGFibGVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJvdXRlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU25hcHNob3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU3BvdERhdGFmZWVkU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN1Ym5ldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3VibmV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOWRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcGNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVnBjRW5kcG9pbnRDb25uZWN0aW9uTm90aWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbklkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25JZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVuc3VjY2Vzc2Z1bFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5zdWNjZXNzZnVsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVnBjRW5kcG9pbnRTZXJ2aWNlQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlcnZpY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZXJ2aWNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZwY0VuZHBvaW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjRW5kcG9pbnRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNFbmRwb2ludElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjRW5kcG9pbnRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVuc3VjY2Vzc2Z1bFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5zdWNjZXNzZnVsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVnBjUGVlcmluZ0Nvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcG5Db25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcG5Db25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBuQ29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVnBuQ29ubmVjdGlvblJvdXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbkNpZHJCbG9ja1wiLFxuICAgICAgICAgIFwiVnBuQ29ubmVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uQ2lkckJsb2NrXCI6IHt9LFxuICAgICAgICAgIFwiVnBuQ29ubmVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVnBuR2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwbkdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW1hZ2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZU5hbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRyaWJ1dGVOYW1lXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjb3VudEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY2NvdW50QXR0cmlidXRlU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRyaWJ1dGVOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0cmlidXRlVmFsdWVTZXRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRyaWJ1dGVWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWRkcmVzc2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNJcHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQdWJsaWNJcFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlB1YmxpY0lwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxsb2NhdGlvbklkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFsbG9jYXRpb25JZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFsbG9jYXRpb25JZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFkZHJlc3Nlc1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVibGljSXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBbGxvY2F0aW9uSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvY2F0aW9uSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRvbWFpblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvbWFpblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VPd25lcklkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZU93bmVySWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWdncmVnYXRlSWRGb3JtYXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VMb25nSWRzQWdncmVnYXRlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZUxvbmdJZHNBZ2dyZWdhdGVkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjd1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJab25lTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJab25lTmFtZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlpvbmVOYW1lXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lSW5mb1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInpvbmVTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVNldFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlZ2lvbk5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWdpb25OYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiWm9uZU5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ6b25lTmFtZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQnVuZGxlVGFza3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVuZGxlSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVuZGxlSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdW5kbGVJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdW5kbGVUYXNrc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJ1bmRsZUluc3RhbmNlVGFza3NTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsYXNzaWNMaW5rSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlc1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4M1wiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cFNldFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29udmVyc2lvblRhc2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnZlcnNpb25UYXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29udmVyc2lvblRhc2tJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb252ZXJzaW9uVGFza3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb252ZXJzaW9uVGFza3NcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkalwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUN1c3RvbWVyR2F0ZXdheXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3VzdG9tZXJHYXRld2F5SWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3VzdG9tZXJHYXRld2F5SWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDdXN0b21lckdhdGV3YXlJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDdXN0b21lckdhdGV3YXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VzdG9tZXJHYXRld2F5U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3hcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEaGNwT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaGNwT3B0aW9uc0lkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRoY3BPcHRpb25zSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaGNwT3B0aW9uc0lkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRoY3BPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGhjcE9wdGlvbnNTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0bFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVsYXN0aWNHcHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVsYXN0aWNHcHVJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFbGFzdGljR3B1SWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWxhc3RpY0dwdVNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVsYXN0aWNHcHVTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRWxhc3RpY0dwdUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbGFzdGljR3B1VHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVsYXN0aWNHcHVUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRWxhc3RpY0dwdUhlYWx0aFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVsYXN0aWNHcHVIZWFsdGhcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbGFzdGljR3B1U3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbGFzdGljR3B1U3RhdGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFeHBvcnRUYXNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeHBvcnRUYXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwb3J0VGFza0lkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXhwb3J0VGFza0lkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhwb3J0VGFza3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBvcnRUYXNrU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXNcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGbGVldEhpc3RvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIixcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGlzdG9yeVJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJoaXN0b3J5UmVjb3JkU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkV2ZW50SW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlbFwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJldmVudEluZm9ybWF0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnRUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGltZXN0YW1wXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhc3RFdmFsdWF0ZWRUaW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGbGVldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmxlZXRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0VGltZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGbGVldEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aXZlSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZW9cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWN0aXZlSW5zdGFuY2VTZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGbGVldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmxlZXRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRmxlZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRmxlZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGbGVldElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZsZWV0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZsZWV0U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGl2aXR5U3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWN0aXZpdHlTdGF0dXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlVGltZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmxlZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZsZWV0SWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGbGVldFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmxlZXRTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFeGNlc3NDYXBhY2l0eVRlcm1pbmF0aW9uUG9saWN5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhjZXNzQ2FwYWNpdHlUZXJtaW5hdGlvblBvbGljeVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZ1bGZpbGxlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnVsZmlsbGVkQ2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZ1bGZpbGxlZE9uRGVtYW5kQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmdWxmaWxsZWRPbkRlbWFuZENhcGFjaXR5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUNvbmZpZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZUNvbmZpZ3NcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVTcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiT3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3ZlcnJpZGVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1heFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UHJpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJXZWlnaHRlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwid2VpZ2h0ZWRDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0Q2FwYWNpdHlTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0Q2FwYWNpdHlTcGVjaWZpY2F0aW9uXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiVG90YWxUYXJnZXRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b3RhbFRhcmdldENhcGFjaXR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiT25EZW1hbmRUYXJnZXRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvbkRlbWFuZFRhcmdldENhcGFjaXR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3BvdFRhcmdldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RUYXJnZXRDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkRlZmF1bHRUYXJnZXRDYXBhY2l0eVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVmYXVsdFRhcmdldENhcGFjaXR5VHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGVybWluYXRlSW5zdGFuY2VzV2l0aEV4cGlyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZXJtaW5hdGVJbnN0YW5jZXNXaXRoRXhwaXJhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0eXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsaWRGcm9tXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRGcm9tXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWYWxpZFVudGlsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRVbnRpbFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVwbGFjZVVuaGVhbHRoeUluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcGxhY2VVbmhlYWx0aHlJbnN0YW5jZXNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcG90T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RPcHRpb25zXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQWxsb2NhdGlvblN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG9jYXRpb25TdHJhdGVneVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZsb3dMb2dzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmxvd0xvZ0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmxvd0xvZ0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxvd0xvZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbG93TG9nU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0aW9uVGltZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVsaXZlckxvZ3NFcnJvck1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxpdmVyTG9nc0Vycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlbGl2ZXJMb2dzUGVybWlzc2lvbkFyblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGl2ZXJMb2dzUGVybWlzc2lvbkFyblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlbGl2ZXJMb2dzU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsaXZlckxvZ3NTdGF0dXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGbG93TG9nSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbG93TG9nSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGbG93TG9nU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmxvd0xvZ1N0YXR1c1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxvZ0dyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxvZ0dyb3VwTmFtZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVHJhZmZpY1R5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0cmFmZmljVHlwZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRnBnYUltYWdlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnBnYUltYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGcGdhSW1hZ2VBdHRyaWJ1dGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcGdhSW1hZ2VBdHRyaWJ1dGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZwZ2FJbWFnZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGcGdhSW1hZ2VJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPd25lcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmalwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPd25lclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGcGdhSW1hZ2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnBnYUltYWdlU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZwZ2FJbWFnZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnBnYUltYWdlSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGcGdhSW1hZ2VHbG9iYWxJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZwZ2FJbWFnZUdsb2JhbElkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2hlbGxWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2hlbGxWZXJzaW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGNpSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwY2lJZFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkRldmljZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlZlbmRvcklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN1YnN5c3RlbUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN1YnN5c3RlbVZlbmRvcklkXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0ZVRpbWVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVwZGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGRhdGVUaW1lXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPd25lcklkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3duZXJJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk93bmVyQWxpYXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lckFsaWFzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdENvZGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmVcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdENvZGVzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlB1YmxpY1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSG9zdFJlc2VydmF0aW9uT2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4RHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdTZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvZmZlcmluZ1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW5jeUNvZGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImR1cmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSG91cmx5UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3VybHlQcmljZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlRmFtaWx5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VGYW1pbHlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPZmZlcmluZ0lkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib2ZmZXJpbmdJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBheW1lbnRPcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXltZW50T3B0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXBmcm9udFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBmcm9udFByaWNlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIb3N0UmVzZXJ2YXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSG9zdFJlc2VydmF0aW9uSWRTZXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0UmVzZXJ2YXRpb25TZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0UmVzZXJ2YXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb3VudFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbmN5Q29kZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHVyYXRpb25cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbmRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhvc3RJZFNldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2cyXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RJZFNldFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhvc3RSZXNlcnZhdGlvbklkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdFJlc2VydmF0aW9uSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIb3VybHlQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvdXJseVByaWNlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VGYW1pbHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUZhbWlseVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvZmZlcmluZ0lkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGF5bWVudE9wdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBheW1lbnRPcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXBmcm9udFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBmcm9udFByaWNlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIb3N0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3N0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZzVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXV0b1BsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dG9QbGFjZW1lbnRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJsZUNhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmxlQ2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBdmFpbGFibGVJbnN0YW5jZUNhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJsZUluc3RhbmNlQ2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXZhaWxhYmxlQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmxlQ2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUb3RhbENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvdGFsQ2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJBdmFpbGFibGVWQ3B1c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFibGVWQ3B1c1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIb3N0SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0SWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIb3N0UHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RQcm9wZXJ0aWVzXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29yZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29yZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTb2NrZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNvY2tldHNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJUb3RhbFZDcHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvdGFsVkNwdXNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIb3N0UmVzZXJ2YXRpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RSZXNlcnZhdGlvbklkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VzXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFsbG9jYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb2NhdGlvblRpbWVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlbGVhc2VUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVsZWFzZVRpbWVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSWFtSW5zdGFuY2VQcm9maWxlQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXNzb2NpYXRpb25JZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFzc29jaWF0aW9uSWRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWFtSW5zdGFuY2VQcm9maWxlQXNzb2NpYXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUlkRm9ybWF0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjd1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUlkZW50aXR5SWRGb3JtYXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByaW5jaXBhbEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmluY2lwYWxBcm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmluY2lwYWxBcm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjd1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUltYWdlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIixcbiAgICAgICAgICBcIkltYWdlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0RldmljZU1hcHBpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoUGVybWlzc2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2R1Y3RDb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3RDb2Rlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXJuZWxJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtlcm5lbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJhbWRpc2tJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJhbWRpc2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcmlvdk5ldFN1cHBvcnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcmlvdk5ldFN1cHBvcnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUltYWdlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeGVjdXRhYmxlVXNlcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeGVjdXRhYmxlQnlcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeGVjdXRhYmxlQnlcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW1hZ2VJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbWFnZUlkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW1hZ2VJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk93bmVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk93bmVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VzU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFyY2hpdGVjdHVyZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFyY2hpdGVjdHVyZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0aW9uRGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW1hZ2VMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlTG9jYXRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbWFnZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZVR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQdWJsaWNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc1B1YmxpY1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIktlcm5lbElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2VybmVsSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPd25lcklkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VPd25lcklkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGxhdGZvcm1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGF0Zm9ybVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb2R1Y3RDb2Rlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZlXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3RDb2Rlc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJhbWRpc2tJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJhbWRpc2tJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnclwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0RldmljZU1hcHBpbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5hU3VwcG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuYVN1cHBvcnRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIeXBlcnZpc29yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHlwZXJ2aXNvclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkltYWdlT3duZXJBbGlhc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlT3duZXJBbGlhc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUm9vdERldmljZU5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb290RGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJvb3REZXZpY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm9vdERldmljZVR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcmlvdk5ldFN1cHBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcmlvdk5ldFN1cHBvcnRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0ZVJlYXNvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2g1XCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlUmVhc29uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmlydHVhbGl6YXRpb25UeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmlydHVhbGl6YXRpb25UeXBlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbXBvcnRJbWFnZVRhc2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW1wb3J0VGFza0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2g4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkltcG9ydFRhc2tJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltcG9ydEltYWdlVGFza3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbXBvcnRJbWFnZVRhc2tTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXJjaGl0ZWN0dXJlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXJjaGl0ZWN0dXJlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkh5cGVydmlzb3JcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJoeXBlcnZpc29yXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbXBvcnRUYXNrSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbXBvcnRUYXNrSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMaWNlbnNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpY2Vuc2VUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGxhdGZvcm1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGF0Zm9ybVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTbmFwc2hvdERldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoY1wiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzbmFwc2hvdERldGFpbFNldFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbXBvcnRTbmFwc2hvdFRhc2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW1wb3J0VGFza0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2g4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkltcG9ydFRhc2tJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltcG9ydFNuYXBzaG90VGFza3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbXBvcnRTbmFwc2hvdFRhc2tTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkltcG9ydFRhc2tJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydFRhc2tJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNuYXBzaG90VGFza0RldGFpbFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hqXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90VGFza0RldGFpbFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRyaWJ1dGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2huXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJsb2NrRGV2aWNlTWFwcGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRpc2FibGVBcGlUZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRpc2FibGVBcGlUZXJtaW5hdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYVN1cHBvcnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmFTdXBwb3J0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWJzT3B0aW1pemVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXJuZWxJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtlcm5lbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2R1Y3RDb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3RDb2Rlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJhbWRpc2tJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJhbWRpc2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb290RGV2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvb3REZXZpY2VOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlRGVzdENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic291cmNlRGVzdENoZWNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3Jpb3ZOZXRTdXBwb3J0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3Jpb3ZOZXRTdXBwb3J0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VyRGF0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VDcmVkaXRTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUNyZWRpdFNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VDcmVkaXRTcGVjaWZpY2F0aW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3B1Q3JlZGl0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNwdUNyZWRpdHNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlQWxsSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5jbHVkZUFsbEluc3RhbmNlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlU3RhdHVzZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVN0YXR1c1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50c1NldFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJOb3RBZnRlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5vdEFmdGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJOb3RCZWZvcmVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJub3RCZWZvcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2kyXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlU3RhdGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2k0XCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3lzdGVtU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaTRcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3lzdGVtU3RhdHVzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2YXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2YXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpZFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUludGVybmV0R2F0ZXdheXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludGVybmV0R2F0ZXdheUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJuZXRHYXRld2F5SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnRlcm5ldEdhdGV3YXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJuZXRHYXRld2F5U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXlcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVLZXlQYWlyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5TmFtZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlOYW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5TmFtZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVBhaXJzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleUZpbmdlcnByaW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5RmluZ2VycHJpbnRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJLZXlOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5TmFtZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGF1bmNoVGVtcGxhdGVWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JkXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhdW5jaFRlbXBsYXRlVmVyc2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pblZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJNYXhWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlVmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZVZlcnNpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxhdW5jaFRlbXBsYXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMYXVuY2hUZW1wbGF0ZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnVcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNb3ZpbmdBZGRyZXNzZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljSXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1vdmluZ0FkZHJlc3NTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vdmluZ0FkZHJlc3NTdGF0dXNTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTW92ZVN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vdmVTdGF0dXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQdWJsaWNJcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY0lwXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOYXRHYXRld2F5c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hdEdhdGV3YXlJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hdEdhdGV3YXlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hdEdhdGV3YXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmF0R2F0ZXdheVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdpXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTmV0d29ya0FjbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5ldHdvcmtBY2xJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5ldHdvcmtBY2xzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0FjbFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdwXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTmV0d29ya0ludGVyZmFjZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dGFjaG1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4MlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlRGVzdENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic291cmNlRGVzdENoZWNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZVBlcm1pc3Npb25JZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbklkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZVBlcm1pc3Npb25zXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOGVcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4MFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBsYWNlbWVudEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwTmFtZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhY2VtZW50R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhY2VtZW50R3JvdXBTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RyYXRlZ3lcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVByZWZpeExpc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlByZWZpeExpc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlByZWZpeExpc3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZpeExpc3RzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4TGlzdFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDaWRyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkclNldFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByZWZpeExpc3RJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZWZpeExpc3RJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByZWZpeExpc3ROYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4TGlzdE5hbWVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVByaW5jaXBhbElkRm9ybWF0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJpbmNpcGFsc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaW5jaXBhbFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBcm5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcm5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2N3XCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1NldFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVnaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaW9uTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWdpb25OYW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVnaW9uTmFtZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZ2lvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWdpb25JbmZvXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuZHBvaW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVnaW9uRW5kcG9pbnRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVnaW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9mZmVyaW5nQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tnXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkSW5zdGFuY2VzSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvZmZlcmluZ1R5cGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkdXJhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuZFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZpeGVkUHJpY2VcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9kdWN0RGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNhZ2VQcmljZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW5jeUNvZGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVRlbmFuY3lcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVRlbmFuY3lcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPZmZlcmluZ0NsYXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib2ZmZXJpbmdDbGFzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9mZmVyaW5nVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrb1wiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWN1cnJpbmdDaGFyZ2VzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2NvcGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzY29wZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ3NTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzTW9kaWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25JZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZEluc3RhbmNlc01vZGlmaWNhdGlvbklkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25JZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzTW9kaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzTW9kaWZpY2F0aW9uc1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0ZURhdGVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVmZmVjdGl2ZURhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlZmZlY3RpdmVEYXRlXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNb2RpZmljYXRpb25SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9kaWZpY2F0aW9uUmVzdWx0U2V0XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzSWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc0lkXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiVGFyZ2V0Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2wxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldENvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzU2V0XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzSWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc0lkXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzTW9kaWZpY2F0aW9uSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVwZGF0ZURhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGRhdGVEYXRlXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZU1hcmtldHBsYWNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJNYXhEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9mZmVyaW5nQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ0lkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZVRlbmFuY3lcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVRlbmFuY3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9mZmVyaW5nVHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ3NTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImR1cmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZpeGVkUHJpY2VcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdERlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ0lkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXNhZ2VQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzYWdlUHJpY2VcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUZW5hbmN5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUZW5hbmN5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWFya2V0cGxhY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXRwbGFjZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nQ2xhc3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvZmZlcmluZ0NsYXNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib2ZmZXJpbmdUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJpY2luZ0RldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmljaW5nRGV0YWlsc1NldFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmljZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tvXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlY3VycmluZ0NoYXJnZXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTY29wZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNjb3BlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSb3V0ZVRhYmxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUm91dGVUYWJsZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUm91dGVUYWJsZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOHJcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2hlZHVsZWRJbnN0YW5jZUF2YWlsYWJpbGl0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlyc3RTbG90U3RhcnRUaW1lUmFuZ2VcIixcbiAgICAgICAgICBcIlJlY3VycmVuY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlyc3RTbG90U3RhcnRUaW1lUmFuZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJFYXJsaWVzdFRpbWVcIixcbiAgICAgICAgICAgICAgXCJMYXRlc3RUaW1lXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkVhcmxpZXN0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYXRlc3RUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFNsb3REdXJhdGlvbkluSG91cnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pblNsb3REdXJhdGlvbkluSG91cnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlJlY3VycmVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkZyZXF1ZW5jeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT2NjdXJyZW5jZURheXNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT2NjdXJyZW5jZURheVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9jY3VyZW5jZURheVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk9jY3VycmVuY2VSZWxhdGl2ZVRvRW5kXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPY2N1cnJlbmNlVW5pdFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2hlZHVsZWRJbnN0YW5jZUF2YWlsYWJpbGl0eVNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNjaGVkdWxlZEluc3RhbmNlQXZhaWxhYmlsaXR5U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmxlSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJsZUluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXJzdFNsb3RTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmaXJzdFNsb3RTdGFydFRpbWVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhvdXJseVByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG91cmx5UHJpY2VcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhUZXJtRHVyYXRpb25JbkRheXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhUZXJtRHVyYXRpb25JbkRheXNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNaW5UZXJtRHVyYXRpb25JbkRheXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtaW5UZXJtRHVyYXRpb25JbkRheXNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOZXR3b3JrUGxhdGZvcm1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrUGxhdGZvcm1cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYXRmb3JtXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHVyY2hhc2VUb2tlblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1cmNoYXNlVG9rZW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWN1cnJlbmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbGxcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVjdXJyZW5jZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNsb3REdXJhdGlvbkluSG91cnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzbG90RHVyYXRpb25JbkhvdXJzXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVG90YWxTY2hlZHVsZWRJbnN0YW5jZUhvdXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG90YWxTY2hlZHVsZWRJbnN0YW5jZUhvdXJzXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2hlZHVsZWRJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZWR1bGVkSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTY2hlZHVsZWRJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2NoZWR1bGVkSW5zdGFuY2VJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNsb3RTdGFydFRpbWVSYW5nZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRWFybGllc3RUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkxhdGVzdFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NoZWR1bGVkSW5zdGFuY2VTZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzY2hlZHVsZWRJbnN0YW5jZVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xzXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2VjdXJpdHlHcm91cFJlZmVyZW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdyb3VwSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cElkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cFJlZmVyZW5jZVNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlY3VyaXR5R3JvdXBSZWZlcmVuY2VTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkdyb3VwSWRcIixcbiAgICAgICAgICAgICAgICBcIlJlZmVyZW5jaW5nVnBjSWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiR3JvdXBJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWZlcmVuY2luZ1ZwY0lkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVmZXJlbmNpbmdWcGNJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNQZWVyaW5nQ29ubmVjdGlvbklkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHcm91cElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2x6XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkdyb3VwTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VjdXJpdHlHcm91cEluZm9cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUGVybWlzc2lvbnNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPd25lcklkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3duZXJJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cElkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc0VncmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUGVybWlzc2lvbnNFZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTbmFwc2hvdEF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0cmlidXRlXCIsXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDcmVhdGVWb2x1bWVQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU202XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0ZVZvbHVtZVBlcm1pc3Npb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9kdWN0Q29kZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmZVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9kdWN0Q29kZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJPd25lcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk93bmVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzdG9yYWJsZUJ5VXNlcklkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc3RvcmFibGVCeVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTbmFwc2hvdElkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU25hcHNob3RJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOTNcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTcG90RGF0YWZlZWRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3BvdERhdGFmZWVkU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOTdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdERhdGFmZWVkU3Vic2NyaXB0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTcG90RmxlZXRJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY3RpdmVJbnN0YW5jZXNcIixcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3RpdmVJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlb1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY3RpdmVJbnN0YW5jZVNldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3BvdEZsZWV0UmVxdWVzdEhpc3RvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiLFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50VHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnRUaW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGlzdG9yeVJlY29yZHNcIixcbiAgICAgICAgICBcIkxhc3RFdmFsdWF0ZWRUaW1lXCIsXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIixcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIaXN0b3J5UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhpc3RvcnlSZWNvcmRTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkV2ZW50SW5mb3JtYXRpb25cIixcbiAgICAgICAgICAgICAgICBcIkV2ZW50VHlwZVwiLFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkV2ZW50SW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlbFwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJldmVudEluZm9ybWF0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnRUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGltZXN0YW1wXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhc3RFdmFsdWF0ZWRUaW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydFRpbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3BvdEZsZWV0UmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdENvbmZpZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdENvbmZpZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0Q29uZmlnU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCIsXG4gICAgICAgICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0Q29uZmlnXCIsXG4gICAgICAgICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIixcbiAgICAgICAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RTdGF0ZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpdml0eVN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjdGl2aXR5U3RhdHVzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0ZVRpbWVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RDb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtclwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0Q29uZmlnXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdFN0YXRlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTcG90SW5zdGFuY2VSZXF1ZXN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdEluc3RhbmNlUmVxdWVzdElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNoXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNwb3RJbnN0YW5jZVJlcXVlc3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbmZcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEluc3RhbmNlUmVxdWVzdFNldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3BvdFByaWNlSGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5kVGltZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlVHlwZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHJvZHVjdERlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydFRpbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RQcmljZUhpc3RvcnlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90UHJpY2VIaXN0b3J5U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdERlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3BvdFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdFByaWNlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGltZXN0YW1wXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0YWxlU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFsZVNlY3VyaXR5R3JvdXBTZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFsZVNlY3VyaXR5R3JvdXBTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkdyb3VwSWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cElkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhbGVJcFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbnZcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhbGVJcFBlcm1pc3Npb25zXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhbGVJcFBlcm1pc3Npb25zRWdyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbnZcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhbGVJcFBlcm1pc3Npb25zRWdyZXNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3VibmV0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0SWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsdWVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZvbHVtZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvRW5hYmxlSU9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdXRvRW5hYmxlSU9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9kdWN0Q29kZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmZVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9kdWN0Q29kZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWb2x1bWVTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29jXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZvbHVtZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lU3RhdHVzZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVTdGF0dXNTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjdGlvbnNTZXRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50SWRcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFdmVudFR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJldmVudFR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50c1NldFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50SWRcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFdmVudFR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJldmVudFR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJOb3RBZnRlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5vdEFmdGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJOb3RCZWZvcmVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJub3RCZWZvcmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRldGFpbHNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZvbHVtZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZvbHVtZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29jXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZvbHVtZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOWZcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWb2x1bWVzTW9kaWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZvbHVtZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29jXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZvbHVtZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZXNNb2RpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lTW9kaWZpY2F0aW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb3ZcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiLFxuICAgICAgICAgIFwiVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlRG5zSG9zdG5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5hYmxlRG5zSG9zdG5hbWVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlRG5zU3VwcG9ydFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuYWJsZURuc1N1cHBvcnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwY0NsYXNzaWNMaW5rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ2xhc3NpY0xpbmtFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xhc3NpY0xpbmtFbmFibGVkXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjQ2xhc3NpY0xpbmtEbnNTdXBwb3J0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcDFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDbGFzc2ljTGlua0Ruc1N1cHBvcnRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsYXNzaWNMaW5rRG5zU3VwcG9ydGVkXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjRW5kcG9pbnRDb25uZWN0aW9uTm90aWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uU2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29ubmVjdGlvbk5vdGlmaWNhdGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzl2XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjRW5kcG9pbnRDb25uZWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNFbmRwb2ludENvbm5lY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjRW5kcG9pbnRDb25uZWN0aW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY0VuZHBvaW50SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNFbmRwb2ludElkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjRW5kcG9pbnRPd25lclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0VuZHBvaW50T3duZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNFbmRwb2ludFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjRW5kcG9pbnRTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRpb25UaW1lc3RhbXBcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZXJ2aWNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmljZUNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VydmljZUNvbmZpZ3VyYXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhMFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwY0VuZHBvaW50U2VydmljZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxsb3dlZFByaW5jaXBhbHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvd2VkUHJpbmNpcGFsc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQcmluY2lwYWxUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpbmNpcGFsVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByaW5jaXBhbFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaW5jaXBhbFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VydmljZU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlTmFtZVNldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VydmljZURldGFpbFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2VydmljZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhMVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3duZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkJhc2VFbmRwb2ludERuc05hbWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJiYXNlRW5kcG9pbnREbnNOYW1lU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJpdmF0ZURuc05hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlRG5zTmFtZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY0VuZHBvaW50UG9saWN5U3VwcG9ydGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjRW5kcG9pbnRQb2xpY3lTdXBwb3J0ZWRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBY2NlcHRhbmNlUmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY2NlcHRhbmNlUmVxdWlyZWRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwY0VuZHBvaW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0VuZHBvaW50SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNFbmRwb2ludElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0VuZHBvaW50c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0VuZHBvaW50U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOW5cIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNQZWVyaW5nQ29ubmVjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwbkNvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcG5Db25uZWN0aW9uSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBuQ29ubmVjdGlvbklkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBuQ29ubmVjdGlvbklkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBuQ29ubmVjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cG5Db25uZWN0aW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYWNcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcG5HYXRld2F5c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwbkdhdGV3YXlJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwbkdhdGV3YXlJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwbkdhdGV3YXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBuR2F0ZXdheVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FvXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaENsYXNzaWNMaW5rVnBjXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hJbnRlcm5ldEdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkludGVybmV0R2F0ZXdheUlkXCIsXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnRlcm5ldEdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImludGVybmV0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaE5ldHdvcmtJbnRlcmZhY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF0dGFjaG1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRhY2htZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb3JjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0YWNoVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VcIjoge30sXG4gICAgICAgICAgXCJGb3JjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hWcG5HYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNJZFwiLFxuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZVZnd1JvdXRlUHJvcGFnYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlJZFwiLFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVWcGNDbGFzc2ljTGlua1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVWcGNDbGFzc2ljTGlua0Ruc1N1cHBvcnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVBZGRyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJQdWJsaWNJcFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2Fzc29jaWF0ZUlhbUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2Fzc29jaWF0ZVJvdXRlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVTdWJuZXRDaWRyQmxvY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYXNzb2NpYXRlVnBjQ2lkckJsb2NrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2lkckJsb2NrQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRyQmxvY2tBc3NvY2lhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVWZ3dSb3V0ZVByb3BhZ2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5SWRcIixcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVWb2x1bWVJT1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZVZwY0NsYXNzaWNMaW5rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlVnBjQ2xhc3NpY0xpbmtEbnNTdXBwb3J0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29uc29sZU91dHB1dFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF0ZXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk91dHB1dFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm91dHB1dFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29uc29sZVNjcmVlbnNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiV2FrZVVwXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbWFnZURhdGFcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZURhdGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEhvc3RSZXNlcnZhdGlvblB1cmNoYXNlUHJldmlld1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdElkU2V0XCIsXG4gICAgICAgICAgXCJPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RJZFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3I0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbmN5Q29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1cmNoYXNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcjZcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVyY2hhc2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb3RhbEhvdXJseVByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG90YWxIb3VybHlQcmljZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvdGFsVXBmcm9udFByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG90YWxVcGZyb250UHJpY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRMYXVuY2hUZW1wbGF0ZURhdGFcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVEYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVEYXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UGFzc3dvcmREYXRhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhc3N3b3JkRGF0YVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhc3N3b3JkRGF0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVzZXJ2ZWRJbnN0YW5jZXNFeGNoYW5nZVF1b3RlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0Q29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhcmdldENvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW5jeUNvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc1ZhbGlkRXhjaGFuZ2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc1ZhbGlkRXhjaGFuZ2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRSZXNlcnZlZEluc3RhbmNlc1dpbGxFeHBpcmVBdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm91dHB1dFJlc2VydmVkSW5zdGFuY2VzV2lsbEV4cGlyZUF0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXltZW50RHVlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGF5bWVudER1ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VWYWx1ZVJvbGx1cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VWYWx1ZVJvbGx1cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VWYWx1ZVNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VWYWx1ZVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNlcnZhdGlvblZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcmVcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2YXRpb25WYWx1ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldENvbmZpZ3VyYXRpb25WYWx1ZVJvbGx1cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldENvbmZpZ3VyYXRpb25WYWx1ZVJvbGx1cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldENvbmZpZ3VyYXRpb25WYWx1ZVNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldENvbmZpZ3VyYXRpb25WYWx1ZVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNlcnZhdGlvblZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcmVcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2YXRpb25WYWx1ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUNvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvZmZlcmluZ0lkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZGF0aW9uRmFpbHVyZVJlYXNvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbGlkYXRpb25GYWlsdXJlUmVhc29uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW1wb3J0SW1hZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXJjaGl0ZWN0dXJlXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50RGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkRpc2tDb250YWluZXJzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlza0NvbnRhaW5lclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRldmljZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVXNlckJ1Y2tldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JvXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIeXBlcnZpc29yXCI6IHt9LFxuICAgICAgICAgIFwiTGljZW5zZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXJjaGl0ZWN0dXJlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXJjaGl0ZWN0dXJlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkh5cGVydmlzb3JcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJoeXBlcnZpc29yXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbXBvcnRUYXNrSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbXBvcnRUYXNrSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWNlbnNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpY2Vuc2VUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGxhdGZvcm1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGF0Zm9ybVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZ3Jlc3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdERldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzbmFwc2hvdERldGFpbFNldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW1wb3J0SW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYXRmb3JtXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEaXNrSW1hZ2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGlza0ltYWdlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbWFnZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3J0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcnVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXVuY2hTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoU3BlY2lmaWNhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFkZGl0aW9uYWxJbmZvXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFkZGl0aW9uYWxJbmZvXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBcmNoaXRlY3R1cmVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXJjaGl0ZWN0dXJlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJHcm91cElkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiR3JvdXBJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiR3JvdXBOYW1lc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2bVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiR3JvdXBOYW1lXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vbml0b3JpbmdcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaWlcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYWNlbWVudFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVXNlckRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlckRhdGFcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkYXRhXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGxhdGZvcm1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGF0Zm9ybVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnZlcnNpb25UYXNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGpcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29udmVyc2lvblRhc2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbXBvcnRLZXlQYWlyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlOYW1lXCIsXG4gICAgICAgICAgXCJQdWJsaWNLZXlNYXRlcmlhbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY0tleU1hdGVyaWFsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVibGljS2V5TWF0ZXJpYWxcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlGaW5nZXJwcmludFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleUZpbmdlcnByaW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleU5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbXBvcnRTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnREYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcmxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGlza0NvbnRhaW5lclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICBcIlVybFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJVc2VyQnVja2V0XCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JvXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltcG9ydFRhc2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydFRhc2tJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90VGFza0RldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90VGFza0RldGFpbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkltcG9ydFZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiLFxuICAgICAgICAgIFwiSW1hZ2VcIixcbiAgICAgICAgICBcIlZvbHVtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbWFnZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3J0XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcnVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udmVyc2lvblRhc2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkalwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb252ZXJzaW9uVGFza1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUZsZWV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCIsXG4gICAgICAgICAgXCJUYXJnZXRDYXBhY2l0eVNwZWNpZmljYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNlc3NDYXBhY2l0eVRlcm1pbmF0aW9uUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldENhcGFjaXR5U3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RnBnYUltYWdlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZwZ2FJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXNlckdyb3VwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZHVjdENvZGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc2JcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHJvZHVjdENvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2FkUGVybWlzc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQWRkXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZW1vdmVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc2RcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZwZ2FJbWFnZUF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZwZ2FJbWFnZUF0dHJpYnV0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUhvc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvUGxhY2VtZW50XCIsXG4gICAgICAgICAgXCJIb3N0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9QbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdXRvUGxhY2VtZW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSG9zdElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2c1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlJZEZvcm1hdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlVzZUxvbmdJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJVc2VMb25nSWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlJZGVudGl0eUlkRm9ybWF0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcmluY2lwYWxBcm5cIixcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgXCJVc2VMb25nSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByaW5jaXBhbEFyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaW5jaXBhbEFyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VMb25nSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlTG9uZ0lkc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUltYWdlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbWFnZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoUGVybWlzc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQWRkXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZW1vdmVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3NcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wZXJhdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0Q29kZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQcm9kdWN0Q29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VyR3JvdXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTczlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXNlcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlJbnN0YW5jZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEZXN0Q2hlY2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0RldmljZU1hcHBpbmdcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGV2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFYnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlYnNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZU9uVGVybWluYXRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJWb2x1bWVJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVJZFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTm9EZXZpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJub0RldmljZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZpcnR1YWxOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmlydHVhbE5hbWVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEaXNhYmxlQXBpVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaXNhYmxlQXBpVGVybWluYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlYnNPcHRpbWl6ZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFTdXBwb3J0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5hU3VwcG9ydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktlcm5lbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtlcm5lbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJhbWRpc2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyYW1kaXNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3Jpb3ZOZXRTdXBwb3J0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3Jpb3ZOZXRTdXBwb3J0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckRhdGFcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VyRGF0YVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbHVlXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWx1ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUluc3RhbmNlQ3JlZGl0U3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VDcmVkaXRTcGVjaWZpY2F0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VDcmVkaXRTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlQ3JlZGl0U3BlY2lmaWNhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3B1Q3JlZGl0c1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxJbnN0YW5jZUNyZWRpdFNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VjY2Vzc2Z1bEluc3RhbmNlQ3JlZGl0U3BlY2lmaWNhdGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVuc3VjY2Vzc2Z1bEluc3RhbmNlQ3JlZGl0U3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxJbnN0YW5jZUNyZWRpdFNwZWNpZmljYXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFcnJvclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUluc3RhbmNlUGxhY2VtZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFmZmluaXR5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWZmaW5pdHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJIb3N0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlbmFuY3lcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZW5hbmN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5TGF1bmNoVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0VmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNldERlZmF1bHRWZXJzaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2dVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeU5ldHdvcmtJbnRlcmZhY2VBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRhY2htZW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkF0dGFjaG1lbnRJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50SWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VEZXN0Q2hlY2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VEZXN0Q2hlY2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlSZXNlcnZlZEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZHNcIixcbiAgICAgICAgICBcIlRhcmdldENvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa2dcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkSW5zdGFuY2VzQ29uZmlndXJhdGlvblNldEl0ZW1UeXBlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbDFcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzTW9kaWZpY2F0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlTbmFwc2hvdEF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU25hcHNob3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge30sXG4gICAgICAgICAgXCJDcmVhdGVWb2x1bWVQZXJtaXNzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBZGRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbTZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlbW92ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtNlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2x6XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJHcm91cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wZXJhdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3M5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVNwb3RGbGVldFJlcXVlc3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeGNlc3NDYXBhY2l0eVRlcm1pbmF0aW9uUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhjZXNzQ2FwYWNpdHlUZXJtaW5hdGlvblBvbGljeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0Q2FwYWNpdHlcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlTdWJuZXRBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1Ym5ldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc2lnbklwdjZBZGRyZXNzT25DcmVhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFwUHVibGljSXBPbkxhdW5jaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVNb2RpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvdlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVNb2RpZmljYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlWb2x1bWVBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9FbmFibGVJT1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlWcGNBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuYWJsZURuc0hvc3RuYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlRG5zU3VwcG9ydFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZwY0VuZHBvaW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNFbmRwb2ludElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjRW5kcG9pbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2V0UG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb2xpY3lEb2N1bWVudFwiOiB7fSxcbiAgICAgICAgICBcIkFkZFJvdXRlVGFibGVJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFkZFJvdXRlVGFibGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlbW92ZVJvdXRlVGFibGVJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlbW92ZVJvdXRlVGFibGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkZFN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWRkU3VibmV0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZW1vdmVTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlbW92ZVN1Ym5ldElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRkU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWRkU2VjdXJpdHlHcm91cElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVtb3ZlU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVtb3ZlU2VjdXJpdHlHcm91cElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmF0ZURuc0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZwY0VuZHBvaW50Q29ubmVjdGlvbk5vdGlmaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbkFyblwiOiB7fSxcbiAgICAgICAgICBcIkNvbm5lY3Rpb25FdmVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlWcGNFbmRwb2ludFNlcnZpY2VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlSWRcIjoge30sXG4gICAgICAgICAgXCJBY2NlcHRhbmNlUmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkZE5ldHdvcmtMb2FkQmFsYW5jZXJBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBZGROZXR3b3JrTG9hZEJhbGFuY2VyQXJuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVtb3ZlTmV0d29ya0xvYWRCYWxhbmNlckFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlbW92ZU5ldHdvcmtMb2FkQmFsYW5jZXJBcm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlWcGNFbmRwb2ludFNlcnZpY2VQZXJtaXNzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQWRkQWxsb3dlZFByaW5jaXBhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVtb3ZlQWxsb3dlZFByaW5jaXBhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlWcGNQZWVyaW5nQ29ubmVjdGlvbk9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0ZXJQZWVyaW5nQ29ubmVjdGlvbk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0dlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyUGVlcmluZ0Nvbm5lY3Rpb25PcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdHZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0ZXJQZWVyaW5nQ29ubmVjdGlvbk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0eFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY2NlcHRlclBlZXJpbmdDb25uZWN0aW9uT3B0aW9uc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RlclBlZXJpbmdDb25uZWN0aW9uT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3R4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcXVlc3RlclBlZXJpbmdDb25uZWN0aW9uT3B0aW9uc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZwY1RlbmFuY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZVRlbmFuY3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZVRlbmFuY3lcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9uaXRvckluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VNb25pdG9yaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3UzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlc1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vdmVBZGRyZXNzVG9WcGNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlB1YmxpY0lwXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVibGljSXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGxvY2F0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvY2F0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXJjaGFzZUhvc3RSZXNlcnZhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdElkU2V0XCIsXG4gICAgICAgICAgXCJPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICAgIFwiSG9zdElkU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcjRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFByaWNlXCI6IHt9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW5jeUNvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdXJjaGFzZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3I2XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1cmNoYXNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVG90YWxIb3VybHlQcmljZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvdGFsSG91cmx5UHJpY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb3RhbFVwZnJvbnRQcmljZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvdGFsVXBmcm9udFByaWNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCIsXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRQcmljZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0UHJpY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBbW91bnRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYW1vdW50XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1cmNoYXNlU2NoZWR1bGVkSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQdXJjaGFzZVJlcXVlc3RzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVyY2hhc2VSZXF1ZXN0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlB1cmNoYXNlUmVxdWVzdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlB1cmNoYXNlUmVxdWVzdFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCIsXG4gICAgICAgICAgICAgICAgXCJQdXJjaGFzZVRva2VuXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlB1cmNoYXNlVG9rZW5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTY2hlZHVsZWRJbnN0YW5jZVNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNjaGVkdWxlZEluc3RhbmNlU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbHNcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVib290SW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckltYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltYWdlTG9jYXRpb25cIjoge30sXG4gICAgICAgICAgXCJBcmNoaXRlY3R1cmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcmNoaXRlY3R1cmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWhcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQmxvY2tEZXZpY2VNYXBwaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYVN1cHBvcnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmFTdXBwb3J0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2VybmVsSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXJuZWxJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmlsbGluZ1Byb2R1Y3RzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQmlsbGluZ1Byb2R1Y3RcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmFtZGlza0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9vdERldmljZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb290RGV2aWNlTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNyaW92TmV0U3VwcG9ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNyaW92TmV0U3VwcG9ydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZpcnR1YWxpemF0aW9uVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZpcnR1YWxpemF0aW9uVHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVqZWN0VnBjRW5kcG9pbnRDb25uZWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZUlkXCIsXG4gICAgICAgICAgXCJWcGNFbmRwb2ludElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlZwY0VuZHBvaW50SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNFbmRwb2ludElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWplY3RWcGNQZWVyaW5nQ29ubmVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbGVhc2VBZGRyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVsZWFzZUhvc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnNVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWNjZXNzZnVsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc2lcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5zdWNjZXNzZnVsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVwbGFjZUlhbUluc3RhbmNlUHJvZmlsZUFzc29jaWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIixcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlcGxhY2VOZXR3b3JrQWNsQXNzb2NpYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIixcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5ld0Fzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXdBc3NvY2lhdGlvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVwbGFjZU5ldHdvcmtBY2xFbnRyeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRWdyZXNzXCIsXG4gICAgICAgICAgXCJOZXR3b3JrQWNsSWRcIixcbiAgICAgICAgICBcIlByb3RvY29sXCIsXG4gICAgICAgICAgXCJSdWxlQWN0aW9uXCIsXG4gICAgICAgICAgXCJSdWxlTnVtYmVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVncmVzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkljbXBUeXBlQ29kZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzd1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkljbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvcnRSYW5nZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzd2XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvcnRSYW5nZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvdG9jb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSdWxlQWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZUFjdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bGVOdW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlTnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVwbGFjZVJvdXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzdGluYXRpb25DaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXN0aW5hdGlvbkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uSXB2NkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uSXB2NkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdhdGV3YXlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmF0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmF0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm91dGVUYWJsZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXBsYWNlUm91dGVUYWJsZUFzc29jaWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCIsXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXdBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV3QXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlcG9ydEluc3RhbmNlU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZXNcIixcbiAgICAgICAgICBcIlJlYXNvbkNvZGVzXCIsXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmRUaW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVhc29uQ29kZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWFzb25Db2RlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0VGltZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVxdWVzdFNwb3RGbGVldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdENvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdENvbmZpZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVxdWVzdFNwb3RJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZUdyb3VwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmxvY2tEdXJhdGlvbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0R1cmF0aW9uTWludXRlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VDb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoR3JvdXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXVuY2hTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQWRkcmVzc2luZ1R5cGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWRkcmVzc2luZ1R5cGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3JcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJsb2NrRGV2aWNlTWFwcGluZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic09wdGltaXplZFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWFtSW5zdGFuY2VQcm9maWxlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbWFnZUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIktlcm5lbElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtlcm5lbElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJLZXlOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleU5hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbmlcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vbml0b3JpbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU214XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOZXR3b3JrSW50ZXJmYWNlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbXpcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYWNlbWVudFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJhbWRpc2tJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlVzZXJEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJEYXRhXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90UHJpY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90UHJpY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZhbGlkRnJvbVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbGlkRnJvbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRVbnRpbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbGlkVW50aWxcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3JcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTcG90SW5zdGFuY2VSZXF1ZXN0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25mXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RJbnN0YW5jZVJlcXVlc3RTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldEZwZ2FJbWFnZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnBnYUltYWdlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc2V0SW1hZ2VBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiLFxuICAgICAgICAgIFwiSW1hZ2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge30sXG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXRJbnN0YW5jZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0cmlidXRlXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXROZXR3b3JrSW50ZXJmYWNlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlRGVzdENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic291cmNlRGVzdENoZWNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXRTbmFwc2hvdEF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0cmlidXRlXCIsXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlQWRkcmVzc1RvQ2xhc3NpY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHVibGljSXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljSXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVibGljSXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXZva2VTZWN1cml0eUdyb3VwRWdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHcm91cElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUGVybWlzc2lvbnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaWRySXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRySXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGcm9tUG9ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZyb21Qb3J0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBQcm90b2NvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUHJvdG9jb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb1BvcnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b1BvcnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VTZWN1cml0eUdyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNvdXJjZVNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlU2VjdXJpdHlHcm91cE93bmVySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VTZWN1cml0eUdyb3VwT3duZXJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZVNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpZHJJcFwiOiB7fSxcbiAgICAgICAgICBcIkZyb21Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlU2VjdXJpdHlHcm91cE93bmVySWRcIjoge30sXG4gICAgICAgICAgXCJUb1BvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJ1bkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWF4Q291bnRcIixcbiAgICAgICAgICBcIk1pbkNvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1aFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCbG9ja0RldmljZU1hcHBpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSXB2NkFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklwdjZBZGRyZXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2VybmVsSWRcIjoge30sXG4gICAgICAgICAgXCJLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4Q291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbmlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJhbWRpc2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZtXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJEYXRhXCI6IHt9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbEluZm9cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhZGRpdGlvbmFsSW5mb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEaXNhYmxlQXBpVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaXNhYmxlQXBpVGVybWluYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlYnNPcHRpbWl6ZWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU214XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVsYXN0aWNHcHVTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2bFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU0XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1NwZWNpZmljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiVmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZU1hcmtldE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1hcmtldFR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3BvdE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIk1heFByaWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJTcG90SW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJCbG9ja0R1cmF0aW9uTWludXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiVmFsaWRVbnRpbFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWRpdFNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNwdU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNvcmVDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGhyZWFkc1BlckNvcmVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2lkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUnVuU2NoZWR1bGVkSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMYXVuY2hTcGVjaWZpY2F0aW9uXCIsXG4gICAgICAgICAgXCJTY2hlZHVsZWRJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkltYWdlSWRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCbG9ja0RldmljZU1hcHBpbmdcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCbG9ja0RldmljZU1hcHBpbmdcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJEZXZpY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkVic1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJWb2x1bWVTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk5vRGV2aWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlZpcnR1YWxOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiS2VybmVsSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5ldHdvcmtJbnRlcmZhY2VcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOZXR3b3JrSW50ZXJmYWNlXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRlUHVibGljSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJEZXZpY2VJbmRleFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiR3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3cxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHcm91cFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiSXB2NkFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJcHY2QWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklwdjZBZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiSXB2NkFkZHJlc3NcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc0NvbmZpZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHJpdmF0ZUlwQWRkcmVzc0NvbmZpZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlByaXZhdGVJcEFkZHJlc3NDb25maWdTZXRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcmltYXJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJHcm91cE5hbWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdzFcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiVXNlckRhdGFcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NoZWR1bGVkSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRTZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0SW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsSW5mb1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFkZGl0aW9uYWxJbmZvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhcnRpbmdJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3Y1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZXNTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb3JjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RvcHBpbmdJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3Y1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZXNTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXJtaW5hdGVJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlcm1pbmF0aW5nSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VzU2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW5hc3NpZ25JcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCIsXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbmFzc2lnbmVkSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuYXNzaWduZWRJcHY2QWRkcmVzc2VzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW5hc3NpZ25Qcml2YXRlSXBBZGRyZXNzZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiLFxuICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbm1vbml0b3JJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlTW9uaXRvcmluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1M1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZXNTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTZWN1cml0eUdyb3VwUnVsZURlc2NyaXB0aW9uc0VncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJJcFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTZWN1cml0eUdyb3VwUnVsZURlc2NyaXB0aW9uc0luZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklwUGVybWlzc2lvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZEluc3RhbmNlSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFyZ2V0Q29uZmlndXJhdGlvblJlcXVlc3RcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT2ZmZXJpbmdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPZmZlcmluZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZFwiLFxuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkVycm9yXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVycm9yXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkNvZGVcIixcbiAgICAgICAgICAgIFwiTWVzc2FnZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb2RlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1lc3NhZ2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlSWRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBY2NlcHRlclZwY0luZm9cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWNjZXB0ZXJWcGNJbmZvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFeHBpcmF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBpcmF0aW9uVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVxdWVzdGVyVnBjSW5mb1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXF1ZXN0ZXJWcGNJbmZvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRyQmxvY2tcIlxuICAgICAgICB9LFxuICAgICAgICBcIklwdjZDaWRyQmxvY2tTZXRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja1NldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZDaWRyQmxvY2tcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNpZHJCbG9ja1NldFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRyQmxvY2tTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiT3duZXJJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQZWVyaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwZWVyaW5nT3B0aW9uc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkFsbG93RG5zUmVzb2x1dGlvbkZyb21SZW1vdGVWcGNcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG93RG5zUmVzb2x1dGlvbkZyb21SZW1vdGVWcGNcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJBbGxvd0VncmVzc0Zyb21Mb2NhbENsYXNzaWNMaW5rVG9SZW1vdGVWcGNcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG93RWdyZXNzRnJvbUxvY2FsQ2xhc3NpY0xpbmtUb1JlbW90ZVZwY1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkFsbG93RWdyZXNzRnJvbUxvY2FsVnBjVG9SZW1vdGVDbGFzc2ljTGlua1wiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb3dFZ3Jlc3NGcm9tTG9jYWxWcGNUb1JlbW90ZUNsYXNzaWNMaW5rXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVnaW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlZ2lvblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbHVlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFyblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0aW9uSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGltZXN0YW1wXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFyblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXB2NkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcHY2Q2lkckJsb2NrU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja1N0YXRlXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXB2NkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcHY2Q2lkckJsb2NrU3RhdGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZDaWRyQmxvY2tTdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2lkckJsb2NrXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2lkckJsb2NrU3RhdGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1N0YXRlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF0dGFjaFRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNoVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGV2aWNlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRldmljZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZvbHVtZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZU9uVGVybWluYXRpb25cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnJvbVBvcnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcm9tUG9ydFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwUHJvdG9jb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcFByb3RvY29sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBSYW5nZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcFJhbmdlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDaWRySXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRySXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXB2NlJhbmdlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZSYW5nZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ2lkcklwdjZcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRySXB2NlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmaXhMaXN0SWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4TGlzdElkc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJlZml4TGlzdElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4TGlzdElkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVG9Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG9Qb3J0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcklkR3JvdXBQYWlyc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3Vwc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGVlcmluZ1N0YXR1c1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwZWVyaW5nU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2VySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNQZWVyaW5nQ29ubmVjdGlvbklkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlMzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBV1NBY2Nlc3NLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJidWNrZXRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUHJlZml4XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVXBsb2FkUG9saWN5XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGxvYWRQb2xpY3lcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJVcGxvYWRQb2xpY3lTaWduYXR1cmVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwbG9hZFBvbGljeVNpZ25hdHVyZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMybFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQnVuZGxlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYnVuZGxlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJ1bmRsZVRhc2tFcnJvclwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZ3Jlc3NcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydFRpbWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdG9yYWdlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVcGRhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwZGF0ZVRpbWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDcmVhdGVEYXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlRGF0ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VDb3VudHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUNvdW50c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VDb3VudFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmljZVNjaGVkdWxlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaWNlU2NoZWR1bGVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGl2ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjdGl2ZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbmN5Q29kZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpY2VcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRlcm1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZXJtXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGRhdGVEYXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBkYXRlRGF0ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTcG90SW5zdGFuY2VSZXF1ZXN0SWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJncEFzblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJiZ3BBc25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1c3RvbWVyR2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1c3RvbWVyR2F0ZXdheUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcEFkZHJlc3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBBZGRyZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVHlwZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0eXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJsZUlwQWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJsZUlwQWRkcmVzc0NvdW50XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2lkckJsb2NrXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdEZvckF6XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlZmF1bHRGb3JBelwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk1hcFB1YmxpY0lwT25MYXVuY2hcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFwUHVibGljSXBPbkxhdW5jaFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFzc2lnbklwdjZBZGRyZXNzT25DcmVhdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NpZ25JcHY2QWRkcmVzc09uQ3JlYXRpb25cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25TZXRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRyQmxvY2tcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRoY3BPcHRpb25zSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGhjcE9wdGlvbnNJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZVRlbmFuY3lcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUZW5hbmN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25TZXRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNpZHJCbG9ja0Fzc29jaWF0aW9uU2V0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja0Fzc29jaWF0aW9uU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklzRGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc0RlZmF1bHRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEaGNwQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGhjcENvbmZpZ3VyYXRpb25TZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbHVlU2V0XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkRoY3BPcHRpb25zSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGhjcE9wdGlvbnNJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0aVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsdWVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0bFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXR0YWNobWVudHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNG1cIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5SWRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0bVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzUxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiVG90YWxUYXJnZXRDYXBhY2l0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUb3RhbFRhcmdldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPbkRlbWFuZFRhcmdldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTcG90VGFyZ2V0Q2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlZmF1bHRUYXJnZXRDYXBhY2l0eVR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzU0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgIFwiS2V5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1aFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNWlcIixcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCbG9ja0RldmljZU1hcHBpbmdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRldmljZU5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV2aWNlTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmlydHVhbE5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmlydHVhbE5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVic1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlYnNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuY3J5cHRlZFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZU9uVGVybWluYXRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpb3BzXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90SWRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVm9sdW1lU2l6ZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lU2l6ZVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZVR5cGVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJOb0RldmljZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJub0RldmljZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXhwb3J0VGFza0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4cG9ydFRhc2tJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXhwb3J0VG9TM1Rhc2tcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwb3J0VG9TM1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNvbnRhaW5lckZvcm1hdFwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29udGFpbmVyRm9ybWF0XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRpc2tJbWFnZUZvcm1hdFwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGlza0ltYWdlRm9ybWF0XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlMzQnVja2V0XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzM0J1Y2tldFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTM0tleVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiczNLZXlcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUV4cG9ydERldGFpbHNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VFeHBvcnRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlRhcmdldEVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRFbnZpcm9ubWVudFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXR0YWNobWVudHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNG1cIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkludGVybmV0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImludGVybmV0R2F0ZXdheUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzYzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXJuZWxJZFwiOiB7fSxcbiAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQmxvY2tEZXZpY2VNYXBwaW5nXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQmxvY2tEZXZpY2VNYXBwaW5nXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGV2aWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWaXJ0dWFsTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFYnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlZvbHVtZVNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTm9EZXZpY2VcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTmV0d29ya0ludGVyZmFjZXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmV0d29ya0ludGVyZmFjZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlTmV0d29ya0ludGVyZmFjZVNwZWNpZmljYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRldmljZUluZGV4XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmFcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXB2NkFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJcHY2QWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIklwdjZBZGRyZXNzXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJLZXlOYW1lXCI6IHt9LFxuICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgXCJBZmZpbml0eVwiOiB7fSxcbiAgICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJIb3N0SWRcIjoge30sXG4gICAgICAgICAgICBcIlRlbmFuY3lcIjoge30sXG4gICAgICAgICAgICBcIlNwcmVhZERvbWFpblwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJSYW1EaXNrSWRcIjoge30sXG4gICAgICAgIFwiRGlzYWJsZUFwaVRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIjoge30sXG4gICAgICAgIFwiVXNlckRhdGFcIjoge30sXG4gICAgICAgIFwiVGFnU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnU3BlY2lmaWNhdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhdW5jaFRlbXBsYXRlVGFnU3BlY2lmaWNhdGlvblJlcXVlc3RcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkVsYXN0aWNHcHVTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFbGFzdGljR3B1U3BlY2lmaWNhdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZsXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVsYXN0aWNHcHVTcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2bVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VNYXJrZXRPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNYXJrZXRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJTcG90T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTWF4UHJpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTcG90SW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmxvY2tEdXJhdGlvbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbGlkVW50aWxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvclwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWRpdFNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNnNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2YVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cElkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJpbWFyeVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaW1hcnlcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2bFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNm1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDcHVDcmVkaXRzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNwdUNyZWRpdHNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZ1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZU5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRlZEJ5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0ZWRCeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdFZlcnNpb25OdW1iZXJcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVmYXVsdFZlcnNpb25OdW1iZXJcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXRlc3RWZXJzaW9uTnVtYmVyXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdGVzdFZlcnNpb25OdW1iZXJcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZ4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZU5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZlcnNpb25OdW1iZXJcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbk51bWJlclwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZlcnNpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uRGVzY3JpcHRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRlZEJ5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0ZWRCeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdFZlcnNpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVmYXVsdFZlcnNpb25cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZURhdGFcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNnlcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlRGF0YVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXJuZWxJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXJuZWxJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic09wdGltaXplZFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBcm5cIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFyblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0RldmljZU1hcHBpbmdTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGV2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWaXJ0dWFsTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2aXJ0dWFsTmFtZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic1wiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5jcnlwdGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlvcHNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJLbXNLZXlJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia21zS2V5SWRcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RJZFwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJWb2x1bWVTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVTaXplXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5vRGV2aWNlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5vRGV2aWNlXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZU9uVGVybWluYXRpb25cIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGV2aWNlSW5kZXhcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV2aWNlSW5kZXhcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzQ291bnRcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc2VzU2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZFwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc2VzU2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS2V5TmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlOYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vbml0b3JpbmdcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmFibGVkXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQbGFjZW1lbnRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhY2VtZW50XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJBZmZpbml0eVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWZmaW5pdHlcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cE5hbWVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSG9zdElkXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0SWRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVGVuYW5jeVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGVuYW5jeVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTcHJlYWREb21haW5cIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwcmVhZERvbWFpblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlJhbURpc2tJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyYW1EaXNrSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRpc2FibGVBcGlUZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaXNhYmxlQXBpVGVybWluYXRpb25cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2VyRGF0YVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VyRGF0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU3BlY2lmaWNhdGlvblNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VUeXBlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRWxhc3RpY0dwdVNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVsYXN0aWNHcHVTcGVjaWZpY2F0aW9uU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZWN1cml0eUdyb3VwSWRTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlY3VyaXR5R3JvdXBTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlTWFya2V0T3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZU1hcmtldE9wdGlvbnNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNYXJrZXRUeXBlXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXRUeXBlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNwb3RPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90T3B0aW9uc1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk1heFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UHJpY2VcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcG90SW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkJsb2NrRHVyYXRpb25NaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmxvY2tEdXJhdGlvbk1pbnV0ZXNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWYWxpZFVudGlsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRVbnRpbFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3JcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVkaXRTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWRpdFNwZWNpZmljYXRpb25cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDcHVDcmVkaXRzXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcHVDcmVkaXRzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzc1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXB2NkFkZHJlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3aVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcmVhdGVUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWxldGVUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZVRpbWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZhaWx1cmVDb2RlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZhaWx1cmVDb2RlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGYWlsdXJlTWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmYWlsdXJlTWVzc2FnZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTmF0R2F0ZXdheUFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYXRHYXRld2F5QWRkcmVzc1NldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBbGxvY2F0aW9uSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb2NhdGlvbklkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcml2YXRlSXBcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQdWJsaWNJcFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTmF0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hdEdhdGV3YXlJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvdmlzaW9uZWRCYW5kd2lkdGhcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvdmlzaW9uZWRCYW5kd2lkdGhcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQcm92aXNpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm92aXNpb25UaW1lXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQcm92aXNpb25lZFwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvdmlzaW9uZWRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVxdWVzdFRpbWVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcXVlc3RUaW1lXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJSZXF1ZXN0ZWRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcXVlc3RlZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN3BcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFzc29jaWF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvblNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOZXR3b3JrQWNsQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrQWNsQXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTmV0d29ya0FjbElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkVudHJpZXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW50cnlTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWdyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkljbXBUeXBlQ29kZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3dVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWNtcFR5cGVDb2RlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZDaWRyQmxvY2tcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBvcnRSYW5nZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3dlwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9ydFJhbmdlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm90b2NvbFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm90b2NvbFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUnVsZUFjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlQWN0aW9uXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSdWxlTnVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVOdW1iZXJcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJc0RlZmF1bHRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk5ldHdvcmtBY2xJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrQWNsSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzd1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZyb21cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnJvbVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRvXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzgwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4MVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkF0dGFjaG1lbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTODJcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4M1wiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkludGVyZmFjZVR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJmYWNlVHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc2VzU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklwdjZBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJNYWNBZGRyZXNzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hY0FkZHJlc3NcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3duZXJJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJpdmF0ZURuc05hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZURuc05hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3Nlc1NldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4MVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByaW1hcnlcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpbWFyeVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVEbnNOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVEbnNOYW1lXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlJlcXVlc3RlcklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcXVlc3RlcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXF1ZXN0ZXJNYW5hZ2VkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcXVlc3Rlck1hbmFnZWRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTb3VyY2VEZXN0Q2hlY2tcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic291cmNlRGVzdENoZWNrXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ1NldFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTODFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvY2F0aW9uSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXBPd25lcklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwT3duZXJJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHVibGljRG5zTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNEbnNOYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQdWJsaWNJcFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzgyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdHRhY2hUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaFRpbWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF0dGFjaG1lbnRJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkRldmljZUluZGV4XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRldmljZUluZGV4XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZU93bmVySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VPd25lcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTODNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4ZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmV0d29ya0ludGVyZmFjZVBlcm1pc3Npb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBd3NBY2NvdW50SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXdzQWNjb3VudElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBd3NTZXJ2aWNlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF3c1NlcnZpY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBlcm1pc3Npb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGVybWlzc2lvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGVybWlzc2lvblN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBlcm1pc3Npb25TdGF0ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25TZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFpblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYWluXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUm91dGVUYWJsZUFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm91dGVUYWJsZUFzc29jaWF0aW9uSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9wYWdhdGluZ1Znd3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvcGFnYXRpbmdWZ3dTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiR2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdhdGV3YXlJZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUm91dGVUYWJsZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlVGFibGVJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUm91dGVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uQ2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uQ2lkckJsb2NrXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZXN0aW5hdGlvbklwdjZDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzdGluYXRpb25JcHY2Q2lkckJsb2NrXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZXN0aW5hdGlvblByZWZpeExpc3RJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXN0aW5hdGlvblByZWZpeExpc3RJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiR2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdhdGV3YXlJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZU93bmVySWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VPd25lcklkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOYXRHYXRld2F5SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmF0R2F0ZXdheUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPcmlnaW5cIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3JpZ2luXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNQZWVyaW5nQ29ubmVjdGlvbklkXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5M1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGF0YUVuY3J5cHRpb25LZXlJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkYXRhRW5jcnlwdGlvbktleUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuY3J5cHRlZFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkttc0tleUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImttc0tleUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPd25lcklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm93bmVySWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb2dyZXNzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2dyZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbmFwc2hvdElkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydFRpbWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVNZXNzYWdlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZvbHVtZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWb2x1bWVTaXplXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZVNpemVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPd25lckFsaWFzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm93bmVyQWxpYXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJidWNrZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZhdWx0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzk4XCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3duZXJJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmaXhcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzk4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM5ZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXR0YWNobWVudHNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudFNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuY3J5cHRlZFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkttc0tleUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImttc0tleUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNpemVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbmFwc2hvdElkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVm9sdW1lSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW9wc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZVR5cGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5blwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVnBjRW5kcG9pbnRJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNFbmRwb2ludElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNFbmRwb2ludFR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjRW5kcG9pbnRUeXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VydmljZU5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VydmljZU5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQb2xpY3lEb2N1bWVudFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lEb2N1bWVudFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUm91dGVUYWJsZUlkc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlSWRTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR3JvdXBzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwTmFtZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJpdmF0ZURuc0VuYWJsZWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZURuc0VuYWJsZWRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRG5zRW50cmllc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkbnNFbnRyeVNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEbnNOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRuc05hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0ZWRab25lSWRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0aW9uVGltZXN0YW1wXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOXZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb25uZWN0aW9uTm90aWZpY2F0aW9uSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNlcnZpY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0VuZHBvaW50SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjRW5kcG9pbnRJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvblR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29ubmVjdGlvbk5vdGlmaWNhdGlvblR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25Bcm5cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29ubmVjdGlvbk5vdGlmaWNhdGlvbkFyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29ubmVjdGlvbkV2ZW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb25uZWN0aW9uRXZlbnRzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29ubmVjdGlvbk5vdGlmaWNhdGlvblN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNlcnZpY2VUeXBlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2ExXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlVHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VydmljZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VydmljZU5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VydmljZU5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNlcnZpY2VTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFjY2VwdGFuY2VSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY2NlcHRhbmNlUmVxdWlyZWRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXR3b3JrTG9hZEJhbGFuY2VyQXJuc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrTG9hZEJhbGFuY2VyQXJuU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJCYXNlRW5kcG9pbnREbnNOYW1lc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJiYXNlRW5kcG9pbnREbnNOYW1lU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcml2YXRlRG5zTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlRG5zTmFtZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2ExXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmljZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlVHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3VzdG9tZXJHYXRld2F5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXN0b21lckdhdGV3YXlDb25maWd1cmF0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDdXN0b21lckdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXN0b21lckdhdGV3YXlJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2F0ZWdvcnlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2F0ZWdvcnlcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwbkNvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cG5Db25uZWN0aW9uSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwbkdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cG5HYXRld2F5SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3B0aW9uc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlN0YXRpY1JvdXRlc09ubHlcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRpY1JvdXRlc09ubHlcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlJvdXRlc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZXNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGVzdGluYXRpb25DaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzdGluYXRpb25DaWRyQmxvY2tcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNvdXJjZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmd3VGVsZW1ldHJ5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZnd1RlbGVtZXRyeVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBY2NlcHRlZFJvdXRlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWNjZXB0ZWRSb3V0ZUNvdW50XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGFzdFN0YXR1c0NoYW5nZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXN0U3RhdHVzQ2hhbmdlXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPdXRzaWRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm91dHNpZGVJcEFkZHJlc3NcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2FvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0F0dGFjaG1lbnRzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlZwbkdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cG5HYXRld2F5SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFtYXpvblNpZGVBc25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYW1hem9uU2lkZUFzblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYXZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2JkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2NuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWYWx1ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlYWRsaW5lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVhZGxpbmVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VMb25nSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlTG9uZ0lkc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29udmVyc2lvblRhc2tJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb252ZXJzaW9uVGFza0lkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFeHBpcmF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBpcmF0aW9uVGltZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW1wb3J0SW5zdGFuY2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1wb3J0SW5zdGFuY2VcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhdGZvcm1cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVm9sdW1lc1wiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lc1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiLFxuICAgICAgICAgICAgICAgICAgXCJCeXRlc0NvbnZlcnRlZFwiLFxuICAgICAgICAgICAgICAgICAgXCJJbWFnZVwiLFxuICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgIFwiVm9sdW1lXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiQnl0ZXNDb252ZXJ0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJ5dGVzQ29udmVydGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkltYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkb1wiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiVm9sdW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkcFwiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkltcG9ydFZvbHVtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbXBvcnRWb2x1bWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkJ5dGVzQ29udmVydGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJieXRlc0NvbnZlcnRlZFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJbWFnZVwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZG9cIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJWb2x1bWVcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RwXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2hlY2tzdW1cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2hlY2tzdW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmb3JtYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkltcG9ydE1hbmlmZXN0VXJsXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydE1hbmlmZXN0VXJsXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNpemVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZHBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNpemVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkV2ZW50RGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnREZXNjcmlwdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXZlbnRTdWJUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50U3ViVHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSGVhbHRoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VIZWFsdGhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF1bmNoVGVtcGxhdGVOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZmFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZwZ2FJbWFnZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZwZ2FJbWFnZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMb2FkUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibG9hZFBlcm1pc3Npb25zXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlVzZXJJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VySWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkdyb3VwXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9kdWN0Q29kZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZmVcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3RDb2Rlc1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2ZlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvZHVjdENvZGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3RDb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZHVjdENvZGVUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNmalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3duZXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZ3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVpXCIsXG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VySWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaDVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaDhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkltcG9ydFRhc2tJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXZpY2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRpc2tJbWFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaXNrSW1hZ2VTaXplXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb3JtYXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmb3JtYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2dyZXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVybFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoZVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VyQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTM0J1Y2tldFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzM0J1Y2tldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUzNLZXlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiczNLZXlcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkRpc2tJbWFnZVNpemVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGlza0ltYWdlU2l6ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRm9ybWF0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZ3Jlc3NcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNuYXBzaG90SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVcmxcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXJsXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2VyQnVja2V0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2hlXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VyQnVja2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaG5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVic1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkF0dGFjaFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNoVGltZVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxldGVPblRlcm1pbmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVm9sdW1lSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lSWRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNocVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsdWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2k0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRldGFpbHNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSW1wYWlyZWRTaW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbXBhaXJlZFNpbmNlXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNpZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiR3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzgzXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlc1NldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBbWlMYXVuY2hJbmRleFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbWlMYXVuY2hJbmRleFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJLZXJuZWxJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXJuZWxJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiS2V5TmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlOYW1lXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYXVuY2hUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRpbWVcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaWdcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vbml0b3JpbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpaVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhY2VtZW50XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGF0Zm9ybVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJpdmF0ZURuc05hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZURuc05hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJvZHVjdENvZGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZlXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9kdWN0Q29kZXNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlB1YmxpY0Ruc05hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG5zTmFtZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHVibGljSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJhbWRpc2tJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaTJcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlU3RhdGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXRlVHJhbnNpdGlvblJlYXNvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWFzb25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQXJjaGl0ZWN0dXJlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFyY2hpdGVjdHVyZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoblwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmxvY2tEZXZpY2VNYXBwaW5nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic09wdGltaXplZFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVuYVN1cHBvcnRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5hU3VwcG9ydFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkh5cGVydmlzb3JcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHlwZXJ2aXNvclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlTGlmZWN5Y2xlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlTGlmZWN5Y2xlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbGFzdGljR3B1QXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVsYXN0aWNHcHVBc3NvY2lhdGlvblNldFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJFbGFzdGljR3B1SWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdUlkXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJFbGFzdGljR3B1QXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbGFzdGljR3B1QXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRWxhc3RpY0dwdUFzc29jaWF0aW9uU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdUFzc29jaWF0aW9uU3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkVsYXN0aWNHcHVBc3NvY2lhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdUFzc29jaWF0aW9uVGltZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZXNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZVNldFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpb1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkF0dGFjaG1lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkF0dGFjaFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaFRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkF0dGFjaG1lbnRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZU9uVGVybWluYXRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJEZXZpY2VJbmRleFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV2aWNlSW5kZXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc2VzU2V0XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJNYWNBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hY0FkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3duZXJJZFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpdmF0ZURuc05hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZURuc05hbWVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3Nlc1NldFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpb1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByaW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByaXZhdGVEbnNOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVEbnNOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlNvdXJjZURlc3RDaGVja1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VEZXN0Q2hlY2tcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJvb3REZXZpY2VOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvb3REZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSb290RGV2aWNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb290RGV2aWNlVHlwZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTb3VyY2VEZXN0Q2hlY2tcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic291cmNlRGVzdENoZWNrXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3BvdEluc3RhbmNlUmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3Jpb3ZOZXRTdXBwb3J0XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNyaW92TmV0U3VwcG9ydFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdGVSZWFzb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaDVcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlUmVhc29uXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVmlydHVhbGl6YXRpb25UeXBlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZpcnR1YWxpemF0aW9uVHlwZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ3B1T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcHVPcHRpb25zXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiQ29yZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb3JlQ291bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJUaHJlYWRzUGVyQ29yZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhyZWFkc1BlckNvcmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3duZXJJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVxdWVzdGVySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVxdWVzdGVySWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlc2VydmF0aW9uSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2YXRpb25JZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFmZmluaXR5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFmZmluaXR5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJIb3N0SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUZW5hbmN5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlbmFuY3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNwcmVhZERvbWFpblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcHJlYWREb21haW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNpb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSXBPd25lcklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwT3duZXJJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHVibGljRG5zTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNEbnNOYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQdWJsaWNJcFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2tnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZEluc3RhbmNlc0lkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2tvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQW1vdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYW1vdW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGcmVxdWVuY3lcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcmVxdWVuY3lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbDFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUNvdW50XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGxhdGZvcm1cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhdGZvcm1cIlxuICAgICAgICB9LFxuICAgICAgICBcIlNjb3BlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNjb3BlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbGxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZyZXF1ZW5jeVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcmVxdWVuY3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIkludGVydmFsXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImludGVydmFsXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT2NjdXJyZW5jZURheVNldFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvY2N1cnJlbmNlRGF5U2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk9jY3VycmVuY2VSZWxhdGl2ZVRvRW5kXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9jY3VycmVuY2VSZWxhdGl2ZVRvRW5kXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT2NjdXJyZW5jZVVuaXRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib2NjdXJyZW5jZVVuaXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNsc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGVEYXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0ZURhdGVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkhvdXJseVByaWNlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvdXJseVByaWNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXR3b3JrUGxhdGZvcm1cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya1BsYXRmb3JtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXh0U2xvdFN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0U2xvdFN0YXJ0VGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGxhdGZvcm1cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhdGZvcm1cIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZXZpb3VzU2xvdEVuZFRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJldmlvdXNTbG90RW5kVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVjdXJyZW5jZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNsbFwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVjdXJyZW5jZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2NoZWR1bGVkSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzY2hlZHVsZWRJbnN0YW5jZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbG90RHVyYXRpb25JbkhvdXJzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNsb3REdXJhdGlvbkluSG91cnNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUZXJtRW5kRGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZXJtRW5kRGF0ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGVybVN0YXJ0RGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZXJtU3RhcnREYXRlXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUb3RhbFNjaGVkdWxlZEluc3RhbmNlSG91cnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG90YWxTY2hlZHVsZWRJbnN0YW5jZUhvdXJzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2x6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHcm91cE5hbWVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbTZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlcklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU21yXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWFtRmxlZXRSb2xlXCIsXG4gICAgICAgIFwiVGFyZ2V0Q2FwYWNpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWxsb2NhdGlvblN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG9jYXRpb25TdHJhdGVneVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4Y2Vzc0NhcGFjaXR5VGVybWluYXRpb25Qb2xpY3lcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhjZXNzQ2FwYWNpdHlUZXJtaW5hdGlvblBvbGljeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRnVsZmlsbGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnVsZmlsbGVkQ2FwYWNpdHlcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9uRGVtYW5kRnVsZmlsbGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib25EZW1hbmRGdWxmaWxsZWRDYXBhY2l0eVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWFtRmxlZXRSb2xlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUZsZWV0Um9sZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF1bmNoU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoU3BlY2lmaWNhdGlvbnNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBZGRyZXNzaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhZGRyZXNzaW5nVHlwZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnclwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmxvY2tEZXZpY2VNYXBwaW5nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWJzT3B0aW1pemVkXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiS2VybmVsSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2VybmVsSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIktleU5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5TmFtZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTW9uaXRvcmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtb25pdG9yaW5nXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5hYmxlZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbXhcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VTZXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtelwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhY2VtZW50XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSYW1kaXNrSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmFtZGlza0lkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTcG90UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdFByaWNlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVXNlckRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlckRhdGFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIldlaWdodGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwid2VpZ2h0ZWRDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGFnU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU3BlY2lmaWNhdGlvblNldFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1wiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF1bmNoVGVtcGxhdGVDb25maWdzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlQ29uZmlnc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZXlcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlU3BlY2lmaWNhdGlvblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm92ZXJyaWRlc1wiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTcG90UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdFByaWNlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJXZWlnaHRlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIndlaWdodGVkQ2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlNwb3RQcmljZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90UHJpY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhcmdldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldENhcGFjaXR5XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT25EZW1hbmRUYXJnZXRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvbkRlbWFuZFRhcmdldENhcGFjaXR5XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGVybWluYXRlSW5zdGFuY2VzV2l0aEV4cGlyYXRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGVybWluYXRlSW5zdGFuY2VzV2l0aEV4cGlyYXRpb25cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZhbGlkRnJvbVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWxpZEZyb21cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZhbGlkVW50aWxcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRVbnRpbFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVwbGFjZVVuaGVhbHRoeUluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXBsYWNlVW5oZWFsdGh5SW5zdGFuY2VzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMb2FkQmFsYW5jZXJzQ29uZmlnXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxvYWRCYWxhbmNlcnNDb25maWdcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDbGFzc2ljTG9hZEJhbGFuY2Vyc0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xhc3NpY0xvYWRCYWxhbmNlcnNDb25maWdcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQ2xhc3NpY0xvYWRCYWxhbmNlcnNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ2xhc3NpY0xvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGFzc2ljTG9hZEJhbGFuY2Vyc1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUYXJnZXRHcm91cHNDb25maWdcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldEdyb3Vwc0NvbmZpZ1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRHcm91cHNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0R3JvdXBzXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQXJuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXJuXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU214XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRlUHVibGljSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZU9uVGVybWluYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGV2aWNlSW5kZXhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXZpY2VJbmRleFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwdjZBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc0NvdW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzZXNTZXRcIixcbiAgICAgICAgICAgIFwicXVlcnlOYW1lXCI6IFwiSXB2NkFkZHJlc3Nlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc2VzU2V0XCIsXG4gICAgICAgICAgICBcInF1ZXJ5TmFtZVwiOiBcIlByaXZhdGVJcEFkZHJlc3Nlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbXpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGVuYW5jeVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZW5hbmN5XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbmZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3R1YWxCbG9ja0hvdXJseVByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWN0dWFsQmxvY2tIb3VybHlQcmljZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVHcm91cFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVHcm91cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJsb2NrRHVyYXRpb25NaW51dGVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmxvY2tEdXJhdGlvbk1pbnV0ZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlVGltZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmF1bHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5OFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmYXVsdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hHcm91cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaFNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hTcGVjaWZpY2F0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVXNlckRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlckRhdGFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgzXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cFNldFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQWRkcmVzc2luZ1R5cGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWRkcmVzc2luZ1R5cGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3JcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJsb2NrRGV2aWNlTWFwcGluZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic09wdGltaXplZFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWFtSW5zdGFuY2VQcm9maWxlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbWFnZUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIktlcm5lbElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtlcm5lbElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJLZXlOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleU5hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU214XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlU2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbXpcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYWNlbWVudFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJhbWRpc2tJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbmlcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vbml0b3JpbmdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaGVkQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaGVkQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3REZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RQcmljZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RQcmljZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVXBkYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGRhdGVUaW1lXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZhbGlkRnJvbVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbGlkRnJvbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRVbnRpbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbGlkVW50aWxcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3JcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU25pXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuYWJsZWRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbnZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGcm9tUG9ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZyb21Qb3J0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBQcm90b2NvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUHJvdG9jb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcFJhbmdlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUmFuZ2VzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZpeExpc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhMaXN0SWRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvUG9ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvUG9ydFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJJZEdyb3VwUGFpcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb2NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZvbHVtZUlkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU292XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJWb2x1bWVJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTW9kaWZpY2F0aW9uU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9kaWZpY2F0aW9uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFyZ2V0U2l6ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRTaXplXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFyZ2V0SW9wc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRJb3BzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFyZ2V0Vm9sdW1lVHlwZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRWb2x1bWVUeXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcmlnaW5hbFNpemVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3JpZ2luYWxTaXplXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3JpZ2luYWxJb3BzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9yaWdpbmFsSW9wc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9yaWdpbmFsVm9sdW1lVHlwZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvcmlnaW5hbFZvbHVtZVR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb2dyZXNzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2dyZXNzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0VGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmRUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcDFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY0lkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3I0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3I2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkdXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhvc3RJZFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2cyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RJZFNldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhvc3RSZXNlcnZhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdFJlc2VydmF0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3VybHlQcmljZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvdXJseVByaWNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VGYW1pbHlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUZhbWlseVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBheW1lbnRPcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXltZW50T3B0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBmcm9udFByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBmcm9udFByaWNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJIb3VybHlQcmljZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3VybHlQcmljZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVtYWluaW5nVG90YWxWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZW1haW5pbmdUb3RhbFZhbHVlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZW1haW5pbmdVcGZyb250VmFsdWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVtYWluaW5nVXBmcm9udFZhbHVlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcmxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiVXBsb2FkRW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVwbG9hZFNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXBsb2FkU3RhcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTM0J1Y2tldFwiOiB7fSxcbiAgICAgICAgXCJTM0tleVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcnRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJCeXRlc1wiLFxuICAgICAgICBcIkZvcm1hdFwiLFxuICAgICAgICBcIkltcG9ydE1hbmlmZXN0VXJsXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ5dGVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJ5dGVzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRm9ybWF0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW1wb3J0TWFuaWZlc3RVcmxcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1wb3J0TWFuaWZlc3RVcmxcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNydVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlNpemVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzaXplXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3M5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VySWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTc2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJHcm91cFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNzYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHJvZHVjdENvZGVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTc2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNzaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZFwiLFxuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdHZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFsbG93RG5zUmVzb2x1dGlvbkZyb21SZW1vdGVWcGNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93RWdyZXNzRnJvbUxvY2FsQ2xhc3NpY0xpbmtUb1JlbW90ZVZwY1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dFZ3Jlc3NGcm9tTG9jYWxWcGNUb1JlbW90ZUNsYXNzaWNMaW5rXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdHhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFsbG93RG5zUmVzb2x1dGlvbkZyb21SZW1vdGVWcGNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb3dEbnNSZXNvbHV0aW9uRnJvbVJlbW90ZVZwY1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93RWdyZXNzRnJvbUxvY2FsQ2xhc3NpY0xpbmtUb1JlbW90ZVZwY1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvd0VncmVzc0Zyb21Mb2NhbENsYXNzaWNMaW5rVG9SZW1vdGVWcGNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvd0VncmVzc0Zyb21Mb2NhbFZwY1RvUmVtb3RlQ2xhc3NpY0xpbmtcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb3dFZ3Jlc3NGcm9tTG9jYWxWcGNUb1JlbW90ZUNsYXNzaWNMaW5rXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3UzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaWdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9uaXRvcmluZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN3MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cElkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3djXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3VycmVudFN0YXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaTJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVudFN0YXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmV2aW91c1N0YXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaTJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJldmlvdXNTdGF0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBY2NvdW50QXR0cmlidXRlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWRkcmVzc2VzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkFkZHJlc3Nlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQXZhaWxhYmlsaXR5Wm9uZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUJ1bmRsZVRhc2tzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkJ1bmRsZVRhc2tzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb252ZXJzaW9uVGFza3NcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ29udmVyc2lvblRhc2tzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDdXN0b21lckdhdGV3YXlzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkN1c3RvbWVyR2F0ZXdheXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURoY3BPcHRpb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRoY3BPcHRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFeHBvcnRUYXNrc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFeHBvcnRUYXNrc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW1hZ2VzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkltYWdlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSW5zdGFuY2VTdGF0dXNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc2VydmF0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW50ZXJuZXRHYXRld2F5c1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbnRlcm5ldEdhdGV3YXlzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVLZXlQYWlyc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJLZXlQYWlyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTmF0R2F0ZXdheXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiTmF0R2F0ZXdheXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU5ldHdvcmtBY2xzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk5ldHdvcmtBY2xzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJOZXR3b3JrSW50ZXJmYWNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGxhY2VtZW50R3JvdXBzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBsYWNlbWVudEdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVnaW9uc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZWdpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZEluc3RhbmNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc01vZGlmaWNhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc2VydmVkSW5zdGFuY2VzTW9kaWZpY2F0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJvdXRlVGFibGVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJvdXRlVGFibGVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTZWN1cml0eUdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlNuYXBzaG90c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3BvdEZsZWV0UmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3BvdEZsZWV0UmVxdWVzdENvbmZpZ3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNwb3RJbnN0YW5jZVJlcXVlc3RzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlNwb3RJbnN0YW5jZVJlcXVlc3RzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTcG90UHJpY2VIaXN0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlNwb3RQcmljZUhpc3RvcnlcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN1Ym5ldHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3VibmV0c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJUYWdzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWb2x1bWVTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVm9sdW1lU3RhdHVzZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZvbHVtZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVm9sdW1lc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjUGVlcmluZ0Nvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlZwY1BlZXJpbmdDb25uZWN0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWcGNzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcG5Db25uZWN0aW9uc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWcG5Db25uZWN0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBuR2F0ZXdheXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVnBuR2F0ZXdheXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJJbnN0YW5jZUV4aXN0c1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDUsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUluc3RhbmNlc1wiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwibGVuZ3RoKFJlc2VydmF0aW9uc1tdKSA+IGAwYFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRJbnN0YW5jZUlELk5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJCdW5kbGVUYXNrQ29tcGxldGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVCdW5kbGVUYXNrc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjb21wbGV0ZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJCdW5kbGVUYXNrc1tdLlN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJmYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQnVuZGxlVGFza3NbXS5TdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiQ29udmVyc2lvblRhc2tDYW5jZWxsZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDb252ZXJzaW9uVGFza3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY2FuY2VsbGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNvbnZlcnNpb25UYXNrc1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJDb252ZXJzaW9uVGFza0NvbXBsZXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUNvbnZlcnNpb25UYXNrc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjb21wbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ29udmVyc2lvblRhc2tzW10uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImNhbmNlbGxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDb252ZXJzaW9uVGFza3NbXS5TdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY2FuY2VsbGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDb252ZXJzaW9uVGFza3NbXS5TdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiQ29udmVyc2lvblRhc2tEZWxldGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ29udmVyc2lvblRhc2tzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ29udmVyc2lvblRhc2tzW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkN1c3RvbWVyR2F0ZXdheUF2YWlsYWJsZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUN1c3RvbWVyR2F0ZXdheXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkN1c3RvbWVyR2F0ZXdheXNbXS5TdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDdXN0b21lckdhdGV3YXlzW10uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkN1c3RvbWVyR2F0ZXdheXNbXS5TdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiRXhwb3J0VGFza0NhbmNlbGxlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUV4cG9ydFRhc2tzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImNhbmNlbGxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJFeHBvcnRUYXNrc1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJFeHBvcnRUYXNrQ29tcGxldGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlRXhwb3J0VGFza3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY29tcGxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkV4cG9ydFRhc2tzW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkltYWdlRXhpc3RzXCI6IHtcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVJbWFnZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwibGVuZ3RoKEltYWdlc1tdKSA+IGAwYFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRBTUlJRC5Ob3RGb3VuZFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiSW1hZ2VBdmFpbGFibGVcIjoge1xuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUltYWdlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW1hZ2VzW10uU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYXZhaWxhYmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbWFnZXNbXS5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJmYWlsZWRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkluc3RhbmNlUnVubmluZ1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJydW5uaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc2VydmF0aW9uc1tdLkluc3RhbmNlc1tdLlN0YXRlLk5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInNodXR0aW5nLWRvd25cIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzZXJ2YXRpb25zW10uSW5zdGFuY2VzW10uU3RhdGUuTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwidGVybWluYXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXNlcnZhdGlvbnNbXS5JbnN0YW5jZXNbXS5TdGF0ZS5OYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdG9wcGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXNlcnZhdGlvbnNbXS5JbnN0YW5jZXNbXS5TdGF0ZS5OYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRJbnN0YW5jZUlELk5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJJbnN0YW5jZVN0YXR1c09rXCI6IHtcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVJbnN0YW5jZVN0YXR1c1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VTdGF0dXNlc1tdLkluc3RhbmNlU3RhdHVzLlN0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJva1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJJbnZhbGlkSW5zdGFuY2VJRC5Ob3RGb3VuZFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiSW5zdGFuY2VTdG9wcGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN0b3BwZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzZXJ2YXRpb25zW10uSW5zdGFuY2VzW10uU3RhdGUuTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicGVuZGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXNlcnZhdGlvbnNbXS5JbnN0YW5jZXNbXS5TdGF0ZS5OYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJ0ZXJtaW5hdGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc2VydmF0aW9uc1tdLkluc3RhbmNlc1tdLlN0YXRlLk5hbWVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkluc3RhbmNlVGVybWluYXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJ0ZXJtaW5hdGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc2VydmF0aW9uc1tdLkluc3RhbmNlc1tdLlN0YXRlLk5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInBlbmRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzZXJ2YXRpb25zW10uSW5zdGFuY2VzW10uU3RhdGUuTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcHBpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzZXJ2YXRpb25zW10uSW5zdGFuY2VzW10uU3RhdGUuTmFtZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiS2V5UGFpckV4aXN0c1wiOiB7XG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlS2V5UGFpcnNcIixcbiAgICAgIFwiZGVsYXlcIjogNSxcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwibGVuZ3RoKEtleVBhaXJzW10uS2V5TmFtZSkgPiBgMGBcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRLZXlQYWlyLk5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIk5hdEdhdGV3YXlBdmFpbGFibGVcIjoge1xuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZU5hdEdhdGV3YXlzXCIsXG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJOYXRHYXRld2F5c1tdLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiTmF0R2F0ZXdheXNbXS5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJmYWlsZWRcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIk5hdEdhdGV3YXlzW10uU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRpbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIk5hdEdhdGV3YXlzW10uU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJOYXRHYXRld2F5Tm90Rm91bmRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIk5ldHdvcmtJbnRlcmZhY2VBdmFpbGFibGVcIjoge1xuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZU5ldHdvcmtJbnRlcmZhY2VzXCIsXG4gICAgICBcImRlbGF5XCI6IDIwLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAxMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhdmFpbGFibGVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiTmV0d29ya0ludGVyZmFjZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWROZXR3b3JrSW50ZXJmYWNlSUQuTm90Rm91bmRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJQYXNzd29yZERhdGFBdmFpbGFibGVcIjoge1xuICAgICAgXCJvcGVyYXRpb25cIjogXCJHZXRQYXNzd29yZERhdGFcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcImxlbmd0aChQYXNzd29yZERhdGEpID4gYDBgXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiU25hcHNob3RDb21wbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTbmFwc2hvdHNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY29tcGxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlNuYXBzaG90c1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTcG90SW5zdGFuY2VSZXF1ZXN0RnVsZmlsbGVkXCI6IHtcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTcG90SW5zdGFuY2VSZXF1ZXN0c1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3BvdEluc3RhbmNlUmVxdWVzdHNbXS5TdGF0dXMuQ29kZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJmdWxmaWxsZWRcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlNwb3RJbnN0YW5jZVJlcXVlc3RzW10uU3RhdHVzLkNvZGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicmVxdWVzdC1jYW5jZWxlZC1hbmQtaW5zdGFuY2UtcnVubmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3BvdEluc3RhbmNlUmVxdWVzdHNbXS5TdGF0dXMuQ29kZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzY2hlZHVsZS1leHBpcmVkXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTcG90SW5zdGFuY2VSZXF1ZXN0c1tdLlN0YXR1cy5Db2RlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImNhbmNlbGVkLWJlZm9yZS1mdWxmaWxsbWVudFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3BvdEluc3RhbmNlUmVxdWVzdHNbXS5TdGF0dXMuQ29kZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJiYWQtcGFyYW1ldGVyc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3BvdEluc3RhbmNlUmVxdWVzdHNbXS5TdGF0dXMuQ29kZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzeXN0ZW0tZXJyb3JcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZFNwb3RJbnN0YW5jZVJlcXVlc3RJRC5Ob3RGb3VuZFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiU3VibmV0QXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlU3VibmV0c1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhdmFpbGFibGVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3VibmV0c1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTeXN0ZW1TdGF0dXNPa1wiOiB7XG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW5zdGFuY2VTdGF0dXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlU3RhdHVzZXNbXS5TeXN0ZW1TdGF0dXMuU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIm9rXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJWb2x1bWVBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVWb2x1bWVzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJWb2x1bWVzW10uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVm9sdW1lc1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJWb2x1bWVEZWxldGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVm9sdW1lc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZvbHVtZXNbXS5TdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJJbnZhbGlkVm9sdW1lLk5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlZvbHVtZUluVXNlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVm9sdW1lc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJpbi11c2VcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVm9sdW1lc1tdLlN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZvbHVtZXNbXS5TdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVnBjQXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVnBjc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhdmFpbGFibGVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVnBjc1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJWcGNFeGlzdHNcIjoge1xuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVZwY3NcIixcbiAgICAgIFwiZGVsYXlcIjogMSxcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNSxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInN0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogMjAwLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRWcGNJRC5Ob3RGb3VuZFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVnBuQ29ubmVjdGlvbkF2YWlsYWJsZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVZwbkNvbm5lY3Rpb25zXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJWcG5Db25uZWN0aW9uc1tdLlN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJWcG5Db25uZWN0aW9uc1tdLlN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZwbkNvbm5lY3Rpb25zW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlZwbkNvbm5lY3Rpb25EZWxldGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVnBuQ29ubmVjdGlvbnNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJWcG5Db25uZWN0aW9uc1tdLlN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJwZW5kaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZwbkNvbm5lY3Rpb25zW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uRXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVnBjUGVlcmluZ0Nvbm5lY3Rpb25zXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiAyMDAsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZFZwY1BlZXJpbmdDb25uZWN0aW9uSUQuTm90Rm91bmRcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uRGVsZXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVZwY1BlZXJpbmdDb25uZWN0aW9uc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZwY1BlZXJpbmdDb25uZWN0aW9uc1tdLlN0YXR1cy5Db2RlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRWcGNQZWVyaW5nQ29ubmVjdGlvbklELk5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTA5LTIxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImVjclwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBFQ1JcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBFQzIgQ29udGFpbmVyIFJlZ2lzdHJ5XCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFtYXpvbkVDMkNvbnRhaW5lclJlZ2lzdHJ5X1YyMDE1MDkyMVwiLFxuICAgIFwidWlkXCI6IFwiZWNyLTIwMTUtMDktMjFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQmF0Y2hDaGVja0xheWVyQXZhaWxhYmlsaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwibGF5ZXJEaWdlc3RzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxheWVyRGlnZXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsYXllcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxheWVyRGlnZXN0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibGF5ZXJBdmFpbGFiaWxpdHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJsYXllclNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1lZGlhVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWx1cmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsYXllckRpZ2VzdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImZhaWx1cmVDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZmFpbHVyZVJlYXNvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoRGVsZXRlSW1hZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJpbWFnZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJpbWFnZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbWFnZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaEdldEltYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwiaW1hZ2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaW1hZ2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWNjZXB0ZWRNZWRpYVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImltYWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWx1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbXBsZXRlTGF5ZXJVcGxvYWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJ1cGxvYWRJZFwiLFxuICAgICAgICAgIFwibGF5ZXJEaWdlc3RzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInVwbG9hZElkXCI6IHt9LFxuICAgICAgICAgIFwibGF5ZXJEaWdlc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInVwbG9hZElkXCI6IHt9LFxuICAgICAgICAgIFwibGF5ZXJEaWdlc3RcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXBvc2l0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxpZmVjeWNsZVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGlmZWN5Y2xlUG9saWN5VGV4dFwiOiB7fSxcbiAgICAgICAgICBcImxhc3RFdmFsdWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZXBvc2l0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJmb3JjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVwb3NpdG9yeVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5VGV4dFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW1hZ2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJpbWFnZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInRhZ1N0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbWFnZURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImltYWdlRGlnZXN0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiaW1hZ2VUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpbWFnZVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpbWFnZVB1c2hlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVwb3NpdG9yaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEF1dGhvcml6YXRpb25Ub2tlblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemF0aW9uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXV0aG9yaXphdGlvblRva2VuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZXhwaXJlc0F0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInByb3h5RW5kcG9pbnRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb3dubG9hZFVybEZvckxheWVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwibGF5ZXJEaWdlc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGF5ZXJEaWdlc3RcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkb3dubG9hZFVybFwiOiB7fSxcbiAgICAgICAgICBcImxheWVyRGlnZXN0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TGlmZWN5Y2xlUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJsaWZlY3ljbGVQb2xpY3lUZXh0XCI6IHt9LFxuICAgICAgICAgIFwibGFzdEV2YWx1YXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldExpZmVjeWNsZVBvbGljeVByZXZpZXdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImltYWdlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwidGFnU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxpZmVjeWNsZVBvbGljeVRleHRcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJwcmV2aWV3UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiaW1hZ2VUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpbWFnZURpZ2VzdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImltYWdlUHVzaGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImFwcGxpZWRSdWxlUHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImV4cGlyaW5nSW1hZ2VUb3RhbENvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZXBvc2l0b3J5UG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lUZXh0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW5pdGlhdGVMYXllclVwbG9hZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidXBsb2FkSWRcIjoge30sXG4gICAgICAgICAgXCJwYXJ0U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEltYWdlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0YWdTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW1hZ2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0SW1hZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJpbWFnZU1hbmlmZXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImltYWdlTWFuaWZlc3RcIjoge30sXG4gICAgICAgICAgXCJpbWFnZVRhZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dExpZmVjeWNsZVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImxpZmVjeWNsZVBvbGljeVRleHRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGlmZWN5Y2xlUG9saWN5VGV4dFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxpZmVjeWNsZVBvbGljeVRleHRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRSZXBvc2l0b3J5UG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwicG9saWN5VGV4dFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lUZXh0XCI6IHt9LFxuICAgICAgICAgIFwiZm9yY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeVRleHRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydExpZmVjeWNsZVBvbGljeVByZXZpZXdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxpZmVjeWNsZVBvbGljeVRleHRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJsaWZlY3ljbGVQb2xpY3lUZXh0XCI6IHt9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBsb2FkTGF5ZXJQYXJ0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwidXBsb2FkSWRcIixcbiAgICAgICAgICBcInBhcnRGaXJzdEJ5dGVcIixcbiAgICAgICAgICBcInBhcnRMYXN0Qnl0ZVwiLFxuICAgICAgICAgIFwibGF5ZXJQYXJ0QmxvYlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ1cGxvYWRJZFwiOiB7fSxcbiAgICAgICAgICBcInBhcnRGaXJzdEJ5dGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcnRMYXN0Qnl0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGF5ZXJQYXJ0QmxvYlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidXBsb2FkSWRcIjoge30sXG4gICAgICAgICAgXCJsYXN0Qnl0ZVJlY2VpdmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaW1hZ2VEaWdlc3RcIjoge30sXG4gICAgICAgIFwiaW1hZ2VUYWdcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImltYWdlSWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZUNvZGVcIjoge30sXG4gICAgICAgICAgXCJmYWlsdXJlUmVhc29uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgIFwiaW1hZ2VJZFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbWFnZU1hbmlmZXN0XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicmVwb3NpdG9yeUFyblwiOiB7fSxcbiAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICBcInJlcG9zaXRvcnlVcmlcIjoge30sXG4gICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlSW1hZ2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImltYWdlRGV0YWlsc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVwb3NpdG9yaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInJlcG9zaXRvcmllc1wiXG4gICAgfSxcbiAgICBcIkxpc3RJbWFnZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaW1hZ2VJZHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMTEtMTNcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZWNzXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIEVDU1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEVDMiBDb250YWluZXIgU2VydmljZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiRUNTXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFtYXpvbkVDMkNvbnRhaW5lclNlcnZpY2VWMjAxNDExMTNcIixcbiAgICBcInVpZFwiOiBcImVjcy0yMDE0LTExLTEzXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNyZWF0ZUNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3Rlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVNlcnZpY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInNlcnZpY2VOYW1lXCIsXG4gICAgICAgICAgXCJ0YXNrRGVmaW5pdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwic2VydmljZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0YXNrRGVmaW5pdGlvblwiOiB7fSxcbiAgICAgICAgICBcImxvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VydmljZVJlZ2lzdHJpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVzaXJlZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcImxhdW5jaFR5cGVcIjoge30sXG4gICAgICAgICAgXCJwbGF0Zm9ybVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJyb2xlXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGxhY2VtZW50Q29uc3RyYWludHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGxhY2VtZW50U3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV0d29ya0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNjaGVkdWxpbmdTdHJhdGVneVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNlcnZpY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNsdXN0ZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU2VydmljZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwic2VydmljZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwic2VydmljZVwiOiB7fSxcbiAgICAgICAgICBcImZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzZXJ2aWNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJDb250YWluZXJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlXCI6IHt9LFxuICAgICAgICAgIFwiZm9yY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyVGFza0RlZmluaXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5jbHVkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWx1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbnRhaW5lckluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTZXJ2aWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwic2VydmljZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcInNlcnZpY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNlcnZpY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFza0RlZmluaXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFza3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhc2tzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJ0YXNrc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2NvdmVyUG9sbEVuZHBvaW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlXCI6IHt9LFxuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImVuZHBvaW50XCI6IHt9LFxuICAgICAgICAgIFwidGVsZW1ldHJ5RW5kcG9pbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFyZ2V0VHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwidGFyZ2V0VHlwZVwiOiB7fSxcbiAgICAgICAgICBcImF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENsdXN0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDb250YWluZXJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcImZpbHRlclwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U2VydmljZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhdW5jaFR5cGVcIjoge30sXG4gICAgICAgICAgXCJzY2hlZHVsaW5nU3RyYXRlZ3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzZXJ2aWNlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFza0RlZmluaXRpb25GYW1pbGllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmYW1pbHlQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmYW1pbGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFza0RlZmluaXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZhbWlseVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcInNvcnRcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrRGVmaW5pdGlvbkFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhc2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZVwiOiB7fSxcbiAgICAgICAgICBcImZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXJ0ZWRCeVwiOiB7fSxcbiAgICAgICAgICBcInNlcnZpY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzaXJlZFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImxhdW5jaFR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJDb250YWluZXJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwiaW5zdGFuY2VJZGVudGl0eURvY3VtZW50XCI6IHt9LFxuICAgICAgICAgIFwiaW5zdGFuY2VJZGVudGl0eURvY3VtZW50U2lnbmF0dXJlXCI6IHt9LFxuICAgICAgICAgIFwidG90YWxSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcnNpb25JbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyVGFza0RlZmluaXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImZhbWlseVwiLFxuICAgICAgICAgIFwiY29udGFpbmVyRGVmaW5pdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwidGFza1JvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJleGVjdXRpb25Sb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV0d29ya01vZGVcIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJEZWZpbml0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidm9sdW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGxhY2VtZW50Q29uc3RyYWludHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVpcmVzQ29tcGF0aWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcHVcIjoge30sXG4gICAgICAgICAgXCJtZW1vcnlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrRGVmaW5pdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUnVuVGFza1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHt9LFxuICAgICAgICAgIFwib3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhcnRlZEJ5XCI6IHt9LFxuICAgICAgICAgIFwiZ3JvdXBcIjoge30sXG4gICAgICAgICAgXCJwbGFjZW1lbnRDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwbGFjZW1lbnRTdHJhdGVneVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXVuY2hUeXBlXCI6IHt9LFxuICAgICAgICAgIFwicGxhdGZvcm1WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwibmV0d29ya0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWx1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydFRhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCIsXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHt9LFxuICAgICAgICAgIFwib3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhcnRlZEJ5XCI6IHt9LFxuICAgICAgICAgIFwiZ3JvdXBcIjoge30sXG4gICAgICAgICAgXCJuZXR3b3JrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BUYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0YXNrXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJ0YXNrXCI6IHt9LFxuICAgICAgICAgIFwicmVhc29uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3VibWl0Q29udGFpbmVyU3RhdGVDaGFuZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcInRhc2tcIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiZXhpdENvZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlYXNvblwiOiB7fSxcbiAgICAgICAgICBcIm5ldHdvcmtCaW5kaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYWNrbm93bGVkZ21lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdWJtaXRUYXNrU3RhdGVDaGFuZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcInRhc2tcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJyZWFzb25cIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJjb250YWluZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZXhpdENvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm5ldHdvcmtCaW5kaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNmXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXR0YWNobWVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJhdHRhY2htZW50QXJuXCIsXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXR0YWNobWVudEFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInB1bGxTdGFydGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHVsbFN0b3BwZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleGVjdXRpb25TdG9wcGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYWNrbm93bGVkZ21lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDb250YWluZXJBZ2VudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNvbnRhaW5lckluc3RhbmNlc1N0YXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZXNcIixcbiAgICAgICAgICBcInN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVNlcnZpY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInNlcnZpY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcInNlcnZpY2VcIjoge30sXG4gICAgICAgICAgXCJkZXNpcmVkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV0d29ya0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGxhdGZvcm1WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiZm9yY2VOZXdEZXBsb3ltZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJoZWFsdGhDaGVja0dyYWNlUGVyaW9kU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2VydmljZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImNsdXN0ZXJBcm5cIjoge30sXG4gICAgICAgIFwiY2x1c3Rlck5hbWVcIjoge30sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInJlZ2lzdGVyZWRDb250YWluZXJJbnN0YW5jZXNDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicnVubmluZ1Rhc2tzQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInBlbmRpbmdUYXNrc0NvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhY3RpdmVTZXJ2aWNlc0NvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0aXN0aWNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhcmdldEdyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgIFwibG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lck5hbWVcIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlBcm5cIjoge30sXG4gICAgICAgICAgXCJwb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250YWluZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY29udGFpbmVyUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm1heGltdW1QZXJjZW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtaW5pbXVtSGVhbHRoeVBlcmNlbnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwiZXhwcmVzc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwiZmllbGRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXdzdnBjQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInN1Ym5ldHNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwic3VibmV0c1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJzZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJhc3NpZ25QdWJsaWNJcFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwic2VydmljZUFyblwiOiB7fSxcbiAgICAgICAgXCJzZXJ2aWNlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJjbHVzdGVyQXJuXCI6IHt9LFxuICAgICAgICBcImxvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmljZVJlZ2lzdHJpZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcImRlc2lyZWRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicnVubmluZ0NvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwZW5kaW5nQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhdW5jaFR5cGVcIjoge30sXG4gICAgICAgIFwicGxhdGZvcm1WZXJzaW9uXCI6IHt9LFxuICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHt9LFxuICAgICAgICBcImRlcGxveW1lbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlcGxveW1lbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJ0YXNrRGVmaW5pdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJkZXNpcmVkQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInBlbmRpbmdDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicnVubmluZ0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImxhdW5jaFR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwicGxhdGZvcm1WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIm5ldHdvcmtDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgIFwiZXZlbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwbGFjZW1lbnRDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwbGFjZW1lbnRTdHJhdGVneVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuZXR3b3JrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJoZWFsdGhDaGVja0dyYWNlUGVyaW9kU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NoZWR1bGluZ1N0cmF0ZWd5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIm5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJ2YWx1ZVwiOiB7fSxcbiAgICAgICAgXCJ0YXJnZXRUeXBlXCI6IHt9LFxuICAgICAgICBcInRhcmdldElkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VBcm5cIjoge30sXG4gICAgICAgIFwiZWMySW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ2ZXJzaW9uSW5mb1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVtYWluaW5nUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWdpc3RlcmVkUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwiYWdlbnRDb25uZWN0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcInJ1bm5pbmdUYXNrc0NvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwZW5kaW5nVGFza3NDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWdlbnRVcGRhdGVTdGF0dXNcIjoge30sXG4gICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWdpc3RlcmVkQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXR0YWNobWVudHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYWdlbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcImFnZW50SGFzaFwiOiB7fSxcbiAgICAgICAgXCJkb2NrZXJWZXJzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJkb3VibGVWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb25nVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImludGVnZXJWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RyaW5nU2V0VmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJkZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0YXNrRGVmaW5pdGlvbkFyblwiOiB7fSxcbiAgICAgICAgXCJjb250YWluZXJEZWZpbml0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmFtaWx5XCI6IHt9LFxuICAgICAgICBcInRhc2tSb2xlQXJuXCI6IHt9LFxuICAgICAgICBcImV4ZWN1dGlvblJvbGVBcm5cIjoge30sXG4gICAgICAgIFwibmV0d29ya01vZGVcIjoge30sXG4gICAgICAgIFwicmV2aXNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInZvbHVtZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJyZXF1aXJlc0F0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGxhY2VtZW50Q29uc3RyYWludHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMm1cIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbXBhdGliaWxpdGllc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMycFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWlyZXNDb21wYXRpYmlsaXRpZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMnBcIlxuICAgICAgICB9LFxuICAgICAgICBcImNwdVwiOiB7fSxcbiAgICAgICAgXCJtZW1vcnlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaW1hZ2VcIjoge30sXG4gICAgICAgICAgXCJjcHVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1lbW9yeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWVtb3J5UmVzZXJ2YXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbmtzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvcnRNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiY29udGFpbmVyUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiaG9zdFBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInByb3RvY29sXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXNzZW50aWFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbnRyeVBvaW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbW1hbmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW52aXJvbm1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1vdW50UG9pbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzb3VyY2VWb2x1bWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjb250YWluZXJQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZvbHVtZXNGcm9tXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDb250YWluZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZWFkT25seVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGludXhQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjYXBhYmlsaXRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImFkZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJkcm9wXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZGV2aWNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiaG9zdFBhdGhcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiaG9zdFBhdGhcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiY29udGFpbmVyUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJwZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiaW5pdFByb2Nlc3NFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJzaGFyZWRNZW1vcnlTaXplXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ0bXBmc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiY29udGFpbmVyUGF0aFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNpemVcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiY29udGFpbmVyUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJzaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJtb3VudE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaG9zdG5hbWVcIjoge30sXG4gICAgICAgICAgXCJ1c2VyXCI6IHt9LFxuICAgICAgICAgIFwid29ya2luZ0RpcmVjdG9yeVwiOiB7fSxcbiAgICAgICAgICBcImRpc2FibGVOZXR3b3JraW5nXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcml2aWxlZ2VkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWFkb25seVJvb3RGaWxlc3lzdGVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkbnNTZXJ2ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRuc1NlYXJjaERvbWFpbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXh0cmFIb3N0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImhvc3RuYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJpcEFkZHJlc3NcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiaG9zdG5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJpcEFkZHJlc3NcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2NrZXJTZWN1cml0eU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9ja2VyTGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVsaW1pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJzb2Z0TGltaXRcIixcbiAgICAgICAgICAgICAgICBcImhhcmRMaW1pdFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic29mdExpbWl0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJoYXJkTGltaXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxvZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJsb2dEcml2ZXJcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibG9nRHJpdmVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIm9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJoZWFsdGhDaGVja1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcImNvbW1hbmRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY29tbWFuZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJpbnRlcnZhbFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicmV0cmllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3RhcnRQZXJpb2RcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImhvc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInNvdXJjZVBhdGhcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwiZXhwcmVzc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMycFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMndcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcInJlYXNvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzM5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0YXNrQXJuXCI6IHt9LFxuICAgICAgICBcImNsdXN0ZXJBcm5cIjoge30sXG4gICAgICAgIFwidGFza0RlZmluaXRpb25Bcm5cIjoge30sXG4gICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VBcm5cIjoge30sXG4gICAgICAgIFwib3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsYXN0U3RhdHVzXCI6IHt9LFxuICAgICAgICBcImRlc2lyZWRTdGF0dXNcIjoge30sXG4gICAgICAgIFwiY3B1XCI6IHt9LFxuICAgICAgICBcIm1lbW9yeVwiOiB7fSxcbiAgICAgICAgXCJjb250YWluZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImNvbnRhaW5lckFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ0YXNrQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwibGFzdFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJleGl0Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICBcIm5ldHdvcmtCaW5kaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibmV0d29ya0ludGVyZmFjZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXR0YWNobWVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInByaXZhdGVJcHY0QWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJpcHY2QWRkcmVzc1wiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJoZWFsdGhTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhcnRlZEJ5XCI6IHt9LFxuICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0b3BwZWRSZWFzb25cIjoge30sXG4gICAgICAgIFwiY29ubmVjdGl2aXR5XCI6IHt9LFxuICAgICAgICBcImNvbm5lY3Rpdml0eUF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInB1bGxTdGFydGVkQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHVsbFN0b3BwZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGVjdXRpb25TdG9wcGVkQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdG9wcGluZ0F0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0b3BwZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJncm91cFwiOiB7fSxcbiAgICAgICAgXCJsYXVuY2hUeXBlXCI6IHt9LFxuICAgICAgICBcInBsYXRmb3JtVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJhdHRhY2htZW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaGVhbHRoU3RhdHVzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiY29udGFpbmVyT3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiY29tbWFuZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJlbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY3B1XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJtZW1vcnlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIm1lbW9yeVJlc2VydmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJ0YXNrUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJleGVjdXRpb25Sb2xlQXJuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYmluZElQXCI6IHt9LFxuICAgICAgICAgIFwiY29udGFpbmVyUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaG9zdFBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByb3RvY29sXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0Q2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiY2x1c3RlckFybnNcIlxuICAgIH0sXG4gICAgXCJMaXN0Q29udGFpbmVySW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImNvbnRhaW5lckluc3RhbmNlQXJuc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTZXJ2aWNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJzZXJ2aWNlQXJuc1wiXG4gICAgfSxcbiAgICBcIkxpc3RUYXNrRGVmaW5pdGlvbkZhbWlsaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImZhbWlsaWVzXCJcbiAgICB9LFxuICAgIFwiTGlzdFRhc2tEZWZpbml0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJ0YXNrRGVmaW5pdGlvbkFybnNcIlxuICAgIH0sXG4gICAgXCJMaXN0VGFza3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwidGFza0FybnNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJUYXNrc1J1bm5pbmdcIjoge1xuICAgICAgXCJkZWxheVwiOiA2LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVRhc2tzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDEwMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJTVE9QUEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcInRhc2tzW10ubGFzdFN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiTUlTU0lOR1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJmYWlsdXJlc1tdLnJlYXNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUlVOTklOR1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJ0YXNrc1tdLmxhc3RTdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlRhc2tzU3RvcHBlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDYsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVGFza3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTAwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlNUT1BQRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwidGFza3NbXS5sYXN0U3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTZXJ2aWNlc1N0YWJsZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVNlcnZpY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIk1JU1NJTkdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiZmFpbHVyZXNbXS5yZWFzb25cIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkRSQUlOSU5HXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcInNlcnZpY2VzW10uc3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJJTkFDVElWRVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJzZXJ2aWNlc1tdLnN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IHRydWUsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcImxlbmd0aChzZXJ2aWNlc1s/IShsZW5ndGgoZGVwbG95bWVudHMpID09IGAxYCAmJiBydW5uaW5nQ291bnQgPT0gZGVzaXJlZENvdW50KV0pID09IGAwYFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiU2VydmljZXNJbmFjdGl2ZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVNlcnZpY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIk1JU1NJTkdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiZmFpbHVyZXNbXS5yZWFzb25cIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIklOQUNUSVZFXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcInNlcnZpY2VzW10uc3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wMi0wMlwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJlbGFzdGljYWNoZVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEVsYXN0aUNhY2hlXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImVsYXN0aWNhY2hlLTIwMTUtMDItMDJcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9lbGFzdGljYWNoZS5hbWF6b25hd3MuY29tL2RvYy8yMDE1LTAyLTAyL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRUYWdzVG9SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNVwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBZGRUYWdzVG9SZXNvdXJjZVJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBdXRob3JpemVDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlU25hcHNob3ROYW1lXCIsXG4gICAgICAgICAgXCJUYXJnZXRTbmFwc2hvdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlU25hcHNob3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0U25hcHNob3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0QnVja2V0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvcHlTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNhY2hlQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJBWk1vZGVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTnVtQ2FjaGVOb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90QXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90UmV0ZW50aW9uTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90V2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiQXV0aFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNhY2hlQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cEZhbWlseVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ2FjaGVQYXJhbWV0ZXJHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNhY2hlU2VjdXJpdHlHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cERlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVDYWNoZVN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCIsXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJpbWFyeUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9tYXRpY0ZhaWxvdmVyRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTnVtQ2FjaGVDbHVzdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQ2FjaGVDbHVzdGVyQVpzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk51bU5vZGVHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxpY2FzUGVyTm9kZUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb2RlR3JvdXBDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTm9kZUdyb3VwQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdEFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25Ub3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdFJldGVudGlvbkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIkF1dGhUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlRyYW5zaXRFbmNyeXB0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXRSZXN0RW5jcnlwdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVSZXBsaWNhdGlvbkdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNuYXBzaG90TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNhY2hlQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJGaW5hbFNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVDYWNoZUNsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2FjaGVQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDYWNoZVNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNhY2hlU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlU3VibmV0R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlU3VibmV0R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIlJldGFpblByaW1hcnlDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5hbFNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVSZXBsaWNhdGlvbkdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNuYXBzaG90TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNhY2hlQ2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJTaG93Q2FjaGVOb2RlSW5mb1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2hvd0NhY2hlQ2x1c3RlcnNOb3RJblJlcGxpY2F0aW9uR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDYWNoZUNsdXN0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlQ2x1c3RlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVFbmdpbmVWZXJzaW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDYWNoZUVuZ2luZURlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2FjaGVFbmdpbmVWZXJzaW9uRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZVBhcmFtZXRlckdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlVHlwZVNwZWNpZmljUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDYWNoZVNlY3VyaXR5R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlU2VjdXJpdHlHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlU3VibmV0R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwRmFtaWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZURlZmF1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJrXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDYWNoZU5vZGVUeXBlU3BlY2lmaWNQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXBsaWNhdGlvbkdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRDYWNoZU5vZGVJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZENhY2hlTm9kZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWRDYWNoZU5vZGVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpeGVkUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXNhZ2VQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2NcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdFNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNob3dOb2RlR3JvdXBDb25maWdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVNuYXBzaG90c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNuYXBzaG90XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdEFsbG93ZWROb2RlVHlwZU1vZGlmaWNhdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTY2FsZVVwTW9kaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNVwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0VGFnc0ZvclJlc291cmNlUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5Q2FjaGVDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIk51bUNhY2hlTm9kZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlTm9kZUlkc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFaTW9kZVwiOiB7fSxcbiAgICAgICAgICBcIk5ld0F2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25Ub3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVG9waWNTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90UmV0ZW50aW9uTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90V2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlDYWNoZUNsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5Q2FjaGVQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVWYWx1ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMzdVwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5Q2FjaGVTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5UmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByaW1hcnlDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdHRpbmdDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJBdXRvbWF0aWNGYWlsb3ZlckVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25Ub3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVG9waWNTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90UmV0ZW50aW9uTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90V2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk5vZGVHcm91cElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeVJlcGxpY2F0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlSZXBsaWNhdGlvbkdyb3VwU2hhcmRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIixcbiAgICAgICAgICBcIk5vZGVHcm91cENvdW50XCIsXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIk5vZGVHcm91cENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNoYXJkaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzaGFyZGluZ0NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQcmVmZXJyZWRBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb2RlR3JvdXBzVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5vZGVHcm91cFRvUmVtb3ZlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZENhY2hlTm9kZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXJjaGFzZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRDYWNoZU5vZGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlYm9vdENhY2hlQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIixcbiAgICAgICAgICBcIkNhY2hlTm9kZUlkc1RvUmVib290XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlSWRzVG9SZWJvb3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlYm9vdENhY2hlQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbVJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRBbGxQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMzdVwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXNldENhY2hlUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmV2b2tlQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXN0RmFpbG92ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiLFxuICAgICAgICAgIFwiTm9kZUdyb3VwSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZUdyb3VwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVGVzdEZhaWxvdmVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYWdMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPd25lcklkXCI6IHt9LFxuICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVDMlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU25hcHNob3ROYW1lXCI6IHt9LFxuICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RTb3VyY2VcIjoge30sXG4gICAgICAgIFwiQ2FjaGVOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJOdW1DYWNoZU5vZGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIkNhY2hlQ2x1c3RlckNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlNuYXBzaG90UmV0ZW50aW9uTGltaXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNuYXBzaG90V2luZG93XCI6IHt9LFxuICAgICAgICBcIk51bU5vZGVHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF1dG9tYXRpY0ZhaWxvdmVyXCI6IHt9LFxuICAgICAgICBcIk5vZGVTbmFwc2hvdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5vZGVTbmFwc2hvdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNhY2hlQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5vZGVHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNhY2hlTm9kZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5vZGVHcm91cENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ2FjaGVTaXplXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNhY2hlTm9kZUNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU25hcHNob3RDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU2xvdHNcIjoge30sXG4gICAgICAgIFwiUmVwbGljYUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmltYXJ5QXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJSZXBsaWNhQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2xcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHJlZmVycmVkQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTbmFwc2hvdEFyblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgXCJDb25maWd1cmF0aW9uRW5kcG9pbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xpZW50RG93bmxvYWRMYW5kaW5nUGFnZVwiOiB7fSxcbiAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkNhY2hlQ2x1c3RlclN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJOdW1DYWNoZU5vZGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIkNhY2hlQ2x1c3RlckNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgIFwiUGVuZGluZ01vZGlmaWVkVmFsdWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJOdW1DYWNoZU5vZGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDYWNoZU5vZGVJZHNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJUb3BpY1N0YXR1c1wiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZVNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiUGFyYW1ldGVyQXBwbHlTdGF0dXNcIjoge30sXG4gICAgICAgICAgICBcIkNhY2hlTm9kZUlkc1RvUmVib290XCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiQ2FjaGVOb2Rlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVOb2RlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ2FjaGVOb2RlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQ2FjaGVOb2RlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNhY2hlTm9kZUNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5kcG9pbnRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiU291cmNlQ2FjaGVOb2RlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tZXJBdmFpbGFiaWxpdHlab25lXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdFJldGVudGlvbkxpbWl0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbmFwc2hvdFdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJBdXRoVG9rZW5FbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUcmFuc2l0RW5jcnlwdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkF0UmVzdEVuY3J5cHRpb25FbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZU5vZGVJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0SWRlbnRpZmllclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN1Ym5ldElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiU3VibmV0QXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQZW5kaW5nTW9kaWZpZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlByaW1hcnlDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgICBcIkF1dG9tYXRpY0ZhaWxvdmVyU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgXCJSZXNoYXJkaW5nXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTbG90TWlncmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJQcm9ncmVzc1BlcmNlbnRhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTWVtYmVyQ2x1c3RlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk5vZGVHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5vZGVHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5vZGVHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcmltYXJ5RW5kcG9pbnRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2xvdHNcIjoge30sXG4gICAgICAgICAgICAgIFwiTm9kZUdyb3VwTWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTm9kZUdyb3VwTWVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ2FjaGVOb2RlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUmVhZEVuZHBvaW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlByZWZlcnJlZEF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ3VycmVudFJvbGVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU25hcHNob3R0aW5nQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICBcIkF1dG9tYXRpY0ZhaWxvdmVyXCI6IHt9LFxuICAgICAgICBcIkNvbmZpZ3VyYXRpb25FbmRwb2ludFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbmFwc2hvdFJldGVudGlvbkxpbWl0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbmFwc2hvdFdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJDbHVzdGVyRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FjaGVOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJBdXRoVG9rZW5FbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUcmFuc2l0RW5jcnlwdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkF0UmVzdEVuY3J5cHRpb25FbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMya1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFyYW1ldGVyXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlclZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJEYXRhVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbmltdW1FbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVOb2RlVHlwZVNwZWNpZmljUGFyYW1ldGVyXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5pbXVtRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlTm9kZVR5cGVTcGVjaWZpY1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVOb2RlVHlwZVNwZWNpZmljVmFsdWVcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXNlcnZlZENhY2hlTm9kZUlkXCI6IHt9LFxuICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgIFwiQ2FjaGVOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZpeGVkUHJpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXNhZ2VQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZU5vZGVDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNjXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMzY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVjdXJyaW5nQ2hhcmdlXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlQW1vdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUZyZXF1ZW5jeVwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhcmFtZXRlck5hbWVWYWx1ZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUNhY2hlQ2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ2FjaGVDbHVzdGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDYWNoZUVuZ2luZVZlcnNpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDYWNoZVBhcmFtZXRlckdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ2FjaGVTZWN1cml0eUdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ2FjaGVTdWJuZXRHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJFbmdpbmVEZWZhdWx0cy5NYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkVuZ2luZURlZmF1bHRzLlBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlcGxpY2F0aW9uR3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWRDYWNoZU5vZGVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU25hcHNob3RzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gICAgXCJ2ZXJzaW9uXCI6MixcbiAgICBcIndhaXRlcnNcIjp7XG4gICAgICAgIFwiQ2FjaGVDbHVzdGVyQXZhaWxhYmxlXCI6e1xuICAgICAgICAgICAgXCJhY2NlcHRvcnNcIjpbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImF2YWlsYWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbGxcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiZGVsZXRlZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiZGVsZXRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcImZhaWx1cmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImluY29tcGF0aWJsZS1uZXR3b3JrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFueVwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJmYWlsdXJlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiQ2FjaGVDbHVzdGVyc1tdLkNhY2hlQ2x1c3RlclN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJyZXN0b3JlLWZhaWxlZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVsYXlcIjoxNSxcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjpcIldhaXQgdW50aWwgRWxhc3RpQ2FjaGUgY2x1c3RlciBpcyBhdmFpbGFibGUuXCIsXG4gICAgICAgICAgICBcIm1heEF0dGVtcHRzXCI6NDAsXG4gICAgICAgICAgICBcIm9wZXJhdGlvblwiOlwiRGVzY3JpYmVDYWNoZUNsdXN0ZXJzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZUNsdXN0ZXJEZWxldGVkXCI6e1xuICAgICAgICAgICAgXCJhY2NlcHRvcnNcIjpbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImRlbGV0ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQWxsXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcInN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJDYWNoZUNsdXN0ZXJOb3RGb3VuZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcInN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImF2YWlsYWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiY3JlYXRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcImZhaWx1cmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImluY29tcGF0aWJsZS1uZXR3b3JrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFueVwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJmYWlsdXJlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiQ2FjaGVDbHVzdGVyc1tdLkNhY2hlQ2x1c3RlclN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJtb2RpZnlpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcImZhaWx1cmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcInJlc3RvcmUtZmFpbGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFueVwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJmYWlsdXJlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiQ2FjaGVDbHVzdGVyc1tdLkNhY2hlQ2x1c3RlclN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJzbmFwc2hvdHRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcImZhaWx1cmVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlbGF5XCI6MTUsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6XCJXYWl0IHVudGlsIEVsYXN0aUNhY2hlIGNsdXN0ZXIgaXMgZGVsZXRlZC5cIixcbiAgICAgICAgICAgIFwibWF4QXR0ZW1wdHNcIjo0MCxcbiAgICAgICAgICAgIFwib3BlcmF0aW9uXCI6XCJEZXNjcmliZUNhY2hlQ2x1c3RlcnNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBBdmFpbGFibGVcIjp7XG4gICAgICAgICAgICBcImFjY2VwdG9yc1wiOltcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIlJlcGxpY2F0aW9uR3JvdXBzW10uU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImF2YWlsYWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbGxcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIlJlcGxpY2F0aW9uR3JvdXBzW10uU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImRlbGV0ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcImZhaWx1cmVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlbGF5XCI6MTUsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6XCJXYWl0IHVudGlsIEVsYXN0aUNhY2hlIHJlcGxpY2F0aW9uIGdyb3VwIGlzIGF2YWlsYWJsZS5cIixcbiAgICAgICAgICAgIFwibWF4QXR0ZW1wdHNcIjo0MCxcbiAgICAgICAgICAgIFwib3BlcmF0aW9uXCI6XCJEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwRGVsZXRlZFwiOntcbiAgICAgICAgICAgIFwiYWNjZXB0b3JzXCI6W1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiUmVwbGljYXRpb25Hcm91cHNbXS5TdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiZGVsZXRlZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbGxcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIlJlcGxpY2F0aW9uR3JvdXBzW10uU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImF2YWlsYWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcIlJlcGxpY2F0aW9uR3JvdXBOb3RGb3VuZEZhdWx0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVsYXlcIjoxNSxcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjpcIldhaXQgdW50aWwgRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAgaXMgZGVsZXRlZC5cIixcbiAgICAgICAgICAgIFwibWF4QXR0ZW1wdHNcIjo0MCxcbiAgICAgICAgICAgIFwib3BlcmF0aW9uXCI6XCJEZXNjcmliZVJlcGxpY2F0aW9uR3JvdXBzXCJcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTAtMTItMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZWxhc3RpY2JlYW5zdGFsa1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkVsYXN0aWMgQmVhbnN0YWxrXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgRWxhc3RpYyBCZWFuc3RhbGtcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkVsYXN0aWMgQmVhbnN0YWxrXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImVsYXN0aWNiZWFuc3RhbGstMjAxMC0xMi0wMVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL2VsYXN0aWNiZWFuc3RhbGsuYW1hem9uYXdzLmNvbS9kb2NzLzIwMTAtMTItMDEvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFib3J0RW52aXJvbm1lbnRVcGRhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFwcGx5RW52aXJvbm1lbnRNYW5hZ2VkQWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiQWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXBwbHlFbnZpcm9ubWVudE1hbmFnZWRBY3Rpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkFjdGlvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQWN0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNoZWNrRE5TQXZhaWxhYmlsaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDTkFNRVByZWZpeFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDTkFNRVByZWZpeFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDaGVja0ROU0F2YWlsYWJpbGl0eVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnVsbHlRdWFsaWZpZWRDTkFNRVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbXBvc2VFbnZpcm9ubWVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvbkxhYmVsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvbXBvc2VFbnZpcm9ubWVudHNSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBcHBsaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VMaWZlY3ljbGVDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUFwcGxpY2F0aW9uUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQXBwbGljYXRpb25WZXJzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUJ1aWxkSW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZUJ1bmRsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVpbGRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiQ29kZUJ1aWxkU2VydmljZVJvbGVcIixcbiAgICAgICAgICAgICAgXCJJbWFnZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBcnRpZmFjdE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ29kZUJ1aWxkU2VydmljZVJvbGVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ29tcHV0ZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiSW1hZ2VcIjoge30sXG4gICAgICAgICAgICAgIFwiVGltZW91dEluTWludXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0NyZWF0ZUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9jZXNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVBcHBsaWNhdGlvblZlcnNpb25SZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDb25maWd1cmF0aW9uVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVDb25maWd1cmF0aW9uVGVtcGxhdGVSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFbnZpcm9ubWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ05BTUVQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJUaWVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUVudmlyb25tZW50UmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUGxhdGZvcm1WZXJzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGF0Zm9ybU5hbWVcIixcbiAgICAgICAgICBcIlBsYXRmb3JtVmVyc2lvblwiLFxuICAgICAgICAgIFwiUGxhdGZvcm1EZWZpbml0aW9uQnVuZGxlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYXRmb3JtVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlBsYXRmb3JtRGVmaW5pdGlvbkJ1bmRsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVQbGF0Zm9ybVZlcnNpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybVN1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMya1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1aWxkZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFSTlwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdG9yYWdlTG9jYXRpb25cIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVTdG9yYWdlTG9jYXRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTM0J1Y2tldFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVybWluYXRlRW52QnlGb3JjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXBwbGljYXRpb25WZXJzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJEZWxldGVTb3VyY2VCdW5kbGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRW52aXJvbm1lbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQbGF0Zm9ybVZlcnNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlUGxhdGZvcm1WZXJzaW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1TdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlUXVvdGFzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBcHBsaWNhdGlvblF1b3RhXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBcHBsaWNhdGlvblZlcnNpb25RdW90YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW52aXJvbm1lbnRRdW90YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29uZmlndXJhdGlvblRlbXBsYXRlUXVvdGFcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkN1c3RvbVBsYXRmb3JtUXVvdGFcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXBwbGljYXRpb25WZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uTGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBcHBsaWNhdGlvblZlcnNpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25WZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFwcGxpY2F0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25PcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDb25maWd1cmF0aW9uT3B0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2hhbmdlU2V2ZXJpdHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJVc2VyRGVmaW5lZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1pblZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4TGVuZ3RoXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWdleFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJMYWJlbFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25TZXR0aW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25TZXR0aW5nc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVudmlyb25tZW50SGVhbHRoXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbnZpcm9ubWVudEhlYWx0aFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIkNvbG9yXCI6IHt9LFxuICAgICAgICAgIFwiQ2F1c2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlc0hlYWx0aFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTm9EYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJVbmtub3duXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQZW5kaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPa1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5mb1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiV2FybmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVncmFkZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNldmVyZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVmcmVzaGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbnZpcm9ubWVudE1hbmFnZWRBY3Rpb25IaXN0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRW52aXJvbm1lbnRNYW5hZ2VkQWN0aW9uSGlzdG9yeVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hbmFnZWRBY3Rpb25IaXN0b3J5SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWN0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFjdGlvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmFpbHVyZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGYWlsdXJlRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmluaXNoZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW52aXJvbm1lbnRNYW5hZ2VkQWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRW52aXJvbm1lbnRNYW5hZ2VkQWN0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hbmFnZWRBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFjdGlvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWN0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIldpbmRvd1N0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVudmlyb25tZW50UmVzb3VyY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbnZpcm9ubWVudFJlc291cmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50UmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMb2FkQmFsYW5jZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVHJpZ2dlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWV1ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJVUkxcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbnZpcm9ubWVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvbkxhYmVsXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlRGVsZXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZWREZWxldGVkQmFja1RvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2lcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbnZpcm9ubWVudHNSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgICAgXCJSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgXCJTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXZlbnREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWZXJzaW9uTGFiZWxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNldmVyaXR5XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZXNIZWFsdGhcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUluc3RhbmNlc0hlYWx0aFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSGVhbHRoTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkhlYWx0aFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbG9yXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2F1c2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXVuY2hlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFwcGxpY2F0aW9uTWV0cmljc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3lzdGVtXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDUFVVdGlsaXphdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiVXNlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJOaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlN5c3RlbVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJZGxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklPV2FpdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJUlFcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiU29mdElSUVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkxvYWRBdmVyYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVwbG95bWVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiVmVyc2lvbkxhYmVsXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkRlcGxveW1lbnRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkRlcGxveW1lbnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWZyZXNoZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBsYXRmb3JtVmVyc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVBsYXRmb3JtVmVyc2lvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlBsYXRmb3JtQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBsYXRmb3JtT3duZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiUGxhdGZvcm1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBsYXRmb3JtVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTb2x1dGlvblN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQbGF0Zm9ybVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJEYXRlQ3JlYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEYXRlVXBkYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQbGF0Zm9ybUNhdGVnb3J5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1haW50YWluZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByb2dyYW1taW5nTGFuZ3VhZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJGcmFtZXdvcmtzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDdXN0b21BbWlMaXN0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlZpcnR1YWxpemF0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJJbWFnZUlkXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1cHBvcnRlZFRpZXJMaXN0XCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJxXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdXBwb3J0ZWRBZGRvbkxpc3RcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBdmFpbGFibGVTb2x1dGlvblN0YWNrc1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RBdmFpbGFibGVTb2x1dGlvblN0YWNrc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb2x1dGlvblN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBlcm1pdHRlZEZpbGVUeXBlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UGxhdGZvcm1WZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RQbGF0Zm9ybVZlcnNpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1TdW1tYXJ5TGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmtcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0VGFnc0ZvclJlc291cmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2dlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlYnVpbGRFbnZpcm9ubWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVxdWVzdEVudmlyb25tZW50SW5mb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5mb1R5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkluZm9UeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdGFydEFwcFNlcnZlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV0cmlldmVFbnZpcm9ubWVudEluZm9cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluZm9UeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbmZvVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXRyaWV2ZUVudmlyb25tZW50SW5mb1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50SW5mb1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5mb1R5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFYzJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2FtcGxlVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTd2FwRW52aXJvbm1lbnRDTkFNRXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uRW52aXJvbm1lbnROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVybWluYXRlRW52aXJvbm1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlcm1pbmF0ZVJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRm9yY2VUZXJtaW5hdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVGVybWluYXRlRW52aXJvbm1lbnRSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBcHBsaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWRcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlQXBwbGljYXRpb25SZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBcHBsaWNhdGlvblJlc291cmNlTGlmZWN5Y2xlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlJlc291cmNlTGlmZWN5Y2xlQ29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlTGlmZWN5Y2xlQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlQXBwbGljYXRpb25SZXNvdXJjZUxpZmVjeWNsZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlTGlmZWN5Y2xlQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBcHBsaWNhdGlvblZlcnNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiVmVyc2lvbkxhYmVsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMXZcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlQXBwbGljYXRpb25WZXJzaW9uUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ29uZmlndXJhdGlvblRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25zVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlVwZGF0ZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUVudmlyb25tZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRpZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlVwZGF0ZUVudmlyb25tZW50UmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NUb0FkZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlZhbGlkYXRlQ29uZmlndXJhdGlvblNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVmFsaWRhdGVDb25maWd1cmF0aW9uU2V0dGluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXNzYWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNldmVyaXR5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW52aXJvbm1lbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwiVmVyc2lvbkxhYmVsXCI6IHt9LFxuICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICBcIlBsYXRmb3JtQXJuXCI6IHt9LFxuICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJFbmRwb2ludFVSTFwiOiB7fSxcbiAgICAgICAgXCJDTkFNRVwiOiB7fSxcbiAgICAgICAgXCJEYXRlQ3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEYXRlVXBkYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiQWJvcnRhYmxlT3BlcmF0aW9uSW5Qcm9ncmVzc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSGVhbHRoXCI6IHt9LFxuICAgICAgICBcIkhlYWx0aFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJSZXNvdXJjZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkxvYWRCYWxhbmNlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvbWFpblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxpc3RlbmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUaWVyXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbnZpcm9ubWVudExpbmtzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkxpbmtOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFbnZpcm9ubWVudEFyblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU2VydmljZVJvbGVcIjoge30sXG4gICAgICAgIFwiVmVyc2lvbkxpZmVjeWNsZUNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTWF4Q291bnRSdWxlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVsZXRlU291cmNlRnJvbVMzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWF4QWdlUnVsZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4QWdlSW5EYXlzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWxldGVTb3VyY2VGcm9tUzNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXBwbGljYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXBwbGljYXRpb25Bcm5cIjoge30sXG4gICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkRhdGVDcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRhdGVVcGRhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZlcnNpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb25maWd1cmF0aW9uVGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXNvdXJjZUxpZmVjeWNsZUNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlNvdXJjZVR5cGVcIixcbiAgICAgICAgXCJTb3VyY2VSZXBvc2l0b3J5XCIsXG4gICAgICAgIFwiU291cmNlTG9jYXRpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VSZXBvc2l0b3J5XCI6IHt9LFxuICAgICAgICBcIlNvdXJjZUxvY2F0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUzNCdWNrZXRcIjoge30sXG4gICAgICAgIFwiUzNLZXlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBcHBsaWNhdGlvblZlcnNpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXBwbGljYXRpb25WZXJzaW9uQXJuXCI6IHt9LFxuICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uTGFiZWxcIjoge30sXG4gICAgICAgIFwiU291cmNlQnVpbGRJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQnVpbGRBcm5cIjoge30sXG4gICAgICAgIFwiU291cmNlQnVuZGxlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEYXRlQ3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEYXRlVXBkYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICBcIlBsYXRmb3JtQXJuXCI6IHt9LFxuICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICBcIkRlcGxveW1lbnRTdGF0dXNcIjoge30sXG4gICAgICAgIFwiRGF0ZUNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGF0ZVVwZGF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMya1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgIFwiUGxhdGZvcm1Pd25lclwiOiB7fSxcbiAgICAgICAgXCJQbGF0Zm9ybVN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQbGF0Zm9ybUNhdGVnb3J5XCI6IHt9LFxuICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbU5hbWVcIjoge30sXG4gICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJTdXBwb3J0ZWRUaWVyTGlzdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMycVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VwcG9ydGVkQWRkb25MaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzJzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTWF4aW11bVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM0NVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlcXVlc3RDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzQ29kZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlN0YXR1czJ4eFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU3RhdHVzM3h4XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdGF0dXM0eHhcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0YXR1czV4eFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXRlbmN5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQOTk5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlA5OVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQOTVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUDkwXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlA4NVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQNzVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUDUwXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlAxMFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2dlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlQXBwbGljYXRpb25WZXJzaW9uc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBcHBsaWNhdGlvblZlcnNpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBcHBsaWNhdGlvbnNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQXBwbGljYXRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25maWd1cmF0aW9uT3B0aW9uc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJPcHRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbnZpcm9ubWVudHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRW52aXJvbm1lbnRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXZlbnRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEF2YWlsYWJsZVNvbHV0aW9uU3RhY2tzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlNvbHV0aW9uU3RhY2tzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTAyLTAxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImVsYXN0aWNmaWxlc3lzdGVtXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkVGU1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEVsYXN0aWMgRmlsZSBTeXN0ZW1cIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiZWxhc3RpY2ZpbGVzeXN0ZW0tMjAxNS0wMi0wMVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVGaWxlU3lzdGVtXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAyLTAxL2ZpbGUtc3lzdGVtc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ3JlYXRpb25Ub2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDcmVhdGlvblRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUGVyZm9ybWFuY2VNb2RlXCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVNb3VudFRhcmdldFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMi0wMS9tb3VudC10YXJnZXRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWxlU3lzdGVtSWRcIixcbiAgICAgICAgICBcIlN1Ym5ldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvY3JlYXRlLXRhZ3Mve0ZpbGVTeXN0ZW1JZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU3lzdGVtSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWxlU3lzdGVtSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZpbGVTeXN0ZW1cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvZmlsZS1zeXN0ZW1zL3tGaWxlU3lzdGVtSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWxlU3lzdGVtSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVN5c3RlbUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsZVN5c3RlbUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTW91bnRUYXJnZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvbW91bnQtdGFyZ2V0cy97TW91bnRUYXJnZXRJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1vdW50VGFyZ2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTW91bnRUYXJnZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1vdW50VGFyZ2V0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYWdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAyLTAxL2RlbGV0ZS10YWdzL3tGaWxlU3lzdGVtSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWxlU3lzdGVtSWRcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVN5c3RlbUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsZVN5c3RlbUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZpbGVTeXN0ZW1zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAyLTAxL2ZpbGUtc3lzdGVtc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNyZWF0aW9uVG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWxlU3lzdGVtSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbGVTeXN0ZW1JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTW91bnRUYXJnZXRTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMi0wMS9tb3VudC10YXJnZXRzL3tNb3VudFRhcmdldElkfS9zZWN1cml0eS1ncm91cHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1vdW50VGFyZ2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTW91bnRUYXJnZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1vdW50VGFyZ2V0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNb3VudFRhcmdldHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvbW91bnQtdGFyZ2V0c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsZVN5c3RlbUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW91bnRUYXJnZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTW91bnRUYXJnZXRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1vdW50VGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvdGFncy97RmlsZVN5c3RlbUlkfS9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbGVTeXN0ZW1JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeU1vdW50VGFyZ2V0U2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvbW91bnQtdGFyZ2V0cy97TW91bnRUYXJnZXRJZH0vc2VjdXJpdHktZ3JvdXBzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNb3VudFRhcmdldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1vdW50VGFyZ2V0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNb3VudFRhcmdldElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiT3duZXJJZFwiLFxuICAgICAgICBcIkNyZWF0aW9uVG9rZW5cIixcbiAgICAgICAgXCJGaWxlU3lzdGVtSWRcIixcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIixcbiAgICAgICAgXCJMaWZlQ3ljbGVTdGF0ZVwiLFxuICAgICAgICBcIk51bWJlck9mTW91bnRUYXJnZXRzXCIsXG4gICAgICAgIFwiU2l6ZUluQnl0ZXNcIixcbiAgICAgICAgXCJQZXJmb3JtYW5jZU1vZGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiT3duZXJJZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvblRva2VuXCI6IHt9LFxuICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGlmZUN5Y2xlU3RhdGVcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJOdW1iZXJPZk1vdW50VGFyZ2V0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUGVyZm9ybWFuY2VNb2RlXCI6IHt9LFxuICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJNb3VudFRhcmdldElkXCIsXG4gICAgICAgIFwiRmlsZVN5c3RlbUlkXCIsXG4gICAgICAgIFwiU3VibmV0SWRcIixcbiAgICAgICAgXCJMaWZlQ3ljbGVTdGF0ZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPd25lcklkXCI6IHt9LFxuICAgICAgICBcIk1vdW50VGFyZ2V0SWRcIjoge30sXG4gICAgICAgIFwiRmlsZVN5c3RlbUlkXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICBcIkxpZmVDeWNsZVN0YXRlXCI6IHt9LFxuICAgICAgICBcIklwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU29cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEyLTA2LTAxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImVsYXN0aWNsb2FkYmFsYW5jaW5nXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJFbGFzdGljIExvYWQgQmFsYW5jaW5nXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImVsYXN0aWNsb2FkYmFsYW5jaW5nLTIwMTItMDYtMDFcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9lbGFzdGljbG9hZGJhbGFuY2luZy5hbWF6b25hd3MuY29tL2RvYy8yMDEyLTA2LTAxL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBZGRUYWdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXBwbHlTZWN1cml0eUdyb3Vwc1RvTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFwcGx5U2VjdXJpdHlHcm91cHNUb0xvYWRCYWxhbmNlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF0dGFjaExvYWRCYWxhbmNlclRvU3VibmV0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiU3VibmV0c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXR0YWNoTG9hZEJhbGFuY2VyVG9TdWJuZXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb25maWd1cmVIZWFsdGhDaGVja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb25maWd1cmVIZWFsdGhDaGVja1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFwcENvb2tpZVN0aWNraW5lc3NQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIixcbiAgICAgICAgICBcIkNvb2tpZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJDb29raWVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUFwcENvb2tpZVN0aWNraW5lc3NQb2xpY3lSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMQkNvb2tpZVN0aWNraW5lc3NQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJDb29raWVFeHBpcmF0aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlTEJDb29raWVTdGlja2luZXNzUG9saWN5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJMaXN0ZW5lcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpc3RlbmVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2hlbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVMb2FkQmFsYW5jZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJETlNOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTG9hZEJhbGFuY2VyTGlzdGVuZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJMaXN0ZW5lcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpc3RlbmVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlTG9hZEJhbGFuY2VyTGlzdGVuZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTG9hZEJhbGFuY2VyUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJQb2xpY3lUeXBlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeVR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZVZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUxvYWRCYWxhbmNlclBvbGljeVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxvYWRCYWxhbmNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUxvYWRCYWxhbmNlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxvYWRCYWxhbmNlckxpc3RlbmVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyUG9ydHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlclBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVMb2FkQmFsYW5jZXJMaXN0ZW5lcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVMb2FkQmFsYW5jZXJQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlTG9hZEJhbGFuY2VyUG9saWN5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3Rlckluc3RhbmNlc0Zyb21Mb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIkluc3RhbmNlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVyZWdpc3Rlckluc3RhbmNlc0Zyb21Mb2FkQmFsYW5jZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWNjb3VudExpbWl0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQWNjb3VudExpbWl0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1heFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlSGVhbHRoXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUluc3RhbmNlSGVhbHRoUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VTdGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlYXNvbkNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyUG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJQb2xpY2llc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeURlc2NyaXB0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvbGljeVR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9saWN5QXR0cmlidXRlRGVzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvYWRCYWxhbmNlclBvbGljeVR5cGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeVR5cGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJQb2xpY3lUeXBlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeVR5cGVEZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBvbGljeVR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lBdHRyaWJ1dGVUeXBlRGVzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ2FyZGluYWxpdHlcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxvYWRCYWxhbmNlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJEZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJETlNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2Fub25pY2FsSG9zdGVkWm9uZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDYW5vbmljYWxIb3N0ZWRab25lTmFtZUlEXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGlzdGVuZXJEZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkxpc3RlbmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQXBwQ29va2llU3RpY2tpbmVzc1BvbGljaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29va2llTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJMQkNvb2tpZVN0aWNraW5lc3NQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvb2tpZUV4cGlyYXRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk90aGVyUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkJhY2tlbmRTZXJ2ZXJEZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiUG9saWN5TmFtZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZQQ0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIZWFsdGhDaGVja1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTb3VyY2VTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJPd25lckFsaWFzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTY2hlbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVUYWdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnRGVzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hMb2FkQmFsYW5jZXJGcm9tU3VibmV0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiU3VibmV0c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGV0YWNoTG9hZEJhbGFuY2VyRnJvbVN1Ym5ldHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVBdmFpbGFiaWxpdHlab25lc0ZvckxvYWRCYWxhbmNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGlzYWJsZUF2YWlsYWJpbGl0eVpvbmVzRm9yTG9hZEJhbGFuY2VyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZUF2YWlsYWJpbGl0eVpvbmVzRm9yTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJFbmFibGVBdmFpbGFiaWxpdHlab25lc0ZvckxvYWRCYWxhbmNlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5TG9hZEJhbGFuY2VyQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3Rlckluc3RhbmNlc1dpdGhMb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIkluc3RhbmNlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVnaXN0ZXJJbnN0YW5jZXNXaXRoTG9hZEJhbGFuY2VyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVtb3ZlVGFnc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldExvYWRCYWxhbmNlckxpc3RlbmVyU1NMQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlclBvcnRcIixcbiAgICAgICAgICBcIlNTTENlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlclBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTTENlcnRpZmljYXRlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0TG9hZEJhbGFuY2VyTGlzdGVuZXJTU0xDZXJ0aWZpY2F0ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldExvYWRCYWxhbmNlclBvbGljaWVzRm9yQmFja2VuZFNlcnZlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VQb3J0XCIsXG4gICAgICAgICAgXCJQb2xpY3lOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNldExvYWRCYWxhbmNlclBvbGljaWVzRm9yQmFja2VuZFNlcnZlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldExvYWRCYWxhbmNlclBvbGljaWVzT2ZMaXN0ZW5lclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyUG9ydFwiLFxuICAgICAgICAgIFwiUG9saWN5TmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlclBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0TG9hZEJhbGFuY2VyUG9saWNpZXNPZkxpc3RlbmVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUYXJnZXRcIixcbiAgICAgICAgXCJJbnRlcnZhbFwiLFxuICAgICAgICBcIlRpbWVvdXRcIixcbiAgICAgICAgXCJVbmhlYWx0aHlUaHJlc2hvbGRcIixcbiAgICAgICAgXCJIZWFsdGh5VGhyZXNob2xkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhcmdldFwiOiB7fSxcbiAgICAgICAgXCJJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGltZW91dFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVW5oZWFsdGh5VGhyZXNob2xkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJIZWFsdGh5VGhyZXNob2xkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUHJvdG9jb2xcIixcbiAgICAgICAgXCJMb2FkQmFsYW5jZXJQb3J0XCIsXG4gICAgICAgIFwiSW5zdGFuY2VQb3J0XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlByb3RvY29sXCI6IHt9LFxuICAgICAgICBcIkxvYWRCYWxhbmNlclBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlUHJvdG9jb2xcIjoge30sXG4gICAgICAgIFwiSW5zdGFuY2VQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTU0xDZXJ0aWZpY2F0ZUlkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMXBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNyb3NzWm9uZUxvYWRCYWxhbmNpbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJFbmFibGVkXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWNjZXNzTG9nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgICBcIkVtaXRJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUzNCdWNrZXRQcmVmaXhcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29ubmVjdGlvbkRyYWluaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNvbm5lY3Rpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIklkbGVUaW1lb3V0XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIklkbGVUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFkZGl0aW9uYWxBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUluc3RhbmNlSGVhbHRoXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkluc3RhbmNlU3RhdGVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJQb2xpY2llc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJQb2xpY3lEZXNjcmlwdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvYWRCYWxhbmNlclBvbGljeVR5cGVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBvbGljeVR5cGVEZXNjcmlwdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJMb2FkQmFsYW5jZXJEZXNjcmlwdGlvbnNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgICBcInZlcnNpb25cIjoyLFxuICAgIFwid2FpdGVyc1wiOntcbiAgICAgICAgXCJJbnN0YW5jZURlcmVnaXN0ZXJlZFwiOiB7XG4gICAgICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW5zdGFuY2VIZWFsdGhcIixcbiAgICAgICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOiBcIk91dE9mU2VydmljZVwiLFxuICAgICAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZVN0YXRlc1tdLlN0YXRlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJJbnZhbGlkSW5zdGFuY2VcIixcbiAgICAgICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBbnlJbnN0YW5jZUluU2VydmljZVwiOntcbiAgICAgICAgICAgIFwiYWNjZXB0b3JzXCI6W1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiSW5zdGFuY2VTdGF0ZXNbXS5TdGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJJblNlcnZpY2VcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcInN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlbGF5XCI6MTUsXG4gICAgICAgICAgICBcIm1heEF0dGVtcHRzXCI6NDAsXG4gICAgICAgICAgICBcIm9wZXJhdGlvblwiOlwiRGVzY3JpYmVJbnN0YW5jZUhlYWx0aFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VJblNlcnZpY2VcIjp7XG4gICAgICAgICAgICBcImFjY2VwdG9yc1wiOltcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkluc3RhbmNlU3RhdGVzW10uU3RhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiSW5TZXJ2aWNlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFsbFwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRJbnN0YW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImRlbGF5XCI6MTUsXG4gICAgICAgICAgICBcIm1heEF0dGVtcHRzXCI6NDAsXG4gICAgICAgICAgICBcIm9wZXJhdGlvblwiOlwiRGVzY3JpYmVJbnN0YW5jZUhlYWx0aFwiXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTEyLTAxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImVsYXN0aWNsb2FkYmFsYW5jaW5nXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiRWxhc3RpYyBMb2FkIEJhbGFuY2luZyB2MlwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiRWxhc3RpYyBMb2FkIEJhbGFuY2luZ1wiLFxuICAgIFwic2VydmljZUlkXCI6IFwiRWxhc3RpYyBMb2FkIEJhbGFuY2luZyB2MlwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJlbGFzdGljbG9hZGJhbGFuY2luZ3YyLTIwMTUtMTItMDFcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9lbGFzdGljbG9hZGJhbGFuY2luZy5hbWF6b25hd3MuY29tL2RvYy8yMDE1LTEyLTAxL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRMaXN0ZW5lckNlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGlzdGVuZXJBcm5cIixcbiAgICAgICAgICBcIkNlcnRpZmljYXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaXN0ZW5lckFyblwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQWRkTGlzdGVuZXJDZXJ0aWZpY2F0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5zXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBZGRUYWdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTGlzdGVuZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiLFxuICAgICAgICAgIFwiUHJvdG9jb2xcIixcbiAgICAgICAgICBcIlBvcnRcIixcbiAgICAgICAgICBcIkRlZmF1bHRBY3Rpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3NsUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVMaXN0ZW5lclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjaGVtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIklwQWRkcmVzc1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlTG9hZEJhbGFuY2VyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGlzdGVuZXJBcm5cIixcbiAgICAgICAgICBcIkNvbmRpdGlvbnNcIixcbiAgICAgICAgICBcIlByaW9yaXR5XCIsXG4gICAgICAgICAgXCJBY3Rpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVJ1bGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVGFyZ2V0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlByb3RvY29sXCIsXG4gICAgICAgICAgXCJQb3J0XCIsXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1BvcnRcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1BhdGhcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja0ludGVydmFsU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tUaW1lb3V0U2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGVhbHRoeVRocmVzaG9sZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbmhlYWx0aHlUaHJlc2hvbGRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF0Y2hlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVUYXJnZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTGlzdGVuZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUxpc3RlbmVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUxvYWRCYWxhbmNlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVSdWxlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGFyZ2V0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZVRhcmdldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3RlclRhcmdldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCIsXG4gICAgICAgICAgXCJUYXJnZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlcmVnaXN0ZXJUYXJnZXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBY2NvdW50TGltaXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBY2NvdW50TGltaXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWF4XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGlzdGVuZXJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxpc3RlbmVyQ2VydGlmaWNhdGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxpc3RlbmVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJMaXN0ZW5lckFybnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxpc3RlbmVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxvYWRCYWxhbmNlckF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxvYWRCYWxhbmNlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSdWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaXN0ZW5lckFyblwiOiB7fSxcbiAgICAgICAgICBcIlJ1bGVBcm5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSdWxlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTU0xQb2xpY2llc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU1NMUG9saWNpZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTc2xQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3NsUHJvdG9jb2xzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNpcGhlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJQcmlvcml0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlVGFnc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0Rlc2NyaXB0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFyZ2V0R3JvdXBBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVRhcmdldEdyb3VwQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlVGFyZ2V0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYXJnZXRIZWFsdGhcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlVGFyZ2V0SGVhbHRoUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0SGVhbHRoRGVzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUYXJnZXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhlYWx0aENoZWNrUG9ydFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldEhlYWx0aFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUxpc3RlbmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaXN0ZW5lckFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaXN0ZW5lckFyblwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiU3NsUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlMaXN0ZW5lclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5TG9hZEJhbGFuY2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5UnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5UnVsZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlUYXJnZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1Byb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tQb3J0XCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tQYXRoXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJbnRlcnZhbFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrVGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aHlUaHJlc2hvbGRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5oZWFsdGh5VGhyZXNob2xkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hdGNoZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlUYXJnZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5VGFyZ2V0R3JvdXBBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFyblwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlUYXJnZXRHcm91cEF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlclRhcmdldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCIsXG4gICAgICAgICAgXCJUYXJnZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlZ2lzdGVyVGFyZ2V0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZUxpc3RlbmVyQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaXN0ZW5lckFyblwiLFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZW1vdmVMaXN0ZW5lckNlcnRpZmljYXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuc1wiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVtb3ZlVGFnc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldElwQWRkcmVzc1R5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiLFxuICAgICAgICAgIFwiSXBBZGRyZXNzVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJJcEFkZHJlc3NUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNldElwQWRkcmVzc1R5cGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcEFkZHJlc3NUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0UnVsZVByaW9yaXRpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVQcmlvcml0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVQcmlvcml0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSdWxlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRSdWxlUHJpb3JpdGllc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCIsXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNldFNlY3VyaXR5R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0U3VibmV0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldE1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0U3VibmV0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiSXNEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGVPaWRjQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiSXNzdWVyXCIsXG4gICAgICAgICAgICAgIFwiQXV0aG9yaXphdGlvbkVuZHBvaW50XCIsXG4gICAgICAgICAgICAgIFwiVG9rZW5FbmRwb2ludFwiLFxuICAgICAgICAgICAgICBcIlVzZXJJbmZvRW5kcG9pbnRcIixcbiAgICAgICAgICAgICAgXCJDbGllbnRJZFwiLFxuICAgICAgICAgICAgICBcIkNsaWVudFNlY3JldFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJc3N1ZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiQXV0aG9yaXphdGlvbkVuZHBvaW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIlRva2VuRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiVXNlckluZm9FbmRwb2ludFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDbGllbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDbGllbnRTZWNyZXRcIjoge30sXG4gICAgICAgICAgICAgIFwiU2Vzc2lvbkNvb2tpZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU2NvcGVcIjoge30sXG4gICAgICAgICAgICAgIFwiU2Vzc2lvblRpbWVvdXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uUmVxdWVzdEV4dHJhUGFyYW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0ZUNvZ25pdG9Db25maWdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJVc2VyUG9vbEFyblwiLFxuICAgICAgICAgICAgICBcIlVzZXJQb29sQ2xpZW50SWRcIixcbiAgICAgICAgICAgICAgXCJVc2VyUG9vbERvbWFpblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJVc2VyUG9vbEFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJVc2VyUG9vbENsaWVudElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlVzZXJQb29sRG9tYWluXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNlc3Npb25Db29raWVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNjb3BlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNlc3Npb25UaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBdXRoZW50aWNhdGlvblJlcXVlc3RFeHRyYVBhcmFtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk9uVW5hdXRoZW50aWNhdGVkUmVxdWVzdFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcmRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaXN0ZW5lckFyblwiOiB7fSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNzbFBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb2NhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRE5TTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNhbm9uaWNhbEhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJTY2hlbWVcIjoge30sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJlYXNvblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcEFkZHJlc3NUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJab25lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJcEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBbGxvY2F0aW9uSWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlByaW9yaXR5XCI6IHt9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc0RlZmF1bHRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMydVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkh0dHBDb2RlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkh0dHBDb2RlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrUG9ydFwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrSW50ZXJ2YWxTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1RpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIZWFsdGh5VGhyZXNob2xkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVuaGVhbHRoeVRocmVzaG9sZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1BhdGhcIjoge30sXG4gICAgICAgICAgXCJNYXRjaGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTM2JcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUxpc3RlbmVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkxpc3RlbmVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkxvYWRCYWxhbmNlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhcmdldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlRhcmdldEdyb3Vwc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIkxvYWRCYWxhbmNlckV4aXN0c1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUxvYWRCYWxhbmNlcnNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IDIwMCxcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJMb2FkQmFsYW5jZXJOb3RGb3VuZFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiTG9hZEJhbGFuY2VyQXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJMb2FkQmFsYW5jZXJzW10uU3RhdGUuQ29kZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhY3RpdmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJMb2FkQmFsYW5jZXJzW10uU3RhdGUuQ29kZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJwcm92aXNpb25pbmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiTG9hZEJhbGFuY2VyTm90Rm91bmRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkxvYWRCYWxhbmNlcnNEZWxldGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiTG9hZEJhbGFuY2Vyc1tdLlN0YXRlLkNvZGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYWN0aXZlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkxvYWRCYWxhbmNlck5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlRhcmdldEluU2VydmljZVwiOntcbiAgICAgIFwiZGVsYXlcIjoxNSxcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjo0MCxcbiAgICAgIFwib3BlcmF0aW9uXCI6XCJEZXNjcmliZVRhcmdldEhlYWx0aFwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjpbXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6XCJUYXJnZXRIZWFsdGhEZXNjcmlwdGlvbnNbXS5UYXJnZXRIZWFsdGguU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6XCJoZWFsdGh5XCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOlwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJJbnZhbGlkSW5zdGFuY2VcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlRhcmdldERlcmVnaXN0ZXJlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVUYXJnZXRIZWFsdGhcIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRUYXJnZXRcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6XCJUYXJnZXRIZWFsdGhEZXNjcmlwdGlvbnNbXS5UYXJnZXRIZWFsdGguU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6XCJ1bnVzZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6XCJzdWNjZXNzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAwOS0wMy0zMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJlbGFzdGljbWFwcmVkdWNlXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIEVNUlwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEVsYXN0aWMgTWFwUmVkdWNlXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkVsYXN0aWNNYXBSZWR1Y2VcIixcbiAgICBcInRpbWVzdGFtcEZvcm1hdFwiOiBcInVuaXhUaW1lc3RhbXBcIixcbiAgICBcInVpZFwiOiBcImVsYXN0aWNtYXByZWR1Y2UtMjAwOS0wMy0zMVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRJbnN0YW5jZUZsZWV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRcIixcbiAgICAgICAgICBcIkluc3RhbmNlRmxlZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VGbGVldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUZsZWV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRJbnN0YW5jZUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VHcm91cHNcIixcbiAgICAgICAgICBcIkpvYkZsb3dJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJKb2JGbG93SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JGbG93SWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZEpvYkZsb3dTdGVwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iRmxvd0lkXCIsXG4gICAgICAgICAgXCJTdGVwc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JGbG93SWRcIjoge30sXG4gICAgICAgICAgXCJTdGVwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RlcElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsU3RlcHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiU3RlcElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FuY2VsU3RlcHNJbmZvTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RlcElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU2VjdXJpdHlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJTZWN1cml0eUNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlY3VyaXR5Q29uZmlndXJhdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJDcmVhdGlvbkRhdGVUaW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJDcmVhdGlvbkRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNlY3VyaXR5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVjMkluc3RhbmNlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiRWMyS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRWMyU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlJlcXVlc3RlZEVjMlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiRWMyQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiUmVxdWVzdGVkRWMyQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRW1yTWFuYWdlZE1hc3RlclNlY3VyaXR5R3JvdXBcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkVtck1hbmFnZWRTbGF2ZVNlY3VyaXR5R3JvdXBcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlNlcnZpY2VBY2Nlc3NTZWN1cml0eUdyb3VwXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJBZGRpdGlvbmFsTWFzdGVyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkFkZGl0aW9uYWxTbGF2ZVNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlQ29sbGVjdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiTG9nVXJpXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJlcXVlc3RlZEFtaVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiUnVubmluZ0FtaVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiUmVsZWFzZUxhYmVsXCI6IHt9LFxuICAgICAgICAgICAgICBcIkF1dG9UZXJtaW5hdGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRlcm1pbmF0aW9uUHJvdGVjdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWaXNpYmxlVG9BbGxVc2Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQXBwbGljYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOb3JtYWxpemVkSW5zdGFuY2VIb3Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTWFzdGVyUHVibGljRG5zTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZWN1cml0eUNvbmZpZ3VyYXRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdSb2xlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNjYWxlRG93bkJlaGF2aW9yXCI6IHt9LFxuICAgICAgICAgICAgICBcIkN1c3RvbUFtaUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVic1Jvb3RWb2x1bWVTaXplXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXBvVXBncmFkZU9uQm9vdFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJLZXJiZXJvc0F0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSm9iRmxvd3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3JlYXRlZEFmdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0ZWRCZWZvcmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSm9iRmxvd0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSm9iRmxvd1N0YXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JGbG93c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkpvYkZsb3dJZFwiLFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiRXhlY3V0aW9uU3RhdHVzRGV0YWlsXCIsXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSm9iRmxvd0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxvZ1VyaVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFtaVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdGF0dXNEZXRhaWxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGFydERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlJlYWR5RGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRW5kRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdFN0YXRlQ2hhbmdlUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIk1hc3Rlckluc3RhbmNlVHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlNsYXZlSW5zdGFuY2VUeXBlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJNYXN0ZXJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiTWFzdGVyUHVibGljRG5zTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJNYXN0ZXJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlNsYXZlSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlR3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNYXJrZXRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVJvbGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVJlcXVlc3RDb3VudFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlUnVubmluZ0NvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGlvbkRhdGVUaW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1hcmtldFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVJvbGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQmlkUHJpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlUmVxdWVzdENvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVJ1bm5pbmdDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGFzdFN0YXRlQ2hhbmdlUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3RhcnREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWFkeURhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkVuZERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk5vcm1hbGl6ZWRJbnN0YW5jZUhvdXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJFYzJLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkVjMlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiS2VlcEpvYkZsb3dBbGl2ZVdoZW5Ob1N0ZXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJUZXJtaW5hdGlvblByb3RlY3RlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiSGFkb29wVmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGVwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIlN0ZXBDb25maWdcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN0YXR1c0RldGFpbFwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJTdGVwQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdGF0dXNEZXRhaWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGFydERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkVuZERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxhc3RTdGF0ZUNoYW5nZVJlYXNvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJCb290c3RyYXBBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJCb290c3RyYXBBY3Rpb25Db25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMlwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRlZFByb2R1Y3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWaXNpYmxlVG9BbGxVc2Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSm9iRmxvd1JvbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF1dG9TY2FsaW5nUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjYWxlRG93bkJlaGF2aW9yXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNlY3VyaXR5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlY3VyaXR5Q29uZmlndXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGVwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRcIixcbiAgICAgICAgICBcIlN0ZXBJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJTdGVwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGVwXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQWN0aW9uT25GYWlsdXJlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJvb3RzdHJhcEFjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCb290c3RyYXBBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NyaXB0UGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFyZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDcmVhdGVkQWZ0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3JlYXRlZEJlZm9yZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbHVzdGVyU3RhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5vcm1hbGl6ZWRJbnN0YW5jZUhvdXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW5zdGFuY2VGbGVldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUZsZWV0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZUNoYW5nZVJlYXNvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJUaW1lbGluZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWFkeURhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkVuZERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VGbGVldFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRPbkRlbWFuZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRTcG90Q2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkT25EZW1hbmRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRTcG90Q2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJXZWlnaHRlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJCaWRQcmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkJpZFByaWNlQXNQZXJjZW50YWdlT2ZPbkRlbWFuZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkVic0Jsb2NrRGV2aWNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXVuY2hTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW5zdGFuY2VHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWFya2V0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VHcm91cFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCaWRQcmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlcXVlc3RlZEluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJ1bm5pbmdJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXRlQ2hhbmdlUmVhc29uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlRpbWVsaW5lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGlvbkRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJlYWR5RGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRW5kRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFYnNCbG9ja0RldmljZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2hyaW5rUG9saWN5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ1BvbGljeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUZsZWV0VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlU3RhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFYzJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHVibGljRG5zTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlB1YmxpY0lwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByaXZhdGVEbnNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdGVDaGFuZ2VSZWFzb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiVGltZWxpbmVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVhZHlEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJFbmREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1hcmtldFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVic1ZvbHVtZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkRldmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFNlY3VyaXR5Q29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VjdXJpdHlDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0ZXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiU3RlcFN0YXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGVwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGVwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25PbkZhaWx1cmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUluc3RhbmNlRmxlZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VGbGVldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUZsZWV0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VGbGVldElkXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkluc3RhbmNlRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRPbkRlbWFuZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRTcG90Q2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUluc3RhbmNlR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VHcm91cElkXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVDMkluc3RhbmNlSWRzVG9UZXJtaW5hdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2hyaW5rUG9saWN5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRBdXRvU2NhbGluZ1BvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUdyb3VwSWRcIixcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nUG9saWN5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVBdXRvU2NhbGluZ1BvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUdyb3VwSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VHcm91cElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUnVuSm9iRmxvd1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJMb2dVcmlcIjoge30sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsSW5mb1wiOiB7fSxcbiAgICAgICAgICBcIkFtaVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJSZWxlYXNlTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1hc3Rlckluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTbGF2ZUluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZUZsZWV0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVjMktleU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJLZWVwSm9iRmxvd0FsaXZlV2hlbk5vU3RlcHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRlcm1pbmF0aW9uUHJvdGVjdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJIYWRvb3BWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVjMlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVjMlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW1yTWFuYWdlZE1hc3RlclNlY3VyaXR5R3JvdXBcIjoge30sXG4gICAgICAgICAgICAgIFwiRW1yTWFuYWdlZFNsYXZlU2VjdXJpdHlHcm91cFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTZXJ2aWNlQWNjZXNzU2VjdXJpdHlHcm91cFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBZGRpdGlvbmFsTWFzdGVyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNW9cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFkZGl0aW9uYWxTbGF2ZVNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVvXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGVwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQm9vdHN0cmFwQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdXBwb3J0ZWRQcm9kdWN0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV3U3VwcG9ydGVkUHJvZHVjdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBcmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZpc2libGVUb0FsbFVzZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJKb2JGbG93Um9sZVwiOiB7fSxcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjdXJpdHlDb25maWd1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiU2NhbGVEb3duQmVoYXZpb3JcIjoge30sXG4gICAgICAgICAgXCJDdXN0b21BbWlJZFwiOiB7fSxcbiAgICAgICAgICBcIkVic1Jvb3RWb2x1bWVTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXBvVXBncmFkZU9uQm9vdFwiOiB7fSxcbiAgICAgICAgICBcIktlcmJlcm9zQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iRmxvd0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0VGVybWluYXRpb25Qcm90ZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJKb2JGbG93SWRzXCIsXG4gICAgICAgICAgXCJUZXJtaW5hdGlvblByb3RlY3RlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JGbG93SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZXJtaW5hdGlvblByb3RlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0VmlzaWJsZVRvQWxsVXNlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkpvYkZsb3dJZHNcIixcbiAgICAgICAgICBcIlZpc2libGVUb0FsbFVzZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYkZsb3dJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZpc2libGVUb0FsbFVzZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXJtaW5hdGVKb2JGbG93c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iRmxvd0lkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JGbG93SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJbnN0YW5jZUZsZWV0VHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkluc3RhbmNlRmxlZXRUeXBlXCI6IHt9LFxuICAgICAgICBcIlRhcmdldE9uRGVtYW5kQ2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhcmdldFNwb3RDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VUeXBlQ29uZmlnc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJXZWlnaHRlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJCaWRQcmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJCaWRQcmljZUFzUGVyY2VudGFnZU9mT25EZW1hbmRQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFYnNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxhdW5jaFNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFYnNCbG9ja0RldmljZUNvbmZpZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlZvbHVtZVNwZWNpZmljYXRpb25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVm9sdW1lU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWb2x1bWVzUGVySW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJWb2x1bWVUeXBlXCIsXG4gICAgICAgIFwiU2l6ZUluR0JcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fSxcbiAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaXplSW5HQlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsYXNzaWZpY2F0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlNwb3RTcGVjaWZpY2F0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNwb3RTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiVGltZW91dER1cmF0aW9uTWludXRlc1wiLFxuICAgICAgICAgICAgXCJUaW1lb3V0QWN0aW9uXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlRpbWVvdXREdXJhdGlvbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlRpbWVvdXRBY3Rpb25cIjoge30sXG4gICAgICAgICAgICBcIkJsb2NrRHVyYXRpb25NaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VSb2xlXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIixcbiAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtldFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIkJpZFByaWNlXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWJzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkNvbnN0cmFpbnRzXCIsXG4gICAgICAgIFwiUnVsZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29uc3RyYWludHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJNaW5DYXBhY2l0eVwiLFxuICAgICAgICBcIk1heENhcGFjaXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk1pbkNhcGFjaXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXhDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICBcIlRyaWdnZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiU2ltcGxlU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFya2V0XCI6IHt9LFxuICAgICAgICAgICAgICBcIlNpbXBsZVNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiQWRqdXN0bWVudFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlNjYWxpbmdBZGp1c3RtZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJDb29sRG93blwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmlnZ2VyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaEFsYXJtRGVmaW5pdGlvblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoQWxhcm1EZWZpbml0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCIsXG4gICAgICAgICAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwiUGVyaW9kXCIsXG4gICAgICAgICAgICAgICAgICBcIlRocmVzaG9sZFwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkV2YWx1YXRpb25QZXJpb2RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlBlcmlvZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiU3RhdGlzdGljXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiVW5pdFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgXCJIYWRvb3BKYXJTdGVwXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiQWN0aW9uT25GYWlsdXJlXCI6IHt9LFxuICAgICAgICBcIkhhZG9vcEphclN0ZXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJKYXJcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkphclwiOiB7fSxcbiAgICAgICAgICAgIFwiTWFpbkNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJBcmdzXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiU3RhdGVDaGFuZ2VSZWFzb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNvZGVcIjoge30sXG4gICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVGltZWxpbmVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVhZHlEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFbmREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMmNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzJmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFyZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkZGl0aW9uYWxJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJlYWxtXCIsXG4gICAgICAgIFwiS2RjQWRtaW5QYXNzd29yZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZWFsbVwiOiB7fSxcbiAgICAgICAgXCJLZGNBZG1pblBhc3N3b3JkXCI6IHt9LFxuICAgICAgICBcIkNyb3NzUmVhbG1UcnVzdFByaW5jaXBhbFBhc3N3b3JkXCI6IHt9LFxuICAgICAgICBcIkFERG9tYWluSm9pblVzZXJcIjoge30sXG4gICAgICAgIFwiQUREb21haW5Kb2luUGFzc3dvcmRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiU2NyaXB0Qm9vdHN0cmFwQWN0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiU2NyaXB0Qm9vdHN0cmFwQWN0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUGF0aFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQYXRoXCI6IHt9LFxuICAgICAgICAgICAgXCJBcmdzXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTM2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkphclwiOiB7fSxcbiAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1haW5DbGFzc1wiOiB7fSxcbiAgICAgICAgXCJBcmdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICBcIlN0YXRlQ2hhbmdlUmVhc29uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkZhaWx1cmVEZXRhaWxzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJSZWFzb25cIjoge30sXG4gICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICBcIkxvZ0ZpbGVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVGltZWxpbmVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU3RhcnREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFbmREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0MlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXZpY2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRlY29tbWlzc2lvblRpbWVvdXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlUmVzaXplUG9saWN5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJJbnN0YW5jZXNUb1Rlcm1pbmF0ZVwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSW5zdGFuY2VzVG9Qcm90ZWN0XCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0Z1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJbnN0YW5jZVRlcm1pbmF0aW9uVGltZW91dFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzRpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgXCJTdGF0ZUNoYW5nZVJlYXNvblwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUpvYkZsb3dzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkpvYkZsb3dzXCJcbiAgICB9LFxuICAgIFwiTGlzdEJvb3RzdHJhcEFjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkJvb3RzdHJhcEFjdGlvbnNcIlxuICAgIH0sXG4gICAgXCJMaXN0Q2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNsdXN0ZXJzXCJcbiAgICB9LFxuICAgIFwiTGlzdEluc3RhbmNlRmxlZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbnN0YW5jZUZsZWV0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RJbnN0YW5jZUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSW5zdGFuY2VHcm91cHNcIlxuICAgIH0sXG4gICAgXCJMaXN0SW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbnN0YW5jZXNcIlxuICAgIH0sXG4gICAgXCJMaXN0U3RlcHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0ZXBzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiQ2x1c3RlclJ1bm5pbmdcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDbHVzdGVyXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXIuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlJVTk5JTkdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXIuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIldBSVRJTkdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXIuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlRFUk1JTkFUSU5HXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDbHVzdGVyLlN0YXR1cy5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJURVJNSU5BVEVEXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDbHVzdGVyLlN0YXR1cy5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJURVJNSU5BVEVEX1dJVEhfRVJST1JTXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTdGVwQ29tcGxldGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTdGVwXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0ZXAuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkNPTVBMRVRFRFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RlcC5TdGF0dXMuU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiRkFJTEVEXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGVwLlN0YXR1cy5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDQU5DRUxMRURcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkNsdXN0ZXJUZXJtaW5hdGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ2x1c3RlclwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDbHVzdGVyLlN0YXR1cy5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJURVJNSU5BVEVEXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDbHVzdGVyLlN0YXR1cy5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJURVJNSU5BVEVEX1dJVEhfRVJST1JTXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJ1aWRcIjogXCJlbGFzdGljdHJhbnNjb2Rlci0yMDEyLTA5LTI1XCIsXG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMi0wOS0yNVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJlbGFzdGljdHJhbnNjb2RlclwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LWpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBFbGFzdGljIFRyYW5zY29kZXJcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDYW5jZWxKb2JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvam9icy97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSm9iXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L2pvYnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBpcGVsaW5lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGlwZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIklucHV0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklucHV0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3V0cHV0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk91dHB1dEtleVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlBsYXlsaXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZvcm1hdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk91dHB1dEtleXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhsc0NvbnRlbnRQcm90ZWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQbGF5UmVhZHlEcm1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQaXBlbGluZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9waXBlbGluZXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIklucHV0QnVja2V0XCIsXG4gICAgICAgICAgXCJSb2xlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbnB1dEJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcIk91dHB1dEJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgXCJBd3NLbXNLZXlBcm5cIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaHVtYm5haWxDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBpcGVsaW5lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXYXJuaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUHJlc2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L3ByZXNldHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNvbnRhaW5lclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJDb250YWluZXJcIjoge30sXG4gICAgICAgICAgXCJWaWRlb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXVkaW9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRodW1ibmFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByZXNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2FybmluZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L3BpcGVsaW5lcy97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUHJlc2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L3ByZXNldHMve0lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RKb2JzQnlQaXBlbGluZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9qb2JzQnlQaXBlbGluZS97UGlwZWxpbmVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQaXBlbGluZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBpcGVsaW5lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQaXBlbGluZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXNjZW5kaW5nXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBc2NlbmRpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhZ2VUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Sm9ic0J5U3RhdHVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L2pvYnNCeVN0YXR1cy97U3RhdHVzfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdGF0dXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc2NlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFzY2VuZGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFnZVRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9ic1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQaXBlbGluZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcGlwZWxpbmVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc2NlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFzY2VuZGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFnZVRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGlwZWxpbmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UHJlc2V0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9wcmVzZXRzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc2NlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFzY2VuZGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFnZVRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJlc2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVhZEpvYlwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9qb2JzL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWFkUGlwZWxpbmVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcGlwZWxpbmVzL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGlwZWxpbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWFkUHJlc2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L3ByZXNldHMve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmVzZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlc3RSb2xlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L3JvbGVUZXN0c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUm9sZVwiLFxuICAgICAgICAgIFwiSW5wdXRCdWNrZXRcIixcbiAgICAgICAgICBcIk91dHB1dEJ1Y2tldFwiLFxuICAgICAgICAgIFwiVG9waWNzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgXCJJbnB1dEJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcIk91dHB1dEJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcIlRvcGljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VjY2Vzc1wiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlVwZGF0ZVBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L3BpcGVsaW5lcy97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIklucHV0QnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIkF3c0ttc0tleUFyblwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRodW1ibmFpbENvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGlwZWxpbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQaXBlbGluZU5vdGlmaWNhdGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcGlwZWxpbmVzL3tJZH0vbm90aWZpY2F0aW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUGlwZWxpbmVTdGF0dXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcGlwZWxpbmVzL3tJZH0vc3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGlwZWxpbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIkZyYW1lUmF0ZVwiOiB7fSxcbiAgICAgICAgXCJSZXNvbHV0aW9uXCI6IHt9LFxuICAgICAgICBcIkFzcGVjdFJhdGlvXCI6IHt9LFxuICAgICAgICBcIkludGVybGFjZWRcIjoge30sXG4gICAgICAgIFwiQ29udGFpbmVyXCI6IHt9LFxuICAgICAgICBcIkVuY3J5cHRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGltZVNwYW5cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5wdXRDYXB0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTWVyZ2VQb2xpY3lcIjoge30sXG4gICAgICAgICAgICBcIkNhcHRpb25Tb3VyY2VzXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRGV0ZWN0ZWRQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJXaWR0aFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSGVpZ2h0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJGcmFtZVJhdGVcIjoge30sXG4gICAgICAgICAgICBcIkZpbGVTaXplXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJEdXJhdGlvbk1pbGxpc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTW9kZVwiOiB7fSxcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiS2V5TWQ1XCI6IHt9LFxuICAgICAgICBcIkluaXRpYWxpemF0aW9uVmVjdG9yXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdGFydFRpbWVcIjoge30sXG4gICAgICAgIFwiRHVyYXRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIkxhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiVGltZU9mZnNldFwiOiB7fSxcbiAgICAgICAgICBcIkxhYmVsXCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiVGh1bWJuYWlsUGF0dGVyblwiOiB7fSxcbiAgICAgICAgXCJUaHVtYm5haWxFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJvdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJQcmVzZXRJZFwiOiB7fSxcbiAgICAgICAgXCJTZWdtZW50RHVyYXRpb25cIjoge30sXG4gICAgICAgIFwiV2F0ZXJtYXJrc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGJ1bUFydFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcG9zaXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIkNhcHRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmVzZXRXYXRlcm1hcmtJZFwiOiB7fSxcbiAgICAgICAgICBcIklucHV0S2V5XCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk1lcmdlUG9saWN5XCI6IHt9LFxuICAgICAgICBcIkFydHdvcmtcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSW5wdXRLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4V2lkdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SGVpZ2h0XCI6IHt9LFxuICAgICAgICAgICAgICBcIlNpemluZ1BvbGljeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYWRkaW5nUG9saWN5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkFsYnVtQXJ0Rm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUaW1lU3BhblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk1lcmdlUG9saWN5XCI6IHtcbiAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIkNhcHRpb25Tb3VyY2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIkNhcHRpb25Gb3JtYXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkZvcm1hdFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTWV0aG9kXCI6IHt9LFxuICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgXCJLZXlNZDVcIjoge30sXG4gICAgICAgIFwiSW5pdGlhbGl6YXRpb25WZWN0b3JcIjoge30sXG4gICAgICAgIFwiTGljZW5zZUFjcXVpc2l0aW9uVXJsXCI6IHt9LFxuICAgICAgICBcIktleVN0b3JhZ2VQb2xpY3lcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIktleU1kNVwiOiB7fSxcbiAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJJbml0aWFsaXphdGlvblZlY3RvclwiOiB7fSxcbiAgICAgICAgXCJMaWNlbnNlQWNxdWlzaXRpb25VcmxcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICBcIlBpcGVsaW5lSWRcIjoge30sXG4gICAgICAgIFwiSW5wdXRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5wdXRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICB9LFxuICAgICAgICBcIk91dHB1dFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxelwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3V0cHV0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJPdXRwdXRLZXlQcmVmaXhcIjoge30sXG4gICAgICAgIFwiUGxheWxpc3RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICBcIk91dHB1dEtleXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkhsc0NvbnRlbnRQcm90ZWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQbGF5UmVhZHlEcm1cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNEZXRhaWxcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlVzZXJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGltaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJTdWJtaXRUaW1lTWlsbGlzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdGFydFRpbWVNaWxsaXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkZpbmlzaFRpbWVNaWxsaXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiVGh1bWJuYWlsUGF0dGVyblwiOiB7fSxcbiAgICAgICAgXCJUaHVtYm5haWxFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJvdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJQcmVzZXRJZFwiOiB7fSxcbiAgICAgICAgXCJTZWdtZW50RHVyYXRpb25cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c0RldGFpbFwiOiB7fSxcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiV2lkdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkhlaWdodFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRnJhbWVSYXRlXCI6IHt9LFxuICAgICAgICBcIkZpbGVTaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEdXJhdGlvbk1pbGxpc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiV2F0ZXJtYXJrc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGJ1bUFydFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcG9zaXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIkNhcHRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFwcGxpZWRDb2xvclNwYWNlQ29udmVyc2lvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlByb2dyZXNzaW5nXCI6IHt9LFxuICAgICAgICBcIkNvbXBsZXRlZFwiOiB7fSxcbiAgICAgICAgXCJXYXJuaW5nXCI6IHt9LFxuICAgICAgICBcIkVycm9yXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICBcIlN0b3JhZ2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJHcmFudGVlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJHcmFudGVlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFjY2Vzc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiSW5wdXRCdWNrZXRcIjoge30sXG4gICAgICAgIFwiT3V0cHV0QnVja2V0XCI6IHt9LFxuICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgIFwiQXdzS21zS2V5QXJuXCI6IHt9LFxuICAgICAgICBcIk5vdGlmaWNhdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbnRlbnRDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRodW1ibmFpbENvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29kZWNcIjoge30sXG4gICAgICAgIFwiQ29kZWNPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiS2V5ZnJhbWVzTWF4RGlzdFwiOiB7fSxcbiAgICAgICAgXCJGaXhlZEdPUFwiOiB7fSxcbiAgICAgICAgXCJCaXRSYXRlXCI6IHt9LFxuICAgICAgICBcIkZyYW1lUmF0ZVwiOiB7fSxcbiAgICAgICAgXCJNYXhGcmFtZVJhdGVcIjoge30sXG4gICAgICAgIFwiUmVzb2x1dGlvblwiOiB7fSxcbiAgICAgICAgXCJBc3BlY3RSYXRpb1wiOiB7fSxcbiAgICAgICAgXCJNYXhXaWR0aFwiOiB7fSxcbiAgICAgICAgXCJNYXhIZWlnaHRcIjoge30sXG4gICAgICAgIFwiRGlzcGxheUFzcGVjdFJhdGlvXCI6IHt9LFxuICAgICAgICBcIlNpemluZ1BvbGljeVwiOiB7fSxcbiAgICAgICAgXCJQYWRkaW5nUG9saWN5XCI6IHt9LFxuICAgICAgICBcIldhdGVybWFya3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4V2lkdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SGVpZ2h0XCI6IHt9LFxuICAgICAgICAgICAgICBcIlNpemluZ1BvbGljeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJIb3Jpem9udGFsQWxpZ25cIjoge30sXG4gICAgICAgICAgICAgIFwiSG9yaXpvbnRhbE9mZnNldFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWZXJ0aWNhbEFsaWduXCI6IHt9LFxuICAgICAgICAgICAgICBcIlZlcnRpY2FsT2Zmc2V0XCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wYWNpdHlcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFyZ2V0XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29kZWNcIjoge30sXG4gICAgICAgIFwiU2FtcGxlUmF0ZVwiOiB7fSxcbiAgICAgICAgXCJCaXRSYXRlXCI6IHt9LFxuICAgICAgICBcIkNoYW5uZWxzXCI6IHt9LFxuICAgICAgICBcIkF1ZGlvUGFja2luZ01vZGVcIjoge30sXG4gICAgICAgIFwiQ29kZWNPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQcm9maWxlXCI6IHt9LFxuICAgICAgICAgICAgXCJCaXREZXB0aFwiOiB7fSxcbiAgICAgICAgICAgIFwiQml0T3JkZXJcIjoge30sXG4gICAgICAgICAgICBcIlNpZ25lZFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZvcm1hdFwiOiB7fSxcbiAgICAgICAgXCJJbnRlcnZhbFwiOiB7fSxcbiAgICAgICAgXCJSZXNvbHV0aW9uXCI6IHt9LFxuICAgICAgICBcIkFzcGVjdFJhdGlvXCI6IHt9LFxuICAgICAgICBcIk1heFdpZHRoXCI6IHt9LFxuICAgICAgICBcIk1heEhlaWdodFwiOiB7fSxcbiAgICAgICAgXCJTaXppbmdQb2xpY3lcIjoge30sXG4gICAgICAgIFwiUGFkZGluZ1BvbGljeVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkNvbnRhaW5lclwiOiB7fSxcbiAgICAgICAgXCJBdWRpb1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmlkZW9cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMnJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRodW1ibmFpbHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdEpvYnNCeVBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSm9ic1wiXG4gICAgfSxcbiAgICBcIkxpc3RKb2JzQnlTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFnZVRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJKb2JzXCJcbiAgICB9LFxuICAgIFwiTGlzdFBpcGVsaW5lc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBpcGVsaW5lc1wiXG4gICAgfSxcbiAgICBcIkxpc3RQcmVzZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUHJlc2V0c1wiXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiSm9iQ29tcGxldGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiUmVhZEpvYlwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAxMjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ29tcGxldGVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSm9iLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ2FuY2VsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSm9iLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiRXJyb3JcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSm9iLlN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTAtMTItMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZW1haWxcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gU0VTXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gU2ltcGxlIEVtYWlsIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlNFU1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJzaWduaW5nTmFtZVwiOiBcInNlc1wiLFxuICAgIFwidWlkXCI6IFwiZW1haWwtMjAxMC0xMi0wMVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL3Nlcy5hbWF6b25hd3MuY29tL2RvYy8yMDEwLTEyLTAxL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDbG9uZVJlY2VpcHRSdWxlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiLFxuICAgICAgICAgIFwiT3JpZ2luYWxSdWxlU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9yaWdpbmFsUnVsZVNldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ2xvbmVSZWNlaXB0UnVsZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNvbmZpZ3VyYXRpb25TZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ29uZmlndXJhdGlvblNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNvbmZpZ3VyYXRpb25TZXRFdmVudERlc3RpbmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiLFxuICAgICAgICAgIFwiRXZlbnREZXN0aW5hdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50RGVzdGluYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNvbmZpZ3VyYXRpb25TZXRFdmVudERlc3RpbmF0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ29uZmlndXJhdGlvblNldFRyYWNraW5nT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIixcbiAgICAgICAgICBcIlRyYWNraW5nT3B0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRyYWNraW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ29uZmlndXJhdGlvblNldFRyYWNraW5nT3B0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUN1c3RvbVZlcmlmaWNhdGlvbkVtYWlsVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiLFxuICAgICAgICAgIFwiRnJvbUVtYWlsQWRkcmVzc1wiLFxuICAgICAgICAgIFwiVGVtcGxhdGVTdWJqZWN0XCIsXG4gICAgICAgICAgXCJUZW1wbGF0ZUNvbnRlbnRcIixcbiAgICAgICAgICBcIlN1Y2Nlc3NSZWRpcmVjdGlvblVSTFwiLFxuICAgICAgICAgIFwiRmFpbHVyZVJlZGlyZWN0aW9uVVJMXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZyb21FbWFpbEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVN1YmplY3RcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZUNvbnRlbnRcIjoge30sXG4gICAgICAgICAgXCJTdWNjZXNzUmVkaXJlY3Rpb25VUkxcIjoge30sXG4gICAgICAgICAgXCJGYWlsdXJlUmVkaXJlY3Rpb25VUkxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZWNlaXB0RmlsdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWx0ZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlUmVjZWlwdEZpbHRlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlY2VpcHRSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiLFxuICAgICAgICAgIFwiUnVsZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFmdGVyXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVJlY2VpcHRSdWxlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVjZWlwdFJ1bGVTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVJlY2VpcHRSdWxlU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRlbXBsYXRlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlVGVtcGxhdGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDb25maWd1cmF0aW9uU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVDb25maWd1cmF0aW9uU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCIsXG4gICAgICAgICAgXCJFdmVudERlc3RpbmF0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50RGVzdGluYXRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUNvbmZpZ3VyYXRpb25TZXRFdmVudERlc3RpbmF0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29uZmlndXJhdGlvblNldFRyYWNraW5nT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlQ29uZmlndXJhdGlvblNldFRyYWNraW5nT3B0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUN1c3RvbVZlcmlmaWNhdGlvbkVtYWlsVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJZGVudGl0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlSWRlbnRpdHlSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJZGVudGl0eVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUlkZW50aXR5UG9saWN5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVjZWlwdEZpbHRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsdGVyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZVJlY2VpcHRGaWx0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZWNlaXB0UnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIixcbiAgICAgICAgICBcIlJ1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlUmVjZWlwdFJ1bGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZWNlaXB0UnVsZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlUmVjZWlwdFJ1bGVTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVUZW1wbGF0ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZlcmlmaWVkRW1haWxBZGRyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbWFpbEFkZHJlc3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW1haWxBZGRyZXNzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBY3RpdmVSZWNlaXB0UnVsZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBY3RpdmVSZWNlaXB0UnVsZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25maWd1cmF0aW9uU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXRBdHRyaWJ1dGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDb25maWd1cmF0aW9uU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFdmVudERlc3RpbmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWNraW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXB1dGF0aW9uT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU2VuZGluZ0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlcHV0YXRpb25NZXRyaWNzRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGFzdEZyZXNoU3RhcnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZWNlaXB0UnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIixcbiAgICAgICAgICBcIlJ1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZWNlaXB0UnVsZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVjZWlwdFJ1bGVTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVjZWlwdFJ1bGVTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEFjY291bnRTZW5kaW5nRW5hYmxlZFwiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldEFjY291bnRTZW5kaW5nRW5hYmxlZFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEN1c3RvbVZlcmlmaWNhdGlvbkVtYWlsVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0Q3VzdG9tVmVyaWZpY2F0aW9uRW1haWxUZW1wbGF0ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZyb21FbWFpbEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVN1YmplY3RcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZUNvbnRlbnRcIjoge30sXG4gICAgICAgICAgXCJTdWNjZXNzUmVkaXJlY3Rpb25VUkxcIjoge30sXG4gICAgICAgICAgXCJGYWlsdXJlUmVkaXJlY3Rpb25VUkxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJZGVudGl0eURraW1BdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRJZGVudGl0eURraW1BdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRraW1BdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRraW1BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRGtpbUVuYWJsZWRcIixcbiAgICAgICAgICAgICAgICBcIkRraW1WZXJpZmljYXRpb25TdGF0dXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGtpbUVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRraW1WZXJpZmljYXRpb25TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEa2ltVG9rZW5zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2dcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJZGVudGl0eU1haWxGcm9tRG9tYWluQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdGllc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0SWRlbnRpdHlNYWlsRnJvbURvbWFpbkF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWFpbEZyb21Eb21haW5BdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1haWxGcm9tRG9tYWluQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIk1haWxGcm9tRG9tYWluXCIsXG4gICAgICAgICAgICAgICAgXCJNYWlsRnJvbURvbWFpblN0YXR1c1wiLFxuICAgICAgICAgICAgICAgIFwiQmVoYXZpb3JPbk1YRmFpbHVyZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJNYWlsRnJvbURvbWFpblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1haWxGcm9tRG9tYWluU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmVoYXZpb3JPbk1YRmFpbHVyZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldElkZW50aXR5Tm90aWZpY2F0aW9uQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdGllc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0SWRlbnRpdHlOb3RpZmljYXRpb25BdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkJvdW5jZVRvcGljXCIsXG4gICAgICAgICAgICAgICAgXCJDb21wbGFpbnRUb3BpY1wiLFxuICAgICAgICAgICAgICAgIFwiRGVsaXZlcnlUb3BpY1wiLFxuICAgICAgICAgICAgICAgIFwiRm9yd2FyZGluZ0VuYWJsZWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQm91bmNlVG9waWNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wbGFpbnRUb3BpY1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlbGl2ZXJ5VG9waWNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGb3J3YXJkaW5nRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSGVhZGVyc0luQm91bmNlTm90aWZpY2F0aW9uc0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhlYWRlcnNJbkNvbXBsYWludE5vdGlmaWNhdGlvbnNFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIZWFkZXJzSW5EZWxpdmVyeU5vdGlmaWNhdGlvbnNFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJZGVudGl0eVBvbGljaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgICAgIFwiUG9saWN5TmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldElkZW50aXR5UG9saWNpZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9saWNpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SWRlbnRpdHlWZXJpZmljYXRpb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRJZGVudGl0eVZlcmlmaWNhdGlvbkF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVmVyaWZpY2F0aW9uQXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWZXJpZmljYXRpb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiVmVyaWZpY2F0aW9uU3RhdHVzXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlZlcmlmaWNhdGlvblN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZlcmlmaWNhdGlvblRva2VuXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U2VuZFF1b3RhXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0U2VuZFF1b3RhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWF4MjRIb3VyU2VuZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhTZW5kUmF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZW50TGFzdDI0SG91cnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U2VuZFN0YXRpc3RpY3NcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRTZW5kU3RhdGlzdGljc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlbmREYXRhUG9pbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVsaXZlcnlBdHRlbXB0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQm91bmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxhaW50c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVqZWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0VGVtcGxhdGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENvbmZpZ3VyYXRpb25TZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdENvbmZpZ3VyYXRpb25TZXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q3VzdG9tVmVyaWZpY2F0aW9uRW1haWxUZW1wbGF0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RDdXN0b21WZXJpZmljYXRpb25FbWFpbFRlbXBsYXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkN1c3RvbVZlcmlmaWNhdGlvbkVtYWlsVGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGcm9tRW1haWxBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGVtcGxhdGVTdWJqZWN0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3VjY2Vzc1JlZGlyZWN0aW9uVVJMXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmFpbHVyZVJlZGlyZWN0aW9uVVJMXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdElkZW50aXRpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0SWRlbnRpdGllc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJZGVudGl0eVBvbGljaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0SWRlbnRpdHlQb2xpY2llc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb2xpY3lOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY3lOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlY2VpcHRGaWx0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0UmVjZWlwdEZpbHRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZWNlaXB0UnVsZVNldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RSZWNlaXB0UnVsZVNldHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGVtcGxhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFRlbXBsYXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlc01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VmVyaWZpZWRFbWFpbEFkZHJlc3Nlc1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RWZXJpZmllZEVtYWlsQWRkcmVzc2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmVyaWZpZWRFbWFpbEFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0SWRlbnRpdHlQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5XCIsXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJQb2xpY3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlB1dElkZW50aXR5UG9saWN5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVvcmRlclJlY2VpcHRSdWxlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiLFxuICAgICAgICAgIFwiUnVsZU5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZW9yZGVyUmVjZWlwdFJ1bGVTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZW5kQm91bmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcmlnaW5hbE1lc3NhZ2VJZFwiLFxuICAgICAgICAgIFwiQm91bmNlU2VuZGVyXCIsXG4gICAgICAgICAgXCJCb3VuY2VkUmVjaXBpZW50SW5mb0xpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3JpZ2luYWxNZXNzYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJCb3VuY2VTZW5kZXJcIjoge30sXG4gICAgICAgICAgXCJFeHBsYW5hdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VEc25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJSZXBvcnRpbmdNdGFcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUmVwb3J0aW5nTXRhXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFycml2YWxEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkV4dGVuc2lvbkZpZWxkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQm91bmNlZFJlY2lwaWVudEluZm9MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUmVjaXBpZW50XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlY2lwaWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlY2lwaWVudEFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJvdW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWNpcGllbnREc25GaWVsZHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRmluYWxSZWNpcGllbnRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlJlbW90ZU10YVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRGlhZ25vc3RpY0NvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdEF0dGVtcHREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkV4dGVuc2lvbkZpZWxkc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZlwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQm91bmNlU2VuZGVyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNlbmRCb3VuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXNzYWdlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZW5kQnVsa1RlbXBsYXRlZEVtYWlsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VcIixcbiAgICAgICAgICBcIlRlbXBsYXRlXCIsXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUmVwbHlUb0FkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuUGF0aFwiOiB7fSxcbiAgICAgICAgICBcIlJldHVyblBhdGhBcm5cIjoge30sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZW1wbGF0ZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFRlbXBsYXRlRGF0YVwiOiB7fSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjFcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXBsYWNlbWVudFRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1dVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlcGxhY2VtZW50VGVtcGxhdGVEYXRhXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNlbmRCdWxrVGVtcGxhdGVkRW1haWxSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlSWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZW5kQ3VzdG9tVmVyaWZpY2F0aW9uRW1haWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVtYWlsQWRkcmVzc1wiLFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVtYWlsQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNlbmRDdXN0b21WZXJpZmljYXRpb25FbWFpbFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRFbWFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlXCIsXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblwiLFxuICAgICAgICAgIFwiTWVzc2FnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzYxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlN1YmplY3RcIixcbiAgICAgICAgICAgICAgXCJCb2R5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN1YmplY3RcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkJvZHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlRleHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkh0bWxcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbHlUb0FkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuUGF0aFwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlJldHVyblBhdGhBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZW5kRW1haWxSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWVzc2FnZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRSYXdFbWFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmF3TWVzc2FnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1M1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJhd01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJEYXRhXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZyb21Bcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJSZXR1cm5QYXRoQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2VuZFJhd0VtYWlsUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1lc3NhZ2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXNzYWdlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZW5kVGVtcGxhdGVkRW1haWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZVwiLFxuICAgICAgICAgIFwiRGVzdGluYXRpb25cIixcbiAgICAgICAgICBcIlRlbXBsYXRlXCIsXG4gICAgICAgICAgXCJUZW1wbGF0ZURhdGFcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGx5VG9BZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1M1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHVyblBhdGhcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJSZXR1cm5QYXRoQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVEYXRhXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNlbmRUZW1wbGF0ZWRFbWFpbFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNZXNzYWdlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWVzc2FnZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0QWN0aXZlUmVjZWlwdFJ1bGVTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0QWN0aXZlUmVjZWlwdFJ1bGVTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJZGVudGl0eURraW1FbmFibGVkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgICAgIFwiRGtpbUVuYWJsZWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlcIjoge30sXG4gICAgICAgICAgXCJEa2ltRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNldElkZW50aXR5RGtpbUVuYWJsZWRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJZGVudGl0eUZlZWRiYWNrRm9yd2FyZGluZ0VuYWJsZWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5XCIsXG4gICAgICAgICAgXCJGb3J3YXJkaW5nRW5hYmxlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fSxcbiAgICAgICAgICBcIkZvcndhcmRpbmdFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0SWRlbnRpdHlGZWVkYmFja0ZvcndhcmRpbmdFbmFibGVkUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0SWRlbnRpdHlIZWFkZXJzSW5Ob3RpZmljYXRpb25zRW5hYmxlZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblR5cGVcIixcbiAgICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNldElkZW50aXR5SGVhZGVyc0luTm90aWZpY2F0aW9uc0VuYWJsZWRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJZGVudGl0eU1haWxGcm9tRG9tYWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fSxcbiAgICAgICAgICBcIk1haWxGcm9tRG9tYWluXCI6IHt9LFxuICAgICAgICAgIFwiQmVoYXZpb3JPbk1YRmFpbHVyZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRJZGVudGl0eU1haWxGcm9tRG9tYWluUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0SWRlbnRpdHlOb3RpZmljYXRpb25Ub3BpY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0SWRlbnRpdHlOb3RpZmljYXRpb25Ub3BpY1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFJlY2VpcHRSdWxlUG9zaXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCIsXG4gICAgICAgICAgXCJSdWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJ1bGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWZ0ZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0UmVjZWlwdFJ1bGVQb3NpdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlc3RSZW5kZXJUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCIsXG4gICAgICAgICAgXCJUZW1wbGF0ZURhdGFcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVEYXRhXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlRlc3RSZW5kZXJUZW1wbGF0ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlbmRlcmVkVGVtcGxhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBY2NvdW50U2VuZGluZ0VuYWJsZWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCIsXG4gICAgICAgICAgXCJFdmVudERlc3RpbmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnREZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDb25maWd1cmF0aW9uU2V0UmVwdXRhdGlvbk1ldHJpY3NFbmFibGVkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiLFxuICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNvbmZpZ3VyYXRpb25TZXRTZW5kaW5nRW5hYmxlZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIixcbiAgICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDb25maWd1cmF0aW9uU2V0VHJhY2tpbmdPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiLFxuICAgICAgICAgIFwiVHJhY2tpbmdPcHRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVHJhY2tpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJVcGRhdGVDb25maWd1cmF0aW9uU2V0VHJhY2tpbmdPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ3VzdG9tVmVyaWZpY2F0aW9uRW1haWxUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZyb21FbWFpbEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVN1YmplY3RcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZUNvbnRlbnRcIjoge30sXG4gICAgICAgICAgXCJTdWNjZXNzUmVkaXJlY3Rpb25VUkxcIjoge30sXG4gICAgICAgICAgXCJGYWlsdXJlUmVkaXJlY3Rpb25VUkxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSZWNlaXB0UnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIixcbiAgICAgICAgICBcIlJ1bGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSdWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlUmVjZWlwdFJ1bGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJVcGRhdGVUZW1wbGF0ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlZlcmlmeURvbWFpbkRraW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVmVyaWZ5RG9tYWluRGtpbVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEa2ltVG9rZW5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRraW1Ub2tlbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlZlcmlmeURvbWFpbklkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlZlcmlmeURvbWFpbklkZW50aXR5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZlcmlmaWNhdGlvblRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZlcmlmaWNhdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVmVyaWZ5RW1haWxBZGRyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbWFpbEFkZHJlc3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW1haWxBZGRyZXNzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVmVyaWZ5RW1haWxJZGVudGl0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW1haWxBZGRyZXNzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVtYWlsQWRkcmVzc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJWZXJpZnlFbWFpbElkZW50aXR5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIk1hdGNoaW5nRXZlbnRUeXBlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk1hdGNoaW5nRXZlbnRUeXBlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiS2luZXNpc0ZpcmVob3NlRGVzdGluYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJJQU1Sb2xlQVJOXCIsXG4gICAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtQVJOXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIklBTVJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtQVJOXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNsb3VkV2F0Y2hEZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkRpbWVuc2lvbkNvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRpbWVuc2lvbkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIkRpbWVuc2lvbk5hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwiRGltZW5zaW9uVmFsdWVTb3VyY2VcIixcbiAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdERpbWVuc2lvblZhbHVlXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkRpbWVuc2lvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkRpbWVuc2lvblZhbHVlU291cmNlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJEZWZhdWx0RGltZW5zaW9uVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU05TRGVzdGluYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJUb3BpY0FSTlwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJUb3BpY0FSTlwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3VzdG9tUmVkaXJlY3REb21haW5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIklwRmlsdGVyXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiSXBGaWx0ZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJQb2xpY3lcIixcbiAgICAgICAgICAgIFwiQ2lkclwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQb2xpY3lcIjoge30sXG4gICAgICAgICAgICBcIkNpZHJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlRsc1BvbGljeVwiOiB7fSxcbiAgICAgICAgXCJSZWNpcGllbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlMzQWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiQnVja2V0TmFtZVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiT2JqZWN0S2V5UHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJLbXNLZXlBcm5cIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQm91bmNlQWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiU210cFJlcGx5Q29kZVwiLFxuICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCIsXG4gICAgICAgICAgICAgICAgICBcIlNlbmRlclwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiU210cFJlcGx5Q29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiU3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiU2VuZGVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIldvcmttYWlsQWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiT3JnYW5pemF0aW9uQXJuXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJPcmdhbml6YXRpb25Bcm5cIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGFtYmRhQWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiRnVuY3Rpb25Bcm5cIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkZ1bmN0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJJbnZvY2F0aW9uVHlwZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdG9wQWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiU2NvcGVcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiU2NvcGVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFkZEhlYWRlckFjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIkhlYWRlck5hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwiSGVhZGVyVmFsdWVcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiSGVhZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiSGVhZGVyVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU05TQWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiVG9waWNBcm5cIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkVuY29kaW5nXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlNjYW5FbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICBcIlN1YmplY3RQYXJ0XCI6IHt9LFxuICAgICAgICBcIlRleHRQYXJ0XCI6IHt9LFxuICAgICAgICBcIkh0bWxQYXJ0XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMydFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMydlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNTNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzVmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzV1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzYxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUb0FkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1M1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2NBZGRyZXNzZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNTNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJjY0FkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1M1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRGF0YVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEYXRhXCI6IHt9LFxuICAgICAgICBcIkNoYXJzZXRcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0Q3VzdG9tVmVyaWZpY2F0aW9uRW1haWxUZW1wbGF0ZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkxpc3RJZGVudGl0aWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJZGVudGl0aWVzXCJcbiAgICB9LFxuICAgIFwiTGlzdFZlcmlmaWVkRW1haWxBZGRyZXNzZXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVmVyaWZpZWRFbWFpbEFkZHJlc3Nlc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIklkZW50aXR5RXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMyxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiR2V0SWRlbnRpdHlWZXJpZmljYXRpb25BdHRyaWJ1dGVzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDIwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVmVyaWZpY2F0aW9uQXR0cmlidXRlcy4qLlZlcmlmaWNhdGlvblN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMTAtMDdcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZXZlbnRzXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gQ2xvdWRXYXRjaCBFdmVudHNcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkNsb3VkV2F0Y2ggRXZlbnRzXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFXU0V2ZW50c1wiLFxuICAgIFwidWlkXCI6IFwiZXZlbnRzLTIwMTUtMTAtMDdcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiRGVsZXRlUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudEJ1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJ1bGVOYW1lc0J5VGFyZ2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYXJnZXRBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0QXJuXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UnVsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50UGF0dGVyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY2hlZHVsZUV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb2xlQXJuXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhcmdldHNCeVJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW50cmllc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnRyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXRhaWxUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGV0YWlsXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmFpbGVkRW50cnlDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVycm9yTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFBlcm1pc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgIFwiUHJpbmNpcGFsXCIsXG4gICAgICAgICAgXCJTdGF0ZW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgXCJQcmluY2lwYWxcIjoge30sXG4gICAgICAgICAgXCJTdGF0ZW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50UGF0dGVyblwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSb2xlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFRhcmdldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVcIixcbiAgICAgICAgICBcIlRhcmdldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmFpbGVkRW50cnlDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFpbGVkRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGFyZ2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvck1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGF0ZW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0ZW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhcmdldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVcIixcbiAgICAgICAgICBcIklkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlXCI6IHt9LFxuICAgICAgICAgIFwiSWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZhaWxlZEVudHJ5Q291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhaWxlZEVudHJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRhcmdldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVzdEV2ZW50UGF0dGVyblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRXZlbnRQYXR0ZXJuXCIsXG4gICAgICAgICAgXCJFdmVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFBhdHRlcm5cIjoge30sXG4gICAgICAgICAgXCJFdmVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJJbnB1dFwiOiB7fSxcbiAgICAgICAgICBcIklucHV0UGF0aFwiOiB7fSxcbiAgICAgICAgICBcIklucHV0VHJhbnNmb3JtZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJJbnB1dFRlbXBsYXRlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklucHV0UGF0aHNNYXBcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnB1dFRlbXBsYXRlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktpbmVzaXNQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUGFydGl0aW9uS2V5UGF0aFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQYXJ0aXRpb25LZXlQYXRoXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bkNvbW1hbmRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUnVuQ29tbWFuZFRhcmdldHNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUnVuQ29tbWFuZFRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlZhbHVlc1wiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFY3NQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiVGFza0RlZmluaXRpb25Bcm5cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVGFza0RlZmluaXRpb25Bcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiVGFza0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCYXRjaFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJKb2JEZWZpbml0aW9uXCIsXG4gICAgICAgICAgICAgIFwiSm9iTmFtZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJKb2JEZWZpbml0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkpvYk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQXJyYXlQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJldHJ5U3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkF0dGVtcHRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNxc1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1lc3NhZ2VHcm91cElkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wOC0wNFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJmaXJlaG9zZVwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkZpcmVob3NlXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gS2luZXNpcyBGaXJlaG9zZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiRmlyZWhvc2VcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiRmlyZWhvc2VfMjAxNTA4MDRcIixcbiAgICBcInVpZFwiOiBcImZpcmVob3NlLTIwMTUtMDgtMDRcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQ3JlYXRlRGVsaXZlcnlTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbVR5cGVcIjoge30sXG4gICAgICAgICAgXCJLaW5lc2lzU3RyZWFtU291cmNlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIktpbmVzaXNTdHJlYW1BUk5cIixcbiAgICAgICAgICAgICAgXCJSb2xlQVJOXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIktpbmVzaXNTdHJlYW1BUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTM0Rlc3RpbmF0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIixcbiAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4dGVuZGVkUzNEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJSb2xlQVJOXCIsXG4gICAgICAgICAgICAgIFwiQnVja2V0QVJOXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiQnVja2V0QVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJCdWZmZXJpbmdIaW50c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb21wcmVzc2lvbkZvcm1hdFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNCYWNrdXBNb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlMzQmFja3VwQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEYXRhRm9ybWF0Q29udmVyc2lvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVkc2hpZnREZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJSb2xlQVJOXCIsXG4gICAgICAgICAgICAgIFwiQ2x1c3RlckpEQkNVUkxcIixcbiAgICAgICAgICAgICAgXCJDb3B5Q29tbWFuZFwiLFxuICAgICAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgICAgIFwiUGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgXCJTM0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDbHVzdGVySkRCQ1VSTFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDb3B5Q29tbWFuZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXRyeU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUzNCYWNrdXBDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbGFzdGljc2VhcmNoRGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUm9sZUFSTlwiLFxuICAgICAgICAgICAgICBcIkRvbWFpbkFSTlwiLFxuICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiLFxuICAgICAgICAgICAgICBcIlR5cGVOYW1lXCIsXG4gICAgICAgICAgICAgIFwiUzNDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiRG9tYWluQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJbmRleFJvdGF0aW9uUGVyaW9kXCI6IHt9LFxuICAgICAgICAgICAgICBcIkJ1ZmZlcmluZ0hpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXRyeU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzQmFja3VwTW9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTM0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwbHVua0Rlc3RpbmF0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkhFQ0VuZHBvaW50XCIsXG4gICAgICAgICAgICAgIFwiSEVDRW5kcG9pbnRUeXBlXCIsXG4gICAgICAgICAgICAgIFwiSEVDVG9rZW5cIixcbiAgICAgICAgICAgICAgXCJTM0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSEVDRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiSEVDRW5kcG9pbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkhFQ1Rva2VuXCI6IHt9LFxuICAgICAgICAgICAgICBcIkhFQ0Fja25vd2xlZGdtZW50VGltZW91dEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmV0cnlPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUzNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb2Nlc3NpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURlbGl2ZXJ5U3RyZWFtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEZWxpdmVyeVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydERlc3RpbmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1EZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1BUk5cIixcbiAgICAgICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbVN0YXR1c1wiLFxuICAgICAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtVHlwZVwiLFxuICAgICAgICAgICAgICBcIlZlcnNpb25JZFwiLFxuICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uc1wiLFxuICAgICAgICAgICAgICBcIkhhc01vcmVEZXN0aW5hdGlvbnNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWZXJzaW9uSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3JlYXRlVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU291cmNlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJLaW5lc2lzU3RyZWFtU291cmNlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIktpbmVzaXNTdHJlYW1BUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGVsaXZlcnlTdGFydFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZXN0aW5hdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uSWRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRGVzdGluYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTM0Rlc3RpbmF0aW9uRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkV4dGVuZGVkUzNEZXN0aW5hdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJCdWNrZXRBUk5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQnVmZmVyaW5nSGludHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29tcHJlc3Npb25Gb3JtYXRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQnVja2V0QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkJ1ZmZlcmluZ0hpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNvbXByZXNzaW9uRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUzNCYWNrdXBNb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTM0JhY2t1cERlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJEYXRhRm9ybWF0Q29udmVyc2lvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJSZWRzaGlmdERlc3RpbmF0aW9uRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJSb2xlQVJOXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNsdXN0ZXJKREJDVVJMXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNvcHlDb21tYW5kXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlMzRGVzdGluYXRpb25EZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJDbHVzdGVySkRCQ1VSTFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29weUNvbW1hbmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJSZXRyeU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlMzRGVzdGluYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUzNCYWNrdXBNb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTM0JhY2t1cERlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJFbGFzdGljc2VhcmNoRGVzdGluYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRG9tYWluQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJJbmRleFJvdGF0aW9uUGVyaW9kXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJCdWZmZXJpbmdIaW50c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUmV0cnlPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlMzRGVzdGluYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3BsdW5rRGVzdGluYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSEVDRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkhFQ0VuZHBvaW50VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSEVDVG9rZW5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkhFQ0Fja25vd2xlZGdtZW50VGltZW91dEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUmV0cnlPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlMzRGVzdGluYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSGFzTW9yZURlc3RpbmF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERlbGl2ZXJ5U3RyZWFtc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnREZWxpdmVyeVN0cmVhbU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lc1wiLFxuICAgICAgICAgIFwiSGFzTW9yZURlbGl2ZXJ5U3RyZWFtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhhc01vcmVEZWxpdmVyeVN0cmVhbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yRGVsaXZlcnlTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydFRhZ0tleVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnc1wiLFxuICAgICAgICAgIFwiSGFzTW9yZVRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIYXNNb3JlVGFnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UmVjb3JkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlJlY29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZWNvcmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWNvcmRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWNvcmRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFJlY29yZEJhdGNoXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlJlY29yZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2RcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmFpbGVkUHV0Q291bnRcIixcbiAgICAgICAgICBcIlJlcXVlc3RSZXNwb25zZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmFpbGVkUHV0Q291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RSZXNwb25zZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlY29yZElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGFnRGVsaXZlcnlTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVudGFnRGVsaXZlcnlTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURlc3RpbmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIkN1cnJlbnREZWxpdmVyeVN0cmVhbVZlcnNpb25JZFwiLFxuICAgICAgICAgIFwiRGVzdGluYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJDdXJyZW50RGVsaXZlcnlTdHJlYW1WZXJzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiUzNEZXN0aW5hdGlvblVwZGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCIsXG4gICAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHRlbmRlZFMzRGVzdGluYXRpb25VcGRhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiQnVja2V0QVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJCdWZmZXJpbmdIaW50c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb21wcmVzc2lvbkZvcm1hdFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNCYWNrdXBNb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlMzQmFja3VwVXBkYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEYXRhRm9ybWF0Q29udmVyc2lvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVkc2hpZnREZXN0aW5hdGlvblVwZGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDbHVzdGVySkRCQ1VSTFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDb3B5Q29tbWFuZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXRyeU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzVXBkYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUzNCYWNrdXBVcGRhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbGFzdGljc2VhcmNoRGVzdGluYXRpb25VcGRhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiRG9tYWluQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJbmRleFJvdGF0aW9uUGVyaW9kXCI6IHt9LFxuICAgICAgICAgICAgICBcIkJ1ZmZlcmluZ0hpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXRyeU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzVXBkYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BsdW5rRGVzdGluYXRpb25VcGRhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkhFQ0VuZHBvaW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIkhFQ0VuZHBvaW50VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJIRUNUb2tlblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJIRUNBY2tub3dsZWRnbWVudFRpbWVvdXRJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJldHJ5T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNCYWNrdXBNb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlMzVXBkYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUm9sZUFSTlwiLFxuICAgICAgICBcIkJ1Y2tldEFSTlwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICBcIkJ1Y2tldEFSTlwiOiB7fSxcbiAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgIFwiQnVmZmVyaW5nSGludHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcHJlc3Npb25Gb3JtYXRcIjoge30sXG4gICAgICAgIFwiRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTaXplSW5NQnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkludGVydmFsSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTm9FbmNyeXB0aW9uQ29uZmlnXCI6IHt9LFxuICAgICAgICBcIktNU0VuY3J5cHRpb25Db25maWdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJBV1NLTVNLZXlBUk5cIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQVdTS01TS2V5QVJOXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiTG9nU3RyZWFtTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvY2Vzc29yc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiVHlwZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlBhcmFtZXRlclZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTY2hlbWFDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgXCJDYXRhbG9nSWRcIjoge30sXG4gICAgICAgICAgICBcIkRhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnB1dEZvcm1hdENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRlc2VyaWFsaXplclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiT3BlblhKc29uU2VyRGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnZlcnREb3RzSW5Kc29uS2V5c1RvVW5kZXJzY29yZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkNhc2VJbnNlbnNpdGl2ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29sdW1uVG9Kc29uS2V5TWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIaXZlSnNvblNlckRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBGb3JtYXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJPdXRwdXRGb3JtYXRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJTZXJpYWxpemVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQYXJxdWV0U2VyRGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkJsb2NrU2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJQYWdlU2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21wcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJFbmFibGVEaWN0aW9uYXJ5Q29tcHJlc3Npb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1heFBhZGRpbmdCeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiV3JpdGVyVmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcmNTZXJEZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU3RyaXBlU2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJCbG9ja1NpemVCeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUm93SW5kZXhTdHJpZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkVuYWJsZVBhZGRpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlBhZGRpbmdUb2xlcmFuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tcHJlc3Npb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQmxvb21GaWx0ZXJDb2x1bW5zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJCbG9vbUZpbHRlckZhbHNlUG9zaXRpdmVQcm9iYWJpbGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJEaWN0aW9uYXJ5S2V5VGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkZvcm1hdFZlcnNpb25cIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRGF0YVRhYmxlTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEYXRhVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICBcIkRhdGFUYWJsZUNvbHVtbnNcIjoge30sXG4gICAgICAgIFwiQ29weU9wdGlvbnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRHVyYXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSW50ZXJ2YWxJblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNpemVJbk1Cc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUm9sZUFSTlwiLFxuICAgICAgICBcIkJ1Y2tldEFSTlwiLFxuICAgICAgICBcIkJ1ZmZlcmluZ0hpbnRzXCIsXG4gICAgICAgIFwiQ29tcHJlc3Npb25Gb3JtYXRcIixcbiAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICBcIkJ1Y2tldEFSTlwiOiB7fSxcbiAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgIFwiQnVmZmVyaW5nSGludHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcHJlc3Npb25Gb3JtYXRcIjoge30sXG4gICAgICAgIFwiRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIktleVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRGF0YVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEYXRhXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgIFwiQnVja2V0QVJOXCI6IHt9LFxuICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJCdWZmZXJpbmdIaW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wcmVzc2lvbkZvcm1hdFwiOiB7fSxcbiAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTEwLTAxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImdhbWVsaWZ0XCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gR2FtZUxpZnRcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiR2FtZUxpZnRcIixcbiAgICBcInVpZFwiOiBcImdhbWVsaWZ0LTIwMTUtMTAtMDFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWNjZXB0TWF0Y2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRpY2tldElkXCIsXG4gICAgICAgICAgXCJQbGF5ZXJJZHNcIixcbiAgICAgICAgICBcIkFjY2VwdGFuY2VUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRpY2tldElkXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2VwdGFuY2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQWxpYXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlJvdXRpbmdTdHJhdGVneVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSb3V0aW5nU3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxpYXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQnVpbGRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJTdG9yYWdlTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVpbGRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBsb2FkQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZUxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUZsZWV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJCdWlsZElkXCIsXG4gICAgICAgICAgXCJFQzJJbnN0YW5jZVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQnVpbGRJZFwiOiB7fSxcbiAgICAgICAgICBcIlNlcnZlckxhdW5jaFBhdGhcIjoge30sXG4gICAgICAgICAgXCJTZXJ2ZXJMYXVuY2hQYXJhbWV0ZXJzXCI6IHt9LFxuICAgICAgICAgIFwiTG9nUGF0aHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRUMySW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRUMySW5ib3VuZFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ld0dhbWVTZXNzaW9uUHJvdGVjdGlvblBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcIlJ1bnRpbWVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldHJpY0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVlclZwY0F3c0FjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlBlZXJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIkZsZWV0VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlR2FtZVNlc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1heGltdW1QbGF5ZXJTZXNzaW9uQ291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkFsaWFzSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhpbXVtUGxheWVyU2Vzc2lvbkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0b3JJZFwiOiB7fSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25EYXRhXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUdhbWVTZXNzaW9uUXVldWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRpbWVvdXRJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBsYXllckxhdGVuY3lQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvblF1ZXVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uUXVldWVBcm5zXCIsXG4gICAgICAgICAgXCJSZXF1ZXN0VGltZW91dFNlY29uZHNcIixcbiAgICAgICAgICBcIkFjY2VwdGFuY2VSZXF1aXJlZFwiLFxuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25RdWV1ZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RUaW1lb3V0U2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXB0YW5jZVRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NlcHRhbmNlUmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVGFyZ2V0XCI6IHt9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbFBsYXllckNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21FdmVudERhdGFcIjoge30sXG4gICAgICAgICAgXCJHYW1lUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25EYXRhXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTWF0Y2htYWtpbmdSdWxlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJSdWxlU2V0Qm9keVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZVNldEJvZHlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQbGF5ZXJTZXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCIsXG4gICAgICAgICAgXCJQbGF5ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVySWRcIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJEYXRhXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxheWVyU2Vzc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUGxheWVyU2Vzc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIixcbiAgICAgICAgICBcIlBsYXllcklkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVySWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBsYXllckRhdGFNYXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxheWVyU2Vzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMycFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZwY1BlZXJpbmdBdXRob3JpemF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYW1lTGlmdEF3c0FjY291bnRJZFwiLFxuICAgICAgICAgIFwiUGVlclZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVMaWZ0QXdzQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgIFwiUGVlclZwY0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjUGVlcmluZ0F1dGhvcml6YXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZwY1BlZXJpbmdDb25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCIsXG4gICAgICAgICAgXCJQZWVyVnBjQXdzQWNjb3VudElkXCIsXG4gICAgICAgICAgXCJQZWVyVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlBlZXJWcGNBd3NBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgXCJQZWVyVnBjSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBbGlhc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxpYXNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQnVpbGRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1aWxkSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVpbGRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZsZWV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVHYW1lU2Vzc2lvblF1ZXVlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNjYWxpbmdQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkZsZWV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcGNQZWVyaW5nQXV0aG9yaXphdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2FtZUxpZnRBd3NBY2NvdW50SWRcIixcbiAgICAgICAgICBcIlBlZXJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lTGlmdEF3c0FjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlBlZXJWcGNJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZwY1BlZXJpbmdDb25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCIsXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBbGlhc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxpYXNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxpYXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVCdWlsZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVpbGRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWlsZElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVpbGRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFQzJJbnN0YW5jZUxpbWl0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFQzJJbnN0YW5jZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFQzJJbnN0YW5jZUxpbWl0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRUMySW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVudEluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VMaW1pdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGbGVldEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGbGVldENhcGFjaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlQ291bnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJERVNJUkVEXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJNSU5JTVVNXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJNQVhJTVVNXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJQRU5ESU5HXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJBQ1RJVkVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIklETEVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlRFUk1JTkFUSU5HXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZsZWV0RXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFdmVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50Q29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJlU2lnbmVkTG9nVXJsXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGbGVldFBvcnRTZXR0aW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5ib3VuZFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRmxlZXRVdGlsaXphdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0VXRpbGl6YXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBY3RpdmVTZXJ2ZXJQcm9jZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFjdGl2ZUdhbWVTZXNzaW9uQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbnRQbGF5ZXJTZXNzaW9uQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heGltdW1QbGF5ZXJTZXNzaW9uQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlR2FtZVNlc3Npb25EZXRhaWxzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCI6IHt9LFxuICAgICAgICAgIFwiQWxpYXNJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c0ZpbHRlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbkRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkdhbWVTZXNzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm90ZWN0aW9uUG9saWN5XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVHYW1lU2Vzc2lvblBsYWNlbWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhY2VtZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhY2VtZW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvblBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVHYW1lU2Vzc2lvblF1ZXVlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25RdWV1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVHYW1lU2Vzc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJBbGlhc0lkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzRmlsdGVyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNYXRjaG1ha2luZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGlja2V0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRpY2tldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGlja2V0TGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1hdGNobWFraW5nQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWF0Y2htYWtpbmdSdWxlU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVTZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGxheWVyU2Vzc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlBsYXllcklkXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVyU2Vzc2lvbklkXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVyU2Vzc2lvblN0YXR1c0ZpbHRlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF5ZXJTZXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSdW50aW1lQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVudGltZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NhbGluZ1BvbGljaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNGaWx0ZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2NhbGluZ1BvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjYWxpbmdBZGp1c3RtZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTY2FsaW5nQWRqdXN0bWVudFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZhbHVhdGlvblBlcmlvZHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNQZWVyaW5nQXV0aG9yaXphdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjUGVlcmluZ0F1dGhvcml6YXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjUGVlcmluZ0Nvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJcFY0Q2lkckJsb2NrXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBlZXJWcGNJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdhbWVMaWZ0VnBjSWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRHYW1lU2Vzc2lvbkxvZ1VybFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJlU2lnbmVkVXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SW5zdGFuY2VBY2Nlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIixcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUFjY2Vzc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIklwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge30sXG4gICAgICAgICAgICAgIFwiQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlVzZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJTZWNyZXRcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QWxpYXNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSb3V0aW5nU3RyYXRlZ3lUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJ1aWxkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVpbGRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEZsZWV0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWlsZElkXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRTY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJGbGVldElkXCIsXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjYWxpbmdBZGp1c3RtZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJFdmFsdWF0aW9uUGVyaW9kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVxdWVzdFVwbG9hZENyZWRlbnRpYWxzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWlsZElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1aWxkSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVcGxvYWRDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzb2x2ZUFsaWFzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGlhc0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsaWFzSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VhcmNoR2FtZVNlc3Npb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJBbGlhc0lkXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlNvcnRFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRGbGVldEFjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIixcbiAgICAgICAgICBcIkFjdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0R2FtZVNlc3Npb25QbGFjZW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYWNlbWVudElkXCIsXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvblF1ZXVlTmFtZVwiLFxuICAgICAgICAgIFwiTWF4aW11bVBsYXllclNlc3Npb25Db3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGFjZW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uUXVldWVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heGltdW1QbGF5ZXJTZXNzaW9uQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYXllckxhdGVuY2llc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzaXJlZFBsYXllclNlc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQbGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBsYXllckRhdGFcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbkRhdGFcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvblBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRNYXRjaEJhY2tmaWxsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25Bcm5cIixcbiAgICAgICAgICBcIlBsYXllcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGlja2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWF0Y2htYWtpbmdUaWNrZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0TWF0Y2htYWtpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJQbGF5ZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRpY2tldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXRjaG1ha2luZ1RpY2tldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcEZsZWV0QWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiLFxuICAgICAgICAgIFwiQWN0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcEdhbWVTZXNzaW9uUGxhY2VtZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGFjZW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGFjZW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wTWF0Y2htYWtpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRpY2tldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRpY2tldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQWxpYXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFsaWFzSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxpYXNJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJvdXRpbmdTdHJhdGVneVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVCdWlsZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVpbGRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWlsZElkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWlsZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVGbGVldEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk5ld0dhbWVTZXNzaW9uUHJvdGVjdGlvblBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWV0cmljR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRmxlZXRDYXBhY2l0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiRGVzaXJlZEluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUZsZWV0UG9ydFNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJJbmJvdW5kUGVybWlzc2lvbkF1dGhvcml6YXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluYm91bmRQZXJtaXNzaW9uUmV2b2NhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUdhbWVTZXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhpbXVtUGxheWVyU2Vzc2lvbkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVyU2Vzc2lvbkNyZWF0aW9uUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiUHJvdGVjdGlvblBvbGljeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVHYW1lU2Vzc2lvblF1ZXVlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUaW1lb3V0SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQbGF5ZXJMYXRlbmN5UG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25RdWV1ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uUXVldWVBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0VGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2VwdGFuY2VUaW1lb3V0U2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXB0YW5jZVJlcXVpcmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblRhcmdldFwiOiB7fSxcbiAgICAgICAgICBcIkFkZGl0aW9uYWxQbGF5ZXJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3VzdG9tRXZlbnREYXRhXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uRGF0YVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJ1bnRpbWVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCIsXG4gICAgICAgICAgXCJSdW50aW1lQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiUnVudGltZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bnRpbWVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJWYWxpZGF0ZU1hdGNobWFraW5nUnVsZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldEJvZHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldEJvZHlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWYWxpZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWxpYXNJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkFsaWFzQXJuXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlJvdXRpbmdTdHJhdGVneVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdFVwZGF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIlJvbGVBcm5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ1aWxkSWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTaXplT25EaXNrXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBY2Nlc3NLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJTZWNyZXRBY2Nlc3NLZXlcIjoge30sXG4gICAgICAgIFwiU2Vzc2lvblRva2VuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZyb21Qb3J0XCIsXG4gICAgICAgICAgXCJUb1BvcnRcIixcbiAgICAgICAgICBcIklwUmFuZ2VcIixcbiAgICAgICAgICBcIlByb3RvY29sXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZyb21Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb1BvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwUmFuZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm90b2NvbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU2VydmVyUHJvY2Vzc2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJMYXVuY2hQYXRoXCIsXG4gICAgICAgICAgICAgIFwiQ29uY3VycmVudEV4ZWN1dGlvbnNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTGF1bmNoUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNvbmN1cnJlbnRFeGVjdXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXhDb25jdXJyZW50R2FtZVNlc3Npb25BY3RpdmF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR2FtZVNlc3Npb25BY3RpdmF0aW9uVGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmV3R2FtZVNlc3Npb25zUGVyQ3JlYXRvclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUG9saWN5UGVyaW9kSW5NaW51dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMThcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICBcIkZsZWV0QXJuXCI6IHt9LFxuICAgICAgICBcIkZsZWV0VHlwZVwiOiB7fSxcbiAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGVybWluYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJCdWlsZElkXCI6IHt9LFxuICAgICAgICBcIlNlcnZlckxhdW5jaFBhdGhcIjoge30sXG4gICAgICAgIFwiU2VydmVyTGF1bmNoUGFyYW1ldGVyc1wiOiB7fSxcbiAgICAgICAgXCJMb2dQYXRoc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXdHYW1lU2Vzc2lvblByb3RlY3Rpb25Qb2xpY3lcIjoge30sXG4gICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtXCI6IHt9LFxuICAgICAgICBcIlJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWV0cmljR3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdG9wcGVkQWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUZXJtaW5hdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VycmVudFBsYXllclNlc3Npb25Db3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWF4aW11bVBsYXllclNlc3Npb25Db3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1JlYXNvblwiOiB7fSxcbiAgICAgICAgXCJHYW1lUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBsYXllclNlc3Npb25DcmVhdGlvblBvbGljeVwiOiB7fSxcbiAgICAgICAgXCJDcmVhdG9ySWRcIjoge30sXG4gICAgICAgIFwiR2FtZVNlc3Npb25EYXRhXCI6IHt9LFxuICAgICAgICBcIk1hdGNobWFrZXJEYXRhXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWF4aW11bUluZGl2aWR1YWxQbGF5ZXJMYXRlbmN5TWlsbGlzZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb2xpY3lEdXJhdGlvblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzdGluYXRpb25Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiR2FtZVNlc3Npb25RdWV1ZUFyblwiOiB7fSxcbiAgICAgICAgXCJUaW1lb3V0SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQbGF5ZXJMYXRlbmN5UG9saWNpZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlc3RpbmF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMyYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvblF1ZXVlQXJuc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyM1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVxdWVzdFRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBY2NlcHRhbmNlVGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFjY2VwdGFuY2VSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUnVsZVNldE5hbWVcIjoge30sXG4gICAgICAgIFwiTm90aWZpY2F0aW9uVGFyZ2V0XCI6IHt9LFxuICAgICAgICBcIkFkZGl0aW9uYWxQbGF5ZXJDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VzdG9tRXZlbnREYXRhXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHYW1lUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR2FtZVNlc3Npb25EYXRhXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJ1bGVTZXRCb2R5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIlJ1bGVTZXRCb2R5XCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBsYXllclNlc3Npb25JZFwiOiB7fSxcbiAgICAgICAgXCJQbGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCI6IHt9LFxuICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRlcm1pbmF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBsYXllckRhdGFcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiR2FtZUxpZnRBd3NBY2NvdW50SWRcIjoge30sXG4gICAgICAgIFwiUGVlclZwY0F3c0FjY291bnRJZFwiOiB7fSxcbiAgICAgICAgXCJQZWVyVnBjSWRcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4cGlyYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNDVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBsYWNlbWVudElkXCI6IHt9LFxuICAgICAgICBcIkdhbWVTZXNzaW9uUXVldWVOYW1lXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJHYW1lUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWF4aW11bVBsYXllclNlc3Npb25Db3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR2FtZVNlc3Npb25OYW1lXCI6IHt9LFxuICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgIFwiR2FtZVNlc3Npb25Bcm5cIjoge30sXG4gICAgICAgIFwiR2FtZVNlc3Npb25SZWdpb25cIjoge30sXG4gICAgICAgIFwiUGxheWVyTGF0ZW5jaWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcEFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGxhY2VkUGxheWVyU2Vzc2lvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUGxheWVySWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUGxheWVyU2Vzc2lvbklkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkdhbWVTZXNzaW9uRGF0YVwiOiB7fSxcbiAgICAgICAgXCJNYXRjaG1ha2VyRGF0YVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXllcklkXCI6IHt9LFxuICAgICAgICAgIFwiUmVnaW9uSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkxhdGVuY3lJbk1pbGxpc2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0aVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzR0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUaWNrZXRJZFwiOiB7fSxcbiAgICAgICAgXCJDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3RhdHVzUmVhc29uXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGxheWVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0d1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR2FtZVNlc3Npb25Db25uZWN0aW9uSW5mb1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiR2FtZVNlc3Npb25Bcm5cIjoge30sXG4gICAgICAgICAgICBcIklwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWF0Y2hlZFBsYXllclNlc3Npb25zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiUGxheWVySWRcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlBsYXllclNlc3Npb25JZFwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFc3RpbWF0ZWRXYWl0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzR3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlBsYXllckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNMXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNETVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlYW1cIjoge30sXG4gICAgICAgICAgXCJMYXRlbmN5SW5Nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUYXJnZXRWYWx1ZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYXJnZXRWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTYtMDItMTZcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiaW5zcGVjdG9yXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gSW5zcGVjdG9yXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkluc3BlY3RvclNlcnZpY2VcIixcbiAgICBcInVpZFwiOiBcImluc3BlY3Rvci0yMDE2LTAyLTE2XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZEF0dHJpYnV0ZXNUb0ZpbmRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJmaW5kaW5nQXJuc1wiLFxuICAgICAgICAgIFwiYXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmaW5kaW5nQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBc3Nlc3NtZW50VGFyZ2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJlc291cmNlR3JvdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQXNzZXNzbWVudFRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuXCIsXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVOYW1lXCIsXG4gICAgICAgICAgXCJkdXJhdGlvbkluU2Vjb25kc1wiLFxuICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuXCI6IHt9LFxuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImR1cmF0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJBdHRyaWJ1dGVzRm9yRmluZGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFeGNsdXNpb25zUHJldmlld1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcmV2aWV3VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJldmlld1Rva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVzb3VyY2VHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VHcm91cFRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VHcm91cFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlR3JvdXBBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VHcm91cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFzc2Vzc21lbnRSdW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFzc2Vzc21lbnRUYXJnZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFzc2Vzc21lbnRUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXNzZXNzbWVudFJ1bnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuc1wiLFxuICAgICAgICAgIFwiZmFpbGVkSXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJhcm5cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiLFxuICAgICAgICAgICAgICAgIFwic3RhdGVcIixcbiAgICAgICAgICAgICAgICBcImR1cmF0aW9uSW5TZWNvbmRzXCIsXG4gICAgICAgICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCIsXG4gICAgICAgICAgICAgICAgXCJ1c2VyQXR0cmlidXRlc0ZvckZpbmRpbmdzXCIsXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIixcbiAgICAgICAgICAgICAgICBcInN0YXRlQ2hhbmdlZEF0XCIsXG4gICAgICAgICAgICAgICAgXCJkYXRhQ29sbGVjdGVkXCIsXG4gICAgICAgICAgICAgICAgXCJzdGF0ZUNoYW5nZXNcIixcbiAgICAgICAgICAgICAgICBcIm5vdGlmaWNhdGlvbnNcIixcbiAgICAgICAgICAgICAgICBcImZpbmRpbmdDb3VudHNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZHVyYXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJ1bGVzUGFja2FnZUFybnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidXNlckF0dHJpYnV0ZXNGb3JGaW5kaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbXBsZXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInN0YXRlQ2hhbmdlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImRhdGFDb2xsZWN0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInN0YXRlQ2hhbmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcInN0YXRlQ2hhbmdlZEF0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZUNoYW5nZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm5vdGlmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJkYXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJldmVudFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiZGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJldmVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJlcnJvclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwic25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJzbnNQdWJsaXNoU3RhdHVzQ29kZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImZpbmRpbmdDb3VudHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbGVkSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBc3Nlc3NtZW50VGFyZ2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRzXCIsXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImFyblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCIsXG4gICAgICAgICAgICAgICAgXCJ1cGRhdGVkQXRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlR3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXNzZXNzbWVudFRlbXBsYXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVzXCIsXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiYXJuXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuXCIsXG4gICAgICAgICAgICAgICAgXCJkdXJhdGlvbkluU2Vjb25kc1wiLFxuICAgICAgICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiLFxuICAgICAgICAgICAgICAgIFwidXNlckF0dHJpYnV0ZXNGb3JGaW5kaW5nc1wiLFxuICAgICAgICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkNvdW50XCIsXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJkdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ1c2VyQXR0cmlidXRlc0ZvckZpbmRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImxhc3RBc3Nlc3NtZW50UnVuQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbGVkSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDcm9zc0FjY291bnRBY2Nlc3NSb2xlXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicm9sZUFyblwiLFxuICAgICAgICAgIFwidmFsaWRcIixcbiAgICAgICAgICBcInJlZ2lzdGVyZWRBdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwidmFsaWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlZ2lzdGVyZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV4Y2x1c2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImV4Y2x1c2lvbkFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXhjbHVzaW9uQXJuc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2NhbGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZXhjbHVzaW9uc1wiLFxuICAgICAgICAgIFwiZmFpbGVkSXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXhjbHVzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImFyblwiLFxuICAgICAgICAgICAgICAgIFwidGl0bGVcIixcbiAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJyZWNvbW1lbmRhdGlvblwiLFxuICAgICAgICAgICAgICAgIFwic2NvcGVzXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRpdGxlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZWNvbW1lbmRhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF4XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbGVkSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGaW5kaW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZmluZGluZ0FybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZmluZGluZ0FybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9jYWxlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImZpbmRpbmdzXCIsXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmaW5kaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImFyblwiLFxuICAgICAgICAgICAgICAgIFwiYXR0cmlidXRlc1wiLFxuICAgICAgICAgICAgICAgIFwidXNlckF0dHJpYnV0ZXNcIixcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiLFxuICAgICAgICAgICAgICAgIFwidXBkYXRlZEF0XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInNjaGVtYVZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInNlcnZpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzZXJ2aWNlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcInNjaGVtYVZlcnNpb25cIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2NoZW1hVmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5cIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXNzZXRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXNzZXRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwic2NoZW1hVmVyc2lvblwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzY2hlbWFWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJhZ2VudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImF1dG9TY2FsaW5nR3JvdXBcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiYW1pSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiaG9zdG5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiaXB2NEFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0aXRsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVjb21tZW5kYXRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJzZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIm51bWVyaWNTZXZlcml0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpbmRpY2F0b3JPZkNvbXByb21pc2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInVzZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ1cGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbGVkSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNvdXJjZUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VHcm91cEFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VHcm91cEFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlR3JvdXBzXCIsXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImFyblwiLFxuICAgICAgICAgICAgICAgIFwidGFnc1wiLFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUnVsZXNQYWNrYWdlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxvY2FsZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJydWxlc1BhY2thZ2VzXCIsXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydWxlc1BhY2thZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiYXJuXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCIsXG4gICAgICAgICAgICAgICAgXCJwcm92aWRlclwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInByb3ZpZGVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBc3Nlc3NtZW50UmVwb3J0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCIsXG4gICAgICAgICAgXCJyZXBvcnRGaWxlRm9ybWF0XCIsXG4gICAgICAgICAgXCJyZXBvcnRUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIjoge30sXG4gICAgICAgICAgXCJyZXBvcnRGaWxlRm9ybWF0XCI6IHt9LFxuICAgICAgICAgIFwicmVwb3J0VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwidXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RXhjbHVzaW9uc1ByZXZpZXdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiLFxuICAgICAgICAgIFwicHJldmlld1Rva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcInByZXZpZXdUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxvY2FsZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcmV2aWV3U3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByZXZpZXdTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJleGNsdXNpb25QcmV2aWV3c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcInRpdGxlXCIsXG4gICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgIFwicmVjb21tZW5kYXRpb25cIixcbiAgICAgICAgICAgICAgICBcInNjb3Blc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0aXRsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVjb21tZW5kYXRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJzY29wZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRlbGVtZXRyeU1ldGFkYXRhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGVsZW1ldHJ5TWV0YWRhdGFcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGVsZW1ldHJ5TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBc3Nlc3NtZW50UnVuQWdlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIjoge30sXG4gICAgICAgICAgXCJmaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJhZ2VudEhlYWx0aHNcIixcbiAgICAgICAgICAgICAgXCJhZ2VudEhlYWx0aENvZGVzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImFnZW50SGVhbHRoc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYWdlbnRIZWFsdGhDb2Rlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5BZ2VudHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFnZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImFnZW50SWRcIixcbiAgICAgICAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIixcbiAgICAgICAgICAgICAgICBcImFnZW50SGVhbHRoXCIsXG4gICAgICAgICAgICAgICAgXCJhZ2VudEhlYWx0aENvZGVcIixcbiAgICAgICAgICAgICAgICBcInRlbGVtZXRyeU1ldGFkYXRhXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFnZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWdlbnRIZWFsdGhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhZ2VudEhlYWx0aENvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhZ2VudEhlYWx0aERldGFpbHNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhdXRvU2NhbGluZ0dyb3VwXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGVsZW1ldHJ5TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBc3Nlc3NtZW50UnVuc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIm5hbWVQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcInN0YXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZHVyYXRpb25SYW5nZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3RhcnRUaW1lUmFuZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNvbXBsZXRpb25UaW1lUmFuZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInN0YXRlQ2hhbmdlVGltZVJhbmdlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN1XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBc3Nlc3NtZW50VGFyZ2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXROYW1lUGF0dGVyblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBc3Nlc3NtZW50VGVtcGxhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIm5hbWVQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcImR1cmF0aW9uUmFuZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInJ1bGVzUGFja2FnZUFybnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3RcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RFdmVudFN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwic3Vic2NyaXB0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VBcm5cIixcbiAgICAgICAgICAgICAgICBcInRvcGljQXJuXCIsXG4gICAgICAgICAgICAgICAgXCJldmVudFN1YnNjcmlwdGlvbnNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0b3BpY0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcImV2ZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJzdWJzY3JpYmVkQXRcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiZXZlbnRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJzdWJzY3JpYmVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEV4Y2x1c2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJleGNsdXNpb25Bcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImV4Y2x1c2lvbkFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RGaW5kaW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJhZ2VudElkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXV0b1NjYWxpbmdHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInJ1bGVOYW1lc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic2V2ZXJpdGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNyZWF0aW9uVGltZVJhbmdlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN1XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZmluZGluZ0FybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZmluZGluZ0FybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSdWxlc1BhY2thZ2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVzUGFja2FnZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHJldmlld0FnZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJldmlld0FnZW50c0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcmV2aWV3QWdlbnRzQXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFnZW50UHJldmlld3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYWdlbnRQcmV2aWV3c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImFnZW50SWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiaG9zdG5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhZ2VudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXV0b1NjYWxpbmdHcm91cFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFnZW50SGVhbHRoXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWdlbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwib3BlcmF0aW5nU3lzdGVtXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwia2VybmVsVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImlwdjRBZGRyZXNzXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJDcm9zc0FjY291bnRBY2Nlc3NSb2xlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVBdHRyaWJ1dGVzRnJvbUZpbmRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJmaW5kaW5nQXJuc1wiLFxuICAgICAgICAgIFwiYXR0cmlidXRlS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmaW5kaW5nQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRBc3Nlc3NtZW50UnVuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcEFzc2Vzc21lbnRSdW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiOiB7fSxcbiAgICAgICAgICBcInN0b3BBY3Rpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdWJzY3JpYmVUb0V2ZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwiZXZlbnRcIixcbiAgICAgICAgICBcInRvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiZXZlbnRcIjoge30sXG4gICAgICAgICAgXCJ0b3BpY0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVuc3Vic2NyaWJlRnJvbUV2ZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwiZXZlbnRcIixcbiAgICAgICAgICBcInRvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiZXZlbnRcIjoge30sXG4gICAgICAgICAgXCJ0b3BpY0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFzc2Vzc21lbnRUYXJnZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5cIixcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5cIjoge30sXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJlc291cmNlR3JvdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcImtleVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJmYWlsdXJlQ29kZVwiLFxuICAgICAgICAgIFwicmV0cnlhYmxlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZhaWx1cmVDb2RlXCI6IHt9LFxuICAgICAgICAgIFwicmV0cnlhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJtZXNzYWdlVHlwZVwiLFxuICAgICAgICAgIFwiY291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibWVzc2FnZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJjb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGF0YVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTM3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm1pblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heFNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTM3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImJlZ2luRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbmREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNG9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJrZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkdldEV4Y2x1c2lvbnNQcmV2aWV3XCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0QXNzZXNzbWVudFJ1bkFnZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEFzc2Vzc21lbnRSdW5zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0QXNzZXNzbWVudFRhcmdldHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RBc3Nlc3NtZW50VGVtcGxhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0RXZlbnRTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0RXhjbHVzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEZpbmRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0UnVsZXNQYWNrYWdlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiUHJldmlld0FnZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMDUtMjhcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiaW90XCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIElvVFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiSW9UXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInNpZ25pbmdOYW1lXCI6IFwiZXhlY3V0ZS1hcGlcIixcbiAgICBcInVpZFwiOiBcImlvdC0yMDE1LTA1LTI4XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFjY2VwdENlcnRpZmljYXRlVHJhbnNmZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYWNjZXB0LWNlcnRpZmljYXRlLXRyYW5zZmVyL3tjZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXRBc0FjdGl2ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2V0QXNBY3RpdmVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRUaGluZ1RvVGhpbmdHcm91cFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctZ3JvdXBzL2FkZFRoaW5nVG9UaGluZ0dyb3VwXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZVRhcmdldHNXaXRoSm9iXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9qb2JzL3tqb2JJZH0vdGFyZ2V0c1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhcmdldHNcIixcbiAgICAgICAgICBcImpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbW1lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JBcm5cIjoge30sXG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXR0YWNoUG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90YXJnZXQtcG9saWNpZXMve3BvbGljeU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwidGFyZ2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXR0YWNoUHJpbmNpcGFsUG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wcmluY2lwYWwtcG9saWNpZXMve3BvbGljeU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwicHJpbmNpcGFsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJpbmNpcGFsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXpuLWlvdC1wcmluY2lwYWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkF0dGFjaFRoaW5nUHJpbmNpcGFsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX0vcHJpbmNpcGFsc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiLFxuICAgICAgICAgIFwicHJpbmNpcGFsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByaW5jaXBhbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16bi1wcmluY2lwYWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxDZXJ0aWZpY2F0ZVRyYW5zZmVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NhbmNlbC1jZXJ0aWZpY2F0ZS10cmFuc2Zlci97Y2VydGlmaWNhdGVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsSm9iXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9qb2JzL3tqb2JJZH0vY2FuY2VsXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbW1lbnRcIjoge30sXG4gICAgICAgICAgXCJmb3JjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZm9yY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JBcm5cIjoge30sXG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsSm9iRXhlY3V0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX0vam9icy97am9iSWR9L2NhbmNlbFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCIsXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmb3JjZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4cGVjdGVkVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDbGVhckRlZmF1bHRBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9kZWZhdWx0LWF1dGhvcml6ZXJcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2F1dGhvcml6ZXIve2F1dGhvcml6ZXJOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCIsXG4gICAgICAgICAgXCJhdXRob3JpemVyRnVuY3Rpb25Bcm5cIixcbiAgICAgICAgICBcInRva2VuS2V5TmFtZVwiLFxuICAgICAgICAgIFwidG9rZW5TaWduaW5nUHVibGljS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dGhvcml6ZXJOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXV0aG9yaXplckZ1bmN0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwidG9rZW5LZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidG9rZW5TaWduaW5nUHVibGljS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXV0aG9yaXplck5hbWVcIjoge30sXG4gICAgICAgICAgXCJhdXRob3JpemVyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2VydGlmaWNhdGVGcm9tQ3NyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jZXJ0aWZpY2F0ZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZVNpZ25pbmdSZXF1ZXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3RcIjoge30sXG4gICAgICAgICAgXCJzZXRBc0FjdGl2ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2V0QXNBY3RpdmVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge30sXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZVBlbVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUpvYlwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvam9icy97am9iSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIixcbiAgICAgICAgICBcInRhcmdldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9jdW1lbnRTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJkb2N1bWVudFwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwicHJlc2lnbmVkVXJsQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YXJnZXRTZWxlY3Rpb25cIjoge30sXG4gICAgICAgICAgXCJqb2JFeGVjdXRpb25zUm9sbG91dENvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9jdW1lbnRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JBcm5cIjoge30sXG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlS2V5c0FuZENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9rZXlzLWFuZC1jZXJ0aWZpY2F0ZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2V0QXNBY3RpdmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNldEFzQWN0aXZlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVQZW1cIjoge30sXG4gICAgICAgICAgXCJrZXlQYWlyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQdWJsaWNLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJpdmF0ZUtleVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU9UQVVwZGF0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvb3RhVXBkYXRlcy97b3RhVXBkYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwib3RhVXBkYXRlSWRcIixcbiAgICAgICAgICBcInRhcmdldHNcIixcbiAgICAgICAgICBcImZpbGVzXCIsXG4gICAgICAgICAgXCJyb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm90YVVwZGF0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3RhVXBkYXRlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhcmdldFNlbGVjdGlvblwiOiB7fSxcbiAgICAgICAgICBcImZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiYWRkaXRpb25hbFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm90YVVwZGF0ZUlkXCI6IHt9LFxuICAgICAgICAgIFwiYXdzSW90Sm9iSWRcIjoge30sXG4gICAgICAgICAgXCJvdGFVcGRhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJhd3NJb3RKb2JBcm5cIjoge30sXG4gICAgICAgICAgXCJvdGFVcGRhdGVTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3BvbGljaWVzL3twb2xpY3lOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIixcbiAgICAgICAgICBcInBvbGljeURvY3VtZW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5QXJuXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQb2xpY3lWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wb2xpY2llcy97cG9saWN5TmFtZX0vdmVyc2lvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIixcbiAgICAgICAgICBcInBvbGljeURvY3VtZW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIjoge30sXG4gICAgICAgICAgXCJzZXRBc0RlZmF1bHRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNldEFzRGVmYXVsdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeUFyblwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeURvY3VtZW50XCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5VmVyc2lvbklkXCI6IHt9LFxuICAgICAgICAgIFwiaXNEZWZhdWx0VmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUm9sZUFsaWFzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yb2xlLWFsaWFzZXMve3JvbGVBbGlhc31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyb2xlQWxpYXNcIixcbiAgICAgICAgICBcInJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicm9sZUFsaWFzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm9sZUFsaWFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcImNyZWRlbnRpYWxEdXJhdGlvblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBbGlhc1wiOiB7fSxcbiAgICAgICAgICBcInJvbGVBbGlhc0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0cmVhbVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvc3RyZWFtcy97c3RyZWFtSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwic3RyZWFtSWRcIixcbiAgICAgICAgICBcImZpbGVzXCIsXG4gICAgICAgICAgXCJyb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN0cmVhbUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RyZWFtSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RyZWFtSWRcIjoge30sXG4gICAgICAgICAgXCJzdHJlYW1Bcm5cIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInN0cmVhbVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRoaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImF0dHJpYnV0ZVBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nQXJuXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRoaW5nR3JvdXBcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLWdyb3Vwcy97dGhpbmdHcm91cE5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ0dyb3VwTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmVudEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUaGluZ1R5cGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXR5cGVzL3t0aGluZ1R5cGVOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nVHlwZU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdUeXBlQXJuXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdUeXBlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUb3BpY1J1bGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3J1bGVzL3tydWxlTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJydWxlTmFtZVwiLFxuICAgICAgICAgIFwidG9waWNSdWxlUGF5bG9hZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydWxlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidG9waWNSdWxlUGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcInRvcGljUnVsZVBheWxvYWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hdXRob3JpemVyL3thdXRob3JpemVyTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dGhvcml6ZXJOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ0FDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2FjZXJ0aWZpY2F0ZS97Y2FDZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNhQ2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jZXJ0aWZpY2F0ZXMve2NlcnRpZmljYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvcmNlRGVsZXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmb3JjZURlbGV0ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUpvYlwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvam9icy97am9iSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmb3JjZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUpvYkV4ZWN1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9L2pvYnMve2pvYklkfS9leGVjdXRpb25OdW1iZXIve2V4ZWN1dGlvbk51bWJlcn1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiLFxuICAgICAgICAgIFwidGhpbmdOYW1lXCIsXG4gICAgICAgICAgXCJleGVjdXRpb25OdW1iZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4ZWN1dGlvbk51bWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4ZWN1dGlvbk51bWJlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmb3JjZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU9UQVVwZGF0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvb3RhVXBkYXRlcy97b3RhVXBkYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwib3RhVXBkYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib3RhVXBkYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvdGFVcGRhdGVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWNpZXMve3BvbGljeU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9saWN5TmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBvbGljeVZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3BvbGljaWVzL3twb2xpY3lOYW1lfS92ZXJzaW9uL3twb2xpY3lWZXJzaW9uSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwicG9saWN5VmVyc2lvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9saWN5VmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9saWN5VmVyc2lvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVnaXN0cmF0aW9uQ29kZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVnaXN0cmF0aW9uY29kZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUm9sZUFsaWFzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yb2xlLWFsaWFzZXMve3JvbGVBbGlhc31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyb2xlQWxpYXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicm9sZUFsaWFzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm9sZUFsaWFzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU3RyZWFtXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zdHJlYW1zL3tzdHJlYW1JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzdHJlYW1JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdHJlYW1JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0cmVhbUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGhpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ05hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleHBlY3RlZFZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4cGVjdGVkVmVyc2lvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRoaW5nR3JvdXBcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLWdyb3Vwcy97dGhpbmdHcm91cE5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ0dyb3VwTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4cGVjdGVkVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwZWN0ZWRWZXJzaW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGhpbmdUeXBlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy10eXBlcy97dGhpbmdUeXBlTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ1R5cGVOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVG9waWNSdWxlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ydWxlcy97cnVsZU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicnVsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicnVsZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVYyTG9nZ2luZ0xldmVsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92MkxvZ2dpbmdMZXZlbFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhcmdldFR5cGVcIixcbiAgICAgICAgICBcInRhcmdldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFyZ2V0VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0VHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhcmdldE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldE5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXByZWNhdGVUaGluZ1R5cGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXR5cGVzL3t0aGluZ1R5cGVOYW1lfS9kZXByZWNhdGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ1R5cGVOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidW5kb0RlcHJlY2F0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hdXRob3JpemVyL3thdXRob3JpemVyTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dGhvcml6ZXJOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXV0aG9yaXplckRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNm9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNBQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NhY2VydGlmaWNhdGUve2NhQ2VydGlmaWNhdGVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjYUNlcnRpZmljYXRlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJjZXJ0aWZpY2F0ZVBlbVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJvd25lZEJ5XCI6IHt9LFxuICAgICAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhdXRvUmVnaXN0cmF0aW9uU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY3VzdG9tZXJWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJnZW5lcmF0aW9uSWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVnaXN0cmF0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jZXJ0aWZpY2F0ZXMve2NlcnRpZmljYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiY2FDZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJjZXJ0aWZpY2F0ZVBlbVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJvd25lZEJ5XCI6IHt9LFxuICAgICAgICAgICAgICBcInByZXZpb3VzT3duZWRCeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjdXN0b21lclZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInRyYW5zZmVyRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHJhbnNmZXJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJyZWplY3RSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgICBcInRyYW5zZmVyRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJhY2NlcHREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcInJlamVjdERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJnZW5lcmF0aW9uSWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEZWZhdWx0QXV0aG9yaXplclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZGVmYXVsdC1hdXRob3JpemVyXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2b1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW5kcG9pbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2VuZHBvaW50XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJlbmRwb2ludFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuZHBvaW50VHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImVuZHBvaW50QWRkcmVzc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZXZlbnQtY29uZmlndXJhdGlvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImV2ZW50Q29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5kZXhcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2luZGljZXMve2luZGV4TmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpbmRleE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5kZXhOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5kZXhOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaW5kZXhTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJzY2hlbWFcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUpvYlwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvam9icy97am9iSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvY3VtZW50U291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiam9iXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJqb2JBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiam9iSWRcIjoge30sXG4gICAgICAgICAgICAgIFwidGFyZ2V0U2VsZWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJmb3JjZUNhbmNlbGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjb21tZW50XCI6IHt9LFxuICAgICAgICAgICAgICBcInRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwicHJlc2lnbmVkVXJsQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJqb2JFeGVjdXRpb25zUm9sbG91dENvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY29tcGxldGVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiam9iUHJvY2Vzc0RldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInByb2Nlc3NpbmdUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwibnVtYmVyT2ZDYW5jZWxlZFRoaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwibnVtYmVyT2ZTdWNjZWVkZWRUaGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIm51bWJlck9mRmFpbGVkVGhpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJudW1iZXJPZlJlamVjdGVkVGhpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJudW1iZXJPZlF1ZXVlZFRoaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwibnVtYmVyT2ZJblByb2dyZXNzVGhpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJudW1iZXJPZlJlbW92ZWRUaGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZG9jdW1lbnRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUpvYkV4ZWN1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9L2pvYnMve2pvYklkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCIsXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4ZWN1dGlvbk51bWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhlY3V0aW9uTnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXhlY3V0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiZm9yY2VDYW5jZWxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3RhdHVzRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiZGV0YWlsc01hcFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInRoaW5nQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcInF1ZXVlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImV4ZWN1dGlvbk51bWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidmVyc2lvbk51bWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSb2xlQWxpYXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3JvbGUtYWxpYXNlcy97cm9sZUFsaWFzfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJvbGVBbGlhc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyb2xlQWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb2xlQWxpYXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyb2xlQWxpYXNEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwicm9sZUFsaWFzXCI6IHt9LFxuICAgICAgICAgICAgICBcInJvbGVBbGlhc0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIm93bmVyXCI6IHt9LFxuICAgICAgICAgICAgICBcImNyZWRlbnRpYWxEdXJhdGlvblNlY29uZHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJsYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RyZWFtXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zdHJlYW1zL3tzdHJlYW1JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzdHJlYW1JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdHJlYW1JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0cmVhbUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RyZWFtSW5mb1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwic3RyZWFtSWRcIjoge30sXG4gICAgICAgICAgICAgIFwic3RyZWFtQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcInN0cmVhbVZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcImZpbGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGhpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ05hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZWZhdWx0Q2xpZW50SWRcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdBcm5cIjoge30sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUaGluZ0dyb3VwXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1ncm91cHMve3RoaW5nR3JvdXBOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdHcm91cE5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdHcm91cE1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJwYXJlbnRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwicm9vdFRvUGFyZW50VGhpbmdHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOG5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRoaW5nUmVnaXN0cmF0aW9uVGFza1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctcmVnaXN0cmF0aW9uLXRhc2tzL3t0YXNrSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFza0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhc2tJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tJZFwiOiB7fSxcbiAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcImlucHV0RmlsZUJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcImlucHV0RmlsZUtleVwiOiB7fSxcbiAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwic3VjY2Vzc0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBlcmNlbnRhZ2VQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUaGluZ1R5cGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXR5cGVzL3t0aGluZ1R5cGVOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nVHlwZU5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdUeXBlSWRcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVBcm5cIjoge30sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzkwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0YWNoUG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90YXJnZXQtcG9saWNpZXMve3BvbGljeU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwidGFyZ2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0YWNoUHJpbmNpcGFsUG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wcmluY2lwYWwtcG9saWNpZXMve3BvbGljeU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwicHJpbmNpcGFsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJpbmNpcGFsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXpuLWlvdC1wcmluY2lwYWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkRldGFjaFRoaW5nUHJpbmNpcGFsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX0vcHJpbmNpcGFsc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiLFxuICAgICAgICAgIFwicHJpbmNpcGFsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByaW5jaXBhbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16bi1wcmluY2lwYWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlVG9waWNSdWxlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ydWxlcy97cnVsZU5hbWV9L2Rpc2FibGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJydWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydWxlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlVG9waWNSdWxlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ydWxlcy97cnVsZU5hbWV9L2VuYWJsZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJ1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZU5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRFZmZlY3RpdmVQb2xpY2llc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZWZmZWN0aXZlLXBvbGljaWVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcmluY2lwYWxcIjoge30sXG4gICAgICAgICAgXCJjb2duaXRvSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImVmZmVjdGl2ZVBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicG9saWN5QXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbmRleGluZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2luZGV4aW5nL2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdJbmRleGluZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5Z1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEpvYkRvY3VtZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9qb2JzL3tqb2JJZH0vam9iLWRvY3VtZW50XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJqb2JJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvY3VtZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2xvZ2dpbmdPcHRpb25zXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwibG9nTGV2ZWxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRPVEFVcGRhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL290YVVwZGF0ZXMve290YVVwZGF0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm90YVVwZGF0ZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm90YVVwZGF0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3RhVXBkYXRlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvdGFVcGRhdGVJbmZvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJvdGFVcGRhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJvdGFVcGRhdGVBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwidGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidGFyZ2V0U2VsZWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIm90YVVwZGF0ZUZpbGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJvdGFVcGRhdGVTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiYXdzSW90Sm9iSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiYXdzSW90Sm9iQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcImVycm9ySW5mb1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiY29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wb2xpY2llcy97cG9saWN5TmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeUFyblwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeURvY3VtZW50XCI6IHt9LFxuICAgICAgICAgIFwiZGVmYXVsdFZlcnNpb25JZFwiOiB7fSxcbiAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdlbmVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBvbGljeVZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3BvbGljaWVzL3twb2xpY3lOYW1lfS92ZXJzaW9uL3twb2xpY3lWZXJzaW9uSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwicG9saWN5VmVyc2lvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9saWN5VmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9saWN5VmVyc2lvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5QXJuXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeURvY3VtZW50XCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5VmVyc2lvbklkXCI6IHt9LFxuICAgICAgICAgIFwiaXNEZWZhdWx0VmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2VuZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVnaXN0cmF0aW9uQ29kZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVnaXN0cmF0aW9uY29kZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cmF0aW9uQ29kZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRvcGljUnVsZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcnVsZXMve3J1bGVOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJ1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZU5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydWxlQXJuXCI6IHt9LFxuICAgICAgICAgIFwicnVsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwicnVsZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwic3FsXCI6IHt9LFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhY3Rpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ3XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJydWxlRGlzYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImF3c0lvdFNxbFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiZXJyb3JBY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDhcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFYyTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3YyTG9nZ2luZ09wdGlvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJkZWZhdWx0TG9nTGV2ZWxcIjoge30sXG4gICAgICAgICAgXCJkaXNhYmxlQWxsTG9nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEF0dGFjaGVkUG9saWNpZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2F0dGFjaGVkLXBvbGljaWVzL3t0YXJnZXR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFyZ2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhcmdldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlY3Vyc2l2ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVjdXJzaXZlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBdXRob3JpemVyc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXV0aG9yaXplcnMvXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFzY2VuZGluZ09yZGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc0FzY2VuZGluZ09yZGVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXV0aG9yaXplck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhdXRob3JpemVyQXJuXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDQUNlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2FjZXJ0aWZpY2F0ZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXNjZW5kaW5nT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzQXNjZW5kaW5nT3JkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2VydGlmaWNhdGVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFzY2VuZGluZ09yZGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc0FzY2VuZGluZ09yZGVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENlcnRpZmljYXRlc0J5Q0FcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NlcnRpZmljYXRlcy1ieS1jYS97Y2FDZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNhQ2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjYUNlcnRpZmljYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjYUNlcnRpZmljYXRlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFzY2VuZGluZ09yZGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc0FzY2VuZGluZ09yZGVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEluZGljZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2luZGljZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluZGV4TmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEpvYkV4ZWN1dGlvbnNGb3JKb2JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2pvYnMve2pvYklkfS90aGluZ3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJleGVjdXRpb25TdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInRoaW5nQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiam9iRXhlY3V0aW9uU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2I0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEpvYkV4ZWN1dGlvbnNGb3JUaGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9L2pvYnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJleGVjdXRpb25TdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiam9iRXhlY3V0aW9uU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2I0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEpvYnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2pvYnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0U2VsZWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRTZWxlY3Rpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdHcm91cE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nR3JvdXBJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImpvYkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGhpbmdHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0U2VsZWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY29tcGxldGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdE9UQVVwZGF0ZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL290YVVwZGF0ZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm90YVVwZGF0ZVN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3RhVXBkYXRlU3RhdHVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib3RhVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwib3RhVXBkYXRlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJvdGFVcGRhdGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdE91dGdvaW5nQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jZXJ0aWZpY2F0ZXMtb3V0LWdvaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFzY2VuZGluZ09yZGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc0FzY2VuZGluZ09yZGVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib3V0Z29pbmdDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRyYW5zZmVycmVkVG9cIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0cmFuc2ZlckRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidHJhbnNmZXJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UG9saWNpZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3BvbGljaWVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFzY2VuZGluZ09yZGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc0FzY2VuZGluZ09yZGVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UG9saWN5UHJpbmNpcGFsc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWN5LXByaW5jaXBhbHNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtem4taW90LXBvbGljeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhZ2VTaXplXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXNjZW5kaW5nT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzQXNjZW5kaW5nT3JkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcmluY2lwYWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYnFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0UG9saWN5VmVyc2lvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3BvbGljaWVzL3twb2xpY3lOYW1lfS92ZXJzaW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9saWN5TmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ2ZXJzaW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJpc0RlZmF1bHRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQcmluY2lwYWxQb2xpY2llc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcHJpbmNpcGFsLXBvbGljaWVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJpbmNpcGFsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByaW5jaXBhbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16bi1pb3QtcHJpbmNpcGFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhc2NlbmRpbmdPcmRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXNBc2NlbmRpbmdPcmRlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0UHJpbmNpcGFsVGhpbmdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wcmluY2lwYWxzL3RoaW5nc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByaW5jaXBhbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmluY2lwYWxcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtem4tcHJpbmNpcGFsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYzFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Um9sZUFsaWFzZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3JvbGUtYWxpYXNlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhZ2VTaXplXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhc2NlbmRpbmdPcmRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXNBc2NlbmRpbmdPcmRlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBbGlhc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RyZWFtc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvc3RyZWFtc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXNjZW5kaW5nT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzQXNjZW5kaW5nT3JkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdHJlYW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzdHJlYW1JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN0cmVhbUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN0cmVhbVZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhcmdldHNGb3JQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3BvbGljeS10YXJnZXRzL3twb2xpY3lOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUaGluZ0dyb3Vwc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctZ3JvdXBzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJlbnRHcm91cFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFyZW50R3JvdXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lUHJlZml4RmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lUHJlZml4RmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVjdXJzaXZlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWN1cnNpdmVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRoaW5nR3JvdXBzRm9yVGhpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfS90aGluZy1ncm91cHNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4blwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUaGluZ1ByaW5jaXBhbHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfS9wcmluY2lwYWxzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByaW5jaXBhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNicVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUaGluZ1JlZ2lzdHJhdGlvblRhc2tSZXBvcnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1yZWdpc3RyYXRpb24tdGFza3Mve3Rhc2tJZH0vcmVwb3J0c1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhc2tJZFwiLFxuICAgICAgICAgIFwicmVwb3J0VHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXNrSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXBvcnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXBvcnRUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VMaW5rc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXBvcnRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRoaW5nUmVnaXN0cmF0aW9uVGFza3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXJlZ2lzdHJhdGlvbi10YXNrc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUaGluZ1R5cGVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy10eXBlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdUeXBlTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0aGluZ1R5cGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0aGluZ1R5cGVQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3dcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0aGluZ1R5cGVNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzkwXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRoaW5nc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRyaWJ1dGVOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXR0cmlidXRlVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZVZhbHVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdUeXBlTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRoaW5nQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRoaW5nc0luVGhpbmdHcm91cFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctZ3JvdXBzL3t0aGluZ0dyb3VwTmFtZX0vdGhpbmdzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ0dyb3VwTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlY3Vyc2l2ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVjdXJzaXZlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYzFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VG9waWNSdWxlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcnVsZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRvcGljXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b3BpY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJ1bGVEaXNhYmxlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZURpc2FibGVkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicnVsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJ1bGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJydWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRvcGljUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJydWxlRGlzYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RWMkxvZ2dpbmdMZXZlbHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3YyTG9nZ2luZ0xldmVsXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXJnZXRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nVGFyZ2V0Q29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvZ1RhcmdldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RjXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibG9nTGV2ZWxcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckNBQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NhY2VydGlmaWNhdGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjYUNlcnRpZmljYXRlXCIsXG4gICAgICAgICAgXCJ2ZXJpZmljYXRpb25DZXJ0aWZpY2F0ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjYUNlcnRpZmljYXRlXCI6IHt9LFxuICAgICAgICAgIFwidmVyaWZpY2F0aW9uQ2VydGlmaWNhdGVcIjoge30sXG4gICAgICAgICAgXCJzZXRBc0FjdGl2ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2V0QXNBY3RpdmVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhbGxvd0F1dG9SZWdpc3RyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG93QXV0b1JlZ2lzdHJhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlZ2lzdHJhdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2VydGlmaWNhdGUvcmVnaXN0ZXJcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZVBlbVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZVBlbVwiOiB7fSxcbiAgICAgICAgICBcImNhQ2VydGlmaWNhdGVQZW1cIjoge30sXG4gICAgICAgICAgXCJzZXRBc0FjdGl2ZVwiOiB7XG4gICAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXRBc0FjdGl2ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyVGhpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRlbXBsYXRlQm9keVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0ZW1wbGF0ZUJvZHlcIjoge30sXG4gICAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlUGVtXCI6IHt9LFxuICAgICAgICAgIFwicmVzb3VyY2VBcm5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlamVjdENlcnRpZmljYXRlVHJhbnNmZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVqZWN0LWNlcnRpZmljYXRlLXRyYW5zZmVyL3tjZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWplY3RSZWFzb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUaGluZ0Zyb21UaGluZ0dyb3VwXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1ncm91cHMvcmVtb3ZlVGhpbmdGcm9tVGhpbmdHcm91cFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXBsYWNlVG9waWNSdWxlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3J1bGVzL3tydWxlTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJydWxlTmFtZVwiLFxuICAgICAgICAgIFwidG9waWNSdWxlUGF5bG9hZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydWxlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidG9waWNSdWxlUGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcInRvcGljUnVsZVBheWxvYWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWFyY2hJbmRleFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW5kaWNlcy9zZWFyY2hcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJxdWVyeVN0cmluZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgXCJxdWVyeVN0cmluZ1wiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInF1ZXJ5VmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGhpbmdJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2hhZG93XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0RGVmYXVsdEF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RlZmF1bHQtYXV0aG9yaXplclwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXV0aG9yaXplck5hbWVcIjoge30sXG4gICAgICAgICAgXCJhdXRob3JpemVyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0RGVmYXVsdFBvbGljeVZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWNpZXMve3BvbGljeU5hbWV9L3ZlcnNpb24ve3BvbGljeVZlcnNpb25JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lWZXJzaW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvbG9nZ2luZ09wdGlvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dnaW5nT3B0aW9uc1BheWxvYWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nZ2luZ09wdGlvbnNQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwicm9sZUFyblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcImxvZ0xldmVsXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJsb2dnaW5nT3B0aW9uc1BheWxvYWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRWMkxvZ2dpbmdMZXZlbFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdjJMb2dnaW5nTGV2ZWxcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dUYXJnZXRcIixcbiAgICAgICAgICBcImxvZ0xldmVsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ1RhcmdldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9nTGV2ZWxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRWMkxvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92MkxvZ2dpbmdPcHRpb25zXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiZGVmYXVsdExvZ0xldmVsXCI6IHt9LFxuICAgICAgICAgIFwiZGlzYWJsZUFsbExvZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0VGhpbmdSZWdpc3RyYXRpb25UYXNrXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1yZWdpc3RyYXRpb24tdGFza3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0ZW1wbGF0ZUJvZHlcIixcbiAgICAgICAgICBcImlucHV0RmlsZUJ1Y2tldFwiLFxuICAgICAgICAgIFwiaW5wdXRGaWxlS2V5XCIsXG4gICAgICAgICAgXCJyb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcImlucHV0RmlsZUJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcImlucHV0RmlsZUtleVwiOiB7fSxcbiAgICAgICAgICBcInJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wVGhpbmdSZWdpc3RyYXRpb25UYXNrXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1yZWdpc3RyYXRpb24tdGFza3Mve3Rhc2tJZH0vY2FuY2VsXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFza0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhc2tJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlc3RBdXRob3JpemF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90ZXN0LWF1dGhvcml6YXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhdXRoSW5mb3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJpbmNpcGFsXCI6IHt9LFxuICAgICAgICAgIFwiY29nbml0b0lkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiYXV0aEluZm9zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlZlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvbGljeU5hbWVzVG9BZGRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvbGljeU5hbWVzVG9Ta2lwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZWpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRoUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXV0aEluZm9cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlZlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImFsbG93ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJkZW5pZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImltcGxpY2l0RGVueVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicG9saWNpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwbGljaXREZW55XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwb2xpY2llc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhdXRoRGVjaXNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJtaXNzaW5nQ29udGV4dFZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXN0SW52b2tlQXV0aG9yaXplclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXV0aG9yaXplci97YXV0aG9yaXplck5hbWV9L3Rlc3RcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiLFxuICAgICAgICAgIFwidG9rZW5cIixcbiAgICAgICAgICBcInRva2VuU2lnbmF0dXJlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0aG9yaXplck5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0b2tlblwiOiB7fSxcbiAgICAgICAgICBcInRva2VuU2lnbmF0dXJlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaXNBdXRoZW50aWNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmluY2lwYWxJZFwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeURvY3VtZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWZyZXNoQWZ0ZXJJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRpc2Nvbm5lY3RBZnRlckluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVHJhbnNmZXJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90cmFuc2Zlci1jZXJ0aWZpY2F0ZS97Y2VydGlmaWNhdGVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCIsXG4gICAgICAgICAgXCJ0YXJnZXRBd3NBY2NvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0QXdzQWNjb3VudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0QXdzQWNjb3VudFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRyYW5zZmVyTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRyYW5zZmVycmVkQ2VydGlmaWNhdGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hdXRob3JpemVyL3thdXRob3JpemVyTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dGhvcml6ZXJOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXV0aG9yaXplckZ1bmN0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwidG9rZW5LZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidG9rZW5TaWduaW5nUHVibGljS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXV0aG9yaXplck5hbWVcIjoge30sXG4gICAgICAgICAgXCJhdXRob3JpemVyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ0FDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2FjZXJ0aWZpY2F0ZS97Y2FDZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNhQ2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5ld1N0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV3U3RhdHVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV3QXV0b1JlZ2lzdHJhdGlvblN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV3QXV0b1JlZ2lzdHJhdGlvblN0YXR1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlZ2lzdHJhdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVtb3ZlQXV0b1JlZ2lzdHJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NlcnRpZmljYXRlcy97Y2VydGlmaWNhdGVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCIsXG4gICAgICAgICAgXCJuZXdTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXdTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ld1N0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUV2ZW50Q29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZXZlbnQtY29uZmlndXJhdGlvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImV2ZW50Q29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUluZGV4aW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW5kZXhpbmcvY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0luZGV4aW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUm9sZUFsaWFzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yb2xlLWFsaWFzZXMve3JvbGVBbGlhc31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyb2xlQWxpYXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicm9sZUFsaWFzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm9sZUFsaWFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcImNyZWRlbnRpYWxEdXJhdGlvblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBbGlhc1wiOiB7fSxcbiAgICAgICAgICBcInJvbGVBbGlhc0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVN0cmVhbVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvc3RyZWFtcy97c3RyZWFtSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwic3RyZWFtSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RyZWFtSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdHJlYW1JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiZmlsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdHJlYW1JZFwiOiB7fSxcbiAgICAgICAgICBcInN0cmVhbUFyblwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwic3RyZWFtVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVGhpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleHBlY3RlZFZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlbW92ZVRoaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVGhpbmdHcm91cFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1ncm91cHMve3RoaW5nR3JvdXBOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwUHJvcGVydGllc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdHcm91cFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4cGVjdGVkVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVGhpbmdHcm91cHNGb3JUaGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctZ3JvdXBzL3VwZGF0ZVRoaW5nR3JvdXBzRm9yVGhpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBzVG9BZGRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBzVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICBcImV4cGlyZXNJblNlY1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJtYXhpbXVtUGVyTWludXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzIwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMyMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZmlsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJmaWxlVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImZpbGVTb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvZGVTaWduaW5nXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJhd3NTaWduZXJKb2JJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJjdXN0b21Db2RlU2lnbmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2lnbmF0dXJlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzdHJlYW1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNlwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcImlubGluZURvY3VtZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiY2VydGlmaWNhdGVDaGFpblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic3RyZWFtXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjZcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJjZXJ0aWZpY2F0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJpbmxpbmVEb2N1bWVudFwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJoYXNoQWxnb3JpdGhtXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJzaWduYXR1cmVBbGdvcml0aG1cIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInN0cmVhbUlkXCI6IHt9LFxuICAgICAgICBcImZpbGVJZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZmlsZUlkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzM0xvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiYnVja2V0XCIsXG4gICAgICAgICAgICAgIFwia2V5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1lcmdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0aGluZ0dyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiYXR0cmlidXRlUGF5bG9hZFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzalwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0aGluZ1R5cGVEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJzZWFyY2hhYmxlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwic3FsXCIsXG4gICAgICAgIFwiYWN0aW9uc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJzcWxcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiYWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0N1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicnVsZURpc2FibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhd3NJb3RTcWxWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcImVycm9yQWN0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ4XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzQ4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkeW5hbW9EQlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInRhYmxlTmFtZVwiLFxuICAgICAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgICAgICBcImhhc2hLZXlGaWVsZFwiLFxuICAgICAgICAgICAgXCJoYXNoS2V5VmFsdWVcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwidGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJvcGVyYXRpb25cIjoge30sXG4gICAgICAgICAgICBcImhhc2hLZXlGaWVsZFwiOiB7fSxcbiAgICAgICAgICAgIFwiaGFzaEtleVZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgXCJoYXNoS2V5VHlwZVwiOiB7fSxcbiAgICAgICAgICAgIFwicmFuZ2VLZXlGaWVsZFwiOiB7fSxcbiAgICAgICAgICAgIFwicmFuZ2VLZXlWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgIFwicmFuZ2VLZXlUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJwYXlsb2FkRmllbGRcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZHluYW1vREJ2MlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwicHV0SXRlbVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcInRhYmxlTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0YWJsZU5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJsYW1iZGFcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJmdW5jdGlvbkFyblwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJmdW5jdGlvbkFyblwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJ0YXJnZXRBcm5cIixcbiAgICAgICAgICAgIFwicm9sZUFyblwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJ0YXJnZXRBcm5cIjoge30sXG4gICAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICBcIm1lc3NhZ2VGb3JtYXRcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwic3FzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwicm9sZUFyblwiLFxuICAgICAgICAgICAgXCJxdWV1ZVVybFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJxdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICAgIFwidXNlQmFzZTY0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmVzaXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgICAgICBcInN0cmVhbU5hbWVcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwic3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwicGFydGl0aW9uS2V5XCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInJlcHVibGlzaFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInJvbGVBcm5cIixcbiAgICAgICAgICAgIFwidG9waWNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwidG9waWNcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiczNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgICAgICBcImJ1Y2tldE5hbWVcIixcbiAgICAgICAgICAgIFwia2V5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICBcImJ1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwiY2FubmVkQWNsXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImZpcmVob3NlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwicm9sZUFyblwiLFxuICAgICAgICAgICAgXCJkZWxpdmVyeVN0cmVhbU5hbWVcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwiZGVsaXZlcnlTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJzZXBhcmF0b3JcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY2xvdWR3YXRjaE1ldHJpY1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInJvbGVBcm5cIixcbiAgICAgICAgICAgIFwibWV0cmljTmFtZXNwYWNlXCIsXG4gICAgICAgICAgICBcIm1ldHJpY05hbWVcIixcbiAgICAgICAgICAgIFwibWV0cmljVmFsdWVcIixcbiAgICAgICAgICAgIFwibWV0cmljVW5pdFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJtZXRyaWNOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgICBcIm1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgICBcIm1ldHJpY1ZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgXCJtZXRyaWNVbml0XCI6IHt9LFxuICAgICAgICAgICAgXCJtZXRyaWNUaW1lc3RhbXBcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY2xvdWR3YXRjaEFsYXJtXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwicm9sZUFyblwiLFxuICAgICAgICAgICAgXCJhbGFybU5hbWVcIixcbiAgICAgICAgICAgIFwic3RhdGVSZWFzb25cIixcbiAgICAgICAgICAgIFwic3RhdGVWYWx1ZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJhbGFybU5hbWVcIjoge30sXG4gICAgICAgICAgICBcInN0YXRlUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgXCJzdGF0ZVZhbHVlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImVsYXN0aWNzZWFyY2hcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgICAgICBcImVuZHBvaW50XCIsXG4gICAgICAgICAgICBcImluZGV4XCIsXG4gICAgICAgICAgICBcInR5cGVcIixcbiAgICAgICAgICAgIFwiaWRcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwiZW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgICBcImluZGV4XCI6IHt9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJpZFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzYWxlc2ZvcmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwidG9rZW5cIixcbiAgICAgICAgICAgIFwidXJsXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInRva2VuXCI6IHt9LFxuICAgICAgICAgICAgXCJ1cmxcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiaW90QW5hbHl0aWNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJjaGFubmVsQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJjaGFubmVsTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNm9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCI6IHt9LFxuICAgICAgICBcImF1dGhvcml6ZXJBcm5cIjoge30sXG4gICAgICAgIFwiYXV0aG9yaXplckZ1bmN0aW9uQXJuXCI6IHt9LFxuICAgICAgICBcInRva2VuS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgXCJ0b2tlblNpZ25pbmdQdWJsaWNLZXlzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0ZW1wbGF0ZUJvZHlcIjoge30sXG4gICAgICAgIFwicm9sZUFyblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4blwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZ3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZ3JvdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImRlcHJlY2F0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImRlcHJlY2F0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0aGluZ0luZGV4aW5nTW9kZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYXFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJxdWV1ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGFydGVkQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGVjdXRpb25OdW1iZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNicVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTYzFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2RjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidGFyZ2V0VHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0YXJnZXRUeXBlXCI6IHt9LFxuICAgICAgICBcInRhcmdldE5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhY3Rpb25UeXBlXCI6IHt9LFxuICAgICAgICBcInJlc291cmNlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNmblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwidWlkXCI6IFwiaW90LWRhdGEtMjAxNS0wNS0yOFwiLFxuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMDUtMjhcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZGF0YS5pb3RcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgSW9UIERhdGEgUGxhbmVcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwic2lnbmluZ05hbWVcIjogXCJpb3RkYXRhXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkRlbGV0ZVRoaW5nU2hhZG93XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX0vc2hhZG93XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwYXlsb2FkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJwYXlsb2FkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VGhpbmdTaGFkb3dcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfS9zaGFkb3dcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcInBheWxvYWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdWJsaXNoXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90b3BpY3Mve3RvcGljfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRvcGljXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRvcGljXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG9waWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJxb3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInFvc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJwYXlsb2FkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVGhpbmdTaGFkb3dcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfS9zaGFkb3dcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIixcbiAgICAgICAgICBcInBheWxvYWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcInBheWxvYWRcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwicGF5bG9hZFwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7fVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTMtMTItMDJcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwia2luZXNpc1wiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIktpbmVzaXNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBLaW5lc2lzXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJLaW5lc2lzXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIktpbmVzaXNfMjAxMzEyMDJcIixcbiAgICBcInVpZFwiOiBcImtpbmVzaXMtMjAxMy0xMi0wMlwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRUYWdzVG9TdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RyZWFtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJTaGFyZENvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTaGFyZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kSG91cnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJldGVudGlvblBlcmlvZEhvdXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGltaXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTaGFyZExpbWl0XCIsXG4gICAgICAgICAgXCJPcGVuU2hhcmRDb3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZExpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcGVuU2hhcmRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydFNoYXJkSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgICAgIFwiU3RyZWFtQVJOXCIsXG4gICAgICAgICAgICAgIFwiU3RyZWFtU3RhdHVzXCIsXG4gICAgICAgICAgICAgIFwiU2hhcmRzXCIsXG4gICAgICAgICAgICAgIFwiSGFzTW9yZVNoYXJkc1wiLFxuICAgICAgICAgICAgICBcIlJldGVudGlvblBlcmlvZEhvdXJzXCIsXG4gICAgICAgICAgICAgIFwiU3RyZWFtQ3JlYXRpb25UaW1lc3RhbXBcIixcbiAgICAgICAgICAgICAgXCJFbmhhbmNlZE1vbml0b3JpbmdcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdHJlYW1BUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiU3RyZWFtU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNoYXJkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJIYXNNb3JlU2hhcmRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RIb3Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RyZWFtQ3JlYXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5oYW5jZWRNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RyZWFtU3VtbWFyeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbURlc2NyaXB0aW9uU3VtbWFyeVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1EZXNjcmlwdGlvblN1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgICAgIFwiU3RyZWFtQVJOXCIsXG4gICAgICAgICAgICAgIFwiU3RyZWFtU3RhdHVzXCIsXG4gICAgICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kSG91cnNcIixcbiAgICAgICAgICAgICAgXCJTdHJlYW1DcmVhdGlvblRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgICBcIkVuaGFuY2VkTW9uaXRvcmluZ1wiLFxuICAgICAgICAgICAgICBcIk9wZW5TaGFyZENvdW50XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RyZWFtQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0cmVhbVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RIb3Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RyZWFtQ3JlYXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5oYW5jZWRNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wZW5TaGFyZENvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJTaGFyZExldmVsTWV0cmljc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2hhcmRMZXZlbE1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlNoYXJkTGV2ZWxNZXRyaWNzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTaGFyZExldmVsTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlY29yZHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNoYXJkSXRlcmF0b3JcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2hhcmRJdGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVjb3Jkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJcIixcbiAgICAgICAgICAgICAgICBcIkRhdGFcIixcbiAgICAgICAgICAgICAgICBcIlBhcnRpdGlvbktleVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFwcHJveGltYXRlQXJyaXZhbFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQYXJ0aXRpb25LZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRTaGFyZEl0ZXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiTWlsbGlzQmVoaW5kTGF0ZXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTaGFyZEl0ZXJhdG9yXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJTaGFyZElkXCIsXG4gICAgICAgICAgXCJTaGFyZEl0ZXJhdG9yVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2hhcmRJZFwiOiB7fSxcbiAgICAgICAgICBcIlNoYXJkSXRlcmF0b3JUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRpbmdTZXF1ZW5jZU51bWJlclwiOiB7fSxcbiAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZEl0ZXJhdG9yXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlJldGVudGlvblBlcmlvZEhvdXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RIb3Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFNoYXJkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRTaGFyZElkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RyZWFtQ3JlYXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2hhcmRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydFN0cmVhbU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZXNcIixcbiAgICAgICAgICBcIkhhc01vcmVTdHJlYW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhhc01vcmVTdHJlYW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRUYWdLZXlcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ3NcIixcbiAgICAgICAgICBcIkhhc01vcmVUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIYXNNb3JlVGFnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTWVyZ2VTaGFyZHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlNoYXJkVG9NZXJnZVwiLFxuICAgICAgICAgIFwiQWRqYWNlbnRTaGFyZFRvTWVyZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNoYXJkVG9NZXJnZVwiOiB7fSxcbiAgICAgICAgICBcIkFkamFjZW50U2hhcmRUb01lcmdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UmVjb3JkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJEYXRhXCIsXG4gICAgICAgICAgXCJQYXJ0aXRpb25LZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcnRpdGlvbktleVwiOiB7fSxcbiAgICAgICAgICBcIkV4cGxpY2l0SGFzaEtleVwiOiB7fSxcbiAgICAgICAgICBcIlNlcXVlbmNlTnVtYmVyRm9yT3JkZXJpbmdcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2hhcmRJZFwiLFxuICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2hhcmRJZFwiOiB7fSxcbiAgICAgICAgICBcIlNlcXVlbmNlTnVtYmVyXCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvblR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRSZWNvcmRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWNvcmRzXCIsXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJEYXRhXCIsXG4gICAgICAgICAgICAgICAgXCJQYXJ0aXRpb25LZXlcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXhwbGljaXRIYXNoS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGFydGl0aW9uS2V5XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWNvcmRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZhaWxlZFJlY29yZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNoYXJkSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvck1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNyeXB0aW9uVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NGcm9tU3RyZWFtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNwbGl0U2hhcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlNoYXJkVG9TcGxpdFwiLFxuICAgICAgICAgIFwiTmV3U3RhcnRpbmdIYXNoS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTaGFyZFRvU3BsaXRcIjoge30sXG4gICAgICAgICAgXCJOZXdTdGFydGluZ0hhc2hLZXlcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydFN0cmVhbUVuY3J5cHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCIsXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BTdHJlYW1FbmNyeXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJFbmNyeXB0aW9uVHlwZVwiLFxuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTaGFyZENvdW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJUYXJnZXRTaGFyZENvdW50XCIsXG4gICAgICAgICAgXCJTY2FsaW5nVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0U2hhcmRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NhbGluZ1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ3VycmVudFNoYXJkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldFNoYXJkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNoYXJkSWRcIixcbiAgICAgICAgICBcIkhhc2hLZXlSYW5nZVwiLFxuICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJSYW5nZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZElkXCI6IHt9LFxuICAgICAgICAgIFwiUGFyZW50U2hhcmRJZFwiOiB7fSxcbiAgICAgICAgICBcIkFkamFjZW50UGFyZW50U2hhcmRJZFwiOiB7fSxcbiAgICAgICAgICBcIkhhc2hLZXlSYW5nZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlN0YXJ0aW5nSGFzaEtleVwiLFxuICAgICAgICAgICAgICBcIkVuZGluZ0hhc2hLZXlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhcnRpbmdIYXNoS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuZGluZ0hhc2hLZXlcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJSYW5nZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlN0YXJ0aW5nU2VxdWVuY2VOdW1iZXJcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhcnRpbmdTZXF1ZW5jZU51bWJlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFbmRpbmdTZXF1ZW5jZU51bWJlclwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2hhcmRMZXZlbE1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzEzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICBcIkN1cnJlbnRTaGFyZExldmVsTWV0cmljc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXNpcmVkU2hhcmRMZXZlbE1ldHJpY3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiRXhjbHVzaXZlU3RhcnRTaGFyZElkXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIlN0cmVhbURlc2NyaXB0aW9uLkhhc01vcmVTaGFyZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiU3RyZWFtRGVzY3JpcHRpb24uU2hhcmRzWy0xXS5TaGFyZElkXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdHJlYW1EZXNjcmlwdGlvbi5TaGFyZHNcIlxuICAgIH0sXG4gICAgXCJMaXN0U3RyZWFtc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiRXhjbHVzaXZlU3RhcnRTdHJlYW1OYW1lXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIkhhc01vcmVTdHJlYW1zXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIlN0cmVhbU5hbWVzWy0xXVwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3RyZWFtTmFtZXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJTdHJlYW1FeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiAxMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTdHJlYW1cIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTgsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQUNUSVZFXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0cmVhbURlc2NyaXB0aW9uLlN0cmVhbVN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiU3RyZWFtTm90RXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlU3RyZWFtXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDE4LFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0xMS0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJrbXNcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJLTVNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJLTVNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiVHJlbnRTZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJrbXMtMjAxNC0xMS0wMVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDYW5jZWxLZXlEZWxldGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFsaWFzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGlhc05hbWVcIixcbiAgICAgICAgICBcIlRhcmdldEtleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsaWFzTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEtleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlR3JhbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCIsXG4gICAgICAgICAgXCJHcmFudGVlUHJpbmNpcGFsXCIsXG4gICAgICAgICAgXCJPcGVyYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiR3JhbnRlZVByaW5jaXBhbFwiOiB7fSxcbiAgICAgICAgICBcIlJldGlyaW5nUHJpbmNpcGFsXCI6IHt9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFRva2Vuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JhbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkdyYW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVLZXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJLZXlVc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIk9yaWdpblwiOiB7fSxcbiAgICAgICAgICBcIkJ5cGFzc1BvbGljeUxvY2tvdXRTYWZldHlDaGVja1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWNyeXB0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaXBoZXJ0ZXh0QmxvYlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaXBoZXJ0ZXh0QmxvYlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvbkNvbnRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRUb2tlbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQbGFpbnRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFsaWFzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGlhc05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxpYXNOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSW1wb3J0ZWRLZXlNYXRlcmlhbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUtleVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJHcmFudFRva2Vuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlS2V5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVLZXlSb3RhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVLZXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlS2V5Um90YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5jcnlwdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIixcbiAgICAgICAgICBcIlBsYWludGV4dFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlBsYWludGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvbkNvbnRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRUb2tlbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2lwaGVydGV4dEJsb2JcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2VuZXJhdGVEYXRhS2V5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkVuY3J5cHRpb25Db250ZXh0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk51bWJlck9mQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVNwZWNcIjoge30sXG4gICAgICAgICAgXCJHcmFudFRva2Vuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaXBoZXJ0ZXh0QmxvYlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGxhaW50ZXh0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdlbmVyYXRlRGF0YUtleVdpdGhvdXRQbGFpbnRleHRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvbkNvbnRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5U3BlY1wiOiB7fSxcbiAgICAgICAgICBcIk51bWJlck9mQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50VG9rZW5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpcGhlcnRleHRCbG9iXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdlbmVyYXRlUmFuZG9tXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk51bWJlck9mQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYWludGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0S2V5UG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiLFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRLZXlSb3RhdGlvblN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlSb3RhdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBhcmFtZXRlcnNGb3JJbXBvcnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCIsXG4gICAgICAgICAgXCJXcmFwcGluZ0FsZ29yaXRobVwiLFxuICAgICAgICAgIFwiV3JhcHBpbmdLZXlTcGVjXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiV3JhcHBpbmdBbGdvcml0aG1cIjoge30sXG4gICAgICAgICAgXCJXcmFwcGluZ0tleVNwZWNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkltcG9ydFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNWYWxpZFRvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkltcG9ydEtleU1hdGVyaWFsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiLFxuICAgICAgICAgIFwiSW1wb3J0VG9rZW5cIixcbiAgICAgICAgICBcIkVuY3J5cHRlZEtleU1hdGVyaWFsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiSW1wb3J0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY3J5cHRlZEtleU1hdGVyaWFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZFRvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyYXRpb25Nb2RlbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBbGlhc2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBbGlhc05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBbGlhc0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldEtleUlkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEdyYW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0S2V5UG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RLZXlzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktleUFyblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZXNvdXJjZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJldGlyYWJsZUdyYW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmV0aXJpbmdQcmluY2lwYWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJldGlyaW5nUHJpbmNpcGFsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRLZXlQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCIsXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJQb2xpY3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiQnlwYXNzUG9saWN5TG9ja291dFNhZmV0eUNoZWNrXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZUVuY3J5cHRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNpcGhlcnRleHRCbG9iXCIsXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpcGhlcnRleHRCbG9iXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VFbmNyeXB0aW9uQ29udGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25FbmNyeXB0aW9uQ29udGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFRva2Vuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaXBoZXJ0ZXh0QmxvYlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldGlyZUdyYW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyYW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkdyYW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXZva2VHcmFudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIixcbiAgICAgICAgICBcIkdyYW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJHcmFudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2NoZWR1bGVLZXlEZWxldGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQZW5kaW5nV2luZG93SW5EYXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlbGV0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVudGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBbGlhc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxpYXNOYW1lXCIsXG4gICAgICAgICAgXCJUYXJnZXRLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc05hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUtleURlc2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5jcnlwdGlvbkNvbnRleHRTdWJzZXRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5jcnlwdGlvbkNvbnRleHRFcXVhbHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiU2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU3BcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdLZXlcIixcbiAgICAgICAgICBcIlRhZ1ZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0tleVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ1ZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJLZXlJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBV1NBY2NvdW50SWRcIjoge30sXG4gICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJLZXlVc2FnZVwiOiB7fSxcbiAgICAgICAgXCJLZXlTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJEZWxldGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmFsaWRUb1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcmlnaW5cIjoge30sXG4gICAgICAgIFwiRXhwaXJhdGlvbk1vZGVsXCI6IHt9LFxuICAgICAgICBcIktleU1hbmFnZXJcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImJsb2JcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzI1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJHcmFudHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiR3JhbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJHcmFudGVlUHJpbmNpcGFsXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJldGlyaW5nUHJpbmNpcGFsXCI6IHt9LFxuICAgICAgICAgICAgICBcIklzc3VpbmdBY2NvdW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29uc3RyYWludHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgXCJUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdEFsaWFzZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQWxpYXNlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RHcmFudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiR3JhbnRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEtleVBvbGljaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiVHJ1bmNhdGVkXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBvbGljeU5hbWVzXCJcbiAgICB9LFxuICAgIFwiTGlzdEtleXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiS2V5c1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTExLTExXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImxhbWJkYVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIExhbWJkYVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRFdmVudFNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNC0xMS0xMy9ldmVudC1zb3VyY2UtbWFwcGluZ3MvXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRXZlbnRTb3VyY2VcIixcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiUm9sZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgXCJCYXRjaFNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZ1bmN0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTExLTEzL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEV2ZW50U291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTExLTEzL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy97VVVJRH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVVSURcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVVVJRFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVVSURcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RnVuY3Rpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSZXBvc2l0b3J5VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJMb2NhdGlvblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW52b2tlQXN5bmNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2ludm9rZS1hc3luYy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiSW52b2tlQXJnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZva2VBcmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZva2VBcmdzXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJzdGF0dXNDb2RlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEV2ZW50U291cmNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNC0xMS0xMy9ldmVudC1zb3VyY2UtbWFwcGluZ3MvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U291cmNlQXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEZ1bmN0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNC0xMS0xMy9mdW5jdGlvbnMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkZ1bmN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZUV2ZW50U291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTExLTEzL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy97VVVJRH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVVSURcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVVVJRFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVVSURcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSb2xlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGFuZGxlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSGFuZGxlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRpbWVvdXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRpbWVvdXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZW1vcnlTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZW1vcnlTaXplXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwbG9hZEZ1bmN0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTExLTEzL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJGdW5jdGlvblppcFwiLFxuICAgICAgICAgIFwiUnVudGltZVwiLFxuICAgICAgICAgIFwiUm9sZVwiLFxuICAgICAgICAgIFwiSGFuZGxlclwiLFxuICAgICAgICAgIFwiTW9kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGdW5jdGlvblppcFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSdW50aW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSdW50aW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUm9sZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhhbmRsZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkhhbmRsZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZW91dFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGltZW91dFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1lbW9yeVNpemVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1lbW9yeVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRnVuY3Rpb25aaXBcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJVVUlEXCI6IHt9LFxuICAgICAgICBcIkJhdGNoU2l6ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXZlbnRTb3VyY2VcIjoge30sXG4gICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNBY3RpdmVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICBcIkZ1bmN0aW9uQVJOXCI6IHt9LFxuICAgICAgICBcIkNvbmZpZ3VyYXRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJSdW50aW1lXCI6IHt9LFxuICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgIFwiSGFuZGxlclwiOiB7fSxcbiAgICAgICAgXCJNb2RlXCI6IHt9LFxuICAgICAgICBcIkNvZGVTaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJUaW1lb3V0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNZW1vcnlTaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgXCJzdHJlYW1pbmdcIjogdHJ1ZVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RFdmVudFNvdXJjZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudFNvdXJjZXNcIlxuICAgIH0sXG4gICAgXCJMaXN0RnVuY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRnVuY3Rpb25zXCJcbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMDMtMzFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwibGFtYmRhXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIExhbWJkYVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiTGFtYmRhXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImxhbWJkYS0yMDE1LTAzLTMxXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFBlcm1pc3Npb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3BvbGljeVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJTdGF0ZW1lbnRJZFwiLFxuICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgXCJQcmluY2lwYWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdGVtZW50SWRcIjoge30sXG4gICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgXCJQcmluY2lwYWxcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VBY2NvdW50XCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTb3VyY2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlF1YWxpZmllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVhbGlmaWVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV2aXNpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXRlbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFsaWFzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIixcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkZ1bmN0aW9uVmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRnVuY3Rpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSb3V0aW5nQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFdmVudFNvdXJjZU1hcHBpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZXZlbnQtc291cmNlLW1hcHBpbmdzL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRXZlbnRTb3VyY2VBcm5cIixcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJhdGNoU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRpbmdQb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0aW5nUG9zaXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUZ1bmN0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJSdW50aW1lXCIsXG4gICAgICAgICAgXCJSb2xlXCIsXG4gICAgICAgICAgXCJIYW5kbGVyXCIsXG4gICAgICAgICAgXCJDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJ1bnRpbWVcIjoge30sXG4gICAgICAgICAgXCJSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiSGFuZGxlclwiOiB7fSxcbiAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlppcEZpbGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNCdWNrZXRcIjoge30sXG4gICAgICAgICAgICAgIFwiUzNLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiUzNPYmplY3RWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGltZW91dFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWVtb3J5U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGlzaFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWFkTGV0dGVyQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5QXJuXCI6IHt9LFxuICAgICAgICAgIFwiVHJhY2luZ0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBbGlhc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vYWxpYXNlcy97TmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUV2ZW50U291cmNlTWFwcGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9ldmVudC1zb3VyY2UtbWFwcGluZ3Mve1VVSUR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVVUlEXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVVSURcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVVUlEXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZ1bmN0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1YWxpZmllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVhbGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRnVuY3Rpb25Db25jdXJyZW5jeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uY3VycmVuY3lcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBY2NvdW50U2V0dGluZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMDgtMTkvYWNjb3VudC1zZXR0aW5ncy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjb3VudExpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJUb3RhbENvZGVTaXplXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb2RlU2l6ZVVuemlwcGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb2RlU2l6ZVppcHBlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29uY3VycmVudEV4ZWN1dGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlVucmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjb3VudFVzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJUb3RhbENvZGVTaXplXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJGdW5jdGlvbkNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBbGlhc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vYWxpYXNlcy97TmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRFdmVudFNvdXJjZU1hcHBpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZXZlbnQtc291cmNlLW1hcHBpbmdzL3tVVUlEfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVVVJRFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVVUlEXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVVVJRFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRGdW5jdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWFsaWZpZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlF1YWxpZmllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJlcG9zaXRvcnlUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkxvY2F0aW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbmN1cnJlbmN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWFsaWZpZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlF1YWxpZmllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9wb2xpY3lcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWFsaWZpZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlF1YWxpZmllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcIlJldmlzaW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbnZva2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2ludm9jYXRpb25zXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludm9jYXRpb25UeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiWC1BbXotSW52b2NhdGlvbi1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9nVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlgtQW16LUxvZy1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50Q29udGV4dFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlgtQW16LUNsaWVudC1Db250ZXh0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWFsaWZpZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlF1YWxpZmllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQYXlsb2FkXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzQ29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwic3RhdHVzQ29kZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZ1bmN0aW9uRXJyb3JcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJYLUFtei1GdW5jdGlvbi1FcnJvclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvZ1Jlc3VsdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlgtQW16LUxvZy1SZXN1bHRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4ZWN1dGVkVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlgtQW16LUV4ZWN1dGVkLVZlcnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUGF5bG9hZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkludm9rZUFzeW5jXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTExLTEzL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9pbnZva2UtYXN5bmMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIixcbiAgICAgICAgICBcIkludm9rZUFyZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52b2tlQXJnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCIsXG4gICAgICAgICAgICBcInN0cmVhbWluZ1wiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52b2tlQXJnc1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwic3RhdHVzQ29kZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RBbGlhc2VzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnVuY3Rpb25WZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvblZlcnNpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJBbGlhc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEV2ZW50U291cmNlTWFwcGluZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZXZlbnQtc291cmNlLW1hcHBpbmdzL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFNvdXJjZUFyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRTb3VyY2VBcm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50U291cmNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RnVuY3Rpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFzdGVyUmVnaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXN0ZXJSZWdpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGdW5jdGlvblZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uVmVyc2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkZ1bmN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMzEvdGFncy97QVJOfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQVJOXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFZlcnNpb25zQnlGdW5jdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdmVyc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVibGlzaFZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3ZlcnNpb25zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29kZVNoYTI1NlwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUmV2aXNpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0RnVuY3Rpb25Db25jdXJyZW5jeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uY3VycmVuY3lcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiUmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVBlcm1pc3Npb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3BvbGljeS97U3RhdGVtZW50SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlN0YXRlbWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXRlbWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RhdGVtZW50SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWFsaWZpZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlF1YWxpZmllclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldmlzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJldmlzaW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0zMS90YWdzL3tBUk59XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFSTlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVudGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMzEvdGFncy97QVJOfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBUk5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdLZXlzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBbGlhc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vYWxpYXNlcy97TmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZ1bmN0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUm91dGluZ0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXZpc2lvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUV2ZW50U291cmNlTWFwcGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9ldmVudC1zb3VyY2UtbWFwcGluZ3Mve1VVSUR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVVUlEXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVVSURcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVVUlEXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmF0Y2hTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRnVuY3Rpb25Db2RlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb2RlXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiWmlwRmlsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTM0J1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcIlMzS2V5XCI6IHt9LFxuICAgICAgICAgIFwiUzNPYmplY3RWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGlzaFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXZpc2lvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiSGFuZGxlclwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGltZW91dFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWVtb3J5U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUnVudGltZVwiOiB7fSxcbiAgICAgICAgICBcIkRlYWRMZXR0ZXJDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktNU0tleUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRyYWNpbmdDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldmlzaW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWRkaXRpb25hbFZlcnNpb25XZWlnaHRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBbGlhc0FyblwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkZ1bmN0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJSb3V0aW5nQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJldmlzaW9uSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlVVSURcIjoge30sXG4gICAgICAgIFwiQmF0Y2hTaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFdmVudFNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgXCJGdW5jdGlvbkFyblwiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdFByb2Nlc3NpbmdSZXN1bHRcIjoge30sXG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiU3RhdGVUcmFuc2l0aW9uUmVhc29uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImJsb2JcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzE0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzE5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYXJnZXRBcm5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJWYXJpYWJsZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgIH0sXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTW9kZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzFsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwiRnVuY3Rpb25Bcm5cIjoge30sXG4gICAgICAgIFwiUnVudGltZVwiOiB7fSxcbiAgICAgICAgXCJSb2xlXCI6IHt9LFxuICAgICAgICBcIkhhbmRsZXJcIjoge30sXG4gICAgICAgIFwiQ29kZVNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlRpbWVvdXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1lbW9yeVNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7fSxcbiAgICAgICAgXCJDb2RlU2hhMjU2XCI6IHt9LFxuICAgICAgICBcIlZlcnNpb25cIjoge30sXG4gICAgICAgIFwiVnBjQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE1XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlZwY0lkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkRlYWRMZXR0ZXJDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJWYXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVycm9yXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJLTVNLZXlBcm5cIjoge30sXG4gICAgICAgIFwiVHJhY2luZ0NvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTW9kZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXN0ZXJBcm5cIjoge30sXG4gICAgICAgIFwiUmV2aXNpb25JZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RFdmVudFNvdXJjZU1hcHBpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXZlbnRTb3VyY2VNYXBwaW5nc1wiXG4gICAgfSxcbiAgICBcIkxpc3RGdW5jdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJGdW5jdGlvbnNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTctMDQtMTlcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwibW9kZWxzLmxleFwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gTGV4IE1vZGVsIEJ1aWxkaW5nIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkxleCBNb2RlbCBCdWlsZGluZyBTZXJ2aWNlXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInNpZ25pbmdOYW1lXCI6IFwibGV4XCIsXG4gICAgXCJ1aWRcIjogXCJsZXgtbW9kZWxzLTIwMTctMDQtMTlcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQ3JlYXRlQm90VmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97bmFtZX0vdmVyc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImludGVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2xhcmlmaWNhdGlvblByb21wdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhYm9ydFN0YXRlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJmYWlsdXJlUmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImlkbGVTZXNzaW9uVFRMSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2b2ljZUlkXCI6IHt9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge30sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwibG9jYWxlXCI6IHt9LFxuICAgICAgICAgIFwiY2hpbGREaXJlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSW50ZW50VmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW50ZW50cy97bmFtZX0vdmVyc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInNsb3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNhbXBsZVV0dGVyYW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29uZmlybWF0aW9uUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlamVjdGlvblN0YXRlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmb2xsb3dVcFByb21wdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25jbHVzaW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRpYWxvZ0NvZGVIb29rXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmdWxmaWxsbWVudEFjdGl2aXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJlbnRJbnRlbnRTaWduYXR1cmVcIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU2xvdFR5cGVWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zbG90dHlwZXMve25hbWV9L3ZlcnNpb25zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJlbnVtZXJhdGlvblZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlU2VsZWN0aW9uU3RyYXRlZ3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCb3RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve25hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQm90QWxpYXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve2JvdE5hbWV9L2FsaWFzZXMve25hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJib3ROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJvdE5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCb3RDaGFubmVsQXNzb2NpYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve2JvdE5hbWV9L2FsaWFzZXMve2FsaWFzTmFtZX0vY2hhbm5lbHMve25hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJib3ROYW1lXCIsXG4gICAgICAgICAgXCJib3RBbGlhc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvdE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3ROYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90QWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGlhc05hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCb3RWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3RzL3tuYW1lfS92ZXJzaW9ucy97dmVyc2lvbn1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUludGVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW50ZW50cy97bmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJbnRlbnRWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pbnRlbnRzL3tuYW1lfS92ZXJzaW9ucy97dmVyc2lvbn1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNsb3RUeXBlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zbG90dHlwZXMve25hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU2xvdFR5cGVWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zbG90dHlwZXMve25hbWV9L3ZlcnNpb24ve3ZlcnNpb259XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJ2ZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVVdHRlcmFuY2VzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3RzL3tib3ROYW1lfS91dHRlcmFuY2VzL3t1c2VySWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJib3ROYW1lXCIsXG4gICAgICAgICAgXCJ1c2VySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYm90TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJvdE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VySWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCb3RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve25hbWV9L3ZlcnNpb25zL3t2ZXJzaW9ub3JhbGlhc31cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInZlcnNpb25PckFsaWFzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvbk9yQWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9ub3JhbGlhc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImludGVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2xhcmlmaWNhdGlvblByb21wdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhYm9ydFN0YXRlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJmYWlsdXJlUmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImlkbGVTZXNzaW9uVFRMSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2b2ljZUlkXCI6IHt9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge30sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwibG9jYWxlXCI6IHt9LFxuICAgICAgICAgIFwiY2hpbGREaXJlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Qm90QWxpYXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve2JvdE5hbWV9L2FsaWFzZXMve25hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJib3ROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJvdE5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJib3RWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiYm90TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJvdEFsaWFzZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve2JvdE5hbWV9L2FsaWFzZXMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJib3ROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJvdE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3ROYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZUNvbnRhaW5zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lQ29udGFpbnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCb3RBbGlhc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJib3RWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYm90TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjaGVja3N1bVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJvdENoYW5uZWxBc3NvY2lhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97Ym90TmFtZX0vYWxpYXNlcy97YWxpYXNOYW1lfS9jaGFubmVscy97bmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcImJvdE5hbWVcIixcbiAgICAgICAgICBcImJvdEFsaWFzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJvdE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib3RBbGlhc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsaWFzTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImJvdEFsaWFzXCI6IHt9LFxuICAgICAgICAgIFwiYm90TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJib3RDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJmYWlsdXJlUmVhc29uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Qm90Q2hhbm5lbEFzc29jaWF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97Ym90TmFtZX0vYWxpYXNlcy97YWxpYXNOYW1lfS9jaGFubmVscy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImJvdE5hbWVcIixcbiAgICAgICAgICBcImJvdEFsaWFzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJvdE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3ROYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90QWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGlhc05hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lQ29udGFpbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVDb250YWluc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJvdENoYW5uZWxBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImJvdEFsaWFzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYm90TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJib3RDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJmYWlsdXJlUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Qm90VmVyc2lvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve25hbWV9L3ZlcnNpb25zL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJvdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJvdHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVDb250YWluc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZUNvbnRhaW5zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYm90c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVpbHRpbkludGVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYnVpbHRpbnMvaW50ZW50cy97c2lnbmF0dXJlfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwic2lnbmF0dXJlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNpZ25hdHVyZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNpZ25hdHVyZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNpZ25hdHVyZVwiOiB7fSxcbiAgICAgICAgICBcInN1cHBvcnRlZExvY2FsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNsb3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVpbHRpbkludGVudHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2J1aWx0aW5zL2ludGVudHMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvY2FsZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibG9jYWxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2lnbmF0dXJlQ29udGFpbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNpZ25hdHVyZUNvbnRhaW5zXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2lnbmF0dXJlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3VwcG9ydGVkTG9jYWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJqXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVpbHRpblNsb3RUeXBlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYnVpbHRpbnMvc2xvdHR5cGVzL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2NhbGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxvY2FsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNpZ25hdHVyZUNvbnRhaW5zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzaWduYXR1cmVDb250YWluc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNsb3RUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2lnbmF0dXJlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3VwcG9ydGVkTG9jYWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJqXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RXhwb3J0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9leHBvcnRzL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwidmVyc2lvblwiLFxuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJleHBvcnRUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleHBvcnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBvcnRUeXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJleHBvcnRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiZXhwb3J0U3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiZmFpbHVyZVJlYXNvblwiOiB7fSxcbiAgICAgICAgICBcInVybFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEltcG9ydFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW1wb3J0cy97aW1wb3J0SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpbXBvcnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbXBvcnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIm1lcmdlU3RyYXRlZ3lcIjoge30sXG4gICAgICAgICAgXCJpbXBvcnRJZFwiOiB7fSxcbiAgICAgICAgICBcImltcG9ydFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImZhaWx1cmVSZWFzb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SW50ZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pbnRlbnRzL3tuYW1lfS92ZXJzaW9ucy97dmVyc2lvbn1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInNsb3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNhbXBsZVV0dGVyYW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29uZmlybWF0aW9uUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlamVjdGlvblN0YXRlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmb2xsb3dVcFByb21wdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25jbHVzaW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRpYWxvZ0NvZGVIb29rXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmdWxmaWxsbWVudEFjdGl2aXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJlbnRJbnRlbnRTaWduYXR1cmVcIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SW50ZW50VmVyc2lvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2ludGVudHMve25hbWV9L3ZlcnNpb25zL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImludGVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEludGVudHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2ludGVudHMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVDb250YWluc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZUNvbnRhaW5zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U2xvdFR5cGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nsb3R0eXBlcy97bmFtZX0vdmVyc2lvbnMve3ZlcnNpb259XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJ2ZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJlbnVtZXJhdGlvblZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlU2VsZWN0aW9uU3RyYXRlZ3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTbG90VHlwZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zbG90dHlwZXMve25hbWV9L3ZlcnNpb25zL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNsb3RUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U2xvdFR5cGVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zbG90dHlwZXMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVDb250YWluc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZUNvbnRhaW5zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2xvdFR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRVdHRlcmFuY2VzVmlld1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97Ym90bmFtZX0vdXR0ZXJhbmNlcz92aWV3PWFnZ3JlZ2F0aW9uXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJib3ROYW1lXCIsXG4gICAgICAgICAgXCJib3RWZXJzaW9uc1wiLFxuICAgICAgICAgIFwic3RhdHVzVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJib3ROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90bmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvdFZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3RfdmVyc2lvbnNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1R5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c190eXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYm90TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInV0dGVyYW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImJvdFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJ1dHRlcmFuY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ1dHRlcmFuY2VTdHJpbmdcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJjb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiZGlzdGluY3RVc2Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiZmlyc3RVdHRlcmVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJsYXN0VXR0ZXJlZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0Qm90XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3RzL3tuYW1lfS92ZXJzaW9ucy8kTEFURVNUXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJsb2NhbGVcIixcbiAgICAgICAgICBcImNoaWxkRGlyZWN0ZWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImludGVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2xhcmlmaWNhdGlvblByb21wdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhYm9ydFN0YXRlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpZGxlU2Vzc2lvblRUTEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidm9pY2VJZFwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9LFxuICAgICAgICAgIFwicHJvY2Vzc0JlaGF2aW9yXCI6IHt9LFxuICAgICAgICAgIFwibG9jYWxlXCI6IHt9LFxuICAgICAgICAgIFwiY2hpbGREaXJlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaW50ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGFyaWZpY2F0aW9uUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFib3J0U3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImZhaWx1cmVSZWFzb25cIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaWRsZVNlc3Npb25UVExJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZvaWNlSWRcIjoge30sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJsb2NhbGVcIjoge30sXG4gICAgICAgICAgXCJjaGlsZERpcmVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCb3RBbGlhc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97Ym90TmFtZX0vYWxpYXNlcy97bmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcImJvdFZlcnNpb25cIixcbiAgICAgICAgICBcImJvdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImJvdFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJib3ROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiYm90VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImJvdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRJbnRlbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2ludGVudHMve25hbWV9L3ZlcnNpb25zLyRMQVRFU1RcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInNsb3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNhbXBsZVV0dGVyYW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29uZmlybWF0aW9uUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlamVjdGlvblN0YXRlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmb2xsb3dVcFByb21wdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25jbHVzaW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRpYWxvZ0NvZGVIb29rXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmdWxmaWxsbWVudEFjdGl2aXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJlbnRJbnRlbnRTaWduYXR1cmVcIjoge30sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fSxcbiAgICAgICAgICBcImNyZWF0ZVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInNsb3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNhbXBsZVV0dGVyYW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29uZmlybWF0aW9uUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlamVjdGlvblN0YXRlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmb2xsb3dVcFByb21wdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25jbHVzaW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRpYWxvZ0NvZGVIb29rXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmdWxmaWxsbWVudEFjdGl2aXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJlbnRJbnRlbnRTaWduYXR1cmVcIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRlVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0U2xvdFR5cGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nsb3R0eXBlcy97bmFtZX0vdmVyc2lvbnMvJExBVEVTVFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiZW51bWVyYXRpb25WYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVTZWxlY3Rpb25TdHJhdGVneVwiOiB7fSxcbiAgICAgICAgICBcImNyZWF0ZVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImVudW1lcmF0aW9uVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVTZWxlY3Rpb25TdHJhdGVneVwiOiB7fSxcbiAgICAgICAgICBcImNyZWF0ZVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0SW1wb3J0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pbXBvcnRzL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGF5bG9hZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJtZXJnZVN0cmF0ZWd5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIm1lcmdlU3RyYXRlZ3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwibWVyZ2VTdHJhdGVneVwiOiB7fSxcbiAgICAgICAgICBcImltcG9ydElkXCI6IHt9LFxuICAgICAgICAgIFwiaW1wb3J0U3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW50ZW50TmFtZVwiLFxuICAgICAgICAgIFwiaW50ZW50VmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnRlbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaW50ZW50VmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibWVzc2FnZXNcIixcbiAgICAgICAgXCJtYXhBdHRlbXB0c1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJtZXNzYWdlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtYXhBdHRlbXB0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVzcG9uc2VDYXJkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29udGVudFR5cGVcIixcbiAgICAgICAgICBcImNvbnRlbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGVudFR5cGVcIjoge30sXG4gICAgICAgICAgXCJjb250ZW50XCI6IHt9LFxuICAgICAgICAgIFwiZ3JvdXBOdW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibWVzc2FnZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibWVzc2FnZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVzcG9uc2VDYXJkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwic2xvdENvbnN0cmFpbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwic2xvdENvbnN0cmFpbnRcIjoge30sXG4gICAgICAgICAgXCJzbG90VHlwZVwiOiB7fSxcbiAgICAgICAgICBcInNsb3RUeXBlVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlRWxpY2l0YXRpb25Qcm9tcHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNhbXBsZVV0dGVyYW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzcG9uc2VDYXJkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJwcm9tcHRcIixcbiAgICAgICAgXCJyZWplY3Rpb25TdGF0ZW1lbnRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicHJvbXB0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlamVjdGlvblN0YXRlbWVudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ1cmlcIixcbiAgICAgICAgXCJtZXNzYWdlVmVyc2lvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ1cmlcIjoge30sXG4gICAgICAgIFwibWVzc2FnZVZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcImNvZGVIb29rXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ2YWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fSxcbiAgICAgICAgICBcInN5bm9ueW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fSxcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzJkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTM2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiR2V0Qm90QWxpYXNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiR2V0Qm90Q2hhbm5lbEFzc29jaWF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiR2V0Qm90VmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkdldEJvdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkdldEJ1aWx0aW5JbnRlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJHZXRCdWlsdGluU2xvdFR5cGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJHZXRJbnRlbnRWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiR2V0SW50ZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiR2V0U2xvdFR5cGVWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiR2V0U2xvdFR5cGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0wMy0yOFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJsb2dzXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gQ2xvdWRXYXRjaCBMb2dzXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkxvZ3NfMjAxNDAzMjhcIixcbiAgICBcInVpZFwiOiBcImxvZ3MtMjAxNC0wMy0yOFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBc3NvY2lhdGVLbXNLZXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwia21zS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwia21zS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxFeHBvcnRUYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0YXNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRXhwb3J0VGFza1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJmcm9tXCIsXG4gICAgICAgICAgXCJ0b1wiLFxuICAgICAgICAgIFwiZGVzdGluYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza05hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiZnJvbVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidG9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc3RpbmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiZGVzdGluYXRpb25QcmVmaXhcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMb2dHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImttc0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMb2dTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwibG9nU3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGVzdGluYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRlc3RpbmF0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXN0aW5hdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVMb2dHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxvZ1N0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNZXRyaWNGaWx0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiZmlsdGVyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJmaWx0ZXJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVzb3VyY2VQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJldGVudGlvblBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN1YnNjcmlwdGlvbkZpbHRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJmaWx0ZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZpbHRlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURlc3RpbmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXN0aW5hdGlvbk5hbWVQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVzdGluYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFeHBvcnRUYXNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrSWRcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImV4cG9ydFRhc2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0YXNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0YXNrTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImZyb21cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInRvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJkZXN0aW5hdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImRlc3RpbmF0aW9uUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJjb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZXhlY3V0aW9uSW5mb1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiY3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJjb21wbGV0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2dHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZXRlbnRpb25JbkRheXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1ldHJpY0ZpbHRlckNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdG9yZWRCeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwia21zS2V5SWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvZ1N0cmVhbXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwib3JkZXJCeVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dTdHJlYW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2dTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJmaXJzdEV2ZW50VGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJsYXN0RXZlbnRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImxhc3RJbmdlc3Rpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ1cGxvYWRTZXF1ZW5jZVRva2VuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RvcmVkQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWV0cmljRmlsdGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJmaWx0ZXJOYW1lUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJtZXRyaWNOYW1lc3BhY2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJtZXRyaWNGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJmaWx0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZmlsdGVyUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIm1ldHJpY1RyYW5zZm9ybWF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc291cmNlUG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdWJzY3JpcHRpb25GaWx0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZmlsdGVyTmFtZVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdWJzY3JpcHRpb25GaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJmaWx0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZmlsdGVyUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImRlc3RpbmF0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImRpc3RyaWJ1dGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYXNzb2NpYXRlS21zS2V5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRmlsdGVyTG9nRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibG9nU3RyZWFtTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmaWx0ZXJQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImludGVybGVhdmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJldmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJpbmdlc3Rpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJldmVudElkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VhcmNoZWRMb2dTdHJlYW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2dTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic2VhcmNoZWRDb21wbGV0ZWx5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRMb2dFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwibG9nU3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwic3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhcnRGcm9tSGVhZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJpbmdlc3Rpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0Rm9yd2FyZFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dEJhY2t3YXJkVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0xvZ0dyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXREZXN0aW5hdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGVzdGluYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJ0YXJnZXRBcm5cIixcbiAgICAgICAgICBcInJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVzdGluYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGFyZ2V0QXJuXCI6IHt9LFxuICAgICAgICAgIFwicm9sZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dERlc3RpbmF0aW9uUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbk5hbWVcIixcbiAgICAgICAgICBcImFjY2Vzc1BvbGljeVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXN0aW5hdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJhY2Nlc3NQb2xpY3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRMb2dFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwibG9nU3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwibG9nRXZlbnRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2dFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIixcbiAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VxdWVuY2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRTZXF1ZW5jZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwicmVqZWN0ZWRMb2dFdmVudHNJbmZvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0b29OZXdMb2dFdmVudFN0YXJ0SW5kZXhcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInRvb09sZExvZ0V2ZW50RW5kSW5kZXhcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImV4cGlyZWRMb2dFdmVudEVuZEluZGV4XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRNZXRyaWNGaWx0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiZmlsdGVyTmFtZVwiLFxuICAgICAgICAgIFwiZmlsdGVyUGF0dGVyblwiLFxuICAgICAgICAgIFwibWV0cmljVHJhbnNmb3JtYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZpbHRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJmaWx0ZXJQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgIFwibWV0cmljVHJhbnNmb3JtYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRSZXNvdXJjZVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZVBvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UmV0ZW50aW9uUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIixcbiAgICAgICAgICBcInJldGVudGlvbkluRGF5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZXRlbnRpb25JbkRheXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFN1YnNjcmlwdGlvbkZpbHRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJmaWx0ZXJOYW1lXCIsXG4gICAgICAgICAgXCJmaWx0ZXJQYXR0ZXJuXCIsXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJmaWx0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZmlsdGVyUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICBcImRlc3RpbmF0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcImRpc3RyaWJ1dGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRhZ0xvZ0dyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIixcbiAgICAgICAgICBcInRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXN0TWV0cmljRmlsdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJmaWx0ZXJQYXR0ZXJuXCIsXG4gICAgICAgICAgXCJsb2dFdmVudE1lc3NhZ2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZpbHRlclBhdHRlcm5cIjoge30sXG4gICAgICAgICAgXCJsb2dFdmVudE1lc3NhZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm1hdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImV2ZW50TnVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJldmVudE1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJleHRyYWN0ZWRWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdMb2dHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJ0YWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkZXN0aW5hdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwidGFyZ2V0QXJuXCI6IHt9LFxuICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgIFwiYWNjZXNzUG9saWN5XCI6IHt9LFxuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIm1ldHJpY05hbWVzcGFjZVwiLFxuICAgICAgICAgIFwibWV0cmljVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIm1ldHJpY05hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIm1ldHJpY1ZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgXCJwb2xpY3lEb2N1bWVudFwiOiB7fSxcbiAgICAgICAgXCJsYXN0VXBkYXRlZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVEZXN0aW5hdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImRlc3RpbmF0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9nR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJsb2dHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvZ1N0cmVhbXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImxvZ1N0cmVhbXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1ldHJpY0ZpbHRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIm1ldHJpY0ZpbHRlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInN1YnNjcmlwdGlvbkZpbHRlcnNcIlxuICAgIH0sXG4gICAgXCJGaWx0ZXJMb2dFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBbXG4gICAgICAgIFwiZXZlbnRzXCIsXG4gICAgICAgIFwic2VhcmNoZWRMb2dTdHJlYW1zXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwiR2V0TG9nRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dEZvcndhcmRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiZXZlbnRzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcInVpZFwiOiBcIm1hY2hpbmVsZWFybmluZy0yMDE0LTEyLTEyXCIsXG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0xMi0xMlwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJtYWNoaW5lbGVhcm5pbmdcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gTWFjaGluZSBMZWFybmluZ1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJBbWF6b25NTF8yMDE0MTIxMlwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ3NcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQmF0Y2hQcmVkaWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiLFxuICAgICAgICAgIFwiTUxNb2RlbElkXCIsXG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25EYXRhU291cmNlSWRcIixcbiAgICAgICAgICBcIk91dHB1dFVyaVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge30sXG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25EYXRhU291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJPdXRwdXRVcmlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURhdGFTb3VyY2VGcm9tUkRTXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIixcbiAgICAgICAgICBcIlJEU0RhdGFcIixcbiAgICAgICAgICBcIlJvbGVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJSRFNEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiRGF0YWJhc2VJbmZvcm1hdGlvblwiLFxuICAgICAgICAgICAgICBcIlNlbGVjdFNxbFF1ZXJ5XCIsXG4gICAgICAgICAgICAgIFwiRGF0YWJhc2VDcmVkZW50aWFsc1wiLFxuICAgICAgICAgICAgICBcIlMzU3RhZ2luZ0xvY2F0aW9uXCIsXG4gICAgICAgICAgICAgIFwiUmVzb3VyY2VSb2xlXCIsXG4gICAgICAgICAgICAgIFwiU2VydmljZVJvbGVcIixcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiLFxuICAgICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGF0YWJhc2VJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZWxlY3RTcWxRdWVyeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEYXRhYmFzZUNyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwiUGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlBhc3N3b3JkXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzU3RhZ2luZ0xvY2F0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGFSZWFycmFuZ2VtZW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGFTY2hlbWFcIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVNjaGVtYVVyaVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZXNvdXJjZVJvbGVcIjoge30sXG4gICAgICAgICAgICAgIFwiU2VydmljZVJvbGVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkNvbXB1dGVTdGF0aXN0aWNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEYXRhU291cmNlRnJvbVJlZHNoaWZ0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIixcbiAgICAgICAgICBcIkRhdGFTcGVjXCIsXG4gICAgICAgICAgXCJSb2xlQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFTb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVNwZWNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJEYXRhYmFzZUluZm9ybWF0aW9uXCIsXG4gICAgICAgICAgICAgIFwiU2VsZWN0U3FsUXVlcnlcIixcbiAgICAgICAgICAgICAgXCJEYXRhYmFzZUNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgICAgIFwiUzNTdGFnaW5nTG9jYXRpb25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGF0YWJhc2VJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZWxlY3RTcWxRdWVyeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEYXRhYmFzZUNyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwiUGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlBhc3N3b3JkXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzU3RhZ2luZ0xvY2F0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGFSZWFycmFuZ2VtZW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGFTY2hlbWFcIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVNjaGVtYVVyaVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcHV0ZVN0YXRpc3RpY3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURhdGFTb3VyY2VGcm9tUzNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiLFxuICAgICAgICAgIFwiRGF0YVNwZWNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEYXRhU3BlY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkRhdGFMb2NhdGlvblMzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRhdGFMb2NhdGlvblMzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGFSZWFycmFuZ2VtZW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGFTY2hlbWFcIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVNjaGVtYUxvY2F0aW9uUzNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tcHV0ZVN0YXRpc3RpY3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUV2YWx1YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiLFxuICAgICAgICAgIFwiTUxNb2RlbElkXCIsXG4gICAgICAgICAgXCJFdmFsdWF0aW9uRGF0YVNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkV2YWx1YXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgIFwiRXZhbHVhdGlvbkRhdGFTb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU1MTW9kZWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiLFxuICAgICAgICAgIFwiTUxNb2RlbFR5cGVcIixcbiAgICAgICAgICBcIlRyYWluaW5nRGF0YVNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIk1MTW9kZWxOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTUxNb2RlbFR5cGVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFpbmluZ0RhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlY2lwZVwiOiB7fSxcbiAgICAgICAgICBcIlJlY2lwZVVyaVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlYWx0aW1lRW5kcG9pbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge30sXG4gICAgICAgICAgXCJSZWFsdGltZUVuZHBvaW50SW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQmF0Y2hQcmVkaWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGF0YVNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUV2YWx1YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmFsdWF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmFsdWF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNTE1vZGVsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVhbHRpbWVFbmRwb2ludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTUxNb2RlbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlYWx0aW1lRW5kcG9pbnRJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdLZXlzXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQmF0Y2hQcmVkaWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJWYXJpYWJsZVwiOiB7fSxcbiAgICAgICAgICBcIkVRXCI6IHt9LFxuICAgICAgICAgIFwiR1RcIjoge30sXG4gICAgICAgICAgXCJMVFwiOiB7fSxcbiAgICAgICAgICBcIkdFXCI6IHt9LFxuICAgICAgICAgIFwiTEVcIjoge30sXG4gICAgICAgICAgXCJORVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlNvcnRPcmRlclwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklucHV0RGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQnlJYW1Vc2VyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk91dHB1dFVyaVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wdXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmluaXNoZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFydGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVG90YWxSZWNvcmRDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW52YWxpZFJlY29yZENvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURhdGFTb3VyY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclZhcmlhYmxlXCI6IHt9LFxuICAgICAgICAgIFwiRVFcIjoge30sXG4gICAgICAgICAgXCJHVFwiOiB7fSxcbiAgICAgICAgICBcIkxUXCI6IHt9LFxuICAgICAgICAgIFwiR0VcIjoge30sXG4gICAgICAgICAgXCJMRVwiOiB7fSxcbiAgICAgICAgICBcIk5FXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiU29ydE9yZGVyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRhdGFMb2NhdGlvblMzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGF0YVJlYXJyYW5nZW1lbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQnlJYW1Vc2VyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGF0YVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOdW1iZXJPZkZpbGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZHNoaWZ0TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJEU01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcHV0ZVN0YXRpc3RpY3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbXB1dGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaW5pc2hlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2YWx1YXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclZhcmlhYmxlXCI6IHt9LFxuICAgICAgICAgIFwiRVFcIjoge30sXG4gICAgICAgICAgXCJHVFwiOiB7fSxcbiAgICAgICAgICBcIkxUXCI6IHt9LFxuICAgICAgICAgIFwiR0VcIjoge30sXG4gICAgICAgICAgXCJMRVwiOiB7fSxcbiAgICAgICAgICBcIk5FXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiU29ydE9yZGVyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2YWx1YXRpb25EYXRhU291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnB1dERhdGFMb2NhdGlvblMzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEJ5SWFtVXNlclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQZXJmb3JtYW5jZU1ldHJpY3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMycVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wdXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmluaXNoZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFydGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNTE1vZGVsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJWYXJpYWJsZVwiOiB7fSxcbiAgICAgICAgICBcIkVRXCI6IHt9LFxuICAgICAgICAgIFwiR1RcIjoge30sXG4gICAgICAgICAgXCJMVFwiOiB7fSxcbiAgICAgICAgICBcIkdFXCI6IHt9LFxuICAgICAgICAgIFwiTEVcIjoge30sXG4gICAgICAgICAgXCJORVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlNvcnRPcmRlclwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJNTE1vZGVsSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUcmFpbmluZ0RhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRCeUlhbVVzZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuZHBvaW50SW5mb1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVHJhaW5pbmdQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnB1dERhdGFMb2NhdGlvblMzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWxnb3JpdGhtXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTUxNb2RlbFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY29yZVRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNjb3JlVGhyZXNob2xkTGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcHV0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpbmlzaGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCYXRjaFByZWRpY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmF0Y2hQcmVkaWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge30sXG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25EYXRhU291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJJbnB1dERhdGFMb2NhdGlvblMzXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZEJ5SWFtVXNlclwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJPdXRwdXRVcmlcIjoge30sXG4gICAgICAgICAgXCJMb2dVcmlcIjoge30sXG4gICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcHV0ZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbmlzaGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvdGFsUmVjb3JkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludmFsaWRSZWNvcmRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGF0YVNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlZlcmJvc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFMb2NhdGlvblMzXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVJlYXJyYW5nZW1lbnRcIjoge30sXG4gICAgICAgICAgXCJDcmVhdGVkQnlJYW1Vc2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOdW1iZXJPZkZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiTG9nVXJpXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIlJlZHNoaWZ0TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJEU01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcHV0ZVN0YXRpc3RpY3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbXB1dGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5pc2hlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhU291cmNlU2NoZW1hXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RXZhbHVhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIkV2YWx1YXRpb25EYXRhU291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJJbnB1dERhdGFMb2NhdGlvblMzXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZEJ5SWFtVXNlclwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZU1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMycVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvZ1VyaVwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJDb21wdXRlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluaXNoZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TUxNb2RlbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTUxNb2RlbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIlZlcmJvc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIlRyYWluaW5nRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZEJ5SWFtVXNlclwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kcG9pbnRJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFpbmluZ1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklucHV0RGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgXCJNTE1vZGVsVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlNjb3JlVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NvcmVUaHJlc2hvbGRMYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvZ1VyaVwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJDb21wdXRlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluaXNoZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjaXBlXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZW1hXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHJlZGljdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTUxNb2RlbElkXCIsXG4gICAgICAgICAgXCJSZWNvcmRcIixcbiAgICAgICAgICBcIlByZWRpY3RFbmRwb2ludFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge30sXG4gICAgICAgICAgXCJSZWNvcmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZGljdEVuZHBvaW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJlZGljdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwicHJlZGljdGVkTGFiZWxcIjoge30sXG4gICAgICAgICAgICAgIFwicHJlZGljdGVkVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJwcmVkaWN0ZWRTY29yZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJkZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQmF0Y2hQcmVkaWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiLFxuICAgICAgICAgIFwiQmF0Y2hQcmVkaWN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURhdGFTb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiLFxuICAgICAgICAgIFwiRGF0YVNvdXJjZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVNvdXJjZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVFdmFsdWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFdmFsdWF0aW9uSWRcIixcbiAgICAgICAgICBcIkV2YWx1YXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkV2YWx1YXRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTUxNb2RlbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTUxNb2RlbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIk1MTW9kZWxOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2NvcmVUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgXCJEYXRhYmFzZU5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRhdGFiYXNlTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkRhdGFiYXNlTmFtZVwiLFxuICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzFqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQZWFrUmVxdWVzdHNQZXJTZWNvbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmRwb2ludFVybFwiOiB7fSxcbiAgICAgICAgXCJFbmRwb2ludFN0YXR1c1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlZHNoaWZ0RGF0YWJhc2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGF0YWJhc2VVc2VyTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTZWxlY3RTcWxRdWVyeVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRhdGFiYXNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRhdGFiYXNlVXNlck5hbWVcIjoge30sXG4gICAgICAgIFwiU2VsZWN0U3FsUXVlcnlcIjoge30sXG4gICAgICAgIFwiUmVzb3VyY2VSb2xlXCI6IHt9LFxuICAgICAgICBcIlNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICBcIkRhdGFQaXBlbGluZUlkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMycVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcImV4YW1wbGVzXCI6IHt9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVCYXRjaFByZWRpY3Rpb25zXCI6IHtcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEYXRhU291cmNlc1wiOiB7XG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZhbHVhdGlvbnNcIjoge1xuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1MTW9kZWxzXCI6IHtcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXN1bHRzXCJcbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJEYXRhU291cmNlQXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlRGF0YVNvdXJjZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ09NUExFVEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc3VsdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXN1bHRzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJNTE1vZGVsQXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlTUxNb2RlbHNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ09NUExFVEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc3VsdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXN1bHRzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJFdmFsdWF0aW9uQXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlRXZhbHVhdGlvbnNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ09NUExFVEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc3VsdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXN1bHRzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJCYXRjaFByZWRpY3Rpb25BdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVCYXRjaFByZWRpY3Rpb25zXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkNPTVBMRVRFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXN1bHRzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJGQUlMRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzdWx0c1tdLlN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMDctMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwibWFya2V0cGxhY2Vjb21tZXJjZWFuYWx5dGljc1wiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIE1hcmtldHBsYWNlIENvbW1lcmNlIEFuYWx5dGljc1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJzaWduaW5nTmFtZVwiOiBcIm1hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3NcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIk1hcmtldHBsYWNlQ29tbWVyY2VBbmFseXRpY3MyMDE1MDcwMVwiLFxuICAgIFwidWlkXCI6IFwibWFya2V0cGxhY2Vjb21tZXJjZWFuYWx5dGljcy0yMDE1LTA3LTAxXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkdlbmVyYXRlRGF0YVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGF0YVNldFR5cGVcIixcbiAgICAgICAgICBcImRhdGFTZXRQdWJsaWNhdGlvbkRhdGVcIixcbiAgICAgICAgICBcInJvbGVOYW1lQXJuXCIsXG4gICAgICAgICAgXCJkZXN0aW5hdGlvblMzQnVja2V0TmFtZVwiLFxuICAgICAgICAgIFwic25zVG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGF0YVNldFR5cGVcIjoge30sXG4gICAgICAgICAgXCJkYXRhU2V0UHVibGljYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJvbGVOYW1lQXJuXCI6IHt9LFxuICAgICAgICAgIFwiZGVzdGluYXRpb25TM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvblMzUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwic25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJjdXN0b21lckRlZmluZWRWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGF0YVNldFJlcXVlc3RJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0U3VwcG9ydERhdGFFeHBvcnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRhdGFTZXRUeXBlXCIsXG4gICAgICAgICAgXCJmcm9tRGF0ZVwiLFxuICAgICAgICAgIFwicm9sZU5hbWVBcm5cIixcbiAgICAgICAgICBcImRlc3RpbmF0aW9uUzNCdWNrZXROYW1lXCIsXG4gICAgICAgICAgXCJzbnNUb3BpY0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkYXRhU2V0VHlwZVwiOiB7fSxcbiAgICAgICAgICBcImZyb21EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJvbGVOYW1lQXJuXCI6IHt9LFxuICAgICAgICAgIFwiZGVzdGluYXRpb25TM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvblMzUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwic25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJjdXN0b21lckRlZmluZWRWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGF0YVNldFJlcXVlc3RJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJhY21cIjoge1xuICAgIFwibmFtZVwiOiBcIkFDTVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiYXBpZ2F0ZXdheVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQVBJR2F0ZXdheVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiYXBwbGljYXRpb25hdXRvc2NhbGluZ1wiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJhcHBsaWNhdGlvbi1hdXRvc2NhbGluZ1wiLFxuICAgIFwibmFtZVwiOiBcIkFwcGxpY2F0aW9uQXV0b1NjYWxpbmdcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImFwcHN0cmVhbVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQXBwU3RyZWFtXCJcbiAgfSxcbiAgXCJhdXRvc2NhbGluZ1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiQXV0b1NjYWxpbmdcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImJhdGNoXCI6IHtcbiAgICBcIm5hbWVcIjogXCJCYXRjaFwiXG4gIH0sXG4gIFwiYnVkZ2V0c1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiQnVkZ2V0c1wiXG4gIH0sXG4gIFwiY2xvdWRkaXJlY3RvcnlcIjoge1xuICAgIFwibmFtZVwiOiBcIkNsb3VkRGlyZWN0b3J5XCIsXG4gICAgXCJ2ZXJzaW9uc1wiOiBbXG4gICAgICBcIjIwMTYtMDUtMTAqXCJcbiAgICBdXG4gIH0sXG4gIFwiY2xvdWRmb3JtYXRpb25cIjoge1xuICAgIFwibmFtZVwiOiBcIkNsb3VkRm9ybWF0aW9uXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjbG91ZGZyb250XCI6IHtcbiAgICBcIm5hbWVcIjogXCJDbG91ZEZyb250XCIsXG4gICAgXCJ2ZXJzaW9uc1wiOiBbXG4gICAgICBcIjIwMTMtMDUtMTIqXCIsXG4gICAgICBcIjIwMTMtMTEtMTEqXCIsXG4gICAgICBcIjIwMTQtMDUtMzEqXCIsXG4gICAgICBcIjIwMTQtMTAtMjEqXCIsXG4gICAgICBcIjIwMTQtMTEtMDYqXCIsXG4gICAgICBcIjIwMTUtMDQtMTcqXCIsXG4gICAgICBcIjIwMTUtMDctMjcqXCIsXG4gICAgICBcIjIwMTUtMDktMTcqXCIsXG4gICAgICBcIjIwMTYtMDEtMTMqXCIsXG4gICAgICBcIjIwMTYtMDEtMjgqXCIsXG4gICAgICBcIjIwMTYtMDgtMDEqXCIsXG4gICAgICBcIjIwMTYtMDgtMjAqXCIsXG4gICAgICBcIjIwMTYtMDktMDcqXCIsXG4gICAgICBcIjIwMTYtMDktMjkqXCIsXG4gICAgICBcIjIwMTYtMTEtMjUqXCIsXG4gICAgICBcIjIwMTctMDMtMjUqXCJcbiAgICBdLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY2xvdWRoc21cIjoge1xuICAgIFwibmFtZVwiOiBcIkNsb3VkSFNNXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjbG91ZHNlYXJjaFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ2xvdWRTZWFyY2hcIlxuICB9LFxuICBcImNsb3Vkc2VhcmNoZG9tYWluXCI6IHtcbiAgICBcIm5hbWVcIjogXCJDbG91ZFNlYXJjaERvbWFpblwiXG4gIH0sXG4gIFwiY2xvdWR0cmFpbFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ2xvdWRUcmFpbFwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY2xvdWR3YXRjaFwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJtb25pdG9yaW5nXCIsXG4gICAgXCJuYW1lXCI6IFwiQ2xvdWRXYXRjaFwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY2xvdWR3YXRjaGV2ZW50c1wiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJldmVudHNcIixcbiAgICBcIm5hbWVcIjogXCJDbG91ZFdhdGNoRXZlbnRzXCIsXG4gICAgXCJ2ZXJzaW9uc1wiOiBbXG4gICAgICBcIjIwMTQtMDItMDMqXCJcbiAgICBdLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY2xvdWR3YXRjaGxvZ3NcIjoge1xuICAgIFwicHJlZml4XCI6IFwibG9nc1wiLFxuICAgIFwibmFtZVwiOiBcIkNsb3VkV2F0Y2hMb2dzXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjb2RlYnVpbGRcIjoge1xuICAgIFwibmFtZVwiOiBcIkNvZGVCdWlsZFwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY29kZWNvbW1pdFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ29kZUNvbW1pdFwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY29kZWRlcGxveVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ29kZURlcGxveVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY29kZXBpcGVsaW5lXCI6IHtcbiAgICBcIm5hbWVcIjogXCJDb2RlUGlwZWxpbmVcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImNvZ25pdG9pZGVudGl0eVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJjb2duaXRvLWlkZW50aXR5XCIsXG4gICAgXCJuYW1lXCI6IFwiQ29nbml0b0lkZW50aXR5XCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjb2duaXRvaWRlbnRpdHlzZXJ2aWNlcHJvdmlkZXJcIjoge1xuICAgIFwicHJlZml4XCI6IFwiY29nbml0by1pZHBcIixcbiAgICBcIm5hbWVcIjogXCJDb2duaXRvSWRlbnRpdHlTZXJ2aWNlUHJvdmlkZXJcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImNvZ25pdG9zeW5jXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImNvZ25pdG8tc3luY1wiLFxuICAgIFwibmFtZVwiOiBcIkNvZ25pdG9TeW5jXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjb25maWdzZXJ2aWNlXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImNvbmZpZ1wiLFxuICAgIFwibmFtZVwiOiBcIkNvbmZpZ1NlcnZpY2VcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImN1clwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ1VSXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJkYXRhcGlwZWxpbmVcIjoge1xuICAgIFwibmFtZVwiOiBcIkRhdGFQaXBlbGluZVwiXG4gIH0sXG4gIFwiZGV2aWNlZmFybVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRGV2aWNlRmFybVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZGlyZWN0Y29ubmVjdFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRGlyZWN0Q29ubmVjdFwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZGlyZWN0b3J5c2VydmljZVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJkc1wiLFxuICAgIFwibmFtZVwiOiBcIkRpcmVjdG9yeVNlcnZpY2VcIlxuICB9LFxuICBcImRpc2NvdmVyeVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRGlzY292ZXJ5XCJcbiAgfSxcbiAgXCJkbXNcIjoge1xuICAgIFwibmFtZVwiOiBcIkRNU1wiXG4gIH0sXG4gIFwiZHluYW1vZGJcIjoge1xuICAgIFwibmFtZVwiOiBcIkR5bmFtb0RCXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJkeW5hbW9kYnN0cmVhbXNcIjoge1xuICAgIFwicHJlZml4XCI6IFwic3RyZWFtcy5keW5hbW9kYlwiLFxuICAgIFwibmFtZVwiOiBcIkR5bmFtb0RCU3RyZWFtc1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZWMyXCI6IHtcbiAgICBcIm5hbWVcIjogXCJFQzJcIixcbiAgICBcInZlcnNpb25zXCI6IFtcbiAgICAgIFwiMjAxMy0wNi0xNSpcIixcbiAgICAgIFwiMjAxMy0xMC0xNSpcIixcbiAgICAgIFwiMjAxNC0wMi0wMSpcIixcbiAgICAgIFwiMjAxNC0wNS0wMSpcIixcbiAgICAgIFwiMjAxNC0wNi0xNSpcIixcbiAgICAgIFwiMjAxNC0wOS0wMSpcIixcbiAgICAgIFwiMjAxNC0xMC0wMSpcIixcbiAgICAgIFwiMjAxNS0wMy0wMSpcIixcbiAgICAgIFwiMjAxNS0wNC0xNSpcIixcbiAgICAgIFwiMjAxNS0xMC0wMSpcIixcbiAgICAgIFwiMjAxNi0wNC0wMSpcIixcbiAgICAgIFwiMjAxNi0wOS0xNSpcIlxuICAgIF0sXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJlY3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkVDUlwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZWNzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJFQ1NcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImVmc1wiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJlbGFzdGljZmlsZXN5c3RlbVwiLFxuICAgIFwibmFtZVwiOiBcIkVGU1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZWxhc3RpY2FjaGVcIjoge1xuICAgIFwibmFtZVwiOiBcIkVsYXN0aUNhY2hlXCIsXG4gICAgXCJ2ZXJzaW9uc1wiOiBbXG4gICAgICBcIjIwMTItMTEtMTUqXCIsXG4gICAgICBcIjIwMTQtMDMtMjQqXCIsXG4gICAgICBcIjIwMTQtMDctMTUqXCIsXG4gICAgICBcIjIwMTQtMDktMzAqXCJcbiAgICBdLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZWxhc3RpY2JlYW5zdGFsa1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiRWxhc3RpY0JlYW5zdGFsa1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZWxiXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImVsYXN0aWNsb2FkYmFsYW5jaW5nXCIsXG4gICAgXCJuYW1lXCI6IFwiRUxCXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJlbGJ2MlwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJlbGFzdGljbG9hZGJhbGFuY2luZ3YyXCIsXG4gICAgXCJuYW1lXCI6IFwiRUxCdjJcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImVtclwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJlbGFzdGljbWFwcmVkdWNlXCIsXG4gICAgXCJuYW1lXCI6IFwiRU1SXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJlc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiRVNcIlxuICB9LFxuICBcImVsYXN0aWN0cmFuc2NvZGVyXCI6IHtcbiAgICBcIm5hbWVcIjogXCJFbGFzdGljVHJhbnNjb2RlclwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZmlyZWhvc2VcIjoge1xuICAgIFwibmFtZVwiOiBcIkZpcmVob3NlXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJnYW1lbGlmdFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiR2FtZUxpZnRcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImdsYWNpZXJcIjoge1xuICAgIFwibmFtZVwiOiBcIkdsYWNpZXJcIlxuICB9LFxuICBcImhlYWx0aFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiSGVhbHRoXCJcbiAgfSxcbiAgXCJpYW1cIjoge1xuICAgIFwibmFtZVwiOiBcIklBTVwiXG4gIH0sXG4gIFwiaW1wb3J0ZXhwb3J0XCI6IHtcbiAgICBcIm5hbWVcIjogXCJJbXBvcnRFeHBvcnRcIlxuICB9LFxuICBcImluc3BlY3RvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiSW5zcGVjdG9yXCIsXG4gICAgXCJ2ZXJzaW9uc1wiOiBbXG4gICAgICBcIjIwMTUtMDgtMTgqXCJcbiAgICBdLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiaW90XCI6IHtcbiAgICBcIm5hbWVcIjogXCJJb3RcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImlvdGRhdGFcIjoge1xuICAgIFwicHJlZml4XCI6IFwiaW90LWRhdGFcIixcbiAgICBcIm5hbWVcIjogXCJJb3REYXRhXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJraW5lc2lzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJLaW5lc2lzXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJraW5lc2lzYW5hbHl0aWNzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJLaW5lc2lzQW5hbHl0aWNzXCJcbiAgfSxcbiAgXCJrbXNcIjoge1xuICAgIFwibmFtZVwiOiBcIktNU1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwibGFtYmRhXCI6IHtcbiAgICBcIm5hbWVcIjogXCJMYW1iZGFcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImxleHJ1bnRpbWVcIjoge1xuICAgIFwicHJlZml4XCI6IFwicnVudGltZS5sZXhcIixcbiAgICBcIm5hbWVcIjogXCJMZXhSdW50aW1lXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJsaWdodHNhaWxcIjoge1xuICAgIFwibmFtZVwiOiBcIkxpZ2h0c2FpbFwiXG4gIH0sXG4gIFwibWFjaGluZWxlYXJuaW5nXCI6IHtcbiAgICBcIm5hbWVcIjogXCJNYWNoaW5lTGVhcm5pbmdcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcIm1hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3NcIjoge1xuICAgIFwibmFtZVwiOiBcIk1hcmtldHBsYWNlQ29tbWVyY2VBbmFseXRpY3NcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcIm1hcmtldHBsYWNlbWV0ZXJpbmdcIjoge1xuICAgIFwicHJlZml4XCI6IFwibWV0ZXJpbmdtYXJrZXRwbGFjZVwiLFxuICAgIFwibmFtZVwiOiBcIk1hcmtldHBsYWNlTWV0ZXJpbmdcIlxuICB9LFxuICBcIm10dXJrXCI6IHtcbiAgICBcInByZWZpeFwiOiBcIm10dXJrLXJlcXVlc3RlclwiLFxuICAgIFwibmFtZVwiOiBcIk1UdXJrXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJtb2JpbGVhbmFseXRpY3NcIjoge1xuICAgIFwibmFtZVwiOiBcIk1vYmlsZUFuYWx5dGljc1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwib3Bzd29ya3NcIjoge1xuICAgIFwibmFtZVwiOiBcIk9wc1dvcmtzXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJvcHN3b3Jrc2NtXCI6IHtcbiAgICBcIm5hbWVcIjogXCJPcHNXb3Jrc0NNXCJcbiAgfSxcbiAgXCJvcmdhbml6YXRpb25zXCI6IHtcbiAgICBcIm5hbWVcIjogXCJPcmdhbml6YXRpb25zXCJcbiAgfSxcbiAgXCJwaW5wb2ludFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiUGlucG9pbnRcIlxuICB9LFxuICBcInBvbGx5XCI6IHtcbiAgICBcIm5hbWVcIjogXCJQb2xseVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwicmRzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJSRFNcIixcbiAgICBcInZlcnNpb25zXCI6IFtcbiAgICAgIFwiMjAxNC0wOS0wMSpcIlxuICAgIF0sXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJyZWRzaGlmdFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiUmVkc2hpZnRcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcInJla29nbml0aW9uXCI6IHtcbiAgICBcIm5hbWVcIjogXCJSZWtvZ25pdGlvblwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwicmVzb3VyY2Vncm91cHN0YWdnaW5nYXBpXCI6IHtcbiAgICBcIm5hbWVcIjogXCJSZXNvdXJjZUdyb3Vwc1RhZ2dpbmdBUElcIlxuICB9LFxuICBcInJvdXRlNTNcIjoge1xuICAgIFwibmFtZVwiOiBcIlJvdXRlNTNcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcInJvdXRlNTNkb21haW5zXCI6IHtcbiAgICBcIm5hbWVcIjogXCJSb3V0ZTUzRG9tYWluc1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiczNcIjoge1xuICAgIFwibmFtZVwiOiBcIlMzXCIsXG4gICAgXCJkdWFsc3RhY2tBdmFpbGFibGVcIjogdHJ1ZSxcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcInNlcnZpY2VjYXRhbG9nXCI6IHtcbiAgICBcIm5hbWVcIjogXCJTZXJ2aWNlQ2F0YWxvZ1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwic2VzXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImVtYWlsXCIsXG4gICAgXCJuYW1lXCI6IFwiU0VTXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJzaGllbGRcIjoge1xuICAgIFwibmFtZVwiOiBcIlNoaWVsZFwiXG4gIH0sXG4gIFwic2ltcGxlZGJcIjoge1xuICAgIFwicHJlZml4XCI6IFwic2RiXCIsXG4gICAgXCJuYW1lXCI6IFwiU2ltcGxlREJcIlxuICB9LFxuICBcInNtc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiU01TXCJcbiAgfSxcbiAgXCJzbm93YmFsbFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiU25vd2JhbGxcIlxuICB9LFxuICBcInNuc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiU05TXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJzcXNcIjoge1xuICAgIFwibmFtZVwiOiBcIlNRU1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwic3NtXCI6IHtcbiAgICBcIm5hbWVcIjogXCJTU01cIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcInN0b3JhZ2VnYXRld2F5XCI6IHtcbiAgICBcIm5hbWVcIjogXCJTdG9yYWdlR2F0ZXdheVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwic3RlcGZ1bmN0aW9uc1wiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJzdGF0ZXNcIixcbiAgICBcIm5hbWVcIjogXCJTdGVwRnVuY3Rpb25zXCJcbiAgfSxcbiAgXCJzdHNcIjoge1xuICAgIFwibmFtZVwiOiBcIlNUU1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwic3VwcG9ydFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiU3VwcG9ydFwiXG4gIH0sXG4gIFwic3dmXCI6IHtcbiAgICBcIm5hbWVcIjogXCJTV0ZcIlxuICB9LFxuICBcInhyYXlcIjoge1xuICAgIFwibmFtZVwiOiBcIlhSYXlcIlxuICB9LFxuICBcIndhZlwiOiB7XG4gICAgXCJuYW1lXCI6IFwiV0FGXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJ3YWZyZWdpb25hbFwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJ3YWYtcmVnaW9uYWxcIixcbiAgICBcIm5hbWVcIjogXCJXQUZSZWdpb25hbFwiXG4gIH0sXG4gIFwid29ya2RvY3NcIjoge1xuICAgIFwibmFtZVwiOiBcIldvcmtEb2NzXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJ3b3Jrc3BhY2VzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJXb3JrU3BhY2VzXCJcbiAgfSxcbiAgXCJjb2Rlc3RhclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ29kZVN0YXJcIlxuICB9LFxuICBcImxleG1vZGVsYnVpbGRpbmdzZXJ2aWNlXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImxleC1tb2RlbHNcIixcbiAgICBcIm5hbWVcIjogXCJMZXhNb2RlbEJ1aWxkaW5nU2VydmljZVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwibWFya2V0cGxhY2VlbnRpdGxlbWVudHNlcnZpY2VcIjoge1xuICAgIFwicHJlZml4XCI6IFwiZW50aXRsZW1lbnQubWFya2V0cGxhY2VcIixcbiAgICBcIm5hbWVcIjogXCJNYXJrZXRwbGFjZUVudGl0bGVtZW50U2VydmljZVwiXG4gIH0sXG4gIFwiYXRoZW5hXCI6IHtcbiAgICBcIm5hbWVcIjogXCJBdGhlbmFcIlxuICB9LFxuICBcImdyZWVuZ3Jhc3NcIjoge1xuICAgIFwibmFtZVwiOiBcIkdyZWVuZ3Jhc3NcIlxuICB9LFxuICBcImRheFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiREFYXCJcbiAgfSxcbiAgXCJtaWdyYXRpb25odWJcIjoge1xuICAgIFwicHJlZml4XCI6IFwiQVdTTWlncmF0aW9uSHViXCIsXG4gICAgXCJuYW1lXCI6IFwiTWlncmF0aW9uSHViXCJcbiAgfSxcbiAgXCJjbG91ZGhzbXYyXCI6IHtcbiAgICBcIm5hbWVcIjogXCJDbG91ZEhTTVYyXCJcbiAgfSxcbiAgXCJnbHVlXCI6IHtcbiAgICBcIm5hbWVcIjogXCJHbHVlXCJcbiAgfSxcbiAgXCJtb2JpbGVcIjoge1xuICAgIFwibmFtZVwiOiBcIk1vYmlsZVwiXG4gIH0sXG4gIFwicHJpY2luZ1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiUHJpY2luZ1wiXG4gIH0sXG4gIFwiY29zdGV4cGxvcmVyXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImNlXCIsXG4gICAgXCJuYW1lXCI6IFwiQ29zdEV4cGxvcmVyXCJcbiAgfSxcbiAgXCJtZWRpYWNvbnZlcnRcIjoge1xuICAgIFwibmFtZVwiOiBcIk1lZGlhQ29udmVydFwiXG4gIH0sXG4gIFwibWVkaWFsaXZlXCI6IHtcbiAgICBcIm5hbWVcIjogXCJNZWRpYUxpdmVcIlxuICB9LFxuICBcIm1lZGlhcGFja2FnZVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiTWVkaWFQYWNrYWdlXCJcbiAgfSxcbiAgXCJtZWRpYXN0b3JlXCI6IHtcbiAgICBcIm5hbWVcIjogXCJNZWRpYVN0b3JlXCJcbiAgfSxcbiAgXCJtZWRpYXN0b3JlZGF0YVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJtZWRpYXN0b3JlLWRhdGFcIixcbiAgICBcIm5hbWVcIjogXCJNZWRpYVN0b3JlRGF0YVwiXG4gIH0sXG4gIFwiYXBwc3luY1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiQXBwU3luY1wiXG4gIH0sXG4gIFwiZ3VhcmRkdXR5XCI6IHtcbiAgICBcIm5hbWVcIjogXCJHdWFyZER1dHlcIlxuICB9LFxuICBcIm1xXCI6IHtcbiAgICBcIm5hbWVcIjogXCJNUVwiXG4gIH0sXG4gIFwiY29tcHJlaGVuZFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ29tcHJlaGVuZFwiXG4gIH0sXG4gIFwiaW90am9ic2RhdGFwbGFuZVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJpb3Qtam9icy1kYXRhXCIsXG4gICAgXCJuYW1lXCI6IFwiSW9USm9ic0RhdGFQbGFuZVwiXG4gIH0sXG4gIFwia2luZXNpc3ZpZGVvYXJjaGl2ZWRtZWRpYVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJraW5lc2lzLXZpZGVvLWFyY2hpdmVkLW1lZGlhXCIsXG4gICAgXCJuYW1lXCI6IFwiS2luZXNpc1ZpZGVvQXJjaGl2ZWRNZWRpYVwiXG4gIH0sXG4gIFwia2luZXNpc3ZpZGVvbWVkaWFcIjoge1xuICAgIFwicHJlZml4XCI6IFwia2luZXNpcy12aWRlby1tZWRpYVwiLFxuICAgIFwibmFtZVwiOiBcIktpbmVzaXNWaWRlb01lZGlhXCJcbiAgfSxcbiAgXCJraW5lc2lzdmlkZW9cIjoge1xuICAgIFwibmFtZVwiOiBcIktpbmVzaXNWaWRlb1wiXG4gIH0sXG4gIFwic2FnZW1ha2VycnVudGltZVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJydW50aW1lLnNhZ2VtYWtlclwiLFxuICAgIFwibmFtZVwiOiBcIlNhZ2VNYWtlclJ1bnRpbWVcIlxuICB9LFxuICBcInNhZ2VtYWtlclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiU2FnZU1ha2VyXCJcbiAgfSxcbiAgXCJ0cmFuc2xhdGVcIjoge1xuICAgIFwibmFtZVwiOiBcIlRyYW5zbGF0ZVwiXG4gIH0sXG4gIFwicmVzb3VyY2Vncm91cHNcIjoge1xuICAgIFwicHJlZml4XCI6IFwicmVzb3VyY2UtZ3JvdXBzXCIsXG4gICAgXCJuYW1lXCI6IFwiUmVzb3VyY2VHcm91cHNcIlxuICB9LFxuICBcImFsZXhhZm9yYnVzaW5lc3NcIjoge1xuICAgIFwibmFtZVwiOiBcIkFsZXhhRm9yQnVzaW5lc3NcIlxuICB9LFxuICBcImNsb3VkOVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ2xvdWQ5XCJcbiAgfSxcbiAgXCJzZXJ2ZXJsZXNzYXBwbGljYXRpb25yZXBvc2l0b3J5XCI6IHtcbiAgICBcInByZWZpeFwiOiBcInNlcnZlcmxlc3NyZXBvXCIsXG4gICAgXCJuYW1lXCI6IFwiU2VydmVybGVzc0FwcGxpY2F0aW9uUmVwb3NpdG9yeVwiXG4gIH0sXG4gIFwic2VydmljZWRpc2NvdmVyeVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiU2VydmljZURpc2NvdmVyeVwiXG4gIH0sXG4gIFwid29ya21haWxcIjoge1xuICAgIFwibmFtZVwiOiBcIldvcmtNYWlsXCJcbiAgfSxcbiAgXCJhdXRvc2NhbGluZ3BsYW5zXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImF1dG9zY2FsaW5nLXBsYW5zXCIsXG4gICAgXCJuYW1lXCI6IFwiQXV0b1NjYWxpbmdQbGFuc1wiXG4gIH0sXG4gIFwidHJhbnNjcmliZXNlcnZpY2VcIjoge1xuICAgIFwicHJlZml4XCI6IFwidHJhbnNjcmliZVwiLFxuICAgIFwibmFtZVwiOiBcIlRyYW5zY3JpYmVTZXJ2aWNlXCJcbiAgfSxcbiAgXCJjb25uZWN0XCI6IHtcbiAgICBcIm5hbWVcIjogXCJDb25uZWN0XCJcbiAgfSxcbiAgXCJhY21wY2FcIjoge1xuICAgIFwicHJlZml4XCI6IFwiYWNtLXBjYVwiLFxuICAgIFwibmFtZVwiOiBcIkFDTVBDQVwiXG4gIH0sXG4gIFwiZm1zXCI6IHtcbiAgICBcIm5hbWVcIjogXCJGTVNcIlxuICB9LFxuICBcInNlY3JldHNtYW5hZ2VyXCI6IHtcbiAgICBcIm5hbWVcIjogXCJTZWNyZXRzTWFuYWdlclwiXG4gIH0sXG4gIFwiaW90YW5hbHl0aWNzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJJb1RBbmFseXRpY3NcIlxuICB9LFxuICBcImlvdDFjbGlja2RldmljZXNzZXJ2aWNlXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImlvdDFjbGljay1kZXZpY2VzXCIsXG4gICAgXCJuYW1lXCI6IFwiSW9UMUNsaWNrRGV2aWNlc1NlcnZpY2VcIlxuICB9LFxuICBcImlvdDFjbGlja3Byb2plY3RzXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImlvdDFjbGljay1wcm9qZWN0c1wiLFxuICAgIFwibmFtZVwiOiBcIklvVDFDbGlja1Byb2plY3RzXCJcbiAgfSxcbiAgXCJwaVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiUElcIlxuICB9LFxuICBcIm5lcHR1bmVcIjoge1xuICAgIFwibmFtZVwiOiBcIk5lcHR1bmVcIlxuICB9LFxuICBcIm1lZGlhdGFpbG9yXCI6IHtcbiAgICBcIm5hbWVcIjogXCJNZWRpYVRhaWxvclwiXG4gIH0sXG4gIFwiZWtzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJFS1NcIlxuICB9LFxuICBcIm1hY2llXCI6IHtcbiAgICBcIm5hbWVcIjogXCJNYWNpZVwiXG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTA2LTA1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcIm1vYmlsZWFuYWx5dGljc1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIE1vYmlsZSBBbmFseXRpY3NcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LWpzb25cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiUHV0RXZlbnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTA2LTA1L2V2ZW50c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZXZlbnRzXCIsXG4gICAgICAgICAgXCJjbGllbnRDb250ZXh0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImV2ZW50VHlwZVwiLFxuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImV2ZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInNlc3Npb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJzdGFydFRpbWVzdGFtcFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJzdG9wVGltZXN0YW1wXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1ldHJpY3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGllbnRDb250ZXh0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotQ2xpZW50LUNvbnRleHRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGllbnRDb250ZXh0RW5jb2RpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1DbGllbnQtQ29udGV4dC1FbmNvZGluZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7fVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTAtMDgtMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwibW9uaXRvcmluZ1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkNsb3VkV2F0Y2hcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBDbG91ZFdhdGNoXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcIm1vbml0b3JpbmctMjAxMC0wOC0wMVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL21vbml0b3JpbmcuYW1hem9uYXdzLmNvbS9kb2MvMjAxMC0wOC0wMS9cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiRGVsZXRlQWxhcm1zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGFybU5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsYXJtTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGFzaGJvYXJkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGFzaGJvYXJkTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGFzaGJvYXJkTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZURhc2hib2FyZHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFsYXJtSGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVcIjoge30sXG4gICAgICAgICAgXCJIaXN0b3J5SXRlbVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBbGFybUhpc3RvcnlSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybUhpc3RvcnlJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWxhcm1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhpc3RvcnlJdGVtVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkhpc3RvcnlTdW1tYXJ5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSGlzdG9yeURhdGFcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFsYXJtc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsYXJtTmFtZVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRlVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJBY3Rpb25QcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBbGFybXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRyaWNBbGFybXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGlzdGljXCI6IHt9LFxuICAgICAgICAgIFwiRXh0ZW5kZWRTdGF0aXN0aWNcIjoge30sXG4gICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVuaXRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBbGFybXNGb3JNZXRyaWNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRyaWNBbGFybXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZUFsYXJtQWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxhcm1OYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZUFsYXJtQWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxhcm1OYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERhc2hib2FyZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGFzaGJvYXJkTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXNoYm9hcmROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldERhc2hib2FyZFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhc2hib2FyZEFyblwiOiB7fSxcbiAgICAgICAgICBcIkRhc2hib2FyZEJvZHlcIjoge30sXG4gICAgICAgICAgXCJEYXNoYm9hcmROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TWV0cmljRGF0YVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWV0cmljRGF0YVF1ZXJpZXNcIixcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiLFxuICAgICAgICAgIFwiRW5kVGltZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRyaWNEYXRhUXVlcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIklkXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWV0cmljU3RhdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIk1ldHJpY1wiLFxuICAgICAgICAgICAgICAgICAgICBcIlBlcmlvZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTWV0cmljXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJQZXJpb2RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVW5pdFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFiZWxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXR1cm5EYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTY2FuQnlcIjoge30sXG4gICAgICAgICAgXCJNYXhEYXRhcG9pbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0TWV0cmljRGF0YVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldHJpY0RhdGFSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhYmVsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TWV0cmljU3RhdGlzdGljc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCIsXG4gICAgICAgICAgXCJTdGFydFRpbWVcIixcbiAgICAgICAgICBcIkVuZFRpbWVcIixcbiAgICAgICAgICBcIlBlcmlvZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0aXN0aWNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4dGVuZGVkU3RhdGlzdGljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbml0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldE1ldHJpY1N0YXRpc3RpY3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFwb2ludHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTYW1wbGVDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdmVyYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1bVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNaW5pbXVtXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heGltdW1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVW5pdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4dGVuZGVkU3RhdGlzdGljc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInhtbE9yZGVyXCI6IFtcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgICAgIFwiU2FtcGxlQ291bnRcIixcbiAgICAgICAgICAgICAgICBcIkF2ZXJhZ2VcIixcbiAgICAgICAgICAgICAgICBcIlN1bVwiLFxuICAgICAgICAgICAgICAgIFwiTWluaW11bVwiLFxuICAgICAgICAgICAgICAgIFwiTWF4aW11bVwiLFxuICAgICAgICAgICAgICAgIFwiVW5pdFwiLFxuICAgICAgICAgICAgICAgIFwiRXh0ZW5kZWRTdGF0aXN0aWNzXCJcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGFzaGJvYXJkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXNoYm9hcmROYW1lUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3REYXNoYm9hcmRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGFzaGJvYXJkRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGFzaGJvYXJkTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRhc2hib2FyZEFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0TWV0cmljc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RNZXRyaWNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJ4bWxPcmRlclwiOiBbXG4gICAgICAgICAgXCJNZXRyaWNzXCIsXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIlxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dERhc2hib2FyZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGFzaGJvYXJkTmFtZVwiLFxuICAgICAgICAgIFwiRGFzaGJvYXJkQm9keVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXNoYm9hcmROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGFzaGJvYXJkQm9keVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXREYXNoYm9hcmRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXNoYm9hcmRWYWxpZGF0aW9uTWVzc2FnZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRhdGFQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dE1ldHJpY0FsYXJtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGFybU5hbWVcIixcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiLFxuICAgICAgICAgIFwiUGVyaW9kXCIsXG4gICAgICAgICAgXCJFdmFsdWF0aW9uUGVyaW9kc1wiLFxuICAgICAgICAgIFwiVGhyZXNob2xkXCIsXG4gICAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxhcm1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWxhcm1EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkFjdGlvbnNFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPS0FjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxhcm1BY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3VmZmljaWVudERhdGFBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJTdGF0aXN0aWNcIjoge30sXG4gICAgICAgICAgXCJFeHRlbmRlZFN0YXRpc3RpY1wiOiB7fSxcbiAgICAgICAgICBcIkRpbWVuc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5pdFwiOiB7fSxcbiAgICAgICAgICBcIkV2YWx1YXRpb25QZXJpb2RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhcG9pbnRzVG9BbGFybVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIlRyZWF0TWlzc2luZ0RhdGFcIjoge30sXG4gICAgICAgICAgXCJFdmFsdWF0ZUxvd1NhbXBsZUNvdW50UGVyY2VudGlsZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dE1ldHJpY0RhdGFcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiLFxuICAgICAgICAgIFwiTWV0cmljRGF0YVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXRpc3RpY1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIlNhbXBsZUNvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU3VtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTWluaW11bVwiLFxuICAgICAgICAgICAgICAgICAgICBcIk1heGltdW1cIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU2FtcGxlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3VtXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1pbmltdW1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTWF4aW11bVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVbml0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RvcmFnZVJlc29sdXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldEFsYXJtU3RhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFsYXJtTmFtZVwiLFxuICAgICAgICAgIFwiU3RhdGVWYWx1ZVwiLFxuICAgICAgICAgIFwiU3RhdGVSZWFzb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxhcm1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRlUmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVSZWFzb25EYXRhXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBbGFybUFyblwiOiB7fSxcbiAgICAgICAgICBcIkFsYXJtRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJBbGFybUNvbmZpZ3VyYXRpb25VcGRhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjdGlvbnNFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPS0FjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxhcm1BY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3VmZmljaWVudERhdGFBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXRlVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0ZVJlYXNvblwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRlUmVhc29uRGF0YVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRlVXBkYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGlzdGljXCI6IHt9LFxuICAgICAgICAgIFwiRXh0ZW5kZWRTdGF0aXN0aWNcIjoge30sXG4gICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVuaXRcIjoge30sXG4gICAgICAgICAgXCJFdmFsdWF0aW9uUGVyaW9kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YXBvaW50c1RvQWxhcm1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJUcmVhdE1pc3NpbmdEYXRhXCI6IHt9LFxuICAgICAgICAgIFwiRXZhbHVhdGVMb3dTYW1wbGVDb3VudFBlcmNlbnRpbGVcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJ4bWxPcmRlclwiOiBbXG4gICAgICAgICAgXCJBbGFybU5hbWVcIixcbiAgICAgICAgICBcIkFsYXJtQXJuXCIsXG4gICAgICAgICAgXCJBbGFybURlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgXCJBbGFybUNvbmZpZ3VyYXRpb25VcGRhdGVkVGltZXN0YW1wXCIsXG4gICAgICAgICAgXCJBY3Rpb25zRW5hYmxlZFwiLFxuICAgICAgICAgIFwiT0tBY3Rpb25zXCIsXG4gICAgICAgICAgXCJBbGFybUFjdGlvbnNcIixcbiAgICAgICAgICBcIkluc3VmZmljaWVudERhdGFBY3Rpb25zXCIsXG4gICAgICAgICAgXCJTdGF0ZVZhbHVlXCIsXG4gICAgICAgICAgXCJTdGF0ZVJlYXNvblwiLFxuICAgICAgICAgIFwiU3RhdGVSZWFzb25EYXRhXCIsXG4gICAgICAgICAgXCJTdGF0ZVVwZGF0ZWRUaW1lc3RhbXBcIixcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiLFxuICAgICAgICAgIFwiU3RhdGlzdGljXCIsXG4gICAgICAgICAgXCJEaW1lbnNpb25zXCIsXG4gICAgICAgICAgXCJQZXJpb2RcIixcbiAgICAgICAgICBcIlVuaXRcIixcbiAgICAgICAgICBcIkV2YWx1YXRpb25QZXJpb2RzXCIsXG4gICAgICAgICAgXCJUaHJlc2hvbGRcIixcbiAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiLFxuICAgICAgICAgIFwiRXh0ZW5kZWRTdGF0aXN0aWNcIixcbiAgICAgICAgICBcIlRyZWF0TWlzc2luZ0RhdGFcIixcbiAgICAgICAgICBcIkV2YWx1YXRlTG93U2FtcGxlQ291bnRQZXJjZW50aWxlXCIsXG4gICAgICAgICAgXCJEYXRhcG9pbnRzVG9BbGFybVwiXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzEwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwieG1sT3JkZXJcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInhtbE9yZGVyXCI6IFtcbiAgICAgICAgXCJOYW1lc3BhY2VcIixcbiAgICAgICAgXCJNZXRyaWNOYW1lXCIsXG4gICAgICAgIFwiRGltZW5zaW9uc1wiXG4gICAgICBdXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVBbGFybUhpc3RvcnlcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQWxhcm1IaXN0b3J5SXRlbXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFsYXJtc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJNZXRyaWNBbGFybXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJNZXRyaWNBbGFybXNcIlxuICAgIH0sXG4gICAgXCJMaXN0TWV0cmljc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiTWV0cmljc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIkFsYXJtRXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNSxcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQWxhcm1zXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJsZW5ndGgoTWV0cmljQWxhcm1zW10pID4gYDBgXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE3LTAxLTE3XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcIm10dXJrLXJlcXVlc3RlclwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBNVHVya1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIE1lY2hhbmljYWwgVHVya1wiLFxuICAgIFwic2VydmljZUlkXCI6IFwiTVR1cmtcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiTVR1cmtSZXF1ZXN0ZXJTZXJ2aWNlVjIwMTcwMTE3XCIsXG4gICAgXCJ1aWRcIjogXCJtdHVyay1yZXF1ZXN0ZXItMjAxNy0wMS0xN1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBY2NlcHRRdWFsaWZpY2F0aW9uUmVxdWVzdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblJlcXVlc3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICAgIFwiSW50ZWdlclZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBcHByb3ZlQXNzaWdubWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXNzaWdubWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc2lnbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlcXVlc3RlckZlZWRiYWNrXCI6IHt9LFxuICAgICAgICAgIFwiT3ZlcnJpZGVSZWplY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlUXVhbGlmaWNhdGlvbldpdGhXb3JrZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIixcbiAgICAgICAgICBcIldvcmtlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge30sXG4gICAgICAgICAgXCJXb3JrZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkludGVnZXJWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VuZE5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQWRkaXRpb25hbEFzc2lnbm1lbnRzRm9ySElUXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRJZFwiLFxuICAgICAgICAgIFwiTnVtYmVyT2ZBZGRpdGlvbmFsQXNzaWdubWVudHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUSWRcIjoge30sXG4gICAgICAgICAgXCJOdW1iZXJPZkFkZGl0aW9uYWxBc3NpZ25tZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5pcXVlUmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSElUXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaWZldGltZUluU2Vjb25kc1wiLFxuICAgICAgICAgIFwiQXNzaWdubWVudER1cmF0aW9uSW5TZWNvbmRzXCIsXG4gICAgICAgICAgXCJSZXdhcmRcIixcbiAgICAgICAgICBcIlRpdGxlXCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXhBc3NpZ25tZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0FwcHJvdmFsRGVsYXlJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpZmV0aW1lSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3NpZ25tZW50RHVyYXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJld2FyZFwiOiB7fSxcbiAgICAgICAgICBcIlRpdGxlXCI6IHt9LFxuICAgICAgICAgIFwiS2V5d29yZHNcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlF1ZXN0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyQW5ub3RhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25SZXF1aXJlbWVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5pcXVlUmVxdWVzdFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQXNzaWdubWVudFJldmlld1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJISVRSZXZpZXdQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSElUTGF5b3V0SWRcIjoge30sXG4gICAgICAgICAgXCJISVRMYXlvdXRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVISVRUeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NpZ25tZW50RHVyYXRpb25JblNlY29uZHNcIixcbiAgICAgICAgICBcIlJld2FyZFwiLFxuICAgICAgICAgIFwiVGl0bGVcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9BcHByb3ZhbERlbGF5SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3NpZ25tZW50RHVyYXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJld2FyZFwiOiB7fSxcbiAgICAgICAgICBcIlRpdGxlXCI6IHt9LFxuICAgICAgICAgIFwiS2V5d29yZHNcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25SZXF1aXJlbWVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUVHlwZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJDcmVhdGVISVRXaXRoSElUVHlwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSElUVHlwZUlkXCIsXG4gICAgICAgICAgXCJMaWZldGltZUluU2Vjb25kc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRUeXBlSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhBc3NpZ25tZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlmZXRpbWVJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1ZXN0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyQW5ub3RhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlVuaXF1ZVJlcXVlc3RUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkFzc2lnbm1lbnRSZXZpZXdQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSElUUmV2aWV3UG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhJVExheW91dElkXCI6IHt9LFxuICAgICAgICAgIFwiSElUTGF5b3V0UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUXVhbGlmaWNhdGlvblR5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZVN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiS2V5d29yZHNcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiUmV0cnlEZWxheUluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVzdFwiOiB7fSxcbiAgICAgICAgICBcIkFuc3dlcktleVwiOiB7fSxcbiAgICAgICAgICBcIlRlc3REdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0dyYW50ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9HcmFudGVkVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVXb3JrZXJCbG9ja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV29ya2VySWRcIixcbiAgICAgICAgICBcIlJlYXNvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXb3JrZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlYXNvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUhJVFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSElUSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkRlbGV0ZVF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkRlbGV0ZVdvcmtlckJsb2NrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXb3JrZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXb3JrZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlYXNvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGlzYXNzb2NpYXRlUXVhbGlmaWNhdGlvbkZyb21Xb3JrZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldvcmtlcklkXCIsXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldvcmtlcklkXCI6IHt9LFxuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlYXNvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEFjY291bnRCYWxhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJsZUJhbGFuY2VcIjoge30sXG4gICAgICAgICAgXCJPbkhvbGRCYWxhbmNlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJHZXRBc3NpZ25tZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NpZ25tZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzaWdubWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzaWdubWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSElUXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiR2V0RmlsZVVwbG9hZFVSTFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXNzaWdubWVudElkXCIsXG4gICAgICAgICAgXCJRdWVzdGlvbklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzaWdubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiUXVlc3Rpb25JZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVVwbG9hZFVSTFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiR2V0SElUXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkdldFF1YWxpZmljYXRpb25TY29yZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiLFxuICAgICAgICAgIFwiV29ya2VySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIldvcmtlcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJHZXRRdWFsaWZpY2F0aW9uVHlwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdEFzc2lnbm1lbnRzRm9ySElUXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRJZFwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzc2lnbm1lbnRTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOdW1SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3NpZ25tZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RCb251c1BheW1lbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVElkXCI6IHt9LFxuICAgICAgICAgIFwiQXNzaWdubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTnVtUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQm9udXNQYXltZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiV29ya2VySWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCb251c0Ftb3VudFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFzc2lnbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlYXNvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdyYW50VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RISVRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk51bVJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhJVHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdEhJVHNGb3JRdWFsaWZpY2F0aW9uVHlwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTnVtUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSElUc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0UXVhbGlmaWNhdGlvblJlcXVlc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOdW1SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uUmVxdWVzdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlF1YWxpZmljYXRpb25SZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiV29ya2VySWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUZXN0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQW5zd2VyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3VibWl0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RRdWFsaWZpY2F0aW9uVHlwZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk11c3RCZVJlcXVlc3RhYmxlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXJ5XCI6IHt9LFxuICAgICAgICAgIFwiTXVzdEJlUmVxdWVzdGFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11c3RCZU93bmVkQnlDYWxsZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk51bVJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RSZXZpZXdQb2xpY3lSZXN1bHRzRm9ySElUXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRJZFwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeUxldmVsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXRyaWV2ZUFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHJpZXZlUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUSWRcIjoge30sXG4gICAgICAgICAgXCJBc3NpZ25tZW50UmV2aWV3UG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhJVFJldmlld1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3NpZ25tZW50UmV2aWV3UmVwb3J0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJISVRSZXZpZXdSZXBvcnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdFJldmlld2FibGVISVRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVFR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk51bVJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhJVHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdFdvcmtlckJsb2Nrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOdW1SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXb3JrZXJCbG9ja3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIldvcmtlcklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0V29ya2Vyc1dpdGhRdWFsaWZpY2F0aW9uVHlwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTnVtUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJOb3RpZnlXb3JrZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJqZWN0XCIsXG4gICAgICAgICAgXCJNZXNzYWdlVGV4dFwiLFxuICAgICAgICAgIFwiV29ya2VySWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YmplY3RcIjoge30sXG4gICAgICAgICAgXCJNZXNzYWdlVGV4dFwiOiB7fSxcbiAgICAgICAgICBcIldvcmtlcklkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOb3RpZnlXb3JrZXJzRmFpbHVyZVN0YXR1c2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOb3RpZnlXb3JrZXJzRmFpbHVyZUNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOb3RpZnlXb3JrZXJzRmFpbHVyZU1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJXb3JrZXJJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlamVjdEFzc2lnbm1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc2lnbm1lbnRJZFwiLFxuICAgICAgICAgIFwiUmVxdWVzdGVyRmVlZGJhY2tcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzaWdubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyRmVlZGJhY2tcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlJlamVjdFF1YWxpZmljYXRpb25SZXF1ZXN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uUmVxdWVzdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25SZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgXCJSZWFzb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZW5kQm9udXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldvcmtlcklkXCIsXG4gICAgICAgICAgXCJCb251c0Ftb3VudFwiLFxuICAgICAgICAgIFwiQXNzaWdubWVudElkXCIsXG4gICAgICAgICAgXCJSZWFzb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV29ya2VySWRcIjoge30sXG4gICAgICAgICAgXCJCb251c0Ftb3VudFwiOiB7fSxcbiAgICAgICAgICBcIkFzc2lnbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlYXNvblwiOiB7fSxcbiAgICAgICAgICBcIlVuaXF1ZVJlcXVlc3RUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRUZXN0RXZlbnROb3RpZmljYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblwiLFxuICAgICAgICAgIFwiVGVzdEV2ZW50VHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOb3RpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMza1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlc3RFdmVudFR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVFeHBpcmF0aW9uRm9ySElUXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRJZFwiLFxuICAgICAgICAgIFwiRXhwaXJlQXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUSWRcIjoge30sXG4gICAgICAgICAgXCJFeHBpcmVBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlVwZGF0ZUhJVFJldmlld1N0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSElUSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUSWRcIjoge30sXG4gICAgICAgICAgXCJSZXZlcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiVXBkYXRlSElUVHlwZU9mSElUXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRJZFwiLFxuICAgICAgICAgIFwiSElUVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVElkXCI6IHt9LFxuICAgICAgICAgIFwiSElUVHlwZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJVcGRhdGVOb3RpZmljYXRpb25TZXR0aW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSElUVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVFR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWN0aXZlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlVwZGF0ZVF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiVGVzdFwiOiB7fSxcbiAgICAgICAgICBcIkFuc3dlcktleVwiOiB7fSxcbiAgICAgICAgICBcIlRlc3REdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0cnlEZWxheUluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0dyYW50ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9HcmFudGVkVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCIsXG4gICAgICAgICAgXCJDb21wYXJhdG9yXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge30sXG4gICAgICAgICAgXCJDb21wYXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiSW50ZWdlclZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhbGVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1aXJlZFRvUHJldmlld1wiOiB7XG4gICAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY3Rpb25zR3VhcmRlZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ291bnRyeVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb3VudHJ5XCI6IHt9LFxuICAgICAgICBcIlN1YmRpdmlzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUG9saWN5TmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJNYXBFbnRyaWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSElUSWRcIjoge30sXG4gICAgICAgIFwiSElUVHlwZUlkXCI6IHt9LFxuICAgICAgICBcIkhJVEdyb3VwSWRcIjoge30sXG4gICAgICAgIFwiSElUTGF5b3V0SWRcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRpdGxlXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlF1ZXN0aW9uXCI6IHt9LFxuICAgICAgICBcIktleXdvcmRzXCI6IHt9LFxuICAgICAgICBcIkhJVFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJNYXhBc3NpZ25tZW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmV3YXJkXCI6IHt9LFxuICAgICAgICBcIkF1dG9BcHByb3ZhbERlbGF5SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFzc2lnbm1lbnREdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVxdWVzdGVyQW5ub3RhdGlvblwiOiB7fSxcbiAgICAgICAgXCJRdWFsaWZpY2F0aW9uUmVxdWlyZW1lbnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICB9LFxuICAgICAgICBcIkhJVFJldmlld1N0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJOdW1iZXJPZkFzc2lnbm1lbnRzUGVuZGluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTnVtYmVyT2ZBc3NpZ25tZW50c0F2YWlsYWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTnVtYmVyT2ZBc3NpZ25tZW50c0NvbXBsZXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIktleXdvcmRzXCI6IHt9LFxuICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlRlc3RcIjoge30sXG4gICAgICAgIFwiVGVzdER1cmF0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbnN3ZXJLZXlcIjoge30sXG4gICAgICAgIFwiUmV0cnlEZWxheUluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNSZXF1ZXN0YWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXV0b0dyYW50ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkF1dG9HcmFudGVkVmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXNzaWdubWVudElkXCI6IHt9LFxuICAgICAgICBcIldvcmtlcklkXCI6IHt9LFxuICAgICAgICBcIkhJVElkXCI6IHt9LFxuICAgICAgICBcIkFzc2lnbm1lbnRTdGF0dXNcIjoge30sXG4gICAgICAgIFwiQXV0b0FwcHJvdmFsVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBY2NlcHRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN1Ym1pdFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXBwcm92YWxUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlamVjdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVhZGxpbmVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQW5zd2VyXCI6IHt9LFxuICAgICAgICBcIlJlcXVlc3RlckZlZWRiYWNrXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiOiB7fSxcbiAgICAgICAgXCJXb3JrZXJJZFwiOiB7fSxcbiAgICAgICAgXCJHcmFudFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW50ZWdlclZhbHVlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMb2NhbGVWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXZpZXdSZXN1bHRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFjdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN1YmplY3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdWJqZWN0VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJRdWVzdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXZpZXdBY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFjdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFyZ2V0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFyZ2V0VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ29tcGxldGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlc3VsdFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRGVzdGluYXRpb25cIixcbiAgICAgICAgXCJUcmFuc3BvcnRcIixcbiAgICAgICAgXCJWZXJzaW9uXCIsXG4gICAgICAgIFwiRXZlbnRUeXBlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEZXN0aW5hdGlvblwiOiB7fSxcbiAgICAgICAgXCJUcmFuc3BvcnRcIjoge30sXG4gICAgICAgIFwiVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJFdmVudFR5cGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RBc3NpZ25tZW50c0ZvckhJVFwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEJvbnVzUGF5bWVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RISVRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0SElUc0ZvclF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0UXVhbGlmaWNhdGlvblJlcXVlc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0UXVhbGlmaWNhdGlvblR5cGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0UmV2aWV3UG9saWN5UmVzdWx0c0ZvckhJVFwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiTGlzdFJldmlld2FibGVISVRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0V29ya2VyQmxvY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0V29ya2Vyc1dpdGhRdWFsaWZpY2F0aW9uVHlwZVwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCJcbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTMtMDItMThcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwib3Bzd29ya3NcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBPcHNXb3Jrc1wiLFxuICAgIFwic2VydmljZUlkXCI6IFwiT3BzV29ya3NcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiT3BzV29ya3NfMjAxMzAyMThcIixcbiAgICBcInVpZFwiOiBcIm9wc3dvcmtzLTIwMTMtMDItMThcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQXNzaWduSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIkxheWVySWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJMYXllcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NpZ25Wb2x1bWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZUVsYXN0aWNJcFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRWxhc3RpY0lwXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVsYXN0aWNJcFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdHRhY2hFbGFzdGljTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbGFzdGljTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiTGF5ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxheWVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDbG9uZVN0YWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VTdGFja0lkXCIsXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRJbnN0YW5jZVByb2ZpbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0T3NcIjoge30sXG4gICAgICAgICAgXCJIb3N0bmFtZVRoZW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdEF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0U3VibmV0SWRcIjoge30sXG4gICAgICAgICAgXCJDdXN0b21Kc29uXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbk1hbmFnZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hlZkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlQ3VzdG9tQ29va2Jvb2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VPcHN3b3Jrc1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21Db29rYm9va3NTb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVmYXVsdFNzaEtleU5hbWVcIjoge30sXG4gICAgICAgICAgXCJDbG9uZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG9uZUFwcElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWZhdWx0Um9vdERldmljZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBZ2VudFZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQXBwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCIsXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJTaG9ydG5hbWVcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJEYXRhU291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQXBwU291cmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvbWFpbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlU3NsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTc2xDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEZXBsb3ltZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCIsXG4gICAgICAgICAgXCJDb21tYW5kXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJBcHBJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxheWVySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbW1hbmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbUpzb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXBsb3ltZW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiLFxuICAgICAgICAgIFwiTGF5ZXJJZHNcIixcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiTGF5ZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSG9zdG5hbWVcIjoge30sXG4gICAgICAgICAgXCJPc1wiOiB7fSxcbiAgICAgICAgICBcIkFtaUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3NoS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJWaXJ0dWFsaXphdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkFyY2hpdGVjdHVyZVwiOiB7fSxcbiAgICAgICAgICBcIlJvb3REZXZpY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YWxsVXBkYXRlc09uQm9vdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZ2VudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJUZW5hbmN5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUxheWVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCIsXG4gICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJTaG9ydG5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2hvcnRuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21JbnN0YW5jZVByb2ZpbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJDdXN0b21Kc29uXCI6IHt9LFxuICAgICAgICAgIFwiQ3VzdG9tU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWNrYWdlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWb2x1bWVDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQXV0b0hlYWxpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9Bc3NpZ25FbGFzdGljSXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvQXNzaWduUHVibGljSXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21SZWNpcGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YWxsVXBkYXRlc09uQm9vdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlRWJzT3B0aW1pemVkSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWZlY3ljbGVFdmVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxheWVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiUmVnaW9uXCIsXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiLFxuICAgICAgICAgIFwiRGVmYXVsdEluc3RhbmNlUHJvZmlsZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdEluc3RhbmNlUHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRPc1wiOiB7fSxcbiAgICAgICAgICBcIkhvc3RuYW1lVGhlbWVcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0QXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbUpzb25cIjoge30sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uTWFuYWdlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGVmQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VDdXN0b21Db29rYm9va3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZU9wc3dvcmtzU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbUNvb2tib29rc1NvdXJjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWZhdWx0U3NoS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRSb290RGV2aWNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFnZW50VmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVVc2VyUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWFtVXNlckFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1Vc2VyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU3NoVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgXCJTc2hQdWJsaWNLZXlcIjoge30sXG4gICAgICAgICAgXCJBbGxvd1NlbGZNYW5hZ2VtZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1Vc2VyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXBwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEZWxldGVFbGFzdGljSXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGV0ZVZvbHVtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxheWVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMYXllcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxheWVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVXNlclByb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklhbVVzZXJBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtVXNlckFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJFY3NDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFY3NDbHVzdGVyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVjc0NsdXN0ZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyRWxhc3RpY0lwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbGFzdGljSXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWxhc3RpY0lwXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3Rlckluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyUmRzRGJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmRzRGJJbnN0YW5jZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZHNEYkluc3RhbmNlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3RlclZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFnZW50VmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25NYW5hZ2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFnZW50VmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb25maWd1cmF0aW9uTWFuYWdlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFwcHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkFwcElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBcHBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTaG9ydG5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYXRhU291cmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXBwU291cmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRvbWFpbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5hYmxlU3NsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTc2xDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW52aXJvbm1lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb21tYW5kc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ29tbWFuZElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21tYW5kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ29tbWFuZElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFja25vd2xlZGdlZEF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxldGVkQXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGl0Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTG9nVXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGVwbG95bWVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkFwcElkXCI6IHt9LFxuICAgICAgICAgIFwiRGVwbG95bWVudElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXBsb3ltZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFwcElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxldGVkQXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSWFtVXNlckFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21tYW5kXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkN1c3RvbUpzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVjc0NsdXN0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVjc0NsdXN0ZXJBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFY3NDbHVzdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRWNzQ2x1c3RlckFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVjc0NsdXN0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZ2lzdGVyZWRBdFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRWxhc3RpY0lwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIklwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljSXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJcFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbGFzdGljTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiTGF5ZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWxhc3RpY0xvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVsYXN0aWNMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG5zTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXllcklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRWMySW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkxheWVySWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFnZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFtaUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXJjaGl0ZWN0dXJlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFYzJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRWNzQ2x1c3RlckFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVjc0NvbnRhaW5lckluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRWxhc3RpY0lwXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSG9zdG5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbmZyYXN0cnVjdHVyZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFsbFVwZGF0ZXNPbkJvb3RcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVByb2ZpbGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0U2VydmljZUVycm9ySWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXllcklkc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBsYXRmb3JtXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJpdmF0ZURuc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByaXZhdGVJcFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlB1YmxpY0Ruc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlB1YmxpY0lwXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnaXN0ZXJlZEJ5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVwb3J0ZWRBZ2VudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXBvcnRlZE9zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJvb3REZXZpY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUm9vdERldmljZVZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTc2hIb3N0RHNhS2V5RmluZ2VycHJpbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTc2hIb3N0UnNhS2V5RmluZ2VycHJpbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTc2hLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGVuYW5jeVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZpcnR1YWxpemF0aW9uVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGF5ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJMYXllcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXllcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXllcklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTaG9ydG5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1c3RvbUluc3RhbmNlUHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkN1c3RvbUpzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDdXN0b21TZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRTZWN1cml0eUdyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGFja2FnZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuYWJsZUF1dG9IZWFsaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdXRvQXNzaWduRWxhc3RpY0lwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXV0b0Fzc2lnblB1YmxpY0lwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFJlY2lwZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1c3RvbVJlY2lwZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbGxVcGRhdGVzT25Cb290XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2VFYnNPcHRpbWl6ZWRJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxpZmVjeWNsZUV2ZW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FkQmFzZWRBdXRvU2NhbGluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGF5ZXJJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF5ZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhc2VkQXV0b1NjYWxpbmdDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXBTY2FsaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEb3duU2NhbGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM2XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNeVVzZXJQcm9maWxlXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUHJvZmlsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWFtVXNlckFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNzaFVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNzaFB1YmxpY0tleVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wZXJhdGluZ1N5c3RlbXNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb25maWd1cmF0aW9uTWFuYWdlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVwb3J0ZWROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVwb3J0ZWRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklhbVVzZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJYW1Vc2VyQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWxsb3dTc2hcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFsbG93U3Vkb1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGV2ZWxcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJhaWRBcnJheXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJSYWlkQXJyYXlJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmFpZEFycmF5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmFpZEFycmF5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJhaWRMZXZlbFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTnVtYmVyT2ZEaXNrc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGV2aWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTW91bnRQb2ludFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmRzRGJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlJkc0RiSW5zdGFuY2VBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJkc0RiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZHNEYkluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYlVzZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYlBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNaXNzaW5nT25SZHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2VydmljZUVycm9yc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNlcnZpY2VFcnJvcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlRXJyb3JzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlRXJyb3JJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0YWNrUHJvdmlzaW9uaW5nUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWdlbnRJbnN0YWxsZXJVcmxcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tTdW1tYXJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1N1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiTGF5ZXJzQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFwcHNDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VzQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkFzc2lnbmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiQm9vdGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiQ29ubmVjdGlvbkxvc3RcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkRlcmVnaXN0ZXJpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIk9ubGluZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiUGVuZGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiUmVib290aW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJSZWdpc3RlcmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJSZWdpc3RlcmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiUmVxdWVzdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJSdW5uaW5nU2V0dXBcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlNldHVwRmFpbGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJTaHV0dGluZ0Rvd25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlN0YXJ0RmFpbGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJTdG9wRmFpbGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJTdG9wcGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJTdG9wcGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiVGVybWluYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiVGVybWluYXRpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlVuYXNzaWduaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0SW5zdGFuY2VQcm9maWxlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdE9zXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSG9zdG5hbWVUaGVtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3VzdG9tSnNvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25NYW5hZ2VyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNoZWZDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzZUN1c3RvbUNvb2tib29rc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXNlT3Bzd29ya3NTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VzdG9tQ29va2Jvb2tzU291cmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRTc2hLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFJvb3REZXZpY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWdlbnRWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUaW1lQmFzZWRBdXRvU2NhbGluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGltZUJhc2VkQXV0b1NjYWxpbmdDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF1dG9TY2FsaW5nU2NoZWR1bGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0YlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVXNlclByb2ZpbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklhbVVzZXJBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQcm9maWxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWFtVXNlckFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTc2hVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNzaFB1YmxpY0tleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFsbG93U2VsZk1hbmFnZW1lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVm9sdW1lc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlJhaWRBcnJheUlkXCI6IHt9LFxuICAgICAgICAgIFwiVm9sdW1lSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRWMyVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmFpZEFycmF5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGV2aWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTW91bnRQb2ludFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hFbGFzdGljTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbGFzdGljTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiTGF5ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxheWVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVFbGFzdGljSXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVsYXN0aWNJcFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljSXBcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRIb3N0bmFtZVN1Z2dlc3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxheWVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxheWVySWRcIjoge30sXG4gICAgICAgICAgXCJIb3N0bmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdyYW50QWNjZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJWYWxpZEZvckluTWludXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcG9yYXJ5Q3JlZGVudGlhbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsaWRGb3JJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVib290SW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyRWNzQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRWNzQ2x1c3RlckFyblwiLFxuICAgICAgICAgIFwiU3RhY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFY3NDbHVzdGVyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVjc0NsdXN0ZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckVsYXN0aWNJcFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRWxhc3RpY0lwXCIsXG4gICAgICAgICAgXCJTdGFja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVsYXN0aWNJcFwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljSXBcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3Rlckluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJIb3N0bmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiUHJpdmF0ZUlwXCI6IHt9LFxuICAgICAgICAgIFwiUnNhUHVibGljS2V5XCI6IHt9LFxuICAgICAgICAgIFwiUnNhUHVibGljS2V5RmluZ2VycHJpbnRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkZW50aXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEb2N1bWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTaWduYXR1cmVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyUmRzRGJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiLFxuICAgICAgICAgIFwiUmRzRGJJbnN0YW5jZUFyblwiLFxuICAgICAgICAgIFwiRGJVc2VyXCIsXG4gICAgICAgICAgXCJEYlBhc3N3b3JkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJSZHNEYkluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGJVc2VyXCI6IHt9LFxuICAgICAgICAgIFwiRGJQYXNzd29yZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVjMlZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0TG9hZEJhc2VkQXV0b1NjYWxpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxheWVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBTY2FsaW5nXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb3duU2NhbGluZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0UGVybWlzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiLFxuICAgICAgICAgIFwiSWFtVXNlckFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiSWFtVXNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93U3NoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvd1N1ZG9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxldmVsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0VGltZUJhc2VkQXV0b1NjYWxpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nU2NoZWR1bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0SW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0U3RhY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRm9yY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW5hc3NpZ25JbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW5hc3NpZ25Wb2x1bWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFwcFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXBwSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJEYXRhU291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQXBwU291cmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvbWFpbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlU3NsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTc2xDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRWxhc3RpY0lwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbGFzdGljSXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWxhc3RpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJMYXllcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJIb3N0bmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9zXCI6IHt9LFxuICAgICAgICAgIFwiQW1pSWRcIjoge30sXG4gICAgICAgICAgXCJTc2hLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXJjaGl0ZWN0dXJlXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFsbFVwZGF0ZXNPbkJvb3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWdlbnRWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTGF5ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxheWVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTaG9ydG5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbUluc3RhbmNlUHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbUpzb25cIjoge30sXG4gICAgICAgICAgXCJDdXN0b21TZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhY2thZ2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZvbHVtZUNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVBdXRvSGVhbGluZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0Fzc2lnbkVsYXN0aWNJcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9Bc3NpZ25QdWJsaWNJcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbVJlY2lwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbGxVcGRhdGVzT25Cb290XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VFYnNPcHRpbWl6ZWRJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpZmVjeWNsZUV2ZW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTXlVc2VyUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTc2hQdWJsaWNLZXlcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSZHNEYkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZHNEYkluc3RhbmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJkc0RiSW5zdGFuY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJEYlVzZXJcIjoge30sXG4gICAgICAgICAgXCJEYlBhc3N3b3JkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU3RhY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdEluc3RhbmNlUHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRPc1wiOiB7fSxcbiAgICAgICAgICBcIkhvc3RuYW1lVGhlbWVcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0QXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbUpzb25cIjoge30sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uTWFuYWdlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGVmQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VDdXN0b21Db29rYm9va3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbUNvb2tib29rc1NvdXJjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWZhdWx0U3NoS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRSb290RGV2aWNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZU9wc3dvcmtzU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFnZW50VmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVVzZXJQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJYW1Vc2VyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklhbVVzZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJTc2hVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNzaFB1YmxpY0tleVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93U2VsZk1hbmFnZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTW91bnRQb2ludFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNYW5hZ2VCZXJrc2hlbGZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkJlcmtzaGVsZlZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiVXJsXCI6IHt9LFxuICAgICAgICBcIlVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIlBhc3N3b3JkXCI6IHt9LFxuICAgICAgICBcIlNzaEtleVwiOiB7fSxcbiAgICAgICAgXCJSZXZpc2lvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFiYXNlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2VydGlmaWNhdGVcIixcbiAgICAgICAgXCJQcml2YXRlS2V5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNlcnRpZmljYXRlXCI6IHt9LFxuICAgICAgICBcIlByaXZhdGVLZXlcIjoge30sXG4gICAgICAgIFwiQ2hhaW5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiU29cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiU2VjdXJlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJBcmdzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTm9EZXZpY2VcIjoge30sXG4gICAgICAgICAgXCJWaXJ0dWFsTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVic1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWb2x1bWVTaXplXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkxvZ1N0cmVhbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGV0aW1lRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICBcIlRpbWVab25lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkZpbGVcIjoge30sXG4gICAgICAgICAgICAgIFwiRmlsZUZpbmdlcnByaW50TGluZXNcIjoge30sXG4gICAgICAgICAgICAgIFwiTXVsdGlMaW5lU3RhcnRQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluaXRpYWxQb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFbmNvZGluZ1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJCdWZmZXJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQmF0Y2hDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQmF0Y2hTaXplXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNb3VudFBvaW50XCIsXG4gICAgICAgICAgXCJOdW1iZXJPZkRpc2tzXCIsXG4gICAgICAgICAgXCJTaXplXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1vdW50UG9pbnRcIjoge30sXG4gICAgICAgICAgXCJSYWlkTGV2ZWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk51bWJlck9mRGlza3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU2V0dXBcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29uZmlndXJlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlcGxveVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVbmRlcGxveVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaHV0ZG93blwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNodXRkb3duXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFeGVjdXRpb25UaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJEZWxheVVudGlsRWxiQ29ubmVjdGlvbnNEcmFpbmVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGhyZXNob2xkc1dhaXRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJZ25vcmVNZXRyaWNzVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3B1VGhyZXNob2xkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1lbW9yeVRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMb2FkVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsYXJtc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk1vbmRheVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0Y1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVHVlc2RheVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0Y1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiV2VkbmVzZGF5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUaHVyc2RheVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0Y1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRnJpZGF5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTYXR1cmRheVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0Y1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VuZGF5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzUwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVBcHBzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkFwcHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbW1hbmRzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNvbW1hbmRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEZXBsb3ltZW50c1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEZXBsb3ltZW50c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRWNzQ2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRWNzQ2x1c3RlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVsYXN0aWNJcHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRWxhc3RpY0lwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRWxhc3RpY0xvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRWxhc3RpY0xvYWRCYWxhbmNlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbnN0YW5jZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxheWVyc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJMYXllcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvYWRCYXNlZEF1dG9TY2FsaW5nXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkxvYWRCYXNlZEF1dG9TY2FsaW5nQ29uZmlndXJhdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBlcm1pc3Npb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSYWlkQXJyYXlzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJhaWRBcnJheXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNlcnZpY2VFcnJvcnNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU2VydmljZUVycm9yc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0YWNrc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGltZUJhc2VkQXV0b1NjYWxpbmdcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVGltZUJhc2VkQXV0b1NjYWxpbmdDb25maWd1cmF0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVXNlclByb2ZpbGVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlVzZXJQcm9maWxlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVm9sdW1lc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWb2x1bWVzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiQXBwRXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVBcHBzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiAyMDAsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiA0MDAsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkRlcGxveW1lbnRTdWNjZXNzZnVsXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlRGVwbG95bWVudHNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2FpdCB1bnRpbCBhIGRlcGxveW1lbnQgaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3VjY2Vzc2Z1bFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEZXBsb3ltZW50c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZmFpbGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRlcGxveW1lbnRzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJJbnN0YW5jZU9ubGluZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIE9wc1dvcmtzIGluc3RhbmNlIGlzIG9ubGluZS5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJvbmxpbmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzZXR1cF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzaHV0dGluZ19kb3duXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RhcnRfZmFpbGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcHBlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN0b3BwaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwidGVybWluYXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJ0ZXJtaW5hdGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJJbnN0YW5jZVJlZ2lzdGVyZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVJbnN0YW5jZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2FpdCB1bnRpbCBPcHNXb3JrcyBpbnN0YW5jZSBpcyByZWdpc3RlcmVkLlwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlZ2lzdGVyZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzZXR1cF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzaHV0dGluZ19kb3duXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcHBlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN0b3BwaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwidGVybWluYXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJ0ZXJtaW5hdGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJJbnN0YW5jZVN0b3BwZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVJbnN0YW5jZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2FpdCB1bnRpbCBPcHNXb3JrcyBpbnN0YW5jZSBpcyBzdG9wcGVkLlwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN0b3BwZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJib290aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicGVuZGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlYm9vdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlcXVlc3RlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJ1bm5pbmdfc2V0dXBcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzZXR1cF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdGFydF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdG9wX2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkluc3RhbmNlVGVybWluYXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIE9wc1dvcmtzIGluc3RhbmNlIGlzIHRlcm1pbmF0ZWQuXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwidGVybWluYXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJib290aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwib25saW5lXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicGVuZGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlYm9vdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlcXVlc3RlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJ1bm5pbmdfc2V0dXBcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzZXR1cF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdGFydF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNi0wNi0xMFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJwb2xseVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LWpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBQb2xseVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiUG9sbHlcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwicG9sbHktMjAxNi0wNi0xMFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJEZWxldGVMZXhpY29uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92MS9sZXhpY29ucy97TGV4aWNvbk5hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxleGljb25OYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWb2ljZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3YxL3ZvaWNlc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYW5ndWFnZUNvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhbmd1YWdlQ29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9pY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJHZW5kZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhbmd1YWdlQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhbmd1YWdlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRMZXhpY29uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92MS9sZXhpY29ucy97TGV4aWNvbk5hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxleGljb25OYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGV4aWNvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ29udGVudFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxleGljb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RMZXhpY29uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdjEvbGV4aWNvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMZXhpY29uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dExleGljb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3YxL2xleGljb25zL3tMZXhpY29uTmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNvbnRlbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGV4aWNvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3ludGhlc2l6ZVNwZWVjaFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdjEvc3BlZWNoXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPdXRwdXRGb3JtYXRcIixcbiAgICAgICAgICBcIlRleHRcIixcbiAgICAgICAgICBcIlZvaWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGV4aWNvbk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3V0cHV0Rm9ybWF0XCI6IHt9LFxuICAgICAgICAgIFwiU2FtcGxlUmF0ZVwiOiB7fSxcbiAgICAgICAgICBcIlNwZWVjaE1hcmtUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZXh0XCI6IHt9LFxuICAgICAgICAgIFwiVGV4dFR5cGVcIjoge30sXG4gICAgICAgICAgXCJWb2ljZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXVkaW9TdHJlYW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgICAgICAgXCJzdHJlYW1pbmdcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyYWN0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXpuLVJlcXVlc3RDaGFyYWN0ZXJzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkF1ZGlvU3RyZWFtXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWxwaGFiZXRcIjoge30sXG4gICAgICAgIFwiTGFuZ3VhZ2VDb2RlXCI6IHt9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMZXhpY29uQXJuXCI6IHt9LFxuICAgICAgICBcIkxleGVtZXNDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEzLTAxLTEwXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInJkc1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBSRFNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBSZWxhdGlvbmFsIERhdGFiYXNlIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlJEU1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJyZHMtMjAxMy0wMS0xMFwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL3Jkcy5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTAxLTEwL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkVGFnc1RvUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5REJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIixcbiAgICAgICAgICBcIkVuZ2luZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIixcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNlY3VyaXR5R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTdWJuZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCIsXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCIsXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlT3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTa2lwRmluYWxTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluYWxEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlT3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0T25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlzdFN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCRW5naW5lRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRDaGFyYWN0ZXJTZXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2hhcmFjdGVyU2V0XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkluc3RhbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJQYXJhbWV0ZXJHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCUGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNuYXBzaG90c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTbmFwc2hvdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU3VibmV0R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZURlZmF1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNNYXBMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudENhdGVnb3JpZXNNYXBcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25zTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50U3Vic2NyaXB0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE9wdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJNaW5pbXVtUmVxdWlyZWRNaW5vckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb3J0UmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25zRGVwZW5kZWRPblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cHNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk11bHRpQVpDYXBhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWFkUmVwbGljYUNhcGFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNvXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93TWFqb3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5ld0RCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTM3pcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbnNUb0luY2x1ZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbnNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5T3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHJvbW90ZVJlYWRSZXBsaWNhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlByb21vdGVSZWFkUmVwbGljYVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVib290REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGb3JjZUZhaWxvdmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVib290REJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbVJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldERCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRBbGxQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMzelwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXNldERCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzdG9yZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkN1c3RvbWVyQXdzSWRcIjoge30sXG4gICAgICAgIFwiQ3VzdFN1YnNjcmlwdGlvbklkXCI6IHt9LFxuICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJzY3JpcHRpb25DcmVhdGlvblRpbWVcIjoge30sXG4gICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VJZHNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU291cmNlSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRDYXRlZ29yeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPd25lcklkXCI6IHt9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVDMlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklQUmFuZ2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJUFJhbmdlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNJRFJJUFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdENyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIkluc3RhbmNlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmRwb2ludFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJQYXJhbWV0ZXJHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlckFwcGx5U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgIFwiUGVuZGluZ01vZGlmaWVkVmFsdWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWFkUmVwbGljYVNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWFkUmVwbGljYURCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwTWVtYmVyc2hpcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJTZWNvbmRhcnlBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTZWN1cml0eUdyb3VwXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldEdyb3VwU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN1Ym5ldElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiU3VibmV0QXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzE0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlByb3Zpc2lvbmVkSW9wc0NhcGFibGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZGVudGlmaWVyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wdGlvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvd3NWcGNBbmROb25WcGNJbnN0YW5jZU1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXREZXNjcmlwdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhcmFtZXRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5pbXVtRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5TWV0aG9kXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNvXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMzb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVjdXJyaW5nQ2hhcmdlXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlQW1vdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUZyZXF1ZW5jeVwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCRW5naW5lVmVyc2lvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCSW5zdGFuY2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEQlBhcmFtZXRlckdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiREJTZWN1cml0eUdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiREJTbmFwc2hvdHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCU3VibmV0R3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiRW5naW5lRGVmYXVsdHMuTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFbmdpbmVEZWZhdWx0cy5QYXJhbWV0ZXJzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXZlbnRTdWJzY3JpcHRpb25zTGlzdFwiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkV2ZW50c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk9wdGlvbkdyb3VwT3B0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk9wdGlvbkdyb3Vwc0xpc3RcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc2VydmVkREJJbnN0YW5jZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1wiXG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVGFnTGlzdFwiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMy0wMi0xMlwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJyZHNcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gUkRTXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gUmVsYXRpb25hbCBEYXRhYmFzZSBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJSRFNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwicmRzLTIwMTMtMDItMTJcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9yZHMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wMi0xMi9cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCIsXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZFRhZ3NUb1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDSURSSVBcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvcHlEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiLFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCIsXG4gICAgICAgICAgXCJFbmdpbmVcIixcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlBhcmFtZXRlckdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTZWN1cml0eUdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIixcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlT3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiLFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCIsXG4gICAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZU9wdGlvbkdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU2tpcEZpbmFsU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbmFsREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU9wdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpc3RTdXBwb3J0ZWRDaGFyYWN0ZXJTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJFbmdpbmVWZXJzaW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkVuZ2luZURlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJFbmdpbmVWZXJzaW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0Q2hhcmFjdGVyU2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjhcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0ZWRDaGFyYWN0ZXJTZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNoYXJhY3RlclNldFwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkluc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJJbnN0YW5jZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJMb2dGaWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGaWxlbmFtZUNvbnRhaW5zXCI6IHt9LFxuICAgICAgICAgIFwiRmlsZUxhc3RXcml0dGVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWxlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJMb2dGaWxlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaWJlREJMb2dGaWxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVzY3JpYmVEQkxvZ0ZpbGVzRGV0YWlsc1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFdyaXR0ZW5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCUGFyYW1ldGVyR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlBhcmFtZXRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU2VjdXJpdHlHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTZWN1cml0eUdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNuYXBzaG90c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTbmFwc2hvdHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU25hcHNob3RcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTdWJuZXRHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlN1Ym5ldEdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVEZWZhdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzTWFwTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRDYXRlZ29yaWVzTWFwXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFN1YnNjcmlwdGlvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBPcHRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWluaW11bVJlcXVpcmVkTWlub3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9ydFJlcXVpcmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0UG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uc0RlcGVuZGVkT25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbk5hbWVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQZXJzaXN0ZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25Hcm91cE9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE9wdGlvblNldHRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJTZXR0aW5nTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlNldHRpbmdEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cHNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk11bHRpQVpDYXBhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWFkUmVwbGljYUNhcGFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3dcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN5XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRvd25sb2FkREJMb2dGaWxlUG9ydGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTG9nRmlsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJOdW1iZXJPZkxpbmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9nRmlsZURhdGFcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsRGF0YVBlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93TWFqb3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5ld0RCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNGJcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbnNUb0luY2x1ZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblNldHRpbmdcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25zVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeU9wdGlvbkdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlByb21vdGVSZWFkUmVwbGljYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQcm9tb3RlUmVhZFJlcGxpY2FSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlYm9vdERCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRm9yY2VGYWlsb3ZlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlYm9vdERCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCIsXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXREQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc2V0QWxsUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNGJcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzZXREQlBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlJlc3RvcmVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZUxhdGVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDSURSSVBcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDdXN0b21lckF3c0lkXCI6IHt9LFxuICAgICAgICBcIkN1c3RTdWJzY3JpcHRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3Vic2NyaXB0aW9uQ3JlYXRpb25UaW1lXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgIFwiU291cmNlSWRzTGlzdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFdmVudENhdGVnb3JpZXNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNvdXJjZUlkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50Q2F0ZWdvcnlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiT3duZXJJZFwiOiB7fSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFQzJTZWN1cml0eUdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJUFJhbmdlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSVBSYW5nZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJDSURSSVBcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJJbnN0YW5jZUNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RUeXBlXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1NlY3VyaXR5R3JvdXBJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZHBvaW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlBhcmFtZXRlckdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyQXBwbHlTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJQZW5kaW5nTW9kaWZpZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiUmVhZFJlcGxpY2FEQkluc3RhbmNlSWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIlNlY29uZGFyeUF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzExXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiU3VibmV0R3JvdXBTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3VibmV0SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiUHJvdmlzaW9uZWRJb3BzQ2FwYWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldElkZW50aWZpZXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiT3B0aW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiUGVyc2lzdGVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblNldHRpbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dzVnBjQW5kTm9uVnBjSW5zdGFuY2VNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgXCJEYXRhVHlwZVwiOiB7fSxcbiAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNDb2xsZWN0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0RGVzY3JpcHRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYXJhbWV0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluaW11bUVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBcHBseU1ldGhvZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzeVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTM3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlY3VycmluZ0NoYXJnZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUFtb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VGcmVxdWVuY3lcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlREJFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEQkVuZ2luZVZlcnNpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEQkluc3RhbmNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJMb2dGaWxlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEZXNjcmliZURCTG9nRmlsZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCUGFyYW1ldGVyR3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEQlNlY3VyaXR5R3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNuYXBzaG90c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEQlNuYXBzaG90c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiREJTdWJuZXRHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJFbmdpbmVEZWZhdWx0cy5NYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkVuZ2luZURlZmF1bHRzLlBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudFN1YnNjcmlwdGlvbnNMaXN0XCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXZlbnRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiT3B0aW9uR3JvdXBPcHRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcHRpb25Hcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiT3B0aW9uR3JvdXBzTGlzdFwiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCJcbiAgICB9LFxuICAgIFwiRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTnVtYmVyT2ZMaW5lc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJBZGRpdGlvbmFsRGF0YVBlbmRpbmdcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJMb2dGaWxlRGF0YVwiXG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVGFnTGlzdFwiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMy0wOS0wOVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJyZHNcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gUkRTXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gUmVsYXRpb25hbCBEYXRhYmFzZSBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJSRFNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwicmRzLTIwMTMtMDktMDlcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9yZHMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wOS0wOS9cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCIsXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZFRhZ3NUb1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDSURSSVBcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIixcbiAgICAgICAgICBcIkVuZ2luZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIixcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTZWN1cml0eUdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlT3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiLFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCIsXG4gICAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlT3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTa2lwRmluYWxTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluYWxEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlT3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0T25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlzdFN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCRW5naW5lRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRDaGFyYWN0ZXJTZXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2hhcmFjdGVyU2V0XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkluc3RhbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkxvZ0ZpbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZpbGVuYW1lQ29udGFpbnNcIjoge30sXG4gICAgICAgICAgXCJGaWxlTGFzdFdyaXR0ZW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbGVTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkxvZ0ZpbGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpYmVEQkxvZ0ZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZXNjcmliZURCTG9nRmlsZXNEZXRhaWxzXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9nRmlsZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0V3JpdHRlblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJQYXJhbWV0ZXJHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCUGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNuYXBzaG90c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTbmFwc2hvdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU3VibmV0R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZURlZmF1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNNYXBMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudENhdGVnb3JpZXNNYXBcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25zTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50U3Vic2NyaXB0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE9wdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJNaW5pbXVtUmVxdWlyZWRNaW5vckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb3J0UmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25zRGVwZW5kZWRPblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBlcnNpc3RlbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBlcm1hbmVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uR3JvdXBPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBPcHRpb25TZXR0aW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiU2V0dGluZ05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJTZXR0aW5nRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJBcHBseVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBzTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVuZ2luZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiVnBjXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNdWx0aUFaQ2FwYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVhZFJlcGxpY2FDYXBhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQxXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEb3dubG9hZERCTG9nRmlsZVBvcnRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJMb2dGaWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTnVtYmVyT2ZMaW5lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRvd25sb2FkREJMb2dGaWxlUG9ydGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvZ0ZpbGVEYXRhXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbERhdGFQZW5kaW5nXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RUYWdzRm9yUmVzb3VyY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcGx5SW1tZWRpYXRlbHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBbGxvd01ham9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXdEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzRnXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJTdWJuZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5T3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25zVG9JbmNsdWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Db25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcGx5SW1tZWRpYXRlbHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlPcHRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQcm9tb3RlUmVhZFJlcGxpY2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHJvbW90ZVJlYWRSZXBsaWNhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlYm9vdERCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRm9yY2VGYWlsb3ZlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlYm9vdERCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCIsXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlbW92ZVNvdXJjZUlkZW50aWZpZXJGcm9tU3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXREQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc2V0QWxsUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNGdcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzZXREQlBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzdG9yZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3VzdG9tZXJBd3NJZFwiOiB7fSxcbiAgICAgICAgXCJDdXN0U3Vic2NyaXB0aW9uSWRcIjoge30sXG4gICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1YnNjcmlwdGlvbkNyZWF0aW9uVGltZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZUlkc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzTGlzdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTb3VyY2VJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudENhdGVnb3J5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk93bmVySWRcIjoge30sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJFQzJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRUMyU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSVBSYW5nZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklQUmFuZ2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ0lEUklQXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90Q3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiSW5zdGFuY2VDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiUGVyY2VudFByb2dyZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTb3VyY2VSZWdpb25cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmRwb2ludFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJQYXJhbWV0ZXJHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlckFwcGx5U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgIFwiUGVuZGluZ01vZGlmaWVkVmFsdWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWFkUmVwbGljYVNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWFkUmVwbGljYURCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJTZWNvbmRhcnlBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzSW5mb3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCSW5zdGFuY2VTdGF0dXNJbmZvXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOb3JtYWxcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJTdWJuZXRHcm91cFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldFN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQcm92aXNpb25lZElvcHNDYXBhYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0SWRlbnRpZmllclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJPcHRpb25EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQZXJzaXN0ZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQZXJtYW5lbnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93c1ZwY0FuZE5vblZwY0luc3RhbmNlTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzF2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJBcHBseVR5cGVcIjoge30sXG4gICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklzQ29sbGVjdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiVmFsdWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZhbHVlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIkNoYXJhY3RlclNldERlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFyYW1ldGVyXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlclZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJBcHBseVR5cGVcIjoge30sXG4gICAgICAgICAgXCJEYXRhVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbmltdW1FbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlNZXRob2RcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZpeGVkUHJpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXNhZ2VQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzQzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWN1cnJpbmdDaGFyZ2VcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VBbW91bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlRnJlcXVlbmN5XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0Z1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiREJJbnN0YW5jZUF2YWlsYWJsZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZURCSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImluY29tcGF0aWJsZS1yZXN0b3JlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiaW5jb21wYXRpYmxlLXBhcmFtZXRlcnNcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJpbmNvbXBhdGlibGUtcGFyYW1ldGVyc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImluY29tcGF0aWJsZS1yZXN0b3JlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiREJJbnN0YW5jZURlbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY3JlYXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJtb2RpZnlpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJyZWJvb3RpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJyZXNldHRpbmctbWFzdGVyLWNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMDktMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwicmRzXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIFJEU1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFJlbGF0aW9uYWwgRGF0YWJhc2UgU2VydmljZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiUkRTXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcInJkcy0yMDE0LTA5LTAxXCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vcmRzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTQtMDktMDEvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRUYWdzVG9SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VEQlBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJQYXJhbWV0ZXJHcm91cElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCUGFyYW1ldGVyR3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQlBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCUGFyYW1ldGVyR3JvdXBJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJQYXJhbWV0ZXJHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weURCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlEQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvcHlEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5T3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZU9wdGlvbkdyb3VwSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0T3B0aW9uR3JvdXBJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXRPcHRpb25Hcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZU9wdGlvbkdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldE9wdGlvbkdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldE9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5T3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiLFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCIsXG4gICAgICAgICAgXCJFbmdpbmVcIixcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsUGFzc3dvcmRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTZWN1cml0eUdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlT3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiLFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCIsXG4gICAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlT3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNraXBGaW5hbFNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5hbERCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlT3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0T25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlzdFN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCRW5naW5lRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRDaGFyYWN0ZXJTZXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2hhcmFjdGVyU2V0XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJJbnN0YW5jZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJMb2dGaWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGaWxlbmFtZUNvbnRhaW5zXCI6IHt9LFxuICAgICAgICAgIFwiRmlsZUxhc3RXcml0dGVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWxlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJMb2dGaWxlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaWJlREJMb2dGaWxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVzY3JpYmVEQkxvZ0ZpbGVzRGV0YWlsc1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFdyaXR0ZW5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJQYXJhbWV0ZXJHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCUGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNuYXBzaG90c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTbmFwc2hvdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU3VibmV0R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZURlZmF1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNNYXBMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudENhdGVnb3JpZXNNYXBcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25zTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50U3Vic2NyaXB0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE9wdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJNaW5pbXVtUmVxdWlyZWRNaW5vckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb3J0UmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25zRGVwZW5kZWRPblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBlcnNpc3RlbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBlcm1hbmVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uR3JvdXBPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBPcHRpb25TZXR0aW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiU2V0dGluZ05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJTZXR0aW5nRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJBcHBseVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBzTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk11bHRpQVpDYXBhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWFkUmVwbGljYUNhcGFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0c0lvcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ1XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0N1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEb3dubG9hZERCTG9nRmlsZVBvcnRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJMb2dGaWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTnVtYmVyT2ZMaW5lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRvd25sb2FkREJMb2dGaWxlUG9ydGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvZ0ZpbGVEYXRhXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbERhdGFQZW5kaW5nXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RUYWdzRm9yUmVzb3VyY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93TWFqb3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5ld0RCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGRlQ3JlZGVudGlhbFBhc3N3b3JkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzRrXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJTdWJuZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5T3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25zVG9JbmNsdWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Db25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbnNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5T3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQcm9tb3RlUmVhZFJlcGxpY2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHJvbW90ZVJlYWRSZXBsaWNhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWJvb3REQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZvcmNlRmFpbG92ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZWJvb3REQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbVJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldERCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRBbGxQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXNldERCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGRlQ3JlZGVudGlhbFBhc3N3b3JkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzdG9yZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGRlQ3JlZGVudGlhbFBhc3N3b3JkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkN1c3RvbWVyQXdzSWRcIjoge30sXG4gICAgICAgIFwiQ3VzdFN1YnNjcmlwdGlvbklkXCI6IHt9LFxuICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJzY3JpcHRpb25DcmVhdGlvblRpbWVcIjoge30sXG4gICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VJZHNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU291cmNlSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRDYXRlZ29yeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPd25lcklkXCI6IHt9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVDMlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklQUmFuZ2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJUFJhbmdlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNJRFJJUFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90Q3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiSW5zdGFuY2VDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiUGVyY2VudFByb2dyZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTb3VyY2VSZWdpb25cIjoge30sXG4gICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgIFwiVGRlQ3JlZGVudGlhbEFyblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wdGlvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBlcnNpc3RlbnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBlcm1hbmVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dzVnBjQW5kTm9uVnBjSW5zdGFuY2VNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICBcIkRhdGFUeXBlXCI6IHt9LFxuICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJc0NvbGxlY3Rpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjU2VjdXJpdHlHcm91cElkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZHBvaW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJQYXJhbWV0ZXJHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlckFwcGx5U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgIFwiUGVuZGluZ01vZGlmaWVkVmFsdWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVhZFJlcGxpY2FTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJSZWFkUmVwbGljYURCSW5zdGFuY2VJZGVudGlmaWVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVhZFJlcGxpY2FEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcHRpb25Hcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgIFwiU2Vjb25kYXJ5QXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c0luZm9zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkluc3RhbmNlU3RhdHVzSW5mb1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1R5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiTm9ybWFsXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiU3VibmV0R3JvdXBTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3VibmV0SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMXVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldElkZW50aWZpZXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmFsdWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0RGVzY3JpcHRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYXJhbWV0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluaW11bUVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBcHBseU1ldGhvZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0NVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0N1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNDdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlY3VycmluZ0NoYXJnZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUFtb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VGcmVxdWVuY3lcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6e1xuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTEwLTMxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInJkc1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBSRFNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBSZWxhdGlvbmFsIERhdGFiYXNlIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlJEU1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJyZHMtMjAxNC0xMC0zMVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL3Jkcy5hbWF6b25hd3MuY29tL2RvYy8yMDE0LTEwLTMxL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRSb2xlVG9EQkNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkVGFnc1RvUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFwcGx5UGVuZGluZ01haW50ZW5hbmNlQWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkFwcGx5QWN0aW9uXCIsXG4gICAgICAgICAgXCJPcHRJblR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlBY3Rpb25cIjoge30sXG4gICAgICAgICAgXCJPcHRJblR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhY2t0cmFja0RCQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiQmFja3RyYWNrVG9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t0cmFja1RvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VFYXJsaWVzdFRpbWVPblBvaW50SW5UaW1lVW5hdmFpbGFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQmFja3RyYWNrREJDbHVzdGVyUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weURCQ2x1c3RlclBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weURCQ2x1c3RlclBhcmFtZXRlckdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weURCQ2x1c3RlclNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlByZVNpZ25lZFVybFwiOiB7fSxcbiAgICAgICAgICBcIkNvcHlUYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5REJDbHVzdGVyU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5REJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJQYXJhbWV0ZXJHcm91cElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCUGFyYW1ldGVyR3JvdXBJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQlBhcmFtZXRlckdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlREJQYXJhbWV0ZXJHcm91cElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQlBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCUGFyYW1ldGVyR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvcHlEQlBhcmFtZXRlckdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlUYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVTaWduZWRVcmxcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VSZWdpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5T3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZU9wdGlvbkdyb3VwSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0T3B0aW9uR3JvdXBJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXRPcHRpb25Hcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZU9wdGlvbkdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldE9wdGlvbkdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldE9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5T3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJFbmdpbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YWJhc2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhdGlvblNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiUHJlU2lnbmVkVXJsXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmFja3RyYWNrV2luZG93XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVDbG91ZHdhdGNoTG9nc0V4cG9ydHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQkNsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJDbHVzdGVyU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJDbHVzdGVyU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCIsXG4gICAgICAgICAgXCJFbmdpbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGRlQ3JlZGVudGlhbFBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiU3RvcmFnZUVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgXCJDb3B5VGFnc1RvU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vbml0b3JpbmdJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9uaXRvcmluZ1JvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJEb21haW5JQU1Sb2xlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb21vdGlvblRpZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRpbWV6b25lXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlUGVyZm9ybWFuY2VJbnNpZ2h0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkNvcHlUYWdzVG9TbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9uaXRvcmluZ0ludGVydmFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb25pdG9yaW5nUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiUHJlU2lnbmVkVXJsXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlUGVyZm9ybWFuY2VJbnNpZ2h0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlRGVmYXVsdFByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VSZWdpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTZWN1cml0eUdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIixcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTdWJuZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCIsXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU9wdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIixcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIixcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiLFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZU9wdGlvbkdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU2tpcEZpbmFsU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbmFsREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJDbHVzdGVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCQ2x1c3RlclNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZURCQ2x1c3RlclNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTa2lwRmluYWxTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluYWxEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NvdW50UXVvdGFzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY2NvdW50UXVvdGFcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY2NvdW50UXVvdGFOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVXNlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2VydGlmaWNhdGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDZXJ0aWZpY2F0ZVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNlcnRpZmljYXRlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRodW1icHJpbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWxpZEZyb21cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsaWRUaWxsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJDbHVzdGVyQmFja3RyYWNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3RyYWNrSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCQ2x1c3RlckJhY2t0cmFja3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJCYWNrdHJhY2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJDbHVzdGVyQmFja3RyYWNrXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNSZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJDbHVzdGVyU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJJbmNsdWRlU2hhcmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlUHVibGljXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkNsdXN0ZXJTbmFwc2hvdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJDbHVzdGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCQ2x1c3RlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJDbHVzdGVyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpc3RTdXBwb3J0ZWRDaGFyYWN0ZXJTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaXN0U3VwcG9ydGVkVGltZXpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJFbmdpbmVWZXJzaW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkVuZ2luZURlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJFbmdpbmVWZXJzaW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0Q2hhcmFjdGVyU2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGpcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0ZWRDaGFyYWN0ZXJTZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNoYXJhY3RlclNldFwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbGlkVXBncmFkZVRhcmdldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXBncmFkZVRhcmdldFwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkF1dG9VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJc01ham9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRlZFRpbWV6b25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGltZXpvbmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJUaW1lem9uZU5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFeHBvcnRhYmxlTG9nVHlwZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRzTG9nRXhwb3J0c1RvQ2xvdWR3YXRjaExvZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRzUmVhZFJlcGxpY2FcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkluc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCSW5zdGFuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCTG9nRmlsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsZW5hbWVDb250YWluc1wiOiB7fSxcbiAgICAgICAgICBcIkZpbGVMYXN0V3JpdHRlblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCTG9nRmlsZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXNjcmliZURCTG9nRmlsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRlc2NyaWJlREJMb2dGaWxlc0RldGFpbHNcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMb2dGaWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RXcml0dGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlBhcmFtZXRlckdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTbmFwc2hvdEF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90QXR0cmlidXRlc1Jlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNuYXBzaG90c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSW5jbHVkZVNoYXJlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZVB1YmxpY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTbmFwc2hvdHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNuYXBzaG90XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU3VibmV0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTdWJuZXRHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVEZWZhdWx0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVEZWZhdWx0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc01hcExpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50Q2F0ZWdvcmllc01hcFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvbnNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRTdWJzY3JpcHRpb25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNvdXJjZUFyblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwT3B0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1pbmltdW1SZXF1aXJlZE1pbm9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvcnRSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvbnNEZXBlbmRlZE9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25OYW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uc0NvbmZsaWN0c1dpdGhcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkNvbmZsaWN0TmFtZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBlcnNpc3RlbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBlcm1hbmVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVxdWlyZXNBdXRvTWlub3JFbmdpbmVWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjT25seVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydHNPcHRpb25WZXJzaW9uRG93bmdyYWRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25Hcm91cE9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE9wdGlvblNldHRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJTZXR0aW5nTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlNldHRpbmdEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvbkdyb3VwT3B0aW9uVmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblZlcnNpb25cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiSXNEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBzTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVuZ2luZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiVnBjXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNdWx0aUFaQ2FwYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVhZFJlcGxpY2FDYXBhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRzU3RvcmFnZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydHNJb3BzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0c0VuaGFuY2VkTW9uaXRvcmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydHNJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0c1BlcmZvcm1hbmNlSW5zaWdodHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1pblN0b3JhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhTdG9yYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWluSW9wc1BlckRiSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heElvcHNQZXJEYkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNaW5Jb3BzUGVyR2liXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heElvcHNQZXJHaWJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmxlUHJvY2Vzc29yRmVhdHVyZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVBlbmRpbmdNYWludGVuYW5jZUFjdGlvbnNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZuXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2cFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNvdXJjZVJlZ2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnaW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVNvdXJjZVJlZ2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VSZWdpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTb3VyY2VSZWdpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZhbGlkREJJbnN0YW5jZU1vZGlmaWNhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZhbGlkREJJbnN0YW5jZU1vZGlmaWNhdGlvbnNNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWYWxpZFN0b3JhZ2VPcHRpb25zXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RvcmFnZVNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzRcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkSW9wc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3NFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiSW9wc1RvU3RvcmFnZVJhdGlvXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb3VibGVSYW5nZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkZyb21cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVG9cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVmFsaWRQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEb3dubG9hZERCTG9nRmlsZVBvcnRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJMb2dGaWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTnVtYmVyT2ZMaW5lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRvd25sb2FkREJMb2dGaWxlUG9ydGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvZ0ZpbGVEYXRhXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbERhdGFQZW5kaW5nXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJGYWlsb3ZlckRCQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRmFpbG92ZXJEQkNsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJOZXdEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZUlBTURhdGFiYXNlQXV0aGVudGljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJhY2t0cmFja1dpbmRvd1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xvdWR3YXRjaExvZ3NFeHBvcnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN2ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3aVwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1RvQWRkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWx1ZXNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVzUmVzdWx0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93TWFqb3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5ld0RCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGRlQ3JlZGVudGlhbFBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiQ0FDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgXCJDb3B5VGFnc1RvU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vbml0b3JpbmdJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJQb3J0TnVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vbml0b3JpbmdSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRG9tYWluSUFNUm9sZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm9tb3Rpb25UaWVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVQZXJmb3JtYW5jZUluc2lnaHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzS01TS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG91ZHdhdGNoTG9nc0V4cG9ydENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3ZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VEZWZhdWx0UHJvY2Vzc29yRmVhdHVyZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3b1wiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNUb0FkZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsdWVzVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlNuYXBzaG90QXR0cmlidXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdEF0dHJpYnV0ZXNSZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbnNUb0luY2x1ZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblNldHRpbmdcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25zVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeU9wdGlvbkdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlByb21vdGVSZWFkUmVwbGljYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQcm9tb3RlUmVhZFJlcGxpY2FSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQcm9tb3RlUmVhZFJlcGxpY2FEQkNsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVib290REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGb3JjZUZhaWxvdmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVib290REJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVJvbGVGcm9tREJDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJSb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJSb2xlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbVJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRBbGxQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3aVwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXNldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXREQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc2V0QWxsUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTN29cIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzZXREQlBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZURCQ2x1c3RlckZyb21TM1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiRW5naW5lXCIsXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCIsXG4gICAgICAgICAgXCJTb3VyY2VFbmdpbmVcIixcbiAgICAgICAgICBcIlNvdXJjZUVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiLFxuICAgICAgICAgIFwiUzNJbmdlc3Rpb25Sb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZUlBTURhdGFiYXNlQXV0aGVudGljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZUVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJTM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTM1ByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlMzSW5nZXN0aW9uUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t0cmFja1dpbmRvd1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCQ2x1c3RlckZyb21TM1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJFbmdpbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCYWNrdHJhY2tXaW5kb3dcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkNsdXN0ZXJGcm9tU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJSZXN0b3JlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJSZXN0b3JlVG9UaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZUxhdGVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCYWNrdHJhY2tXaW5kb3dcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGRlQ3JlZGVudGlhbFBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiRG9tYWluXCI6IHt9LFxuICAgICAgICAgIFwiQ29weVRhZ3NUb1NuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb21haW5JQU1Sb2xlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZUlBTURhdGFiYXNlQXV0aGVudGljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvY2Vzc29yRmVhdHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZURlZmF1bHRQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZUZyb21TM1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiLFxuICAgICAgICAgIFwiRW5naW5lXCIsXG4gICAgICAgICAgXCJTb3VyY2VFbmdpbmVcIixcbiAgICAgICAgICBcIlNvdXJjZUVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiLFxuICAgICAgICAgIFwiUzNJbmdlc3Rpb25Sb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0b3JhZ2VFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ29weVRhZ3NUb1NuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb25pdG9yaW5nSW50ZXJ2YWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vbml0b3JpbmdSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiUzNJbmdlc3Rpb25Sb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlUGVyZm9ybWFuY2VJbnNpZ2h0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlRGVmYXVsdFByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCSW5zdGFuY2VGcm9tUzNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzdG9yZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvcHlUYWdzVG9TbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgXCJEb21haW5JQU1Sb2xlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZUlBTURhdGFiYXNlQXV0aGVudGljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvY2Vzc29yRmVhdHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZURlZmF1bHRQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydERCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlN0YXJ0REJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlN0b3BEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDdXN0b21lckF3c0lkXCI6IHt9LFxuICAgICAgICBcIkN1c3RTdWJzY3JpcHRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3Vic2NyaXB0aW9uQ3JlYXRpb25UaW1lXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgIFwiU291cmNlSWRzTGlzdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFdmVudENhdGVnb3JpZXNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uQXJuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNvdXJjZUlkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50Q2F0ZWdvcnlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVzb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlBlbmRpbmdNYWludGVuYW5jZUFjdGlvbkRldGFpbHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBlbmRpbmdNYWludGVuYW5jZUFjdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBdXRvQXBwbGllZEFmdGVyRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJGb3JjZWRBcHBseURhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3B0SW5TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3VycmVudEFwcGx5RGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPd25lcklkXCI6IHt9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVDMlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklQUmFuZ2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJUFJhbmdlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNJRFJJUFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBBcm5cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJCYWNrdHJhY2tJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkJhY2t0cmFja1RvXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJhY2t0cmFja2VkRnJvbVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJCYWNrdHJhY2tSZXF1ZXN0Q3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBBcm5cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiQ2x1c3RlckNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RUeXBlXCI6IHt9LFxuICAgICAgICBcIlBlcmNlbnRQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RvcmFnZUVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RBcm5cIjoge30sXG4gICAgICAgIFwiU291cmNlREJDbHVzdGVyU25hcHNob3RBcm5cIjoge30sXG4gICAgICAgIFwiSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEFyblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJJbnN0YW5jZUNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RUeXBlXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQZXJjZW50UHJvZ3Jlc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9LFxuICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgIFwiREJTbmFwc2hvdEFyblwiOiB7fSxcbiAgICAgICAgXCJUaW1lem9uZVwiOiB7fSxcbiAgICAgICAgXCJJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvY2Vzc29yRmVhdHVyZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQcm9jZXNzb3JGZWF0dXJlXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wdGlvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBlcnNpc3RlbnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBlcm1hbmVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3B0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93c1ZwY0FuZE5vblZwY0luc3RhbmNlTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwQXJuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJBcHBseVR5cGVcIjoge30sXG4gICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklzQ29sbGVjdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjU2VjdXJpdHlHcm91cElkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIkRhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwXCI6IHt9LFxuICAgICAgICBcIkRCU3VibmV0R3JvdXBcIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlBlcmNlbnRQcm9ncmVzc1wiOiB7fSxcbiAgICAgICAgXCJFYXJsaWVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZHBvaW50XCI6IHt9LFxuICAgICAgICBcIlJlYWRlckVuZHBvaW50XCI6IHt9LFxuICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkxhdGVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkRCQ2x1c3Rlck9wdGlvbkdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCQ2x1c3Rlck9wdGlvbkdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiREJDbHVzdGVyT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgIFwiUmVwbGljYXRpb25Tb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhSWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlYWRSZXBsaWNhSWRlbnRpZmllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkRCQ2x1c3Rlck1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCQ2x1c3Rlck1lbWJlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIklzQ2x1c3RlcldyaXRlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJvbW90aW9uVGllclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICBcIlN0b3JhZ2VFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICBcIkRiQ2x1c3RlclJlc291cmNlSWRcIjoge30sXG4gICAgICAgIFwiREJDbHVzdGVyQXJuXCI6IHt9LFxuICAgICAgICBcIkFzc29jaWF0ZWRSb2xlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJDbHVzdGVyUm9sZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklBTURhdGFiYXNlQXV0aGVudGljYXRpb25FbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbG9uZUdyb3VwSWRcIjoge30sXG4gICAgICAgIFwiQ2x1c3RlckNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRWFybGllc3RCYWNrdHJhY2tUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJhY2t0cmFja1dpbmRvd1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQmFja3RyYWNrQ29uc3VtZWRDaGFuZ2VSZWNvcmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmFibGVkQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmRwb2ludFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCUGFyYW1ldGVyR3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJBcHBseVN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIkRCU3VibmV0R3JvdXBcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjhcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICBcIlBlbmRpbmdNb2RpZmllZFZhbHVlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgICBcIkNBQ2VydGlmaWNhdGVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiUGVuZGluZ0Nsb3Vkd2F0Y2hMb2dzRXhwb3J0c1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9nVHlwZXNUb0VuYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTG9nVHlwZXNUb0Rpc2FibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWFkUmVwbGljYVNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWFkUmVwbGljYURCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVhZFJlcGxpY2FEQkNsdXN0ZXJJZGVudGlmaWVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVhZFJlcGxpY2FEQkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJTZWNvbmRhcnlBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzSW5mb3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCSW5zdGFuY2VTdGF0dXNJbmZvXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOb3JtYWxcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9LFxuICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgIFwiRGJJbnN0YW5jZVBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU3RvcmFnZUVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgIFwiRGJpUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgXCJDQUNlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEb21haW5NZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9tYWluTWVtYmVyc2hpcFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRvbWFpblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiRlFETlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJQU1Sb2xlTmFtZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDb3B5VGFnc1RvU25hcHNob3RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk1vbml0b3JpbmdJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5oYW5jZWRNb25pdG9yaW5nUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgIFwiTW9uaXRvcmluZ1JvbGVBcm5cIjoge30sXG4gICAgICAgIFwiUHJvbW90aW9uVGllclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiREJJbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgXCJUaW1lem9uZVwiOiB7fSxcbiAgICAgICAgXCJJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGVyZm9ybWFuY2VJbnNpZ2h0c0VuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlBlcmZvcm1hbmNlSW5zaWdodHNLTVNLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmFibGVkQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMjhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJTdWJuZXRHcm91cFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldFN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwQXJuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzJiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzJ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZGVudGlmaWVyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiVmFsdWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZhbHVlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYXJhbWV0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluaW11bUVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBcHBseU1ldGhvZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0NVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkF0dHJpYnV0ZVZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNDhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF0dHJpYnV0ZVZhbHVlXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIkNoYXJhY3RlclNldERlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1NlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJTbmFwc2hvdEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU25hcHNob3RBdHRyaWJ1dGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkF0dHJpYnV0ZVZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM1aFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNmZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF2YWlsYWJsZVByb2Nlc3NvckZlYXR1cmVcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2blwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2cFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlQXJuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzZwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWN1cnJpbmdDaGFyZ2VcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VBbW91bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlRnJlcXVlbmN5XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3NFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmFuZ2VcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGcm9tXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RlcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVMb2dUeXBlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGlzYWJsZUxvZ1R5cGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN29cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIkRCSW5zdGFuY2VBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhdmFpbGFibGVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJmYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJpbmNvbXBhdGlibGUtcmVzdG9yZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImluY29tcGF0aWJsZS1wYXJhbWV0ZXJzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiREJJbnN0YW5jZURlbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiREJJbnN0YW5jZU5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY3JlYXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJtb2RpZnlpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJyZWJvb3RpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJyZXNldHRpbmctbWFzdGVyLWNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiREJTbmFwc2hvdEF2YWlsYWJsZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZURCU25hcHNob3RzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJTbmFwc2hvdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiaW5jb21wYXRpYmxlLXJlc3RvcmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJTbmFwc2hvdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImluY29tcGF0aWJsZS1wYXJhbWV0ZXJzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJEQlNuYXBzaG90RGVsZXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZURCU25hcHNob3RzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJTbmFwc2hvdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkRCU25hcHNob3ROb3RGb3VuZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImNyZWF0aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJtb2RpZnlpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJTbmFwc2hvdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlYm9vdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicmVzZXR0aW5nLW1hc3Rlci1jcmVkZW50aWFsc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTItMTItMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwicmVkc2hpZnRcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBSZWRzaGlmdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiUmVkc2hpZnRcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwicmVkc2hpZnQtMjAxMi0xMi0wMVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL3JlZHNoaWZ0LmFtYXpvbmF3cy5jb20vZG9jLzIwMTItMTItMDEvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFjY2VwdFJlc2VydmVkTm9kZUV4Y2hhbmdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVJZFwiLFxuICAgICAgICAgIFwiVGFyZ2V0UmVzZXJ2ZWROb2RlT2ZmZXJpbmdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldFJlc2VydmVkTm9kZU9mZmVyaW5nSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQWNjZXB0UmVzZXJ2ZWROb2RlRXhjaGFuZ2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeGNoYW5nZWRSZXNlcnZlZE5vZGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXV0aG9yaXplQ2x1c3RlclNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBdXRob3JpemVDbHVzdGVyU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdXRob3JpemVTbmFwc2hvdEFjY2Vzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJBY2NvdW50V2l0aFJlc3RvcmVBY2Nlc3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFjY291bnRXaXRoUmVzdG9yZUFjY2Vzc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBdXRob3JpemVTbmFwc2hvdEFjY2Vzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlDbHVzdGVyU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZVNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0U25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVNuYXBzaG90Q2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weUNsdXN0ZXJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJOb2RlVHlwZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIixcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b21hdGVkU25hcHNob3RSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsdXN0ZXJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTnVtYmVyT2ZOb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkhzbUNvbmZpZ3VyYXRpb25JZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRWxhc3RpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkVuaGFuY2VkVnBjUm91dGluZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbEluZm9cIjoge30sXG4gICAgICAgICAgXCJJYW1Sb2xlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cEZhbWlseVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNsdXN0ZXJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2x1c3RlclNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVDbHVzdGVyU2VjdXJpdHlHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNsdXN0ZXJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNsdXN0ZXJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlclN1Ym5ldEdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIixcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNsdXN0ZXJTdWJuZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2V2ZXJpdHlcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVIc21DbGllbnRDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUhzbUNsaWVudENlcnRpZmljYXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUhzbUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhzbUNvbmZpZ3VyYXRpb25JZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiLFxuICAgICAgICAgIFwiSHNtSXBBZGRyZXNzXCIsXG4gICAgICAgICAgXCJIc21QYXJ0aXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJIc21QYXJ0aXRpb25QYXNzd29yZFwiLFxuICAgICAgICAgIFwiSHNtU2VydmVyUHVibGljQ2VydGlmaWNhdGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQ29uZmlndXJhdGlvbklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkhzbUlwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIkhzbVBhcnRpdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJIc21QYXJ0aXRpb25QYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkhzbVNlcnZlclB1YmxpY0NlcnRpZmljYXRlXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlSHNtQ29uZmlndXJhdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhzbUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVNuYXBzaG90Q29weUdyYW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTbmFwc2hvdENvcHlHcmFudE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RDb3B5R3JhbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVTbmFwc2hvdENvcHlHcmFudFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90Q29weUdyYW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNraXBGaW5hbENsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluYWxDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUNsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDbHVzdGVyU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90Q2x1c3RlcklkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlQ2x1c3RlclNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2x1c3RlclN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSHNtQ2xpZW50Q2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21DbGllbnRDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVIc21Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIc21Db25maWd1cmF0aW9uSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21Db25maWd1cmF0aW9uSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNuYXBzaG90Q29weUdyYW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTbmFwc2hvdENvcHlHcmFudE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RDb3B5R3JhbnROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlckRiUmV2aXNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2x1c3RlckRiUmV2aXNpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlckRiUmV2aXNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbHVzdGVyRGJSZXZpc2lvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVudERhdGFiYXNlUmV2aXNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYXRhYmFzZVJldmlzaW9uUmVsZWFzZURhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmV2aXNpb25UYXJnZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXZpc2lvblRhcmdldFwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkRhdGFiYXNlUmV2aXNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRhdGFiYXNlUmV2aXNpb25SZWxlYXNlRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDbHVzdGVyUGFyYW1ldGVyR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDbHVzdGVyUGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2x1c3RlclNlY3VyaXR5R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJPd25lckFjY291bnRcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsdXN0ZXJFeGlzdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNsdXN0ZXJTbmFwc2hvdHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTbmFwc2hvdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDbHVzdGVyU3VibmV0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbHVzdGVyU3VibmV0R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNsdXN0ZXJWZXJzaW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2x1c3RlclZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDbHVzdGVyVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNsdXN0ZXJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2x1c3RlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbHVzdGVyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwRmFtaWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzTWFwTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRDYXRlZ29yaWVzTWFwXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRJbmZvTWFwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRXZlbnREZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlNldmVyaXR5XCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvbnNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50U3Vic2NyaXB0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2V2ZXJpdHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50SWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUhzbUNsaWVudENlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21DbGllbnRDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUhzbUNsaWVudENlcnRpZmljYXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjhcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIc21DbGllbnRDZXJ0aWZpY2F0ZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSHNtQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQ29uZmlndXJhdGlvbklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUhzbUNvbmZpZ3VyYXRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSHNtQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSHNtQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9nZ2luZ1N0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0Y1wiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxvZ2dpbmdTdGF0dXNSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9yZGVyYWJsZUNsdXN0ZXJPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcmRlcmFibGVDbHVzdGVyT3B0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9yZGVyYWJsZUNsdXN0ZXJPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcmRlcmFibGVDbHVzdGVyT3B0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ2x1c3RlclZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDbHVzdGVyVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkTm9kZU9mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVzZXJ2ZWROb2RlT2ZmZXJpbmdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkTm9kZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZE5vZGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWROb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkTm9kZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzaXplXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2l6ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldE5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0TnVtYmVyT2ZOb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0Q2x1c3RlclR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJJbXBvcnRUYWJsZXNDb21wbGV0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW1wb3J0VGFibGVzSW5Qcm9ncmVzc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbXBvcnRUYWJsZXNOb3RTdGFydGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2Z1Jlc2l6ZVJhdGVJbk1lZ2FCeXRlc1BlclNlY29uZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb3RhbFJlc2l6ZURhdGFJbk1lZ2FCeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZ3Jlc3NJbk1lZ2FCeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWxhcHNlZFRpbWVJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVzdGltYXRlZFRpbWVUb0NvbXBsZXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU25hcHNob3RDb3B5R3JhbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90Q29weUdyYW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU25hcHNob3RDb3B5R3JhbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RDb3B5R3JhbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNuYXBzaG90Q29weUdyYW50XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWJsZVJlc3RvcmVTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYWJsZVJlc3RvcmVSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVUYWJsZVJlc3RvcmVTdGF0dXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZVJlc3RvcmVTdGF0dXNEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1MlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhYmxlUmVzdG9yZVN0YXR1c1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVRhZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdnZWRSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ2dlZFJlc291cmNlXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGFnXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVMb2dnaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRpc2FibGVMb2dnaW5nUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZVNuYXBzaG90Q29weVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGlzYWJsZVNuYXBzaG90Q29weVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZUxvZ2dpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJCdWNrZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzS2V5UHJlZml4XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNGNcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRW5hYmxlTG9nZ2luZ1Jlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZVNuYXBzaG90Q29weVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uUmVnaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25SZWdpb25cIjoge30sXG4gICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90Q29weUdyYW50TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJFbmFibGVTbmFwc2hvdENvcHlSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDbHVzdGVyQ3JlZGVudGlhbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRiVXNlclwiLFxuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGJVc2VyXCI6IHt9LFxuICAgICAgICAgIFwiRGJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9DcmVhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRiR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEYkdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldENsdXN0ZXJDcmVkZW50aWFsc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRiVXNlclwiOiB7fSxcbiAgICAgICAgICBcIkRiUGFzc3dvcmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVzZXJ2ZWROb2RlRXhjaGFuZ2VPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkTm9kZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkTm9kZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFJlc2VydmVkTm9kZUV4Y2hhbmdlT2ZmZXJpbmdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJOdW1iZXJPZk5vZGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b21hdGVkU25hcHNob3RSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBbGxvd1ZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIc21DbGllbnRDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJIc21Db25maWd1cmF0aW9uSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk5ld0NsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbGFzdGljSXBcIjoge30sXG4gICAgICAgICAgXCJFbmhhbmNlZFZwY1JvdXRpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlDbHVzdGVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5Q2x1c3RlckRiUmV2aXNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJSZXZpc2lvblRhcmdldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlJldmlzaW9uVGFyZ2V0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUNsdXN0ZXJEYlJldmlzaW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5Q2x1c3RlcklhbVJvbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFkZElhbVJvbGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlbW92ZUlhbVJvbGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlDbHVzdGVySWFtUm9sZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1clwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlDbHVzdGVyUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlDbHVzdGVyU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlDbHVzdGVyU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2V2ZXJpdHlcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5U25hcHNob3RDb3B5UmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5U25hcHNob3RDb3B5UmV0ZW50aW9uUGVyaW9kUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVyY2hhc2VSZXNlcnZlZE5vZGVPZmZlcmluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlT2ZmZXJpbmdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHVyY2hhc2VSZXNlcnZlZE5vZGVPZmZlcmluZ1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkTm9kZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWJvb3RDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZWJvb3RDbHVzdGVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXRDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXNldEFsbFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVyXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc2V0Q2x1c3RlclBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZUZyb21DbHVzdGVyU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdENsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93VmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk93bmVyQWNjb3VudFwiOiB7fSxcbiAgICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkhzbUNvbmZpZ3VyYXRpb25JZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRWxhc3RpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiQXV0b21hdGVkU25hcHNob3RSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFbmhhbmNlZFZwY1JvdXRpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkZGl0aW9uYWxJbmZvXCI6IHt9LFxuICAgICAgICAgIFwiSWFtUm9sZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVGcm9tQ2x1c3RlclNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZVRhYmxlRnJvbUNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiU291cmNlRGF0YWJhc2VOYW1lXCIsXG4gICAgICAgICAgXCJTb3VyY2VUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIk5ld1RhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZURhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVNjaGVtYU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREYXRhYmFzZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRTY2hlbWFOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV3VGFibGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVUYWJsZUZyb21DbHVzdGVyU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZVJlc3RvcmVTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1MlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZUNsdXN0ZXJTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmV2b2tlQ2x1c3RlclNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV2b2tlU25hcHNob3RBY2Nlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiQWNjb3VudFdpdGhSZXN0b3JlQWNjZXNzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90Q2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBY2NvdW50V2l0aFJlc3RvcmVBY2Nlc3NcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmV2b2tlU25hcHNob3RBY2Nlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSb3RhdGVFbmNyeXB0aW9uS2V5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSb3RhdGVFbmNyeXB0aW9uS2V5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXNlcnZlZE5vZGVJZFwiOiB7fSxcbiAgICAgICAgXCJSZXNlcnZlZE5vZGVPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICBcIk5vZGVUeXBlXCI6IHt9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgXCJOb2RlQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlc2VydmVkTm9kZU9mZmVyaW5nVHlwZVwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWN1cnJpbmdDaGFyZ2VcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VBbW91bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlRnJlcXVlbmN5XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVDMlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJUFJhbmdlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSVBSYW5nZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJDSURSSVBcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2hcIixcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIkNsdXN0ZXJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkNsdXN0ZXJWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgXCJOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJOdW1iZXJPZk5vZGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJFbmNyeXB0ZWRXaXRoSFNNXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBY2NvdW50c1dpdGhSZXN0b3JlQWNjZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY2NvdW50V2l0aFJlc3RvcmVBY2Nlc3NcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQWNjb3VudEFsaWFzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk93bmVyQWNjb3VudFwiOiB7fSxcbiAgICAgICAgXCJUb3RhbEJhY2t1cFNpemVJbk1lZ2FCeXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBY3R1YWxJbmNyZW1lbnRhbEJhY2t1cFNpemVJbk1lZ2FCeXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJCYWNrdXBQcm9ncmVzc0luTWVnYUJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1cnJlbnRCYWNrdXBSYXRlSW5NZWdhQnl0ZXNQZXJTZWNvbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXN0aW1hdGVkU2Vjb25kc1RvQ29tcGxldGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRWxhcHNlZFRpbWVJblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlc3RvcmFibGVOb2RlVHlwZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5vZGVUeXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5oYW5jZWRWcGNSb3V0aW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbHVzdGVyU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjU2VjdXJpdHlHcm91cElkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklhbVJvbGVBcm5cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIk5vZGVUeXBlXCI6IHt9LFxuICAgICAgICBcIkNsdXN0ZXJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTW9kaWZ5U3RhdHVzXCI6IHt9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmRwb2ludFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDbHVzdGVyQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdXRvbWF0ZWRTbmFwc2hvdFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbHVzdGVyU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1NlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJBcHBseVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJDbHVzdGVyUGFyYW1ldGVyU3RhdHVzTGlzdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlBhcmFtZXRlckFwcGx5U3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlBhcmFtZXRlckFwcGx5RXJyb3JEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgIFwiUGVuZGluZ01vZGlmaWVkVmFsdWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgICBcIk5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJOdW1iZXJPZk5vZGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDbHVzdGVyVHlwZVwiOiB7fSxcbiAgICAgICAgICAgIFwiQ2x1c3RlclZlcnNpb25cIjoge30sXG4gICAgICAgICAgICBcIkF1dG9tYXRlZFNuYXBzaG90UmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFbmhhbmNlZFZwY1JvdXRpbmdcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2x1c3RlclZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQWxsb3dWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTnVtYmVyT2ZOb2Rlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlc3RvcmVTdGF0dXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgIFwiQ3VycmVudFJlc3RvcmVSYXRlSW5NZWdhQnl0ZXNQZXJTZWNvbmRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU25hcHNob3RTaXplSW5NZWdhQnl0ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlByb2dyZXNzSW5NZWdhQnl0ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVsYXBzZWRUaW1lSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFc3RpbWF0ZWRUaW1lVG9Db21wbGV0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkhzbVN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgXCJIc21Db25maWd1cmF0aW9uSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNsdXN0ZXJTbmFwc2hvdENvcHlTdGF0dXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRlc3RpbmF0aW9uUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNuYXBzaG90Q29weUdyYW50TmFtZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDbHVzdGVyUHVibGljS2V5XCI6IHt9LFxuICAgICAgICBcIkNsdXN0ZXJOb2Rlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOb2RlUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcml2YXRlSVBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlB1YmxpY0lQQWRkcmVzc1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFbGFzdGljSXBTdGF0dXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVsYXN0aWNJcFwiOiB7fSxcbiAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNsdXN0ZXJSZXZpc2lvbk51bWJlclwiOiB7fSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9LFxuICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICBcIkVuaGFuY2VkVnBjUm91dGluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWFtUm9sZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJJYW1Sb2xlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWFtUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBcHBseVN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQZW5kaW5nQWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzF0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZGVudGlmaWVyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldEdyb3VwU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN1Ym5ldElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiU3VibmV0QXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMXlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiU3VwcG9ydGVkUGxhdGZvcm1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdXBwb3J0ZWRQbGF0Zm9ybVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU291cmNlSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50Q2F0ZWdvcnlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkN1c3RvbWVyQXdzSWRcIjoge30sXG4gICAgICAgIFwiQ3VzdFN1YnNjcmlwdGlvbklkXCI6IHt9LFxuICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJzY3JpcHRpb25DcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VJZHNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFdmVudENhdGVnb3JpZXNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzI4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJIc21DbGllbnRDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVQdWJsaWNLZXlcIjoge30sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSHNtQ29uZmlndXJhdGlvbklkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiSHNtSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICBcIkhzbVBhcnRpdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU25hcHNob3RDb3B5R3JhbnROYW1lXCI6IHt9LFxuICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ0tleVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnVmFsdWVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhcmFtZXRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5pbXVtRW5naW5lVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0Y1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTG9nZ2luZ0VuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkJ1Y2tldE5hbWVcIjoge30sXG4gICAgICAgIFwiUzNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgIFwiTGFzdFN1Y2Nlc3NmdWxEZWxpdmVyeVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdEZhaWx1cmVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RGYWlsdXJlTWVzc2FnZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkTm9kZU9mZmVyaW5nXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIk5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpeGVkUHJpY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNhZ2VQcmljZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2VydmVkTm9kZU9mZmVyaW5nVHlwZVwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhYmxlUmVzdG9yZVJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJSZXF1ZXN0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9ncmVzc0luTWVnYUJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUb3RhbERhdGFJbk1lZ2FCeXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZURhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VTY2hlbWFOYW1lXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZVRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUYXJnZXREYXRhYmFzZU5hbWVcIjoge30sXG4gICAgICAgIFwiVGFyZ2V0U2NoZW1hTmFtZVwiOiB7fSxcbiAgICAgICAgXCJOZXdUYWJsZU5hbWVcIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQYXJhbWV0ZXJHcm91cFN0YXR1c1wiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJQYXJhbWV0ZXJHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDbHVzdGVyU2VjdXJpdHlHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU25hcHNob3RzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDbHVzdGVyU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNsdXN0ZXJTdWJuZXRHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDbHVzdGVyVmVyc2lvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNsdXN0ZXJzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkRlZmF1bHRDbHVzdGVyUGFyYW1ldGVycy5NYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRlZmF1bHRDbHVzdGVyUGFyYW1ldGVycy5QYXJhbWV0ZXJzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXZlbnRTdWJzY3JpcHRpb25zTGlzdFwiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkV2ZW50c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSHNtQ2xpZW50Q2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkhzbUNsaWVudENlcnRpZmljYXRlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSHNtQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSHNtQ29uZmlndXJhdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9yZGVyYWJsZUNsdXN0ZXJPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk9yZGVyYWJsZUNsdXN0ZXJPcHRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZE5vZGVPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWROb2RlT2ZmZXJpbmdzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZE5vZGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc2VydmVkTm9kZXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJDbHVzdGVyQXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNjAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ2x1c3RlcnNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMzAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXJzW10uQ2x1c3RlclN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ2x1c3RlcnNbXS5DbHVzdGVyU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDbHVzdGVyTm90Rm91bmRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiQ2x1c3RlckRlbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiA2MCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDbHVzdGVyc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAzMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDbHVzdGVyTm90Rm91bmRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjcmVhdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDbHVzdGVyc1tdLkNsdXN0ZXJTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIm1vZGlmeWluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDbHVzdGVyc1tdLkNsdXN0ZXJTdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkNsdXN0ZXJSZXN0b3JlZFwiOiB7XG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ2x1c3RlcnNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMzAsXG4gICAgICBcImRlbGF5XCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXJzW10uUmVzdG9yZVN0YXR1cy5TdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY29tcGxldGVkXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDbHVzdGVyc1tdLkNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRpbmdcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlNuYXBzaG90QXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ2x1c3RlclNuYXBzaG90c1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAyMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhdmFpbGFibGVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJmYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTYtMDYtMjdcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwicmVrb2duaXRpb25cIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBSZWtvZ25pdGlvblwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiUmVrb2duaXRpb25cIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiUmVrb2duaXRpb25TZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJyZWtvZ25pdGlvbi0yMDE2LTA2LTI3XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNvbXBhcmVGYWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlSW1hZ2VcIixcbiAgICAgICAgICBcIlRhcmdldEltYWdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZUltYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldEltYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNpbWlsYXJpdHlUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VJbWFnZUZhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkJvdW5kaW5nQm94XCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWNlTWF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU2ltaWxhcml0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZhY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5tYXRjaGVkRmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VJbWFnZU9yaWVudGF0aW9uQ29ycmVjdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEltYWdlT3JpZW50YXRpb25Db3JyZWN0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ29sbGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXR1c0NvZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbGxlY3Rpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJGYWNlTW9kZWxWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RyZWFtUHJvY2Vzc29yXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnB1dFwiLFxuICAgICAgICAgIFwiT3V0cHV0XCIsXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJTZXR0aW5nc1wiLFxuICAgICAgICAgIFwiUm9sZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnB1dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtUHJvY2Vzc29yQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29sbGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXR1c0NvZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZhY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIixcbiAgICAgICAgICBcIkZhY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiRmFjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZXRlZEZhY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdHJlYW1Qcm9jZXNzb3JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RyZWFtUHJvY2Vzc29yXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RyZWFtUHJvY2Vzc29yQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0aW9uVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RVcGRhdGVUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5wdXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3V0cHV0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJTZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0ZWN0RmFjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkltYWdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZhY2VEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yaWVudGF0aW9uQ29ycmVjdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGVjdExhYmVsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW1hZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4TGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5Db25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yaWVudGF0aW9uQ29ycmVjdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGVjdE1vZGVyYXRpb25MYWJlbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkltYWdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNb2RlcmF0aW9uTGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGVjdFRleHRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkltYWdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRleHREZXRlY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXRlY3RlZFRleHRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBhcmVudElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiR2VvbWV0cnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkJvdW5kaW5nQm94XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlBvbHlnb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiWFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIllcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDZWxlYnJpdHlJbmZvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVybHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDZWxlYnJpdHlSZWNvZ25pdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTb3J0QnlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiVmlkZW9NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQ2VsZWJyaXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2VsZWJyaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJVcmxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJCb3VuZGluZ0JveFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJGYWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb250ZW50TW9kZXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTb3J0QnlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiVmlkZW9NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9kZXJhdGlvbkxhYmVsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNb2RlcmF0aW9uTGFiZWxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZhY2VEZXRlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIlZpZGVvTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkZhY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZhY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZhY2VTZWFyY2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiU29ydEJ5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlZpZGVvTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBlcnNvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVyc29uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2ZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGYWNlTWF0Y2hlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNoXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TGFiZWxEZXRlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiU29ydEJ5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIlZpZGVvTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxhYmVsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYWJlbFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UGVyc29uVHJhY2tpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiU29ydEJ5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIlZpZGVvTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlBlcnNvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVyc29uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2ZcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbmRleEZhY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIixcbiAgICAgICAgICBcIkltYWdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkltYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4dGVybmFsSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRldGVjdGlvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZhY2VSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJGYWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2pcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGYWNlRGV0YWlsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcmllbnRhdGlvbkNvcnJlY3Rpb25cIjoge30sXG4gICAgICAgICAgXCJGYWNlTW9kZWxWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENvbGxlY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRmFjZU1vZGVsVmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEZhY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNqXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRmFjZU1vZGVsVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1Qcm9jZXNzb3JzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlN0cmVhbVByb2Nlc3NvcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWNvZ25pemVDZWxlYnJpdGllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW1hZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VsZWJyaXR5RmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlVybHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZhY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF0Y2hDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5yZWNvZ25pemVkRmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcmllbnRhdGlvbkNvcnJlY3Rpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWFyY2hGYWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCIsXG4gICAgICAgICAgXCJGYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiRmFjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4RmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhY2VNYXRjaFRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlYXJjaGVkRmFjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRmFjZU1hdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhY2VNb2RlbFZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWFyY2hGYWNlc0J5SW1hZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZFwiLFxuICAgICAgICAgIFwiSW1hZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4RmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhY2VNYXRjaFRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlYXJjaGVkRmFjZUJvdW5kaW5nQm94XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlYXJjaGVkRmFjZUNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWNlTWF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFjZU1vZGVsVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0Q2VsZWJyaXR5UmVjb2duaXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZpZGVvXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZpZGVvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNG5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25DaGFubmVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJKb2JUYWdcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3RhcnRDb250ZW50TW9kZXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVmlkZW9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmlkZW9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0blwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25DaGFubmVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJKb2JUYWdcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3RhcnRGYWNlRGV0ZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWaWRlb1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWaWRlb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ2hhbm5lbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFjZUF0dHJpYnV0ZXNcIjoge30sXG4gICAgICAgICAgXCJKb2JUYWdcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3RhcnRGYWNlU2VhcmNoXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWaWRlb1wiLFxuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZpZGVvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNG5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJGYWNlTWF0Y2hUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25DaGFubmVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJKb2JUYWdcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3RhcnRMYWJlbERldGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVmlkZW9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmlkZW9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0blwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFJlcXVlc3RUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1pbkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25DaGFubmVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJKb2JUYWdcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3RhcnRQZXJzb25UcmFja2luZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVmlkZW9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmlkZW9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0blwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFJlcXVlc3RUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNoYW5uZWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkpvYlRhZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdGFydFN0cmVhbVByb2Nlc3NvclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcFN0cmVhbVByb2Nlc3NvclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCeXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUzNPYmplY3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIldpZHRoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSGVpZ2h0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGVmdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRvcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCb3VuZGluZ0JveFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFuZG1hcmtzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBvc2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVhbGl0eVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlhcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJZXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJvbGxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJZYXdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQaXRjaFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCcmlnaHRuZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2hhcnBuZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktpbmVzaXNWaWRlb1N0cmVhbVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQXJuXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLaW5lc2lzRGF0YVN0cmVhbVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQXJuXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRmFjZVNlYXJjaFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgXCJGYWNlTWF0Y2hUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCb3VuZGluZ0JveFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBZ2VSYW5nZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTG93XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJIaWdoXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlNtaWxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRXllZ2xhc3Nlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN1bmdsYXNzZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJHZW5kZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJCZWFyZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk11c3RhY2hlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRXllc09wZW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJNb3V0aE9wZW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFbW90aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMYW5kbWFya3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUG9zZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWFsaXR5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiUGFyZW50TmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzJ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb2RlY1wiOiB7fSxcbiAgICAgICAgXCJEdXJhdGlvbk1pbGxpc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICBcIkZyYW1lUmF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZyYW1lSGVpZ2h0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGcmFtZVdpZHRoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkluZGV4XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJCb3VuZGluZ0JveFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGYWNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNpbWlsYXJpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZhY2VJZFwiOiB7fSxcbiAgICAgICAgXCJCb3VuZGluZ0JveFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICBcIkV4dGVybmFsSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTM09iamVjdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJTTlNUb3BpY0FyblwiLFxuICAgICAgICBcIlJvbGVBcm5cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU05TVG9waWNBcm5cIjoge30sXG4gICAgICAgIFwiUm9sZUFyblwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkdldENlbGVicml0eVJlY29nbml0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJHZXRDb250ZW50TW9kZXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiR2V0RmFjZURldGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiR2V0RmFjZVNlYXJjaFwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiR2V0TGFiZWxEZXRlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkdldFBlcnNvblRyYWNraW5nXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJMaXN0Q29sbGVjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ29sbGVjdGlvbklkc1wiXG4gICAgfSxcbiAgICBcIkxpc3RGYWNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJGYWNlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1Qcm9jZXNzb3JzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTMtMDQtMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwicm91dGU1M1wiLFxuICAgIFwiZ2xvYmFsRW5kcG9pbnRcIjogXCJyb3V0ZTUzLmFtYXpvbmF3cy5jb21cIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC14bWxcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJSb3V0ZSA1M1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFJvdXRlIDUzXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJSb3V0ZSA1M1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJyb3V0ZTUzLTIwMTMtMDQtMDFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQXNzb2NpYXRlVlBDV2l0aEhvc3RlZFpvbmVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZS97SWR9L2Fzc29jaWF0ZXZwY1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXNzb2NpYXRlVlBDV2l0aEhvc3RlZFpvbmVSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiVlBDXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVlBDXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbW1lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2hhbmdlSW5mb1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH0vcnJzZXQvXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlQmF0Y2hcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VCYXRjaFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkNoYW5nZXNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDaGFuZ2VcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VSZWNvcmRTZXRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlJlc291cmNlUmVjb3JkU2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaGFuZ2VJbmZvXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2hhbmdlVGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RhZ3Mve1Jlc291cmNlVHlwZX0ve1Jlc291cmNlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDaGFuZ2VUYWdzRm9yUmVzb3VyY2VSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkZFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlbW92ZVRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUhlYWx0aENoZWNrXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hlYWx0aGNoZWNrXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNyZWF0ZUhlYWx0aENoZWNrUmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgICBcIkhlYWx0aENoZWNrQ29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tcIixcbiAgICAgICAgICBcIkxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSG9zdGVkWm9uZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNyZWF0ZUhvc3RlZFpvbmVSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVlBDXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgICBcIkhvc3RlZFpvbmVDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lXCIsXG4gICAgICAgICAgXCJDaGFuZ2VJbmZvXCIsXG4gICAgICAgICAgXCJEZWxlZ2F0aW9uU2V0XCIsXG4gICAgICAgICAgXCJMb2NhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZQQ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUXVlcnlMb2dnaW5nQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3F1ZXJ5bG9nZ2luZ2NvbmZpZ1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDcmVhdGVRdWVyeUxvZ2dpbmdDb25maWdSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NMb2dHcm91cEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge30sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0xvZ0dyb3VwQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXJ5TG9nZ2luZ0NvbmZpZ1wiLFxuICAgICAgICAgIFwiTG9jYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVlcnlMb2dnaW5nQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmV1c2FibGVEZWxlZ2F0aW9uU2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2RlbGVnYXRpb25zZXRcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3JlYXRlUmV1c2FibGVEZWxlZ2F0aW9uU2V0UmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRcIixcbiAgICAgICAgICBcIkxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUcmFmZmljUG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3lcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3JlYXRlVHJhZmZpY1BvbGljeVJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiRG9jdW1lbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50XCI6IHt9LFxuICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5XCIsXG4gICAgICAgICAgXCJMb2NhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVHJhZmZpY1BvbGljeUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3lpbnN0YW5jZVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDcmVhdGVUcmFmZmljUG9saWN5SW5zdGFuY2VSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiVFRMXCIsXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SWRcIixcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lWZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUVExcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJZFwiOiB7fSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlXCIsXG4gICAgICAgICAgXCJMb2NhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUcmFmZmljUG9saWN5VmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5L3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3JlYXRlVHJhZmZpY1BvbGljeVZlcnNpb25SZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgXCJEb2N1bWVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9jdW1lbnRcIjoge30sXG4gICAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lcIixcbiAgICAgICAgICBcIkxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWUENBc3NvY2lhdGlvbkF1dGhvcml6YXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZS97SWR9L2F1dGhvcml6ZXZwY2Fzc29jaWF0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDcmVhdGVWUENBc3NvY2lhdGlvbkF1dGhvcml6YXRpb25SZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiVlBDXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVlBDXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgICBcIlZQQ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge30sXG4gICAgICAgICAgXCJWUENcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSGVhbHRoQ2hlY2tcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaGVhbHRoY2hlY2sve0hlYWx0aENoZWNrSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIZWFsdGhDaGVja0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSGVhbHRoQ2hlY2tJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUhvc3RlZFpvbmVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaGFuZ2VJbmZvXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUXVlcnlMb2dnaW5nQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3F1ZXJ5bG9nZ2luZ2NvbmZpZy97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJldXNhYmxlRGVsZWdhdGlvblNldFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9kZWxlZ2F0aW9uc2V0L3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVHJhZmZpY1BvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5L3tJZH0ve1ZlcnNpb259XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIlZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWZXJzaW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVHJhZmZpY1BvbGljeUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3lpbnN0YW5jZS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZQQ0Fzc29jaWF0aW9uQXV0aG9yaXphdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH0vZGVhdXRob3JpemV2cGNhc3NvY2lhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVsZXRlVlBDQXNzb2NpYXRpb25BdXRob3JpemF0aW9uUmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgICBcIlZQQ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZQQ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVWUENGcm9tSG9zdGVkWm9uZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH0vZGlzYXNzb2NpYXRldnBjXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXNhc3NvY2lhdGVWUENGcm9tSG9zdGVkWm9uZVJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCIsXG4gICAgICAgICAgXCJWUENcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWUENcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaGFuZ2VJbmZvXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QWNjb3VudExpbWl0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2FjY291bnRsaW1pdC97VHlwZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUeXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpbWl0XCIsXG4gICAgICAgICAgXCJDb3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlR5cGVcIixcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q2hhbmdlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2NoYW5nZS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaGFuZ2VJbmZvXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q2hlY2tlcklwUmFuZ2VzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2NoZWNrZXJpcHJhbmdlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNoZWNrZXJJcFJhbmdlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGVja2VySXBSYW5nZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0R2VvTG9jYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvZ2VvbG9jYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnRpbmVudENvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbnRpbmVudGNvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudHJ5Q29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY291bnRyeWNvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJkaXZpc2lvbkNvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1YmRpdmlzaW9uY29kZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHZW9Mb2NhdGlvbkRldGFpbHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2VvTG9jYXRpb25EZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRIZWFsdGhDaGVja1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9oZWFsdGhjaGVjay97SGVhbHRoQ2hlY2tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIZWFsdGhDaGVja0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRIZWFsdGhDaGVja0NvdW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hlYWx0aGNoZWNrY291bnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja0NvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEhlYWx0aENoZWNrTGFzdEZhaWx1cmVSZWFzb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaGVhbHRoY2hlY2sve0hlYWx0aENoZWNrSWR9L2xhc3RmYWlsdXJlcmVhc29uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIZWFsdGhDaGVja0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSGVhbHRoQ2hlY2tJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja09ic2VydmF0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIZWFsdGhDaGVja09ic2VydmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SGVhbHRoQ2hlY2tTdGF0dXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaGVhbHRoY2hlY2sve0hlYWx0aENoZWNrSWR9L3N0YXR1c1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkhlYWx0aENoZWNrSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tPYnNlcnZhdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tPYnNlcnZhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEhvc3RlZFpvbmVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZQQ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEhvc3RlZFpvbmVDb3VudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lY291bnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lQ291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRIb3N0ZWRab25lTGltaXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZWxpbWl0L3tJZH0ve1R5cGV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHlwZVwiLFxuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGltaXRcIixcbiAgICAgICAgICBcIkNvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiVHlwZVwiLFxuICAgICAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRRdWVyeUxvZ2dpbmdDb25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvcXVlcnlsb2dnaW5nY29uZmlnL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXJ5TG9nZ2luZ0NvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWVyeUxvZ2dpbmdDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMycVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJldXNhYmxlRGVsZWdhdGlvblNldFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9kZWxlZ2F0aW9uc2V0L3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZWdhdGlvblNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmV1c2FibGVEZWxlZ2F0aW9uU2V0TGltaXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvcmV1c2FibGVkZWxlZ2F0aW9uc2V0bGltaXQve0lkfS97VHlwZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgXCJEZWxlZ2F0aW9uU2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWxlZ2F0aW9uU2V0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaW1pdFwiLFxuICAgICAgICAgIFwiQ291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRyYWZmaWNQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdHJhZmZpY3BvbGljeS97SWR9L3tWZXJzaW9ufVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgXCJWZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmVyc2lvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRyYWZmaWNQb2xpY3lJbnN0YW5jZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5aW5zdGFuY2Uve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VHJhZmZpY1BvbGljeUluc3RhbmNlQ291bnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdHJhZmZpY3BvbGljeWluc3RhbmNlY291bnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VDb3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEdlb0xvY2F0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9nZW9sb2NhdGlvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXJ0Q29udGluZW50Q29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnRjb250aW5lbnRjb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRDb3VudHJ5Q29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnRjb3VudHJ5Y29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0U3ViZGl2aXNpb25Db2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydHN1YmRpdmlzaW9uY29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhpdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHZW9Mb2NhdGlvbkRldGFpbHNMaXN0XCIsXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2VvTG9jYXRpb25EZXRhaWxzTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDZcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHZW9Mb2NhdGlvbkRldGFpbHNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dENvbnRpbmVudENvZGVcIjoge30sXG4gICAgICAgICAgXCJOZXh0Q291bnRyeUNvZGVcIjoge30sXG4gICAgICAgICAgXCJOZXh0U3ViZGl2aXNpb25Db2RlXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SGVhbHRoQ2hlY2tzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hlYWx0aGNoZWNrXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhpdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja3NcIixcbiAgICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICBcIk1heEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIZWFsdGhDaGVja1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SG9zdGVkWm9uZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4aXRlbXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWxlZ2F0aW9uU2V0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGVnYXRpb25zZXRpZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lc1wiLFxuICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1blwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SG9zdGVkWm9uZXNCeU5hbWVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZXNieW5hbWVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkROU05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRuc25hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RlZHpvbmVpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhpdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lc1wiLFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICBcIk1heEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJETlNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRETlNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dEhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFF1ZXJ5TG9nZ2luZ0NvbmZpZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvcXVlcnlsb2dnaW5nY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RlZHpvbmVpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dHRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4cmVzdWx0c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWVyeUxvZ2dpbmdDb25maWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXJ5TG9nZ2luZ0NvbmZpZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJxXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVlcnlMb2dnaW5nQ29uZmlnXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlc291cmNlUmVjb3JkU2V0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH0vcnJzZXRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFJlY29yZE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFJlY29yZFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFJlY29yZElkZW50aWZpZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkZW50aWZpZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4aXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VSZWNvcmRTZXRzXCIsXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VSZWNvcmRTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VSZWNvcmRTZXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFJlY29yZE5hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0UmVjb3JkVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRSZWNvcmRJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmV1c2FibGVEZWxlZ2F0aW9uU2V0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9kZWxlZ2F0aW9uc2V0XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhpdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxlZ2F0aW9uU2V0c1wiLFxuICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZWdhdGlvblNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVsZWdhdGlvblNldFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RhZ3Mve1Jlc291cmNlVHlwZX0ve1Jlc291cmNlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlVGFnU2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlVGFnU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90YWdzL3tSZXNvdXJjZVR5cGV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMaXN0VGFnc0ZvclJlc291cmNlc1JlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VJZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVRhZ1NldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUYWdTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2M1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlVGFnU2V0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRyYWZmaWNQb2xpY2llc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWNpZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJZE1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHJhZmZpY3BvbGljeWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lTdW1tYXJpZXNcIixcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SWRNYXJrZXJcIixcbiAgICAgICAgICBcIk1heEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRyYWZmaWNQb2xpY3lTdW1tYXJ5XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJMYXRlc3RWZXJzaW9uXCIsXG4gICAgICAgICAgICAgICAgXCJUcmFmZmljUG9saWN5Q291bnRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhdGVzdFZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJZE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRyYWZmaWNQb2xpY3lJbnN0YW5jZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdHJhZmZpY3BvbGljeWluc3RhbmNlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0ZWR6b25laWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VOYW1lTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0cmFmZmljcG9saWN5aW5zdGFuY2VuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlVHlwZU1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHJhZmZpY3BvbGljeWluc3RhbmNldHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhpdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VzXCIsXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlTmFtZU1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZVR5cGVNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VHJhZmZpY1BvbGljeUluc3RhbmNlc0J5SG9zdGVkWm9uZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5aW5zdGFuY2VzL2hvc3RlZHpvbmVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZU5hbWVNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRyYWZmaWNwb2xpY3lpbnN0YW5jZW5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VUeXBlTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0cmFmZmljcG9saWN5aW5zdGFuY2V0eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZXNcIixcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgXCJNYXhJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VOYW1lTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlVHlwZU1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUcmFmZmljUG9saWN5SW5zdGFuY2VzQnlQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdHJhZmZpY3BvbGljeWluc3RhbmNlcy90cmFmZmljcG9saWN5XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUlkXCIsXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5VmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RlZHpvbmVpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZU5hbWVNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRyYWZmaWNwb2xpY3lpbnN0YW5jZW5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VUeXBlTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0cmFmZmljcG9saWN5aW5zdGFuY2V0eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZXNcIixcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgXCJNYXhJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VOYW1lTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlVHlwZU1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUcmFmZmljUG9saWN5VmVyc2lvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdHJhZmZpY3BvbGljaWVzL3tJZH0vdmVyc2lvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25NYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRyYWZmaWNwb2xpY3l2ZXJzaW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY2llc1wiLFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lWZXJzaW9uTWFya2VyXCIsXG4gICAgICAgICAgXCJNYXhJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFmZmljUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ6XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVHJhZmZpY1BvbGljeVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5VmVyc2lvbk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFZQQ0Fzc29jaWF0aW9uQXV0aG9yaXphdGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZS97SWR9L2F1dGhvcml6ZXZwY2Fzc29jaWF0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0dG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhyZXN1bHRzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiVlBDc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJWUENzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXN0RE5TQW5zd2VyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3Rlc3RkbnNhbnN3ZXJcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgICBcIlJlY29yZE5hbWVcIixcbiAgICAgICAgICBcIlJlY29yZFR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0ZWR6b25laWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWNvcmROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWNvcmRuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjb3JkVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVjb3JkdHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc29sdmVySVBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc29sdmVyaXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFRE5TMENsaWVudFN1Ym5ldElQXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlZG5zMGNsaWVudHN1Ym5ldGlwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRUROUzBDbGllbnRTdWJuZXRNYXNrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlZG5zMGNsaWVudHN1Ym5ldG1hc2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZXNlcnZlclwiLFxuICAgICAgICAgIFwiUmVjb3JkTmFtZVwiLFxuICAgICAgICAgIFwiUmVjb3JkVHlwZVwiLFxuICAgICAgICAgIFwiUmVjb3JkRGF0YVwiLFxuICAgICAgICAgIFwiUmVzcG9uc2VDb2RlXCIsXG4gICAgICAgICAgXCJQcm90b2NvbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc2VydmVyXCI6IHt9LFxuICAgICAgICAgIFwiUmVjb3JkTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlY29yZFR5cGVcIjoge30sXG4gICAgICAgICAgXCJSZWNvcmREYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWNvcmREYXRhRW50cnlcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNwb25zZUNvZGVcIjoge30sXG4gICAgICAgICAgXCJQcm90b2NvbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUhlYWx0aENoZWNrXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hlYWx0aGNoZWNrL3tIZWFsdGhDaGVja0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXBkYXRlSGVhbHRoQ2hlY2tSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkhlYWx0aENoZWNrSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1ZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklQQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlUGF0aFwiOiB7fSxcbiAgICAgICAgICBcIkZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlYXJjaFN0cmluZ1wiOiB7fSxcbiAgICAgICAgICBcIkZhaWx1cmVUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludmVydGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIZWFsdGhUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoaWxkSGVhbHRoQ2hlY2tzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVTTklcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlZ2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsYXJtSWRlbnRpZmllclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdWZmaWNpZW50RGF0YUhlYWx0aFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlJlc2V0RWxlbWVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2V0dGFibGVFbGVtZW50TmFtZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIZWFsdGhDaGVja1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSG9zdGVkWm9uZUNvbW1lbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaG9zdGVkem9uZS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVcGRhdGVIb3N0ZWRab25lQ29tbWVudFJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbW1lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUcmFmZmljUG9saWN5Q29tbWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5L3tJZH0ve1ZlcnNpb259XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVcGRhdGVUcmFmZmljUG9saWN5Q29tbWVudFJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIlZlcnNpb25cIixcbiAgICAgICAgICBcIkNvbW1lbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWZXJzaW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRyYWZmaWNQb2xpY3lJbnN0YW5jZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5aW5zdGFuY2Uve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXBkYXRlVHJhZmZpY1BvbGljeUluc3RhbmNlUmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgIFwiVFRMXCIsXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SWRcIixcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lWZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUVExcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJZFwiOiB7fSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJWUENSZWdpb25cIjoge30sXG4gICAgICAgIFwiVlBDSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICBcIlN1Ym1pdHRlZEF0XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJtaXR0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIlR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIlNldElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiV2VpZ2h0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgIFwiR2VvTG9jYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNvbnRpbmVudENvZGVcIjoge30sXG4gICAgICAgICAgICBcIkNvdW50cnlDb2RlXCI6IHt9LFxuICAgICAgICAgICAgXCJTdWJkaXZpc2lvbkNvZGVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRmFpbG92ZXJcIjoge30sXG4gICAgICAgIFwiTXVsdGlWYWx1ZUFuc3dlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVFRMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXNvdXJjZVJlY29yZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlUmVjb3JkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsaWFzVGFyZ2V0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCIsXG4gICAgICAgICAgICBcIkROU05hbWVcIixcbiAgICAgICAgICAgIFwiRXZhbHVhdGVUYXJnZXRIZWFsdGhcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICAgICAgXCJETlNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJFdmFsdWF0ZVRhcmdldEhlYWx0aFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJIZWFsdGhDaGVja0lkXCI6IHt9LFxuICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZUlkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUeXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklQQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIlJlc291cmNlUGF0aFwiOiB7fSxcbiAgICAgICAgXCJGdWxseVF1YWxpZmllZERvbWFpbk5hbWVcIjoge30sXG4gICAgICAgIFwiU2VhcmNoU3RyaW5nXCI6IHt9LFxuICAgICAgICBcIlJlcXVlc3RJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmFpbHVyZVRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWVhc3VyZUxhdGVuY3lcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkludmVydGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJIZWFsdGhUaHJlc2hvbGRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNoaWxkSGVhbHRoQ2hlY2tzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmFibGVTTklcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlZ2lvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsYXJtSWRlbnRpZmllclwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdWZmaWNpZW50RGF0YUhlYWx0aFN0YXR1c1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNoaWxkSGVhbHRoQ2hlY2tcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlZ2lvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJlZ2lvblwiLFxuICAgICAgICBcIk5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJIZWFsdGhDaGVja0NvbmZpZ1wiLFxuICAgICAgICBcIkhlYWx0aENoZWNrVmVyc2lvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiTGlua2VkU2VydmljZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxelwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSGVhbHRoQ2hlY2tDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkhlYWx0aENoZWNrVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xvdWRXYXRjaEFsYXJtQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkV2YWx1YXRpb25QZXJpb2RzXCIsXG4gICAgICAgICAgICBcIlRocmVzaG9sZFwiLFxuICAgICAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIixcbiAgICAgICAgICAgIFwiUGVyaW9kXCIsXG4gICAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICAgIFwiTmFtZXNwYWNlXCIsXG4gICAgICAgICAgICBcIlN0YXRpc3RpY1wiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFdmFsdWF0aW9uUGVyaW9kc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICAgIFwiUGVyaW9kXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgICBcIlN0YXRpc3RpY1wiOiB7fSxcbiAgICAgICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGltZW5zaW9uXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTZXJ2aWNlUHJpbmNpcGFsXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgXCJQcml2YXRlWm9uZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIkNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzb3VyY2VSZWNvcmRTZXRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGlua2VkU2VydmljZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxelwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVNlcnZlcnNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIk5hbWVTZXJ2ZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lU2VydmVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0xvZ0dyb3VwQXJuXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0xvZ0dyb3VwQXJuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiVmVyc2lvblwiLFxuICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgIFwiRG9jdW1lbnRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIkRvY3VtZW50XCI6IHt9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiVFRMXCIsXG4gICAgICAgIFwiU3RhdGVcIixcbiAgICAgICAgXCJNZXNzYWdlXCIsXG4gICAgICAgIFwiVHJhZmZpY1BvbGljeUlkXCIsXG4gICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25cIixcbiAgICAgICAgXCJUcmFmZmljUG9saWN5VHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUVExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiVHJhZmZpY1BvbGljeUlkXCI6IHt9LFxuICAgICAgICBcIlRyYWZmaWNQb2xpY3lWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUcmFmZmljUG9saWN5VHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvbnRpbmVudENvZGVcIjoge30sXG4gICAgICAgIFwiQ29udGluZW50TmFtZVwiOiB7fSxcbiAgICAgICAgXCJDb3VudHJ5Q29kZVwiOiB7fSxcbiAgICAgICAgXCJDb3VudHJ5TmFtZVwiOiB7fSxcbiAgICAgICAgXCJTdWJkaXZpc2lvbkNvZGVcIjoge30sXG4gICAgICAgIFwiU3ViZGl2aXNpb25OYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0aFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSGVhbHRoQ2hlY2tPYnNlcnZhdGlvblwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgICBcIklQQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1JlcG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNoZWNrZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0cFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTM1wiLFxuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZQQ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1blwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMmpcIixcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIb3N0ZWRab25lXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzYzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE1XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNmVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCIsXG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVHJhZmZpY1BvbGljeUluc3RhbmNlXCJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0SGVhbHRoQ2hlY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSGVhbHRoQ2hlY2tzXCJcbiAgICB9LFxuICAgIFwiTGlzdEhvc3RlZFpvbmVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSG9zdGVkWm9uZXNcIlxuICAgIH0sXG4gICAgXCJMaXN0UmVzb3VyY2VSZWNvcmRTZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogW1xuICAgICAgICBcIlN0YXJ0UmVjb3JkTmFtZVwiLFxuICAgICAgICBcIlN0YXJ0UmVjb3JkVHlwZVwiLFxuICAgICAgICBcIlN0YXJ0UmVjb3JkSWRlbnRpZmllclwiXG4gICAgICBdLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJJc1RydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogW1xuICAgICAgICBcIk5leHRSZWNvcmROYW1lXCIsXG4gICAgICAgIFwiTmV4dFJlY29yZFR5cGVcIixcbiAgICAgICAgXCJOZXh0UmVjb3JkSWRlbnRpZmllclwiXG4gICAgICBdLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzb3VyY2VSZWNvcmRTZXRzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiUmVzb3VyY2VSZWNvcmRTZXRzQ2hhbmdlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2MCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiR2V0Q2hhbmdlXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIklOU1lOQ1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDaGFuZ2VJbmZvLlN0YXR1c1wiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0wNS0xNVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJyb3V0ZTUzZG9tYWluc1wiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFJvdXRlIDUzIERvbWFpbnNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiUm91dGU1M0RvbWFpbnNfdjIwMTQwNTE1XCIsXG4gICAgXCJ1aWRcIjogXCJyb3V0ZTUzZG9tYWlucy0yMDE0LTA1LTE1XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNoZWNrRG9tYWluQXZhaWxhYmlsaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJJZG5MYW5nQ29kZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2hlY2tEb21haW5UcmFuc2ZlcmFiaWxpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF1dGhDb2RlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFuc2ZlcmFiaWxpdHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhbnNmZXJhYmlsaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJUcmFuc2ZlcmFibGVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGFnc0ZvckRvbWFpblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICAgIFwiVGFnc1RvRGVsZXRlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzVG9EZWxldGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZURvbWFpbkF1dG9SZW5ld1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZURvbWFpblRyYW5zZmVyTG9ja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlRG9tYWluQXV0b1JlbmV3XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVEb21haW5UcmFuc2ZlckxvY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbnRhY3RSZWFjaGFiaWxpdHlTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb21haW5EZXRhaWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJOYW1lc2VydmVyc1wiLFxuICAgICAgICAgIFwiQWRtaW5Db250YWN0XCIsXG4gICAgICAgICAgXCJSZWdpc3RyYW50Q29udGFjdFwiLFxuICAgICAgICAgIFwiVGVjaENvbnRhY3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVzZXJ2ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9SZW5ld1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRtaW5Db250YWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlZ2lzdHJhbnRDb250YWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlY2hDb250YWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkbWluUHJpdmFjeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaXN0cmFudFByaXZhY3lcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlY2hQcml2YWN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpc3RyYXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiV2hvSXNTZXJ2ZXJcIjoge30sXG4gICAgICAgICAgXCJSZWdpc3RyYXJVcmxcIjoge30sXG4gICAgICAgICAgXCJBYnVzZUNvbnRhY3RFbWFpbFwiOiB7fSxcbiAgICAgICAgICBcIkFidXNlQ29udGFjdFBob25lXCI6IHt9LFxuICAgICAgICAgIFwiUmVnaXN0cnlEb21haW5JZFwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBpcmF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlbGxlclwiOiB7fSxcbiAgICAgICAgICBcIkRuc1NlY1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RG9tYWluU3VnZ2VzdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICBcIlN1Z2dlc3Rpb25Db3VudFwiLFxuICAgICAgICAgIFwiT25seUF2YWlsYWJsZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3VnZ2VzdGlvbkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPbmx5QXZhaWxhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWdnZXN0aW9uc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRPcGVyYXRpb25EZXRhaWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdWJtaXR0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REb21haW5zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXV0b1JlbmV3XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUcmFuc2ZlckxvY2tcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV4cGlyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZU1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RPcGVyYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Ym1pdHRlZFNpbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3BlcmF0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIixcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiLFxuICAgICAgICAgICAgICAgIFwiU3VibWl0dGVkRGF0ZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdWJtaXR0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JEb21haW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdMaXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyRG9tYWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJEdXJhdGlvbkluWWVhcnNcIixcbiAgICAgICAgICBcIkFkbWluQ29udGFjdFwiLFxuICAgICAgICAgIFwiUmVnaXN0cmFudENvbnRhY3RcIixcbiAgICAgICAgICBcIlRlY2hDb250YWN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJJZG5MYW5nQ29kZVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uSW5ZZWFyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b1JlbmV3XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZG1pbkNvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaXN0cmFudENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVjaENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmFjeVByb3RlY3RBZG1pbkNvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhY3lQcm90ZWN0UmVnaXN0cmFudENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhY3lQcm90ZWN0VGVjaENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbmV3RG9tYWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJDdXJyZW50RXhwaXJ5WWVhclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25JblllYXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXJyZW50RXhwaXJ5WWVhclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZW5kQ29udGFjdFJlYWNoYWJpbGl0eUVtYWlsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZW1haWxBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgIFwiaXNBbHJlYWR5VmVyaWZpZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldHJpZXZlRG9tYWluQXV0aENvZGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRoQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoQ29kZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUcmFuc2ZlckRvbWFpblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICAgIFwiRHVyYXRpb25JblllYXJzXCIsXG4gICAgICAgICAgXCJBZG1pbkNvbnRhY3RcIixcbiAgICAgICAgICBcIlJlZ2lzdHJhbnRDb250YWN0XCIsXG4gICAgICAgICAgXCJUZWNoQ29udGFjdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSWRuTGFuZ0NvZGVcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvbkluWWVhcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVzZXJ2ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dGhDb2RlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9SZW5ld1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRtaW5Db250YWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlZ2lzdHJhbnRDb250YWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlY2hDb250YWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhY3lQcm90ZWN0QWRtaW5Db250YWN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YWN5UHJvdGVjdFJlZ2lzdHJhbnRDb250YWN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YWN5UHJvdGVjdFRlY2hDb250YWN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEb21haW5Db250YWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJBZG1pbkNvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaXN0cmFudENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVjaENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRG9tYWluQ29udGFjdFByaXZhY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFkbWluUHJpdmFjeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaXN0cmFudFByaXZhY3lcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlY2hQcml2YWN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEb21haW5OYW1lc2VydmVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICAgIFwiTmFtZXNlcnZlcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZJQXV0aEtleVwiOiB7XG4gICAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lc2VydmVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUYWdzRm9yRG9tYWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzVG9VcGRhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlZpZXdCaWxsaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXJ0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFBhZ2VNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJCaWxsaW5nUmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk9wZXJhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkludm9pY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJpbGxEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJHbHVlSXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGaXJzdE5hbWVcIjoge30sXG4gICAgICAgIFwiTGFzdE5hbWVcIjoge30sXG4gICAgICAgIFwiQ29udGFjdFR5cGVcIjoge30sXG4gICAgICAgIFwiT3JnYW5pemF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJBZGRyZXNzTGluZTFcIjoge30sXG4gICAgICAgIFwiQWRkcmVzc0xpbmUyXCI6IHt9LFxuICAgICAgICBcIkNpdHlcIjoge30sXG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiQ291bnRyeUNvZGVcIjoge30sXG4gICAgICAgIFwiWmlwQ29kZVwiOiB7fSxcbiAgICAgICAgXCJQaG9uZU51bWJlclwiOiB7fSxcbiAgICAgICAgXCJFbWFpbFwiOiB7fSxcbiAgICAgICAgXCJGYXhcIjoge30sXG4gICAgICAgIFwiRXh0cmFQYXJhbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMjlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0RG9tYWluc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEb21haW5zXCJcbiAgICB9LFxuICAgIFwiTGlzdE9wZXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFnZU1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiT3BlcmF0aW9uc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNi0xMS0yOFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJydW50aW1lLmxleFwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gTGV4IFJ1bnRpbWUgU2VydmljZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiTGV4IFJ1bnRpbWUgU2VydmljZVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJzaWduaW5nTmFtZVwiOiBcImxleFwiLFxuICAgIFwidWlkXCI6IFwicnVudGltZS5sZXgtMjAxNi0xMS0yOFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJQb3N0Q29udGVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90L3tib3ROYW1lfS9hbGlhcy97Ym90QWxpYXN9L3VzZXIve3VzZXJJZH0vY29udGVudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImJvdE5hbWVcIixcbiAgICAgICAgICBcImJvdEFsaWFzXCIsXG4gICAgICAgICAgXCJ1c2VySWRcIixcbiAgICAgICAgICBcImNvbnRlbnRUeXBlXCIsXG4gICAgICAgICAgXCJpbnB1dFN0cmVhbVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJib3ROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvdEFsaWFzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90QWxpYXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXNzaW9uQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIixcbiAgICAgICAgICAgIFwianNvbnZhbHVlXCI6IHRydWUsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1zZXNzaW9uLWF0dHJpYnV0ZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXF1ZXN0QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIixcbiAgICAgICAgICAgIFwianNvbnZhbHVlXCI6IHRydWUsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1yZXF1ZXN0LWF0dHJpYnV0ZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFjY2VwdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFjY2VwdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImlucHV0U3RyZWFtXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJpbnB1dFN0cmVhbVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW50ZW50TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1pbnRlbnQtbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNsb3RzXCI6IHtcbiAgICAgICAgICAgIFwianNvbnZhbHVlXCI6IHRydWUsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1zbG90c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlc3Npb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwianNvbnZhbHVlXCI6IHRydWUsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1zZXNzaW9uLWF0dHJpYnV0ZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1sZXgtbWVzc2FnZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1lc3NhZ2VGb3JtYXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1sZXgtbWVzc2FnZS1mb3JtYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkaWFsb2dTdGF0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1kaWFsb2ctc3RhdGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzbG90VG9FbGljaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1sZXgtc2xvdC10by1lbGljaXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbnB1dFRyYW5zY3JpcHRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1sZXgtaW5wdXQtdHJhbnNjcmlwdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1ZGlvU3RyZWFtXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJhdWRpb1N0cmVhbVwiXG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcInY0LXVuc2lnbmVkLWJvZHlcIlxuICAgIH0sXG4gICAgXCJQb3N0VGV4dFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90L3tib3ROYW1lfS9hbGlhcy97Ym90QWxpYXN9L3VzZXIve3VzZXJJZH0vdGV4dFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImJvdE5hbWVcIixcbiAgICAgICAgICBcImJvdEFsaWFzXCIsXG4gICAgICAgICAgXCJ1c2VySWRcIixcbiAgICAgICAgICBcImlucHV0VGV4dFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJib3ROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvdEFsaWFzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90QWxpYXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXNzaW9uQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXF1ZXN0QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbnB1dFRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInNsb3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlc3Npb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWVzc2FnZUZvcm1hdFwiOiB7fSxcbiAgICAgICAgICBcImRpYWxvZ1N0YXRlXCI6IHt9LFxuICAgICAgICAgIFwic2xvdFRvRWxpY2l0XCI6IHt9LFxuICAgICAgICAgIFwicmVzcG9uc2VDYXJkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcImdlbmVyaWNBdHRhY2htZW50c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0aXRsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJzdWJUaXRsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJhdHRhY2htZW50TGlua1VybFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJpbWFnZVVybFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJidXR0b25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidGV4dFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImJsb2JcIixcbiAgICAgIFwic3RyZWFtaW5nXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9LFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMDYtMDMtMDFcIixcbiAgICBcImNoZWNrc3VtRm9ybWF0XCI6IFwibWQ1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInMzXCIsXG4gICAgXCJnbG9iYWxFbmRwb2ludFwiOiBcInMzLmFtYXpvbmF3cy5jb21cIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC14bWxcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gUzNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBTaW1wbGUgU3RvcmFnZSBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJTM1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInMzXCIsXG4gICAgXCJ0aW1lc3RhbXBGb3JtYXRcIjogXCJyZmM4MjJcIixcbiAgICBcInVpZFwiOiBcInMzLTIwMDYtMDMtMDFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWJvcnRNdWx0aXBhcnRVcGxvYWRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJVcGxvYWRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGxvYWRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBsb2FkSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb21wbGV0ZU11bHRpcGFydFVwbG9hZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlVwbG9hZElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11bHRpcGFydFVwbG9hZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUGFydHNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFydFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRVRhZ1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQYXJ0TnVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwbG9hZElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGxvYWRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiTXVsdGlwYXJ0VXBsb2FkXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9jYXRpb25cIjoge30sXG4gICAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZXhwaXJhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge30sXG4gICAgICAgICAgXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlPYmplY3RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiQ29weVNvdXJjZVwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFDTFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWFjbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlQ29udHJvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlLUNvbnRyb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50RGlzcG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LURpc3Bvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudEVuY29kaW5nXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1FbmNvZGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRMYW5ndWFnZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTGFuZ3VhZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2UtaWYtbWF0Y2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlSWZNb2RpZmllZFNpbmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2UtaWYtbW9kaWZpZWQtc2luY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VJZk5vbmVNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLWlmLW5vbmUtbWF0Y2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlSWZVbm1vZGlmaWVkU2luY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi11bm1vZGlmaWVkLXNpbmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBpcmVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXhwaXJlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRGdWxsQ29udHJvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LWZ1bGwtY29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFJlYWRBQ1BcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1yZWFkLWFjcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50V3JpdGVBQ1BcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC13cml0ZS1hY3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyc1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1tZXRhLVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldGFkYXRhRGlyZWN0aXZlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbWV0YWRhdGEtZGlyZWN0aXZlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnZ2luZ0RpcmVjdGl2ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXRhZ2dpbmctZGlyZWN0aXZlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc3RvcmFnZS1jbGFzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldlYnNpdGVSZWRpcmVjdExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotd2Vic2l0ZS1yZWRpcmVjdC1sb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1hd3Mta21zLWtleS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZVNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2Utc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnZ2luZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXRhZ2dpbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb3B5T2JqZWN0UmVzdWx0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJFVGFnXCI6IHt9LFxuICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZXhwaXJhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotdmVyc2lvbi1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUtNU0tleUlkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWF3cy1rbXMta2V5LWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ29weU9iamVjdFJlc3VsdFwiXG4gICAgICB9LFxuICAgICAgXCJhbGlhc1wiOiBcIlB1dE9iamVjdENvcHlcIlxuICAgIH0sXG4gICAgXCJDcmVhdGVCdWNrZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFDTFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWFjbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTG9jYXRpb25Db25zdHJhaW50XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50RnVsbENvbnRyb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1mdWxsLWNvbnRyb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1yZWFkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRSZWFkQUNQXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtcmVhZC1hY3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFdyaXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtd3JpdGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFdyaXRlQUNQXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtd3JpdGUtYWNwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFsaWFzXCI6IFwiUHV0QnVja2V0XCJcbiAgICB9LFxuICAgIFwiQ3JlYXRlTXVsdGlwYXJ0VXBsb2FkXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K30/dXBsb2Fkc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFDTFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWFjbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlQ29udHJvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlLUNvbnRyb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50RGlzcG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LURpc3Bvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudEVuY29kaW5nXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1FbmNvZGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRMYW5ndWFnZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTGFuZ3VhZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeHBpcmVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudEZ1bGxDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtZnVsbC1jb250cm9sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtcmVhZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZEFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWQtYWNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRXcml0ZUFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXdyaXRlLWFjcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1ldGEtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc3RvcmFnZS1jbGFzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldlYnNpdGVSZWRpcmVjdExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotd2Vic2l0ZS1yZWRpcmVjdC1sb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1hd3Mta21zLWtleS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdnaW5nXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotdGFnZ2luZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFib3J0RGF0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWFib3J0LWRhdGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFib3J0UnVsZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWJvcnQtcnVsZS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlVwbG9hZElkXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhbGlhc1wiOiBcIkluaXRpYXRlTXVsdGlwYXJ0VXBsb2FkXCJcbiAgICB9LFxuICAgIFwiRGVsZXRlQnVja2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9hbmFseXRpY3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ1Y2tldENvcnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2NvcnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQnVja2V0RW5jcnlwdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/ZW5jcnlwdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9pbnZlbnRvcnlcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ1Y2tldExpZmVjeWNsZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bGlmZWN5Y2xlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9tZXRyaWNzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCdWNrZXRQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3BvbGljeVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCdWNrZXRSZXBsaWNhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/cmVwbGljYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQnVja2V0VGFnZ2luZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/dGFnZ2luZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCdWNrZXRXZWJzaXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT93ZWJzaXRlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU9iamVjdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTUZBXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbWZhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZXRlTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZGVsZXRlLW1hcmtlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXZlcnNpb24taWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU9iamVjdFRhZ2dpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfT90YWdnaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlT2JqZWN0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/ZGVsZXRlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJEZWxldGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVsZXRlXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk9iamVjdHNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiT2JqZWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJLZXlcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1aWV0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNRkFcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1tZmFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRlbGV0ZVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGV0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlbGV0ZU1hcmtlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVsZXRlTWFya2VyVmVyc2lvbklkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXJyb3JzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXJyb3JcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWZXJzaW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWxpYXNcIjogXCJEZWxldGVNdWx0aXBsZU9iamVjdHNcIlxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/YWNjZWxlcmF0ZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRBY2xcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2FjbFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWNjZXNzQ29udHJvbExpc3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9hbmFseXRpY3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJBbmFseXRpY3NDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0Q29yc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/Y29yc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDT1JTUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDT1JTUnVsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldEVuY3J5cHRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2VuY3J5cHRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/aW52ZW50b3J5XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnZlbnRvcnlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52ZW50b3J5Q29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldExpZmVjeWNsZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bGlmZWN5Y2xlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNG1cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUnVsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiR2V0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bGlmZWN5Y2xlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUnVsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldExvY2F0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9sb2NhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2NhdGlvbkNvbnN0cmFpbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRMb2dnaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9sb2dnaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvZ2dpbmdFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bWV0cmljc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWV0cmljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1alwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJNZXRyaWNzQ29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldE5vdGlmaWNhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bm90aWZpY2F0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1bVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVuXCJcbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9ub3RpZmljYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVtXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNXlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3BvbGljeVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY3lcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUG9saWN5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0UmVwbGljYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3JlcGxpY2F0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldFJlcXVlc3RQYXltZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9yZXF1ZXN0UGF5bWVudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldFRhZ2dpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3RhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ1NldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldFZlcnNpb25pbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3ZlcnNpb25pbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiTUZBRGVsZXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWZhRGVsZXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0V2Vic2l0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/d2Vic2l0ZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWRpcmVjdEFsbFJlcXVlc3RzVG9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3NVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluZGV4RG9jdW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3OFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVycm9yRG9jdW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvdXRpbmdSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0T2JqZWN0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1vZGlmaWVkU2luY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1Nb2RpZmllZC1TaW5jZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZOb25lTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1Ob25lLU1hdGNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZVbm1vZGlmaWVkU2luY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1Vbm1vZGlmaWVkLVNpbmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSYW5nZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJhbmdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzcG9uc2VDYWNoZUNvbnRyb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3BvbnNlLWNhY2hlLWNvbnRyb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzcG9uc2UtY29udGVudC1kaXNwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3BvbnNlQ29udGVudEVuY29kaW5nXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNwb25zZS1jb250ZW50LWVuY29kaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzcG9uc2VDb250ZW50TGFuZ3VhZ2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3BvbnNlLWNvbnRlbnQtbGFuZ3VhZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNwb25zZUNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNwb25zZS1jb250ZW50LXR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNwb25zZUV4cGlyZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3BvbnNlLWV4cGlyZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJ0TnVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXJ0TnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQm9keVwiOiB7XG4gICAgICAgICAgICBcInN0cmVhbWluZ1wiOiB0cnVlLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGV0ZU1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWRlbGV0ZS1tYXJrZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NlcHRSYW5nZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY2NlcHQtcmFuZ2VzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWV4cGlyYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXN0b3JlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVzdG9yZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhc3QtTW9kaWZpZWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRMZW5ndGhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUxlbmd0aFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWlzc2luZ01ldGFcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1taXNzaW5nLW1ldGFcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGUtQ29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnREaXNwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRGlzcG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50RW5jb2RpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUVuY29kaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudExhbmd1YWdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1MYW5ndWFnZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRSYW5nZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtUmFuZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeHBpcmVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXZWJzaXRlUmVkaXJlY3RMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXdlYnNpdGUtcmVkaXJlY3QtbG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyc1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1tZXRhLVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUtNU0tleUlkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWF3cy1rbXMta2V5LWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc3RvcmFnZS1jbGFzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGljYXRpb25TdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXBsaWNhdGlvbi1zdGF0dXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJ0c0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbXAtcGFydHMtY291bnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdDb3VudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXRhZ2dpbmctY291bnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQm9keVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE9iamVjdEFjbFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9P2FjbFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk93bmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY2Nlc3NDb250cm9sTGlzdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0T2JqZWN0VGFnZ2luZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9P3RhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdTZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotdmVyc2lvbi1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1NldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0T2JqZWN0VG9ycmVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9P3RvcnJlbnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQm9keVwiOiB7XG4gICAgICAgICAgICBcInN0cmVhbWluZ1wiOiB0cnVlLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkJvZHlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJIZWFkQnVja2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiSEVBRFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSGVhZE9iamVjdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkhFQURcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTW9kaWZpZWRTaW5jZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1vZGlmaWVkLVNpbmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk5vbmVNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU5vbmUtTWF0Y2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZlVubW9kaWZpZWRTaW5jZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLVVubW9kaWZpZWQtU2luY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmFuZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFydE51bWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFydE51bWJlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGV0ZU1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWRlbGV0ZS1tYXJrZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NlcHRSYW5nZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY2NlcHQtcmFuZ2VzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWV4cGlyYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXN0b3JlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVzdG9yZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhc3QtTW9kaWZpZWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRMZW5ndGhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUxlbmd0aFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWlzc2luZ01ldGFcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1taXNzaW5nLW1ldGFcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGUtQ29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnREaXNwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRGlzcG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50RW5jb2RpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUVuY29kaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudExhbmd1YWdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1MYW5ndWFnZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwaXJlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV4cGlyZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldlYnNpdGVSZWRpcmVjdExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotd2Vic2l0ZS1yZWRpcmVjdC1sb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1ldGEtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zdG9yYWdlLWNsYXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXBsaWNhdGlvblN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcGxpY2F0aW9uLXN0YXR1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcnRzQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1tcC1wYXJ0cy1jb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/YW5hbHl0aWNzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRpbnVhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb250aW51YXRpb24tdG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOZXh0Q29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJBbmFseXRpY3NDb25maWd1cmF0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QnVja2V0SW52ZW50b3J5Q29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2ludmVudG9yeVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250aW51YXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29udGludWF0aW9uLXRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJJbnZlbnRvcnlDb25maWd1cmF0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dENvbnRpbnVhdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bWV0cmljc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250aW51YXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29udGludWF0aW9uLXRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRpbnVhdGlvblRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dENvbnRpbnVhdGlvblRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWV0cmljc0NvbmZpZ3VyYXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWV0cmljc0NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1alwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QnVja2V0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3duZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhbGlhc1wiOiBcIkdldFNlcnZpY2VcIlxuICAgIH0sXG4gICAgXCJMaXN0TXVsdGlwYXJ0VXBsb2Fkc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/dXBsb2Fkc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWxpbWl0ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGltaXRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY29kaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5jb2RpbmctdHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleU1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5LW1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFVwbG9hZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heC11cGxvYWRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGxvYWRJZE1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBsb2FkLWlkLW1hcmtlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcIktleU1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlVwbG9hZElkTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dEtleU1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIkRlbGltaXRlclwiOiB7fSxcbiAgICAgICAgICBcIk5leHRVcGxvYWRJZE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heFVwbG9hZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGxvYWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXBsb2FkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVXBsb2FkSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbml0aWF0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3duZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluaXRpYXRvclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzk3XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbW1vblByZWZpeGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOThcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNvZGluZ1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0T2JqZWN0VmVyc2lvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3ZlcnNpb25zXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGltaXRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsaW1pdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jb2RpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmNvZGluZy10eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5TWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXktbWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4S2V5c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4LWtleXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZWZpeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZE1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbi1pZC1tYXJrZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvbklkTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dEtleU1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk5leHRWZXJzaW9uSWRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZlcnNpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFVGFnXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSXNMYXRlc3RcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGV0ZU1hcmtlcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZWxldGVNYXJrZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSXNMYXRlc3RcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIkRlbGltaXRlclwiOiB7fSxcbiAgICAgICAgICBcIk1heEtleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbW1vblByZWZpeGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOThcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNvZGluZ1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWxpYXNcIjogXCJHZXRCdWNrZXRPYmplY3RWZXJzaW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3RPYmplY3RzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWxpbWl0ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGltaXRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY29kaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5jb2RpbmctdHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4S2V5c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4LWtleXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZWZpeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkNvbnRlbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiRGVsaW1pdGVyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4S2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbW9uUHJlZml4ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5OFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY29kaW5nVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhbGlhc1wiOiBcIkdldEJ1Y2tldFwiXG4gICAgfSxcbiAgICBcIkxpc3RPYmplY3RzVjJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2xpc3QtdHlwZT0yXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGltaXRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsaW1pdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jb2RpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmNvZGluZy10eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4S2V5c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4LWtleXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZWZpeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRpbnVhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb250aW51YXRpb24tdG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGZXRjaE93bmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmZXRjaC1vd25lclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0QWZ0ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0LWFmdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIkRlbGltaXRlclwiOiB7fSxcbiAgICAgICAgICBcIk1heEtleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbW1vblByZWZpeGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOThcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNvZGluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJLZXlDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOZXh0Q29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTdGFydEFmdGVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFBhcnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVXBsb2FkSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UGFydHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heC1wYXJ0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcnROdW1iZXJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhcnQtbnVtYmVyLW1hcmtlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwbG9hZElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGxvYWRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBYm9ydERhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1hYm9ydC1kYXRlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBYm9ydFJ1bGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWFib3J0LXJ1bGUtaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJVcGxvYWRJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhcnROdW1iZXJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYXJ0TnVtYmVyTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhQYXJ0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcnRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFydFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBhcnROdW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFVGFnXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluaXRpYXRvclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzk3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3duZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0QWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2FjY2VsZXJhdGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIkFjY2VsZXJhdGVDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2VsZXJhdGVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkFjY2VsZXJhdGVDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0QWNsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9hY2xcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQUNMXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXNzQ29udHJvbFBvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2E4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFjY2Vzc0NvbnRyb2xQb2xpY3lcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudEZ1bGxDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtZnVsbC1jb250cm9sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtcmVhZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZEFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWQtYWNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRXcml0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXdyaXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRXcml0ZUFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXdyaXRlLWFjcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJBY2Nlc3NDb250cm9sUG9saWN5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0QW5hbHl0aWNzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/YW5hbHl0aWNzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgIFwiQW5hbHl0aWNzQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbmFseXRpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQW5hbHl0aWNzQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJBbmFseXRpY3NDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0Q29yc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/Y29yc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiQ09SU0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ09SU0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDT1JTQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJDT1JTUnVsZXNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ09SU1J1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNuXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDT1JTUnVsZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNPUlNDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0RW5jcnlwdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/ZW5jcnlwdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9pbnZlbnRvcnlcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgXCJJbnZlbnRvcnlDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnZlbnRvcnlDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRMaWZlY3ljbGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2xpZmVjeWNsZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWZlY3ljbGVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJSdWxlc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0bVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUnVsZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkxpZmVjeWNsZUNvbmZpZ3VyYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldExpZmVjeWNsZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2xpZmVjeWNsZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWZlY3ljbGVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJSdWxlc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1MVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUnVsZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkxpZmVjeWNsZUNvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRMb2dnaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9sb2dnaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJCdWNrZXRMb2dnaW5nU3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldExvZ2dpbmdTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRMb2dnaW5nU3RhdHVzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTG9nZ2luZ0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJCdWNrZXRMb2dnaW5nU3RhdHVzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P21ldHJpY3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgXCJNZXRyaWNzQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRyaWNzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1ldHJpY3NDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIk1ldHJpY3NDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0Tm90aWZpY2F0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9ub3RpZmljYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUHV0QnVja2V0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bm90aWZpY2F0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25Db25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1eVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOb3RpZmljYXRpb25Db25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3BvbGljeVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiUG9saWN5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbmZpcm1SZW1vdmVTZWxmQnVja2V0QWNjZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29uZmlybS1yZW1vdmUtc2VsZi1idWNrZXQtYWNjZXNzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUG9saWN5XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlBvbGljeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldFJlcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9yZXBsaWNhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZoXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRSZXF1ZXN0UGF5bWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/cmVxdWVzdFBheW1lbnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIlJlcXVlc3RQYXltZW50Q29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5bWVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXF1ZXN0UGF5bWVudENvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUGF5ZXJcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUGF5ZXJcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlJlcXVlc3RQYXltZW50Q29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldFRhZ2dpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3RhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIlRhZ2dpbmdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnZ2luZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ2dpbmdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnZ2luZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldFZlcnNpb25pbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3ZlcnNpb25pbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIlZlcnNpb25pbmdDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1GQVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1mYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25pbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNRkFEZWxldGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWZhRGVsZXRlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlZlcnNpb25pbmdDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0V2Vic2l0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/d2Vic2l0ZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiV2Vic2l0ZUNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2Vic2l0ZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJXZWJzaXRlQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkVycm9yRG9jdW1lbnRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN2FcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluZGV4RG9jdW1lbnRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzhcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlZGlyZWN0QWxsUmVxdWVzdHNUb1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3NVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUm91dGluZ1J1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdiXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiV2Vic2l0ZUNvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRPYmplY3RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFDTFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWFjbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJvZHlcIjoge1xuICAgICAgICAgICAgXCJzdHJlYW1pbmdcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWNoZUNvbnRyb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZS1Db250cm9sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudERpc3Bvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1EaXNwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRFbmNvZGluZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRW5jb2RpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TGFuZ3VhZ2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUxhbmd1YWdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudExlbmd0aFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTGVuZ3RoXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBpcmVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXhwaXJlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRGdWxsQ29udHJvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LWZ1bGwtY29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFJlYWRBQ1BcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1yZWFkLWFjcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50V3JpdGVBQ1BcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC13cml0ZS1hY3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyc1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1tZXRhLVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VDbGFzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXN0b3JhZ2UtY2xhc3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXZWJzaXRlUmVkaXJlY3RMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXdlYnNpdGUtcmVkaXJlY3QtbG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnZ2luZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXRhZ2dpbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQm9keVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV4cGlyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1leHBpcmF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dE9iamVjdEFjbFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9P2FjbFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFDTFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWFjbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2Vzc0NvbnRyb2xQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhOFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY2Nlc3NDb250cm9sUG9saWN5XCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRGdWxsQ29udHJvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LWZ1bGwtY29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFJlYWRBQ1BcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1yZWFkLWFjcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50V3JpdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC13cml0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50V3JpdGVBQ1BcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC13cml0ZS1hY3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQWNjZXNzQ29udHJvbFBvbGljeVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0T2JqZWN0VGFnZ2luZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9P3RhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVGFnZ2luZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ2dpbmdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdnaW5nXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlRhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZU9iamVjdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9P3Jlc3RvcmVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3RvcmVSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzdG9yZVJlcXVlc3RcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEYXlzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJHbGFjaWVySm9iUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlRpZXJcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiVGllclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlRpZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiU2VsZWN0UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIklucHV0U2VyaWFsaXphdGlvblwiLFxuICAgICAgICAgICAgICAgICAgXCJFeHByZXNzaW9uVHlwZVwiLFxuICAgICAgICAgICAgICAgICAgXCJFeHByZXNzaW9uXCIsXG4gICAgICAgICAgICAgICAgICBcIk91dHB1dFNlcmlhbGl6YXRpb25cIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiSW5wdXRTZXJpYWxpemF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiZFwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJFeHByZXNzaW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiT3V0cHV0U2VyaWFsaXphdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYnJcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPdXRwdXRMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiUzNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJCdWNrZXROYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJQcmVmaXhcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJLTVNDb250ZXh0XCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkNhbm5lZEFDTFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFjY2Vzc0NvbnRyb2xMaXN0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJUYWdnaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXVcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJVc2VyTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1ldGFkYXRhRW50cnlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlJlc3RvcmVSZXF1ZXN0XCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXN0b3JlT3V0cHV0UGF0aFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlc3RvcmUtb3V0cHV0LXBhdGhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWxpYXNcIjogXCJQb3N0T2JqZWN0UmVzdG9yZVwiXG4gICAgfSxcbiAgICBcIlNlbGVjdE9iamVjdENvbnRlbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfT9zZWxlY3Qmc2VsZWN0LXR5cGU9MlwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VsZWN0T2JqZWN0Q29udGVudFJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIkV4cHJlc3Npb25cIixcbiAgICAgICAgICBcIkV4cHJlc3Npb25UeXBlXCIsXG4gICAgICAgICAgXCJJbnB1dFNlcmlhbGl6YXRpb25cIixcbiAgICAgICAgICBcIk91dHB1dFNlcmlhbGl6YXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJFeHByZXNzaW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlJlcXVlc3RQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5wdXRTZXJpYWxpemF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYmRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRTZXJpYWxpemF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYnJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJldmVudHBheWxvYWRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImV2ZW50XCI6IHRydWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGF0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZXZlbnRwYXlsb2FkXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQnl0ZXNTY2FubmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJCeXRlc1Byb2Nlc3NlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQnl0ZXNSZXR1cm5lZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZXZlbnRcIjogdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJldmVudHBheWxvYWRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJCeXRlc1NjYW5uZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkJ5dGVzUHJvY2Vzc2VkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJCeXRlc1JldHVybmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJldmVudFwiOiB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29udFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZXZlbnRcIjogdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVuZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZXZlbnRcIjogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJldmVudHN0cmVhbVwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQYXlsb2FkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBsb2FkUGFydFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlBhcnROdW1iZXJcIixcbiAgICAgICAgICBcIlVwbG9hZElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJvZHlcIjoge1xuICAgICAgICAgICAgXCJzdHJlYW1pbmdcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TGVuZ3RoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1MZW5ndGhcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJ0TnVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXJ0TnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBsb2FkSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwbG9hZElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQm9keVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwbG9hZFBhcnRDb3B5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIkNvcHlTb3VyY2VcIixcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiUGFydE51bWJlclwiLFxuICAgICAgICAgIFwiVXBsb2FkSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZUlmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi1tYXRjaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VJZk1vZGlmaWVkU2luY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi1tb2RpZmllZC1zaW5jZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZUlmTm9uZU1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2UtaWYtbm9uZS1tYXRjaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VJZlVubW9kaWZpZWRTaW5jZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLWlmLXVubW9kaWZpZWQtc2luY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VSYW5nZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLXJhbmdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFydE51bWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFydE51bWJlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwbG9hZElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGxvYWRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VTU0VDdXN0b21lcktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZVNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2Utc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvcHlTb3VyY2VWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVBhcnRSZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkVUYWdcIjoge30sXG4gICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUtNU0tleUlkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWF3cy1rbXMta2V5LWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ29weVBhcnRSZXN1bHRcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMnZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRpc3BsYXlOYW1lXCI6IHt9LFxuICAgICAgICBcIklEXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiR3JhbnRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcmFudGVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZXJtaXNzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiVHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEaXNwbGF5TmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbWFpbEFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiSURcIjoge30sXG4gICAgICAgIFwiVHlwZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4c2k6dHlwZVwiLFxuICAgICAgICAgIFwieG1sQXR0cmlidXRlXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJVUklcIjoge31cbiAgICAgIH0sXG4gICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgIFwicHJlZml4XCI6IFwieHNpXCIsXG4gICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIlN0b3JhZ2VDbGFzc0FuYWx5c2lzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgXCJUYWdcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkFuZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNkXCIsXG4gICAgICAgICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTdG9yYWdlQ2xhc3NBbmFseXNpc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRGF0YUV4cG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIk91dHB1dFNjaGVtYVZlcnNpb25cIixcbiAgICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk91dHB1dFNjaGVtYVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIlMzQnVja2V0RGVzdGluYXRpb25cIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiUzNCdWNrZXREZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkZvcm1hdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJCdWNrZXRBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIktleVwiLFxuICAgICAgICBcIlZhbHVlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCIsXG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxsb3dlZE1ldGhvZHNcIixcbiAgICAgICAgICBcIkFsbG93ZWRPcmlnaW5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsbG93ZWRIZWFkZXJzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWxsb3dlZEhlYWRlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge30sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93ZWRNZXRob2RzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWxsb3dlZE1ldGhvZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge30sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93ZWRPcmlnaW5zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWxsb3dlZE9yaWdpblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge30sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cG9zZUhlYWRlcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeHBvc2VIZWFkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhBZ2VTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzQwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUnVsZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUnVsZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQXBwbHlTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlNTRUFsZ29yaXRobVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJTU0VBbGdvcml0aG1cIjoge30sXG4gICAgICAgICAgICAgICAgICBcIktNU01hc3RlcktleUlEXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJEZXN0aW5hdGlvblwiLFxuICAgICAgICBcIklzRW5hYmxlZFwiLFxuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiSW5jbHVkZWRPYmplY3RWZXJzaW9uc1wiLFxuICAgICAgICBcIlNjaGVkdWxlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUzNCdWNrZXREZXN0aW5hdGlvblwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJTM0J1Y2tldERlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgICAgICAgXCJGb3JtYXRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU1NFUzNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU1NFLVMzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU1NFS01TXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNTRS1LTVNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiS2V5SWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJc0VuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlByZWZpeFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQcmVmaXhcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiSW5jbHVkZWRPYmplY3RWZXJzaW9uc1wiOiB7fSxcbiAgICAgICAgXCJPcHRpb25hbEZpZWxkc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmllbGRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTY2hlZHVsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkZyZXF1ZW5jeVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJGcmVxdWVuY3lcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJlZml4XCIsXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSURcIjoge30sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJUcmFuc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzRvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEYXlzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFeHBpcmVkT2JqZWN0RGVsZXRlTWFya2VyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCIsXG4gICAgICBcInRpbWVzdGFtcEZvcm1hdFwiOiBcImlzbzg2MDFcIlxuICAgIH0sXG4gICAgXCJTNHRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRhdGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNHBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRheXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0b3JhZ2VDbGFzc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5vbmN1cnJlbnREYXlzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzR3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOb25jdXJyZW50RGF5c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzR4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEYXlzQWZ0ZXJJbml0aWF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSURcIjoge30sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge1xuICAgICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBbmRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJUcmFuc2l0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRyYW5zaXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHZcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm9uY3VycmVudFZlcnNpb25FeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0eFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUYXJnZXRCdWNrZXRcIixcbiAgICAgICAgXCJUYXJnZXRQcmVmaXhcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGFyZ2V0QnVja2V0XCI6IHt9LFxuICAgICAgICBcIlRhcmdldEdyYW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiR3JhbnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJHcmFudGVlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQZXJtaXNzaW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRhcmdldFByZWZpeFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJGaWx0ZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgIFwiVGFnXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJBbmRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZFwiLFxuICAgICAgICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQnVja2V0XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRvcGljQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXFcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFdmVudFwiOiB7XG4gICAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUb3BpY1wiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWV1ZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgXCJFdmVudFwiOiB7XG4gICAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVxXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUXVldWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xvdWRGdW5jdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgXCJFdmVudFwiOiB7XG4gICAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVxXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQ2xvdWRGdW5jdGlvblwiOiB7fSxcbiAgICAgICAgICAgIFwiSW52b2NhdGlvblJvbGVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNXlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRvcGljQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVG9waWNDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiVG9waWNBcm5cIixcbiAgICAgICAgICAgICAgXCJFdmVudHNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiVG9waWNBcm5cIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVG9waWNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1cVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWV1ZUNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlF1ZXVlQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlF1ZXVlQXJuXCIsXG4gICAgICAgICAgICAgIFwiRXZlbnRzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlF1ZXVlQXJuXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlF1ZXVlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXFcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJGaWx0ZXJcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFtYmRhRnVuY3Rpb25Db25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbG91ZEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQXJuXCIsXG4gICAgICAgICAgICAgIFwiRXZlbnRzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQXJuXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnVuY3Rpb25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1cVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTM0tleVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkZpbHRlclJ1bGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJSdWxlXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2aFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJvbGVcIixcbiAgICAgICAgXCJSdWxlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSb2xlXCI6IHt9LFxuICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJ1bGVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJQcmVmaXhcIixcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIixcbiAgICAgICAgICAgICAgXCJEZXN0aW5hdGlvblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJRFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNvdXJjZVNlbGVjdGlvbkNyaXRlcmlhXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJTc2VLbXNFbmNyeXB0ZWRPYmplY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiQWNjb3VudFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJBY2Nlc3NDb250cm9sVHJhbnNsYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJPd25lclwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJPd25lclwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiUmVwbGljYUttc0tleUlEXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJIb3N0TmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJIb3N0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJQcm90b2NvbFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJTdWZmaXhcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3VmZml4XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3YVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIktleVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSb3V0aW5nUnVsZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWRpcmVjdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25kaXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkh0dHBFcnJvckNvZGVSZXR1cm5lZEVxdWFsc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJLZXlQcmVmaXhFcXVhbHNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVkaXJlY3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkhvc3ROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkh0dHBSZWRpcmVjdENvZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVwbGFjZUtleVByZWZpeFdpdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVwbGFjZUtleVdpdGhcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzk3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJRFwiOiB7fSxcbiAgICAgICAgXCJEaXNwbGF5TmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOThcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByZWZpeFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTOXFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHt9LFxuICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiT3duZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTYThcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkdyYW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWNjZXNzQ29udHJvbExpc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcIk93bmVyXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYXVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUYWdTZXRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGFnU2V0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYmRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNTVlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRmlsZUhlYWRlckluZm9cIjoge30sXG4gICAgICAgICAgICBcIkNvbW1lbnRzXCI6IHt9LFxuICAgICAgICAgICAgXCJRdW90ZUVzY2FwZUNoYXJhY3RlclwiOiB7fSxcbiAgICAgICAgICAgIFwiUmVjb3JkRGVsaW1pdGVyXCI6IHt9LFxuICAgICAgICAgICAgXCJGaWVsZERlbGltaXRlclwiOiB7fSxcbiAgICAgICAgICAgIFwiUXVvdGVDaGFyYWN0ZXJcIjoge30sXG4gICAgICAgICAgICBcIkFsbG93UXVvdGVkUmVjb3JkRGVsaW1pdGVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXByZXNzaW9uVHlwZVwiOiB7fSxcbiAgICAgICAgXCJKU09OXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ1NWXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdW90ZUZpZWxkc1wiOiB7fSxcbiAgICAgICAgICAgIFwiUXVvdGVFc2NhcGVDaGFyYWN0ZXJcIjoge30sXG4gICAgICAgICAgICBcIlJlY29yZERlbGltaXRlclwiOiB7fSxcbiAgICAgICAgICAgIFwiRmllbGREZWxpbWl0ZXJcIjoge30sXG4gICAgICAgICAgICBcIlF1b3RlQ2hhcmFjdGVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkpTT05cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlJlY29yZERlbGltaXRlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RCdWNrZXRzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkJ1Y2tldHNcIlxuICAgIH0sXG4gICAgXCJMaXN0TXVsdGlwYXJ0VXBsb2Fkc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFtcbiAgICAgICAgXCJLZXlNYXJrZXJcIixcbiAgICAgICAgXCJVcGxvYWRJZE1hcmtlclwiXG4gICAgICBdLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhVcGxvYWRzXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBbXG4gICAgICAgIFwiTmV4dEtleU1hcmtlclwiLFxuICAgICAgICBcIk5leHRVcGxvYWRJZE1hcmtlclwiXG4gICAgICBdLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFtcbiAgICAgICAgXCJVcGxvYWRzXCIsXG4gICAgICAgIFwiQ29tbW9uUHJlZml4ZXNcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJMaXN0T2JqZWN0VmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBbXG4gICAgICAgIFwiS2V5TWFya2VyXCIsXG4gICAgICAgIFwiVmVyc2lvbklkTWFya2VyXCJcbiAgICAgIF0sXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEtleXNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFtcbiAgICAgICAgXCJOZXh0S2V5TWFya2VyXCIsXG4gICAgICAgIFwiTmV4dFZlcnNpb25JZE1hcmtlclwiXG4gICAgICBdLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFtcbiAgICAgICAgXCJWZXJzaW9uc1wiLFxuICAgICAgICBcIkRlbGV0ZU1hcmtlcnNcIixcbiAgICAgICAgXCJDb21tb25QcmVmaXhlc1wiXG4gICAgICBdXG4gICAgfSxcbiAgICBcIkxpc3RPYmplY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4S2V5c1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJJc1RydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyIHx8IENvbnRlbnRzWy0xXS5LZXlcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBbXG4gICAgICAgIFwiQ29udGVudHNcIixcbiAgICAgICAgXCJDb21tb25QcmVmaXhlc1wiXG4gICAgICBdXG4gICAgfSxcbiAgICBcIkxpc3RPYmplY3RzVjJcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIkNvbnRpbnVhdGlvblRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEtleXNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dENvbnRpbnVhdGlvblRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogW1xuICAgICAgICBcIkNvbnRlbnRzXCIsXG4gICAgICAgIFwiQ29tbW9uUHJlZml4ZXNcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJMaXN0UGFydHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhcnROdW1iZXJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UGFydHNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhcnROdW1iZXJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBhcnRzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiQnVja2V0RXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiSGVhZEJ1Y2tldFwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAyMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogMjAwLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInN0YXR1c1wiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogMzAxLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInN0YXR1c1wiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogNDAzLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInN0YXR1c1wiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogNDA0LFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInN0YXR1c1wiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiQnVja2V0Tm90RXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiSGVhZEJ1Y2tldFwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAyMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogNDA0LFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInN0YXR1c1wiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJPYmplY3RFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiA1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJIZWFkT2JqZWN0XCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDIwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiAyMDAsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiA0MDQsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJPYmplY3ROb3RFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiA1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJIZWFkT2JqZWN0XCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDIwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiA0MDQsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTEyLTEwXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInNlcnZpY2VjYXRhbG9nXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgU2VydmljZSBDYXRhbG9nXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJTZXJ2aWNlIENhdGFsb2dcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQVdTMjQyU2VydmljZUNhdGFsb2dTZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJzZXJ2aWNlY2F0YWxvZy0yMDE1LTEyLTEwXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFjY2VwdFBvcnRmb2xpb1NoYXJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlUHJpbmNpcGFsV2l0aFBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIixcbiAgICAgICAgICBcIlByaW5jaXBhbEFSTlwiLFxuICAgICAgICAgIFwiUHJpbmNpcGFsVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCI6IHt9LFxuICAgICAgICAgIFwiUHJpbmNpcGFsQVJOXCI6IHt9LFxuICAgICAgICAgIFwiUHJpbmNpcGFsVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZVByb2R1Y3RXaXRoUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIixcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VQb3J0Zm9saW9JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZVRhZ09wdGlvbldpdGhSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiVGFnT3B0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ09wdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weVByb2R1Y3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZVByb2R1Y3RBcm5cIixcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VQcm9kdWN0QXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0UHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0UHJvZHVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VQcm92aXNpb25pbmdBcnRpZmFjdElkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29weVByb2R1Y3RUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNvbnN0cmFpbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCIsXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIixcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIixcbiAgICAgICAgICBcIlR5cGVcIixcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge30sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnN0cmFpbnREZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3RyYWludFBhcmFtZXRlcnNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQb3J0Zm9saW9cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3BsYXlOYW1lXCIsXG4gICAgICAgICAgXCJQcm92aWRlck5hbWVcIixcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJEaXNwbGF5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb3J0Zm9saW9EZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBvcnRmb2xpb1NoYXJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiLFxuICAgICAgICAgIFwiQWNjb3VudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge30sXG4gICAgICAgICAgXCJBY2NvdW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQcm9kdWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJPd25lclwiLFxuICAgICAgICAgIFwiUHJvZHVjdFR5cGVcIixcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0UGFyYW1ldGVyc1wiLFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJPd25lclwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGlzdHJpYnV0b3JcIjoge30sXG4gICAgICAgICAgXCJTdXBwb3J0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdXBwb3J0RW1haWxcIjoge30sXG4gICAgICAgICAgXCJTdXBwb3J0VXJsXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdFR5cGVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvZHVjdFZpZXdEZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQcm92aXNpb25lZFByb2R1Y3RQbGFuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGFuTmFtZVwiLFxuICAgICAgICAgIFwiUGxhblR5cGVcIixcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0TmFtZVwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiLFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxhblR5cGVcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25Bcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXRoSWRcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGFuSWRcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25Qcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVByb3Zpc2lvbmluZ0FydGlmYWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIixcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIixcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUYWdPcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdPcHRpb25EZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNvbnN0cmFpbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQb3J0Zm9saW9cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQb3J0Zm9saW9TaGFyZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIixcbiAgICAgICAgICBcIkFjY291bnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCI6IHt9LFxuICAgICAgICAgIFwiQWNjb3VudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUHJvZHVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVByb3Zpc2lvbmVkUHJvZHVjdFBsYW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYW5JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYW5JZFwiOiB7fSxcbiAgICAgICAgICBcIklnbm9yZUVycm9yc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUHJvdmlzaW9uaW5nQXJ0aWZhY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYWdPcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25zdHJhaW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uc3RyYWludERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdHJhaW50UGFyYW1ldGVyc1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29weVByb2R1Y3RTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvcHlQcm9kdWN0VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJDb3B5UHJvZHVjdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29weVByb2R1Y3RTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNEZXRhaWxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvcnRmb2xpb0RldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQcm9kdWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvZHVjdFZpZXdTdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUHJvZHVjdEFzQWRtaW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm9kdWN0Vmlld0RldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQcm9kdWN0Vmlld1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb2R1Y3RWaWV3U3VtbWFyeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVByb3Zpc2lvbmVkUHJvZHVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaERhc2hib2FyZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVByb3Zpc2lvbmVkUHJvZHVjdFBsYW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYW5JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYW5JZFwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3RQbGFuRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGF0aElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQbGFuTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQbGFuSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJvdmlzaW9uUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByb3Zpc2lvblByb2R1Y3ROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBsYW5UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlVwZGF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5vdGlmaWNhdGlvbkFybnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb3Zpc2lvbmluZ1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VDaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBoeXNpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlcGxhY2VtZW50XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NvcGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiVGFyZ2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSZXF1aXJlc1JlY3JlYXRpb25cIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRXZhbHVhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkNhdXNpbmdFbnRpdHlcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQcm92aXNpb25pbmdBcnRpZmFjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiLFxuICAgICAgICAgIFwiUHJvZHVjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlZlcmJvc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVByb3Zpc2lvbmluZ1BhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQYXRoSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlcktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlclR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJc05vRWNob1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3RyYWludFN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNhZ2VJbnN0cnVjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlY29yZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWNvcmREZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1N1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY29yZE91dHB1dHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk91dHB1dEtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk91dHB1dFZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWdPcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnT3B0aW9uRGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVQcmluY2lwYWxGcm9tUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiLFxuICAgICAgICAgIFwiUHJpbmNpcGFsQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge30sXG4gICAgICAgICAgXCJQcmluY2lwYWxBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVQcm9kdWN0RnJvbVBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvZHVjdElkXCIsXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYXNzb2NpYXRlVGFnT3B0aW9uRnJvbVJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJUYWdPcHRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnT3B0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFeGVjdXRlUHJvdmlzaW9uZWRQcm9kdWN0UGxhblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhbklkXCIsXG4gICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUGxhbklkXCI6IHt9LFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWNvcmREZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1N1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBY2NlcHRlZFBvcnRmb2xpb1NoYXJlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb3J0Zm9saW9TaGFyZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb3J0Zm9saW9EZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENvbnN0cmFpbnRzRm9yUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnN0cmFpbnREZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RMYXVuY2hQYXRoc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvZHVjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhdW5jaFBhdGhTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29uc3RyYWludFN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR3XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UG9ydGZvbGlvQWNjZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjb3VudElkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFBvcnRmb2xpb3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9ydGZvbGlvRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQb3J0Zm9saW9zRm9yUHJvZHVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvZHVjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvcnRmb2xpb0RldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1elwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UHJpbmNpcGFsc0ZvclBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmluY2lwYWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQcmluY2lwYWxBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcmluY2lwYWxUeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQcm92aXNpb25lZFByb2R1Y3RQbGFuc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvblByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJBY2Nlc3NMZXZlbEZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0UGxhbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBsYW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGxhbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uUHJvZHVjdE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQbGFuVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0SWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFByb3Zpc2lvbmluZ0FydGlmYWN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvZHVjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3REZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVjb3JkSGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIkFjY2Vzc0xldmVsRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWFyY2hGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjb3JkRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlc291cmNlc0ZvclRhZ09wdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnT3B0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnT3B0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBY3RpdmVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdPcHRpb25EZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQcm92aXNpb25Qcm9kdWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIixcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0SWRcIixcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdE5hbWVcIixcbiAgICAgICAgICBcIlByb3Zpc2lvblRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhdGhJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3Zpc2lvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVqZWN0UG9ydGZvbGlvU2hhcmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY2FuUHJvdmlzaW9uZWRQcm9kdWN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIkFjY2Vzc0xldmVsRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VhcmNoUHJvZHVjdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU29ydEJ5XCI6IHt9LFxuICAgICAgICAgIFwiU29ydE9yZGVyXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvZHVjdFZpZXdTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZHVjdFZpZXdBZ2dyZWdhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiQXBwcm94aW1hdGVDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VhcmNoUHJvZHVjdHNBc0FkbWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3J0QnlcIjoge30sXG4gICAgICAgICAgXCJTb3J0T3JkZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZHVjdFNvdXJjZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb2R1Y3RWaWV3RGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VhcmNoUHJvdmlzaW9uZWRQcm9kdWN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIkFjY2Vzc0xldmVsRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3J0QnlcIjoge30sXG4gICAgICAgICAgXCJTb3J0T3JkZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFJlY29yZElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGh5c2ljYWxJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJVc2VyQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVXNlckFyblNlc3Npb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb3RhbFJlc3VsdHNDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlcm1pbmF0ZVByb3Zpc2lvbmVkUHJvZHVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVybWluYXRlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiVGVybWluYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWdub3JlRXJyb3JzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ29uc3RyYWludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uc3RyYWludERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdHJhaW50UGFyYW1ldGVyc1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICBcIkRpc3BsYXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJBZGRUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZW1vdmVUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOG5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb3J0Zm9saW9EZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVByb2R1Y3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3duZXJcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkRpc3RyaWJ1dG9yXCI6IHt9LFxuICAgICAgICAgIFwiU3VwcG9ydERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3VwcG9ydEVtYWlsXCI6IHt9LFxuICAgICAgICAgIFwiU3VwcG9ydFVybFwiOiB7fSxcbiAgICAgICAgICBcIkFkZFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlbW92ZVRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4blwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb2R1Y3RWaWV3RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQcm92aXNpb25lZFByb2R1Y3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVwZGF0ZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhdGhJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwZGF0ZVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUHJvdmlzaW9uaW5nQXJ0aWZhY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0SWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJBY3RpdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUYWdPcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJBY3RpdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ09wdGlvbkRldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb25zdHJhaW50SWRcIjoge30sXG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJPd25lclwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiS2V5XCIsXG4gICAgICAgIFwiVmFsdWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICBcIkRpc3BsYXlOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSW5mb1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkluZm9cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUHJvZHVjdFZpZXdTdW1tYXJ5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiUHJvZHVjdEFSTlwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk93bmVyXCI6IHt9LFxuICAgICAgICBcIlNob3J0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJEaXN0cmlidXRvclwiOiB7fSxcbiAgICAgICAgXCJIYXNEZWZhdWx0UGF0aFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VwcG9ydEVtYWlsXCI6IHt9LFxuICAgICAgICBcIlN1cHBvcnREZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJTdXBwb3J0VXJsXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFjdGl2ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMyNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJVc2VQcmV2aW91c1ZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgXCJBY3RpdmVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge30sXG4gICAgICAgIFwiTGFzdFJlY29yZElkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0d1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzU3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZWNvcmRJZFwiOiB7fSxcbiAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3ROYW1lXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVcGRhdGVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3RUeXBlXCI6IHt9LFxuICAgICAgICBcIlJlY29yZFR5cGVcIjoge30sXG4gICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0SWRcIjoge30sXG4gICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0SWRcIjoge30sXG4gICAgICAgIFwiUGF0aElkXCI6IHt9LFxuICAgICAgICBcIlJlY29yZEVycm9yc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlJlY29yZFRhZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1elwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNmtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4blwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RBY2NlcHRlZFBvcnRmb2xpb1NoYXJlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH0sXG4gICAgXCJMaXN0Q29uc3RyYWludHNGb3JQb3J0Zm9saW9cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFnZVRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIlBhZ2VTaXplXCJcbiAgICB9LFxuICAgIFwiTGlzdExhdW5jaFBhdGhzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJQYWdlU2l6ZVwiXG4gICAgfSxcbiAgICBcIkxpc3RQb3J0Zm9saW9zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJQYWdlU2l6ZVwiXG4gICAgfSxcbiAgICBcIkxpc3RQb3J0Zm9saW9zRm9yUHJvZHVjdFwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH0sXG4gICAgXCJMaXN0UHJpbmNpcGFsc0ZvclBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH0sXG4gICAgXCJMaXN0UmVzb3VyY2VzRm9yVGFnT3B0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIlBhZ2VTaXplXCJcbiAgICB9LFxuICAgIFwiTGlzdFRhZ09wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH0sXG4gICAgXCJTZWFyY2hQcm9kdWN0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH0sXG4gICAgXCJTZWFyY2hQcm9kdWN0c0FzQWRtaW5cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFnZVRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIlBhZ2VTaXplXCJcbiAgICB9LFxuICAgIFwiU2VhcmNoUHJvdmlzaW9uZWRQcm9kdWN0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMC0wMy0zMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJzbnNcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gU05TXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gU2ltcGxlIE5vdGlmaWNhdGlvbiBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJTTlNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwic25zLTIwMTAtMDMtMzFcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9zbnMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMC0wMy0zMS9cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkUGVybWlzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVG9waWNBcm5cIixcbiAgICAgICAgICBcIkxhYmVsXCIsXG4gICAgICAgICAgXCJBV1NBY2NvdW50SWRcIixcbiAgICAgICAgICBcIkFjdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJMYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkFXU0FjY291bnRJZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNoZWNrSWZQaG9uZU51bWJlcklzT3B0ZWRPdXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBob25lTnVtYmVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBob25lTnVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNoZWNrSWZQaG9uZU51bWJlcklzT3B0ZWRPdXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpc09wdGVkT3V0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb25maXJtU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUb3BpY0FyblwiLFxuICAgICAgICAgIFwiVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0ZU9uVW5zdWJzY3JpYmVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29uZmlybVN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbkFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBsYXRmb3JtQXBwbGljYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlBsYXRmb3JtXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVBsYXRmb3JtQXBwbGljYXRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUGxhdGZvcm1FbmRwb2ludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhdGZvcm1BcHBsaWNhdGlvbkFyblwiLFxuICAgICAgICAgIFwiVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1BcHBsaWNhdGlvbkFyblwiOiB7fSxcbiAgICAgICAgICBcIlRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQ3VzdG9tVXNlckRhdGFcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVQbGF0Zm9ybUVuZHBvaW50UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5kcG9pbnRBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUb3BpY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVRvcGljUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVFbmRwb2ludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5kcG9pbnRBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5kcG9pbnRBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQbGF0Zm9ybUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUb3BpY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRFbmRwb2ludEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVuZHBvaW50QXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZHBvaW50QXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldEVuZHBvaW50QXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UGxhdGZvcm1BcHBsaWNhdGlvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1BcHBsaWNhdGlvbkFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U01TQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRTTVNBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdWJzY3JpcHRpb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRUb3BpY0F0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFRvcGljQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEVuZHBvaW50c0J5UGxhdGZvcm1BcHBsaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhdGZvcm1BcHBsaWNhdGlvbkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RFbmRwb2ludHNCeVBsYXRmb3JtQXBwbGljYXRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmRwb2ludHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuZHBvaW50QXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UGhvbmVOdW1iZXJzT3B0ZWRPdXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RQaG9uZU51bWJlcnNPcHRlZE91dFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBob25lTnVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UGxhdGZvcm1BcHBsaWNhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RQbGF0Zm9ybUFwcGxpY2F0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFN1YnNjcmlwdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3Vic2NyaXB0aW9uc0J5VG9waWNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RTdWJzY3JpcHRpb25zQnlUb3BpY1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUb3BpY3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RUb3BpY3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUb3BpY3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiT3B0SW5QaG9uZU51bWJlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGhvbmVOdW1iZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGhvbmVOdW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiT3B0SW5QaG9uZU51bWJlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1Ymxpc2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1lc3NhZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRBcm5cIjoge30sXG4gICAgICAgICAgXCJQaG9uZU51bWJlclwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJTdWJqZWN0XCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZVN0cnVjdHVyZVwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZhbHVlXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkRhdGFUeXBlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRhdGFUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RyaW5nVmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCaW5hcnlWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlB1Ymxpc2hSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXNzYWdlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUb3BpY0FyblwiLFxuICAgICAgICAgIFwiTGFiZWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJMYWJlbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldEVuZHBvaW50QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5kcG9pbnRBcm5cIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5kcG9pbnRBcm5cIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFNNU0F0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0U01TQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbkFyblwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRUb3BpY0F0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRvcGljQXJuXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZVZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3Vic2NyaWJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUb3BpY0FyblwiLFxuICAgICAgICAgIFwiUHJvdG9jb2xcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIkVuZHBvaW50XCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuU3Vic2NyaXB0aW9uQXJuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU3Vic2NyaWJlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW5zdWJzY3JpYmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzEyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwiT3duZXJcIjoge30sXG4gICAgICAgICAgXCJQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIkVuZHBvaW50XCI6IHt9LFxuICAgICAgICAgIFwiVG9waWNBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RFbmRwb2ludHNCeVBsYXRmb3JtQXBwbGljYXRpb25cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkVuZHBvaW50c1wiXG4gICAgfSxcbiAgICBcIkxpc3RQbGF0Zm9ybUFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGxhdGZvcm1BcHBsaWNhdGlvbnNcIlxuICAgIH0sXG4gICAgXCJMaXN0U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3Vic2NyaXB0aW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTdWJzY3JpcHRpb25zQnlUb3BpY1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3Vic2NyaXB0aW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3RUb3BpY3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlRvcGljc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMi0xMS0wNVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJzcXNcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gU1FTXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gU2ltcGxlIFF1ZXVlIFNlcnZpY2VcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwic3FzLTIwMTItMTEtMDVcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9xdWV1ZS5hbWF6b25hd3MuY29tL2RvYy8yMDEyLTExLTA1L1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiLFxuICAgICAgICAgIFwiTGFiZWxcIixcbiAgICAgICAgICBcIkFXU0FjY291bnRJZHNcIixcbiAgICAgICAgICBcIkFjdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJMYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkFXU0FjY291bnRJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFXU0FjY291bnRJZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY3Rpb25OYW1lXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNoYW5nZU1lc3NhZ2VWaXNpYmlsaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiLFxuICAgICAgICAgIFwiUmVjZWlwdEhhbmRsZVwiLFxuICAgICAgICAgIFwiVmlzaWJpbGl0eVRpbWVvdXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJSZWNlaXB0SGFuZGxlXCI6IHt9LFxuICAgICAgICAgIFwiVmlzaWJpbGl0eVRpbWVvdXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNoYW5nZU1lc3NhZ2VWaXNpYmlsaXR5QmF0Y2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJFbnRyaWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9LFxuICAgICAgICAgIFwiRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2hhbmdlTWVzc2FnZVZpc2liaWxpdHlCYXRjaFJlcXVlc3RFbnRyeVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgIFwiUmVjZWlwdEhhbmRsZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlY2VpcHRIYW5kbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWaXNpYmlsaXR5VGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDaGFuZ2VNZXNzYWdlVmlzaWJpbGl0eUJhdGNoUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxcIixcbiAgICAgICAgICBcIkZhaWxlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDaGFuZ2VNZXNzYWdlVmlzaWJpbGl0eUJhdGNoUmVzdWx0RW50cnlcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFpbGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVF1ZXVlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXR0cmlidXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVF1ZXVlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNZXNzYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiLFxuICAgICAgICAgIFwiUmVjZWlwdEhhbmRsZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIlJlY2VpcHRIYW5kbGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNZXNzYWdlQmF0Y2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJFbnRyaWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9LFxuICAgICAgICAgIFwiRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVsZXRlTWVzc2FnZUJhdGNoUmVxdWVzdEVudHJ5XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgXCJSZWNlaXB0SGFuZGxlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVjZWlwdEhhbmRsZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlTWVzc2FnZUJhdGNoUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxcIixcbiAgICAgICAgICBcIkZhaWxlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZWxldGVNZXNzYWdlQmF0Y2hSZXN1bHRFbnRyeVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWlsZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUXVldWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UXVldWVBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRRdWV1ZUF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdHRyaWJ1dGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRRdWV1ZVVybFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVldWVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlF1ZXVlT3duZXJBV1NBY2NvdW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0UXVldWVVcmxSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REZWFkTGV0dGVyU291cmNlUXVldWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0RGVhZExldHRlclNvdXJjZVF1ZXVlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJxdWV1ZVVybHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicXVldWVVcmxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RRdWV1ZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RRdWV1ZVRhZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFF1ZXVlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZU5hbWVQcmVmaXhcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFF1ZXVlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXJnZVF1ZXVlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlY2VpdmVNZXNzYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1lc3NhZ2VBdHRyaWJ1dGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWVzc2FnZUF0dHJpYnV0ZU5hbWVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4TnVtYmVyT2ZNZXNzYWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmlzaWJpbGl0eVRpbWVvdXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldhaXRUaW1lU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjZWl2ZVJlcXVlc3RBdHRlbXB0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVjZWl2ZU1lc3NhZ2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXNzYWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWVzc2FnZVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlY2VpcHRIYW5kbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNRDVPZkJvZHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCb2R5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF0dHJpYnV0ZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICBcImtleVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTUQ1T2ZNZXNzYWdlQXR0cmlidXRlc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWVzc2FnZUF0dHJpYnV0ZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiLFxuICAgICAgICAgIFwiTGFiZWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJMYWJlbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRNZXNzYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiLFxuICAgICAgICAgIFwiTWVzc2FnZUJvZHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJNZXNzYWdlQm9keVwiOiB7fSxcbiAgICAgICAgICBcIkRlbGF5U2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWVzc2FnZUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZXNzYWdlQXR0cmlidXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWVzc2FnZURlZHVwbGljYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VHcm91cElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNlbmRNZXNzYWdlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUQ1T2ZNZXNzYWdlQm9keVwiOiB7fSxcbiAgICAgICAgICBcIk1ENU9mTWVzc2FnZUF0dHJpYnV0ZXNcIjoge30sXG4gICAgICAgICAgXCJNZXNzYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRNZXNzYWdlQmF0Y2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJFbnRyaWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9LFxuICAgICAgICAgIFwiRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VuZE1lc3NhZ2VCYXRjaFJlcXVlc3RFbnRyeVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZUJvZHlcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlQm9keVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlbGF5U2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZXNzYWdlQXR0cmlidXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZURlZHVwbGljYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VHcm91cElkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZW5kTWVzc2FnZUJhdGNoUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxcIixcbiAgICAgICAgICBcIkZhaWxlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZW5kTWVzc2FnZUJhdGNoUmVzdWx0RW50cnlcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VJZFwiLFxuICAgICAgICAgICAgICAgIFwiTUQ1T2ZNZXNzYWdlQm9keVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1ENU9mTWVzc2FnZUJvZHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNRDVPZk1lc3NhZ2VBdHRyaWJ1dGVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFpbGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFF1ZXVlQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVldWVVcmxcIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdHRyaWJ1dGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdRdWV1ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVldWVVcmxcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbnRhZ1F1ZXVlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ0tleVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJhdGNoUmVzdWx0RXJyb3JFbnRyeVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgIFwiU2VuZGVyRmF1bHRcIixcbiAgICAgICAgICBcIkNvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgXCJTZW5kZXJGYXVsdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29kZVwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICB9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmFsdWVcIlxuICAgICAgfSxcbiAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWUsXG4gICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF0dHJpYnV0ZVwiXG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdHRyaWJ1dGVOYW1lXCJcbiAgICAgIH0sXG4gICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJRdWV1ZVVybFwiXG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgIH0sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWYWx1ZVwiXG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZSxcbiAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCJcbiAgICB9LFxuICAgIFwiUzFnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVcIlxuICAgICAgfSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZhbHVlXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRhdGFUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmluZ1ZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiQmluYXJ5VmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0cmluZ0xpc3RWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyaW5nTGlzdFZhbHVlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyaW5nTGlzdFZhbHVlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmluYXJ5TGlzdFZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCaW5hcnlMaXN0VmFsdWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCaW5hcnlMaXN0VmFsdWVcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdFF1ZXVlc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJRdWV1ZVVybHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMTEtMDZcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwic3NtXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIFNTTVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFNpbXBsZSBTeXN0ZW1zIE1hbmFnZXIgKFNTTSlcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlNTTVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJBbWF6b25TU01cIixcbiAgICBcInVpZFwiOiBcInNzbS0yMDE0LTExLTA2XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NUb1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsQ29tbWFuZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29tbWFuZElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbW1hbmRJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFjdGl2YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklhbVJvbGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0SW5zdGFuY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSWFtUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIlJlZ2lzdHJhdGlvbkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBpcmF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3RpdmF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJBY3RpdmF0aW9uQ29kZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFzc29jaWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk91dHB1dExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBc3NvY2lhdGlvbkJhdGNoXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbnRyaWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudHJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VjY2Vzc2Z1bFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWlsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVudHJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmF1bHRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEb2N1bWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29udGVudFwiLFxuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb250ZW50XCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50Rm9ybWF0XCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvY3VtZW50RGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU1haW50ZW5hbmNlV2luZG93XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJTY2hlZHVsZVwiLFxuICAgICAgICAgIFwiRHVyYXRpb25cIixcbiAgICAgICAgICBcIkN1dG9mZlwiLFxuICAgICAgICAgIFwiQWxsb3dVbmFzc29jaWF0ZWRUYXJnZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NoZWR1bGVcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3V0b2ZmXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvd1VuYXNzb2NpYXRlZFRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUGF0Y2hCYXNlbGluZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR2xvYmFsRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwcm92YWxSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwcm92ZWRQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHByb3ZlZFBhdGNoZXNDb21wbGlhbmNlTGV2ZWxcIjoge30sXG4gICAgICAgICAgXCJBcHByb3ZlZFBhdGNoZXNFbmFibGVOb25TZWN1cml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVqZWN0ZWRQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXNvdXJjZURhdGFTeW5jXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTeW5jTmFtZVwiLFxuICAgICAgICAgIFwiUzNEZXN0aW5hdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTeW5jTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzRGVzdGluYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFjdGl2YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjdGl2YXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3RpdmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBc3NvY2lhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEb2N1bWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSW52ZW50b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUeXBlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNjaGVtYURlbGV0ZU9wdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVsZXRpb25TdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNYWludGVuYW5jZVdpbmRvd1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBhcmFtZXRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGV0ZWRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZhbGlkUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUGF0Y2hCYXNlbGluZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJlc291cmNlRGF0YVN5bmNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN5bmNOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN5bmNOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3Rlck1hbmFnZWRJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3RlclBhdGNoQmFzZWxpbmVGb3JQYXRjaEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYXNlbGluZUlkXCIsXG4gICAgICAgICAgXCJQYXRjaEdyb3VwXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge30sXG4gICAgICAgICAgXCJQYXRjaEdyb3VwXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyVGFyZ2V0RnJvbU1haW50ZW5hbmNlV2luZG93XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiLFxuICAgICAgICAgIFwiV2luZG93VGFyZ2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJXaW5kb3dUYXJnZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlNhZmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFyZ2V0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyVGFza0Zyb21NYWludGVuYW5jZVdpbmRvd1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93SWRcIixcbiAgICAgICAgICBcIldpbmRvd1Rhc2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIldpbmRvd1Rhc2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBY3RpdmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJGaWx0ZXJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGaWx0ZXJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aXZhdGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGl2YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdEluc3RhbmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklhbVJvbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb25MaW1pdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVnaXN0cmF0aW9uc0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFeHBpcmF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFeHBpcmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFzc29jaWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXNzb2NpYXRpb25FeGVjdXRpb25UYXJnZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCIsXG4gICAgICAgICAgXCJFeGVjdXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uRXhlY3V0aW9uVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRldGFpbGVkU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEV4ZWN1dGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3V0cHV0U291cmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJPdXRwdXRTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJPdXRwdXRTb3VyY2VUeXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXNzb2NpYXRpb25FeGVjdXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiLFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbkV4ZWN1dGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvblZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRldGFpbGVkU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEV4ZWN1dGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VDb3VudEJ5U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBdXRvbWF0aW9uRXhlY3V0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25NZXRhZGF0YUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvY3VtZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXhlY3V0aW9uRW5kVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRlZEJ5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTG9nRmlsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk91dHB1dHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2OVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1vZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQYXJlbnRBdXRvbWF0aW9uRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDdXJyZW50U3RlcE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDdXJyZW50QWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmFpbHVyZU1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNvbHZlZFRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWF4RXJyb3JzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBdXRvbWF0aW9uU3RlcEV4ZWN1dGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvbWF0aW9uRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldmVyc2VPcmRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RlcEV4ZWN1dGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXZhaWxhYmxlUGF0Y2hlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3NVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRG9jdW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvY3VtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURvY3VtZW50UGVybWlzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiUGVybWlzc2lvblR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBlcm1pc3Npb25UeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjb3VudElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFZmZlY3RpdmVJbnN0YW5jZUFzc29jaWF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbnRlbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvblZlcnNpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVmZmVjdGl2ZVBhdGNoZXNGb3JQYXRjaEJhc2VsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYXNlbGluZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFZmZlY3RpdmVQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQYXRjaFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGF0Y2hTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkRlcGxveW1lbnRTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tcGxpYW5jZUxldmVsXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkFwcHJvdmFsRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlQXNzb2NpYXRpb25zU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUFzc29jaWF0aW9uU3RhdHVzSW5mb3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGV0YWlsZWRTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdW1tYXJ5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3V0cHV0VXJsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTM091dHB1dFVybFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiT3V0cHV0VXJsXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VJbmZvcm1hdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUluZm9ybWF0aW9uRmlsdGVyTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImtleVwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVTZXRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVTZXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4Y1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4Y1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSW5mb3JtYXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGluZ1N0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RQaW5nRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWdlbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSXNMYXRlc3RWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBY3RpdmF0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJYW1Sb2xlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnaXN0cmF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSVBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcHV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0QXNzb2NpYXRpb25FeGVjdXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RTdWNjZXNzZnVsQXNzb2NpYXRpb25FeGVjdXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uT3ZlcnZpZXdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkRldGFpbGVkU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlQXNzb2NpYXRpb25TdGF0dXNBZ2dyZWdhdGVkQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VQYXRjaFN0YXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VQYXRjaFN0YXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOHdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlUGF0Y2hTdGF0ZXNGb3JQYXRjaEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQYXRjaEdyb3VwXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIixcbiAgICAgICAgICAgICAgICBcIlR5cGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZVBhdGNoU3RhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4d1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VQYXRjaGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiVGl0bGVcIixcbiAgICAgICAgICAgICAgICBcIktCSWRcIixcbiAgICAgICAgICAgICAgICBcIkNsYXNzaWZpY2F0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJTZXZlcml0eVwiLFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIixcbiAgICAgICAgICAgICAgICBcIkluc3RhbGxlZFRpbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGl0bGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJLQklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2xhc3NpZmljYXRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFsbGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUludmVudG9yeURlbGV0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxldGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW52ZW50b3J5RGVsZXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZWxldGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWxldGlvblN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0U3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFN0YXR1c01lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWxldGlvblN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RTdGF0dXNVcGRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWFpbnRlbmFuY2VXaW5kb3dFeGVjdXRpb25UYXNrSW52b2NhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCIsXG4gICAgICAgICAgXCJUYXNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJUYXNrSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25UYXNrSW52b2NhdGlvbklkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFza0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW52b2NhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXNrVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhN1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPd25lckluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOHlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJXaW5kb3dUYXJnZXRJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWFpbnRlbmFuY2VXaW5kb3dFeGVjdXRpb25UYXNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25UYXNrSWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXNrRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNEZXRhaWxzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFza0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhc2tUeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNYWludGVuYW5jZVdpbmRvd0V4ZWN1dGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzl2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1haW50ZW5hbmNlV2luZG93VGFyZ2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIldpbmRvd1RhcmdldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPd25lckluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOHlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWFpbnRlbmFuY2VXaW5kb3dUYXNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXNrc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJXaW5kb3dUYXNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXNrQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFza1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByaW9yaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMb2dnaW5nSW5mb1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F6XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1heEVycm9yc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNYWludGVuYW5jZVdpbmRvd3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzl2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDdXRvZmZcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlckZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFVzZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFsbG93ZWRQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQYXRjaEJhc2VsaW5lc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2J0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQYXRjaEdyb3VwU3RhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VzV2l0aEluc3RhbGxlZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlc1dpdGhJbnN0YWxsZWRPdGhlclBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlc1dpdGhNaXNzaW5nUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VzV2l0aEZhaWxlZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlc1dpdGhOb3RBcHBsaWNhYmxlUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQYXRjaEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUGF0Y2hHcm91cFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJhc2VsaW5lSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNidFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEF1dG9tYXRpb25FeGVjdXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvbWF0aW9uRXhlY3V0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvbWF0aW9uRXhlY3V0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBdXRvbWF0aW9uRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRG9jdW1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRXhlY3V0aW9uRW5kVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBdXRvbWF0aW9uRXhlY3V0aW9uU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0ZXBFeGVjdXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZwXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGVwRXhlY3V0aW9uc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2OVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3V0cHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2OVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRmFpbHVyZU1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgIFwiTW9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJlbnRBdXRvbWF0aW9uRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRXhlY3V0ZWRCeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDdXJyZW50U3RlcE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3VycmVudEFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVzb2x2ZWRUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhFcnJvcnNcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFyZ2V0XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbW1hbmRJbnZvY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb21tYW5kSWRcIixcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tbWFuZElkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlBsdWdpbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21tYW5kSWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlBsdWdpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXNwb25zZUNvZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4ZWN1dGlvblN0YXJ0RGF0ZVRpbWVcIjoge30sXG4gICAgICAgICAgXCJFeGVjdXRpb25FbGFwc2VkVGltZVwiOiB7fSxcbiAgICAgICAgICBcIkV4ZWN1dGlvbkVuZERhdGVUaW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICBcIlN0YW5kYXJkT3V0cHV0Q29udGVudFwiOiB7fSxcbiAgICAgICAgICBcIlN0YW5kYXJkT3V0cHV0VXJsXCI6IHt9LFxuICAgICAgICAgIFwiU3RhbmRhcmRFcnJvckNvbnRlbnRcIjoge30sXG4gICAgICAgICAgXCJTdGFuZGFyZEVycm9yVXJsXCI6IHt9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaE91dHB1dENvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGVmYXVsdFBhdGNoQmFzZWxpbmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERlcGxveWFibGVQYXRjaFNuYXBzaG90Rm9ySW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90RG93bmxvYWRVcmxcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RG9jdW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50Rm9ybWF0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkNvbnRlbnRcIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudFR5cGVcIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudEZvcm1hdFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEludmVudG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZ2dyZWdhdG9yc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2N3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzdWx0QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlR5cGVOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIlR5cGVOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJTY2hlbWFWZXJzaW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU2NoZW1hVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkNhcHR1cmVUaW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ29udGVudEhhc2hcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGFcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnZlbnRvcnlTY2hlbWFcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZ2dyZWdhdG9yXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJUeXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTY2hlbWFzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIixcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkRhdGFUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJEYXRhVHlwZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRpc3BsYXlOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TWFpbnRlbmFuY2VXaW5kb3dcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjaGVkdWxlXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1dG9mZlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxsb3dVbmFzc29jaWF0ZWRUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TWFpbnRlbmFuY2VXaW5kb3dFeGVjdXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJUYXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNYWludGVuYW5jZVdpbmRvd0V4ZWN1dGlvblRhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCIsXG4gICAgICAgICAgXCJUYXNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJUYXNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tBcm5cIjoge30sXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJUYXNrUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4RXJyb3JzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE1haW50ZW5hbmNlV2luZG93RXhlY3V0aW9uVGFza0ludm9jYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCIsXG4gICAgICAgICAgXCJUYXNrSWRcIixcbiAgICAgICAgICBcIkludm9jYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkludm9jYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiVGFza0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiSW52b2NhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJUYXNrVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPd25lckluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXaW5kb3dUYXJnZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE1haW50ZW5hbmNlV2luZG93VGFza1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93SWRcIixcbiAgICAgICAgICBcIldpbmRvd1Rhc2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIldpbmRvd1Rhc2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXNrQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXNrVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXNrSW52b2NhdGlvblBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaW9yaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiOiB7fSxcbiAgICAgICAgICBcIk1heEVycm9yc1wiOiB7fSxcbiAgICAgICAgICBcIkxvZ2dpbmdJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBhcmFtZXRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiV2l0aERlY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UGFyYW1ldGVySGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiV2l0aERlY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFVzZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWxsb3dlZFBhdHRlcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2l0aERlY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludmFsaWRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQYXJhbWV0ZXJzQnlQYXRoXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQYXRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhdGhcIjoge30sXG4gICAgICAgICAgXCJSZWN1cnNpdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlckZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldpdGhEZWNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQYXRjaEJhc2VsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYXNlbGluZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fSxcbiAgICAgICAgICBcIkdsb2JhbEZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmFsUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwcm92ZWRQYXRjaGVzQ29tcGxpYW5jZUxldmVsXCI6IHt9LFxuICAgICAgICAgIFwiQXBwcm92ZWRQYXRjaGVzRW5hYmxlTm9uU2VjdXJpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlamVjdGVkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGF0Y2hHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UGF0Y2hCYXNlbGluZUZvclBhdGNoR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiOiB7fSxcbiAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge30sXG4gICAgICAgICAgXCJQYXRjaEdyb3VwXCI6IHt9LFxuICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFzc29jaWF0aW9uVmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvblZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk91dHB1dExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvbk5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QXNzb2NpYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uRmlsdGVyTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImtleVwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEV4ZWN1dGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3ZlcnZpZXdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDb21tYW5kSW52b2NhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tbWFuZElkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbW1hbmRJbnZvY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ29tbWFuZElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEb2N1bWVudE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXF1ZXN0ZWREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNEZXRhaWxzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHJhY2VPdXRwdXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFuZGFyZE91dHB1dFVybFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YW5kYXJkRXJyb3JVcmxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21tYW5kUGx1Z2luc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJSZXNwb25zZUNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlJlc3BvbnNlU3RhcnREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJSZXNwb25zZUZpbmlzaERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIk91dHB1dFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlN0YW5kYXJkT3V0cHV0VXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU3RhbmRhcmRFcnJvclVybFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIk91dHB1dFMzUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiT3V0cHV0UzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiT3V0cHV0UzNLZXlQcmVmaXhcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2U1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaE91dHB1dENvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENvbW1hbmRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbW1hbmRJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21tYW5kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZndcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q29tcGxpYW5jZUl0ZW1zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tcGxpYW5jZUl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb21wbGlhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRpdGxlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2V2ZXJpdHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ2xcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ29cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q29tcGxpYW5jZVN1bW1hcmllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21wbGlhbmNlU3VtbWFyeUl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb21wbGlhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFudFN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNndFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5vbkNvbXBsaWFudFN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnd1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REb2N1bWVudFZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSXNEZWZhdWx0VmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRGb3JtYXRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RG9jdW1lbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvY3VtZW50RmlsdGVyTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImtleVwiLFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9jdW1lbnRJZGVudGlmaWVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk93bmVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGxhdGZvcm1UeXBlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NoZW1hVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvY3VtZW50Rm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEludmVudG9yeUVudHJpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIlR5cGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNjaGVtYVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJDYXB0dXJlVGltZVwiOiB7fSxcbiAgICAgICAgICBcIkVudHJpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZXNvdXJjZUNvbXBsaWFuY2VTdW1tYXJpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2czXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VDb21wbGlhbmNlU3VtbWFyeUl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb21wbGlhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJPdmVyYWxsU2V2ZXJpdHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ2xcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb21wbGlhbnRTdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3RcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOb25Db21wbGlhbnRTdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3dcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVzb3VyY2VEYXRhU3luY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZURhdGFTeW5jSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlN5bmNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUzNEZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNoXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFN5bmNUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RTdWNjZXNzZnVsU3luY1RpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN5bmNDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0U3luY1N0YXR1c01lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RG9jdW1lbnRQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJQZXJtaXNzaW9uVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGVybWlzc2lvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJBY2NvdW50SWRzVG9BZGRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3bVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY291bnRJZHNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0Q29tcGxpYW5jZUl0ZW1zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCIsXG4gICAgICAgICAgXCJFeGVjdXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgXCJJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFeGVjdXRpb25TdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlNldmVyaXR5XCIsXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUaXRsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNldmVyaXR5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dvXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXRlbUNvbnRlbnRIYXNoXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0SW52ZW50b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJUeXBlTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiU2NoZW1hVmVyc2lvblwiLFxuICAgICAgICAgICAgICAgIFwiQ2FwdHVyZVRpbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY2hlbWFWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2FwdHVyZVRpbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb250ZW50SGFzaFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbnRlbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkYVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbnRleHRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFBhcmFtZXRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiVmFsdWVcIixcbiAgICAgICAgICBcIlR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJPdmVyd3JpdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93ZWRQYXR0ZXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJEZWZhdWx0UGF0Y2hCYXNlbGluZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyUGF0Y2hCYXNlbGluZUZvclBhdGNoR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIixcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyVGFyZ2V0V2l0aE1haW50ZW5hbmNlV2luZG93XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJUYXJnZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPd25lckluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd1RhcmdldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJUYXNrV2l0aE1haW50ZW5hbmNlV2luZG93XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiLFxuICAgICAgICAgIFwiVGFyZ2V0c1wiLFxuICAgICAgICAgIFwiVGFza0FyblwiLFxuICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIixcbiAgICAgICAgICBcIlRhc2tUeXBlXCIsXG4gICAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiLFxuICAgICAgICAgIFwiTWF4RXJyb3JzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXNrQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXNrVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXNrSW52b2NhdGlvblBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaW9yaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiOiB7fSxcbiAgICAgICAgICBcIk1heEVycm9yc1wiOiB7fSxcbiAgICAgICAgICBcIkxvZ2dpbmdJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd1Rhc2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZW5kQXV0b21hdGlvblNpZ25hbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvbklkXCIsXG4gICAgICAgICAgXCJTaWduYWxUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlNpZ25hbFR5cGVcIjoge30sXG4gICAgICAgICAgXCJQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZW5kQ29tbWFuZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9jdW1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRIYXNoXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRIYXNoVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRTM1JlZ2lvblwiOiB7fSxcbiAgICAgICAgICBcIk91dHB1dFMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk91dHB1dFMzS2V5UHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiTWF4Q29uY3VycmVuY3lcIjoge30sXG4gICAgICAgICAgXCJNYXhFcnJvcnNcIjoge30sXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2U1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaE91dHB1dENvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tbWFuZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2Z3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRBc3NvY2lhdGlvbnNPbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydEF1dG9tYXRpb25FeGVjdXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb2N1bWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1vZGVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiOiB7fSxcbiAgICAgICAgICBcIk1heEVycm9yc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BBdXRvbWF0aW9uRXhlY3V0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvbWF0aW9uRXhlY3V0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFzc29jaWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk91dHB1dExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJBc3NvY2lhdGlvblZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBc3NvY2lhdGlvblN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiQXNzb2NpYXRpb25TdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJBc3NvY2lhdGlvblN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRG9jdW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbnRlbnRcIixcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udGVudFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudEZvcm1hdFwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldFR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb2N1bWVudERlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEb2N1bWVudERlZmF1bHRWZXJzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlZmF1bHRWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZU1haW50ZW5hbmNlV2luZG93XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NoZWR1bGVcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3V0b2ZmXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvd1VuYXNzb2NpYXRlZFRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2hlZHVsZVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXRvZmZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93VW5hc3NvY2lhdGVkVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTWFpbnRlbmFuY2VXaW5kb3dUYXJnZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0lkXCIsXG4gICAgICAgICAgXCJXaW5kb3dUYXJnZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIldpbmRvd1RhcmdldElkXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPd25lckluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFyZ2V0SWRcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk93bmVySW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTWFpbnRlbmFuY2VXaW5kb3dUYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiLFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXNrQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXNrUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFza0ludm9jYXRpb25QYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmlvcml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4Q29uY3VycmVuY3lcIjoge30sXG4gICAgICAgICAgXCJNYXhFcnJvcnNcIjoge30sXG4gICAgICAgICAgXCJMb2dnaW5nSW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXBsYWNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIldpbmRvd1Rhc2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFza0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFza1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhc2tJbnZvY2F0aW9uUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2UzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4RXJyb3JzXCI6IHt9LFxuICAgICAgICAgIFwiTG9nZ2luZ0luZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTWFuYWdlZEluc3RhbmNlUm9sZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiSWFtUm9sZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiSWFtUm9sZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVBhdGNoQmFzZWxpbmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJHbG9iYWxGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHByb3ZhbFJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHByb3ZlZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc0NvbXBsaWFuY2VMZXZlbFwiOiB7fSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc0VuYWJsZU5vblNlY3VyaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWplY3RlZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGFjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge30sXG4gICAgICAgICAgXCJHbG9iYWxGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHByb3ZhbFJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHByb3ZlZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc0NvbXBsaWFuY2VMZXZlbFwiOiB7fSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc0VuYWJsZU5vblNlY3VyaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWplY3RlZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlMzTG9jYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIk91dHB1dFMzUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJPdXRwdXRTM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgICBcIk91dHB1dFMzS2V5UHJlZml4XCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RVcGRhdGVBc3NvY2lhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPdmVydmlld1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgXCJPdXRwdXRMb2NhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdEV4ZWN1dGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdFN1Y2Nlc3NmdWxFeGVjdXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFzc29jaWF0aW9uTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJEYXRlXCIsXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIk1lc3NhZ2VcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiQWRkaXRpb25hbEluZm9cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiRGV0YWlsZWRTdGF0dXNcIjoge30sXG4gICAgICAgIFwiQXNzb2NpYXRpb25TdGF0dXNBZ2dyZWdhdGVkQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICBcIk91dHB1dExvY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBc3NvY2lhdGlvbk5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTaGExXCI6IHt9LFxuICAgICAgICBcIkhhc2hcIjoge30sXG4gICAgICAgIFwiSGFzaFR5cGVcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJPd25lclwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQbGF0Zm9ybVR5cGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEb2N1bWVudFR5cGVcIjoge30sXG4gICAgICAgIFwiU2NoZW1hVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJMYXRlc3RWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkRlZmF1bHRWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkRvY3VtZW50Rm9ybWF0XCI6IHt9LFxuICAgICAgICBcIlRhcmdldFR5cGVcIjoge30sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzJoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJQYXRjaEZpbHRlcnNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUGF0Y2hGaWx0ZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgXCJWYWx1ZXNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUGF0Y2hSdWxlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQYXRjaFJ1bGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJQYXRjaEZpbHRlckdyb3VwXCIsXG4gICAgICAgICAgICAgIFwiQXBwcm92ZUFmdGVyRGF5c1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQYXRjaEZpbHRlckdyb3VwXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb21wbGlhbmNlTGV2ZWxcIjoge30sXG4gICAgICAgICAgICAgIFwiQXBwcm92ZUFmdGVyRGF5c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5hYmxlTm9uU2VjdXJpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJQcm9kdWN0c1wiLFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQnVja2V0TmFtZVwiLFxuICAgICAgICBcIlN5bmNGb3JtYXRcIixcbiAgICAgICAgXCJSZWdpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgIFwiU3luY0Zvcm1hdFwiOiB7fSxcbiAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgIFwiQVdTS01TS2V5QVJOXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0MFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVG90YWxDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVtYWluaW5nQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN1bW1hcnlJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZW1haW5pbmdDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM2OVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQYXJhbWV0ZXJWYWx1ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIlRydW5jYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGVwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPbkZhaWx1cmVcIjoge30sXG4gICAgICAgICAgXCJNYXhBdHRlbXB0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4ZWN1dGlvbkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RlcFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlJlc3BvbnNlQ29kZVwiOiB7fSxcbiAgICAgICAgICBcIklucHV0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNwb25zZVwiOiB7fSxcbiAgICAgICAgICBcIkZhaWx1cmVNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiRmFpbHVyZURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkZhaWx1cmVTdGFnZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJGYWlsdXJlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY5XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGVwRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJPdmVycmlkZGVuUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZ4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzc1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJSZWxlYXNlRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUaXRsZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJDb250ZW50VXJsXCI6IHt9LFxuICAgICAgICBcIlZlbmRvclwiOiB7fSxcbiAgICAgICAgXCJQcm9kdWN0RmFtaWx5XCI6IHt9LFxuICAgICAgICBcIlByb2R1Y3RcIjoge30sXG4gICAgICAgIFwiQ2xhc3NpZmljYXRpb25cIjoge30sXG4gICAgICAgIFwiTXNyY1NldmVyaXR5XCI6IHt9LFxuICAgICAgICBcIktiTnVtYmVyXCI6IHt9LFxuICAgICAgICBcIk1zcmNOdW1iZXJcIjoge30sXG4gICAgICAgIFwiTGFuZ3VhZ2VcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM4Y1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTOHdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgIFwiUGF0Y2hHcm91cFwiLFxuICAgICAgICBcIkJhc2VsaW5lSWRcIixcbiAgICAgICAgXCJPcGVyYXRpb25TdGFydFRpbWVcIixcbiAgICAgICAgXCJPcGVyYXRpb25FbmRUaW1lXCIsXG4gICAgICAgIFwiT3BlcmF0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgIFwiUGF0Y2hHcm91cFwiOiB7fSxcbiAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgIFwiT3duZXJJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4eVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFsbGVkQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbGxlZE90aGVyQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1pc3NpbmdDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmFpbGVkQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5vdEFwcGxpY2FibGVDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3BlcmF0aW9uU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wZXJhdGlvbkVuZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3BlcmF0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzl2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2E3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTYXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2F6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUzNCdWNrZXROYW1lXCIsXG4gICAgICAgIFwiUzNSZWdpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICBcIlMzS2V5UHJlZml4XCI6IHt9LFxuICAgICAgICBcIlMzUmVnaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25cIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2J0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICBcIkJhc2VsaW5lTmFtZVwiOiB7fSxcbiAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge30sXG4gICAgICAgIFwiQmFzZWxpbmVEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJEZWZhdWx0QmFzZWxpbmVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2xvdWRXYXRjaExvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDbG91ZFdhdGNoT3V0cHV0RW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2NxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJWYWx1ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJBZ2dyZWdhdG9yc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2N3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUnVuQ29tbWFuZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgIFwiRG9jdW1lbnRIYXNoXCI6IHt9LFxuICAgICAgICAgICAgXCJEb2N1bWVudEhhc2hUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJOb3RpZmljYXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2U1XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk91dHB1dFMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiT3V0cHV0UzNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICBcIlRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkF1dG9tYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjlcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGVwRnVuY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJJbnB1dFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxhbWJkYVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ2xpZW50Q29udGV4dFwiOiB7fSxcbiAgICAgICAgICAgIFwiUXVhbGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgXCJQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTm90aWZpY2F0aW9uQXJuXCI6IHt9LFxuICAgICAgICBcIk5vdGlmaWNhdGlvbkV2ZW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTm90aWZpY2F0aW9uVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2VsXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2ZnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwia2V5XCIsXG4gICAgICAgICAgXCJ2YWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNmd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29tbWFuZElkXCI6IHt9LFxuICAgICAgICBcIkRvY3VtZW50TmFtZVwiOiB7fSxcbiAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgXCJFeHBpcmVzQWZ0ZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlcXVlc3RlZERhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNEZXRhaWxzXCI6IHt9LFxuICAgICAgICBcIk91dHB1dFMzUmVnaW9uXCI6IHt9LFxuICAgICAgICBcIk91dHB1dFMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJPdXRwdXRTM0tleVByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiOiB7fSxcbiAgICAgICAgXCJNYXhFcnJvcnNcIjoge30sXG4gICAgICAgIFwiVGFyZ2V0Q291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXBsZXRlZENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFcnJvckNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWxpdmVyeVRpbWVkT3V0Q291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNlNVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xvdWRXYXRjaE91dHB1dENvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNjZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2czXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkV4ZWN1dGlvblRpbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRXhlY3V0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJFeGVjdXRpb25UeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTZ3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvbXBsaWFudENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTZXZlcml0eVN1bW1hcnlcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNndlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3JpdGljYWxDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSGlnaENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNZWRpdW1Db3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTG93Q291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluZm9ybWF0aW9uYWxDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVW5zcGVjaWZpZWRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2d3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOb25Db21wbGlhbnRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2V2ZXJpdHlTdW1tYXJ5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2d2XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlQWN0aXZhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQWN0aXZhdGlvbkxpc3RcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlSW5mb3JtYXRpb25cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSW5zdGFuY2VJbmZvcm1hdGlvbkxpc3RcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkdldFBhcmFtZXRlckhpc3RvcnlcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkdldFBhcmFtZXRlcnNCeVBhdGhcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkxpc3RBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQXNzb2NpYXRpb25zXCJcbiAgICB9LFxuICAgIFwiTGlzdENvbW1hbmRJbnZvY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDb21tYW5kSW52b2NhdGlvbnNcIlxuICAgIH0sXG4gICAgXCJMaXN0Q29tbWFuZHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ29tbWFuZHNcIlxuICAgIH0sXG4gICAgXCJMaXN0RG9jdW1lbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRvY3VtZW50SWRlbnRpZmllcnNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTMtMDYtMzBcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwic3RvcmFnZWdhdGV3YXlcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBTdG9yYWdlIEdhdGV3YXlcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlN0b3JhZ2UgR2F0ZXdheVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJTdG9yYWdlR2F0ZXdheV8yMDEzMDYzMFwiLFxuICAgIFwidWlkXCI6IFwic3RvcmFnZWdhdGV3YXktMjAxMy0wNi0zMFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBY3RpdmF0ZUdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjdGl2YXRpb25LZXlcIixcbiAgICAgICAgICBcIkdhdGV3YXlOYW1lXCIsXG4gICAgICAgICAgXCJHYXRld2F5VGltZXpvbmVcIixcbiAgICAgICAgICBcIkdhdGV3YXlSZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aXZhdGlvbktleVwiOiB7fSxcbiAgICAgICAgICBcIkdhdGV3YXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheVRpbWV6b25lXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheVJlZ2lvblwiOiB7fSxcbiAgICAgICAgICBcIkdhdGV3YXlUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGFwZURyaXZlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1lZGl1bUNoYW5nZXJUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZENhY2hlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJEaXNrSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJEaXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRUYWdzVG9SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBUk5cIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBUk5cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkVXBsb2FkQnVmZmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJEaXNrSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJEaXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRXb3JraW5nU3RvcmFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiRGlza0lkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiRGlza0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsQXJjaGl2YWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIlRhcGVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsUmV0cmlldmFsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJUYXBlQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJUYXBlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNhY2hlZGlTQ1NJVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJWb2x1bWVTaXplSW5CeXRlc1wiLFxuICAgICAgICAgIFwiVGFyZ2V0TmFtZVwiLFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCIsXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVm9sdW1lU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJLTVNFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktNU0tleVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU5GU0ZpbGVTaGFyZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIixcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIlJvbGVcIixcbiAgICAgICAgICBcIkxvY2F0aW9uQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTkZTRmlsZVNoYXJlRGVmYXVsdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJLTVNFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktNU0tleVwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgXCJMb2NhdGlvbkFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRTdG9yYWdlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJPYmplY3RBQ0xcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcXVhc2hcIjoge30sXG4gICAgICAgICAgXCJSZWFkT25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3Vlc3NNSU1FVHlwZUVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RlclBheXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVNNQkZpbGVTaGFyZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIixcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIlJvbGVcIixcbiAgICAgICAgICBcIkxvY2F0aW9uQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5XCI6IHt9LFxuICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIkxvY2F0aW9uQVJOXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFN0b3JhZ2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIk9iamVjdEFDTFwiOiB7fSxcbiAgICAgICAgICBcIlJlYWRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHdWVzc01JTUVUeXBlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyUGF5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRVc2VyTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZFVzZXJMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVBUk5cIixcbiAgICAgICAgICBcIlNuYXBzaG90RGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3REZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTbmFwc2hvdEZyb21Wb2x1bWVSZWNvdmVyeVBvaW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVBUk5cIixcbiAgICAgICAgICBcIlNuYXBzaG90RGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3REZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVBUk5cIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVSZWNvdmVyeVBvaW50VGltZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0b3JlZGlTQ1NJVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJEaXNrSWRcIixcbiAgICAgICAgICBcIlByZXNlcnZlRXhpc3RpbmdEYXRhXCIsXG4gICAgICAgICAgXCJUYXJnZXROYW1lXCIsXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRpc2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJQcmVzZXJ2ZUV4aXN0aW5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUYXBlV2l0aEJhcmNvZGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIlRhcGVTaXplSW5CeXRlc1wiLFxuICAgICAgICAgIFwiVGFwZUJhcmNvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlRhcGVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFwZUJhcmNvZGVcIjoge30sXG4gICAgICAgICAgXCJLTVNFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktNU0tleVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUYXBlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiVGFwZVNpemVJbkJ5dGVzXCIsXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiLFxuICAgICAgICAgIFwiTnVtVGFwZXNUb0NyZWF0ZVwiLFxuICAgICAgICAgIFwiVGFwZUJhcmNvZGVQcmVmaXhcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlRhcGVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOdW1UYXBlc1RvQ3JlYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXBlQmFyY29kZVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJhbmR3aWR0aFJhdGVMaW1pdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiQmFuZHdpZHRoVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiQmFuZHdpZHRoVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDaGFwQ3JlZGVudGlhbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEFSTlwiLFxuICAgICAgICAgIFwiSW5pdGlhdG9yTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRBUk5cIjoge30sXG4gICAgICAgICAgXCJJbml0aWF0b3JOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0QVJOXCI6IHt9LFxuICAgICAgICAgIFwiSW5pdGlhdG9yTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZpbGVTaGFyZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkZvcmNlRGVsZXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU25hcHNob3RTY2hlZHVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRhcGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIlRhcGVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGFwZUFyY2hpdmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcGVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWb2x1bWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUJhbmR3aWR0aFJhdGVMaW1pdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkF2ZXJhZ2VVcGxvYWRSYXRlTGltaXRJbkJpdHNQZXJTZWNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2ZXJhZ2VEb3dubG9hZFJhdGVMaW1pdEluQml0c1BlclNlY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRpc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVBbGxvY2F0ZWRJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWNoZVVzZWRQZXJjZW50YWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlRGlydHlQZXJjZW50YWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlSGl0UGVyY2VudGFnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWNoZU1pc3NQZXJjZW50YWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVkaVNDU0lWb2x1bWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVBUk5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlZGlTQ1NJVm9sdW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVpU0NTSUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVVzZWRJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJLTVNLZXlcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNoYXBDcmVkZW50aWFsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFyZ2V0QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYXBDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGFyZ2V0QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2VjcmV0VG9BdXRoZW50aWNhdGVJbml0aWF0b3JcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbml0aWF0b3JOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2VjcmV0VG9BdXRoZW50aWNhdGVUYXJnZXRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUdhdGV3YXlJbmZvcm1hdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkdhdGV3YXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheVRpbWV6b25lXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheVN0YXRlXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheU5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJcHY0QWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1hY0FkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdhdGV3YXlUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFVwZGF0ZUF2YWlsYWJpbGl0eURhdGVcIjoge30sXG4gICAgICAgICAgXCJMYXN0U29mdHdhcmVVcGRhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1haW50ZW5hbmNlU3RhcnRUaW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiSG91ck9mRGF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW51dGVPZkhvdXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRheU9mV2Vla1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZXpvbmVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU5GU0ZpbGVTaGFyZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTkxpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTkZTRmlsZVNoYXJlSW5mb0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5GU0ZpbGVTaGFyZURlZmF1bHRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJGaWxlU2hhcmVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJLTVNFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIktNU0tleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBhdGhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb2xlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTG9jYXRpb25BUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0U3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT2JqZWN0QUNMXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2xpZW50TGlzdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3F1YXNoXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkd1ZXNzTUlNRVR5cGVFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXF1ZXN0ZXJQYXlzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNNQkZpbGVTaGFyZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTkxpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU01CRmlsZVNoYXJlSW5mb0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmlsZVNoYXJlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiS01TS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMb2NhdGlvbkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRTdG9yYWdlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJPYmplY3RBQ0xcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWFkT25seVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiR3Vlc3NNSU1FVHlwZUVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlcXVlc3RlclBheXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbGlkVXNlckxpc3RcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkludmFsaWRVc2VyTGlzdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXV0aGVudGljYXRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNNQlNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNNQkd1ZXN0UGFzc3dvcmRTZXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU25hcHNob3RTY2hlZHVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0QXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY3VycmVuY2VJbkhvdXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRpbWV6b25lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdG9yZWRpU0NTSVZvbHVtZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUFSTnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RvcmVkaVNDU0lWb2x1bWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJWb2x1bWVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lRGlza0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByZXNlcnZlZEV4aXN0aW5nRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1laVNDU0lBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVVc2VkSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYXBlQXJjaGl2ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQXJjaGl2ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRhcGVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXBlQmFyY29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcGVDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXBlU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbXBsZXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJldHJpZXZlZFRvXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFwZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcGVVc2VkSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiS01TS2V5XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYXBlUmVjb3ZlcnlQb2ludHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVGFwZVJlY292ZXJ5UG9pbnRJbmZvc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcGVSZWNvdmVyeVBvaW50VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXBlU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcGVTdGF0dXNcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhcGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJUYXBlQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUYXBlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFwZUJhcmNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXBlQ3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFwZVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXBlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVlRMRGV2aWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFwZVVzZWRJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJLTVNLZXlcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVVwbG9hZEJ1ZmZlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRpc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBsb2FkQnVmZmVyVXNlZEluQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwbG9hZEJ1ZmZlckFsbG9jYXRlZEluQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVlRMRGV2aWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVlRMRGV2aWNlQVJOc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlZUTERldmljZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlZUTERldmljZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZUTERldmljZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWVExEZXZpY2VWZW5kb3JcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWVExEZXZpY2VQcm9kdWN0SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRldmljZWlTQ1NJQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiVGFyZ2V0QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ2hhcEVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlV29ya2luZ1N0b3JhZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJEaXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldvcmtpbmdTdG9yYWdlVXNlZEluQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldvcmtpbmdTdG9yYWdlQWxsb2NhdGVkSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZUdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJKb2luRG9tYWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJVc2VyTmFtZVwiLFxuICAgICAgICAgIFwiUGFzc3dvcmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJVc2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEZpbGVTaGFyZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsZVNoYXJlSW5mb0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJGaWxlU2hhcmVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0R2F0ZXdheXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR2F0ZXdheVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJHYXRld2F5T3BlcmF0aW9uYWxTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdhdGV3YXlOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdExvY2FsRGlza3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJEaXNrc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGlza0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGlza1BhdGhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEaXNrTm9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRpc2tTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEaXNrU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRpc2tBbGxvY2F0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRpc2tBbGxvY2F0aW9uUmVzb3VyY2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhcGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVBUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUluZm9zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUYXBlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFwZUJhcmNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXBlU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcGVTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFZvbHVtZUluaXRpYXRvcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbml0aWF0b3JzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RWb2x1bWVSZWNvdmVyeVBvaW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZVJlY292ZXJ5UG9pbnRJbmZvc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVVzYWdlSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lUmVjb3ZlcnlQb2ludFRpbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Vm9sdW1lc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVJbmZvc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJOb3RpZnlXaGVuVXBsb2FkZWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZnJlc2hDYWNoZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQVJOXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc2V0Q2FjaGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXRyaWV2ZVRhcGVBcmNoaXZlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYXBlQVJOXCIsXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldHJpZXZlVGFwZVJlY292ZXJ5UG9pbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcGVBUk5cIixcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0TG9jYWxDb25zb2xlUGFzc3dvcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIkxvY2FsQ29uc29sZVBhc3N3b3JkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJMb2NhbENvbnNvbGVQYXNzd29yZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFNNQkd1ZXN0UGFzc3dvcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIlBhc3N3b3JkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJQYXNzd29yZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNodXRkb3duR2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUJhbmR3aWR0aFJhdGVMaW1pdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiQXZlcmFnZVVwbG9hZFJhdGVMaW1pdEluQml0c1BlclNlY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZlcmFnZURvd25sb2FkUmF0ZUxpbWl0SW5CaXRzUGVyU2VjXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ2hhcENyZWRlbnRpYWxzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYXJnZXRBUk5cIixcbiAgICAgICAgICBcIlNlY3JldFRvQXV0aGVudGljYXRlSW5pdGlhdG9yXCIsXG4gICAgICAgICAgXCJJbml0aWF0b3JOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEFSTlwiOiB7fSxcbiAgICAgICAgICBcIlNlY3JldFRvQXV0aGVudGljYXRlSW5pdGlhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiSW5pdGlhdG9yTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlY3JldFRvQXV0aGVudGljYXRlVGFyZ2V0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0QVJOXCI6IHt9LFxuICAgICAgICAgIFwiSW5pdGlhdG9yTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUdhdGV3YXlJbmZvcm1hdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheU5hbWVcIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5VGltZXpvbmVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVHYXRld2F5U29mdHdhcmVOb3dcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNYWludGVuYW5jZVN0YXJ0VGltZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiSG91ck9mRGF5XCIsXG4gICAgICAgICAgXCJNaW51dGVPZkhvdXJcIixcbiAgICAgICAgICBcIkRheU9mV2Vla1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiSG91ck9mRGF5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW51dGVPZkhvdXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRheU9mV2Vla1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZU5GU0ZpbGVTaGFyZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5XCI6IHt9LFxuICAgICAgICAgIFwiTkZTRmlsZVNoYXJlRGVmYXVsdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRTdG9yYWdlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJPYmplY3RBQ0xcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcXVhc2hcIjoge30sXG4gICAgICAgICAgXCJSZWFkT25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3Vlc3NNSU1FVHlwZUVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RlclBheXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVNNQkZpbGVTaGFyZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5XCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFN0b3JhZ2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIk9iamVjdEFDTFwiOiB7fSxcbiAgICAgICAgICBcIlJlYWRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHdWVzc01JTUVUeXBlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyUGF5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRVc2VyTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZFVzZXJMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTbmFwc2hvdFNjaGVkdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVBUk5cIixcbiAgICAgICAgICBcIlN0YXJ0QXRcIixcbiAgICAgICAgICBcIlJlY3VycmVuY2VJbkhvdXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0QXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY3VycmVuY2VJbkhvdXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVZUTERldmljZVR5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZUTERldmljZUFSTlwiLFxuICAgICAgICAgIFwiRGV2aWNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWVExEZXZpY2VBUk5cIjoge30sXG4gICAgICAgICAgXCJEZXZpY2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVlRMRGV2aWNlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRmlsZU1vZGVcIjoge30sXG4gICAgICAgIFwiRGlyZWN0b3J5TW9kZVwiOiB7fSxcbiAgICAgICAgXCJHcm91cElkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPd25lcklkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMyNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMndcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYXJnZXRBUk5cIjoge30sXG4gICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMdW5OdW1iZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNoYXBFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUNhY2hlZGlTQ1NJVm9sdW1lc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDYWNoZWRpU0NTSVZvbHVtZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0b3JlZGlTQ1NJVm9sdW1lc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdG9yZWRpU0NTSVZvbHVtZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhcGVBcmNoaXZlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVGFwZUFyY2hpdmVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYXBlUmVjb3ZlcnlQb2ludHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlRhcGVSZWNvdmVyeVBvaW50SW5mb3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhcGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJUYXBlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVlRMRGV2aWNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVlRMRGV2aWNlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RHYXRld2F5c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiR2F0ZXdheXNcIlxuICAgIH0sXG4gICAgXCJMaXN0TG9jYWxEaXNrc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEaXNrc1wiXG4gICAgfSxcbiAgICBcIkxpc3RWb2x1bWVSZWNvdmVyeVBvaW50c1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWb2x1bWVSZWNvdmVyeVBvaW50SW5mb3NcIlxuICAgIH0sXG4gICAgXCJMaXN0Vm9sdW1lc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVm9sdW1lSW5mb3NcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTItMDgtMTBcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwic3RyZWFtcy5keW5hbW9kYlwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjBcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIER5bmFtb0RCIFN0cmVhbXNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwic2lnbmluZ05hbWVcIjogXCJkeW5hbW9kYlwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiRHluYW1vREJTdHJlYW1zXzIwMTIwODEwXCIsXG4gICAgXCJ1aWRcIjogXCJzdHJlYW1zLWR5bmFtb2RiLTIwMTItMDgtMTBcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiRGVzY3JpYmVTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1Bcm5cIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRTaGFyZElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0cmVhbUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdHJlYW1MYWJlbFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdHJlYW1TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RyZWFtVmlld1R5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3JlYXRpb25SZXF1ZXN0RGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIktleVR5cGVcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJLZXlUeXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNoYXJkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTaGFyZElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlNlcXVlbmNlTnVtYmVyUmFuZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlN0YXJ0aW5nU2VxdWVuY2VOdW1iZXJcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkVuZGluZ1NlcXVlbmNlTnVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlBhcmVudFNoYXJkSWRcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGFzdEV2YWx1YXRlZFNoYXJkSWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVjb3Jkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2hhcmRJdGVyYXRvclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZEl0ZXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImV2ZW50SURcIjoge30sXG4gICAgICAgICAgICAgICAgXCJldmVudE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJldmVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJldmVudFNvdXJjZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImF3c1JlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImR5bmFtb2RiXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBcHByb3hpbWF0ZUNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiS2V5c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJOZXdJbWFnZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJPbGRJbWFnZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTaXplQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0cmVhbVZpZXdUeXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInVzZXJJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiUHJpbmNpcGFsSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0U2hhcmRJdGVyYXRvclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNoYXJkSXRlcmF0b3JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbUFyblwiLFxuICAgICAgICAgIFwiU2hhcmRJZFwiLFxuICAgICAgICAgIFwiU2hhcmRJdGVyYXRvclR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU2hhcmRJZFwiOiB7fSxcbiAgICAgICAgICBcIlNoYXJkSXRlcmF0b3JUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZEl0ZXJhdG9yXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0cmVhbXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4Y2x1c2l2ZVN0YXJ0U3RyZWFtQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RyZWFtQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RyZWFtTGFiZWxcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkU3RyZWFtQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNcIjoge30sXG4gICAgICAgIFwiTlwiOiB7fSxcbiAgICAgICAgXCJCXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTU1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTlNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIkJTXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk1cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk5VTExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkJPT0xcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMS0wNi0xNVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJzdHNcIixcbiAgICBcImdsb2JhbEVuZHBvaW50XCI6IFwic3RzLmFtYXpvbmF3cy5jb21cIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBV1MgU1RTXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgU2VjdXJpdHkgVG9rZW4gU2VydmljZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiU1RTXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcInN0cy0yMDExLTA2LTE1XCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwczovL3N0cy5hbWF6b25hd3MuY29tL2RvYy8yMDExLTA2LTE1L1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBc3N1bWVSb2xlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSb2xlQXJuXCIsXG4gICAgICAgICAgXCJSb2xlU2Vzc2lvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVTZXNzaW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXh0ZXJuYWxJZFwiOiB7fSxcbiAgICAgICAgICBcIlNlcmlhbE51bWJlclwiOiB7fSxcbiAgICAgICAgICBcIlRva2VuQ29kZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBc3N1bWVSb2xlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXNzdW1lZFJvbGVVc2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhY2tlZFBvbGljeVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc3VtZVJvbGVXaXRoU0FNTFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUm9sZUFyblwiLFxuICAgICAgICAgIFwiUHJpbmNpcGFsQXJuXCIsXG4gICAgICAgICAgXCJTQU1MQXNzZXJ0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJQcmluY2lwYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJTQU1MQXNzZXJ0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXNzdW1lUm9sZVdpdGhTQU1MUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXNzdW1lZFJvbGVVc2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhY2tlZFBvbGljeVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1YmplY3RcIjoge30sXG4gICAgICAgICAgXCJTdWJqZWN0VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIklzc3VlclwiOiB7fSxcbiAgICAgICAgICBcIkF1ZGllbmNlXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVF1YWxpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJvbGVBcm5cIixcbiAgICAgICAgICBcIlJvbGVTZXNzaW9uTmFtZVwiLFxuICAgICAgICAgIFwiV2ViSWRlbnRpdHlUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZVNlc3Npb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiV2ViSWRlbnRpdHlUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlByb3ZpZGVySWRcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3ViamVjdEZyb21XZWJJZGVudGl0eVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQXNzdW1lZFJvbGVVc2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhY2tlZFBvbGljeVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3ZpZGVyXCI6IHt9LFxuICAgICAgICAgIFwiQXVkaWVuY2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWNvZGVBdXRob3JpemF0aW9uTWVzc2FnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5jb2RlZE1lc3NhZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5jb2RlZE1lc3NhZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVjb2RlQXV0aG9yaXphdGlvbk1lc3NhZ2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWNvZGVkTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENhbGxlcklkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRDYWxsZXJJZGVudGl0eVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkFjY291bnRcIjoge30sXG4gICAgICAgICAgXCJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRGZWRlcmF0aW9uVG9rZW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldEZlZGVyYXRpb25Ub2tlblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZlZGVyYXRlZFVzZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJGZWRlcmF0ZWRVc2VySWRcIixcbiAgICAgICAgICAgICAgXCJBcm5cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRmVkZXJhdGVkVXNlcklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFyblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWNrZWRQb2xpY3lTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTZXNzaW9uVG9rZW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHVyYXRpb25TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJpYWxOdW1iZXJcIjoge30sXG4gICAgICAgICAgXCJUb2tlbkNvZGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0U2Vzc2lvblRva2VuUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQWNjZXNzS2V5SWRcIixcbiAgICAgICAgXCJTZWNyZXRBY2Nlc3NLZXlcIixcbiAgICAgICAgXCJTZXNzaW9uVG9rZW5cIixcbiAgICAgICAgXCJFeHBpcmF0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFjY2Vzc0tleUlkXCI6IHt9LFxuICAgICAgICBcIlNlY3JldEFjY2Vzc0tleVwiOiB7fSxcbiAgICAgICAgXCJTZXNzaW9uVG9rZW5cIjoge30sXG4gICAgICAgIFwiRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkFzc3VtZWRSb2xlSWRcIixcbiAgICAgICAgXCJBcm5cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXNzdW1lZFJvbGVJZFwiOiB7fSxcbiAgICAgICAgXCJBcm5cIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTA4LTI0XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcIndhZlwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIldBRlwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIFdBRlwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiV0FGXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFXU1dBRl8yMDE1MDgyNFwiLFxuICAgIFwidWlkXCI6IFwid2FmLTIwMTUtMDgtMjRcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQ3JlYXRlQnl0ZU1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCeXRlTWF0Y2hTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVHZW9NYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2VvTWF0Y2hTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVJUFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSVBTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSYXRlQmFzZWRSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCIsXG4gICAgICAgICAgXCJSYXRlS2V5XCIsXG4gICAgICAgICAgXCJSYXRlTGltaXRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmF0ZUtleVwiOiB7fSxcbiAgICAgICAgICBcIlJhdGVMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVnZXhNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnZXhNYXRjaFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZWdleFBhdHRlcm5TZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZ2V4UGF0dGVyblNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSdWxlR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU2l6ZUNvbnN0cmFpbnRTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVNxbEluamVjdGlvbk1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVXZWJBQ0xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIkRlZmF1bHRBY3Rpb25cIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdEFjdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXZWJBQ0xcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlWHNzTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlhzc01hdGNoU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ5dGVNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnl0ZU1hdGNoU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUdlb01hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHZW9NYXRjaFNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHZW9NYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUlQU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJUFNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJUFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBlcm1pc3Npb25Qb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmF0ZUJhc2VkUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUlkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlSWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVnZXhNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVnZXhNYXRjaFNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdleE1hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVnZXhQYXR0ZXJuU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUlkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlSWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUnVsZUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlR3JvdXBJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU2l6ZUNvbnN0cmFpbnRTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU3FsSW5qZWN0aW9uTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlV2ViQUNMXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2ViQUNMSWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlWHNzTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlhzc01hdGNoU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlhzc01hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Qnl0ZU1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCeXRlTWF0Y2hTZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCeXRlTWF0Y2hTZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ5dGVNYXRjaFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDaGFuZ2VUb2tlblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENoYW5nZVRva2VuU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0R2VvTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdlb01hdGNoU2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2VvTWF0Y2hTZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdlb01hdGNoU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldElQU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJUFNldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklQU2V0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJUFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQZXJtaXNzaW9uUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJhdGVCYXNlZFJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJhdGVCYXNlZFJ1bGVNYW5hZ2VkS2V5c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYW5hZ2VkS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVnZXhNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVnZXhNYXRjaFNldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZ2V4TWF0Y2hTZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZ2V4TWF0Y2hTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlZ2V4UGF0dGVyblNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSdWxlR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVHcm91cElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVHcm91cElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTYW1wbGVkUmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldlYkFjbElkXCIsXG4gICAgICAgICAgXCJSdWxlSWRcIixcbiAgICAgICAgICBcIlRpbWVXaW5kb3dcIixcbiAgICAgICAgICBcIk1heEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldlYkFjbElkXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGltZVdpbmRvd1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNhbXBsZWRSZXF1ZXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlJlcXVlc3RcIixcbiAgICAgICAgICAgICAgICBcIldlaWdodFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDbGllbnRJUFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb3VudHJ5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlVSSVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJNZXRob2RcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiSFRUUFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIldlaWdodFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJ1bGVXaXRoaW5SdWxlR3JvdXBcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb3B1bGF0aW9uU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZVdpbmRvd1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U2l6ZUNvbnN0cmFpbnRTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRTZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTcWxJbmplY3Rpb25NYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFdlYkFDTFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2ViQUNMSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2ViQUNMSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXZWJBQ0xcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFhzc01hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJYc3NNYXRjaFNldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlhzc01hdGNoU2V0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJYc3NNYXRjaFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFjdGl2YXRlZFJ1bGVzSW5SdWxlR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJBY3RpdmF0ZWRSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJ5dGVNYXRjaFNldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQnl0ZU1hdGNoU2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RHZW9NYXRjaFNldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiR2VvTWF0Y2hTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiR2VvTWF0Y2hTZXRJZFwiLFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJHZW9NYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJUFNldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSVBTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSVBTZXRJZFwiLFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJUFNldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSYXRlQmFzZWRSdWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlZ2V4TWF0Y2hTZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlZ2V4TWF0Y2hTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUmVnZXhNYXRjaFNldElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlZ2V4TWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVnZXhQYXR0ZXJuU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIixcbiAgICAgICAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJ1bGVHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlJ1bGVHcm91cElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJ1bGVHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSdWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFNpemVDb25zdHJhaW50U2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJTaXplQ29uc3RyYWludFNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJTaXplQ29uc3RyYWludFNldElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFNxbEluamVjdGlvbk1hdGNoU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN1YnNjcmliZWRSdWxlR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJ1bGVHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJSdWxlR3JvdXBJZFwiLFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSdWxlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFdlYkFDTHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiV2ViQUNMc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIldlYkFDTElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIldlYkFDTElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RYc3NNYXRjaFNldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiWHNzTWF0Y2hTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiWHNzTWF0Y2hTZXRJZFwiLFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJYc3NNYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFBlcm1pc3Npb25Qb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCIsXG4gICAgICAgICAgXCJQb2xpY3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVCeXRlTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiLFxuICAgICAgICAgIFwiVXBkYXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCeXRlTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgIFwiQnl0ZU1hdGNoVHVwbGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQnl0ZU1hdGNoVHVwbGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVHZW9NYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2VvTWF0Y2hTZXRJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIixcbiAgICAgICAgICBcIlVwZGF0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2VvTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgIFwiR2VvTWF0Y2hDb25zdHJhaW50XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdlb01hdGNoQ29uc3RyYWludFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUlQU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJUFNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiLFxuICAgICAgICAgIFwiVXBkYXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJUFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJJUFNldERlc2NyaXB0b3JcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSVBTZXREZXNjcmlwdG9yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUmF0ZUJhc2VkUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUlkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiLFxuICAgICAgICAgIFwiVXBkYXRlc1wiLFxuICAgICAgICAgIFwiUmF0ZUxpbWl0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmF0ZUxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlZ2V4TWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlZ2V4TWF0Y2hTZXRJZFwiLFxuICAgICAgICAgIFwiVXBkYXRlc1wiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnZXhNYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgIFwiUmVnZXhNYXRjaFR1cGxlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZ2V4TWF0Y2hUdXBsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlZ2V4UGF0dGVyblNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIixcbiAgICAgICAgICBcIlVwZGF0ZXNcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZ2V4UGF0dGVyblNldElkXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU3RyaW5nXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZ2V4UGF0dGVyblN0cmluZ1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlSWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCIsXG4gICAgICAgICAgXCJVcGRhdGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSdWxlR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVHcm91cElkXCIsXG4gICAgICAgICAgXCJVcGRhdGVzXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIlVwZGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICBcIkFjdGl2YXRlZFJ1bGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWN0aXZhdGVkUnVsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVNpemVDb25zdHJhaW50U2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTaXplQ29uc3RyYWludFNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiLFxuICAgICAgICAgIFwiVXBkYXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaXplQ29uc3RyYWludFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJTaXplQ29uc3RyYWludFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTaXplQ29uc3RyYWludFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTcWxJbmplY3Rpb25NYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIixcbiAgICAgICAgICBcIlVwZGF0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hUdXBsZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFR1cGxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVdlYkFDTFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2ViQUNMSWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldlYkFDTElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJBY3RpdmF0ZWRSdWxlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFjdGl2YXRlZFJ1bGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRBY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlWHNzTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlhzc01hdGNoU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCIsXG4gICAgICAgICAgXCJVcGRhdGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlhzc01hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlVwZGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICBcIlhzc01hdGNoVHVwbGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiWHNzTWF0Y2hUdXBsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJCeXRlTWF0Y2hTZXRJZFwiLFxuICAgICAgICBcIkJ5dGVNYXRjaFR1cGxlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCeXRlTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkJ5dGVNYXRjaFR1cGxlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRmllbGRUb01hdGNoXCIsXG4gICAgICAgIFwiVGFyZ2V0U3RyaW5nXCIsXG4gICAgICAgIFwiVGV4dFRyYW5zZm9ybWF0aW9uXCIsXG4gICAgICAgIFwiUG9zaXRpb25hbENvbnN0cmFpbnRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRmllbGRUb01hdGNoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhcmdldFN0cmluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGV4dFRyYW5zZm9ybWF0aW9uXCI6IHt9LFxuICAgICAgICBcIlBvc2l0aW9uYWxDb25zdHJhaW50XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiVHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIkRhdGFcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJHZW9NYXRjaFNldElkXCIsXG4gICAgICAgIFwiR2VvTWF0Y2hDb25zdHJhaW50c1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJHZW9NYXRjaFNldElkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiR2VvTWF0Y2hDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiVHlwZVwiLFxuICAgICAgICBcIlZhbHVlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU29cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJUFNldElkXCIsXG4gICAgICAgIFwiSVBTZXREZXNjcmlwdG9yc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJUFNldElkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiSVBTZXREZXNjcmlwdG9yc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiVHlwZVwiLFxuICAgICAgICBcIlZhbHVlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSdWxlSWRcIixcbiAgICAgICAgXCJNYXRjaFByZWRpY2F0ZXNcIixcbiAgICAgICAgXCJSYXRlS2V5XCIsXG4gICAgICAgIFwiUmF0ZUxpbWl0XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgIFwiTWF0Y2hQcmVkaWNhdGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJhdGVLZXlcIjoge30sXG4gICAgICAgIFwiUmF0ZUxpbWl0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOZWdhdGVkXCIsXG4gICAgICAgIFwiVHlwZVwiLFxuICAgICAgICBcIkRhdGFJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOZWdhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIkRhdGFJZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlZ2V4TWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlJlZ2V4TWF0Y2hUdXBsZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRmllbGRUb01hdGNoXCIsXG4gICAgICAgIFwiVGV4dFRyYW5zZm9ybWF0aW9uXCIsXG4gICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRmllbGRUb01hdGNoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRleHRUcmFuc2Zvcm1hdGlvblwiOiB7fSxcbiAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiLFxuICAgICAgICBcIlJlZ2V4UGF0dGVyblN0cmluZ3NcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJSZWdleFBhdHRlcm5TdHJpbmdzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSdWxlSWRcIixcbiAgICAgICAgXCJQcmVkaWNhdGVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgIFwiUHJlZGljYXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSdWxlR3JvdXBJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSdWxlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk1ldHJpY05hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRTZXRJZFwiLFxuICAgICAgICBcIlNpemVDb25zdHJhaW50c1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTaXplQ29uc3RyYWludFNldElkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkZpZWxkVG9NYXRjaFwiLFxuICAgICAgICBcIlRleHRUcmFuc2Zvcm1hdGlvblwiLFxuICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiLFxuICAgICAgICBcIlNpemVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRmllbGRUb01hdGNoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRleHRUcmFuc2Zvcm1hdGlvblwiOiB7fSxcbiAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIjoge30sXG4gICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRJZFwiLFxuICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoVHVwbGVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoU2V0SWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFR1cGxlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIixcbiAgICAgICAgXCJUZXh0VHJhbnNmb3JtYXRpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRmllbGRUb01hdGNoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRleHRUcmFuc2Zvcm1hdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUeXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiV2ViQUNMSWRcIixcbiAgICAgICAgXCJEZWZhdWx0QWN0aW9uXCIsXG4gICAgICAgIFwiUnVsZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiV2ViQUNMSWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlZmF1bHRBY3Rpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUHJpb3JpdHlcIixcbiAgICAgICAgXCJSdWxlSWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUHJpb3JpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgXCJBY3Rpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICB9LFxuICAgICAgICBcIk92ZXJyaWRlQWN0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiVHlwZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiWHNzTWF0Y2hTZXRJZFwiLFxuICAgICAgICBcIlhzc01hdGNoVHVwbGVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlhzc01hdGNoU2V0SWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJYc3NNYXRjaFR1cGxlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIixcbiAgICAgICAgXCJUZXh0VHJhbnNmb3JtYXRpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRmllbGRUb01hdGNoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRleHRUcmFuc2Zvcm1hdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJTdGFydFRpbWVcIixcbiAgICAgICAgXCJFbmRUaW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1NFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVJZFwiLFxuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgXCJQcmVkaWNhdGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZGljYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTYtMDUtMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwid29ya2RvY3NcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFdvcmtEb2NzXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcIndvcmtkb2NzLTIwMTYtMDUtMDFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWJvcnREb2N1bWVudFZlcnNpb25VcGxvYWRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHMve0RvY3VtZW50SWR9L3ZlcnNpb25zL3tWZXJzaW9uSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb2N1bWVudElkXCIsXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZlcnNpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFjdGl2YXRlVXNlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3VzZXJzL3tVc2VySWR9L2FjdGl2YXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkUmVzb3VyY2VQZXJtaXNzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3Jlc291cmNlcy97UmVzb3VyY2VJZH0vcGVybWlzc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlByaW5jaXBhbHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaW5jaXBhbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiLFxuICAgICAgICAgICAgICAgIFwiUm9sZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb2xlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU2VuZEVtYWlsXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbWFpbE1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2hhcmVSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQcmluY2lwYWxJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTaGFyZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDb21tZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZG9jdW1lbnRzL3tEb2N1bWVudElkfS92ZXJzaW9ucy97VmVyc2lvbklkfS9jb21tZW50XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb2N1bWVudElkXCIsXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIixcbiAgICAgICAgICBcIlRleHRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZlcnNpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmVudElkXCI6IHt9LFxuICAgICAgICAgIFwiVGhyZWFkSWRcIjoge30sXG4gICAgICAgICAgXCJUZXh0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWaXNpYmlsaXR5XCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZ5Q29sbGFib3JhdG9yc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ3VzdG9tTWV0YWRhdGFcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9yZXNvdXJjZXMve1Jlc291cmNlSWR9L2N1c3RvbU1ldGFkYXRhXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJDdXN0b21NZXRhZGF0YVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRm9sZGVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZm9sZGVyc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGFyZW50Rm9sZGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyZW50Rm9sZGVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTGFiZWxzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvcmVzb3VyY2VzL3tSZXNvdXJjZUlkfS9sYWJlbHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIkxhYmVsc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhYmVsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVOb3RpZmljYXRpb25TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9vcmdhbml6YXRpb25zL3tPcmdhbml6YXRpb25JZH0vc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3JnYW5pemF0aW9uSWRcIixcbiAgICAgICAgICBcIkVuZHBvaW50XCIsXG4gICAgICAgICAgXCJQcm90b2NvbFwiLFxuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZ2FuaXphdGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgXCJQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvblR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVVzZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS91c2Vyc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIkdpdmVuTmFtZVwiLFxuICAgICAgICAgIFwiU3VybmFtZVwiLFxuICAgICAgICAgIFwiUGFzc3dvcmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3JnYW5pemF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVtYWlsQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIkdpdmVuTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN1cm5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXNzd29yZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZVpvbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0b3JhZ2VSdWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWFjdGl2YXRlVXNlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3VzZXJzL3tVc2VySWR9L2FjdGl2YXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNvbW1lbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHMve0RvY3VtZW50SWR9L3ZlcnNpb25zL3tWZXJzaW9uSWR9L2NvbW1lbnQve0NvbW1lbnRJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIixcbiAgICAgICAgICBcIlZlcnNpb25JZFwiLFxuICAgICAgICAgIFwiQ29tbWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRvY3VtZW50SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWZXJzaW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21tZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb21tZW50SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDdXN0b21NZXRhZGF0YVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3Jlc291cmNlcy97UmVzb3VyY2VJZH0vY3VzdG9tTWV0YWRhdGFcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZXRlQWxsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxldGVBbGxcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEb2N1bWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2RvY3VtZW50cy97RG9jdW1lbnRJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZvbGRlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2ZvbGRlcnMve0ZvbGRlcklkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRm9sZGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb2xkZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZvbGRlcklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRm9sZGVyQ29udGVudHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9mb2xkZXJzL3tGb2xkZXJJZH0vY29udGVudHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZvbGRlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRm9sZGVySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGb2xkZXJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxhYmVsc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3Jlc291cmNlcy97UmVzb3VyY2VJZH0vbGFiZWxzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYWJlbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhYmVsc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGV0ZUFsbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlQWxsXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvb3JnYW5pemF0aW9ucy97T3JnYW5pemF0aW9uSWR9L3N1YnNjcmlwdGlvbnMve1N1YnNjcmlwdGlvbklkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uSWRcIixcbiAgICAgICAgICBcIk9yZ2FuaXphdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3Vic2NyaXB0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZ2FuaXphdGlvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVXNlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3VzZXJzL3tVc2VySWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VySWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFjdGl2aXRpZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9hY3Rpdml0aWVzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydFRpbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuZFRpbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yZ2FuaXphdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvcmdhbml6YXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyQWN0aXZpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRpbWVTdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluaXRpYXRvclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGFydGljaXBhbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJVc2Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9yaWdpbmFsUGFyZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb21tZW50TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb250cmlidXRvclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUmVjaXBpZW50SWRcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb21tZW50c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2RvY3VtZW50cy97RG9jdW1lbnRJZH0vdmVyc2lvbnMve1ZlcnNpb25JZH0vY29tbWVudHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIixcbiAgICAgICAgICBcIlZlcnNpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb2N1bWVudElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21tZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURvY3VtZW50VmVyc2lvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHMve0RvY3VtZW50SWR9L3ZlcnNpb25zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb2N1bWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRvY3VtZW50SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluY2x1ZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluY2x1ZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWVsZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZpZWxkc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGb2xkZXJDb250ZW50c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2ZvbGRlcnMve0ZvbGRlcklkfS9jb250ZW50c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRm9sZGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb2xkZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZvbGRlcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU29ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic29ydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yZGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvcmRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluY2x1ZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluY2x1ZGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGb2xkZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVHcm91cHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9ncm91cHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlYXJjaFF1ZXJ5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VhcmNoUXVlcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlYXJjaFF1ZXJ5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3JnYW5pemF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9yZ2FuaXphdGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL29yZ2FuaXphdGlvbnMve09yZ2FuaXphdGlvbklkfS9zdWJzY3JpcHRpb25zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZ2FuaXphdGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzb3VyY2VQZXJtaXNzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3Jlc291cmNlcy97UmVzb3VyY2VJZH0vcGVybWlzc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaW5jaXBhbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmluY2lwYWxJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJpbmNpcGFsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUm9sZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSb290Rm9sZGVyc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL21lL3Jvb3RcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZvbGRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVXNlcnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS91c2Vyc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yZ2FuaXphdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvcmdhbml6YXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJJZHNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWVyeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicXVlcnlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbmNsdWRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9yZGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU29ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic29ydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmllbGRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmaWVsZHNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvdGFsTnVtYmVyT2ZVc2Vyc1wiOiB7XG4gICAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDdXJyZW50VXNlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL21lXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb2N1bWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2RvY3VtZW50cy97RG9jdW1lbnRJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluY2x1ZGVDdXN0b21NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5jbHVkZUN1c3RvbU1ldGFkYXRhXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb2N1bWVudFBhdGhcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHMve0RvY3VtZW50SWR9L3BhdGhcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpZWxkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmllbGRzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXRoXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb2N1bWVudFZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHMve0RvY3VtZW50SWR9L3ZlcnNpb25zL3tWZXJzaW9uSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb2N1bWVudElkXCIsXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZlcnNpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpZWxkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmllbGRzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZUN1c3RvbU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbmNsdWRlQ3VzdG9tTWV0YWRhdGFcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3VzdG9tTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZvbGRlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2ZvbGRlcnMve0ZvbGRlcklkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRm9sZGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb2xkZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZvbGRlcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZUN1c3RvbU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbmNsdWRlQ3VzdG9tTWV0YWRhdGFcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3VzdG9tTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZvbGRlclBhdGhcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9mb2xkZXJzL3tGb2xkZXJJZH0vcGF0aFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRm9sZGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb2xkZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZvbGRlcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmllbGRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmaWVsZHNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhdGhcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkluaXRpYXRlRG9jdW1lbnRWZXJzaW9uVXBsb2FkXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZG9jdW1lbnRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQYXJlbnRGb2xkZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvbnRlbnRDcmVhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNb2RpZmllZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50U2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmVudEZvbGRlcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwbG9hZE1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJVcGxvYWRVcmxcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNpZ25lZEhlYWRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVBbGxSZXNvdXJjZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvcmVzb3VyY2VzL3tSZXNvdXJjZUlkfS9wZXJtaXNzaW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlUmVzb3VyY2VQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvcmVzb3VyY2VzL3tSZXNvdXJjZUlkfS9wZXJtaXNzaW9ucy97UHJpbmNpcGFsSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJQcmluY2lwYWxJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpbmNpcGFsSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQcmluY2lwYWxJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaW5jaXBhbFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEb2N1bWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZG9jdW1lbnRzL3tEb2N1bWVudElkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb2N1bWVudElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmVudEZvbGRlcklkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VTdGF0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURvY3VtZW50VmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZG9jdW1lbnRzL3tEb2N1bWVudElkfS92ZXJzaW9ucy97VmVyc2lvbklkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiLFxuICAgICAgICAgIFwiVmVyc2lvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRvY3VtZW50SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWZXJzaW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRm9sZGVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9mb2xkZXJzL3tGb2xkZXJJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZvbGRlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRm9sZGVySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGb2xkZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJlbnRGb2xkZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlU3RhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVVc2VyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS91c2Vycy97VXNlcklkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXNlcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2l2ZW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdG9yYWdlUnVsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaW1lWm9uZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTG9jYWxlXCI6IHt9LFxuICAgICAgICAgIFwiR3JhbnRQb3dlcnVzZXJQcml2aWxlZ2VzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbWFpbEFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiR2l2ZW5OYW1lXCI6IHt9LFxuICAgICAgICBcIlN1cm5hbWVcIjoge30sXG4gICAgICAgIFwiT3JnYW5pemF0aW9uSWRcIjoge30sXG4gICAgICAgIFwiUm9vdEZvbGRlcklkXCI6IHt9LFxuICAgICAgICBcIlJlY3ljbGVCaW5Gb2xkZXJJZFwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1vZGlmaWVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRpbWVab25lSWRcIjoge30sXG4gICAgICAgIFwiTG9jYWxlXCI6IHt9LFxuICAgICAgICBcIlN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlN0b3JhZ2VVdGlsaXplZEluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0b3JhZ2VSdWxlXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0b3JhZ2VBbGxvY2F0ZWRJbkJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzEwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMTNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDb21tZW50SWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29tbWVudElkXCI6IHt9LFxuICAgICAgICBcIlBhcmVudElkXCI6IHt9LFxuICAgICAgICBcIlRocmVhZElkXCI6IHt9LFxuICAgICAgICBcIlRleHRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbnRyaWJ1dG9yXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlZpc2liaWxpdHlcIjoge30sXG4gICAgICAgIFwiUmVjaXBpZW50SWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDcmVhdG9ySWRcIjoge30sXG4gICAgICAgIFwiUGFyZW50Rm9sZGVySWRcIjoge30sXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNb2RpZmllZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXNvdXJjZVN0YXRlXCI6IHt9LFxuICAgICAgICBcIlNpZ25hdHVyZVwiOiB7fSxcbiAgICAgICAgXCJMYWJlbHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVzdFZlcnNpb25TaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdWJzY3JpcHRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJFbmRQb2ludFwiOiB7fSxcbiAgICAgICAgXCJQcm90b2NvbFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkdpdmVuTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTdXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkVtYWlsQWRkcmVzc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk9yaWdpbmFsTmFtZVwiOiB7fSxcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uSWRcIjoge30sXG4gICAgICAgIFwiT3duZXJcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBhcmVudElkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMydFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDb250ZW50VHlwZVwiOiB7fSxcbiAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaWduYXR1cmVcIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTW9kaWZpZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29udGVudENyZWF0ZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29udGVudE1vZGlmaWVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0b3JJZFwiOiB7fSxcbiAgICAgICAgXCJUaHVtYm5haWxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlNvdXJjZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdG9ySWRcIjoge30sXG4gICAgICAgIFwiUGFyZW50Rm9sZGVySWRcIjoge30sXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNb2RpZmllZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXRlc3RWZXJzaW9uTWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMnRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlc291cmNlU3RhdGVcIjoge30sXG4gICAgICAgIFwiTGFiZWxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM0MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29tcG9uZW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVEb2N1bWVudFZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEb2N1bWVudFZlcnNpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGb2xkZXJDb250ZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFtcbiAgICAgICAgXCJGb2xkZXJzXCIsXG4gICAgICAgIFwiRG9jdW1lbnRzXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVVc2Vyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVXNlcnNcIlxuICAgIH1cbiAgfVxufSIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snYWNtJ10gPSB7fTtcbkFXUy5BQ00gPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2FjbScsIFsnMjAxNS0xMi0wOCddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2FjbSddLCAnMjAxNS0xMi0wOCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9hY20tMjAxNS0xMi0wOC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2FjbS0yMDE1LTEyLTA4LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvYWNtLTIwMTUtMTItMDgud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5BQ007XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2FwaWdhdGV3YXknXSA9IHt9O1xuQVdTLkFQSUdhdGV3YXkgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2FwaWdhdGV3YXknLCBbJzIwMTUtMDctMDknXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvYXBpZ2F0ZXdheScpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snYXBpZ2F0ZXdheSddLCAnMjAxNS0wNy0wOScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9hcGlnYXRld2F5LTIwMTUtMDctMDkubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9hcGlnYXRld2F5LTIwMTUtMDctMDkucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkFQSUdhdGV3YXk7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2FwcGxpY2F0aW9uYXV0b3NjYWxpbmcnXSA9IHt9O1xuQVdTLkFwcGxpY2F0aW9uQXV0b1NjYWxpbmcgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2FwcGxpY2F0aW9uYXV0b3NjYWxpbmcnLCBbJzIwMTYtMDItMDYnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydhcHBsaWNhdGlvbmF1dG9zY2FsaW5nJ10sICcyMDE2LTAyLTA2Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2FwcGxpY2F0aW9uLWF1dG9zY2FsaW5nLTIwMTYtMDItMDYubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9hcHBsaWNhdGlvbi1hdXRvc2NhbGluZy0yMDE2LTAyLTA2LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5BcHBsaWNhdGlvbkF1dG9TY2FsaW5nO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydhdXRvc2NhbGluZyddID0ge307XG5BV1MuQXV0b1NjYWxpbmcgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2F1dG9zY2FsaW5nJywgWycyMDExLTAxLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snYXV0b3NjYWxpbmcnXSwgJzIwMTEtMDEtMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvYXV0b3NjYWxpbmctMjAxMS0wMS0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2F1dG9zY2FsaW5nLTIwMTEtMDEtMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkF1dG9TY2FsaW5nO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgQUNNOiByZXF1aXJlKCcuL2FjbScpLFxuICBBUElHYXRld2F5OiByZXF1aXJlKCcuL2FwaWdhdGV3YXknKSxcbiAgQXBwbGljYXRpb25BdXRvU2NhbGluZzogcmVxdWlyZSgnLi9hcHBsaWNhdGlvbmF1dG9zY2FsaW5nJyksXG4gIEF1dG9TY2FsaW5nOiByZXF1aXJlKCcuL2F1dG9zY2FsaW5nJyksXG4gIENsb3VkRm9ybWF0aW9uOiByZXF1aXJlKCcuL2Nsb3VkZm9ybWF0aW9uJyksXG4gIENsb3VkRnJvbnQ6IHJlcXVpcmUoJy4vY2xvdWRmcm9udCcpLFxuICBDbG91ZEhTTTogcmVxdWlyZSgnLi9jbG91ZGhzbScpLFxuICBDbG91ZFRyYWlsOiByZXF1aXJlKCcuL2Nsb3VkdHJhaWwnKSxcbiAgQ2xvdWRXYXRjaDogcmVxdWlyZSgnLi9jbG91ZHdhdGNoJyksXG4gIENsb3VkV2F0Y2hFdmVudHM6IHJlcXVpcmUoJy4vY2xvdWR3YXRjaGV2ZW50cycpLFxuICBDbG91ZFdhdGNoTG9nczogcmVxdWlyZSgnLi9jbG91ZHdhdGNobG9ncycpLFxuICBDb2RlQnVpbGQ6IHJlcXVpcmUoJy4vY29kZWJ1aWxkJyksXG4gIENvZGVDb21taXQ6IHJlcXVpcmUoJy4vY29kZWNvbW1pdCcpLFxuICBDb2RlRGVwbG95OiByZXF1aXJlKCcuL2NvZGVkZXBsb3knKSxcbiAgQ29kZVBpcGVsaW5lOiByZXF1aXJlKCcuL2NvZGVwaXBlbGluZScpLFxuICBDb2duaXRvSWRlbnRpdHk6IHJlcXVpcmUoJy4vY29nbml0b2lkZW50aXR5JyksXG4gIENvZ25pdG9JZGVudGl0eVNlcnZpY2VQcm92aWRlcjogcmVxdWlyZSgnLi9jb2duaXRvaWRlbnRpdHlzZXJ2aWNlcHJvdmlkZXInKSxcbiAgQ29nbml0b1N5bmM6IHJlcXVpcmUoJy4vY29nbml0b3N5bmMnKSxcbiAgQ29uZmlnU2VydmljZTogcmVxdWlyZSgnLi9jb25maWdzZXJ2aWNlJyksXG4gIENVUjogcmVxdWlyZSgnLi9jdXInKSxcbiAgRGV2aWNlRmFybTogcmVxdWlyZSgnLi9kZXZpY2VmYXJtJyksXG4gIERpcmVjdENvbm5lY3Q6IHJlcXVpcmUoJy4vZGlyZWN0Y29ubmVjdCcpLFxuICBEeW5hbW9EQjogcmVxdWlyZSgnLi9keW5hbW9kYicpLFxuICBEeW5hbW9EQlN0cmVhbXM6IHJlcXVpcmUoJy4vZHluYW1vZGJzdHJlYW1zJyksXG4gIEVDMjogcmVxdWlyZSgnLi9lYzInKSxcbiAgRUNSOiByZXF1aXJlKCcuL2VjcicpLFxuICBFQ1M6IHJlcXVpcmUoJy4vZWNzJyksXG4gIEVGUzogcmVxdWlyZSgnLi9lZnMnKSxcbiAgRWxhc3RpQ2FjaGU6IHJlcXVpcmUoJy4vZWxhc3RpY2FjaGUnKSxcbiAgRWxhc3RpY0JlYW5zdGFsazogcmVxdWlyZSgnLi9lbGFzdGljYmVhbnN0YWxrJyksXG4gIEVMQjogcmVxdWlyZSgnLi9lbGInKSxcbiAgRUxCdjI6IHJlcXVpcmUoJy4vZWxidjInKSxcbiAgRU1SOiByZXF1aXJlKCcuL2VtcicpLFxuICBFbGFzdGljVHJhbnNjb2RlcjogcmVxdWlyZSgnLi9lbGFzdGljdHJhbnNjb2RlcicpLFxuICBGaXJlaG9zZTogcmVxdWlyZSgnLi9maXJlaG9zZScpLFxuICBHYW1lTGlmdDogcmVxdWlyZSgnLi9nYW1lbGlmdCcpLFxuICBJbnNwZWN0b3I6IHJlcXVpcmUoJy4vaW5zcGVjdG9yJyksXG4gIElvdDogcmVxdWlyZSgnLi9pb3QnKSxcbiAgSW90RGF0YTogcmVxdWlyZSgnLi9pb3RkYXRhJyksXG4gIEtpbmVzaXM6IHJlcXVpcmUoJy4va2luZXNpcycpLFxuICBLTVM6IHJlcXVpcmUoJy4va21zJyksXG4gIExhbWJkYTogcmVxdWlyZSgnLi9sYW1iZGEnKSxcbiAgTGV4UnVudGltZTogcmVxdWlyZSgnLi9sZXhydW50aW1lJyksXG4gIE1hY2hpbmVMZWFybmluZzogcmVxdWlyZSgnLi9tYWNoaW5lbGVhcm5pbmcnKSxcbiAgTWFya2V0cGxhY2VDb21tZXJjZUFuYWx5dGljczogcmVxdWlyZSgnLi9tYXJrZXRwbGFjZWNvbW1lcmNlYW5hbHl0aWNzJyksXG4gIE1UdXJrOiByZXF1aXJlKCcuL210dXJrJyksXG4gIE1vYmlsZUFuYWx5dGljczogcmVxdWlyZSgnLi9tb2JpbGVhbmFseXRpY3MnKSxcbiAgT3BzV29ya3M6IHJlcXVpcmUoJy4vb3Bzd29ya3MnKSxcbiAgUG9sbHk6IHJlcXVpcmUoJy4vcG9sbHknKSxcbiAgUkRTOiByZXF1aXJlKCcuL3JkcycpLFxuICBSZWRzaGlmdDogcmVxdWlyZSgnLi9yZWRzaGlmdCcpLFxuICBSZWtvZ25pdGlvbjogcmVxdWlyZSgnLi9yZWtvZ25pdGlvbicpLFxuICBSb3V0ZTUzOiByZXF1aXJlKCcuL3JvdXRlNTMnKSxcbiAgUm91dGU1M0RvbWFpbnM6IHJlcXVpcmUoJy4vcm91dGU1M2RvbWFpbnMnKSxcbiAgUzM6IHJlcXVpcmUoJy4vczMnKSxcbiAgU2VydmljZUNhdGFsb2c6IHJlcXVpcmUoJy4vc2VydmljZWNhdGFsb2cnKSxcbiAgU0VTOiByZXF1aXJlKCcuL3NlcycpLFxuICBTTlM6IHJlcXVpcmUoJy4vc25zJyksXG4gIFNRUzogcmVxdWlyZSgnLi9zcXMnKSxcbiAgU1NNOiByZXF1aXJlKCcuL3NzbScpLFxuICBTdG9yYWdlR2F0ZXdheTogcmVxdWlyZSgnLi9zdG9yYWdlZ2F0ZXdheScpLFxuICBTVFM6IHJlcXVpcmUoJy4vc3RzJyksXG4gIFdBRjogcmVxdWlyZSgnLi93YWYnKSxcbiAgV29ya0RvY3M6IHJlcXVpcmUoJy4vd29ya2RvY3MnKSxcbiAgTGV4TW9kZWxCdWlsZGluZ1NlcnZpY2U6IHJlcXVpcmUoJy4vbGV4bW9kZWxidWlsZGluZ3NlcnZpY2UnKVxufTsiLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3VkZm9ybWF0aW9uJ10gPSB7fTtcbkFXUy5DbG91ZEZvcm1hdGlvbiA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY2xvdWRmb3JtYXRpb24nLCBbJzIwMTAtMDUtMTUnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZGZvcm1hdGlvbiddLCAnMjAxMC0wNS0xNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZvcm1hdGlvbi0yMDEwLTA1LTE1Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvY2xvdWRmb3JtYXRpb24tMjAxMC0wNS0xNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZm9ybWF0aW9uLTIwMTAtMDUtMTUud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5DbG91ZEZvcm1hdGlvbjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWRmcm9udCddID0ge307XG5BV1MuQ2xvdWRGcm9udCA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY2xvdWRmcm9udCcsIFsnMjAxMy0wNS0xMionLCAnMjAxMy0xMS0xMSonLCAnMjAxNC0wNS0zMSonLCAnMjAxNC0xMC0yMSonLCAnMjAxNC0xMS0wNionLCAnMjAxNS0wNC0xNyonLCAnMjAxNS0wNy0yNyonLCAnMjAxNS0wOS0xNyonLCAnMjAxNi0wMS0xMyonLCAnMjAxNi0wMS0yOConLCAnMjAxNi0wOC0wMSonLCAnMjAxNi0wOC0yMConLCAnMjAxNi0wOS0wNyonLCAnMjAxNi0wOS0yOSonLCAnMjAxNi0xMS0yNScsICcyMDE2LTExLTI1KicsICcyMDE3LTAzLTI1JywgJzIwMTctMDMtMjUqJywgJzIwMTctMTAtMzAnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvY2xvdWRmcm9udCcpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWRmcm9udCddLCAnMjAxNi0xMS0yNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTYtMTEtMjUubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTYtMTEtMjUucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTYtMTEtMjUud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWRmcm9udCddLCAnMjAxNy0wMy0yNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTctMDMtMjUubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTctMDMtMjUucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTctMDMtMjUud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWRmcm9udCddLCAnMjAxNy0xMC0zMCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTctMTAtMzAubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTctMTAtMzAucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZyb250LTIwMTctMTAtMzAud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5DbG91ZEZyb250O1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZGhzbSddID0ge307XG5BV1MuQ2xvdWRIU00gPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2Nsb3VkaHNtJywgWycyMDE0LTA1LTMwJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWRoc20nXSwgJzIwMTQtMDUtMzAnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvY2xvdWRoc20tMjAxNC0wNS0zMC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkaHNtLTIwMTQtMDUtMzAucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNsb3VkSFNNO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZHRyYWlsJ10gPSB7fTtcbkFXUy5DbG91ZFRyYWlsID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjbG91ZHRyYWlsJywgWycyMDEzLTExLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWR0cmFpbCddLCAnMjAxMy0xMS0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZHRyYWlsLTIwMTMtMTEtMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZHRyYWlsLTIwMTMtMTEtMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNsb3VkVHJhaWw7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3Vkd2F0Y2gnXSA9IHt9O1xuQVdTLkNsb3VkV2F0Y2ggPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2Nsb3Vkd2F0Y2gnLCBbJzIwMTAtMDgtMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZHdhdGNoJ10sICcyMDEwLTA4LTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL21vbml0b3JpbmctMjAxMC0wOC0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL21vbml0b3JpbmctMjAxMC0wOC0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL21vbml0b3JpbmctMjAxMC0wOC0wMS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNsb3VkV2F0Y2g7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3Vkd2F0Y2hldmVudHMnXSA9IHt9O1xuQVdTLkNsb3VkV2F0Y2hFdmVudHMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2Nsb3Vkd2F0Y2hldmVudHMnLCBbJzIwMTQtMDItMDMqJywgJzIwMTUtMTAtMDcnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZHdhdGNoZXZlbnRzJ10sICcyMDE1LTEwLTA3Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2V2ZW50cy0yMDE1LTEwLTA3Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZXZlbnRzLTIwMTUtMTAtMDcucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNsb3VkV2F0Y2hFdmVudHM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3Vkd2F0Y2hsb2dzJ10gPSB7fTtcbkFXUy5DbG91ZFdhdGNoTG9ncyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY2xvdWR3YXRjaGxvZ3MnLCBbJzIwMTQtMDMtMjgnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZHdhdGNobG9ncyddLCAnMjAxNC0wMy0yOCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9sb2dzLTIwMTQtMDMtMjgubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9sb2dzLTIwMTQtMDMtMjgucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNsb3VkV2F0Y2hMb2dzO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjb2RlYnVpbGQnXSA9IHt9O1xuQVdTLkNvZGVCdWlsZCA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY29kZWJ1aWxkJywgWycyMDE2LTEwLTA2J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY29kZWJ1aWxkJ10sICcyMDE2LTEwLTA2Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2NvZGVidWlsZC0yMDE2LTEwLTA2Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvY29kZWJ1aWxkLTIwMTYtMTAtMDYucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNvZGVCdWlsZDtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snY29kZWNvbW1pdCddID0ge307XG5BV1MuQ29kZUNvbW1pdCA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY29kZWNvbW1pdCcsIFsnMjAxNS0wNC0xMyddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2NvZGVjb21taXQnXSwgJzIwMTUtMDQtMTMnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvY29kZWNvbW1pdC0yMDE1LTA0LTEzLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvY29kZWNvbW1pdC0yMDE1LTA0LTEzLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Db2RlQ29tbWl0O1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjb2RlZGVwbG95J10gPSB7fTtcbkFXUy5Db2RlRGVwbG95ID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjb2RlZGVwbG95JywgWycyMDE0LTEwLTA2J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY29kZWRlcGxveSddLCAnMjAxNC0xMC0wNicsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jb2RlZGVwbG95LTIwMTQtMTAtMDYubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jb2RlZGVwbG95LTIwMTQtMTAtMDYucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9jb2RlZGVwbG95LTIwMTQtMTAtMDYud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Db2RlRGVwbG95O1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjb2RlcGlwZWxpbmUnXSA9IHt9O1xuQVdTLkNvZGVQaXBlbGluZSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY29kZXBpcGVsaW5lJywgWycyMDE1LTA3LTA5J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY29kZXBpcGVsaW5lJ10sICcyMDE1LTA3LTA5Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2NvZGVwaXBlbGluZS0yMDE1LTA3LTA5Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvY29kZXBpcGVsaW5lLTIwMTUtMDctMDkucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNvZGVQaXBlbGluZTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snY29nbml0b2lkZW50aXR5J10gPSB7fTtcbkFXUy5Db2duaXRvSWRlbnRpdHkgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2NvZ25pdG9pZGVudGl0eScsIFsnMjAxNC0wNi0zMCddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9jb2duaXRvaWRlbnRpdHknKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2NvZ25pdG9pZGVudGl0eSddLCAnMjAxNC0wNi0zMCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jb2duaXRvLWlkZW50aXR5LTIwMTQtMDYtMzAubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jb2duaXRvLWlkZW50aXR5LTIwMTQtMDYtMzAucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNvZ25pdG9JZGVudGl0eTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snY29nbml0b2lkZW50aXR5c2VydmljZXByb3ZpZGVyJ10gPSB7fTtcbkFXUy5Db2duaXRvSWRlbnRpdHlTZXJ2aWNlUHJvdmlkZXIgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2NvZ25pdG9pZGVudGl0eXNlcnZpY2Vwcm92aWRlcicsIFsnMjAxNi0wNC0xOCddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2NvZ25pdG9pZGVudGl0eXNlcnZpY2Vwcm92aWRlciddLCAnMjAxNi0wNC0xOCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jb2duaXRvLWlkcC0yMDE2LTA0LTE4Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvY29nbml0by1pZHAtMjAxNi0wNC0xOC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ29nbml0b0lkZW50aXR5U2VydmljZVByb3ZpZGVyO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjb2duaXRvc3luYyddID0ge307XG5BV1MuQ29nbml0b1N5bmMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2NvZ25pdG9zeW5jJywgWycyMDE0LTA2LTMwJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY29nbml0b3N5bmMnXSwgJzIwMTQtMDYtMzAnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvY29nbml0by1zeW5jLTIwMTQtMDYtMzAubWluLmpzb24nKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNvZ25pdG9TeW5jO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjb25maWdzZXJ2aWNlJ10gPSB7fTtcbkFXUy5Db25maWdTZXJ2aWNlID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjb25maWdzZXJ2aWNlJywgWycyMDE0LTExLTEyJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY29uZmlnc2VydmljZSddLCAnMjAxNC0xMS0xMicsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jb25maWctMjAxNC0xMS0xMi5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2NvbmZpZy0yMDE0LTExLTEyLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Db25maWdTZXJ2aWNlO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjdXInXSA9IHt9O1xuQVdTLkNVUiA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY3VyJywgWycyMDE3LTAxLTA2J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY3VyJ10sICcyMDE3LTAxLTA2Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2N1ci0yMDE3LTAxLTA2Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvY3VyLTIwMTctMDEtMDYucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNVUjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snZGV2aWNlZmFybSddID0ge307XG5BV1MuRGV2aWNlRmFybSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZGV2aWNlZmFybScsIFsnMjAxNS0wNi0yMyddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2RldmljZWZhcm0nXSwgJzIwMTUtMDYtMjMnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZGV2aWNlZmFybS0yMDE1LTA2LTIzLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZGV2aWNlZmFybS0yMDE1LTA2LTIzLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5EZXZpY2VGYXJtO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydkaXJlY3Rjb25uZWN0J10gPSB7fTtcbkFXUy5EaXJlY3RDb25uZWN0ID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdkaXJlY3Rjb25uZWN0JywgWycyMDEyLTEwLTI1J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZGlyZWN0Y29ubmVjdCddLCAnMjAxMi0xMC0yNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9kaXJlY3Rjb25uZWN0LTIwMTItMTAtMjUubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9kaXJlY3Rjb25uZWN0LTIwMTItMTAtMjUucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkRpcmVjdENvbm5lY3Q7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2R5bmFtb2RiJ10gPSB7fTtcbkFXUy5EeW5hbW9EQiA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZHluYW1vZGInLCBbJzIwMTEtMTItMDUnLCAnMjAxMi0wOC0xMCddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9keW5hbW9kYicpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZHluYW1vZGInXSwgJzIwMTEtMTItMDUnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZHluYW1vZGItMjAxMS0xMi0wNS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2R5bmFtb2RiLTIwMTEtMTItMDUucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9keW5hbW9kYi0yMDExLTEyLTA1LndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2R5bmFtb2RiJ10sICcyMDEyLTA4LTEwJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2R5bmFtb2RiLTIwMTItMDgtMTAubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9keW5hbW9kYi0yMDEyLTA4LTEwLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvZHluYW1vZGItMjAxMi0wOC0xMC53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkR5bmFtb0RCO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydkeW5hbW9kYnN0cmVhbXMnXSA9IHt9O1xuQVdTLkR5bmFtb0RCU3RyZWFtcyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZHluYW1vZGJzdHJlYW1zJywgWycyMDEyLTA4LTEwJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZHluYW1vZGJzdHJlYW1zJ10sICcyMDEyLTA4LTEwJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3N0cmVhbXMuZHluYW1vZGItMjAxMi0wOC0xMC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3N0cmVhbXMuZHluYW1vZGItMjAxMi0wOC0xMC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRHluYW1vREJTdHJlYW1zO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydlYzInXSA9IHt9O1xuQVdTLkVDMiA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZWMyJywgWycyMDEzLTA2LTE1KicsICcyMDEzLTEwLTE1KicsICcyMDE0LTAyLTAxKicsICcyMDE0LTA1LTAxKicsICcyMDE0LTA2LTE1KicsICcyMDE0LTA5LTAxKicsICcyMDE0LTEwLTAxKicsICcyMDE1LTAzLTAxKicsICcyMDE1LTA0LTE1KicsICcyMDE1LTEwLTAxKicsICcyMDE2LTA0LTAxKicsICcyMDE2LTA5LTE1KicsICcyMDE2LTExLTE1J10pO1xucmVxdWlyZSgnLi4vbGliL3NlcnZpY2VzL2VjMicpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZWMyJ10sICcyMDE2LTExLTE1Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2VjMi0yMDE2LTExLTE1Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWMyLTIwMTYtMTEtMTUucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9lYzItMjAxNi0xMS0xNS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkVDMjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snZWNyJ10gPSB7fTtcbkFXUy5FQ1IgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2VjcicsIFsnMjAxNS0wOS0yMSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2VjciddLCAnMjAxNS0wOS0yMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lY3ItMjAxNS0wOS0yMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Vjci0yMDE1LTA5LTIxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FQ1I7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2VjcyddID0ge307XG5BV1MuRUNTID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdlY3MnLCBbJzIwMTQtMTEtMTMnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydlY3MnXSwgJzIwMTQtMTEtMTMnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZWNzLTIwMTQtMTEtMTMubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9lY3MtMjAxNC0xMS0xMy5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Vjcy0yMDE0LTExLTEzLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRUNTO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydlZnMnXSA9IHt9O1xuQVdTLkVGUyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZWZzJywgWycyMDE1LTAyLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZWZzJ10sICcyMDE1LTAyLTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2VsYXN0aWNmaWxlc3lzdGVtLTIwMTUtMDItMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljZmlsZXN5c3RlbS0yMDE1LTAyLTAxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FRlM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2VsYXN0aWNhY2hlJ10gPSB7fTtcbkFXUy5FbGFzdGlDYWNoZSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZWxhc3RpY2FjaGUnLCBbJzIwMTItMTEtMTUqJywgJzIwMTQtMDMtMjQqJywgJzIwMTQtMDctMTUqJywgJzIwMTQtMDktMzAqJywgJzIwMTUtMDItMDInXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydlbGFzdGljYWNoZSddLCAnMjAxNS0wMi0wMicsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljYWNoZS0yMDE1LTAyLTAyLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2FjaGUtMjAxNS0wMi0wMi5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2VsYXN0aWNhY2hlLTIwMTUtMDItMDIud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FbGFzdGlDYWNoZTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snZWxhc3RpY2JlYW5zdGFsayddID0ge307XG5BV1MuRWxhc3RpY0JlYW5zdGFsayA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZWxhc3RpY2JlYW5zdGFsaycsIFsnMjAxMC0xMi0wMSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2VsYXN0aWNiZWFuc3RhbGsnXSwgJzIwMTAtMTItMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2JlYW5zdGFsay0yMDEwLTEyLTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2JlYW5zdGFsay0yMDEwLTEyLTAxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FbGFzdGljQmVhbnN0YWxrO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydlbGFzdGljdHJhbnNjb2RlciddID0ge307XG5BV1MuRWxhc3RpY1RyYW5zY29kZXIgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2VsYXN0aWN0cmFuc2NvZGVyJywgWycyMDEyLTA5LTI1J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZWxhc3RpY3RyYW5zY29kZXInXSwgJzIwMTItMDktMjUnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY3RyYW5zY29kZXItMjAxMi0wOS0yNS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2VsYXN0aWN0cmFuc2NvZGVyLTIwMTItMDktMjUucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljdHJhbnNjb2Rlci0yMDEyLTA5LTI1LndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRWxhc3RpY1RyYW5zY29kZXI7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2VsYiddID0ge307XG5BV1MuRUxCID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdlbGInLCBbJzIwMTItMDYtMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydlbGInXSwgJzIwMTItMDYtMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmctMjAxMi0wNi0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2VsYXN0aWNsb2FkYmFsYW5jaW5nLTIwMTItMDYtMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZy0yMDEyLTA2LTAxLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRUxCO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydlbGJ2MiddID0ge307XG5BV1MuRUxCdjIgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2VsYnYyJywgWycyMDE1LTEyLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZWxidjInXSwgJzIwMTUtMTItMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi0yMDE1LTEyLTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi0yMDE1LTEyLTAxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi0yMDE1LTEyLTAxLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRUxCdjI7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2VtciddID0ge307XG5BV1MuRU1SID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdlbXInLCBbJzIwMDktMDMtMzEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydlbXInXSwgJzIwMDktMDMtMzEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY21hcHJlZHVjZS0yMDA5LTAzLTMxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY21hcHJlZHVjZS0yMDA5LTAzLTMxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY21hcHJlZHVjZS0yMDA5LTAzLTMxLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRU1SO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydmaXJlaG9zZSddID0ge307XG5BV1MuRmlyZWhvc2UgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2ZpcmVob3NlJywgWycyMDE1LTA4LTA0J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZmlyZWhvc2UnXSwgJzIwMTUtMDgtMDQnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZmlyZWhvc2UtMjAxNS0wOC0wNC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2ZpcmVob3NlLTIwMTUtMDgtMDQucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkZpcmVob3NlO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydnYW1lbGlmdCddID0ge307XG5BV1MuR2FtZUxpZnQgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2dhbWVsaWZ0JywgWycyMDE1LTEwLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZ2FtZWxpZnQnXSwgJzIwMTUtMTAtMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZ2FtZWxpZnQtMjAxNS0xMC0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2dhbWVsaWZ0LTIwMTUtMTAtMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkdhbWVMaWZ0O1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydpbnNwZWN0b3InXSA9IHt9O1xuQVdTLkluc3BlY3RvciA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnaW5zcGVjdG9yJywgWycyMDE1LTA4LTE4KicsICcyMDE2LTAyLTE2J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snaW5zcGVjdG9yJ10sICcyMDE2LTAyLTE2Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2luc3BlY3Rvci0yMDE2LTAyLTE2Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvaW5zcGVjdG9yLTIwMTYtMDItMTYucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkluc3BlY3RvcjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snaW90J10gPSB7fTtcbkFXUy5Jb3QgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2lvdCcsIFsnMjAxNS0wNS0yOCddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2lvdCddLCAnMjAxNS0wNS0yOCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9pb3QtMjAxNS0wNS0yOC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2lvdC0yMDE1LTA1LTI4LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Jb3Q7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2lvdGRhdGEnXSA9IHt9O1xuQVdTLklvdERhdGEgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2lvdGRhdGEnLCBbJzIwMTUtMDUtMjgnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvaW90ZGF0YScpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snaW90ZGF0YSddLCAnMjAxNS0wNS0yOCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9pb3QtZGF0YS0yMDE1LTA1LTI4Lm1pbi5qc29uJyk7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Jb3REYXRhO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydraW5lc2lzJ10gPSB7fTtcbkFXUy5LaW5lc2lzID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdraW5lc2lzJywgWycyMDEzLTEyLTAyJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sna2luZXNpcyddLCAnMjAxMy0xMi0wMicsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9raW5lc2lzLTIwMTMtMTItMDIubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9raW5lc2lzLTIwMTMtMTItMDIucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9raW5lc2lzLTIwMTMtMTItMDIud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5LaW5lc2lzO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydrbXMnXSA9IHt9O1xuQVdTLktNUyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgna21zJywgWycyMDE0LTExLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sna21zJ10sICcyMDE0LTExLTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2ttcy0yMDE0LTExLTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMva21zLTIwMTQtMTEtMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLktNUztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snbGFtYmRhJ10gPSB7fTtcbkFXUy5MYW1iZGEgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2xhbWJkYScsIFsnMjAxNC0xMS0xMScsICcyMDE1LTAzLTMxJ10pO1xucmVxdWlyZSgnLi4vbGliL3NlcnZpY2VzL2xhbWJkYScpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snbGFtYmRhJ10sICcyMDE0LTExLTExJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2xhbWJkYS0yMDE0LTExLTExLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvbGFtYmRhLTIwMTQtMTEtMTEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydsYW1iZGEnXSwgJzIwMTUtMDMtMzEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvbGFtYmRhLTIwMTUtMDMtMzEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9sYW1iZGEtMjAxNS0wMy0zMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuTGFtYmRhO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydsZXhtb2RlbGJ1aWxkaW5nc2VydmljZSddID0ge307XG5BV1MuTGV4TW9kZWxCdWlsZGluZ1NlcnZpY2UgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2xleG1vZGVsYnVpbGRpbmdzZXJ2aWNlJywgWycyMDE3LTA0LTE5J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snbGV4bW9kZWxidWlsZGluZ3NlcnZpY2UnXSwgJzIwMTctMDQtMTknLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvbGV4LW1vZGVscy0yMDE3LTA0LTE5Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvbGV4LW1vZGVscy0yMDE3LTA0LTE5LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5MZXhNb2RlbEJ1aWxkaW5nU2VydmljZTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snbGV4cnVudGltZSddID0ge307XG5BV1MuTGV4UnVudGltZSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnbGV4cnVudGltZScsIFsnMjAxNi0xMS0yOCddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2xleHJ1bnRpbWUnXSwgJzIwMTYtMTEtMjgnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvcnVudGltZS5sZXgtMjAxNi0xMS0yOC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3J1bnRpbWUubGV4LTIwMTYtMTEtMjgucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkxleFJ1bnRpbWU7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ21hY2hpbmVsZWFybmluZyddID0ge307XG5BV1MuTWFjaGluZUxlYXJuaW5nID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdtYWNoaW5lbGVhcm5pbmcnLCBbJzIwMTQtMTItMTInXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvbWFjaGluZWxlYXJuaW5nJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydtYWNoaW5lbGVhcm5pbmcnXSwgJzIwMTQtMTItMTInLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvbWFjaGluZWxlYXJuaW5nLTIwMTQtMTItMTIubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9tYWNoaW5lbGVhcm5pbmctMjAxNC0xMi0xMi5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL21hY2hpbmVsZWFybmluZy0yMDE0LTEyLTEyLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuTWFjaGluZUxlYXJuaW5nO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydtYXJrZXRwbGFjZWNvbW1lcmNlYW5hbHl0aWNzJ10gPSB7fTtcbkFXUy5NYXJrZXRwbGFjZUNvbW1lcmNlQW5hbHl0aWNzID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdtYXJrZXRwbGFjZWNvbW1lcmNlYW5hbHl0aWNzJywgWycyMDE1LTA3LTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snbWFya2V0cGxhY2Vjb21tZXJjZWFuYWx5dGljcyddLCAnMjAxNS0wNy0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9tYXJrZXRwbGFjZWNvbW1lcmNlYW5hbHl0aWNzLTIwMTUtMDctMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9tYXJrZXRwbGFjZWNvbW1lcmNlYW5hbHl0aWNzLTIwMTUtMDctMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLk1hcmtldHBsYWNlQ29tbWVyY2VBbmFseXRpY3M7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ21vYmlsZWFuYWx5dGljcyddID0ge307XG5BV1MuTW9iaWxlQW5hbHl0aWNzID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdtb2JpbGVhbmFseXRpY3MnLCBbJzIwMTQtMDYtMDUnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydtb2JpbGVhbmFseXRpY3MnXSwgJzIwMTQtMDYtMDUnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvbW9iaWxlYW5hbHl0aWNzLTIwMTQtMDYtMDUubWluLmpzb24nKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLk1vYmlsZUFuYWx5dGljcztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snbXR1cmsnXSA9IHt9O1xuQVdTLk1UdXJrID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdtdHVyaycsIFsnMjAxNy0wMS0xNyddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ210dXJrJ10sICcyMDE3LTAxLTE3Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL210dXJrLXJlcXVlc3Rlci0yMDE3LTAxLTE3Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvbXR1cmstcmVxdWVzdGVyLTIwMTctMDEtMTcucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLk1UdXJrO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydvcHN3b3JrcyddID0ge307XG5BV1MuT3BzV29ya3MgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ29wc3dvcmtzJywgWycyMDEzLTAyLTE4J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snb3Bzd29ya3MnXSwgJzIwMTMtMDItMTgnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvb3Bzd29ya3MtMjAxMy0wMi0xOC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL29wc3dvcmtzLTIwMTMtMDItMTgucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9vcHN3b3Jrcy0yMDEzLTAyLTE4LndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuT3BzV29ya3M7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3BvbGx5J10gPSB7fTtcbkFXUy5Qb2xseSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgncG9sbHknLCBbJzIwMTYtMDYtMTAnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvcG9sbHknKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3BvbGx5J10sICcyMDE2LTA2LTEwJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3BvbGx5LTIwMTYtMDYtMTAubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9wb2xseS0yMDE2LTA2LTEwLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Qb2xseTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1sncmRzJ10gPSB7fTtcbkFXUy5SRFMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3JkcycsIFsnMjAxMy0wMS0xMCcsICcyMDEzLTAyLTEyJywgJzIwMTMtMDktMDknLCAnMjAxNC0wOS0wMScsICcyMDE0LTA5LTAxKicsICcyMDE0LTEwLTMxJ10pO1xucmVxdWlyZSgnLi4vbGliL3NlcnZpY2VzL3JkcycpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sncmRzJ10sICcyMDEzLTAxLTEwJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3Jkcy0yMDEzLTAxLTEwLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTMtMDEtMTAucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydyZHMnXSwgJzIwMTMtMDItMTInLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTMtMDItMTIubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9yZHMtMjAxMy0wMi0xMi5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3JkcyddLCAnMjAxMy0wOS0wOScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9yZHMtMjAxMy0wOS0wOS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3Jkcy0yMDEzLTA5LTA5LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTMtMDktMDkud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sncmRzJ10sICcyMDE0LTA5LTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3Jkcy0yMDE0LTA5LTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTQtMDktMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydyZHMnXSwgJzIwMTQtMTAtMzEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTQtMTAtMzEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9yZHMtMjAxNC0xMC0zMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL3Jkcy0yMDE0LTEwLTMxLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuUkRTO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydyZWRzaGlmdCddID0ge307XG5BV1MuUmVkc2hpZnQgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3JlZHNoaWZ0JywgWycyMDEyLTEyLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sncmVkc2hpZnQnXSwgJzIwMTItMTItMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvcmVkc2hpZnQtMjAxMi0xMi0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3JlZHNoaWZ0LTIwMTItMTItMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9yZWRzaGlmdC0yMDEyLTEyLTAxLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuUmVkc2hpZnQ7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3Jla29nbml0aW9uJ10gPSB7fTtcbkFXUy5SZWtvZ25pdGlvbiA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgncmVrb2duaXRpb24nLCBbJzIwMTYtMDYtMjcnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydyZWtvZ25pdGlvbiddLCAnMjAxNi0wNi0yNycsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9yZWtvZ25pdGlvbi0yMDE2LTA2LTI3Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvcmVrb2duaXRpb24tMjAxNi0wNi0yNy5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuUmVrb2duaXRpb247XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3JvdXRlNTMnXSA9IHt9O1xuQVdTLlJvdXRlNTMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3JvdXRlNTMnLCBbJzIwMTMtMDQtMDEnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvcm91dGU1MycpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sncm91dGU1MyddLCAnMjAxMy0wNC0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9yb3V0ZTUzLTIwMTMtMDQtMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9yb3V0ZTUzLTIwMTMtMDQtMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9yb3V0ZTUzLTIwMTMtMDQtMDEud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Sb3V0ZTUzO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydyb3V0ZTUzZG9tYWlucyddID0ge307XG5BV1MuUm91dGU1M0RvbWFpbnMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3JvdXRlNTNkb21haW5zJywgWycyMDE0LTA1LTE1J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sncm91dGU1M2RvbWFpbnMnXSwgJzIwMTQtMDUtMTUnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvcm91dGU1M2RvbWFpbnMtMjAxNC0wNS0xNS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3JvdXRlNTNkb21haW5zLTIwMTQtMDUtMTUucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLlJvdXRlNTNEb21haW5zO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydzMyddID0ge307XG5BV1MuUzMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3MzJywgWycyMDA2LTAzLTAxJ10pO1xucmVxdWlyZSgnLi4vbGliL3NlcnZpY2VzL3MzJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydzMyddLCAnMjAwNi0wMy0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9zMy0yMDA2LTAzLTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvczMtMjAwNi0wMy0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL3MzLTIwMDYtMDMtMDEud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TMztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snc2VydmljZWNhdGFsb2cnXSA9IHt9O1xuQVdTLlNlcnZpY2VDYXRhbG9nID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdzZXJ2aWNlY2F0YWxvZycsIFsnMjAxNS0xMi0xMCddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3NlcnZpY2VjYXRhbG9nJ10sICcyMDE1LTEyLTEwJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3NlcnZpY2VjYXRhbG9nLTIwMTUtMTItMTAubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9zZXJ2aWNlY2F0YWxvZy0yMDE1LTEyLTEwLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TZXJ2aWNlQ2F0YWxvZztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snc2VzJ10gPSB7fTtcbkFXUy5TRVMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3NlcycsIFsnMjAxMC0xMi0wMSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3NlcyddLCAnMjAxMC0xMi0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lbWFpbC0yMDEwLTEyLTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZW1haWwtMjAxMC0xMi0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2VtYWlsLTIwMTAtMTItMDEud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TRVM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3NucyddID0ge307XG5BV1MuU05TID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdzbnMnLCBbJzIwMTAtMDMtMzEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydzbnMnXSwgJzIwMTAtMDMtMzEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvc25zLTIwMTAtMDMtMzEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9zbnMtMjAxMC0wMy0zMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuU05TO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydzcXMnXSA9IHt9O1xuQVdTLlNRUyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnc3FzJywgWycyMDEyLTExLTA1J10pO1xucmVxdWlyZSgnLi4vbGliL3NlcnZpY2VzL3NxcycpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snc3FzJ10sICcyMDEyLTExLTA1Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3Nxcy0yMDEyLTExLTA1Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvc3FzLTIwMTItMTEtMDUucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNRUztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snc3NtJ10gPSB7fTtcbkFXUy5TU00gPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3NzbScsIFsnMjAxNC0xMS0wNiddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3NzbSddLCAnMjAxNC0xMS0wNicsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9zc20tMjAxNC0xMS0wNi5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3NzbS0yMDE0LTExLTA2LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TU007XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3N0b3JhZ2VnYXRld2F5J10gPSB7fTtcbkFXUy5TdG9yYWdlR2F0ZXdheSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnc3RvcmFnZWdhdGV3YXknLCBbJzIwMTMtMDYtMzAnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydzdG9yYWdlZ2F0ZXdheSddLCAnMjAxMy0wNi0zMCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9zdG9yYWdlZ2F0ZXdheS0yMDEzLTA2LTMwLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvc3RvcmFnZWdhdGV3YXktMjAxMy0wNi0zMC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuU3RvcmFnZUdhdGV3YXk7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3N0cyddID0ge307XG5BV1MuU1RTID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdzdHMnLCBbJzIwMTEtMDYtMTUnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvc3RzJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydzdHMnXSwgJzIwMTEtMDYtMTUnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvc3RzLTIwMTEtMDYtMTUubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9zdHMtMjAxMS0wNi0xNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuU1RTO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWyd3YWYnXSA9IHt9O1xuQVdTLldBRiA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnd2FmJywgWycyMDE1LTA4LTI0J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snd2FmJ10sICcyMDE1LTA4LTI0Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3dhZi0yMDE1LTA4LTI0Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvd2FmLTIwMTUtMDgtMjQucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLldBRjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snd29ya2RvY3MnXSA9IHt9O1xuQVdTLldvcmtEb2NzID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCd3b3JrZG9jcycsIFsnMjAxNi0wNS0wMSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3dvcmtkb2NzJ10sICcyMDE2LTA1LTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3dvcmtkb2NzLTIwMTYtMDUtMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy93b3JrZG9jcy0yMDE2LTA1LTAxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Xb3JrRG9jcztcbiIsImZ1bmN0aW9uIGFwaUxvYWRlcihzdmMsIHZlcnNpb24pIHtcbiAgaWYgKCFhcGlMb2FkZXIuc2VydmljZXMuaGFzT3duUHJvcGVydHkoc3ZjKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZFNlcnZpY2U6IEZhaWxlZCB0byBsb2FkIGFwaSBmb3IgJyArIHN2Yyk7XG4gIH1cbiAgcmV0dXJuIGFwaUxvYWRlci5zZXJ2aWNlc1tzdmNdW3ZlcnNpb25dO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICpcbiAqIFRoaXMgbWVtYmVyIG9mIEFXUy5hcGlMb2FkZXIgaXMgcHJpdmF0ZSwgYnV0IGNoYW5naW5nIGl0IHdpbGwgbmVjZXNzaXRhdGUgYVxuICogY2hhbmdlIHRvIC4uL3NjcmlwdHMvc2VydmljZXMtdGFibGUtZ2VuZXJhdG9yLnRzXG4gKi9cbmFwaUxvYWRlci5zZXJ2aWNlcyA9IHt9O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGFwaUxvYWRlcjtcbiIsIi8vIEFXUyBTREsgZm9yIEphdmFTY3JpcHQgdjIuMjY4LjFcbi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gTGljZW5zZSBhdCBodHRwczovL3Nkay5hbWF6b25hd3MuY29tL2pzL0JVTkRMRV9MSUNFTlNFLnR4dFxucmVxdWlyZSgnLi9icm93c2VyX2xvYWRlcicpO1xuXG52YXIgQVdTID0gcmVxdWlyZSgnLi9jb3JlJyk7XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgd2luZG93LkFXUyA9IEFXUztcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8qKlxuICAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICAqL1xuICAgIG1vZHVsZS5leHBvcnRzID0gQVdTO1xufVxuaWYgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJykgc2VsZi5BV1MgPSBBV1M7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqIERPIE5PVCBSRU1PVkVcbiAqIGJyb3dzZXIgYnVpbGRlciB3aWxsIHN0cmlwIG91dCB0aGlzIGxpbmUgaWYgc2VydmljZXMgYXJlIHN1cHBsaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuXG4gKi9cbnJlcXVpcmUoJy4uL2NsaWVudHMvYnJvd3Nlcl9kZWZhdWx0Jyk7IiwidmFyIEhtYWMgPSByZXF1aXJlKCcuL2Jyb3dzZXJIbWFjJyk7XG52YXIgTWQ1ID0gcmVxdWlyZSgnLi9icm93c2VyTWQ1Jyk7XG52YXIgU2hhMSA9IHJlcXVpcmUoJy4vYnJvd3NlclNoYTEnKTtcbnZhciBTaGEyNTYgPSByZXF1aXJlKCcuL2Jyb3dzZXJTaGEyNTYnKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0ge1xuICAgIGNyZWF0ZUhhc2g6IGZ1bmN0aW9uIGNyZWF0ZUhhc2goYWxnKSB7XG4gICAgICBhbGcgPSBhbGcudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChhbGcgPT09ICdtZDUnKSB7XG4gICAgICAgIHJldHVybiBuZXcgTWQ1KCk7XG4gICAgICB9IGVsc2UgaWYgKGFsZyA9PT0gJ3NoYTI1NicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTaGEyNTYoKTtcbiAgICAgIH0gZWxzZSBpZiAoYWxnID09PSAnc2hhMScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTaGExKCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcignSGFzaCBhbGdvcml0aG0gJyArIGFsZyArICcgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3NlciBTREsnKTtcbiAgICB9LFxuICAgIGNyZWF0ZUhtYWM6IGZ1bmN0aW9uIGNyZWF0ZUhtYWMoYWxnLCBrZXkpIHtcbiAgICAgIGFsZyA9IGFsZy50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKGFsZyA9PT0gJ21kNScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIbWFjKE1kNSwga2V5KTtcbiAgICAgIH0gZWxzZSBpZiAoYWxnID09PSAnc2hhMjU2Jykge1xuICAgICAgICByZXR1cm4gbmV3IEhtYWMoU2hhMjU2LCBrZXkpO1xuICAgICAgfSBlbHNlIGlmIChhbGcgPT09ICdzaGExJykge1xuICAgICAgICByZXR1cm4gbmV3IEhtYWMoU2hhMSwga2V5KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdITUFDIGFsZ29yaXRobSAnICsgYWxnICsgJyBpcyBub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIFNESycpO1xuICAgIH0sXG4gICAgY3JlYXRlU2lnbjogZnVuY3Rpb24oKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NyZWF0ZVNpZ24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBicm93c2VyJyk7XG4gICAgfVxuICB9XG4iLCJ2YXIgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyLycpLkJ1ZmZlcjtcblxuLyoqXG4gKiBUaGlzIGlzIGEgcG9seWZpbGwgZm9yIHRoZSBzdGF0aWMgbWV0aG9kIGBpc1ZpZXdgIG9mIGBBcnJheUJ1ZmZlcmAsIHdoaWNoIGlzXG4gKiBlLmcuIG1pc3NpbmcgaW4gSUUgMTAuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmlmIChcbiAgICB0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmXG4gICAgdHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyA9PT0gJ3VuZGVmaW5lZCdcbikge1xuICAgIEFycmF5QnVmZmVyLmlzVmlldyA9IGZ1bmN0aW9uKGFyZykge1xuICAgICAgICByZXR1cm4gdmlld1N0cmluZ3MuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSkgPiAtMTtcbiAgICB9O1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgdmlld1N0cmluZ3MgPSBbXG4gICAgJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgICdbb2JqZWN0IFVpbnQzMkFycmF5XScsXG4gICAgJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgJ1tvYmplY3QgRGF0YVZpZXddJyxcbl07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGEpIHtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBkYXRhLmxlbmd0aCA9PT0gMDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gY29udmVydFRvQnVmZmVyKGRhdGEpIHtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGRhdGEgPSBuZXcgQnVmZmVyKGRhdGEsICd1dGY4Jyk7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhkYXRhKSkge1xuICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZGF0YS5idWZmZXIsIGRhdGEuYnl0ZU9mZnNldCwgZGF0YS5ieXRlTGVuZ3RoIC8gVWludDhBcnJheS5CWVRFU19QRVJfRUxFTUVOVCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRhdGEpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSB7XG4gICAgaXNFbXB0eURhdGE6IGlzRW1wdHlEYXRhLFxuICAgIGNvbnZlcnRUb0J1ZmZlcjogY29udmVydFRvQnVmZmVyLFxufVxuIiwidmFyIGhhc2hVdGlscyA9IHJlcXVpcmUoJy4vYnJvd3Nlckhhc2hVdGlscycpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBIbWFjKGhhc2hDdG9yLCBzZWNyZXQpIHtcbiAgICB0aGlzLmhhc2ggPSBuZXcgaGFzaEN0b3IoKTtcbiAgICB0aGlzLm91dGVyID0gbmV3IGhhc2hDdG9yKCk7XG5cbiAgICB2YXIgaW5uZXIgPSBidWZmZXJGcm9tU2VjcmV0KGhhc2hDdG9yLCBzZWNyZXQpO1xuICAgIHZhciBvdXRlciA9IG5ldyBVaW50OEFycmF5KGhhc2hDdG9yLkJMT0NLX1NJWkUpO1xuICAgIG91dGVyLnNldChpbm5lcik7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhhc2hDdG9yLkJMT0NLX1NJWkU7IGkrKykge1xuICAgICAgICBpbm5lcltpXSBePSAweDM2O1xuICAgICAgICBvdXRlcltpXSBePSAweDVjO1xuICAgIH1cblxuICAgIHRoaXMuaGFzaC51cGRhdGUoaW5uZXIpO1xuICAgIHRoaXMub3V0ZXIudXBkYXRlKG91dGVyKTtcblxuICAgIC8vIFplcm8gb3V0IHRoZSBjb3BpZWQga2V5IGJ1ZmZlci5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlubmVyLmJ5dGVMZW5ndGg7IGkrKykge1xuICAgICAgICBpbm5lcltpXSA9IDA7XG4gICAgfVxufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBIbWFjO1xuXG5IbWFjLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAodG9IYXNoKSB7XG4gICAgaWYgKGhhc2hVdGlscy5pc0VtcHR5RGF0YSh0b0hhc2gpIHx8IHRoaXMuZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgICAgdGhpcy5oYXNoLnVwZGF0ZShoYXNoVXRpbHMuY29udmVydFRvQnVmZmVyKHRvSGFzaCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5lcnJvciA9IGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG59O1xuXG5IbWFjLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoZW5jb2RpbmcpIHtcbiAgICBpZiAoIXRoaXMub3V0ZXIuZmluaXNoZWQpIHtcbiAgICAgICAgdGhpcy5vdXRlci51cGRhdGUodGhpcy5oYXNoLmRpZ2VzdCgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vdXRlci5kaWdlc3QoZW5jb2RpbmcpO1xufVxuXG5mdW5jdGlvbiBidWZmZXJGcm9tU2VjcmV0KGhhc2hDdG9yLCBzZWNyZXQpIHtcbiAgICB2YXIgaW5wdXQgPSBoYXNoVXRpbHMuY29udmVydFRvQnVmZmVyKHNlY3JldCk7XG4gICAgaWYgKGlucHV0LmJ5dGVMZW5ndGggPiBoYXNoQ3Rvci5CTE9DS19TSVpFKSB7XG4gICAgICAgIHZhciBidWZmZXJIYXNoID0gbmV3IGhhc2hDdG9yO1xuICAgICAgICBidWZmZXJIYXNoLnVwZGF0ZShpbnB1dCk7XG4gICAgICAgIGlucHV0ID0gYnVmZmVySGFzaC5kaWdlc3QoKTtcbiAgICB9XG4gICAgdmFyIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGhhc2hDdG9yLkJMT0NLX1NJWkUpO1xuICAgIGJ1ZmZlci5zZXQoaW5wdXQpO1xuICAgIHJldHVybiBidWZmZXI7XG59XG4iLCJ2YXIgaGFzaFV0aWxzID0gcmVxdWlyZSgnLi9icm93c2VySGFzaFV0aWxzJyk7XG52YXIgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyLycpLkJ1ZmZlcjtcblxudmFyIEJMT0NLX1NJWkUgPSA2NDtcblxudmFyIERJR0VTVF9MRU5HVEggPSAxNjtcblxudmFyIElOSVQgPSBbXG4gICAgMHg2NzQ1MjMwMSxcbiAgICAweGVmY2RhYjg5LFxuICAgIDB4OThiYWRjZmUsXG4gICAgMHgxMDMyNTQ3Nixcbl07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIE1kNSgpIHtcbiAgICB0aGlzLnN0YXRlID0gW1xuICAgICAgICAweDY3NDUyMzAxLFxuICAgICAgICAweGVmY2RhYjg5LFxuICAgICAgICAweDk4YmFkY2ZlLFxuICAgICAgICAweDEwMzI1NDc2LFxuICAgIF07XG4gICAgdGhpcy5idWZmZXIgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKEJMT0NLX1NJWkUpKTtcbiAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgdGhpcy5ieXRlc0hhc2hlZCA9IDA7XG4gICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBNZDU7XG5cbk1kNS5CTE9DS19TSVpFID0gQkxPQ0tfU0laRTtcblxuTWQ1LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoc291cmNlRGF0YSkge1xuICAgIGlmIChoYXNoVXRpbHMuaXNFbXB0eURhdGEoc291cmNlRGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIHVwZGF0ZSBhbiBhbHJlYWR5IGZpbmlzaGVkIGhhc2guJyk7XG4gICAgfVxuXG4gICAgdmFyIGRhdGEgPSBoYXNoVXRpbHMuY29udmVydFRvQnVmZmVyKHNvdXJjZURhdGEpO1xuICAgIHZhciBwb3NpdGlvbiA9IDA7XG4gICAgdmFyIGJ5dGVMZW5ndGggPSBkYXRhLmJ5dGVMZW5ndGg7XG4gICAgdGhpcy5ieXRlc0hhc2hlZCArPSBieXRlTGVuZ3RoO1xuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmJ1ZmZlci5zZXRVaW50OCh0aGlzLmJ1ZmZlckxlbmd0aCsrLCBkYXRhW3Bvc2l0aW9uKytdKTtcbiAgICAgICAgYnl0ZUxlbmd0aC0tO1xuICAgICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPT09IEJMT0NLX1NJWkUpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzaEJ1ZmZlcigpO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG59O1xuXG5NZDUucHJvdG90eXBlLmRpZ2VzdCA9IGZ1bmN0aW9uIChlbmNvZGluZykge1xuICAgIGlmICghdGhpcy5maW5pc2hlZCkge1xuICAgICAgICB2YXIgX2EgPSB0aGlzLCBidWZmZXIgPSBfYS5idWZmZXIsIHVuZGVjb3JhdGVkTGVuZ3RoID0gX2EuYnVmZmVyTGVuZ3RoLCBieXRlc0hhc2hlZCA9IF9hLmJ5dGVzSGFzaGVkO1xuICAgICAgICB2YXIgYml0c0hhc2hlZCA9IGJ5dGVzSGFzaGVkICogODtcbiAgICAgICAgYnVmZmVyLnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIDEyOCk7XG4gICAgICAgIC8vIEVuc3VyZSB0aGUgZmluYWwgYmxvY2sgaGFzIGVub3VnaCByb29tIGZvciB0aGUgaGFzaGVkIGxlbmd0aFxuICAgICAgICBpZiAodW5kZWNvcmF0ZWRMZW5ndGggJSBCTE9DS19TSVpFID49IEJMT0NLX1NJWkUgLSA4KSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgICAgICAgICBidWZmZXIuc2V0VWludDgoaSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFIC0gODsgaSsrKSB7XG4gICAgICAgICAgICBidWZmZXIuc2V0VWludDgoaSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgYnVmZmVyLnNldFVpbnQzMihCTE9DS19TSVpFIC0gOCwgYml0c0hhc2hlZCA+Pj4gMCwgdHJ1ZSk7XG4gICAgICAgIGJ1ZmZlci5zZXRVaW50MzIoQkxPQ0tfU0laRSAtIDQsIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuaGFzaEJ1ZmZlcigpO1xuICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgdmFyIG91dCA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoRElHRVNUX0xFTkdUSCkpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgIG91dC5zZXRVaW50MzIoaSAqIDQsIHRoaXMuc3RhdGVbaV0sIHRydWUpO1xuICAgIH1cbiAgICB2YXIgYnVmZiA9IG5ldyBCdWZmZXIob3V0LmJ1ZmZlciwgb3V0LmJ5dGVPZmZzZXQsIG91dC5ieXRlTGVuZ3RoKTtcbiAgICByZXR1cm4gZW5jb2RpbmcgPyBidWZmLnRvU3RyaW5nKGVuY29kaW5nKSA6IGJ1ZmY7XG59O1xuXG5NZDUucHJvdG90eXBlLmhhc2hCdWZmZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9hID0gdGhpcywgYnVmZmVyID0gX2EuYnVmZmVyLCBzdGF0ZSA9IF9hLnN0YXRlO1xuICAgIHZhciBhID0gc3RhdGVbMF0sIGIgPSBzdGF0ZVsxXSwgYyA9IHN0YXRlWzJdLCBkID0gc3RhdGVbM107XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMCwgdHJ1ZSksIDcsIDB4ZDc2YWE0NzgpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDQsIHRydWUpLCAxMiwgMHhlOGM3Yjc1Nik7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoOCwgdHJ1ZSksIDE3LCAweDI0MjA3MGRiKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigxMiwgdHJ1ZSksIDIyLCAweGMxYmRjZWVlKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDcsIDB4ZjU3YzBmYWYpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDIwLCB0cnVlKSwgMTIsIDB4NDc4N2M2MmEpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDI0LCB0cnVlKSwgMTcsIDB4YTgzMDQ2MTMpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDI4LCB0cnVlKSwgMjIsIDB4ZmQ0Njk1MDEpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDMyLCB0cnVlKSwgNywgMHg2OTgwOThkOCk7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMzYsIHRydWUpLCAxMiwgMHg4YjQ0ZjdhZik7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCAxNywgMHhmZmZmNWJiMSk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNDQsIHRydWUpLCAyMiwgMHg4OTVjZDdiZSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoNDgsIHRydWUpLCA3LCAweDZiOTAxMTIyKTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig1MiwgdHJ1ZSksIDEyLCAweGZkOTg3MTkzKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig1NiwgdHJ1ZSksIDE3LCAweGE2Nzk0MzhlKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDIyLCAweDQ5YjQwODIxKTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgNSwgMHhmNjFlMjU2Mik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCA5LCAweGMwNDBiMzQwKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig0NCwgdHJ1ZSksIDE0LCAweDI2NWU1YTUxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigwLCB0cnVlKSwgMjAsIDB4ZTliNmM3YWEpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDIwLCB0cnVlKSwgNSwgMHhkNjJmMTA1ZCk7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCA5LCAweDAyNDQxNDUzKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDE0LCAweGQ4YTFlNjgxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDIwLCAweGU3ZDNmYmM4KTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzNiwgdHJ1ZSksIDUsIDB4MjFlMWNkZTYpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgOSwgMHhjMzM3MDdkNik7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxNCwgMHhmNGQ1MGQ4Nyk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMzIsIHRydWUpLCAyMCwgMHg0NTVhMTRlZCk7XG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCA1LCAweGE5ZTNlOTA1KTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgOSwgMHhmY2VmYTNmOCk7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMjgsIHRydWUpLCAxNCwgMHg2NzZmMDJkOSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNDgsIHRydWUpLCAyMCwgMHg4ZDJhNGM4YSk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMjAsIHRydWUpLCA0LCAweGZmZmEzOTQyKTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigzMiwgdHJ1ZSksIDExLCAweDg3NzFmNjgxKTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig0NCwgdHJ1ZSksIDE2LCAweDZkOWQ2MTIyKTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig1NiwgdHJ1ZSksIDIzLCAweGZkZTUzODBjKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgNCwgMHhhNGJlZWE0NCk7XG4gICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMTYsIHRydWUpLCAxMSwgMHg0YmRlY2ZhOSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMjgsIHRydWUpLCAxNiwgMHhmNmJiNGI2MCk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCAyMywgMHhiZWJmYmM3MCk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCA0LCAweDI4OWI3ZWM2KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigwLCB0cnVlKSwgMTEsIDB4ZWFhMTI3ZmEpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDEyLCB0cnVlKSwgMTYsIDB4ZDRlZjMwODUpO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDI0LCB0cnVlKSwgMjMsIDB4MDQ4ODFkMDUpO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDM2LCB0cnVlKSwgNCwgMHhkOWQ0ZDAzOSk7XG4gICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNDgsIHRydWUpLCAxMSwgMHhlNmRiOTllNSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNjAsIHRydWUpLCAxNiwgMHgxZmEyN2NmOCk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoOCwgdHJ1ZSksIDIzLCAweGM0YWM1NjY1KTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigwLCB0cnVlKSwgNiwgMHhmNDI5MjI0NCk7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMjgsIHRydWUpLCAxMCwgMHg0MzJhZmY5Nyk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNTYsIHRydWUpLCAxNSwgMHhhYjk0MjNhNyk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMjAsIHRydWUpLCAyMSwgMHhmYzkzYTAzOSk7XG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoNDgsIHRydWUpLCA2LCAweDY1NWI1OWMzKTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigxMiwgdHJ1ZSksIDEwLCAweDhmMGNjYzkyKTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig0MCwgdHJ1ZSksIDE1LCAweGZmZWZmNDdkKTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgMjEsIDB4ODU4NDVkZDEpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDMyLCB0cnVlKSwgNiwgMHg2ZmE4N2U0Zik7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNjAsIHRydWUpLCAxMCwgMHhmZTJjZTZlMCk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCAxNSwgMHhhMzAxNDMxNCk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCAyMSwgMHg0ZTA4MTFhMSk7XG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMTYsIHRydWUpLCA2LCAweGY3NTM3ZTgyKTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0NCwgdHJ1ZSksIDEwLCAweGJkM2FmMjM1KTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgMTUsIDB4MmFkN2QyYmIpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDM2LCB0cnVlKSwgMjEsIDB4ZWI4NmQzOTEpO1xuICAgIHN0YXRlWzBdID0gKGEgKyBzdGF0ZVswXSkgJiAweEZGRkZGRkZGO1xuICAgIHN0YXRlWzFdID0gKGIgKyBzdGF0ZVsxXSkgJiAweEZGRkZGRkZGO1xuICAgIHN0YXRlWzJdID0gKGMgKyBzdGF0ZVsyXSkgJiAweEZGRkZGRkZGO1xuICAgIHN0YXRlWzNdID0gKGQgKyBzdGF0ZVszXSkgJiAweEZGRkZGRkZGO1xufTtcblxuZnVuY3Rpb24gY21uKHEsIGEsIGIsIHgsIHMsIHQpIHtcbiAgICBhID0gKCgoYSArIHEpICYgMHhGRkZGRkZGRikgKyAoKHggKyB0KSAmIDB4RkZGRkZGRkYpKSAmIDB4RkZGRkZGRkY7XG4gICAgcmV0dXJuICgoKGEgPDwgcykgfCAoYSA+Pj4gKDMyIC0gcykpKSArIGIpICYgMHhGRkZGRkZGRjtcbn1cblxuZnVuY3Rpb24gZmYoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgIHJldHVybiBjbW4oKGIgJiBjKSB8ICgofmIpICYgZCksIGEsIGIsIHgsIHMsIHQpO1xufVxuXG5mdW5jdGlvbiBnZyhhLCBiLCBjLCBkLCB4LCBzLCB0KSB7XG4gICAgcmV0dXJuIGNtbigoYiAmIGQpIHwgKGMgJiAofmQpKSwgYSwgYiwgeCwgcywgdCk7XG59XG5cbmZ1bmN0aW9uIGhoKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICByZXR1cm4gY21uKGIgXiBjIF4gZCwgYSwgYiwgeCwgcywgdCk7XG59XG5cbmZ1bmN0aW9uIGlpKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICByZXR1cm4gY21uKGMgXiAoYiB8ICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTtcbn1cbiIsInZhciBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXIvJykuQnVmZmVyO1xudmFyIGhhc2hVdGlscyA9IHJlcXVpcmUoJy4vYnJvd3Nlckhhc2hVdGlscycpO1xuXG52YXIgQkxPQ0tfU0laRSA9IDY0O1xuXG52YXIgRElHRVNUX0xFTkdUSCA9IDIwO1xuXG52YXIgS0VZID0gbmV3IFVpbnQzMkFycmF5KFtcbiAgICAweDVhODI3OTk5LFxuICAgIDB4NmVkOWViYTEsXG4gICAgMHg4ZjFiYmNkYyB8IDAsXG4gICAgMHhjYTYyYzFkNiB8IDBcbl0pO1xuXG52YXIgSU5JVCA9IFtcbiAgICAweDZhMDllNjY3LFxuICAgIDB4YmI2N2FlODUsXG4gICAgMHgzYzZlZjM3MixcbiAgICAweGE1NGZmNTNhLFxuICAgIDB4NTEwZTUyN2YsXG4gICAgMHg5YjA1Njg4YyxcbiAgICAweDFmODNkOWFiLFxuICAgIDB4NWJlMGNkMTksXG5dO1xuXG52YXIgTUFYX0hBU0hBQkxFX0xFTkdUSCA9IE1hdGgucG93KDIsIDUzKSAtIDE7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIFNoYTEoKSB7XG4gICAgdGhpcy5oMCA9IDB4Njc0NTIzMDE7XG4gICAgdGhpcy5oMSA9IDB4RUZDREFCODk7XG4gICAgdGhpcy5oMiA9IDB4OThCQURDRkU7XG4gICAgdGhpcy5oMyA9IDB4MTAzMjU0NzY7XG4gICAgdGhpcy5oNCA9IDB4QzNEMkUxRjA7XG4gICAgLy8gVGhlIGZpcnN0IDY0IGJ5dGVzICgxNiB3b3JkcykgaXMgdGhlIGRhdGEgY2h1bmtcbiAgICB0aGlzLmJsb2NrID0gbmV3IFVpbnQzMkFycmF5KDgwKTtcbiAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgdGhpcy5zaGlmdCA9IDI0O1xuICAgIHRoaXMudG90YWxMZW5ndGggPSAwO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBTaGExO1xuXG5TaGExLkJMT0NLX1NJWkUgPSBCTE9DS19TSVpFO1xuXG5TaGExLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIHVwZGF0ZSBhbiBhbHJlYWR5IGZpbmlzaGVkIGhhc2guJyk7XG4gICAgfVxuXG4gICAgaWYgKGhhc2hVdGlscy5pc0VtcHR5RGF0YShkYXRhKSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBkYXRhID0gaGFzaFV0aWxzLmNvbnZlcnRUb0J1ZmZlcihkYXRhKTtcblxuICAgIHZhciBsZW5ndGggPSBkYXRhLmxlbmd0aDtcbiAgICB0aGlzLnRvdGFsTGVuZ3RoICs9IGxlbmd0aCAqIDg7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLndyaXRlKGRhdGFbaV0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xufTtcblxuU2hhMS5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiB3cml0ZShieXRlKSB7XG4gICAgdGhpcy5ibG9ja1t0aGlzLm9mZnNldF0gfD0gKGJ5dGUgJiAweGZmKSA8PCB0aGlzLnNoaWZ0O1xuICAgIGlmICh0aGlzLnNoaWZ0KSB7XG4gICAgICAgIHRoaXMuc2hpZnQgLT0gODtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9mZnNldCsrO1xuICAgICAgICB0aGlzLnNoaWZ0ID0gMjQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub2Zmc2V0ID09PSAxNikgdGhpcy5wcm9jZXNzQmxvY2soKTtcbn07XG5cblNoYTEucHJvdG90eXBlLmRpZ2VzdCA9IGZ1bmN0aW9uIChlbmNvZGluZykge1xuICAgIC8vIFBhZFxuICAgIHRoaXMud3JpdGUoMHg4MCk7XG4gICAgaWYgKHRoaXMub2Zmc2V0ID4gMTQgfHwgKHRoaXMub2Zmc2V0ID09PSAxNCAmJiB0aGlzLnNoaWZ0IDwgMjQpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NCbG9jaygpO1xuICAgIH1cbiAgICB0aGlzLm9mZnNldCA9IDE0O1xuICAgIHRoaXMuc2hpZnQgPSAyNDtcblxuICAgIC8vIDY0LWJpdCBsZW5ndGggYmlnLWVuZGlhblxuICAgIHRoaXMud3JpdGUoMHgwMCk7IC8vIG51bWJlcnMgdGhpcyBiaWcgYXJlbid0IGFjY3VyYXRlIGluIGphdmFzY3JpcHQgYW55d2F5XG4gICAgdGhpcy53cml0ZSgweDAwKTsgLy8gLi5TbyBqdXN0IGhhcmQtY29kZSB0byB6ZXJvLlxuICAgIHRoaXMud3JpdGUodGhpcy50b3RhbExlbmd0aCA+IDB4ZmZmZmZmZmZmZiA/IHRoaXMudG90YWxMZW5ndGggLyAweDEwMDAwMDAwMDAwIDogMHgwMCk7XG4gICAgdGhpcy53cml0ZSh0aGlzLnRvdGFsTGVuZ3RoID4gMHhmZmZmZmZmZiA/IHRoaXMudG90YWxMZW5ndGggLyAweDEwMDAwMDAwMCA6IDB4MDApO1xuICAgIGZvciAodmFyIHMgPSAyNDsgcyA+PSAwOyBzIC09IDgpIHtcbiAgICAgICAgdGhpcy53cml0ZSh0aGlzLnRvdGFsTGVuZ3RoID4+IHMpO1xuICAgIH1cbiAgICAvLyBUaGUgdmFsdWUgaW4gc3RhdGUgaXMgbGl0dGxlLWVuZGlhbiByYXRoZXIgdGhhbiBiaWctZW5kaWFuLCBzbyBmbGlwXG4gICAgLy8gZWFjaCB3b3JkIGludG8gYSBuZXcgVWludDhBcnJheVxuICAgIHZhciBvdXQgPSBuZXcgQnVmZmVyKERJR0VTVF9MRU5HVEgpO1xuICAgIHZhciBvdXRWaWV3ID0gbmV3IERhdGFWaWV3KG91dC5idWZmZXIpO1xuICAgIG91dFZpZXcuc2V0VWludDMyKDAsIHRoaXMuaDAsIGZhbHNlKTtcbiAgICBvdXRWaWV3LnNldFVpbnQzMig0LCB0aGlzLmgxLCBmYWxzZSk7XG4gICAgb3V0Vmlldy5zZXRVaW50MzIoOCwgdGhpcy5oMiwgZmFsc2UpO1xuICAgIG91dFZpZXcuc2V0VWludDMyKDEyLCB0aGlzLmgzLCBmYWxzZSk7XG4gICAgb3V0Vmlldy5zZXRVaW50MzIoMTYsIHRoaXMuaDQsIGZhbHNlKTtcblxuICAgIHJldHVybiBlbmNvZGluZyA/IG91dC50b1N0cmluZyhlbmNvZGluZykgOiBvdXQ7XG59O1xuXG5TaGExLnByb3RvdHlwZS5wcm9jZXNzQmxvY2sgPSBmdW5jdGlvbiBwcm9jZXNzQmxvY2soKSB7XG4gICAgLy8gRXh0ZW5kIHRoZSBzaXh0ZWVuIDMyLWJpdCB3b3JkcyBpbnRvIGVpZ2h0eSAzMi1iaXQgd29yZHM6XG4gICAgZm9yICh2YXIgaSA9IDE2OyBpIDwgODA7IGkrKykge1xuICAgICAgdmFyIHcgPSB0aGlzLmJsb2NrW2kgLSAzXSBeIHRoaXMuYmxvY2tbaSAtIDhdIF4gdGhpcy5ibG9ja1tpIC0gMTRdIF4gdGhpcy5ibG9ja1tpIC0gMTZdO1xuICAgICAgdGhpcy5ibG9ja1tpXSA9ICh3IDw8IDEpIHwgKHcgPj4+IDMxKTtcbiAgICB9XG5cbiAgICAvLyBJbml0aWFsaXplIGhhc2ggdmFsdWUgZm9yIHRoaXMgY2h1bms6XG4gICAgdmFyIGEgPSB0aGlzLmgwO1xuICAgIHZhciBiID0gdGhpcy5oMTtcbiAgICB2YXIgYyA9IHRoaXMuaDI7XG4gICAgdmFyIGQgPSB0aGlzLmgzO1xuICAgIHZhciBlID0gdGhpcy5oNDtcbiAgICB2YXIgZiwgaztcblxuICAgIC8vIE1haW4gbG9vcDpcbiAgICBmb3IgKGkgPSAwOyBpIDwgODA7IGkrKykge1xuICAgICAgaWYgKGkgPCAyMCkge1xuICAgICAgICBmID0gZCBeIChiICYgKGMgXiBkKSk7XG4gICAgICAgIGsgPSAweDVBODI3OTk5O1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoaSA8IDQwKSB7XG4gICAgICAgIGYgPSBiIF4gYyBeIGQ7XG4gICAgICAgIGsgPSAweDZFRDlFQkExO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoaSA8IDYwKSB7XG4gICAgICAgIGYgPSAoYiAmIGMpIHwgKGQgJiAoYiB8IGMpKTtcbiAgICAgICAgayA9IDB4OEYxQkJDREM7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZiA9IGIgXiBjIF4gZDtcbiAgICAgICAgayA9IDB4Q0E2MkMxRDY7XG4gICAgICB9XG4gICAgICB2YXIgdGVtcCA9IChhIDw8IDUgfCBhID4+PiAyNykgKyBmICsgZSArIGsgKyAodGhpcy5ibG9ja1tpXXwwKTtcbiAgICAgIGUgPSBkO1xuICAgICAgZCA9IGM7XG4gICAgICBjID0gKGIgPDwgMzAgfCBiID4+PiAyKTtcbiAgICAgIGIgPSBhO1xuICAgICAgYSA9IHRlbXA7XG4gICAgfVxuXG4gICAgLy8gQWRkIHRoaXMgY2h1bmsncyBoYXNoIHRvIHJlc3VsdCBzbyBmYXI6XG4gICAgdGhpcy5oMCA9ICh0aGlzLmgwICsgYSkgfCAwO1xuICAgIHRoaXMuaDEgPSAodGhpcy5oMSArIGIpIHwgMDtcbiAgICB0aGlzLmgyID0gKHRoaXMuaDIgKyBjKSB8IDA7XG4gICAgdGhpcy5oMyA9ICh0aGlzLmgzICsgZCkgfCAwO1xuICAgIHRoaXMuaDQgPSAodGhpcy5oNCArIGUpIHwgMDtcblxuICAgIC8vIFRoZSBibG9jayBpcyBub3cgcmV1c2FibGUuXG4gICAgdGhpcy5vZmZzZXQgPSAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG4gICAgICAgIHRoaXMuYmxvY2tbaV0gPSAwO1xuICAgIH1cbn1cbiIsInZhciBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXIvJykuQnVmZmVyO1xudmFyIGhhc2hVdGlscyA9IHJlcXVpcmUoJy4vYnJvd3Nlckhhc2hVdGlscycpO1xuXG52YXIgQkxPQ0tfU0laRSA9IDY0O1xuXG52YXIgRElHRVNUX0xFTkdUSCA9IDMyO1xuXG52YXIgS0VZID0gbmV3IFVpbnQzMkFycmF5KFtcbiAgICAweDQyOGEyZjk4LFxuICAgIDB4NzEzNzQ0OTEsXG4gICAgMHhiNWMwZmJjZixcbiAgICAweGU5YjVkYmE1LFxuICAgIDB4Mzk1NmMyNWIsXG4gICAgMHg1OWYxMTFmMSxcbiAgICAweDkyM2Y4MmE0LFxuICAgIDB4YWIxYzVlZDUsXG4gICAgMHhkODA3YWE5OCxcbiAgICAweDEyODM1YjAxLFxuICAgIDB4MjQzMTg1YmUsXG4gICAgMHg1NTBjN2RjMyxcbiAgICAweDcyYmU1ZDc0LFxuICAgIDB4ODBkZWIxZmUsXG4gICAgMHg5YmRjMDZhNyxcbiAgICAweGMxOWJmMTc0LFxuICAgIDB4ZTQ5YjY5YzEsXG4gICAgMHhlZmJlNDc4NixcbiAgICAweDBmYzE5ZGM2LFxuICAgIDB4MjQwY2ExY2MsXG4gICAgMHgyZGU5MmM2ZixcbiAgICAweDRhNzQ4NGFhLFxuICAgIDB4NWNiMGE5ZGMsXG4gICAgMHg3NmY5ODhkYSxcbiAgICAweDk4M2U1MTUyLFxuICAgIDB4YTgzMWM2NmQsXG4gICAgMHhiMDAzMjdjOCxcbiAgICAweGJmNTk3ZmM3LFxuICAgIDB4YzZlMDBiZjMsXG4gICAgMHhkNWE3OTE0NyxcbiAgICAweDA2Y2E2MzUxLFxuICAgIDB4MTQyOTI5NjcsXG4gICAgMHgyN2I3MGE4NSxcbiAgICAweDJlMWIyMTM4LFxuICAgIDB4NGQyYzZkZmMsXG4gICAgMHg1MzM4MGQxMyxcbiAgICAweDY1MGE3MzU0LFxuICAgIDB4NzY2YTBhYmIsXG4gICAgMHg4MWMyYzkyZSxcbiAgICAweDkyNzIyYzg1LFxuICAgIDB4YTJiZmU4YTEsXG4gICAgMHhhODFhNjY0YixcbiAgICAweGMyNGI4YjcwLFxuICAgIDB4Yzc2YzUxYTMsXG4gICAgMHhkMTkyZTgxOSxcbiAgICAweGQ2OTkwNjI0LFxuICAgIDB4ZjQwZTM1ODUsXG4gICAgMHgxMDZhYTA3MCxcbiAgICAweDE5YTRjMTE2LFxuICAgIDB4MWUzNzZjMDgsXG4gICAgMHgyNzQ4Nzc0YyxcbiAgICAweDM0YjBiY2I1LFxuICAgIDB4MzkxYzBjYjMsXG4gICAgMHg0ZWQ4YWE0YSxcbiAgICAweDViOWNjYTRmLFxuICAgIDB4NjgyZTZmZjMsXG4gICAgMHg3NDhmODJlZSxcbiAgICAweDc4YTU2MzZmLFxuICAgIDB4ODRjODc4MTQsXG4gICAgMHg4Y2M3MDIwOCxcbiAgICAweDkwYmVmZmZhLFxuICAgIDB4YTQ1MDZjZWIsXG4gICAgMHhiZWY5YTNmNyxcbiAgICAweGM2NzE3OGYyXG5dKTtcblxudmFyIElOSVQgPSBbXG4gICAgMHg2YTA5ZTY2NyxcbiAgICAweGJiNjdhZTg1LFxuICAgIDB4M2M2ZWYzNzIsXG4gICAgMHhhNTRmZjUzYSxcbiAgICAweDUxMGU1MjdmLFxuICAgIDB4OWIwNTY4OGMsXG4gICAgMHgxZjgzZDlhYixcbiAgICAweDViZTBjZDE5LFxuXTtcblxudmFyIE1BWF9IQVNIQUJMRV9MRU5HVEggPSBNYXRoLnBvdygyLCA1MykgLSAxO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIFNoYTI1NigpIHtcbiAgICB0aGlzLnN0YXRlID0gW1xuICAgICAgICAweDZhMDllNjY3LFxuICAgICAgICAweGJiNjdhZTg1LFxuICAgICAgICAweDNjNmVmMzcyLFxuICAgICAgICAweGE1NGZmNTNhLFxuICAgICAgICAweDUxMGU1MjdmLFxuICAgICAgICAweDliMDU2ODhjLFxuICAgICAgICAweDFmODNkOWFiLFxuICAgICAgICAweDViZTBjZDE5LFxuICAgIF07XG4gICAgdGhpcy50ZW1wID0gbmV3IEludDMyQXJyYXkoNjQpO1xuICAgIHRoaXMuYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoNjQpO1xuICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICB0aGlzLmJ5dGVzSGFzaGVkID0gMDtcbiAgICAvKipcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gU2hhMjU2O1xuXG5TaGEyNTYuQkxPQ0tfU0laRSA9IEJMT0NLX1NJWkU7XG5cblNoYTI1Ni5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBpZiAodGhpcy5maW5pc2hlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRlZCB0byB1cGRhdGUgYW4gYWxyZWFkeSBmaW5pc2hlZCBoYXNoLicpO1xuICAgIH1cblxuICAgIGlmIChoYXNoVXRpbHMuaXNFbXB0eURhdGEoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZGF0YSA9IGhhc2hVdGlscy5jb252ZXJ0VG9CdWZmZXIoZGF0YSk7XG5cbiAgICB2YXIgcG9zaXRpb24gPSAwO1xuICAgIHZhciBieXRlTGVuZ3RoID0gZGF0YS5ieXRlTGVuZ3RoO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcbiAgICBpZiAodGhpcy5ieXRlc0hhc2hlZCAqIDggPiBNQVhfSEFTSEFCTEVfTEVOR1RIKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGhhc2ggbW9yZSB0aGFuIDJeNTMgLSAxIGJpdHMnKTtcbiAgICB9XG5cbiAgICB3aGlsZSAoYnl0ZUxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW3Bvc2l0aW9uKytdO1xuICAgICAgICBieXRlTGVuZ3RoLS07XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA9PT0gQkxPQ0tfU0laRSkge1xuICAgICAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbn07XG5cblNoYTI1Ni5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKGVuY29kaW5nKSB7XG4gICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICAgIHZhciBiaXRzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZCAqIDg7XG4gICAgICAgIHZhciBidWZmZXJWaWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLmJ1ZmZlciwgdGhpcy5idWZmZXIuYnl0ZU9mZnNldCwgdGhpcy5idWZmZXIuYnl0ZUxlbmd0aCk7XG4gICAgICAgIHZhciB1bmRlY29yYXRlZExlbmd0aCA9IHRoaXMuYnVmZmVyTGVuZ3RoO1xuICAgICAgICBidWZmZXJWaWV3LnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIDB4ODApO1xuICAgICAgICAvLyBFbnN1cmUgdGhlIGZpbmFsIGJsb2NrIGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGhhc2hlZCBsZW5ndGhcbiAgICAgICAgaWYgKHVuZGVjb3JhdGVkTGVuZ3RoICUgQkxPQ0tfU0laRSA+PSBCTE9DS19TSVpFIC0gOCkge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGFzaEJ1ZmZlcigpO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGkgPSB0aGlzLmJ1ZmZlckxlbmd0aDsgaSA8IEJMT0NLX1NJWkUgLSA4OyBpKyspIHtcbiAgICAgICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDgoaSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50MzIoQkxPQ0tfU0laRSAtIDgsIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSwgdHJ1ZSk7XG4gICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA0LCBiaXRzSGFzaGVkKTtcbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cbiAgICAvLyBUaGUgdmFsdWUgaW4gc3RhdGUgaXMgbGl0dGxlLWVuZGlhbiByYXRoZXIgdGhhbiBiaWctZW5kaWFuLCBzbyBmbGlwXG4gICAgLy8gZWFjaCB3b3JkIGludG8gYSBuZXcgVWludDhBcnJheVxuICAgIHZhciBvdXQgPSBuZXcgQnVmZmVyKERJR0VTVF9MRU5HVEgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKSB7XG4gICAgICAgIG91dFtpICogNF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgb3V0W2kgKiA0ICsgMV0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgb3V0W2kgKiA0ICsgMl0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gOCkgJiAweGZmO1xuICAgICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgfVxuICAgIHJldHVybiBlbmNvZGluZyA/IG91dC50b1N0cmluZyhlbmNvZGluZykgOiBvdXQ7XG59O1xuXG5TaGEyNTYucHJvdG90eXBlLmhhc2hCdWZmZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9hID0gdGhpcyxcbiAgICAgICAgYnVmZmVyID0gX2EuYnVmZmVyLFxuICAgICAgICBzdGF0ZSA9IF9hLnN0YXRlO1xuICAgIHZhciBzdGF0ZTAgPSBzdGF0ZVswXSxcbiAgICAgICAgc3RhdGUxID0gc3RhdGVbMV0sXG4gICAgICAgIHN0YXRlMiA9IHN0YXRlWzJdLFxuICAgICAgICBzdGF0ZTMgPSBzdGF0ZVszXSxcbiAgICAgICAgc3RhdGU0ID0gc3RhdGVbNF0sXG4gICAgICAgIHN0YXRlNSA9IHN0YXRlWzVdLFxuICAgICAgICBzdGF0ZTYgPSBzdGF0ZVs2XSxcbiAgICAgICAgc3RhdGU3ID0gc3RhdGVbN107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgaWYgKGkgPCAxNikge1xuICAgICAgICAgICAgdGhpcy50ZW1wW2ldID0gKCgoYnVmZmVyW2kgKiA0XSAmIDB4ZmYpIDw8IDI0KSB8XG4gICAgICAgICAgICAgICAgKChidWZmZXJbKGkgKiA0KSArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAgICAgICAoKGJ1ZmZlclsoaSAqIDQpICsgMl0gJiAweGZmKSA8PCA4KSB8XG4gICAgICAgICAgICAgICAgKGJ1ZmZlclsoaSAqIDQpICsgM10gJiAweGZmKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgdSA9IHRoaXMudGVtcFtpIC0gMl07XG4gICAgICAgICAgICB2YXIgdDFfMSA9ICh1ID4+PiAxNyB8IHUgPDwgMTUpIF5cbiAgICAgICAgICAgICAgICAodSA+Pj4gMTkgfCB1IDw8IDEzKSBeXG4gICAgICAgICAgICAgICAgKHUgPj4+IDEwKTtcbiAgICAgICAgICAgIHUgPSB0aGlzLnRlbXBbaSAtIDE1XTtcbiAgICAgICAgICAgIHZhciB0Ml8xID0gKHUgPj4+IDcgfCB1IDw8IDI1KSBeXG4gICAgICAgICAgICAgICAgKHUgPj4+IDE4IHwgdSA8PCAxNCkgXlxuICAgICAgICAgICAgICAgICh1ID4+PiAzKTtcbiAgICAgICAgICAgIHRoaXMudGVtcFtpXSA9ICh0MV8xICsgdGhpcy50ZW1wW2kgLSA3XSB8IDApICtcbiAgICAgICAgICAgICAgICAodDJfMSArIHRoaXMudGVtcFtpIC0gMTZdIHwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHQxID0gKCgoKChzdGF0ZTQgPj4+IDYgfCBzdGF0ZTQgPDwgMjYpIF5cbiAgICAgICAgICAgIChzdGF0ZTQgPj4+IDExIHwgc3RhdGU0IDw8IDIxKSBeXG4gICAgICAgICAgICAoc3RhdGU0ID4+PiAyNSB8IHN0YXRlNCA8PCA3KSlcbiAgICAgICAgICAgICsgKChzdGF0ZTQgJiBzdGF0ZTUpIF4gKH5zdGF0ZTQgJiBzdGF0ZTYpKSkgfCAwKVxuICAgICAgICAgICAgKyAoKHN0YXRlNyArICgoS0VZW2ldICsgdGhpcy50ZW1wW2ldKSB8IDApKSB8IDApKSB8IDA7XG4gICAgICAgIHZhciB0MiA9ICgoKHN0YXRlMCA+Pj4gMiB8IHN0YXRlMCA8PCAzMCkgXlxuICAgICAgICAgICAgKHN0YXRlMCA+Pj4gMTMgfCBzdGF0ZTAgPDwgMTkpIF5cbiAgICAgICAgICAgIChzdGF0ZTAgPj4+IDIyIHwgc3RhdGUwIDw8IDEwKSkgKyAoKHN0YXRlMCAmIHN0YXRlMSkgXiAoc3RhdGUwICYgc3RhdGUyKSBeIChzdGF0ZTEgJiBzdGF0ZTIpKSkgfCAwO1xuICAgICAgICBzdGF0ZTcgPSBzdGF0ZTY7XG4gICAgICAgIHN0YXRlNiA9IHN0YXRlNTtcbiAgICAgICAgc3RhdGU1ID0gc3RhdGU0O1xuICAgICAgICBzdGF0ZTQgPSAoc3RhdGUzICsgdDEpIHwgMDtcbiAgICAgICAgc3RhdGUzID0gc3RhdGUyO1xuICAgICAgICBzdGF0ZTIgPSBzdGF0ZTE7XG4gICAgICAgIHN0YXRlMSA9IHN0YXRlMDtcbiAgICAgICAgc3RhdGUwID0gKHQxICsgdDIpIHwgMDtcbiAgICB9XG4gICAgc3RhdGVbMF0gKz0gc3RhdGUwO1xuICAgIHN0YXRlWzFdICs9IHN0YXRlMTtcbiAgICBzdGF0ZVsyXSArPSBzdGF0ZTI7XG4gICAgc3RhdGVbM10gKz0gc3RhdGUzO1xuICAgIHN0YXRlWzRdICs9IHN0YXRlNDtcbiAgICBzdGF0ZVs1XSArPSBzdGF0ZTU7XG4gICAgc3RhdGVbNl0gKz0gc3RhdGU2O1xuICAgIHN0YXRlWzddICs9IHN0YXRlNztcbn07XG4iLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuXG4vLyBicm93c2VyIHNwZWNpZmljIG1vZHVsZXNcbnV0aWwuY3J5cHRvLmxpYiA9IHJlcXVpcmUoJy4vYnJvd3NlckNyeXB0b0xpYicpO1xudXRpbC5CdWZmZXIgPSByZXF1aXJlKCdidWZmZXIvJykuQnVmZmVyO1xudXRpbC51cmwgPSByZXF1aXJlKCd1cmwvJyk7XG51dGlsLnF1ZXJ5c3RyaW5nID0gcmVxdWlyZSgncXVlcnlzdHJpbmcvJyk7XG51dGlsLmVudmlyb25tZW50ID0gJ2pzJztcbnV0aWwuY3JlYXRlRXZlbnRTdHJlYW0gPSByZXF1aXJlKCcuL2V2ZW50LXN0cmVhbS9idWZmZXJlZC1jcmVhdGUtZXZlbnQtc3RyZWFtJykuY3JlYXRlRXZlbnRTdHJlYW07XG5cbnZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1M7XG5cbnJlcXVpcmUoJy4vY3JlZGVudGlhbHMnKTtcbnJlcXVpcmUoJy4vY3JlZGVudGlhbHMvY3JlZGVudGlhbF9wcm92aWRlcl9jaGFpbicpO1xucmVxdWlyZSgnLi9jcmVkZW50aWFscy90ZW1wb3JhcnlfY3JlZGVudGlhbHMnKTtcbnJlcXVpcmUoJy4vY3JlZGVudGlhbHMvd2ViX2lkZW50aXR5X2NyZWRlbnRpYWxzJyk7XG5yZXF1aXJlKCcuL2NyZWRlbnRpYWxzL2NvZ25pdG9faWRlbnRpdHlfY3JlZGVudGlhbHMnKTtcbnJlcXVpcmUoJy4vY3JlZGVudGlhbHMvc2FtbF9jcmVkZW50aWFscycpO1xuXG4vLyBMb2FkIHRoZSBET01QYXJzZXIgWE1MIHBhcnNlclxuQVdTLlhNTC5QYXJzZXIgPSByZXF1aXJlKCcuL3htbC9icm93c2VyX3BhcnNlcicpO1xuXG4vLyBMb2FkIHRoZSBYSFIgSHR0cENsaWVudFxucmVxdWlyZSgnLi9odHRwL3hocicpO1xuXG5pZiAodHlwZW9mIHByb2Nlc3MgPT09ICd1bmRlZmluZWQnKSB7XG4gIHByb2Nlc3MgPSB7XG4gICAgYnJvd3NlcjogdHJ1ZVxuICB9O1xufVxuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKSxcbiAgICB1cmwgPSBBV1MudXRpbC51cmwsXG4gICAgY3J5cHRvID0gQVdTLnV0aWwuY3J5cHRvLmxpYixcbiAgICBiYXNlNjRFbmNvZGUgPSBBV1MudXRpbC5iYXNlNjQuZW5jb2RlLFxuICAgIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG52YXIgcXVlcnlFbmNvZGUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgdmFyIHJlcGxhY2VtZW50cyA9IHtcbiAgICAgICAgJysnOiAnLScsXG4gICAgICAgICc9JzogJ18nLFxuICAgICAgICAnLyc6ICd+J1xuICAgIH07XG4gICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9bXFwrPVxcL10vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlbWVudHNbbWF0Y2hdO1xuICAgIH0pO1xufTtcblxudmFyIHNpZ25Qb2xpY3kgPSBmdW5jdGlvbiAocG9saWN5LCBwcml2YXRlS2V5KSB7XG4gICAgdmFyIHNpZ24gPSBjcnlwdG8uY3JlYXRlU2lnbignUlNBLVNIQTEnKTtcbiAgICBzaWduLndyaXRlKHBvbGljeSk7XG4gICAgcmV0dXJuIHF1ZXJ5RW5jb2RlKHNpZ24uc2lnbihwcml2YXRlS2V5LCAnYmFzZTY0JykpXG59O1xuXG52YXIgc2lnbldpdGhDYW5uZWRQb2xpY3kgPSBmdW5jdGlvbiAodXJsLCBleHBpcmVzLCBrZXlQYWlySWQsIHByaXZhdGVLZXkpIHtcbiAgICB2YXIgcG9saWN5ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBSZXNvdXJjZTogdXJsLFxuICAgICAgICAgICAgICAgIENvbmRpdGlvbjogeyBEYXRlTGVzc1RoYW46IHsgJ0FXUzpFcG9jaFRpbWUnOiBleHBpcmVzIH0gfVxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBFeHBpcmVzOiBleHBpcmVzLFxuICAgICAgICAnS2V5LVBhaXItSWQnOiBrZXlQYWlySWQsXG4gICAgICAgIFNpZ25hdHVyZTogc2lnblBvbGljeShwb2xpY3kudG9TdHJpbmcoKSwgcHJpdmF0ZUtleSlcbiAgICB9O1xufTtcblxudmFyIHNpZ25XaXRoQ3VzdG9tUG9saWN5ID0gZnVuY3Rpb24gKHBvbGljeSwga2V5UGFpcklkLCBwcml2YXRlS2V5KSB7XG4gICAgcG9saWN5ID0gcG9saWN5LnJlcGxhY2UoL1xccy9tZywgcG9saWN5KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIFBvbGljeTogcXVlcnlFbmNvZGUoYmFzZTY0RW5jb2RlKHBvbGljeSkpLFxuICAgICAgICAnS2V5LVBhaXItSWQnOiBrZXlQYWlySWQsXG4gICAgICAgIFNpZ25hdHVyZTogc2lnblBvbGljeShwb2xpY3ksIHByaXZhdGVLZXkpXG4gICAgfVxufTtcblxudmFyIGRldGVybWluZVNjaGVtZSA9IGZ1bmN0aW9uICh1cmwpIHtcbiAgICB2YXIgcGFydHMgPSB1cmwuc3BsaXQoJzovLycpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggPCAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBVUkwuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnRzWzBdLnJlcGxhY2UoJyonLCAnJyk7XG59O1xuXG52YXIgZ2V0UnRtcFVybCA9IGZ1bmN0aW9uIChydG1wVXJsKSB7XG4gICAgdmFyIHBhcnNlZCA9IHVybC5wYXJzZShydG1wVXJsKTtcbiAgICByZXR1cm4gcGFyc2VkLnBhdGgucmVwbGFjZSgvXlxcLy8sICcnKSArIChwYXJzZWQuaGFzaCB8fCAnJyk7XG59O1xuXG52YXIgZ2V0UmVzb3VyY2UgPSBmdW5jdGlvbiAodXJsKSB7XG4gICAgc3dpdGNoIChkZXRlcm1pbmVTY2hlbWUodXJsKSkge1xuICAgICAgICBjYXNlICdodHRwJzpcbiAgICAgICAgY2FzZSAnaHR0cHMnOlxuICAgICAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgICAgY2FzZSAncnRtcCc6XG4gICAgICAgICAgICByZXR1cm4gZ2V0UnRtcFVybCh1cmwpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFVSSSBzY2hlbWUuIFNjaGVtZSBtdXN0IGJlIG9uZSBvZidcbiAgICAgICAgICAgICAgICArICcgaHR0cCwgaHR0cHMsIG9yIHJ0bXAnKTtcbiAgICB9XG59O1xuXG52YXIgaGFuZGxlRXJyb3IgPSBmdW5jdGlvbiAoZXJyLCBjYWxsYmFjaykge1xuICAgIGlmICghY2FsbGJhY2sgfHwgdHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICBjYWxsYmFjayhlcnIpO1xufTtcblxudmFyIGhhbmRsZVN1Y2Nlc3MgPSBmdW5jdGlvbiAocmVzdWx0LCBjYWxsYmFjaykge1xuICAgIGlmICghY2FsbGJhY2sgfHwgdHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgY2FsbGJhY2sobnVsbCwgcmVzdWx0KTtcbn07XG5cbkFXUy5DbG91ZEZyb250LlNpZ25lciA9IGluaGVyaXQoe1xuICAgIC8qKlxuICAgICAqIEEgc2lnbmVyIG9iamVjdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBzaWduZWQgVVJMcyBhbmQgY29va2llcyBmb3IgZ3JhbnRpbmdcbiAgICAgKiBhY2Nlc3MgdG8gY29udGVudCBvbiByZXN0cmljdGVkIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9ucy5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvUHJpdmF0ZUNvbnRlbnQuaHRtbFxuICAgICAqXG4gICAgICogQHBhcmFtIGtleVBhaXJJZCBbU3RyaW5nXSAgICAoUmVxdWlyZWQpIFRoZSBJRCBvZiB0aGUgQ2xvdWRGcm9udCBrZXkgcGFpclxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVpbmcgdXNlZC5cbiAgICAgKiBAcGFyYW0gcHJpdmF0ZUtleSBbU3RyaW5nXSAgIChSZXF1aXJlZCkgQSBwcml2YXRlIGtleSBpbiBSU0EgZm9ybWF0LlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBTaWduZXIoa2V5UGFpcklkLCBwcml2YXRlS2V5KSB7XG4gICAgICAgIGlmIChrZXlQYWlySWQgPT09IHZvaWQgMCB8fCBwcml2YXRlS2V5ID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQSBrZXkgcGFpciBJRCBhbmQgcHJpdmF0ZSBrZXkgYXJlIHJlcXVpcmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmtleVBhaXJJZCA9IGtleVBhaXJJZDtcbiAgICAgICAgdGhpcy5wcml2YXRlS2V5ID0gcHJpdmF0ZUtleTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgc2lnbmVkIEFtYXpvbiBDbG91ZEZyb250IENvb2tpZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFtPYmplY3RdICAgICAgICAgICAgVGhlIG9wdGlvbnMgdG8gY3JlYXRlIGEgc2lnbmVkIGNvb2tpZS5cbiAgICAgKiBAb3B0aW9uIG9wdGlvbnMgdXJsIFtTdHJpbmddICAgICBUaGUgVVJMIHRvIHdoaWNoIHRoZSBzaWduYXR1cmUgd2lsbCBncmFudFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzcy4gUmVxdWlyZWQgdW5sZXNzIHlvdSBwYXNzIGluIGEgZnVsbFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeS5cbiAgICAgKiBAb3B0aW9uIG9wdGlvbnMgZXhwaXJlcyBbTnVtYmVyXSBBIFVuaXggVVRDIHRpbWVzdGFtcCBpbmRpY2F0aW5nIHdoZW4gdGhlXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlIHNob3VsZCBleHBpcmUuIFJlcXVpcmVkIHVubGVzcyB5b3VcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzIGluIGEgZnVsbCBwb2xpY3kuXG4gICAgICogQG9wdGlvbiBvcHRpb25zIHBvbGljeSBbU3RyaW5nXSAgQSBDbG91ZEZyb250IEpTT04gcG9saWN5LiBSZXF1aXJlZCB1bmxlc3NcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5b3UgcGFzcyBpbiBhIHVybCBhbmQgYW4gZXhwaXJ5IHRpbWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2IgW0Z1bmN0aW9uXSBpZiBhIGNhbGxiYWNrIGlzIHByb3ZpZGVkLCB0aGlzIGZ1bmN0aW9uIHdpbGxcbiAgICAgKiAgIHBhc3MgdGhlIGhhc2ggYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIgKGFmdGVyIHRoZSBlcnJvciBwYXJhbWV0ZXIpIHRvXG4gICAgICogICB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIFtPYmplY3RdIGlmIGNhbGxlZCBzeW5jaHJvbm91c2x5ICh3aXRoIG5vIGNhbGxiYWNrKSwgcmV0dXJucyB0aGVcbiAgICAgKiAgIHNpZ25lZCBjb29raWUgcGFyYW1ldGVycy5cbiAgICAgKiBAcmV0dXJuIFtudWxsXSBub3RoaW5nIGlzIHJldHVybmVkIGlmIGEgY2FsbGJhY2sgaXMgcHJvdmlkZWQuXG4gICAgICovXG4gICAgZ2V0U2lnbmVkQ29va2llOiBmdW5jdGlvbiAob3B0aW9ucywgY2IpIHtcbiAgICAgICAgdmFyIHNpZ25hdHVyZUhhc2ggPSAncG9saWN5JyBpbiBvcHRpb25zXG4gICAgICAgICAgICA/IHNpZ25XaXRoQ3VzdG9tUG9saWN5KG9wdGlvbnMucG9saWN5LCB0aGlzLmtleVBhaXJJZCwgdGhpcy5wcml2YXRlS2V5KVxuICAgICAgICAgICAgOiBzaWduV2l0aENhbm5lZFBvbGljeShvcHRpb25zLnVybCwgb3B0aW9ucy5leHBpcmVzLCB0aGlzLmtleVBhaXJJZCwgdGhpcy5wcml2YXRlS2V5KTtcblxuICAgICAgICB2YXIgY29va2llSGFzaCA9IHt9O1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc2lnbmF0dXJlSGFzaCkge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzaWduYXR1cmVIYXNoLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29va2llSGFzaFsnQ2xvdWRGcm9udC0nICsga2V5XSA9IHNpZ25hdHVyZUhhc2hba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoYW5kbGVTdWNjZXNzKGNvb2tpZUhhc2gsIGNiKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgc2lnbmVkIEFtYXpvbiBDbG91ZEZyb250IFVSTC5cbiAgICAgKlxuICAgICAqIEtlZXAgaW4gbWluZCB0aGF0IFVSTHMgbWVhbnQgZm9yIHVzZSBpbiBtZWRpYS9mbGFzaCBwbGF5ZXJzIG1heSBoYXZlXG4gICAgICogZGlmZmVyZW50IHJlcXVpcmVtZW50cyBmb3IgVVJMIGZvcm1hdHMgKGUuZy4gc29tZSByZXF1aXJlIHRoYXQgdGhlXG4gICAgICogZXh0ZW5zaW9uIGJlIHJlbW92ZWQsIHNvbWUgcmVxdWlyZSB0aGUgZmlsZSBuYW1lIHRvIGJlIHByZWZpeGVkXG4gICAgICogLSBtcDQ6PHBhdGg+LCBzb21lIHJlcXVpcmUgeW91IHRvIGFkZCBcIi9jZngvc3RcIiBpbnRvIHlvdXIgVVJMKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFtPYmplY3RdICAgICAgICAgIFRoZSBvcHRpb25zIHRvIGNyZWF0ZSBhIHNpZ25lZCBVUkwuXG4gICAgICogQG9wdGlvbiBvcHRpb25zIHVybCBbU3RyaW5nXSAgICAgVGhlIFVSTCB0byB3aGljaCB0aGUgc2lnbmF0dXJlIHdpbGwgZ3JhbnRcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3MuIFJlcXVpcmVkLlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyBleHBpcmVzIFtOdW1iZXJdIEEgVW5peCBVVEMgdGltZXN0YW1wIGluZGljYXRpbmcgd2hlbiB0aGVcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUgc2hvdWxkIGV4cGlyZS4gUmVxdWlyZWQgdW5sZXNzIHlvdVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MgaW4gYSBmdWxsIHBvbGljeS5cbiAgICAgKiBAb3B0aW9uIG9wdGlvbnMgcG9saWN5IFtTdHJpbmddICBBIENsb3VkRnJvbnQgSlNPTiBwb2xpY3kuIFJlcXVpcmVkIHVubGVzc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSBwYXNzIGluIGEgdXJsIGFuZCBhbiBleHBpcnkgdGltZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYiBbRnVuY3Rpb25dIGlmIGEgY2FsbGJhY2sgaXMgcHJvdmlkZWQsIHRoaXMgZnVuY3Rpb24gd2lsbFxuICAgICAqICAgcGFzcyB0aGUgVVJMIGFzIHRoZSBzZWNvbmQgcGFyYW1ldGVyIChhZnRlciB0aGUgZXJyb3IgcGFyYW1ldGVyKSB0b1xuICAgICAqICAgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHJldHVybiBbU3RyaW5nXSBpZiBjYWxsZWQgc3luY2hyb25vdXNseSAod2l0aCBubyBjYWxsYmFjayksIHJldHVybnMgdGhlXG4gICAgICogICBzaWduZWQgVVJMLlxuICAgICAqIEByZXR1cm4gW251bGxdIG5vdGhpbmcgaXMgcmV0dXJuZWQgaWYgYSBjYWxsYmFjayBpcyBwcm92aWRlZC5cbiAgICAgKi9cbiAgICBnZXRTaWduZWRVcmw6IGZ1bmN0aW9uIChvcHRpb25zLCBjYikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIHJlc291cmNlID0gZ2V0UmVzb3VyY2Uob3B0aW9ucy51cmwpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihlcnIsIGNiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwYXJzZWRVcmwgPSB1cmwucGFyc2Uob3B0aW9ucy51cmwsIHRydWUpLFxuICAgICAgICAgICAgc2lnbmF0dXJlSGFzaCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCAncG9saWN5JylcbiAgICAgICAgICAgICAgICA/IHNpZ25XaXRoQ3VzdG9tUG9saWN5KG9wdGlvbnMucG9saWN5LCB0aGlzLmtleVBhaXJJZCwgdGhpcy5wcml2YXRlS2V5KVxuICAgICAgICAgICAgICAgIDogc2lnbldpdGhDYW5uZWRQb2xpY3kocmVzb3VyY2UsIG9wdGlvbnMuZXhwaXJlcywgdGhpcy5rZXlQYWlySWQsIHRoaXMucHJpdmF0ZUtleSk7XG5cbiAgICAgICAgcGFyc2VkVXJsLnNlYXJjaCA9IG51bGw7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzaWduYXR1cmVIYXNoKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNpZ25hdHVyZUhhc2gsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnlba2V5XSA9IHNpZ25hdHVyZUhhc2hba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgc2lnbmVkVXJsID0gZGV0ZXJtaW5lU2NoZW1lKG9wdGlvbnMudXJsKSA9PT0gJ3J0bXAnXG4gICAgICAgICAgICAgICAgICAgID8gZ2V0UnRtcFVybCh1cmwuZm9ybWF0KHBhcnNlZFVybCkpXG4gICAgICAgICAgICAgICAgICAgIDogdXJsLmZvcm1hdChwYXJzZWRVcmwpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihlcnIsIGNiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoYW5kbGVTdWNjZXNzKHNpZ25lZFVybCwgY2IpO1xuICAgIH1cbn0pO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5DbG91ZEZyb250LlNpZ25lcjtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcbnJlcXVpcmUoJy4vY3JlZGVudGlhbHMnKTtcbnJlcXVpcmUoJy4vY3JlZGVudGlhbHMvY3JlZGVudGlhbF9wcm92aWRlcl9jaGFpbicpO1xudmFyIFByb21pc2VzRGVwZW5kZW5jeTtcblxuLyoqXG4gKiBUaGUgbWFpbiBjb25maWd1cmF0aW9uIGNsYXNzIHVzZWQgYnkgYWxsIHNlcnZpY2Ugb2JqZWN0cyB0byBzZXRcbiAqIHRoZSByZWdpb24sIGNyZWRlbnRpYWxzLCBhbmQgb3RoZXIgb3B0aW9ucyBmb3IgcmVxdWVzdHMuXG4gKlxuICogQnkgZGVmYXVsdCwgY3JlZGVudGlhbHMgYW5kIHJlZ2lvbiBzZXR0aW5ncyBhcmUgbGVmdCB1bmNvbmZpZ3VyZWQuXG4gKiBUaGlzIHNob3VsZCBiZSBjb25maWd1cmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBiZWZvcmUgdXNpbmcgYW55XG4gKiBBV1Mgc2VydmljZSBBUElzLlxuICpcbiAqIEluIG9yZGVyIHRvIHNldCBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zLCBwcm9wZXJ0aWVzIHNob3VsZFxuICogYmUgYXNzaWduZWQgdG8gdGhlIGdsb2JhbCB7QVdTLmNvbmZpZ30gb2JqZWN0LlxuICpcbiAqIEBzZWUgQVdTLmNvbmZpZ1xuICpcbiAqIEAhZ3JvdXAgR2VuZXJhbCBDb25maWd1cmF0aW9uIE9wdGlvbnNcbiAqXG4gKiBAIWF0dHJpYnV0ZSBjcmVkZW50aWFsc1xuICogICBAcmV0dXJuIFtBV1MuQ3JlZGVudGlhbHNdIHRoZSBBV1MgY3JlZGVudGlhbHMgdG8gc2lnbiByZXF1ZXN0cyB3aXRoLlxuICpcbiAqIEAhYXR0cmlidXRlIHJlZ2lvblxuICogICBAZXhhbXBsZSBTZXQgdGhlIGdsb2JhbCByZWdpb24gc2V0dGluZyB0byB1cy13ZXN0LTJcbiAqICAgICBBV1MuY29uZmlnLnVwZGF0ZSh7cmVnaW9uOiAndXMtd2VzdC0yJ30pO1xuICogICBAcmV0dXJuIFtBV1MuQ3JlZGVudGlhbHNdIFRoZSByZWdpb24gdG8gc2VuZCBzZXJ2aWNlIHJlcXVlc3RzIHRvLlxuICogICBAc2VlIGh0dHA6Ly9kb2NzLmFtYXpvbndlYnNlcnZpY2VzLmNvbS9nZW5lcmFsL2xhdGVzdC9nci9yYW5kZS5odG1sXG4gKiAgICAgQSBsaXN0IG9mIGF2YWlsYWJsZSBlbmRwb2ludHMgZm9yIGVhY2ggQVdTIHNlcnZpY2VcbiAqXG4gKiBAIWF0dHJpYnV0ZSBtYXhSZXRyaWVzXG4gKiAgIEByZXR1cm4gW0ludGVnZXJdIHRoZSBtYXhpbXVtIGFtb3VudCBvZiByZXRyaWVzIHRvIHBlcmZvcm0gZm9yIGFcbiAqICAgICBzZXJ2aWNlIHJlcXVlc3QuIEJ5IGRlZmF1bHQgdGhpcyB2YWx1ZSBpcyBjYWxjdWxhdGVkIGJ5IHRoZSBzcGVjaWZpY1xuICogICAgIHNlcnZpY2Ugb2JqZWN0IHRoYXQgdGhlIHJlcXVlc3QgaXMgYmVpbmcgbWFkZSB0by5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBtYXhSZWRpcmVjdHNcbiAqICAgQHJldHVybiBbSW50ZWdlcl0gdGhlIG1heGltdW0gYW1vdW50IG9mIHJlZGlyZWN0cyB0byBmb2xsb3cgZm9yIGFcbiAqICAgICBzZXJ2aWNlIHJlcXVlc3QuIERlZmF1bHRzIHRvIDEwLlxuICpcbiAqIEAhYXR0cmlidXRlIHBhcmFtVmFsaWRhdGlvblxuICogICBAcmV0dXJuIFtCb29sZWFufG1hcF0gd2hldGhlciBpbnB1dCBwYXJhbWV0ZXJzIHNob3VsZCBiZSB2YWxpZGF0ZWQgYWdhaW5zdFxuICogICAgIHRoZSBvcGVyYXRpb24gZGVzY3JpcHRpb24gYmVmb3JlIHNlbmRpbmcgdGhlIHJlcXVlc3QuIERlZmF1bHRzIHRvIHRydWUuXG4gKiAgICAgUGFzcyBhIG1hcCB0byBlbmFibGUgYW55IG9mIHRoZSBmb2xsb3dpbmcgc3BlY2lmaWMgdmFsaWRhdGlvbiBmZWF0dXJlczpcbiAqXG4gKiAgICAgKiAqKm1pbioqIFtCb29sZWFuXSAmbWRhc2g7IFZhbGlkYXRlcyB0aGF0IGEgdmFsdWUgbWVldHMgdGhlIG1pblxuICogICAgICAgY29uc3RyYWludC4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgd2hlbiBwYXJhbVZhbGlkYXRpb24gaXMgc2V0XG4gKiAgICAgICB0byBgdHJ1ZWAuXG4gKiAgICAgKiAqKm1heCoqIFtCb29sZWFuXSAmbWRhc2g7IFZhbGlkYXRlcyB0aGF0IGEgdmFsdWUgbWVldHMgdGhlIG1heFxuICogICAgICAgY29uc3RyYWludC5cbiAqICAgICAqICoqcGF0dGVybioqIFtCb29sZWFuXSAmbWRhc2g7IFZhbGlkYXRlcyB0aGF0IGEgc3RyaW5nIHZhbHVlIG1hdGNoZXMgYVxuICogICAgICAgcmVndWxhciBleHByZXNzaW9uLlxuICogICAgICogKiplbnVtKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSBzdHJpbmcgdmFsdWUgbWF0Y2hlcyBvbmVcbiAqICAgICAgIG9mIHRoZSBhbGxvd2FibGUgZW51bSB2YWx1ZXMuXG4gKlxuICogQCFhdHRyaWJ1dGUgY29tcHV0ZUNoZWNrc3Vtc1xuICogICBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHRvIGNvbXB1dGUgY2hlY2tzdW1zIGZvciBwYXlsb2FkIGJvZGllcyB3aGVuXG4gKiAgICAgdGhlIHNlcnZpY2UgYWNjZXB0cyBpdCAoY3VycmVudGx5IHN1cHBvcnRlZCBpbiBTMyBvbmx5KS5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBjb252ZXJ0UmVzcG9uc2VUeXBlc1xuICogICBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHR5cGVzIGFyZSBjb252ZXJ0ZWQgd2hlbiBwYXJzaW5nIHJlc3BvbnNlIGRhdGEuXG4gKiAgICAgQ3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGZvciBKU09OIGJhc2VkIHNlcnZpY2VzLiBUdXJuaW5nIHRoaXMgb2ZmIG1heVxuICogICAgIGltcHJvdmUgcGVyZm9ybWFuY2Ugb24gbGFyZ2UgcmVzcG9uc2UgcGF5bG9hZHMuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBjb3JyZWN0Q2xvY2tTa2V3XG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdG8gYXBwbHkgYSBjbG9jayBza2V3IGNvcnJlY3Rpb24gYW5kIHJldHJ5XG4gKiAgICAgcmVxdWVzdHMgdGhhdCBmYWlsIGJlY2F1c2Ugb2YgYW4gc2tld2VkIGNsaWVudCBjbG9jay4gRGVmYXVsdHMgdG9cbiAqICAgICBgZmFsc2VgLlxuICpcbiAqIEAhYXR0cmlidXRlIHNzbEVuYWJsZWRcbiAqICAgQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciBTU0wgaXMgZW5hYmxlZCBmb3IgcmVxdWVzdHNcbiAqXG4gKiBAIWF0dHJpYnV0ZSBzM0ZvcmNlUGF0aFN0eWxlXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdG8gZm9yY2UgcGF0aCBzdHlsZSBVUkxzIGZvciBTMyBvYmplY3RzXG4gKlxuICogQCFhdHRyaWJ1dGUgczNCdWNrZXRFbmRwb2ludFxuICogICBAbm90ZSBTZXR0aW5nIHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24gcmVxdWlyZXMgYW4gYGVuZHBvaW50YCB0byBiZVxuICogICAgIHByb3ZpZGVkIGV4cGxpY2l0bHkgdG8gdGhlIHNlcnZpY2UgY29uc3RydWN0b3IuXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGVuZHBvaW50IGFkZHJlc3NlcyBhbiBpbmRpdmlkdWFsXG4gKiAgICAgYnVja2V0IChmYWxzZSBpZiBpdCBhZGRyZXNzZXMgdGhlIHJvb3QgQVBJIGVuZHBvaW50KS5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBzM0Rpc2FibGVCb2R5U2lnbmluZ1xuICogICBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHRvIGRpc2FibGUgUzMgYm9keSBzaWduaW5nIHdoZW4gdXNpbmcgc2lnbmF0dXJlIHZlcnNpb24gYHY0YC5cbiAqICAgICBCb2R5IHNpZ25pbmcgY2FuIG9ubHkgYmUgZGlzYWJsZWQgd2hlbiB1c2luZyBodHRwcy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICpcbiAqIEAhYXR0cmlidXRlIHVzZUFjY2VsZXJhdGVFbmRwb2ludFxuICogICBAbm90ZSBUaGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIG9ubHkgY29tcGF0aWJsZSB3aXRoIFMzIHdoaWxlIGFjY2Vzc2luZ1xuICogICAgIGRucy1jb21wYXRpYmxlIGJ1Y2tldHMuXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIFdoZXRoZXIgdG8gdXNlIHRoZSBBY2NlbGVyYXRlIGVuZHBvaW50IHdpdGggdGhlIFMzIHNlcnZpY2UuXG4gKiAgICAgRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAqXG4gKiBAIWF0dHJpYnV0ZSByZXRyeURlbGF5T3B0aW9uc1xuICogICBAZXhhbXBsZSBTZXQgdGhlIGJhc2UgcmV0cnkgZGVsYXkgZm9yIGFsbCBzZXJ2aWNlcyB0byAzMDAgbXNcbiAqICAgICBBV1MuY29uZmlnLnVwZGF0ZSh7cmV0cnlEZWxheU9wdGlvbnM6IHtiYXNlOiAzMDB9fSk7XG4gKiAgICAgLy8gRGVsYXlzIHdpdGggbWF4UmV0cmllcyA9IDM6IDMwMCwgNjAwLCAxMjAwXG4gKiAgIEBleGFtcGxlIFNldCBhIGN1c3RvbSBiYWNrb2ZmIGZ1bmN0aW9uIHRvIHByb3ZpZGUgZGVsYXkgdmFsdWVzIG9uIHJldHJpZXNcbiAqICAgICBBV1MuY29uZmlnLnVwZGF0ZSh7cmV0cnlEZWxheU9wdGlvbnM6IHtjdXN0b21CYWNrb2ZmOiBmdW5jdGlvbihyZXRyeUNvdW50KSB7XG4gKiAgICAgICAvLyByZXR1cm5zIGRlbGF5IGluIG1zXG4gKiAgICAgfX19KTtcbiAqICAgQHJldHVybiBbbWFwXSBBIHNldCBvZiBvcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgcmV0cnkgZGVsYXkgb24gcmV0cnlhYmxlIGVycm9ycy5cbiAqICAgICBDdXJyZW50bHkgc3VwcG9ydGVkIG9wdGlvbnMgYXJlOlxuICpcbiAqICAgICAqICoqYmFzZSoqIFtJbnRlZ2VyXSAmbWRhc2g7IFRoZSBiYXNlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdXNlIGluIHRoZVxuICogICAgICAgZXhwb25lbnRpYWwgYmFja29mZiBmb3Igb3BlcmF0aW9uIHJldHJpZXMuIERlZmF1bHRzIHRvIDEwMCBtcyBmb3IgYWxsIHNlcnZpY2VzIGV4Y2VwdFxuICogICAgICAgRHluYW1vREIsIHdoZXJlIGl0IGRlZmF1bHRzIHRvIDUwbXMuXG4gKiAgICAgKiAqKmN1c3RvbUJhY2tvZmYgKiogW2Z1bmN0aW9uXSAmbWRhc2g7IEEgY3VzdG9tIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIHJldHJ5IGNvdW50XG4gKiAgICAgICBhbmQgcmV0dXJucyB0aGUgYW1vdW50IG9mIHRpbWUgdG8gZGVsYXkgaW4gbWlsbGlzZWNvbmRzLiBUaGUgYGJhc2VgIG9wdGlvbiB3aWxsIGJlXG4gKiAgICAgICBpZ25vcmVkIGlmIHRoaXMgb3B0aW9uIGlzIHN1cHBsaWVkLlxuICpcbiAqIEAhYXR0cmlidXRlIGh0dHBPcHRpb25zXG4gKiAgIEByZXR1cm4gW21hcF0gQSBzZXQgb2Ygb3B0aW9ucyB0byBwYXNzIHRvIHRoZSBsb3ctbGV2ZWwgSFRUUCByZXF1ZXN0LlxuICogICAgIEN1cnJlbnRseSBzdXBwb3J0ZWQgb3B0aW9ucyBhcmU6XG4gKlxuICogICAgICogKipwcm94eSoqIFtTdHJpbmddICZtZGFzaDsgdGhlIFVSTCB0byBwcm94eSByZXF1ZXN0cyB0aHJvdWdoXG4gKiAgICAgKiAqKmFnZW50KiogW2h0dHAuQWdlbnQsIGh0dHBzLkFnZW50XSAmbWRhc2g7IHRoZSBBZ2VudCBvYmplY3QgdG8gcGVyZm9ybVxuICogICAgICAgSFRUUCByZXF1ZXN0cyB3aXRoLiBVc2VkIGZvciBjb25uZWN0aW9uIHBvb2xpbmcuIERlZmF1bHRzIHRvIHRoZSBnbG9iYWxcbiAqICAgICAgIGFnZW50IChgaHR0cC5nbG9iYWxBZ2VudGApIGZvciBub24tU1NMIGNvbm5lY3Rpb25zLiBOb3RlIHRoYXQgZm9yXG4gKiAgICAgICBTU0wgY29ubmVjdGlvbnMsIGEgc3BlY2lhbCBBZ2VudCBvYmplY3QgaXMgdXNlZCBpbiBvcmRlciB0byBlbmFibGVcbiAqICAgICAgIHBlZXIgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uLiBUaGlzIGZlYXR1cmUgaXMgb25seSBzdXBwb3J0ZWQgaW4gdGhlXG4gKiAgICAgICBOb2RlLmpzIGVudmlyb25tZW50LlxuICogICAgICogKipjb25uZWN0VGltZW91dCoqIFtJbnRlZ2VyXSAmbWRhc2g7IFNldHMgdGhlIHNvY2tldCB0byB0aW1lb3V0IGFmdGVyXG4gKiAgICAgICBmYWlsaW5nIHRvIGVzdGFibGlzaCBhIGNvbm5lY3Rpb24gd2l0aCB0aGUgc2VydmVyIGFmdGVyXG4gKiAgICAgICBgY29ubmVjdFRpbWVvdXRgIG1pbGxpc2Vjb25kcy4gVGhpcyB0aW1lb3V0IGhhcyBubyBlZmZlY3Qgb25jZSBhIHNvY2tldFxuICogICAgICAgY29ubmVjdGlvbiBoYXMgYmVlbiBlc3RhYmxpc2hlZC5cbiAqICAgICAqICoqdGltZW91dCoqIFtJbnRlZ2VyXSAmbWRhc2g7IFNldHMgdGhlIHNvY2tldCB0byB0aW1lb3V0IGFmdGVyIHRpbWVvdXRcbiAqICAgICAgIG1pbGxpc2Vjb25kcyBvZiBpbmFjdGl2aXR5IG9uIHRoZSBzb2NrZXQuIERlZmF1bHRzIHRvIHR3byBtaW51dGVzXG4gKiAgICAgICAoMTIwMDAwKVxuICogICAgICogKip4aHJBc3luYyoqIFtCb29sZWFuXSAmbWRhc2g7IFdoZXRoZXIgdGhlIFNESyB3aWxsIHNlbmQgYXN5bmNocm9ub3VzXG4gKiAgICAgICBIVFRQIHJlcXVlc3RzLiBVc2VkIGluIHRoZSBicm93c2VyIGVudmlyb25tZW50IG9ubHkuIFNldCB0byBmYWxzZSB0b1xuICogICAgICAgc2VuZCByZXF1ZXN0cyBzeW5jaHJvbm91c2x5LiBEZWZhdWx0cyB0byB0cnVlIChhc3luYyBvbikuXG4gKiAgICAgKiAqKnhocldpdGhDcmVkZW50aWFscyoqIFtCb29sZWFuXSAmbWRhc2g7IFNldHMgdGhlIFwid2l0aENyZWRlbnRpYWxzXCJcbiAqICAgICAgIHByb3BlcnR5IG9mIGFuIFhNTEh0dHBSZXF1ZXN0IG9iamVjdC4gVXNlZCBpbiB0aGUgYnJvd3NlciBlbnZpcm9ubWVudFxuICogICAgICAgb25seS4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gKiBAIWF0dHJpYnV0ZSBsb2dnZXJcbiAqICAgQHJldHVybiBbI3dyaXRlLCNsb2ddIGFuIG9iamVjdCB0aGF0IHJlc3BvbmRzIHRvIC53cml0ZSgpIChsaWtlIGEgc3RyZWFtKVxuICogICAgIG9yIC5sb2coKSAobGlrZSB0aGUgY29uc29sZSBvYmplY3QpIGluIG9yZGVyIHRvIGxvZyBpbmZvcm1hdGlvbiBhYm91dFxuICogICAgIHJlcXVlc3RzXG4gKlxuICogQCFhdHRyaWJ1dGUgc3lzdGVtQ2xvY2tPZmZzZXRcbiAqICAgQHJldHVybiBbTnVtYmVyXSBhbiBvZmZzZXQgdmFsdWUgaW4gbWlsbGlzZWNvbmRzIHRvIGFwcGx5IHRvIGFsbCBzaWduaW5nXG4gKiAgICAgdGltZXMuIFVzZSB0aGlzIHRvIGNvbXBlbnNhdGUgZm9yIGNsb2NrIHNrZXcgd2hlbiB5b3VyIHN5c3RlbSBtYXkgYmVcbiAqICAgICBvdXQgb2Ygc3luYyB3aXRoIHRoZSBzZXJ2aWNlIHRpbWUuIE5vdGUgdGhhdCB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uXG4gKiAgICAgY2FuIG9ubHkgYmUgYXBwbGllZCB0byB0aGUgZ2xvYmFsIGBBV1MuY29uZmlnYCBvYmplY3QgYW5kIGNhbm5vdCBiZVxuICogICAgIG92ZXJyaWRkZW4gaW4gc2VydmljZS1zcGVjaWZpYyBjb25maWd1cmF0aW9uLiBEZWZhdWx0cyB0byAwIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBzaWduYXR1cmVWZXJzaW9uXG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIHNpZ25hdHVyZSB2ZXJzaW9uIHRvIHNpZ24gcmVxdWVzdHMgd2l0aCAob3ZlcnJpZGluZ1xuICogICAgIHRoZSBBUEkgY29uZmlndXJhdGlvbikuIFBvc3NpYmxlIHZhbHVlcyBhcmU6ICd2MicsICd2MycsICd2NCcuXG4gKlxuICogQCFhdHRyaWJ1dGUgc2lnbmF0dXJlQ2FjaGVcbiAqICAgQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0aGUgc2lnbmF0dXJlIHRvIHNpZ24gcmVxdWVzdHMgd2l0aCAob3ZlcnJpZGluZ1xuICogICAgIHRoZSBBUEkgY29uZmlndXJhdGlvbikgaXMgY2FjaGVkLiBPbmx5IGFwcGxpZXMgdG8gdGhlIHNpZ25hdHVyZSB2ZXJzaW9uICd2NCcuXG4gKiAgICAgRGVmYXVsdHMgdG8gYHRydWVgLlxuICovXG5BV1MuQ29uZmlnID0gQVdTLnV0aWwuaW5oZXJpdCh7XG4gIC8qKlxuICAgKiBAIWVuZGdyb3VwXG4gICAqL1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBUaGlzIGlzIHRoZSBvYmplY3QgdGhhdCBwYXNzZXNcbiAgICogb3B0aW9uIGRhdGEgYWxvbmcgdG8gc2VydmljZSByZXF1ZXN0cywgaW5jbHVkaW5nIGNyZWRlbnRpYWxzLCBzZWN1cml0eSxcbiAgICogcmVnaW9uIGluZm9ybWF0aW9uLCBhbmQgc29tZSBzZXJ2aWNlIHNwZWNpZmljIHNldHRpbmdzLlxuICAgKlxuICAgKiBAZXhhbXBsZSBDcmVhdGluZyBhIG5ldyBjb25maWd1cmF0aW9uIG9iamVjdCB3aXRoIGNyZWRlbnRpYWxzIGFuZCByZWdpb25cbiAgICogICB2YXIgY29uZmlnID0gbmV3IEFXUy5Db25maWcoe1xuICAgKiAgICAgYWNjZXNzS2V5SWQ6ICdBS0lEJywgc2VjcmV0QWNjZXNzS2V5OiAnU0VDUkVUJywgcmVnaW9uOiAndXMtd2VzdC0yJ1xuICAgKiAgIH0pO1xuICAgKiBAb3B0aW9uIG9wdGlvbnMgYWNjZXNzS2V5SWQgW1N0cmluZ10geW91ciBBV1MgYWNjZXNzIGtleSBJRC5cbiAgICogQG9wdGlvbiBvcHRpb25zIHNlY3JldEFjY2Vzc0tleSBbU3RyaW5nXSB5b3VyIEFXUyBzZWNyZXQgYWNjZXNzIGtleS5cbiAgICogQG9wdGlvbiBvcHRpb25zIHNlc3Npb25Ub2tlbiBbQVdTLkNyZWRlbnRpYWxzXSB0aGUgb3B0aW9uYWwgQVdTXG4gICAqICAgc2Vzc2lvbiB0b2tlbiB0byBzaWduIHJlcXVlc3RzIHdpdGguXG4gICAqIEBvcHRpb24gb3B0aW9ucyBjcmVkZW50aWFscyBbQVdTLkNyZWRlbnRpYWxzXSB0aGUgQVdTIGNyZWRlbnRpYWxzXG4gICAqICAgdG8gc2lnbiByZXF1ZXN0cyB3aXRoLiBZb3UgY2FuIGVpdGhlciBzcGVjaWZ5IHRoaXMgb2JqZWN0LCBvclxuICAgKiAgIHNwZWNpZnkgdGhlIGFjY2Vzc0tleUlkIGFuZCBzZWNyZXRBY2Nlc3NLZXkgb3B0aW9ucyBkaXJlY3RseS5cbiAgICogQG9wdGlvbiBvcHRpb25zIGNyZWRlbnRpYWxQcm92aWRlciBbQVdTLkNyZWRlbnRpYWxQcm92aWRlckNoYWluXSB0aGVcbiAgICogICBwcm92aWRlciBjaGFpbiB1c2VkIHRvIHJlc29sdmUgY3JlZGVudGlhbHMgaWYgbm8gc3RhdGljIGBjcmVkZW50aWFsc2BcbiAgICogICBwcm9wZXJ0eSBpcyBzZXQuXG4gICAqIEBvcHRpb24gb3B0aW9ucyByZWdpb24gW1N0cmluZ10gdGhlIHJlZ2lvbiB0byBzZW5kIHNlcnZpY2UgcmVxdWVzdHMgdG8uXG4gICAqICAgU2VlIHtyZWdpb259IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgbWF4UmV0cmllcyBbSW50ZWdlcl0gdGhlIG1heGltdW0gYW1vdW50IG9mIHJldHJpZXMgdG9cbiAgICogICBhdHRlbXB0IHdpdGggYSByZXF1ZXN0LiBTZWUge21heFJldHJpZXN9IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgbWF4UmVkaXJlY3RzIFtJbnRlZ2VyXSB0aGUgbWF4aW11bSBhbW91bnQgb2YgcmVkaXJlY3RzIHRvXG4gICAqICAgZm9sbG93IHdpdGggYSByZXF1ZXN0LiBTZWUge21heFJlZGlyZWN0c30gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqIEBvcHRpb24gb3B0aW9ucyBzc2xFbmFibGVkIFtCb29sZWFuXSB3aGV0aGVyIHRvIGVuYWJsZSBTU0wgZm9yXG4gICAqICAgcmVxdWVzdHMuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBwYXJhbVZhbGlkYXRpb24gW0Jvb2xlYW58bWFwXSB3aGV0aGVyIGlucHV0IHBhcmFtZXRlcnNcbiAgICogICBzaG91bGQgYmUgdmFsaWRhdGVkIGFnYWluc3QgdGhlIG9wZXJhdGlvbiBkZXNjcmlwdGlvbiBiZWZvcmUgc2VuZGluZ1xuICAgKiAgIHRoZSByZXF1ZXN0LiBEZWZhdWx0cyB0byB0cnVlLiBQYXNzIGEgbWFwIHRvIGVuYWJsZSBhbnkgb2YgdGhlXG4gICAqICAgZm9sbG93aW5nIHNwZWNpZmljIHZhbGlkYXRpb24gZmVhdHVyZXM6XG4gICAqXG4gICAqICAgKiAqKm1pbioqIFtCb29sZWFuXSAmbWRhc2g7IFZhbGlkYXRlcyB0aGF0IGEgdmFsdWUgbWVldHMgdGhlIG1pblxuICAgKiAgICAgY29uc3RyYWludC4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgd2hlbiBwYXJhbVZhbGlkYXRpb24gaXMgc2V0XG4gICAqICAgICB0byBgdHJ1ZWAuXG4gICAqICAgKiAqKm1heCoqIFtCb29sZWFuXSAmbWRhc2g7IFZhbGlkYXRlcyB0aGF0IGEgdmFsdWUgbWVldHMgdGhlIG1heFxuICAgKiAgICAgY29uc3RyYWludC5cbiAgICogICAqICoqcGF0dGVybioqIFtCb29sZWFuXSAmbWRhc2g7IFZhbGlkYXRlcyB0aGF0IGEgc3RyaW5nIHZhbHVlIG1hdGNoZXMgYVxuICAgKiAgICAgcmVndWxhciBleHByZXNzaW9uLlxuICAgKiAgICogKiplbnVtKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSBzdHJpbmcgdmFsdWUgbWF0Y2hlcyBvbmVcbiAgICogICAgIG9mIHRoZSBhbGxvd2FibGUgZW51bSB2YWx1ZXMuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBjb21wdXRlQ2hlY2tzdW1zIFtCb29sZWFuXSB3aGV0aGVyIHRvIGNvbXB1dGUgY2hlY2tzdW1zXG4gICAqICAgZm9yIHBheWxvYWQgYm9kaWVzIHdoZW4gdGhlIHNlcnZpY2UgYWNjZXB0cyBpdCAoY3VycmVudGx5IHN1cHBvcnRlZFxuICAgKiAgIGluIFMzIG9ubHkpXG4gICAqIEBvcHRpb24gb3B0aW9ucyBjb252ZXJ0UmVzcG9uc2VUeXBlcyBbQm9vbGVhbl0gd2hldGhlciB0eXBlcyBhcmUgY29udmVydGVkXG4gICAqICAgICB3aGVuIHBhcnNpbmcgcmVzcG9uc2UgZGF0YS4gQ3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGZvciBKU09OIGJhc2VkXG4gICAqICAgICBzZXJ2aWNlcy4gVHVybmluZyB0aGlzIG9mZiBtYXkgaW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBsYXJnZSByZXNwb25zZVxuICAgKiAgICAgcGF5bG9hZHMuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICogQG9wdGlvbiBvcHRpb25zIGNvcnJlY3RDbG9ja1NrZXcgW0Jvb2xlYW5dIHdoZXRoZXIgdG8gYXBwbHkgYSBjbG9jayBza2V3XG4gICAqICAgICBjb3JyZWN0aW9uIGFuZCByZXRyeSByZXF1ZXN0cyB0aGF0IGZhaWwgYmVjYXVzZSBvZiBhbiBza2V3ZWQgY2xpZW50XG4gICAqICAgICBjbG9jay4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICogQG9wdGlvbiBvcHRpb25zIHMzRm9yY2VQYXRoU3R5bGUgW0Jvb2xlYW5dIHdoZXRoZXIgdG8gZm9yY2UgcGF0aFxuICAgKiAgIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHMuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBzM0J1Y2tldEVuZHBvaW50IFtCb29sZWFuXSB3aGV0aGVyIHRoZSBwcm92aWRlZCBlbmRwb2ludFxuICAgKiAgIGFkZHJlc3NlcyBhbiBpbmRpdmlkdWFsIGJ1Y2tldCAoZmFsc2UgaWYgaXQgYWRkcmVzc2VzIHRoZSByb290IEFQSVxuICAgKiAgIGVuZHBvaW50KS4gTm90ZSB0aGF0IHNldHRpbmcgdGhpcyBjb25maWd1cmF0aW9uIG9wdGlvbiByZXF1aXJlcyBhblxuICAgKiAgIGBlbmRwb2ludGAgdG8gYmUgcHJvdmlkZWQgZXhwbGljaXRseSB0byB0aGUgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiAgICogQG9wdGlvbiBvcHRpb25zIHMzRGlzYWJsZUJvZHlTaWduaW5nIFtCb29sZWFuXSB3aGV0aGVyIFMzIGJvZHkgc2lnbmluZ1xuICAgKiAgIHNob3VsZCBiZSBkaXNhYmxlZCB3aGVuIHVzaW5nIHNpZ25hdHVyZSB2ZXJzaW9uIGB2NGAuIEJvZHkgc2lnbmluZ1xuICAgKiAgIGNhbiBvbmx5IGJlIGRpc2FibGVkIHdoZW4gdXNpbmcgaHR0cHMuIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICpcbiAgICogQG9wdGlvbiBvcHRpb25zIHJldHJ5RGVsYXlPcHRpb25zIFttYXBdIEEgc2V0IG9mIG9wdGlvbnMgdG8gY29uZmlndXJlXG4gICAqICAgdGhlIHJldHJ5IGRlbGF5IG9uIHJldHJ5YWJsZSBlcnJvcnMuIEN1cnJlbnRseSBzdXBwb3J0ZWQgb3B0aW9ucyBhcmU6XG4gICAqXG4gICAqICAgKiAqKmJhc2UqKiBbSW50ZWdlcl0gJm1kYXNoOyBUaGUgYmFzZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHVzZSBpbiB0aGVcbiAgICogICAgIGV4cG9uZW50aWFsIGJhY2tvZmYgZm9yIG9wZXJhdGlvbiByZXRyaWVzLiBEZWZhdWx0cyB0byAxMDAgbXMgZm9yIGFsbFxuICAgKiAgICAgc2VydmljZXMgZXhjZXB0IER5bmFtb0RCLCB3aGVyZSBpdCBkZWZhdWx0cyB0byA1MG1zLlxuICAgKiAgICogKipjdXN0b21CYWNrb2ZmICoqIFtmdW5jdGlvbl0gJm1kYXNoOyBBIGN1c3RvbSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgYSByZXRyeSBjb3VudFxuICAgKiAgICAgYW5kIHJldHVybnMgdGhlIGFtb3VudCBvZiB0aW1lIHRvIGRlbGF5IGluIG1pbGxpc2Vjb25kcy4gVGhlIGBiYXNlYCBvcHRpb24gd2lsbCBiZVxuICAgKiAgICAgaWdub3JlZCBpZiB0aGlzIG9wdGlvbiBpcyBzdXBwbGllZC5cbiAgICogQG9wdGlvbiBvcHRpb25zIGh0dHBPcHRpb25zIFttYXBdIEEgc2V0IG9mIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgbG93LWxldmVsXG4gICAqICAgSFRUUCByZXF1ZXN0LiBDdXJyZW50bHkgc3VwcG9ydGVkIG9wdGlvbnMgYXJlOlxuICAgKlxuICAgKiAgICogKipwcm94eSoqIFtTdHJpbmddICZtZGFzaDsgdGhlIFVSTCB0byBwcm94eSByZXF1ZXN0cyB0aHJvdWdoXG4gICAqICAgKiAqKmFnZW50KiogW2h0dHAuQWdlbnQsIGh0dHBzLkFnZW50XSAmbWRhc2g7IHRoZSBBZ2VudCBvYmplY3QgdG8gcGVyZm9ybVxuICAgKiAgICAgSFRUUCByZXF1ZXN0cyB3aXRoLiBVc2VkIGZvciBjb25uZWN0aW9uIHBvb2xpbmcuIERlZmF1bHRzIHRvIHRoZSBnbG9iYWxcbiAgICogICAgIGFnZW50IChgaHR0cC5nbG9iYWxBZ2VudGApIGZvciBub24tU1NMIGNvbm5lY3Rpb25zLiBOb3RlIHRoYXQgZm9yXG4gICAqICAgICBTU0wgY29ubmVjdGlvbnMsIGEgc3BlY2lhbCBBZ2VudCBvYmplY3QgaXMgdXNlZCBpbiBvcmRlciB0byBlbmFibGVcbiAgICogICAgIHBlZXIgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uLiBUaGlzIGZlYXR1cmUgaXMgb25seSBhdmFpbGFibGUgaW4gdGhlXG4gICAqICAgICBOb2RlLmpzIGVudmlyb25tZW50LlxuICAgKiAgICogKipjb25uZWN0VGltZW91dCoqIFtJbnRlZ2VyXSAmbWRhc2g7IFNldHMgdGhlIHNvY2tldCB0byB0aW1lb3V0IGFmdGVyXG4gICAqICAgICBmYWlsaW5nIHRvIGVzdGFibGlzaCBhIGNvbm5lY3Rpb24gd2l0aCB0aGUgc2VydmVyIGFmdGVyXG4gICAqICAgICBgY29ubmVjdFRpbWVvdXRgIG1pbGxpc2Vjb25kcy4gVGhpcyB0aW1lb3V0IGhhcyBubyBlZmZlY3Qgb25jZSBhIHNvY2tldFxuICAgKiAgICAgY29ubmVjdGlvbiBoYXMgYmVlbiBlc3RhYmxpc2hlZC5cbiAgICogICAqICoqdGltZW91dCoqIFtJbnRlZ2VyXSAmbWRhc2g7IFNldHMgdGhlIHNvY2tldCB0byB0aW1lb3V0IGFmdGVyIHRpbWVvdXRcbiAgICogICAgIG1pbGxpc2Vjb25kcyBvZiBpbmFjdGl2aXR5IG9uIHRoZSBzb2NrZXQuIERlZmF1bHRzIHRvIHR3byBtaW51dGVzXG4gICAqICAgICAoMTIwMDAwKS5cbiAgICogICAqICoqeGhyQXN5bmMqKiBbQm9vbGVhbl0gJm1kYXNoOyBXaGV0aGVyIHRoZSBTREsgd2lsbCBzZW5kIGFzeW5jaHJvbm91c1xuICAgKiAgICAgSFRUUCByZXF1ZXN0cy4gVXNlZCBpbiB0aGUgYnJvd3NlciBlbnZpcm9ubWVudCBvbmx5LiBTZXQgdG8gZmFsc2UgdG9cbiAgICogICAgIHNlbmQgcmVxdWVzdHMgc3luY2hyb25vdXNseS4gRGVmYXVsdHMgdG8gdHJ1ZSAoYXN5bmMgb24pLlxuICAgKiAgICogKip4aHJXaXRoQ3JlZGVudGlhbHMqKiBbQm9vbGVhbl0gJm1kYXNoOyBTZXRzIHRoZSBcIndpdGhDcmVkZW50aWFsc1wiXG4gICAqICAgICBwcm9wZXJ0eSBvZiBhbiBYTUxIdHRwUmVxdWVzdCBvYmplY3QuIFVzZWQgaW4gdGhlIGJyb3dzZXIgZW52aXJvbm1lbnRcbiAgICogICAgIG9ubHkuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgYXBpVmVyc2lvbiBbU3RyaW5nLCBEYXRlXSBhIFN0cmluZyBpbiBZWVlZLU1NLUREIGZvcm1hdFxuICAgKiAgIChvciBhIGRhdGUpIHRoYXQgcmVwcmVzZW50cyB0aGUgbGF0ZXN0IHBvc3NpYmxlIEFQSSB2ZXJzaW9uIHRoYXQgY2FuIGJlXG4gICAqICAgdXNlZCBpbiBhbGwgc2VydmljZXMgKHVubGVzcyBvdmVycmlkZGVuIGJ5IGBhcGlWZXJzaW9uc2ApLiBTcGVjaWZ5XG4gICAqICAgJ2xhdGVzdCcgdG8gdXNlIHRoZSBsYXRlc3QgcG9zc2libGUgdmVyc2lvbi5cbiAgICogQG9wdGlvbiBvcHRpb25zIGFwaVZlcnNpb25zIFttYXA8U3RyaW5nLCBTdHJpbmd8RGF0ZT5dIGEgbWFwIG9mIHNlcnZpY2VcbiAgICogICBpZGVudGlmaWVycyAodGhlIGxvd2VyY2FzZSBzZXJ2aWNlIGNsYXNzIG5hbWUpIHdpdGggdGhlIEFQSSB2ZXJzaW9uIHRvXG4gICAqICAgdXNlIHdoZW4gaW5zdGFudGlhdGluZyBhIHNlcnZpY2UuIFNwZWNpZnkgJ2xhdGVzdCcgZm9yIGVhY2ggaW5kaXZpZHVhbFxuICAgKiAgIHRoYXQgY2FuIHVzZSB0aGUgbGF0ZXN0IGF2YWlsYWJsZSB2ZXJzaW9uLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgbG9nZ2VyIFsjd3JpdGUsI2xvZ10gYW4gb2JqZWN0IHRoYXQgcmVzcG9uZHMgdG8gLndyaXRlKClcbiAgICogICAobGlrZSBhIHN0cmVhbSkgb3IgLmxvZygpIChsaWtlIHRoZSBjb25zb2xlIG9iamVjdCkgaW4gb3JkZXIgdG8gbG9nXG4gICAqICAgaW5mb3JtYXRpb24gYWJvdXQgcmVxdWVzdHNcbiAgICogQG9wdGlvbiBvcHRpb25zIHN5c3RlbUNsb2NrT2Zmc2V0IFtOdW1iZXJdIGFuIG9mZnNldCB2YWx1ZSBpbiBtaWxsaXNlY29uZHNcbiAgICogICB0byBhcHBseSB0byBhbGwgc2lnbmluZyB0aW1lcy4gVXNlIHRoaXMgdG8gY29tcGVuc2F0ZSBmb3IgY2xvY2sgc2tld1xuICAgKiAgIHdoZW4geW91ciBzeXN0ZW0gbWF5IGJlIG91dCBvZiBzeW5jIHdpdGggdGhlIHNlcnZpY2UgdGltZS4gTm90ZSB0aGF0XG4gICAqICAgdGhpcyBjb25maWd1cmF0aW9uIG9wdGlvbiBjYW4gb25seSBiZSBhcHBsaWVkIHRvIHRoZSBnbG9iYWwgYEFXUy5jb25maWdgXG4gICAqICAgb2JqZWN0IGFuZCBjYW5ub3QgYmUgb3ZlcnJpZGRlbiBpbiBzZXJ2aWNlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24uXG4gICAqICAgRGVmYXVsdHMgdG8gMCBtaWxsaXNlY29uZHMuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBzaWduYXR1cmVWZXJzaW9uIFtTdHJpbmddIHRoZSBzaWduYXR1cmUgdmVyc2lvbiB0byBzaWduXG4gICAqICAgcmVxdWVzdHMgd2l0aCAob3ZlcnJpZGluZyB0aGUgQVBJIGNvbmZpZ3VyYXRpb24pLiBQb3NzaWJsZSB2YWx1ZXMgYXJlOlxuICAgKiAgICd2MicsICd2MycsICd2NCcuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBzaWduYXR1cmVDYWNoZSBbQm9vbGVhbl0gd2hldGhlciB0aGUgc2lnbmF0dXJlIHRvIHNpZ25cbiAgICogICByZXF1ZXN0cyB3aXRoIChvdmVycmlkaW5nIHRoZSBBUEkgY29uZmlndXJhdGlvbikgaXMgY2FjaGVkLiBPbmx5IGFwcGxpZXNcbiAgICogICB0byB0aGUgc2lnbmF0dXJlIHZlcnNpb24gJ3Y0Jy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgZHluYW1vRGJDcmMzMiBbQm9vbGVhbl0gd2hldGhlciB0byB2YWxpZGF0ZSB0aGUgQ1JDMzJcbiAgICogICBjaGVja3N1bSBvZiBIVFRQIHJlc3BvbnNlIGJvZGllcyByZXR1cm5lZCBieSBEeW5hbW9EQi4gRGVmYXVsdDogYHRydWVgLlxuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIENvbmZpZyhvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgb3B0aW9ucyA9IHt9O1xuICAgIG9wdGlvbnMgPSB0aGlzLmV4dHJhY3RDcmVkZW50aWFscyhvcHRpb25zKTtcblxuICAgIEFXUy51dGlsLmVhY2guY2FsbCh0aGlzLCB0aGlzLmtleXMsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICB0aGlzLnNldChrZXksIG9wdGlvbnNba2V5XSwgdmFsdWUpO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAIWdyb3VwIE1hbmFnaW5nIENyZWRlbnRpYWxzXG4gICAqL1xuXG4gIC8qKlxuICAgKiBMb2FkcyBjcmVkZW50aWFscyBmcm9tIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdC4gVGhpcyBpcyB1c2VkIGludGVybmFsbHlcbiAgICogYnkgdGhlIFNESyB0byBlbnN1cmUgdGhhdCByZWZyZXNoYWJsZSB7Q3JlZGVudGlhbHN9IG9iamVjdHMgYXJlIHByb3Blcmx5XG4gICAqIHJlZnJlc2hlZCBhbmQgbG9hZGVkIHdoZW4gc2VuZGluZyBhIHJlcXVlc3QuIElmIHlvdSB3YW50IHRvIGVuc3VyZSB0aGF0XG4gICAqIHlvdXIgY3JlZGVudGlhbHMgYXJlIGxvYWRlZCBwcmlvciB0byBhIHJlcXVlc3QsIHlvdSBjYW4gdXNlIHRoaXMgbWV0aG9kXG4gICAqIGRpcmVjdGx5IHRvIHByb3ZpZGUgYWNjdXJhdGUgY3JlZGVudGlhbCBkYXRhIHN0b3JlZCBpbiB0aGUgb2JqZWN0LlxuICAgKlxuICAgKiBAbm90ZSBJZiB5b3UgY29uZmlndXJlIHRoZSBTREsgd2l0aCBzdGF0aWMgb3IgZW52aXJvbm1lbnQgY3JlZGVudGlhbHMsXG4gICAqICAgdGhlIGNyZWRlbnRpYWwgZGF0YSBzaG91bGQgYWxyZWFkeSBiZSBwcmVzZW50IGluIHtjcmVkZW50aWFsc30gYXR0cmlidXRlLlxuICAgKiAgIFRoaXMgbWV0aG9kIGlzIHByaW1hcmlseSBuZWNlc3NhcnkgdG8gbG9hZCBjcmVkZW50aWFscyBmcm9tIGFzeW5jaHJvbm91c1xuICAgKiAgIHNvdXJjZXMsIG9yIHNvdXJjZXMgdGhhdCBjYW4gcmVmcmVzaCBjcmVkZW50aWFscyBwZXJpb2RpY2FsbHkuXG4gICAqIEBleGFtcGxlIEdldHRpbmcgeW91ciBhY2Nlc3Mga2V5XG4gICAqICAgQVdTLmNvbmZpZy5nZXRDcmVkZW50aWFscyhmdW5jdGlvbihlcnIpIHtcbiAgICogICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVyci5zdGFjayk7IC8vIGNyZWRlbnRpYWxzIG5vdCBsb2FkZWRcbiAgICogICAgIGVsc2UgY29uc29sZS5sb2coXCJBY2Nlc3MgS2V5OlwiLCBBV1MuY29uZmlnLmNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkKTtcbiAgICogICB9KVxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyKVxuICAgKiAgIENhbGxlZCB3aGVuIHRoZSB7Y3JlZGVudGlhbHN9IGhhdmUgYmVlbiBwcm9wZXJseSBzZXQgb24gdGhlIGNvbmZpZ3VyYXRpb25cbiAgICogICBvYmplY3QuXG4gICAqXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIGlmIHRoaXMgaXMgc2V0LCBjcmVkZW50aWFscyB3ZXJlIG5vdCBzdWNjZXNzZnVsbHlcbiAgICogICAgIGxvYWRlZCBhbmQgdGhpcyBlcnJvciBwcm92aWRlcyBpbmZvcm1hdGlvbiB3aHkuXG4gICAqIEBzZWUgY3JlZGVudGlhbHNcbiAgICogQHNlZSBDcmVkZW50aWFsc1xuICAgKi9cbiAgZ2V0Q3JlZGVudGlhbHM6IGZ1bmN0aW9uIGdldENyZWRlbnRpYWxzKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgZnVuY3Rpb24gZmluaXNoKGVycikge1xuICAgICAgY2FsbGJhY2soZXJyLCBlcnIgPyBudWxsIDogc2VsZi5jcmVkZW50aWFscyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlZEVycm9yKG1zZywgZXJyKSB7XG4gICAgICByZXR1cm4gbmV3IEFXUy51dGlsLmVycm9yKGVyciB8fCBuZXcgRXJyb3IoKSwge1xuICAgICAgICBjb2RlOiAnQ3JlZGVudGlhbHNFcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IG1zZyxcbiAgICAgICAgbmFtZTogJ0NyZWRlbnRpYWxzRXJyb3InXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRBc3luY0NyZWRlbnRpYWxzKCkge1xuICAgICAgc2VsZi5jcmVkZW50aWFscy5nZXQoZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICB2YXIgbXNnID0gJ0NvdWxkIG5vdCBsb2FkIGNyZWRlbnRpYWxzIGZyb20gJyArXG4gICAgICAgICAgICBzZWxmLmNyZWRlbnRpYWxzLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgICAgICAgZXJyID0gY3JlZEVycm9yKG1zZywgZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5pc2goZXJyKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFN0YXRpY0NyZWRlbnRpYWxzKCkge1xuICAgICAgdmFyIGVyciA9IG51bGw7XG4gICAgICBpZiAoIXNlbGYuY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgfHwgIXNlbGYuY3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICAgIGVyciA9IGNyZWRFcnJvcignTWlzc2luZyBjcmVkZW50aWFscycpO1xuICAgICAgfVxuICAgICAgZmluaXNoKGVycik7XG4gICAgfVxuXG4gICAgaWYgKHNlbGYuY3JlZGVudGlhbHMpIHtcbiAgICAgIGlmICh0eXBlb2Ygc2VsZi5jcmVkZW50aWFscy5nZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZ2V0QXN5bmNDcmVkZW50aWFscygpO1xuICAgICAgfSBlbHNlIHsgLy8gc3RhdGljIGNyZWRlbnRpYWxzXG4gICAgICAgIGdldFN0YXRpY0NyZWRlbnRpYWxzKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzZWxmLmNyZWRlbnRpYWxQcm92aWRlcikge1xuICAgICAgc2VsZi5jcmVkZW50aWFsUHJvdmlkZXIucmVzb2x2ZShmdW5jdGlvbihlcnIsIGNyZWRzKSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBlcnIgPSBjcmVkRXJyb3IoJ0NvdWxkIG5vdCBsb2FkIGNyZWRlbnRpYWxzIGZyb20gYW55IHByb3ZpZGVycycsIGVycik7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZi5jcmVkZW50aWFscyA9IGNyZWRzO1xuICAgICAgICBmaW5pc2goZXJyKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5pc2goY3JlZEVycm9yKCdObyBjcmVkZW50aWFscyB0byBsb2FkJykpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQCFncm91cCBMb2FkaW5nIGFuZCBTZXR0aW5nIENvbmZpZ3VyYXRpb24gT3B0aW9uc1xuICAgKi9cblxuICAvKipcbiAgICogQG92ZXJsb2FkIHVwZGF0ZShvcHRpb25zLCBhbGxvd1Vua25vd25LZXlzID0gZmFsc2UpXG4gICAqICAgVXBkYXRlcyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIG9iamVjdCB3aXRoIG5ldyBvcHRpb25zLlxuICAgKlxuICAgKiAgIEBleGFtcGxlIFVwZGF0ZSBtYXhSZXRyaWVzIHByb3BlcnR5IG9mIGEgY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICogICAgIGNvbmZpZy51cGRhdGUoe21heFJldHJpZXM6IDEwfSk7XG4gICAqICAgQHBhcmFtIFtPYmplY3RdIG9wdGlvbnMgYSBtYXAgb2Ygb3B0aW9uIGtleXMgYW5kIHZhbHVlcy5cbiAgICogICBAcGFyYW0gW0Jvb2xlYW5dIGFsbG93VW5rbm93bktleXMgd2hldGhlciB1bmtub3duIGtleXMgY2FuIGJlIHNldCBvblxuICAgKiAgICAgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKiAgIEBzZWUgY29uc3RydWN0b3JcbiAgICovXG4gIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKG9wdGlvbnMsIGFsbG93VW5rbm93bktleXMpIHtcbiAgICBhbGxvd1Vua25vd25LZXlzID0gYWxsb3dVbmtub3duS2V5cyB8fCBmYWxzZTtcbiAgICBvcHRpb25zID0gdGhpcy5leHRyYWN0Q3JlZGVudGlhbHMob3B0aW9ucyk7XG4gICAgQVdTLnV0aWwuZWFjaC5jYWxsKHRoaXMsIG9wdGlvbnMsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoYWxsb3dVbmtub3duS2V5cyB8fCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5rZXlzLCBrZXkpIHx8XG4gICAgICAgICAgQVdTLlNlcnZpY2UuaGFzU2VydmljZShrZXkpKSB7XG4gICAgICAgIHRoaXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBMb2FkcyBjb25maWd1cmF0aW9uIGRhdGEgZnJvbSBhIEpTT04gZmlsZSBpbnRvIHRoaXMgY29uZmlnIG9iamVjdC5cbiAgICogQG5vdGUgTG9hZGluZyBjb25maWd1cmF0aW9uIHdpbGwgcmVzZXQgYWxsIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25cbiAgICogICBvbiB0aGUgb2JqZWN0LlxuICAgKiBAIW1hY3JvIG5vYnJvd3NlclxuICAgKiBAcGFyYW0gcGF0aCBbU3RyaW5nXSB0aGUgcGF0aCByZWxhdGl2ZSB0byB5b3VyIHByb2Nlc3MncyBjdXJyZW50XG4gICAqICAgIHdvcmtpbmcgZGlyZWN0b3J5IHRvIGxvYWQgY29uZmlndXJhdGlvbiBmcm9tLlxuICAgKiBAcmV0dXJuIFtBV1MuQ29uZmlnXSB0aGUgc2FtZSBjb25maWd1cmF0aW9uIG9iamVjdFxuICAgKi9cbiAgbG9hZEZyb21QYXRoOiBmdW5jdGlvbiBsb2FkRnJvbVBhdGgocGF0aCkge1xuICAgIHRoaXMuY2xlYXIoKTtcblxuICAgIHZhciBvcHRpb25zID0gSlNPTi5wYXJzZShBV1MudXRpbC5yZWFkRmlsZVN5bmMocGF0aCkpO1xuICAgIHZhciBmaWxlU3lzdGVtQ3JlZHMgPSBuZXcgQVdTLkZpbGVTeXN0ZW1DcmVkZW50aWFscyhwYXRoKTtcbiAgICB2YXIgY2hhaW4gPSBuZXcgQVdTLkNyZWRlbnRpYWxQcm92aWRlckNoYWluKCk7XG4gICAgY2hhaW4ucHJvdmlkZXJzLnVuc2hpZnQoZmlsZVN5c3RlbUNyZWRzKTtcbiAgICBjaGFpbi5yZXNvbHZlKGZ1bmN0aW9uIChlcnIsIGNyZWRzKSB7XG4gICAgICBpZiAoZXJyKSB0aHJvdyBlcnI7XG4gICAgICBlbHNlIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBjcmVkcztcbiAgICB9KTtcblxuICAgIHRoaXMuY29uc3RydWN0b3Iob3B0aW9ucyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICAvKipcbiAgICogQ2xlYXJzIGNvbmZpZ3VyYXRpb24gZGF0YSBvbiB0aGlzIG9iamVjdFxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNsZWFyOiBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAvKmpzaGludCBmb3JpbjpmYWxzZSAqL1xuICAgIEFXUy51dGlsLmVhY2guY2FsbCh0aGlzLCB0aGlzLmtleXMsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIGRlbGV0ZSB0aGlzW2tleV07XG4gICAgfSk7XG5cbiAgICAvLyByZXNldCBjcmVkZW50aWFsIHByb3ZpZGVyXG4gICAgdGhpcy5zZXQoJ2NyZWRlbnRpYWxzJywgdW5kZWZpbmVkKTtcbiAgICB0aGlzLnNldCgnY3JlZGVudGlhbFByb3ZpZGVyJywgdW5kZWZpbmVkKTtcbiAgfSxcblxuICAvKipcbiAgICogU2V0cyBhIHByb3BlcnR5IG9uIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCwgYWxsb3dpbmcgZm9yIGFcbiAgICogZGVmYXVsdCB2YWx1ZVxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldDogZnVuY3Rpb24gc2V0KHByb3BlcnR5LCB2YWx1ZSwgZGVmYXVsdFZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChkZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmtleXNbcHJvcGVydHldO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0VmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpc1twcm9wZXJ0eV0gPSBkZWZhdWx0VmFsdWUuY2FsbCh0aGlzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXNbcHJvcGVydHldID0gZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT09ICdodHRwT3B0aW9ucycgJiYgdGhpc1twcm9wZXJ0eV0pIHtcbiAgICAgIC8vIGRlZXAgbWVyZ2UgaHR0cE9wdGlvbnNcbiAgICAgIHRoaXNbcHJvcGVydHldID0gQVdTLnV0aWwubWVyZ2UodGhpc1twcm9wZXJ0eV0sIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc1twcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFsbCBvZiB0aGUga2V5cyB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzLlxuICAgKlxuICAgKiBAY29uc3RhbnRcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBrZXlzOiB7XG4gICAgY3JlZGVudGlhbHM6IG51bGwsXG4gICAgY3JlZGVudGlhbFByb3ZpZGVyOiBudWxsLFxuICAgIHJlZ2lvbjogbnVsbCxcbiAgICBsb2dnZXI6IG51bGwsXG4gICAgYXBpVmVyc2lvbnM6IHt9LFxuICAgIGFwaVZlcnNpb246IG51bGwsXG4gICAgZW5kcG9pbnQ6IHVuZGVmaW5lZCxcbiAgICBodHRwT3B0aW9uczoge1xuICAgICAgdGltZW91dDogMTIwMDAwXG4gICAgfSxcbiAgICBtYXhSZXRyaWVzOiB1bmRlZmluZWQsXG4gICAgbWF4UmVkaXJlY3RzOiAxMCxcbiAgICBwYXJhbVZhbGlkYXRpb246IHRydWUsXG4gICAgc3NsRW5hYmxlZDogdHJ1ZSxcbiAgICBzM0ZvcmNlUGF0aFN0eWxlOiBmYWxzZSxcbiAgICBzM0J1Y2tldEVuZHBvaW50OiBmYWxzZSxcbiAgICBzM0Rpc2FibGVCb2R5U2lnbmluZzogdHJ1ZSxcbiAgICBjb21wdXRlQ2hlY2tzdW1zOiB0cnVlLFxuICAgIGNvbnZlcnRSZXNwb25zZVR5cGVzOiB0cnVlLFxuICAgIGNvcnJlY3RDbG9ja1NrZXc6IGZhbHNlLFxuICAgIGN1c3RvbVVzZXJBZ2VudDogbnVsbCxcbiAgICBkeW5hbW9EYkNyYzMyOiB0cnVlLFxuICAgIHN5c3RlbUNsb2NrT2Zmc2V0OiAwLFxuICAgIHNpZ25hdHVyZVZlcnNpb246IG51bGwsXG4gICAgc2lnbmF0dXJlQ2FjaGU6IHRydWUsXG4gICAgcmV0cnlEZWxheU9wdGlvbnM6IHt9LFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludDogZmFsc2VcbiAgfSxcblxuICAvKipcbiAgICogRXh0cmFjdHMgYWNjZXNzS2V5SWQsIHNlY3JldEFjY2Vzc0tleSBhbmQgc2Vzc2lvblRva2VuXG4gICAqIGZyb20gYSBjb25maWd1cmF0aW9uIGhhc2guXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZXh0cmFjdENyZWRlbnRpYWxzOiBmdW5jdGlvbiBleHRyYWN0Q3JlZGVudGlhbHMob3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmFjY2Vzc0tleUlkICYmIG9wdGlvbnMuc2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgICBvcHRpb25zID0gQVdTLnV0aWwuY29weShvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBuZXcgQVdTLkNyZWRlbnRpYWxzKG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfSxcblxuICAvKipcbiAgICogU2V0cyB0aGUgcHJvbWlzZSBkZXBlbmRlbmN5IHRoZSBTREsgd2lsbCB1c2Ugd2hlcmV2ZXIgUHJvbWlzZXMgYXJlIHJldHVybmVkLlxuICAgKiBQYXNzaW5nIGBudWxsYCB3aWxsIGZvcmNlIHRoZSBTREsgdG8gdXNlIG5hdGl2ZSBQcm9taXNlcyBpZiB0aGV5IGFyZSBhdmFpbGFibGUuXG4gICAqIElmIG5hdGl2ZSBQcm9taXNlcyBhcmUgbm90IGF2YWlsYWJsZSwgcGFzc2luZyBgbnVsbGAgd2lsbCBoYXZlIG5vIGVmZmVjdC5cbiAgICogQHBhcmFtIFtDb25zdHJ1Y3Rvcl0gZGVwIEEgcmVmZXJlbmNlIHRvIGEgUHJvbWlzZSBjb25zdHJ1Y3RvclxuICAgKi9cbiAgc2V0UHJvbWlzZXNEZXBlbmRlbmN5OiBmdW5jdGlvbiBzZXRQcm9taXNlc0RlcGVuZGVuY3koZGVwKSB7XG4gICAgUHJvbWlzZXNEZXBlbmRlbmN5ID0gZGVwO1xuICAgIC8vIGlmIG51bGwgd2FzIHBhc3NlZCBpbiwgd2Ugc2hvdWxkIHRyeSB0byB1c2UgbmF0aXZlIHByb21pc2VzXG4gICAgaWYgKGRlcCA9PT0gbnVsbCAmJiB0eXBlb2YgUHJvbWlzZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgUHJvbWlzZXNEZXBlbmRlbmN5ID0gUHJvbWlzZTtcbiAgICB9XG4gICAgdmFyIGNvbnN0cnVjdG9ycyA9IFtBV1MuUmVxdWVzdCwgQVdTLkNyZWRlbnRpYWxzLCBBV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW5dO1xuICAgIGlmIChBV1MuUzMgJiYgQVdTLlMzLk1hbmFnZWRVcGxvYWQpIGNvbnN0cnVjdG9ycy5wdXNoKEFXUy5TMy5NYW5hZ2VkVXBsb2FkKTtcbiAgICBBV1MudXRpbC5hZGRQcm9taXNlcyhjb25zdHJ1Y3RvcnMsIFByb21pc2VzRGVwZW5kZW5jeSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHByb21pc2UgZGVwZW5kZW5jeSBzZXQgYnkgYEFXUy5jb25maWcuc2V0UHJvbWlzZXNEZXBlbmRlbmN5YC5cbiAgICovXG4gIGdldFByb21pc2VzRGVwZW5kZW5jeTogZnVuY3Rpb24gZ2V0UHJvbWlzZXNEZXBlbmRlbmN5KCkge1xuICAgIHJldHVybiBQcm9taXNlc0RlcGVuZGVuY3k7XG4gIH1cbn0pO1xuXG4vKipcbiAqIEByZXR1cm4gW0FXUy5Db25maWddIFRoZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvYmplY3Qgc2luZ2xldG9uIGluc3RhbmNlXG4gKiBAcmVhZG9ubHlcbiAqIEBzZWUgQVdTLkNvbmZpZ1xuICovXG5BV1MuY29uZmlnID0gbmV3IEFXUy5Db25maWcoKTtcbiIsIi8qKlxuICogVGhlIG1haW4gQVdTIG5hbWVzcGFjZVxuICovXG52YXIgQVdTID0geyB1dGlsOiByZXF1aXJlKCcuL3V0aWwnKSB9O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICogQCFtYWNybyBbbmV3XSBub2Jyb3dzZXJcbiAqICAgQG5vdGUgVGhpcyBmZWF0dXJlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgZW52aXJvbm1lbnQgb2YgdGhlIFNESy5cbiAqL1xudmFyIF9oaWRkZW4gPSB7fTsgX2hpZGRlbi50b1N0cmluZygpOyAvLyBoYWNrIHRvIHBhcnNlIG1hY3JvXG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTO1xuXG5BV1MudXRpbC51cGRhdGUoQVdTLCB7XG5cbiAgLyoqXG4gICAqIEBjb25zdGFudFxuICAgKi9cbiAgVkVSU0lPTjogJzIuMjY4LjEnLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIFNpZ25lcnM6IHt9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIFByb3RvY29sOiB7XG4gICAgSnNvbjogcmVxdWlyZSgnLi9wcm90b2NvbC9qc29uJyksXG4gICAgUXVlcnk6IHJlcXVpcmUoJy4vcHJvdG9jb2wvcXVlcnknKSxcbiAgICBSZXN0OiByZXF1aXJlKCcuL3Byb3RvY29sL3Jlc3QnKSxcbiAgICBSZXN0SnNvbjogcmVxdWlyZSgnLi9wcm90b2NvbC9yZXN0X2pzb24nKSxcbiAgICBSZXN0WG1sOiByZXF1aXJlKCcuL3Byb3RvY29sL3Jlc3RfeG1sJylcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBYTUw6IHtcbiAgICBCdWlsZGVyOiByZXF1aXJlKCcuL3htbC9idWlsZGVyJyksXG4gICAgUGFyc2VyOiBudWxsIC8vIGNvbmRpdGlvbmFsbHkgc2V0IGJhc2VkIG9uIGVudmlyb25tZW50XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgSlNPTjoge1xuICAgIEJ1aWxkZXI6IHJlcXVpcmUoJy4vanNvbi9idWlsZGVyJyksXG4gICAgUGFyc2VyOiByZXF1aXJlKCcuL2pzb24vcGFyc2VyJylcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBNb2RlbDoge1xuICAgIEFwaTogcmVxdWlyZSgnLi9tb2RlbC9hcGknKSxcbiAgICBPcGVyYXRpb246IHJlcXVpcmUoJy4vbW9kZWwvb3BlcmF0aW9uJyksXG4gICAgU2hhcGU6IHJlcXVpcmUoJy4vbW9kZWwvc2hhcGUnKSxcbiAgICBQYWdpbmF0b3I6IHJlcXVpcmUoJy4vbW9kZWwvcGFnaW5hdG9yJyksXG4gICAgUmVzb3VyY2VXYWl0ZXI6IHJlcXVpcmUoJy4vbW9kZWwvcmVzb3VyY2Vfd2FpdGVyJylcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhcGlMb2FkZXI6IHJlcXVpcmUoJy4vYXBpX2xvYWRlcicpXG59KTtcblxucmVxdWlyZSgnLi9zZXJ2aWNlJyk7XG5yZXF1aXJlKCcuL2NvbmZpZycpO1xuXG5yZXF1aXJlKCcuL2h0dHAnKTtcbnJlcXVpcmUoJy4vc2VxdWVudGlhbF9leGVjdXRvcicpO1xucmVxdWlyZSgnLi9ldmVudF9saXN0ZW5lcnMnKTtcbnJlcXVpcmUoJy4vcmVxdWVzdCcpO1xucmVxdWlyZSgnLi9yZXNwb25zZScpO1xucmVxdWlyZSgnLi9yZXNvdXJjZV93YWl0ZXInKTtcbnJlcXVpcmUoJy4vc2lnbmVycy9yZXF1ZXN0X3NpZ25lcicpO1xucmVxdWlyZSgnLi9wYXJhbV92YWxpZGF0b3InKTtcblxuLyoqXG4gKiBAcmVhZG9ubHlcbiAqIEByZXR1cm4gW0FXUy5TZXF1ZW50aWFsRXhlY3V0b3JdIGEgY29sbGVjdGlvbiBvZiBnbG9iYWwgZXZlbnQgbGlzdGVuZXJzIHRoYXRcbiAqICAgYXJlIGF0dGFjaGVkIHRvIGV2ZXJ5IHNlbnQgcmVxdWVzdC5cbiAqIEBzZWUgQVdTLlJlcXVlc3QgQVdTLlJlcXVlc3QgZm9yIGEgbGlzdCBvZiBldmVudHMgdG8gbGlzdGVuIGZvclxuICogQGV4YW1wbGUgTG9nZ2luZyB0aGUgdGltZSB0YWtlbiB0byBzZW5kIGEgcmVxdWVzdFxuICogICBBV1MuZXZlbnRzLm9uKCdzZW5kJywgZnVuY3Rpb24gc3RhcnRTZW5kKHJlc3ApIHtcbiAqICAgICByZXNwLnN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICogICB9KS5vbignY29tcGxldGUnLCBmdW5jdGlvbiBjYWxjdWxhdGVUaW1lKHJlc3ApIHtcbiAqICAgICB2YXIgdGltZSA9IChuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHJlc3Auc3RhcnRUaW1lKSAvIDEwMDA7XG4gKiAgICAgY29uc29sZS5sb2coJ1JlcXVlc3QgdG9vayAnICsgdGltZSArICcgc2Vjb25kcycpO1xuICogICB9KTtcbiAqXG4gKiAgIG5ldyBBV1MuUzMoKS5saXN0QnVja2V0cygpOyAvLyBwcmludHMgJ1JlcXVlc3QgdG9vayAwLjI4NSBzZWNvbmRzJ1xuICovXG5BV1MuZXZlbnRzID0gbmV3IEFXUy5TZXF1ZW50aWFsRXhlY3V0b3IoKTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHlvdXIgQVdTIHNlY3VyaXR5IGNyZWRlbnRpYWxzLCBzcGVjaWZpY2FsbHkgdGhlXG4gKiB7YWNjZXNzS2V5SWR9LCB7c2VjcmV0QWNjZXNzS2V5fSwgYW5kIG9wdGlvbmFsIHtzZXNzaW9uVG9rZW59LlxuICogQ3JlYXRpbmcgYSBgQ3JlZGVudGlhbHNgIG9iamVjdCBhbGxvd3MgeW91IHRvIHBhc3MgYXJvdW5kIHlvdXJcbiAqIHNlY3VyaXR5IGluZm9ybWF0aW9uIHRvIGNvbmZpZ3VyYXRpb24gYW5kIHNlcnZpY2Ugb2JqZWN0cy5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBjbGFzcyB0eXBpY2FsbHkgZG9lcyBub3QgbmVlZCB0byBiZSBjb25zdHJ1Y3RlZCBtYW51YWxseSxcbiAqIGFzIHRoZSB7QVdTLkNvbmZpZ30gYW5kIHtBV1MuU2VydmljZX0gY2xhc3NlcyBib3RoIGFjY2VwdCBzaW1wbGVcbiAqIG9wdGlvbnMgaGFzaGVzIHdpdGggdGhlIHRocmVlIGtleXMuIFRoZXNlIHN0cnVjdHVyZXMgd2lsbCBiZSBjb252ZXJ0ZWRcbiAqIGludG8gQ3JlZGVudGlhbHMgb2JqZWN0cyBhdXRvbWF0aWNhbGx5LlxuICpcbiAqICMjIEV4cGlyaW5nIGFuZCBSZWZyZXNoaW5nIENyZWRlbnRpYWxzXG4gKlxuICogT2NjYXNpb25hbGx5IGNyZWRlbnRpYWxzIGNhbiBleHBpcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxvbmctcnVubmluZ1xuICogYXBwbGljYXRpb24uIEluIHRoaXMgY2FzZSwgdGhlIFNESyB3aWxsIGF1dG9tYXRpY2FsbHkgYXR0ZW1wdCB0b1xuICogcmVmcmVzaCB0aGUgY3JlZGVudGlhbHMgZnJvbSB0aGUgc3RvcmFnZSBsb2NhdGlvbiBpZiB0aGUgQ3JlZGVudGlhbHNcbiAqIGNsYXNzIGltcGxlbWVudHMgdGhlIHtyZWZyZXNofSBtZXRob2QuXG4gKlxuICogSWYgeW91IGFyZSBpbXBsZW1lbnRpbmcgYSBjcmVkZW50aWFsIHN0b3JhZ2UgbG9jYXRpb24sIHlvdVxuICogd2lsbCB3YW50IHRvIGNyZWF0ZSBhIHN1YmNsYXNzIG9mIHRoZSBgQ3JlZGVudGlhbHNgIGNsYXNzIGFuZFxuICogb3ZlcnJpZGUgdGhlIHtyZWZyZXNofSBtZXRob2QuIFRoaXMgbWV0aG9kIGFsbG93cyBjcmVkZW50aWFscyB0byBiZVxuICogcmV0cmlldmVkIGZyb20gdGhlIGJhY2tpbmcgc3RvcmUsIGJlIGl0IGEgZmlsZSBzeXN0ZW0sIGRhdGFiYXNlLCBvclxuICogc29tZSBuZXR3b3JrIHN0b3JhZ2UuIFRoZSBtZXRob2Qgc2hvdWxkIHJlc2V0IHRoZSBjcmVkZW50aWFsIGF0dHJpYnV0ZXNcbiAqIG9uIHRoZSBvYmplY3QuXG4gKlxuICogQCFhdHRyaWJ1dGUgZXhwaXJlZFxuICogICBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHRoZSBjcmVkZW50aWFscyBoYXZlIGJlZW4gZXhwaXJlZCBhbmRcbiAqICAgICByZXF1aXJlIGEgcmVmcmVzaC4gVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHtleHBpcmVUaW1lfS5cbiAqIEAhYXR0cmlidXRlIGV4cGlyZVRpbWVcbiAqICAgQHJldHVybiBbRGF0ZV0gYSB0aW1lIHdoZW4gY3JlZGVudGlhbHMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZXhwaXJlZC4gVXNlZFxuICogICAgIGluIGNvbmp1bmN0aW9uIHdpdGgge2V4cGlyZWR9LlxuICogQCFhdHRyaWJ1dGUgYWNjZXNzS2V5SWRcbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgQVdTIGFjY2VzcyBrZXkgSURcbiAqIEAhYXR0cmlidXRlIHNlY3JldEFjY2Vzc0tleVxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSBBV1Mgc2VjcmV0IGFjY2VzcyBrZXlcbiAqIEAhYXR0cmlidXRlIHNlc3Npb25Ub2tlblxuICogICBAcmV0dXJuIFtTdHJpbmddIGFuIG9wdGlvbmFsIEFXUyBzZXNzaW9uIHRva2VuXG4gKi9cbkFXUy5DcmVkZW50aWFscyA9IEFXUy51dGlsLmluaGVyaXQoe1xuICAvKipcbiAgICogQSBjcmVkZW50aWFscyBvYmplY3QgY2FuIGJlIGNyZWF0ZWQgdXNpbmcgcG9zaXRpb25hbCBhcmd1bWVudHMgb3IgYW4gb3B0aW9uc1xuICAgKiBoYXNoLlxuICAgKlxuICAgKiBAb3ZlcmxvYWQgQVdTLkNyZWRlbnRpYWxzKGFjY2Vzc0tleUlkLCBzZWNyZXRBY2Nlc3NLZXksIHNlc3Npb25Ub2tlbj1udWxsKVxuICAgKiAgIENyZWF0ZXMgYSBDcmVkZW50aWFscyBvYmplY3Qgd2l0aCBhIGdpdmVuIHNldCBvZiBjcmVkZW50aWFsIGluZm9ybWF0aW9uXG4gICAqICAgYXMgcG9zaXRpb25hbCBhcmd1bWVudHMuXG4gICAqICAgQHBhcmFtIGFjY2Vzc0tleUlkIFtTdHJpbmddIHRoZSBBV1MgYWNjZXNzIGtleSBJRFxuICAgKiAgIEBwYXJhbSBzZWNyZXRBY2Nlc3NLZXkgW1N0cmluZ10gdGhlIEFXUyBzZWNyZXQgYWNjZXNzIGtleVxuICAgKiAgIEBwYXJhbSBzZXNzaW9uVG9rZW4gW1N0cmluZ10gdGhlIG9wdGlvbmFsIEFXUyBzZXNzaW9uIHRva2VuXG4gICAqICAgQGV4YW1wbGUgQ3JlYXRlIGEgY3JlZGVudGlhbHMgb2JqZWN0IHdpdGggQVdTIGNyZWRlbnRpYWxzXG4gICAqICAgICB2YXIgY3JlZHMgPSBuZXcgQVdTLkNyZWRlbnRpYWxzKCdha2lkJywgJ3NlY3JldCcsICdzZXNzaW9uJyk7XG4gICAqIEBvdmVybG9hZCBBV1MuQ3JlZGVudGlhbHMob3B0aW9ucylcbiAgICogICBDcmVhdGVzIGEgQ3JlZGVudGlhbHMgb2JqZWN0IHdpdGggYSBnaXZlbiBzZXQgb2YgY3JlZGVudGlhbCBpbmZvcm1hdGlvblxuICAgKiAgIGFzIGFuIG9wdGlvbnMgaGFzaC5cbiAgICogICBAb3B0aW9uIG9wdGlvbnMgYWNjZXNzS2V5SWQgW1N0cmluZ10gdGhlIEFXUyBhY2Nlc3Mga2V5IElEXG4gICAqICAgQG9wdGlvbiBvcHRpb25zIHNlY3JldEFjY2Vzc0tleSBbU3RyaW5nXSB0aGUgQVdTIHNlY3JldCBhY2Nlc3Mga2V5XG4gICAqICAgQG9wdGlvbiBvcHRpb25zIHNlc3Npb25Ub2tlbiBbU3RyaW5nXSB0aGUgb3B0aW9uYWwgQVdTIHNlc3Npb24gdG9rZW5cbiAgICogICBAZXhhbXBsZSBDcmVhdGUgYSBjcmVkZW50aWFscyBvYmplY3Qgd2l0aCBBV1MgY3JlZGVudGlhbHNcbiAgICogICAgIHZhciBjcmVkcyA9IG5ldyBBV1MuQ3JlZGVudGlhbHMoe1xuICAgKiAgICAgICBhY2Nlc3NLZXlJZDogJ2FraWQnLCBzZWNyZXRBY2Nlc3NLZXk6ICdzZWNyZXQnLCBzZXNzaW9uVG9rZW46ICdzZXNzaW9uJ1xuICAgKiAgICAgfSk7XG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gQ3JlZGVudGlhbHMoKSB7XG4gICAgLy8gaGlkZSBzZWNyZXRBY2Nlc3NLZXkgZnJvbSBiZWluZyBkaXNwbGF5ZWQgd2l0aCB1dGlsLmluc3BlY3RcbiAgICBBV1MudXRpbC5oaWRlUHJvcGVydGllcyh0aGlzLCBbJ3NlY3JldEFjY2Vzc0tleSddKTtcblxuICAgIHRoaXMuZXhwaXJlZCA9IGZhbHNlO1xuICAgIHRoaXMuZXhwaXJlVGltZSA9IG51bGw7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIGFyZ3VtZW50c1swXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBjcmVkcyA9IGFyZ3VtZW50c1swXS5jcmVkZW50aWFscyB8fCBhcmd1bWVudHNbMF07XG4gICAgICB0aGlzLmFjY2Vzc0tleUlkID0gY3JlZHMuYWNjZXNzS2V5SWQ7XG4gICAgICB0aGlzLnNlY3JldEFjY2Vzc0tleSA9IGNyZWRzLnNlY3JldEFjY2Vzc0tleTtcbiAgICAgIHRoaXMuc2Vzc2lvblRva2VuID0gY3JlZHMuc2Vzc2lvblRva2VuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjY2Vzc0tleUlkID0gYXJndW1lbnRzWzBdO1xuICAgICAgdGhpcy5zZWNyZXRBY2Nlc3NLZXkgPSBhcmd1bWVudHNbMV07XG4gICAgICB0aGlzLnNlc3Npb25Ub2tlbiA9IGFyZ3VtZW50c1syXTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0ludGVnZXJdIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUge2V4cGlyZVRpbWV9IGR1cmluZyB3aGljaFxuICAgKiAgIHRoZSBjcmVkZW50aWFscyB3aWxsIGJlIGNvbnNpZGVyZWQgZXhwaXJlZC5cbiAgICovXG4gIGV4cGlyeVdpbmRvdzogMTUsXG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdGhlIGNyZWRlbnRpYWxzIG9iamVjdCBzaG91bGQgY2FsbCB7cmVmcmVzaH1cbiAgICogQG5vdGUgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBjdXN0b20gcmVmcmVzaFxuICAgKiAgIGxvZ2ljLlxuICAgKi9cbiAgbmVlZHNSZWZyZXNoOiBmdW5jdGlvbiBuZWVkc1JlZnJlc2goKSB7XG4gICAgdmFyIGN1cnJlbnRUaW1lID0gQVdTLnV0aWwuZGF0ZS5nZXREYXRlKCkuZ2V0VGltZSgpO1xuICAgIHZhciBhZGp1c3RlZFRpbWUgPSBuZXcgRGF0ZShjdXJyZW50VGltZSArIHRoaXMuZXhwaXJ5V2luZG93ICogMTAwMCk7XG5cbiAgICBpZiAodGhpcy5leHBpcmVUaW1lICYmIGFkanVzdGVkVGltZSA+IHRoaXMuZXhwaXJlVGltZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmV4cGlyZWQgfHwgIXRoaXMuYWNjZXNzS2V5SWQgfHwgIXRoaXMuc2VjcmV0QWNjZXNzS2V5O1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogR2V0cyB0aGUgZXhpc3RpbmcgY3JlZGVudGlhbHMsIHJlZnJlc2hpbmcgdGhlbSBpZiB0aGV5IGFyZSBub3QgeWV0IGxvYWRlZFxuICAgKiBvciBoYXZlIGV4cGlyZWQuIFVzZXJzIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIGJlZm9yZSB1c2luZyB7cmVmcmVzaH0sXG4gICAqIGFzIHRoaXMgd2lsbCBub3QgYXR0ZW1wdCB0byByZWxvYWQgY3JlZGVudGlhbHMgd2hlbiB0aGV5IGFyZSBhbHJlYWR5XG4gICAqIGxvYWRlZCBpbnRvIHRoZSBvYmplY3QuXG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIpXG4gICAqICAgV2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIG5vIGVycm9yLCBpdCBtZWFucyBlaXRoZXIgY3JlZGVudGlhbHNcbiAgICogICBkbyBub3QgbmVlZCB0byBiZSByZWZyZXNoZWQgb3IgcmVmcmVzaGVkIGNyZWRlbnRpYWxzIGluZm9ybWF0aW9uIGhhc1xuICAgKiAgIGJlZW4gbG9hZGVkIGludG8gdGhlIG9iamVjdCAoYXMgdGhlIGBhY2Nlc3NLZXlJZGAsIGBzZWNyZXRBY2Nlc3NLZXlgLFxuICAgKiAgIGFuZCBgc2Vzc2lvblRva2VuYCBwcm9wZXJ0aWVzKS5cbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gaWYgYW4gZXJyb3Igb2NjdXJyZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBmaWxsZWRcbiAgICovXG4gIGdldDogZnVuY3Rpb24gZ2V0KGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmICh0aGlzLm5lZWRzUmVmcmVzaCgpKSB7XG4gICAgICB0aGlzLnJlZnJlc2goZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgIGlmICghZXJyKSBzZWxmLmV4cGlyZWQgPSBmYWxzZTsgLy8gcmVzZXQgZXhwaXJlZCBmbGFnXG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soZXJyKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAIW1ldGhvZCAgZ2V0UHJvbWlzZSgpXG4gICAqICAgUmV0dXJucyBhICd0aGVuYWJsZScgcHJvbWlzZS5cbiAgICogICBHZXRzIHRoZSBleGlzdGluZyBjcmVkZW50aWFscywgcmVmcmVzaGluZyB0aGVtIGlmIHRoZXkgYXJlIG5vdCB5ZXQgbG9hZGVkXG4gICAqICAgb3IgaGF2ZSBleHBpcmVkLiBVc2VycyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCBiZWZvcmUgdXNpbmcge3JlZnJlc2h9LFxuICAgKiAgIGFzIHRoaXMgd2lsbCBub3QgYXR0ZW1wdCB0byByZWxvYWQgY3JlZGVudGlhbHMgd2hlbiB0aGV5IGFyZSBhbHJlYWR5XG4gICAqICAgbG9hZGVkIGludG8gdGhlIG9iamVjdC5cbiAgICpcbiAgICogICBUd28gY2FsbGJhY2tzIGNhbiBiZSBwcm92aWRlZCB0byB0aGUgYHRoZW5gIG1ldGhvZCBvbiB0aGUgcmV0dXJuZWQgcHJvbWlzZS5cbiAgICogICBUaGUgZmlyc3QgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLCBhbmQgdGhlIHNlY29uZFxuICAgKiAgIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKiAgIEBjYWxsYmFjayBmdWxmaWxsZWRDYWxsYmFjayBmdW5jdGlvbigpXG4gICAqICAgICBDYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLiBXaGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLCBpdFxuICAgKiAgICAgbWVhbnMgZWl0aGVyIGNyZWRlbnRpYWxzIGRvIG5vdCBuZWVkIHRvIGJlIHJlZnJlc2hlZCBvciByZWZyZXNoZWRcbiAgICogICAgIGNyZWRlbnRpYWxzIGluZm9ybWF0aW9uIGhhcyBiZWVuIGxvYWRlZCBpbnRvIHRoZSBvYmplY3QgKGFzIHRoZVxuICAgKiAgICAgYGFjY2Vzc0tleUlkYCwgYHNlY3JldEFjY2Vzc0tleWAsIGFuZCBgc2Vzc2lvblRva2VuYCBwcm9wZXJ0aWVzKS5cbiAgICogICBAY2FsbGJhY2sgcmVqZWN0ZWRDYWxsYmFjayBmdW5jdGlvbihlcnIpXG4gICAqICAgICBDYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAqICAgICBAcGFyYW0gZXJyIFtFcnJvcl0gaWYgYW4gZXJyb3Igb2NjdXJyZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBmaWxsZWRcbiAgICogICBAcmV0dXJuIFtQcm9taXNlXSBBIHByb21pc2UgdGhhdCByZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiB0aGUgYGdldGAgY2FsbC5cbiAgICogICBAZXhhbXBsZSBDYWxsaW5nIHRoZSBgZ2V0UHJvbWlzZWAgbWV0aG9kLlxuICAgKiAgICAgdmFyIHByb21pc2UgPSBjcmVkUHJvdmlkZXIuZ2V0UHJvbWlzZSgpO1xuICAgKiAgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeyAuLi4gfSwgZnVuY3Rpb24oZXJyKSB7IC4uLiB9KTtcbiAgICovXG5cbiAgLyoqXG4gICAqIEAhbWV0aG9kICByZWZyZXNoUHJvbWlzZSgpXG4gICAqICAgUmV0dXJucyBhICd0aGVuYWJsZScgcHJvbWlzZS5cbiAgICogICBSZWZyZXNoZXMgdGhlIGNyZWRlbnRpYWxzLiBVc2VycyBzaG91bGQgY2FsbCB7Z2V0fSBiZWZvcmUgYXR0ZW1wdGluZ1xuICAgKiAgIHRvIGZvcmNpYmx5IHJlZnJlc2ggY3JlZGVudGlhbHMuXG4gICAqXG4gICAqICAgVHdvIGNhbGxiYWNrcyBjYW4gYmUgcHJvdmlkZWQgdG8gdGhlIGB0aGVuYCBtZXRob2Qgb24gdGhlIHJldHVybmVkIHByb21pc2UuXG4gICAqICAgVGhlIGZpcnN0IGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIGZ1bGZpbGxlZCwgYW5kIHRoZSBzZWNvbmRcbiAgICogICBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICogICBAY2FsbGJhY2sgZnVsZmlsbGVkQ2FsbGJhY2sgZnVuY3Rpb24oKVxuICAgKiAgICAgQ2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIGZ1bGZpbGxlZC4gV2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZCwgaXRcbiAgICogICAgIG1lYW5zIHJlZnJlc2hlZCBjcmVkZW50aWFscyBpbmZvcm1hdGlvbiBoYXMgYmVlbiBsb2FkZWQgaW50byB0aGUgb2JqZWN0XG4gICAqICAgICAoYXMgdGhlIGBhY2Nlc3NLZXlJZGAsIGBzZWNyZXRBY2Nlc3NLZXlgLCBhbmQgYHNlc3Npb25Ub2tlbmAgcHJvcGVydGllcykuXG4gICAqICAgQGNhbGxiYWNrIHJlamVjdGVkQ2FsbGJhY2sgZnVuY3Rpb24oZXJyKVxuICAgKiAgICAgQ2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKiAgICAgQHBhcmFtIGVyciBbRXJyb3JdIGlmIGFuIGVycm9yIG9jY3VycmVkLCB0aGlzIHZhbHVlIHdpbGwgYmUgZmlsbGVkXG4gICAqICAgQHJldHVybiBbUHJvbWlzZV0gQSBwcm9taXNlIHRoYXQgcmVwcmVzZW50cyB0aGUgc3RhdGUgb2YgdGhlIGByZWZyZXNoYCBjYWxsLlxuICAgKiAgIEBleGFtcGxlIENhbGxpbmcgdGhlIGByZWZyZXNoUHJvbWlzZWAgbWV0aG9kLlxuICAgKiAgICAgdmFyIHByb21pc2UgPSBjcmVkUHJvdmlkZXIucmVmcmVzaFByb21pc2UoKTtcbiAgICogICAgIHByb21pc2UudGhlbihmdW5jdGlvbigpIHsgLi4uIH0sIGZ1bmN0aW9uKGVycikgeyAuLi4gfSk7XG4gICAqL1xuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIGNyZWRlbnRpYWxzLiBVc2VycyBzaG91bGQgY2FsbCB7Z2V0fSBiZWZvcmUgYXR0ZW1wdGluZ1xuICAgKiB0byBmb3JjaWJseSByZWZyZXNoIGNyZWRlbnRpYWxzLlxuICAgKlxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyKVxuICAgKiAgIFdoZW4gdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCBubyBlcnJvciwgaXQgbWVhbnMgcmVmcmVzaGVkXG4gICAqICAgY3JlZGVudGlhbHMgaW5mb3JtYXRpb24gaGFzIGJlZW4gbG9hZGVkIGludG8gdGhlIG9iamVjdCAoYXMgdGhlXG4gICAqICAgYGFjY2Vzc0tleUlkYCwgYHNlY3JldEFjY2Vzc0tleWAsIGFuZCBgc2Vzc2lvblRva2VuYCBwcm9wZXJ0aWVzKS5cbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gaWYgYW4gZXJyb3Igb2NjdXJyZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBmaWxsZWRcbiAgICogQG5vdGUgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcyBjbGFzcyB0byByZXNldCB0aGVcbiAgICogICB7YWNjZXNzS2V5SWR9LCB7c2VjcmV0QWNjZXNzS2V5fSBhbmQgb3B0aW9uYWwge3Nlc3Npb25Ub2tlbn1cbiAgICogICBvbiB0aGUgY3JlZGVudGlhbHMgb2JqZWN0IGFuZCB0aGVuIGNhbGwgdGhlIGNhbGxiYWNrIHdpdGhcbiAgICogICBhbnkgZXJyb3IgaW5mb3JtYXRpb24uXG4gICAqIEBzZWUgZ2V0XG4gICAqL1xuICByZWZyZXNoOiBmdW5jdGlvbiByZWZyZXNoKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5leHBpcmVkID0gZmFsc2U7XG4gICAgY2FsbGJhY2soKTtcbiAgfVxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5DcmVkZW50aWFscy5hZGRQcm9taXNlc1RvQ2xhc3MgPSBmdW5jdGlvbiBhZGRQcm9taXNlc1RvQ2xhc3MoUHJvbWlzZURlcGVuZGVuY3kpIHtcbiAgdGhpcy5wcm90b3R5cGUuZ2V0UHJvbWlzZSA9IEFXUy51dGlsLnByb21pc2lmeU1ldGhvZCgnZ2V0JywgUHJvbWlzZURlcGVuZGVuY3kpO1xuICB0aGlzLnByb3RvdHlwZS5yZWZyZXNoUHJvbWlzZSA9IEFXUy51dGlsLnByb21pc2lmeU1ldGhvZCgncmVmcmVzaCcsIFByb21pc2VEZXBlbmRlbmN5KTtcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5DcmVkZW50aWFscy5kZWxldGVQcm9taXNlc0Zyb21DbGFzcyA9IGZ1bmN0aW9uIGRlbGV0ZVByb21pc2VzRnJvbUNsYXNzKCkge1xuICBkZWxldGUgdGhpcy5wcm90b3R5cGUuZ2V0UHJvbWlzZTtcbiAgZGVsZXRlIHRoaXMucHJvdG90eXBlLnJlZnJlc2hQcm9taXNlO1xufTtcblxuQVdTLnV0aWwuYWRkUHJvbWlzZXMoQVdTLkNyZWRlbnRpYWxzKTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgQ29nbml0b0lkZW50aXR5ID0gcmVxdWlyZSgnLi4vLi4vY2xpZW50cy9jb2duaXRvaWRlbnRpdHknKTtcbnZhciBTVFMgPSByZXF1aXJlKCcuLi8uLi9jbGllbnRzL3N0cycpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgY3JlZGVudGlhbHMgcmV0cmlldmVkIGZyb20gU1RTIFdlYiBJZGVudGl0eSBGZWRlcmF0aW9uIHVzaW5nXG4gKiB0aGUgQW1hem9uIENvZ25pdG8gSWRlbnRpdHkgc2VydmljZS5cbiAqXG4gKiBCeSBkZWZhdWx0IHRoaXMgcHJvdmlkZXIgZ2V0cyBjcmVkZW50aWFscyB1c2luZyB0aGVcbiAqIHtBV1MuQ29nbml0b0lkZW50aXR5LmdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHl9IHNlcnZpY2Ugb3BlcmF0aW9uLCB3aGljaFxuICogcmVxdWlyZXMgZWl0aGVyIGFuIGBJZGVudGl0eUlkYCBvciBhbiBgSWRlbnRpdHlQb29sSWRgIChBbWF6b24gQ29nbml0b1xuICogSWRlbnRpdHkgUG9vbCBJRCksIHdoaWNoIGlzIHVzZWQgdG8gY2FsbCB7QVdTLkNvZ25pdG9JZGVudGl0eS5nZXRJZH0gdG9cbiAqIG9idGFpbiBhbiBgSWRlbnRpdHlJZGAuIElmIHRoZSBpZGVudGl0eSBvciBpZGVudGl0eSBwb29sIGlzIG5vdCBjb25maWd1cmVkIGluXG4gKiB0aGUgQW1hem9uIENvZ25pdG8gQ29uc29sZSB0byB1c2UgSUFNIHJvbGVzIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zLFxuICogdGhlbiBhZGRpdGlvbmFsbHkgYSBgUm9sZUFybmAgaXMgcmVxdWlyZWQgY29udGFpbmluZyB0aGUgQVJOIG9mIHRoZSBJQU0gdHJ1c3RcbiAqIHBvbGljeSBmb3IgdGhlIEFtYXpvbiBDb2duaXRvIHJvbGUgdGhhdCB0aGUgdXNlciB3aWxsIGxvZyBpbnRvLiBJZiBhIGBSb2xlQXJuYFxuICogaXMgcHJvdmlkZWQsIHRoZW4gdGhpcyBwcm92aWRlciBnZXRzIGNyZWRlbnRpYWxzIHVzaW5nIHRoZVxuICoge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX0gc2VydmljZSBvcGVyYXRpb24sIGFmdGVyIGZpcnN0IGdldHRpbmcgYW5cbiAqIE9wZW4gSUQgdG9rZW4gZnJvbSB7QVdTLkNvZ25pdG9JZGVudGl0eS5nZXRPcGVuSWRUb2tlbn0uXG4gKlxuICogSW4gYWRkaXRpb24sIGlmIHRoaXMgY3JlZGVudGlhbCBwcm92aWRlciBpcyB1c2VkIHRvIHByb3ZpZGUgYXV0aGVudGljYXRlZFxuICogbG9naW4sIHRoZSBgTG9naW5zYCBtYXAgbWF5IGJlIHNldCB0byB0aGUgdG9rZW5zIHByb3ZpZGVkIGJ5IHRoZSByZXNwZWN0aXZlXG4gKiBpZGVudGl0eSBwcm92aWRlcnMuIFNlZSB7Y29uc3RydWN0b3J9IGZvciBhbiBleGFtcGxlIG9uIGNyZWF0aW5nIGEgY3JlZGVudGlhbHNcbiAqIG9iamVjdCB3aXRoIHByb3BlciBwcm9wZXJ0eSB2YWx1ZXMuXG4gKlxuICogIyMgUmVmcmVzaGluZyBDcmVkZW50aWFscyBmcm9tIElkZW50aXR5IFNlcnZpY2VcbiAqXG4gKiBJbiBhZGRpdGlvbiB0byBBV1MgY3JlZGVudGlhbHMgZXhwaXJpbmcgYWZ0ZXIgYSBnaXZlbiBhbW91bnQgb2YgdGltZSwgdGhlXG4gKiBsb2dpbiB0b2tlbiBmcm9tIHRoZSBpZGVudGl0eSBwcm92aWRlciB3aWxsIGFsc28gZXhwaXJlLiBPbmNlIHRoaXMgdG9rZW5cbiAqIGV4cGlyZXMsIGl0IHdpbGwgbm90IGJlIHVzYWJsZSB0byByZWZyZXNoIEFXUyBjcmVkZW50aWFscywgYW5kIGFub3RoZXJcbiAqIHRva2VuIHdpbGwgYmUgbmVlZGVkLiBUaGUgU0RLIGRvZXMgbm90IG1hbmFnZSByZWZyZXNoaW5nIG9mIHRoZSB0b2tlbiB2YWx1ZSxcbiAqIGJ1dCB0aGlzIGNhbiBiZSBkb25lIHRocm91Z2ggYSBcInJlZnJlc2ggdG9rZW5cIiBzdXBwb3J0ZWQgYnkgbW9zdCBpZGVudGl0eVxuICogcHJvdmlkZXJzLiBDb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgZm9yIHJlZnJlc2hpbmdcbiAqIHRva2Vucy4gT25jZSB0aGUgcmVmcmVzaGVkIHRva2VuIGlzIGFjcXVpcmVkLCB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSB0byB1cGRhdGVcbiAqIHRoaXMgbmV3IHRva2VuIGluIHRoZSBjcmVkZW50aWFscyBvYmplY3QncyB7cGFyYW1zfSBwcm9wZXJ0eS4gVGhlIGZvbGxvd2luZ1xuICogY29kZSB3aWxsIHVwZGF0ZSB0aGUgV2ViSWRlbnRpdHlUb2tlbiwgYXNzdW1pbmcgeW91IGhhdmUgcmV0cmlldmVkIGFuIHVwZGF0ZWRcbiAqIHRva2VuIGZyb20gdGhlIGlkZW50aXR5IHByb3ZpZGVyOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIEFXUy5jb25maWcuY3JlZGVudGlhbHMucGFyYW1zLkxvZ2luc1snZ3JhcGguZmFjZWJvb2suY29tJ10gPSB1cGRhdGVkVG9rZW47XG4gKiBgYGBcbiAqXG4gKiBGdXR1cmUgY2FsbHMgdG8gYGNyZWRlbnRpYWxzLnJlZnJlc2goKWAgd2lsbCBub3cgdXNlIHRoZSBuZXcgdG9rZW4uXG4gKlxuICogQCFhdHRyaWJ1dGUgcGFyYW1zXG4gKiAgIEByZXR1cm4gW21hcF0gdGhlIG1hcCBvZiBwYXJhbXMgcGFzc2VkIHRvXG4gKiAgICAge0FXUy5Db2duaXRvSWRlbnRpdHkuZ2V0SWR9LFxuICogICAgIHtBV1MuQ29nbml0b0lkZW50aXR5LmdldE9wZW5JZFRva2VufSwgYW5kXG4gKiAgICAge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX0uIFRvIHVwZGF0ZSB0aGUgdG9rZW4sIHNldCB0aGVcbiAqICAgICBgcGFyYW1zLldlYklkZW50aXR5VG9rZW5gIHByb3BlcnR5LlxuICogQCFhdHRyaWJ1dGUgZGF0YVxuICogICBAcmV0dXJuIFttYXBdIHRoZSByYXcgZGF0YSByZXNwb25zZSBmcm9tIHRoZSBjYWxsIHRvXG4gKiAgICAge0FXUy5Db2duaXRvSWRlbnRpdHkuZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eX0sIG9yXG4gKiAgICAge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX0uIFVzZSB0aGlzIGlmIHlvdSB3YW50IHRvIGdldFxuICogICAgIGFjY2VzcyB0byBvdGhlciBwcm9wZXJ0aWVzIGZyb20gdGhlIHJlc3BvbnNlLlxuICogQCFhdHRyaWJ1dGUgaWRlbnRpdHlJZFxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSBDb2duaXRvIElEIHJldHVybmVkIGJ5IHRoZSBsYXN0IGNhbGwgdG9cbiAqICAgICB7QVdTLkNvZ25pdG9JZGVudGl0eS5nZXRPcGVuSWRUb2tlbn0uIFRoaXMgSUQgcmVwcmVzZW50cyB0aGUgYWN0dWFsXG4gKiAgICAgZmluYWwgcmVzb2x2ZWQgaWRlbnRpdHkgSUQgZnJvbSBBbWF6b24gQ29nbml0by5cbiAqL1xuQVdTLkNvZ25pdG9JZGVudGl0eUNyZWRlbnRpYWxzID0gQVdTLnV0aWwuaW5oZXJpdChBV1MuQ3JlZGVudGlhbHMsIHtcbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbG9jYWxTdG9yYWdlS2V5OiB7XG4gICAgaWQ6ICdhd3MuY29nbml0by5pZGVudGl0eS1pZC4nLFxuICAgIHByb3ZpZGVyczogJ2F3cy5jb2duaXRvLmlkZW50aXR5LXByb3ZpZGVycy4nXG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY3JlZGVudGlhbHMgb2JqZWN0LlxuICAgKiBAZXhhbXBsZSBDcmVhdGluZyBhIG5ldyBjcmVkZW50aWFscyBvYmplY3RcbiAgICogICBBV1MuY29uZmlnLmNyZWRlbnRpYWxzID0gbmV3IEFXUy5Db2duaXRvSWRlbnRpdHlDcmVkZW50aWFscyh7XG4gICAqXG4gICAqICAgICAvLyBlaXRoZXIgSWRlbnRpdHlQb29sSWQgb3IgSWRlbnRpdHlJZCBpcyByZXF1aXJlZFxuICAgKiAgICAgLy8gU2VlIHRoZSBJZGVudGl0eVBvb2xJZCBwYXJhbSBmb3IgQVdTLkNvZ25pdG9JZGVudGl0eS5nZXRJRCAobGlua2VkIGJlbG93KVxuICAgKiAgICAgLy8gU2VlIHRoZSBJZGVudGl0eUlkIHBhcmFtIGZvciBBV1MuQ29nbml0b0lkZW50aXR5LmdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHlcbiAgICogICAgIC8vIG9yIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0T3BlbklkVG9rZW4gKGxpbmtlZCBiZWxvdylcbiAgICogICAgIElkZW50aXR5UG9vbElkOiAndXMtZWFzdC0xOjE2OTllYmMwLTc5MDAtNDA5OS1iOTEwLTJkZjk0ZjUyYTAzMCcsXG4gICAqICAgICBJZGVudGl0eUlkOiAndXMtZWFzdC0xOjEyOGQwYTc0LWM4MmYtNDU1My05MTZkLTkwMDUzZTRhOGIwZidcbiAgICpcbiAgICogICAgIC8vIG9wdGlvbmFsLCBvbmx5IG5lY2Vzc2FyeSB3aGVuIHRoZSBpZGVudGl0eSBwb29sIGlzIG5vdCBjb25maWd1cmVkXG4gICAqICAgICAvLyB0byB1c2UgSUFNIHJvbGVzIGluIHRoZSBBbWF6b24gQ29nbml0byBDb25zb2xlXG4gICAqICAgICAvLyBTZWUgdGhlIFJvbGVBcm4gcGFyYW0gZm9yIEFXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSAobGlua2VkIGJlbG93KVxuICAgKiAgICAgUm9sZUFybjogJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwOnJvbGUvTVlBUFAtQ29nbml0b0lkZW50aXR5JyxcbiAgICpcbiAgICogICAgIC8vIG9wdGlvbmFsIHRva2VucywgdXNlZCBmb3IgYXV0aGVudGljYXRlZCBsb2dpblxuICAgKiAgICAgLy8gU2VlIHRoZSBMb2dpbnMgcGFyYW0gZm9yIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0SUQgKGxpbmtlZCBiZWxvdylcbiAgICogICAgIExvZ2luczoge1xuICAgKiAgICAgICAnZ3JhcGguZmFjZWJvb2suY29tJzogJ0ZCVE9LRU4nLFxuICAgKiAgICAgICAnd3d3LmFtYXpvbi5jb20nOiAnQU1BWk9OVE9LRU4nLFxuICAgKiAgICAgICAnYWNjb3VudHMuZ29vZ2xlLmNvbSc6ICdHT09HTEVUT0tFTicsXG4gICAqICAgICAgICdhcGkudHdpdHRlci5jb20nOiAnVFdJVFRFUlRPS0VOJyxcbiAgICogICAgICAgJ3d3dy5kaWdpdHMuY29tJzogJ0RJR0lUU1RPS0VOJ1xuICAgKiAgICAgfSxcbiAgICpcbiAgICogICAgIC8vIG9wdGlvbmFsIG5hbWUsIGRlZmF1bHRzIHRvIHdlYi1pZGVudGl0eVxuICAgKiAgICAgLy8gU2VlIHRoZSBSb2xlU2Vzc2lvbk5hbWUgcGFyYW0gZm9yIEFXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eSAobGlua2VkIGJlbG93KVxuICAgKiAgICAgUm9sZVNlc3Npb25OYW1lOiAnd2ViJyxcbiAgICpcbiAgICogICAgIC8vIG9wdGlvbmFsLCBvbmx5IG5lY2Vzc2FyeSB3aGVuIGFwcGxpY2F0aW9uIHJ1bnMgaW4gYSBicm93c2VyXG4gICAqICAgICAvLyBhbmQgbXVsdGlwbGUgdXNlcnMgYXJlIHNpZ25lZCBpbiBhdCBvbmNlLCB1c2VkIGZvciBjYWNoaW5nXG4gICAqICAgICBMb2dpbklkOiAnZXhhbXBsZUBnbWFpbC5jb20nXG4gICAqXG4gICAqICAgfSwge1xuICAgKiAgICAgIC8vIG9wdGlvbmFsbHkgcHJvdmlkZSBjb25maWd1cmF0aW9uIHRvIGFwcGx5IHRvIHRoZSB1bmRlcmx5aW5nIHNlcnZpY2UgY2xpZW50c1xuICAgKiAgICAgIC8vIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IHByb3ZpZGVkLCB0aGVuIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBwdWxsZWQgZnJvbSBBV1MuY29uZmlnXG4gICAqXG4gICAqICAgICAgLy8gcmVnaW9uIHNob3VsZCBtYXRjaCB0aGUgcmVnaW9uIHlvdXIgaWRlbnRpdHkgcG9vbCBpcyBsb2NhdGVkIGluXG4gICAqICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICpcbiAgICogICAgICAvLyBzcGVjaWZ5IHRpbWVvdXQgb3B0aW9uc1xuICAgKiAgICAgIGh0dHBPcHRpb25zOiB7XG4gICAqICAgICAgICB0aW1lb3V0OiAxMDBcbiAgICogICAgICB9XG4gICAqICAgfSk7XG4gICAqIEBzZWUgQVdTLkNvZ25pdG9JZGVudGl0eS5nZXRJZFxuICAgKiBAc2VlIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eVxuICAgKiBAc2VlIEFXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVxuICAgKiBAc2VlIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0T3BlbklkVG9rZW5cbiAgICogQHNlZSBBV1MuQ29uZmlnXG4gICAqIEBub3RlIElmIGEgcmVnaW9uIGlzIG5vdCBwcm92aWRlZCBpbiB0aGUgZ2xvYmFsIEFXUy5jb25maWcsIG9yXG4gICAqICAgc3BlY2lmaWVkIGluIHRoZSBgY2xpZW50Q29uZmlnYCB0byB0aGUgQ29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHNcbiAgICogICBjb25zdHJ1Y3RvciwgeW91IG1heSBlbmNvdW50ZXIgYSAnTWlzc2luZyBjcmVkZW50aWFscyBpbiBjb25maWcnIGVycm9yXG4gICAqICAgd2hlbiBjYWxsaW5nIG1ha2luZyBhIHNlcnZpY2UgY2FsbC5cbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBDb2duaXRvSWRlbnRpdHlDcmVkZW50aWFscyhwYXJhbXMsIGNsaWVudENvbmZpZykge1xuICAgIEFXUy5DcmVkZW50aWFscy5jYWxsKHRoaXMpO1xuICAgIHRoaXMuZXhwaXJlZCA9IHRydWU7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICB0aGlzLl9pZGVudGl0eUlkID0gbnVsbDtcbiAgICB0aGlzLl9jbGllbnRDb25maWcgPSBBV1MudXRpbC5jb3B5KGNsaWVudENvbmZpZyB8fCB7fSk7XG4gICAgdGhpcy5sb2FkQ2FjaGVkSWQoKTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdpZGVudGl0eUlkJywge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5sb2FkQ2FjaGVkSWQoKTtcbiAgICAgICAgcmV0dXJuIHNlbGYuX2lkZW50aXR5SWQgfHwgc2VsZi5wYXJhbXMuSWRlbnRpdHlJZDtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uKGlkZW50aXR5SWQpIHtcbiAgICAgICAgc2VsZi5faWRlbnRpdHlJZCA9IGlkZW50aXR5SWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBjcmVkZW50aWFscyB1c2luZyB7QVdTLkNvZ25pdG9JZGVudGl0eS5nZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5fSxcbiAgICogb3Ige0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX0uXG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIpXG4gICAqICAgQ2FsbGVkIHdoZW4gdGhlIFNUUyBzZXJ2aWNlIHJlc3BvbmRzIChvciBmYWlscykuIFdoZW5cbiAgICogICB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIG5vIGVycm9yLCBpdCBtZWFucyB0aGF0IHRoZSBjcmVkZW50aWFsc1xuICAgKiAgIGluZm9ybWF0aW9uIGhhcyBiZWVuIGxvYWRlZCBpbnRvIHRoZSBvYmplY3QgKGFzIHRoZSBgYWNjZXNzS2V5SWRgLFxuICAgKiAgIGBzZWNyZXRBY2Nlc3NLZXlgLCBhbmQgYHNlc3Npb25Ub2tlbmAgcHJvcGVydGllcykuXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIGlmIGFuIGVycm9yIG9jY3VycmVkLCB0aGlzIHZhbHVlIHdpbGwgYmUgZmlsbGVkXG4gICAqIEBzZWUgQVdTLkNyZWRlbnRpYWxzLmdldFxuICAgKi9cbiAgcmVmcmVzaDogZnVuY3Rpb24gcmVmcmVzaChjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLmNyZWF0ZUNsaWVudHMoKTtcbiAgICBzZWxmLmRhdGEgPSBudWxsO1xuICAgIHNlbGYuX2lkZW50aXR5SWQgPSBudWxsO1xuICAgIHNlbGYuZ2V0SWQoZnVuY3Rpb24oZXJyKSB7XG4gICAgICBpZiAoIWVycikge1xuICAgICAgICBpZiAoIXNlbGYucGFyYW1zLlJvbGVBcm4pIHtcbiAgICAgICAgICBzZWxmLmdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHkoY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGYuZ2V0Q3JlZGVudGlhbHNGcm9tU1RTKGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZi5jbGVhcklkT25Ob3RBdXRob3JpemVkKGVycik7XG4gICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgY2FjaGVkIENvZ25pdG8gSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50bHkgY29uZmlndXJlZFxuICAgKiBpZGVudGl0eSBwb29sIElELiBVc2UgdGhpcyB0byBtYW51YWxseSBpbnZhbGlkYXRlIHlvdXIgY2FjaGUgaWZcbiAgICogdGhlIGlkZW50aXR5IHBvb2wgSUQgd2FzIGRlbGV0ZWQuXG4gICAqL1xuICBjbGVhckNhY2hlZElkOiBmdW5jdGlvbiBjbGVhckNhY2hlKCkge1xuICAgIHRoaXMuX2lkZW50aXR5SWQgPSBudWxsO1xuICAgIGRlbGV0ZSB0aGlzLnBhcmFtcy5JZGVudGl0eUlkO1xuXG4gICAgdmFyIHBvb2xJZCA9IHRoaXMucGFyYW1zLklkZW50aXR5UG9vbElkO1xuICAgIHZhciBsb2dpbklkID0gdGhpcy5wYXJhbXMuTG9naW5JZCB8fCAnJztcbiAgICBkZWxldGUgdGhpcy5zdG9yYWdlW3RoaXMubG9jYWxTdG9yYWdlS2V5LmlkICsgcG9vbElkICsgbG9naW5JZF07XG4gICAgZGVsZXRlIHRoaXMuc3RvcmFnZVt0aGlzLmxvY2FsU3RvcmFnZUtleS5wcm92aWRlcnMgKyBwb29sSWQgKyBsb2dpbklkXTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjbGVhcklkT25Ob3RBdXRob3JpemVkOiBmdW5jdGlvbiBjbGVhcklkT25Ob3RBdXRob3JpemVkKGVycikge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBpZiAoZXJyLmNvZGUgPT0gJ05vdEF1dGhvcml6ZWRFeGNlcHRpb24nKSB7XG4gICAgICBzZWxmLmNsZWFyQ2FjaGVkSWQoKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIENvZ25pdG8gSUQsIGxvYWRpbmcgZnJvbSBjYWNoZSBpZiBpdCB3YXMgYWxyZWFkeSByZXRyaWV2ZWRcbiAgICogb24gdGhpcyBkZXZpY2UuXG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIsIGlkZW50aXR5SWQpXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3IsIG51bGxdIGFuIGVycm9yIG9iamVjdCBpZiB0aGUgY2FsbCBmYWlsZWQgb3IgbnVsbCBpZlxuICAgKiAgICAgaXQgc3VjY2VlZGVkLlxuICAgKiAgIEBwYXJhbSBpZGVudGl0eUlkIFtTdHJpbmcsIG51bGxdIGlmIHN1Y2Nlc3NmdWwsIHRoZSBjYWxsYmFjayB3aWxsIHJldHVyblxuICAgKiAgICAgdGhlIENvZ25pdG8gSUQuXG4gICAqIEBub3RlIElmIG5vdCBsb2FkZWQgZXhwbGljaXRseSwgdGhlIENvZ25pdG8gSUQgaXMgbG9hZGVkIGFuZCBzdG9yZWQgaW5cbiAgICogICBsb2NhbFN0b3JhZ2UgaW4gdGhlIGJyb3dzZXIgZW52aXJvbm1lbnQgb2YgYSBkZXZpY2UuXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0SWQ6IGZ1bmN0aW9uIGdldElkKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmICh0eXBlb2Ygc2VsZi5wYXJhbXMuSWRlbnRpdHlJZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCBzZWxmLnBhcmFtcy5JZGVudGl0eUlkKTtcbiAgICB9XG5cbiAgICBzZWxmLmNvZ25pdG8uZ2V0SWQoZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAgICBpZiAoIWVyciAmJiBkYXRhLklkZW50aXR5SWQpIHtcbiAgICAgICAgc2VsZi5wYXJhbXMuSWRlbnRpdHlJZCA9IGRhdGEuSWRlbnRpdHlJZDtcbiAgICAgICAgY2FsbGJhY2sobnVsbCwgZGF0YS5JZGVudGl0eUlkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBsb2FkQ3JlZGVudGlhbHM6IGZ1bmN0aW9uIGxvYWRDcmVkZW50aWFscyhkYXRhLCBjcmVkZW50aWFscykge1xuICAgIGlmICghZGF0YSB8fCAhY3JlZGVudGlhbHMpIHJldHVybjtcbiAgICBjcmVkZW50aWFscy5leHBpcmVkID0gZmFsc2U7XG4gICAgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgPSBkYXRhLkNyZWRlbnRpYWxzLkFjY2Vzc0tleUlkO1xuICAgIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSA9IGRhdGEuQ3JlZGVudGlhbHMuU2VjcmV0S2V5O1xuICAgIGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbiA9IGRhdGEuQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuO1xuICAgIGNyZWRlbnRpYWxzLmV4cGlyZVRpbWUgPSBkYXRhLkNyZWRlbnRpYWxzLkV4cGlyYXRpb247XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eTogZnVuY3Rpb24gZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eShjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLmNvZ25pdG8uZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eShmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmICghZXJyKSB7XG4gICAgICAgIHNlbGYuY2FjaGVJZChkYXRhKTtcbiAgICAgICAgc2VsZi5kYXRhID0gZGF0YTtcbiAgICAgICAgc2VsZi5sb2FkQ3JlZGVudGlhbHMoc2VsZi5kYXRhLCBzZWxmKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGYuY2xlYXJJZE9uTm90QXV0aG9yaXplZChlcnIpO1xuICAgICAgfVxuICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRDcmVkZW50aWFsc0Zyb21TVFM6IGZ1bmN0aW9uIGdldENyZWRlbnRpYWxzRnJvbVNUUyhjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLmNvZ25pdG8uZ2V0T3BlbklkVG9rZW4oZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAgICBpZiAoIWVycikge1xuICAgICAgICBzZWxmLmNhY2hlSWQoZGF0YSk7XG4gICAgICAgIHNlbGYucGFyYW1zLldlYklkZW50aXR5VG9rZW4gPSBkYXRhLlRva2VuO1xuICAgICAgICBzZWxmLndlYklkZW50aXR5Q3JlZGVudGlhbHMucmVmcmVzaChmdW5jdGlvbih3ZWJFcnIpIHtcbiAgICAgICAgICBpZiAoIXdlYkVycikge1xuICAgICAgICAgICAgc2VsZi5kYXRhID0gc2VsZi53ZWJJZGVudGl0eUNyZWRlbnRpYWxzLmRhdGE7XG4gICAgICAgICAgICBzZWxmLnN0cy5jcmVkZW50aWFsc0Zyb20oc2VsZi5kYXRhLCBzZWxmKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FsbGJhY2sod2ViRXJyKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxmLmNsZWFySWRPbk5vdEF1dGhvcml6ZWQoZXJyKTtcbiAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBsb2FkQ2FjaGVkSWQ6IGZ1bmN0aW9uIGxvYWRDYWNoZWRJZCgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICAvLyBpbiB0aGUgYnJvd3NlciB3ZSBzb3VyY2UgZGVmYXVsdCBJZGVudGl0eUlkIGZyb20gbG9jYWxTdG9yYWdlXG4gICAgaWYgKEFXUy51dGlsLmlzQnJvd3NlcigpICYmICFzZWxmLnBhcmFtcy5JZGVudGl0eUlkKSB7XG4gICAgICB2YXIgaWQgPSBzZWxmLmdldFN0b3JhZ2UoJ2lkJyk7XG4gICAgICBpZiAoaWQgJiYgc2VsZi5wYXJhbXMuTG9naW5zKSB7XG4gICAgICAgIHZhciBhY3R1YWxQcm92aWRlcnMgPSBPYmplY3Qua2V5cyhzZWxmLnBhcmFtcy5Mb2dpbnMpO1xuICAgICAgICB2YXIgY2FjaGVkUHJvdmlkZXJzID1cbiAgICAgICAgICAoc2VsZi5nZXRTdG9yYWdlKCdwcm92aWRlcnMnKSB8fCAnJykuc3BsaXQoJywnKTtcblxuICAgICAgICAvLyBvbmx5IGxvYWQgSUQgaWYgYXQgbGVhc3Qgb25lIHByb3ZpZGVyIHVzZWQgdGhpcyBJRCBiZWZvcmVcbiAgICAgICAgdmFyIGludGVyc2VjdCA9IGNhY2hlZFByb3ZpZGVycy5maWx0ZXIoZnVuY3Rpb24obikge1xuICAgICAgICAgIHJldHVybiBhY3R1YWxQcm92aWRlcnMuaW5kZXhPZihuKSAhPT0gLTE7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaW50ZXJzZWN0Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgIHNlbGYucGFyYW1zLklkZW50aXR5SWQgPSBpZDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpZCkge1xuICAgICAgICBzZWxmLnBhcmFtcy5JZGVudGl0eUlkID0gaWQ7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNyZWF0ZUNsaWVudHM6IGZ1bmN0aW9uKCkge1xuICAgIHZhciBjbGllbnRDb25maWcgPSB0aGlzLl9jbGllbnRDb25maWc7XG4gICAgdGhpcy53ZWJJZGVudGl0eUNyZWRlbnRpYWxzID0gdGhpcy53ZWJJZGVudGl0eUNyZWRlbnRpYWxzIHx8XG4gICAgICBuZXcgQVdTLldlYklkZW50aXR5Q3JlZGVudGlhbHModGhpcy5wYXJhbXMsIGNsaWVudENvbmZpZyk7XG4gICAgaWYgKCF0aGlzLmNvZ25pdG8pIHtcbiAgICAgIHZhciBjb2duaXRvQ29uZmlnID0gQVdTLnV0aWwubWVyZ2Uoe30sIGNsaWVudENvbmZpZyk7XG4gICAgICBjb2duaXRvQ29uZmlnLnBhcmFtcyA9IHRoaXMucGFyYW1zO1xuICAgICAgdGhpcy5jb2duaXRvID0gbmV3IENvZ25pdG9JZGVudGl0eShjb2duaXRvQ29uZmlnKTtcbiAgICB9XG4gICAgdGhpcy5zdHMgPSB0aGlzLnN0cyB8fCBuZXcgU1RTKGNsaWVudENvbmZpZyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY2FjaGVJZDogZnVuY3Rpb24gY2FjaGVJZChkYXRhKSB7XG4gICAgdGhpcy5faWRlbnRpdHlJZCA9IGRhdGEuSWRlbnRpdHlJZDtcbiAgICB0aGlzLnBhcmFtcy5JZGVudGl0eUlkID0gdGhpcy5faWRlbnRpdHlJZDtcblxuICAgIC8vIGNhY2hlIHRoaXMgSWRlbnRpdHlJZCBpbiBicm93c2VyIGxvY2FsU3RvcmFnZSBpZiBwb3NzaWJsZVxuICAgIGlmIChBV1MudXRpbC5pc0Jyb3dzZXIoKSkge1xuICAgICAgdGhpcy5zZXRTdG9yYWdlKCdpZCcsIGRhdGEuSWRlbnRpdHlJZCk7XG5cbiAgICAgIGlmICh0aGlzLnBhcmFtcy5Mb2dpbnMpIHtcbiAgICAgICAgdGhpcy5zZXRTdG9yYWdlKCdwcm92aWRlcnMnLCBPYmplY3Qua2V5cyh0aGlzLnBhcmFtcy5Mb2dpbnMpLmpvaW4oJywnKSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGdldFN0b3JhZ2U6IGZ1bmN0aW9uIGdldFN0b3JhZ2Uoa2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVt0aGlzLmxvY2FsU3RvcmFnZUtleVtrZXldICsgdGhpcy5wYXJhbXMuSWRlbnRpdHlQb29sSWQgKyAodGhpcy5wYXJhbXMuTG9naW5JZCB8fCAnJyldO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldFN0b3JhZ2U6IGZ1bmN0aW9uIHNldFN0b3JhZ2Uoa2V5LCB2YWwpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zdG9yYWdlW3RoaXMubG9jYWxTdG9yYWdlS2V5W2tleV0gKyB0aGlzLnBhcmFtcy5JZGVudGl0eVBvb2xJZCArICh0aGlzLnBhcmFtcy5Mb2dpbklkIHx8ICcnKV0gPSB2YWw7XG4gICAgfSBjYXRjaCAoXykge31cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzdG9yYWdlOiAoZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBzdG9yYWdlID0gQVdTLnV0aWwuaXNCcm93c2VyKCkgJiYgd2luZG93LmxvY2FsU3RvcmFnZSAhPT0gbnVsbCAmJiB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ29iamVjdCcgP1xuICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UgOiB7fTtcblxuICAgICAgLy8gVGVzdCBzZXQvcmVtb3ZlIHdoaWNoIHdvdWxkIHRocm93IGFuIGVycm9yIGluIFNhZmFyaSdzIHByaXZhdGUgYnJvd3NpbmdcbiAgICAgIHN0b3JhZ2VbJ2F3cy50ZXN0LXN0b3JhZ2UnXSA9ICdmb29iYXInO1xuICAgICAgZGVsZXRlIHN0b3JhZ2VbJ2F3cy50ZXN0LXN0b3JhZ2UnXTtcblxuICAgICAgcmV0dXJuIHN0b3JhZ2U7XG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfSkoKVxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjcmVkZW50aWFsIHByb3ZpZGVyIGNoYWluIHRoYXQgc2VhcmNoZXMgZm9yIEFXUyBjcmVkZW50aWFsc1xuICogaW4gYSBsaXN0IG9mIGNyZWRlbnRpYWwgcHJvdmlkZXJzIHNwZWNpZmllZCBieSB0aGUge3Byb3ZpZGVyc30gcHJvcGVydHkuXG4gKlxuICogQnkgZGVmYXVsdCwgdGhlIGNoYWluIHdpbGwgdXNlIHRoZSB7ZGVmYXVsdFByb3ZpZGVyc30gdG8gcmVzb2x2ZSBjcmVkZW50aWFscy5cbiAqIFRoZXNlIHByb3ZpZGVycyB3aWxsIGxvb2sgaW4gdGhlIGVudmlyb25tZW50IHVzaW5nIHRoZVxuICoge0FXUy5FbnZpcm9ubWVudENyZWRlbnRpYWxzfSBjbGFzcyB3aXRoIHRoZSAnQVdTJyBhbmQgJ0FNQVpPTicgcHJlZml4ZXMuXG4gKlxuICogIyMgU2V0dGluZyBQcm92aWRlcnNcbiAqXG4gKiBFYWNoIHByb3ZpZGVyIGluIHRoZSB7cHJvdmlkZXJzfSBsaXN0IHNob3VsZCBiZSBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJuc1xuICogYSB7QVdTLkNyZWRlbnRpYWxzfSBvYmplY3QsIG9yIGEgaGFyZGNvZGVkIGNyZWRlbnRpYWxzIG9iamVjdC4gVGhlIGZ1bmN0aW9uXG4gKiBmb3JtIGFsbG93cyBmb3IgZGVsYXllZCBleGVjdXRpb24gb2YgdGhlIGNyZWRlbnRpYWwgY29uc3RydWN0aW9uLlxuICpcbiAqICMjIFJlc29sdmluZyBDcmVkZW50aWFscyBmcm9tIGEgQ2hhaW5cbiAqXG4gKiBDYWxsIHtyZXNvbHZlfSB0byByZXR1cm4gdGhlIGZpcnN0IHZhbGlkIGNyZWRlbnRpYWwgb2JqZWN0IHRoYXQgY2FuIGJlXG4gKiBsb2FkZWQgYnkgdGhlIHByb3ZpZGVyIGNoYWluLlxuICpcbiAqIEZvciBleGFtcGxlLCB0byByZXNvbHZlIGEgY2hhaW4gd2l0aCBhIGN1c3RvbSBwcm92aWRlciB0aGF0IGNoZWNrcyBhIGZpbGVcbiAqIG9uIGRpc2sgYWZ0ZXIgdGhlIHNldCBvZiB7ZGVmYXVsdFByb3ZpZGVyc306XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogdmFyIGRpc2tQcm92aWRlciA9IG5ldyBBV1MuRmlsZVN5c3RlbUNyZWRlbnRpYWxzKCcuL2NyZWRzLmpzb24nKTtcbiAqIHZhciBjaGFpbiA9IG5ldyBBV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4oKTtcbiAqIGNoYWluLnByb3ZpZGVycy5wdXNoKGRpc2tQcm92aWRlcik7XG4gKiBjaGFpbi5yZXNvbHZlKCk7XG4gKiBgYGBcbiAqXG4gKiBUaGUgYWJvdmUgY29kZSB3aWxsIHJldHVybiB0aGUgYGRpc2tQcm92aWRlcmAgb2JqZWN0IGlmIHRoZVxuICogZmlsZSBjb250YWlucyBjcmVkZW50aWFscyBhbmQgdGhlIGBkZWZhdWx0UHJvdmlkZXJzYCBkbyBub3QgY29udGFpblxuICogYW55IGNyZWRlbnRpYWwgc2V0dGluZ3MuXG4gKlxuICogQCFhdHRyaWJ1dGUgcHJvdmlkZXJzXG4gKiAgIEByZXR1cm4gW0FycmF5PEFXUy5DcmVkZW50aWFscywgRnVuY3Rpb24+XVxuICogICAgIGEgbGlzdCBvZiBjcmVkZW50aWFscyBvYmplY3RzIG9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBjcmVkZW50aWFsc1xuICogICAgIG9iamVjdHMuIElmIHRoZSBwcm92aWRlciBpcyBhIGZ1bmN0aW9uLCB0aGUgZnVuY3Rpb24gd2lsbCBiZVxuICogICAgIGV4ZWN1dGVkIGxhemlseSB3aGVuIHRoZSBwcm92aWRlciBuZWVkcyB0byBiZSBjaGVja2VkIGZvciB2YWxpZFxuICogICAgIGNyZWRlbnRpYWxzLiBCeSBkZWZhdWx0LCB0aGlzIG9iamVjdCB3aWxsIGJlIHNldCB0byB0aGVcbiAqICAgICB7ZGVmYXVsdFByb3ZpZGVyc30uXG4gKiAgIEBzZWUgZGVmYXVsdFByb3ZpZGVyc1xuICovXG5BV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4gPSBBV1MudXRpbC5pbmhlcml0KEFXUy5DcmVkZW50aWFscywge1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IENyZWRlbnRpYWxQcm92aWRlckNoYWluIHdpdGggYSBkZWZhdWx0IHNldCBvZiBwcm92aWRlcnNcbiAgICogc3BlY2lmaWVkIGJ5IHtkZWZhdWx0UHJvdmlkZXJzfS5cbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBDcmVkZW50aWFsUHJvdmlkZXJDaGFpbihwcm92aWRlcnMpIHtcbiAgICBpZiAocHJvdmlkZXJzKSB7XG4gICAgICB0aGlzLnByb3ZpZGVycyA9IHByb3ZpZGVycztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm92aWRlcnMgPSBBV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4uZGVmYXVsdFByb3ZpZGVycy5zbGljZSgwKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEAhbWV0aG9kICByZXNvbHZlUHJvbWlzZSgpXG4gICAqICAgUmV0dXJucyBhICd0aGVuYWJsZScgcHJvbWlzZS5cbiAgICogICBSZXNvbHZlcyB0aGUgcHJvdmlkZXIgY2hhaW4gYnkgc2VhcmNoaW5nIGZvciB0aGUgZmlyc3Qgc2V0IG9mXG4gICAqICAgY3JlZGVudGlhbHMgaW4ge3Byb3ZpZGVyc30uXG4gICAqXG4gICAqICAgVHdvIGNhbGxiYWNrcyBjYW4gYmUgcHJvdmlkZWQgdG8gdGhlIGB0aGVuYCBtZXRob2Qgb24gdGhlIHJldHVybmVkIHByb21pc2UuXG4gICAqICAgVGhlIGZpcnN0IGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIGZ1bGZpbGxlZCwgYW5kIHRoZSBzZWNvbmRcbiAgICogICBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICogICBAY2FsbGJhY2sgZnVsZmlsbGVkQ2FsbGJhY2sgZnVuY3Rpb24oY3JlZGVudGlhbHMpXG4gICAqICAgICBDYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkIGFuZCB0aGUgcHJvdmlkZXIgcmVzb2x2ZXMgdGhlIGNoYWluXG4gICAqICAgICB0byBhIGNyZWRlbnRpYWxzIG9iamVjdFxuICAgKiAgICAgQHBhcmFtIGNyZWRlbnRpYWxzIFtBV1MuQ3JlZGVudGlhbHNdIHRoZSBjcmVkZW50aWFscyBvYmplY3QgcmVzb2x2ZWRcbiAgICogICAgICAgYnkgdGhlIHByb3ZpZGVyIGNoYWluLlxuICAgKiAgIEBjYWxsYmFjayByZWplY3RlZENhbGxiYWNrIGZ1bmN0aW9uKGVycm9yKVxuICAgKiAgICAgQ2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKiAgICAgQHBhcmFtIGVyciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgcmV0dXJuZWQgaWYgbm8gY3JlZGVudGlhbHMgYXJlIGZvdW5kLlxuICAgKiAgIEByZXR1cm4gW1Byb21pc2VdIEEgcHJvbWlzZSB0aGF0IHJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBgcmVzb2x2ZWAgbWV0aG9kIGNhbGwuXG4gICAqICAgQGV4YW1wbGUgQ2FsbGluZyB0aGUgYHJlc29sdmVQcm9taXNlYCBtZXRob2QuXG4gICAqICAgICB2YXIgcHJvbWlzZSA9IGNoYWluLnJlc29sdmVQcm9taXNlKCk7XG4gICAqICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24oY3JlZGVudGlhbHMpIHsgLi4uIH0sIGZ1bmN0aW9uKGVycikgeyAuLi4gfSk7XG4gICAqL1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgcHJvdmlkZXIgY2hhaW4gYnkgc2VhcmNoaW5nIGZvciB0aGUgZmlyc3Qgc2V0IG9mXG4gICAqIGNyZWRlbnRpYWxzIGluIHtwcm92aWRlcnN9LlxuICAgKlxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyLCBjcmVkZW50aWFscylcbiAgICogICBDYWxsZWQgd2hlbiB0aGUgcHJvdmlkZXIgcmVzb2x2ZXMgdGhlIGNoYWluIHRvIGEgY3JlZGVudGlhbHMgb2JqZWN0XG4gICAqICAgb3IgbnVsbCBpZiBubyBjcmVkZW50aWFscyBjYW4gYmUgZm91bmQuXG4gICAqXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgcmV0dXJuZWQgaWYgbm8gY3JlZGVudGlhbHMgYXJlXG4gICAqICAgICBmb3VuZC5cbiAgICogICBAcGFyYW0gY3JlZGVudGlhbHMgW0FXUy5DcmVkZW50aWFsc10gdGhlIGNyZWRlbnRpYWxzIG9iamVjdCByZXNvbHZlZFxuICAgKiAgICAgYnkgdGhlIHByb3ZpZGVyIGNoYWluLlxuICAgKiBAcmV0dXJuIFtBV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW5dIHRoZSBwcm92aWRlciwgZm9yIGNoYWluaW5nLlxuICAgKi9cbiAgcmVzb2x2ZTogZnVuY3Rpb24gcmVzb2x2ZShjYWxsYmFjaykge1xuICAgIGlmICh0aGlzLnByb3ZpZGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcignTm8gcHJvdmlkZXJzJykpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgcHJvdmlkZXJzID0gdGhpcy5wcm92aWRlcnMuc2xpY2UoMCk7XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlTmV4dChlcnIsIGNyZWRzKSB7XG4gICAgICBpZiAoKCFlcnIgJiYgY3JlZHMpIHx8IGluZGV4ID09PSBwcm92aWRlcnMubGVuZ3RoKSB7XG4gICAgICAgIGNhbGxiYWNrKGVyciwgY3JlZHMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBwcm92aWRlciA9IHByb3ZpZGVyc1tpbmRleCsrXTtcbiAgICAgIGlmICh0eXBlb2YgcHJvdmlkZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY3JlZHMgPSBwcm92aWRlci5jYWxsKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjcmVkcyA9IHByb3ZpZGVyO1xuICAgICAgfVxuXG4gICAgICBpZiAoY3JlZHMuZ2V0KSB7XG4gICAgICAgIGNyZWRzLmdldChmdW5jdGlvbihnZXRFcnIpIHtcbiAgICAgICAgICByZXNvbHZlTmV4dChnZXRFcnIsIGdldEVyciA/IG51bGwgOiBjcmVkcyk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZU5leHQobnVsbCwgY3JlZHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlc29sdmVOZXh0KCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn0pO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHNldCBvZiBwcm92aWRlcnMgdXNlZCBieSBhIHZhbmlsbGEgQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4uXG4gKlxuICogSW4gdGhlIGJyb3dzZXI6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogQVdTLkNyZWRlbnRpYWxQcm92aWRlckNoYWluLmRlZmF1bHRQcm92aWRlcnMgPSBbXVxuICogYGBgXG4gKlxuICogSW4gTm9kZS5qczpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiBBV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4uZGVmYXVsdFByb3ZpZGVycyA9IFtcbiAqICAgZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IEFXUy5FbnZpcm9ubWVudENyZWRlbnRpYWxzKCdBV1MnKTsgfSxcbiAqICAgZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IEFXUy5FbnZpcm9ubWVudENyZWRlbnRpYWxzKCdBTUFaT04nKTsgfSxcbiAqICAgZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IEFXUy5TaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHMoKTsgfSxcbiAqICAgZnVuY3Rpb24gKCkge1xuICogICAgIC8vIGlmIEFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfUkVMQVRJVkVfVVJJIGlzIHNldFxuICogICAgICAgcmV0dXJuIG5ldyBBV1MuRUNTQ3JlZGVudGlhbHMoKTtcbiAqICAgICAvLyBlbHNlXG4gKiAgICAgICByZXR1cm4gbmV3IEFXUy5FQzJNZXRhZGF0YUNyZWRlbnRpYWxzKCk7XG4gKiAgIH1cbiAqIF1cbiAqIGBgYFxuICovXG5BV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4uZGVmYXVsdFByb3ZpZGVycyA9IFtdO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4uYWRkUHJvbWlzZXNUb0NsYXNzID0gZnVuY3Rpb24gYWRkUHJvbWlzZXNUb0NsYXNzKFByb21pc2VEZXBlbmRlbmN5KSB7XG4gIHRoaXMucHJvdG90eXBlLnJlc29sdmVQcm9taXNlID0gQVdTLnV0aWwucHJvbWlzaWZ5TWV0aG9kKCdyZXNvbHZlJywgUHJvbWlzZURlcGVuZGVuY3kpO1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLkNyZWRlbnRpYWxQcm92aWRlckNoYWluLmRlbGV0ZVByb21pc2VzRnJvbUNsYXNzID0gZnVuY3Rpb24gZGVsZXRlUHJvbWlzZXNGcm9tQ2xhc3MoKSB7XG4gIGRlbGV0ZSB0aGlzLnByb3RvdHlwZS5yZXNvbHZlUHJvbWlzZTtcbn07XG5cbkFXUy51dGlsLmFkZFByb21pc2VzKEFXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbik7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIFNUUyA9IHJlcXVpcmUoJy4uLy4uL2NsaWVudHMvc3RzJyk7XG5cbi8qKlxuICogUmVwcmVzZW50cyBjcmVkZW50aWFscyByZXRyaWV2ZWQgZnJvbSBTVFMgU0FNTCBzdXBwb3J0LlxuICpcbiAqIEJ5IGRlZmF1bHQgdGhpcyBwcm92aWRlciBnZXRzIGNyZWRlbnRpYWxzIHVzaW5nIHRoZVxuICoge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhTQU1MfSBzZXJ2aWNlIG9wZXJhdGlvbi4gVGhpcyBvcGVyYXRpb25cbiAqIHJlcXVpcmVzIGEgYFJvbGVBcm5gIGNvbnRhaW5pbmcgdGhlIEFSTiBvZiB0aGUgSUFNIHRydXN0IHBvbGljeSBmb3IgdGhlXG4gKiBhcHBsaWNhdGlvbiBmb3Igd2hpY2ggY3JlZGVudGlhbHMgd2lsbCBiZSBnaXZlbiwgYXMgd2VsbCBhcyBhIGBQcmluY2lwYWxBcm5gXG4gKiByZXByZXNlbnRpbmcgdGhlIEFSTiBmb3IgdGhlIFNBTUwgaWRlbnRpdHkgcHJvdmlkZXIuIEluIGFkZGl0aW9uLCB0aGVcbiAqIGBTQU1MQXNzZXJ0aW9uYCBtdXN0IGJlIHNldCB0byB0aGUgdG9rZW4gcHJvdmlkZWQgYnkgdGhlIGlkZW50aXR5XG4gKiBwcm92aWRlci4gU2VlIHtjb25zdHJ1Y3Rvcn0gZm9yIGFuIGV4YW1wbGUgb24gY3JlYXRpbmcgYSBjcmVkZW50aWFsc1xuICogb2JqZWN0IHdpdGggcHJvcGVyIGBSb2xlQXJuYCwgYFByaW5jaXBhbEFybmAsIGFuZCBgU0FNTEFzc2VydGlvbmAgdmFsdWVzLlxuICpcbiAqICMjIFJlZnJlc2hpbmcgQ3JlZGVudGlhbHMgZnJvbSBJZGVudGl0eSBTZXJ2aWNlXG4gKlxuICogSW4gYWRkaXRpb24gdG8gQVdTIGNyZWRlbnRpYWxzIGV4cGlyaW5nIGFmdGVyIGEgZ2l2ZW4gYW1vdW50IG9mIHRpbWUsIHRoZVxuICogbG9naW4gdG9rZW4gZnJvbSB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgd2lsbCBhbHNvIGV4cGlyZS4gT25jZSB0aGlzIHRva2VuXG4gKiBleHBpcmVzLCBpdCB3aWxsIG5vdCBiZSB1c2FibGUgdG8gcmVmcmVzaCBBV1MgY3JlZGVudGlhbHMsIGFuZCBhbm90aGVyXG4gKiB0b2tlbiB3aWxsIGJlIG5lZWRlZC4gVGhlIFNESyBkb2VzIG5vdCBtYW5hZ2UgcmVmcmVzaGluZyBvZiB0aGUgdG9rZW4gdmFsdWUsXG4gKiBidXQgdGhpcyBjYW4gYmUgZG9uZSB0aHJvdWdoIGEgXCJyZWZyZXNoIHRva2VuXCIgc3VwcG9ydGVkIGJ5IG1vc3QgaWRlbnRpdHlcbiAqIHByb3ZpZGVycy4gQ29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGlkZW50aXR5IHByb3ZpZGVyIGZvciByZWZyZXNoaW5nXG4gKiB0b2tlbnMuIE9uY2UgdGhlIHJlZnJlc2hlZCB0b2tlbiBpcyBhY3F1aXJlZCwgeW91IHNob3VsZCBtYWtlIHN1cmUgdG8gdXBkYXRlXG4gKiB0aGlzIG5ldyB0b2tlbiBpbiB0aGUgY3JlZGVudGlhbHMgb2JqZWN0J3Mge3BhcmFtc30gcHJvcGVydHkuIFRoZSBmb2xsb3dpbmdcbiAqIGNvZGUgd2lsbCB1cGRhdGUgdGhlIFNBTUxBc3NlcnRpb24sIGFzc3VtaW5nIHlvdSBoYXZlIHJldHJpZXZlZCBhbiB1cGRhdGVkXG4gKiB0b2tlbiBmcm9tIHRoZSBpZGVudGl0eSBwcm92aWRlcjpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiBBV1MuY29uZmlnLmNyZWRlbnRpYWxzLnBhcmFtcy5TQU1MQXNzZXJ0aW9uID0gdXBkYXRlZFRva2VuO1xuICogYGBgXG4gKlxuICogRnV0dXJlIGNhbGxzIHRvIGBjcmVkZW50aWFscy5yZWZyZXNoKClgIHdpbGwgbm93IHVzZSB0aGUgbmV3IHRva2VuLlxuICpcbiAqIEAhYXR0cmlidXRlIHBhcmFtc1xuICogICBAcmV0dXJuIFttYXBdIHRoZSBtYXAgb2YgcGFyYW1zIHBhc3NlZCB0b1xuICogICAgIHtBV1MuU1RTLmFzc3VtZVJvbGVXaXRoU0FNTH0uIFRvIHVwZGF0ZSB0aGUgdG9rZW4sIHNldCB0aGVcbiAqICAgICBgcGFyYW1zLlNBTUxBc3NlcnRpb25gIHByb3BlcnR5LlxuICovXG5BV1MuU0FNTENyZWRlbnRpYWxzID0gQVdTLnV0aWwuaW5oZXJpdChBV1MuQ3JlZGVudGlhbHMsIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY3JlZGVudGlhbHMgb2JqZWN0LlxuICAgKiBAcGFyYW0gKHNlZSBBV1MuU1RTLmFzc3VtZVJvbGVXaXRoU0FNTClcbiAgICogQGV4YW1wbGUgQ3JlYXRpbmcgYSBuZXcgY3JlZGVudGlhbHMgb2JqZWN0XG4gICAqICAgQVdTLmNvbmZpZy5jcmVkZW50aWFscyA9IG5ldyBBV1MuU0FNTENyZWRlbnRpYWxzKHtcbiAgICogICAgIFJvbGVBcm46ICdhcm46YXdzOmlhbTo6MTIzNDU2Nzg5MDpyb2xlL1NBTUxSb2xlJyxcbiAgICogICAgIFByaW5jaXBhbEFybjogJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwOnJvbGUvU0FNTFByaW5jaXBhbCcsXG4gICAqICAgICBTQU1MQXNzZXJ0aW9uOiAnYmFzZTY0LXRva2VuJywgLy8gYmFzZTY0LWVuY29kZWQgdG9rZW4gZnJvbSBJZFBcbiAgICogICB9KTtcbiAgICogQHNlZSBBV1MuU1RTLmFzc3VtZVJvbGVXaXRoU0FNTFxuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIFNBTUxDcmVkZW50aWFscyhwYXJhbXMpIHtcbiAgICBBV1MuQ3JlZGVudGlhbHMuY2FsbCh0aGlzKTtcbiAgICB0aGlzLmV4cGlyZWQgPSB0cnVlO1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgY3JlZGVudGlhbHMgdXNpbmcge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhTQU1MfVxuICAgKlxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyKVxuICAgKiAgIENhbGxlZCB3aGVuIHRoZSBTVFMgc2VydmljZSByZXNwb25kcyAob3IgZmFpbHMpLiBXaGVuXG4gICAqICAgdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCBubyBlcnJvciwgaXQgbWVhbnMgdGhhdCB0aGUgY3JlZGVudGlhbHNcbiAgICogICBpbmZvcm1hdGlvbiBoYXMgYmVlbiBsb2FkZWQgaW50byB0aGUgb2JqZWN0IChhcyB0aGUgYGFjY2Vzc0tleUlkYCxcbiAgICogICBgc2VjcmV0QWNjZXNzS2V5YCwgYW5kIGBzZXNzaW9uVG9rZW5gIHByb3BlcnRpZXMpLlxuICAgKiAgIEBwYXJhbSBlcnIgW0Vycm9yXSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIGZpbGxlZFxuICAgKiBAc2VlIGdldFxuICAgKi9cbiAgcmVmcmVzaDogZnVuY3Rpb24gcmVmcmVzaChjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLmNyZWF0ZUNsaWVudHMoKTtcbiAgICBpZiAoIWNhbGxiYWNrKSBjYWxsYmFjayA9IGZ1bmN0aW9uKGVycikgeyBpZiAoZXJyKSB0aHJvdyBlcnI7IH07XG5cbiAgICBzZWxmLnNlcnZpY2UuYXNzdW1lUm9sZVdpdGhTQU1MKGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgIGlmICghZXJyKSB7XG4gICAgICAgIHNlbGYuc2VydmljZS5jcmVkZW50aWFsc0Zyb20oZGF0YSwgc2VsZik7XG4gICAgICB9XG4gICAgICBjYWxsYmFjayhlcnIpO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNyZWF0ZUNsaWVudHM6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc2VydmljZSA9IHRoaXMuc2VydmljZSB8fCBuZXcgU1RTKHtwYXJhbXM6IHRoaXMucGFyYW1zfSk7XG4gIH1cblxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIFNUUyA9IHJlcXVpcmUoJy4uLy4uL2NsaWVudHMvc3RzJyk7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0ZW1wb3JhcnkgY3JlZGVudGlhbHMgcmV0cmlldmVkIGZyb20ge0FXUy5TVFN9LiBXaXRob3V0IGFueVxuICogZXh0cmEgcGFyYW1ldGVycywgY3JlZGVudGlhbHMgd2lsbCBiZSBmZXRjaGVkIGZyb20gdGhlXG4gKiB7QVdTLlNUUy5nZXRTZXNzaW9uVG9rZW59IG9wZXJhdGlvbi4gSWYgYW4gSUFNIHJvbGUgaXMgcHJvdmlkZWQsIHRoZVxuICoge0FXUy5TVFMuYXNzdW1lUm9sZX0gb3BlcmF0aW9uIHdpbGwgYmUgdXNlZCB0byBmZXRjaCBjcmVkZW50aWFscyBmb3IgdGhlXG4gKiByb2xlIGluc3RlYWQuXG4gKlxuICogVG8gc2V0dXAgdGVtcG9yYXJ5IGNyZWRlbnRpYWxzLCBjb25maWd1cmUgYSBzZXQgb2YgbWFzdGVyIGNyZWRlbnRpYWxzXG4gKiB1c2luZyB0aGUgc3RhbmRhcmQgY3JlZGVudGlhbHMgcHJvdmlkZXJzIChlbnZpcm9ubWVudCwgRUMyIGluc3RhbmNlIG1ldGFkYXRhLFxuICogb3IgZnJvbSB0aGUgZmlsZXN5c3RlbSksIHRoZW4gc2V0IHRoZSBnbG9iYWwgY3JlZGVudGlhbHMgdG8gYSBuZXdcbiAqIHRlbXBvcmFyeSBjcmVkZW50aWFscyBvYmplY3Q6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogLy8gTm90ZSB0aGF0IGVudmlyb25tZW50IGNyZWRlbnRpYWxzIGFyZSBsb2FkZWQgYnkgZGVmYXVsdCxcbiAqIC8vIHRoZSBmb2xsb3dpbmcgbGluZSBpcyBzaG93biBmb3IgY2xhcml0eTpcbiAqIEFXUy5jb25maWcuY3JlZGVudGlhbHMgPSBuZXcgQVdTLkVudmlyb25tZW50Q3JlZGVudGlhbHMoJ0FXUycpO1xuICpcbiAqIC8vIE5vdyBzZXQgdGVtcG9yYXJ5IGNyZWRlbnRpYWxzIHNlZWRlZCBmcm9tIHRoZSBtYXN0ZXIgY3JlZGVudGlhbHNcbiAqIEFXUy5jb25maWcuY3JlZGVudGlhbHMgPSBuZXcgQVdTLlRlbXBvcmFyeUNyZWRlbnRpYWxzKCk7XG4gKlxuICogLy8gc3Vic2VxdWVudCByZXF1ZXN0cyB3aWxsIG5vdyB1c2UgdGVtcG9yYXJ5IGNyZWRlbnRpYWxzIGZyb20gQVdTIFNUUy5cbiAqIG5ldyBBV1MuUzMoKS5saXN0QnVja2V0KGZ1bmN0aW9uKGVyciwgZGF0YSkgeyAuLi4gfSk7XG4gKiBgYGBcbiAqXG4gKiBAIWF0dHJpYnV0ZSBtYXN0ZXJDcmVkZW50aWFsc1xuICogICBAcmV0dXJuIFtBV1MuQ3JlZGVudGlhbHNdIHRoZSBtYXN0ZXIgKG5vbi10ZW1wb3JhcnkpIGNyZWRlbnRpYWxzIHVzZWQgdG9cbiAqICAgICBnZXQgYW5kIHJlZnJlc2ggdGVtcG9yYXJ5IGNyZWRlbnRpYWxzIGZyb20gQVdTIFNUUy5cbiAqIEBub3RlIChzZWUgY29uc3RydWN0b3IpXG4gKi9cbkFXUy5UZW1wb3JhcnlDcmVkZW50aWFscyA9IEFXUy51dGlsLmluaGVyaXQoQVdTLkNyZWRlbnRpYWxzLCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHRlbXBvcmFyeSBjcmVkZW50aWFscyBvYmplY3QuXG4gICAqXG4gICAqIEBub3RlIEluIG9yZGVyIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgY3JlZGVudGlhbHMsIHlvdSBmaXJzdCBuZWVkIHRvIGhhdmVcbiAgICogICBcIm1hc3RlclwiIGNyZWRlbnRpYWxzIGNvbmZpZ3VyZWQgaW4ge0FXUy5Db25maWcuY3JlZGVudGlhbHN9LiBUaGVzZVxuICAgKiAgIG1hc3RlciBjcmVkZW50aWFscyBhcmUgbmVjZXNzYXJ5IHRvIHJldHJpZXZlIHRoZSB0ZW1wb3JhcnkgY3JlZGVudGlhbHMsXG4gICAqICAgYXMgd2VsbCBhcyByZWZyZXNoIHRoZSBjcmVkZW50aWFscyB3aGVuIHRoZXkgZXhwaXJlLlxuICAgKiBAcGFyYW0gcGFyYW1zIFttYXBdIGEgbWFwIG9mIG9wdGlvbnMgdGhhdCBhcmUgcGFzc2VkIHRvIHRoZVxuICAgKiAgIHtBV1MuU1RTLmFzc3VtZVJvbGV9IG9yIHtBV1MuU1RTLmdldFNlc3Npb25Ub2tlbn0gb3BlcmF0aW9ucy5cbiAgICogICBJZiBhIGBSb2xlQXJuYCBwYXJhbWV0ZXIgaXMgcGFzc2VkIGluLCBjcmVkZW50aWFscyB3aWxsIGJlIGJhc2VkIG9uIHRoZVxuICAgKiAgIElBTSByb2xlLlxuICAgKiBAcGFyYW0gbWFzdGVyQ3JlZGVudGlhbHMgW0FXUy5DcmVkZW50aWFsc10gdGhlIG1hc3RlciAobm9uLXRlbXBvcmFyeSkgY3JlZGVudGlhbHNcbiAgICogIHVzZWQgdG8gZ2V0IGFuZCByZWZyZXNoIHRlbXBvcmFyeSBjcmVkZW50aWFscyBmcm9tIEFXUyBTVFMuXG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWxzIG9iamVjdCBmb3IgZ2VuZXJpYyB0ZW1wb3JhcnkgY3JlZGVudGlhbHNcbiAgICogICBBV1MuY29uZmlnLmNyZWRlbnRpYWxzID0gbmV3IEFXUy5UZW1wb3JhcnlDcmVkZW50aWFscygpO1xuICAgKiBAZXhhbXBsZSBDcmVhdGluZyBhIG5ldyBjcmVkZW50aWFscyBvYmplY3QgZm9yIGFuIElBTSByb2xlXG4gICAqICAgQVdTLmNvbmZpZy5jcmVkZW50aWFscyA9IG5ldyBBV1MuVGVtcG9yYXJ5Q3JlZGVudGlhbHMoe1xuICAgKiAgICAgUm9sZUFybjogJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwOnJvbGUvVGVtcG9yYXJ5Q3JlZGVudGlhbHMnLFxuICAgKiAgIH0pO1xuICAgKiBAc2VlIEFXUy5TVFMuYXNzdW1lUm9sZVxuICAgKiBAc2VlIEFXUy5TVFMuZ2V0U2Vzc2lvblRva2VuXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gVGVtcG9yYXJ5Q3JlZGVudGlhbHMocGFyYW1zLCBtYXN0ZXJDcmVkZW50aWFscykge1xuICAgIEFXUy5DcmVkZW50aWFscy5jYWxsKHRoaXMpO1xuICAgIHRoaXMubG9hZE1hc3RlckNyZWRlbnRpYWxzKG1hc3RlckNyZWRlbnRpYWxzKTtcbiAgICB0aGlzLmV4cGlyZWQgPSB0cnVlO1xuXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXMgfHwge307XG4gICAgaWYgKHRoaXMucGFyYW1zLlJvbGVBcm4pIHtcbiAgICAgIHRoaXMucGFyYW1zLlJvbGVTZXNzaW9uTmFtZSA9XG4gICAgICAgIHRoaXMucGFyYW1zLlJvbGVTZXNzaW9uTmFtZSB8fCAndGVtcG9yYXJ5LWNyZWRlbnRpYWxzJztcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBjcmVkZW50aWFscyB1c2luZyB7QVdTLlNUUy5hc3N1bWVSb2xlfSBvclxuICAgKiB7QVdTLlNUUy5nZXRTZXNzaW9uVG9rZW59LCBkZXBlbmRpbmcgb24gd2hldGhlciBhbiBJQU0gcm9sZSBBUk4gd2FzIHBhc3NlZFxuICAgKiB0byB0aGUgY3JlZGVudGlhbHMge2NvbnN0cnVjdG9yfS5cbiAgICpcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVycilcbiAgICogICBDYWxsZWQgd2hlbiB0aGUgU1RTIHNlcnZpY2UgcmVzcG9uZHMgKG9yIGZhaWxzKS4gV2hlblxuICAgKiAgIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggbm8gZXJyb3IsIGl0IG1lYW5zIHRoYXQgdGhlIGNyZWRlbnRpYWxzXG4gICAqICAgaW5mb3JtYXRpb24gaGFzIGJlZW4gbG9hZGVkIGludG8gdGhlIG9iamVjdCAoYXMgdGhlIGBhY2Nlc3NLZXlJZGAsXG4gICAqICAgYHNlY3JldEFjY2Vzc0tleWAsIGFuZCBgc2Vzc2lvblRva2VuYCBwcm9wZXJ0aWVzKS5cbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gaWYgYW4gZXJyb3Igb2NjdXJyZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBmaWxsZWRcbiAgICogQHNlZSBnZXRcbiAgICovXG4gIHJlZnJlc2g6IGZ1bmN0aW9uIHJlZnJlc2goY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5jcmVhdGVDbGllbnRzKCk7XG4gICAgaWYgKCFjYWxsYmFjaykgY2FsbGJhY2sgPSBmdW5jdGlvbihlcnIpIHsgaWYgKGVycikgdGhyb3cgZXJyOyB9O1xuXG4gICAgc2VsZi5tYXN0ZXJDcmVkZW50aWFscy5nZXQoZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLnNlcnZpY2UuY29uZmlnLmNyZWRlbnRpYWxzID0gc2VsZi5tYXN0ZXJDcmVkZW50aWFscztcbiAgICAgIHZhciBvcGVyYXRpb24gPSBzZWxmLnBhcmFtcy5Sb2xlQXJuID9cbiAgICAgICAgc2VsZi5zZXJ2aWNlLmFzc3VtZVJvbGUgOiBzZWxmLnNlcnZpY2UuZ2V0U2Vzc2lvblRva2VuO1xuICAgICAgb3BlcmF0aW9uLmNhbGwoc2VsZi5zZXJ2aWNlLCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAgICAgIGlmICghZXJyKSB7XG4gICAgICAgICAgc2VsZi5zZXJ2aWNlLmNyZWRlbnRpYWxzRnJvbShkYXRhLCBzZWxmKTtcbiAgICAgICAgfVxuICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbG9hZE1hc3RlckNyZWRlbnRpYWxzOiBmdW5jdGlvbiBsb2FkTWFzdGVyQ3JlZGVudGlhbHMobWFzdGVyQ3JlZGVudGlhbHMpIHtcbiAgICB0aGlzLm1hc3RlckNyZWRlbnRpYWxzID0gbWFzdGVyQ3JlZGVudGlhbHMgfHwgQVdTLmNvbmZpZy5jcmVkZW50aWFscztcbiAgICB3aGlsZSAodGhpcy5tYXN0ZXJDcmVkZW50aWFscy5tYXN0ZXJDcmVkZW50aWFscykge1xuICAgICAgdGhpcy5tYXN0ZXJDcmVkZW50aWFscyA9IHRoaXMubWFzdGVyQ3JlZGVudGlhbHMubWFzdGVyQ3JlZGVudGlhbHM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLm1hc3RlckNyZWRlbnRpYWxzLmdldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5tYXN0ZXJDcmVkZW50aWFscyA9IG5ldyBBV1MuQ3JlZGVudGlhbHModGhpcy5tYXN0ZXJDcmVkZW50aWFscyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNyZWF0ZUNsaWVudHM6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc2VydmljZSA9IHRoaXMuc2VydmljZSB8fCBuZXcgU1RTKHtwYXJhbXM6IHRoaXMucGFyYW1zfSk7XG4gIH1cblxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIFNUUyA9IHJlcXVpcmUoJy4uLy4uL2NsaWVudHMvc3RzJyk7XG5cbi8qKlxuICogUmVwcmVzZW50cyBjcmVkZW50aWFscyByZXRyaWV2ZWQgZnJvbSBTVFMgV2ViIElkZW50aXR5IEZlZGVyYXRpb24gc3VwcG9ydC5cbiAqXG4gKiBCeSBkZWZhdWx0IHRoaXMgcHJvdmlkZXIgZ2V0cyBjcmVkZW50aWFscyB1c2luZyB0aGVcbiAqIHtBV1MuU1RTLmFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHl9IHNlcnZpY2Ugb3BlcmF0aW9uLiBUaGlzIG9wZXJhdGlvblxuICogcmVxdWlyZXMgYSBgUm9sZUFybmAgY29udGFpbmluZyB0aGUgQVJOIG9mIHRoZSBJQU0gdHJ1c3QgcG9saWN5IGZvciB0aGVcbiAqIGFwcGxpY2F0aW9uIGZvciB3aGljaCBjcmVkZW50aWFscyB3aWxsIGJlIGdpdmVuLiBJbiBhZGRpdGlvbiwgdGhlXG4gKiBgV2ViSWRlbnRpdHlUb2tlbmAgbXVzdCBiZSBzZXQgdG8gdGhlIHRva2VuIHByb3ZpZGVkIGJ5IHRoZSBpZGVudGl0eVxuICogcHJvdmlkZXIuIFNlZSB7Y29uc3RydWN0b3J9IGZvciBhbiBleGFtcGxlIG9uIGNyZWF0aW5nIGEgY3JlZGVudGlhbHNcbiAqIG9iamVjdCB3aXRoIHByb3BlciBgUm9sZUFybmAgYW5kIGBXZWJJZGVudGl0eVRva2VuYCB2YWx1ZXMuXG4gKlxuICogIyMgUmVmcmVzaGluZyBDcmVkZW50aWFscyBmcm9tIElkZW50aXR5IFNlcnZpY2VcbiAqXG4gKiBJbiBhZGRpdGlvbiB0byBBV1MgY3JlZGVudGlhbHMgZXhwaXJpbmcgYWZ0ZXIgYSBnaXZlbiBhbW91bnQgb2YgdGltZSwgdGhlXG4gKiBsb2dpbiB0b2tlbiBmcm9tIHRoZSBpZGVudGl0eSBwcm92aWRlciB3aWxsIGFsc28gZXhwaXJlLiBPbmNlIHRoaXMgdG9rZW5cbiAqIGV4cGlyZXMsIGl0IHdpbGwgbm90IGJlIHVzYWJsZSB0byByZWZyZXNoIEFXUyBjcmVkZW50aWFscywgYW5kIGFub3RoZXJcbiAqIHRva2VuIHdpbGwgYmUgbmVlZGVkLiBUaGUgU0RLIGRvZXMgbm90IG1hbmFnZSByZWZyZXNoaW5nIG9mIHRoZSB0b2tlbiB2YWx1ZSxcbiAqIGJ1dCB0aGlzIGNhbiBiZSBkb25lIHRocm91Z2ggYSBcInJlZnJlc2ggdG9rZW5cIiBzdXBwb3J0ZWQgYnkgbW9zdCBpZGVudGl0eVxuICogcHJvdmlkZXJzLiBDb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgZm9yIHJlZnJlc2hpbmdcbiAqIHRva2Vucy4gT25jZSB0aGUgcmVmcmVzaGVkIHRva2VuIGlzIGFjcXVpcmVkLCB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSB0byB1cGRhdGVcbiAqIHRoaXMgbmV3IHRva2VuIGluIHRoZSBjcmVkZW50aWFscyBvYmplY3QncyB7cGFyYW1zfSBwcm9wZXJ0eS4gVGhlIGZvbGxvd2luZ1xuICogY29kZSB3aWxsIHVwZGF0ZSB0aGUgV2ViSWRlbnRpdHlUb2tlbiwgYXNzdW1pbmcgeW91IGhhdmUgcmV0cmlldmVkIGFuIHVwZGF0ZWRcbiAqIHRva2VuIGZyb20gdGhlIGlkZW50aXR5IHByb3ZpZGVyOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIEFXUy5jb25maWcuY3JlZGVudGlhbHMucGFyYW1zLldlYklkZW50aXR5VG9rZW4gPSB1cGRhdGVkVG9rZW47XG4gKiBgYGBcbiAqXG4gKiBGdXR1cmUgY2FsbHMgdG8gYGNyZWRlbnRpYWxzLnJlZnJlc2goKWAgd2lsbCBub3cgdXNlIHRoZSBuZXcgdG9rZW4uXG4gKlxuICogQCFhdHRyaWJ1dGUgcGFyYW1zXG4gKiAgIEByZXR1cm4gW21hcF0gdGhlIG1hcCBvZiBwYXJhbXMgcGFzc2VkIHRvXG4gKiAgICAge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX0uIFRvIHVwZGF0ZSB0aGUgdG9rZW4sIHNldCB0aGVcbiAqICAgICBgcGFyYW1zLldlYklkZW50aXR5VG9rZW5gIHByb3BlcnR5LlxuICogQCFhdHRyaWJ1dGUgZGF0YVxuICogICBAcmV0dXJuIFttYXBdIHRoZSByYXcgZGF0YSByZXNwb25zZSBmcm9tIHRoZSBjYWxsIHRvXG4gKiAgICAge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX0uIFVzZSB0aGlzIGlmIHlvdSB3YW50IHRvIGdldFxuICogICAgIGFjY2VzcyB0byBvdGhlciBwcm9wZXJ0aWVzIGZyb20gdGhlIHJlc3BvbnNlLlxuICovXG5BV1MuV2ViSWRlbnRpdHlDcmVkZW50aWFscyA9IEFXUy51dGlsLmluaGVyaXQoQVdTLkNyZWRlbnRpYWxzLCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNyZWRlbnRpYWxzIG9iamVjdC5cbiAgICogQHBhcmFtIChzZWUgQVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5KVxuICAgKiBAZXhhbXBsZSBDcmVhdGluZyBhIG5ldyBjcmVkZW50aWFscyBvYmplY3RcbiAgICogICBBV1MuY29uZmlnLmNyZWRlbnRpYWxzID0gbmV3IEFXUy5XZWJJZGVudGl0eUNyZWRlbnRpYWxzKHtcbiAgICogICAgIFJvbGVBcm46ICdhcm46YXdzOmlhbTo6MTIzNDU2Nzg5MDpyb2xlL1dlYklkZW50aXR5JyxcbiAgICogICAgIFdlYklkZW50aXR5VG9rZW46ICdBQkNERUZHSElKS0xNTk9QJywgLy8gdG9rZW4gZnJvbSBpZGVudGl0eSBzZXJ2aWNlXG4gICAqICAgICBSb2xlU2Vzc2lvbk5hbWU6ICd3ZWInIC8vIG9wdGlvbmFsIG5hbWUsIGRlZmF1bHRzIHRvIHdlYi1pZGVudGl0eVxuICAgKiAgIH0sIHtcbiAgICogICAgIC8vIG9wdGlvbmFsbHkgcHJvdmlkZSBjb25maWd1cmF0aW9uIHRvIGFwcGx5IHRvIHRoZSB1bmRlcmx5aW5nIEFXUy5TVFMgc2VydmljZSBjbGllbnRcbiAgICogICAgIC8vIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IHByb3ZpZGVkLCB0aGVuIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBwdWxsZWQgZnJvbSBBV1MuY29uZmlnXG4gICAqXG4gICAqICAgICAvLyBzcGVjaWZ5IHRpbWVvdXQgb3B0aW9uc1xuICAgKiAgICAgaHR0cE9wdGlvbnM6IHtcbiAgICogICAgICAgdGltZW91dDogMTAwXG4gICAqICAgICB9XG4gICAqICAgfSk7XG4gICAqIEBzZWUgQVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XG4gICAqIEBzZWUgQVdTLkNvbmZpZ1xuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIFdlYklkZW50aXR5Q3JlZGVudGlhbHMocGFyYW1zLCBjbGllbnRDb25maWcpIHtcbiAgICBBV1MuQ3JlZGVudGlhbHMuY2FsbCh0aGlzKTtcbiAgICB0aGlzLmV4cGlyZWQgPSB0cnVlO1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMucGFyYW1zLlJvbGVTZXNzaW9uTmFtZSA9IHRoaXMucGFyYW1zLlJvbGVTZXNzaW9uTmFtZSB8fCAnd2ViLWlkZW50aXR5JztcbiAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgIHRoaXMuX2NsaWVudENvbmZpZyA9IEFXUy51dGlsLmNvcHkoY2xpZW50Q29uZmlnIHx8IHt9KTtcbiAgfSxcblxuICAvKipcbiAgICogUmVmcmVzaGVzIGNyZWRlbnRpYWxzIHVzaW5nIHtBV1MuU1RTLmFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHl9XG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIpXG4gICAqICAgQ2FsbGVkIHdoZW4gdGhlIFNUUyBzZXJ2aWNlIHJlc3BvbmRzIChvciBmYWlscykuIFdoZW5cbiAgICogICB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIG5vIGVycm9yLCBpdCBtZWFucyB0aGF0IHRoZSBjcmVkZW50aWFsc1xuICAgKiAgIGluZm9ybWF0aW9uIGhhcyBiZWVuIGxvYWRlZCBpbnRvIHRoZSBvYmplY3QgKGFzIHRoZSBgYWNjZXNzS2V5SWRgLFxuICAgKiAgIGBzZWNyZXRBY2Nlc3NLZXlgLCBhbmQgYHNlc3Npb25Ub2tlbmAgcHJvcGVydGllcykuXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIGlmIGFuIGVycm9yIG9jY3VycmVkLCB0aGlzIHZhbHVlIHdpbGwgYmUgZmlsbGVkXG4gICAqIEBzZWUgZ2V0XG4gICAqL1xuICByZWZyZXNoOiBmdW5jdGlvbiByZWZyZXNoKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuY3JlYXRlQ2xpZW50cygpO1xuICAgIGlmICghY2FsbGJhY2spIGNhbGxiYWNrID0gZnVuY3Rpb24oZXJyKSB7IGlmIChlcnIpIHRocm93IGVycjsgfTtcblxuICAgIHNlbGYuc2VydmljZS5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5KGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgIHNlbGYuZGF0YSA9IG51bGw7XG4gICAgICBpZiAoIWVycikge1xuICAgICAgICBzZWxmLmRhdGEgPSBkYXRhO1xuICAgICAgICBzZWxmLnNlcnZpY2UuY3JlZGVudGlhbHNGcm9tKGRhdGEsIHNlbGYpO1xuICAgICAgfVxuICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjcmVhdGVDbGllbnRzOiBmdW5jdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZSkge1xuICAgICAgdmFyIHN0c0NvbmZpZyA9IEFXUy51dGlsLm1lcmdlKHt9LCB0aGlzLl9jbGllbnRDb25maWcpO1xuICAgICAgc3RzQ29uZmlnLnBhcmFtcyA9IHRoaXMucGFyYW1zO1xuICAgICAgdGhpcy5zZXJ2aWNlID0gbmV3IFNUUyhzdHNDb25maWcpO1xuICAgIH1cbiAgfVxuXG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgdXRpbCA9IEFXUy51dGlsO1xudmFyIHR5cGVPZiA9IHJlcXVpcmUoJy4vdHlwZXMnKS50eXBlT2Y7XG52YXIgRHluYW1vREJTZXQgPSByZXF1aXJlKCcuL3NldCcpO1xudmFyIE51bWJlclZhbHVlID0gcmVxdWlyZSgnLi9udW1iZXJWYWx1ZScpO1xuXG5BV1MuRHluYW1vREIuQ29udmVydGVyID0ge1xuICAvKipcbiAgICogQ29udmVydCBhIEphdmFTY3JpcHQgdmFsdWUgdG8gaXRzIGVxdWl2YWxlbnQgRHluYW1vREIgQXR0cmlidXRlVmFsdWUgdHlwZVxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSBbYW55XSBUaGUgZGF0YSB0byBjb252ZXJ0IHRvIGEgRHluYW1vREIgQXR0cmlidXRlVmFsdWVcbiAgICogQHBhcmFtIG9wdGlvbnMgW21hcF1cbiAgICogQG9wdGlvbiBvcHRpb25zIGNvbnZlcnRFbXB0eVZhbHVlcyBbQm9vbGVhbl0gV2hldGhlciB0byBhdXRvbWF0aWNhbGx5XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnQgZW1wdHkgc3RyaW5ncywgYmxvYnMsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBzZXRzIHRvIGBudWxsYFxuICAgKiBAb3B0aW9uIG9wdGlvbnMgd3JhcE51bWJlcnMgW0Jvb2xlYW5dICBXaGV0aGVyIHRvIHJldHVybiBudW1iZXJzIGFzIGFcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyVmFsdWUgb2JqZWN0IGluc3RlYWQgb2ZcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGluZyB0aGVtIHRvIG5hdGl2ZSBKYXZhU2NyaXB0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcnMuIFRoaXMgYWxsb3dzIGZvciB0aGUgc2FmZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZC10cmlwIHRyYW5zcG9ydCBvZiBudW1iZXJzIG9mXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyYml0cmFyeSBzaXplLlxuICAgKiBAcmV0dXJuIFttYXBdIEFuIG9iamVjdCBpbiB0aGUgQW1hem9uIER5bmFtb0RCIEF0dHJpYnV0ZVZhbHVlIGZvcm1hdFxuICAgKlxuICAgKiBAc2VlIEFXUy5EeW5hbW9EQi5Db252ZXJ0ZXIubWFyc2hhbGwgQVdTLkR5bmFtb0RCLkNvbnZlcnRlci5tYXJzaGFsbCB0b1xuICAgKiAgICBjb252ZXJ0IGVudGlyZSByZWNvcmRzIChyYXRoZXIgdGhhbiBpbmRpdmlkdWFsIGF0dHJpYnV0ZXMpXG4gICAqL1xuICBpbnB1dDogZnVuY3Rpb24gY29udmVydElucHV0KGRhdGEsIG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICB2YXIgdHlwZSA9IHR5cGVPZihkYXRhKTtcbiAgICBpZiAodHlwZSA9PT0gJ09iamVjdCcpIHtcbiAgICAgIHJldHVybiBmb3JtYXRNYXAoZGF0YSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnQXJyYXknKSB7XG4gICAgICByZXR1cm4gZm9ybWF0TGlzdChkYXRhLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdTZXQnKSB7XG4gICAgICByZXR1cm4gZm9ybWF0U2V0KGRhdGEsIG9wdGlvbnMpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1N0cmluZycpIHtcbiAgICAgIGlmIChkYXRhLmxlbmd0aCA9PT0gMCAmJiBvcHRpb25zLmNvbnZlcnRFbXB0eVZhbHVlcykge1xuICAgICAgICByZXR1cm4gY29udmVydElucHV0KG51bGwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgUzogZGF0YSB9O1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ051bWJlcicgfHwgdHlwZSA9PT0gJ051bWJlclZhbHVlJykge1xuICAgICAgcmV0dXJuIHsgTjogZGF0YS50b1N0cmluZygpIH07XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnQmluYXJ5Jykge1xuICAgICAgaWYgKGRhdGEubGVuZ3RoID09PSAwICYmIG9wdGlvbnMuY29udmVydEVtcHR5VmFsdWVzKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0SW5wdXQobnVsbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBCOiBkYXRhIH07XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnQm9vbGVhbicpIHtcbiAgICAgIHJldHVybiB7IEJPT0w6IGRhdGEgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudWxsJykge1xuICAgICAgcmV0dXJuIHsgTlVMTDogdHJ1ZSB9O1xuICAgIH0gZWxzZSBpZiAodHlwZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZSAhPT0gJ0Z1bmN0aW9uJykge1xuICAgICAgLy8gdGhpcyB2YWx1ZSBoYXMgYSBjdXN0b20gY29uc3RydWN0b3JcbiAgICAgIHJldHVybiBmb3JtYXRNYXAoZGF0YSwgb3B0aW9ucyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgSmF2YVNjcmlwdCBvYmplY3QgaW50byBhIER5bmFtb0RCIHJlY29yZC5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgW2FueV0gVGhlIGRhdGEgdG8gY29udmVydCB0byBhIER5bmFtb0RCIHJlY29yZFxuICAgKiBAcGFyYW0gb3B0aW9ucyBbbWFwXVxuICAgKiBAb3B0aW9uIG9wdGlvbnMgY29udmVydEVtcHR5VmFsdWVzIFtCb29sZWFuXSBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHlcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydCBlbXB0eSBzdHJpbmdzLCBibG9icyxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHNldHMgdG8gYG51bGxgXG4gICAqIEBvcHRpb24gb3B0aW9ucyB3cmFwTnVtYmVycyBbQm9vbGVhbl0gIFdoZXRoZXIgdG8gcmV0dXJuIG51bWJlcnMgYXMgYVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJWYWx1ZSBvYmplY3QgaW5zdGVhZCBvZlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0aW5nIHRoZW0gdG8gbmF0aXZlIEphdmFTY3JpcHRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVycy4gVGhpcyBhbGxvd3MgZm9yIHRoZSBzYWZlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kLXRyaXAgdHJhbnNwb3J0IG9mIG51bWJlcnMgb2ZcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJiaXRyYXJ5IHNpemUuXG4gICAqXG4gICAqIEByZXR1cm4gW21hcF0gQW4gb2JqZWN0IGluIHRoZSBEeW5hbW9EQiByZWNvcmQgZm9ybWF0LlxuICAgKlxuICAgKiBAZXhhbXBsZSBDb252ZXJ0IGEgSmF2YVNjcmlwdCBvYmplY3QgaW50byBhIER5bmFtb0RCIHJlY29yZFxuICAgKiAgdmFyIG1hcnNoYWxsZWQgPSBBV1MuRHluYW1vREIuQ29udmVydGVyLm1hcnNoYWxsKHtcbiAgICogICAgc3RyaW5nOiAnZm9vJyxcbiAgICogICAgbGlzdDogWydmaXp6JywgJ2J1enonLCAncG9wJ10sXG4gICAqICAgIG1hcDoge1xuICAgKiAgICAgIG5lc3RlZE1hcDoge1xuICAgKiAgICAgICAga2V5OiAndmFsdWUnLFxuICAgKiAgICAgIH1cbiAgICogICAgfSxcbiAgICogICAgbnVtYmVyOiAxMjMsXG4gICAqICAgIG51bGxWYWx1ZTogbnVsbCxcbiAgICogICAgYm9vbFZhbHVlOiB0cnVlLFxuICAgKiAgICBzdHJpbmdTZXQ6IG5ldyBEeW5hbW9EQlNldChbJ2ZvbycsICdiYXInLCAnYmF6J10pXG4gICAqICB9KTtcbiAgICovXG4gIG1hcnNoYWxsOiBmdW5jdGlvbiBtYXJzaGFsbEl0ZW0oZGF0YSwgb3B0aW9ucykge1xuICAgIHJldHVybiBBV1MuRHluYW1vREIuQ29udmVydGVyLmlucHV0KGRhdGEsIG9wdGlvbnMpLk07XG4gIH0sXG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBEeW5hbW9EQiBBdHRyaWJ1dGVWYWx1ZSBvYmplY3QgdG8gaXRzIGVxdWl2YWxlbnQgSmF2YVNjcmlwdCB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSBbbWFwXSBBbiBvYmplY3QgaW4gdGhlIEFtYXpvbiBEeW5hbW9EQiBBdHRyaWJ1dGVWYWx1ZSBmb3JtYXRcbiAgICogQHBhcmFtIG9wdGlvbnMgW21hcF1cbiAgICogQG9wdGlvbiBvcHRpb25zIGNvbnZlcnRFbXB0eVZhbHVlcyBbQm9vbGVhbl0gV2hldGhlciB0byBhdXRvbWF0aWNhbGx5XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnQgZW1wdHkgc3RyaW5ncywgYmxvYnMsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBzZXRzIHRvIGBudWxsYFxuICAgKiBAb3B0aW9uIG9wdGlvbnMgd3JhcE51bWJlcnMgW0Jvb2xlYW5dICBXaGV0aGVyIHRvIHJldHVybiBudW1iZXJzIGFzIGFcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyVmFsdWUgb2JqZWN0IGluc3RlYWQgb2ZcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGluZyB0aGVtIHRvIG5hdGl2ZSBKYXZhU2NyaXB0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcnMuIFRoaXMgYWxsb3dzIGZvciB0aGUgc2FmZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZC10cmlwIHRyYW5zcG9ydCBvZiBudW1iZXJzIG9mXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyYml0cmFyeSBzaXplLlxuICAgKlxuICAgKiBAcmV0dXJuIFtPYmplY3R8QXJyYXl8U3RyaW5nfE51bWJlcnxCb29sZWFufG51bGxdXG4gICAqXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLkNvbnZlcnRlci51bm1hcnNoYWxsIEFXUy5EeW5hbW9EQi5Db252ZXJ0ZXIudW5tYXJzaGFsbCB0b1xuICAgKiAgICBjb252ZXJ0IGVudGlyZSByZWNvcmRzIChyYXRoZXIgdGhhbiBpbmRpdmlkdWFsIGF0dHJpYnV0ZXMpXG4gICAqL1xuICBvdXRwdXQ6IGZ1bmN0aW9uIGNvbnZlcnRPdXRwdXQoZGF0YSwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHZhciBsaXN0LCBtYXAsIGk7XG4gICAgZm9yICh2YXIgdHlwZSBpbiBkYXRhKSB7XG4gICAgICB2YXIgdmFsdWVzID0gZGF0YVt0eXBlXTtcbiAgICAgIGlmICh0eXBlID09PSAnTScpIHtcbiAgICAgICAgbWFwID0ge307XG4gICAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZXMpIHtcbiAgICAgICAgICBtYXBba2V5XSA9IGNvbnZlcnRPdXRwdXQodmFsdWVzW2tleV0sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdMJykge1xuICAgICAgICBsaXN0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsaXN0LnB1c2goY29udmVydE91dHB1dCh2YWx1ZXNbaV0sIG9wdGlvbnMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1NTJykge1xuICAgICAgICBsaXN0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsaXN0LnB1c2godmFsdWVzW2ldICsgJycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgRHluYW1vREJTZXQobGlzdCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdOUycpIHtcbiAgICAgICAgbGlzdCA9IFtdO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgbGlzdC5wdXNoKGNvbnZlcnROdW1iZXIodmFsdWVzW2ldLCBvcHRpb25zLndyYXBOdW1iZXJzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBEeW5hbW9EQlNldChsaXN0KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ0JTJykge1xuICAgICAgICBsaXN0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsaXN0LnB1c2gobmV3IHV0aWwuQnVmZmVyKHZhbHVlc1tpXSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgRHluYW1vREJTZXQobGlzdCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdTJykge1xuICAgICAgICByZXR1cm4gdmFsdWVzICsgJyc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdOJykge1xuICAgICAgICByZXR1cm4gY29udmVydE51bWJlcih2YWx1ZXMsIG9wdGlvbnMud3JhcE51bWJlcnMpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnQicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyB1dGlsLkJ1ZmZlcih2YWx1ZXMpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnQk9PTCcpIHtcbiAgICAgICAgcmV0dXJuICh2YWx1ZXMgPT09ICd0cnVlJyB8fCB2YWx1ZXMgPT09ICdUUlVFJyB8fCB2YWx1ZXMgPT09IHRydWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnTlVMTCcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgRHluYW1vREIgcmVjb3JkIGludG8gYSBKYXZhU2NyaXB0IG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgW2FueV0gVGhlIER5bmFtb0RCIHJlY29yZFxuICAgKiBAcGFyYW0gb3B0aW9ucyBbbWFwXVxuICAgKiBAb3B0aW9uIG9wdGlvbnMgY29udmVydEVtcHR5VmFsdWVzIFtCb29sZWFuXSBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHlcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydCBlbXB0eSBzdHJpbmdzLCBibG9icyxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHNldHMgdG8gYG51bGxgXG4gICAqIEBvcHRpb24gb3B0aW9ucyB3cmFwTnVtYmVycyBbQm9vbGVhbl0gIFdoZXRoZXIgdG8gcmV0dXJuIG51bWJlcnMgYXMgYVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJWYWx1ZSBvYmplY3QgaW5zdGVhZCBvZlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0aW5nIHRoZW0gdG8gbmF0aXZlIEphdmFTY3JpcHRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVycy4gVGhpcyBhbGxvd3MgZm9yIHRoZSBzYWZlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kLXRyaXAgdHJhbnNwb3J0IG9mIG51bWJlcnMgb2ZcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJiaXRyYXJ5IHNpemUuXG4gICAqXG4gICAqIEByZXR1cm4gW21hcF0gQW4gb2JqZWN0IHdob3NlIHByb3BlcnRpZXMgaGF2ZSBiZWVuIGNvbnZlcnRlZCBmcm9tXG4gICAqICAgIER5bmFtb0RCJ3MgQXR0cmlidXRlVmFsdWUgZm9ybWF0IGludG8gdGhlaXIgY29ycmVzcG9uZGluZyBuYXRpdmVcbiAgICogICAgSmF2YVNjcmlwdCB0eXBlcy5cbiAgICpcbiAgICogQGV4YW1wbGUgQ29udmVydCBhIHJlY29yZCByZWNlaXZlZCBmcm9tIGEgRHluYW1vREIgc3RyZWFtXG4gICAqICB2YXIgdW5tYXJzaGFsbGVkID0gQVdTLkR5bmFtb0RCLkNvbnZlcnRlci51bm1hcnNoYWxsKHtcbiAgICogICAgc3RyaW5nOiB7UzogJ2Zvbyd9LFxuICAgKiAgICBsaXN0OiB7TDogW3tTOiAnZml6eid9LCB7UzogJ2J1enonfSwge1M6ICdwb3AnfV19LFxuICAgKiAgICBtYXA6IHtcbiAgICogICAgICBNOiB7XG4gICAqICAgICAgICBuZXN0ZWRNYXA6IHtcbiAgICogICAgICAgICAgTToge1xuICAgKiAgICAgICAgICAgIGtleToge1M6ICd2YWx1ZSd9XG4gICAqICAgICAgICAgIH1cbiAgICogICAgICAgIH1cbiAgICogICAgICB9XG4gICAqICAgIH0sXG4gICAqICAgIG51bWJlcjoge046ICcxMjMnfSxcbiAgICogICAgbnVsbFZhbHVlOiB7TlVMTDogdHJ1ZX0sXG4gICAqICAgIGJvb2xWYWx1ZToge0JPT0w6IHRydWV9XG4gICAqICB9KTtcbiAgICovXG4gIHVubWFyc2hhbGw6IGZ1bmN0aW9uIHVubWFyc2hhbGwoZGF0YSwgb3B0aW9ucykge1xuICAgIHJldHVybiBBV1MuRHluYW1vREIuQ29udmVydGVyLm91dHB1dCh7TTogZGF0YX0sIG9wdGlvbnMpO1xuICB9XG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICogQHBhcmFtIGRhdGEgW0FycmF5XVxuICogQHBhcmFtIG9wdGlvbnMgW21hcF1cbiAqL1xuZnVuY3Rpb24gZm9ybWF0TGlzdChkYXRhLCBvcHRpb25zKSB7XG4gIHZhciBsaXN0ID0ge0w6IFtdfTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgbGlzdFsnTCddLnB1c2goQVdTLkR5bmFtb0RCLkNvbnZlcnRlci5pbnB1dChkYXRhW2ldLCBvcHRpb25zKSk7XG4gIH1cbiAgcmV0dXJuIGxpc3Q7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKiBAcGFyYW0gdmFsdWUgW1N0cmluZ11cbiAqIEBwYXJhbSB3cmFwTnVtYmVycyBbQm9vbGVhbl1cbiAqL1xuZnVuY3Rpb24gY29udmVydE51bWJlcih2YWx1ZSwgd3JhcE51bWJlcnMpIHtcbiAgcmV0dXJuIHdyYXBOdW1iZXJzID8gbmV3IE51bWJlclZhbHVlKHZhbHVlKSA6IE51bWJlcih2YWx1ZSk7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKiBAcGFyYW0gZGF0YSBbbWFwXVxuICogQHBhcmFtIG9wdGlvbnMgW21hcF1cbiAqL1xuZnVuY3Rpb24gZm9ybWF0TWFwKGRhdGEsIG9wdGlvbnMpIHtcbiAgdmFyIG1hcCA9IHtNOiB7fX07XG4gIGZvciAodmFyIGtleSBpbiBkYXRhKSB7XG4gICAgdmFyIGZvcm1hdHRlZCA9IEFXUy5EeW5hbW9EQi5Db252ZXJ0ZXIuaW5wdXQoZGF0YVtrZXldLCBvcHRpb25zKTtcbiAgICBpZiAoZm9ybWF0dGVkICE9PSB2b2lkIDApIHtcbiAgICAgIG1hcFsnTSddW2tleV0gPSBmb3JtYXR0ZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXA7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdFNldChkYXRhLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgdmFsdWVzID0gZGF0YS52YWx1ZXM7XG4gIGlmIChvcHRpb25zLmNvbnZlcnRFbXB0eVZhbHVlcykge1xuICAgIHZhbHVlcyA9IGZpbHRlckVtcHR5U2V0VmFsdWVzKGRhdGEpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gQVdTLkR5bmFtb0RCLkNvbnZlcnRlci5pbnB1dChudWxsKTtcbiAgICB9XG4gIH1cblxuICB2YXIgbWFwID0ge307XG4gIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgY2FzZSAnU3RyaW5nJzogbWFwWydTUyddID0gdmFsdWVzOyBicmVhaztcbiAgICBjYXNlICdCaW5hcnknOiBtYXBbJ0JTJ10gPSB2YWx1ZXM7IGJyZWFrO1xuICAgIGNhc2UgJ051bWJlcic6IG1hcFsnTlMnXSA9IHZhbHVlcy5tYXAoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbWFwO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBmaWx0ZXJFbXB0eVNldFZhbHVlcyhzZXQpIHtcbiAgICB2YXIgbm9uRW1wdHlWYWx1ZXMgPSBbXTtcbiAgICB2YXIgcG90ZW50aWFsbHlFbXB0eVR5cGVzID0ge1xuICAgICAgICBTdHJpbmc6IHRydWUsXG4gICAgICAgIEJpbmFyeTogdHJ1ZSxcbiAgICAgICAgTnVtYmVyOiBmYWxzZVxuICAgIH07XG4gICAgaWYgKHBvdGVudGlhbGx5RW1wdHlUeXBlc1tzZXQudHlwZV0pIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXQudmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoc2V0LnZhbHVlc1tpXS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vbkVtcHR5VmFsdWVzLnB1c2goc2V0LnZhbHVlc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9uRW1wdHlWYWx1ZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldC52YWx1ZXM7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLkR5bmFtb0RCLkNvbnZlcnRlcjtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgVHJhbnNsYXRvciA9IHJlcXVpcmUoJy4vdHJhbnNsYXRvcicpO1xudmFyIER5bmFtb0RCU2V0ID0gcmVxdWlyZSgnLi9zZXQnKTtcblxuLyoqXG4gKiBUaGUgZG9jdW1lbnQgY2xpZW50IHNpbXBsaWZpZXMgd29ya2luZyB3aXRoIGl0ZW1zIGluIEFtYXpvbiBEeW5hbW9EQlxuICogYnkgYWJzdHJhY3RpbmcgYXdheSB0aGUgbm90aW9uIG9mIGF0dHJpYnV0ZSB2YWx1ZXMuIFRoaXMgYWJzdHJhY3Rpb25cbiAqIGFubm90YXRlcyBuYXRpdmUgSmF2YVNjcmlwdCB0eXBlcyBzdXBwbGllZCBhcyBpbnB1dCBwYXJhbWV0ZXJzLCBhcyB3ZWxsXG4gKiBhcyBjb252ZXJ0cyBhbm5vdGF0ZWQgcmVzcG9uc2UgZGF0YSB0byBuYXRpdmUgSmF2YVNjcmlwdCB0eXBlcy5cbiAqXG4gKiAjIyBNYXJzaGFsbGluZyBJbnB1dCBhbmQgVW5tYXJzaGFsbGluZyBSZXNwb25zZSBEYXRhXG4gKlxuICogVGhlIGRvY3VtZW50IGNsaWVudCBhZmZvcmRzIGRldmVsb3BlcnMgdGhlIHVzZSBvZiBuYXRpdmUgSmF2YVNjcmlwdCB0eXBlc1xuICogaW5zdGVhZCBvZiBgQXR0cmlidXRlVmFsdWVgcyB0byBzaW1wbGlmeSB0aGUgSmF2YVNjcmlwdCBkZXZlbG9wbWVudFxuICogZXhwZXJpZW5jZSB3aXRoIEFtYXpvbiBEeW5hbW9EQi4gSmF2YVNjcmlwdCBvYmplY3RzIHBhc3NlZCBpbiBhcyBwYXJhbWV0ZXJzXG4gKiBhcmUgbWFyc2hhbGxlZCBpbnRvIGBBdHRyaWJ1dGVWYWx1ZWAgc2hhcGVzIHJlcXVpcmVkIGJ5IEFtYXpvbiBEeW5hbW9EQi5cbiAqIFJlc3BvbnNlcyBmcm9tIER5bmFtb0RCIGFyZSB1bm1hcnNoYWxsZWQgaW50byBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdHNcbiAqIGJ5IHRoZSBgRG9jdW1lbnRDbGllbnRgLiBUaGUgYERvY3VtZW50Q2xpZW50YCwgZG9lcyBub3QgYWNjZXB0XG4gKiBgQXR0cmlidXRlVmFsdWVgcyBpbiBmYXZvciBvZiBuYXRpdmUgSmF2YVNjcmlwdCB0eXBlcy5cbiAqXG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEeW5hbW9EQiBBdHRyaWJ1dGVWYWx1ZSB8XG4gKiB8Oi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IFN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IE51bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IEJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBCT09MICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IG51bGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOVUxMICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IEFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IEJ1ZmZlciwgRmlsZSwgQmxvYiwgQXJyYXlCdWZmZXIsIERhdGFWaWV3LCBhbmQgSmF2YVNjcmlwdCB0eXBlZCBhcnJheXMgfCBCICAgICAgICAgICAgICAgICAgICAgICB8XG4gKlxuICogIyMgU3VwcG9ydCBmb3IgU2V0c1xuICpcbiAqIFRoZSBgRG9jdW1lbnRDbGllbnRgIG9mZmVycyBhIGNvbnZlbmllbnQgd2F5IHRvIGNyZWF0ZSBzZXRzIGZyb21cbiAqIEphdmFTY3JpcHQgQXJyYXlzLiBUaGUgdHlwZSBvZiBzZXQgaXMgaW5mZXJyZWQgZnJvbSB0aGUgZmlyc3QgZWxlbWVudFxuICogaW4gdGhlIGFycmF5LiBEeW5hbW9EQiBzdXBwb3J0cyBzdHJpbmcsIG51bWJlciwgYW5kIGJpbmFyeSBzZXRzLiBUb1xuICogbGVhcm4gbW9yZSBhYm91dCBzdXBwb3J0ZWQgdHlwZXMgc2VlIHRoZVxuICogW0FtYXpvbiBEeW5hbW9EQiBEYXRhIE1vZGVsIERvY3VtZW50YXRpb25dKGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9EYXRhTW9kZWwuaHRtbClcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSB7QVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50LmNyZWF0ZVNldH1cbiAqXG4gKi9cbkFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCA9IEFXUy51dGlsLmluaGVyaXQoe1xuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG9wZXJhdGlvbnM6IHtcbiAgICBiYXRjaEdldEl0ZW06ICdiYXRjaEdldCcsXG4gICAgYmF0Y2hXcml0ZUl0ZW06ICdiYXRjaFdyaXRlJyxcbiAgICBwdXRJdGVtOiAncHV0JyxcbiAgICBnZXRJdGVtOiAnZ2V0JyxcbiAgICBkZWxldGVJdGVtOiAnZGVsZXRlJyxcbiAgICB1cGRhdGVJdGVtOiAndXBkYXRlJyxcbiAgICBzY2FuOiAnc2NhbicsXG4gICAgcXVlcnk6ICdxdWVyeSdcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIER5bmFtb0RCIGRvY3VtZW50IGNsaWVudCB3aXRoIGEgc2V0IG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICpcbiAgICogQG9wdGlvbiBvcHRpb25zIHBhcmFtcyBbbWFwXSBBbiBvcHRpb25hbCBtYXAgb2YgcGFyYW1ldGVycyB0byBiaW5kIHRvIGV2ZXJ5XG4gICAqICAgcmVxdWVzdCBzZW50IGJ5IHRoaXMgc2VydmljZSBvYmplY3QuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBzZXJ2aWNlIFtBV1MuRHluYW1vREJdIEFuIG9wdGlvbmFsIHByZS1jb25maWd1cmVkIGluc3RhbmNlXG4gICAqICBvZiB0aGUgQVdTLkR5bmFtb0RCIHNlcnZpY2Ugb2JqZWN0IHRvIHVzZSBmb3IgcmVxdWVzdHMuIFRoZSBvYmplY3QgbWF5XG4gICAqICBib3VuZCBwYXJhbWV0ZXJzIHVzZWQgYnkgdGhlIGRvY3VtZW50IGNsaWVudC5cbiAgICogQG9wdGlvbiBvcHRpb25zIGNvbnZlcnRFbXB0eVZhbHVlcyBbQm9vbGVhbl0gc2V0IHRvIHRydWUgaWYgeW91IHdvdWxkIGxpa2VcbiAgICogIHRoZSBkb2N1bWVudCBjbGllbnQgdG8gY29udmVydCBlbXB0eSB2YWx1ZXMgKDAtbGVuZ3RoIHN0cmluZ3MsIGJpbmFyeVxuICAgKiAgYnVmZmVycywgYW5kIHNldHMpIHRvIGJlIGNvbnZlcnRlZCB0byBOVUxMIHR5cGVzIHdoZW4gcGVyc2lzdGluZyB0b1xuICAgKiAgRHluYW1vREIuXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLmNvbnN0cnVjdG9yXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gRG9jdW1lbnRDbGllbnQob3B0aW9ucykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHNlbGYuY29uZmlndXJlKHNlbGYub3B0aW9ucyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY29uZmlndXJlOiBmdW5jdGlvbiBjb25maWd1cmUob3B0aW9ucykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLnNlcnZpY2UgPSBvcHRpb25zLnNlcnZpY2U7XG4gICAgc2VsZi5iaW5kU2VydmljZU9iamVjdChvcHRpb25zKTtcbiAgICBzZWxmLmF0dHJWYWx1ZSA9IG9wdGlvbnMuYXR0clZhbHVlID1cbiAgICAgIHNlbGYuc2VydmljZS5hcGkub3BlcmF0aW9ucy5wdXRJdGVtLmlucHV0Lm1lbWJlcnMuSXRlbS52YWx1ZS5zaGFwZTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBiaW5kU2VydmljZU9iamVjdDogZnVuY3Rpb24gYmluZFNlcnZpY2VPYmplY3Qob3B0aW9ucykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgIGlmICghc2VsZi5zZXJ2aWNlKSB7XG4gICAgICBzZWxmLnNlcnZpY2UgPSBuZXcgQVdTLkR5bmFtb0RCKG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY29uZmlnID0gQVdTLnV0aWwuY29weShzZWxmLnNlcnZpY2UuY29uZmlnKTtcbiAgICAgIHNlbGYuc2VydmljZSA9IG5ldyBzZWxmLnNlcnZpY2UuY29uc3RydWN0b3IuX19zdXBlcl9fKGNvbmZpZyk7XG4gICAgICBzZWxmLnNlcnZpY2UuY29uZmlnLnBhcmFtcyA9XG4gICAgICAgIEFXUy51dGlsLm1lcmdlKHNlbGYuc2VydmljZS5jb25maWcucGFyYW1zIHx8IHt9LCBvcHRpb25zLnBhcmFtcyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhdHRyaWJ1dGVzIG9mIG9uZSBvciBtb3JlIGl0ZW1zIGZyb20gb25lIG9yIG1vcmUgdGFibGVzXG4gICAqIGJ5IGRlbGVnYXRpbmcgdG8gYEFXUy5EeW5hbW9EQi5iYXRjaEdldEl0ZW0oKWAuXG4gICAqXG4gICAqIFN1cHBseSB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIHtBV1MuRHluYW1vREIuYmF0Y2hHZXRJdGVtfSB3aXRoXG4gICAqIGBBdHRyaWJ1dGVWYWx1ZWBzIHN1YnN0aXR1dGVkIGJ5IG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzLlxuICAgKlxuICAgKiBAc2VlIEFXUy5EeW5hbW9EQi5iYXRjaEdldEl0ZW1cbiAgICogQGV4YW1wbGUgR2V0IGl0ZW1zIGZyb20gbXVsdGlwbGUgdGFibGVzXG4gICAqICB2YXIgcGFyYW1zID0ge1xuICAgKiAgICBSZXF1ZXN0SXRlbXM6IHtcbiAgICogICAgICAnVGFibGUtMSc6IHtcbiAgICogICAgICAgIEtleXM6IFtcbiAgICogICAgICAgICAge1xuICAgKiAgICAgICAgICAgICBIYXNoS2V5OiAnaGFza2V5JyxcbiAgICogICAgICAgICAgICAgTnVtYmVyUmFuZ2VLZXk6IDFcbiAgICogICAgICAgICAgfVxuICAgKiAgICAgICAgXVxuICAgKiAgICAgIH0sXG4gICAqICAgICAgJ1RhYmxlLTInOiB7XG4gICAqICAgICAgICBLZXlzOiBbXG4gICAqICAgICAgICAgIHsgZm9vOiAnYmFyJyB9LFxuICAgKiAgICAgICAgXVxuICAgKiAgICAgIH1cbiAgICogICAgfVxuICAgKiAgfTtcbiAgICpcbiAgICogIHZhciBkb2N1bWVudENsaWVudCA9IG5ldyBBV1MuRHluYW1vREIuRG9jdW1lbnRDbGllbnQoKTtcbiAgICpcbiAgICogIGRvY3VtZW50Q2xpZW50LmJhdGNoR2V0KHBhcmFtcywgZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAqICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgIGVsc2UgY29uc29sZS5sb2coZGF0YSk7XG4gICAqICB9KTtcbiAgICpcbiAgICovXG4gIGJhdGNoR2V0OiBmdW5jdGlvbihwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciByZXF1ZXN0ID0gc2VsZi5zZXJ2aWNlLmJhdGNoR2V0SXRlbShwYXJhbXMpO1xuICAgIHNlbGYuc2V0dXBSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIHNlbGYuc2V0dXBSZXNwb25zZShyZXF1ZXN0KTtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LnNlbmQoY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICAvKipcbiAgICogUHV0cyBvciBkZWxldGVzIG11bHRpcGxlIGl0ZW1zIGluIG9uZSBvciBtb3JlIHRhYmxlcyBieSBkZWxlZ2F0aW5nXG4gICAqIHRvIGBBV1MuRHluYW1vREIuYmF0Y2hXcml0ZUl0ZW0oKWAuXG4gICAqXG4gICAqIFN1cHBseSB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIHtBV1MuRHluYW1vREIuYmF0Y2hXcml0ZUl0ZW19IHdpdGhcbiAgICogYEF0dHJpYnV0ZVZhbHVlYHMgc3Vic3RpdHV0ZWQgYnkgbmF0aXZlIEphdmFTY3JpcHQgdHlwZXMuXG4gICAqXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLmJhdGNoV3JpdGVJdGVtXG4gICAqIEBleGFtcGxlIFdyaXRlIHRvIGFuZCBkZWxldGUgZnJvbSBhIHRhYmxlXG4gICAqICB2YXIgcGFyYW1zID0ge1xuICAgKiAgICBSZXF1ZXN0SXRlbXM6IHtcbiAgICogICAgICAnVGFibGUtMSc6IFtcbiAgICogICAgICAgIHtcbiAgICogICAgICAgICAgRGVsZXRlUmVxdWVzdDoge1xuICAgKiAgICAgICAgICAgIEtleTogeyBIYXNoS2V5OiAnc29tZUtleScgfVxuICAgKiAgICAgICAgICB9XG4gICAqICAgICAgICB9LFxuICAgKiAgICAgICAge1xuICAgKiAgICAgICAgICBQdXRSZXF1ZXN0OiB7XG4gICAqICAgICAgICAgICAgSXRlbToge1xuICAgKiAgICAgICAgICAgICAgSGFzaEtleTogJ2Fub3RoZXJLZXknLFxuICAgKiAgICAgICAgICAgICAgTnVtQXR0cmlidXRlOiAxLFxuICAgKiAgICAgICAgICAgICAgQm9vbEF0dHJpYnV0ZTogdHJ1ZSxcbiAgICogICAgICAgICAgICAgIExpc3RBdHRyaWJ1dGU6IFsxLCAndHdvJywgZmFsc2VdLFxuICAgKiAgICAgICAgICAgICAgTWFwQXR0cmlidXRlOiB7IGZvbzogJ2JhcicgfVxuICAgKiAgICAgICAgICAgIH1cbiAgICogICAgICAgICAgfVxuICAgKiAgICAgICAgfVxuICAgKiAgICAgIF1cbiAgICogICAgfVxuICAgKiAgfTtcbiAgICpcbiAgICogIHZhciBkb2N1bWVudENsaWVudCA9IG5ldyBBV1MuRHluYW1vREIuRG9jdW1lbnRDbGllbnQoKTtcbiAgICpcbiAgICogIGRvY3VtZW50Q2xpZW50LmJhdGNoV3JpdGUocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTtcbiAgICogICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogIH0pO1xuICAgKlxuICAgKi9cbiAgYmF0Y2hXcml0ZTogZnVuY3Rpb24ocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcmVxdWVzdCA9IHNlbGYuc2VydmljZS5iYXRjaFdyaXRlSXRlbShwYXJhbXMpO1xuICAgIHNlbGYuc2V0dXBSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIHNlbGYuc2V0dXBSZXNwb25zZShyZXF1ZXN0KTtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LnNlbmQoY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlcyBhIHNpbmdsZSBpdGVtIGluIGEgdGFibGUgYnkgcHJpbWFyeSBrZXkgYnkgZGVsZWdhdGluZyB0b1xuICAgKiBgQVdTLkR5bmFtb0RCLmRlbGV0ZUl0ZW0oKWBcbiAgICpcbiAgICogU3VwcGx5IHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMge0FXUy5EeW5hbW9EQi5kZWxldGVJdGVtfSB3aXRoXG4gICAqIGBBdHRyaWJ1dGVWYWx1ZWBzIHN1YnN0aXR1dGVkIGJ5IG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzLlxuICAgKlxuICAgKiBAc2VlIEFXUy5EeW5hbW9EQi5kZWxldGVJdGVtXG4gICAqIEBleGFtcGxlIERlbGV0ZSBhbiBpdGVtIGZyb20gYSB0YWJsZVxuICAgKiAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgVGFibGVOYW1lIDogJ1RhYmxlJyxcbiAgICogICAgS2V5OiB7XG4gICAqICAgICAgSGFzaEtleTogJ2hhc2hrZXknLFxuICAgKiAgICAgIE51bWJlclJhbmdlS2V5OiAxXG4gICAqICAgIH1cbiAgICogIH07XG4gICAqXG4gICAqICB2YXIgZG9jdW1lbnRDbGllbnQgPSBuZXcgQVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50KCk7XG4gICAqXG4gICAqICBkb2N1bWVudENsaWVudC5kZWxldGUocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTtcbiAgICogICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogIH0pO1xuICAgKlxuICAgKi9cbiAgZGVsZXRlOiBmdW5jdGlvbihwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciByZXF1ZXN0ID0gc2VsZi5zZXJ2aWNlLmRlbGV0ZUl0ZW0ocGFyYW1zKTtcbiAgICBzZWxmLnNldHVwUmVxdWVzdChyZXF1ZXN0KTtcbiAgICBzZWxmLnNldHVwUmVzcG9uc2UocmVxdWVzdCk7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmVxdWVzdC5zZW5kKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzZXQgb2YgYXR0cmlidXRlcyBmb3IgdGhlIGl0ZW0gd2l0aCB0aGUgZ2l2ZW4gcHJpbWFyeSBrZXlcbiAgICogYnkgZGVsZWdhdGluZyB0byBgQVdTLkR5bmFtb0RCLmdldEl0ZW0oKWAuXG4gICAqXG4gICAqIFN1cHBseSB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIHtBV1MuRHluYW1vREIuZ2V0SXRlbX0gd2l0aFxuICAgKiBgQXR0cmlidXRlVmFsdWVgcyBzdWJzdGl0dXRlZCBieSBuYXRpdmUgSmF2YVNjcmlwdCB0eXBlcy5cbiAgICpcbiAgICogQHNlZSBBV1MuRHluYW1vREIuZ2V0SXRlbVxuICAgKiBAZXhhbXBsZSBHZXQgYW4gaXRlbSBmcm9tIGEgdGFibGVcbiAgICogIHZhciBwYXJhbXMgPSB7XG4gICAqICAgIFRhYmxlTmFtZSA6ICdUYWJsZScsXG4gICAqICAgIEtleToge1xuICAgKiAgICAgIEhhc2hLZXk6ICdoYXNoa2V5J1xuICAgKiAgICB9XG4gICAqICB9O1xuICAgKlxuICAgKiAgdmFyIGRvY3VtZW50Q2xpZW50ID0gbmV3IEFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCgpO1xuICAgKlxuICAgKiAgZG9jdW1lbnRDbGllbnQuZ2V0KHBhcmFtcywgZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAqICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgIGVsc2UgY29uc29sZS5sb2coZGF0YSk7XG4gICAqICB9KTtcbiAgICpcbiAgICovXG4gIGdldDogZnVuY3Rpb24ocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcmVxdWVzdCA9IHNlbGYuc2VydmljZS5nZXRJdGVtKHBhcmFtcyk7XG4gICAgc2VsZi5zZXR1cFJlcXVlc3QocmVxdWVzdCk7XG4gICAgc2VsZi5zZXR1cFJlc3BvbnNlKHJlcXVlc3QpO1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlcXVlc3Quc2VuZChjYWxsYmFjayk7XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGl0ZW0sIG9yIHJlcGxhY2VzIGFuIG9sZCBpdGVtIHdpdGggYSBuZXcgaXRlbSBieVxuICAgKiBkZWxlZ2F0aW5nIHRvIGBBV1MuRHluYW1vREIucHV0SXRlbSgpYC5cbiAgICpcbiAgICogU3VwcGx5IHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMge0FXUy5EeW5hbW9EQi5wdXRJdGVtfSB3aXRoXG4gICAqIGBBdHRyaWJ1dGVWYWx1ZWBzIHN1YnN0aXR1dGVkIGJ5IG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzLlxuICAgKlxuICAgKiBAc2VlIEFXUy5EeW5hbW9EQi5wdXRJdGVtXG4gICAqIEBleGFtcGxlIENyZWF0ZSBhIG5ldyBpdGVtIGluIGEgdGFibGVcbiAgICogIHZhciBwYXJhbXMgPSB7XG4gICAqICAgIFRhYmxlTmFtZSA6ICdUYWJsZScsXG4gICAqICAgIEl0ZW06IHtcbiAgICogICAgICAgSGFzaEtleTogJ2hhc2tleScsXG4gICAqICAgICAgIE51bUF0dHJpYnV0ZTogMSxcbiAgICogICAgICAgQm9vbEF0dHJpYnV0ZTogdHJ1ZSxcbiAgICogICAgICAgTGlzdEF0dHJpYnV0ZTogWzEsICd0d28nLCBmYWxzZV0sXG4gICAqICAgICAgIE1hcEF0dHJpYnV0ZTogeyBmb286ICdiYXInfSxcbiAgICogICAgICAgTnVsbEF0dHJpYnV0ZTogbnVsbFxuICAgKiAgICB9XG4gICAqICB9O1xuICAgKlxuICAgKiAgdmFyIGRvY3VtZW50Q2xpZW50ID0gbmV3IEFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCgpO1xuICAgKlxuICAgKiAgZG9jdW1lbnRDbGllbnQucHV0KHBhcmFtcywgZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAqICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgIGVsc2UgY29uc29sZS5sb2coZGF0YSk7XG4gICAqICB9KTtcbiAgICpcbiAgICovXG4gIHB1dDogZnVuY3Rpb24gcHV0KHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHJlcXVlc3QgPSBzZWxmLnNlcnZpY2UucHV0SXRlbShwYXJhbXMpO1xuICAgIHNlbGYuc2V0dXBSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIHNlbGYuc2V0dXBSZXNwb25zZShyZXF1ZXN0KTtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LnNlbmQoY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICAvKipcbiAgICogRWRpdHMgYW4gZXhpc3RpbmcgaXRlbSdzIGF0dHJpYnV0ZXMsIG9yIGFkZHMgYSBuZXcgaXRlbSB0byB0aGUgdGFibGUgaWZcbiAgICogaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCBieSBkZWxlZ2F0aW5nIHRvIGBBV1MuRHluYW1vREIudXBkYXRlSXRlbSgpYC5cbiAgICpcbiAgICogU3VwcGx5IHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMge0FXUy5EeW5hbW9EQi51cGRhdGVJdGVtfSB3aXRoXG4gICAqIGBBdHRyaWJ1dGVWYWx1ZWBzIHN1YnN0aXR1dGVkIGJ5IG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzLlxuICAgKlxuICAgKiBAc2VlIEFXUy5EeW5hbW9EQi51cGRhdGVJdGVtXG4gICAqIEBleGFtcGxlIFVwZGF0ZSBhbiBpdGVtIHdpdGggZXhwcmVzc2lvbnNcbiAgICogIHZhciBwYXJhbXMgPSB7XG4gICAqICAgIFRhYmxlTmFtZTogJ1RhYmxlJyxcbiAgICogICAgS2V5OiB7IEhhc2hLZXkgOiAnaGFzaGtleScgfSxcbiAgICogICAgVXBkYXRlRXhwcmVzc2lvbjogJ3NldCAjYSA9IDp4ICsgOnknLFxuICAgKiAgICBDb25kaXRpb25FeHByZXNzaW9uOiAnI2EgPCA6TUFYJyxcbiAgICogICAgRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzOiB7JyNhJyA6ICdTdW0nfSxcbiAgICogICAgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgKiAgICAgICc6eCcgOiAyMCxcbiAgICogICAgICAnOnknIDogNDUsXG4gICAqICAgICAgJzpNQVgnIDogMTAwLFxuICAgKiAgICB9XG4gICAqICB9O1xuICAgKlxuICAgKiAgdmFyIGRvY3VtZW50Q2xpZW50ID0gbmV3IEFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCgpO1xuICAgKlxuICAgKiAgZG9jdW1lbnRDbGllbnQudXBkYXRlKHBhcmFtcywgZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAqICAgICBpZiAoZXJyKSBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogIH0pO1xuICAgKlxuICAgKi9cbiAgdXBkYXRlOiBmdW5jdGlvbihwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciByZXF1ZXN0ID0gc2VsZi5zZXJ2aWNlLnVwZGF0ZUl0ZW0ocGFyYW1zKTtcbiAgICBzZWxmLnNldHVwUmVxdWVzdChyZXF1ZXN0KTtcbiAgICBzZWxmLnNldHVwUmVzcG9uc2UocmVxdWVzdCk7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmVxdWVzdC5zZW5kKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgb25lIG9yIG1vcmUgaXRlbXMgYW5kIGl0ZW0gYXR0cmlidXRlcyBieSBhY2Nlc3NpbmcgZXZlcnkgaXRlbVxuICAgKiBpbiBhIHRhYmxlIG9yIGEgc2Vjb25kYXJ5IGluZGV4LlxuICAgKlxuICAgKiBTdXBwbHkgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB7QVdTLkR5bmFtb0RCLnNjYW59IHdpdGhcbiAgICogYEF0dHJpYnV0ZVZhbHVlYHMgc3Vic3RpdHV0ZWQgYnkgbmF0aXZlIEphdmFTY3JpcHQgdHlwZXMuXG4gICAqXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLnNjYW5cbiAgICogQGV4YW1wbGUgU2NhbiB0aGUgdGFibGUgd2l0aCBhIGZpbHRlciBleHByZXNzaW9uXG4gICAqICB2YXIgcGFyYW1zID0ge1xuICAgKiAgICBUYWJsZU5hbWUgOiAnVGFibGUnLFxuICAgKiAgICBGaWx0ZXJFeHByZXNzaW9uIDogJ1llYXIgPSA6dGhpc195ZWFyJyxcbiAgICogICAgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlcyA6IHsnOnRoaXNfeWVhcicgOiAyMDE1fVxuICAgKiAgfTtcbiAgICpcbiAgICogIHZhciBkb2N1bWVudENsaWVudCA9IG5ldyBBV1MuRHluYW1vREIuRG9jdW1lbnRDbGllbnQoKTtcbiAgICpcbiAgICogIGRvY3VtZW50Q2xpZW50LnNjYW4ocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgICBlbHNlIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgKiAgfSk7XG4gICAqXG4gICAqL1xuICBzY2FuOiBmdW5jdGlvbihwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciByZXF1ZXN0ID0gc2VsZi5zZXJ2aWNlLnNjYW4ocGFyYW1zKTtcbiAgICBzZWxmLnNldHVwUmVxdWVzdChyZXF1ZXN0KTtcbiAgICBzZWxmLnNldHVwUmVzcG9uc2UocmVxdWVzdCk7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmVxdWVzdC5zZW5kKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH0sXG5cbiAgIC8qKlxuICAgICogRGlyZWN0bHkgYWNjZXNzIGl0ZW1zIGZyb20gYSB0YWJsZSBieSBwcmltYXJ5IGtleSBvciBhIHNlY29uZGFyeSBpbmRleC5cbiAgICAqXG4gICAgKiBTdXBwbHkgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB7QVdTLkR5bmFtb0RCLnF1ZXJ5fSB3aXRoXG4gICAgKiBgQXR0cmlidXRlVmFsdWVgcyBzdWJzdGl0dXRlZCBieSBuYXRpdmUgSmF2YVNjcmlwdCB0eXBlcy5cbiAgICAqXG4gICAgKiBAc2VlIEFXUy5EeW5hbW9EQi5xdWVyeVxuICAgICogQGV4YW1wbGUgUXVlcnkgYW4gaW5kZXhcbiAgICAqICB2YXIgcGFyYW1zID0ge1xuICAgICogICAgVGFibGVOYW1lOiAnVGFibGUnLFxuICAgICogICAgSW5kZXhOYW1lOiAnSW5kZXgnLFxuICAgICogICAgS2V5Q29uZGl0aW9uRXhwcmVzc2lvbjogJ0hhc2hLZXkgPSA6aGtleSBhbmQgUmFuZ2VLZXkgPiA6cmtleScsXG4gICAgKiAgICBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzOiB7XG4gICAgKiAgICAgICc6aGtleSc6ICdrZXknLFxuICAgICogICAgICAnOnJrZXknOiAyMDE1XG4gICAgKiAgICB9XG4gICAgKiAgfTtcbiAgICAqXG4gICAgKiAgdmFyIGRvY3VtZW50Q2xpZW50ID0gbmV3IEFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCgpO1xuICAgICpcbiAgICAqICBkb2N1bWVudENsaWVudC5xdWVyeShwYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICogICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVycik7XG4gICAgKiAgICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICAqICB9KTtcbiAgICAqXG4gICAgKi9cbiAgcXVlcnk6IGZ1bmN0aW9uKHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHJlcXVlc3QgPSBzZWxmLnNlcnZpY2UucXVlcnkocGFyYW1zKTtcbiAgICBzZWxmLnNldHVwUmVxdWVzdChyZXF1ZXN0KTtcbiAgICBzZWxmLnNldHVwUmVzcG9uc2UocmVxdWVzdCk7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmVxdWVzdC5zZW5kKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzZXQgb2YgZWxlbWVudHMgaW5mZXJyaW5nIHRoZSB0eXBlIG9mIHNldCBmcm9tXG4gICAqIHRoZSB0eXBlIG9mIHRoZSBmaXJzdCBlbGVtZW50LiBBbWF6b24gRHluYW1vREIgY3VycmVudGx5IHN1cHBvcnRzXG4gICAqIHRoZSBudW1iZXIgc2V0cywgc3RyaW5nIHNldHMsIGFuZCBiaW5hcnkgc2V0cy4gRm9yIG1vcmUgaW5mb3JtYXRpb25cbiAgICogYWJvdXQgRHluYW1vREIgZGF0YSB0eXBlcyBzZWUgdGhlIGRvY3VtZW50YXRpb24gb24gdGhlXG4gICAqIFtBbWF6b24gRHluYW1vREIgRGF0YSBNb2RlbF0oaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0RhdGFNb2RlbC5odG1sI0RhdGFNb2RlbC5EYXRhVHlwZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gbGlzdCBbQXJyYXldIENvbGxlY3Rpb24gdG8gcmVwcmVzZW50IHlvdXIgRHluYW1vREIgU2V0XG4gICAqIEBwYXJhbSBvcHRpb25zIFttYXBdXG4gICAqICAqICoqdmFsaWRhdGUqKiBbQm9vbGVhbl0gc2V0IHRvIHRydWUgaWYgeW91IHdhbnQgdG8gdmFsaWRhdGUgdGhlIHR5cGVcbiAgICogICAgb2YgZWFjaCBlbGVtZW50IGluIHRoZSBzZXQuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGEgbnVtYmVyIHNldFxuICAgKiAgdmFyIGRvY3VtZW50Q2xpZW50ID0gbmV3IEFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCgpO1xuICAgKlxuICAgKiAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgSXRlbToge1xuICAgKiAgICAgIGhhc2hrZXk6ICdoYXNoa2V5J1xuICAgKiAgICAgIG51bWJlcnM6IGRvY3VtZW50Q2xpZW50LmNyZWF0ZVNldChbMSwgMiwgM10pO1xuICAgKiAgICB9XG4gICAqICB9O1xuICAgKlxuICAgKiAgZG9jdW1lbnRDbGllbnQucHV0KHBhcmFtcywgZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAqICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgIGVsc2UgY29uc29sZS5sb2coZGF0YSk7XG4gICAqICB9KTtcbiAgICpcbiAgICovXG4gIGNyZWF0ZVNldDogZnVuY3Rpb24obGlzdCwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHJldHVybiBuZXcgRHluYW1vREJTZXQobGlzdCwgb3B0aW9ucyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0VHJhbnNsYXRvcjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2xhdG9yKHRoaXMub3B0aW9ucyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0dXBSZXF1ZXN0OiBmdW5jdGlvbiBzZXR1cFJlcXVlc3QocmVxdWVzdCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgdHJhbnNsYXRvciA9IHNlbGYuZ2V0VHJhbnNsYXRvcigpO1xuICAgIHZhciBvcGVyYXRpb24gPSByZXF1ZXN0Lm9wZXJhdGlvbjtcbiAgICB2YXIgaW5wdXRTaGFwZSA9IHJlcXVlc3Quc2VydmljZS5hcGkub3BlcmF0aW9uc1tvcGVyYXRpb25dLmlucHV0O1xuICAgIHJlcXVlc3QuX2V2ZW50cy52YWxpZGF0ZS51bnNoaWZ0KGZ1bmN0aW9uKHJlcSkge1xuICAgICAgcmVxLnJhd1BhcmFtcyA9IEFXUy51dGlsLmNvcHkocmVxLnBhcmFtcyk7XG4gICAgICByZXEucGFyYW1zID0gdHJhbnNsYXRvci50cmFuc2xhdGVJbnB1dChyZXEucmF3UGFyYW1zLCBpbnB1dFNoYXBlKTtcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXR1cFJlc3BvbnNlOiBmdW5jdGlvbiBzZXR1cFJlc3BvbnNlKHJlcXVlc3QpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHRyYW5zbGF0b3IgPSBzZWxmLmdldFRyYW5zbGF0b3IoKTtcbiAgICB2YXIgb3V0cHV0U2hhcGUgPSBzZWxmLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxdWVzdC5vcGVyYXRpb25dLm91dHB1dDtcbiAgICByZXF1ZXN0Lm9uKCdleHRyYWN0RGF0YScsIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICByZXNwb25zZS5kYXRhID0gdHJhbnNsYXRvci50cmFuc2xhdGVPdXRwdXQocmVzcG9uc2UuZGF0YSwgb3V0cHV0U2hhcGUpO1xuICAgIH0pO1xuXG4gICAgdmFyIHJlc3BvbnNlID0gcmVxdWVzdC5yZXNwb25zZTtcbiAgICByZXNwb25zZS5uZXh0UGFnZSA9IGZ1bmN0aW9uKGNiKSB7XG4gICAgICB2YXIgcmVzcCA9IHRoaXM7XG4gICAgICB2YXIgcmVxID0gcmVzcC5yZXF1ZXN0O1xuICAgICAgdmFyIGNvbmZpZztcbiAgICAgIHZhciBzZXJ2aWNlID0gcmVxLnNlcnZpY2U7XG4gICAgICB2YXIgb3BlcmF0aW9uID0gcmVxLm9wZXJhdGlvbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbmZpZyA9IHNlcnZpY2UucGFnaW5hdGlvbkNvbmZpZyhvcGVyYXRpb24sIHRydWUpO1xuICAgICAgfSBjYXRjaCAoZSkgeyByZXNwLmVycm9yID0gZTsgfVxuXG4gICAgICBpZiAoIXJlc3AuaGFzTmV4dFBhZ2UoKSkge1xuICAgICAgICBpZiAoY2IpIGNiKHJlc3AuZXJyb3IsIG51bGwpO1xuICAgICAgICBlbHNlIGlmIChyZXNwLmVycm9yKSB0aHJvdyByZXNwLmVycm9yO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIHBhcmFtcyA9IEFXUy51dGlsLmNvcHkocmVxLnJhd1BhcmFtcyk7XG4gICAgICBpZiAoIXJlc3AubmV4dFBhZ2VUb2tlbnMpIHtcbiAgICAgICAgcmV0dXJuIGNiID8gY2IobnVsbCwgbnVsbCkgOiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGlucHV0VG9rZW5zID0gY29uZmlnLmlucHV0VG9rZW47XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXRUb2tlbnMgPT09ICdzdHJpbmcnKSBpbnB1dFRva2VucyA9IFtpbnB1dFRva2Vuc107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRUb2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBwYXJhbXNbaW5wdXRUb2tlbnNbaV1dID0gcmVzcC5uZXh0UGFnZVRva2Vuc1tpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZltvcGVyYXRpb25dKHBhcmFtcywgY2IpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50O1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi9jb3JlJykudXRpbDtcblxuLyoqXG4gKiBBbiBvYmplY3QgcmVjb2duaXphYmxlIGFzIGEgbnVtZXJpYyB2YWx1ZSB0aGF0IHN0b3JlcyB0aGUgdW5kZXJseWluZyBudW1iZXJcbiAqIGFzIGEgc3RyaW5nLlxuICpcbiAqIEludGVuZGVkIHRvIGJlIGEgZGVzZXJpYWxpemF0aW9uIHRhcmdldCBmb3IgdGhlIER5bmFtb0RCIERvY3VtZW50IENsaWVudCB3aGVuXG4gKiB0aGUgYHdyYXBOdW1iZXJzYCBmbGFnIGlzIHNldC4gVGhpcyBhbGxvd3MgZm9yIG51bWVyaWMgdmFsdWVzIHRoYXQgbG9zZVxuICogcHJlY2lzaW9uIHdoZW4gY29udmVydGVkIHRvIEphdmFTY3JpcHQncyBgbnVtYmVyYCB0eXBlLlxuICovXG52YXIgRHluYW1vREJOdW1iZXJWYWx1ZSA9IHV0aWwuaW5oZXJpdCh7XG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBOdW1iZXJWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMud3JhcHBlck5hbWUgPSAnTnVtYmVyVmFsdWUnO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHVuZGVybHlpbmcgdmFsdWUgYXMgYSBudW1iZXIgd2hlbiBjb252ZXJ0aW5nIHRvIEpTT04uXG4gICAqL1xuICB0b0pTT046IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy50b051bWJlcigpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRoZSB1bmRlcmx5aW5nIHZhbHVlIHRvIGEgSmF2YVNjcmlwdCBudW1iZXIuXG4gICAqL1xuICB0b051bWJlcjogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBOdW1iZXIodGhpcy52YWx1ZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHVuYWx0ZXJlZCB2YWx1ZSBwcm92aWRlZCB0byB0aGVcbiAgICogY29uc3RydWN0b3IuXG4gICAqL1xuICB0b1N0cmluZzogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBEeW5hbW9EQk51bWJlclZhbHVlOyIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vY29yZScpLnV0aWw7XG52YXIgdHlwZU9mID0gcmVxdWlyZSgnLi90eXBlcycpLnR5cGVPZjtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIG1lbWJlclR5cGVUb1NldFR5cGUgPSB7XG4gICdTdHJpbmcnOiAnU3RyaW5nJyxcbiAgJ051bWJlcic6ICdOdW1iZXInLFxuICAnTnVtYmVyVmFsdWUnOiAnTnVtYmVyJyxcbiAgJ0JpbmFyeSc6ICdCaW5hcnknXG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgRHluYW1vREJTZXQgPSB1dGlsLmluaGVyaXQoe1xuXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBTZXQobGlzdCwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHRoaXMud3JhcHBlck5hbWUgPSAnU2V0JztcbiAgICB0aGlzLmluaXRpYWxpemUobGlzdCwgb3B0aW9ucy52YWxpZGF0ZSk7XG4gIH0sXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24obGlzdCwgdmFsaWRhdGUpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi52YWx1ZXMgPSBbXS5jb25jYXQobGlzdCk7XG4gICAgc2VsZi5kZXRlY3RUeXBlKCk7XG4gICAgaWYgKHZhbGlkYXRlKSB7XG4gICAgICBzZWxmLnZhbGlkYXRlKCk7XG4gICAgfVxuICB9LFxuXG4gIGRldGVjdFR5cGU6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMudHlwZSA9IG1lbWJlclR5cGVUb1NldFR5cGVbdHlwZU9mKHRoaXMudmFsdWVzWzBdKV07XG4gICAgaWYgKCF0aGlzLnR5cGUpIHtcbiAgICAgIHRocm93IHV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgICAgY29kZTogJ0ludmFsaWRTZXRUeXBlJyxcbiAgICAgICAgbWVzc2FnZTogJ1NldHMgY2FuIGNvbnRhaW4gc3RyaW5nLCBudW1iZXIsIG9yIGJpbmFyeSB2YWx1ZXMnXG4gICAgICB9KTtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgbGVuZ3RoID0gc2VsZi52YWx1ZXMubGVuZ3RoO1xuICAgIHZhciB2YWx1ZXMgPSBzZWxmLnZhbHVlcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAobWVtYmVyVHlwZVRvU2V0VHlwZVt0eXBlT2YodmFsdWVzW2ldKV0gIT09IHNlbGYudHlwZSkge1xuICAgICAgICB0aHJvdyB1dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICAgICAgY29kZTogJ0ludmFsaWRUeXBlJyxcbiAgICAgICAgICBtZXNzYWdlOiBzZWxmLnR5cGUgKyAnIFNldCBjb250YWlucyAnICsgdHlwZU9mKHZhbHVlc1tpXSkgKyAnIHZhbHVlJ1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gRHluYW1vREJTZXQ7XG4iLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4uL2NvcmUnKS51dGlsO1xudmFyIGNvbnZlcnQgPSByZXF1aXJlKCcuL2NvbnZlcnRlcicpO1xuXG52YXIgVHJhbnNsYXRvciA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHRoaXMuYXR0clZhbHVlID0gb3B0aW9ucy5hdHRyVmFsdWU7XG4gIHRoaXMuY29udmVydEVtcHR5VmFsdWVzID0gQm9vbGVhbihvcHRpb25zLmNvbnZlcnRFbXB0eVZhbHVlcyk7XG4gIHRoaXMud3JhcE51bWJlcnMgPSBCb29sZWFuKG9wdGlvbnMud3JhcE51bWJlcnMpO1xufTtcblxuVHJhbnNsYXRvci5wcm90b3R5cGUudHJhbnNsYXRlSW5wdXQgPSBmdW5jdGlvbih2YWx1ZSwgc2hhcGUpIHtcbiAgdGhpcy5tb2RlID0gJ2lucHV0JztcbiAgcmV0dXJuIHRoaXMudHJhbnNsYXRlKHZhbHVlLCBzaGFwZSk7XG59O1xuXG5UcmFuc2xhdG9yLnByb3RvdHlwZS50cmFuc2xhdGVPdXRwdXQgPSBmdW5jdGlvbih2YWx1ZSwgc2hhcGUpIHtcbiAgdGhpcy5tb2RlID0gJ291dHB1dCc7XG4gIHJldHVybiB0aGlzLnRyYW5zbGF0ZSh2YWx1ZSwgc2hhcGUpO1xufTtcblxuVHJhbnNsYXRvci5wcm90b3R5cGUudHJhbnNsYXRlID0gZnVuY3Rpb24odmFsdWUsIHNoYXBlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgaWYgKCFzaGFwZSB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGlmIChzaGFwZS5zaGFwZSA9PT0gc2VsZi5hdHRyVmFsdWUpIHtcbiAgICByZXR1cm4gY29udmVydFtzZWxmLm1vZGVdKHZhbHVlLCB7XG4gICAgICBjb252ZXJ0RW1wdHlWYWx1ZXM6IHNlbGYuY29udmVydEVtcHR5VmFsdWVzLFxuICAgICAgd3JhcE51bWJlcnM6IHNlbGYud3JhcE51bWJlcnMsXG4gICAgfSk7XG4gIH1cbiAgc3dpdGNoIChzaGFwZS50eXBlKSB7XG4gICAgY2FzZSAnc3RydWN0dXJlJzogcmV0dXJuIHNlbGYudHJhbnNsYXRlU3RydWN0dXJlKHZhbHVlLCBzaGFwZSk7XG4gICAgY2FzZSAnbWFwJzogcmV0dXJuIHNlbGYudHJhbnNsYXRlTWFwKHZhbHVlLCBzaGFwZSk7XG4gICAgY2FzZSAnbGlzdCc6IHJldHVybiBzZWxmLnRyYW5zbGF0ZUxpc3QodmFsdWUsIHNoYXBlKTtcbiAgICBkZWZhdWx0OiByZXR1cm4gc2VsZi50cmFuc2xhdGVTY2FsYXIodmFsdWUsIHNoYXBlKTtcbiAgfVxufTtcblxuVHJhbnNsYXRvci5wcm90b3R5cGUudHJhbnNsYXRlU3RydWN0dXJlID0gZnVuY3Rpb24oc3RydWN0dXJlLCBzaGFwZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGlmIChzdHJ1Y3R1cmUgPT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICB2YXIgc3RydWN0ID0ge307XG4gIHV0aWwuZWFjaChzdHJ1Y3R1cmUsIGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7XG4gICAgdmFyIG1lbWJlclNoYXBlID0gc2hhcGUubWVtYmVyc1tuYW1lXTtcbiAgICBpZiAobWVtYmVyU2hhcGUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBzZWxmLnRyYW5zbGF0ZSh2YWx1ZSwgbWVtYmVyU2hhcGUpO1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSBzdHJ1Y3RbbmFtZV0gPSByZXN1bHQ7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHN0cnVjdDtcbn07XG5cblRyYW5zbGF0b3IucHJvdG90eXBlLnRyYW5zbGF0ZUxpc3QgPSBmdW5jdGlvbihsaXN0LCBzaGFwZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGlmIChsaXN0ID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgdmFyIG91dCA9IFtdO1xuICB1dGlsLmFycmF5RWFjaChsaXN0LCBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciByZXN1bHQgPSBzZWxmLnRyYW5zbGF0ZSh2YWx1ZSwgc2hhcGUubWVtYmVyKTtcbiAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIG91dC5wdXNoKG51bGwpO1xuICAgIGVsc2Ugb3V0LnB1c2gocmVzdWx0KTtcbiAgfSk7XG4gIHJldHVybiBvdXQ7XG59O1xuXG5UcmFuc2xhdG9yLnByb3RvdHlwZS50cmFuc2xhdGVNYXAgPSBmdW5jdGlvbihtYXAsIHNoYXBlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgaWYgKG1hcCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIHZhciBvdXQgPSB7fTtcbiAgdXRpbC5lYWNoKG1hcCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgIHZhciByZXN1bHQgPSBzZWxmLnRyYW5zbGF0ZSh2YWx1ZSwgc2hhcGUudmFsdWUpO1xuICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgb3V0W2tleV0gPSBudWxsO1xuICAgIGVsc2Ugb3V0W2tleV0gPSByZXN1bHQ7XG4gIH0pO1xuICByZXR1cm4gb3V0O1xufTtcblxuVHJhbnNsYXRvci5wcm90b3R5cGUudHJhbnNsYXRlU2NhbGFyID0gZnVuY3Rpb24odmFsdWUsIHNoYXBlKSB7XG4gIHJldHVybiBzaGFwZS50b1R5cGUodmFsdWUpO1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBUcmFuc2xhdG9yO1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi9jb3JlJykudXRpbDtcblxuZnVuY3Rpb24gdHlwZU9mKGRhdGEpIHtcbiAgaWYgKGRhdGEgPT09IG51bGwgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuICdudWxsJztcbiAgfSBlbHNlIGlmIChkYXRhICE9PSB1bmRlZmluZWQgJiYgaXNCaW5hcnkoZGF0YSkpIHtcbiAgICByZXR1cm4gJ0JpbmFyeSc7XG4gIH0gZWxzZSBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkICYmIGRhdGEuY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gZGF0YS53cmFwcGVyTmFtZSB8fCB1dGlsLnR5cGVOYW1lKGRhdGEuY29uc3RydWN0b3IpO1xuICB9IGVsc2UgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAvLyB0aGlzIG9iamVjdCBpcyB0aGUgcmVzdWx0IG9mIE9iamVjdC5jcmVhdGUobnVsbCksIGhlbmNlIHRoZSBhYnNlbmNlIG9mIGFcbiAgICAvLyBkZWZpbmVkIGNvbnN0cnVjdG9yXG4gICAgcmV0dXJuICdPYmplY3QnO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0JpbmFyeShkYXRhKSB7XG4gIHZhciB0eXBlcyA9IFtcbiAgICAnQnVmZmVyJywgJ0ZpbGUnLCAnQmxvYicsICdBcnJheUJ1ZmZlcicsICdEYXRhVmlldycsXG4gICAgJ0ludDhBcnJheScsICdVaW50OEFycmF5JywgJ1VpbnQ4Q2xhbXBlZEFycmF5JyxcbiAgICAnSW50MTZBcnJheScsICdVaW50MTZBcnJheScsICdJbnQzMkFycmF5JywgJ1VpbnQzMkFycmF5JyxcbiAgICAnRmxvYXQzMkFycmF5JywgJ0Zsb2F0NjRBcnJheSdcbiAgXTtcbiAgaWYgKHV0aWwuaXNOb2RlKCkpIHtcbiAgICB2YXIgU3RyZWFtID0gdXRpbC5zdHJlYW0uU3RyZWFtO1xuICAgIGlmICh1dGlsLkJ1ZmZlci5pc0J1ZmZlcihkYXRhKSB8fCBkYXRhIGluc3RhbmNlb2YgU3RyZWFtKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCAmJiBkYXRhLmNvbnN0cnVjdG9yKSB7XG4gICAgICBpZiAodXRpbC5pc1R5cGUoZGF0YSwgdHlwZXNbaV0pKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmICh1dGlsLnR5cGVOYW1lKGRhdGEuY29uc3RydWN0b3IpID09PSB0eXBlc1tpXSkgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdHlwZU9mOiB0eXBlT2YsXG4gIGlzQmluYXJ5OiBpc0JpbmFyeVxufTtcbiIsInZhciBldmVudE1lc3NhZ2VDaHVua2VyID0gcmVxdWlyZSgnLi4vZXZlbnQtc3RyZWFtL2V2ZW50LW1lc3NhZ2UtY2h1bmtlcicpLmV2ZW50TWVzc2FnZUNodW5rZXI7XG52YXIgcGFyc2VFdmVudCA9IHJlcXVpcmUoJy4vcGFyc2UtZXZlbnQnKS5wYXJzZUV2ZW50O1xuXG5mdW5jdGlvbiBjcmVhdGVFdmVudFN0cmVhbShib2R5LCBwYXJzZXIsIG1vZGVsKSB7XG4gICAgdmFyIGV2ZW50TWVzc2FnZXMgPSBldmVudE1lc3NhZ2VDaHVua2VyKGJvZHkpO1xuXG4gICAgdmFyIGV2ZW50cyA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudE1lc3NhZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGV2ZW50cy5wdXNoKHBhcnNlRXZlbnQocGFyc2VyLCBldmVudE1lc3NhZ2VzW2ldLCBtb2RlbCkpO1xuICAgIH1cblxuICAgIHJldHVybiBldmVudHM7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUV2ZW50U3RyZWFtOiBjcmVhdGVFdmVudFN0cmVhbVxufTsiLCIvKipcbiAqIFRha2VzIGluIGEgYnVmZmVyIG9mIGV2ZW50IG1lc3NhZ2VzIGFuZCBzcGxpdHMgdGhlbSBpbnRvIGluZGl2aWR1YWwgbWVzc2FnZXMuXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZXZlbnRNZXNzYWdlQ2h1bmtlcihidWZmZXIpIHtcbiAgICAvKiogQHR5cGUgQnVmZmVyW10gKi9cbiAgICB2YXIgbWVzc2FnZXMgPSBbXTtcbiAgICB2YXIgb2Zmc2V0ID0gMDtcblxuICAgIHdoaWxlIChvZmZzZXQgPCBidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgIHZhciB0b3RhbExlbmd0aCA9IGJ1ZmZlci5yZWFkSW50MzJCRShvZmZzZXQpO1xuXG4gICAgICAgIC8vIGNyZWF0ZSBuZXcgYnVmZmVyIGZvciBpbmRpdmlkdWFsIG1lc3NhZ2UgKHNoYXJlcyBtZW1vcnkgd2l0aCBvcmlnaW5hbClcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSBidWZmZXIuc2xpY2Uob2Zmc2V0LCB0b3RhbExlbmd0aCArIG9mZnNldCk7XG4gICAgICAgIC8vIGluY3JlbWVudCBvZmZzZXQgdG8gaXQgc3RhcnRzIGF0IHRoZSBuZXh0IG1lc3NhZ2VcbiAgICAgICAgb2Zmc2V0ICs9IHRvdGFsTGVuZ3RoO1xuXG4gICAgICAgIG1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBldmVudE1lc3NhZ2VDaHVua2VyOiBldmVudE1lc3NhZ2VDaHVua2VyXG59OyIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vY29yZScpLnV0aWw7XG52YXIgdG9CdWZmZXIgPSByZXF1aXJlKCcuL3RvLWJ1ZmZlcicpLnRvQnVmZmVyO1xuXG4vKipcbiAqIEEgbG9zc2xlc3MgcmVwcmVzZW50YXRpb24gb2YgYSBzaWduZWQsIDY0LWJpdCBpbnRlZ2VyLiBJbnN0YW5jZXMgb2YgdGhpc1xuICogY2xhc3MgbWF5IGJlIHVzZWQgaW4gYXJpdGhtZXRpYyBleHByZXNzaW9ucyBhcyBpZiB0aGV5IHdlcmUgbnVtZXJpY1xuICogcHJpbWl0aXZlcywgYnV0IHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBwcmVzZXJ2ZWQgdW5jaGFuZ2VkIGFzIHRoZVxuICogYGJ5dGVzYCBwcm9wZXJ0eSBvZiB0aGUgb2JqZWN0LiBUaGUgYnl0ZXMgc2hvdWxkIGJlIGVuY29kZWQgYXMgYmlnLWVuZGlhbixcbiAqIHR3bydzIGNvbXBsZW1lbnQgaW50ZWdlcnMuXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnl0ZXNcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gSW50NjQoYnl0ZXMpIHtcbiAgICBpZiAoYnl0ZXMubGVuZ3RoICE9PSA4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW50NjQgYnVmZmVycyBtdXN0IGJlIGV4YWN0bHkgOCBieXRlcycpO1xuICAgIH1cbiAgICBpZiAoIXV0aWwuQnVmZmVyLmlzQnVmZmVyKGJ5dGVzKSkgYnl0ZXMgPSB0b0J1ZmZlcihieXRlcyk7XG5cbiAgICB0aGlzLmJ5dGVzID0gYnl0ZXM7XG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IG51bWJlclxuICogQHJldHVybnMge0ludDY0fVxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5JbnQ2NC5mcm9tTnVtYmVyID0gZnVuY3Rpb24obnVtYmVyKSB7XG4gICAgaWYgKG51bWJlciA+IDkyMjMzNzIwMzY4NTQ3NzU4MDcgfHwgbnVtYmVyIDwgLTkyMjMzNzIwMzY4NTQ3NzU4MDgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgbnVtYmVyICsgJyBpcyB0b28gbGFyZ2UgKG9yLCBpZiBuZWdhdGl2ZSwgdG9vIHNtYWxsKSB0byByZXByZXNlbnQgYXMgYW4gSW50NjQnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoOClcbiAgICBmb3IgKFxuICAgICAgICB2YXIgaSA9IDcsIHJlbWFpbmluZyA9IE1hdGguYWJzKE1hdGgucm91bmQobnVtYmVyKSk7XG4gICAgICAgIGkgPiAtMSAmJiByZW1haW5pbmcgPiAwO1xuICAgICAgICBpLS0sIHJlbWFpbmluZyAvPSAyNTZcbiAgICApIHtcbiAgICAgICAgYnl0ZXNbaV0gPSByZW1haW5pbmc7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgbmVnYXRlKGJ5dGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEludDY0KGJ5dGVzKTtcbn07XG5cbi8qKlxuICogQHJldHVybnMge251bWJlcn1cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuSW50NjQucHJvdG90eXBlLnZhbHVlT2YgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgYnl0ZXMgPSB0aGlzLmJ5dGVzLnNsaWNlKDApO1xuICAgIHZhciBuZWdhdGl2ZSA9IGJ5dGVzWzBdICYgMTI4O1xuICAgIGlmIChuZWdhdGl2ZSkge1xuICAgICAgICBuZWdhdGUoYnl0ZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZUludChieXRlcy50b1N0cmluZygnaGV4JyksIDE2KSAqIChuZWdhdGl2ZSA/IC0xIDogMSk7XG59O1xuXG5JbnQ2NC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gU3RyaW5nKHRoaXMudmFsdWVPZigpKTtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtCdWZmZXJ9IGJ5dGVzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIG5lZ2F0ZShieXRlcykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKSB7XG4gICAgICAgIGJ5dGVzW2ldIF49IDB4RkY7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSA3OyBpID4gLTE7IGktLSkge1xuICAgICAgICBieXRlc1tpXSsrO1xuICAgICAgICBpZiAoYnl0ZXNbaV0gIT09IDApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBJbnQ2NDogSW50NjRcbn07IiwidmFyIHBhcnNlTWVzc2FnZSA9IHJlcXVpcmUoJy4vcGFyc2UtbWVzc2FnZScpLnBhcnNlTWVzc2FnZTtcblxuLyoqXG4gKlxuICogQHBhcmFtIHsqfSBwYXJzZXJcbiAqIEBwYXJhbSB7QnVmZmVyfSBtZXNzYWdlXG4gKiBAcGFyYW0geyp9IHNoYXBlXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gcGFyc2VFdmVudChwYXJzZXIsIG1lc3NhZ2UsIHNoYXBlKSB7XG4gICAgdmFyIHBhcnNlZE1lc3NhZ2UgPSBwYXJzZU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAvLyBjaGVjayBpZiBtZXNzYWdlIGlzIGFuIGV2ZW50IG9yIGVycm9yXG4gICAgdmFyIG1lc3NhZ2VUeXBlID0gcGFyc2VkTWVzc2FnZS5oZWFkZXJzWyc6bWVzc2FnZS10eXBlJ107XG4gICAgaWYgKG1lc3NhZ2VUeXBlKSB7XG4gICAgICAgIGlmIChtZXNzYWdlVHlwZS52YWx1ZSA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgdGhyb3cgcGFyc2VFcnJvcihwYXJzZWRNZXNzYWdlKTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlVHlwZS52YWx1ZSAhPT0gJ2V2ZW50Jykge1xuICAgICAgICAgICAgLy8gbm90IHN1cmUgaG93IHRvIHBhcnNlIG5vbi1ldmVudHMvbm9uLWVycm9ycywgaWdub3JlIGZvciBub3dcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRldGVybWluZSBldmVudCB0eXBlXG4gICAgdmFyIGV2ZW50VHlwZSA9IHBhcnNlZE1lc3NhZ2UuaGVhZGVyc1snOmV2ZW50LXR5cGUnXTtcbiAgICAvLyBjaGVjayB0aGF0IHRoZSBldmVudCB0eXBlIGlzIG1vZGVsZWRcbiAgICB2YXIgZXZlbnRNb2RlbCA9IHNoYXBlLm1lbWJlcnNbZXZlbnRUeXBlLnZhbHVlXTtcbiAgICBpZiAoIWV2ZW50TW9kZWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAvLyBjaGVjayBpZiBhbiBldmVudCBwYXlsb2FkIGV4aXN0c1xuICAgIHZhciBldmVudFBheWxvYWRNZW1iZXJOYW1lID0gZXZlbnRNb2RlbC5ldmVudFBheWxvYWRNZW1iZXJOYW1lO1xuICAgIGlmIChldmVudFBheWxvYWRNZW1iZXJOYW1lKSB7XG4gICAgICAgIHZhciBwYXlsb2FkU2hhcGUgPSBldmVudE1vZGVsLm1lbWJlcnNbZXZlbnRQYXlsb2FkTWVtYmVyTmFtZV07XG4gICAgICAgIC8vIGlmIHRoZSBzaGFwZSBpcyBiaW5hcnksIHJldHVybiB0aGUgYnl0ZSBhcnJheVxuICAgICAgICBpZiAocGF5bG9hZFNoYXBlLnR5cGUgPT09ICdiaW5hcnknKSB7XG4gICAgICAgICAgICByZXN1bHRbZXZlbnRQYXlsb2FkTWVtYmVyTmFtZV0gPSBwYXJzZWRNZXNzYWdlLmJvZHk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRbZXZlbnRQYXlsb2FkTWVtYmVyTmFtZV0gPSBwYXJzZXIucGFyc2UocGFyc2VkTWVzc2FnZS5ib2R5LnRvU3RyaW5nKCksIHBheWxvYWRTaGFwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByZWFkIGV2ZW50IGhlYWRlcnNcbiAgICB2YXIgZXZlbnRIZWFkZXJOYW1lcyA9IGV2ZW50TW9kZWwuZXZlbnRIZWFkZXJNZW1iZXJOYW1lcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50SGVhZGVyTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIG5hbWUgPSBldmVudEhlYWRlck5hbWVzW2ldO1xuICAgICAgICBpZiAocGFyc2VkTWVzc2FnZS5oZWFkZXJzW25hbWVdKSB7XG4gICAgICAgICAgICAvLyBwYXJzZSB0aGUgaGVhZGVyIVxuICAgICAgICAgICAgcmVzdWx0W25hbWVdID0gZXZlbnRNb2RlbC5tZW1iZXJzW25hbWVdLnRvVHlwZShwYXJzZWRNZXNzYWdlLmhlYWRlcnNbbmFtZV0udmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG91dHB1dCA9IHt9O1xuICAgIG91dHB1dFtldmVudFR5cGUudmFsdWVdID0gcmVzdWx0O1xuICAgIHJldHVybiBvdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlRXJyb3IobWVzc2FnZSkge1xuICAgIHZhciBlcnJvckNvZGUgPSBtZXNzYWdlLmhlYWRlcnNbJzplcnJvci1jb2RlJ107XG4gICAgdmFyIGVycm9yTWVzc2FnZSA9IG1lc3NhZ2UuaGVhZGVyc1snOmVycm9yLW1lc3NhZ2UnXTtcbiAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnZhbHVlIHx8IGVycm9yTWVzc2FnZSk7XG4gICAgZXJyb3IuY29kZSA9IGVycm9yLm5hbWUgPSBlcnJvckNvZGUudmFsdWUgfHwgZXJyb3JDb2RlO1xuICAgIHJldHVybiBlcnJvcjtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgcGFyc2VFdmVudDogcGFyc2VFdmVudFxufTsiLCJ2YXIgSW50NjQgPSByZXF1aXJlKCcuL2ludDY0JykuSW50NjQ7XG5cbnZhciBzcGxpdE1lc3NhZ2UgPSByZXF1aXJlKCcuL3NwbGl0LW1lc3NhZ2UnKS5zcGxpdE1lc3NhZ2U7XG5cbnZhciBCT09MRUFOX1RBRyA9ICdib29sZWFuJztcbnZhciBCWVRFX1RBRyA9ICdieXRlJztcbnZhciBTSE9SVF9UQUcgPSAnc2hvcnQnO1xudmFyIElOVF9UQUcgPSAnaW50ZWdlcic7XG52YXIgTE9OR19UQUcgPSAnbG9uZyc7XG52YXIgQklOQVJZX1RBRyA9ICdiaW5hcnknO1xudmFyIFNUUklOR19UQUcgPSAnc3RyaW5nJztcbnZhciBUSU1FU1RBTVBfVEFHID0gJ3RpbWVzdGFtcCc7XG52YXIgVVVJRF9UQUcgPSAndXVpZCc7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IGhlYWRlcnNcbiAqL1xuZnVuY3Rpb24gcGFyc2VIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICB2YXIgb3V0ID0ge307XG4gICAgdmFyIHBvc2l0aW9uID0gMDtcbiAgICB3aGlsZSAocG9zaXRpb24gPCBoZWFkZXJzLmxlbmd0aCkge1xuICAgICAgICB2YXIgbmFtZUxlbmd0aCA9IGhlYWRlcnMucmVhZFVJbnQ4KHBvc2l0aW9uKyspO1xuICAgICAgICB2YXIgbmFtZSA9IGhlYWRlcnMuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgbmFtZUxlbmd0aCkudG9TdHJpbmcoKTtcbiAgICAgICAgcG9zaXRpb24gKz0gbmFtZUxlbmd0aDtcbiAgICAgICAgc3dpdGNoIChoZWFkZXJzLnJlYWRVSW50OChwb3NpdGlvbisrKSkge1xuICAgICAgICAgICAgY2FzZSAwIC8qIGJvb2xUcnVlICovOlxuICAgICAgICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogQk9PTEVBTl9UQUcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMSAvKiBib29sRmFsc2UgKi86XG4gICAgICAgICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBCT09MRUFOX1RBRyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMiAvKiBieXRlICovOlxuICAgICAgICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogQllURV9UQUcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBoZWFkZXJzLnJlYWRJbnQ4KHBvc2l0aW9uKyspXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMyAvKiBzaG9ydCAqLzpcbiAgICAgICAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFNIT1JUX1RBRyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGhlYWRlcnMucmVhZEludDE2QkUocG9zaXRpb24pXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSAyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA0IC8qIGludGVnZXIgKi86XG4gICAgICAgICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBJTlRfVEFHLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5yZWFkSW50MzJCRShwb3NpdGlvbilcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IDQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDUgLyogbG9uZyAqLzpcbiAgICAgICAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IExPTkdfVEFHLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3IEludDY0KGhlYWRlcnMuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgOCkpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSA4O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA2IC8qIGJ5dGVBcnJheSAqLzpcbiAgICAgICAgICAgICAgICB2YXIgYmluYXJ5TGVuZ3RoID0gaGVhZGVycy5yZWFkVUludDE2QkUocG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IDI7XG4gICAgICAgICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBCSU5BUllfVEFHLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5zbGljZShwb3NpdGlvbiwgcG9zaXRpb24gKyBiaW5hcnlMZW5ndGgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSBiaW5hcnlMZW5ndGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDcgLyogc3RyaW5nICovOlxuICAgICAgICAgICAgICAgIHZhciBzdHJpbmdMZW5ndGggPSBoZWFkZXJzLnJlYWRVSW50MTZCRShwb3NpdGlvbik7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24gKz0gMjtcbiAgICAgICAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFNUUklOR19UQUcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBoZWFkZXJzLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiArIHN0cmluZ0xlbmd0aFxuICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IHN0cmluZ0xlbmd0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgOCAvKiB0aW1lc3RhbXAgKi86XG4gICAgICAgICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBUSU1FU1RBTVBfVEFHLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3IERhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50NjQoaGVhZGVycy5zbGljZShwb3NpdGlvbiwgcG9zaXRpb24gKyA4KSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IDg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDkgLyogdXVpZCAqLzpcbiAgICAgICAgICAgICAgICB2YXIgdXVpZENoYXJzID0gaGVhZGVycy5zbGljZShwb3NpdGlvbiwgcG9zaXRpb24gKyAxNilcbiAgICAgICAgICAgICAgICAgICAgLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSAxNjtcbiAgICAgICAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFVVSURfVEFHLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdXVpZENoYXJzLnN1YnN0cigwLCA4KSArICctJyArXG4gICAgICAgICAgICAgICAgICAgICAgICB1dWlkQ2hhcnMuc3Vic3RyKDgsIDQpICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHV1aWRDaGFycy5zdWJzdHIoMTIsIDQpICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHV1aWRDaGFycy5zdWJzdHIoMTYsIDQpICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHV1aWRDaGFycy5zdWJzdHIoMjApXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgaGVhZGVyIHR5cGUgdGFnJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gcGFyc2VNZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICB2YXIgcGFyc2VkID0gc3BsaXRNZXNzYWdlKG1lc3NhZ2UpO1xuICAgIHJldHVybiB7IGhlYWRlcnM6IHBhcnNlSGVhZGVycyhwYXJzZWQuaGVhZGVycyksIGJvZHk6IHBhcnNlZC5ib2R5IH07XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHBhcnNlTWVzc2FnZTogcGFyc2VNZXNzYWdlXG59OyIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vY29yZScpLnV0aWw7XG52YXIgdG9CdWZmZXIgPSByZXF1aXJlKCcuL3RvLWJ1ZmZlcicpLnRvQnVmZmVyO1xuXG4vLyBBbGwgcHJlbHVkZSBjb21wb25lbnRzIGFyZSB1bnNpZ25lZCwgMzItYml0IGludGVnZXJzXG52YXIgUFJFTFVERV9NRU1CRVJfTEVOR1RIID0gNDtcbi8vIFRoZSBwcmVsdWRlIGNvbnNpc3RzIG9mIHR3byBjb21wb25lbnRzXG52YXIgUFJFTFVERV9MRU5HVEggPSBQUkVMVURFX01FTUJFUl9MRU5HVEggKiAyO1xuLy8gQ2hlY2tzdW1zIGFyZSBhbHdheXMgQ1JDMzIgaGFzaGVzLlxudmFyIENIRUNLU1VNX0xFTkdUSCA9IDQ7XG4vLyBNZXNzYWdlcyBtdXN0IGluY2x1ZGUgYSBmdWxsIHByZWx1ZGUsIGEgcHJlbHVkZSBjaGVja3N1bSwgYW5kIGEgbWVzc2FnZSBjaGVja3N1bVxudmFyIE1JTklNVU1fTUVTU0FHRV9MRU5HVEggPSBQUkVMVURFX0xFTkdUSCArIENIRUNLU1VNX0xFTkdUSCAqIDI7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IG1lc3NhZ2VcbiAqL1xuZnVuY3Rpb24gc3BsaXRNZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICBpZiAoIXV0aWwuQnVmZmVyLmlzQnVmZmVyKG1lc3NhZ2UpKSBtZXNzYWdlID0gdG9CdWZmZXIobWVzc2FnZSk7XG5cbiAgICBpZiAobWVzc2FnZS5sZW5ndGggPCBNSU5JTVVNX01FU1NBR0VfTEVOR1RIKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZWQgbWVzc2FnZSB0b28gc2hvcnQgdG8gYWNjb21tb2RhdGUgZXZlbnQgc3RyZWFtIG1lc3NhZ2Ugb3ZlcmhlYWQnKTtcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZS5sZW5ndGggIT09IG1lc3NhZ2UucmVhZFVJbnQzMkJFKDApKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUmVwb3J0ZWQgbWVzc2FnZSBsZW5ndGggZG9lcyBub3QgbWF0Y2ggcmVjZWl2ZWQgbWVzc2FnZSBsZW5ndGgnKTtcbiAgICB9XG5cbiAgICB2YXIgZXhwZWN0ZWRQcmVsdWRlQ2hlY2tzdW0gPSBtZXNzYWdlLnJlYWRVSW50MzJCRShQUkVMVURFX0xFTkdUSCk7XG5cbiAgICBpZiAoXG4gICAgICAgIGV4cGVjdGVkUHJlbHVkZUNoZWNrc3VtICE9PSB1dGlsLmNyeXB0by5jcmMzMihcbiAgICAgICAgICAgIG1lc3NhZ2Uuc2xpY2UoMCwgUFJFTFVERV9MRU5HVEgpXG4gICAgICAgIClcbiAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ1RoZSBwcmVsdWRlIGNoZWNrc3VtIHNwZWNpZmllZCBpbiB0aGUgbWVzc2FnZSAoJyArXG4gICAgICAgICAgICBleHBlY3RlZFByZWx1ZGVDaGVja3N1bSArXG4gICAgICAgICAgICAnKSBkb2VzIG5vdCBtYXRjaCB0aGUgY2FsY3VsYXRlZCBDUkMzMiBjaGVja3N1bS4nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGV4cGVjdGVkTWVzc2FnZUNoZWNrc3VtID0gbWVzc2FnZS5yZWFkVUludDMyQkUobWVzc2FnZS5sZW5ndGggLSBDSEVDS1NVTV9MRU5HVEgpO1xuXG4gICAgaWYgKFxuICAgICAgICBleHBlY3RlZE1lc3NhZ2VDaGVja3N1bSAhPT0gdXRpbC5jcnlwdG8uY3JjMzIoXG4gICAgICAgICAgICBtZXNzYWdlLnNsaWNlKDAsIG1lc3NhZ2UubGVuZ3RoIC0gQ0hFQ0tTVU1fTEVOR1RIKVxuICAgICAgICApXG4gICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdUaGUgbWVzc2FnZSBjaGVja3N1bSBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiAnICtcbiAgICAgICAgICAgICAgICBleHBlY3RlZE1lc3NhZ2VDaGVja3N1bVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHZhciBoZWFkZXJzU3RhcnQgPSBQUkVMVURFX0xFTkdUSCArIENIRUNLU1VNX0xFTkdUSDtcbiAgICB2YXIgaGVhZGVyc0VuZCA9IGhlYWRlcnNTdGFydCArIG1lc3NhZ2UucmVhZFVJbnQzMkJFKFBSRUxVREVfTUVNQkVSX0xFTkdUSCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBoZWFkZXJzOiBtZXNzYWdlLnNsaWNlKGhlYWRlcnNTdGFydCwgaGVhZGVyc0VuZCksXG4gICAgICAgIGJvZHk6IG1lc3NhZ2Uuc2xpY2UoaGVhZGVyc0VuZCwgbWVzc2FnZS5sZW5ndGggLSBDSEVDS1NVTV9MRU5HVEgpLFxuICAgIH07XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNwbGl0TWVzc2FnZTogc3BsaXRNZXNzYWdlXG59OyIsInZhciBCdWZmZXIgPSByZXF1aXJlKCcuLi9jb3JlJykudXRpbC5CdWZmZXI7XG4vKipcbiAqIENvbnZlcnRzIGRhdGEgaW50byBCdWZmZXIuXG4gKiBAcGFyYW0ge0FycmF5QnVmZmVyfHN0cmluZ3xudW1iZXJbXXxCdWZmZXJ9IGRhdGEgRGF0YSB0byBjb252ZXJ0IHRvIGEgQnVmZmVyXG4gKiBAcGFyYW0ge3N0cmluZ30gW2VuY29kaW5nXSBTdHJpbmcgZW5jb2RpbmdcbiAqIEByZXR1cm5zIHtCdWZmZXJ9XG4gKi9cbmZ1bmN0aW9uIHRvQnVmZmVyKGRhdGEsIGVuY29kaW5nKSB7XG4gICAgcmV0dXJuICh0eXBlb2YgQnVmZmVyLmZyb20gPT09ICdmdW5jdGlvbicgJiYgQnVmZmVyLmZyb20gIT09IFVpbnQ4QXJyYXkuZnJvbSkgP1xuICAgICAgICBCdWZmZXIuZnJvbShkYXRhLCBlbmNvZGluZykgOiBuZXcgQnVmZmVyKGRhdGEsIGVuY29kaW5nKTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdG9CdWZmZXI6IHRvQnVmZmVyXG59OyIsInZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcbnZhciBTZXF1ZW50aWFsRXhlY3V0b3IgPSByZXF1aXJlKCcuL3NlcXVlbnRpYWxfZXhlY3V0b3InKTtcbi8qKlxuICogVGhlIG5hbWVzcGFjZSB1c2VkIHRvIHJlZ2lzdGVyIGdsb2JhbCBldmVudCBsaXN0ZW5lcnMgZm9yIHJlcXVlc3QgYnVpbGRpbmdcbiAqIGFuZCBzZW5kaW5nLlxuICovXG5BV1MuRXZlbnRMaXN0ZW5lcnMgPSB7XG4gIC8qKlxuICAgKiBAIWF0dHJpYnV0ZSBWQUxJREFURV9DUkVERU5USUFMU1xuICAgKiAgIEEgcmVxdWVzdCBsaXN0ZW5lciB0aGF0IHZhbGlkYXRlcyB3aGV0aGVyIHRoZSByZXF1ZXN0IGlzIGJlaW5nXG4gICAqICAgc2VudCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKiAgIEhhbmRsZXMgdGhlIHtBV1MuUmVxdWVzdH52YWxpZGF0ZSAndmFsaWRhdGUnIFJlcXVlc3QgZXZlbnR9XG4gICAqICAgQGV4YW1wbGUgU2VuZGluZyBhIHJlcXVlc3Qgd2l0aG91dCB2YWxpZGF0aW5nIGNyZWRlbnRpYWxzXG4gICAqICAgICB2YXIgbGlzdGVuZXIgPSBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9DUkVERU5USUFMUztcbiAgICogICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ3ZhbGlkYXRlJywgbGlzdGVuZXIpO1xuICAgKiAgIEByZWFkb25seVxuICAgKiAgIEByZXR1cm4gW0Z1bmN0aW9uXVxuICAgKiBAIWF0dHJpYnV0ZSBWQUxJREFURV9SRUdJT05cbiAgICogICBBIHJlcXVlc3QgbGlzdGVuZXIgdGhhdCB2YWxpZGF0ZXMgd2hldGhlciB0aGUgcmVnaW9uIGlzIHNldFxuICAgKiAgIGZvciBhIHJlcXVlc3QuXG4gICAqICAgSGFuZGxlcyB0aGUge0FXUy5SZXF1ZXN0fnZhbGlkYXRlICd2YWxpZGF0ZScgUmVxdWVzdCBldmVudH1cbiAgICogICBAZXhhbXBsZSBTZW5kaW5nIGEgcmVxdWVzdCB3aXRob3V0IHZhbGlkYXRpbmcgcmVnaW9uIGNvbmZpZ3VyYXRpb25cbiAgICogICAgIHZhciBsaXN0ZW5lciA9IEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlZBTElEQVRFX1JFR0lPTjtcbiAgICogICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ3ZhbGlkYXRlJywgbGlzdGVuZXIpO1xuICAgKiAgIEByZWFkb25seVxuICAgKiAgIEByZXR1cm4gW0Z1bmN0aW9uXVxuICAgKiBAIWF0dHJpYnV0ZSBWQUxJREFURV9QQVJBTUVURVJTXG4gICAqICAgQSByZXF1ZXN0IGxpc3RlbmVyIHRoYXQgdmFsaWRhdGVzIGlucHV0IHBhcmFtZXRlcnMgaW4gYSByZXF1ZXN0LlxuICAgKiAgIEhhbmRsZXMgdGhlIHtBV1MuUmVxdWVzdH52YWxpZGF0ZSAndmFsaWRhdGUnIFJlcXVlc3QgZXZlbnR9XG4gICAqICAgQGV4YW1wbGUgU2VuZGluZyBhIHJlcXVlc3Qgd2l0aG91dCB2YWxpZGF0aW5nIHBhcmFtZXRlcnNcbiAgICogICAgIHZhciBsaXN0ZW5lciA9IEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlZBTElEQVRFX1BBUkFNRVRFUlM7XG4gICAqICAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCd2YWxpZGF0ZScsIGxpc3RlbmVyKTtcbiAgICogICBAZXhhbXBsZSBEaXNhYmxlIHBhcmFtZXRlciB2YWxpZGF0aW9uIGdsb2JhbGx5XG4gICAqICAgICBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5yZW1vdmVMaXN0ZW5lcigndmFsaWRhdGUnLFxuICAgKiAgICAgICBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9SRUdJT04pO1xuICAgKiAgIEByZWFkb25seVxuICAgKiAgIEByZXR1cm4gW0Z1bmN0aW9uXVxuICAgKiBAIWF0dHJpYnV0ZSBTRU5EXG4gICAqICAgQSByZXF1ZXN0IGxpc3RlbmVyIHRoYXQgaW5pdGlhdGVzIHRoZSBIVFRQIGNvbm5lY3Rpb24gZm9yIGFcbiAgICogICByZXF1ZXN0IGJlaW5nIHNlbnQuIEhhbmRsZXMgdGhlIHtBV1MuUmVxdWVzdH5zZW5kICdzZW5kJyBSZXF1ZXN0IGV2ZW50fVxuICAgKiAgIEBleGFtcGxlIFJlcGxhY2luZyB0aGUgSFRUUCBoYW5kbGVyXG4gICAqICAgICB2YXIgbGlzdGVuZXIgPSBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5TRU5EO1xuICAgKiAgICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcignc2VuZCcsIGxpc3RlbmVyKTtcbiAgICogICAgIHJlcXVlc3Qub24oJ3NlbmQnLCBmdW5jdGlvbihyZXNwb25zZSkge1xuICAgKiAgICAgICBjdXN0b21IYW5kbGVyLnNlbmQocmVzcG9uc2UpO1xuICAgKiAgICAgfSk7XG4gICAqICAgQHJldHVybiBbRnVuY3Rpb25dXG4gICAqICAgQHJlYWRvbmx5XG4gICAqIEAhYXR0cmlidXRlIEhUVFBfREFUQVxuICAgKiAgIEEgcmVxdWVzdCBsaXN0ZW5lciB0aGF0IHJlYWRzIGRhdGEgZnJvbSB0aGUgSFRUUCBjb25uZWN0aW9uIGluIG9yZGVyXG4gICAqICAgdG8gYnVpbGQgdGhlIHJlc3BvbnNlIGRhdGEuXG4gICAqICAgSGFuZGxlcyB0aGUge0FXUy5SZXF1ZXN0fmh0dHBEYXRhICdodHRwRGF0YScgUmVxdWVzdCBldmVudH0uXG4gICAqICAgUmVtb3ZlIHRoaXMgaGFuZGxlciBpZiB5b3UgYXJlIG92ZXJyaWRpbmcgdGhlICdodHRwRGF0YScgZXZlbnQgYW5kXG4gICAqICAgZG8gbm90IHdhbnQgZXh0cmEgZGF0YSBwcm9jZXNzaW5nIGFuZCBidWZmZXJpbmcgb3ZlcmhlYWQuXG4gICAqICAgQGV4YW1wbGUgRGlzYWJsaW5nIGRlZmF1bHQgZGF0YSBwcm9jZXNzaW5nXG4gICAqICAgICB2YXIgbGlzdGVuZXIgPSBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5IVFRQX0RBVEE7XG4gICAqICAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdodHRwRGF0YScsIGxpc3RlbmVyKTtcbiAgICogICBAcmV0dXJuIFtGdW5jdGlvbl1cbiAgICogICBAcmVhZG9ubHlcbiAgICovXG4gIENvcmU6IHt9IC8qIGRvYyBoYWNrICovXG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBnZXRPcGVyYXRpb25BdXRodHlwZShyZXEpIHtcbiAgaWYgKCFyZXEuc2VydmljZS5hcGkub3BlcmF0aW9ucykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICB2YXIgb3BlcmF0aW9uID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl07XG4gIHJldHVybiBvcGVyYXRpb24gPyBvcGVyYXRpb24uYXV0aHR5cGUgOiAnJztcbn1cblxuQVdTLkV2ZW50TGlzdGVuZXJzID0ge1xuICBDb3JlOiBuZXcgU2VxdWVudGlhbEV4ZWN1dG9yKCkuYWRkTmFtZWRMaXN0ZW5lcnMoZnVuY3Rpb24oYWRkLCBhZGRBc3luYykge1xuICAgIGFkZEFzeW5jKCdWQUxJREFURV9DUkVERU5USUFMUycsICd2YWxpZGF0ZScsXG4gICAgICAgIGZ1bmN0aW9uIFZBTElEQVRFX0NSRURFTlRJQUxTKHJlcSwgZG9uZSkge1xuICAgICAgaWYgKCFyZXEuc2VydmljZS5hcGkuc2lnbmF0dXJlVmVyc2lvbikgcmV0dXJuIGRvbmUoKTsgLy8gbm9uZVxuICAgICAgcmVxLnNlcnZpY2UuY29uZmlnLmdldENyZWRlbnRpYWxzKGZ1bmN0aW9uKGVycikge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmVxLnJlc3BvbnNlLmVycm9yID0gQVdTLnV0aWwuZXJyb3IoZXJyLFxuICAgICAgICAgICAge2NvZGU6ICdDcmVkZW50aWFsc0Vycm9yJywgbWVzc2FnZTogJ01pc3NpbmcgY3JlZGVudGlhbHMgaW4gY29uZmlnJ30pO1xuICAgICAgICB9XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYWRkKCdWQUxJREFURV9SRUdJT04nLCAndmFsaWRhdGUnLCBmdW5jdGlvbiBWQUxJREFURV9SRUdJT04ocmVxKSB7XG4gICAgICBpZiAoIXJlcS5zZXJ2aWNlLmNvbmZpZy5yZWdpb24gJiYgIXJlcS5zZXJ2aWNlLmlzR2xvYmFsRW5kcG9pbnQpIHtcbiAgICAgICAgcmVxLnJlc3BvbnNlLmVycm9yID0gQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksXG4gICAgICAgICAge2NvZGU6ICdDb25maWdFcnJvcicsIG1lc3NhZ2U6ICdNaXNzaW5nIHJlZ2lvbiBpbiBjb25maWcnfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGQoJ0JVSUxEX0lERU1QT1RFTkNZX1RPS0VOUycsICd2YWxpZGF0ZScsIGZ1bmN0aW9uIEJVSUxEX0lERU1QT1RFTkNZX1RPS0VOUyhyZXEpIHtcbiAgICAgIGlmICghcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICAgICAgaWYgKCFvcGVyYXRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGlkZW1wb3RlbnRNZW1iZXJzID0gb3BlcmF0aW9uLmlkZW1wb3RlbnRNZW1iZXJzO1xuICAgICAgaWYgKCFpZGVtcG90ZW50TWVtYmVycy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gY3JlYXRlcyBhIGNvcHkgb2YgcGFyYW1zIHNvIHVzZXIncyBwYXJhbSBvYmplY3QgaXNuJ3QgbXV0YXRlZFxuICAgICAgdmFyIHBhcmFtcyA9IEFXUy51dGlsLmNvcHkocmVxLnBhcmFtcyk7XG4gICAgICBmb3IgKHZhciBpID0gMCwgaUxlbiA9IGlkZW1wb3RlbnRNZW1iZXJzLmxlbmd0aDsgaSA8IGlMZW47IGkrKykge1xuICAgICAgICBpZiAoIXBhcmFtc1tpZGVtcG90ZW50TWVtYmVyc1tpXV0pIHtcbiAgICAgICAgICAvLyBhZGQgdGhlIG1lbWJlclxuICAgICAgICAgIHBhcmFtc1tpZGVtcG90ZW50TWVtYmVyc1tpXV0gPSBBV1MudXRpbC51dWlkLnY0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlcS5wYXJhbXMgPSBwYXJhbXM7XG4gICAgfSk7XG5cbiAgICBhZGQoJ1ZBTElEQVRFX1BBUkFNRVRFUlMnLCAndmFsaWRhdGUnLCBmdW5jdGlvbiBWQUxJREFURV9QQVJBTUVURVJTKHJlcSkge1xuICAgICAgaWYgKCFyZXEuc2VydmljZS5hcGkub3BlcmF0aW9ucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgcnVsZXMgPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXS5pbnB1dDtcbiAgICAgIHZhciB2YWxpZGF0aW9uID0gcmVxLnNlcnZpY2UuY29uZmlnLnBhcmFtVmFsaWRhdGlvbjtcbiAgICAgIG5ldyBBV1MuUGFyYW1WYWxpZGF0b3IodmFsaWRhdGlvbikudmFsaWRhdGUocnVsZXMsIHJlcS5wYXJhbXMpO1xuICAgIH0pO1xuXG4gICAgYWRkQXN5bmMoJ0NPTVBVVEVfU0hBMjU2JywgJ2FmdGVyQnVpbGQnLCBmdW5jdGlvbiBDT01QVVRFX1NIQTI1NihyZXEsIGRvbmUpIHtcbiAgICAgIHJlcS5oYWx0SGFuZGxlcnNPbkVycm9yKCk7XG4gICAgICBpZiAoIXJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBvcGVyYXRpb24gPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXTtcbiAgICAgIHZhciBhdXRodHlwZSA9IG9wZXJhdGlvbiA/IG9wZXJhdGlvbi5hdXRodHlwZSA6ICcnO1xuICAgICAgaWYgKCFyZXEuc2VydmljZS5hcGkuc2lnbmF0dXJlVmVyc2lvbiAmJiAhYXV0aHR5cGUpIHJldHVybiBkb25lKCk7IC8vIG5vbmVcbiAgICAgIGlmIChyZXEuc2VydmljZS5nZXRTaWduZXJDbGFzcyhyZXEpID09PSBBV1MuU2lnbmVycy5WNCkge1xuICAgICAgICB2YXIgYm9keSA9IHJlcS5odHRwUmVxdWVzdC5ib2R5IHx8ICcnO1xuICAgICAgICBpZiAoYXV0aHR5cGUuaW5kZXhPZigndW5zaWduZWQtYm9keScpID49IDApIHtcbiAgICAgICAgICByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snWC1BbXotQ29udGVudC1TaGEyNTYnXSA9ICdVTlNJR05FRC1QQVlMT0FEJztcbiAgICAgICAgICByZXR1cm4gZG9uZSgpO1xuICAgICAgICB9XG4gICAgICAgIEFXUy51dGlsLmNvbXB1dGVTaGEyNTYoYm9keSwgZnVuY3Rpb24oZXJyLCBzaGEpIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICBkb25lKGVycik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LUNvbnRlbnQtU2hhMjU2J10gPSBzaGE7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnU0VUX0NPTlRFTlRfTEVOR1RIJywgJ2FmdGVyQnVpbGQnLCBmdW5jdGlvbiBTRVRfQ09OVEVOVF9MRU5HVEgocmVxKSB7XG4gICAgICB2YXIgYXV0aHR5cGUgPSBnZXRPcGVyYXRpb25BdXRodHlwZShyZXEpO1xuICAgICAgaWYgKHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LUxlbmd0aCddID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgbGVuZ3RoID0gQVdTLnV0aWwuc3RyaW5nLmJ5dGVMZW5ndGgocmVxLmh0dHBSZXF1ZXN0LmJvZHkpO1xuICAgICAgICAgIHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LUxlbmd0aCddID0gbGVuZ3RoO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBpZiAoYXV0aHR5cGUuaW5kZXhPZigndW5zaWduZWQtYm9keScpID09PSAtMSkge1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBCb2R5IGlzbid0IHNpZ25lZCBhbmQgbWF5IG5vdCBuZWVkIGNvbnRlbnQgbGVuZ3RoIChsZXgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGQoJ1NFVF9IVFRQX0hPU1QnLCAnYWZ0ZXJCdWlsZCcsIGZ1bmN0aW9uIFNFVF9IVFRQX0hPU1QocmVxKSB7XG4gICAgICByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snSG9zdCddID0gcmVxLmh0dHBSZXF1ZXN0LmVuZHBvaW50Lmhvc3Q7XG4gICAgfSk7XG5cbiAgICBhZGQoJ1JFU1RBUlQnLCAncmVzdGFydCcsIGZ1bmN0aW9uIFJFU1RBUlQoKSB7XG4gICAgICB2YXIgZXJyID0gdGhpcy5yZXNwb25zZS5lcnJvcjtcbiAgICAgIGlmICghZXJyIHx8ICFlcnIucmV0cnlhYmxlKSByZXR1cm47XG5cbiAgICAgIHRoaXMuaHR0cFJlcXVlc3QgPSBuZXcgQVdTLkh0dHBSZXF1ZXN0KFxuICAgICAgICB0aGlzLnNlcnZpY2UuZW5kcG9pbnQsXG4gICAgICAgIHRoaXMuc2VydmljZS5yZWdpb25cbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLnJlc3BvbnNlLnJldHJ5Q291bnQgPCB0aGlzLnNlcnZpY2UuY29uZmlnLm1heFJldHJpZXMpIHtcbiAgICAgICAgdGhpcy5yZXNwb25zZS5yZXRyeUNvdW50Kys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlc3BvbnNlLmVycm9yID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZEFzeW5jKCdTSUdOJywgJ3NpZ24nLCBmdW5jdGlvbiBTSUdOKHJlcSwgZG9uZSkge1xuICAgICAgdmFyIHNlcnZpY2UgPSByZXEuc2VydmljZTtcbiAgICAgIHZhciBvcGVyYXRpb25zID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnMgfHwge307XG4gICAgICB2YXIgb3BlcmF0aW9uID0gb3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXTtcbiAgICAgIHZhciBhdXRodHlwZSA9IG9wZXJhdGlvbiA/IG9wZXJhdGlvbi5hdXRodHlwZSA6ICcnO1xuICAgICAgaWYgKCFzZXJ2aWNlLmFwaS5zaWduYXR1cmVWZXJzaW9uICYmICFhdXRodHlwZSkgcmV0dXJuIGRvbmUoKTsgLy8gbm9uZVxuXG4gICAgICBzZXJ2aWNlLmNvbmZpZy5nZXRDcmVkZW50aWFscyhmdW5jdGlvbiAoZXJyLCBjcmVkZW50aWFscykge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmVxLnJlc3BvbnNlLmVycm9yID0gZXJyO1xuICAgICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBkYXRlID0gc2VydmljZS5nZXRTa2V3Q29ycmVjdGVkRGF0ZSgpO1xuICAgICAgICAgIHZhciBTaWduZXJDbGFzcyA9IHNlcnZpY2UuZ2V0U2lnbmVyQ2xhc3MocmVxKTtcbiAgICAgICAgICB2YXIgc2lnbmVyID0gbmV3IFNpZ25lckNsYXNzKHJlcS5odHRwUmVxdWVzdCxcbiAgICAgICAgICAgIHNlcnZpY2UuYXBpLnNpZ25pbmdOYW1lIHx8IHNlcnZpY2UuYXBpLmVuZHBvaW50UHJlZml4LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzaWduYXR1cmVDYWNoZTogc2VydmljZS5jb25maWcuc2lnbmF0dXJlQ2FjaGUsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogb3BlcmF0aW9uXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBzaWduZXIuc2V0U2VydmljZUNsaWVudElkKHNlcnZpY2UuX2NsaWVudElkKTtcblxuICAgICAgICAgIC8vIGNsZWFyIG9sZCBhdXRob3JpemF0aW9uIGhlYWRlcnNcbiAgICAgICAgICBkZWxldGUgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXTtcbiAgICAgICAgICBkZWxldGUgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0RhdGUnXTtcbiAgICAgICAgICBkZWxldGUgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LURhdGUnXTtcblxuICAgICAgICAgIC8vIGFkZCBuZXcgYXV0aG9yaXphdGlvblxuICAgICAgICAgIHNpZ25lci5hZGRBdXRob3JpemF0aW9uKGNyZWRlbnRpYWxzLCBkYXRlKTtcbiAgICAgICAgICByZXEuc2lnbmVkQXQgPSBkYXRlO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmVxLnJlc3BvbnNlLmVycm9yID0gZTtcbiAgICAgICAgfVxuICAgICAgICBkb25lKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGFkZCgnVkFMSURBVEVfUkVTUE9OU0UnLCAndmFsaWRhdGVSZXNwb25zZScsIGZ1bmN0aW9uIFZBTElEQVRFX1JFU1BPTlNFKHJlc3ApIHtcbiAgICAgIGlmICh0aGlzLnNlcnZpY2Uuc3VjY2Vzc2Z1bFJlc3BvbnNlKHJlc3AsIHRoaXMpKSB7XG4gICAgICAgIHJlc3AuZGF0YSA9IHt9O1xuICAgICAgICByZXNwLmVycm9yID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3AuZGF0YSA9IG51bGw7XG4gICAgICAgIHJlc3AuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSxcbiAgICAgICAgICB7Y29kZTogJ1Vua25vd25FcnJvcicsIG1lc3NhZ2U6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkLid9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZEFzeW5jKCdTRU5EJywgJ3NlbmQnLCBmdW5jdGlvbiBTRU5EKHJlc3AsIGRvbmUpIHtcbiAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLl9hYm9ydENhbGxiYWNrID0gZG9uZTtcbiAgICAgIHJlc3AuZXJyb3IgPSBudWxsO1xuICAgICAgcmVzcC5kYXRhID0gbnVsbDtcblxuICAgICAgZnVuY3Rpb24gY2FsbGJhY2soaHR0cFJlc3ApIHtcbiAgICAgICAgcmVzcC5odHRwUmVzcG9uc2Uuc3RyZWFtID0gaHR0cFJlc3A7XG4gICAgICAgIHZhciBzdHJlYW0gPSByZXNwLnJlcXVlc3QuaHR0cFJlcXVlc3Quc3RyZWFtO1xuICAgICAgICB2YXIgc2VydmljZSA9IHJlc3AucmVxdWVzdC5zZXJ2aWNlO1xuICAgICAgICB2YXIgYXBpID0gc2VydmljZS5hcGk7XG4gICAgICAgIHZhciBvcGVyYXRpb25OYW1lID0gcmVzcC5yZXF1ZXN0Lm9wZXJhdGlvbjtcbiAgICAgICAgdmFyIG9wZXJhdGlvbiA9IGFwaS5vcGVyYXRpb25zW29wZXJhdGlvbk5hbWVdIHx8IHt9O1xuXG4gICAgICAgIGh0dHBSZXNwLm9uKCdoZWFkZXJzJywgZnVuY3Rpb24gb25IZWFkZXJzKHN0YXR1c0NvZGUsIGhlYWRlcnMsIHN0YXR1c01lc3NhZ2UpIHtcbiAgICAgICAgICByZXNwLnJlcXVlc3QuZW1pdChcbiAgICAgICAgICAgICdodHRwSGVhZGVycycsXG4gICAgICAgICAgICBbc3RhdHVzQ29kZSwgaGVhZGVycywgcmVzcCwgc3RhdHVzTWVzc2FnZV1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKCFyZXNwLmh0dHBSZXNwb25zZS5zdHJlYW1pbmcpIHtcbiAgICAgICAgICAgIGlmIChBV1MuSHR0cENsaWVudC5zdHJlYW1zQXBpVmVyc2lvbiA9PT0gMikgeyAvLyBzdHJlYW1zMiBBUEkgY2hlY2tcbiAgICAgICAgICAgICAgLy8gaWYgd2UgZGV0ZWN0IGV2ZW50IHN0cmVhbXMsIHdlJ3JlIGdvaW5nIHRvIGhhdmUgdG9cbiAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBzdHJlYW0gaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgaWYgKG9wZXJhdGlvbi5oYXNFdmVudE91dHB1dCAmJiBzZXJ2aWNlLnN1Y2Nlc3NmdWxSZXNwb25zZShyZXNwKSkge1xuICAgICAgICAgICAgICAgIC8vIHNraXAgcmVhZGluZyB0aGUgSW5jb21pbmdTdHJlYW1cbiAgICAgICAgICAgICAgICByZXNwLnJlcXVlc3QuZW1pdCgnaHR0cERvbmUnKTtcbiAgICAgICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaHR0cFJlc3Aub24oJ3JlYWRhYmxlJywgZnVuY3Rpb24gb25SZWFkYWJsZSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGh0dHBSZXNwLnJlYWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgcmVzcC5yZXF1ZXN0LmVtaXQoJ2h0dHBEYXRhJywgW2RhdGEsIHJlc3BdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHsgLy8gbGVnYWN5IHN0cmVhbXMgQVBJXG4gICAgICAgICAgICAgIGh0dHBSZXNwLm9uKCdkYXRhJywgZnVuY3Rpb24gb25EYXRhKGRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXNwLnJlcXVlc3QuZW1pdCgnaHR0cERhdGEnLCBbZGF0YSwgcmVzcF0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGh0dHBSZXNwLm9uKCdlbmQnLCBmdW5jdGlvbiBvbkVuZCgpIHtcbiAgICAgICAgICBpZiAoIXN0cmVhbSB8fCAhc3RyZWFtLmRpZENhbGxiYWNrKSB7XG4gICAgICAgICAgICBpZiAoQVdTLkh0dHBDbGllbnQuc3RyZWFtc0FwaVZlcnNpb24gPT09IDIgJiYgKG9wZXJhdGlvbi5oYXNFdmVudE91dHB1dCAmJiBzZXJ2aWNlLnN1Y2Nlc3NmdWxSZXNwb25zZShyZXNwKSkpIHtcbiAgICAgICAgICAgICAgLy8gZG9uJ3QgY29uY2F0ZW5hdGUgcmVzcG9uc2UgY2h1bmtzIHdoZW4gc3RyZWFtaW5nIGV2ZW50IHN0cmVhbSBkYXRhIHdoZW4gcmVzcG9uc2UgaXMgc3VjY2Vzc2Z1bFxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNwLnJlcXVlc3QuZW1pdCgnaHR0cERvbmUnKTtcbiAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBwcm9ncmVzcyhodHRwUmVzcCkge1xuICAgICAgICBodHRwUmVzcC5vbignc2VuZFByb2dyZXNzJywgZnVuY3Rpb24gb25TZW5kUHJvZ3Jlc3ModmFsdWUpIHtcbiAgICAgICAgICByZXNwLnJlcXVlc3QuZW1pdCgnaHR0cFVwbG9hZFByb2dyZXNzJywgW3ZhbHVlLCByZXNwXSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGh0dHBSZXNwLm9uKCdyZWNlaXZlUHJvZ3Jlc3MnLCBmdW5jdGlvbiBvblJlY2VpdmVQcm9ncmVzcyh2YWx1ZSkge1xuICAgICAgICAgIHJlc3AucmVxdWVzdC5lbWl0KCdodHRwRG93bmxvYWRQcm9ncmVzcycsIFt2YWx1ZSwgcmVzcF0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZXJyb3IoZXJyKSB7XG4gICAgICAgIGlmIChlcnIuY29kZSAhPT0gJ1JlcXVlc3RBYm9ydGVkRXJyb3InKSB7XG4gICAgICAgICAgdmFyIGVyckNvZGUgPSBlcnIuY29kZSA9PT0gJ1RpbWVvdXRFcnJvcicgPyBlcnIuY29kZSA6ICdOZXR3b3JraW5nRXJyb3InO1xuICAgICAgICAgIGVyciA9IEFXUy51dGlsLmVycm9yKGVyciwge1xuICAgICAgICAgICAgY29kZTogZXJyQ29kZSxcbiAgICAgICAgICAgIHJlZ2lvbjogcmVzcC5yZXF1ZXN0Lmh0dHBSZXF1ZXN0LnJlZ2lvbixcbiAgICAgICAgICAgIGhvc3RuYW1lOiByZXNwLnJlcXVlc3QuaHR0cFJlcXVlc3QuZW5kcG9pbnQuaG9zdG5hbWUsXG4gICAgICAgICAgICByZXRyeWFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXNwLmVycm9yID0gZXJyO1xuICAgICAgICByZXNwLnJlcXVlc3QuZW1pdCgnaHR0cEVycm9yJywgW3Jlc3AuZXJyb3IsIHJlc3BdLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICBkb25lKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBleGVjdXRlU2VuZCgpIHtcbiAgICAgICAgdmFyIGh0dHAgPSBBV1MuSHR0cENsaWVudC5nZXRJbnN0YW5jZSgpO1xuICAgICAgICB2YXIgaHR0cE9wdGlvbnMgPSByZXNwLnJlcXVlc3Quc2VydmljZS5jb25maWcuaHR0cE9wdGlvbnMgfHwge307XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHN0cmVhbSA9IGh0dHAuaGFuZGxlUmVxdWVzdChyZXNwLnJlcXVlc3QuaHR0cFJlcXVlc3QsIGh0dHBPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIGVycm9yKTtcbiAgICAgICAgICBwcm9ncmVzcyhzdHJlYW0pO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBlcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgdGltZURpZmYgPSAocmVzcC5yZXF1ZXN0LnNlcnZpY2UuZ2V0U2tld0NvcnJlY3RlZERhdGUoKSAtIHRoaXMuc2lnbmVkQXQpIC8gMTAwMDtcbiAgICAgIGlmICh0aW1lRGlmZiA+PSA2MCAqIDEwKSB7IC8vIGlmIHdlIHNpZ25lZCAxMG1pbiBhZ28sIHJlLXNpZ25cbiAgICAgICAgdGhpcy5lbWl0KCdzaWduJywgW3RoaXNdLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICBpZiAoZXJyKSBkb25lKGVycik7XG4gICAgICAgICAgZWxzZSBleGVjdXRlU2VuZCgpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4ZWN1dGVTZW5kKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGQoJ0hUVFBfSEVBREVSUycsICdodHRwSGVhZGVycycsXG4gICAgICAgIGZ1bmN0aW9uIEhUVFBfSEVBREVSUyhzdGF0dXNDb2RlLCBoZWFkZXJzLCByZXNwLCBzdGF0dXNNZXNzYWdlKSB7XG4gICAgICByZXNwLmh0dHBSZXNwb25zZS5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c01lc3NhZ2UgPSBzdGF0dXNNZXNzYWdlO1xuICAgICAgcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVycyA9IGhlYWRlcnM7XG4gICAgICByZXNwLmh0dHBSZXNwb25zZS5ib2R5ID0gbmV3IEFXUy51dGlsLkJ1ZmZlcignJyk7XG4gICAgICByZXNwLmh0dHBSZXNwb25zZS5idWZmZXJzID0gW107XG4gICAgICByZXNwLmh0dHBSZXNwb25zZS5udW1CeXRlcyA9IDA7XG4gICAgICB2YXIgZGF0ZUhlYWRlciA9IGhlYWRlcnMuZGF0ZSB8fCBoZWFkZXJzLkRhdGU7XG4gICAgICB2YXIgc2VydmljZSA9IHJlc3AucmVxdWVzdC5zZXJ2aWNlO1xuICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgdmFyIHNlcnZlclRpbWUgPSBEYXRlLnBhcnNlKGRhdGVIZWFkZXIpO1xuICAgICAgICBpZiAoc2VydmljZS5jb25maWcuY29ycmVjdENsb2NrU2tld1xuICAgICAgICAgICAgJiYgc2VydmljZS5pc0Nsb2NrU2tld2VkKHNlcnZlclRpbWUpKSB7XG4gICAgICAgICAgc2VydmljZS5hcHBseUNsb2NrT2Zmc2V0KHNlcnZlclRpbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGQoJ0hUVFBfREFUQScsICdodHRwRGF0YScsIGZ1bmN0aW9uIEhUVFBfREFUQShjaHVuaywgcmVzcCkge1xuICAgICAgaWYgKGNodW5rKSB7XG4gICAgICAgIGlmIChBV1MudXRpbC5pc05vZGUoKSkge1xuICAgICAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLm51bUJ5dGVzICs9IGNodW5rLmxlbmd0aDtcblxuICAgICAgICAgIHZhciB0b3RhbCA9IHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ107XG4gICAgICAgICAgdmFyIHByb2dyZXNzID0geyBsb2FkZWQ6IHJlc3AuaHR0cFJlc3BvbnNlLm51bUJ5dGVzLCB0b3RhbDogdG90YWwgfTtcbiAgICAgICAgICByZXNwLnJlcXVlc3QuZW1pdCgnaHR0cERvd25sb2FkUHJvZ3Jlc3MnLCBbcHJvZ3Jlc3MsIHJlc3BdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLmJ1ZmZlcnMucHVzaChuZXcgQVdTLnV0aWwuQnVmZmVyKGNodW5rKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGQoJ0hUVFBfRE9ORScsICdodHRwRG9uZScsIGZ1bmN0aW9uIEhUVFBfRE9ORShyZXNwKSB7XG4gICAgICAvLyBjb252ZXJ0IGJ1ZmZlcnMgYXJyYXkgaW50byBzaW5nbGUgYnVmZmVyXG4gICAgICBpZiAocmVzcC5odHRwUmVzcG9uc2UuYnVmZmVycyAmJiByZXNwLmh0dHBSZXNwb25zZS5idWZmZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdmFyIGJvZHkgPSBBV1MudXRpbC5idWZmZXIuY29uY2F0KHJlc3AuaHR0cFJlc3BvbnNlLmJ1ZmZlcnMpO1xuICAgICAgICByZXNwLmh0dHBSZXNwb25zZS5ib2R5ID0gYm9keTtcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSByZXNwLmh0dHBSZXNwb25zZS5udW1CeXRlcztcbiAgICAgIGRlbGV0ZSByZXNwLmh0dHBSZXNwb25zZS5idWZmZXJzO1xuICAgIH0pO1xuXG4gICAgYWRkKCdGSU5BTElaRV9FUlJPUicsICdyZXRyeScsIGZ1bmN0aW9uIEZJTkFMSVpFX0VSUk9SKHJlc3ApIHtcbiAgICAgIGlmIChyZXNwLmh0dHBSZXNwb25zZS5zdGF0dXNDb2RlKSB7XG4gICAgICAgIHJlc3AuZXJyb3Iuc3RhdHVzQ29kZSA9IHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGU7XG4gICAgICAgIGlmIChyZXNwLmVycm9yLnJldHJ5YWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmVzcC5lcnJvci5yZXRyeWFibGUgPSB0aGlzLnNlcnZpY2UucmV0cnlhYmxlRXJyb3IocmVzcC5lcnJvciwgdGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnSU5WQUxJREFURV9DUkVERU5USUFMUycsICdyZXRyeScsIGZ1bmN0aW9uIElOVkFMSURBVEVfQ1JFREVOVElBTFMocmVzcCkge1xuICAgICAgaWYgKCFyZXNwLmVycm9yKSByZXR1cm47XG4gICAgICBzd2l0Y2ggKHJlc3AuZXJyb3IuY29kZSkge1xuICAgICAgICBjYXNlICdSZXF1ZXN0RXhwaXJlZCc6IC8vIEVDMiBvbmx5XG4gICAgICAgIGNhc2UgJ0V4cGlyZWRUb2tlbkV4Y2VwdGlvbic6XG4gICAgICAgIGNhc2UgJ0V4cGlyZWRUb2tlbic6XG4gICAgICAgICAgcmVzcC5lcnJvci5yZXRyeWFibGUgPSB0cnVlO1xuICAgICAgICAgIHJlc3AucmVxdWVzdC5zZXJ2aWNlLmNvbmZpZy5jcmVkZW50aWFscy5leHBpcmVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnRVhQSVJFRF9TSUdOQVRVUkUnLCAncmV0cnknLCBmdW5jdGlvbiBFWFBJUkVEX1NJR05BVFVSRShyZXNwKSB7XG4gICAgICB2YXIgZXJyID0gcmVzcC5lcnJvcjtcbiAgICAgIGlmICghZXJyKSByZXR1cm47XG4gICAgICBpZiAodHlwZW9mIGVyci5jb2RlID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgZXJyLm1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChlcnIuY29kZS5tYXRjaCgvU2lnbmF0dXJlLykgJiYgZXJyLm1lc3NhZ2UubWF0Y2goL2V4cGlyZWQvKSkge1xuICAgICAgICAgIHJlc3AuZXJyb3IucmV0cnlhYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkKCdDTE9DS19TS0VXRUQnLCAncmV0cnknLCBmdW5jdGlvbiBDTE9DS19TS0VXRUQocmVzcCkge1xuICAgICAgaWYgKCFyZXNwLmVycm9yKSByZXR1cm47XG4gICAgICBpZiAodGhpcy5zZXJ2aWNlLmNsb2NrU2tld0Vycm9yKHJlc3AuZXJyb3IpXG4gICAgICAgICAgJiYgdGhpcy5zZXJ2aWNlLmNvbmZpZy5jb3JyZWN0Q2xvY2tTa2V3KSB7XG4gICAgICAgIHJlc3AuZXJyb3IucmV0cnlhYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnUkVESVJFQ1QnLCAncmV0cnknLCBmdW5jdGlvbiBSRURJUkVDVChyZXNwKSB7XG4gICAgICBpZiAocmVzcC5lcnJvciAmJiByZXNwLmVycm9yLnN0YXR1c0NvZGUgPj0gMzAwICYmXG4gICAgICAgICAgcmVzcC5lcnJvci5zdGF0dXNDb2RlIDwgNDAwICYmIHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnNbJ2xvY2F0aW9uJ10pIHtcbiAgICAgICAgdGhpcy5odHRwUmVxdWVzdC5lbmRwb2ludCA9XG4gICAgICAgICAgbmV3IEFXUy5FbmRwb2ludChyZXNwLmh0dHBSZXNwb25zZS5oZWFkZXJzWydsb2NhdGlvbiddKTtcbiAgICAgICAgdGhpcy5odHRwUmVxdWVzdC5oZWFkZXJzWydIb3N0J10gPSB0aGlzLmh0dHBSZXF1ZXN0LmVuZHBvaW50Lmhvc3Q7XG4gICAgICAgIHJlc3AuZXJyb3IucmVkaXJlY3QgPSB0cnVlO1xuICAgICAgICByZXNwLmVycm9yLnJldHJ5YWJsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGQoJ1JFVFJZX0NIRUNLJywgJ3JldHJ5JywgZnVuY3Rpb24gUkVUUllfQ0hFQ0socmVzcCkge1xuICAgICAgaWYgKHJlc3AuZXJyb3IpIHtcbiAgICAgICAgaWYgKHJlc3AuZXJyb3IucmVkaXJlY3QgJiYgcmVzcC5yZWRpcmVjdENvdW50IDwgcmVzcC5tYXhSZWRpcmVjdHMpIHtcbiAgICAgICAgICByZXNwLmVycm9yLnJldHJ5RGVsYXkgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3AucmV0cnlDb3VudCA8IHJlc3AubWF4UmV0cmllcykge1xuICAgICAgICAgIHJlc3AuZXJyb3IucmV0cnlEZWxheSA9IHRoaXMuc2VydmljZS5yZXRyeURlbGF5cyhyZXNwLnJldHJ5Q291bnQpIHx8IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZEFzeW5jKCdSRVNFVF9SRVRSWV9TVEFURScsICdhZnRlclJldHJ5JywgZnVuY3Rpb24gUkVTRVRfUkVUUllfU1RBVEUocmVzcCwgZG9uZSkge1xuICAgICAgdmFyIGRlbGF5LCB3aWxsUmV0cnkgPSBmYWxzZTtcblxuICAgICAgaWYgKHJlc3AuZXJyb3IpIHtcbiAgICAgICAgZGVsYXkgPSByZXNwLmVycm9yLnJldHJ5RGVsYXkgfHwgMDtcbiAgICAgICAgaWYgKHJlc3AuZXJyb3IucmV0cnlhYmxlICYmIHJlc3AucmV0cnlDb3VudCA8IHJlc3AubWF4UmV0cmllcykge1xuICAgICAgICAgIHJlc3AucmV0cnlDb3VudCsrO1xuICAgICAgICAgIHdpbGxSZXRyeSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzcC5lcnJvci5yZWRpcmVjdCAmJiByZXNwLnJlZGlyZWN0Q291bnQgPCByZXNwLm1heFJlZGlyZWN0cykge1xuICAgICAgICAgIHJlc3AucmVkaXJlY3RDb3VudCsrO1xuICAgICAgICAgIHdpbGxSZXRyeSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHdpbGxSZXRyeSkge1xuICAgICAgICByZXNwLmVycm9yID0gbnVsbDtcbiAgICAgICAgc2V0VGltZW91dChkb25lLCBkZWxheSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb25lKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pLFxuXG4gIENvcmVQb3N0OiBuZXcgU2VxdWVudGlhbEV4ZWN1dG9yKCkuYWRkTmFtZWRMaXN0ZW5lcnMoZnVuY3Rpb24oYWRkKSB7XG4gICAgYWRkKCdFWFRSQUNUX1JFUVVFU1RfSUQnLCAnZXh0cmFjdERhdGEnLCBBV1MudXRpbC5leHRyYWN0UmVxdWVzdElkKTtcbiAgICBhZGQoJ0VYVFJBQ1RfUkVRVUVTVF9JRCcsICdleHRyYWN0RXJyb3InLCBBV1MudXRpbC5leHRyYWN0UmVxdWVzdElkKTtcblxuICAgIGFkZCgnRU5PVEZPVU5EX0VSUk9SJywgJ2h0dHBFcnJvcicsIGZ1bmN0aW9uIEVOT1RGT1VORF9FUlJPUihlcnIpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ05ldHdvcmtpbmdFcnJvcicgJiYgZXJyLmVycm5vID09PSAnRU5PVEZPVU5EJykge1xuICAgICAgICB2YXIgbWVzc2FnZSA9ICdJbmFjY2Vzc2libGUgaG9zdDogYCcgKyBlcnIuaG9zdG5hbWUgK1xuICAgICAgICAgICdcXCcuIFRoaXMgc2VydmljZSBtYXkgbm90IGJlIGF2YWlsYWJsZSBpbiB0aGUgYCcgKyBlcnIucmVnaW9uICtcbiAgICAgICAgICAnXFwnIHJlZ2lvbi4nO1xuICAgICAgICB0aGlzLnJlc3BvbnNlLmVycm9yID0gQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKG1lc3NhZ2UpLCB7XG4gICAgICAgICAgY29kZTogJ1Vua25vd25FbmRwb2ludCcsXG4gICAgICAgICAgcmVnaW9uOiBlcnIucmVnaW9uLFxuICAgICAgICAgIGhvc3RuYW1lOiBlcnIuaG9zdG5hbWUsXG4gICAgICAgICAgcmV0cnlhYmxlOiB0cnVlLFxuICAgICAgICAgIG9yaWdpbmFsRXJyb3I6IGVyclxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSksXG5cbiAgTG9nZ2VyOiBuZXcgU2VxdWVudGlhbEV4ZWN1dG9yKCkuYWRkTmFtZWRMaXN0ZW5lcnMoZnVuY3Rpb24oYWRkKSB7XG4gICAgYWRkKCdMT0dfUkVRVUVTVCcsICdjb21wbGV0ZScsIGZ1bmN0aW9uIExPR19SRVFVRVNUKHJlc3ApIHtcbiAgICAgIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gICAgICB2YXIgbG9nZ2VyID0gcmVxLnNlcnZpY2UuY29uZmlnLmxvZ2dlcjtcbiAgICAgIGlmICghbG9nZ2VyKSByZXR1cm47XG4gICAgICBmdW5jdGlvbiBmaWx0ZXJTZW5zaXRpdmVMb2coaW5wdXRTaGFwZSwgc2hhcGUpIHtcbiAgICAgICAgaWYgKCFzaGFwZSkge1xuICAgICAgICAgIHJldHVybiBzaGFwZTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGlucHV0U2hhcGUudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ3N0cnVjdHVyZSc6XG4gICAgICAgICAgICB2YXIgc3RydWN0ID0ge307XG4gICAgICAgICAgICBBV1MudXRpbC5lYWNoKHNoYXBlLCBmdW5jdGlvbihzdWJTaGFwZU5hbWUsIHN1YlNoYXBlKSB7XG4gICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaW5wdXRTaGFwZS5tZW1iZXJzLCBzdWJTaGFwZU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgc3RydWN0W3N1YlNoYXBlTmFtZV0gPSBmaWx0ZXJTZW5zaXRpdmVMb2coaW5wdXRTaGFwZS5tZW1iZXJzW3N1YlNoYXBlTmFtZV0sIHN1YlNoYXBlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdHJ1Y3Rbc3ViU2hhcGVOYW1lXSA9IHN1YlNoYXBlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuIHN0cnVjdFxuICAgICAgICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgICAgICAgdmFyIGxpc3QgPSBbXTtcbiAgICAgICAgICAgIEFXUy51dGlsLmFycmF5RWFjaChzaGFwZSwgZnVuY3Rpb24oc3ViU2hhcGUsIGluZGV4KSB7XG4gICAgICAgICAgICAgIGxpc3QucHVzaChmaWx0ZXJTZW5zaXRpdmVMb2coaW5wdXRTaGFwZS5tZW1iZXIsIHN1YlNoYXBlKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgICAgICAgY2FzZSAnbWFwJzpcbiAgICAgICAgICAgIHZhciBtYXAgPSB7fTtcbiAgICAgICAgICAgIEFXUy51dGlsLmVhY2goc2hhcGUsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICAgICAgbWFwW2tleV0gPSBmaWx0ZXJTZW5zaXRpdmVMb2coaW5wdXRTaGFwZS52YWx1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChpbnB1dFNoYXBlLmlzU2Vuc2l0aXZlKSB7XG4gICAgICAgICAgICAgIHJldHVybiAnKioqU2Vuc2l0aXZlSW5mb3JtYXRpb24qKionXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gYnVpbGRNZXNzYWdlKCkge1xuICAgICAgICB2YXIgdGltZSA9IHJlc3AucmVxdWVzdC5zZXJ2aWNlLmdldFNrZXdDb3JyZWN0ZWREYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICB2YXIgZGVsdGEgPSAodGltZSAtIHJlcS5zdGFydFRpbWUuZ2V0VGltZSgpKSAvIDEwMDA7XG4gICAgICAgIHZhciBhbnNpID0gbG9nZ2VyLmlzVFRZID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB2YXIgc3RhdHVzID0gcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICAgICAgdmFyIGNlbnNvcmVkUGFyYW1zID0gcmVxLnBhcmFtcztcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zICYmXG4gICAgICAgICAgICAgIHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dICYmXG4gICAgICAgICAgICAgIHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dLmlucHV0XG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBpbnB1dFNoYXBlID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl0uaW5wdXQ7XG4gICAgICAgICAgY2Vuc29yZWRQYXJhbXMgPSBmaWx0ZXJTZW5zaXRpdmVMb2coaW5wdXRTaGFwZSwgcmVxLnBhcmFtcyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhcmFtcyA9IHJlcXVpcmUoJ3V0aWwnKS5pbnNwZWN0KGNlbnNvcmVkUGFyYW1zLCB0cnVlLCBudWxsKTtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSAnJztcbiAgICAgICAgaWYgKGFuc2kpIG1lc3NhZ2UgKz0gJ1xceDFCWzMzbSc7XG4gICAgICAgIG1lc3NhZ2UgKz0gJ1tBV1MgJyArIHJlcS5zZXJ2aWNlLnNlcnZpY2VJZGVudGlmaWVyICsgJyAnICsgc3RhdHVzO1xuICAgICAgICBtZXNzYWdlICs9ICcgJyArIGRlbHRhLnRvU3RyaW5nKCkgKyAncyAnICsgcmVzcC5yZXRyeUNvdW50ICsgJyByZXRyaWVzXSc7XG4gICAgICAgIGlmIChhbnNpKSBtZXNzYWdlICs9ICdcXHgxQlswOzFtJztcbiAgICAgICAgbWVzc2FnZSArPSAnICcgKyBBV1MudXRpbC5zdHJpbmcubG93ZXJGaXJzdChyZXEub3BlcmF0aW9uKTtcbiAgICAgICAgbWVzc2FnZSArPSAnKCcgKyBwYXJhbXMgKyAnKSc7XG4gICAgICAgIGlmIChhbnNpKSBtZXNzYWdlICs9ICdcXHgxQlswbSc7XG4gICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgfVxuXG4gICAgICB2YXIgbGluZSA9IGJ1aWxkTWVzc2FnZSgpO1xuICAgICAgaWYgKHR5cGVvZiBsb2dnZXIubG9nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGxvZ2dlci5sb2cobGluZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsb2dnZXIud3JpdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgbG9nZ2VyLndyaXRlKGxpbmUgKyAnXFxuJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pLFxuXG4gIEpzb246IG5ldyBTZXF1ZW50aWFsRXhlY3V0b3IoKS5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQpIHtcbiAgICB2YXIgc3ZjID0gcmVxdWlyZSgnLi9wcm90b2NvbC9qc29uJyk7XG4gICAgYWRkKCdCVUlMRCcsICdidWlsZCcsIHN2Yy5idWlsZFJlcXVlc3QpO1xuICAgIGFkZCgnRVhUUkFDVF9EQVRBJywgJ2V4dHJhY3REYXRhJywgc3ZjLmV4dHJhY3REYXRhKTtcbiAgICBhZGQoJ0VYVFJBQ1RfRVJST1InLCAnZXh0cmFjdEVycm9yJywgc3ZjLmV4dHJhY3RFcnJvcik7XG4gIH0pLFxuXG4gIFJlc3Q6IG5ldyBTZXF1ZW50aWFsRXhlY3V0b3IoKS5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQpIHtcbiAgICB2YXIgc3ZjID0gcmVxdWlyZSgnLi9wcm90b2NvbC9yZXN0Jyk7XG4gICAgYWRkKCdCVUlMRCcsICdidWlsZCcsIHN2Yy5idWlsZFJlcXVlc3QpO1xuICAgIGFkZCgnRVhUUkFDVF9EQVRBJywgJ2V4dHJhY3REYXRhJywgc3ZjLmV4dHJhY3REYXRhKTtcbiAgICBhZGQoJ0VYVFJBQ1RfRVJST1InLCAnZXh0cmFjdEVycm9yJywgc3ZjLmV4dHJhY3RFcnJvcik7XG4gIH0pLFxuXG4gIFJlc3RKc29uOiBuZXcgU2VxdWVudGlhbEV4ZWN1dG9yKCkuYWRkTmFtZWRMaXN0ZW5lcnMoZnVuY3Rpb24oYWRkKSB7XG4gICAgdmFyIHN2YyA9IHJlcXVpcmUoJy4vcHJvdG9jb2wvcmVzdF9qc29uJyk7XG4gICAgYWRkKCdCVUlMRCcsICdidWlsZCcsIHN2Yy5idWlsZFJlcXVlc3QpO1xuICAgIGFkZCgnRVhUUkFDVF9EQVRBJywgJ2V4dHJhY3REYXRhJywgc3ZjLmV4dHJhY3REYXRhKTtcbiAgICBhZGQoJ0VYVFJBQ1RfRVJST1InLCAnZXh0cmFjdEVycm9yJywgc3ZjLmV4dHJhY3RFcnJvcik7XG4gIH0pLFxuXG4gIFJlc3RYbWw6IG5ldyBTZXF1ZW50aWFsRXhlY3V0b3IoKS5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQpIHtcbiAgICB2YXIgc3ZjID0gcmVxdWlyZSgnLi9wcm90b2NvbC9yZXN0X3htbCcpO1xuICAgIGFkZCgnQlVJTEQnLCAnYnVpbGQnLCBzdmMuYnVpbGRSZXF1ZXN0KTtcbiAgICBhZGQoJ0VYVFJBQ1RfREFUQScsICdleHRyYWN0RGF0YScsIHN2Yy5leHRyYWN0RGF0YSk7XG4gICAgYWRkKCdFWFRSQUNUX0VSUk9SJywgJ2V4dHJhY3RFcnJvcicsIHN2Yy5leHRyYWN0RXJyb3IpO1xuICB9KSxcblxuICBRdWVyeTogbmV3IFNlcXVlbnRpYWxFeGVjdXRvcigpLmFkZE5hbWVkTGlzdGVuZXJzKGZ1bmN0aW9uKGFkZCkge1xuICAgIHZhciBzdmMgPSByZXF1aXJlKCcuL3Byb3RvY29sL3F1ZXJ5Jyk7XG4gICAgYWRkKCdCVUlMRCcsICdidWlsZCcsIHN2Yy5idWlsZFJlcXVlc3QpO1xuICAgIGFkZCgnRVhUUkFDVF9EQVRBJywgJ2V4dHJhY3REYXRhJywgc3ZjLmV4dHJhY3REYXRhKTtcbiAgICBhZGQoJ0VYVFJBQ1RfRVJST1InLCAnZXh0cmFjdEVycm9yJywgc3ZjLmV4dHJhY3RFcnJvcik7XG4gIH0pXG59O1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG4vKipcbiAqIFRoZSBlbmRwb2ludCB0aGF0IGEgc2VydmljZSB3aWxsIHRhbGsgdG8sIGZvciBleGFtcGxlLFxuICogYCdodHRwczovL2VjMi5hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tJ2AuIElmXG4gKiB5b3UgbmVlZCB0byBvdmVycmlkZSBhbiBlbmRwb2ludCBmb3IgYSBzZXJ2aWNlLCB5b3UgY2FuXG4gKiBzZXQgdGhlIGVuZHBvaW50IG9uIGEgc2VydmljZSBieSBwYXNzaW5nIHRoZSBlbmRwb2ludFxuICogb2JqZWN0IHdpdGggdGhlIGBlbmRwb2ludGAgb3B0aW9uIGtleTpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiB2YXIgZXAgPSBuZXcgQVdTLkVuZHBvaW50KCdhd3Nwcm94eS5leGFtcGxlLmNvbScpO1xuICogdmFyIHMzID0gbmV3IEFXUy5TMyh7ZW5kcG9pbnQ6IGVwfSk7XG4gKiBzMy5zZXJ2aWNlLmVuZHBvaW50Lmhvc3RuYW1lID09ICdhd3Nwcm94eS5leGFtcGxlLmNvbSdcbiAqIGBgYFxuICpcbiAqIE5vdGUgdGhhdCBpZiB5b3UgZG8gbm90IHNwZWNpZnkgYSBwcm90b2NvbCwgdGhlIHByb3RvY29sIHdpbGxcbiAqIGJlIHNlbGVjdGVkIGJhc2VkIG9uIHlvdXIgY3VycmVudCB7QVdTLmNvbmZpZ30gY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBwcm90b2NvbFxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSBwcm90b2NvbCAoaHR0cCBvciBodHRwcykgb2YgdGhlIGVuZHBvaW50XG4gKiAgICAgVVJMXG4gKiBAIWF0dHJpYnV0ZSBob3N0bmFtZVxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSBob3N0IHBvcnRpb24gb2YgdGhlIGVuZHBvaW50LCBlLmcuLFxuICogICAgIGV4YW1wbGUuY29tXG4gKiBAIWF0dHJpYnV0ZSBob3N0XG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIGhvc3QgcG9ydGlvbiBvZiB0aGUgZW5kcG9pbnQgaW5jbHVkaW5nXG4gKiAgICAgdGhlIHBvcnQsIGUuZy4sIGV4YW1wbGUuY29tOjgwXG4gKiBAIWF0dHJpYnV0ZSBwb3J0XG4gKiAgIEByZXR1cm4gW0ludGVnZXJdIHRoZSBwb3J0IG9mIHRoZSBlbmRwb2ludFxuICogQCFhdHRyaWJ1dGUgaHJlZlxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSBmdWxsIFVSTCBvZiB0aGUgZW5kcG9pbnRcbiAqL1xuQVdTLkVuZHBvaW50ID0gaW5oZXJpdCh7XG5cbiAgLyoqXG4gICAqIEBvdmVybG9hZCBFbmRwb2ludChlbmRwb2ludClcbiAgICogICBDb25zdHJ1Y3RzIGEgbmV3IGVuZHBvaW50IGdpdmVuIGFuIGVuZHBvaW50IFVSTC4gSWYgdGhlXG4gICAqICAgVVJMIG9taXRzIGEgcHJvdG9jb2wgKGh0dHAgb3IgaHR0cHMpLCB0aGUgZGVmYXVsdCBwcm90b2NvbFxuICAgKiAgIHNldCBpbiB0aGUgZ2xvYmFsIHtBV1MuY29uZmlnfSB3aWxsIGJlIHVzZWQuXG4gICAqICAgQHBhcmFtIGVuZHBvaW50IFtTdHJpbmddIHRoZSBVUkwgdG8gY29uc3RydWN0IGFuIGVuZHBvaW50IGZyb21cbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBFbmRwb2ludChlbmRwb2ludCwgY29uZmlnKSB7XG4gICAgQVdTLnV0aWwuaGlkZVByb3BlcnRpZXModGhpcywgWydzbGFzaGVzJywgJ2F1dGgnLCAnaGFzaCcsICdzZWFyY2gnLCAncXVlcnknXSk7XG5cbiAgICBpZiAodHlwZW9mIGVuZHBvaW50ID09PSAndW5kZWZpbmVkJyB8fCBlbmRwb2ludCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGVuZHBvaW50OiAnICsgZW5kcG9pbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVuZHBvaW50ICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIEFXUy51dGlsLmNvcHkoZW5kcG9pbnQpO1xuICAgIH1cblxuICAgIGlmICghZW5kcG9pbnQubWF0Y2goL15odHRwLykpIHtcbiAgICAgIHZhciB1c2VTU0wgPSBjb25maWcgJiYgY29uZmlnLnNzbEVuYWJsZWQgIT09IHVuZGVmaW5lZCA/XG4gICAgICAgIGNvbmZpZy5zc2xFbmFibGVkIDogQVdTLmNvbmZpZy5zc2xFbmFibGVkO1xuICAgICAgZW5kcG9pbnQgPSAodXNlU1NMID8gJ2h0dHBzJyA6ICdodHRwJykgKyAnOi8vJyArIGVuZHBvaW50O1xuICAgIH1cblxuICAgIEFXUy51dGlsLnVwZGF0ZSh0aGlzLCBBV1MudXRpbC51cmxQYXJzZShlbmRwb2ludCkpO1xuXG4gICAgLy8gRW5zdXJlIHRoZSBwb3J0IHByb3BlcnR5IGlzIHNldCBhcyBhbiBpbnRlZ2VyXG4gICAgaWYgKHRoaXMucG9ydCkge1xuICAgICAgdGhpcy5wb3J0ID0gcGFyc2VJbnQodGhpcy5wb3J0LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucG9ydCA9IHRoaXMucHJvdG9jb2wgPT09ICdodHRwczonID8gNDQzIDogODA7XG4gICAgfVxuICB9XG5cbn0pO1xuXG4vKipcbiAqIFRoZSBsb3cgbGV2ZWwgSFRUUCByZXF1ZXN0IG9iamVjdCwgZW5jYXBzdWxhdGluZyBhbGwgSFRUUCBoZWFkZXJcbiAqIGFuZCBib2R5IGRhdGEgc2VudCBieSBhIHNlcnZpY2UgcmVxdWVzdC5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBtZXRob2RcbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgSFRUUCBtZXRob2Qgb2YgdGhlIHJlcXVlc3RcbiAqIEAhYXR0cmlidXRlIHBhdGhcbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgcGF0aCBwb3J0aW9uIG9mIHRoZSBVUkksIGUuZy4sXG4gKiAgICAgXCIvbGlzdC8/c3RhcnQ9NSZudW09MTBcIlxuICogQCFhdHRyaWJ1dGUgaGVhZGVyc1xuICogICBAcmV0dXJuIFttYXA8U3RyaW5nLFN0cmluZz5dXG4gKiAgICAgYSBtYXAgb2YgaGVhZGVyIGtleXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgdmFsdWVzXG4gKiBAIWF0dHJpYnV0ZSBib2R5XG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIHJlcXVlc3QgYm9keSBwYXlsb2FkXG4gKiBAIWF0dHJpYnV0ZSBlbmRwb2ludFxuICogICBAcmV0dXJuIFtBV1MuRW5kcG9pbnRdIHRoZSBlbmRwb2ludCBmb3IgdGhlIHJlcXVlc3RcbiAqIEAhYXR0cmlidXRlIHJlZ2lvblxuICogICBAYXBpIHByaXZhdGVcbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgcmVnaW9uLCBmb3Igc2lnbmluZyBwdXJwb3NlcyBvbmx5LlxuICovXG5BV1MuSHR0cFJlcXVlc3QgPSBpbmhlcml0KHtcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gSHR0cFJlcXVlc3QoZW5kcG9pbnQsIHJlZ2lvbikge1xuICAgIGVuZHBvaW50ID0gbmV3IEFXUy5FbmRwb2ludChlbmRwb2ludCk7XG4gICAgdGhpcy5tZXRob2QgPSAnUE9TVCc7XG4gICAgdGhpcy5wYXRoID0gZW5kcG9pbnQucGF0aCB8fCAnLyc7XG4gICAgdGhpcy5oZWFkZXJzID0ge307XG4gICAgdGhpcy5ib2R5ID0gJyc7XG4gICAgdGhpcy5lbmRwb2ludCA9IGVuZHBvaW50O1xuICAgIHRoaXMucmVnaW9uID0gcmVnaW9uO1xuICAgIHRoaXMuX3VzZXJBZ2VudCA9ICcnO1xuICAgIHRoaXMuc2V0VXNlckFnZW50KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0VXNlckFnZW50OiBmdW5jdGlvbiBzZXRVc2VyQWdlbnQoKSB7XG4gICAgdGhpcy5fdXNlckFnZW50ID0gdGhpcy5oZWFkZXJzW3RoaXMuZ2V0VXNlckFnZW50SGVhZGVyTmFtZSgpXSA9IEFXUy51dGlsLnVzZXJBZ2VudCgpO1xuICB9LFxuXG4gIGdldFVzZXJBZ2VudEhlYWRlck5hbWU6IGZ1bmN0aW9uIGdldFVzZXJBZ2VudEhlYWRlck5hbWUoKSB7XG4gICAgdmFyIHByZWZpeCA9IEFXUy51dGlsLmlzQnJvd3NlcigpID8gJ1gtQW16LScgOiAnJztcbiAgICByZXR1cm4gcHJlZml4ICsgJ1VzZXItQWdlbnQnO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFwcGVuZFRvVXNlckFnZW50OiBmdW5jdGlvbiBhcHBlbmRUb1VzZXJBZ2VudChhZ2VudFBhcnRpYWwpIHtcbiAgICBpZiAodHlwZW9mIGFnZW50UGFydGlhbCA9PT0gJ3N0cmluZycgJiYgYWdlbnRQYXJ0aWFsKSB7XG4gICAgICB0aGlzLl91c2VyQWdlbnQgKz0gJyAnICsgYWdlbnRQYXJ0aWFsO1xuICAgIH1cbiAgICB0aGlzLmhlYWRlcnNbdGhpcy5nZXRVc2VyQWdlbnRIZWFkZXJOYW1lKCldID0gdGhpcy5fdXNlckFnZW50O1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGdldFVzZXJBZ2VudDogZnVuY3Rpb24gZ2V0VXNlckFnZW50KCkge1xuICAgIHJldHVybiB0aGlzLl91c2VyQWdlbnQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW1N0cmluZ10gdGhlIHBhcnQgb2YgdGhlIHtwYXRofSBleGNsdWRpbmcgdGhlXG4gICAqICAgcXVlcnkgc3RyaW5nXG4gICAqL1xuICBwYXRobmFtZTogZnVuY3Rpb24gcGF0aG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aC5zcGxpdCgnPycsIDEpWzBdO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFtTdHJpbmddIHRoZSBxdWVyeSBzdHJpbmcgcG9ydGlvbiBvZiB0aGUge3BhdGh9XG4gICAqL1xuICBzZWFyY2g6IGZ1bmN0aW9uIHNlYXJjaCgpIHtcbiAgICB2YXIgcXVlcnkgPSB0aGlzLnBhdGguc3BsaXQoJz8nLCAyKVsxXTtcbiAgICBpZiAocXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0gQVdTLnV0aWwucXVlcnlTdHJpbmdQYXJzZShxdWVyeSk7XG4gICAgICByZXR1cm4gQVdTLnV0aWwucXVlcnlQYXJhbXNUb1N0cmluZyhxdWVyeSk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG59KTtcblxuLyoqXG4gKiBUaGUgbG93IGxldmVsIEhUVFAgcmVzcG9uc2Ugb2JqZWN0LCBlbmNhcHN1bGF0aW5nIGFsbCBIVFRQIGhlYWRlclxuICogYW5kIGJvZHkgZGF0YSByZXR1cm5lZCBmcm9tIHRoZSByZXF1ZXN0LlxuICpcbiAqIEAhYXR0cmlidXRlIHN0YXR1c0NvZGVcbiAqICAgQHJldHVybiBbSW50ZWdlcl0gdGhlIEhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlIChlLmcuLCAyMDAsIDQwNClcbiAqIEAhYXR0cmlidXRlIGhlYWRlcnNcbiAqICAgQHJldHVybiBbbWFwPFN0cmluZyxTdHJpbmc+XVxuICogICAgICBhIG1hcCBvZiByZXNwb25zZSBoZWFkZXIga2V5cyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSB2YWx1ZXNcbiAqIEAhYXR0cmlidXRlIGJvZHlcbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgcmVzcG9uc2UgYm9keSBwYXlsb2FkXG4gKiBAIWF0dHJpYnV0ZSBbcl0gc3RyZWFtaW5nXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdGhpcyByZXNwb25zZSBpcyBiZWluZyBzdHJlYW1lZCBhdCBhIGxvdy1sZXZlbC5cbiAqICAgICBEZWZhdWx0cyB0byBgZmFsc2VgIChidWZmZXJlZCByZWFkcykuIERvIG5vdCBtb2RpZnkgdGhpcyBtYW51YWxseSwgdXNlXG4gKiAgICAge2NyZWF0ZVVuYnVmZmVyZWRTdHJlYW19IHRvIGNvbnZlcnQgdGhlIHN0cmVhbSB0byB1bmJ1ZmZlcmVkIG1vZGVcbiAqICAgICBpbnN0ZWFkLlxuICovXG5BV1MuSHR0cFJlc3BvbnNlID0gaW5oZXJpdCh7XG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIEh0dHBSZXNwb25zZSgpIHtcbiAgICB0aGlzLnN0YXR1c0NvZGUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5oZWFkZXJzID0ge307XG4gICAgdGhpcy5ib2R5ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc3RyZWFtaW5nID0gZmFsc2U7XG4gICAgdGhpcy5zdHJlYW0gPSBudWxsO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyBidWZmZXJpbmcgb24gdGhlIEhUVFAgcmVzcG9uc2UgYW5kIHJldHVybnMgdGhlIHN0cmVhbSBmb3IgcmVhZGluZy5cbiAgICogQHJldHVybiBbU3RyZWFtLCBYTUxIdHRwUmVxdWVzdCwgbnVsbF0gdGhlIHVuZGVybHlpbmcgc3RyZWFtIG9iamVjdC5cbiAgICogICBVc2UgdGhpcyBvYmplY3QgdG8gZGlyZWN0bHkgcmVhZCBkYXRhIG9mZiBvZiB0aGUgc3RyZWFtLlxuICAgKiBAbm90ZSBUaGlzIG9iamVjdCBpcyBvbmx5IGF2YWlsYWJsZSBhZnRlciB0aGUge0FXUy5SZXF1ZXN0fmh0dHBIZWFkZXJzfVxuICAgKiAgIGV2ZW50IGhhcyBmaXJlZC4gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgcHJpb3IgdG9cbiAgICogICB7QVdTLlJlcXVlc3R+aHR0cERhdGF9LlxuICAgKiBAZXhhbXBsZSBUYWtpbmcgY29udHJvbCBvZiBhIHN0cmVhbVxuICAgKiAgIHJlcXVlc3Qub24oJ2h0dHBIZWFkZXJzJywgZnVuY3Rpb24oc3RhdHVzQ29kZSwgaGVhZGVycykge1xuICAgKiAgICAgaWYgKHN0YXR1c0NvZGUgPCAzMDApIHtcbiAgICogICAgICAgaWYgKGhlYWRlcnMuZXRhZyA9PT0gJ3h5eicpIHtcbiAgICogICAgICAgICAvLyBwaXBlIHRoZSBzdHJlYW0sIGRpc2FibGluZyBidWZmZXJpbmdcbiAgICogICAgICAgICB2YXIgc3RyZWFtID0gdGhpcy5yZXNwb25zZS5odHRwUmVzcG9uc2UuY3JlYXRlVW5idWZmZXJlZFN0cmVhbSgpO1xuICAgKiAgICAgICAgIHN0cmVhbS5waXBlKHByb2Nlc3Muc3Rkb3V0KTtcbiAgICogICAgICAgfSBlbHNlIHsgLy8gYWJvcnQgdGhpcyByZXF1ZXN0IGFuZCBzZXQgYSBiZXR0ZXIgZXJyb3IgbWVzc2FnZVxuICAgKiAgICAgICAgIHRoaXMuYWJvcnQoKTtcbiAgICogICAgICAgICB0aGlzLnJlc3BvbnNlLmVycm9yID0gbmV3IEVycm9yKCdJbnZhbGlkIEVUYWcnKTtcbiAgICogICAgICAgfVxuICAgKiAgICAgfVxuICAgKiAgIH0pLnNlbmQoY29uc29sZS5sb2cpO1xuICAgKi9cbiAgY3JlYXRlVW5idWZmZXJlZFN0cmVhbTogZnVuY3Rpb24gY3JlYXRlVW5idWZmZXJlZFN0cmVhbSgpIHtcbiAgICB0aGlzLnN0cmVhbWluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuc3RyZWFtO1xuICB9XG59KTtcblxuXG5BV1MuSHR0cENsaWVudCA9IGluaGVyaXQoe30pO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuSHR0cENsaWVudC5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uIGdldEluc3RhbmNlKCkge1xuICBpZiAodGhpcy5zaW5nbGV0b24gPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2luZ2xldG9uID0gbmV3IHRoaXMoKTtcbiAgfVxuICByZXR1cm4gdGhpcy5zaW5nbGV0b247XG59O1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciBFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCdldmVudHMnKS5FdmVudEVtaXR0ZXI7XG5yZXF1aXJlKCcuLi9odHRwJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5YSFJDbGllbnQgPSBBV1MudXRpbC5pbmhlcml0KHtcbiAgaGFuZGxlUmVxdWVzdDogZnVuY3Rpb24gaGFuZGxlUmVxdWVzdChodHRwUmVxdWVzdCwgaHR0cE9wdGlvbnMsIGNhbGxiYWNrLCBlcnJDYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgZW5kcG9pbnQgPSBodHRwUmVxdWVzdC5lbmRwb2ludDtcbiAgICB2YXIgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB2YXIgaHJlZiA9IGVuZHBvaW50LnByb3RvY29sICsgJy8vJyArIGVuZHBvaW50Lmhvc3RuYW1lO1xuICAgIGlmIChlbmRwb2ludC5wb3J0ICE9PSA4MCAmJiBlbmRwb2ludC5wb3J0ICE9PSA0NDMpIHtcbiAgICAgIGhyZWYgKz0gJzonICsgZW5kcG9pbnQucG9ydDtcbiAgICB9XG4gICAgaHJlZiArPSBodHRwUmVxdWVzdC5wYXRoO1xuXG4gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpLCBoZWFkZXJzRW1pdHRlZCA9IGZhbHNlO1xuICAgIGh0dHBSZXF1ZXN0LnN0cmVhbSA9IHhocjtcblxuICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgZnVuY3Rpb24oKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMCkgcmV0dXJuOyAvLyAwIGNvZGUgaXMgaW52YWxpZFxuICAgICAgfSBjYXRjaCAoZSkgeyByZXR1cm47IH1cblxuICAgICAgaWYgKHRoaXMucmVhZHlTdGF0ZSA+PSB0aGlzLkhFQURFUlNfUkVDRUlWRUQgJiYgIWhlYWRlcnNFbWl0dGVkKSB7XG4gICAgICAgIGVtaXR0ZXIuc3RhdHVzQ29kZSA9IHhoci5zdGF0dXM7XG4gICAgICAgIGVtaXR0ZXIuaGVhZGVycyA9IHNlbGYucGFyc2VIZWFkZXJzKHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7XG4gICAgICAgIGVtaXR0ZXIuZW1pdChcbiAgICAgICAgICAnaGVhZGVycycsXG4gICAgICAgICAgZW1pdHRlci5zdGF0dXNDb2RlLFxuICAgICAgICAgIGVtaXR0ZXIuaGVhZGVycyxcbiAgICAgICAgICB4aHIuc3RhdHVzVGV4dFxuICAgICAgICApO1xuICAgICAgICBoZWFkZXJzRW1pdHRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09PSB0aGlzLkRPTkUpIHtcbiAgICAgICAgc2VsZi5maW5pc2hSZXF1ZXN0KHhociwgZW1pdHRlcik7XG4gICAgICB9XG4gICAgfSwgZmFsc2UpO1xuICAgIHhoci51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBlbWl0dGVyLmVtaXQoJ3NlbmRQcm9ncmVzcycsIGV2dCk7XG4gICAgfSk7XG4gICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgZW1pdHRlci5lbWl0KCdyZWNlaXZlUHJvZ3Jlc3MnLCBldnQpO1xuICAgIH0sIGZhbHNlKTtcbiAgICB4aHIuYWRkRXZlbnRMaXN0ZW5lcigndGltZW91dCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGVyckNhbGxiYWNrKEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcignVGltZW91dCcpLCB7Y29kZTogJ1RpbWVvdXRFcnJvcid9KSk7XG4gICAgfSwgZmFsc2UpO1xuICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGVyckNhbGxiYWNrKEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcignTmV0d29yayBGYWlsdXJlJyksIHtcbiAgICAgICAgY29kZTogJ05ldHdvcmtpbmdFcnJvcidcbiAgICAgIH0pKTtcbiAgICB9LCBmYWxzZSk7XG4gICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgZnVuY3Rpb24gKCkge1xuICAgICAgZXJyQ2FsbGJhY2soQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCdSZXF1ZXN0IGFib3J0ZWQnKSwge1xuICAgICAgICBjb2RlOiAnUmVxdWVzdEFib3J0ZWRFcnJvcidcbiAgICAgIH0pKTtcbiAgICB9LCBmYWxzZSk7XG5cbiAgICBjYWxsYmFjayhlbWl0dGVyKTtcbiAgICB4aHIub3BlbihodHRwUmVxdWVzdC5tZXRob2QsIGhyZWYsIGh0dHBPcHRpb25zLnhockFzeW5jICE9PSBmYWxzZSk7XG4gICAgQVdTLnV0aWwuZWFjaChodHRwUmVxdWVzdC5oZWFkZXJzLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKGtleSAhPT0gJ0NvbnRlbnQtTGVuZ3RoJyAmJiBrZXkgIT09ICdVc2VyLUFnZW50JyAmJiBrZXkgIT09ICdIb3N0Jykge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChodHRwT3B0aW9ucy50aW1lb3V0ICYmIGh0dHBPcHRpb25zLnhockFzeW5jICE9PSBmYWxzZSkge1xuICAgICAgeGhyLnRpbWVvdXQgPSBodHRwT3B0aW9ucy50aW1lb3V0O1xuICAgIH1cblxuICAgIGlmIChodHRwT3B0aW9ucy54aHJXaXRoQ3JlZGVudGlhbHMpIHtcbiAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xuICAgIH1cbiAgICB0cnkgeyB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsgfSBjYXRjaCAoZSkge31cblxuICAgIHRyeSB7XG4gICAgICBpZiAoaHR0cFJlcXVlc3QuYm9keSkge1xuICAgICAgICB4aHIuc2VuZChodHRwUmVxdWVzdC5ib2R5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHhoci5zZW5kKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoaHR0cFJlcXVlc3QuYm9keSAmJiB0eXBlb2YgaHR0cFJlcXVlc3QuYm9keS5idWZmZXIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHhoci5zZW5kKGh0dHBSZXF1ZXN0LmJvZHkuYnVmZmVyKTsgLy8gc2VuZCBBcnJheUJ1ZmZlciBkaXJlY3RseVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlbWl0dGVyO1xuICB9LFxuXG4gIHBhcnNlSGVhZGVyczogZnVuY3Rpb24gcGFyc2VIZWFkZXJzKHJhd0hlYWRlcnMpIHtcbiAgICB2YXIgaGVhZGVycyA9IHt9O1xuICAgIEFXUy51dGlsLmFycmF5RWFjaChyYXdIZWFkZXJzLnNwbGl0KC9cXHI/XFxuLyksIGZ1bmN0aW9uIChsaW5lKSB7XG4gICAgICB2YXIga2V5ID0gbGluZS5zcGxpdCgnOicsIDEpWzBdO1xuICAgICAgdmFyIHZhbHVlID0gbGluZS5zdWJzdHJpbmcoa2V5Lmxlbmd0aCArIDIpO1xuICAgICAgaWYgKGtleS5sZW5ndGggPiAwKSBoZWFkZXJzW2tleS50b0xvd2VyQ2FzZSgpXSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9LFxuXG4gIGZpbmlzaFJlcXVlc3Q6IGZ1bmN0aW9uIGZpbmlzaFJlcXVlc3QoeGhyLCBlbWl0dGVyKSB7XG4gICAgdmFyIGJ1ZmZlcjtcbiAgICBpZiAoeGhyLnJlc3BvbnNlVHlwZSA9PT0gJ2FycmF5YnVmZmVyJyAmJiB4aHIucmVzcG9uc2UpIHtcbiAgICAgIHZhciBhYiA9IHhoci5yZXNwb25zZTtcbiAgICAgIGJ1ZmZlciA9IG5ldyBBV1MudXRpbC5CdWZmZXIoYWIuYnl0ZUxlbmd0aCk7XG4gICAgICB2YXIgdmlldyA9IG5ldyBVaW50OEFycmF5KGFiKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmZmVyLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGJ1ZmZlcltpXSA9IHZpZXdbaV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghYnVmZmVyICYmIHR5cGVvZiB4aHIucmVzcG9uc2VUZXh0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBidWZmZXIgPSBuZXcgQVdTLnV0aWwuQnVmZmVyKHhoci5yZXNwb25zZVRleHQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICBpZiAoYnVmZmVyKSBlbWl0dGVyLmVtaXQoJ2RhdGEnLCBidWZmZXIpO1xuICAgIGVtaXR0ZXIuZW1pdCgnZW5kJyk7XG4gIH1cbn0pO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuSHR0cENsaWVudC5wcm90b3R5cGUgPSBBV1MuWEhSQ2xpZW50LnByb3RvdHlwZTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLkh0dHBDbGllbnQuc3RyZWFtc0FwaVZlcnNpb24gPSAxO1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG5cbmZ1bmN0aW9uIEpzb25CdWlsZGVyKCkgeyB9XG5cbkpzb25CdWlsZGVyLnByb3RvdHlwZS5idWlsZCA9IGZ1bmN0aW9uKHZhbHVlLCBzaGFwZSkge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodHJhbnNsYXRlKHZhbHVlLCBzaGFwZSkpO1xufTtcblxuZnVuY3Rpb24gdHJhbnNsYXRlKHZhbHVlLCBzaGFwZSkge1xuICBpZiAoIXNoYXBlIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgc3dpdGNoIChzaGFwZS50eXBlKSB7XG4gICAgY2FzZSAnc3RydWN0dXJlJzogcmV0dXJuIHRyYW5zbGF0ZVN0cnVjdHVyZSh2YWx1ZSwgc2hhcGUpO1xuICAgIGNhc2UgJ21hcCc6IHJldHVybiB0cmFuc2xhdGVNYXAodmFsdWUsIHNoYXBlKTtcbiAgICBjYXNlICdsaXN0JzogcmV0dXJuIHRyYW5zbGF0ZUxpc3QodmFsdWUsIHNoYXBlKTtcbiAgICBkZWZhdWx0OiByZXR1cm4gdHJhbnNsYXRlU2NhbGFyKHZhbHVlLCBzaGFwZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlU3RydWN0dXJlKHN0cnVjdHVyZSwgc2hhcGUpIHtcbiAgdmFyIHN0cnVjdCA9IHt9O1xuICB1dGlsLmVhY2goc3RydWN0dXJlLCBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgIHZhciBtZW1iZXJTaGFwZSA9IHNoYXBlLm1lbWJlcnNbbmFtZV07XG4gICAgaWYgKG1lbWJlclNoYXBlKSB7XG4gICAgICBpZiAobWVtYmVyU2hhcGUubG9jYXRpb24gIT09ICdib2R5JykgcmV0dXJuO1xuICAgICAgdmFyIGxvY2F0aW9uTmFtZSA9IG1lbWJlclNoYXBlLmlzTG9jYXRpb25OYW1lID8gbWVtYmVyU2hhcGUubmFtZSA6IG5hbWU7XG4gICAgICB2YXIgcmVzdWx0ID0gdHJhbnNsYXRlKHZhbHVlLCBtZW1iZXJTaGFwZSk7XG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHN0cnVjdFtsb2NhdGlvbk5hbWVdID0gcmVzdWx0O1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBzdHJ1Y3Q7XG59XG5cbmZ1bmN0aW9uIHRyYW5zbGF0ZUxpc3QobGlzdCwgc2hhcGUpIHtcbiAgdmFyIG91dCA9IFtdO1xuICB1dGlsLmFycmF5RWFjaChsaXN0LCBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciByZXN1bHQgPSB0cmFuc2xhdGUodmFsdWUsIHNoYXBlLm1lbWJlcik7XG4gICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSBvdXQucHVzaChyZXN1bHQpO1xuICB9KTtcbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlTWFwKG1hcCwgc2hhcGUpIHtcbiAgdmFyIG91dCA9IHt9O1xuICB1dGlsLmVhY2gobWFwLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgdmFyIHJlc3VsdCA9IHRyYW5zbGF0ZSh2YWx1ZSwgc2hhcGUudmFsdWUpO1xuICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkgb3V0W2tleV0gPSByZXN1bHQ7XG4gIH0pO1xuICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVTY2FsYXIodmFsdWUsIHNoYXBlKSB7XG4gIHJldHVybiBzaGFwZS50b1dpcmVGb3JtYXQodmFsdWUpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEpzb25CdWlsZGVyO1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG5cbmZ1bmN0aW9uIEpzb25QYXJzZXIoKSB7IH1cblxuSnNvblBhcnNlci5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbih2YWx1ZSwgc2hhcGUpIHtcbiAgcmV0dXJuIHRyYW5zbGF0ZShKU09OLnBhcnNlKHZhbHVlKSwgc2hhcGUpO1xufTtcblxuZnVuY3Rpb24gdHJhbnNsYXRlKHZhbHVlLCBzaGFwZSkge1xuICBpZiAoIXNoYXBlIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgc3dpdGNoIChzaGFwZS50eXBlKSB7XG4gICAgY2FzZSAnc3RydWN0dXJlJzogcmV0dXJuIHRyYW5zbGF0ZVN0cnVjdHVyZSh2YWx1ZSwgc2hhcGUpO1xuICAgIGNhc2UgJ21hcCc6IHJldHVybiB0cmFuc2xhdGVNYXAodmFsdWUsIHNoYXBlKTtcbiAgICBjYXNlICdsaXN0JzogcmV0dXJuIHRyYW5zbGF0ZUxpc3QodmFsdWUsIHNoYXBlKTtcbiAgICBkZWZhdWx0OiByZXR1cm4gdHJhbnNsYXRlU2NhbGFyKHZhbHVlLCBzaGFwZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlU3RydWN0dXJlKHN0cnVjdHVyZSwgc2hhcGUpIHtcbiAgaWYgKHN0cnVjdHVyZSA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIHZhciBzdHJ1Y3QgPSB7fTtcbiAgdmFyIHNoYXBlTWVtYmVycyA9IHNoYXBlLm1lbWJlcnM7XG4gIHV0aWwuZWFjaChzaGFwZU1lbWJlcnMsIGZ1bmN0aW9uKG5hbWUsIG1lbWJlclNoYXBlKSB7XG4gICAgdmFyIGxvY2F0aW9uTmFtZSA9IG1lbWJlclNoYXBlLmlzTG9jYXRpb25OYW1lID8gbWVtYmVyU2hhcGUubmFtZSA6IG5hbWU7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdHJ1Y3R1cmUsIGxvY2F0aW9uTmFtZSkpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHN0cnVjdHVyZVtsb2NhdGlvbk5hbWVdO1xuICAgICAgdmFyIHJlc3VsdCA9IHRyYW5zbGF0ZSh2YWx1ZSwgbWVtYmVyU2hhcGUpO1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSBzdHJ1Y3RbbmFtZV0gPSByZXN1bHQ7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHN0cnVjdDtcbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlTGlzdChsaXN0LCBzaGFwZSkge1xuICBpZiAobGlzdCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIHZhciBvdXQgPSBbXTtcbiAgdXRpbC5hcnJheUVhY2gobGlzdCwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YXIgcmVzdWx0ID0gdHJhbnNsYXRlKHZhbHVlLCBzaGFwZS5tZW1iZXIpO1xuICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgb3V0LnB1c2gobnVsbCk7XG4gICAgZWxzZSBvdXQucHVzaChyZXN1bHQpO1xuICB9KTtcbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlTWFwKG1hcCwgc2hhcGUpIHtcbiAgaWYgKG1hcCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIHZhciBvdXQgPSB7fTtcbiAgdXRpbC5lYWNoKG1hcCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgIHZhciByZXN1bHQgPSB0cmFuc2xhdGUodmFsdWUsIHNoYXBlLnZhbHVlKTtcbiAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIG91dFtrZXldID0gbnVsbDtcbiAgICBlbHNlIG91dFtrZXldID0gcmVzdWx0O1xuICB9KTtcbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlU2NhbGFyKHZhbHVlLCBzaGFwZSkge1xuICByZXR1cm4gc2hhcGUudG9UeXBlKHZhbHVlKTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBKc29uUGFyc2VyO1xuIiwidmFyIENvbGxlY3Rpb24gPSByZXF1aXJlKCcuL2NvbGxlY3Rpb24nKTtcbnZhciBPcGVyYXRpb24gPSByZXF1aXJlKCcuL29wZXJhdGlvbicpO1xudmFyIFNoYXBlID0gcmVxdWlyZSgnLi9zaGFwZScpO1xudmFyIFBhZ2luYXRvciA9IHJlcXVpcmUoJy4vcGFnaW5hdG9yJyk7XG52YXIgUmVzb3VyY2VXYWl0ZXIgPSByZXF1aXJlKCcuL3Jlc291cmNlX3dhaXRlcicpO1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcbnZhciBwcm9wZXJ0eSA9IHV0aWwucHJvcGVydHk7XG52YXIgbWVtb2l6ZWRQcm9wZXJ0eSA9IHV0aWwubWVtb2l6ZWRQcm9wZXJ0eTtcblxuZnVuY3Rpb24gQXBpKGFwaSwgb3B0aW9ucykge1xuICBhcGkgPSBhcGkgfHwge307XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBvcHRpb25zLmFwaSA9IHRoaXM7XG5cbiAgYXBpLm1ldGFkYXRhID0gYXBpLm1ldGFkYXRhIHx8IHt9O1xuXG4gIHByb3BlcnR5KHRoaXMsICdpc0FwaScsIHRydWUsIGZhbHNlKTtcbiAgcHJvcGVydHkodGhpcywgJ2FwaVZlcnNpb24nLCBhcGkubWV0YWRhdGEuYXBpVmVyc2lvbik7XG4gIHByb3BlcnR5KHRoaXMsICdlbmRwb2ludFByZWZpeCcsIGFwaS5tZXRhZGF0YS5lbmRwb2ludFByZWZpeCk7XG4gIHByb3BlcnR5KHRoaXMsICdzaWduaW5nTmFtZScsIGFwaS5tZXRhZGF0YS5zaWduaW5nTmFtZSk7XG4gIHByb3BlcnR5KHRoaXMsICdnbG9iYWxFbmRwb2ludCcsIGFwaS5tZXRhZGF0YS5nbG9iYWxFbmRwb2ludCk7XG4gIHByb3BlcnR5KHRoaXMsICdzaWduYXR1cmVWZXJzaW9uJywgYXBpLm1ldGFkYXRhLnNpZ25hdHVyZVZlcnNpb24pO1xuICBwcm9wZXJ0eSh0aGlzLCAnanNvblZlcnNpb24nLCBhcGkubWV0YWRhdGEuanNvblZlcnNpb24pO1xuICBwcm9wZXJ0eSh0aGlzLCAndGFyZ2V0UHJlZml4JywgYXBpLm1ldGFkYXRhLnRhcmdldFByZWZpeCk7XG4gIHByb3BlcnR5KHRoaXMsICdwcm90b2NvbCcsIGFwaS5tZXRhZGF0YS5wcm90b2NvbCk7XG4gIHByb3BlcnR5KHRoaXMsICd0aW1lc3RhbXBGb3JtYXQnLCBhcGkubWV0YWRhdGEudGltZXN0YW1wRm9ybWF0KTtcbiAgcHJvcGVydHkodGhpcywgJ3htbE5hbWVzcGFjZVVyaScsIGFwaS5tZXRhZGF0YS54bWxOYW1lc3BhY2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnYWJicmV2aWF0aW9uJywgYXBpLm1ldGFkYXRhLnNlcnZpY2VBYmJyZXZpYXRpb24pO1xuICBwcm9wZXJ0eSh0aGlzLCAnZnVsbE5hbWUnLCBhcGkubWV0YWRhdGEuc2VydmljZUZ1bGxOYW1lKTtcblxuICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdjbGFzc05hbWUnLCBmdW5jdGlvbigpIHtcbiAgICB2YXIgbmFtZSA9IGFwaS5tZXRhZGF0YS5zZXJ2aWNlQWJicmV2aWF0aW9uIHx8IGFwaS5tZXRhZGF0YS5zZXJ2aWNlRnVsbE5hbWU7XG4gICAgaWYgKCFuYW1lKSByZXR1cm4gbnVsbDtcblxuICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoL15BbWF6b258QVdTXFxzKnxcXCguKnxcXHMrfFxcVysvZywgJycpO1xuICAgIGlmIChuYW1lID09PSAnRWxhc3RpY0xvYWRCYWxhbmNpbmcnKSBuYW1lID0gJ0VMQic7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH0pO1xuXG4gIHByb3BlcnR5KHRoaXMsICdvcGVyYXRpb25zJywgbmV3IENvbGxlY3Rpb24oYXBpLm9wZXJhdGlvbnMsIG9wdGlvbnMsIGZ1bmN0aW9uKG5hbWUsIG9wZXJhdGlvbikge1xuICAgIHJldHVybiBuZXcgT3BlcmF0aW9uKG5hbWUsIG9wZXJhdGlvbiwgb3B0aW9ucyk7XG4gIH0sIHV0aWwuc3RyaW5nLmxvd2VyRmlyc3QpKTtcblxuICBwcm9wZXJ0eSh0aGlzLCAnc2hhcGVzJywgbmV3IENvbGxlY3Rpb24oYXBpLnNoYXBlcywgb3B0aW9ucywgZnVuY3Rpb24obmFtZSwgc2hhcGUpIHtcbiAgICByZXR1cm4gU2hhcGUuY3JlYXRlKHNoYXBlLCBvcHRpb25zKTtcbiAgfSkpO1xuXG4gIHByb3BlcnR5KHRoaXMsICdwYWdpbmF0b3JzJywgbmV3IENvbGxlY3Rpb24oYXBpLnBhZ2luYXRvcnMsIG9wdGlvbnMsIGZ1bmN0aW9uKG5hbWUsIHBhZ2luYXRvcikge1xuICAgIHJldHVybiBuZXcgUGFnaW5hdG9yKG5hbWUsIHBhZ2luYXRvciwgb3B0aW9ucyk7XG4gIH0pKTtcblxuICBwcm9wZXJ0eSh0aGlzLCAnd2FpdGVycycsIG5ldyBDb2xsZWN0aW9uKGFwaS53YWl0ZXJzLCBvcHRpb25zLCBmdW5jdGlvbihuYW1lLCB3YWl0ZXIpIHtcbiAgICByZXR1cm4gbmV3IFJlc291cmNlV2FpdGVyKG5hbWUsIHdhaXRlciwgb3B0aW9ucyk7XG4gIH0sIHV0aWwuc3RyaW5nLmxvd2VyRmlyc3QpKTtcblxuICBpZiAob3B0aW9ucy5kb2N1bWVudGF0aW9uKSB7XG4gICAgcHJvcGVydHkodGhpcywgJ2RvY3VtZW50YXRpb24nLCBhcGkuZG9jdW1lbnRhdGlvbik7XG4gICAgcHJvcGVydHkodGhpcywgJ2RvY3VtZW50YXRpb25VcmwnLCBhcGkuZG9jdW1lbnRhdGlvblVybCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBcGk7XG4iLCJ2YXIgbWVtb2l6ZWRQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL3V0aWwnKS5tZW1vaXplZFByb3BlcnR5O1xuXG5mdW5jdGlvbiBtZW1vaXplKG5hbWUsIHZhbHVlLCBmbiwgbmFtZVRyKSB7XG4gIG1lbW9pemVkUHJvcGVydHkodGhpcywgbmFtZVRyKG5hbWUpLCBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZm4obmFtZSwgdmFsdWUpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gQ29sbGVjdGlvbihpdGVyYWJsZSwgb3B0aW9ucywgZm4sIG5hbWVUcikge1xuICBuYW1lVHIgPSBuYW1lVHIgfHwgU3RyaW5nO1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgZm9yICh2YXIgaWQgaW4gaXRlcmFibGUpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0ZXJhYmxlLCBpZCkpIHtcbiAgICAgIG1lbW9pemUuY2FsbChzZWxmLCBpZCwgaXRlcmFibGVbaWRdLCBmbiwgbmFtZVRyKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBDb2xsZWN0aW9uO1xuIiwidmFyIFNoYXBlID0gcmVxdWlyZSgnLi9zaGFwZScpO1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcbnZhciBwcm9wZXJ0eSA9IHV0aWwucHJvcGVydHk7XG52YXIgbWVtb2l6ZWRQcm9wZXJ0eSA9IHV0aWwubWVtb2l6ZWRQcm9wZXJ0eTtcblxuZnVuY3Rpb24gT3BlcmF0aW9uKG5hbWUsIG9wZXJhdGlvbiwgb3B0aW9ucykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIHByb3BlcnR5KHRoaXMsICduYW1lJywgb3BlcmF0aW9uLm5hbWUgfHwgbmFtZSk7XG4gIHByb3BlcnR5KHRoaXMsICdhcGknLCBvcHRpb25zLmFwaSwgZmFsc2UpO1xuXG4gIG9wZXJhdGlvbi5odHRwID0gb3BlcmF0aW9uLmh0dHAgfHwge307XG4gIHByb3BlcnR5KHRoaXMsICdodHRwTWV0aG9kJywgb3BlcmF0aW9uLmh0dHAubWV0aG9kIHx8ICdQT1NUJyk7XG4gIHByb3BlcnR5KHRoaXMsICdodHRwUGF0aCcsIG9wZXJhdGlvbi5odHRwLnJlcXVlc3RVcmkgfHwgJy8nKTtcbiAgcHJvcGVydHkodGhpcywgJ2F1dGh0eXBlJywgb3BlcmF0aW9uLmF1dGh0eXBlIHx8ICcnKTtcblxuICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdpbnB1dCcsIGZ1bmN0aW9uKCkge1xuICAgIGlmICghb3BlcmF0aW9uLmlucHV0KSB7XG4gICAgICByZXR1cm4gbmV3IFNoYXBlLmNyZWF0ZSh7dHlwZTogJ3N0cnVjdHVyZSd9LCBvcHRpb25zKTtcbiAgICB9XG4gICAgcmV0dXJuIFNoYXBlLmNyZWF0ZShvcGVyYXRpb24uaW5wdXQsIG9wdGlvbnMpO1xuICB9KTtcblxuICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdvdXRwdXQnLCBmdW5jdGlvbigpIHtcbiAgICBpZiAoIW9wZXJhdGlvbi5vdXRwdXQpIHtcbiAgICAgIHJldHVybiBuZXcgU2hhcGUuY3JlYXRlKHt0eXBlOiAnc3RydWN0dXJlJ30sIG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gU2hhcGUuY3JlYXRlKG9wZXJhdGlvbi5vdXRwdXQsIG9wdGlvbnMpO1xuICB9KTtcblxuICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdlcnJvcnMnLCBmdW5jdGlvbigpIHtcbiAgICB2YXIgbGlzdCA9IFtdO1xuICAgIGlmICghb3BlcmF0aW9uLmVycm9ycykgcmV0dXJuIG51bGw7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wZXJhdGlvbi5lcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxpc3QucHVzaChTaGFwZS5jcmVhdGUob3BlcmF0aW9uLmVycm9yc1tpXSwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHJldHVybiBsaXN0O1xuICB9KTtcblxuICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdwYWdpbmF0b3InLCBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5hcGkucGFnaW5hdG9yc1tuYW1lXTtcbiAgfSk7XG5cbiAgaWYgKG9wdGlvbnMuZG9jdW1lbnRhdGlvbikge1xuICAgIHByb3BlcnR5KHRoaXMsICdkb2N1bWVudGF0aW9uJywgb3BlcmF0aW9uLmRvY3VtZW50YXRpb24pO1xuICAgIHByb3BlcnR5KHRoaXMsICdkb2N1bWVudGF0aW9uVXJsJywgb3BlcmF0aW9uLmRvY3VtZW50YXRpb25VcmwpO1xuICB9XG5cbiAgLy8gaWRlbXBvdGVudE1lbWJlcnMgb25seSB0cmFja3MgdG9wLWxldmVsIGlucHV0IHNoYXBlc1xuICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdpZGVtcG90ZW50TWVtYmVycycsIGZ1bmN0aW9uKCkge1xuICAgIHZhciBpZGVtcG90ZW50TWVtYmVycyA9IFtdO1xuICAgIHZhciBpbnB1dCA9IHNlbGYuaW5wdXQ7XG4gICAgdmFyIG1lbWJlcnMgPSBpbnB1dC5tZW1iZXJzO1xuICAgIGlmICghaW5wdXQubWVtYmVycykge1xuICAgICAgcmV0dXJuIGlkZW1wb3RlbnRNZW1iZXJzO1xuICAgIH1cbiAgICBmb3IgKHZhciBuYW1lIGluIG1lbWJlcnMpIHtcbiAgICAgIGlmICghbWVtYmVycy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChtZW1iZXJzW25hbWVdLmlzSWRlbXBvdGVudCA9PT0gdHJ1ZSkge1xuICAgICAgICBpZGVtcG90ZW50TWVtYmVycy5wdXNoKG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaWRlbXBvdGVudE1lbWJlcnM7XG4gIH0pO1xuXG4gIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ2hhc0V2ZW50T3V0cHV0JywgZnVuY3Rpb24oKSB7XG4gICAgdmFyIG91dHB1dCA9IHNlbGYub3V0cHV0O1xuICAgIHJldHVybiBoYXNFdmVudFN0cmVhbShvdXRwdXQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaGFzRXZlbnRTdHJlYW0odG9wTGV2ZWxTaGFwZSkge1xuICB2YXIgbWVtYmVycyA9IHRvcExldmVsU2hhcGUubWVtYmVycztcbiAgdmFyIHBheWxvYWQgPSB0b3BMZXZlbFNoYXBlLnBheWxvYWQ7XG5cbiAgaWYgKCF0b3BMZXZlbFNoYXBlLm1lbWJlcnMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAocGF5bG9hZCkge1xuICAgIHZhciBwYXlsb2FkTWVtYmVyID0gbWVtYmVyc1twYXlsb2FkXTtcbiAgICByZXR1cm4gcGF5bG9hZE1lbWJlci5pc0V2ZW50U3RyZWFtO1xuICB9XG5cbiAgLy8gY2hlY2sgaWYgYW55IG1lbWJlciBpcyBhbiBldmVudCBzdHJlYW1cbiAgZm9yICh2YXIgbmFtZSBpbiBtZW1iZXJzKSB7XG4gICAgaWYgKCFtZW1iZXJzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICBpZiAobWVtYmVyc1tuYW1lXS5pc0V2ZW50U3RyZWFtID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gT3BlcmF0aW9uO1xuIiwidmFyIHByb3BlcnR5ID0gcmVxdWlyZSgnLi4vdXRpbCcpLnByb3BlcnR5O1xuXG5mdW5jdGlvbiBQYWdpbmF0b3IobmFtZSwgcGFnaW5hdG9yKSB7XG4gIHByb3BlcnR5KHRoaXMsICdpbnB1dFRva2VuJywgcGFnaW5hdG9yLmlucHV0X3Rva2VuKTtcbiAgcHJvcGVydHkodGhpcywgJ2xpbWl0S2V5JywgcGFnaW5hdG9yLmxpbWl0X2tleSk7XG4gIHByb3BlcnR5KHRoaXMsICdtb3JlUmVzdWx0cycsIHBhZ2luYXRvci5tb3JlX3Jlc3VsdHMpO1xuICBwcm9wZXJ0eSh0aGlzLCAnb3V0cHV0VG9rZW4nLCBwYWdpbmF0b3Iub3V0cHV0X3Rva2VuKTtcbiAgcHJvcGVydHkodGhpcywgJ3Jlc3VsdEtleScsIHBhZ2luYXRvci5yZXN1bHRfa2V5KTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBQYWdpbmF0b3I7XG4iLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcbnZhciBwcm9wZXJ0eSA9IHV0aWwucHJvcGVydHk7XG5cbmZ1bmN0aW9uIFJlc291cmNlV2FpdGVyKG5hbWUsIHdhaXRlciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgcHJvcGVydHkodGhpcywgJ25hbWUnLCBuYW1lKTtcbiAgcHJvcGVydHkodGhpcywgJ2FwaScsIG9wdGlvbnMuYXBpLCBmYWxzZSk7XG5cbiAgaWYgKHdhaXRlci5vcGVyYXRpb24pIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnb3BlcmF0aW9uJywgdXRpbC5zdHJpbmcubG93ZXJGaXJzdCh3YWl0ZXIub3BlcmF0aW9uKSk7XG4gIH1cblxuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBrZXlzID0gW1xuICAgICd0eXBlJyxcbiAgICAnZGVzY3JpcHRpb24nLFxuICAgICdkZWxheScsXG4gICAgJ21heEF0dGVtcHRzJyxcbiAgICAnYWNjZXB0b3JzJ1xuICBdO1xuXG4gIGtleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICB2YXIgdmFsdWUgPSB3YWl0ZXJba2V5XTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHByb3BlcnR5KHNlbGYsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gUmVzb3VyY2VXYWl0ZXI7XG4iLCJ2YXIgQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4vY29sbGVjdGlvbicpO1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcblxuZnVuY3Rpb24gcHJvcGVydHkob2JqLCBuYW1lLCB2YWx1ZSkge1xuICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHV0aWwucHJvcGVydHkuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZW1vaXplZFByb3BlcnR5KG9iaiwgbmFtZSkge1xuICBpZiAoIW9iai5jb25zdHJ1Y3Rvci5wcm90b3R5cGVbbmFtZV0pIHtcbiAgICB1dGlsLm1lbW9pemVkUHJvcGVydHkuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBTaGFwZShzaGFwZSwgb3B0aW9ucywgbWVtYmVyTmFtZSkge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBwcm9wZXJ0eSh0aGlzLCAnc2hhcGUnLCBzaGFwZS5zaGFwZSk7XG4gIHByb3BlcnR5KHRoaXMsICdhcGknLCBvcHRpb25zLmFwaSwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAndHlwZScsIHNoYXBlLnR5cGUpO1xuICBwcm9wZXJ0eSh0aGlzLCAnZW51bScsIHNoYXBlLmVudW0pO1xuICBwcm9wZXJ0eSh0aGlzLCAnbWluJywgc2hhcGUubWluKTtcbiAgcHJvcGVydHkodGhpcywgJ21heCcsIHNoYXBlLm1heCk7XG4gIHByb3BlcnR5KHRoaXMsICdwYXR0ZXJuJywgc2hhcGUucGF0dGVybik7XG4gIHByb3BlcnR5KHRoaXMsICdsb2NhdGlvbicsIHNoYXBlLmxvY2F0aW9uIHx8IHRoaXMubG9jYXRpb24gfHwgJ2JvZHknKTtcbiAgcHJvcGVydHkodGhpcywgJ25hbWUnLCB0aGlzLm5hbWUgfHwgc2hhcGUueG1sTmFtZSB8fCBzaGFwZS5xdWVyeU5hbWUgfHxcbiAgICBzaGFwZS5sb2NhdGlvbk5hbWUgfHwgbWVtYmVyTmFtZSk7XG4gIHByb3BlcnR5KHRoaXMsICdpc1N0cmVhbWluZycsIHNoYXBlLnN0cmVhbWluZyB8fCB0aGlzLmlzU3RyZWFtaW5nIHx8IGZhbHNlKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzQ29tcG9zaXRlJywgc2hhcGUuaXNDb21wb3NpdGUgfHwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnaXNTaGFwZScsIHRydWUsIGZhbHNlKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzUXVlcnlOYW1lJywgQm9vbGVhbihzaGFwZS5xdWVyeU5hbWUpLCBmYWxzZSk7XG4gIHByb3BlcnR5KHRoaXMsICdpc0xvY2F0aW9uTmFtZScsIEJvb2xlYW4oc2hhcGUubG9jYXRpb25OYW1lKSwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnaXNJZGVtcG90ZW50Jywgc2hhcGUuaWRlbXBvdGVuY3lUb2tlbiA9PT0gdHJ1ZSk7XG4gIHByb3BlcnR5KHRoaXMsICdpc0pzb25WYWx1ZScsIHNoYXBlLmpzb252YWx1ZSA9PT0gdHJ1ZSk7XG4gIHByb3BlcnR5KHRoaXMsICdpc1NlbnNpdGl2ZScsIHNoYXBlLnNlbnNpdGl2ZSA9PT0gdHJ1ZSB8fCBzaGFwZS5wcm90b3R5cGUgJiYgc2hhcGUucHJvdG90eXBlLnNlbnNpdGl2ZSA9PT0gdHJ1ZSk7XG4gIHByb3BlcnR5KHRoaXMsICdpc0V2ZW50U3RyZWFtJywgQm9vbGVhbihzaGFwZS5ldmVudHN0cmVhbSksIGZhbHNlKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzRXZlbnQnLCBCb29sZWFuKHNoYXBlLmV2ZW50KSwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnaXNFdmVudFBheWxvYWQnLCBCb29sZWFuKHNoYXBlLmV2ZW50cGF5bG9hZCksIGZhbHNlKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzRXZlbnRIZWFkZXInLCBCb29sZWFuKHNoYXBlLmV2ZW50aGVhZGVyKSwgZmFsc2UpO1xuXG4gIGlmIChvcHRpb25zLmRvY3VtZW50YXRpb24pIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnZG9jdW1lbnRhdGlvbicsIHNoYXBlLmRvY3VtZW50YXRpb24pO1xuICAgIHByb3BlcnR5KHRoaXMsICdkb2N1bWVudGF0aW9uVXJsJywgc2hhcGUuZG9jdW1lbnRhdGlvblVybCk7XG4gIH1cblxuICBpZiAoc2hhcGUueG1sQXR0cmlidXRlKSB7XG4gICAgcHJvcGVydHkodGhpcywgJ2lzWG1sQXR0cmlidXRlJywgc2hhcGUueG1sQXR0cmlidXRlIHx8IGZhbHNlKTtcbiAgfVxuXG4gIC8vIHR5cGUgY29udmVyc2lvbiBhbmQgcGFyc2luZ1xuICBwcm9wZXJ0eSh0aGlzLCAnZGVmYXVsdFZhbHVlJywgbnVsbCk7XG4gIHRoaXMudG9XaXJlRm9ybWF0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICcnO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbiAgdGhpcy50b1R5cGUgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblNoYXBlLm5vcm1hbGl6ZWRUeXBlcyA9IHtcbiAgY2hhcmFjdGVyOiAnc3RyaW5nJyxcbiAgZG91YmxlOiAnZmxvYXQnLFxuICBsb25nOiAnaW50ZWdlcicsXG4gIHNob3J0OiAnaW50ZWdlcicsXG4gIGJpZ2ludGVnZXI6ICdpbnRlZ2VyJyxcbiAgYmlnZGVjaW1hbDogJ2Zsb2F0JyxcbiAgYmxvYjogJ2JpbmFyeSdcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblNoYXBlLnR5cGVzID0ge1xuICAnc3RydWN0dXJlJzogU3RydWN0dXJlU2hhcGUsXG4gICdsaXN0JzogTGlzdFNoYXBlLFxuICAnbWFwJzogTWFwU2hhcGUsXG4gICdib29sZWFuJzogQm9vbGVhblNoYXBlLFxuICAndGltZXN0YW1wJzogVGltZXN0YW1wU2hhcGUsXG4gICdmbG9hdCc6IEZsb2F0U2hhcGUsXG4gICdpbnRlZ2VyJzogSW50ZWdlclNoYXBlLFxuICAnc3RyaW5nJzogU3RyaW5nU2hhcGUsXG4gICdiYXNlNjQnOiBCYXNlNjRTaGFwZSxcbiAgJ2JpbmFyeSc6IEJpbmFyeVNoYXBlXG59O1xuXG5TaGFwZS5yZXNvbHZlID0gZnVuY3Rpb24gcmVzb2x2ZShzaGFwZSwgb3B0aW9ucykge1xuICBpZiAoc2hhcGUuc2hhcGUpIHtcbiAgICB2YXIgcmVmU2hhcGUgPSBvcHRpb25zLmFwaS5zaGFwZXNbc2hhcGUuc2hhcGVdO1xuICAgIGlmICghcmVmU2hhcGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbmQgc2hhcGUgcmVmZXJlbmNlOiAnICsgc2hhcGUuc2hhcGUpO1xuICAgIH1cblxuICAgIHJldHVybiByZWZTaGFwZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcblxuU2hhcGUuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKHNoYXBlLCBvcHRpb25zLCBtZW1iZXJOYW1lKSB7XG4gIGlmIChzaGFwZS5pc1NoYXBlKSByZXR1cm4gc2hhcGU7XG5cbiAgdmFyIHJlZlNoYXBlID0gU2hhcGUucmVzb2x2ZShzaGFwZSwgb3B0aW9ucyk7XG4gIGlmIChyZWZTaGFwZSkge1xuICAgIHZhciBmaWx0ZXJlZEtleXMgPSBPYmplY3Qua2V5cyhzaGFwZSk7XG4gICAgaWYgKCFvcHRpb25zLmRvY3VtZW50YXRpb24pIHtcbiAgICAgIGZpbHRlcmVkS2V5cyA9IGZpbHRlcmVkS2V5cy5maWx0ZXIoZnVuY3Rpb24obmFtZSkge1xuICAgICAgICByZXR1cm4gIW5hbWUubWF0Y2goL2RvY3VtZW50YXRpb24vKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGNyZWF0ZSBhbiBpbmxpbmUgc2hhcGUgd2l0aCBleHRyYSBtZW1iZXJzXG4gICAgdmFyIElubGluZVNoYXBlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZWZTaGFwZS5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsIHNoYXBlLCBvcHRpb25zLCBtZW1iZXJOYW1lKTtcbiAgICB9O1xuICAgIElubGluZVNoYXBlLnByb3RvdHlwZSA9IHJlZlNoYXBlO1xuICAgIHJldHVybiBuZXcgSW5saW5lU2hhcGUoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBzZXQgdHlwZSBpZiBub3Qgc2V0XG4gICAgaWYgKCFzaGFwZS50eXBlKSB7XG4gICAgICBpZiAoc2hhcGUubWVtYmVycykgc2hhcGUudHlwZSA9ICdzdHJ1Y3R1cmUnO1xuICAgICAgZWxzZSBpZiAoc2hhcGUubWVtYmVyKSBzaGFwZS50eXBlID0gJ2xpc3QnO1xuICAgICAgZWxzZSBpZiAoc2hhcGUua2V5KSBzaGFwZS50eXBlID0gJ21hcCc7XG4gICAgICBlbHNlIHNoYXBlLnR5cGUgPSAnc3RyaW5nJztcbiAgICB9XG5cbiAgICAvLyBub3JtYWxpemUgdHlwZXNcbiAgICB2YXIgb3JpZ1R5cGUgPSBzaGFwZS50eXBlO1xuICAgIGlmIChTaGFwZS5ub3JtYWxpemVkVHlwZXNbc2hhcGUudHlwZV0pIHtcbiAgICAgIHNoYXBlLnR5cGUgPSBTaGFwZS5ub3JtYWxpemVkVHlwZXNbc2hhcGUudHlwZV07XG4gICAgfVxuXG4gICAgaWYgKFNoYXBlLnR5cGVzW3NoYXBlLnR5cGVdKSB7XG4gICAgICByZXR1cm4gbmV3IFNoYXBlLnR5cGVzW3NoYXBlLnR5cGVdKHNoYXBlLCBvcHRpb25zLCBtZW1iZXJOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnJlY29nbml6ZWQgc2hhcGUgdHlwZTogJyArIG9yaWdUeXBlKTtcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIENvbXBvc2l0ZVNoYXBlKHNoYXBlKSB7XG4gIFNoYXBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIHByb3BlcnR5KHRoaXMsICdpc0NvbXBvc2l0ZScsIHRydWUpO1xuXG4gIGlmIChzaGFwZS5mbGF0dGVuZWQpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnZmxhdHRlbmVkJywgc2hhcGUuZmxhdHRlbmVkIHx8IGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBTdHJ1Y3R1cmVTaGFwZShzaGFwZSwgb3B0aW9ucykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciByZXF1aXJlZE1hcCA9IG51bGwsIGZpcnN0SW5pdCA9ICF0aGlzLmlzU2hhcGU7XG5cbiAgQ29tcG9zaXRlU2hhcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICBpZiAoZmlyc3RJbml0KSB7XG4gICAgcHJvcGVydHkodGhpcywgJ2RlZmF1bHRWYWx1ZScsIGZ1bmN0aW9uKCkgeyByZXR1cm4ge307IH0pO1xuICAgIHByb3BlcnR5KHRoaXMsICdtZW1iZXJzJywge30pO1xuICAgIHByb3BlcnR5KHRoaXMsICdtZW1iZXJOYW1lcycsIFtdKTtcbiAgICBwcm9wZXJ0eSh0aGlzLCAncmVxdWlyZWQnLCBbXSk7XG4gICAgcHJvcGVydHkodGhpcywgJ2lzUmVxdWlyZWQnLCBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9KTtcbiAgfVxuXG4gIGlmIChzaGFwZS5tZW1iZXJzKSB7XG4gICAgcHJvcGVydHkodGhpcywgJ21lbWJlcnMnLCBuZXcgQ29sbGVjdGlvbihzaGFwZS5tZW1iZXJzLCBvcHRpb25zLCBmdW5jdGlvbihuYW1lLCBtZW1iZXIpIHtcbiAgICAgIHJldHVybiBTaGFwZS5jcmVhdGUobWVtYmVyLCBvcHRpb25zLCBuYW1lKTtcbiAgICB9KSk7XG4gICAgbWVtb2l6ZWRQcm9wZXJ0eSh0aGlzLCAnbWVtYmVyTmFtZXMnLCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBzaGFwZS54bWxPcmRlciB8fCBPYmplY3Qua2V5cyhzaGFwZS5tZW1iZXJzKTtcbiAgICB9KTtcblxuICAgIGlmIChzaGFwZS5ldmVudCkge1xuICAgICAgbWVtb2l6ZWRQcm9wZXJ0eSh0aGlzLCAnZXZlbnRQYXlsb2FkTWVtYmVyTmFtZScsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbWVtYmVycyA9IHNlbGYubWVtYmVycztcbiAgICAgICAgdmFyIG1lbWJlck5hbWVzID0gc2VsZi5tZW1iZXJOYW1lcztcbiAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIG1lbWJlcnMgdG8gZmluZCBvbmVzIHRoYXQgYXJlIGV2ZW50IHBheWxvYWRzXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBpTGVuID0gbWVtYmVyTmFtZXMubGVuZ3RoOyBpIDwgaUxlbjsgaSsrKSB7XG4gICAgICAgICAgaWYgKG1lbWJlcnNbbWVtYmVyTmFtZXNbaV1dLmlzRXZlbnRQYXlsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVtYmVyTmFtZXNbaV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbWVtb2l6ZWRQcm9wZXJ0eSh0aGlzLCAnZXZlbnRIZWFkZXJNZW1iZXJOYW1lcycsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbWVtYmVycyA9IHNlbGYubWVtYmVycztcbiAgICAgICAgdmFyIG1lbWJlck5hbWVzID0gc2VsZi5tZW1iZXJOYW1lcztcbiAgICAgICAgdmFyIGV2ZW50SGVhZGVyTWVtYmVyTmFtZXMgPSBbXTtcbiAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIG1lbWJlcnMgdG8gZmluZCBvbmVzIHRoYXQgYXJlIGV2ZW50IGhlYWRlcnNcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGlMZW4gPSBtZW1iZXJOYW1lcy5sZW5ndGg7IGkgPCBpTGVuOyBpKyspIHtcbiAgICAgICAgICBpZiAobWVtYmVyc1ttZW1iZXJOYW1lc1tpXV0uaXNFdmVudEhlYWRlcikge1xuICAgICAgICAgICAgZXZlbnRIZWFkZXJNZW1iZXJOYW1lcy5wdXNoKG1lbWJlck5hbWVzW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2ZW50SGVhZGVyTWVtYmVyTmFtZXM7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpZiAoc2hhcGUucmVxdWlyZWQpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAncmVxdWlyZWQnLCBzaGFwZS5yZXF1aXJlZCk7XG4gICAgcHJvcGVydHkodGhpcywgJ2lzUmVxdWlyZWQnLCBmdW5jdGlvbihuYW1lKSB7XG4gICAgICBpZiAoIXJlcXVpcmVkTWFwKSB7XG4gICAgICAgIHJlcXVpcmVkTWFwID0ge307XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2hhcGUucmVxdWlyZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICByZXF1aXJlZE1hcFtzaGFwZS5yZXF1aXJlZFtpXV0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXF1aXJlZE1hcFtuYW1lXTtcbiAgICB9LCBmYWxzZSwgdHJ1ZSk7XG4gIH1cblxuICBwcm9wZXJ0eSh0aGlzLCAncmVzdWx0V3JhcHBlcicsIHNoYXBlLnJlc3VsdFdyYXBwZXIgfHwgbnVsbCk7XG5cbiAgaWYgKHNoYXBlLnBheWxvYWQpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAncGF5bG9hZCcsIHNoYXBlLnBheWxvYWQpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBzaGFwZS54bWxOYW1lc3BhY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgcHJvcGVydHkodGhpcywgJ3htbE5hbWVzcGFjZVVyaScsIHNoYXBlLnhtbE5hbWVzcGFjZSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHNoYXBlLnhtbE5hbWVzcGFjZSA9PT0gJ29iamVjdCcpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAneG1sTmFtZXNwYWNlUHJlZml4Jywgc2hhcGUueG1sTmFtZXNwYWNlLnByZWZpeCk7XG4gICAgcHJvcGVydHkodGhpcywgJ3htbE5hbWVzcGFjZVVyaScsIHNoYXBlLnhtbE5hbWVzcGFjZS51cmkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIExpc3RTaGFwZShzaGFwZSwgb3B0aW9ucykge1xuICB2YXIgc2VsZiA9IHRoaXMsIGZpcnN0SW5pdCA9ICF0aGlzLmlzU2hhcGU7XG4gIENvbXBvc2l0ZVNoYXBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgaWYgKGZpcnN0SW5pdCkge1xuICAgIHByb3BlcnR5KHRoaXMsICdkZWZhdWx0VmFsdWUnLCBmdW5jdGlvbigpIHsgcmV0dXJuIFtdOyB9KTtcbiAgfVxuXG4gIGlmIChzaGFwZS5tZW1iZXIpIHtcbiAgICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdtZW1iZXInLCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBTaGFwZS5jcmVhdGUoc2hhcGUubWVtYmVyLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlmICh0aGlzLmZsYXR0ZW5lZCkge1xuICAgIHZhciBvbGROYW1lID0gdGhpcy5uYW1lO1xuICAgIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ25hbWUnLCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBzZWxmLm1lbWJlci5uYW1lIHx8IG9sZE5hbWU7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gTWFwU2hhcGUoc2hhcGUsIG9wdGlvbnMpIHtcbiAgdmFyIGZpcnN0SW5pdCA9ICF0aGlzLmlzU2hhcGU7XG4gIENvbXBvc2l0ZVNoYXBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgaWYgKGZpcnN0SW5pdCkge1xuICAgIHByb3BlcnR5KHRoaXMsICdkZWZhdWx0VmFsdWUnLCBmdW5jdGlvbigpIHsgcmV0dXJuIHt9OyB9KTtcbiAgICBwcm9wZXJ0eSh0aGlzLCAna2V5JywgU2hhcGUuY3JlYXRlKHt0eXBlOiAnc3RyaW5nJ30sIG9wdGlvbnMpKTtcbiAgICBwcm9wZXJ0eSh0aGlzLCAndmFsdWUnLCBTaGFwZS5jcmVhdGUoe3R5cGU6ICdzdHJpbmcnfSwgb3B0aW9ucykpO1xuICB9XG5cbiAgaWYgKHNoYXBlLmtleSkge1xuICAgIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ2tleScsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFNoYXBlLmNyZWF0ZShzaGFwZS5rZXksIG9wdGlvbnMpO1xuICAgIH0pO1xuICB9XG4gIGlmIChzaGFwZS52YWx1ZSkge1xuICAgIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ3ZhbHVlJywgZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gU2hhcGUuY3JlYXRlKHNoYXBlLnZhbHVlLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBUaW1lc3RhbXBTaGFwZShzaGFwZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIFNoYXBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgaWYgKHRoaXMubG9jYXRpb24gPT09ICdoZWFkZXInKSB7XG4gICAgcHJvcGVydHkodGhpcywgJ3RpbWVzdGFtcEZvcm1hdCcsICdyZmM4MjInKTtcbiAgfSBlbHNlIGlmIChzaGFwZS50aW1lc3RhbXBGb3JtYXQpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAndGltZXN0YW1wRm9ybWF0Jywgc2hhcGUudGltZXN0YW1wRm9ybWF0KTtcbiAgfSBlbHNlIGlmICghdGhpcy50aW1lc3RhbXBGb3JtYXQgJiYgdGhpcy5hcGkpIHtcbiAgICBpZiAodGhpcy5hcGkudGltZXN0YW1wRm9ybWF0KSB7XG4gICAgICBwcm9wZXJ0eSh0aGlzLCAndGltZXN0YW1wRm9ybWF0JywgdGhpcy5hcGkudGltZXN0YW1wRm9ybWF0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLmFwaS5wcm90b2NvbCkge1xuICAgICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgY2FzZSAncmVzdC1qc29uJzpcbiAgICAgICAgICBwcm9wZXJ0eSh0aGlzLCAndGltZXN0YW1wRm9ybWF0JywgJ3VuaXhUaW1lc3RhbXAnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmVzdC14bWwnOlxuICAgICAgICBjYXNlICdxdWVyeSc6XG4gICAgICAgIGNhc2UgJ2VjMic6XG4gICAgICAgICAgcHJvcGVydHkodGhpcywgJ3RpbWVzdGFtcEZvcm1hdCcsICdpc284NjAxJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdGhpcy50b1R5cGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIHZhbHVlLnRvVVRDU3RyaW5nID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdmFsdWU7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/XG4gICAgICAgICAgIHV0aWwuZGF0ZS5wYXJzZVRpbWVzdGFtcCh2YWx1ZSkgOiBudWxsO1xuICB9O1xuXG4gIHRoaXMudG9XaXJlRm9ybWF0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdXRpbC5kYXRlLmZvcm1hdCh2YWx1ZSwgc2VsZi50aW1lc3RhbXBGb3JtYXQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBTdHJpbmdTaGFwZSgpIHtcbiAgU2hhcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICB2YXIgbnVsbExlc3NQcm90b2NvbHMgPSBbJ3Jlc3QteG1sJywgJ3F1ZXJ5JywgJ2VjMiddO1xuICB0aGlzLnRvVHlwZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFsdWUgPSB0aGlzLmFwaSAmJiBudWxsTGVzc1Byb3RvY29scy5pbmRleE9mKHRoaXMuYXBpLnByb3RvY29sKSA+IC0xID9cbiAgICAgIHZhbHVlIHx8ICcnIDogdmFsdWU7XG4gICAgaWYgKHRoaXMuaXNKc29uVmFsdWUpIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlLnRvU3RyaW5nID09PSAnZnVuY3Rpb24nID9cbiAgICAgIHZhbHVlLnRvU3RyaW5nKCkgOiB2YWx1ZTtcbiAgfTtcblxuICB0aGlzLnRvV2lyZUZvcm1hdCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNKc29uVmFsdWUgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiB2YWx1ZTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gRmxvYXRTaGFwZSgpIHtcbiAgU2hhcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICB0aGlzLnRvVHlwZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgfTtcbiAgdGhpcy50b1dpcmVGb3JtYXQgPSB0aGlzLnRvVHlwZTtcbn1cblxuZnVuY3Rpb24gSW50ZWdlclNoYXBlKCkge1xuICBTaGFwZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gIHRoaXMudG9UeXBlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gIH07XG4gIHRoaXMudG9XaXJlRm9ybWF0ID0gdGhpcy50b1R5cGU7XG59XG5cbmZ1bmN0aW9uIEJpbmFyeVNoYXBlKCkge1xuICBTaGFwZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB0aGlzLnRvVHlwZSA9IHV0aWwuYmFzZTY0LmRlY29kZTtcbiAgdGhpcy50b1dpcmVGb3JtYXQgPSB1dGlsLmJhc2U2NC5lbmNvZGU7XG59XG5cbmZ1bmN0aW9uIEJhc2U2NFNoYXBlKCkge1xuICBCaW5hcnlTaGFwZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5mdW5jdGlvbiBCb29sZWFuU2hhcGUoKSB7XG4gIFNoYXBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgdGhpcy50b1R5cGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykgcmV0dXJuIHZhbHVlO1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJztcbiAgfTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuU2hhcGUuc2hhcGVzID0ge1xuICBTdHJ1Y3R1cmVTaGFwZTogU3RydWN0dXJlU2hhcGUsXG4gIExpc3RTaGFwZTogTGlzdFNoYXBlLFxuICBNYXBTaGFwZTogTWFwU2hhcGUsXG4gIFN0cmluZ1NoYXBlOiBTdHJpbmdTaGFwZSxcbiAgQm9vbGVhblNoYXBlOiBCb29sZWFuU2hhcGUsXG4gIEJhc2U2NFNoYXBlOiBCYXNlNjRTaGFwZVxufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBTaGFwZTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlBhcmFtVmFsaWRhdG9yID0gQVdTLnV0aWwuaW5oZXJpdCh7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdmFsaWRhdG9yIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHZhbGlkYXRpb24gW0Jvb2xlYW58bWFwXSB3aGV0aGVyIGlucHV0IHBhcmFtZXRlcnMgc2hvdWxkIGJlXG4gICAqICAgICB2YWxpZGF0ZWQgYWdhaW5zdCB0aGUgb3BlcmF0aW9uIGRlc2NyaXB0aW9uIGJlZm9yZSBzZW5kaW5nIHRoZVxuICAgKiAgICAgcmVxdWVzdC4gUGFzcyBhIG1hcCB0byBlbmFibGUgYW55IG9mIHRoZSBmb2xsb3dpbmcgc3BlY2lmaWNcbiAgICogICAgIHZhbGlkYXRpb24gZmVhdHVyZXM6XG4gICAqXG4gICAqICAgICAqICoqbWluKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSB2YWx1ZSBtZWV0cyB0aGUgbWluXG4gICAqICAgICAgIGNvbnN0cmFpbnQuIFRoaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0IHdoZW4gcGFyYW1WYWxpZGF0aW9uIGlzIHNldFxuICAgKiAgICAgICB0byBgdHJ1ZWAuXG4gICAqICAgICAqICoqbWF4KiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSB2YWx1ZSBtZWV0cyB0aGUgbWF4XG4gICAqICAgICAgIGNvbnN0cmFpbnQuXG4gICAqICAgICAqICoqcGF0dGVybioqIFtCb29sZWFuXSAmbWRhc2g7IFZhbGlkYXRlcyB0aGF0IGEgc3RyaW5nIHZhbHVlIG1hdGNoZXMgYVxuICAgKiAgICAgICByZWd1bGFyIGV4cHJlc3Npb24uXG4gICAqICAgICAqICoqZW51bSoqIFtCb29sZWFuXSAmbWRhc2g7IFZhbGlkYXRlcyB0aGF0IGEgc3RyaW5nIHZhbHVlIG1hdGNoZXMgb25lXG4gICAqICAgICAgIG9mIHRoZSBhbGxvd2FibGUgZW51bSB2YWx1ZXMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gUGFyYW1WYWxpZGF0b3IodmFsaWRhdGlvbikge1xuICAgIGlmICh2YWxpZGF0aW9uID09PSB0cnVlIHx8IHZhbGlkYXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsaWRhdGlvbiA9IHsnbWluJzogdHJ1ZX07XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGlvbiA9IHZhbGlkYXRpb247XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKHNoYXBlLCBwYXJhbXMsIGNvbnRleHQpIHtcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgIHRoaXMudmFsaWRhdGVNZW1iZXIoc2hhcGUsIHBhcmFtcyB8fCB7fSwgY29udGV4dCB8fCAncGFyYW1zJyk7XG5cbiAgICBpZiAodGhpcy5lcnJvcnMubGVuZ3RoID4gMSkge1xuICAgICAgdmFyIG1zZyA9IHRoaXMuZXJyb3JzLmpvaW4oJ1xcbiogJyk7XG4gICAgICBtc2cgPSAnVGhlcmUgd2VyZSAnICsgdGhpcy5lcnJvcnMubGVuZ3RoICtcbiAgICAgICAgJyB2YWxpZGF0aW9uIGVycm9yczpcXG4qICcgKyBtc2c7XG4gICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IobXNnKSxcbiAgICAgICAge2NvZGU6ICdNdWx0aXBsZVZhbGlkYXRpb25FcnJvcnMnLCBlcnJvcnM6IHRoaXMuZXJyb3JzfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmVycm9ycy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRocm93IHRoaXMuZXJyb3JzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0sXG5cbiAgZmFpbDogZnVuY3Rpb24gZmFpbChjb2RlLCBtZXNzYWdlKSB7XG4gICAgdGhpcy5lcnJvcnMucHVzaChBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IobWVzc2FnZSksIHtjb2RlOiBjb2RlfSkpO1xuICB9LFxuXG4gIHZhbGlkYXRlU3RydWN0dXJlOiBmdW5jdGlvbiB2YWxpZGF0ZVN0cnVjdHVyZShzaGFwZSwgcGFyYW1zLCBjb250ZXh0KSB7XG4gICAgdGhpcy52YWxpZGF0ZVR5cGUocGFyYW1zLCBjb250ZXh0LCBbJ29iamVjdCddLCAnc3RydWN0dXJlJyk7XG5cbiAgICB2YXIgcGFyYW1OYW1lO1xuICAgIGZvciAodmFyIGkgPSAwOyBzaGFwZS5yZXF1aXJlZCAmJiBpIDwgc2hhcGUucmVxdWlyZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgIHBhcmFtTmFtZSA9IHNoYXBlLnJlcXVpcmVkW2ldO1xuICAgICAgdmFyIHZhbHVlID0gcGFyYW1zW3BhcmFtTmFtZV07XG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICB0aGlzLmZhaWwoJ01pc3NpbmdSZXF1aXJlZFBhcmFtZXRlcicsXG4gICAgICAgICAgJ01pc3NpbmcgcmVxdWlyZWQga2V5IFxcJycgKyBwYXJhbU5hbWUgKyAnXFwnIGluICcgKyBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBoYXNoIG1lbWJlcnNcbiAgICBmb3IgKHBhcmFtTmFtZSBpbiBwYXJhbXMpIHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmFtcywgcGFyYW1OYW1lKSkgY29udGludWU7XG5cbiAgICAgIHZhciBwYXJhbVZhbHVlID0gcGFyYW1zW3BhcmFtTmFtZV0sXG4gICAgICAgICAgbWVtYmVyU2hhcGUgPSBzaGFwZS5tZW1iZXJzW3BhcmFtTmFtZV07XG5cbiAgICAgIGlmIChtZW1iZXJTaGFwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHZhciBtZW1iZXJDb250ZXh0ID0gW2NvbnRleHQsIHBhcmFtTmFtZV0uam9pbignLicpO1xuICAgICAgICB0aGlzLnZhbGlkYXRlTWVtYmVyKG1lbWJlclNoYXBlLCBwYXJhbVZhbHVlLCBtZW1iZXJDb250ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmFpbCgnVW5leHBlY3RlZFBhcmFtZXRlcicsXG4gICAgICAgICAgJ1VuZXhwZWN0ZWQga2V5IFxcJycgKyBwYXJhbU5hbWUgKyAnXFwnIGZvdW5kIGluICcgKyBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcblxuICB2YWxpZGF0ZU1lbWJlcjogZnVuY3Rpb24gdmFsaWRhdGVNZW1iZXIoc2hhcGUsIHBhcmFtLCBjb250ZXh0KSB7XG4gICAgc3dpdGNoIChzaGFwZS50eXBlKSB7XG4gICAgICBjYXNlICdzdHJ1Y3R1cmUnOlxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVN0cnVjdHVyZShzaGFwZSwgcGFyYW0sIGNvbnRleHQpO1xuICAgICAgY2FzZSAnbGlzdCc6XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlTGlzdChzaGFwZSwgcGFyYW0sIGNvbnRleHQpO1xuICAgICAgY2FzZSAnbWFwJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVNYXAoc2hhcGUsIHBhcmFtLCBjb250ZXh0KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlU2NhbGFyKHNoYXBlLCBwYXJhbSwgY29udGV4dCk7XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlTGlzdDogZnVuY3Rpb24gdmFsaWRhdGVMaXN0KHNoYXBlLCBwYXJhbXMsIGNvbnRleHQpIHtcbiAgICBpZiAodGhpcy52YWxpZGF0ZVR5cGUocGFyYW1zLCBjb250ZXh0LCBbQXJyYXldKSkge1xuICAgICAgdGhpcy52YWxpZGF0ZVJhbmdlKHNoYXBlLCBwYXJhbXMubGVuZ3RoLCBjb250ZXh0LCAnbGlzdCBtZW1iZXIgY291bnQnKTtcbiAgICAgIC8vIHZhbGlkYXRlIGFycmF5IG1lbWJlcnNcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVNZW1iZXIoc2hhcGUubWVtYmVyLCBwYXJhbXNbaV0sIGNvbnRleHQgKyAnWycgKyBpICsgJ10nKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGVNYXA6IGZ1bmN0aW9uIHZhbGlkYXRlTWFwKHNoYXBlLCBwYXJhbXMsIGNvbnRleHQpIHtcbiAgICBpZiAodGhpcy52YWxpZGF0ZVR5cGUocGFyYW1zLCBjb250ZXh0LCBbJ29iamVjdCddLCAnbWFwJykpIHtcbiAgICAgIC8vIEJ1aWxkIHVwIGEgY291bnQgb2YgbWFwIG1lbWJlcnMgdG8gdmFsaWRhdGUgcmFuZ2UgdHJhaXRzLlxuICAgICAgdmFyIG1hcENvdW50ID0gMDtcbiAgICAgIGZvciAodmFyIHBhcmFtIGluIHBhcmFtcykge1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJhbXMsIHBhcmFtKSkgY29udGludWU7XG4gICAgICAgIC8vIFZhbGlkYXRlIGFueSBtYXAga2V5IHRyYWl0IGNvbnN0cmFpbnRzXG4gICAgICAgIHRoaXMudmFsaWRhdGVNZW1iZXIoc2hhcGUua2V5LCBwYXJhbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0ICsgJ1trZXk9XFwnJyArIHBhcmFtICsgJ1xcJ10nKVxuICAgICAgICB0aGlzLnZhbGlkYXRlTWVtYmVyKHNoYXBlLnZhbHVlLCBwYXJhbXNbcGFyYW1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQgKyAnW1xcJycgKyBwYXJhbSArICdcXCddJyk7XG4gICAgICAgIG1hcENvdW50Kys7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbGlkYXRlUmFuZ2Uoc2hhcGUsIG1hcENvdW50LCBjb250ZXh0LCAnbWFwIG1lbWJlciBjb3VudCcpO1xuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZVNjYWxhcjogZnVuY3Rpb24gdmFsaWRhdGVTY2FsYXIoc2hhcGUsIHZhbHVlLCBjb250ZXh0KSB7XG4gICAgc3dpdGNoIChzaGFwZS50eXBlKSB7XG4gICAgICBjYXNlIG51bGw6XG4gICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlU3RyaW5nKHNoYXBlLCB2YWx1ZSwgY29udGV4dCk7XG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVQYXlsb2FkKHZhbHVlLCBjb250ZXh0KTtcbiAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgY2FzZSAnZmxvYXQnOlxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZU51bWJlcihzaGFwZSwgdmFsdWUsIGNvbnRleHQpO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlVHlwZSh2YWx1ZSwgY29udGV4dCwgWydib29sZWFuJ10pO1xuICAgICAgY2FzZSAndGltZXN0YW1wJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVUeXBlKHZhbHVlLCBjb250ZXh0LCBbRGF0ZSxcbiAgICAgICAgICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9KFxcLlxcZCspP1okLywgJ251bWJlciddLFxuICAgICAgICAgICdEYXRlIG9iamVjdCwgSVNPLTg2MDEgc3RyaW5nLCBvciBhIFVOSVggdGltZXN0YW1wJyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5mYWlsKCdVbmtvd25UeXBlJywgJ1VuaGFuZGxlZCB0eXBlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlLnR5cGUgKyAnIGZvciAnICsgY29udGV4dCk7XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlU3RyaW5nOiBmdW5jdGlvbiB2YWxpZGF0ZVN0cmluZyhzaGFwZSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICB2YXIgdmFsaWRUeXBlcyA9IFsnc3RyaW5nJ107XG4gICAgaWYgKHNoYXBlLmlzSnNvblZhbHVlKSB7XG4gICAgICB2YWxpZFR5cGVzID0gdmFsaWRUeXBlcy5jb25jYXQoWydudW1iZXInLCAnb2JqZWN0JywgJ2Jvb2xlYW4nXSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbGlkYXRlVHlwZSh2YWx1ZSwgY29udGV4dCwgdmFsaWRUeXBlcykpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVFbnVtKHNoYXBlLCB2YWx1ZSwgY29udGV4dCk7XG4gICAgICB0aGlzLnZhbGlkYXRlUmFuZ2Uoc2hhcGUsIHZhbHVlLmxlbmd0aCwgY29udGV4dCwgJ3N0cmluZyBsZW5ndGgnKTtcbiAgICAgIHRoaXMudmFsaWRhdGVQYXR0ZXJuKHNoYXBlLCB2YWx1ZSwgY29udGV4dCk7XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlUGF0dGVybjogZnVuY3Rpb24gdmFsaWRhdGVQYXR0ZXJuKHNoYXBlLCB2YWx1ZSwgY29udGV4dCkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRpb25bJ3BhdHRlcm4nXSAmJiBzaGFwZVsncGF0dGVybiddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghKG5ldyBSZWdFeHAoc2hhcGVbJ3BhdHRlcm4nXSkpLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIHRoaXMuZmFpbCgnUGF0dGVybk1hdGNoRXJyb3InLCAnUHJvdmlkZWQgdmFsdWUgXCInICsgdmFsdWUgKyAnXCIgJ1xuICAgICAgICAgICsgJ2RvZXMgbm90IG1hdGNoIHJlZ2V4IHBhdHRlcm4gLycgKyBzaGFwZVsncGF0dGVybiddICsgJy8gZm9yICdcbiAgICAgICAgICArIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZVJhbmdlOiBmdW5jdGlvbiB2YWxpZGF0ZVJhbmdlKHNoYXBlLCB2YWx1ZSwgY29udGV4dCwgZGVzY3JpcHRvcikge1xuICAgIGlmICh0aGlzLnZhbGlkYXRpb25bJ21pbiddKSB7XG4gICAgICBpZiAoc2hhcGVbJ21pbiddICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgPCBzaGFwZVsnbWluJ10pIHtcbiAgICAgICAgdGhpcy5mYWlsKCdNaW5SYW5nZUVycm9yJywgJ0V4cGVjdGVkICcgKyBkZXNjcmlwdG9yICsgJyA+PSAnXG4gICAgICAgICAgKyBzaGFwZVsnbWluJ10gKyAnLCBidXQgZm91bmQgJyArIHZhbHVlICsgJyBmb3IgJyArIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy52YWxpZGF0aW9uWydtYXgnXSkge1xuICAgICAgaWYgKHNoYXBlWydtYXgnXSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlID4gc2hhcGVbJ21heCddKSB7XG4gICAgICAgIHRoaXMuZmFpbCgnTWF4UmFuZ2VFcnJvcicsICdFeHBlY3RlZCAnICsgZGVzY3JpcHRvciArICcgPD0gJ1xuICAgICAgICAgICsgc2hhcGVbJ21heCddICsgJywgYnV0IGZvdW5kICcgKyB2YWx1ZSArICcgZm9yICcgKyBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGVFbnVtOiBmdW5jdGlvbiB2YWxpZGF0ZVJhbmdlKHNoYXBlLCB2YWx1ZSwgY29udGV4dCkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRpb25bJ2VudW0nXSAmJiBzaGFwZVsnZW51bSddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEZhaWwgaWYgdGhlIHN0cmluZyB2YWx1ZSBpcyBub3QgcHJlc2VudCBpbiB0aGUgZW51bSBsaXN0XG4gICAgICBpZiAoc2hhcGVbJ2VudW0nXS5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5mYWlsKCdFbnVtRXJyb3InLCAnRm91bmQgc3RyaW5nIHZhbHVlIG9mICcgKyB2YWx1ZSArICcsIGJ1dCAnXG4gICAgICAgICAgKyAnZXhwZWN0ZWQgJyArIHNoYXBlWydlbnVtJ10uam9pbignfCcpICsgJyBmb3IgJyArIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZVR5cGU6IGZ1bmN0aW9uIHZhbGlkYXRlVHlwZSh2YWx1ZSwgY29udGV4dCwgYWNjZXB0ZWRUeXBlcywgdHlwZSkge1xuICAgIC8vIFdlIHdpbGwgbm90IGxvZyBhbiBlcnJvciBmb3IgbnVsbCBvciB1bmRlZmluZWQsIGJ1dCB3ZSB3aWxsIHJldHVyblxuICAgIC8vIGZhbHNlIHNvIHRoYXQgY2FsbGVycyBrbm93IHRoYXQgdGhlIGV4cGVjdGVkIHR5cGUgd2FzIG5vdCBzdHJpY3RseSBtZXQuXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBmYWxzZTtcblxuICAgIHZhciBmb3VuZEludmFsaWRUeXBlID0gZmFsc2U7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY2NlcHRlZFR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodHlwZW9mIGFjY2VwdGVkVHlwZXNbaV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IGFjY2VwdGVkVHlwZXNbaV0pIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChhY2NlcHRlZFR5cGVzW2ldIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIGlmICgodmFsdWUgfHwgJycpLnRvU3RyaW5nKCkubWF0Y2goYWNjZXB0ZWRUeXBlc1tpXSkpIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgYWNjZXB0ZWRUeXBlc1tpXSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChBV1MudXRpbC5pc1R5cGUodmFsdWUsIGFjY2VwdGVkVHlwZXNbaV0pKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKCF0eXBlICYmICFmb3VuZEludmFsaWRUeXBlKSBhY2NlcHRlZFR5cGVzID0gYWNjZXB0ZWRUeXBlcy5zbGljZSgpO1xuICAgICAgICBhY2NlcHRlZFR5cGVzW2ldID0gQVdTLnV0aWwudHlwZU5hbWUoYWNjZXB0ZWRUeXBlc1tpXSk7XG4gICAgICB9XG4gICAgICBmb3VuZEludmFsaWRUeXBlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgYWNjZXB0ZWRUeXBlID0gdHlwZTtcbiAgICBpZiAoIWFjY2VwdGVkVHlwZSkge1xuICAgICAgYWNjZXB0ZWRUeXBlID0gYWNjZXB0ZWRUeXBlcy5qb2luKCcsICcpLnJlcGxhY2UoLywoW14sXSspJC8sICcsIG9yJDEnKTtcbiAgICB9XG5cbiAgICB2YXIgdm93ZWwgPSBhY2NlcHRlZFR5cGUubWF0Y2goL15bYWVpb3VdL2kpID8gJ24nIDogJyc7XG4gICAgdGhpcy5mYWlsKCdJbnZhbGlkUGFyYW1ldGVyVHlwZScsICdFeHBlY3RlZCAnICsgY29udGV4dCArICcgdG8gYmUgYScgK1xuICAgICAgICAgICAgICB2b3dlbCArICcgJyArIGFjY2VwdGVkVHlwZSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIHZhbGlkYXRlTnVtYmVyOiBmdW5jdGlvbiB2YWxpZGF0ZU51bWJlcihzaGFwZSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YXIgY2FzdGVkVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgIGlmIChjYXN0ZWRWYWx1ZS50b1N0cmluZygpID09PSB2YWx1ZSkgdmFsdWUgPSBjYXN0ZWRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsaWRhdGVUeXBlKHZhbHVlLCBjb250ZXh0LCBbJ251bWJlciddKSkge1xuICAgICAgdGhpcy52YWxpZGF0ZVJhbmdlKHNoYXBlLCB2YWx1ZSwgY29udGV4dCwgJ251bWVyaWMgdmFsdWUnKTtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGVQYXlsb2FkOiBmdW5jdGlvbiB2YWxpZGF0ZVBheWxvYWQodmFsdWUsIGNvbnRleHQpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm47XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZS5ieXRlTGVuZ3RoID09PSAnbnVtYmVyJykgcmV0dXJuOyAvLyB0eXBlZCBhcnJheXNcbiAgICBpZiAoQVdTLnV0aWwuaXNOb2RlKCkpIHsgLy8gc3BlY2lhbCBjaGVjayBmb3IgYnVmZmVyL3N0cmVhbSBpbiBOb2RlLmpzXG4gICAgICB2YXIgU3RyZWFtID0gQVdTLnV0aWwuc3RyZWFtLlN0cmVhbTtcbiAgICAgIGlmIChBV1MudXRpbC5CdWZmZXIuaXNCdWZmZXIodmFsdWUpIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyZWFtKSByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHR5cGVzID0gWydCdWZmZXInLCAnU3RyZWFtJywgJ0ZpbGUnLCAnQmxvYicsICdBcnJheUJ1ZmZlcicsICdEYXRhVmlldyddO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoQVdTLnV0aWwuaXNUeXBlKHZhbHVlLCB0eXBlc1tpXSkpIHJldHVybjtcbiAgICAgICAgaWYgKEFXUy51dGlsLnR5cGVOYW1lKHZhbHVlLmNvbnN0cnVjdG9yKSA9PT0gdHlwZXNbaV0pIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmZhaWwoJ0ludmFsaWRQYXJhbWV0ZXJUeXBlJywgJ0V4cGVjdGVkICcgKyBjb250ZXh0ICsgJyB0byBiZSBhICcgK1xuICAgICAgJ3N0cmluZywgQnVmZmVyLCBTdHJlYW0sIEJsb2IsIG9yIHR5cGVkIGFycmF5IG9iamVjdCcpO1xuICB9XG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgcmVzdCA9IEFXUy5Qcm90b2NvbC5SZXN0O1xuXG4vKipcbiAqIEEgcHJlc2lnbmVyIG9iamVjdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBwcmVzaWduZWQgdXJscyBmb3IgdGhlIFBvbGx5IHNlcnZpY2UuXG4gKi9cbkFXUy5Qb2xseS5QcmVzaWduZXIgPSBBV1MudXRpbC5pbmhlcml0KHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgcHJlc2lnbmVyIG9iamVjdCB3aXRoIGEgc2V0IG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICAgKlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyBwYXJhbXMgW21hcF0gQW4gb3B0aW9uYWwgbWFwIG9mIHBhcmFtZXRlcnMgdG8gYmluZCB0byBldmVyeVxuICAgICAqICAgcmVxdWVzdCBzZW50IGJ5IHRoaXMgc2VydmljZSBvYmplY3QuXG4gICAgICogQG9wdGlvbiBvcHRpb25zIHNlcnZpY2UgW0FXUy5Qb2xseV0gQW4gb3B0aW9uYWwgcHJlLWNvbmZpZ3VyZWQgaW5zdGFuY2VcbiAgICAgKiAgb2YgdGhlIEFXUy5Qb2xseSBzZXJ2aWNlIG9iamVjdCB0byB1c2UgZm9yIHJlcXVlc3RzLiBUaGUgb2JqZWN0IG1heVxuICAgICAqICBib3VuZCBwYXJhbWV0ZXJzIHVzZWQgYnkgdGhlIHByZXNpZ25lci5cbiAgICAgKiBAc2VlIEFXUy5Qb2xseS5jb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBTaWduZXIob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5zZXJ2aWNlID0gb3B0aW9ucy5zZXJ2aWNlO1xuICAgICAgICB0aGlzLmJpbmRTZXJ2aWNlT2JqZWN0KG9wdGlvbnMpO1xuICAgICAgICB0aGlzLl9vcGVyYXRpb25zID0ge307XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICAqL1xuICAgIGJpbmRTZXJ2aWNlT2JqZWN0OiBmdW5jdGlvbiBiaW5kU2VydmljZU9iamVjdChvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICBpZiAoIXRoaXMuc2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gbmV3IEFXUy5Qb2xseShvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjb25maWcgPSBBV1MudXRpbC5jb3B5KHRoaXMuc2VydmljZS5jb25maWcpO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gbmV3IHRoaXMuc2VydmljZS5jb25zdHJ1Y3Rvci5fX3N1cGVyX18oY29uZmlnKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5jb25maWcucGFyYW1zID0gQVdTLnV0aWwubWVyZ2UodGhpcy5zZXJ2aWNlLmNvbmZpZy5wYXJhbXMgfHwge30sIG9wdGlvbnMucGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAYXBpIHByaXZhdGVcbiAgICAgKi9cbiAgICBtb2RpZnlJbnB1dE1lbWJlcnM6IGZ1bmN0aW9uIG1vZGlmeUlucHV0TWVtYmVycyhpbnB1dCkge1xuICAgICAgICAvLyBtYWtlIGNvcGllcyBvZiB0aGUgaW5wdXQgc28gd2UgZG9uJ3Qgb3ZlcndyaXRlIHRoZSBhcGlcbiAgICAgICAgLy8gbmVlZCB0byBiZSBjYXJlZnVsIHRvIGNvcHkgYW55dGhpbmcgd2UgYWNjZXNzL21vZGlmeVxuICAgICAgICB2YXIgbW9kaWZpZWRJbnB1dCA9IEFXUy51dGlsLmNvcHkoaW5wdXQpO1xuICAgICAgICBtb2RpZmllZElucHV0Lm1lbWJlcnMgPSBBV1MudXRpbC5jb3B5KGlucHV0Lm1lbWJlcnMpO1xuICAgICAgICBBV1MudXRpbC5lYWNoKGlucHV0Lm1lbWJlcnMsIGZ1bmN0aW9uKG5hbWUsIG1lbWJlcikge1xuICAgICAgICAgICAgbW9kaWZpZWRJbnB1dC5tZW1iZXJzW25hbWVdID0gQVdTLnV0aWwuY29weShtZW1iZXIpO1xuICAgICAgICAgICAgLy8gdXBkYXRlIGxvY2F0aW9uIGFuZCBsb2NhdGlvbk5hbWVcbiAgICAgICAgICAgIGlmICghbWVtYmVyLmxvY2F0aW9uIHx8IG1lbWJlci5sb2NhdGlvbiA9PT0gJ2JvZHknKSB7XG4gICAgICAgICAgICAgICAgbW9kaWZpZWRJbnB1dC5tZW1iZXJzW25hbWVdLmxvY2F0aW9uID0gJ3F1ZXJ5c3RyaW5nJztcbiAgICAgICAgICAgICAgICBtb2RpZmllZElucHV0Lm1lbWJlcnNbbmFtZV0ubG9jYXRpb25OYW1lID0gbmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtb2RpZmllZElucHV0O1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAYXBpIHByaXZhdGVcbiAgICAgKi9cbiAgICBjb252ZXJ0UG9zdFRvR2V0OiBmdW5jdGlvbiBjb252ZXJ0UG9zdFRvR2V0KHJlcSkge1xuICAgICAgICAvLyBjb252ZXJ0IG1ldGhvZFxuICAgICAgICByZXEuaHR0cFJlcXVlc3QubWV0aG9kID0gJ0dFVCc7XG5cbiAgICAgICAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICAgICAgICAvLyBnZXQgY2FjaGVkIG9wZXJhdGlvbiBpbnB1dCBmaXJzdFxuICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLl9vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICAgICAgICBpZiAoIWlucHV0KSB7XG4gICAgICAgICAgICAvLyBtb2RpZnkgdGhlIG9yaWdpbmFsIGlucHV0XG4gICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dID0gaW5wdXQgPSB0aGlzLm1vZGlmeUlucHV0TWVtYmVycyhvcGVyYXRpb24uaW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHVyaSA9IHJlc3QuZ2VuZXJhdGVVUkkocmVxLmh0dHBSZXF1ZXN0LmVuZHBvaW50LnBhdGgsIG9wZXJhdGlvbi5odHRwUGF0aCwgaW5wdXQsIHJlcS5wYXJhbXMpO1xuXG4gICAgICAgIHJlcS5odHRwUmVxdWVzdC5wYXRoID0gdXJpO1xuICAgICAgICByZXEuaHR0cFJlcXVlc3QuYm9keSA9ICcnO1xuXG4gICAgICAgIC8vIGRvbid0IG5lZWQgdGhlc2UgaGVhZGVycyBvbiBhIEdFVCByZXF1ZXN0XG4gICAgICAgIGRlbGV0ZSByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXTtcbiAgICAgICAgZGVsZXRlIHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LVR5cGUnXTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQG92ZXJsb2FkIGdldFN5bnRoZXNpemVTcGVlY2hVcmwocGFyYW1zID0ge30sIFtleHBpcmVzID0gMzYwMF0sIFtjYWxsYmFja10pXG4gICAgICogICBHZW5lcmF0ZSBhIHByZXNpZ25lZCB1cmwgZm9yIHtBV1MuUG9sbHkuc3ludGhlc2l6ZVNwZWVjaH0uXG4gICAgICogICBAbm90ZSBZb3UgbXVzdCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBzdGF0aWMgb3IgcHJldmlvdXNseSByZXNvbHZlZFxuICAgICAqICAgICBjcmVkZW50aWFscyBpZiB5b3UgY2FsbCB0aGlzIG1ldGhvZCBzeW5jaHJvbm91c2x5ICh3aXRoIG5vIGNhbGxiYWNrKSxcbiAgICAgKiAgICAgb3RoZXJ3aXNlIGl0IG1heSBub3QgcHJvcGVybHkgc2lnbiB0aGUgcmVxdWVzdC4gSWYgeW91IGNhbm5vdCBndWFyYW50ZWVcbiAgICAgKiAgICAgdGhpcyAoeW91IGFyZSB1c2luZyBhbiBhc3luY2hyb25vdXMgY3JlZGVudGlhbCBwcm92aWRlciwgaS5lLiwgRUMyXG4gICAgICogICAgIElBTSByb2xlcyksIHlvdSBzaG91bGQgYWx3YXlzIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBhbiBhc3luY2hyb25vdXNcbiAgICAgKiAgICAgY2FsbGJhY2suXG4gICAgICogICBAcGFyYW0gcGFyYW1zIFttYXBdIHBhcmFtZXRlcnMgdG8gcGFzcyB0byB0aGUgb3BlcmF0aW9uLiBTZWUgdGhlIHtBV1MuUG9sbHkuc3ludGhlc2l6ZVNwZWVjaH1cbiAgICAgKiAgICAgb3BlcmF0aW9uIGZvciB0aGUgZXhwZWN0ZWQgb3BlcmF0aW9uIHBhcmFtZXRlcnMuXG4gICAgICogICBAcGFyYW0gZXhwaXJlcyBbSW50ZWdlcl0gKDM2MDApIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byBleHBpcmUgdGhlIHByZS1zaWduZWQgVVJMIG9wZXJhdGlvbiBpbi5cbiAgICAgKiAgICAgRGVmYXVsdHMgdG8gMSBob3VyLlxuICAgICAqICAgQHJldHVybiBbc3RyaW5nXSBpZiBjYWxsZWQgc3luY2hyb25vdXNseSAod2l0aCBubyBjYWxsYmFjayksIHJldHVybnMgdGhlIHNpZ25lZCBVUkwuXG4gICAgICogICBAcmV0dXJuIFtudWxsXSBub3RoaW5nIGlzIHJldHVybmVkIGlmIGEgY2FsbGJhY2sgaXMgcHJvdmlkZWQuXG4gICAgICogICBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24gKGVyciwgdXJsKVxuICAgICAqICAgICBJZiBhIGNhbGxiYWNrIGlzIHN1cHBsaWVkLCBpdCBpcyBjYWxsZWQgd2hlbiBhIHNpZ25lZCBVUkwgaGFzIGJlZW4gZ2VuZXJhdGVkLlxuICAgICAqICAgICBAcGFyYW0gZXJyIFtFcnJvcl0gdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBmcm9tIHRoZSBwcmVzaWduZXIuXG4gICAgICogICAgIEBwYXJhbSB1cmwgW1N0cmluZ10gdGhlIHNpZ25lZCBVUkwuXG4gICAgICogICBAc2VlIEFXUy5Qb2xseS5zeW50aGVzaXplU3BlZWNoXG4gICAgICovXG4gICAgZ2V0U3ludGhlc2l6ZVNwZWVjaFVybDogZnVuY3Rpb24gZ2V0U3ludGhlc2l6ZVNwZWVjaFVybChwYXJhbXMsIGV4cGlyZXMsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgICAgdmFyIHJlcXVlc3QgPSB0aGlzLnNlcnZpY2UubWFrZVJlcXVlc3QoJ3N5bnRoZXNpemVTcGVlY2gnLCBwYXJhbXMpO1xuICAgICAgICAvLyByZW1vdmUgZXhpc3RpbmcgYnVpbGQgbGlzdGVuZXJzXG4gICAgICAgIHJlcXVlc3QucmVtb3ZlQWxsTGlzdGVuZXJzKCdidWlsZCcpO1xuICAgICAgICByZXF1ZXN0Lm9uKCdidWlsZCcsIGZ1bmN0aW9uKHJlcSkge1xuICAgICAgICAgICAgc2VsZi5jb252ZXJ0UG9zdFRvR2V0KHJlcSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVxdWVzdC5wcmVzaWduKGV4cGlyZXMsIGNhbGxiYWNrKTtcbiAgICB9XG59KTtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIEpzb25CdWlsZGVyID0gcmVxdWlyZSgnLi4vanNvbi9idWlsZGVyJyk7XG52YXIgSnNvblBhcnNlciA9IHJlcXVpcmUoJy4uL2pzb24vcGFyc2VyJyk7XG5cbmZ1bmN0aW9uIGJ1aWxkUmVxdWVzdChyZXEpIHtcbiAgdmFyIGh0dHBSZXF1ZXN0ID0gcmVxLmh0dHBSZXF1ZXN0O1xuICB2YXIgYXBpID0gcmVxLnNlcnZpY2UuYXBpO1xuICB2YXIgdGFyZ2V0ID0gYXBpLnRhcmdldFByZWZpeCArICcuJyArIGFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dLm5hbWU7XG4gIHZhciB2ZXJzaW9uID0gYXBpLmpzb25WZXJzaW9uIHx8ICcxLjAnO1xuICB2YXIgaW5wdXQgPSBhcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXS5pbnB1dDtcbiAgdmFyIGJ1aWxkZXIgPSBuZXcgSnNvbkJ1aWxkZXIoKTtcblxuICBpZiAodmVyc2lvbiA9PT0gMSkgdmVyc2lvbiA9ICcxLjAnO1xuICBodHRwUmVxdWVzdC5ib2R5ID0gYnVpbGRlci5idWlsZChyZXEucGFyYW1zIHx8IHt9LCBpbnB1dCk7XG4gIGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL3gtYW16LWpzb24tJyArIHZlcnNpb247XG4gIGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LVRhcmdldCddID0gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RXJyb3IocmVzcCkge1xuICB2YXIgZXJyb3IgPSB7fTtcbiAgdmFyIGh0dHBSZXNwb25zZSA9IHJlc3AuaHR0cFJlc3BvbnNlO1xuXG4gIGVycm9yLmNvZGUgPSBodHRwUmVzcG9uc2UuaGVhZGVyc1sneC1hbXpuLWVycm9ydHlwZSddIHx8ICdVbmtub3duRXJyb3InO1xuICBpZiAodHlwZW9mIGVycm9yLmNvZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgZXJyb3IuY29kZSA9IGVycm9yLmNvZGUuc3BsaXQoJzonKVswXTtcbiAgfVxuXG4gIGlmIChodHRwUmVzcG9uc2UuYm9keS5sZW5ndGggPiAwKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBlID0gSlNPTi5wYXJzZShodHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpKTtcbiAgICAgIGlmIChlLl9fdHlwZSB8fCBlLmNvZGUpIHtcbiAgICAgICAgZXJyb3IuY29kZSA9IChlLl9fdHlwZSB8fCBlLmNvZGUpLnNwbGl0KCcjJykucG9wKCk7XG4gICAgICB9XG4gICAgICBpZiAoZXJyb3IuY29kZSA9PT0gJ1JlcXVlc3RFbnRpdHlUb29MYXJnZScpIHtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9ICdSZXF1ZXN0IGJvZHkgbXVzdCBiZSBsZXNzIHRoYW4gMSBNQic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvci5tZXNzYWdlID0gKGUubWVzc2FnZSB8fCBlLk1lc3NhZ2UgfHwgbnVsbCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZXJyb3Iuc3RhdHVzQ29kZSA9IGh0dHBSZXNwb25zZS5zdGF0dXNDb2RlO1xuICAgICAgZXJyb3IubWVzc2FnZSA9IGh0dHBSZXNwb25zZS5zdGF0dXNNZXNzYWdlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBlcnJvci5zdGF0dXNDb2RlID0gaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGU7XG4gICAgZXJyb3IubWVzc2FnZSA9IGh0dHBSZXNwb25zZS5zdGF0dXNDb2RlLnRvU3RyaW5nKCk7XG4gIH1cblxuICByZXNwLmVycm9yID0gdXRpbC5lcnJvcihuZXcgRXJyb3IoKSwgZXJyb3IpO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RGF0YShyZXNwKSB7XG4gIHZhciBib2R5ID0gcmVzcC5odHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpIHx8ICd7fSc7XG4gIGlmIChyZXNwLnJlcXVlc3Quc2VydmljZS5jb25maWcuY29udmVydFJlc3BvbnNlVHlwZXMgPT09IGZhbHNlKSB7XG4gICAgcmVzcC5kYXRhID0gSlNPTi5wYXJzZShib2R5KTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgb3BlcmF0aW9uID0gcmVzcC5yZXF1ZXN0LnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVzcC5yZXF1ZXN0Lm9wZXJhdGlvbl07XG4gICAgdmFyIHNoYXBlID0gb3BlcmF0aW9uLm91dHB1dCB8fCB7fTtcbiAgICB2YXIgcGFyc2VyID0gbmV3IEpzb25QYXJzZXIoKTtcbiAgICByZXNwLmRhdGEgPSBwYXJzZXIucGFyc2UoYm9keSwgc2hhcGUpO1xuICB9XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICBidWlsZFJlcXVlc3Q6IGJ1aWxkUmVxdWVzdCxcbiAgZXh0cmFjdEVycm9yOiBleHRyYWN0RXJyb3IsXG4gIGV4dHJhY3REYXRhOiBleHRyYWN0RGF0YVxufTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcbnZhciBRdWVyeVBhcmFtU2VyaWFsaXplciA9IHJlcXVpcmUoJy4uL3F1ZXJ5L3F1ZXJ5X3BhcmFtX3NlcmlhbGl6ZXInKTtcbnZhciBTaGFwZSA9IHJlcXVpcmUoJy4uL21vZGVsL3NoYXBlJyk7XG5cbmZ1bmN0aW9uIGJ1aWxkUmVxdWVzdChyZXEpIHtcbiAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICB2YXIgaHR0cFJlcXVlc3QgPSByZXEuaHR0cFJlcXVlc3Q7XG4gIGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID1cbiAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PXV0Zi04JztcbiAgaHR0cFJlcXVlc3QucGFyYW1zID0ge1xuICAgIFZlcnNpb246IHJlcS5zZXJ2aWNlLmFwaS5hcGlWZXJzaW9uLFxuICAgIEFjdGlvbjogb3BlcmF0aW9uLm5hbWVcbiAgfTtcblxuICAvLyBjb252ZXJ0IHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgaW50byBhIGxpc3Qgb2YgcXVlcnkgcGFyYW1zLFxuICAvLyBlLmcuIERlZXBseS5OZXN0ZWRQYXJhbS4wLk5hbWU9dmFsdWVcbiAgdmFyIGJ1aWxkZXIgPSBuZXcgUXVlcnlQYXJhbVNlcmlhbGl6ZXIoKTtcbiAgYnVpbGRlci5zZXJpYWxpemUocmVxLnBhcmFtcywgb3BlcmF0aW9uLmlucHV0LCBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgIGh0dHBSZXF1ZXN0LnBhcmFtc1tuYW1lXSA9IHZhbHVlO1xuICB9KTtcbiAgaHR0cFJlcXVlc3QuYm9keSA9IHV0aWwucXVlcnlQYXJhbXNUb1N0cmluZyhodHRwUmVxdWVzdC5wYXJhbXMpO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RXJyb3IocmVzcCkge1xuICB2YXIgZGF0YSwgYm9keSA9IHJlc3AuaHR0cFJlc3BvbnNlLmJvZHkudG9TdHJpbmcoKTtcbiAgaWYgKGJvZHkubWF0Y2goJzxVbmtub3duT3BlcmF0aW9uRXhjZXB0aW9uJykpIHtcbiAgICBkYXRhID0ge1xuICAgICAgQ29kZTogJ1Vua25vd25PcGVyYXRpb24nLFxuICAgICAgTWVzc2FnZTogJ1Vua25vd24gb3BlcmF0aW9uICcgKyByZXNwLnJlcXVlc3Qub3BlcmF0aW9uXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgZGF0YSA9IG5ldyBBV1MuWE1MLlBhcnNlcigpLnBhcnNlKGJvZHkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGRhdGEgPSB7XG4gICAgICAgIENvZGU6IHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICAgIE1lc3NhZ2U6IHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c01lc3NhZ2VcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgaWYgKGRhdGEucmVxdWVzdElkICYmICFyZXNwLnJlcXVlc3RJZCkgcmVzcC5yZXF1ZXN0SWQgPSBkYXRhLnJlcXVlc3RJZDtcbiAgaWYgKGRhdGEuRXJyb3JzKSBkYXRhID0gZGF0YS5FcnJvcnM7XG4gIGlmIChkYXRhLkVycm9yKSBkYXRhID0gZGF0YS5FcnJvcjtcbiAgaWYgKGRhdGEuQ29kZSkge1xuICAgIHJlc3AuZXJyb3IgPSB1dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICBjb2RlOiBkYXRhLkNvZGUsXG4gICAgICBtZXNzYWdlOiBkYXRhLk1lc3NhZ2VcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXNwLmVycm9yID0gdXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgY29kZTogcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgIG1lc3NhZ2U6IG51bGxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RGF0YShyZXNwKSB7XG4gIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gIHZhciBvcGVyYXRpb24gPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXTtcbiAgdmFyIHNoYXBlID0gb3BlcmF0aW9uLm91dHB1dCB8fCB7fTtcbiAgdmFyIG9yaWdSdWxlcyA9IHNoYXBlO1xuXG4gIGlmIChvcmlnUnVsZXMucmVzdWx0V3JhcHBlcikge1xuICAgIHZhciB0bXAgPSBTaGFwZS5jcmVhdGUoe3R5cGU6ICdzdHJ1Y3R1cmUnfSk7XG4gICAgdG1wLm1lbWJlcnNbb3JpZ1J1bGVzLnJlc3VsdFdyYXBwZXJdID0gc2hhcGU7XG4gICAgdG1wLm1lbWJlck5hbWVzID0gW29yaWdSdWxlcy5yZXN1bHRXcmFwcGVyXTtcbiAgICB1dGlsLnByb3BlcnR5KHNoYXBlLCAnbmFtZScsIHNoYXBlLnJlc3VsdFdyYXBwZXIpO1xuICAgIHNoYXBlID0gdG1wO1xuICB9XG5cbiAgdmFyIHBhcnNlciA9IG5ldyBBV1MuWE1MLlBhcnNlcigpO1xuXG4gIC8vIFRPRE86IFJlZmFjdG9yIFhNTCBQYXJzZXIgdG8gcGFyc2UgUmVxdWVzdElkIGZyb20gcmVzcG9uc2UuXG4gIGlmIChzaGFwZSAmJiBzaGFwZS5tZW1iZXJzICYmICFzaGFwZS5tZW1iZXJzLl9YQU1aUmVxdWVzdElkKSB7XG4gICAgdmFyIHJlcXVlc3RJZFNoYXBlID0gU2hhcGUuY3JlYXRlKFxuICAgICAgeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgeyBhcGk6IHsgcHJvdG9jb2w6ICdxdWVyeScgfSB9LFxuICAgICAgJ3JlcXVlc3RJZCdcbiAgICApO1xuICAgIHNoYXBlLm1lbWJlcnMuX1hBTVpSZXF1ZXN0SWQgPSByZXF1ZXN0SWRTaGFwZTtcbiAgfVxuXG4gIHZhciBkYXRhID0gcGFyc2VyLnBhcnNlKHJlc3AuaHR0cFJlc3BvbnNlLmJvZHkudG9TdHJpbmcoKSwgc2hhcGUpO1xuICByZXNwLnJlcXVlc3RJZCA9IGRhdGEuX1hBTVpSZXF1ZXN0SWQgfHwgZGF0YS5yZXF1ZXN0SWQ7XG5cbiAgaWYgKGRhdGEuX1hBTVpSZXF1ZXN0SWQpIGRlbGV0ZSBkYXRhLl9YQU1aUmVxdWVzdElkO1xuXG4gIGlmIChvcmlnUnVsZXMucmVzdWx0V3JhcHBlcikge1xuICAgIGlmIChkYXRhW29yaWdSdWxlcy5yZXN1bHRXcmFwcGVyXSkge1xuICAgICAgdXRpbC51cGRhdGUoZGF0YSwgZGF0YVtvcmlnUnVsZXMucmVzdWx0V3JhcHBlcl0pO1xuICAgICAgZGVsZXRlIGRhdGFbb3JpZ1J1bGVzLnJlc3VsdFdyYXBwZXJdO1xuICAgIH1cbiAgfVxuXG4gIHJlc3AuZGF0YSA9IGRhdGE7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICBidWlsZFJlcXVlc3Q6IGJ1aWxkUmVxdWVzdCxcbiAgZXh0cmFjdEVycm9yOiBleHRyYWN0RXJyb3IsXG4gIGV4dHJhY3REYXRhOiBleHRyYWN0RGF0YVxufTtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xuXG5mdW5jdGlvbiBwb3B1bGF0ZU1ldGhvZChyZXEpIHtcbiAgcmVxLmh0dHBSZXF1ZXN0Lm1ldGhvZCA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dLmh0dHBNZXRob2Q7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlVVJJKGVuZHBvaW50UGF0aCwgb3BlcmF0aW9uUGF0aCwgaW5wdXQsIHBhcmFtcykge1xuICB2YXIgdXJpID0gW2VuZHBvaW50UGF0aCwgb3BlcmF0aW9uUGF0aF0uam9pbignLycpO1xuICB1cmkgPSB1cmkucmVwbGFjZSgvXFwvKy9nLCAnLycpO1xuXG4gIHZhciBxdWVyeVN0cmluZyA9IHt9LCBxdWVyeVN0cmluZ1NldCA9IGZhbHNlO1xuICB1dGlsLmVhY2goaW5wdXQubWVtYmVycywgZnVuY3Rpb24gKG5hbWUsIG1lbWJlcikge1xuICAgIHZhciBwYXJhbVZhbHVlID0gcGFyYW1zW25hbWVdO1xuICAgIGlmIChwYXJhbVZhbHVlID09PSBudWxsIHx8IHBhcmFtVmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIGlmIChtZW1iZXIubG9jYXRpb24gPT09ICd1cmknKSB7XG4gICAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKCdcXFxceycgKyBtZW1iZXIubmFtZSArICcoXFxcXCspP1xcXFx9Jyk7XG4gICAgICB1cmkgPSB1cmkucmVwbGFjZShyZWdleCwgZnVuY3Rpb24oXywgcGx1cykge1xuICAgICAgICB2YXIgZm4gPSBwbHVzID8gdXRpbC51cmlFc2NhcGVQYXRoIDogdXRpbC51cmlFc2NhcGU7XG4gICAgICAgIHJldHVybiBmbihTdHJpbmcocGFyYW1WYWx1ZSkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChtZW1iZXIubG9jYXRpb24gPT09ICdxdWVyeXN0cmluZycpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nU2V0ID0gdHJ1ZTtcblxuICAgICAgaWYgKG1lbWJlci50eXBlID09PSAnbGlzdCcpIHtcbiAgICAgICAgcXVlcnlTdHJpbmdbbWVtYmVyLm5hbWVdID0gcGFyYW1WYWx1ZS5tYXAoZnVuY3Rpb24odmFsKSB7XG4gICAgICAgICAgcmV0dXJuIHV0aWwudXJpRXNjYXBlKFN0cmluZyh2YWwpKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKG1lbWJlci50eXBlID09PSAnbWFwJykge1xuICAgICAgICB1dGlsLmVhY2gocGFyYW1WYWx1ZSwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcXVlcnlTdHJpbmdba2V5XSA9IHZhbHVlLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHV0aWwudXJpRXNjYXBlKFN0cmluZyh2YWwpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeVN0cmluZ1trZXldID0gdXRpbC51cmlFc2NhcGUoU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXJ5U3RyaW5nW21lbWJlci5uYW1lXSA9IHV0aWwudXJpRXNjYXBlKFN0cmluZyhwYXJhbVZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBpZiAocXVlcnlTdHJpbmdTZXQpIHtcbiAgICB1cmkgKz0gKHVyaS5pbmRleE9mKCc/JykgPj0gMCA/ICcmJyA6ICc/Jyk7XG4gICAgdmFyIHBhcnRzID0gW107XG4gICAgdXRpbC5hcnJheUVhY2goT2JqZWN0LmtleXMocXVlcnlTdHJpbmcpLnNvcnQoKSwgZnVuY3Rpb24oa2V5KSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocXVlcnlTdHJpbmdba2V5XSkpIHtcbiAgICAgICAgcXVlcnlTdHJpbmdba2V5XSA9IFtxdWVyeVN0cmluZ1trZXldXTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVlcnlTdHJpbmdba2V5XS5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXJ0cy5wdXNoKHV0aWwudXJpRXNjYXBlKFN0cmluZyhrZXkpKSArICc9JyArIHF1ZXJ5U3RyaW5nW2tleV1baV0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHVyaSArPSBwYXJ0cy5qb2luKCcmJyk7XG4gIH1cblxuICByZXR1cm4gdXJpO1xufVxuXG5mdW5jdGlvbiBwb3B1bGF0ZVVSSShyZXEpIHtcbiAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICB2YXIgaW5wdXQgPSBvcGVyYXRpb24uaW5wdXQ7XG5cbiAgdmFyIHVyaSA9IGdlbmVyYXRlVVJJKHJlcS5odHRwUmVxdWVzdC5lbmRwb2ludC5wYXRoLCBvcGVyYXRpb24uaHR0cFBhdGgsIGlucHV0LCByZXEucGFyYW1zKTtcbiAgcmVxLmh0dHBSZXF1ZXN0LnBhdGggPSB1cmk7XG59XG5cbmZ1bmN0aW9uIHBvcHVsYXRlSGVhZGVycyhyZXEpIHtcbiAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICB1dGlsLmVhY2gob3BlcmF0aW9uLmlucHV0Lm1lbWJlcnMsIGZ1bmN0aW9uIChuYW1lLCBtZW1iZXIpIHtcbiAgICB2YXIgdmFsdWUgPSByZXEucGFyYW1zW25hbWVdO1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICBpZiAobWVtYmVyLmxvY2F0aW9uID09PSAnaGVhZGVycycgJiYgbWVtYmVyLnR5cGUgPT09ICdtYXAnKSB7XG4gICAgICB1dGlsLmVhY2godmFsdWUsIGZ1bmN0aW9uKGtleSwgbWVtYmVyVmFsdWUpIHtcbiAgICAgICAgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbbWVtYmVyLm5hbWUgKyBrZXldID0gbWVtYmVyVmFsdWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1lbWJlci5sb2NhdGlvbiA9PT0gJ2hlYWRlcicpIHtcbiAgICAgIHZhbHVlID0gbWVtYmVyLnRvV2lyZUZvcm1hdCh2YWx1ZSkudG9TdHJpbmcoKTtcbiAgICAgIGlmIChtZW1iZXIuaXNKc29uVmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSB1dGlsLmJhc2U2NC5lbmNvZGUodmFsdWUpO1xuICAgICAgfVxuICAgICAgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbbWVtYmVyLm5hbWVdID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYnVpbGRSZXF1ZXN0KHJlcSkge1xuICBwb3B1bGF0ZU1ldGhvZChyZXEpO1xuICBwb3B1bGF0ZVVSSShyZXEpO1xuICBwb3B1bGF0ZUhlYWRlcnMocmVxKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEVycm9yKCkge1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RGF0YShyZXNwKSB7XG4gIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gIHZhciBkYXRhID0ge307XG4gIHZhciByID0gcmVzcC5odHRwUmVzcG9uc2U7XG4gIHZhciBvcGVyYXRpb24gPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXTtcbiAgdmFyIG91dHB1dCA9IG9wZXJhdGlvbi5vdXRwdXQ7XG5cbiAgLy8gbm9ybWFsaXplIGhlYWRlcnMgbmFtZXMgdG8gbG93ZXItY2FzZWQga2V5cyBmb3IgbWF0Y2hpbmdcbiAgdmFyIGhlYWRlcnMgPSB7fTtcbiAgdXRpbC5lYWNoKHIuaGVhZGVycywgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBoZWFkZXJzW2sudG9Mb3dlckNhc2UoKV0gPSB2O1xuICB9KTtcblxuICB1dGlsLmVhY2gob3V0cHV0Lm1lbWJlcnMsIGZ1bmN0aW9uKG5hbWUsIG1lbWJlcikge1xuICAgIHZhciBoZWFkZXIgPSAobWVtYmVyLm5hbWUgfHwgbmFtZSkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobWVtYmVyLmxvY2F0aW9uID09PSAnaGVhZGVycycgJiYgbWVtYmVyLnR5cGUgPT09ICdtYXAnKSB7XG4gICAgICBkYXRhW25hbWVdID0ge307XG4gICAgICB2YXIgbG9jYXRpb24gPSBtZW1iZXIuaXNMb2NhdGlvbk5hbWUgPyBtZW1iZXIubmFtZSA6ICcnO1xuICAgICAgdmFyIHBhdHRlcm4gPSBuZXcgUmVnRXhwKCdeJyArIGxvY2F0aW9uICsgJyguKyknLCAnaScpO1xuICAgICAgdXRpbC5lYWNoKHIuaGVhZGVycywgZnVuY3Rpb24gKGssIHYpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGsubWF0Y2gocGF0dGVybik7XG4gICAgICAgIGlmIChyZXN1bHQgIT09IG51bGwpIHtcbiAgICAgICAgICBkYXRhW25hbWVdW3Jlc3VsdFsxXV0gPSB2O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1lbWJlci5sb2NhdGlvbiA9PT0gJ2hlYWRlcicpIHtcbiAgICAgIGlmIChoZWFkZXJzW2hlYWRlcl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBtZW1iZXIuaXNKc29uVmFsdWUgP1xuICAgICAgICAgIHV0aWwuYmFzZTY0LmRlY29kZShoZWFkZXJzW2hlYWRlcl0pIDpcbiAgICAgICAgICBoZWFkZXJzW2hlYWRlcl07XG4gICAgICAgIGRhdGFbbmFtZV0gPSBtZW1iZXIudG9UeXBlKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG1lbWJlci5sb2NhdGlvbiA9PT0gJ3N0YXR1c0NvZGUnKSB7XG4gICAgICBkYXRhW25hbWVdID0gcGFyc2VJbnQoci5zdGF0dXNDb2RlLCAxMCk7XG4gICAgfVxuICB9KTtcblxuICByZXNwLmRhdGEgPSBkYXRhO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYnVpbGRSZXF1ZXN0OiBidWlsZFJlcXVlc3QsXG4gIGV4dHJhY3RFcnJvcjogZXh0cmFjdEVycm9yLFxuICBleHRyYWN0RGF0YTogZXh0cmFjdERhdGEsXG4gIGdlbmVyYXRlVVJJOiBnZW5lcmF0ZVVSSVxufTtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIFJlc3QgPSByZXF1aXJlKCcuL3Jlc3QnKTtcbnZhciBKc29uID0gcmVxdWlyZSgnLi9qc29uJyk7XG52YXIgSnNvbkJ1aWxkZXIgPSByZXF1aXJlKCcuLi9qc29uL2J1aWxkZXInKTtcbnZhciBKc29uUGFyc2VyID0gcmVxdWlyZSgnLi4vanNvbi9wYXJzZXInKTtcblxuZnVuY3Rpb24gcG9wdWxhdGVCb2R5KHJlcSkge1xuICB2YXIgYnVpbGRlciA9IG5ldyBKc29uQnVpbGRlcigpO1xuICB2YXIgaW5wdXQgPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXS5pbnB1dDtcblxuICBpZiAoaW5wdXQucGF5bG9hZCkge1xuICAgIHZhciBwYXJhbXMgPSB7fTtcbiAgICB2YXIgcGF5bG9hZFNoYXBlID0gaW5wdXQubWVtYmVyc1tpbnB1dC5wYXlsb2FkXTtcbiAgICBwYXJhbXMgPSByZXEucGFyYW1zW2lucHV0LnBheWxvYWRdO1xuICAgIGlmIChwYXJhbXMgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgaWYgKHBheWxvYWRTaGFwZS50eXBlID09PSAnc3RydWN0dXJlJykge1xuICAgICAgcmVxLmh0dHBSZXF1ZXN0LmJvZHkgPSBidWlsZGVyLmJ1aWxkKHBhcmFtcywgcGF5bG9hZFNoYXBlKTtcbiAgICAgIGFwcGx5Q29udGVudFR5cGVIZWFkZXIocmVxKTtcbiAgICB9IGVsc2UgeyAvLyBub24tSlNPTiBwYXlsb2FkXG4gICAgICByZXEuaHR0cFJlcXVlc3QuYm9keSA9IHBhcmFtcztcbiAgICAgIGlmIChwYXlsb2FkU2hhcGUudHlwZSA9PT0gJ2JpbmFyeScgfHwgcGF5bG9hZFNoYXBlLmlzU3RyZWFtaW5nKSB7XG4gICAgICAgIGFwcGx5Q29udGVudFR5cGVIZWFkZXIocmVxLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmVxLmh0dHBSZXF1ZXN0LmJvZHkgPSBidWlsZGVyLmJ1aWxkKHJlcS5wYXJhbXMsIGlucHV0KTtcbiAgICBhcHBseUNvbnRlbnRUeXBlSGVhZGVyKHJlcSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlDb250ZW50VHlwZUhlYWRlcihyZXEsIGlzQmluYXJ5KSB7XG4gIHZhciBvcGVyYXRpb24gPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXTtcbiAgdmFyIGlucHV0ID0gb3BlcmF0aW9uLmlucHV0O1xuXG4gIGlmICghcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddKSB7XG4gICAgdmFyIHR5cGUgPSBpc0JpbmFyeSA/ICdiaW5hcnkvb2N0ZXQtc3RyZWFtJyA6ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSB0eXBlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUmVxdWVzdChyZXEpIHtcbiAgUmVzdC5idWlsZFJlcXVlc3QocmVxKTtcblxuICAvLyBuZXZlciBzZW5kIGJvZHkgcGF5bG9hZCBvbiBHRVQvSEVBRC9ERUxFVEVcbiAgaWYgKFsnR0VUJywgJ0hFQUQnLCAnREVMRVRFJ10uaW5kZXhPZihyZXEuaHR0cFJlcXVlc3QubWV0aG9kKSA8IDApIHtcbiAgICBwb3B1bGF0ZUJvZHkocmVxKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RXJyb3IocmVzcCkge1xuICBKc29uLmV4dHJhY3RFcnJvcihyZXNwKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdERhdGEocmVzcCkge1xuICBSZXN0LmV4dHJhY3REYXRhKHJlc3ApO1xuXG4gIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gIHZhciBvcGVyYXRpb24gPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXTtcbiAgdmFyIHJ1bGVzID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl0ub3V0cHV0IHx8IHt9O1xuICB2YXIgcGFyc2VyO1xuICB2YXIgaGFzRXZlbnRPdXRwdXQgPSBvcGVyYXRpb24uaGFzRXZlbnRPdXRwdXQ7XG5cbiAgaWYgKHJ1bGVzLnBheWxvYWQpIHtcbiAgICB2YXIgcGF5bG9hZE1lbWJlciA9IHJ1bGVzLm1lbWJlcnNbcnVsZXMucGF5bG9hZF07XG4gICAgdmFyIGJvZHkgPSByZXNwLmh0dHBSZXNwb25zZS5ib2R5O1xuICAgIGlmIChwYXlsb2FkTWVtYmVyLmlzRXZlbnRTdHJlYW0pIHtcbiAgICAgIHBhcnNlciA9IG5ldyBKc29uUGFyc2VyKCk7XG4gICAgICByZXNwLmRhdGFbcGF5bG9hZF0gPSB1dGlsLmNyZWF0ZUV2ZW50U3RyZWFtKFxuICAgICAgICBBV1MuSHR0cENsaWVudC5zdHJlYW1zQXBpVmVyc2lvbiA9PT0gMiA/IHJlc3AuaHR0cFJlc3BvbnNlLnN0cmVhbSA6IGJvZHksXG4gICAgICAgIHBhcnNlcixcbiAgICAgICAgcGF5bG9hZE1lbWJlclxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHBheWxvYWRNZW1iZXIudHlwZSA9PT0gJ3N0cnVjdHVyZScgfHwgcGF5bG9hZE1lbWJlci50eXBlID09PSAnbGlzdCcpIHtcbiAgICAgIHZhciBwYXJzZXIgPSBuZXcgSnNvblBhcnNlcigpO1xuICAgICAgcmVzcC5kYXRhW3J1bGVzLnBheWxvYWRdID0gcGFyc2VyLnBhcnNlKGJvZHksIHBheWxvYWRNZW1iZXIpO1xuICAgIH0gZWxzZSBpZiAocGF5bG9hZE1lbWJlci50eXBlID09PSAnYmluYXJ5JyB8fCBwYXlsb2FkTWVtYmVyLmlzU3RyZWFtaW5nKSB7XG4gICAgICByZXNwLmRhdGFbcnVsZXMucGF5bG9hZF0gPSBib2R5O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwLmRhdGFbcnVsZXMucGF5bG9hZF0gPSBwYXlsb2FkTWVtYmVyLnRvVHlwZShib2R5KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGRhdGEgPSByZXNwLmRhdGE7XG4gICAgSnNvbi5leHRyYWN0RGF0YShyZXNwKTtcbiAgICByZXNwLmRhdGEgPSB1dGlsLm1lcmdlKGRhdGEsIHJlc3AuZGF0YSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGJ1aWxkUmVxdWVzdDogYnVpbGRSZXF1ZXN0LFxuICBleHRyYWN0RXJyb3I6IGV4dHJhY3RFcnJvcixcbiAgZXh0cmFjdERhdGE6IGV4dHJhY3REYXRhXG59O1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIFJlc3QgPSByZXF1aXJlKCcuL3Jlc3QnKTtcblxuZnVuY3Rpb24gcG9wdWxhdGVCb2R5KHJlcSkge1xuICB2YXIgaW5wdXQgPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXS5pbnB1dDtcbiAgdmFyIGJ1aWxkZXIgPSBuZXcgQVdTLlhNTC5CdWlsZGVyKCk7XG4gIHZhciBwYXJhbXMgPSByZXEucGFyYW1zO1xuXG4gIHZhciBwYXlsb2FkID0gaW5wdXQucGF5bG9hZDtcbiAgaWYgKHBheWxvYWQpIHtcbiAgICB2YXIgcGF5bG9hZE1lbWJlciA9IGlucHV0Lm1lbWJlcnNbcGF5bG9hZF07XG4gICAgcGFyYW1zID0gcGFyYW1zW3BheWxvYWRdO1xuICAgIGlmIChwYXJhbXMgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgaWYgKHBheWxvYWRNZW1iZXIudHlwZSA9PT0gJ3N0cnVjdHVyZScpIHtcbiAgICAgIHZhciByb290RWxlbWVudCA9IHBheWxvYWRNZW1iZXIubmFtZTtcbiAgICAgIHJlcS5odHRwUmVxdWVzdC5ib2R5ID0gYnVpbGRlci50b1hNTChwYXJhbXMsIHBheWxvYWRNZW1iZXIsIHJvb3RFbGVtZW50LCB0cnVlKTtcbiAgICB9IGVsc2UgeyAvLyBub24teG1sIHBheWxvYWRcbiAgICAgIHJlcS5odHRwUmVxdWVzdC5ib2R5ID0gcGFyYW1zO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXEuaHR0cFJlcXVlc3QuYm9keSA9IGJ1aWxkZXIudG9YTUwocGFyYW1zLCBpbnB1dCwgaW5wdXQubmFtZSB8fFxuICAgICAgaW5wdXQuc2hhcGUgfHwgdXRpbC5zdHJpbmcudXBwZXJGaXJzdChyZXEub3BlcmF0aW9uKSArICdSZXF1ZXN0Jyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRSZXF1ZXN0KHJlcSkge1xuICBSZXN0LmJ1aWxkUmVxdWVzdChyZXEpO1xuXG4gIC8vIG5ldmVyIHNlbmQgYm9keSBwYXlsb2FkIG9uIEdFVC9IRUFEXG4gIGlmIChbJ0dFVCcsICdIRUFEJ10uaW5kZXhPZihyZXEuaHR0cFJlcXVlc3QubWV0aG9kKSA8IDApIHtcbiAgICBwb3B1bGF0ZUJvZHkocmVxKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RXJyb3IocmVzcCkge1xuICBSZXN0LmV4dHJhY3RFcnJvcihyZXNwKTtcblxuICB2YXIgZGF0YTtcbiAgdHJ5IHtcbiAgICBkYXRhID0gbmV3IEFXUy5YTUwuUGFyc2VyKCkucGFyc2UocmVzcC5odHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGRhdGEgPSB7XG4gICAgICBDb2RlOiByZXNwLmh0dHBSZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgTWVzc2FnZTogcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzTWVzc2FnZVxuICAgIH07XG4gIH1cblxuICBpZiAoZGF0YS5FcnJvcnMpIGRhdGEgPSBkYXRhLkVycm9ycztcbiAgaWYgKGRhdGEuRXJyb3IpIGRhdGEgPSBkYXRhLkVycm9yO1xuICBpZiAoZGF0YS5Db2RlKSB7XG4gICAgcmVzcC5lcnJvciA9IHV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgIGNvZGU6IGRhdGEuQ29kZSxcbiAgICAgIG1lc3NhZ2U6IGRhdGEuTWVzc2FnZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHJlc3AuZXJyb3IgPSB1dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICBjb2RlOiByZXNwLmh0dHBSZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgbWVzc2FnZTogbnVsbFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3REYXRhKHJlc3ApIHtcbiAgUmVzdC5leHRyYWN0RGF0YShyZXNwKTtcblxuICB2YXIgcGFyc2VyO1xuICB2YXIgcmVxID0gcmVzcC5yZXF1ZXN0O1xuICB2YXIgYm9keSA9IHJlc3AuaHR0cFJlc3BvbnNlLmJvZHk7XG4gIHZhciBvcGVyYXRpb24gPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXTtcbiAgdmFyIG91dHB1dCA9IG9wZXJhdGlvbi5vdXRwdXQ7XG5cbiAgdmFyIGhhc0V2ZW50T3V0cHV0ID0gb3BlcmF0aW9uLmhhc0V2ZW50T3V0cHV0O1xuXG4gIHZhciBwYXlsb2FkID0gb3V0cHV0LnBheWxvYWQ7XG4gIGlmIChwYXlsb2FkKSB7XG4gICAgdmFyIHBheWxvYWRNZW1iZXIgPSBvdXRwdXQubWVtYmVyc1twYXlsb2FkXTtcbiAgICBpZiAocGF5bG9hZE1lbWJlci5pc0V2ZW50U3RyZWFtKSB7XG4gICAgICBwYXJzZXIgPSBuZXcgQVdTLlhNTC5QYXJzZXIoKTtcbiAgICAgIHJlc3AuZGF0YVtwYXlsb2FkXSA9IHV0aWwuY3JlYXRlRXZlbnRTdHJlYW0oXG4gICAgICAgIEFXUy5IdHRwQ2xpZW50LnN0cmVhbXNBcGlWZXJzaW9uID09PSAyID8gcmVzcC5odHRwUmVzcG9uc2Uuc3RyZWFtIDogcmVzcC5odHRwUmVzcG9uc2UuYm9keSxcbiAgICAgICAgcGFyc2VyLFxuICAgICAgICBwYXlsb2FkTWVtYmVyXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAocGF5bG9hZE1lbWJlci50eXBlID09PSAnc3RydWN0dXJlJykge1xuICAgICAgcGFyc2VyID0gbmV3IEFXUy5YTUwuUGFyc2VyKCk7XG4gICAgICByZXNwLmRhdGFbcGF5bG9hZF0gPSBwYXJzZXIucGFyc2UoYm9keS50b1N0cmluZygpLCBwYXlsb2FkTWVtYmVyKTtcbiAgICB9IGVsc2UgaWYgKHBheWxvYWRNZW1iZXIudHlwZSA9PT0gJ2JpbmFyeScgfHwgcGF5bG9hZE1lbWJlci5pc1N0cmVhbWluZykge1xuICAgICAgcmVzcC5kYXRhW3BheWxvYWRdID0gYm9keTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcC5kYXRhW3BheWxvYWRdID0gcGF5bG9hZE1lbWJlci50b1R5cGUoYm9keSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGJvZHkubGVuZ3RoID4gMCkge1xuICAgIHBhcnNlciA9IG5ldyBBV1MuWE1MLlBhcnNlcigpO1xuICAgIHZhciBkYXRhID0gcGFyc2VyLnBhcnNlKGJvZHkudG9TdHJpbmcoKSwgb3V0cHV0KTtcbiAgICB1dGlsLnVwZGF0ZShyZXNwLmRhdGEsIGRhdGEpO1xuICB9XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICBidWlsZFJlcXVlc3Q6IGJ1aWxkUmVxdWVzdCxcbiAgZXh0cmFjdEVycm9yOiBleHRyYWN0RXJyb3IsXG4gIGV4dHJhY3REYXRhOiBleHRyYWN0RGF0YVxufTtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xuXG5mdW5jdGlvbiBRdWVyeVBhcmFtU2VyaWFsaXplcigpIHtcbn1cblxuUXVlcnlQYXJhbVNlcmlhbGl6ZXIucHJvdG90eXBlLnNlcmlhbGl6ZSA9IGZ1bmN0aW9uKHBhcmFtcywgc2hhcGUsIGZuKSB7XG4gIHNlcmlhbGl6ZVN0cnVjdHVyZSgnJywgcGFyYW1zLCBzaGFwZSwgZm4pO1xufTtcblxuZnVuY3Rpb24gdWNmaXJzdChzaGFwZSkge1xuICBpZiAoc2hhcGUuaXNRdWVyeU5hbWUgfHwgc2hhcGUuYXBpLnByb3RvY29sICE9PSAnZWMyJykge1xuICAgIHJldHVybiBzaGFwZS5uYW1lO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzaGFwZS5uYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBzaGFwZS5uYW1lLnN1YnN0cigxKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVTdHJ1Y3R1cmUocHJlZml4LCBzdHJ1Y3QsIHJ1bGVzLCBmbikge1xuICB1dGlsLmVhY2gocnVsZXMubWVtYmVycywgZnVuY3Rpb24obmFtZSwgbWVtYmVyKSB7XG4gICAgdmFyIHZhbHVlID0gc3RydWN0W25hbWVdO1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICB2YXIgbWVtYmVyTmFtZSA9IHVjZmlyc3QobWVtYmVyKTtcbiAgICBtZW1iZXJOYW1lID0gcHJlZml4ID8gcHJlZml4ICsgJy4nICsgbWVtYmVyTmFtZSA6IG1lbWJlck5hbWU7XG4gICAgc2VyaWFsaXplTWVtYmVyKG1lbWJlck5hbWUsIHZhbHVlLCBtZW1iZXIsIGZuKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZU1hcChuYW1lLCBtYXAsIHJ1bGVzLCBmbikge1xuICB2YXIgaSA9IDE7XG4gIHV0aWwuZWFjaChtYXAsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgdmFyIHByZWZpeCA9IHJ1bGVzLmZsYXR0ZW5lZCA/ICcuJyA6ICcuZW50cnkuJztcbiAgICB2YXIgcG9zaXRpb24gPSBwcmVmaXggKyAoaSsrKSArICcuJztcbiAgICB2YXIga2V5TmFtZSA9IHBvc2l0aW9uICsgKHJ1bGVzLmtleS5uYW1lIHx8ICdrZXknKTtcbiAgICB2YXIgdmFsdWVOYW1lID0gcG9zaXRpb24gKyAocnVsZXMudmFsdWUubmFtZSB8fCAndmFsdWUnKTtcbiAgICBzZXJpYWxpemVNZW1iZXIobmFtZSArIGtleU5hbWUsIGtleSwgcnVsZXMua2V5LCBmbik7XG4gICAgc2VyaWFsaXplTWVtYmVyKG5hbWUgKyB2YWx1ZU5hbWUsIHZhbHVlLCBydWxlcy52YWx1ZSwgZm4pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplTGlzdChuYW1lLCBsaXN0LCBydWxlcywgZm4pIHtcbiAgdmFyIG1lbWJlclJ1bGVzID0gcnVsZXMubWVtYmVyIHx8IHt9O1xuXG4gIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIGZuLmNhbGwodGhpcywgbmFtZSwgbnVsbCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdXRpbC5hcnJheUVhY2gobGlzdCwgZnVuY3Rpb24gKHYsIG4pIHtcbiAgICB2YXIgc3VmZml4ID0gJy4nICsgKG4gKyAxKTtcbiAgICBpZiAocnVsZXMuYXBpLnByb3RvY29sID09PSAnZWMyJykge1xuICAgICAgLy8gRG8gbm90aGluZyBmb3IgRUMyXG4gICAgICBzdWZmaXggPSBzdWZmaXggKyAnJzsgLy8gbWFrZSBsaW50ZXIgaGFwcHlcbiAgICB9IGVsc2UgaWYgKHJ1bGVzLmZsYXR0ZW5lZCkge1xuICAgICAgaWYgKG1lbWJlclJ1bGVzLm5hbWUpIHtcbiAgICAgICAgdmFyIHBhcnRzID0gbmFtZS5zcGxpdCgnLicpO1xuICAgICAgICBwYXJ0cy5wb3AoKTtcbiAgICAgICAgcGFydHMucHVzaCh1Y2ZpcnN0KG1lbWJlclJ1bGVzKSk7XG4gICAgICAgIG5hbWUgPSBwYXJ0cy5qb2luKCcuJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1ZmZpeCA9ICcuJyArIChtZW1iZXJSdWxlcy5uYW1lID8gbWVtYmVyUnVsZXMubmFtZSA6ICdtZW1iZXInKSArIHN1ZmZpeDtcbiAgICB9XG4gICAgc2VyaWFsaXplTWVtYmVyKG5hbWUgKyBzdWZmaXgsIHYsIG1lbWJlclJ1bGVzLCBmbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVNZW1iZXIobmFtZSwgdmFsdWUsIHJ1bGVzLCBmbikge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICBpZiAocnVsZXMudHlwZSA9PT0gJ3N0cnVjdHVyZScpIHtcbiAgICBzZXJpYWxpemVTdHJ1Y3R1cmUobmFtZSwgdmFsdWUsIHJ1bGVzLCBmbik7XG4gIH0gZWxzZSBpZiAocnVsZXMudHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgc2VyaWFsaXplTGlzdChuYW1lLCB2YWx1ZSwgcnVsZXMsIGZuKTtcbiAgfSBlbHNlIGlmIChydWxlcy50eXBlID09PSAnbWFwJykge1xuICAgIHNlcmlhbGl6ZU1hcChuYW1lLCB2YWx1ZSwgcnVsZXMsIGZuKTtcbiAgfSBlbHNlIHtcbiAgICBmbihuYW1lLCBydWxlcy50b1dpcmVGb3JtYXQodmFsdWUpLnRvU3RyaW5nKCkpO1xuICB9XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gUXVlcnlQYXJhbVNlcmlhbGl6ZXI7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgc2VydmljZSA9IG51bGw7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBhcGkgPSB7XG4gICAgc2lnbmF0dXJlVmVyc2lvbjogJ3Y0JyxcbiAgICBzaWduaW5nTmFtZTogJ3Jkcy1kYidcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciByZXF1aXJlZEF1dGhUb2tlbk9wdGlvbnMgPSB7XG4gICAgcmVnaW9uOiAnc3RyaW5nJyxcbiAgICBob3N0bmFtZTogJ3N0cmluZycsXG4gICAgcG9ydDogJ251bWJlcicsXG4gICAgdXNlcm5hbWU6ICdzdHJpbmcnXG59O1xuXG4vKipcbiAqIEEgc2lnbmVyIG9iamVjdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBhbiBhdXRoIHRva2VuIHRvIGEgZGF0YWJhc2UuXG4gKi9cbkFXUy5SRFMuU2lnbmVyID0gQVdTLnV0aWwuaW5oZXJpdCh7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHNpZ25lciBvYmplY3QgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYW4gYXV0aCB0b2tlbi5cbiAgICAgKlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyBjcmVkZW50aWFscyBbQVdTLkNyZWRlbnRpYWxzXSB0aGUgQVdTIGNyZWRlbnRpYWxzXG4gICAgICogICB0byBzaWduIHJlcXVlc3RzIHdpdGguIFVzZXMgdGhlIGRlZmF1bHQgY3JlZGVudGlhbCBwcm92aWRlciBjaGFpblxuICAgICAqICAgaWYgbm90IHNwZWNpZmllZC5cbiAgICAgKiBAb3B0aW9uIG9wdGlvbnMgaG9zdG5hbWUgW1N0cmluZ10gdGhlIGhvc3RuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byBjb25uZWN0IHRvLlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyBwb3J0IFtOdW1iZXJdIHRoZSBwb3J0IG51bWJlciB0aGUgZGF0YWJhc2UgaXMgbGlzdGVuaW5nIG9uLlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyByZWdpb24gW1N0cmluZ10gdGhlIHJlZ2lvbiB0aGUgZGF0YWJhc2UgaXMgbG9jYXRlZCBpbi5cbiAgICAgKiBAb3B0aW9uIG9wdGlvbnMgdXNlcm5hbWUgW1N0cmluZ10gdGhlIHVzZXJuYW1lIHRvIGxvZ2luIGFzLlxuICAgICAqIEBleGFtcGxlIFBhc3NpbmcgaW4gb3B0aW9ucyB0byBjb25zdHJ1Y3RvclxuICAgICAqICAgdmFyIHNpZ25lciA9IG5ldyBBV1MuUkRTLlNpZ25lcih7XG4gICAgICogICAgIGNyZWRlbnRpYWxzOiBuZXcgQVdTLlNoYXJlZEluaUZpbGVDcmVkZW50aWFscyh7cHJvZmlsZTogJ2RlZmF1bHQnfSksXG4gICAgICogICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICogICAgIGhvc3RuYW1lOiAnZGIudXMtZWFzdC0xLnJkcy5hbWF6b25hd3MuY29tJyxcbiAgICAgKiAgICAgcG9ydDogODAwMCxcbiAgICAgKiAgICAgdXNlcm5hbWU6ICduYW1lJ1xuICAgICAqICAgfSk7XG4gICAgICovXG4gICAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIFNpZ25lcihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICAqIFN0cmlwcyB0aGUgcHJvdG9jb2wgZnJvbSBhIHVybC5cbiAgICAgKi9cbiAgICBjb252ZXJ0VXJsVG9BdXRoVG9rZW46IGZ1bmN0aW9uIGNvbnZlcnRVcmxUb0F1dGhUb2tlbih1cmwpIHtcbiAgICAgICAgLy8gd2UgYXJlIGFsd2F5cyB1c2luZyBodHRwcyBhcyB0aGUgcHJvdG9jb2xcbiAgICAgICAgdmFyIHByb3RvY29sID0gJ2h0dHBzOi8vJztcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKHByb3RvY29sKSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVybC5zdWJzdHJpbmcocHJvdG9jb2wubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcmxvYWQgZ2V0QXV0aFRva2VuKG9wdGlvbnMgPSB7fSwgW2NhbGxiYWNrXSlcbiAgICAgKiAgIEdlbmVyYXRlIGFuIGF1dGggdG9rZW4gdG8gYSBkYXRhYmFzZS5cbiAgICAgKiAgIEBub3RlIFlvdSBtdXN0IGVuc3VyZSB0aGF0IHlvdSBoYXZlIHN0YXRpYyBvciBwcmV2aW91c2x5IHJlc29sdmVkXG4gICAgICogICAgIGNyZWRlbnRpYWxzIGlmIHlvdSBjYWxsIHRoaXMgbWV0aG9kIHN5bmNocm9ub3VzbHkgKHdpdGggbm8gY2FsbGJhY2spLFxuICAgICAqICAgICBvdGhlcndpc2UgaXQgbWF5IG5vdCBwcm9wZXJseSBzaWduIHRoZSByZXF1ZXN0LiBJZiB5b3UgY2Fubm90IGd1YXJhbnRlZVxuICAgICAqICAgICB0aGlzICh5b3UgYXJlIHVzaW5nIGFuIGFzeW5jaHJvbm91cyBjcmVkZW50aWFsIHByb3ZpZGVyLCBpLmUuLCBFQzJcbiAgICAgKiAgICAgSUFNIHJvbGVzKSwgeW91IHNob3VsZCBhbHdheXMgY2FsbCB0aGlzIG1ldGhvZCB3aXRoIGFuIGFzeW5jaHJvbm91c1xuICAgICAqICAgICBjYWxsYmFjay5cbiAgICAgKlxuICAgICAqICAgQHBhcmFtIG9wdGlvbnMgW21hcF0gVGhlIGZpZWxkcyB0byB1c2Ugd2hlbiBnZW5lcmF0aW5nIGFuIGF1dGggdG9rZW4uXG4gICAgICogICAgIEFueSBvcHRpb25zIHNwZWNpZmllZCBoZXJlIHdpbGwgYmUgbWVyZ2VkIG9uIHRvcCBvZiBhbnkgb3B0aW9ucyBwYXNzZWRcbiAgICAgKiAgICAgdG8gQVdTLlJEUy5TaWduZXI6XG4gICAgICpcbiAgICAgKiAgICAgKiAqKmNyZWRlbnRpYWxzKiogKEFXUy5DcmVkZW50aWFscykgJm1kYXNoOyB0aGUgQVdTIGNyZWRlbnRpYWxzXG4gICAgICogICAgICAgICB0byBzaWduIHJlcXVlc3RzIHdpdGguIFVzZXMgdGhlIGRlZmF1bHQgY3JlZGVudGlhbCBwcm92aWRlciBjaGFpblxuICAgICAqICAgICAgICAgaWYgbm90IHNwZWNpZmllZC5cbiAgICAgKiAgICAgKiAqKmhvc3RuYW1lKiogKFN0cmluZykgJm1kYXNoOyB0aGUgaG9zdG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIGNvbm5lY3QgdG8uXG4gICAgICogICAgICogKipwb3J0KiogKE51bWJlcikgJm1kYXNoOyB0aGUgcG9ydCBudW1iZXIgdGhlIGRhdGFiYXNlIGlzIGxpc3RlbmluZyBvbi5cbiAgICAgKiAgICAgKiAqKnJlZ2lvbioqIChTdHJpbmcpICZtZGFzaDsgdGhlIHJlZ2lvbiB0aGUgZGF0YWJhc2UgaXMgbG9jYXRlZCBpbi5cbiAgICAgKiAgICAgKiAqKnVzZXJuYW1lKiogKFN0cmluZykgJm1kYXNoOyB0aGUgdXNlcm5hbWUgdG8gbG9naW4gYXMuXG4gICAgICogICBAcmV0dXJuIFtTdHJpbmddIGlmIGNhbGxlZCBzeW5jaHJvbm91c2x5ICh3aXRoIG5vIGNhbGxiYWNrKSwgcmV0dXJucyB0aGVcbiAgICAgKiAgICAgYXV0aCB0b2tlbi5cbiAgICAgKiAgIEByZXR1cm4gW251bGxdIG5vdGhpbmcgaXMgcmV0dXJuZWQgaWYgYSBjYWxsYmFjayBpcyBwcm92aWRlZC5cbiAgICAgKiAgIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbiAoZXJyLCB0b2tlbilcbiAgICAgKiAgICAgSWYgYSBjYWxsYmFjayBpcyBzdXBwbGllZCwgaXQgaXMgY2FsbGVkIHdoZW4gYW4gYXV0aCB0b2tlbiBoYXMgYmVlbiBnZW5lcmF0ZWQuXG4gICAgICogICAgIEBwYXJhbSBlcnIgW0Vycm9yXSB0aGUgZXJyb3Igb2JqZWN0IHJldHVybmVkIGZyb20gdGhlIHNpZ25lci5cbiAgICAgKiAgICAgQHBhcmFtIHRva2VuIFtTdHJpbmddIHRoZSBhdXRoIHRva2VuLlxuICAgICAqXG4gICAgICogICBAZXhhbXBsZSBHZW5lcmF0aW5nIGFuIGF1dGggdG9rZW4gc3luY2hyb25vdXNseVxuICAgICAqICAgICB2YXIgc2lnbmVyID0gbmV3IEFXUy5SRFMuU2lnbmVyKHtcbiAgICAgKiAgICAgICAvLyBjb25maWd1cmUgb3B0aW9uc1xuICAgICAqICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICogICAgICAgdXNlcm5hbWU6ICdkZWZhdWx0JyxcbiAgICAgKiAgICAgICBob3N0bmFtZTogJ2RiLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tJyxcbiAgICAgKiAgICAgICBwb3J0OiA4MDAwXG4gICAgICogICAgIH0pO1xuICAgICAqICAgICB2YXIgdG9rZW4gPSBzaWduZXIuZ2V0QXV0aFRva2VuKHtcbiAgICAgKiAgICAgICAvLyB0aGVzZSBvcHRpb25zIGFyZSBtZXJnZWQgd2l0aCB0aG9zZSBkZWZpbmVkIHdoZW4gY3JlYXRpbmcgdGhlIHNpZ25lciwgb3ZlcnJpZGluZyBpbiB0aGUgY2FzZSBvZiBhIGR1cGxpY2F0ZSBvcHRpb25cbiAgICAgKiAgICAgICAvLyBjcmVkZW50aWFscyBhcmUgbm90IHNwZWNpZmllZCBoZXJlIG9yIHdoZW4gY3JlYXRpbmcgdGhlIHNpZ25lciwgc28gZGVmYXVsdCBjcmVkZW50aWFsIHByb3ZpZGVyIHdpbGwgYmUgdXNlZFxuICAgICAqICAgICAgIHVzZXJuYW1lOiAndGVzdCcgLy8gb3ZlcnJpZGluZyB1c2VybmFtZVxuICAgICAqICAgICB9KTtcbiAgICAgKiAgIEBleGFtcGxlIEdlbmVyYXRpbmcgYW4gYXV0aCB0b2tlbiBhc3luY2hyb25vdXNseVxuICAgICAqICAgICB2YXIgc2lnbmVyID0gbmV3IEFXUy5SRFMuU2lnbmVyKHtcbiAgICAgKiAgICAgICAvLyBjb25maWd1cmUgb3B0aW9uc1xuICAgICAqICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICogICAgICAgdXNlcm5hbWU6ICdkZWZhdWx0JyxcbiAgICAgKiAgICAgICBob3N0bmFtZTogJ2RiLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tJyxcbiAgICAgKiAgICAgICBwb3J0OiA4MDAwXG4gICAgICogICAgIH0pO1xuICAgICAqICAgICBzaWduZXIuZ2V0QXV0aFRva2VuKHtcbiAgICAgKiAgICAgICAvLyB0aGVzZSBvcHRpb25zIGFyZSBtZXJnZWQgd2l0aCB0aG9zZSBkZWZpbmVkIHdoZW4gY3JlYXRpbmcgdGhlIHNpZ25lciwgb3ZlcnJpZGluZyBpbiB0aGUgY2FzZSBvZiBhIGR1cGxpY2F0ZSBvcHRpb25cbiAgICAgKiAgICAgICAvLyBjcmVkZW50aWFscyBhcmUgbm90IHNwZWNpZmllZCBoZXJlIG9yIHdoZW4gY3JlYXRpbmcgdGhlIHNpZ25lciwgc28gZGVmYXVsdCBjcmVkZW50aWFsIHByb3ZpZGVyIHdpbGwgYmUgdXNlZFxuICAgICAqICAgICAgIHVzZXJuYW1lOiAndGVzdCcgLy8gb3ZlcnJpZGluZyB1c2VybmFtZVxuICAgICAqICAgICB9LCBmdW5jdGlvbihlcnIsIHRva2VuKSB7XG4gICAgICogICAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgLy8gaGFuZGxlIGVycm9yXG4gICAgICogICAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgIC8vIHVzZSB0b2tlblxuICAgICAqICAgICAgIH1cbiAgICAgKiAgICAgfSk7XG4gICAgICpcbiAgICAgKi9cbiAgICBnZXRBdXRoVG9rZW46IGZ1bmN0aW9uIGdldEF1dGhUb2tlbihvcHRpb25zLCBjYWxsYmFjaykge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicgJiYgY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2FsbGJhY2sgPSBvcHRpb25zO1xuICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgICAgdmFyIGhhc0NhbGxiYWNrID0gdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nO1xuICAgICAgICAvLyBtZXJnZSBvcHRpb25zIHdpdGggZXhpc3Rpbmcgb3B0aW9uc1xuICAgICAgICBvcHRpb25zID0gQVdTLnV0aWwubWVyZ2UodGhpcy5vcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgLy8gdmFsaWRhdGUgb3B0aW9uc1xuICAgICAgICB2YXIgb3B0aW9uc1ZhbGlkYXRpb24gPSB0aGlzLnZhbGlkYXRlQXV0aFRva2VuT3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgaWYgKG9wdGlvbnNWYWxpZGF0aW9uICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoaGFzQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sob3B0aW9uc1ZhbGlkYXRpb24sIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgb3B0aW9uc1ZhbGlkYXRpb247XG4gICAgICAgIH1cblxuICAgICAgICAvLyAxNSBtaW51dGVzXG4gICAgICAgIHZhciBleHBpcmVzID0gOTAwO1xuICAgICAgICAvLyBjcmVhdGUgc2VydmljZSB0byBnZW5lcmF0ZSBhIHJlcXVlc3QgZnJvbVxuICAgICAgICB2YXIgc2VydmljZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICByZWdpb246IG9wdGlvbnMucmVnaW9uLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IG5ldyBBV1MuRW5kcG9pbnQob3B0aW9ucy5ob3N0bmFtZSArICc6JyArIG9wdGlvbnMucG9ydCksXG4gICAgICAgICAgICBwYXJhbVZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgc2lnbmF0dXJlVmVyc2lvbjogJ3Y0J1xuICAgICAgICB9O1xuICAgICAgICBpZiAob3B0aW9ucy5jcmVkZW50aWFscykge1xuICAgICAgICAgICAgc2VydmljZU9wdGlvbnMuY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzO1xuICAgICAgICB9XG4gICAgICAgIHNlcnZpY2UgPSBuZXcgQVdTLlNlcnZpY2Uoc2VydmljZU9wdGlvbnMpO1xuICAgICAgICAvLyBlbnN1cmUgdGhlIFNESyBpcyB1c2luZyBzaWd2NCBzaWduaW5nIChjb25maWcgaXMgbm90IGVub3VnaClcbiAgICAgICAgc2VydmljZS5hcGkgPSBhcGk7XG5cbiAgICAgICAgdmFyIHJlcXVlc3QgPSBzZXJ2aWNlLm1ha2VSZXF1ZXN0KCk7XG4gICAgICAgIC8vIGFkZCBsaXN0ZW5lcnMgdG8gcmVxdWVzdCB0byBwcm9wZXJseSBidWlsZCBhdXRoIHRva2VuXG4gICAgICAgIHRoaXMubW9kaWZ5UmVxdWVzdEZvckF1dGhUb2tlbihyZXF1ZXN0LCBvcHRpb25zKTtcblxuICAgICAgICBpZiAoaGFzQ2FsbGJhY2spIHtcbiAgICAgICAgICAgIHJlcXVlc3QucHJlc2lnbihleHBpcmVzLCBmdW5jdGlvbihlcnIsIHVybCkge1xuICAgICAgICAgICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gc2VsZi5jb252ZXJ0VXJsVG9BdXRoVG9rZW4odXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCB1cmwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gcmVxdWVzdC5wcmVzaWduKGV4cGlyZXMpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFVybFRvQXV0aFRva2VuKHVybCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQGFwaSBwcml2YXRlXG4gICAgICogTW9kaWZpZXMgYSByZXF1ZXN0IHRvIGFsbG93IHRoZSBwcmVzaWduZXIgdG8gZ2VuZXJhdGUgYW4gYXV0aCB0b2tlbi5cbiAgICAgKi9cbiAgICBtb2RpZnlSZXF1ZXN0Rm9yQXV0aFRva2VuOiBmdW5jdGlvbiBtb2RpZnlSZXF1ZXN0Rm9yQXV0aFRva2VuKHJlcXVlc3QsIG9wdGlvbnMpIHtcbiAgICAgICAgcmVxdWVzdC5vbignYnVpbGQnLCByZXF1ZXN0LmJ1aWxkQXNHZXQpO1xuICAgICAgICB2YXIgaHR0cFJlcXVlc3QgPSByZXF1ZXN0Lmh0dHBSZXF1ZXN0O1xuICAgICAgICBodHRwUmVxdWVzdC5ib2R5ID0gQVdTLnV0aWwucXVlcnlQYXJhbXNUb1N0cmluZyh7XG4gICAgICAgICAgICBBY3Rpb246ICdjb25uZWN0JyxcbiAgICAgICAgICAgIERCVXNlcjogb3B0aW9ucy51c2VybmFtZVxuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQGFwaSBwcml2YXRlXG4gICAgICogVmFsaWRhdGVzIHRoYXQgdGhlIG9wdGlvbnMgcGFzc2VkIGluIGNvbnRhaW4gYWxsIHRoZSBrZXlzIHdpdGggdmFsdWVzIG9mIHRoZSBjb3JyZWN0IHR5cGUgdGhhdFxuICAgICAqICAgYXJlIG5lZWRlZCB0byBnZW5lcmF0ZSBhbiBhdXRoIHRva2VuLlxuICAgICAqL1xuICAgIHZhbGlkYXRlQXV0aFRva2VuT3B0aW9uczogZnVuY3Rpb24gdmFsaWRhdGVBdXRoVG9rZW5PcHRpb25zKG9wdGlvbnMpIHtcbiAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIGFsbCBrZXlzIGluIG9wdGlvbnNcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSAnJztcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIGZvciAodmFyIGtleSBpbiByZXF1aXJlZEF1dGhUb2tlbk9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcXVpcmVkQXV0aFRva2VuT3B0aW9ucywga2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zW2tleV0gIT09IHJlcXVpcmVkQXV0aFRva2VuT3B0aW9uc1trZXldKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSArPSAnb3B0aW9uIFxcJycgKyBrZXkgKyAnXFwnIHNob3VsZCBoYXZlIGJlZW4gdHlwZSBcXCcnICsgcmVxdWlyZWRBdXRoVG9rZW5PcHRpb25zW2tleV0gKyAnXFwnLCB3YXMgXFwnJyArIHR5cGVvZiBvcHRpb25zW2tleV0gKyAnXFwnLlxcbic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2UubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgICAgICAgICAgICBjb2RlOiAnSW52YWxpZFBhcmFtZXRlcicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufSk7IiwidmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcbnZhciByZWdpb25Db25maWcgPSByZXF1aXJlKCcuL3JlZ2lvbl9jb25maWdfZGF0YS5qc29uJyk7XG5cbmZ1bmN0aW9uIGdlbmVyYXRlUmVnaW9uUHJlZml4KHJlZ2lvbikge1xuICBpZiAoIXJlZ2lvbikgcmV0dXJuIG51bGw7XG5cbiAgdmFyIHBhcnRzID0gcmVnaW9uLnNwbGl0KCctJyk7XG4gIGlmIChwYXJ0cy5sZW5ndGggPCAzKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHBhcnRzLnNsaWNlKDAsIHBhcnRzLmxlbmd0aCAtIDIpLmpvaW4oJy0nKSArICctKic7XG59XG5cbmZ1bmN0aW9uIGRlcml2ZWRLZXlzKHNlcnZpY2UpIHtcbiAgdmFyIHJlZ2lvbiA9IHNlcnZpY2UuY29uZmlnLnJlZ2lvbjtcbiAgdmFyIHJlZ2lvblByZWZpeCA9IGdlbmVyYXRlUmVnaW9uUHJlZml4KHJlZ2lvbik7XG4gIHZhciBlbmRwb2ludFByZWZpeCA9IHNlcnZpY2UuYXBpLmVuZHBvaW50UHJlZml4O1xuXG4gIHJldHVybiBbXG4gICAgW3JlZ2lvbiwgZW5kcG9pbnRQcmVmaXhdLFxuICAgIFtyZWdpb25QcmVmaXgsIGVuZHBvaW50UHJlZml4XSxcbiAgICBbcmVnaW9uLCAnKiddLFxuICAgIFtyZWdpb25QcmVmaXgsICcqJ10sXG4gICAgWycqJywgZW5kcG9pbnRQcmVmaXhdLFxuICAgIFsnKicsICcqJ11cbiAgXS5tYXAoZnVuY3Rpb24oaXRlbSkge1xuICAgIHJldHVybiBpdGVtWzBdICYmIGl0ZW1bMV0gPyBpdGVtLmpvaW4oJy8nKSA6IG51bGw7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhcHBseUNvbmZpZyhzZXJ2aWNlLCBjb25maWcpIHtcbiAgdXRpbC5lYWNoKGNvbmZpZywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgIGlmIChrZXkgPT09ICdnbG9iYWxFbmRwb2ludCcpIHJldHVybjtcbiAgICBpZiAoc2VydmljZS5jb25maWdba2V5XSA9PT0gdW5kZWZpbmVkIHx8IHNlcnZpY2UuY29uZmlnW2tleV0gPT09IG51bGwpIHtcbiAgICAgIHNlcnZpY2UuY29uZmlnW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjb25maWd1cmVFbmRwb2ludChzZXJ2aWNlKSB7XG4gIHZhciBrZXlzID0gZGVyaXZlZEtleXMoc2VydmljZSk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgIGlmICgha2V5KSBjb250aW51ZTtcblxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVnaW9uQ29uZmlnLnJ1bGVzLCBrZXkpKSB7XG4gICAgICB2YXIgY29uZmlnID0gcmVnaW9uQ29uZmlnLnJ1bGVzW2tleV07XG4gICAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uZmlnID0gcmVnaW9uQ29uZmlnLnBhdHRlcm5zW2NvbmZpZ107XG4gICAgICB9XG5cbiAgICAgIC8vIHNldCBkdWFsc3RhY2sgZW5kcG9pbnRcbiAgICAgIGlmIChzZXJ2aWNlLmNvbmZpZy51c2VEdWFsc3RhY2sgJiYgdXRpbC5pc0R1YWxzdGFja0F2YWlsYWJsZShzZXJ2aWNlKSkge1xuICAgICAgICBjb25maWcgPSB1dGlsLmNvcHkoY29uZmlnKTtcbiAgICAgICAgY29uZmlnLmVuZHBvaW50ID0gJ3tzZXJ2aWNlfS5kdWFsc3RhY2sue3JlZ2lvbn0uYW1hem9uYXdzLmNvbSc7XG4gICAgICB9XG5cbiAgICAgIC8vIHNldCBnbG9iYWwgZW5kcG9pbnRcbiAgICAgIHNlcnZpY2UuaXNHbG9iYWxFbmRwb2ludCA9ICEhY29uZmlnLmdsb2JhbEVuZHBvaW50O1xuXG4gICAgICAvLyBzaWduYXR1cmUgdmVyc2lvblxuICAgICAgaWYgKCFjb25maWcuc2lnbmF0dXJlVmVyc2lvbikgY29uZmlnLnNpZ25hdHVyZVZlcnNpb24gPSAndjQnO1xuXG4gICAgICAvLyBtZXJnZSBjb25maWdcbiAgICAgIGFwcGx5Q29uZmlnKHNlcnZpY2UsIGNvbmZpZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gY29uZmlndXJlRW5kcG9pbnQ7XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicnVsZXNcIjoge1xuICAgIFwiKi8qXCI6IHtcbiAgICAgIFwiZW5kcG9pbnRcIjogXCJ7c2VydmljZX0ue3JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiXG4gICAgfSxcbiAgICBcImNuLSovKlwiOiB7XG4gICAgICBcImVuZHBvaW50XCI6IFwie3NlcnZpY2V9LntyZWdpb259LmFtYXpvbmF3cy5jb20uY25cIlxuICAgIH0sXG4gICAgXCIqL2J1ZGdldHNcIjogXCJnbG9iYWxTU0xcIixcbiAgICBcIiovY2xvdWRmcm9udFwiOiBcImdsb2JhbFNTTFwiLFxuICAgIFwiKi9pYW1cIjogXCJnbG9iYWxTU0xcIixcbiAgICBcIiovc3RzXCI6IFwiZ2xvYmFsU1NMXCIsXG4gICAgXCIqL2ltcG9ydGV4cG9ydFwiOiB7XG4gICAgICBcImVuZHBvaW50XCI6IFwie3NlcnZpY2V9LmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInYyXCIsXG4gICAgICBcImdsb2JhbEVuZHBvaW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiKi9yb3V0ZTUzXCI6IHtcbiAgICAgIFwiZW5kcG9pbnRcIjogXCJodHRwczovL3tzZXJ2aWNlfS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2M2h0dHBzXCIsXG4gICAgICBcImdsb2JhbEVuZHBvaW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiKi93YWZcIjogXCJnbG9iYWxTU0xcIixcbiAgICBcInVzLWdvdi0qL2lhbVwiOiBcImdsb2JhbEdvdkNsb3VkXCIsXG4gICAgXCJ1cy1nb3YtKi9zdHNcIjoge1xuICAgICAgXCJlbmRwb2ludFwiOiBcIntzZXJ2aWNlfS57cmVnaW9ufS5hbWF6b25hd3MuY29tXCJcbiAgICB9LFxuICAgIFwidXMtZ292LXdlc3QtMS9zM1wiOiBcInMzc2lnbmF0dXJlXCIsXG4gICAgXCJ1cy13ZXN0LTEvczNcIjogXCJzM3NpZ25hdHVyZVwiLFxuICAgIFwidXMtd2VzdC0yL3MzXCI6IFwiczNzaWduYXR1cmVcIixcbiAgICBcImV1LXdlc3QtMS9zM1wiOiBcInMzc2lnbmF0dXJlXCIsXG4gICAgXCJhcC1zb3V0aGVhc3QtMS9zM1wiOiBcInMzc2lnbmF0dXJlXCIsXG4gICAgXCJhcC1zb3V0aGVhc3QtMi9zM1wiOiBcInMzc2lnbmF0dXJlXCIsXG4gICAgXCJhcC1ub3J0aGVhc3QtMS9zM1wiOiBcInMzc2lnbmF0dXJlXCIsXG4gICAgXCJzYS1lYXN0LTEvczNcIjogXCJzM3NpZ25hdHVyZVwiLFxuICAgIFwidXMtZWFzdC0xL3MzXCI6IHtcbiAgICAgIFwiZW5kcG9pbnRcIjogXCJ7c2VydmljZX0uYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwiczNcIlxuICAgIH0sXG4gICAgXCJ1cy1lYXN0LTEvc2RiXCI6IHtcbiAgICAgIFwiZW5kcG9pbnRcIjogXCJ7c2VydmljZX0uYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjJcIlxuICAgIH0sXG4gICAgXCIqL3NkYlwiOiB7XG4gICAgICBcImVuZHBvaW50XCI6IFwie3NlcnZpY2V9LntyZWdpb259LmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInYyXCJcbiAgICB9XG4gIH0sXG5cbiAgXCJwYXR0ZXJuc1wiOiB7XG4gICAgXCJnbG9iYWxTU0xcIjoge1xuICAgICAgXCJlbmRwb2ludFwiOiBcImh0dHBzOi8ve3NlcnZpY2V9LmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwiZ2xvYmFsRW5kcG9pbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJnbG9iYWxHb3ZDbG91ZFwiOiB7XG4gICAgICBcImVuZHBvaW50XCI6IFwie3NlcnZpY2V9LnVzLWdvdi5hbWF6b25hd3MuY29tXCJcbiAgICB9LFxuICAgIFwiczNzaWduYXR1cmVcIjoge1xuICAgICAgXCJlbmRwb2ludFwiOiBcIntzZXJ2aWNlfS57cmVnaW9ufS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJzM1wiXG4gICAgfVxuICB9XG59XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi9jb3JlJyk7XG52YXIgQWNjZXB0b3JTdGF0ZU1hY2hpbmUgPSByZXF1aXJlKCcuL3N0YXRlX21hY2hpbmUnKTtcbnZhciBpbmhlcml0ID0gQVdTLnV0aWwuaW5oZXJpdDtcbnZhciBkb21haW4gPSBBV1MudXRpbC5kb21haW47XG52YXIgam1lc3BhdGggPSByZXF1aXJlKCdqbWVzcGF0aCcpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgaGFyZEVycm9yU3RhdGVzID0ge3N1Y2Nlc3M6IDEsIGVycm9yOiAxLCBjb21wbGV0ZTogMX07XG5cbmZ1bmN0aW9uIGlzVGVybWluYWxTdGF0ZShtYWNoaW5lKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGFyZEVycm9yU3RhdGVzLCBtYWNoaW5lLl9hc20uY3VycmVudFN0YXRlKTtcbn1cblxudmFyIGZzbSA9IG5ldyBBY2NlcHRvclN0YXRlTWFjaGluZSgpO1xuZnNtLnNldHVwU3RhdGVzID0gZnVuY3Rpb24oKSB7XG4gIHZhciB0cmFuc2l0aW9uID0gZnVuY3Rpb24oXywgZG9uZSkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLl9oYWx0SGFuZGxlcnNPbkVycm9yID0gZmFsc2U7XG5cbiAgICBzZWxmLmVtaXQoc2VsZi5fYXNtLmN1cnJlbnRTdGF0ZSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGlmIChpc1Rlcm1pbmFsU3RhdGUoc2VsZikpIHtcbiAgICAgICAgICBpZiAoZG9tYWluICYmIHNlbGYuZG9tYWluIGluc3RhbmNlb2YgZG9tYWluLkRvbWFpbikge1xuICAgICAgICAgICAgZXJyLmRvbWFpbkVtaXR0ZXIgPSBzZWxmO1xuICAgICAgICAgICAgZXJyLmRvbWFpbiA9IHNlbGYuZG9tYWluO1xuICAgICAgICAgICAgZXJyLmRvbWFpblRocm93biA9IGZhbHNlO1xuICAgICAgICAgICAgc2VsZi5kb21haW4uZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGYucmVzcG9uc2UuZXJyb3IgPSBlcnI7XG4gICAgICAgICAgZG9uZShlcnIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb25lKHNlbGYucmVzcG9uc2UuZXJyb3IpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIH07XG5cbiAgdGhpcy5hZGRTdGF0ZSgndmFsaWRhdGUnLCAnYnVpbGQnLCAnZXJyb3InLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnYnVpbGQnLCAnYWZ0ZXJCdWlsZCcsICdyZXN0YXJ0JywgdHJhbnNpdGlvbik7XG4gIHRoaXMuYWRkU3RhdGUoJ2FmdGVyQnVpbGQnLCAnc2lnbicsICdyZXN0YXJ0JywgdHJhbnNpdGlvbik7XG4gIHRoaXMuYWRkU3RhdGUoJ3NpZ24nLCAnc2VuZCcsICdyZXRyeScsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCdyZXRyeScsICdhZnRlclJldHJ5JywgJ2FmdGVyUmV0cnknLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnYWZ0ZXJSZXRyeScsICdzaWduJywgJ2Vycm9yJywgdHJhbnNpdGlvbik7XG4gIHRoaXMuYWRkU3RhdGUoJ3NlbmQnLCAndmFsaWRhdGVSZXNwb25zZScsICdyZXRyeScsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCd2YWxpZGF0ZVJlc3BvbnNlJywgJ2V4dHJhY3REYXRhJywgJ2V4dHJhY3RFcnJvcicsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCdleHRyYWN0RXJyb3InLCAnZXh0cmFjdERhdGEnLCAncmV0cnknLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnZXh0cmFjdERhdGEnLCAnc3VjY2VzcycsICdyZXRyeScsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCdyZXN0YXJ0JywgJ2J1aWxkJywgJ2Vycm9yJywgdHJhbnNpdGlvbik7XG4gIHRoaXMuYWRkU3RhdGUoJ3N1Y2Nlc3MnLCAnY29tcGxldGUnLCAnY29tcGxldGUnLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnZXJyb3InLCAnY29tcGxldGUnLCAnY29tcGxldGUnLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnY29tcGxldGUnLCBudWxsLCBudWxsLCB0cmFuc2l0aW9uKTtcbn07XG5mc20uc2V0dXBTdGF0ZXMoKTtcblxuLyoqXG4gKiAjIyBBc3luY2hyb25vdXMgUmVxdWVzdHNcbiAqXG4gKiBBbGwgcmVxdWVzdHMgbWFkZSB0aHJvdWdoIHRoZSBTREsgYXJlIGFzeW5jaHJvbm91cyBhbmQgdXNlIGFcbiAqIGNhbGxiYWNrIGludGVyZmFjZS4gRWFjaCBzZXJ2aWNlIG1ldGhvZCB0aGF0IGtpY2tzIG9mZiBhIHJlcXVlc3RcbiAqIHJldHVybnMgYW4gYEFXUy5SZXF1ZXN0YCBvYmplY3QgdGhhdCB5b3UgY2FuIHVzZSB0byByZWdpc3RlclxuICogY2FsbGJhY2tzLlxuICpcbiAqIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHNlcnZpY2UgbWV0aG9kIHJldHVybnMgdGhlIHJlcXVlc3RcbiAqIG9iamVjdCBhcyBcInJlcXVlc3RcIiwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVnaXN0ZXIgY2FsbGJhY2tzOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIC8vIHJlcXVlc3QgaXMgYW4gQVdTLlJlcXVlc3Qgb2JqZWN0XG4gKiB2YXIgcmVxdWVzdCA9IGVjMi5kZXNjcmliZUluc3RhbmNlcygpO1xuICpcbiAqIC8vIHJlZ2lzdGVyIGNhbGxiYWNrcyBvbiByZXF1ZXN0IHRvIHJldHJpZXZlIHJlc3BvbnNlIGRhdGFcbiAqIHJlcXVlc3Qub24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbihyZXNwb25zZSkge1xuICogICBjb25zb2xlLmxvZyhyZXNwb25zZS5kYXRhKTtcbiAqIH0pO1xuICogYGBgXG4gKlxuICogV2hlbiBhIHJlcXVlc3QgaXMgcmVhZHkgdG8gYmUgc2VudCwgdGhlIHtzZW5kfSBtZXRob2Qgc2hvdWxkXG4gKiBiZSBjYWxsZWQ6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogcmVxdWVzdC5zZW5kKCk7XG4gKiBgYGBcbiAqXG4gKiBTaW5jZSByZWdpc3RlcmVkIGNhbGxiYWNrcyBtYXkgb3IgbWF5IG5vdCBiZSBpZGVtcG90ZW50LCByZXF1ZXN0cyBzaG91bGQgb25seVxuICogYmUgc2VudCBvbmNlLiBUbyBwZXJmb3JtIHRoZSBzYW1lIG9wZXJhdGlvbiBtdWx0aXBsZSB0aW1lcywgeW91IHdpbGwgbmVlZCB0b1xuICogY3JlYXRlIG11bHRpcGxlIHJlcXVlc3Qgb2JqZWN0cywgZWFjaCB3aXRoIGl0cyBvd24gcmVnaXN0ZXJlZCBjYWxsYmFja3MuXG4gKlxuICogIyMgUmVtb3ZpbmcgRGVmYXVsdCBMaXN0ZW5lcnMgZm9yIEV2ZW50c1xuICpcbiAqIFJlcXVlc3Qgb2JqZWN0cyBhcmUgYnVpbHQgd2l0aCBkZWZhdWx0IGxpc3RlbmVycyBmb3IgdGhlIHZhcmlvdXMgZXZlbnRzLFxuICogZGVwZW5kaW5nIG9uIHRoZSBzZXJ2aWNlIHR5cGUuIEluIHNvbWUgY2FzZXMsIHlvdSBtYXkgd2FudCB0byByZW1vdmVcbiAqIHNvbWUgYnVpbHQtaW4gbGlzdGVuZXJzIHRvIGN1c3RvbWl6ZSBiZWhhdmlvdXIuIERvaW5nIHRoaXMgcmVxdWlyZXNcbiAqIGFjY2VzcyB0byB0aGUgYnVpbHQtaW4gbGlzdGVuZXIgZnVuY3Rpb25zLCB3aGljaCBhcmUgZXhwb3NlZCB0aHJvdWdoXG4gKiB0aGUge0FXUy5FdmVudExpc3RlbmVycy5Db3JlfSBuYW1lc3BhY2UuIEZvciBpbnN0YW5jZSwgeW91IG1heVxuICogd2FudCB0byBjdXN0b21pemUgdGhlIEhUVFAgaGFuZGxlciB1c2VkIHdoZW4gc2VuZGluZyBhIHJlcXVlc3QuIEluIHRoaXNcbiAqIGNhc2UsIHlvdSBjYW4gcmVtb3ZlIHRoZSBidWlsdC1pbiBsaXN0ZW5lciBhc3NvY2lhdGVkIHdpdGggdGhlICdzZW5kJ1xuICogZXZlbnQsIHRoZSB7QVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuU0VORH0gbGlzdGVuZXIgYW5kIGFkZCB5b3VyIG93bi5cbiAqXG4gKiAjIyBNdWx0aXBsZSBDYWxsYmFja3MgYW5kIENoYWluaW5nXG4gKlxuICogWW91IGNhbiByZWdpc3RlciBtdWx0aXBsZSBjYWxsYmFja3Mgb24gYW55IHJlcXVlc3Qgb2JqZWN0LiBUaGVcbiAqIGNhbGxiYWNrcyBjYW4gYmUgcmVnaXN0ZXJlZCBmb3IgZGlmZmVyZW50IGV2ZW50cywgb3IgYWxsIGZvciB0aGVcbiAqIHNhbWUgZXZlbnQuIEluIGFkZGl0aW9uLCB5b3UgY2FuIGNoYWluIGNhbGxiYWNrIHJlZ2lzdHJhdGlvbiwgZm9yXG4gKiBleGFtcGxlOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIHJlcXVlc3QuXG4gKiAgIG9uKCdzdWNjZXNzJywgZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAqICAgICBjb25zb2xlLmxvZyhcIlN1Y2Nlc3MhXCIpO1xuICogICB9KS5cbiAqICAgb24oJ2Vycm9yJywgZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAqICAgICBjb25zb2xlLmxvZyhcIkVycm9yIVwiKTtcbiAqICAgfSkuXG4gKiAgIG9uKCdjb21wbGV0ZScsIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gKiAgICAgY29uc29sZS5sb2coXCJBbHdheXMhXCIpO1xuICogICB9KS5cbiAqICAgc2VuZCgpO1xuICogYGBgXG4gKlxuICogVGhlIGFib3ZlIGV4YW1wbGUgd2lsbCBwcmludCBlaXRoZXIgXCJTdWNjZXNzISBBbHdheXMhXCIsIG9yIFwiRXJyb3IhIEFsd2F5cyFcIixcbiAqIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSByZXF1ZXN0IHN1Y2NlZWRlZCBvciBub3QuXG4gKlxuICogQCFhdHRyaWJ1dGUgaHR0cFJlcXVlc3RcbiAqICAgQHJlYWRvbmx5XG4gKiAgIEAhZ3JvdXAgSFRUUCBQcm9wZXJ0aWVzXG4gKiAgIEByZXR1cm4gW0FXUy5IdHRwUmVxdWVzdF0gdGhlIHJhdyBIVFRQIHJlcXVlc3Qgb2JqZWN0XG4gKiAgICAgY29udGFpbmluZyByZXF1ZXN0IGhlYWRlcnMgYW5kIGJvZHkgaW5mb3JtYXRpb25cbiAqICAgICBzZW50IGJ5IHRoZSBzZXJ2aWNlLlxuICpcbiAqIEAhYXR0cmlidXRlIHN0YXJ0VGltZVxuICogICBAcmVhZG9ubHlcbiAqICAgQCFncm91cCBPcGVyYXRpb24gUHJvcGVydGllc1xuICogICBAcmV0dXJuIFtEYXRlXSB0aGUgdGltZSB0aGF0IHRoZSByZXF1ZXN0IHN0YXJ0ZWRcbiAqXG4gKiBAIWdyb3VwIFJlcXVlc3QgQnVpbGRpbmcgRXZlbnRzXG4gKlxuICogQCFldmVudCB2YWxpZGF0ZShyZXF1ZXN0KVxuICogICBUcmlnZ2VyZWQgd2hlbiBhIHJlcXVlc3QgaXMgYmVpbmcgdmFsaWRhdGVkLiBMaXN0ZW5lcnNcbiAqICAgc2hvdWxkIHRocm93IGFuIGVycm9yIGlmIHRoZSByZXF1ZXN0IHNob3VsZCBub3QgYmUgc2VudC5cbiAqICAgQHBhcmFtIHJlcXVlc3QgW1JlcXVlc3RdIHRoZSByZXF1ZXN0IG9iamVjdCBiZWluZyBzZW50XG4gKiAgIEBzZWUgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuVkFMSURBVEVfQ1JFREVOVElBTFNcbiAqICAgQHNlZSBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9SRUdJT05cbiAqICAgQGV4YW1wbGUgRW5zdXJpbmcgdGhhdCBhIGNlcnRhaW4gcGFyYW1ldGVyIGlzIHNldCBiZWZvcmUgc2VuZGluZyBhIHJlcXVlc3RcbiAqICAgICB2YXIgcmVxID0gczMucHV0T2JqZWN0KHBhcmFtcyk7XG4gKiAgICAgcmVxLm9uKCd2YWxpZGF0ZScsIGZ1bmN0aW9uKCkge1xuICogICAgICAgaWYgKCFyZXEucGFyYW1zLkJvZHkubWF0Y2goL15IZWxsb1xccy8pKSB7XG4gKiAgICAgICAgIHRocm93IG5ldyBFcnJvcignQm9keSBtdXN0IHN0YXJ0IHdpdGggXCJIZWxsbyBcIicpO1xuICogICAgICAgfVxuICogICAgIH0pO1xuICogICAgIHJlcS5zZW5kKGZ1bmN0aW9uKGVyciwgZGF0YSkgeyAuLi4gfSk7XG4gKlxuICogQCFldmVudCBidWlsZChyZXF1ZXN0KVxuICogICBUcmlnZ2VyZWQgd2hlbiB0aGUgcmVxdWVzdCBwYXlsb2FkIGlzIGJlaW5nIGJ1aWx0LiBMaXN0ZW5lcnNcbiAqICAgc2hvdWxkIGZpbGwgdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiB0byBzZW5kIHRoZSByZXF1ZXN0XG4gKiAgIG92ZXIgSFRUUC5cbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+dmFsaWRhdGUpXG4gKiAgIEBleGFtcGxlIEFkZCBhIGN1c3RvbSBIVFRQIGhlYWRlciB0byBhIHJlcXVlc3RcbiAqICAgICB2YXIgcmVxID0gczMucHV0T2JqZWN0KHBhcmFtcyk7XG4gKiAgICAgcmVxLm9uKCdidWlsZCcsIGZ1bmN0aW9uKCkge1xuICogICAgICAgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0N1c3RvbS1IZWFkZXInXSA9ICd2YWx1ZSc7XG4gKiAgICAgfSk7XG4gKiAgICAgcmVxLnNlbmQoZnVuY3Rpb24oZXJyLCBkYXRhKSB7IC4uLiB9KTtcbiAqXG4gKiBAIWV2ZW50IHNpZ24ocmVxdWVzdClcbiAqICAgVHJpZ2dlcmVkIHdoZW4gdGhlIHJlcXVlc3QgaXMgYmVpbmcgc2lnbmVkLiBMaXN0ZW5lcnMgc2hvdWxkXG4gKiAgIGFkZCB0aGUgY29ycmVjdCBhdXRoZW50aWNhdGlvbiBoZWFkZXJzIGFuZC9vciBhZGp1c3QgdGhlIGJvZHksXG4gKiAgIGRlcGVuZGluZyBvbiB0aGUgYXV0aGVudGljYXRpb24gbWVjaGFuaXNtIGJlaW5nIHVzZWQuXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnZhbGlkYXRlKVxuICpcbiAqIEAhZ3JvdXAgUmVxdWVzdCBTZW5kaW5nIEV2ZW50c1xuICpcbiAqIEAhZXZlbnQgc2VuZChyZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW4gdGhlIHJlcXVlc3QgaXMgcmVhZHkgdG8gYmUgc2VudC4gTGlzdGVuZXJzXG4gKiAgIHNob3VsZCBjYWxsIHRoZSB1bmRlcmx5aW5nIHRyYW5zcG9ydCBsYXllciB0byBpbml0aWF0ZVxuICogICB0aGUgc2VuZGluZyBvZiB0aGUgcmVxdWVzdC5cbiAqICAgQHBhcmFtIHJlc3BvbnNlIFtSZXNwb25zZV0gdGhlIHJlc3BvbnNlIG9iamVjdFxuICogICBAY29udGV4dCBbUmVxdWVzdF0gdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgd2FzIHNlbnRcbiAqICAgQHNlZSBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5TRU5EXG4gKlxuICogQCFldmVudCByZXRyeShyZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW4gYSByZXF1ZXN0IGZhaWxlZCBhbmQgbWlnaHQgbmVlZCB0byBiZSByZXRyaWVkIG9yIHJlZGlyZWN0ZWQuXG4gKiAgIElmIHRoZSByZXNwb25zZSBpcyByZXRyeWFibGUsIHRoZSBsaXN0ZW5lciBzaG91bGQgc2V0IHRoZVxuICogICBgcmVzcG9uc2UuZXJyb3IucmV0cnlhYmxlYCBwcm9wZXJ0eSB0byBgdHJ1ZWAsIGFuZCBvcHRpb25hbGx5IHNldFxuICogICBgcmVzcG9uc2UuZXJyb3IucmV0cnlEZWxheWAgdG8gdGhlIG1pbGxpc2Vjb25kIGRlbGF5IGZvciB0aGUgbmV4dCBhdHRlbXB0LlxuICogICBJbiB0aGUgY2FzZSBvZiBhIHJlZGlyZWN0LCBgcmVzcG9uc2UuZXJyb3IucmVkaXJlY3RgIHNob3VsZCBiZSBzZXQgdG9cbiAqICAgYHRydWVgIHdpdGggYHJldHJ5RGVsYXlgIHNldCB0byBhbiBvcHRpb25hbCBkZWxheSBvbiB0aGUgbmV4dCByZXF1ZXN0LlxuICpcbiAqICAgSWYgYSBsaXN0ZW5lciBkZWNpZGVzIHRoYXQgYSByZXF1ZXN0IHNob3VsZCBub3QgYmUgcmV0cmllZCxcbiAqICAgaXQgc2hvdWxkIHNldCBib3RoIGByZXRyeWFibGVgIGFuZCBgcmVkaXJlY3RgIHRvIGZhbHNlLlxuICpcbiAqICAgTm90ZSB0aGF0IGEgcmV0cnlhYmxlIGVycm9yIHdpbGwgYmUgcmV0cmllZCBhdCBtb3N0XG4gKiAgIHtBV1MuQ29uZmlnLm1heFJldHJpZXN9IHRpbWVzIChiYXNlZCBvbiB0aGUgc2VydmljZSBvYmplY3QncyBjb25maWcpLlxuICogICBTaW1pbGFybHksIGEgcmVxdWVzdCB0aGF0IGlzIHJlZGlyZWN0ZWQgd2lsbCBvbmx5IHJlZGlyZWN0IGF0IG1vc3RcbiAqICAge0FXUy5Db25maWcubWF4UmVkaXJlY3RzfSB0aW1lcy5cbiAqXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQGV4YW1wbGUgQWRkaW5nIGEgY3VzdG9tIHJldHJ5IGZvciBhIDQwNCByZXNwb25zZVxuICogICAgIHJlcXVlc3Qub24oJ3JldHJ5JywgZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAqICAgICAgIC8vIHRoaXMgcmVzb3VyY2UgaXMgbm90IHlldCBhdmFpbGFibGUsIHdhaXQgMTAgc2Vjb25kcyB0byBnZXQgaXQgYWdhaW5cbiAqICAgICAgIGlmIChyZXNwb25zZS5odHRwUmVzcG9uc2Uuc3RhdHVzQ29kZSA9PT0gNDA0ICYmIHJlc3BvbnNlLmVycm9yKSB7XG4gKiAgICAgICAgIHJlc3BvbnNlLmVycm9yLnJldHJ5YWJsZSA9IHRydWU7ICAgLy8gcmV0cnkgdGhpcyBlcnJvclxuICogICAgICAgICByZXNwb25zZS5lcnJvci5yZXRyeURlbGF5ID0gMTAwMDA7IC8vIHdhaXQgMTAgc2Vjb25kc1xuICogICAgICAgfVxuICogICAgIH0pO1xuICpcbiAqIEAhZ3JvdXAgRGF0YSBQYXJzaW5nIEV2ZW50c1xuICpcbiAqIEAhZXZlbnQgZXh0cmFjdEVycm9yKHJlc3BvbnNlKVxuICogICBUcmlnZ2VyZWQgb24gYWxsIG5vbi0yeHggcmVxdWVzdHMgc28gdGhhdCBsaXN0ZW5lcnMgY2FuIGV4dHJhY3RcbiAqICAgZXJyb3IgZGV0YWlscyBmcm9tIHRoZSByZXNwb25zZSBib2R5LiBMaXN0ZW5lcnMgdG8gdGhpcyBldmVudFxuICogICBzaG91bGQgc2V0IHRoZSBgcmVzcG9uc2UuZXJyb3JgIHByb3BlcnR5LlxuICogICBAcGFyYW0gKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAY29udGV4dCAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKlxuICogQCFldmVudCBleHRyYWN0RGF0YShyZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIGluIHN1Y2Nlc3NmdWwgcmVxdWVzdHMgdG8gYWxsb3cgbGlzdGVuZXJzIHRvXG4gKiAgIGRlLXNlcmlhbGl6ZSB0aGUgcmVzcG9uc2UgYm9keSBpbnRvIGByZXNwb25zZS5kYXRhYC5cbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQGNvbnRleHQgKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICpcbiAqIEAhZ3JvdXAgQ29tcGxldGlvbiBFdmVudHNcbiAqXG4gKiBAIWV2ZW50IHN1Y2Nlc3MocmVzcG9uc2UpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuXG4gKiAgIGByZXNwb25zZS5kYXRhYCB3aWxsIGNvbnRhaW4gdGhlIHJlc3BvbnNlIGRhdGEgYW5kXG4gKiAgIGByZXNwb25zZS5lcnJvcmAgd2lsbCBiZSBudWxsLlxuICogICBAcGFyYW0gKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAY29udGV4dCAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKlxuICogQCFldmVudCBlcnJvcihlcnJvciwgcmVzcG9uc2UpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIGFuIGVycm9yIG9jY3VycyBhdCBhbnkgcG9pbnQgZHVyaW5nIHRoZVxuICogICByZXF1ZXN0LiBgcmVzcG9uc2UuZXJyb3JgIHdpbGwgY29udGFpbiBkZXRhaWxzIGFib3V0IHRoZSBlcnJvclxuICogICB0aGF0IG9jY3VycmVkLiBgcmVzcG9uc2UuZGF0YWAgd2lsbCBiZSBudWxsLlxuICogICBAcGFyYW0gZXJyb3IgW0Vycm9yXSB0aGUgZXJyb3Igb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dFxuICogICAgIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkLlxuICogICBAcGFyYW0gKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAY29udGV4dCAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKlxuICogQCFldmVudCBjb21wbGV0ZShyZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW5ldmVyIGEgcmVxdWVzdCBjeWNsZSBjb21wbGV0ZXMuIGByZXNwb25zZS5lcnJvcmBcbiAqICAgc2hvdWxkIGJlIGNoZWNrZWQsIHNpbmNlIHRoZSByZXF1ZXN0IG1heSBoYXZlIGZhaWxlZC5cbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQGNvbnRleHQgKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICpcbiAqIEAhZ3JvdXAgSFRUUCBFdmVudHNcbiAqXG4gKiBAIWV2ZW50IGh0dHBIZWFkZXJzKHN0YXR1c0NvZGUsIGhlYWRlcnMsIHJlc3BvbnNlLCBzdGF0dXNNZXNzYWdlKVxuICogICBUcmlnZ2VyZWQgd2hlbiBoZWFkZXJzIGFyZSBzZW50IGJ5IHRoZSByZW1vdGUgc2VydmVyXG4gKiAgIEBwYXJhbSBzdGF0dXNDb2RlIFtJbnRlZ2VyXSB0aGUgSFRUUCByZXNwb25zZSBjb2RlXG4gKiAgIEBwYXJhbSBoZWFkZXJzIFttYXA8U3RyaW5nLFN0cmluZz5dIHRoZSByZXNwb25zZSBoZWFkZXJzXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBwYXJhbSBzdGF0dXNNZXNzYWdlIFtTdHJpbmddIEEgc3RhdHVzIG1lc3NhZ2UgY29ycmVzcG9uZGluZyB0byB0aGUgSFRUUFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSBjb2RlXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqXG4gKiBAIWV2ZW50IGh0dHBEYXRhKGNodW5rLCByZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW4gZGF0YSBpcyBzZW50IGJ5IHRoZSByZW1vdGUgc2VydmVyXG4gKiAgIEBwYXJhbSBjaHVuayBbQnVmZmVyXSB0aGUgYnVmZmVyIGRhdGEgY29udGFpbmluZyB0aGUgbmV4dCBkYXRhIGNodW5rXG4gKiAgICAgZnJvbSB0aGUgc2VydmVyXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQHNlZSBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5IVFRQX0RBVEFcbiAqXG4gKiBAIWV2ZW50IGh0dHBVcGxvYWRQcm9ncmVzcyhwcm9ncmVzcywgcmVzcG9uc2UpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIHRoZSBIVFRQIHJlcXVlc3QgaGFzIHVwbG9hZGVkIG1vcmUgZGF0YVxuICogICBAcGFyYW0gcHJvZ3Jlc3MgW21hcF0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGBsb2FkZWRgIGFuZCBgdG90YWxgIGJ5dGVzXG4gKiAgICAgb2YgdGhlIHJlcXVlc3QuXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQG5vdGUgVGhpcyBldmVudCB3aWxsIG5vdCBiZSBlbWl0dGVkIGluIE5vZGUuanMgMC44LnguXG4gKlxuICogQCFldmVudCBodHRwRG93bmxvYWRQcm9ncmVzcyhwcm9ncmVzcywgcmVzcG9uc2UpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIHRoZSBIVFRQIHJlcXVlc3QgaGFzIGRvd25sb2FkZWQgbW9yZSBkYXRhXG4gKiAgIEBwYXJhbSBwcm9ncmVzcyBbbWFwXSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYGxvYWRlZGAgYW5kIGB0b3RhbGAgYnl0ZXNcbiAqICAgICBvZiB0aGUgcmVxdWVzdC5cbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQGNvbnRleHQgKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAbm90ZSBUaGlzIGV2ZW50IHdpbGwgbm90IGJlIGVtaXR0ZWQgaW4gTm9kZS5qcyAwLjgueC5cbiAqXG4gKiBAIWV2ZW50IGh0dHBFcnJvcihlcnJvciwgcmVzcG9uc2UpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIHRoZSBIVFRQIHJlcXVlc3QgZmFpbGVkXG4gKiAgIEBwYXJhbSBlcnJvciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgdGhhdCB3YXMgdGhyb3duXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqXG4gKiBAIWV2ZW50IGh0dHBEb25lKHJlc3BvbnNlKVxuICogICBUcmlnZ2VyZWQgd2hlbiB0aGUgc2VydmVyIGlzIGZpbmlzaGVkIHNlbmRpbmcgZGF0YVxuICogICBAcGFyYW0gKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAY29udGV4dCAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKlxuICogQHNlZSBBV1MuUmVzcG9uc2VcbiAqL1xuQVdTLlJlcXVlc3QgPSBpbmhlcml0KHtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHJlcXVlc3QgZm9yIGFuIG9wZXJhdGlvbiBvbiBhIGdpdmVuIHNlcnZpY2Ugd2l0aFxuICAgKiBhIHNldCBvZiBpbnB1dCBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gc2VydmljZSBbQVdTLlNlcnZpY2VdIHRoZSBzZXJ2aWNlIHRvIHBlcmZvcm0gdGhlIG9wZXJhdGlvbiBvblxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIFtTdHJpbmddIHRoZSBvcGVyYXRpb24gdG8gcGVyZm9ybSBvbiB0aGUgc2VydmljZVxuICAgKiBAcGFyYW0gcGFyYW1zIFtPYmplY3RdIHBhcmFtZXRlcnMgdG8gc2VuZCB0byB0aGUgb3BlcmF0aW9uLlxuICAgKiAgIFNlZSB0aGUgb3BlcmF0aW9uJ3MgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZvcm1hdCBvZiB0aGVcbiAgICogICBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIFJlcXVlc3Qoc2VydmljZSwgb3BlcmF0aW9uLCBwYXJhbXMpIHtcbiAgICB2YXIgZW5kcG9pbnQgPSBzZXJ2aWNlLmVuZHBvaW50O1xuICAgIHZhciByZWdpb24gPSBzZXJ2aWNlLmNvbmZpZy5yZWdpb247XG4gICAgdmFyIGN1c3RvbVVzZXJBZ2VudCA9IHNlcnZpY2UuY29uZmlnLmN1c3RvbVVzZXJBZ2VudDtcblxuICAgIC8vIGdsb2JhbCBlbmRwb2ludHMgc2lnbiBhcyB1cy1lYXN0LTFcbiAgICBpZiAoc2VydmljZS5pc0dsb2JhbEVuZHBvaW50KSByZWdpb24gPSAndXMtZWFzdC0xJztcblxuICAgIHRoaXMuZG9tYWluID0gZG9tYWluICYmIGRvbWFpbi5hY3RpdmU7XG4gICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTtcbiAgICB0aGlzLm9wZXJhdGlvbiA9IG9wZXJhdGlvbjtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcbiAgICB0aGlzLmh0dHBSZXF1ZXN0ID0gbmV3IEFXUy5IdHRwUmVxdWVzdChlbmRwb2ludCwgcmVnaW9uKTtcbiAgICB0aGlzLmh0dHBSZXF1ZXN0LmFwcGVuZFRvVXNlckFnZW50KGN1c3RvbVVzZXJBZ2VudCk7XG4gICAgdGhpcy5zdGFydFRpbWUgPSBzZXJ2aWNlLmdldFNrZXdDb3JyZWN0ZWREYXRlKCk7XG5cbiAgICB0aGlzLnJlc3BvbnNlID0gbmV3IEFXUy5SZXNwb25zZSh0aGlzKTtcbiAgICB0aGlzLl9hc20gPSBuZXcgQWNjZXB0b3JTdGF0ZU1hY2hpbmUoZnNtLnN0YXRlcywgJ3ZhbGlkYXRlJyk7XG4gICAgdGhpcy5faGFsdEhhbmRsZXJzT25FcnJvciA9IGZhbHNlO1xuXG4gICAgQVdTLlNlcXVlbnRpYWxFeGVjdXRvci5jYWxsKHRoaXMpO1xuICAgIHRoaXMuZW1pdCA9IHRoaXMuZW1pdEV2ZW50O1xuICB9LFxuXG4gIC8qKlxuICAgKiBAIWdyb3VwIFNlbmRpbmcgYSBSZXF1ZXN0XG4gICAqL1xuXG4gIC8qKlxuICAgKiBAb3ZlcmxvYWQgc2VuZChjYWxsYmFjayA9IG51bGwpXG4gICAqICAgU2VuZHMgdGhlIHJlcXVlc3Qgb2JqZWN0LlxuICAgKlxuICAgKiAgIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIsIGRhdGEpXG4gICAqICAgICBJZiBhIGNhbGxiYWNrIGlzIHN1cHBsaWVkLCBpdCBpcyBjYWxsZWQgd2hlbiBhIHJlc3BvbnNlIGlzIHJldHVybmVkXG4gICAqICAgICBmcm9tIHRoZSBzZXJ2aWNlLlxuICAgKiAgICAgQGNvbnRleHQgW0FXUy5SZXF1ZXN0XSB0aGUgcmVxdWVzdCBvYmplY3QgYmVpbmcgc2VudC5cbiAgICogICAgIEBwYXJhbSBlcnIgW0Vycm9yXSB0aGUgZXJyb3Igb2JqZWN0IHJldHVybmVkIGZyb20gdGhlIHJlcXVlc3QuXG4gICAqICAgICAgIFNldCB0byBgbnVsbGAgaWYgdGhlIHJlcXVlc3QgaXMgc3VjY2Vzc2Z1bC5cbiAgICogICAgIEBwYXJhbSBkYXRhIFtPYmplY3RdIHRoZSBkZS1zZXJpYWxpemVkIGRhdGEgcmV0dXJuZWQgZnJvbVxuICAgKiAgICAgICB0aGUgcmVxdWVzdC4gU2V0IHRvIGBudWxsYCBpZiBhIHJlcXVlc3QgZXJyb3Igb2NjdXJzLlxuICAgKiAgIEBleGFtcGxlIFNlbmRpbmcgYSByZXF1ZXN0IHdpdGggYSBjYWxsYmFja1xuICAgKiAgICAgcmVxdWVzdCA9IHMzLnB1dE9iamVjdCh7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5J30pO1xuICAgKiAgICAgcmVxdWVzdC5zZW5kKGZ1bmN0aW9uKGVyciwgZGF0YSkgeyBjb25zb2xlLmxvZyhlcnIsIGRhdGEpOyB9KTtcbiAgICogICBAZXhhbXBsZSBTZW5kaW5nIGEgcmVxdWVzdCB3aXRoIG5vIGNhbGxiYWNrICh1c2luZyBldmVudCBoYW5kbGVycylcbiAgICogICAgIHJlcXVlc3QgPSBzMy5wdXRPYmplY3Qoe0J1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleSd9KTtcbiAgICogICAgIHJlcXVlc3Qub24oJ2NvbXBsZXRlJywgZnVuY3Rpb24ocmVzcG9uc2UpIHsgLi4uIH0pOyAvLyByZWdpc3RlciBhIGNhbGxiYWNrXG4gICAqICAgICByZXF1ZXN0LnNlbmQoKTtcbiAgICovXG4gIHNlbmQ6IGZ1bmN0aW9uIHNlbmQoY2FsbGJhY2spIHtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIC8vIGFwcGVuZCB0byB1c2VyIGFnZW50XG4gICAgICB0aGlzLmh0dHBSZXF1ZXN0LmFwcGVuZFRvVXNlckFnZW50KCdjYWxsYmFjaycpO1xuICAgICAgdGhpcy5vbignY29tcGxldGUnLCBmdW5jdGlvbiAocmVzcCkge1xuICAgICAgICBjYWxsYmFjay5jYWxsKHJlc3AsIHJlc3AuZXJyb3IsIHJlc3AuZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5ydW5UbygpO1xuXG4gICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEAhbWV0aG9kICBwcm9taXNlKClcbiAgICogICBTZW5kcyB0aGUgcmVxdWVzdCBhbmQgcmV0dXJucyBhICd0aGVuYWJsZScgcHJvbWlzZS5cbiAgICpcbiAgICogICBUd28gY2FsbGJhY2tzIGNhbiBiZSBwcm92aWRlZCB0byB0aGUgYHRoZW5gIG1ldGhvZCBvbiB0aGUgcmV0dXJuZWQgcHJvbWlzZS5cbiAgICogICBUaGUgZmlyc3QgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLCBhbmQgdGhlIHNlY29uZFxuICAgKiAgIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKiAgIEBjYWxsYmFjayBmdWxmaWxsZWRDYWxsYmFjayBmdW5jdGlvbihkYXRhKVxuICAgKiAgICAgQ2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIGZ1bGZpbGxlZC5cbiAgICogICAgIEBwYXJhbSBkYXRhIFtPYmplY3RdIHRoZSBkZS1zZXJpYWxpemVkIGRhdGEgcmV0dXJuZWQgZnJvbSB0aGUgcmVxdWVzdC5cbiAgICogICBAY2FsbGJhY2sgcmVqZWN0ZWRDYWxsYmFjayBmdW5jdGlvbihlcnJvcilcbiAgICogICAgIENhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICogICAgIEBwYXJhbSBlcnJvciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgcmVxdWVzdC5cbiAgICogICBAcmV0dXJuIFtQcm9taXNlXSBBIHByb21pc2UgdGhhdCByZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiB0aGUgcmVxdWVzdC5cbiAgICogICBAZXhhbXBsZSBTZW5kaW5nIGEgcmVxdWVzdCB1c2luZyBwcm9taXNlcy5cbiAgICogICAgIHZhciByZXF1ZXN0ID0gczMucHV0T2JqZWN0KHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknfSk7XG4gICAqICAgICB2YXIgcmVzdWx0ID0gcmVxdWVzdC5wcm9taXNlKCk7XG4gICAqICAgICByZXN1bHQudGhlbihmdW5jdGlvbihkYXRhKSB7IC4uLiB9LCBmdW5jdGlvbihlcnJvcikgeyAuLi4gfSk7XG4gICAqL1xuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGJ1aWxkOiBmdW5jdGlvbiBidWlsZChjYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLnJ1blRvKCdzZW5kJywgY2FsbGJhY2spO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJ1blRvOiBmdW5jdGlvbiBydW5UbyhzdGF0ZSwgZG9uZSkge1xuICAgIHRoaXMuX2FzbS5ydW5UbyhzdGF0ZSwgZG9uZSwgdGhpcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFib3J0cyBhIHJlcXVlc3QsIGVtaXR0aW5nIHRoZSBlcnJvciBhbmQgY29tcGxldGUgZXZlbnRzLlxuICAgKlxuICAgKiBAIW1hY3JvIG5vYnJvd3NlclxuICAgKiBAZXhhbXBsZSBBYm9ydGluZyBhIHJlcXVlc3QgYWZ0ZXIgc2VuZGluZ1xuICAgKiAgIHZhciBwYXJhbXMgPSB7XG4gICAqICAgICBCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknLFxuICAgKiAgICAgQm9keTogbmV3IEJ1ZmZlcigxMDI0ICogMTAyNCAqIDUpIC8vIDVNQiBwYXlsb2FkXG4gICAqICAgfTtcbiAgICogICB2YXIgcmVxdWVzdCA9IHMzLnB1dE9iamVjdChwYXJhbXMpO1xuICAgKiAgIHJlcXVlc3Quc2VuZChmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAqICAgICBpZiAoZXJyKSBjb25zb2xlLmxvZyhcIkVycm9yOlwiLCBlcnIuY29kZSwgZXJyLm1lc3NhZ2UpO1xuICAgKiAgICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogICB9KTtcbiAgICpcbiAgICogICAvLyBhYm9ydCByZXF1ZXN0IGluIDEgc2Vjb25kXG4gICAqICAgc2V0VGltZW91dChyZXF1ZXN0LmFib3J0LmJpbmQocmVxdWVzdCksIDEwMDApO1xuICAgKlxuICAgKiAgIC8vIHByaW50cyBcIkVycm9yOiBSZXF1ZXN0QWJvcnRlZEVycm9yIFJlcXVlc3QgYWJvcnRlZCBieSB1c2VyXCJcbiAgICogQHJldHVybiBbQVdTLlJlcXVlc3RdIHRoZSBzYW1lIHJlcXVlc3Qgb2JqZWN0LCBmb3IgY2hhaW5pbmcuXG4gICAqIEBzaW5jZSB2MS40LjBcbiAgICovXG4gIGFib3J0OiBmdW5jdGlvbiBhYm9ydCgpIHtcbiAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygndmFsaWRhdGVSZXNwb25zZScpO1xuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdleHRyYWN0RXJyb3InKTtcbiAgICB0aGlzLm9uKCd2YWxpZGF0ZVJlc3BvbnNlJywgZnVuY3Rpb24gYWRkQWJvcnRlZEVycm9yKHJlc3ApIHtcbiAgICAgIHJlc3AuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoJ1JlcXVlc3QgYWJvcnRlZCBieSB1c2VyJyksIHtcbiAgICAgICAgIGNvZGU6ICdSZXF1ZXN0QWJvcnRlZEVycm9yJywgcmV0cnlhYmxlOiBmYWxzZVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5odHRwUmVxdWVzdC5zdHJlYW0gJiYgIXRoaXMuaHR0cFJlcXVlc3Quc3RyZWFtLmRpZENhbGxiYWNrKSB7IC8vIGFib3J0IEhUVFAgc3RyZWFtXG4gICAgICB0aGlzLmh0dHBSZXF1ZXN0LnN0cmVhbS5hYm9ydCgpO1xuICAgICAgaWYgKHRoaXMuaHR0cFJlcXVlc3QuX2Fib3J0Q2FsbGJhY2spIHtcbiAgICAgICAgIHRoaXMuaHR0cFJlcXVlc3QuX2Fib3J0Q2FsbGJhY2soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdzZW5kJyk7IC8vIGhhdmVuJ3Qgc2VudCB5ZXQsIHNvIGxldCdzIG5vdFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyBvdmVyIGVhY2ggcGFnZSBvZiByZXN1bHRzIGdpdmVuIGEgcGFnZWFibGUgcmVxdWVzdCwgY2FsbGluZ1xuICAgKiB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgd2l0aCBlYWNoIHBhZ2Ugb2YgZGF0YS4gQWZ0ZXIgYWxsIHBhZ2VzIGhhdmUgYmVlblxuICAgKiByZXRyaWV2ZWQsIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCBgbnVsbGAgZGF0YS5cbiAgICpcbiAgICogQG5vdGUgVGhpcyBvcGVyYXRpb24gY2FuIGdlbmVyYXRlIG11bHRpcGxlIHJlcXVlc3RzIHRvIGEgc2VydmljZS5cbiAgICogQGV4YW1wbGUgSXRlcmF0aW5nIG92ZXIgbXVsdGlwbGUgcGFnZXMgb2Ygb2JqZWN0cyBpbiBhbiBTMyBidWNrZXRcbiAgICogICB2YXIgcGFnZXMgPSAxO1xuICAgKiAgIHMzLmxpc3RPYmplY3RzKCkuZWFjaFBhZ2UoZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAqICAgICBpZiAoZXJyKSByZXR1cm47XG4gICAqICAgICBjb25zb2xlLmxvZyhcIlBhZ2VcIiwgcGFnZXMrKyk7XG4gICAqICAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogICB9KTtcbiAgICogQGV4YW1wbGUgSXRlcmF0aW5nIG92ZXIgbXVsdGlwbGUgcGFnZXMgd2l0aCBhbiBhc3luY2hyb25vdXMgY2FsbGJhY2tcbiAgICogICBzMy5saXN0T2JqZWN0cyhwYXJhbXMpLmVhY2hQYWdlKGZ1bmN0aW9uKGVyciwgZGF0YSwgZG9uZSkge1xuICAgKiAgICAgZG9Tb21ldGhpbmdBc3luY0FuZE9yRXhwZW5zaXZlKGZ1bmN0aW9uKCkge1xuICAgKiAgICAgICAvLyBUaGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMgaXNuJ3QgZmV0Y2hlZCB1bnRpbCBkb25lIGlzIGNhbGxlZFxuICAgKiAgICAgICBkb25lKCk7XG4gICAqICAgICB9KTtcbiAgICogICB9KTtcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVyciwgZGF0YSwgW2RvbmVDYWxsYmFja10pXG4gICAqICAgQ2FsbGVkIHdpdGggZWFjaCBwYWdlIG9mIHJlc3VsdGluZyBkYXRhIGZyb20gdGhlIHJlcXVlc3QuIElmIHRoZVxuICAgKiAgIG9wdGlvbmFsIGBkb25lQ2FsbGJhY2tgIGlzIHByb3ZpZGVkIGluIHRoZSBmdW5jdGlvbiwgaXQgbXVzdCBiZSBjYWxsZWRcbiAgICogICB3aGVuIHRoZSBjYWxsYmFjayBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gYW4gZXJyb3Igb2JqZWN0LCBpZiBhbiBlcnJvciBvY2N1cnJlZC5cbiAgICogICBAcGFyYW0gZGF0YSBbT2JqZWN0XSBhIHNpbmdsZSBwYWdlIG9mIHJlc3BvbnNlIGRhdGEuIElmIHRoZXJlIGlzIG5vXG4gICAqICAgICBtb3JlIGRhdGEsIHRoaXMgb2JqZWN0IHdpbGwgYmUgYG51bGxgLlxuICAgKiAgIEBwYXJhbSBkb25lQ2FsbGJhY2sgW0Z1bmN0aW9uXSBhbiBvcHRpb25hbCBkb25lIGNhbGxiYWNrLiBJZiB0aGlzXG4gICAqICAgICBhcmd1bWVudCBpcyBkZWZpbmVkIGluIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiwgaXQgc2hvdWxkIGJlIGNhbGxlZFxuICAgKiAgICAgd2hlbiB0aGUgbmV4dCBwYWdlIGlzIHJlYWR5IHRvIGJlIHJldHJpZXZlZC4gVGhpcyBpcyB1c2VmdWwgZm9yXG4gICAqICAgICBjb250cm9sbGluZyBzZXJpYWwgcGFnaW5hdGlvbiBhY3Jvc3MgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMuXG4gICAqICAgQHJldHVybiBbQm9vbGVhbl0gaWYgdGhlIGNhbGxiYWNrIHJldHVybnMgYGZhbHNlYCwgcGFnaW5hdGlvbiB3aWxsXG4gICAqICAgICBzdG9wLlxuICAgKlxuICAgKiBAc2VlIEFXUy5SZXF1ZXN0LmVhY2hJdGVtXG4gICAqIEBzZWUgQVdTLlJlc3BvbnNlLm5leHRQYWdlXG4gICAqIEBzaW5jZSB2MS40LjBcbiAgICovXG4gIGVhY2hQYWdlOiBmdW5jdGlvbiBlYWNoUGFnZShjYWxsYmFjaykge1xuICAgIC8vIE1ha2UgYWxsIGNhbGxiYWNrcyBhc3luYy1pc2hcbiAgICBjYWxsYmFjayA9IEFXUy51dGlsLmZuLm1ha2VBc3luYyhjYWxsYmFjaywgMyk7XG5cbiAgICBmdW5jdGlvbiB3cmFwcGVkQ2FsbGJhY2socmVzcG9uc2UpIHtcbiAgICAgIGNhbGxiYWNrLmNhbGwocmVzcG9uc2UsIHJlc3BvbnNlLmVycm9yLCByZXNwb25zZS5kYXRhLCBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgIGlmIChyZXN1bHQgPT09IGZhbHNlKSByZXR1cm47XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLmhhc05leHRQYWdlKCkpIHtcbiAgICAgICAgICByZXNwb25zZS5uZXh0UGFnZSgpLm9uKCdjb21wbGV0ZScsIHdyYXBwZWRDYWxsYmFjaykuc2VuZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNhbGxiYWNrLmNhbGwocmVzcG9uc2UsIG51bGwsIG51bGwsIEFXUy51dGlsLmZuLm5vb3ApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLm9uKCdjb21wbGV0ZScsIHdyYXBwZWRDYWxsYmFjaykuc2VuZCgpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFbnVtZXJhdGVzIG92ZXIgaW5kaXZpZHVhbCBpdGVtcyBvZiBhIHJlcXVlc3QsIHBhZ2luZyB0aGUgcmVzcG9uc2VzIGlmXG4gICAqIG5lY2Vzc2FyeS5cbiAgICpcbiAgICogQGFwaSBleHBlcmltZW50YWxcbiAgICogQHNpbmNlIHYxLjQuMFxuICAgKi9cbiAgZWFjaEl0ZW06IGZ1bmN0aW9uIGVhY2hJdGVtKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGZ1bmN0aW9uIHdyYXBwZWRDYWxsYmFjayhlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHJldHVybiBjYWxsYmFjayhlcnIsIG51bGwpO1xuICAgICAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBjYWxsYmFjayhudWxsLCBudWxsKTtcblxuICAgICAgdmFyIGNvbmZpZyA9IHNlbGYuc2VydmljZS5wYWdpbmF0aW9uQ29uZmlnKHNlbGYub3BlcmF0aW9uKTtcbiAgICAgIHZhciByZXN1bHRLZXkgPSBjb25maWcucmVzdWx0S2V5O1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0S2V5KSkgcmVzdWx0S2V5ID0gcmVzdWx0S2V5WzBdO1xuICAgICAgdmFyIGl0ZW1zID0gam1lc3BhdGguc2VhcmNoKGRhdGEsIHJlc3VsdEtleSk7XG4gICAgICB2YXIgY29udGludWVJdGVyYXRpb24gPSB0cnVlO1xuICAgICAgQVdTLnV0aWwuYXJyYXlFYWNoKGl0ZW1zLCBmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgIGNvbnRpbnVlSXRlcmF0aW9uID0gY2FsbGJhY2sobnVsbCwgaXRlbSk7XG4gICAgICAgIGlmIChjb250aW51ZUl0ZXJhdGlvbiA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm4gQVdTLnV0aWwuYWJvcnQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNvbnRpbnVlSXRlcmF0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZWFjaFBhZ2Uod3JhcHBlZENhbGxiYWNrKTtcbiAgfSxcblxuICAvKipcbiAgICogQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0aGUgb3BlcmF0aW9uIGNhbiByZXR1cm4gbXVsdGlwbGUgcGFnZXMgb2ZcbiAgICogICByZXNwb25zZSBkYXRhLlxuICAgKiBAc2VlIEFXUy5SZXNwb25zZS5lYWNoUGFnZVxuICAgKiBAc2luY2UgdjEuNC4wXG4gICAqL1xuICBpc1BhZ2VhYmxlOiBmdW5jdGlvbiBpc1BhZ2VhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UucGFnaW5hdGlvbkNvbmZpZyh0aGlzLm9wZXJhdGlvbikgPyB0cnVlIDogZmFsc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNlbmRzIHRoZSByZXF1ZXN0IGFuZCBjb252ZXJ0cyB0aGUgcmVxdWVzdCBvYmplY3QgaW50byBhIHJlYWRhYmxlIHN0cmVhbVxuICAgKiB0aGF0IGNhbiBiZSByZWFkIGZyb20gb3IgcGlwZWQgaW50byBhIHdyaXRhYmxlIHN0cmVhbS5cbiAgICpcbiAgICogQG5vdGUgVGhlIGRhdGEgcmVhZCBmcm9tIGEgcmVhZGFibGUgc3RyZWFtIGNvbnRhaW5zIG9ubHlcbiAgICogICB0aGUgcmF3IEhUVFAgYm9keSBjb250ZW50cy5cbiAgICogQGV4YW1wbGUgTWFudWFsbHkgcmVhZGluZyBmcm9tIGEgc3RyZWFtXG4gICAqICAgcmVxdWVzdC5jcmVhdGVSZWFkU3RyZWFtKCkub24oJ2RhdGEnLCBmdW5jdGlvbihkYXRhKSB7XG4gICAqICAgICBjb25zb2xlLmxvZyhcIkdvdCBkYXRhOlwiLCBkYXRhLnRvU3RyaW5nKCkpO1xuICAgKiAgIH0pO1xuICAgKiBAZXhhbXBsZSBQaXBpbmcgYSByZXF1ZXN0IGJvZHkgaW50byBhIGZpbGVcbiAgICogICB2YXIgb3V0ID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oJy9wYXRoL3RvL291dGZpbGUuanBnJyk7XG4gICAqICAgczMuc2VydmljZS5nZXRPYmplY3QocGFyYW1zKS5jcmVhdGVSZWFkU3RyZWFtKCkucGlwZShvdXQpO1xuICAgKiBAcmV0dXJuIFtTdHJlYW1dIHRoZSByZWFkYWJsZSBzdHJlYW0gb2JqZWN0IHRoYXQgY2FuIGJlIHBpcGVkXG4gICAqICAgb3IgcmVhZCBmcm9tIChieSByZWdpc3RlcmluZyAnZGF0YScgZXZlbnQgbGlzdGVuZXJzKS5cbiAgICogQCFtYWNybyBub2Jyb3dzZXJcbiAgICovXG4gIGNyZWF0ZVJlYWRTdHJlYW06IGZ1bmN0aW9uIGNyZWF0ZVJlYWRTdHJlYW0oKSB7XG4gICAgdmFyIHN0cmVhbXMgPSBBV1MudXRpbC5zdHJlYW07XG4gICAgdmFyIHJlcSA9IHRoaXM7XG4gICAgdmFyIHN0cmVhbSA9IG51bGw7XG5cbiAgICBpZiAoQVdTLkh0dHBDbGllbnQuc3RyZWFtc0FwaVZlcnNpb24gPT09IDIpIHtcbiAgICAgIHN0cmVhbSA9IG5ldyBzdHJlYW1zLlBhc3NUaHJvdWdoKCk7XG4gICAgICBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uKCkgeyByZXEuc2VuZCgpOyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyZWFtID0gbmV3IHN0cmVhbXMuU3RyZWFtKCk7XG4gICAgICBzdHJlYW0ucmVhZGFibGUgPSB0cnVlO1xuXG4gICAgICBzdHJlYW0uc2VudCA9IGZhbHNlO1xuICAgICAgc3RyZWFtLm9uKCduZXdMaXN0ZW5lcicsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIGlmICghc3RyZWFtLnNlbnQgJiYgZXZlbnQgPT09ICdkYXRhJykge1xuICAgICAgICAgIHN0cmVhbS5zZW50ID0gdHJ1ZTtcbiAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uKCkgeyByZXEuc2VuZCgpOyB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5vbignZXJyb3InLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIGVycik7XG4gICAgfSk7XG5cbiAgICB0aGlzLm9uKCdodHRwSGVhZGVycycsIGZ1bmN0aW9uIHN0cmVhbUhlYWRlcnMoc3RhdHVzQ29kZSwgaGVhZGVycywgcmVzcCkge1xuICAgICAgaWYgKHN0YXR1c0NvZGUgPCAzMDApIHtcbiAgICAgICAgcmVxLnJlbW92ZUxpc3RlbmVyKCdodHRwRGF0YScsIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLkhUVFBfREFUQSk7XG4gICAgICAgIHJlcS5yZW1vdmVMaXN0ZW5lcignaHR0cEVycm9yJywgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuSFRUUF9FUlJPUik7XG4gICAgICAgIHJlcS5vbignaHR0cEVycm9yJywgZnVuY3Rpb24gc3RyZWFtSHR0cEVycm9yKGVycm9yKSB7XG4gICAgICAgICAgcmVzcC5lcnJvciA9IGVycm9yO1xuICAgICAgICAgIHJlc3AuZXJyb3IucmV0cnlhYmxlID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBzaG91bGRDaGVja0NvbnRlbnRMZW5ndGggPSBmYWxzZTtcbiAgICAgICAgdmFyIGV4cGVjdGVkTGVuO1xuICAgICAgICBpZiAocmVxLmh0dHBSZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnKSB7XG4gICAgICAgICAgZXhwZWN0ZWRMZW4gPSBwYXJzZUludChoZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4cGVjdGVkTGVuICE9PSB1bmRlZmluZWQgJiYgIWlzTmFOKGV4cGVjdGVkTGVuKSAmJiBleHBlY3RlZExlbiA+PSAwKSB7XG4gICAgICAgICAgc2hvdWxkQ2hlY2tDb250ZW50TGVuZ3RoID0gdHJ1ZTtcbiAgICAgICAgICB2YXIgcmVjZWl2ZWRMZW4gPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNoZWNrQ29udGVudExlbmd0aEFuZEVtaXQgPSBmdW5jdGlvbiBjaGVja0NvbnRlbnRMZW5ndGhBbmRFbWl0KCkge1xuICAgICAgICAgIGlmIChzaG91bGRDaGVja0NvbnRlbnRMZW5ndGggJiYgcmVjZWl2ZWRMZW4gIT09IGV4cGVjdGVkTGVuKSB7XG4gICAgICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBBV1MudXRpbC5lcnJvcihcbiAgICAgICAgICAgICAgbmV3IEVycm9yKCdTdHJlYW0gY29udGVudCBsZW5ndGggbWlzbWF0Y2guIFJlY2VpdmVkICcgK1xuICAgICAgICAgICAgICAgIHJlY2VpdmVkTGVuICsgJyBvZiAnICsgZXhwZWN0ZWRMZW4gKyAnIGJ5dGVzLicpLFxuICAgICAgICAgICAgICB7IGNvZGU6ICdTdHJlYW1Db250ZW50TGVuZ3RoTWlzbWF0Y2gnIH1cbiAgICAgICAgICAgICkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoQVdTLkh0dHBDbGllbnQuc3RyZWFtc0FwaVZlcnNpb24gPT09IDIpIHtcbiAgICAgICAgICAgIHN0cmVhbS5lbmQoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RyZWFtLmVtaXQoJ2VuZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaHR0cFN0cmVhbSA9IHJlc3AuaHR0cFJlc3BvbnNlLmNyZWF0ZVVuYnVmZmVyZWRTdHJlYW0oKTtcblxuICAgICAgICBpZiAoQVdTLkh0dHBDbGllbnQuc3RyZWFtc0FwaVZlcnNpb24gPT09IDIpIHtcbiAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tDb250ZW50TGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgbGVuZ3RoQWNjdW11bGF0b3IgPSBuZXcgc3RyZWFtcy5QYXNzVGhyb3VnaCgpO1xuICAgICAgICAgICAgbGVuZ3RoQWNjdW11bGF0b3IuX3dyaXRlID0gZnVuY3Rpb24oY2h1bmspIHtcbiAgICAgICAgICAgICAgaWYgKGNodW5rICYmIGNodW5rLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlY2VpdmVkTGVuICs9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gc3RyZWFtcy5QYXNzVGhyb3VnaC5wcm90b3R5cGUuX3dyaXRlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZW5ndGhBY2N1bXVsYXRvci5vbignZW5kJywgY2hlY2tDb250ZW50TGVuZ3RoQW5kRW1pdCk7XG4gICAgICAgICAgICBzdHJlYW0ub24oJ2Vycm9yJywgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgIHNob3VsZENoZWNrQ29udGVudExlbmd0aCA9IGZhbHNlO1xuICAgICAgICAgICAgICBodHRwU3RyZWFtLnVucGlwZShsZW5ndGhBY2N1bXVsYXRvcik7XG4gICAgICAgICAgICAgIGxlbmd0aEFjY3VtdWxhdG9yLmVtaXQoJ2VuZCcpO1xuICAgICAgICAgICAgICBsZW5ndGhBY2N1bXVsYXRvci5lbmQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaHR0cFN0cmVhbS5waXBlKGxlbmd0aEFjY3VtdWxhdG9yKS5waXBlKHN0cmVhbSwgeyBlbmQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBodHRwU3RyZWFtLnBpcGUoc3RyZWFtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tDb250ZW50TGVuZ3RoKSB7XG4gICAgICAgICAgICBodHRwU3RyZWFtLm9uKCdkYXRhJywgZnVuY3Rpb24oYXJnKSB7XG4gICAgICAgICAgICAgIGlmIChhcmcgJiYgYXJnLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlY2VpdmVkTGVuICs9IGFyZy5sZW5ndGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGh0dHBTdHJlYW0ub24oJ2RhdGEnLCBmdW5jdGlvbihhcmcpIHtcbiAgICAgICAgICAgIHN0cmVhbS5lbWl0KCdkYXRhJywgYXJnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBodHRwU3RyZWFtLm9uKCdlbmQnLCBjaGVja0NvbnRlbnRMZW5ndGhBbmRFbWl0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGh0dHBTdHJlYW0ub24oJ2Vycm9yJywgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgc2hvdWxkQ2hlY2tDb250ZW50TGVuZ3RoID0gZmFsc2U7XG4gICAgICAgICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3RyZWFtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0gW0FycmF5LFJlc3BvbnNlXSBhcmdzIFRoaXMgc2hvdWxkIGJlIHRoZSByZXNwb25zZSBvYmplY3QsXG4gICAqICAgb3IgYW4gYXJyYXkgb2YgYXJncyB0byBzZW5kIHRvIHRoZSBldmVudC5cbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBlbWl0RXZlbnQ6IGZ1bmN0aW9uIGVtaXQoZXZlbnROYW1lLCBhcmdzLCBkb25lKSB7XG4gICAgaWYgKHR5cGVvZiBhcmdzID09PSAnZnVuY3Rpb24nKSB7IGRvbmUgPSBhcmdzOyBhcmdzID0gbnVsbDsgfVxuICAgIGlmICghZG9uZSkgZG9uZSA9IGZ1bmN0aW9uKCkgeyB9O1xuICAgIGlmICghYXJncykgYXJncyA9IHRoaXMuZXZlbnRQYXJhbWV0ZXJzKGV2ZW50TmFtZSwgdGhpcy5yZXNwb25zZSk7XG5cbiAgICB2YXIgb3JpZ0VtaXQgPSBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yLnByb3RvdHlwZS5lbWl0O1xuICAgIG9yaWdFbWl0LmNhbGwodGhpcywgZXZlbnROYW1lLCBhcmdzLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICBpZiAoZXJyKSB0aGlzLnJlc3BvbnNlLmVycm9yID0gZXJyO1xuICAgICAgZG9uZS5jYWxsKHRoaXMsIGVycik7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZXZlbnRQYXJhbWV0ZXJzOiBmdW5jdGlvbiBldmVudFBhcmFtZXRlcnMoZXZlbnROYW1lKSB7XG4gICAgc3dpdGNoIChldmVudE5hbWUpIHtcbiAgICAgIGNhc2UgJ3Jlc3RhcnQnOlxuICAgICAgY2FzZSAndmFsaWRhdGUnOlxuICAgICAgY2FzZSAnc2lnbic6XG4gICAgICBjYXNlICdidWlsZCc6XG4gICAgICBjYXNlICdhZnRlclZhbGlkYXRlJzpcbiAgICAgIGNhc2UgJ2FmdGVyQnVpbGQnOlxuICAgICAgICByZXR1cm4gW3RoaXNdO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gW3RoaXMucmVzcG9uc2UuZXJyb3IsIHRoaXMucmVzcG9uc2VdO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFt0aGlzLnJlc3BvbnNlXTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcHJlc2lnbjogZnVuY3Rpb24gcHJlc2lnbihleHBpcmVzLCBjYWxsYmFjaykge1xuICAgIGlmICghY2FsbGJhY2sgJiYgdHlwZW9mIGV4cGlyZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNhbGxiYWNrID0gZXhwaXJlcztcbiAgICAgIGV4cGlyZXMgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEFXUy5TaWduZXJzLlByZXNpZ24oKS5zaWduKHRoaXMudG9HZXQoKSwgZXhwaXJlcywgY2FsbGJhY2spO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGlzUHJlc2lnbmVkOiBmdW5jdGlvbiBpc1ByZXNpZ25lZCgpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuaHR0cFJlcXVlc3QuaGVhZGVycywgJ3ByZXNpZ25lZC1leHBpcmVzJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdG9VbmF1dGhlbnRpY2F0ZWQ6IGZ1bmN0aW9uIHRvVW5hdXRoZW50aWNhdGVkKCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoJ3ZhbGlkYXRlJywgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuVkFMSURBVEVfQ1JFREVOVElBTFMpO1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoJ3NpZ24nLCBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5TSUdOKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB0b0dldDogZnVuY3Rpb24gdG9HZXQoKSB7XG4gICAgaWYgKHRoaXMuc2VydmljZS5hcGkucHJvdG9jb2wgPT09ICdxdWVyeScgfHxcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmFwaS5wcm90b2NvbCA9PT0gJ2VjMicpIHtcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoJ2J1aWxkJywgdGhpcy5idWlsZEFzR2V0KTtcbiAgICAgIHRoaXMuYWRkTGlzdGVuZXIoJ2J1aWxkJywgdGhpcy5idWlsZEFzR2V0KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYnVpbGRBc0dldDogZnVuY3Rpb24gYnVpbGRBc0dldChyZXF1ZXN0KSB7XG4gICAgcmVxdWVzdC5odHRwUmVxdWVzdC5tZXRob2QgPSAnR0VUJztcbiAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnNlcnZpY2UuZW5kcG9pbnQucGF0aCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJz8nICsgcmVxdWVzdC5odHRwUmVxdWVzdC5ib2R5O1xuICAgIHJlcXVlc3QuaHR0cFJlcXVlc3QuYm9keSA9ICcnO1xuXG4gICAgLy8gZG9uJ3QgbmVlZCB0aGVzZSBoZWFkZXJzIG9uIGEgR0VUIHJlcXVlc3RcbiAgICBkZWxldGUgcmVxdWVzdC5odHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LUxlbmd0aCddO1xuICAgIGRlbGV0ZSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGhhbHRIYW5kbGVyc09uRXJyb3I6IGZ1bmN0aW9uIGhhbHRIYW5kbGVyc09uRXJyb3IoKSB7XG4gICAgdGhpcy5faGFsdEhhbmRsZXJzT25FcnJvciA9IHRydWU7XG4gIH1cbn0pO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuUmVxdWVzdC5hZGRQcm9taXNlc1RvQ2xhc3MgPSBmdW5jdGlvbiBhZGRQcm9taXNlc1RvQ2xhc3MoUHJvbWlzZURlcGVuZGVuY3kpIHtcbiAgdGhpcy5wcm90b3R5cGUucHJvbWlzZSA9IGZ1bmN0aW9uIHByb21pc2UoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIC8vIGFwcGVuZCB0byB1c2VyIGFnZW50XG4gICAgdGhpcy5odHRwUmVxdWVzdC5hcHBlbmRUb1VzZXJBZ2VudCgncHJvbWlzZScpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZURlcGVuZGVuY3koZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBzZWxmLm9uKCdjb21wbGV0ZScsIGZ1bmN0aW9uKHJlc3ApIHtcbiAgICAgICAgaWYgKHJlc3AuZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QocmVzcC5lcnJvcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gZGVmaW5lICRyZXNwb25zZSBwcm9wZXJ0eSBzbyB0aGF0IGl0IGlzIG5vdCBlbnVtYmVyYWJsZVxuICAgICAgICAgIC8vIHRoaXMgcHJldmVudHMgY2lyY3VsYXIgcmVmZXJlbmNlIGVycm9ycyB3aGVuIHN0cmluZ2lmeWluZyB0aGUgSlNPTiBvYmplY3RcbiAgICAgICAgICByZXNvbHZlKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgICAgIHJlc3AuZGF0YSB8fCB7fSxcbiAgICAgICAgICAgICckcmVzcG9uc2UnLFxuICAgICAgICAgICAge3ZhbHVlOiByZXNwfVxuICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHNlbGYucnVuVG8oKTtcbiAgICB9KTtcbiAgfTtcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5SZXF1ZXN0LmRlbGV0ZVByb21pc2VzRnJvbUNsYXNzID0gZnVuY3Rpb24gZGVsZXRlUHJvbWlzZXNGcm9tQ2xhc3MoKSB7XG4gIGRlbGV0ZSB0aGlzLnByb3RvdHlwZS5wcm9taXNlO1xufTtcblxuQVdTLnV0aWwuYWRkUHJvbWlzZXMoQVdTLlJlcXVlc3QpO1xuXG5BV1MudXRpbC5taXhpbihBV1MuUmVxdWVzdCwgQVdTLlNlcXVlbnRpYWxFeGVjdXRvcik7XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDEyLTIwMTMgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3VcbiAqIG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2ZcbiAqIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgaHR0cDovL2F3cy5hbWF6b24uY29tL2FwYWNoZTIuMC9cbiAqXG4gKiBvciBpbiB0aGUgXCJsaWNlbnNlXCIgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXNcbiAqIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0ZcbiAqIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpY1xuICogbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG52YXIgQVdTID0gcmVxdWlyZSgnLi9jb3JlJyk7XG52YXIgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG52YXIgam1lc3BhdGggPSByZXF1aXJlKCdqbWVzcGF0aCcpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBDSEVDS19BQ0NFUFRPUlMocmVzcCkge1xuICB2YXIgd2FpdGVyID0gcmVzcC5yZXF1ZXN0Ll93YWl0ZXI7XG4gIHZhciBhY2NlcHRvcnMgPSB3YWl0ZXIuY29uZmlnLmFjY2VwdG9ycztcbiAgdmFyIGFjY2VwdG9yTWF0Y2hlZCA9IGZhbHNlO1xuICB2YXIgc3RhdGUgPSAncmV0cnknO1xuXG4gIGFjY2VwdG9ycy5mb3JFYWNoKGZ1bmN0aW9uKGFjY2VwdG9yKSB7XG4gICAgaWYgKCFhY2NlcHRvck1hdGNoZWQpIHtcbiAgICAgIHZhciBtYXRjaGVyID0gd2FpdGVyLm1hdGNoZXJzW2FjY2VwdG9yLm1hdGNoZXJdO1xuICAgICAgaWYgKG1hdGNoZXIgJiYgbWF0Y2hlcihyZXNwLCBhY2NlcHRvci5leHBlY3RlZCwgYWNjZXB0b3IuYXJndW1lbnQpKSB7XG4gICAgICAgIGFjY2VwdG9yTWF0Y2hlZCA9IHRydWU7XG4gICAgICAgIHN0YXRlID0gYWNjZXB0b3Iuc3RhdGU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBpZiAoIWFjY2VwdG9yTWF0Y2hlZCAmJiByZXNwLmVycm9yKSBzdGF0ZSA9ICdmYWlsdXJlJztcblxuICBpZiAoc3RhdGUgPT09ICdzdWNjZXNzJykge1xuICAgIHdhaXRlci5zZXRTdWNjZXNzKHJlc3ApO1xuICB9IGVsc2Uge1xuICAgIHdhaXRlci5zZXRFcnJvcihyZXNwLCBzdGF0ZSA9PT0gJ3JldHJ5Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlJlc291cmNlV2FpdGVyID0gaW5oZXJpdCh7XG4gIC8qKlxuICAgKiBXYWl0cyBmb3IgYSBnaXZlbiBzdGF0ZSBvbiBhIHNlcnZpY2Ugb2JqZWN0XG4gICAqIEBwYXJhbSBzZXJ2aWNlIFtTZXJ2aWNlXSB0aGUgc2VydmljZSBvYmplY3QgdG8gd2FpdCBvblxuICAgKiBAcGFyYW0gc3RhdGUgW1N0cmluZ10gdGhlIHN0YXRlIChkZWZpbmVkIGluIHdhaXRlciBjb25maWd1cmF0aW9uKSB0byB3YWl0XG4gICAqICAgZm9yLlxuICAgKiBAZXhhbXBsZSBDcmVhdGUgYSB3YWl0ZXIgZm9yIHJ1bm5pbmcgRUMyIGluc3RhbmNlc1xuICAgKiAgIHZhciBlYzIgPSBuZXcgQVdTLkVDMjtcbiAgICogICB2YXIgd2FpdGVyID0gbmV3IEFXUy5SZXNvdXJjZVdhaXRlcihlYzIsICdpbnN0YW5jZVJ1bm5pbmcnKTtcbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBjb25zdHJ1Y3RvcihzZXJ2aWNlLCBzdGF0ZSkge1xuICAgIHRoaXMuc2VydmljZSA9IHNlcnZpY2U7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMubG9hZFdhaXRlckNvbmZpZyh0aGlzLnN0YXRlKTtcbiAgfSxcblxuICBzZXJ2aWNlOiBudWxsLFxuXG4gIHN0YXRlOiBudWxsLFxuXG4gIGNvbmZpZzogbnVsbCxcblxuICBtYXRjaGVyczoge1xuICAgIHBhdGg6IGZ1bmN0aW9uKHJlc3AsIGV4cGVjdGVkLCBhcmd1bWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGptZXNwYXRoLnNlYXJjaChyZXNwLmRhdGEsIGFyZ3VtZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBqbWVzcGF0aC5zdHJpY3REZWVwRXF1YWwocmVzdWx0LGV4cGVjdGVkKTtcbiAgICB9LFxuXG4gICAgcGF0aEFsbDogZnVuY3Rpb24ocmVzcCwgZXhwZWN0ZWQsIGFyZ3VtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgcmVzdWx0cyA9IGptZXNwYXRoLnNlYXJjaChyZXNwLmRhdGEsIGFyZ3VtZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHRzKSkgcmVzdWx0cyA9IFtyZXN1bHRzXTtcbiAgICAgIHZhciBudW1SZXN1bHRzID0gcmVzdWx0cy5sZW5ndGg7XG4gICAgICBpZiAoIW51bVJlc3VsdHMpIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAodmFyIGluZCA9IDAgOyBpbmQgPCBudW1SZXN1bHRzOyBpbmQrKykge1xuICAgICAgICBpZiAoIWptZXNwYXRoLnN0cmljdERlZXBFcXVhbChyZXN1bHRzW2luZF0sIGV4cGVjdGVkKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcblxuICAgIHBhdGhBbnk6IGZ1bmN0aW9uKHJlc3AsIGV4cGVjdGVkLCBhcmd1bWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBqbWVzcGF0aC5zZWFyY2gocmVzcC5kYXRhLCBhcmd1bWVudCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzdWx0cykpIHJlc3VsdHMgPSBbcmVzdWx0c107XG4gICAgICB2YXIgbnVtUmVzdWx0cyA9IHJlc3VsdHMubGVuZ3RoO1xuICAgICAgZm9yICh2YXIgaW5kID0gMCA7IGluZCA8IG51bVJlc3VsdHM7IGluZCsrKSB7XG4gICAgICAgIGlmIChqbWVzcGF0aC5zdHJpY3REZWVwRXF1YWwocmVzdWx0c1tpbmRdLCBleHBlY3RlZCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0sXG5cbiAgICBzdGF0dXM6IGZ1bmN0aW9uKHJlc3AsIGV4cGVjdGVkKSB7XG4gICAgICB2YXIgc3RhdHVzQ29kZSA9IHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGU7XG4gICAgICByZXR1cm4gKHR5cGVvZiBzdGF0dXNDb2RlID09PSAnbnVtYmVyJykgJiYgKHN0YXR1c0NvZGUgPT09IGV4cGVjdGVkKTtcbiAgICB9LFxuXG4gICAgZXJyb3I6IGZ1bmN0aW9uKHJlc3AsIGV4cGVjdGVkKSB7XG4gICAgICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAnc3RyaW5nJyAmJiByZXNwLmVycm9yKSB7XG4gICAgICAgIHJldHVybiBleHBlY3RlZCA9PT0gcmVzcC5lcnJvci5jb2RlO1xuICAgICAgfVxuICAgICAgLy8gaWYgZXhwZWN0ZWQgaXMgbm90IHN0cmluZywgY2FuIGJlIGJvb2xlYW4gaW5kaWNhdGluZyBwcmVzZW5jZSBvZiBlcnJvclxuICAgICAgcmV0dXJuIGV4cGVjdGVkID09PSAhIXJlc3AuZXJyb3I7XG4gICAgfVxuICB9LFxuXG4gIGxpc3RlbmVyczogbmV3IEFXUy5TZXF1ZW50aWFsRXhlY3V0b3IoKS5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQpIHtcbiAgICBhZGQoJ1JFVFJZX0NIRUNLJywgJ3JldHJ5JywgZnVuY3Rpb24ocmVzcCkge1xuICAgICAgdmFyIHdhaXRlciA9IHJlc3AucmVxdWVzdC5fd2FpdGVyO1xuICAgICAgaWYgKHJlc3AuZXJyb3IgJiYgcmVzcC5lcnJvci5jb2RlID09PSAnUmVzb3VyY2VOb3RSZWFkeScpIHtcbiAgICAgICAgcmVzcC5lcnJvci5yZXRyeURlbGF5ID0gKHdhaXRlci5jb25maWcuZGVsYXkgfHwgMCkgKiAxMDAwO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkKCdDSEVDS19PVVRQVVQnLCAnZXh0cmFjdERhdGEnLCBDSEVDS19BQ0NFUFRPUlMpO1xuXG4gICAgYWRkKCdDSEVDS19FUlJPUicsICdleHRyYWN0RXJyb3InLCBDSEVDS19BQ0NFUFRPUlMpO1xuICB9KSxcblxuICAvKipcbiAgICogQHJldHVybiBbQVdTLlJlcXVlc3RdXG4gICAqL1xuICB3YWl0OiBmdW5jdGlvbiB3YWl0KHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIHBhcmFtcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBwYXJhbXM7IHBhcmFtcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy4kd2FpdGVyKSB7XG4gICAgICBwYXJhbXMgPSBBV1MudXRpbC5jb3B5KHBhcmFtcyk7XG4gICAgICBpZiAodHlwZW9mIHBhcmFtcy4kd2FpdGVyLmRlbGF5ID09PSAnbnVtYmVyJykge1xuICAgICAgICB0aGlzLmNvbmZpZy5kZWxheSA9IHBhcmFtcy4kd2FpdGVyLmRlbGF5O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBwYXJhbXMuJHdhaXRlci5tYXhBdHRlbXB0cyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhpcy5jb25maWcubWF4QXR0ZW1wdHMgPSBwYXJhbXMuJHdhaXRlci5tYXhBdHRlbXB0cztcbiAgICAgIH1cbiAgICAgIGRlbGV0ZSBwYXJhbXMuJHdhaXRlcjtcbiAgICB9XG5cbiAgICB2YXIgcmVxdWVzdCA9IHRoaXMuc2VydmljZS5tYWtlUmVxdWVzdCh0aGlzLmNvbmZpZy5vcGVyYXRpb24sIHBhcmFtcyk7XG4gICAgcmVxdWVzdC5fd2FpdGVyID0gdGhpcztcbiAgICByZXF1ZXN0LnJlc3BvbnNlLm1heFJldHJpZXMgPSB0aGlzLmNvbmZpZy5tYXhBdHRlbXB0cztcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVycyh0aGlzLmxpc3RlbmVycyk7XG5cbiAgICBpZiAoY2FsbGJhY2spIHJlcXVlc3Quc2VuZChjYWxsYmFjayk7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH0sXG5cbiAgc2V0U3VjY2VzczogZnVuY3Rpb24gc2V0U3VjY2VzcyhyZXNwKSB7XG4gICAgcmVzcC5lcnJvciA9IG51bGw7XG4gICAgcmVzcC5kYXRhID0gcmVzcC5kYXRhIHx8IHt9O1xuICAgIHJlc3AucmVxdWVzdC5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2V4dHJhY3REYXRhJyk7XG4gIH0sXG5cbiAgc2V0RXJyb3I6IGZ1bmN0aW9uIHNldEVycm9yKHJlc3AsIHJldHJ5YWJsZSkge1xuICAgIHJlc3AuZGF0YSA9IG51bGw7XG4gICAgcmVzcC5lcnJvciA9IEFXUy51dGlsLmVycm9yKHJlc3AuZXJyb3IgfHwgbmV3IEVycm9yKCksIHtcbiAgICAgIGNvZGU6ICdSZXNvdXJjZU5vdFJlYWR5JyxcbiAgICAgIG1lc3NhZ2U6ICdSZXNvdXJjZSBpcyBub3QgaW4gdGhlIHN0YXRlICcgKyB0aGlzLnN0YXRlLFxuICAgICAgcmV0cnlhYmxlOiByZXRyeWFibGVcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogTG9hZHMgd2FpdGVyIGNvbmZpZ3VyYXRpb24gZnJvbSBBUEkgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGxvYWRXYWl0ZXJDb25maWc6IGZ1bmN0aW9uIGxvYWRXYWl0ZXJDb25maWcoc3RhdGUpIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZS5hcGkud2FpdGVyc1tzdGF0ZV0pIHtcbiAgICAgIHRocm93IG5ldyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgICBjb2RlOiAnU3RhdGVOb3RGb3VuZEVycm9yJyxcbiAgICAgICAgbWVzc2FnZTogJ1N0YXRlICcgKyBzdGF0ZSArICcgbm90IGZvdW5kLidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnID0gQVdTLnV0aWwuY29weSh0aGlzLnNlcnZpY2UuYXBpLndhaXRlcnNbc3RhdGVdKTtcbiAgfVxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi9jb3JlJyk7XG52YXIgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG52YXIgam1lc3BhdGggPSByZXF1aXJlKCdqbWVzcGF0aCcpO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIHRoZSByZXNwb25zZSBpbmZvcm1hdGlvblxuICogZnJvbSBhIHNlcnZpY2UgcmVxdWVzdCBvcGVyYXRpb24gc2VudCB0aHJvdWdoIHtBV1MuUmVxdWVzdH0uXG4gKiBUaGUgcmVzcG9uc2Ugb2JqZWN0IGhhcyB0d28gbWFpbiBwcm9wZXJ0aWVzIGZvciBnZXR0aW5nIGluZm9ybWF0aW9uXG4gKiBiYWNrIGZyb20gYSByZXF1ZXN0OlxuICpcbiAqICMjIFRoZSBgZGF0YWAgcHJvcGVydHlcbiAqXG4gKiBUaGUgYHJlc3BvbnNlLmRhdGFgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBzZXJpYWxpemVkIG9iamVjdCBkYXRhXG4gKiByZXRyaWV2ZWQgZnJvbSB0aGUgc2VydmljZSByZXF1ZXN0LiBGb3IgaW5zdGFuY2UsIGZvciBhblxuICogQW1hem9uIER5bmFtb0RCIGBsaXN0VGFibGVzYCBtZXRob2QgY2FsbCwgdGhlIHJlc3BvbnNlIGRhdGEgbWlnaHRcbiAqIGxvb2sgbGlrZTpcbiAqXG4gKiBgYGBcbiAqID4gcmVzcC5kYXRhXG4gKiB7IFRhYmxlTmFtZXM6XG4gKiAgICBbICd0YWJsZTEnLCAndGFibGUyJywgLi4uIF0gfVxuICogYGBgXG4gKlxuICogVGhlIGBkYXRhYCBwcm9wZXJ0eSBjYW4gYmUgbnVsbCBpZiBhbiBlcnJvciBvY2N1cnMgKHNlZSBiZWxvdykuXG4gKlxuICogIyMgVGhlIGBlcnJvcmAgcHJvcGVydHlcbiAqXG4gKiBJbiB0aGUgZXZlbnQgb2YgYSBzZXJ2aWNlIGVycm9yIChvciB0cmFuc2ZlciBlcnJvciksIHRoZVxuICogYHJlc3BvbnNlLmVycm9yYCBwcm9wZXJ0eSB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBnaXZlblxuICogZXJyb3IgZGF0YSBpbiB0aGUgZm9ybTpcbiAqXG4gKiBgYGBcbiAqIHsgY29kZTogJ1NIT1JUX1VOSVFVRV9FUlJPUl9DT0RFJyxcbiAqICAgbWVzc2FnZTogJ1NvbWUgaHVtYW4gcmVhZGFibGUgZXJyb3IgbWVzc2FnZScgfVxuICogYGBgXG4gKlxuICogSW4gdGhlIGNhc2Ugb2YgYW4gZXJyb3IsIHRoZSBgZGF0YWAgcHJvcGVydHkgd2lsbCBiZSBgbnVsbGAuXG4gKiBOb3RlIHRoYXQgaWYgeW91IGhhbmRsZSBldmVudHMgdGhhdCBjYW4gYmUgaW4gYSBmYWlsdXJlIHN0YXRlLFxuICogeW91IHNob3VsZCBhbHdheXMgY2hlY2sgd2hldGhlciBgcmVzcG9uc2UuZXJyb3JgIGlzIHNldFxuICogYmVmb3JlIGF0dGVtcHRpbmcgdG8gYWNjZXNzIHRoZSBgcmVzcG9uc2UuZGF0YWAgcHJvcGVydHkuXG4gKlxuICogQCFhdHRyaWJ1dGUgZGF0YVxuICogICBAcmVhZG9ubHlcbiAqICAgQCFncm91cCBEYXRhIFByb3BlcnRpZXNcbiAqICAgQG5vdGUgSW5zaWRlIG9mIGEge0FXUy5SZXF1ZXN0fmh0dHBEYXRhfSBldmVudCwgdGhpc1xuICogICAgIHByb3BlcnR5IGNvbnRhaW5zIGEgc2luZ2xlIHJhdyBwYWNrZXQgaW5zdGVhZCBvZiB0aGVcbiAqICAgICBmdWxsIGRlLXNlcmlhbGl6ZWQgc2VydmljZSByZXNwb25zZS5cbiAqICAgQHJldHVybiBbT2JqZWN0XSB0aGUgZGUtc2VyaWFsaXplZCByZXNwb25zZSBkYXRhXG4gKiAgICAgZnJvbSB0aGUgc2VydmljZS5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBlcnJvclxuICogICBBbiBzdHJ1Y3R1cmUgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNlcnZpY2VcbiAqICAgb3IgbmV0d29ya2luZyBlcnJvci5cbiAqICAgQHJlYWRvbmx5XG4gKiAgIEAhZ3JvdXAgRGF0YSBQcm9wZXJ0aWVzXG4gKiAgIEBub3RlIFRoaXMgYXR0cmlidXRlIGlzIG9ubHkgZmlsbGVkIGlmIGEgc2VydmljZSBvclxuICogICAgIG5ldHdvcmtpbmcgZXJyb3Igb2NjdXJzLlxuICogICBAcmV0dXJuIFtFcnJvcl1cbiAqICAgICAqIGNvZGUgW1N0cmluZ10gYSB1bmlxdWUgc2hvcnQgY29kZSByZXByZXNlbnRpbmcgdGhlXG4gKiAgICAgICBlcnJvciB0aGF0IHdhcyBlbWl0dGVkLlxuICogICAgICogbWVzc2FnZSBbU3RyaW5nXSBhIGxvbmdlciBodW1hbiByZWFkYWJsZSBlcnJvciBtZXNzYWdlXG4gKiAgICAgKiByZXRyeWFibGUgW0Jvb2xlYW5dIHdoZXRoZXIgdGhlIGVycm9yIG1lc3NhZ2UgaXNcbiAqICAgICAgIHJldHJ5YWJsZS5cbiAqICAgICAqIHN0YXR1c0NvZGUgW051bWVyaWNdIGluIHRoZSBjYXNlIG9mIGEgcmVxdWVzdCB0aGF0IHJlYWNoZWQgdGhlIHNlcnZpY2UsXG4gKiAgICAgICB0aGlzIHZhbHVlIGNvbnRhaW5zIHRoZSByZXNwb25zZSBzdGF0dXMgY29kZS5cbiAqICAgICAqIHRpbWUgW0RhdGVdIHRoZSBkYXRlIHRpbWUgb2JqZWN0IHdoZW4gdGhlIGVycm9yIG9jY3VycmVkLlxuICogICAgICogaG9zdG5hbWUgW1N0cmluZ10gc2V0IHdoZW4gYSBuZXR3b3JraW5nIGVycm9yIG9jY3VycyB0byBlYXNpbHlcbiAqICAgICAgIGlkZW50aWZ5IHRoZSBlbmRwb2ludCBvZiB0aGUgcmVxdWVzdC5cbiAqICAgICAqIHJlZ2lvbiBbU3RyaW5nXSBzZXQgd2hlbiBhIG5ldHdvcmtpbmcgZXJyb3Igb2NjdXJzIHRvIGVhc2lseVxuICogICAgICAgaWRlbnRpZnkgdGhlIHJlZ2lvbiBvZiB0aGUgcmVxdWVzdC5cbiAqXG4gKiBAIWF0dHJpYnV0ZSByZXF1ZXN0SWRcbiAqICAgQHJlYWRvbmx5XG4gKiAgIEAhZ3JvdXAgRGF0YSBQcm9wZXJ0aWVzXG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIHVuaXF1ZSByZXF1ZXN0IElEIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzcG9uc2UuXG4gKiAgICAgTG9nIHRoaXMgdmFsdWUgd2hlbiBkZWJ1Z2dpbmcgcmVxdWVzdHMgZm9yIEFXUyBzdXBwb3J0LlxuICpcbiAqIEAhYXR0cmlidXRlIHJldHJ5Q291bnRcbiAqICAgQHJlYWRvbmx5XG4gKiAgIEAhZ3JvdXAgT3BlcmF0aW9uIFByb3BlcnRpZXNcbiAqICAgQHJldHVybiBbSW50ZWdlcl0gdGhlIG51bWJlciBvZiByZXRyaWVzIHRoYXQgd2VyZVxuICogICAgIGF0dGVtcHRlZCBiZWZvcmUgdGhlIHJlcXVlc3Qgd2FzIGNvbXBsZXRlZC5cbiAqXG4gKiBAIWF0dHJpYnV0ZSByZWRpcmVjdENvdW50XG4gKiAgIEByZWFkb25seVxuICogICBAIWdyb3VwIE9wZXJhdGlvbiBQcm9wZXJ0aWVzXG4gKiAgIEByZXR1cm4gW0ludGVnZXJdIHRoZSBudW1iZXIgb2YgcmVkaXJlY3RzIHRoYXQgd2VyZVxuICogICAgIGZvbGxvd2VkIGJlZm9yZSB0aGUgcmVxdWVzdCB3YXMgY29tcGxldGVkLlxuICpcbiAqIEAhYXR0cmlidXRlIGh0dHBSZXNwb25zZVxuICogICBAcmVhZG9ubHlcbiAqICAgQCFncm91cCBIVFRQIFByb3BlcnRpZXNcbiAqICAgQHJldHVybiBbQVdTLkh0dHBSZXNwb25zZV0gdGhlIHJhdyBIVFRQIHJlc3BvbnNlIG9iamVjdFxuICogICAgIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIGhlYWRlcnMgYW5kIGJvZHkgaW5mb3JtYXRpb25cbiAqICAgICBmcm9tIHRoZSBzZXJ2ZXIuXG4gKlxuICogQHNlZSBBV1MuUmVxdWVzdFxuICovXG5BV1MuUmVzcG9uc2UgPSBpbmhlcml0KHtcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gUmVzcG9uc2UocmVxdWVzdCkge1xuICAgIHRoaXMucmVxdWVzdCA9IHJlcXVlc3Q7XG4gICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICB0aGlzLmVycm9yID0gbnVsbDtcbiAgICB0aGlzLnJldHJ5Q291bnQgPSAwO1xuICAgIHRoaXMucmVkaXJlY3RDb3VudCA9IDA7XG4gICAgdGhpcy5odHRwUmVzcG9uc2UgPSBuZXcgQVdTLkh0dHBSZXNwb25zZSgpO1xuICAgIGlmIChyZXF1ZXN0KSB7XG4gICAgICB0aGlzLm1heFJldHJpZXMgPSByZXF1ZXN0LnNlcnZpY2UubnVtUmV0cmllcygpO1xuICAgICAgdGhpcy5tYXhSZWRpcmVjdHMgPSByZXF1ZXN0LnNlcnZpY2UuY29uZmlnLm1heFJlZGlyZWN0cztcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcmVxdWVzdCBmb3IgdGhlIG5leHQgcGFnZSBvZiByZXNwb25zZSBkYXRhLCBjYWxsaW5nIHRoZVxuICAgKiBjYWxsYmFjayB3aXRoIHRoZSBwYWdlIGRhdGEgaWYgYSBjYWxsYmFjayBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVyciwgZGF0YSlcbiAgICogICBDYWxsZWQgd2hlbiBhIHBhZ2Ugb2YgZGF0YSBpcyByZXR1cm5lZCBmcm9tIHRoZSBuZXh0IHJlcXVlc3QuXG4gICAqXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIGFuIGVycm9yIG9iamVjdCwgaWYgYW4gZXJyb3Igb2NjdXJyZWQgaW4gdGhlIHJlcXVlc3RcbiAgICogICBAcGFyYW0gZGF0YSBbT2JqZWN0XSB0aGUgbmV4dCBwYWdlIG9mIGRhdGEsIG9yIG51bGwsIGlmIHRoZXJlIGFyZSBub1xuICAgKiAgICAgbW9yZSBwYWdlcyBsZWZ0LlxuICAgKiBAcmV0dXJuIFtBV1MuUmVxdWVzdF0gdGhlIHJlcXVlc3Qgb2JqZWN0IGZvciB0aGUgbmV4dCBwYWdlIG9mIGRhdGFcbiAgICogQHJldHVybiBbbnVsbF0gaWYgbm8gY2FsbGJhY2sgaXMgcHJvdmlkZWQgYW5kIHRoZXJlIGFyZSBubyBwYWdlcyBsZWZ0XG4gICAqICAgdG8gcmV0cmlldmUuXG4gICAqIEBzaW5jZSB2MS40LjBcbiAgICovXG4gIG5leHRQYWdlOiBmdW5jdGlvbiBuZXh0UGFnZShjYWxsYmFjaykge1xuICAgIHZhciBjb25maWc7XG4gICAgdmFyIHNlcnZpY2UgPSB0aGlzLnJlcXVlc3Quc2VydmljZTtcbiAgICB2YXIgb3BlcmF0aW9uID0gdGhpcy5yZXF1ZXN0Lm9wZXJhdGlvbjtcbiAgICB0cnkge1xuICAgICAgY29uZmlnID0gc2VydmljZS5wYWdpbmF0aW9uQ29uZmlnKG9wZXJhdGlvbiwgdHJ1ZSk7XG4gICAgfSBjYXRjaCAoZSkgeyB0aGlzLmVycm9yID0gZTsgfVxuXG4gICAgaWYgKCF0aGlzLmhhc05leHRQYWdlKCkpIHtcbiAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2sodGhpcy5lcnJvciwgbnVsbCk7XG4gICAgICBlbHNlIGlmICh0aGlzLmVycm9yKSB0aHJvdyB0aGlzLmVycm9yO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIHBhcmFtcyA9IEFXUy51dGlsLmNvcHkodGhpcy5yZXF1ZXN0LnBhcmFtcyk7XG4gICAgaWYgKCF0aGlzLm5leHRQYWdlVG9rZW5zKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2sgPyBjYWxsYmFjayhudWxsLCBudWxsKSA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBpbnB1dFRva2VucyA9IGNvbmZpZy5pbnB1dFRva2VuO1xuICAgICAgaWYgKHR5cGVvZiBpbnB1dFRva2VucyA9PT0gJ3N0cmluZycpIGlucHV0VG9rZW5zID0gW2lucHV0VG9rZW5zXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRUb2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcGFyYW1zW2lucHV0VG9rZW5zW2ldXSA9IHRoaXMubmV4dFBhZ2VUb2tlbnNbaV07XG4gICAgICB9XG4gICAgICByZXR1cm4gc2VydmljZS5tYWtlUmVxdWVzdCh0aGlzLnJlcXVlc3Qub3BlcmF0aW9uLCBwYXJhbXMsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgbW9yZSBwYWdlcyBvZiBkYXRhIGNhbiBiZSByZXR1cm5lZCBieSBmdXJ0aGVyXG4gICAqICAgcmVxdWVzdHNcbiAgICogQHNpbmNlIHYxLjQuMFxuICAgKi9cbiAgaGFzTmV4dFBhZ2U6IGZ1bmN0aW9uIGhhc05leHRQYWdlKCkge1xuICAgIHRoaXMuY2FjaGVOZXh0UGFnZVRva2VucygpO1xuICAgIGlmICh0aGlzLm5leHRQYWdlVG9rZW5zKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodGhpcy5uZXh0UGFnZVRva2VucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNhY2hlTmV4dFBhZ2VUb2tlbnM6IGZ1bmN0aW9uIGNhY2hlTmV4dFBhZ2VUb2tlbnMoKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLCAnbmV4dFBhZ2VUb2tlbnMnKSkgcmV0dXJuIHRoaXMubmV4dFBhZ2VUb2tlbnM7XG4gICAgdGhpcy5uZXh0UGFnZVRva2VucyA9IHVuZGVmaW5lZDtcblxuICAgIHZhciBjb25maWcgPSB0aGlzLnJlcXVlc3Quc2VydmljZS5wYWdpbmF0aW9uQ29uZmlnKHRoaXMucmVxdWVzdC5vcGVyYXRpb24pO1xuICAgIGlmICghY29uZmlnKSByZXR1cm4gdGhpcy5uZXh0UGFnZVRva2VucztcblxuICAgIHRoaXMubmV4dFBhZ2VUb2tlbnMgPSBudWxsO1xuICAgIGlmIChjb25maWcubW9yZVJlc3VsdHMpIHtcbiAgICAgIGlmICgham1lc3BhdGguc2VhcmNoKHRoaXMuZGF0YSwgY29uZmlnLm1vcmVSZXN1bHRzKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZXh0UGFnZVRva2VucztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZXhwcnMgPSBjb25maWcub3V0cHV0VG9rZW47XG4gICAgaWYgKHR5cGVvZiBleHBycyA9PT0gJ3N0cmluZycpIGV4cHJzID0gW2V4cHJzXTtcbiAgICBBV1MudXRpbC5hcnJheUVhY2guY2FsbCh0aGlzLCBleHBycywgZnVuY3Rpb24gKGV4cHIpIHtcbiAgICAgIHZhciBvdXRwdXQgPSBqbWVzcGF0aC5zZWFyY2godGhpcy5kYXRhLCBleHByKTtcbiAgICAgIGlmIChvdXRwdXQpIHtcbiAgICAgICAgdGhpcy5uZXh0UGFnZVRva2VucyA9IHRoaXMubmV4dFBhZ2VUb2tlbnMgfHwgW107XG4gICAgICAgIHRoaXMubmV4dFBhZ2VUb2tlbnMucHVzaChvdXRwdXQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dFBhZ2VUb2tlbnM7XG4gIH1cblxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIGJ5dGVMZW5ndGggPSBBV1MudXRpbC5zdHJpbmcuYnl0ZUxlbmd0aDtcbnZhciBCdWZmZXIgPSBBV1MudXRpbC5CdWZmZXI7XG5cbi8qKlxuICogVGhlIG1hbmFnZWQgdXBsb2FkZXIgYWxsb3dzIGZvciBlYXN5IGFuZCBlZmZpY2llbnQgdXBsb2FkaW5nIG9mIGJ1ZmZlcnMsXG4gKiBibG9icywgb3Igc3RyZWFtcywgdXNpbmcgYSBjb25maWd1cmFibGUgYW1vdW50IG9mIGNvbmN1cnJlbmN5IHRvIHBlcmZvcm1cbiAqIG11bHRpcGFydCB1cGxvYWRzIHdoZXJlIHBvc3NpYmxlLiBUaGlzIGFic3RyYWN0aW9uIGFsc28gZW5hYmxlcyB1cGxvYWRpbmdcbiAqIHN0cmVhbXMgb2YgdW5rbm93biBzaXplIGR1ZSB0byB0aGUgdXNlIG9mIG11bHRpcGFydCB1cGxvYWRzLlxuICpcbiAqIFRvIGNvbnN0cnVjdCBhIG1hbmFnZWQgdXBsb2FkIG9iamVjdCwgc2VlIHRoZSB7Y29uc3RydWN0b3J9IGZ1bmN0aW9uLlxuICpcbiAqICMjIFRyYWNraW5nIHVwbG9hZCBwcm9ncmVzc1xuICpcbiAqIFRoZSBtYW5hZ2VkIHVwbG9hZCBvYmplY3QgY2FuIGFsc28gdHJhY2sgcHJvZ3Jlc3MgYnkgYXR0YWNoaW5nIGFuXG4gKiAnaHR0cFVwbG9hZFByb2dyZXNzJyBsaXN0ZW5lciB0byB0aGUgdXBsb2FkIG1hbmFnZXIuIFRoaXMgZXZlbnQgaXMgc2ltaWxhclxuICogdG8ge0FXUy5SZXF1ZXN0fmh0dHBVcGxvYWRQcm9ncmVzc30gYnV0IGdyb3VwcyBhbGwgY29uY3VycmVudCB1cGxvYWQgcHJvZ3Jlc3NcbiAqIGludG8gYSBzaW5nbGUgZXZlbnQuIFNlZSB7QVdTLlMzLk1hbmFnZWRVcGxvYWR+aHR0cFVwbG9hZFByb2dyZXNzfSBmb3IgbW9yZVxuICogaW5mb3JtYXRpb24uXG4gKlxuICogIyMgSGFuZGxpbmcgTXVsdGlwYXJ0IENsZWFudXBcbiAqXG4gKiBCeSBkZWZhdWx0LCB0aGlzIGNsYXNzIHdpbGwgYXV0b21hdGljYWxseSBjbGVhbiB1cCBhbnkgbXVsdGlwYXJ0IHVwbG9hZHNcbiAqIHdoZW4gYW4gaW5kaXZpZHVhbCBwYXJ0IHVwbG9hZCBmYWlscy4gVGhpcyBiZWhhdmlvciBjYW4gYmUgZGlzYWJsZWQgaW4gb3JkZXJcbiAqIHRvIG1hbnVhbGx5IGhhbmRsZSBmYWlsdXJlcyBieSBzZXR0aW5nIHRoZSBgbGVhdmVQYXJ0c09uRXJyb3JgIGNvbmZpZ3VyYXRpb25cbiAqIG9wdGlvbiB0byBgdHJ1ZWAgd2hlbiBpbml0aWFsaXppbmcgdGhlIHVwbG9hZCBvYmplY3QuXG4gKlxuICogQCFldmVudCBodHRwVXBsb2FkUHJvZ3Jlc3MocHJvZ3Jlc3MpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIHRoZSB1cGxvYWRlciBoYXMgdXBsb2FkZWQgbW9yZSBkYXRhLlxuICogICBAbm90ZSBUaGUgYHRvdGFsYCBwcm9wZXJ0eSBtYXkgbm90IGJlIHNldCBpZiB0aGUgc3RyZWFtIGJlaW5nIHVwbG9hZGVkIGhhc1xuICogICAgIG5vdCB5ZXQgZmluaXNoZWQgY2h1bmtpbmcuIEluIHRoaXMgY2FzZSB0aGUgYHRvdGFsYCB3aWxsIGJlIHVuZGVmaW5lZFxuICogICAgIHVudGlsIHRoZSB0b3RhbCBzdHJlYW0gc2l6ZSBpcyBrbm93bi5cbiAqICAgQG5vdGUgVGhpcyBldmVudCB3aWxsIG5vdCBiZSBlbWl0dGVkIGluIE5vZGUuanMgMC44LnguXG4gKiAgIEBwYXJhbSBwcm9ncmVzcyBbbWFwXSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYGxvYWRlZGAgYW5kIGB0b3RhbGAgYnl0ZXNcbiAqICAgICBvZiB0aGUgcmVxdWVzdCBhbmQgdGhlIGBrZXlgIG9mIHRoZSBTMyBvYmplY3QuIE5vdGUgdGhhdCBgdG90YWxgIG1heSBiZSB1bmRlZmluZWQgdW50aWwgdGhlIHBheWxvYWRcbiAqICAgICBzaXplIGlzIGtub3duLlxuICogICBAY29udGV4dCAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKi9cbkFXUy5TMy5NYW5hZ2VkVXBsb2FkID0gQVdTLnV0aWwuaW5oZXJpdCh7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbWFuYWdlZCB1cGxvYWQgb2JqZWN0IHdpdGggYSBzZXQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKlxuICAgKiBAbm90ZSBBIFwiQm9keVwiIHBhcmFtZXRlciBpcyByZXF1aXJlZCB0byBiZSBzZXQgcHJpb3IgdG8gY2FsbGluZyB7c2VuZH0uXG4gICAqIEBvcHRpb24gb3B0aW9ucyBwYXJhbXMgW21hcF0gYSBtYXAgb2YgcGFyYW1ldGVycyB0byBwYXNzIHRvIHRoZSB1cGxvYWRcbiAgICogICByZXF1ZXN0cy4gVGhlIFwiQm9keVwiIHBhcmFtZXRlciBpcyByZXF1aXJlZCB0byBiZSBzcGVjaWZpZWQgZWl0aGVyIG9uXG4gICAqICAgdGhlIHNlcnZpY2Ugb3IgaW4gdGhlIHBhcmFtcyBvcHRpb24uXG4gICAqIEBub3RlIENvbnRlbnRNRDUgc2hvdWxkIG5vdCBiZSBwcm92aWRlZCB3aGVuIHVzaW5nIHRoZSBtYW5hZ2VkIHVwbG9hZCBvYmplY3QuXG4gICAqICAgSW5zdGVhZCwgc2V0dGluZyBcImNvbXB1dGVDaGVja3N1bXNcIiB0byB0cnVlIHdpbGwgZW5hYmxlIGF1dG9tYXRpYyBDb250ZW50TUQ1IGdlbmVyYXRpb25cbiAgICogICBieSB0aGUgbWFuYWdlZCB1cGxvYWQgb2JqZWN0LlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgcXVldWVTaXplIFtOdW1iZXJdICg0KSB0aGUgc2l6ZSBvZiB0aGUgY29uY3VycmVudCBxdWV1ZVxuICAgKiAgIG1hbmFnZXIgdG8gdXBsb2FkIHBhcnRzIGluIHBhcmFsbGVsLiBTZXQgdG8gMSBmb3Igc3luY2hyb25vdXMgdXBsb2FkaW5nXG4gICAqICAgb2YgcGFydHMuIE5vdGUgdGhhdCB0aGUgdXBsb2FkZXIgd2lsbCBidWZmZXIgYXQgbW9zdCBxdWV1ZVNpemUgKiBwYXJ0U2l6ZVxuICAgKiAgIGJ5dGVzIGludG8gbWVtb3J5IGF0IGFueSBnaXZlbiB0aW1lLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgcGFydFNpemUgW051bWJlcl0gKDVtYikgdGhlIHNpemUgaW4gYnl0ZXMgZm9yIGVhY2hcbiAgICogICBpbmRpdmlkdWFsIHBhcnQgdG8gYmUgdXBsb2FkZWQuIEFkanVzdCB0aGUgcGFydCBzaXplIHRvIGVuc3VyZSB0aGUgbnVtYmVyXG4gICAqICAgb2YgcGFydHMgZG9lcyBub3QgZXhjZWVkIHttYXhUb3RhbFBhcnRzfS4gU2VlIHttaW5QYXJ0U2l6ZX0gZm9yIHRoZVxuICAgKiAgIG1pbmltdW0gYWxsb3dlZCBwYXJ0IHNpemUuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBsZWF2ZVBhcnRzT25FcnJvciBbQm9vbGVhbl0gKGZhbHNlKSB3aGV0aGVyIHRvIGFib3J0IHRoZVxuICAgKiAgIG11bHRpcGFydCB1cGxvYWQgaWYgYW4gZXJyb3Igb2NjdXJzLiBTZXQgdG8gdHJ1ZSBpZiB5b3Ugd2FudCB0byBoYW5kbGVcbiAgICogICBmYWlsdXJlcyBtYW51YWxseS5cbiAgICogQG9wdGlvbiBvcHRpb25zIHNlcnZpY2UgW0FXUy5TM10gYW4gb3B0aW9uYWwgUzMgc2VydmljZSBvYmplY3QgdG8gdXNlIGZvclxuICAgKiAgIHJlcXVlc3RzLiBUaGlzIG9iamVjdCBtaWdodCBoYXZlIGJvdW5kIHBhcmFtZXRlcnMgdXNlZCBieSB0aGUgdXBsb2FkZXIuXG4gICAqIEBvcHRpb24gb3B0aW9ucyB0YWdzIFtBcnJheTxtYXA+XSBUaGUgdGFncyB0byBhcHBseSB0byB0aGUgdXBsb2FkZWQgb2JqZWN0LlxuICAgKiAgIEVhY2ggdGFnIHNob3VsZCBoYXZlIGEgYEtleWAgYW5kIGBWYWx1ZWAga2V5cy5cbiAgICogQGV4YW1wbGUgQ3JlYXRpbmcgYSBkZWZhdWx0IHVwbG9hZGVyIGZvciBhIHN0cmVhbSBvYmplY3RcbiAgICogICB2YXIgdXBsb2FkID0gbmV3IEFXUy5TMy5NYW5hZ2VkVXBsb2FkKHtcbiAgICogICAgIHBhcmFtczoge0J1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleScsIEJvZHk6IHN0cmVhbX1cbiAgICogICB9KTtcbiAgICogQGV4YW1wbGUgQ3JlYXRpbmcgYW4gdXBsb2FkZXIgd2l0aCBjb25jdXJyZW5jeSBvZiAxIGFuZCBwYXJ0U2l6ZSBvZiAxMG1iXG4gICAqICAgdmFyIHVwbG9hZCA9IG5ldyBBV1MuUzMuTWFuYWdlZFVwbG9hZCh7XG4gICAqICAgICBwYXJ0U2l6ZTogMTAgKiAxMDI0ICogMTAyNCwgcXVldWVTaXplOiAxLFxuICAgKiAgICAgcGFyYW1zOiB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgQm9keTogc3RyZWFtfVxuICAgKiAgIH0pO1xuICAgKiBAZXhhbXBsZSBDcmVhdGluZyBhbiB1cGxvYWRlciB3aXRoIHRhZ3NcbiAgICogICB2YXIgdXBsb2FkID0gbmV3IEFXUy5TMy5NYW5hZ2VkVXBsb2FkKHtcbiAgICogICAgIHBhcmFtczoge0J1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleScsIEJvZHk6IHN0cmVhbX0sXG4gICAqICAgICB0YWdzOiBbe0tleTogJ3RhZzEnLCBWYWx1ZTogJ3ZhbHVlMSd9LCB7S2V5OiAndGFnMicsIFZhbHVlOiAndmFsdWUyJ31dXG4gICAqICAgfSk7XG4gICAqIEBzZWUgc2VuZFxuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIE1hbmFnZWRVcGxvYWQob3B0aW9ucykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yLmNhbGwoc2VsZik7XG4gICAgc2VsZi5ib2R5ID0gbnVsbDtcbiAgICBzZWxmLnNsaWNlRm4gPSBudWxsO1xuICAgIHNlbGYuY2FsbGJhY2sgPSBudWxsO1xuICAgIHNlbGYucGFydHMgPSB7fTtcbiAgICBzZWxmLmNvbXBsZXRlSW5mbyA9IFtdO1xuICAgIHNlbGYuZmlsbFF1ZXVlID0gZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLmNhbGxiYWNrKG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgYm9keSBwYXlsb2FkICcgKyB0eXBlb2Ygc2VsZi5ib2R5KSk7XG4gICAgfTtcblxuICAgIHNlbGYuY29uZmlndXJlKG9wdGlvbnMpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNvbmZpZ3VyZTogZnVuY3Rpb24gY29uZmlndXJlKG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLnBhcnRTaXplID0gdGhpcy5taW5QYXJ0U2l6ZTtcblxuICAgIGlmIChvcHRpb25zLnF1ZXVlU2l6ZSkgdGhpcy5xdWV1ZVNpemUgPSBvcHRpb25zLnF1ZXVlU2l6ZTtcbiAgICBpZiAob3B0aW9ucy5wYXJ0U2l6ZSkgdGhpcy5wYXJ0U2l6ZSA9IG9wdGlvbnMucGFydFNpemU7XG4gICAgaWYgKG9wdGlvbnMubGVhdmVQYXJ0c09uRXJyb3IpIHRoaXMubGVhdmVQYXJ0c09uRXJyb3IgPSB0cnVlO1xuICAgIGlmIChvcHRpb25zLnRhZ3MpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zLnRhZ3MpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGFncyBtdXN0IGJlIHNwZWNpZmllZCBhcyBhbiBhcnJheTsgJyArXG4gICAgICAgICAgdHlwZW9mIG9wdGlvbnMudGFncyArICcgcHJvdmlkZWQuJyk7XG4gICAgICB9XG4gICAgICB0aGlzLnRhZ3MgPSBvcHRpb25zLnRhZ3M7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFydFNpemUgPCB0aGlzLm1pblBhcnRTaXplKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnRTaXplIG11c3QgYmUgZ3JlYXRlciB0aGFuICcgK1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWluUGFydFNpemUpO1xuICAgIH1cblxuICAgIHRoaXMuc2VydmljZSA9IG9wdGlvbnMuc2VydmljZTtcbiAgICB0aGlzLmJpbmRTZXJ2aWNlT2JqZWN0KG9wdGlvbnMucGFyYW1zKTtcbiAgICB0aGlzLnZhbGlkYXRlQm9keSgpO1xuICAgIHRoaXMuYWRqdXN0VG90YWxCeXRlcygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGxlYXZlUGFydHNPbkVycm9yOiBmYWxzZSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBxdWV1ZVNpemU6IDQsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcGFydFNpemU6IG51bGwsXG5cbiAgLyoqXG4gICAqIEByZWFkb25seVxuICAgKiBAcmV0dXJuIFtOdW1iZXJdIHRoZSBtaW5pbXVtIG51bWJlciBvZiBieXRlcyBmb3IgYW4gaW5kaXZpZHVhbCBwYXJ0XG4gICAqICAgdXBsb2FkLlxuICAgKi9cbiAgbWluUGFydFNpemU6IDEwMjQgKiAxMDI0ICogNSxcblxuICAvKipcbiAgICogQHJlYWRvbmx5XG4gICAqIEByZXR1cm4gW051bWJlcl0gdGhlIG1heGltdW0gYWxsb3dlZCBudW1iZXIgb2YgcGFydHMgaW4gYSBtdWx0aXBhcnQgdXBsb2FkLlxuICAgKi9cbiAgbWF4VG90YWxQYXJ0czogMTAwMDAsXG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyB0aGUgbWFuYWdlZCB1cGxvYWQgZm9yIHRoZSBwYXlsb2FkLlxuICAgKlxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyLCBkYXRhKVxuICAgKiAgIEBwYXJhbSBlcnIgW0Vycm9yXSBhbiBlcnJvciBvciBudWxsIGlmIG5vIGVycm9yIG9jY3VycmVkLlxuICAgKiAgIEBwYXJhbSBkYXRhIFttYXBdIFRoZSByZXNwb25zZSBkYXRhIGZyb20gdGhlIHN1Y2Nlc3NmdWwgdXBsb2FkOlxuICAgKiAgICAgKiBgTG9jYXRpb25gIChTdHJpbmcpIHRoZSBVUkwgb2YgdGhlIHVwbG9hZGVkIG9iamVjdFxuICAgKiAgICAgKiBgRVRhZ2AgKFN0cmluZykgdGhlIEVUYWcgb2YgdGhlIHVwbG9hZGVkIG9iamVjdFxuICAgKiAgICAgKiBgQnVja2V0YCAoU3RyaW5nKSB0aGUgYnVja2V0IHRvIHdoaWNoIHRoZSBvYmplY3Qgd2FzIHVwbG9hZGVkXG4gICAqICAgICAqIGBLZXlgIChTdHJpbmcpIHRoZSBrZXkgdG8gd2hpY2ggdGhlIG9iamVjdCB3YXMgdXBsb2FkZWRcbiAgICogQGV4YW1wbGUgU2VuZGluZyBhIG1hbmFnZWQgdXBsb2FkIG9iamVjdFxuICAgKiAgIHZhciBwYXJhbXMgPSB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgQm9keTogc3RyZWFtfTtcbiAgICogICB2YXIgdXBsb2FkID0gbmV3IEFXUy5TMy5NYW5hZ2VkVXBsb2FkKHtwYXJhbXM6IHBhcmFtc30pO1xuICAgKiAgIHVwbG9hZC5zZW5kKGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgKiAgICAgY29uc29sZS5sb2coZXJyLCBkYXRhKTtcbiAgICogICB9KTtcbiAgICovXG4gIHNlbmQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuZmFpbGVkID0gZmFsc2U7XG4gICAgc2VsZi5jYWxsYmFjayA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uKGVycikgeyBpZiAoZXJyKSB0aHJvdyBlcnI7IH07XG5cbiAgICB2YXIgcnVuRmlsbCA9IHRydWU7XG4gICAgaWYgKHNlbGYuc2xpY2VGbikge1xuICAgICAgc2VsZi5maWxsUXVldWUgPSBzZWxmLmZpbGxCdWZmZXI7XG4gICAgfSBlbHNlIGlmIChBV1MudXRpbC5pc05vZGUoKSkge1xuICAgICAgdmFyIFN0cmVhbSA9IEFXUy51dGlsLnN0cmVhbS5TdHJlYW07XG4gICAgICBpZiAoc2VsZi5ib2R5IGluc3RhbmNlb2YgU3RyZWFtKSB7XG4gICAgICAgIHJ1bkZpbGwgPSBmYWxzZTtcbiAgICAgICAgc2VsZi5maWxsUXVldWUgPSBzZWxmLmZpbGxTdHJlYW07XG4gICAgICAgIHNlbGYucGFydEJ1ZmZlcnMgPSBbXTtcbiAgICAgICAgc2VsZi5ib2R5LlxuICAgICAgICAgIG9uKCdlcnJvcicsIGZ1bmN0aW9uKGVycikgeyBzZWxmLmNsZWFudXAoZXJyKTsgfSkuXG4gICAgICAgICAgb24oJ3JlYWRhYmxlJywgZnVuY3Rpb24oKSB7IHNlbGYuZmlsbFF1ZXVlKCk7IH0pLlxuICAgICAgICAgIG9uKCdlbmQnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHNlbGYuaXNEb25lQ2h1bmtpbmcgPSB0cnVlO1xuICAgICAgICAgICAgc2VsZi5udW1QYXJ0cyA9IHNlbGYudG90YWxQYXJ0TnVtYmVycztcbiAgICAgICAgICAgIHNlbGYuZmlsbFF1ZXVlLmNhbGwoc2VsZik7XG5cbiAgICAgICAgICAgIGlmIChzZWxmLmlzRG9uZUNodW5raW5nICYmIHNlbGYudG90YWxQYXJ0TnVtYmVycyA+PSAxICYmIHNlbGYuZG9uZVBhcnRzID09PSBzZWxmLm51bVBhcnRzKSB7XG4gICAgICAgICAgICAgIHNlbGYuZmluaXNoTXVsdGlQYXJ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJ1bkZpbGwpIHNlbGYuZmlsbFF1ZXVlLmNhbGwoc2VsZik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEAhbWV0aG9kICBwcm9taXNlKClcbiAgICogICBSZXR1cm5zIGEgJ3RoZW5hYmxlJyBwcm9taXNlLlxuICAgKlxuICAgKiAgIFR3byBjYWxsYmFja3MgY2FuIGJlIHByb3ZpZGVkIHRvIHRoZSBgdGhlbmAgbWV0aG9kIG9uIHRoZSByZXR1cm5lZCBwcm9taXNlLlxuICAgKiAgIFRoZSBmaXJzdCBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQsIGFuZCB0aGUgc2Vjb25kXG4gICAqICAgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAqICAgQGNhbGxiYWNrIGZ1bGZpbGxlZENhbGxiYWNrIGZ1bmN0aW9uKGRhdGEpXG4gICAqICAgICBDYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLlxuICAgKiAgICAgQHBhcmFtIGRhdGEgW21hcF0gVGhlIHJlc3BvbnNlIGRhdGEgZnJvbSB0aGUgc3VjY2Vzc2Z1bCB1cGxvYWQ6XG4gICAqICAgICAgIGBMb2NhdGlvbmAgKFN0cmluZykgdGhlIFVSTCBvZiB0aGUgdXBsb2FkZWQgb2JqZWN0XG4gICAqICAgICAgIGBFVGFnYCAoU3RyaW5nKSB0aGUgRVRhZyBvZiB0aGUgdXBsb2FkZWQgb2JqZWN0XG4gICAqICAgICAgIGBCdWNrZXRgIChTdHJpbmcpIHRoZSBidWNrZXQgdG8gd2hpY2ggdGhlIG9iamVjdCB3YXMgdXBsb2FkZWRcbiAgICogICAgICAgYEtleWAgKFN0cmluZykgdGhlIGtleSB0byB3aGljaCB0aGUgb2JqZWN0IHdhcyB1cGxvYWRlZFxuICAgKiAgIEBjYWxsYmFjayByZWplY3RlZENhbGxiYWNrIGZ1bmN0aW9uKGVycilcbiAgICogICAgIENhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICogICAgIEBwYXJhbSBlcnIgW0Vycm9yXSBhbiBlcnJvciBvciBudWxsIGlmIG5vIGVycm9yIG9jY3VycmVkLlxuICAgKiAgIEByZXR1cm4gW1Byb21pc2VdIEEgcHJvbWlzZSB0aGF0IHJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSB1cGxvYWQgcmVxdWVzdC5cbiAgICogICBAZXhhbXBsZSBTZW5kaW5nIGFuIHVwbG9hZCByZXF1ZXN0IHVzaW5nIHByb21pc2VzLlxuICAgKiAgICAgdmFyIHVwbG9hZCA9IHMzLnVwbG9hZCh7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgQm9keTogc3RyZWFtfSk7XG4gICAqICAgICB2YXIgcHJvbWlzZSA9IHVwbG9hZC5wcm9taXNlKCk7XG4gICAqICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24oZGF0YSkgeyAuLi4gfSwgZnVuY3Rpb24oZXJyKSB7IC4uLiB9KTtcbiAgICovXG5cbiAgLyoqXG4gICAqIEFib3J0cyBhIG1hbmFnZWQgdXBsb2FkLCBpbmNsdWRpbmcgYWxsIGNvbmN1cnJlbnQgdXBsb2FkIHJlcXVlc3RzLlxuICAgKiBAbm90ZSBCeSBkZWZhdWx0LCBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbCBjbGVhbnVwIGEgbXVsdGlwYXJ0IHVwbG9hZFxuICAgKiAgIGlmIG9uZSB3YXMgY3JlYXRlZC4gVG8gbGVhdmUgdGhlIG11bHRpcGFydCB1cGxvYWQgYXJvdW5kIGFmdGVyIGFib3J0aW5nXG4gICAqICAgYSByZXF1ZXN0LCBjb25maWd1cmUgYGxlYXZlUGFydHNPbkVycm9yYCB0byBgdHJ1ZWAgaW4gdGhlIHtjb25zdHJ1Y3Rvcn0uXG4gICAqIEBub3RlIENhbGxpbmcge2Fib3J0fSBpbiB0aGUgYnJvd3NlciBlbnZpcm9ubWVudCB3aWxsIG5vdCBhYm9ydCBhbnkgcmVxdWVzdHNcbiAgICogICB0aGF0IGFyZSBhbHJlYWR5IGluIGZsaWdodC4gSWYgYSBtdWx0aXBhcnQgdXBsb2FkIHdhcyBjcmVhdGVkLCBhbnkgcGFydHNcbiAgICogICBub3QgeWV0IHVwbG9hZGVkIHdpbGwgbm90IGJlIHNlbnQsIGFuZCB0aGUgbXVsdGlwYXJ0IHVwbG9hZCB3aWxsIGJlIGNsZWFuZWQgdXAuXG4gICAqIEBleGFtcGxlIEFib3J0aW5nIGFuIHVwbG9hZFxuICAgKiAgIHZhciBwYXJhbXMgPSB7XG4gICAqICAgICBCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknLFxuICAgKiAgICAgQm9keTogbmV3IEJ1ZmZlcigxMDI0ICogMTAyNCAqIDI1KSAvLyAyNU1CIHBheWxvYWRcbiAgICogICB9O1xuICAgKiAgIHZhciB1cGxvYWQgPSBzMy51cGxvYWQocGFyYW1zKTtcbiAgICogICB1cGxvYWQuc2VuZChmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAqICAgICBpZiAoZXJyKSBjb25zb2xlLmxvZyhcIkVycm9yOlwiLCBlcnIuY29kZSwgZXJyLm1lc3NhZ2UpO1xuICAgKiAgICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogICB9KTtcbiAgICpcbiAgICogICAvLyBhYm9ydCByZXF1ZXN0IGluIDEgc2Vjb25kXG4gICAqICAgc2V0VGltZW91dCh1cGxvYWQuYWJvcnQuYmluZCh1cGxvYWQpLCAxMDAwKTtcbiAgICovXG4gIGFib3J0OiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmNsZWFudXAoQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCdSZXF1ZXN0IGFib3J0ZWQgYnkgdXNlcicpLCB7XG4gICAgICBjb2RlOiAnUmVxdWVzdEFib3J0ZWRFcnJvcicsIHJldHJ5YWJsZTogZmFsc2VcbiAgICB9KSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdmFsaWRhdGVCb2R5OiBmdW5jdGlvbiB2YWxpZGF0ZUJvZHkoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuYm9keSA9IHNlbGYuc2VydmljZS5jb25maWcucGFyYW1zLkJvZHk7XG4gICAgaWYgKHR5cGVvZiBzZWxmLmJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBzZWxmLmJvZHkgPSBuZXcgQVdTLnV0aWwuQnVmZmVyKHNlbGYuYm9keSk7XG4gICAgfSBlbHNlIGlmICghc2VsZi5ib2R5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcmFtcy5Cb2R5IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIHNlbGYuc2xpY2VGbiA9IEFXUy51dGlsLmFycmF5U2xpY2VGbihzZWxmLmJvZHkpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGJpbmRTZXJ2aWNlT2JqZWN0OiBmdW5jdGlvbiBiaW5kU2VydmljZU9iamVjdChwYXJhbXMpIHtcbiAgICBwYXJhbXMgPSBwYXJhbXMgfHwge307XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIC8vIGJpbmQgcGFyYW1ldGVycyB0byBuZXcgc2VydmljZSBvYmplY3RcbiAgICBpZiAoIXNlbGYuc2VydmljZSkge1xuICAgICAgc2VsZi5zZXJ2aWNlID0gbmV3IEFXUy5TMyh7cGFyYW1zOiBwYXJhbXN9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHNlcnZpY2UgPSBzZWxmLnNlcnZpY2U7XG4gICAgICB2YXIgY29uZmlnID0gQVdTLnV0aWwuY29weShzZXJ2aWNlLmNvbmZpZyk7XG4gICAgICBjb25maWcuc2lnbmF0dXJlVmVyc2lvbiA9IHNlcnZpY2UuZ2V0U2lnbmF0dXJlVmVyc2lvbigpO1xuICAgICAgc2VsZi5zZXJ2aWNlID0gbmV3IHNlcnZpY2UuY29uc3RydWN0b3IuX19zdXBlcl9fKGNvbmZpZyk7XG4gICAgICBzZWxmLnNlcnZpY2UuY29uZmlnLnBhcmFtcyA9XG4gICAgICAgIEFXUy51dGlsLm1lcmdlKHNlbGYuc2VydmljZS5jb25maWcucGFyYW1zIHx8IHt9LCBwYXJhbXMpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhZGp1c3RUb3RhbEJ5dGVzOiBmdW5jdGlvbiBhZGp1c3RUb3RhbEJ5dGVzKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0cnkgeyAvLyB0cnkgdG8gZ2V0IHRvdGFsQnl0ZXNcbiAgICAgIHNlbGYudG90YWxCeXRlcyA9IGJ5dGVMZW5ndGgoc2VsZi5ib2R5KTtcbiAgICB9IGNhdGNoIChlKSB7IH1cblxuICAgIC8vIHRyeSB0byBhZGp1c3QgcGFydFNpemUgaWYgd2Uga25vdyBwYXlsb2FkIGxlbmd0aFxuICAgIGlmIChzZWxmLnRvdGFsQnl0ZXMpIHtcbiAgICAgIHZhciBuZXdQYXJ0U2l6ZSA9IE1hdGguY2VpbChzZWxmLnRvdGFsQnl0ZXMgLyBzZWxmLm1heFRvdGFsUGFydHMpO1xuICAgICAgaWYgKG5ld1BhcnRTaXplID4gc2VsZi5wYXJ0U2l6ZSkgc2VsZi5wYXJ0U2l6ZSA9IG5ld1BhcnRTaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxmLnRvdGFsQnl0ZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGlzRG9uZUNodW5raW5nOiBmYWxzZSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwYXJ0UG9zOiAwLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHRvdGFsQ2h1bmtlZEJ5dGVzOiAwLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHRvdGFsVXBsb2FkZWRCeXRlczogMCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB0b3RhbEJ5dGVzOiB1bmRlZmluZWQsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbnVtUGFydHM6IDAsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdG90YWxQYXJ0TnVtYmVyczogMCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhY3RpdmVQYXJ0czogMCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBkb25lUGFydHM6IDAsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcGFydHM6IG51bGwsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY29tcGxldGVJbmZvOiBudWxsLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGZhaWxlZDogZmFsc2UsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbXVsdGlwYXJ0UmVxOiBudWxsLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHBhcnRCdWZmZXJzOiBudWxsLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHBhcnRCdWZmZXJMZW5ndGg6IDAsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZmlsbEJ1ZmZlcjogZnVuY3Rpb24gZmlsbEJ1ZmZlcigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIGJvZHlMZW4gPSBieXRlTGVuZ3RoKHNlbGYuYm9keSk7XG5cbiAgICBpZiAoYm9keUxlbiA9PT0gMCkge1xuICAgICAgc2VsZi5pc0RvbmVDaHVua2luZyA9IHRydWU7XG4gICAgICBzZWxmLm51bVBhcnRzID0gMTtcbiAgICAgIHNlbGYubmV4dENodW5rKHNlbGYuYm9keSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2hpbGUgKHNlbGYuYWN0aXZlUGFydHMgPCBzZWxmLnF1ZXVlU2l6ZSAmJiBzZWxmLnBhcnRQb3MgPCBib2R5TGVuKSB7XG4gICAgICB2YXIgZW5kUG9zID0gTWF0aC5taW4oc2VsZi5wYXJ0UG9zICsgc2VsZi5wYXJ0U2l6ZSwgYm9keUxlbik7XG4gICAgICB2YXIgYnVmID0gc2VsZi5zbGljZUZuLmNhbGwoc2VsZi5ib2R5LCBzZWxmLnBhcnRQb3MsIGVuZFBvcyk7XG4gICAgICBzZWxmLnBhcnRQb3MgKz0gc2VsZi5wYXJ0U2l6ZTtcblxuICAgICAgaWYgKGJ5dGVMZW5ndGgoYnVmKSA8IHNlbGYucGFydFNpemUgfHwgc2VsZi5wYXJ0UG9zID09PSBib2R5TGVuKSB7XG4gICAgICAgIHNlbGYuaXNEb25lQ2h1bmtpbmcgPSB0cnVlO1xuICAgICAgICBzZWxmLm51bVBhcnRzID0gc2VsZi50b3RhbFBhcnROdW1iZXJzICsgMTtcbiAgICAgIH1cbiAgICAgIHNlbGYubmV4dENodW5rKGJ1Zik7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGZpbGxTdHJlYW06IGZ1bmN0aW9uIGZpbGxTdHJlYW0oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmIChzZWxmLmFjdGl2ZVBhcnRzID49IHNlbGYucXVldWVTaXplKSByZXR1cm47XG5cbiAgICB2YXIgYnVmID0gc2VsZi5ib2R5LnJlYWQoc2VsZi5wYXJ0U2l6ZSAtIHNlbGYucGFydEJ1ZmZlckxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgc2VsZi5ib2R5LnJlYWQoKTtcbiAgICBpZiAoYnVmKSB7XG4gICAgICBzZWxmLnBhcnRCdWZmZXJzLnB1c2goYnVmKTtcbiAgICAgIHNlbGYucGFydEJ1ZmZlckxlbmd0aCArPSBidWYubGVuZ3RoO1xuICAgICAgc2VsZi50b3RhbENodW5rZWRCeXRlcyArPSBidWYubGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChzZWxmLnBhcnRCdWZmZXJMZW5ndGggPj0gc2VsZi5wYXJ0U2l6ZSkge1xuICAgICAgLy8gaWYgd2UgaGF2ZSBzaW5nbGUgYnVmZmVyIHdlIGF2b2lkIGNvcHlmdWxsIGNvbmNhdFxuICAgICAgdmFyIHBidWYgPSBzZWxmLnBhcnRCdWZmZXJzLmxlbmd0aCA9PT0gMSA/XG4gICAgICAgIHNlbGYucGFydEJ1ZmZlcnNbMF0gOiBCdWZmZXIuY29uY2F0KHNlbGYucGFydEJ1ZmZlcnMpO1xuICAgICAgc2VsZi5wYXJ0QnVmZmVycyA9IFtdO1xuICAgICAgc2VsZi5wYXJ0QnVmZmVyTGVuZ3RoID0gMDtcblxuICAgICAgLy8gaWYgd2UgaGF2ZSBtb3JlIHRoYW4gcGFydFNpemUsIHB1c2ggdGhlIHJlc3QgYmFjayBvbiB0aGUgcXVldWVcbiAgICAgIGlmIChwYnVmLmxlbmd0aCA+IHNlbGYucGFydFNpemUpIHtcbiAgICAgICAgdmFyIHJlc3QgPSBwYnVmLnNsaWNlKHNlbGYucGFydFNpemUpO1xuICAgICAgICBzZWxmLnBhcnRCdWZmZXJzLnB1c2gocmVzdCk7XG4gICAgICAgIHNlbGYucGFydEJ1ZmZlckxlbmd0aCArPSByZXN0Lmxlbmd0aDtcbiAgICAgICAgcGJ1ZiA9IHBidWYuc2xpY2UoMCwgc2VsZi5wYXJ0U2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIHNlbGYubmV4dENodW5rKHBidWYpO1xuICAgIH1cblxuICAgIGlmIChzZWxmLmlzRG9uZUNodW5raW5nICYmICFzZWxmLmlzRG9uZVNlbmRpbmcpIHtcbiAgICAgIC8vIGlmIHdlIGhhdmUgc2luZ2xlIGJ1ZmZlciB3ZSBhdm9pZCBjb3B5ZnVsbCBjb25jYXRcbiAgICAgIHBidWYgPSBzZWxmLnBhcnRCdWZmZXJzLmxlbmd0aCA9PT0gMSA/XG4gICAgICAgICAgc2VsZi5wYXJ0QnVmZmVyc1swXSA6IEJ1ZmZlci5jb25jYXQoc2VsZi5wYXJ0QnVmZmVycyk7XG4gICAgICBzZWxmLnBhcnRCdWZmZXJzID0gW107XG4gICAgICBzZWxmLnBhcnRCdWZmZXJMZW5ndGggPSAwO1xuICAgICAgc2VsZi50b3RhbEJ5dGVzID0gc2VsZi50b3RhbENodW5rZWRCeXRlcztcbiAgICAgIHNlbGYuaXNEb25lU2VuZGluZyA9IHRydWU7XG5cbiAgICAgIGlmIChzZWxmLm51bVBhcnRzID09PSAwIHx8IHBidWYubGVuZ3RoID4gMCkge1xuICAgICAgICBzZWxmLm51bVBhcnRzKys7XG4gICAgICAgIHNlbGYubmV4dENodW5rKHBidWYpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGYuYm9keS5yZWFkKDApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG5leHRDaHVuazogZnVuY3Rpb24gbmV4dENodW5rKGNodW5rKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmIChzZWxmLmZhaWxlZCkgcmV0dXJuIG51bGw7XG5cbiAgICB2YXIgcGFydE51bWJlciA9ICsrc2VsZi50b3RhbFBhcnROdW1iZXJzO1xuICAgIGlmIChzZWxmLmlzRG9uZUNodW5raW5nICYmIHBhcnROdW1iZXIgPT09IDEpIHtcbiAgICAgIHZhciBwYXJhbXMgPSB7Qm9keTogY2h1bmt9O1xuICAgICAgaWYgKHRoaXMudGFncykge1xuICAgICAgICBwYXJhbXMuVGFnZ2luZyA9IHRoaXMuZ2V0VGFnZ2luZ0hlYWRlcigpO1xuICAgICAgfVxuICAgICAgdmFyIHJlcSA9IHNlbGYuc2VydmljZS5wdXRPYmplY3QocGFyYW1zKTtcbiAgICAgIHJlcS5fbWFuYWdlZFVwbG9hZCA9IHNlbGY7XG4gICAgICByZXEub24oJ2h0dHBVcGxvYWRQcm9ncmVzcycsIHNlbGYucHJvZ3Jlc3MpLnNlbmQoc2VsZi5maW5pc2hTaW5nbGVQYXJ0KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoc2VsZi5zZXJ2aWNlLmNvbmZpZy5wYXJhbXMuQ29udGVudE1ENSkge1xuICAgICAgdmFyIGVyciA9IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcignVGhlIENvbnRlbnQtTUQ1IHlvdSBzcGVjaWZpZWQgaXMgaW52YWxpZCBmb3IgbXVsdGktcGFydCB1cGxvYWRzLicpLCB7XG4gICAgICAgIGNvZGU6ICdJbnZhbGlkRGlnZXN0JywgcmV0cnlhYmxlOiBmYWxzZVxuICAgICAgfSk7XG5cbiAgICAgIHNlbGYuY2xlYW51cChlcnIpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHNlbGYuY29tcGxldGVJbmZvW3BhcnROdW1iZXJdICYmIHNlbGYuY29tcGxldGVJbmZvW3BhcnROdW1iZXJdLkVUYWcgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsOyAvLyBBbHJlYWR5IHVwbG9hZGVkIHRoaXMgcGFydC5cbiAgICB9XG5cbiAgICBzZWxmLmFjdGl2ZVBhcnRzKys7XG4gICAgaWYgKCFzZWxmLnNlcnZpY2UuY29uZmlnLnBhcmFtcy5VcGxvYWRJZCkge1xuXG4gICAgICBpZiAoIXNlbGYubXVsdGlwYXJ0UmVxKSB7IC8vIGNyZWF0ZSBtdWx0aXBhcnRcbiAgICAgICAgc2VsZi5tdWx0aXBhcnRSZXEgPSBzZWxmLnNlcnZpY2UuY3JlYXRlTXVsdGlwYXJ0VXBsb2FkKCk7XG4gICAgICAgIHNlbGYubXVsdGlwYXJ0UmVxLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24ocmVzcCkge1xuICAgICAgICAgIHNlbGYuc2VydmljZS5jb25maWcucGFyYW1zLlVwbG9hZElkID0gcmVzcC5kYXRhLlVwbG9hZElkO1xuICAgICAgICAgIHNlbGYubXVsdGlwYXJ0UmVxID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICAgIHNlbGYucXVldWVDaHVua3MoY2h1bmssIHBhcnROdW1iZXIpO1xuICAgICAgICBzZWxmLm11bHRpcGFydFJlcS5vbignZXJyb3InLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICBzZWxmLmNsZWFudXAoZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNlbGYubXVsdGlwYXJ0UmVxLnNlbmQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGYucXVldWVDaHVua3MoY2h1bmssIHBhcnROdW1iZXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7IC8vIG11bHRpcGFydCBpcyBjcmVhdGVkLCBqdXN0IHNlbmRcbiAgICAgIHNlbGYudXBsb2FkUGFydChjaHVuaywgcGFydE51bWJlcik7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGdldFRhZ2dpbmdIZWFkZXI6IGZ1bmN0aW9uIGdldFRhZ2dpbmdIZWFkZXIoKSB7XG4gICAgdmFyIGt2UGFpclN0cmluZ3MgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFncy5sZW5ndGg7IGkrKykge1xuICAgICAga3ZQYWlyU3RyaW5ncy5wdXNoKEFXUy51dGlsLnVyaUVzY2FwZSh0aGlzLnRhZ3NbaV0uS2V5KSArICc9JyArXG4gICAgICAgIEFXUy51dGlsLnVyaUVzY2FwZSh0aGlzLnRhZ3NbaV0uVmFsdWUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4ga3ZQYWlyU3RyaW5ncy5qb2luKCcmJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdXBsb2FkUGFydDogZnVuY3Rpb24gdXBsb2FkUGFydChjaHVuaywgcGFydE51bWJlcikge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIHZhciBwYXJ0UGFyYW1zID0ge1xuICAgICAgQm9keTogY2h1bmssXG4gICAgICBDb250ZW50TGVuZ3RoOiBBV1MudXRpbC5zdHJpbmcuYnl0ZUxlbmd0aChjaHVuayksXG4gICAgICBQYXJ0TnVtYmVyOiBwYXJ0TnVtYmVyXG4gICAgfTtcblxuICAgIHZhciBwYXJ0SW5mbyA9IHtFVGFnOiBudWxsLCBQYXJ0TnVtYmVyOiBwYXJ0TnVtYmVyfTtcbiAgICBzZWxmLmNvbXBsZXRlSW5mb1twYXJ0TnVtYmVyXSA9IHBhcnRJbmZvO1xuXG4gICAgdmFyIHJlcSA9IHNlbGYuc2VydmljZS51cGxvYWRQYXJ0KHBhcnRQYXJhbXMpO1xuICAgIHNlbGYucGFydHNbcGFydE51bWJlcl0gPSByZXE7XG4gICAgcmVxLl9sYXN0VXBsb2FkZWRCeXRlcyA9IDA7XG4gICAgcmVxLl9tYW5hZ2VkVXBsb2FkID0gc2VsZjtcbiAgICByZXEub24oJ2h0dHBVcGxvYWRQcm9ncmVzcycsIHNlbGYucHJvZ3Jlc3MpO1xuICAgIHJlcS5zZW5kKGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICAgZGVsZXRlIHNlbGYucGFydHNbcGFydFBhcmFtcy5QYXJ0TnVtYmVyXTtcbiAgICAgIHNlbGYuYWN0aXZlUGFydHMtLTtcblxuICAgICAgaWYgKCFlcnIgJiYgKCFkYXRhIHx8ICFkYXRhLkVUYWcpKSB7XG4gICAgICAgIHZhciBtZXNzYWdlID0gJ05vIGFjY2VzcyB0byBFVGFnIHByb3BlcnR5IG9uIHJlc3BvbnNlLic7XG4gICAgICAgIGlmIChBV1MudXRpbC5pc0Jyb3dzZXIoKSkge1xuICAgICAgICAgIG1lc3NhZ2UgKz0gJyBDaGVjayBDT1JTIGNvbmZpZ3VyYXRpb24gdG8gZXhwb3NlIEVUYWcgaGVhZGVyLic7XG4gICAgICAgIH1cblxuICAgICAgICBlcnIgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IobWVzc2FnZSksIHtcbiAgICAgICAgICBjb2RlOiAnRVRhZ01pc3NpbmcnLCByZXRyeWFibGU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKGVycikgcmV0dXJuIHNlbGYuY2xlYW51cChlcnIpO1xuXG4gICAgICBwYXJ0SW5mby5FVGFnID0gZGF0YS5FVGFnO1xuICAgICAgc2VsZi5kb25lUGFydHMrKztcbiAgICAgIGlmIChzZWxmLmlzRG9uZUNodW5raW5nICYmIHNlbGYuZG9uZVBhcnRzID09PSBzZWxmLm51bVBhcnRzKSB7XG4gICAgICAgIHNlbGYuZmluaXNoTXVsdGlQYXJ0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxmLmZpbGxRdWV1ZS5jYWxsKHNlbGYpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHF1ZXVlQ2h1bmtzOiBmdW5jdGlvbiBxdWV1ZUNodW5rcyhjaHVuaywgcGFydE51bWJlcikge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLm11bHRpcGFydFJlcS5vbignc3VjY2VzcycsIGZ1bmN0aW9uKCkge1xuICAgICAgc2VsZi51cGxvYWRQYXJ0KGNodW5rLCBwYXJ0TnVtYmVyKTtcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjbGVhbnVwOiBmdW5jdGlvbiBjbGVhbnVwKGVycikge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBpZiAoc2VsZi5mYWlsZWQpIHJldHVybjtcblxuICAgIC8vIGNsZWFuIHVwIHN0cmVhbVxuICAgIGlmICh0eXBlb2Ygc2VsZi5ib2R5LnJlbW92ZUFsbExpc3RlbmVycyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0eXBlb2Ygc2VsZi5ib2R5LnJlc3VtZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgc2VsZi5ib2R5LnJlbW92ZUFsbExpc3RlbmVycygncmVhZGFibGUnKTtcbiAgICAgIHNlbGYuYm9keS5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2VuZCcpO1xuICAgICAgc2VsZi5ib2R5LnJlc3VtZSgpO1xuICAgIH1cblxuICAgIC8vIGNsZWFudXAgbXVsdGlwYXJ0UmVxIGxpc3RlbmVyc1xuICAgIGlmIChzZWxmLm11bHRpcGFydFJlcSkge1xuICAgICAgc2VsZi5tdWx0aXBhcnRSZXEucmVtb3ZlQWxsTGlzdGVuZXJzKCdzdWNjZXNzJyk7XG4gICAgICBzZWxmLm11bHRpcGFydFJlcS5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2Vycm9yJyk7XG4gICAgICBzZWxmLm11bHRpcGFydFJlcS5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2NvbXBsZXRlJyk7XG4gICAgICBkZWxldGUgc2VsZi5tdWx0aXBhcnRSZXE7XG4gICAgfVxuXG4gICAgaWYgKHNlbGYuc2VydmljZS5jb25maWcucGFyYW1zLlVwbG9hZElkICYmICFzZWxmLmxlYXZlUGFydHNPbkVycm9yKSB7XG4gICAgICBzZWxmLnNlcnZpY2UuYWJvcnRNdWx0aXBhcnRVcGxvYWQoKS5zZW5kKCk7XG4gICAgfSBlbHNlIGlmIChzZWxmLmxlYXZlUGFydHNPbkVycm9yKSB7XG4gICAgICBzZWxmLmlzRG9uZUNodW5raW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQVdTLnV0aWwuZWFjaChzZWxmLnBhcnRzLCBmdW5jdGlvbihwYXJ0TnVtYmVyLCBwYXJ0KSB7XG4gICAgICBwYXJ0LnJlbW92ZUFsbExpc3RlbmVycygnY29tcGxldGUnKTtcbiAgICAgIHBhcnQuYWJvcnQoKTtcbiAgICB9KTtcblxuICAgIHNlbGYuYWN0aXZlUGFydHMgPSAwO1xuICAgIHNlbGYucGFydFBvcyA9IDA7XG4gICAgc2VsZi5udW1QYXJ0cyA9IDA7XG4gICAgc2VsZi50b3RhbFBhcnROdW1iZXJzID0gMDtcbiAgICBzZWxmLnBhcnRzID0ge307XG4gICAgc2VsZi5mYWlsZWQgPSB0cnVlO1xuICAgIHNlbGYuY2FsbGJhY2soZXJyKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBmaW5pc2hNdWx0aVBhcnQ6IGZ1bmN0aW9uIGZpbmlzaE11bHRpUGFydCgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIGNvbXBsZXRlUGFyYW1zID0geyBNdWx0aXBhcnRVcGxvYWQ6IHsgUGFydHM6IHNlbGYuY29tcGxldGVJbmZvLnNsaWNlKDEpIH0gfTtcbiAgICBzZWxmLnNlcnZpY2UuY29tcGxldGVNdWx0aXBhcnRVcGxvYWQoY29tcGxldGVQYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gc2VsZi5jbGVhbnVwKGVycik7XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhLkxvY2F0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRhLkxvY2F0aW9uID0gZGF0YS5Mb2NhdGlvbi5yZXBsYWNlKC8lMkYvZywgJy8nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZi50YWdzKSkge1xuICAgICAgICBzZWxmLnNlcnZpY2UucHV0T2JqZWN0VGFnZ2luZyhcbiAgICAgICAgICB7VGFnZ2luZzoge1RhZ1NldDogc2VsZi50YWdzfX0sXG4gICAgICAgICAgZnVuY3Rpb24oZSwgZCkge1xuICAgICAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICAgICAgc2VsZi5jYWxsYmFjayhlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNlbGYuY2FsbGJhY2soZSwgZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZi5jYWxsYmFjayhlcnIsIGRhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGZpbmlzaFNpbmdsZVBhcnQ6IGZ1bmN0aW9uIGZpbmlzaFNpbmdsZVBhcnQoZXJyLCBkYXRhKSB7XG4gICAgdmFyIHVwbG9hZCA9IHRoaXMucmVxdWVzdC5fbWFuYWdlZFVwbG9hZDtcbiAgICB2YXIgaHR0cFJlcSA9IHRoaXMucmVxdWVzdC5odHRwUmVxdWVzdDtcbiAgICB2YXIgZW5kcG9pbnQgPSBodHRwUmVxLmVuZHBvaW50O1xuICAgIGlmIChlcnIpIHJldHVybiB1cGxvYWQuY2FsbGJhY2soZXJyKTtcbiAgICBkYXRhLkxvY2F0aW9uID1cbiAgICAgIFtlbmRwb2ludC5wcm90b2NvbCwgJy8vJywgZW5kcG9pbnQuaG9zdCwgaHR0cFJlcS5wYXRoXS5qb2luKCcnKTtcbiAgICBkYXRhLmtleSA9IHRoaXMucmVxdWVzdC5wYXJhbXMuS2V5OyAvLyB3aWxsIHN0YXkgdW5kb2N1bWVudGVkXG4gICAgZGF0YS5LZXkgPSB0aGlzLnJlcXVlc3QucGFyYW1zLktleTtcbiAgICBkYXRhLkJ1Y2tldCA9IHRoaXMucmVxdWVzdC5wYXJhbXMuQnVja2V0O1xuICAgIHVwbG9hZC5jYWxsYmFjayhlcnIsIGRhdGEpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHByb2dyZXNzOiBmdW5jdGlvbiBwcm9ncmVzcyhpbmZvKSB7XG4gICAgdmFyIHVwbG9hZCA9IHRoaXMuX21hbmFnZWRVcGxvYWQ7XG4gICAgaWYgKHRoaXMub3BlcmF0aW9uID09PSAncHV0T2JqZWN0Jykge1xuICAgICAgaW5mby5wYXJ0ID0gMTtcbiAgICAgIGluZm8ua2V5ID0gdGhpcy5wYXJhbXMuS2V5O1xuICAgIH0gZWxzZSB7XG4gICAgICB1cGxvYWQudG90YWxVcGxvYWRlZEJ5dGVzICs9IGluZm8ubG9hZGVkIC0gdGhpcy5fbGFzdFVwbG9hZGVkQnl0ZXM7XG4gICAgICB0aGlzLl9sYXN0VXBsb2FkZWRCeXRlcyA9IGluZm8ubG9hZGVkO1xuICAgICAgaW5mbyA9IHtcbiAgICAgICAgbG9hZGVkOiB1cGxvYWQudG90YWxVcGxvYWRlZEJ5dGVzLFxuICAgICAgICB0b3RhbDogdXBsb2FkLnRvdGFsQnl0ZXMsXG4gICAgICAgIHBhcnQ6IHRoaXMucGFyYW1zLlBhcnROdW1iZXIsXG4gICAgICAgIGtleTogdGhpcy5wYXJhbXMuS2V5XG4gICAgICB9O1xuICAgIH1cbiAgICB1cGxvYWQuZW1pdCgnaHR0cFVwbG9hZFByb2dyZXNzJywgW2luZm9dKTtcbiAgfVxufSk7XG5cbkFXUy51dGlsLm1peGluKEFXUy5TMy5NYW5hZ2VkVXBsb2FkLCBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlMzLk1hbmFnZWRVcGxvYWQuYWRkUHJvbWlzZXNUb0NsYXNzID0gZnVuY3Rpb24gYWRkUHJvbWlzZXNUb0NsYXNzKFByb21pc2VEZXBlbmRlbmN5KSB7XG4gIHRoaXMucHJvdG90eXBlLnByb21pc2UgPSBBV1MudXRpbC5wcm9taXNpZnlNZXRob2QoJ3NlbmQnLCBQcm9taXNlRGVwZW5kZW5jeSk7XG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuUzMuTWFuYWdlZFVwbG9hZC5kZWxldGVQcm9taXNlc0Zyb21DbGFzcyA9IGZ1bmN0aW9uIGRlbGV0ZVByb21pc2VzRnJvbUNsYXNzKCkge1xuICBkZWxldGUgdGhpcy5wcm90b3R5cGUucHJvbWlzZTtcbn07XG5cbkFXUy51dGlsLmFkZFByb21pc2VzKEFXUy5TMy5NYW5hZ2VkVXBsb2FkKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuUzMuTWFuYWdlZFVwbG9hZDtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqIEAhbWV0aG9kIG9uKGV2ZW50TmFtZSwgY2FsbGJhY2spXG4gKiAgIFJlZ2lzdGVycyBhbiBldmVudCBsaXN0ZW5lciBjYWxsYmFjayBmb3IgdGhlIGV2ZW50IGdpdmVuIGJ5IGBldmVudE5hbWVgLlxuICogICBQYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gZGVwZW5kIG9uIHRoZSBpbmRpdmlkdWFsIGV2ZW50XG4gKiAgIGJlaW5nIHRyaWdnZXJlZC4gU2VlIHRoZSBldmVudCBkb2N1bWVudGF0aW9uIGZvciB0aG9zZSBwYXJhbWV0ZXJzLlxuICpcbiAqICAgQHBhcmFtIGV2ZW50TmFtZSBbU3RyaW5nXSB0aGUgZXZlbnQgbmFtZSB0byByZWdpc3RlciB0aGUgbGlzdGVuZXIgZm9yXG4gKiAgIEBwYXJhbSBjYWxsYmFjayBbRnVuY3Rpb25dIHRoZSBsaXN0ZW5lciBjYWxsYmFjayBmdW5jdGlvblxuICogICBAcmV0dXJuIFtBV1MuU2VxdWVudGlhbEV4ZWN1dG9yXSB0aGUgc2FtZSBvYmplY3QgZm9yIGNoYWluaW5nXG4gKi9cbkFXUy5TZXF1ZW50aWFsRXhlY3V0b3IgPSBBV1MudXRpbC5pbmhlcml0KHtcblxuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gU2VxdWVudGlhbEV4ZWN1dG9yKCkge1xuICAgIHRoaXMuX2V2ZW50cyA9IHt9O1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGxpc3RlbmVyczogZnVuY3Rpb24gbGlzdGVuZXJzKGV2ZW50TmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9ldmVudHNbZXZlbnROYW1lXSA/IHRoaXMuX2V2ZW50c1tldmVudE5hbWVdLnNsaWNlKDApIDogW107XG4gIH0sXG5cbiAgb246IGZ1bmN0aW9uIG9uKGV2ZW50TmFtZSwgbGlzdGVuZXIpIHtcbiAgICBpZiAodGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0pIHtcbiAgICAgIHRoaXMuX2V2ZW50c1tldmVudE5hbWVdLnB1c2gobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9ldmVudHNbZXZlbnROYW1lXSA9IFtsaXN0ZW5lcl07XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG9uQXN5bmM6IGZ1bmN0aW9uIG9uQXN5bmMoZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIGxpc3RlbmVyLl9pc0FzeW5jID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5vbihldmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgfSxcblxuICByZW1vdmVMaXN0ZW5lcjogZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIoZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIHZhciBsaXN0ZW5lcnMgPSB0aGlzLl9ldmVudHNbZXZlbnROYW1lXTtcbiAgICBpZiAobGlzdGVuZXJzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gbGlzdGVuZXJzLmxlbmd0aDtcbiAgICAgIHZhciBwb3NpdGlvbiA9IC0xO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAobGlzdGVuZXJzW2ldID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHBvc2l0aW9uID4gLTEpIHtcbiAgICAgICAgbGlzdGVuZXJzLnNwbGljZShwb3NpdGlvbiwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIHJlbW92ZUFsbExpc3RlbmVyczogZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKGV2ZW50TmFtZSkge1xuICAgIGlmIChldmVudE5hbWUpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLl9ldmVudHNbZXZlbnROYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZXZlbnRzID0ge307XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGVtaXQ6IGZ1bmN0aW9uIGVtaXQoZXZlbnROYW1lLCBldmVudEFyZ3MsIGRvbmVDYWxsYmFjaykge1xuICAgIGlmICghZG9uZUNhbGxiYWNrKSBkb25lQ2FsbGJhY2sgPSBmdW5jdGlvbigpIHsgfTtcbiAgICB2YXIgbGlzdGVuZXJzID0gdGhpcy5saXN0ZW5lcnMoZXZlbnROYW1lKTtcbiAgICB2YXIgY291bnQgPSBsaXN0ZW5lcnMubGVuZ3RoO1xuICAgIHRoaXMuY2FsbExpc3RlbmVycyhsaXN0ZW5lcnMsIGV2ZW50QXJncywgZG9uZUNhbGxiYWNrKTtcbiAgICByZXR1cm4gY291bnQgPiAwO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNhbGxMaXN0ZW5lcnM6IGZ1bmN0aW9uIGNhbGxMaXN0ZW5lcnMobGlzdGVuZXJzLCBhcmdzLCBkb25lQ2FsbGJhY2ssIHByZXZFcnJvcikge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgZXJyb3IgPSBwcmV2RXJyb3IgfHwgbnVsbDtcblxuICAgIGZ1bmN0aW9uIGNhbGxOZXh0TGlzdGVuZXIoZXJyKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGVycm9yID0gQVdTLnV0aWwuZXJyb3IoZXJyb3IgfHwgbmV3IEVycm9yKCksIGVycik7XG4gICAgICAgIGlmIChzZWxmLl9oYWx0SGFuZGxlcnNPbkVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGRvbmVDYWxsYmFjay5jYWxsKHNlbGYsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc2VsZi5jYWxsTGlzdGVuZXJzKGxpc3RlbmVycywgYXJncywgZG9uZUNhbGxiYWNrLCBlcnJvcik7XG4gICAgfVxuXG4gICAgd2hpbGUgKGxpc3RlbmVycy5sZW5ndGggPiAwKSB7XG4gICAgICB2YXIgbGlzdGVuZXIgPSBsaXN0ZW5lcnMuc2hpZnQoKTtcbiAgICAgIGlmIChsaXN0ZW5lci5faXNBc3luYykgeyAvLyBhc3luY2hyb25vdXMgbGlzdGVuZXJcbiAgICAgICAgbGlzdGVuZXIuYXBwbHkoc2VsZiwgYXJncy5jb25jYXQoW2NhbGxOZXh0TGlzdGVuZXJdKSk7XG4gICAgICAgIHJldHVybjsgLy8gc3RvcCBoZXJlLCBjYWxsTmV4dExpc3RlbmVyIHdpbGwgY29udGludWVcbiAgICAgIH0gZWxzZSB7IC8vIHN5bmNocm9ub3VzIGxpc3RlbmVyXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbGlzdGVuZXIuYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGVycm9yID0gQVdTLnV0aWwuZXJyb3IoZXJyb3IgfHwgbmV3IEVycm9yKCksIGVycik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yICYmIHNlbGYuX2hhbHRIYW5kbGVyc09uRXJyb3IpIHtcbiAgICAgICAgICBkb25lQ2FsbGJhY2suY2FsbChzZWxmLCBlcnJvcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGRvbmVDYWxsYmFjay5jYWxsKHNlbGYsIGVycm9yKTtcbiAgfSxcblxuICAvKipcbiAgICogQWRkcyBvciBjb3BpZXMgYSBzZXQgb2YgbGlzdGVuZXJzIGZyb20gYW5vdGhlciBsaXN0IG9mXG4gICAqIGxpc3RlbmVycyBvciBTZXF1ZW50aWFsRXhlY3V0b3Igb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gbGlzdGVuZXJzIFttYXA8U3RyaW5nLEFycmF5PEZ1bmN0aW9uPj4sIEFXUy5TZXF1ZW50aWFsRXhlY3V0b3JdXG4gICAqICAgYSBsaXN0IG9mIGV2ZW50cyBhbmQgY2FsbGJhY2tzLCBvciBhbiBldmVudCBlbWl0dGVyIG9iamVjdFxuICAgKiAgIGNvbnRhaW5pbmcgbGlzdGVuZXJzIHRvIGFkZCB0byB0aGlzIGVtaXR0ZXIgb2JqZWN0LlxuICAgKiBAcmV0dXJuIFtBV1MuU2VxdWVudGlhbEV4ZWN1dG9yXSB0aGUgZW1pdHRlciBvYmplY3QsIGZvciBjaGFpbmluZy5cbiAgICogQGV4YW1wbGUgQWRkaW5nIGxpc3RlbmVycyBmcm9tIGEgbWFwIG9mIGxpc3RlbmVyc1xuICAgKiAgIGVtaXR0ZXIuYWRkTGlzdGVuZXJzKHtcbiAgICogICAgIGV2ZW50MTogW2Z1bmN0aW9uKCkgeyAuLi4gfSwgZnVuY3Rpb24oKSB7IC4uLiB9XSxcbiAgICogICAgIGV2ZW50MjogW2Z1bmN0aW9uKCkgeyAuLi4gfV1cbiAgICogICB9KTtcbiAgICogICBlbWl0dGVyLmVtaXQoJ2V2ZW50MScpOyAvLyBlbWl0dGVyIGhhcyBldmVudDFcbiAgICogICBlbWl0dGVyLmVtaXQoJ2V2ZW50MicpOyAvLyBlbWl0dGVyIGhhcyBldmVudDJcbiAgICogQGV4YW1wbGUgQWRkaW5nIGxpc3RlbmVycyBmcm9tIGFub3RoZXIgZW1pdHRlciBvYmplY3RcbiAgICogICB2YXIgZW1pdHRlcjEgPSBuZXcgQVdTLlNlcXVlbnRpYWxFeGVjdXRvcigpO1xuICAgKiAgIGVtaXR0ZXIxLm9uKCdldmVudDEnLCBmdW5jdGlvbigpIHsgLi4uIH0pO1xuICAgKiAgIGVtaXR0ZXIxLm9uKCdldmVudDInLCBmdW5jdGlvbigpIHsgLi4uIH0pO1xuICAgKiAgIHZhciBlbWl0dGVyMiA9IG5ldyBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yKCk7XG4gICAqICAgZW1pdHRlcjIuYWRkTGlzdGVuZXJzKGVtaXR0ZXIxKTtcbiAgICogICBlbWl0dGVyMi5lbWl0KCdldmVudDEnKTsgLy8gZW1pdHRlcjIgaGFzIGV2ZW50MVxuICAgKiAgIGVtaXR0ZXIyLmVtaXQoJ2V2ZW50MicpOyAvLyBlbWl0dGVyMiBoYXMgZXZlbnQyXG4gICAqL1xuICBhZGRMaXN0ZW5lcnM6IGZ1bmN0aW9uIGFkZExpc3RlbmVycyhsaXN0ZW5lcnMpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICAvLyBleHRyYWN0IGxpc3RlbmVycyBpZiBwYXJhbWV0ZXIgaXMgYW4gU2VxdWVudGlhbEV4ZWN1dG9yIG9iamVjdFxuICAgIGlmIChsaXN0ZW5lcnMuX2V2ZW50cykgbGlzdGVuZXJzID0gbGlzdGVuZXJzLl9ldmVudHM7XG5cbiAgICBBV1MudXRpbC5lYWNoKGxpc3RlbmVycywgZnVuY3Rpb24oZXZlbnQsIGNhbGxiYWNrcykge1xuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFja3MgPT09ICdmdW5jdGlvbicpIGNhbGxiYWNrcyA9IFtjYWxsYmFja3NdO1xuICAgICAgQVdTLnV0aWwuYXJyYXlFYWNoKGNhbGxiYWNrcywgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgICAgc2VsZi5vbihldmVudCwgY2FsbGJhY2spO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2VsZjtcbiAgfSxcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGFuIGV2ZW50IHdpdGgge29ufSBhbmQgc2F2ZXMgdGhlIGNhbGxiYWNrIGhhbmRsZSBmdW5jdGlvblxuICAgKiBhcyBhIHByb3BlcnR5IG9uIHRoZSBlbWl0dGVyIG9iamVjdCB1c2luZyBhIGdpdmVuIGBuYW1lYC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgW1N0cmluZ10gdGhlIHByb3BlcnR5IG5hbWUgdG8gc2V0IG9uIHRoaXMgb2JqZWN0IGNvbnRhaW5pbmdcbiAgICogICB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaGFuZGxlIHNvIHRoYXQgdGhlIGxpc3RlbmVyIGNhbiBiZSByZW1vdmVkIGluXG4gICAqICAgdGhlIGZ1dHVyZS5cbiAgICogQHBhcmFtIChzZWUgb24pXG4gICAqIEByZXR1cm4gKHNlZSBvbilcbiAgICogQGV4YW1wbGUgQWRkaW5nIGEgbmFtZWQgbGlzdGVuZXIgREFUQV9DQUxMQkFDS1xuICAgKiAgIHZhciBsaXN0ZW5lciA9IGZ1bmN0aW9uKCkgeyBkb1NvbWV0aGluZygpOyB9O1xuICAgKiAgIGVtaXR0ZXIuYWRkTmFtZWRMaXN0ZW5lcignREFUQV9DQUxMQkFDSycsICdkYXRhJywgbGlzdGVuZXIpO1xuICAgKlxuICAgKiAgIC8vIHRoZSBmb2xsb3dpbmcgcHJpbnRzOiB0cnVlXG4gICAqICAgY29uc29sZS5sb2coZW1pdHRlci5EQVRBX0NBTExCQUNLID09IGxpc3RlbmVyKTtcbiAgICovXG4gIGFkZE5hbWVkTGlzdGVuZXI6IGZ1bmN0aW9uIGFkZE5hbWVkTGlzdGVuZXIobmFtZSwgZXZlbnROYW1lLCBjYWxsYmFjaykge1xuICAgIHRoaXNbbmFtZV0gPSBjYWxsYmFjaztcbiAgICB0aGlzLmFkZExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFkZE5hbWVkQXN5bmNMaXN0ZW5lcjogZnVuY3Rpb24gYWRkTmFtZWRBc3luY0xpc3RlbmVyKG5hbWUsIGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICBjYWxsYmFjay5faXNBc3luYyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuYWRkTmFtZWRMaXN0ZW5lcihuYW1lLCBldmVudE5hbWUsIGNhbGxiYWNrKTtcbiAgfSxcblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBhZGQgYSBzZXQgb2YgbmFtZWQgbGlzdGVuZXJzIHVzaW5nXG4gICAqIHthZGROYW1lZExpc3RlbmVyfS4gVGhlIGNhbGxiYWNrIGNvbnRhaW5zIGEgcGFyYW1ldGVyXG4gICAqIHdpdGggYSBoYW5kbGUgdG8gdGhlIGBhZGROYW1lZExpc3RlbmVyYCBtZXRob2QuXG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihhZGQpXG4gICAqICAgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbW1lZGlhdGVseSBpbiBvcmRlciB0byBwcm92aWRlXG4gICAqICAgdGhlIGBhZGRgIGZ1bmN0aW9uIHRvIHRoZSBibG9jay4gVGhpcyBzaW1wbGlmaWVzIHRoZSBhZGRpdGlvbiBvZlxuICAgKiAgIGEgbGFyZ2UgZ3JvdXAgb2YgbmFtZWQgbGlzdGVuZXJzLlxuICAgKiAgIEBwYXJhbSBhZGQgW0Z1bmN0aW9uXSB0aGUge2FkZE5hbWVkTGlzdGVuZXJ9IGZ1bmN0aW9uIHRvIGNhbGxcbiAgICogICAgIHdoZW4gcmVnaXN0ZXJpbmcgbGlzdGVuZXJzLlxuICAgKiBAZXhhbXBsZSBBZGRpbmcgYSBzZXQgb2YgbmFtZWQgbGlzdGVuZXJzXG4gICAqICAgZW1pdHRlci5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQpIHtcbiAgICogICAgIGFkZCgnREFUQV9DQUxMQkFDSycsICdkYXRhJywgZnVuY3Rpb24oKSB7IC4uLiB9KTtcbiAgICogICAgIGFkZCgnT1RIRVInLCAnb3RoZXJFdmVudCcsIGZ1bmN0aW9uKCkgeyAuLi4gfSk7XG4gICAqICAgICBhZGQoJ0xBU1QnLCAnbGFzdEV2ZW50JywgZnVuY3Rpb24oKSB7IC4uLiB9KTtcbiAgICogICB9KTtcbiAgICpcbiAgICogICAvLyB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBub3cgc2V0OlxuICAgKiAgIGVtaXR0ZXIuREFUQV9DQUxMQkFDSztcbiAgICogICBlbWl0dGVyLk9USEVSO1xuICAgKiAgIGVtaXR0ZXIuTEFTVDtcbiAgICovXG4gIGFkZE5hbWVkTGlzdGVuZXJzOiBmdW5jdGlvbiBhZGROYW1lZExpc3RlbmVycyhjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBjYWxsYmFjayhcbiAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLmFkZE5hbWVkTGlzdGVuZXIuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTtcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5hZGROYW1lZEFzeW5jTGlzdGVuZXIuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59KTtcblxuLyoqXG4gKiB7b259IGlzIHRoZSBwcmVmZXJlZCBtZXRob2QuXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlNlcXVlbnRpYWxFeGVjdXRvci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yLnByb3RvdHlwZS5vbjtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xudmFyIEFwaSA9IHJlcXVpcmUoJy4vbW9kZWwvYXBpJyk7XG52YXIgcmVnaW9uQ29uZmlnID0gcmVxdWlyZSgnLi9yZWdpb25fY29uZmlnJyk7XG52YXIgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG52YXIgY2xpZW50Q291bnQgPSAwO1xuXG4vKipcbiAqIFRoZSBzZXJ2aWNlIGNsYXNzIHJlcHJlc2VudGluZyBhbiBBV1Mgc2VydmljZS5cbiAqXG4gKiBAYWJzdHJhY3RcbiAqXG4gKiBAIWF0dHJpYnV0ZSBhcGlWZXJzaW9uc1xuICogICBAcmV0dXJuIFtBcnJheTxTdHJpbmc+XSB0aGUgbGlzdCBvZiBBUEkgdmVyc2lvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2VydmljZS5cbiAqICAgQHJlYWRvbmx5XG4gKi9cbkFXUy5TZXJ2aWNlID0gaW5oZXJpdCh7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgc2VydmljZSBvYmplY3Qgd2l0aCBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSBjb25maWcgW21hcF0gYSBtYXAgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gU2VydmljZShjb25maWcpIHtcbiAgICBpZiAoIXRoaXMubG9hZFNlcnZpY2VDbGFzcykge1xuICAgICAgdGhyb3cgQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksXG4gICAgICAgICdTZXJ2aWNlIG11c3QgYmUgY29uc3RydWN0ZWQgd2l0aCBgbmV3XFwnIG9wZXJhdG9yJyk7XG4gICAgfVxuICAgIHZhciBTZXJ2aWNlQ2xhc3MgPSB0aGlzLmxvYWRTZXJ2aWNlQ2xhc3MoY29uZmlnIHx8IHt9KTtcbiAgICBpZiAoU2VydmljZUNsYXNzKSB7XG4gICAgICB2YXIgb3JpZ2luYWxDb25maWcgPSBBV1MudXRpbC5jb3B5KGNvbmZpZyk7XG4gICAgICB2YXIgc3ZjID0gbmV3IFNlcnZpY2VDbGFzcyhjb25maWcpO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN2YywgJ19vcmlnaW5hbENvbmZpZycsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG9yaWdpbmFsQ29uZmlnOyB9LFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHN2Yy5fY2xpZW50SWQgPSArK2NsaWVudENvdW50O1xuICAgICAgcmV0dXJuIHN2YztcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplKGNvbmZpZyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gaW5pdGlhbGl6ZShjb25maWcpIHtcbiAgICB2YXIgc3ZjQ29uZmlnID0gQVdTLmNvbmZpZ1t0aGlzLnNlcnZpY2VJZGVudGlmaWVyXTtcblxuICAgIHRoaXMuY29uZmlnID0gbmV3IEFXUy5Db25maWcoQVdTLmNvbmZpZyk7XG4gICAgaWYgKHN2Y0NvbmZpZykgdGhpcy5jb25maWcudXBkYXRlKHN2Y0NvbmZpZywgdHJ1ZSk7XG4gICAgaWYgKGNvbmZpZykgdGhpcy5jb25maWcudXBkYXRlKGNvbmZpZywgdHJ1ZSk7XG5cbiAgICB0aGlzLnZhbGlkYXRlU2VydmljZSgpO1xuICAgIGlmICghdGhpcy5jb25maWcuZW5kcG9pbnQpIHJlZ2lvbkNvbmZpZyh0aGlzKTtcblxuICAgIHRoaXMuY29uZmlnLmVuZHBvaW50ID0gdGhpcy5lbmRwb2ludEZyb21UZW1wbGF0ZSh0aGlzLmNvbmZpZy5lbmRwb2ludCk7XG4gICAgdGhpcy5zZXRFbmRwb2ludCh0aGlzLmNvbmZpZy5lbmRwb2ludCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdmFsaWRhdGVTZXJ2aWNlOiBmdW5jdGlvbiB2YWxpZGF0ZVNlcnZpY2UoKSB7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbG9hZFNlcnZpY2VDbGFzczogZnVuY3Rpb24gbG9hZFNlcnZpY2VDbGFzcyhzZXJ2aWNlQ29uZmlnKSB7XG4gICAgdmFyIGNvbmZpZyA9IHNlcnZpY2VDb25maWc7XG4gICAgaWYgKCFBV1MudXRpbC5pc0VtcHR5KHRoaXMuYXBpKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChjb25maWcuYXBpQ29uZmlnKSB7XG4gICAgICByZXR1cm4gQVdTLlNlcnZpY2UuZGVmaW5lU2VydmljZUFwaSh0aGlzLmNvbnN0cnVjdG9yLCBjb25maWcuYXBpQ29uZmlnKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmNvbnN0cnVjdG9yLnNlcnZpY2VzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0gbmV3IEFXUy5Db25maWcoQVdTLmNvbmZpZyk7XG4gICAgICBjb25maWcudXBkYXRlKHNlcnZpY2VDb25maWcsIHRydWUpO1xuICAgICAgdmFyIHZlcnNpb24gPSBjb25maWcuYXBpVmVyc2lvbnNbdGhpcy5jb25zdHJ1Y3Rvci5zZXJ2aWNlSWRlbnRpZmllcl07XG4gICAgICB2ZXJzaW9uID0gdmVyc2lvbiB8fCBjb25maWcuYXBpVmVyc2lvbjtcbiAgICAgIHJldHVybiB0aGlzLmdldExhdGVzdFNlcnZpY2VDbGFzcyh2ZXJzaW9uKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0TGF0ZXN0U2VydmljZUNsYXNzOiBmdW5jdGlvbiBnZXRMYXRlc3RTZXJ2aWNlQ2xhc3ModmVyc2lvbikge1xuICAgIHZlcnNpb24gPSB0aGlzLmdldExhdGVzdFNlcnZpY2VWZXJzaW9uKHZlcnNpb24pO1xuICAgIGlmICh0aGlzLmNvbnN0cnVjdG9yLnNlcnZpY2VzW3ZlcnNpb25dID09PSBudWxsKSB7XG4gICAgICBBV1MuU2VydmljZS5kZWZpbmVTZXJ2aWNlQXBpKHRoaXMuY29uc3RydWN0b3IsIHZlcnNpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLnNlcnZpY2VzW3ZlcnNpb25dO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGdldExhdGVzdFNlcnZpY2VWZXJzaW9uOiBmdW5jdGlvbiBnZXRMYXRlc3RTZXJ2aWNlVmVyc2lvbih2ZXJzaW9uKSB7XG4gICAgaWYgKCF0aGlzLmNvbnN0cnVjdG9yLnNlcnZpY2VzIHx8IHRoaXMuY29uc3RydWN0b3Iuc2VydmljZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHNlcnZpY2VzIGRlZmluZWQgb24gJyArXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdHJ1Y3Rvci5zZXJ2aWNlSWRlbnRpZmllcik7XG4gICAgfVxuXG4gICAgaWYgKCF2ZXJzaW9uKSB7XG4gICAgICB2ZXJzaW9uID0gJ2xhdGVzdCc7XG4gICAgfSBlbHNlIGlmIChBV1MudXRpbC5pc1R5cGUodmVyc2lvbiwgRGF0ZSkpIHtcbiAgICAgIHZlcnNpb24gPSBBV1MudXRpbC5kYXRlLmlzbzg2MDEodmVyc2lvbikuc3BsaXQoJ1QnKVswXTtcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5KHRoaXMuY29uc3RydWN0b3Iuc2VydmljZXMsIHZlcnNpb24pKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG5cbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuY29uc3RydWN0b3Iuc2VydmljZXMpLnNvcnQoKTtcbiAgICB2YXIgc2VsZWN0ZWRWZXJzaW9uID0gbnVsbDtcbiAgICBmb3IgKHZhciBpID0ga2V5cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgLy8gdmVyc2lvbnMgdGhhdCBlbmQgaW4gXCIqXCIgYXJlIG5vdCBhdmFpbGFibGUgb24gZGlzayBhbmQgY2FuIGJlXG4gICAgICAvLyBza2lwcGVkLCBzbyBkbyBub3QgY2hvb3NlIHRoZXNlIGFzIHNlbGVjdGVkVmVyc2lvbnNcbiAgICAgIGlmIChrZXlzW2ldW2tleXNbaV0ubGVuZ3RoIC0gMV0gIT09ICcqJykge1xuICAgICAgICBzZWxlY3RlZFZlcnNpb24gPSBrZXlzW2ldO1xuICAgICAgfVxuICAgICAgaWYgKGtleXNbaV0uc3Vic3RyKDAsIDEwKSA8PSB2ZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZFZlcnNpb247XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCAnICsgdGhpcy5jb25zdHJ1Y3Rvci5zZXJ2aWNlSWRlbnRpZmllciArXG4gICAgICAgICAgICAgICAgICAgICcgQVBJIHRvIHNhdGlzZnkgdmVyc2lvbiBjb25zdHJhaW50IGAnICsgdmVyc2lvbiArICdcXCcnKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhcGk6IHt9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGRlZmF1bHRSZXRyeUNvdW50OiAzLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGN1c3RvbWl6ZVJlcXVlc3RzOiBmdW5jdGlvbiBjdXN0b21pemVSZXF1ZXN0cyhjYWxsYmFjaykge1xuICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgIHRoaXMuY3VzdG9tUmVxdWVzdEhhbmRsZXIgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmN1c3RvbVJlcXVlc3RIYW5kbGVyID0gY2FsbGJhY2s7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjYWxsYmFjayB0eXBlIFxcJycgKyB0eXBlb2YgY2FsbGJhY2sgKyAnXFwnIHByb3ZpZGVkIGluIGN1c3RvbWl6ZVJlcXVlc3RzJyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBDYWxscyBhbiBvcGVyYXRpb24gb24gYSBzZXJ2aWNlIHdpdGggdGhlIGdpdmVuIGlucHV0IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYXRpb24gW1N0cmluZ10gdGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvbiB0byBjYWxsIG9uIHRoZSBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gcGFyYW1zIFttYXBdIGEgbWFwIG9mIGlucHV0IG9wdGlvbnMgZm9yIHRoZSBvcGVyYXRpb25cbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVyciwgZGF0YSlcbiAgICogICBJZiBhIGNhbGxiYWNrIGlzIHN1cHBsaWVkLCBpdCBpcyBjYWxsZWQgd2hlbiBhIHJlc3BvbnNlIGlzIHJldHVybmVkXG4gICAqICAgZnJvbSB0aGUgc2VydmljZS5cbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBmcm9tIHRoZSByZXF1ZXN0LlxuICAgKiAgICAgU2V0IHRvIGBudWxsYCBpZiB0aGUgcmVxdWVzdCBpcyBzdWNjZXNzZnVsLlxuICAgKiAgIEBwYXJhbSBkYXRhIFtPYmplY3RdIHRoZSBkZS1zZXJpYWxpemVkIGRhdGEgcmV0dXJuZWQgZnJvbVxuICAgKiAgICAgdGhlIHJlcXVlc3QuIFNldCB0byBgbnVsbGAgaWYgYSByZXF1ZXN0IGVycm9yIG9jY3Vycy5cbiAgICovXG4gIG1ha2VSZXF1ZXN0OiBmdW5jdGlvbiBtYWtlUmVxdWVzdChvcGVyYXRpb24sIHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIHBhcmFtcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBwYXJhbXM7XG4gICAgICBwYXJhbXMgPSBudWxsO1xuICAgIH1cblxuICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcbiAgICBpZiAodGhpcy5jb25maWcucGFyYW1zKSB7IC8vIGNvcHkgb25seSB0b3BsZXZlbCBib3VuZCBwYXJhbXNcbiAgICAgIHZhciBydWxlcyA9IHRoaXMuYXBpLm9wZXJhdGlvbnNbb3BlcmF0aW9uXTtcbiAgICAgIGlmIChydWxlcykge1xuICAgICAgICBwYXJhbXMgPSBBV1MudXRpbC5jb3B5KHBhcmFtcyk7XG4gICAgICAgIEFXUy51dGlsLmVhY2godGhpcy5jb25maWcucGFyYW1zLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKHJ1bGVzLmlucHV0Lm1lbWJlcnNba2V5XSkge1xuICAgICAgICAgICAgaWYgKHBhcmFtc1trZXldID09PSB1bmRlZmluZWQgfHwgcGFyYW1zW2tleV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEFXUy5SZXF1ZXN0KHRoaXMsIG9wZXJhdGlvbiwgcGFyYW1zKTtcbiAgICB0aGlzLmFkZEFsbFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCk7XG5cbiAgICBpZiAoY2FsbGJhY2spIHJlcXVlc3Quc2VuZChjYWxsYmFjayk7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENhbGxzIGFuIG9wZXJhdGlvbiBvbiBhIHNlcnZpY2Ugd2l0aCB0aGUgZ2l2ZW4gaW5wdXQgcGFyYW1ldGVycywgd2l0aG91dFxuICAgKiBhbnkgYXV0aGVudGljYXRpb24gZGF0YS4gVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBcInB1YmxpY1wiIEFQSSBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIFtTdHJpbmddIHRoZSBuYW1lIG9mIHRoZSBvcGVyYXRpb24gdG8gY2FsbCBvbiB0aGUgc2VydmljZS5cbiAgICogQHBhcmFtIHBhcmFtcyBbbWFwXSBhIG1hcCBvZiBpbnB1dCBvcHRpb25zIGZvciB0aGUgb3BlcmF0aW9uXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIsIGRhdGEpXG4gICAqICAgSWYgYSBjYWxsYmFjayBpcyBzdXBwbGllZCwgaXQgaXMgY2FsbGVkIHdoZW4gYSByZXNwb25zZSBpcyByZXR1cm5lZFxuICAgKiAgIGZyb20gdGhlIHNlcnZpY2UuXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgcmVxdWVzdC5cbiAgICogICAgIFNldCB0byBgbnVsbGAgaWYgdGhlIHJlcXVlc3QgaXMgc3VjY2Vzc2Z1bC5cbiAgICogICBAcGFyYW0gZGF0YSBbT2JqZWN0XSB0aGUgZGUtc2VyaWFsaXplZCBkYXRhIHJldHVybmVkIGZyb21cbiAgICogICAgIHRoZSByZXF1ZXN0LiBTZXQgdG8gYG51bGxgIGlmIGEgcmVxdWVzdCBlcnJvciBvY2N1cnMuXG4gICAqL1xuICBtYWtlVW5hdXRoZW50aWNhdGVkUmVxdWVzdDogZnVuY3Rpb24gbWFrZVVuYXV0aGVudGljYXRlZFJlcXVlc3Qob3BlcmF0aW9uLCBwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNhbGxiYWNrID0gcGFyYW1zO1xuICAgICAgcGFyYW1zID0ge307XG4gICAgfVxuXG4gICAgdmFyIHJlcXVlc3QgPSB0aGlzLm1ha2VSZXF1ZXN0KG9wZXJhdGlvbiwgcGFyYW1zKS50b1VuYXV0aGVudGljYXRlZCgpO1xuICAgIHJldHVybiBjYWxsYmFjayA/IHJlcXVlc3Quc2VuZChjYWxsYmFjaykgOiByZXF1ZXN0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBXYWl0cyBmb3IgYSBnaXZlbiBzdGF0ZVxuICAgKlxuICAgKiBAcGFyYW0gc3RhdGUgW1N0cmluZ10gdGhlIHN0YXRlIG9uIHRoZSBzZXJ2aWNlIHRvIHdhaXQgZm9yXG4gICAqIEBwYXJhbSBwYXJhbXMgW21hcF0gYSBtYXAgb2YgcGFyYW1ldGVycyB0byBwYXNzIHdpdGggZWFjaCByZXF1ZXN0XG4gICAqIEBvcHRpb24gcGFyYW1zICR3YWl0ZXIgW21hcF0gYSBtYXAgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgd2FpdGVyXG4gICAqIEBvcHRpb24gcGFyYW1zICR3YWl0ZXIuZGVsYXkgW051bWJlcl0gVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgYmV0d2VlblxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzXG4gICAqIEBvcHRpb24gcGFyYW1zICR3YWl0ZXIubWF4QXR0ZW1wdHMgW051bWJlcl0gVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcXVlc3RzXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gc2VuZCB3aGlsZSB3YWl0aW5nXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIsIGRhdGEpXG4gICAqICAgSWYgYSBjYWxsYmFjayBpcyBzdXBwbGllZCwgaXQgaXMgY2FsbGVkIHdoZW4gYSByZXNwb25zZSBpcyByZXR1cm5lZFxuICAgKiAgIGZyb20gdGhlIHNlcnZpY2UuXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgcmVxdWVzdC5cbiAgICogICAgIFNldCB0byBgbnVsbGAgaWYgdGhlIHJlcXVlc3QgaXMgc3VjY2Vzc2Z1bC5cbiAgICogICBAcGFyYW0gZGF0YSBbT2JqZWN0XSB0aGUgZGUtc2VyaWFsaXplZCBkYXRhIHJldHVybmVkIGZyb21cbiAgICogICAgIHRoZSByZXF1ZXN0LiBTZXQgdG8gYG51bGxgIGlmIGEgcmVxdWVzdCBlcnJvciBvY2N1cnMuXG4gICAqL1xuICB3YWl0Rm9yOiBmdW5jdGlvbiB3YWl0Rm9yKHN0YXRlLCBwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHdhaXRlciA9IG5ldyBBV1MuUmVzb3VyY2VXYWl0ZXIodGhpcywgc3RhdGUpO1xuICAgIHJldHVybiB3YWl0ZXIud2FpdChwYXJhbXMsIGNhbGxiYWNrKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhZGRBbGxSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBhZGRBbGxSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpIHtcbiAgICB2YXIgbGlzdCA9IFtBV1MuZXZlbnRzLCBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZSwgdGhpcy5zZXJ2aWNlSW50ZXJmYWNlKCksXG4gICAgICAgICAgICAgICAgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmVQb3N0XTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChsaXN0W2ldKSByZXF1ZXN0LmFkZExpc3RlbmVycyhsaXN0W2ldKTtcbiAgICB9XG5cbiAgICAvLyBkaXNhYmxlIHBhcmFtZXRlciB2YWxpZGF0aW9uXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5wYXJhbVZhbGlkYXRpb24pIHtcbiAgICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ3ZhbGlkYXRlJyxcbiAgICAgICAgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuVkFMSURBVEVfUEFSQU1FVEVSUyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2dlcikgeyAvLyBhZGQgbG9nZ2luZyBldmVudHNcbiAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXJzKEFXUy5FdmVudExpc3RlbmVycy5Mb2dnZXIpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0dXBSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpO1xuICAgIC8vIGNhbGwgcHJvdG90eXBlJ3MgY3VzdG9tUmVxdWVzdEhhbmRsZXJcbiAgICBpZiAodHlwZW9mIHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLmN1c3RvbVJlcXVlc3RIYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5jdXN0b21SZXF1ZXN0SGFuZGxlcihyZXF1ZXN0KTtcbiAgICB9XG4gICAgLy8gY2FsbCBpbnN0YW5jZSdzIGN1c3RvbVJlcXVlc3RIYW5kbGVyXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLCAnY3VzdG9tUmVxdWVzdEhhbmRsZXInKSAmJiB0eXBlb2YgdGhpcy5jdXN0b21SZXF1ZXN0SGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5jdXN0b21SZXF1ZXN0SGFuZGxlcihyZXF1ZXN0KTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHNldHVwIGFueSBjdXN0b20gcmVxdWVzdCBsaXN0ZW5lcnMgZm9yIGVhY2hcbiAgICogbmV3IHJlcXVlc3QgdG8gdGhlIHNlcnZpY2UuXG4gICAqXG4gICAqIEBhYnN0cmFjdFxuICAgKi9cbiAgc2V0dXBSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBzZXR1cFJlcXVlc3RMaXN0ZW5lcnMoKSB7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNpZ25lciBjbGFzcyBmb3IgYSBnaXZlbiByZXF1ZXN0XG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0U2lnbmVyQ2xhc3M6IGZ1bmN0aW9uIGdldFNpZ25lckNsYXNzKHJlcXVlc3QpIHtcbiAgICB2YXIgdmVyc2lvbjtcbiAgICAvLyBnZXQgb3BlcmF0aW9uIGF1dGh0eXBlIGlmIHByZXNlbnRcbiAgICB2YXIgb3BlcmF0aW9uID0gbnVsbDtcbiAgICB2YXIgYXV0aHR5cGUgPSAnJztcbiAgICBpZiAocmVxdWVzdCkge1xuICAgICAgdmFyIG9wZXJhdGlvbnMgPSByZXF1ZXN0LnNlcnZpY2UuYXBpLm9wZXJhdGlvbnMgfHwge307XG4gICAgICBvcGVyYXRpb24gPSBvcGVyYXRpb25zW3JlcXVlc3Qub3BlcmF0aW9uXSB8fCBudWxsO1xuICAgICAgYXV0aHR5cGUgPSBvcGVyYXRpb24gPyBvcGVyYXRpb24uYXV0aHR5cGUgOiAnJztcbiAgICB9XG4gICAgaWYgKHRoaXMuY29uZmlnLnNpZ25hdHVyZVZlcnNpb24pIHtcbiAgICAgIHZlcnNpb24gPSB0aGlzLmNvbmZpZy5zaWduYXR1cmVWZXJzaW9uO1xuICAgIH0gZWxzZSBpZiAoYXV0aHR5cGUgPT09ICd2NCcgfHwgYXV0aHR5cGUgPT09ICd2NC11bnNpZ25lZC1ib2R5Jykge1xuICAgICAgdmVyc2lvbiA9ICd2NCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZlcnNpb24gPSB0aGlzLmFwaS5zaWduYXR1cmVWZXJzaW9uO1xuICAgIH1cbiAgICByZXR1cm4gQVdTLlNpZ25lcnMuUmVxdWVzdFNpZ25lci5nZXRWZXJzaW9uKHZlcnNpb24pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNlcnZpY2VJbnRlcmZhY2U6IGZ1bmN0aW9uIHNlcnZpY2VJbnRlcmZhY2UoKSB7XG4gICAgc3dpdGNoICh0aGlzLmFwaS5wcm90b2NvbCkge1xuICAgICAgY2FzZSAnZWMyJzogcmV0dXJuIEFXUy5FdmVudExpc3RlbmVycy5RdWVyeTtcbiAgICAgIGNhc2UgJ3F1ZXJ5JzogcmV0dXJuIEFXUy5FdmVudExpc3RlbmVycy5RdWVyeTtcbiAgICAgIGNhc2UgJ2pzb24nOiByZXR1cm4gQVdTLkV2ZW50TGlzdGVuZXJzLkpzb247XG4gICAgICBjYXNlICdyZXN0LWpzb24nOiByZXR1cm4gQVdTLkV2ZW50TGlzdGVuZXJzLlJlc3RKc29uO1xuICAgICAgY2FzZSAncmVzdC14bWwnOiByZXR1cm4gQVdTLkV2ZW50TGlzdGVuZXJzLlJlc3RYbWw7XG4gICAgfVxuICAgIGlmICh0aGlzLmFwaS5wcm90b2NvbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlcnZpY2UgYHByb3RvY29sXFwnICcgK1xuICAgICAgICB0aGlzLmFwaS5wcm90b2NvbCArICcgaW4gQVBJIGNvbmZpZycpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzdWNjZXNzZnVsUmVzcG9uc2U6IGZ1bmN0aW9uIHN1Y2Nlc3NmdWxSZXNwb25zZShyZXNwKSB7XG4gICAgcmV0dXJuIHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUgPCAzMDA7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IHRpbWVzIGEgZmFpbGVkIHJlcXVlc3Qgc2hvdWxkIGJlIHJldHJpZWQgYmVmb3JlIGdpdmluZyB1cC5cbiAgICogdGhlIGRlZmF1bHRSZXRyeUNvdW50IGNhbiBiZSBvdmVycmlkZW4gYnkgc2VydmljZSBjbGFzc2VzLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG51bVJldHJpZXM6IGZ1bmN0aW9uIG51bVJldHJpZXMoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLm1heFJldHJpZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLm1heFJldHJpZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRSZXRyeUNvdW50O1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICByZXRyeURlbGF5czogZnVuY3Rpb24gcmV0cnlEZWxheXMocmV0cnlDb3VudCkge1xuICAgIHJldHVybiBBV1MudXRpbC5jYWxjdWxhdGVSZXRyeURlbGF5KHJldHJ5Q291bnQsIHRoaXMuY29uZmlnLnJldHJ5RGVsYXlPcHRpb25zKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICByZXRyeWFibGVFcnJvcjogZnVuY3Rpb24gcmV0cnlhYmxlRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodGhpcy50aW1lb3V0RXJyb3IoZXJyb3IpKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodGhpcy5uZXR3b3JraW5nRXJyb3IoZXJyb3IpKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodGhpcy5leHBpcmVkQ3JlZGVudGlhbHNFcnJvcihlcnJvcikpIHJldHVybiB0cnVlO1xuICAgIGlmICh0aGlzLnRocm90dGxlZEVycm9yKGVycm9yKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKGVycm9yLnN0YXR1c0NvZGUgPj0gNTAwKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbmV0d29ya2luZ0Vycm9yOiBmdW5jdGlvbiBuZXR3b3JraW5nRXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IuY29kZSA9PT0gJ05ldHdvcmtpbmdFcnJvcic7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdGltZW91dEVycm9yOiBmdW5jdGlvbiB0aW1lb3V0RXJyb3IoZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IuY29kZSA9PT0gJ1RpbWVvdXRFcnJvcic7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZXhwaXJlZENyZWRlbnRpYWxzRXJyb3I6IGZ1bmN0aW9uIGV4cGlyZWRDcmVkZW50aWFsc0Vycm9yKGVycm9yKSB7XG4gICAgLy8gVE9ETyA6IHRoaXMgb25seSBoYW5kbGVzICpvbmUqIG9mIHRoZSBleHBpcmVkIGNyZWRlbnRpYWwgY29kZXNcbiAgICByZXR1cm4gKGVycm9yLmNvZGUgPT09ICdFeHBpcmVkVG9rZW5FeGNlcHRpb24nKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjbG9ja1NrZXdFcnJvcjogZnVuY3Rpb24gY2xvY2tTa2V3RXJyb3IoZXJyb3IpIHtcbiAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgIGNhc2UgJ1JlcXVlc3RUaW1lVG9vU2tld2VkJzpcbiAgICAgIGNhc2UgJ1JlcXVlc3RFeHBpcmVkJzpcbiAgICAgIGNhc2UgJ0ludmFsaWRTaWduYXR1cmVFeGNlcHRpb24nOlxuICAgICAgY2FzZSAnU2lnbmF0dXJlRG9lc05vdE1hdGNoJzpcbiAgICAgIGNhc2UgJ0F1dGhGYWlsdXJlJzpcbiAgICAgIGNhc2UgJ1JlcXVlc3RJblRoZUZ1dHVyZSc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDogcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRTa2V3Q29ycmVjdGVkRGF0ZTogZnVuY3Rpb24gZ2V0U2tld0NvcnJlY3RlZERhdGUoKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkgKyB0aGlzLmNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYXBwbHlDbG9ja09mZnNldDogZnVuY3Rpb24gYXBwbHlDbG9ja09mZnNldChuZXdTZXJ2ZXJUaW1lKSB7XG4gICAgaWYgKG5ld1NlcnZlclRpbWUpIHtcbiAgICAgIHRoaXMuY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ID0gbmV3U2VydmVyVGltZSAtIERhdGUubm93KCk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGlzQ2xvY2tTa2V3ZWQ6IGZ1bmN0aW9uIGlzQ2xvY2tTa2V3ZWQobmV3U2VydmVyVGltZSkge1xuICAgIGlmIChuZXdTZXJ2ZXJUaW1lKSB7XG4gICAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRTa2V3Q29ycmVjdGVkRGF0ZSgpLmdldFRpbWUoKSAtIG5ld1NlcnZlclRpbWUpID49IDMwMDAwO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB0aHJvdHRsZWRFcnJvcjogZnVuY3Rpb24gdGhyb3R0bGVkRXJyb3IoZXJyb3IpIHtcbiAgICAvLyB0aGlzIGxvZ2ljIHZhcmllcyBiZXR3ZWVuIHNlcnZpY2VzXG4gICAgc3dpdGNoIChlcnJvci5jb2RlKSB7XG4gICAgICBjYXNlICdQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEV4Y2VwdGlvbic6XG4gICAgICBjYXNlICdUaHJvdHRsaW5nJzpcbiAgICAgIGNhc2UgJ1Rocm90dGxpbmdFeGNlcHRpb24nOlxuICAgICAgY2FzZSAnUmVxdWVzdExpbWl0RXhjZWVkZWQnOlxuICAgICAgY2FzZSAnUmVxdWVzdFRocm90dGxlZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBlbmRwb2ludEZyb21UZW1wbGF0ZTogZnVuY3Rpb24gZW5kcG9pbnRGcm9tVGVtcGxhdGUoZW5kcG9pbnQpIHtcbiAgICBpZiAodHlwZW9mIGVuZHBvaW50ICE9PSAnc3RyaW5nJykgcmV0dXJuIGVuZHBvaW50O1xuXG4gICAgdmFyIGUgPSBlbmRwb2ludDtcbiAgICBlID0gZS5yZXBsYWNlKC9cXHtzZXJ2aWNlXFx9L2csIHRoaXMuYXBpLmVuZHBvaW50UHJlZml4KTtcbiAgICBlID0gZS5yZXBsYWNlKC9cXHtyZWdpb25cXH0vZywgdGhpcy5jb25maWcucmVnaW9uKTtcbiAgICBlID0gZS5yZXBsYWNlKC9cXHtzY2hlbWVcXH0vZywgdGhpcy5jb25maWcuc3NsRW5hYmxlZCA/ICdodHRwcycgOiAnaHR0cCcpO1xuICAgIHJldHVybiBlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldEVuZHBvaW50OiBmdW5jdGlvbiBzZXRFbmRwb2ludChlbmRwb2ludCkge1xuICAgIHRoaXMuZW5kcG9pbnQgPSBuZXcgQVdTLkVuZHBvaW50KGVuZHBvaW50LCB0aGlzLmNvbmZpZyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcGFnaW5hdGlvbkNvbmZpZzogZnVuY3Rpb24gcGFnaW5hdGlvbkNvbmZpZyhvcGVyYXRpb24sIHRocm93RXhjZXB0aW9uKSB7XG4gICAgdmFyIHBhZ2luYXRvciA9IHRoaXMuYXBpLm9wZXJhdGlvbnNbb3BlcmF0aW9uXS5wYWdpbmF0b3I7XG4gICAgaWYgKCFwYWdpbmF0b3IpIHtcbiAgICAgIGlmICh0aHJvd0V4Y2VwdGlvbikge1xuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcigpO1xuICAgICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihlLCAnTm8gcGFnaW5hdGlvbiBjb25maWd1cmF0aW9uIGZvciAnICsgb3BlcmF0aW9uKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBwYWdpbmF0b3I7XG4gIH1cbn0pO1xuXG5BV1MudXRpbC51cGRhdGUoQVdTLlNlcnZpY2UsIHtcblxuICAvKipcbiAgICogQWRkcyBvbmUgbWV0aG9kIGZvciBlYWNoIG9wZXJhdGlvbiBkZXNjcmliZWQgaW4gdGhlIGFwaSBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZGVmaW5lTWV0aG9kczogZnVuY3Rpb24gZGVmaW5lTWV0aG9kcyhzdmMpIHtcbiAgICBBV1MudXRpbC5lYWNoKHN2Yy5wcm90b3R5cGUuYXBpLm9wZXJhdGlvbnMsIGZ1bmN0aW9uIGl0ZXJhdG9yKG1ldGhvZCkge1xuICAgICAgaWYgKHN2Yy5wcm90b3R5cGVbbWV0aG9kXSkgcmV0dXJuO1xuICAgICAgdmFyIG9wZXJhdGlvbiA9IHN2Yy5wcm90b3R5cGUuYXBpLm9wZXJhdGlvbnNbbWV0aG9kXTtcbiAgICAgIGlmIChvcGVyYXRpb24uYXV0aHR5cGUgPT09ICdub25lJykge1xuICAgICAgICBzdmMucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAocGFyYW1zLCBjYWxsYmFjaykge1xuICAgICAgICAgIHJldHVybiB0aGlzLm1ha2VVbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0KG1ldGhvZCwgcGFyYW1zLCBjYWxsYmFjayk7XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdmMucHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbiAocGFyYW1zLCBjYWxsYmFjaykge1xuICAgICAgICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0KG1ldGhvZCwgcGFyYW1zLCBjYWxsYmFjayk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBuZXcgU2VydmljZSBjbGFzcyB1c2luZyBhIHNlcnZpY2UgaWRlbnRpZmllciBhbmQgbGlzdCBvZiB2ZXJzaW9uc1xuICAgKiBpbmNsdWRpbmcgYW4gb3B0aW9uYWwgc2V0IG9mIGZlYXR1cmVzIChmdW5jdGlvbnMpIHRvIGFwcGx5IHRvIHRoZSBjbGFzc1xuICAgKiBwcm90b3R5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlSWRlbnRpZmllciBbU3RyaW5nXSB0aGUgaWRlbnRpZmllciBmb3IgdGhlIHNlcnZpY2VcbiAgICogQHBhcmFtIHZlcnNpb25zIFtBcnJheTxTdHJpbmc+XSBhIGxpc3Qgb2YgdmVyc2lvbnMgdGhhdCB3b3JrIHdpdGggdGhpc1xuICAgKiAgIHNlcnZpY2VcbiAgICogQHBhcmFtIGZlYXR1cmVzIFtPYmplY3RdIGFuIG9iamVjdCB0byBhdHRhY2ggdG8gdGhlIHByb3RvdHlwZVxuICAgKiBAcmV0dXJuIFtDbGFzczxTZXJ2aWNlPl0gdGhlIHNlcnZpY2UgY2xhc3MgZGVmaW5lZCBieSB0aGlzIGZ1bmN0aW9uLlxuICAgKi9cbiAgZGVmaW5lU2VydmljZTogZnVuY3Rpb24gZGVmaW5lU2VydmljZShzZXJ2aWNlSWRlbnRpZmllciwgdmVyc2lvbnMsIGZlYXR1cmVzKSB7XG4gICAgQVdTLlNlcnZpY2UuX3NlcnZpY2VNYXBbc2VydmljZUlkZW50aWZpZXJdID0gdHJ1ZTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmVyc2lvbnMpKSB7XG4gICAgICBmZWF0dXJlcyA9IHZlcnNpb25zO1xuICAgICAgdmVyc2lvbnMgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgc3ZjID0gaW5oZXJpdChBV1MuU2VydmljZSwgZmVhdHVyZXMgfHwge30pO1xuXG4gICAgaWYgKHR5cGVvZiBzZXJ2aWNlSWRlbnRpZmllciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIEFXUy5TZXJ2aWNlLmFkZFZlcnNpb25zKHN2YywgdmVyc2lvbnMpO1xuXG4gICAgICB2YXIgaWRlbnRpZmllciA9IHN2Yy5zZXJ2aWNlSWRlbnRpZmllciB8fCBzZXJ2aWNlSWRlbnRpZmllcjtcbiAgICAgIHN2Yy5zZXJ2aWNlSWRlbnRpZmllciA9IGlkZW50aWZpZXI7XG4gICAgfSBlbHNlIHsgLy8gZGVmaW5lU2VydmljZSBjYWxsZWQgd2l0aCBhbiBBUElcbiAgICAgIHN2Yy5wcm90b3R5cGUuYXBpID0gc2VydmljZUlkZW50aWZpZXI7XG4gICAgICBBV1MuU2VydmljZS5kZWZpbmVNZXRob2RzKHN2Yyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN2YztcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhZGRWZXJzaW9uczogZnVuY3Rpb24gYWRkVmVyc2lvbnMoc3ZjLCB2ZXJzaW9ucykge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2ZXJzaW9ucykpIHZlcnNpb25zID0gW3ZlcnNpb25zXTtcblxuICAgIHN2Yy5zZXJ2aWNlcyA9IHN2Yy5zZXJ2aWNlcyB8fCB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZlcnNpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoc3ZjLnNlcnZpY2VzW3ZlcnNpb25zW2ldXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN2Yy5zZXJ2aWNlc1t2ZXJzaW9uc1tpXV0gPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN2Yy5hcGlWZXJzaW9ucyA9IE9iamVjdC5rZXlzKHN2Yy5zZXJ2aWNlcykuc29ydCgpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGRlZmluZVNlcnZpY2VBcGk6IGZ1bmN0aW9uIGRlZmluZVNlcnZpY2VBcGkoc3VwZXJjbGFzcywgdmVyc2lvbiwgYXBpQ29uZmlnKSB7XG4gICAgdmFyIHN2YyA9IGluaGVyaXQoc3VwZXJjbGFzcywge1xuICAgICAgc2VydmljZUlkZW50aWZpZXI6IHN1cGVyY2xhc3Muc2VydmljZUlkZW50aWZpZXJcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHNldEFwaShhcGkpIHtcbiAgICAgIGlmIChhcGkuaXNBcGkpIHtcbiAgICAgICAgc3ZjLnByb3RvdHlwZS5hcGkgPSBhcGk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdmMucHJvdG90eXBlLmFwaSA9IG5ldyBBcGkoYXBpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZlcnNpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoYXBpQ29uZmlnKSB7XG4gICAgICAgIHNldEFwaShhcGlDb25maWcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzZXRBcGkoQVdTLmFwaUxvYWRlcihzdXBlcmNsYXNzLnNlcnZpY2VJZGVudGlmaWVyLCB2ZXJzaW9uKSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKGVyciwge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0NvdWxkIG5vdCBmaW5kIEFQSSBjb25maWd1cmF0aW9uICcgK1xuICAgICAgICAgICAgICBzdXBlcmNsYXNzLnNlcnZpY2VJZGVudGlmaWVyICsgJy0nICsgdmVyc2lvblxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdXBlcmNsYXNzLnNlcnZpY2VzLCB2ZXJzaW9uKSkge1xuICAgICAgICBzdXBlcmNsYXNzLmFwaVZlcnNpb25zID0gc3VwZXJjbGFzcy5hcGlWZXJzaW9ucy5jb25jYXQodmVyc2lvbikuc29ydCgpO1xuICAgICAgfVxuICAgICAgc3VwZXJjbGFzcy5zZXJ2aWNlc1t2ZXJzaW9uXSA9IHN2YztcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QXBpKHZlcnNpb24pO1xuICAgIH1cblxuICAgIEFXUy5TZXJ2aWNlLmRlZmluZU1ldGhvZHMoc3ZjKTtcbiAgICByZXR1cm4gc3ZjO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGhhc1NlcnZpY2U6IGZ1bmN0aW9uKGlkZW50aWZpZXIpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEFXUy5TZXJ2aWNlLl9zZXJ2aWNlTWFwLCBpZGVudGlmaWVyKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBfc2VydmljZU1hcDoge31cbn0pO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TZXJ2aWNlO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxuQVdTLnV0aWwudXBkYXRlKEFXUy5BUElHYXRld2F5LnByb3RvdHlwZSwge1xuLyoqXG4gKiBTZXRzIHRoZSBBY2NlcHQgaGVhZGVyIHRvIGFwcGxpY2F0aW9uL2pzb24uXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbiAgc2V0QWNjZXB0SGVhZGVyOiBmdW5jdGlvbiBzZXRBY2NlcHRIZWFkZXIocmVxKSB7XG4gICAgdmFyIGh0dHBSZXF1ZXN0ID0gcmVxLmh0dHBSZXF1ZXN0O1xuICAgIGlmICghaHR0cFJlcXVlc3QuaGVhZGVycy5BY2NlcHQpIHtcbiAgICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0FjY2VwdCddID0gJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KSB7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYnVpbGQnLCB0aGlzLnNldEFjY2VwdEhlYWRlcik7XG4gICAgaWYgKHJlcXVlc3Qub3BlcmF0aW9uID09PSAnZ2V0RXhwb3J0Jykge1xuICAgICAgdmFyIHBhcmFtcyA9IHJlcXVlc3QucGFyYW1zIHx8IHt9O1xuICAgICAgaWYgKHBhcmFtcy5leHBvcnRUeXBlID09PSAnc3dhZ2dlcicpIHtcbiAgICAgICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignZXh0cmFjdERhdGEnLCBBV1MudXRpbC5jb252ZXJ0UGF5bG9hZFRvU3RyaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xuXG4vLyBwdWxsIGluIENsb3VkRnJvbnQgc2lnbmVyXG5yZXF1aXJlKCcuLi9jbG91ZGZyb250L3NpZ25lcicpO1xuXG5BV1MudXRpbC51cGRhdGUoQVdTLkNsb3VkRnJvbnQucHJvdG90eXBlLCB7XG5cbiAgc2V0dXBSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBzZXR1cFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCkge1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgQVdTLnV0aWwuaG9pc3RQYXlsb2FkTWVtYmVyKTtcbiAgfVxuXG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuQ29nbml0b0lkZW50aXR5LnByb3RvdHlwZSwge1xuICBnZXRPcGVuSWRUb2tlbjogZnVuY3Rpb24gZ2V0T3BlbklkVG9rZW4ocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLm1ha2VVbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0KCdnZXRPcGVuSWRUb2tlbicsIHBhcmFtcywgY2FsbGJhY2spO1xuICB9LFxuXG4gIGdldElkOiBmdW5jdGlvbiBnZXRJZChwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVVuYXV0aGVudGljYXRlZFJlcXVlc3QoJ2dldElkJywgcGFyYW1zLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eTogZnVuY3Rpb24gZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eShwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVVuYXV0aGVudGljYXRlZFJlcXVlc3QoJ2dldENyZWRlbnRpYWxzRm9ySWRlbnRpdHknLCBwYXJhbXMsIGNhbGxiYWNrKTtcbiAgfVxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xucmVxdWlyZSgnLi4vZHluYW1vZGIvZG9jdW1lbnRfY2xpZW50Jyk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuRHluYW1vREIucHJvdG90eXBlLCB7XG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldHVwUmVxdWVzdExpc3RlbmVyczogZnVuY3Rpb24gc2V0dXBSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpIHtcbiAgICBpZiAocmVxdWVzdC5zZXJ2aWNlLmNvbmZpZy5keW5hbW9EYkNyYzMyKSB7XG4gICAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdleHRyYWN0RGF0YScsIEFXUy5FdmVudExpc3RlbmVycy5Kc29uLkVYVFJBQ1RfREFUQSk7XG4gICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIHRoaXMuY2hlY2tDcmMzMik7XG4gICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIEFXUy5FdmVudExpc3RlbmVycy5Kc29uLkVYVFJBQ1RfREFUQSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNoZWNrQ3JjMzI6IGZ1bmN0aW9uIGNoZWNrQ3JjMzIocmVzcCkge1xuICAgIGlmICghcmVzcC5odHRwUmVzcG9uc2Uuc3RyZWFtaW5nICYmICFyZXNwLnJlcXVlc3Quc2VydmljZS5jcmMzMklzVmFsaWQocmVzcCkpIHtcbiAgICAgIHJlc3AuZGF0YSA9IG51bGw7XG4gICAgICByZXNwLmVycm9yID0gQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgICAgY29kZTogJ0NSQzMyQ2hlY2tGYWlsZWQnLFxuICAgICAgICBtZXNzYWdlOiAnQ1JDMzIgaW50ZWdyaXR5IGNoZWNrIGZhaWxlZCcsXG4gICAgICAgIHJldHJ5YWJsZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgICByZXNwLnJlcXVlc3QuaGFsdEhhbmRsZXJzT25FcnJvcigpO1xuICAgICAgdGhyb3cgKHJlc3AuZXJyb3IpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjcmMzMklzVmFsaWQ6IGZ1bmN0aW9uIGNyYzMySXNWYWxpZChyZXNwKSB7XG4gICAgdmFyIGNyYyA9IHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnNbJ3gtYW16LWNyYzMyJ107XG4gICAgaWYgKCFjcmMpIHJldHVybiB0cnVlOyAvLyBubyAodmFsaWQpIENSQzMyIGhlYWRlclxuICAgIHJldHVybiBwYXJzZUludChjcmMsIDEwKSA9PT0gQVdTLnV0aWwuY3J5cHRvLmNyYzMyKHJlc3AuaHR0cFJlc3BvbnNlLmJvZHkpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGRlZmF1bHRSZXRyeUNvdW50OiAxMCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICByZXRyeURlbGF5czogZnVuY3Rpb24gcmV0cnlEZWxheXMocmV0cnlDb3VudCkge1xuICAgIHZhciByZXRyeURlbGF5T3B0aW9ucyA9IEFXUy51dGlsLmNvcHkodGhpcy5jb25maWcucmV0cnlEZWxheU9wdGlvbnMpO1xuXG4gICAgaWYgKHR5cGVvZiByZXRyeURlbGF5T3B0aW9ucy5iYXNlICE9PSAnbnVtYmVyJykge1xuICAgICAgICByZXRyeURlbGF5T3B0aW9ucy5iYXNlID0gNTA7IC8vIGRlZmF1bHQgZm9yIGR5bmFtb2RiXG4gICAgfVxuICAgIHZhciBkZWxheSA9IEFXUy51dGlsLmNhbGN1bGF0ZVJldHJ5RGVsYXkocmV0cnlDb3VudCwgcmV0cnlEZWxheU9wdGlvbnMpO1xuICAgIHJldHVybiBkZWxheTtcbiAgfVxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xuXG5BV1MudXRpbC51cGRhdGUoQVdTLkVDMi5wcm90b3R5cGUsIHtcbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0dXBSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBzZXR1cFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCkge1xuICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ2V4dHJhY3RFcnJvcicsIEFXUy5FdmVudExpc3RlbmVycy5RdWVyeS5FWFRSQUNUX0VSUk9SKTtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RXJyb3InLCB0aGlzLmV4dHJhY3RFcnJvcik7XG5cbiAgICBpZiAocmVxdWVzdC5vcGVyYXRpb24gPT09ICdjb3B5U25hcHNob3QnKSB7XG4gICAgICByZXF1ZXN0Lm9uQXN5bmMoJ3ZhbGlkYXRlJywgdGhpcy5idWlsZENvcHlTbmFwc2hvdFByZXNpZ25lZFVybCk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGJ1aWxkQ29weVNuYXBzaG90UHJlc2lnbmVkVXJsOiBmdW5jdGlvbiBidWlsZENvcHlTbmFwc2hvdFByZXNpZ25lZFVybChyZXEsIGRvbmUpIHtcbiAgICBpZiAocmVxLnBhcmFtcy5QcmVzaWduZWRVcmwgfHwgcmVxLl9zdWJSZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gZG9uZSgpO1xuICAgIH1cblxuICAgIHJlcS5wYXJhbXMgPSBBV1MudXRpbC5jb3B5KHJlcS5wYXJhbXMpO1xuICAgIHJlcS5wYXJhbXMuRGVzdGluYXRpb25SZWdpb24gPSByZXEuc2VydmljZS5jb25maWcucmVnaW9uO1xuXG4gICAgdmFyIGNvbmZpZyA9IEFXUy51dGlsLmNvcHkocmVxLnNlcnZpY2UuY29uZmlnKTtcbiAgICBkZWxldGUgY29uZmlnLmVuZHBvaW50O1xuICAgIGNvbmZpZy5yZWdpb24gPSByZXEucGFyYW1zLlNvdXJjZVJlZ2lvbjtcbiAgICB2YXIgc3ZjID0gbmV3IHJlcS5zZXJ2aWNlLmNvbnN0cnVjdG9yKGNvbmZpZyk7XG4gICAgdmFyIG5ld1JlcSA9IHN2Y1tyZXEub3BlcmF0aW9uXShyZXEucGFyYW1zKTtcbiAgICBuZXdSZXEuX3N1YlJlcXVlc3QgPSB0cnVlO1xuICAgIG5ld1JlcS5wcmVzaWduKGZ1bmN0aW9uKGVyciwgdXJsKSB7XG4gICAgICBpZiAoZXJyKSBkb25lKGVycik7XG4gICAgICBlbHNlIHtcbiAgICAgICAgcmVxLnBhcmFtcy5QcmVzaWduZWRVcmwgPSB1cmw7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBleHRyYWN0RXJyb3I6IGZ1bmN0aW9uIGV4dHJhY3RFcnJvcihyZXNwKSB7XG4gICAgLy8gRUMyIG5lc3RzIHRoZSBlcnJvciBjb2RlIGFuZCBtZXNzYWdlIGRlZXBlciB0aGFuIG90aGVyIEFXUyBRdWVyeSBzZXJ2aWNlcy5cbiAgICB2YXIgaHR0cFJlc3BvbnNlID0gcmVzcC5odHRwUmVzcG9uc2U7XG4gICAgdmFyIGRhdGEgPSBuZXcgQVdTLlhNTC5QYXJzZXIoKS5wYXJzZShodHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpIHx8ICcnKTtcbiAgICBpZiAoZGF0YS5FcnJvcnMpIHtcbiAgICAgIHJlc3AuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgICBjb2RlOiBkYXRhLkVycm9ycy5FcnJvci5Db2RlLFxuICAgICAgICBtZXNzYWdlOiBkYXRhLkVycm9ycy5FcnJvci5NZXNzYWdlXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcC5lcnJvciA9IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICAgIGNvZGU6IGh0dHBSZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICBtZXNzYWdlOiBudWxsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmVzcC5lcnJvci5yZXF1ZXN0SWQgPSBkYXRhLlJlcXVlc3RJRCB8fCBudWxsO1xuICB9XG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBibG9iUGF5bG9hZE91dHB1dE9wcyA9IFtcbiAgJ2RlbGV0ZVRoaW5nU2hhZG93JyxcbiAgJ2dldFRoaW5nU2hhZG93JyxcbiAgJ3VwZGF0ZVRoaW5nU2hhZG93J1xuXTtcblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGEgc2VydmljZSBpbnRlcmZhY2Ugb2JqZWN0LiBFYWNoIEFQSSBvcGVyYXRpb24gaXMgZXhwb3NlZCBhcyBhXG4gKiBmdW5jdGlvbiBvbiBzZXJ2aWNlLlxuICpcbiAqICMjIyBTZW5kaW5nIGEgUmVxdWVzdCBVc2luZyBJb3REYXRhXG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogdmFyIGlvdGRhdGEgPSBuZXcgQVdTLklvdERhdGEoe2VuZHBvaW50OiAnbXkuaG9zdC50bGQnfSk7XG4gKiBpb3RkYXRhLmdldFRoaW5nU2hhZG93KHBhcmFtcywgZnVuY3Rpb24gKGVyciwgZGF0YSkge1xuICogICBpZiAoZXJyKSBjb25zb2xlLmxvZyhlcnIsIGVyci5zdGFjayk7IC8vIGFuIGVycm9yIG9jY3VycmVkXG4gKiAgIGVsc2UgICAgIGNvbnNvbGUubG9nKGRhdGEpOyAgICAgICAgICAgLy8gc3VjY2Vzc2Z1bCByZXNwb25zZVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiAjIyMgTG9ja2luZyB0aGUgQVBJIFZlcnNpb25cbiAqXG4gKiBJbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgSW90RGF0YSBvYmplY3QgdXNlcyB0aGlzIHNwZWNpZmljIEFQSSxcbiAqIHlvdSBjYW4gY29uc3RydWN0IHRoZSBvYmplY3QgYnkgcGFzc2luZyB0aGUgYGFwaVZlcnNpb25gIG9wdGlvbiB0byB0aGVcbiAqIGNvbnN0cnVjdG9yOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIHZhciBpb3RkYXRhID0gbmV3IEFXUy5Jb3REYXRhKHtcbiAqICAgZW5kcG9pbnQ6ICdteS5ob3N0LnRsZCcsXG4gKiAgIGFwaVZlcnNpb246ICcyMDE1LTA1LTI4J1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBZb3UgY2FuIGFsc28gc2V0IHRoZSBBUEkgdmVyc2lvbiBnbG9iYWxseSBpbiBgQVdTLmNvbmZpZy5hcGlWZXJzaW9uc2AgdXNpbmdcbiAqIHRoZSAqKmlvdGRhdGEqKiBzZXJ2aWNlIGlkZW50aWZpZXI6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogQVdTLmNvbmZpZy5hcGlWZXJzaW9ucyA9IHtcbiAqICAgaW90ZGF0YTogJzIwMTUtMDUtMjgnLFxuICogICAvLyBvdGhlciBzZXJ2aWNlIEFQSSB2ZXJzaW9uc1xuICogfTtcbiAqXG4gKiB2YXIgaW90ZGF0YSA9IG5ldyBBV1MuSW90RGF0YSh7ZW5kcG9pbnQ6ICdteS5ob3N0LnRsZCd9KTtcbiAqIGBgYFxuICpcbiAqIEBub3RlIFlvdSAqbXVzdCogcHJvdmlkZSBhbiBgZW5kcG9pbnRgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHdoZW5cbiAqICAgY29uc3RydWN0aW5nIHRoaXMgc2VydmljZS4gU2VlIHtjb25zdHJ1Y3Rvcn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQCFtZXRob2QgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KVxuICogICBDb25zdHJ1Y3RzIGEgc2VydmljZSBvYmplY3QuIFRoaXMgb2JqZWN0IGhhcyBvbmUgbWV0aG9kIGZvciBlYWNoXG4gKiAgIEFQSSBvcGVyYXRpb24uXG4gKlxuICogICBAZXhhbXBsZSBDb25zdHJ1Y3RpbmcgYSBJb3REYXRhIG9iamVjdFxuICogICAgIHZhciBpb3RkYXRhID0gbmV3IEFXUy5Jb3REYXRhKHtlbmRwb2ludDogJ215Lmhvc3QudGxkJ30pO1xuICogICBAbm90ZSBZb3UgKm11c3QqIHByb3ZpZGUgYW4gYGVuZHBvaW50YCB3aGVuIGNvbnN0cnVjdGluZyB0aGlzIHNlcnZpY2UuXG4gKiAgIEBvcHRpb24gKHNlZSBBV1MuQ29uZmlnLmNvbnN0cnVjdG9yKVxuICpcbiAqIEBzZXJ2aWNlIGlvdGRhdGFcbiAqIEB2ZXJzaW9uIDIwMTUtMDUtMjhcbiAqL1xuQVdTLnV0aWwudXBkYXRlKEFXUy5Jb3REYXRhLnByb3RvdHlwZSwge1xuICAgIC8qKlxuICAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICAqL1xuICAgIHZhbGlkYXRlU2VydmljZTogZnVuY3Rpb24gdmFsaWRhdGVTZXJ2aWNlKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmVuZHBvaW50IHx8IHRoaXMuY29uZmlnLmVuZHBvaW50LmluZGV4T2YoJ3snKSA+PSAwKSB7XG4gICAgICAgICAgICB2YXIgbXNnID0gJ0FXUy5Jb3REYXRhIHJlcXVpcmVzIGFuIGV4cGxpY2l0ICcgK1xuICAgICAgICAgICAgICAgICdgZW5kcG9pbnRcXCcgY29uZmlndXJhdGlvbiBvcHRpb24uJztcbiAgICAgICAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLFxuICAgICAgICAgICAgICAgIHtuYW1lOiAnSW52YWxpZEVuZHBvaW50JywgbWVzc2FnZTogbXNnfSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQGFwaSBwcml2YXRlXG4gICAgICovXG4gICAgc2V0dXBSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBzZXR1cFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCkge1xuICAgICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCd2YWxpZGF0ZVJlc3BvbnNlJywgdGhpcy52YWxpZGF0ZVJlc3BvbnNlQm9keSk7XG4gICAgICAgIGlmIChibG9iUGF5bG9hZE91dHB1dE9wcy5pbmRleE9mKHJlcXVlc3Qub3BlcmF0aW9uKSA+IC0xKSB7XG4gICAgICAgICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIEFXUy51dGlsLmNvbnZlcnRQYXlsb2FkVG9TdHJpbmcpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICAqL1xuICAgIHZhbGlkYXRlUmVzcG9uc2VCb2R5OiBmdW5jdGlvbiB2YWxpZGF0ZVJlc3BvbnNlQm9keShyZXNwKSB7XG4gICAgICAgIHZhciBib2R5ID0gcmVzcC5odHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpIHx8ICd7fSc7XG4gICAgICAgIHZhciBib2R5Q2hlY2sgPSBib2R5LnRyaW0oKTtcbiAgICAgICAgaWYgKCFib2R5Q2hlY2sgfHwgYm9keUNoZWNrLmNoYXJBdCgwKSAhPT0gJ3snKSB7XG4gICAgICAgICAgICByZXNwLmh0dHBSZXNwb25zZS5ib2R5ID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbn0pO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxuQVdTLnV0aWwudXBkYXRlKEFXUy5MYW1iZGEucHJvdG90eXBlLCB7XG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldHVwUmVxdWVzdExpc3RlbmVyczogZnVuY3Rpb24gc2V0dXBSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpIHtcbiAgICBpZiAocmVxdWVzdC5vcGVyYXRpb24gPT09ICdpbnZva2UnKSB7XG4gICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIEFXUy51dGlsLmNvbnZlcnRQYXlsb2FkVG9TdHJpbmcpO1xuICAgIH1cbiAgfVxufSk7XG5cbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuTWFjaGluZUxlYXJuaW5nLnByb3RvdHlwZSwge1xuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KSB7XG4gICAgaWYgKHJlcXVlc3Qub3BlcmF0aW9uID09PSAncHJlZGljdCcpIHtcbiAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2J1aWxkJywgdGhpcy5idWlsZEVuZHBvaW50KTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgcmVxdWVzdCBlbmRwb2ludCBmcm9tIFByZWRpY3RFbmRwb2ludFxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGJ1aWxkRW5kcG9pbnQ6IGZ1bmN0aW9uIGJ1aWxkRW5kcG9pbnQocmVxdWVzdCkge1xuICAgIHZhciB1cmwgPSByZXF1ZXN0LnBhcmFtcy5QcmVkaWN0RW5kcG9pbnQ7XG4gICAgaWYgKHVybCkge1xuICAgICAgcmVxdWVzdC5odHRwUmVxdWVzdC5lbmRwb2ludCA9IG5ldyBBV1MuRW5kcG9pbnQodXJsKTtcbiAgICB9XG4gIH1cblxufSk7XG4iLCJyZXF1aXJlKCcuLi9wb2xseS9wcmVzaWduZXInKTsiLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xucmVxdWlyZSgnLi4vcmRzL3NpZ25lcicpO1xuIC8qKlxuICAqIEBhcGkgcHJpdmF0ZVxuICAqL1xuIHZhciBjcm9zc1JlZ2lvbk9wZXJhdGlvbnMgPSBbJ2NvcHlEQlNuYXBzaG90JywgJ2NyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYScsICdjcmVhdGVEQkNsdXN0ZXInLCAnY29weURCQ2x1c3RlclNuYXBzaG90J107XG5cbiBBV1MudXRpbC51cGRhdGUoQVdTLlJEUy5wcm90b3R5cGUsIHtcbiAgIC8qKlxuICAgICogQGFwaSBwcml2YXRlXG4gICAgKi9cbiAgIHNldHVwUmVxdWVzdExpc3RlbmVyczogZnVuY3Rpb24gc2V0dXBSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpIHtcbiAgICAgaWYgKGNyb3NzUmVnaW9uT3BlcmF0aW9ucy5pbmRleE9mKHJlcXVlc3Qub3BlcmF0aW9uKSAhPT0gLTEgJiZcbiAgICAgICAgIHJlcXVlc3QucGFyYW1zLlNvdXJjZVJlZ2lvbikge1xuICAgICAgIHJlcXVlc3QucGFyYW1zID0gQVdTLnV0aWwuY29weShyZXF1ZXN0LnBhcmFtcyk7XG4gICAgICAgaWYgKHJlcXVlc3QucGFyYW1zLlByZVNpZ25lZFVybCB8fFxuICAgICAgICAgICByZXF1ZXN0LnBhcmFtcy5Tb3VyY2VSZWdpb24gPT09IHRoaXMuY29uZmlnLnJlZ2lvbikge1xuICAgICAgICAgZGVsZXRlIHJlcXVlc3QucGFyYW1zLlNvdXJjZVJlZ2lvbjtcbiAgICAgICB9IGVsc2Uge1xuICAgICAgICAgdmFyIGRvZXNQYXJhbVZhbGlkYXRpb24gPSAhIXRoaXMuY29uZmlnLnBhcmFtVmFsaWRhdGlvbjtcbiAgICAgICAgIC8vIHJlbW92ZSB0aGUgdmFsaWRhdGUgcGFyYW1ldGVycyBsaXN0ZW5lciBzbyB3ZSBjYW4gcmUtYWRkIGl0IGFmdGVyIHdlIGJ1aWxkIHRoZSBVUkxcbiAgICAgICAgIGlmIChkb2VzUGFyYW1WYWxpZGF0aW9uKSB7XG4gICAgICAgICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ3ZhbGlkYXRlJywgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuVkFMSURBVEVfUEFSQU1FVEVSUyk7XG4gICAgICAgICB9XG4gICAgICAgICByZXF1ZXN0Lm9uQXN5bmMoJ3ZhbGlkYXRlJywgdGhpcy5idWlsZENyb3NzUmVnaW9uUHJlc2lnbmVkVXJsKTtcbiAgICAgICAgIGlmIChkb2VzUGFyYW1WYWxpZGF0aW9uKSB7XG4gICAgICAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ3ZhbGlkYXRlJywgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuVkFMSURBVEVfUEFSQU1FVEVSUyk7XG4gICAgICAgICB9XG4gICAgICAgfVxuICAgICB9XG4gICB9LFxuXG4gICAvKipcbiAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICovXG4gICBidWlsZENyb3NzUmVnaW9uUHJlc2lnbmVkVXJsOiBmdW5jdGlvbiBidWlsZENyb3NzUmVnaW9uUHJlc2lnbmVkVXJsKHJlcSwgZG9uZSkge1xuICAgICB2YXIgY29uZmlnID0gQVdTLnV0aWwuY29weShyZXEuc2VydmljZS5jb25maWcpO1xuICAgICBjb25maWcucmVnaW9uID0gcmVxLnBhcmFtcy5Tb3VyY2VSZWdpb247XG4gICAgIGRlbGV0ZSByZXEucGFyYW1zLlNvdXJjZVJlZ2lvbjtcbiAgICAgZGVsZXRlIGNvbmZpZy5lbmRwb2ludDtcbiAgICAgLy8gcmVsZXZhbnQgcGFyYW1zIGZvciB0aGUgb3BlcmF0aW9uIHdpbGwgYWxyZWFkeSBiZSBpbiByZXEucGFyYW1zXG4gICAgIGRlbGV0ZSBjb25maWcucGFyYW1zO1xuICAgICBjb25maWcuc2lnbmF0dXJlVmVyc2lvbiA9ICd2NCc7XG4gICAgIHZhciBkZXN0aW5hdGlvblJlZ2lvbiA9IHJlcS5zZXJ2aWNlLmNvbmZpZy5yZWdpb247XG5cbiAgICAgdmFyIHN2YyA9IG5ldyByZXEuc2VydmljZS5jb25zdHJ1Y3Rvcihjb25maWcpO1xuICAgICB2YXIgbmV3UmVxID0gc3ZjW3JlcS5vcGVyYXRpb25dKEFXUy51dGlsLmNvcHkocmVxLnBhcmFtcykpO1xuICAgICBuZXdSZXEub24oJ2J1aWxkJywgZnVuY3Rpb24gYWRkRGVzdGluYXRpb25SZWdpb25QYXJhbShyZXF1ZXN0KSB7XG4gICAgICAgdmFyIGh0dHBSZXF1ZXN0ID0gcmVxdWVzdC5odHRwUmVxdWVzdDtcbiAgICAgICBodHRwUmVxdWVzdC5wYXJhbXMuRGVzdGluYXRpb25SZWdpb24gPSBkZXN0aW5hdGlvblJlZ2lvbjtcbiAgICAgICBodHRwUmVxdWVzdC5ib2R5ID0gQVdTLnV0aWwucXVlcnlQYXJhbXNUb1N0cmluZyhodHRwUmVxdWVzdC5wYXJhbXMpO1xuICAgICB9KTtcbiAgICAgbmV3UmVxLnByZXNpZ24oZnVuY3Rpb24oZXJyLCB1cmwpIHtcbiAgICAgICBpZiAoZXJyKSBkb25lKGVycik7XG4gICAgICAgZWxzZSB7XG4gICAgICAgICByZXEucGFyYW1zLlByZVNpZ25lZFVybCA9IHVybDtcbiAgICAgICAgIGRvbmUoKTtcbiAgICAgICB9XG4gICAgIH0pO1xuICAgfVxuIH0pOyIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuUm91dGU1My5wcm90b3R5cGUsIHtcbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0dXBSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBzZXR1cFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCkge1xuICAgIHJlcXVlc3Qub24oJ2J1aWxkJywgdGhpcy5zYW5pdGl6ZVVybCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2FuaXRpemVVcmw6IGZ1bmN0aW9uIHNhbml0aXplVXJsKHJlcXVlc3QpIHtcbiAgICB2YXIgcGF0aCA9IHJlcXVlc3QuaHR0cFJlcXVlc3QucGF0aDtcbiAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0LnBhdGggPSBwYXRoLnJlcGxhY2UoL1xcLyUyRlxcdyslMkYvLCAnLycpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHRoZSBlcnJvciBjYW4gYmUgcmV0cmllZFxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJldHJ5YWJsZUVycm9yOiBmdW5jdGlvbiByZXRyeWFibGVFcnJvcihlcnJvcikge1xuICAgIGlmIChlcnJvci5jb2RlID09PSAnUHJpb3JSZXF1ZXN0Tm90Q29tcGxldGUnICYmXG4gICAgICAgIGVycm9yLnN0YXR1c0NvZGUgPT09IDQwMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfc3VwZXIgPSBBV1MuU2VydmljZS5wcm90b3R5cGUucmV0cnlhYmxlRXJyb3I7XG4gICAgICByZXR1cm4gX3N1cGVyLmNhbGwodGhpcywgZXJyb3IpO1xuICAgIH1cbiAgfVxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIHY0Q3JlZGVudGlhbHMgPSByZXF1aXJlKCcuLi9zaWduZXJzL3Y0X2NyZWRlbnRpYWxzJyk7XG5cbi8vIFB1bGwgaW4gbWFuYWdlZCB1cGxvYWQgZXh0ZW5zaW9uXG5yZXF1aXJlKCcuLi9zMy9tYW5hZ2VkX3VwbG9hZCcpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgb3BlcmF0aW9uc1dpdGgyMDBTdGF0dXNDb2RlRXJyb3IgPSB7XG4gICdjb21wbGV0ZU11bHRpcGFydFVwbG9hZCc6IHRydWUsXG4gICdjb3B5T2JqZWN0JzogdHJ1ZSxcbiAgJ3VwbG9hZFBhcnRDb3B5JzogdHJ1ZVxufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuIHZhciByZWdpb25SZWRpcmVjdEVycm9yQ29kZXMgPSBbXG4gICdBdXRob3JpemF0aW9uSGVhZGVyTWFsZm9ybWVkJywgLy8gbm9uLWhlYWQgb3BlcmF0aW9ucyBvbiB2aXJ0dWFsLWhvc3RlZCBnbG9iYWwgYnVja2V0IGVuZHBvaW50c1xuICAnQmFkUmVxdWVzdCcsIC8vIGhlYWQgb3BlcmF0aW9ucyBvbiB2aXJ0dWFsLWhvc3RlZCBnbG9iYWwgYnVja2V0IGVuZHBvaW50c1xuICAnUGVybWFuZW50UmVkaXJlY3QnLCAvLyBub24taGVhZCBvcGVyYXRpb25zIG9uIHBhdGgtc3R5bGUgb3IgcmVnaW9uYWwgZW5kcG9pbnRzXG4gIDMwMSAvLyBoZWFkIG9wZXJhdGlvbnMgb24gcGF0aC1zdHlsZSBvciByZWdpb25hbCBlbmRwb2ludHNcbiBdO1xuXG5BV1MudXRpbC51cGRhdGUoQVdTLlMzLnByb3RvdHlwZSwge1xuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRTaWduYXR1cmVWZXJzaW9uOiBmdW5jdGlvbiBnZXRTaWduYXR1cmVWZXJzaW9uKHJlcXVlc3QpIHtcbiAgICB2YXIgZGVmYXVsdEFwaVZlcnNpb24gPSB0aGlzLmFwaS5zaWduYXR1cmVWZXJzaW9uO1xuICAgIHZhciB1c2VyRGVmaW5lZFZlcnNpb24gPSB0aGlzLl9vcmlnaW5hbENvbmZpZyA/IHRoaXMuX29yaWdpbmFsQ29uZmlnLnNpZ25hdHVyZVZlcnNpb24gOiBudWxsO1xuICAgIHZhciByZWdpb25EZWZpbmVkVmVyc2lvbiA9IHRoaXMuY29uZmlnLnNpZ25hdHVyZVZlcnNpb247XG4gICAgdmFyIGlzUHJlc2lnbmVkID0gcmVxdWVzdCA/IHJlcXVlc3QuaXNQcmVzaWduZWQoKSA6IGZhbHNlO1xuICAgIC8qXG4gICAgICAxKSBVc2VyIGRlZmluZWQgdmVyc2lvbiBzcGVjaWZpZWQ6XG4gICAgICAgIGEpIGFsd2F5cyByZXR1cm4gdXNlciBkZWZpbmVkIHZlcnNpb25cbiAgICAgIDIpIE5vIHVzZXIgZGVmaW5lZCB2ZXJzaW9uIHNwZWNpZmllZDpcbiAgICAgICAgYSkgZGVmYXVsdCB0byBsb3dlc3QgdmVyc2lvbiB0aGUgcmVnaW9uIHN1cHBvcnRzXG4gICAgICAgIGIpIElmIHVzaW5nIHByZXNpZ25lZCB1cmxzLCBkZWZhdWx0IHRvIGxvd2VzdCB2ZXJzaW9uIHRoZSByZWdpb24gc3VwcG9ydHNcbiAgICAqL1xuICAgIGlmICh1c2VyRGVmaW5lZFZlcnNpb24pIHtcbiAgICAgIHVzZXJEZWZpbmVkVmVyc2lvbiA9IHVzZXJEZWZpbmVkVmVyc2lvbiA9PT0gJ3YyJyA/ICdzMycgOiB1c2VyRGVmaW5lZFZlcnNpb247XG4gICAgICByZXR1cm4gdXNlckRlZmluZWRWZXJzaW9uO1xuICAgIH1cbiAgICBpZiAoaXNQcmVzaWduZWQgIT09IHRydWUpIHtcbiAgICAgIGRlZmF1bHRBcGlWZXJzaW9uID0gJ3Y0JztcbiAgICB9IGVsc2UgaWYgKHJlZ2lvbkRlZmluZWRWZXJzaW9uKSB7XG4gICAgICBkZWZhdWx0QXBpVmVyc2lvbiA9IHJlZ2lvbkRlZmluZWRWZXJzaW9uO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdEFwaVZlcnNpb247XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0U2lnbmVyQ2xhc3M6IGZ1bmN0aW9uIGdldFNpZ25lckNsYXNzKHJlcXVlc3QpIHtcbiAgICB2YXIgc2lnbmF0dXJlVmVyc2lvbiA9IHRoaXMuZ2V0U2lnbmF0dXJlVmVyc2lvbihyZXF1ZXN0KTtcbiAgICByZXR1cm4gQVdTLlNpZ25lcnMuUmVxdWVzdFNpZ25lci5nZXRWZXJzaW9uKHNpZ25hdHVyZVZlcnNpb24pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHZhbGlkYXRlU2VydmljZTogZnVuY3Rpb24gdmFsaWRhdGVTZXJ2aWNlKCkge1xuICAgIHZhciBtc2c7XG4gICAgdmFyIG1lc3NhZ2VzID0gW107XG5cbiAgICAvLyBkZWZhdWx0IHRvIHVzLWVhc3QtMSB3aGVuIG5vIHJlZ2lvbiBpcyBwcm92aWRlZFxuICAgIGlmICghdGhpcy5jb25maWcucmVnaW9uKSB0aGlzLmNvbmZpZy5yZWdpb24gPSAndXMtZWFzdC0xJztcblxuICAgIGlmICghdGhpcy5jb25maWcuZW5kcG9pbnQgJiYgdGhpcy5jb25maWcuczNCdWNrZXRFbmRwb2ludCkge1xuICAgICAgbWVzc2FnZXMucHVzaCgnQW4gZW5kcG9pbnQgbXVzdCBiZSBwcm92aWRlZCB3aGVuIGNvbmZpZ3VyaW5nICcgK1xuICAgICAgICAgICAgICAgICAgICAnYHMzQnVja2V0RW5kcG9pbnRgIHRvIHRydWUuJyk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIG1zZyA9IG1lc3NhZ2VzWzBdO1xuICAgIH0gZWxzZSBpZiAobWVzc2FnZXMubGVuZ3RoID4gMSkge1xuICAgICAgbXNnID0gJ011bHRpcGxlIGNvbmZpZ3VyYXRpb24gZXJyb3JzOlxcbicgKyBtZXNzYWdlcy5qb2luKCdcXG4nKTtcbiAgICB9XG4gICAgaWYgKG1zZykge1xuICAgICAgdGhyb3cgQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksXG4gICAgICAgIHtuYW1lOiAnSW52YWxpZEVuZHBvaW50JywgbWVzc2FnZTogbXNnfSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNob3VsZERpc2FibGVCb2R5U2lnbmluZzogZnVuY3Rpb24gc2hvdWxkRGlzYWJsZUJvZHlTaWduaW5nKHJlcXVlc3QpIHtcbiAgICB2YXIgc2lnbmVyQ2xhc3MgPSB0aGlzLmdldFNpZ25lckNsYXNzKCk7XG4gICAgaWYgKHRoaXMuY29uZmlnLnMzRGlzYWJsZUJvZHlTaWduaW5nID09PSB0cnVlICYmIHNpZ25lckNsYXNzID09PSBBV1MuU2lnbmVycy5WNFxuICAgICAgICAmJiByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmVuZHBvaW50LnByb3RvY29sID09PSAnaHR0cHM6Jykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KSB7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcigndmFsaWRhdGUnLCB0aGlzLnZhbGlkYXRlU2NoZW1lKTtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCd2YWxpZGF0ZScsIHRoaXMudmFsaWRhdGVCdWNrZXRFbmRwb2ludCk7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcigndmFsaWRhdGUnLCB0aGlzLmNvcnJlY3RCdWNrZXRSZWdpb25Gcm9tQ2FjaGUpO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ3ZhbGlkYXRlJywgdGhpcy52YWxpZGF0ZUJ1Y2tldE5hbWUpO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2J1aWxkJywgdGhpcy5hZGRDb250ZW50VHlwZSk7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYnVpbGQnLCB0aGlzLnBvcHVsYXRlVVJJKTtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdidWlsZCcsIHRoaXMuY29tcHV0ZUNvbnRlbnRNZDUpO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2J1aWxkJywgdGhpcy5jb21wdXRlU3NlQ3VzdG9tZXJLZXlNZDUpO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2FmdGVyQnVpbGQnLCB0aGlzLmFkZEV4cGVjdDEwMENvbnRpbnVlKTtcbiAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCd2YWxpZGF0ZScsXG4gICAgICBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9SRUdJT04pO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3RFcnJvcicsIHRoaXMuZXh0cmFjdEVycm9yKTtcbiAgICByZXF1ZXN0Lm9uQXN5bmMoJ2V4dHJhY3RFcnJvcicsIHRoaXMucmVxdWVzdEJ1Y2tldFJlZ2lvbik7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignZXh0cmFjdERhdGEnLCB0aGlzLmV4dHJhY3REYXRhKTtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIEFXUy51dGlsLmhvaXN0UGF5bG9hZE1lbWJlcik7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYmVmb3JlUHJlc2lnbicsIHRoaXMucHJlcGFyZVNpZ25lZFVybCk7XG4gICAgaWYgKEFXUy51dGlsLmlzQnJvd3NlcigpKSB7XG4gICAgICByZXF1ZXN0Lm9uQXN5bmMoJ3JldHJ5JywgdGhpcy5yZXFSZWdpb25Gb3JOZXR3b3JraW5nRXJyb3IpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG91bGREaXNhYmxlQm9keVNpZ25pbmcocmVxdWVzdCkpICB7XG4gICAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdhZnRlckJ1aWxkJywgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuQ09NUFVURV9TSEEyNTYpO1xuICAgICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYWZ0ZXJCdWlsZCcsIHRoaXMuZGlzYWJsZUJvZHlTaWduaW5nKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdmFsaWRhdGVTY2hlbWU6IGZ1bmN0aW9uKHJlcSkge1xuICAgIHZhciBwYXJhbXMgPSByZXEucGFyYW1zLFxuICAgICAgICBzY2hlbWUgPSByZXEuaHR0cFJlcXVlc3QuZW5kcG9pbnQucHJvdG9jb2wsXG4gICAgICAgIHNlbnNpdGl2ZSA9IHBhcmFtcy5TU0VDdXN0b21lcktleSB8fCBwYXJhbXMuQ29weVNvdXJjZVNTRUN1c3RvbWVyS2V5O1xuICAgIGlmIChzZW5zaXRpdmUgJiYgc2NoZW1lICE9PSAnaHR0cHM6Jykge1xuICAgICAgdmFyIG1zZyA9ICdDYW5ub3Qgc2VuZCBTU0Uga2V5cyBvdmVyIEhUVFAuIFNldCBcXCdzc2xFbmFibGVkXFwnJyArXG4gICAgICAgICd0byBcXCd0cnVlXFwnIGluIHlvdXIgY29uZmlndXJhdGlvbic7XG4gICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSxcbiAgICAgICAgeyBjb2RlOiAnQ29uZmlnRXJyb3InLCBtZXNzYWdlOiBtc2cgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHZhbGlkYXRlQnVja2V0RW5kcG9pbnQ6IGZ1bmN0aW9uKHJlcSkge1xuICAgIGlmICghcmVxLnBhcmFtcy5CdWNrZXQgJiYgcmVxLnNlcnZpY2UuY29uZmlnLnMzQnVja2V0RW5kcG9pbnQpIHtcbiAgICAgIHZhciBtc2cgPSAnQ2Fubm90IHNlbmQgcmVxdWVzdHMgdG8gcm9vdCBBUEkgd2l0aCBgczNCdWNrZXRFbmRwb2ludGAgc2V0Lic7XG4gICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSxcbiAgICAgICAgeyBjb2RlOiAnQ29uZmlnRXJyb3InLCBtZXNzYWdlOiBtc2cgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHZhbGlkYXRlQnVja2V0TmFtZTogZnVuY3Rpb24gdmFsaWRhdGVCdWNrZXROYW1lKHJlcSkge1xuICAgIHZhciBzZXJ2aWNlID0gcmVxLnNlcnZpY2U7XG4gICAgdmFyIHNpZ25hdHVyZVZlcnNpb24gPSBzZXJ2aWNlLmdldFNpZ25hdHVyZVZlcnNpb24ocmVxKTtcbiAgICAvLyBPbmx5IHZhbGlkYXRlIGJ1Y2tldHMgd2hlbiB1c2luZyBzaWd2NFxuICAgIGlmIChzaWduYXR1cmVWZXJzaW9uICE9PSAndjQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBidWNrZXQgPSByZXEucGFyYW1zICYmIHJlcS5wYXJhbXMuQnVja2V0O1xuICAgIHZhciBrZXkgPSByZXEucGFyYW1zICYmIHJlcS5wYXJhbXMuS2V5O1xuICAgIHZhciBzbGFzaEluZGV4ID0gYnVja2V0ICYmIGJ1Y2tldC5pbmRleE9mKCcvJyk7XG4gICAgaWYgKGJ1Y2tldCAmJiBzbGFzaEluZGV4ID49IDApIHtcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXEucGFyYW1zID0gQVdTLnV0aWwuY29weShyZXEucGFyYW1zKTtcbiAgICAgICAgLy8gTmVlZCB0byBpbmNsdWRlIHRyYWlsaW5nIHNsYXNoIHRvIG1hdGNoIHNpZ3YyIGJlaGF2aW9yXG4gICAgICAgIHZhciBwcmVmaXggPSBidWNrZXQuc3Vic3RyKHNsYXNoSW5kZXggKyAxKSB8fCAnJztcbiAgICAgICAgcmVxLnBhcmFtcy5LZXkgPSBwcmVmaXggKyAnLycgKyBrZXk7XG4gICAgICAgIHJlcS5wYXJhbXMuQnVja2V0ID0gYnVja2V0LnN1YnN0cigwLCBzbGFzaEluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBtc2cgPSAnQnVja2V0IG5hbWVzIGNhbm5vdCBjb250YWluIGZvcndhcmQgc2xhc2hlcy4gQnVja2V0OiAnICsgYnVja2V0O1xuICAgICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSxcbiAgICAgICAgICB7IGNvZGU6ICdJbnZhbGlkQnVja2V0JywgbWVzc2FnZTogbXNnIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBpc1ZhbGlkQWNjZWxlcmF0ZU9wZXJhdGlvbjogZnVuY3Rpb24gaXNWYWxpZEFjY2VsZXJhdGVPcGVyYXRpb24ob3BlcmF0aW9uKSB7XG4gICAgdmFyIGludmFsaWRPcGVyYXRpb25zID0gW1xuICAgICAgJ2NyZWF0ZUJ1Y2tldCcsXG4gICAgICAnZGVsZXRlQnVja2V0JyxcbiAgICAgICdsaXN0QnVja2V0cydcbiAgICBdO1xuICAgIHJldHVybiBpbnZhbGlkT3BlcmF0aW9ucy5pbmRleE9mKG9wZXJhdGlvbikgPT09IC0xO1xuICB9LFxuXG5cbiAgLyoqXG4gICAqIFMzIHByZWZlcnMgZG5zLWNvbXBhdGlibGUgYnVja2V0IG5hbWVzIHRvIGJlIG1vdmVkIGZyb20gdGhlIHVyaSBwYXRoXG4gICAqIHRvIHRoZSBob3N0bmFtZSBhcyBhIHN1Yi1kb21haW4uICBUaGlzIGlzIG5vdCBwb3NzaWJsZSwgZXZlbiBmb3IgZG5zLWNvbXBhdFxuICAgKiBidWNrZXRzIHdoZW4gdXNpbmcgU1NMIGFuZCB0aGUgYnVja2V0IG5hbWUgY29udGFpbnMgYSBkb3QgKCcuJykuICBUaGVcbiAgICogc3NsIHdpbGRjYXJkIGNlcnRpZmljYXRlIGlzIG9ubHkgMS1sZXZlbCBkZWVwLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHBvcHVsYXRlVVJJOiBmdW5jdGlvbiBwb3B1bGF0ZVVSSShyZXEpIHtcbiAgICB2YXIgaHR0cFJlcXVlc3QgPSByZXEuaHR0cFJlcXVlc3Q7XG4gICAgdmFyIGIgPSByZXEucGFyYW1zLkJ1Y2tldDtcbiAgICB2YXIgc2VydmljZSA9IHJlcS5zZXJ2aWNlO1xuICAgIHZhciBlbmRwb2ludCA9IGh0dHBSZXF1ZXN0LmVuZHBvaW50O1xuICAgIGlmIChiKSB7XG4gICAgICBpZiAoIXNlcnZpY2UucGF0aFN0eWxlQnVja2V0TmFtZShiKSkge1xuICAgICAgICBpZiAoc2VydmljZS5jb25maWcudXNlQWNjZWxlcmF0ZUVuZHBvaW50ICYmIHNlcnZpY2UuaXNWYWxpZEFjY2VsZXJhdGVPcGVyYXRpb24ocmVxLm9wZXJhdGlvbikpIHtcbiAgICAgICAgICBpZiAoc2VydmljZS5jb25maWcudXNlRHVhbHN0YWNrKSB7XG4gICAgICAgICAgICBlbmRwb2ludC5ob3N0bmFtZSA9IGIgKyAnLnMzLWFjY2VsZXJhdGUuZHVhbHN0YWNrLmFtYXpvbmF3cy5jb20nO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbmRwb2ludC5ob3N0bmFtZSA9IGIgKyAnLnMzLWFjY2VsZXJhdGUuYW1hem9uYXdzLmNvbSc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFzZXJ2aWNlLmNvbmZpZy5zM0J1Y2tldEVuZHBvaW50KSB7XG4gICAgICAgICAgZW5kcG9pbnQuaG9zdG5hbWUgPVxuICAgICAgICAgICAgYiArICcuJyArIGVuZHBvaW50Lmhvc3RuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHBvcnQgPSBlbmRwb2ludC5wb3J0O1xuICAgICAgICBpZiAocG9ydCAhPT0gODAgJiYgcG9ydCAhPT0gNDQzKSB7XG4gICAgICAgICAgZW5kcG9pbnQuaG9zdCA9IGVuZHBvaW50Lmhvc3RuYW1lICsgJzonICtcbiAgICAgICAgICAgIGVuZHBvaW50LnBvcnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW5kcG9pbnQuaG9zdCA9IGVuZHBvaW50Lmhvc3RuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgaHR0cFJlcXVlc3QudmlydHVhbEhvc3RlZEJ1Y2tldCA9IGI7IC8vIG5lZWRlZCBmb3Igc2lnbmluZyB0aGUgcmVxdWVzdFxuICAgICAgICBzZXJ2aWNlLnJlbW92ZVZpcnR1YWxIb3N0ZWRCdWNrZXRGcm9tUGF0aChyZXEpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogVGFrZXMgdGhlIGJ1Y2tldCBuYW1lIG91dCBvZiB0aGUgcGF0aCBpZiBidWNrZXQgaXMgdmlydHVhbC1ob3N0ZWRcbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICByZW1vdmVWaXJ0dWFsSG9zdGVkQnVja2V0RnJvbVBhdGg6IGZ1bmN0aW9uIHJlbW92ZVZpcnR1YWxIb3N0ZWRCdWNrZXRGcm9tUGF0aChyZXEpIHtcbiAgICB2YXIgaHR0cFJlcXVlc3QgPSByZXEuaHR0cFJlcXVlc3Q7XG4gICAgdmFyIGJ1Y2tldCA9IGh0dHBSZXF1ZXN0LnZpcnR1YWxIb3N0ZWRCdWNrZXQ7XG4gICAgaWYgKGJ1Y2tldCAmJiBodHRwUmVxdWVzdC5wYXRoKSB7XG4gICAgICBodHRwUmVxdWVzdC5wYXRoID0gaHR0cFJlcXVlc3QucGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoJy8nICsgYnVja2V0KSwgJycpO1xuICAgICAgaWYgKGh0dHBSZXF1ZXN0LnBhdGhbMF0gIT09ICcvJykge1xuICAgICAgICBodHRwUmVxdWVzdC5wYXRoID0gJy8nICsgaHR0cFJlcXVlc3QucGF0aDtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFkZHMgRXhwZWN0OiAxMDAtY29udGludWUgaGVhZGVyIGlmIHBheWxvYWQgaXMgZ3JlYXRlci1vci1lcXVhbCAxTUJcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhZGRFeHBlY3QxMDBDb250aW51ZTogZnVuY3Rpb24gYWRkRXhwZWN0MTAwQ29udGludWUocmVxKSB7XG4gICAgdmFyIGxlbiA9IHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LUxlbmd0aCddO1xuICAgIGlmIChBV1MudXRpbC5pc05vZGUoKSAmJiBsZW4gPj0gMTAyNCAqIDEwMjQpIHtcbiAgICAgIHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydFeHBlY3QnXSA9ICcxMDAtY29udGludWUnO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQWRkcyBhIGRlZmF1bHQgY29udGVudCB0eXBlIGlmIG5vbmUgaXMgc3VwcGxpZWQuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYWRkQ29udGVudFR5cGU6IGZ1bmN0aW9uIGFkZENvbnRlbnRUeXBlKHJlcSkge1xuICAgIHZhciBodHRwUmVxdWVzdCA9IHJlcS5odHRwUmVxdWVzdDtcbiAgICBpZiAoaHR0cFJlcXVlc3QubWV0aG9kID09PSAnR0VUJyB8fCBodHRwUmVxdWVzdC5tZXRob2QgPT09ICdIRUFEJykge1xuICAgICAgLy8gQ29udGVudC1UeXBlIGlzIG5vdCBzZXQgaW4gR0VUL0hFQUQgcmVxdWVzdHNcbiAgICAgIGRlbGV0ZSBodHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LVR5cGUnXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddKSB7IC8vIGFsd2F5cyBoYXZlIGEgQ29udGVudC1UeXBlXG4gICAgICBodHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nO1xuICAgIH1cblxuICAgIHZhciBjb250ZW50VHlwZSA9IGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIGlmIChBV1MudXRpbC5pc0Jyb3dzZXIoKSkge1xuICAgICAgaWYgKHR5cGVvZiBodHRwUmVxdWVzdC5ib2R5ID09PSAnc3RyaW5nJyAmJiAhY29udGVudFR5cGUubWF0Y2goLztcXHMqY2hhcnNldD0vKSkge1xuICAgICAgICB2YXIgY2hhcnNldCA9ICc7IGNoYXJzZXQ9VVRGLTgnO1xuICAgICAgICBodHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LVR5cGUnXSArPSBjaGFyc2V0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHJlcGxhY2VGbiA9IGZ1bmN0aW9uKF8sIHByZWZpeCwgY2hhcnNldE5hbWUpIHtcbiAgICAgICAgICByZXR1cm4gcHJlZml4ICsgY2hhcnNldE5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBodHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9XG4gICAgICAgICAgY29udGVudFR5cGUucmVwbGFjZSgvKDtcXHMqY2hhcnNldD0pKC4rKSQvLCByZXBsYWNlRm4pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb21wdXRhYmxlQ2hlY2tzdW1PcGVyYXRpb25zOiB7XG4gICAgcHV0QnVja2V0Q29yczogdHJ1ZSxcbiAgICBwdXRCdWNrZXRMaWZlY3ljbGU6IHRydWUsXG4gICAgcHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvbjogdHJ1ZSxcbiAgICBwdXRCdWNrZXRUYWdnaW5nOiB0cnVlLFxuICAgIGRlbGV0ZU9iamVjdHM6IHRydWUsXG4gICAgcHV0QnVja2V0UmVwbGljYXRpb246IHRydWVcbiAgfSxcblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgY2hlY2tzdW1zIHNob3VsZCBiZSBjb21wdXRlZCBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIElmIHRoZSByZXF1ZXN0IHJlcXVpcmVzIGNoZWNrc3VtcyB0byBiZSBjb21wdXRlZCwgdGhpcyB3aWxsIGFsd2F5c1xuICAgKiByZXR1cm4gdHJ1ZSwgb3RoZXJ3aXNlIGl0IGRlcGVuZHMgb24gd2hldGhlciB7QVdTLkNvbmZpZy5jb21wdXRlQ2hlY2tzdW1zfVxuICAgKiBpcyBzZXQuXG4gICAqXG4gICAqIEBwYXJhbSByZXEgW0FXUy5SZXF1ZXN0XSB0aGUgcmVxdWVzdCB0byBjaGVjayBhZ2FpbnN0XG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdG8gY29tcHV0ZSBjaGVja3N1bXMgZm9yIGEgcmVxdWVzdC5cbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB3aWxsQ29tcHV0ZUNoZWNrc3VtczogZnVuY3Rpb24gd2lsbENvbXB1dGVDaGVja3N1bXMocmVxKSB7XG4gICAgaWYgKHRoaXMuY29tcHV0YWJsZUNoZWNrc3VtT3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5jb21wdXRlQ2hlY2tzdW1zKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBUT0RPOiBjb21wdXRlIGNoZWNrc3VtcyBmb3IgU3RyZWFtIG9iamVjdHNcbiAgICBpZiAoIUFXUy51dGlsLkJ1ZmZlci5pc0J1ZmZlcihyZXEuaHR0cFJlcXVlc3QuYm9keSkgJiZcbiAgICAgICAgdHlwZW9mIHJlcS5odHRwUmVxdWVzdC5ib2R5ICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHZhciBydWxlcyA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dLmlucHV0Lm1lbWJlcnM7XG5cbiAgICAvLyBTaGEyNTYgc2lnbmluZyBkaXNhYmxlZCwgYW5kIG5vdCBhIHByZXNpZ25lZCB1cmxcbiAgICBpZiAocmVxLnNlcnZpY2Uuc2hvdWxkRGlzYWJsZUJvZHlTaWduaW5nKHJlcSkgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXEuaHR0cFJlcXVlc3QuaGVhZGVycywgJ3ByZXNpZ25lZC1leHBpcmVzJykpIHtcbiAgICAgIGlmIChydWxlcy5Db250ZW50TUQ1ICYmICFyZXEucGFyYW1zLkNvbnRlbnRNRDUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVjQgc2lnbmVyIHVzZXMgU0hBMjU2IHNpZ25hdHVyZXMgc28gb25seSBjb21wdXRlIE1ENSBpZiBpdCBpcyByZXF1aXJlZFxuICAgIGlmIChyZXEuc2VydmljZS5nZXRTaWduZXJDbGFzcyhyZXEpID09PSBBV1MuU2lnbmVycy5WNCkge1xuICAgICAgaWYgKHJ1bGVzLkNvbnRlbnRNRDUgJiYgIXJ1bGVzLkNvbnRlbnRNRDUucmVxdWlyZWQpIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAocnVsZXMuQ29udGVudE1ENSAmJiAhcmVxLnBhcmFtcy5Db250ZW50TUQ1KSByZXR1cm4gdHJ1ZTtcbiAgfSxcblxuICAvKipcbiAgICogQSBsaXN0ZW5lciB0aGF0IGNvbXB1dGVzIHRoZSBDb250ZW50LU1ENSBhbmQgc2V0cyBpdCBpbiB0aGUgaGVhZGVyLlxuICAgKiBAc2VlIEFXUy5TMy53aWxsQ29tcHV0ZUNoZWNrc3Vtc1xuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNvbXB1dGVDb250ZW50TWQ1OiBmdW5jdGlvbiBjb21wdXRlQ29udGVudE1kNShyZXEpIHtcbiAgICBpZiAocmVxLnNlcnZpY2Uud2lsbENvbXB1dGVDaGVja3N1bXMocmVxKSkge1xuICAgICAgdmFyIG1kNSA9IEFXUy51dGlsLmNyeXB0by5tZDUocmVxLmh0dHBSZXF1ZXN0LmJvZHksICdiYXNlNjQnKTtcbiAgICAgIHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LU1ENSddID0gbWQ1O1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb21wdXRlU3NlQ3VzdG9tZXJLZXlNZDU6IGZ1bmN0aW9uIGNvbXB1dGVTc2VDdXN0b21lcktleU1kNShyZXEpIHtcbiAgICB2YXIga2V5cyA9IHtcbiAgICAgIFNTRUN1c3RvbWVyS2V5OiAneC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1JyxcbiAgICAgIENvcHlTb3VyY2VTU0VDdXN0b21lcktleTogJ3gtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENSdcbiAgICB9O1xuICAgIEFXUy51dGlsLmVhY2goa2V5cywgZnVuY3Rpb24oa2V5LCBoZWFkZXIpIHtcbiAgICAgIGlmIChyZXEucGFyYW1zW2tleV0pIHtcbiAgICAgICAgdmFyIHZhbHVlID0gQVdTLnV0aWwuY3J5cHRvLm1kNShyZXEucGFyYW1zW2tleV0sICdiYXNlNjQnKTtcbiAgICAgICAgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbaGVhZGVyXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGJ1Y2tldCBuYW1lIHNob3VsZCBiZSBsZWZ0IGluIHRoZSBVUkkgcGF0aCBmb3JcbiAgICogYSByZXF1ZXN0IHRvIFMzLiAgVGhpcyBmdW5jdGlvbiB0YWtlcyBpbnRvIGFjY291bnQgdGhlIGN1cnJlbnRcbiAgICogZW5kcG9pbnQgcHJvdG9jb2wgKGUuZy4gaHR0cCBvciBodHRwcykuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcGF0aFN0eWxlQnVja2V0TmFtZTogZnVuY3Rpb24gcGF0aFN0eWxlQnVja2V0TmFtZShidWNrZXROYW1lKSB7XG4gICAgLy8gdXNlciBjYW4gZm9yY2UgcGF0aCBzdHlsZSByZXF1ZXN0cyB2aWEgdGhlIGNvbmZpZ3VyYXRpb25cbiAgICBpZiAodGhpcy5jb25maWcuczNGb3JjZVBhdGhTdHlsZSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKHRoaXMuY29uZmlnLnMzQnVja2V0RW5kcG9pbnQpIHJldHVybiBmYWxzZTtcblxuICAgIGlmICh0aGlzLmRuc0NvbXBhdGlibGVCdWNrZXROYW1lKGJ1Y2tldE5hbWUpKSB7XG4gICAgICByZXR1cm4gKHRoaXMuY29uZmlnLnNzbEVuYWJsZWQgJiYgYnVja2V0TmFtZS5tYXRjaCgvXFwuLykpID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTsgLy8gbm90IGRucyBjb21wYXRpYmxlIG5hbWVzIG11c3QgYWx3YXlzIHVzZSBwYXRoIHN0eWxlXG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGJ1Y2tldCBuYW1lIGlzIEROUyBjb21wYXRpYmxlLiAgQnVja2V0cyBjcmVhdGVkXG4gICAqIG91dHNpZGUgb2YgdGhlIGNsYXNzaWMgcmVnaW9uIE1VU1QgYmUgRE5TIGNvbXBhdGlibGUuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWU6IGZ1bmN0aW9uIGRuc0NvbXBhdGlibGVCdWNrZXROYW1lKGJ1Y2tldE5hbWUpIHtcbiAgICB2YXIgYiA9IGJ1Y2tldE5hbWU7XG4gICAgdmFyIGRvbWFpbiA9IG5ldyBSZWdFeHAoL15bYS16MC05XVthLXowLTlcXC5cXC1dezEsNjF9W2EtejAtOV0kLyk7XG4gICAgdmFyIGlwQWRkcmVzcyA9IG5ldyBSZWdFeHAoLyhcXGQrXFwuKXszfVxcZCsvKTtcbiAgICB2YXIgZG90cyA9IG5ldyBSZWdFeHAoL1xcLlxcLi8pO1xuICAgIHJldHVybiAoYi5tYXRjaChkb21haW4pICYmICFiLm1hdGNoKGlwQWRkcmVzcykgJiYgIWIubWF0Y2goZG90cykpID8gdHJ1ZSA6IGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHJlc3BvbnNlIGNvbnRhaW5zIGFuIGVycm9yXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc3VjY2Vzc2Z1bFJlc3BvbnNlOiBmdW5jdGlvbiBzdWNjZXNzZnVsUmVzcG9uc2UocmVzcCkge1xuICAgIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gICAgdmFyIGh0dHBSZXNwb25zZSA9IHJlc3AuaHR0cFJlc3BvbnNlO1xuICAgIGlmIChvcGVyYXRpb25zV2l0aDIwMFN0YXR1c0NvZGVFcnJvcltyZXEub3BlcmF0aW9uXSAmJlxuICAgICAgICBodHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpLm1hdGNoKCc8RXJyb3I+JykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGh0dHBSZXNwb25zZS5zdGF0dXNDb2RlIDwgMzAwO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0aGUgZXJyb3IgY2FuIGJlIHJldHJpZWRcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICByZXRyeWFibGVFcnJvcjogZnVuY3Rpb24gcmV0cnlhYmxlRXJyb3IoZXJyb3IsIHJlcXVlc3QpIHtcbiAgICBpZiAob3BlcmF0aW9uc1dpdGgyMDBTdGF0dXNDb2RlRXJyb3JbcmVxdWVzdC5vcGVyYXRpb25dICYmXG4gICAgICAgIGVycm9yLnN0YXR1c0NvZGUgPT09IDIwMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChyZXF1ZXN0Ll9yZXF1ZXN0UmVnaW9uRm9yQnVja2V0ICYmXG4gICAgICAgIHJlcXVlc3Quc2VydmljZS5idWNrZXRSZWdpb25DYWNoZVtyZXF1ZXN0Ll9yZXF1ZXN0UmVnaW9uRm9yQnVja2V0XSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoZXJyb3IgJiYgZXJyb3IuY29kZSA9PT0gJ1JlcXVlc3RUaW1lb3V0Jykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChlcnJvciAmJlxuICAgICAgICByZWdpb25SZWRpcmVjdEVycm9yQ29kZXMuaW5kZXhPZihlcnJvci5jb2RlKSAhPSAtMSAmJlxuICAgICAgICBlcnJvci5yZWdpb24gJiYgZXJyb3IucmVnaW9uICE9IHJlcXVlc3QuaHR0cFJlcXVlc3QucmVnaW9uKSB7XG4gICAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0LnJlZ2lvbiA9IGVycm9yLnJlZ2lvbjtcbiAgICAgIGlmIChlcnJvci5zdGF0dXNDb2RlID09PSAzMDEpIHtcbiAgICAgICAgcmVxdWVzdC5zZXJ2aWNlLnVwZGF0ZVJlcUJ1Y2tldFJlZ2lvbihyZXF1ZXN0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX3N1cGVyID0gQVdTLlNlcnZpY2UucHJvdG90eXBlLnJldHJ5YWJsZUVycm9yO1xuICAgICAgcmV0dXJuIF9zdXBlci5jYWxsKHRoaXMsIGVycm9yLCByZXF1ZXN0KTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgaHR0cFJlcXVlc3Qgd2l0aCByZWdpb24uIElmIHJlZ2lvbiBpcyBub3QgcHJvdmlkZWQsIHRoZW5cbiAgICogdGhlIGh0dHBSZXF1ZXN0IHdpbGwgYmUgdXBkYXRlZCBiYXNlZCBvbiBodHRwUmVxdWVzdC5yZWdpb25cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB1cGRhdGVSZXFCdWNrZXRSZWdpb246IGZ1bmN0aW9uIHVwZGF0ZVJlcUJ1Y2tldFJlZ2lvbihyZXF1ZXN0LCByZWdpb24pIHtcbiAgICB2YXIgaHR0cFJlcXVlc3QgPSByZXF1ZXN0Lmh0dHBSZXF1ZXN0O1xuICAgIGlmICh0eXBlb2YgcmVnaW9uID09PSAnc3RyaW5nJyAmJiByZWdpb24ubGVuZ3RoKSB7XG4gICAgICBodHRwUmVxdWVzdC5yZWdpb24gPSByZWdpb247XG4gICAgfVxuICAgIGlmICghaHR0cFJlcXVlc3QuZW5kcG9pbnQuaG9zdC5tYXRjaCgvczMoPyEtYWNjZWxlcmF0ZSkuKlxcLmFtYXpvbmF3c1xcLmNvbSQvKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgc2VydmljZSA9IHJlcXVlc3Quc2VydmljZTtcbiAgICB2YXIgczNDb25maWcgPSBzZXJ2aWNlLmNvbmZpZztcbiAgICB2YXIgczNCdWNrZXRFbmRwb2ludCA9IHMzQ29uZmlnLnMzQnVja2V0RW5kcG9pbnQ7XG4gICAgaWYgKHMzQnVja2V0RW5kcG9pbnQpIHtcbiAgICAgIGRlbGV0ZSBzM0NvbmZpZy5zM0J1Y2tldEVuZHBvaW50O1xuICAgIH1cbiAgICB2YXIgbmV3Q29uZmlnID0gQVdTLnV0aWwuY29weShzM0NvbmZpZyk7XG4gICAgZGVsZXRlIG5ld0NvbmZpZy5lbmRwb2ludDtcbiAgICBuZXdDb25maWcucmVnaW9uID0gaHR0cFJlcXVlc3QucmVnaW9uO1xuXG4gICAgaHR0cFJlcXVlc3QuZW5kcG9pbnQgPSAobmV3IEFXUy5TMyhuZXdDb25maWcpKS5lbmRwb2ludDtcbiAgICBzZXJ2aWNlLnBvcHVsYXRlVVJJKHJlcXVlc3QpO1xuICAgIHMzQ29uZmlnLnMzQnVja2V0RW5kcG9pbnQgPSBzM0J1Y2tldEVuZHBvaW50O1xuICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnMuSG9zdCA9IGh0dHBSZXF1ZXN0LmVuZHBvaW50Lmhvc3Q7XG5cbiAgICBpZiAocmVxdWVzdC5fYXNtLmN1cnJlbnRTdGF0ZSA9PT0gJ3ZhbGlkYXRlJykge1xuICAgICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcignYnVpbGQnLCBzZXJ2aWNlLnBvcHVsYXRlVVJJKTtcbiAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2J1aWxkJywgc2VydmljZS5yZW1vdmVWaXJ0dWFsSG9zdGVkQnVja2V0RnJvbVBhdGgpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBzcGVjaWFsaXplZCBwYXJzZXIgZm9yIGdldEJ1Y2tldExvY2F0aW9uIC0tIGFsbCBvdGhlclxuICAgKiBvcGVyYXRpb25zIGFyZSBwYXJzZWQgYnkgdGhlIHN1cGVyIGNsYXNzLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGV4dHJhY3REYXRhOiBmdW5jdGlvbiBleHRyYWN0RGF0YShyZXNwKSB7XG4gICAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgICBpZiAocmVxLm9wZXJhdGlvbiA9PT0gJ2dldEJ1Y2tldExvY2F0aW9uJykge1xuICAgICAgdmFyIG1hdGNoID0gcmVzcC5odHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpLm1hdGNoKC8+KC4rKTxcXC9Mb2NhdGlvbi8pO1xuICAgICAgZGVsZXRlIHJlc3AuZGF0YVsnXyddO1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIHJlc3AuZGF0YS5Mb2NhdGlvbkNvbnN0cmFpbnQgPSBtYXRjaFsxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3AuZGF0YS5Mb2NhdGlvbkNvbnN0cmFpbnQgPSAnJztcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGJ1Y2tldCA9IHJlcS5wYXJhbXMuQnVja2V0IHx8IG51bGw7XG4gICAgaWYgKHJlcS5vcGVyYXRpb24gPT09ICdkZWxldGVCdWNrZXQnICYmIHR5cGVvZiBidWNrZXQgPT09ICdzdHJpbmcnICYmICFyZXNwLmVycm9yKSB7XG4gICAgICByZXEuc2VydmljZS5jbGVhckJ1Y2tldFJlZ2lvbkNhY2hlKGJ1Y2tldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBoZWFkZXJzID0gcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVycyB8fCB7fTtcbiAgICAgIHZhciByZWdpb24gPSBoZWFkZXJzWyd4LWFtei1idWNrZXQtcmVnaW9uJ10gfHwgbnVsbDtcbiAgICAgIGlmICghcmVnaW9uICYmIHJlcS5vcGVyYXRpb24gPT09ICdjcmVhdGVCdWNrZXQnICYmICFyZXNwLmVycm9yKSB7XG4gICAgICAgIHZhciBjcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uID0gcmVxLnBhcmFtcy5DcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uO1xuICAgICAgICBpZiAoIWNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICByZWdpb24gPSAndXMtZWFzdC0xJztcbiAgICAgICAgfSBlbHNlIGlmIChjcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uLkxvY2F0aW9uQ29uc3RyYWludCA9PT0gJ0VVJykge1xuICAgICAgICAgIHJlZ2lvbiA9ICdldS13ZXN0LTEnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlZ2lvbiA9IGNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24uTG9jYXRpb25Db25zdHJhaW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocmVnaW9uKSB7XG4gICAgICAgICAgaWYgKGJ1Y2tldCAmJiByZWdpb24gIT09IHJlcS5zZXJ2aWNlLmJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF0pIHtcbiAgICAgICAgICAgIHJlcS5zZXJ2aWNlLmJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF0gPSByZWdpb247XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXEuc2VydmljZS5leHRyYWN0UmVxdWVzdElkcyhyZXNwKTtcbiAgfSxcblxuICAvKipcbiAgICogRXh0cmFjdHMgYW4gZXJyb3Igb2JqZWN0IGZyb20gdGhlIGh0dHAgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZXh0cmFjdEVycm9yOiBmdW5jdGlvbiBleHRyYWN0RXJyb3IocmVzcCkge1xuICAgIHZhciBjb2RlcyA9IHtcbiAgICAgIDMwNDogJ05vdE1vZGlmaWVkJyxcbiAgICAgIDQwMzogJ0ZvcmJpZGRlbicsXG4gICAgICA0MDA6ICdCYWRSZXF1ZXN0JyxcbiAgICAgIDQwNDogJ05vdEZvdW5kJ1xuICAgIH07XG5cbiAgICB2YXIgcmVxID0gcmVzcC5yZXF1ZXN0O1xuICAgIHZhciBjb2RlID0gcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICB2YXIgYm9keSA9IHJlc3AuaHR0cFJlc3BvbnNlLmJvZHkgfHwgJyc7XG5cbiAgICB2YXIgaGVhZGVycyA9IHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnMgfHwge307XG4gICAgdmFyIHJlZ2lvbiA9IGhlYWRlcnNbJ3gtYW16LWJ1Y2tldC1yZWdpb24nXSB8fCBudWxsO1xuICAgIHZhciBidWNrZXQgPSByZXEucGFyYW1zLkJ1Y2tldCB8fCBudWxsO1xuICAgIHZhciBidWNrZXRSZWdpb25DYWNoZSA9IHJlcS5zZXJ2aWNlLmJ1Y2tldFJlZ2lvbkNhY2hlO1xuICAgIGlmIChyZWdpb24gJiYgYnVja2V0ICYmIHJlZ2lvbiAhPT0gYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSkge1xuICAgICAgYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSA9IHJlZ2lvbjtcbiAgICB9XG5cbiAgICB2YXIgY2FjaGVkUmVnaW9uO1xuICAgIGlmIChjb2Rlc1tjb2RlXSAmJiBib2R5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKGJ1Y2tldCAmJiAhcmVnaW9uKSB7XG4gICAgICAgIGNhY2hlZFJlZ2lvbiA9IGJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF0gfHwgbnVsbDtcbiAgICAgICAgaWYgKGNhY2hlZFJlZ2lvbiAhPT0gcmVxLmh0dHBSZXF1ZXN0LnJlZ2lvbikge1xuICAgICAgICAgIHJlZ2lvbiA9IGNhY2hlZFJlZ2lvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzcC5lcnJvciA9IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICAgIGNvZGU6IGNvZGVzW2NvZGVdLFxuICAgICAgICBtZXNzYWdlOiBudWxsLFxuICAgICAgICByZWdpb246IHJlZ2lvblxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBkYXRhID0gbmV3IEFXUy5YTUwuUGFyc2VyKCkucGFyc2UoYm9keS50b1N0cmluZygpKTtcblxuICAgICAgaWYgKGRhdGEuUmVnaW9uICYmICFyZWdpb24pIHtcbiAgICAgICAgcmVnaW9uID0gZGF0YS5SZWdpb247XG4gICAgICAgIGlmIChidWNrZXQgJiYgcmVnaW9uICE9PSBidWNrZXRSZWdpb25DYWNoZVtidWNrZXRdKSB7XG4gICAgICAgICAgYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSA9IHJlZ2lvbjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChidWNrZXQgJiYgIXJlZ2lvbiAmJiAhZGF0YS5SZWdpb24pIHtcbiAgICAgICAgY2FjaGVkUmVnaW9uID0gYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSB8fCBudWxsO1xuICAgICAgICBpZiAoY2FjaGVkUmVnaW9uICE9PSByZXEuaHR0cFJlcXVlc3QucmVnaW9uKSB7XG4gICAgICAgICAgcmVnaW9uID0gY2FjaGVkUmVnaW9uO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJlc3AuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgICBjb2RlOiBkYXRhLkNvZGUgfHwgY29kZSxcbiAgICAgICAgbWVzc2FnZTogZGF0YS5NZXNzYWdlIHx8IG51bGwsXG4gICAgICAgIHJlZ2lvbjogcmVnaW9uXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmVxLnNlcnZpY2UuZXh0cmFjdFJlcXVlc3RJZHMocmVzcCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIElmIHJlZ2lvbiB3YXMgbm90IG9idGFpbmVkIHN5bmNocm9ub3VzbHksIHRoZW4gc2VuZCBhc3luYyByZXF1ZXN0XG4gICAqIHRvIGdldCBidWNrZXQgcmVnaW9uIGZvciBlcnJvcnMgcmVzdWx0aW5nIGZyb20gd3JvbmcgcmVnaW9uLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJlcXVlc3RCdWNrZXRSZWdpb246IGZ1bmN0aW9uIHJlcXVlc3RCdWNrZXRSZWdpb24ocmVzcCwgZG9uZSkge1xuICAgIHZhciBlcnJvciA9IHJlc3AuZXJyb3I7XG4gICAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgICB2YXIgYnVja2V0ID0gcmVxLnBhcmFtcy5CdWNrZXQgfHwgbnVsbDtcblxuICAgIGlmICghZXJyb3IgfHwgIWJ1Y2tldCB8fCBlcnJvci5yZWdpb24gfHwgcmVxLm9wZXJhdGlvbiA9PT0gJ2xpc3RPYmplY3RzJyB8fFxuICAgICAgICAoQVdTLnV0aWwuaXNOb2RlKCkgJiYgcmVxLm9wZXJhdGlvbiA9PT0gJ2hlYWRCdWNrZXQnKSB8fFxuICAgICAgICAoZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDAwICYmIHJlcS5vcGVyYXRpb24gIT09ICdoZWFkT2JqZWN0JykgfHxcbiAgICAgICAgcmVnaW9uUmVkaXJlY3RFcnJvckNvZGVzLmluZGV4T2YoZXJyb3IuY29kZSkgPT09IC0xKSB7XG4gICAgICByZXR1cm4gZG9uZSgpO1xuICAgIH1cbiAgICB2YXIgcmVxT3BlcmF0aW9uID0gQVdTLnV0aWwuaXNOb2RlKCkgPyAnaGVhZEJ1Y2tldCcgOiAnbGlzdE9iamVjdHMnO1xuICAgIHZhciByZXFQYXJhbXMgPSB7QnVja2V0OiBidWNrZXR9O1xuICAgIGlmIChyZXFPcGVyYXRpb24gPT09ICdsaXN0T2JqZWN0cycpIHJlcVBhcmFtcy5NYXhLZXlzID0gMDtcbiAgICB2YXIgcmVnaW9uUmVxID0gcmVxLnNlcnZpY2VbcmVxT3BlcmF0aW9uXShyZXFQYXJhbXMpO1xuICAgIHJlZ2lvblJlcS5fcmVxdWVzdFJlZ2lvbkZvckJ1Y2tldCA9IGJ1Y2tldDtcbiAgICByZWdpb25SZXEuc2VuZChmdW5jdGlvbigpIHtcbiAgICAgIHZhciByZWdpb24gPSByZXEuc2VydmljZS5idWNrZXRSZWdpb25DYWNoZVtidWNrZXRdIHx8IG51bGw7XG4gICAgICBlcnJvci5yZWdpb24gPSByZWdpb247XG4gICAgICBkb25lKCk7XG4gICAgfSk7XG4gIH0sXG5cbiAgIC8qKlxuICAgKiBGb3IgYnJvd3NlciBvbmx5LiBJZiBOZXR3b3JraW5nRXJyb3IgcmVjZWl2ZWQsIHdpbGwgYXR0ZW1wdCB0byBvYnRhaW5cbiAgICogdGhlIGJ1Y2tldCByZWdpb24uXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgIHJlcVJlZ2lvbkZvck5ldHdvcmtpbmdFcnJvcjogZnVuY3Rpb24gcmVxUmVnaW9uRm9yTmV0d29ya2luZ0Vycm9yKHJlc3AsIGRvbmUpIHtcbiAgICBpZiAoIUFXUy51dGlsLmlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm4gZG9uZSgpO1xuICAgIH1cbiAgICB2YXIgZXJyb3IgPSByZXNwLmVycm9yO1xuICAgIHZhciByZXF1ZXN0ID0gcmVzcC5yZXF1ZXN0O1xuICAgIHZhciBidWNrZXQgPSByZXF1ZXN0LnBhcmFtcy5CdWNrZXQ7XG4gICAgaWYgKCFlcnJvciB8fCBlcnJvci5jb2RlICE9PSAnTmV0d29ya2luZ0Vycm9yJyB8fCAhYnVja2V0IHx8XG4gICAgICAgIHJlcXVlc3QuaHR0cFJlcXVlc3QucmVnaW9uID09PSAndXMtZWFzdC0xJykge1xuICAgICAgcmV0dXJuIGRvbmUoKTtcbiAgICB9XG4gICAgdmFyIHNlcnZpY2UgPSByZXF1ZXN0LnNlcnZpY2U7XG4gICAgdmFyIGJ1Y2tldFJlZ2lvbkNhY2hlID0gc2VydmljZS5idWNrZXRSZWdpb25DYWNoZTtcbiAgICB2YXIgY2FjaGVkUmVnaW9uID0gYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSB8fCBudWxsO1xuXG4gICAgaWYgKGNhY2hlZFJlZ2lvbiAmJiBjYWNoZWRSZWdpb24gIT09IHJlcXVlc3QuaHR0cFJlcXVlc3QucmVnaW9uKSB7XG4gICAgICBzZXJ2aWNlLnVwZGF0ZVJlcUJ1Y2tldFJlZ2lvbihyZXF1ZXN0LCBjYWNoZWRSZWdpb24pO1xuICAgICAgZG9uZSgpO1xuICAgIH0gZWxzZSBpZiAoIXNlcnZpY2UuZG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0KSkge1xuICAgICAgc2VydmljZS51cGRhdGVSZXFCdWNrZXRSZWdpb24ocmVxdWVzdCwgJ3VzLWVhc3QtMScpO1xuICAgICAgaWYgKGJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF0gIT09ICd1cy1lYXN0LTEnKSB7XG4gICAgICAgIGJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF0gPSAndXMtZWFzdC0xJztcbiAgICAgIH1cbiAgICAgIGRvbmUoKTtcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3QuaHR0cFJlcXVlc3QudmlydHVhbEhvc3RlZEJ1Y2tldCkge1xuICAgICAgdmFyIGdldFJlZ2lvblJlcSA9IHNlcnZpY2UubGlzdE9iamVjdHMoe0J1Y2tldDogYnVja2V0LCBNYXhLZXlzOiAwfSk7XG4gICAgICBzZXJ2aWNlLnVwZGF0ZVJlcUJ1Y2tldFJlZ2lvbihnZXRSZWdpb25SZXEsICd1cy1lYXN0LTEnKTtcbiAgICAgIGdldFJlZ2lvblJlcS5fcmVxdWVzdFJlZ2lvbkZvckJ1Y2tldCA9IGJ1Y2tldDtcblxuICAgICAgZ2V0UmVnaW9uUmVxLnNlbmQoZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciByZWdpb24gPSBzZXJ2aWNlLmJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF0gfHwgbnVsbDtcbiAgICAgICAgaWYgKHJlZ2lvbiAmJiByZWdpb24gIT09IHJlcXVlc3QuaHR0cFJlcXVlc3QucmVnaW9uKSB7XG4gICAgICAgICAgc2VydmljZS51cGRhdGVSZXFCdWNrZXRSZWdpb24ocmVxdWVzdCwgcmVnaW9uKTtcbiAgICAgICAgfVxuICAgICAgICBkb25lKCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRE5TLWNvbXBhdGlibGUgcGF0aC1zdHlsZVxuICAgICAgLy8gKHMzRm9yY2VQYXRoU3R5bGUgb3IgYnVja2V0IG5hbWUgd2l0aCBkb3Qgb3ZlciBodHRwcylcbiAgICAgIC8vIENhbm5vdCBvYnRhaW4gcmVnaW9uIGluZm9ybWF0aW9uIGZvciB0aGlzIGNhc2VcbiAgICAgIGRvbmUoKTtcbiAgICB9XG4gICB9LFxuXG4gIC8qKlxuICAgKiBDYWNoZSBmb3IgYnVja2V0IHJlZ2lvbi5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICAgYnVja2V0UmVnaW9uQ2FjaGU6IHt9LFxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYnVja2V0IHJlZ2lvbiBjYWNoZS5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICAgY2xlYXJCdWNrZXRSZWdpb25DYWNoZTogZnVuY3Rpb24oYnVja2V0cykge1xuICAgIHZhciBidWNrZXRSZWdpb25DYWNoZSA9IHRoaXMuYnVja2V0UmVnaW9uQ2FjaGU7XG4gICAgaWYgKCFidWNrZXRzKSB7XG4gICAgICBidWNrZXRzID0gT2JqZWN0LmtleXMoYnVja2V0UmVnaW9uQ2FjaGUpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGJ1Y2tldHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBidWNrZXRzID0gW2J1Y2tldHNdO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Y2tldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGRlbGV0ZSBidWNrZXRSZWdpb25DYWNoZVtidWNrZXRzW2ldXTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1Y2tldFJlZ2lvbkNhY2hlO1xuICAgfSxcblxuICAgLyoqXG4gICAgKiBDb3JyZWN0cyByZXF1ZXN0IHJlZ2lvbiBpZiBidWNrZXQncyBjYWNoZWQgcmVnaW9uIGlzIGRpZmZlcmVudFxuICAgICpcbiAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICovXG4gIGNvcnJlY3RCdWNrZXRSZWdpb25Gcm9tQ2FjaGU6IGZ1bmN0aW9uIGNvcnJlY3RCdWNrZXRSZWdpb25Gcm9tQ2FjaGUocmVxKSB7XG4gICAgdmFyIGJ1Y2tldCA9IHJlcS5wYXJhbXMuQnVja2V0IHx8IG51bGw7XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgdmFyIHNlcnZpY2UgPSByZXEuc2VydmljZTtcbiAgICAgIHZhciByZXF1ZXN0UmVnaW9uID0gcmVxLmh0dHBSZXF1ZXN0LnJlZ2lvbjtcbiAgICAgIHZhciBjYWNoZWRSZWdpb24gPSBzZXJ2aWNlLmJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF07XG4gICAgICBpZiAoY2FjaGVkUmVnaW9uICYmIGNhY2hlZFJlZ2lvbiAhPT0gcmVxdWVzdFJlZ2lvbikge1xuICAgICAgICBzZXJ2aWNlLnVwZGF0ZVJlcUJ1Y2tldFJlZ2lvbihyZXEsIGNhY2hlZFJlZ2lvbik7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBTMyBzcGVjaWZpYyByZXF1ZXN0IGlkcyBmcm9tIHRoZSBodHRwIHJlc3BvbnNlLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGV4dHJhY3RSZXF1ZXN0SWRzOiBmdW5jdGlvbiBleHRyYWN0UmVxdWVzdElkcyhyZXNwKSB7XG4gICAgdmFyIGV4dGVuZGVkUmVxdWVzdElkID0gcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVycyA/IHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnNbJ3gtYW16LWlkLTInXSA6IG51bGw7XG4gICAgdmFyIGNmSWQgPSByZXNwLmh0dHBSZXNwb25zZS5oZWFkZXJzID8gcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVyc1sneC1hbXotY2YtaWQnXSA6IG51bGw7XG4gICAgcmVzcC5leHRlbmRlZFJlcXVlc3RJZCA9IGV4dGVuZGVkUmVxdWVzdElkO1xuICAgIHJlc3AuY2ZJZCA9IGNmSWQ7XG5cbiAgICBpZiAocmVzcC5lcnJvcikge1xuICAgICAgcmVzcC5lcnJvci5yZXF1ZXN0SWQgPSByZXNwLnJlcXVlc3RJZCB8fCBudWxsO1xuICAgICAgcmVzcC5lcnJvci5leHRlbmRlZFJlcXVlc3RJZCA9IGV4dGVuZGVkUmVxdWVzdElkO1xuICAgICAgcmVzcC5lcnJvci5jZklkID0gY2ZJZDtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBhIHByZS1zaWduZWQgVVJMIGZvciBhIGdpdmVuIG9wZXJhdGlvbiBuYW1lLlxuICAgKlxuICAgKiBAbm90ZSBZb3UgbXVzdCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBzdGF0aWMgb3IgcHJldmlvdXNseSByZXNvbHZlZFxuICAgKiAgIGNyZWRlbnRpYWxzIGlmIHlvdSBjYWxsIHRoaXMgbWV0aG9kIHN5bmNocm9ub3VzbHkgKHdpdGggbm8gY2FsbGJhY2spLFxuICAgKiAgIG90aGVyd2lzZSBpdCBtYXkgbm90IHByb3Blcmx5IHNpZ24gdGhlIHJlcXVlc3QuIElmIHlvdSBjYW5ub3QgZ3VhcmFudGVlXG4gICAqICAgdGhpcyAoeW91IGFyZSB1c2luZyBhbiBhc3luY2hyb25vdXMgY3JlZGVudGlhbCBwcm92aWRlciwgaS5lLiwgRUMyXG4gICAqICAgSUFNIHJvbGVzKSwgeW91IHNob3VsZCBhbHdheXMgY2FsbCB0aGlzIG1ldGhvZCB3aXRoIGFuIGFzeW5jaHJvbm91c1xuICAgKiAgIGNhbGxiYWNrLlxuICAgKiBAbm90ZSBOb3QgYWxsIG9wZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSBzdXBwb3J0ZWQgd2hlbiB1c2luZyBwcmUtc2lnbmVkXG4gICAqICAgVVJMcy4gQ2VydGFpbiBwYXJhbWV0ZXJzLCBzdWNoIGFzIGBTU0VDdXN0b21lcktleWAsIGBBQ0xgLCBgRXhwaXJlc2AsXG4gICAqICAgYENvbnRlbnRMZW5ndGhgLCBvciBgVGFnZ2luZ2AgbXVzdCBiZSBwcm92aWRlZCBhcyBoZWFkZXJzIHdoZW4gc2VuZGluZyBhXG4gICAqICAgcmVxdWVzdC4gSWYgeW91IGFyZSB1c2luZyBwcmUtc2lnbmVkIFVSTHMgdG8gdXBsb2FkIGZyb20gYSBicm93c2VyIGFuZFxuICAgKiAgIG5lZWQgdG8gdXNlIHRoZXNlIGZpZWxkcywgc2VlIHtjcmVhdGVQcmVzaWduZWRQb3N0fS5cbiAgICogQHBhcmFtIG9wZXJhdGlvbiBbU3RyaW5nXSB0aGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uIHRvIGNhbGxcbiAgICogQHBhcmFtIHBhcmFtcyBbbWFwXSBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIG9wZXJhdGlvbi4gU2VlIHRoZSBnaXZlblxuICAgKiAgIG9wZXJhdGlvbiBmb3IgdGhlIGV4cGVjdGVkIG9wZXJhdGlvbiBwYXJhbWV0ZXJzLiBJbiBhZGRpdGlvbiwgeW91IGNhblxuICAgKiAgIGFsc28gcGFzcyB0aGUgXCJFeHBpcmVzXCIgcGFyYW1ldGVyIHRvIGluZm9ybSBTMyBob3cgbG9uZyB0aGUgVVJMIHNob3VsZFxuICAgKiAgIHdvcmsgZm9yLlxuICAgKiBAb3B0aW9uIHBhcmFtcyBFeHBpcmVzIFtJbnRlZ2VyXSAoOTAwKSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gZXhwaXJlXG4gICAqICAgdGhlIHByZS1zaWduZWQgVVJMIG9wZXJhdGlvbiBpbi4gRGVmYXVsdHMgdG8gMTUgbWludXRlcy5cbiAgICogQHBhcmFtIGNhbGxiYWNrIFtGdW5jdGlvbl0gaWYgYSBjYWxsYmFjayBpcyBwcm92aWRlZCwgdGhpcyBmdW5jdGlvbiB3aWxsXG4gICAqICAgcGFzcyB0aGUgVVJMIGFzIHRoZSBzZWNvbmQgcGFyYW1ldGVyIChhZnRlciB0aGUgZXJyb3IgcGFyYW1ldGVyKSB0b1xuICAgKiAgIHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAgICogQHJldHVybiBbU3RyaW5nXSBpZiBjYWxsZWQgc3luY2hyb25vdXNseSAod2l0aCBubyBjYWxsYmFjayksIHJldHVybnMgdGhlXG4gICAqICAgc2lnbmVkIFVSTC5cbiAgICogQHJldHVybiBbbnVsbF0gbm90aGluZyBpcyByZXR1cm5lZCBpZiBhIGNhbGxiYWNrIGlzIHByb3ZpZGVkLlxuICAgKiBAZXhhbXBsZSBQcmUtc2lnbmluZyBhIGdldE9iamVjdCBvcGVyYXRpb24gKHN5bmNocm9ub3VzbHkpXG4gICAqICAgdmFyIHBhcmFtcyA9IHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknfTtcbiAgICogICB2YXIgdXJsID0gczMuZ2V0U2lnbmVkVXJsKCdnZXRPYmplY3QnLCBwYXJhbXMpO1xuICAgKiAgIGNvbnNvbGUubG9nKCdUaGUgVVJMIGlzJywgdXJsKTtcbiAgICogQGV4YW1wbGUgUHJlLXNpZ25pbmcgYSBwdXRPYmplY3QgKGFzeW5jaHJvbm91c2x5KVxuICAgKiAgIHZhciBwYXJhbXMgPSB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5J307XG4gICAqICAgczMuZ2V0U2lnbmVkVXJsKCdwdXRPYmplY3QnLCBwYXJhbXMsIGZ1bmN0aW9uIChlcnIsIHVybCkge1xuICAgKiAgICAgY29uc29sZS5sb2coJ1RoZSBVUkwgaXMnLCB1cmwpO1xuICAgKiAgIH0pO1xuICAgKiBAZXhhbXBsZSBQcmUtc2lnbmluZyBhIHB1dE9iamVjdCBvcGVyYXRpb24gd2l0aCBhIHNwZWNpZmljIHBheWxvYWRcbiAgICogICB2YXIgcGFyYW1zID0ge0J1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleScsIEJvZHk6ICdib2R5J307XG4gICAqICAgdmFyIHVybCA9IHMzLmdldFNpZ25lZFVybCgncHV0T2JqZWN0JywgcGFyYW1zKTtcbiAgICogICBjb25zb2xlLmxvZygnVGhlIFVSTCBpcycsIHVybCk7XG4gICAqIEBleGFtcGxlIFBhc3NpbmcgaW4gYSAxLW1pbnV0ZSBleHBpcnkgdGltZSBmb3IgYSBwcmUtc2lnbmVkIFVSTFxuICAgKiAgIHZhciBwYXJhbXMgPSB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgRXhwaXJlczogNjB9O1xuICAgKiAgIHZhciB1cmwgPSBzMy5nZXRTaWduZWRVcmwoJ2dldE9iamVjdCcsIHBhcmFtcyk7XG4gICAqICAgY29uc29sZS5sb2coJ1RoZSBVUkwgaXMnLCB1cmwpOyAvLyBleHBpcmVzIGluIDYwIHNlY29uZHNcbiAgICovXG4gIGdldFNpZ25lZFVybDogZnVuY3Rpb24gZ2V0U2lnbmVkVXJsKG9wZXJhdGlvbiwgcGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHBhcmFtcyA9IEFXUy51dGlsLmNvcHkocGFyYW1zIHx8IHt9KTtcbiAgICB2YXIgZXhwaXJlcyA9IHBhcmFtcy5FeHBpcmVzIHx8IDkwMDtcbiAgICBkZWxldGUgcGFyYW1zLkV4cGlyZXM7IC8vIHdlIGNhbid0IHZhbGlkYXRlIHRoaXNcbiAgICB2YXIgcmVxdWVzdCA9IHRoaXMubWFrZVJlcXVlc3Qob3BlcmF0aW9uLCBwYXJhbXMpO1xuXG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBBV1MudXRpbC5kZWZlcihmdW5jdGlvbigpIHtcbiAgICAgICAgcmVxdWVzdC5wcmVzaWduKGV4cGlyZXMsIGNhbGxiYWNrKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcmVxdWVzdC5wcmVzaWduKGV4cGlyZXMsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0sXG5cblxuICAvKipcbiAgICogR2V0IGEgcHJlLXNpZ25lZCBQT1NUIHBvbGljeSB0byBzdXBwb3J0IHVwbG9hZGluZyB0byBTMyBkaXJlY3RseSBmcm9tIGFuXG4gICAqIEhUTUwgZm9ybS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyBbbWFwXVxuICAgKiBAb3B0aW9uIHBhcmFtcyBCdWNrZXQgW1N0cmluZ10gICAgIFRoZSBidWNrZXQgdG8gd2hpY2ggdGhlIHBvc3Qgc2hvdWxkIGJlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkZWRcbiAgICogQG9wdGlvbiBwYXJhbXMgRXhwaXJlcyBbSW50ZWdlcl0gICAoMzYwMCkgVGhlIG51bWJlciBvZiBzZWNvbmRzIGZvciB3aGljaFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBwcmVzaWduZWQgcG9saWN5IHNob3VsZCBiZSB2YWxpZC5cbiAgICogQG9wdGlvbiBwYXJhbXMgQ29uZGl0aW9ucyBbQXJyYXldICBBbiBhcnJheSBvZiBjb25kaXRpb25zIHRoYXQgbXVzdCBiZSBtZXRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIHByZXNpZ25lZCBwb2xpY3kgdG8gYWxsb3cgdGhlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkLiBUaGlzIGNhbiBpbmNsdWRlIHJlcXVpcmVkIHRhZ3MsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFjY2VwdGVkIHJhbmdlIGZvciBjb250ZW50IGxlbmd0aHMsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRjLlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9BUEkvc2lndjQtSFRUUFBPU1RDb25zdHJ1Y3RQb2xpY3kuaHRtbFxuICAgKiBAb3B0aW9uIHBhcmFtcyBGaWVsZHMgW21hcF0gICAgICAgIEZpZWxkcyB0byBpbmNsdWRlIGluIHRoZSBmb3JtLiBBbGxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgcGFzc2VkIGluIGFzIGZpZWxkcyB3aWxsIGJlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGFzIGV4YWN0IG1hdGNoIGNvbmRpdGlvbnMuXG4gICAqIEBwYXJhbSBjYWxsYmFjayBbRnVuY3Rpb25dXG4gICAqXG4gICAqIEBub3RlIEFsbCBmaWVsZHMgcGFzc2VkIGluIHdoZW4gY3JlYXRpbmcgcHJlc2lnbmVkIHBvc3QgZGF0YSB3aWxsIGJlIHNpZ25lZFxuICAgKiAgIGFzIGV4YWN0IG1hdGNoIGNvbmRpdGlvbnMuIEFueSBmaWVsZHMgdGhhdCB3aWxsIGJlIGludGVycG9sYXRlZCBieSBTM1xuICAgKiAgIG11c3QgYmUgYWRkZWQgdG8gdGhlIGZpZWxkcyBoYXNoIGFmdGVyIHNpZ25pbmcsIGFuZCBhbiBhcHByb3ByaWF0ZVxuICAgKiAgIGNvbmRpdGlvbiBmb3Igc3VjaCBmaWVsZHMgbXVzdCBiZSBleHBsaWNpdGx5IGFkZGVkIHRvIHRoZSBDb25kaXRpb25zXG4gICAqICAgYXJyYXkgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24gYmVmb3JlIHNpZ25pbmcuXG4gICAqXG4gICAqIEBleGFtcGxlIFByZXNpZ2luZyBwb3N0IGRhdGEgd2l0aCBhIGtub3duIGtleVxuICAgKiAgIHZhciBwYXJhbXMgPSB7XG4gICAqICAgICBCdWNrZXQ6ICdidWNrZXQnLFxuICAgKiAgICAgRmllbGRzOiB7XG4gICAqICAgICAgIGtleTogJ2tleSdcbiAgICogICAgIH1cbiAgICogICB9O1xuICAgKiAgIHMzLmNyZWF0ZVByZXNpZ25lZFBvc3QocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgIGlmIChlcnIpIHtcbiAgICogICAgICAgY29uc29sZS5lcnJvcignUHJlc2lnbmluZyBwb3N0IGRhdGEgZW5jb3VudGVyZWQgYW4gZXJyb3InLCBlcnIpO1xuICAgKiAgICAgfSBlbHNlIHtcbiAgICogICAgICAgY29uc29sZS5sb2coJ1RoZSBwb3N0IGRhdGEgaXMnLCBkYXRhKTtcbiAgICogICAgIH1cbiAgICogICB9KTtcbiAgICpcbiAgICogQGV4YW1wbGUgUHJlc2lnbmluZyBwb3N0IGRhdGEgd2l0aCBhbiBpbnRlcnBvbGF0ZWQga2V5XG4gICAqICAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgIEJ1Y2tldDogJ2J1Y2tldCcsXG4gICAqICAgICBDb25kaXRpb25zOiBbXG4gICAqICAgICAgIFsnc3RhcnRzLXdpdGgnLCAnJGtleScsICdwYXRoL3RvL3VwbG9hZHMvJ11cbiAgICogICAgIF1cbiAgICogICB9O1xuICAgKiAgIHMzLmNyZWF0ZVByZXNpZ25lZFBvc3QocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgIGlmIChlcnIpIHtcbiAgICogICAgICAgY29uc29sZS5lcnJvcignUHJlc2lnbmluZyBwb3N0IGRhdGEgZW5jb3VudGVyZWQgYW4gZXJyb3InLCBlcnIpO1xuICAgKiAgICAgfSBlbHNlIHtcbiAgICogICAgICAgZGF0YS5GaWVsZHMua2V5ID0gJ3BhdGgvdG8vdXBsb2Fkcy8ke2ZpbGVuYW1lfSc7XG4gICAqICAgICAgIGNvbnNvbGUubG9nKCdUaGUgcG9zdCBkYXRhIGlzJywgZGF0YSk7XG4gICAqICAgICB9XG4gICAqICAgfSk7XG4gICAqXG4gICAqIEBub3RlIFlvdSBtdXN0IGVuc3VyZSB0aGF0IHlvdSBoYXZlIHN0YXRpYyBvciBwcmV2aW91c2x5IHJlc29sdmVkXG4gICAqICAgY3JlZGVudGlhbHMgaWYgeW91IGNhbGwgdGhpcyBtZXRob2Qgc3luY2hyb25vdXNseSAod2l0aCBubyBjYWxsYmFjayksXG4gICAqICAgb3RoZXJ3aXNlIGl0IG1heSBub3QgcHJvcGVybHkgc2lnbiB0aGUgcmVxdWVzdC4gSWYgeW91IGNhbm5vdCBndWFyYW50ZWVcbiAgICogICB0aGlzICh5b3UgYXJlIHVzaW5nIGFuIGFzeW5jaHJvbm91cyBjcmVkZW50aWFsIHByb3ZpZGVyLCBpLmUuLCBFQzJcbiAgICogICBJQU0gcm9sZXMpLCB5b3Ugc2hvdWxkIGFsd2F5cyBjYWxsIHRoaXMgbWV0aG9kIHdpdGggYW4gYXN5bmNocm9ub3VzXG4gICAqICAgY2FsbGJhY2suXG4gICAqXG4gICAqIEByZXR1cm4gW21hcF0gIElmIGNhbGxlZCBzeW5jaHJvbm91c2x5ICh3aXRoIG5vIGNhbGxiYWNrKSwgcmV0dXJucyBhIGhhc2hcbiAgICogICAgICAgICAgICAgICAgd2l0aCB0aGUgdXJsIHRvIHNldCBhcyB0aGUgZm9ybSBhY3Rpb24gYW5kIGEgaGFzaCBvZiBmaWVsZHNcbiAgICogICAgICAgICAgICAgICAgdG8gaW5jbHVkZSBpbiB0aGUgZm9ybS5cbiAgICogQHJldHVybiBbbnVsbF0gTm90aGluZyBpcyByZXR1cm5lZCBpZiBhIGNhbGxiYWNrIGlzIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24gKGVyciwgZGF0YSlcbiAgICogIEBwYXJhbSBlcnIgW0Vycm9yXSB0aGUgZXJyb3Igb2JqZWN0IHJldHVybmVkIGZyb20gdGhlIHBvbGljeSBzaWduZXJcbiAgICogIEBwYXJhbSBkYXRhIFttYXBdIFRoZSBkYXRhIG5lY2Vzc2FyeSB0byBjb25zdHJ1Y3QgYW4gSFRNTCBmb3JtXG4gICAqICBAcGFyYW0gZGF0YS51cmwgW1N0cmluZ10gVGhlIFVSTCB0byB1c2UgYXMgdGhlIGFjdGlvbiBvZiB0aGUgZm9ybVxuICAgKiAgQHBhcmFtIGRhdGEuZmllbGRzIFttYXBdIEEgaGFzaCBvZiBmaWVsZHMgdGhhdCBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0gZm9yIHRoZSB1cGxvYWQgdG8gc3VjY2VlZC4gVGhpcyBoYXNoIHdpbGxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIHRoZSBzaWduZWQgUE9TVCBwb2xpY3ksIHlvdXIgYWNjZXNzIGtleVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIElEIGFuZCBzZWN1cml0eSB0b2tlbiAoaWYgcHJlc2VudCksIGV0Yy4gVGhlc2VcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBtYXkgYmUgc2FmZWx5IGluY2x1ZGVkIGFzIGlucHV0IGVsZW1lbnRzIG9mIHR5cGVcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAnaGlkZGVuLidcbiAgICovXG4gIGNyZWF0ZVByZXNpZ25lZFBvc3Q6IGZ1bmN0aW9uIGNyZWF0ZVByZXNpZ25lZFBvc3QocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgcGFyYW1zID09PSAnZnVuY3Rpb24nICYmIGNhbGxiYWNrID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNhbGxiYWNrID0gcGFyYW1zO1xuICAgICAgcGFyYW1zID0gbnVsbDtcbiAgICB9XG5cbiAgICBwYXJhbXMgPSBBV1MudXRpbC5jb3B5KHBhcmFtcyB8fCB7fSk7XG4gICAgdmFyIGJvdW5kUGFyYW1zID0gdGhpcy5jb25maWcucGFyYW1zIHx8IHt9O1xuICAgIHZhciBidWNrZXQgPSBwYXJhbXMuQnVja2V0IHx8IGJvdW5kUGFyYW1zLkJ1Y2tldCxcbiAgICAgIHNlbGYgPSB0aGlzLFxuICAgICAgY29uZmlnID0gdGhpcy5jb25maWcsXG4gICAgICBlbmRwb2ludCA9IEFXUy51dGlsLmNvcHkodGhpcy5lbmRwb2ludCk7XG4gICAgaWYgKCFjb25maWcuczNCdWNrZXRFbmRwb2ludCkge1xuICAgICAgZW5kcG9pbnQucGF0aG5hbWUgPSAnLycgKyBidWNrZXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmluYWxpemVQb3N0KCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBBV1MudXRpbC51cmxGb3JtYXQoZW5kcG9pbnQpLFxuICAgICAgICBmaWVsZHM6IHNlbGYucHJlcGFyZVBvc3RGaWVsZHMoXG4gICAgICAgICAgY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgIGNvbmZpZy5yZWdpb24sXG4gICAgICAgICAgYnVja2V0LFxuICAgICAgICAgIHBhcmFtcy5GaWVsZHMsXG4gICAgICAgICAgcGFyYW1zLkNvbmRpdGlvbnMsXG4gICAgICAgICAgcGFyYW1zLkV4cGlyZXNcbiAgICAgICAgKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNvbmZpZy5nZXRDcmVkZW50aWFscyhmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2sobnVsbCwgZmluYWxpemVQb3N0KCkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmaW5hbGl6ZVBvc3QoKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcHJlcGFyZVBvc3RGaWVsZHM6IGZ1bmN0aW9uIHByZXBhcmVQb3N0RmllbGRzKFxuICAgIGNyZWRlbnRpYWxzLFxuICAgIHJlZ2lvbixcbiAgICBidWNrZXQsXG4gICAgZmllbGRzLFxuICAgIGNvbmRpdGlvbnMsXG4gICAgZXhwaXJlc0luU2Vjb25kc1xuICApIHtcbiAgICB2YXIgbm93ID0gdGhpcy5nZXRTa2V3Q29ycmVjdGVkRGF0ZSgpO1xuICAgIGlmICghY3JlZGVudGlhbHMgfHwgIXJlZ2lvbiB8fCAhYnVja2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgYSBQT1NUIG9iamVjdCBwb2xpY3kgd2l0aG91dCBhIGJ1Y2tldCwnXG4gICAgICAgICsgJyByZWdpb24sIGFuZCBjcmVkZW50aWFscycpO1xuICAgIH1cbiAgICBmaWVsZHMgPSBBV1MudXRpbC5jb3B5KGZpZWxkcyB8fCB7fSk7XG4gICAgY29uZGl0aW9ucyA9IChjb25kaXRpb25zIHx8IFtdKS5zbGljZSgwKTtcbiAgICBleHBpcmVzSW5TZWNvbmRzID0gZXhwaXJlc0luU2Vjb25kcyB8fCAzNjAwO1xuXG4gICAgdmFyIHNpZ25pbmdEYXRlID0gQVdTLnV0aWwuZGF0ZS5pc284NjAxKG5vdykucmVwbGFjZSgvWzpcXC1dfFxcLlxcZHszfS9nLCAnJyk7XG4gICAgdmFyIHNob3J0RGF0ZSA9IHNpZ25pbmdEYXRlLnN1YnN0cigwLCA4KTtcbiAgICB2YXIgc2NvcGUgPSB2NENyZWRlbnRpYWxzLmNyZWF0ZVNjb3BlKHNob3J0RGF0ZSwgcmVnaW9uLCAnczMnKTtcbiAgICB2YXIgY3JlZGVudGlhbCA9IGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkICsgJy8nICsgc2NvcGU7XG5cbiAgICBmaWVsZHNbJ2J1Y2tldCddID0gYnVja2V0O1xuICAgIGZpZWxkc1snWC1BbXotQWxnb3JpdGhtJ10gPSAnQVdTNC1ITUFDLVNIQTI1Nic7XG4gICAgZmllbGRzWydYLUFtei1DcmVkZW50aWFsJ10gPSBjcmVkZW50aWFsO1xuICAgIGZpZWxkc1snWC1BbXotRGF0ZSddID0gc2lnbmluZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgZmllbGRzWydYLUFtei1TZWN1cml0eS1Ub2tlbiddID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICBmb3IgKHZhciBmaWVsZCBpbiBmaWVsZHMpIHtcbiAgICAgIGlmIChmaWVsZHMuaGFzT3duUHJvcGVydHkoZmllbGQpKSB7XG4gICAgICAgIHZhciBjb25kaXRpb24gPSB7fTtcbiAgICAgICAgY29uZGl0aW9uW2ZpZWxkXSA9IGZpZWxkc1tmaWVsZF07XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChjb25kaXRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZpZWxkcy5Qb2xpY3kgPSB0aGlzLnByZXBhcmVQb3N0UG9saWN5KFxuICAgICAgbmV3IERhdGUobm93LnZhbHVlT2YoKSArIGV4cGlyZXNJblNlY29uZHMgKiAxMDAwKSxcbiAgICAgIGNvbmRpdGlvbnNcbiAgICApO1xuICAgIGZpZWxkc1snWC1BbXotU2lnbmF0dXJlJ10gPSBBV1MudXRpbC5jcnlwdG8uaG1hYyhcbiAgICAgIHY0Q3JlZGVudGlhbHMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgc2hvcnREYXRlLCByZWdpb24sICdzMycsIHRydWUpLFxuICAgICAgZmllbGRzLlBvbGljeSxcbiAgICAgICdoZXgnXG4gICAgKTtcblxuICAgIHJldHVybiBmaWVsZHM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcHJlcGFyZVBvc3RQb2xpY3k6IGZ1bmN0aW9uIHByZXBhcmVQb3N0UG9saWN5KGV4cGlyYXRpb24sIGNvbmRpdGlvbnMpIHtcbiAgICByZXR1cm4gQVdTLnV0aWwuYmFzZTY0LmVuY29kZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICBleHBpcmF0aW9uOiBBV1MudXRpbC5kYXRlLmlzbzg2MDEoZXhwaXJhdGlvbiksXG4gICAgICBjb25kaXRpb25zOiBjb25kaXRpb25zXG4gICAgfSkpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHByZXBhcmVTaWduZWRVcmw6IGZ1bmN0aW9uIHByZXBhcmVTaWduZWRVcmwocmVxdWVzdCkge1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ3ZhbGlkYXRlJywgcmVxdWVzdC5zZXJ2aWNlLm5vUHJlc2lnbmVkQ29udGVudExlbmd0aCk7XG4gICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcignYnVpbGQnLCByZXF1ZXN0LnNlcnZpY2UuYWRkQ29udGVudFR5cGUpO1xuICAgIGlmICghcmVxdWVzdC5wYXJhbXMuQm9keSkge1xuICAgICAgLy8gbm8gQ29udGVudC1NRDUvU0hBLTI1NiBpZiBib2R5IGlzIG5vdCBwcm92aWRlZFxuICAgICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcignYnVpbGQnLCByZXF1ZXN0LnNlcnZpY2UuY29tcHV0ZUNvbnRlbnRNZDUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdhZnRlckJ1aWxkJywgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuQ09NUFVURV9TSEEyNTYpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqIEBwYXJhbSByZXF1ZXN0XG4gICAqL1xuICBkaXNhYmxlQm9keVNpZ25pbmc6IGZ1bmN0aW9uIGRpc2FibGVCb2R5U2lnbmluZyhyZXF1ZXN0KSB7XG4gICAgdmFyIGhlYWRlcnMgPSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnM7XG4gICAgLy8gQWRkIHRoZSBoZWFkZXIgdG8gYW55dGhpbmcgdGhhdCBpc24ndCBhIHByZXNpZ25lZCB1cmwsIHVubGVzcyB0aGF0IHByZXNpZ25lZCB1cmwgaGFkIGEgYm9keSBkZWZpbmVkXG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgJ3ByZXNpZ25lZC1leHBpcmVzJykpIHtcbiAgICAgIGhlYWRlcnNbJ1gtQW16LUNvbnRlbnQtU2hhMjU2J10gPSAnVU5TSUdORUQtUEFZTE9BRCc7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG5vUHJlc2lnbmVkQ29udGVudExlbmd0aDogZnVuY3Rpb24gbm9QcmVzaWduZWRDb250ZW50TGVuZ3RoKHJlcXVlc3QpIHtcbiAgICBpZiAocmVxdWVzdC5wYXJhbXMuQ29udGVudExlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge2NvZGU6ICdVbmV4cGVjdGVkUGFyYW1ldGVyJyxcbiAgICAgICAgbWVzc2FnZTogJ0NvbnRlbnRMZW5ndGggaXMgbm90IHN1cHBvcnRlZCBpbiBwcmUtc2lnbmVkIFVSTHMuJ30pO1xuICAgIH1cbiAgfSxcblxuICBjcmVhdGVCdWNrZXQ6IGZ1bmN0aW9uIGNyZWF0ZUJ1Y2tldChwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgLy8gV2hlbiBjcmVhdGluZyBhIGJ1Y2tldCAqb3V0c2lkZSogdGhlIGNsYXNzaWMgcmVnaW9uLCB0aGUgbG9jYXRpb25cbiAgICAvLyBjb25zdHJhaW50IG11c3QgYmUgc2V0IGZvciB0aGUgYnVja2V0IGFuZCBpdCBtdXN0IG1hdGNoIHRoZSBlbmRwb2ludC5cbiAgICAvLyBUaGlzIGNodW5rIG9mIGNvZGUgd2lsbCBzZXQgdGhlIGxvY2F0aW9uIGNvbnN0cmFpbnQgcGFyYW0gYmFzZWRcbiAgICAvLyBvbiB0aGUgcmVnaW9uICh3aGVuIHBvc3NpYmxlKSwgYnV0IGl0IHdpbGwgbm90IG92ZXJyaWRlIGEgcGFzc2VkLWluXG4gICAgLy8gbG9jYXRpb24gY29uc3RyYWludC5cbiAgICBpZiAodHlwZW9mIHBhcmFtcyA9PT0gJ2Z1bmN0aW9uJyB8fCAhcGFyYW1zKSB7XG4gICAgICBjYWxsYmFjayA9IGNhbGxiYWNrIHx8IHBhcmFtcztcbiAgICAgIHBhcmFtcyA9IHt9O1xuICAgIH1cbiAgICB2YXIgaG9zdG5hbWUgPSB0aGlzLmVuZHBvaW50Lmhvc3RuYW1lO1xuICAgIGlmIChob3N0bmFtZSAhPT0gdGhpcy5hcGkuZ2xvYmFsRW5kcG9pbnQgJiYgIXBhcmFtcy5DcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uKSB7XG4gICAgICBwYXJhbXMuQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbiA9IHsgTG9jYXRpb25Db25zdHJhaW50OiB0aGlzLmNvbmZpZy5yZWdpb24gfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3QoJ2NyZWF0ZUJ1Y2tldCcsIHBhcmFtcywgY2FsbGJhY2spO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAc2VlIEFXUy5TMy5NYW5hZ2VkVXBsb2FkXG4gICAqIEBvdmVybG9hZCB1cGxvYWQocGFyYW1zID0ge30sIFtvcHRpb25zXSwgW2NhbGxiYWNrXSlcbiAgICogICBVcGxvYWRzIGFuIGFyYml0cmFyaWx5IHNpemVkIGJ1ZmZlciwgYmxvYiwgb3Igc3RyZWFtLCB1c2luZyBpbnRlbGxpZ2VudFxuICAgKiAgIGNvbmN1cnJlbnQgaGFuZGxpbmcgb2YgcGFydHMgaWYgdGhlIHBheWxvYWQgaXMgbGFyZ2UgZW5vdWdoLiBZb3UgY2FuXG4gICAqICAgY29uZmlndXJlIHRoZSBjb25jdXJyZW50IHF1ZXVlIHNpemUgYnkgc2V0dGluZyBgb3B0aW9uc2AuIE5vdGUgdGhhdCB0aGlzXG4gICAqICAgaXMgdGhlIG9ubHkgb3BlcmF0aW9uIGZvciB3aGljaCB0aGUgU0RLIGNhbiByZXRyeSByZXF1ZXN0cyB3aXRoIHN0cmVhbVxuICAgKiAgIGJvZGllcy5cbiAgICpcbiAgICogICBAcGFyYW0gKHNlZSBBV1MuUzMucHV0T2JqZWN0KVxuICAgKiAgIEBvcHRpb24gKHNlZSBBV1MuUzMuTWFuYWdlZFVwbG9hZC5jb25zdHJ1Y3RvcilcbiAgICogICBAcmV0dXJuIFtBV1MuUzMuTWFuYWdlZFVwbG9hZF0gdGhlIG1hbmFnZWQgdXBsb2FkIG9iamVjdCB0aGF0IGNhbiBjYWxsXG4gICAqICAgICBgc2VuZCgpYCBvciB0cmFjayBwcm9ncmVzcy5cbiAgICogICBAZXhhbXBsZSBVcGxvYWRpbmcgYSBzdHJlYW0gb2JqZWN0XG4gICAqICAgICB2YXIgcGFyYW1zID0ge0J1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleScsIEJvZHk6IHN0cmVhbX07XG4gICAqICAgICBzMy51cGxvYWQocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgICAgY29uc29sZS5sb2coZXJyLCBkYXRhKTtcbiAgICogICAgIH0pO1xuICAgKiAgIEBleGFtcGxlIFVwbG9hZGluZyBhIHN0cmVhbSB3aXRoIGNvbmN1cnJlbmN5IG9mIDEgYW5kIHBhcnRTaXplIG9mIDEwbWJcbiAgICogICAgIHZhciBwYXJhbXMgPSB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgQm9keTogc3RyZWFtfTtcbiAgICogICAgIHZhciBvcHRpb25zID0ge3BhcnRTaXplOiAxMCAqIDEwMjQgKiAxMDI0LCBxdWV1ZVNpemU6IDF9O1xuICAgKiAgICAgczMudXBsb2FkKHBhcmFtcywgb3B0aW9ucywgZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAqICAgICAgIGNvbnNvbGUubG9nKGVyciwgZGF0YSk7XG4gICAqICAgICB9KTtcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVyciwgZGF0YSlcbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gYW4gZXJyb3Igb3IgbnVsbCBpZiBubyBlcnJvciBvY2N1cnJlZC5cbiAgICogICBAcGFyYW0gZGF0YSBbbWFwXSBUaGUgcmVzcG9uc2UgZGF0YSBmcm9tIHRoZSBzdWNjZXNzZnVsIHVwbG9hZDpcbiAgICogICBAcGFyYW0gZGF0YS5Mb2NhdGlvbiBbU3RyaW5nXSB0aGUgVVJMIG9mIHRoZSB1cGxvYWRlZCBvYmplY3RcbiAgICogICBAcGFyYW0gZGF0YS5FVGFnIFtTdHJpbmddIHRoZSBFVGFnIG9mIHRoZSB1cGxvYWRlZCBvYmplY3RcbiAgICogICBAcGFyYW0gZGF0YS5CdWNrZXQgW1N0cmluZ10gIHRoZSBidWNrZXQgdG8gd2hpY2ggdGhlIG9iamVjdCB3YXMgdXBsb2FkZWRcbiAgICogICBAcGFyYW0gZGF0YS5LZXkgW1N0cmluZ10gdGhlIGtleSB0byB3aGljaCB0aGUgb2JqZWN0IHdhcyB1cGxvYWRlZFxuICAgKi9cbiAgdXBsb2FkOiBmdW5jdGlvbiB1cGxvYWQocGFyYW1zLCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJyAmJiBjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0gbnVsbDtcbiAgICB9XG5cbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICBvcHRpb25zID0gQVdTLnV0aWwubWVyZ2Uob3B0aW9ucyB8fCB7fSwge3NlcnZpY2U6IHRoaXMsIHBhcmFtczogcGFyYW1zfSk7XG5cbiAgICB2YXIgdXBsb2FkZXIgPSBuZXcgQVdTLlMzLk1hbmFnZWRVcGxvYWQob3B0aW9ucyk7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgdXBsb2FkZXIuc2VuZChjYWxsYmFjayk7XG4gICAgcmV0dXJuIHVwbG9hZGVyO1xuICB9XG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuU1FTLnByb3RvdHlwZSwge1xuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KSB7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYnVpbGQnLCB0aGlzLmJ1aWxkRW5kcG9pbnQpO1xuXG4gICAgaWYgKHJlcXVlc3Quc2VydmljZS5jb25maWcuY29tcHV0ZUNoZWNrc3Vtcykge1xuICAgICAgaWYgKHJlcXVlc3Qub3BlcmF0aW9uID09PSAnc2VuZE1lc3NhZ2UnKSB7XG4gICAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgdGhpcy52ZXJpZnlTZW5kTWVzc2FnZUNoZWNrc3VtKTtcbiAgICAgIH0gZWxzZSBpZiAocmVxdWVzdC5vcGVyYXRpb24gPT09ICdzZW5kTWVzc2FnZUJhdGNoJykge1xuICAgICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIHRoaXMudmVyaWZ5U2VuZE1lc3NhZ2VCYXRjaENoZWNrc3VtKTtcbiAgICAgIH0gZWxzZSBpZiAocmVxdWVzdC5vcGVyYXRpb24gPT09ICdyZWNlaXZlTWVzc2FnZScpIHtcbiAgICAgICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignZXh0cmFjdERhdGEnLCB0aGlzLnZlcmlmeVJlY2VpdmVNZXNzYWdlQ2hlY2tzdW0pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB2ZXJpZnlTZW5kTWVzc2FnZUNoZWNrc3VtOiBmdW5jdGlvbiB2ZXJpZnlTZW5kTWVzc2FnZUNoZWNrc3VtKHJlc3BvbnNlKSB7XG4gICAgaWYgKCFyZXNwb25zZS5kYXRhKSByZXR1cm47XG5cbiAgICB2YXIgbWQ1ID0gcmVzcG9uc2UuZGF0YS5NRDVPZk1lc3NhZ2VCb2R5O1xuICAgIHZhciBib2R5ID0gdGhpcy5wYXJhbXMuTWVzc2FnZUJvZHk7XG4gICAgdmFyIGNhbGN1bGF0ZWRNZDUgPSB0aGlzLnNlcnZpY2UuY2FsY3VsYXRlQ2hlY2tzdW0oYm9keSk7XG4gICAgaWYgKGNhbGN1bGF0ZWRNZDUgIT09IG1kNSkge1xuICAgICAgdmFyIG1zZyA9ICdHb3QgXCInICsgcmVzcG9uc2UuZGF0YS5NRDVPZk1lc3NhZ2VCb2R5ICtcbiAgICAgICAgJ1wiLCBleHBlY3RpbmcgXCInICsgY2FsY3VsYXRlZE1kNSArICdcIi4nO1xuICAgICAgdGhpcy5zZXJ2aWNlLnRocm93SW52YWxpZENoZWNrc3VtRXJyb3IocmVzcG9uc2UsXG4gICAgICAgIFtyZXNwb25zZS5kYXRhLk1lc3NhZ2VJZF0sIG1zZyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHZlcmlmeVNlbmRNZXNzYWdlQmF0Y2hDaGVja3N1bTogZnVuY3Rpb24gdmVyaWZ5U2VuZE1lc3NhZ2VCYXRjaENoZWNrc3VtKHJlc3BvbnNlKSB7XG4gICAgaWYgKCFyZXNwb25zZS5kYXRhKSByZXR1cm47XG5cbiAgICB2YXIgc2VydmljZSA9IHRoaXMuc2VydmljZTtcbiAgICB2YXIgZW50cmllcyA9IHt9O1xuICAgIHZhciBlcnJvcnMgPSBbXTtcbiAgICB2YXIgbWVzc2FnZUlkcyA9IFtdO1xuICAgIEFXUy51dGlsLmFycmF5RWFjaChyZXNwb25zZS5kYXRhLlN1Y2Nlc3NmdWwsIGZ1bmN0aW9uIChlbnRyeSkge1xuICAgICAgZW50cmllc1tlbnRyeS5JZF0gPSBlbnRyeTtcbiAgICB9KTtcbiAgICBBV1MudXRpbC5hcnJheUVhY2godGhpcy5wYXJhbXMuRW50cmllcywgZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgICBpZiAoZW50cmllc1tlbnRyeS5JZF0pIHtcbiAgICAgICAgdmFyIG1kNSA9IGVudHJpZXNbZW50cnkuSWRdLk1ENU9mTWVzc2FnZUJvZHk7XG4gICAgICAgIHZhciBib2R5ID0gZW50cnkuTWVzc2FnZUJvZHk7XG4gICAgICAgIGlmICghc2VydmljZS5pc0NoZWNrc3VtVmFsaWQobWQ1LCBib2R5KSkge1xuICAgICAgICAgIGVycm9ycy5wdXNoKGVudHJ5LklkKTtcbiAgICAgICAgICBtZXNzYWdlSWRzLnB1c2goZW50cmllc1tlbnRyeS5JZF0uTWVzc2FnZUlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBzZXJ2aWNlLnRocm93SW52YWxpZENoZWNrc3VtRXJyb3IocmVzcG9uc2UsIG1lc3NhZ2VJZHMsXG4gICAgICAgICdJbnZhbGlkIG1lc3NhZ2VzOiAnICsgZXJyb3JzLmpvaW4oJywgJykpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB2ZXJpZnlSZWNlaXZlTWVzc2FnZUNoZWNrc3VtOiBmdW5jdGlvbiB2ZXJpZnlSZWNlaXZlTWVzc2FnZUNoZWNrc3VtKHJlc3BvbnNlKSB7XG4gICAgaWYgKCFyZXNwb25zZS5kYXRhKSByZXR1cm47XG5cbiAgICB2YXIgc2VydmljZSA9IHRoaXMuc2VydmljZTtcbiAgICB2YXIgbWVzc2FnZUlkcyA9IFtdO1xuICAgIEFXUy51dGlsLmFycmF5RWFjaChyZXNwb25zZS5kYXRhLk1lc3NhZ2VzLCBmdW5jdGlvbihtZXNzYWdlKSB7XG4gICAgICB2YXIgbWQ1ID0gbWVzc2FnZS5NRDVPZkJvZHk7XG4gICAgICB2YXIgYm9keSA9IG1lc3NhZ2UuQm9keTtcbiAgICAgIGlmICghc2VydmljZS5pc0NoZWNrc3VtVmFsaWQobWQ1LCBib2R5KSkge1xuICAgICAgICBtZXNzYWdlSWRzLnB1c2gobWVzc2FnZS5NZXNzYWdlSWQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKG1lc3NhZ2VJZHMubGVuZ3RoID4gMCkge1xuICAgICAgc2VydmljZS50aHJvd0ludmFsaWRDaGVja3N1bUVycm9yKHJlc3BvbnNlLCBtZXNzYWdlSWRzLFxuICAgICAgICAnSW52YWxpZCBtZXNzYWdlczogJyArIG1lc3NhZ2VJZHMuam9pbignLCAnKSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHRocm93SW52YWxpZENoZWNrc3VtRXJyb3I6IGZ1bmN0aW9uIHRocm93SW52YWxpZENoZWNrc3VtRXJyb3IocmVzcG9uc2UsIGlkcywgbWVzc2FnZSkge1xuICAgIHJlc3BvbnNlLmVycm9yID0gQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgIHJldHJ5YWJsZTogdHJ1ZSxcbiAgICAgIGNvZGU6ICdJbnZhbGlkQ2hlY2tzdW0nLFxuICAgICAgbWVzc2FnZUlkczogaWRzLFxuICAgICAgbWVzc2FnZTogcmVzcG9uc2UucmVxdWVzdC5vcGVyYXRpb24gK1xuICAgICAgICAgICAgICAgJyByZXR1cm5lZCBhbiBpbnZhbGlkIE1ENSByZXNwb25zZS4gJyArIG1lc3NhZ2VcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBpc0NoZWNrc3VtVmFsaWQ6IGZ1bmN0aW9uIGlzQ2hlY2tzdW1WYWxpZChjaGVja3N1bSwgZGF0YSkge1xuICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZUNoZWNrc3VtKGRhdGEpID09PSBjaGVja3N1bTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjYWxjdWxhdGVDaGVja3N1bTogZnVuY3Rpb24gY2FsY3VsYXRlQ2hlY2tzdW0oZGF0YSkge1xuICAgIHJldHVybiBBV1MudXRpbC5jcnlwdG8ubWQ1KGRhdGEsICdoZXgnKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBidWlsZEVuZHBvaW50OiBmdW5jdGlvbiBidWlsZEVuZHBvaW50KHJlcXVlc3QpIHtcbiAgICB2YXIgdXJsID0gcmVxdWVzdC5odHRwUmVxdWVzdC5wYXJhbXMuUXVldWVVcmw7XG4gICAgaWYgKHVybCkge1xuICAgICAgcmVxdWVzdC5odHRwUmVxdWVzdC5lbmRwb2ludCA9IG5ldyBBV1MuRW5kcG9pbnQodXJsKTtcblxuICAgICAgLy8gc2lnbmF0dXJlIHZlcnNpb24gNCByZXF1aXJlcyB0aGUgcmVnaW9uIG5hbWUgdG8gYmUgc2V0LFxuICAgICAgLy8gc3FzIHF1ZXVlIHVybHMgY29udGFpbiB0aGUgcmVnaW9uIG5hbWVcbiAgICAgIHZhciBtYXRjaGVzID0gcmVxdWVzdC5odHRwUmVxdWVzdC5lbmRwb2ludC5ob3N0Lm1hdGNoKC9ec3FzXFwuKC4rPylcXC4vKTtcbiAgICAgIGlmIChtYXRjaGVzKSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LnJlZ2lvbiA9IG1hdGNoZXNbMV07XG4gICAgfVxuICB9XG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuU1RTLnByb3RvdHlwZSwge1xuICAvKipcbiAgICogQG92ZXJsb2FkIGNyZWRlbnRpYWxzRnJvbShkYXRhLCBjcmVkZW50aWFscyA9IG51bGwpXG4gICAqICAgQ3JlYXRlcyBhIGNyZWRlbnRpYWxzIG9iamVjdCBmcm9tIFNUUyByZXNwb25zZSBkYXRhIGNvbnRhaW5pbmdcbiAgICogICBjcmVkZW50aWFscyBpbmZvcm1hdGlvbi4gVXNlZnVsIGZvciBxdWlja2x5IHNldHRpbmcgQVdTIGNyZWRlbnRpYWxzLlxuICAgKlxuICAgKiAgIEBub3RlIFRoaXMgaXMgYSBsb3ctbGV2ZWwgdXRpbGl0eSBmdW5jdGlvbi4gSWYgeW91IHdhbnQgdG8gbG9hZCB0ZW1wb3JhcnlcbiAgICogICAgIGNyZWRlbnRpYWxzIGludG8geW91ciBwcm9jZXNzIGZvciBzdWJzZXF1ZW50IHJlcXVlc3RzIHRvIEFXUyByZXNvdXJjZXMsXG4gICAqICAgICB5b3Ugc2hvdWxkIHVzZSB7QVdTLlRlbXBvcmFyeUNyZWRlbnRpYWxzfSBpbnN0ZWFkLlxuICAgKiAgIEBwYXJhbSBkYXRhIFttYXBdIGRhdGEgcmV0cmlldmVkIGZyb20gYSBjYWxsIHRvIHtnZXRGZWRlcmF0ZWRUb2tlbn0sXG4gICAqICAgICB7Z2V0U2Vzc2lvblRva2VufSwge2Fzc3VtZVJvbGV9LCBvciB7YXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX0uXG4gICAqICAgQHBhcmFtIGNyZWRlbnRpYWxzIFtBV1MuQ3JlZGVudGlhbHNdIGFuIG9wdGlvbmFsIGNyZWRlbnRpYWxzIG9iamVjdCB0b1xuICAgKiAgICAgZmlsbCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IG9iamVjdC4gVXNlZnVsIHdoZW4gbW9kaWZ5aW5nIGFuXG4gICAqICAgICBleGlzdGluZyBjcmVkZW50aWFscyBvYmplY3QgZnJvbSBhIHJlZnJlc2ggY2FsbC5cbiAgICogICBAcmV0dXJuIFtBV1MuVGVtcG9yYXJ5Q3JlZGVudGlhbHNdIHRoZSBzZXQgb2YgdGVtcG9yYXJ5IGNyZWRlbnRpYWxzXG4gICAqICAgICBsb2FkZWQgZnJvbSBhIHJhdyBTVFMgb3BlcmF0aW9uIHJlc3BvbnNlLlxuICAgKiAgIEBleGFtcGxlIFVzaW5nIGNyZWRlbnRpYWxzRnJvbSB0byBsb2FkIGdsb2JhbCBBV1MgY3JlZGVudGlhbHNcbiAgICogICAgIHZhciBzdHMgPSBuZXcgQVdTLlNUUygpO1xuICAgKiAgICAgc3RzLmdldFNlc3Npb25Ub2tlbihmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAqICAgICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKFwiRXJyb3IgZ2V0dGluZyBjcmVkZW50aWFsc1wiKTtcbiAgICogICAgICAgZWxzZSB7XG4gICAqICAgICAgICAgQVdTLmNvbmZpZy5jcmVkZW50aWFscyA9IHN0cy5jcmVkZW50aWFsc0Zyb20oZGF0YSk7XG4gICAqICAgICAgIH1cbiAgICogICAgIH0pO1xuICAgKiAgIEBzZWUgQVdTLlRlbXBvcmFyeUNyZWRlbnRpYWxzXG4gICAqL1xuICBjcmVkZW50aWFsc0Zyb206IGZ1bmN0aW9uIGNyZWRlbnRpYWxzRnJvbShkYXRhLCBjcmVkZW50aWFscykge1xuICAgIGlmICghZGF0YSkgcmV0dXJuIG51bGw7XG4gICAgaWYgKCFjcmVkZW50aWFscykgY3JlZGVudGlhbHMgPSBuZXcgQVdTLlRlbXBvcmFyeUNyZWRlbnRpYWxzKCk7XG4gICAgY3JlZGVudGlhbHMuZXhwaXJlZCA9IGZhbHNlO1xuICAgIGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkID0gZGF0YS5DcmVkZW50aWFscy5BY2Nlc3NLZXlJZDtcbiAgICBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXkgPSBkYXRhLkNyZWRlbnRpYWxzLlNlY3JldEFjY2Vzc0tleTtcbiAgICBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4gPSBkYXRhLkNyZWRlbnRpYWxzLlNlc3Npb25Ub2tlbjtcbiAgICBjcmVkZW50aWFscy5leHBpcmVUaW1lID0gZGF0YS5DcmVkZW50aWFscy5FeHBpcmF0aW9uO1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfSxcblxuICBhc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5OiBmdW5jdGlvbiBhc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5KHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5tYWtlVW5hdXRoZW50aWNhdGVkUmVxdWVzdCgnYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eScsIHBhcmFtcywgY2FsbGJhY2spO1xuICB9LFxuXG4gIGFzc3VtZVJvbGVXaXRoU0FNTDogZnVuY3Rpb24gYXNzdW1lUm9sZVdpdGhTQU1MKHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5tYWtlVW5hdXRoZW50aWNhdGVkUmVxdWVzdCgnYXNzdW1lUm9sZVdpdGhTQU1MJywgcGFyYW1zLCBjYWxsYmFjayk7XG4gIH1cbn0pO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciBpbmhlcml0ID0gQVdTLnV0aWwuaW5oZXJpdDtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIGV4cGlyZXNIZWFkZXIgPSAncHJlc2lnbmVkLWV4cGlyZXMnO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBzaWduZWRVcmxCdWlsZGVyKHJlcXVlc3QpIHtcbiAgdmFyIGV4cGlyZXMgPSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnNbZXhwaXJlc0hlYWRlcl07XG4gIHZhciBzaWduZXJDbGFzcyA9IHJlcXVlc3Quc2VydmljZS5nZXRTaWduZXJDbGFzcyhyZXF1ZXN0KTtcblxuICBkZWxldGUgcmVxdWVzdC5odHRwUmVxdWVzdC5oZWFkZXJzWydVc2VyLUFnZW50J107XG4gIGRlbGV0ZSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LVVzZXItQWdlbnQnXTtcblxuICBpZiAoc2lnbmVyQ2xhc3MgPT09IEFXUy5TaWduZXJzLlY0KSB7XG4gICAgaWYgKGV4cGlyZXMgPiA2MDQ4MDApIHsgLy8gb25lIHdlZWsgZXhwaXJ5IGlzIGludmFsaWRcbiAgICAgIHZhciBtZXNzYWdlID0gJ1ByZXNpZ25pbmcgZG9lcyBub3Qgc3VwcG9ydCBleHBpcnkgdGltZSBncmVhdGVyICcgK1xuICAgICAgICAgICAgICAgICAgICAndGhhbiBhIHdlZWsgd2l0aCBTaWdWNCBzaWduaW5nLic7XG4gICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgICBjb2RlOiAnSW52YWxpZEV4cGlyeVRpbWUnLCBtZXNzYWdlOiBtZXNzYWdlLCByZXRyeWFibGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmVxdWVzdC5odHRwUmVxdWVzdC5oZWFkZXJzW2V4cGlyZXNIZWFkZXJdID0gZXhwaXJlcztcbiAgfSBlbHNlIGlmIChzaWduZXJDbGFzcyA9PT0gQVdTLlNpZ25lcnMuUzMpIHtcbiAgICB2YXIgbm93ID0gcmVxdWVzdC5zZXJ2aWNlID8gcmVxdWVzdC5zZXJ2aWNlLmdldFNrZXdDb3JyZWN0ZWREYXRlKCkgOiBBV1MudXRpbC5kYXRlLmdldERhdGUoKTtcbiAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnNbZXhwaXJlc0hlYWRlcl0gPSBwYXJzZUludChcbiAgICAgIEFXUy51dGlsLmRhdGUudW5peFRpbWVzdGFtcChub3cpICsgZXhwaXJlcywgMTApLnRvU3RyaW5nKCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgIG1lc3NhZ2U6ICdQcmVzaWduaW5nIG9ubHkgc3VwcG9ydHMgUzMgb3IgU2lnVjQgc2lnbmluZy4nLFxuICAgICAgY29kZTogJ1Vuc3VwcG9ydGVkU2lnbmVyJywgcmV0cnlhYmxlOiBmYWxzZVxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNpZ25lZFVybFNpZ25lcihyZXF1ZXN0KSB7XG4gIHZhciBlbmRwb2ludCA9IHJlcXVlc3QuaHR0cFJlcXVlc3QuZW5kcG9pbnQ7XG4gIHZhciBwYXJzZWRVcmwgPSBBV1MudXRpbC51cmxQYXJzZShyZXF1ZXN0Lmh0dHBSZXF1ZXN0LnBhdGgpO1xuICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcblxuICBpZiAocGFyc2VkVXJsLnNlYXJjaCkge1xuICAgIHF1ZXJ5UGFyYW1zID0gQVdTLnV0aWwucXVlcnlTdHJpbmdQYXJzZShwYXJzZWRVcmwuc2VhcmNoLnN1YnN0cigxKSk7XG4gIH1cblxuICB2YXIgYXV0aCA9IHJlcXVlc3QuaHR0cFJlcXVlc3QuaGVhZGVyc1snQXV0aG9yaXphdGlvbiddLnNwbGl0KCcgJyk7XG4gIGlmIChhdXRoWzBdID09PSAnQVdTJykge1xuICAgIGF1dGggPSBhdXRoWzFdLnNwbGl0KCc6Jyk7XG4gICAgcXVlcnlQYXJhbXNbJ0FXU0FjY2Vzc0tleUlkJ10gPSBhdXRoWzBdO1xuICAgIHF1ZXJ5UGFyYW1zWydTaWduYXR1cmUnXSA9IGF1dGhbMV07XG5cbiAgICBBV1MudXRpbC5lYWNoKHJlcXVlc3QuaHR0cFJlcXVlc3QuaGVhZGVycywgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChrZXkgPT09IGV4cGlyZXNIZWFkZXIpIGtleSA9ICdFeHBpcmVzJztcbiAgICAgIGlmIChrZXkuaW5kZXhPZigneC1hbXotbWV0YS0nKSA9PT0gMCkge1xuICAgICAgICAvLyBEZWxldGUgZXhpc3RpbmcsIHBvdGVudGlhbGx5IG5vdCBub3JtYWxpemVkIGtleVxuICAgICAgICBkZWxldGUgcXVlcnlQYXJhbXNba2V5XTtcbiAgICAgICAga2V5ID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG4gICAgICBxdWVyeVBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfSk7XG4gICAgZGVsZXRlIHJlcXVlc3QuaHR0cFJlcXVlc3QuaGVhZGVyc1tleHBpcmVzSGVhZGVyXTtcbiAgICBkZWxldGUgcXVlcnlQYXJhbXNbJ0F1dGhvcml6YXRpb24nXTtcbiAgICBkZWxldGUgcXVlcnlQYXJhbXNbJ0hvc3QnXTtcbiAgfSBlbHNlIGlmIChhdXRoWzBdID09PSAnQVdTNC1ITUFDLVNIQTI1NicpIHsgLy8gU2lnVjQgc2lnbmluZ1xuICAgIGF1dGguc2hpZnQoKTtcbiAgICB2YXIgcmVzdCA9IGF1dGguam9pbignICcpO1xuICAgIHZhciBzaWduYXR1cmUgPSByZXN0Lm1hdGNoKC9TaWduYXR1cmU9KC4qPykoPzosfFxcc3xcXHI/XFxufCQpLylbMV07XG4gICAgcXVlcnlQYXJhbXNbJ1gtQW16LVNpZ25hdHVyZSddID0gc2lnbmF0dXJlO1xuICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1snRXhwaXJlcyddO1xuICB9XG5cbiAgLy8gYnVpbGQgVVJMXG4gIGVuZHBvaW50LnBhdGhuYW1lID0gcGFyc2VkVXJsLnBhdGhuYW1lO1xuICBlbmRwb2ludC5zZWFyY2ggPSBBV1MudXRpbC5xdWVyeVBhcmFtc1RvU3RyaW5nKHF1ZXJ5UGFyYW1zKTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlNpZ25lcnMuUHJlc2lnbiA9IGluaGVyaXQoe1xuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzaWduOiBmdW5jdGlvbiBzaWduKHJlcXVlc3QsIGV4cGlyZVRpbWUsIGNhbGxiYWNrKSB7XG4gICAgcmVxdWVzdC5odHRwUmVxdWVzdC5oZWFkZXJzW2V4cGlyZXNIZWFkZXJdID0gZXhwaXJlVGltZSB8fCAzNjAwO1xuICAgIHJlcXVlc3Qub24oJ2J1aWxkJywgc2lnbmVkVXJsQnVpbGRlcik7XG4gICAgcmVxdWVzdC5vbignc2lnbicsIHNpZ25lZFVybFNpZ25lcik7XG4gICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcignYWZ0ZXJCdWlsZCcsXG4gICAgICBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5TRVRfQ09OVEVOVF9MRU5HVEgpO1xuICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ2FmdGVyQnVpbGQnLFxuICAgICAgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuQ09NUFVURV9TSEEyNTYpO1xuXG4gICAgcmVxdWVzdC5lbWl0KCdiZWZvcmVQcmVzaWduJywgW3JlcXVlc3RdKTtcblxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgcmVxdWVzdC5idWlsZChmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UuZXJyb3IpIGNhbGxiYWNrKHRoaXMucmVzcG9uc2UuZXJyb3IpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjYWxsYmFjayhudWxsLCBBV1MudXRpbC51cmxGb3JtYXQocmVxdWVzdC5odHRwUmVxdWVzdC5lbmRwb2ludCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdC5idWlsZCgpO1xuICAgICAgaWYgKHJlcXVlc3QucmVzcG9uc2UuZXJyb3IpIHRocm93IHJlcXVlc3QucmVzcG9uc2UuZXJyb3I7XG4gICAgICByZXR1cm4gQVdTLnV0aWwudXJsRm9ybWF0KHJlcXVlc3QuaHR0cFJlcXVlc3QuZW5kcG9pbnQpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNpZ25lcnMuUHJlc2lnbjtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbnZhciBpbmhlcml0ID0gQVdTLnV0aWwuaW5oZXJpdDtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlNpZ25lcnMuUmVxdWVzdFNpZ25lciA9IGluaGVyaXQoe1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gUmVxdWVzdFNpZ25lcihyZXF1ZXN0KSB7XG4gICAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdDtcbiAgfSxcblxuICBzZXRTZXJ2aWNlQ2xpZW50SWQ6IGZ1bmN0aW9uIHNldFNlcnZpY2VDbGllbnRJZChpZCkge1xuICAgIHRoaXMuc2VydmljZUNsaWVudElkID0gaWQ7XG4gIH0sXG5cbiAgZ2V0U2VydmljZUNsaWVudElkOiBmdW5jdGlvbiBnZXRTZXJ2aWNlQ2xpZW50SWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZUNsaWVudElkO1xuICB9XG59KTtcblxuQVdTLlNpZ25lcnMuUmVxdWVzdFNpZ25lci5nZXRWZXJzaW9uID0gZnVuY3Rpb24gZ2V0VmVyc2lvbih2ZXJzaW9uKSB7XG4gIHN3aXRjaCAodmVyc2lvbikge1xuICAgIGNhc2UgJ3YyJzogcmV0dXJuIEFXUy5TaWduZXJzLlYyO1xuICAgIGNhc2UgJ3YzJzogcmV0dXJuIEFXUy5TaWduZXJzLlYzO1xuICAgIGNhc2UgJ3Y0JzogcmV0dXJuIEFXUy5TaWduZXJzLlY0O1xuICAgIGNhc2UgJ3MzJzogcmV0dXJuIEFXUy5TaWduZXJzLlMzO1xuICAgIGNhc2UgJ3YzaHR0cHMnOiByZXR1cm4gQVdTLlNpZ25lcnMuVjNIdHRwcztcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gc2lnbmluZyB2ZXJzaW9uICcgKyB2ZXJzaW9uKTtcbn07XG5cbnJlcXVpcmUoJy4vdjInKTtcbnJlcXVpcmUoJy4vdjMnKTtcbnJlcXVpcmUoJy4vdjNodHRwcycpO1xucmVxdWlyZSgnLi92NCcpO1xucmVxdWlyZSgnLi9zMycpO1xucmVxdWlyZSgnLi9wcmVzaWduJyk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuU2lnbmVycy5TMyA9IGluaGVyaXQoQVdTLlNpZ25lcnMuUmVxdWVzdFNpZ25lciwge1xuICAvKipcbiAgICogV2hlbiBidWlsZGluZyB0aGUgc3RyaW5nVG9TaWduLCB0aGVzZSBzdWIgcmVzb3VyY2UgcGFyYW1zIHNob3VsZCBiZVxuICAgKiBwYXJ0IG9mIHRoZSBjYW5vbmljYWwgcmVzb3VyY2Ugc3RyaW5nIHdpdGggdGhlaXIgTk9OLWRlY29kZWQgdmFsdWVzXG4gICAqL1xuICBzdWJSZXNvdXJjZXM6IHtcbiAgICAnYWNsJzogMSxcbiAgICAnYWNjZWxlcmF0ZSc6IDEsXG4gICAgJ2FuYWx5dGljcyc6IDEsXG4gICAgJ2NvcnMnOiAxLFxuICAgICdsaWZlY3ljbGUnOiAxLFxuICAgICdkZWxldGUnOiAxLFxuICAgICdpbnZlbnRvcnknOiAxLFxuICAgICdsb2NhdGlvbic6IDEsXG4gICAgJ2xvZ2dpbmcnOiAxLFxuICAgICdtZXRyaWNzJzogMSxcbiAgICAnbm90aWZpY2F0aW9uJzogMSxcbiAgICAncGFydE51bWJlcic6IDEsXG4gICAgJ3BvbGljeSc6IDEsXG4gICAgJ3JlcXVlc3RQYXltZW50JzogMSxcbiAgICAncmVwbGljYXRpb24nOiAxLFxuICAgICdyZXN0b3JlJzogMSxcbiAgICAndGFnZ2luZyc6IDEsXG4gICAgJ3RvcnJlbnQnOiAxLFxuICAgICd1cGxvYWRJZCc6IDEsXG4gICAgJ3VwbG9hZHMnOiAxLFxuICAgICd2ZXJzaW9uSWQnOiAxLFxuICAgICd2ZXJzaW9uaW5nJzogMSxcbiAgICAndmVyc2lvbnMnOiAxLFxuICAgICd3ZWJzaXRlJzogMVxuICB9LFxuXG4gIC8vIHdoZW4gYnVpbGRpbmcgdGhlIHN0cmluZ1RvU2lnbiwgdGhlc2UgcXVlcnlzdHJpbmcgcGFyYW1zIHNob3VsZCBiZVxuICAvLyBwYXJ0IG9mIHRoZSBjYW5vbmljYWwgcmVzb3VyY2Ugc3RyaW5nIHdpdGggdGhlaXIgTk9OLWVuY29kZWQgdmFsdWVzXG4gIHJlc3BvbnNlSGVhZGVyczoge1xuICAgICdyZXNwb25zZS1jb250ZW50LXR5cGUnOiAxLFxuICAgICdyZXNwb25zZS1jb250ZW50LWxhbmd1YWdlJzogMSxcbiAgICAncmVzcG9uc2UtZXhwaXJlcyc6IDEsXG4gICAgJ3Jlc3BvbnNlLWNhY2hlLWNvbnRyb2wnOiAxLFxuICAgICdyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uJzogMSxcbiAgICAncmVzcG9uc2UtY29udGVudC1lbmNvZGluZyc6IDFcbiAgfSxcblxuICBhZGRBdXRob3JpemF0aW9uOiBmdW5jdGlvbiBhZGRBdXRob3JpemF0aW9uKGNyZWRlbnRpYWxzLCBkYXRlKSB7XG4gICAgaWYgKCF0aGlzLnJlcXVlc3QuaGVhZGVyc1sncHJlc2lnbmVkLWV4cGlyZXMnXSkge1xuICAgICAgdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LURhdGUnXSA9IEFXUy51dGlsLmRhdGUucmZjODIyKGRhdGUpO1xuICAgIH1cblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIC8vIHByZXNpZ25lZCBVUkxzIHJlcXVpcmUgdGhpcyBoZWFkZXIgdG8gYmUgbG93ZXJjYXNlZFxuICAgICAgdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ3gtYW16LXNlY3VyaXR5LXRva2VuJ10gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgdmFyIHNpZ25hdHVyZSA9IHRoaXMuc2lnbihjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksIHRoaXMuc3RyaW5nVG9TaWduKCkpO1xuICAgIHZhciBhdXRoID0gJ0FXUyAnICsgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgKyAnOicgKyBzaWduYXR1cmU7XG5cbiAgICB0aGlzLnJlcXVlc3QuaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gYXV0aDtcbiAgfSxcblxuICBzdHJpbmdUb1NpZ246IGZ1bmN0aW9uIHN0cmluZ1RvU2lnbigpIHtcbiAgICB2YXIgciA9IHRoaXMucmVxdWVzdDtcblxuICAgIHZhciBwYXJ0cyA9IFtdO1xuICAgIHBhcnRzLnB1c2goci5tZXRob2QpO1xuICAgIHBhcnRzLnB1c2goci5oZWFkZXJzWydDb250ZW50LU1ENSddIHx8ICcnKTtcbiAgICBwYXJ0cy5wdXNoKHIuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gfHwgJycpO1xuXG4gICAgLy8gVGhpcyBpcyB0aGUgXCJEYXRlXCIgaGVhZGVyLCBidXQgd2UgdXNlIFgtQW16LURhdGUuXG4gICAgLy8gVGhlIFMzIHNpZ25pbmcgbWVjaGFuaXNtIHJlcXVpcmVzIHVzIHRvIHBhc3MgYW4gZW1wdHlcbiAgICAvLyBzdHJpbmcgZm9yIHRoaXMgRGF0ZSBoZWFkZXIgcmVnYXJkbGVzcy5cbiAgICBwYXJ0cy5wdXNoKHIuaGVhZGVyc1sncHJlc2lnbmVkLWV4cGlyZXMnXSB8fCAnJyk7XG5cbiAgICB2YXIgaGVhZGVycyA9IHRoaXMuY2Fub25pY2FsaXplZEFtekhlYWRlcnMoKTtcbiAgICBpZiAoaGVhZGVycykgcGFydHMucHVzaChoZWFkZXJzKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMuY2Fub25pY2FsaXplZFJlc291cmNlKCkpO1xuXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJ1xcbicpO1xuXG4gIH0sXG5cbiAgY2Fub25pY2FsaXplZEFtekhlYWRlcnM6IGZ1bmN0aW9uIGNhbm9uaWNhbGl6ZWRBbXpIZWFkZXJzKCkge1xuXG4gICAgdmFyIGFtekhlYWRlcnMgPSBbXTtcblxuICAgIEFXUy51dGlsLmVhY2godGhpcy5yZXF1ZXN0LmhlYWRlcnMsIGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICBpZiAobmFtZS5tYXRjaCgvXngtYW16LS9pKSlcbiAgICAgICAgYW16SGVhZGVycy5wdXNoKG5hbWUpO1xuICAgIH0pO1xuXG4gICAgYW16SGVhZGVycy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gYS50b0xvd2VyQ2FzZSgpIDwgYi50b0xvd2VyQ2FzZSgpID8gLTEgOiAxO1xuICAgIH0pO1xuXG4gICAgdmFyIHBhcnRzID0gW107XG4gICAgQVdTLnV0aWwuYXJyYXlFYWNoLmNhbGwodGhpcywgYW16SGVhZGVycywgZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHBhcnRzLnB1c2gobmFtZS50b0xvd2VyQ2FzZSgpICsgJzonICsgU3RyaW5nKHRoaXMucmVxdWVzdC5oZWFkZXJzW25hbWVdKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFydHMuam9pbignXFxuJyk7XG5cbiAgfSxcblxuICBjYW5vbmljYWxpemVkUmVzb3VyY2U6IGZ1bmN0aW9uIGNhbm9uaWNhbGl6ZWRSZXNvdXJjZSgpIHtcblxuICAgIHZhciByID0gdGhpcy5yZXF1ZXN0O1xuXG4gICAgdmFyIHBhcnRzID0gci5wYXRoLnNwbGl0KCc/Jyk7XG4gICAgdmFyIHBhdGggPSBwYXJ0c1swXTtcbiAgICB2YXIgcXVlcnlzdHJpbmcgPSBwYXJ0c1sxXTtcblxuICAgIHZhciByZXNvdXJjZSA9ICcnO1xuXG4gICAgaWYgKHIudmlydHVhbEhvc3RlZEJ1Y2tldClcbiAgICAgIHJlc291cmNlICs9ICcvJyArIHIudmlydHVhbEhvc3RlZEJ1Y2tldDtcblxuICAgIHJlc291cmNlICs9IHBhdGg7XG5cbiAgICBpZiAocXVlcnlzdHJpbmcpIHtcblxuICAgICAgLy8gY29sbGVjdCBhIGxpc3Qgb2Ygc3ViIHJlc291cmNlcyBhbmQgcXVlcnkgcGFyYW1zIHRoYXQgbmVlZCB0byBiZSBzaWduZWRcbiAgICAgIHZhciByZXNvdXJjZXMgPSBbXTtcblxuICAgICAgQVdTLnV0aWwuYXJyYXlFYWNoLmNhbGwodGhpcywgcXVlcnlzdHJpbmcuc3BsaXQoJyYnKSwgZnVuY3Rpb24gKHBhcmFtKSB7XG4gICAgICAgIHZhciBuYW1lID0gcGFyYW0uc3BsaXQoJz0nKVswXTtcbiAgICAgICAgdmFyIHZhbHVlID0gcGFyYW0uc3BsaXQoJz0nKVsxXTtcbiAgICAgICAgaWYgKHRoaXMuc3ViUmVzb3VyY2VzW25hbWVdIHx8IHRoaXMucmVzcG9uc2VIZWFkZXJzW25hbWVdKSB7XG4gICAgICAgICAgdmFyIHN1YnJlc291cmNlID0geyBuYW1lOiBuYW1lIH07XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN1YlJlc291cmNlc1tuYW1lXSkge1xuICAgICAgICAgICAgICBzdWJyZXNvdXJjZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc3VicmVzb3VyY2UudmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvdXJjZXMucHVzaChzdWJyZXNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXNvdXJjZXMuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYS5uYW1lIDwgYi5uYW1lID8gLTEgOiAxOyB9KTtcblxuICAgICAgaWYgKHJlc291cmNlcy5sZW5ndGgpIHtcblxuICAgICAgICBxdWVyeXN0cmluZyA9IFtdO1xuICAgICAgICBBV1MudXRpbC5hcnJheUVhY2gocmVzb3VyY2VzLCBmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgaWYgKHJlcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBxdWVyeXN0cmluZy5wdXNoKHJlcy5uYW1lKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnlzdHJpbmcucHVzaChyZXMubmFtZSArICc9JyArIHJlcy52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXNvdXJjZSArPSAnPycgKyBxdWVyeXN0cmluZy5qb2luKCcmJyk7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzb3VyY2U7XG5cbiAgfSxcblxuICBzaWduOiBmdW5jdGlvbiBzaWduKHNlY3JldCwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIEFXUy51dGlsLmNyeXB0by5obWFjKHNlY3JldCwgc3RyaW5nLCAnYmFzZTY0JywgJ3NoYTEnKTtcbiAgfVxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNpZ25lcnMuUzM7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuU2lnbmVycy5WMiA9IGluaGVyaXQoQVdTLlNpZ25lcnMuUmVxdWVzdFNpZ25lciwge1xuICBhZGRBdXRob3JpemF0aW9uOiBmdW5jdGlvbiBhZGRBdXRob3JpemF0aW9uKGNyZWRlbnRpYWxzLCBkYXRlKSB7XG5cbiAgICBpZiAoIWRhdGUpIGRhdGUgPSBBV1MudXRpbC5kYXRlLmdldERhdGUoKTtcblxuICAgIHZhciByID0gdGhpcy5yZXF1ZXN0O1xuXG4gICAgci5wYXJhbXMuVGltZXN0YW1wID0gQVdTLnV0aWwuZGF0ZS5pc284NjAxKGRhdGUpO1xuICAgIHIucGFyYW1zLlNpZ25hdHVyZVZlcnNpb24gPSAnMic7XG4gICAgci5wYXJhbXMuU2lnbmF0dXJlTWV0aG9kID0gJ0htYWNTSEEyNTYnO1xuICAgIHIucGFyYW1zLkFXU0FjY2Vzc0tleUlkID0gY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQ7XG5cbiAgICBpZiAoY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuKSB7XG4gICAgICByLnBhcmFtcy5TZWN1cml0eVRva2VuID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIGRlbGV0ZSByLnBhcmFtcy5TaWduYXR1cmU7IC8vIGRlbGV0ZSBvbGQgU2lnbmF0dXJlIGZvciByZS1zaWduaW5nXG4gICAgci5wYXJhbXMuU2lnbmF0dXJlID0gdGhpcy5zaWduYXR1cmUoY3JlZGVudGlhbHMpO1xuXG4gICAgci5ib2R5ID0gQVdTLnV0aWwucXVlcnlQYXJhbXNUb1N0cmluZyhyLnBhcmFtcyk7XG4gICAgci5oZWFkZXJzWydDb250ZW50LUxlbmd0aCddID0gci5ib2R5Lmxlbmd0aDtcbiAgfSxcblxuICBzaWduYXR1cmU6IGZ1bmN0aW9uIHNpZ25hdHVyZShjcmVkZW50aWFscykge1xuICAgIHJldHVybiBBV1MudXRpbC5jcnlwdG8uaG1hYyhjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksIHRoaXMuc3RyaW5nVG9TaWduKCksICdiYXNlNjQnKTtcbiAgfSxcblxuICBzdHJpbmdUb1NpZ246IGZ1bmN0aW9uIHN0cmluZ1RvU2lnbigpIHtcbiAgICB2YXIgcGFydHMgPSBbXTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMucmVxdWVzdC5tZXRob2QpO1xuICAgIHBhcnRzLnB1c2godGhpcy5yZXF1ZXN0LmVuZHBvaW50Lmhvc3QudG9Mb3dlckNhc2UoKSk7XG4gICAgcGFydHMucHVzaCh0aGlzLnJlcXVlc3QucGF0aG5hbWUoKSk7XG4gICAgcGFydHMucHVzaChBV1MudXRpbC5xdWVyeVBhcmFtc1RvU3RyaW5nKHRoaXMucmVxdWVzdC5wYXJhbXMpKTtcbiAgICByZXR1cm4gcGFydHMuam9pbignXFxuJyk7XG4gIH1cblxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNpZ25lcnMuVjI7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuU2lnbmVycy5WMyA9IGluaGVyaXQoQVdTLlNpZ25lcnMuUmVxdWVzdFNpZ25lciwge1xuICBhZGRBdXRob3JpemF0aW9uOiBmdW5jdGlvbiBhZGRBdXRob3JpemF0aW9uKGNyZWRlbnRpYWxzLCBkYXRlKSB7XG5cbiAgICB2YXIgZGF0ZXRpbWUgPSBBV1MudXRpbC5kYXRlLnJmYzgyMihkYXRlKTtcblxuICAgIHRoaXMucmVxdWVzdC5oZWFkZXJzWydYLUFtei1EYXRlJ10gPSBkYXRldGltZTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHRoaXMucmVxdWVzdC5oZWFkZXJzWyd4LWFtei1zZWN1cml0eS10b2tlbiddID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdC5oZWFkZXJzWydYLUFtem4tQXV0aG9yaXphdGlvbiddID1cbiAgICAgIHRoaXMuYXV0aG9yaXphdGlvbihjcmVkZW50aWFscywgZGF0ZXRpbWUpO1xuXG4gIH0sXG5cbiAgYXV0aG9yaXphdGlvbjogZnVuY3Rpb24gYXV0aG9yaXphdGlvbihjcmVkZW50aWFscykge1xuICAgIHJldHVybiAnQVdTMyAnICtcbiAgICAgICdBV1NBY2Nlc3NLZXlJZD0nICsgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgKyAnLCcgK1xuICAgICAgJ0FsZ29yaXRobT1IbWFjU0hBMjU2LCcgK1xuICAgICAgJ1NpZ25lZEhlYWRlcnM9JyArIHRoaXMuc2lnbmVkSGVhZGVycygpICsgJywnICtcbiAgICAgICdTaWduYXR1cmU9JyArIHRoaXMuc2lnbmF0dXJlKGNyZWRlbnRpYWxzKTtcbiAgfSxcblxuICBzaWduZWRIZWFkZXJzOiBmdW5jdGlvbiBzaWduZWRIZWFkZXJzKCkge1xuICAgIHZhciBoZWFkZXJzID0gW107XG4gICAgQVdTLnV0aWwuYXJyYXlFYWNoKHRoaXMuaGVhZGVyc1RvU2lnbigpLCBmdW5jdGlvbiBpdGVyYXRvcihoKSB7XG4gICAgICBoZWFkZXJzLnB1c2goaC50b0xvd2VyQ2FzZSgpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaGVhZGVycy5zb3J0KCkuam9pbignOycpO1xuICB9LFxuXG4gIGNhbm9uaWNhbEhlYWRlcnM6IGZ1bmN0aW9uIGNhbm9uaWNhbEhlYWRlcnMoKSB7XG4gICAgdmFyIGhlYWRlcnMgPSB0aGlzLnJlcXVlc3QuaGVhZGVycztcbiAgICB2YXIgcGFydHMgPSBbXTtcbiAgICBBV1MudXRpbC5hcnJheUVhY2godGhpcy5oZWFkZXJzVG9TaWduKCksIGZ1bmN0aW9uIGl0ZXJhdG9yKGgpIHtcbiAgICAgIHBhcnRzLnB1c2goaC50b0xvd2VyQ2FzZSgpLnRyaW0oKSArICc6JyArIFN0cmluZyhoZWFkZXJzW2hdKS50cmltKCkpO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJ0cy5zb3J0KCkuam9pbignXFxuJykgKyAnXFxuJztcbiAgfSxcblxuICBoZWFkZXJzVG9TaWduOiBmdW5jdGlvbiBoZWFkZXJzVG9TaWduKCkge1xuICAgIHZhciBoZWFkZXJzID0gW107XG4gICAgQVdTLnV0aWwuZWFjaCh0aGlzLnJlcXVlc3QuaGVhZGVycywgZnVuY3Rpb24gaXRlcmF0b3Ioaykge1xuICAgICAgaWYgKGsgPT09ICdIb3N0JyB8fCBrID09PSAnQ29udGVudC1FbmNvZGluZycgfHwgay5tYXRjaCgvXlgtQW16L2kpKSB7XG4gICAgICAgIGhlYWRlcnMucHVzaChrKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfSxcblxuICBzaWduYXR1cmU6IGZ1bmN0aW9uIHNpZ25hdHVyZShjcmVkZW50aWFscykge1xuICAgIHJldHVybiBBV1MudXRpbC5jcnlwdG8uaG1hYyhjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksIHRoaXMuc3RyaW5nVG9TaWduKCksICdiYXNlNjQnKTtcbiAgfSxcblxuICBzdHJpbmdUb1NpZ246IGZ1bmN0aW9uIHN0cmluZ1RvU2lnbigpIHtcbiAgICB2YXIgcGFydHMgPSBbXTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMucmVxdWVzdC5tZXRob2QpO1xuICAgIHBhcnRzLnB1c2goJy8nKTtcbiAgICBwYXJ0cy5wdXNoKCcnKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMuY2Fub25pY2FsSGVhZGVycygpKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMucmVxdWVzdC5ib2R5KTtcbiAgICByZXR1cm4gQVdTLnV0aWwuY3J5cHRvLnNoYTI1NihwYXJ0cy5qb2luKCdcXG4nKSk7XG4gIH1cblxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNpZ25lcnMuVjM7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG5yZXF1aXJlKCcuL3YzJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5TaWduZXJzLlYzSHR0cHMgPSBpbmhlcml0KEFXUy5TaWduZXJzLlYzLCB7XG4gIGF1dGhvcml6YXRpb246IGZ1bmN0aW9uIGF1dGhvcml6YXRpb24oY3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4gJ0FXUzMtSFRUUFMgJyArXG4gICAgICAnQVdTQWNjZXNzS2V5SWQ9JyArIGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkICsgJywnICtcbiAgICAgICdBbGdvcml0aG09SG1hY1NIQTI1NiwnICtcbiAgICAgICdTaWduYXR1cmU9JyArIHRoaXMuc2lnbmF0dXJlKGNyZWRlbnRpYWxzKTtcbiAgfSxcblxuICBzdHJpbmdUb1NpZ246IGZ1bmN0aW9uIHN0cmluZ1RvU2lnbigpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LURhdGUnXTtcbiAgfVxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNpZ25lcnMuVjNIdHRwcztcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgdjRDcmVkZW50aWFscyA9IHJlcXVpcmUoJy4vdjRfY3JlZGVudGlhbHMnKTtcbnZhciBpbmhlcml0ID0gQVdTLnV0aWwuaW5oZXJpdDtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIGV4cGlyZXNIZWFkZXIgPSAncHJlc2lnbmVkLWV4cGlyZXMnO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuU2lnbmVycy5WNCA9IGluaGVyaXQoQVdTLlNpZ25lcnMuUmVxdWVzdFNpZ25lciwge1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gVjQocmVxdWVzdCwgc2VydmljZU5hbWUsIG9wdGlvbnMpIHtcbiAgICBBV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyLmNhbGwodGhpcywgcmVxdWVzdCk7XG4gICAgdGhpcy5zZXJ2aWNlTmFtZSA9IHNlcnZpY2VOYW1lO1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHRoaXMuc2lnbmF0dXJlQ2FjaGUgPSB0eXBlb2Ygb3B0aW9ucy5zaWduYXR1cmVDYWNoZSA9PT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5zaWduYXR1cmVDYWNoZSA6IHRydWU7XG4gICAgdGhpcy5vcGVyYXRpb24gPSBvcHRpb25zLm9wZXJhdGlvbjtcbiAgfSxcblxuICBhbGdvcml0aG06ICdBV1M0LUhNQUMtU0hBMjU2JyxcblxuICBhZGRBdXRob3JpemF0aW9uOiBmdW5jdGlvbiBhZGRBdXRob3JpemF0aW9uKGNyZWRlbnRpYWxzLCBkYXRlKSB7XG4gICAgdmFyIGRhdGV0aW1lID0gQVdTLnV0aWwuZGF0ZS5pc284NjAxKGRhdGUpLnJlcGxhY2UoL1s6XFwtXXxcXC5cXGR7M30vZywgJycpO1xuXG4gICAgaWYgKHRoaXMuaXNQcmVzaWduZWQoKSkge1xuICAgICAgdGhpcy51cGRhdGVGb3JQcmVzaWduZWQoY3JlZGVudGlhbHMsIGRhdGV0aW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRIZWFkZXJzKGNyZWRlbnRpYWxzLCBkYXRldGltZSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9XG4gICAgICB0aGlzLmF1dGhvcml6YXRpb24oY3JlZGVudGlhbHMsIGRhdGV0aW1lKTtcbiAgfSxcblxuICBhZGRIZWFkZXJzOiBmdW5jdGlvbiBhZGRIZWFkZXJzKGNyZWRlbnRpYWxzLCBkYXRldGltZSkge1xuICAgIHRoaXMucmVxdWVzdC5oZWFkZXJzWydYLUFtei1EYXRlJ10gPSBkYXRldGltZTtcbiAgICBpZiAoY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuKSB7XG4gICAgICB0aGlzLnJlcXVlc3QuaGVhZGVyc1sneC1hbXotc2VjdXJpdHktdG9rZW4nXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICB9XG4gIH0sXG5cbiAgdXBkYXRlRm9yUHJlc2lnbmVkOiBmdW5jdGlvbiB1cGRhdGVGb3JQcmVzaWduZWQoY3JlZGVudGlhbHMsIGRhdGV0aW1lKSB7XG4gICAgdmFyIGNyZWRTdHJpbmcgPSB0aGlzLmNyZWRlbnRpYWxTdHJpbmcoZGF0ZXRpbWUpO1xuICAgIHZhciBxcyA9IHtcbiAgICAgICdYLUFtei1EYXRlJzogZGF0ZXRpbWUsXG4gICAgICAnWC1BbXotQWxnb3JpdGhtJzogdGhpcy5hbGdvcml0aG0sXG4gICAgICAnWC1BbXotQ3JlZGVudGlhbCc6IGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkICsgJy8nICsgY3JlZFN0cmluZyxcbiAgICAgICdYLUFtei1FeHBpcmVzJzogdGhpcy5yZXF1ZXN0LmhlYWRlcnNbZXhwaXJlc0hlYWRlcl0sXG4gICAgICAnWC1BbXotU2lnbmVkSGVhZGVycyc6IHRoaXMuc2lnbmVkSGVhZGVycygpXG4gICAgfTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHFzWydYLUFtei1TZWN1cml0eS1Ub2tlbiddID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1UeXBlJ10pIHtcbiAgICAgIHFzWydDb250ZW50LVR5cGUnXSA9IHRoaXMucmVxdWVzdC5oZWFkZXJzWydDb250ZW50LVR5cGUnXTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVxdWVzdC5oZWFkZXJzWydDb250ZW50LU1ENSddKSB7XG4gICAgICBxc1snQ29udGVudC1NRDUnXSA9IHRoaXMucmVxdWVzdC5oZWFkZXJzWydDb250ZW50LU1ENSddO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ0NhY2hlLUNvbnRyb2wnXSkge1xuICAgICAgcXNbJ0NhY2hlLUNvbnRyb2wnXSA9IHRoaXMucmVxdWVzdC5oZWFkZXJzWydDYWNoZS1Db250cm9sJ107XG4gICAgfVxuXG4gICAgLy8gbmVlZCB0byBwdWxsIGluIGFueSBvdGhlciBYLUFtei0qIGhlYWRlcnNcbiAgICBBV1MudXRpbC5lYWNoLmNhbGwodGhpcywgdGhpcy5yZXF1ZXN0LmhlYWRlcnMsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChrZXkgPT09IGV4cGlyZXNIZWFkZXIpIHJldHVybjtcbiAgICAgIGlmICh0aGlzLmlzU2lnbmFibGVIZWFkZXIoa2V5KSkge1xuICAgICAgICB2YXIgbG93ZXJLZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgLy8gTWV0YWRhdGEgc2hvdWxkIGJlIG5vcm1hbGl6ZWRcbiAgICAgICAgaWYgKGxvd2VyS2V5LmluZGV4T2YoJ3gtYW16LW1ldGEtJykgPT09IDApIHtcbiAgICAgICAgICBxc1tsb3dlcktleV0gPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChsb3dlcktleS5pbmRleE9mKCd4LWFtei0nKSA9PT0gMCkge1xuICAgICAgICAgIHFzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFyIHNlcCA9IHRoaXMucmVxdWVzdC5wYXRoLmluZGV4T2YoJz8nKSA+PSAwID8gJyYnIDogJz8nO1xuICAgIHRoaXMucmVxdWVzdC5wYXRoICs9IHNlcCArIEFXUy51dGlsLnF1ZXJ5UGFyYW1zVG9TdHJpbmcocXMpO1xuICB9LFxuXG4gIGF1dGhvcml6YXRpb246IGZ1bmN0aW9uIGF1dGhvcml6YXRpb24oY3JlZGVudGlhbHMsIGRhdGV0aW1lKSB7XG4gICAgdmFyIHBhcnRzID0gW107XG4gICAgdmFyIGNyZWRTdHJpbmcgPSB0aGlzLmNyZWRlbnRpYWxTdHJpbmcoZGF0ZXRpbWUpO1xuICAgIHBhcnRzLnB1c2godGhpcy5hbGdvcml0aG0gKyAnIENyZWRlbnRpYWw9JyArXG4gICAgICBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCArICcvJyArIGNyZWRTdHJpbmcpO1xuICAgIHBhcnRzLnB1c2goJ1NpZ25lZEhlYWRlcnM9JyArIHRoaXMuc2lnbmVkSGVhZGVycygpKTtcbiAgICBwYXJ0cy5wdXNoKCdTaWduYXR1cmU9JyArIHRoaXMuc2lnbmF0dXJlKGNyZWRlbnRpYWxzLCBkYXRldGltZSkpO1xuICAgIHJldHVybiBwYXJ0cy5qb2luKCcsICcpO1xuICB9LFxuXG4gIHNpZ25hdHVyZTogZnVuY3Rpb24gc2lnbmF0dXJlKGNyZWRlbnRpYWxzLCBkYXRldGltZSkge1xuICAgIHZhciBzaWduaW5nS2V5ID0gdjRDcmVkZW50aWFscy5nZXRTaWduaW5nS2V5KFxuICAgICAgY3JlZGVudGlhbHMsXG4gICAgICBkYXRldGltZS5zdWJzdHIoMCwgOCksXG4gICAgICB0aGlzLnJlcXVlc3QucmVnaW9uLFxuICAgICAgdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgIHRoaXMuc2lnbmF0dXJlQ2FjaGVcbiAgICApO1xuICAgIHJldHVybiBBV1MudXRpbC5jcnlwdG8uaG1hYyhzaWduaW5nS2V5LCB0aGlzLnN0cmluZ1RvU2lnbihkYXRldGltZSksICdoZXgnKTtcbiAgfSxcblxuICBzdHJpbmdUb1NpZ246IGZ1bmN0aW9uIHN0cmluZ1RvU2lnbihkYXRldGltZSkge1xuICAgIHZhciBwYXJ0cyA9IFtdO1xuICAgIHBhcnRzLnB1c2goJ0FXUzQtSE1BQy1TSEEyNTYnKTtcbiAgICBwYXJ0cy5wdXNoKGRhdGV0aW1lKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMuY3JlZGVudGlhbFN0cmluZyhkYXRldGltZSkpO1xuICAgIHBhcnRzLnB1c2godGhpcy5oZXhFbmNvZGVkSGFzaCh0aGlzLmNhbm9uaWNhbFN0cmluZygpKSk7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJ1xcbicpO1xuICB9LFxuXG4gIGNhbm9uaWNhbFN0cmluZzogZnVuY3Rpb24gY2Fub25pY2FsU3RyaW5nKCkge1xuICAgIHZhciBwYXJ0cyA9IFtdLCBwYXRobmFtZSA9IHRoaXMucmVxdWVzdC5wYXRobmFtZSgpO1xuICAgIGlmICh0aGlzLnNlcnZpY2VOYW1lICE9PSAnczMnKSBwYXRobmFtZSA9IEFXUy51dGlsLnVyaUVzY2FwZVBhdGgocGF0aG5hbWUpO1xuXG4gICAgcGFydHMucHVzaCh0aGlzLnJlcXVlc3QubWV0aG9kKTtcbiAgICBwYXJ0cy5wdXNoKHBhdGhuYW1lKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMucmVxdWVzdC5zZWFyY2goKSk7XG4gICAgcGFydHMucHVzaCh0aGlzLmNhbm9uaWNhbEhlYWRlcnMoKSArICdcXG4nKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMuc2lnbmVkSGVhZGVycygpKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMuaGV4RW5jb2RlZEJvZHlIYXNoKCkpO1xuICAgIHJldHVybiBwYXJ0cy5qb2luKCdcXG4nKTtcbiAgfSxcblxuICBjYW5vbmljYWxIZWFkZXJzOiBmdW5jdGlvbiBjYW5vbmljYWxIZWFkZXJzKCkge1xuICAgIHZhciBoZWFkZXJzID0gW107XG4gICAgQVdTLnV0aWwuZWFjaC5jYWxsKHRoaXMsIHRoaXMucmVxdWVzdC5oZWFkZXJzLCBmdW5jdGlvbiAoa2V5LCBpdGVtKSB7XG4gICAgICBoZWFkZXJzLnB1c2goW2tleSwgaXRlbV0pO1xuICAgIH0pO1xuICAgIGhlYWRlcnMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGFbMF0udG9Mb3dlckNhc2UoKSA8IGJbMF0udG9Mb3dlckNhc2UoKSA/IC0xIDogMTtcbiAgICB9KTtcbiAgICB2YXIgcGFydHMgPSBbXTtcbiAgICBBV1MudXRpbC5hcnJheUVhY2guY2FsbCh0aGlzLCBoZWFkZXJzLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIGtleSA9IGl0ZW1bMF0udG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmICh0aGlzLmlzU2lnbmFibGVIZWFkZXIoa2V5KSkge1xuICAgICAgICB2YXIgdmFsdWUgPSBpdGVtWzFdO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUudG9TdHJpbmcgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoJ0hlYWRlciAnICsga2V5ICsgJyBjb250YWlucyBpbnZhbGlkIHZhbHVlJyksIHtcbiAgICAgICAgICAgIGNvZGU6ICdJbnZhbGlkSGVhZGVyJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHBhcnRzLnB1c2goa2V5ICsgJzonICtcbiAgICAgICAgICB0aGlzLmNhbm9uaWNhbEhlYWRlclZhbHVlcyh2YWx1ZS50b1N0cmluZygpKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJ1xcbicpO1xuICB9LFxuXG4gIGNhbm9uaWNhbEhlYWRlclZhbHVlczogZnVuY3Rpb24gY2Fub25pY2FsSGVhZGVyVmFsdWVzKHZhbHVlcykge1xuICAgIHJldHVybiB2YWx1ZXMucmVwbGFjZSgvXFxzKy9nLCAnICcpLnJlcGxhY2UoL15cXHMrfFxccyskL2csICcnKTtcbiAgfSxcblxuICBzaWduZWRIZWFkZXJzOiBmdW5jdGlvbiBzaWduZWRIZWFkZXJzKCkge1xuICAgIHZhciBrZXlzID0gW107XG4gICAgQVdTLnV0aWwuZWFjaC5jYWxsKHRoaXMsIHRoaXMucmVxdWVzdC5oZWFkZXJzLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBrZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmICh0aGlzLmlzU2lnbmFibGVIZWFkZXIoa2V5KSkga2V5cy5wdXNoKGtleSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGtleXMuc29ydCgpLmpvaW4oJzsnKTtcbiAgfSxcblxuICBjcmVkZW50aWFsU3RyaW5nOiBmdW5jdGlvbiBjcmVkZW50aWFsU3RyaW5nKGRhdGV0aW1lKSB7XG4gICAgcmV0dXJuIHY0Q3JlZGVudGlhbHMuY3JlYXRlU2NvcGUoXG4gICAgICBkYXRldGltZS5zdWJzdHIoMCwgOCksXG4gICAgICB0aGlzLnJlcXVlc3QucmVnaW9uLFxuICAgICAgdGhpcy5zZXJ2aWNlTmFtZVxuICAgICk7XG4gIH0sXG5cbiAgaGV4RW5jb2RlZEhhc2g6IGZ1bmN0aW9uIGhhc2goc3RyaW5nKSB7XG4gICAgcmV0dXJuIEFXUy51dGlsLmNyeXB0by5zaGEyNTYoc3RyaW5nLCAnaGV4Jyk7XG4gIH0sXG5cbiAgaGV4RW5jb2RlZEJvZHlIYXNoOiBmdW5jdGlvbiBoZXhFbmNvZGVkQm9keUhhc2goKSB7XG4gICAgdmFyIHJlcXVlc3QgPSB0aGlzLnJlcXVlc3Q7XG4gICAgaWYgKHRoaXMuaXNQcmVzaWduZWQoKSAmJiB0aGlzLnNlcnZpY2VOYW1lID09PSAnczMnICYmICFyZXF1ZXN0LmJvZHkpIHtcbiAgICAgIHJldHVybiAnVU5TSUdORUQtUEFZTE9BRCc7XG4gICAgfSBlbHNlIGlmIChyZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LUNvbnRlbnQtU2hhMjU2J10pIHtcbiAgICAgIHJldHVybiByZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LUNvbnRlbnQtU2hhMjU2J107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmhleEVuY29kZWRIYXNoKHRoaXMucmVxdWVzdC5ib2R5IHx8ICcnKTtcbiAgICB9XG4gIH0sXG5cbiAgdW5zaWduYWJsZUhlYWRlcnM6IFtcbiAgICAnYXV0aG9yaXphdGlvbicsXG4gICAgJ2NvbnRlbnQtdHlwZScsXG4gICAgJ2NvbnRlbnQtbGVuZ3RoJyxcbiAgICAndXNlci1hZ2VudCcsXG4gICAgZXhwaXJlc0hlYWRlcixcbiAgICAnZXhwZWN0JyxcbiAgICAneC1hbXpuLXRyYWNlLWlkJ1xuICBdLFxuXG4gIGlzU2lnbmFibGVIZWFkZXI6IGZ1bmN0aW9uIGlzU2lnbmFibGVIZWFkZXIoa2V5KSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ3gtYW16LScpID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy51bnNpZ25hYmxlSGVhZGVycy5pbmRleE9mKGtleSkgPCAwO1xuICB9LFxuXG4gIGlzUHJlc2lnbmVkOiBmdW5jdGlvbiBpc1ByZXNpZ25lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0LmhlYWRlcnNbZXhwaXJlc0hlYWRlcl0gPyB0cnVlIDogZmFsc2U7XG4gIH1cblxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNpZ25lcnMuVjQ7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgY2FjaGVkU2VjcmV0ID0ge307XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBjYWNoZVF1ZXVlID0gW107XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBtYXhDYWNoZUVudHJpZXMgPSA1MDtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIHY0SWRlbnRpZmllciA9ICdhd3M0X3JlcXVlc3QnO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKlxuICAgKiBAcGFyYW0gZGF0ZSBbU3RyaW5nXVxuICAgKiBAcGFyYW0gcmVnaW9uIFtTdHJpbmddXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSBbU3RyaW5nXVxuICAgKiBAcmV0dXJuIFtTdHJpbmddXG4gICAqL1xuICBjcmVhdGVTY29wZTogZnVuY3Rpb24gY3JlYXRlU2NvcGUoZGF0ZSwgcmVnaW9uLCBzZXJ2aWNlTmFtZSkge1xuICAgIHJldHVybiBbXG4gICAgICBkYXRlLnN1YnN0cigwLCA4KSxcbiAgICAgIHJlZ2lvbixcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgdjRJZGVudGlmaWVyXG4gICAgXS5qb2luKCcvJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKlxuICAgKiBAcGFyYW0gY3JlZGVudGlhbHMgW0NyZWRlbnRpYWxzXVxuICAgKiBAcGFyYW0gZGF0ZSBbU3RyaW5nXVxuICAgKiBAcGFyYW0gcmVnaW9uIFtTdHJpbmddXG4gICAqIEBwYXJhbSBzZXJ2aWNlIFtTdHJpbmddXG4gICAqIEBwYXJhbSBzaG91bGRDYWNoZSBbQm9vbGVhbl1cbiAgICogQHJldHVybiBbU3RyaW5nXVxuICAgKi9cbiAgZ2V0U2lnbmluZ0tleTogZnVuY3Rpb24gZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFscyxcbiAgICBkYXRlLFxuICAgIHJlZ2lvbixcbiAgICBzZXJ2aWNlLFxuICAgIHNob3VsZENhY2hlXG4gICkge1xuICAgIHZhciBjcmVkc0lkZW50aWZpZXIgPSBBV1MudXRpbC5jcnlwdG9cbiAgICAgIC5obWFjKGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQsICdiYXNlNjQnKTtcbiAgICB2YXIgY2FjaGVLZXkgPSBbY3JlZHNJZGVudGlmaWVyLCBkYXRlLCByZWdpb24sIHNlcnZpY2VdLmpvaW4oJ18nKTtcbiAgICBzaG91bGRDYWNoZSA9IHNob3VsZENhY2hlICE9PSBmYWxzZTtcbiAgICBpZiAoc2hvdWxkQ2FjaGUgJiYgKGNhY2hlS2V5IGluIGNhY2hlZFNlY3JldCkpIHtcbiAgICAgIHJldHVybiBjYWNoZWRTZWNyZXRbY2FjaGVLZXldO1xuICAgIH1cblxuICAgIHZhciBrRGF0ZSA9IEFXUy51dGlsLmNyeXB0by5obWFjKFxuICAgICAgJ0FXUzQnICsgY3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5LFxuICAgICAgZGF0ZSxcbiAgICAgICdidWZmZXInXG4gICAgKTtcbiAgICB2YXIga1JlZ2lvbiA9IEFXUy51dGlsLmNyeXB0by5obWFjKGtEYXRlLCByZWdpb24sICdidWZmZXInKTtcbiAgICB2YXIga1NlcnZpY2UgPSBBV1MudXRpbC5jcnlwdG8uaG1hYyhrUmVnaW9uLCBzZXJ2aWNlLCAnYnVmZmVyJyk7XG5cbiAgICB2YXIgc2lnbmluZ0tleSA9IEFXUy51dGlsLmNyeXB0by5obWFjKGtTZXJ2aWNlLCB2NElkZW50aWZpZXIsICdidWZmZXInKTtcbiAgICBpZiAoc2hvdWxkQ2FjaGUpIHtcbiAgICAgIGNhY2hlZFNlY3JldFtjYWNoZUtleV0gPSBzaWduaW5nS2V5O1xuICAgICAgY2FjaGVRdWV1ZS5wdXNoKGNhY2hlS2V5KTtcbiAgICAgIGlmIChjYWNoZVF1ZXVlLmxlbmd0aCA+IG1heENhY2hlRW50cmllcykge1xuICAgICAgICAvLyByZW1vdmUgdGhlIG9sZGVzdCBlbnRyeSAobm90IHRoZSBsZWFzdCByZWNlbnRseSB1c2VkKVxuICAgICAgICBkZWxldGUgY2FjaGVkU2VjcmV0W2NhY2hlUXVldWUuc2hpZnQoKV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25pbmdLZXk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKlxuICAgKiBFbXB0aWVzIHRoZSBkZXJpdmVkIHNpZ25pbmcga2V5IGNhY2hlLiBNYWRlIGF2YWlsYWJsZSBmb3IgdGVzdGluZyBwdXJwb3Nlc1xuICAgKiBvbmx5LlxuICAgKi9cbiAgZW1wdHlDYWNoZTogZnVuY3Rpb24gZW1wdHlDYWNoZSgpIHtcbiAgICBjYWNoZWRTZWNyZXQgPSB7fTtcbiAgICBjYWNoZVF1ZXVlID0gW107XG4gIH1cbn07XG4iLCJmdW5jdGlvbiBBY2NlcHRvclN0YXRlTWFjaGluZShzdGF0ZXMsIHN0YXRlKSB7XG4gIHRoaXMuY3VycmVudFN0YXRlID0gc3RhdGUgfHwgbnVsbDtcbiAgdGhpcy5zdGF0ZXMgPSBzdGF0ZXMgfHwge307XG59XG5cbkFjY2VwdG9yU3RhdGVNYWNoaW5lLnByb3RvdHlwZS5ydW5UbyA9IGZ1bmN0aW9uIHJ1blRvKGZpbmFsU3RhdGUsIGRvbmUsIGJpbmRPYmplY3QsIGlucHV0RXJyb3IpIHtcbiAgaWYgKHR5cGVvZiBmaW5hbFN0YXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaW5wdXRFcnJvciA9IGJpbmRPYmplY3Q7IGJpbmRPYmplY3QgPSBkb25lO1xuICAgIGRvbmUgPSBmaW5hbFN0YXRlOyBmaW5hbFN0YXRlID0gbnVsbDtcbiAgfVxuXG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHN0YXRlID0gc2VsZi5zdGF0ZXNbc2VsZi5jdXJyZW50U3RhdGVdO1xuICBzdGF0ZS5mbi5jYWxsKGJpbmRPYmplY3QgfHwgc2VsZiwgaW5wdXRFcnJvciwgZnVuY3Rpb24oZXJyKSB7XG4gICAgaWYgKGVycikge1xuICAgICAgaWYgKHN0YXRlLmZhaWwpIHNlbGYuY3VycmVudFN0YXRlID0gc3RhdGUuZmFpbDtcbiAgICAgIGVsc2UgcmV0dXJuIGRvbmUgPyBkb25lLmNhbGwoYmluZE9iamVjdCwgZXJyKSA6IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzdGF0ZS5hY2NlcHQpIHNlbGYuY3VycmVudFN0YXRlID0gc3RhdGUuYWNjZXB0O1xuICAgICAgZWxzZSByZXR1cm4gZG9uZSA/IGRvbmUuY2FsbChiaW5kT2JqZWN0KSA6IG51bGw7XG4gICAgfVxuICAgIGlmIChzZWxmLmN1cnJlbnRTdGF0ZSA9PT0gZmluYWxTdGF0ZSkge1xuICAgICAgcmV0dXJuIGRvbmUgPyBkb25lLmNhbGwoYmluZE9iamVjdCwgZXJyKSA6IG51bGw7XG4gICAgfVxuXG4gICAgc2VsZi5ydW5UbyhmaW5hbFN0YXRlLCBkb25lLCBiaW5kT2JqZWN0LCBlcnIpO1xuICB9KTtcbn07XG5cbkFjY2VwdG9yU3RhdGVNYWNoaW5lLnByb3RvdHlwZS5hZGRTdGF0ZSA9IGZ1bmN0aW9uIGFkZFN0YXRlKG5hbWUsIGFjY2VwdFN0YXRlLCBmYWlsU3RhdGUsIGZuKSB7XG4gIGlmICh0eXBlb2YgYWNjZXB0U3RhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmbiA9IGFjY2VwdFN0YXRlOyBhY2NlcHRTdGF0ZSA9IG51bGw7IGZhaWxTdGF0ZSA9IG51bGw7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGZhaWxTdGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZuID0gZmFpbFN0YXRlOyBmYWlsU3RhdGUgPSBudWxsO1xuICB9XG5cbiAgaWYgKCF0aGlzLmN1cnJlbnRTdGF0ZSkgdGhpcy5jdXJyZW50U3RhdGUgPSBuYW1lO1xuICB0aGlzLnN0YXRlc1tuYW1lXSA9IHsgYWNjZXB0OiBhY2NlcHRTdGF0ZSwgZmFpbDogZmFpbFN0YXRlLCBmbjogZm4gfTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEFjY2VwdG9yU3RhdGVNYWNoaW5lO1xuIiwiLyogZXNsaW50IGd1YXJkLWZvci1pbjowICovXG52YXIgQVdTO1xuXG4vKipcbiAqIEEgc2V0IG9mIHV0aWxpdHkgbWV0aG9kcyBmb3IgdXNlIHdpdGggdGhlIEFXUyBTREsuXG4gKlxuICogQCFhdHRyaWJ1dGUgYWJvcnRcbiAqICAgUmV0dXJuIHRoaXMgdmFsdWUgZnJvbSBhbiBpdGVyYXRvciBmdW5jdGlvbiB7ZWFjaH0gb3Ige2FycmF5RWFjaH1cbiAqICAgdG8gYnJlYWsgb3V0IG9mIHRoZSBpdGVyYXRpb24uXG4gKiAgIEBleGFtcGxlIEJyZWFraW5nIG91dCBvZiBhbiBpdGVyYXRvciBmdW5jdGlvblxuICogICAgIEFXUy51dGlsLmVhY2goe2E6IDEsIGI6IDIsIGM6IDN9LCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gKiAgICAgICBpZiAoa2V5ID09ICdiJykgcmV0dXJuIEFXUy51dGlsLmFib3J0O1xuICogICAgIH0pO1xuICogICBAc2VlIGVhY2hcbiAqICAgQHNlZSBhcnJheUVhY2hcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgdXRpbCA9IHtcbiAgZW52aXJvbm1lbnQ6ICdub2RlanMnLFxuICBlbmdpbmU6IGZ1bmN0aW9uIGVuZ2luZSgpIHtcbiAgICBpZiAodXRpbC5pc0Jyb3dzZXIoKSAmJiB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBlbmdpbmUgPSBwcm9jZXNzLnBsYXRmb3JtICsgJy8nICsgcHJvY2Vzcy52ZXJzaW9uO1xuICAgICAgaWYgKHByb2Nlc3MuZW52LkFXU19FWEVDVVRJT05fRU5WKSB7XG4gICAgICAgIGVuZ2luZSArPSAnIGV4ZWMtZW52LycgKyBwcm9jZXNzLmVudi5BV1NfRVhFQ1VUSU9OX0VOVjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbmdpbmU7XG4gICAgfVxuICB9LFxuXG4gIHVzZXJBZ2VudDogZnVuY3Rpb24gdXNlckFnZW50KCkge1xuICAgIHZhciBuYW1lID0gdXRpbC5lbnZpcm9ubWVudDtcbiAgICB2YXIgYWdlbnQgPSAnYXdzLXNkay0nICsgbmFtZSArICcvJyArIHJlcXVpcmUoJy4vY29yZScpLlZFUlNJT047XG4gICAgaWYgKG5hbWUgPT09ICdub2RlanMnKSBhZ2VudCArPSAnICcgKyB1dGlsLmVuZ2luZSgpO1xuICAgIHJldHVybiBhZ2VudDtcbiAgfSxcblxuICBpc0Jyb3dzZXI6IGZ1bmN0aW9uIGlzQnJvd3NlcigpIHsgcmV0dXJuIHByb2Nlc3MgJiYgcHJvY2Vzcy5icm93c2VyOyB9LFxuICBpc05vZGU6IGZ1bmN0aW9uIGlzTm9kZSgpIHsgcmV0dXJuICF1dGlsLmlzQnJvd3NlcigpOyB9LFxuICB1cmlFc2NhcGU6IGZ1bmN0aW9uIHVyaUVzY2FwZShzdHJpbmcpIHtcbiAgICB2YXIgb3V0cHV0ID0gZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZyk7XG4gICAgb3V0cHV0ID0gb3V0cHV0LnJlcGxhY2UoL1teQS1aYS16MC05Xy5+XFwtJV0rL2csIGVzY2FwZSk7XG5cbiAgICAvLyBBV1MgcGVyY2VudC1lbmNvZGVzIHNvbWUgZXh0cmEgbm9uLXN0YW5kYXJkIGNoYXJhY3RlcnMgaW4gYSBVUklcbiAgICBvdXRwdXQgPSBvdXRwdXQucmVwbGFjZSgvWypdL2csIGZ1bmN0aW9uKGNoKSB7XG4gICAgICByZXR1cm4gJyUnICsgY2guY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBvdXRwdXQ7XG4gIH0sXG5cbiAgdXJpRXNjYXBlUGF0aDogZnVuY3Rpb24gdXJpRXNjYXBlUGF0aChzdHJpbmcpIHtcbiAgICB2YXIgcGFydHMgPSBbXTtcbiAgICB1dGlsLmFycmF5RWFjaChzdHJpbmcuc3BsaXQoJy8nKSwgZnVuY3Rpb24gKHBhcnQpIHtcbiAgICAgIHBhcnRzLnB1c2godXRpbC51cmlFc2NhcGUocGFydCkpO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJ0cy5qb2luKCcvJyk7XG4gIH0sXG5cbiAgdXJsUGFyc2U6IGZ1bmN0aW9uIHVybFBhcnNlKHVybCkge1xuICAgIHJldHVybiB1dGlsLnVybC5wYXJzZSh1cmwpO1xuICB9LFxuXG4gIHVybEZvcm1hdDogZnVuY3Rpb24gdXJsRm9ybWF0KHVybCkge1xuICAgIHJldHVybiB1dGlsLnVybC5mb3JtYXQodXJsKTtcbiAgfSxcblxuICBxdWVyeVN0cmluZ1BhcnNlOiBmdW5jdGlvbiBxdWVyeVN0cmluZ1BhcnNlKHFzKSB7XG4gICAgcmV0dXJuIHV0aWwucXVlcnlzdHJpbmcucGFyc2UocXMpO1xuICB9LFxuXG4gIHF1ZXJ5UGFyYW1zVG9TdHJpbmc6IGZ1bmN0aW9uIHF1ZXJ5UGFyYW1zVG9TdHJpbmcocGFyYW1zKSB7XG4gICAgdmFyIGl0ZW1zID0gW107XG4gICAgdmFyIGVzY2FwZSA9IHV0aWwudXJpRXNjYXBlO1xuICAgIHZhciBzb3J0ZWRLZXlzID0gT2JqZWN0LmtleXMocGFyYW1zKS5zb3J0KCk7XG5cbiAgICB1dGlsLmFycmF5RWFjaChzb3J0ZWRLZXlzLCBmdW5jdGlvbihuYW1lKSB7XG4gICAgICB2YXIgdmFsdWUgPSBwYXJhbXNbbmFtZV07XG4gICAgICB2YXIgZW5hbWUgPSBlc2NhcGUobmFtZSk7XG4gICAgICB2YXIgcmVzdWx0ID0gZW5hbWUgKyAnPSc7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdmFyIHZhbHMgPSBbXTtcbiAgICAgICAgdXRpbC5hcnJheUVhY2godmFsdWUsIGZ1bmN0aW9uKGl0ZW0pIHsgdmFscy5wdXNoKGVzY2FwZShpdGVtKSk7IH0pO1xuICAgICAgICByZXN1bHQgPSBlbmFtZSArICc9JyArIHZhbHMuc29ydCgpLmpvaW4oJyYnICsgZW5hbWUgKyAnPScpO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJlc3VsdCA9IGVuYW1lICsgJz0nICsgZXNjYXBlKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGl0ZW1zLnB1c2gocmVzdWx0KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBpdGVtcy5qb2luKCcmJyk7XG4gIH0sXG5cbiAgcmVhZEZpbGVTeW5jOiBmdW5jdGlvbiByZWFkRmlsZVN5bmMocGF0aCkge1xuICAgIGlmICh1dGlsLmlzQnJvd3NlcigpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gcmVxdWlyZSgnZnMnKS5yZWFkRmlsZVN5bmMocGF0aCwgJ3V0Zi04Jyk7XG4gIH0sXG5cbiAgYmFzZTY0OiB7XG4gICAgZW5jb2RlOiBmdW5jdGlvbiBlbmNvZGU2NChzdHJpbmcpIHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyaW5nID09PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyB1dGlsLmVycm9yKG5ldyBFcnJvcignQ2Fubm90IGJhc2U2NCBlbmNvZGUgbnVtYmVyICcgKyBzdHJpbmcpKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdHJpbmcgPT09IG51bGwgfHwgdHlwZW9mIHN0cmluZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHZhciBidWYgPSAodHlwZW9mIHV0aWwuQnVmZmVyLmZyb20gPT09ICdmdW5jdGlvbicgJiYgdXRpbC5CdWZmZXIuZnJvbSAhPT0gVWludDhBcnJheS5mcm9tKSA/IHV0aWwuQnVmZmVyLmZyb20oc3RyaW5nKSA6IG5ldyB1dGlsLkJ1ZmZlcihzdHJpbmcpO1xuICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgfSxcblxuICAgIGRlY29kZTogZnVuY3Rpb24gZGVjb2RlNjQoc3RyaW5nKSB7XG4gICAgICBpZiAodHlwZW9mIHN0cmluZyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgdXRpbC5lcnJvcihuZXcgRXJyb3IoJ0Nhbm5vdCBiYXNlNjQgZGVjb2RlIG51bWJlciAnICsgc3RyaW5nKSk7XG4gICAgICB9XG4gICAgICBpZiAoc3RyaW5nID09PSBudWxsIHx8IHR5cGVvZiBzdHJpbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICB9XG4gICAgICByZXR1cm4gKHR5cGVvZiB1dGlsLkJ1ZmZlci5mcm9tID09PSAnZnVuY3Rpb24nICYmIHV0aWwuQnVmZmVyLmZyb20gIT09IFVpbnQ4QXJyYXkuZnJvbSkgPyB1dGlsLkJ1ZmZlci5mcm9tKHN0cmluZywgJ2Jhc2U2NCcpIDogbmV3IHV0aWwuQnVmZmVyKHN0cmluZywgJ2Jhc2U2NCcpO1xuICAgIH1cblxuICB9LFxuXG4gIGJ1ZmZlcjoge1xuICAgIHRvU3RyZWFtOiBmdW5jdGlvbiB0b1N0cmVhbShidWZmZXIpIHtcbiAgICAgIGlmICghdXRpbC5CdWZmZXIuaXNCdWZmZXIoYnVmZmVyKSkgYnVmZmVyID0gbmV3IHV0aWwuQnVmZmVyKGJ1ZmZlcik7XG5cbiAgICAgIHZhciByZWFkYWJsZSA9IG5ldyAodXRpbC5zdHJlYW0uUmVhZGFibGUpKCk7XG4gICAgICB2YXIgcG9zID0gMDtcbiAgICAgIHJlYWRhYmxlLl9yZWFkID0gZnVuY3Rpb24oc2l6ZSkge1xuICAgICAgICBpZiAocG9zID49IGJ1ZmZlci5sZW5ndGgpIHJldHVybiByZWFkYWJsZS5wdXNoKG51bGwpO1xuXG4gICAgICAgIHZhciBlbmQgPSBwb3MgKyBzaXplO1xuICAgICAgICBpZiAoZW5kID4gYnVmZmVyLmxlbmd0aCkgZW5kID0gYnVmZmVyLmxlbmd0aDtcbiAgICAgICAgcmVhZGFibGUucHVzaChidWZmZXIuc2xpY2UocG9zLCBlbmQpKTtcbiAgICAgICAgcG9zID0gZW5kO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlYWRhYmxlO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDb25jYXRlbmF0ZXMgYSBsaXN0IG9mIEJ1ZmZlciBvYmplY3RzLlxuICAgICAqL1xuICAgIGNvbmNhdDogZnVuY3Rpb24oYnVmZmVycykge1xuICAgICAgdmFyIGxlbmd0aCA9IDAsXG4gICAgICAgICAgb2Zmc2V0ID0gMCxcbiAgICAgICAgICBidWZmZXIgPSBudWxsLCBpO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgYnVmZmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZW5ndGggKz0gYnVmZmVyc1tpXS5sZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGJ1ZmZlciA9IG5ldyB1dGlsLkJ1ZmZlcihsZW5ndGgpO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgYnVmZmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBidWZmZXJzW2ldLmNvcHkoYnVmZmVyLCBvZmZzZXQpO1xuICAgICAgICBvZmZzZXQgKz0gYnVmZmVyc1tpXS5sZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBidWZmZXI7XG4gICAgfVxuICB9LFxuXG4gIHN0cmluZzoge1xuICAgIGJ5dGVMZW5ndGg6IGZ1bmN0aW9uIGJ5dGVMZW5ndGgoc3RyaW5nKSB7XG4gICAgICBpZiAoc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gMDtcbiAgICAgIGlmICh0eXBlb2Ygc3RyaW5nID09PSAnc3RyaW5nJykgc3RyaW5nID0gbmV3IHV0aWwuQnVmZmVyKHN0cmluZyk7XG5cbiAgICAgIGlmICh0eXBlb2Ygc3RyaW5nLmJ5dGVMZW5ndGggPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcuYnl0ZUxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0cmluZy5sZW5ndGggPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcubGVuZ3RoO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RyaW5nLnNpemUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmcuc2l6ZTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0cmluZy5wYXRoID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gcmVxdWlyZSgnZnMnKS5sc3RhdFN5bmMoc3RyaW5nLnBhdGgpLnNpemU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyB1dGlsLmVycm9yKG5ldyBFcnJvcignQ2Fubm90IGRldGVybWluZSBsZW5ndGggb2YgJyArIHN0cmluZyksXG4gICAgICAgICAgeyBvYmplY3Q6IHN0cmluZyB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgdXBwZXJGaXJzdDogZnVuY3Rpb24gdXBwZXJGaXJzdChzdHJpbmcpIHtcbiAgICAgIHJldHVybiBzdHJpbmdbMF0udG9VcHBlckNhc2UoKSArIHN0cmluZy5zdWJzdHIoMSk7XG4gICAgfSxcblxuICAgIGxvd2VyRmlyc3Q6IGZ1bmN0aW9uIGxvd2VyRmlyc3Qoc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nWzBdLnRvTG93ZXJDYXNlKCkgKyBzdHJpbmcuc3Vic3RyKDEpO1xuICAgIH1cbiAgfSxcblxuICBpbmk6IHtcbiAgICBwYXJzZTogZnVuY3Rpb24gc3RyaW5nKGluaSkge1xuICAgICAgdmFyIGN1cnJlbnRTZWN0aW9uLCBtYXAgPSB7fTtcbiAgICAgIHV0aWwuYXJyYXlFYWNoKGluaS5zcGxpdCgvXFxyP1xcbi8pLCBmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIGxpbmUgPSBsaW5lLnNwbGl0KC8oXnxcXHMpWzsjXS8pWzBdOyAvLyByZW1vdmUgY29tbWVudHNcbiAgICAgICAgdmFyIHNlY3Rpb24gPSBsaW5lLm1hdGNoKC9eXFxzKlxcWyhbXlxcW1xcXV0rKVxcXVxccyokLyk7XG4gICAgICAgIGlmIChzZWN0aW9uKSB7XG4gICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uWzFdO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRTZWN0aW9uKSB7XG4gICAgICAgICAgdmFyIGl0ZW0gPSBsaW5lLm1hdGNoKC9eXFxzKiguKz8pXFxzKj1cXHMqKC4rPylcXHMqJC8pO1xuICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICBtYXBbY3VycmVudFNlY3Rpb25dID0gbWFwW2N1cnJlbnRTZWN0aW9uXSB8fCB7fTtcbiAgICAgICAgICAgIG1hcFtjdXJyZW50U2VjdGlvbl1baXRlbVsxXV0gPSBpdGVtWzJdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBtYXA7XG4gICAgfVxuICB9LFxuXG4gIGZuOiB7XG4gICAgbm9vcDogZnVuY3Rpb24oKSB7fSxcblxuICAgIC8qKlxuICAgICAqIFR1cm4gYSBzeW5jaHJvbm91cyBmdW5jdGlvbiBpbnRvIGFzIFwiYXN5bmNcIiBmdW5jdGlvbiBieSBtYWtpbmcgaXQgY2FsbFxuICAgICAqIGEgY2FsbGJhY2suIFRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIGFsbCBidXQgdGhlIGxhc3QgYXJndW1lbnQsXG4gICAgICogd2hpY2ggaXMgdHJlYXRlZCBhcyB0aGUgY2FsbGJhY2suIFRoZSBjYWxsYmFjayBpcyBwYXNzZWQgcGFzc2VkIGEgZmlyc3QgYXJndW1lbnRcbiAgICAgKiBvZiBudWxsIG9uIHN1Y2Nlc3MgdG8gbWltaWNrIHN0YW5kYXJkIG5vZGUgY2FsbGJhY2tzLlxuICAgICAqL1xuICAgIG1ha2VBc3luYzogZnVuY3Rpb24gbWFrZUFzeW5jKGZuLCBleHBlY3RlZEFyZ3MpIHtcbiAgICAgIGlmIChleHBlY3RlZEFyZ3MgJiYgZXhwZWN0ZWRBcmdzIDw9IGZuLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmdzLnBvcCgpO1xuICAgICAgICB2YXIgcmVzdWx0ID0gZm4uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogRGF0ZSBhbmQgdGltZSB1dGlsaXR5IGZ1bmN0aW9ucy5cbiAgICovXG4gIGRhdGU6IHtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4gW0RhdGVdIHRoZSBjdXJyZW50IEphdmFTY3JpcHQgZGF0ZSBvYmplY3QuIFNpbmNlIGFsbFxuICAgICAqICAgQVdTIHNlcnZpY2VzIHJlbHkgb24gdGhpcyBkYXRlIG9iamVjdCwgeW91IGNhbiBvdmVycmlkZVxuICAgICAqICAgdGhpcyBmdW5jdGlvbiB0byBwcm92aWRlIGEgc3BlY2lhbCB0aW1lIHZhbHVlIHRvIEFXUyBzZXJ2aWNlXG4gICAgICogICByZXF1ZXN0cy5cbiAgICAgKi9cbiAgICBnZXREYXRlOiBmdW5jdGlvbiBnZXREYXRlKCkge1xuICAgICAgaWYgKCFBV1MpIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xuICAgICAgaWYgKEFXUy5jb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpIHsgLy8gdXNlIG9mZnNldCB3aGVuIG5vbi16ZXJvXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIEFXUy5jb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4gW1N0cmluZ10gdGhlIGRhdGUgaW4gSVNPLTg2MDEgZm9ybWF0XG4gICAgICovXG4gICAgaXNvODYwMTogZnVuY3Rpb24gaXNvODYwMShkYXRlKSB7XG4gICAgICBpZiAoZGF0ZSA9PT0gdW5kZWZpbmVkKSB7IGRhdGUgPSB1dGlsLmRhdGUuZ2V0RGF0ZSgpOyB9XG4gICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1xcLlxcZHszfVokLywgJ1onKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQHJldHVybiBbU3RyaW5nXSB0aGUgZGF0ZSBpbiBSRkMgODIyIGZvcm1hdFxuICAgICAqL1xuICAgIHJmYzgyMjogZnVuY3Rpb24gcmZjODIyKGRhdGUpIHtcbiAgICAgIGlmIChkYXRlID09PSB1bmRlZmluZWQpIHsgZGF0ZSA9IHV0aWwuZGF0ZS5nZXREYXRlKCk7IH1cbiAgICAgIHJldHVybiBkYXRlLnRvVVRDU3RyaW5nKCk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4gW0ludGVnZXJdIHRoZSBVTklYIHRpbWVzdGFtcCB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgdGltZVxuICAgICAqL1xuICAgIHVuaXhUaW1lc3RhbXA6IGZ1bmN0aW9uIHVuaXhUaW1lc3RhbXAoZGF0ZSkge1xuICAgICAgaWYgKGRhdGUgPT09IHVuZGVmaW5lZCkgeyBkYXRlID0gdXRpbC5kYXRlLmdldERhdGUoKTsgfVxuICAgICAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIFtTdHJpbmcsbnVtYmVyLERhdGVdIGRhdGVcbiAgICAgKiBAcmV0dXJuIFtEYXRlXVxuICAgICAqL1xuICAgIGZyb206IGZ1bmN0aW9uIGZvcm1hdChkYXRlKSB7XG4gICAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlICogMTAwMCk7IC8vIHVuaXggdGltZXN0YW1wXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEdpdmVuIGEgRGF0ZSBvciBkYXRlLWxpa2UgdmFsdWUsIHRoaXMgZnVuY3Rpb24gZm9ybWF0cyB0aGVcbiAgICAgKiBkYXRlIGludG8gYSBzdHJpbmcgb2YgdGhlIHJlcXVlc3RlZCB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gW1N0cmluZyxudW1iZXIsRGF0ZV0gZGF0ZVxuICAgICAqIEBwYXJhbSBbU3RyaW5nXSBmb3JtYXR0ZXIgVmFsaWQgZm9ybWF0cyBhcmU6XG4gICAgICMgICAqICdpc284NjAxJ1xuICAgICAjICAgKiAncmZjODIyJ1xuICAgICAjICAgKiAndW5peFRpbWVzdGFtcCdcbiAgICAgKiBAcmV0dXJuIFtTdHJpbmddXG4gICAgICovXG4gICAgZm9ybWF0OiBmdW5jdGlvbiBmb3JtYXQoZGF0ZSwgZm9ybWF0dGVyKSB7XG4gICAgICBpZiAoIWZvcm1hdHRlcikgZm9ybWF0dGVyID0gJ2lzbzg2MDEnO1xuICAgICAgcmV0dXJuIHV0aWwuZGF0ZVtmb3JtYXR0ZXJdKHV0aWwuZGF0ZS5mcm9tKGRhdGUpKTtcbiAgICB9LFxuXG4gICAgcGFyc2VUaW1lc3RhbXA6IGZ1bmN0aW9uIHBhcnNlVGltZXN0YW1wKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykgeyAvLyB1bml4IHRpbWVzdGFtcCAobnVtYmVyKVxuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUgKiAxMDAwKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUubWF0Y2goL15cXGQrJC8pKSB7IC8vIHVuaXggdGltZXN0YW1wXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSAqIDEwMDApO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZS5tYXRjaCgvXlxcZHs0fS8pKSB7IC8vIGlzbzg2MDFcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUubWF0Y2goL15cXHd7M30sLykpIHsgLy8gcmZjODIyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyB1dGlsLmVycm9yKFxuICAgICAgICAgIG5ldyBFcnJvcigndW5oYW5kbGVkIHRpbWVzdGFtcCBmb3JtYXQ6ICcgKyB2YWx1ZSksXG4gICAgICAgICAge2NvZGU6ICdUaW1lc3RhbXBQYXJzZXJFcnJvcid9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfSxcblxuICBjcnlwdG86IHtcbiAgICBjcmMzMlRhYmxlOiBbXG4gICAgIDB4MDAwMDAwMDAsIDB4NzcwNzMwOTYsIDB4RUUwRTYxMkMsIDB4OTkwOTUxQkEsIDB4MDc2REM0MTksXG4gICAgIDB4NzA2QUY0OEYsIDB4RTk2M0E1MzUsIDB4OUU2NDk1QTMsIDB4MEVEQjg4MzIsIDB4NzlEQ0I4QTQsXG4gICAgIDB4RTBENUU5MUUsIDB4OTdEMkQ5ODgsIDB4MDlCNjRDMkIsIDB4N0VCMTdDQkQsIDB4RTdCODJEMDcsXG4gICAgIDB4OTBCRjFEOTEsIDB4MURCNzEwNjQsIDB4NkFCMDIwRjIsIDB4RjNCOTcxNDgsIDB4ODRCRTQxREUsXG4gICAgIDB4MUFEQUQ0N0QsIDB4NkREREU0RUIsIDB4RjRENEI1NTEsIDB4ODNEMzg1QzcsIDB4MTM2Qzk4NTYsXG4gICAgIDB4NjQ2QkE4QzAsIDB4RkQ2MkY5N0EsIDB4OEE2NUM5RUMsIDB4MTQwMTVDNEYsIDB4NjMwNjZDRDksXG4gICAgIDB4RkEwRjNENjMsIDB4OEQwODBERjUsIDB4M0I2RTIwQzgsIDB4NEM2OTEwNUUsIDB4RDU2MDQxRTQsXG4gICAgIDB4QTI2NzcxNzIsIDB4M0MwM0U0RDEsIDB4NEIwNEQ0NDcsIDB4RDIwRDg1RkQsIDB4QTUwQUI1NkIsXG4gICAgIDB4MzVCNUE4RkEsIDB4NDJCMjk4NkMsIDB4REJCQkM5RDYsIDB4QUNCQ0Y5NDAsIDB4MzJEODZDRTMsXG4gICAgIDB4NDVERjVDNzUsIDB4RENENjBEQ0YsIDB4QUJEMTNENTksIDB4MjZEOTMwQUMsIDB4NTFERTAwM0EsXG4gICAgIDB4QzhENzUxODAsIDB4QkZEMDYxMTYsIDB4MjFCNEY0QjUsIDB4NTZCM0M0MjMsIDB4Q0ZCQTk1OTksXG4gICAgIDB4QjhCREE1MEYsIDB4MjgwMkI4OUUsIDB4NUYwNTg4MDgsIDB4QzYwQ0Q5QjIsIDB4QjEwQkU5MjQsXG4gICAgIDB4MkY2RjdDODcsIDB4NTg2ODRDMTEsIDB4QzE2MTFEQUIsIDB4QjY2NjJEM0QsIDB4NzZEQzQxOTAsXG4gICAgIDB4MDFEQjcxMDYsIDB4OThEMjIwQkMsIDB4RUZENTEwMkEsIDB4NzFCMTg1ODksIDB4MDZCNkI1MUYsXG4gICAgIDB4OUZCRkU0QTUsIDB4RThCOEQ0MzMsIDB4NzgwN0M5QTIsIDB4MEYwMEY5MzQsIDB4OTYwOUE4OEUsXG4gICAgIDB4RTEwRTk4MTgsIDB4N0Y2QTBEQkIsIDB4MDg2RDNEMkQsIDB4OTE2NDZDOTcsIDB4RTY2MzVDMDEsXG4gICAgIDB4NkI2QjUxRjQsIDB4MUM2QzYxNjIsIDB4ODU2NTMwRDgsIDB4RjI2MjAwNEUsIDB4NkMwNjk1RUQsXG4gICAgIDB4MUIwMUE1N0IsIDB4ODIwOEY0QzEsIDB4RjUwRkM0NTcsIDB4NjVCMEQ5QzYsIDB4MTJCN0U5NTAsXG4gICAgIDB4OEJCRUI4RUEsIDB4RkNCOTg4N0MsIDB4NjJERDFEREYsIDB4MTVEQTJENDksIDB4OENEMzdDRjMsXG4gICAgIDB4RkJENDRDNjUsIDB4NERCMjYxNTgsIDB4M0FCNTUxQ0UsIDB4QTNCQzAwNzQsIDB4RDRCQjMwRTIsXG4gICAgIDB4NEFERkE1NDEsIDB4M0REODk1RDcsIDB4QTREMUM0NkQsIDB4RDNENkY0RkIsIDB4NDM2OUU5NkEsXG4gICAgIDB4MzQ2RUQ5RkMsIDB4QUQ2Nzg4NDYsIDB4REE2MEI4RDAsIDB4NDQwNDJENzMsIDB4MzMwMzFERTUsXG4gICAgIDB4QUEwQTRDNUYsIDB4REQwRDdDQzksIDB4NTAwNTcxM0MsIDB4MjcwMjQxQUEsIDB4QkUwQjEwMTAsXG4gICAgIDB4QzkwQzIwODYsIDB4NTc2OEI1MjUsIDB4MjA2Rjg1QjMsIDB4Qjk2NkQ0MDksIDB4Q0U2MUU0OUYsXG4gICAgIDB4NUVERUY5MEUsIDB4MjlEOUM5OTgsIDB4QjBEMDk4MjIsIDB4QzdEN0E4QjQsIDB4NTlCMzNEMTcsXG4gICAgIDB4MkVCNDBEODEsIDB4QjdCRDVDM0IsIDB4QzBCQTZDQUQsIDB4RURCODgzMjAsIDB4OUFCRkIzQjYsXG4gICAgIDB4MDNCNkUyMEMsIDB4NzRCMUQyOUEsIDB4RUFENTQ3MzksIDB4OUREMjc3QUYsIDB4MDREQjI2MTUsXG4gICAgIDB4NzNEQzE2ODMsIDB4RTM2MzBCMTIsIDB4OTQ2NDNCODQsIDB4MEQ2RDZBM0UsIDB4N0E2QTVBQTgsXG4gICAgIDB4RTQwRUNGMEIsIDB4OTMwOUZGOUQsIDB4MEEwMEFFMjcsIDB4N0QwNzlFQjEsIDB4RjAwRjkzNDQsXG4gICAgIDB4ODcwOEEzRDIsIDB4MUUwMUYyNjgsIDB4NjkwNkMyRkUsIDB4Rjc2MjU3NUQsIDB4ODA2NTY3Q0IsXG4gICAgIDB4MTk2QzM2NzEsIDB4NkU2QjA2RTcsIDB4RkVENDFCNzYsIDB4ODlEMzJCRTAsIDB4MTBEQTdBNUEsXG4gICAgIDB4NjdERDRBQ0MsIDB4RjlCOURGNkYsIDB4OEVCRUVGRjksIDB4MTdCN0JFNDMsIDB4NjBCMDhFRDUsXG4gICAgIDB4RDZENkEzRTgsIDB4QTFEMTkzN0UsIDB4MzhEOEMyQzQsIDB4NEZERkYyNTIsIDB4RDFCQjY3RjEsXG4gICAgIDB4QTZCQzU3NjcsIDB4M0ZCNTA2REQsIDB4NDhCMjM2NEIsIDB4RDgwRDJCREEsIDB4QUYwQTFCNEMsXG4gICAgIDB4MzYwMzRBRjYsIDB4NDEwNDdBNjAsIDB4REY2MEVGQzMsIDB4QTg2N0RGNTUsIDB4MzE2RThFRUYsXG4gICAgIDB4NDY2OUJFNzksIDB4Q0I2MUIzOEMsIDB4QkM2NjgzMUEsIDB4MjU2RkQyQTAsIDB4NTI2OEUyMzYsXG4gICAgIDB4Q0MwQzc3OTUsIDB4QkIwQjQ3MDMsIDB4MjIwMjE2QjksIDB4NTUwNTI2MkYsIDB4QzVCQTNCQkUsXG4gICAgIDB4QjJCRDBCMjgsIDB4MkJCNDVBOTIsIDB4NUNCMzZBMDQsIDB4QzJEN0ZGQTcsIDB4QjVEMENGMzEsXG4gICAgIDB4MkNEOTlFOEIsIDB4NUJERUFFMUQsIDB4OUI2NEMyQjAsIDB4RUM2M0YyMjYsIDB4NzU2QUEzOUMsXG4gICAgIDB4MDI2RDkzMEEsIDB4OUMwOTA2QTksIDB4RUIwRTM2M0YsIDB4NzIwNzY3ODUsIDB4MDUwMDU3MTMsXG4gICAgIDB4OTVCRjRBODIsIDB4RTJCODdBMTQsIDB4N0JCMTJCQUUsIDB4MENCNjFCMzgsIDB4OTJEMjhFOUIsXG4gICAgIDB4RTVENUJFMEQsIDB4N0NEQ0VGQjcsIDB4MEJEQkRGMjEsIDB4ODZEM0QyRDQsIDB4RjFENEUyNDIsXG4gICAgIDB4NjhEREIzRjgsIDB4MUZEQTgzNkUsIDB4ODFCRTE2Q0QsIDB4RjZCOTI2NUIsIDB4NkZCMDc3RTEsXG4gICAgIDB4MThCNzQ3NzcsIDB4ODgwODVBRTYsIDB4RkYwRjZBNzAsIDB4NjYwNjNCQ0EsIDB4MTEwMTBCNUMsXG4gICAgIDB4OEY2NTlFRkYsIDB4Rjg2MkFFNjksIDB4NjE2QkZGRDMsIDB4MTY2Q0NGNDUsIDB4QTAwQUUyNzgsXG4gICAgIDB4RDcwREQyRUUsIDB4NEUwNDgzNTQsIDB4MzkwM0IzQzIsIDB4QTc2NzI2NjEsIDB4RDA2MDE2RjcsXG4gICAgIDB4NDk2OTQ3NEQsIDB4M0U2RTc3REIsIDB4QUVEMTZBNEEsIDB4RDlENjVBREMsIDB4NDBERjBCNjYsXG4gICAgIDB4MzdEODNCRjAsIDB4QTlCQ0FFNTMsIDB4REVCQjlFQzUsIDB4NDdCMkNGN0YsIDB4MzBCNUZGRTksXG4gICAgIDB4QkRCREYyMUMsIDB4Q0FCQUMyOEEsIDB4NTNCMzkzMzAsIDB4MjRCNEEzQTYsIDB4QkFEMDM2MDUsXG4gICAgIDB4Q0RENzA2OTMsIDB4NTRERTU3MjksIDB4MjNEOTY3QkYsIDB4QjM2NjdBMkUsIDB4QzQ2MTRBQjgsXG4gICAgIDB4NUQ2ODFCMDIsIDB4MkE2RjJCOTQsIDB4QjQwQkJFMzcsIDB4QzMwQzhFQTEsIDB4NUEwNURGMUIsXG4gICAgIDB4MkQwMkVGOERdLFxuXG4gICAgY3JjMzI6IGZ1bmN0aW9uIGNyYzMyKGRhdGEpIHtcbiAgICAgIHZhciB0YmwgPSB1dGlsLmNyeXB0by5jcmMzMlRhYmxlO1xuICAgICAgdmFyIGNyYyA9IDAgXiAtMTtcblxuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRhID0gbmV3IHV0aWwuQnVmZmVyKGRhdGEpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNvZGUgPSBkYXRhLnJlYWRVSW50OChpKTtcbiAgICAgICAgY3JjID0gKGNyYyA+Pj4gOCkgXiB0YmxbKGNyYyBeIGNvZGUpICYgMHhGRl07XG4gICAgICB9XG4gICAgICByZXR1cm4gKGNyYyBeIC0xKSA+Pj4gMDtcbiAgICB9LFxuXG4gICAgaG1hYzogZnVuY3Rpb24gaG1hYyhrZXksIHN0cmluZywgZGlnZXN0LCBmbikge1xuICAgICAgaWYgKCFkaWdlc3QpIGRpZ2VzdCA9ICdiaW5hcnknO1xuICAgICAgaWYgKGRpZ2VzdCA9PT0gJ2J1ZmZlcicpIHsgZGlnZXN0ID0gdW5kZWZpbmVkOyB9XG4gICAgICBpZiAoIWZuKSBmbiA9ICdzaGEyNTYnO1xuICAgICAgaWYgKHR5cGVvZiBzdHJpbmcgPT09ICdzdHJpbmcnKSBzdHJpbmcgPSBuZXcgdXRpbC5CdWZmZXIoc3RyaW5nKTtcbiAgICAgIHJldHVybiB1dGlsLmNyeXB0by5saWIuY3JlYXRlSG1hYyhmbiwga2V5KS51cGRhdGUoc3RyaW5nKS5kaWdlc3QoZGlnZXN0KTtcbiAgICB9LFxuXG4gICAgbWQ1OiBmdW5jdGlvbiBtZDUoZGF0YSwgZGlnZXN0LCBjYWxsYmFjaykge1xuICAgICAgcmV0dXJuIHV0aWwuY3J5cHRvLmhhc2goJ21kNScsIGRhdGEsIGRpZ2VzdCwgY2FsbGJhY2spO1xuICAgIH0sXG5cbiAgICBzaGEyNTY6IGZ1bmN0aW9uIHNoYTI1NihkYXRhLCBkaWdlc3QsIGNhbGxiYWNrKSB7XG4gICAgICByZXR1cm4gdXRpbC5jcnlwdG8uaGFzaCgnc2hhMjU2JywgZGF0YSwgZGlnZXN0LCBjYWxsYmFjayk7XG4gICAgfSxcblxuICAgIGhhc2g6IGZ1bmN0aW9uKGFsZ29yaXRobSwgZGF0YSwgZGlnZXN0LCBjYWxsYmFjaykge1xuICAgICAgdmFyIGhhc2ggPSB1dGlsLmNyeXB0by5jcmVhdGVIYXNoKGFsZ29yaXRobSk7XG4gICAgICBpZiAoIWRpZ2VzdCkgeyBkaWdlc3QgPSAnYmluYXJ5JzsgfVxuICAgICAgaWYgKGRpZ2VzdCA9PT0gJ2J1ZmZlcicpIHsgZGlnZXN0ID0gdW5kZWZpbmVkOyB9XG4gICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSBkYXRhID0gbmV3IHV0aWwuQnVmZmVyKGRhdGEpO1xuICAgICAgdmFyIHNsaWNlRm4gPSB1dGlsLmFycmF5U2xpY2VGbihkYXRhKTtcbiAgICAgIHZhciBpc0J1ZmZlciA9IHV0aWwuQnVmZmVyLmlzQnVmZmVyKGRhdGEpO1xuICAgICAgLy9JZGVudGlmeWluZyBvYmplY3RzIHdpdGggYW4gQXJyYXlCdWZmZXIgYXMgYnVmZmVyc1xuICAgICAgaWYgKHV0aWwuaXNCcm93c2VyKCkgJiYgdHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBkYXRhICYmIGRhdGEuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIGlzQnVmZmVyID0gdHJ1ZTtcblxuICAgICAgaWYgKGNhbGxiYWNrICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgIHR5cGVvZiBkYXRhLm9uID09PSAnZnVuY3Rpb24nICYmICFpc0J1ZmZlcikge1xuICAgICAgICBkYXRhLm9uKCdkYXRhJywgZnVuY3Rpb24oY2h1bmspIHsgaGFzaC51cGRhdGUoY2h1bmspOyB9KTtcbiAgICAgICAgZGF0YS5vbignZXJyb3InLCBmdW5jdGlvbihlcnIpIHsgY2FsbGJhY2soZXJyKTsgfSk7XG4gICAgICAgIGRhdGEub24oJ2VuZCcsIGZ1bmN0aW9uKCkgeyBjYWxsYmFjayhudWxsLCBoYXNoLmRpZ2VzdChkaWdlc3QpKTsgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNhbGxiYWNrICYmIHNsaWNlRm4gJiYgIWlzQnVmZmVyICYmXG4gICAgICAgICAgICAgICAgIHR5cGVvZiBGaWxlUmVhZGVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAvLyB0aGlzIG1pZ2h0IGJlIGEgRmlsZS9CbG9iXG4gICAgICAgIHZhciBpbmRleCA9IDAsIHNpemUgPSAxMDI0ICogNTEyO1xuICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ0ZhaWxlZCB0byByZWFkIGRhdGEuJykpO1xuICAgICAgICB9O1xuICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGJ1ZiA9IG5ldyB1dGlsLkJ1ZmZlcihuZXcgVWludDhBcnJheShyZWFkZXIucmVzdWx0KSk7XG4gICAgICAgICAgaGFzaC51cGRhdGUoYnVmKTtcbiAgICAgICAgICBpbmRleCArPSBidWYubGVuZ3RoO1xuICAgICAgICAgIHJlYWRlci5fY29udGludWVSZWFkaW5nKCk7XG4gICAgICAgIH07XG4gICAgICAgIHJlYWRlci5fY29udGludWVSZWFkaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKGluZGV4ID49IGRhdGEuc2l6ZSkge1xuICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgaGFzaC5kaWdlc3QoZGlnZXN0KSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGJhY2sgPSBpbmRleCArIHNpemU7XG4gICAgICAgICAgaWYgKGJhY2sgPiBkYXRhLnNpemUpIGJhY2sgPSBkYXRhLnNpemU7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKHNsaWNlRm4uY2FsbChkYXRhLCBpbmRleCwgYmFjaykpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJlYWRlci5fY29udGludWVSZWFkaW5nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodXRpbC5pc0Jyb3dzZXIoKSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgIWlzQnVmZmVyKSB7XG4gICAgICAgICAgZGF0YSA9IG5ldyB1dGlsLkJ1ZmZlcihuZXcgVWludDhBcnJheShkYXRhKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG91dCA9IGhhc2gudXBkYXRlKGRhdGEpLmRpZ2VzdChkaWdlc3QpO1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKG51bGwsIG91dCk7XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgICB9XG4gICAgfSxcblxuICAgIHRvSGV4OiBmdW5jdGlvbiB0b0hleChkYXRhKSB7XG4gICAgICB2YXIgb3V0ID0gW107XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgb3V0LnB1c2goKCcwJyArIGRhdGEuY2hhckNvZGVBdChpKS50b1N0cmluZygxNikpLnN1YnN0cigtMiwgMikpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG91dC5qb2luKCcnKTtcbiAgICB9LFxuXG4gICAgY3JlYXRlSGFzaDogZnVuY3Rpb24gY3JlYXRlSGFzaChhbGdvcml0aG0pIHtcbiAgICAgIHJldHVybiB1dGlsLmNyeXB0by5saWIuY3JlYXRlSGFzaChhbGdvcml0aG0pO1xuICAgIH1cblxuICB9LFxuXG4gIC8qKiBAIWlnbm9yZSAqL1xuXG4gIC8qIEFib3J0IGNvbnN0YW50ICovXG4gIGFib3J0OiB7fSxcblxuICBlYWNoOiBmdW5jdGlvbiBlYWNoKG9iamVjdCwgaXRlckZ1bmN0aW9uKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgICAgdmFyIHJldCA9IGl0ZXJGdW5jdGlvbi5jYWxsKHRoaXMsIGtleSwgb2JqZWN0W2tleV0pO1xuICAgICAgICBpZiAocmV0ID09PSB1dGlsLmFib3J0KSBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgYXJyYXlFYWNoOiBmdW5jdGlvbiBhcnJheUVhY2goYXJyYXksIGl0ZXJGdW5jdGlvbikge1xuICAgIGZvciAodmFyIGlkeCBpbiBhcnJheSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgaWR4KSkge1xuICAgICAgICB2YXIgcmV0ID0gaXRlckZ1bmN0aW9uLmNhbGwodGhpcywgYXJyYXlbaWR4XSwgcGFyc2VJbnQoaWR4LCAxMCkpO1xuICAgICAgICBpZiAocmV0ID09PSB1dGlsLmFib3J0KSBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqMSwgb2JqMikge1xuICAgIHV0aWwuZWFjaChvYmoyLCBmdW5jdGlvbiBpdGVyYXRvcihrZXksIGl0ZW0pIHtcbiAgICAgIG9iajFba2V5XSA9IGl0ZW07XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iajE7XG4gIH0sXG5cbiAgbWVyZ2U6IGZ1bmN0aW9uIG1lcmdlKG9iajEsIG9iajIpIHtcbiAgICByZXR1cm4gdXRpbC51cGRhdGUodXRpbC5jb3B5KG9iajEpLCBvYmoyKTtcbiAgfSxcblxuICBjb3B5OiBmdW5jdGlvbiBjb3B5KG9iamVjdCkge1xuICAgIGlmIChvYmplY3QgPT09IG51bGwgfHwgb2JqZWN0ID09PSB1bmRlZmluZWQpIHJldHVybiBvYmplY3Q7XG4gICAgdmFyIGR1cGUgPSB7fTtcbiAgICAvLyBqc2hpbnQgZm9yaW46ZmFsc2VcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICBkdXBlW2tleV0gPSBvYmplY3Rba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIGR1cGU7XG4gIH0sXG5cbiAgaXNFbXB0eTogZnVuY3Rpb24gaXNFbXB0eShvYmopIHtcbiAgICBmb3IgKHZhciBwcm9wIGluIG9iaikge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG5cbiAgYXJyYXlTbGljZUZuOiBmdW5jdGlvbiBhcnJheVNsaWNlRm4ob2JqKSB7XG4gICAgdmFyIGZuID0gb2JqLnNsaWNlIHx8IG9iai53ZWJraXRTbGljZSB8fCBvYmoubW96U2xpY2U7XG4gICAgcmV0dXJuIHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJyA/IGZuIDogbnVsbDtcbiAgfSxcblxuICBpc1R5cGU6IGZ1bmN0aW9uIGlzVHlwZShvYmosIHR5cGUpIHtcbiAgICAvLyBoYW5kbGUgY3Jvc3MtXCJmcmFtZVwiIG9iamVjdHNcbiAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHR5cGUgPSB1dGlsLnR5cGVOYW1lKHR5cGUpO1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gJ1tvYmplY3QgJyArIHR5cGUgKyAnXSc7XG4gIH0sXG5cbiAgdHlwZU5hbWU6IGZ1bmN0aW9uIHR5cGVOYW1lKHR5cGUpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUsICduYW1lJykpIHJldHVybiB0eXBlLm5hbWU7XG4gICAgdmFyIHN0ciA9IHR5cGUudG9TdHJpbmcoKTtcbiAgICB2YXIgbWF0Y2ggPSBzdHIubWF0Y2goL15cXHMqZnVuY3Rpb24gKC4rKVxcKC8pO1xuICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogc3RyO1xuICB9LFxuXG4gIGVycm9yOiBmdW5jdGlvbiBlcnJvcihlcnIsIG9wdGlvbnMpIHtcbiAgICB2YXIgb3JpZ2luYWxFcnJvciA9IG51bGw7XG4gICAgaWYgKHR5cGVvZiBlcnIubWVzc2FnZSA9PT0gJ3N0cmluZycgJiYgZXJyLm1lc3NhZ2UgIT09ICcnKSB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnIHx8IChvcHRpb25zICYmIG9wdGlvbnMubWVzc2FnZSkpIHtcbiAgICAgICAgb3JpZ2luYWxFcnJvciA9IHV0aWwuY29weShlcnIpO1xuICAgICAgICBvcmlnaW5hbEVycm9yLm1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZXJyLm1lc3NhZ2UgPSBlcnIubWVzc2FnZSB8fCBudWxsO1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyLm1lc3NhZ2UgPSBvcHRpb25zO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnICYmIG9wdGlvbnMgIT09IG51bGwpIHtcbiAgICAgIHV0aWwudXBkYXRlKGVyciwgb3B0aW9ucyk7XG4gICAgICBpZiAob3B0aW9ucy5tZXNzYWdlKVxuICAgICAgICBlcnIubWVzc2FnZSA9IG9wdGlvbnMubWVzc2FnZTtcbiAgICAgIGlmIChvcHRpb25zLmNvZGUgfHwgb3B0aW9ucy5uYW1lKVxuICAgICAgICBlcnIuY29kZSA9IG9wdGlvbnMuY29kZSB8fCBvcHRpb25zLm5hbWU7XG4gICAgICBpZiAob3B0aW9ucy5zdGFjaylcbiAgICAgICAgZXJyLnN0YWNrID0gb3B0aW9ucy5zdGFjaztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVyciwgJ25hbWUnLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IGZhbHNlfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyLCAnbWVzc2FnZScsIHtlbnVtZXJhYmxlOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgZXJyLm5hbWUgPSBvcHRpb25zICYmIG9wdGlvbnMubmFtZSB8fCBlcnIubmFtZSB8fCBlcnIuY29kZSB8fCAnRXJyb3InO1xuICAgIGVyci50aW1lID0gbmV3IERhdGUoKTtcblxuICAgIGlmIChvcmlnaW5hbEVycm9yKSBlcnIub3JpZ2luYWxFcnJvciA9IG9yaWdpbmFsRXJyb3I7XG5cbiAgICByZXR1cm4gZXJyO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGluaGVyaXQ6IGZ1bmN0aW9uIGluaGVyaXQoa2xhc3MsIGZlYXR1cmVzKSB7XG4gICAgdmFyIG5ld09iamVjdCA9IG51bGw7XG4gICAgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGZlYXR1cmVzID0ga2xhc3M7XG4gICAgICBrbGFzcyA9IE9iamVjdDtcbiAgICAgIG5ld09iamVjdCA9IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY3RvciA9IGZ1bmN0aW9uIENvbnN0cnVjdG9yV3JhcHBlcigpIHt9O1xuICAgICAgY3Rvci5wcm90b3R5cGUgPSBrbGFzcy5wcm90b3R5cGU7XG4gICAgICBuZXdPYmplY3QgPSBuZXcgY3RvcigpO1xuICAgIH1cblxuICAgIC8vIGNvbnN0cnVjdG9yIG5vdCBzdXBwbGllZCwgY3JlYXRlIHBhc3MtdGhyb3VnaCBjdG9yXG4gICAgaWYgKGZlYXR1cmVzLmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcbiAgICAgIGZlYXR1cmVzLmNvbnN0cnVjdG9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmIChrbGFzcyAhPT0gT2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGtsYXNzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgZmVhdHVyZXMuY29uc3RydWN0b3IucHJvdG90eXBlID0gbmV3T2JqZWN0O1xuICAgIHV0aWwudXBkYXRlKGZlYXR1cmVzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwgZmVhdHVyZXMpO1xuICAgIGZlYXR1cmVzLmNvbnN0cnVjdG9yLl9fc3VwZXJfXyA9IGtsYXNzO1xuICAgIHJldHVybiBmZWF0dXJlcy5jb25zdHJ1Y3RvcjtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBtaXhpbjogZnVuY3Rpb24gbWl4aW4oKSB7XG4gICAgdmFyIGtsYXNzID0gYXJndW1lbnRzWzBdO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBqc2hpbnQgZm9yaW46ZmFsc2VcbiAgICAgIGZvciAodmFyIHByb3AgaW4gYXJndW1lbnRzW2ldLnByb3RvdHlwZSkge1xuICAgICAgICB2YXIgZm4gPSBhcmd1bWVudHNbaV0ucHJvdG90eXBlW3Byb3BdO1xuICAgICAgICBpZiAocHJvcCAhPT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgICAgIGtsYXNzLnByb3RvdHlwZVtwcm9wXSA9IGZuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBrbGFzcztcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBoaWRlUHJvcGVydGllczogZnVuY3Rpb24gaGlkZVByb3BlcnRpZXMob2JqLCBwcm9wcykge1xuICAgIGlmICh0eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnR5ICE9PSAnZnVuY3Rpb24nKSByZXR1cm47XG5cbiAgICB1dGlsLmFycmF5RWFjaChwcm9wcywgZnVuY3Rpb24gKGtleSkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHByb3BlcnR5OiBmdW5jdGlvbiBwcm9wZXJ0eShvYmosIG5hbWUsIHZhbHVlLCBlbnVtZXJhYmxlLCBpc1ZhbHVlKSB7XG4gICAgdmFyIG9wdHMgPSB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiBlbnVtZXJhYmxlICE9PSB1bmRlZmluZWQgPyBlbnVtZXJhYmxlIDogdHJ1ZVxuICAgIH07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJiAhaXNWYWx1ZSkge1xuICAgICAgb3B0cy5nZXQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBvcHRzLnZhbHVlID0gdmFsdWU7IG9wdHMud3JpdGFibGUgPSB0cnVlO1xuICAgIH1cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIG5hbWUsIG9wdHMpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG1lbW9pemVkUHJvcGVydHk6IGZ1bmN0aW9uIG1lbW9pemVkUHJvcGVydHkob2JqLCBuYW1lLCBnZXQsIGVudW1lcmFibGUpIHtcbiAgICB2YXIgY2FjaGVkVmFsdWUgPSBudWxsO1xuXG4gICAgLy8gYnVpbGQgZW51bWVyYWJsZSBhdHRyaWJ1dGUgZm9yIGVhY2ggdmFsdWUgd2l0aCBsYXp5IGFjY2Vzc29yLlxuICAgIHV0aWwucHJvcGVydHkob2JqLCBuYW1lLCBmdW5jdGlvbigpIHtcbiAgICAgIGlmIChjYWNoZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICBjYWNoZWRWYWx1ZSA9IGdldCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNhY2hlZFZhbHVlO1xuICAgIH0sIGVudW1lcmFibGUpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUT0RPIFJlbW92ZSBpbiBtYWpvciB2ZXJzaW9uIHJldmlzaW9uXG4gICAqIFRoaXMgYmFja2ZpbGwgcG9wdWxhdGVzIHJlc3BvbnNlIGRhdGEgd2l0aG91dCB0aGVcbiAgICogdG9wLWxldmVsIHBheWxvYWQgbmFtZS5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBob2lzdFBheWxvYWRNZW1iZXI6IGZ1bmN0aW9uIGhvaXN0UGF5bG9hZE1lbWJlcihyZXNwKSB7XG4gICAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgICB2YXIgb3BlcmF0aW9uTmFtZSA9IHJlcS5vcGVyYXRpb247XG4gICAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW29wZXJhdGlvbk5hbWVdO1xuICAgIHZhciBvdXRwdXQgPSBvcGVyYXRpb24ub3V0cHV0O1xuICAgIGlmIChvdXRwdXQucGF5bG9hZCAmJiAhb3BlcmF0aW9uLmhhc0V2ZW50T3V0cHV0KSB7XG4gICAgICB2YXIgcGF5bG9hZE1lbWJlciA9IG91dHB1dC5tZW1iZXJzW291dHB1dC5wYXlsb2FkXTtcbiAgICAgIHZhciByZXNwb25zZVBheWxvYWQgPSByZXNwLmRhdGFbb3V0cHV0LnBheWxvYWRdO1xuICAgICAgaWYgKHBheWxvYWRNZW1iZXIudHlwZSA9PT0gJ3N0cnVjdHVyZScpIHtcbiAgICAgICAgdXRpbC5lYWNoKHJlc3BvbnNlUGF5bG9hZCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgIHV0aWwucHJvcGVydHkocmVzcC5kYXRhLCBrZXksIHZhbHVlLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQ29tcHV0ZSBTSEEtMjU2IGNoZWNrc3VtcyBvZiBzdHJlYW1zXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY29tcHV0ZVNoYTI1NjogZnVuY3Rpb24gY29tcHV0ZVNoYTI1Nihib2R5LCBkb25lKSB7XG4gICAgaWYgKHV0aWwuaXNOb2RlKCkpIHtcbiAgICAgIHZhciBTdHJlYW0gPSB1dGlsLnN0cmVhbS5TdHJlYW07XG4gICAgICB2YXIgZnMgPSByZXF1aXJlKCdmcycpO1xuICAgICAgaWYgKGJvZHkgaW5zdGFuY2VvZiBTdHJlYW0pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBib2R5LnBhdGggPT09ICdzdHJpbmcnKSB7IC8vIGFzc3VtZSBmaWxlIG9iamVjdFxuICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHt9O1xuICAgICAgICAgIGlmICh0eXBlb2YgYm9keS5zdGFydCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHNldHRpbmdzLnN0YXJ0ID0gYm9keS5zdGFydDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiBib2R5LmVuZCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHNldHRpbmdzLmVuZCA9IGJvZHkuZW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgICBib2R5ID0gZnMuY3JlYXRlUmVhZFN0cmVhbShib2R5LnBhdGgsIHNldHRpbmdzKTtcbiAgICAgICAgfSBlbHNlIHsgLy8gVE9ETyBzdXBwb3J0IG90aGVyIHN0cmVhbSB0eXBlc1xuICAgICAgICAgIHJldHVybiBkb25lKG5ldyBFcnJvcignTm9uLWZpbGUgc3RyZWFtIG9iamVjdHMgYXJlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm90IHN1cHBvcnRlZCB3aXRoIFNpZ1Y0JykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdXRpbC5jcnlwdG8uc2hhMjU2KGJvZHksICdoZXgnLCBmdW5jdGlvbihlcnIsIHNoYSkge1xuICAgICAgaWYgKGVycikgZG9uZShlcnIpO1xuICAgICAgZWxzZSBkb25lKG51bGwsIHNoYSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaXNDbG9ja1NrZXdlZDogZnVuY3Rpb24gaXNDbG9ja1NrZXdlZChzZXJ2ZXJUaW1lKSB7XG4gICAgaWYgKHNlcnZlclRpbWUpIHtcbiAgICAgIHV0aWwucHJvcGVydHkoQVdTLmNvbmZpZywgJ2lzQ2xvY2tTa2V3ZWQnLFxuICAgICAgICBNYXRoLmFicyhuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHNlcnZlclRpbWUpID49IDMwMDAwMCwgZmFsc2UpO1xuICAgICAgcmV0dXJuIEFXUy5jb25maWcuaXNDbG9ja1NrZXdlZDtcbiAgICB9XG4gIH0sXG5cbiAgYXBwbHlDbG9ja09mZnNldDogZnVuY3Rpb24gYXBwbHlDbG9ja09mZnNldChzZXJ2ZXJUaW1lKSB7XG4gICAgaWYgKHNlcnZlclRpbWUpXG4gICAgICBBV1MuY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0ID0gc2VydmVyVGltZSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGV4dHJhY3RSZXF1ZXN0SWQ6IGZ1bmN0aW9uIGV4dHJhY3RSZXF1ZXN0SWQocmVzcCkge1xuICAgIHZhciByZXF1ZXN0SWQgPSByZXNwLmh0dHBSZXNwb25zZS5oZWFkZXJzWyd4LWFtei1yZXF1ZXN0LWlkJ10gfHxcbiAgICAgICAgICAgICAgICAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnNbJ3gtYW16bi1yZXF1ZXN0aWQnXTtcblxuICAgIGlmICghcmVxdWVzdElkICYmIHJlc3AuZGF0YSAmJiByZXNwLmRhdGEuUmVzcG9uc2VNZXRhZGF0YSkge1xuICAgICAgcmVxdWVzdElkID0gcmVzcC5kYXRhLlJlc3BvbnNlTWV0YWRhdGEuUmVxdWVzdElkO1xuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0SWQpIHtcbiAgICAgIHJlc3AucmVxdWVzdElkID0gcmVxdWVzdElkO1xuICAgIH1cblxuICAgIGlmIChyZXNwLmVycm9yKSB7XG4gICAgICByZXNwLmVycm9yLnJlcXVlc3RJZCA9IHJlcXVlc3RJZDtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYWRkUHJvbWlzZXM6IGZ1bmN0aW9uIGFkZFByb21pc2VzKGNvbnN0cnVjdG9ycywgUHJvbWlzZURlcGVuZGVuY3kpIHtcbiAgICBpZiAoUHJvbWlzZURlcGVuZGVuY3kgPT09IHVuZGVmaW5lZCAmJiBBV1MgJiYgQVdTLmNvbmZpZykge1xuICAgICAgUHJvbWlzZURlcGVuZGVuY3kgPSBBV1MuY29uZmlnLmdldFByb21pc2VzRGVwZW5kZW5jeSgpO1xuICAgIH1cbiAgICBpZiAoUHJvbWlzZURlcGVuZGVuY3kgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIFByb21pc2VEZXBlbmRlbmN5ID0gUHJvbWlzZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBQcm9taXNlRGVwZW5kZW5jeSAhPT0gJ2Z1bmN0aW9uJykgdmFyIGRlbGV0ZVByb21pc2VzID0gdHJ1ZTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29uc3RydWN0b3JzKSkgY29uc3RydWN0b3JzID0gW2NvbnN0cnVjdG9yc107XG5cbiAgICBmb3IgKHZhciBpbmQgPSAwOyBpbmQgPCBjb25zdHJ1Y3RvcnMubGVuZ3RoOyBpbmQrKykge1xuICAgICAgdmFyIGNvbnN0cnVjdG9yID0gY29uc3RydWN0b3JzW2luZF07XG4gICAgICBpZiAoZGVsZXRlUHJvbWlzZXMpIHtcbiAgICAgICAgaWYgKGNvbnN0cnVjdG9yLmRlbGV0ZVByb21pc2VzRnJvbUNsYXNzKSB7XG4gICAgICAgICAgY29uc3RydWN0b3IuZGVsZXRlUHJvbWlzZXNGcm9tQ2xhc3MoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjb25zdHJ1Y3Rvci5hZGRQcm9taXNlc1RvQ2xhc3MpIHtcbiAgICAgICAgY29uc3RydWN0b3IuYWRkUHJvbWlzZXNUb0NsYXNzKFByb21pc2VEZXBlbmRlbmN5KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcHJvbWlzaWZ5TWV0aG9kOiBmdW5jdGlvbiBwcm9taXNpZnlNZXRob2QobWV0aG9kTmFtZSwgUHJvbWlzZURlcGVuZGVuY3kpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gcHJvbWlzZSgpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZURlcGVuZGVuY3koZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHNlbGZbbWV0aG9kTmFtZV0oZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaXNEdWFsc3RhY2tBdmFpbGFibGU6IGZ1bmN0aW9uIGlzRHVhbHN0YWNrQXZhaWxhYmxlKHNlcnZpY2UpIHtcbiAgICBpZiAoIXNlcnZpY2UpIHJldHVybiBmYWxzZTtcbiAgICB2YXIgbWV0YWRhdGEgPSByZXF1aXJlKCcuLi9hcGlzL21ldGFkYXRhLmpzb24nKTtcbiAgICBpZiAodHlwZW9mIHNlcnZpY2UgIT09ICdzdHJpbmcnKSBzZXJ2aWNlID0gc2VydmljZS5zZXJ2aWNlSWRlbnRpZmllcjtcbiAgICBpZiAodHlwZW9mIHNlcnZpY2UgIT09ICdzdHJpbmcnIHx8ICFtZXRhZGF0YS5oYXNPd25Qcm9wZXJ0eShzZXJ2aWNlKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAhIW1ldGFkYXRhW3NlcnZpY2VdLmR1YWxzdGFja0F2YWlsYWJsZTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjYWxjdWxhdGVSZXRyeURlbGF5OiBmdW5jdGlvbiBjYWxjdWxhdGVSZXRyeURlbGF5KHJldHJ5Q291bnQsIHJldHJ5RGVsYXlPcHRpb25zKSB7XG4gICAgaWYgKCFyZXRyeURlbGF5T3B0aW9ucykgcmV0cnlEZWxheU9wdGlvbnMgPSB7fTtcbiAgICB2YXIgY3VzdG9tQmFja29mZiA9IHJldHJ5RGVsYXlPcHRpb25zLmN1c3RvbUJhY2tvZmYgfHwgbnVsbDtcbiAgICBpZiAodHlwZW9mIGN1c3RvbUJhY2tvZmYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBjdXN0b21CYWNrb2ZmKHJldHJ5Q291bnQpO1xuICAgIH1cbiAgICB2YXIgYmFzZSA9IHR5cGVvZiByZXRyeURlbGF5T3B0aW9ucy5iYXNlID09PSAnbnVtYmVyJyA/IHJldHJ5RGVsYXlPcHRpb25zLmJhc2UgOiAxMDA7XG4gICAgdmFyIGRlbGF5ID0gTWF0aC5yYW5kb20oKSAqIChNYXRoLnBvdygyLCByZXRyeUNvdW50KSAqIGJhc2UpO1xuICAgIHJldHVybiBkZWxheTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBoYW5kbGVSZXF1ZXN0V2l0aFJldHJpZXM6IGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3RXaXRoUmV0cmllcyhodHRwUmVxdWVzdCwgb3B0aW9ucywgY2IpIHtcbiAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcbiAgICB2YXIgaHR0cCA9IEFXUy5IdHRwQ2xpZW50LmdldEluc3RhbmNlKCk7XG4gICAgdmFyIGh0dHBPcHRpb25zID0gb3B0aW9ucy5odHRwT3B0aW9ucyB8fCB7fTtcbiAgICB2YXIgcmV0cnlDb3VudCA9IDA7XG5cbiAgICB2YXIgZXJyQ2FsbGJhY2sgPSBmdW5jdGlvbihlcnIpIHtcbiAgICAgIHZhciBtYXhSZXRyaWVzID0gb3B0aW9ucy5tYXhSZXRyaWVzIHx8IDA7XG4gICAgICBpZiAoZXJyICYmIGVyci5jb2RlID09PSAnVGltZW91dEVycm9yJykgZXJyLnJldHJ5YWJsZSA9IHRydWU7XG4gICAgICBpZiAoZXJyICYmIGVyci5yZXRyeWFibGUgJiYgcmV0cnlDb3VudCA8IG1heFJldHJpZXMpIHtcbiAgICAgICAgcmV0cnlDb3VudCsrO1xuICAgICAgICB2YXIgZGVsYXkgPSB1dGlsLmNhbGN1bGF0ZVJldHJ5RGVsYXkocmV0cnlDb3VudCwgb3B0aW9ucy5yZXRyeURlbGF5T3B0aW9ucyk7XG4gICAgICAgIHNldFRpbWVvdXQoc2VuZFJlcXVlc3QsIGRlbGF5ICsgKGVyci5yZXRyeUFmdGVyIHx8IDApKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNiKGVycik7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHZhciBzZW5kUmVxdWVzdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGRhdGEgPSAnJztcbiAgICAgIGh0dHAuaGFuZGxlUmVxdWVzdChodHRwUmVxdWVzdCwgaHR0cE9wdGlvbnMsIGZ1bmN0aW9uKGh0dHBSZXNwb25zZSkge1xuICAgICAgICBodHRwUmVzcG9uc2Uub24oJ2RhdGEnLCBmdW5jdGlvbihjaHVuaykgeyBkYXRhICs9IGNodW5rLnRvU3RyaW5nKCk7IH0pO1xuICAgICAgICBodHRwUmVzcG9uc2Uub24oJ2VuZCcsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBzdGF0dXNDb2RlID0gaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGU7XG4gICAgICAgICAgaWYgKHN0YXR1c0NvZGUgPCAzMDApIHtcbiAgICAgICAgICAgIGNiKG51bGwsIGRhdGEpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgcmV0cnlBZnRlciA9IHBhcnNlSW50KGh0dHBSZXNwb25zZS5oZWFkZXJzWydyZXRyeS1hZnRlciddLCAxMCkgKiAxMDAwIHx8IDA7XG4gICAgICAgICAgICB2YXIgZXJyID0gdXRpbC5lcnJvcihuZXcgRXJyb3IoKSxcbiAgICAgICAgICAgICAgeyByZXRyeWFibGU6IHN0YXR1c0NvZGUgPj0gNTAwIHx8IHN0YXR1c0NvZGUgPT09IDQyOSB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHJldHJ5QWZ0ZXIgJiYgZXJyLnJldHJ5YWJsZSkgZXJyLnJldHJ5QWZ0ZXIgPSByZXRyeUFmdGVyO1xuICAgICAgICAgICAgZXJyQ2FsbGJhY2soZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSwgZXJyQ2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBBV1MudXRpbC5kZWZlcihzZW5kUmVxdWVzdCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdXVpZDoge1xuICAgIHY0OiBmdW5jdGlvbiB1dWlkVjQoKSB7XG4gICAgICByZXR1cm4gcmVxdWlyZSgndXVpZCcpLnY0KCk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNvbnZlcnRQYXlsb2FkVG9TdHJpbmc6IGZ1bmN0aW9uIGNvbnZlcnRQYXlsb2FkVG9TdHJpbmcocmVzcCkge1xuICAgIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gICAgdmFyIG9wZXJhdGlvbiA9IHJlcS5vcGVyYXRpb247XG4gICAgdmFyIHJ1bGVzID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbb3BlcmF0aW9uXS5vdXRwdXQgfHwge307XG4gICAgaWYgKHJ1bGVzLnBheWxvYWQgJiYgcmVzcC5kYXRhW3J1bGVzLnBheWxvYWRdKSB7XG4gICAgICByZXNwLmRhdGFbcnVsZXMucGF5bG9hZF0gPSByZXNwLmRhdGFbcnVsZXMucGF5bG9hZF0udG9TdHJpbmcoKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZGVmZXI6IGZ1bmN0aW9uIGRlZmVyKGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9jZXNzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcHJvY2Vzcy5uZXh0VGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljayhjYWxsYmFjayk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygc2V0SW1tZWRpYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBzZXRJbW1lZGlhdGUoY2FsbGJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCAwKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZGVmYXVsdFByb2ZpbGU6ICdkZWZhdWx0JyxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb25maWdPcHRJbkVudjogJ0FXU19TREtfTE9BRF9DT05GSUcnLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNoYXJlZENyZWRlbnRpYWxzRmlsZUVudjogJ0FXU19TSEFSRURfQ1JFREVOVElBTFNfRklMRScsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2hhcmVkQ29uZmlnRmlsZUVudjogJ0FXU19DT05GSUdfRklMRScsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaW1kc0Rpc2FibGVkRW52OiAnQVdTX0VDMl9NRVRBREFUQV9ESVNBQkxFRCdcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gdXRpbDtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIFNoYXBlID0gcmVxdWlyZSgnLi4vbW9kZWwvc2hhcGUnKTtcblxuZnVuY3Rpb24gRG9tWG1sUGFyc2VyKCkgeyB9XG5cbkRvbVhtbFBhcnNlci5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbih4bWwsIHNoYXBlKSB7XG4gIGlmICh4bWwucmVwbGFjZSgvXlxccysvLCAnJykgPT09ICcnKSByZXR1cm4ge307XG5cbiAgdmFyIHJlc3VsdCwgZXJyb3I7XG4gIHRyeSB7XG4gICAgaWYgKHdpbmRvdy5ET01QYXJzZXIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gICAgICAgIHJlc3VsdCA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoeG1sLCAndGV4dC94bWwnKTtcbiAgICAgIH0gY2F0Y2ggKHN5bnRheEVycm9yKSB7XG4gICAgICAgIHRocm93IHV0aWwuZXJyb3IobmV3IEVycm9yKCdQYXJzZSBlcnJvciBpbiBkb2N1bWVudCcpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXJyb3I6IHN5bnRheEVycm9yLFxuICAgICAgICAgICAgY29kZTogJ1hNTFBhcnNlckVycm9yJyxcbiAgICAgICAgICAgIHJldHJ5YWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0LmRvY3VtZW50RWxlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyB1dGlsLmVycm9yKG5ldyBFcnJvcignQ2Fubm90IHBhcnNlIGVtcHR5IGRvY3VtZW50LicpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICdYTUxQYXJzZXJFcnJvcicsXG4gICAgICAgICAgICByZXRyeWFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFyIGlzRXJyb3IgPSByZXN1bHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3BhcnNlcmVycm9yJylbMF07XG4gICAgICBpZiAoaXNFcnJvciAmJiAoaXNFcnJvci5wYXJlbnROb2RlID09PSByZXN1bHQgfHxcbiAgICAgICAgICBpc0Vycm9yLnBhcmVudE5vZGUubm9kZU5hbWUgPT09ICdib2R5JyB8fFxuICAgICAgICAgIGlzRXJyb3IucGFyZW50Tm9kZS5wYXJlbnROb2RlID09PSByZXN1bHQgfHxcbiAgICAgICAgICBpc0Vycm9yLnBhcmVudE5vZGUucGFyZW50Tm9kZS5ub2RlTmFtZSA9PT0gJ2JvZHknKSkge1xuICAgICAgICB2YXIgZXJyb3JFbGVtZW50ID0gaXNFcnJvci5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF0gfHwgaXNFcnJvcjtcbiAgICAgICAgdGhyb3cgdXRpbC5lcnJvcihuZXcgRXJyb3IoZXJyb3JFbGVtZW50LnRleHRDb250ZW50IHx8ICdQYXJzZXIgZXJyb3IgaW4gZG9jdW1lbnQnKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb2RlOiAnWE1MUGFyc2VyRXJyb3InLFxuICAgICAgICAgICAgcmV0cnlhYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkge1xuICAgICAgcmVzdWx0ID0gbmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0KCdNaWNyb3NvZnQuWE1MRE9NJyk7XG4gICAgICByZXN1bHQuYXN5bmMgPSBmYWxzZTtcblxuICAgICAgaWYgKCFyZXN1bHQubG9hZFhNTCh4bWwpKSB7XG4gICAgICAgIHRocm93IHV0aWwuZXJyb3IobmV3IEVycm9yKCdQYXJzZSBlcnJvciBpbiBkb2N1bWVudCcpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICdYTUxQYXJzZXJFcnJvcicsXG4gICAgICAgICAgICByZXRyeWFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbG9hZCBYTUwgcGFyc2VyJyk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgZXJyb3IgPSBlO1xuICB9XG5cbiAgaWYgKHJlc3VsdCAmJiByZXN1bHQuZG9jdW1lbnRFbGVtZW50ICYmICFlcnJvcikge1xuICAgIHZhciBkYXRhID0gcGFyc2VYbWwocmVzdWx0LmRvY3VtZW50RWxlbWVudCwgc2hhcGUpO1xuICAgIHZhciBtZXRhZGF0YSA9IHJlc3VsdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnUmVzcG9uc2VNZXRhZGF0YScpWzBdO1xuICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgZGF0YS5SZXNwb25zZU1ldGFkYXRhID0gcGFyc2VYbWwobWV0YWRhdGEsIHt9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH0gZWxzZSBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyB1dGlsLmVycm9yKGVycm9yIHx8IG5ldyBFcnJvcigpLCB7Y29kZTogJ1hNTFBhcnNlckVycm9yJywgcmV0cnlhYmxlOiB0cnVlfSk7XG4gIH0gZWxzZSB7IC8vIGVtcHR5IHhtbCBkb2N1bWVudFxuICAgIHJldHVybiB7fTtcbiAgfVxufTtcblxuZnVuY3Rpb24gcGFyc2VYbWwoeG1sLCBzaGFwZSkge1xuICBpZiAoIXNoYXBlKSBzaGFwZSA9IHt9O1xuICBzd2l0Y2ggKHNoYXBlLnR5cGUpIHtcbiAgICBjYXNlICdzdHJ1Y3R1cmUnOiByZXR1cm4gcGFyc2VTdHJ1Y3R1cmUoeG1sLCBzaGFwZSk7XG4gICAgY2FzZSAnbWFwJzogcmV0dXJuIHBhcnNlTWFwKHhtbCwgc2hhcGUpO1xuICAgIGNhc2UgJ2xpc3QnOiByZXR1cm4gcGFyc2VMaXN0KHhtbCwgc2hhcGUpO1xuICAgIGNhc2UgdW5kZWZpbmVkOiBjYXNlIG51bGw6IHJldHVybiBwYXJzZVVua25vd24oeG1sKTtcbiAgICBkZWZhdWx0OiByZXR1cm4gcGFyc2VTY2FsYXIoeG1sLCBzaGFwZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VTdHJ1Y3R1cmUoeG1sLCBzaGFwZSkge1xuICB2YXIgZGF0YSA9IHt9O1xuICBpZiAoeG1sID09PSBudWxsKSByZXR1cm4gZGF0YTtcblxuICB1dGlsLmVhY2goc2hhcGUubWVtYmVycywgZnVuY3Rpb24obWVtYmVyTmFtZSwgbWVtYmVyU2hhcGUpIHtcbiAgICBpZiAobWVtYmVyU2hhcGUuaXNYbWxBdHRyaWJ1dGUpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeG1sLmF0dHJpYnV0ZXMsIG1lbWJlclNoYXBlLm5hbWUpKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHhtbC5hdHRyaWJ1dGVzW21lbWJlclNoYXBlLm5hbWVdLnZhbHVlO1xuICAgICAgICBkYXRhW21lbWJlck5hbWVdID0gcGFyc2VYbWwoe3RleHRDb250ZW50OiB2YWx1ZX0sIG1lbWJlclNoYXBlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHhtbENoaWxkID0gbWVtYmVyU2hhcGUuZmxhdHRlbmVkID8geG1sIDpcbiAgICAgICAgeG1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKG1lbWJlclNoYXBlLm5hbWUpWzBdO1xuICAgICAgaWYgKHhtbENoaWxkKSB7XG4gICAgICAgIGRhdGFbbWVtYmVyTmFtZV0gPSBwYXJzZVhtbCh4bWxDaGlsZCwgbWVtYmVyU2hhcGUpO1xuICAgICAgfSBlbHNlIGlmICghbWVtYmVyU2hhcGUuZmxhdHRlbmVkICYmIG1lbWJlclNoYXBlLnR5cGUgPT09ICdsaXN0Jykge1xuICAgICAgICBkYXRhW21lbWJlck5hbWVdID0gbWVtYmVyU2hhcGUuZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTWFwKHhtbCwgc2hhcGUpIHtcbiAgdmFyIGRhdGEgPSB7fTtcbiAgdmFyIHhtbEtleSA9IHNoYXBlLmtleS5uYW1lIHx8ICdrZXknO1xuICB2YXIgeG1sVmFsdWUgPSBzaGFwZS52YWx1ZS5uYW1lIHx8ICd2YWx1ZSc7XG4gIHZhciB0YWdOYW1lID0gc2hhcGUuZmxhdHRlbmVkID8gc2hhcGUubmFtZSA6ICdlbnRyeSc7XG5cbiAgdmFyIGNoaWxkID0geG1sLmZpcnN0RWxlbWVudENoaWxkO1xuICB3aGlsZSAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQubm9kZU5hbWUgPT09IHRhZ05hbWUpIHtcbiAgICAgIHZhciBrZXkgPSBjaGlsZC5nZXRFbGVtZW50c0J5VGFnTmFtZSh4bWxLZXkpWzBdLnRleHRDb250ZW50O1xuICAgICAgdmFyIHZhbHVlID0gY2hpbGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoeG1sVmFsdWUpWzBdO1xuICAgICAgZGF0YVtrZXldID0gcGFyc2VYbWwodmFsdWUsIHNoYXBlLnZhbHVlKTtcbiAgICB9XG4gICAgY2hpbGQgPSBjaGlsZC5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTGlzdCh4bWwsIHNoYXBlKSB7XG4gIHZhciBkYXRhID0gW107XG4gIHZhciB0YWdOYW1lID0gc2hhcGUuZmxhdHRlbmVkID8gc2hhcGUubmFtZSA6IChzaGFwZS5tZW1iZXIubmFtZSB8fCAnbWVtYmVyJyk7XG5cbiAgdmFyIGNoaWxkID0geG1sLmZpcnN0RWxlbWVudENoaWxkO1xuICB3aGlsZSAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQubm9kZU5hbWUgPT09IHRhZ05hbWUpIHtcbiAgICAgIGRhdGEucHVzaChwYXJzZVhtbChjaGlsZCwgc2hhcGUubWVtYmVyKSk7XG4gICAgfVxuICAgIGNoaWxkID0gY2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nO1xuICB9XG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBwYXJzZVNjYWxhcih4bWwsIHNoYXBlKSB7XG4gIGlmICh4bWwuZ2V0QXR0cmlidXRlKSB7XG4gICAgdmFyIGVuY29kaW5nID0geG1sLmdldEF0dHJpYnV0ZSgnZW5jb2RpbmcnKTtcbiAgICBpZiAoZW5jb2RpbmcgPT09ICdiYXNlNjQnKSB7XG4gICAgICBzaGFwZSA9IG5ldyBTaGFwZS5jcmVhdGUoe3R5cGU6IGVuY29kaW5nfSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHRleHQgPSB4bWwudGV4dENvbnRlbnQ7XG4gIGlmICh0ZXh0ID09PSAnJykgdGV4dCA9IG51bGw7XG4gIGlmICh0eXBlb2Ygc2hhcGUudG9UeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHNoYXBlLnRvVHlwZSh0ZXh0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVVua25vd24oeG1sKSB7XG4gIGlmICh4bWwgPT09IHVuZGVmaW5lZCB8fCB4bWwgPT09IG51bGwpIHJldHVybiAnJztcblxuICAvLyBlbXB0eSBvYmplY3RcbiAgaWYgKCF4bWwuZmlyc3RFbGVtZW50Q2hpbGQpIHtcbiAgICBpZiAoeG1sLnBhcmVudE5vZGUucGFyZW50Tm9kZSA9PT0gbnVsbCkgcmV0dXJuIHt9O1xuICAgIGlmICh4bWwuY2hpbGROb2Rlcy5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgICBlbHNlIHJldHVybiB4bWwudGV4dENvbnRlbnQ7XG4gIH1cblxuICAvLyBvYmplY3QsIHBhcnNlIGFzIHN0cnVjdHVyZVxuICB2YXIgc2hhcGUgPSB7dHlwZTogJ3N0cnVjdHVyZScsIG1lbWJlcnM6IHt9fTtcbiAgdmFyIGNoaWxkID0geG1sLmZpcnN0RWxlbWVudENoaWxkO1xuICB3aGlsZSAoY2hpbGQpIHtcbiAgICB2YXIgdGFnID0gY2hpbGQubm9kZU5hbWU7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzaGFwZS5tZW1iZXJzLCB0YWcpKSB7XG4gICAgICAvLyBtdWx0aXBsZSB0YWdzIG9mIHRoZSBzYW1lIG5hbWUgbWFrZXMgaXQgYSBsaXN0XG4gICAgICBzaGFwZS5tZW1iZXJzW3RhZ10udHlwZSA9ICdsaXN0JztcbiAgICB9IGVsc2Uge1xuICAgICAgc2hhcGUubWVtYmVyc1t0YWddID0ge25hbWU6IHRhZ307XG4gICAgfVxuICAgIGNoaWxkID0gY2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nO1xuICB9XG4gIHJldHVybiBwYXJzZVN0cnVjdHVyZSh4bWwsIHNoYXBlKTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBEb21YbWxQYXJzZXI7XG4iLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcbnZhciBYbWxOb2RlID0gcmVxdWlyZSgnLi94bWwtbm9kZScpLlhtbE5vZGU7XG52YXIgWG1sVGV4dCA9IHJlcXVpcmUoJy4veG1sLXRleHQnKS5YbWxUZXh0O1xuXG5mdW5jdGlvbiBYbWxCdWlsZGVyKCkgeyB9XG5cblhtbEJ1aWxkZXIucHJvdG90eXBlLnRvWE1MID0gZnVuY3Rpb24ocGFyYW1zLCBzaGFwZSwgcm9vdEVsZW1lbnQsIG5vRW1wdHkpIHtcbiAgdmFyIHhtbCA9IG5ldyBYbWxOb2RlKHJvb3RFbGVtZW50KTtcbiAgYXBwbHlOYW1lc3BhY2VzKHhtbCwgc2hhcGUsIHRydWUpO1xuICBzZXJpYWxpemUoeG1sLCBwYXJhbXMsIHNoYXBlKTtcbiAgcmV0dXJuIHhtbC5jaGlsZHJlbi5sZW5ndGggPiAwIHx8IG5vRW1wdHkgPyB4bWwudG9TdHJpbmcoKSA6ICcnO1xufTtcblxuZnVuY3Rpb24gc2VyaWFsaXplKHhtbCwgdmFsdWUsIHNoYXBlKSB7XG4gIHN3aXRjaCAoc2hhcGUudHlwZSkge1xuICAgIGNhc2UgJ3N0cnVjdHVyZSc6IHJldHVybiBzZXJpYWxpemVTdHJ1Y3R1cmUoeG1sLCB2YWx1ZSwgc2hhcGUpO1xuICAgIGNhc2UgJ21hcCc6IHJldHVybiBzZXJpYWxpemVNYXAoeG1sLCB2YWx1ZSwgc2hhcGUpO1xuICAgIGNhc2UgJ2xpc3QnOiByZXR1cm4gc2VyaWFsaXplTGlzdCh4bWwsIHZhbHVlLCBzaGFwZSk7XG4gICAgZGVmYXVsdDogcmV0dXJuIHNlcmlhbGl6ZVNjYWxhcih4bWwsIHZhbHVlLCBzaGFwZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplU3RydWN0dXJlKHhtbCwgcGFyYW1zLCBzaGFwZSkge1xuICB1dGlsLmFycmF5RWFjaChzaGFwZS5tZW1iZXJOYW1lcywgZnVuY3Rpb24obWVtYmVyTmFtZSkge1xuICAgIHZhciBtZW1iZXJTaGFwZSA9IHNoYXBlLm1lbWJlcnNbbWVtYmVyTmFtZV07XG4gICAgaWYgKG1lbWJlclNoYXBlLmxvY2F0aW9uICE9PSAnYm9keScpIHJldHVybjtcblxuICAgIHZhciB2YWx1ZSA9IHBhcmFtc1ttZW1iZXJOYW1lXTtcbiAgICB2YXIgbmFtZSA9IG1lbWJlclNoYXBlLm5hbWU7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGlmIChtZW1iZXJTaGFwZS5pc1htbEF0dHJpYnV0ZSkge1xuICAgICAgICB4bWwuYWRkQXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAobWVtYmVyU2hhcGUuZmxhdHRlbmVkKSB7XG4gICAgICAgIHNlcmlhbGl6ZSh4bWwsIHZhbHVlLCBtZW1iZXJTaGFwZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZWxlbWVudCA9IG5ldyBYbWxOb2RlKG5hbWUpO1xuICAgICAgICB4bWwuYWRkQ2hpbGROb2RlKGVsZW1lbnQpO1xuICAgICAgICBhcHBseU5hbWVzcGFjZXMoZWxlbWVudCwgbWVtYmVyU2hhcGUpO1xuICAgICAgICBzZXJpYWxpemUoZWxlbWVudCwgdmFsdWUsIG1lbWJlclNoYXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVNYXAoeG1sLCBtYXAsIHNoYXBlKSB7XG4gIHZhciB4bWxLZXkgPSBzaGFwZS5rZXkubmFtZSB8fCAna2V5JztcbiAgdmFyIHhtbFZhbHVlID0gc2hhcGUudmFsdWUubmFtZSB8fCAndmFsdWUnO1xuXG4gIHV0aWwuZWFjaChtYXAsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICB2YXIgZW50cnkgPSBuZXcgWG1sTm9kZShzaGFwZS5mbGF0dGVuZWQgPyBzaGFwZS5uYW1lIDogJ2VudHJ5Jyk7XG4gICAgeG1sLmFkZENoaWxkTm9kZShlbnRyeSk7XG5cbiAgICB2YXIgZW50cnlLZXkgPSBuZXcgWG1sTm9kZSh4bWxLZXkpO1xuICAgIHZhciBlbnRyeVZhbHVlID0gbmV3IFhtbE5vZGUoeG1sVmFsdWUpO1xuICAgIGVudHJ5LmFkZENoaWxkTm9kZShlbnRyeUtleSlcbiAgICBlbnRyeS5hZGRDaGlsZE5vZGUoZW50cnlWYWx1ZSlcblxuICAgIHNlcmlhbGl6ZShlbnRyeUtleSwga2V5LCBzaGFwZS5rZXkpO1xuICAgIHNlcmlhbGl6ZShlbnRyeVZhbHVlLCB2YWx1ZSwgc2hhcGUudmFsdWUpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplTGlzdCh4bWwsIGxpc3QsIHNoYXBlKSB7XG4gIGlmIChzaGFwZS5mbGF0dGVuZWQpIHtcbiAgICB1dGlsLmFycmF5RWFjaChsaXN0LCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgdmFyIG5hbWUgPSBzaGFwZS5tZW1iZXIubmFtZSB8fCBzaGFwZS5uYW1lO1xuICAgICAgdmFyIGVsZW1lbnQgPSBuZXcgWG1sTm9kZShuYW1lKTtcbiAgICAgIHhtbC5hZGRDaGlsZE5vZGUoZWxlbWVudCk7XG4gICAgICBzZXJpYWxpemUoZWxlbWVudCwgdmFsdWUsIHNoYXBlLm1lbWJlcik7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdXRpbC5hcnJheUVhY2gobGlzdCwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHZhciBuYW1lID0gc2hhcGUubWVtYmVyLm5hbWUgfHwgJ21lbWJlcic7XG4gICAgICB2YXIgZWxlbWVudCA9IG5ldyBYbWxOb2RlKG5hbWUpO1xuICAgICAgeG1sLmFkZENoaWxkTm9kZShlbGVtZW50KTtcbiAgICAgIHNlcmlhbGl6ZShlbGVtZW50LCB2YWx1ZSwgc2hhcGUubWVtYmVyKTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVTY2FsYXIoeG1sLCB2YWx1ZSwgc2hhcGUpIHtcbiAgeG1sLmFkZENoaWxkTm9kZShcbiAgICBuZXcgWG1sVGV4dChzaGFwZS50b1dpcmVGb3JtYXQodmFsdWUpKVxuICApO1xufVxuXG5mdW5jdGlvbiBhcHBseU5hbWVzcGFjZXMoeG1sLCBzaGFwZSwgaXNSb290KSB7XG4gIHZhciB1cmksIHByZWZpeCA9ICd4bWxucyc7XG4gIGlmIChzaGFwZS54bWxOYW1lc3BhY2VVcmkpIHtcbiAgICB1cmkgPSBzaGFwZS54bWxOYW1lc3BhY2VVcmk7XG4gICAgaWYgKHNoYXBlLnhtbE5hbWVzcGFjZVByZWZpeCkgcHJlZml4ICs9ICc6JyArIHNoYXBlLnhtbE5hbWVzcGFjZVByZWZpeDtcbiAgfSBlbHNlIGlmIChpc1Jvb3QgJiYgc2hhcGUuYXBpLnhtbE5hbWVzcGFjZVVyaSkge1xuICAgIHVyaSA9IHNoYXBlLmFwaS54bWxOYW1lc3BhY2VVcmk7XG4gIH1cblxuICBpZiAodXJpKSB4bWwuYWRkQXR0cmlidXRlKHByZWZpeCwgdXJpKTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBYbWxCdWlsZGVyO1xuIiwiLyoqXG4gKiBFc2NhcGVzIGNoYXJhY3RlcnMgdGhhdCBjYW4gbm90IGJlIGluIGFuIFhNTCBhdHRyaWJ1dGUuXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUF0dHJpYnV0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoLycvZywgJyZhcG9zOycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7JykucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBlc2NhcGVBdHRyaWJ1dGU6IGVzY2FwZUF0dHJpYnV0ZVxufTsiLCIvKipcbiAqIEVzY2FwZXMgY2hhcmFjdGVycyB0aGF0IGNhbiBub3QgYmUgaW4gYW4gWE1MIGVsZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUVsZW1lbnQodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBlc2NhcGVFbGVtZW50OiBlc2NhcGVFbGVtZW50XG59OyIsInZhciBlc2NhcGVBdHRyaWJ1dGUgPSByZXF1aXJlKCcuL2VzY2FwZS1hdHRyaWJ1dGUnKS5lc2NhcGVBdHRyaWJ1dGU7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBYTUwgbm9kZS5cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBYbWxOb2RlKG5hbWUsIGNoaWxkcmVuKSB7XG4gICAgaWYgKGNoaWxkcmVuID09PSB2b2lkIDApIHsgY2hpbGRyZW4gPSBbXTsgfVxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgIHRoaXMuYXR0cmlidXRlcyA9IHt9O1xufVxuWG1sTm9kZS5wcm90b3R5cGUuYWRkQXR0cmlidXRlID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG59O1xuWG1sTm9kZS5wcm90b3R5cGUuYWRkQ2hpbGROb2RlID0gZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICByZXR1cm4gdGhpcztcbn07XG5YbWxOb2RlLnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGUgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgcmV0dXJuIHRoaXM7XG59O1xuWG1sTm9kZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGhhc0NoaWxkcmVuID0gQm9vbGVhbih0aGlzLmNoaWxkcmVuLmxlbmd0aCk7XG4gICAgdmFyIHhtbFRleHQgPSAnPCcgKyB0aGlzLm5hbWU7XG4gICAgLy8gYWRkIGF0dHJpYnV0ZXNcbiAgICB2YXIgYXR0cmlidXRlcyA9IHRoaXMuYXR0cmlidXRlcztcbiAgICBmb3IgKHZhciBpID0gMCwgYXR0cmlidXRlTmFtZXMgPSBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKTsgaSA8IGF0dHJpYnV0ZU5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlTmFtZXNbaV07XG4gICAgICAgIHZhciBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIGF0dHJpYnV0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgYXR0cmlidXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB4bWxUZXh0ICs9ICcgJyArIGF0dHJpYnV0ZU5hbWUgKyAnPVxcXCInICsgZXNjYXBlQXR0cmlidXRlKCcnICsgYXR0cmlidXRlKSArICdcXFwiJztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geG1sVGV4dCArPSAhaGFzQ2hpbGRyZW4gPyAnLz4nIDogJz4nICsgdGhpcy5jaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMudG9TdHJpbmcoKTsgfSkuam9pbignJykgKyAnPC8nICsgdGhpcy5uYW1lICsgJz4nO1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgWG1sTm9kZTogWG1sTm9kZVxufTsiLCJ2YXIgZXNjYXBlRWxlbWVudCA9IHJlcXVpcmUoJy4vZXNjYXBlLWVsZW1lbnQnKS5lc2NhcGVFbGVtZW50O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gWE1MIHRleHQgdmFsdWUuXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gWG1sVGV4dCh2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbn1cblxuWG1sVGV4dC5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGVzY2FwZUVsZW1lbnQoJycgKyB0aGlzLnZhbHVlKTtcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIFhtbFRleHQ6IFhtbFRleHRcbn07IiwiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydHMuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGhcbmV4cG9ydHMudG9CeXRlQXJyYXkgPSB0b0J5dGVBcnJheVxuZXhwb3J0cy5mcm9tQnl0ZUFycmF5ID0gZnJvbUJ5dGVBcnJheVxuXG52YXIgbG9va3VwID0gW11cbnZhciByZXZMb29rdXAgPSBbXVxudmFyIEFyciA9IHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJyA/IFVpbnQ4QXJyYXkgOiBBcnJheVxuXG52YXIgY29kZSA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJ1xuZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNvZGUubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgbG9va3VwW2ldID0gY29kZVtpXVxuICByZXZMb29rdXBbY29kZS5jaGFyQ29kZUF0KGkpXSA9IGlcbn1cblxuLy8gU3VwcG9ydCBkZWNvZGluZyBVUkwtc2FmZSBiYXNlNjQgc3RyaW5ncywgYXMgTm9kZS5qcyBkb2VzLlxuLy8gU2VlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYXNlNjQjVVJMX2FwcGxpY2F0aW9uc1xucmV2TG9va3VwWyctJy5jaGFyQ29kZUF0KDApXSA9IDYyXG5yZXZMb29rdXBbJ18nLmNoYXJDb2RlQXQoMCldID0gNjNcblxuZnVuY3Rpb24gZ2V0TGVucyAoYjY0KSB7XG4gIHZhciBsZW4gPSBiNjQubGVuZ3RoXG5cbiAgaWYgKGxlbiAlIDQgPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0JylcbiAgfVxuXG4gIC8vIFRyaW0gb2ZmIGV4dHJhIGJ5dGVzIGFmdGVyIHBsYWNlaG9sZGVyIGJ5dGVzIGFyZSBmb3VuZFxuICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZWF0Z2FtbWl0L2Jhc2U2NC1qcy9pc3N1ZXMvNDJcbiAgdmFyIHZhbGlkTGVuID0gYjY0LmluZGV4T2YoJz0nKVxuICBpZiAodmFsaWRMZW4gPT09IC0xKSB2YWxpZExlbiA9IGxlblxuXG4gIHZhciBwbGFjZUhvbGRlcnNMZW4gPSB2YWxpZExlbiA9PT0gbGVuXG4gICAgPyAwXG4gICAgOiA0IC0gKHZhbGlkTGVuICUgNClcblxuICByZXR1cm4gW3ZhbGlkTGVuLCBwbGFjZUhvbGRlcnNMZW5dXG59XG5cbi8vIGJhc2U2NCBpcyA0LzMgKyB1cCB0byB0d28gY2hhcmFjdGVycyBvZiB0aGUgb3JpZ2luYWwgZGF0YVxuZnVuY3Rpb24gYnl0ZUxlbmd0aCAoYjY0KSB7XG4gIHZhciBsZW5zID0gZ2V0TGVucyhiNjQpXG4gIHZhciB2YWxpZExlbiA9IGxlbnNbMF1cbiAgdmFyIHBsYWNlSG9sZGVyc0xlbiA9IGxlbnNbMV1cbiAgcmV0dXJuICgodmFsaWRMZW4gKyBwbGFjZUhvbGRlcnNMZW4pICogMyAvIDQpIC0gcGxhY2VIb2xkZXJzTGVuXG59XG5cbmZ1bmN0aW9uIF9ieXRlTGVuZ3RoIChiNjQsIHZhbGlkTGVuLCBwbGFjZUhvbGRlcnNMZW4pIHtcbiAgcmV0dXJuICgodmFsaWRMZW4gKyBwbGFjZUhvbGRlcnNMZW4pICogMyAvIDQpIC0gcGxhY2VIb2xkZXJzTGVuXG59XG5cbmZ1bmN0aW9uIHRvQnl0ZUFycmF5IChiNjQpIHtcbiAgdmFyIHRtcFxuICB2YXIgbGVucyA9IGdldExlbnMoYjY0KVxuICB2YXIgdmFsaWRMZW4gPSBsZW5zWzBdXG4gIHZhciBwbGFjZUhvbGRlcnNMZW4gPSBsZW5zWzFdXG5cbiAgdmFyIGFyciA9IG5ldyBBcnIoX2J5dGVMZW5ndGgoYjY0LCB2YWxpZExlbiwgcGxhY2VIb2xkZXJzTGVuKSlcblxuICB2YXIgY3VyQnl0ZSA9IDBcblxuICAvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzXG4gIHZhciBsZW4gPSBwbGFjZUhvbGRlcnNMZW4gPiAwXG4gICAgPyB2YWxpZExlbiAtIDRcbiAgICA6IHZhbGlkTGVuXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gNCkge1xuICAgIHRtcCA9XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAxOCkgfFxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMSldIDw8IDEyKSB8XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAyKV0gPDwgNikgfFxuICAgICAgcmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAzKV1cbiAgICBhcnJbY3VyQnl0ZSsrXSA9ICh0bXAgPj4gMTYpICYgMHhGRlxuICAgIGFycltjdXJCeXRlKytdID0gKHRtcCA+PiA4KSAmIDB4RkZcbiAgICBhcnJbY3VyQnl0ZSsrXSA9IHRtcCAmIDB4RkZcbiAgfVxuXG4gIGlmIChwbGFjZUhvbGRlcnNMZW4gPT09IDIpIHtcbiAgICB0bXAgPVxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpKV0gPDwgMikgfFxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMSldID4+IDQpXG4gICAgYXJyW2N1ckJ5dGUrK10gPSB0bXAgJiAweEZGXG4gIH1cblxuICBpZiAocGxhY2VIb2xkZXJzTGVuID09PSAxKSB7XG4gICAgdG1wID1cbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSldIDw8IDEwKSB8XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAxKV0gPDwgNCkgfFxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMildID4+IDIpXG4gICAgYXJyW2N1ckJ5dGUrK10gPSAodG1wID4+IDgpICYgMHhGRlxuICAgIGFycltjdXJCeXRlKytdID0gdG1wICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIGFyclxufVxuXG5mdW5jdGlvbiB0cmlwbGV0VG9CYXNlNjQgKG51bSkge1xuICByZXR1cm4gbG9va3VwW251bSA+PiAxOCAmIDB4M0ZdICtcbiAgICBsb29rdXBbbnVtID4+IDEyICYgMHgzRl0gK1xuICAgIGxvb2t1cFtudW0gPj4gNiAmIDB4M0ZdICtcbiAgICBsb29rdXBbbnVtICYgMHgzRl1cbn1cblxuZnVuY3Rpb24gZW5jb2RlQ2h1bmsgKHVpbnQ4LCBzdGFydCwgZW5kKSB7XG4gIHZhciB0bXBcbiAgdmFyIG91dHB1dCA9IFtdXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSArPSAzKSB7XG4gICAgdG1wID1cbiAgICAgICgodWludDhbaV0gPDwgMTYpICYgMHhGRjAwMDApICtcbiAgICAgICgodWludDhbaSArIDFdIDw8IDgpICYgMHhGRjAwKSArXG4gICAgICAodWludDhbaSArIDJdICYgMHhGRilcbiAgICBvdXRwdXQucHVzaCh0cmlwbGV0VG9CYXNlNjQodG1wKSlcbiAgfVxuICByZXR1cm4gb3V0cHV0LmpvaW4oJycpXG59XG5cbmZ1bmN0aW9uIGZyb21CeXRlQXJyYXkgKHVpbnQ4KSB7XG4gIHZhciB0bXBcbiAgdmFyIGxlbiA9IHVpbnQ4Lmxlbmd0aFxuICB2YXIgZXh0cmFCeXRlcyA9IGxlbiAlIDMgLy8gaWYgd2UgaGF2ZSAxIGJ5dGUgbGVmdCwgcGFkIDIgYnl0ZXNcbiAgdmFyIHBhcnRzID0gW11cbiAgdmFyIG1heENodW5rTGVuZ3RoID0gMTYzODMgLy8gbXVzdCBiZSBtdWx0aXBsZSBvZiAzXG5cbiAgLy8gZ28gdGhyb3VnaCB0aGUgYXJyYXkgZXZlcnkgdGhyZWUgYnl0ZXMsIHdlJ2xsIGRlYWwgd2l0aCB0cmFpbGluZyBzdHVmZiBsYXRlclxuICBmb3IgKHZhciBpID0gMCwgbGVuMiA9IGxlbiAtIGV4dHJhQnl0ZXM7IGkgPCBsZW4yOyBpICs9IG1heENodW5rTGVuZ3RoKSB7XG4gICAgcGFydHMucHVzaChlbmNvZGVDaHVuayhcbiAgICAgIHVpbnQ4LCBpLCAoaSArIG1heENodW5rTGVuZ3RoKSA+IGxlbjIgPyBsZW4yIDogKGkgKyBtYXhDaHVua0xlbmd0aClcbiAgICApKVxuICB9XG5cbiAgLy8gcGFkIHRoZSBlbmQgd2l0aCB6ZXJvcywgYnV0IG1ha2Ugc3VyZSB0byBub3QgZm9yZ2V0IHRoZSBleHRyYSBieXRlc1xuICBpZiAoZXh0cmFCeXRlcyA9PT0gMSkge1xuICAgIHRtcCA9IHVpbnQ4W2xlbiAtIDFdXG4gICAgcGFydHMucHVzaChcbiAgICAgIGxvb2t1cFt0bXAgPj4gMl0gK1xuICAgICAgbG9va3VwWyh0bXAgPDwgNCkgJiAweDNGXSArXG4gICAgICAnPT0nXG4gICAgKVxuICB9IGVsc2UgaWYgKGV4dHJhQnl0ZXMgPT09IDIpIHtcbiAgICB0bXAgPSAodWludDhbbGVuIC0gMl0gPDwgOCkgKyB1aW50OFtsZW4gLSAxXVxuICAgIHBhcnRzLnB1c2goXG4gICAgICBsb29rdXBbdG1wID4+IDEwXSArXG4gICAgICBsb29rdXBbKHRtcCA+PiA0KSAmIDB4M0ZdICtcbiAgICAgIGxvb2t1cFsodG1wIDw8IDIpICYgMHgzRl0gK1xuICAgICAgJz0nXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpXG59XG4iLCIoZnVuY3Rpb24gKG1vZHVsZSwgZXhwb3J0cykge1xuICAndXNlIHN0cmljdCc7XG5cbiAgLy8gVXRpbHNcbiAgZnVuY3Rpb24gYXNzZXJ0ICh2YWwsIG1zZykge1xuICAgIGlmICghdmFsKSB0aHJvdyBuZXcgRXJyb3IobXNnIHx8ICdBc3NlcnRpb24gZmFpbGVkJyk7XG4gIH1cblxuICAvLyBDb3VsZCB1c2UgYGluaGVyaXRzYCBtb2R1bGUsIGJ1dCBkb24ndCB3YW50IHRvIG1vdmUgZnJvbSBzaW5nbGUgZmlsZVxuICAvLyBhcmNoaXRlY3R1cmUgeWV0LlxuICBmdW5jdGlvbiBpbmhlcml0cyAoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3I7XG4gICAgdmFyIFRlbXBDdG9yID0gZnVuY3Rpb24gKCkge307XG4gICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZTtcbiAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpO1xuICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvcjtcbiAgfVxuXG4gIC8vIEJOXG5cbiAgZnVuY3Rpb24gQk4gKG51bWJlciwgYmFzZSwgZW5kaWFuKSB7XG4gICAgaWYgKEJOLmlzQk4obnVtYmVyKSkge1xuICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICB9XG5cbiAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICB0aGlzLndvcmRzID0gbnVsbDtcbiAgICB0aGlzLmxlbmd0aCA9IDA7XG5cbiAgICAvLyBSZWR1Y3Rpb24gY29udGV4dFxuICAgIHRoaXMucmVkID0gbnVsbDtcblxuICAgIGlmIChudW1iZXIgIT09IG51bGwpIHtcbiAgICAgIGlmIChiYXNlID09PSAnbGUnIHx8IGJhc2UgPT09ICdiZScpIHtcbiAgICAgICAgZW5kaWFuID0gYmFzZTtcbiAgICAgICAgYmFzZSA9IDEwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pbml0KG51bWJlciB8fCAwLCBiYXNlIHx8IDEwLCBlbmRpYW4gfHwgJ2JlJyk7XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gQk47XG4gIH0gZWxzZSB7XG4gICAgZXhwb3J0cy5CTiA9IEJOO1xuICB9XG5cbiAgQk4uQk4gPSBCTjtcbiAgQk4ud29yZFNpemUgPSAyNjtcblxuICB2YXIgQnVmZmVyO1xuICB0cnkge1xuICAgIEJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlcjtcbiAgfSBjYXRjaCAoZSkge1xuICB9XG5cbiAgQk4uaXNCTiA9IGZ1bmN0aW9uIGlzQk4gKG51bSkge1xuICAgIGlmIChudW0gaW5zdGFuY2VvZiBCTikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bSAhPT0gbnVsbCAmJiB0eXBlb2YgbnVtID09PSAnb2JqZWN0JyAmJlxuICAgICAgbnVtLmNvbnN0cnVjdG9yLndvcmRTaXplID09PSBCTi53b3JkU2l6ZSAmJiBBcnJheS5pc0FycmF5KG51bS53b3Jkcyk7XG4gIH07XG5cbiAgQk4ubWF4ID0gZnVuY3Rpb24gbWF4IChsZWZ0LCByaWdodCkge1xuICAgIGlmIChsZWZ0LmNtcChyaWdodCkgPiAwKSByZXR1cm4gbGVmdDtcbiAgICByZXR1cm4gcmlnaHQ7XG4gIH07XG5cbiAgQk4ubWluID0gZnVuY3Rpb24gbWluIChsZWZ0LCByaWdodCkge1xuICAgIGlmIChsZWZ0LmNtcChyaWdodCkgPCAwKSByZXR1cm4gbGVmdDtcbiAgICByZXR1cm4gcmlnaHQ7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl9pbml0ID0gZnVuY3Rpb24gaW5pdCAobnVtYmVyLCBiYXNlLCBlbmRpYW4pIHtcbiAgICBpZiAodHlwZW9mIG51bWJlciA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbml0TnVtYmVyKG51bWJlciwgYmFzZSwgZW5kaWFuKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG51bWJlciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbml0QXJyYXkobnVtYmVyLCBiYXNlLCBlbmRpYW4pO1xuICAgIH1cblxuICAgIGlmIChiYXNlID09PSAnaGV4Jykge1xuICAgICAgYmFzZSA9IDE2O1xuICAgIH1cbiAgICBhc3NlcnQoYmFzZSA9PT0gKGJhc2UgfCAwKSAmJiBiYXNlID49IDIgJiYgYmFzZSA8PSAzNik7XG5cbiAgICBudW1iZXIgPSBudW1iZXIudG9TdHJpbmcoKS5yZXBsYWNlKC9cXHMrL2csICcnKTtcbiAgICB2YXIgc3RhcnQgPSAwO1xuICAgIGlmIChudW1iZXJbMF0gPT09ICctJykge1xuICAgICAgc3RhcnQrKztcbiAgICB9XG5cbiAgICBpZiAoYmFzZSA9PT0gMTYpIHtcbiAgICAgIHRoaXMuX3BhcnNlSGV4KG51bWJlciwgc3RhcnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9wYXJzZUJhc2UobnVtYmVyLCBiYXNlLCBzdGFydCk7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlclswXSA9PT0gJy0nKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMTtcbiAgICB9XG5cbiAgICB0aGlzLnN0cmlwKCk7XG5cbiAgICBpZiAoZW5kaWFuICE9PSAnbGUnKSByZXR1cm47XG5cbiAgICB0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksIGJhc2UsIGVuZGlhbik7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl9pbml0TnVtYmVyID0gZnVuY3Rpb24gX2luaXROdW1iZXIgKG51bWJlciwgYmFzZSwgZW5kaWFuKSB7XG4gICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuICAgICAgbnVtYmVyID0gLW51bWJlcjtcbiAgICB9XG4gICAgaWYgKG51bWJlciA8IDB4NDAwMDAwMCkge1xuICAgICAgdGhpcy53b3JkcyA9IFsgbnVtYmVyICYgMHgzZmZmZmZmIF07XG4gICAgICB0aGlzLmxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIGlmIChudW1iZXIgPCAweDEwMDAwMDAwMDAwMDAwKSB7XG4gICAgICB0aGlzLndvcmRzID0gW1xuICAgICAgICBudW1iZXIgJiAweDNmZmZmZmYsXG4gICAgICAgIChudW1iZXIgLyAweDQwMDAwMDApICYgMHgzZmZmZmZmXG4gICAgICBdO1xuICAgICAgdGhpcy5sZW5ndGggPSAyO1xuICAgIH0gZWxzZSB7XG4gICAgICBhc3NlcnQobnVtYmVyIDwgMHgyMDAwMDAwMDAwMDAwMCk7IC8vIDIgXiA1MyAodW5zYWZlKVxuICAgICAgdGhpcy53b3JkcyA9IFtcbiAgICAgICAgbnVtYmVyICYgMHgzZmZmZmZmLFxuICAgICAgICAobnVtYmVyIC8gMHg0MDAwMDAwKSAmIDB4M2ZmZmZmZixcbiAgICAgICAgMVxuICAgICAgXTtcbiAgICAgIHRoaXMubGVuZ3RoID0gMztcbiAgICB9XG5cbiAgICBpZiAoZW5kaWFuICE9PSAnbGUnKSByZXR1cm47XG5cbiAgICAvLyBSZXZlcnNlIHRoZSBieXRlc1xuICAgIHRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSwgYmFzZSwgZW5kaWFuKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX2luaXRBcnJheSA9IGZ1bmN0aW9uIF9pbml0QXJyYXkgKG51bWJlciwgYmFzZSwgZW5kaWFuKSB7XG4gICAgLy8gUGVyaGFwcyBhIFVpbnQ4QXJyYXlcbiAgICBhc3NlcnQodHlwZW9mIG51bWJlci5sZW5ndGggPT09ICdudW1iZXInKTtcbiAgICBpZiAobnVtYmVyLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLndvcmRzID0gWyAwIF07XG4gICAgICB0aGlzLmxlbmd0aCA9IDE7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLmxlbmd0aCA9IE1hdGguY2VpbChudW1iZXIubGVuZ3RoIC8gMyk7XG4gICAgdGhpcy53b3JkcyA9IG5ldyBBcnJheSh0aGlzLmxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gMDtcbiAgICB9XG5cbiAgICB2YXIgaiwgdztcbiAgICB2YXIgb2ZmID0gMDtcbiAgICBpZiAoZW5kaWFuID09PSAnYmUnKSB7XG4gICAgICBmb3IgKGkgPSBudW1iZXIubGVuZ3RoIC0gMSwgaiA9IDA7IGkgPj0gMDsgaSAtPSAzKSB7XG4gICAgICAgIHcgPSBudW1iZXJbaV0gfCAobnVtYmVyW2kgLSAxXSA8PCA4KSB8IChudW1iZXJbaSAtIDJdIDw8IDE2KTtcbiAgICAgICAgdGhpcy53b3Jkc1tqXSB8PSAodyA8PCBvZmYpICYgMHgzZmZmZmZmO1xuICAgICAgICB0aGlzLndvcmRzW2ogKyAxXSA9ICh3ID4+PiAoMjYgLSBvZmYpKSAmIDB4M2ZmZmZmZjtcbiAgICAgICAgb2ZmICs9IDI0O1xuICAgICAgICBpZiAob2ZmID49IDI2KSB7XG4gICAgICAgICAgb2ZmIC09IDI2O1xuICAgICAgICAgIGorKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZW5kaWFuID09PSAnbGUnKSB7XG4gICAgICBmb3IgKGkgPSAwLCBqID0gMDsgaSA8IG51bWJlci5sZW5ndGg7IGkgKz0gMykge1xuICAgICAgICB3ID0gbnVtYmVyW2ldIHwgKG51bWJlcltpICsgMV0gPDwgOCkgfCAobnVtYmVyW2kgKyAyXSA8PCAxNik7XG4gICAgICAgIHRoaXMud29yZHNbal0gfD0gKHcgPDwgb2ZmKSAmIDB4M2ZmZmZmZjtcbiAgICAgICAgdGhpcy53b3Jkc1tqICsgMV0gPSAodyA+Pj4gKDI2IC0gb2ZmKSkgJiAweDNmZmZmZmY7XG4gICAgICAgIG9mZiArPSAyNDtcbiAgICAgICAgaWYgKG9mZiA+PSAyNikge1xuICAgICAgICAgIG9mZiAtPSAyNjtcbiAgICAgICAgICBqKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBmdW5jdGlvbiBwYXJzZUhleCAoc3RyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIHIgPSAwO1xuICAgIHZhciBsZW4gPSBNYXRoLm1pbihzdHIubGVuZ3RoLCBlbmQpO1xuICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpIC0gNDg7XG5cbiAgICAgIHIgPDw9IDQ7XG5cbiAgICAgIC8vICdhJyAtICdmJ1xuICAgICAgaWYgKGMgPj0gNDkgJiYgYyA8PSA1NCkge1xuICAgICAgICByIHw9IGMgLSA0OSArIDB4YTtcblxuICAgICAgLy8gJ0EnIC0gJ0YnXG4gICAgICB9IGVsc2UgaWYgKGMgPj0gMTcgJiYgYyA8PSAyMikge1xuICAgICAgICByIHw9IGMgLSAxNyArIDB4YTtcblxuICAgICAgLy8gJzAnIC0gJzknXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByIHw9IGMgJiAweGY7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9XG5cbiAgQk4ucHJvdG90eXBlLl9wYXJzZUhleCA9IGZ1bmN0aW9uIF9wYXJzZUhleCAobnVtYmVyLCBzdGFydCkge1xuICAgIC8vIENyZWF0ZSBwb3NzaWJseSBiaWdnZXIgYXJyYXkgdG8gZW5zdXJlIHRoYXQgaXQgZml0cyB0aGUgbnVtYmVyXG4gICAgdGhpcy5sZW5ndGggPSBNYXRoLmNlaWwoKG51bWJlci5sZW5ndGggLSBzdGFydCkgLyA2KTtcbiAgICB0aGlzLndvcmRzID0gbmV3IEFycmF5KHRoaXMubGVuZ3RoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSAwO1xuICAgIH1cblxuICAgIHZhciBqLCB3O1xuICAgIC8vIFNjYW4gMjQtYml0IGNodW5rcyBhbmQgYWRkIHRoZW0gdG8gdGhlIG51bWJlclxuICAgIHZhciBvZmYgPSAwO1xuICAgIGZvciAoaSA9IG51bWJlci5sZW5ndGggLSA2LCBqID0gMDsgaSA+PSBzdGFydDsgaSAtPSA2KSB7XG4gICAgICB3ID0gcGFyc2VIZXgobnVtYmVyLCBpLCBpICsgNik7XG4gICAgICB0aGlzLndvcmRzW2pdIHw9ICh3IDw8IG9mZikgJiAweDNmZmZmZmY7XG4gICAgICAvLyBOT1RFOiBgMHgzZmZmZmZgIGlzIGludGVudGlvbmFsIGhlcmUsIDI2Yml0cyBtYXggc2hpZnQgKyAyNGJpdCBoZXggbGltYlxuICAgICAgdGhpcy53b3Jkc1tqICsgMV0gfD0gdyA+Pj4gKDI2IC0gb2ZmKSAmIDB4M2ZmZmZmO1xuICAgICAgb2ZmICs9IDI0O1xuICAgICAgaWYgKG9mZiA+PSAyNikge1xuICAgICAgICBvZmYgLT0gMjY7XG4gICAgICAgIGorKztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGkgKyA2ICE9PSBzdGFydCkge1xuICAgICAgdyA9IHBhcnNlSGV4KG51bWJlciwgc3RhcnQsIGkgKyA2KTtcbiAgICAgIHRoaXMud29yZHNbal0gfD0gKHcgPDwgb2ZmKSAmIDB4M2ZmZmZmZjtcbiAgICAgIHRoaXMud29yZHNbaiArIDFdIHw9IHcgPj4+ICgyNiAtIG9mZikgJiAweDNmZmZmZjtcbiAgICB9XG4gICAgdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIGZ1bmN0aW9uIHBhcnNlQmFzZSAoc3RyLCBzdGFydCwgZW5kLCBtdWwpIHtcbiAgICB2YXIgciA9IDA7XG4gICAgdmFyIGxlbiA9IE1hdGgubWluKHN0ci5sZW5ndGgsIGVuZCk7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHZhciBjID0gc3RyLmNoYXJDb2RlQXQoaSkgLSA0ODtcblxuICAgICAgciAqPSBtdWw7XG5cbiAgICAgIC8vICdhJ1xuICAgICAgaWYgKGMgPj0gNDkpIHtcbiAgICAgICAgciArPSBjIC0gNDkgKyAweGE7XG5cbiAgICAgIC8vICdBJ1xuICAgICAgfSBlbHNlIGlmIChjID49IDE3KSB7XG4gICAgICAgIHIgKz0gYyAtIDE3ICsgMHhhO1xuXG4gICAgICAvLyAnMCcgLSAnOSdcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHIgKz0gYztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH1cblxuICBCTi5wcm90b3R5cGUuX3BhcnNlQmFzZSA9IGZ1bmN0aW9uIF9wYXJzZUJhc2UgKG51bWJlciwgYmFzZSwgc3RhcnQpIHtcbiAgICAvLyBJbml0aWFsaXplIGFzIHplcm9cbiAgICB0aGlzLndvcmRzID0gWyAwIF07XG4gICAgdGhpcy5sZW5ndGggPSAxO1xuXG4gICAgLy8gRmluZCBsZW5ndGggb2YgbGltYiBpbiBiYXNlXG4gICAgZm9yICh2YXIgbGltYkxlbiA9IDAsIGxpbWJQb3cgPSAxOyBsaW1iUG93IDw9IDB4M2ZmZmZmZjsgbGltYlBvdyAqPSBiYXNlKSB7XG4gICAgICBsaW1iTGVuKys7XG4gICAgfVxuICAgIGxpbWJMZW4tLTtcbiAgICBsaW1iUG93ID0gKGxpbWJQb3cgLyBiYXNlKSB8IDA7XG5cbiAgICB2YXIgdG90YWwgPSBudW1iZXIubGVuZ3RoIC0gc3RhcnQ7XG4gICAgdmFyIG1vZCA9IHRvdGFsICUgbGltYkxlbjtcbiAgICB2YXIgZW5kID0gTWF0aC5taW4odG90YWwsIHRvdGFsIC0gbW9kKSArIHN0YXJ0O1xuXG4gICAgdmFyIHdvcmQgPSAwO1xuICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSArPSBsaW1iTGVuKSB7XG4gICAgICB3b3JkID0gcGFyc2VCYXNlKG51bWJlciwgaSwgaSArIGxpbWJMZW4sIGJhc2UpO1xuXG4gICAgICB0aGlzLmltdWxuKGxpbWJQb3cpO1xuICAgICAgaWYgKHRoaXMud29yZHNbMF0gKyB3b3JkIDwgMHg0MDAwMDAwKSB7XG4gICAgICAgIHRoaXMud29yZHNbMF0gKz0gd29yZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2lhZGRuKHdvcmQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb2QgIT09IDApIHtcbiAgICAgIHZhciBwb3cgPSAxO1xuICAgICAgd29yZCA9IHBhcnNlQmFzZShudW1iZXIsIGksIG51bWJlci5sZW5ndGgsIGJhc2UpO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgbW9kOyBpKyspIHtcbiAgICAgICAgcG93ICo9IGJhc2U7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaW11bG4ocG93KTtcbiAgICAgIGlmICh0aGlzLndvcmRzWzBdICsgd29yZCA8IDB4NDAwMDAwMCkge1xuICAgICAgICB0aGlzLndvcmRzWzBdICs9IHdvcmQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pYWRkbih3b3JkKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiBjb3B5IChkZXN0KSB7XG4gICAgZGVzdC53b3JkcyA9IG5ldyBBcnJheSh0aGlzLmxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBkZXN0LndvcmRzW2ldID0gdGhpcy53b3Jkc1tpXTtcbiAgICB9XG4gICAgZGVzdC5sZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICBkZXN0Lm5lZ2F0aXZlID0gdGhpcy5uZWdhdGl2ZTtcbiAgICBkZXN0LnJlZCA9IHRoaXMucmVkO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uIGNsb25lICgpIHtcbiAgICB2YXIgciA9IG5ldyBCTihudWxsKTtcbiAgICB0aGlzLmNvcHkocik7XG4gICAgcmV0dXJuIHI7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl9leHBhbmQgPSBmdW5jdGlvbiBfZXhwYW5kIChzaXplKSB7XG4gICAgd2hpbGUgKHRoaXMubGVuZ3RoIDwgc2l6ZSkge1xuICAgICAgdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXSA9IDA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8vIFJlbW92ZSBsZWFkaW5nIGAwYCBmcm9tIGB0aGlzYFxuICBCTi5wcm90b3R5cGUuc3RyaXAgPSBmdW5jdGlvbiBzdHJpcCAoKSB7XG4gICAgd2hpbGUgKHRoaXMubGVuZ3RoID4gMSAmJiB0aGlzLndvcmRzW3RoaXMubGVuZ3RoIC0gMV0gPT09IDApIHtcbiAgICAgIHRoaXMubGVuZ3RoLS07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9ub3JtU2lnbigpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5fbm9ybVNpZ24gPSBmdW5jdGlvbiBfbm9ybVNpZ24gKCkge1xuICAgIC8vIC0wID0gMFxuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLndvcmRzWzBdID09PSAwKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0ICgpIHtcbiAgICByZXR1cm4gKHRoaXMucmVkID8gJzxCTi1SOiAnIDogJzxCTjogJykgKyB0aGlzLnRvU3RyaW5nKDE2KSArICc+JztcbiAgfTtcblxuICAvKlxuXG4gIHZhciB6ZXJvcyA9IFtdO1xuICB2YXIgZ3JvdXBTaXplcyA9IFtdO1xuICB2YXIgZ3JvdXBCYXNlcyA9IFtdO1xuXG4gIHZhciBzID0gJyc7XG4gIHZhciBpID0gLTE7XG4gIHdoaWxlICgrK2kgPCBCTi53b3JkU2l6ZSkge1xuICAgIHplcm9zW2ldID0gcztcbiAgICBzICs9ICcwJztcbiAgfVxuICBncm91cFNpemVzWzBdID0gMDtcbiAgZ3JvdXBTaXplc1sxXSA9IDA7XG4gIGdyb3VwQmFzZXNbMF0gPSAwO1xuICBncm91cEJhc2VzWzFdID0gMDtcbiAgdmFyIGJhc2UgPSAyIC0gMTtcbiAgd2hpbGUgKCsrYmFzZSA8IDM2ICsgMSkge1xuICAgIHZhciBncm91cFNpemUgPSAwO1xuICAgIHZhciBncm91cEJhc2UgPSAxO1xuICAgIHdoaWxlIChncm91cEJhc2UgPCAoMSA8PCBCTi53b3JkU2l6ZSkgLyBiYXNlKSB7XG4gICAgICBncm91cEJhc2UgKj0gYmFzZTtcbiAgICAgIGdyb3VwU2l6ZSArPSAxO1xuICAgIH1cbiAgICBncm91cFNpemVzW2Jhc2VdID0gZ3JvdXBTaXplO1xuICAgIGdyb3VwQmFzZXNbYmFzZV0gPSBncm91cEJhc2U7XG4gIH1cblxuICAqL1xuXG4gIHZhciB6ZXJvcyA9IFtcbiAgICAnJyxcbiAgICAnMCcsXG4gICAgJzAwJyxcbiAgICAnMDAwJyxcbiAgICAnMDAwMCcsXG4gICAgJzAwMDAwJyxcbiAgICAnMDAwMDAwJyxcbiAgICAnMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCdcbiAgXTtcblxuICB2YXIgZ3JvdXBTaXplcyA9IFtcbiAgICAwLCAwLFxuICAgIDI1LCAxNiwgMTIsIDExLCAxMCwgOSwgOCxcbiAgICA4LCA3LCA3LCA3LCA3LCA2LCA2LFxuICAgIDYsIDYsIDYsIDYsIDYsIDUsIDUsXG4gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSxcbiAgICA1LCA1LCA1LCA1LCA1LCA1LCA1XG4gIF07XG5cbiAgdmFyIGdyb3VwQmFzZXMgPSBbXG4gICAgMCwgMCxcbiAgICAzMzU1NDQzMiwgNDMwNDY3MjEsIDE2Nzc3MjE2LCA0ODgyODEyNSwgNjA0NjYxNzYsIDQwMzUzNjA3LCAxNjc3NzIxNixcbiAgICA0MzA0NjcyMSwgMTAwMDAwMDAsIDE5NDg3MTcxLCAzNTgzMTgwOCwgNjI3NDg1MTcsIDc1Mjk1MzYsIDExMzkwNjI1LFxuICAgIDE2Nzc3MjE2LCAyNDEzNzU2OSwgMzQwMTIyMjQsIDQ3MDQ1ODgxLCA2NDAwMDAwMCwgNDA4NDEwMSwgNTE1MzYzMixcbiAgICA2NDM2MzQzLCA3OTYyNjI0LCA5NzY1NjI1LCAxMTg4MTM3NiwgMTQzNDg5MDcsIDE3MjEwMzY4LCAyMDUxMTE0OSxcbiAgICAyNDMwMDAwMCwgMjg2MjkxNTEsIDMzNTU0NDMyLCAzOTEzNTM5MywgNDU0MzU0MjQsIDUyNTIxODc1LCA2MDQ2NjE3NlxuICBdO1xuXG4gIEJOLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nIChiYXNlLCBwYWRkaW5nKSB7XG4gICAgYmFzZSA9IGJhc2UgfHwgMTA7XG4gICAgcGFkZGluZyA9IHBhZGRpbmcgfCAwIHx8IDE7XG5cbiAgICB2YXIgb3V0O1xuICAgIGlmIChiYXNlID09PSAxNiB8fCBiYXNlID09PSAnaGV4Jykge1xuICAgICAgb3V0ID0gJyc7XG4gICAgICB2YXIgb2ZmID0gMDtcbiAgICAgIHZhciBjYXJyeSA9IDA7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHcgPSB0aGlzLndvcmRzW2ldO1xuICAgICAgICB2YXIgd29yZCA9ICgoKHcgPDwgb2ZmKSB8IGNhcnJ5KSAmIDB4ZmZmZmZmKS50b1N0cmluZygxNik7XG4gICAgICAgIGNhcnJ5ID0gKHcgPj4+ICgyNCAtIG9mZikpICYgMHhmZmZmZmY7XG4gICAgICAgIGlmIChjYXJyeSAhPT0gMCB8fCBpICE9PSB0aGlzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICBvdXQgPSB6ZXJvc1s2IC0gd29yZC5sZW5ndGhdICsgd29yZCArIG91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgPSB3b3JkICsgb3V0O1xuICAgICAgICB9XG4gICAgICAgIG9mZiArPSAyO1xuICAgICAgICBpZiAob2ZmID49IDI2KSB7XG4gICAgICAgICAgb2ZmIC09IDI2O1xuICAgICAgICAgIGktLTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNhcnJ5ICE9PSAwKSB7XG4gICAgICAgIG91dCA9IGNhcnJ5LnRvU3RyaW5nKDE2KSArIG91dDtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChvdXQubGVuZ3RoICUgcGFkZGluZyAhPT0gMCkge1xuICAgICAgICBvdXQgPSAnMCcgKyBvdXQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgICBvdXQgPSAnLScgKyBvdXQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3V0O1xuICAgIH1cblxuICAgIGlmIChiYXNlID09PSAoYmFzZSB8IDApICYmIGJhc2UgPj0gMiAmJiBiYXNlIDw9IDM2KSB7XG4gICAgICAvLyB2YXIgZ3JvdXBTaXplID0gTWF0aC5mbG9vcihCTi53b3JkU2l6ZSAqIE1hdGguTE4yIC8gTWF0aC5sb2coYmFzZSkpO1xuICAgICAgdmFyIGdyb3VwU2l6ZSA9IGdyb3VwU2l6ZXNbYmFzZV07XG4gICAgICAvLyB2YXIgZ3JvdXBCYXNlID0gTWF0aC5wb3coYmFzZSwgZ3JvdXBTaXplKTtcbiAgICAgIHZhciBncm91cEJhc2UgPSBncm91cEJhc2VzW2Jhc2VdO1xuICAgICAgb3V0ID0gJyc7XG4gICAgICB2YXIgYyA9IHRoaXMuY2xvbmUoKTtcbiAgICAgIGMubmVnYXRpdmUgPSAwO1xuICAgICAgd2hpbGUgKCFjLmlzWmVybygpKSB7XG4gICAgICAgIHZhciByID0gYy5tb2RuKGdyb3VwQmFzZSkudG9TdHJpbmcoYmFzZSk7XG4gICAgICAgIGMgPSBjLmlkaXZuKGdyb3VwQmFzZSk7XG5cbiAgICAgICAgaWYgKCFjLmlzWmVybygpKSB7XG4gICAgICAgICAgb3V0ID0gemVyb3NbZ3JvdXBTaXplIC0gci5sZW5ndGhdICsgciArIG91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXQgPSByICsgb3V0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc1plcm8oKSkge1xuICAgICAgICBvdXQgPSAnMCcgKyBvdXQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAob3V0Lmxlbmd0aCAlIHBhZGRpbmcgIT09IDApIHtcbiAgICAgICAgb3V0ID0gJzAnICsgb3V0O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDApIHtcbiAgICAgICAgb3V0ID0gJy0nICsgb3V0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICBhc3NlcnQoZmFsc2UsICdCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Jyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnRvTnVtYmVyID0gZnVuY3Rpb24gdG9OdW1iZXIgKCkge1xuICAgIHZhciByZXQgPSB0aGlzLndvcmRzWzBdO1xuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0ICs9IHRoaXMud29yZHNbMV0gKiAweDQwMDAwMDA7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxlbmd0aCA9PT0gMyAmJiB0aGlzLndvcmRzWzJdID09PSAweDAxKSB7XG4gICAgICAvLyBOT1RFOiBhdCB0aGlzIHN0YWdlIGl0IGlzIGtub3duIHRoYXQgdGhlIHRvcCBiaXQgaXMgc2V0XG4gICAgICByZXQgKz0gMHgxMDAwMDAwMDAwMDAwMCArICh0aGlzLndvcmRzWzFdICogMHg0MDAwMDAwKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGVuZ3RoID4gMikge1xuICAgICAgYXNzZXJ0KGZhbHNlLCAnTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzJyk7XG4gICAgfVxuICAgIHJldHVybiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkgPyAtcmV0IDogcmV0O1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiB0b0pTT04gKCkge1xuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKDE2KTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudG9CdWZmZXIgPSBmdW5jdGlvbiB0b0J1ZmZlciAoZW5kaWFuLCBsZW5ndGgpIHtcbiAgICBhc3NlcnQodHlwZW9mIEJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpO1xuICAgIHJldHVybiB0aGlzLnRvQXJyYXlMaWtlKEJ1ZmZlciwgZW5kaWFuLCBsZW5ndGgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gdG9BcnJheSAoZW5kaWFuLCBsZW5ndGgpIHtcbiAgICByZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSwgZW5kaWFuLCBsZW5ndGgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS50b0FycmF5TGlrZSA9IGZ1bmN0aW9uIHRvQXJyYXlMaWtlIChBcnJheVR5cGUsIGVuZGlhbiwgbGVuZ3RoKSB7XG4gICAgdmFyIGJ5dGVMZW5ndGggPSB0aGlzLmJ5dGVMZW5ndGgoKTtcbiAgICB2YXIgcmVxTGVuZ3RoID0gbGVuZ3RoIHx8IE1hdGgubWF4KDEsIGJ5dGVMZW5ndGgpO1xuICAgIGFzc2VydChieXRlTGVuZ3RoIDw9IHJlcUxlbmd0aCwgJ2J5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgnKTtcbiAgICBhc3NlcnQocmVxTGVuZ3RoID4gMCwgJ1JlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCcpO1xuXG4gICAgdGhpcy5zdHJpcCgpO1xuICAgIHZhciBsaXR0bGVFbmRpYW4gPSBlbmRpYW4gPT09ICdsZSc7XG4gICAgdmFyIHJlcyA9IG5ldyBBcnJheVR5cGUocmVxTGVuZ3RoKTtcblxuICAgIHZhciBiLCBpO1xuICAgIHZhciBxID0gdGhpcy5jbG9uZSgpO1xuICAgIGlmICghbGl0dGxlRW5kaWFuKSB7XG4gICAgICAvLyBBc3N1bWUgYmlnLWVuZGlhblxuICAgICAgZm9yIChpID0gMDsgaSA8IHJlcUxlbmd0aCAtIGJ5dGVMZW5ndGg7IGkrKykge1xuICAgICAgICByZXNbaV0gPSAwO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGkgPSAwOyAhcS5pc1plcm8oKTsgaSsrKSB7XG4gICAgICAgIGIgPSBxLmFuZGxuKDB4ZmYpO1xuICAgICAgICBxLml1c2hybig4KTtcblxuICAgICAgICByZXNbcmVxTGVuZ3RoIC0gaSAtIDFdID0gYjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChpID0gMDsgIXEuaXNaZXJvKCk7IGkrKykge1xuICAgICAgICBiID0gcS5hbmRsbigweGZmKTtcbiAgICAgICAgcS5pdXNocm4oOCk7XG5cbiAgICAgICAgcmVzW2ldID0gYjtcbiAgICAgIH1cblxuICAgICAgZm9yICg7IGkgPCByZXFMZW5ndGg7IGkrKykge1xuICAgICAgICByZXNbaV0gPSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgaWYgKE1hdGguY2x6MzIpIHtcbiAgICBCTi5wcm90b3R5cGUuX2NvdW50Qml0cyA9IGZ1bmN0aW9uIF9jb3VudEJpdHMgKHcpIHtcbiAgICAgIHJldHVybiAzMiAtIE1hdGguY2x6MzIodyk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBCTi5wcm90b3R5cGUuX2NvdW50Qml0cyA9IGZ1bmN0aW9uIF9jb3VudEJpdHMgKHcpIHtcbiAgICAgIHZhciB0ID0gdztcbiAgICAgIHZhciByID0gMDtcbiAgICAgIGlmICh0ID49IDB4MTAwMCkge1xuICAgICAgICByICs9IDEzO1xuICAgICAgICB0ID4+Pj0gMTM7XG4gICAgICB9XG4gICAgICBpZiAodCA+PSAweDQwKSB7XG4gICAgICAgIHIgKz0gNztcbiAgICAgICAgdCA+Pj49IDc7XG4gICAgICB9XG4gICAgICBpZiAodCA+PSAweDgpIHtcbiAgICAgICAgciArPSA0O1xuICAgICAgICB0ID4+Pj0gNDtcbiAgICAgIH1cbiAgICAgIGlmICh0ID49IDB4MDIpIHtcbiAgICAgICAgciArPSAyO1xuICAgICAgICB0ID4+Pj0gMjtcbiAgICAgIH1cbiAgICAgIHJldHVybiByICsgdDtcbiAgICB9O1xuICB9XG5cbiAgQk4ucHJvdG90eXBlLl96ZXJvQml0cyA9IGZ1bmN0aW9uIF96ZXJvQml0cyAodykge1xuICAgIC8vIFNob3J0LWN1dFxuICAgIGlmICh3ID09PSAwKSByZXR1cm4gMjY7XG5cbiAgICB2YXIgdCA9IHc7XG4gICAgdmFyIHIgPSAwO1xuICAgIGlmICgodCAmIDB4MWZmZikgPT09IDApIHtcbiAgICAgIHIgKz0gMTM7XG4gICAgICB0ID4+Pj0gMTM7XG4gICAgfVxuICAgIGlmICgodCAmIDB4N2YpID09PSAwKSB7XG4gICAgICByICs9IDc7XG4gICAgICB0ID4+Pj0gNztcbiAgICB9XG4gICAgaWYgKCh0ICYgMHhmKSA9PT0gMCkge1xuICAgICAgciArPSA0O1xuICAgICAgdCA+Pj49IDQ7XG4gICAgfVxuICAgIGlmICgodCAmIDB4MykgPT09IDApIHtcbiAgICAgIHIgKz0gMjtcbiAgICAgIHQgPj4+PSAyO1xuICAgIH1cbiAgICBpZiAoKHQgJiAweDEpID09PSAwKSB7XG4gICAgICByKys7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9O1xuXG4gIC8vIFJldHVybiBudW1iZXIgb2YgdXNlZCBiaXRzIGluIGEgQk5cbiAgQk4ucHJvdG90eXBlLmJpdExlbmd0aCA9IGZ1bmN0aW9uIGJpdExlbmd0aCAoKSB7XG4gICAgdmFyIHcgPSB0aGlzLndvcmRzW3RoaXMubGVuZ3RoIC0gMV07XG4gICAgdmFyIGhpID0gdGhpcy5fY291bnRCaXRzKHcpO1xuICAgIHJldHVybiAodGhpcy5sZW5ndGggLSAxKSAqIDI2ICsgaGk7XG4gIH07XG5cbiAgZnVuY3Rpb24gdG9CaXRBcnJheSAobnVtKSB7XG4gICAgdmFyIHcgPSBuZXcgQXJyYXkobnVtLmJpdExlbmd0aCgpKTtcblxuICAgIGZvciAodmFyIGJpdCA9IDA7IGJpdCA8IHcubGVuZ3RoOyBiaXQrKykge1xuICAgICAgdmFyIG9mZiA9IChiaXQgLyAyNikgfCAwO1xuICAgICAgdmFyIHdiaXQgPSBiaXQgJSAyNjtcblxuICAgICAgd1tiaXRdID0gKG51bS53b3Jkc1tvZmZdICYgKDEgPDwgd2JpdCkpID4+PiB3Yml0O1xuICAgIH1cblxuICAgIHJldHVybiB3O1xuICB9XG5cbiAgLy8gTnVtYmVyIG9mIHRyYWlsaW5nIHplcm8gYml0c1xuICBCTi5wcm90b3R5cGUuemVyb0JpdHMgPSBmdW5jdGlvbiB6ZXJvQml0cyAoKSB7XG4gICAgaWYgKHRoaXMuaXNaZXJvKCkpIHJldHVybiAwO1xuXG4gICAgdmFyIHIgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGIgPSB0aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW2ldKTtcbiAgICAgIHIgKz0gYjtcbiAgICAgIGlmIChiICE9PSAyNikgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5ieXRlTGVuZ3RoID0gZnVuY3Rpb24gYnl0ZUxlbmd0aCAoKSB7XG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpIC8gOCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnRvVHdvcyA9IGZ1bmN0aW9uIHRvVHdvcyAod2lkdGgpIHtcbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWJzKCkuaW5vdG4od2lkdGgpLmlhZGRuKDEpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5mcm9tVHdvcyA9IGZ1bmN0aW9uIGZyb21Ud29zICh3aWR0aCkge1xuICAgIGlmICh0aGlzLnRlc3RuKHdpZHRoIC0gMSkpIHtcbiAgICAgIHJldHVybiB0aGlzLm5vdG4od2lkdGgpLmlhZGRuKDEpLmluZWcoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaXNOZWcgPSBmdW5jdGlvbiBpc05lZyAoKSB7XG4gICAgcmV0dXJuIHRoaXMubmVnYXRpdmUgIT09IDA7XG4gIH07XG5cbiAgLy8gUmV0dXJuIG5lZ2F0aXZlIGNsb25lIG9mIGB0aGlzYFxuICBCTi5wcm90b3R5cGUubmVnID0gZnVuY3Rpb24gbmVnICgpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaW5lZyA9IGZ1bmN0aW9uIGluZWcgKCkge1xuICAgIGlmICghdGhpcy5pc1plcm8oKSkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSBePSAxO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8vIE9yIGBudW1gIHdpdGggYHRoaXNgIGluLXBsYWNlXG4gIEJOLnByb3RvdHlwZS5pdW9yID0gZnVuY3Rpb24gaXVvciAobnVtKSB7XG4gICAgd2hpbGUgKHRoaXMubGVuZ3RoIDwgbnVtLmxlbmd0aCkge1xuICAgICAgdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXSA9IDA7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSB0aGlzLndvcmRzW2ldIHwgbnVtLndvcmRzW2ldO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlvciA9IGZ1bmN0aW9uIGlvciAobnVtKSB7XG4gICAgYXNzZXJ0KCh0aGlzLm5lZ2F0aXZlIHwgbnVtLm5lZ2F0aXZlKSA9PT0gMCk7XG4gICAgcmV0dXJuIHRoaXMuaXVvcihudW0pO1xuICB9O1xuXG4gIC8vIE9yIGBudW1gIHdpdGggYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5vciA9IGZ1bmN0aW9uIG9yIChudW0pIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSByZXR1cm4gdGhpcy5jbG9uZSgpLmlvcihudW0pO1xuICAgIHJldHVybiBudW0uY2xvbmUoKS5pb3IodGhpcyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnVvciA9IGZ1bmN0aW9uIHVvciAobnVtKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkgcmV0dXJuIHRoaXMuY2xvbmUoKS5pdW9yKG51bSk7XG4gICAgcmV0dXJuIG51bS5jbG9uZSgpLml1b3IodGhpcyk7XG4gIH07XG5cbiAgLy8gQW5kIGBudW1gIHdpdGggYHRoaXNgIGluLXBsYWNlXG4gIEJOLnByb3RvdHlwZS5pdWFuZCA9IGZ1bmN0aW9uIGl1YW5kIChudW0pIHtcbiAgICAvLyBiID0gbWluLWxlbmd0aChudW0sIHRoaXMpXG4gICAgdmFyIGI7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkge1xuICAgICAgYiA9IG51bTtcbiAgICB9IGVsc2Uge1xuICAgICAgYiA9IHRoaXM7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gdGhpcy53b3Jkc1tpXSAmIG51bS53b3Jkc1tpXTtcbiAgICB9XG5cbiAgICB0aGlzLmxlbmd0aCA9IGIubGVuZ3RoO1xuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaWFuZCA9IGZ1bmN0aW9uIGlhbmQgKG51bSkge1xuICAgIGFzc2VydCgodGhpcy5uZWdhdGl2ZSB8IG51bS5uZWdhdGl2ZSkgPT09IDApO1xuICAgIHJldHVybiB0aGlzLml1YW5kKG51bSk7XG4gIH07XG5cbiAgLy8gQW5kIGBudW1gIHdpdGggYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbiBhbmQgKG51bSkge1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHJldHVybiB0aGlzLmNsb25lKCkuaWFuZChudW0pO1xuICAgIHJldHVybiBudW0uY2xvbmUoKS5pYW5kKHRoaXMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS51YW5kID0gZnVuY3Rpb24gdWFuZCAobnVtKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkgcmV0dXJuIHRoaXMuY2xvbmUoKS5pdWFuZChudW0pO1xuICAgIHJldHVybiBudW0uY2xvbmUoKS5pdWFuZCh0aGlzKTtcbiAgfTtcblxuICAvLyBYb3IgYG51bWAgd2l0aCBgdGhpc2AgaW4tcGxhY2VcbiAgQk4ucHJvdG90eXBlLml1eG9yID0gZnVuY3Rpb24gaXV4b3IgKG51bSkge1xuICAgIC8vIGEubGVuZ3RoID4gYi5sZW5ndGhcbiAgICB2YXIgYTtcbiAgICB2YXIgYjtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSB7XG4gICAgICBhID0gdGhpcztcbiAgICAgIGIgPSBudW07XG4gICAgfSBlbHNlIHtcbiAgICAgIGEgPSBudW07XG4gICAgICBiID0gdGhpcztcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGIubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSBhLndvcmRzW2ldIF4gYi53b3Jkc1tpXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcyAhPT0gYSkge1xuICAgICAgZm9yICg7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMud29yZHNbaV0gPSBhLndvcmRzW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubGVuZ3RoID0gYS5sZW5ndGg7XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5peG9yID0gZnVuY3Rpb24gaXhvciAobnVtKSB7XG4gICAgYXNzZXJ0KCh0aGlzLm5lZ2F0aXZlIHwgbnVtLm5lZ2F0aXZlKSA9PT0gMCk7XG4gICAgcmV0dXJuIHRoaXMuaXV4b3IobnVtKTtcbiAgfTtcblxuICAvLyBYb3IgYG51bWAgd2l0aCBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLnhvciA9IGZ1bmN0aW9uIHhvciAobnVtKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkgcmV0dXJuIHRoaXMuY2xvbmUoKS5peG9yKG51bSk7XG4gICAgcmV0dXJuIG51bS5jbG9uZSgpLml4b3IodGhpcyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnV4b3IgPSBmdW5jdGlvbiB1eG9yIChudW0pIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSByZXR1cm4gdGhpcy5jbG9uZSgpLml1eG9yKG51bSk7XG4gICAgcmV0dXJuIG51bS5jbG9uZSgpLml1eG9yKHRoaXMpO1xuICB9O1xuXG4gIC8vIE5vdCBgYHRoaXNgYCB3aXRoIGBgd2lkdGhgYCBiaXR3aWR0aFxuICBCTi5wcm90b3R5cGUuaW5vdG4gPSBmdW5jdGlvbiBpbm90biAod2lkdGgpIHtcbiAgICBhc3NlcnQodHlwZW9mIHdpZHRoID09PSAnbnVtYmVyJyAmJiB3aWR0aCA+PSAwKTtcblxuICAgIHZhciBieXRlc05lZWRlZCA9IE1hdGguY2VpbCh3aWR0aCAvIDI2KSB8IDA7XG4gICAgdmFyIGJpdHNMZWZ0ID0gd2lkdGggJSAyNjtcblxuICAgIC8vIEV4dGVuZCB0aGUgYnVmZmVyIHdpdGggbGVhZGluZyB6ZXJvZXNcbiAgICB0aGlzLl9leHBhbmQoYnl0ZXNOZWVkZWQpO1xuXG4gICAgaWYgKGJpdHNMZWZ0ID4gMCkge1xuICAgICAgYnl0ZXNOZWVkZWQtLTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgY29tcGxldGUgd29yZHNcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzTmVlZGVkOyBpKyspIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSB+dGhpcy53b3Jkc1tpXSAmIDB4M2ZmZmZmZjtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgdGhlIHJlc2lkdWVcbiAgICBpZiAoYml0c0xlZnQgPiAwKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gfnRoaXMud29yZHNbaV0gJiAoMHgzZmZmZmZmID4+ICgyNiAtIGJpdHNMZWZ0KSk7XG4gICAgfVxuXG4gICAgLy8gQW5kIHJlbW92ZSBsZWFkaW5nIHplcm9lc1xuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLm5vdG4gPSBmdW5jdGlvbiBub3RuICh3aWR0aCkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaW5vdG4od2lkdGgpO1xuICB9O1xuXG4gIC8vIFNldCBgYml0YCBvZiBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLnNldG4gPSBmdW5jdGlvbiBzZXRuIChiaXQsIHZhbCkge1xuICAgIGFzc2VydCh0eXBlb2YgYml0ID09PSAnbnVtYmVyJyAmJiBiaXQgPj0gMCk7XG5cbiAgICB2YXIgb2ZmID0gKGJpdCAvIDI2KSB8IDA7XG4gICAgdmFyIHdiaXQgPSBiaXQgJSAyNjtcblxuICAgIHRoaXMuX2V4cGFuZChvZmYgKyAxKTtcblxuICAgIGlmICh2YWwpIHtcbiAgICAgIHRoaXMud29yZHNbb2ZmXSA9IHRoaXMud29yZHNbb2ZmXSB8ICgxIDw8IHdiaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndvcmRzW29mZl0gPSB0aGlzLndvcmRzW29mZl0gJiB+KDEgPDwgd2JpdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICAvLyBBZGQgYG51bWAgdG8gYHRoaXNgIGluLXBsYWNlXG4gIEJOLnByb3RvdHlwZS5pYWRkID0gZnVuY3Rpb24gaWFkZCAobnVtKSB7XG4gICAgdmFyIHI7XG5cbiAgICAvLyBuZWdhdGl2ZSArIHBvc2l0aXZlXG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDAgJiYgbnVtLm5lZ2F0aXZlID09PSAwKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICAgIHIgPSB0aGlzLmlzdWIobnVtKTtcbiAgICAgIHRoaXMubmVnYXRpdmUgXj0gMTtcbiAgICAgIHJldHVybiB0aGlzLl9ub3JtU2lnbigpO1xuXG4gICAgLy8gcG9zaXRpdmUgKyBuZWdhdGl2ZVxuICAgIH0gZWxzZSBpZiAodGhpcy5uZWdhdGl2ZSA9PT0gMCAmJiBudW0ubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIG51bS5uZWdhdGl2ZSA9IDA7XG4gICAgICByID0gdGhpcy5pc3ViKG51bSk7XG4gICAgICBudW0ubmVnYXRpdmUgPSAxO1xuICAgICAgcmV0dXJuIHIuX25vcm1TaWduKCk7XG4gICAgfVxuXG4gICAgLy8gYS5sZW5ndGggPiBiLmxlbmd0aFxuICAgIHZhciBhLCBiO1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHtcbiAgICAgIGEgPSB0aGlzO1xuICAgICAgYiA9IG51bTtcbiAgICB9IGVsc2Uge1xuICAgICAgYSA9IG51bTtcbiAgICAgIGIgPSB0aGlzO1xuICAgIH1cblxuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiLmxlbmd0aDsgaSsrKSB7XG4gICAgICByID0gKGEud29yZHNbaV0gfCAwKSArIChiLndvcmRzW2ldIHwgMCkgKyBjYXJyeTtcbiAgICAgIHRoaXMud29yZHNbaV0gPSByICYgMHgzZmZmZmZmO1xuICAgICAgY2FycnkgPSByID4+PiAyNjtcbiAgICB9XG4gICAgZm9yICg7IGNhcnJ5ICE9PSAwICYmIGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICByID0gKGEud29yZHNbaV0gfCAwKSArIGNhcnJ5O1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IHIgJiAweDNmZmZmZmY7XG4gICAgICBjYXJyeSA9IHIgPj4+IDI2O1xuICAgIH1cblxuICAgIHRoaXMubGVuZ3RoID0gYS5sZW5ndGg7XG4gICAgaWYgKGNhcnJ5ICE9PSAwKSB7XG4gICAgICB0aGlzLndvcmRzW3RoaXMubGVuZ3RoXSA9IGNhcnJ5O1xuICAgICAgdGhpcy5sZW5ndGgrKztcbiAgICAvLyBDb3B5IHRoZSByZXN0IG9mIHRoZSB3b3Jkc1xuICAgIH0gZWxzZSBpZiAoYSAhPT0gdGhpcykge1xuICAgICAgZm9yICg7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMud29yZHNbaV0gPSBhLndvcmRzW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8vIEFkZCBgbnVtYCB0byBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIGFkZCAobnVtKSB7XG4gICAgdmFyIHJlcztcbiAgICBpZiAobnVtLm5lZ2F0aXZlICE9PSAwICYmIHRoaXMubmVnYXRpdmUgPT09IDApIHtcbiAgICAgIG51bS5uZWdhdGl2ZSA9IDA7XG4gICAgICByZXMgPSB0aGlzLnN1YihudW0pO1xuICAgICAgbnVtLm5lZ2F0aXZlIF49IDE7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0gZWxzZSBpZiAobnVtLm5lZ2F0aXZlID09PSAwICYmIHRoaXMubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgICAgcmVzID0gbnVtLnN1Yih0aGlzKTtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSByZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGQobnVtKTtcblxuICAgIHJldHVybiBudW0uY2xvbmUoKS5pYWRkKHRoaXMpO1xuICB9O1xuXG4gIC8vIFN1YnRyYWN0IGBudW1gIGZyb20gYHRoaXNgIGluLXBsYWNlXG4gIEJOLnByb3RvdHlwZS5pc3ViID0gZnVuY3Rpb24gaXN1YiAobnVtKSB7XG4gICAgLy8gdGhpcyAtICgtbnVtKSA9IHRoaXMgKyBudW1cbiAgICBpZiAobnVtLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICBudW0ubmVnYXRpdmUgPSAwO1xuICAgICAgdmFyIHIgPSB0aGlzLmlhZGQobnVtKTtcbiAgICAgIG51bS5uZWdhdGl2ZSA9IDE7XG4gICAgICByZXR1cm4gci5fbm9ybVNpZ24oKTtcblxuICAgIC8vIC10aGlzIC0gbnVtID0gLSh0aGlzICsgbnVtKVxuICAgIH0gZWxzZSBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgICB0aGlzLmlhZGQobnVtKTtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuICAgICAgcmV0dXJuIHRoaXMuX25vcm1TaWduKCk7XG4gICAgfVxuXG4gICAgLy8gQXQgdGhpcyBwb2ludCBib3RoIG51bWJlcnMgYXJlIHBvc2l0aXZlXG4gICAgdmFyIGNtcCA9IHRoaXMuY21wKG51bSk7XG5cbiAgICAvLyBPcHRpbWl6YXRpb24gLSB6ZXJvaWZ5XG4gICAgaWYgKGNtcCA9PT0gMCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgICB0aGlzLmxlbmd0aCA9IDE7XG4gICAgICB0aGlzLndvcmRzWzBdID0gMDtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIGEgPiBiXG4gICAgdmFyIGEsIGI7XG4gICAgaWYgKGNtcCA+IDApIHtcbiAgICAgIGEgPSB0aGlzO1xuICAgICAgYiA9IG51bTtcbiAgICB9IGVsc2Uge1xuICAgICAgYSA9IG51bTtcbiAgICAgIGIgPSB0aGlzO1xuICAgIH1cblxuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiLmxlbmd0aDsgaSsrKSB7XG4gICAgICByID0gKGEud29yZHNbaV0gfCAwKSAtIChiLndvcmRzW2ldIHwgMCkgKyBjYXJyeTtcbiAgICAgIGNhcnJ5ID0gciA+PiAyNjtcbiAgICAgIHRoaXMud29yZHNbaV0gPSByICYgMHgzZmZmZmZmO1xuICAgIH1cbiAgICBmb3IgKDsgY2FycnkgIT09IDAgJiYgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIHIgPSAoYS53b3Jkc1tpXSB8IDApICsgY2Fycnk7XG4gICAgICBjYXJyeSA9IHIgPj4gMjY7XG4gICAgICB0aGlzLndvcmRzW2ldID0gciAmIDB4M2ZmZmZmZjtcbiAgICB9XG5cbiAgICAvLyBDb3B5IHJlc3Qgb2YgdGhlIHdvcmRzXG4gICAgaWYgKGNhcnJ5ID09PSAwICYmIGkgPCBhLmxlbmd0aCAmJiBhICE9PSB0aGlzKSB7XG4gICAgICBmb3IgKDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpXSA9IGEud29yZHNbaV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sZW5ndGggPSBNYXRoLm1heCh0aGlzLmxlbmd0aCwgaSk7XG5cbiAgICBpZiAoYSAhPT0gdGhpcykge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICAvLyBTdWJ0cmFjdCBgbnVtYCBmcm9tIGB0aGlzYFxuICBCTi5wcm90b3R5cGUuc3ViID0gZnVuY3Rpb24gc3ViIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIobnVtKTtcbiAgfTtcblxuICBmdW5jdGlvbiBzbWFsbE11bFRvIChzZWxmLCBudW0sIG91dCkge1xuICAgIG91dC5uZWdhdGl2ZSA9IG51bS5uZWdhdGl2ZSBeIHNlbGYubmVnYXRpdmU7XG4gICAgdmFyIGxlbiA9IChzZWxmLmxlbmd0aCArIG51bS5sZW5ndGgpIHwgMDtcbiAgICBvdXQubGVuZ3RoID0gbGVuO1xuICAgIGxlbiA9IChsZW4gLSAxKSB8IDA7XG5cbiAgICAvLyBQZWVsIG9uZSBpdGVyYXRpb24gKGNvbXBpbGVyIGNhbid0IGRvIGl0LCBiZWNhdXNlIG9mIGNvZGUgY29tcGxleGl0eSlcbiAgICB2YXIgYSA9IHNlbGYud29yZHNbMF0gfCAwO1xuICAgIHZhciBiID0gbnVtLndvcmRzWzBdIHwgMDtcbiAgICB2YXIgciA9IGEgKiBiO1xuXG4gICAgdmFyIGxvID0gciAmIDB4M2ZmZmZmZjtcbiAgICB2YXIgY2FycnkgPSAociAvIDB4NDAwMDAwMCkgfCAwO1xuICAgIG91dC53b3Jkc1swXSA9IGxvO1xuXG4gICAgZm9yICh2YXIgayA9IDE7IGsgPCBsZW47IGsrKykge1xuICAgICAgLy8gU3VtIGFsbCB3b3JkcyB3aXRoIHRoZSBzYW1lIGBpICsgaiA9IGtgIGFuZCBhY2N1bXVsYXRlIGBuY2FycnlgLFxuICAgICAgLy8gbm90ZSB0aGF0IG5jYXJyeSBjb3VsZCBiZSA+PSAweDNmZmZmZmZcbiAgICAgIHZhciBuY2FycnkgPSBjYXJyeSA+Pj4gMjY7XG4gICAgICB2YXIgcndvcmQgPSBjYXJyeSAmIDB4M2ZmZmZmZjtcbiAgICAgIHZhciBtYXhKID0gTWF0aC5taW4oaywgbnVtLmxlbmd0aCAtIDEpO1xuICAgICAgZm9yICh2YXIgaiA9IE1hdGgubWF4KDAsIGsgLSBzZWxmLmxlbmd0aCArIDEpOyBqIDw9IG1heEo7IGorKykge1xuICAgICAgICB2YXIgaSA9IChrIC0gaikgfCAwO1xuICAgICAgICBhID0gc2VsZi53b3Jkc1tpXSB8IDA7XG4gICAgICAgIGIgPSBudW0ud29yZHNbal0gfCAwO1xuICAgICAgICByID0gYSAqIGIgKyByd29yZDtcbiAgICAgICAgbmNhcnJ5ICs9IChyIC8gMHg0MDAwMDAwKSB8IDA7XG4gICAgICAgIHJ3b3JkID0gciAmIDB4M2ZmZmZmZjtcbiAgICAgIH1cbiAgICAgIG91dC53b3Jkc1trXSA9IHJ3b3JkIHwgMDtcbiAgICAgIGNhcnJ5ID0gbmNhcnJ5IHwgMDtcbiAgICB9XG4gICAgaWYgKGNhcnJ5ICE9PSAwKSB7XG4gICAgICBvdXQud29yZHNba10gPSBjYXJyeSB8IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dC5sZW5ndGgtLTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0LnN0cmlwKCk7XG4gIH1cblxuICAvLyBUT0RPKGluZHV0bnkpOiBpdCBtYXkgYmUgcmVhc29uYWJsZSB0byBvbWl0IGl0IGZvciB1c2VycyB3aG8gZG9uJ3QgbmVlZFxuICAvLyB0byB3b3JrIHdpdGggMjU2LWJpdCBudW1iZXJzLCBvdGhlcndpc2UgaXQgZ2l2ZXMgMjAlIGltcHJvdmVtZW50IGZvciAyNTYtYml0XG4gIC8vIG11bHRpcGxpY2F0aW9uIChsaWtlIGVsbGlwdGljIHNlY3AyNTZrMSkuXG4gIHZhciBjb21iMTBNdWxUbyA9IGZ1bmN0aW9uIGNvbWIxME11bFRvIChzZWxmLCBudW0sIG91dCkge1xuICAgIHZhciBhID0gc2VsZi53b3JkcztcbiAgICB2YXIgYiA9IG51bS53b3JkcztcbiAgICB2YXIgbyA9IG91dC53b3JkcztcbiAgICB2YXIgYyA9IDA7XG4gICAgdmFyIGxvO1xuICAgIHZhciBtaWQ7XG4gICAgdmFyIGhpO1xuICAgIHZhciBhMCA9IGFbMF0gfCAwO1xuICAgIHZhciBhbDAgPSBhMCAmIDB4MWZmZjtcbiAgICB2YXIgYWgwID0gYTAgPj4+IDEzO1xuICAgIHZhciBhMSA9IGFbMV0gfCAwO1xuICAgIHZhciBhbDEgPSBhMSAmIDB4MWZmZjtcbiAgICB2YXIgYWgxID0gYTEgPj4+IDEzO1xuICAgIHZhciBhMiA9IGFbMl0gfCAwO1xuICAgIHZhciBhbDIgPSBhMiAmIDB4MWZmZjtcbiAgICB2YXIgYWgyID0gYTIgPj4+IDEzO1xuICAgIHZhciBhMyA9IGFbM10gfCAwO1xuICAgIHZhciBhbDMgPSBhMyAmIDB4MWZmZjtcbiAgICB2YXIgYWgzID0gYTMgPj4+IDEzO1xuICAgIHZhciBhNCA9IGFbNF0gfCAwO1xuICAgIHZhciBhbDQgPSBhNCAmIDB4MWZmZjtcbiAgICB2YXIgYWg0ID0gYTQgPj4+IDEzO1xuICAgIHZhciBhNSA9IGFbNV0gfCAwO1xuICAgIHZhciBhbDUgPSBhNSAmIDB4MWZmZjtcbiAgICB2YXIgYWg1ID0gYTUgPj4+IDEzO1xuICAgIHZhciBhNiA9IGFbNl0gfCAwO1xuICAgIHZhciBhbDYgPSBhNiAmIDB4MWZmZjtcbiAgICB2YXIgYWg2ID0gYTYgPj4+IDEzO1xuICAgIHZhciBhNyA9IGFbN10gfCAwO1xuICAgIHZhciBhbDcgPSBhNyAmIDB4MWZmZjtcbiAgICB2YXIgYWg3ID0gYTcgPj4+IDEzO1xuICAgIHZhciBhOCA9IGFbOF0gfCAwO1xuICAgIHZhciBhbDggPSBhOCAmIDB4MWZmZjtcbiAgICB2YXIgYWg4ID0gYTggPj4+IDEzO1xuICAgIHZhciBhOSA9IGFbOV0gfCAwO1xuICAgIHZhciBhbDkgPSBhOSAmIDB4MWZmZjtcbiAgICB2YXIgYWg5ID0gYTkgPj4+IDEzO1xuICAgIHZhciBiMCA9IGJbMF0gfCAwO1xuICAgIHZhciBibDAgPSBiMCAmIDB4MWZmZjtcbiAgICB2YXIgYmgwID0gYjAgPj4+IDEzO1xuICAgIHZhciBiMSA9IGJbMV0gfCAwO1xuICAgIHZhciBibDEgPSBiMSAmIDB4MWZmZjtcbiAgICB2YXIgYmgxID0gYjEgPj4+IDEzO1xuICAgIHZhciBiMiA9IGJbMl0gfCAwO1xuICAgIHZhciBibDIgPSBiMiAmIDB4MWZmZjtcbiAgICB2YXIgYmgyID0gYjIgPj4+IDEzO1xuICAgIHZhciBiMyA9IGJbM10gfCAwO1xuICAgIHZhciBibDMgPSBiMyAmIDB4MWZmZjtcbiAgICB2YXIgYmgzID0gYjMgPj4+IDEzO1xuICAgIHZhciBiNCA9IGJbNF0gfCAwO1xuICAgIHZhciBibDQgPSBiNCAmIDB4MWZmZjtcbiAgICB2YXIgYmg0ID0gYjQgPj4+IDEzO1xuICAgIHZhciBiNSA9IGJbNV0gfCAwO1xuICAgIHZhciBibDUgPSBiNSAmIDB4MWZmZjtcbiAgICB2YXIgYmg1ID0gYjUgPj4+IDEzO1xuICAgIHZhciBiNiA9IGJbNl0gfCAwO1xuICAgIHZhciBibDYgPSBiNiAmIDB4MWZmZjtcbiAgICB2YXIgYmg2ID0gYjYgPj4+IDEzO1xuICAgIHZhciBiNyA9IGJbN10gfCAwO1xuICAgIHZhciBibDcgPSBiNyAmIDB4MWZmZjtcbiAgICB2YXIgYmg3ID0gYjcgPj4+IDEzO1xuICAgIHZhciBiOCA9IGJbOF0gfCAwO1xuICAgIHZhciBibDggPSBiOCAmIDB4MWZmZjtcbiAgICB2YXIgYmg4ID0gYjggPj4+IDEzO1xuICAgIHZhciBiOSA9IGJbOV0gfCAwO1xuICAgIHZhciBibDkgPSBiOSAmIDB4MWZmZjtcbiAgICB2YXIgYmg5ID0gYjkgPj4+IDEzO1xuXG4gICAgb3V0Lm5lZ2F0aXZlID0gc2VsZi5uZWdhdGl2ZSBeIG51bS5uZWdhdGl2ZTtcbiAgICBvdXQubGVuZ3RoID0gMTk7XG4gICAgLyogayA9IDAgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDAsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsMCwgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoMCwgYmgwKTtcbiAgICB2YXIgdzAgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcwID4+PiAyNikpIHwgMDtcbiAgICB3MCAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDEgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDEsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsMSwgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoMSwgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDEpKSB8IDA7XG4gICAgdmFyIHcxID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MSA+Pj4gMjYpKSB8IDA7XG4gICAgdzEgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAyICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWwyLCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDIsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDIsIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmgxKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoMikpIHwgMDtcbiAgICB2YXIgdzIgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcyID4+PiAyNikpIHwgMDtcbiAgICB3MiAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDMgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDMsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsMywgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoMywgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDEpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmgyKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoMykpIHwgMDtcbiAgICB2YXIgdzMgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHczID4+PiAyNikpIHwgMDtcbiAgICB3MyAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDQgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDQsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsNCwgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoNCwgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDEpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmgyKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoMykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDQpKSB8IDA7XG4gICAgdmFyIHc0ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3NCA+Pj4gMjYpKSB8IDA7XG4gICAgdzQgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSA1ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw1LCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDUsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDUsIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmgxKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoMikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDMpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmg0KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoNSkpIHwgMDtcbiAgICB2YXIgdzUgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHc1ID4+PiAyNikpIHwgMDtcbiAgICB3NSAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDYgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDYsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsNiwgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoNiwgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDEpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmgyKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoMykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDQpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmg1KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoNikpIHwgMDtcbiAgICB2YXIgdzYgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHc2ID4+PiAyNikpIHwgMDtcbiAgICB3NiAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDcgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDcsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsNywgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoNywgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDEpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmgyKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoMykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDQpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmg1KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoNikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDcpKSB8IDA7XG4gICAgdmFyIHc3ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3NyA+Pj4gMjYpKSB8IDA7XG4gICAgdzcgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSA4ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw4LCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDgsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDgsIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmgxKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoMikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDMpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmg0KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoNSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDYpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmg3KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoOCkpIHwgMDtcbiAgICB2YXIgdzggPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHc4ID4+PiAyNikpIHwgMDtcbiAgICB3OCAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDkgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDEpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmgyKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoMykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDQpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmg1KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoNikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDcpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmg4KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzkgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHc5ID4+PiAyNikpIHwgMDtcbiAgICB3OSAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDEwICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDEpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoMSk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsMSkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoMSk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmgyKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoMykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDQpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmg1KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoNikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDcpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmg4KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzEwID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTAgPj4+IDI2KSkgfCAwO1xuICAgIHcxMCAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDExICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDIpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoMik7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsMikpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoMik7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmgzKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoNCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDUpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmg2KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoNykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDgpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmg5KSkgfCAwO1xuICAgIHZhciB3MTEgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxMSA+Pj4gMjYpKSB8IDA7XG4gICAgdzExICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTIgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsMyk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmgzKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmwzKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmgzKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDQpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmg1KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoNikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDcpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmg4KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzEyID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTIgPj4+IDI2KSkgfCAwO1xuICAgIHcxMiAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDEzICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDQpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoNCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsNCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoNCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmg1KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoNikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDcpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmg4KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzEzID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTMgPj4+IDI2KSkgfCAwO1xuICAgIHcxMyAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDE0ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDUpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoNSk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsNSkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoNSk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmg2KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoNykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDgpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmg5KSkgfCAwO1xuICAgIHZhciB3MTQgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxNCA+Pj4gMjYpKSB8IDA7XG4gICAgdzE0ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTUgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsNik7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmg2KTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmw2KSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmg2KTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDcpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmg4KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzE1ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTUgPj4+IDI2KSkgfCAwO1xuICAgIHcxNSAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDE2ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDcpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoNyk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsNykpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoNyk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmg4KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzE2ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTYgPj4+IDI2KSkgfCAwO1xuICAgIHcxNiAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDE3ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDgpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoOCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsOCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoOCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmg5KSkgfCAwO1xuICAgIHZhciB3MTcgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxNyA+Pj4gMjYpKSB8IDA7XG4gICAgdzE3ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTggKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsOSk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmg5KTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmw5KSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmg5KTtcbiAgICB2YXIgdzE4ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTggPj4+IDI2KSkgfCAwO1xuICAgIHcxOCAmPSAweDNmZmZmZmY7XG4gICAgb1swXSA9IHcwO1xuICAgIG9bMV0gPSB3MTtcbiAgICBvWzJdID0gdzI7XG4gICAgb1szXSA9IHczO1xuICAgIG9bNF0gPSB3NDtcbiAgICBvWzVdID0gdzU7XG4gICAgb1s2XSA9IHc2O1xuICAgIG9bN10gPSB3NztcbiAgICBvWzhdID0gdzg7XG4gICAgb1s5XSA9IHc5O1xuICAgIG9bMTBdID0gdzEwO1xuICAgIG9bMTFdID0gdzExO1xuICAgIG9bMTJdID0gdzEyO1xuICAgIG9bMTNdID0gdzEzO1xuICAgIG9bMTRdID0gdzE0O1xuICAgIG9bMTVdID0gdzE1O1xuICAgIG9bMTZdID0gdzE2O1xuICAgIG9bMTddID0gdzE3O1xuICAgIG9bMThdID0gdzE4O1xuICAgIGlmIChjICE9PSAwKSB7XG4gICAgICBvWzE5XSA9IGM7XG4gICAgICBvdXQubGVuZ3RoKys7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH07XG5cbiAgLy8gUG9seWZpbGwgY29tYlxuICBpZiAoIU1hdGguaW11bCkge1xuICAgIGNvbWIxME11bFRvID0gc21hbGxNdWxUbztcbiAgfVxuXG4gIGZ1bmN0aW9uIGJpZ011bFRvIChzZWxmLCBudW0sIG91dCkge1xuICAgIG91dC5uZWdhdGl2ZSA9IG51bS5uZWdhdGl2ZSBeIHNlbGYubmVnYXRpdmU7XG4gICAgb3V0Lmxlbmd0aCA9IHNlbGYubGVuZ3RoICsgbnVtLmxlbmd0aDtcblxuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgdmFyIGhuY2FycnkgPSAwO1xuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgb3V0Lmxlbmd0aCAtIDE7IGsrKykge1xuICAgICAgLy8gU3VtIGFsbCB3b3JkcyB3aXRoIHRoZSBzYW1lIGBpICsgaiA9IGtgIGFuZCBhY2N1bXVsYXRlIGBuY2FycnlgLFxuICAgICAgLy8gbm90ZSB0aGF0IG5jYXJyeSBjb3VsZCBiZSA+PSAweDNmZmZmZmZcbiAgICAgIHZhciBuY2FycnkgPSBobmNhcnJ5O1xuICAgICAgaG5jYXJyeSA9IDA7XG4gICAgICB2YXIgcndvcmQgPSBjYXJyeSAmIDB4M2ZmZmZmZjtcbiAgICAgIHZhciBtYXhKID0gTWF0aC5taW4oaywgbnVtLmxlbmd0aCAtIDEpO1xuICAgICAgZm9yICh2YXIgaiA9IE1hdGgubWF4KDAsIGsgLSBzZWxmLmxlbmd0aCArIDEpOyBqIDw9IG1heEo7IGorKykge1xuICAgICAgICB2YXIgaSA9IGsgLSBqO1xuICAgICAgICB2YXIgYSA9IHNlbGYud29yZHNbaV0gfCAwO1xuICAgICAgICB2YXIgYiA9IG51bS53b3Jkc1tqXSB8IDA7XG4gICAgICAgIHZhciByID0gYSAqIGI7XG5cbiAgICAgICAgdmFyIGxvID0gciAmIDB4M2ZmZmZmZjtcbiAgICAgICAgbmNhcnJ5ID0gKG5jYXJyeSArICgociAvIDB4NDAwMDAwMCkgfCAwKSkgfCAwO1xuICAgICAgICBsbyA9IChsbyArIHJ3b3JkKSB8IDA7XG4gICAgICAgIHJ3b3JkID0gbG8gJiAweDNmZmZmZmY7XG4gICAgICAgIG5jYXJyeSA9IChuY2FycnkgKyAobG8gPj4+IDI2KSkgfCAwO1xuXG4gICAgICAgIGhuY2FycnkgKz0gbmNhcnJ5ID4+PiAyNjtcbiAgICAgICAgbmNhcnJ5ICY9IDB4M2ZmZmZmZjtcbiAgICAgIH1cbiAgICAgIG91dC53b3Jkc1trXSA9IHJ3b3JkO1xuICAgICAgY2FycnkgPSBuY2Fycnk7XG4gICAgICBuY2FycnkgPSBobmNhcnJ5O1xuICAgIH1cbiAgICBpZiAoY2FycnkgIT09IDApIHtcbiAgICAgIG91dC53b3Jkc1trXSA9IGNhcnJ5O1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQubGVuZ3RoLS07XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dC5zdHJpcCgpO1xuICB9XG5cbiAgZnVuY3Rpb24ganVtYm9NdWxUbyAoc2VsZiwgbnVtLCBvdXQpIHtcbiAgICB2YXIgZmZ0bSA9IG5ldyBGRlRNKCk7XG4gICAgcmV0dXJuIGZmdG0ubXVscChzZWxmLCBudW0sIG91dCk7XG4gIH1cblxuICBCTi5wcm90b3R5cGUubXVsVG8gPSBmdW5jdGlvbiBtdWxUbyAobnVtLCBvdXQpIHtcbiAgICB2YXIgcmVzO1xuICAgIHZhciBsZW4gPSB0aGlzLmxlbmd0aCArIG51bS5sZW5ndGg7XG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAxMCAmJiBudW0ubGVuZ3RoID09PSAxMCkge1xuICAgICAgcmVzID0gY29tYjEwTXVsVG8odGhpcywgbnVtLCBvdXQpO1xuICAgIH0gZWxzZSBpZiAobGVuIDwgNjMpIHtcbiAgICAgIHJlcyA9IHNtYWxsTXVsVG8odGhpcywgbnVtLCBvdXQpO1xuICAgIH0gZWxzZSBpZiAobGVuIDwgMTAyNCkge1xuICAgICAgcmVzID0gYmlnTXVsVG8odGhpcywgbnVtLCBvdXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSBqdW1ib011bFRvKHRoaXMsIG51bSwgb3V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIC8vIENvb2xleS1UdWtleSBhbGdvcml0aG0gZm9yIEZGVFxuICAvLyBzbGlnaHRseSByZXZpc2l0ZWQgdG8gcmVseSBvbiBsb29waW5nIGluc3RlYWQgb2YgcmVjdXJzaW9uXG5cbiAgZnVuY3Rpb24gRkZUTSAoeCwgeSkge1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgfVxuXG4gIEZGVE0ucHJvdG90eXBlLm1ha2VSQlQgPSBmdW5jdGlvbiBtYWtlUkJUIChOKSB7XG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoTik7XG4gICAgdmFyIGwgPSBCTi5wcm90b3R5cGUuX2NvdW50Qml0cyhOKSAtIDE7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBOOyBpKyspIHtcbiAgICAgIHRbaV0gPSB0aGlzLnJldkJpbihpLCBsLCBOKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdDtcbiAgfTtcblxuICAvLyBSZXR1cm5zIGJpbmFyeS1yZXZlcnNlZCByZXByZXNlbnRhdGlvbiBvZiBgeGBcbiAgRkZUTS5wcm90b3R5cGUucmV2QmluID0gZnVuY3Rpb24gcmV2QmluICh4LCBsLCBOKSB7XG4gICAgaWYgKHggPT09IDAgfHwgeCA9PT0gTiAtIDEpIHJldHVybiB4O1xuXG4gICAgdmFyIHJiID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgcmIgfD0gKHggJiAxKSA8PCAobCAtIGkgLSAxKTtcbiAgICAgIHggPj49IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJiO1xuICB9O1xuXG4gIC8vIFBlcmZvcm1zIFwidHdlZWRsaW5nXCIgcGhhc2UsIHRoZXJlZm9yZSAnZW11bGF0aW5nJ1xuICAvLyBiZWhhdmlvdXIgb2YgdGhlIHJlY3Vyc2l2ZSBhbGdvcml0aG1cbiAgRkZUTS5wcm90b3R5cGUucGVybXV0ZSA9IGZ1bmN0aW9uIHBlcm11dGUgKHJidCwgcndzLCBpd3MsIHJ0d3MsIGl0d3MsIE4pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IE47IGkrKykge1xuICAgICAgcnR3c1tpXSA9IHJ3c1tyYnRbaV1dO1xuICAgICAgaXR3c1tpXSA9IGl3c1tyYnRbaV1dO1xuICAgIH1cbiAgfTtcblxuICBGRlRNLnByb3RvdHlwZS50cmFuc2Zvcm0gPSBmdW5jdGlvbiB0cmFuc2Zvcm0gKHJ3cywgaXdzLCBydHdzLCBpdHdzLCBOLCByYnQpIHtcbiAgICB0aGlzLnBlcm11dGUocmJ0LCByd3MsIGl3cywgcnR3cywgaXR3cywgTik7XG5cbiAgICBmb3IgKHZhciBzID0gMTsgcyA8IE47IHMgPDw9IDEpIHtcbiAgICAgIHZhciBsID0gcyA8PCAxO1xuXG4gICAgICB2YXIgcnR3ZGYgPSBNYXRoLmNvcygyICogTWF0aC5QSSAvIGwpO1xuICAgICAgdmFyIGl0d2RmID0gTWF0aC5zaW4oMiAqIE1hdGguUEkgLyBsKTtcblxuICAgICAgZm9yICh2YXIgcCA9IDA7IHAgPCBOOyBwICs9IGwpIHtcbiAgICAgICAgdmFyIHJ0d2RmXyA9IHJ0d2RmO1xuICAgICAgICB2YXIgaXR3ZGZfID0gaXR3ZGY7XG5cbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzOyBqKyspIHtcbiAgICAgICAgICB2YXIgcmUgPSBydHdzW3AgKyBqXTtcbiAgICAgICAgICB2YXIgaWUgPSBpdHdzW3AgKyBqXTtcblxuICAgICAgICAgIHZhciBybyA9IHJ0d3NbcCArIGogKyBzXTtcbiAgICAgICAgICB2YXIgaW8gPSBpdHdzW3AgKyBqICsgc107XG5cbiAgICAgICAgICB2YXIgcnggPSBydHdkZl8gKiBybyAtIGl0d2RmXyAqIGlvO1xuXG4gICAgICAgICAgaW8gPSBydHdkZl8gKiBpbyArIGl0d2RmXyAqIHJvO1xuICAgICAgICAgIHJvID0gcng7XG5cbiAgICAgICAgICBydHdzW3AgKyBqXSA9IHJlICsgcm87XG4gICAgICAgICAgaXR3c1twICsgal0gPSBpZSArIGlvO1xuXG4gICAgICAgICAgcnR3c1twICsgaiArIHNdID0gcmUgLSBybztcbiAgICAgICAgICBpdHdzW3AgKyBqICsgc10gPSBpZSAtIGlvO1xuXG4gICAgICAgICAgLyoganNoaW50IG1heGRlcHRoIDogZmFsc2UgKi9cbiAgICAgICAgICBpZiAoaiAhPT0gbCkge1xuICAgICAgICAgICAgcnggPSBydHdkZiAqIHJ0d2RmXyAtIGl0d2RmICogaXR3ZGZfO1xuXG4gICAgICAgICAgICBpdHdkZl8gPSBydHdkZiAqIGl0d2RmXyArIGl0d2RmICogcnR3ZGZfO1xuICAgICAgICAgICAgcnR3ZGZfID0gcng7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIEZGVE0ucHJvdG90eXBlLmd1ZXNzTGVuMTNiID0gZnVuY3Rpb24gZ3Vlc3NMZW4xM2IgKG4sIG0pIHtcbiAgICB2YXIgTiA9IE1hdGgubWF4KG0sIG4pIHwgMTtcbiAgICB2YXIgb2RkID0gTiAmIDE7XG4gICAgdmFyIGkgPSAwO1xuICAgIGZvciAoTiA9IE4gLyAyIHwgMDsgTjsgTiA9IE4gPj4+IDEpIHtcbiAgICAgIGkrKztcbiAgICB9XG5cbiAgICByZXR1cm4gMSA8PCBpICsgMSArIG9kZDtcbiAgfTtcblxuICBGRlRNLnByb3RvdHlwZS5jb25qdWdhdGUgPSBmdW5jdGlvbiBjb25qdWdhdGUgKHJ3cywgaXdzLCBOKSB7XG4gICAgaWYgKE4gPD0gMSkgcmV0dXJuO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBOIC8gMjsgaSsrKSB7XG4gICAgICB2YXIgdCA9IHJ3c1tpXTtcblxuICAgICAgcndzW2ldID0gcndzW04gLSBpIC0gMV07XG4gICAgICByd3NbTiAtIGkgLSAxXSA9IHQ7XG5cbiAgICAgIHQgPSBpd3NbaV07XG5cbiAgICAgIGl3c1tpXSA9IC1pd3NbTiAtIGkgLSAxXTtcbiAgICAgIGl3c1tOIC0gaSAtIDFdID0gLXQ7XG4gICAgfVxuICB9O1xuXG4gIEZGVE0ucHJvdG90eXBlLm5vcm1hbGl6ZTEzYiA9IGZ1bmN0aW9uIG5vcm1hbGl6ZTEzYiAod3MsIE4pIHtcbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTiAvIDI7IGkrKykge1xuICAgICAgdmFyIHcgPSBNYXRoLnJvdW5kKHdzWzIgKiBpICsgMV0gLyBOKSAqIDB4MjAwMCArXG4gICAgICAgIE1hdGgucm91bmQod3NbMiAqIGldIC8gTikgK1xuICAgICAgICBjYXJyeTtcblxuICAgICAgd3NbaV0gPSB3ICYgMHgzZmZmZmZmO1xuXG4gICAgICBpZiAodyA8IDB4NDAwMDAwMCkge1xuICAgICAgICBjYXJyeSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYXJyeSA9IHcgLyAweDQwMDAwMDAgfCAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB3cztcbiAgfTtcblxuICBGRlRNLnByb3RvdHlwZS5jb252ZXJ0MTNiID0gZnVuY3Rpb24gY29udmVydDEzYiAod3MsIGxlbiwgcndzLCBOKSB7XG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjYXJyeSA9IGNhcnJ5ICsgKHdzW2ldIHwgMCk7XG5cbiAgICAgIHJ3c1syICogaV0gPSBjYXJyeSAmIDB4MWZmZjsgY2FycnkgPSBjYXJyeSA+Pj4gMTM7XG4gICAgICByd3NbMiAqIGkgKyAxXSA9IGNhcnJ5ICYgMHgxZmZmOyBjYXJyeSA9IGNhcnJ5ID4+PiAxMztcbiAgICB9XG5cbiAgICAvLyBQYWQgd2l0aCB6ZXJvZXNcbiAgICBmb3IgKGkgPSAyICogbGVuOyBpIDwgTjsgKytpKSB7XG4gICAgICByd3NbaV0gPSAwO1xuICAgIH1cblxuICAgIGFzc2VydChjYXJyeSA9PT0gMCk7XG4gICAgYXNzZXJ0KChjYXJyeSAmIH4weDFmZmYpID09PSAwKTtcbiAgfTtcblxuICBGRlRNLnByb3RvdHlwZS5zdHViID0gZnVuY3Rpb24gc3R1YiAoTikge1xuICAgIHZhciBwaCA9IG5ldyBBcnJheShOKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IE47IGkrKykge1xuICAgICAgcGhbaV0gPSAwO1xuICAgIH1cblxuICAgIHJldHVybiBwaDtcbiAgfTtcblxuICBGRlRNLnByb3RvdHlwZS5tdWxwID0gZnVuY3Rpb24gbXVscCAoeCwgeSwgb3V0KSB7XG4gICAgdmFyIE4gPSAyICogdGhpcy5ndWVzc0xlbjEzYih4Lmxlbmd0aCwgeS5sZW5ndGgpO1xuXG4gICAgdmFyIHJidCA9IHRoaXMubWFrZVJCVChOKTtcblxuICAgIHZhciBfID0gdGhpcy5zdHViKE4pO1xuXG4gICAgdmFyIHJ3cyA9IG5ldyBBcnJheShOKTtcbiAgICB2YXIgcndzdCA9IG5ldyBBcnJheShOKTtcbiAgICB2YXIgaXdzdCA9IG5ldyBBcnJheShOKTtcblxuICAgIHZhciBucndzID0gbmV3IEFycmF5KE4pO1xuICAgIHZhciBucndzdCA9IG5ldyBBcnJheShOKTtcbiAgICB2YXIgbml3c3QgPSBuZXcgQXJyYXkoTik7XG5cbiAgICB2YXIgcm13cyA9IG91dC53b3JkcztcbiAgICBybXdzLmxlbmd0aCA9IE47XG5cbiAgICB0aGlzLmNvbnZlcnQxM2IoeC53b3JkcywgeC5sZW5ndGgsIHJ3cywgTik7XG4gICAgdGhpcy5jb252ZXJ0MTNiKHkud29yZHMsIHkubGVuZ3RoLCBucndzLCBOKTtcblxuICAgIHRoaXMudHJhbnNmb3JtKHJ3cywgXywgcndzdCwgaXdzdCwgTiwgcmJ0KTtcbiAgICB0aGlzLnRyYW5zZm9ybShucndzLCBfLCBucndzdCwgbml3c3QsIE4sIHJidCk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IE47IGkrKykge1xuICAgICAgdmFyIHJ4ID0gcndzdFtpXSAqIG5yd3N0W2ldIC0gaXdzdFtpXSAqIG5pd3N0W2ldO1xuICAgICAgaXdzdFtpXSA9IHJ3c3RbaV0gKiBuaXdzdFtpXSArIGl3c3RbaV0gKiBucndzdFtpXTtcbiAgICAgIHJ3c3RbaV0gPSByeDtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmp1Z2F0ZShyd3N0LCBpd3N0LCBOKTtcbiAgICB0aGlzLnRyYW5zZm9ybShyd3N0LCBpd3N0LCBybXdzLCBfLCBOLCByYnQpO1xuICAgIHRoaXMuY29uanVnYXRlKHJtd3MsIF8sIE4pO1xuICAgIHRoaXMubm9ybWFsaXplMTNiKHJtd3MsIE4pO1xuXG4gICAgb3V0Lm5lZ2F0aXZlID0geC5uZWdhdGl2ZSBeIHkubmVnYXRpdmU7XG4gICAgb3V0Lmxlbmd0aCA9IHgubGVuZ3RoICsgeS5sZW5ndGg7XG4gICAgcmV0dXJuIG91dC5zdHJpcCgpO1xuICB9O1xuXG4gIC8vIE11bHRpcGx5IGB0aGlzYCBieSBgbnVtYFxuICBCTi5wcm90b3R5cGUubXVsID0gZnVuY3Rpb24gbXVsIChudW0pIHtcbiAgICB2YXIgb3V0ID0gbmV3IEJOKG51bGwpO1xuICAgIG91dC53b3JkcyA9IG5ldyBBcnJheSh0aGlzLmxlbmd0aCArIG51bS5sZW5ndGgpO1xuICAgIHJldHVybiB0aGlzLm11bFRvKG51bSwgb3V0KTtcbiAgfTtcblxuICAvLyBNdWx0aXBseSBlbXBsb3lpbmcgRkZUXG4gIEJOLnByb3RvdHlwZS5tdWxmID0gZnVuY3Rpb24gbXVsZiAobnVtKSB7XG4gICAgdmFyIG91dCA9IG5ldyBCTihudWxsKTtcbiAgICBvdXQud29yZHMgPSBuZXcgQXJyYXkodGhpcy5sZW5ndGggKyBudW0ubGVuZ3RoKTtcbiAgICByZXR1cm4ganVtYm9NdWxUbyh0aGlzLCBudW0sIG91dCk7XG4gIH07XG5cbiAgLy8gSW4tcGxhY2UgTXVsdGlwbGljYXRpb25cbiAgQk4ucHJvdG90eXBlLmltdWwgPSBmdW5jdGlvbiBpbXVsIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKG51bSwgdGhpcyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmltdWxuID0gZnVuY3Rpb24gaW11bG4gKG51bSkge1xuICAgIGFzc2VydCh0eXBlb2YgbnVtID09PSAnbnVtYmVyJyk7XG4gICAgYXNzZXJ0KG51bSA8IDB4NDAwMDAwMCk7XG5cbiAgICAvLyBDYXJyeVxuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdyA9ICh0aGlzLndvcmRzW2ldIHwgMCkgKiBudW07XG4gICAgICB2YXIgbG8gPSAodyAmIDB4M2ZmZmZmZikgKyAoY2FycnkgJiAweDNmZmZmZmYpO1xuICAgICAgY2FycnkgPj49IDI2O1xuICAgICAgY2FycnkgKz0gKHcgLyAweDQwMDAwMDApIHwgMDtcbiAgICAgIC8vIE5PVEU6IGxvIGlzIDI3Yml0IG1heGltdW1cbiAgICAgIGNhcnJ5ICs9IGxvID4+PiAyNjtcbiAgICAgIHRoaXMud29yZHNbaV0gPSBsbyAmIDB4M2ZmZmZmZjtcbiAgICB9XG5cbiAgICBpZiAoY2FycnkgIT09IDApIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSBjYXJyeTtcbiAgICAgIHRoaXMubGVuZ3RoKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLm11bG4gPSBmdW5jdGlvbiBtdWxuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKG51bSk7XG4gIH07XG5cbiAgLy8gYHRoaXNgICogYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5zcXIgPSBmdW5jdGlvbiBzcXIgKCkge1xuICAgIHJldHVybiB0aGlzLm11bCh0aGlzKTtcbiAgfTtcblxuICAvLyBgdGhpc2AgKiBgdGhpc2AgaW4tcGxhY2VcbiAgQk4ucHJvdG90eXBlLmlzcXIgPSBmdW5jdGlvbiBpc3FyICgpIHtcbiAgICByZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSk7XG4gIH07XG5cbiAgLy8gTWF0aC5wb3coYHRoaXNgLCBgbnVtYClcbiAgQk4ucHJvdG90eXBlLnBvdyA9IGZ1bmN0aW9uIHBvdyAobnVtKSB7XG4gICAgdmFyIHcgPSB0b0JpdEFycmF5KG51bSk7XG4gICAgaWYgKHcubGVuZ3RoID09PSAwKSByZXR1cm4gbmV3IEJOKDEpO1xuXG4gICAgLy8gU2tpcCBsZWFkaW5nIHplcm9lc1xuICAgIHZhciByZXMgPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdy5sZW5ndGg7IGkrKywgcmVzID0gcmVzLnNxcigpKSB7XG4gICAgICBpZiAod1tpXSAhPT0gMCkgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKCsraSA8IHcubGVuZ3RoKSB7XG4gICAgICBmb3IgKHZhciBxID0gcmVzLnNxcigpOyBpIDwgdy5sZW5ndGg7IGkrKywgcSA9IHEuc3FyKCkpIHtcbiAgICAgICAgaWYgKHdbaV0gPT09IDApIGNvbnRpbnVlO1xuXG4gICAgICAgIHJlcyA9IHJlcy5tdWwocSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICAvLyBTaGlmdC1sZWZ0IGluLXBsYWNlXG4gIEJOLnByb3RvdHlwZS5pdXNobG4gPSBmdW5jdGlvbiBpdXNobG4gKGJpdHMpIHtcbiAgICBhc3NlcnQodHlwZW9mIGJpdHMgPT09ICdudW1iZXInICYmIGJpdHMgPj0gMCk7XG4gICAgdmFyIHIgPSBiaXRzICUgMjY7XG4gICAgdmFyIHMgPSAoYml0cyAtIHIpIC8gMjY7XG4gICAgdmFyIGNhcnJ5TWFzayA9ICgweDNmZmZmZmYgPj4+ICgyNiAtIHIpKSA8PCAoMjYgLSByKTtcbiAgICB2YXIgaTtcblxuICAgIGlmIChyICE9PSAwKSB7XG4gICAgICB2YXIgY2FycnkgPSAwO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbmV3Q2FycnkgPSB0aGlzLndvcmRzW2ldICYgY2FycnlNYXNrO1xuICAgICAgICB2YXIgYyA9ICgodGhpcy53b3Jkc1tpXSB8IDApIC0gbmV3Q2FycnkpIDw8IHI7XG4gICAgICAgIHRoaXMud29yZHNbaV0gPSBjIHwgY2Fycnk7XG4gICAgICAgIGNhcnJ5ID0gbmV3Q2FycnkgPj4+ICgyNiAtIHIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2FycnkpIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpXSA9IGNhcnJ5O1xuICAgICAgICB0aGlzLmxlbmd0aCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzICE9PSAwKSB7XG4gICAgICBmb3IgKGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIHRoaXMud29yZHNbaSArIHNdID0gdGhpcy53b3Jkc1tpXTtcbiAgICAgIH1cblxuICAgICAgZm9yIChpID0gMDsgaSA8IHM7IGkrKykge1xuICAgICAgICB0aGlzLndvcmRzW2ldID0gMDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sZW5ndGggKz0gcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pc2hsbiA9IGZ1bmN0aW9uIGlzaGxuIChiaXRzKSB7XG4gICAgLy8gVE9ETyhpbmR1dG55KTogaW1wbGVtZW50IG1lXG4gICAgYXNzZXJ0KHRoaXMubmVnYXRpdmUgPT09IDApO1xuICAgIHJldHVybiB0aGlzLml1c2hsbihiaXRzKTtcbiAgfTtcblxuICAvLyBTaGlmdC1yaWdodCBpbi1wbGFjZVxuICAvLyBOT1RFOiBgaGludGAgaXMgYSBsb3dlc3QgYml0IGJlZm9yZSB0cmFpbGluZyB6ZXJvZXNcbiAgLy8gTk9URTogaWYgYGV4dGVuZGVkYCBpcyBwcmVzZW50IC0gaXQgd2lsbCBiZSBmaWxsZWQgd2l0aCBkZXN0cm95ZWQgYml0c1xuICBCTi5wcm90b3R5cGUuaXVzaHJuID0gZnVuY3Rpb24gaXVzaHJuIChiaXRzLCBoaW50LCBleHRlbmRlZCkge1xuICAgIGFzc2VydCh0eXBlb2YgYml0cyA9PT0gJ251bWJlcicgJiYgYml0cyA+PSAwKTtcbiAgICB2YXIgaDtcbiAgICBpZiAoaGludCkge1xuICAgICAgaCA9IChoaW50IC0gKGhpbnQgJSAyNikpIC8gMjY7XG4gICAgfSBlbHNlIHtcbiAgICAgIGggPSAwO1xuICAgIH1cblxuICAgIHZhciByID0gYml0cyAlIDI2O1xuICAgIHZhciBzID0gTWF0aC5taW4oKGJpdHMgLSByKSAvIDI2LCB0aGlzLmxlbmd0aCk7XG4gICAgdmFyIG1hc2sgPSAweDNmZmZmZmYgXiAoKDB4M2ZmZmZmZiA+Pj4gcikgPDwgcik7XG4gICAgdmFyIG1hc2tlZFdvcmRzID0gZXh0ZW5kZWQ7XG5cbiAgICBoIC09IHM7XG4gICAgaCA9IE1hdGgubWF4KDAsIGgpO1xuXG4gICAgLy8gRXh0ZW5kZWQgbW9kZSwgY29weSBtYXNrZWQgcGFydFxuICAgIGlmIChtYXNrZWRXb3Jkcykge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzOyBpKyspIHtcbiAgICAgICAgbWFza2VkV29yZHMud29yZHNbaV0gPSB0aGlzLndvcmRzW2ldO1xuICAgICAgfVxuICAgICAgbWFza2VkV29yZHMubGVuZ3RoID0gcztcbiAgICB9XG5cbiAgICBpZiAocyA9PT0gMCkge1xuICAgICAgLy8gTm8tb3AsIHdlIHNob3VsZCBub3QgbW92ZSBhbnl0aGluZyBhdCBhbGxcbiAgICB9IGVsc2UgaWYgKHRoaXMubGVuZ3RoID4gcykge1xuICAgICAgdGhpcy5sZW5ndGggLT0gcztcbiAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMud29yZHNbaV0gPSB0aGlzLndvcmRzW2kgKyBzXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53b3Jkc1swXSA9IDA7XG4gICAgICB0aGlzLmxlbmd0aCA9IDE7XG4gICAgfVxuXG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMCAmJiAoY2FycnkgIT09IDAgfHwgaSA+PSBoKTsgaS0tKSB7XG4gICAgICB2YXIgd29yZCA9IHRoaXMud29yZHNbaV0gfCAwO1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IChjYXJyeSA8PCAoMjYgLSByKSkgfCAod29yZCA+Pj4gcik7XG4gICAgICBjYXJyeSA9IHdvcmQgJiBtYXNrO1xuICAgIH1cblxuICAgIC8vIFB1c2ggY2FycmllZCBiaXRzIGFzIGEgbWFza1xuICAgIGlmIChtYXNrZWRXb3JkcyAmJiBjYXJyeSAhPT0gMCkge1xuICAgICAgbWFza2VkV29yZHMud29yZHNbbWFza2VkV29yZHMubGVuZ3RoKytdID0gY2Fycnk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLndvcmRzWzBdID0gMDtcbiAgICAgIHRoaXMubGVuZ3RoID0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pc2hybiA9IGZ1bmN0aW9uIGlzaHJuIChiaXRzLCBoaW50LCBleHRlbmRlZCkge1xuICAgIC8vIFRPRE8oaW5kdXRueSk6IGltcGxlbWVudCBtZVxuICAgIGFzc2VydCh0aGlzLm5lZ2F0aXZlID09PSAwKTtcbiAgICByZXR1cm4gdGhpcy5pdXNocm4oYml0cywgaGludCwgZXh0ZW5kZWQpO1xuICB9O1xuXG4gIC8vIFNoaWZ0LWxlZnRcbiAgQk4ucHJvdG90eXBlLnNobG4gPSBmdW5jdGlvbiBzaGxuIChiaXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihiaXRzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudXNobG4gPSBmdW5jdGlvbiB1c2hsbiAoYml0cykge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKGJpdHMpO1xuICB9O1xuXG4gIC8vIFNoaWZ0LXJpZ2h0XG4gIEJOLnByb3RvdHlwZS5zaHJuID0gZnVuY3Rpb24gc2hybiAoYml0cykge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaXNocm4oYml0cyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnVzaHJuID0gZnVuY3Rpb24gdXNocm4gKGJpdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihiaXRzKTtcbiAgfTtcblxuICAvLyBUZXN0IGlmIG4gYml0IGlzIHNldFxuICBCTi5wcm90b3R5cGUudGVzdG4gPSBmdW5jdGlvbiB0ZXN0biAoYml0KSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBiaXQgPT09ICdudW1iZXInICYmIGJpdCA+PSAwKTtcbiAgICB2YXIgciA9IGJpdCAlIDI2O1xuICAgIHZhciBzID0gKGJpdCAtIHIpIC8gMjY7XG4gICAgdmFyIHEgPSAxIDw8IHI7XG5cbiAgICAvLyBGYXN0IGNhc2U6IGJpdCBpcyBtdWNoIGhpZ2hlciB0aGFuIGFsbCBleGlzdGluZyB3b3Jkc1xuICAgIGlmICh0aGlzLmxlbmd0aCA8PSBzKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBDaGVjayBiaXQgYW5kIHJldHVyblxuICAgIHZhciB3ID0gdGhpcy53b3Jkc1tzXTtcblxuICAgIHJldHVybiAhISh3ICYgcSk7XG4gIH07XG5cbiAgLy8gUmV0dXJuIG9ubHkgbG93ZXJzIGJpdHMgb2YgbnVtYmVyIChpbi1wbGFjZSlcbiAgQk4ucHJvdG90eXBlLmltYXNrbiA9IGZ1bmN0aW9uIGltYXNrbiAoYml0cykge1xuICAgIGFzc2VydCh0eXBlb2YgYml0cyA9PT0gJ251bWJlcicgJiYgYml0cyA+PSAwKTtcbiAgICB2YXIgciA9IGJpdHMgJSAyNjtcbiAgICB2YXIgcyA9IChiaXRzIC0gcikgLyAyNjtcblxuICAgIGFzc2VydCh0aGlzLm5lZ2F0aXZlID09PSAwLCAnaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzJyk7XG5cbiAgICBpZiAodGhpcy5sZW5ndGggPD0gcykge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHIgIT09IDApIHtcbiAgICAgIHMrKztcbiAgICB9XG4gICAgdGhpcy5sZW5ndGggPSBNYXRoLm1pbihzLCB0aGlzLmxlbmd0aCk7XG5cbiAgICBpZiAociAhPT0gMCkge1xuICAgICAgdmFyIG1hc2sgPSAweDNmZmZmZmYgXiAoKDB4M2ZmZmZmZiA+Pj4gcikgPDwgcik7XG4gICAgICB0aGlzLndvcmRzW3RoaXMubGVuZ3RoIC0gMV0gJj0gbWFzaztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIC8vIFJldHVybiBvbmx5IGxvd2VycyBiaXRzIG9mIG51bWJlclxuICBCTi5wcm90b3R5cGUubWFza24gPSBmdW5jdGlvbiBtYXNrbiAoYml0cykge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGJpdHMpO1xuICB9O1xuXG4gIC8vIEFkZCBwbGFpbiBudW1iZXIgYG51bWAgdG8gYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5pYWRkbiA9IGZ1bmN0aW9uIGlhZGRuIChudW0pIHtcbiAgICBhc3NlcnQodHlwZW9mIG51bSA9PT0gJ251bWJlcicpO1xuICAgIGFzc2VydChudW0gPCAweDQwMDAwMDApO1xuICAgIGlmIChudW0gPCAwKSByZXR1cm4gdGhpcy5pc3VibigtbnVtKTtcblxuICAgIC8vIFBvc3NpYmxlIHNpZ24gY2hhbmdlXG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMSAmJiAodGhpcy53b3Jkc1swXSB8IDApIDwgbnVtKSB7XG4gICAgICAgIHRoaXMud29yZHNbMF0gPSBudW0gLSAodGhpcy53b3Jkc1swXSB8IDApO1xuICAgICAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgICAgdGhpcy5pc3VibihudW0pO1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBBZGQgd2l0aG91dCBjaGVja3NcbiAgICByZXR1cm4gdGhpcy5faWFkZG4obnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX2lhZGRuID0gZnVuY3Rpb24gX2lhZGRuIChudW0pIHtcbiAgICB0aGlzLndvcmRzWzBdICs9IG51bTtcblxuICAgIC8vIENhcnJ5XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aCAmJiB0aGlzLndvcmRzW2ldID49IDB4NDAwMDAwMDsgaSsrKSB7XG4gICAgICB0aGlzLndvcmRzW2ldIC09IDB4NDAwMDAwMDtcbiAgICAgIGlmIChpID09PSB0aGlzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpICsgMV0gPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpICsgMV0rKztcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sZW5ndGggPSBNYXRoLm1heCh0aGlzLmxlbmd0aCwgaSArIDEpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gU3VidHJhY3QgcGxhaW4gbnVtYmVyIGBudW1gIGZyb20gYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5pc3VibiA9IGZ1bmN0aW9uIGlzdWJuIChudW0pIHtcbiAgICBhc3NlcnQodHlwZW9mIG51bSA9PT0gJ251bWJlcicpO1xuICAgIGFzc2VydChudW0gPCAweDQwMDAwMDApO1xuICAgIGlmIChudW0gPCAwKSByZXR1cm4gdGhpcy5pYWRkbigtbnVtKTtcblxuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICAgIHRoaXMuaWFkZG4obnVtKTtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy53b3Jkc1swXSAtPSBudW07XG5cbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDEgJiYgdGhpcy53b3Jkc1swXSA8IDApIHtcbiAgICAgIHRoaXMud29yZHNbMF0gPSAtdGhpcy53b3Jkc1swXTtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDYXJyeVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aCAmJiB0aGlzLndvcmRzW2ldIDwgMDsgaSsrKSB7XG4gICAgICAgIHRoaXMud29yZHNbaV0gKz0gMHg0MDAwMDAwO1xuICAgICAgICB0aGlzLndvcmRzW2kgKyAxXSAtPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmFkZG4gPSBmdW5jdGlvbiBhZGRuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnN1Ym4gPSBmdW5jdGlvbiBzdWJuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlhYnMgPSBmdW5jdGlvbiBpYWJzICgpIHtcbiAgICB0aGlzLm5lZ2F0aXZlID0gMDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5hYnMgPSBmdW5jdGlvbiBhYnMgKCkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaWFicygpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5faXNobG5zdWJtdWwgPSBmdW5jdGlvbiBfaXNobG5zdWJtdWwgKG51bSwgbXVsLCBzaGlmdCkge1xuICAgIHZhciBsZW4gPSBudW0ubGVuZ3RoICsgc2hpZnQ7XG4gICAgdmFyIGk7XG5cbiAgICB0aGlzLl9leHBhbmQobGVuKTtcblxuICAgIHZhciB3O1xuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yIChpID0gMDsgaSA8IG51bS5sZW5ndGg7IGkrKykge1xuICAgICAgdyA9ICh0aGlzLndvcmRzW2kgKyBzaGlmdF0gfCAwKSArIGNhcnJ5O1xuICAgICAgdmFyIHJpZ2h0ID0gKG51bS53b3Jkc1tpXSB8IDApICogbXVsO1xuICAgICAgdyAtPSByaWdodCAmIDB4M2ZmZmZmZjtcbiAgICAgIGNhcnJ5ID0gKHcgPj4gMjYpIC0gKChyaWdodCAvIDB4NDAwMDAwMCkgfCAwKTtcbiAgICAgIHRoaXMud29yZHNbaSArIHNoaWZ0XSA9IHcgJiAweDNmZmZmZmY7XG4gICAgfVxuICAgIGZvciAoOyBpIDwgdGhpcy5sZW5ndGggLSBzaGlmdDsgaSsrKSB7XG4gICAgICB3ID0gKHRoaXMud29yZHNbaSArIHNoaWZ0XSB8IDApICsgY2Fycnk7XG4gICAgICBjYXJyeSA9IHcgPj4gMjY7XG4gICAgICB0aGlzLndvcmRzW2kgKyBzaGlmdF0gPSB3ICYgMHgzZmZmZmZmO1xuICAgIH1cblxuICAgIGlmIChjYXJyeSA9PT0gMCkgcmV0dXJuIHRoaXMuc3RyaXAoKTtcblxuICAgIC8vIFN1YnRyYWN0aW9uIG92ZXJmbG93XG4gICAgYXNzZXJ0KGNhcnJ5ID09PSAtMSk7XG4gICAgY2FycnkgPSAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB3ID0gLSh0aGlzLndvcmRzW2ldIHwgMCkgKyBjYXJyeTtcbiAgICAgIGNhcnJ5ID0gdyA+PiAyNjtcbiAgICAgIHRoaXMud29yZHNbaV0gPSB3ICYgMHgzZmZmZmZmO1xuICAgIH1cbiAgICB0aGlzLm5lZ2F0aXZlID0gMTtcblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl93b3JkRGl2ID0gZnVuY3Rpb24gX3dvcmREaXYgKG51bSwgbW9kZSkge1xuICAgIHZhciBzaGlmdCA9IHRoaXMubGVuZ3RoIC0gbnVtLmxlbmd0aDtcblxuICAgIHZhciBhID0gdGhpcy5jbG9uZSgpO1xuICAgIHZhciBiID0gbnVtO1xuXG4gICAgLy8gTm9ybWFsaXplXG4gICAgdmFyIGJoaSA9IGIud29yZHNbYi5sZW5ndGggLSAxXSB8IDA7XG4gICAgdmFyIGJoaUJpdHMgPSB0aGlzLl9jb3VudEJpdHMoYmhpKTtcbiAgICBzaGlmdCA9IDI2IC0gYmhpQml0cztcbiAgICBpZiAoc2hpZnQgIT09IDApIHtcbiAgICAgIGIgPSBiLnVzaGxuKHNoaWZ0KTtcbiAgICAgIGEuaXVzaGxuKHNoaWZ0KTtcbiAgICAgIGJoaSA9IGIud29yZHNbYi5sZW5ndGggLSAxXSB8IDA7XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBxdW90aWVudFxuICAgIHZhciBtID0gYS5sZW5ndGggLSBiLmxlbmd0aDtcbiAgICB2YXIgcTtcblxuICAgIGlmIChtb2RlICE9PSAnbW9kJykge1xuICAgICAgcSA9IG5ldyBCTihudWxsKTtcbiAgICAgIHEubGVuZ3RoID0gbSArIDE7XG4gICAgICBxLndvcmRzID0gbmV3IEFycmF5KHEubGVuZ3RoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcS5sZW5ndGg7IGkrKykge1xuICAgICAgICBxLndvcmRzW2ldID0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGlmZiA9IGEuY2xvbmUoKS5faXNobG5zdWJtdWwoYiwgMSwgbSk7XG4gICAgaWYgKGRpZmYubmVnYXRpdmUgPT09IDApIHtcbiAgICAgIGEgPSBkaWZmO1xuICAgICAgaWYgKHEpIHtcbiAgICAgICAgcS53b3Jkc1ttXSA9IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaiA9IG0gLSAxOyBqID49IDA7IGotLSkge1xuICAgICAgdmFyIHFqID0gKGEud29yZHNbYi5sZW5ndGggKyBqXSB8IDApICogMHg0MDAwMDAwICtcbiAgICAgICAgKGEud29yZHNbYi5sZW5ndGggKyBqIC0gMV0gfCAwKTtcblxuICAgICAgLy8gTk9URTogKHFqIC8gYmhpKSBpcyAoMHgzZmZmZmZmICogMHg0MDAwMDAwICsgMHgzZmZmZmZmKSAvIDB4MjAwMDAwMCBtYXhcbiAgICAgIC8vICgweDdmZmZmZmYpXG4gICAgICBxaiA9IE1hdGgubWluKChxaiAvIGJoaSkgfCAwLCAweDNmZmZmZmYpO1xuXG4gICAgICBhLl9pc2hsbnN1Ym11bChiLCBxaiwgaik7XG4gICAgICB3aGlsZSAoYS5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgICBxai0tO1xuICAgICAgICBhLm5lZ2F0aXZlID0gMDtcbiAgICAgICAgYS5faXNobG5zdWJtdWwoYiwgMSwgaik7XG4gICAgICAgIGlmICghYS5pc1plcm8oKSkge1xuICAgICAgICAgIGEubmVnYXRpdmUgXj0gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHEpIHtcbiAgICAgICAgcS53b3Jkc1tqXSA9IHFqO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocSkge1xuICAgICAgcS5zdHJpcCgpO1xuICAgIH1cbiAgICBhLnN0cmlwKCk7XG5cbiAgICAvLyBEZW5vcm1hbGl6ZVxuICAgIGlmIChtb2RlICE9PSAnZGl2JyAmJiBzaGlmdCAhPT0gMCkge1xuICAgICAgYS5pdXNocm4oc2hpZnQpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkaXY6IHEgfHwgbnVsbCxcbiAgICAgIG1vZDogYVxuICAgIH07XG4gIH07XG5cbiAgLy8gTk9URTogMSkgYG1vZGVgIGNhbiBiZSBzZXQgdG8gYG1vZGAgdG8gcmVxdWVzdCBtb2Qgb25seSxcbiAgLy8gICAgICAgdG8gYGRpdmAgdG8gcmVxdWVzdCBkaXYgb25seSwgb3IgYmUgYWJzZW50IHRvXG4gIC8vICAgICAgIHJlcXVlc3QgYm90aCBkaXYgJiBtb2RcbiAgLy8gICAgICAgMikgYHBvc2l0aXZlYCBpcyB0cnVlIGlmIHVuc2lnbmVkIG1vZCBpcyByZXF1ZXN0ZWRcbiAgQk4ucHJvdG90eXBlLmRpdm1vZCA9IGZ1bmN0aW9uIGRpdm1vZCAobnVtLCBtb2RlLCBwb3NpdGl2ZSkge1xuICAgIGFzc2VydCghbnVtLmlzWmVybygpKTtcblxuICAgIGlmICh0aGlzLmlzWmVybygpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkaXY6IG5ldyBCTigwKSxcbiAgICAgICAgbW9kOiBuZXcgQk4oMClcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGRpdiwgbW9kLCByZXM7XG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDAgJiYgbnVtLm5lZ2F0aXZlID09PSAwKSB7XG4gICAgICByZXMgPSB0aGlzLm5lZygpLmRpdm1vZChudW0sIG1vZGUpO1xuXG4gICAgICBpZiAobW9kZSAhPT0gJ21vZCcpIHtcbiAgICAgICAgZGl2ID0gcmVzLmRpdi5uZWcoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgIT09ICdkaXYnKSB7XG4gICAgICAgIG1vZCA9IHJlcy5tb2QubmVnKCk7XG4gICAgICAgIGlmIChwb3NpdGl2ZSAmJiBtb2QubmVnYXRpdmUgIT09IDApIHtcbiAgICAgICAgICBtb2QuaWFkZChudW0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRpdjogZGl2LFxuICAgICAgICBtb2Q6IG1vZFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uZWdhdGl2ZSA9PT0gMCAmJiBudW0ubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIHJlcyA9IHRoaXMuZGl2bW9kKG51bS5uZWcoKSwgbW9kZSk7XG5cbiAgICAgIGlmIChtb2RlICE9PSAnbW9kJykge1xuICAgICAgICBkaXYgPSByZXMuZGl2Lm5lZygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkaXY6IGRpdixcbiAgICAgICAgbW9kOiByZXMubW9kXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICgodGhpcy5uZWdhdGl2ZSAmIG51bS5uZWdhdGl2ZSkgIT09IDApIHtcbiAgICAgIHJlcyA9IHRoaXMubmVnKCkuZGl2bW9kKG51bS5uZWcoKSwgbW9kZSk7XG5cbiAgICAgIGlmIChtb2RlICE9PSAnZGl2Jykge1xuICAgICAgICBtb2QgPSByZXMubW9kLm5lZygpO1xuICAgICAgICBpZiAocG9zaXRpdmUgJiYgbW9kLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICAgICAgbW9kLmlzdWIobnVtKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkaXY6IHJlcy5kaXYsXG4gICAgICAgIG1vZDogbW9kXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEJvdGggbnVtYmVycyBhcmUgcG9zaXRpdmUgYXQgdGhpcyBwb2ludFxuXG4gICAgLy8gU3RyaXAgYm90aCBudW1iZXJzIHRvIGFwcHJveGltYXRlIHNoaWZ0IHZhbHVlXG4gICAgaWYgKG51bS5sZW5ndGggPiB0aGlzLmxlbmd0aCB8fCB0aGlzLmNtcChudW0pIDwgMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiBuZXcgQk4oMCksXG4gICAgICAgIG1vZDogdGhpc1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBWZXJ5IHNob3J0IHJlZHVjdGlvblxuICAgIGlmIChudW0ubGVuZ3RoID09PSAxKSB7XG4gICAgICBpZiAobW9kZSA9PT0gJ2RpdicpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkaXY6IHRoaXMuZGl2bihudW0ud29yZHNbMF0pLFxuICAgICAgICAgIG1vZDogbnVsbFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kZSA9PT0gJ21vZCcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkaXY6IG51bGwsXG4gICAgICAgICAgbW9kOiBuZXcgQk4odGhpcy5tb2RuKG51bS53b3Jkc1swXSkpXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRpdjogdGhpcy5kaXZuKG51bS53b3Jkc1swXSksXG4gICAgICAgIG1vZDogbmV3IEJOKHRoaXMubW9kbihudW0ud29yZHNbMF0pKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fd29yZERpdihudW0sIG1vZGUpO1xuICB9O1xuXG4gIC8vIEZpbmQgYHRoaXNgIC8gYG51bWBcbiAgQk4ucHJvdG90eXBlLmRpdiA9IGZ1bmN0aW9uIGRpdiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuZGl2bW9kKG51bSwgJ2RpdicsIGZhbHNlKS5kaXY7XG4gIH07XG5cbiAgLy8gRmluZCBgdGhpc2AgJSBgbnVtYFxuICBCTi5wcm90b3R5cGUubW9kID0gZnVuY3Rpb24gbW9kIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5kaXZtb2QobnVtLCAnbW9kJywgZmFsc2UpLm1vZDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudW1vZCA9IGZ1bmN0aW9uIHVtb2QgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmRpdm1vZChudW0sICdtb2QnLCB0cnVlKS5tb2Q7XG4gIH07XG5cbiAgLy8gRmluZCBSb3VuZChgdGhpc2AgLyBgbnVtYClcbiAgQk4ucHJvdG90eXBlLmRpdlJvdW5kID0gZnVuY3Rpb24gZGl2Um91bmQgKG51bSkge1xuICAgIHZhciBkbSA9IHRoaXMuZGl2bW9kKG51bSk7XG5cbiAgICAvLyBGYXN0IGNhc2UgLSBleGFjdCBkaXZpc2lvblxuICAgIGlmIChkbS5tb2QuaXNaZXJvKCkpIHJldHVybiBkbS5kaXY7XG5cbiAgICB2YXIgbW9kID0gZG0uZGl2Lm5lZ2F0aXZlICE9PSAwID8gZG0ubW9kLmlzdWIobnVtKSA6IGRtLm1vZDtcblxuICAgIHZhciBoYWxmID0gbnVtLnVzaHJuKDEpO1xuICAgIHZhciByMiA9IG51bS5hbmRsbigxKTtcbiAgICB2YXIgY21wID0gbW9kLmNtcChoYWxmKTtcblxuICAgIC8vIFJvdW5kIGRvd25cbiAgICBpZiAoY21wIDwgMCB8fCByMiA9PT0gMSAmJiBjbXAgPT09IDApIHJldHVybiBkbS5kaXY7XG5cbiAgICAvLyBSb3VuZCB1cFxuICAgIHJldHVybiBkbS5kaXYubmVnYXRpdmUgIT09IDAgPyBkbS5kaXYuaXN1Ym4oMSkgOiBkbS5kaXYuaWFkZG4oMSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLm1vZG4gPSBmdW5jdGlvbiBtb2RuIChudW0pIHtcbiAgICBhc3NlcnQobnVtIDw9IDB4M2ZmZmZmZik7XG4gICAgdmFyIHAgPSAoMSA8PCAyNikgJSBudW07XG5cbiAgICB2YXIgYWNjID0gMDtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgYWNjID0gKHAgKiBhY2MgKyAodGhpcy53b3Jkc1tpXSB8IDApKSAlIG51bTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9O1xuXG4gIC8vIEluLXBsYWNlIGRpdmlzaW9uIGJ5IG51bWJlclxuICBCTi5wcm90b3R5cGUuaWRpdm4gPSBmdW5jdGlvbiBpZGl2biAobnVtKSB7XG4gICAgYXNzZXJ0KG51bSA8PSAweDNmZmZmZmYpO1xuXG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgdmFyIHcgPSAodGhpcy53b3Jkc1tpXSB8IDApICsgY2FycnkgKiAweDQwMDAwMDA7XG4gICAgICB0aGlzLndvcmRzW2ldID0gKHcgLyBudW0pIHwgMDtcbiAgICAgIGNhcnJ5ID0gdyAlIG51bTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5kaXZuID0gZnVuY3Rpb24gZGl2biAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5lZ2NkID0gZnVuY3Rpb24gZWdjZCAocCkge1xuICAgIGFzc2VydChwLm5lZ2F0aXZlID09PSAwKTtcbiAgICBhc3NlcnQoIXAuaXNaZXJvKCkpO1xuXG4gICAgdmFyIHggPSB0aGlzO1xuICAgIHZhciB5ID0gcC5jbG9uZSgpO1xuXG4gICAgaWYgKHgubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIHggPSB4LnVtb2QocCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHggPSB4LmNsb25lKCk7XG4gICAgfVxuXG4gICAgLy8gQSAqIHggKyBCICogeSA9IHhcbiAgICB2YXIgQSA9IG5ldyBCTigxKTtcbiAgICB2YXIgQiA9IG5ldyBCTigwKTtcblxuICAgIC8vIEMgKiB4ICsgRCAqIHkgPSB5XG4gICAgdmFyIEMgPSBuZXcgQk4oMCk7XG4gICAgdmFyIEQgPSBuZXcgQk4oMSk7XG5cbiAgICB2YXIgZyA9IDA7XG5cbiAgICB3aGlsZSAoeC5pc0V2ZW4oKSAmJiB5LmlzRXZlbigpKSB7XG4gICAgICB4Lml1c2hybigxKTtcbiAgICAgIHkuaXVzaHJuKDEpO1xuICAgICAgKytnO1xuICAgIH1cblxuICAgIHZhciB5cCA9IHkuY2xvbmUoKTtcbiAgICB2YXIgeHAgPSB4LmNsb25lKCk7XG5cbiAgICB3aGlsZSAoIXguaXNaZXJvKCkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBpbSA9IDE7ICh4LndvcmRzWzBdICYgaW0pID09PSAwICYmIGkgPCAyNjsgKytpLCBpbSA8PD0gMSk7XG4gICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgeC5pdXNocm4oaSk7XG4gICAgICAgIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgICAgICAgaWYgKEEuaXNPZGQoKSB8fCBCLmlzT2RkKCkpIHtcbiAgICAgICAgICAgIEEuaWFkZCh5cCk7XG4gICAgICAgICAgICBCLmlzdWIoeHApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEEuaXVzaHJuKDEpO1xuICAgICAgICAgIEIuaXVzaHJuKDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGogPSAwLCBqbSA9IDE7ICh5LndvcmRzWzBdICYgam0pID09PSAwICYmIGogPCAyNjsgKytqLCBqbSA8PD0gMSk7XG4gICAgICBpZiAoaiA+IDApIHtcbiAgICAgICAgeS5pdXNocm4oaik7XG4gICAgICAgIHdoaWxlIChqLS0gPiAwKSB7XG4gICAgICAgICAgaWYgKEMuaXNPZGQoKSB8fCBELmlzT2RkKCkpIHtcbiAgICAgICAgICAgIEMuaWFkZCh5cCk7XG4gICAgICAgICAgICBELmlzdWIoeHApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEMuaXVzaHJuKDEpO1xuICAgICAgICAgIEQuaXVzaHJuKDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh4LmNtcCh5KSA+PSAwKSB7XG4gICAgICAgIHguaXN1Yih5KTtcbiAgICAgICAgQS5pc3ViKEMpO1xuICAgICAgICBCLmlzdWIoRCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB5LmlzdWIoeCk7XG4gICAgICAgIEMuaXN1YihBKTtcbiAgICAgICAgRC5pc3ViKEIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhOiBDLFxuICAgICAgYjogRCxcbiAgICAgIGdjZDogeS5pdXNobG4oZylcbiAgICB9O1xuICB9O1xuXG4gIC8vIFRoaXMgaXMgcmVkdWNlZCBpbmNhcm5hdGlvbiBvZiB0aGUgYmluYXJ5IEVFQVxuICAvLyBhYm92ZSwgZGVzaWduYXRlZCB0byBpbnZlcnQgbWVtYmVycyBvZiB0aGVcbiAgLy8gX3ByaW1lXyBmaWVsZHMgRihwKSBhdCBhIG1heGltYWwgc3BlZWRcbiAgQk4ucHJvdG90eXBlLl9pbnZtcCA9IGZ1bmN0aW9uIF9pbnZtcCAocCkge1xuICAgIGFzc2VydChwLm5lZ2F0aXZlID09PSAwKTtcbiAgICBhc3NlcnQoIXAuaXNaZXJvKCkpO1xuXG4gICAgdmFyIGEgPSB0aGlzO1xuICAgIHZhciBiID0gcC5jbG9uZSgpO1xuXG4gICAgaWYgKGEubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIGEgPSBhLnVtb2QocCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGEgPSBhLmNsb25lKCk7XG4gICAgfVxuXG4gICAgdmFyIHgxID0gbmV3IEJOKDEpO1xuICAgIHZhciB4MiA9IG5ldyBCTigwKTtcblxuICAgIHZhciBkZWx0YSA9IGIuY2xvbmUoKTtcblxuICAgIHdoaWxlIChhLmNtcG4oMSkgPiAwICYmIGIuY21wbigxKSA+IDApIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBpbSA9IDE7IChhLndvcmRzWzBdICYgaW0pID09PSAwICYmIGkgPCAyNjsgKytpLCBpbSA8PD0gMSk7XG4gICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgYS5pdXNocm4oaSk7XG4gICAgICAgIHdoaWxlIChpLS0gPiAwKSB7XG4gICAgICAgICAgaWYgKHgxLmlzT2RkKCkpIHtcbiAgICAgICAgICAgIHgxLmlhZGQoZGVsdGEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHgxLml1c2hybigxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBqID0gMCwgam0gPSAxOyAoYi53b3Jkc1swXSAmIGptKSA9PT0gMCAmJiBqIDwgMjY7ICsraiwgam0gPDw9IDEpO1xuICAgICAgaWYgKGogPiAwKSB7XG4gICAgICAgIGIuaXVzaHJuKGopO1xuICAgICAgICB3aGlsZSAoai0tID4gMCkge1xuICAgICAgICAgIGlmICh4Mi5pc09kZCgpKSB7XG4gICAgICAgICAgICB4Mi5pYWRkKGRlbHRhKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB4Mi5pdXNocm4oMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGEuY21wKGIpID49IDApIHtcbiAgICAgICAgYS5pc3ViKGIpO1xuICAgICAgICB4MS5pc3ViKHgyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGIuaXN1YihhKTtcbiAgICAgICAgeDIuaXN1Yih4MSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlcztcbiAgICBpZiAoYS5jbXBuKDEpID09PSAwKSB7XG4gICAgICByZXMgPSB4MTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0geDI7XG4gICAgfVxuXG4gICAgaWYgKHJlcy5jbXBuKDApIDwgMCkge1xuICAgICAgcmVzLmlhZGQocCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZ2NkID0gZnVuY3Rpb24gZ2NkIChudW0pIHtcbiAgICBpZiAodGhpcy5pc1plcm8oKSkgcmV0dXJuIG51bS5hYnMoKTtcbiAgICBpZiAobnVtLmlzWmVybygpKSByZXR1cm4gdGhpcy5hYnMoKTtcblxuICAgIHZhciBhID0gdGhpcy5jbG9uZSgpO1xuICAgIHZhciBiID0gbnVtLmNsb25lKCk7XG4gICAgYS5uZWdhdGl2ZSA9IDA7XG4gICAgYi5uZWdhdGl2ZSA9IDA7XG5cbiAgICAvLyBSZW1vdmUgY29tbW9uIGZhY3RvciBvZiB0d29cbiAgICBmb3IgKHZhciBzaGlmdCA9IDA7IGEuaXNFdmVuKCkgJiYgYi5pc0V2ZW4oKTsgc2hpZnQrKykge1xuICAgICAgYS5pdXNocm4oMSk7XG4gICAgICBiLml1c2hybigxKTtcbiAgICB9XG5cbiAgICBkbyB7XG4gICAgICB3aGlsZSAoYS5pc0V2ZW4oKSkge1xuICAgICAgICBhLml1c2hybigxKTtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChiLmlzRXZlbigpKSB7XG4gICAgICAgIGIuaXVzaHJuKDEpO1xuICAgICAgfVxuXG4gICAgICB2YXIgciA9IGEuY21wKGIpO1xuICAgICAgaWYgKHIgPCAwKSB7XG4gICAgICAgIC8vIFN3YXAgYGFgIGFuZCBgYmAgdG8gbWFrZSBgYWAgYWx3YXlzIGJpZ2dlciB0aGFuIGBiYFxuICAgICAgICB2YXIgdCA9IGE7XG4gICAgICAgIGEgPSBiO1xuICAgICAgICBiID0gdDtcbiAgICAgIH0gZWxzZSBpZiAociA9PT0gMCB8fCBiLmNtcG4oMSkgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGEuaXN1YihiKTtcbiAgICB9IHdoaWxlICh0cnVlKTtcblxuICAgIHJldHVybiBiLml1c2hsbihzaGlmdCk7XG4gIH07XG5cbiAgLy8gSW52ZXJ0IG51bWJlciBpbiB0aGUgZmllbGQgRihudW0pXG4gIEJOLnByb3RvdHlwZS5pbnZtID0gZnVuY3Rpb24gaW52bSAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuZWdjZChudW0pLmEudW1vZChudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pc0V2ZW4gPSBmdW5jdGlvbiBpc0V2ZW4gKCkge1xuICAgIHJldHVybiAodGhpcy53b3Jkc1swXSAmIDEpID09PSAwO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pc09kZCA9IGZ1bmN0aW9uIGlzT2RkICgpIHtcbiAgICByZXR1cm4gKHRoaXMud29yZHNbMF0gJiAxKSA9PT0gMTtcbiAgfTtcblxuICAvLyBBbmQgZmlyc3Qgd29yZCBhbmQgbnVtXG4gIEJOLnByb3RvdHlwZS5hbmRsbiA9IGZ1bmN0aW9uIGFuZGxuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy53b3Jkc1swXSAmIG51bTtcbiAgfTtcblxuICAvLyBJbmNyZW1lbnQgYXQgdGhlIGJpdCBwb3NpdGlvbiBpbi1saW5lXG4gIEJOLnByb3RvdHlwZS5iaW5jbiA9IGZ1bmN0aW9uIGJpbmNuIChiaXQpIHtcbiAgICBhc3NlcnQodHlwZW9mIGJpdCA9PT0gJ251bWJlcicpO1xuICAgIHZhciByID0gYml0ICUgMjY7XG4gICAgdmFyIHMgPSAoYml0IC0gcikgLyAyNjtcbiAgICB2YXIgcSA9IDEgPDwgcjtcblxuICAgIC8vIEZhc3QgY2FzZTogYml0IGlzIG11Y2ggaGlnaGVyIHRoYW4gYWxsIGV4aXN0aW5nIHdvcmRzXG4gICAgaWYgKHRoaXMubGVuZ3RoIDw9IHMpIHtcbiAgICAgIHRoaXMuX2V4cGFuZChzICsgMSk7XG4gICAgICB0aGlzLndvcmRzW3NdIHw9IHE7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBBZGQgYml0IGFuZCBwcm9wYWdhdGUsIGlmIG5lZWRlZFxuICAgIHZhciBjYXJyeSA9IHE7XG4gICAgZm9yICh2YXIgaSA9IHM7IGNhcnJ5ICE9PSAwICYmIGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdyA9IHRoaXMud29yZHNbaV0gfCAwO1xuICAgICAgdyArPSBjYXJyeTtcbiAgICAgIGNhcnJ5ID0gdyA+Pj4gMjY7XG4gICAgICB3ICY9IDB4M2ZmZmZmZjtcbiAgICAgIHRoaXMud29yZHNbaV0gPSB3O1xuICAgIH1cbiAgICBpZiAoY2FycnkgIT09IDApIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSBjYXJyeTtcbiAgICAgIHRoaXMubGVuZ3RoKys7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pc1plcm8gPSBmdW5jdGlvbiBpc1plcm8gKCkge1xuICAgIHJldHVybiB0aGlzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLndvcmRzWzBdID09PSAwO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5jbXBuID0gZnVuY3Rpb24gY21wbiAobnVtKSB7XG4gICAgdmFyIG5lZ2F0aXZlID0gbnVtIDwgMDtcblxuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwICYmICFuZWdhdGl2ZSkgcmV0dXJuIC0xO1xuICAgIGlmICh0aGlzLm5lZ2F0aXZlID09PSAwICYmIG5lZ2F0aXZlKSByZXR1cm4gMTtcblxuICAgIHRoaXMuc3RyaXAoKTtcblxuICAgIHZhciByZXM7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gMSkge1xuICAgICAgcmVzID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG5lZ2F0aXZlKSB7XG4gICAgICAgIG51bSA9IC1udW07XG4gICAgICB9XG5cbiAgICAgIGFzc2VydChudW0gPD0gMHgzZmZmZmZmLCAnTnVtYmVyIGlzIHRvbyBiaWcnKTtcblxuICAgICAgdmFyIHcgPSB0aGlzLndvcmRzWzBdIHwgMDtcbiAgICAgIHJlcyA9IHcgPT09IG51bSA/IDAgOiB3IDwgbnVtID8gLTEgOiAxO1xuICAgIH1cbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkgcmV0dXJuIC1yZXMgfCAwO1xuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgLy8gQ29tcGFyZSB0d28gbnVtYmVycyBhbmQgcmV0dXJuOlxuICAvLyAxIC0gaWYgYHRoaXNgID4gYG51bWBcbiAgLy8gMCAtIGlmIGB0aGlzYCA9PSBgbnVtYFxuICAvLyAtMSAtIGlmIGB0aGlzYCA8IGBudW1gXG4gIEJOLnByb3RvdHlwZS5jbXAgPSBmdW5jdGlvbiBjbXAgKG51bSkge1xuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwICYmIG51bS5uZWdhdGl2ZSA9PT0gMCkgcmV0dXJuIC0xO1xuICAgIGlmICh0aGlzLm5lZ2F0aXZlID09PSAwICYmIG51bS5uZWdhdGl2ZSAhPT0gMCkgcmV0dXJuIDE7XG5cbiAgICB2YXIgcmVzID0gdGhpcy51Y21wKG51bSk7XG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDApIHJldHVybiAtcmVzIHwgMDtcbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIC8vIFVuc2lnbmVkIGNvbXBhcmlzb25cbiAgQk4ucHJvdG90eXBlLnVjbXAgPSBmdW5jdGlvbiB1Y21wIChudW0pIHtcbiAgICAvLyBBdCB0aGlzIHBvaW50IGJvdGggbnVtYmVycyBoYXZlIHRoZSBzYW1lIHNpZ25cbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSByZXR1cm4gMTtcbiAgICBpZiAodGhpcy5sZW5ndGggPCBudW0ubGVuZ3RoKSByZXR1cm4gLTE7XG5cbiAgICB2YXIgcmVzID0gMDtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgdmFyIGEgPSB0aGlzLndvcmRzW2ldIHwgMDtcbiAgICAgIHZhciBiID0gbnVtLndvcmRzW2ldIHwgMDtcblxuICAgICAgaWYgKGEgPT09IGIpIGNvbnRpbnVlO1xuICAgICAgaWYgKGEgPCBiKSB7XG4gICAgICAgIHJlcyA9IC0xO1xuICAgICAgfSBlbHNlIGlmIChhID4gYikge1xuICAgICAgICByZXMgPSAxO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmd0biA9IGZ1bmN0aW9uIGd0biAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wbihudW0pID09PSAxO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5ndCA9IGZ1bmN0aW9uIGd0IChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXAobnVtKSA9PT0gMTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZ3RlbiA9IGZ1bmN0aW9uIGd0ZW4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcG4obnVtKSA+PSAwO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5ndGUgPSBmdW5jdGlvbiBndGUgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcChudW0pID49IDA7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmx0biA9IGZ1bmN0aW9uIGx0biAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wbihudW0pID09PSAtMTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUubHQgPSBmdW5jdGlvbiBsdCAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wKG51bSkgPT09IC0xO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5sdGVuID0gZnVuY3Rpb24gbHRlbiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wbihudW0pIDw9IDA7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmx0ZSA9IGZ1bmN0aW9uIGx0ZSAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wKG51bSkgPD0gMDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZXFuID0gZnVuY3Rpb24gZXFuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXBuKG51bSkgPT09IDA7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmVxID0gZnVuY3Rpb24gZXEgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcChudW0pID09PSAwO1xuICB9O1xuXG4gIC8vXG4gIC8vIEEgcmVkdWNlIGNvbnRleHQsIGNvdWxkIGJlIHVzaW5nIG1vbnRnb21lcnkgb3Igc29tZXRoaW5nIGJldHRlciwgZGVwZW5kaW5nXG4gIC8vIG9uIHRoZSBgbWAgaXRzZWxmLlxuICAvL1xuICBCTi5yZWQgPSBmdW5jdGlvbiByZWQgKG51bSkge1xuICAgIHJldHVybiBuZXcgUmVkKG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnRvUmVkID0gZnVuY3Rpb24gdG9SZWQgKGN0eCkge1xuICAgIGFzc2VydCghdGhpcy5yZWQsICdBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0Jyk7XG4gICAgYXNzZXJ0KHRoaXMubmVnYXRpdmUgPT09IDAsICdyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcycpO1xuICAgIHJldHVybiBjdHguY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChjdHgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5mcm9tUmVkID0gZnVuY3Rpb24gZnJvbVJlZCAoKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAnZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCcpO1xuICAgIHJldHVybiB0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX2ZvcmNlUmVkID0gZnVuY3Rpb24gX2ZvcmNlUmVkIChjdHgpIHtcbiAgICB0aGlzLnJlZCA9IGN0eDtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZm9yY2VSZWQgPSBmdW5jdGlvbiBmb3JjZVJlZCAoY3R4KSB7XG4gICAgYXNzZXJ0KCF0aGlzLnJlZCwgJ0FscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQnKTtcbiAgICByZXR1cm4gdGhpcy5fZm9yY2VSZWQoY3R4KTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkQWRkID0gZnVuY3Rpb24gcmVkQWRkIChudW0pIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLmFkZCh0aGlzLCBudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRJQWRkID0gZnVuY3Rpb24gcmVkSUFkZCAobnVtKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuaWFkZCh0aGlzLCBudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRTdWIgPSBmdW5jdGlvbiByZWRTdWIgKG51bSkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuc3ViKHRoaXMsIG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZElTdWIgPSBmdW5jdGlvbiByZWRJU3ViIChudW0pIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHJldHVybiB0aGlzLnJlZC5pc3ViKHRoaXMsIG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZFNobCA9IGZ1bmN0aW9uIHJlZFNobCAobnVtKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHJldHVybiB0aGlzLnJlZC5zaGwodGhpcywgbnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkTXVsID0gZnVuY3Rpb24gcmVkTXVsIChudW0pIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgdGhpcy5yZWQuX3ZlcmlmeTIodGhpcywgbnVtKTtcbiAgICByZXR1cm4gdGhpcy5yZWQubXVsKHRoaXMsIG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZElNdWwgPSBmdW5jdGlvbiByZWRJTXVsIChudW0pIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgdGhpcy5yZWQuX3ZlcmlmeTIodGhpcywgbnVtKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuaW11bCh0aGlzLCBudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRTcXIgPSBmdW5jdGlvbiByZWRTcXIgKCkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICB0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuc3FyKHRoaXMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRJU3FyID0gZnVuY3Rpb24gcmVkSVNxciAoKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICB0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuaXNxcih0aGlzKTtcbiAgfTtcblxuICAvLyBTcXVhcmUgcm9vdCBvdmVyIHBcbiAgQk4ucHJvdG90eXBlLnJlZFNxcnQgPSBmdW5jdGlvbiByZWRTcXJ0ICgpIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnJlZC5zcXJ0KHRoaXMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRJbnZtID0gZnVuY3Rpb24gcmVkSW52bSAoKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICB0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuaW52bSh0aGlzKTtcbiAgfTtcblxuICAvLyBSZXR1cm4gbmVnYXRpdmUgY2xvbmUgb2YgYHRoaXNgICUgYHJlZCBtb2R1bG9gXG4gIEJOLnByb3RvdHlwZS5yZWROZWcgPSBmdW5jdGlvbiByZWROZWcgKCkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICB0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5yZWQubmVnKHRoaXMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRQb3cgPSBmdW5jdGlvbiByZWRQb3cgKG51bSkge1xuICAgIGFzc2VydCh0aGlzLnJlZCAmJiAhbnVtLnJlZCwgJ3JlZFBvdyhub3JtYWxOdW0pJyk7XG4gICAgdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLnBvdyh0aGlzLCBudW0pO1xuICB9O1xuXG4gIC8vIFByaW1lIG51bWJlcnMgd2l0aCBlZmZpY2llbnQgcmVkdWN0aW9uXG4gIHZhciBwcmltZXMgPSB7XG4gICAgazI1NjogbnVsbCxcbiAgICBwMjI0OiBudWxsLFxuICAgIHAxOTI6IG51bGwsXG4gICAgcDI1NTE5OiBudWxsXG4gIH07XG5cbiAgLy8gUHNldWRvLU1lcnNlbm5lIHByaW1lXG4gIGZ1bmN0aW9uIE1QcmltZSAobmFtZSwgcCkge1xuICAgIC8vIFAgPSAyIF4gTiAtIEtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMucCA9IG5ldyBCTihwLCAxNik7XG4gICAgdGhpcy5uID0gdGhpcy5wLmJpdExlbmd0aCgpO1xuICAgIHRoaXMuayA9IG5ldyBCTigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCk7XG5cbiAgICB0aGlzLnRtcCA9IHRoaXMuX3RtcCgpO1xuICB9XG5cbiAgTVByaW1lLnByb3RvdHlwZS5fdG1wID0gZnVuY3Rpb24gX3RtcCAoKSB7XG4gICAgdmFyIHRtcCA9IG5ldyBCTihudWxsKTtcbiAgICB0bXAud29yZHMgPSBuZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubiAvIDEzKSk7XG4gICAgcmV0dXJuIHRtcDtcbiAgfTtcblxuICBNUHJpbWUucHJvdG90eXBlLmlyZWR1Y2UgPSBmdW5jdGlvbiBpcmVkdWNlIChudW0pIHtcbiAgICAvLyBBc3N1bWVzIHRoYXQgYG51bWAgaXMgbGVzcyB0aGFuIGBQXjJgXG4gICAgLy8gbnVtID0gSEkgKiAoMiBeIE4gLSBLKSArIEhJICogSyArIExPID0gSEkgKiBLICsgTE8gKG1vZCBQKVxuICAgIHZhciByID0gbnVtO1xuICAgIHZhciBybGVuO1xuXG4gICAgZG8ge1xuICAgICAgdGhpcy5zcGxpdChyLCB0aGlzLnRtcCk7XG4gICAgICByID0gdGhpcy5pbXVsSyhyKTtcbiAgICAgIHIgPSByLmlhZGQodGhpcy50bXApO1xuICAgICAgcmxlbiA9IHIuYml0TGVuZ3RoKCk7XG4gICAgfSB3aGlsZSAocmxlbiA+IHRoaXMubik7XG5cbiAgICB2YXIgY21wID0gcmxlbiA8IHRoaXMubiA/IC0xIDogci51Y21wKHRoaXMucCk7XG4gICAgaWYgKGNtcCA9PT0gMCkge1xuICAgICAgci53b3Jkc1swXSA9IDA7XG4gICAgICByLmxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIGlmIChjbXAgPiAwKSB7XG4gICAgICByLmlzdWIodGhpcy5wKTtcbiAgICB9IGVsc2Uge1xuICAgICAgci5zdHJpcCgpO1xuICAgIH1cblxuICAgIHJldHVybiByO1xuICB9O1xuXG4gIE1QcmltZS5wcm90b3R5cGUuc3BsaXQgPSBmdW5jdGlvbiBzcGxpdCAoaW5wdXQsIG91dCkge1xuICAgIGlucHV0Lml1c2hybih0aGlzLm4sIDAsIG91dCk7XG4gIH07XG5cbiAgTVByaW1lLnByb3RvdHlwZS5pbXVsSyA9IGZ1bmN0aW9uIGltdWxLIChudW0pIHtcbiAgICByZXR1cm4gbnVtLmltdWwodGhpcy5rKTtcbiAgfTtcblxuICBmdW5jdGlvbiBLMjU2ICgpIHtcbiAgICBNUHJpbWUuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICAnazI1NicsXG4gICAgICAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYnKTtcbiAgfVxuICBpbmhlcml0cyhLMjU2LCBNUHJpbWUpO1xuXG4gIEsyNTYucHJvdG90eXBlLnNwbGl0ID0gZnVuY3Rpb24gc3BsaXQgKGlucHV0LCBvdXRwdXQpIHtcbiAgICAvLyAyNTYgPSA5ICogMjYgKyAyMlxuICAgIHZhciBtYXNrID0gMHgzZmZmZmY7XG5cbiAgICB2YXIgb3V0TGVuID0gTWF0aC5taW4oaW5wdXQubGVuZ3RoLCA5KTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG91dExlbjsgaSsrKSB7XG4gICAgICBvdXRwdXQud29yZHNbaV0gPSBpbnB1dC53b3Jkc1tpXTtcbiAgICB9XG4gICAgb3V0cHV0Lmxlbmd0aCA9IG91dExlbjtcblxuICAgIGlmIChpbnB1dC5sZW5ndGggPD0gOSkge1xuICAgICAgaW5wdXQud29yZHNbMF0gPSAwO1xuICAgICAgaW5wdXQubGVuZ3RoID0gMTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTaGlmdCBieSA5IGxpbWJzXG4gICAgdmFyIHByZXYgPSBpbnB1dC53b3Jkc1s5XTtcbiAgICBvdXRwdXQud29yZHNbb3V0cHV0Lmxlbmd0aCsrXSA9IHByZXYgJiBtYXNrO1xuXG4gICAgZm9yIChpID0gMTA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG5leHQgPSBpbnB1dC53b3Jkc1tpXSB8IDA7XG4gICAgICBpbnB1dC53b3Jkc1tpIC0gMTBdID0gKChuZXh0ICYgbWFzaykgPDwgNCkgfCAocHJldiA+Pj4gMjIpO1xuICAgICAgcHJldiA9IG5leHQ7XG4gICAgfVxuICAgIHByZXYgPj4+PSAyMjtcbiAgICBpbnB1dC53b3Jkc1tpIC0gMTBdID0gcHJldjtcbiAgICBpZiAocHJldiA9PT0gMCAmJiBpbnB1dC5sZW5ndGggPiAxMCkge1xuICAgICAgaW5wdXQubGVuZ3RoIC09IDEwO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dC5sZW5ndGggLT0gOTtcbiAgICB9XG4gIH07XG5cbiAgSzI1Ni5wcm90b3R5cGUuaW11bEsgPSBmdW5jdGlvbiBpbXVsSyAobnVtKSB7XG4gICAgLy8gSyA9IDB4MTAwMDAwM2QxID0gWyAweDQwLCAweDNkMSBdXG4gICAgbnVtLndvcmRzW251bS5sZW5ndGhdID0gMDtcbiAgICBudW0ud29yZHNbbnVtLmxlbmd0aCArIDFdID0gMDtcbiAgICBudW0ubGVuZ3RoICs9IDI7XG5cbiAgICAvLyBib3VuZGVkIGF0OiAweDQwICogMHgzZmZmZmZmICsgMHgzZDAgPSAweDEwMDAwMDM5MFxuICAgIHZhciBsbyA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB3ID0gbnVtLndvcmRzW2ldIHwgMDtcbiAgICAgIGxvICs9IHcgKiAweDNkMTtcbiAgICAgIG51bS53b3Jkc1tpXSA9IGxvICYgMHgzZmZmZmZmO1xuICAgICAgbG8gPSB3ICogMHg0MCArICgobG8gLyAweDQwMDAwMDApIHwgMCk7XG4gICAgfVxuXG4gICAgLy8gRmFzdCBsZW5ndGggcmVkdWN0aW9uXG4gICAgaWYgKG51bS53b3Jkc1tudW0ubGVuZ3RoIC0gMV0gPT09IDApIHtcbiAgICAgIG51bS5sZW5ndGgtLTtcbiAgICAgIGlmIChudW0ud29yZHNbbnVtLmxlbmd0aCAtIDFdID09PSAwKSB7XG4gICAgICAgIG51bS5sZW5ndGgtLTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bTtcbiAgfTtcblxuICBmdW5jdGlvbiBQMjI0ICgpIHtcbiAgICBNUHJpbWUuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICAncDIyNCcsXG4gICAgICAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEnKTtcbiAgfVxuICBpbmhlcml0cyhQMjI0LCBNUHJpbWUpO1xuXG4gIGZ1bmN0aW9uIFAxOTIgKCkge1xuICAgIE1QcmltZS5jYWxsKFxuICAgICAgdGhpcyxcbiAgICAgICdwMTkyJyxcbiAgICAgICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZicpO1xuICB9XG4gIGluaGVyaXRzKFAxOTIsIE1QcmltZSk7XG5cbiAgZnVuY3Rpb24gUDI1NTE5ICgpIHtcbiAgICAvLyAyIF4gMjU1IC0gMTlcbiAgICBNUHJpbWUuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICAnMjU1MTknLFxuICAgICAgJzdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQnKTtcbiAgfVxuICBpbmhlcml0cyhQMjU1MTksIE1QcmltZSk7XG5cbiAgUDI1NTE5LnByb3RvdHlwZS5pbXVsSyA9IGZ1bmN0aW9uIGltdWxLIChudW0pIHtcbiAgICAvLyBLID0gMHgxM1xuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBoaSA9IChudW0ud29yZHNbaV0gfCAwKSAqIDB4MTMgKyBjYXJyeTtcbiAgICAgIHZhciBsbyA9IGhpICYgMHgzZmZmZmZmO1xuICAgICAgaGkgPj4+PSAyNjtcblxuICAgICAgbnVtLndvcmRzW2ldID0gbG87XG4gICAgICBjYXJyeSA9IGhpO1xuICAgIH1cbiAgICBpZiAoY2FycnkgIT09IDApIHtcbiAgICAgIG51bS53b3Jkc1tudW0ubGVuZ3RoKytdID0gY2Fycnk7XG4gICAgfVxuICAgIHJldHVybiBudW07XG4gIH07XG5cbiAgLy8gRXhwb3J0ZWQgbW9zdGx5IGZvciB0ZXN0aW5nIHB1cnBvc2VzLCB1c2UgcGxhaW4gbmFtZSBpbnN0ZWFkXG4gIEJOLl9wcmltZSA9IGZ1bmN0aW9uIHByaW1lIChuYW1lKSB7XG4gICAgLy8gQ2FjaGVkIHZlcnNpb24gb2YgcHJpbWVcbiAgICBpZiAocHJpbWVzW25hbWVdKSByZXR1cm4gcHJpbWVzW25hbWVdO1xuXG4gICAgdmFyIHByaW1lO1xuICAgIGlmIChuYW1lID09PSAnazI1NicpIHtcbiAgICAgIHByaW1lID0gbmV3IEsyNTYoKTtcbiAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdwMjI0Jykge1xuICAgICAgcHJpbWUgPSBuZXcgUDIyNCgpO1xuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3AxOTInKSB7XG4gICAgICBwcmltZSA9IG5ldyBQMTkyKCk7XG4gICAgfSBlbHNlIGlmIChuYW1lID09PSAncDI1NTE5Jykge1xuICAgICAgcHJpbWUgPSBuZXcgUDI1NTE5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBwcmltZSAnICsgbmFtZSk7XG4gICAgfVxuICAgIHByaW1lc1tuYW1lXSA9IHByaW1lO1xuXG4gICAgcmV0dXJuIHByaW1lO1xuICB9O1xuXG4gIC8vXG4gIC8vIEJhc2UgcmVkdWN0aW9uIGVuZ2luZVxuICAvL1xuICBmdW5jdGlvbiBSZWQgKG0pIHtcbiAgICBpZiAodHlwZW9mIG0gPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YXIgcHJpbWUgPSBCTi5fcHJpbWUobSk7XG4gICAgICB0aGlzLm0gPSBwcmltZS5wO1xuICAgICAgdGhpcy5wcmltZSA9IHByaW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICBhc3NlcnQobS5ndG4oMSksICdtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEnKTtcbiAgICAgIHRoaXMubSA9IG07XG4gICAgICB0aGlzLnByaW1lID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBSZWQucHJvdG90eXBlLl92ZXJpZnkxID0gZnVuY3Rpb24gX3ZlcmlmeTEgKGEpIHtcbiAgICBhc3NlcnQoYS5uZWdhdGl2ZSA9PT0gMCwgJ3JlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzJyk7XG4gICAgYXNzZXJ0KGEucmVkLCAncmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuX3ZlcmlmeTIgPSBmdW5jdGlvbiBfdmVyaWZ5MiAoYSwgYikge1xuICAgIGFzc2VydCgoYS5uZWdhdGl2ZSB8IGIubmVnYXRpdmUpID09PSAwLCAncmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMnKTtcbiAgICBhc3NlcnQoYS5yZWQgJiYgYS5yZWQgPT09IGIucmVkLFxuICAgICAgJ3JlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmltb2QgPSBmdW5jdGlvbiBpbW9kIChhKSB7XG4gICAgaWYgKHRoaXMucHJpbWUpIHJldHVybiB0aGlzLnByaW1lLmlyZWR1Y2UoYSkuX2ZvcmNlUmVkKHRoaXMpO1xuICAgIHJldHVybiBhLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5uZWcgPSBmdW5jdGlvbiBuZWcgKGEpIHtcbiAgICBpZiAoYS5pc1plcm8oKSkge1xuICAgICAgcmV0dXJuIGEuY2xvbmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tLnN1YihhKS5fZm9yY2VSZWQodGhpcyk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQgKGEsIGIpIHtcbiAgICB0aGlzLl92ZXJpZnkyKGEsIGIpO1xuXG4gICAgdmFyIHJlcyA9IGEuYWRkKGIpO1xuICAgIGlmIChyZXMuY21wKHRoaXMubSkgPj0gMCkge1xuICAgICAgcmVzLmlzdWIodGhpcy5tKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcy5fZm9yY2VSZWQodGhpcyk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5pYWRkID0gZnVuY3Rpb24gaWFkZCAoYSwgYikge1xuICAgIHRoaXMuX3ZlcmlmeTIoYSwgYik7XG5cbiAgICB2YXIgcmVzID0gYS5pYWRkKGIpO1xuICAgIGlmIChyZXMuY21wKHRoaXMubSkgPj0gMCkge1xuICAgICAgcmVzLmlzdWIodGhpcy5tKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLnN1YiA9IGZ1bmN0aW9uIHN1YiAoYSwgYikge1xuICAgIHRoaXMuX3ZlcmlmeTIoYSwgYik7XG5cbiAgICB2YXIgcmVzID0gYS5zdWIoYik7XG4gICAgaWYgKHJlcy5jbXBuKDApIDwgMCkge1xuICAgICAgcmVzLmlhZGQodGhpcy5tKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcy5fZm9yY2VSZWQodGhpcyk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5pc3ViID0gZnVuY3Rpb24gaXN1YiAoYSwgYikge1xuICAgIHRoaXMuX3ZlcmlmeTIoYSwgYik7XG5cbiAgICB2YXIgcmVzID0gYS5pc3ViKGIpO1xuICAgIGlmIChyZXMuY21wbigwKSA8IDApIHtcbiAgICAgIHJlcy5pYWRkKHRoaXMubSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5zaGwgPSBmdW5jdGlvbiBzaGwgKGEsIG51bSkge1xuICAgIHRoaXMuX3ZlcmlmeTEoYSk7XG4gICAgcmV0dXJuIHRoaXMuaW1vZChhLnVzaGxuKG51bSkpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuaW11bCA9IGZ1bmN0aW9uIGltdWwgKGEsIGIpIHtcbiAgICB0aGlzLl92ZXJpZnkyKGEsIGIpO1xuICAgIHJldHVybiB0aGlzLmltb2QoYS5pbXVsKGIpKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLm11bCA9IGZ1bmN0aW9uIG11bCAoYSwgYikge1xuICAgIHRoaXMuX3ZlcmlmeTIoYSwgYik7XG4gICAgcmV0dXJuIHRoaXMuaW1vZChhLm11bChiKSk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5pc3FyID0gZnVuY3Rpb24gaXNxciAoYSkge1xuICAgIHJldHVybiB0aGlzLmltdWwoYSwgYS5jbG9uZSgpKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLnNxciA9IGZ1bmN0aW9uIHNxciAoYSkge1xuICAgIHJldHVybiB0aGlzLm11bChhLCBhKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLnNxcnQgPSBmdW5jdGlvbiBzcXJ0IChhKSB7XG4gICAgaWYgKGEuaXNaZXJvKCkpIHJldHVybiBhLmNsb25lKCk7XG5cbiAgICB2YXIgbW9kMyA9IHRoaXMubS5hbmRsbigzKTtcbiAgICBhc3NlcnQobW9kMyAlIDIgPT09IDEpO1xuXG4gICAgLy8gRmFzdCBjYXNlXG4gICAgaWYgKG1vZDMgPT09IDMpIHtcbiAgICAgIHZhciBwb3cgPSB0aGlzLm0uYWRkKG5ldyBCTigxKSkuaXVzaHJuKDIpO1xuICAgICAgcmV0dXJuIHRoaXMucG93KGEsIHBvdyk7XG4gICAgfVxuXG4gICAgLy8gVG9uZWxsaS1TaGFua3MgYWxnb3JpdGhtIChUb3RhbGx5IHVub3B0aW1pemVkIGFuZCBzbG93KVxuICAgIC8vXG4gICAgLy8gRmluZCBRIGFuZCBTLCB0aGF0IFEgKiAyIF4gUyA9IChQIC0gMSlcbiAgICB2YXIgcSA9IHRoaXMubS5zdWJuKDEpO1xuICAgIHZhciBzID0gMDtcbiAgICB3aGlsZSAoIXEuaXNaZXJvKCkgJiYgcS5hbmRsbigxKSA9PT0gMCkge1xuICAgICAgcysrO1xuICAgICAgcS5pdXNocm4oMSk7XG4gICAgfVxuICAgIGFzc2VydCghcS5pc1plcm8oKSk7XG5cbiAgICB2YXIgb25lID0gbmV3IEJOKDEpLnRvUmVkKHRoaXMpO1xuICAgIHZhciBuT25lID0gb25lLnJlZE5lZygpO1xuXG4gICAgLy8gRmluZCBxdWFkcmF0aWMgbm9uLXJlc2lkdWVcbiAgICAvLyBOT1RFOiBNYXggaXMgc3VjaCBiZWNhdXNlIG9mIGdlbmVyYWxpemVkIFJpZW1hbm4gaHlwb3RoZXNpcy5cbiAgICB2YXIgbHBvdyA9IHRoaXMubS5zdWJuKDEpLml1c2hybigxKTtcbiAgICB2YXIgeiA9IHRoaXMubS5iaXRMZW5ndGgoKTtcbiAgICB6ID0gbmV3IEJOKDIgKiB6ICogeikudG9SZWQodGhpcyk7XG5cbiAgICB3aGlsZSAodGhpcy5wb3coeiwgbHBvdykuY21wKG5PbmUpICE9PSAwKSB7XG4gICAgICB6LnJlZElBZGQobk9uZSk7XG4gICAgfVxuXG4gICAgdmFyIGMgPSB0aGlzLnBvdyh6LCBxKTtcbiAgICB2YXIgciA9IHRoaXMucG93KGEsIHEuYWRkbigxKS5pdXNocm4oMSkpO1xuICAgIHZhciB0ID0gdGhpcy5wb3coYSwgcSk7XG4gICAgdmFyIG0gPSBzO1xuICAgIHdoaWxlICh0LmNtcChvbmUpICE9PSAwKSB7XG4gICAgICB2YXIgdG1wID0gdDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyB0bXAuY21wKG9uZSkgIT09IDA7IGkrKykge1xuICAgICAgICB0bXAgPSB0bXAucmVkU3FyKCk7XG4gICAgICB9XG4gICAgICBhc3NlcnQoaSA8IG0pO1xuICAgICAgdmFyIGIgPSB0aGlzLnBvdyhjLCBuZXcgQk4oMSkuaXVzaGxuKG0gLSBpIC0gMSkpO1xuXG4gICAgICByID0gci5yZWRNdWwoYik7XG4gICAgICBjID0gYi5yZWRTcXIoKTtcbiAgICAgIHQgPSB0LnJlZE11bChjKTtcbiAgICAgIG0gPSBpO1xuICAgIH1cblxuICAgIHJldHVybiByO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuaW52bSA9IGZ1bmN0aW9uIGludm0gKGEpIHtcbiAgICB2YXIgaW52ID0gYS5faW52bXAodGhpcy5tKTtcbiAgICBpZiAoaW52Lm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICBpbnYubmVnYXRpdmUgPSAwO1xuICAgICAgcmV0dXJuIHRoaXMuaW1vZChpbnYpLnJlZE5lZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5pbW9kKGludik7XG4gICAgfVxuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUucG93ID0gZnVuY3Rpb24gcG93IChhLCBudW0pIHtcbiAgICBpZiAobnVtLmlzWmVybygpKSByZXR1cm4gbmV3IEJOKDEpLnRvUmVkKHRoaXMpO1xuICAgIGlmIChudW0uY21wbigxKSA9PT0gMCkgcmV0dXJuIGEuY2xvbmUoKTtcblxuICAgIHZhciB3aW5kb3dTaXplID0gNDtcbiAgICB2YXIgd25kID0gbmV3IEFycmF5KDEgPDwgd2luZG93U2l6ZSk7XG4gICAgd25kWzBdID0gbmV3IEJOKDEpLnRvUmVkKHRoaXMpO1xuICAgIHduZFsxXSA9IGE7XG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCB3bmQubGVuZ3RoOyBpKyspIHtcbiAgICAgIHduZFtpXSA9IHRoaXMubXVsKHduZFtpIC0gMV0sIGEpO1xuICAgIH1cblxuICAgIHZhciByZXMgPSB3bmRbMF07XG4gICAgdmFyIGN1cnJlbnQgPSAwO1xuICAgIHZhciBjdXJyZW50TGVuID0gMDtcbiAgICB2YXIgc3RhcnQgPSBudW0uYml0TGVuZ3RoKCkgJSAyNjtcbiAgICBpZiAoc3RhcnQgPT09IDApIHtcbiAgICAgIHN0YXJ0ID0gMjY7XG4gICAgfVxuXG4gICAgZm9yIChpID0gbnVtLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgd29yZCA9IG51bS53b3Jkc1tpXTtcbiAgICAgIGZvciAodmFyIGogPSBzdGFydCAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgICAgIHZhciBiaXQgPSAod29yZCA+PiBqKSAmIDE7XG4gICAgICAgIGlmIChyZXMgIT09IHduZFswXSkge1xuICAgICAgICAgIHJlcyA9IHRoaXMuc3FyKHJlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYml0ID09PSAwICYmIGN1cnJlbnQgPT09IDApIHtcbiAgICAgICAgICBjdXJyZW50TGVuID0gMDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnQgPDw9IDE7XG4gICAgICAgIGN1cnJlbnQgfD0gYml0O1xuICAgICAgICBjdXJyZW50TGVuKys7XG4gICAgICAgIGlmIChjdXJyZW50TGVuICE9PSB3aW5kb3dTaXplICYmIChpICE9PSAwIHx8IGogIT09IDApKSBjb250aW51ZTtcblxuICAgICAgICByZXMgPSB0aGlzLm11bChyZXMsIHduZFtjdXJyZW50XSk7XG4gICAgICAgIGN1cnJlbnRMZW4gPSAwO1xuICAgICAgICBjdXJyZW50ID0gMDtcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gMjY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmNvbnZlcnRUbyA9IGZ1bmN0aW9uIGNvbnZlcnRUbyAobnVtKSB7XG4gICAgdmFyIHIgPSBudW0udW1vZCh0aGlzLm0pO1xuXG4gICAgcmV0dXJuIHIgPT09IG51bSA/IHIuY2xvbmUoKSA6IHI7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5jb252ZXJ0RnJvbSA9IGZ1bmN0aW9uIGNvbnZlcnRGcm9tIChudW0pIHtcbiAgICB2YXIgcmVzID0gbnVtLmNsb25lKCk7XG4gICAgcmVzLnJlZCA9IG51bGw7XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICAvL1xuICAvLyBNb250Z29tZXJ5IG1ldGhvZCBlbmdpbmVcbiAgLy9cblxuICBCTi5tb250ID0gZnVuY3Rpb24gbW9udCAobnVtKSB7XG4gICAgcmV0dXJuIG5ldyBNb250KG51bSk7XG4gIH07XG5cbiAgZnVuY3Rpb24gTW9udCAobSkge1xuICAgIFJlZC5jYWxsKHRoaXMsIG0pO1xuXG4gICAgdGhpcy5zaGlmdCA9IHRoaXMubS5iaXRMZW5ndGgoKTtcbiAgICBpZiAodGhpcy5zaGlmdCAlIDI2ICE9PSAwKSB7XG4gICAgICB0aGlzLnNoaWZ0ICs9IDI2IC0gKHRoaXMuc2hpZnQgJSAyNik7XG4gICAgfVxuXG4gICAgdGhpcy5yID0gbmV3IEJOKDEpLml1c2hsbih0aGlzLnNoaWZ0KTtcbiAgICB0aGlzLnIyID0gdGhpcy5pbW9kKHRoaXMuci5zcXIoKSk7XG4gICAgdGhpcy5yaW52ID0gdGhpcy5yLl9pbnZtcCh0aGlzLm0pO1xuXG4gICAgdGhpcy5taW52ID0gdGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pO1xuICAgIHRoaXMubWludiA9IHRoaXMubWludi51bW9kKHRoaXMucik7XG4gICAgdGhpcy5taW52ID0gdGhpcy5yLnN1Yih0aGlzLm1pbnYpO1xuICB9XG4gIGluaGVyaXRzKE1vbnQsIFJlZCk7XG5cbiAgTW9udC5wcm90b3R5cGUuY29udmVydFRvID0gZnVuY3Rpb24gY29udmVydFRvIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5pbW9kKG51bS51c2hsbih0aGlzLnNoaWZ0KSk7XG4gIH07XG5cbiAgTW9udC5wcm90b3R5cGUuY29udmVydEZyb20gPSBmdW5jdGlvbiBjb252ZXJ0RnJvbSAobnVtKSB7XG4gICAgdmFyIHIgPSB0aGlzLmltb2QobnVtLm11bCh0aGlzLnJpbnYpKTtcbiAgICByLnJlZCA9IG51bGw7XG4gICAgcmV0dXJuIHI7XG4gIH07XG5cbiAgTW9udC5wcm90b3R5cGUuaW11bCA9IGZ1bmN0aW9uIGltdWwgKGEsIGIpIHtcbiAgICBpZiAoYS5pc1plcm8oKSB8fCBiLmlzWmVybygpKSB7XG4gICAgICBhLndvcmRzWzBdID0gMDtcbiAgICAgIGEubGVuZ3RoID0gMTtcbiAgICAgIHJldHVybiBhO1xuICAgIH1cblxuICAgIHZhciB0ID0gYS5pbXVsKGIpO1xuICAgIHZhciBjID0gdC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSk7XG4gICAgdmFyIHUgPSB0LmlzdWIoYykuaXVzaHJuKHRoaXMuc2hpZnQpO1xuICAgIHZhciByZXMgPSB1O1xuXG4gICAgaWYgKHUuY21wKHRoaXMubSkgPj0gMCkge1xuICAgICAgcmVzID0gdS5pc3ViKHRoaXMubSk7XG4gICAgfSBlbHNlIGlmICh1LmNtcG4oMCkgPCAwKSB7XG4gICAgICByZXMgPSB1LmlhZGQodGhpcy5tKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzLl9mb3JjZVJlZCh0aGlzKTtcbiAgfTtcblxuICBNb250LnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiBtdWwgKGEsIGIpIHtcbiAgICBpZiAoYS5pc1plcm8oKSB8fCBiLmlzWmVybygpKSByZXR1cm4gbmV3IEJOKDApLl9mb3JjZVJlZCh0aGlzKTtcblxuICAgIHZhciB0ID0gYS5tdWwoYik7XG4gICAgdmFyIGMgPSB0Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKTtcbiAgICB2YXIgdSA9IHQuaXN1YihjKS5pdXNocm4odGhpcy5zaGlmdCk7XG4gICAgdmFyIHJlcyA9IHU7XG4gICAgaWYgKHUuY21wKHRoaXMubSkgPj0gMCkge1xuICAgICAgcmVzID0gdS5pc3ViKHRoaXMubSk7XG4gICAgfSBlbHNlIGlmICh1LmNtcG4oMCkgPCAwKSB7XG4gICAgICByZXMgPSB1LmlhZGQodGhpcy5tKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzLl9mb3JjZVJlZCh0aGlzKTtcbiAgfTtcblxuICBNb250LnByb3RvdHlwZS5pbnZtID0gZnVuY3Rpb24gaW52bSAoYSkge1xuICAgIC8vIChBUileLTEgKiBSXjIgPSAoQV4tMSAqIFJeLTEpICogUl4yID0gQV4tMSAqIFJcbiAgICB2YXIgcmVzID0gdGhpcy5pbW9kKGEuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKTtcbiAgICByZXR1cm4gcmVzLl9mb3JjZVJlZCh0aGlzKTtcbiAgfTtcbn0pKHR5cGVvZiBtb2R1bGUgPT09ICd1bmRlZmluZWQnIHx8IG1vZHVsZSwgdGhpcyk7XG4iLCJ2YXIgcjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiByYW5kKGxlbikge1xuICBpZiAoIXIpXG4gICAgciA9IG5ldyBSYW5kKG51bGwpO1xuXG4gIHJldHVybiByLmdlbmVyYXRlKGxlbik7XG59O1xuXG5mdW5jdGlvbiBSYW5kKHJhbmQpIHtcbiAgdGhpcy5yYW5kID0gcmFuZDtcbn1cbm1vZHVsZS5leHBvcnRzLlJhbmQgPSBSYW5kO1xuXG5SYW5kLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uIGdlbmVyYXRlKGxlbikge1xuICByZXR1cm4gdGhpcy5fcmFuZChsZW4pO1xufTtcblxuLy8gRW11bGF0ZSBjcnlwdG8gQVBJIHVzaW5nIHJhbmR5XG5SYW5kLnByb3RvdHlwZS5fcmFuZCA9IGZ1bmN0aW9uIF9yYW5kKG4pIHtcbiAgaWYgKHRoaXMucmFuZC5nZXRCeXRlcylcbiAgICByZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKG4pO1xuXG4gIHZhciByZXMgPSBuZXcgVWludDhBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXMubGVuZ3RoOyBpKyspXG4gICAgcmVzW2ldID0gdGhpcy5yYW5kLmdldEJ5dGUoKTtcbiAgcmV0dXJuIHJlcztcbn07XG5cbmlmICh0eXBlb2Ygc2VsZiA9PT0gJ29iamVjdCcpIHtcbiAgaWYgKHNlbGYuY3J5cHRvICYmIHNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcykge1xuICAgIC8vIE1vZGVybiBicm93c2Vyc1xuICAgIFJhbmQucHJvdG90eXBlLl9yYW5kID0gZnVuY3Rpb24gX3JhbmQobikge1xuICAgICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KG4pO1xuICAgICAgc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycik7XG4gICAgICByZXR1cm4gYXJyO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoc2VsZi5tc0NyeXB0byAmJiBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcykge1xuICAgIC8vIElFXG4gICAgUmFuZC5wcm90b3R5cGUuX3JhbmQgPSBmdW5jdGlvbiBfcmFuZChuKSB7XG4gICAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkobik7XG4gICAgICBzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhcnIpO1xuICAgICAgcmV0dXJuIGFycjtcbiAgICB9O1xuXG4gIC8vIFNhZmFyaSdzIFdlYldvcmtlcnMgZG8gbm90IGhhdmUgYGNyeXB0b2BcbiAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0Jykge1xuICAgIC8vIE9sZCBqdW5rXG4gICAgUmFuZC5wcm90b3R5cGUuX3JhbmQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkIHlldCcpO1xuICAgIH07XG4gIH1cbn0gZWxzZSB7XG4gIC8vIE5vZGUuanMgb3IgV2ViIHdvcmtlciB3aXRoIG5vIGNyeXB0byBzdXBwb3J0XG4gIHRyeSB7XG4gICAgdmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpO1xuICAgIGlmICh0eXBlb2YgY3J5cHRvLnJhbmRvbUJ5dGVzICE9PSAnZnVuY3Rpb24nKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkJyk7XG5cbiAgICBSYW5kLnByb3RvdHlwZS5fcmFuZCA9IGZ1bmN0aW9uIF9yYW5kKG4pIHtcbiAgICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMobik7XG4gICAgfTtcbiAgfSBjYXRjaCAoZSkge1xuICB9XG59XG4iLG51bGwsIi8vIGJhc2VkIG9uIHRoZSBhZXMgaW1wbGltZW50YXRpb24gaW4gdHJpcGxlIHNlY1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2tleWJhc2UvdHJpcGxlc2VjXG4vLyB3aGljaCBpcyBpbiB0dXJuIGJhc2VkIG9uIHRoZSBvbmUgZnJvbSBjcnlwdG8tanNcbi8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY3J5cHRvLWpzL1xuXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcblxuZnVuY3Rpb24gYXNVSW50MzJBcnJheSAoYnVmKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIGJ1ZiA9IEJ1ZmZlci5mcm9tKGJ1ZilcblxuICB2YXIgbGVuID0gKGJ1Zi5sZW5ndGggLyA0KSB8IDBcbiAgdmFyIG91dCA9IG5ldyBBcnJheShsZW4pXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG91dFtpXSA9IGJ1Zi5yZWFkVUludDMyQkUoaSAqIDQpXG4gIH1cblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHNjcnViVmVjICh2KSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdi5sZW5ndGg7IHYrKykge1xuICAgIHZbaV0gPSAwXG4gIH1cbn1cblxuZnVuY3Rpb24gY3J5cHRCbG9jayAoTSwga2V5U2NoZWR1bGUsIFNVQl9NSVgsIFNCT1gsIG5Sb3VuZHMpIHtcbiAgdmFyIFNVQl9NSVgwID0gU1VCX01JWFswXVxuICB2YXIgU1VCX01JWDEgPSBTVUJfTUlYWzFdXG4gIHZhciBTVUJfTUlYMiA9IFNVQl9NSVhbMl1cbiAgdmFyIFNVQl9NSVgzID0gU1VCX01JWFszXVxuXG4gIHZhciBzMCA9IE1bMF0gXiBrZXlTY2hlZHVsZVswXVxuICB2YXIgczEgPSBNWzFdIF4ga2V5U2NoZWR1bGVbMV1cbiAgdmFyIHMyID0gTVsyXSBeIGtleVNjaGVkdWxlWzJdXG4gIHZhciBzMyA9IE1bM10gXiBrZXlTY2hlZHVsZVszXVxuICB2YXIgdDAsIHQxLCB0MiwgdDNcbiAgdmFyIGtzUm93ID0gNFxuXG4gIGZvciAodmFyIHJvdW5kID0gMTsgcm91bmQgPCBuUm91bmRzOyByb3VuZCsrKSB7XG4gICAgdDAgPSBTVUJfTUlYMFtzMCA+Pj4gMjRdIF4gU1VCX01JWDFbKHMxID4+PiAxNikgJiAweGZmXSBeIFNVQl9NSVgyWyhzMiA+Pj4gOCkgJiAweGZmXSBeIFNVQl9NSVgzW3MzICYgMHhmZl0gXiBrZXlTY2hlZHVsZVtrc1JvdysrXVxuICAgIHQxID0gU1VCX01JWDBbczEgPj4+IDI0XSBeIFNVQl9NSVgxWyhzMiA+Pj4gMTYpICYgMHhmZl0gXiBTVUJfTUlYMlsoczMgPj4+IDgpICYgMHhmZl0gXiBTVUJfTUlYM1tzMCAmIDB4ZmZdIF4ga2V5U2NoZWR1bGVba3NSb3crK11cbiAgICB0MiA9IFNVQl9NSVgwW3MyID4+PiAyNF0gXiBTVUJfTUlYMVsoczMgPj4+IDE2KSAmIDB4ZmZdIF4gU1VCX01JWDJbKHMwID4+PiA4KSAmIDB4ZmZdIF4gU1VCX01JWDNbczEgJiAweGZmXSBeIGtleVNjaGVkdWxlW2tzUm93KytdXG4gICAgdDMgPSBTVUJfTUlYMFtzMyA+Pj4gMjRdIF4gU1VCX01JWDFbKHMwID4+PiAxNikgJiAweGZmXSBeIFNVQl9NSVgyWyhzMSA+Pj4gOCkgJiAweGZmXSBeIFNVQl9NSVgzW3MyICYgMHhmZl0gXiBrZXlTY2hlZHVsZVtrc1JvdysrXVxuICAgIHMwID0gdDBcbiAgICBzMSA9IHQxXG4gICAgczIgPSB0MlxuICAgIHMzID0gdDNcbiAgfVxuXG4gIHQwID0gKChTQk9YW3MwID4+PiAyNF0gPDwgMjQpIHwgKFNCT1hbKHMxID4+PiAxNikgJiAweGZmXSA8PCAxNikgfCAoU0JPWFsoczIgPj4+IDgpICYgMHhmZl0gPDwgOCkgfCBTQk9YW3MzICYgMHhmZl0pIF4ga2V5U2NoZWR1bGVba3NSb3crK11cbiAgdDEgPSAoKFNCT1hbczEgPj4+IDI0XSA8PCAyNCkgfCAoU0JPWFsoczIgPj4+IDE2KSAmIDB4ZmZdIDw8IDE2KSB8IChTQk9YWyhzMyA+Pj4gOCkgJiAweGZmXSA8PCA4KSB8IFNCT1hbczAgJiAweGZmXSkgXiBrZXlTY2hlZHVsZVtrc1JvdysrXVxuICB0MiA9ICgoU0JPWFtzMiA+Pj4gMjRdIDw8IDI0KSB8IChTQk9YWyhzMyA+Pj4gMTYpICYgMHhmZl0gPDwgMTYpIHwgKFNCT1hbKHMwID4+PiA4KSAmIDB4ZmZdIDw8IDgpIHwgU0JPWFtzMSAmIDB4ZmZdKSBeIGtleVNjaGVkdWxlW2tzUm93KytdXG4gIHQzID0gKChTQk9YW3MzID4+PiAyNF0gPDwgMjQpIHwgKFNCT1hbKHMwID4+PiAxNikgJiAweGZmXSA8PCAxNikgfCAoU0JPWFsoczEgPj4+IDgpICYgMHhmZl0gPDwgOCkgfCBTQk9YW3MyICYgMHhmZl0pIF4ga2V5U2NoZWR1bGVba3NSb3crK11cbiAgdDAgPSB0MCA+Pj4gMFxuICB0MSA9IHQxID4+PiAwXG4gIHQyID0gdDIgPj4+IDBcbiAgdDMgPSB0MyA+Pj4gMFxuXG4gIHJldHVybiBbdDAsIHQxLCB0MiwgdDNdXG59XG5cbi8vIEFFUyBjb25zdGFudHNcbnZhciBSQ09OID0gWzB4MDAsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4MWIsIDB4MzZdXG52YXIgRyA9IChmdW5jdGlvbiAoKSB7XG4gIC8vIENvbXB1dGUgZG91YmxlIHRhYmxlXG4gIHZhciBkID0gbmV3IEFycmF5KDI1NilcbiAgZm9yICh2YXIgaiA9IDA7IGogPCAyNTY7IGorKykge1xuICAgIGlmIChqIDwgMTI4KSB7XG4gICAgICBkW2pdID0gaiA8PCAxXG4gICAgfSBlbHNlIHtcbiAgICAgIGRbal0gPSAoaiA8PCAxKSBeIDB4MTFiXG4gICAgfVxuICB9XG5cbiAgdmFyIFNCT1ggPSBbXVxuICB2YXIgSU5WX1NCT1ggPSBbXVxuICB2YXIgU1VCX01JWCA9IFtbXSwgW10sIFtdLCBbXV1cbiAgdmFyIElOVl9TVUJfTUlYID0gW1tdLCBbXSwgW10sIFtdXVxuXG4gIC8vIFdhbGsgR0YoMl44KVxuICB2YXIgeCA9IDBcbiAgdmFyIHhpID0gMFxuICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgKytpKSB7XG4gICAgLy8gQ29tcHV0ZSBzYm94XG4gICAgdmFyIHN4ID0geGkgXiAoeGkgPDwgMSkgXiAoeGkgPDwgMikgXiAoeGkgPDwgMykgXiAoeGkgPDwgNClcbiAgICBzeCA9IChzeCA+Pj4gOCkgXiAoc3ggJiAweGZmKSBeIDB4NjNcbiAgICBTQk9YW3hdID0gc3hcbiAgICBJTlZfU0JPWFtzeF0gPSB4XG5cbiAgICAvLyBDb21wdXRlIG11bHRpcGxpY2F0aW9uXG4gICAgdmFyIHgyID0gZFt4XVxuICAgIHZhciB4NCA9IGRbeDJdXG4gICAgdmFyIHg4ID0gZFt4NF1cblxuICAgIC8vIENvbXB1dGUgc3ViIGJ5dGVzLCBtaXggY29sdW1ucyB0YWJsZXNcbiAgICB2YXIgdCA9IChkW3N4XSAqIDB4MTAxKSBeIChzeCAqIDB4MTAxMDEwMClcbiAgICBTVUJfTUlYWzBdW3hdID0gKHQgPDwgMjQpIHwgKHQgPj4+IDgpXG4gICAgU1VCX01JWFsxXVt4XSA9ICh0IDw8IDE2KSB8ICh0ID4+PiAxNilcbiAgICBTVUJfTUlYWzJdW3hdID0gKHQgPDwgOCkgfCAodCA+Pj4gMjQpXG4gICAgU1VCX01JWFszXVt4XSA9IHRcblxuICAgIC8vIENvbXB1dGUgaW52IHN1YiBieXRlcywgaW52IG1peCBjb2x1bW5zIHRhYmxlc1xuICAgIHQgPSAoeDggKiAweDEwMTAxMDEpIF4gKHg0ICogMHgxMDAwMSkgXiAoeDIgKiAweDEwMSkgXiAoeCAqIDB4MTAxMDEwMClcbiAgICBJTlZfU1VCX01JWFswXVtzeF0gPSAodCA8PCAyNCkgfCAodCA+Pj4gOClcbiAgICBJTlZfU1VCX01JWFsxXVtzeF0gPSAodCA8PCAxNikgfCAodCA+Pj4gMTYpXG4gICAgSU5WX1NVQl9NSVhbMl1bc3hdID0gKHQgPDwgOCkgfCAodCA+Pj4gMjQpXG4gICAgSU5WX1NVQl9NSVhbM11bc3hdID0gdFxuXG4gICAgaWYgKHggPT09IDApIHtcbiAgICAgIHggPSB4aSA9IDFcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IHgyIF4gZFtkW2RbeDggXiB4Ml1dXVxuICAgICAgeGkgXj0gZFtkW3hpXV1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIFNCT1g6IFNCT1gsXG4gICAgSU5WX1NCT1g6IElOVl9TQk9YLFxuICAgIFNVQl9NSVg6IFNVQl9NSVgsXG4gICAgSU5WX1NVQl9NSVg6IElOVl9TVUJfTUlYXG4gIH1cbn0pKClcblxuZnVuY3Rpb24gQUVTIChrZXkpIHtcbiAgdGhpcy5fa2V5ID0gYXNVSW50MzJBcnJheShrZXkpXG4gIHRoaXMuX3Jlc2V0KClcbn1cblxuQUVTLmJsb2NrU2l6ZSA9IDQgKiA0XG5BRVMua2V5U2l6ZSA9IDI1NiAvIDhcbkFFUy5wcm90b3R5cGUuYmxvY2tTaXplID0gQUVTLmJsb2NrU2l6ZVxuQUVTLnByb3RvdHlwZS5rZXlTaXplID0gQUVTLmtleVNpemVcbkFFUy5wcm90b3R5cGUuX3Jlc2V0ID0gZnVuY3Rpb24gKCkge1xuICB2YXIga2V5V29yZHMgPSB0aGlzLl9rZXlcbiAgdmFyIGtleVNpemUgPSBrZXlXb3Jkcy5sZW5ndGhcbiAgdmFyIG5Sb3VuZHMgPSBrZXlTaXplICsgNlxuICB2YXIga3NSb3dzID0gKG5Sb3VuZHMgKyAxKSAqIDRcblxuICB2YXIga2V5U2NoZWR1bGUgPSBbXVxuICBmb3IgKHZhciBrID0gMDsgayA8IGtleVNpemU7IGsrKykge1xuICAgIGtleVNjaGVkdWxlW2tdID0ga2V5V29yZHNba11cbiAgfVxuXG4gIGZvciAoayA9IGtleVNpemU7IGsgPCBrc1Jvd3M7IGsrKykge1xuICAgIHZhciB0ID0ga2V5U2NoZWR1bGVbayAtIDFdXG5cbiAgICBpZiAoayAlIGtleVNpemUgPT09IDApIHtcbiAgICAgIHQgPSAodCA8PCA4KSB8ICh0ID4+PiAyNClcbiAgICAgIHQgPVxuICAgICAgICAoRy5TQk9YW3QgPj4+IDI0XSA8PCAyNCkgfFxuICAgICAgICAoRy5TQk9YWyh0ID4+PiAxNikgJiAweGZmXSA8PCAxNikgfFxuICAgICAgICAoRy5TQk9YWyh0ID4+PiA4KSAmIDB4ZmZdIDw8IDgpIHxcbiAgICAgICAgKEcuU0JPWFt0ICYgMHhmZl0pXG5cbiAgICAgIHQgXj0gUkNPTlsoayAvIGtleVNpemUpIHwgMF0gPDwgMjRcbiAgICB9IGVsc2UgaWYgKGtleVNpemUgPiA2ICYmIGsgJSBrZXlTaXplID09PSA0KSB7XG4gICAgICB0ID1cbiAgICAgICAgKEcuU0JPWFt0ID4+PiAyNF0gPDwgMjQpIHxcbiAgICAgICAgKEcuU0JPWFsodCA+Pj4gMTYpICYgMHhmZl0gPDwgMTYpIHxcbiAgICAgICAgKEcuU0JPWFsodCA+Pj4gOCkgJiAweGZmXSA8PCA4KSB8XG4gICAgICAgIChHLlNCT1hbdCAmIDB4ZmZdKVxuICAgIH1cblxuICAgIGtleVNjaGVkdWxlW2tdID0ga2V5U2NoZWR1bGVbayAtIGtleVNpemVdIF4gdFxuICB9XG5cbiAgdmFyIGludktleVNjaGVkdWxlID0gW11cbiAgZm9yICh2YXIgaWsgPSAwOyBpayA8IGtzUm93czsgaWsrKykge1xuICAgIHZhciBrc1IgPSBrc1Jvd3MgLSBpa1xuICAgIHZhciB0dCA9IGtleVNjaGVkdWxlW2tzUiAtIChpayAlIDQgPyAwIDogNCldXG5cbiAgICBpZiAoaWsgPCA0IHx8IGtzUiA8PSA0KSB7XG4gICAgICBpbnZLZXlTY2hlZHVsZVtpa10gPSB0dFxuICAgIH0gZWxzZSB7XG4gICAgICBpbnZLZXlTY2hlZHVsZVtpa10gPVxuICAgICAgICBHLklOVl9TVUJfTUlYWzBdW0cuU0JPWFt0dCA+Pj4gMjRdXSBeXG4gICAgICAgIEcuSU5WX1NVQl9NSVhbMV1bRy5TQk9YWyh0dCA+Pj4gMTYpICYgMHhmZl1dIF5cbiAgICAgICAgRy5JTlZfU1VCX01JWFsyXVtHLlNCT1hbKHR0ID4+PiA4KSAmIDB4ZmZdXSBeXG4gICAgICAgIEcuSU5WX1NVQl9NSVhbM11bRy5TQk9YW3R0ICYgMHhmZl1dXG4gICAgfVxuICB9XG5cbiAgdGhpcy5fblJvdW5kcyA9IG5Sb3VuZHNcbiAgdGhpcy5fa2V5U2NoZWR1bGUgPSBrZXlTY2hlZHVsZVxuICB0aGlzLl9pbnZLZXlTY2hlZHVsZSA9IGludktleVNjaGVkdWxlXG59XG5cbkFFUy5wcm90b3R5cGUuZW5jcnlwdEJsb2NrUmF3ID0gZnVuY3Rpb24gKE0pIHtcbiAgTSA9IGFzVUludDMyQXJyYXkoTSlcbiAgcmV0dXJuIGNyeXB0QmxvY2soTSwgdGhpcy5fa2V5U2NoZWR1bGUsIEcuU1VCX01JWCwgRy5TQk9YLCB0aGlzLl9uUm91bmRzKVxufVxuXG5BRVMucHJvdG90eXBlLmVuY3J5cHRCbG9jayA9IGZ1bmN0aW9uIChNKSB7XG4gIHZhciBvdXQgPSB0aGlzLmVuY3J5cHRCbG9ja1JhdyhNKVxuICB2YXIgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDE2KVxuICBidWYud3JpdGVVSW50MzJCRShvdXRbMF0sIDApXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFsxXSwgNClcbiAgYnVmLndyaXRlVUludDMyQkUob3V0WzJdLCA4KVxuICBidWYud3JpdGVVSW50MzJCRShvdXRbM10sIDEyKVxuICByZXR1cm4gYnVmXG59XG5cbkFFUy5wcm90b3R5cGUuZGVjcnlwdEJsb2NrID0gZnVuY3Rpb24gKE0pIHtcbiAgTSA9IGFzVUludDMyQXJyYXkoTSlcblxuICAvLyBzd2FwXG4gIHZhciBtMSA9IE1bMV1cbiAgTVsxXSA9IE1bM11cbiAgTVszXSA9IG0xXG5cbiAgdmFyIG91dCA9IGNyeXB0QmxvY2soTSwgdGhpcy5faW52S2V5U2NoZWR1bGUsIEcuSU5WX1NVQl9NSVgsIEcuSU5WX1NCT1gsIHRoaXMuX25Sb3VuZHMpXG4gIHZhciBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMTYpXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFswXSwgMClcbiAgYnVmLndyaXRlVUludDMyQkUob3V0WzNdLCA0KVxuICBidWYud3JpdGVVSW50MzJCRShvdXRbMl0sIDgpXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFsxXSwgMTIpXG4gIHJldHVybiBidWZcbn1cblxuQUVTLnByb3RvdHlwZS5zY3J1YiA9IGZ1bmN0aW9uICgpIHtcbiAgc2NydWJWZWModGhpcy5fa2V5U2NoZWR1bGUpXG4gIHNjcnViVmVjKHRoaXMuX2ludktleVNjaGVkdWxlKVxuICBzY3J1YlZlYyh0aGlzLl9rZXkpXG59XG5cbm1vZHVsZS5leHBvcnRzLkFFUyA9IEFFU1xuIiwidmFyIGFlcyA9IHJlcXVpcmUoJy4vYWVzJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxudmFyIFRyYW5zZm9ybSA9IHJlcXVpcmUoJ2NpcGhlci1iYXNlJylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBHSEFTSCA9IHJlcXVpcmUoJy4vZ2hhc2gnKVxudmFyIHhvciA9IHJlcXVpcmUoJ2J1ZmZlci14b3InKVxudmFyIGluY3IzMiA9IHJlcXVpcmUoJy4vaW5jcjMyJylcblxuZnVuY3Rpb24geG9yVGVzdCAoYSwgYikge1xuICB2YXIgb3V0ID0gMFxuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSBvdXQrK1xuXG4gIHZhciBsZW4gPSBNYXRoLm1pbihhLmxlbmd0aCwgYi5sZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICBvdXQgKz0gKGFbaV0gXiBiW2ldKVxuICB9XG5cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiBjYWxjSXYgKHNlbGYsIGl2LCBjaykge1xuICBpZiAoaXYubGVuZ3RoID09PSAxMikge1xuICAgIHNlbGYuX2ZpbklEID0gQnVmZmVyLmNvbmNhdChbaXYsIEJ1ZmZlci5mcm9tKFswLCAwLCAwLCAxXSldKVxuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtpdiwgQnVmZmVyLmZyb20oWzAsIDAsIDAsIDJdKV0pXG4gIH1cbiAgdmFyIGdoYXNoID0gbmV3IEdIQVNIKGNrKVxuICB2YXIgbGVuID0gaXYubGVuZ3RoXG4gIHZhciB0b1BhZCA9IGxlbiAlIDE2XG4gIGdoYXNoLnVwZGF0ZShpdilcbiAgaWYgKHRvUGFkKSB7XG4gICAgdG9QYWQgPSAxNiAtIHRvUGFkXG4gICAgZ2hhc2gudXBkYXRlKEJ1ZmZlci5hbGxvYyh0b1BhZCwgMCkpXG4gIH1cbiAgZ2hhc2gudXBkYXRlKEJ1ZmZlci5hbGxvYyg4LCAwKSlcbiAgdmFyIGl2Qml0cyA9IGxlbiAqIDhcbiAgdmFyIHRhaWwgPSBCdWZmZXIuYWxsb2MoOClcbiAgdGFpbC53cml0ZVVJbnRCRShpdkJpdHMsIDAsIDgpXG4gIGdoYXNoLnVwZGF0ZSh0YWlsKVxuICBzZWxmLl9maW5JRCA9IGdoYXNoLnN0YXRlXG4gIHZhciBvdXQgPSBCdWZmZXIuZnJvbShzZWxmLl9maW5JRClcbiAgaW5jcjMyKG91dClcbiAgcmV0dXJuIG91dFxufVxuZnVuY3Rpb24gU3RyZWFtQ2lwaGVyIChtb2RlLCBrZXksIGl2LCBkZWNyeXB0KSB7XG4gIFRyYW5zZm9ybS5jYWxsKHRoaXMpXG5cbiAgdmFyIGggPSBCdWZmZXIuYWxsb2MoNCwgMClcblxuICB0aGlzLl9jaXBoZXIgPSBuZXcgYWVzLkFFUyhrZXkpXG4gIHZhciBjayA9IHRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2soaClcbiAgdGhpcy5fZ2hhc2ggPSBuZXcgR0hBU0goY2spXG4gIGl2ID0gY2FsY0l2KHRoaXMsIGl2LCBjaylcblxuICB0aGlzLl9wcmV2ID0gQnVmZmVyLmZyb20oaXYpXG4gIHRoaXMuX2NhY2hlID0gQnVmZmVyLmFsbG9jVW5zYWZlKDApXG4gIHRoaXMuX3NlY0NhY2hlID0gQnVmZmVyLmFsbG9jVW5zYWZlKDApXG4gIHRoaXMuX2RlY3J5cHQgPSBkZWNyeXB0XG4gIHRoaXMuX2FsZW4gPSAwXG4gIHRoaXMuX2xlbiA9IDBcbiAgdGhpcy5fbW9kZSA9IG1vZGVcblxuICB0aGlzLl9hdXRoVGFnID0gbnVsbFxuICB0aGlzLl9jYWxsZWQgPSBmYWxzZVxufVxuXG5pbmhlcml0cyhTdHJlYW1DaXBoZXIsIFRyYW5zZm9ybSlcblxuU3RyZWFtQ2lwaGVyLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKGNodW5rKSB7XG4gIGlmICghdGhpcy5fY2FsbGVkICYmIHRoaXMuX2FsZW4pIHtcbiAgICB2YXIgcnVtcCA9IDE2IC0gKHRoaXMuX2FsZW4gJSAxNilcbiAgICBpZiAocnVtcCA8IDE2KSB7XG4gICAgICBydW1wID0gQnVmZmVyLmFsbG9jKHJ1bXAsIDApXG4gICAgICB0aGlzLl9naGFzaC51cGRhdGUocnVtcClcbiAgICB9XG4gIH1cblxuICB0aGlzLl9jYWxsZWQgPSB0cnVlXG4gIHZhciBvdXQgPSB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcywgY2h1bmspXG4gIGlmICh0aGlzLl9kZWNyeXB0KSB7XG4gICAgdGhpcy5fZ2hhc2gudXBkYXRlKGNodW5rKVxuICB9IGVsc2Uge1xuICAgIHRoaXMuX2doYXNoLnVwZGF0ZShvdXQpXG4gIH1cbiAgdGhpcy5fbGVuICs9IGNodW5rLmxlbmd0aFxuICByZXR1cm4gb3V0XG59XG5cblN0cmVhbUNpcGhlci5wcm90b3R5cGUuX2ZpbmFsID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5fZGVjcnlwdCAmJiAhdGhpcy5fYXV0aFRhZykgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVudGljYXRlIGRhdGEnKVxuXG4gIHZhciB0YWcgPSB4b3IodGhpcy5fZ2hhc2guZmluYWwodGhpcy5fYWxlbiAqIDgsIHRoaXMuX2xlbiAqIDgpLCB0aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHRoaXMuX2ZpbklEKSlcbiAgaWYgKHRoaXMuX2RlY3J5cHQgJiYgeG9yVGVzdCh0YWcsIHRoaXMuX2F1dGhUYWcpKSB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YScpXG5cbiAgdGhpcy5fYXV0aFRhZyA9IHRhZ1xuICB0aGlzLl9jaXBoZXIuc2NydWIoKVxufVxuXG5TdHJlYW1DaXBoZXIucHJvdG90eXBlLmdldEF1dGhUYWcgPSBmdW5jdGlvbiBnZXRBdXRoVGFnICgpIHtcbiAgaWYgKHRoaXMuX2RlY3J5cHQgfHwgIUJ1ZmZlci5pc0J1ZmZlcih0aGlzLl9hdXRoVGFnKSkgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0aW5nIHRvIGdldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZScpXG5cbiAgcmV0dXJuIHRoaXMuX2F1dGhUYWdcbn1cblxuU3RyZWFtQ2lwaGVyLnByb3RvdHlwZS5zZXRBdXRoVGFnID0gZnVuY3Rpb24gc2V0QXV0aFRhZyAodGFnKSB7XG4gIGlmICghdGhpcy5fZGVjcnlwdCkgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZScpXG5cbiAgdGhpcy5fYXV0aFRhZyA9IHRhZ1xufVxuXG5TdHJlYW1DaXBoZXIucHJvdG90eXBlLnNldEFBRCA9IGZ1bmN0aW9uIHNldEFBRCAoYnVmKSB7XG4gIGlmICh0aGlzLl9jYWxsZWQpIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlJylcblxuICB0aGlzLl9naGFzaC51cGRhdGUoYnVmKVxuICB0aGlzLl9hbGVuICs9IGJ1Zi5sZW5ndGhcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTdHJlYW1DaXBoZXJcbiIsInZhciBjaXBoZXJzID0gcmVxdWlyZSgnLi9lbmNyeXB0ZXInKVxudmFyIGRlY2lwaGVycyA9IHJlcXVpcmUoJy4vZGVjcnlwdGVyJylcbnZhciBtb2RlcyA9IHJlcXVpcmUoJy4vbW9kZXMvbGlzdC5qc29uJylcblxuZnVuY3Rpb24gZ2V0Q2lwaGVycyAoKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtb2Rlcylcbn1cblxuZXhwb3J0cy5jcmVhdGVDaXBoZXIgPSBleHBvcnRzLkNpcGhlciA9IGNpcGhlcnMuY3JlYXRlQ2lwaGVyXG5leHBvcnRzLmNyZWF0ZUNpcGhlcml2ID0gZXhwb3J0cy5DaXBoZXJpdiA9IGNpcGhlcnMuY3JlYXRlQ2lwaGVyaXZcbmV4cG9ydHMuY3JlYXRlRGVjaXBoZXIgPSBleHBvcnRzLkRlY2lwaGVyID0gZGVjaXBoZXJzLmNyZWF0ZURlY2lwaGVyXG5leHBvcnRzLmNyZWF0ZURlY2lwaGVyaXYgPSBleHBvcnRzLkRlY2lwaGVyaXYgPSBkZWNpcGhlcnMuY3JlYXRlRGVjaXBoZXJpdlxuZXhwb3J0cy5saXN0Q2lwaGVycyA9IGV4cG9ydHMuZ2V0Q2lwaGVycyA9IGdldENpcGhlcnNcbiIsInZhciBBdXRoQ2lwaGVyID0gcmVxdWlyZSgnLi9hdXRoQ2lwaGVyJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxudmFyIE1PREVTID0gcmVxdWlyZSgnLi9tb2RlcycpXG52YXIgU3RyZWFtQ2lwaGVyID0gcmVxdWlyZSgnLi9zdHJlYW1DaXBoZXInKVxudmFyIFRyYW5zZm9ybSA9IHJlcXVpcmUoJ2NpcGhlci1iYXNlJylcbnZhciBhZXMgPSByZXF1aXJlKCcuL2FlcycpXG52YXIgZWJ0ayA9IHJlcXVpcmUoJ2V2cF9ieXRlc3Rva2V5JylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcblxuZnVuY3Rpb24gRGVjaXBoZXIgKG1vZGUsIGtleSwgaXYpIHtcbiAgVHJhbnNmb3JtLmNhbGwodGhpcylcblxuICB0aGlzLl9jYWNoZSA9IG5ldyBTcGxpdHRlcigpXG4gIHRoaXMuX2xhc3QgPSB2b2lkIDBcbiAgdGhpcy5fY2lwaGVyID0gbmV3IGFlcy5BRVMoa2V5KVxuICB0aGlzLl9wcmV2ID0gQnVmZmVyLmZyb20oaXYpXG4gIHRoaXMuX21vZGUgPSBtb2RlXG4gIHRoaXMuX2F1dG9wYWRkaW5nID0gdHJ1ZVxufVxuXG5pbmhlcml0cyhEZWNpcGhlciwgVHJhbnNmb3JtKVxuXG5EZWNpcGhlci5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHRoaXMuX2NhY2hlLmFkZChkYXRhKVxuICB2YXIgY2h1bmtcbiAgdmFyIHRoaW5nXG4gIHZhciBvdXQgPSBbXVxuICB3aGlsZSAoKGNodW5rID0gdGhpcy5fY2FjaGUuZ2V0KHRoaXMuX2F1dG9wYWRkaW5nKSkpIHtcbiAgICB0aGluZyA9IHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLCBjaHVuaylcbiAgICBvdXQucHVzaCh0aGluZylcbiAgfVxuICByZXR1cm4gQnVmZmVyLmNvbmNhdChvdXQpXG59XG5cbkRlY2lwaGVyLnByb3RvdHlwZS5fZmluYWwgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBjaHVuayA9IHRoaXMuX2NhY2hlLmZsdXNoKClcbiAgaWYgKHRoaXMuX2F1dG9wYWRkaW5nKSB7XG4gICAgcmV0dXJuIHVucGFkKHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLCBjaHVuaykpXG4gIH0gZWxzZSBpZiAoY2h1bmspIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RhdGEgbm90IG11bHRpcGxlIG9mIGJsb2NrIGxlbmd0aCcpXG4gIH1cbn1cblxuRGVjaXBoZXIucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nID0gZnVuY3Rpb24gKHNldFRvKSB7XG4gIHRoaXMuX2F1dG9wYWRkaW5nID0gISFzZXRUb1xuICByZXR1cm4gdGhpc1xufVxuXG5mdW5jdGlvbiBTcGxpdHRlciAoKSB7XG4gIHRoaXMuY2FjaGUgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMClcbn1cblxuU3BsaXR0ZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHRoaXMuY2FjaGUgPSBCdWZmZXIuY29uY2F0KFt0aGlzLmNhY2hlLCBkYXRhXSlcbn1cblxuU3BsaXR0ZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChhdXRvUGFkZGluZykge1xuICB2YXIgb3V0XG4gIGlmIChhdXRvUGFkZGluZykge1xuICAgIGlmICh0aGlzLmNhY2hlLmxlbmd0aCA+IDE2KSB7XG4gICAgICBvdXQgPSB0aGlzLmNhY2hlLnNsaWNlKDAsIDE2KVxuICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuc2xpY2UoMTYpXG4gICAgICByZXR1cm4gb3V0XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICh0aGlzLmNhY2hlLmxlbmd0aCA+PSAxNikge1xuICAgICAgb3V0ID0gdGhpcy5jYWNoZS5zbGljZSgwLCAxNilcbiAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLnNsaWNlKDE2KVxuICAgICAgcmV0dXJuIG91dFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cblNwbGl0dGVyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuY2FjaGUubGVuZ3RoKSByZXR1cm4gdGhpcy5jYWNoZVxufVxuXG5mdW5jdGlvbiB1bnBhZCAobGFzdCkge1xuICB2YXIgcGFkZGVkID0gbGFzdFsxNV1cbiAgaWYgKHBhZGRlZCA8IDEgfHwgcGFkZGVkID4gMTYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuYWJsZSB0byBkZWNyeXB0IGRhdGEnKVxuICB9XG4gIHZhciBpID0gLTFcbiAgd2hpbGUgKCsraSA8IHBhZGRlZCkge1xuICAgIGlmIChsYXN0WyhpICsgKDE2IC0gcGFkZGVkKSldICE9PSBwYWRkZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5hYmxlIHRvIGRlY3J5cHQgZGF0YScpXG4gICAgfVxuICB9XG4gIGlmIChwYWRkZWQgPT09IDE2KSByZXR1cm5cblxuICByZXR1cm4gbGFzdC5zbGljZSgwLCAxNiAtIHBhZGRlZClcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVjaXBoZXJpdiAoc3VpdGUsIHBhc3N3b3JkLCBpdikge1xuICB2YXIgY29uZmlnID0gTU9ERVNbc3VpdGUudG9Mb3dlckNhc2UoKV1cbiAgaWYgKCFjb25maWcpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQgc3VpdGUgdHlwZScpXG5cbiAgaWYgKHR5cGVvZiBpdiA9PT0gJ3N0cmluZycpIGl2ID0gQnVmZmVyLmZyb20oaXYpXG4gIGlmIChjb25maWcubW9kZSAhPT0gJ0dDTScgJiYgaXYubGVuZ3RoICE9PSBjb25maWcuaXYpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQgaXYgbGVuZ3RoICcgKyBpdi5sZW5ndGgpXG5cbiAgaWYgKHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycpIHBhc3N3b3JkID0gQnVmZmVyLmZyb20ocGFzc3dvcmQpXG4gIGlmIChwYXNzd29yZC5sZW5ndGggIT09IGNvbmZpZy5rZXkgLyA4KSB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIGtleSBsZW5ndGggJyArIHBhc3N3b3JkLmxlbmd0aClcblxuICBpZiAoY29uZmlnLnR5cGUgPT09ICdzdHJlYW0nKSB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW1DaXBoZXIoY29uZmlnLm1vZHVsZSwgcGFzc3dvcmQsIGl2LCB0cnVlKVxuICB9IGVsc2UgaWYgKGNvbmZpZy50eXBlID09PSAnYXV0aCcpIHtcbiAgICByZXR1cm4gbmV3IEF1dGhDaXBoZXIoY29uZmlnLm1vZHVsZSwgcGFzc3dvcmQsIGl2LCB0cnVlKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBEZWNpcGhlcihjb25maWcubW9kdWxlLCBwYXNzd29yZCwgaXYpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURlY2lwaGVyIChzdWl0ZSwgcGFzc3dvcmQpIHtcbiAgdmFyIGNvbmZpZyA9IE1PREVTW3N1aXRlLnRvTG93ZXJDYXNlKCldXG4gIGlmICghY29uZmlnKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIHN1aXRlIHR5cGUnKVxuXG4gIHZhciBrZXlzID0gZWJ0ayhwYXNzd29yZCwgZmFsc2UsIGNvbmZpZy5rZXksIGNvbmZpZy5pdilcbiAgcmV0dXJuIGNyZWF0ZURlY2lwaGVyaXYoc3VpdGUsIGtleXMua2V5LCBrZXlzLml2KVxufVxuXG5leHBvcnRzLmNyZWF0ZURlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJcbmV4cG9ydHMuY3JlYXRlRGVjaXBoZXJpdiA9IGNyZWF0ZURlY2lwaGVyaXZcbiIsInZhciBNT0RFUyA9IHJlcXVpcmUoJy4vbW9kZXMnKVxudmFyIEF1dGhDaXBoZXIgPSByZXF1aXJlKCcuL2F1dGhDaXBoZXInKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgU3RyZWFtQ2lwaGVyID0gcmVxdWlyZSgnLi9zdHJlYW1DaXBoZXInKVxudmFyIFRyYW5zZm9ybSA9IHJlcXVpcmUoJ2NpcGhlci1iYXNlJylcbnZhciBhZXMgPSByZXF1aXJlKCcuL2FlcycpXG52YXIgZWJ0ayA9IHJlcXVpcmUoJ2V2cF9ieXRlc3Rva2V5JylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcblxuZnVuY3Rpb24gQ2lwaGVyIChtb2RlLCBrZXksIGl2KSB7XG4gIFRyYW5zZm9ybS5jYWxsKHRoaXMpXG5cbiAgdGhpcy5fY2FjaGUgPSBuZXcgU3BsaXR0ZXIoKVxuICB0aGlzLl9jaXBoZXIgPSBuZXcgYWVzLkFFUyhrZXkpXG4gIHRoaXMuX3ByZXYgPSBCdWZmZXIuZnJvbShpdilcbiAgdGhpcy5fbW9kZSA9IG1vZGVcbiAgdGhpcy5fYXV0b3BhZGRpbmcgPSB0cnVlXG59XG5cbmluaGVyaXRzKENpcGhlciwgVHJhbnNmb3JtKVxuXG5DaXBoZXIucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICB0aGlzLl9jYWNoZS5hZGQoZGF0YSlcbiAgdmFyIGNodW5rXG4gIHZhciB0aGluZ1xuICB2YXIgb3V0ID0gW11cblxuICB3aGlsZSAoKGNodW5rID0gdGhpcy5fY2FjaGUuZ2V0KCkpKSB7XG4gICAgdGhpbmcgPSB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcywgY2h1bmspXG4gICAgb3V0LnB1c2godGhpbmcpXG4gIH1cblxuICByZXR1cm4gQnVmZmVyLmNvbmNhdChvdXQpXG59XG5cbnZhciBQQURESU5HID0gQnVmZmVyLmFsbG9jKDE2LCAweDEwKVxuXG5DaXBoZXIucHJvdG90eXBlLl9maW5hbCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGNodW5rID0gdGhpcy5fY2FjaGUuZmx1c2goKVxuICBpZiAodGhpcy5fYXV0b3BhZGRpbmcpIHtcbiAgICBjaHVuayA9IHRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLCBjaHVuaylcbiAgICB0aGlzLl9jaXBoZXIuc2NydWIoKVxuICAgIHJldHVybiBjaHVua1xuICB9XG5cbiAgaWYgKCFjaHVuay5lcXVhbHMoUEFERElORykpIHtcbiAgICB0aGlzLl9jaXBoZXIuc2NydWIoKVxuICAgIHRocm93IG5ldyBFcnJvcignZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoJylcbiAgfVxufVxuXG5DaXBoZXIucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nID0gZnVuY3Rpb24gKHNldFRvKSB7XG4gIHRoaXMuX2F1dG9wYWRkaW5nID0gISFzZXRUb1xuICByZXR1cm4gdGhpc1xufVxuXG5mdW5jdGlvbiBTcGxpdHRlciAoKSB7XG4gIHRoaXMuY2FjaGUgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMClcbn1cblxuU3BsaXR0ZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHRoaXMuY2FjaGUgPSBCdWZmZXIuY29uY2F0KFt0aGlzLmNhY2hlLCBkYXRhXSlcbn1cblxuU3BsaXR0ZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuY2FjaGUubGVuZ3RoID4gMTUpIHtcbiAgICB2YXIgb3V0ID0gdGhpcy5jYWNoZS5zbGljZSgwLCAxNilcbiAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5zbGljZSgxNilcbiAgICByZXR1cm4gb3V0XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuU3BsaXR0ZXIucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgbGVuID0gMTYgLSB0aGlzLmNhY2hlLmxlbmd0aFxuICB2YXIgcGFkQnVmZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShsZW4pXG5cbiAgdmFyIGkgPSAtMVxuICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgcGFkQnVmZi53cml0ZVVJbnQ4KGxlbiwgaSlcbiAgfVxuXG4gIHJldHVybiBCdWZmZXIuY29uY2F0KFt0aGlzLmNhY2hlLCBwYWRCdWZmXSlcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2lwaGVyaXYgKHN1aXRlLCBwYXNzd29yZCwgaXYpIHtcbiAgdmFyIGNvbmZpZyA9IE1PREVTW3N1aXRlLnRvTG93ZXJDYXNlKCldXG4gIGlmICghY29uZmlnKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIHN1aXRlIHR5cGUnKVxuXG4gIGlmICh0eXBlb2YgcGFzc3dvcmQgPT09ICdzdHJpbmcnKSBwYXNzd29yZCA9IEJ1ZmZlci5mcm9tKHBhc3N3b3JkKVxuICBpZiAocGFzc3dvcmQubGVuZ3RoICE9PSBjb25maWcua2V5IC8gOCkgdGhyb3cgbmV3IFR5cGVFcnJvcignaW52YWxpZCBrZXkgbGVuZ3RoICcgKyBwYXNzd29yZC5sZW5ndGgpXG5cbiAgaWYgKHR5cGVvZiBpdiA9PT0gJ3N0cmluZycpIGl2ID0gQnVmZmVyLmZyb20oaXYpXG4gIGlmIChjb25maWcubW9kZSAhPT0gJ0dDTScgJiYgaXYubGVuZ3RoICE9PSBjb25maWcuaXYpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQgaXYgbGVuZ3RoICcgKyBpdi5sZW5ndGgpXG5cbiAgaWYgKGNvbmZpZy50eXBlID09PSAnc3RyZWFtJykge1xuICAgIHJldHVybiBuZXcgU3RyZWFtQ2lwaGVyKGNvbmZpZy5tb2R1bGUsIHBhc3N3b3JkLCBpdilcbiAgfSBlbHNlIGlmIChjb25maWcudHlwZSA9PT0gJ2F1dGgnKSB7XG4gICAgcmV0dXJuIG5ldyBBdXRoQ2lwaGVyKGNvbmZpZy5tb2R1bGUsIHBhc3N3b3JkLCBpdilcbiAgfVxuXG4gIHJldHVybiBuZXcgQ2lwaGVyKGNvbmZpZy5tb2R1bGUsIHBhc3N3b3JkLCBpdilcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2lwaGVyIChzdWl0ZSwgcGFzc3dvcmQpIHtcbiAgdmFyIGNvbmZpZyA9IE1PREVTW3N1aXRlLnRvTG93ZXJDYXNlKCldXG4gIGlmICghY29uZmlnKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIHN1aXRlIHR5cGUnKVxuXG4gIHZhciBrZXlzID0gZWJ0ayhwYXNzd29yZCwgZmFsc2UsIGNvbmZpZy5rZXksIGNvbmZpZy5pdilcbiAgcmV0dXJuIGNyZWF0ZUNpcGhlcml2KHN1aXRlLCBrZXlzLmtleSwga2V5cy5pdilcbn1cblxuZXhwb3J0cy5jcmVhdGVDaXBoZXJpdiA9IGNyZWF0ZUNpcGhlcml2XG5leHBvcnRzLmNyZWF0ZUNpcGhlciA9IGNyZWF0ZUNpcGhlclxuIiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgWkVST0VTID0gQnVmZmVyLmFsbG9jKDE2LCAwKVxuXG5mdW5jdGlvbiB0b0FycmF5IChidWYpIHtcbiAgcmV0dXJuIFtcbiAgICBidWYucmVhZFVJbnQzMkJFKDApLFxuICAgIGJ1Zi5yZWFkVUludDMyQkUoNCksXG4gICAgYnVmLnJlYWRVSW50MzJCRSg4KSxcbiAgICBidWYucmVhZFVJbnQzMkJFKDEyKVxuICBdXG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheSAob3V0KSB7XG4gIHZhciBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMTYpXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFswXSA+Pj4gMCwgMClcbiAgYnVmLndyaXRlVUludDMyQkUob3V0WzFdID4+PiAwLCA0KVxuICBidWYud3JpdGVVSW50MzJCRShvdXRbMl0gPj4+IDAsIDgpXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFszXSA+Pj4gMCwgMTIpXG4gIHJldHVybiBidWZcbn1cblxuZnVuY3Rpb24gR0hBU0ggKGtleSkge1xuICB0aGlzLmggPSBrZXlcbiAgdGhpcy5zdGF0ZSA9IEJ1ZmZlci5hbGxvYygxNiwgMClcbiAgdGhpcy5jYWNoZSA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgwKVxufVxuXG4vLyBmcm9tIGh0dHA6Ly9iaXR3aXNlc2hpZnRsZWZ0LmdpdGh1Yi5pby9zamNsL2RvYy9zeW1ib2xzL3NyYy9jb3JlX2djbS5qcy5odG1sXG4vLyBieSBKdWhvIFbDpGjDpC1IZXJ0dHVhXG5HSEFTSC5wcm90b3R5cGUuZ2hhc2ggPSBmdW5jdGlvbiAoYmxvY2spIHtcbiAgdmFyIGkgPSAtMVxuICB3aGlsZSAoKytpIDwgYmxvY2subGVuZ3RoKSB7XG4gICAgdGhpcy5zdGF0ZVtpXSBePSBibG9ja1tpXVxuICB9XG4gIHRoaXMuX211bHRpcGx5KClcbn1cblxuR0hBU0gucHJvdG90eXBlLl9tdWx0aXBseSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIFZpID0gdG9BcnJheSh0aGlzLmgpXG4gIHZhciBaaSA9IFswLCAwLCAwLCAwXVxuICB2YXIgaiwgeGksIGxzYlZpXG4gIHZhciBpID0gLTFcbiAgd2hpbGUgKCsraSA8IDEyOCkge1xuICAgIHhpID0gKHRoaXMuc3RhdGVbfn4oaSAvIDgpXSAmICgxIDw8ICg3IC0gKGkgJSA4KSkpKSAhPT0gMFxuICAgIGlmICh4aSkge1xuICAgICAgLy8gWl9pKzEgPSBaX2kgXiBWX2lcbiAgICAgIFppWzBdIF49IFZpWzBdXG4gICAgICBaaVsxXSBePSBWaVsxXVxuICAgICAgWmlbMl0gXj0gVmlbMl1cbiAgICAgIFppWzNdIF49IFZpWzNdXG4gICAgfVxuXG4gICAgLy8gU3RvcmUgdGhlIHZhbHVlIG9mIExTQihWX2kpXG4gICAgbHNiVmkgPSAoVmlbM10gJiAxKSAhPT0gMFxuXG4gICAgLy8gVl9pKzEgPSBWX2kgPj4gMVxuICAgIGZvciAoaiA9IDM7IGogPiAwOyBqLS0pIHtcbiAgICAgIFZpW2pdID0gKFZpW2pdID4+PiAxKSB8ICgoVmlbaiAtIDFdICYgMSkgPDwgMzEpXG4gICAgfVxuICAgIFZpWzBdID0gVmlbMF0gPj4+IDFcblxuICAgIC8vIElmIExTQihWX2kpIGlzIDEsIFZfaSsxID0gKFZfaSA+PiAxKSBeIFJcbiAgICBpZiAobHNiVmkpIHtcbiAgICAgIFZpWzBdID0gVmlbMF0gXiAoMHhlMSA8PCAyNClcbiAgICB9XG4gIH1cbiAgdGhpcy5zdGF0ZSA9IGZyb21BcnJheShaaSlcbn1cblxuR0hBU0gucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChidWYpIHtcbiAgdGhpcy5jYWNoZSA9IEJ1ZmZlci5jb25jYXQoW3RoaXMuY2FjaGUsIGJ1Zl0pXG4gIHZhciBjaHVua1xuICB3aGlsZSAodGhpcy5jYWNoZS5sZW5ndGggPj0gMTYpIHtcbiAgICBjaHVuayA9IHRoaXMuY2FjaGUuc2xpY2UoMCwgMTYpXG4gICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuc2xpY2UoMTYpXG4gICAgdGhpcy5naGFzaChjaHVuaylcbiAgfVxufVxuXG5HSEFTSC5wcm90b3R5cGUuZmluYWwgPSBmdW5jdGlvbiAoYWJsLCBibCkge1xuICBpZiAodGhpcy5jYWNoZS5sZW5ndGgpIHtcbiAgICB0aGlzLmdoYXNoKEJ1ZmZlci5jb25jYXQoW3RoaXMuY2FjaGUsIFpFUk9FU10sIDE2KSlcbiAgfVxuXG4gIHRoaXMuZ2hhc2goZnJvbUFycmF5KFswLCBhYmwsIDAsIGJsXSkpXG4gIHJldHVybiB0aGlzLnN0YXRlXG59XG5cbm1vZHVsZS5leHBvcnRzID0gR0hBU0hcbiIsImZ1bmN0aW9uIGluY3IzMiAoaXYpIHtcbiAgdmFyIGxlbiA9IGl2Lmxlbmd0aFxuICB2YXIgaXRlbVxuICB3aGlsZSAobGVuLS0pIHtcbiAgICBpdGVtID0gaXYucmVhZFVJbnQ4KGxlbilcbiAgICBpZiAoaXRlbSA9PT0gMjU1KSB7XG4gICAgICBpdi53cml0ZVVJbnQ4KDAsIGxlbilcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbSsrXG4gICAgICBpdi53cml0ZVVJbnQ4KGl0ZW0sIGxlbilcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluY3IzMlxuIiwidmFyIHhvciA9IHJlcXVpcmUoJ2J1ZmZlci14b3InKVxuXG5leHBvcnRzLmVuY3J5cHQgPSBmdW5jdGlvbiAoc2VsZiwgYmxvY2spIHtcbiAgdmFyIGRhdGEgPSB4b3IoYmxvY2ssIHNlbGYuX3ByZXYpXG5cbiAgc2VsZi5fcHJldiA9IHNlbGYuX2NpcGhlci5lbmNyeXB0QmxvY2soZGF0YSlcbiAgcmV0dXJuIHNlbGYuX3ByZXZcbn1cblxuZXhwb3J0cy5kZWNyeXB0ID0gZnVuY3Rpb24gKHNlbGYsIGJsb2NrKSB7XG4gIHZhciBwYWQgPSBzZWxmLl9wcmV2XG5cbiAgc2VsZi5fcHJldiA9IGJsb2NrXG4gIHZhciBvdXQgPSBzZWxmLl9jaXBoZXIuZGVjcnlwdEJsb2NrKGJsb2NrKVxuXG4gIHJldHVybiB4b3Iob3V0LCBwYWQpXG59XG4iLCJ2YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciB4b3IgPSByZXF1aXJlKCdidWZmZXIteG9yJylcblxuZnVuY3Rpb24gZW5jcnlwdFN0YXJ0IChzZWxmLCBkYXRhLCBkZWNyeXB0KSB7XG4gIHZhciBsZW4gPSBkYXRhLmxlbmd0aFxuICB2YXIgb3V0ID0geG9yKGRhdGEsIHNlbGYuX2NhY2hlKVxuICBzZWxmLl9jYWNoZSA9IHNlbGYuX2NhY2hlLnNsaWNlKGxlbilcbiAgc2VsZi5fcHJldiA9IEJ1ZmZlci5jb25jYXQoW3NlbGYuX3ByZXYsIGRlY3J5cHQgPyBkYXRhIDogb3V0XSlcbiAgcmV0dXJuIG91dFxufVxuXG5leHBvcnRzLmVuY3J5cHQgPSBmdW5jdGlvbiAoc2VsZiwgZGF0YSwgZGVjcnlwdCkge1xuICB2YXIgb3V0ID0gQnVmZmVyLmFsbG9jVW5zYWZlKDApXG4gIHZhciBsZW5cblxuICB3aGlsZSAoZGF0YS5sZW5ndGgpIHtcbiAgICBpZiAoc2VsZi5fY2FjaGUubGVuZ3RoID09PSAwKSB7XG4gICAgICBzZWxmLl9jYWNoZSA9IHNlbGYuX2NpcGhlci5lbmNyeXB0QmxvY2soc2VsZi5fcHJldilcbiAgICAgIHNlbGYuX3ByZXYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMClcbiAgICB9XG5cbiAgICBpZiAoc2VsZi5fY2FjaGUubGVuZ3RoIDw9IGRhdGEubGVuZ3RoKSB7XG4gICAgICBsZW4gPSBzZWxmLl9jYWNoZS5sZW5ndGhcbiAgICAgIG91dCA9IEJ1ZmZlci5jb25jYXQoW291dCwgZW5jcnlwdFN0YXJ0KHNlbGYsIGRhdGEuc2xpY2UoMCwgbGVuKSwgZGVjcnlwdCldKVxuICAgICAgZGF0YSA9IGRhdGEuc2xpY2UobGVuKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgPSBCdWZmZXIuY29uY2F0KFtvdXQsIGVuY3J5cHRTdGFydChzZWxmLCBkYXRhLCBkZWNyeXB0KV0pXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRcbn1cbiIsInZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG5mdW5jdGlvbiBlbmNyeXB0Qnl0ZSAoc2VsZiwgYnl0ZVBhcmFtLCBkZWNyeXB0KSB7XG4gIHZhciBwYWRcbiAgdmFyIGkgPSAtMVxuICB2YXIgbGVuID0gOFxuICB2YXIgb3V0ID0gMFxuICB2YXIgYml0LCB2YWx1ZVxuICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgcGFkID0gc2VsZi5fY2lwaGVyLmVuY3J5cHRCbG9jayhzZWxmLl9wcmV2KVxuICAgIGJpdCA9IChieXRlUGFyYW0gJiAoMSA8PCAoNyAtIGkpKSkgPyAweDgwIDogMFxuICAgIHZhbHVlID0gcGFkWzBdIF4gYml0XG4gICAgb3V0ICs9ICgodmFsdWUgJiAweDgwKSA+PiAoaSAlIDgpKVxuICAgIHNlbGYuX3ByZXYgPSBzaGlmdEluKHNlbGYuX3ByZXYsIGRlY3J5cHQgPyBiaXQgOiB2YWx1ZSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHNoaWZ0SW4gKGJ1ZmZlciwgdmFsdWUpIHtcbiAgdmFyIGxlbiA9IGJ1ZmZlci5sZW5ndGhcbiAgdmFyIGkgPSAtMVxuICB2YXIgb3V0ID0gQnVmZmVyLmFsbG9jVW5zYWZlKGJ1ZmZlci5sZW5ndGgpXG4gIGJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoW2J1ZmZlciwgQnVmZmVyLmZyb20oW3ZhbHVlXSldKVxuXG4gIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICBvdXRbaV0gPSBidWZmZXJbaV0gPDwgMSB8IGJ1ZmZlcltpICsgMV0gPj4gKDcpXG4gIH1cblxuICByZXR1cm4gb3V0XG59XG5cbmV4cG9ydHMuZW5jcnlwdCA9IGZ1bmN0aW9uIChzZWxmLCBjaHVuaywgZGVjcnlwdCkge1xuICB2YXIgbGVuID0gY2h1bmsubGVuZ3RoXG4gIHZhciBvdXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUobGVuKVxuICB2YXIgaSA9IC0xXG5cbiAgd2hpbGUgKCsraSA8IGxlbikge1xuICAgIG91dFtpXSA9IGVuY3J5cHRCeXRlKHNlbGYsIGNodW5rW2ldLCBkZWNyeXB0KVxuICB9XG5cbiAgcmV0dXJuIG91dFxufVxuIiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbmZ1bmN0aW9uIGVuY3J5cHRCeXRlIChzZWxmLCBieXRlUGFyYW0sIGRlY3J5cHQpIHtcbiAgdmFyIHBhZCA9IHNlbGYuX2NpcGhlci5lbmNyeXB0QmxvY2soc2VsZi5fcHJldilcbiAgdmFyIG91dCA9IHBhZFswXSBeIGJ5dGVQYXJhbVxuXG4gIHNlbGYuX3ByZXYgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBzZWxmLl9wcmV2LnNsaWNlKDEpLFxuICAgIEJ1ZmZlci5mcm9tKFtkZWNyeXB0ID8gYnl0ZVBhcmFtIDogb3V0XSlcbiAgXSlcblxuICByZXR1cm4gb3V0XG59XG5cbmV4cG9ydHMuZW5jcnlwdCA9IGZ1bmN0aW9uIChzZWxmLCBjaHVuaywgZGVjcnlwdCkge1xuICB2YXIgbGVuID0gY2h1bmsubGVuZ3RoXG4gIHZhciBvdXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUobGVuKVxuICB2YXIgaSA9IC0xXG5cbiAgd2hpbGUgKCsraSA8IGxlbikge1xuICAgIG91dFtpXSA9IGVuY3J5cHRCeXRlKHNlbGYsIGNodW5rW2ldLCBkZWNyeXB0KVxuICB9XG5cbiAgcmV0dXJuIG91dFxufVxuIiwidmFyIHhvciA9IHJlcXVpcmUoJ2J1ZmZlci14b3InKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgaW5jcjMyID0gcmVxdWlyZSgnLi4vaW5jcjMyJylcblxuZnVuY3Rpb24gZ2V0QmxvY2sgKHNlbGYpIHtcbiAgdmFyIG91dCA9IHNlbGYuX2NpcGhlci5lbmNyeXB0QmxvY2tSYXcoc2VsZi5fcHJldilcbiAgaW5jcjMyKHNlbGYuX3ByZXYpXG4gIHJldHVybiBvdXRcbn1cblxudmFyIGJsb2NrU2l6ZSA9IDE2XG5leHBvcnRzLmVuY3J5cHQgPSBmdW5jdGlvbiAoc2VsZiwgY2h1bmspIHtcbiAgdmFyIGNodW5rTnVtID0gTWF0aC5jZWlsKGNodW5rLmxlbmd0aCAvIGJsb2NrU2l6ZSlcbiAgdmFyIHN0YXJ0ID0gc2VsZi5fY2FjaGUubGVuZ3RoXG4gIHNlbGYuX2NhY2hlID0gQnVmZmVyLmNvbmNhdChbXG4gICAgc2VsZi5fY2FjaGUsXG4gICAgQnVmZmVyLmFsbG9jVW5zYWZlKGNodW5rTnVtICogYmxvY2tTaXplKVxuICBdKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNodW5rTnVtOyBpKyspIHtcbiAgICB2YXIgb3V0ID0gZ2V0QmxvY2soc2VsZilcbiAgICB2YXIgb2Zmc2V0ID0gc3RhcnQgKyBpICogYmxvY2tTaXplXG4gICAgc2VsZi5fY2FjaGUud3JpdGVVSW50MzJCRShvdXRbMF0sIG9mZnNldCArIDApXG4gICAgc2VsZi5fY2FjaGUud3JpdGVVSW50MzJCRShvdXRbMV0sIG9mZnNldCArIDQpXG4gICAgc2VsZi5fY2FjaGUud3JpdGVVSW50MzJCRShvdXRbMl0sIG9mZnNldCArIDgpXG4gICAgc2VsZi5fY2FjaGUud3JpdGVVSW50MzJCRShvdXRbM10sIG9mZnNldCArIDEyKVxuICB9XG4gIHZhciBwYWQgPSBzZWxmLl9jYWNoZS5zbGljZSgwLCBjaHVuay5sZW5ndGgpXG4gIHNlbGYuX2NhY2hlID0gc2VsZi5fY2FjaGUuc2xpY2UoY2h1bmsubGVuZ3RoKVxuICByZXR1cm4geG9yKGNodW5rLCBwYWQpXG59XG4iLCJleHBvcnRzLmVuY3J5cHQgPSBmdW5jdGlvbiAoc2VsZiwgYmxvY2spIHtcbiAgcmV0dXJuIHNlbGYuX2NpcGhlci5lbmNyeXB0QmxvY2soYmxvY2spXG59XG5cbmV4cG9ydHMuZGVjcnlwdCA9IGZ1bmN0aW9uIChzZWxmLCBibG9jaykge1xuICByZXR1cm4gc2VsZi5fY2lwaGVyLmRlY3J5cHRCbG9jayhibG9jaylcbn1cbiIsInZhciBtb2RlTW9kdWxlcyA9IHtcbiAgRUNCOiByZXF1aXJlKCcuL2VjYicpLFxuICBDQkM6IHJlcXVpcmUoJy4vY2JjJyksXG4gIENGQjogcmVxdWlyZSgnLi9jZmInKSxcbiAgQ0ZCODogcmVxdWlyZSgnLi9jZmI4JyksXG4gIENGQjE6IHJlcXVpcmUoJy4vY2ZiMScpLFxuICBPRkI6IHJlcXVpcmUoJy4vb2ZiJyksXG4gIENUUjogcmVxdWlyZSgnLi9jdHInKSxcbiAgR0NNOiByZXF1aXJlKCcuL2N0cicpXG59XG5cbnZhciBtb2RlcyA9IHJlcXVpcmUoJy4vbGlzdC5qc29uJylcblxuZm9yICh2YXIga2V5IGluIG1vZGVzKSB7XG4gIG1vZGVzW2tleV0ubW9kdWxlID0gbW9kZU1vZHVsZXNbbW9kZXNba2V5XS5tb2RlXVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1vZGVzXG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwiYWVzLTEyOC1lY2JcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMCxcbiAgICBcIm1vZGVcIjogXCJFQ0JcIixcbiAgICBcInR5cGVcIjogXCJibG9ja1wiXG4gIH0sXG4gIFwiYWVzLTE5Mi1lY2JcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTkyLFxuICAgIFwiaXZcIjogMCxcbiAgICBcIm1vZGVcIjogXCJFQ0JcIixcbiAgICBcInR5cGVcIjogXCJibG9ja1wiXG4gIH0sXG4gIFwiYWVzLTI1Ni1lY2JcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMjU2LFxuICAgIFwiaXZcIjogMCxcbiAgICBcIm1vZGVcIjogXCJFQ0JcIixcbiAgICBcInR5cGVcIjogXCJibG9ja1wiXG4gIH0sXG4gIFwiYWVzLTEyOC1jYmNcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0JDXCIsXG4gICAgXCJ0eXBlXCI6IFwiYmxvY2tcIlxuICB9LFxuICBcImFlcy0xOTItY2JjXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDE5MixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNCQ1wiLFxuICAgIFwidHlwZVwiOiBcImJsb2NrXCJcbiAgfSxcbiAgXCJhZXMtMjU2LWNiY1wiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAyNTYsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDQkNcIixcbiAgICBcInR5cGVcIjogXCJibG9ja1wiXG4gIH0sXG4gIFwiYWVzMTI4XCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDEyOCxcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNCQ1wiLFxuICAgIFwidHlwZVwiOiBcImJsb2NrXCJcbiAgfSxcbiAgXCJhZXMxOTJcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTkyLFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0JDXCIsXG4gICAgXCJ0eXBlXCI6IFwiYmxvY2tcIlxuICB9LFxuICBcImFlczI1NlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAyNTYsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDQkNcIixcbiAgICBcInR5cGVcIjogXCJibG9ja1wiXG4gIH0sXG4gIFwiYWVzLTEyOC1jZmJcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0ZCXCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMTkyLWNmYlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxOTIsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDRkJcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0yNTYtY2ZiXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDI1NixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNGQlwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTEyOC1jZmI4XCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDEyOCxcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNGQjhcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0xOTItY2ZiOFwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxOTIsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDRkI4XCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMjU2LWNmYjhcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMjU2LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0ZCOFwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTEyOC1jZmIxXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDEyOCxcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNGQjFcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0xOTItY2ZiMVwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxOTIsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDRkIxXCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMjU2LWNmYjFcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMjU2LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0ZCMVwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTEyOC1vZmJcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiT0ZCXCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMTkyLW9mYlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxOTIsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJPRkJcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0yNTYtb2ZiXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDI1NixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIk9GQlwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTEyOC1jdHJcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ1RSXCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMTkyLWN0clwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxOTIsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDVFJcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0yNTYtY3RyXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDI1NixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNUUlwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTEyOC1nY21cIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMTIsXG4gICAgXCJtb2RlXCI6IFwiR0NNXCIsXG4gICAgXCJ0eXBlXCI6IFwiYXV0aFwiXG4gIH0sXG4gIFwiYWVzLTE5Mi1nY21cIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTkyLFxuICAgIFwiaXZcIjogMTIsXG4gICAgXCJtb2RlXCI6IFwiR0NNXCIsXG4gICAgXCJ0eXBlXCI6IFwiYXV0aFwiXG4gIH0sXG4gIFwiYWVzLTI1Ni1nY21cIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMjU2LFxuICAgIFwiaXZcIjogMTIsXG4gICAgXCJtb2RlXCI6IFwiR0NNXCIsXG4gICAgXCJ0eXBlXCI6IFwiYXV0aFwiXG4gIH1cbn1cbiIsInZhciB4b3IgPSByZXF1aXJlKCdidWZmZXIteG9yJylcblxuZnVuY3Rpb24gZ2V0QmxvY2sgKHNlbGYpIHtcbiAgc2VsZi5fcHJldiA9IHNlbGYuX2NpcGhlci5lbmNyeXB0QmxvY2soc2VsZi5fcHJldilcbiAgcmV0dXJuIHNlbGYuX3ByZXZcbn1cblxuZXhwb3J0cy5lbmNyeXB0ID0gZnVuY3Rpb24gKHNlbGYsIGNodW5rKSB7XG4gIHdoaWxlIChzZWxmLl9jYWNoZS5sZW5ndGggPCBjaHVuay5sZW5ndGgpIHtcbiAgICBzZWxmLl9jYWNoZSA9IEJ1ZmZlci5jb25jYXQoW3NlbGYuX2NhY2hlLCBnZXRCbG9jayhzZWxmKV0pXG4gIH1cblxuICB2YXIgcGFkID0gc2VsZi5fY2FjaGUuc2xpY2UoMCwgY2h1bmsubGVuZ3RoKVxuICBzZWxmLl9jYWNoZSA9IHNlbGYuX2NhY2hlLnNsaWNlKGNodW5rLmxlbmd0aClcbiAgcmV0dXJuIHhvcihjaHVuaywgcGFkKVxufVxuIiwidmFyIGFlcyA9IHJlcXVpcmUoJy4vYWVzJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxudmFyIFRyYW5zZm9ybSA9IHJlcXVpcmUoJ2NpcGhlci1iYXNlJylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcblxuZnVuY3Rpb24gU3RyZWFtQ2lwaGVyIChtb2RlLCBrZXksIGl2LCBkZWNyeXB0KSB7XG4gIFRyYW5zZm9ybS5jYWxsKHRoaXMpXG5cbiAgdGhpcy5fY2lwaGVyID0gbmV3IGFlcy5BRVMoa2V5KVxuICB0aGlzLl9wcmV2ID0gQnVmZmVyLmZyb20oaXYpXG4gIHRoaXMuX2NhY2hlID0gQnVmZmVyLmFsbG9jVW5zYWZlKDApXG4gIHRoaXMuX3NlY0NhY2hlID0gQnVmZmVyLmFsbG9jVW5zYWZlKDApXG4gIHRoaXMuX2RlY3J5cHQgPSBkZWNyeXB0XG4gIHRoaXMuX21vZGUgPSBtb2RlXG59XG5cbmluaGVyaXRzKFN0cmVhbUNpcGhlciwgVHJhbnNmb3JtKVxuXG5TdHJlYW1DaXBoZXIucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoY2h1bmspIHtcbiAgcmV0dXJuIHRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLCBjaHVuaywgdGhpcy5fZGVjcnlwdClcbn1cblxuU3RyZWFtQ2lwaGVyLnByb3RvdHlwZS5fZmluYWwgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2NpcGhlci5zY3J1YigpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU3RyZWFtQ2lwaGVyXG4iLCJ2YXIgREVTID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1kZXMnKVxudmFyIGFlcyA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktYWVzL2Jyb3dzZXInKVxudmFyIGFlc01vZGVzID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1hZXMvbW9kZXMnKVxudmFyIGRlc01vZGVzID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1kZXMvbW9kZXMnKVxudmFyIGVidGsgPSByZXF1aXJlKCdldnBfYnl0ZXN0b2tleScpXG5cbmZ1bmN0aW9uIGNyZWF0ZUNpcGhlciAoc3VpdGUsIHBhc3N3b3JkKSB7XG4gIHN1aXRlID0gc3VpdGUudG9Mb3dlckNhc2UoKVxuXG4gIHZhciBrZXlMZW4sIGl2TGVuXG4gIGlmIChhZXNNb2Rlc1tzdWl0ZV0pIHtcbiAgICBrZXlMZW4gPSBhZXNNb2Rlc1tzdWl0ZV0ua2V5XG4gICAgaXZMZW4gPSBhZXNNb2Rlc1tzdWl0ZV0uaXZcbiAgfSBlbHNlIGlmIChkZXNNb2Rlc1tzdWl0ZV0pIHtcbiAgICBrZXlMZW4gPSBkZXNNb2Rlc1tzdWl0ZV0ua2V5ICogOFxuICAgIGl2TGVuID0gZGVzTW9kZXNbc3VpdGVdLml2XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW52YWxpZCBzdWl0ZSB0eXBlJylcbiAgfVxuXG4gIHZhciBrZXlzID0gZWJ0ayhwYXNzd29yZCwgZmFsc2UsIGtleUxlbiwgaXZMZW4pXG4gIHJldHVybiBjcmVhdGVDaXBoZXJpdihzdWl0ZSwga2V5cy5rZXksIGtleXMuaXYpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURlY2lwaGVyIChzdWl0ZSwgcGFzc3dvcmQpIHtcbiAgc3VpdGUgPSBzdWl0ZS50b0xvd2VyQ2FzZSgpXG5cbiAgdmFyIGtleUxlbiwgaXZMZW5cbiAgaWYgKGFlc01vZGVzW3N1aXRlXSkge1xuICAgIGtleUxlbiA9IGFlc01vZGVzW3N1aXRlXS5rZXlcbiAgICBpdkxlbiA9IGFlc01vZGVzW3N1aXRlXS5pdlxuICB9IGVsc2UgaWYgKGRlc01vZGVzW3N1aXRlXSkge1xuICAgIGtleUxlbiA9IGRlc01vZGVzW3N1aXRlXS5rZXkgKiA4XG4gICAgaXZMZW4gPSBkZXNNb2Rlc1tzdWl0ZV0uaXZcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIHN1aXRlIHR5cGUnKVxuICB9XG5cbiAgdmFyIGtleXMgPSBlYnRrKHBhc3N3b3JkLCBmYWxzZSwga2V5TGVuLCBpdkxlbilcbiAgcmV0dXJuIGNyZWF0ZURlY2lwaGVyaXYoc3VpdGUsIGtleXMua2V5LCBrZXlzLml2KVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDaXBoZXJpdiAoc3VpdGUsIGtleSwgaXYpIHtcbiAgc3VpdGUgPSBzdWl0ZS50b0xvd2VyQ2FzZSgpXG4gIGlmIChhZXNNb2Rlc1tzdWl0ZV0pIHJldHVybiBhZXMuY3JlYXRlQ2lwaGVyaXYoc3VpdGUsIGtleSwgaXYpXG4gIGlmIChkZXNNb2Rlc1tzdWl0ZV0pIHJldHVybiBuZXcgREVTKHsga2V5OiBrZXksIGl2OiBpdiwgbW9kZTogc3VpdGUgfSlcblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIHN1aXRlIHR5cGUnKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVEZWNpcGhlcml2IChzdWl0ZSwga2V5LCBpdikge1xuICBzdWl0ZSA9IHN1aXRlLnRvTG93ZXJDYXNlKClcbiAgaWYgKGFlc01vZGVzW3N1aXRlXSkgcmV0dXJuIGFlcy5jcmVhdGVEZWNpcGhlcml2KHN1aXRlLCBrZXksIGl2KVxuICBpZiAoZGVzTW9kZXNbc3VpdGVdKSByZXR1cm4gbmV3IERFUyh7IGtleToga2V5LCBpdjogaXYsIG1vZGU6IHN1aXRlLCBkZWNyeXB0OiB0cnVlIH0pXG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW52YWxpZCBzdWl0ZSB0eXBlJylcbn1cblxuZnVuY3Rpb24gZ2V0Q2lwaGVycyAoKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhkZXNNb2RlcykuY29uY2F0KGFlcy5nZXRDaXBoZXJzKCkpXG59XG5cbmV4cG9ydHMuY3JlYXRlQ2lwaGVyID0gZXhwb3J0cy5DaXBoZXIgPSBjcmVhdGVDaXBoZXJcbmV4cG9ydHMuY3JlYXRlQ2lwaGVyaXYgPSBleHBvcnRzLkNpcGhlcml2ID0gY3JlYXRlQ2lwaGVyaXZcbmV4cG9ydHMuY3JlYXRlRGVjaXBoZXIgPSBleHBvcnRzLkRlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJcbmV4cG9ydHMuY3JlYXRlRGVjaXBoZXJpdiA9IGV4cG9ydHMuRGVjaXBoZXJpdiA9IGNyZWF0ZURlY2lwaGVyaXZcbmV4cG9ydHMubGlzdENpcGhlcnMgPSBleHBvcnRzLmdldENpcGhlcnMgPSBnZXRDaXBoZXJzXG4iLCJ2YXIgQ2lwaGVyQmFzZSA9IHJlcXVpcmUoJ2NpcGhlci1iYXNlJylcbnZhciBkZXMgPSByZXF1aXJlKCdkZXMuanMnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxuXG52YXIgbW9kZXMgPSB7XG4gICdkZXMtZWRlMy1jYmMnOiBkZXMuQ0JDLmluc3RhbnRpYXRlKGRlcy5FREUpLFxuICAnZGVzLWVkZTMnOiBkZXMuRURFLFxuICAnZGVzLWVkZS1jYmMnOiBkZXMuQ0JDLmluc3RhbnRpYXRlKGRlcy5FREUpLFxuICAnZGVzLWVkZSc6IGRlcy5FREUsXG4gICdkZXMtY2JjJzogZGVzLkNCQy5pbnN0YW50aWF0ZShkZXMuREVTKSxcbiAgJ2Rlcy1lY2InOiBkZXMuREVTXG59XG5tb2Rlcy5kZXMgPSBtb2Rlc1snZGVzLWNiYyddXG5tb2Rlcy5kZXMzID0gbW9kZXNbJ2Rlcy1lZGUzLWNiYyddXG5tb2R1bGUuZXhwb3J0cyA9IERFU1xuaW5oZXJpdHMoREVTLCBDaXBoZXJCYXNlKVxuZnVuY3Rpb24gREVTIChvcHRzKSB7XG4gIENpcGhlckJhc2UuY2FsbCh0aGlzKVxuICB2YXIgbW9kZU5hbWUgPSBvcHRzLm1vZGUudG9Mb3dlckNhc2UoKVxuICB2YXIgbW9kZSA9IG1vZGVzW21vZGVOYW1lXVxuICB2YXIgdHlwZVxuICBpZiAob3B0cy5kZWNyeXB0KSB7XG4gICAgdHlwZSA9ICdkZWNyeXB0J1xuICB9IGVsc2Uge1xuICAgIHR5cGUgPSAnZW5jcnlwdCdcbiAgfVxuICB2YXIga2V5ID0gb3B0cy5rZXlcbiAgaWYgKG1vZGVOYW1lID09PSAnZGVzLWVkZScgfHwgbW9kZU5hbWUgPT09ICdkZXMtZWRlLWNiYycpIHtcbiAgICBrZXkgPSBCdWZmZXIuY29uY2F0KFtrZXksIGtleS5zbGljZSgwLCA4KV0pXG4gIH1cbiAgdmFyIGl2ID0gb3B0cy5pdlxuICB0aGlzLl9kZXMgPSBtb2RlLmNyZWF0ZSh7XG4gICAga2V5OiBrZXksXG4gICAgaXY6IGl2LFxuICAgIHR5cGU6IHR5cGVcbiAgfSlcbn1cbkRFUy5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHJldHVybiBuZXcgQnVmZmVyKHRoaXMuX2Rlcy51cGRhdGUoZGF0YSkpXG59XG5ERVMucHJvdG90eXBlLl9maW5hbCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIG5ldyBCdWZmZXIodGhpcy5fZGVzLmZpbmFsKCkpXG59XG4iLCJleHBvcnRzWydkZXMtZWNiJ10gPSB7XG4gIGtleTogOCxcbiAgaXY6IDBcbn1cbmV4cG9ydHNbJ2Rlcy1jYmMnXSA9IGV4cG9ydHMuZGVzID0ge1xuICBrZXk6IDgsXG4gIGl2OiA4XG59XG5leHBvcnRzWydkZXMtZWRlMy1jYmMnXSA9IGV4cG9ydHMuZGVzMyA9IHtcbiAga2V5OiAyNCxcbiAgaXY6IDhcbn1cbmV4cG9ydHNbJ2Rlcy1lZGUzJ10gPSB7XG4gIGtleTogMjQsXG4gIGl2OiAwXG59XG5leHBvcnRzWydkZXMtZWRlLWNiYyddID0ge1xuICBrZXk6IDE2LFxuICBpdjogOFxufVxuZXhwb3J0c1snZGVzLWVkZSddID0ge1xuICBrZXk6IDE2LFxuICBpdjogMFxufVxuIiwidmFyIGJuID0gcmVxdWlyZSgnYm4uanMnKTtcbnZhciByYW5kb21CeXRlcyA9IHJlcXVpcmUoJ3JhbmRvbWJ5dGVzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGNydDtcbmZ1bmN0aW9uIGJsaW5kKHByaXYpIHtcbiAgdmFyIHIgPSBnZXRyKHByaXYpO1xuICB2YXIgYmxpbmRlciA9IHIudG9SZWQoYm4ubW9udChwcml2Lm1vZHVsdXMpKVxuICAucmVkUG93KG5ldyBibihwcml2LnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpO1xuICByZXR1cm4ge1xuICAgIGJsaW5kZXI6IGJsaW5kZXIsXG4gICAgdW5ibGluZGVyOnIuaW52bShwcml2Lm1vZHVsdXMpXG4gIH07XG59XG5mdW5jdGlvbiBjcnQobXNnLCBwcml2KSB7XG4gIHZhciBibGluZHMgPSBibGluZChwcml2KTtcbiAgdmFyIGxlbiA9IHByaXYubW9kdWx1cy5ieXRlTGVuZ3RoKCk7XG4gIHZhciBtb2QgPSBibi5tb250KHByaXYubW9kdWx1cyk7XG4gIHZhciBibGluZGVkID0gbmV3IGJuKG1zZykubXVsKGJsaW5kcy5ibGluZGVyKS51bW9kKHByaXYubW9kdWx1cyk7XG4gIHZhciBjMSA9IGJsaW5kZWQudG9SZWQoYm4ubW9udChwcml2LnByaW1lMSkpO1xuICB2YXIgYzIgPSBibGluZGVkLnRvUmVkKGJuLm1vbnQocHJpdi5wcmltZTIpKTtcbiAgdmFyIHFpbnYgPSBwcml2LmNvZWZmaWNpZW50O1xuICB2YXIgcCA9IHByaXYucHJpbWUxO1xuICB2YXIgcSA9IHByaXYucHJpbWUyO1xuICB2YXIgbTEgPSBjMS5yZWRQb3cocHJpdi5leHBvbmVudDEpO1xuICB2YXIgbTIgPSBjMi5yZWRQb3cocHJpdi5leHBvbmVudDIpO1xuICBtMSA9IG0xLmZyb21SZWQoKTtcbiAgbTIgPSBtMi5mcm9tUmVkKCk7XG4gIHZhciBoID0gbTEuaXN1YihtMikuaW11bChxaW52KS51bW9kKHApO1xuICBoLmltdWwocSk7XG4gIG0yLmlhZGQoaCk7XG4gIHJldHVybiBuZXcgQnVmZmVyKG0yLmltdWwoYmxpbmRzLnVuYmxpbmRlcikudW1vZChwcml2Lm1vZHVsdXMpLnRvQXJyYXkoZmFsc2UsIGxlbikpO1xufVxuY3J0LmdldHIgPSBnZXRyO1xuZnVuY3Rpb24gZ2V0cihwcml2KSB7XG4gIHZhciBsZW4gPSBwcml2Lm1vZHVsdXMuYnl0ZUxlbmd0aCgpO1xuICB2YXIgciA9IG5ldyBibihyYW5kb21CeXRlcyhsZW4pKTtcbiAgd2hpbGUgKHIuY21wKHByaXYubW9kdWx1cykgPj0gIDAgfHwgIXIudW1vZChwcml2LnByaW1lMSkgfHwgIXIudW1vZChwcml2LnByaW1lMikpIHtcbiAgICByID0gbmV3IGJuKHJhbmRvbUJ5dGVzKGxlbikpO1xuICB9XG4gIHJldHVybiByO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Jyb3dzZXIvYWxnb3JpdGhtcy5qc29uJylcbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJzaGEyMjRXaXRoUlNBRW5jcnlwdGlvblwiOiB7XG4gICAgXCJzaWduXCI6IFwicnNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMjI0XCIsXG4gICAgXCJpZFwiOiBcIjMwMmQzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwNDA1MDAwNDFjXCJcbiAgfSxcbiAgXCJSU0EtU0hBMjI0XCI6IHtcbiAgICBcInNpZ25cIjogXCJlY2RzYS9yc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEyMjRcIixcbiAgICBcImlkXCI6IFwiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWNcIlxuICB9LFxuICBcInNoYTI1NldpdGhSU0FFbmNyeXB0aW9uXCI6IHtcbiAgICBcInNpZ25cIjogXCJyc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEyNTZcIixcbiAgICBcImlkXCI6IFwiMzAzMTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDA0MjBcIlxuICB9LFxuICBcIlJTQS1TSEEyNTZcIjoge1xuICAgIFwic2lnblwiOiBcImVjZHNhL3JzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTI1NlwiLFxuICAgIFwiaWRcIjogXCIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMFwiXG4gIH0sXG4gIFwic2hhMzg0V2l0aFJTQUVuY3J5cHRpb25cIjoge1xuICAgIFwic2lnblwiOiBcInJzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTM4NFwiLFxuICAgIFwiaWRcIjogXCIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMFwiXG4gIH0sXG4gIFwiUlNBLVNIQTM4NFwiOiB7XG4gICAgXCJzaWduXCI6IFwiZWNkc2EvcnNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMzg0XCIsXG4gICAgXCJpZFwiOiBcIjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwXCJcbiAgfSxcbiAgXCJzaGE1MTJXaXRoUlNBRW5jcnlwdGlvblwiOiB7XG4gICAgXCJzaWduXCI6IFwicnNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhNTEyXCIsXG4gICAgXCJpZFwiOiBcIjMwNTEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMzA1MDAwNDQwXCJcbiAgfSxcbiAgXCJSU0EtU0hBNTEyXCI6IHtcbiAgICBcInNpZ25cIjogXCJlY2RzYS9yc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGE1MTJcIixcbiAgICBcImlkXCI6IFwiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDBcIlxuICB9LFxuICBcIlJTQS1TSEExXCI6IHtcbiAgICBcInNpZ25cIjogXCJyc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGExXCIsXG4gICAgXCJpZFwiOiBcIjMwMjEzMDA5MDYwNTJiMGUwMzAyMWEwNTAwMDQxNFwiXG4gIH0sXG4gIFwiZWNkc2Etd2l0aC1TSEExXCI6IHtcbiAgICBcInNpZ25cIjogXCJlY2RzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTFcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJzaGEyNTZcIjoge1xuICAgIFwic2lnblwiOiBcImVjZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMjU2XCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwic2hhMjI0XCI6IHtcbiAgICBcInNpZ25cIjogXCJlY2RzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTIyNFwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcInNoYTM4NFwiOiB7XG4gICAgXCJzaWduXCI6IFwiZWNkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEzODRcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJzaGE1MTJcIjoge1xuICAgIFwic2lnblwiOiBcImVjZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhNTEyXCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwiRFNBLVNIQVwiOiB7XG4gICAgXCJzaWduXCI6IFwiZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMVwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcIkRTQS1TSEExXCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGExXCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwiRFNBXCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGExXCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwiRFNBLVdJVEgtU0hBMjI0XCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEyMjRcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0EtU0hBMjI0XCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEyMjRcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0EtV0lUSC1TSEEyNTZcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTI1NlwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcIkRTQS1TSEEyNTZcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTI1NlwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcIkRTQS1XSVRILVNIQTM4NFwiOiB7XG4gICAgXCJzaWduXCI6IFwiZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMzg0XCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwiRFNBLVNIQTM4NFwiOiB7XG4gICAgXCJzaWduXCI6IFwiZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMzg0XCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwiRFNBLVdJVEgtU0hBNTEyXCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGE1MTJcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0EtU0hBNTEyXCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGE1MTJcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0EtUklQRU1EMTYwXCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJybWQxNjBcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJyaXBlbWQxNjBXaXRoUlNBXCI6IHtcbiAgICBcInNpZ25cIjogXCJyc2FcIixcbiAgICBcImhhc2hcIjogXCJybWQxNjBcIixcbiAgICBcImlkXCI6IFwiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0XCJcbiAgfSxcbiAgXCJSU0EtUklQRU1EMTYwXCI6IHtcbiAgICBcInNpZ25cIjogXCJyc2FcIixcbiAgICBcImhhc2hcIjogXCJybWQxNjBcIixcbiAgICBcImlkXCI6IFwiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0XCJcbiAgfSxcbiAgXCJtZDVXaXRoUlNBRW5jcnlwdGlvblwiOiB7XG4gICAgXCJzaWduXCI6IFwicnNhXCIsXG4gICAgXCJoYXNoXCI6IFwibWQ1XCIsXG4gICAgXCJpZFwiOiBcIjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMFwiXG4gIH0sXG4gIFwiUlNBLU1ENVwiOiB7XG4gICAgXCJzaWduXCI6IFwicnNhXCIsXG4gICAgXCJoYXNoXCI6IFwibWQ1XCIsXG4gICAgXCJpZFwiOiBcIjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMFwiXG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCIxLjMuMTMyLjAuMTBcIjogXCJzZWNwMjU2azFcIixcbiAgXCIxLjMuMTMyLjAuMzNcIjogXCJwMjI0XCIsXG4gIFwiMS4yLjg0MC4xMDA0NS4zLjEuMVwiOiBcInAxOTJcIixcbiAgXCIxLjIuODQwLjEwMDQ1LjMuMS43XCI6IFwicDI1NlwiLFxuICBcIjEuMy4xMzIuMC4zNFwiOiBcInAzODRcIixcbiAgXCIxLjMuMTMyLjAuMzVcIjogXCJwNTIxXCJcbn1cbiIsInZhciBjcmVhdGVIYXNoID0gcmVxdWlyZSgnY3JlYXRlLWhhc2gnKVxudmFyIHN0cmVhbSA9IHJlcXVpcmUoJ3N0cmVhbScpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgc2lnbiA9IHJlcXVpcmUoJy4vc2lnbicpXG52YXIgdmVyaWZ5ID0gcmVxdWlyZSgnLi92ZXJpZnknKVxuXG52YXIgYWxnb3JpdGhtcyA9IHJlcXVpcmUoJy4vYWxnb3JpdGhtcy5qc29uJylcbk9iamVjdC5rZXlzKGFsZ29yaXRobXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICBhbGdvcml0aG1zW2tleV0uaWQgPSBuZXcgQnVmZmVyKGFsZ29yaXRobXNba2V5XS5pZCwgJ2hleCcpXG4gIGFsZ29yaXRobXNba2V5LnRvTG93ZXJDYXNlKCldID0gYWxnb3JpdGhtc1trZXldXG59KVxuXG5mdW5jdGlvbiBTaWduIChhbGdvcml0aG0pIHtcbiAgc3RyZWFtLldyaXRhYmxlLmNhbGwodGhpcylcblxuICB2YXIgZGF0YSA9IGFsZ29yaXRobXNbYWxnb3JpdGhtXVxuICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignVW5rbm93biBtZXNzYWdlIGRpZ2VzdCcpXG5cbiAgdGhpcy5faGFzaFR5cGUgPSBkYXRhLmhhc2hcbiAgdGhpcy5faGFzaCA9IGNyZWF0ZUhhc2goZGF0YS5oYXNoKVxuICB0aGlzLl90YWcgPSBkYXRhLmlkXG4gIHRoaXMuX3NpZ25UeXBlID0gZGF0YS5zaWduXG59XG5pbmhlcml0cyhTaWduLCBzdHJlYW0uV3JpdGFibGUpXG5cblNpZ24ucHJvdG90eXBlLl93cml0ZSA9IGZ1bmN0aW9uIF93cml0ZSAoZGF0YSwgXywgZG9uZSkge1xuICB0aGlzLl9oYXNoLnVwZGF0ZShkYXRhKVxuICBkb25lKClcbn1cblxuU2lnbi5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlIChkYXRhLCBlbmMpIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgZGF0YSA9IG5ldyBCdWZmZXIoZGF0YSwgZW5jKVxuXG4gIHRoaXMuX2hhc2gudXBkYXRlKGRhdGEpXG4gIHJldHVybiB0aGlzXG59XG5cblNpZ24ucHJvdG90eXBlLnNpZ24gPSBmdW5jdGlvbiBzaWduTWV0aG9kIChrZXksIGVuYykge1xuICB0aGlzLmVuZCgpXG4gIHZhciBoYXNoID0gdGhpcy5faGFzaC5kaWdlc3QoKVxuICB2YXIgc2lnID0gc2lnbihoYXNoLCBrZXksIHRoaXMuX2hhc2hUeXBlLCB0aGlzLl9zaWduVHlwZSwgdGhpcy5fdGFnKVxuXG4gIHJldHVybiBlbmMgPyBzaWcudG9TdHJpbmcoZW5jKSA6IHNpZ1xufVxuXG5mdW5jdGlvbiBWZXJpZnkgKGFsZ29yaXRobSkge1xuICBzdHJlYW0uV3JpdGFibGUuY2FsbCh0aGlzKVxuXG4gIHZhciBkYXRhID0gYWxnb3JpdGhtc1thbGdvcml0aG1dXG4gIGlmICghZGF0YSkgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIG1lc3NhZ2UgZGlnZXN0JylcblxuICB0aGlzLl9oYXNoID0gY3JlYXRlSGFzaChkYXRhLmhhc2gpXG4gIHRoaXMuX3RhZyA9IGRhdGEuaWRcbiAgdGhpcy5fc2lnblR5cGUgPSBkYXRhLnNpZ25cbn1cbmluaGVyaXRzKFZlcmlmeSwgc3RyZWFtLldyaXRhYmxlKVxuXG5WZXJpZnkucHJvdG90eXBlLl93cml0ZSA9IGZ1bmN0aW9uIF93cml0ZSAoZGF0YSwgXywgZG9uZSkge1xuICB0aGlzLl9oYXNoLnVwZGF0ZShkYXRhKVxuICBkb25lKClcbn1cblxuVmVyaWZ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiB1cGRhdGUgKGRhdGEsIGVuYykge1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSBkYXRhID0gbmV3IEJ1ZmZlcihkYXRhLCBlbmMpXG5cbiAgdGhpcy5faGFzaC51cGRhdGUoZGF0YSlcbiAgcmV0dXJuIHRoaXNcbn1cblxuVmVyaWZ5LnByb3RvdHlwZS52ZXJpZnkgPSBmdW5jdGlvbiB2ZXJpZnlNZXRob2QgKGtleSwgc2lnLCBlbmMpIHtcbiAgaWYgKHR5cGVvZiBzaWcgPT09ICdzdHJpbmcnKSBzaWcgPSBuZXcgQnVmZmVyKHNpZywgZW5jKVxuXG4gIHRoaXMuZW5kKClcbiAgdmFyIGhhc2ggPSB0aGlzLl9oYXNoLmRpZ2VzdCgpXG4gIHJldHVybiB2ZXJpZnkoc2lnLCBoYXNoLCBrZXksIHRoaXMuX3NpZ25UeXBlLCB0aGlzLl90YWcpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNpZ24gKGFsZ29yaXRobSkge1xuICByZXR1cm4gbmV3IFNpZ24oYWxnb3JpdGhtKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVWZXJpZnkgKGFsZ29yaXRobSkge1xuICByZXR1cm4gbmV3IFZlcmlmeShhbGdvcml0aG0pXG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBTaWduOiBjcmVhdGVTaWduLFxuICBWZXJpZnk6IGNyZWF0ZVZlcmlmeSxcbiAgY3JlYXRlU2lnbjogY3JlYXRlU2lnbixcbiAgY3JlYXRlVmVyaWZ5OiBjcmVhdGVWZXJpZnlcbn1cbiIsIi8vIG11Y2ggb2YgdGhpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vaW5kdXRueS9zZWxmLXNpZ25lZC9ibG9iL2doLXBhZ2VzL2xpYi9yc2EuanNcbnZhciBjcmVhdGVIbWFjID0gcmVxdWlyZSgnY3JlYXRlLWhtYWMnKVxudmFyIGNydCA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktcnNhJylcbnZhciBFQyA9IHJlcXVpcmUoJ2VsbGlwdGljJykuZWNcbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJylcbnZhciBwYXJzZUtleXMgPSByZXF1aXJlKCdwYXJzZS1hc24xJylcbnZhciBjdXJ2ZXMgPSByZXF1aXJlKCcuL2N1cnZlcy5qc29uJylcblxuZnVuY3Rpb24gc2lnbiAoaGFzaCwga2V5LCBoYXNoVHlwZSwgc2lnblR5cGUsIHRhZykge1xuICB2YXIgcHJpdiA9IHBhcnNlS2V5cyhrZXkpXG4gIGlmIChwcml2LmN1cnZlKSB7XG4gICAgLy8gcnNhIGtleXMgY2FuIGJlIGludGVycHJldGVkIGFzIGVjZHNhIG9uZXMgaW4gb3BlbnNzbFxuICAgIGlmIChzaWduVHlwZSAhPT0gJ2VjZHNhJyAmJiBzaWduVHlwZSAhPT0gJ2VjZHNhL3JzYScpIHRocm93IG5ldyBFcnJvcignd3JvbmcgcHJpdmF0ZSBrZXkgdHlwZScpXG4gICAgcmV0dXJuIGVjU2lnbihoYXNoLCBwcml2KVxuICB9IGVsc2UgaWYgKHByaXYudHlwZSA9PT0gJ2RzYScpIHtcbiAgICBpZiAoc2lnblR5cGUgIT09ICdkc2EnKSB0aHJvdyBuZXcgRXJyb3IoJ3dyb25nIHByaXZhdGUga2V5IHR5cGUnKVxuICAgIHJldHVybiBkc2FTaWduKGhhc2gsIHByaXYsIGhhc2hUeXBlKVxuICB9IGVsc2Uge1xuICAgIGlmIChzaWduVHlwZSAhPT0gJ3JzYScgJiYgc2lnblR5cGUgIT09ICdlY2RzYS9yc2EnKSB0aHJvdyBuZXcgRXJyb3IoJ3dyb25nIHByaXZhdGUga2V5IHR5cGUnKVxuICB9XG4gIGhhc2ggPSBCdWZmZXIuY29uY2F0KFt0YWcsIGhhc2hdKVxuICB2YXIgbGVuID0gcHJpdi5tb2R1bHVzLmJ5dGVMZW5ndGgoKVxuICB2YXIgcGFkID0gWyAwLCAxIF1cbiAgd2hpbGUgKGhhc2gubGVuZ3RoICsgcGFkLmxlbmd0aCArIDEgPCBsZW4pIHBhZC5wdXNoKDB4ZmYpXG4gIHBhZC5wdXNoKDB4MDApXG4gIHZhciBpID0gLTFcbiAgd2hpbGUgKCsraSA8IGhhc2gubGVuZ3RoKSBwYWQucHVzaChoYXNoW2ldKVxuXG4gIHZhciBvdXQgPSBjcnQocGFkLCBwcml2KVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIGVjU2lnbiAoaGFzaCwgcHJpdikge1xuICB2YXIgY3VydmVJZCA9IGN1cnZlc1twcml2LmN1cnZlLmpvaW4oJy4nKV1cbiAgaWYgKCFjdXJ2ZUlkKSB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gY3VydmUgJyArIHByaXYuY3VydmUuam9pbignLicpKVxuXG4gIHZhciBjdXJ2ZSA9IG5ldyBFQyhjdXJ2ZUlkKVxuICB2YXIga2V5ID0gY3VydmUua2V5RnJvbVByaXZhdGUocHJpdi5wcml2YXRlS2V5KVxuICB2YXIgb3V0ID0ga2V5LnNpZ24oaGFzaClcblxuICByZXR1cm4gbmV3IEJ1ZmZlcihvdXQudG9ERVIoKSlcbn1cblxuZnVuY3Rpb24gZHNhU2lnbiAoaGFzaCwgcHJpdiwgYWxnbykge1xuICB2YXIgeCA9IHByaXYucGFyYW1zLnByaXZfa2V5XG4gIHZhciBwID0gcHJpdi5wYXJhbXMucFxuICB2YXIgcSA9IHByaXYucGFyYW1zLnFcbiAgdmFyIGcgPSBwcml2LnBhcmFtcy5nXG4gIHZhciByID0gbmV3IEJOKDApXG4gIHZhciBrXG4gIHZhciBIID0gYml0czJpbnQoaGFzaCwgcSkubW9kKHEpXG4gIHZhciBzID0gZmFsc2VcbiAgdmFyIGt2ID0gZ2V0S2V5KHgsIHEsIGhhc2gsIGFsZ28pXG4gIHdoaWxlIChzID09PSBmYWxzZSkge1xuICAgIGsgPSBtYWtlS2V5KHEsIGt2LCBhbGdvKVxuICAgIHIgPSBtYWtlUihnLCBrLCBwLCBxKVxuICAgIHMgPSBrLmludm0ocSkuaW11bChILmFkZCh4Lm11bChyKSkpLm1vZChxKVxuICAgIGlmIChzLmNtcG4oMCkgPT09IDApIHtcbiAgICAgIHMgPSBmYWxzZVxuICAgICAgciA9IG5ldyBCTigwKVxuICAgIH1cbiAgfVxuICByZXR1cm4gdG9ERVIociwgcylcbn1cblxuZnVuY3Rpb24gdG9ERVIgKHIsIHMpIHtcbiAgciA9IHIudG9BcnJheSgpXG4gIHMgPSBzLnRvQXJyYXkoKVxuXG4gIC8vIFBhZCB2YWx1ZXNcbiAgaWYgKHJbMF0gJiAweDgwKSByID0gWyAwIF0uY29uY2F0KHIpXG4gIGlmIChzWzBdICYgMHg4MCkgcyA9IFsgMCBdLmNvbmNhdChzKVxuXG4gIHZhciB0b3RhbCA9IHIubGVuZ3RoICsgcy5sZW5ndGggKyA0XG4gIHZhciByZXMgPSBbIDB4MzAsIHRvdGFsLCAweDAyLCByLmxlbmd0aCBdXG4gIHJlcyA9IHJlcy5jb25jYXQociwgWyAweDAyLCBzLmxlbmd0aCBdLCBzKVxuICByZXR1cm4gbmV3IEJ1ZmZlcihyZXMpXG59XG5cbmZ1bmN0aW9uIGdldEtleSAoeCwgcSwgaGFzaCwgYWxnbykge1xuICB4ID0gbmV3IEJ1ZmZlcih4LnRvQXJyYXkoKSlcbiAgaWYgKHgubGVuZ3RoIDwgcS5ieXRlTGVuZ3RoKCkpIHtcbiAgICB2YXIgemVyb3MgPSBuZXcgQnVmZmVyKHEuYnl0ZUxlbmd0aCgpIC0geC5sZW5ndGgpXG4gICAgemVyb3MuZmlsbCgwKVxuICAgIHggPSBCdWZmZXIuY29uY2F0KFsgemVyb3MsIHggXSlcbiAgfVxuICB2YXIgaGxlbiA9IGhhc2gubGVuZ3RoXG4gIHZhciBoYml0cyA9IGJpdHMyb2N0ZXRzKGhhc2gsIHEpXG4gIHZhciB2ID0gbmV3IEJ1ZmZlcihobGVuKVxuICB2LmZpbGwoMSlcbiAgdmFyIGsgPSBuZXcgQnVmZmVyKGhsZW4pXG4gIGsuZmlsbCgwKVxuICBrID0gY3JlYXRlSG1hYyhhbGdvLCBrKS51cGRhdGUodikudXBkYXRlKG5ldyBCdWZmZXIoWyAwIF0pKS51cGRhdGUoeCkudXBkYXRlKGhiaXRzKS5kaWdlc3QoKVxuICB2ID0gY3JlYXRlSG1hYyhhbGdvLCBrKS51cGRhdGUodikuZGlnZXN0KClcbiAgayA9IGNyZWF0ZUhtYWMoYWxnbywgaykudXBkYXRlKHYpLnVwZGF0ZShuZXcgQnVmZmVyKFsgMSBdKSkudXBkYXRlKHgpLnVwZGF0ZShoYml0cykuZGlnZXN0KClcbiAgdiA9IGNyZWF0ZUhtYWMoYWxnbywgaykudXBkYXRlKHYpLmRpZ2VzdCgpXG4gIHJldHVybiB7IGs6IGssIHY6IHYgfVxufVxuXG5mdW5jdGlvbiBiaXRzMmludCAob2JpdHMsIHEpIHtcbiAgdmFyIGJpdHMgPSBuZXcgQk4ob2JpdHMpXG4gIHZhciBzaGlmdCA9IChvYml0cy5sZW5ndGggPDwgMykgLSBxLmJpdExlbmd0aCgpXG4gIGlmIChzaGlmdCA+IDApIGJpdHMuaXNocm4oc2hpZnQpXG4gIHJldHVybiBiaXRzXG59XG5cbmZ1bmN0aW9uIGJpdHMyb2N0ZXRzIChiaXRzLCBxKSB7XG4gIGJpdHMgPSBiaXRzMmludChiaXRzLCBxKVxuICBiaXRzID0gYml0cy5tb2QocSlcbiAgdmFyIG91dCA9IG5ldyBCdWZmZXIoYml0cy50b0FycmF5KCkpXG4gIGlmIChvdXQubGVuZ3RoIDwgcS5ieXRlTGVuZ3RoKCkpIHtcbiAgICB2YXIgemVyb3MgPSBuZXcgQnVmZmVyKHEuYnl0ZUxlbmd0aCgpIC0gb3V0Lmxlbmd0aClcbiAgICB6ZXJvcy5maWxsKDApXG4gICAgb3V0ID0gQnVmZmVyLmNvbmNhdChbIHplcm9zLCBvdXQgXSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIG1ha2VLZXkgKHEsIGt2LCBhbGdvKSB7XG4gIHZhciB0XG4gIHZhciBrXG5cbiAgZG8ge1xuICAgIHQgPSBuZXcgQnVmZmVyKDApXG5cbiAgICB3aGlsZSAodC5sZW5ndGggKiA4IDwgcS5iaXRMZW5ndGgoKSkge1xuICAgICAga3YudiA9IGNyZWF0ZUhtYWMoYWxnbywga3YuaykudXBkYXRlKGt2LnYpLmRpZ2VzdCgpXG4gICAgICB0ID0gQnVmZmVyLmNvbmNhdChbIHQsIGt2LnYgXSlcbiAgICB9XG5cbiAgICBrID0gYml0czJpbnQodCwgcSlcbiAgICBrdi5rID0gY3JlYXRlSG1hYyhhbGdvLCBrdi5rKS51cGRhdGUoa3YudikudXBkYXRlKG5ldyBCdWZmZXIoWyAwIF0pKS5kaWdlc3QoKVxuICAgIGt2LnYgPSBjcmVhdGVIbWFjKGFsZ28sIGt2LmspLnVwZGF0ZShrdi52KS5kaWdlc3QoKVxuICB9IHdoaWxlIChrLmNtcChxKSAhPT0gLTEpXG5cbiAgcmV0dXJuIGtcbn1cblxuZnVuY3Rpb24gbWFrZVIgKGcsIGssIHAsIHEpIHtcbiAgcmV0dXJuIGcudG9SZWQoQk4ubW9udChwKSkucmVkUG93KGspLmZyb21SZWQoKS5tb2QocSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaWduXG5tb2R1bGUuZXhwb3J0cy5nZXRLZXkgPSBnZXRLZXlcbm1vZHVsZS5leHBvcnRzLm1ha2VLZXkgPSBtYWtlS2V5XG4iLCIvLyBtdWNoIG9mIHRoaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2luZHV0bnkvc2VsZi1zaWduZWQvYmxvYi9naC1wYWdlcy9saWIvcnNhLmpzXG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpXG52YXIgRUMgPSByZXF1aXJlKCdlbGxpcHRpYycpLmVjXG52YXIgcGFyc2VLZXlzID0gcmVxdWlyZSgncGFyc2UtYXNuMScpXG52YXIgY3VydmVzID0gcmVxdWlyZSgnLi9jdXJ2ZXMuanNvbicpXG5cbmZ1bmN0aW9uIHZlcmlmeSAoc2lnLCBoYXNoLCBrZXksIHNpZ25UeXBlLCB0YWcpIHtcbiAgdmFyIHB1YiA9IHBhcnNlS2V5cyhrZXkpXG4gIGlmIChwdWIudHlwZSA9PT0gJ2VjJykge1xuICAgIC8vIHJzYSBrZXlzIGNhbiBiZSBpbnRlcnByZXRlZCBhcyBlY2RzYSBvbmVzIGluIG9wZW5zc2xcbiAgICBpZiAoc2lnblR5cGUgIT09ICdlY2RzYScgJiYgc2lnblR5cGUgIT09ICdlY2RzYS9yc2EnKSB0aHJvdyBuZXcgRXJyb3IoJ3dyb25nIHB1YmxpYyBrZXkgdHlwZScpXG4gICAgcmV0dXJuIGVjVmVyaWZ5KHNpZywgaGFzaCwgcHViKVxuICB9IGVsc2UgaWYgKHB1Yi50eXBlID09PSAnZHNhJykge1xuICAgIGlmIChzaWduVHlwZSAhPT0gJ2RzYScpIHRocm93IG5ldyBFcnJvcignd3JvbmcgcHVibGljIGtleSB0eXBlJylcbiAgICByZXR1cm4gZHNhVmVyaWZ5KHNpZywgaGFzaCwgcHViKVxuICB9IGVsc2Uge1xuICAgIGlmIChzaWduVHlwZSAhPT0gJ3JzYScgJiYgc2lnblR5cGUgIT09ICdlY2RzYS9yc2EnKSB0aHJvdyBuZXcgRXJyb3IoJ3dyb25nIHB1YmxpYyBrZXkgdHlwZScpXG4gIH1cbiAgaGFzaCA9IEJ1ZmZlci5jb25jYXQoW3RhZywgaGFzaF0pXG4gIHZhciBsZW4gPSBwdWIubW9kdWx1cy5ieXRlTGVuZ3RoKClcbiAgdmFyIHBhZCA9IFsgMSBdXG4gIHZhciBwYWROdW0gPSAwXG4gIHdoaWxlIChoYXNoLmxlbmd0aCArIHBhZC5sZW5ndGggKyAyIDwgbGVuKSB7XG4gICAgcGFkLnB1c2goMHhmZilcbiAgICBwYWROdW0rK1xuICB9XG4gIHBhZC5wdXNoKDB4MDApXG4gIHZhciBpID0gLTFcbiAgd2hpbGUgKCsraSA8IGhhc2gubGVuZ3RoKSB7XG4gICAgcGFkLnB1c2goaGFzaFtpXSlcbiAgfVxuICBwYWQgPSBuZXcgQnVmZmVyKHBhZClcbiAgdmFyIHJlZCA9IEJOLm1vbnQocHViLm1vZHVsdXMpXG4gIHNpZyA9IG5ldyBCTihzaWcpLnRvUmVkKHJlZClcblxuICBzaWcgPSBzaWcucmVkUG93KG5ldyBCTihwdWIucHVibGljRXhwb25lbnQpKVxuICBzaWcgPSBuZXcgQnVmZmVyKHNpZy5mcm9tUmVkKCkudG9BcnJheSgpKVxuICB2YXIgb3V0ID0gcGFkTnVtIDwgOCA/IDEgOiAwXG4gIGxlbiA9IE1hdGgubWluKHNpZy5sZW5ndGgsIHBhZC5sZW5ndGgpXG4gIGlmIChzaWcubGVuZ3RoICE9PSBwYWQubGVuZ3RoKSBvdXQgPSAxXG5cbiAgaSA9IC0xXG4gIHdoaWxlICgrK2kgPCBsZW4pIG91dCB8PSBzaWdbaV0gXiBwYWRbaV1cbiAgcmV0dXJuIG91dCA9PT0gMFxufVxuXG5mdW5jdGlvbiBlY1ZlcmlmeSAoc2lnLCBoYXNoLCBwdWIpIHtcbiAgdmFyIGN1cnZlSWQgPSBjdXJ2ZXNbcHViLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oJy4nKV1cbiAgaWYgKCFjdXJ2ZUlkKSB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gY3VydmUgJyArIHB1Yi5kYXRhLmFsZ29yaXRobS5jdXJ2ZS5qb2luKCcuJykpXG5cbiAgdmFyIGN1cnZlID0gbmV3IEVDKGN1cnZlSWQpXG4gIHZhciBwdWJrZXkgPSBwdWIuZGF0YS5zdWJqZWN0UHJpdmF0ZUtleS5kYXRhXG5cbiAgcmV0dXJuIGN1cnZlLnZlcmlmeShoYXNoLCBzaWcsIHB1YmtleSlcbn1cblxuZnVuY3Rpb24gZHNhVmVyaWZ5IChzaWcsIGhhc2gsIHB1Yikge1xuICB2YXIgcCA9IHB1Yi5kYXRhLnBcbiAgdmFyIHEgPSBwdWIuZGF0YS5xXG4gIHZhciBnID0gcHViLmRhdGEuZ1xuICB2YXIgeSA9IHB1Yi5kYXRhLnB1Yl9rZXlcbiAgdmFyIHVucGFja2VkID0gcGFyc2VLZXlzLnNpZ25hdHVyZS5kZWNvZGUoc2lnLCAnZGVyJylcbiAgdmFyIHMgPSB1bnBhY2tlZC5zXG4gIHZhciByID0gdW5wYWNrZWQuclxuICBjaGVja1ZhbHVlKHMsIHEpXG4gIGNoZWNrVmFsdWUociwgcSlcbiAgdmFyIG1vbnRwID0gQk4ubW9udChwKVxuICB2YXIgdyA9IHMuaW52bShxKVxuICB2YXIgdiA9IGcudG9SZWQobW9udHApXG4gICAgLnJlZFBvdyhuZXcgQk4oaGFzaCkubXVsKHcpLm1vZChxKSlcbiAgICAuZnJvbVJlZCgpXG4gICAgLm11bCh5LnRvUmVkKG1vbnRwKS5yZWRQb3coci5tdWwodykubW9kKHEpKS5mcm9tUmVkKCkpXG4gICAgLm1vZChwKVxuICAgIC5tb2QocSlcbiAgcmV0dXJuIHYuY21wKHIpID09PSAwXG59XG5cbmZ1bmN0aW9uIGNoZWNrVmFsdWUgKGIsIHEpIHtcbiAgaWYgKGIuY21wbigwKSA8PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc2lnJylcbiAgaWYgKGIuY21wKHEpID49IHEpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzaWcnKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZlcmlmeVxuIiwidmFyIGxvb2t1cCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcblxuOyhmdW5jdGlvbiAoZXhwb3J0cykge1xuXHQndXNlIHN0cmljdCc7XG5cbiAgdmFyIEFyciA9ICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgPyBVaW50OEFycmF5XG4gICAgOiBBcnJheVxuXG5cdHZhciBQTFVTICAgPSAnKycuY2hhckNvZGVBdCgwKVxuXHR2YXIgU0xBU0ggID0gJy8nLmNoYXJDb2RlQXQoMClcblx0dmFyIE5VTUJFUiA9ICcwJy5jaGFyQ29kZUF0KDApXG5cdHZhciBMT1dFUiAgPSAnYScuY2hhckNvZGVBdCgwKVxuXHR2YXIgVVBQRVIgID0gJ0EnLmNoYXJDb2RlQXQoMClcblx0dmFyIFBMVVNfVVJMX1NBRkUgPSAnLScuY2hhckNvZGVBdCgwKVxuXHR2YXIgU0xBU0hfVVJMX1NBRkUgPSAnXycuY2hhckNvZGVBdCgwKVxuXG5cdGZ1bmN0aW9uIGRlY29kZSAoZWx0KSB7XG5cdFx0dmFyIGNvZGUgPSBlbHQuY2hhckNvZGVBdCgwKVxuXHRcdGlmIChjb2RlID09PSBQTFVTIHx8XG5cdFx0ICAgIGNvZGUgPT09IFBMVVNfVVJMX1NBRkUpXG5cdFx0XHRyZXR1cm4gNjIgLy8gJysnXG5cdFx0aWYgKGNvZGUgPT09IFNMQVNIIHx8XG5cdFx0ICAgIGNvZGUgPT09IFNMQVNIX1VSTF9TQUZFKVxuXHRcdFx0cmV0dXJuIDYzIC8vICcvJ1xuXHRcdGlmIChjb2RlIDwgTlVNQkVSKVxuXHRcdFx0cmV0dXJuIC0xIC8vbm8gbWF0Y2hcblx0XHRpZiAoY29kZSA8IE5VTUJFUiArIDEwKVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBOVU1CRVIgKyAyNiArIDI2XG5cdFx0aWYgKGNvZGUgPCBVUFBFUiArIDI2KVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBVUFBFUlxuXHRcdGlmIChjb2RlIDwgTE9XRVIgKyAyNilcblx0XHRcdHJldHVybiBjb2RlIC0gTE9XRVIgKyAyNlxuXHR9XG5cblx0ZnVuY3Rpb24gYjY0VG9CeXRlQXJyYXkgKGI2NCkge1xuXHRcdHZhciBpLCBqLCBsLCB0bXAsIHBsYWNlSG9sZGVycywgYXJyXG5cblx0XHRpZiAoYjY0Lmxlbmd0aCAlIDQgPiAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKVxuXHRcdH1cblxuXHRcdC8vIHRoZSBudW1iZXIgb2YgZXF1YWwgc2lnbnMgKHBsYWNlIGhvbGRlcnMpXG5cdFx0Ly8gaWYgdGhlcmUgYXJlIHR3byBwbGFjZWhvbGRlcnMsIHRoYW4gdGhlIHR3byBjaGFyYWN0ZXJzIGJlZm9yZSBpdFxuXHRcdC8vIHJlcHJlc2VudCBvbmUgYnl0ZVxuXHRcdC8vIGlmIHRoZXJlIGlzIG9ubHkgb25lLCB0aGVuIHRoZSB0aHJlZSBjaGFyYWN0ZXJzIGJlZm9yZSBpdCByZXByZXNlbnQgMiBieXRlc1xuXHRcdC8vIHRoaXMgaXMganVzdCBhIGNoZWFwIGhhY2sgdG8gbm90IGRvIGluZGV4T2YgdHdpY2Vcblx0XHR2YXIgbGVuID0gYjY0Lmxlbmd0aFxuXHRcdHBsYWNlSG9sZGVycyA9ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAyKSA/IDIgOiAnPScgPT09IGI2NC5jaGFyQXQobGVuIC0gMSkgPyAxIDogMFxuXG5cdFx0Ly8gYmFzZTY0IGlzIDQvMyArIHVwIHRvIHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBvcmlnaW5hbCBkYXRhXG5cdFx0YXJyID0gbmV3IEFycihiNjQubGVuZ3RoICogMyAvIDQgLSBwbGFjZUhvbGRlcnMpXG5cblx0XHQvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzXG5cdFx0bCA9IHBsYWNlSG9sZGVycyA+IDAgPyBiNjQubGVuZ3RoIC0gNCA6IGI2NC5sZW5ndGhcblxuXHRcdHZhciBMID0gMFxuXG5cdFx0ZnVuY3Rpb24gcHVzaCAodikge1xuXHRcdFx0YXJyW0wrK10gPSB2XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgaiA9IDA7IGkgPCBsOyBpICs9IDQsIGogKz0gMykge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxOCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCAxMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDIpKSA8PCA2KSB8IGRlY29kZShiNjQuY2hhckF0KGkgKyAzKSlcblx0XHRcdHB1c2goKHRtcCAmIDB4RkYwMDAwKSA+PiAxNilcblx0XHRcdHB1c2goKHRtcCAmIDB4RkYwMCkgPj4gOClcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9XG5cblx0XHRpZiAocGxhY2VIb2xkZXJzID09PSAyKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDIpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAxKSkgPj4gNClcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9IGVsc2UgaWYgKHBsYWNlSG9sZGVycyA9PT0gMSkge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxMCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCA0KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpID4+IDIpXG5cdFx0XHRwdXNoKCh0bXAgPj4gOCkgJiAweEZGKVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH1cblxuXHRcdHJldHVybiBhcnJcblx0fVxuXG5cdGZ1bmN0aW9uIHVpbnQ4VG9CYXNlNjQgKHVpbnQ4KSB7XG5cdFx0dmFyIGksXG5cdFx0XHRleHRyYUJ5dGVzID0gdWludDgubGVuZ3RoICUgMywgLy8gaWYgd2UgaGF2ZSAxIGJ5dGUgbGVmdCwgcGFkIDIgYnl0ZXNcblx0XHRcdG91dHB1dCA9IFwiXCIsXG5cdFx0XHR0ZW1wLCBsZW5ndGhcblxuXHRcdGZ1bmN0aW9uIGVuY29kZSAobnVtKSB7XG5cdFx0XHRyZXR1cm4gbG9va3VwLmNoYXJBdChudW0pXG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0IChudW0pIHtcblx0XHRcdHJldHVybiBlbmNvZGUobnVtID4+IDE4ICYgMHgzRikgKyBlbmNvZGUobnVtID4+IDEyICYgMHgzRikgKyBlbmNvZGUobnVtID4+IDYgJiAweDNGKSArIGVuY29kZShudW0gJiAweDNGKVxuXHRcdH1cblxuXHRcdC8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXJcblx0XHRmb3IgKGkgPSAwLCBsZW5ndGggPSB1aW50OC5sZW5ndGggLSBleHRyYUJ5dGVzOyBpIDwgbGVuZ3RoOyBpICs9IDMpIHtcblx0XHRcdHRlbXAgPSAodWludDhbaV0gPDwgMTYpICsgKHVpbnQ4W2kgKyAxXSA8PCA4KSArICh1aW50OFtpICsgMl0pXG5cdFx0XHRvdXRwdXQgKz0gdHJpcGxldFRvQmFzZTY0KHRlbXApXG5cdFx0fVxuXG5cdFx0Ly8gcGFkIHRoZSBlbmQgd2l0aCB6ZXJvcywgYnV0IG1ha2Ugc3VyZSB0byBub3QgZm9yZ2V0IHRoZSBleHRyYSBieXRlc1xuXHRcdHN3aXRjaCAoZXh0cmFCeXRlcykge1xuXHRcdFx0Y2FzZSAxOlxuXHRcdFx0XHR0ZW1wID0gdWludDhbdWludDgubGVuZ3RoIC0gMV1cblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSh0ZW1wID4+IDIpXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPDwgNCkgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gJz09J1xuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAyOlxuXHRcdFx0XHR0ZW1wID0gKHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDJdIDw8IDgpICsgKHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDFdKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKHRlbXAgPj4gMTApXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPj4gNCkgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKCh0ZW1wIDw8IDIpICYgMHgzRilcblx0XHRcdFx0b3V0cHV0ICs9ICc9J1xuXHRcdFx0XHRicmVha1xuXHRcdH1cblxuXHRcdHJldHVybiBvdXRwdXRcblx0fVxuXG5cdGV4cG9ydHMudG9CeXRlQXJyYXkgPSBiNjRUb0J5dGVBcnJheVxuXHRleHBvcnRzLmZyb21CeXRlQXJyYXkgPSB1aW50OFRvQmFzZTY0XG59KHR5cGVvZiBleHBvcnRzID09PSAndW5kZWZpbmVkJyA/ICh0aGlzLmJhc2U2NGpzID0ge30pIDogZXhwb3J0cykpXG4iLCIvKiFcbiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLlxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xuXG4ndXNlIHN0cmljdCdcblxudmFyIGJhc2U2NCA9IHJlcXVpcmUoJ2Jhc2U2NC1qcycpXG52YXIgaWVlZTc1NCA9IHJlcXVpcmUoJ2llZWU3NTQnKVxudmFyIGlzQXJyYXkgPSByZXF1aXJlKCdpc2FycmF5JylcblxuZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXJcbmV4cG9ydHMuU2xvd0J1ZmZlciA9IFNsb3dCdWZmZXJcbmV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMgPSA1MFxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbnZhciByb290UGFyZW50ID0ge31cblxuLyoqXG4gKiBJZiBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgOlxuICogICA9PT0gdHJ1ZSAgICBVc2UgVWludDhBcnJheSBpbXBsZW1lbnRhdGlvbiAoZmFzdGVzdClcbiAqICAgPT09IGZhbHNlICAgVXNlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiAobW9zdCBjb21wYXRpYmxlLCBldmVuIElFNilcbiAqXG4gKiBCcm93c2VycyB0aGF0IHN1cHBvcnQgdHlwZWQgYXJyYXlzIGFyZSBJRSAxMCssIEZpcmVmb3ggNCssIENocm9tZSA3KywgU2FmYXJpIDUuMSssXG4gKiBPcGVyYSAxMS42KywgaU9TIDQuMisuXG4gKlxuICogRHVlIHRvIHZhcmlvdXMgYnJvd3NlciBidWdzLCBzb21ldGltZXMgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHVzZWQgZXZlblxuICogd2hlbiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0eXBlZCBhcnJheXMuXG4gKlxuICogTm90ZTpcbiAqXG4gKiAgIC0gRmlyZWZveCA0LTI5IGxhY2tzIHN1cHBvcnQgZm9yIGFkZGluZyBuZXcgcHJvcGVydGllcyB0byBgVWludDhBcnJheWAgaW5zdGFuY2VzLFxuICogICAgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NDM4LlxuICpcbiAqICAgLSBTYWZhcmkgNS03IGxhY2tzIHN1cHBvcnQgZm9yIGNoYW5naW5nIHRoZSBgT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3RvcmAgcHJvcGVydHlcbiAqICAgICBvbiBvYmplY3RzLlxuICpcbiAqICAgLSBDaHJvbWUgOS0xMCBpcyBtaXNzaW5nIHRoZSBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uLlxuICpcbiAqICAgLSBJRTEwIGhhcyBhIGJyb2tlbiBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYXJyYXlzIG9mXG4gKiAgICAgaW5jb3JyZWN0IGxlbmd0aCBpbiBzb21lIHNpdHVhdGlvbnMuXG5cbiAqIFdlIGRldGVjdCB0aGVzZSBidWdneSBicm93c2VycyBhbmQgc2V0IGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGAgdG8gYGZhbHNlYCBzbyB0aGV5XG4gKiBnZXQgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgc2xvd2VyIGJ1dCBiZWhhdmVzIGNvcnJlY3RseS5cbiAqL1xuQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgPSBnbG9iYWwuVFlQRURfQVJSQVlfU1VQUE9SVCAhPT0gdW5kZWZpbmVkXG4gID8gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlRcbiAgOiB0eXBlZEFycmF5U3VwcG9ydCgpXG5cbmZ1bmN0aW9uIHR5cGVkQXJyYXlTdXBwb3J0ICgpIHtcbiAgZnVuY3Rpb24gQmFyICgpIHt9XG4gIHRyeSB7XG4gICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KDEpXG4gICAgYXJyLmZvbyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDQyIH1cbiAgICBhcnIuY29uc3RydWN0b3IgPSBCYXJcbiAgICByZXR1cm4gYXJyLmZvbygpID09PSA0MiAmJiAvLyB0eXBlZCBhcnJheSBpbnN0YW5jZXMgY2FuIGJlIGF1Z21lbnRlZFxuICAgICAgICBhcnIuY29uc3RydWN0b3IgPT09IEJhciAmJiAvLyBjb25zdHJ1Y3RvciBjYW4gYmUgc2V0XG4gICAgICAgIHR5cGVvZiBhcnIuc3ViYXJyYXkgPT09ICdmdW5jdGlvbicgJiYgLy8gY2hyb21lIDktMTAgbGFjayBgc3ViYXJyYXlgXG4gICAgICAgIGFyci5zdWJhcnJheSgxLCAxKS5ieXRlTGVuZ3RoID09PSAwIC8vIGllMTAgaGFzIGJyb2tlbiBgc3ViYXJyYXlgXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBrTWF4TGVuZ3RoICgpIHtcbiAgcmV0dXJuIEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gICAgPyAweDdmZmZmZmZmXG4gICAgOiAweDNmZmZmZmZmXG59XG5cbi8qKlxuICogQ2xhc3M6IEJ1ZmZlclxuICogPT09PT09PT09PT09PVxuICpcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgYXJlIGF1Z21lbnRlZFxuICogd2l0aCBmdW5jdGlvbiBwcm9wZXJ0aWVzIGZvciBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgQVBJIGZ1bmN0aW9ucy4gV2UgdXNlXG4gKiBgVWludDhBcnJheWAgc28gdGhhdCBzcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdCByZXR1cm5zXG4gKiBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBCeSBhdWdtZW50aW5nIHRoZSBpbnN0YW5jZXMsIHdlIGNhbiBhdm9pZCBtb2RpZnlpbmcgdGhlIGBVaW50OEFycmF5YFxuICogcHJvdG90eXBlLlxuICovXG5mdW5jdGlvbiBCdWZmZXIgKGFyZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQnVmZmVyKSkge1xuICAgIC8vIEF2b2lkIGdvaW5nIHRocm91Z2ggYW4gQXJndW1lbnRzQWRhcHRvclRyYW1wb2xpbmUgaW4gdGhlIGNvbW1vbiBjYXNlLlxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBhcmd1bWVudHNbMV0pXG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnKVxuICB9XG5cbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXMubGVuZ3RoID0gMFxuICAgIHRoaXMucGFyZW50ID0gdW5kZWZpbmVkXG4gIH1cblxuICAvLyBDb21tb24gY2FzZS5cbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGZyb21OdW1iZXIodGhpcywgYXJnKVxuICB9XG5cbiAgLy8gU2xpZ2h0bHkgbGVzcyBjb21tb24gY2FzZS5cbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZyb21TdHJpbmcodGhpcywgYXJnLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6ICd1dGY4JylcbiAgfVxuXG4gIC8vIFVudXN1YWwuXG4gIHJldHVybiBmcm9tT2JqZWN0KHRoaXMsIGFyZylcbn1cblxuZnVuY3Rpb24gZnJvbU51bWJlciAodGhhdCwgbGVuZ3RoKSB7XG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGggPCAwID8gMCA6IGNoZWNrZWQobGVuZ3RoKSB8IDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGF0W2ldID0gMFxuICAgIH1cbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tU3RyaW5nICh0aGF0LCBzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmICh0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnIHx8IGVuY29kaW5nID09PSAnJykgZW5jb2RpbmcgPSAndXRmOCdcblxuICAvLyBBc3N1bXB0aW9uOiBieXRlTGVuZ3RoKCkgcmV0dXJuIHZhbHVlIGlzIGFsd2F5cyA8IGtNYXhMZW5ndGguXG4gIHZhciBsZW5ndGggPSBieXRlTGVuZ3RoKHN0cmluZywgZW5jb2RpbmcpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuXG4gIHRoYXQud3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbU9iamVjdCAodGhhdCwgb2JqZWN0KSB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIob2JqZWN0KSkgcmV0dXJuIGZyb21CdWZmZXIodGhhdCwgb2JqZWN0KVxuXG4gIGlmIChpc0FycmF5KG9iamVjdCkpIHJldHVybiBmcm9tQXJyYXkodGhhdCwgb2JqZWN0KVxuXG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3RhcnQgd2l0aCBudW1iZXIsIGJ1ZmZlciwgYXJyYXkgb3Igc3RyaW5nJylcbiAgfVxuXG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKG9iamVjdC5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgICAgcmV0dXJuIGZyb21UeXBlZEFycmF5KHRoYXQsIG9iamVjdClcbiAgICB9XG4gICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICByZXR1cm4gZnJvbUFycmF5QnVmZmVyKHRoYXQsIG9iamVjdClcbiAgICB9XG4gIH1cblxuICBpZiAob2JqZWN0Lmxlbmd0aCkgcmV0dXJuIGZyb21BcnJheUxpa2UodGhhdCwgb2JqZWN0KVxuXG4gIHJldHVybiBmcm9tSnNvbk9iamVjdCh0aGF0LCBvYmplY3QpXG59XG5cbmZ1bmN0aW9uIGZyb21CdWZmZXIgKHRoYXQsIGJ1ZmZlcikge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChidWZmZXIubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgYnVmZmVyLmNvcHkodGhhdCwgMCwgMCwgbGVuZ3RoKVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXkgKHRoYXQsIGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBjaGVja2VkKGFycmF5Lmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG4vLyBEdXBsaWNhdGUgb2YgZnJvbUFycmF5KCkgdG8ga2VlcCBmcm9tQXJyYXkoKSBtb25vbW9ycGhpYy5cbmZ1bmN0aW9uIGZyb21UeXBlZEFycmF5ICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICAvLyBUcnVuY2F0aW5nIHRoZSBlbGVtZW50cyBpcyBwcm9iYWJseSBub3Qgd2hhdCBwZW9wbGUgZXhwZWN0IGZyb20gdHlwZWRcbiAgLy8gYXJyYXlzIHdpdGggQllURVNfUEVSX0VMRU1FTlQgPiAxIGJ1dCBpdCdzIGNvbXBhdGlibGUgd2l0aCB0aGUgYmVoYXZpb3JcbiAgLy8gb2YgdGhlIG9sZCBCdWZmZXIgY29uc3RydWN0b3IuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXlCdWZmZXIgKHRoYXQsIGFycmF5KSB7XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIGFycmF5LmJ5dGVMZW5ndGhcbiAgICB0aGF0ID0gQnVmZmVyLl9hdWdtZW50KG5ldyBVaW50OEFycmF5KGFycmF5KSlcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgdGhhdCA9IGZyb21UeXBlZEFycmF5KHRoYXQsIG5ldyBVaW50OEFycmF5KGFycmF5KSlcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXlMaWtlICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLy8gRGVzZXJpYWxpemUgeyB0eXBlOiAnQnVmZmVyJywgZGF0YTogWzEsMiwzLC4uLl0gfSBpbnRvIGEgQnVmZmVyIG9iamVjdC5cbi8vIFJldHVybnMgYSB6ZXJvLWxlbmd0aCBidWZmZXIgZm9yIGlucHV0cyB0aGF0IGRvbid0IGNvbmZvcm0gdG8gdGhlIHNwZWMuXG5mdW5jdGlvbiBmcm9tSnNvbk9iamVjdCAodGhhdCwgb2JqZWN0KSB7XG4gIHZhciBhcnJheVxuICB2YXIgbGVuZ3RoID0gMFxuXG4gIGlmIChvYmplY3QudHlwZSA9PT0gJ0J1ZmZlcicgJiYgaXNBcnJheShvYmplY3QuZGF0YSkpIHtcbiAgICBhcnJheSA9IG9iamVjdC5kYXRhXG4gICAgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB9XG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICBCdWZmZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFVpbnQ4QXJyYXkucHJvdG90eXBlXG4gIEJ1ZmZlci5fX3Byb3RvX18gPSBVaW50OEFycmF5XG59IGVsc2Uge1xuICAvLyBwcmUtc2V0IGZvciB2YWx1ZXMgdGhhdCBtYXkgZXhpc3QgaW4gdGhlIGZ1dHVyZVxuICBCdWZmZXIucHJvdG90eXBlLmxlbmd0aCA9IHVuZGVmaW5lZFxuICBCdWZmZXIucHJvdG90eXBlLnBhcmVudCA9IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBhbGxvY2F0ZSAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBCdWZmZXIuX2F1Z21lbnQobmV3IFVpbnQ4QXJyYXkobGVuZ3RoKSlcbiAgICB0aGF0Ll9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGF0Ll9pc0J1ZmZlciA9IHRydWVcbiAgfVxuXG4gIHZhciBmcm9tUG9vbCA9IGxlbmd0aCAhPT0gMCAmJiBsZW5ndGggPD0gQnVmZmVyLnBvb2xTaXplID4+PiAxXG4gIGlmIChmcm9tUG9vbCkgdGhhdC5wYXJlbnQgPSByb290UGFyZW50XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGhgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0ga01heExlbmd0aCgpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgJ3NpemU6IDB4JyArIGtNYXhMZW5ndGgoKS50b1N0cmluZygxNikgKyAnIGJ5dGVzJylcbiAgfVxuICByZXR1cm4gbGVuZ3RoIHwgMFxufVxuXG5mdW5jdGlvbiBTbG93QnVmZmVyIChzdWJqZWN0LCBlbmNvZGluZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgU2xvd0J1ZmZlcikpIHJldHVybiBuZXcgU2xvd0J1ZmZlcihzdWJqZWN0LCBlbmNvZGluZylcblxuICB2YXIgYnVmID0gbmV3IEJ1ZmZlcihzdWJqZWN0LCBlbmNvZGluZylcbiAgZGVsZXRlIGJ1Zi5wYXJlbnRcbiAgcmV0dXJuIGJ1ZlxufVxuXG5CdWZmZXIuaXNCdWZmZXIgPSBmdW5jdGlvbiBpc0J1ZmZlciAoYikge1xuICByZXR1cm4gISEoYiAhPSBudWxsICYmIGIuX2lzQnVmZmVyKVxufVxuXG5CdWZmZXIuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGEsIGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYSkgfHwgIUJ1ZmZlci5pc0J1ZmZlcihiKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGEgPT09IGIpIHJldHVybiAwXG5cbiAgdmFyIHggPSBhLmxlbmd0aFxuICB2YXIgeSA9IGIubGVuZ3RoXG5cbiAgdmFyIGkgPSAwXG4gIHZhciBsZW4gPSBNYXRoLm1pbih4LCB5KVxuICB3aGlsZSAoaSA8IGxlbikge1xuICAgIGlmIChhW2ldICE9PSBiW2ldKSBicmVha1xuXG4gICAgKytpXG4gIH1cblxuICBpZiAoaSAhPT0gbGVuKSB7XG4gICAgeCA9IGFbaV1cbiAgICB5ID0gYltpXVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG5CdWZmZXIuaXNFbmNvZGluZyA9IGZ1bmN0aW9uIGlzRW5jb2RpbmcgKGVuY29kaW5nKSB7XG4gIHN3aXRjaCAoU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnaGV4JzpcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgY2FzZSAnYXNjaWknOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICBjYXNlICdyYXcnOlxuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5CdWZmZXIuY29uY2F0ID0gZnVuY3Rpb24gY29uY2F0IChsaXN0LCBsZW5ndGgpIHtcbiAgaWYgKCFpc0FycmF5KGxpc3QpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdsaXN0IGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycy4nKVxuXG4gIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBuZXcgQnVmZmVyKDApXG4gIH1cblxuICB2YXIgaVxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxlbmd0aCArPSBsaXN0W2ldLmxlbmd0aFxuICAgIH1cbiAgfVxuXG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKGxlbmd0aClcbiAgdmFyIHBvcyA9IDBcbiAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV1cbiAgICBpdGVtLmNvcHkoYnVmLCBwb3MpXG4gICAgcG9zICs9IGl0ZW0ubGVuZ3RoXG4gIH1cbiAgcmV0dXJuIGJ1ZlxufVxuXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykgc3RyaW5nID0gJycgKyBzdHJpbmdcblxuICB2YXIgbGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAobGVuID09PSAwKSByZXR1cm4gMFxuXG4gIC8vIFVzZSBhIGZvciBsb29wIHRvIGF2b2lkIHJlY3Vyc2lvblxuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuICBmb3IgKDs7KSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgIC8vIERlcHJlY2F0ZWRcbiAgICAgIGNhc2UgJ3Jhdyc6XG4gICAgICBjYXNlICdyYXdzJzpcbiAgICAgICAgcmV0dXJuIGxlblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIGxlbiAqIDJcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBsZW4gPj4+IDFcbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIHJldHVybiBiYXNlNjRUb0J5dGVzKHN0cmluZykubGVuZ3RoXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHJldHVybiB1dGY4VG9CeXRlcyhzdHJpbmcpLmxlbmd0aCAvLyBhc3N1bWUgdXRmOFxuICAgICAgICBlbmNvZGluZyA9ICgnJyArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuQnVmZmVyLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoXG5cbmZ1bmN0aW9uIHNsb3dUb1N0cmluZyAoZW5jb2RpbmcsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcblxuICBzdGFydCA9IHN0YXJ0IHwgMFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPT09IEluZmluaXR5ID8gdGhpcy5sZW5ndGggOiBlbmQgfCAwXG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcbiAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIGlmIChlbmQgPiB0aGlzLmxlbmd0aCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKGVuZCA8PSBzdGFydCkgcmV0dXJuICcnXG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gYmluYXJ5U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1dGYxNmxlU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKGVuY29kaW5nICsgJycpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyAoKSB7XG4gIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aCB8IDBcbiAgaWYgKGxlbmd0aCA9PT0gMCkgcmV0dXJuICcnXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHNsb3dUb1N0cmluZy5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzIChiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgaWYgKHRoaXMgPT09IGIpIHJldHVybiB0cnVlXG4gIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKSA9PT0gMFxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0ICgpIHtcbiAgdmFyIHN0ciA9ICcnXG4gIHZhciBtYXggPSBleHBvcnRzLklOU1BFQ1RfTUFYX0JZVEVTXG4gIGlmICh0aGlzLmxlbmd0aCA+IDApIHtcbiAgICBzdHIgPSB0aGlzLnRvU3RyaW5nKCdoZXgnLCAwLCBtYXgpLm1hdGNoKC8uezJ9L2cpLmpvaW4oJyAnKVxuICAgIGlmICh0aGlzLmxlbmd0aCA+IG1heCkgc3RyICs9ICcgLi4uICdcbiAgfVxuICByZXR1cm4gJzxCdWZmZXIgJyArIHN0ciArICc+J1xufVxuXG5CdWZmZXIucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlIChiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgaWYgKHRoaXMgPT09IGIpIHJldHVybiAwXG4gIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbiBpbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQpIHtcbiAgaWYgKGJ5dGVPZmZzZXQgPiAweDdmZmZmZmZmKSBieXRlT2Zmc2V0ID0gMHg3ZmZmZmZmZlxuICBlbHNlIGlmIChieXRlT2Zmc2V0IDwgLTB4ODAwMDAwMDApIGJ5dGVPZmZzZXQgPSAtMHg4MDAwMDAwMFxuICBieXRlT2Zmc2V0ID4+PSAwXG5cbiAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gLTFcbiAgaWYgKGJ5dGVPZmZzZXQgPj0gdGhpcy5sZW5ndGgpIHJldHVybiAtMVxuXG4gIC8vIE5lZ2F0aXZlIG9mZnNldHMgc3RhcnQgZnJvbSB0aGUgZW5kIG9mIHRoZSBidWZmZXJcbiAgaWYgKGJ5dGVPZmZzZXQgPCAwKSBieXRlT2Zmc2V0ID0gTWF0aC5tYXgodGhpcy5sZW5ndGggKyBieXRlT2Zmc2V0LCAwKVxuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWwubGVuZ3RoID09PSAwKSByZXR1cm4gLTEgLy8gc3BlY2lhbCBjYXNlOiBsb29raW5nIGZvciBlbXB0eSBzdHJpbmcgYWx3YXlzIGZhaWxzXG4gICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgfVxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbCkpIHtcbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgfVxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgJiYgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLCB2YWwsIGJ5dGVPZmZzZXQpXG4gICAgfVxuICAgIHJldHVybiBhcnJheUluZGV4T2YodGhpcywgWyB2YWwgXSwgYnl0ZU9mZnNldClcbiAgfVxuXG4gIGZ1bmN0aW9uIGFycmF5SW5kZXhPZiAoYXJyLCB2YWwsIGJ5dGVPZmZzZXQpIHtcbiAgICB2YXIgZm91bmRJbmRleCA9IC0xXG4gICAgZm9yICh2YXIgaSA9IDA7IGJ5dGVPZmZzZXQgKyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXJyW2J5dGVPZmZzZXQgKyBpXSA9PT0gdmFsW2ZvdW5kSW5kZXggPT09IC0xID8gMCA6IGkgLSBmb3VuZEluZGV4XSkge1xuICAgICAgICBpZiAoZm91bmRJbmRleCA9PT0gLTEpIGZvdW5kSW5kZXggPSBpXG4gICAgICAgIGlmIChpIC0gZm91bmRJbmRleCArIDEgPT09IHZhbC5sZW5ndGgpIHJldHVybiBieXRlT2Zmc2V0ICsgZm91bmRJbmRleFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm91bmRJbmRleCA9IC0xXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyJylcbn1cblxuLy8gYGdldGAgaXMgZGVwcmVjYXRlZFxuQnVmZmVyLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiBnZXQgKG9mZnNldCkge1xuICBjb25zb2xlLmxvZygnLmdldCgpIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB1c2luZyBhcnJheSBpbmRleGVzIGluc3RlYWQuJylcbiAgcmV0dXJuIHRoaXMucmVhZFVJbnQ4KG9mZnNldClcbn1cblxuLy8gYHNldGAgaXMgZGVwcmVjYXRlZFxuQnVmZmVyLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiBzZXQgKHYsIG9mZnNldCkge1xuICBjb25zb2xlLmxvZygnLnNldCgpIGlzIGRlcHJlY2F0ZWQuIEFjY2VzcyB1c2luZyBhcnJheSBpbmRleGVzIGluc3RlYWQuJylcbiAgcmV0dXJuIHRoaXMud3JpdGVVSW50OCh2LCBvZmZzZXQpXG59XG5cbmZ1bmN0aW9uIGhleFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgb2Zmc2V0ID0gTnVtYmVyKG9mZnNldCkgfHwgMFxuICB2YXIgcmVtYWluaW5nID0gYnVmLmxlbmd0aCAtIG9mZnNldFxuICBpZiAoIWxlbmd0aCkge1xuICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICB9IGVsc2Uge1xuICAgIGxlbmd0aCA9IE51bWJlcihsZW5ndGgpXG4gICAgaWYgKGxlbmd0aCA+IHJlbWFpbmluZykge1xuICAgICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gICAgfVxuICB9XG5cbiAgLy8gbXVzdCBiZSBhbiBldmVuIG51bWJlciBvZiBkaWdpdHNcbiAgdmFyIHN0ckxlbiA9IHN0cmluZy5sZW5ndGhcbiAgaWYgKHN0ckxlbiAlIDIgIT09IDApIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcblxuICBpZiAobGVuZ3RoID4gc3RyTGVuIC8gMikge1xuICAgIGxlbmd0aCA9IHN0ckxlbiAvIDJcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBhcnNlZCA9IHBhcnNlSW50KHN0cmluZy5zdWJzdHIoaSAqIDIsIDIpLCAxNilcbiAgICBpZiAoaXNOYU4ocGFyc2VkKSkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhleCBzdHJpbmcnKVxuICAgIGJ1ZltvZmZzZXQgKyBpXSA9IHBhcnNlZFxuICB9XG4gIHJldHVybiBpXG59XG5cbmZ1bmN0aW9uIHV0ZjhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKHV0ZjhUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGFzY2lpV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcihhc2NpaVRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYmluYXJ5V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYXNjaWlXcml0ZShidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGJhc2U2NFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYmFzZTY0VG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiB1Y3MyV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGYxNmxlVG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gd3JpdGUgKHN0cmluZywgb2Zmc2V0LCBsZW5ndGgsIGVuY29kaW5nKSB7XG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcpXG4gIGlmIChvZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIGVuY29kaW5nKVxuICB9IGVsc2UgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvZmZzZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZW5jb2RpbmcgPSBvZmZzZXRcbiAgICBsZW5ndGggPSB0aGlzLmxlbmd0aFxuICAgIG9mZnNldCA9IDBcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgb2Zmc2V0WywgbGVuZ3RoXVssIGVuY29kaW5nXSlcbiAgfSBlbHNlIGlmIChpc0Zpbml0ZShvZmZzZXQpKSB7XG4gICAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICAgIGlmIChpc0Zpbml0ZShsZW5ndGgpKSB7XG4gICAgICBsZW5ndGggPSBsZW5ndGggfCAwXG4gICAgICBpZiAoZW5jb2RpbmcgPT09IHVuZGVmaW5lZCkgZW5jb2RpbmcgPSAndXRmOCdcbiAgICB9IGVsc2Uge1xuICAgICAgZW5jb2RpbmcgPSBsZW5ndGhcbiAgICAgIGxlbmd0aCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgLy8gbGVnYWN5IHdyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldCwgbGVuZ3RoKSAtIHJlbW92ZSBpbiB2MC4xM1xuICB9IGVsc2Uge1xuICAgIHZhciBzd2FwID0gZW5jb2RpbmdcbiAgICBlbmNvZGluZyA9IG9mZnNldFxuICAgIG9mZnNldCA9IGxlbmd0aCB8IDBcbiAgICBsZW5ndGggPSBzd2FwXG4gIH1cblxuICB2YXIgcmVtYWluaW5nID0gdGhpcy5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkIHx8IGxlbmd0aCA+IHJlbWFpbmluZykgbGVuZ3RoID0gcmVtYWluaW5nXG5cbiAgaWYgKChzdHJpbmcubGVuZ3RoID4gMCAmJiAobGVuZ3RoIDwgMCB8fCBvZmZzZXQgPCAwKSkgfHwgb2Zmc2V0ID4gdGhpcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignYXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMnKVxuICB9XG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcblxuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuICBmb3IgKDs7KSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGhleFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgICAgcmV0dXJuIGFzY2lpV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGJpbmFyeVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIC8vIFdhcm5pbmc6IG1heExlbmd0aCBub3QgdGFrZW4gaW50byBhY2NvdW50IGluIGJhc2U2NFdyaXRlXG4gICAgICAgIHJldHVybiBiYXNlNjRXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gdWNzMldyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgICAgICBlbmNvZGluZyA9ICgnJyArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTiAoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0J1ZmZlcicsXG4gICAgZGF0YTogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyIHx8IHRoaXMsIDApXG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZTY0U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICBpZiAoc3RhcnQgPT09IDAgJiYgZW5kID09PSBidWYubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1ZilcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmLnNsaWNlKHN0YXJ0LCBlbmQpKVxuICB9XG59XG5cbmZ1bmN0aW9uIHV0ZjhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcbiAgdmFyIHJlcyA9IFtdXG5cbiAgdmFyIGkgPSBzdGFydFxuICB3aGlsZSAoaSA8IGVuZCkge1xuICAgIHZhciBmaXJzdEJ5dGUgPSBidWZbaV1cbiAgICB2YXIgY29kZVBvaW50ID0gbnVsbFxuICAgIHZhciBieXRlc1BlclNlcXVlbmNlID0gKGZpcnN0Qnl0ZSA+IDB4RUYpID8gNFxuICAgICAgOiAoZmlyc3RCeXRlID4gMHhERikgPyAzXG4gICAgICA6IChmaXJzdEJ5dGUgPiAweEJGKSA/IDJcbiAgICAgIDogMVxuXG4gICAgaWYgKGkgKyBieXRlc1BlclNlcXVlbmNlIDw9IGVuZCkge1xuICAgICAgdmFyIHNlY29uZEJ5dGUsIHRoaXJkQnl0ZSwgZm91cnRoQnl0ZSwgdGVtcENvZGVQb2ludFxuXG4gICAgICBzd2l0Y2ggKGJ5dGVzUGVyU2VxdWVuY2UpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAweDgwKSB7XG4gICAgICAgICAgICBjb2RlUG9pbnQgPSBmaXJzdEJ5dGVcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHNlY29uZEJ5dGUgPSBidWZbaSArIDFdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODApIHtcbiAgICAgICAgICAgIHRlbXBDb2RlUG9pbnQgPSAoZmlyc3RCeXRlICYgMHgxRikgPDwgMHg2IHwgKHNlY29uZEJ5dGUgJiAweDNGKVxuICAgICAgICAgICAgaWYgKHRlbXBDb2RlUG9pbnQgPiAweDdGKSB7XG4gICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRlbXBDb2RlUG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHNlY29uZEJ5dGUgPSBidWZbaSArIDFdXG4gICAgICAgICAgdGhpcmRCeXRlID0gYnVmW2kgKyAyXVxuICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSAmIDB4QzApID09PSAweDgwICYmICh0aGlyZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweEYpIDw8IDB4QyB8IChzZWNvbmRCeXRlICYgMHgzRikgPDwgMHg2IHwgKHRoaXJkQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4N0ZGICYmICh0ZW1wQ29kZVBvaW50IDwgMHhEODAwIHx8IHRlbXBDb2RlUG9pbnQgPiAweERGRkYpKSB7XG4gICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRlbXBDb2RlUG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHNlY29uZEJ5dGUgPSBidWZbaSArIDFdXG4gICAgICAgICAgdGhpcmRCeXRlID0gYnVmW2kgKyAyXVxuICAgICAgICAgIGZvdXJ0aEJ5dGUgPSBidWZbaSArIDNdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwICYmIChmb3VydGhCeXRlICYgMHhDMCkgPT09IDB4ODApIHtcbiAgICAgICAgICAgIHRlbXBDb2RlUG9pbnQgPSAoZmlyc3RCeXRlICYgMHhGKSA8PCAweDEyIHwgKHNlY29uZEJ5dGUgJiAweDNGKSA8PCAweEMgfCAodGhpcmRCeXRlICYgMHgzRikgPDwgMHg2IHwgKGZvdXJ0aEJ5dGUgJiAweDNGKVxuICAgICAgICAgICAgaWYgKHRlbXBDb2RlUG9pbnQgPiAweEZGRkYgJiYgdGVtcENvZGVQb2ludCA8IDB4MTEwMDAwKSB7XG4gICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRlbXBDb2RlUG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvZGVQb2ludCA9PT0gbnVsbCkge1xuICAgICAgLy8gd2UgZGlkIG5vdCBnZW5lcmF0ZSBhIHZhbGlkIGNvZGVQb2ludCBzbyBpbnNlcnQgYVxuICAgICAgLy8gcmVwbGFjZW1lbnQgY2hhciAoVStGRkZEKSBhbmQgYWR2YW5jZSBvbmx5IDEgYnl0ZVxuICAgICAgY29kZVBvaW50ID0gMHhGRkZEXG4gICAgICBieXRlc1BlclNlcXVlbmNlID0gMVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50ID4gMHhGRkZGKSB7XG4gICAgICAvLyBlbmNvZGUgdG8gdXRmMTYgKHN1cnJvZ2F0ZSBwYWlyIGRhbmNlKVxuICAgICAgY29kZVBvaW50IC09IDB4MTAwMDBcbiAgICAgIHJlcy5wdXNoKGNvZGVQb2ludCA+Pj4gMTAgJiAweDNGRiB8IDB4RDgwMClcbiAgICAgIGNvZGVQb2ludCA9IDB4REMwMCB8IGNvZGVQb2ludCAmIDB4M0ZGXG4gICAgfVxuXG4gICAgcmVzLnB1c2goY29kZVBvaW50KVxuICAgIGkgKz0gYnl0ZXNQZXJTZXF1ZW5jZVxuICB9XG5cbiAgcmV0dXJuIGRlY29kZUNvZGVQb2ludHNBcnJheShyZXMpXG59XG5cbi8vIEJhc2VkIG9uIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIyNzQ3MjcyLzY4MDc0MiwgdGhlIGJyb3dzZXIgd2l0aFxuLy8gdGhlIGxvd2VzdCBsaW1pdCBpcyBDaHJvbWUsIHdpdGggMHgxMDAwMCBhcmdzLlxuLy8gV2UgZ28gMSBtYWduaXR1ZGUgbGVzcywgZm9yIHNhZmV0eVxudmFyIE1BWF9BUkdVTUVOVFNfTEVOR1RIID0gMHgxMDAwXG5cbmZ1bmN0aW9uIGRlY29kZUNvZGVQb2ludHNBcnJheSAoY29kZVBvaW50cykge1xuICB2YXIgbGVuID0gY29kZVBvaW50cy5sZW5ndGhcbiAgaWYgKGxlbiA8PSBNQVhfQVJHVU1FTlRTX0xFTkdUSCkge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgY29kZVBvaW50cykgLy8gYXZvaWQgZXh0cmEgc2xpY2UoKVxuICB9XG5cbiAgLy8gRGVjb2RlIGluIGNodW5rcyB0byBhdm9pZCBcImNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZFwiLlxuICB2YXIgcmVzID0gJydcbiAgdmFyIGkgPSAwXG4gIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoXG4gICAgICBTdHJpbmcsXG4gICAgICBjb2RlUG9pbnRzLnNsaWNlKGksIGkgKz0gTUFYX0FSR1VNRU5UU19MRU5HVEgpXG4gICAgKVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gYXNjaWlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0gJiAweDdGKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gYmluYXJ5U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gaGV4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuXG4gIGlmICghc3RhcnQgfHwgc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgfHwgZW5kIDwgMCB8fCBlbmQgPiBsZW4pIGVuZCA9IGxlblxuXG4gIHZhciBvdXQgPSAnJ1xuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIG91dCArPSB0b0hleChidWZbaV0pXG4gIH1cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiB1dGYxNmxlU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgYnl0ZXMgPSBidWYuc2xpY2Uoc3RhcnQsIGVuZClcbiAgdmFyIHJlcyA9ICcnXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSArIGJ5dGVzW2kgKyAxXSAqIDI1NilcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbiBzbGljZSAoc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgc3RhcnQgPSB+fnN0YXJ0XG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuIDogfn5lbmRcblxuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgKz0gbGVuXG4gICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIH0gZWxzZSBpZiAoc3RhcnQgPiBsZW4pIHtcbiAgICBzdGFydCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgKz0gbGVuXG4gICAgaWYgKGVuZCA8IDApIGVuZCA9IDBcbiAgfSBlbHNlIGlmIChlbmQgPiBsZW4pIHtcbiAgICBlbmQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICB2YXIgbmV3QnVmXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIG5ld0J1ZiA9IEJ1ZmZlci5fYXVnbWVudCh0aGlzLnN1YmFycmF5KHN0YXJ0LCBlbmQpKVxuICB9IGVsc2Uge1xuICAgIHZhciBzbGljZUxlbiA9IGVuZCAtIHN0YXJ0XG4gICAgbmV3QnVmID0gbmV3IEJ1ZmZlcihzbGljZUxlbiwgdW5kZWZpbmVkKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VMZW47IGkrKykge1xuICAgICAgbmV3QnVmW2ldID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9XG5cbiAgaWYgKG5ld0J1Zi5sZW5ndGgpIG5ld0J1Zi5wYXJlbnQgPSB0aGlzLnBhcmVudCB8fCB0aGlzXG5cbiAgcmV0dXJuIG5ld0J1ZlxufVxuXG4vKlxuICogTmVlZCB0byBtYWtlIHN1cmUgdGhhdCBidWZmZXIgaXNuJ3QgdHJ5aW5nIHRvIHdyaXRlIG91dCBvZiBib3VuZHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrT2Zmc2V0IChvZmZzZXQsIGV4dCwgbGVuZ3RoKSB7XG4gIGlmICgob2Zmc2V0ICUgMSkgIT09IDAgfHwgb2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ29mZnNldCBpcyBub3QgdWludCcpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBsZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludExFID0gZnVuY3Rpb24gcmVhZFVJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFID0gZnVuY3Rpb24gcmVhZFVJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcbiAgfVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF1cbiAgdmFyIG11bCA9IDFcbiAgd2hpbGUgKGJ5dGVMZW5ndGggPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OCA9IGZ1bmN0aW9uIHJlYWRVSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkxFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCA4KSB8IHRoaXNbb2Zmc2V0ICsgMV1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyTEUgPSBmdW5jdGlvbiByZWFkVUludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKCh0aGlzW29mZnNldF0pIHxcbiAgICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSkgK1xuICAgICAgKHRoaXNbb2Zmc2V0ICsgM10gKiAweDEwMDAwMDApXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkJFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gKiAweDEwMDAwMDApICtcbiAgICAoKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgdGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50TEUgPSBmdW5jdGlvbiByZWFkSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50QkUgPSBmdW5jdGlvbiByZWFkSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgaSA9IGJ5dGVMZW5ndGhcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1pXVxuICB3aGlsZSAoaSA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OCA9IGZ1bmN0aW9uIHJlYWRJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIGlmICghKHRoaXNbb2Zmc2V0XSAmIDB4ODApKSByZXR1cm4gKHRoaXNbb2Zmc2V0XSlcbiAgcmV0dXJuICgoMHhmZiAtIHRoaXNbb2Zmc2V0XSArIDEpICogLTEpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2TEUgPSBmdW5jdGlvbiByZWFkSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkJFID0gZnVuY3Rpb24gcmVhZEludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgMV0gfCAodGhpc1tvZmZzZXRdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0pIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSA8PCAyNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgMjQpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRMRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdExFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRCRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdEJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFID0gZnVuY3Rpb24gcmVhZERvdWJsZUxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCA1MiwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlQkUgPSBmdW5jdGlvbiByZWFkRG91YmxlQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCA1MiwgOClcbn1cblxuZnVuY3Rpb24gY2hlY2tJbnQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdidWZmZXIgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpXG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3ZhbHVlIGlzIG91dCBvZiBib3VuZHMnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpLCAwKVxuXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpLCAwKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50OCA9IGZ1bmN0aW9uIHdyaXRlVUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHhmZiwgMClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQxNiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCAyKTsgaSA8IGo7IGkrKykge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSAmICgweGZmIDw8ICg4ICogKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkpKSkgPj4+XG4gICAgICAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSAqIDhcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQzMiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgNCk7IGkgPCBqOyBpKyspIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgPj4+IChsaXR0bGVFbmRpYW4gPyBpIDogMyAtIGkpICogOCkgJiAweGZmXG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50TEUgPSBmdW5jdGlvbiB3cml0ZUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gMFxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gdmFsdWUgPCAwID8gMSA6IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFID0gZnVuY3Rpb24gd3JpdGVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSB2YWx1ZSA8IDAgPyAxIDogMFxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4N2YsIC0weDgwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZiArIHZhbHVlICsgMVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5mdW5jdGlvbiBjaGVja0lFRUU3NTQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCd2YWx1ZSBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbmRleCBvdXQgb2YgcmFuZ2UnKVxuICBpZiAob2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvYXQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgNCwgMy40MDI4MjM0NjYzODUyODg2ZSszOCwgLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgMjMsIDQpXG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdExFID0gZnVuY3Rpb24gd3JpdGVGbG9hdExFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuZnVuY3Rpb24gd3JpdGVEb3VibGUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgOCwgMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgsIC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCA1MiwgOClcbiAgcmV0dXJuIG9mZnNldCArIDhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG4vLyBjb3B5KHRhcmdldEJ1ZmZlciwgdGFyZ2V0U3RhcnQ9MCwgc291cmNlU3RhcnQ9MCwgc291cmNlRW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiBjb3B5ICh0YXJnZXQsIHRhcmdldFN0YXJ0LCBzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCAmJiBlbmQgIT09IDApIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXRTdGFydCA+PSB0YXJnZXQubGVuZ3RoKSB0YXJnZXRTdGFydCA9IHRhcmdldC5sZW5ndGhcbiAgaWYgKCF0YXJnZXRTdGFydCkgdGFyZ2V0U3RhcnQgPSAwXG4gIGlmIChlbmQgPiAwICYmIGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIC8vIENvcHkgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuIDBcbiAgaWYgKHRhcmdldC5sZW5ndGggPT09IDAgfHwgdGhpcy5sZW5ndGggPT09IDApIHJldHVybiAwXG5cbiAgLy8gRmF0YWwgZXJyb3IgY29uZGl0aW9uc1xuICBpZiAodGFyZ2V0U3RhcnQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3RhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICB9XG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgLy8gQXJlIHdlIG9vYj9cbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0IDwgZW5kIC0gc3RhcnQpIHtcbiAgICBlbmQgPSB0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgKyBzdGFydFxuICB9XG5cbiAgdmFyIGxlbiA9IGVuZCAtIHN0YXJ0XG4gIHZhciBpXG5cbiAgaWYgKHRoaXMgPT09IHRhcmdldCAmJiBzdGFydCA8IHRhcmdldFN0YXJ0ICYmIHRhcmdldFN0YXJ0IDwgZW5kKSB7XG4gICAgLy8gZGVzY2VuZGluZyBjb3B5IGZyb20gZW5kXG4gICAgZm9yIChpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0U3RhcnRdID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9IGVsc2UgaWYgKGxlbiA8IDEwMDAgfHwgIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gYXNjZW5kaW5nIGNvcHkgZnJvbSBzdGFydFxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0Ll9zZXQodGhpcy5zdWJhcnJheShzdGFydCwgc3RhcnQgKyBsZW4pLCB0YXJnZXRTdGFydClcbiAgfVxuXG4gIHJldHVybiBsZW5cbn1cblxuLy8gZmlsbCh2YWx1ZSwgc3RhcnQ9MCwgZW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiBmaWxsICh2YWx1ZSwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXZhbHVlKSB2YWx1ZSA9IDBcbiAgaWYgKCFzdGFydCkgc3RhcnQgPSAwXG4gIGlmICghZW5kKSBlbmQgPSB0aGlzLmxlbmd0aFxuXG4gIGlmIChlbmQgPCBzdGFydCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2VuZCA8IHN0YXJ0JylcblxuICAvLyBGaWxsIDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVyblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVyblxuXG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDAgfHwgZW5kID4gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdlbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgdmFyIGlcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICB0aGlzW2ldID0gdmFsdWVcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJ5dGVzID0gdXRmOFRvQnl0ZXModmFsdWUudG9TdHJpbmcoKSlcbiAgICB2YXIgbGVuID0gYnl0ZXMubGVuZ3RoXG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdGhpc1tpXSA9IGJ5dGVzW2kgJSBsZW5dXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBBcnJheUJ1ZmZlcmAgd2l0aCB0aGUgKmNvcGllZCogbWVtb3J5IG9mIHRoZSBidWZmZXIgaW5zdGFuY2UuXG4gKiBBZGRlZCBpbiBOb2RlIDAuMTIuIE9ubHkgYXZhaWxhYmxlIGluIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBBcnJheUJ1ZmZlci5cbiAqL1xuQnVmZmVyLnByb3RvdHlwZS50b0FycmF5QnVmZmVyID0gZnVuY3Rpb24gdG9BcnJheUJ1ZmZlciAoKSB7XG4gIGlmICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAgIHJldHVybiAobmV3IEJ1ZmZlcih0aGlzKSkuYnVmZmVyXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheSh0aGlzLmxlbmd0aClcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBidWYubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgYnVmW2ldID0gdGhpc1tpXVxuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1Zi5idWZmZXJcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQnVmZmVyLnRvQXJyYXlCdWZmZXIgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXInKVxuICB9XG59XG5cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT1cblxudmFyIEJQID0gQnVmZmVyLnByb3RvdHlwZVxuXG4vKipcbiAqIEF1Z21lbnQgYSBVaW50OEFycmF5ICppbnN0YW5jZSogKG5vdCB0aGUgVWludDhBcnJheSBjbGFzcyEpIHdpdGggQnVmZmVyIG1ldGhvZHNcbiAqL1xuQnVmZmVyLl9hdWdtZW50ID0gZnVuY3Rpb24gX2F1Z21lbnQgKGFycikge1xuICBhcnIuY29uc3RydWN0b3IgPSBCdWZmZXJcbiAgYXJyLl9pc0J1ZmZlciA9IHRydWVcblxuICAvLyBzYXZlIHJlZmVyZW5jZSB0byBvcmlnaW5hbCBVaW50OEFycmF5IHNldCBtZXRob2QgYmVmb3JlIG92ZXJ3cml0aW5nXG4gIGFyci5fc2V0ID0gYXJyLnNldFxuXG4gIC8vIGRlcHJlY2F0ZWRcbiAgYXJyLmdldCA9IEJQLmdldFxuICBhcnIuc2V0ID0gQlAuc2V0XG5cbiAgYXJyLndyaXRlID0gQlAud3JpdGVcbiAgYXJyLnRvU3RyaW5nID0gQlAudG9TdHJpbmdcbiAgYXJyLnRvTG9jYWxlU3RyaW5nID0gQlAudG9TdHJpbmdcbiAgYXJyLnRvSlNPTiA9IEJQLnRvSlNPTlxuICBhcnIuZXF1YWxzID0gQlAuZXF1YWxzXG4gIGFyci5jb21wYXJlID0gQlAuY29tcGFyZVxuICBhcnIuaW5kZXhPZiA9IEJQLmluZGV4T2ZcbiAgYXJyLmNvcHkgPSBCUC5jb3B5XG4gIGFyci5zbGljZSA9IEJQLnNsaWNlXG4gIGFyci5yZWFkVUludExFID0gQlAucmVhZFVJbnRMRVxuICBhcnIucmVhZFVJbnRCRSA9IEJQLnJlYWRVSW50QkVcbiAgYXJyLnJlYWRVSW50OCA9IEJQLnJlYWRVSW50OFxuICBhcnIucmVhZFVJbnQxNkxFID0gQlAucmVhZFVJbnQxNkxFXG4gIGFyci5yZWFkVUludDE2QkUgPSBCUC5yZWFkVUludDE2QkVcbiAgYXJyLnJlYWRVSW50MzJMRSA9IEJQLnJlYWRVSW50MzJMRVxuICBhcnIucmVhZFVJbnQzMkJFID0gQlAucmVhZFVJbnQzMkJFXG4gIGFyci5yZWFkSW50TEUgPSBCUC5yZWFkSW50TEVcbiAgYXJyLnJlYWRJbnRCRSA9IEJQLnJlYWRJbnRCRVxuICBhcnIucmVhZEludDggPSBCUC5yZWFkSW50OFxuICBhcnIucmVhZEludDE2TEUgPSBCUC5yZWFkSW50MTZMRVxuICBhcnIucmVhZEludDE2QkUgPSBCUC5yZWFkSW50MTZCRVxuICBhcnIucmVhZEludDMyTEUgPSBCUC5yZWFkSW50MzJMRVxuICBhcnIucmVhZEludDMyQkUgPSBCUC5yZWFkSW50MzJCRVxuICBhcnIucmVhZEZsb2F0TEUgPSBCUC5yZWFkRmxvYXRMRVxuICBhcnIucmVhZEZsb2F0QkUgPSBCUC5yZWFkRmxvYXRCRVxuICBhcnIucmVhZERvdWJsZUxFID0gQlAucmVhZERvdWJsZUxFXG4gIGFyci5yZWFkRG91YmxlQkUgPSBCUC5yZWFkRG91YmxlQkVcbiAgYXJyLndyaXRlVUludDggPSBCUC53cml0ZVVJbnQ4XG4gIGFyci53cml0ZVVJbnRMRSA9IEJQLndyaXRlVUludExFXG4gIGFyci53cml0ZVVJbnRCRSA9IEJQLndyaXRlVUludEJFXG4gIGFyci53cml0ZVVJbnQxNkxFID0gQlAud3JpdGVVSW50MTZMRVxuICBhcnIud3JpdGVVSW50MTZCRSA9IEJQLndyaXRlVUludDE2QkVcbiAgYXJyLndyaXRlVUludDMyTEUgPSBCUC53cml0ZVVJbnQzMkxFXG4gIGFyci53cml0ZVVJbnQzMkJFID0gQlAud3JpdGVVSW50MzJCRVxuICBhcnIud3JpdGVJbnRMRSA9IEJQLndyaXRlSW50TEVcbiAgYXJyLndyaXRlSW50QkUgPSBCUC53cml0ZUludEJFXG4gIGFyci53cml0ZUludDggPSBCUC53cml0ZUludDhcbiAgYXJyLndyaXRlSW50MTZMRSA9IEJQLndyaXRlSW50MTZMRVxuICBhcnIud3JpdGVJbnQxNkJFID0gQlAud3JpdGVJbnQxNkJFXG4gIGFyci53cml0ZUludDMyTEUgPSBCUC53cml0ZUludDMyTEVcbiAgYXJyLndyaXRlSW50MzJCRSA9IEJQLndyaXRlSW50MzJCRVxuICBhcnIud3JpdGVGbG9hdExFID0gQlAud3JpdGVGbG9hdExFXG4gIGFyci53cml0ZUZsb2F0QkUgPSBCUC53cml0ZUZsb2F0QkVcbiAgYXJyLndyaXRlRG91YmxlTEUgPSBCUC53cml0ZURvdWJsZUxFXG4gIGFyci53cml0ZURvdWJsZUJFID0gQlAud3JpdGVEb3VibGVCRVxuICBhcnIuZmlsbCA9IEJQLmZpbGxcbiAgYXJyLmluc3BlY3QgPSBCUC5pbnNwZWN0XG4gIGFyci50b0FycmF5QnVmZmVyID0gQlAudG9BcnJheUJ1ZmZlclxuXG4gIHJldHVybiBhcnJcbn1cblxudmFyIElOVkFMSURfQkFTRTY0X1JFID0gL1teK1xcLzAtOUEtWmEtei1fXS9nXG5cbmZ1bmN0aW9uIGJhc2U2NGNsZWFuIChzdHIpIHtcbiAgLy8gTm9kZSBzdHJpcHMgb3V0IGludmFsaWQgY2hhcmFjdGVycyBsaWtlIFxcbiBhbmQgXFx0IGZyb20gdGhlIHN0cmluZywgYmFzZTY0LWpzIGRvZXMgbm90XG4gIHN0ciA9IHN0cmluZ3RyaW0oc3RyKS5yZXBsYWNlKElOVkFMSURfQkFTRTY0X1JFLCAnJylcbiAgLy8gTm9kZSBjb252ZXJ0cyBzdHJpbmdzIHdpdGggbGVuZ3RoIDwgMiB0byAnJ1xuICBpZiAoc3RyLmxlbmd0aCA8IDIpIHJldHVybiAnJ1xuICAvLyBOb2RlIGFsbG93cyBmb3Igbm9uLXBhZGRlZCBiYXNlNjQgc3RyaW5ncyAobWlzc2luZyB0cmFpbGluZyA9PT0pLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgd2hpbGUgKHN0ci5sZW5ndGggJSA0ICE9PSAwKSB7XG4gICAgc3RyID0gc3RyICsgJz0nXG4gIH1cbiAgcmV0dXJuIHN0clxufVxuXG5mdW5jdGlvbiBzdHJpbmd0cmltIChzdHIpIHtcbiAgaWYgKHN0ci50cmltKSByZXR1cm4gc3RyLnRyaW0oKVxuICByZXR1cm4gc3RyLnJlcGxhY2UoL15cXHMrfFxccyskL2csICcnKVxufVxuXG5mdW5jdGlvbiB0b0hleCAobikge1xuICBpZiAobiA8IDE2KSByZXR1cm4gJzAnICsgbi50b1N0cmluZygxNilcbiAgcmV0dXJuIG4udG9TdHJpbmcoMTYpXG59XG5cbmZ1bmN0aW9uIHV0ZjhUb0J5dGVzIChzdHJpbmcsIHVuaXRzKSB7XG4gIHVuaXRzID0gdW5pdHMgfHwgSW5maW5pdHlcbiAgdmFyIGNvZGVQb2ludFxuICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aFxuICB2YXIgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcbiAgdmFyIGJ5dGVzID0gW11cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgY29kZVBvaW50ID0gc3RyaW5nLmNoYXJDb2RlQXQoaSlcblxuICAgIC8vIGlzIHN1cnJvZ2F0ZSBjb21wb25lbnRcbiAgICBpZiAoY29kZVBvaW50ID4gMHhEN0ZGICYmIGNvZGVQb2ludCA8IDB4RTAwMCkge1xuICAgICAgLy8gbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmICghbGVhZFN1cnJvZ2F0ZSkge1xuICAgICAgICAvLyBubyBsZWFkIHlldFxuICAgICAgICBpZiAoY29kZVBvaW50ID4gMHhEQkZGKSB7XG4gICAgICAgICAgLy8gdW5leHBlY3RlZCB0cmFpbFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH0gZWxzZSBpZiAoaSArIDEgPT09IGxlbmd0aCkge1xuICAgICAgICAgIC8vIHVucGFpcmVkIGxlYWRcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gdmFsaWQgbGVhZFxuICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG5cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgLy8gMiBsZWFkcyBpbiBhIHJvd1xuICAgICAgaWYgKGNvZGVQb2ludCA8IDB4REMwMCkge1xuICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludFxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyB2YWxpZCBzdXJyb2dhdGUgcGFpclxuICAgICAgY29kZVBvaW50ID0gKGxlYWRTdXJyb2dhdGUgLSAweEQ4MDAgPDwgMTAgfCBjb2RlUG9pbnQgLSAweERDMDApICsgMHgxMDAwMFxuICAgIH0gZWxzZSBpZiAobGVhZFN1cnJvZ2F0ZSkge1xuICAgICAgLy8gdmFsaWQgYm1wIGNoYXIsIGJ1dCBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgfVxuXG4gICAgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcblxuICAgIC8vIGVuY29kZSB1dGY4XG4gICAgaWYgKGNvZGVQb2ludCA8IDB4ODApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMSkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChjb2RlUG9pbnQpXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDgwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAyKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2IHwgMHhDMCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MTAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4QyB8IDB4RTAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MTEwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDQpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDEyIHwgMHhGMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4QyAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb2RlIHBvaW50JylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYnl0ZXNcbn1cblxuZnVuY3Rpb24gYXNjaWlUb0J5dGVzIChzdHIpIHtcbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gTm9kZSdzIGNvZGUgc2VlbXMgdG8gYmUgZG9pbmcgdGhpcyBhbmQgbm90ICYgMHg3Ri4uXG4gICAgYnl0ZUFycmF5LnB1c2goc3RyLmNoYXJDb2RlQXQoaSkgJiAweEZGKVxuICB9XG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVRvQnl0ZXMgKHN0ciwgdW5pdHMpIHtcbiAgdmFyIGMsIGhpLCBsb1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcblxuICAgIGMgPSBzdHIuY2hhckNvZGVBdChpKVxuICAgIGhpID0gYyA+PiA4XG4gICAgbG8gPSBjICUgMjU2XG4gICAgYnl0ZUFycmF5LnB1c2gobG8pXG4gICAgYnl0ZUFycmF5LnB1c2goaGkpXG4gIH1cblxuICByZXR1cm4gYnl0ZUFycmF5XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFRvQnl0ZXMgKHN0cikge1xuICByZXR1cm4gYmFzZTY0LnRvQnl0ZUFycmF5KGJhc2U2NGNsZWFuKHN0cikpXG59XG5cbmZ1bmN0aW9uIGJsaXRCdWZmZXIgKHNyYywgZHN0LCBvZmZzZXQsIGxlbmd0aCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKChpICsgb2Zmc2V0ID49IGRzdC5sZW5ndGgpIHx8IChpID49IHNyYy5sZW5ndGgpKSBicmVha1xuICAgIGRzdFtpICsgb2Zmc2V0XSA9IHNyY1tpXVxuICB9XG4gIHJldHVybiBpXG59XG4iLCJ2YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIChhcnIpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwoYXJyKSA9PSAnW29iamVjdCBBcnJheV0nO1xufTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIHRoaXMuX2V2ZW50cyA9IHRoaXMuX2V2ZW50cyB8fCB7fTtcbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxuRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24obikge1xuICBpZiAoIWlzTnVtYmVyKG4pIHx8IG4gPCAwIHx8IGlzTmFOKG4pKVxuICAgIHRocm93IFR5cGVFcnJvcignbiBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyJyk7XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIgZXIsIGhhbmRsZXIsIGxlbiwgYXJncywgaSwgbGlzdGVuZXJzO1xuXG4gIGlmICghdGhpcy5fZXZlbnRzKVxuICAgIHRoaXMuX2V2ZW50cyA9IHt9O1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKHR5cGUgPT09ICdlcnJvcicpIHtcbiAgICBpZiAoIXRoaXMuX2V2ZW50cy5lcnJvciB8fFxuICAgICAgICAoaXNPYmplY3QodGhpcy5fZXZlbnRzLmVycm9yKSAmJiAhdGhpcy5fZXZlbnRzLmVycm9yLmxlbmd0aCkpIHtcbiAgICAgIGVyID0gYXJndW1lbnRzWzFdO1xuICAgICAgaWYgKGVyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgICB9XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ1VuY2F1Z2h0LCB1bnNwZWNpZmllZCBcImVycm9yXCIgZXZlbnQuJyk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlciA9IHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICBpZiAoaXNVbmRlZmluZWQoaGFuZGxlcikpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmIChpc0Z1bmN0aW9uKGhhbmRsZXIpKSB7XG4gICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAvLyBmYXN0IGNhc2VzXG4gICAgICBjYXNlIDE6XG4gICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzLCBhcmd1bWVudHNbMV0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMsIGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBzbG93ZXJcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuIC0gMSk7XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBsZW47IGkrKylcbiAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgaGFuZGxlci5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNPYmplY3QoaGFuZGxlcikpIHtcbiAgICBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuIC0gMSk7XG4gICAgZm9yIChpID0gMTsgaSA8IGxlbjsgaSsrKVxuICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG5cbiAgICBsaXN0ZW5lcnMgPSBoYW5kbGVyLnNsaWNlKCk7XG4gICAgbGVuID0gbGlzdGVuZXJzLmxlbmd0aDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspXG4gICAgICBsaXN0ZW5lcnNbaV0uYXBwbHkodGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgbTtcblxuICBpZiAoIWlzRnVuY3Rpb24obGlzdGVuZXIpKVxuICAgIHRocm93IFR5cGVFcnJvcignbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHMpXG4gICAgdGhpcy5fZXZlbnRzID0ge307XG5cbiAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBjYXNlIHRoYXQgdHlwZSA9PT0gXCJuZXdMaXN0ZW5lclwiISBCZWZvcmVcbiAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICBpZiAodGhpcy5fZXZlbnRzLm5ld0xpc3RlbmVyKVxuICAgIHRoaXMuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgICAgICBpc0Z1bmN0aW9uKGxpc3RlbmVyLmxpc3RlbmVyKSA/XG4gICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gIGlmICghdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIHRoaXMuX2V2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICBlbHNlIGlmIChpc09iamVjdCh0aGlzLl9ldmVudHNbdHlwZV0pKVxuICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB0aGlzLl9ldmVudHNbdHlwZV0ucHVzaChsaXN0ZW5lcik7XG4gIGVsc2VcbiAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICB0aGlzLl9ldmVudHNbdHlwZV0gPSBbdGhpcy5fZXZlbnRzW3R5cGVdLCBsaXN0ZW5lcl07XG5cbiAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWtcbiAgaWYgKGlzT2JqZWN0KHRoaXMuX2V2ZW50c1t0eXBlXSkgJiYgIXRoaXMuX2V2ZW50c1t0eXBlXS53YXJuZWQpIHtcbiAgICB2YXIgbTtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX21heExpc3RlbmVycykpIHtcbiAgICAgIG0gPSB0aGlzLl9tYXhMaXN0ZW5lcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIG0gPSBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgICB9XG5cbiAgICBpZiAobSAmJiBtID4gMCAmJiB0aGlzLl9ldmVudHNbdHlwZV0ubGVuZ3RoID4gbSkge1xuICAgICAgdGhpcy5fZXZlbnRzW3R5cGVdLndhcm5lZCA9IHRydWU7XG4gICAgICBjb25zb2xlLmVycm9yKCcobm9kZSkgd2FybmluZzogcG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSAnICtcbiAgICAgICAgICAgICAgICAgICAgJ2xlYWsgZGV0ZWN0ZWQuICVkIGxpc3RlbmVycyBhZGRlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICdVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdC4nLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ldmVudHNbdHlwZV0ubGVuZ3RoKTtcbiAgICAgIGlmICh0eXBlb2YgY29uc29sZS50cmFjZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBub3Qgc3VwcG9ydGVkIGluIElFIDEwXG4gICAgICAgIGNvbnNvbGUudHJhY2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xuICBpZiAoIWlzRnVuY3Rpb24obGlzdGVuZXIpKVxuICAgIHRocm93IFR5cGVFcnJvcignbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG5cbiAgdmFyIGZpcmVkID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gZygpIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGcpO1xuXG4gICAgaWYgKCFmaXJlZCkge1xuICAgICAgZmlyZWQgPSB0cnVlO1xuICAgICAgbGlzdGVuZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG4gIH1cblxuICBnLmxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIHRoaXMub24odHlwZSwgZyk7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vLyBlbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWZmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZFxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBsaXN0LCBwb3NpdGlvbiwgbGVuZ3RoLCBpO1xuXG4gIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpXG4gICAgdGhyb3cgVHlwZUVycm9yKCdsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICBpZiAoIXRoaXMuX2V2ZW50cyB8fCAhdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIGxpc3QgPSB0aGlzLl9ldmVudHNbdHlwZV07XG4gIGxlbmd0aCA9IGxpc3QubGVuZ3RoO1xuICBwb3NpdGlvbiA9IC0xO1xuXG4gIGlmIChsaXN0ID09PSBsaXN0ZW5lciB8fFxuICAgICAgKGlzRnVuY3Rpb24obGlzdC5saXN0ZW5lcikgJiYgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpKSB7XG4gICAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcbiAgICBpZiAodGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3RlbmVyKTtcblxuICB9IGVsc2UgaWYgKGlzT2JqZWN0KGxpc3QpKSB7XG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gPiAwOykge1xuICAgICAgaWYgKGxpc3RbaV0gPT09IGxpc3RlbmVyIHx8XG4gICAgICAgICAgKGxpc3RbaV0ubGlzdGVuZXIgJiYgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpKSB7XG4gICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICBsaXN0Lmxlbmd0aCA9IDA7XG4gICAgICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaXN0LnNwbGljZShwb3NpdGlvbiwgMSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0ZW5lcik7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIga2V5LCBsaXN0ZW5lcnM7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHMpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICBpZiAoIXRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcikge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgdGhpcy5fZXZlbnRzID0ge307XG4gICAgZWxzZSBpZiAodGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgICAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGVtaXQgcmVtb3ZlTGlzdGVuZXIgZm9yIGFsbCBsaXN0ZW5lcnMgb24gYWxsIGV2ZW50c1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGZvciAoa2V5IGluIHRoaXMuX2V2ZW50cykge1xuICAgICAgaWYgKGtleSA9PT0gJ3JlbW92ZUxpc3RlbmVyJykgY29udGludWU7XG4gICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncmVtb3ZlTGlzdGVuZXInKTtcbiAgICB0aGlzLl9ldmVudHMgPSB7fTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxpc3RlbmVycyA9IHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICBpZiAoaXNGdW5jdGlvbihsaXN0ZW5lcnMpKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICB9IGVsc2Uge1xuICAgIC8vIExJRk8gb3JkZXJcbiAgICB3aGlsZSAobGlzdGVuZXJzLmxlbmd0aClcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2xpc3RlbmVycy5sZW5ndGggLSAxXSk7XG4gIH1cbiAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIgcmV0O1xuICBpZiAoIXRoaXMuX2V2ZW50cyB8fCAhdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIHJldCA9IFtdO1xuICBlbHNlIGlmIChpc0Z1bmN0aW9uKHRoaXMuX2V2ZW50c1t0eXBlXSkpXG4gICAgcmV0ID0gW3RoaXMuX2V2ZW50c1t0eXBlXV07XG4gIGVsc2VcbiAgICByZXQgPSB0aGlzLl9ldmVudHNbdHlwZV0uc2xpY2UoKTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbkV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24oZW1pdHRlciwgdHlwZSkge1xuICB2YXIgcmV0O1xuICBpZiAoIWVtaXR0ZXIuX2V2ZW50cyB8fCAhZW1pdHRlci5fZXZlbnRzW3R5cGVdKVxuICAgIHJldCA9IDA7XG4gIGVsc2UgaWYgKGlzRnVuY3Rpb24oZW1pdHRlci5fZXZlbnRzW3R5cGVdKSlcbiAgICByZXQgPSAxO1xuICBlbHNlXG4gICAgcmV0ID0gZW1pdHRlci5fZXZlbnRzW3R5cGVdLmxlbmd0aDtcbiAgcmV0dXJuIHJldDtcbn07XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24oYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBpc051bWJlcihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdudW1iZXInO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdChhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmIGFyZyAhPT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNVbmRlZmluZWQoYXJnKSB7XG4gIHJldHVybiBhcmcgPT09IHZvaWQgMDtcbn1cbiIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxudmFyIHByb2Nlc3MgPSBtb2R1bGUuZXhwb3J0cyA9IHt9O1xuXG4vLyBjYWNoZWQgZnJvbSB3aGF0ZXZlciBnbG9iYWwgaXMgcHJlc2VudCBzbyB0aGF0IHRlc3QgcnVubmVycyB0aGF0IHN0dWIgaXRcbi8vIGRvbid0IGJyZWFrIHRoaW5ncy4gIEJ1dCB3ZSBuZWVkIHRvIHdyYXAgaXQgaW4gYSB0cnkgY2F0Y2ggaW4gY2FzZSBpdCBpc1xuLy8gd3JhcHBlZCBpbiBzdHJpY3QgbW9kZSBjb2RlIHdoaWNoIGRvZXNuJ3QgZGVmaW5lIGFueSBnbG9iYWxzLiAgSXQncyBpbnNpZGUgYVxuLy8gZnVuY3Rpb24gYmVjYXVzZSB0cnkvY2F0Y2hlcyBkZW9wdGltaXplIGluIGNlcnRhaW4gZW5naW5lcy5cblxudmFyIGNhY2hlZFNldFRpbWVvdXQ7XG52YXIgY2FjaGVkQ2xlYXJUaW1lb3V0O1xuXG5mdW5jdGlvbiBkZWZhdWx0U2V0VGltb3V0KCkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuZnVuY3Rpb24gZGVmYXVsdENsZWFyVGltZW91dCAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbihmdW5jdGlvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZXRUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGVhclRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG4gICAgfVxufSAoKSlcbmZ1bmN0aW9uIHJ1blRpbWVvdXQoZnVuKSB7XG4gICAgaWYgKGNhY2hlZFNldFRpbWVvdXQgPT09IHNldFRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIC8vIGlmIHNldFRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRTZXRUaW1lb3V0ID09PSBkZWZhdWx0U2V0VGltb3V0IHx8ICFjYWNoZWRTZXRUaW1lb3V0KSAmJiBzZXRUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfSBjYXRjaChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbChudWxsLCBmdW4sIDApO1xuICAgICAgICB9IGNhdGNoKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3JcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwodGhpcywgZnVuLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG59XG5mdW5jdGlvbiBydW5DbGVhclRpbWVvdXQobWFya2VyKSB7XG4gICAgaWYgKGNhY2hlZENsZWFyVGltZW91dCA9PT0gY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIC8vIGlmIGNsZWFyVGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZENsZWFyVGltZW91dCA9PT0gZGVmYXVsdENsZWFyVGltZW91dCB8fCAhY2FjaGVkQ2xlYXJUaW1lb3V0KSAmJiBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0ICB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKG51bGwsIG1hcmtlcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3IuXG4gICAgICAgICAgICAvLyBTb21lIHZlcnNpb25zIG9mIEkuRS4gaGF2ZSBkaWZmZXJlbnQgcnVsZXMgZm9yIGNsZWFyVGltZW91dCB2cyBzZXRUaW1lb3V0XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwodGhpcywgbWFya2VyKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbn1cbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG52YXIgY3VycmVudFF1ZXVlO1xudmFyIHF1ZXVlSW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCkge1xuICAgIGlmICghZHJhaW5pbmcgfHwgIWN1cnJlbnRRdWV1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnRRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgcXVldWUgPSBjdXJyZW50UXVldWUuY29uY2F0KHF1ZXVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgfVxuICAgIGlmIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgZHJhaW5RdWV1ZSgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZHJhaW5RdWV1ZSgpIHtcbiAgICBpZiAoZHJhaW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgdGltZW91dCA9IHJ1blRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTtcbiAgICBkcmFpbmluZyA9IHRydWU7XG5cbiAgICB2YXIgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIHdoaWxlKGxlbikge1xuICAgICAgICBjdXJyZW50UXVldWUgPSBxdWV1ZTtcbiAgICAgICAgcXVldWUgPSBbXTtcbiAgICAgICAgd2hpbGUgKCsrcXVldWVJbmRleCA8IGxlbikge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRRdWV1ZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIHJ1bkNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmIChxdWV1ZS5sZW5ndGggPT09IDEgJiYgIWRyYWluaW5nKSB7XG4gICAgICAgIHJ1blRpbWVvdXQoZHJhaW5RdWV1ZSk7XG4gICAgfVxufTtcblxuLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0c1xuZnVuY3Rpb24gSXRlbShmdW4sIGFycmF5KSB7XG4gICAgdGhpcy5mdW4gPSBmdW47XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xufVxuSXRlbS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpO1xufTtcbnByb2Nlc3MudGl0bGUgPSAnYnJvd3Nlcic7XG5wcm9jZXNzLmJyb3dzZXIgPSB0cnVlO1xucHJvY2Vzcy5lbnYgPSB7fTtcbnByb2Nlc3MuYXJndiA9IFtdO1xucHJvY2Vzcy52ZXJzaW9uID0gJyc7IC8vIGVtcHR5IHN0cmluZyB0byBhdm9pZCByZWdleHAgaXNzdWVzXG5wcm9jZXNzLnZlcnNpb25zID0ge307XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5wcm9jZXNzLm9uID0gbm9vcDtcbnByb2Nlc3MuYWRkTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5vbmNlID0gbm9vcDtcbnByb2Nlc3Mub2ZmID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBub29wO1xucHJvY2Vzcy5lbWl0ID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucHJlcGVuZE9uY2VMaXN0ZW5lciA9IG5vb3A7XG5cbnByb2Nlc3MubGlzdGVuZXJzID0gZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIFtdIH1cblxucHJvY2Vzcy5iaW5kaW5nID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xuXG5wcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9O1xucHJvY2Vzcy5jaGRpciA9IGZ1bmN0aW9uIChkaXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcbnByb2Nlc3MudW1hc2sgPSBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH07XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlcjtcblxudmFyIGlzQnVmZmVyRW5jb2RpbmcgPSBCdWZmZXIuaXNFbmNvZGluZ1xuICB8fCBmdW5jdGlvbihlbmNvZGluZykge1xuICAgICAgIHN3aXRjaCAoZW5jb2RpbmcgJiYgZW5jb2RpbmcudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgY2FzZSAnaGV4JzogY2FzZSAndXRmOCc6IGNhc2UgJ3V0Zi04JzogY2FzZSAnYXNjaWknOiBjYXNlICdiaW5hcnknOiBjYXNlICdiYXNlNjQnOiBjYXNlICd1Y3MyJzogY2FzZSAndWNzLTInOiBjYXNlICd1dGYxNmxlJzogY2FzZSAndXRmLTE2bGUnOiBjYXNlICdyYXcnOiByZXR1cm4gdHJ1ZTtcbiAgICAgICAgIGRlZmF1bHQ6IHJldHVybiBmYWxzZTtcbiAgICAgICB9XG4gICAgIH1cblxuXG5mdW5jdGlvbiBhc3NlcnRFbmNvZGluZyhlbmNvZGluZykge1xuICBpZiAoZW5jb2RpbmcgJiYgIWlzQnVmZmVyRW5jb2RpbmcoZW5jb2RpbmcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpO1xuICB9XG59XG5cbi8vIFN0cmluZ0RlY29kZXIgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBlZmZpY2llbnRseSBzcGxpdHRpbmcgYSBzZXJpZXMgb2Zcbi8vIGJ1ZmZlcnMgaW50byBhIHNlcmllcyBvZiBKUyBzdHJpbmdzIHdpdGhvdXQgYnJlYWtpbmcgYXBhcnQgbXVsdGktYnl0ZVxuLy8gY2hhcmFjdGVycy4gQ0VTVS04IGlzIGhhbmRsZWQgYXMgcGFydCBvZiB0aGUgVVRGLTggZW5jb2RpbmcuXG4vL1xuLy8gQFRPRE8gSGFuZGxpbmcgYWxsIGVuY29kaW5ncyBpbnNpZGUgYSBzaW5nbGUgb2JqZWN0IG1ha2VzIGl0IHZlcnkgZGlmZmljdWx0XG4vLyB0byByZWFzb24gYWJvdXQgdGhpcyBjb2RlLCBzbyBpdCBzaG91bGQgYmUgc3BsaXQgdXAgaW4gdGhlIGZ1dHVyZS5cbi8vIEBUT0RPIFRoZXJlIHNob3VsZCBiZSBhIHV0Zjgtc3RyaWN0IGVuY29kaW5nIHRoYXQgcmVqZWN0cyBpbnZhbGlkIFVURi04IGNvZGVcbi8vIHBvaW50cyBhcyB1c2VkIGJ5IENFU1UtOC5cbnZhciBTdHJpbmdEZWNvZGVyID0gZXhwb3J0cy5TdHJpbmdEZWNvZGVyID0gZnVuY3Rpb24oZW5jb2RpbmcpIHtcbiAgdGhpcy5lbmNvZGluZyA9IChlbmNvZGluZyB8fCAndXRmOCcpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXS8sICcnKTtcbiAgYXNzZXJ0RW5jb2RpbmcoZW5jb2RpbmcpO1xuICBzd2l0Y2ggKHRoaXMuZW5jb2RpbmcpIHtcbiAgICBjYXNlICd1dGY4JzpcbiAgICAgIC8vIENFU1UtOCByZXByZXNlbnRzIGVhY2ggb2YgU3Vycm9nYXRlIFBhaXIgYnkgMy1ieXRlc1xuICAgICAgdGhpcy5zdXJyb2dhdGVTaXplID0gMztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgLy8gVVRGLTE2IHJlcHJlc2VudHMgZWFjaCBvZiBTdXJyb2dhdGUgUGFpciBieSAyLWJ5dGVzXG4gICAgICB0aGlzLnN1cnJvZ2F0ZVNpemUgPSAyO1xuICAgICAgdGhpcy5kZXRlY3RJbmNvbXBsZXRlQ2hhciA9IHV0ZjE2RGV0ZWN0SW5jb21wbGV0ZUNoYXI7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgLy8gQmFzZS02NCBzdG9yZXMgMyBieXRlcyBpbiA0IGNoYXJzLCBhbmQgcGFkcyB0aGUgcmVtYWluZGVyLlxuICAgICAgdGhpcy5zdXJyb2dhdGVTaXplID0gMztcbiAgICAgIHRoaXMuZGV0ZWN0SW5jb21wbGV0ZUNoYXIgPSBiYXNlNjREZXRlY3RJbmNvbXBsZXRlQ2hhcjtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aGlzLndyaXRlID0gcGFzc1Rocm91Z2hXcml0ZTtcbiAgICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIEVub3VnaCBzcGFjZSB0byBzdG9yZSBhbGwgYnl0ZXMgb2YgYSBzaW5nbGUgY2hhcmFjdGVyLiBVVEYtOCBuZWVkcyA0XG4gIC8vIGJ5dGVzLCBidXQgQ0VTVS04IG1heSByZXF1aXJlIHVwIHRvIDYgKDMgYnl0ZXMgcGVyIHN1cnJvZ2F0ZSkuXG4gIHRoaXMuY2hhckJ1ZmZlciA9IG5ldyBCdWZmZXIoNik7XG4gIC8vIE51bWJlciBvZiBieXRlcyByZWNlaXZlZCBmb3IgdGhlIGN1cnJlbnQgaW5jb21wbGV0ZSBtdWx0aS1ieXRlIGNoYXJhY3Rlci5cbiAgdGhpcy5jaGFyUmVjZWl2ZWQgPSAwO1xuICAvLyBOdW1iZXIgb2YgYnl0ZXMgZXhwZWN0ZWQgZm9yIHRoZSBjdXJyZW50IGluY29tcGxldGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuXG4gIHRoaXMuY2hhckxlbmd0aCA9IDA7XG59O1xuXG5cbi8vIHdyaXRlIGRlY29kZXMgdGhlIGdpdmVuIGJ1ZmZlciBhbmQgcmV0dXJucyBpdCBhcyBKUyBzdHJpbmcgdGhhdCBpc1xuLy8gZ3VhcmFudGVlZCB0byBub3QgY29udGFpbiBhbnkgcGFydGlhbCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuIEFueSBwYXJ0aWFsXG4vLyBjaGFyYWN0ZXIgZm91bmQgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIGlzIGJ1ZmZlcmVkIHVwLCBhbmQgd2lsbCBiZVxuLy8gcmV0dXJuZWQgd2hlbiBjYWxsaW5nIHdyaXRlIGFnYWluIHdpdGggdGhlIHJlbWFpbmluZyBieXRlcy5cbi8vXG4vLyBOb3RlOiBDb252ZXJ0aW5nIGEgQnVmZmVyIGNvbnRhaW5pbmcgYW4gb3JwaGFuIHN1cnJvZ2F0ZSB0byBhIFN0cmluZ1xuLy8gY3VycmVudGx5IHdvcmtzLCBidXQgY29udmVydGluZyBhIFN0cmluZyB0byBhIEJ1ZmZlciAodmlhIGBuZXcgQnVmZmVyYCwgb3Jcbi8vIEJ1ZmZlciN3cml0ZSkgd2lsbCByZXBsYWNlIGluY29tcGxldGUgc3Vycm9nYXRlcyB3aXRoIHRoZSB1bmljb2RlXG4vLyByZXBsYWNlbWVudCBjaGFyYWN0ZXIuIFNlZSBodHRwczovL2NvZGVyZXZpZXcuY2hyb21pdW0ub3JnLzEyMTE3MzAwOS8gLlxuU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWZmZXIpIHtcbiAgdmFyIGNoYXJTdHIgPSAnJztcbiAgLy8gaWYgb3VyIGxhc3Qgd3JpdGUgZW5kZWQgd2l0aCBhbiBpbmNvbXBsZXRlIG11bHRpYnl0ZSBjaGFyYWN0ZXJcbiAgd2hpbGUgKHRoaXMuY2hhckxlbmd0aCkge1xuICAgIC8vIGRldGVybWluZSBob3cgbWFueSByZW1haW5pbmcgYnl0ZXMgdGhpcyBidWZmZXIgaGFzIHRvIG9mZmVyIGZvciB0aGlzIGNoYXJcbiAgICB2YXIgYXZhaWxhYmxlID0gKGJ1ZmZlci5sZW5ndGggPj0gdGhpcy5jaGFyTGVuZ3RoIC0gdGhpcy5jaGFyUmVjZWl2ZWQpID9cbiAgICAgICAgdGhpcy5jaGFyTGVuZ3RoIC0gdGhpcy5jaGFyUmVjZWl2ZWQgOlxuICAgICAgICBidWZmZXIubGVuZ3RoO1xuXG4gICAgLy8gYWRkIHRoZSBuZXcgYnl0ZXMgdG8gdGhlIGNoYXIgYnVmZmVyXG4gICAgYnVmZmVyLmNvcHkodGhpcy5jaGFyQnVmZmVyLCB0aGlzLmNoYXJSZWNlaXZlZCwgMCwgYXZhaWxhYmxlKTtcbiAgICB0aGlzLmNoYXJSZWNlaXZlZCArPSBhdmFpbGFibGU7XG5cbiAgICBpZiAodGhpcy5jaGFyUmVjZWl2ZWQgPCB0aGlzLmNoYXJMZW5ndGgpIHtcbiAgICAgIC8vIHN0aWxsIG5vdCBlbm91Z2ggY2hhcnMgaW4gdGhpcyBidWZmZXI/IHdhaXQgZm9yIG1vcmUgLi4uXG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgLy8gcmVtb3ZlIGJ5dGVzIGJlbG9uZ2luZyB0byB0aGUgY3VycmVudCBjaGFyYWN0ZXIgZnJvbSB0aGUgYnVmZmVyXG4gICAgYnVmZmVyID0gYnVmZmVyLnNsaWNlKGF2YWlsYWJsZSwgYnVmZmVyLmxlbmd0aCk7XG5cbiAgICAvLyBnZXQgdGhlIGNoYXJhY3RlciB0aGF0IHdhcyBzcGxpdFxuICAgIGNoYXJTdHIgPSB0aGlzLmNoYXJCdWZmZXIuc2xpY2UoMCwgdGhpcy5jaGFyTGVuZ3RoKS50b1N0cmluZyh0aGlzLmVuY29kaW5nKTtcblxuICAgIC8vIENFU1UtODogbGVhZCBzdXJyb2dhdGUgKEQ4MDAtREJGRikgaXMgYWxzbyB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXJcbiAgICB2YXIgY2hhckNvZGUgPSBjaGFyU3RyLmNoYXJDb2RlQXQoY2hhclN0ci5sZW5ndGggLSAxKTtcbiAgICBpZiAoY2hhckNvZGUgPj0gMHhEODAwICYmIGNoYXJDb2RlIDw9IDB4REJGRikge1xuICAgICAgdGhpcy5jaGFyTGVuZ3RoICs9IHRoaXMuc3Vycm9nYXRlU2l6ZTtcbiAgICAgIGNoYXJTdHIgPSAnJztcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB0aGlzLmNoYXJSZWNlaXZlZCA9IHRoaXMuY2hhckxlbmd0aCA9IDA7XG5cbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gbW9yZSBieXRlcyBpbiB0aGlzIGJ1ZmZlciwganVzdCBlbWl0IG91ciBjaGFyXG4gICAgaWYgKGJ1ZmZlci5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBjaGFyU3RyO1xuICAgIH1cbiAgICBicmVhaztcbiAgfVxuXG4gIC8vIGRldGVybWluZSBhbmQgc2V0IGNoYXJMZW5ndGggLyBjaGFyUmVjZWl2ZWRcbiAgdGhpcy5kZXRlY3RJbmNvbXBsZXRlQ2hhcihidWZmZXIpO1xuXG4gIHZhciBlbmQgPSBidWZmZXIubGVuZ3RoO1xuICBpZiAodGhpcy5jaGFyTGVuZ3RoKSB7XG4gICAgLy8gYnVmZmVyIHRoZSBpbmNvbXBsZXRlIGNoYXJhY3RlciBieXRlcyB3ZSBnb3RcbiAgICBidWZmZXIuY29weSh0aGlzLmNoYXJCdWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGggLSB0aGlzLmNoYXJSZWNlaXZlZCwgZW5kKTtcbiAgICBlbmQgLT0gdGhpcy5jaGFyUmVjZWl2ZWQ7XG4gIH1cblxuICBjaGFyU3RyICs9IGJ1ZmZlci50b1N0cmluZyh0aGlzLmVuY29kaW5nLCAwLCBlbmQpO1xuXG4gIHZhciBlbmQgPSBjaGFyU3RyLmxlbmd0aCAtIDE7XG4gIHZhciBjaGFyQ29kZSA9IGNoYXJTdHIuY2hhckNvZGVBdChlbmQpO1xuICAvLyBDRVNVLTg6IGxlYWQgc3Vycm9nYXRlIChEODAwLURCRkYpIGlzIGFsc28gdGhlIGluY29tcGxldGUgY2hhcmFjdGVyXG4gIGlmIChjaGFyQ29kZSA+PSAweEQ4MDAgJiYgY2hhckNvZGUgPD0gMHhEQkZGKSB7XG4gICAgdmFyIHNpemUgPSB0aGlzLnN1cnJvZ2F0ZVNpemU7XG4gICAgdGhpcy5jaGFyTGVuZ3RoICs9IHNpemU7XG4gICAgdGhpcy5jaGFyUmVjZWl2ZWQgKz0gc2l6ZTtcbiAgICB0aGlzLmNoYXJCdWZmZXIuY29weSh0aGlzLmNoYXJCdWZmZXIsIHNpemUsIDAsIHNpemUpO1xuICAgIGJ1ZmZlci5jb3B5KHRoaXMuY2hhckJ1ZmZlciwgMCwgMCwgc2l6ZSk7XG4gICAgcmV0dXJuIGNoYXJTdHIuc3Vic3RyaW5nKDAsIGVuZCk7XG4gIH1cblxuICAvLyBvciBqdXN0IGVtaXQgdGhlIGNoYXJTdHJcbiAgcmV0dXJuIGNoYXJTdHI7XG59O1xuXG4vLyBkZXRlY3RJbmNvbXBsZXRlQ2hhciBkZXRlcm1pbmVzIGlmIHRoZXJlIGlzIGFuIGluY29tcGxldGUgVVRGLTggY2hhcmFjdGVyIGF0XG4vLyB0aGUgZW5kIG9mIHRoZSBnaXZlbiBidWZmZXIuIElmIHNvLCBpdCBzZXRzIHRoaXMuY2hhckxlbmd0aCB0byB0aGUgYnl0ZVxuLy8gbGVuZ3RoIHRoYXQgY2hhcmFjdGVyLCBhbmQgc2V0cyB0aGlzLmNoYXJSZWNlaXZlZCB0byB0aGUgbnVtYmVyIG9mIGJ5dGVzXG4vLyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoaXMgY2hhcmFjdGVyLlxuU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZGV0ZWN0SW5jb21wbGV0ZUNoYXIgPSBmdW5jdGlvbihidWZmZXIpIHtcbiAgLy8gZGV0ZXJtaW5lIGhvdyBtYW55IGJ5dGVzIHdlIGhhdmUgdG8gY2hlY2sgYXQgdGhlIGVuZCBvZiB0aGlzIGJ1ZmZlclxuICB2YXIgaSA9IChidWZmZXIubGVuZ3RoID49IDMpID8gMyA6IGJ1ZmZlci5sZW5ndGg7XG5cbiAgLy8gRmlndXJlIG91dCBpZiBvbmUgb2YgdGhlIGxhc3QgaSBieXRlcyBvZiBvdXIgYnVmZmVyIGFubm91bmNlcyBhblxuICAvLyBpbmNvbXBsZXRlIGNoYXIuXG4gIGZvciAoOyBpID4gMDsgaS0tKSB7XG4gICAgdmFyIGMgPSBidWZmZXJbYnVmZmVyLmxlbmd0aCAtIGldO1xuXG4gICAgLy8gU2VlIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTgjRGVzY3JpcHRpb25cblxuICAgIC8vIDExMFhYWFhYXG4gICAgaWYgKGkgPT0gMSAmJiBjID4+IDUgPT0gMHgwNikge1xuICAgICAgdGhpcy5jaGFyTGVuZ3RoID0gMjtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIDExMTBYWFhYXG4gICAgaWYgKGkgPD0gMiAmJiBjID4+IDQgPT0gMHgwRSkge1xuICAgICAgdGhpcy5jaGFyTGVuZ3RoID0gMztcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIDExMTEwWFhYXG4gICAgaWYgKGkgPD0gMyAmJiBjID4+IDMgPT0gMHgxRSkge1xuICAgICAgdGhpcy5jaGFyTGVuZ3RoID0gNDtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICB0aGlzLmNoYXJSZWNlaXZlZCA9IGk7XG59O1xuXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbihidWZmZXIpIHtcbiAgdmFyIHJlcyA9ICcnO1xuICBpZiAoYnVmZmVyICYmIGJ1ZmZlci5sZW5ndGgpXG4gICAgcmVzID0gdGhpcy53cml0ZShidWZmZXIpO1xuXG4gIGlmICh0aGlzLmNoYXJSZWNlaXZlZCkge1xuICAgIHZhciBjciA9IHRoaXMuY2hhclJlY2VpdmVkO1xuICAgIHZhciBidWYgPSB0aGlzLmNoYXJCdWZmZXI7XG4gICAgdmFyIGVuYyA9IHRoaXMuZW5jb2Rpbmc7XG4gICAgcmVzICs9IGJ1Zi5zbGljZSgwLCBjcikudG9TdHJpbmcoZW5jKTtcbiAgfVxuXG4gIHJldHVybiByZXM7XG59O1xuXG5mdW5jdGlvbiBwYXNzVGhyb3VnaFdyaXRlKGJ1ZmZlcikge1xuICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcpO1xufVxuXG5mdW5jdGlvbiB1dGYxNkRldGVjdEluY29tcGxldGVDaGFyKGJ1ZmZlcikge1xuICB0aGlzLmNoYXJSZWNlaXZlZCA9IGJ1ZmZlci5sZW5ndGggJSAyO1xuICB0aGlzLmNoYXJMZW5ndGggPSB0aGlzLmNoYXJSZWNlaXZlZCA/IDIgOiAwO1xufVxuXG5mdW5jdGlvbiBiYXNlNjREZXRlY3RJbmNvbXBsZXRlQ2hhcihidWZmZXIpIHtcbiAgdGhpcy5jaGFyUmVjZWl2ZWQgPSBidWZmZXIubGVuZ3RoICUgMztcbiAgdGhpcy5jaGFyTGVuZ3RoID0gdGhpcy5jaGFyUmVjZWl2ZWQgPyAzIDogMDtcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24geG9yIChhLCBiKSB7XG4gIHZhciBsZW5ndGggPSBNYXRoLm1pbihhLmxlbmd0aCwgYi5sZW5ndGgpXG4gIHZhciBidWZmZXIgPSBuZXcgQnVmZmVyKGxlbmd0aClcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgYnVmZmVyW2ldID0gYVtpXSBeIGJbaV1cbiAgfVxuXG4gIHJldHVybiBidWZmZXJcbn1cbiIsIi8qIVxuICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGZlcm9zc0BmZXJvc3Mub3JnPiA8aHR0cDovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG5cbid1c2Ugc3RyaWN0J1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzYXJyYXknKVxuXG5leHBvcnRzLkJ1ZmZlciA9IEJ1ZmZlclxuZXhwb3J0cy5TbG93QnVmZmVyID0gU2xvd0J1ZmZlclxuZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFUyA9IDUwXG5cbi8qKlxuICogSWYgYEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUYDpcbiAqICAgPT09IHRydWUgICAgVXNlIFVpbnQ4QXJyYXkgaW1wbGVtZW50YXRpb24gKGZhc3Rlc3QpXG4gKiAgID09PSBmYWxzZSAgIFVzZSBPYmplY3QgaW1wbGVtZW50YXRpb24gKG1vc3QgY29tcGF0aWJsZSwgZXZlbiBJRTYpXG4gKlxuICogQnJvd3NlcnMgdGhhdCBzdXBwb3J0IHR5cGVkIGFycmF5cyBhcmUgSUUgMTArLCBGaXJlZm94IDQrLCBDaHJvbWUgNyssIFNhZmFyaSA1LjErLFxuICogT3BlcmEgMTEuNissIGlPUyA0LjIrLlxuICpcbiAqIER1ZSB0byB2YXJpb3VzIGJyb3dzZXIgYnVncywgc29tZXRpbWVzIHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24gd2lsbCBiZSB1c2VkIGV2ZW5cbiAqIHdoZW4gdGhlIGJyb3dzZXIgc3VwcG9ydHMgdHlwZWQgYXJyYXlzLlxuICpcbiAqIE5vdGU6XG4gKlxuICogICAtIEZpcmVmb3ggNC0yOSBsYWNrcyBzdXBwb3J0IGZvciBhZGRpbmcgbmV3IHByb3BlcnRpZXMgdG8gYFVpbnQ4QXJyYXlgIGluc3RhbmNlcyxcbiAqICAgICBTZWU6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTQzOC5cbiAqXG4gKiAgIC0gQ2hyb21lIDktMTAgaXMgbWlzc2luZyB0aGUgYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbi5cbiAqXG4gKiAgIC0gSUUxMCBoYXMgYSBicm9rZW4gYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFycmF5cyBvZlxuICogICAgIGluY29ycmVjdCBsZW5ndGggaW4gc29tZSBzaXR1YXRpb25zLlxuXG4gKiBXZSBkZXRlY3QgdGhlc2UgYnVnZ3kgYnJvd3NlcnMgYW5kIHNldCBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgIHRvIGBmYWxzZWAgc28gdGhleVxuICogZ2V0IHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24sIHdoaWNoIGlzIHNsb3dlciBidXQgYmVoYXZlcyBjb3JyZWN0bHkuXG4gKi9cbkJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUID0gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlQgIT09IHVuZGVmaW5lZFxuICA/IGdsb2JhbC5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gIDogdHlwZWRBcnJheVN1cHBvcnQoKVxuXG4vKlxuICogRXhwb3J0IGtNYXhMZW5ndGggYWZ0ZXIgdHlwZWQgYXJyYXkgc3VwcG9ydCBpcyBkZXRlcm1pbmVkLlxuICovXG5leHBvcnRzLmtNYXhMZW5ndGggPSBrTWF4TGVuZ3RoKClcblxuZnVuY3Rpb24gdHlwZWRBcnJheVN1cHBvcnQgKCkge1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBuZXcgVWludDhBcnJheSgxKVxuICAgIGFyci5fX3Byb3RvX18gPSB7X19wcm90b19fOiBVaW50OEFycmF5LnByb3RvdHlwZSwgZm9vOiBmdW5jdGlvbiAoKSB7IHJldHVybiA0MiB9fVxuICAgIHJldHVybiBhcnIuZm9vKCkgPT09IDQyICYmIC8vIHR5cGVkIGFycmF5IGluc3RhbmNlcyBjYW4gYmUgYXVnbWVudGVkXG4gICAgICAgIHR5cGVvZiBhcnIuc3ViYXJyYXkgPT09ICdmdW5jdGlvbicgJiYgLy8gY2hyb21lIDktMTAgbGFjayBgc3ViYXJyYXlgXG4gICAgICAgIGFyci5zdWJhcnJheSgxLCAxKS5ieXRlTGVuZ3RoID09PSAwIC8vIGllMTAgaGFzIGJyb2tlbiBgc3ViYXJyYXlgXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBrTWF4TGVuZ3RoICgpIHtcbiAgcmV0dXJuIEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gICAgPyAweDdmZmZmZmZmXG4gICAgOiAweDNmZmZmZmZmXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlciAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChrTWF4TGVuZ3RoKCkgPCBsZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCB0eXBlZCBhcnJheSBsZW5ndGgnKVxuICB9XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBuZXcgVWludDhBcnJheShsZW5ndGgpXG4gICAgdGhhdC5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgLy8gRmFsbGJhY2s6IFJldHVybiBhbiBvYmplY3QgaW5zdGFuY2Ugb2YgdGhlIEJ1ZmZlciBjbGFzc1xuICAgIGlmICh0aGF0ID09PSBudWxsKSB7XG4gICAgICB0aGF0ID0gbmV3IEJ1ZmZlcihsZW5ndGgpXG4gICAgfVxuICAgIHRoYXQubGVuZ3RoID0gbGVuZ3RoXG4gIH1cblxuICByZXR1cm4gdGhhdFxufVxuXG4vKipcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgaGF2ZSB0aGVpclxuICogcHJvdG90eXBlIGNoYW5nZWQgdG8gYEJ1ZmZlci5wcm90b3R5cGVgLiBGdXJ0aGVybW9yZSwgYEJ1ZmZlcmAgaXMgYSBzdWJjbGFzcyBvZlxuICogYFVpbnQ4QXJyYXlgLCBzbyB0aGUgcmV0dXJuZWQgaW5zdGFuY2VzIHdpbGwgaGF2ZSBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgbWV0aG9kc1xuICogYW5kIHRoZSBgVWludDhBcnJheWAgbWV0aG9kcy4gU3F1YXJlIGJyYWNrZXQgbm90YXRpb24gd29ya3MgYXMgZXhwZWN0ZWQgLS0gaXRcbiAqIHJldHVybnMgYSBzaW5nbGUgb2N0ZXQuXG4gKlxuICogVGhlIGBVaW50OEFycmF5YCBwcm90b3R5cGUgcmVtYWlucyB1bm1vZGlmaWVkLlxuICovXG5cbmZ1bmN0aW9uIEJ1ZmZlciAoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiAhKHRoaXMgaW5zdGFuY2VvZiBCdWZmZXIpKSB7XG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICAvLyBDb21tb24gY2FzZS5cbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZ09yT2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBhbGxvY1Vuc2FmZSh0aGlzLCBhcmcpXG4gIH1cbiAgcmV0dXJuIGZyb20odGhpcywgYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cbkJ1ZmZlci5wb29sU2l6ZSA9IDgxOTIgLy8gbm90IHVzZWQgYnkgdGhpcyBpbXBsZW1lbnRhdGlvblxuXG4vLyBUT0RPOiBMZWdhY3ksIG5vdCBuZWVkZWQgYW55bW9yZS4gUmVtb3ZlIGluIG5leHQgbWFqb3IgdmVyc2lvbi5cbkJ1ZmZlci5fYXVnbWVudCA9IGZ1bmN0aW9uIChhcnIpIHtcbiAgYXJyLl9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgcmV0dXJuIGFyclxufVxuXG5mdW5jdGlvbiBmcm9tICh0aGF0LCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJ2YWx1ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJylcbiAgfVxuXG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbUFycmF5QnVmZmVyKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0KVxuICB9XG5cbiAgcmV0dXJuIGZyb21PYmplY3QodGhhdCwgdmFsdWUpXG59XG5cbi8qKlxuICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gQnVmZmVyKGFyZywgZW5jb2RpbmcpIGJ1dCB0aHJvd3MgYSBUeXBlRXJyb3JcbiAqIGlmIHZhbHVlIGlzIGEgbnVtYmVyLlxuICogQnVmZmVyLmZyb20oc3RyWywgZW5jb2RpbmddKVxuICogQnVmZmVyLmZyb20oYXJyYXkpXG4gKiBCdWZmZXIuZnJvbShidWZmZXIpXG4gKiBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlclssIGJ5dGVPZmZzZXRbLCBsZW5ndGhdXSlcbiAqKi9cbkJ1ZmZlci5mcm9tID0gZnVuY3Rpb24gKHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGZyb20obnVsbCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gIEJ1ZmZlci5wcm90b3R5cGUuX19wcm90b19fID0gVWludDhBcnJheS5wcm90b3R5cGVcbiAgQnVmZmVyLl9fcHJvdG9fXyA9IFVpbnQ4QXJyYXlcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC5zcGVjaWVzICYmXG4gICAgICBCdWZmZXJbU3ltYm9sLnNwZWNpZXNdID09PSBCdWZmZXIpIHtcbiAgICAvLyBGaXggc3ViYXJyYXkoKSBpbiBFUzIwMTYuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXIvcHVsbC85N1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIsIFN5bWJvbC5zcGVjaWVzLCB7XG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0U2l6ZSAoc2l6ZSkge1xuICBpZiAodHlwZW9mIHNpemUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH0gZWxzZSBpZiAoc2l6ZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBub3QgYmUgbmVnYXRpdmUnKVxuICB9XG59XG5cbmZ1bmN0aW9uIGFsbG9jICh0aGF0LCBzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICBhc3NlcnRTaXplKHNpemUpXG4gIGlmIChzaXplIDw9IDApIHtcbiAgICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpXG4gIH1cbiAgaWYgKGZpbGwgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9ubHkgcGF5IGF0dGVudGlvbiB0byBlbmNvZGluZyBpZiBpdCdzIGEgc3RyaW5nLiBUaGlzXG4gICAgLy8gcHJldmVudHMgYWNjaWRlbnRhbGx5IHNlbmRpbmcgaW4gYSBudW1iZXIgdGhhdCB3b3VsZFxuICAgIC8vIGJlIGludGVycHJldHRlZCBhcyBhIHN0YXJ0IG9mZnNldC5cbiAgICByZXR1cm4gdHlwZW9mIGVuY29kaW5nID09PSAnc3RyaW5nJ1xuICAgICAgPyBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSkuZmlsbChmaWxsLCBlbmNvZGluZylcbiAgICAgIDogY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpLmZpbGwoZmlsbClcbiAgfVxuICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBmaWxsZWQgQnVmZmVyIGluc3RhbmNlLlxuICogYWxsb2Moc2l6ZVssIGZpbGxbLCBlbmNvZGluZ11dKVxuICoqL1xuQnVmZmVyLmFsbG9jID0gZnVuY3Rpb24gKHNpemUsIGZpbGwsIGVuY29kaW5nKSB7XG4gIHJldHVybiBhbGxvYyhudWxsLCBzaXplLCBmaWxsLCBlbmNvZGluZylcbn1cblxuZnVuY3Rpb24gYWxsb2NVbnNhZmUgKHRoYXQsIHNpemUpIHtcbiAgYXNzZXJ0U2l6ZShzaXplKVxuICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUgPCAwID8gMCA6IGNoZWNrZWQoc2l6ZSkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyArK2kpIHtcbiAgICAgIHRoYXRbaV0gPSAwXG4gICAgfVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8qKlxuICogRXF1aXZhbGVudCB0byBCdWZmZXIobnVtKSwgYnkgZGVmYXVsdCBjcmVhdGVzIGEgbm9uLXplcm8tZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS5cbiAqICovXG5CdWZmZXIuYWxsb2NVbnNhZmUgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUobnVsbCwgc2l6ZSlcbn1cbi8qKlxuICogRXF1aXZhbGVudCB0byBTbG93QnVmZmVyKG51bSksIGJ5IGRlZmF1bHQgY3JlYXRlcyBhIG5vbi16ZXJvLWZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKi9cbkJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3cgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUobnVsbCwgc2l6ZSlcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICB9XG5cbiAgaWYgKCFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImVuY29kaW5nXCIgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBlbmNvZGluZycpXG4gIH1cblxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW5ndGgpXG5cbiAgdmFyIGFjdHVhbCA9IHRoYXQud3JpdGUoc3RyaW5nLCBlbmNvZGluZylcblxuICBpZiAoYWN0dWFsICE9PSBsZW5ndGgpIHtcbiAgICAvLyBXcml0aW5nIGEgaGV4IHN0cmluZywgZm9yIGV4YW1wbGUsIHRoYXQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIHdpbGxcbiAgICAvLyBjYXVzZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJzdCBpbnZhbGlkIGNoYXJhY3RlciB0byBiZSBpZ25vcmVkLiAoZS5nLlxuICAgIC8vICdhYnh4Y2QnIHdpbGwgYmUgdHJlYXRlZCBhcyAnYWInKVxuICAgIHRoYXQgPSB0aGF0LnNsaWNlKDAsIGFjdHVhbClcbiAgfVxuXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUxpa2UgKHRoYXQsIGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGggPCAwID8gMCA6IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXlCdWZmZXIgKHRoYXQsIGFycmF5LCBieXRlT2Zmc2V0LCBsZW5ndGgpIHtcbiAgYXJyYXkuYnl0ZUxlbmd0aCAvLyB0aGlzIHRocm93cyBpZiBgYXJyYXlgIGlzIG5vdCBhIHZhbGlkIEFycmF5QnVmZmVyXG5cbiAgaWYgKGJ5dGVPZmZzZXQgPCAwIHx8IGFycmF5LmJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1xcJ29mZnNldFxcJyBpcyBvdXQgb2YgYm91bmRzJylcbiAgfVxuXG4gIGlmIChhcnJheS5ieXRlTGVuZ3RoIDwgYnl0ZU9mZnNldCArIChsZW5ndGggfHwgMCkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXFwnbGVuZ3RoXFwnIGlzIG91dCBvZiBib3VuZHMnKVxuICB9XG5cbiAgaWYgKGJ5dGVPZmZzZXQgPT09IHVuZGVmaW5lZCAmJiBsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXkpXG4gIH0gZWxzZSBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBhcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXksIGJ5dGVPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBhcnJheVxuICAgIHRoYXQuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICB9IGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrOiBSZXR1cm4gYW4gb2JqZWN0IGluc3RhbmNlIG9mIHRoZSBCdWZmZXIgY2xhc3NcbiAgICB0aGF0ID0gZnJvbUFycmF5TGlrZSh0aGF0LCBhcnJheSlcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tT2JqZWN0ICh0aGF0LCBvYmopIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSB7XG4gICAgdmFyIGxlbiA9IGNoZWNrZWQob2JqLmxlbmd0aCkgfCAwXG4gICAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW4pXG5cbiAgICBpZiAodGhhdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGF0XG4gICAgfVxuXG4gICAgb2JqLmNvcHkodGhhdCwgMCwgMCwgbGVuKVxuICAgIHJldHVybiB0aGF0XG4gIH1cblxuICBpZiAob2JqKSB7XG4gICAgaWYgKCh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgIG9iai5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgfHwgJ2xlbmd0aCcgaW4gb2JqKSB7XG4gICAgICBpZiAodHlwZW9mIG9iai5sZW5ndGggIT09ICdudW1iZXInIHx8IGlzbmFuKG9iai5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgMClcbiAgICAgIH1cbiAgICAgIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iailcbiAgICB9XG5cbiAgICBpZiAob2JqLnR5cGUgPT09ICdCdWZmZXInICYmIGlzQXJyYXkob2JqLmRhdGEpKSB7XG4gICAgICByZXR1cm4gZnJvbUFycmF5TGlrZSh0aGF0LCBvYmouZGF0YSlcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCdGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgYXJyYXktbGlrZSBvYmplY3QuJylcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGgoKWAgaGVyZSBiZWNhdXNlIHRoYXQgZmFpbHMgd2hlblxuICAvLyBsZW5ndGggaXMgTmFOICh3aGljaCBpcyBvdGhlcndpc2UgY29lcmNlZCB0byB6ZXJvLilcbiAgaWYgKGxlbmd0aCA+PSBrTWF4TGVuZ3RoKCkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAnc2l6ZTogMHgnICsga01heExlbmd0aCgpLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnKVxuICB9XG4gIHJldHVybiBsZW5ndGggfCAwXG59XG5cbmZ1bmN0aW9uIFNsb3dCdWZmZXIgKGxlbmd0aCkge1xuICBpZiAoK2xlbmd0aCAhPSBsZW5ndGgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBlcWVxZXFcbiAgICBsZW5ndGggPSAwXG4gIH1cbiAgcmV0dXJuIEJ1ZmZlci5hbGxvYygrbGVuZ3RoKVxufVxuXG5CdWZmZXIuaXNCdWZmZXIgPSBmdW5jdGlvbiBpc0J1ZmZlciAoYikge1xuICByZXR1cm4gISEoYiAhPSBudWxsICYmIGIuX2lzQnVmZmVyKVxufVxuXG5CdWZmZXIuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGEsIGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYSkgfHwgIUJ1ZmZlci5pc0J1ZmZlcihiKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGEgPT09IGIpIHJldHVybiAwXG5cbiAgdmFyIHggPSBhLmxlbmd0aFxuICB2YXIgeSA9IGIubGVuZ3RoXG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IE1hdGgubWluKHgsIHkpOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkge1xuICAgICAgeCA9IGFbaV1cbiAgICAgIHkgPSBiW2ldXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICh4IDwgeSkgcmV0dXJuIC0xXG4gIGlmICh5IDwgeCkgcmV0dXJuIDFcbiAgcmV0dXJuIDBcbn1cblxuQnVmZmVyLmlzRW5jb2RpbmcgPSBmdW5jdGlvbiBpc0VuY29kaW5nIChlbmNvZGluZykge1xuICBzd2l0Y2ggKFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2hleCc6XG4gICAgY2FzZSAndXRmOCc6XG4gICAgY2FzZSAndXRmLTgnOlxuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdsYXRpbjEnOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICBjYXNlICd1Y3MyJzpcbiAgICBjYXNlICd1Y3MtMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgcmV0dXJuIHRydWVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQnVmZmVyLmNvbmNhdCA9IGZ1bmN0aW9uIGNvbmNhdCAobGlzdCwgbGVuZ3RoKSB7XG4gIGlmICghaXNBcnJheShsaXN0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpXG4gIH1cblxuICBpZiAobGlzdC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gQnVmZmVyLmFsbG9jKDApXG4gIH1cblxuICB2YXIgaVxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHtcbiAgICAgIGxlbmd0aCArPSBsaXN0W2ldLmxlbmd0aFxuICAgIH1cbiAgfVxuXG4gIHZhciBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUobGVuZ3RoKVxuICB2YXIgcG9zID0gMFxuICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkge1xuICAgIHZhciBidWYgPSBsaXN0W2ldXG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJsaXN0XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJylcbiAgICB9XG4gICAgYnVmLmNvcHkoYnVmZmVyLCBwb3MpXG4gICAgcG9zICs9IGJ1Zi5sZW5ndGhcbiAgfVxuICByZXR1cm4gYnVmZmVyXG59XG5cbmZ1bmN0aW9uIGJ5dGVMZW5ndGggKHN0cmluZywgZW5jb2RpbmcpIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihzdHJpbmcpKSB7XG4gICAgcmV0dXJuIHN0cmluZy5sZW5ndGhcbiAgfVxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3ID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAoQXJyYXlCdWZmZXIuaXNWaWV3KHN0cmluZykgfHwgc3RyaW5nIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKSB7XG4gICAgcmV0dXJuIHN0cmluZy5ieXRlTGVuZ3RoXG4gIH1cbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmdcbiAgfVxuXG4gIHZhciBsZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChsZW4gPT09IDApIHJldHVybiAwXG5cbiAgLy8gVXNlIGEgZm9yIGxvb3AgdG8gYXZvaWQgcmVjdXJzaW9uXG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICBjYXNlICdsYXRpbjEnOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGxlblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gbGVuICogMlxuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGxlbiA+Pj4gMVxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoIC8vIGFzc3VtZSB1dGY4XG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5CdWZmZXIuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGhcblxuZnVuY3Rpb24gc2xvd1RvU3RyaW5nIChlbmNvZGluZywgc3RhcnQsIGVuZCkge1xuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuXG4gIC8vIE5vIG5lZWQgdG8gdmVyaWZ5IHRoYXQgXCJ0aGlzLmxlbmd0aCA8PSBNQVhfVUlOVDMyXCIgc2luY2UgaXQncyBhIHJlYWQtb25seVxuICAvLyBwcm9wZXJ0eSBvZiBhIHR5cGVkIGFycmF5LlxuXG4gIC8vIFRoaXMgYmVoYXZlcyBuZWl0aGVyIGxpa2UgU3RyaW5nIG5vciBVaW50OEFycmF5IGluIHRoYXQgd2Ugc2V0IHN0YXJ0L2VuZFxuICAvLyB0byB0aGVpciB1cHBlci9sb3dlciBib3VuZHMgaWYgdGhlIHZhbHVlIHBhc3NlZCBpcyBvdXQgb2YgcmFuZ2UuXG4gIC8vIHVuZGVmaW5lZCBpcyBoYW5kbGVkIHNwZWNpYWxseSBhcyBwZXIgRUNNQS0yNjIgNnRoIEVkaXRpb24sXG4gIC8vIFNlY3Rpb24gMTMuMy4zLjcgUnVudGltZSBTZW1hbnRpY3M6IEtleWVkQmluZGluZ0luaXRpYWxpemF0aW9uLlxuICBpZiAoc3RhcnQgPT09IHVuZGVmaW5lZCB8fCBzdGFydCA8IDApIHtcbiAgICBzdGFydCA9IDBcbiAgfVxuICAvLyBSZXR1cm4gZWFybHkgaWYgc3RhcnQgPiB0aGlzLmxlbmd0aC4gRG9uZSBoZXJlIHRvIHByZXZlbnQgcG90ZW50aWFsIHVpbnQzMlxuICAvLyBjb2VyY2lvbiBmYWlsIGJlbG93LlxuICBpZiAoc3RhcnQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgfVxuXG4gIGlmIChlbmQgPD0gMCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gRm9yY2UgY29lcnNpb24gdG8gdWludDMyLiBUaGlzIHdpbGwgYWxzbyBjb2VyY2UgZmFsc2V5L05hTiB2YWx1ZXMgdG8gMC5cbiAgZW5kID4+Pj0gMFxuICBzdGFydCA+Pj49IDBcblxuICBpZiAoZW5kIDw9IHN0YXJ0KSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGhleFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgICAgcmV0dXJuIGFzY2lpU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBsYXRpbjFTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoZW5jb2RpbmcgKyAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIHByb3BlcnR5IGlzIHVzZWQgYnkgYEJ1ZmZlci5pc0J1ZmZlcmAgYW5kIGBpcy1idWZmZXJgIChpbiBTYWZhcmkgNS03KSB0byBkZXRlY3Rcbi8vIEJ1ZmZlciBpbnN0YW5jZXMuXG5CdWZmZXIucHJvdG90eXBlLl9pc0J1ZmZlciA9IHRydWVcblxuZnVuY3Rpb24gc3dhcCAoYiwgbiwgbSkge1xuICB2YXIgaSA9IGJbbl1cbiAgYltuXSA9IGJbbV1cbiAgYlttXSA9IGlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwMTYgPSBmdW5jdGlvbiBzd2FwMTYgKCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgaWYgKGxlbiAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMnKVxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDIpIHtcbiAgICBzd2FwKHRoaXMsIGksIGkgKyAxKVxuICB9XG4gIHJldHVybiB0aGlzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc3dhcDMyID0gZnVuY3Rpb24gc3dhcDMyICgpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIGlmIChsZW4gJSA0ICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzJylcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSA0KSB7XG4gICAgc3dhcCh0aGlzLCBpLCBpICsgMylcbiAgICBzd2FwKHRoaXMsIGkgKyAxLCBpICsgMilcbiAgfVxuICByZXR1cm4gdGhpc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnN3YXA2NCA9IGZ1bmN0aW9uIHN3YXA2NCAoKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgOCAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cycpXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gOCkge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDcpXG4gICAgc3dhcCh0aGlzLCBpICsgMSwgaSArIDYpXG4gICAgc3dhcCh0aGlzLCBpICsgMiwgaSArIDUpXG4gICAgc3dhcCh0aGlzLCBpICsgMywgaSArIDQpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nICgpIHtcbiAgdmFyIGxlbmd0aCA9IHRoaXMubGVuZ3RoIHwgMFxuICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gJydcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHJldHVybiB1dGY4U2xpY2UodGhpcywgMCwgbGVuZ3RoKVxuICByZXR1cm4gc2xvd1RvU3RyaW5nLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIHRydWVcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpID09PSAwXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICB2YXIgc3RyID0gJydcbiAgdmFyIG1heCA9IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVNcbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIHN0ciA9IHRoaXMudG9TdHJpbmcoJ2hleCcsIDAsIG1heCkubWF0Y2goLy57Mn0vZykuam9pbignICcpXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbWF4KSBzdHIgKz0gJyAuLi4gJ1xuICB9XG4gIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKHRhcmdldCwgc3RhcnQsIGVuZCwgdGhpc1N0YXJ0LCB0aGlzRW5kKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHRhcmdldCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgfVxuXG4gIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgc3RhcnQgPSAwXG4gIH1cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5kID0gdGFyZ2V0ID8gdGFyZ2V0Lmxlbmd0aCA6IDBcbiAgfVxuICBpZiAodGhpc1N0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzU3RhcnQgPSAwXG4gIH1cbiAgaWYgKHRoaXNFbmQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXNFbmQgPSB0aGlzLmxlbmd0aFxuICB9XG5cbiAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPiB0YXJnZXQubGVuZ3RoIHx8IHRoaXNTdGFydCA8IDAgfHwgdGhpc0VuZCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ291dCBvZiByYW5nZSBpbmRleCcpXG4gIH1cblxuICBpZiAodGhpc1N0YXJ0ID49IHRoaXNFbmQgJiYgc3RhcnQgPj0gZW5kKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBpZiAodGhpc1N0YXJ0ID49IHRoaXNFbmQpIHtcbiAgICByZXR1cm4gLTFcbiAgfVxuICBpZiAoc3RhcnQgPj0gZW5kKSB7XG4gICAgcmV0dXJuIDFcbiAgfVxuXG4gIHN0YXJ0ID4+Pj0gMFxuICBlbmQgPj4+PSAwXG4gIHRoaXNTdGFydCA+Pj49IDBcbiAgdGhpc0VuZCA+Pj49IDBcblxuICBpZiAodGhpcyA9PT0gdGFyZ2V0KSByZXR1cm4gMFxuXG4gIHZhciB4ID0gdGhpc0VuZCAtIHRoaXNTdGFydFxuICB2YXIgeSA9IGVuZCAtIHN0YXJ0XG4gIHZhciBsZW4gPSBNYXRoLm1pbih4LCB5KVxuXG4gIHZhciB0aGlzQ29weSA9IHRoaXMuc2xpY2UodGhpc1N0YXJ0LCB0aGlzRW5kKVxuICB2YXIgdGFyZ2V0Q29weSA9IHRhcmdldC5zbGljZShzdGFydCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAodGhpc0NvcHlbaV0gIT09IHRhcmdldENvcHlbaV0pIHtcbiAgICAgIHggPSB0aGlzQ29weVtpXVxuICAgICAgeSA9IHRhcmdldENvcHlbaV1cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG4vLyBGaW5kcyBlaXRoZXIgdGhlIGZpcnN0IGluZGV4IG9mIGB2YWxgIGluIGBidWZmZXJgIGF0IG9mZnNldCA+PSBgYnl0ZU9mZnNldGAsXG4vLyBPUiB0aGUgbGFzdCBpbmRleCBvZiBgdmFsYCBpbiBgYnVmZmVyYCBhdCBvZmZzZXQgPD0gYGJ5dGVPZmZzZXRgLlxuLy9cbi8vIEFyZ3VtZW50czpcbi8vIC0gYnVmZmVyIC0gYSBCdWZmZXIgdG8gc2VhcmNoXG4vLyAtIHZhbCAtIGEgc3RyaW5nLCBCdWZmZXIsIG9yIG51bWJlclxuLy8gLSBieXRlT2Zmc2V0IC0gYW4gaW5kZXggaW50byBgYnVmZmVyYDsgd2lsbCBiZSBjbGFtcGVkIHRvIGFuIGludDMyXG4vLyAtIGVuY29kaW5nIC0gYW4gb3B0aW9uYWwgZW5jb2RpbmcsIHJlbGV2YW50IGlzIHZhbCBpcyBhIHN0cmluZ1xuLy8gLSBkaXIgLSB0cnVlIGZvciBpbmRleE9mLCBmYWxzZSBmb3IgbGFzdEluZGV4T2ZcbmZ1bmN0aW9uIGJpZGlyZWN0aW9uYWxJbmRleE9mIChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcikge1xuICAvLyBFbXB0eSBidWZmZXIgbWVhbnMgbm8gbWF0Y2hcbiAgaWYgKGJ1ZmZlci5sZW5ndGggPT09IDApIHJldHVybiAtMVxuXG4gIC8vIE5vcm1hbGl6ZSBieXRlT2Zmc2V0XG4gIGlmICh0eXBlb2YgYnl0ZU9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmNvZGluZyA9IGJ5dGVPZmZzZXRcbiAgICBieXRlT2Zmc2V0ID0gMFxuICB9IGVsc2UgaWYgKGJ5dGVPZmZzZXQgPiAweDdmZmZmZmZmKSB7XG4gICAgYnl0ZU9mZnNldCA9IDB4N2ZmZmZmZmZcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgLTB4ODAwMDAwMDApIHtcbiAgICBieXRlT2Zmc2V0ID0gLTB4ODAwMDAwMDBcbiAgfVxuICBieXRlT2Zmc2V0ID0gK2J5dGVPZmZzZXQgIC8vIENvZXJjZSB0byBOdW1iZXIuXG4gIGlmIChpc05hTihieXRlT2Zmc2V0KSkge1xuICAgIC8vIGJ5dGVPZmZzZXQ6IGl0IGl0J3MgdW5kZWZpbmVkLCBudWxsLCBOYU4sIFwiZm9vXCIsIGV0Yywgc2VhcmNoIHdob2xlIGJ1ZmZlclxuICAgIGJ5dGVPZmZzZXQgPSBkaXIgPyAwIDogKGJ1ZmZlci5sZW5ndGggLSAxKVxuICB9XG5cbiAgLy8gTm9ybWFsaXplIGJ5dGVPZmZzZXQ6IG5lZ2F0aXZlIG9mZnNldHMgc3RhcnQgZnJvbSB0aGUgZW5kIG9mIHRoZSBidWZmZXJcbiAgaWYgKGJ5dGVPZmZzZXQgPCAwKSBieXRlT2Zmc2V0ID0gYnVmZmVyLmxlbmd0aCArIGJ5dGVPZmZzZXRcbiAgaWYgKGJ5dGVPZmZzZXQgPj0gYnVmZmVyLmxlbmd0aCkge1xuICAgIGlmIChkaXIpIHJldHVybiAtMVxuICAgIGVsc2UgYnl0ZU9mZnNldCA9IGJ1ZmZlci5sZW5ndGggLSAxXG4gIH0gZWxzZSBpZiAoYnl0ZU9mZnNldCA8IDApIHtcbiAgICBpZiAoZGlyKSBieXRlT2Zmc2V0ID0gMFxuICAgIGVsc2UgcmV0dXJuIC0xXG4gIH1cblxuICAvLyBOb3JtYWxpemUgdmFsXG4gIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIHZhbCA9IEJ1ZmZlci5mcm9tKHZhbCwgZW5jb2RpbmcpXG4gIH1cblxuICAvLyBGaW5hbGx5LCBzZWFyY2ggZWl0aGVyIGluZGV4T2YgKGlmIGRpciBpcyB0cnVlKSBvciBsYXN0SW5kZXhPZlxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbCkpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2U6IGxvb2tpbmcgZm9yIGVtcHR5IHN0cmluZy9idWZmZXIgYWx3YXlzIGZhaWxzXG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAtMVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgdmFsID0gdmFsICYgMHhGRiAvLyBTZWFyY2ggZm9yIGEgYnl0ZSB2YWx1ZSBbMC0yNTVdXG4gICAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUICYmXG4gICAgICAgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAoZGlyKSB7XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZihidWZmZXIsIFsgdmFsIF0sIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG5mdW5jdGlvbiBhcnJheUluZGV4T2YgKGFyciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKSB7XG4gIHZhciBpbmRleFNpemUgPSAxXG4gIHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoXG4gIHZhciB2YWxMZW5ndGggPSB2YWwubGVuZ3RoXG5cbiAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9IFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgIGlmIChlbmNvZGluZyA9PT0gJ3VjczInIHx8IGVuY29kaW5nID09PSAndWNzLTInIHx8XG4gICAgICAgIGVuY29kaW5nID09PSAndXRmMTZsZScgfHwgZW5jb2RpbmcgPT09ICd1dGYtMTZsZScpIHtcbiAgICAgIGlmIChhcnIubGVuZ3RoIDwgMiB8fCB2YWwubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICAgIH1cbiAgICAgIGluZGV4U2l6ZSA9IDJcbiAgICAgIGFyckxlbmd0aCAvPSAyXG4gICAgICB2YWxMZW5ndGggLz0gMlxuICAgICAgYnl0ZU9mZnNldCAvPSAyXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZCAoYnVmLCBpKSB7XG4gICAgaWYgKGluZGV4U2l6ZSA9PT0gMSkge1xuICAgICAgcmV0dXJuIGJ1ZltpXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYnVmLnJlYWRVSW50MTZCRShpICogaW5kZXhTaXplKVxuICAgIH1cbiAgfVxuXG4gIHZhciBpXG4gIGlmIChkaXIpIHtcbiAgICB2YXIgZm91bmRJbmRleCA9IC0xXG4gICAgZm9yIChpID0gYnl0ZU9mZnNldDsgaSA8IGFyckxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmVhZChhcnIsIGkpID09PSByZWFkKHZhbCwgZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXgpKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsTGVuZ3RoKSByZXR1cm4gZm91bmRJbmRleCAqIGluZGV4U2l6ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSBpIC09IGkgLSBmb3VuZEluZGV4XG4gICAgICAgIGZvdW5kSW5kZXggPSAtMVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoYnl0ZU9mZnNldCArIHZhbExlbmd0aCA+IGFyckxlbmd0aCkgYnl0ZU9mZnNldCA9IGFyckxlbmd0aCAtIHZhbExlbmd0aFxuICAgIGZvciAoaSA9IGJ5dGVPZmZzZXQ7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgZm91bmQgPSB0cnVlXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHZhbExlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmIChyZWFkKGFyciwgaSArIGopICE9PSByZWFkKHZhbCwgaikpIHtcbiAgICAgICAgICBmb3VuZCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gaVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAtMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluY2x1ZGVzID0gZnVuY3Rpb24gaW5jbHVkZXMgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIHRoaXMuaW5kZXhPZih2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSAhPT0gLTFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24gaW5kZXhPZiAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykge1xuICByZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgdHJ1ZSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9IGZ1bmN0aW9uIGxhc3RJbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7XG4gIHJldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBmYWxzZSlcbn1cblxuZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICBvZmZzZXQgPSBOdW1iZXIob2Zmc2V0KSB8fCAwXG4gIHZhciByZW1haW5pbmcgPSBidWYubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aClcbiAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7XG4gICAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgICB9XG4gIH1cblxuICAvLyBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGRpZ2l0c1xuICB2YXIgc3RyTGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAoc3RyTGVuICUgMiAhPT0gMCkgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcblxuICBpZiAobGVuZ3RoID4gc3RyTGVuIC8gMikge1xuICAgIGxlbmd0aCA9IHN0ckxlbiAvIDJcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgdmFyIHBhcnNlZCA9IHBhcnNlSW50KHN0cmluZy5zdWJzdHIoaSAqIDIsIDIpLCAxNilcbiAgICBpZiAoaXNOYU4ocGFyc2VkKSkgcmV0dXJuIGlcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSBwYXJzZWRcbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiB1dGY4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBhc2NpaVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYXNjaWlUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGxhdGluMVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGFzY2lpV3JpdGUoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gdWNzMldyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykge1xuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKVxuICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIG9mZnNldFssIGxlbmd0aF1bLCBlbmNvZGluZ10pXG4gIH0gZWxzZSBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgICBpZiAoaXNGaW5pdGUobGVuZ3RoKSkge1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoIHwgMFxuICAgICAgaWYgKGVuY29kaW5nID09PSB1bmRlZmluZWQpIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgfSBlbHNlIHtcbiAgICAgIGVuY29kaW5nID0gbGVuZ3RoXG4gICAgICBsZW5ndGggPSB1bmRlZmluZWRcbiAgICB9XG4gIC8vIGxlZ2FjeSB3cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXQsIGxlbmd0aCkgLSByZW1vdmUgaW4gdjAuMTNcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQnXG4gICAgKVxuICB9XG5cbiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBsZW5ndGggPiByZW1haW5pbmcpIGxlbmd0aCA9IHJlbWFpbmluZ1xuXG4gIGlmICgoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzJylcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGF0aW4xV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgLy8gV2FybmluZzogbWF4TGVuZ3RoIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4gYmFzZTY0V3JpdGVcbiAgICAgICAgcmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1Y3MyV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQnVmZmVyJyxcbiAgICBkYXRhOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnIgfHwgdGhpcywgMClcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGlmIChzdGFydCA9PT0gMCAmJiBlbmQgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYuc2xpY2Uoc3RhcnQsIGVuZCkpXG4gIH1cbn1cblxuZnVuY3Rpb24gdXRmOFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuICB2YXIgcmVzID0gW11cblxuICB2YXIgaSA9IHN0YXJ0XG4gIHdoaWxlIChpIDwgZW5kKSB7XG4gICAgdmFyIGZpcnN0Qnl0ZSA9IGJ1ZltpXVxuICAgIHZhciBjb2RlUG9pbnQgPSBudWxsXG4gICAgdmFyIGJ5dGVzUGVyU2VxdWVuY2UgPSAoZmlyc3RCeXRlID4gMHhFRikgPyA0XG4gICAgICA6IChmaXJzdEJ5dGUgPiAweERGKSA/IDNcbiAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4QkYpID8gMlxuICAgICAgOiAxXG5cbiAgICBpZiAoaSArIGJ5dGVzUGVyU2VxdWVuY2UgPD0gZW5kKSB7XG4gICAgICB2YXIgc2Vjb25kQnl0ZSwgdGhpcmRCeXRlLCBmb3VydGhCeXRlLCB0ZW1wQ29kZVBvaW50XG5cbiAgICAgIHN3aXRjaCAoYnl0ZXNQZXJTZXF1ZW5jZSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDB4ODApIHtcbiAgICAgICAgICAgIGNvZGVQb2ludCA9IGZpcnN0Qnl0ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweDFGKSA8PCAweDYgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4N0YpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4RikgPDwgMHhDIHwgKHNlY29uZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAodGhpcmRCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3RkYgJiYgKHRlbXBDb2RlUG9pbnQgPCAweEQ4MDAgfHwgdGVtcENvZGVQb2ludCA+IDB4REZGRikpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgZm91cnRoQnl0ZSA9IGJ1ZltpICsgM11cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAodGhpcmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKGZvdXJ0aEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweEYpIDw8IDB4MTIgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4QyB8ICh0aGlyZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAoZm91cnRoQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4RkZGRiAmJiB0ZW1wQ29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29kZVBvaW50ID09PSBudWxsKSB7XG4gICAgICAvLyB3ZSBkaWQgbm90IGdlbmVyYXRlIGEgdmFsaWQgY29kZVBvaW50IHNvIGluc2VydCBhXG4gICAgICAvLyByZXBsYWNlbWVudCBjaGFyIChVK0ZGRkQpIGFuZCBhZHZhbmNlIG9ubHkgMSBieXRlXG4gICAgICBjb2RlUG9pbnQgPSAweEZGRkRcbiAgICAgIGJ5dGVzUGVyU2VxdWVuY2UgPSAxXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPiAweEZGRkYpIHtcbiAgICAgIC8vIGVuY29kZSB0byB1dGYxNiAoc3Vycm9nYXRlIHBhaXIgZGFuY2UpXG4gICAgICBjb2RlUG9pbnQgLT0gMHgxMDAwMFxuICAgICAgcmVzLnB1c2goY29kZVBvaW50ID4+PiAxMCAmIDB4M0ZGIHwgMHhEODAwKVxuICAgICAgY29kZVBvaW50ID0gMHhEQzAwIHwgY29kZVBvaW50ICYgMHgzRkZcbiAgICB9XG5cbiAgICByZXMucHVzaChjb2RlUG9pbnQpXG4gICAgaSArPSBieXRlc1BlclNlcXVlbmNlXG4gIH1cblxuICByZXR1cm4gZGVjb2RlQ29kZVBvaW50c0FycmF5KHJlcylcbn1cblxuLy8gQmFzZWQgb24gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjI3NDcyNzIvNjgwNzQyLCB0aGUgYnJvd3NlciB3aXRoXG4vLyB0aGUgbG93ZXN0IGxpbWl0IGlzIENocm9tZSwgd2l0aCAweDEwMDAwIGFyZ3MuXG4vLyBXZSBnbyAxIG1hZ25pdHVkZSBsZXNzLCBmb3Igc2FmZXR5XG52YXIgTUFYX0FSR1VNRU5UU19MRU5HVEggPSAweDEwMDBcblxuZnVuY3Rpb24gZGVjb2RlQ29kZVBvaW50c0FycmF5IChjb2RlUG9pbnRzKSB7XG4gIHZhciBsZW4gPSBjb2RlUG9pbnRzLmxlbmd0aFxuICBpZiAobGVuIDw9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBjb2RlUG9pbnRzKSAvLyBhdm9pZCBleHRyYSBzbGljZSgpXG4gIH1cblxuICAvLyBEZWNvZGUgaW4gY2h1bmtzIHRvIGF2b2lkIFwiY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkXCIuXG4gIHZhciByZXMgPSAnJ1xuICB2YXIgaSA9IDBcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShcbiAgICAgIFN0cmluZyxcbiAgICAgIGNvZGVQb2ludHMuc2xpY2UoaSwgaSArPSBNQVhfQVJHVU1FTlRTX0xFTkdUSClcbiAgICApXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSAmIDB4N0YpXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBsYXRpbjFTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBoZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG5cbiAgaWYgKCFzdGFydCB8fCBzdGFydCA8IDApIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCB8fCBlbmQgPCAwIHx8IGVuZCA+IGxlbikgZW5kID0gbGVuXG5cbiAgdmFyIG91dCA9ICcnXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgb3V0ICs9IHRvSGV4KGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBieXRlcyA9IGJ1Zi5zbGljZShzdGFydCwgZW5kKVxuICB2YXIgcmVzID0gJydcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldICsgYnl0ZXNbaSArIDFdICogMjU2KVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uIHNsaWNlIChzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBzdGFydCA9IH5+c3RhcnRcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiB+fmVuZFxuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCArPSBsZW5cbiAgICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgfSBlbHNlIGlmIChzdGFydCA+IGxlbikge1xuICAgIHN0YXJ0ID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5cbiAgICBpZiAoZW5kIDwgMCkgZW5kID0gMFxuICB9IGVsc2UgaWYgKGVuZCA+IGxlbikge1xuICAgIGVuZCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIHZhciBuZXdCdWZcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgbmV3QnVmID0gdGhpcy5zdWJhcnJheShzdGFydCwgZW5kKVxuICAgIG5ld0J1Zi5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgdmFyIHNsaWNlTGVuID0gZW5kIC0gc3RhcnRcbiAgICBuZXdCdWYgPSBuZXcgQnVmZmVyKHNsaWNlTGVuLCB1bmRlZmluZWQpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUxlbjsgKytpKSB7XG4gICAgICBuZXdCdWZbaV0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3QnVmXG59XG5cbi8qXG4gKiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGJ1ZmZlciBpc24ndCB0cnlpbmcgdG8gd3JpdGUgb3V0IG9mIGJvdW5kcy5cbiAqL1xuZnVuY3Rpb24gY2hlY2tPZmZzZXQgKG9mZnNldCwgZXh0LCBsZW5ndGgpIHtcbiAgaWYgKChvZmZzZXQgJSAxKSAhPT0gMCB8fCBvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb2Zmc2V0IGlzIG5vdCB1aW50JylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEUgPSBmdW5jdGlvbiByZWFkVUludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50QkUgPSBmdW5jdGlvbiByZWFkVUludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuICB9XG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXVxuICB2YXIgbXVsID0gMVxuICB3aGlsZSAoYnl0ZUxlbmd0aCA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4ID0gZnVuY3Rpb24gcmVhZFVJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEUgPSBmdW5jdGlvbiByZWFkVUludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkJFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDgpIHwgdGhpc1tvZmZzZXQgKyAxXVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAoKHRoaXNbb2Zmc2V0XSkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpKSArXG4gICAgICAodGhpc1tvZmZzZXQgKyAzXSAqIDB4MTAwMDAwMClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyQkUgPSBmdW5jdGlvbiByZWFkVUludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSAqIDB4MTAwMDAwMCkgK1xuICAgICgodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICB0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRMRSA9IGZ1bmN0aW9uIHJlYWRJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRCRSA9IGZ1bmN0aW9uIHJlYWRJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aFxuICB2YXIgbXVsID0gMVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWldXG4gIHdoaWxlIChpID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0taV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQ4ID0gZnVuY3Rpb24gcmVhZEludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgaWYgKCEodGhpc1tvZmZzZXRdICYgMHg4MCkpIHJldHVybiAodGhpc1tvZmZzZXRdKVxuICByZXR1cm4gKCgweGZmIC0gdGhpc1tvZmZzZXRdICsgMSkgKiAtMSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2QkUgPSBmdW5jdGlvbiByZWFkSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAxXSB8ICh0aGlzW29mZnNldF0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFID0gZnVuY3Rpb24gcmVhZEludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDNdIDw8IDI0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFID0gZnVuY3Rpb24gcmVhZEludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCAyNCkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdExFID0gZnVuY3Rpb24gcmVhZEZsb2F0TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFID0gZnVuY3Rpb24gcmVhZEZsb2F0QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlTEUgPSBmdW5jdGlvbiByZWFkRG91YmxlTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDUyLCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDUyLCA4KVxufVxuXG5mdW5jdGlvbiBjaGVja0ludCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiYnVmZmVyXCIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpXG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1widmFsdWVcIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludExFID0gZnVuY3Rpb24gd3JpdGVVSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbWF4Qnl0ZXMgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCkgLSAxXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbWF4Qnl0ZXMsIDApXG4gIH1cblxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludEJFID0gZnVuY3Rpb24gd3JpdGVVSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbWF4Qnl0ZXMgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCkgLSAxXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbWF4Qnl0ZXMsIDApXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDggPSBmdW5jdGlvbiB3cml0ZVVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4ZmYsIDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MTYgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgMik7IGkgPCBqOyArK2kpIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgJiAoMHhmZiA8PCAoOCAqIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpKSkpID4+PlxuICAgICAgKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkgKiA4XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MzIgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDQpOyBpIDwgajsgKytpKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlID4+PiAobGl0dGxlRW5kaWFuID8gaSA6IDMgLSBpKSAqIDgpICYgMHhmZlxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludExFID0gZnVuY3Rpb24gd3JpdGVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IDBcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgaWYgKHZhbHVlIDwgMCAmJiBzdWIgPT09IDAgJiYgdGhpc1tvZmZzZXQgKyBpIC0gMV0gIT09IDApIHtcbiAgICAgIHN1YiA9IDFcbiAgICB9XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFID0gZnVuY3Rpb24gd3JpdGVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSAwXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgaWYgKHZhbHVlIDwgMCAmJiBzdWIgPT09IDAgJiYgdGhpc1tvZmZzZXQgKyBpICsgMV0gIT09IDApIHtcbiAgICAgIHN1YiA9IDFcbiAgICB9XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDggPSBmdW5jdGlvbiB3cml0ZUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHg3ZiwgLTB4ODApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmICsgdmFsdWUgKyAxXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbmZ1bmN0aW9uIGNoZWNrSUVFRTc1NCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbiAgaWYgKG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5mdW5jdGlvbiB3cml0ZUZsb2F0IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDQsIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgsIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDIzLCA0KVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdEJFID0gZnVuY3Rpb24gd3JpdGVGbG9hdEJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRG91YmxlIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDgsIDEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4LCAtMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgNTIsIDgpXG4gIHJldHVybiBvZmZzZXQgKyA4XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVMRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUJFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuLy8gY29weSh0YXJnZXRCdWZmZXIsIHRhcmdldFN0YXJ0PTAsIHNvdXJjZVN0YXJ0PTAsIHNvdXJjZUVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gY29weSAodGFyZ2V0LCB0YXJnZXRTdGFydCwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXN0YXJ0KSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgJiYgZW5kICE9PSAwKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0U3RhcnQgPj0gdGFyZ2V0Lmxlbmd0aCkgdGFyZ2V0U3RhcnQgPSB0YXJnZXQubGVuZ3RoXG4gIGlmICghdGFyZ2V0U3RhcnQpIHRhcmdldFN0YXJ0ID0gMFxuICBpZiAoZW5kID4gMCAmJiBlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICAvLyBDb3B5IDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVybiAwXG4gIGlmICh0YXJnZXQubGVuZ3RoID09PSAwIHx8IHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gMFxuXG4gIC8vIEZhdGFsIGVycm9yIGNvbmRpdGlvbnNcbiAgaWYgKHRhcmdldFN0YXJ0IDwgMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgfVxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID49IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChlbmQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlRW5kIG91dCBvZiBib3VuZHMnKVxuXG4gIC8vIEFyZSB3ZSBvb2I/XG4gIGlmIChlbmQgPiB0aGlzLmxlbmd0aCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCA8IGVuZCAtIHN0YXJ0KSB7XG4gICAgZW5kID0gdGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0ICsgc3RhcnRcbiAgfVxuXG4gIHZhciBsZW4gPSBlbmQgLSBzdGFydFxuICB2YXIgaVxuXG4gIGlmICh0aGlzID09PSB0YXJnZXQgJiYgc3RhcnQgPCB0YXJnZXRTdGFydCAmJiB0YXJnZXRTdGFydCA8IGVuZCkge1xuICAgIC8vIGRlc2NlbmRpbmcgY29weSBmcm9tIGVuZFxuICAgIGZvciAoaSA9IGxlbiAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfSBlbHNlIGlmIChsZW4gPCAxMDAwIHx8ICFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIGFzY2VuZGluZyBjb3B5IGZyb20gc3RhcnRcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0U3RhcnRdID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKFxuICAgICAgdGFyZ2V0LFxuICAgICAgdGhpcy5zdWJhcnJheShzdGFydCwgc3RhcnQgKyBsZW4pLFxuICAgICAgdGFyZ2V0U3RhcnRcbiAgICApXG4gIH1cblxuICByZXR1cm4gbGVuXG59XG5cbi8vIFVzYWdlOlxuLy8gICAgYnVmZmVyLmZpbGwobnVtYmVyWywgb2Zmc2V0WywgZW5kXV0pXG4vLyAgICBidWZmZXIuZmlsbChidWZmZXJbLCBvZmZzZXRbLCBlbmRdXSlcbi8vICAgIGJ1ZmZlci5maWxsKHN0cmluZ1ssIG9mZnNldFssIGVuZF1dWywgZW5jb2RpbmddKVxuQnVmZmVyLnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gZmlsbCAodmFsLCBzdGFydCwgZW5kLCBlbmNvZGluZykge1xuICAvLyBIYW5kbGUgc3RyaW5nIGNhc2VzOlxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodHlwZW9mIHN0YXJ0ID09PSAnc3RyaW5nJykge1xuICAgICAgZW5jb2RpbmcgPSBzdGFydFxuICAgICAgc3RhcnQgPSAwXG4gICAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVuZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVuY29kaW5nID0gZW5kXG4gICAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICAgIH1cbiAgICBpZiAodmFsLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdmFyIGNvZGUgPSB2YWwuY2hhckNvZGVBdCgwKVxuICAgICAgaWYgKGNvZGUgPCAyNTYpIHtcbiAgICAgICAgdmFsID0gY29kZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5jb2RpbmcgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZycgJiYgIUJ1ZmZlci5pc0VuY29kaW5nKGVuY29kaW5nKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHZhbCA9IHZhbCAmIDI1NVxuICB9XG5cbiAgLy8gSW52YWxpZCByYW5nZXMgYXJlIG5vdCBzZXQgdG8gYSBkZWZhdWx0LCBzbyBjYW4gcmFuZ2UgY2hlY2sgZWFybHkuXG4gIGlmIChzdGFydCA8IDAgfHwgdGhpcy5sZW5ndGggPCBzdGFydCB8fCB0aGlzLmxlbmd0aCA8IGVuZCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdPdXQgb2YgcmFuZ2UgaW5kZXgnKVxuICB9XG5cbiAgaWYgKGVuZCA8PSBzdGFydCkge1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzdGFydCA9IHN0YXJ0ID4+PiAwXG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gdGhpcy5sZW5ndGggOiBlbmQgPj4+IDBcblxuICBpZiAoIXZhbCkgdmFsID0gMFxuXG4gIHZhciBpXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICAgIHRoaXNbaV0gPSB2YWxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJ5dGVzID0gQnVmZmVyLmlzQnVmZmVyKHZhbClcbiAgICAgID8gdmFsXG4gICAgICA6IHV0ZjhUb0J5dGVzKG5ldyBCdWZmZXIodmFsLCBlbmNvZGluZykudG9TdHJpbmcoKSlcbiAgICB2YXIgbGVuID0gYnl0ZXMubGVuZ3RoXG4gICAgZm9yIChpID0gMDsgaSA8IGVuZCAtIHN0YXJ0OyArK2kpIHtcbiAgICAgIHRoaXNbaSArIHN0YXJ0XSA9IGJ5dGVzW2kgJSBsZW5dXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PVxuXG52YXIgSU5WQUxJRF9CQVNFNjRfUkUgPSAvW14rXFwvMC05QS1aYS16LV9dL2dcblxuZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikge1xuICAvLyBOb2RlIHN0cmlwcyBvdXQgaW52YWxpZCBjaGFyYWN0ZXJzIGxpa2UgXFxuIGFuZCBcXHQgZnJvbSB0aGUgc3RyaW5nLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgc3RyID0gc3RyaW5ndHJpbShzdHIpLnJlcGxhY2UoSU5WQUxJRF9CQVNFNjRfUkUsICcnKVxuICAvLyBOb2RlIGNvbnZlcnRzIHN0cmluZ3Mgd2l0aCBsZW5ndGggPCAyIHRvICcnXG4gIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnXG4gIC8vIE5vZGUgYWxsb3dzIGZvciBub24tcGFkZGVkIGJhc2U2NCBzdHJpbmdzIChtaXNzaW5nIHRyYWlsaW5nID09PSksIGJhc2U2NC1qcyBkb2VzIG5vdFxuICB3aGlsZSAoc3RyLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICBzdHIgPSBzdHIgKyAnPSdcbiAgfVxuICByZXR1cm4gc3RyXG59XG5cbmZ1bmN0aW9uIHN0cmluZ3RyaW0gKHN0cikge1xuICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpXG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG59XG5cbmZ1bmN0aW9uIHRvSGV4IChuKSB7XG4gIGlmIChuIDwgMTYpIHJldHVybiAnMCcgKyBuLnRvU3RyaW5nKDE2KVxuICByZXR1cm4gbi50b1N0cmluZygxNilcbn1cblxuZnVuY3Rpb24gdXRmOFRvQnl0ZXMgKHN0cmluZywgdW5pdHMpIHtcbiAgdW5pdHMgPSB1bml0cyB8fCBJbmZpbml0eVxuICB2YXIgY29kZVBvaW50XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoXG4gIHZhciBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICB2YXIgYnl0ZXMgPSBbXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBjb2RlUG9pbnQgPSBzdHJpbmcuY2hhckNvZGVBdChpKVxuXG4gICAgLy8gaXMgc3Vycm9nYXRlIGNvbXBvbmVudFxuICAgIGlmIChjb2RlUG9pbnQgPiAweEQ3RkYgJiYgY29kZVBvaW50IDwgMHhFMDAwKSB7XG4gICAgICAvLyBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKCFsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAgIC8vIG5vIGxlYWQgeWV0XG4gICAgICAgIGlmIChjb2RlUG9pbnQgPiAweERCRkYpIHtcbiAgICAgICAgICAvLyB1bmV4cGVjdGVkIHRyYWlsXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIGlmIChpICsgMSA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgLy8gdW5wYWlyZWQgbGVhZFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cblxuICAgICAgICAvLyB2YWxpZCBsZWFkXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyAyIGxlYWRzIGluIGEgcm93XG4gICAgICBpZiAoY29kZVBvaW50IDwgMHhEQzAwKSB7XG4gICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICBjb2RlUG9pbnQgPSAobGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCA8PCAxMCB8IGNvZGVQb2ludCAtIDB4REMwMCkgKyAweDEwMDAwXG4gICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAvLyB2YWxpZCBibXAgY2hhciwgYnV0IGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICB9XG5cbiAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuXG4gICAgLy8gZW5jb2RlIHV0ZjhcbiAgICBpZiAoY29kZVBvaW50IDwgMHg4MCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAxKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKGNvZGVQb2ludClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4ODAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgfCAweEMwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAzKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDIHwgMHhFMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gNCkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4MTIgfCAweEYwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVRvQnl0ZXMgKHN0cikge1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpIHtcbiAgICAvLyBOb2RlJ3MgY29kZSBzZWVtcyB0byBiZSBkb2luZyB0aGlzIGFuZCBub3QgJiAweDdGLi5cbiAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSAmIDB4RkYpXG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyAoc3RyLCB1bml0cykge1xuICB2YXIgYywgaGksIGxvXG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkge1xuICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuXG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSlcbn1cblxuZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoKGkgKyBvZmZzZXQgPj0gZHN0Lmxlbmd0aCkgfHwgKGkgPj0gc3JjLmxlbmd0aCkpIGJyZWFrXG4gICAgZHN0W2kgKyBvZmZzZXRdID0gc3JjW2ldXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gaXNuYW4gKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSB2YWwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zZWxmLWNvbXBhcmVcbn1cbiIsInZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxudmFyIFRyYW5zZm9ybSA9IHJlcXVpcmUoJ3N0cmVhbScpLlRyYW5zZm9ybVxudmFyIFN0cmluZ0RlY29kZXIgPSByZXF1aXJlKCdzdHJpbmdfZGVjb2RlcicpLlN0cmluZ0RlY29kZXJcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcblxuZnVuY3Rpb24gQ2lwaGVyQmFzZSAoaGFzaE1vZGUpIHtcbiAgVHJhbnNmb3JtLmNhbGwodGhpcylcbiAgdGhpcy5oYXNoTW9kZSA9IHR5cGVvZiBoYXNoTW9kZSA9PT0gJ3N0cmluZydcbiAgaWYgKHRoaXMuaGFzaE1vZGUpIHtcbiAgICB0aGlzW2hhc2hNb2RlXSA9IHRoaXMuX2ZpbmFsT3JEaWdlc3RcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmZpbmFsID0gdGhpcy5fZmluYWxPckRpZ2VzdFxuICB9XG4gIGlmICh0aGlzLl9maW5hbCkge1xuICAgIHRoaXMuX19maW5hbCA9IHRoaXMuX2ZpbmFsXG4gICAgdGhpcy5fZmluYWwgPSBudWxsXG4gIH1cbiAgdGhpcy5fZGVjb2RlciA9IG51bGxcbiAgdGhpcy5fZW5jb2RpbmcgPSBudWxsXG59XG5pbmhlcml0cyhDaXBoZXJCYXNlLCBUcmFuc2Zvcm0pXG5cbkNpcGhlckJhc2UucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhLCBpbnB1dEVuYywgb3V0cHV0RW5jKSB7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRhID0gQnVmZmVyLmZyb20oZGF0YSwgaW5wdXRFbmMpXG4gIH1cblxuICB2YXIgb3V0RGF0YSA9IHRoaXMuX3VwZGF0ZShkYXRhKVxuICBpZiAodGhpcy5oYXNoTW9kZSkgcmV0dXJuIHRoaXNcblxuICBpZiAob3V0cHV0RW5jKSB7XG4gICAgb3V0RGF0YSA9IHRoaXMuX3RvU3RyaW5nKG91dERhdGEsIG91dHB1dEVuYylcbiAgfVxuXG4gIHJldHVybiBvdXREYXRhXG59XG5cbkNpcGhlckJhc2UucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nID0gZnVuY3Rpb24gKCkge31cbkNpcGhlckJhc2UucHJvdG90eXBlLmdldEF1dGhUYWcgPSBmdW5jdGlvbiAoKSB7XG4gIHRocm93IG5ldyBFcnJvcigndHJ5aW5nIHRvIGdldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZScpXG59XG5cbkNpcGhlckJhc2UucHJvdG90eXBlLnNldEF1dGhUYWcgPSBmdW5jdGlvbiAoKSB7XG4gIHRocm93IG5ldyBFcnJvcigndHJ5aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZScpXG59XG5cbkNpcGhlckJhc2UucHJvdG90eXBlLnNldEFBRCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCd0cnlpbmcgdG8gc2V0IGFhZCBpbiB1bnN1cHBvcnRlZCBzdGF0ZScpXG59XG5cbkNpcGhlckJhc2UucHJvdG90eXBlLl90cmFuc2Zvcm0gPSBmdW5jdGlvbiAoZGF0YSwgXywgbmV4dCkge1xuICB2YXIgZXJyXG4gIHRyeSB7XG4gICAgaWYgKHRoaXMuaGFzaE1vZGUpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZShkYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnB1c2godGhpcy5fdXBkYXRlKGRhdGEpKVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGVyciA9IGVcbiAgfSBmaW5hbGx5IHtcbiAgICBuZXh0KGVycilcbiAgfVxufVxuQ2lwaGVyQmFzZS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24gKGRvbmUpIHtcbiAgdmFyIGVyclxuICB0cnkge1xuICAgIHRoaXMucHVzaCh0aGlzLl9fZmluYWwoKSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIGVyciA9IGVcbiAgfVxuXG4gIGRvbmUoZXJyKVxufVxuQ2lwaGVyQmFzZS5wcm90b3R5cGUuX2ZpbmFsT3JEaWdlc3QgPSBmdW5jdGlvbiAob3V0cHV0RW5jKSB7XG4gIHZhciBvdXREYXRhID0gdGhpcy5fX2ZpbmFsKCkgfHwgQnVmZmVyLmFsbG9jKDApXG4gIGlmIChvdXRwdXRFbmMpIHtcbiAgICBvdXREYXRhID0gdGhpcy5fdG9TdHJpbmcob3V0RGF0YSwgb3V0cHV0RW5jLCB0cnVlKVxuICB9XG4gIHJldHVybiBvdXREYXRhXG59XG5cbkNpcGhlckJhc2UucHJvdG90eXBlLl90b1N0cmluZyA9IGZ1bmN0aW9uICh2YWx1ZSwgZW5jLCBmaW4pIHtcbiAgaWYgKCF0aGlzLl9kZWNvZGVyKSB7XG4gICAgdGhpcy5fZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKGVuYylcbiAgICB0aGlzLl9lbmNvZGluZyA9IGVuY1xuICB9XG5cbiAgaWYgKHRoaXMuX2VuY29kaW5nICE9PSBlbmMpIHRocm93IG5ldyBFcnJvcignY2FuXFwndCBzd2l0Y2ggZW5jb2RpbmdzJylcblxuICB2YXIgb3V0ID0gdGhpcy5fZGVjb2Rlci53cml0ZSh2YWx1ZSlcbiAgaWYgKGZpbikge1xuICAgIG91dCArPSB0aGlzLl9kZWNvZGVyLmVuZCgpXG4gIH1cblxuICByZXR1cm4gb3V0XG59XG5cbm1vZHVsZS5leHBvcnRzID0gQ2lwaGVyQmFzZVxuIiwiXHJcbi8qKlxyXG4gKiBFeHBvc2UgYEVtaXR0ZXJgLlxyXG4gKi9cclxuXHJcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xyXG4gIG1vZHVsZS5leHBvcnRzID0gRW1pdHRlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEluaXRpYWxpemUgYSBuZXcgYEVtaXR0ZXJgLlxyXG4gKlxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIEVtaXR0ZXIob2JqKSB7XHJcbiAgaWYgKG9iaikgcmV0dXJuIG1peGluKG9iaik7XHJcbn07XHJcblxyXG4vKipcclxuICogTWl4aW4gdGhlIGVtaXR0ZXIgcHJvcGVydGllcy5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IG9ialxyXG4gKiBAcmV0dXJuIHtPYmplY3R9XHJcbiAqIEBhcGkgcHJpdmF0ZVxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIG1peGluKG9iaikge1xyXG4gIGZvciAodmFyIGtleSBpbiBFbWl0dGVyLnByb3RvdHlwZSkge1xyXG4gICAgb2JqW2tleV0gPSBFbWl0dGVyLnByb3RvdHlwZVtrZXldO1xyXG4gIH1cclxuICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG4vKipcclxuICogTGlzdGVuIG9uIHRoZSBnaXZlbiBgZXZlbnRgIHdpdGggYGZuYC5cclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXHJcbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUub24gPVxyXG5FbWl0dGVyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcclxuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XHJcbiAgKHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF0gPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdIHx8IFtdKVxyXG4gICAgLnB1c2goZm4pO1xyXG4gIHJldHVybiB0aGlzO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEFkZHMgYW4gYGV2ZW50YCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBhIHNpbmdsZVxyXG4gKiB0aW1lIHRoZW4gYXV0b21hdGljYWxseSByZW1vdmVkLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cclxuICogQHJldHVybiB7RW1pdHRlcn1cclxuICogQGFwaSBwdWJsaWNcclxuICovXHJcblxyXG5FbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcclxuICBmdW5jdGlvbiBvbigpIHtcclxuICAgIHRoaXMub2ZmKGV2ZW50LCBvbik7XHJcbiAgICBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gIH1cclxuXHJcbiAgb24uZm4gPSBmbjtcclxuICB0aGlzLm9uKGV2ZW50LCBvbik7XHJcbiAgcmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBnaXZlbiBjYWxsYmFjayBmb3IgYGV2ZW50YCBvciBhbGxcclxuICogcmVnaXN0ZXJlZCBjYWxsYmFja3MuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxyXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbkVtaXR0ZXIucHJvdG90eXBlLm9mZiA9XHJcbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cclxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cclxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKGV2ZW50LCBmbil7XHJcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xyXG5cclxuICAvLyBhbGxcclxuICBpZiAoMCA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICB0aGlzLl9jYWxsYmFja3MgPSB7fTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLy8gc3BlY2lmaWMgZXZlbnRcclxuICB2YXIgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XTtcclxuICBpZiAoIWNhbGxiYWNrcykgcmV0dXJuIHRoaXM7XHJcblxyXG4gIC8vIHJlbW92ZSBhbGwgaGFuZGxlcnNcclxuICBpZiAoMSA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICBkZWxldGUgdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVtb3ZlIHNwZWNpZmljIGhhbmRsZXJcclxuICB2YXIgY2I7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgIGNiID0gY2FsbGJhY2tzW2ldO1xyXG4gICAgaWYgKGNiID09PSBmbiB8fCBjYi5mbiA9PT0gZm4pIHtcclxuICAgICAgY2FsbGJhY2tzLnNwbGljZShpLCAxKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0aGlzO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEVtaXQgYGV2ZW50YCB3aXRoIHRoZSBnaXZlbiBhcmdzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHBhcmFtIHtNaXhlZH0gLi4uXHJcbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uKGV2ZW50KXtcclxuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XHJcbiAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSlcclxuICAgICwgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XTtcclxuXHJcbiAgaWYgKGNhbGxiYWNrcykge1xyXG4gICAgY2FsbGJhY2tzID0gY2FsbGJhY2tzLnNsaWNlKDApO1xyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNhbGxiYWNrcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xyXG4gICAgICBjYWxsYmFja3NbaV0uYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdGhpcztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gYXJyYXkgb2YgY2FsbGJhY2tzIGZvciBgZXZlbnRgLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHJldHVybiB7QXJyYXl9XHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24oZXZlbnQpe1xyXG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcclxuICByZXR1cm4gdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XSB8fCBbXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiB0aGlzIGVtaXR0ZXIgaGFzIGBldmVudGAgaGFuZGxlcnMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcmV0dXJuIHtCb29sZWFufVxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbkVtaXR0ZXIucHJvdG90eXBlLmhhc0xpc3RlbmVycyA9IGZ1bmN0aW9uKGV2ZW50KXtcclxuICByZXR1cm4gISEgdGhpcy5saXN0ZW5lcnMoZXZlbnQpLmxlbmd0aDtcclxufTtcclxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi8vIE5PVEU6IFRoZXNlIHR5cGUgY2hlY2tpbmcgZnVuY3Rpb25zIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGBpbnN0YW5jZW9mYFxuLy8gYmVjYXVzZSBpdCBpcyBmcmFnaWxlIGFuZCBjYW4gYmUgZWFzaWx5IGZha2VkIHdpdGggYE9iamVjdC5jcmVhdGUoKWAuXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYXJnKTtcbiAgfVxuICByZXR1cm4gb2JqZWN0VG9TdHJpbmcoYXJnKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn1cbmV4cG9ydHMuaXNBcnJheSA9IGlzQXJyYXk7XG5cbmZ1bmN0aW9uIGlzQm9vbGVhbihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdib29sZWFuJztcbn1cbmV4cG9ydHMuaXNCb29sZWFuID0gaXNCb29sZWFuO1xuXG5mdW5jdGlvbiBpc051bGwoYXJnKSB7XG4gIHJldHVybiBhcmcgPT09IG51bGw7XG59XG5leHBvcnRzLmlzTnVsbCA9IGlzTnVsbDtcblxuZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQoYXJnKSB7XG4gIHJldHVybiBhcmcgPT0gbnVsbDtcbn1cbmV4cG9ydHMuaXNOdWxsT3JVbmRlZmluZWQgPSBpc051bGxPclVuZGVmaW5lZDtcblxuZnVuY3Rpb24gaXNOdW1iZXIoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnbnVtYmVyJztcbn1cbmV4cG9ydHMuaXNOdW1iZXIgPSBpc051bWJlcjtcblxuZnVuY3Rpb24gaXNTdHJpbmcoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnc3RyaW5nJztcbn1cbmV4cG9ydHMuaXNTdHJpbmcgPSBpc1N0cmluZztcblxuZnVuY3Rpb24gaXNTeW1ib2woYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnc3ltYm9sJztcbn1cbmV4cG9ydHMuaXNTeW1ib2wgPSBpc1N5bWJvbDtcblxuZnVuY3Rpb24gaXNVbmRlZmluZWQoYXJnKSB7XG4gIHJldHVybiBhcmcgPT09IHZvaWQgMDtcbn1cbmV4cG9ydHMuaXNVbmRlZmluZWQgPSBpc1VuZGVmaW5lZDtcblxuZnVuY3Rpb24gaXNSZWdFeHAocmUpIHtcbiAgcmV0dXJuIG9iamVjdFRvU3RyaW5nKHJlKSA9PT0gJ1tvYmplY3QgUmVnRXhwXSc7XG59XG5leHBvcnRzLmlzUmVnRXhwID0gaXNSZWdFeHA7XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsO1xufVxuZXhwb3J0cy5pc09iamVjdCA9IGlzT2JqZWN0O1xuXG5mdW5jdGlvbiBpc0RhdGUoZCkge1xuICByZXR1cm4gb2JqZWN0VG9TdHJpbmcoZCkgPT09ICdbb2JqZWN0IERhdGVdJztcbn1cbmV4cG9ydHMuaXNEYXRlID0gaXNEYXRlO1xuXG5mdW5jdGlvbiBpc0Vycm9yKGUpIHtcbiAgcmV0dXJuIChvYmplY3RUb1N0cmluZyhlKSA9PT0gJ1tvYmplY3QgRXJyb3JdJyB8fCBlIGluc3RhbmNlb2YgRXJyb3IpO1xufVxuZXhwb3J0cy5pc0Vycm9yID0gaXNFcnJvcjtcblxuZnVuY3Rpb24gaXNGdW5jdGlvbihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbic7XG59XG5leHBvcnRzLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuXG5mdW5jdGlvbiBpc1ByaW1pdGl2ZShhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gbnVsbCB8fFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ2Jvb2xlYW4nIHx8XG4gICAgICAgICB0eXBlb2YgYXJnID09PSAnbnVtYmVyJyB8fFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdzeW1ib2wnIHx8ICAvLyBFUzYgc3ltYm9sXG4gICAgICAgICB0eXBlb2YgYXJnID09PSAndW5kZWZpbmVkJztcbn1cbmV4cG9ydHMuaXNQcmltaXRpdmUgPSBpc1ByaW1pdGl2ZTtcblxuZXhwb3J0cy5pc0J1ZmZlciA9IEJ1ZmZlci5pc0J1ZmZlcjtcblxuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcobykge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pO1xufVxuIiwidmFyIGVsbGlwdGljID0gcmVxdWlyZSgnZWxsaXB0aWMnKVxudmFyIEJOID0gcmVxdWlyZSgnYm4uanMnKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUVDREggKGN1cnZlKSB7XG4gIHJldHVybiBuZXcgRUNESChjdXJ2ZSlcbn1cblxudmFyIGFsaWFzZXMgPSB7XG4gIHNlY3AyNTZrMToge1xuICAgIG5hbWU6ICdzZWNwMjU2azEnLFxuICAgIGJ5dGVMZW5ndGg6IDMyXG4gIH0sXG4gIHNlY3AyMjRyMToge1xuICAgIG5hbWU6ICdwMjI0JyxcbiAgICBieXRlTGVuZ3RoOiAyOFxuICB9LFxuICBwcmltZTI1NnYxOiB7XG4gICAgbmFtZTogJ3AyNTYnLFxuICAgIGJ5dGVMZW5ndGg6IDMyXG4gIH0sXG4gIHByaW1lMTkydjE6IHtcbiAgICBuYW1lOiAncDE5MicsXG4gICAgYnl0ZUxlbmd0aDogMjRcbiAgfSxcbiAgZWQyNTUxOToge1xuICAgIG5hbWU6ICdlZDI1NTE5JyxcbiAgICBieXRlTGVuZ3RoOiAzMlxuICB9LFxuICBzZWNwMzg0cjE6IHtcbiAgICBuYW1lOiAncDM4NCcsXG4gICAgYnl0ZUxlbmd0aDogNDhcbiAgfSxcbiAgc2VjcDUyMXIxOiB7XG4gICAgbmFtZTogJ3A1MjEnLFxuICAgIGJ5dGVMZW5ndGg6IDY2XG4gIH1cbn1cblxuYWxpYXNlcy5wMjI0ID0gYWxpYXNlcy5zZWNwMjI0cjFcbmFsaWFzZXMucDI1NiA9IGFsaWFzZXMuc2VjcDI1NnIxID0gYWxpYXNlcy5wcmltZTI1NnYxXG5hbGlhc2VzLnAxOTIgPSBhbGlhc2VzLnNlY3AxOTJyMSA9IGFsaWFzZXMucHJpbWUxOTJ2MVxuYWxpYXNlcy5wMzg0ID0gYWxpYXNlcy5zZWNwMzg0cjFcbmFsaWFzZXMucDUyMSA9IGFsaWFzZXMuc2VjcDUyMXIxXG5cbmZ1bmN0aW9uIEVDREggKGN1cnZlKSB7XG4gIHRoaXMuY3VydmVUeXBlID0gYWxpYXNlc1tjdXJ2ZV1cbiAgaWYgKCF0aGlzLmN1cnZlVHlwZSkge1xuICAgIHRoaXMuY3VydmVUeXBlID0ge1xuICAgICAgbmFtZTogY3VydmVcbiAgICB9XG4gIH1cbiAgdGhpcy5jdXJ2ZSA9IG5ldyBlbGxpcHRpYy5lYyh0aGlzLmN1cnZlVHlwZS5uYW1lKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcbiAgdGhpcy5rZXlzID0gdm9pZCAwXG59XG5cbkVDREgucHJvdG90eXBlLmdlbmVyYXRlS2V5cyA9IGZ1bmN0aW9uIChlbmMsIGZvcm1hdCkge1xuICB0aGlzLmtleXMgPSB0aGlzLmN1cnZlLmdlbktleVBhaXIoKVxuICByZXR1cm4gdGhpcy5nZXRQdWJsaWNLZXkoZW5jLCBmb3JtYXQpXG59XG5cbkVDREgucHJvdG90eXBlLmNvbXB1dGVTZWNyZXQgPSBmdW5jdGlvbiAob3RoZXIsIGluZW5jLCBlbmMpIHtcbiAgaW5lbmMgPSBpbmVuYyB8fCAndXRmOCdcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIob3RoZXIpKSB7XG4gICAgb3RoZXIgPSBuZXcgQnVmZmVyKG90aGVyLCBpbmVuYylcbiAgfVxuICB2YXIgb3RoZXJQdWIgPSB0aGlzLmN1cnZlLmtleUZyb21QdWJsaWMob3RoZXIpLmdldFB1YmxpYygpXG4gIHZhciBvdXQgPSBvdGhlclB1Yi5tdWwodGhpcy5rZXlzLmdldFByaXZhdGUoKSkuZ2V0WCgpXG4gIHJldHVybiBmb3JtYXRSZXR1cm5WYWx1ZShvdXQsIGVuYywgdGhpcy5jdXJ2ZVR5cGUuYnl0ZUxlbmd0aClcbn1cblxuRUNESC5wcm90b3R5cGUuZ2V0UHVibGljS2V5ID0gZnVuY3Rpb24gKGVuYywgZm9ybWF0KSB7XG4gIHZhciBrZXkgPSB0aGlzLmtleXMuZ2V0UHVibGljKGZvcm1hdCA9PT0gJ2NvbXByZXNzZWQnLCB0cnVlKVxuICBpZiAoZm9ybWF0ID09PSAnaHlicmlkJykge1xuICAgIGlmIChrZXlba2V5Lmxlbmd0aCAtIDFdICUgMikge1xuICAgICAga2V5WzBdID0gN1xuICAgIH0gZWxzZSB7XG4gICAgICBrZXlbMF0gPSA2XG4gICAgfVxuICB9XG4gIHJldHVybiBmb3JtYXRSZXR1cm5WYWx1ZShrZXksIGVuYylcbn1cblxuRUNESC5wcm90b3R5cGUuZ2V0UHJpdmF0ZUtleSA9IGZ1bmN0aW9uIChlbmMpIHtcbiAgcmV0dXJuIGZvcm1hdFJldHVyblZhbHVlKHRoaXMua2V5cy5nZXRQcml2YXRlKCksIGVuYylcbn1cblxuRUNESC5wcm90b3R5cGUuc2V0UHVibGljS2V5ID0gZnVuY3Rpb24gKHB1YiwgZW5jKSB7XG4gIGVuYyA9IGVuYyB8fCAndXRmOCdcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocHViKSkge1xuICAgIHB1YiA9IG5ldyBCdWZmZXIocHViLCBlbmMpXG4gIH1cbiAgdGhpcy5rZXlzLl9pbXBvcnRQdWJsaWMocHViKVxuICByZXR1cm4gdGhpc1xufVxuXG5FQ0RILnByb3RvdHlwZS5zZXRQcml2YXRlS2V5ID0gZnVuY3Rpb24gKHByaXYsIGVuYykge1xuICBlbmMgPSBlbmMgfHwgJ3V0ZjgnXG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHByaXYpKSB7XG4gICAgcHJpdiA9IG5ldyBCdWZmZXIocHJpdiwgZW5jKVxuICB9XG5cbiAgdmFyIF9wcml2ID0gbmV3IEJOKHByaXYpXG4gIF9wcml2ID0gX3ByaXYudG9TdHJpbmcoMTYpXG4gIHRoaXMua2V5cyA9IHRoaXMuY3VydmUuZ2VuS2V5UGFpcigpXG4gIHRoaXMua2V5cy5faW1wb3J0UHJpdmF0ZShfcHJpdilcbiAgcmV0dXJuIHRoaXNcbn1cblxuZnVuY3Rpb24gZm9ybWF0UmV0dXJuVmFsdWUgKGJuLCBlbmMsIGxlbikge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYm4pKSB7XG4gICAgYm4gPSBibi50b0FycmF5KClcbiAgfVxuICB2YXIgYnVmID0gbmV3IEJ1ZmZlcihibilcbiAgaWYgKGxlbiAmJiBidWYubGVuZ3RoIDwgbGVuKSB7XG4gICAgdmFyIHplcm9zID0gbmV3IEJ1ZmZlcihsZW4gLSBidWYubGVuZ3RoKVxuICAgIHplcm9zLmZpbGwoMClcbiAgICBidWYgPSBCdWZmZXIuY29uY2F0KFt6ZXJvcywgYnVmXSlcbiAgfVxuICBpZiAoIWVuYykge1xuICAgIHJldHVybiBidWZcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYnVmLnRvU3RyaW5nKGVuYylcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgTUQ1ID0gcmVxdWlyZSgnbWQ1LmpzJylcbnZhciBSSVBFTUQxNjAgPSByZXF1aXJlKCdyaXBlbWQxNjAnKVxudmFyIHNoYSA9IHJlcXVpcmUoJ3NoYS5qcycpXG52YXIgQmFzZSA9IHJlcXVpcmUoJ2NpcGhlci1iYXNlJylcblxuZnVuY3Rpb24gSGFzaCAoaGFzaCkge1xuICBCYXNlLmNhbGwodGhpcywgJ2RpZ2VzdCcpXG5cbiAgdGhpcy5faGFzaCA9IGhhc2hcbn1cblxuaW5oZXJpdHMoSGFzaCwgQmFzZSlcblxuSGFzaC5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHRoaXMuX2hhc2gudXBkYXRlKGRhdGEpXG59XG5cbkhhc2gucHJvdG90eXBlLl9maW5hbCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVIYXNoIChhbGcpIHtcbiAgYWxnID0gYWxnLnRvTG93ZXJDYXNlKClcbiAgaWYgKGFsZyA9PT0gJ21kNScpIHJldHVybiBuZXcgTUQ1KClcbiAgaWYgKGFsZyA9PT0gJ3JtZDE2MCcgfHwgYWxnID09PSAncmlwZW1kMTYwJykgcmV0dXJuIG5ldyBSSVBFTUQxNjAoKVxuXG4gIHJldHVybiBuZXcgSGFzaChzaGEoYWxnKSlcbn1cbiIsInZhciBNRDUgPSByZXF1aXJlKCdtZDUuanMnKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChidWZmZXIpIHtcbiAgcmV0dXJuIG5ldyBNRDUoKS51cGRhdGUoYnVmZmVyKS5kaWdlc3QoKVxufVxuIiwiJ3VzZSBzdHJpY3QnXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgTGVnYWN5ID0gcmVxdWlyZSgnLi9sZWdhY3knKVxudmFyIEJhc2UgPSByZXF1aXJlKCdjaXBoZXItYmFzZScpXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciBtZDUgPSByZXF1aXJlKCdjcmVhdGUtaGFzaC9tZDUnKVxudmFyIFJJUEVNRDE2MCA9IHJlcXVpcmUoJ3JpcGVtZDE2MCcpXG5cbnZhciBzaGEgPSByZXF1aXJlKCdzaGEuanMnKVxuXG52YXIgWkVST1MgPSBCdWZmZXIuYWxsb2MoMTI4KVxuXG5mdW5jdGlvbiBIbWFjIChhbGcsIGtleSkge1xuICBCYXNlLmNhbGwodGhpcywgJ2RpZ2VzdCcpXG4gIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgIGtleSA9IEJ1ZmZlci5mcm9tKGtleSlcbiAgfVxuXG4gIHZhciBibG9ja3NpemUgPSAoYWxnID09PSAnc2hhNTEyJyB8fCBhbGcgPT09ICdzaGEzODQnKSA/IDEyOCA6IDY0XG5cbiAgdGhpcy5fYWxnID0gYWxnXG4gIHRoaXMuX2tleSA9IGtleVxuICBpZiAoa2V5Lmxlbmd0aCA+IGJsb2Nrc2l6ZSkge1xuICAgIHZhciBoYXNoID0gYWxnID09PSAncm1kMTYwJyA/IG5ldyBSSVBFTUQxNjAoKSA6IHNoYShhbGcpXG4gICAga2V5ID0gaGFzaC51cGRhdGUoa2V5KS5kaWdlc3QoKVxuICB9IGVsc2UgaWYgKGtleS5sZW5ndGggPCBibG9ja3NpemUpIHtcbiAgICBrZXkgPSBCdWZmZXIuY29uY2F0KFtrZXksIFpFUk9TXSwgYmxvY2tzaXplKVxuICB9XG5cbiAgdmFyIGlwYWQgPSB0aGlzLl9pcGFkID0gQnVmZmVyLmFsbG9jVW5zYWZlKGJsb2Nrc2l6ZSlcbiAgdmFyIG9wYWQgPSB0aGlzLl9vcGFkID0gQnVmZmVyLmFsbG9jVW5zYWZlKGJsb2Nrc2l6ZSlcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGJsb2Nrc2l6ZTsgaSsrKSB7XG4gICAgaXBhZFtpXSA9IGtleVtpXSBeIDB4MzZcbiAgICBvcGFkW2ldID0ga2V5W2ldIF4gMHg1Q1xuICB9XG4gIHRoaXMuX2hhc2ggPSBhbGcgPT09ICdybWQxNjAnID8gbmV3IFJJUEVNRDE2MCgpIDogc2hhKGFsZylcbiAgdGhpcy5faGFzaC51cGRhdGUoaXBhZClcbn1cblxuaW5oZXJpdHMoSG1hYywgQmFzZSlcblxuSG1hYy5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHRoaXMuX2hhc2gudXBkYXRlKGRhdGEpXG59XG5cbkhtYWMucHJvdG90eXBlLl9maW5hbCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGggPSB0aGlzLl9oYXNoLmRpZ2VzdCgpXG4gIHZhciBoYXNoID0gdGhpcy5fYWxnID09PSAncm1kMTYwJyA/IG5ldyBSSVBFTUQxNjAoKSA6IHNoYSh0aGlzLl9hbGcpXG4gIHJldHVybiBoYXNoLnVwZGF0ZSh0aGlzLl9vcGFkKS51cGRhdGUoaCkuZGlnZXN0KClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVIbWFjIChhbGcsIGtleSkge1xuICBhbGcgPSBhbGcudG9Mb3dlckNhc2UoKVxuICBpZiAoYWxnID09PSAncm1kMTYwJyB8fCBhbGcgPT09ICdyaXBlbWQxNjAnKSB7XG4gICAgcmV0dXJuIG5ldyBIbWFjKCdybWQxNjAnLCBrZXkpXG4gIH1cbiAgaWYgKGFsZyA9PT0gJ21kNScpIHtcbiAgICByZXR1cm4gbmV3IExlZ2FjeShtZDUsIGtleSlcbiAgfVxuICByZXR1cm4gbmV3IEhtYWMoYWxnLCBrZXkpXG59XG4iLCIndXNlIHN0cmljdCdcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG52YXIgQmFzZSA9IHJlcXVpcmUoJ2NpcGhlci1iYXNlJylcblxudmFyIFpFUk9TID0gQnVmZmVyLmFsbG9jKDEyOClcbnZhciBibG9ja3NpemUgPSA2NFxuXG5mdW5jdGlvbiBIbWFjIChhbGcsIGtleSkge1xuICBCYXNlLmNhbGwodGhpcywgJ2RpZ2VzdCcpXG4gIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgIGtleSA9IEJ1ZmZlci5mcm9tKGtleSlcbiAgfVxuXG4gIHRoaXMuX2FsZyA9IGFsZ1xuICB0aGlzLl9rZXkgPSBrZXlcblxuICBpZiAoa2V5Lmxlbmd0aCA+IGJsb2Nrc2l6ZSkge1xuICAgIGtleSA9IGFsZyhrZXkpXG4gIH0gZWxzZSBpZiAoa2V5Lmxlbmd0aCA8IGJsb2Nrc2l6ZSkge1xuICAgIGtleSA9IEJ1ZmZlci5jb25jYXQoW2tleSwgWkVST1NdLCBibG9ja3NpemUpXG4gIH1cblxuICB2YXIgaXBhZCA9IHRoaXMuX2lwYWQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoYmxvY2tzaXplKVxuICB2YXIgb3BhZCA9IHRoaXMuX29wYWQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoYmxvY2tzaXplKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYmxvY2tzaXplOyBpKyspIHtcbiAgICBpcGFkW2ldID0ga2V5W2ldIF4gMHgzNlxuICAgIG9wYWRbaV0gPSBrZXlbaV0gXiAweDVDXG4gIH1cblxuICB0aGlzLl9oYXNoID0gW2lwYWRdXG59XG5cbmluaGVyaXRzKEhtYWMsIEJhc2UpXG5cbkhtYWMucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICB0aGlzLl9oYXNoLnB1c2goZGF0YSlcbn1cblxuSG1hYy5wcm90b3R5cGUuX2ZpbmFsID0gZnVuY3Rpb24gKCkge1xuICB2YXIgaCA9IHRoaXMuX2FsZyhCdWZmZXIuY29uY2F0KHRoaXMuX2hhc2gpKVxuICByZXR1cm4gdGhpcy5fYWxnKEJ1ZmZlci5jb25jYXQoW3RoaXMuX29wYWQsIGhdKSlcbn1cbm1vZHVsZS5leHBvcnRzID0gSG1hY1xuIiwiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydHMucmFuZG9tQnl0ZXMgPSBleHBvcnRzLnJuZyA9IGV4cG9ydHMucHNldWRvUmFuZG9tQnl0ZXMgPSBleHBvcnRzLnBybmcgPSByZXF1aXJlKCdyYW5kb21ieXRlcycpXG5leHBvcnRzLmNyZWF0ZUhhc2ggPSBleHBvcnRzLkhhc2ggPSByZXF1aXJlKCdjcmVhdGUtaGFzaCcpXG5leHBvcnRzLmNyZWF0ZUhtYWMgPSBleHBvcnRzLkhtYWMgPSByZXF1aXJlKCdjcmVhdGUtaG1hYycpXG5cbnZhciBhbGdvcyA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktc2lnbi9hbGdvcycpXG52YXIgYWxnb0tleXMgPSBPYmplY3Qua2V5cyhhbGdvcylcbnZhciBoYXNoZXMgPSBbJ3NoYTEnLCAnc2hhMjI0JywgJ3NoYTI1NicsICdzaGEzODQnLCAnc2hhNTEyJywgJ21kNScsICdybWQxNjAnXS5jb25jYXQoYWxnb0tleXMpXG5leHBvcnRzLmdldEhhc2hlcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGhhc2hlc1xufVxuXG52YXIgcCA9IHJlcXVpcmUoJ3Bia2RmMicpXG5leHBvcnRzLnBia2RmMiA9IHAucGJrZGYyXG5leHBvcnRzLnBia2RmMlN5bmMgPSBwLnBia2RmMlN5bmNcblxudmFyIGFlcyA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktY2lwaGVyJylcblxuZXhwb3J0cy5DaXBoZXIgPSBhZXMuQ2lwaGVyXG5leHBvcnRzLmNyZWF0ZUNpcGhlciA9IGFlcy5jcmVhdGVDaXBoZXJcbmV4cG9ydHMuQ2lwaGVyaXYgPSBhZXMuQ2lwaGVyaXZcbmV4cG9ydHMuY3JlYXRlQ2lwaGVyaXYgPSBhZXMuY3JlYXRlQ2lwaGVyaXZcbmV4cG9ydHMuRGVjaXBoZXIgPSBhZXMuRGVjaXBoZXJcbmV4cG9ydHMuY3JlYXRlRGVjaXBoZXIgPSBhZXMuY3JlYXRlRGVjaXBoZXJcbmV4cG9ydHMuRGVjaXBoZXJpdiA9IGFlcy5EZWNpcGhlcml2XG5leHBvcnRzLmNyZWF0ZURlY2lwaGVyaXYgPSBhZXMuY3JlYXRlRGVjaXBoZXJpdlxuZXhwb3J0cy5nZXRDaXBoZXJzID0gYWVzLmdldENpcGhlcnNcbmV4cG9ydHMubGlzdENpcGhlcnMgPSBhZXMubGlzdENpcGhlcnNcblxudmFyIGRoID0gcmVxdWlyZSgnZGlmZmllLWhlbGxtYW4nKVxuXG5leHBvcnRzLkRpZmZpZUhlbGxtYW5Hcm91cCA9IGRoLkRpZmZpZUhlbGxtYW5Hcm91cFxuZXhwb3J0cy5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAgPSBkaC5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXBcbmV4cG9ydHMuZ2V0RGlmZmllSGVsbG1hbiA9IGRoLmdldERpZmZpZUhlbGxtYW5cbmV4cG9ydHMuY3JlYXRlRGlmZmllSGVsbG1hbiA9IGRoLmNyZWF0ZURpZmZpZUhlbGxtYW5cbmV4cG9ydHMuRGlmZmllSGVsbG1hbiA9IGRoLkRpZmZpZUhlbGxtYW5cblxudmFyIHNpZ24gPSByZXF1aXJlKCdicm93c2VyaWZ5LXNpZ24nKVxuXG5leHBvcnRzLmNyZWF0ZVNpZ24gPSBzaWduLmNyZWF0ZVNpZ25cbmV4cG9ydHMuU2lnbiA9IHNpZ24uU2lnblxuZXhwb3J0cy5jcmVhdGVWZXJpZnkgPSBzaWduLmNyZWF0ZVZlcmlmeVxuZXhwb3J0cy5WZXJpZnkgPSBzaWduLlZlcmlmeVxuXG5leHBvcnRzLmNyZWF0ZUVDREggPSByZXF1aXJlKCdjcmVhdGUtZWNkaCcpXG5cbnZhciBwdWJsaWNFbmNyeXB0ID0gcmVxdWlyZSgncHVibGljLWVuY3J5cHQnKVxuXG5leHBvcnRzLnB1YmxpY0VuY3J5cHQgPSBwdWJsaWNFbmNyeXB0LnB1YmxpY0VuY3J5cHRcbmV4cG9ydHMucHJpdmF0ZUVuY3J5cHQgPSBwdWJsaWNFbmNyeXB0LnByaXZhdGVFbmNyeXB0XG5leHBvcnRzLnB1YmxpY0RlY3J5cHQgPSBwdWJsaWNFbmNyeXB0LnB1YmxpY0RlY3J5cHRcbmV4cG9ydHMucHJpdmF0ZURlY3J5cHQgPSBwdWJsaWNFbmNyeXB0LnByaXZhdGVEZWNyeXB0XG5cbi8vIHRoZSBsZWFzdCBJIGNhbiBkbyBpcyBtYWtlIGVycm9yIG1lc3NhZ2VzIGZvciB0aGUgcmVzdCBvZiB0aGUgbm9kZS5qcy9jcnlwdG8gYXBpLlxuLy8gO1tcbi8vICAgJ2NyZWF0ZUNyZWRlbnRpYWxzJ1xuLy8gXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4vLyAgIGV4cG9ydHNbbmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4vLyAgICAgdGhyb3cgbmV3IEVycm9yKFtcbi8vICAgICAgICdzb3JyeSwgJyArIG5hbWUgKyAnIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQnLFxuLy8gICAgICAgJ3dlIGFjY2VwdCBwdWxsIHJlcXVlc3RzJyxcbi8vICAgICAgICdodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnknXG4vLyAgICAgXS5qb2luKCdcXG4nKSlcbi8vICAgfVxuLy8gfSlcblxudmFyIHJmID0gcmVxdWlyZSgncmFuZG9tZmlsbCcpXG5cbmV4cG9ydHMucmFuZG9tRmlsbCA9IHJmLnJhbmRvbUZpbGxcbmV4cG9ydHMucmFuZG9tRmlsbFN5bmMgPSByZi5yYW5kb21GaWxsU3luY1xuXG5leHBvcnRzLmNyZWF0ZUNyZWRlbnRpYWxzID0gZnVuY3Rpb24gKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoW1xuICAgICdzb3JyeSwgY3JlYXRlQ3JlZGVudGlhbHMgaXMgbm90IGltcGxlbWVudGVkIHlldCcsXG4gICAgJ3dlIGFjY2VwdCBwdWxsIHJlcXVlc3RzJyxcbiAgICAnaHR0cHM6Ly9naXRodWIuY29tL2NyeXB0by1icm93c2VyaWZ5L2NyeXB0by1icm93c2VyaWZ5J1xuICBdLmpvaW4oJ1xcbicpKVxufVxuXG5leHBvcnRzLmNvbnN0YW50cyA9IHtcbiAgJ0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUUnOiAyLFxuICAnREhfQ0hFQ0tfUF9OT1RfUFJJTUUnOiAxLFxuICAnREhfVU5BQkxFX1RPX0NIRUNLX0dFTkVSQVRPUic6IDQsXG4gICdESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SJzogOCxcbiAgJ05QTl9FTkFCTEVEJzogMSxcbiAgJ0FMUE5fRU5BQkxFRCc6IDEsXG4gICdSU0FfUEtDUzFfUEFERElORyc6IDEsXG4gICdSU0FfU1NMVjIzX1BBRERJTkcnOiAyLFxuICAnUlNBX05PX1BBRERJTkcnOiAzLFxuICAnUlNBX1BLQ1MxX09BRVBfUEFERElORyc6IDQsXG4gICdSU0FfWDkzMV9QQURESU5HJzogNSxcbiAgJ1JTQV9QS0NTMV9QU1NfUEFERElORyc6IDYsXG4gICdQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQnOiAyLFxuICAnUE9JTlRfQ09OVkVSU0lPTl9VTkNPTVBSRVNTRUQnOiA0LFxuICAnUE9JTlRfQ09OVkVSU0lPTl9IWUJSSUQnOiA2XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMudXRpbHMgPSByZXF1aXJlKCcuL2Rlcy91dGlscycpO1xuZXhwb3J0cy5DaXBoZXIgPSByZXF1aXJlKCcuL2Rlcy9jaXBoZXInKTtcbmV4cG9ydHMuREVTID0gcmVxdWlyZSgnLi9kZXMvZGVzJyk7XG5leHBvcnRzLkNCQyA9IHJlcXVpcmUoJy4vZGVzL2NiYycpO1xuZXhwb3J0cy5FREUgPSByZXF1aXJlKCcuL2Rlcy9lZGUnKTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGFzc2VydCA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1hc3NlcnQnKTtcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG5cbnZhciBwcm90byA9IHt9O1xuXG5mdW5jdGlvbiBDQkNTdGF0ZShpdikge1xuICBhc3NlcnQuZXF1YWwoaXYubGVuZ3RoLCA4LCAnSW52YWxpZCBJViBsZW5ndGgnKTtcblxuICB0aGlzLml2ID0gbmV3IEFycmF5KDgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXYubGVuZ3RoOyBpKyspXG4gICAgdGhpcy5pdltpXSA9IGl2W2ldO1xufVxuXG5mdW5jdGlvbiBpbnN0YW50aWF0ZShCYXNlKSB7XG4gIGZ1bmN0aW9uIENCQyhvcHRpb25zKSB7XG4gICAgQmFzZS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMuX2NiY0luaXQoKTtcbiAgfVxuICBpbmhlcml0cyhDQkMsIEJhc2UpO1xuXG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMocHJvdG8pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBDQkMucHJvdG90eXBlW2tleV0gPSBwcm90b1trZXldO1xuICB9XG5cbiAgQ0JDLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBDQkMob3B0aW9ucyk7XG4gIH07XG5cbiAgcmV0dXJuIENCQztcbn1cblxuZXhwb3J0cy5pbnN0YW50aWF0ZSA9IGluc3RhbnRpYXRlO1xuXG5wcm90by5fY2JjSW5pdCA9IGZ1bmN0aW9uIF9jYmNJbml0KCkge1xuICB2YXIgc3RhdGUgPSBuZXcgQ0JDU3RhdGUodGhpcy5vcHRpb25zLml2KTtcbiAgdGhpcy5fY2JjU3RhdGUgPSBzdGF0ZTtcbn07XG5cbnByb3RvLl91cGRhdGUgPSBmdW5jdGlvbiBfdXBkYXRlKGlucCwgaW5PZmYsIG91dCwgb3V0T2ZmKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2NiY1N0YXRlO1xuICB2YXIgc3VwZXJQcm90byA9IHRoaXMuY29uc3RydWN0b3Iuc3VwZXJfLnByb3RvdHlwZTtcblxuICB2YXIgaXYgPSBzdGF0ZS5pdjtcbiAgaWYgKHRoaXMudHlwZSA9PT0gJ2VuY3J5cHQnKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJsb2NrU2l6ZTsgaSsrKVxuICAgICAgaXZbaV0gXj0gaW5wW2luT2ZmICsgaV07XG5cbiAgICBzdXBlclByb3RvLl91cGRhdGUuY2FsbCh0aGlzLCBpdiwgMCwgb3V0LCBvdXRPZmYpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJsb2NrU2l6ZTsgaSsrKVxuICAgICAgaXZbaV0gPSBvdXRbb3V0T2ZmICsgaV07XG4gIH0gZWxzZSB7XG4gICAgc3VwZXJQcm90by5fdXBkYXRlLmNhbGwodGhpcywgaW5wLCBpbk9mZiwgb3V0LCBvdXRPZmYpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJsb2NrU2l6ZTsgaSsrKVxuICAgICAgb3V0W291dE9mZiArIGldIF49IGl2W2ldO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJsb2NrU2l6ZTsgaSsrKVxuICAgICAgaXZbaV0gPSBpbnBbaW5PZmYgKyBpXTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGFzc2VydCA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1hc3NlcnQnKTtcblxuZnVuY3Rpb24gQ2lwaGVyKG9wdGlvbnMpIHtcbiAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICB0aGlzLnR5cGUgPSB0aGlzLm9wdGlvbnMudHlwZTtcbiAgdGhpcy5ibG9ja1NpemUgPSA4O1xuICB0aGlzLl9pbml0KCk7XG5cbiAgdGhpcy5idWZmZXIgPSBuZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO1xuICB0aGlzLmJ1ZmZlck9mZiA9IDA7XG59XG5tb2R1bGUuZXhwb3J0cyA9IENpcGhlcjtcblxuQ2lwaGVyLnByb3RvdHlwZS5faW5pdCA9IGZ1bmN0aW9uIF9pbml0KCkge1xuICAvLyBNaWdodCBiZSBvdmVycmlkZWRcbn07XG5cbkNpcGhlci5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlKGRhdGEpIHtcbiAgaWYgKGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodGhpcy50eXBlID09PSAnZGVjcnlwdCcpXG4gICAgcmV0dXJuIHRoaXMuX3VwZGF0ZURlY3J5cHQoZGF0YSk7XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5fdXBkYXRlRW5jcnlwdChkYXRhKTtcbn07XG5cbkNpcGhlci5wcm90b3R5cGUuX2J1ZmZlciA9IGZ1bmN0aW9uIF9idWZmZXIoZGF0YSwgb2ZmKSB7XG4gIC8vIEFwcGVuZCBkYXRhIHRvIGJ1ZmZlclxuICB2YXIgbWluID0gTWF0aC5taW4odGhpcy5idWZmZXIubGVuZ3RoIC0gdGhpcy5idWZmZXJPZmYsIGRhdGEubGVuZ3RoIC0gb2ZmKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtaW47IGkrKylcbiAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZiArIGldID0gZGF0YVtvZmYgKyBpXTtcbiAgdGhpcy5idWZmZXJPZmYgKz0gbWluO1xuXG4gIC8vIFNoaWZ0IG5leHRcbiAgcmV0dXJuIG1pbjtcbn07XG5cbkNpcGhlci5wcm90b3R5cGUuX2ZsdXNoQnVmZmVyID0gZnVuY3Rpb24gX2ZsdXNoQnVmZmVyKG91dCwgb2ZmKSB7XG4gIHRoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciwgMCwgb3V0LCBvZmYpO1xuICB0aGlzLmJ1ZmZlck9mZiA9IDA7XG4gIHJldHVybiB0aGlzLmJsb2NrU2l6ZTtcbn07XG5cbkNpcGhlci5wcm90b3R5cGUuX3VwZGF0ZUVuY3J5cHQgPSBmdW5jdGlvbiBfdXBkYXRlRW5jcnlwdChkYXRhKSB7XG4gIHZhciBpbnB1dE9mZiA9IDA7XG4gIHZhciBvdXRwdXRPZmYgPSAwO1xuXG4gIHZhciBjb3VudCA9ICgodGhpcy5idWZmZXJPZmYgKyBkYXRhLmxlbmd0aCkgLyB0aGlzLmJsb2NrU2l6ZSkgfCAwO1xuICB2YXIgb3V0ID0gbmV3IEFycmF5KGNvdW50ICogdGhpcy5ibG9ja1NpemUpO1xuXG4gIGlmICh0aGlzLmJ1ZmZlck9mZiAhPT0gMCkge1xuICAgIGlucHV0T2ZmICs9IHRoaXMuX2J1ZmZlcihkYXRhLCBpbnB1dE9mZik7XG5cbiAgICBpZiAodGhpcy5idWZmZXJPZmYgPT09IHRoaXMuYnVmZmVyLmxlbmd0aClcbiAgICAgIG91dHB1dE9mZiArPSB0aGlzLl9mbHVzaEJ1ZmZlcihvdXQsIG91dHB1dE9mZik7XG4gIH1cblxuICAvLyBXcml0ZSBibG9ja3NcbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoIC0gKChkYXRhLmxlbmd0aCAtIGlucHV0T2ZmKSAlIHRoaXMuYmxvY2tTaXplKTtcbiAgZm9yICg7IGlucHV0T2ZmIDwgbWF4OyBpbnB1dE9mZiArPSB0aGlzLmJsb2NrU2l6ZSkge1xuICAgIHRoaXMuX3VwZGF0ZShkYXRhLCBpbnB1dE9mZiwgb3V0LCBvdXRwdXRPZmYpO1xuICAgIG91dHB1dE9mZiArPSB0aGlzLmJsb2NrU2l6ZTtcbiAgfVxuXG4gIC8vIFF1ZXVlIHJlc3RcbiAgZm9yICg7IGlucHV0T2ZmIDwgZGF0YS5sZW5ndGg7IGlucHV0T2ZmKyssIHRoaXMuYnVmZmVyT2ZmKyspXG4gICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZdID0gZGF0YVtpbnB1dE9mZl07XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbkNpcGhlci5wcm90b3R5cGUuX3VwZGF0ZURlY3J5cHQgPSBmdW5jdGlvbiBfdXBkYXRlRGVjcnlwdChkYXRhKSB7XG4gIHZhciBpbnB1dE9mZiA9IDA7XG4gIHZhciBvdXRwdXRPZmYgPSAwO1xuXG4gIHZhciBjb3VudCA9IE1hdGguY2VpbCgodGhpcy5idWZmZXJPZmYgKyBkYXRhLmxlbmd0aCkgLyB0aGlzLmJsb2NrU2l6ZSkgLSAxO1xuICB2YXIgb3V0ID0gbmV3IEFycmF5KGNvdW50ICogdGhpcy5ibG9ja1NpemUpO1xuXG4gIC8vIFRPRE8oaW5kdXRueSk6IG9wdGltaXplIGl0LCB0aGlzIGlzIGZhciBmcm9tIG9wdGltYWxcbiAgZm9yICg7IGNvdW50ID4gMDsgY291bnQtLSkge1xuICAgIGlucHV0T2ZmICs9IHRoaXMuX2J1ZmZlcihkYXRhLCBpbnB1dE9mZik7XG4gICAgb3V0cHV0T2ZmICs9IHRoaXMuX2ZsdXNoQnVmZmVyKG91dCwgb3V0cHV0T2ZmKTtcbiAgfVxuXG4gIC8vIEJ1ZmZlciByZXN0IG9mIHRoZSBpbnB1dFxuICBpbnB1dE9mZiArPSB0aGlzLl9idWZmZXIoZGF0YSwgaW5wdXRPZmYpO1xuXG4gIHJldHVybiBvdXQ7XG59O1xuXG5DaXBoZXIucHJvdG90eXBlLmZpbmFsID0gZnVuY3Rpb24gZmluYWwoYnVmZmVyKSB7XG4gIHZhciBmaXJzdDtcbiAgaWYgKGJ1ZmZlcilcbiAgICBmaXJzdCA9IHRoaXMudXBkYXRlKGJ1ZmZlcik7XG5cbiAgdmFyIGxhc3Q7XG4gIGlmICh0aGlzLnR5cGUgPT09ICdlbmNyeXB0JylcbiAgICBsYXN0ID0gdGhpcy5fZmluYWxFbmNyeXB0KCk7XG4gIGVsc2VcbiAgICBsYXN0ID0gdGhpcy5fZmluYWxEZWNyeXB0KCk7XG5cbiAgaWYgKGZpcnN0KVxuICAgIHJldHVybiBmaXJzdC5jb25jYXQobGFzdCk7XG4gIGVsc2VcbiAgICByZXR1cm4gbGFzdDtcbn07XG5cbkNpcGhlci5wcm90b3R5cGUuX3BhZCA9IGZ1bmN0aW9uIF9wYWQoYnVmZmVyLCBvZmYpIHtcbiAgaWYgKG9mZiA9PT0gMClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgd2hpbGUgKG9mZiA8IGJ1ZmZlci5sZW5ndGgpXG4gICAgYnVmZmVyW29mZisrXSA9IDA7XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5DaXBoZXIucHJvdG90eXBlLl9maW5hbEVuY3J5cHQgPSBmdW5jdGlvbiBfZmluYWxFbmNyeXB0KCkge1xuICBpZiAoIXRoaXMuX3BhZCh0aGlzLmJ1ZmZlciwgdGhpcy5idWZmZXJPZmYpKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgb3V0ID0gbmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtcbiAgdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLCAwLCBvdXQsIDApO1xuICByZXR1cm4gb3V0O1xufTtcblxuQ2lwaGVyLnByb3RvdHlwZS5fdW5wYWQgPSBmdW5jdGlvbiBfdW5wYWQoYnVmZmVyKSB7XG4gIHJldHVybiBidWZmZXI7XG59O1xuXG5DaXBoZXIucHJvdG90eXBlLl9maW5hbERlY3J5cHQgPSBmdW5jdGlvbiBfZmluYWxEZWNyeXB0KCkge1xuICBhc3NlcnQuZXF1YWwodGhpcy5idWZmZXJPZmYsIHRoaXMuYmxvY2tTaXplLCAnTm90IGVub3VnaCBkYXRhIHRvIGRlY3J5cHQnKTtcbiAgdmFyIG91dCA9IG5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7XG4gIHRoaXMuX2ZsdXNoQnVmZmVyKG91dCwgMCk7XG5cbiAgcmV0dXJuIHRoaXMuX3VucGFkKG91dCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxudmFyIGRlcyA9IHJlcXVpcmUoJy4uL2RlcycpO1xudmFyIHV0aWxzID0gZGVzLnV0aWxzO1xudmFyIENpcGhlciA9IGRlcy5DaXBoZXI7XG5cbmZ1bmN0aW9uIERFU1N0YXRlKCkge1xuICB0aGlzLnRtcCA9IG5ldyBBcnJheSgyKTtcbiAgdGhpcy5rZXlzID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gREVTKG9wdGlvbnMpIHtcbiAgQ2lwaGVyLmNhbGwodGhpcywgb3B0aW9ucyk7XG5cbiAgdmFyIHN0YXRlID0gbmV3IERFU1N0YXRlKCk7XG4gIHRoaXMuX2Rlc1N0YXRlID0gc3RhdGU7XG5cbiAgdGhpcy5kZXJpdmVLZXlzKHN0YXRlLCBvcHRpb25zLmtleSk7XG59XG5pbmhlcml0cyhERVMsIENpcGhlcik7XG5tb2R1bGUuZXhwb3J0cyA9IERFUztcblxuREVTLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShvcHRpb25zKSB7XG4gIHJldHVybiBuZXcgREVTKG9wdGlvbnMpO1xufTtcblxudmFyIHNoaWZ0VGFibGUgPSBbXG4gIDEsIDEsIDIsIDIsIDIsIDIsIDIsIDIsXG4gIDEsIDIsIDIsIDIsIDIsIDIsIDIsIDFcbl07XG5cbkRFUy5wcm90b3R5cGUuZGVyaXZlS2V5cyA9IGZ1bmN0aW9uIGRlcml2ZUtleXMoc3RhdGUsIGtleSkge1xuICBzdGF0ZS5rZXlzID0gbmV3IEFycmF5KDE2ICogMik7XG5cbiAgYXNzZXJ0LmVxdWFsKGtleS5sZW5ndGgsIHRoaXMuYmxvY2tTaXplLCAnSW52YWxpZCBrZXkgbGVuZ3RoJyk7XG5cbiAgdmFyIGtMID0gdXRpbHMucmVhZFVJbnQzMkJFKGtleSwgMCk7XG4gIHZhciBrUiA9IHV0aWxzLnJlYWRVSW50MzJCRShrZXksIDQpO1xuXG4gIHV0aWxzLnBjMShrTCwga1IsIHN0YXRlLnRtcCwgMCk7XG4gIGtMID0gc3RhdGUudG1wWzBdO1xuICBrUiA9IHN0YXRlLnRtcFsxXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGF0ZS5rZXlzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgdmFyIHNoaWZ0ID0gc2hpZnRUYWJsZVtpID4+PiAxXTtcbiAgICBrTCA9IHV0aWxzLnIyOHNobChrTCwgc2hpZnQpO1xuICAgIGtSID0gdXRpbHMucjI4c2hsKGtSLCBzaGlmdCk7XG4gICAgdXRpbHMucGMyKGtMLCBrUiwgc3RhdGUua2V5cywgaSk7XG4gIH1cbn07XG5cbkRFUy5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIF91cGRhdGUoaW5wLCBpbk9mZiwgb3V0LCBvdXRPZmYpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fZGVzU3RhdGU7XG5cbiAgdmFyIGwgPSB1dGlscy5yZWFkVUludDMyQkUoaW5wLCBpbk9mZik7XG4gIHZhciByID0gdXRpbHMucmVhZFVJbnQzMkJFKGlucCwgaW5PZmYgKyA0KTtcblxuICAvLyBJbml0aWFsIFBlcm11dGF0aW9uXG4gIHV0aWxzLmlwKGwsIHIsIHN0YXRlLnRtcCwgMCk7XG4gIGwgPSBzdGF0ZS50bXBbMF07XG4gIHIgPSBzdGF0ZS50bXBbMV07XG5cbiAgaWYgKHRoaXMudHlwZSA9PT0gJ2VuY3J5cHQnKVxuICAgIHRoaXMuX2VuY3J5cHQoc3RhdGUsIGwsIHIsIHN0YXRlLnRtcCwgMCk7XG4gIGVsc2VcbiAgICB0aGlzLl9kZWNyeXB0KHN0YXRlLCBsLCByLCBzdGF0ZS50bXAsIDApO1xuXG4gIGwgPSBzdGF0ZS50bXBbMF07XG4gIHIgPSBzdGF0ZS50bXBbMV07XG5cbiAgdXRpbHMud3JpdGVVSW50MzJCRShvdXQsIGwsIG91dE9mZik7XG4gIHV0aWxzLndyaXRlVUludDMyQkUob3V0LCByLCBvdXRPZmYgKyA0KTtcbn07XG5cbkRFUy5wcm90b3R5cGUuX3BhZCA9IGZ1bmN0aW9uIF9wYWQoYnVmZmVyLCBvZmYpIHtcbiAgdmFyIHZhbHVlID0gYnVmZmVyLmxlbmd0aCAtIG9mZjtcbiAgZm9yICh2YXIgaSA9IG9mZjsgaSA8IGJ1ZmZlci5sZW5ndGg7IGkrKylcbiAgICBidWZmZXJbaV0gPSB2YWx1ZTtcblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbkRFUy5wcm90b3R5cGUuX3VucGFkID0gZnVuY3Rpb24gX3VucGFkKGJ1ZmZlcikge1xuICB2YXIgcGFkID0gYnVmZmVyW2J1ZmZlci5sZW5ndGggLSAxXTtcbiAgZm9yICh2YXIgaSA9IGJ1ZmZlci5sZW5ndGggLSBwYWQ7IGkgPCBidWZmZXIubGVuZ3RoOyBpKyspXG4gICAgYXNzZXJ0LmVxdWFsKGJ1ZmZlcltpXSwgcGFkKTtcblxuICByZXR1cm4gYnVmZmVyLnNsaWNlKDAsIGJ1ZmZlci5sZW5ndGggLSBwYWQpO1xufTtcblxuREVTLnByb3RvdHlwZS5fZW5jcnlwdCA9IGZ1bmN0aW9uIF9lbmNyeXB0KHN0YXRlLCBsU3RhcnQsIHJTdGFydCwgb3V0LCBvZmYpIHtcbiAgdmFyIGwgPSBsU3RhcnQ7XG4gIHZhciByID0gclN0YXJ0O1xuXG4gIC8vIEFwcGx5IGYoKSB4MTYgdGltZXNcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGF0ZS5rZXlzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgdmFyIGtleUwgPSBzdGF0ZS5rZXlzW2ldO1xuICAgIHZhciBrZXlSID0gc3RhdGUua2V5c1tpICsgMV07XG5cbiAgICAvLyBmKHIsIGspXG4gICAgdXRpbHMuZXhwYW5kKHIsIHN0YXRlLnRtcCwgMCk7XG5cbiAgICBrZXlMIF49IHN0YXRlLnRtcFswXTtcbiAgICBrZXlSIF49IHN0YXRlLnRtcFsxXTtcbiAgICB2YXIgcyA9IHV0aWxzLnN1YnN0aXR1dGUoa2V5TCwga2V5Uik7XG4gICAgdmFyIGYgPSB1dGlscy5wZXJtdXRlKHMpO1xuXG4gICAgdmFyIHQgPSByO1xuICAgIHIgPSAobCBeIGYpID4+PiAwO1xuICAgIGwgPSB0O1xuICB9XG5cbiAgLy8gUmV2ZXJzZSBJbml0aWFsIFBlcm11dGF0aW9uXG4gIHV0aWxzLnJpcChyLCBsLCBvdXQsIG9mZik7XG59O1xuXG5ERVMucHJvdG90eXBlLl9kZWNyeXB0ID0gZnVuY3Rpb24gX2RlY3J5cHQoc3RhdGUsIGxTdGFydCwgclN0YXJ0LCBvdXQsIG9mZikge1xuICB2YXIgbCA9IHJTdGFydDtcbiAgdmFyIHIgPSBsU3RhcnQ7XG5cbiAgLy8gQXBwbHkgZigpIHgxNiB0aW1lc1xuICBmb3IgKHZhciBpID0gc3RhdGUua2V5cy5sZW5ndGggLSAyOyBpID49IDA7IGkgLT0gMikge1xuICAgIHZhciBrZXlMID0gc3RhdGUua2V5c1tpXTtcbiAgICB2YXIga2V5UiA9IHN0YXRlLmtleXNbaSArIDFdO1xuXG4gICAgLy8gZihyLCBrKVxuICAgIHV0aWxzLmV4cGFuZChsLCBzdGF0ZS50bXAsIDApO1xuXG4gICAga2V5TCBePSBzdGF0ZS50bXBbMF07XG4gICAga2V5UiBePSBzdGF0ZS50bXBbMV07XG4gICAgdmFyIHMgPSB1dGlscy5zdWJzdGl0dXRlKGtleUwsIGtleVIpO1xuICAgIHZhciBmID0gdXRpbHMucGVybXV0ZShzKTtcblxuICAgIHZhciB0ID0gbDtcbiAgICBsID0gKHIgXiBmKSA+Pj4gMDtcbiAgICByID0gdDtcbiAgfVxuXG4gIC8vIFJldmVyc2UgSW5pdGlhbCBQZXJtdXRhdGlvblxuICB1dGlscy5yaXAobCwgciwgb3V0LCBvZmYpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGFzc2VydCA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1hc3NlcnQnKTtcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG5cbnZhciBkZXMgPSByZXF1aXJlKCcuLi9kZXMnKTtcbnZhciBDaXBoZXIgPSBkZXMuQ2lwaGVyO1xudmFyIERFUyA9IGRlcy5ERVM7XG5cbmZ1bmN0aW9uIEVERVN0YXRlKHR5cGUsIGtleSkge1xuICBhc3NlcnQuZXF1YWwoa2V5Lmxlbmd0aCwgMjQsICdJbnZhbGlkIGtleSBsZW5ndGgnKTtcblxuICB2YXIgazEgPSBrZXkuc2xpY2UoMCwgOCk7XG4gIHZhciBrMiA9IGtleS5zbGljZSg4LCAxNik7XG4gIHZhciBrMyA9IGtleS5zbGljZSgxNiwgMjQpO1xuXG4gIGlmICh0eXBlID09PSAnZW5jcnlwdCcpIHtcbiAgICB0aGlzLmNpcGhlcnMgPSBbXG4gICAgICBERVMuY3JlYXRlKHsgdHlwZTogJ2VuY3J5cHQnLCBrZXk6IGsxIH0pLFxuICAgICAgREVTLmNyZWF0ZSh7IHR5cGU6ICdkZWNyeXB0Jywga2V5OiBrMiB9KSxcbiAgICAgIERFUy5jcmVhdGUoeyB0eXBlOiAnZW5jcnlwdCcsIGtleTogazMgfSlcbiAgICBdO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuY2lwaGVycyA9IFtcbiAgICAgIERFUy5jcmVhdGUoeyB0eXBlOiAnZGVjcnlwdCcsIGtleTogazMgfSksXG4gICAgICBERVMuY3JlYXRlKHsgdHlwZTogJ2VuY3J5cHQnLCBrZXk6IGsyIH0pLFxuICAgICAgREVTLmNyZWF0ZSh7IHR5cGU6ICdkZWNyeXB0Jywga2V5OiBrMSB9KVxuICAgIF07XG4gIH1cbn1cblxuZnVuY3Rpb24gRURFKG9wdGlvbnMpIHtcbiAgQ2lwaGVyLmNhbGwodGhpcywgb3B0aW9ucyk7XG5cbiAgdmFyIHN0YXRlID0gbmV3IEVERVN0YXRlKHRoaXMudHlwZSwgdGhpcy5vcHRpb25zLmtleSk7XG4gIHRoaXMuX2VkZVN0YXRlID0gc3RhdGU7XG59XG5pbmhlcml0cyhFREUsIENpcGhlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gRURFO1xuXG5FREUuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBFREUob3B0aW9ucyk7XG59O1xuXG5FREUucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiBfdXBkYXRlKGlucCwgaW5PZmYsIG91dCwgb3V0T2ZmKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2VkZVN0YXRlO1xuXG4gIHN0YXRlLmNpcGhlcnNbMF0uX3VwZGF0ZShpbnAsIGluT2ZmLCBvdXQsIG91dE9mZik7XG4gIHN0YXRlLmNpcGhlcnNbMV0uX3VwZGF0ZShvdXQsIG91dE9mZiwgb3V0LCBvdXRPZmYpO1xuICBzdGF0ZS5jaXBoZXJzWzJdLl91cGRhdGUob3V0LCBvdXRPZmYsIG91dCwgb3V0T2ZmKTtcbn07XG5cbkVERS5wcm90b3R5cGUuX3BhZCA9IERFUy5wcm90b3R5cGUuX3BhZDtcbkVERS5wcm90b3R5cGUuX3VucGFkID0gREVTLnByb3RvdHlwZS5fdW5wYWQ7XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMucmVhZFVJbnQzMkJFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkJFKGJ5dGVzLCBvZmYpIHtcbiAgdmFyIHJlcyA9ICAoYnl0ZXNbMCArIG9mZl0gPDwgMjQpIHxcbiAgICAgICAgICAgICAoYnl0ZXNbMSArIG9mZl0gPDwgMTYpIHxcbiAgICAgICAgICAgICAoYnl0ZXNbMiArIG9mZl0gPDwgOCkgfFxuICAgICAgICAgICAgIGJ5dGVzWzMgKyBvZmZdO1xuICByZXR1cm4gcmVzID4+PiAwO1xufTtcblxuZXhwb3J0cy53cml0ZVVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJCRShieXRlcywgdmFsdWUsIG9mZikge1xuICBieXRlc1swICsgb2ZmXSA9IHZhbHVlID4+PiAyNDtcbiAgYnl0ZXNbMSArIG9mZl0gPSAodmFsdWUgPj4+IDE2KSAmIDB4ZmY7XG4gIGJ5dGVzWzIgKyBvZmZdID0gKHZhbHVlID4+PiA4KSAmIDB4ZmY7XG4gIGJ5dGVzWzMgKyBvZmZdID0gdmFsdWUgJiAweGZmO1xufTtcblxuZXhwb3J0cy5pcCA9IGZ1bmN0aW9uIGlwKGluTCwgaW5SLCBvdXQsIG9mZikge1xuICB2YXIgb3V0TCA9IDA7XG4gIHZhciBvdXRSID0gMDtcblxuICBmb3IgKHZhciBpID0gNjsgaSA+PSAwOyBpIC09IDIpIHtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8PSAyNDsgaiArPSA4KSB7XG4gICAgICBvdXRMIDw8PSAxO1xuICAgICAgb3V0TCB8PSAoaW5SID4+PiAoaiArIGkpKSAmIDE7XG4gICAgfVxuICAgIGZvciAodmFyIGogPSAwOyBqIDw9IDI0OyBqICs9IDgpIHtcbiAgICAgIG91dEwgPDw9IDE7XG4gICAgICBvdXRMIHw9IChpbkwgPj4+IChqICsgaSkpICYgMTtcbiAgICB9XG4gIH1cblxuICBmb3IgKHZhciBpID0gNjsgaSA+PSAwOyBpIC09IDIpIHtcbiAgICBmb3IgKHZhciBqID0gMTsgaiA8PSAyNTsgaiArPSA4KSB7XG4gICAgICBvdXRSIDw8PSAxO1xuICAgICAgb3V0UiB8PSAoaW5SID4+PiAoaiArIGkpKSAmIDE7XG4gICAgfVxuICAgIGZvciAodmFyIGogPSAxOyBqIDw9IDI1OyBqICs9IDgpIHtcbiAgICAgIG91dFIgPDw9IDE7XG4gICAgICBvdXRSIHw9IChpbkwgPj4+IChqICsgaSkpICYgMTtcbiAgICB9XG4gIH1cblxuICBvdXRbb2ZmICsgMF0gPSBvdXRMID4+PiAwO1xuICBvdXRbb2ZmICsgMV0gPSBvdXRSID4+PiAwO1xufTtcblxuZXhwb3J0cy5yaXAgPSBmdW5jdGlvbiByaXAoaW5MLCBpblIsIG91dCwgb2ZmKSB7XG4gIHZhciBvdXRMID0gMDtcbiAgdmFyIG91dFIgPSAwO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgZm9yICh2YXIgaiA9IDI0OyBqID49IDA7IGogLT0gOCkge1xuICAgICAgb3V0TCA8PD0gMTtcbiAgICAgIG91dEwgfD0gKGluUiA+Pj4gKGogKyBpKSkgJiAxO1xuICAgICAgb3V0TCA8PD0gMTtcbiAgICAgIG91dEwgfD0gKGluTCA+Pj4gKGogKyBpKSkgJiAxO1xuICAgIH1cbiAgfVxuICBmb3IgKHZhciBpID0gNDsgaSA8IDg7IGkrKykge1xuICAgIGZvciAodmFyIGogPSAyNDsgaiA+PSAwOyBqIC09IDgpIHtcbiAgICAgIG91dFIgPDw9IDE7XG4gICAgICBvdXRSIHw9IChpblIgPj4+IChqICsgaSkpICYgMTtcbiAgICAgIG91dFIgPDw9IDE7XG4gICAgICBvdXRSIHw9IChpbkwgPj4+IChqICsgaSkpICYgMTtcbiAgICB9XG4gIH1cblxuICBvdXRbb2ZmICsgMF0gPSBvdXRMID4+PiAwO1xuICBvdXRbb2ZmICsgMV0gPSBvdXRSID4+PiAwO1xufTtcblxuZXhwb3J0cy5wYzEgPSBmdW5jdGlvbiBwYzEoaW5MLCBpblIsIG91dCwgb2ZmKSB7XG4gIHZhciBvdXRMID0gMDtcbiAgdmFyIG91dFIgPSAwO1xuXG4gIC8vIDcsIDE1LCAyMywgMzEsIDM5LCA0NywgNTUsIDYzXG4gIC8vIDYsIDE0LCAyMiwgMzAsIDM5LCA0NywgNTUsIDYzXG4gIC8vIDUsIDEzLCAyMSwgMjksIDM5LCA0NywgNTUsIDYzXG4gIC8vIDQsIDEyLCAyMCwgMjhcbiAgZm9yICh2YXIgaSA9IDc7IGkgPj0gNTsgaS0tKSB7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPD0gMjQ7IGogKz0gOCkge1xuICAgICAgb3V0TCA8PD0gMTtcbiAgICAgIG91dEwgfD0gKGluUiA+PiAoaiArIGkpKSAmIDE7XG4gICAgfVxuICAgIGZvciAodmFyIGogPSAwOyBqIDw9IDI0OyBqICs9IDgpIHtcbiAgICAgIG91dEwgPDw9IDE7XG4gICAgICBvdXRMIHw9IChpbkwgPj4gKGogKyBpKSkgJiAxO1xuICAgIH1cbiAgfVxuICBmb3IgKHZhciBqID0gMDsgaiA8PSAyNDsgaiArPSA4KSB7XG4gICAgb3V0TCA8PD0gMTtcbiAgICBvdXRMIHw9IChpblIgPj4gKGogKyBpKSkgJiAxO1xuICB9XG5cbiAgLy8gMSwgOSwgMTcsIDI1LCAzMywgNDEsIDQ5LCA1N1xuICAvLyAyLCAxMCwgMTgsIDI2LCAzNCwgNDIsIDUwLCA1OFxuICAvLyAzLCAxMSwgMTksIDI3LCAzNSwgNDMsIDUxLCA1OVxuICAvLyAzNiwgNDQsIDUyLCA2MFxuICBmb3IgKHZhciBpID0gMTsgaSA8PSAzOyBpKyspIHtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8PSAyNDsgaiArPSA4KSB7XG4gICAgICBvdXRSIDw8PSAxO1xuICAgICAgb3V0UiB8PSAoaW5SID4+IChqICsgaSkpICYgMTtcbiAgICB9XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPD0gMjQ7IGogKz0gOCkge1xuICAgICAgb3V0UiA8PD0gMTtcbiAgICAgIG91dFIgfD0gKGluTCA+PiAoaiArIGkpKSAmIDE7XG4gICAgfVxuICB9XG4gIGZvciAodmFyIGogPSAwOyBqIDw9IDI0OyBqICs9IDgpIHtcbiAgICBvdXRSIDw8PSAxO1xuICAgIG91dFIgfD0gKGluTCA+PiAoaiArIGkpKSAmIDE7XG4gIH1cblxuICBvdXRbb2ZmICsgMF0gPSBvdXRMID4+PiAwO1xuICBvdXRbb2ZmICsgMV0gPSBvdXRSID4+PiAwO1xufTtcblxuZXhwb3J0cy5yMjhzaGwgPSBmdW5jdGlvbiByMjhzaGwobnVtLCBzaGlmdCkge1xuICByZXR1cm4gKChudW0gPDwgc2hpZnQpICYgMHhmZmZmZmZmKSB8IChudW0gPj4+ICgyOCAtIHNoaWZ0KSk7XG59O1xuXG52YXIgcGMydGFibGUgPSBbXG4gIC8vIGluTCA9PiBvdXRMXG4gIDE0LCAxMSwgMTcsIDQsIDI3LCAyMywgMjUsIDAsXG4gIDEzLCAyMiwgNywgMTgsIDUsIDksIDE2LCAyNCxcbiAgMiwgMjAsIDEyLCAyMSwgMSwgOCwgMTUsIDI2LFxuXG4gIC8vIGluUiA9PiBvdXRSXG4gIDE1LCA0LCAyNSwgMTksIDksIDEsIDI2LCAxNixcbiAgNSwgMTEsIDIzLCA4LCAxMiwgNywgMTcsIDAsXG4gIDIyLCAzLCAxMCwgMTQsIDYsIDIwLCAyNywgMjRcbl07XG5cbmV4cG9ydHMucGMyID0gZnVuY3Rpb24gcGMyKGluTCwgaW5SLCBvdXQsIG9mZikge1xuICB2YXIgb3V0TCA9IDA7XG4gIHZhciBvdXRSID0gMDtcblxuICB2YXIgbGVuID0gcGMydGFibGUubGVuZ3RoID4+PiAxO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgb3V0TCA8PD0gMTtcbiAgICBvdXRMIHw9IChpbkwgPj4+IHBjMnRhYmxlW2ldKSAmIDB4MTtcbiAgfVxuICBmb3IgKHZhciBpID0gbGVuOyBpIDwgcGMydGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICBvdXRSIDw8PSAxO1xuICAgIG91dFIgfD0gKGluUiA+Pj4gcGMydGFibGVbaV0pICYgMHgxO1xuICB9XG5cbiAgb3V0W29mZiArIDBdID0gb3V0TCA+Pj4gMDtcbiAgb3V0W29mZiArIDFdID0gb3V0UiA+Pj4gMDtcbn07XG5cbmV4cG9ydHMuZXhwYW5kID0gZnVuY3Rpb24gZXhwYW5kKHIsIG91dCwgb2ZmKSB7XG4gIHZhciBvdXRMID0gMDtcbiAgdmFyIG91dFIgPSAwO1xuXG4gIG91dEwgPSAoKHIgJiAxKSA8PCA1KSB8IChyID4+PiAyNyk7XG4gIGZvciAodmFyIGkgPSAyMzsgaSA+PSAxNTsgaSAtPSA0KSB7XG4gICAgb3V0TCA8PD0gNjtcbiAgICBvdXRMIHw9IChyID4+PiBpKSAmIDB4M2Y7XG4gIH1cbiAgZm9yICh2YXIgaSA9IDExOyBpID49IDM7IGkgLT0gNCkge1xuICAgIG91dFIgfD0gKHIgPj4+IGkpICYgMHgzZjtcbiAgICBvdXRSIDw8PSA2O1xuICB9XG4gIG91dFIgfD0gKChyICYgMHgxZikgPDwgMSkgfCAociA+Pj4gMzEpO1xuXG4gIG91dFtvZmYgKyAwXSA9IG91dEwgPj4+IDA7XG4gIG91dFtvZmYgKyAxXSA9IG91dFIgPj4+IDA7XG59O1xuXG52YXIgc1RhYmxlID0gW1xuICAxNCwgMCwgNCwgMTUsIDEzLCA3LCAxLCA0LCAyLCAxNCwgMTUsIDIsIDExLCAxMywgOCwgMSxcbiAgMywgMTAsIDEwLCA2LCA2LCAxMiwgMTIsIDExLCA1LCA5LCA5LCA1LCAwLCAzLCA3LCA4LFxuICA0LCAxNSwgMSwgMTIsIDE0LCA4LCA4LCAyLCAxMywgNCwgNiwgOSwgMiwgMSwgMTEsIDcsXG4gIDE1LCA1LCAxMiwgMTEsIDksIDMsIDcsIDE0LCAzLCAxMCwgMTAsIDAsIDUsIDYsIDAsIDEzLFxuXG4gIDE1LCAzLCAxLCAxMywgOCwgNCwgMTQsIDcsIDYsIDE1LCAxMSwgMiwgMywgOCwgNCwgMTQsXG4gIDksIDEyLCA3LCAwLCAyLCAxLCAxMywgMTAsIDEyLCA2LCAwLCA5LCA1LCAxMSwgMTAsIDUsXG4gIDAsIDEzLCAxNCwgOCwgNywgMTAsIDExLCAxLCAxMCwgMywgNCwgMTUsIDEzLCA0LCAxLCAyLFxuICA1LCAxMSwgOCwgNiwgMTIsIDcsIDYsIDEyLCA5LCAwLCAzLCA1LCAyLCAxNCwgMTUsIDksXG5cbiAgMTAsIDEzLCAwLCA3LCA5LCAwLCAxNCwgOSwgNiwgMywgMywgNCwgMTUsIDYsIDUsIDEwLFxuICAxLCAyLCAxMywgOCwgMTIsIDUsIDcsIDE0LCAxMSwgMTIsIDQsIDExLCAyLCAxNSwgOCwgMSxcbiAgMTMsIDEsIDYsIDEwLCA0LCAxMywgOSwgMCwgOCwgNiwgMTUsIDksIDMsIDgsIDAsIDcsXG4gIDExLCA0LCAxLCAxNSwgMiwgMTQsIDEyLCAzLCA1LCAxMSwgMTAsIDUsIDE0LCAyLCA3LCAxMixcblxuICA3LCAxMywgMTMsIDgsIDE0LCAxMSwgMywgNSwgMCwgNiwgNiwgMTUsIDksIDAsIDEwLCAzLFxuICAxLCA0LCAyLCA3LCA4LCAyLCA1LCAxMiwgMTEsIDEsIDEyLCAxMCwgNCwgMTQsIDE1LCA5LFxuICAxMCwgMywgNiwgMTUsIDksIDAsIDAsIDYsIDEyLCAxMCwgMTEsIDEsIDcsIDEzLCAxMywgOCxcbiAgMTUsIDksIDEsIDQsIDMsIDUsIDE0LCAxMSwgNSwgMTIsIDIsIDcsIDgsIDIsIDQsIDE0LFxuXG4gIDIsIDE0LCAxMiwgMTEsIDQsIDIsIDEsIDEyLCA3LCA0LCAxMCwgNywgMTEsIDEzLCA2LCAxLFxuICA4LCA1LCA1LCAwLCAzLCAxNSwgMTUsIDEwLCAxMywgMywgMCwgOSwgMTQsIDgsIDksIDYsXG4gIDQsIDExLCAyLCA4LCAxLCAxMiwgMTEsIDcsIDEwLCAxLCAxMywgMTQsIDcsIDIsIDgsIDEzLFxuICAxNSwgNiwgOSwgMTUsIDEyLCAwLCA1LCA5LCA2LCAxMCwgMywgNCwgMCwgNSwgMTQsIDMsXG5cbiAgMTIsIDEwLCAxLCAxNSwgMTAsIDQsIDE1LCAyLCA5LCA3LCAyLCAxMiwgNiwgOSwgOCwgNSxcbiAgMCwgNiwgMTMsIDEsIDMsIDEzLCA0LCAxNCwgMTQsIDAsIDcsIDExLCA1LCAzLCAxMSwgOCxcbiAgOSwgNCwgMTQsIDMsIDE1LCAyLCA1LCAxMiwgMiwgOSwgOCwgNSwgMTIsIDE1LCAzLCAxMCxcbiAgNywgMTEsIDAsIDE0LCA0LCAxLCAxMCwgNywgMSwgNiwgMTMsIDAsIDExLCA4LCA2LCAxMyxcblxuICA0LCAxMywgMTEsIDAsIDIsIDExLCAxNCwgNywgMTUsIDQsIDAsIDksIDgsIDEsIDEzLCAxMCxcbiAgMywgMTQsIDEyLCAzLCA5LCA1LCA3LCAxMiwgNSwgMiwgMTAsIDE1LCA2LCA4LCAxLCA2LFxuICAxLCA2LCA0LCAxMSwgMTEsIDEzLCAxMywgOCwgMTIsIDEsIDMsIDQsIDcsIDEwLCAxNCwgNyxcbiAgMTAsIDksIDE1LCA1LCA2LCAwLCA4LCAxNSwgMCwgMTQsIDUsIDIsIDksIDMsIDIsIDEyLFxuXG4gIDEzLCAxLCAyLCAxNSwgOCwgMTMsIDQsIDgsIDYsIDEwLCAxNSwgMywgMTEsIDcsIDEsIDQsXG4gIDEwLCAxMiwgOSwgNSwgMywgNiwgMTQsIDExLCA1LCAwLCAwLCAxNCwgMTIsIDksIDcsIDIsXG4gIDcsIDIsIDExLCAxLCA0LCAxNCwgMSwgNywgOSwgNCwgMTIsIDEwLCAxNCwgOCwgMiwgMTMsXG4gIDAsIDE1LCA2LCAxMiwgMTAsIDksIDEzLCAwLCAxNSwgMywgMywgNSwgNSwgNiwgOCwgMTFcbl07XG5cbmV4cG9ydHMuc3Vic3RpdHV0ZSA9IGZ1bmN0aW9uIHN1YnN0aXR1dGUoaW5MLCBpblIpIHtcbiAgdmFyIG91dCA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgdmFyIGIgPSAoaW5MID4+PiAoMTggLSBpICogNikpICYgMHgzZjtcbiAgICB2YXIgc2IgPSBzVGFibGVbaSAqIDB4NDAgKyBiXTtcblxuICAgIG91dCA8PD0gNDtcbiAgICBvdXQgfD0gc2I7XG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcbiAgICB2YXIgYiA9IChpblIgPj4+ICgxOCAtIGkgKiA2KSkgJiAweDNmO1xuICAgIHZhciBzYiA9IHNUYWJsZVs0ICogMHg0MCArIGkgKiAweDQwICsgYl07XG5cbiAgICBvdXQgPDw9IDQ7XG4gICAgb3V0IHw9IHNiO1xuICB9XG4gIHJldHVybiBvdXQgPj4+IDA7XG59O1xuXG52YXIgcGVybXV0ZVRhYmxlID0gW1xuICAxNiwgMjUsIDEyLCAxMSwgMywgMjAsIDQsIDE1LCAzMSwgMTcsIDksIDYsIDI3LCAxNCwgMSwgMjIsXG4gIDMwLCAyNCwgOCwgMTgsIDAsIDUsIDI5LCAyMywgMTMsIDE5LCAyLCAyNiwgMTAsIDIxLCAyOCwgN1xuXTtcblxuZXhwb3J0cy5wZXJtdXRlID0gZnVuY3Rpb24gcGVybXV0ZShudW0pIHtcbiAgdmFyIG91dCA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcGVybXV0ZVRhYmxlLmxlbmd0aDsgaSsrKSB7XG4gICAgb3V0IDw8PSAxO1xuICAgIG91dCB8PSAobnVtID4+PiBwZXJtdXRlVGFibGVbaV0pICYgMHgxO1xuICB9XG4gIHJldHVybiBvdXQgPj4+IDA7XG59O1xuXG5leHBvcnRzLnBhZFNwbGl0ID0gZnVuY3Rpb24gcGFkU3BsaXQobnVtLCBzaXplLCBncm91cCkge1xuICB2YXIgc3RyID0gbnVtLnRvU3RyaW5nKDIpO1xuICB3aGlsZSAoc3RyLmxlbmd0aCA8IHNpemUpXG4gICAgc3RyID0gJzAnICsgc3RyO1xuXG4gIHZhciBvdXQgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpICs9IGdyb3VwKVxuICAgIG91dC5wdXNoKHN0ci5zbGljZShpLCBpICsgZ3JvdXApKTtcbiAgcmV0dXJuIG91dC5qb2luKCcgJyk7XG59O1xuIiwidmFyIGdlbmVyYXRlUHJpbWUgPSByZXF1aXJlKCcuL2xpYi9nZW5lcmF0ZVByaW1lJylcbnZhciBwcmltZXMgPSByZXF1aXJlKCcuL2xpYi9wcmltZXMuanNvbicpXG5cbnZhciBESCA9IHJlcXVpcmUoJy4vbGliL2RoJylcblxuZnVuY3Rpb24gZ2V0RGlmZmllSGVsbG1hbiAobW9kKSB7XG4gIHZhciBwcmltZSA9IG5ldyBCdWZmZXIocHJpbWVzW21vZF0ucHJpbWUsICdoZXgnKVxuICB2YXIgZ2VuID0gbmV3IEJ1ZmZlcihwcmltZXNbbW9kXS5nZW4sICdoZXgnKVxuXG4gIHJldHVybiBuZXcgREgocHJpbWUsIGdlbilcbn1cblxudmFyIEVOQ09ESU5HUyA9IHtcbiAgJ2JpbmFyeSc6IHRydWUsICdoZXgnOiB0cnVlLCAnYmFzZTY0JzogdHJ1ZVxufVxuXG5mdW5jdGlvbiBjcmVhdGVEaWZmaWVIZWxsbWFuIChwcmltZSwgZW5jLCBnZW5lcmF0b3IsIGdlbmMpIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihlbmMpIHx8IEVOQ09ESU5HU1tlbmNdID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gY3JlYXRlRGlmZmllSGVsbG1hbihwcmltZSwgJ2JpbmFyeScsIGVuYywgZ2VuZXJhdG9yKVxuICB9XG5cbiAgZW5jID0gZW5jIHx8ICdiaW5hcnknXG4gIGdlbmMgPSBnZW5jIHx8ICdiaW5hcnknXG4gIGdlbmVyYXRvciA9IGdlbmVyYXRvciB8fCBuZXcgQnVmZmVyKFsyXSlcblxuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihnZW5lcmF0b3IpKSB7XG4gICAgZ2VuZXJhdG9yID0gbmV3IEJ1ZmZlcihnZW5lcmF0b3IsIGdlbmMpXG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1lID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBuZXcgREgoZ2VuZXJhdGVQcmltZShwcmltZSwgZ2VuZXJhdG9yKSwgZ2VuZXJhdG9yLCB0cnVlKVxuICB9XG5cbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocHJpbWUpKSB7XG4gICAgcHJpbWUgPSBuZXcgQnVmZmVyKHByaW1lLCBlbmMpXG4gIH1cblxuICByZXR1cm4gbmV3IERIKHByaW1lLCBnZW5lcmF0b3IsIHRydWUpXG59XG5cbmV4cG9ydHMuRGlmZmllSGVsbG1hbkdyb3VwID0gZXhwb3J0cy5jcmVhdGVEaWZmaWVIZWxsbWFuR3JvdXAgPSBleHBvcnRzLmdldERpZmZpZUhlbGxtYW4gPSBnZXREaWZmaWVIZWxsbWFuXG5leHBvcnRzLmNyZWF0ZURpZmZpZUhlbGxtYW4gPSBleHBvcnRzLkRpZmZpZUhlbGxtYW4gPSBjcmVhdGVEaWZmaWVIZWxsbWFuXG4iLCJ2YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIE1pbGxlclJhYmluID0gcmVxdWlyZSgnbWlsbGVyLXJhYmluJyk7XG52YXIgbWlsbGVyUmFiaW4gPSBuZXcgTWlsbGVyUmFiaW4oKTtcbnZhciBUV0VOVFlGT1VSID0gbmV3IEJOKDI0KTtcbnZhciBFTEVWRU4gPSBuZXcgQk4oMTEpO1xudmFyIFRFTiA9IG5ldyBCTigxMCk7XG52YXIgVEhSRUUgPSBuZXcgQk4oMyk7XG52YXIgU0VWRU4gPSBuZXcgQk4oNyk7XG52YXIgcHJpbWVzID0gcmVxdWlyZSgnLi9nZW5lcmF0ZVByaW1lJyk7XG52YXIgcmFuZG9tQnl0ZXMgPSByZXF1aXJlKCdyYW5kb21ieXRlcycpO1xubW9kdWxlLmV4cG9ydHMgPSBESDtcblxuZnVuY3Rpb24gc2V0UHVibGljS2V5KHB1YiwgZW5jKSB7XG4gIGVuYyA9IGVuYyB8fCAndXRmOCc7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHB1YikpIHtcbiAgICBwdWIgPSBuZXcgQnVmZmVyKHB1YiwgZW5jKTtcbiAgfVxuICB0aGlzLl9wdWIgPSBuZXcgQk4ocHViKTtcbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIHNldFByaXZhdGVLZXkocHJpdiwgZW5jKSB7XG4gIGVuYyA9IGVuYyB8fCAndXRmOCc7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHByaXYpKSB7XG4gICAgcHJpdiA9IG5ldyBCdWZmZXIocHJpdiwgZW5jKTtcbiAgfVxuICB0aGlzLl9wcml2ID0gbmV3IEJOKHByaXYpO1xuICByZXR1cm4gdGhpcztcbn1cblxudmFyIHByaW1lQ2FjaGUgPSB7fTtcbmZ1bmN0aW9uIGNoZWNrUHJpbWUocHJpbWUsIGdlbmVyYXRvcikge1xuICB2YXIgZ2VuID0gZ2VuZXJhdG9yLnRvU3RyaW5nKCdoZXgnKTtcbiAgdmFyIGhleCA9IFtnZW4sIHByaW1lLnRvU3RyaW5nKDE2KV0uam9pbignXycpO1xuICBpZiAoaGV4IGluIHByaW1lQ2FjaGUpIHtcbiAgICByZXR1cm4gcHJpbWVDYWNoZVtoZXhdO1xuICB9XG4gIHZhciBlcnJvciA9IDA7XG5cbiAgaWYgKHByaW1lLmlzRXZlbigpIHx8XG4gICAgIXByaW1lcy5zaW1wbGVTaWV2ZSB8fFxuICAgICFwcmltZXMuZmVybWF0VGVzdChwcmltZSkgfHxcbiAgICAhbWlsbGVyUmFiaW4udGVzdChwcmltZSkpIHtcbiAgICAvL25vdCBhIHByaW1lIHNvICsxXG4gICAgZXJyb3IgKz0gMTtcblxuICAgIGlmIChnZW4gPT09ICcwMicgfHwgZ2VuID09PSAnMDUnKSB7XG4gICAgICAvLyB3ZSdkIGJlIGFibGUgdG8gY2hlY2sgdGhlIGdlbmVyYXRvclxuICAgICAgLy8gaXQgd291bGQgZmFpbCBzbyArOFxuICAgICAgZXJyb3IgKz0gODtcbiAgICB9IGVsc2Uge1xuICAgICAgLy93ZSB3b3VsZG4ndCBiZSBhYmxlIHRvIHRlc3QgdGhlIGdlbmVyYXRvclxuICAgICAgLy8gc28gKzRcbiAgICAgIGVycm9yICs9IDQ7XG4gICAgfVxuICAgIHByaW1lQ2FjaGVbaGV4XSA9IGVycm9yO1xuICAgIHJldHVybiBlcnJvcjtcbiAgfVxuICBpZiAoIW1pbGxlclJhYmluLnRlc3QocHJpbWUuc2hybigxKSkpIHtcbiAgICAvL25vdCBhIHNhZmUgcHJpbWVcbiAgICBlcnJvciArPSAyO1xuICB9XG4gIHZhciByZW07XG4gIHN3aXRjaCAoZ2VuKSB7XG4gICAgY2FzZSAnMDInOlxuICAgICAgaWYgKHByaW1lLm1vZChUV0VOVFlGT1VSKS5jbXAoRUxFVkVOKSkge1xuICAgICAgICAvLyB1bnN1aWRhYmxlIGdlbmVyYXRvclxuICAgICAgICBlcnJvciArPSA4O1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnMDUnOlxuICAgICAgcmVtID0gcHJpbWUubW9kKFRFTik7XG4gICAgICBpZiAocmVtLmNtcChUSFJFRSkgJiYgcmVtLmNtcChTRVZFTikpIHtcbiAgICAgICAgLy8gcHJpbWUgbW9kIDEwIG5lZWRzIHRvIGVxdWFsIDMgb3IgN1xuICAgICAgICBlcnJvciArPSA4O1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGVycm9yICs9IDQ7XG4gIH1cbiAgcHJpbWVDYWNoZVtoZXhdID0gZXJyb3I7XG4gIHJldHVybiBlcnJvcjtcbn1cblxuZnVuY3Rpb24gREgocHJpbWUsIGdlbmVyYXRvciwgbWFsbGVhYmxlKSB7XG4gIHRoaXMuc2V0R2VuZXJhdG9yKGdlbmVyYXRvcik7XG4gIHRoaXMuX19wcmltZSA9IG5ldyBCTihwcmltZSk7XG4gIHRoaXMuX3ByaW1lID0gQk4ubW9udCh0aGlzLl9fcHJpbWUpO1xuICB0aGlzLl9wcmltZUxlbiA9IHByaW1lLmxlbmd0aDtcbiAgdGhpcy5fcHViID0gdW5kZWZpbmVkO1xuICB0aGlzLl9wcml2ID0gdW5kZWZpbmVkO1xuICB0aGlzLl9wcmltZUNvZGUgPSB1bmRlZmluZWQ7XG4gIGlmIChtYWxsZWFibGUpIHtcbiAgICB0aGlzLnNldFB1YmxpY0tleSA9IHNldFB1YmxpY0tleTtcbiAgICB0aGlzLnNldFByaXZhdGVLZXkgPSBzZXRQcml2YXRlS2V5O1xuICB9IGVsc2Uge1xuICAgIHRoaXMuX3ByaW1lQ29kZSA9IDg7XG4gIH1cbn1cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShESC5wcm90b3R5cGUsICd2ZXJpZnlFcnJvcicsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLl9wcmltZUNvZGUgIT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLl9wcmltZUNvZGUgPSBjaGVja1ByaW1lKHRoaXMuX19wcmltZSwgdGhpcy5fX2dlbik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9wcmltZUNvZGU7XG4gIH1cbn0pO1xuREgucHJvdG90eXBlLmdlbmVyYXRlS2V5cyA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKCF0aGlzLl9wcml2KSB7XG4gICAgdGhpcy5fcHJpdiA9IG5ldyBCTihyYW5kb21CeXRlcyh0aGlzLl9wcmltZUxlbikpO1xuICB9XG4gIHRoaXMuX3B1YiA9IHRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKTtcbiAgcmV0dXJuIHRoaXMuZ2V0UHVibGljS2V5KCk7XG59O1xuXG5ESC5wcm90b3R5cGUuY29tcHV0ZVNlY3JldCA9IGZ1bmN0aW9uIChvdGhlcikge1xuICBvdGhlciA9IG5ldyBCTihvdGhlcik7XG4gIG90aGVyID0gb3RoZXIudG9SZWQodGhpcy5fcHJpbWUpO1xuICB2YXIgc2VjcmV0ID0gb3RoZXIucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKTtcbiAgdmFyIG91dCA9IG5ldyBCdWZmZXIoc2VjcmV0LnRvQXJyYXkoKSk7XG4gIHZhciBwcmltZSA9IHRoaXMuZ2V0UHJpbWUoKTtcbiAgaWYgKG91dC5sZW5ndGggPCBwcmltZS5sZW5ndGgpIHtcbiAgICB2YXIgZnJvbnQgPSBuZXcgQnVmZmVyKHByaW1lLmxlbmd0aCAtIG91dC5sZW5ndGgpO1xuICAgIGZyb250LmZpbGwoMCk7XG4gICAgb3V0ID0gQnVmZmVyLmNvbmNhdChbZnJvbnQsIG91dF0pO1xuICB9XG4gIHJldHVybiBvdXQ7XG59O1xuXG5ESC5wcm90b3R5cGUuZ2V0UHVibGljS2V5ID0gZnVuY3Rpb24gZ2V0UHVibGljS2V5KGVuYykge1xuICByZXR1cm4gZm9ybWF0UmV0dXJuVmFsdWUodGhpcy5fcHViLCBlbmMpO1xufTtcblxuREgucHJvdG90eXBlLmdldFByaXZhdGVLZXkgPSBmdW5jdGlvbiBnZXRQcml2YXRlS2V5KGVuYykge1xuICByZXR1cm4gZm9ybWF0UmV0dXJuVmFsdWUodGhpcy5fcHJpdiwgZW5jKTtcbn07XG5cbkRILnByb3RvdHlwZS5nZXRQcmltZSA9IGZ1bmN0aW9uIChlbmMpIHtcbiAgcmV0dXJuIGZvcm1hdFJldHVyblZhbHVlKHRoaXMuX19wcmltZSwgZW5jKTtcbn07XG5cbkRILnByb3RvdHlwZS5nZXRHZW5lcmF0b3IgPSBmdW5jdGlvbiAoZW5jKSB7XG4gIHJldHVybiBmb3JtYXRSZXR1cm5WYWx1ZSh0aGlzLl9nZW4sIGVuYyk7XG59O1xuXG5ESC5wcm90b3R5cGUuc2V0R2VuZXJhdG9yID0gZnVuY3Rpb24gKGdlbiwgZW5jKSB7XG4gIGVuYyA9IGVuYyB8fCAndXRmOCc7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGdlbikpIHtcbiAgICBnZW4gPSBuZXcgQnVmZmVyKGdlbiwgZW5jKTtcbiAgfVxuICB0aGlzLl9fZ2VuID0gZ2VuO1xuICB0aGlzLl9nZW4gPSBuZXcgQk4oZ2VuKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiBmb3JtYXRSZXR1cm5WYWx1ZShibiwgZW5jKSB7XG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKGJuLnRvQXJyYXkoKSk7XG4gIGlmICghZW5jKSB7XG4gICAgcmV0dXJuIGJ1ZjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYnVmLnRvU3RyaW5nKGVuYyk7XG4gIH1cbn1cbiIsInZhciByYW5kb21CeXRlcyA9IHJlcXVpcmUoJ3JhbmRvbWJ5dGVzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZpbmRQcmltZTtcbmZpbmRQcmltZS5zaW1wbGVTaWV2ZSA9IHNpbXBsZVNpZXZlO1xuZmluZFByaW1lLmZlcm1hdFRlc3QgPSBmZXJtYXRUZXN0O1xudmFyIEJOID0gcmVxdWlyZSgnYm4uanMnKTtcbnZhciBUV0VOVFlGT1VSID0gbmV3IEJOKDI0KTtcbnZhciBNaWxsZXJSYWJpbiA9IHJlcXVpcmUoJ21pbGxlci1yYWJpbicpO1xudmFyIG1pbGxlclJhYmluID0gbmV3IE1pbGxlclJhYmluKCk7XG52YXIgT05FID0gbmV3IEJOKDEpO1xudmFyIFRXTyA9IG5ldyBCTigyKTtcbnZhciBGSVZFID0gbmV3IEJOKDUpO1xudmFyIFNJWFRFRU4gPSBuZXcgQk4oMTYpO1xudmFyIEVJR0hUID0gbmV3IEJOKDgpO1xudmFyIFRFTiA9IG5ldyBCTigxMCk7XG52YXIgVEhSRUUgPSBuZXcgQk4oMyk7XG52YXIgU0VWRU4gPSBuZXcgQk4oNyk7XG52YXIgRUxFVkVOID0gbmV3IEJOKDExKTtcbnZhciBGT1VSID0gbmV3IEJOKDQpO1xudmFyIFRXRUxWRSA9IG5ldyBCTigxMik7XG52YXIgcHJpbWVzID0gbnVsbDtcblxuZnVuY3Rpb24gX2dldFByaW1lcygpIHtcbiAgaWYgKHByaW1lcyAhPT0gbnVsbClcbiAgICByZXR1cm4gcHJpbWVzO1xuXG4gIHZhciBsaW1pdCA9IDB4MTAwMDAwO1xuICB2YXIgcmVzID0gW107XG4gIHJlc1swXSA9IDI7XG4gIGZvciAodmFyIGkgPSAxLCBrID0gMzsgayA8IGxpbWl0OyBrICs9IDIpIHtcbiAgICB2YXIgc3FydCA9IE1hdGguY2VpbChNYXRoLnNxcnQoaykpO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgaSAmJiByZXNbal0gPD0gc3FydDsgaisrKVxuICAgICAgaWYgKGsgJSByZXNbal0gPT09IDApXG4gICAgICAgIGJyZWFrO1xuXG4gICAgaWYgKGkgIT09IGogJiYgcmVzW2pdIDw9IHNxcnQpXG4gICAgICBjb250aW51ZTtcblxuICAgIHJlc1tpKytdID0gaztcbiAgfVxuICBwcmltZXMgPSByZXM7XG4gIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIHNpbXBsZVNpZXZlKHApIHtcbiAgdmFyIHByaW1lcyA9IF9nZXRQcmltZXMoKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHByaW1lcy5sZW5ndGg7IGkrKylcbiAgICBpZiAocC5tb2RuKHByaW1lc1tpXSkgPT09IDApIHtcbiAgICAgIGlmIChwLmNtcG4ocHJpbWVzW2ldKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGZlcm1hdFRlc3QocCkge1xuICB2YXIgcmVkID0gQk4ubW9udChwKTtcbiAgcmV0dXJuIFRXTy50b1JlZChyZWQpLnJlZFBvdyhwLnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpID09PSAwO1xufVxuXG5mdW5jdGlvbiBmaW5kUHJpbWUoYml0cywgZ2VuKSB7XG4gIGlmIChiaXRzIDwgMTYpIHtcbiAgICAvLyB0aGlzIGlzIHdoYXQgb3BlbnNzbCBkb2VzXG4gICAgaWYgKGdlbiA9PT0gMiB8fCBnZW4gPT09IDUpIHtcbiAgICAgIHJldHVybiBuZXcgQk4oWzB4OGMsIDB4N2JdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBCTihbMHg4YywgMHgyN10pO1xuICAgIH1cbiAgfVxuICBnZW4gPSBuZXcgQk4oZ2VuKTtcblxuICB2YXIgbnVtLCBuMjtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIG51bSA9IG5ldyBCTihyYW5kb21CeXRlcyhNYXRoLmNlaWwoYml0cyAvIDgpKSk7XG4gICAgd2hpbGUgKG51bS5iaXRMZW5ndGgoKSA+IGJpdHMpIHtcbiAgICAgIG51bS5pc2hybigxKTtcbiAgICB9XG4gICAgaWYgKG51bS5pc0V2ZW4oKSkge1xuICAgICAgbnVtLmlhZGQoT05FKTtcbiAgICB9XG4gICAgaWYgKCFudW0udGVzdG4oMSkpIHtcbiAgICAgIG51bS5pYWRkKFRXTyk7XG4gICAgfVxuICAgIGlmICghZ2VuLmNtcChUV08pKSB7XG4gICAgICB3aGlsZSAobnVtLm1vZChUV0VOVFlGT1VSKS5jbXAoRUxFVkVOKSkge1xuICAgICAgICBudW0uaWFkZChGT1VSKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFnZW4uY21wKEZJVkUpKSB7XG4gICAgICB3aGlsZSAobnVtLm1vZChURU4pLmNtcChUSFJFRSkpIHtcbiAgICAgICAgbnVtLmlhZGQoRk9VUik7XG4gICAgICB9XG4gICAgfVxuICAgIG4yID0gbnVtLnNocm4oMSk7XG4gICAgaWYgKHNpbXBsZVNpZXZlKG4yKSAmJiBzaW1wbGVTaWV2ZShudW0pICYmXG4gICAgICBmZXJtYXRUZXN0KG4yKSAmJiBmZXJtYXRUZXN0KG51bSkgJiZcbiAgICAgIG1pbGxlclJhYmluLnRlc3QobjIpICYmIG1pbGxlclJhYmluLnRlc3QobnVtKSkge1xuICAgICAgcmV0dXJuIG51bTtcbiAgICB9XG4gIH1cblxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICAgIFwibW9kcDFcIjoge1xuICAgICAgICBcImdlblwiOiBcIjAyXCIsXG4gICAgICAgIFwicHJpbWVcIjogXCJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjNhMzYyMGZmZmZmZmZmZmZmZmZmZmZcIlxuICAgIH0sXG4gICAgXCJtb2RwMlwiOiB7XG4gICAgICAgIFwiZ2VuXCI6IFwiMDJcIixcbiAgICAgICAgXCJwcmltZVwiOiBcImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U2NTM4MWZmZmZmZmZmZmZmZmZmZmZcIlxuICAgIH0sXG4gICAgXCJtb2RwNVwiOiB7XG4gICAgICAgIFwiZ2VuXCI6IFwiMDJcIixcbiAgICAgICAgXCJwcmltZVwiOiBcImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMjM3MzI3ZmZmZmZmZmZmZmZmZmZmZlwiXG4gICAgfSxcbiAgICBcIm1vZHAxNFwiOiB7XG4gICAgICAgIFwiZ2VuXCI6IFwiMDJcIixcbiAgICAgICAgXCJwcmltZVwiOiBcImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhY2FhNjhmZmZmZmZmZmZmZmZmZmZmXCJcbiAgICB9LFxuICAgIFwibW9kcDE1XCI6IHtcbiAgICAgICAgXCJnZW5cIjogXCIwMlwiLFxuICAgICAgICBcInByaW1lXCI6IFwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkzYWQyY2FmZmZmZmZmZmZmZmZmZmZmXCJcbiAgICB9LFxuICAgIFwibW9kcDE2XCI6IHtcbiAgICAgICAgXCJnZW5cIjogXCIwMlwiLFxuICAgICAgICBcInByaW1lXCI6IFwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDYzMTk5ZmZmZmZmZmZmZmZmZmZmZlwiXG4gICAgfSxcbiAgICBcIm1vZHAxN1wiOiB7XG4gICAgICAgIFwiZ2VuXCI6IFwiMDJcIixcbiAgICAgICAgXCJwcmltZVwiOiBcImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkY2M0MDI0ZmZmZmZmZmZmZmZmZmZmZlwiXG4gICAgfSxcbiAgICBcIm1vZHAxOFwiOiB7XG4gICAgICAgIFwiZ2VuXCI6IFwiMDJcIixcbiAgICAgICAgXCJwcmltZVwiOiBcImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkYmUxMTU5NzRhMzkyNmYxMmZlZTVlNDM4Nzc3Y2I2YTkzMmRmOGNkOGJlYzRkMDczYjkzMWJhM2JjODMyYjY4ZDlkZDMwMDc0MWZhN2JmOGFmYzQ3ZWQyNTc2ZjY5MzZiYTQyNDY2M2FhYjYzOWM1YWU0ZjU2ODM0MjNiNDc0MmJmMWM5NzgyMzhmMTZjYmUzOWQ2NTJkZTNmZGI4YmVmYzg0OGFkOTIyMjIyZTA0YTQwMzdjMDcxM2ViNTdhODFhMjNmMGM3MzQ3M2ZjNjQ2Y2VhMzA2YjRiY2JjODg2MmY4Mzg1ZGRmYTlkNGI3ZmEyYzA4N2U4Nzk2ODMzMDNlZDViZGQzYTA2MmIzY2Y1YjNhMjc4YTY2ZDJhMTNmODNmNDRmODJkZGYzMTBlZTA3NGFiNmEzNjQ1OTdlODk5YTAyNTVkYzE2NGYzMWNjNTA4NDY4NTFkZjlhYjQ4MTk1ZGVkN2VhMWIxZDUxMGJkN2VlNzRkNzNmYWYzNmJjMzFlY2ZhMjY4MzU5MDQ2ZjRlYjg3OWY5MjQwMDk0MzhiNDgxYzZjZDc4ODlhMDAyZWQ1ZWUzODJiYzkxOTBkYTZmYzAyNmU0Nzk1NThlNDQ3NTY3N2U5YWE5ZTMwNTBlMjc2NTY5NGRmYzgxZjU2ZTg4MGI5NmU3MTYwYzk4MGRkOThlZGQzZGZmZmZmZmZmZmZmZmZmZmZmXCJcbiAgICB9XG59IiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZWxsaXB0aWMgPSBleHBvcnRzO1xuXG5lbGxpcHRpYy52ZXJzaW9uID0gcmVxdWlyZSgnLi4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcbmVsbGlwdGljLnV0aWxzID0gcmVxdWlyZSgnLi9lbGxpcHRpYy91dGlscycpO1xuZWxsaXB0aWMucmFuZCA9IHJlcXVpcmUoJ2Jyb3JhbmQnKTtcbmVsbGlwdGljLmN1cnZlID0gcmVxdWlyZSgnLi9lbGxpcHRpYy9jdXJ2ZScpO1xuZWxsaXB0aWMuY3VydmVzID0gcmVxdWlyZSgnLi9lbGxpcHRpYy9jdXJ2ZXMnKTtcblxuLy8gUHJvdG9jb2xzXG5lbGxpcHRpYy5lYyA9IHJlcXVpcmUoJy4vZWxsaXB0aWMvZWMnKTtcbmVsbGlwdGljLmVkZHNhID0gcmVxdWlyZSgnLi9lbGxpcHRpYy9lZGRzYScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIGVsbGlwdGljID0gcmVxdWlyZSgnLi4vLi4vZWxsaXB0aWMnKTtcbnZhciB1dGlscyA9IGVsbGlwdGljLnV0aWxzO1xudmFyIGdldE5BRiA9IHV0aWxzLmdldE5BRjtcbnZhciBnZXRKU0YgPSB1dGlscy5nZXRKU0Y7XG52YXIgYXNzZXJ0ID0gdXRpbHMuYXNzZXJ0O1xuXG5mdW5jdGlvbiBCYXNlQ3VydmUodHlwZSwgY29uZikge1xuICB0aGlzLnR5cGUgPSB0eXBlO1xuICB0aGlzLnAgPSBuZXcgQk4oY29uZi5wLCAxNik7XG5cbiAgLy8gVXNlIE1vbnRnb21lcnksIHdoZW4gdGhlcmUgaXMgbm8gZmFzdCByZWR1Y3Rpb24gZm9yIHRoZSBwcmltZVxuICB0aGlzLnJlZCA9IGNvbmYucHJpbWUgPyBCTi5yZWQoY29uZi5wcmltZSkgOiBCTi5tb250KHRoaXMucCk7XG5cbiAgLy8gVXNlZnVsIGZvciBtYW55IGN1cnZlc1xuICB0aGlzLnplcm8gPSBuZXcgQk4oMCkudG9SZWQodGhpcy5yZWQpO1xuICB0aGlzLm9uZSA9IG5ldyBCTigxKS50b1JlZCh0aGlzLnJlZCk7XG4gIHRoaXMudHdvID0gbmV3IEJOKDIpLnRvUmVkKHRoaXMucmVkKTtcblxuICAvLyBDdXJ2ZSBjb25maWd1cmF0aW9uLCBvcHRpb25hbFxuICB0aGlzLm4gPSBjb25mLm4gJiYgbmV3IEJOKGNvbmYubiwgMTYpO1xuICB0aGlzLmcgPSBjb25mLmcgJiYgdGhpcy5wb2ludEZyb21KU09OKGNvbmYuZywgY29uZi5nUmVkKTtcblxuICAvLyBUZW1wb3JhcnkgYXJyYXlzXG4gIHRoaXMuX3duYWZUMSA9IG5ldyBBcnJheSg0KTtcbiAgdGhpcy5fd25hZlQyID0gbmV3IEFycmF5KDQpO1xuICB0aGlzLl93bmFmVDMgPSBuZXcgQXJyYXkoNCk7XG4gIHRoaXMuX3duYWZUNCA9IG5ldyBBcnJheSg0KTtcblxuICAvLyBHZW5lcmFsaXplZCBHcmVnIE1heHdlbGwncyB0cmlja1xuICB2YXIgYWRqdXN0Q291bnQgPSB0aGlzLm4gJiYgdGhpcy5wLmRpdih0aGlzLm4pO1xuICBpZiAoIWFkanVzdENvdW50IHx8IGFkanVzdENvdW50LmNtcG4oMTAwKSA+IDApIHtcbiAgICB0aGlzLnJlZE4gPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuX21heHdlbGxUcmljayA9IHRydWU7XG4gICAgdGhpcy5yZWROID0gdGhpcy5uLnRvUmVkKHRoaXMucmVkKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBCYXNlQ3VydmU7XG5cbkJhc2VDdXJ2ZS5wcm90b3R5cGUucG9pbnQgPSBmdW5jdGlvbiBwb2ludCgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbn07XG5cbkJhc2VDdXJ2ZS5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiB2YWxpZGF0ZSgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbn07XG5cbkJhc2VDdXJ2ZS5wcm90b3R5cGUuX2ZpeGVkTmFmTXVsID0gZnVuY3Rpb24gX2ZpeGVkTmFmTXVsKHAsIGspIHtcbiAgYXNzZXJ0KHAucHJlY29tcHV0ZWQpO1xuICB2YXIgZG91YmxlcyA9IHAuX2dldERvdWJsZXMoKTtcblxuICB2YXIgbmFmID0gZ2V0TkFGKGssIDEpO1xuICB2YXIgSSA9ICgxIDw8IChkb3VibGVzLnN0ZXAgKyAxKSkgLSAoZG91Ymxlcy5zdGVwICUgMiA9PT0gMCA/IDIgOiAxKTtcbiAgSSAvPSAzO1xuXG4gIC8vIFRyYW5zbGF0ZSBpbnRvIG1vcmUgd2luZG93ZWQgZm9ybVxuICB2YXIgcmVwciA9IFtdO1xuICBmb3IgKHZhciBqID0gMDsgaiA8IG5hZi5sZW5ndGg7IGogKz0gZG91Ymxlcy5zdGVwKSB7XG4gICAgdmFyIG5hZlcgPSAwO1xuICAgIGZvciAodmFyIGsgPSBqICsgZG91Ymxlcy5zdGVwIC0gMTsgayA+PSBqOyBrLS0pXG4gICAgICBuYWZXID0gKG5hZlcgPDwgMSkgKyBuYWZba107XG4gICAgcmVwci5wdXNoKG5hZlcpO1xuICB9XG5cbiAgdmFyIGEgPSB0aGlzLmpwb2ludChudWxsLCBudWxsLCBudWxsKTtcbiAgdmFyIGIgPSB0aGlzLmpwb2ludChudWxsLCBudWxsLCBudWxsKTtcbiAgZm9yICh2YXIgaSA9IEk7IGkgPiAwOyBpLS0pIHtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJlcHIubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBuYWZXID0gcmVwcltqXTtcbiAgICAgIGlmIChuYWZXID09PSBpKVxuICAgICAgICBiID0gYi5taXhlZEFkZChkb3VibGVzLnBvaW50c1tqXSk7XG4gICAgICBlbHNlIGlmIChuYWZXID09PSAtaSlcbiAgICAgICAgYiA9IGIubWl4ZWRBZGQoZG91Ymxlcy5wb2ludHNbal0ubmVnKCkpO1xuICAgIH1cbiAgICBhID0gYS5hZGQoYik7XG4gIH1cbiAgcmV0dXJuIGEudG9QKCk7XG59O1xuXG5CYXNlQ3VydmUucHJvdG90eXBlLl93bmFmTXVsID0gZnVuY3Rpb24gX3duYWZNdWwocCwgaykge1xuICB2YXIgdyA9IDQ7XG5cbiAgLy8gUHJlY29tcHV0ZSB3aW5kb3dcbiAgdmFyIG5hZlBvaW50cyA9IHAuX2dldE5BRlBvaW50cyh3KTtcbiAgdyA9IG5hZlBvaW50cy53bmQ7XG4gIHZhciB3bmQgPSBuYWZQb2ludHMucG9pbnRzO1xuXG4gIC8vIEdldCBOQUYgZm9ybVxuICB2YXIgbmFmID0gZ2V0TkFGKGssIHcpO1xuXG4gIC8vIEFkZCBgdGhpc2AqKE4rMSkgZm9yIGV2ZXJ5IHctTkFGIGluZGV4XG4gIHZhciBhY2MgPSB0aGlzLmpwb2ludChudWxsLCBudWxsLCBudWxsKTtcbiAgZm9yICh2YXIgaSA9IG5hZi5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIC8vIENvdW50IHplcm9lc1xuICAgIGZvciAodmFyIGsgPSAwOyBpID49IDAgJiYgbmFmW2ldID09PSAwOyBpLS0pXG4gICAgICBrKys7XG4gICAgaWYgKGkgPj0gMClcbiAgICAgIGsrKztcbiAgICBhY2MgPSBhY2MuZGJscChrKTtcblxuICAgIGlmIChpIDwgMClcbiAgICAgIGJyZWFrO1xuICAgIHZhciB6ID0gbmFmW2ldO1xuICAgIGFzc2VydCh6ICE9PSAwKTtcbiAgICBpZiAocC50eXBlID09PSAnYWZmaW5lJykge1xuICAgICAgLy8gSiArLSBQXG4gICAgICBpZiAoeiA+IDApXG4gICAgICAgIGFjYyA9IGFjYy5taXhlZEFkZCh3bmRbKHogLSAxKSA+PiAxXSk7XG4gICAgICBlbHNlXG4gICAgICAgIGFjYyA9IGFjYy5taXhlZEFkZCh3bmRbKC16IC0gMSkgPj4gMV0ubmVnKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBKICstIEpcbiAgICAgIGlmICh6ID4gMClcbiAgICAgICAgYWNjID0gYWNjLmFkZCh3bmRbKHogLSAxKSA+PiAxXSk7XG4gICAgICBlbHNlXG4gICAgICAgIGFjYyA9IGFjYy5hZGQod25kWygteiAtIDEpID4+IDFdLm5lZygpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHAudHlwZSA9PT0gJ2FmZmluZScgPyBhY2MudG9QKCkgOiBhY2M7XG59O1xuXG5CYXNlQ3VydmUucHJvdG90eXBlLl93bmFmTXVsQWRkID0gZnVuY3Rpb24gX3duYWZNdWxBZGQoZGVmVyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29lZmZzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYWNvYmlhblJlc3VsdCkge1xuICB2YXIgd25kV2lkdGggPSB0aGlzLl93bmFmVDE7XG4gIHZhciB3bmQgPSB0aGlzLl93bmFmVDI7XG4gIHZhciBuYWYgPSB0aGlzLl93bmFmVDM7XG5cbiAgLy8gRmlsbCBhbGwgYXJyYXlzXG4gIHZhciBtYXggPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIHAgPSBwb2ludHNbaV07XG4gICAgdmFyIG5hZlBvaW50cyA9IHAuX2dldE5BRlBvaW50cyhkZWZXKTtcbiAgICB3bmRXaWR0aFtpXSA9IG5hZlBvaW50cy53bmQ7XG4gICAgd25kW2ldID0gbmFmUG9pbnRzLnBvaW50cztcbiAgfVxuXG4gIC8vIENvbWIgc21hbGwgd2luZG93IE5BRnNcbiAgZm9yICh2YXIgaSA9IGxlbiAtIDE7IGkgPj0gMTsgaSAtPSAyKSB7XG4gICAgdmFyIGEgPSBpIC0gMTtcbiAgICB2YXIgYiA9IGk7XG4gICAgaWYgKHduZFdpZHRoW2FdICE9PSAxIHx8IHduZFdpZHRoW2JdICE9PSAxKSB7XG4gICAgICBuYWZbYV0gPSBnZXROQUYoY29lZmZzW2FdLCB3bmRXaWR0aFthXSk7XG4gICAgICBuYWZbYl0gPSBnZXROQUYoY29lZmZzW2JdLCB3bmRXaWR0aFtiXSk7XG4gICAgICBtYXggPSBNYXRoLm1heChuYWZbYV0ubGVuZ3RoLCBtYXgpO1xuICAgICAgbWF4ID0gTWF0aC5tYXgobmFmW2JdLmxlbmd0aCwgbWF4KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHZhciBjb21iID0gW1xuICAgICAgcG9pbnRzW2FdLCAvKiAxICovXG4gICAgICBudWxsLCAvKiAzICovXG4gICAgICBudWxsLCAvKiA1ICovXG4gICAgICBwb2ludHNbYl0gLyogNyAqL1xuICAgIF07XG5cbiAgICAvLyBUcnkgdG8gYXZvaWQgUHJvamVjdGl2ZSBwb2ludHMsIGlmIHBvc3NpYmxlXG4gICAgaWYgKHBvaW50c1thXS55LmNtcChwb2ludHNbYl0ueSkgPT09IDApIHtcbiAgICAgIGNvbWJbMV0gPSBwb2ludHNbYV0uYWRkKHBvaW50c1tiXSk7XG4gICAgICBjb21iWzJdID0gcG9pbnRzW2FdLnRvSigpLm1peGVkQWRkKHBvaW50c1tiXS5uZWcoKSk7XG4gICAgfSBlbHNlIGlmIChwb2ludHNbYV0ueS5jbXAocG9pbnRzW2JdLnkucmVkTmVnKCkpID09PSAwKSB7XG4gICAgICBjb21iWzFdID0gcG9pbnRzW2FdLnRvSigpLm1peGVkQWRkKHBvaW50c1tiXSk7XG4gICAgICBjb21iWzJdID0gcG9pbnRzW2FdLmFkZChwb2ludHNbYl0ubmVnKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21iWzFdID0gcG9pbnRzW2FdLnRvSigpLm1peGVkQWRkKHBvaW50c1tiXSk7XG4gICAgICBjb21iWzJdID0gcG9pbnRzW2FdLnRvSigpLm1peGVkQWRkKHBvaW50c1tiXS5uZWcoKSk7XG4gICAgfVxuXG4gICAgdmFyIGluZGV4ID0gW1xuICAgICAgLTMsIC8qIC0xIC0xICovXG4gICAgICAtMSwgLyogLTEgMCAqL1xuICAgICAgLTUsIC8qIC0xIDEgKi9cbiAgICAgIC03LCAvKiAwIC0xICovXG4gICAgICAwLCAvKiAwIDAgKi9cbiAgICAgIDcsIC8qIDAgMSAqL1xuICAgICAgNSwgLyogMSAtMSAqL1xuICAgICAgMSwgLyogMSAwICovXG4gICAgICAzICAvKiAxIDEgKi9cbiAgICBdO1xuXG4gICAgdmFyIGpzZiA9IGdldEpTRihjb2VmZnNbYV0sIGNvZWZmc1tiXSk7XG4gICAgbWF4ID0gTWF0aC5tYXgoanNmWzBdLmxlbmd0aCwgbWF4KTtcbiAgICBuYWZbYV0gPSBuZXcgQXJyYXkobWF4KTtcbiAgICBuYWZbYl0gPSBuZXcgQXJyYXkobWF4KTtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IG1heDsgaisrKSB7XG4gICAgICB2YXIgamEgPSBqc2ZbMF1bal0gfCAwO1xuICAgICAgdmFyIGpiID0ganNmWzFdW2pdIHwgMDtcblxuICAgICAgbmFmW2FdW2pdID0gaW5kZXhbKGphICsgMSkgKiAzICsgKGpiICsgMSldO1xuICAgICAgbmFmW2JdW2pdID0gMDtcbiAgICAgIHduZFthXSA9IGNvbWI7XG4gICAgfVxuICB9XG5cbiAgdmFyIGFjYyA9IHRoaXMuanBvaW50KG51bGwsIG51bGwsIG51bGwpO1xuICB2YXIgdG1wID0gdGhpcy5fd25hZlQ0O1xuICBmb3IgKHZhciBpID0gbWF4OyBpID49IDA7IGktLSkge1xuICAgIHZhciBrID0gMDtcblxuICAgIHdoaWxlIChpID49IDApIHtcbiAgICAgIHZhciB6ZXJvID0gdHJ1ZTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgICAgdG1wW2pdID0gbmFmW2pdW2ldIHwgMDtcbiAgICAgICAgaWYgKHRtcFtqXSAhPT0gMClcbiAgICAgICAgICB6ZXJvID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoIXplcm8pXG4gICAgICAgIGJyZWFrO1xuICAgICAgaysrO1xuICAgICAgaS0tO1xuICAgIH1cbiAgICBpZiAoaSA+PSAwKVxuICAgICAgaysrO1xuICAgIGFjYyA9IGFjYy5kYmxwKGspO1xuICAgIGlmIChpIDwgMClcbiAgICAgIGJyZWFrO1xuXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW47IGorKykge1xuICAgICAgdmFyIHogPSB0bXBbal07XG4gICAgICB2YXIgcDtcbiAgICAgIGlmICh6ID09PSAwKVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIGVsc2UgaWYgKHogPiAwKVxuICAgICAgICBwID0gd25kW2pdWyh6IC0gMSkgPj4gMV07XG4gICAgICBlbHNlIGlmICh6IDwgMClcbiAgICAgICAgcCA9IHduZFtqXVsoLXogLSAxKSA+PiAxXS5uZWcoKTtcblxuICAgICAgaWYgKHAudHlwZSA9PT0gJ2FmZmluZScpXG4gICAgICAgIGFjYyA9IGFjYy5taXhlZEFkZChwKTtcbiAgICAgIGVsc2VcbiAgICAgICAgYWNjID0gYWNjLmFkZChwKTtcbiAgICB9XG4gIH1cbiAgLy8gWmVyb2lmeSByZWZlcmVuY2VzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspXG4gICAgd25kW2ldID0gbnVsbDtcblxuICBpZiAoamFjb2JpYW5SZXN1bHQpXG4gICAgcmV0dXJuIGFjYztcbiAgZWxzZVxuICAgIHJldHVybiBhY2MudG9QKCk7XG59O1xuXG5mdW5jdGlvbiBCYXNlUG9pbnQoY3VydmUsIHR5cGUpIHtcbiAgdGhpcy5jdXJ2ZSA9IGN1cnZlO1xuICB0aGlzLnR5cGUgPSB0eXBlO1xuICB0aGlzLnByZWNvbXB1dGVkID0gbnVsbDtcbn1cbkJhc2VDdXJ2ZS5CYXNlUG9pbnQgPSBCYXNlUG9pbnQ7XG5cbkJhc2VQb2ludC5wcm90b3R5cGUuZXEgPSBmdW5jdGlvbiBlcSgvKm90aGVyKi8pIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbn07XG5cbkJhc2VQb2ludC5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiB2YWxpZGF0ZSgpIHtcbiAgcmV0dXJuIHRoaXMuY3VydmUudmFsaWRhdGUodGhpcyk7XG59O1xuXG5CYXNlQ3VydmUucHJvdG90eXBlLmRlY29kZVBvaW50ID0gZnVuY3Rpb24gZGVjb2RlUG9pbnQoYnl0ZXMsIGVuYykge1xuICBieXRlcyA9IHV0aWxzLnRvQXJyYXkoYnl0ZXMsIGVuYyk7XG5cbiAgdmFyIGxlbiA9IHRoaXMucC5ieXRlTGVuZ3RoKCk7XG5cbiAgLy8gdW5jb21wcmVzc2VkLCBoeWJyaWQtb2RkLCBoeWJyaWQtZXZlblxuICBpZiAoKGJ5dGVzWzBdID09PSAweDA0IHx8IGJ5dGVzWzBdID09PSAweDA2IHx8IGJ5dGVzWzBdID09PSAweDA3KSAmJlxuICAgICAgYnl0ZXMubGVuZ3RoIC0gMSA9PT0gMiAqIGxlbikge1xuICAgIGlmIChieXRlc1swXSA9PT0gMHgwNilcbiAgICAgIGFzc2VydChieXRlc1tieXRlcy5sZW5ndGggLSAxXSAlIDIgPT09IDApO1xuICAgIGVsc2UgaWYgKGJ5dGVzWzBdID09PSAweDA3KVxuICAgICAgYXNzZXJ0KGJ5dGVzW2J5dGVzLmxlbmd0aCAtIDFdICUgMiA9PT0gMSk7XG5cbiAgICB2YXIgcmVzID0gIHRoaXMucG9pbnQoYnl0ZXMuc2xpY2UoMSwgMSArIGxlbiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzLnNsaWNlKDEgKyBsZW4sIDEgKyAyICogbGVuKSk7XG5cbiAgICByZXR1cm4gcmVzO1xuICB9IGVsc2UgaWYgKChieXRlc1swXSA9PT0gMHgwMiB8fCBieXRlc1swXSA9PT0gMHgwMykgJiZcbiAgICAgICAgICAgICAgYnl0ZXMubGVuZ3RoIC0gMSA9PT0gbGVuKSB7XG4gICAgcmV0dXJuIHRoaXMucG9pbnRGcm9tWChieXRlcy5zbGljZSgxLCAxICsgbGVuKSwgYnl0ZXNbMF0gPT09IDB4MDMpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignVW5rbm93biBwb2ludCBmb3JtYXQnKTtcbn07XG5cbkJhc2VQb2ludC5wcm90b3R5cGUuZW5jb2RlQ29tcHJlc3NlZCA9IGZ1bmN0aW9uIGVuY29kZUNvbXByZXNzZWQoZW5jKSB7XG4gIHJldHVybiB0aGlzLmVuY29kZShlbmMsIHRydWUpO1xufTtcblxuQmFzZVBvaW50LnByb3RvdHlwZS5fZW5jb2RlID0gZnVuY3Rpb24gX2VuY29kZShjb21wYWN0KSB7XG4gIHZhciBsZW4gPSB0aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpO1xuICB2YXIgeCA9IHRoaXMuZ2V0WCgpLnRvQXJyYXkoJ2JlJywgbGVuKTtcblxuICBpZiAoY29tcGFjdClcbiAgICByZXR1cm4gWyB0aGlzLmdldFkoKS5pc0V2ZW4oKSA/IDB4MDIgOiAweDAzIF0uY29uY2F0KHgpO1xuXG4gIHJldHVybiBbIDB4MDQgXS5jb25jYXQoeCwgdGhpcy5nZXRZKCkudG9BcnJheSgnYmUnLCBsZW4pKSA7XG59O1xuXG5CYXNlUG9pbnQucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShlbmMsIGNvbXBhY3QpIHtcbiAgcmV0dXJuIHV0aWxzLmVuY29kZSh0aGlzLl9lbmNvZGUoY29tcGFjdCksIGVuYyk7XG59O1xuXG5CYXNlUG9pbnQucHJvdG90eXBlLnByZWNvbXB1dGUgPSBmdW5jdGlvbiBwcmVjb21wdXRlKHBvd2VyKSB7XG4gIGlmICh0aGlzLnByZWNvbXB1dGVkKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIHZhciBwcmVjb21wdXRlZCA9IHtcbiAgICBkb3VibGVzOiBudWxsLFxuICAgIG5hZjogbnVsbCxcbiAgICBiZXRhOiBudWxsXG4gIH07XG4gIHByZWNvbXB1dGVkLm5hZiA9IHRoaXMuX2dldE5BRlBvaW50cyg4KTtcbiAgcHJlY29tcHV0ZWQuZG91YmxlcyA9IHRoaXMuX2dldERvdWJsZXMoNCwgcG93ZXIpO1xuICBwcmVjb21wdXRlZC5iZXRhID0gdGhpcy5fZ2V0QmV0YSgpO1xuICB0aGlzLnByZWNvbXB1dGVkID0gcHJlY29tcHV0ZWQ7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5CYXNlUG9pbnQucHJvdG90eXBlLl9oYXNEb3VibGVzID0gZnVuY3Rpb24gX2hhc0RvdWJsZXMoaykge1xuICBpZiAoIXRoaXMucHJlY29tcHV0ZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIHZhciBkb3VibGVzID0gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO1xuICBpZiAoIWRvdWJsZXMpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBkb3VibGVzLnBvaW50cy5sZW5ndGggPj0gTWF0aC5jZWlsKChrLmJpdExlbmd0aCgpICsgMSkgLyBkb3VibGVzLnN0ZXApO1xufTtcblxuQmFzZVBvaW50LnByb3RvdHlwZS5fZ2V0RG91YmxlcyA9IGZ1bmN0aW9uIF9nZXREb3VibGVzKHN0ZXAsIHBvd2VyKSB7XG4gIGlmICh0aGlzLnByZWNvbXB1dGVkICYmIHRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylcbiAgICByZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO1xuXG4gIHZhciBkb3VibGVzID0gWyB0aGlzIF07XG4gIHZhciBhY2MgPSB0aGlzO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHBvd2VyOyBpICs9IHN0ZXApIHtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IHN0ZXA7IGorKylcbiAgICAgIGFjYyA9IGFjYy5kYmwoKTtcbiAgICBkb3VibGVzLnB1c2goYWNjKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHN0ZXA6IHN0ZXAsXG4gICAgcG9pbnRzOiBkb3VibGVzXG4gIH07XG59O1xuXG5CYXNlUG9pbnQucHJvdG90eXBlLl9nZXROQUZQb2ludHMgPSBmdW5jdGlvbiBfZ2V0TkFGUG9pbnRzKHduZCkge1xuICBpZiAodGhpcy5wcmVjb21wdXRlZCAmJiB0aGlzLnByZWNvbXB1dGVkLm5hZilcbiAgICByZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5uYWY7XG5cbiAgdmFyIHJlcyA9IFsgdGhpcyBdO1xuICB2YXIgbWF4ID0gKDEgPDwgd25kKSAtIDE7XG4gIHZhciBkYmwgPSBtYXggPT09IDEgPyBudWxsIDogdGhpcy5kYmwoKTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBtYXg7IGkrKylcbiAgICByZXNbaV0gPSByZXNbaSAtIDFdLmFkZChkYmwpO1xuICByZXR1cm4ge1xuICAgIHduZDogd25kLFxuICAgIHBvaW50czogcmVzXG4gIH07XG59O1xuXG5CYXNlUG9pbnQucHJvdG90eXBlLl9nZXRCZXRhID0gZnVuY3Rpb24gX2dldEJldGEoKSB7XG4gIHJldHVybiBudWxsO1xufTtcblxuQmFzZVBvaW50LnByb3RvdHlwZS5kYmxwID0gZnVuY3Rpb24gZGJscChrKSB7XG4gIHZhciByID0gdGhpcztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrOyBpKyspXG4gICAgciA9IHIuZGJsKCk7XG4gIHJldHVybiByO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGN1cnZlID0gcmVxdWlyZSgnLi4vY3VydmUnKTtcbnZhciBlbGxpcHRpYyA9IHJlcXVpcmUoJy4uLy4uL2VsbGlwdGljJyk7XG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcbnZhciBCYXNlID0gY3VydmUuYmFzZTtcblxudmFyIGFzc2VydCA9IGVsbGlwdGljLnV0aWxzLmFzc2VydDtcblxuZnVuY3Rpb24gRWR3YXJkc0N1cnZlKGNvbmYpIHtcbiAgLy8gTk9URTogSW1wb3J0YW50IGFzIHdlIGFyZSBjcmVhdGluZyBwb2ludCBpbiBCYXNlLmNhbGwoKVxuICB0aGlzLnR3aXN0ZWQgPSAoY29uZi5hIHwgMCkgIT09IDE7XG4gIHRoaXMubU9uZUEgPSB0aGlzLnR3aXN0ZWQgJiYgKGNvbmYuYSB8IDApID09PSAtMTtcbiAgdGhpcy5leHRlbmRlZCA9IHRoaXMubU9uZUE7XG5cbiAgQmFzZS5jYWxsKHRoaXMsICdlZHdhcmRzJywgY29uZik7XG5cbiAgdGhpcy5hID0gbmV3IEJOKGNvbmYuYSwgMTYpLnVtb2QodGhpcy5yZWQubSk7XG4gIHRoaXMuYSA9IHRoaXMuYS50b1JlZCh0aGlzLnJlZCk7XG4gIHRoaXMuYyA9IG5ldyBCTihjb25mLmMsIDE2KS50b1JlZCh0aGlzLnJlZCk7XG4gIHRoaXMuYzIgPSB0aGlzLmMucmVkU3FyKCk7XG4gIHRoaXMuZCA9IG5ldyBCTihjb25mLmQsIDE2KS50b1JlZCh0aGlzLnJlZCk7XG4gIHRoaXMuZGQgPSB0aGlzLmQucmVkQWRkKHRoaXMuZCk7XG5cbiAgYXNzZXJ0KCF0aGlzLnR3aXN0ZWQgfHwgdGhpcy5jLmZyb21SZWQoKS5jbXBuKDEpID09PSAwKTtcbiAgdGhpcy5vbmVDID0gKGNvbmYuYyB8IDApID09PSAxO1xufVxuaW5oZXJpdHMoRWR3YXJkc0N1cnZlLCBCYXNlKTtcbm1vZHVsZS5leHBvcnRzID0gRWR3YXJkc0N1cnZlO1xuXG5FZHdhcmRzQ3VydmUucHJvdG90eXBlLl9tdWxBID0gZnVuY3Rpb24gX211bEEobnVtKSB7XG4gIGlmICh0aGlzLm1PbmVBKVxuICAgIHJldHVybiBudW0ucmVkTmVnKCk7XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5hLnJlZE11bChudW0pO1xufTtcblxuRWR3YXJkc0N1cnZlLnByb3RvdHlwZS5fbXVsQyA9IGZ1bmN0aW9uIF9tdWxDKG51bSkge1xuICBpZiAodGhpcy5vbmVDKVxuICAgIHJldHVybiBudW07XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5jLnJlZE11bChudW0pO1xufTtcblxuLy8gSnVzdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFNob3J0IGN1cnZlXG5FZHdhcmRzQ3VydmUucHJvdG90eXBlLmpwb2ludCA9IGZ1bmN0aW9uIGpwb2ludCh4LCB5LCB6LCB0KSB7XG4gIHJldHVybiB0aGlzLnBvaW50KHgsIHksIHosIHQpO1xufTtcblxuRWR3YXJkc0N1cnZlLnByb3RvdHlwZS5wb2ludEZyb21YID0gZnVuY3Rpb24gcG9pbnRGcm9tWCh4LCBvZGQpIHtcbiAgeCA9IG5ldyBCTih4LCAxNik7XG4gIGlmICgheC5yZWQpXG4gICAgeCA9IHgudG9SZWQodGhpcy5yZWQpO1xuXG4gIHZhciB4MiA9IHgucmVkU3FyKCk7XG4gIHZhciByaHMgPSB0aGlzLmMyLnJlZFN1Yih0aGlzLmEucmVkTXVsKHgyKSk7XG4gIHZhciBsaHMgPSB0aGlzLm9uZS5yZWRTdWIodGhpcy5jMi5yZWRNdWwodGhpcy5kKS5yZWRNdWwoeDIpKTtcblxuICB2YXIgeTIgPSByaHMucmVkTXVsKGxocy5yZWRJbnZtKCkpO1xuICB2YXIgeSA9IHkyLnJlZFNxcnQoKTtcbiAgaWYgKHkucmVkU3FyKCkucmVkU3ViKHkyKS5jbXAodGhpcy56ZXJvKSAhPT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcG9pbnQnKTtcblxuICB2YXIgaXNPZGQgPSB5LmZyb21SZWQoKS5pc09kZCgpO1xuICBpZiAob2RkICYmICFpc09kZCB8fCAhb2RkICYmIGlzT2RkKVxuICAgIHkgPSB5LnJlZE5lZygpO1xuXG4gIHJldHVybiB0aGlzLnBvaW50KHgsIHkpO1xufTtcblxuRWR3YXJkc0N1cnZlLnByb3RvdHlwZS5wb2ludEZyb21ZID0gZnVuY3Rpb24gcG9pbnRGcm9tWSh5LCBvZGQpIHtcbiAgeSA9IG5ldyBCTih5LCAxNik7XG4gIGlmICgheS5yZWQpXG4gICAgeSA9IHkudG9SZWQodGhpcy5yZWQpO1xuXG4gIC8vIHheMiA9ICh5XjIgLSAxKSAvIChkIHleMiArIDEpXG4gIHZhciB5MiA9IHkucmVkU3FyKCk7XG4gIHZhciBsaHMgPSB5Mi5yZWRTdWIodGhpcy5vbmUpO1xuICB2YXIgcmhzID0geTIucmVkTXVsKHRoaXMuZCkucmVkQWRkKHRoaXMub25lKTtcbiAgdmFyIHgyID0gbGhzLnJlZE11bChyaHMucmVkSW52bSgpKTtcblxuICBpZiAoeDIuY21wKHRoaXMuemVybykgPT09IDApIHtcbiAgICBpZiAob2RkKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHBvaW50Jyk7XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIHRoaXMucG9pbnQodGhpcy56ZXJvLCB5KTtcbiAgfVxuXG4gIHZhciB4ID0geDIucmVkU3FydCgpO1xuICBpZiAoeC5yZWRTcXIoKS5yZWRTdWIoeDIpLmNtcCh0aGlzLnplcm8pICE9PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBwb2ludCcpO1xuXG4gIGlmICh4LmlzT2RkKCkgIT09IG9kZClcbiAgICB4ID0geC5yZWROZWcoKTtcblxuICByZXR1cm4gdGhpcy5wb2ludCh4LCB5KTtcbn07XG5cbkVkd2FyZHNDdXJ2ZS5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiB2YWxpZGF0ZShwb2ludCkge1xuICBpZiAocG9pbnQuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiB0cnVlO1xuXG4gIC8vIEN1cnZlOiBBICogWF4yICsgWV4yID0gQ14yICogKDEgKyBEICogWF4yICogWV4yKVxuICBwb2ludC5ub3JtYWxpemUoKTtcblxuICB2YXIgeDIgPSBwb2ludC54LnJlZFNxcigpO1xuICB2YXIgeTIgPSBwb2ludC55LnJlZFNxcigpO1xuICB2YXIgbGhzID0geDIucmVkTXVsKHRoaXMuYSkucmVkQWRkKHkyKTtcbiAgdmFyIHJocyA9IHRoaXMuYzIucmVkTXVsKHRoaXMub25lLnJlZEFkZCh0aGlzLmQucmVkTXVsKHgyKS5yZWRNdWwoeTIpKSk7XG5cbiAgcmV0dXJuIGxocy5jbXAocmhzKSA9PT0gMDtcbn07XG5cbmZ1bmN0aW9uIFBvaW50KGN1cnZlLCB4LCB5LCB6LCB0KSB7XG4gIEJhc2UuQmFzZVBvaW50LmNhbGwodGhpcywgY3VydmUsICdwcm9qZWN0aXZlJyk7XG4gIGlmICh4ID09PSBudWxsICYmIHkgPT09IG51bGwgJiYgeiA9PT0gbnVsbCkge1xuICAgIHRoaXMueCA9IHRoaXMuY3VydmUuemVybztcbiAgICB0aGlzLnkgPSB0aGlzLmN1cnZlLm9uZTtcbiAgICB0aGlzLnogPSB0aGlzLmN1cnZlLm9uZTtcbiAgICB0aGlzLnQgPSB0aGlzLmN1cnZlLnplcm87XG4gICAgdGhpcy56T25lID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnggPSBuZXcgQk4oeCwgMTYpO1xuICAgIHRoaXMueSA9IG5ldyBCTih5LCAxNik7XG4gICAgdGhpcy56ID0geiA/IG5ldyBCTih6LCAxNikgOiB0aGlzLmN1cnZlLm9uZTtcbiAgICB0aGlzLnQgPSB0ICYmIG5ldyBCTih0LCAxNik7XG4gICAgaWYgKCF0aGlzLngucmVkKVxuICAgICAgdGhpcy54ID0gdGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKTtcbiAgICBpZiAoIXRoaXMueS5yZWQpXG4gICAgICB0aGlzLnkgPSB0aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO1xuICAgIGlmICghdGhpcy56LnJlZClcbiAgICAgIHRoaXMueiA9IHRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCk7XG4gICAgaWYgKHRoaXMudCAmJiAhdGhpcy50LnJlZClcbiAgICAgIHRoaXMudCA9IHRoaXMudC50b1JlZCh0aGlzLmN1cnZlLnJlZCk7XG4gICAgdGhpcy56T25lID0gdGhpcy56ID09PSB0aGlzLmN1cnZlLm9uZTtcblxuICAgIC8vIFVzZSBleHRlbmRlZCBjb29yZGluYXRlc1xuICAgIGlmICh0aGlzLmN1cnZlLmV4dGVuZGVkICYmICF0aGlzLnQpIHtcbiAgICAgIHRoaXMudCA9IHRoaXMueC5yZWRNdWwodGhpcy55KTtcbiAgICAgIGlmICghdGhpcy56T25lKVxuICAgICAgICB0aGlzLnQgPSB0aGlzLnQucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpO1xuICAgIH1cbiAgfVxufVxuaW5oZXJpdHMoUG9pbnQsIEJhc2UuQmFzZVBvaW50KTtcblxuRWR3YXJkc0N1cnZlLnByb3RvdHlwZS5wb2ludEZyb21KU09OID0gZnVuY3Rpb24gcG9pbnRGcm9tSlNPTihvYmopIHtcbiAgcmV0dXJuIFBvaW50LmZyb21KU09OKHRoaXMsIG9iaik7XG59O1xuXG5FZHdhcmRzQ3VydmUucHJvdG90eXBlLnBvaW50ID0gZnVuY3Rpb24gcG9pbnQoeCwgeSwgeiwgdCkge1xuICByZXR1cm4gbmV3IFBvaW50KHRoaXMsIHgsIHksIHosIHQpO1xufTtcblxuUG9pbnQuZnJvbUpTT04gPSBmdW5jdGlvbiBmcm9tSlNPTihjdXJ2ZSwgb2JqKSB7XG4gIHJldHVybiBuZXcgUG9pbnQoY3VydmUsIG9ialswXSwgb2JqWzFdLCBvYmpbMl0pO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0KCkge1xuICBpZiAodGhpcy5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuICc8RUMgUG9pbnQgSW5maW5pdHk+JztcbiAgcmV0dXJuICc8RUMgUG9pbnQgeDogJyArIHRoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsIDIpICtcbiAgICAgICcgeTogJyArIHRoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsIDIpICtcbiAgICAgICcgejogJyArIHRoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsIDIpICsgJz4nO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmlzSW5maW5pdHkgPSBmdW5jdGlvbiBpc0luZmluaXR5KCkge1xuICAvLyBYWFggVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCB6ZXJvIGlzIGFsd2F5cyB6ZXJvIGluIHJlZFxuICByZXR1cm4gdGhpcy54LmNtcG4oMCkgPT09IDAgJiZcbiAgICAgICAgIHRoaXMueS5jbXAodGhpcy56KSA9PT0gMDtcbn07XG5cblBvaW50LnByb3RvdHlwZS5fZXh0RGJsID0gZnVuY3Rpb24gX2V4dERibCgpIHtcbiAgLy8gaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLXR3aXN0ZWQtZXh0ZW5kZWQtMS5odG1sXG4gIC8vICAgICAjZG91YmxpbmctZGJsLTIwMDgtaHdjZFxuICAvLyA0TSArIDRTXG5cbiAgLy8gQSA9IFgxXjJcbiAgdmFyIGEgPSB0aGlzLngucmVkU3FyKCk7XG4gIC8vIEIgPSBZMV4yXG4gIHZhciBiID0gdGhpcy55LnJlZFNxcigpO1xuICAvLyBDID0gMiAqIFoxXjJcbiAgdmFyIGMgPSB0aGlzLnoucmVkU3FyKCk7XG4gIGMgPSBjLnJlZElBZGQoYyk7XG4gIC8vIEQgPSBhICogQVxuICB2YXIgZCA9IHRoaXMuY3VydmUuX211bEEoYSk7XG4gIC8vIEUgPSAoWDEgKyBZMSleMiAtIEEgLSBCXG4gIHZhciBlID0gdGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZFNxcigpLnJlZElTdWIoYSkucmVkSVN1YihiKTtcbiAgLy8gRyA9IEQgKyBCXG4gIHZhciBnID0gZC5yZWRBZGQoYik7XG4gIC8vIEYgPSBHIC0gQ1xuICB2YXIgZiA9IGcucmVkU3ViKGMpO1xuICAvLyBIID0gRCAtIEJcbiAgdmFyIGggPSBkLnJlZFN1YihiKTtcbiAgLy8gWDMgPSBFICogRlxuICB2YXIgbnggPSBlLnJlZE11bChmKTtcbiAgLy8gWTMgPSBHICogSFxuICB2YXIgbnkgPSBnLnJlZE11bChoKTtcbiAgLy8gVDMgPSBFICogSFxuICB2YXIgbnQgPSBlLnJlZE11bChoKTtcbiAgLy8gWjMgPSBGICogR1xuICB2YXIgbnogPSBmLnJlZE11bChnKTtcbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobngsIG55LCBueiwgbnQpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLl9wcm9qRGJsID0gZnVuY3Rpb24gX3Byb2pEYmwoKSB7XG4gIC8vIGh5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by10d2lzdGVkLXByb2plY3RpdmUuaHRtbFxuICAvLyAgICAgI2RvdWJsaW5nLWRibC0yMDA4LWJiamxwXG4gIC8vICAgICAjZG91YmxpbmctZGJsLTIwMDctYmxcbiAgLy8gYW5kIG90aGVyc1xuICAvLyBHZW5lcmFsbHkgM00gKyA0UyBvciAyTSArIDRTXG5cbiAgLy8gQiA9IChYMSArIFkxKV4yXG4gIHZhciBiID0gdGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZFNxcigpO1xuICAvLyBDID0gWDFeMlxuICB2YXIgYyA9IHRoaXMueC5yZWRTcXIoKTtcbiAgLy8gRCA9IFkxXjJcbiAgdmFyIGQgPSB0aGlzLnkucmVkU3FyKCk7XG5cbiAgdmFyIG54O1xuICB2YXIgbnk7XG4gIHZhciBuejtcbiAgaWYgKHRoaXMuY3VydmUudHdpc3RlZCkge1xuICAgIC8vIEUgPSBhICogQ1xuICAgIHZhciBlID0gdGhpcy5jdXJ2ZS5fbXVsQShjKTtcbiAgICAvLyBGID0gRSArIERcbiAgICB2YXIgZiA9IGUucmVkQWRkKGQpO1xuICAgIGlmICh0aGlzLnpPbmUpIHtcbiAgICAgIC8vIFgzID0gKEIgLSBDIC0gRCkgKiAoRiAtIDIpXG4gICAgICBueCA9IGIucmVkU3ViKGMpLnJlZFN1YihkKS5yZWRNdWwoZi5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKTtcbiAgICAgIC8vIFkzID0gRiAqIChFIC0gRClcbiAgICAgIG55ID0gZi5yZWRNdWwoZS5yZWRTdWIoZCkpO1xuICAgICAgLy8gWjMgPSBGXjIgLSAyICogRlxuICAgICAgbnogPSBmLnJlZFNxcigpLnJlZFN1YihmKS5yZWRTdWIoZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEggPSBaMV4yXG4gICAgICB2YXIgaCA9IHRoaXMuei5yZWRTcXIoKTtcbiAgICAgIC8vIEogPSBGIC0gMiAqIEhcbiAgICAgIHZhciBqID0gZi5yZWRTdWIoaCkucmVkSVN1YihoKTtcbiAgICAgIC8vIFgzID0gKEItQy1EKSpKXG4gICAgICBueCA9IGIucmVkU3ViKGMpLnJlZElTdWIoZCkucmVkTXVsKGopO1xuICAgICAgLy8gWTMgPSBGICogKEUgLSBEKVxuICAgICAgbnkgPSBmLnJlZE11bChlLnJlZFN1YihkKSk7XG4gICAgICAvLyBaMyA9IEYgKiBKXG4gICAgICBueiA9IGYucmVkTXVsKGopO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBFID0gQyArIERcbiAgICB2YXIgZSA9IGMucmVkQWRkKGQpO1xuICAgIC8vIEggPSAoYyAqIFoxKV4yXG4gICAgdmFyIGggPSB0aGlzLmN1cnZlLl9tdWxDKHRoaXMuYy5yZWRNdWwodGhpcy56KSkucmVkU3FyKCk7XG4gICAgLy8gSiA9IEUgLSAyICogSFxuICAgIHZhciBqID0gZS5yZWRTdWIoaCkucmVkU3ViKGgpO1xuICAgIC8vIFgzID0gYyAqIChCIC0gRSkgKiBKXG4gICAgbnggPSB0aGlzLmN1cnZlLl9tdWxDKGIucmVkSVN1YihlKSkucmVkTXVsKGopO1xuICAgIC8vIFkzID0gYyAqIEUgKiAoQyAtIEQpXG4gICAgbnkgPSB0aGlzLmN1cnZlLl9tdWxDKGUpLnJlZE11bChjLnJlZElTdWIoZCkpO1xuICAgIC8vIFozID0gRSAqIEpcbiAgICBueiA9IGUucmVkTXVsKGopO1xuICB9XG4gIHJldHVybiB0aGlzLmN1cnZlLnBvaW50KG54LCBueSwgbnopO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmRibCA9IGZ1bmN0aW9uIGRibCgpIHtcbiAgaWYgKHRoaXMuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIC8vIERvdWJsZSBpbiBleHRlbmRlZCBjb29yZGluYXRlc1xuICBpZiAodGhpcy5jdXJ2ZS5leHRlbmRlZClcbiAgICByZXR1cm4gdGhpcy5fZXh0RGJsKCk7XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5fcHJvakRibCgpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLl9leHRBZGQgPSBmdW5jdGlvbiBfZXh0QWRkKHApIHtcbiAgLy8gaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLXR3aXN0ZWQtZXh0ZW5kZWQtMS5odG1sXG4gIC8vICAgICAjYWRkaXRpb24tYWRkLTIwMDgtaHdjZC0zXG4gIC8vIDhNXG5cbiAgLy8gQSA9IChZMSAtIFgxKSAqIChZMiAtIFgyKVxuICB2YXIgYSA9IHRoaXMueS5yZWRTdWIodGhpcy54KS5yZWRNdWwocC55LnJlZFN1YihwLngpKTtcbiAgLy8gQiA9IChZMSArIFgxKSAqIChZMiArIFgyKVxuICB2YXIgYiA9IHRoaXMueS5yZWRBZGQodGhpcy54KS5yZWRNdWwocC55LnJlZEFkZChwLngpKTtcbiAgLy8gQyA9IFQxICogayAqIFQyXG4gIHZhciBjID0gdGhpcy50LnJlZE11bCh0aGlzLmN1cnZlLmRkKS5yZWRNdWwocC50KTtcbiAgLy8gRCA9IFoxICogMiAqIFoyXG4gIHZhciBkID0gdGhpcy56LnJlZE11bChwLnoucmVkQWRkKHAueikpO1xuICAvLyBFID0gQiAtIEFcbiAgdmFyIGUgPSBiLnJlZFN1YihhKTtcbiAgLy8gRiA9IEQgLSBDXG4gIHZhciBmID0gZC5yZWRTdWIoYyk7XG4gIC8vIEcgPSBEICsgQ1xuICB2YXIgZyA9IGQucmVkQWRkKGMpO1xuICAvLyBIID0gQiArIEFcbiAgdmFyIGggPSBiLnJlZEFkZChhKTtcbiAgLy8gWDMgPSBFICogRlxuICB2YXIgbnggPSBlLnJlZE11bChmKTtcbiAgLy8gWTMgPSBHICogSFxuICB2YXIgbnkgPSBnLnJlZE11bChoKTtcbiAgLy8gVDMgPSBFICogSFxuICB2YXIgbnQgPSBlLnJlZE11bChoKTtcbiAgLy8gWjMgPSBGICogR1xuICB2YXIgbnogPSBmLnJlZE11bChnKTtcbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobngsIG55LCBueiwgbnQpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLl9wcm9qQWRkID0gZnVuY3Rpb24gX3Byb2pBZGQocCkge1xuICAvLyBoeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tdHdpc3RlZC1wcm9qZWN0aXZlLmh0bWxcbiAgLy8gICAgICNhZGRpdGlvbi1hZGQtMjAwOC1iYmpscFxuICAvLyAgICAgI2FkZGl0aW9uLWFkZC0yMDA3LWJsXG4gIC8vIDEwTSArIDFTXG5cbiAgLy8gQSA9IFoxICogWjJcbiAgdmFyIGEgPSB0aGlzLnoucmVkTXVsKHAueik7XG4gIC8vIEIgPSBBXjJcbiAgdmFyIGIgPSBhLnJlZFNxcigpO1xuICAvLyBDID0gWDEgKiBYMlxuICB2YXIgYyA9IHRoaXMueC5yZWRNdWwocC54KTtcbiAgLy8gRCA9IFkxICogWTJcbiAgdmFyIGQgPSB0aGlzLnkucmVkTXVsKHAueSk7XG4gIC8vIEUgPSBkICogQyAqIERcbiAgdmFyIGUgPSB0aGlzLmN1cnZlLmQucmVkTXVsKGMpLnJlZE11bChkKTtcbiAgLy8gRiA9IEIgLSBFXG4gIHZhciBmID0gYi5yZWRTdWIoZSk7XG4gIC8vIEcgPSBCICsgRVxuICB2YXIgZyA9IGIucmVkQWRkKGUpO1xuICAvLyBYMyA9IEEgKiBGICogKChYMSArIFkxKSAqIChYMiArIFkyKSAtIEMgLSBEKVxuICB2YXIgdG1wID0gdGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZE11bChwLngucmVkQWRkKHAueSkpLnJlZElTdWIoYykucmVkSVN1YihkKTtcbiAgdmFyIG54ID0gYS5yZWRNdWwoZikucmVkTXVsKHRtcCk7XG4gIHZhciBueTtcbiAgdmFyIG56O1xuICBpZiAodGhpcy5jdXJ2ZS50d2lzdGVkKSB7XG4gICAgLy8gWTMgPSBBICogRyAqIChEIC0gYSAqIEMpXG4gICAgbnkgPSBhLnJlZE11bChnKS5yZWRNdWwoZC5yZWRTdWIodGhpcy5jdXJ2ZS5fbXVsQShjKSkpO1xuICAgIC8vIFozID0gRiAqIEdcbiAgICBueiA9IGYucmVkTXVsKGcpO1xuICB9IGVsc2Uge1xuICAgIC8vIFkzID0gQSAqIEcgKiAoRCAtIEMpXG4gICAgbnkgPSBhLnJlZE11bChnKS5yZWRNdWwoZC5yZWRTdWIoYykpO1xuICAgIC8vIFozID0gYyAqIEYgKiBHXG4gICAgbnogPSB0aGlzLmN1cnZlLl9tdWxDKGYpLnJlZE11bChnKTtcbiAgfVxuICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChueCwgbnksIG56KTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQocCkge1xuICBpZiAodGhpcy5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHA7XG4gIGlmIChwLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gdGhpcztcblxuICBpZiAodGhpcy5jdXJ2ZS5leHRlbmRlZClcbiAgICByZXR1cm4gdGhpcy5fZXh0QWRkKHApO1xuICBlbHNlXG4gICAgcmV0dXJuIHRoaXMuX3Byb2pBZGQocCk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUubXVsID0gZnVuY3Rpb24gbXVsKGspIHtcbiAgaWYgKHRoaXMuX2hhc0RvdWJsZXMoaykpXG4gICAgcmV0dXJuIHRoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsIGspO1xuICBlbHNlXG4gICAgcmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWwodGhpcywgayk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUubXVsQWRkID0gZnVuY3Rpb24gbXVsQWRkKGsxLCBwLCBrMikge1xuICByZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLCBbIHRoaXMsIHAgXSwgWyBrMSwgazIgXSwgMiwgZmFsc2UpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmptdWxBZGQgPSBmdW5jdGlvbiBqbXVsQWRkKGsxLCBwLCBrMikge1xuICByZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLCBbIHRoaXMsIHAgXSwgWyBrMSwgazIgXSwgMiwgdHJ1ZSk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUubm9ybWFsaXplID0gZnVuY3Rpb24gbm9ybWFsaXplKCkge1xuICBpZiAodGhpcy56T25lKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIC8vIE5vcm1hbGl6ZSBjb29yZGluYXRlc1xuICB2YXIgemkgPSB0aGlzLnoucmVkSW52bSgpO1xuICB0aGlzLnggPSB0aGlzLngucmVkTXVsKHppKTtcbiAgdGhpcy55ID0gdGhpcy55LnJlZE11bCh6aSk7XG4gIGlmICh0aGlzLnQpXG4gICAgdGhpcy50ID0gdGhpcy50LnJlZE11bCh6aSk7XG4gIHRoaXMueiA9IHRoaXMuY3VydmUub25lO1xuICB0aGlzLnpPbmUgPSB0cnVlO1xuICByZXR1cm4gdGhpcztcbn07XG5cblBvaW50LnByb3RvdHlwZS5uZWcgPSBmdW5jdGlvbiBuZWcoKSB7XG4gIHJldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnosXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudCAmJiB0aGlzLnQucmVkTmVnKCkpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmdldFggPSBmdW5jdGlvbiBnZXRYKCkge1xuICB0aGlzLm5vcm1hbGl6ZSgpO1xuICByZXR1cm4gdGhpcy54LmZyb21SZWQoKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5nZXRZID0gZnVuY3Rpb24gZ2V0WSgpIHtcbiAgdGhpcy5ub3JtYWxpemUoKTtcbiAgcmV0dXJuIHRoaXMueS5mcm9tUmVkKCk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZXEgPSBmdW5jdGlvbiBlcShvdGhlcikge1xuICByZXR1cm4gdGhpcyA9PT0gb3RoZXIgfHxcbiAgICAgICAgIHRoaXMuZ2V0WCgpLmNtcChvdGhlci5nZXRYKCkpID09PSAwICYmXG4gICAgICAgICB0aGlzLmdldFkoKS5jbXAob3RoZXIuZ2V0WSgpKSA9PT0gMDtcbn07XG5cblBvaW50LnByb3RvdHlwZS5lcVhUb1AgPSBmdW5jdGlvbiBlcVhUb1AoeCkge1xuICB2YXIgcnggPSB4LnRvUmVkKHRoaXMuY3VydmUucmVkKS5yZWRNdWwodGhpcy56KTtcbiAgaWYgKHRoaXMueC5jbXAocngpID09PSAwKVxuICAgIHJldHVybiB0cnVlO1xuXG4gIHZhciB4YyA9IHguY2xvbmUoKTtcbiAgdmFyIHQgPSB0aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7XG4gIGZvciAoOzspIHtcbiAgICB4Yy5pYWRkKHRoaXMuY3VydmUubik7XG4gICAgaWYgKHhjLmNtcCh0aGlzLmN1cnZlLnApID49IDApXG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICByeC5yZWRJQWRkKHQpO1xuICAgIGlmICh0aGlzLnguY21wKHJ4KSA9PT0gMClcbiAgICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8vIENvbXBhdGliaWxpdHkgd2l0aCBCYXNlQ3VydmVcblBvaW50LnByb3RvdHlwZS50b1AgPSBQb2ludC5wcm90b3R5cGUubm9ybWFsaXplO1xuUG9pbnQucHJvdG90eXBlLm1peGVkQWRkID0gUG9pbnQucHJvdG90eXBlLmFkZDtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGN1cnZlID0gZXhwb3J0cztcblxuY3VydmUuYmFzZSA9IHJlcXVpcmUoJy4vYmFzZScpO1xuY3VydmUuc2hvcnQgPSByZXF1aXJlKCcuL3Nob3J0Jyk7XG5jdXJ2ZS5tb250ID0gcmVxdWlyZSgnLi9tb250Jyk7XG5jdXJ2ZS5lZHdhcmRzID0gcmVxdWlyZSgnLi9lZHdhcmRzJyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjdXJ2ZSA9IHJlcXVpcmUoJy4uL2N1cnZlJyk7XG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcbnZhciBCYXNlID0gY3VydmUuYmFzZTtcblxudmFyIGVsbGlwdGljID0gcmVxdWlyZSgnLi4vLi4vZWxsaXB0aWMnKTtcbnZhciB1dGlscyA9IGVsbGlwdGljLnV0aWxzO1xuXG5mdW5jdGlvbiBNb250Q3VydmUoY29uZikge1xuICBCYXNlLmNhbGwodGhpcywgJ21vbnQnLCBjb25mKTtcblxuICB0aGlzLmEgPSBuZXcgQk4oY29uZi5hLCAxNikudG9SZWQodGhpcy5yZWQpO1xuICB0aGlzLmIgPSBuZXcgQk4oY29uZi5iLCAxNikudG9SZWQodGhpcy5yZWQpO1xuICB0aGlzLmk0ID0gbmV3IEJOKDQpLnRvUmVkKHRoaXMucmVkKS5yZWRJbnZtKCk7XG4gIHRoaXMudHdvID0gbmV3IEJOKDIpLnRvUmVkKHRoaXMucmVkKTtcbiAgdGhpcy5hMjQgPSB0aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRkKHRoaXMudHdvKSk7XG59XG5pbmhlcml0cyhNb250Q3VydmUsIEJhc2UpO1xubW9kdWxlLmV4cG9ydHMgPSBNb250Q3VydmU7XG5cbk1vbnRDdXJ2ZS5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiB2YWxpZGF0ZShwb2ludCkge1xuICB2YXIgeCA9IHBvaW50Lm5vcm1hbGl6ZSgpLng7XG4gIHZhciB4MiA9IHgucmVkU3FyKCk7XG4gIHZhciByaHMgPSB4Mi5yZWRNdWwoeCkucmVkQWRkKHgyLnJlZE11bCh0aGlzLmEpKS5yZWRBZGQoeCk7XG4gIHZhciB5ID0gcmhzLnJlZFNxcnQoKTtcblxuICByZXR1cm4geS5yZWRTcXIoKS5jbXAocmhzKSA9PT0gMDtcbn07XG5cbmZ1bmN0aW9uIFBvaW50KGN1cnZlLCB4LCB6KSB7XG4gIEJhc2UuQmFzZVBvaW50LmNhbGwodGhpcywgY3VydmUsICdwcm9qZWN0aXZlJyk7XG4gIGlmICh4ID09PSBudWxsICYmIHogPT09IG51bGwpIHtcbiAgICB0aGlzLnggPSB0aGlzLmN1cnZlLm9uZTtcbiAgICB0aGlzLnogPSB0aGlzLmN1cnZlLnplcm87XG4gIH0gZWxzZSB7XG4gICAgdGhpcy54ID0gbmV3IEJOKHgsIDE2KTtcbiAgICB0aGlzLnogPSBuZXcgQk4oeiwgMTYpO1xuICAgIGlmICghdGhpcy54LnJlZClcbiAgICAgIHRoaXMueCA9IHRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCk7XG4gICAgaWYgKCF0aGlzLnoucmVkKVxuICAgICAgdGhpcy56ID0gdGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKTtcbiAgfVxufVxuaW5oZXJpdHMoUG9pbnQsIEJhc2UuQmFzZVBvaW50KTtcblxuTW9udEN1cnZlLnByb3RvdHlwZS5kZWNvZGVQb2ludCA9IGZ1bmN0aW9uIGRlY29kZVBvaW50KGJ5dGVzLCBlbmMpIHtcbiAgcmV0dXJuIHRoaXMucG9pbnQodXRpbHMudG9BcnJheShieXRlcywgZW5jKSwgMSk7XG59O1xuXG5Nb250Q3VydmUucHJvdG90eXBlLnBvaW50ID0gZnVuY3Rpb24gcG9pbnQoeCwgeikge1xuICByZXR1cm4gbmV3IFBvaW50KHRoaXMsIHgsIHopO1xufTtcblxuTW9udEN1cnZlLnByb3RvdHlwZS5wb2ludEZyb21KU09OID0gZnVuY3Rpb24gcG9pbnRGcm9tSlNPTihvYmopIHtcbiAgcmV0dXJuIFBvaW50LmZyb21KU09OKHRoaXMsIG9iaik7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUucHJlY29tcHV0ZSA9IGZ1bmN0aW9uIHByZWNvbXB1dGUoKSB7XG4gIC8vIE5vLW9wXG59O1xuXG5Qb2ludC5wcm90b3R5cGUuX2VuY29kZSA9IGZ1bmN0aW9uIF9lbmNvZGUoKSB7XG4gIHJldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCdiZScsIHRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCkpO1xufTtcblxuUG9pbnQuZnJvbUpTT04gPSBmdW5jdGlvbiBmcm9tSlNPTihjdXJ2ZSwgb2JqKSB7XG4gIHJldHVybiBuZXcgUG9pbnQoY3VydmUsIG9ialswXSwgb2JqWzFdIHx8IGN1cnZlLm9uZSk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QoKSB7XG4gIGlmICh0aGlzLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gJzxFQyBQb2ludCBJbmZpbml0eT4nO1xuICByZXR1cm4gJzxFQyBQb2ludCB4OiAnICsgdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwgMikgK1xuICAgICAgJyB6OiAnICsgdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwgMikgKyAnPic7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuaXNJbmZpbml0eSA9IGZ1bmN0aW9uIGlzSW5maW5pdHkoKSB7XG4gIC8vIFhYWCBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHplcm8gaXMgYWx3YXlzIHplcm8gaW4gcmVkXG4gIHJldHVybiB0aGlzLnouY21wbigwKSA9PT0gMDtcbn07XG5cblBvaW50LnByb3RvdHlwZS5kYmwgPSBmdW5jdGlvbiBkYmwoKSB7XG4gIC8vIGh0dHA6Ly9oeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tbW9udGdvbS14ei5odG1sI2RvdWJsaW5nLWRibC0xOTg3LW0tM1xuICAvLyAyTSArIDJTICsgNEFcblxuICAvLyBBID0gWDEgKyBaMVxuICB2YXIgYSA9IHRoaXMueC5yZWRBZGQodGhpcy56KTtcbiAgLy8gQUEgPSBBXjJcbiAgdmFyIGFhID0gYS5yZWRTcXIoKTtcbiAgLy8gQiA9IFgxIC0gWjFcbiAgdmFyIGIgPSB0aGlzLngucmVkU3ViKHRoaXMueik7XG4gIC8vIEJCID0gQl4yXG4gIHZhciBiYiA9IGIucmVkU3FyKCk7XG4gIC8vIEMgPSBBQSAtIEJCXG4gIHZhciBjID0gYWEucmVkU3ViKGJiKTtcbiAgLy8gWDMgPSBBQSAqIEJCXG4gIHZhciBueCA9IGFhLnJlZE11bChiYik7XG4gIC8vIFozID0gQyAqIChCQiArIEEyNCAqIEMpXG4gIHZhciBueiA9IGMucmVkTXVsKGJiLnJlZEFkZCh0aGlzLmN1cnZlLmEyNC5yZWRNdWwoYykpKTtcbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobngsIG56KTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQoKSB7XG4gIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlJyk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZGlmZkFkZCA9IGZ1bmN0aW9uIGRpZmZBZGQocCwgZGlmZikge1xuICAvLyBodHRwOi8vaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLW1vbnRnb20teHouaHRtbCNkaWZmYWRkLWRhZGQtMTk4Ny1tLTNcbiAgLy8gNE0gKyAyUyArIDZBXG5cbiAgLy8gQSA9IFgyICsgWjJcbiAgdmFyIGEgPSB0aGlzLngucmVkQWRkKHRoaXMueik7XG4gIC8vIEIgPSBYMiAtIFoyXG4gIHZhciBiID0gdGhpcy54LnJlZFN1Yih0aGlzLnopO1xuICAvLyBDID0gWDMgKyBaM1xuICB2YXIgYyA9IHAueC5yZWRBZGQocC56KTtcbiAgLy8gRCA9IFgzIC0gWjNcbiAgdmFyIGQgPSBwLngucmVkU3ViKHAueik7XG4gIC8vIERBID0gRCAqIEFcbiAgdmFyIGRhID0gZC5yZWRNdWwoYSk7XG4gIC8vIENCID0gQyAqIEJcbiAgdmFyIGNiID0gYy5yZWRNdWwoYik7XG4gIC8vIFg1ID0gWjEgKiAoREEgKyBDQileMlxuICB2YXIgbnggPSBkaWZmLnoucmVkTXVsKGRhLnJlZEFkZChjYikucmVkU3FyKCkpO1xuICAvLyBaNSA9IFgxICogKERBIC0gQ0IpXjJcbiAgdmFyIG56ID0gZGlmZi54LnJlZE11bChkYS5yZWRJU3ViKGNiKS5yZWRTcXIoKSk7XG4gIHJldHVybiB0aGlzLmN1cnZlLnBvaW50KG54LCBueik7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUubXVsID0gZnVuY3Rpb24gbXVsKGspIHtcbiAgdmFyIHQgPSBrLmNsb25lKCk7XG4gIHZhciBhID0gdGhpczsgLy8gKE4gLyAyKSAqIFEgKyBRXG4gIHZhciBiID0gdGhpcy5jdXJ2ZS5wb2ludChudWxsLCBudWxsKTsgLy8gKE4gLyAyKSAqIFFcbiAgdmFyIGMgPSB0aGlzOyAvLyBRXG5cbiAgZm9yICh2YXIgYml0cyA9IFtdOyB0LmNtcG4oMCkgIT09IDA7IHQuaXVzaHJuKDEpKVxuICAgIGJpdHMucHVzaCh0LmFuZGxuKDEpKTtcblxuICBmb3IgKHZhciBpID0gYml0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIGlmIChiaXRzW2ldID09PSAwKSB7XG4gICAgICAvLyBOICogUSArIFEgPSAoKE4gLyAyKSAqIFEgKyBRKSkgKyAoTiAvIDIpICogUVxuICAgICAgYSA9IGEuZGlmZkFkZChiLCBjKTtcbiAgICAgIC8vIE4gKiBRID0gMiAqICgoTiAvIDIpICogUSArIFEpKVxuICAgICAgYiA9IGIuZGJsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE4gKiBRID0gKChOIC8gMikgKiBRICsgUSkgKyAoKE4gLyAyKSAqIFEpXG4gICAgICBiID0gYS5kaWZmQWRkKGIsIGMpO1xuICAgICAgLy8gTiAqIFEgKyBRID0gMiAqICgoTiAvIDIpICogUSArIFEpXG4gICAgICBhID0gYS5kYmwoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGI7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUubXVsQWRkID0gZnVuY3Rpb24gbXVsQWRkKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZScpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmp1bWxBZGQgPSBmdW5jdGlvbiBqdW1sQWRkKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZScpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmVxID0gZnVuY3Rpb24gZXEob3RoZXIpIHtcbiAgcmV0dXJuIHRoaXMuZ2V0WCgpLmNtcChvdGhlci5nZXRYKCkpID09PSAwO1xufTtcblxuUG9pbnQucHJvdG90eXBlLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uIG5vcm1hbGl6ZSgpIHtcbiAgdGhpcy54ID0gdGhpcy54LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKTtcbiAgdGhpcy56ID0gdGhpcy5jdXJ2ZS5vbmU7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmdldFggPSBmdW5jdGlvbiBnZXRYKCkge1xuICAvLyBOb3JtYWxpemUgY29vcmRpbmF0ZXNcbiAgdGhpcy5ub3JtYWxpemUoKTtcblxuICByZXR1cm4gdGhpcy54LmZyb21SZWQoKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjdXJ2ZSA9IHJlcXVpcmUoJy4uL2N1cnZlJyk7XG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIEJOID0gcmVxdWlyZSgnYm4uanMnKTtcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG52YXIgQmFzZSA9IGN1cnZlLmJhc2U7XG5cbnZhciBhc3NlcnQgPSBlbGxpcHRpYy51dGlscy5hc3NlcnQ7XG5cbmZ1bmN0aW9uIFNob3J0Q3VydmUoY29uZikge1xuICBCYXNlLmNhbGwodGhpcywgJ3Nob3J0JywgY29uZik7XG5cbiAgdGhpcy5hID0gbmV3IEJOKGNvbmYuYSwgMTYpLnRvUmVkKHRoaXMucmVkKTtcbiAgdGhpcy5iID0gbmV3IEJOKGNvbmYuYiwgMTYpLnRvUmVkKHRoaXMucmVkKTtcbiAgdGhpcy50aW52ID0gdGhpcy50d28ucmVkSW52bSgpO1xuXG4gIHRoaXMuemVyb0EgPSB0aGlzLmEuZnJvbVJlZCgpLmNtcG4oMCkgPT09IDA7XG4gIHRoaXMudGhyZWVBID0gdGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSA9PT0gMDtcblxuICAvLyBJZiB0aGUgY3VydmUgaXMgZW5kb21vcnBoaWMsIHByZWNhbGN1bGF0ZSBiZXRhIGFuZCBsYW1iZGFcbiAgdGhpcy5lbmRvID0gdGhpcy5fZ2V0RW5kb21vcnBoaXNtKGNvbmYpO1xuICB0aGlzLl9lbmRvV25hZlQxID0gbmV3IEFycmF5KDQpO1xuICB0aGlzLl9lbmRvV25hZlQyID0gbmV3IEFycmF5KDQpO1xufVxuaW5oZXJpdHMoU2hvcnRDdXJ2ZSwgQmFzZSk7XG5tb2R1bGUuZXhwb3J0cyA9IFNob3J0Q3VydmU7XG5cblNob3J0Q3VydmUucHJvdG90eXBlLl9nZXRFbmRvbW9ycGhpc20gPSBmdW5jdGlvbiBfZ2V0RW5kb21vcnBoaXNtKGNvbmYpIHtcbiAgLy8gTm8gZWZmaWNpZW50IGVuZG9tb3JwaGlzbVxuICBpZiAoIXRoaXMuemVyb0EgfHwgIXRoaXMuZyB8fCAhdGhpcy5uIHx8IHRoaXMucC5tb2RuKDMpICE9PSAxKVxuICAgIHJldHVybjtcblxuICAvLyBDb21wdXRlIGJldGEgYW5kIGxhbWJkYSwgdGhhdCBsYW1iZGEgKiBQID0gKGJldGEgKiBQeDsgUHkpXG4gIHZhciBiZXRhO1xuICB2YXIgbGFtYmRhO1xuICBpZiAoY29uZi5iZXRhKSB7XG4gICAgYmV0YSA9IG5ldyBCTihjb25mLmJldGEsIDE2KS50b1JlZCh0aGlzLnJlZCk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJldGFzID0gdGhpcy5fZ2V0RW5kb1Jvb3RzKHRoaXMucCk7XG4gICAgLy8gQ2hvb3NlIHRoZSBzbWFsbGVzdCBiZXRhXG4gICAgYmV0YSA9IGJldGFzWzBdLmNtcChiZXRhc1sxXSkgPCAwID8gYmV0YXNbMF0gOiBiZXRhc1sxXTtcbiAgICBiZXRhID0gYmV0YS50b1JlZCh0aGlzLnJlZCk7XG4gIH1cbiAgaWYgKGNvbmYubGFtYmRhKSB7XG4gICAgbGFtYmRhID0gbmV3IEJOKGNvbmYubGFtYmRhLCAxNik7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2hvb3NlIHRoZSBsYW1iZGEgdGhhdCBpcyBtYXRjaGluZyBzZWxlY3RlZCBiZXRhXG4gICAgdmFyIGxhbWJkYXMgPSB0aGlzLl9nZXRFbmRvUm9vdHModGhpcy5uKTtcbiAgICBpZiAodGhpcy5nLm11bChsYW1iZGFzWzBdKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoYmV0YSkpID09PSAwKSB7XG4gICAgICBsYW1iZGEgPSBsYW1iZGFzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYW1iZGEgPSBsYW1iZGFzWzFdO1xuICAgICAgYXNzZXJ0KHRoaXMuZy5tdWwobGFtYmRhKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoYmV0YSkpID09PSAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBHZXQgYmFzaXMgdmVjdG9ycywgdXNlZCBmb3IgYmFsYW5jZWQgbGVuZ3RoLXR3byByZXByZXNlbnRhdGlvblxuICB2YXIgYmFzaXM7XG4gIGlmIChjb25mLmJhc2lzKSB7XG4gICAgYmFzaXMgPSBjb25mLmJhc2lzLm1hcChmdW5jdGlvbih2ZWMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGE6IG5ldyBCTih2ZWMuYSwgMTYpLFxuICAgICAgICBiOiBuZXcgQk4odmVjLmIsIDE2KVxuICAgICAgfTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBiYXNpcyA9IHRoaXMuX2dldEVuZG9CYXNpcyhsYW1iZGEpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBiZXRhOiBiZXRhLFxuICAgIGxhbWJkYTogbGFtYmRhLFxuICAgIGJhc2lzOiBiYXNpc1xuICB9O1xufTtcblxuU2hvcnRDdXJ2ZS5wcm90b3R5cGUuX2dldEVuZG9Sb290cyA9IGZ1bmN0aW9uIF9nZXRFbmRvUm9vdHMobnVtKSB7XG4gIC8vIEZpbmQgcm9vdHMgb2YgZm9yIHheMiArIHggKyAxIGluIEZcbiAgLy8gUm9vdCA9ICgtMSArLSBTcXJ0KC0zKSkgLyAyXG4gIC8vXG4gIHZhciByZWQgPSBudW0gPT09IHRoaXMucCA/IHRoaXMucmVkIDogQk4ubW9udChudW0pO1xuICB2YXIgdGludiA9IG5ldyBCTigyKS50b1JlZChyZWQpLnJlZEludm0oKTtcbiAgdmFyIG50aW52ID0gdGludi5yZWROZWcoKTtcblxuICB2YXIgcyA9IG5ldyBCTigzKS50b1JlZChyZWQpLnJlZE5lZygpLnJlZFNxcnQoKS5yZWRNdWwodGludik7XG5cbiAgdmFyIGwxID0gbnRpbnYucmVkQWRkKHMpLmZyb21SZWQoKTtcbiAgdmFyIGwyID0gbnRpbnYucmVkU3ViKHMpLmZyb21SZWQoKTtcbiAgcmV0dXJuIFsgbDEsIGwyIF07XG59O1xuXG5TaG9ydEN1cnZlLnByb3RvdHlwZS5fZ2V0RW5kb0Jhc2lzID0gZnVuY3Rpb24gX2dldEVuZG9CYXNpcyhsYW1iZGEpIHtcbiAgLy8gYXByeFNxcnQgPj0gc3FydCh0aGlzLm4pXG4gIHZhciBhcHJ4U3FydCA9IHRoaXMubi51c2hybihNYXRoLmZsb29yKHRoaXMubi5iaXRMZW5ndGgoKSAvIDIpKTtcblxuICAvLyAzLjc0XG4gIC8vIFJ1biBFR0NELCB1bnRpbCByKEwgKyAxKSA8IGFwcnhTcXJ0XG4gIHZhciB1ID0gbGFtYmRhO1xuICB2YXIgdiA9IHRoaXMubi5jbG9uZSgpO1xuICB2YXIgeDEgPSBuZXcgQk4oMSk7XG4gIHZhciB5MSA9IG5ldyBCTigwKTtcbiAgdmFyIHgyID0gbmV3IEJOKDApO1xuICB2YXIgeTIgPSBuZXcgQk4oMSk7XG5cbiAgLy8gTk9URTogYWxsIHZlY3RvcnMgYXJlIHJvb3RzIG9mOiBhICsgYiAqIGxhbWJkYSA9IDAgKG1vZCBuKVxuICB2YXIgYTA7XG4gIHZhciBiMDtcbiAgLy8gRmlyc3QgdmVjdG9yXG4gIHZhciBhMTtcbiAgdmFyIGIxO1xuICAvLyBTZWNvbmQgdmVjdG9yXG4gIHZhciBhMjtcbiAgdmFyIGIyO1xuXG4gIHZhciBwcmV2UjtcbiAgdmFyIGkgPSAwO1xuICB2YXIgcjtcbiAgdmFyIHg7XG4gIHdoaWxlICh1LmNtcG4oMCkgIT09IDApIHtcbiAgICB2YXIgcSA9IHYuZGl2KHUpO1xuICAgIHIgPSB2LnN1YihxLm11bCh1KSk7XG4gICAgeCA9IHgyLnN1YihxLm11bCh4MSkpO1xuICAgIHZhciB5ID0geTIuc3ViKHEubXVsKHkxKSk7XG5cbiAgICBpZiAoIWExICYmIHIuY21wKGFwcnhTcXJ0KSA8IDApIHtcbiAgICAgIGEwID0gcHJldlIubmVnKCk7XG4gICAgICBiMCA9IHgxO1xuICAgICAgYTEgPSByLm5lZygpO1xuICAgICAgYjEgPSB4O1xuICAgIH0gZWxzZSBpZiAoYTEgJiYgKytpID09PSAyKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgcHJldlIgPSByO1xuXG4gICAgdiA9IHU7XG4gICAgdSA9IHI7XG4gICAgeDIgPSB4MTtcbiAgICB4MSA9IHg7XG4gICAgeTIgPSB5MTtcbiAgICB5MSA9IHk7XG4gIH1cbiAgYTIgPSByLm5lZygpO1xuICBiMiA9IHg7XG5cbiAgdmFyIGxlbjEgPSBhMS5zcXIoKS5hZGQoYjEuc3FyKCkpO1xuICB2YXIgbGVuMiA9IGEyLnNxcigpLmFkZChiMi5zcXIoKSk7XG4gIGlmIChsZW4yLmNtcChsZW4xKSA+PSAwKSB7XG4gICAgYTIgPSBhMDtcbiAgICBiMiA9IGIwO1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIHNpZ25zXG4gIGlmIChhMS5uZWdhdGl2ZSkge1xuICAgIGExID0gYTEubmVnKCk7XG4gICAgYjEgPSBiMS5uZWcoKTtcbiAgfVxuICBpZiAoYTIubmVnYXRpdmUpIHtcbiAgICBhMiA9IGEyLm5lZygpO1xuICAgIGIyID0gYjIubmVnKCk7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIHsgYTogYTEsIGI6IGIxIH0sXG4gICAgeyBhOiBhMiwgYjogYjIgfVxuICBdO1xufTtcblxuU2hvcnRDdXJ2ZS5wcm90b3R5cGUuX2VuZG9TcGxpdCA9IGZ1bmN0aW9uIF9lbmRvU3BsaXQoaykge1xuICB2YXIgYmFzaXMgPSB0aGlzLmVuZG8uYmFzaXM7XG4gIHZhciB2MSA9IGJhc2lzWzBdO1xuICB2YXIgdjIgPSBiYXNpc1sxXTtcblxuICB2YXIgYzEgPSB2Mi5iLm11bChrKS5kaXZSb3VuZCh0aGlzLm4pO1xuICB2YXIgYzIgPSB2MS5iLm5lZygpLm11bChrKS5kaXZSb3VuZCh0aGlzLm4pO1xuXG4gIHZhciBwMSA9IGMxLm11bCh2MS5hKTtcbiAgdmFyIHAyID0gYzIubXVsKHYyLmEpO1xuICB2YXIgcTEgPSBjMS5tdWwodjEuYik7XG4gIHZhciBxMiA9IGMyLm11bCh2Mi5iKTtcblxuICAvLyBDYWxjdWxhdGUgYW5zd2VyXG4gIHZhciBrMSA9IGsuc3ViKHAxKS5zdWIocDIpO1xuICB2YXIgazIgPSBxMS5hZGQocTIpLm5lZygpO1xuICByZXR1cm4geyBrMTogazEsIGsyOiBrMiB9O1xufTtcblxuU2hvcnRDdXJ2ZS5wcm90b3R5cGUucG9pbnRGcm9tWCA9IGZ1bmN0aW9uIHBvaW50RnJvbVgoeCwgb2RkKSB7XG4gIHggPSBuZXcgQk4oeCwgMTYpO1xuICBpZiAoIXgucmVkKVxuICAgIHggPSB4LnRvUmVkKHRoaXMucmVkKTtcblxuICB2YXIgeTIgPSB4LnJlZFNxcigpLnJlZE11bCh4KS5yZWRJQWRkKHgucmVkTXVsKHRoaXMuYSkpLnJlZElBZGQodGhpcy5iKTtcbiAgdmFyIHkgPSB5Mi5yZWRTcXJ0KCk7XG4gIGlmICh5LnJlZFNxcigpLnJlZFN1Yih5MikuY21wKHRoaXMuemVybykgIT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHBvaW50Jyk7XG5cbiAgLy8gWFhYIElzIHRoZXJlIGFueSB3YXkgdG8gdGVsbCBpZiB0aGUgbnVtYmVyIGlzIG9kZCB3aXRob3V0IGNvbnZlcnRpbmcgaXRcbiAgLy8gdG8gbm9uLXJlZCBmb3JtP1xuICB2YXIgaXNPZGQgPSB5LmZyb21SZWQoKS5pc09kZCgpO1xuICBpZiAob2RkICYmICFpc09kZCB8fCAhb2RkICYmIGlzT2RkKVxuICAgIHkgPSB5LnJlZE5lZygpO1xuXG4gIHJldHVybiB0aGlzLnBvaW50KHgsIHkpO1xufTtcblxuU2hvcnRDdXJ2ZS5wcm90b3R5cGUudmFsaWRhdGUgPSBmdW5jdGlvbiB2YWxpZGF0ZShwb2ludCkge1xuICBpZiAocG9pbnQuaW5mKVxuICAgIHJldHVybiB0cnVlO1xuXG4gIHZhciB4ID0gcG9pbnQueDtcbiAgdmFyIHkgPSBwb2ludC55O1xuXG4gIHZhciBheCA9IHRoaXMuYS5yZWRNdWwoeCk7XG4gIHZhciByaHMgPSB4LnJlZFNxcigpLnJlZE11bCh4KS5yZWRJQWRkKGF4KS5yZWRJQWRkKHRoaXMuYik7XG4gIHJldHVybiB5LnJlZFNxcigpLnJlZElTdWIocmhzKS5jbXBuKDApID09PSAwO1xufTtcblxuU2hvcnRDdXJ2ZS5wcm90b3R5cGUuX2VuZG9XbmFmTXVsQWRkID1cbiAgICBmdW5jdGlvbiBfZW5kb1duYWZNdWxBZGQocG9pbnRzLCBjb2VmZnMsIGphY29iaWFuUmVzdWx0KSB7XG4gIHZhciBucG9pbnRzID0gdGhpcy5fZW5kb1duYWZUMTtcbiAgdmFyIG5jb2VmZnMgPSB0aGlzLl9lbmRvV25hZlQyO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzcGxpdCA9IHRoaXMuX2VuZG9TcGxpdChjb2VmZnNbaV0pO1xuICAgIHZhciBwID0gcG9pbnRzW2ldO1xuICAgIHZhciBiZXRhID0gcC5fZ2V0QmV0YSgpO1xuXG4gICAgaWYgKHNwbGl0LmsxLm5lZ2F0aXZlKSB7XG4gICAgICBzcGxpdC5rMS5pbmVnKCk7XG4gICAgICBwID0gcC5uZWcodHJ1ZSk7XG4gICAgfVxuICAgIGlmIChzcGxpdC5rMi5uZWdhdGl2ZSkge1xuICAgICAgc3BsaXQuazIuaW5lZygpO1xuICAgICAgYmV0YSA9IGJldGEubmVnKHRydWUpO1xuICAgIH1cblxuICAgIG5wb2ludHNbaSAqIDJdID0gcDtcbiAgICBucG9pbnRzW2kgKiAyICsgMV0gPSBiZXRhO1xuICAgIG5jb2VmZnNbaSAqIDJdID0gc3BsaXQuazE7XG4gICAgbmNvZWZmc1tpICogMiArIDFdID0gc3BsaXQuazI7XG4gIH1cbiAgdmFyIHJlcyA9IHRoaXMuX3duYWZNdWxBZGQoMSwgbnBvaW50cywgbmNvZWZmcywgaSAqIDIsIGphY29iaWFuUmVzdWx0KTtcblxuICAvLyBDbGVhbi11cCByZWZlcmVuY2VzIHRvIHBvaW50cyBhbmQgY29lZmZpY2llbnRzXG4gIGZvciAodmFyIGogPSAwOyBqIDwgaSAqIDI7IGorKykge1xuICAgIG5wb2ludHNbal0gPSBudWxsO1xuICAgIG5jb2VmZnNbal0gPSBudWxsO1xuICB9XG4gIHJldHVybiByZXM7XG59O1xuXG5mdW5jdGlvbiBQb2ludChjdXJ2ZSwgeCwgeSwgaXNSZWQpIHtcbiAgQmFzZS5CYXNlUG9pbnQuY2FsbCh0aGlzLCBjdXJ2ZSwgJ2FmZmluZScpO1xuICBpZiAoeCA9PT0gbnVsbCAmJiB5ID09PSBudWxsKSB7XG4gICAgdGhpcy54ID0gbnVsbDtcbiAgICB0aGlzLnkgPSBudWxsO1xuICAgIHRoaXMuaW5mID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnggPSBuZXcgQk4oeCwgMTYpO1xuICAgIHRoaXMueSA9IG5ldyBCTih5LCAxNik7XG4gICAgLy8gRm9yY2UgcmVkZ29tZXJ5IHJlcHJlc2VudGF0aW9uIHdoZW4gbG9hZGluZyBmcm9tIEpTT05cbiAgICBpZiAoaXNSZWQpIHtcbiAgICAgIHRoaXMueC5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCk7XG4gICAgICB0aGlzLnkuZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMueC5yZWQpXG4gICAgICB0aGlzLnggPSB0aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO1xuICAgIGlmICghdGhpcy55LnJlZClcbiAgICAgIHRoaXMueSA9IHRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCk7XG4gICAgdGhpcy5pbmYgPSBmYWxzZTtcbiAgfVxufVxuaW5oZXJpdHMoUG9pbnQsIEJhc2UuQmFzZVBvaW50KTtcblxuU2hvcnRDdXJ2ZS5wcm90b3R5cGUucG9pbnQgPSBmdW5jdGlvbiBwb2ludCh4LCB5LCBpc1JlZCkge1xuICByZXR1cm4gbmV3IFBvaW50KHRoaXMsIHgsIHksIGlzUmVkKTtcbn07XG5cblNob3J0Q3VydmUucHJvdG90eXBlLnBvaW50RnJvbUpTT04gPSBmdW5jdGlvbiBwb2ludEZyb21KU09OKG9iaiwgcmVkKSB7XG4gIHJldHVybiBQb2ludC5mcm9tSlNPTih0aGlzLCBvYmosIHJlZCk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuX2dldEJldGEgPSBmdW5jdGlvbiBfZ2V0QmV0YSgpIHtcbiAgaWYgKCF0aGlzLmN1cnZlLmVuZG8pXG4gICAgcmV0dXJuO1xuXG4gIHZhciBwcmUgPSB0aGlzLnByZWNvbXB1dGVkO1xuICBpZiAocHJlICYmIHByZS5iZXRhKVxuICAgIHJldHVybiBwcmUuYmV0YTtcblxuICB2YXIgYmV0YSA9IHRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE11bCh0aGlzLmN1cnZlLmVuZG8uYmV0YSksIHRoaXMueSk7XG4gIGlmIChwcmUpIHtcbiAgICB2YXIgY3VydmUgPSB0aGlzLmN1cnZlO1xuICAgIHZhciBlbmRvTXVsID0gZnVuY3Rpb24ocCkge1xuICAgICAgcmV0dXJuIGN1cnZlLnBvaW50KHAueC5yZWRNdWwoY3VydmUuZW5kby5iZXRhKSwgcC55KTtcbiAgICB9O1xuICAgIHByZS5iZXRhID0gYmV0YTtcbiAgICBiZXRhLnByZWNvbXB1dGVkID0ge1xuICAgICAgYmV0YTogbnVsbCxcbiAgICAgIG5hZjogcHJlLm5hZiAmJiB7XG4gICAgICAgIHduZDogcHJlLm5hZi53bmQsXG4gICAgICAgIHBvaW50czogcHJlLm5hZi5wb2ludHMubWFwKGVuZG9NdWwpXG4gICAgICB9LFxuICAgICAgZG91YmxlczogcHJlLmRvdWJsZXMgJiYge1xuICAgICAgICBzdGVwOiBwcmUuZG91Ymxlcy5zdGVwLFxuICAgICAgICBwb2ludHM6IHByZS5kb3VibGVzLnBvaW50cy5tYXAoZW5kb011bClcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHJldHVybiBiZXRhO1xufTtcblxuUG9pbnQucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgaWYgKCF0aGlzLnByZWNvbXB1dGVkKVxuICAgIHJldHVybiBbIHRoaXMueCwgdGhpcy55IF07XG5cbiAgcmV0dXJuIFsgdGhpcy54LCB0aGlzLnksIHRoaXMucHJlY29tcHV0ZWQgJiYge1xuICAgIGRvdWJsZXM6IHRoaXMucHJlY29tcHV0ZWQuZG91YmxlcyAmJiB7XG4gICAgICBzdGVwOiB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMuc3RlcCxcbiAgICAgIHBvaW50czogdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnBvaW50cy5zbGljZSgxKVxuICAgIH0sXG4gICAgbmFmOiB0aGlzLnByZWNvbXB1dGVkLm5hZiAmJiB7XG4gICAgICB3bmQ6IHRoaXMucHJlY29tcHV0ZWQubmFmLnduZCxcbiAgICAgIHBvaW50czogdGhpcy5wcmVjb21wdXRlZC5uYWYucG9pbnRzLnNsaWNlKDEpXG4gICAgfVxuICB9IF07XG59O1xuXG5Qb2ludC5mcm9tSlNPTiA9IGZ1bmN0aW9uIGZyb21KU09OKGN1cnZlLCBvYmosIHJlZCkge1xuICBpZiAodHlwZW9mIG9iaiA9PT0gJ3N0cmluZycpXG4gICAgb2JqID0gSlNPTi5wYXJzZShvYmopO1xuICB2YXIgcmVzID0gY3VydmUucG9pbnQob2JqWzBdLCBvYmpbMV0sIHJlZCk7XG4gIGlmICghb2JqWzJdKVxuICAgIHJldHVybiByZXM7XG5cbiAgZnVuY3Rpb24gb2JqMnBvaW50KG9iaikge1xuICAgIHJldHVybiBjdXJ2ZS5wb2ludChvYmpbMF0sIG9ialsxXSwgcmVkKTtcbiAgfVxuXG4gIHZhciBwcmUgPSBvYmpbMl07XG4gIHJlcy5wcmVjb21wdXRlZCA9IHtcbiAgICBiZXRhOiBudWxsLFxuICAgIGRvdWJsZXM6IHByZS5kb3VibGVzICYmIHtcbiAgICAgIHN0ZXA6IHByZS5kb3VibGVzLnN0ZXAsXG4gICAgICBwb2ludHM6IFsgcmVzIF0uY29uY2F0KHByZS5kb3VibGVzLnBvaW50cy5tYXAob2JqMnBvaW50KSlcbiAgICB9LFxuICAgIG5hZjogcHJlLm5hZiAmJiB7XG4gICAgICB3bmQ6IHByZS5uYWYud25kLFxuICAgICAgcG9pbnRzOiBbIHJlcyBdLmNvbmNhdChwcmUubmFmLnBvaW50cy5tYXAob2JqMnBvaW50KSlcbiAgICB9XG4gIH07XG4gIHJldHVybiByZXM7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QoKSB7XG4gIGlmICh0aGlzLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gJzxFQyBQb2ludCBJbmZpbml0eT4nO1xuICByZXR1cm4gJzxFQyBQb2ludCB4OiAnICsgdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwgMikgK1xuICAgICAgJyB5OiAnICsgdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwgMikgKyAnPic7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuaXNJbmZpbml0eSA9IGZ1bmN0aW9uIGlzSW5maW5pdHkoKSB7XG4gIHJldHVybiB0aGlzLmluZjtcbn07XG5cblBvaW50LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQocCkge1xuICAvLyBPICsgUCA9IFBcbiAgaWYgKHRoaXMuaW5mKVxuICAgIHJldHVybiBwO1xuXG4gIC8vIFAgKyBPID0gUFxuICBpZiAocC5pbmYpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gUCArIFAgPSAyUFxuICBpZiAodGhpcy5lcShwKSlcbiAgICByZXR1cm4gdGhpcy5kYmwoKTtcblxuICAvLyBQICsgKC1QKSA9IE9cbiAgaWYgKHRoaXMubmVnKCkuZXEocCkpXG4gICAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCwgbnVsbCk7XG5cbiAgLy8gUCArIFEgPSBPXG4gIGlmICh0aGlzLnguY21wKHAueCkgPT09IDApXG4gICAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCwgbnVsbCk7XG5cbiAgdmFyIGMgPSB0aGlzLnkucmVkU3ViKHAueSk7XG4gIGlmIChjLmNtcG4oMCkgIT09IDApXG4gICAgYyA9IGMucmVkTXVsKHRoaXMueC5yZWRTdWIocC54KS5yZWRJbnZtKCkpO1xuICB2YXIgbnggPSBjLnJlZFNxcigpLnJlZElTdWIodGhpcy54KS5yZWRJU3ViKHAueCk7XG4gIHZhciBueSA9IGMucmVkTXVsKHRoaXMueC5yZWRTdWIobngpKS5yZWRJU3ViKHRoaXMueSk7XG4gIHJldHVybiB0aGlzLmN1cnZlLnBvaW50KG54LCBueSk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZGJsID0gZnVuY3Rpb24gZGJsKCkge1xuICBpZiAodGhpcy5pbmYpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gMlAgPSBPXG4gIHZhciB5czEgPSB0aGlzLnkucmVkQWRkKHRoaXMueSk7XG4gIGlmICh5czEuY21wbigwKSA9PT0gMClcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLCBudWxsKTtcblxuICB2YXIgYSA9IHRoaXMuY3VydmUuYTtcblxuICB2YXIgeDIgPSB0aGlzLngucmVkU3FyKCk7XG4gIHZhciBkeWludiA9IHlzMS5yZWRJbnZtKCk7XG4gIHZhciBjID0geDIucmVkQWRkKHgyKS5yZWRJQWRkKHgyKS5yZWRJQWRkKGEpLnJlZE11bChkeWludik7XG5cbiAgdmFyIG54ID0gYy5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSk7XG4gIHZhciBueSA9IGMucmVkTXVsKHRoaXMueC5yZWRTdWIobngpKS5yZWRJU3ViKHRoaXMueSk7XG4gIHJldHVybiB0aGlzLmN1cnZlLnBvaW50KG54LCBueSk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZ2V0WCA9IGZ1bmN0aW9uIGdldFgoKSB7XG4gIHJldHVybiB0aGlzLnguZnJvbVJlZCgpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmdldFkgPSBmdW5jdGlvbiBnZXRZKCkge1xuICByZXR1cm4gdGhpcy55LmZyb21SZWQoKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiBtdWwoaykge1xuICBrID0gbmV3IEJOKGssIDE2KTtcblxuICBpZiAodGhpcy5faGFzRG91YmxlcyhrKSlcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcywgayk7XG4gIGVsc2UgaWYgKHRoaXMuY3VydmUuZW5kbylcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoWyB0aGlzIF0sIFsgayBdKTtcbiAgZWxzZVxuICAgIHJldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsIGspO1xufTtcblxuUG9pbnQucHJvdG90eXBlLm11bEFkZCA9IGZ1bmN0aW9uIG11bEFkZChrMSwgcDIsIGsyKSB7XG4gIHZhciBwb2ludHMgPSBbIHRoaXMsIHAyIF07XG4gIHZhciBjb2VmZnMgPSBbIGsxLCBrMiBdO1xuICBpZiAodGhpcy5jdXJ2ZS5lbmRvKVxuICAgIHJldHVybiB0aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChwb2ludHMsIGNvZWZmcyk7XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLCBwb2ludHMsIGNvZWZmcywgMik7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuam11bEFkZCA9IGZ1bmN0aW9uIGptdWxBZGQoazEsIHAyLCBrMikge1xuICB2YXIgcG9pbnRzID0gWyB0aGlzLCBwMiBdO1xuICB2YXIgY29lZmZzID0gWyBrMSwgazIgXTtcbiAgaWYgKHRoaXMuY3VydmUuZW5kbylcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQocG9pbnRzLCBjb2VmZnMsIHRydWUpO1xuICBlbHNlXG4gICAgcmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSwgcG9pbnRzLCBjb2VmZnMsIDIsIHRydWUpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmVxID0gZnVuY3Rpb24gZXEocCkge1xuICByZXR1cm4gdGhpcyA9PT0gcCB8fFxuICAgICAgICAgdGhpcy5pbmYgPT09IHAuaW5mICYmXG4gICAgICAgICAgICAgKHRoaXMuaW5mIHx8IHRoaXMueC5jbXAocC54KSA9PT0gMCAmJiB0aGlzLnkuY21wKHAueSkgPT09IDApO1xufTtcblxuUG9pbnQucHJvdG90eXBlLm5lZyA9IGZ1bmN0aW9uIG5lZyhfcHJlY29tcHV0ZSkge1xuICBpZiAodGhpcy5pbmYpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgdmFyIHJlcyA9IHRoaXMuY3VydmUucG9pbnQodGhpcy54LCB0aGlzLnkucmVkTmVnKCkpO1xuICBpZiAoX3ByZWNvbXB1dGUgJiYgdGhpcy5wcmVjb21wdXRlZCkge1xuICAgIHZhciBwcmUgPSB0aGlzLnByZWNvbXB1dGVkO1xuICAgIHZhciBuZWdhdGUgPSBmdW5jdGlvbihwKSB7XG4gICAgICByZXR1cm4gcC5uZWcoKTtcbiAgICB9O1xuICAgIHJlcy5wcmVjb21wdXRlZCA9IHtcbiAgICAgIG5hZjogcHJlLm5hZiAmJiB7XG4gICAgICAgIHduZDogcHJlLm5hZi53bmQsXG4gICAgICAgIHBvaW50czogcHJlLm5hZi5wb2ludHMubWFwKG5lZ2F0ZSlcbiAgICAgIH0sXG4gICAgICBkb3VibGVzOiBwcmUuZG91YmxlcyAmJiB7XG4gICAgICAgIHN0ZXA6IHByZS5kb3VibGVzLnN0ZXAsXG4gICAgICAgIHBvaW50czogcHJlLmRvdWJsZXMucG9pbnRzLm1hcChuZWdhdGUpXG4gICAgICB9XG4gICAgfTtcbiAgfVxuICByZXR1cm4gcmVzO1xufTtcblxuUG9pbnQucHJvdG90eXBlLnRvSiA9IGZ1bmN0aW9uIHRvSigpIHtcbiAgaWYgKHRoaXMuaW5mKVxuICAgIHJldHVybiB0aGlzLmN1cnZlLmpwb2ludChudWxsLCBudWxsLCBudWxsKTtcblxuICB2YXIgcmVzID0gdGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LCB0aGlzLnksIHRoaXMuY3VydmUub25lKTtcbiAgcmV0dXJuIHJlcztcbn07XG5cbmZ1bmN0aW9uIEpQb2ludChjdXJ2ZSwgeCwgeSwgeikge1xuICBCYXNlLkJhc2VQb2ludC5jYWxsKHRoaXMsIGN1cnZlLCAnamFjb2JpYW4nKTtcbiAgaWYgKHggPT09IG51bGwgJiYgeSA9PT0gbnVsbCAmJiB6ID09PSBudWxsKSB7XG4gICAgdGhpcy54ID0gdGhpcy5jdXJ2ZS5vbmU7XG4gICAgdGhpcy55ID0gdGhpcy5jdXJ2ZS5vbmU7XG4gICAgdGhpcy56ID0gbmV3IEJOKDApO1xuICB9IGVsc2Uge1xuICAgIHRoaXMueCA9IG5ldyBCTih4LCAxNik7XG4gICAgdGhpcy55ID0gbmV3IEJOKHksIDE2KTtcbiAgICB0aGlzLnogPSBuZXcgQk4oeiwgMTYpO1xuICB9XG4gIGlmICghdGhpcy54LnJlZClcbiAgICB0aGlzLnggPSB0aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO1xuICBpZiAoIXRoaXMueS5yZWQpXG4gICAgdGhpcy55ID0gdGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKTtcbiAgaWYgKCF0aGlzLnoucmVkKVxuICAgIHRoaXMueiA9IHRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCk7XG5cbiAgdGhpcy56T25lID0gdGhpcy56ID09PSB0aGlzLmN1cnZlLm9uZTtcbn1cbmluaGVyaXRzKEpQb2ludCwgQmFzZS5CYXNlUG9pbnQpO1xuXG5TaG9ydEN1cnZlLnByb3RvdHlwZS5qcG9pbnQgPSBmdW5jdGlvbiBqcG9pbnQoeCwgeSwgeikge1xuICByZXR1cm4gbmV3IEpQb2ludCh0aGlzLCB4LCB5LCB6KTtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUudG9QID0gZnVuY3Rpb24gdG9QKCkge1xuICBpZiAodGhpcy5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCwgbnVsbCk7XG5cbiAgdmFyIHppbnYgPSB0aGlzLnoucmVkSW52bSgpO1xuICB2YXIgemludjIgPSB6aW52LnJlZFNxcigpO1xuICB2YXIgYXggPSB0aGlzLngucmVkTXVsKHppbnYyKTtcbiAgdmFyIGF5ID0gdGhpcy55LnJlZE11bCh6aW52MikucmVkTXVsKHppbnYpO1xuXG4gIHJldHVybiB0aGlzLmN1cnZlLnBvaW50KGF4LCBheSk7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLm5lZyA9IGZ1bmN0aW9uIG5lZygpIHtcbiAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHRoaXMueCwgdGhpcy55LnJlZE5lZygpLCB0aGlzLnopO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQocCkge1xuICAvLyBPICsgUCA9IFBcbiAgaWYgKHRoaXMuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiBwO1xuXG4gIC8vIFAgKyBPID0gUFxuICBpZiAocC5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gMTJNICsgNFMgKyA3QVxuICB2YXIgcHoyID0gcC56LnJlZFNxcigpO1xuICB2YXIgejIgPSB0aGlzLnoucmVkU3FyKCk7XG4gIHZhciB1MSA9IHRoaXMueC5yZWRNdWwocHoyKTtcbiAgdmFyIHUyID0gcC54LnJlZE11bCh6Mik7XG4gIHZhciBzMSA9IHRoaXMueS5yZWRNdWwocHoyLnJlZE11bChwLnopKTtcbiAgdmFyIHMyID0gcC55LnJlZE11bCh6Mi5yZWRNdWwodGhpcy56KSk7XG5cbiAgdmFyIGggPSB1MS5yZWRTdWIodTIpO1xuICB2YXIgciA9IHMxLnJlZFN1YihzMik7XG4gIGlmIChoLmNtcG4oMCkgPT09IDApIHtcbiAgICBpZiAoci5jbXBuKDApICE9PSAwKVxuICAgICAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG51bGwsIG51bGwsIG51bGwpO1xuICAgIGVsc2VcbiAgICAgIHJldHVybiB0aGlzLmRibCgpO1xuICB9XG5cbiAgdmFyIGgyID0gaC5yZWRTcXIoKTtcbiAgdmFyIGgzID0gaDIucmVkTXVsKGgpO1xuICB2YXIgdiA9IHUxLnJlZE11bChoMik7XG5cbiAgdmFyIG54ID0gci5yZWRTcXIoKS5yZWRJQWRkKGgzKS5yZWRJU3ViKHYpLnJlZElTdWIodik7XG4gIHZhciBueSA9IHIucmVkTXVsKHYucmVkSVN1YihueCkpLnJlZElTdWIoczEucmVkTXVsKGgzKSk7XG4gIHZhciBueiA9IHRoaXMuei5yZWRNdWwocC56KS5yZWRNdWwoaCk7XG5cbiAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG54LCBueSwgbnopO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS5taXhlZEFkZCA9IGZ1bmN0aW9uIG1peGVkQWRkKHApIHtcbiAgLy8gTyArIFAgPSBQXG4gIGlmICh0aGlzLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gcC50b0ooKTtcblxuICAvLyBQICsgTyA9IFBcbiAgaWYgKHAuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIC8vIDhNICsgM1MgKyA3QVxuICB2YXIgejIgPSB0aGlzLnoucmVkU3FyKCk7XG4gIHZhciB1MSA9IHRoaXMueDtcbiAgdmFyIHUyID0gcC54LnJlZE11bCh6Mik7XG4gIHZhciBzMSA9IHRoaXMueTtcbiAgdmFyIHMyID0gcC55LnJlZE11bCh6MikucmVkTXVsKHRoaXMueik7XG5cbiAgdmFyIGggPSB1MS5yZWRTdWIodTIpO1xuICB2YXIgciA9IHMxLnJlZFN1YihzMik7XG4gIGlmIChoLmNtcG4oMCkgPT09IDApIHtcbiAgICBpZiAoci5jbXBuKDApICE9PSAwKVxuICAgICAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG51bGwsIG51bGwsIG51bGwpO1xuICAgIGVsc2VcbiAgICAgIHJldHVybiB0aGlzLmRibCgpO1xuICB9XG5cbiAgdmFyIGgyID0gaC5yZWRTcXIoKTtcbiAgdmFyIGgzID0gaDIucmVkTXVsKGgpO1xuICB2YXIgdiA9IHUxLnJlZE11bChoMik7XG5cbiAgdmFyIG54ID0gci5yZWRTcXIoKS5yZWRJQWRkKGgzKS5yZWRJU3ViKHYpLnJlZElTdWIodik7XG4gIHZhciBueSA9IHIucmVkTXVsKHYucmVkSVN1YihueCkpLnJlZElTdWIoczEucmVkTXVsKGgzKSk7XG4gIHZhciBueiA9IHRoaXMuei5yZWRNdWwoaCk7XG5cbiAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG54LCBueSwgbnopO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS5kYmxwID0gZnVuY3Rpb24gZGJscChwb3cpIHtcbiAgaWYgKHBvdyA9PT0gMClcbiAgICByZXR1cm4gdGhpcztcbiAgaWYgKHRoaXMuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiB0aGlzO1xuICBpZiAoIXBvdylcbiAgICByZXR1cm4gdGhpcy5kYmwoKTtcblxuICBpZiAodGhpcy5jdXJ2ZS56ZXJvQSB8fCB0aGlzLmN1cnZlLnRocmVlQSkge1xuICAgIHZhciByID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBvdzsgaSsrKVxuICAgICAgciA9IHIuZGJsKCk7XG4gICAgcmV0dXJuIHI7XG4gIH1cblxuICAvLyAxTSArIDJTICsgMUEgKyBOICogKDRTICsgNU0gKyA4QSlcbiAgLy8gTiA9IDEgPT4gNk0gKyA2UyArIDlBXG4gIHZhciBhID0gdGhpcy5jdXJ2ZS5hO1xuICB2YXIgdGludiA9IHRoaXMuY3VydmUudGludjtcblxuICB2YXIganggPSB0aGlzLng7XG4gIHZhciBqeSA9IHRoaXMueTtcbiAgdmFyIGp6ID0gdGhpcy56O1xuICB2YXIgano0ID0ganoucmVkU3FyKCkucmVkU3FyKCk7XG5cbiAgLy8gUmV1c2UgcmVzdWx0c1xuICB2YXIganlkID0gankucmVkQWRkKGp5KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3c7IGkrKykge1xuICAgIHZhciBqeDIgPSBqeC5yZWRTcXIoKTtcbiAgICB2YXIganlkMiA9IGp5ZC5yZWRTcXIoKTtcbiAgICB2YXIganlkNCA9IGp5ZDIucmVkU3FyKCk7XG4gICAgdmFyIGMgPSBqeDIucmVkQWRkKGp4MikucmVkSUFkZChqeDIpLnJlZElBZGQoYS5yZWRNdWwoano0KSk7XG5cbiAgICB2YXIgdDEgPSBqeC5yZWRNdWwoanlkMik7XG4gICAgdmFyIG54ID0gYy5yZWRTcXIoKS5yZWRJU3ViKHQxLnJlZEFkZCh0MSkpO1xuICAgIHZhciB0MiA9IHQxLnJlZElTdWIobngpO1xuICAgIHZhciBkbnkgPSBjLnJlZE11bCh0Mik7XG4gICAgZG55ID0gZG55LnJlZElBZGQoZG55KS5yZWRJU3ViKGp5ZDQpO1xuICAgIHZhciBueiA9IGp5ZC5yZWRNdWwoanopO1xuICAgIGlmIChpICsgMSA8IHBvdylcbiAgICAgIGp6NCA9IGp6NC5yZWRNdWwoanlkNCk7XG5cbiAgICBqeCA9IG54O1xuICAgIGp6ID0gbno7XG4gICAganlkID0gZG55O1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGp4LCBqeWQucmVkTXVsKHRpbnYpLCBqeik7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLmRibCA9IGZ1bmN0aW9uIGRibCgpIHtcbiAgaWYgKHRoaXMuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIGlmICh0aGlzLmN1cnZlLnplcm9BKVxuICAgIHJldHVybiB0aGlzLl96ZXJvRGJsKCk7XG4gIGVsc2UgaWYgKHRoaXMuY3VydmUudGhyZWVBKVxuICAgIHJldHVybiB0aGlzLl90aHJlZURibCgpO1xuICBlbHNlXG4gICAgcmV0dXJuIHRoaXMuX2RibCgpO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS5femVyb0RibCA9IGZ1bmN0aW9uIF96ZXJvRGJsKCkge1xuICB2YXIgbng7XG4gIHZhciBueTtcbiAgdmFyIG56O1xuICAvLyBaID0gMVxuICBpZiAodGhpcy56T25lKSB7XG4gICAgLy8gaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLXNob3J0dy1qYWNvYmlhbi0wLmh0bWxcbiAgICAvLyAgICAgI2RvdWJsaW5nLW1kYmwtMjAwNy1ibFxuICAgIC8vIDFNICsgNVMgKyAxNEFcblxuICAgIC8vIFhYID0gWDFeMlxuICAgIHZhciB4eCA9IHRoaXMueC5yZWRTcXIoKTtcbiAgICAvLyBZWSA9IFkxXjJcbiAgICB2YXIgeXkgPSB0aGlzLnkucmVkU3FyKCk7XG4gICAgLy8gWVlZWSA9IFlZXjJcbiAgICB2YXIgeXl5eSA9IHl5LnJlZFNxcigpO1xuICAgIC8vIFMgPSAyICogKChYMSArIFlZKV4yIC0gWFggLSBZWVlZKVxuICAgIHZhciBzID0gdGhpcy54LnJlZEFkZCh5eSkucmVkU3FyKCkucmVkSVN1Yih4eCkucmVkSVN1Yih5eXl5KTtcbiAgICBzID0gcy5yZWRJQWRkKHMpO1xuICAgIC8vIE0gPSAzICogWFggKyBhOyBhID0gMFxuICAgIHZhciBtID0geHgucmVkQWRkKHh4KS5yZWRJQWRkKHh4KTtcbiAgICAvLyBUID0gTSBeIDIgLSAyKlNcbiAgICB2YXIgdCA9IG0ucmVkU3FyKCkucmVkSVN1YihzKS5yZWRJU3ViKHMpO1xuXG4gICAgLy8gOCAqIFlZWVlcbiAgICB2YXIgeXl5eTggPSB5eXl5LnJlZElBZGQoeXl5eSk7XG4gICAgeXl5eTggPSB5eXl5OC5yZWRJQWRkKHl5eXk4KTtcbiAgICB5eXl5OCA9IHl5eXk4LnJlZElBZGQoeXl5eTgpO1xuXG4gICAgLy8gWDMgPSBUXG4gICAgbnggPSB0O1xuICAgIC8vIFkzID0gTSAqIChTIC0gVCkgLSA4ICogWVlZWVxuICAgIG55ID0gbS5yZWRNdWwocy5yZWRJU3ViKHQpKS5yZWRJU3ViKHl5eXk4KTtcbiAgICAvLyBaMyA9IDIqWTFcbiAgICBueiA9IHRoaXMueS5yZWRBZGQodGhpcy55KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBoeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tc2hvcnR3LWphY29iaWFuLTAuaHRtbFxuICAgIC8vICAgICAjZG91YmxpbmctZGJsLTIwMDktbFxuICAgIC8vIDJNICsgNVMgKyAxM0FcblxuICAgIC8vIEEgPSBYMV4yXG4gICAgdmFyIGEgPSB0aGlzLngucmVkU3FyKCk7XG4gICAgLy8gQiA9IFkxXjJcbiAgICB2YXIgYiA9IHRoaXMueS5yZWRTcXIoKTtcbiAgICAvLyBDID0gQl4yXG4gICAgdmFyIGMgPSBiLnJlZFNxcigpO1xuICAgIC8vIEQgPSAyICogKChYMSArIEIpXjIgLSBBIC0gQylcbiAgICB2YXIgZCA9IHRoaXMueC5yZWRBZGQoYikucmVkU3FyKCkucmVkSVN1YihhKS5yZWRJU3ViKGMpO1xuICAgIGQgPSBkLnJlZElBZGQoZCk7XG4gICAgLy8gRSA9IDMgKiBBXG4gICAgdmFyIGUgPSBhLnJlZEFkZChhKS5yZWRJQWRkKGEpO1xuICAgIC8vIEYgPSBFXjJcbiAgICB2YXIgZiA9IGUucmVkU3FyKCk7XG5cbiAgICAvLyA4ICogQ1xuICAgIHZhciBjOCA9IGMucmVkSUFkZChjKTtcbiAgICBjOCA9IGM4LnJlZElBZGQoYzgpO1xuICAgIGM4ID0gYzgucmVkSUFkZChjOCk7XG5cbiAgICAvLyBYMyA9IEYgLSAyICogRFxuICAgIG54ID0gZi5yZWRJU3ViKGQpLnJlZElTdWIoZCk7XG4gICAgLy8gWTMgPSBFICogKEQgLSBYMykgLSA4ICogQ1xuICAgIG55ID0gZS5yZWRNdWwoZC5yZWRJU3ViKG54KSkucmVkSVN1YihjOCk7XG4gICAgLy8gWjMgPSAyICogWTEgKiBaMVxuICAgIG56ID0gdGhpcy55LnJlZE11bCh0aGlzLnopO1xuICAgIG56ID0gbnoucmVkSUFkZChueik7XG4gIH1cblxuICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobngsIG55LCBueik7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLl90aHJlZURibCA9IGZ1bmN0aW9uIF90aHJlZURibCgpIHtcbiAgdmFyIG54O1xuICB2YXIgbnk7XG4gIHZhciBuejtcbiAgLy8gWiA9IDFcbiAgaWYgKHRoaXMuek9uZSkge1xuICAgIC8vIGh5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by1zaG9ydHctamFjb2JpYW4tMy5odG1sXG4gICAgLy8gICAgICNkb3VibGluZy1tZGJsLTIwMDctYmxcbiAgICAvLyAxTSArIDVTICsgMTVBXG5cbiAgICAvLyBYWCA9IFgxXjJcbiAgICB2YXIgeHggPSB0aGlzLngucmVkU3FyKCk7XG4gICAgLy8gWVkgPSBZMV4yXG4gICAgdmFyIHl5ID0gdGhpcy55LnJlZFNxcigpO1xuICAgIC8vIFlZWVkgPSBZWV4yXG4gICAgdmFyIHl5eXkgPSB5eS5yZWRTcXIoKTtcbiAgICAvLyBTID0gMiAqICgoWDEgKyBZWSleMiAtIFhYIC0gWVlZWSlcbiAgICB2YXIgcyA9IHRoaXMueC5yZWRBZGQoeXkpLnJlZFNxcigpLnJlZElTdWIoeHgpLnJlZElTdWIoeXl5eSk7XG4gICAgcyA9IHMucmVkSUFkZChzKTtcbiAgICAvLyBNID0gMyAqIFhYICsgYVxuICAgIHZhciBtID0geHgucmVkQWRkKHh4KS5yZWRJQWRkKHh4KS5yZWRJQWRkKHRoaXMuY3VydmUuYSk7XG4gICAgLy8gVCA9IE1eMiAtIDIgKiBTXG4gICAgdmFyIHQgPSBtLnJlZFNxcigpLnJlZElTdWIocykucmVkSVN1YihzKTtcbiAgICAvLyBYMyA9IFRcbiAgICBueCA9IHQ7XG4gICAgLy8gWTMgPSBNICogKFMgLSBUKSAtIDggKiBZWVlZXG4gICAgdmFyIHl5eXk4ID0geXl5eS5yZWRJQWRkKHl5eXkpO1xuICAgIHl5eXk4ID0geXl5eTgucmVkSUFkZCh5eXl5OCk7XG4gICAgeXl5eTggPSB5eXl5OC5yZWRJQWRkKHl5eXk4KTtcbiAgICBueSA9IG0ucmVkTXVsKHMucmVkSVN1Yih0KSkucmVkSVN1Yih5eXl5OCk7XG4gICAgLy8gWjMgPSAyICogWTFcbiAgICBueiA9IHRoaXMueS5yZWRBZGQodGhpcy55KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBoeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tc2hvcnR3LWphY29iaWFuLTMuaHRtbCNkb3VibGluZy1kYmwtMjAwMS1iXG4gICAgLy8gM00gKyA1U1xuXG4gICAgLy8gZGVsdGEgPSBaMV4yXG4gICAgdmFyIGRlbHRhID0gdGhpcy56LnJlZFNxcigpO1xuICAgIC8vIGdhbW1hID0gWTFeMlxuICAgIHZhciBnYW1tYSA9IHRoaXMueS5yZWRTcXIoKTtcbiAgICAvLyBiZXRhID0gWDEgKiBnYW1tYVxuICAgIHZhciBiZXRhID0gdGhpcy54LnJlZE11bChnYW1tYSk7XG4gICAgLy8gYWxwaGEgPSAzICogKFgxIC0gZGVsdGEpICogKFgxICsgZGVsdGEpXG4gICAgdmFyIGFscGhhID0gdGhpcy54LnJlZFN1YihkZWx0YSkucmVkTXVsKHRoaXMueC5yZWRBZGQoZGVsdGEpKTtcbiAgICBhbHBoYSA9IGFscGhhLnJlZEFkZChhbHBoYSkucmVkSUFkZChhbHBoYSk7XG4gICAgLy8gWDMgPSBhbHBoYV4yIC0gOCAqIGJldGFcbiAgICB2YXIgYmV0YTQgPSBiZXRhLnJlZElBZGQoYmV0YSk7XG4gICAgYmV0YTQgPSBiZXRhNC5yZWRJQWRkKGJldGE0KTtcbiAgICB2YXIgYmV0YTggPSBiZXRhNC5yZWRBZGQoYmV0YTQpO1xuICAgIG54ID0gYWxwaGEucmVkU3FyKCkucmVkSVN1YihiZXRhOCk7XG4gICAgLy8gWjMgPSAoWTEgKyBaMSleMiAtIGdhbW1hIC0gZGVsdGFcbiAgICBueiA9IHRoaXMueS5yZWRBZGQodGhpcy56KS5yZWRTcXIoKS5yZWRJU3ViKGdhbW1hKS5yZWRJU3ViKGRlbHRhKTtcbiAgICAvLyBZMyA9IGFscGhhICogKDQgKiBiZXRhIC0gWDMpIC0gOCAqIGdhbW1hXjJcbiAgICB2YXIgZ2dhbW1hOCA9IGdhbW1hLnJlZFNxcigpO1xuICAgIGdnYW1tYTggPSBnZ2FtbWE4LnJlZElBZGQoZ2dhbW1hOCk7XG4gICAgZ2dhbW1hOCA9IGdnYW1tYTgucmVkSUFkZChnZ2FtbWE4KTtcbiAgICBnZ2FtbWE4ID0gZ2dhbW1hOC5yZWRJQWRkKGdnYW1tYTgpO1xuICAgIG55ID0gYWxwaGEucmVkTXVsKGJldGE0LnJlZElTdWIobngpKS5yZWRJU3ViKGdnYW1tYTgpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG54LCBueSwgbnopO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS5fZGJsID0gZnVuY3Rpb24gX2RibCgpIHtcbiAgdmFyIGEgPSB0aGlzLmN1cnZlLmE7XG5cbiAgLy8gNE0gKyA2UyArIDEwQVxuICB2YXIganggPSB0aGlzLng7XG4gIHZhciBqeSA9IHRoaXMueTtcbiAgdmFyIGp6ID0gdGhpcy56O1xuICB2YXIgano0ID0ganoucmVkU3FyKCkucmVkU3FyKCk7XG5cbiAgdmFyIGp4MiA9IGp4LnJlZFNxcigpO1xuICB2YXIgankyID0gankucmVkU3FyKCk7XG5cbiAgdmFyIGMgPSBqeDIucmVkQWRkKGp4MikucmVkSUFkZChqeDIpLnJlZElBZGQoYS5yZWRNdWwoano0KSk7XG5cbiAgdmFyIGp4ZDQgPSBqeC5yZWRBZGQoangpO1xuICBqeGQ0ID0ganhkNC5yZWRJQWRkKGp4ZDQpO1xuICB2YXIgdDEgPSBqeGQ0LnJlZE11bChqeTIpO1xuICB2YXIgbnggPSBjLnJlZFNxcigpLnJlZElTdWIodDEucmVkQWRkKHQxKSk7XG4gIHZhciB0MiA9IHQxLnJlZElTdWIobngpO1xuXG4gIHZhciBqeWQ4ID0gankyLnJlZFNxcigpO1xuICBqeWQ4ID0ganlkOC5yZWRJQWRkKGp5ZDgpO1xuICBqeWQ4ID0ganlkOC5yZWRJQWRkKGp5ZDgpO1xuICBqeWQ4ID0ganlkOC5yZWRJQWRkKGp5ZDgpO1xuICB2YXIgbnkgPSBjLnJlZE11bCh0MikucmVkSVN1YihqeWQ4KTtcbiAgdmFyIG56ID0gankucmVkQWRkKGp5KS5yZWRNdWwoanopO1xuXG4gIHJldHVybiB0aGlzLmN1cnZlLmpwb2ludChueCwgbnksIG56KTtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUudHJwbCA9IGZ1bmN0aW9uIHRycGwoKSB7XG4gIGlmICghdGhpcy5jdXJ2ZS56ZXJvQSlcbiAgICByZXR1cm4gdGhpcy5kYmwoKS5hZGQodGhpcyk7XG5cbiAgLy8gaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLXNob3J0dy1qYWNvYmlhbi0wLmh0bWwjdHJpcGxpbmctdHBsLTIwMDctYmxcbiAgLy8gNU0gKyAxMFMgKyAuLi5cblxuICAvLyBYWCA9IFgxXjJcbiAgdmFyIHh4ID0gdGhpcy54LnJlZFNxcigpO1xuICAvLyBZWSA9IFkxXjJcbiAgdmFyIHl5ID0gdGhpcy55LnJlZFNxcigpO1xuICAvLyBaWiA9IFoxXjJcbiAgdmFyIHp6ID0gdGhpcy56LnJlZFNxcigpO1xuICAvLyBZWVlZID0gWVleMlxuICB2YXIgeXl5eSA9IHl5LnJlZFNxcigpO1xuICAvLyBNID0gMyAqIFhYICsgYSAqIFpaMjsgYSA9IDBcbiAgdmFyIG0gPSB4eC5yZWRBZGQoeHgpLnJlZElBZGQoeHgpO1xuICAvLyBNTSA9IE1eMlxuICB2YXIgbW0gPSBtLnJlZFNxcigpO1xuICAvLyBFID0gNiAqICgoWDEgKyBZWSleMiAtIFhYIC0gWVlZWSkgLSBNTVxuICB2YXIgZSA9IHRoaXMueC5yZWRBZGQoeXkpLnJlZFNxcigpLnJlZElTdWIoeHgpLnJlZElTdWIoeXl5eSk7XG4gIGUgPSBlLnJlZElBZGQoZSk7XG4gIGUgPSBlLnJlZEFkZChlKS5yZWRJQWRkKGUpO1xuICBlID0gZS5yZWRJU3ViKG1tKTtcbiAgLy8gRUUgPSBFXjJcbiAgdmFyIGVlID0gZS5yZWRTcXIoKTtcbiAgLy8gVCA9IDE2KllZWVlcbiAgdmFyIHQgPSB5eXl5LnJlZElBZGQoeXl5eSk7XG4gIHQgPSB0LnJlZElBZGQodCk7XG4gIHQgPSB0LnJlZElBZGQodCk7XG4gIHQgPSB0LnJlZElBZGQodCk7XG4gIC8vIFUgPSAoTSArIEUpXjIgLSBNTSAtIEVFIC0gVFxuICB2YXIgdSA9IG0ucmVkSUFkZChlKS5yZWRTcXIoKS5yZWRJU3ViKG1tKS5yZWRJU3ViKGVlKS5yZWRJU3ViKHQpO1xuICAvLyBYMyA9IDQgKiAoWDEgKiBFRSAtIDQgKiBZWSAqIFUpXG4gIHZhciB5eXU0ID0geXkucmVkTXVsKHUpO1xuICB5eXU0ID0geXl1NC5yZWRJQWRkKHl5dTQpO1xuICB5eXU0ID0geXl1NC5yZWRJQWRkKHl5dTQpO1xuICB2YXIgbnggPSB0aGlzLngucmVkTXVsKGVlKS5yZWRJU3ViKHl5dTQpO1xuICBueCA9IG54LnJlZElBZGQobngpO1xuICBueCA9IG54LnJlZElBZGQobngpO1xuICAvLyBZMyA9IDggKiBZMSAqIChVICogKFQgLSBVKSAtIEUgKiBFRSlcbiAgdmFyIG55ID0gdGhpcy55LnJlZE11bCh1LnJlZE11bCh0LnJlZElTdWIodSkpLnJlZElTdWIoZS5yZWRNdWwoZWUpKSk7XG4gIG55ID0gbnkucmVkSUFkZChueSk7XG4gIG55ID0gbnkucmVkSUFkZChueSk7XG4gIG55ID0gbnkucmVkSUFkZChueSk7XG4gIC8vIFozID0gKFoxICsgRSleMiAtIFpaIC0gRUVcbiAgdmFyIG56ID0gdGhpcy56LnJlZEFkZChlKS5yZWRTcXIoKS5yZWRJU3ViKHp6KS5yZWRJU3ViKGVlKTtcblxuICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobngsIG55LCBueik7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLm11bCA9IGZ1bmN0aW9uIG11bChrLCBrYmFzZSkge1xuICBrID0gbmV3IEJOKGssIGtiYXNlKTtcblxuICByZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLCBrKTtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUuZXEgPSBmdW5jdGlvbiBlcShwKSB7XG4gIGlmIChwLnR5cGUgPT09ICdhZmZpbmUnKVxuICAgIHJldHVybiB0aGlzLmVxKHAudG9KKCkpO1xuXG4gIGlmICh0aGlzID09PSBwKVxuICAgIHJldHVybiB0cnVlO1xuXG4gIC8vIHgxICogejJeMiA9PSB4MiAqIHoxXjJcbiAgdmFyIHoyID0gdGhpcy56LnJlZFNxcigpO1xuICB2YXIgcHoyID0gcC56LnJlZFNxcigpO1xuICBpZiAodGhpcy54LnJlZE11bChwejIpLnJlZElTdWIocC54LnJlZE11bCh6MikpLmNtcG4oMCkgIT09IDApXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIHkxICogejJeMyA9PSB5MiAqIHoxXjNcbiAgdmFyIHozID0gejIucmVkTXVsKHRoaXMueik7XG4gIHZhciBwejMgPSBwejIucmVkTXVsKHAueik7XG4gIHJldHVybiB0aGlzLnkucmVkTXVsKHB6MykucmVkSVN1YihwLnkucmVkTXVsKHozKSkuY21wbigwKSA9PT0gMDtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUuZXFYVG9QID0gZnVuY3Rpb24gZXFYVG9QKHgpIHtcbiAgdmFyIHpzID0gdGhpcy56LnJlZFNxcigpO1xuICB2YXIgcnggPSB4LnRvUmVkKHRoaXMuY3VydmUucmVkKS5yZWRNdWwoenMpO1xuICBpZiAodGhpcy54LmNtcChyeCkgPT09IDApXG4gICAgcmV0dXJuIHRydWU7XG5cbiAgdmFyIHhjID0geC5jbG9uZSgpO1xuICB2YXIgdCA9IHRoaXMuY3VydmUucmVkTi5yZWRNdWwoenMpO1xuICBmb3IgKDs7KSB7XG4gICAgeGMuaWFkZCh0aGlzLmN1cnZlLm4pO1xuICAgIGlmICh4Yy5jbXAodGhpcy5jdXJ2ZS5wKSA+PSAwKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgcngucmVkSUFkZCh0KTtcbiAgICBpZiAodGhpcy54LmNtcChyeCkgPT09IDApXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0KCkge1xuICBpZiAodGhpcy5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuICc8RUMgSlBvaW50IEluZmluaXR5Pic7XG4gIHJldHVybiAnPEVDIEpQb2ludCB4OiAnICsgdGhpcy54LnRvU3RyaW5nKDE2LCAyKSArXG4gICAgICAnIHk6ICcgKyB0aGlzLnkudG9TdHJpbmcoMTYsIDIpICtcbiAgICAgICcgejogJyArIHRoaXMuei50b1N0cmluZygxNiwgMikgKyAnPic7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLmlzSW5maW5pdHkgPSBmdW5jdGlvbiBpc0luZmluaXR5KCkge1xuICAvLyBYWFggVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCB6ZXJvIGlzIGFsd2F5cyB6ZXJvIGluIHJlZFxuICByZXR1cm4gdGhpcy56LmNtcG4oMCkgPT09IDA7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY3VydmVzID0gZXhwb3J0cztcblxudmFyIGhhc2ggPSByZXF1aXJlKCdoYXNoLmpzJyk7XG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi9lbGxpcHRpYycpO1xuXG52YXIgYXNzZXJ0ID0gZWxsaXB0aWMudXRpbHMuYXNzZXJ0O1xuXG5mdW5jdGlvbiBQcmVzZXRDdXJ2ZShvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zLnR5cGUgPT09ICdzaG9ydCcpXG4gICAgdGhpcy5jdXJ2ZSA9IG5ldyBlbGxpcHRpYy5jdXJ2ZS5zaG9ydChvcHRpb25zKTtcbiAgZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSAnZWR3YXJkcycpXG4gICAgdGhpcy5jdXJ2ZSA9IG5ldyBlbGxpcHRpYy5jdXJ2ZS5lZHdhcmRzKG9wdGlvbnMpO1xuICBlbHNlXG4gICAgdGhpcy5jdXJ2ZSA9IG5ldyBlbGxpcHRpYy5jdXJ2ZS5tb250KG9wdGlvbnMpO1xuICB0aGlzLmcgPSB0aGlzLmN1cnZlLmc7XG4gIHRoaXMubiA9IHRoaXMuY3VydmUubjtcbiAgdGhpcy5oYXNoID0gb3B0aW9ucy5oYXNoO1xuXG4gIGFzc2VydCh0aGlzLmcudmFsaWRhdGUoKSwgJ0ludmFsaWQgY3VydmUnKTtcbiAgYXNzZXJ0KHRoaXMuZy5tdWwodGhpcy5uKS5pc0luZmluaXR5KCksICdJbnZhbGlkIGN1cnZlLCBHKk4gIT0gTycpO1xufVxuY3VydmVzLlByZXNldEN1cnZlID0gUHJlc2V0Q3VydmU7XG5cbmZ1bmN0aW9uIGRlZmluZUN1cnZlKG5hbWUsIG9wdGlvbnMpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGN1cnZlcywgbmFtZSwge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgY3VydmUgPSBuZXcgUHJlc2V0Q3VydmUob3B0aW9ucyk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3VydmVzLCBuYW1lLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGN1cnZlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjdXJ2ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5kZWZpbmVDdXJ2ZSgncDE5MicsIHtcbiAgdHlwZTogJ3Nob3J0JyxcbiAgcHJpbWU6ICdwMTkyJyxcbiAgcDogJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmJyxcbiAgYTogJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZjJyxcbiAgYjogJzY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxJyxcbiAgbjogJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDk5ZGVmODM2IDE0NmJjOWIxIGI0ZDIyODMxJyxcbiAgaGFzaDogaGFzaC5zaGEyNTYsXG4gIGdSZWQ6IGZhbHNlLFxuICBnOiBbXG4gICAgJzE4OGRhODBlIGIwMzA5MGY2IDdjYmYyMGViIDQzYTE4ODAwIGY0ZmYwYWZkIDgyZmYxMDEyJyxcbiAgICAnMDcxOTJiOTUgZmZjOGRhNzggNjMxMDExZWQgNmIyNGNkZDUgNzNmOTc3YTEgMWU3OTQ4MTEnXG4gIF1cbn0pO1xuXG5kZWZpbmVDdXJ2ZSgncDIyNCcsIHtcbiAgdHlwZTogJ3Nob3J0JyxcbiAgcHJpbWU6ICdwMjI0JyxcbiAgcDogJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxJyxcbiAgYTogJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlJyxcbiAgYjogJ2I0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3MGIzOTQzIDIzNTVmZmI0JyxcbiAgbjogJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmYxNmEyIGUwYjhmMDNlIDEzZGQyOTQ1IDVjNWMyYTNkJyxcbiAgaGFzaDogaGFzaC5zaGEyNTYsXG4gIGdSZWQ6IGZhbHNlLFxuICBnOiBbXG4gICAgJ2I3MGUwY2JkIDZiYjRiZjdmIDMyMTM5MGI5IDRhMDNjMWQzIDU2YzIxMTIyIDM0MzI4MGQ2IDExNWMxZDIxJyxcbiAgICAnYmQzNzYzODggYjVmNzIzZmIgNGMyMmRmZTYgY2Q0Mzc1YTAgNWEwNzQ3NjQgNDRkNTgxOTkgODUwMDdlMzQnXG4gIF1cbn0pO1xuXG5kZWZpbmVDdXJ2ZSgncDI1NicsIHtcbiAgdHlwZTogJ3Nob3J0JyxcbiAgcHJpbWU6IG51bGwsXG4gIHA6ICdmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZicsXG4gIGE6ICdmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYycsXG4gIGI6ICc1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFkMDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAyN2QyNjA0YicsXG4gIG46ICdmZmZmZmZmZiAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBiY2U2ZmFhZCBhNzE3OWU4NCBmM2I5Y2FjMiBmYzYzMjU1MScsXG4gIGhhc2g6IGhhc2guc2hhMjU2LFxuICBnUmVkOiBmYWxzZSxcbiAgZzogW1xuICAgICc2YjE3ZDFmMiBlMTJjNDI0NyBmOGJjZTZlNSA2M2E0NDBmMiA3NzAzN2Q4MSAyZGViMzNhMCBmNGExMzk0NSBkODk4YzI5NicsXG4gICAgJzRmZTM0MmUyIGZlMWE3ZjliIDhlZTdlYjRhIDdjMGY5ZTE2IDJiY2UzMzU3IDZiMzE1ZWNlIGNiYjY0MDY4IDM3YmY1MWY1J1xuICBdXG59KTtcblxuZGVmaW5lQ3VydmUoJ3AzODQnLCB7XG4gIHR5cGU6ICdzaG9ydCcsXG4gIHByaW1lOiBudWxsLFxuICBwOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgJyArXG4gICAgICdmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZicsXG4gIGE6ICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAnICtcbiAgICAgJ2ZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZjJyxcbiAgYjogJ2IzMzEyZmE3IGUyM2VlN2U0IDk4OGUwNTZiIGUzZjgyZDE5IDE4MWQ5YzZlIGZlODE0MTEyIDAzMTQwODhmICcgK1xuICAgICAnNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYnLFxuICBuOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgYzc2MzRkODEgJyArXG4gICAgICdmNDM3MmRkZiA1ODFhMGRiMiA0OGIwYTc3YSBlY2VjMTk2YSBjY2M1Mjk3MycsXG4gIGhhc2g6IGhhc2guc2hhMzg0LFxuICBnUmVkOiBmYWxzZSxcbiAgZzogW1xuICAgICdhYTg3Y2EyMiBiZThiMDUzNyA4ZWIxYzcxZSBmMzIwYWQ3NCA2ZTFkM2I2MiA4YmE3OWI5OCA1OWY3NDFlMCA4MjU0MmEzOCAnICtcbiAgICAnNTUwMmYyNWQgYmY1NTI5NmMgM2E1NDVlMzggNzI3NjBhYjcnLFxuICAgICczNjE3ZGU0YSA5NjI2MmM2ZiA1ZDllOThiZiA5MjkyZGMyOSBmOGY0MWRiZCAyODlhMTQ3YyBlOWRhMzExMyBiNWYwYjhjMCAnICtcbiAgICAnMGE2MGIxY2UgMWQ3ZTgxOWQgN2E0MzFkN2MgOTBlYTBlNWYnXG4gIF1cbn0pO1xuXG5kZWZpbmVDdXJ2ZSgncDUyMScsIHtcbiAgdHlwZTogJ3Nob3J0JyxcbiAgcHJpbWU6IG51bGwsXG4gIHA6ICcwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAnICtcbiAgICAgJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmICcgK1xuICAgICAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYnLFxuICBhOiAnMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgJyArXG4gICAgICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAnICtcbiAgICAgJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjJyxcbiAgYjogJzAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViICcgK1xuICAgICAnOTliMzE1ZjMgYjhiNDg5OTEgOGVmMTA5ZTEgNTYxOTM5NTEgZWM3ZTkzN2IgMTY1MmMwYmQgJyArXG4gICAgICczYmIxYmYwNyAzNTczZGY4OCAzZDJjMzRmMSBlZjQ1MWZkNCA2YjUwM2YwMCcsXG4gIG46ICcwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAnICtcbiAgICAgJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZhIDUxODY4NzgzIGJmMmY5NjZiIDdmY2MwMTQ4ICcgK1xuICAgICAnZjcwOWE1ZDAgM2JiNWM5YjggODk5YzQ3YWUgYmI2ZmI3MWUgOTEzODY0MDknLFxuICBoYXNoOiBoYXNoLnNoYTUxMixcbiAgZ1JlZDogZmFsc2UsXG4gIGc6IFtcbiAgICAnMDAwMDAwYzYgODU4ZTA2YjcgMDQwNGU5Y2QgOWUzZWNiNjYgMjM5NWI0NDIgOWM2NDgxMzkgJyArXG4gICAgJzA1M2ZiNTIxIGY4MjhhZjYwIDZiNGQzZGJhIGExNGI1ZTc3IGVmZTc1OTI4IGZlMWRjMTI3ICcgK1xuICAgICdhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBmOTdlN2UzMSBjMmU1YmQ2NicsXG4gICAgJzAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5ICcgK1xuICAgICc1NzliNDQ2OCAxN2FmYmQxNyAyNzNlNjYyYyA5N2VlNzI5OSA1ZWY0MjY0MCBjNTUwYjkwMSAnICtcbiAgICAnM2ZhZDA3NjEgMzUzYzcwODYgYTI3MmMyNDAgODhiZTk0NzYgOWZkMTY2NTAnXG4gIF1cbn0pO1xuXG5kZWZpbmVDdXJ2ZSgnY3VydmUyNTUxOScsIHtcbiAgdHlwZTogJ21vbnQnLFxuICBwcmltZTogJ3AyNTUxOScsXG4gIHA6ICc3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkJyxcbiAgYTogJzc2ZDA2JyxcbiAgYjogJzEnLFxuICBuOiAnMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRlYTJmNzljZDYgNTgxMjYzMWE1Y2Y1ZDNlZCcsXG4gIGhhc2g6IGhhc2guc2hhMjU2LFxuICBnUmVkOiBmYWxzZSxcbiAgZzogW1xuICAgICc5J1xuICBdXG59KTtcblxuZGVmaW5lQ3VydmUoJ2VkMjU1MTknLCB7XG4gIHR5cGU6ICdlZHdhcmRzJyxcbiAgcHJpbWU6ICdwMjU1MTknLFxuICBwOiAnN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCcsXG4gIGE6ICctMScsXG4gIGM6ICcxJyxcbiAgLy8gLTEyMTY2NSAqICgxMjE2NjZeKC0xKSkgKG1vZCBQKVxuICBkOiAnNTIwMzZjZWUyYjZmZmU3MyA4Y2M3NDA3OTc3NzllODk4IDAwNzAwYTRkNDE0MWQ4YWIgNzVlYjRkY2ExMzU5NzhhMycsXG4gIG46ICcxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkJyxcbiAgaGFzaDogaGFzaC5zaGEyNTYsXG4gIGdSZWQ6IGZhbHNlLFxuICBnOiBbXG4gICAgJzIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEnLFxuXG4gICAgLy8gNC81XG4gICAgJzY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NTgnXG4gIF1cbn0pO1xuXG52YXIgcHJlO1xudHJ5IHtcbiAgcHJlID0gcmVxdWlyZSgnLi9wcmVjb21wdXRlZC9zZWNwMjU2azEnKTtcbn0gY2F0Y2ggKGUpIHtcbiAgcHJlID0gdW5kZWZpbmVkO1xufVxuXG5kZWZpbmVDdXJ2ZSgnc2VjcDI1NmsxJywge1xuICB0eXBlOiAnc2hvcnQnLFxuICBwcmltZTogJ2syNTYnLFxuICBwOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYnLFxuICBhOiAnMCcsXG4gIGI6ICc3JyxcbiAgbjogJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGJhYWVkY2U2IGFmNDhhMDNiIGJmZDI1ZThjIGQwMzY0MTQxJyxcbiAgaDogJzEnLFxuICBoYXNoOiBoYXNoLnNoYTI1NixcblxuICAvLyBQcmVjb21wdXRlZCBlbmRvbW9ycGhpc21cbiAgYmV0YTogJzdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAxZWUnLFxuICBsYW1iZGE6ICc1MzYzYWQ0Y2MwNWMzMGUwYTUyNjFjMDI4ODEyNjQ1YTEyMmUyMmVhMjA4MTY2NzhkZjAyOTY3YzFiMjNiZDcyJyxcbiAgYmFzaXM6IFtcbiAgICB7XG4gICAgICBhOiAnMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUnLFxuICAgICAgYjogJy1lNDQzN2VkNjAxMGU4ODI4NmY1NDdmYTkwYWJmZTRjMydcbiAgICB9LFxuICAgIHtcbiAgICAgIGE6ICcxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgnLFxuICAgICAgYjogJzMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1J1xuICAgIH1cbiAgXSxcblxuICBnUmVkOiBmYWxzZSxcbiAgZzogW1xuICAgICc3OWJlNjY3ZWY5ZGNiYmFjNTVhMDYyOTVjZTg3MGIwNzAyOWJmY2RiMmRjZTI4ZDk1OWYyODE1YjE2ZjgxNzk4JyxcbiAgICAnNDgzYWRhNzcyNmEzYzQ2NTVkYTRmYmZjMGUxMTA4YThmZDE3YjQ0OGE2ODU1NDE5OWM0N2QwOGZmYjEwZDRiOCcsXG4gICAgcHJlXG4gIF1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIEhtYWNEUkJHID0gcmVxdWlyZSgnaG1hYy1kcmJnJyk7XG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIHV0aWxzID0gZWxsaXB0aWMudXRpbHM7XG52YXIgYXNzZXJ0ID0gdXRpbHMuYXNzZXJ0O1xuXG52YXIgS2V5UGFpciA9IHJlcXVpcmUoJy4va2V5Jyk7XG52YXIgU2lnbmF0dXJlID0gcmVxdWlyZSgnLi9zaWduYXR1cmUnKTtcblxuZnVuY3Rpb24gRUMob3B0aW9ucykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgRUMpKVxuICAgIHJldHVybiBuZXcgRUMob3B0aW9ucyk7XG5cbiAgLy8gU2hvcnRjdXQgYGVsbGlwdGljLmVjKGN1cnZlLW5hbWUpYFxuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgYXNzZXJ0KGVsbGlwdGljLmN1cnZlcy5oYXNPd25Qcm9wZXJ0eShvcHRpb25zKSwgJ1Vua25vd24gY3VydmUgJyArIG9wdGlvbnMpO1xuXG4gICAgb3B0aW9ucyA9IGVsbGlwdGljLmN1cnZlc1tvcHRpb25zXTtcbiAgfVxuXG4gIC8vIFNob3J0Y3V0IGZvciBgZWxsaXB0aWMuZWMoZWxsaXB0aWMuY3VydmVzLmN1cnZlTmFtZSlgXG4gIGlmIChvcHRpb25zIGluc3RhbmNlb2YgZWxsaXB0aWMuY3VydmVzLlByZXNldEN1cnZlKVxuICAgIG9wdGlvbnMgPSB7IGN1cnZlOiBvcHRpb25zIH07XG5cbiAgdGhpcy5jdXJ2ZSA9IG9wdGlvbnMuY3VydmUuY3VydmU7XG4gIHRoaXMubiA9IHRoaXMuY3VydmUubjtcbiAgdGhpcy5uaCA9IHRoaXMubi51c2hybigxKTtcbiAgdGhpcy5nID0gdGhpcy5jdXJ2ZS5nO1xuXG4gIC8vIFBvaW50IG9uIGN1cnZlXG4gIHRoaXMuZyA9IG9wdGlvbnMuY3VydmUuZztcbiAgdGhpcy5nLnByZWNvbXB1dGUob3B0aW9ucy5jdXJ2ZS5uLmJpdExlbmd0aCgpICsgMSk7XG5cbiAgLy8gSGFzaCBmb3IgZnVuY3Rpb24gZm9yIERSQkdcbiAgdGhpcy5oYXNoID0gb3B0aW9ucy5oYXNoIHx8IG9wdGlvbnMuY3VydmUuaGFzaDtcbn1cbm1vZHVsZS5leHBvcnRzID0gRUM7XG5cbkVDLnByb3RvdHlwZS5rZXlQYWlyID0gZnVuY3Rpb24ga2V5UGFpcihvcHRpb25zKSB7XG4gIHJldHVybiBuZXcgS2V5UGFpcih0aGlzLCBvcHRpb25zKTtcbn07XG5cbkVDLnByb3RvdHlwZS5rZXlGcm9tUHJpdmF0ZSA9IGZ1bmN0aW9uIGtleUZyb21Qcml2YXRlKHByaXYsIGVuYykge1xuICByZXR1cm4gS2V5UGFpci5mcm9tUHJpdmF0ZSh0aGlzLCBwcml2LCBlbmMpO1xufTtcblxuRUMucHJvdG90eXBlLmtleUZyb21QdWJsaWMgPSBmdW5jdGlvbiBrZXlGcm9tUHVibGljKHB1YiwgZW5jKSB7XG4gIHJldHVybiBLZXlQYWlyLmZyb21QdWJsaWModGhpcywgcHViLCBlbmMpO1xufTtcblxuRUMucHJvdG90eXBlLmdlbktleVBhaXIgPSBmdW5jdGlvbiBnZW5LZXlQYWlyKG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKVxuICAgIG9wdGlvbnMgPSB7fTtcblxuICAvLyBJbnN0YW50aWF0ZSBIbWFjX0RSQkdcbiAgdmFyIGRyYmcgPSBuZXcgSG1hY0RSQkcoe1xuICAgIGhhc2g6IHRoaXMuaGFzaCxcbiAgICBwZXJzOiBvcHRpb25zLnBlcnMsXG4gICAgcGVyc0VuYzogb3B0aW9ucy5wZXJzRW5jIHx8ICd1dGY4JyxcbiAgICBlbnRyb3B5OiBvcHRpb25zLmVudHJvcHkgfHwgZWxsaXB0aWMucmFuZCh0aGlzLmhhc2guaG1hY1N0cmVuZ3RoKSxcbiAgICBlbnRyb3B5RW5jOiBvcHRpb25zLmVudHJvcHkgJiYgb3B0aW9ucy5lbnRyb3B5RW5jIHx8ICd1dGY4JyxcbiAgICBub25jZTogdGhpcy5uLnRvQXJyYXkoKVxuICB9KTtcblxuICB2YXIgYnl0ZXMgPSB0aGlzLm4uYnl0ZUxlbmd0aCgpO1xuICB2YXIgbnMyID0gdGhpcy5uLnN1YihuZXcgQk4oMikpO1xuICBkbyB7XG4gICAgdmFyIHByaXYgPSBuZXcgQk4oZHJiZy5nZW5lcmF0ZShieXRlcykpO1xuICAgIGlmIChwcml2LmNtcChuczIpID4gMClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgcHJpdi5pYWRkbigxKTtcbiAgICByZXR1cm4gdGhpcy5rZXlGcm9tUHJpdmF0ZShwcml2KTtcbiAgfSB3aGlsZSAodHJ1ZSk7XG59O1xuXG5FQy5wcm90b3R5cGUuX3RydW5jYXRlVG9OID0gZnVuY3Rpb24gdHJ1bmNhdGVUb04obXNnLCB0cnVuY09ubHkpIHtcbiAgdmFyIGRlbHRhID0gbXNnLmJ5dGVMZW5ndGgoKSAqIDggLSB0aGlzLm4uYml0TGVuZ3RoKCk7XG4gIGlmIChkZWx0YSA+IDApXG4gICAgbXNnID0gbXNnLnVzaHJuKGRlbHRhKTtcbiAgaWYgKCF0cnVuY09ubHkgJiYgbXNnLmNtcCh0aGlzLm4pID49IDApXG4gICAgcmV0dXJuIG1zZy5zdWIodGhpcy5uKTtcbiAgZWxzZVxuICAgIHJldHVybiBtc2c7XG59O1xuXG5FQy5wcm90b3R5cGUuc2lnbiA9IGZ1bmN0aW9uIHNpZ24obXNnLCBrZXksIGVuYywgb3B0aW9ucykge1xuICBpZiAodHlwZW9mIGVuYyA9PT0gJ29iamVjdCcpIHtcbiAgICBvcHRpb25zID0gZW5jO1xuICAgIGVuYyA9IG51bGw7XG4gIH1cbiAgaWYgKCFvcHRpb25zKVxuICAgIG9wdGlvbnMgPSB7fTtcblxuICBrZXkgPSB0aGlzLmtleUZyb21Qcml2YXRlKGtleSwgZW5jKTtcbiAgbXNnID0gdGhpcy5fdHJ1bmNhdGVUb04obmV3IEJOKG1zZywgMTYpKTtcblxuICAvLyBaZXJvLWV4dGVuZCBrZXkgdG8gcHJvdmlkZSBlbm91Z2ggZW50cm9weVxuICB2YXIgYnl0ZXMgPSB0aGlzLm4uYnl0ZUxlbmd0aCgpO1xuICB2YXIgYmtleSA9IGtleS5nZXRQcml2YXRlKCkudG9BcnJheSgnYmUnLCBieXRlcyk7XG5cbiAgLy8gWmVyby1leHRlbmQgbm9uY2UgdG8gaGF2ZSB0aGUgc2FtZSBieXRlIHNpemUgYXMgTlxuICB2YXIgbm9uY2UgPSBtc2cudG9BcnJheSgnYmUnLCBieXRlcyk7XG5cbiAgLy8gSW5zdGFudGlhdGUgSG1hY19EUkJHXG4gIHZhciBkcmJnID0gbmV3IEhtYWNEUkJHKHtcbiAgICBoYXNoOiB0aGlzLmhhc2gsXG4gICAgZW50cm9weTogYmtleSxcbiAgICBub25jZTogbm9uY2UsXG4gICAgcGVyczogb3B0aW9ucy5wZXJzLFxuICAgIHBlcnNFbmM6IG9wdGlvbnMucGVyc0VuYyB8fCAndXRmOCdcbiAgfSk7XG5cbiAgLy8gTnVtYmVyIG9mIGJ5dGVzIHRvIGdlbmVyYXRlXG4gIHZhciBuczEgPSB0aGlzLm4uc3ViKG5ldyBCTigxKSk7XG5cbiAgZm9yICh2YXIgaXRlciA9IDA7IHRydWU7IGl0ZXIrKykge1xuICAgIHZhciBrID0gb3B0aW9ucy5rID9cbiAgICAgICAgb3B0aW9ucy5rKGl0ZXIpIDpcbiAgICAgICAgbmV3IEJOKGRyYmcuZ2VuZXJhdGUodGhpcy5uLmJ5dGVMZW5ndGgoKSkpO1xuICAgIGsgPSB0aGlzLl90cnVuY2F0ZVRvTihrLCB0cnVlKTtcbiAgICBpZiAoay5jbXBuKDEpIDw9IDAgfHwgay5jbXAobnMxKSA+PSAwKVxuICAgICAgY29udGludWU7XG5cbiAgICB2YXIga3AgPSB0aGlzLmcubXVsKGspO1xuICAgIGlmIChrcC5pc0luZmluaXR5KCkpXG4gICAgICBjb250aW51ZTtcblxuICAgIHZhciBrcFggPSBrcC5nZXRYKCk7XG4gICAgdmFyIHIgPSBrcFgudW1vZCh0aGlzLm4pO1xuICAgIGlmIChyLmNtcG4oMCkgPT09IDApXG4gICAgICBjb250aW51ZTtcblxuICAgIHZhciBzID0gay5pbnZtKHRoaXMubikubXVsKHIubXVsKGtleS5nZXRQcml2YXRlKCkpLmlhZGQobXNnKSk7XG4gICAgcyA9IHMudW1vZCh0aGlzLm4pO1xuICAgIGlmIChzLmNtcG4oMCkgPT09IDApXG4gICAgICBjb250aW51ZTtcblxuICAgIHZhciByZWNvdmVyeVBhcmFtID0gKGtwLmdldFkoKS5pc09kZCgpID8gMSA6IDApIHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChrcFguY21wKHIpICE9PSAwID8gMiA6IDApO1xuXG4gICAgLy8gVXNlIGNvbXBsZW1lbnQgb2YgYHNgLCBpZiBpdCBpcyA+IGBuIC8gMmBcbiAgICBpZiAob3B0aW9ucy5jYW5vbmljYWwgJiYgcy5jbXAodGhpcy5uaCkgPiAwKSB7XG4gICAgICBzID0gdGhpcy5uLnN1YihzKTtcbiAgICAgIHJlY292ZXJ5UGFyYW0gXj0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFNpZ25hdHVyZSh7IHI6IHIsIHM6IHMsIHJlY292ZXJ5UGFyYW06IHJlY292ZXJ5UGFyYW0gfSk7XG4gIH1cbn07XG5cbkVDLnByb3RvdHlwZS52ZXJpZnkgPSBmdW5jdGlvbiB2ZXJpZnkobXNnLCBzaWduYXR1cmUsIGtleSwgZW5jKSB7XG4gIG1zZyA9IHRoaXMuX3RydW5jYXRlVG9OKG5ldyBCTihtc2csIDE2KSk7XG4gIGtleSA9IHRoaXMua2V5RnJvbVB1YmxpYyhrZXksIGVuYyk7XG4gIHNpZ25hdHVyZSA9IG5ldyBTaWduYXR1cmUoc2lnbmF0dXJlLCAnaGV4Jyk7XG5cbiAgLy8gUGVyZm9ybSBwcmltaXRpdmUgdmFsdWVzIHZhbGlkYXRpb25cbiAgdmFyIHIgPSBzaWduYXR1cmUucjtcbiAgdmFyIHMgPSBzaWduYXR1cmUucztcbiAgaWYgKHIuY21wbigxKSA8IDAgfHwgci5jbXAodGhpcy5uKSA+PSAwKVxuICAgIHJldHVybiBmYWxzZTtcbiAgaWYgKHMuY21wbigxKSA8IDAgfHwgcy5jbXAodGhpcy5uKSA+PSAwKVxuICAgIHJldHVybiBmYWxzZTtcblxuICAvLyBWYWxpZGF0ZSBzaWduYXR1cmVcbiAgdmFyIHNpbnYgPSBzLmludm0odGhpcy5uKTtcbiAgdmFyIHUxID0gc2ludi5tdWwobXNnKS51bW9kKHRoaXMubik7XG4gIHZhciB1MiA9IHNpbnYubXVsKHIpLnVtb2QodGhpcy5uKTtcblxuICBpZiAoIXRoaXMuY3VydmUuX21heHdlbGxUcmljaykge1xuICAgIHZhciBwID0gdGhpcy5nLm11bEFkZCh1MSwga2V5LmdldFB1YmxpYygpLCB1Mik7XG4gICAgaWYgKHAuaXNJbmZpbml0eSgpKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgcmV0dXJuIHAuZ2V0WCgpLnVtb2QodGhpcy5uKS5jbXAocikgPT09IDA7XG4gIH1cblxuICAvLyBOT1RFOiBHcmVnIE1heHdlbGwncyB0cmljaywgaW5zcGlyZWQgYnk6XG4gIC8vIGh0dHBzOi8vZ2l0LmlvL3ZhZDNLXG5cbiAgdmFyIHAgPSB0aGlzLmcuam11bEFkZCh1MSwga2V5LmdldFB1YmxpYygpLCB1Mik7XG4gIGlmIChwLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gQ29tcGFyZSBgcC54YCBvZiBKYWNvYmlhbiBwb2ludCB3aXRoIGByYCxcbiAgLy8gdGhpcyB3aWxsIGRvIGBwLnggPT0gciAqIHAuel4yYCBpbnN0ZWFkIG9mIG11bHRpcGx5aW5nIGBwLnhgIGJ5IHRoZVxuICAvLyBpbnZlcnNlIG9mIGBwLnpeMmBcbiAgcmV0dXJuIHAuZXFYVG9QKHIpO1xufTtcblxuRUMucHJvdG90eXBlLnJlY292ZXJQdWJLZXkgPSBmdW5jdGlvbihtc2csIHNpZ25hdHVyZSwgaiwgZW5jKSB7XG4gIGFzc2VydCgoMyAmIGopID09PSBqLCAnVGhlIHJlY292ZXJ5IHBhcmFtIGlzIG1vcmUgdGhhbiB0d28gYml0cycpO1xuICBzaWduYXR1cmUgPSBuZXcgU2lnbmF0dXJlKHNpZ25hdHVyZSwgZW5jKTtcblxuICB2YXIgbiA9IHRoaXMubjtcbiAgdmFyIGUgPSBuZXcgQk4obXNnKTtcbiAgdmFyIHIgPSBzaWduYXR1cmUucjtcbiAgdmFyIHMgPSBzaWduYXR1cmUucztcblxuICAvLyBBIHNldCBMU0Igc2lnbmlmaWVzIHRoYXQgdGhlIHktY29vcmRpbmF0ZSBpcyBvZGRcbiAgdmFyIGlzWU9kZCA9IGogJiAxO1xuICB2YXIgaXNTZWNvbmRLZXkgPSBqID4+IDE7XG4gIGlmIChyLmNtcCh0aGlzLmN1cnZlLnAudW1vZCh0aGlzLmN1cnZlLm4pKSA+PSAwICYmIGlzU2Vjb25kS2V5KVxuICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGZpbmQgc2VuY29uZCBrZXkgY2FuZGluYXRlJyk7XG5cbiAgLy8gMS4xLiBMZXQgeCA9IHIgKyBqbi5cbiAgaWYgKGlzU2Vjb25kS2V5KVxuICAgIHIgPSB0aGlzLmN1cnZlLnBvaW50RnJvbVgoci5hZGQodGhpcy5jdXJ2ZS5uKSwgaXNZT2RkKTtcbiAgZWxzZVxuICAgIHIgPSB0aGlzLmN1cnZlLnBvaW50RnJvbVgociwgaXNZT2RkKTtcblxuICB2YXIgckludiA9IHNpZ25hdHVyZS5yLmludm0obik7XG4gIHZhciBzMSA9IG4uc3ViKGUpLm11bChySW52KS51bW9kKG4pO1xuICB2YXIgczIgPSBzLm11bChySW52KS51bW9kKG4pO1xuXG4gIC8vIDEuNi4xIENvbXB1dGUgUSA9IHJeLTEgKHNSIC0gIGVHKVxuICAvLyAgICAgICAgICAgICAgIFEgPSByXi0xIChzUiArIC1lRylcbiAgcmV0dXJuIHRoaXMuZy5tdWxBZGQoczEsIHIsIHMyKTtcbn07XG5cbkVDLnByb3RvdHlwZS5nZXRLZXlSZWNvdmVyeVBhcmFtID0gZnVuY3Rpb24oZSwgc2lnbmF0dXJlLCBRLCBlbmMpIHtcbiAgc2lnbmF0dXJlID0gbmV3IFNpZ25hdHVyZShzaWduYXR1cmUsIGVuYyk7XG4gIGlmIChzaWduYXR1cmUucmVjb3ZlcnlQYXJhbSAhPT0gbnVsbClcbiAgICByZXR1cm4gc2lnbmF0dXJlLnJlY292ZXJ5UGFyYW07XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcbiAgICB2YXIgUXByaW1lO1xuICAgIHRyeSB7XG4gICAgICBRcHJpbWUgPSB0aGlzLnJlY292ZXJQdWJLZXkoZSwgc2lnbmF0dXJlLCBpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoUXByaW1lLmVxKFEpKVxuICAgICAgcmV0dXJuIGk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCB2YWxpZCByZWNvdmVyeSBmYWN0b3InKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIHV0aWxzID0gZWxsaXB0aWMudXRpbHM7XG52YXIgYXNzZXJ0ID0gdXRpbHMuYXNzZXJ0O1xuXG5mdW5jdGlvbiBLZXlQYWlyKGVjLCBvcHRpb25zKSB7XG4gIHRoaXMuZWMgPSBlYztcbiAgdGhpcy5wcml2ID0gbnVsbDtcbiAgdGhpcy5wdWIgPSBudWxsO1xuXG4gIC8vIEtleVBhaXIoZWMsIHsgcHJpdjogLi4uLCBwdWI6IC4uLiB9KVxuICBpZiAob3B0aW9ucy5wcml2KVxuICAgIHRoaXMuX2ltcG9ydFByaXZhdGUob3B0aW9ucy5wcml2LCBvcHRpb25zLnByaXZFbmMpO1xuICBpZiAob3B0aW9ucy5wdWIpXG4gICAgdGhpcy5faW1wb3J0UHVibGljKG9wdGlvbnMucHViLCBvcHRpb25zLnB1YkVuYyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEtleVBhaXI7XG5cbktleVBhaXIuZnJvbVB1YmxpYyA9IGZ1bmN0aW9uIGZyb21QdWJsaWMoZWMsIHB1YiwgZW5jKSB7XG4gIGlmIChwdWIgaW5zdGFuY2VvZiBLZXlQYWlyKVxuICAgIHJldHVybiBwdWI7XG5cbiAgcmV0dXJuIG5ldyBLZXlQYWlyKGVjLCB7XG4gICAgcHViOiBwdWIsXG4gICAgcHViRW5jOiBlbmNcbiAgfSk7XG59O1xuXG5LZXlQYWlyLmZyb21Qcml2YXRlID0gZnVuY3Rpb24gZnJvbVByaXZhdGUoZWMsIHByaXYsIGVuYykge1xuICBpZiAocHJpdiBpbnN0YW5jZW9mIEtleVBhaXIpXG4gICAgcmV0dXJuIHByaXY7XG5cbiAgcmV0dXJuIG5ldyBLZXlQYWlyKGVjLCB7XG4gICAgcHJpdjogcHJpdixcbiAgICBwcml2RW5jOiBlbmNcbiAgfSk7XG59O1xuXG5LZXlQYWlyLnByb3RvdHlwZS52YWxpZGF0ZSA9IGZ1bmN0aW9uIHZhbGlkYXRlKCkge1xuICB2YXIgcHViID0gdGhpcy5nZXRQdWJsaWMoKTtcblxuICBpZiAocHViLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4geyByZXN1bHQ6IGZhbHNlLCByZWFzb246ICdJbnZhbGlkIHB1YmxpYyBrZXknIH07XG4gIGlmICghcHViLnZhbGlkYXRlKCkpXG4gICAgcmV0dXJuIHsgcmVzdWx0OiBmYWxzZSwgcmVhc29uOiAnUHVibGljIGtleSBpcyBub3QgYSBwb2ludCcgfTtcbiAgaWYgKCFwdWIubXVsKHRoaXMuZWMuY3VydmUubikuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiB7IHJlc3VsdDogZmFsc2UsIHJlYXNvbjogJ1B1YmxpYyBrZXkgKiBOICE9IE8nIH07XG5cbiAgcmV0dXJuIHsgcmVzdWx0OiB0cnVlLCByZWFzb246IG51bGwgfTtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLmdldFB1YmxpYyA9IGZ1bmN0aW9uIGdldFB1YmxpYyhjb21wYWN0LCBlbmMpIHtcbiAgLy8gY29tcGFjdCBpcyBvcHRpb25hbCBhcmd1bWVudFxuICBpZiAodHlwZW9mIGNvbXBhY3QgPT09ICdzdHJpbmcnKSB7XG4gICAgZW5jID0gY29tcGFjdDtcbiAgICBjb21wYWN0ID0gbnVsbDtcbiAgfVxuXG4gIGlmICghdGhpcy5wdWIpXG4gICAgdGhpcy5wdWIgPSB0aGlzLmVjLmcubXVsKHRoaXMucHJpdik7XG5cbiAgaWYgKCFlbmMpXG4gICAgcmV0dXJuIHRoaXMucHViO1xuXG4gIHJldHVybiB0aGlzLnB1Yi5lbmNvZGUoZW5jLCBjb21wYWN0KTtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLmdldFByaXZhdGUgPSBmdW5jdGlvbiBnZXRQcml2YXRlKGVuYykge1xuICBpZiAoZW5jID09PSAnaGV4JylcbiAgICByZXR1cm4gdGhpcy5wcml2LnRvU3RyaW5nKDE2LCAyKTtcbiAgZWxzZVxuICAgIHJldHVybiB0aGlzLnByaXY7XG59O1xuXG5LZXlQYWlyLnByb3RvdHlwZS5faW1wb3J0UHJpdmF0ZSA9IGZ1bmN0aW9uIF9pbXBvcnRQcml2YXRlKGtleSwgZW5jKSB7XG4gIHRoaXMucHJpdiA9IG5ldyBCTihrZXksIGVuYyB8fCAxNik7XG5cbiAgLy8gRW5zdXJlIHRoYXQgdGhlIHByaXYgd29uJ3QgYmUgYmlnZ2VyIHRoYW4gbiwgb3RoZXJ3aXNlIHdlIG1heSBmYWlsXG4gIC8vIGluIGZpeGVkIG11bHRpcGxpY2F0aW9uIG1ldGhvZFxuICB0aGlzLnByaXYgPSB0aGlzLnByaXYudW1vZCh0aGlzLmVjLmN1cnZlLm4pO1xufTtcblxuS2V5UGFpci5wcm90b3R5cGUuX2ltcG9ydFB1YmxpYyA9IGZ1bmN0aW9uIF9pbXBvcnRQdWJsaWMoa2V5LCBlbmMpIHtcbiAgaWYgKGtleS54IHx8IGtleS55KSB7XG4gICAgLy8gTW9udGdvbWVyeSBwb2ludHMgb25seSBoYXZlIGFuIGB4YCBjb29yZGluYXRlLlxuICAgIC8vIFdlaWVyc3RyYXNzL0Vkd2FyZHMgcG9pbnRzIG9uIHRoZSBvdGhlciBoYW5kIGhhdmUgYm90aCBgeGAgYW5kXG4gICAgLy8gYHlgIGNvb3JkaW5hdGVzLlxuICAgIGlmICh0aGlzLmVjLmN1cnZlLnR5cGUgPT09ICdtb250Jykge1xuICAgICAgYXNzZXJ0KGtleS54LCAnTmVlZCB4IGNvb3JkaW5hdGUnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZWMuY3VydmUudHlwZSA9PT0gJ3Nob3J0JyB8fFxuICAgICAgICAgICAgICAgdGhpcy5lYy5jdXJ2ZS50eXBlID09PSAnZWR3YXJkcycpIHtcbiAgICAgIGFzc2VydChrZXkueCAmJiBrZXkueSwgJ05lZWQgYm90aCB4IGFuZCB5IGNvb3JkaW5hdGUnKTtcbiAgICB9XG4gICAgdGhpcy5wdWIgPSB0aGlzLmVjLmN1cnZlLnBvaW50KGtleS54LCBrZXkueSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRoaXMucHViID0gdGhpcy5lYy5jdXJ2ZS5kZWNvZGVQb2ludChrZXksIGVuYyk7XG59O1xuXG4vLyBFQ0RIXG5LZXlQYWlyLnByb3RvdHlwZS5kZXJpdmUgPSBmdW5jdGlvbiBkZXJpdmUocHViKSB7XG4gIHJldHVybiBwdWIubXVsKHRoaXMucHJpdikuZ2V0WCgpO1xufTtcblxuLy8gRUNEU0FcbktleVBhaXIucHJvdG90eXBlLnNpZ24gPSBmdW5jdGlvbiBzaWduKG1zZywgZW5jLCBvcHRpb25zKSB7XG4gIHJldHVybiB0aGlzLmVjLnNpZ24obXNnLCB0aGlzLCBlbmMsIG9wdGlvbnMpO1xufTtcblxuS2V5UGFpci5wcm90b3R5cGUudmVyaWZ5ID0gZnVuY3Rpb24gdmVyaWZ5KG1zZywgc2lnbmF0dXJlKSB7XG4gIHJldHVybiB0aGlzLmVjLnZlcmlmeShtc2csIHNpZ25hdHVyZSwgdGhpcyk7XG59O1xuXG5LZXlQYWlyLnByb3RvdHlwZS5pbnNwZWN0ID0gZnVuY3Rpb24gaW5zcGVjdCgpIHtcbiAgcmV0dXJuICc8S2V5IHByaXY6ICcgKyAodGhpcy5wcml2ICYmIHRoaXMucHJpdi50b1N0cmluZygxNiwgMikpICtcbiAgICAgICAgICcgcHViOiAnICsgKHRoaXMucHViICYmIHRoaXMucHViLmluc3BlY3QoKSkgKyAnID4nO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIEJOID0gcmVxdWlyZSgnYm4uanMnKTtcblxudmFyIGVsbGlwdGljID0gcmVxdWlyZSgnLi4vLi4vZWxsaXB0aWMnKTtcbnZhciB1dGlscyA9IGVsbGlwdGljLnV0aWxzO1xudmFyIGFzc2VydCA9IHV0aWxzLmFzc2VydDtcblxuZnVuY3Rpb24gU2lnbmF0dXJlKG9wdGlvbnMsIGVuYykge1xuICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIFNpZ25hdHVyZSlcbiAgICByZXR1cm4gb3B0aW9ucztcblxuICBpZiAodGhpcy5faW1wb3J0REVSKG9wdGlvbnMsIGVuYykpXG4gICAgcmV0dXJuO1xuXG4gIGFzc2VydChvcHRpb25zLnIgJiYgb3B0aW9ucy5zLCAnU2lnbmF0dXJlIHdpdGhvdXQgciBvciBzJyk7XG4gIHRoaXMuciA9IG5ldyBCTihvcHRpb25zLnIsIDE2KTtcbiAgdGhpcy5zID0gbmV3IEJOKG9wdGlvbnMucywgMTYpO1xuICBpZiAob3B0aW9ucy5yZWNvdmVyeVBhcmFtID09PSB1bmRlZmluZWQpXG4gICAgdGhpcy5yZWNvdmVyeVBhcmFtID0gbnVsbDtcbiAgZWxzZVxuICAgIHRoaXMucmVjb3ZlcnlQYXJhbSA9IG9wdGlvbnMucmVjb3ZlcnlQYXJhbTtcbn1cbm1vZHVsZS5leHBvcnRzID0gU2lnbmF0dXJlO1xuXG5mdW5jdGlvbiBQb3NpdGlvbigpIHtcbiAgdGhpcy5wbGFjZSA9IDA7XG59XG5cbmZ1bmN0aW9uIGdldExlbmd0aChidWYsIHApIHtcbiAgdmFyIGluaXRpYWwgPSBidWZbcC5wbGFjZSsrXTtcbiAgaWYgKCEoaW5pdGlhbCAmIDB4ODApKSB7XG4gICAgcmV0dXJuIGluaXRpYWw7XG4gIH1cbiAgdmFyIG9jdGV0TGVuID0gaW5pdGlhbCAmIDB4ZjtcbiAgdmFyIHZhbCA9IDA7XG4gIGZvciAodmFyIGkgPSAwLCBvZmYgPSBwLnBsYWNlOyBpIDwgb2N0ZXRMZW47IGkrKywgb2ZmKyspIHtcbiAgICB2YWwgPDw9IDg7XG4gICAgdmFsIHw9IGJ1ZltvZmZdO1xuICB9XG4gIHAucGxhY2UgPSBvZmY7XG4gIHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIHJtUGFkZGluZyhidWYpIHtcbiAgdmFyIGkgPSAwO1xuICB2YXIgbGVuID0gYnVmLmxlbmd0aCAtIDE7XG4gIHdoaWxlICghYnVmW2ldICYmICEoYnVmW2kgKyAxXSAmIDB4ODApICYmIGkgPCBsZW4pIHtcbiAgICBpKys7XG4gIH1cbiAgaWYgKGkgPT09IDApIHtcbiAgICByZXR1cm4gYnVmO1xuICB9XG4gIHJldHVybiBidWYuc2xpY2UoaSk7XG59XG5cblNpZ25hdHVyZS5wcm90b3R5cGUuX2ltcG9ydERFUiA9IGZ1bmN0aW9uIF9pbXBvcnRERVIoZGF0YSwgZW5jKSB7XG4gIGRhdGEgPSB1dGlscy50b0FycmF5KGRhdGEsIGVuYyk7XG4gIHZhciBwID0gbmV3IFBvc2l0aW9uKCk7XG4gIGlmIChkYXRhW3AucGxhY2UrK10gIT09IDB4MzApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGxlbiA9IGdldExlbmd0aChkYXRhLCBwKTtcbiAgaWYgKChsZW4gKyBwLnBsYWNlKSAhPT0gZGF0YS5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGRhdGFbcC5wbGFjZSsrXSAhPT0gMHgwMikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcmxlbiA9IGdldExlbmd0aChkYXRhLCBwKTtcbiAgdmFyIHIgPSBkYXRhLnNsaWNlKHAucGxhY2UsIHJsZW4gKyBwLnBsYWNlKTtcbiAgcC5wbGFjZSArPSBybGVuO1xuICBpZiAoZGF0YVtwLnBsYWNlKytdICE9PSAweDAyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBzbGVuID0gZ2V0TGVuZ3RoKGRhdGEsIHApO1xuICBpZiAoZGF0YS5sZW5ndGggIT09IHNsZW4gKyBwLnBsYWNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBzID0gZGF0YS5zbGljZShwLnBsYWNlLCBzbGVuICsgcC5wbGFjZSk7XG4gIGlmIChyWzBdID09PSAwICYmIChyWzFdICYgMHg4MCkpIHtcbiAgICByID0gci5zbGljZSgxKTtcbiAgfVxuICBpZiAoc1swXSA9PT0gMCAmJiAoc1sxXSAmIDB4ODApKSB7XG4gICAgcyA9IHMuc2xpY2UoMSk7XG4gIH1cblxuICB0aGlzLnIgPSBuZXcgQk4ocik7XG4gIHRoaXMucyA9IG5ldyBCTihzKTtcbiAgdGhpcy5yZWNvdmVyeVBhcmFtID0gbnVsbDtcblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdExlbmd0aChhcnIsIGxlbikge1xuICBpZiAobGVuIDwgMHg4MCkge1xuICAgIGFyci5wdXNoKGxlbik7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBvY3RldHMgPSAxICsgKE1hdGgubG9nKGxlbikgLyBNYXRoLkxOMiA+Pj4gMyk7XG4gIGFyci5wdXNoKG9jdGV0cyB8IDB4ODApO1xuICB3aGlsZSAoLS1vY3RldHMpIHtcbiAgICBhcnIucHVzaCgobGVuID4+PiAob2N0ZXRzIDw8IDMpKSAmIDB4ZmYpO1xuICB9XG4gIGFyci5wdXNoKGxlbik7XG59XG5cblNpZ25hdHVyZS5wcm90b3R5cGUudG9ERVIgPSBmdW5jdGlvbiB0b0RFUihlbmMpIHtcbiAgdmFyIHIgPSB0aGlzLnIudG9BcnJheSgpO1xuICB2YXIgcyA9IHRoaXMucy50b0FycmF5KCk7XG5cbiAgLy8gUGFkIHZhbHVlc1xuICBpZiAoclswXSAmIDB4ODApXG4gICAgciA9IFsgMCBdLmNvbmNhdChyKTtcbiAgLy8gUGFkIHZhbHVlc1xuICBpZiAoc1swXSAmIDB4ODApXG4gICAgcyA9IFsgMCBdLmNvbmNhdChzKTtcblxuICByID0gcm1QYWRkaW5nKHIpO1xuICBzID0gcm1QYWRkaW5nKHMpO1xuXG4gIHdoaWxlICghc1swXSAmJiAhKHNbMV0gJiAweDgwKSkge1xuICAgIHMgPSBzLnNsaWNlKDEpO1xuICB9XG4gIHZhciBhcnIgPSBbIDB4MDIgXTtcbiAgY29uc3RydWN0TGVuZ3RoKGFyciwgci5sZW5ndGgpO1xuICBhcnIgPSBhcnIuY29uY2F0KHIpO1xuICBhcnIucHVzaCgweDAyKTtcbiAgY29uc3RydWN0TGVuZ3RoKGFyciwgcy5sZW5ndGgpO1xuICB2YXIgYmFja0hhbGYgPSBhcnIuY29uY2F0KHMpO1xuICB2YXIgcmVzID0gWyAweDMwIF07XG4gIGNvbnN0cnVjdExlbmd0aChyZXMsIGJhY2tIYWxmLmxlbmd0aCk7XG4gIHJlcyA9IHJlcy5jb25jYXQoYmFja0hhbGYpO1xuICByZXR1cm4gdXRpbHMuZW5jb2RlKHJlcywgZW5jKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBoYXNoID0gcmVxdWlyZSgnaGFzaC5qcycpO1xudmFyIGVsbGlwdGljID0gcmVxdWlyZSgnLi4vLi4vZWxsaXB0aWMnKTtcbnZhciB1dGlscyA9IGVsbGlwdGljLnV0aWxzO1xudmFyIGFzc2VydCA9IHV0aWxzLmFzc2VydDtcbnZhciBwYXJzZUJ5dGVzID0gdXRpbHMucGFyc2VCeXRlcztcbnZhciBLZXlQYWlyID0gcmVxdWlyZSgnLi9rZXknKTtcbnZhciBTaWduYXR1cmUgPSByZXF1aXJlKCcuL3NpZ25hdHVyZScpO1xuXG5mdW5jdGlvbiBFRERTQShjdXJ2ZSkge1xuICBhc3NlcnQoY3VydmUgPT09ICdlZDI1NTE5JywgJ29ubHkgdGVzdGVkIHdpdGggZWQyNTUxOSBzbyBmYXInKTtcblxuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgRUREU0EpKVxuICAgIHJldHVybiBuZXcgRUREU0EoY3VydmUpO1xuXG4gIHZhciBjdXJ2ZSA9IGVsbGlwdGljLmN1cnZlc1tjdXJ2ZV0uY3VydmU7XG4gIHRoaXMuY3VydmUgPSBjdXJ2ZTtcbiAgdGhpcy5nID0gY3VydmUuZztcbiAgdGhpcy5nLnByZWNvbXB1dGUoY3VydmUubi5iaXRMZW5ndGgoKSArIDEpO1xuXG4gIHRoaXMucG9pbnRDbGFzcyA9IGN1cnZlLnBvaW50KCkuY29uc3RydWN0b3I7XG4gIHRoaXMuZW5jb2RpbmdMZW5ndGggPSBNYXRoLmNlaWwoY3VydmUubi5iaXRMZW5ndGgoKSAvIDgpO1xuICB0aGlzLmhhc2ggPSBoYXNoLnNoYTUxMjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBFRERTQTtcblxuLyoqXG4qIEBwYXJhbSB7QXJyYXl8U3RyaW5nfSBtZXNzYWdlIC0gbWVzc2FnZSBieXRlc1xuKiBAcGFyYW0ge0FycmF5fFN0cmluZ3xLZXlQYWlyfSBzZWNyZXQgLSBzZWNyZXQgYnl0ZXMgb3IgYSBrZXlwYWlyXG4qIEByZXR1cm5zIHtTaWduYXR1cmV9IC0gc2lnbmF0dXJlXG4qL1xuRUREU0EucHJvdG90eXBlLnNpZ24gPSBmdW5jdGlvbiBzaWduKG1lc3NhZ2UsIHNlY3JldCkge1xuICBtZXNzYWdlID0gcGFyc2VCeXRlcyhtZXNzYWdlKTtcbiAgdmFyIGtleSA9IHRoaXMua2V5RnJvbVNlY3JldChzZWNyZXQpO1xuICB2YXIgciA9IHRoaXMuaGFzaEludChrZXkubWVzc2FnZVByZWZpeCgpLCBtZXNzYWdlKTtcbiAgdmFyIFIgPSB0aGlzLmcubXVsKHIpO1xuICB2YXIgUmVuY29kZWQgPSB0aGlzLmVuY29kZVBvaW50KFIpO1xuICB2YXIgc18gPSB0aGlzLmhhc2hJbnQoUmVuY29kZWQsIGtleS5wdWJCeXRlcygpLCBtZXNzYWdlKVxuICAgICAgICAgICAgICAgLm11bChrZXkucHJpdigpKTtcbiAgdmFyIFMgPSByLmFkZChzXykudW1vZCh0aGlzLmN1cnZlLm4pO1xuICByZXR1cm4gdGhpcy5tYWtlU2lnbmF0dXJlKHsgUjogUiwgUzogUywgUmVuY29kZWQ6IFJlbmNvZGVkIH0pO1xufTtcblxuLyoqXG4qIEBwYXJhbSB7QXJyYXl9IG1lc3NhZ2UgLSBtZXNzYWdlIGJ5dGVzXG4qIEBwYXJhbSB7QXJyYXl8U3RyaW5nfFNpZ25hdHVyZX0gc2lnIC0gc2lnIGJ5dGVzXG4qIEBwYXJhbSB7QXJyYXl8U3RyaW5nfFBvaW50fEtleVBhaXJ9IHB1YiAtIHB1YmxpYyBrZXlcbiogQHJldHVybnMge0Jvb2xlYW59IC0gdHJ1ZSBpZiBwdWJsaWMga2V5IG1hdGNoZXMgc2lnIG9mIG1lc3NhZ2VcbiovXG5FRERTQS5wcm90b3R5cGUudmVyaWZ5ID0gZnVuY3Rpb24gdmVyaWZ5KG1lc3NhZ2UsIHNpZywgcHViKSB7XG4gIG1lc3NhZ2UgPSBwYXJzZUJ5dGVzKG1lc3NhZ2UpO1xuICBzaWcgPSB0aGlzLm1ha2VTaWduYXR1cmUoc2lnKTtcbiAgdmFyIGtleSA9IHRoaXMua2V5RnJvbVB1YmxpYyhwdWIpO1xuICB2YXIgaCA9IHRoaXMuaGFzaEludChzaWcuUmVuY29kZWQoKSwga2V5LnB1YkJ5dGVzKCksIG1lc3NhZ2UpO1xuICB2YXIgU0cgPSB0aGlzLmcubXVsKHNpZy5TKCkpO1xuICB2YXIgUnBsdXNBaCA9IHNpZy5SKCkuYWRkKGtleS5wdWIoKS5tdWwoaCkpO1xuICByZXR1cm4gUnBsdXNBaC5lcShTRyk7XG59O1xuXG5FRERTQS5wcm90b3R5cGUuaGFzaEludCA9IGZ1bmN0aW9uIGhhc2hJbnQoKSB7XG4gIHZhciBoYXNoID0gdGhpcy5oYXNoKCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgIGhhc2gudXBkYXRlKGFyZ3VtZW50c1tpXSk7XG4gIHJldHVybiB1dGlscy5pbnRGcm9tTEUoaGFzaC5kaWdlc3QoKSkudW1vZCh0aGlzLmN1cnZlLm4pO1xufTtcblxuRUREU0EucHJvdG90eXBlLmtleUZyb21QdWJsaWMgPSBmdW5jdGlvbiBrZXlGcm9tUHVibGljKHB1Yikge1xuICByZXR1cm4gS2V5UGFpci5mcm9tUHVibGljKHRoaXMsIHB1Yik7XG59O1xuXG5FRERTQS5wcm90b3R5cGUua2V5RnJvbVNlY3JldCA9IGZ1bmN0aW9uIGtleUZyb21TZWNyZXQoc2VjcmV0KSB7XG4gIHJldHVybiBLZXlQYWlyLmZyb21TZWNyZXQodGhpcywgc2VjcmV0KTtcbn07XG5cbkVERFNBLnByb3RvdHlwZS5tYWtlU2lnbmF0dXJlID0gZnVuY3Rpb24gbWFrZVNpZ25hdHVyZShzaWcpIHtcbiAgaWYgKHNpZyBpbnN0YW5jZW9mIFNpZ25hdHVyZSlcbiAgICByZXR1cm4gc2lnO1xuICByZXR1cm4gbmV3IFNpZ25hdHVyZSh0aGlzLCBzaWcpO1xufTtcblxuLyoqXG4qICogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWpvc2Vmc3Nvbi1lZGRzYS1lZDI1NTE5LTAzI3NlY3Rpb24tNS4yXG4qXG4qIEVERFNBIGRlZmluZXMgbWV0aG9kcyBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIHBvaW50cyBhbmQgaW50ZWdlcnMuIFRoZXNlIGFyZVxuKiBoZWxwZXIgY29udmVuaWVuY2UgbWV0aG9kcywgdGhhdCBwYXNzIGFsb25nIHRvIHV0aWxpdHkgZnVuY3Rpb25zIGltcGxpZWRcbiogcGFyYW1ldGVycy5cbipcbiovXG5FRERTQS5wcm90b3R5cGUuZW5jb2RlUG9pbnQgPSBmdW5jdGlvbiBlbmNvZGVQb2ludChwb2ludCkge1xuICB2YXIgZW5jID0gcG9pbnQuZ2V0WSgpLnRvQXJyYXkoJ2xlJywgdGhpcy5lbmNvZGluZ0xlbmd0aCk7XG4gIGVuY1t0aGlzLmVuY29kaW5nTGVuZ3RoIC0gMV0gfD0gcG9pbnQuZ2V0WCgpLmlzT2RkKCkgPyAweDgwIDogMDtcbiAgcmV0dXJuIGVuYztcbn07XG5cbkVERFNBLnByb3RvdHlwZS5kZWNvZGVQb2ludCA9IGZ1bmN0aW9uIGRlY29kZVBvaW50KGJ5dGVzKSB7XG4gIGJ5dGVzID0gdXRpbHMucGFyc2VCeXRlcyhieXRlcyk7XG5cbiAgdmFyIGxhc3RJeCA9IGJ5dGVzLmxlbmd0aCAtIDE7XG4gIHZhciBub3JtZWQgPSBieXRlcy5zbGljZSgwLCBsYXN0SXgpLmNvbmNhdChieXRlc1tsYXN0SXhdICYgfjB4ODApO1xuICB2YXIgeElzT2RkID0gKGJ5dGVzW2xhc3RJeF0gJiAweDgwKSAhPT0gMDtcblxuICB2YXIgeSA9IHV0aWxzLmludEZyb21MRShub3JtZWQpO1xuICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludEZyb21ZKHksIHhJc09kZCk7XG59O1xuXG5FRERTQS5wcm90b3R5cGUuZW5jb2RlSW50ID0gZnVuY3Rpb24gZW5jb2RlSW50KG51bSkge1xuICByZXR1cm4gbnVtLnRvQXJyYXkoJ2xlJywgdGhpcy5lbmNvZGluZ0xlbmd0aCk7XG59O1xuXG5FRERTQS5wcm90b3R5cGUuZGVjb2RlSW50ID0gZnVuY3Rpb24gZGVjb2RlSW50KGJ5dGVzKSB7XG4gIHJldHVybiB1dGlscy5pbnRGcm9tTEUoYnl0ZXMpO1xufTtcblxuRUREU0EucHJvdG90eXBlLmlzUG9pbnQgPSBmdW5jdGlvbiBpc1BvaW50KHZhbCkge1xuICByZXR1cm4gdmFsIGluc3RhbmNlb2YgdGhpcy5wb2ludENsYXNzO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGVsbGlwdGljID0gcmVxdWlyZSgnLi4vLi4vZWxsaXB0aWMnKTtcbnZhciB1dGlscyA9IGVsbGlwdGljLnV0aWxzO1xudmFyIGFzc2VydCA9IHV0aWxzLmFzc2VydDtcbnZhciBwYXJzZUJ5dGVzID0gdXRpbHMucGFyc2VCeXRlcztcbnZhciBjYWNoZWRQcm9wZXJ0eSA9IHV0aWxzLmNhY2hlZFByb3BlcnR5O1xuXG4vKipcbiogQHBhcmFtIHtFRERTQX0gZWRkc2EgLSBpbnN0YW5jZVxuKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gcHVibGljL3ByaXZhdGUga2V5IHBhcmFtZXRlcnNcbipcbiogQHBhcmFtIHtBcnJheTxCeXRlPn0gW3BhcmFtcy5zZWNyZXRdIC0gc2VjcmV0IHNlZWQgYnl0ZXNcbiogQHBhcmFtIHtQb2ludH0gW3BhcmFtcy5wdWJdIC0gcHVibGljIGtleSBwb2ludCAoYWthIGBBYCBpbiBlZGRzYSB0ZXJtcylcbiogQHBhcmFtIHtBcnJheTxCeXRlPn0gW3BhcmFtcy5wdWJdIC0gcHVibGljIGtleSBwb2ludCBlbmNvZGVkIGFzIGJ5dGVzXG4qXG4qL1xuZnVuY3Rpb24gS2V5UGFpcihlZGRzYSwgcGFyYW1zKSB7XG4gIHRoaXMuZWRkc2EgPSBlZGRzYTtcbiAgdGhpcy5fc2VjcmV0ID0gcGFyc2VCeXRlcyhwYXJhbXMuc2VjcmV0KTtcbiAgaWYgKGVkZHNhLmlzUG9pbnQocGFyYW1zLnB1YikpXG4gICAgdGhpcy5fcHViID0gcGFyYW1zLnB1YjtcbiAgZWxzZVxuICAgIHRoaXMuX3B1YkJ5dGVzID0gcGFyc2VCeXRlcyhwYXJhbXMucHViKTtcbn1cblxuS2V5UGFpci5mcm9tUHVibGljID0gZnVuY3Rpb24gZnJvbVB1YmxpYyhlZGRzYSwgcHViKSB7XG4gIGlmIChwdWIgaW5zdGFuY2VvZiBLZXlQYWlyKVxuICAgIHJldHVybiBwdWI7XG4gIHJldHVybiBuZXcgS2V5UGFpcihlZGRzYSwgeyBwdWI6IHB1YiB9KTtcbn07XG5cbktleVBhaXIuZnJvbVNlY3JldCA9IGZ1bmN0aW9uIGZyb21TZWNyZXQoZWRkc2EsIHNlY3JldCkge1xuICBpZiAoc2VjcmV0IGluc3RhbmNlb2YgS2V5UGFpcilcbiAgICByZXR1cm4gc2VjcmV0O1xuICByZXR1cm4gbmV3IEtleVBhaXIoZWRkc2EsIHsgc2VjcmV0OiBzZWNyZXQgfSk7XG59O1xuXG5LZXlQYWlyLnByb3RvdHlwZS5zZWNyZXQgPSBmdW5jdGlvbiBzZWNyZXQoKSB7XG4gIHJldHVybiB0aGlzLl9zZWNyZXQ7XG59O1xuXG5jYWNoZWRQcm9wZXJ0eShLZXlQYWlyLCAncHViQnl0ZXMnLCBmdW5jdGlvbiBwdWJCeXRlcygpIHtcbiAgcmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5wdWIoKSk7XG59KTtcblxuY2FjaGVkUHJvcGVydHkoS2V5UGFpciwgJ3B1YicsIGZ1bmN0aW9uIHB1YigpIHtcbiAgaWYgKHRoaXMuX3B1YkJ5dGVzKVxuICAgIHJldHVybiB0aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuX3B1YkJ5dGVzKTtcbiAgcmV0dXJuIHRoaXMuZWRkc2EuZy5tdWwodGhpcy5wcml2KCkpO1xufSk7XG5cbmNhY2hlZFByb3BlcnR5KEtleVBhaXIsICdwcml2Qnl0ZXMnLCBmdW5jdGlvbiBwcml2Qnl0ZXMoKSB7XG4gIHZhciBlZGRzYSA9IHRoaXMuZWRkc2E7XG4gIHZhciBoYXNoID0gdGhpcy5oYXNoKCk7XG4gIHZhciBsYXN0SXggPSBlZGRzYS5lbmNvZGluZ0xlbmd0aCAtIDE7XG5cbiAgdmFyIGEgPSBoYXNoLnNsaWNlKDAsIGVkZHNhLmVuY29kaW5nTGVuZ3RoKTtcbiAgYVswXSAmPSAyNDg7XG4gIGFbbGFzdEl4XSAmPSAxMjc7XG4gIGFbbGFzdEl4XSB8PSA2NDtcblxuICByZXR1cm4gYTtcbn0pO1xuXG5jYWNoZWRQcm9wZXJ0eShLZXlQYWlyLCAncHJpdicsIGZ1bmN0aW9uIHByaXYoKSB7XG4gIHJldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLnByaXZCeXRlcygpKTtcbn0pO1xuXG5jYWNoZWRQcm9wZXJ0eShLZXlQYWlyLCAnaGFzaCcsIGZ1bmN0aW9uIGhhc2goKSB7XG4gIHJldHVybiB0aGlzLmVkZHNhLmhhc2goKS51cGRhdGUodGhpcy5zZWNyZXQoKSkuZGlnZXN0KCk7XG59KTtcblxuY2FjaGVkUHJvcGVydHkoS2V5UGFpciwgJ21lc3NhZ2VQcmVmaXgnLCBmdW5jdGlvbiBtZXNzYWdlUHJlZml4KCkge1xuICByZXR1cm4gdGhpcy5oYXNoKCkuc2xpY2UodGhpcy5lZGRzYS5lbmNvZGluZ0xlbmd0aCk7XG59KTtcblxuS2V5UGFpci5wcm90b3R5cGUuc2lnbiA9IGZ1bmN0aW9uIHNpZ24obWVzc2FnZSkge1xuICBhc3NlcnQodGhpcy5fc2VjcmV0LCAnS2V5UGFpciBjYW4gb25seSB2ZXJpZnknKTtcbiAgcmV0dXJuIHRoaXMuZWRkc2Euc2lnbihtZXNzYWdlLCB0aGlzKTtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLnZlcmlmeSA9IGZ1bmN0aW9uIHZlcmlmeShtZXNzYWdlLCBzaWcpIHtcbiAgcmV0dXJuIHRoaXMuZWRkc2EudmVyaWZ5KG1lc3NhZ2UsIHNpZywgdGhpcyk7XG59O1xuXG5LZXlQYWlyLnByb3RvdHlwZS5nZXRTZWNyZXQgPSBmdW5jdGlvbiBnZXRTZWNyZXQoZW5jKSB7XG4gIGFzc2VydCh0aGlzLl9zZWNyZXQsICdLZXlQYWlyIGlzIHB1YmxpYyBvbmx5Jyk7XG4gIHJldHVybiB1dGlscy5lbmNvZGUodGhpcy5zZWNyZXQoKSwgZW5jKTtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLmdldFB1YmxpYyA9IGZ1bmN0aW9uIGdldFB1YmxpYyhlbmMpIHtcbiAgcmV0dXJuIHV0aWxzLmVuY29kZSh0aGlzLnB1YkJ5dGVzKCksIGVuYyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEtleVBhaXI7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIHV0aWxzID0gZWxsaXB0aWMudXRpbHM7XG52YXIgYXNzZXJ0ID0gdXRpbHMuYXNzZXJ0O1xudmFyIGNhY2hlZFByb3BlcnR5ID0gdXRpbHMuY2FjaGVkUHJvcGVydHk7XG52YXIgcGFyc2VCeXRlcyA9IHV0aWxzLnBhcnNlQnl0ZXM7XG5cbi8qKlxuKiBAcGFyYW0ge0VERFNBfSBlZGRzYSAtIGVkZHNhIGluc3RhbmNlXG4qIEBwYXJhbSB7QXJyYXk8Qnl0ZXM+fE9iamVjdH0gc2lnIC1cbiogQHBhcmFtIHtBcnJheTxCeXRlcz58UG9pbnR9IFtzaWcuUl0gLSBSIHBvaW50IGFzIFBvaW50IG9yIGJ5dGVzXG4qIEBwYXJhbSB7QXJyYXk8Qnl0ZXM+fGJufSBbc2lnLlNdIC0gUyBzY2FsYXIgYXMgYm4gb3IgYnl0ZXNcbiogQHBhcmFtIHtBcnJheTxCeXRlcz59IFtzaWcuUmVuY29kZWRdIC0gUiBwb2ludCBlbmNvZGVkXG4qIEBwYXJhbSB7QXJyYXk8Qnl0ZXM+fSBbc2lnLlNlbmNvZGVkXSAtIFMgc2NhbGFyIGVuY29kZWRcbiovXG5mdW5jdGlvbiBTaWduYXR1cmUoZWRkc2EsIHNpZykge1xuICB0aGlzLmVkZHNhID0gZWRkc2E7XG5cbiAgaWYgKHR5cGVvZiBzaWcgIT09ICdvYmplY3QnKVxuICAgIHNpZyA9IHBhcnNlQnl0ZXMoc2lnKTtcblxuICBpZiAoQXJyYXkuaXNBcnJheShzaWcpKSB7XG4gICAgc2lnID0ge1xuICAgICAgUjogc2lnLnNsaWNlKDAsIGVkZHNhLmVuY29kaW5nTGVuZ3RoKSxcbiAgICAgIFM6IHNpZy5zbGljZShlZGRzYS5lbmNvZGluZ0xlbmd0aClcbiAgICB9O1xuICB9XG5cbiAgYXNzZXJ0KHNpZy5SICYmIHNpZy5TLCAnU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTJyk7XG5cbiAgaWYgKGVkZHNhLmlzUG9pbnQoc2lnLlIpKVxuICAgIHRoaXMuX1IgPSBzaWcuUjtcbiAgaWYgKHNpZy5TIGluc3RhbmNlb2YgQk4pXG4gICAgdGhpcy5fUyA9IHNpZy5TO1xuXG4gIHRoaXMuX1JlbmNvZGVkID0gQXJyYXkuaXNBcnJheShzaWcuUikgPyBzaWcuUiA6IHNpZy5SZW5jb2RlZDtcbiAgdGhpcy5fU2VuY29kZWQgPSBBcnJheS5pc0FycmF5KHNpZy5TKSA/IHNpZy5TIDogc2lnLlNlbmNvZGVkO1xufVxuXG5jYWNoZWRQcm9wZXJ0eShTaWduYXR1cmUsICdTJywgZnVuY3Rpb24gUygpIHtcbiAgcmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMuU2VuY29kZWQoKSk7XG59KTtcblxuY2FjaGVkUHJvcGVydHkoU2lnbmF0dXJlLCAnUicsIGZ1bmN0aW9uIFIoKSB7XG4gIHJldHVybiB0aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuUmVuY29kZWQoKSk7XG59KTtcblxuY2FjaGVkUHJvcGVydHkoU2lnbmF0dXJlLCAnUmVuY29kZWQnLCBmdW5jdGlvbiBSZW5jb2RlZCgpIHtcbiAgcmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5SKCkpO1xufSk7XG5cbmNhY2hlZFByb3BlcnR5KFNpZ25hdHVyZSwgJ1NlbmNvZGVkJywgZnVuY3Rpb24gU2VuY29kZWQoKSB7XG4gIHJldHVybiB0aGlzLmVkZHNhLmVuY29kZUludCh0aGlzLlMoKSk7XG59KTtcblxuU2lnbmF0dXJlLnByb3RvdHlwZS50b0J5dGVzID0gZnVuY3Rpb24gdG9CeXRlcygpIHtcbiAgcmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKTtcbn07XG5cblNpZ25hdHVyZS5wcm90b3R5cGUudG9IZXggPSBmdW5jdGlvbiB0b0hleCgpIHtcbiAgcmV0dXJuIHV0aWxzLmVuY29kZSh0aGlzLnRvQnl0ZXMoKSwgJ2hleCcpLnRvVXBwZXJDYXNlKCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNpZ25hdHVyZTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge1xuICBkb3VibGVzOiB7XG4gICAgc3RlcDogNCxcbiAgICBwb2ludHM6IFtcbiAgICAgIFtcbiAgICAgICAgJ2U2MGZjZTkzYjU5ZTllYzUzMDExYWFiYzIxYzIzZTk3YjJhMzEzNjliODdhNWFlOWM0NGVlODllMmE2ZGVjMGEnLFxuICAgICAgICAnZjdlMzUwNzM5OWU1OTU5MjlkYjk5ZjM0ZjU3OTM3MTAxMjk2ODkxZTQ0ZDIzZjBiZTFmMzJjY2U2OTYxNjgyMSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4MjgyMjYzMjEyYzYwOWQ5ZWEyYTZlM2UxNzJkZTIzOGQ4YzM5Y2FiZDVhYzFjYTEwNjQ2ZTIzZmQ1ZjUxNTA4JyxcbiAgICAgICAgJzExZjhhODA5ODU1N2RmZTQ1ZTgyNTZlODMwYjYwYWNlNjJkNjEzYWMyZjdiMTdiZWQzMWI2ZWFmZjZlMjZjYWYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTc1ZTE1OWY3MjhiODY1YTcyZjk5Y2M2YzZmYzg0NmRlMGI5MzgzM2ZkMjIyMmVkNzNmY2U1YjU1MWU1YjczOScsXG4gICAgICAgICdkMzUwNmUwZDllM2M3OWViYTRlZjk3YTUxZmY3MWY1ZWFjYjU5NTVhZGQyNDM0NWM2ZWZhNmZmZWU5ZmVkNjk1J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzM2M2Q5MGQ0NDdiMDBjOWM5OWNlYWMwNWI2MjYyZWUwNTM0NDFjN2U1NTU1MmZmZTUyNmJhZDhmODNmZjQ2NDAnLFxuICAgICAgICAnNGUyNzNhZGZjNzMyMjIxOTUzYjQ0NTM5N2YzMzYzMTQ1YjlhODkwMDgxOTllY2I2MjAwM2M3ZjNiZWU5ZGU5J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzhiNGI1ZjE2NWRmM2MyYmU4YzYyNDRiNWI3NDU2Mzg4NDNlNGE3ODFhMTViY2QxYjY5Zjc5YTU1ZGZmZGY4MGMnLFxuICAgICAgICAnNGFhZDBhNmY2OGQzMDhiNGIzZmJkNzgxM2FiMGRhMDRmOWUzMzY1NDYxNjJlZTU2YjNlZmYwYzY1ZmQ0ZmQzNidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3MjNjYmFhNmU1ZGI5OTZkNmJmNzcxYzAwYmQ1NDhjN2I3MDBkYmZmYTZjMGU3N2JjYjYxMTU5MjUyMzJmY2RhJyxcbiAgICAgICAgJzk2ZTg2N2I1NTk1Y2M0OThhOTIxMTM3NDg4ODI0ZDZlMjY2MGEwNjUzNzc5NDk0ODAxZGMwNjlkOWViMzlmNWYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZWViZmE0ZDQ5M2JlYmY5OGJhNWZlZWM4MTJjMmQzYjUwOTQ3OTYxMjM3YTkxOTgzOWE1MzNlY2EwZTdkZDdmYScsXG4gICAgICAgICc1ZDlhOGNhMzk3MGVmMGYyNjllZTdlZGFmMTc4MDg5ZDlhZTRjZGMzYTcxMWY3MTJkZGZkNGZkYWUxZGU4OTk5J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzEwMGY0NGRhNjk2ZTcxNjcyNzkxZDBhMDliN2JkZTQ1OWYxMjE1YTI5YjNjMDNiZmVmZDc4MzViMzlhNDhkYjAnLFxuICAgICAgICAnY2RkOWUxMzE5MmEwMGI3NzJlYzhmMzMwMGMwOTA2NjZiN2ZmNGExOGZmNTE5NWFjMGZiZDVjZDYyYmM2NWEwOSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlMTAzMWJlMjYyYzdlZDFiMWRjOTIyN2E0YTA0YzAxN2E3N2Y4ZDQ0NjRmM2IzODUyYzhhY2RlNmU1MzRmZDJkJyxcbiAgICAgICAgJzlkNzA2MTkyODk0MDQwNWU2YmI2YTQxNzY1OTc1MzVhZjI5MmRkNDE5ZTFjZWQ3OWE0NGYxOGYyOTQ1NmEwMGQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZmVlYTZjYWU0NmQ1NWI1MzBhYzI4MzlmMTQzYmQ3ZWM1Y2Y4YjI2NmE0MWQ2YWY1MmQ1ZTY4OGQ5MDk0Njk2ZCcsXG4gICAgICAgICdlNTdjNmI2Yzk3ZGNlMWJhYjA2ZTRlMTJiZjNlY2Q1Yzk4MWM4OTU3Y2M0MTQ0MmQzMTU1ZGViZjE4MDkwMDg4J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2RhNjdhOTFkOTEwNDljZGNiMzY3YmU0YmU2ZmZjYTNjZmVlZDY1N2Q4MDg1ODNkZTMzZmE5NzhiYzFlYzZjYjEnLFxuICAgICAgICAnOWJhY2FhMzU0ODE2NDJiYzQxZjQ2M2Y3ZWM5NzgwZTVkZWM3YWRjNTA4Zjc0MGExN2U5ZWE4ZTI3YTY4YmUxZCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc1MzkwNGZhYTBiMzM0Y2RkYTZlMDAwOTM1ZWYyMjE1MWVjMDhkMGY3YmIxMTA2OWY1NzU0NWNjYzFhMzdiN2MwJyxcbiAgICAgICAgJzViYzA4N2QwYmM4MDEwNmQ4OGM5ZWNjYWMyMGQzYzFjMTM5OTk5ODFlMTQ0MzQ2OTlkY2IwOTZiMDIyNzcxYzgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOGU3YmNkMGJkMzU5ODNhNzcxOWNjYTc3NjRjYTkwNjc3OWI1M2EwNDNhOWI4YmNhZWZmOTU5ZjQzYWQ4NjA0NycsXG4gICAgICAgICcxMGI3NzcwYjJhM2RhNGIzOTQwMzEwNDIwY2E5NTE0NTc5ZTg4ZTJlNDdmZDY4YjNlYTEwMDQ3ZTg0NjAzNzJhJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzM4NWVlZDM0YzFjZGZmMjFlNmQwODE4Njg5YjgxYmRlNzFhN2Y0ZjE4Mzk3ZTY2OTBhODQxZTE1OTljNDM4NjInLFxuICAgICAgICAnMjgzYmViYzNlOGVhMjNmNTY3MDFkZTE5ZTllYmY0NTc2YjMwNGVlYzIwODZkYzhjYzA0NThmZTU1NDJlNTQ1MydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc2ZjlkOWI4MDNlY2YxOTE2MzdjNzNhNDQxM2RmYTE4MGZkZGY4NGE1OTQ3ZmJjOWM2MDZlZDg2YzNmYWMzYTcnLFxuICAgICAgICAnN2M4MGM2OGU2MDMwNTliYTY5YjhlMmEzMGU0NWM0ZDQ3ZWE0ZGQyZjVjMjgxMDAyZDg2ODkwNjAzYTg0MjE2MCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczMzIyZDQwMTI0M2M0ZTI1ODJhMjE0N2MxMDRkNmVjYmY3NzRkMTYzZGIwZjVlNTMxM2I3ZTBlNzQyZDBlNmJkJyxcbiAgICAgICAgJzU2ZTcwNzk3ZTk2NjRlZjViZmIwMTliYzRkZGFmOWI3MjgwNWY2M2VhMjg3M2FmNjI0ZjNhMmU5NmMyOGIyYTAnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnODU2NzJjN2QyZGUwYjdkYTJiZDE3NzBkODk2NjU4Njg3NDFiM2Y5YWY3NjQzMzk3NzIxZDc0ZDI4MTM0YWI4MycsXG4gICAgICAgICc3YzQ4MWI5YjViNDNiMmViNjM3NDA0OWJmYTYyYzJlNWU3N2YxN2ZjYzUyOThmNDRjOGUzMDk0Zjc5MDMxM2E2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzk0OGJmODA5YjE5ODhhNDZiMDZjOWYxOTE5NDEzYjEwZjkyMjZjNjBmNjY4ODMyZmZkOTU5YWY2MGM4MmEwYScsXG4gICAgICAgICc1M2E1NjI4NTZkY2I2NjQ2ZGM2Yjc0YzVkMWMzNDE4YzZkNGRmZjA4Yzk3Y2QyYmVkNGNiN2Y4OGQ4YzhlNTg5J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzYyNjBjZTdmNDYxODAxYzM0ZjA2N2NlMGYwMjg3M2E4ZjFiMGU0NGRmYzY5NzUyYWNjZWNkODE5ZjM4ZmQ4ZTgnLFxuICAgICAgICAnYmMyZGE4MmI2ZmE1YjU3MWE3ZjA5MDQ5Nzc2YTFlZjdlY2QyOTIyMzgwNTFjMTk4YzFhODRlOTViMmI0YWUxNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlNTAzN2RlMGFmYzFkOGQ0M2Q4MzQ4NDE0YmJmNDEwMzA0M2VjOGY1NzViZmRjNDMyOTUzY2M4ZDIwMzdmYTJkJyxcbiAgICAgICAgJzQ1NzE1MzRiYWE5NGQzYjVmOWY5OGQwOWZiOTkwYmRkYmQ1ZjViMDNlYzQ4MWYxMGUwZTVkYzg0MWQ3NTViZGEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZTA2MzcyYjBmNGEyMDdhZGY1ZWE5MDVlOGYxNzcxYjRlN2U4ZGJkMWM2YTZjNWI3MjU4NjZhMGFlNGZjZTcyNScsXG4gICAgICAgICc3YTkwODk3NGJjZTE4Y2ZlMTJhMjdiYjJhZDVhNDg4Y2Q3NDg0YTc3ODcxMDQ4NzBiMjcwMzRmOTRlZWUzMWRkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzIxM2M3YTcxNWNkNWQ0NTM1OGQwYmJmOWRjMGNlMDIyMDRiMTBiZGRlMmEzZjU4NTQwYWQ2OTA4ZDA1NTk3NTQnLFxuICAgICAgICAnNGI2ZGFkMGI1YWU0NjI1MDcwMTNhZDA2MjQ1YmExOTBiYjQ4NTBmNWYzNmE3ZWVkZGZmMmMyNzUzNGI0NThmMidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc0ZTdjMjcyYTdhZjRiMzRlOGRiYjkzNTJhNTQxOWE4N2UyODM4YzcwYWRjNjJjZGRmMGNjM2EzYjA4ZmJkNTNjJyxcbiAgICAgICAgJzE3NzQ5Yzc2NmM5ZDBiMThlMTZmZDA5ZjZkZWY2ODFiNTMwYjk2MTRiZmY3ZGQzM2UwYjM5NDE4MTdkY2FhZTYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZmVhNzRlM2RiZTc3OGIxYjEwZjIzOGFkNjE2ODZhYTVjNzZlM2RiMmJlNDMwNTc2MzI0MjdlMjg0MGZiMjdiNicsXG4gICAgICAgICc2ZTA1NjhkYjliMGIxMzI5N2NmNjc0ZGVjY2I2YWY5MzEyNmI1OTZiOTczZjdiNzc3MDFkM2RiN2YyM2NiOTZmJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzc2ZTY0MTEzZjY3N2NmMGUxMGEyNTcwZDU5OTk2OGQzMTU0NGUxNzliNzYwNDMyOTUyYzAyYTQ0MTdiZGRlMzknLFxuICAgICAgICAnYzkwZGRmOGRlZTRlOTVjZjU3NzA2NmQ3MDY4MWYwZDM1ZTJhMzNkMmI1NmQyMDMyYjRiMTc1MmQxOTAxYWMwMSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdjNzM4YzU2YjAzYjJhYmUxZTgyODFiYWE3NDNmOGY5YThmN2NjNjQzZGYyNmNiZWUzYWIxNTAyNDJiY2JiODkxJyxcbiAgICAgICAgJzg5M2ZiNTc4OTUxYWQyNTM3ZjcxOGYyZWFjYmZiYmJiODIzMTRlZWY3ODgwY2ZlOTE3ZTczNWQ5Njk5YTg0YzMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZDg5NTYyNjU0OGI2NWI4MWUyNjRjNzYzN2M5NzI4NzdkMWQ3MmU1ZjNhOTI1MDE0MzcyZTlmNjU4OGY2YzE0YicsXG4gICAgICAgICdmZWJmYWEzOGYyYmM3ZWFlNzI4ZWM2MDgxOGMzNDBlYjAzNDI4ZDYzMmJiMDY3ZTE3OTM2M2VkNzVkN2Q5OTFmJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2I4ZGE5NDAzMmE5NTc1MThlYjBmNjQzMzU3MWU4NzYxY2VmZmM3MzY5M2U4NGVkZDQ5MTUwYTU2NGY2NzZlMDMnLFxuICAgICAgICAnMjgwNGRmYTQ0ODA1YTFlNGQ3Yzk5Y2M5NzYyODA4YjA5MmNjNTg0ZDk1ZmYzYjUxMTQ4OGU0ZTc0ZWZkZjZlNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlODBmZWExNDQ0MWZiMzNhN2Q4YWRhYjk0NzVkN2ZhYjIwMTllZmZiNTE1NmE3OTJmMWExMTc3OGUzYzBkZjVkJyxcbiAgICAgICAgJ2VlZDFkZTdmNjM4ZTAwNzcxZTg5NzY4Y2EzY2E5NDQ3MmQxNTVlODBhZjMyMmVhOWZjYjQyOTFiNmFjOWVjNzgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYTMwMTY5N2JkZmNkNzA0MzEzYmE0OGU1MWQ1Njc1NDNmMmExODIwMzFlZmQ2OTE1ZGRjMDdiYmNjNGUxNjA3MCcsXG4gICAgICAgICc3MzcwZjkxY2ZiNjdlNGY1MDgxODA5ZmEyNWQ0MGY5YjE3MzVkYmY3YzBhMTFhMTMwYzBkMWEwNDFlMTc3ZWExJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzkwYWQ4NWIzODlkNmI5MzY0NjNmOWQwNTEyNjc4ZGUyMDhjYzMzMGIxMTMwN2ZmZmFiN2FjNjNlM2ZiMDRlZDQnLFxuICAgICAgICAnZTUwN2EzNjIwYTM4MjYxYWZmZGNiZDk0MjcyMjJiODM5YWVmYWJlMTU4Mjg5NGQ5OTFkNGQ0OGNiNmVmMTUwJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzhmNjhiOWQyZjYzYjVmMzM5MjM5YzFhZDk4MWYxNjJlZTg4YzU2Nzg3MjNlYTMzNTFiN2I0NDRjOWVjNGMwZGEnLFxuICAgICAgICAnNjYyYTlmMmRiYTA2Mzk4NmRlMWQ5MGMyYjZiZTIxNWRiYmVhMmNmZTk1NTEwYmZkZjIzY2JmNzk1MDFmZmY4MidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlNGYzZmIwMTc2YWY4NWQ2NWZmOTlmZjkxOThjMzYwOTFmNDhlODY1MDM2ODFlM2U2Njg2ZmQ1MDUzMjMxZTExJyxcbiAgICAgICAgJzFlNjM2MzNhZDBlZjRmMWMxNjYxYTZkMGVhMDJiNzI4NmNjN2U3NGVjOTUxZDFjOTgyMmMzODU3NmZlYjczYmMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOGMwMGZhOWIxOGViZjMzMWViOTYxNTM3YTQ1YTQyNjZjNzAzNGYyZjBkNGUxZDA3MTZmYjZlYWUyMGVhZTI5ZScsXG4gICAgICAgICdlZmE0NzI2N2ZlYTUyMWExYTlkYzM0M2EzNzM2Yzk3NGMyZmFkYWZhODFlMzZjNTRlN2QyYTRjNjY3MDI0MTRiJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2U3YTI2Y2U2OWRkNDgyOWYzZTEwY2VjMGE5ZTk4ZWQzMTQzZDA4NGYzMDhiOTJjMDk5N2ZkZGZjNjBjYjNlNDEnLFxuICAgICAgICAnMmE3NThlMzAwZmE3OTg0YjQ3MWIwMDZhMWFhZmJiMThkMGE2YjJjMDQyMGU4M2UyMGU4YTk0MjFjZjJjZmQ1MSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdiNjQ1OWUwZWUzNjYyZWM4ZDIzNTQwYzIyM2JjYmRjNTcxY2JjYjk2N2Q3OTQyNGYzY2YyOWViM2RlNmI4MGVmJyxcbiAgICAgICAgJzY3Yzg3NmQwNmYzZTA2ZGUxZGFkZjE2ZTU2NjFkYjNjNGIzYWU2ZDQ4ZTM1YjJmZjMwYmYwYjYxYTcxYmE0NSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkNjhhODBjODI4MGJiODQwNzkzMjM0YWExMThmMDYyMzFkNmYxZmM2N2U3M2M1YTVkZWRhMGY1YjQ5Njk0M2U4JyxcbiAgICAgICAgJ2RiOGJhOWZmZjRiNTg2ZDAwYzRiMWY5MTc3YjBlMjhiNWIwZTdiOGY3ODQ1Mjk1YTI5NGM4NDI2NmIxMzMxMjAnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzI0YWVkN2RmNjVjODA0MjUyZGMwMjcwOTA3YTMwYjA5NjEyYWViOTczNDQ5Y2VhNDA5NTk4MGZjMjhkM2Q1ZCcsXG4gICAgICAgICc2NDhhMzY1Nzc0YjYxZjJmZjEzMGMwYzM1YWVjMWY0ZjE5MjEzYjBjN2UzMzI4NDM5NjcyMjRhZjk2YWI3Yzg0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzRkZjljMTQ5MTljZGU2MWY2ZDUxZGZkYmU1ZmVlNWRjZWVjNDE0M2JhOGQxY2E4ODhlOGJkMzczZmQwNTRjOTYnLFxuICAgICAgICAnMzVlYzUxMDkyZDg3MjgwNTA5NzRjMjNhMWQ4NWQ0YjVkNTA2Y2RjMjg4NDkwMTkyZWJhYzA2Y2FkMTBkNWQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOWMzOTE5YTg0YTQ3NDg3MGZhZWQ4YTljMWNjNjYwMjE1MjM0ODkwNTRkN2YwMzA4Y2JmYzk5YzhhYzFmOThjZCcsXG4gICAgICAgICdkZGI4NGYwZjRhNGRkZDU3NTg0ZjA0NGJmMjYwZTY0MTkwNTMyNmY3NmM2NGM4ZTZiZTdlNWUwM2Q0ZmM1OTlkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzYwNTcxNzBiMWRkMTJmZGY4ZGUwNWYyODFkOGUwNmJiOTFlMTQ5M2E4YjkxZDRjYzVhMjEzODIxMjBhOTU5ZTUnLFxuICAgICAgICAnOWExYWYwYjI2YTZhNDgwN2FkZDlhMmRhZjcxZGYyNjI0NjUxNTJiYzNlZTI0YzY1ZTg5OWJlOTMyMzg1YTJhOCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdhNTc2ZGY4ZTIzYTA4NDExNDIxNDM5YTQ1MThkYTMxODgwY2VmMGZiYTdkNGRmMTJiMWE2OTczZWVjYjk0MjY2JyxcbiAgICAgICAgJzQwYTZiZjIwZTc2NjQwYjJjOTJiOTdhZmU1OGNkODJjNDMyZTEwYTdmNTE0ZDlmM2VlOGJlMTFhZTFiMjhlYzgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzc3OGE3OGMyOGRlYzNlMzBhMDVmZTk2MjlkZThjMzhiYjMwZDFmNWNmOWEzYTIwOGY3NjM4ODliZTU4YWQ3MScsXG4gICAgICAgICczNDYyNmQ5YWI1YTViMjJmZjcwOThlMTJmMmZmNTgwMDg3YjM4NDExZmYyNGFjNTYzYjUxM2ZjMWZkOWY0M2FjJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzkyODk1NWVlNjM3YTg0NDYzNzI5ZmQzMGU3YWZkMmVkNWY5NjI3NGU1YWQ3ZTVjYjA5ZWRhOWMwNmQ5MDNhYycsXG4gICAgICAgICdjMjU2MjEwMDNkM2Y0MmE4MjdiNzhhMTMwOTNhOTVlZWFjM2QyNmVmYThhOGQ4M2ZjNTE4MGU5MzViY2QwOTFmJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzg1ZDBmZWYzZWM2ZGIxMDkzOTkwNjRmM2EwZTNiMjg1NTY0NWI0YTkwN2FkMzU0NTI3YWFlNzUxNjNkODI3NTEnLFxuICAgICAgICAnMWYwMzY0ODQxM2EzOGMwYmUyOWQ0OTZlNTgyY2Y1NjYzZTg3NTFlOTY4NzczMzE1ODJjMjM3YTI0ZWIxZjk2MidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdmZjJiMGRjZTk3ZWVjZTk3YzFjOWI2MDQxNzk4Yjg1ZGZkZmI2ZDg4ODJkYTIwMzA4ZjU0MDQ4MjQ1MjYwODdlJyxcbiAgICAgICAgJzQ5M2QxM2ZlZjUyNGJhMTg4YWY0YzRkYzU0ZDA3OTM2YzdiN2VkNmZiOTBlMmNlYjJjOTUxZTAxZjBjMjk5MDcnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnODI3ZmJiZTRiMWU4ODBlYTllZDJiMmU2MzAxYjIxMmI1N2YxZWUxNDhjZDZkZDI4NzgwZTVlMmNmODU2ZTI0MScsXG4gICAgICAgICdjNjBmOWM5MjNjNzI3YjBiNzFiZWYyYzY3ZDFkMTI2ODdmZjdhNjMxODY5MDMxNjZkNjA1YjY4YmFlYzI5M2VjJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2VhYTY0OWYyMWY1MWJkYmFlN2JlNGFlMzRjZTZlNTIxN2E1OGZkY2U3ZjQ3ZjlhYTdmM2I1OGZhMjEyMGUyYjMnLFxuICAgICAgICAnYmUzMjc5ZWQ1YmJiYjAzYWM2OWE4MGY4OTg3OWFhNWEwMWE2Yjk2NWYxM2Y3ZTU5ZDQ3YTUzMDViYTVhZDkzZCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlNGE0MmQ0M2M1Y2YxNjlkOTM5MWRmNmRlY2Y0MmVlNTQxYjZkOGYwYzlhMTM3NDAxZTIzNjMyZGRhMzRkMjRmJyxcbiAgICAgICAgJzRkOWY5MmU3MTZkMWM3MzUyNmZjOTljY2ZiOGFkMzRjZTg4NmVlZGZhOGQ4ZTRmMTNhN2Y3MTMxZGViYTk0MTQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMWVjODBmZWYzNjBjYmRkOTU0MTYwZmFkYWIzNTJiNmI5MmI1MzU3NmE4OGZlYTQ5NDcxNzNiOWQ0MzAwYmYxOScsXG4gICAgICAgICdhZWVmZTkzNzU2YjUzNDBkMmYzYTQ5NThhN2FiYmY1ZTAxNDZlNzdmNjI5NWEwN2I2NzFjZGMxY2MxMDdjZWZkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzE0NmE3NzhjMDQ2NzBjMmY5MWIwMGFmNDY4MGRmYThiY2UzNDkwNzE3ZDU4YmE4ODlkZGI1OTI4MzY2NjQyYmUnLFxuICAgICAgICAnYjMxOGUwZWMzMzU0MDI4YWRkNjY5ODI3ZjlkNGIyODcwYWFhOTcxZDJmN2U1ZWQxZDBiMjk3NDgzZDgzZWZkMCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdmYTUwYzBmNjFkMjJlNWYwN2UzYWNlYmIxYWEwN2IxMjhkMDAxMjIwOWEyOGI5Nzc2ZDc2YTg3OTMxODBlZWY5JyxcbiAgICAgICAgJzZiODRjNjkyMjM5N2ViYTliNzJjZDI4NzIyODFhNjhhNWU2ODMyOTNhNTdhMjEzYjM4Y2Q4ZDdkM2Y0ZjI4MTEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZGExZDYxZDBjYTcyMWExMWIxYTViZjZiN2Q4OGU4NDIxYTI4OGFiNWQ1YmJhNTIyMGU1M2QzMmI1ZjA2N2VjMicsXG4gICAgICAgICc4MTU3ZjU1YTdjOTkzMDZjNzljMDc2NjE2MWM5MWUyOTY2YTczODk5ZDI3OWI0OGE2NTVmYmEwZjFhZDgzNmYxJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2E4ZTI4MmZmMGM5NzA2OTA3MjE1ZmY5OGU4ZmQ0MTY2MTUzMTFkZTA0NDZmMWUwNjJhNzNiMDYxMGQwNjRlMTMnLFxuICAgICAgICAnN2Y5NzM1NWI4ZGI4MWMwOWFiZmI3ZjNjNWIyNTE1ODg4YjY3OWEzZTUwZGQ2YmQ2Y2VmN2M3MzExMWY0Y2MwYydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcxNzRhNTNiOWM5YTI4NTg3MmQzOWU1NmU2OTEzY2FiMTVkNTliMWZhNTEyNTA4YzAyMmYzODJkZTgzMTk0OTdjJyxcbiAgICAgICAgJ2NjYzlkYzM3YWJmYzljMTY1N2I0MTU1ZjJjNDdmOWU2NjQ2YjNhMWQ4Y2I5ODU0MzgzZGExM2FjMDc5YWZhNzMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOTU5Mzk2OTgxOTQzNzg1YzNkM2U1N2VkZjUwMThjZGJlMDM5ZTczMGU0OTE4YjNkODg0ZmRmZjA5NDc1YjdiYScsXG4gICAgICAgICcyZTdlNTUyODg4YzMzMWRkOGJhMDM4NmE0YjljZDY4NDljNjUzZjY0Yzg3MDkzODVlOWI4YWJmODc1MjRmMmZkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2QyYTYzYTUwYWU0MDFlNTZkNjQ1YTExNTNiMTA5YThmY2NhMGE0M2Q1NjFmYmEyZGJiNTEzNDBjOWQ4MmIxNTEnLFxuICAgICAgICAnZTgyZDg2ZmI2NDQzZmNiNzU2NWFlZTU4YjI5NDgyMjBhNzBmNzUwYWY0ODRjYTUyZDQxNDIxNzRkY2Y4OTQwNSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc2NDU4N2UyMzM1NDcxZWI4OTBlZTc4OTZkN2NmZGM4NjZiYWNiZGJkMzgzOTMxN2IzNDM2ZjliNDU2MTdlMDczJyxcbiAgICAgICAgJ2Q5OWZjZGQ1YmY2OTAyZTJhZTk2ZGQ2NDQ3YzI5OWExODViOTBhMzkxMzNhZWFiMzU4Mjk5ZTVlOWZhZjY1ODknXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnODQ4MWJkZTBlNGU0ZDg4NWIzYTU0NmQzZTU0OWRlMDQyZjBhYTZjZWEyNTBlN2ZkMzU4ZDZjODZkZDQ1ZTQ1OCcsXG4gICAgICAgICczOGVlN2I4Y2JhNTQwNGRkODRhMjViZjM5Y2VjYjJjYTkwMGE3OWM0MmIyNjJlNTU2ZDY0YjFiNTk3NzkwNTdlJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzEzNDY0YTU3YTc4MTAyYWE2MmI2OTc5YWU4MTdmNDYzN2ZmY2ZlZDNjNGIxY2UzMGJjZDYzMDNmNmNhZjY2NmInLFxuICAgICAgICAnNjliZTE1OTAwNDYxNDU4MGVmN2U0MzM0NTNjY2IwY2E0OGYzMDBhODFkMDk0MmUxM2Y0OTVhOTA3ZjZlY2MyNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdiYzRhOWRmNWI3MTNmZTJlOWFlZjQzMGJjYzFkYzk3YTBjZDljY2VkZTJmMjg1ODhjYWRhM2EwZDJkODNmMzY2JyxcbiAgICAgICAgJ2QzYTgxY2E2ZTc4NWMwNjM4MzkzN2FkZjRiNzk4Y2FhNmU4YTlmYmZhNTQ3YjE2ZDc1OGQ2NjY1ODFmMzNjMSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4YzI4YTk3YmY4Mjk4YmMwZDIzZDhjNzQ5NDUyYTMyZTY5NGI2NWUzMGE5NDcyYTM5NTRhYjMwZmU1MzI0Y2FhJyxcbiAgICAgICAgJzQwYTMwNDYzYTMzMDUxOTMzNzhmZWRmMzFmN2NjMGViN2FlNzg0ZjA0NTFjYjk0NTllNzFkYzczY2JlZjk0ODInXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOGVhOTY2NjEzOTUyN2E4YzFkZDk0Y2U0ZjA3MWZkMjNjOGIzNTBjNWE0YmIzMzc0OGM0YmExMTFmYWNjYWUwJyxcbiAgICAgICAgJzYyMGVmYWJiYzhlZTI3ODJlMjRlN2MwY2ZiOTVjNWQ3MzViNzgzYmU5Y2YwZjhlOTU1YWYzNGEzMGU2MmI5NDUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZGQzNjI1ZmFlZjViYTA2MDc0NjY5NzE2YmJkMzc4OGQ4OWJkZGU4MTU5NTk5NjgwOTJmNzZjYzRlYjlhOTc4NycsXG4gICAgICAgICc3YTE4OGZhMzUyMGUzMGQ0NjFkYTI1MDEwNDU3MzFjYTk0MTQ2MTk4Mjg4MzM5NTkzN2Y2OGQwMGM2NDRhNTczJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2Y3MTBkNzlkOWViOTYyMjk3ZTRmNjIzMmI0MGU4ZjdmZWIyYmM2MzgxNDYxNGQ2OTJjMTJkZTc1MjQwODIyMWUnLFxuICAgICAgICAnZWE5OGU2NzIzMmQzYjMyOTVkM2I1MzU1MzIxMTVjY2FjODYxMmM3MjE4NTE2MTc1MjZhZTQ3YTljNzdiZmM4MidcbiAgICAgIF1cbiAgICBdXG4gIH0sXG4gIG5hZjoge1xuICAgIHduZDogNyxcbiAgICBwb2ludHM6IFtcbiAgICAgIFtcbiAgICAgICAgJ2Y5MzA4YTAxOTI1OGMzMTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjknLFxuICAgICAgICAnMzg4ZjdiMGY2MzJkZTgxNDBmZTMzN2U2MmEzN2YzNTY2NTAwYTk5OTM0YzIyMzFiNmNiOWZkNzU4NGI4ZTY3MidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2MTlhYjdjYmE4ZDU2OWIyNDBlZmU0JyxcbiAgICAgICAgJ2Q4YWMyMjI2MzZlNWUzZDZkNGRiYTlkZGE2YzljNDI2Zjc4ODI3MWJhYjBkNjg0MGRjYTg3ZDNhYTZhYzYyZDYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNWNiZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJlYTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYycsXG4gICAgICAgICc2YWViY2E0MGJhMjU1OTYwYTMxNzhkNmQ4NjFhNTRkYmE4MTNkMGI4MTNmZGU3YjVhNTA4MjYyODA4NzI2NGRhJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2FjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJkZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBkZmMyN2NjYmUnLFxuICAgICAgICAnY2MzMzg5MjFiMGE3ZDlmZDY0MzgwOTcxNzYzYjYxZTlhZGQ4ODhhNDM3NWY4ZTBmMDVjYzI2MmFjNjRmOWMzNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiJyxcbiAgICAgICAgJ2Q5ODRhMDMyZWI2YjVlMTkwMjQzZGQ1NmQ3YjdiMzY1MzcyZGIxZTJkZmY5ZDZhODMwMWQ3NGM5Yzk1M2M2MWInXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCcsXG4gICAgICAgICdhYjA5MDJlOGQ4ODBhODk3NTgyMTJlYjY1Y2RhZjQ3M2ExYTA2ZGE1MjFmYTkxZjI5YjVjYjUyZGIwM2VkODEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUzMDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZScsXG4gICAgICAgICc1ODFlMjg3MmE4NmM3MmE2ODM4NDJlYzIyOGNjNmRlZmVhNDBhZjJiZDg5NmQzYTVjNTA0ZGM5ZmY2YTI2YjU4J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2RlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRmYWEwNGEyZDRhMzQnLFxuICAgICAgICAnNDIxMWFiMDY5NDYzNTE2OGU5OTdiMGVhZDJhOTNkYWVjZWQxZjRhMDRhOTVjMGY2Y2ZiMTk5ZjY5ZTU2ZWI3NydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcyYjRlYTBhNzk3YTQ0M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFjZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjJyxcbiAgICAgICAgJzg1ZTg5YmMwMzc5NDVkOTNiMzQzMDgzYjVhMWM4NjEzMWEwMWY2MGM1MDI2OTc2M2I1NzBjODU0ZTVjMDliN2EnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcxZjgxMDcxODEzNDBhZWYyNWJlNTlkNScsXG4gICAgICAgICczMjFlYjQwNzUzNDhmNTM0ZDU5YzE4MjU5ZGRhM2UxZjRhMWIzYjJlNzFiMTAzOWM2N2JkM2Q4YmNmODE5OThjJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YnLFxuICAgICAgICAnMmRlMTA2ODI5NWRkODY1YjY0NTY5MzM1YmQ1ZGQ4MDE4MWQ3MGVjZmM4ODI2NDg0MjNiYTc2YjUzMmI3ZDY3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzkyNDgyNzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQnLFxuICAgICAgICAnNzMwMTZmN2JmMjM0YWFkZTVkMWFhNzFiZGVhMmIxZmYzZmMwZGUyYTg4NzkxMmZmZTU0YTMyY2U5N2NiMzQwMidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJmNTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5JyxcbiAgICAgICAgJ2E2OWRjZTRhN2Q2Yzk4ZThkNGExYWNhODdlZjhkNzAwM2Y4M2MyMzBmM2FmYTcyNmFiNDBlNTIyOTBiZTFjNTUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdkYicsXG4gICAgICAgICcyMTE5YTQ2MGNlMzI2Y2RjNzZjNDU5MjZjOTgyZmRhYzBlMTA2ZTg2MWVkZjYxYzVhMDM5MDYzZjBlMGU2NDgyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBjZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2M2I2MWM2NWNiZDI2OWU2YjQnLFxuICAgICAgICAnZTAyMmNmNDJjMmJkNGE3MDhiM2Y1MTI2ZjE2YTI0YWQ4YjMzYmE0OGQwNDIzYjZlZmQ1ZTYzNDgxMDBkOGE4MidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVhZTU3ZjBkMGJkNmE1JyxcbiAgICAgICAgJ2I5YzM5OGYxODY4MDZmNWQyNzU2MTUwNmU0NTU3NDMzYTJjZjE1MDA5ZTQ5OGFlN2FkZWU5ZDYzZDAxYjIzOTYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OScsXG4gICAgICAgICcyOTcyZDJkZTRmOGQyMDY4MWE3OGQ5M2VjOTZmZTIzYzI2YmZhZTg0ZmIxNGRiNDNiMDFlMWU5MDU2YjhjNDknXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNjJkMTRkYWI0MTUwYmY0OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCcsXG4gICAgICAgICc4MGZjMDZiZDhjYzViMDEwOTgwODhhMTk1MGVlZDBkYjAxYWExMzI5NjdhYjQ3MjIzNWY1NjQyNDgzYjI1ZWFmJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2YjliOGI0MjVlNTU1YzJmODYzMDhiNmYnLFxuICAgICAgICAnMWMzODMwM2YxY2M1YzMwZjI2ZTY2YmFkN2ZlNzJmNzBhNjVlZWQ0Y2JlNzAyNGViMWFhMDFmNTY0MzBiZDU3YSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiJyxcbiAgICAgICAgJ2QwZTNmYTllY2E4NzI2OTA5NTU5ZTBkNzkyNjkwNDZiZGM1OWVhMTBjNzBjZTJiMDJkNDk5ZWMyMjRkYzdmNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJiNDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTliYzNmZmM5JyxcbiAgICAgICAgJ2VlY2Y0MTI1MzEzNmU1Zjk5OTY2ZjIxODgxZmQ2NTZlYmM0MzQ1NDA1YzUyMGRiYzA2MzQ2NWI1MjE0MDk5MzMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYzJyxcbiAgICAgICAgJzc1OGYzZjQxYWZkNmVkNDI4YjMwODFiMDUxMmZkNjJhNTRjM2YzYWZiYjViNjc2NGI2NTMwNTJhMTI5NDljOWEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCcsXG4gICAgICAgICc5NThlZjQyYTc4ODZiNjQwMGEwODI2NmU5YmExYjM3ODk2Yzk1MzMwZDk3MDc3Y2JiZThlYjNjNzY3MWM2MGQ2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2YyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVjN2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAnLFxuICAgICAgICAnZTBkZWRjOWIzYjJmOGRhZDRkYTFmMzJkZWMyNTMxZGY5ZWI1ZmJlYjA1OThlNGZkMWExMTdkYmE3MDNhM2MzNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc0NjNiM2Q5ZjY2MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1MGM2OTBkNDViJyxcbiAgICAgICAgJzVlZDQzMGQ3OGMyOTZjMzU0MzExNDMwNmRkODYyMmQ3YzYyMmUyN2M5NzBhMWRlMzFjYjM3N2IwMWFmNzMwN2UnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NycsXG4gICAgICAgICdjZWRhYmQ5YjgyMjAzZjdlMTNkMjA2ZmNkZjRlMzNkOTJhNmM1M2MyNmU1Y2NlMjZkNjU3OTk2MmM0ZTMxZGY2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2NhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2UyN2M2NTM2OWUxNWY3MTUxZDQxZDEnLFxuICAgICAgICAnY2I0NzQ2NjBlZjM1ZjVmMmE0MWI2NDNmYTVlNDYwNTc1ZjRmYTliNzk2MjIzMmE1YzMyZjkwODMxOGEwNDQ3NidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwJyxcbiAgICAgICAgJzQxMTliODg3NTNjMTViZDZhNjkzYjAzZmNkZGJiNDVkNWFjNmJlNzRhYjVmMGVmNDRiMGJlOTQ3NWE3ZTRiNDAnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzYzNWNhNzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNScsXG4gICAgICAgICc5MWI2NDk2MDk0ODlkNjEzZDFkNWU1OTBmNzhlNmQ3NGVjZmMwNjFkNTcwNDhiYWQ5ZTc2ZjMwMmM1YjljNjEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2YyYjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCcsXG4gICAgICAgICc2NzNmYjg2ZTViZGEzMGZiM2NkMGVkMzA0ZWE0OWEwMjNlZTMzZDAxOTdhNjk1ZDBjNWQ5ODA5M2M1MzY2ODMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZTNlNmJkMTA3MWExZTk2YWZmNTc4NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCcsXG4gICAgICAgICc1OWM5ZTBiYmEzOTRlNzZmNDBjMGFhNTgzNzlhM2NiNmE1YTIyODM5OTNlOTBjNDE2NzAwMmFmNDkyMGUzN2Y1J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWInLFxuICAgICAgICAnM2I5NTJkMzJjNjdjZjc3ZTJlMTc0NDZlMjA0MTgwYWIyMWZiODA5MDg5NTEzOGI0YTRhNzk3Zjg2ZTgwODg4YidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3MjRjZTA5NjNmJyxcbiAgICAgICAgJzU1ZWIyZGFmZDg0ZDZjY2Q1Zjg2MmI3ODVkYzM5ZDRhYjE1NzIyMjcyMGVmOWRhMjE3YjhjNDVjZjJiYTI0MTcnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MycsXG4gICAgICAgICdlZmFlOWM4ZGJjMTQxMzA2NjFlOGNlYzAzMGM4OWFkMGMxM2M2NmMwZDE3YTI5MDVjZGM3MDZhYjczOTlhODY4J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzI5MDc5OGMyYjY0NzY4MzBkYTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEnLFxuICAgICAgICAnZTM4ZGE3NmRjZDQ0MDYyMTk4OGQwMGJjZjc5YWYyNWQ1YjI5YzA5NGRiMmEyMzE0NmQwMDNhZmQ0MTk0M2U3YSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdhZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1NzM2MmRmZGVjZWY0MDUzYjQ1JyxcbiAgICAgICAgJ2Y5OGEzZmQ4MzFlYjJiNzQ5YTkzYjBlNmYzNWNmYjQwYzhjZDVhYTY2N2ExNTU4MWJjMmZlZGVkNDk4ZmQ5YzYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzY2ZGJiMjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YScsXG4gICAgICAgICc3NDRiMTE1MmVhY2JlNWUzOGRjYzg4Nzk4MGRhMzhiODk3NTg0YTY1ZmEwNmNlZGQyYzkyNGY5N2NiYWM1OTk2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2UnLFxuICAgICAgICAnYzUzNGFkNDQxNzVmYmMzMDBmNGVhNmNlNjQ4MzA5YTA0MmNlNzM5YTc5MTk3OThjZDg1ZTIxNmM0YTMwN2Y2ZSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4JyxcbiAgICAgICAgJ2UxMzgxN2I0NGVlMTRkZTY2M2JmNGJjODA4MzQxZjMyNjk0OWUyMWE2YTc1YzI1NzA3Nzg0MTliZGFmNTczM2QnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYycsXG4gICAgICAgICczMGU5M2U4NjRlNjY5ZDgyMjI0Yjk2N2MzMDIwYjhmYThkMWU0ZTM1MGI2Y2JjYzUzN2E0OGI1Nzg0MTE2M2EyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZhYmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTknLFxuICAgICAgICAnZTQ5MWE0MjUzN2Y2ZTU5N2Q1ZDI4YTMyMjRiMWJjMjVkZjkxNTRlZmJkMmVmMWQyY2JiYTJjYWU1MzQ3ZDU3ZSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3OTYyNDE0NDUwYzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4YTNkN2M3N2FiJyxcbiAgICAgICAgJzEwMGI2MTBlYzRmZmI0NzYwZDVjMWZjMTMzZWY2ZjZiMTI1MDdhMDUxZjA0YWM1NzYwYWZhNWIyOWRiODM0MzcnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzUxNDA4NzgzNDk2NGI1NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYScsXG4gICAgICAgICdlZjBhZmJiMjA1NjIwNTQ0OGUxNjUyYzQ4ZTgxMjdmYzYwMzllNzdjMTVjMjM3OGI3ZTdkMTVhMGRlMjkzMzExJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2QzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWYnLFxuICAgICAgICAnOGIzNzhhMjJkODI3Mjc4ZDg5YzVlOWJlOGY5NTA4YWUzYzJhZDQ2MjkwMzU4NjMwYWZiMzRkYjA0ZWVkZTBhNCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwJyxcbiAgICAgICAgJzY4NjUxY2Y5YjZkYTkwM2UwOTE0NDQ4YzZjZDlkNGNhODk2ODc4ZjUyODJiZTRjOGNjMDZlMmE0MDQwNzg1NzUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzMzY2U4MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCcsXG4gICAgICAgICdmNTQzNWEyYmQyYmFkZjdkNDg1YTRkOGI4ZGI5ZmNjZTNlMWVmOGUwMjAxZTQ1NzhjNTQ2NzNiYzFkYzVlYTFkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMnLFxuICAgICAgICAnZDU2ZWIzMGI2OTQ2M2U3MjM0ZjUxMzdiNzNiODQxNzc0MzQ4MDBiYWNlYmZjNjg1ZmMzN2JiZTllZmU0MDcwZCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdhMWQwZmNmMmVjOWRlNjc1YjYxMjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQwJyxcbiAgICAgICAgJ2VkZDc3ZjUwYmNiNWEzY2FiMmU5MDczNzMwOTY2N2YyNjQxNDYyYTU0MDcwZjNkNTE5MjEyZDM5YzE5N2E2MjknXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDczNWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2YzdjYTM3MzMxY2IzNjk4MCcsXG4gICAgICAgICdhODU1YmFiYWQ1Y2Q2MGM4OGI0MzBhNjlmNTNhMWE3YTM4Mjg5MTU0OTY0Nzk5YmU0M2QwNmQ3N2QzMWRhMDYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliMycsXG4gICAgICAgICc2NmRiNjU2Zjg3ZDFmMDRmZmZkMWYwNDc4OGMwNjgzMDg3MWVjNWE2NGZlZWU2ODViZDgwZjBiMTI4NmQ4Mzc0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYnLFxuICAgICAgICAnOTQxNDY4NWU5N2IxYjU5NTRiZDQ2ZjczMDE3NDEzNmQ1N2YxY2VlYjQ4NzQ0M2RjNTMyMTg1N2JhNzNhYmVlJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2YyMTllYTVkNmI1NDcwMWMxYzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMnLFxuICAgICAgICAnNGNiOTU5NTdlODNkNDBiMGY3M2FmNDU0NGNjY2Y2YjFmNGIwOGQzYzA3YjI3ZmI4ZDhjMjk2MmE0MDA3NjZkMSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3MDg3MjM2OTEyNDY5YTBiNDQ4JyxcbiAgICAgICAgJ2ZhNzc5NjgxMjhkOWM5MmVlMTAxMGYzMzdhZDQ3MTdlZmYxNWRiNWVkM2MwNDliMzQxMWUwMzE1ZWFhNDU5M2InXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzJkMzFjMjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMzNWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZicsXG4gICAgICAgICc1ZjMwMzJmNTg5MjE1NmUzOWNjZDNkNzkxNWI5ZTFkYTJlNmRhYzllNmYyNmU5NjExMThkMTRiODQ2MmUxNjYxJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4MzQ3YjUnLFxuICAgICAgICAnOGVjMGJhMjM4Yjk2YmVjMGNiZGRkY2FlMGFhNDQyNTQyZWVlMWZmNTBjOTg2ZWE2YjM5ODQ3YjNjYzA5MmZmNidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2JyxcbiAgICAgICAgJzhkYzI0MTJhYWZlM2JlNWM0YzVmMzdlMGVjYzVmOWY2YTQ0Njk4OWFmMDRjNGUyNWViYWFjNDc5ZWMxYzhjMWUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNScsXG4gICAgICAgICc1ZTQ2MzExNTBlNjJmYjQwZDBlOGMyYTdjYTU4MDRhMzlkNTgxODZhNTBlNDk3MTM5NjI2Nzc4ZTI1YjA2NzRkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2VhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFmYTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTknLFxuICAgICAgICAnZjY1ZjVkM2UyOTJjMmUwODE5YTUyODM5MWM5OTQ2MjRkNzg0ODY5ZDdlNmVhNjdmYjE4MDQxMDI0ZWRjMDdkYydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZiMzVhNDlmNTEnLFxuICAgICAgICAnZjNlMDMxOTE2OWViOWI4NWQ1NDA0Nzk1NTM5YTVlNjhmYTFmYmQ1ODNjMDY0ZDI0NjJiNjc1ZjE5NGEzZGRiNCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc0OTRmNGJlMjE5YTFhNzcwMTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFlN2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1JyxcbiAgICAgICAgJzQyMjQyYTk2OTI4M2E1ZjMzOWJhN2YwNzVlMzZiYTJhZjkyNWNlMzBkNzY3ZWQ2ZTU1ZjRiMDMxODgwZDU2MmMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFhNzBlYmY0YzFlNjY1YzFmZTliNScsXG4gICAgICAgICcyMDRiNWQ2Zjg0ODIyYzMwN2U0YjRhNzE0MDczN2FlYzIzZmM2M2I2NWIzNWY4NmExMDAyNmRiZDJkODY0ZTZiJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2M0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTcnLFxuICAgICAgICAnNGYxNDM1MWQwMDg3ZWZhNDlkMjQ1YjMyODk4NDk4OWQ1Y2FmOTQ1MGYzNGJmYzBlZDE2ZTk2YjU4ZmE5OTEzJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzg0MWQ2MDYzYTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEnLFxuICAgICAgICAnNzM4NjdmNTljMDY1OWU4MTkwNGY5YTFjNzU0MzY5OGU2MjU2MmQ2NzQ0YzE2OWNlN2EzNmRlMDFhOGQ2MTU0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMzODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUnLFxuICAgICAgICAnMzlmMjNmMzY2ODA5MDg1YmVlYmZjNzExODEzMTM3NzVhOTljOWFlZDdkOGJhMzhiMTYxMzg0Yzc0NjAxMjg2NSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2JyxcbiAgICAgICAgJ2QyNDI0YjFiMWFiZTRlYjgxNjQyMjdiMDg1YzlhYTk0NTZlYTEzNDkzZmQ1NjNlMDZmZDUxY2Y1Njk0Yzc4ZmMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFiMjdjMmM1NzlmNzI2JyxcbiAgICAgICAgJ2VhZDEyMTY4NTk1ZmUxYmU5OTI1MjEyOWI2ZTU2YjMzOTFmN2FiMTQxMGNkMWUwZWYzZGNkY2FiZDJmZGEyMjQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2YmQ0M2VkZScsXG4gICAgICAgICc2ZmRjZWYwOWYyZjZkMGEwNDRlNjU0YWVmNjI0MTM2ZjUwM2Q0NTljM2U4OTg0NTg1OGE0N2E5MTI5Y2RkMjRlJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQnLFxuICAgICAgICAnNjA2NjAyNTdkZDExYjNhYTljOGVkNjE4ZDI0ZWRmZjIzMDZkMzIwZjFkMDMwMTBlMzNhN2QyMDU3ZjNiM2I2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzg1YjdjMWRjYjNjZWMxYjdlZTdmMzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEnLFxuICAgICAgICAnM2Q5OGE5Y2RkMDI2ZGQ0M2YzOTA0OGYyNWE4ODQ3ZjRmY2FmYWQxODk1ZDdhNjMzYzZmZWQzYzM1ZTk5OTUxMSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcyOWRmOWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3MmEyODAwNjYxYWM1ZjUxJyxcbiAgICAgICAgJ2I0YzRmZTk5Yzc3NWE2MDZlMmQ4ODYyMTc5MTM5ZmZkYTYxZGM4NjFjMDE5ZTU1Y2QyODc2ZWIyYTI3ZDg0YidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyJyxcbiAgICAgICAgJ2FlNDM0MTAyZWRkZTA5NThlYzRiMTlkOTE3YTZhMjhlNmI3MmRhMTgzNGFmZjBlNjUwZjA0OTUwM2EyOTZjZjInXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIzYjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1JyxcbiAgICAgICAgJ2NmMjE3NDExOGM4YjZkN2E0YjQ4ZjZkNTM0Y2U1Yzc5NDIyYzA4NmE2MzQ2MDUwMmI4MjdjZTYyYTMyNjY4M2MnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYicsXG4gICAgICAgICc2ZmI4ZDU1OTFiNDY2ZjhmYzYzZGI1MGYxYzBmMWM2OTAxM2Y5OTY4ODdiODI0NGQyY2RlYzQxN2FmZWE4ZmEzJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2VhMDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQnLFxuICAgICAgICAnMzIyYWY0OTA4YzczMTJiMGNmYmZlMzY5ZjdhN2IzY2RiN2Q0NDk0YmMyODIzNzAwY2ZkNjUyMTg4YTNlYTk4ZCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmJyxcbiAgICAgICAgJzY3NDllNjdjMDI5Yjg1ZjUyYTAzNGVhZmQwOTY4MzZiMjUyMDgxODY4MGUyNmFjOGYzZGZiY2RiNzE3NDk3MDAnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZTNhZTE5NzQ1NjZjYTA2Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4ODknLFxuICAgICAgICAnMmFlYWJlN2U0NTMxNTEwMTE2MjE3ZjA3YmY0ZDA3MzAwZGU5N2U0ODc0ZjgxZjUzMzQyMGE3MmVlYjBiZDZhNCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2JyxcbiAgICAgICAgJ2IwZWE1NThhMTEzYzMwYmVhNjBmYzQ3NzU0NjBjNzkwMWZmMGIwNTNkMjVjYTJiZGVlZTk4ZjFhNGJlNWQxOTYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3Y2YwMzI1NWI1Mjk4NCcsXG4gICAgICAgICc5OThjNzRhOGNkNDVhYzAxMjg5ZDU4MzNhN2JlYjQ3NDRmZjUzNmIwMWIyNTdiZTRjNTc2N2JlYTkzZWE1N2E0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EnLFxuICAgICAgICAnYjIyODQyNzk5OTVhMzRlMmY5ZDRkZTczOTZmYzE4YjgwZjliOGI5ZmRkMjcwZjY2NjFmNzljYTRjODFiZDI1NydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdjYzg3MDRiOGE2MGEwZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwJyxcbiAgICAgICAgJ2JkZDQ2MDM5ZmVlZDE3ODgxZDFlMDg2MmRiMzQ3ZjhjZjM5NWI3NGZjNGJjZGM0ZTk0MGI3NGUzYWMxZjFiMTMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2NjNTNlZTdlYTIwNDExOWIyODg5YjE5NycsXG4gICAgICAgICc2ZjBhMjU2YmM1ZWZkZjQyOWEyZmI2MjQyZjFhNDNhMmQ5YjkyNWJiNGE0YjNhMjZiYjhlMGY0NWViNTk2MDk2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2MxNGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAzY2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MycsXG4gICAgICAgICdjMzU5ZDY5MjNiYjM5OGY3ZmQ0NDczZTE2ZmUxYzI4NDc1Yjc0MGRkMDk4MDc1ZTZjMGU4NjQ5MTEzZGMzYTM4J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2E2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWYnLFxuICAgICAgICAnMjFhZTdmNDY4MGU4ODliYjEzMDYxOWUyYzBmOTVhMzYwY2ViNTczYzcwNjAzMTM5ODYyYWZkNjE3ZmE5YjlmJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2NjMzgnLFxuICAgICAgICAnNjBlYTdmNjFhMzUzNTI0ZDFjOTg3ZjZlY2VjOTJmMDg2ZDU2NWFiNjg3ODcwY2IxMjY4OWZmMWUzMWM3NDQ0OCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhJyxcbiAgICAgICAgJzQ5Yjk2NzE1YWI2ODc4YTc5ZTc4ZjA3Y2U1NjgwYzVkNjY3MzA1MWI0OTM1YmQ4OTdmZWE4MjRiNzdkYzIwOGEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMScsXG4gICAgICAgICc1Y2E1NjA3NTNiZTJhMTJmYzZkZTZjYWYyY2I0ODk1NjVkYjkzNjE1NmI5NTE0ZTFiYjVlODMwMzdlMGZhMmQ0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzRlNDJjOGVjODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAzZWY0MDM3ZjM1MDInLFxuICAgICAgICAnNzU3MWQ3NGVlNWUwZmI5MmE3YThiMzNhMDc3ODMzNDFhNTQ5MjE0NGNjNTRiY2M0MGE5NDQ3MzY5MzYwNjQzNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczNzc1YWI3MDg5YmM2YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFjYWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhJyxcbiAgICAgICAgJ2JlNTJkMTA3YmNmYTA5ZDhiY2I5NzM2YTgyOGNmYTdmYWM4ZGIxN2JmN2E3NmEyYzQyYWQ5NjE0MDkwMThjZjcnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNicsXG4gICAgICAgICc4ZmQ2NGExNGMwNmI1ODljMjZiOTQ3YWUyYmNmNmJmYTAxNDllZjBiZTE0ZWQ0ZDgwZjQ0OGEwMWM0M2IxYzZkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2I0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYnLFxuICAgICAgICAnMzllNWM5OTI1YjVhNTRiMDc0MzNhNGYxOGM2MTcyNmY4YmIxMzFjMDEyY2E1NDJlYjI0YThhYzA3MjAwNjgyYSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkNDI2M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlJyxcbiAgICAgICAgJzYyZGZhZjA3YTBmNzhmZWIzMGUzMGQ2Mjk1ODUzY2UxODllMTI3NzYwYWQ2Y2Y3ZmFlMTY0ZTEyMmEyMDhkNTQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2MwMDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCcsXG4gICAgICAgICcyNWE3NDhhYjM2Nzk3OWQ5ODczM2MzOGExZmExYzJlN2RjNmNjMDdkYjJkNjBhOWFlN2E3NmFhYTQ5YmQwZjc3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2RmZWVlZjE4ODExMDFmMmNiMTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2NlZGEnLFxuICAgICAgICAnZWNmYjcwNTZjZjFkZTA0MmY5NDIwYmFiMzk2NzkzYzBjMzkwYmRlNzRiNGJiZGZmMTZhODNhZTA5YTlhNzUxNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc2ZDdlZjZiMTc1NDNmODM3M2M1NzNmNDRlMWYzODk4MzVkODliY2JjNjA2MmNlZDM2YzgyZGY4M2I4ZmFlODU5JyxcbiAgICAgICAgJ2NkNDUwZWMzMzU0Mzg5ODZkZmVmYTEwYzU3ZmVhOWJjYzUyMWEwOTU5YjJkODBiYmY3NGIxOTBkY2E3MTJkMTAnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZicsXG4gICAgICAgICdmNWM1NDc1NGE4ZjcxZWU1NDBiOWI0ODcyODQ3M2UzMTRmNzI5YWM1MzA4YjA2OTM4MzYwOTkwZTJiZmFkMTI1J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2ViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMnLFxuICAgICAgICAnNmNiOWE4ODc2ZDljYjg1MjA2MDlhZjNhZGQyNmNkMjBhMGE3Y2Q4YTk0MTExMzFjZTg1ZjQ0MTAwMDk5MjIzZSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcxM2U4N2IwMjdkODUxNGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyJyxcbiAgICAgICAgJ2ZlZjVhM2M2ODA1OWE2ZGVjNWQ2MjQxMTRiZjFlOTFhYWMyYjlkYTU2OGQ2YWJlYjI1NzBkNTU2NDZiOGFkZjEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFjZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YScsXG4gICAgICAgICcxYWNiMjUwZjI1NWRkNjFjNDNkOTRjY2M2NzBkMGY1OGY0OWFlM2ZhMTViOTY2MjNlNTQzMGRhMGFkNmM2MmIyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2IyNjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBjMmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAnLFxuICAgICAgICAnNWYzMTBkNGIzYzk5YjllYmIxOWY3N2Q0MWMxZGVlMDE4Y2YwZDM0ZmQ0MTkxNjE0MDAzZTk0NWExMjE2ZTQyMydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZlNDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRiYTkzYzQ3NTBkJyxcbiAgICAgICAgJzQzODEzNmQ2MDNlODU4YTNhNWM0NDBjMzhlY2NiYWRkYzFkMjk0MjExNGUyZWRkZDQ3NDBkMDk4Y2VkMWYwZDgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMScsXG4gICAgICAgICdjZGI1NTllZWRjMmQ3OWY5MjZiYWY0NGZiODRlYTRkNDRiY2Y1MGZlZTUxZDdjZWIzMGUyZTdmNDYzMDM2NzU4J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMnLFxuICAgICAgICAnYzNiOTk3ZDA1MGVlNWQ0MjNlYmFmNjZhNmRiOWY1N2IzMTgwYzkwMjg3NTY3OWRlOTI0YjY5ZDg0YTdiMzc1J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2U2MmY5NDkwZDNkNTFkYTYzOTVlZmQyNGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTInLFxuICAgICAgICAnNmQ4OWFkN2JhNDg3NmIwYjIyYzJjYTI4MGM2ODI4NjJmMzQyYzg1OTFmMWRhZjUxNzBlMDdiZmQ5Y2NhZmE3ZCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhlN2Q2NWFhYWIxMTkzJyxcbiAgICAgICAgJ2NhNWVmN2Q0YjIzMWM5NGMzYjE1Mzg5YTVmNjMxMWU5ZGFmZjdiYjY3YjEwM2U5ODgwZWY0YmZmNjM3YWNhZWMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNTA5OGZmMWUxZDlmMTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBmYjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCcsXG4gICAgICAgICc5NzMxMTQxZDgxZmM4ZjgwODRkMzdjNmU3NTQyMDA2YjNlZTFiNDBkNjBkZmU1MzYyYTViMTMyZmQxN2RkYzAnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2NlNDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCcsXG4gICAgICAgICdlZTE4NDlmNTEzZGY3MWUzMmVmYzM4OTZlZTI4MjYwYzczYmI4MDU0N2FlMjI3NWJhNDk3MjM3Nzk0Yzg3NTNjJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2UyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjcnLFxuICAgICAgICAnZDNhYTJlZDcxYzlkZDIyNDdhNjJkZjA2MjczNmViMGJhZGRlYTllMzYxMjJkMmJlODY0MWFiY2IwMDVjYzRhNCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4NDM4NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4JyxcbiAgICAgICAgJ2M0ZTEwMjA5MTY5ODBhNGRhNWQwMWFjNWU2YWQzMzA3MzRlZjBkNzkwNjYzMWM0ZjIzOTA0MjZiMmVkZDc5MWYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcwNTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZScsXG4gICAgICAgICc2NzE2M2U5MDMyMzYyODlmNzc2ZjIyYzI1ZmI4YTNhZmMxNzMyZjJiODRiNGU5NWRiZGE0N2FlNWEwODUyNjQ5J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4M2QnLFxuICAgICAgICAnY2QxYmM3Y2I2Y2M0MDdiYjJmMGNhNjQ3YzcxOGE3MzBjZjcxODcyZTdkMGQyYTUzZmEyMGVmY2RmZTYxODI2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4ZjFjNjk1MzJmYWViMWE4NmInLFxuICAgICAgICAnMjk5ZDIxZjk0MTNmMzNiM2VkZjQzYjI1NzAwNDU4MGI3MGRiNTdkYTBiMTgyMjU5ZTA5ZWVjYzY5ZTBkMzhhNSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdkMjliZDVlZTlmMDhmJyxcbiAgICAgICAgJ2Y5NDI5ZTczOGI4ZTUzYjk2OGU5OTAxNmMwNTk3MDc3ODJlMTRmNDUzNTM1OWQ1ODJmYzQxNjkxMGIzZWVhODcnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNicsXG4gICAgICAgICc0NjJmOWJjZTYxOTg5ODYzODQ5OTM1MDExM2JiYzliMTBhODc4ZDM1ZGE3MDc0MGRjNjk1YTU1OWViODhkYjdiJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2JlMjA2MjAwM2M1MWNjMzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTcnLFxuICAgICAgICAnNjIxODhiYzQ5ZDYxZTU0Mjg1NzNkNDhhNzRlMWM2NTViMWM2MTA5MDkwNTY4MmEwZDU1NThlZDcyZGNjYjliYydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFkZjU5OTNjNDE5ODU5ZmZmNWRmMDRhJyxcbiAgICAgICAgJzdjMTBkZmIxNjRjMzQyNWY1YzcxYTNmOWQ3OTkyMDM4ZjEwNjUyMjRmNzJiYjlkMWQ5MDJhNmQxMzAzN2I0N2MnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYycsXG4gICAgICAgICdhYjhjMWUwODZkMDRlODEzNzQ0YTY1NWIyZGY4ZDVmODNiM2NkYzZmYWEzMDg4YzFkM2FlYTE0NTRlM2ExZDVmJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2Q1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNhNGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYzNDFhMjFiNTInLFxuICAgICAgICAnNGNiMDQ0MzdmMzkxZWQ3MzExMWExM2NjMWQ0ZGQwZGIxNjkzNDY1YzIyNDA0ODBkODk1NWU4NTkyZjI3NDQ3YSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2NmJiJyxcbiAgICAgICAgJ2JkMWFlYjIxYWQyMmViYjIyYTEwZjAzMDM0MTdjNmQ5NjRmOGNkZDdkZjBhY2E2MTRiMTBkYzE0ZDEyNWFjNDYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NScsXG4gICAgICAgICdiZmVmYWNkYjBlNWQwZmQ3ZGYzYTMxMWE5NGRlMDYyYjI2YjgwYzYxZmJjOTc1MDhiNzk5OTI2NzFlZjdjYTdmJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzc5ODVmZGZkMTI3YzA1NjdjNmY1M2VjMWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTcnLFxuICAgICAgICAnNjAzYzEyZGFmM2Q5ODYyZWYyYjI1ZmUxZGUyODlhZWQyNGVkMjkxZTBlYzY3MDg3MDNhNWJkNTY3ZjMyZWQwMydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3NGExYWQ2YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZmMTU0M2RhNzcwM2U5JyxcbiAgICAgICAgJ2NjNjE1N2VmMThjOWM2M2NkNjE5M2Q4MzYzMWJiZWEwMDkzZTA5Njg5NDJlOGMzM2Q1NzM3ZmQ3OTBlMGRiMDgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMycsXG4gICAgICAgICc1NTNlMDRmNmIwMThiNGZhNmM4ZjM5ZTdmMzExZDMxNzYyOTBkMGUwZjE5Y2E3M2YxNzcxNGQ5OTc3YTIyZmY4J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIyNDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTcnLFxuICAgICAgICAnNzEyZmNkZDFiOTA1M2YwOTAwM2EzNDgxZmE3NzYyZTlmZmQ3YzhlZjM1YTM4NTA5ZTJmYmYyNjI5MDA4MzczJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYnLFxuICAgICAgICAnZWQ4Y2M5ZDA0YjI5ZWI4NzdkMjcwYjQ4NzhkYzQzYzE5YWVmZDMxZjRlZWUwOWVlN2I0NzgzNGMxZmE0YjFjMydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3NWQ0NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4JyxcbiAgICAgICAgJzk4NTIzOTBhOTk1MDc2NzlmZDBiODZmZDJiMzlhODY4ZDdlZmMyMjE1MTM0NmUxYTNjYTQ3MjY1ODZhNmJlZDgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYyMzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMScsXG4gICAgICAgICc5ZTk5NDk4MGQ5OTE3ZTIyYjc2YjA2MTkyN2ZhMDQxNDNkMDk2Y2NjNTQ5NjNlNmE1ZWJmYTVmM2Y4ZTI4NmMxJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzFiMzg5MDNhNDNmN2YxMTRlZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMxODAnLFxuICAgICAgICAnNDAzNmVkYzkzMWE2MGFlODg5MzUzZjc3ZmQ1M2RlNGEyNzA4YjI2YjZmNWRhNzJhZDMzOTQxMTlkYWY0MDhmOSdcbiAgICAgIF1cbiAgICBdXG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IGV4cG9ydHM7XG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIG1pbkFzc2VydCA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1hc3NlcnQnKTtcbnZhciBtaW5VdGlscyA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMnKTtcblxudXRpbHMuYXNzZXJ0ID0gbWluQXNzZXJ0O1xudXRpbHMudG9BcnJheSA9IG1pblV0aWxzLnRvQXJyYXk7XG51dGlscy56ZXJvMiA9IG1pblV0aWxzLnplcm8yO1xudXRpbHMudG9IZXggPSBtaW5VdGlscy50b0hleDtcbnV0aWxzLmVuY29kZSA9IG1pblV0aWxzLmVuY29kZTtcblxuLy8gUmVwcmVzZW50IG51bSBpbiBhIHctTkFGIGZvcm1cbmZ1bmN0aW9uIGdldE5BRihudW0sIHcpIHtcbiAgdmFyIG5hZiA9IFtdO1xuICB2YXIgd3MgPSAxIDw8ICh3ICsgMSk7XG4gIHZhciBrID0gbnVtLmNsb25lKCk7XG4gIHdoaWxlIChrLmNtcG4oMSkgPj0gMCkge1xuICAgIHZhciB6O1xuICAgIGlmIChrLmlzT2RkKCkpIHtcbiAgICAgIHZhciBtb2QgPSBrLmFuZGxuKHdzIC0gMSk7XG4gICAgICBpZiAobW9kID4gKHdzID4+IDEpIC0gMSlcbiAgICAgICAgeiA9ICh3cyA+PiAxKSAtIG1vZDtcbiAgICAgIGVsc2VcbiAgICAgICAgeiA9IG1vZDtcbiAgICAgIGsuaXN1Ym4oeik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHogPSAwO1xuICAgIH1cbiAgICBuYWYucHVzaCh6KTtcblxuICAgIC8vIE9wdGltaXphdGlvbiwgc2hpZnQgYnkgd29yZCBpZiBwb3NzaWJsZVxuICAgIHZhciBzaGlmdCA9IChrLmNtcG4oMCkgIT09IDAgJiYgay5hbmRsbih3cyAtIDEpID09PSAwKSA/ICh3ICsgMSkgOiAxO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgc2hpZnQ7IGkrKylcbiAgICAgIG5hZi5wdXNoKDApO1xuICAgIGsuaXVzaHJuKHNoaWZ0KTtcbiAgfVxuXG4gIHJldHVybiBuYWY7XG59XG51dGlscy5nZXROQUYgPSBnZXROQUY7XG5cbi8vIFJlcHJlc2VudCBrMSwgazIgaW4gYSBKb2ludCBTcGFyc2UgRm9ybVxuZnVuY3Rpb24gZ2V0SlNGKGsxLCBrMikge1xuICB2YXIganNmID0gW1xuICAgIFtdLFxuICAgIFtdXG4gIF07XG5cbiAgazEgPSBrMS5jbG9uZSgpO1xuICBrMiA9IGsyLmNsb25lKCk7XG4gIHZhciBkMSA9IDA7XG4gIHZhciBkMiA9IDA7XG4gIHdoaWxlIChrMS5jbXBuKC1kMSkgPiAwIHx8IGsyLmNtcG4oLWQyKSA+IDApIHtcblxuICAgIC8vIEZpcnN0IHBoYXNlXG4gICAgdmFyIG0xNCA9IChrMS5hbmRsbigzKSArIGQxKSAmIDM7XG4gICAgdmFyIG0yNCA9IChrMi5hbmRsbigzKSArIGQyKSAmIDM7XG4gICAgaWYgKG0xNCA9PT0gMylcbiAgICAgIG0xNCA9IC0xO1xuICAgIGlmIChtMjQgPT09IDMpXG4gICAgICBtMjQgPSAtMTtcbiAgICB2YXIgdTE7XG4gICAgaWYgKChtMTQgJiAxKSA9PT0gMCkge1xuICAgICAgdTEgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbTggPSAoazEuYW5kbG4oNykgKyBkMSkgJiA3O1xuICAgICAgaWYgKChtOCA9PT0gMyB8fCBtOCA9PT0gNSkgJiYgbTI0ID09PSAyKVxuICAgICAgICB1MSA9IC1tMTQ7XG4gICAgICBlbHNlXG4gICAgICAgIHUxID0gbTE0O1xuICAgIH1cbiAgICBqc2ZbMF0ucHVzaCh1MSk7XG5cbiAgICB2YXIgdTI7XG4gICAgaWYgKChtMjQgJiAxKSA9PT0gMCkge1xuICAgICAgdTIgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbTggPSAoazIuYW5kbG4oNykgKyBkMikgJiA3O1xuICAgICAgaWYgKChtOCA9PT0gMyB8fCBtOCA9PT0gNSkgJiYgbTE0ID09PSAyKVxuICAgICAgICB1MiA9IC1tMjQ7XG4gICAgICBlbHNlXG4gICAgICAgIHUyID0gbTI0O1xuICAgIH1cbiAgICBqc2ZbMV0ucHVzaCh1Mik7XG5cbiAgICAvLyBTZWNvbmQgcGhhc2VcbiAgICBpZiAoMiAqIGQxID09PSB1MSArIDEpXG4gICAgICBkMSA9IDEgLSBkMTtcbiAgICBpZiAoMiAqIGQyID09PSB1MiArIDEpXG4gICAgICBkMiA9IDEgLSBkMjtcbiAgICBrMS5pdXNocm4oMSk7XG4gICAgazIuaXVzaHJuKDEpO1xuICB9XG5cbiAgcmV0dXJuIGpzZjtcbn1cbnV0aWxzLmdldEpTRiA9IGdldEpTRjtcblxuZnVuY3Rpb24gY2FjaGVkUHJvcGVydHkob2JqLCBuYW1lLCBjb21wdXRlcikge1xuICB2YXIga2V5ID0gJ18nICsgbmFtZTtcbiAgb2JqLnByb3RvdHlwZVtuYW1lXSA9IGZ1bmN0aW9uIGNhY2hlZFByb3BlcnR5KCkge1xuICAgIHJldHVybiB0aGlzW2tleV0gIT09IHVuZGVmaW5lZCA/IHRoaXNba2V5XSA6XG4gICAgICAgICAgIHRoaXNba2V5XSA9IGNvbXB1dGVyLmNhbGwodGhpcyk7XG4gIH07XG59XG51dGlscy5jYWNoZWRQcm9wZXJ0eSA9IGNhY2hlZFByb3BlcnR5O1xuXG5mdW5jdGlvbiBwYXJzZUJ5dGVzKGJ5dGVzKSB7XG4gIHJldHVybiB0eXBlb2YgYnl0ZXMgPT09ICdzdHJpbmcnID8gdXRpbHMudG9BcnJheShieXRlcywgJ2hleCcpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlcztcbn1cbnV0aWxzLnBhcnNlQnl0ZXMgPSBwYXJzZUJ5dGVzO1xuXG5mdW5jdGlvbiBpbnRGcm9tTEUoYnl0ZXMpIHtcbiAgcmV0dXJuIG5ldyBCTihieXRlcywgJ2hleCcsICdsZScpO1xufVxudXRpbHMuaW50RnJvbUxFID0gaW50RnJvbUxFO1xuXG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwiX2FyZ3NcIjogW1xuICAgIFtcbiAgICAgIHtcbiAgICAgICAgXCJyYXdcIjogXCJlbGxpcHRpY0BeNi4wLjBcIixcbiAgICAgICAgXCJzY29wZVwiOiBudWxsLFxuICAgICAgICBcImVzY2FwZWROYW1lXCI6IFwiZWxsaXB0aWNcIixcbiAgICAgICAgXCJuYW1lXCI6IFwiZWxsaXB0aWNcIixcbiAgICAgICAgXCJyYXdTcGVjXCI6IFwiXjYuMC4wXCIsXG4gICAgICAgIFwic3BlY1wiOiBcIj49Ni4wLjAgPDcuMC4wXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInJhbmdlXCJcbiAgICAgIH0sXG4gICAgICBcIi9Vc2Vycy9jaGFybGVzL1NvdXJjZXMvZ28vc3JjL2dpdGh1Yi5jb20vcHlkaW8vY2VsbHMvZnJvbnRlbmQvZnJvbnQtc3J2L2Fzc2V0cy9ndWkuYWpheC9ub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1zaWduXCJcbiAgICBdXG4gIF0sXG4gIFwiX2Zyb21cIjogXCJlbGxpcHRpY0A+PTYuMC4wIDw3LjAuMFwiLFxuICBcIl9pZFwiOiBcImVsbGlwdGljQDYuNC4wXCIsXG4gIFwiX2luQ2FjaGVcIjogdHJ1ZSxcbiAgXCJfbG9jYXRpb25cIjogXCIvZWxsaXB0aWNcIixcbiAgXCJfbm9kZVZlcnNpb25cIjogXCI3LjAuMFwiLFxuICBcIl9ucG1PcGVyYXRpb25hbEludGVybmFsXCI6IHtcbiAgICBcImhvc3RcIjogXCJwYWNrYWdlcy0xOC1lYXN0LmludGVybmFsLm5wbWpzLmNvbVwiLFxuICAgIFwidG1wXCI6IFwidG1wL2VsbGlwdGljLTYuNC4wLnRnel8xNDg3Nzk4ODY2NDI4XzAuMzA1MTA2MjAxOTA3NjE5ODNcIlxuICB9LFxuICBcIl9ucG1Vc2VyXCI6IHtcbiAgICBcIm5hbWVcIjogXCJpbmR1dG55XCIsXG4gICAgXCJlbWFpbFwiOiBcImZlZG9yQGluZHV0bnkuY29tXCJcbiAgfSxcbiAgXCJfbnBtVmVyc2lvblwiOiBcIjMuMTAuOFwiLFxuICBcIl9waGFudG9tQ2hpbGRyZW5cIjoge30sXG4gIFwiX3JlcXVlc3RlZFwiOiB7XG4gICAgXCJyYXdcIjogXCJlbGxpcHRpY0BeNi4wLjBcIixcbiAgICBcInNjb3BlXCI6IG51bGwsXG4gICAgXCJlc2NhcGVkTmFtZVwiOiBcImVsbGlwdGljXCIsXG4gICAgXCJuYW1lXCI6IFwiZWxsaXB0aWNcIixcbiAgICBcInJhd1NwZWNcIjogXCJeNi4wLjBcIixcbiAgICBcInNwZWNcIjogXCI+PTYuMC4wIDw3LjAuMFwiLFxuICAgIFwidHlwZVwiOiBcInJhbmdlXCJcbiAgfSxcbiAgXCJfcmVxdWlyZWRCeVwiOiBbXG4gICAgXCIvYnJvd3NlcmlmeS1zaWduXCIsXG4gICAgXCIvY3JlYXRlLWVjZGhcIlxuICBdLFxuICBcIl9yZXNvbHZlZFwiOiBcImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VsbGlwdGljLy0vZWxsaXB0aWMtNi40LjAudGd6XCIsXG4gIFwiX3NoYXN1bVwiOiBcImNhYzlhZjg3NjJjODU4MzYxODcwMDNjOGRmZTE5M2U1ZTJlYWU1ZGZcIixcbiAgXCJfc2hyaW5rd3JhcFwiOiBudWxsLFxuICBcIl9zcGVjXCI6IFwiZWxsaXB0aWNAXjYuMC4wXCIsXG4gIFwiX3doZXJlXCI6IFwiL1VzZXJzL2NoYXJsZXMvU291cmNlcy9nby9zcmMvZ2l0aHViLmNvbS9weWRpby9jZWxscy9mcm9udGVuZC9mcm9udC1zcnYvYXNzZXRzL2d1aS5hamF4L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5LXNpZ25cIixcbiAgXCJhdXRob3JcIjoge1xuICAgIFwibmFtZVwiOiBcIkZlZG9yIEluZHV0bnlcIixcbiAgICBcImVtYWlsXCI6IFwiZmVkb3JAaW5kdXRueS5jb21cIlxuICB9LFxuICBcImJ1Z3NcIjoge1xuICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL2luZHV0bnkvZWxsaXB0aWMvaXNzdWVzXCJcbiAgfSxcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiYm4uanNcIjogXCJeNC40LjBcIixcbiAgICBcImJyb3JhbmRcIjogXCJeMS4wLjFcIixcbiAgICBcImhhc2guanNcIjogXCJeMS4wLjBcIixcbiAgICBcImhtYWMtZHJiZ1wiOiBcIl4xLjAuMFwiLFxuICAgIFwiaW5oZXJpdHNcIjogXCJeMi4wLjFcIixcbiAgICBcIm1pbmltYWxpc3RpYy1hc3NlcnRcIjogXCJeMS4wLjBcIixcbiAgICBcIm1pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHNcIjogXCJeMS4wLjBcIlxuICB9LFxuICBcImRlc2NyaXB0aW9uXCI6IFwiRUMgY3J5cHRvZ3JhcGh5XCIsXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcImJyZnNcIjogXCJeMS40LjNcIixcbiAgICBcImNvdmVyYWxsc1wiOiBcIl4yLjExLjNcIixcbiAgICBcImdydW50XCI6IFwiXjAuNC41XCIsXG4gICAgXCJncnVudC1icm93c2VyaWZ5XCI6IFwiXjUuMC4wXCIsXG4gICAgXCJncnVudC1jbGlcIjogXCJeMS4yLjBcIixcbiAgICBcImdydW50LWNvbnRyaWItY29ubmVjdFwiOiBcIl4xLjAuMFwiLFxuICAgIFwiZ3J1bnQtY29udHJpYi1jb3B5XCI6IFwiXjEuMC4wXCIsXG4gICAgXCJncnVudC1jb250cmliLXVnbGlmeVwiOiBcIl4xLjAuMVwiLFxuICAgIFwiZ3J1bnQtbW9jaGEtaXN0YW5idWxcIjogXCJeMy4wLjFcIixcbiAgICBcImdydW50LXNhdWNlbGFic1wiOiBcIl44LjYuMlwiLFxuICAgIFwiaXN0YW5idWxcIjogXCJeMC40LjJcIixcbiAgICBcImpzY3NcIjogXCJeMi45LjBcIixcbiAgICBcImpzaGludFwiOiBcIl4yLjYuMFwiLFxuICAgIFwibW9jaGFcIjogXCJeMi4xLjBcIlxuICB9LFxuICBcImRpcmVjdG9yaWVzXCI6IHt9LFxuICBcImRpc3RcIjoge1xuICAgIFwic2hhc3VtXCI6IFwiY2FjOWFmODc2MmM4NTgzNjE4NzAwM2M4ZGZlMTkzZTVlMmVhZTVkZlwiLFxuICAgIFwidGFyYmFsbFwiOiBcImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VsbGlwdGljLy0vZWxsaXB0aWMtNi40LjAudGd6XCJcbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJsaWJcIlxuICBdLFxuICBcImdpdEhlYWRcIjogXCI2YjBkMmI3NmNhYWU5MTQ3MTY0OWM4ZTIxZjBiMWQzYmEwZjk2MDkwXCIsXG4gIFwiaG9tZXBhZ2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vaW5kdXRueS9lbGxpcHRpY1wiLFxuICBcImtleXdvcmRzXCI6IFtcbiAgICBcIkVDXCIsXG4gICAgXCJFbGxpcHRpY1wiLFxuICAgIFwiY3VydmVcIixcbiAgICBcIkNyeXB0b2dyYXBoeVwiXG4gIF0sXG4gIFwibGljZW5zZVwiOiBcIk1JVFwiLFxuICBcIm1haW5cIjogXCJsaWIvZWxsaXB0aWMuanNcIixcbiAgXCJtYWludGFpbmVyc1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiaW5kdXRueVwiLFxuICAgICAgXCJlbWFpbFwiOiBcImZlZG9yQGluZHV0bnkuY29tXCJcbiAgICB9XG4gIF0sXG4gIFwibmFtZVwiOiBcImVsbGlwdGljXCIsXG4gIFwib3B0aW9uYWxEZXBlbmRlbmNpZXNcIjoge30sXG4gIFwicmVhZG1lXCI6IFwiRVJST1I6IE5vIFJFQURNRSBkYXRhIGZvdW5kIVwiLFxuICBcInJlcG9zaXRvcnlcIjoge1xuICAgIFwidHlwZVwiOiBcImdpdFwiLFxuICAgIFwidXJsXCI6IFwiZ2l0K3NzaDovL2dpdEBnaXRodWIuY29tL2luZHV0bnkvZWxsaXB0aWMuZ2l0XCJcbiAgfSxcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImpzY3NcIjogXCJqc2NzIGJlbmNobWFya3MvKi5qcyBsaWIvKi5qcyBsaWIvKiovKi5qcyBsaWIvKiovKiovKi5qcyB0ZXN0L2luZGV4LmpzXCIsXG4gICAgXCJqc2hpbnRcIjogXCJqc2NzIGJlbmNobWFya3MvKi5qcyBsaWIvKi5qcyBsaWIvKiovKi5qcyBsaWIvKiovKiovKi5qcyB0ZXN0L2luZGV4LmpzXCIsXG4gICAgXCJsaW50XCI6IFwibnBtIHJ1biBqc2NzICYmIG5wbSBydW4ganNoaW50XCIsXG4gICAgXCJ0ZXN0XCI6IFwibnBtIHJ1biBsaW50ICYmIG5wbSBydW4gdW5pdFwiLFxuICAgIFwidW5pdFwiOiBcImlzdGFuYnVsIHRlc3QgX21vY2hhIC0tcmVwb3J0ZXI9c3BlYyB0ZXN0L2luZGV4LmpzXCIsXG4gICAgXCJ2ZXJzaW9uXCI6IFwiZ3J1bnQgZGlzdCAmJiBnaXQgYWRkIGRpc3QvXCJcbiAgfSxcbiAgXCJ2ZXJzaW9uXCI6IFwiNi40LjBcIlxufVxuIiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgTUQ1ID0gcmVxdWlyZSgnbWQ1LmpzJylcblxuLyogZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovXG5mdW5jdGlvbiBFVlBfQnl0ZXNUb0tleSAocGFzc3dvcmQsIHNhbHQsIGtleUJpdHMsIGl2TGVuKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHBhc3N3b3JkKSkgcGFzc3dvcmQgPSBCdWZmZXIuZnJvbShwYXNzd29yZCwgJ2JpbmFyeScpXG4gIGlmIChzYWx0KSB7XG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoc2FsdCkpIHNhbHQgPSBCdWZmZXIuZnJvbShzYWx0LCAnYmluYXJ5JylcbiAgICBpZiAoc2FsdC5sZW5ndGggIT09IDgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzYWx0IHNob3VsZCBiZSBCdWZmZXIgd2l0aCA4IGJ5dGUgbGVuZ3RoJylcbiAgfVxuXG4gIHZhciBrZXlMZW4gPSBrZXlCaXRzIC8gOFxuICB2YXIga2V5ID0gQnVmZmVyLmFsbG9jKGtleUxlbilcbiAgdmFyIGl2ID0gQnVmZmVyLmFsbG9jKGl2TGVuIHx8IDApXG4gIHZhciB0bXAgPSBCdWZmZXIuYWxsb2MoMClcblxuICB3aGlsZSAoa2V5TGVuID4gMCB8fCBpdkxlbiA+IDApIHtcbiAgICB2YXIgaGFzaCA9IG5ldyBNRDUoKVxuICAgIGhhc2gudXBkYXRlKHRtcClcbiAgICBoYXNoLnVwZGF0ZShwYXNzd29yZClcbiAgICBpZiAoc2FsdCkgaGFzaC51cGRhdGUoc2FsdClcbiAgICB0bXAgPSBoYXNoLmRpZ2VzdCgpXG5cbiAgICB2YXIgdXNlZCA9IDBcblxuICAgIGlmIChrZXlMZW4gPiAwKSB7XG4gICAgICB2YXIga2V5U3RhcnQgPSBrZXkubGVuZ3RoIC0ga2V5TGVuXG4gICAgICB1c2VkID0gTWF0aC5taW4oa2V5TGVuLCB0bXAubGVuZ3RoKVxuICAgICAgdG1wLmNvcHkoa2V5LCBrZXlTdGFydCwgMCwgdXNlZClcbiAgICAgIGtleUxlbiAtPSB1c2VkXG4gICAgfVxuXG4gICAgaWYgKHVzZWQgPCB0bXAubGVuZ3RoICYmIGl2TGVuID4gMCkge1xuICAgICAgdmFyIGl2U3RhcnQgPSBpdi5sZW5ndGggLSBpdkxlblxuICAgICAgdmFyIGxlbmd0aCA9IE1hdGgubWluKGl2TGVuLCB0bXAubGVuZ3RoIC0gdXNlZClcbiAgICAgIHRtcC5jb3B5KGl2LCBpdlN0YXJ0LCB1c2VkLCB1c2VkICsgbGVuZ3RoKVxuICAgICAgaXZMZW4gLT0gbGVuZ3RoXG4gICAgfVxuICB9XG5cbiAgdG1wLmZpbGwoMClcbiAgcmV0dXJuIHsga2V5OiBrZXksIGl2OiBpdiB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRVZQX0J5dGVzVG9LZXlcbiIsIid1c2Ugc3RyaWN0J1xudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgVHJhbnNmb3JtID0gcmVxdWlyZSgnc3RyZWFtJykuVHJhbnNmb3JtXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG5cbmZ1bmN0aW9uIHRocm93SWZOb3RTdHJpbmdPckJ1ZmZlciAodmFsLCBwcmVmaXgpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodmFsKSAmJiB0eXBlb2YgdmFsICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocHJlZml4ICsgJyBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyJylcbiAgfVxufVxuXG5mdW5jdGlvbiBIYXNoQmFzZSAoYmxvY2tTaXplKSB7XG4gIFRyYW5zZm9ybS5jYWxsKHRoaXMpXG5cbiAgdGhpcy5fYmxvY2sgPSBCdWZmZXIuYWxsb2NVbnNhZmUoYmxvY2tTaXplKVxuICB0aGlzLl9ibG9ja1NpemUgPSBibG9ja1NpemVcbiAgdGhpcy5fYmxvY2tPZmZzZXQgPSAwXG4gIHRoaXMuX2xlbmd0aCA9IFswLCAwLCAwLCAwXVxuXG4gIHRoaXMuX2ZpbmFsaXplZCA9IGZhbHNlXG59XG5cbmluaGVyaXRzKEhhc2hCYXNlLCBUcmFuc2Zvcm0pXG5cbkhhc2hCYXNlLnByb3RvdHlwZS5fdHJhbnNmb3JtID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZywgY2FsbGJhY2spIHtcbiAgdmFyIGVycm9yID0gbnVsbFxuICB0cnkge1xuICAgIHRoaXMudXBkYXRlKGNodW5rLCBlbmNvZGluZylcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgZXJyb3IgPSBlcnJcbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKVxufVxuXG5IYXNoQmFzZS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHZhciBlcnJvciA9IG51bGxcbiAgdHJ5IHtcbiAgICB0aGlzLnB1c2godGhpcy5kaWdlc3QoKSlcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgZXJyb3IgPSBlcnJcbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9yKVxufVxuXG5IYXNoQmFzZS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEsIGVuY29kaW5nKSB7XG4gIHRocm93SWZOb3RTdHJpbmdPckJ1ZmZlcihkYXRhLCAnRGF0YScpXG4gIGlmICh0aGlzLl9maW5hbGl6ZWQpIHRocm93IG5ldyBFcnJvcignRGlnZXN0IGFscmVhZHkgY2FsbGVkJylcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoZGF0YSkpIGRhdGEgPSBCdWZmZXIuZnJvbShkYXRhLCBlbmNvZGluZylcblxuICAvLyBjb25zdW1lIGRhdGFcbiAgdmFyIGJsb2NrID0gdGhpcy5fYmxvY2tcbiAgdmFyIG9mZnNldCA9IDBcbiAgd2hpbGUgKHRoaXMuX2Jsb2NrT2Zmc2V0ICsgZGF0YS5sZW5ndGggLSBvZmZzZXQgPj0gdGhpcy5fYmxvY2tTaXplKSB7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMuX2Jsb2NrT2Zmc2V0OyBpIDwgdGhpcy5fYmxvY2tTaXplOykgYmxvY2tbaSsrXSA9IGRhdGFbb2Zmc2V0KytdXG4gICAgdGhpcy5fdXBkYXRlKClcbiAgICB0aGlzLl9ibG9ja09mZnNldCA9IDBcbiAgfVxuICB3aGlsZSAob2Zmc2V0IDwgZGF0YS5sZW5ndGgpIGJsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdID0gZGF0YVtvZmZzZXQrK11cblxuICAvLyB1cGRhdGUgbGVuZ3RoXG4gIGZvciAodmFyIGogPSAwLCBjYXJyeSA9IGRhdGEubGVuZ3RoICogODsgY2FycnkgPiAwOyArK2opIHtcbiAgICB0aGlzLl9sZW5ndGhbal0gKz0gY2FycnlcbiAgICBjYXJyeSA9ICh0aGlzLl9sZW5ndGhbal0gLyAweDAxMDAwMDAwMDApIHwgMFxuICAgIGlmIChjYXJyeSA+IDApIHRoaXMuX2xlbmd0aFtqXSAtPSAweDAxMDAwMDAwMDAgKiBjYXJyeVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuSGFzaEJhc2UucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gIHRocm93IG5ldyBFcnJvcignX3VwZGF0ZSBpcyBub3QgaW1wbGVtZW50ZWQnKVxufVxuXG5IYXNoQmFzZS5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKGVuY29kaW5nKSB7XG4gIGlmICh0aGlzLl9maW5hbGl6ZWQpIHRocm93IG5ldyBFcnJvcignRGlnZXN0IGFscmVhZHkgY2FsbGVkJylcbiAgdGhpcy5fZmluYWxpemVkID0gdHJ1ZVxuXG4gIHZhciBkaWdlc3QgPSB0aGlzLl9kaWdlc3QoKVxuICBpZiAoZW5jb2RpbmcgIT09IHVuZGVmaW5lZCkgZGlnZXN0ID0gZGlnZXN0LnRvU3RyaW5nKGVuY29kaW5nKVxuXG4gIC8vIHJlc2V0IHN0YXRlXG4gIHRoaXMuX2Jsb2NrLmZpbGwoMClcbiAgdGhpcy5fYmxvY2tPZmZzZXQgPSAwXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgKytpKSB0aGlzLl9sZW5ndGhbaV0gPSAwXG5cbiAgcmV0dXJuIGRpZ2VzdFxufVxuXG5IYXNoQmFzZS5wcm90b3R5cGUuX2RpZ2VzdCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdfZGlnZXN0IGlzIG5vdCBpbXBsZW1lbnRlZCcpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gSGFzaEJhc2VcbiIsInZhciBoYXNoID0gZXhwb3J0cztcblxuaGFzaC51dGlscyA9IHJlcXVpcmUoJy4vaGFzaC91dGlscycpO1xuaGFzaC5jb21tb24gPSByZXF1aXJlKCcuL2hhc2gvY29tbW9uJyk7XG5oYXNoLnNoYSA9IHJlcXVpcmUoJy4vaGFzaC9zaGEnKTtcbmhhc2gucmlwZW1kID0gcmVxdWlyZSgnLi9oYXNoL3JpcGVtZCcpO1xuaGFzaC5obWFjID0gcmVxdWlyZSgnLi9oYXNoL2htYWMnKTtcblxuLy8gUHJveHkgaGFzaCBmdW5jdGlvbnMgdG8gdGhlIG1haW4gb2JqZWN0XG5oYXNoLnNoYTEgPSBoYXNoLnNoYS5zaGExO1xuaGFzaC5zaGEyNTYgPSBoYXNoLnNoYS5zaGEyNTY7XG5oYXNoLnNoYTIyNCA9IGhhc2guc2hhLnNoYTIyNDtcbmhhc2guc2hhMzg0ID0gaGFzaC5zaGEuc2hhMzg0O1xuaGFzaC5zaGE1MTIgPSBoYXNoLnNoYS5zaGE1MTI7XG5oYXNoLnJpcGVtZDE2MCA9IGhhc2gucmlwZW1kLnJpcGVtZDE2MDtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xudmFyIGFzc2VydCA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1hc3NlcnQnKTtcblxuZnVuY3Rpb24gQmxvY2tIYXNoKCkge1xuICB0aGlzLnBlbmRpbmcgPSBudWxsO1xuICB0aGlzLnBlbmRpbmdUb3RhbCA9IDA7XG4gIHRoaXMuYmxvY2tTaXplID0gdGhpcy5jb25zdHJ1Y3Rvci5ibG9ja1NpemU7XG4gIHRoaXMub3V0U2l6ZSA9IHRoaXMuY29uc3RydWN0b3Iub3V0U2l6ZTtcbiAgdGhpcy5obWFjU3RyZW5ndGggPSB0aGlzLmNvbnN0cnVjdG9yLmhtYWNTdHJlbmd0aDtcbiAgdGhpcy5wYWRMZW5ndGggPSB0aGlzLmNvbnN0cnVjdG9yLnBhZExlbmd0aCAvIDg7XG4gIHRoaXMuZW5kaWFuID0gJ2JpZyc7XG5cbiAgdGhpcy5fZGVsdGE4ID0gdGhpcy5ibG9ja1NpemUgLyA4O1xuICB0aGlzLl9kZWx0YTMyID0gdGhpcy5ibG9ja1NpemUgLyAzMjtcbn1cbmV4cG9ydHMuQmxvY2tIYXNoID0gQmxvY2tIYXNoO1xuXG5CbG9ja0hhc2gucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIHVwZGF0ZShtc2csIGVuYykge1xuICAvLyBDb252ZXJ0IG1lc3NhZ2UgdG8gYXJyYXksIHBhZCBpdCwgYW5kIGpvaW4gaW50byAzMmJpdCBibG9ja3NcbiAgbXNnID0gdXRpbHMudG9BcnJheShtc2csIGVuYyk7XG4gIGlmICghdGhpcy5wZW5kaW5nKVxuICAgIHRoaXMucGVuZGluZyA9IG1zZztcbiAgZWxzZVxuICAgIHRoaXMucGVuZGluZyA9IHRoaXMucGVuZGluZy5jb25jYXQobXNnKTtcbiAgdGhpcy5wZW5kaW5nVG90YWwgKz0gbXNnLmxlbmd0aDtcblxuICAvLyBFbm91Z2ggZGF0YSwgdHJ5IHVwZGF0aW5nXG4gIGlmICh0aGlzLnBlbmRpbmcubGVuZ3RoID49IHRoaXMuX2RlbHRhOCkge1xuICAgIG1zZyA9IHRoaXMucGVuZGluZztcblxuICAgIC8vIFByb2Nlc3MgcGVuZGluZyBkYXRhIGluIGJsb2Nrc1xuICAgIHZhciByID0gbXNnLmxlbmd0aCAlIHRoaXMuX2RlbHRhODtcbiAgICB0aGlzLnBlbmRpbmcgPSBtc2cuc2xpY2UobXNnLmxlbmd0aCAtIHIsIG1zZy5sZW5ndGgpO1xuICAgIGlmICh0aGlzLnBlbmRpbmcubGVuZ3RoID09PSAwKVxuICAgICAgdGhpcy5wZW5kaW5nID0gbnVsbDtcblxuICAgIG1zZyA9IHV0aWxzLmpvaW4zMihtc2csIDAsIG1zZy5sZW5ndGggLSByLCB0aGlzLmVuZGlhbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpICs9IHRoaXMuX2RlbHRhMzIpXG4gICAgICB0aGlzLl91cGRhdGUobXNnLCBpLCBpICsgdGhpcy5fZGVsdGEzMik7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbkJsb2NrSGFzaC5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gZGlnZXN0KGVuYykge1xuICB0aGlzLnVwZGF0ZSh0aGlzLl9wYWQoKSk7XG4gIGFzc2VydCh0aGlzLnBlbmRpbmcgPT09IG51bGwpO1xuXG4gIHJldHVybiB0aGlzLl9kaWdlc3QoZW5jKTtcbn07XG5cbkJsb2NrSGFzaC5wcm90b3R5cGUuX3BhZCA9IGZ1bmN0aW9uIHBhZCgpIHtcbiAgdmFyIGxlbiA9IHRoaXMucGVuZGluZ1RvdGFsO1xuICB2YXIgYnl0ZXMgPSB0aGlzLl9kZWx0YTg7XG4gIHZhciBrID0gYnl0ZXMgLSAoKGxlbiArIHRoaXMucGFkTGVuZ3RoKSAlIGJ5dGVzKTtcbiAgdmFyIHJlcyA9IG5ldyBBcnJheShrICsgdGhpcy5wYWRMZW5ndGgpO1xuICByZXNbMF0gPSAweDgwO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGs7IGkrKylcbiAgICByZXNbaV0gPSAwO1xuXG4gIC8vIEFwcGVuZCBsZW5ndGhcbiAgbGVuIDw8PSAzO1xuICBpZiAodGhpcy5lbmRpYW4gPT09ICdiaWcnKSB7XG4gICAgZm9yICh2YXIgdCA9IDg7IHQgPCB0aGlzLnBhZExlbmd0aDsgdCsrKVxuICAgICAgcmVzW2krK10gPSAwO1xuXG4gICAgcmVzW2krK10gPSAwO1xuICAgIHJlc1tpKytdID0gMDtcbiAgICByZXNbaSsrXSA9IDA7XG4gICAgcmVzW2krK10gPSAwO1xuICAgIHJlc1tpKytdID0gKGxlbiA+Pj4gMjQpICYgMHhmZjtcbiAgICByZXNbaSsrXSA9IChsZW4gPj4+IDE2KSAmIDB4ZmY7XG4gICAgcmVzW2krK10gPSAobGVuID4+PiA4KSAmIDB4ZmY7XG4gICAgcmVzW2krK10gPSBsZW4gJiAweGZmO1xuICB9IGVsc2Uge1xuICAgIHJlc1tpKytdID0gbGVuICYgMHhmZjtcbiAgICByZXNbaSsrXSA9IChsZW4gPj4+IDgpICYgMHhmZjtcbiAgICByZXNbaSsrXSA9IChsZW4gPj4+IDE2KSAmIDB4ZmY7XG4gICAgcmVzW2krK10gPSAobGVuID4+PiAyNCkgJiAweGZmO1xuICAgIHJlc1tpKytdID0gMDtcbiAgICByZXNbaSsrXSA9IDA7XG4gICAgcmVzW2krK10gPSAwO1xuICAgIHJlc1tpKytdID0gMDtcblxuICAgIGZvciAodCA9IDg7IHQgPCB0aGlzLnBhZExlbmd0aDsgdCsrKVxuICAgICAgcmVzW2krK10gPSAwO1xuICB9XG5cbiAgcmV0dXJuIHJlcztcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcbnZhciBhc3NlcnQgPSByZXF1aXJlKCdtaW5pbWFsaXN0aWMtYXNzZXJ0Jyk7XG5cbmZ1bmN0aW9uIEhtYWMoaGFzaCwga2V5LCBlbmMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIEhtYWMpKVxuICAgIHJldHVybiBuZXcgSG1hYyhoYXNoLCBrZXksIGVuYyk7XG4gIHRoaXMuSGFzaCA9IGhhc2g7XG4gIHRoaXMuYmxvY2tTaXplID0gaGFzaC5ibG9ja1NpemUgLyA4O1xuICB0aGlzLm91dFNpemUgPSBoYXNoLm91dFNpemUgLyA4O1xuICB0aGlzLmlubmVyID0gbnVsbDtcbiAgdGhpcy5vdXRlciA9IG51bGw7XG5cbiAgdGhpcy5faW5pdCh1dGlscy50b0FycmF5KGtleSwgZW5jKSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEhtYWM7XG5cbkhtYWMucHJvdG90eXBlLl9pbml0ID0gZnVuY3Rpb24gaW5pdChrZXkpIHtcbiAgLy8gU2hvcnRlbiBrZXksIGlmIG5lZWRlZFxuICBpZiAoa2V5Lmxlbmd0aCA+IHRoaXMuYmxvY2tTaXplKVxuICAgIGtleSA9IG5ldyB0aGlzLkhhc2goKS51cGRhdGUoa2V5KS5kaWdlc3QoKTtcbiAgYXNzZXJ0KGtleS5sZW5ndGggPD0gdGhpcy5ibG9ja1NpemUpO1xuXG4gIC8vIEFkZCBwYWRkaW5nIHRvIGtleVxuICBmb3IgKHZhciBpID0ga2V5Lmxlbmd0aDsgaSA8IHRoaXMuYmxvY2tTaXplOyBpKyspXG4gICAga2V5LnB1c2goMCk7XG5cbiAgZm9yIChpID0gMDsgaSA8IGtleS5sZW5ndGg7IGkrKylcbiAgICBrZXlbaV0gXj0gMHgzNjtcbiAgdGhpcy5pbm5lciA9IG5ldyB0aGlzLkhhc2goKS51cGRhdGUoa2V5KTtcblxuICAvLyAweDM2IF4gMHg1YyA9IDB4NmFcbiAgZm9yIChpID0gMDsgaSA8IGtleS5sZW5ndGg7IGkrKylcbiAgICBrZXlbaV0gXj0gMHg2YTtcbiAgdGhpcy5vdXRlciA9IG5ldyB0aGlzLkhhc2goKS51cGRhdGUoa2V5KTtcbn07XG5cbkhtYWMucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIHVwZGF0ZShtc2csIGVuYykge1xuICB0aGlzLmlubmVyLnVwZGF0ZShtc2csIGVuYyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuSG1hYy5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gZGlnZXN0KGVuYykge1xuICB0aGlzLm91dGVyLnVwZGF0ZSh0aGlzLmlubmVyLmRpZ2VzdCgpKTtcbiAgcmV0dXJuIHRoaXMub3V0ZXIuZGlnZXN0KGVuYyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG52YXIgY29tbW9uID0gcmVxdWlyZSgnLi9jb21tb24nKTtcblxudmFyIHJvdGwzMiA9IHV0aWxzLnJvdGwzMjtcbnZhciBzdW0zMiA9IHV0aWxzLnN1bTMyO1xudmFyIHN1bTMyXzMgPSB1dGlscy5zdW0zMl8zO1xudmFyIHN1bTMyXzQgPSB1dGlscy5zdW0zMl80O1xudmFyIEJsb2NrSGFzaCA9IGNvbW1vbi5CbG9ja0hhc2g7XG5cbmZ1bmN0aW9uIFJJUEVNRDE2MCgpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFJJUEVNRDE2MCkpXG4gICAgcmV0dXJuIG5ldyBSSVBFTUQxNjAoKTtcblxuICBCbG9ja0hhc2guY2FsbCh0aGlzKTtcblxuICB0aGlzLmggPSBbIDB4Njc0NTIzMDEsIDB4ZWZjZGFiODksIDB4OThiYWRjZmUsIDB4MTAzMjU0NzYsIDB4YzNkMmUxZjAgXTtcbiAgdGhpcy5lbmRpYW4gPSAnbGl0dGxlJztcbn1cbnV0aWxzLmluaGVyaXRzKFJJUEVNRDE2MCwgQmxvY2tIYXNoKTtcbmV4cG9ydHMucmlwZW1kMTYwID0gUklQRU1EMTYwO1xuXG5SSVBFTUQxNjAuYmxvY2tTaXplID0gNTEyO1xuUklQRU1EMTYwLm91dFNpemUgPSAxNjA7XG5SSVBFTUQxNjAuaG1hY1N0cmVuZ3RoID0gMTkyO1xuUklQRU1EMTYwLnBhZExlbmd0aCA9IDY0O1xuXG5SSVBFTUQxNjAucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiB1cGRhdGUobXNnLCBzdGFydCkge1xuICB2YXIgQSA9IHRoaXMuaFswXTtcbiAgdmFyIEIgPSB0aGlzLmhbMV07XG4gIHZhciBDID0gdGhpcy5oWzJdO1xuICB2YXIgRCA9IHRoaXMuaFszXTtcbiAgdmFyIEUgPSB0aGlzLmhbNF07XG4gIHZhciBBaCA9IEE7XG4gIHZhciBCaCA9IEI7XG4gIHZhciBDaCA9IEM7XG4gIHZhciBEaCA9IEQ7XG4gIHZhciBFaCA9IEU7XG4gIGZvciAodmFyIGogPSAwOyBqIDwgODA7IGorKykge1xuICAgIHZhciBUID0gc3VtMzIoXG4gICAgICByb3RsMzIoXG4gICAgICAgIHN1bTMyXzQoQSwgZihqLCBCLCBDLCBEKSwgbXNnW3Jbal0gKyBzdGFydF0sIEsoaikpLFxuICAgICAgICBzW2pdKSxcbiAgICAgIEUpO1xuICAgIEEgPSBFO1xuICAgIEUgPSBEO1xuICAgIEQgPSByb3RsMzIoQywgMTApO1xuICAgIEMgPSBCO1xuICAgIEIgPSBUO1xuICAgIFQgPSBzdW0zMihcbiAgICAgIHJvdGwzMihcbiAgICAgICAgc3VtMzJfNChBaCwgZig3OSAtIGosIEJoLCBDaCwgRGgpLCBtc2dbcmhbal0gKyBzdGFydF0sIEtoKGopKSxcbiAgICAgICAgc2hbal0pLFxuICAgICAgRWgpO1xuICAgIEFoID0gRWg7XG4gICAgRWggPSBEaDtcbiAgICBEaCA9IHJvdGwzMihDaCwgMTApO1xuICAgIENoID0gQmg7XG4gICAgQmggPSBUO1xuICB9XG4gIFQgPSBzdW0zMl8zKHRoaXMuaFsxXSwgQywgRGgpO1xuICB0aGlzLmhbMV0gPSBzdW0zMl8zKHRoaXMuaFsyXSwgRCwgRWgpO1xuICB0aGlzLmhbMl0gPSBzdW0zMl8zKHRoaXMuaFszXSwgRSwgQWgpO1xuICB0aGlzLmhbM10gPSBzdW0zMl8zKHRoaXMuaFs0XSwgQSwgQmgpO1xuICB0aGlzLmhbNF0gPSBzdW0zMl8zKHRoaXMuaFswXSwgQiwgQ2gpO1xuICB0aGlzLmhbMF0gPSBUO1xufTtcblxuUklQRU1EMTYwLnByb3RvdHlwZS5fZGlnZXN0ID0gZnVuY3Rpb24gZGlnZXN0KGVuYykge1xuICBpZiAoZW5jID09PSAnaGV4JylcbiAgICByZXR1cm4gdXRpbHMudG9IZXgzMih0aGlzLmgsICdsaXR0bGUnKTtcbiAgZWxzZVxuICAgIHJldHVybiB1dGlscy5zcGxpdDMyKHRoaXMuaCwgJ2xpdHRsZScpO1xufTtcblxuZnVuY3Rpb24gZihqLCB4LCB5LCB6KSB7XG4gIGlmIChqIDw9IDE1KVxuICAgIHJldHVybiB4IF4geSBeIHo7XG4gIGVsc2UgaWYgKGogPD0gMzEpXG4gICAgcmV0dXJuICh4ICYgeSkgfCAoKH54KSAmIHopO1xuICBlbHNlIGlmIChqIDw9IDQ3KVxuICAgIHJldHVybiAoeCB8ICh+eSkpIF4gejtcbiAgZWxzZSBpZiAoaiA8PSA2MylcbiAgICByZXR1cm4gKHggJiB6KSB8ICh5ICYgKH56KSk7XG4gIGVsc2VcbiAgICByZXR1cm4geCBeICh5IHwgKH56KSk7XG59XG5cbmZ1bmN0aW9uIEsoaikge1xuICBpZiAoaiA8PSAxNSlcbiAgICByZXR1cm4gMHgwMDAwMDAwMDtcbiAgZWxzZSBpZiAoaiA8PSAzMSlcbiAgICByZXR1cm4gMHg1YTgyNzk5OTtcbiAgZWxzZSBpZiAoaiA8PSA0NylcbiAgICByZXR1cm4gMHg2ZWQ5ZWJhMTtcbiAgZWxzZSBpZiAoaiA8PSA2MylcbiAgICByZXR1cm4gMHg4ZjFiYmNkYztcbiAgZWxzZVxuICAgIHJldHVybiAweGE5NTNmZDRlO1xufVxuXG5mdW5jdGlvbiBLaChqKSB7XG4gIGlmIChqIDw9IDE1KVxuICAgIHJldHVybiAweDUwYTI4YmU2O1xuICBlbHNlIGlmIChqIDw9IDMxKVxuICAgIHJldHVybiAweDVjNGRkMTI0O1xuICBlbHNlIGlmIChqIDw9IDQ3KVxuICAgIHJldHVybiAweDZkNzAzZWYzO1xuICBlbHNlIGlmIChqIDw9IDYzKVxuICAgIHJldHVybiAweDdhNmQ3NmU5O1xuICBlbHNlXG4gICAgcmV0dXJuIDB4MDAwMDAwMDA7XG59XG5cbnZhciByID0gW1xuICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LFxuICA3LCA0LCAxMywgMSwgMTAsIDYsIDE1LCAzLCAxMiwgMCwgOSwgNSwgMiwgMTQsIDExLCA4LFxuICAzLCAxMCwgMTQsIDQsIDksIDE1LCA4LCAxLCAyLCA3LCAwLCA2LCAxMywgMTEsIDUsIDEyLFxuICAxLCA5LCAxMSwgMTAsIDAsIDgsIDEyLCA0LCAxMywgMywgNywgMTUsIDE0LCA1LCA2LCAyLFxuICA0LCAwLCA1LCA5LCA3LCAxMiwgMiwgMTAsIDE0LCAxLCAzLCA4LCAxMSwgNiwgMTUsIDEzXG5dO1xuXG52YXIgcmggPSBbXG4gIDUsIDE0LCA3LCAwLCA5LCAyLCAxMSwgNCwgMTMsIDYsIDE1LCA4LCAxLCAxMCwgMywgMTIsXG4gIDYsIDExLCAzLCA3LCAwLCAxMywgNSwgMTAsIDE0LCAxNSwgOCwgMTIsIDQsIDksIDEsIDIsXG4gIDE1LCA1LCAxLCAzLCA3LCAxNCwgNiwgOSwgMTEsIDgsIDEyLCAyLCAxMCwgMCwgNCwgMTMsXG4gIDgsIDYsIDQsIDEsIDMsIDExLCAxNSwgMCwgNSwgMTIsIDIsIDEzLCA5LCA3LCAxMCwgMTQsXG4gIDEyLCAxNSwgMTAsIDQsIDEsIDUsIDgsIDcsIDYsIDIsIDEzLCAxNCwgMCwgMywgOSwgMTFcbl07XG5cbnZhciBzID0gW1xuICAxMSwgMTQsIDE1LCAxMiwgNSwgOCwgNywgOSwgMTEsIDEzLCAxNCwgMTUsIDYsIDcsIDksIDgsXG4gIDcsIDYsIDgsIDEzLCAxMSwgOSwgNywgMTUsIDcsIDEyLCAxNSwgOSwgMTEsIDcsIDEzLCAxMixcbiAgMTEsIDEzLCA2LCA3LCAxNCwgOSwgMTMsIDE1LCAxNCwgOCwgMTMsIDYsIDUsIDEyLCA3LCA1LFxuICAxMSwgMTIsIDE0LCAxNSwgMTQsIDE1LCA5LCA4LCA5LCAxNCwgNSwgNiwgOCwgNiwgNSwgMTIsXG4gIDksIDE1LCA1LCAxMSwgNiwgOCwgMTMsIDEyLCA1LCAxMiwgMTMsIDE0LCAxMSwgOCwgNSwgNlxuXTtcblxudmFyIHNoID0gW1xuICA4LCA5LCA5LCAxMSwgMTMsIDE1LCAxNSwgNSwgNywgNywgOCwgMTEsIDE0LCAxNCwgMTIsIDYsXG4gIDksIDEzLCAxNSwgNywgMTIsIDgsIDksIDExLCA3LCA3LCAxMiwgNywgNiwgMTUsIDEzLCAxMSxcbiAgOSwgNywgMTUsIDExLCA4LCA2LCA2LCAxNCwgMTIsIDEzLCA1LCAxNCwgMTMsIDEzLCA3LCA1LFxuICAxNSwgNSwgOCwgMTEsIDE0LCAxNCwgNiwgMTQsIDYsIDksIDEyLCA5LCAxMiwgNSwgMTUsIDgsXG4gIDgsIDUsIDEyLCA5LCAxMiwgNSwgMTQsIDYsIDgsIDEzLCA2LCA1LCAxNSwgMTMsIDExLCAxMVxuXTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5zaGExID0gcmVxdWlyZSgnLi9zaGEvMScpO1xuZXhwb3J0cy5zaGEyMjQgPSByZXF1aXJlKCcuL3NoYS8yMjQnKTtcbmV4cG9ydHMuc2hhMjU2ID0gcmVxdWlyZSgnLi9zaGEvMjU2Jyk7XG5leHBvcnRzLnNoYTM4NCA9IHJlcXVpcmUoJy4vc2hhLzM4NCcpO1xuZXhwb3J0cy5zaGE1MTIgPSByZXF1aXJlKCcuL3NoYS81MTInKTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcbnZhciBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKTtcbnZhciBzaGFDb21tb24gPSByZXF1aXJlKCcuL2NvbW1vbicpO1xuXG52YXIgcm90bDMyID0gdXRpbHMucm90bDMyO1xudmFyIHN1bTMyID0gdXRpbHMuc3VtMzI7XG52YXIgc3VtMzJfNSA9IHV0aWxzLnN1bTMyXzU7XG52YXIgZnRfMSA9IHNoYUNvbW1vbi5mdF8xO1xudmFyIEJsb2NrSGFzaCA9IGNvbW1vbi5CbG9ja0hhc2g7XG5cbnZhciBzaGExX0sgPSBbXG4gIDB4NUE4Mjc5OTksIDB4NkVEOUVCQTEsXG4gIDB4OEYxQkJDREMsIDB4Q0E2MkMxRDZcbl07XG5cbmZ1bmN0aW9uIFNIQTEoKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTSEExKSlcbiAgICByZXR1cm4gbmV3IFNIQTEoKTtcblxuICBCbG9ja0hhc2guY2FsbCh0aGlzKTtcbiAgdGhpcy5oID0gW1xuICAgIDB4Njc0NTIzMDEsIDB4ZWZjZGFiODksIDB4OThiYWRjZmUsXG4gICAgMHgxMDMyNTQ3NiwgMHhjM2QyZTFmMCBdO1xuICB0aGlzLlcgPSBuZXcgQXJyYXkoODApO1xufVxuXG51dGlscy5pbmhlcml0cyhTSEExLCBCbG9ja0hhc2gpO1xubW9kdWxlLmV4cG9ydHMgPSBTSEExO1xuXG5TSEExLmJsb2NrU2l6ZSA9IDUxMjtcblNIQTEub3V0U2l6ZSA9IDE2MDtcblNIQTEuaG1hY1N0cmVuZ3RoID0gODA7XG5TSEExLnBhZExlbmd0aCA9IDY0O1xuXG5TSEExLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gX3VwZGF0ZShtc2csIHN0YXJ0KSB7XG4gIHZhciBXID0gdGhpcy5XO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7IGkrKylcbiAgICBXW2ldID0gbXNnW3N0YXJ0ICsgaV07XG5cbiAgZm9yKDsgaSA8IFcubGVuZ3RoOyBpKyspXG4gICAgV1tpXSA9IHJvdGwzMihXW2kgLSAzXSBeIFdbaSAtIDhdIF4gV1tpIC0gMTRdIF4gV1tpIC0gMTZdLCAxKTtcblxuICB2YXIgYSA9IHRoaXMuaFswXTtcbiAgdmFyIGIgPSB0aGlzLmhbMV07XG4gIHZhciBjID0gdGhpcy5oWzJdO1xuICB2YXIgZCA9IHRoaXMuaFszXTtcbiAgdmFyIGUgPSB0aGlzLmhbNF07XG5cbiAgZm9yIChpID0gMDsgaSA8IFcubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcyA9IH5+KGkgLyAyMCk7XG4gICAgdmFyIHQgPSBzdW0zMl81KHJvdGwzMihhLCA1KSwgZnRfMShzLCBiLCBjLCBkKSwgZSwgV1tpXSwgc2hhMV9LW3NdKTtcbiAgICBlID0gZDtcbiAgICBkID0gYztcbiAgICBjID0gcm90bDMyKGIsIDMwKTtcbiAgICBiID0gYTtcbiAgICBhID0gdDtcbiAgfVxuXG4gIHRoaXMuaFswXSA9IHN1bTMyKHRoaXMuaFswXSwgYSk7XG4gIHRoaXMuaFsxXSA9IHN1bTMyKHRoaXMuaFsxXSwgYik7XG4gIHRoaXMuaFsyXSA9IHN1bTMyKHRoaXMuaFsyXSwgYyk7XG4gIHRoaXMuaFszXSA9IHN1bTMyKHRoaXMuaFszXSwgZCk7XG4gIHRoaXMuaFs0XSA9IHN1bTMyKHRoaXMuaFs0XSwgZSk7XG59O1xuXG5TSEExLnByb3RvdHlwZS5fZGlnZXN0ID0gZnVuY3Rpb24gZGlnZXN0KGVuYykge1xuICBpZiAoZW5jID09PSAnaGV4JylcbiAgICByZXR1cm4gdXRpbHMudG9IZXgzMih0aGlzLmgsICdiaWcnKTtcbiAgZWxzZVxuICAgIHJldHVybiB1dGlscy5zcGxpdDMyKHRoaXMuaCwgJ2JpZycpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcbnZhciBTSEEyNTYgPSByZXF1aXJlKCcuLzI1NicpO1xuXG5mdW5jdGlvbiBTSEEyMjQoKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTSEEyMjQpKVxuICAgIHJldHVybiBuZXcgU0hBMjI0KCk7XG5cbiAgU0hBMjU2LmNhbGwodGhpcyk7XG4gIHRoaXMuaCA9IFtcbiAgICAweGMxMDU5ZWQ4LCAweDM2N2NkNTA3LCAweDMwNzBkZDE3LCAweGY3MGU1OTM5LFxuICAgIDB4ZmZjMDBiMzEsIDB4Njg1ODE1MTEsIDB4NjRmOThmYTcsIDB4YmVmYTRmYTQgXTtcbn1cbnV0aWxzLmluaGVyaXRzKFNIQTIyNCwgU0hBMjU2KTtcbm1vZHVsZS5leHBvcnRzID0gU0hBMjI0O1xuXG5TSEEyMjQuYmxvY2tTaXplID0gNTEyO1xuU0hBMjI0Lm91dFNpemUgPSAyMjQ7XG5TSEEyMjQuaG1hY1N0cmVuZ3RoID0gMTkyO1xuU0hBMjI0LnBhZExlbmd0aCA9IDY0O1xuXG5TSEEyMjQucHJvdG90eXBlLl9kaWdlc3QgPSBmdW5jdGlvbiBkaWdlc3QoZW5jKSB7XG4gIC8vIEp1c3QgdHJ1bmNhdGUgb3V0cHV0XG4gIGlmIChlbmMgPT09ICdoZXgnKVxuICAgIHJldHVybiB1dGlscy50b0hleDMyKHRoaXMuaC5zbGljZSgwLCA3KSwgJ2JpZycpO1xuICBlbHNlXG4gICAgcmV0dXJuIHV0aWxzLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsIDcpLCAnYmlnJyk7XG59O1xuXG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzJyk7XG52YXIgY29tbW9uID0gcmVxdWlyZSgnLi4vY29tbW9uJyk7XG52YXIgc2hhQ29tbW9uID0gcmVxdWlyZSgnLi9jb21tb24nKTtcbnZhciBhc3NlcnQgPSByZXF1aXJlKCdtaW5pbWFsaXN0aWMtYXNzZXJ0Jyk7XG5cbnZhciBzdW0zMiA9IHV0aWxzLnN1bTMyO1xudmFyIHN1bTMyXzQgPSB1dGlscy5zdW0zMl80O1xudmFyIHN1bTMyXzUgPSB1dGlscy5zdW0zMl81O1xudmFyIGNoMzIgPSBzaGFDb21tb24uY2gzMjtcbnZhciBtYWozMiA9IHNoYUNvbW1vbi5tYWozMjtcbnZhciBzMF8yNTYgPSBzaGFDb21tb24uczBfMjU2O1xudmFyIHMxXzI1NiA9IHNoYUNvbW1vbi5zMV8yNTY7XG52YXIgZzBfMjU2ID0gc2hhQ29tbW9uLmcwXzI1NjtcbnZhciBnMV8yNTYgPSBzaGFDb21tb24uZzFfMjU2O1xuXG52YXIgQmxvY2tIYXNoID0gY29tbW9uLkJsb2NrSGFzaDtcblxudmFyIHNoYTI1Nl9LID0gW1xuICAweDQyOGEyZjk4LCAweDcxMzc0NDkxLCAweGI1YzBmYmNmLCAweGU5YjVkYmE1LFxuICAweDM5NTZjMjViLCAweDU5ZjExMWYxLCAweDkyM2Y4MmE0LCAweGFiMWM1ZWQ1LFxuICAweGQ4MDdhYTk4LCAweDEyODM1YjAxLCAweDI0MzE4NWJlLCAweDU1MGM3ZGMzLFxuICAweDcyYmU1ZDc0LCAweDgwZGViMWZlLCAweDliZGMwNmE3LCAweGMxOWJmMTc0LFxuICAweGU0OWI2OWMxLCAweGVmYmU0Nzg2LCAweDBmYzE5ZGM2LCAweDI0MGNhMWNjLFxuICAweDJkZTkyYzZmLCAweDRhNzQ4NGFhLCAweDVjYjBhOWRjLCAweDc2Zjk4OGRhLFxuICAweDk4M2U1MTUyLCAweGE4MzFjNjZkLCAweGIwMDMyN2M4LCAweGJmNTk3ZmM3LFxuICAweGM2ZTAwYmYzLCAweGQ1YTc5MTQ3LCAweDA2Y2E2MzUxLCAweDE0MjkyOTY3LFxuICAweDI3YjcwYTg1LCAweDJlMWIyMTM4LCAweDRkMmM2ZGZjLCAweDUzMzgwZDEzLFxuICAweDY1MGE3MzU0LCAweDc2NmEwYWJiLCAweDgxYzJjOTJlLCAweDkyNzIyYzg1LFxuICAweGEyYmZlOGExLCAweGE4MWE2NjRiLCAweGMyNGI4YjcwLCAweGM3NmM1MWEzLFxuICAweGQxOTJlODE5LCAweGQ2OTkwNjI0LCAweGY0MGUzNTg1LCAweDEwNmFhMDcwLFxuICAweDE5YTRjMTE2LCAweDFlMzc2YzA4LCAweDI3NDg3NzRjLCAweDM0YjBiY2I1LFxuICAweDM5MWMwY2IzLCAweDRlZDhhYTRhLCAweDViOWNjYTRmLCAweDY4MmU2ZmYzLFxuICAweDc0OGY4MmVlLCAweDc4YTU2MzZmLCAweDg0Yzg3ODE0LCAweDhjYzcwMjA4LFxuICAweDkwYmVmZmZhLCAweGE0NTA2Y2ViLCAweGJlZjlhM2Y3LCAweGM2NzE3OGYyXG5dO1xuXG5mdW5jdGlvbiBTSEEyNTYoKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTSEEyNTYpKVxuICAgIHJldHVybiBuZXcgU0hBMjU2KCk7XG5cbiAgQmxvY2tIYXNoLmNhbGwodGhpcyk7XG4gIHRoaXMuaCA9IFtcbiAgICAweDZhMDllNjY3LCAweGJiNjdhZTg1LCAweDNjNmVmMzcyLCAweGE1NGZmNTNhLFxuICAgIDB4NTEwZTUyN2YsIDB4OWIwNTY4OGMsIDB4MWY4M2Q5YWIsIDB4NWJlMGNkMTlcbiAgXTtcbiAgdGhpcy5rID0gc2hhMjU2X0s7XG4gIHRoaXMuVyA9IG5ldyBBcnJheSg2NCk7XG59XG51dGlscy5pbmhlcml0cyhTSEEyNTYsIEJsb2NrSGFzaCk7XG5tb2R1bGUuZXhwb3J0cyA9IFNIQTI1NjtcblxuU0hBMjU2LmJsb2NrU2l6ZSA9IDUxMjtcblNIQTI1Ni5vdXRTaXplID0gMjU2O1xuU0hBMjU2LmhtYWNTdHJlbmd0aCA9IDE5MjtcblNIQTI1Ni5wYWRMZW5ndGggPSA2NDtcblxuU0hBMjU2LnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gX3VwZGF0ZShtc2csIHN0YXJ0KSB7XG4gIHZhciBXID0gdGhpcy5XO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7IGkrKylcbiAgICBXW2ldID0gbXNnW3N0YXJ0ICsgaV07XG4gIGZvciAoOyBpIDwgVy5sZW5ndGg7IGkrKylcbiAgICBXW2ldID0gc3VtMzJfNChnMV8yNTYoV1tpIC0gMl0pLCBXW2kgLSA3XSwgZzBfMjU2KFdbaSAtIDE1XSksIFdbaSAtIDE2XSk7XG5cbiAgdmFyIGEgPSB0aGlzLmhbMF07XG4gIHZhciBiID0gdGhpcy5oWzFdO1xuICB2YXIgYyA9IHRoaXMuaFsyXTtcbiAgdmFyIGQgPSB0aGlzLmhbM107XG4gIHZhciBlID0gdGhpcy5oWzRdO1xuICB2YXIgZiA9IHRoaXMuaFs1XTtcbiAgdmFyIGcgPSB0aGlzLmhbNl07XG4gIHZhciBoID0gdGhpcy5oWzddO1xuXG4gIGFzc2VydCh0aGlzLmsubGVuZ3RoID09PSBXLmxlbmd0aCk7XG4gIGZvciAoaSA9IDA7IGkgPCBXLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIFQxID0gc3VtMzJfNShoLCBzMV8yNTYoZSksIGNoMzIoZSwgZiwgZyksIHRoaXMua1tpXSwgV1tpXSk7XG4gICAgdmFyIFQyID0gc3VtMzIoczBfMjU2KGEpLCBtYWozMihhLCBiLCBjKSk7XG4gICAgaCA9IGc7XG4gICAgZyA9IGY7XG4gICAgZiA9IGU7XG4gICAgZSA9IHN1bTMyKGQsIFQxKTtcbiAgICBkID0gYztcbiAgICBjID0gYjtcbiAgICBiID0gYTtcbiAgICBhID0gc3VtMzIoVDEsIFQyKTtcbiAgfVxuXG4gIHRoaXMuaFswXSA9IHN1bTMyKHRoaXMuaFswXSwgYSk7XG4gIHRoaXMuaFsxXSA9IHN1bTMyKHRoaXMuaFsxXSwgYik7XG4gIHRoaXMuaFsyXSA9IHN1bTMyKHRoaXMuaFsyXSwgYyk7XG4gIHRoaXMuaFszXSA9IHN1bTMyKHRoaXMuaFszXSwgZCk7XG4gIHRoaXMuaFs0XSA9IHN1bTMyKHRoaXMuaFs0XSwgZSk7XG4gIHRoaXMuaFs1XSA9IHN1bTMyKHRoaXMuaFs1XSwgZik7XG4gIHRoaXMuaFs2XSA9IHN1bTMyKHRoaXMuaFs2XSwgZyk7XG4gIHRoaXMuaFs3XSA9IHN1bTMyKHRoaXMuaFs3XSwgaCk7XG59O1xuXG5TSEEyNTYucHJvdG90eXBlLl9kaWdlc3QgPSBmdW5jdGlvbiBkaWdlc3QoZW5jKSB7XG4gIGlmIChlbmMgPT09ICdoZXgnKVxuICAgIHJldHVybiB1dGlscy50b0hleDMyKHRoaXMuaCwgJ2JpZycpO1xuICBlbHNlXG4gICAgcmV0dXJuIHV0aWxzLnNwbGl0MzIodGhpcy5oLCAnYmlnJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xuXG52YXIgU0hBNTEyID0gcmVxdWlyZSgnLi81MTInKTtcblxuZnVuY3Rpb24gU0hBMzg0KCkge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgU0hBMzg0KSlcbiAgICByZXR1cm4gbmV3IFNIQTM4NCgpO1xuXG4gIFNIQTUxMi5jYWxsKHRoaXMpO1xuICB0aGlzLmggPSBbXG4gICAgMHhjYmJiOWQ1ZCwgMHhjMTA1OWVkOCxcbiAgICAweDYyOWEyOTJhLCAweDM2N2NkNTA3LFxuICAgIDB4OTE1OTAxNWEsIDB4MzA3MGRkMTcsXG4gICAgMHgxNTJmZWNkOCwgMHhmNzBlNTkzOSxcbiAgICAweDY3MzMyNjY3LCAweGZmYzAwYjMxLFxuICAgIDB4OGViNDRhODcsIDB4Njg1ODE1MTEsXG4gICAgMHhkYjBjMmUwZCwgMHg2NGY5OGZhNyxcbiAgICAweDQ3YjU0ODFkLCAweGJlZmE0ZmE0IF07XG59XG51dGlscy5pbmhlcml0cyhTSEEzODQsIFNIQTUxMik7XG5tb2R1bGUuZXhwb3J0cyA9IFNIQTM4NDtcblxuU0hBMzg0LmJsb2NrU2l6ZSA9IDEwMjQ7XG5TSEEzODQub3V0U2l6ZSA9IDM4NDtcblNIQTM4NC5obWFjU3RyZW5ndGggPSAxOTI7XG5TSEEzODQucGFkTGVuZ3RoID0gMTI4O1xuXG5TSEEzODQucHJvdG90eXBlLl9kaWdlc3QgPSBmdW5jdGlvbiBkaWdlc3QoZW5jKSB7XG4gIGlmIChlbmMgPT09ICdoZXgnKVxuICAgIHJldHVybiB1dGlscy50b0hleDMyKHRoaXMuaC5zbGljZSgwLCAxMiksICdiaWcnKTtcbiAgZWxzZVxuICAgIHJldHVybiB1dGlscy5zcGxpdDMyKHRoaXMuaC5zbGljZSgwLCAxMiksICdiaWcnKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzJyk7XG52YXIgY29tbW9uID0gcmVxdWlyZSgnLi4vY29tbW9uJyk7XG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xuXG52YXIgcm90cjY0X2hpID0gdXRpbHMucm90cjY0X2hpO1xudmFyIHJvdHI2NF9sbyA9IHV0aWxzLnJvdHI2NF9sbztcbnZhciBzaHI2NF9oaSA9IHV0aWxzLnNocjY0X2hpO1xudmFyIHNocjY0X2xvID0gdXRpbHMuc2hyNjRfbG87XG52YXIgc3VtNjQgPSB1dGlscy5zdW02NDtcbnZhciBzdW02NF9oaSA9IHV0aWxzLnN1bTY0X2hpO1xudmFyIHN1bTY0X2xvID0gdXRpbHMuc3VtNjRfbG87XG52YXIgc3VtNjRfNF9oaSA9IHV0aWxzLnN1bTY0XzRfaGk7XG52YXIgc3VtNjRfNF9sbyA9IHV0aWxzLnN1bTY0XzRfbG87XG52YXIgc3VtNjRfNV9oaSA9IHV0aWxzLnN1bTY0XzVfaGk7XG52YXIgc3VtNjRfNV9sbyA9IHV0aWxzLnN1bTY0XzVfbG87XG5cbnZhciBCbG9ja0hhc2ggPSBjb21tb24uQmxvY2tIYXNoO1xuXG52YXIgc2hhNTEyX0sgPSBbXG4gIDB4NDI4YTJmOTgsIDB4ZDcyOGFlMjIsIDB4NzEzNzQ0OTEsIDB4MjNlZjY1Y2QsXG4gIDB4YjVjMGZiY2YsIDB4ZWM0ZDNiMmYsIDB4ZTliNWRiYTUsIDB4ODE4OWRiYmMsXG4gIDB4Mzk1NmMyNWIsIDB4ZjM0OGI1MzgsIDB4NTlmMTExZjEsIDB4YjYwNWQwMTksXG4gIDB4OTIzZjgyYTQsIDB4YWYxOTRmOWIsIDB4YWIxYzVlZDUsIDB4ZGE2ZDgxMTgsXG4gIDB4ZDgwN2FhOTgsIDB4YTMwMzAyNDIsIDB4MTI4MzViMDEsIDB4NDU3MDZmYmUsXG4gIDB4MjQzMTg1YmUsIDB4NGVlNGIyOGMsIDB4NTUwYzdkYzMsIDB4ZDVmZmI0ZTIsXG4gIDB4NzJiZTVkNzQsIDB4ZjI3Yjg5NmYsIDB4ODBkZWIxZmUsIDB4M2IxNjk2YjEsXG4gIDB4OWJkYzA2YTcsIDB4MjVjNzEyMzUsIDB4YzE5YmYxNzQsIDB4Y2Y2OTI2OTQsXG4gIDB4ZTQ5YjY5YzEsIDB4OWVmMTRhZDIsIDB4ZWZiZTQ3ODYsIDB4Mzg0ZjI1ZTMsXG4gIDB4MGZjMTlkYzYsIDB4OGI4Y2Q1YjUsIDB4MjQwY2ExY2MsIDB4NzdhYzljNjUsXG4gIDB4MmRlOTJjNmYsIDB4NTkyYjAyNzUsIDB4NGE3NDg0YWEsIDB4NmVhNmU0ODMsXG4gIDB4NWNiMGE5ZGMsIDB4YmQ0MWZiZDQsIDB4NzZmOTg4ZGEsIDB4ODMxMTUzYjUsXG4gIDB4OTgzZTUxNTIsIDB4ZWU2NmRmYWIsIDB4YTgzMWM2NmQsIDB4MmRiNDMyMTAsXG4gIDB4YjAwMzI3YzgsIDB4OThmYjIxM2YsIDB4YmY1OTdmYzcsIDB4YmVlZjBlZTQsXG4gIDB4YzZlMDBiZjMsIDB4M2RhODhmYzIsIDB4ZDVhNzkxNDcsIDB4OTMwYWE3MjUsXG4gIDB4MDZjYTYzNTEsIDB4ZTAwMzgyNmYsIDB4MTQyOTI5NjcsIDB4MGEwZTZlNzAsXG4gIDB4MjdiNzBhODUsIDB4NDZkMjJmZmMsIDB4MmUxYjIxMzgsIDB4NWMyNmM5MjYsXG4gIDB4NGQyYzZkZmMsIDB4NWFjNDJhZWQsIDB4NTMzODBkMTMsIDB4OWQ5NWIzZGYsXG4gIDB4NjUwYTczNTQsIDB4OGJhZjYzZGUsIDB4NzY2YTBhYmIsIDB4M2M3N2IyYTgsXG4gIDB4ODFjMmM5MmUsIDB4NDdlZGFlZTYsIDB4OTI3MjJjODUsIDB4MTQ4MjM1M2IsXG4gIDB4YTJiZmU4YTEsIDB4NGNmMTAzNjQsIDB4YTgxYTY2NGIsIDB4YmM0MjMwMDEsXG4gIDB4YzI0YjhiNzAsIDB4ZDBmODk3OTEsIDB4Yzc2YzUxYTMsIDB4MDY1NGJlMzAsXG4gIDB4ZDE5MmU4MTksIDB4ZDZlZjUyMTgsIDB4ZDY5OTA2MjQsIDB4NTU2NWE5MTAsXG4gIDB4ZjQwZTM1ODUsIDB4NTc3MTIwMmEsIDB4MTA2YWEwNzAsIDB4MzJiYmQxYjgsXG4gIDB4MTlhNGMxMTYsIDB4YjhkMmQwYzgsIDB4MWUzNzZjMDgsIDB4NTE0MWFiNTMsXG4gIDB4Mjc0ODc3NGMsIDB4ZGY4ZWViOTksIDB4MzRiMGJjYjUsIDB4ZTE5YjQ4YTgsXG4gIDB4MzkxYzBjYjMsIDB4YzVjOTVhNjMsIDB4NGVkOGFhNGEsIDB4ZTM0MThhY2IsXG4gIDB4NWI5Y2NhNGYsIDB4Nzc2M2UzNzMsIDB4NjgyZTZmZjMsIDB4ZDZiMmI4YTMsXG4gIDB4NzQ4ZjgyZWUsIDB4NWRlZmIyZmMsIDB4NzhhNTYzNmYsIDB4NDMxNzJmNjAsXG4gIDB4ODRjODc4MTQsIDB4YTFmMGFiNzIsIDB4OGNjNzAyMDgsIDB4MWE2NDM5ZWMsXG4gIDB4OTBiZWZmZmEsIDB4MjM2MzFlMjgsIDB4YTQ1MDZjZWIsIDB4ZGU4MmJkZTksXG4gIDB4YmVmOWEzZjcsIDB4YjJjNjc5MTUsIDB4YzY3MTc4ZjIsIDB4ZTM3MjUzMmIsXG4gIDB4Y2EyNzNlY2UsIDB4ZWEyNjYxOWMsIDB4ZDE4NmI4YzcsIDB4MjFjMGMyMDcsXG4gIDB4ZWFkYTdkZDYsIDB4Y2RlMGViMWUsIDB4ZjU3ZDRmN2YsIDB4ZWU2ZWQxNzgsXG4gIDB4MDZmMDY3YWEsIDB4NzIxNzZmYmEsIDB4MGE2MzdkYzUsIDB4YTJjODk4YTYsXG4gIDB4MTEzZjk4MDQsIDB4YmVmOTBkYWUsIDB4MWI3MTBiMzUsIDB4MTMxYzQ3MWIsXG4gIDB4MjhkYjc3ZjUsIDB4MjMwNDdkODQsIDB4MzJjYWFiN2IsIDB4NDBjNzI0OTMsXG4gIDB4M2M5ZWJlMGEsIDB4MTVjOWJlYmMsIDB4NDMxZDY3YzQsIDB4OWMxMDBkNGMsXG4gIDB4NGNjNWQ0YmUsIDB4Y2IzZTQyYjYsIDB4NTk3ZjI5OWMsIDB4ZmM2NTdlMmEsXG4gIDB4NWZjYjZmYWIsIDB4M2FkNmZhZWMsIDB4NmM0NDE5OGMsIDB4NGE0NzU4MTdcbl07XG5cbmZ1bmN0aW9uIFNIQTUxMigpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFNIQTUxMikpXG4gICAgcmV0dXJuIG5ldyBTSEE1MTIoKTtcblxuICBCbG9ja0hhc2guY2FsbCh0aGlzKTtcbiAgdGhpcy5oID0gW1xuICAgIDB4NmEwOWU2NjcsIDB4ZjNiY2M5MDgsXG4gICAgMHhiYjY3YWU4NSwgMHg4NGNhYTczYixcbiAgICAweDNjNmVmMzcyLCAweGZlOTRmODJiLFxuICAgIDB4YTU0ZmY1M2EsIDB4NWYxZDM2ZjEsXG4gICAgMHg1MTBlNTI3ZiwgMHhhZGU2ODJkMSxcbiAgICAweDliMDU2ODhjLCAweDJiM2U2YzFmLFxuICAgIDB4MWY4M2Q5YWIsIDB4ZmI0MWJkNmIsXG4gICAgMHg1YmUwY2QxOSwgMHgxMzdlMjE3OSBdO1xuICB0aGlzLmsgPSBzaGE1MTJfSztcbiAgdGhpcy5XID0gbmV3IEFycmF5KDE2MCk7XG59XG51dGlscy5pbmhlcml0cyhTSEE1MTIsIEJsb2NrSGFzaCk7XG5tb2R1bGUuZXhwb3J0cyA9IFNIQTUxMjtcblxuU0hBNTEyLmJsb2NrU2l6ZSA9IDEwMjQ7XG5TSEE1MTIub3V0U2l6ZSA9IDUxMjtcblNIQTUxMi5obWFjU3RyZW5ndGggPSAxOTI7XG5TSEE1MTIucGFkTGVuZ3RoID0gMTI4O1xuXG5TSEE1MTIucHJvdG90eXBlLl9wcmVwYXJlQmxvY2sgPSBmdW5jdGlvbiBfcHJlcGFyZUJsb2NrKG1zZywgc3RhcnQpIHtcbiAgdmFyIFcgPSB0aGlzLlc7XG5cbiAgLy8gMzIgeCAzMmJpdCB3b3Jkc1xuICBmb3IgKHZhciBpID0gMDsgaSA8IDMyOyBpKyspXG4gICAgV1tpXSA9IG1zZ1tzdGFydCArIGldO1xuICBmb3IgKDsgaSA8IFcubGVuZ3RoOyBpICs9IDIpIHtcbiAgICB2YXIgYzBfaGkgPSBnMV81MTJfaGkoV1tpIC0gNF0sIFdbaSAtIDNdKTsgIC8vIGkgLSAyXG4gICAgdmFyIGMwX2xvID0gZzFfNTEyX2xvKFdbaSAtIDRdLCBXW2kgLSAzXSk7XG4gICAgdmFyIGMxX2hpID0gV1tpIC0gMTRdOyAgLy8gaSAtIDdcbiAgICB2YXIgYzFfbG8gPSBXW2kgLSAxM107XG4gICAgdmFyIGMyX2hpID0gZzBfNTEyX2hpKFdbaSAtIDMwXSwgV1tpIC0gMjldKTsgIC8vIGkgLSAxNVxuICAgIHZhciBjMl9sbyA9IGcwXzUxMl9sbyhXW2kgLSAzMF0sIFdbaSAtIDI5XSk7XG4gICAgdmFyIGMzX2hpID0gV1tpIC0gMzJdOyAgLy8gaSAtIDE2XG4gICAgdmFyIGMzX2xvID0gV1tpIC0gMzFdO1xuXG4gICAgV1tpXSA9IHN1bTY0XzRfaGkoXG4gICAgICBjMF9oaSwgYzBfbG8sXG4gICAgICBjMV9oaSwgYzFfbG8sXG4gICAgICBjMl9oaSwgYzJfbG8sXG4gICAgICBjM19oaSwgYzNfbG8pO1xuICAgIFdbaSArIDFdID0gc3VtNjRfNF9sbyhcbiAgICAgIGMwX2hpLCBjMF9sbyxcbiAgICAgIGMxX2hpLCBjMV9sbyxcbiAgICAgIGMyX2hpLCBjMl9sbyxcbiAgICAgIGMzX2hpLCBjM19sbyk7XG4gIH1cbn07XG5cblNIQTUxMi5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIF91cGRhdGUobXNnLCBzdGFydCkge1xuICB0aGlzLl9wcmVwYXJlQmxvY2sobXNnLCBzdGFydCk7XG5cbiAgdmFyIFcgPSB0aGlzLlc7XG5cbiAgdmFyIGFoID0gdGhpcy5oWzBdO1xuICB2YXIgYWwgPSB0aGlzLmhbMV07XG4gIHZhciBiaCA9IHRoaXMuaFsyXTtcbiAgdmFyIGJsID0gdGhpcy5oWzNdO1xuICB2YXIgY2ggPSB0aGlzLmhbNF07XG4gIHZhciBjbCA9IHRoaXMuaFs1XTtcbiAgdmFyIGRoID0gdGhpcy5oWzZdO1xuICB2YXIgZGwgPSB0aGlzLmhbN107XG4gIHZhciBlaCA9IHRoaXMuaFs4XTtcbiAgdmFyIGVsID0gdGhpcy5oWzldO1xuICB2YXIgZmggPSB0aGlzLmhbMTBdO1xuICB2YXIgZmwgPSB0aGlzLmhbMTFdO1xuICB2YXIgZ2ggPSB0aGlzLmhbMTJdO1xuICB2YXIgZ2wgPSB0aGlzLmhbMTNdO1xuICB2YXIgaGggPSB0aGlzLmhbMTRdO1xuICB2YXIgaGwgPSB0aGlzLmhbMTVdO1xuXG4gIGFzc2VydCh0aGlzLmsubGVuZ3RoID09PSBXLmxlbmd0aCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgVy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHZhciBjMF9oaSA9IGhoO1xuICAgIHZhciBjMF9sbyA9IGhsO1xuICAgIHZhciBjMV9oaSA9IHMxXzUxMl9oaShlaCwgZWwpO1xuICAgIHZhciBjMV9sbyA9IHMxXzUxMl9sbyhlaCwgZWwpO1xuICAgIHZhciBjMl9oaSA9IGNoNjRfaGkoZWgsIGVsLCBmaCwgZmwsIGdoLCBnbCk7XG4gICAgdmFyIGMyX2xvID0gY2g2NF9sbyhlaCwgZWwsIGZoLCBmbCwgZ2gsIGdsKTtcbiAgICB2YXIgYzNfaGkgPSB0aGlzLmtbaV07XG4gICAgdmFyIGMzX2xvID0gdGhpcy5rW2kgKyAxXTtcbiAgICB2YXIgYzRfaGkgPSBXW2ldO1xuICAgIHZhciBjNF9sbyA9IFdbaSArIDFdO1xuXG4gICAgdmFyIFQxX2hpID0gc3VtNjRfNV9oaShcbiAgICAgIGMwX2hpLCBjMF9sbyxcbiAgICAgIGMxX2hpLCBjMV9sbyxcbiAgICAgIGMyX2hpLCBjMl9sbyxcbiAgICAgIGMzX2hpLCBjM19sbyxcbiAgICAgIGM0X2hpLCBjNF9sbyk7XG4gICAgdmFyIFQxX2xvID0gc3VtNjRfNV9sbyhcbiAgICAgIGMwX2hpLCBjMF9sbyxcbiAgICAgIGMxX2hpLCBjMV9sbyxcbiAgICAgIGMyX2hpLCBjMl9sbyxcbiAgICAgIGMzX2hpLCBjM19sbyxcbiAgICAgIGM0X2hpLCBjNF9sbyk7XG5cbiAgICBjMF9oaSA9IHMwXzUxMl9oaShhaCwgYWwpO1xuICAgIGMwX2xvID0gczBfNTEyX2xvKGFoLCBhbCk7XG4gICAgYzFfaGkgPSBtYWo2NF9oaShhaCwgYWwsIGJoLCBibCwgY2gsIGNsKTtcbiAgICBjMV9sbyA9IG1hajY0X2xvKGFoLCBhbCwgYmgsIGJsLCBjaCwgY2wpO1xuXG4gICAgdmFyIFQyX2hpID0gc3VtNjRfaGkoYzBfaGksIGMwX2xvLCBjMV9oaSwgYzFfbG8pO1xuICAgIHZhciBUMl9sbyA9IHN1bTY0X2xvKGMwX2hpLCBjMF9sbywgYzFfaGksIGMxX2xvKTtcblxuICAgIGhoID0gZ2g7XG4gICAgaGwgPSBnbDtcblxuICAgIGdoID0gZmg7XG4gICAgZ2wgPSBmbDtcblxuICAgIGZoID0gZWg7XG4gICAgZmwgPSBlbDtcblxuICAgIGVoID0gc3VtNjRfaGkoZGgsIGRsLCBUMV9oaSwgVDFfbG8pO1xuICAgIGVsID0gc3VtNjRfbG8oZGwsIGRsLCBUMV9oaSwgVDFfbG8pO1xuXG4gICAgZGggPSBjaDtcbiAgICBkbCA9IGNsO1xuXG4gICAgY2ggPSBiaDtcbiAgICBjbCA9IGJsO1xuXG4gICAgYmggPSBhaDtcbiAgICBibCA9IGFsO1xuXG4gICAgYWggPSBzdW02NF9oaShUMV9oaSwgVDFfbG8sIFQyX2hpLCBUMl9sbyk7XG4gICAgYWwgPSBzdW02NF9sbyhUMV9oaSwgVDFfbG8sIFQyX2hpLCBUMl9sbyk7XG4gIH1cblxuICBzdW02NCh0aGlzLmgsIDAsIGFoLCBhbCk7XG4gIHN1bTY0KHRoaXMuaCwgMiwgYmgsIGJsKTtcbiAgc3VtNjQodGhpcy5oLCA0LCBjaCwgY2wpO1xuICBzdW02NCh0aGlzLmgsIDYsIGRoLCBkbCk7XG4gIHN1bTY0KHRoaXMuaCwgOCwgZWgsIGVsKTtcbiAgc3VtNjQodGhpcy5oLCAxMCwgZmgsIGZsKTtcbiAgc3VtNjQodGhpcy5oLCAxMiwgZ2gsIGdsKTtcbiAgc3VtNjQodGhpcy5oLCAxNCwgaGgsIGhsKTtcbn07XG5cblNIQTUxMi5wcm90b3R5cGUuX2RpZ2VzdCA9IGZ1bmN0aW9uIGRpZ2VzdChlbmMpIHtcbiAgaWYgKGVuYyA9PT0gJ2hleCcpXG4gICAgcmV0dXJuIHV0aWxzLnRvSGV4MzIodGhpcy5oLCAnYmlnJyk7XG4gIGVsc2VcbiAgICByZXR1cm4gdXRpbHMuc3BsaXQzMih0aGlzLmgsICdiaWcnKTtcbn07XG5cbmZ1bmN0aW9uIGNoNjRfaGkoeGgsIHhsLCB5aCwgeWwsIHpoKSB7XG4gIHZhciByID0gKHhoICYgeWgpIF4gKCh+eGgpICYgemgpO1xuICBpZiAociA8IDApXG4gICAgciArPSAweDEwMDAwMDAwMDtcbiAgcmV0dXJuIHI7XG59XG5cbmZ1bmN0aW9uIGNoNjRfbG8oeGgsIHhsLCB5aCwgeWwsIHpoLCB6bCkge1xuICB2YXIgciA9ICh4bCAmIHlsKSBeICgofnhsKSAmIHpsKTtcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBtYWo2NF9oaSh4aCwgeGwsIHloLCB5bCwgemgpIHtcbiAgdmFyIHIgPSAoeGggJiB5aCkgXiAoeGggJiB6aCkgXiAoeWggJiB6aCk7XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cblxuZnVuY3Rpb24gbWFqNjRfbG8oeGgsIHhsLCB5aCwgeWwsIHpoLCB6bCkge1xuICB2YXIgciA9ICh4bCAmIHlsKSBeICh4bCAmIHpsKSBeICh5bCAmIHpsKTtcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBzMF81MTJfaGkoeGgsIHhsKSB7XG4gIHZhciBjMF9oaSA9IHJvdHI2NF9oaSh4aCwgeGwsIDI4KTtcbiAgdmFyIGMxX2hpID0gcm90cjY0X2hpKHhsLCB4aCwgMik7ICAvLyAzNFxuICB2YXIgYzJfaGkgPSByb3RyNjRfaGkoeGwsIHhoLCA3KTsgIC8vIDM5XG5cbiAgdmFyIHIgPSBjMF9oaSBeIGMxX2hpIF4gYzJfaGk7XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cblxuZnVuY3Rpb24gczBfNTEyX2xvKHhoLCB4bCkge1xuICB2YXIgYzBfbG8gPSByb3RyNjRfbG8oeGgsIHhsLCAyOCk7XG4gIHZhciBjMV9sbyA9IHJvdHI2NF9sbyh4bCwgeGgsIDIpOyAgLy8gMzRcbiAgdmFyIGMyX2xvID0gcm90cjY0X2xvKHhsLCB4aCwgNyk7ICAvLyAzOVxuXG4gIHZhciByID0gYzBfbG8gXiBjMV9sbyBeIGMyX2xvO1xuICBpZiAociA8IDApXG4gICAgciArPSAweDEwMDAwMDAwMDtcbiAgcmV0dXJuIHI7XG59XG5cbmZ1bmN0aW9uIHMxXzUxMl9oaSh4aCwgeGwpIHtcbiAgdmFyIGMwX2hpID0gcm90cjY0X2hpKHhoLCB4bCwgMTQpO1xuICB2YXIgYzFfaGkgPSByb3RyNjRfaGkoeGgsIHhsLCAxOCk7XG4gIHZhciBjMl9oaSA9IHJvdHI2NF9oaSh4bCwgeGgsIDkpOyAgLy8gNDFcblxuICB2YXIgciA9IGMwX2hpIF4gYzFfaGkgXiBjMl9oaTtcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBzMV81MTJfbG8oeGgsIHhsKSB7XG4gIHZhciBjMF9sbyA9IHJvdHI2NF9sbyh4aCwgeGwsIDE0KTtcbiAgdmFyIGMxX2xvID0gcm90cjY0X2xvKHhoLCB4bCwgMTgpO1xuICB2YXIgYzJfbG8gPSByb3RyNjRfbG8oeGwsIHhoLCA5KTsgIC8vIDQxXG5cbiAgdmFyIHIgPSBjMF9sbyBeIGMxX2xvIF4gYzJfbG87XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cblxuZnVuY3Rpb24gZzBfNTEyX2hpKHhoLCB4bCkge1xuICB2YXIgYzBfaGkgPSByb3RyNjRfaGkoeGgsIHhsLCAxKTtcbiAgdmFyIGMxX2hpID0gcm90cjY0X2hpKHhoLCB4bCwgOCk7XG4gIHZhciBjMl9oaSA9IHNocjY0X2hpKHhoLCB4bCwgNyk7XG5cbiAgdmFyIHIgPSBjMF9oaSBeIGMxX2hpIF4gYzJfaGk7XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cblxuZnVuY3Rpb24gZzBfNTEyX2xvKHhoLCB4bCkge1xuICB2YXIgYzBfbG8gPSByb3RyNjRfbG8oeGgsIHhsLCAxKTtcbiAgdmFyIGMxX2xvID0gcm90cjY0X2xvKHhoLCB4bCwgOCk7XG4gIHZhciBjMl9sbyA9IHNocjY0X2xvKHhoLCB4bCwgNyk7XG5cbiAgdmFyIHIgPSBjMF9sbyBeIGMxX2xvIF4gYzJfbG87XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cblxuZnVuY3Rpb24gZzFfNTEyX2hpKHhoLCB4bCkge1xuICB2YXIgYzBfaGkgPSByb3RyNjRfaGkoeGgsIHhsLCAxOSk7XG4gIHZhciBjMV9oaSA9IHJvdHI2NF9oaSh4bCwgeGgsIDI5KTsgIC8vIDYxXG4gIHZhciBjMl9oaSA9IHNocjY0X2hpKHhoLCB4bCwgNik7XG5cbiAgdmFyIHIgPSBjMF9oaSBeIGMxX2hpIF4gYzJfaGk7XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cblxuZnVuY3Rpb24gZzFfNTEyX2xvKHhoLCB4bCkge1xuICB2YXIgYzBfbG8gPSByb3RyNjRfbG8oeGgsIHhsLCAxOSk7XG4gIHZhciBjMV9sbyA9IHJvdHI2NF9sbyh4bCwgeGgsIDI5KTsgIC8vIDYxXG4gIHZhciBjMl9sbyA9IHNocjY0X2xvKHhoLCB4bCwgNik7XG5cbiAgdmFyIHIgPSBjMF9sbyBeIGMxX2xvIF4gYzJfbG87XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcbnZhciByb3RyMzIgPSB1dGlscy5yb3RyMzI7XG5cbmZ1bmN0aW9uIGZ0XzEocywgeCwgeSwgeikge1xuICBpZiAocyA9PT0gMClcbiAgICByZXR1cm4gY2gzMih4LCB5LCB6KTtcbiAgaWYgKHMgPT09IDEgfHwgcyA9PT0gMylcbiAgICByZXR1cm4gcDMyKHgsIHksIHopO1xuICBpZiAocyA9PT0gMilcbiAgICByZXR1cm4gbWFqMzIoeCwgeSwgeik7XG59XG5leHBvcnRzLmZ0XzEgPSBmdF8xO1xuXG5mdW5jdGlvbiBjaDMyKHgsIHksIHopIHtcbiAgcmV0dXJuICh4ICYgeSkgXiAoKH54KSAmIHopO1xufVxuZXhwb3J0cy5jaDMyID0gY2gzMjtcblxuZnVuY3Rpb24gbWFqMzIoeCwgeSwgeikge1xuICByZXR1cm4gKHggJiB5KSBeICh4ICYgeikgXiAoeSAmIHopO1xufVxuZXhwb3J0cy5tYWozMiA9IG1hajMyO1xuXG5mdW5jdGlvbiBwMzIoeCwgeSwgeikge1xuICByZXR1cm4geCBeIHkgXiB6O1xufVxuZXhwb3J0cy5wMzIgPSBwMzI7XG5cbmZ1bmN0aW9uIHMwXzI1Nih4KSB7XG4gIHJldHVybiByb3RyMzIoeCwgMikgXiByb3RyMzIoeCwgMTMpIF4gcm90cjMyKHgsIDIyKTtcbn1cbmV4cG9ydHMuczBfMjU2ID0gczBfMjU2O1xuXG5mdW5jdGlvbiBzMV8yNTYoeCkge1xuICByZXR1cm4gcm90cjMyKHgsIDYpIF4gcm90cjMyKHgsIDExKSBeIHJvdHIzMih4LCAyNSk7XG59XG5leHBvcnRzLnMxXzI1NiA9IHMxXzI1NjtcblxuZnVuY3Rpb24gZzBfMjU2KHgpIHtcbiAgcmV0dXJuIHJvdHIzMih4LCA3KSBeIHJvdHIzMih4LCAxOCkgXiAoeCA+Pj4gMyk7XG59XG5leHBvcnRzLmcwXzI1NiA9IGcwXzI1NjtcblxuZnVuY3Rpb24gZzFfMjU2KHgpIHtcbiAgcmV0dXJuIHJvdHIzMih4LCAxNykgXiByb3RyMzIoeCwgMTkpIF4gKHggPj4+IDEwKTtcbn1cbmV4cG9ydHMuZzFfMjU2ID0gZzFfMjU2O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxuZXhwb3J0cy5pbmhlcml0cyA9IGluaGVyaXRzO1xuXG5mdW5jdGlvbiB0b0FycmF5KG1zZywgZW5jKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG1zZykpXG4gICAgcmV0dXJuIG1zZy5zbGljZSgpO1xuICBpZiAoIW1zZylcbiAgICByZXR1cm4gW107XG4gIHZhciByZXMgPSBbXTtcbiAgaWYgKHR5cGVvZiBtc2cgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKCFlbmMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXNnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjID0gbXNnLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIHZhciBoaSA9IGMgPj4gODtcbiAgICAgICAgdmFyIGxvID0gYyAmIDB4ZmY7XG4gICAgICAgIGlmIChoaSlcbiAgICAgICAgICByZXMucHVzaChoaSwgbG8pO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgcmVzLnB1c2gobG8pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZW5jID09PSAnaGV4Jykge1xuICAgICAgbXNnID0gbXNnLnJlcGxhY2UoL1teYS16MC05XSsvaWcsICcnKTtcbiAgICAgIGlmIChtc2cubGVuZ3RoICUgMiAhPT0gMClcbiAgICAgICAgbXNnID0gJzAnICsgbXNnO1xuICAgICAgZm9yIChpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkgKz0gMilcbiAgICAgICAgcmVzLnB1c2gocGFyc2VJbnQobXNnW2ldICsgbXNnW2kgKyAxXSwgMTYpKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yIChpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkrKylcbiAgICAgIHJlc1tpXSA9IG1zZ1tpXSB8IDA7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydHMudG9BcnJheSA9IHRvQXJyYXk7XG5cbmZ1bmN0aW9uIHRvSGV4KG1zZykge1xuICB2YXIgcmVzID0gJyc7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbXNnLmxlbmd0aDsgaSsrKVxuICAgIHJlcyArPSB6ZXJvMihtc2dbaV0udG9TdHJpbmcoMTYpKTtcbiAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydHMudG9IZXggPSB0b0hleDtcblxuZnVuY3Rpb24gaHRvbmwodykge1xuICB2YXIgcmVzID0gKHcgPj4+IDI0KSB8XG4gICAgICAgICAgICAoKHcgPj4+IDgpICYgMHhmZjAwKSB8XG4gICAgICAgICAgICAoKHcgPDwgOCkgJiAweGZmMDAwMCkgfFxuICAgICAgICAgICAgKCh3ICYgMHhmZikgPDwgMjQpO1xuICByZXR1cm4gcmVzID4+PiAwO1xufVxuZXhwb3J0cy5odG9ubCA9IGh0b25sO1xuXG5mdW5jdGlvbiB0b0hleDMyKG1zZywgZW5kaWFuKSB7XG4gIHZhciByZXMgPSAnJztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgdyA9IG1zZ1tpXTtcbiAgICBpZiAoZW5kaWFuID09PSAnbGl0dGxlJylcbiAgICAgIHcgPSBodG9ubCh3KTtcbiAgICByZXMgKz0gemVybzgody50b1N0cmluZygxNikpO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5leHBvcnRzLnRvSGV4MzIgPSB0b0hleDMyO1xuXG5mdW5jdGlvbiB6ZXJvMih3b3JkKSB7XG4gIGlmICh3b3JkLmxlbmd0aCA9PT0gMSlcbiAgICByZXR1cm4gJzAnICsgd29yZDtcbiAgZWxzZVxuICAgIHJldHVybiB3b3JkO1xufVxuZXhwb3J0cy56ZXJvMiA9IHplcm8yO1xuXG5mdW5jdGlvbiB6ZXJvOCh3b3JkKSB7XG4gIGlmICh3b3JkLmxlbmd0aCA9PT0gNylcbiAgICByZXR1cm4gJzAnICsgd29yZDtcbiAgZWxzZSBpZiAod29yZC5sZW5ndGggPT09IDYpXG4gICAgcmV0dXJuICcwMCcgKyB3b3JkO1xuICBlbHNlIGlmICh3b3JkLmxlbmd0aCA9PT0gNSlcbiAgICByZXR1cm4gJzAwMCcgKyB3b3JkO1xuICBlbHNlIGlmICh3b3JkLmxlbmd0aCA9PT0gNClcbiAgICByZXR1cm4gJzAwMDAnICsgd29yZDtcbiAgZWxzZSBpZiAod29yZC5sZW5ndGggPT09IDMpXG4gICAgcmV0dXJuICcwMDAwMCcgKyB3b3JkO1xuICBlbHNlIGlmICh3b3JkLmxlbmd0aCA9PT0gMilcbiAgICByZXR1cm4gJzAwMDAwMCcgKyB3b3JkO1xuICBlbHNlIGlmICh3b3JkLmxlbmd0aCA9PT0gMSlcbiAgICByZXR1cm4gJzAwMDAwMDAnICsgd29yZDtcbiAgZWxzZVxuICAgIHJldHVybiB3b3JkO1xufVxuZXhwb3J0cy56ZXJvOCA9IHplcm84O1xuXG5mdW5jdGlvbiBqb2luMzIobXNnLCBzdGFydCwgZW5kLCBlbmRpYW4pIHtcbiAgdmFyIGxlbiA9IGVuZCAtIHN0YXJ0O1xuICBhc3NlcnQobGVuICUgNCA9PT0gMCk7XG4gIHZhciByZXMgPSBuZXcgQXJyYXkobGVuIC8gNCk7XG4gIGZvciAodmFyIGkgPSAwLCBrID0gc3RhcnQ7IGkgPCByZXMubGVuZ3RoOyBpKyssIGsgKz0gNCkge1xuICAgIHZhciB3O1xuICAgIGlmIChlbmRpYW4gPT09ICdiaWcnKVxuICAgICAgdyA9IChtc2dba10gPDwgMjQpIHwgKG1zZ1trICsgMV0gPDwgMTYpIHwgKG1zZ1trICsgMl0gPDwgOCkgfCBtc2dbayArIDNdO1xuICAgIGVsc2VcbiAgICAgIHcgPSAobXNnW2sgKyAzXSA8PCAyNCkgfCAobXNnW2sgKyAyXSA8PCAxNikgfCAobXNnW2sgKyAxXSA8PCA4KSB8IG1zZ1trXTtcbiAgICByZXNbaV0gPSB3ID4+PiAwO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5leHBvcnRzLmpvaW4zMiA9IGpvaW4zMjtcblxuZnVuY3Rpb24gc3BsaXQzMihtc2csIGVuZGlhbikge1xuICB2YXIgcmVzID0gbmV3IEFycmF5KG1zZy5sZW5ndGggKiA0KTtcbiAgZm9yICh2YXIgaSA9IDAsIGsgPSAwOyBpIDwgbXNnLmxlbmd0aDsgaSsrLCBrICs9IDQpIHtcbiAgICB2YXIgbSA9IG1zZ1tpXTtcbiAgICBpZiAoZW5kaWFuID09PSAnYmlnJykge1xuICAgICAgcmVzW2tdID0gbSA+Pj4gMjQ7XG4gICAgICByZXNbayArIDFdID0gKG0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICByZXNbayArIDJdID0gKG0gPj4+IDgpICYgMHhmZjtcbiAgICAgIHJlc1trICsgM10gPSBtICYgMHhmZjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzW2sgKyAzXSA9IG0gPj4+IDI0O1xuICAgICAgcmVzW2sgKyAyXSA9IChtID4+PiAxNikgJiAweGZmO1xuICAgICAgcmVzW2sgKyAxXSA9IChtID4+PiA4KSAmIDB4ZmY7XG4gICAgICByZXNba10gPSBtICYgMHhmZjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydHMuc3BsaXQzMiA9IHNwbGl0MzI7XG5cbmZ1bmN0aW9uIHJvdHIzMih3LCBiKSB7XG4gIHJldHVybiAodyA+Pj4gYikgfCAodyA8PCAoMzIgLSBiKSk7XG59XG5leHBvcnRzLnJvdHIzMiA9IHJvdHIzMjtcblxuZnVuY3Rpb24gcm90bDMyKHcsIGIpIHtcbiAgcmV0dXJuICh3IDw8IGIpIHwgKHcgPj4+ICgzMiAtIGIpKTtcbn1cbmV4cG9ydHMucm90bDMyID0gcm90bDMyO1xuXG5mdW5jdGlvbiBzdW0zMihhLCBiKSB7XG4gIHJldHVybiAoYSArIGIpID4+PiAwO1xufVxuZXhwb3J0cy5zdW0zMiA9IHN1bTMyO1xuXG5mdW5jdGlvbiBzdW0zMl8zKGEsIGIsIGMpIHtcbiAgcmV0dXJuIChhICsgYiArIGMpID4+PiAwO1xufVxuZXhwb3J0cy5zdW0zMl8zID0gc3VtMzJfMztcblxuZnVuY3Rpb24gc3VtMzJfNChhLCBiLCBjLCBkKSB7XG4gIHJldHVybiAoYSArIGIgKyBjICsgZCkgPj4+IDA7XG59XG5leHBvcnRzLnN1bTMyXzQgPSBzdW0zMl80O1xuXG5mdW5jdGlvbiBzdW0zMl81KGEsIGIsIGMsIGQsIGUpIHtcbiAgcmV0dXJuIChhICsgYiArIGMgKyBkICsgZSkgPj4+IDA7XG59XG5leHBvcnRzLnN1bTMyXzUgPSBzdW0zMl81O1xuXG5mdW5jdGlvbiBzdW02NChidWYsIHBvcywgYWgsIGFsKSB7XG4gIHZhciBiaCA9IGJ1Zltwb3NdO1xuICB2YXIgYmwgPSBidWZbcG9zICsgMV07XG5cbiAgdmFyIGxvID0gKGFsICsgYmwpID4+PiAwO1xuICB2YXIgaGkgPSAobG8gPCBhbCA/IDEgOiAwKSArIGFoICsgYmg7XG4gIGJ1Zltwb3NdID0gaGkgPj4+IDA7XG4gIGJ1Zltwb3MgKyAxXSA9IGxvO1xufVxuZXhwb3J0cy5zdW02NCA9IHN1bTY0O1xuXG5mdW5jdGlvbiBzdW02NF9oaShhaCwgYWwsIGJoLCBibCkge1xuICB2YXIgbG8gPSAoYWwgKyBibCkgPj4+IDA7XG4gIHZhciBoaSA9IChsbyA8IGFsID8gMSA6IDApICsgYWggKyBiaDtcbiAgcmV0dXJuIGhpID4+PiAwO1xufVxuZXhwb3J0cy5zdW02NF9oaSA9IHN1bTY0X2hpO1xuXG5mdW5jdGlvbiBzdW02NF9sbyhhaCwgYWwsIGJoLCBibCkge1xuICB2YXIgbG8gPSBhbCArIGJsO1xuICByZXR1cm4gbG8gPj4+IDA7XG59XG5leHBvcnRzLnN1bTY0X2xvID0gc3VtNjRfbG87XG5cbmZ1bmN0aW9uIHN1bTY0XzRfaGkoYWgsIGFsLCBiaCwgYmwsIGNoLCBjbCwgZGgsIGRsKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIHZhciBsbyA9IGFsO1xuICBsbyA9IChsbyArIGJsKSA+Pj4gMDtcbiAgY2FycnkgKz0gbG8gPCBhbCA/IDEgOiAwO1xuICBsbyA9IChsbyArIGNsKSA+Pj4gMDtcbiAgY2FycnkgKz0gbG8gPCBjbCA/IDEgOiAwO1xuICBsbyA9IChsbyArIGRsKSA+Pj4gMDtcbiAgY2FycnkgKz0gbG8gPCBkbCA/IDEgOiAwO1xuXG4gIHZhciBoaSA9IGFoICsgYmggKyBjaCArIGRoICsgY2Fycnk7XG4gIHJldHVybiBoaSA+Pj4gMDtcbn1cbmV4cG9ydHMuc3VtNjRfNF9oaSA9IHN1bTY0XzRfaGk7XG5cbmZ1bmN0aW9uIHN1bTY0XzRfbG8oYWgsIGFsLCBiaCwgYmwsIGNoLCBjbCwgZGgsIGRsKSB7XG4gIHZhciBsbyA9IGFsICsgYmwgKyBjbCArIGRsO1xuICByZXR1cm4gbG8gPj4+IDA7XG59XG5leHBvcnRzLnN1bTY0XzRfbG8gPSBzdW02NF80X2xvO1xuXG5mdW5jdGlvbiBzdW02NF81X2hpKGFoLCBhbCwgYmgsIGJsLCBjaCwgY2wsIGRoLCBkbCwgZWgsIGVsKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIHZhciBsbyA9IGFsO1xuICBsbyA9IChsbyArIGJsKSA+Pj4gMDtcbiAgY2FycnkgKz0gbG8gPCBhbCA/IDEgOiAwO1xuICBsbyA9IChsbyArIGNsKSA+Pj4gMDtcbiAgY2FycnkgKz0gbG8gPCBjbCA/IDEgOiAwO1xuICBsbyA9IChsbyArIGRsKSA+Pj4gMDtcbiAgY2FycnkgKz0gbG8gPCBkbCA/IDEgOiAwO1xuICBsbyA9IChsbyArIGVsKSA+Pj4gMDtcbiAgY2FycnkgKz0gbG8gPCBlbCA/IDEgOiAwO1xuXG4gIHZhciBoaSA9IGFoICsgYmggKyBjaCArIGRoICsgZWggKyBjYXJyeTtcbiAgcmV0dXJuIGhpID4+PiAwO1xufVxuZXhwb3J0cy5zdW02NF81X2hpID0gc3VtNjRfNV9oaTtcblxuZnVuY3Rpb24gc3VtNjRfNV9sbyhhaCwgYWwsIGJoLCBibCwgY2gsIGNsLCBkaCwgZGwsIGVoLCBlbCkge1xuICB2YXIgbG8gPSBhbCArIGJsICsgY2wgKyBkbCArIGVsO1xuXG4gIHJldHVybiBsbyA+Pj4gMDtcbn1cbmV4cG9ydHMuc3VtNjRfNV9sbyA9IHN1bTY0XzVfbG87XG5cbmZ1bmN0aW9uIHJvdHI2NF9oaShhaCwgYWwsIG51bSkge1xuICB2YXIgciA9IChhbCA8PCAoMzIgLSBudW0pKSB8IChhaCA+Pj4gbnVtKTtcbiAgcmV0dXJuIHIgPj4+IDA7XG59XG5leHBvcnRzLnJvdHI2NF9oaSA9IHJvdHI2NF9oaTtcblxuZnVuY3Rpb24gcm90cjY0X2xvKGFoLCBhbCwgbnVtKSB7XG4gIHZhciByID0gKGFoIDw8ICgzMiAtIG51bSkpIHwgKGFsID4+PiBudW0pO1xuICByZXR1cm4gciA+Pj4gMDtcbn1cbmV4cG9ydHMucm90cjY0X2xvID0gcm90cjY0X2xvO1xuXG5mdW5jdGlvbiBzaHI2NF9oaShhaCwgYWwsIG51bSkge1xuICByZXR1cm4gYWggPj4+IG51bTtcbn1cbmV4cG9ydHMuc2hyNjRfaGkgPSBzaHI2NF9oaTtcblxuZnVuY3Rpb24gc2hyNjRfbG8oYWgsIGFsLCBudW0pIHtcbiAgdmFyIHIgPSAoYWggPDwgKDMyIC0gbnVtKSkgfCAoYWwgPj4+IG51bSk7XG4gIHJldHVybiByID4+PiAwO1xufVxuZXhwb3J0cy5zaHI2NF9sbyA9IHNocjY0X2xvO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaGFzaCA9IHJlcXVpcmUoJ2hhc2guanMnKTtcbnZhciB1dGlscyA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMnKTtcbnZhciBhc3NlcnQgPSByZXF1aXJlKCdtaW5pbWFsaXN0aWMtYXNzZXJ0Jyk7XG5cbmZ1bmN0aW9uIEhtYWNEUkJHKG9wdGlvbnMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIEhtYWNEUkJHKSlcbiAgICByZXR1cm4gbmV3IEhtYWNEUkJHKG9wdGlvbnMpO1xuICB0aGlzLmhhc2ggPSBvcHRpb25zLmhhc2g7XG4gIHRoaXMucHJlZFJlc2lzdCA9ICEhb3B0aW9ucy5wcmVkUmVzaXN0O1xuXG4gIHRoaXMub3V0TGVuID0gdGhpcy5oYXNoLm91dFNpemU7XG4gIHRoaXMubWluRW50cm9weSA9IG9wdGlvbnMubWluRW50cm9weSB8fCB0aGlzLmhhc2guaG1hY1N0cmVuZ3RoO1xuXG4gIHRoaXMuX3Jlc2VlZCA9IG51bGw7XG4gIHRoaXMucmVzZWVkSW50ZXJ2YWwgPSBudWxsO1xuICB0aGlzLksgPSBudWxsO1xuICB0aGlzLlYgPSBudWxsO1xuXG4gIHZhciBlbnRyb3B5ID0gdXRpbHMudG9BcnJheShvcHRpb25zLmVudHJvcHksIG9wdGlvbnMuZW50cm9weUVuYyB8fCAnaGV4Jyk7XG4gIHZhciBub25jZSA9IHV0aWxzLnRvQXJyYXkob3B0aW9ucy5ub25jZSwgb3B0aW9ucy5ub25jZUVuYyB8fCAnaGV4Jyk7XG4gIHZhciBwZXJzID0gdXRpbHMudG9BcnJheShvcHRpb25zLnBlcnMsIG9wdGlvbnMucGVyc0VuYyB8fCAnaGV4Jyk7XG4gIGFzc2VydChlbnRyb3B5Lmxlbmd0aCA+PSAodGhpcy5taW5FbnRyb3B5IC8gOCksXG4gICAgICAgICAnTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAnICsgdGhpcy5taW5FbnRyb3B5ICsgJyBiaXRzJyk7XG4gIHRoaXMuX2luaXQoZW50cm9weSwgbm9uY2UsIHBlcnMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBIbWFjRFJCRztcblxuSG1hY0RSQkcucHJvdG90eXBlLl9pbml0ID0gZnVuY3Rpb24gaW5pdChlbnRyb3B5LCBub25jZSwgcGVycykge1xuICB2YXIgc2VlZCA9IGVudHJvcHkuY29uY2F0KG5vbmNlKS5jb25jYXQocGVycyk7XG5cbiAgdGhpcy5LID0gbmV3IEFycmF5KHRoaXMub3V0TGVuIC8gOCk7XG4gIHRoaXMuViA9IG5ldyBBcnJheSh0aGlzLm91dExlbiAvIDgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuVi5sZW5ndGg7IGkrKykge1xuICAgIHRoaXMuS1tpXSA9IDB4MDA7XG4gICAgdGhpcy5WW2ldID0gMHgwMTtcbiAgfVxuXG4gIHRoaXMuX3VwZGF0ZShzZWVkKTtcbiAgdGhpcy5fcmVzZWVkID0gMTtcbiAgdGhpcy5yZXNlZWRJbnRlcnZhbCA9IDB4MTAwMDAwMDAwMDAwMDsgIC8vIDJeNDhcbn07XG5cbkhtYWNEUkJHLnByb3RvdHlwZS5faG1hYyA9IGZ1bmN0aW9uIGhtYWMoKSB7XG4gIHJldHVybiBuZXcgaGFzaC5obWFjKHRoaXMuaGFzaCwgdGhpcy5LKTtcbn07XG5cbkhtYWNEUkJHLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlKHNlZWQpIHtcbiAgdmFyIGttYWMgPSB0aGlzLl9obWFjKClcbiAgICAgICAgICAgICAgICAgLnVwZGF0ZSh0aGlzLlYpXG4gICAgICAgICAgICAgICAgIC51cGRhdGUoWyAweDAwIF0pO1xuICBpZiAoc2VlZClcbiAgICBrbWFjID0ga21hYy51cGRhdGUoc2VlZCk7XG4gIHRoaXMuSyA9IGttYWMuZGlnZXN0KCk7XG4gIHRoaXMuViA9IHRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKTtcbiAgaWYgKCFzZWVkKVxuICAgIHJldHVybjtcblxuICB0aGlzLksgPSB0aGlzLl9obWFjKClcbiAgICAgICAgICAgICAgIC51cGRhdGUodGhpcy5WKVxuICAgICAgICAgICAgICAgLnVwZGF0ZShbIDB4MDEgXSlcbiAgICAgICAgICAgICAgIC51cGRhdGUoc2VlZClcbiAgICAgICAgICAgICAgIC5kaWdlc3QoKTtcbiAgdGhpcy5WID0gdGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpO1xufTtcblxuSG1hY0RSQkcucHJvdG90eXBlLnJlc2VlZCA9IGZ1bmN0aW9uIHJlc2VlZChlbnRyb3B5LCBlbnRyb3B5RW5jLCBhZGQsIGFkZEVuYykge1xuICAvLyBPcHRpb25hbCBlbnRyb3B5IGVuY1xuICBpZiAodHlwZW9mIGVudHJvcHlFbmMgIT09ICdzdHJpbmcnKSB7XG4gICAgYWRkRW5jID0gYWRkO1xuICAgIGFkZCA9IGVudHJvcHlFbmM7XG4gICAgZW50cm9weUVuYyA9IG51bGw7XG4gIH1cblxuICBlbnRyb3B5ID0gdXRpbHMudG9BcnJheShlbnRyb3B5LCBlbnRyb3B5RW5jKTtcbiAgYWRkID0gdXRpbHMudG9BcnJheShhZGQsIGFkZEVuYyk7XG5cbiAgYXNzZXJ0KGVudHJvcHkubGVuZ3RoID49ICh0aGlzLm1pbkVudHJvcHkgLyA4KSxcbiAgICAgICAgICdOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICcgKyB0aGlzLm1pbkVudHJvcHkgKyAnIGJpdHMnKTtcblxuICB0aGlzLl91cGRhdGUoZW50cm9weS5jb25jYXQoYWRkIHx8IFtdKSk7XG4gIHRoaXMuX3Jlc2VlZCA9IDE7XG59O1xuXG5IbWFjRFJCRy5wcm90b3R5cGUuZ2VuZXJhdGUgPSBmdW5jdGlvbiBnZW5lcmF0ZShsZW4sIGVuYywgYWRkLCBhZGRFbmMpIHtcbiAgaWYgKHRoaXMuX3Jlc2VlZCA+IHRoaXMucmVzZWVkSW50ZXJ2YWwpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZXNlZWQgaXMgcmVxdWlyZWQnKTtcblxuICAvLyBPcHRpb25hbCBlbmNvZGluZ1xuICBpZiAodHlwZW9mIGVuYyAhPT0gJ3N0cmluZycpIHtcbiAgICBhZGRFbmMgPSBhZGQ7XG4gICAgYWRkID0gZW5jO1xuICAgIGVuYyA9IG51bGw7XG4gIH1cblxuICAvLyBPcHRpb25hbCBhZGRpdGlvbmFsIGRhdGFcbiAgaWYgKGFkZCkge1xuICAgIGFkZCA9IHV0aWxzLnRvQXJyYXkoYWRkLCBhZGRFbmMgfHwgJ2hleCcpO1xuICAgIHRoaXMuX3VwZGF0ZShhZGQpO1xuICB9XG5cbiAgdmFyIHRlbXAgPSBbXTtcbiAgd2hpbGUgKHRlbXAubGVuZ3RoIDwgbGVuKSB7XG4gICAgdGhpcy5WID0gdGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpO1xuICAgIHRlbXAgPSB0ZW1wLmNvbmNhdCh0aGlzLlYpO1xuICB9XG5cbiAgdmFyIHJlcyA9IHRlbXAuc2xpY2UoMCwgbGVuKTtcbiAgdGhpcy5fdXBkYXRlKGFkZCk7XG4gIHRoaXMuX3Jlc2VlZCsrO1xuICByZXR1cm4gdXRpbHMuZW5jb2RlKHJlcywgZW5jKTtcbn07XG4iLCJleHBvcnRzLnJlYWQgPSBmdW5jdGlvbiAoYnVmZmVyLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbVxuICB2YXIgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMVxuICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMVxuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDFcbiAgdmFyIG5CaXRzID0gLTdcbiAgdmFyIGkgPSBpc0xFID8gKG5CeXRlcyAtIDEpIDogMFxuICB2YXIgZCA9IGlzTEUgPyAtMSA6IDFcbiAgdmFyIHMgPSBidWZmZXJbb2Zmc2V0ICsgaV1cblxuICBpICs9IGRcblxuICBlID0gcyAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBzID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBlTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IGUgPSBlICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgbSA9IGUgJiAoKDEgPDwgKC1uQml0cykpIC0gMSlcbiAgZSA+Pj0gKC1uQml0cylcbiAgbkJpdHMgKz0gbUxlblxuICBmb3IgKDsgbkJpdHMgPiAwOyBtID0gbSAqIDI1NiArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIGlmIChlID09PSAwKSB7XG4gICAgZSA9IDEgLSBlQmlhc1xuICB9IGVsc2UgaWYgKGUgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbSA/IE5hTiA6ICgocyA/IC0xIDogMSkgKiBJbmZpbml0eSlcbiAgfSBlbHNlIHtcbiAgICBtID0gbSArIE1hdGgucG93KDIsIG1MZW4pXG4gICAgZSA9IGUgLSBlQmlhc1xuICB9XG4gIHJldHVybiAocyA/IC0xIDogMSkgKiBtICogTWF0aC5wb3coMiwgZSAtIG1MZW4pXG59XG5cbmV4cG9ydHMud3JpdGUgPSBmdW5jdGlvbiAoYnVmZmVyLCB2YWx1ZSwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sIGNcbiAgdmFyIGVMZW4gPSBuQnl0ZXMgKiA4IC0gbUxlbiAtIDFcbiAgdmFyIGVNYXggPSAoMSA8PCBlTGVuKSAtIDFcbiAgdmFyIGVCaWFzID0gZU1heCA+PiAxXG4gIHZhciBydCA9IChtTGVuID09PSAyMyA/IE1hdGgucG93KDIsIC0yNCkgLSBNYXRoLnBvdygyLCAtNzcpIDogMClcbiAgdmFyIGkgPSBpc0xFID8gMCA6IChuQnl0ZXMgLSAxKVxuICB2YXIgZCA9IGlzTEUgPyAxIDogLTFcbiAgdmFyIHMgPSB2YWx1ZSA8IDAgfHwgKHZhbHVlID09PSAwICYmIDEgLyB2YWx1ZSA8IDApID8gMSA6IDBcblxuICB2YWx1ZSA9IE1hdGguYWJzKHZhbHVlKVxuXG4gIGlmIChpc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IEluZmluaXR5KSB7XG4gICAgbSA9IGlzTmFOKHZhbHVlKSA/IDEgOiAwXG4gICAgZSA9IGVNYXhcbiAgfSBlbHNlIHtcbiAgICBlID0gTWF0aC5mbG9vcihNYXRoLmxvZyh2YWx1ZSkgLyBNYXRoLkxOMilcbiAgICBpZiAodmFsdWUgKiAoYyA9IE1hdGgucG93KDIsIC1lKSkgPCAxKSB7XG4gICAgICBlLS1cbiAgICAgIGMgKj0gMlxuICAgIH1cbiAgICBpZiAoZSArIGVCaWFzID49IDEpIHtcbiAgICAgIHZhbHVlICs9IHJ0IC8gY1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSArPSBydCAqIE1hdGgucG93KDIsIDEgLSBlQmlhcylcbiAgICB9XG4gICAgaWYgKHZhbHVlICogYyA+PSAyKSB7XG4gICAgICBlKytcbiAgICAgIGMgLz0gMlxuICAgIH1cblxuICAgIGlmIChlICsgZUJpYXMgPj0gZU1heCkge1xuICAgICAgbSA9IDBcbiAgICAgIGUgPSBlTWF4XG4gICAgfSBlbHNlIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgbSA9ICh2YWx1ZSAqIGMgLSAxKSAqIE1hdGgucG93KDIsIG1MZW4pXG4gICAgICBlID0gZSArIGVCaWFzXG4gICAgfSBlbHNlIHtcbiAgICAgIG0gPSB2YWx1ZSAqIE1hdGgucG93KDIsIGVCaWFzIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IDBcbiAgICB9XG4gIH1cblxuICBmb3IgKDsgbUxlbiA+PSA4OyBidWZmZXJbb2Zmc2V0ICsgaV0gPSBtICYgMHhmZiwgaSArPSBkLCBtIC89IDI1NiwgbUxlbiAtPSA4KSB7fVxuXG4gIGUgPSAoZSA8PCBtTGVuKSB8IG1cbiAgZUxlbiArPSBtTGVuXG4gIGZvciAoOyBlTGVuID4gMDsgYnVmZmVyW29mZnNldCArIGldID0gZSAmIDB4ZmYsIGkgKz0gZCwgZSAvPSAyNTYsIGVMZW4gLT0gOCkge31cblxuICBidWZmZXJbb2Zmc2V0ICsgaSAtIGRdIHw9IHMgKiAxMjhcbn1cbiIsIlxudmFyIGluZGV4T2YgPSBbXS5pbmRleE9mO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGFyciwgb2JqKXtcbiAgaWYgKGluZGV4T2YpIHJldHVybiBhcnIuaW5kZXhPZihvYmopO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7ICsraSkge1xuICAgIGlmIChhcnJbaV0gPT09IG9iaikgcmV0dXJuIGk7XG4gIH1cbiAgcmV0dXJuIC0xO1xufTsiLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGVcbiAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwiKGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgZnVuY3Rpb24gaXNBcnJheShvYmopIHtcbiAgICBpZiAob2JqICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09IFwiW29iamVjdCBBcnJheV1cIjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzT2JqZWN0KG9iaikge1xuICAgIGlmIChvYmogIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHN0cmljdERlZXBFcXVhbChmaXJzdCwgc2Vjb25kKSB7XG4gICAgLy8gQ2hlY2sgdGhlIHNjYWxhciBjYXNlIGZpcnN0LlxuICAgIGlmIChmaXJzdCA9PT0gc2Vjb25kKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGV5IGFyZSB0aGUgc2FtZSB0eXBlLlxuICAgIHZhciBmaXJzdFR5cGUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZmlyc3QpO1xuICAgIGlmIChmaXJzdFR5cGUgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChzZWNvbmQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFdlIGtub3cgdGhhdCBmaXJzdCBhbmQgc2Vjb25kIGhhdmUgdGhlIHNhbWUgdHlwZSBzbyB3ZSBjYW4ganVzdCBjaGVjayB0aGVcbiAgICAvLyBmaXJzdCB0eXBlIGZyb20gbm93IG9uLlxuICAgIGlmIChpc0FycmF5KGZpcnN0KSA9PT0gdHJ1ZSkge1xuICAgICAgLy8gU2hvcnQgY2lyY3VpdCBpZiB0aGV5J3JlIG5vdCB0aGUgc2FtZSBsZW5ndGg7XG4gICAgICBpZiAoZmlyc3QubGVuZ3RoICE9PSBzZWNvbmQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlyc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHN0cmljdERlZXBFcXVhbChmaXJzdFtpXSwgc2Vjb25kW2ldKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoaXNPYmplY3QoZmlyc3QpID09PSB0cnVlKSB7XG4gICAgICAvLyBBbiBvYmplY3QgaXMgZXF1YWwgaWYgaXQgaGFzIHRoZSBzYW1lIGtleS92YWx1ZSBwYWlycy5cbiAgICAgIHZhciBrZXlzU2VlbiA9IHt9O1xuICAgICAgZm9yICh2YXIga2V5IGluIGZpcnN0KSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZpcnN0LCBrZXkpKSB7XG4gICAgICAgICAgaWYgKHN0cmljdERlZXBFcXVhbChmaXJzdFtrZXldLCBzZWNvbmRba2V5XSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGtleXNTZWVuW2tleV0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBOb3cgY2hlY2sgdGhhdCB0aGVyZSBhcmVuJ3QgYW55IGtleXMgaW4gc2Vjb25kIHRoYXQgd2VyZW4ndFxuICAgICAgLy8gaW4gZmlyc3QuXG4gICAgICBmb3IgKHZhciBrZXkyIGluIHNlY29uZCkge1xuICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzZWNvbmQsIGtleTIpKSB7XG4gICAgICAgICAgaWYgKGtleXNTZWVuW2tleTJdICE9PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNGYWxzZShvYmopIHtcbiAgICAvLyBGcm9tIHRoZSBzcGVjOlxuICAgIC8vIEEgZmFsc2UgdmFsdWUgY29ycmVzcG9uZHMgdG8gdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG4gICAgLy8gRW1wdHkgbGlzdFxuICAgIC8vIEVtcHR5IG9iamVjdFxuICAgIC8vIEVtcHR5IHN0cmluZ1xuICAgIC8vIEZhbHNlIGJvb2xlYW5cbiAgICAvLyBudWxsIHZhbHVlXG5cbiAgICAvLyBGaXJzdCBjaGVjayB0aGUgc2NhbGFyIHZhbHVlcy5cbiAgICBpZiAob2JqID09PSBcIlwiIHx8IG9iaiA9PT0gZmFsc2UgfHwgb2JqID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShvYmopICYmIG9iai5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGFuIGVtcHR5IGFycmF5LlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KG9iaikpIHtcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGFuIGVtcHR5IG9iamVjdC5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIGFueSBrZXlzLCB0aGVuXG4gICAgICAgICAgICAvLyB0aGUgb2JqZWN0IGlzIG5vdCBlbXB0eSBzbyB0aGUgb2JqZWN0XG4gICAgICAgICAgICAvLyBpcyBub3QgZmFsc2UuXG4gICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBvYmpWYWx1ZXMob2JqKSB7XG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgIHZhciB2YWx1ZXMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbHVlcy5wdXNoKG9ialtrZXlzW2ldXSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICBmdW5jdGlvbiBtZXJnZShhLCBiKSB7XG4gICAgICB2YXIgbWVyZ2VkID0ge307XG4gICAgICBmb3IgKHZhciBrZXkgaW4gYSkge1xuICAgICAgICAgIG1lcmdlZFtrZXldID0gYVtrZXldO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIga2V5MiBpbiBiKSB7XG4gICAgICAgICAgbWVyZ2VkW2tleTJdID0gYltrZXkyXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtZXJnZWQ7XG4gIH1cblxuICB2YXIgdHJpbUxlZnQ7XG4gIGlmICh0eXBlb2YgU3RyaW5nLnByb3RvdHlwZS50cmltTGVmdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdHJpbUxlZnQgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHJldHVybiBzdHIudHJpbUxlZnQoKTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHRyaW1MZWZ0ID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgICByZXR1cm4gc3RyLm1hdGNoKC9eXFxzKiguKikvKVsxXTtcbiAgICB9O1xuICB9XG5cbiAgLy8gVHlwZSBjb25zdGFudHMgdXNlZCB0byBkZWZpbmUgZnVuY3Rpb25zLlxuICB2YXIgVFlQRV9OVU1CRVIgPSAwO1xuICB2YXIgVFlQRV9BTlkgPSAxO1xuICB2YXIgVFlQRV9TVFJJTkcgPSAyO1xuICB2YXIgVFlQRV9BUlJBWSA9IDM7XG4gIHZhciBUWVBFX09CSkVDVCA9IDQ7XG4gIHZhciBUWVBFX0JPT0xFQU4gPSA1O1xuICB2YXIgVFlQRV9FWFBSRUYgPSA2O1xuICB2YXIgVFlQRV9OVUxMID0gNztcbiAgdmFyIFRZUEVfQVJSQVlfTlVNQkVSID0gODtcbiAgdmFyIFRZUEVfQVJSQVlfU1RSSU5HID0gOTtcblxuICB2YXIgVE9LX0VPRiA9IFwiRU9GXCI7XG4gIHZhciBUT0tfVU5RVU9URURJREVOVElGSUVSID0gXCJVbnF1b3RlZElkZW50aWZpZXJcIjtcbiAgdmFyIFRPS19RVU9URURJREVOVElGSUVSID0gXCJRdW90ZWRJZGVudGlmaWVyXCI7XG4gIHZhciBUT0tfUkJSQUNLRVQgPSBcIlJicmFja2V0XCI7XG4gIHZhciBUT0tfUlBBUkVOID0gXCJScGFyZW5cIjtcbiAgdmFyIFRPS19DT01NQSA9IFwiQ29tbWFcIjtcbiAgdmFyIFRPS19DT0xPTiA9IFwiQ29sb25cIjtcbiAgdmFyIFRPS19SQlJBQ0UgPSBcIlJicmFjZVwiO1xuICB2YXIgVE9LX05VTUJFUiA9IFwiTnVtYmVyXCI7XG4gIHZhciBUT0tfQ1VSUkVOVCA9IFwiQ3VycmVudFwiO1xuICB2YXIgVE9LX0VYUFJFRiA9IFwiRXhwcmVmXCI7XG4gIHZhciBUT0tfUElQRSA9IFwiUGlwZVwiO1xuICB2YXIgVE9LX09SID0gXCJPclwiO1xuICB2YXIgVE9LX0FORCA9IFwiQW5kXCI7XG4gIHZhciBUT0tfRVEgPSBcIkVRXCI7XG4gIHZhciBUT0tfR1QgPSBcIkdUXCI7XG4gIHZhciBUT0tfTFQgPSBcIkxUXCI7XG4gIHZhciBUT0tfR1RFID0gXCJHVEVcIjtcbiAgdmFyIFRPS19MVEUgPSBcIkxURVwiO1xuICB2YXIgVE9LX05FID0gXCJORVwiO1xuICB2YXIgVE9LX0ZMQVRURU4gPSBcIkZsYXR0ZW5cIjtcbiAgdmFyIFRPS19TVEFSID0gXCJTdGFyXCI7XG4gIHZhciBUT0tfRklMVEVSID0gXCJGaWx0ZXJcIjtcbiAgdmFyIFRPS19ET1QgPSBcIkRvdFwiO1xuICB2YXIgVE9LX05PVCA9IFwiTm90XCI7XG4gIHZhciBUT0tfTEJSQUNFID0gXCJMYnJhY2VcIjtcbiAgdmFyIFRPS19MQlJBQ0tFVCA9IFwiTGJyYWNrZXRcIjtcbiAgdmFyIFRPS19MUEFSRU49IFwiTHBhcmVuXCI7XG4gIHZhciBUT0tfTElURVJBTD0gXCJMaXRlcmFsXCI7XG5cbiAgLy8gVGhlIFwiJlwiLCBcIltcIiwgXCI8XCIsIFwiPlwiIHRva2Vuc1xuICAvLyBhcmUgbm90IGluIGJhc2ljVG9rZW4gYmVjYXVzZVxuICAvLyB0aGVyZSBhcmUgdHdvIHRva2VuIHZhcmlhbnRzXG4gIC8vIChcIiYmXCIsIFwiWz9cIiwgXCI8PVwiLCBcIj49XCIpLiAgVGhpcyBpcyBzcGVjaWFsbHkgaGFuZGxlZFxuICAvLyBiZWxvdy5cblxuICB2YXIgYmFzaWNUb2tlbnMgPSB7XG4gICAgXCIuXCI6IFRPS19ET1QsXG4gICAgXCIqXCI6IFRPS19TVEFSLFxuICAgIFwiLFwiOiBUT0tfQ09NTUEsXG4gICAgXCI6XCI6IFRPS19DT0xPTixcbiAgICBcIntcIjogVE9LX0xCUkFDRSxcbiAgICBcIn1cIjogVE9LX1JCUkFDRSxcbiAgICBcIl1cIjogVE9LX1JCUkFDS0VULFxuICAgIFwiKFwiOiBUT0tfTFBBUkVOLFxuICAgIFwiKVwiOiBUT0tfUlBBUkVOLFxuICAgIFwiQFwiOiBUT0tfQ1VSUkVOVFxuICB9O1xuXG4gIHZhciBvcGVyYXRvclN0YXJ0VG9rZW4gPSB7XG4gICAgICBcIjxcIjogdHJ1ZSxcbiAgICAgIFwiPlwiOiB0cnVlLFxuICAgICAgXCI9XCI6IHRydWUsXG4gICAgICBcIiFcIjogdHJ1ZVxuICB9O1xuXG4gIHZhciBza2lwQ2hhcnMgPSB7XG4gICAgICBcIiBcIjogdHJ1ZSxcbiAgICAgIFwiXFx0XCI6IHRydWUsXG4gICAgICBcIlxcblwiOiB0cnVlXG4gIH07XG5cblxuICBmdW5jdGlvbiBpc0FscGhhKGNoKSB7XG4gICAgICByZXR1cm4gKGNoID49IFwiYVwiICYmIGNoIDw9IFwielwiKSB8fFxuICAgICAgICAgICAgIChjaCA+PSBcIkFcIiAmJiBjaCA8PSBcIlpcIikgfHxcbiAgICAgICAgICAgICBjaCA9PT0gXCJfXCI7XG4gIH1cblxuICBmdW5jdGlvbiBpc051bShjaCkge1xuICAgICAgcmV0dXJuIChjaCA+PSBcIjBcIiAmJiBjaCA8PSBcIjlcIikgfHxcbiAgICAgICAgICAgICBjaCA9PT0gXCItXCI7XG4gIH1cbiAgZnVuY3Rpb24gaXNBbHBoYU51bShjaCkge1xuICAgICAgcmV0dXJuIChjaCA+PSBcImFcIiAmJiBjaCA8PSBcInpcIikgfHxcbiAgICAgICAgICAgICAoY2ggPj0gXCJBXCIgJiYgY2ggPD0gXCJaXCIpIHx8XG4gICAgICAgICAgICAgKGNoID49IFwiMFwiICYmIGNoIDw9IFwiOVwiKSB8fFxuICAgICAgICAgICAgIGNoID09PSBcIl9cIjtcbiAgfVxuXG4gIGZ1bmN0aW9uIExleGVyKCkge1xuICB9XG4gIExleGVyLnByb3RvdHlwZSA9IHtcbiAgICAgIHRva2VuaXplOiBmdW5jdGlvbihzdHJlYW0pIHtcbiAgICAgICAgICB2YXIgdG9rZW5zID0gW107XG4gICAgICAgICAgdGhpcy5fY3VycmVudCA9IDA7XG4gICAgICAgICAgdmFyIHN0YXJ0O1xuICAgICAgICAgIHZhciBpZGVudGlmaWVyO1xuICAgICAgICAgIHZhciB0b2tlbjtcbiAgICAgICAgICB3aGlsZSAodGhpcy5fY3VycmVudCA8IHN0cmVhbS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgaWYgKGlzQWxwaGEoc3RyZWFtW3RoaXMuX2N1cnJlbnRdKSkge1xuICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciA9IHRoaXMuX2NvbnN1bWVVbnF1b3RlZElkZW50aWZpZXIoc3RyZWFtKTtcbiAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHt0eXBlOiBUT0tfVU5RVU9URURJREVOVElGSUVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGJhc2ljVG9rZW5zW3N0cmVhbVt0aGlzLl9jdXJyZW50XV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goe3R5cGU6IGJhc2ljVG9rZW5zW3N0cmVhbVt0aGlzLl9jdXJyZW50XV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3RyZWFtW3RoaXMuX2N1cnJlbnRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IHRoaXMuX2N1cnJlbnR9KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc051bShzdHJlYW1bdGhpcy5fY3VycmVudF0pKSB7XG4gICAgICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMuX2NvbnN1bWVOdW1iZXIoc3RyZWFtKTtcbiAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwiW1wiKSB7XG4gICAgICAgICAgICAgICAgICAvLyBObyBuZWVkIHRvIGluY3JlbWVudCB0aGlzLl9jdXJyZW50LiAgVGhpcyBoYXBwZW5zXG4gICAgICAgICAgICAgICAgICAvLyBpbiBfY29uc3VtZUxCcmFja2V0XG4gICAgICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMuX2NvbnN1bWVMQnJhY2tldChzdHJlYW0pO1xuICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCJcXFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgPSB0aGlzLl9jb25zdW1lUXVvdGVkSWRlbnRpZmllcihzdHJlYW0pO1xuICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goe3R5cGU6IFRPS19RVU9URURJREVOVElGSUVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCInXCIpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgPSB0aGlzLl9jb25zdW1lUmF3U3RyaW5nTGl0ZXJhbChzdHJlYW0pO1xuICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goe3R5cGU6IFRPS19MSVRFUkFMLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCJgXCIpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICAgICAgICAgIHZhciBsaXRlcmFsID0gdGhpcy5fY29uc3VtZUxpdGVyYWwoc3RyZWFtKTtcbiAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHt0eXBlOiBUT0tfTElURVJBTCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbGl0ZXJhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogc3RhcnR9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRvclN0YXJ0VG9rZW5bc3RyZWFtW3RoaXMuX2N1cnJlbnRdXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh0aGlzLl9jb25zdW1lT3BlcmF0b3Ioc3RyZWFtKSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2tpcENoYXJzW3N0cmVhbVt0aGlzLl9jdXJyZW50XV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoaXRlc3BhY2UuXG4gICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcIiZcIikge1xuICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgICAgICAgICAgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCImXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goe3R5cGU6IFRPS19BTkQsIHZhbHVlOiBcIiYmXCIsIHN0YXJ0OiBzdGFydH0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh7dHlwZTogVE9LX0VYUFJFRiwgdmFsdWU6IFwiJlwiLCBzdGFydDogc3RhcnR9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwifFwiKSB7XG4gICAgICAgICAgICAgICAgICBzdGFydCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgICAgICBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcInxcIikge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh7dHlwZTogVE9LX09SLCB2YWx1ZTogXCJ8fFwiLCBzdGFydDogc3RhcnR9KTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goe3R5cGU6IFRPS19QSVBFLCB2YWx1ZTogXCJ8XCIsIHN0YXJ0OiBzdGFydH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKFwiVW5rbm93biBjaGFyYWN0ZXI6XCIgKyBzdHJlYW1bdGhpcy5fY3VycmVudF0pO1xuICAgICAgICAgICAgICAgICAgZXJyb3IubmFtZSA9IFwiTGV4ZXJFcnJvclwiO1xuICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRva2VucztcbiAgICAgIH0sXG5cbiAgICAgIF9jb25zdW1lVW5xdW90ZWRJZGVudGlmaWVyOiBmdW5jdGlvbihzdHJlYW0pIHtcbiAgICAgICAgICB2YXIgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICB3aGlsZSAodGhpcy5fY3VycmVudCA8IHN0cmVhbS5sZW5ndGggJiYgaXNBbHBoYU51bShzdHJlYW1bdGhpcy5fY3VycmVudF0pKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN0cmVhbS5zbGljZShzdGFydCwgdGhpcy5fY3VycmVudCk7XG4gICAgICB9LFxuXG4gICAgICBfY29uc3VtZVF1b3RlZElkZW50aWZpZXI6IGZ1bmN0aW9uKHN0cmVhbSkge1xuICAgICAgICAgIHZhciBzdGFydCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgIHZhciBtYXhMZW5ndGggPSBzdHJlYW0ubGVuZ3RoO1xuICAgICAgICAgIHdoaWxlIChzdHJlYW1bdGhpcy5fY3VycmVudF0gIT09IFwiXFxcIlwiICYmIHRoaXMuX2N1cnJlbnQgPCBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gWW91IGNhbiBlc2NhcGUgYSBkb3VibGUgcXVvdGUgYW5kIHlvdSBjYW4gZXNjYXBlIGFuIGVzY2FwZS5cbiAgICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgICAgICBpZiAoc3RyZWFtW2N1cnJlbnRdID09PSBcIlxcXFxcIiAmJiAoc3RyZWFtW2N1cnJlbnQgKyAxXSA9PT0gXCJcXFxcXCIgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtW2N1cnJlbnQgKyAxXSA9PT0gXCJcXFwiXCIpKSB7XG4gICAgICAgICAgICAgICAgICBjdXJyZW50ICs9IDI7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjdXJyZW50Kys7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCA9IGN1cnJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdHJlYW0uc2xpY2Uoc3RhcnQsIHRoaXMuX2N1cnJlbnQpKTtcbiAgICAgIH0sXG5cbiAgICAgIF9jb25zdW1lUmF3U3RyaW5nTGl0ZXJhbDogZnVuY3Rpb24oc3RyZWFtKSB7XG4gICAgICAgICAgdmFyIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgdmFyIG1heExlbmd0aCA9IHN0cmVhbS5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSAhPT0gXCInXCIgJiYgdGhpcy5fY3VycmVudCA8IG1heExlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBZb3UgY2FuIGVzY2FwZSBhIHNpbmdsZSBxdW90ZSBhbmQgeW91IGNhbiBlc2NhcGUgYW4gZXNjYXBlLlxuICAgICAgICAgICAgICB2YXIgY3VycmVudCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1bY3VycmVudF0gPT09IFwiXFxcXFwiICYmIChzdHJlYW1bY3VycmVudCArIDFdID09PSBcIlxcXFxcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1bY3VycmVudCArIDFdID09PSBcIidcIikpIHtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQgKz0gMjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQrKztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50ID0gY3VycmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgIHZhciBsaXRlcmFsID0gc3RyZWFtLnNsaWNlKHN0YXJ0ICsgMSwgdGhpcy5fY3VycmVudCAtIDEpO1xuICAgICAgICAgIHJldHVybiBsaXRlcmFsLnJlcGxhY2UoXCJcXFxcJ1wiLCBcIidcIik7XG4gICAgICB9LFxuXG4gICAgICBfY29uc3VtZU51bWJlcjogZnVuY3Rpb24oc3RyZWFtKSB7XG4gICAgICAgICAgdmFyIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgdmFyIG1heExlbmd0aCA9IHN0cmVhbS5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKGlzTnVtKHN0cmVhbVt0aGlzLl9jdXJyZW50XSkgJiYgdGhpcy5fY3VycmVudCA8IG1heExlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciB2YWx1ZSA9IHBhcnNlSW50KHN0cmVhbS5zbGljZShzdGFydCwgdGhpcy5fY3VycmVudCkpO1xuICAgICAgICAgIHJldHVybiB7dHlwZTogVE9LX05VTUJFUiwgdmFsdWU6IHZhbHVlLCBzdGFydDogc3RhcnR9O1xuICAgICAgfSxcblxuICAgICAgX2NvbnN1bWVMQnJhY2tldDogZnVuY3Rpb24oc3RyZWFtKSB7XG4gICAgICAgICAgdmFyIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCI/XCIpIHtcbiAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19GSUxURVIsIHZhbHVlOiBcIls/XCIsIHN0YXJ0OiBzdGFydH07XG4gICAgICAgICAgfSBlbHNlIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwiXVwiKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBUT0tfRkxBVFRFTiwgdmFsdWU6IFwiW11cIiwgc3RhcnQ6IHN0YXJ0fTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19MQlJBQ0tFVCwgdmFsdWU6IFwiW1wiLCBzdGFydDogc3RhcnR9O1xuICAgICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIF9jb25zdW1lT3BlcmF0b3I6IGZ1bmN0aW9uKHN0cmVhbSkge1xuICAgICAgICAgIHZhciBzdGFydCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgdmFyIHN0YXJ0aW5nQ2hhciA9IHN0cmVhbVtzdGFydF07XG4gICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgIGlmIChzdGFydGluZ0NoYXIgPT09IFwiIVwiKSB7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwiPVwiKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19ORSwgdmFsdWU6IFwiIT1cIiwgc3RhcnQ6IHN0YXJ0fTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19OT1QsIHZhbHVlOiBcIiFcIiwgc3RhcnQ6IHN0YXJ0fTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRpbmdDaGFyID09PSBcIjxcIikge1xuICAgICAgICAgICAgICBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcIj1cIikge1xuICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBUT0tfTFRFLCB2YWx1ZTogXCI8PVwiLCBzdGFydDogc3RhcnR9O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBUT0tfTFQsIHZhbHVlOiBcIjxcIiwgc3RhcnQ6IHN0YXJ0fTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRpbmdDaGFyID09PSBcIj5cIikge1xuICAgICAgICAgICAgICBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcIj1cIikge1xuICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBUT0tfR1RFLCB2YWx1ZTogXCI+PVwiLCBzdGFydDogc3RhcnR9O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBUT0tfR1QsIHZhbHVlOiBcIj5cIiwgc3RhcnQ6IHN0YXJ0fTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRpbmdDaGFyID09PSBcIj1cIikge1xuICAgICAgICAgICAgICBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcIj1cIikge1xuICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBUT0tfRVEsIHZhbHVlOiBcIj09XCIsIHN0YXJ0OiBzdGFydH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICBfY29uc3VtZUxpdGVyYWw6IGZ1bmN0aW9uKHN0cmVhbSkge1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICB2YXIgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgIHZhciBtYXhMZW5ndGggPSBzdHJlYW0ubGVuZ3RoO1xuICAgICAgICAgIHZhciBsaXRlcmFsO1xuICAgICAgICAgIHdoaWxlKHN0cmVhbVt0aGlzLl9jdXJyZW50XSAhPT0gXCJgXCIgJiYgdGhpcy5fY3VycmVudCA8IG1heExlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBZb3UgY2FuIGVzY2FwZSBhIGxpdGVyYWwgY2hhciBvciB5b3UgY2FuIGVzY2FwZSB0aGUgZXNjYXBlLlxuICAgICAgICAgICAgICB2YXIgY3VycmVudCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1bY3VycmVudF0gPT09IFwiXFxcXFwiICYmIChzdHJlYW1bY3VycmVudCArIDFdID09PSBcIlxcXFxcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1bY3VycmVudCArIDFdID09PSBcImBcIikpIHtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQgKz0gMjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQrKztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50ID0gY3VycmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxpdGVyYWxTdHJpbmcgPSB0cmltTGVmdChzdHJlYW0uc2xpY2Uoc3RhcnQsIHRoaXMuX2N1cnJlbnQpKTtcbiAgICAgICAgICBsaXRlcmFsU3RyaW5nID0gbGl0ZXJhbFN0cmluZy5yZXBsYWNlKFwiXFxcXGBcIiwgXCJgXCIpO1xuICAgICAgICAgIGlmICh0aGlzLl9sb29rc0xpa2VKU09OKGxpdGVyYWxTdHJpbmcpKSB7XG4gICAgICAgICAgICAgIGxpdGVyYWwgPSBKU09OLnBhcnNlKGxpdGVyYWxTdHJpbmcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFRyeSB0byBKU09OIHBhcnNlIGl0IGFzIFwiPGxpdGVyYWw+XCJcbiAgICAgICAgICAgICAgbGl0ZXJhbCA9IEpTT04ucGFyc2UoXCJcXFwiXCIgKyBsaXRlcmFsU3RyaW5nICsgXCJcXFwiXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyArMSBnZXRzIHVzIHRvIHRoZSBlbmRpbmcgXCJgXCIsICsxIHRvIG1vdmUgb24gdG8gdGhlIG5leHQgY2hhci5cbiAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgcmV0dXJuIGxpdGVyYWw7XG4gICAgICB9LFxuXG4gICAgICBfbG9va3NMaWtlSlNPTjogZnVuY3Rpb24obGl0ZXJhbFN0cmluZykge1xuICAgICAgICAgIHZhciBzdGFydGluZ0NoYXJzID0gXCJbe1xcXCJcIjtcbiAgICAgICAgICB2YXIganNvbkxpdGVyYWxzID0gW1widHJ1ZVwiLCBcImZhbHNlXCIsIFwibnVsbFwiXTtcbiAgICAgICAgICB2YXIgbnVtYmVyTG9va2luZyA9IFwiLTAxMjM0NTY3ODlcIjtcblxuICAgICAgICAgIGlmIChsaXRlcmFsU3RyaW5nID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0aW5nQ2hhcnMuaW5kZXhPZihsaXRlcmFsU3RyaW5nWzBdKSA+PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoanNvbkxpdGVyYWxzLmluZGV4T2YobGl0ZXJhbFN0cmluZykgPj0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlckxvb2tpbmcuaW5kZXhPZihsaXRlcmFsU3RyaW5nWzBdKSA+PSAwKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICBKU09OLnBhcnNlKGxpdGVyYWxTdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgfVxuICB9O1xuXG4gICAgICB2YXIgYmluZGluZ1Bvd2VyID0ge307XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0VPRl0gPSAwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19VTlFVT1RFRElERU5USUZJRVJdID0gMDtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfUVVPVEVESURFTlRJRklFUl0gPSAwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19SQlJBQ0tFVF0gPSAwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19SUEFSRU5dID0gMDtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfQ09NTUFdID0gMDtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfUkJSQUNFXSA9IDA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX05VTUJFUl0gPSAwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19DVVJSRU5UXSA9IDA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0VYUFJFRl0gPSAwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19QSVBFXSA9IDE7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX09SXSA9IDI7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0FORF0gPSAzO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19FUV0gPSA1O1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19HVF0gPSA1O1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19MVF0gPSA1O1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19HVEVdID0gNTtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfTFRFXSA9IDU7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX05FXSA9IDU7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0ZMQVRURU5dID0gOTtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfU1RBUl0gPSAyMDtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfRklMVEVSXSA9IDIxO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19ET1RdID0gNDA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX05PVF0gPSA0NTtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfTEJSQUNFXSA9IDUwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19MQlJBQ0tFVF0gPSA1NTtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfTFBBUkVOXSA9IDYwO1xuXG4gIGZ1bmN0aW9uIFBhcnNlcigpIHtcbiAgfVxuXG4gIFBhcnNlci5wcm90b3R5cGUgPSB7XG4gICAgICBwYXJzZTogZnVuY3Rpb24oZXhwcmVzc2lvbikge1xuICAgICAgICAgIHRoaXMuX2xvYWRUb2tlbnMoZXhwcmVzc2lvbik7XG4gICAgICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgICAgICAgdmFyIGFzdCA9IHRoaXMuZXhwcmVzc2lvbigwKTtcbiAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApICE9PSBUT0tfRU9GKSB7XG4gICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5fbG9va2FoZWFkVG9rZW4oMCk7XG4gICAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiVW5leHBlY3RlZCB0b2tlbiB0eXBlOiBcIiArIHQudHlwZSArIFwiLCB2YWx1ZTogXCIgKyB0LnZhbHVlKTtcbiAgICAgICAgICAgICAgZXJyb3IubmFtZSA9IFwiUGFyc2VyRXJyb3JcIjtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhc3Q7XG4gICAgICB9LFxuXG4gICAgICBfbG9hZFRva2VuczogZnVuY3Rpb24oZXhwcmVzc2lvbikge1xuICAgICAgICAgIHZhciBsZXhlciA9IG5ldyBMZXhlcigpO1xuICAgICAgICAgIHZhciB0b2tlbnMgPSBsZXhlci50b2tlbml6ZShleHByZXNzaW9uKTtcbiAgICAgICAgICB0b2tlbnMucHVzaCh7dHlwZTogVE9LX0VPRiwgdmFsdWU6IFwiXCIsIHN0YXJ0OiBleHByZXNzaW9uLmxlbmd0aH0pO1xuICAgICAgICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgICAgfSxcblxuICAgICAgZXhwcmVzc2lvbjogZnVuY3Rpb24ocmJwKSB7XG4gICAgICAgICAgdmFyIGxlZnRUb2tlbiA9IHRoaXMuX2xvb2thaGVhZFRva2VuKDApO1xuICAgICAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgICAgICB2YXIgbGVmdCA9IHRoaXMubnVkKGxlZnRUb2tlbik7XG4gICAgICAgICAgdmFyIGN1cnJlbnRUb2tlbiA9IHRoaXMuX2xvb2thaGVhZCgwKTtcbiAgICAgICAgICB3aGlsZSAocmJwIDwgYmluZGluZ1Bvd2VyW2N1cnJlbnRUb2tlbl0pIHtcbiAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgICAgICAgICBsZWZ0ID0gdGhpcy5sZWQoY3VycmVudFRva2VuLCBsZWZ0KTtcbiAgICAgICAgICAgICAgY3VycmVudFRva2VuID0gdGhpcy5fbG9va2FoZWFkKDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbGVmdDtcbiAgICAgIH0sXG5cbiAgICAgIF9sb29rYWhlYWQ6IGZ1bmN0aW9uKG51bWJlcikge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRva2Vuc1t0aGlzLmluZGV4ICsgbnVtYmVyXS50eXBlO1xuICAgICAgfSxcblxuICAgICAgX2xvb2thaGVhZFRva2VuOiBmdW5jdGlvbihudW1iZXIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5pbmRleCArIG51bWJlcl07XG4gICAgICB9LFxuXG4gICAgICBfYWR2YW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdGhpcy5pbmRleCsrO1xuICAgICAgfSxcblxuICAgICAgbnVkOiBmdW5jdGlvbih0b2tlbikge1xuICAgICAgICB2YXIgbGVmdDtcbiAgICAgICAgdmFyIHJpZ2h0O1xuICAgICAgICB2YXIgZXhwcmVzc2lvbjtcbiAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XG4gICAgICAgICAgY2FzZSBUT0tfTElURVJBTDpcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJMaXRlcmFsXCIsIHZhbHVlOiB0b2tlbi52YWx1ZX07XG4gICAgICAgICAgY2FzZSBUT0tfVU5RVU9URURJREVOVElGSUVSOlxuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIkZpZWxkXCIsIG5hbWU6IHRva2VuLnZhbHVlfTtcbiAgICAgICAgICBjYXNlIFRPS19RVU9URURJREVOVElGSUVSOlxuICAgICAgICAgICAgdmFyIG5vZGUgPSB7dHlwZTogXCJGaWVsZFwiLCBuYW1lOiB0b2tlbi52YWx1ZX07XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfTFBBUkVOKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUXVvdGVkIGlkZW50aWZpZXIgbm90IGFsbG93ZWQgZm9yIGZ1bmN0aW9uIG5hbWVzLlwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFRPS19OT1Q6XG4gICAgICAgICAgICByaWdodCA9IHRoaXMuZXhwcmVzc2lvbihiaW5kaW5nUG93ZXIuTm90KTtcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJOb3RFeHByZXNzaW9uXCIsIGNoaWxkcmVuOiBbcmlnaHRdfTtcbiAgICAgICAgICBjYXNlIFRPS19TVEFSOlxuICAgICAgICAgICAgbGVmdCA9IHt0eXBlOiBcIklkZW50aXR5XCJ9O1xuICAgICAgICAgICAgcmlnaHQgPSBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX1JCUkFDS0VUKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGluIGEgbXVsdGlzZWxlY3QsXG4gICAgICAgICAgICAgICAgLy8gW2EsIGIsICpdXG4gICAgICAgICAgICAgICAgcmlnaHQgPSB7dHlwZTogXCJJZGVudGl0eVwifTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9wYXJzZVByb2plY3Rpb25SSFMoYmluZGluZ1Bvd2VyLlN0YXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIlZhbHVlUHJvamVjdGlvblwiLCBjaGlsZHJlbjogW2xlZnQsIHJpZ2h0XX07XG4gICAgICAgICAgY2FzZSBUT0tfRklMVEVSOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGVkKHRva2VuLnR5cGUsIHt0eXBlOiBcIklkZW50aXR5XCJ9KTtcbiAgICAgICAgICBjYXNlIFRPS19MQlJBQ0U6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VNdWx0aXNlbGVjdEhhc2goKTtcbiAgICAgICAgICBjYXNlIFRPS19GTEFUVEVOOlxuICAgICAgICAgICAgbGVmdCA9IHt0eXBlOiBUT0tfRkxBVFRFTiwgY2hpbGRyZW46IFt7dHlwZTogXCJJZGVudGl0eVwifV19O1xuICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9wYXJzZVByb2plY3Rpb25SSFMoYmluZGluZ1Bvd2VyLkZsYXR0ZW4pO1xuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIlByb2plY3Rpb25cIiwgY2hpbGRyZW46IFtsZWZ0LCByaWdodF19O1xuICAgICAgICAgIGNhc2UgVE9LX0xCUkFDS0VUOlxuICAgICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX05VTUJFUiB8fCB0aGlzLl9sb29rYWhlYWQoMCkgPT09IFRPS19DT0xPTikge1xuICAgICAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5fcGFyc2VJbmRleEV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdElmU2xpY2Uoe3R5cGU6IFwiSWRlbnRpdHlcIn0sIHJpZ2h0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfU1RBUiAmJlxuICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb29rYWhlYWQoMSkgPT09IFRPS19SQlJBQ0tFVCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9wYXJzZVByb2plY3Rpb25SSFMoYmluZGluZ1Bvd2VyLlN0YXIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJQcm9qZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3t0eXBlOiBcIklkZW50aXR5XCJ9LCByaWdodF19O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VNdWx0aXNlbGVjdExpc3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgVE9LX0NVUlJFTlQ6XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19DVVJSRU5UfTtcbiAgICAgICAgICBjYXNlIFRPS19FWFBSRUY6XG4gICAgICAgICAgICBleHByZXNzaW9uID0gdGhpcy5leHByZXNzaW9uKGJpbmRpbmdQb3dlci5FeHByZWYpO1xuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIkV4cHJlc3Npb25SZWZlcmVuY2VcIiwgY2hpbGRyZW46IFtleHByZXNzaW9uXX07XG4gICAgICAgICAgY2FzZSBUT0tfTFBBUkVOOlxuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLl9sb29rYWhlYWQoMCkgIT09IFRPS19SUEFSRU4pIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0NVUlJFTlQpIHtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uID0ge3R5cGU6IFRPS19DVVJSRU5UfTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbiA9IHRoaXMuZXhwcmVzc2lvbigwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhcmdzLnB1c2goZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfUlBBUkVOKTtcbiAgICAgICAgICAgIHJldHVybiBhcmdzWzBdO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aGlzLl9lcnJvclRva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgbGVkOiBmdW5jdGlvbih0b2tlbk5hbWUsIGxlZnQpIHtcbiAgICAgICAgdmFyIHJpZ2h0O1xuICAgICAgICBzd2l0Y2godG9rZW5OYW1lKSB7XG4gICAgICAgICAgY2FzZSBUT0tfRE9UOlxuICAgICAgICAgICAgdmFyIHJicCA9IGJpbmRpbmdQb3dlci5Eb3Q7XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApICE9PSBUT0tfU1RBUikge1xuICAgICAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5fcGFyc2VEb3RSSFMocmJwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiU3ViZXhwcmVzc2lvblwiLCBjaGlsZHJlbjogW2xlZnQsIHJpZ2h0XX07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIENyZWF0aW5nIGEgcHJvamVjdGlvbi5cbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9wYXJzZVByb2plY3Rpb25SSFMocmJwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiVmFsdWVQcm9qZWN0aW9uXCIsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHRdfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgVE9LX1BJUEU6XG4gICAgICAgICAgICByaWdodCA9IHRoaXMuZXhwcmVzc2lvbihiaW5kaW5nUG93ZXIuUGlwZSk7XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19QSVBFLCBjaGlsZHJlbjogW2xlZnQsIHJpZ2h0XX07XG4gICAgICAgICAgY2FzZSBUT0tfT1I6XG4gICAgICAgICAgICByaWdodCA9IHRoaXMuZXhwcmVzc2lvbihiaW5kaW5nUG93ZXIuT3IpO1xuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIk9yRXhwcmVzc2lvblwiLCBjaGlsZHJlbjogW2xlZnQsIHJpZ2h0XX07XG4gICAgICAgICAgY2FzZSBUT0tfQU5EOlxuICAgICAgICAgICAgcmlnaHQgPSB0aGlzLmV4cHJlc3Npb24oYmluZGluZ1Bvd2VyLkFuZCk7XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiQW5kRXhwcmVzc2lvblwiLCBjaGlsZHJlbjogW2xlZnQsIHJpZ2h0XX07XG4gICAgICAgICAgY2FzZSBUT0tfTFBBUkVOOlxuICAgICAgICAgICAgdmFyIG5hbWUgPSBsZWZ0Lm5hbWU7XG4gICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICAgICAgdmFyIGV4cHJlc3Npb24sIG5vZGU7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5fbG9va2FoZWFkKDApICE9PSBUT0tfUlBBUkVOKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgPT09IFRPS19DVVJSRU5UKSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbiA9IHt0eXBlOiBUT0tfQ1VSUkVOVH07XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGV4cHJlc3Npb24gPSB0aGlzLmV4cHJlc3Npb24oMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0NPTU1BKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX0NPTU1BKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhcmdzLnB1c2goZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfUlBBUkVOKTtcbiAgICAgICAgICAgIG5vZGUgPSB7dHlwZTogXCJGdW5jdGlvblwiLCBuYW1lOiBuYW1lLCBjaGlsZHJlbjogYXJnc307XG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICBjYXNlIFRPS19GSUxURVI6XG4gICAgICAgICAgICB2YXIgY29uZGl0aW9uID0gdGhpcy5leHByZXNzaW9uKDApO1xuICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX1JCUkFDS0VUKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgPT09IFRPS19GTEFUVEVOKSB7XG4gICAgICAgICAgICAgIHJpZ2h0ID0ge3R5cGU6IFwiSWRlbnRpdHlcIn07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByaWdodCA9IHRoaXMuX3BhcnNlUHJvamVjdGlvblJIUyhiaW5kaW5nUG93ZXIuRmlsdGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJGaWx0ZXJQcm9qZWN0aW9uXCIsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHQsIGNvbmRpdGlvbl19O1xuICAgICAgICAgIGNhc2UgVE9LX0ZMQVRURU46XG4gICAgICAgICAgICB2YXIgbGVmdE5vZGUgPSB7dHlwZTogVE9LX0ZMQVRURU4sIGNoaWxkcmVuOiBbbGVmdF19O1xuICAgICAgICAgICAgdmFyIHJpZ2h0Tm9kZSA9IHRoaXMuX3BhcnNlUHJvamVjdGlvblJIUyhiaW5kaW5nUG93ZXIuRmxhdHRlbik7XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiUHJvamVjdGlvblwiLCBjaGlsZHJlbjogW2xlZnROb2RlLCByaWdodE5vZGVdfTtcbiAgICAgICAgICBjYXNlIFRPS19FUTpcbiAgICAgICAgICBjYXNlIFRPS19ORTpcbiAgICAgICAgICBjYXNlIFRPS19HVDpcbiAgICAgICAgICBjYXNlIFRPS19HVEU6XG4gICAgICAgICAgY2FzZSBUT0tfTFQ6XG4gICAgICAgICAgY2FzZSBUT0tfTFRFOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlQ29tcGFyYXRvcihsZWZ0LCB0b2tlbk5hbWUpO1xuICAgICAgICAgIGNhc2UgVE9LX0xCUkFDS0VUOlxuICAgICAgICAgICAgdmFyIHRva2VuID0gdGhpcy5fbG9va2FoZWFkVG9rZW4oMCk7XG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVE9LX05VTUJFUiB8fCB0b2tlbi50eXBlID09PSBUT0tfQ09MT04pIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IHRoaXMuX3BhcnNlSW5kZXhFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2plY3RJZlNsaWNlKGxlZnQsIHJpZ2h0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX1NUQVIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21hdGNoKFRPS19SQlJBQ0tFVCk7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9wYXJzZVByb2plY3Rpb25SSFMoYmluZGluZ1Bvd2VyLlN0YXIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJQcm9qZWN0aW9uXCIsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHRdfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aGlzLl9lcnJvclRva2VuKHRoaXMuX2xvb2thaGVhZFRva2VuKDApKTtcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgX21hdGNoOiBmdW5jdGlvbih0b2tlblR5cGUpIHtcbiAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSB0b2tlblR5cGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5fbG9va2FoZWFkVG9rZW4oMCk7XG4gICAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkV4cGVjdGVkIFwiICsgdG9rZW5UeXBlICsgXCIsIGdvdDogXCIgKyB0LnR5cGUpO1xuICAgICAgICAgICAgICBlcnJvci5uYW1lID0gXCJQYXJzZXJFcnJvclwiO1xuICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICBfZXJyb3JUb2tlbjogZnVuY3Rpb24odG9rZW4pIHtcbiAgICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoXCJJbnZhbGlkIHRva2VuIChcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnR5cGUgKyBcIik6IFxcXCJcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnZhbHVlICsgXCJcXFwiXCIpO1xuICAgICAgICAgIGVycm9yLm5hbWUgPSBcIlBhcnNlckVycm9yXCI7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9LFxuXG5cbiAgICAgIF9wYXJzZUluZGV4RXhwcmVzc2lvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0NPTE9OIHx8IHRoaXMuX2xvb2thaGVhZCgxKSA9PT0gVE9LX0NPTE9OKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXJzZVNsaWNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBub2RlID0ge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJJbmRleFwiLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuX2xvb2thaGVhZFRva2VuKDApLnZhbHVlfTtcbiAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfUkJSQUNLRVQpO1xuICAgICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICBfcHJvamVjdElmU2xpY2U6IGZ1bmN0aW9uKGxlZnQsIHJpZ2h0KSB7XG4gICAgICAgICAgdmFyIGluZGV4RXhwciA9IHt0eXBlOiBcIkluZGV4RXhwcmVzc2lvblwiLCBjaGlsZHJlbjogW2xlZnQsIHJpZ2h0XX07XG4gICAgICAgICAgaWYgKHJpZ2h0LnR5cGUgPT09IFwiU2xpY2VcIikge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgdHlwZTogXCJQcm9qZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW2luZGV4RXhwciwgdGhpcy5fcGFyc2VQcm9qZWN0aW9uUkhTKGJpbmRpbmdQb3dlci5TdGFyKV1cbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gaW5kZXhFeHByO1xuICAgICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIF9wYXJzZVNsaWNlRXhwcmVzc2lvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gW3N0YXJ0OmVuZDpzdGVwXSB3aGVyZSBlYWNoIHBhcnQgaXMgb3B0aW9uYWwsIGFzIHdlbGwgYXMgdGhlIGxhc3RcbiAgICAgICAgICAvLyBjb2xvbi5cbiAgICAgICAgICB2YXIgcGFydHMgPSBbbnVsbCwgbnVsbCwgbnVsbF07XG4gICAgICAgICAgdmFyIGluZGV4ID0gMDtcbiAgICAgICAgICB2YXIgY3VycmVudFRva2VuID0gdGhpcy5fbG9va2FoZWFkKDApO1xuICAgICAgICAgIHdoaWxlIChjdXJyZW50VG9rZW4gIT09IFRPS19SQlJBQ0tFVCAmJiBpbmRleCA8IDMpIHtcbiAgICAgICAgICAgICAgaWYgKGN1cnJlbnRUb2tlbiA9PT0gVE9LX0NPTE9OKSB7XG4gICAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRUb2tlbiA9PT0gVE9LX05VTUJFUikge1xuICAgICAgICAgICAgICAgICAgcGFydHNbaW5kZXhdID0gdGhpcy5fbG9va2FoZWFkVG9rZW4oMCkudmFsdWU7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuX2xvb2thaGVhZCgwKTtcbiAgICAgICAgICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIlN5bnRheCBlcnJvciwgdW5leHBlY3RlZCB0b2tlbjogXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQudmFsdWUgKyBcIihcIiArIHQudHlwZSArIFwiKVwiKTtcbiAgICAgICAgICAgICAgICAgIGVycm9yLm5hbWUgPSBcIlBhcnNlcmVycm9yXCI7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjdXJyZW50VG9rZW4gPSB0aGlzLl9sb29rYWhlYWQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX21hdGNoKFRPS19SQlJBQ0tFVCk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogXCJTbGljZVwiLFxuICAgICAgICAgICAgICBjaGlsZHJlbjogcGFydHNcbiAgICAgICAgICB9O1xuICAgICAgfSxcblxuICAgICAgX3BhcnNlQ29tcGFyYXRvcjogZnVuY3Rpb24obGVmdCwgY29tcGFyYXRvcikge1xuICAgICAgICB2YXIgcmlnaHQgPSB0aGlzLmV4cHJlc3Npb24oYmluZGluZ1Bvd2VyW2NvbXBhcmF0b3JdKTtcbiAgICAgICAgcmV0dXJuIHt0eXBlOiBcIkNvbXBhcmF0b3JcIiwgbmFtZTogY29tcGFyYXRvciwgY2hpbGRyZW46IFtsZWZ0LCByaWdodF19O1xuICAgICAgfSxcblxuICAgICAgX3BhcnNlRG90UkhTOiBmdW5jdGlvbihyYnApIHtcbiAgICAgICAgICB2YXIgbG9va2FoZWFkID0gdGhpcy5fbG9va2FoZWFkKDApO1xuICAgICAgICAgIHZhciBleHByVG9rZW5zID0gW1RPS19VTlFVT1RFRElERU5USUZJRVIsIFRPS19RVU9URURJREVOVElGSUVSLCBUT0tfU1RBUl07XG4gICAgICAgICAgaWYgKGV4cHJUb2tlbnMuaW5kZXhPZihsb29rYWhlYWQpID49IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbihyYnApO1xuICAgICAgICAgIH0gZWxzZSBpZiAobG9va2FoZWFkID09PSBUT0tfTEJSQUNLRVQpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX0xCUkFDS0VUKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlTXVsdGlzZWxlY3RMaXN0KCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChsb29rYWhlYWQgPT09IFRPS19MQlJBQ0UpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX0xCUkFDRSk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXJzZU11bHRpc2VsZWN0SGFzaCgpO1xuICAgICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIF9wYXJzZVByb2plY3Rpb25SSFM6IGZ1bmN0aW9uKHJicCkge1xuICAgICAgICAgIHZhciByaWdodDtcbiAgICAgICAgICBpZiAoYmluZGluZ1Bvd2VyW3RoaXMuX2xvb2thaGVhZCgwKV0gPCAxMCkge1xuICAgICAgICAgICAgICByaWdodCA9IHt0eXBlOiBcIklkZW50aXR5XCJ9O1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfTEJSQUNLRVQpIHtcbiAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLmV4cHJlc3Npb24ocmJwKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0ZJTFRFUikge1xuICAgICAgICAgICAgICByaWdodCA9IHRoaXMuZXhwcmVzc2lvbihyYnApO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfRE9UKSB7XG4gICAgICAgICAgICAgIHRoaXMuX21hdGNoKFRPS19ET1QpO1xuICAgICAgICAgICAgICByaWdodCA9IHRoaXMuX3BhcnNlRG90UkhTKHJicCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLl9sb29rYWhlYWRUb2tlbigwKTtcbiAgICAgICAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKFwiU3l0YW54IGVycm9yLCB1bmV4cGVjdGVkIHRva2VuOiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LnZhbHVlICsgXCIoXCIgKyB0LnR5cGUgKyBcIilcIik7XG4gICAgICAgICAgICAgIGVycm9yLm5hbWUgPSBcIlBhcnNlckVycm9yXCI7XG4gICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmlnaHQ7XG4gICAgICB9LFxuXG4gICAgICBfcGFyc2VNdWx0aXNlbGVjdExpc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBleHByZXNzaW9ucyA9IFtdO1xuICAgICAgICAgIHdoaWxlICh0aGlzLl9sb29rYWhlYWQoMCkgIT09IFRPS19SQlJBQ0tFVCkge1xuICAgICAgICAgICAgICB2YXIgZXhwcmVzc2lvbiA9IHRoaXMuZXhwcmVzc2lvbigwKTtcbiAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0NPTU1BKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfQ09NTUEpO1xuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX1JCUkFDS0VUKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgdG9rZW4gUmJyYWNrZXRcIik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX1JCUkFDS0VUKTtcbiAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiTXVsdGlTZWxlY3RMaXN0XCIsIGNoaWxkcmVuOiBleHByZXNzaW9uc307XG4gICAgICB9LFxuXG4gICAgICBfcGFyc2VNdWx0aXNlbGVjdEhhc2g6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFpcnMgPSBbXTtcbiAgICAgICAgdmFyIGlkZW50aWZpZXJUeXBlcyA9IFtUT0tfVU5RVU9URURJREVOVElGSUVSLCBUT0tfUVVPVEVESURFTlRJRklFUl07XG4gICAgICAgIHZhciBrZXlUb2tlbiwga2V5TmFtZSwgdmFsdWUsIG5vZGU7XG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICBrZXlUb2tlbiA9IHRoaXMuX2xvb2thaGVhZFRva2VuKDApO1xuICAgICAgICAgIGlmIChpZGVudGlmaWVyVHlwZXMuaW5kZXhPZihrZXlUb2tlbi50eXBlKSA8IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGluZyBhbiBpZGVudGlmaWVyIHRva2VuLCBnb3Q6IFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlUb2tlbi50eXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAga2V5TmFtZSA9IGtleVRva2VuLnZhbHVlO1xuICAgICAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfQ09MT04pO1xuICAgICAgICAgIHZhbHVlID0gdGhpcy5leHByZXNzaW9uKDApO1xuICAgICAgICAgIG5vZGUgPSB7dHlwZTogXCJLZXlWYWx1ZVBhaXJcIiwgbmFtZToga2V5TmFtZSwgdmFsdWU6IHZhbHVlfTtcbiAgICAgICAgICBwYWlycy5wdXNoKG5vZGUpO1xuICAgICAgICAgIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgPT09IFRPS19DT01NQSkge1xuICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX0NPTU1BKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX1JCUkFDRSkge1xuICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX1JCUkFDRSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHt0eXBlOiBcIk11bHRpU2VsZWN0SGFzaFwiLCBjaGlsZHJlbjogcGFpcnN9O1xuICAgICAgfVxuICB9O1xuXG5cbiAgZnVuY3Rpb24gVHJlZUludGVycHJldGVyKHJ1bnRpbWUpIHtcbiAgICB0aGlzLnJ1bnRpbWUgPSBydW50aW1lO1xuICB9XG5cbiAgVHJlZUludGVycHJldGVyLnByb3RvdHlwZSA9IHtcbiAgICAgIHNlYXJjaDogZnVuY3Rpb24obm9kZSwgdmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy52aXNpdChub2RlLCB2YWx1ZSk7XG4gICAgICB9LFxuXG4gICAgICB2aXNpdDogZnVuY3Rpb24obm9kZSwgdmFsdWUpIHtcbiAgICAgICAgICB2YXIgbWF0Y2hlZCwgY3VycmVudCwgcmVzdWx0LCBmaXJzdCwgc2Vjb25kLCBmaWVsZCwgbGVmdCwgcmlnaHQsIGNvbGxlY3RlZCwgaTtcbiAgICAgICAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcIkZpZWxkXCI6XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCApIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgZmllbGQgPSB2YWx1ZVtub2RlLm5hbWVdO1xuICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIlN1YmV4cHJlc3Npb25cIjpcbiAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0sIHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgXCJJbmRleEV4cHJlc3Npb25cIjpcbiAgICAgICAgICAgICAgbGVmdCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblswXSwgdmFsdWUpO1xuICAgICAgICAgICAgICByaWdodCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsxXSwgbGVmdCk7XG4gICAgICAgICAgICAgIHJldHVybiByaWdodDtcbiAgICAgICAgICAgIGNhc2UgXCJJbmRleFwiOlxuICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIGluZGV4ID0gbm9kZS52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gdmFsdWUubGVuZ3RoICsgaW5kZXg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWVbaW5kZXhdO1xuICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlIFwiU2xpY2VcIjpcbiAgICAgICAgICAgICAgaWYgKCFpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhciBzbGljZVBhcmFtcyA9IG5vZGUuY2hpbGRyZW4uc2xpY2UoMCk7XG4gICAgICAgICAgICAgIHZhciBjb21wdXRlZCA9IHRoaXMuY29tcHV0ZVNsaWNlUGFyYW1zKHZhbHVlLmxlbmd0aCwgc2xpY2VQYXJhbXMpO1xuICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBjb21wdXRlZFswXTtcbiAgICAgICAgICAgICAgdmFyIHN0b3AgPSBjb21wdXRlZFsxXTtcbiAgICAgICAgICAgICAgdmFyIHN0ZXAgPSBjb21wdXRlZFsyXTtcbiAgICAgICAgICAgICAgcmVzdWx0ID0gW107XG4gICAgICAgICAgICAgIGlmIChzdGVwID4gMCkge1xuICAgICAgICAgICAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh2YWx1ZVtpXSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA+IHN0b3A7IGkgKz0gc3RlcCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlW2ldKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSBcIlByb2plY3Rpb25cIjpcbiAgICAgICAgICAgICAgLy8gRXZhbHVhdGUgbGVmdCBjaGlsZC5cbiAgICAgICAgICAgICAgdmFyIGJhc2UgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0sIHZhbHVlKTtcbiAgICAgICAgICAgICAgaWYgKCFpc0FycmF5KGJhc2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29sbGVjdGVkID0gW107XG4gICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBiYXNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsxXSwgYmFzZVtpXSk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3RlZC5wdXNoKGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gY29sbGVjdGVkO1xuICAgICAgICAgICAgY2FzZSBcIlZhbHVlUHJvamVjdGlvblwiOlxuICAgICAgICAgICAgICAvLyBFdmFsdWF0ZSBsZWZ0IGNoaWxkLlxuICAgICAgICAgICAgICBiYXNlID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghaXNPYmplY3QoYmFzZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb2xsZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG9ialZhbHVlcyhiYXNlKTtcbiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0sIHZhbHVlc1tpXSk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3RlZC5wdXNoKGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gY29sbGVjdGVkO1xuICAgICAgICAgICAgY2FzZSBcIkZpbHRlclByb2plY3Rpb25cIjpcbiAgICAgICAgICAgICAgYmFzZSA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblswXSwgdmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkoYmFzZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgZmlsdGVyZWQgPSBbXTtcbiAgICAgICAgICAgICAgdmFyIGZpbmFsUmVzdWx0cyA9IFtdO1xuICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYmFzZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIG1hdGNoZWQgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMl0sIGJhc2VbaV0pO1xuICAgICAgICAgICAgICAgIGlmICghaXNGYWxzZShtYXRjaGVkKSkge1xuICAgICAgICAgICAgICAgICAgZmlsdGVyZWQucHVzaChiYXNlW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBmaWx0ZXJlZC5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0sIGZpbHRlcmVkW2pdKTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgZmluYWxSZXN1bHRzLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBmaW5hbFJlc3VsdHM7XG4gICAgICAgICAgICBjYXNlIFwiQ29tcGFyYXRvclwiOlxuICAgICAgICAgICAgICBmaXJzdCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblswXSwgdmFsdWUpO1xuICAgICAgICAgICAgICBzZWNvbmQgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0sIHZhbHVlKTtcbiAgICAgICAgICAgICAgc3dpdGNoKG5vZGUubmFtZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgVE9LX0VROlxuICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gc3RyaWN0RGVlcEVxdWFsKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBUT0tfTkU6XG4gICAgICAgICAgICAgICAgICByZXN1bHQgPSAhc3RyaWN0RGVlcEVxdWFsKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBUT0tfR1Q6XG4gICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXJzdCA+IHNlY29uZDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgVE9LX0dURTpcbiAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcnN0ID49IHNlY29uZDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgVE9LX0xUOlxuICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmlyc3QgPCBzZWNvbmQ7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFRPS19MVEU6XG4gICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXJzdCA8PSBzZWNvbmQ7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBjb21wYXJhdG9yOiBcIiArIG5vZGUubmFtZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgVE9LX0ZMQVRURU46XG4gICAgICAgICAgICAgIHZhciBvcmlnaW5hbCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblswXSwgdmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkob3JpZ2luYWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIG1lcmdlZCA9IFtdO1xuICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb3JpZ2luYWwubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gb3JpZ2luYWxbaV07XG4gICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoY3VycmVudCkpIHtcbiAgICAgICAgICAgICAgICAgIG1lcmdlZC5wdXNoLmFwcGx5KG1lcmdlZCwgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIG1lcmdlZC5wdXNoKGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gbWVyZ2VkO1xuICAgICAgICAgICAgY2FzZSBcIklkZW50aXR5XCI6XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJNdWx0aVNlbGVjdExpc3RcIjpcbiAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29sbGVjdGVkID0gW107XG4gICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICBjb2xsZWN0ZWQucHVzaCh0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5baV0sIHZhbHVlKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RlZDtcbiAgICAgICAgICAgIGNhc2UgXCJNdWx0aVNlbGVjdEhhc2hcIjpcbiAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29sbGVjdGVkID0ge307XG4gICAgICAgICAgICAgIHZhciBjaGlsZDtcbiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV07XG4gICAgICAgICAgICAgICAgY29sbGVjdGVkW2NoaWxkLm5hbWVdID0gdGhpcy52aXNpdChjaGlsZC52YWx1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiT3JFeHByZXNzaW9uXCI6XG4gICAgICAgICAgICAgIG1hdGNoZWQgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0sIHZhbHVlKTtcbiAgICAgICAgICAgICAgaWYgKGlzRmFsc2UobWF0Y2hlZCkpIHtcbiAgICAgICAgICAgICAgICAgIG1hdGNoZWQgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0sIHZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICAgICAgICAgIGNhc2UgXCJBbmRFeHByZXNzaW9uXCI6XG4gICAgICAgICAgICAgIGZpcnN0ID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgaWYgKGlzRmFsc2UoZmlyc3QpID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0sIHZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgXCJOb3RFeHByZXNzaW9uXCI6XG4gICAgICAgICAgICAgIGZpcnN0ID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIHJldHVybiBpc0ZhbHNlKGZpcnN0KTtcbiAgICAgICAgICAgIGNhc2UgXCJMaXRlcmFsXCI6XG4gICAgICAgICAgICAgIHJldHVybiBub2RlLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBUT0tfUElQRTpcbiAgICAgICAgICAgICAgbGVmdCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblswXSwgdmFsdWUpO1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzFdLCBsZWZ0KTtcbiAgICAgICAgICAgIGNhc2UgVE9LX0NVUlJFTlQ6XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJGdW5jdGlvblwiOlxuICAgICAgICAgICAgICB2YXIgcmVzb2x2ZWRBcmdzID0gW107XG4gICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlZEFyZ3MucHVzaCh0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5baV0sIHZhbHVlKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucnVudGltZS5jYWxsRnVuY3Rpb24obm9kZS5uYW1lLCByZXNvbHZlZEFyZ3MpO1xuICAgICAgICAgICAgY2FzZSBcIkV4cHJlc3Npb25SZWZlcmVuY2VcIjpcbiAgICAgICAgICAgICAgdmFyIHJlZk5vZGUgPSBub2RlLmNoaWxkcmVuWzBdO1xuICAgICAgICAgICAgICAvLyBUYWcgdGhlIG5vZGUgd2l0aCBhIHNwZWNpZmljIGF0dHJpYnV0ZSBzbyB0aGUgdHlwZVxuICAgICAgICAgICAgICAvLyBjaGVja2VyIHZlcmlmeSB0aGUgdHlwZS5cbiAgICAgICAgICAgICAgcmVmTm9kZS5qbWVzcGF0aFR5cGUgPSBUT0tfRVhQUkVGO1xuICAgICAgICAgICAgICByZXR1cm4gcmVmTm9kZTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gbm9kZSB0eXBlOiBcIiArIG5vZGUudHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgY29tcHV0ZVNsaWNlUGFyYW1zOiBmdW5jdGlvbihhcnJheUxlbmd0aCwgc2xpY2VQYXJhbXMpIHtcbiAgICAgICAgdmFyIHN0YXJ0ID0gc2xpY2VQYXJhbXNbMF07XG4gICAgICAgIHZhciBzdG9wID0gc2xpY2VQYXJhbXNbMV07XG4gICAgICAgIHZhciBzdGVwID0gc2xpY2VQYXJhbXNbMl07XG4gICAgICAgIHZhciBjb21wdXRlZCA9IFtudWxsLCBudWxsLCBudWxsXTtcbiAgICAgICAgaWYgKHN0ZXAgPT09IG51bGwpIHtcbiAgICAgICAgICBzdGVwID0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGVwID09PSAwKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKFwiSW52YWxpZCBzbGljZSwgc3RlcCBjYW5ub3QgYmUgMFwiKTtcbiAgICAgICAgICBlcnJvci5uYW1lID0gXCJSdW50aW1lRXJyb3JcIjtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3RlcFZhbHVlTmVnYXRpdmUgPSBzdGVwIDwgMCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICBpZiAoc3RhcnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gc3RlcFZhbHVlTmVnYXRpdmUgPyBhcnJheUxlbmd0aCAtIDEgOiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnQgPSB0aGlzLmNhcFNsaWNlUmFuZ2UoYXJyYXlMZW5ndGgsIHN0YXJ0LCBzdGVwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdG9wID09PSBudWxsKSB7XG4gICAgICAgICAgICBzdG9wID0gc3RlcFZhbHVlTmVnYXRpdmUgPyAtMSA6IGFycmF5TGVuZ3RoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RvcCA9IHRoaXMuY2FwU2xpY2VSYW5nZShhcnJheUxlbmd0aCwgc3RvcCwgc3RlcCk7XG4gICAgICAgIH1cbiAgICAgICAgY29tcHV0ZWRbMF0gPSBzdGFydDtcbiAgICAgICAgY29tcHV0ZWRbMV0gPSBzdG9wO1xuICAgICAgICBjb21wdXRlZFsyXSA9IHN0ZXA7XG4gICAgICAgIHJldHVybiBjb21wdXRlZDtcbiAgICAgIH0sXG5cbiAgICAgIGNhcFNsaWNlUmFuZ2U6IGZ1bmN0aW9uKGFycmF5TGVuZ3RoLCBhY3R1YWxWYWx1ZSwgc3RlcCkge1xuICAgICAgICAgIGlmIChhY3R1YWxWYWx1ZSA8IDApIHtcbiAgICAgICAgICAgICAgYWN0dWFsVmFsdWUgKz0gYXJyYXlMZW5ndGg7XG4gICAgICAgICAgICAgIGlmIChhY3R1YWxWYWx1ZSA8IDApIHtcbiAgICAgICAgICAgICAgICAgIGFjdHVhbFZhbHVlID0gc3RlcCA8IDAgPyAtMSA6IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGFjdHVhbFZhbHVlID49IGFycmF5TGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGFjdHVhbFZhbHVlID0gc3RlcCA8IDAgPyBhcnJheUxlbmd0aCAtIDEgOiBhcnJheUxlbmd0aDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjdHVhbFZhbHVlO1xuICAgICAgfVxuXG4gIH07XG5cbiAgZnVuY3Rpb24gUnVudGltZShpbnRlcnByZXRlcikge1xuICAgIHRoaXMuX2ludGVycHJldGVyID0gaW50ZXJwcmV0ZXI7XG4gICAgdGhpcy5mdW5jdGlvblRhYmxlID0ge1xuICAgICAgICAvLyBuYW1lOiBbZnVuY3Rpb24sIDxzaWduYXR1cmU+XVxuICAgICAgICAvLyBUaGUgPHNpZ25hdHVyZT4gY2FuIGJlOlxuICAgICAgICAvL1xuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgYXJnczogW1t0eXBlMSwgdHlwZTJdLCBbdHlwZTEsIHR5cGUyXV0sXG4gICAgICAgIC8vICAgdmFyaWFkaWM6IHRydWV8ZmFsc2VcbiAgICAgICAgLy8gfVxuICAgICAgICAvL1xuICAgICAgICAvLyBFYWNoIGFyZyBpbiB0aGUgYXJnIGxpc3QgaXMgYSBsaXN0IG9mIHZhbGlkIHR5cGVzXG4gICAgICAgIC8vIChpZiB0aGUgZnVuY3Rpb24gaXMgb3ZlcmxvYWRlZCBhbmQgc3VwcG9ydHMgbXVsdGlwbGVcbiAgICAgICAgLy8gdHlwZXMuICBJZiB0aGUgdHlwZSBpcyBcImFueVwiIHRoZW4gbm8gdHlwZSBjaGVja2luZ1xuICAgICAgICAvLyBvY2N1cnMgb24gdGhlIGFyZ3VtZW50LiAgVmFyaWFkaWMgaXMgb3B0aW9uYWxcbiAgICAgICAgLy8gYW5kIGlmIG5vdCBwcm92aWRlZCBpcyBhc3N1bWVkIHRvIGJlIGZhbHNlLlxuICAgICAgICBhYnM6IHtfZnVuYzogdGhpcy5fZnVuY3Rpb25BYnMsIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX05VTUJFUl19XX0sXG4gICAgICAgIGF2Zzoge19mdW5jOiB0aGlzLl9mdW5jdGlvbkF2ZywgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQVJSQVlfTlVNQkVSXX1dfSxcbiAgICAgICAgY2VpbDoge19mdW5jOiB0aGlzLl9mdW5jdGlvbkNlaWwsIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX05VTUJFUl19XX0sXG4gICAgICAgIGNvbnRhaW5zOiB7XG4gICAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25Db250YWlucyxcbiAgICAgICAgICAgIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX1NUUklORywgVFlQRV9BUlJBWV19LFxuICAgICAgICAgICAgICAgICAgICAgICAge3R5cGVzOiBbVFlQRV9BTlldfV19LFxuICAgICAgICBcImVuZHNfd2l0aFwiOiB7XG4gICAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25FbmRzV2l0aCxcbiAgICAgICAgICAgIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX1NUUklOR119LCB7dHlwZXM6IFtUWVBFX1NUUklOR119XX0sXG4gICAgICAgIGZsb29yOiB7X2Z1bmM6IHRoaXMuX2Z1bmN0aW9uRmxvb3IsIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX05VTUJFUl19XX0sXG4gICAgICAgIGxlbmd0aDoge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uTGVuZ3RoLFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfU1RSSU5HLCBUWVBFX0FSUkFZLCBUWVBFX09CSkVDVF19XX0sXG4gICAgICAgIG1hcDoge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uTWFwLFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfRVhQUkVGXX0sIHt0eXBlczogW1RZUEVfQVJSQVldfV19LFxuICAgICAgICBtYXg6IHtcbiAgICAgICAgICAgIF9mdW5jOiB0aGlzLl9mdW5jdGlvbk1heCxcbiAgICAgICAgICAgIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX0FSUkFZX05VTUJFUiwgVFlQRV9BUlJBWV9TVFJJTkddfV19LFxuICAgICAgICBcIm1lcmdlXCI6IHtcbiAgICAgICAgICAgIF9mdW5jOiB0aGlzLl9mdW5jdGlvbk1lcmdlLFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfT0JKRUNUXSwgdmFyaWFkaWM6IHRydWV9XVxuICAgICAgICB9LFxuICAgICAgICBcIm1heF9ieVwiOiB7XG4gICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uTWF4QnksXG4gICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQVJSQVldfSwge3R5cGVzOiBbVFlQRV9FWFBSRUZdfV1cbiAgICAgICAgfSxcbiAgICAgICAgc3VtOiB7X2Z1bmM6IHRoaXMuX2Z1bmN0aW9uU3VtLCBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BUlJBWV9OVU1CRVJdfV19LFxuICAgICAgICBcInN0YXJ0c193aXRoXCI6IHtcbiAgICAgICAgICAgIF9mdW5jOiB0aGlzLl9mdW5jdGlvblN0YXJ0c1dpdGgsXG4gICAgICAgICAgICBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9TVFJJTkddfSwge3R5cGVzOiBbVFlQRV9TVFJJTkddfV19LFxuICAgICAgICBtaW46IHtcbiAgICAgICAgICAgIF9mdW5jOiB0aGlzLl9mdW5jdGlvbk1pbixcbiAgICAgICAgICAgIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX0FSUkFZX05VTUJFUiwgVFlQRV9BUlJBWV9TVFJJTkddfV19LFxuICAgICAgICBcIm1pbl9ieVwiOiB7XG4gICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uTWluQnksXG4gICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQVJSQVldfSwge3R5cGVzOiBbVFlQRV9FWFBSRUZdfV1cbiAgICAgICAgfSxcbiAgICAgICAgdHlwZToge19mdW5jOiB0aGlzLl9mdW5jdGlvblR5cGUsIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX0FOWV19XX0sXG4gICAgICAgIGtleXM6IHtfZnVuYzogdGhpcy5fZnVuY3Rpb25LZXlzLCBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9PQkpFQ1RdfV19LFxuICAgICAgICB2YWx1ZXM6IHtfZnVuYzogdGhpcy5fZnVuY3Rpb25WYWx1ZXMsIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX09CSkVDVF19XX0sXG4gICAgICAgIHNvcnQ6IHtfZnVuYzogdGhpcy5fZnVuY3Rpb25Tb3J0LCBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BUlJBWV9TVFJJTkcsIFRZUEVfQVJSQVlfTlVNQkVSXX1dfSxcbiAgICAgICAgXCJzb3J0X2J5XCI6IHtcbiAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25Tb3J0QnksXG4gICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQVJSQVldfSwge3R5cGVzOiBbVFlQRV9FWFBSRUZdfV1cbiAgICAgICAgfSxcbiAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uSm9pbixcbiAgICAgICAgICAgIF9zaWduYXR1cmU6IFtcbiAgICAgICAgICAgICAgICB7dHlwZXM6IFtUWVBFX1NUUklOR119LFxuICAgICAgICAgICAgICAgIHt0eXBlczogW1RZUEVfQVJSQVlfU1RSSU5HXX1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgcmV2ZXJzZToge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uUmV2ZXJzZSxcbiAgICAgICAgICAgIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX1NUUklORywgVFlQRV9BUlJBWV19XX0sXG4gICAgICAgIFwidG9fYXJyYXlcIjoge19mdW5jOiB0aGlzLl9mdW5jdGlvblRvQXJyYXksIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX0FOWV19XX0sXG4gICAgICAgIFwidG9fc3RyaW5nXCI6IHtfZnVuYzogdGhpcy5fZnVuY3Rpb25Ub1N0cmluZywgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQU5ZXX1dfSxcbiAgICAgICAgXCJ0b19udW1iZXJcIjoge19mdW5jOiB0aGlzLl9mdW5jdGlvblRvTnVtYmVyLCBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BTlldfV19LFxuICAgICAgICBcIm5vdF9udWxsXCI6IHtcbiAgICAgICAgICAgIF9mdW5jOiB0aGlzLl9mdW5jdGlvbk5vdE51bGwsXG4gICAgICAgICAgICBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BTlldLCB2YXJpYWRpYzogdHJ1ZX1dXG4gICAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgUnVudGltZS5wcm90b3R5cGUgPSB7XG4gICAgY2FsbEZ1bmN0aW9uOiBmdW5jdGlvbihuYW1lLCByZXNvbHZlZEFyZ3MpIHtcbiAgICAgIHZhciBmdW5jdGlvbkVudHJ5ID0gdGhpcy5mdW5jdGlvblRhYmxlW25hbWVdO1xuICAgICAgaWYgKGZ1bmN0aW9uRW50cnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gZnVuY3Rpb246IFwiICsgbmFtZSArIFwiKClcIik7XG4gICAgICB9XG4gICAgICB0aGlzLl92YWxpZGF0ZUFyZ3MobmFtZSwgcmVzb2x2ZWRBcmdzLCBmdW5jdGlvbkVudHJ5Ll9zaWduYXR1cmUpO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uRW50cnkuX2Z1bmMuY2FsbCh0aGlzLCByZXNvbHZlZEFyZ3MpO1xuICAgIH0sXG5cbiAgICBfdmFsaWRhdGVBcmdzOiBmdW5jdGlvbihuYW1lLCBhcmdzLCBzaWduYXR1cmUpIHtcbiAgICAgICAgLy8gVmFsaWRhdGluZyB0aGUgYXJncyByZXF1aXJlcyB2YWxpZGF0aW5nXG4gICAgICAgIC8vIHRoZSBjb3JyZWN0IGFyaXR5IGFuZCB0aGUgY29ycmVjdCB0eXBlIG9mIGVhY2ggYXJnLlxuICAgICAgICAvLyBJZiB0aGUgbGFzdCBhcmd1bWVudCBpcyBkZWNsYXJlZCBhcyB2YXJpYWRpYywgdGhlbiB3ZSBuZWVkXG4gICAgICAgIC8vIGEgbWluaW11bSBudW1iZXIgb2YgYXJncyB0byBiZSByZXF1aXJlZC4gIE90aGVyd2lzZSBpdCBoYXMgdG9cbiAgICAgICAgLy8gYmUgYW4gZXhhY3QgYW1vdW50LlxuICAgICAgICB2YXIgcGx1cmFsaXplZDtcbiAgICAgICAgaWYgKHNpZ25hdHVyZVtzaWduYXR1cmUubGVuZ3RoIC0gMV0udmFyaWFkaWMpIHtcbiAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA8IHNpZ25hdHVyZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwbHVyYWxpemVkID0gc2lnbmF0dXJlLmxlbmd0aCA9PT0gMSA/IFwiIGFyZ3VtZW50XCIgOiBcIiBhcmd1bWVudHNcIjtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudEVycm9yOiBcIiArIG5hbWUgKyBcIigpIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0YWtlcyBhdCBsZWFzdFwiICsgc2lnbmF0dXJlLmxlbmd0aCArIHBsdXJhbGl6ZWQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBidXQgcmVjZWl2ZWQgXCIgKyBhcmdzLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggIT09IHNpZ25hdHVyZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBsdXJhbGl6ZWQgPSBzaWduYXR1cmUubGVuZ3RoID09PSAxID8gXCIgYXJndW1lbnRcIiA6IFwiIGFyZ3VtZW50c1wiO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnRFcnJvcjogXCIgKyBuYW1lICsgXCIoKSBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0YWtlcyBcIiArIHNpZ25hdHVyZS5sZW5ndGggKyBwbHVyYWxpemVkICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBidXQgcmVjZWl2ZWQgXCIgKyBhcmdzLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGN1cnJlbnRTcGVjO1xuICAgICAgICB2YXIgYWN0dWFsVHlwZTtcbiAgICAgICAgdmFyIHR5cGVNYXRjaGVkO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpZ25hdHVyZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdHlwZU1hdGNoZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGN1cnJlbnRTcGVjID0gc2lnbmF0dXJlW2ldLnR5cGVzO1xuICAgICAgICAgICAgYWN0dWFsVHlwZSA9IHRoaXMuX2dldFR5cGVOYW1lKGFyZ3NbaV0pO1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjdXJyZW50U3BlYy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90eXBlTWF0Y2hlcyhhY3R1YWxUeXBlLCBjdXJyZW50U3BlY1tqXSwgYXJnc1tpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZU1hdGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXR5cGVNYXRjaGVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHlwZUVycm9yOiBcIiArIG5hbWUgKyBcIigpIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZCBhcmd1bWVudCBcIiArIChpICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiB0byBiZSB0eXBlIFwiICsgY3VycmVudFNwZWMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBidXQgcmVjZWl2ZWQgdHlwZSBcIiArIGFjdHVhbFR5cGUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBpbnN0ZWFkLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBfdHlwZU1hdGNoZXM6IGZ1bmN0aW9uKGFjdHVhbCwgZXhwZWN0ZWQsIGFyZ1ZhbHVlKSB7XG4gICAgICAgIGlmIChleHBlY3RlZCA9PT0gVFlQRV9BTlkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHBlY3RlZCA9PT0gVFlQRV9BUlJBWV9TVFJJTkcgfHxcbiAgICAgICAgICAgIGV4cGVjdGVkID09PSBUWVBFX0FSUkFZX05VTUJFUiB8fFxuICAgICAgICAgICAgZXhwZWN0ZWQgPT09IFRZUEVfQVJSQVkpIHtcbiAgICAgICAgICAgIC8vIFRoZSBleHBlY3RlZCB0eXBlIGNhbiBlaXRoZXIganVzdCBiZSBhcnJheSxcbiAgICAgICAgICAgIC8vIG9yIGl0IGNhbiByZXF1aXJlIGEgc3BlY2lmaWMgc3VidHlwZSAoYXJyYXkgb2YgbnVtYmVycykuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gVGhlIHNpbXBsZXN0IGNhc2UgaXMgaWYgXCJhcnJheVwiIHdpdGggbm8gc3VidHlwZSBpcyBzcGVjaWZpZWQuXG4gICAgICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IFRZUEVfQVJSQVkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWN0dWFsID09PSBUWVBFX0FSUkFZO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhY3R1YWwgPT09IFRZUEVfQVJSQVkpIHtcbiAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2Ugd2UgbmVlZCB0byBjaGVjayBzdWJ0eXBlcy5cbiAgICAgICAgICAgICAgICAvLyBJIHRoaW5rIHRoaXMgaGFzIHBvdGVudGlhbCB0byBiZSBpbXByb3ZlZC5cbiAgICAgICAgICAgICAgICB2YXIgc3VidHlwZTtcbiAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IFRZUEVfQVJSQVlfTlVNQkVSKSB7XG4gICAgICAgICAgICAgICAgICBzdWJ0eXBlID0gVFlQRV9OVU1CRVI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChleHBlY3RlZCA9PT0gVFlQRV9BUlJBWV9TVFJJTkcpIHtcbiAgICAgICAgICAgICAgICAgIHN1YnR5cGUgPSBUWVBFX1NUUklORztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3R5cGVNYXRjaGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2dldFR5cGVOYW1lKGFyZ1ZhbHVlW2ldKSwgc3VidHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ1ZhbHVlW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbCA9PT0gZXhwZWN0ZWQ7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIF9nZXRUeXBlTmFtZTogZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgIHN3aXRjaCAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikpIHtcbiAgICAgICAgICAgIGNhc2UgXCJbb2JqZWN0IFN0cmluZ11cIjpcbiAgICAgICAgICAgICAgcmV0dXJuIFRZUEVfU1RSSU5HO1xuICAgICAgICAgICAgY2FzZSBcIltvYmplY3QgTnVtYmVyXVwiOlxuICAgICAgICAgICAgICByZXR1cm4gVFlQRV9OVU1CRVI7XG4gICAgICAgICAgICBjYXNlIFwiW29iamVjdCBBcnJheV1cIjpcbiAgICAgICAgICAgICAgcmV0dXJuIFRZUEVfQVJSQVk7XG4gICAgICAgICAgICBjYXNlIFwiW29iamVjdCBCb29sZWFuXVwiOlxuICAgICAgICAgICAgICByZXR1cm4gVFlQRV9CT09MRUFOO1xuICAgICAgICAgICAgY2FzZSBcIltvYmplY3QgTnVsbF1cIjpcbiAgICAgICAgICAgICAgcmV0dXJuIFRZUEVfTlVMTDtcbiAgICAgICAgICAgIGNhc2UgXCJbb2JqZWN0IE9iamVjdF1cIjpcbiAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaXQncyBhbiBleHByZWYuICBJZiBpdCBoYXMsIGl0J3MgYmVlblxuICAgICAgICAgICAgICAvLyB0YWdnZWQgd2l0aCBhIGptZXNwYXRoVHlwZSBhdHRyIG9mICdFeHByZWYnO1xuICAgICAgICAgICAgICBpZiAob2JqLmptZXNwYXRoVHlwZSA9PT0gVE9LX0VYUFJFRikge1xuICAgICAgICAgICAgICAgIHJldHVybiBUWVBFX0VYUFJFRjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gVFlQRV9PQkpFQ1Q7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25TdGFydHNXaXRoOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkQXJnc1swXS5sYXN0SW5kZXhPZihyZXNvbHZlZEFyZ3NbMV0pID09PSAwO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25FbmRzV2l0aDogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHZhciBzZWFyY2hTdHIgPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgIHZhciBzdWZmaXggPSByZXNvbHZlZEFyZ3NbMV07XG4gICAgICAgIHJldHVybiBzZWFyY2hTdHIuaW5kZXhPZihzdWZmaXgsIHNlYXJjaFN0ci5sZW5ndGggLSBzdWZmaXgubGVuZ3RoKSAhPT0gLTE7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvblJldmVyc2U6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICB2YXIgdHlwZU5hbWUgPSB0aGlzLl9nZXRUeXBlTmFtZShyZXNvbHZlZEFyZ3NbMF0pO1xuICAgICAgICBpZiAodHlwZU5hbWUgPT09IFRZUEVfU1RSSU5HKSB7XG4gICAgICAgICAgdmFyIG9yaWdpbmFsU3RyID0gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgICAgIHZhciByZXZlcnNlZFN0ciA9IFwiXCI7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IG9yaWdpbmFsU3RyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgIHJldmVyc2VkU3RyICs9IG9yaWdpbmFsU3RyW2ldO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmV2ZXJzZWRTdHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHJldmVyc2VkQXJyYXkgPSByZXNvbHZlZEFyZ3NbMF0uc2xpY2UoMCk7XG4gICAgICAgICAgcmV2ZXJzZWRBcnJheS5yZXZlcnNlKCk7XG4gICAgICAgICAgcmV0dXJuIHJldmVyc2VkQXJyYXk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uQWJzOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgIHJldHVybiBNYXRoLmFicyhyZXNvbHZlZEFyZ3NbMF0pO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25DZWlsOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChyZXNvbHZlZEFyZ3NbMF0pO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25Bdmc6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICB2YXIgc3VtID0gMDtcbiAgICAgICAgdmFyIGlucHV0QXJyYXkgPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc3VtICs9IGlucHV0QXJyYXlbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1bSAvIGlucHV0QXJyYXkubGVuZ3RoO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25Db250YWluczogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlZEFyZ3NbMF0uaW5kZXhPZihyZXNvbHZlZEFyZ3NbMV0pID49IDA7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbkZsb29yOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IocmVzb2x2ZWRBcmdzWzBdKTtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uTGVuZ3RoOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICBpZiAoIWlzT2JqZWN0KHJlc29sdmVkQXJnc1swXSkpIHtcbiAgICAgICAgIHJldHVybiByZXNvbHZlZEFyZ3NbMF0ubGVuZ3RoO1xuICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAvLyBBcyBmYXIgYXMgSSBjYW4gdGVsbCwgdGhlcmUncyBubyB3YXkgdG8gZ2V0IHRoZSBsZW5ndGhcbiAgICAgICAgIC8vIG9mIGFuIG9iamVjdCB3aXRob3V0IE8obikgaXRlcmF0aW9uIHRocm91Z2ggdGhlIG9iamVjdC5cbiAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhyZXNvbHZlZEFyZ3NbMF0pLmxlbmd0aDtcbiAgICAgICB9XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbk1hcDogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICB2YXIgbWFwcGVkID0gW107XG4gICAgICB2YXIgaW50ZXJwcmV0ZXIgPSB0aGlzLl9pbnRlcnByZXRlcjtcbiAgICAgIHZhciBleHByZWZOb2RlID0gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgdmFyIGVsZW1lbnRzID0gcmVzb2x2ZWRBcmdzWzFdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIG1hcHBlZC5wdXNoKGludGVycHJldGVyLnZpc2l0KGV4cHJlZk5vZGUsIGVsZW1lbnRzW2ldKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWFwcGVkO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25NZXJnZTogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICB2YXIgbWVyZ2VkID0ge307XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc29sdmVkQXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY3VycmVudCA9IHJlc29sdmVkQXJnc1tpXTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIGN1cnJlbnQpIHtcbiAgICAgICAgICBtZXJnZWRba2V5XSA9IGN1cnJlbnRba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG1lcmdlZDtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uTWF4OiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgIGlmIChyZXNvbHZlZEFyZ3NbMF0ubGVuZ3RoID4gMCkge1xuICAgICAgICB2YXIgdHlwZU5hbWUgPSB0aGlzLl9nZXRUeXBlTmFtZShyZXNvbHZlZEFyZ3NbMF1bMF0pO1xuICAgICAgICBpZiAodHlwZU5hbWUgPT09IFRZUEVfTlVNQkVSKSB7XG4gICAgICAgICAgcmV0dXJuIE1hdGgubWF4LmFwcGx5KE1hdGgsIHJlc29sdmVkQXJnc1swXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGVsZW1lbnRzID0gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgICAgIHZhciBtYXhFbGVtZW50ID0gZWxlbWVudHNbMF07XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBpZiAobWF4RWxlbWVudC5sb2NhbGVDb21wYXJlKGVsZW1lbnRzW2ldKSA8IDApIHtcbiAgICAgICAgICAgICAgICAgIG1heEVsZW1lbnQgPSBlbGVtZW50c1tpXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWF4RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uTWluOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgIGlmIChyZXNvbHZlZEFyZ3NbMF0ubGVuZ3RoID4gMCkge1xuICAgICAgICB2YXIgdHlwZU5hbWUgPSB0aGlzLl9nZXRUeXBlTmFtZShyZXNvbHZlZEFyZ3NbMF1bMF0pO1xuICAgICAgICBpZiAodHlwZU5hbWUgPT09IFRZUEVfTlVNQkVSKSB7XG4gICAgICAgICAgcmV0dXJuIE1hdGgubWluLmFwcGx5KE1hdGgsIHJlc29sdmVkQXJnc1swXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGVsZW1lbnRzID0gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgICAgIHZhciBtaW5FbGVtZW50ID0gZWxlbWVudHNbMF07XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBpZiAoZWxlbWVudHNbaV0ubG9jYWxlQ29tcGFyZShtaW5FbGVtZW50KSA8IDApIHtcbiAgICAgICAgICAgICAgICAgIG1pbkVsZW1lbnQgPSBlbGVtZW50c1tpXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWluRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSxcblxuICAgIF9mdW5jdGlvblN1bTogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICB2YXIgc3VtID0gMDtcbiAgICAgIHZhciBsaXN0VG9TdW0gPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RUb1N1bS5sZW5ndGg7IGkrKykge1xuICAgICAgICBzdW0gKz0gbGlzdFRvU3VtW2ldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1bTtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uVHlwZTogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fZ2V0VHlwZU5hbWUocmVzb2x2ZWRBcmdzWzBdKSkge1xuICAgICAgICAgIGNhc2UgVFlQRV9OVU1CRVI6XG4gICAgICAgICAgICByZXR1cm4gXCJudW1iZXJcIjtcbiAgICAgICAgICBjYXNlIFRZUEVfU1RSSU5HOlxuICAgICAgICAgICAgcmV0dXJuIFwic3RyaW5nXCI7XG4gICAgICAgICAgY2FzZSBUWVBFX0FSUkFZOlxuICAgICAgICAgICAgcmV0dXJuIFwiYXJyYXlcIjtcbiAgICAgICAgICBjYXNlIFRZUEVfT0JKRUNUOlxuICAgICAgICAgICAgcmV0dXJuIFwib2JqZWN0XCI7XG4gICAgICAgICAgY2FzZSBUWVBFX0JPT0xFQU46XG4gICAgICAgICAgICByZXR1cm4gXCJib29sZWFuXCI7XG4gICAgICAgICAgY2FzZSBUWVBFX0VYUFJFRjpcbiAgICAgICAgICAgIHJldHVybiBcImV4cHJlZlwiO1xuICAgICAgICAgIGNhc2UgVFlQRV9OVUxMOlxuICAgICAgICAgICAgcmV0dXJuIFwibnVsbFwiO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbktleXM6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocmVzb2x2ZWRBcmdzWzBdKTtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uVmFsdWVzOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgdmFyIG9iaiA9IHJlc29sdmVkQXJnc1swXTtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgICAgICB2YXIgdmFsdWVzID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2gob2JqW2tleXNbaV1dKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25Kb2luOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgdmFyIGpvaW5DaGFyID0gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgICB2YXIgbGlzdEpvaW4gPSByZXNvbHZlZEFyZ3NbMV07XG4gICAgICAgIHJldHVybiBsaXN0Sm9pbi5qb2luKGpvaW5DaGFyKTtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uVG9BcnJheTogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIGlmICh0aGlzLl9nZXRUeXBlTmFtZShyZXNvbHZlZEFyZ3NbMF0pID09PSBUWVBFX0FSUkFZKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtyZXNvbHZlZEFyZ3NbMF1dO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIF9mdW5jdGlvblRvU3RyaW5nOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgaWYgKHRoaXMuX2dldFR5cGVOYW1lKHJlc29sdmVkQXJnc1swXSkgPT09IFRZUEVfU1RSSU5HKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlc29sdmVkQXJnc1swXSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uVG9OdW1iZXI6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICB2YXIgdHlwZU5hbWUgPSB0aGlzLl9nZXRUeXBlTmFtZShyZXNvbHZlZEFyZ3NbMF0pO1xuICAgICAgICB2YXIgY29udmVydGVkVmFsdWU7XG4gICAgICAgIGlmICh0eXBlTmFtZSA9PT0gVFlQRV9OVU1CRVIpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFRZUEVfU1RSSU5HKSB7XG4gICAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9ICtyZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgICAgICBpZiAoIWlzTmFOKGNvbnZlcnRlZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uTm90TnVsbDogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb2x2ZWRBcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZ2V0VHlwZU5hbWUocmVzb2x2ZWRBcmdzW2ldKSAhPT0gVFlQRV9OVUxMKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQXJnc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uU29ydDogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHZhciBzb3J0ZWRBcnJheSA9IHJlc29sdmVkQXJnc1swXS5zbGljZSgwKTtcbiAgICAgICAgc29ydGVkQXJyYXkuc29ydCgpO1xuICAgICAgICByZXR1cm4gc29ydGVkQXJyYXk7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvblNvcnRCeTogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHZhciBzb3J0ZWRBcnJheSA9IHJlc29sdmVkQXJnc1swXS5zbGljZSgwKTtcbiAgICAgICAgaWYgKHNvcnRlZEFycmF5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHNvcnRlZEFycmF5O1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbnRlcnByZXRlciA9IHRoaXMuX2ludGVycHJldGVyO1xuICAgICAgICB2YXIgZXhwcmVmTm9kZSA9IHJlc29sdmVkQXJnc1sxXTtcbiAgICAgICAgdmFyIHJlcXVpcmVkVHlwZSA9IHRoaXMuX2dldFR5cGVOYW1lKFxuICAgICAgICAgICAgaW50ZXJwcmV0ZXIudmlzaXQoZXhwcmVmTm9kZSwgc29ydGVkQXJyYXlbMF0pKTtcbiAgICAgICAgaWYgKFtUWVBFX05VTUJFUiwgVFlQRV9TVFJJTkddLmluZGV4T2YocmVxdWlyZWRUeXBlKSA8IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlR5cGVFcnJvclwiKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgIC8vIEluIG9yZGVyIHRvIGdldCBhIHN0YWJsZSBzb3J0IG91dCBvZiBhbiB1bnN0YWJsZVxuICAgICAgICAvLyBzb3J0IGFsZ29yaXRobSwgd2UgZGVjb3JhdGUvc29ydC91bmRlY29yYXRlIChEU1UpXG4gICAgICAgIC8vIGJ5IGNyZWF0aW5nIGEgbmV3IGxpc3Qgb2YgW2luZGV4LCBlbGVtZW50XSBwYWlycy5cbiAgICAgICAgLy8gSW4gdGhlIGNtcCBmdW5jdGlvbiwgaWYgdGhlIGV2YWx1YXRlZCBlbGVtZW50cyBhcmVcbiAgICAgICAgLy8gZXF1YWwsIHRoZW4gdGhlIGluZGV4IHdpbGwgYmUgdXNlZCBhcyB0aGUgdGllYnJlYWtlci5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlIGRlY29yYXRlZCBsaXN0IGhhcyBiZWVuIHNvcnRlZCwgaXQgd2lsbCBiZVxuICAgICAgICAvLyB1bmRlY29yYXRlZCB0byBleHRyYWN0IHRoZSBvcmlnaW5hbCBlbGVtZW50cy5cbiAgICAgICAgdmFyIGRlY29yYXRlZCA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZEFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgZGVjb3JhdGVkLnB1c2goW2ksIHNvcnRlZEFycmF5W2ldXSk7XG4gICAgICAgIH1cbiAgICAgICAgZGVjb3JhdGVkLnNvcnQoZnVuY3Rpb24oYSwgYikge1xuICAgICAgICAgIHZhciBleHByQSA9IGludGVycHJldGVyLnZpc2l0KGV4cHJlZk5vZGUsIGFbMV0pO1xuICAgICAgICAgIHZhciBleHByQiA9IGludGVycHJldGVyLnZpc2l0KGV4cHJlZk5vZGUsIGJbMV0pO1xuICAgICAgICAgIGlmICh0aGF0Ll9nZXRUeXBlTmFtZShleHByQSkgIT09IHJlcXVpcmVkVHlwZSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIlR5cGVFcnJvcjogZXhwZWN0ZWQgXCIgKyByZXF1aXJlZFR5cGUgKyBcIiwgcmVjZWl2ZWQgXCIgK1xuICAgICAgICAgICAgICAgICAgdGhhdC5fZ2V0VHlwZU5hbWUoZXhwckEpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoYXQuX2dldFR5cGVOYW1lKGV4cHJCKSAhPT0gcmVxdWlyZWRUeXBlKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiVHlwZUVycm9yOiBleHBlY3RlZCBcIiArIHJlcXVpcmVkVHlwZSArIFwiLCByZWNlaXZlZCBcIiArXG4gICAgICAgICAgICAgICAgICB0aGF0Ll9nZXRUeXBlTmFtZShleHByQikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXhwckEgPiBleHByQikge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgfSBlbHNlIGlmIChleHByQSA8IGV4cHJCKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIElmIHRoZXkncmUgZXF1YWwgY29tcGFyZSB0aGUgaXRlbXMgYnkgdGhlaXJcbiAgICAgICAgICAgIC8vIG9yZGVyIHRvIG1haW50YWluIHJlbGF0aXZlIG9yZGVyIG9mIGVxdWFsIGtleXNcbiAgICAgICAgICAgIC8vIChpLmUuIHRvIGdldCBhIHN0YWJsZSBzb3J0KS5cbiAgICAgICAgICAgIHJldHVybiBhWzBdIC0gYlswXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBVbmRlY29yYXRlOiBleHRyYWN0IG91dCB0aGUgb3JpZ2luYWwgbGlzdCBlbGVtZW50cy5cbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkZWNvcmF0ZWQubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBzb3J0ZWRBcnJheVtqXSA9IGRlY29yYXRlZFtqXVsxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc29ydGVkQXJyYXk7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbk1heEJ5OiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgIHZhciBleHByZWZOb2RlID0gcmVzb2x2ZWRBcmdzWzFdO1xuICAgICAgdmFyIHJlc29sdmVkQXJyYXkgPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICB2YXIga2V5RnVuY3Rpb24gPSB0aGlzLmNyZWF0ZUtleUZ1bmN0aW9uKGV4cHJlZk5vZGUsIFtUWVBFX05VTUJFUiwgVFlQRV9TVFJJTkddKTtcbiAgICAgIHZhciBtYXhOdW1iZXIgPSAtSW5maW5pdHk7XG4gICAgICB2YXIgbWF4UmVjb3JkO1xuICAgICAgdmFyIGN1cnJlbnQ7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc29sdmVkQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY3VycmVudCA9IGtleUZ1bmN0aW9uKHJlc29sdmVkQXJyYXlbaV0pO1xuICAgICAgICBpZiAoY3VycmVudCA+IG1heE51bWJlcikge1xuICAgICAgICAgIG1heE51bWJlciA9IGN1cnJlbnQ7XG4gICAgICAgICAgbWF4UmVjb3JkID0gcmVzb2x2ZWRBcnJheVtpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG1heFJlY29yZDtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uTWluQnk6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgdmFyIGV4cHJlZk5vZGUgPSByZXNvbHZlZEFyZ3NbMV07XG4gICAgICB2YXIgcmVzb2x2ZWRBcnJheSA9IHJlc29sdmVkQXJnc1swXTtcbiAgICAgIHZhciBrZXlGdW5jdGlvbiA9IHRoaXMuY3JlYXRlS2V5RnVuY3Rpb24oZXhwcmVmTm9kZSwgW1RZUEVfTlVNQkVSLCBUWVBFX1NUUklOR10pO1xuICAgICAgdmFyIG1pbk51bWJlciA9IEluZmluaXR5O1xuICAgICAgdmFyIG1pblJlY29yZDtcbiAgICAgIHZhciBjdXJyZW50O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvbHZlZEFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGN1cnJlbnQgPSBrZXlGdW5jdGlvbihyZXNvbHZlZEFycmF5W2ldKTtcbiAgICAgICAgaWYgKGN1cnJlbnQgPCBtaW5OdW1iZXIpIHtcbiAgICAgICAgICBtaW5OdW1iZXIgPSBjdXJyZW50O1xuICAgICAgICAgIG1pblJlY29yZCA9IHJlc29sdmVkQXJyYXlbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBtaW5SZWNvcmQ7XG4gICAgfSxcblxuICAgIGNyZWF0ZUtleUZ1bmN0aW9uOiBmdW5jdGlvbihleHByZWZOb2RlLCBhbGxvd2VkVHlwZXMpIHtcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgIHZhciBpbnRlcnByZXRlciA9IHRoaXMuX2ludGVycHJldGVyO1xuICAgICAgdmFyIGtleUZ1bmMgPSBmdW5jdGlvbih4KSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gaW50ZXJwcmV0ZXIudmlzaXQoZXhwcmVmTm9kZSwgeCk7XG4gICAgICAgIGlmIChhbGxvd2VkVHlwZXMuaW5kZXhPZih0aGF0Ll9nZXRUeXBlTmFtZShjdXJyZW50KSkgPCAwKSB7XG4gICAgICAgICAgdmFyIG1zZyA9IFwiVHlwZUVycm9yOiBleHBlY3RlZCBvbmUgb2YgXCIgKyBhbGxvd2VkVHlwZXMgK1xuICAgICAgICAgICAgICAgICAgICBcIiwgcmVjZWl2ZWQgXCIgKyB0aGF0Ll9nZXRUeXBlTmFtZShjdXJyZW50KTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH07XG4gICAgICByZXR1cm4ga2V5RnVuYztcbiAgICB9XG5cbiAgfTtcblxuICBmdW5jdGlvbiBjb21waWxlKHN0cmVhbSkge1xuICAgIHZhciBwYXJzZXIgPSBuZXcgUGFyc2VyKCk7XG4gICAgdmFyIGFzdCA9IHBhcnNlci5wYXJzZShzdHJlYW0pO1xuICAgIHJldHVybiBhc3Q7XG4gIH1cblxuICBmdW5jdGlvbiB0b2tlbml6ZShzdHJlYW0pIHtcbiAgICAgIHZhciBsZXhlciA9IG5ldyBMZXhlcigpO1xuICAgICAgcmV0dXJuIGxleGVyLnRva2VuaXplKHN0cmVhbSk7XG4gIH1cblxuICBmdW5jdGlvbiBzZWFyY2goZGF0YSwgZXhwcmVzc2lvbikge1xuICAgICAgdmFyIHBhcnNlciA9IG5ldyBQYXJzZXIoKTtcbiAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgaW1wcm92ZWQuICBCb3RoIHRoZSBpbnRlcnByZXRlciBhbmQgcnVudGltZSBkZXBlbmQgb25cbiAgICAgIC8vIGVhY2ggb3RoZXIuICBUaGUgcnVudGltZSBuZWVkcyB0aGUgaW50ZXJwcmV0ZXIgdG8gc3VwcG9ydCBleHByZWZzLlxuICAgICAgLy8gVGhlcmUncyBsaWtlbHkgYSBjbGVhbiB3YXkgdG8gYXZvaWQgdGhlIGN5Y2xpYyBkZXBlbmRlbmN5LlxuICAgICAgdmFyIHJ1bnRpbWUgPSBuZXcgUnVudGltZSgpO1xuICAgICAgdmFyIGludGVycHJldGVyID0gbmV3IFRyZWVJbnRlcnByZXRlcihydW50aW1lKTtcbiAgICAgIHJ1bnRpbWUuX2ludGVycHJldGVyID0gaW50ZXJwcmV0ZXI7XG4gICAgICB2YXIgbm9kZSA9IHBhcnNlci5wYXJzZShleHByZXNzaW9uKTtcbiAgICAgIHJldHVybiBpbnRlcnByZXRlci5zZWFyY2gobm9kZSwgZGF0YSk7XG4gIH1cblxuICBleHBvcnRzLnRva2VuaXplID0gdG9rZW5pemU7XG4gIGV4cG9ydHMuY29tcGlsZSA9IGNvbXBpbGU7XG4gIGV4cG9ydHMuc2VhcmNoID0gc2VhcmNoO1xuICBleHBvcnRzLnN0cmljdERlZXBFcXVhbCA9IHN0cmljdERlZXBFcXVhbDtcbn0pKHR5cGVvZiBleHBvcnRzID09PSBcInVuZGVmaW5lZFwiID8gdGhpcy5qbWVzcGF0aCA9IHt9IDogZXhwb3J0cyk7XG4iLCIndXNlIHN0cmljdCdcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBIYXNoQmFzZSA9IHJlcXVpcmUoJ2hhc2gtYmFzZScpXG5cbnZhciBBUlJBWTE2ID0gbmV3IEFycmF5KDE2KVxuXG5mdW5jdGlvbiBNRDUgKCkge1xuICBIYXNoQmFzZS5jYWxsKHRoaXMsIDY0KVxuXG4gIC8vIHN0YXRlXG4gIHRoaXMuX2EgPSAweDY3NDUyMzAxXG4gIHRoaXMuX2IgPSAweGVmY2RhYjg5XG4gIHRoaXMuX2MgPSAweDk4YmFkY2ZlXG4gIHRoaXMuX2QgPSAweDEwMzI1NDc2XG59XG5cbmluaGVyaXRzKE1ENSwgSGFzaEJhc2UpXG5cbk1ENS5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIE0gPSBBUlJBWTE2XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7ICsraSkgTVtpXSA9IHRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKGkgKiA0KVxuXG4gIHZhciBhID0gdGhpcy5fYVxuICB2YXIgYiA9IHRoaXMuX2JcbiAgdmFyIGMgPSB0aGlzLl9jXG4gIHZhciBkID0gdGhpcy5fZFxuXG4gIGEgPSBmbkYoYSwgYiwgYywgZCwgTVswXSwgMHhkNzZhYTQ3OCwgNylcbiAgZCA9IGZuRihkLCBhLCBiLCBjLCBNWzFdLCAweGU4YzdiNzU2LCAxMilcbiAgYyA9IGZuRihjLCBkLCBhLCBiLCBNWzJdLCAweDI0MjA3MGRiLCAxNylcbiAgYiA9IGZuRihiLCBjLCBkLCBhLCBNWzNdLCAweGMxYmRjZWVlLCAyMilcbiAgYSA9IGZuRihhLCBiLCBjLCBkLCBNWzRdLCAweGY1N2MwZmFmLCA3KVxuICBkID0gZm5GKGQsIGEsIGIsIGMsIE1bNV0sIDB4NDc4N2M2MmEsIDEyKVxuICBjID0gZm5GKGMsIGQsIGEsIGIsIE1bNl0sIDB4YTgzMDQ2MTMsIDE3KVxuICBiID0gZm5GKGIsIGMsIGQsIGEsIE1bN10sIDB4ZmQ0Njk1MDEsIDIyKVxuICBhID0gZm5GKGEsIGIsIGMsIGQsIE1bOF0sIDB4Njk4MDk4ZDgsIDcpXG4gIGQgPSBmbkYoZCwgYSwgYiwgYywgTVs5XSwgMHg4YjQ0ZjdhZiwgMTIpXG4gIGMgPSBmbkYoYywgZCwgYSwgYiwgTVsxMF0sIDB4ZmZmZjViYjEsIDE3KVxuICBiID0gZm5GKGIsIGMsIGQsIGEsIE1bMTFdLCAweDg5NWNkN2JlLCAyMilcbiAgYSA9IGZuRihhLCBiLCBjLCBkLCBNWzEyXSwgMHg2YjkwMTEyMiwgNylcbiAgZCA9IGZuRihkLCBhLCBiLCBjLCBNWzEzXSwgMHhmZDk4NzE5MywgMTIpXG4gIGMgPSBmbkYoYywgZCwgYSwgYiwgTVsxNF0sIDB4YTY3OTQzOGUsIDE3KVxuICBiID0gZm5GKGIsIGMsIGQsIGEsIE1bMTVdLCAweDQ5YjQwODIxLCAyMilcblxuICBhID0gZm5HKGEsIGIsIGMsIGQsIE1bMV0sIDB4ZjYxZTI1NjIsIDUpXG4gIGQgPSBmbkcoZCwgYSwgYiwgYywgTVs2XSwgMHhjMDQwYjM0MCwgOSlcbiAgYyA9IGZuRyhjLCBkLCBhLCBiLCBNWzExXSwgMHgyNjVlNWE1MSwgMTQpXG4gIGIgPSBmbkcoYiwgYywgZCwgYSwgTVswXSwgMHhlOWI2YzdhYSwgMjApXG4gIGEgPSBmbkcoYSwgYiwgYywgZCwgTVs1XSwgMHhkNjJmMTA1ZCwgNSlcbiAgZCA9IGZuRyhkLCBhLCBiLCBjLCBNWzEwXSwgMHgwMjQ0MTQ1MywgOSlcbiAgYyA9IGZuRyhjLCBkLCBhLCBiLCBNWzE1XSwgMHhkOGExZTY4MSwgMTQpXG4gIGIgPSBmbkcoYiwgYywgZCwgYSwgTVs0XSwgMHhlN2QzZmJjOCwgMjApXG4gIGEgPSBmbkcoYSwgYiwgYywgZCwgTVs5XSwgMHgyMWUxY2RlNiwgNSlcbiAgZCA9IGZuRyhkLCBhLCBiLCBjLCBNWzE0XSwgMHhjMzM3MDdkNiwgOSlcbiAgYyA9IGZuRyhjLCBkLCBhLCBiLCBNWzNdLCAweGY0ZDUwZDg3LCAxNClcbiAgYiA9IGZuRyhiLCBjLCBkLCBhLCBNWzhdLCAweDQ1NWExNGVkLCAyMClcbiAgYSA9IGZuRyhhLCBiLCBjLCBkLCBNWzEzXSwgMHhhOWUzZTkwNSwgNSlcbiAgZCA9IGZuRyhkLCBhLCBiLCBjLCBNWzJdLCAweGZjZWZhM2Y4LCA5KVxuICBjID0gZm5HKGMsIGQsIGEsIGIsIE1bN10sIDB4Njc2ZjAyZDksIDE0KVxuICBiID0gZm5HKGIsIGMsIGQsIGEsIE1bMTJdLCAweDhkMmE0YzhhLCAyMClcblxuICBhID0gZm5IKGEsIGIsIGMsIGQsIE1bNV0sIDB4ZmZmYTM5NDIsIDQpXG4gIGQgPSBmbkgoZCwgYSwgYiwgYywgTVs4XSwgMHg4NzcxZjY4MSwgMTEpXG4gIGMgPSBmbkgoYywgZCwgYSwgYiwgTVsxMV0sIDB4NmQ5ZDYxMjIsIDE2KVxuICBiID0gZm5IKGIsIGMsIGQsIGEsIE1bMTRdLCAweGZkZTUzODBjLCAyMylcbiAgYSA9IGZuSChhLCBiLCBjLCBkLCBNWzFdLCAweGE0YmVlYTQ0LCA0KVxuICBkID0gZm5IKGQsIGEsIGIsIGMsIE1bNF0sIDB4NGJkZWNmYTksIDExKVxuICBjID0gZm5IKGMsIGQsIGEsIGIsIE1bN10sIDB4ZjZiYjRiNjAsIDE2KVxuICBiID0gZm5IKGIsIGMsIGQsIGEsIE1bMTBdLCAweGJlYmZiYzcwLCAyMylcbiAgYSA9IGZuSChhLCBiLCBjLCBkLCBNWzEzXSwgMHgyODliN2VjNiwgNClcbiAgZCA9IGZuSChkLCBhLCBiLCBjLCBNWzBdLCAweGVhYTEyN2ZhLCAxMSlcbiAgYyA9IGZuSChjLCBkLCBhLCBiLCBNWzNdLCAweGQ0ZWYzMDg1LCAxNilcbiAgYiA9IGZuSChiLCBjLCBkLCBhLCBNWzZdLCAweDA0ODgxZDA1LCAyMylcbiAgYSA9IGZuSChhLCBiLCBjLCBkLCBNWzldLCAweGQ5ZDRkMDM5LCA0KVxuICBkID0gZm5IKGQsIGEsIGIsIGMsIE1bMTJdLCAweGU2ZGI5OWU1LCAxMSlcbiAgYyA9IGZuSChjLCBkLCBhLCBiLCBNWzE1XSwgMHgxZmEyN2NmOCwgMTYpXG4gIGIgPSBmbkgoYiwgYywgZCwgYSwgTVsyXSwgMHhjNGFjNTY2NSwgMjMpXG5cbiAgYSA9IGZuSShhLCBiLCBjLCBkLCBNWzBdLCAweGY0MjkyMjQ0LCA2KVxuICBkID0gZm5JKGQsIGEsIGIsIGMsIE1bN10sIDB4NDMyYWZmOTcsIDEwKVxuICBjID0gZm5JKGMsIGQsIGEsIGIsIE1bMTRdLCAweGFiOTQyM2E3LCAxNSlcbiAgYiA9IGZuSShiLCBjLCBkLCBhLCBNWzVdLCAweGZjOTNhMDM5LCAyMSlcbiAgYSA9IGZuSShhLCBiLCBjLCBkLCBNWzEyXSwgMHg2NTViNTljMywgNilcbiAgZCA9IGZuSShkLCBhLCBiLCBjLCBNWzNdLCAweDhmMGNjYzkyLCAxMClcbiAgYyA9IGZuSShjLCBkLCBhLCBiLCBNWzEwXSwgMHhmZmVmZjQ3ZCwgMTUpXG4gIGIgPSBmbkkoYiwgYywgZCwgYSwgTVsxXSwgMHg4NTg0NWRkMSwgMjEpXG4gIGEgPSBmbkkoYSwgYiwgYywgZCwgTVs4XSwgMHg2ZmE4N2U0ZiwgNilcbiAgZCA9IGZuSShkLCBhLCBiLCBjLCBNWzE1XSwgMHhmZTJjZTZlMCwgMTApXG4gIGMgPSBmbkkoYywgZCwgYSwgYiwgTVs2XSwgMHhhMzAxNDMxNCwgMTUpXG4gIGIgPSBmbkkoYiwgYywgZCwgYSwgTVsxM10sIDB4NGUwODExYTEsIDIxKVxuICBhID0gZm5JKGEsIGIsIGMsIGQsIE1bNF0sIDB4Zjc1MzdlODIsIDYpXG4gIGQgPSBmbkkoZCwgYSwgYiwgYywgTVsxMV0sIDB4YmQzYWYyMzUsIDEwKVxuICBjID0gZm5JKGMsIGQsIGEsIGIsIE1bMl0sIDB4MmFkN2QyYmIsIDE1KVxuICBiID0gZm5JKGIsIGMsIGQsIGEsIE1bOV0sIDB4ZWI4NmQzOTEsIDIxKVxuXG4gIHRoaXMuX2EgPSAodGhpcy5fYSArIGEpIHwgMFxuICB0aGlzLl9iID0gKHRoaXMuX2IgKyBiKSB8IDBcbiAgdGhpcy5fYyA9ICh0aGlzLl9jICsgYykgfCAwXG4gIHRoaXMuX2QgPSAodGhpcy5fZCArIGQpIHwgMFxufVxuXG5NRDUucHJvdG90eXBlLl9kaWdlc3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIGNyZWF0ZSBwYWRkaW5nIGFuZCBoYW5kbGUgYmxvY2tzXG4gIHRoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdID0gMHg4MFxuICBpZiAodGhpcy5fYmxvY2tPZmZzZXQgPiA1Nikge1xuICAgIHRoaXMuX2Jsb2NrLmZpbGwoMCwgdGhpcy5fYmxvY2tPZmZzZXQsIDY0KVxuICAgIHRoaXMuX3VwZGF0ZSgpXG4gICAgdGhpcy5fYmxvY2tPZmZzZXQgPSAwXG4gIH1cblxuICB0aGlzLl9ibG9jay5maWxsKDAsIHRoaXMuX2Jsb2NrT2Zmc2V0LCA1NilcbiAgdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMF0sIDU2KVxuICB0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSwgNjApXG4gIHRoaXMuX3VwZGF0ZSgpXG5cbiAgLy8gcHJvZHVjZSByZXN1bHRcbiAgdmFyIGJ1ZmZlciA9IG5ldyBCdWZmZXIoMTYpXG4gIGJ1ZmZlci53cml0ZUludDMyTEUodGhpcy5fYSwgMClcbiAgYnVmZmVyLndyaXRlSW50MzJMRSh0aGlzLl9iLCA0KVxuICBidWZmZXIud3JpdGVJbnQzMkxFKHRoaXMuX2MsIDgpXG4gIGJ1ZmZlci53cml0ZUludDMyTEUodGhpcy5fZCwgMTIpXG4gIHJldHVybiBidWZmZXJcbn1cblxuZnVuY3Rpb24gcm90bCAoeCwgbikge1xuICByZXR1cm4gKHggPDwgbikgfCAoeCA+Pj4gKDMyIC0gbikpXG59XG5cbmZ1bmN0aW9uIGZuRiAoYSwgYiwgYywgZCwgbSwgaywgcykge1xuICByZXR1cm4gKHJvdGwoKGEgKyAoKGIgJiBjKSB8ICgofmIpICYgZCkpICsgbSArIGspIHwgMCwgcykgKyBiKSB8IDBcbn1cblxuZnVuY3Rpb24gZm5HIChhLCBiLCBjLCBkLCBtLCBrLCBzKSB7XG4gIHJldHVybiAocm90bCgoYSArICgoYiAmIGQpIHwgKGMgJiAofmQpKSkgKyBtICsgaykgfCAwLCBzKSArIGIpIHwgMFxufVxuXG5mdW5jdGlvbiBmbkggKGEsIGIsIGMsIGQsIG0sIGssIHMpIHtcbiAgcmV0dXJuIChyb3RsKChhICsgKGIgXiBjIF4gZCkgKyBtICsgaykgfCAwLCBzKSArIGIpIHwgMFxufVxuXG5mdW5jdGlvbiBmbkkgKGEsIGIsIGMsIGQsIG0sIGssIHMpIHtcbiAgcmV0dXJuIChyb3RsKChhICsgKChjIF4gKGIgfCAofmQpKSkpICsgbSArIGspIHwgMCwgcykgKyBiKSB8IDBcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBNRDVcbiIsInZhciBibiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgYnJvcmFuZCA9IHJlcXVpcmUoJ2Jyb3JhbmQnKTtcblxuZnVuY3Rpb24gTWlsbGVyUmFiaW4ocmFuZCkge1xuICB0aGlzLnJhbmQgPSByYW5kIHx8IG5ldyBicm9yYW5kLlJhbmQoKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gTWlsbGVyUmFiaW47XG5cbk1pbGxlclJhYmluLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShyYW5kKSB7XG4gIHJldHVybiBuZXcgTWlsbGVyUmFiaW4ocmFuZCk7XG59O1xuXG5NaWxsZXJSYWJpbi5wcm90b3R5cGUuX3JhbmRiZWxvdyA9IGZ1bmN0aW9uIF9yYW5kYmVsb3cobikge1xuICB2YXIgbGVuID0gbi5iaXRMZW5ndGgoKTtcbiAgdmFyIG1pbl9ieXRlcyA9IE1hdGguY2VpbChsZW4gLyA4KTtcblxuICAvLyBHZW5lcmFnZSByYW5kb20gYnl0ZXMgdW50aWwgYSBudW1iZXIgbGVzcyB0aGFuIG4gaXMgZm91bmQuXG4gIC8vIFRoaXMgZW5zdXJlcyB0aGF0IDAuLm4tMSBoYXZlIGFuIGVxdWFsIHByb2JhYmlsaXR5IG9mIGJlaW5nIHNlbGVjdGVkLlxuICBkb1xuICAgIHZhciBhID0gbmV3IGJuKHRoaXMucmFuZC5nZW5lcmF0ZShtaW5fYnl0ZXMpKTtcbiAgd2hpbGUgKGEuY21wKG4pID49IDApO1xuXG4gIHJldHVybiBhO1xufTtcblxuTWlsbGVyUmFiaW4ucHJvdG90eXBlLl9yYW5kcmFuZ2UgPSBmdW5jdGlvbiBfcmFuZHJhbmdlKHN0YXJ0LCBzdG9wKSB7XG4gIC8vIEdlbmVyYXRlIGEgcmFuZG9tIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gc3RhcnQgYW5kIGxlc3MgdGhhbiBzdG9wLlxuICB2YXIgc2l6ZSA9IHN0b3Auc3ViKHN0YXJ0KTtcbiAgcmV0dXJuIHN0YXJ0LmFkZCh0aGlzLl9yYW5kYmVsb3coc2l6ZSkpO1xufTtcblxuTWlsbGVyUmFiaW4ucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbiB0ZXN0KG4sIGssIGNiKSB7XG4gIHZhciBsZW4gPSBuLmJpdExlbmd0aCgpO1xuICB2YXIgcmVkID0gYm4ubW9udChuKTtcbiAgdmFyIHJvbmUgPSBuZXcgYm4oMSkudG9SZWQocmVkKTtcblxuICBpZiAoIWspXG4gICAgayA9IE1hdGgubWF4KDEsIChsZW4gLyA0OCkgfCAwKTtcblxuICAvLyBGaW5kIGQgYW5kIHMsIChuIC0gMSkgPSAoMiBeIHMpICogZDtcbiAgdmFyIG4xID0gbi5zdWJuKDEpO1xuICBmb3IgKHZhciBzID0gMDsgIW4xLnRlc3RuKHMpOyBzKyspIHt9XG4gIHZhciBkID0gbi5zaHJuKHMpO1xuXG4gIHZhciBybjEgPSBuMS50b1JlZChyZWQpO1xuXG4gIHZhciBwcmltZSA9IHRydWU7XG4gIGZvciAoOyBrID4gMDsgay0tKSB7XG4gICAgdmFyIGEgPSB0aGlzLl9yYW5kcmFuZ2UobmV3IGJuKDIpLCBuMSk7XG4gICAgaWYgKGNiKVxuICAgICAgY2IoYSk7XG5cbiAgICB2YXIgeCA9IGEudG9SZWQocmVkKS5yZWRQb3coZCk7XG4gICAgaWYgKHguY21wKHJvbmUpID09PSAwIHx8IHguY21wKHJuMSkgPT09IDApXG4gICAgICBjb250aW51ZTtcblxuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgczsgaSsrKSB7XG4gICAgICB4ID0geC5yZWRTcXIoKTtcblxuICAgICAgaWYgKHguY21wKHJvbmUpID09PSAwKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoeC5jbXAocm4xKSA9PT0gMClcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGkgPT09IHMpXG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gcHJpbWU7XG59O1xuXG5NaWxsZXJSYWJpbi5wcm90b3R5cGUuZ2V0RGl2aXNvciA9IGZ1bmN0aW9uIGdldERpdmlzb3Iobiwgaykge1xuICB2YXIgbGVuID0gbi5iaXRMZW5ndGgoKTtcbiAgdmFyIHJlZCA9IGJuLm1vbnQobik7XG4gIHZhciByb25lID0gbmV3IGJuKDEpLnRvUmVkKHJlZCk7XG5cbiAgaWYgKCFrKVxuICAgIGsgPSBNYXRoLm1heCgxLCAobGVuIC8gNDgpIHwgMCk7XG5cbiAgLy8gRmluZCBkIGFuZCBzLCAobiAtIDEpID0gKDIgXiBzKSAqIGQ7XG4gIHZhciBuMSA9IG4uc3VibigxKTtcbiAgZm9yICh2YXIgcyA9IDA7ICFuMS50ZXN0bihzKTsgcysrKSB7fVxuICB2YXIgZCA9IG4uc2hybihzKTtcblxuICB2YXIgcm4xID0gbjEudG9SZWQocmVkKTtcblxuICBmb3IgKDsgayA+IDA7IGstLSkge1xuICAgIHZhciBhID0gdGhpcy5fcmFuZHJhbmdlKG5ldyBibigyKSwgbjEpO1xuXG4gICAgdmFyIGcgPSBuLmdjZChhKTtcbiAgICBpZiAoZy5jbXBuKDEpICE9PSAwKVxuICAgICAgcmV0dXJuIGc7XG5cbiAgICB2YXIgeCA9IGEudG9SZWQocmVkKS5yZWRQb3coZCk7XG4gICAgaWYgKHguY21wKHJvbmUpID09PSAwIHx8IHguY21wKHJuMSkgPT09IDApXG4gICAgICBjb250aW51ZTtcblxuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgczsgaSsrKSB7XG4gICAgICB4ID0geC5yZWRTcXIoKTtcblxuICAgICAgaWYgKHguY21wKHJvbmUpID09PSAwKVxuICAgICAgICByZXR1cm4geC5mcm9tUmVkKCkuc3VibigxKS5nY2Qobik7XG4gICAgICBpZiAoeC5jbXAocm4xKSA9PT0gMClcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGkgPT09IHMpIHtcbiAgICAgIHggPSB4LnJlZFNxcigpO1xuICAgICAgcmV0dXJuIHguZnJvbVJlZCgpLnN1Ym4oMSkuZ2NkKG4pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGFzc2VydDtcblxuZnVuY3Rpb24gYXNzZXJ0KHZhbCwgbXNnKSB7XG4gIGlmICghdmFsKVxuICAgIHRocm93IG5ldyBFcnJvcihtc2cgfHwgJ0Fzc2VydGlvbiBmYWlsZWQnKTtcbn1cblxuYXNzZXJ0LmVxdWFsID0gZnVuY3Rpb24gYXNzZXJ0RXF1YWwobCwgciwgbXNnKSB7XG4gIGlmIChsICE9IHIpXG4gICAgdGhyb3cgbmV3IEVycm9yKG1zZyB8fCAoJ0Fzc2VydGlvbiBmYWlsZWQ6ICcgKyBsICsgJyAhPSAnICsgcikpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gZXhwb3J0cztcblxuZnVuY3Rpb24gdG9BcnJheShtc2csIGVuYykge1xuICBpZiAoQXJyYXkuaXNBcnJheShtc2cpKVxuICAgIHJldHVybiBtc2cuc2xpY2UoKTtcbiAgaWYgKCFtc2cpXG4gICAgcmV0dXJuIFtdO1xuICB2YXIgcmVzID0gW107XG4gIGlmICh0eXBlb2YgbXNnICE9PSAnc3RyaW5nJykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXNnLmxlbmd0aDsgaSsrKVxuICAgICAgcmVzW2ldID0gbXNnW2ldIHwgMDtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIGlmIChlbmMgPT09ICdoZXgnKSB7XG4gICAgbXNnID0gbXNnLnJlcGxhY2UoL1teYS16MC05XSsvaWcsICcnKTtcbiAgICBpZiAobXNnLmxlbmd0aCAlIDIgIT09IDApXG4gICAgICBtc2cgPSAnMCcgKyBtc2c7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpICs9IDIpXG4gICAgICByZXMucHVzaChwYXJzZUludChtc2dbaV0gKyBtc2dbaSArIDFdLCAxNikpO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXNnLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgYyA9IG1zZy5jaGFyQ29kZUF0KGkpO1xuICAgICAgdmFyIGhpID0gYyA+PiA4O1xuICAgICAgdmFyIGxvID0gYyAmIDB4ZmY7XG4gICAgICBpZiAoaGkpXG4gICAgICAgIHJlcy5wdXNoKGhpLCBsbyk7XG4gICAgICBlbHNlXG4gICAgICAgIHJlcy5wdXNoKGxvKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cbnV0aWxzLnRvQXJyYXkgPSB0b0FycmF5O1xuXG5mdW5jdGlvbiB6ZXJvMih3b3JkKSB7XG4gIGlmICh3b3JkLmxlbmd0aCA9PT0gMSlcbiAgICByZXR1cm4gJzAnICsgd29yZDtcbiAgZWxzZVxuICAgIHJldHVybiB3b3JkO1xufVxudXRpbHMuemVybzIgPSB6ZXJvMjtcblxuZnVuY3Rpb24gdG9IZXgobXNnKSB7XG4gIHZhciByZXMgPSAnJztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpKyspXG4gICAgcmVzICs9IHplcm8yKG1zZ1tpXS50b1N0cmluZygxNikpO1xuICByZXR1cm4gcmVzO1xufVxudXRpbHMudG9IZXggPSB0b0hleDtcblxudXRpbHMuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKGFyciwgZW5jKSB7XG4gIGlmIChlbmMgPT09ICdoZXgnKVxuICAgIHJldHVybiB0b0hleChhcnIpO1xuICBlbHNlXG4gICAgcmV0dXJuIGFycjtcbn07XG4iLCIvLyEgbW9tZW50LmpzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpIDpcbiAgICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuICAgIGdsb2JhbC5tb21lbnQgPSBmYWN0b3J5KClcbn0odGhpcywgKGZ1bmN0aW9uICgpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIGhvb2tDYWxsYmFjaztcblxuICAgIGZ1bmN0aW9uIGhvb2tzICgpIHtcbiAgICAgICAgcmV0dXJuIGhvb2tDYWxsYmFjay5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgZG9uZSB0byByZWdpc3RlciB0aGUgbWV0aG9kIGNhbGxlZCB3aXRoIG1vbWVudCgpXG4gICAgLy8gd2l0aG91dCBjcmVhdGluZyBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gICAgZnVuY3Rpb24gc2V0SG9va0NhbGxiYWNrIChjYWxsYmFjaykge1xuICAgICAgICBob29rQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0FycmF5KGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIEFycmF5IHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNPYmplY3QoaW5wdXQpIHtcbiAgICAgICAgLy8gSUU4IHdpbGwgdHJlYXQgdW5kZWZpbmVkIGFuZCBudWxsIGFzIG9iamVjdCBpZiBpdCB3YXNuJ3QgZm9yXG4gICAgICAgIC8vIGlucHV0ICE9IG51bGxcbiAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgT2JqZWN0XSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNPYmplY3RFbXB0eShvYmopIHtcbiAgICAgICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikubGVuZ3RoID09PSAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBrO1xuICAgICAgICAgICAgZm9yIChrIGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVbmRlZmluZWQoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09PSB2b2lkIDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNOdW1iZXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgTnVtYmVyXSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXRlKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIERhdGUgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hcChhcnIsIGZuKSB7XG4gICAgICAgIHZhciByZXMgPSBbXSwgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyci5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgcmVzLnB1c2goZm4oYXJyW2ldLCBpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNPd25Qcm9wKGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCBiKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBleHRlbmQoYSwgYikge1xuICAgICAgICBmb3IgKHZhciBpIGluIGIpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGIsIGkpKSB7XG4gICAgICAgICAgICAgICAgYVtpXSA9IGJbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzT3duUHJvcChiLCAndG9TdHJpbmcnKSkge1xuICAgICAgICAgICAgYS50b1N0cmluZyA9IGIudG9TdHJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzT3duUHJvcChiLCAndmFsdWVPZicpKSB7XG4gICAgICAgICAgICBhLnZhbHVlT2YgPSBiLnZhbHVlT2Y7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVVVEMgKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCB0cnVlKS51dGMoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZWZhdWx0UGFyc2luZ0ZsYWdzKCkge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIGRlZXAgY2xvbmUgdGhpcyBvYmplY3QuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbXB0eSAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHVudXNlZFRva2VucyAgICA6IFtdLFxuICAgICAgICAgICAgdW51c2VkSW5wdXQgICAgIDogW10sXG4gICAgICAgICAgICBvdmVyZmxvdyAgICAgICAgOiAtMixcbiAgICAgICAgICAgIGNoYXJzTGVmdE92ZXIgICA6IDAsXG4gICAgICAgICAgICBudWxsSW5wdXQgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIGludmFsaWRNb250aCAgICA6IG51bGwsXG4gICAgICAgICAgICBpbnZhbGlkRm9ybWF0ICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHVzZXJJbnZhbGlkYXRlZCA6IGZhbHNlLFxuICAgICAgICAgICAgaXNvICAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICBwYXJzZWREYXRlUGFydHMgOiBbXSxcbiAgICAgICAgICAgIG1lcmlkaWVtICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICByZmMyODIyICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHdlZWtkYXlNaXNtYXRjaCA6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2luZ0ZsYWdzKG0pIHtcbiAgICAgICAgaWYgKG0uX3BmID09IG51bGwpIHtcbiAgICAgICAgICAgIG0uX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtLl9wZjtcbiAgICB9XG5cbiAgICB2YXIgc29tZTtcbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLnNvbWUpIHtcbiAgICAgICAgc29tZSA9IEFycmF5LnByb3RvdHlwZS5zb21lO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNvbWUgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgICAgICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKTtcbiAgICAgICAgICAgIHZhciBsZW4gPSB0Lmxlbmd0aCA+Pj4gMDtcblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpIGluIHQgJiYgZnVuLmNhbGwodGhpcywgdFtpXSwgaSwgdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZChtKSB7XG4gICAgICAgIGlmIChtLl9pc1ZhbGlkID09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBmbGFncyA9IGdldFBhcnNpbmdGbGFncyhtKTtcbiAgICAgICAgICAgIHZhciBwYXJzZWRQYXJ0cyA9IHNvbWUuY2FsbChmbGFncy5wYXJzZWREYXRlUGFydHMsIGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGkgIT0gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGlzTm93VmFsaWQgPSAhaXNOYU4obS5fZC5nZXRUaW1lKCkpICYmXG4gICAgICAgICAgICAgICAgZmxhZ3Mub3ZlcmZsb3cgPCAwICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmVtcHR5ICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRNb250aCAmJlxuICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkV2Vla2RheSAmJlxuICAgICAgICAgICAgICAgICFmbGFncy53ZWVrZGF5TWlzbWF0Y2ggJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MubnVsbElucHV0ICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRGb3JtYXQgJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MudXNlckludmFsaWRhdGVkICYmXG4gICAgICAgICAgICAgICAgKCFmbGFncy5tZXJpZGllbSB8fCAoZmxhZ3MubWVyaWRpZW0gJiYgcGFyc2VkUGFydHMpKTtcblxuICAgICAgICAgICAgaWYgKG0uX3N0cmljdCkge1xuICAgICAgICAgICAgICAgIGlzTm93VmFsaWQgPSBpc05vd1ZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmNoYXJzTGVmdE92ZXIgPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MudW51c2VkVG9rZW5zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy5iaWdIb3VyID09PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChPYmplY3QuaXNGcm96ZW4gPT0gbnVsbCB8fCAhT2JqZWN0LmlzRnJvemVuKG0pKSB7XG4gICAgICAgICAgICAgICAgbS5faXNWYWxpZCA9IGlzTm93VmFsaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNOb3dWYWxpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbS5faXNWYWxpZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZhbGlkIChmbGFncykge1xuICAgICAgICB2YXIgbSA9IGNyZWF0ZVVUQyhOYU4pO1xuICAgICAgICBpZiAoZmxhZ3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgZXh0ZW5kKGdldFBhcnNpbmdGbGFncyhtKSwgZmxhZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLnVzZXJJbnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICAvLyBQbHVnaW5zIHRoYXQgYWRkIHByb3BlcnRpZXMgc2hvdWxkIGFsc28gYWRkIHRoZSBrZXkgaGVyZSAobnVsbCB2YWx1ZSksXG4gICAgLy8gc28gd2UgY2FuIHByb3Blcmx5IGNsb25lIG91cnNlbHZlcy5cbiAgICB2YXIgbW9tZW50UHJvcGVydGllcyA9IGhvb2tzLm1vbWVudFByb3BlcnRpZXMgPSBbXTtcblxuICAgIGZ1bmN0aW9uIGNvcHlDb25maWcodG8sIGZyb20pIHtcbiAgICAgICAgdmFyIGksIHByb3AsIHZhbDtcblxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzQU1vbWVudE9iamVjdCkpIHtcbiAgICAgICAgICAgIHRvLl9pc0FNb21lbnRPYmplY3QgPSBmcm9tLl9pc0FNb21lbnRPYmplY3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9pKSkge1xuICAgICAgICAgICAgdG8uX2kgPSBmcm9tLl9pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fZikpIHtcbiAgICAgICAgICAgIHRvLl9mID0gZnJvbS5fZjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2wpKSB7XG4gICAgICAgICAgICB0by5fbCA9IGZyb20uX2w7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9zdHJpY3QpKSB7XG4gICAgICAgICAgICB0by5fc3RyaWN0ID0gZnJvbS5fc3RyaWN0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fdHptKSkge1xuICAgICAgICAgICAgdG8uX3R6bSA9IGZyb20uX3R6bTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzVVRDKSkge1xuICAgICAgICAgICAgdG8uX2lzVVRDID0gZnJvbS5faXNVVEM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9vZmZzZXQpKSB7XG4gICAgICAgICAgICB0by5fb2Zmc2V0ID0gZnJvbS5fb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fcGYpKSB7XG4gICAgICAgICAgICB0by5fcGYgPSBnZXRQYXJzaW5nRmxhZ3MoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9sb2NhbGUpKSB7XG4gICAgICAgICAgICB0by5fbG9jYWxlID0gZnJvbS5fbG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vbWVudFByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1vbWVudFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwcm9wID0gbW9tZW50UHJvcGVydGllc1tpXTtcbiAgICAgICAgICAgICAgICB2YWwgPSBmcm9tW3Byb3BdO1xuICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQodmFsKSkge1xuICAgICAgICAgICAgICAgICAgICB0b1twcm9wXSA9IHZhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG87XG4gICAgfVxuXG4gICAgdmFyIHVwZGF0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgIC8vIE1vbWVudCBwcm90b3R5cGUgb2JqZWN0XG4gICAgZnVuY3Rpb24gTW9tZW50KGNvbmZpZykge1xuICAgICAgICBjb3B5Q29uZmlnKHRoaXMsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2QgPSBuZXcgRGF0ZShjb25maWcuX2QgIT0gbnVsbCA/IGNvbmZpZy5fZC5nZXRUaW1lKCkgOiBOYU4pO1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9kID0gbmV3IERhdGUoTmFOKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQcmV2ZW50IGluZmluaXRlIGxvb3AgaW4gY2FzZSB1cGRhdGVPZmZzZXQgY3JlYXRlcyBuZXcgbW9tZW50XG4gICAgICAgIC8vIG9iamVjdHMuXG4gICAgICAgIGlmICh1cGRhdGVJblByb2dyZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcyk7XG4gICAgICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc01vbWVudCAob2JqKSB7XG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBNb21lbnQgfHwgKG9iaiAhPSBudWxsICYmIG9iai5faXNBTW9tZW50T2JqZWN0ICE9IG51bGwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic0Zsb29yIChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIC8vIC0wIC0+IDBcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKSB8fCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSW50KGFyZ3VtZW50Rm9yQ29lcmNpb24pIHtcbiAgICAgICAgdmFyIGNvZXJjZWROdW1iZXIgPSArYXJndW1lbnRGb3JDb2VyY2lvbixcbiAgICAgICAgICAgIHZhbHVlID0gMDtcblxuICAgICAgICBpZiAoY29lcmNlZE51bWJlciAhPT0gMCAmJiBpc0Zpbml0ZShjb2VyY2VkTnVtYmVyKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBhYnNGbG9vcihjb2VyY2VkTnVtYmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBjb21wYXJlIHR3byBhcnJheXMsIHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZmZlcmVuY2VzXG4gICAgZnVuY3Rpb24gY29tcGFyZUFycmF5cyhhcnJheTEsIGFycmF5MiwgZG9udENvbnZlcnQpIHtcbiAgICAgICAgdmFyIGxlbiA9IE1hdGgubWluKGFycmF5MS5sZW5ndGgsIGFycmF5Mi5sZW5ndGgpLFxuICAgICAgICAgICAgbGVuZ3RoRGlmZiA9IE1hdGguYWJzKGFycmF5MS5sZW5ndGggLSBhcnJheTIubGVuZ3RoKSxcbiAgICAgICAgICAgIGRpZmZzID0gMCxcbiAgICAgICAgICAgIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgaWYgKChkb250Q29udmVydCAmJiBhcnJheTFbaV0gIT09IGFycmF5MltpXSkgfHxcbiAgICAgICAgICAgICAgICAoIWRvbnRDb252ZXJ0ICYmIHRvSW50KGFycmF5MVtpXSkgIT09IHRvSW50KGFycmF5MltpXSkpKSB7XG4gICAgICAgICAgICAgICAgZGlmZnMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlmZnMgKyBsZW5ndGhEaWZmO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdhcm4obXNnKSB7XG4gICAgICAgIGlmIChob29rcy5zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgKHR5cGVvZiBjb25zb2xlICE9PSAgJ3VuZGVmaW5lZCcpICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdEZXByZWNhdGlvbiB3YXJuaW5nOiAnICsgbXNnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlcHJlY2F0ZShtc2csIGZuKSB7XG4gICAgICAgIHZhciBmaXJzdFRpbWUgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiBleHRlbmQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyKG51bGwsIG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICB2YXIgYXJnO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZyA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1tpXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyArPSAnXFxuWycgKyBpICsgJ10gJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBhcmd1bWVudHNbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgKz0ga2V5ICsgJzogJyArIGFyZ3VtZW50c1swXVtrZXldICsgJywgJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZy5zbGljZSgwLCAtMik7IC8vIFJlbW92ZSB0cmFpbGluZyBjb21tYSBhbmQgc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhcmdzLnB1c2goYXJnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2Fybihtc2cgKyAnXFxuQXJndW1lbnRzOiAnICsgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncykuam9pbignJykgKyAnXFxuJyArIChuZXcgRXJyb3IoKSkuc3RhY2spO1xuICAgICAgICAgICAgICAgIGZpcnN0VGltZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sIGZuKTtcbiAgICB9XG5cbiAgICB2YXIgZGVwcmVjYXRpb25zID0ge307XG5cbiAgICBmdW5jdGlvbiBkZXByZWNhdGVTaW1wbGUobmFtZSwgbXNnKSB7XG4gICAgICAgIGlmIChob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyKG5hbWUsIG1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFkZXByZWNhdGlvbnNbbmFtZV0pIHtcbiAgICAgICAgICAgIHdhcm4obXNnKTtcbiAgICAgICAgICAgIGRlcHJlY2F0aW9uc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBob29rcy5zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MgPSBmYWxzZTtcbiAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgPSBudWxsO1xuXG4gICAgZnVuY3Rpb24gaXNGdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBGdW5jdGlvbiB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldCAoY29uZmlnKSB7XG4gICAgICAgIHZhciBwcm9wLCBpO1xuICAgICAgICBmb3IgKGkgaW4gY29uZmlnKSB7XG4gICAgICAgICAgICBwcm9wID0gY29uZmlnW2ldO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ocHJvcCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzW2ldID0gcHJvcDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpc1snXycgKyBpXSA9IHByb3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICAvLyBMZW5pZW50IG9yZGluYWwgcGFyc2luZyBhY2NlcHRzIGp1c3QgYSBudW1iZXIgaW4gYWRkaXRpb24gdG9cbiAgICAgICAgLy8gbnVtYmVyICsgKHBvc3NpYmx5KSBzdHVmZiBjb21pbmcgZnJvbSBfZGF5T2ZNb250aE9yZGluYWxQYXJzZS5cbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIFwib3JkaW5hbFBhcnNlXCIgZmFsbGJhY2sgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICAgICAgICB0aGlzLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAodGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZS5zb3VyY2UgfHwgdGhpcy5fb3JkaW5hbFBhcnNlLnNvdXJjZSkgK1xuICAgICAgICAgICAgICAgICd8JyArICgvXFxkezEsMn0vKS5zb3VyY2UpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNoaWxkQ29uZmlnKSB7XG4gICAgICAgIHZhciByZXMgPSBleHRlbmQoe30sIHBhcmVudENvbmZpZyksIHByb3A7XG4gICAgICAgIGZvciAocHJvcCBpbiBjaGlsZENvbmZpZykge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHBhcmVudENvbmZpZ1twcm9wXSkgJiYgaXNPYmplY3QoY2hpbGRDb25maWdbcHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBwYXJlbnRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBjaGlsZENvbmZpZ1twcm9wXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZENvbmZpZ1twcm9wXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IGNoaWxkQ29uZmlnW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAocHJvcCBpbiBwYXJlbnRDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKHBhcmVudENvbmZpZywgcHJvcCkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApICYmXG4gICAgICAgICAgICAgICAgICAgIGlzT2JqZWN0KHBhcmVudENvbmZpZ1twcm9wXSkpIHtcbiAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgY2hhbmdlcyB0byBwcm9wZXJ0aWVzIGRvbid0IG1vZGlmeSBwYXJlbnQgY29uZmlnXG4gICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gZXh0ZW5kKHt9LCByZXNbcHJvcF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTG9jYWxlKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0KGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5cztcblxuICAgIGlmIChPYmplY3Qua2V5cykge1xuICAgICAgICBrZXlzID0gT2JqZWN0LmtleXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAga2V5cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgIHZhciBpLCByZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChvYmosIGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRDYWxlbmRhciA9IHtcbiAgICAgICAgc2FtZURheSA6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgbmV4dERheSA6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgbGFzdERheSA6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgIGxhc3RXZWVrIDogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjYWxlbmRhciAoa2V5LCBtb20sIG5vdykge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fY2FsZW5kYXJba2V5XSB8fCB0aGlzLl9jYWxlbmRhclsnc2FtZUVsc2UnXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob3V0cHV0KSA/IG91dHB1dC5jYWxsKG1vbSwgbm93KSA6IG91dHB1dDtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvbmdEYXRlRm9ybWF0ID0ge1xuICAgICAgICBMVFMgIDogJ2g6bW06c3MgQScsXG4gICAgICAgIExUICAgOiAnaDptbSBBJyxcbiAgICAgICAgTCAgICA6ICdNTS9ERC9ZWVlZJyxcbiAgICAgICAgTEwgICA6ICdNTU1NIEQsIFlZWVknLFxuICAgICAgICBMTEwgIDogJ01NTU0gRCwgWVlZWSBoOm1tIEEnLFxuICAgICAgICBMTExMIDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEnXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxvbmdEYXRlRm9ybWF0IChrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0sXG4gICAgICAgICAgICBmb3JtYXRVcHBlciA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleS50b1VwcGVyQ2FzZSgpXTtcblxuICAgICAgICBpZiAoZm9ybWF0IHx8ICFmb3JtYXRVcHBlcikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0gPSBmb3JtYXRVcHBlci5yZXBsYWNlKC9NTU1NfE1NfEREfGRkZGQvZywgZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbC5zbGljZSgxKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRJbnZhbGlkRGF0ZSA9ICdJbnZhbGlkIGRhdGUnO1xuXG4gICAgZnVuY3Rpb24gaW52YWxpZERhdGUgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52YWxpZERhdGU7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRPcmRpbmFsID0gJyVkJztcbiAgICB2YXIgZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UgPSAvXFxkezEsMn0vO1xuXG4gICAgZnVuY3Rpb24gb3JkaW5hbCAobnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcmRpbmFsLnJlcGxhY2UoJyVkJywgbnVtYmVyKTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFJlbGF0aXZlVGltZSA9IHtcbiAgICAgICAgZnV0dXJlIDogJ2luICVzJyxcbiAgICAgICAgcGFzdCAgIDogJyVzIGFnbycsXG4gICAgICAgIHMgIDogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICBzcyA6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgbSAgOiAnYSBtaW51dGUnLFxuICAgICAgICBtbSA6ICclZCBtaW51dGVzJyxcbiAgICAgICAgaCAgOiAnYW4gaG91cicsXG4gICAgICAgIGhoIDogJyVkIGhvdXJzJyxcbiAgICAgICAgZCAgOiAnYSBkYXknLFxuICAgICAgICBkZCA6ICclZCBkYXlzJyxcbiAgICAgICAgTSAgOiAnYSBtb250aCcsXG4gICAgICAgIE1NIDogJyVkIG1vbnRocycsXG4gICAgICAgIHkgIDogJ2EgeWVhcicsXG4gICAgICAgIHl5IDogJyVkIHllYXJzJ1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUgKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW3N0cmluZ107XG4gICAgICAgIHJldHVybiAoaXNGdW5jdGlvbihvdXRwdXQpKSA/XG4gICAgICAgICAgICBvdXRwdXQobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSA6XG4gICAgICAgICAgICBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXN0RnV0dXJlIChkaWZmLCBvdXRwdXQpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuX3JlbGF0aXZlVGltZVtkaWZmID4gMCA/ICdmdXR1cmUnIDogJ3Bhc3QnXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oZm9ybWF0KSA/IGZvcm1hdChvdXRwdXQpIDogZm9ybWF0LnJlcGxhY2UoLyVzL2ksIG91dHB1dCk7XG4gICAgfVxuXG4gICAgdmFyIGFsaWFzZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFVuaXRBbGlhcyAodW5pdCwgc2hvcnRoYW5kKSB7XG4gICAgICAgIHZhciBsb3dlckNhc2UgPSB1bml0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGFsaWFzZXNbbG93ZXJDYXNlXSA9IGFsaWFzZXNbbG93ZXJDYXNlICsgJ3MnXSA9IGFsaWFzZXNbc2hvcnRoYW5kXSA9IHVuaXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplVW5pdHModW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB1bml0cyA9PT0gJ3N0cmluZycgPyBhbGlhc2VzW3VuaXRzXSB8fCBhbGlhc2VzW3VuaXRzLnRvTG93ZXJDYXNlKCldIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdFVuaXRzKGlucHV0T2JqZWN0KSB7XG4gICAgICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSB7fSxcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wLFxuICAgICAgICAgICAgcHJvcDtcblxuICAgICAgICBmb3IgKHByb3AgaW4gaW5wdXRPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGlucHV0T2JqZWN0LCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wID0gbm9ybWFsaXplVW5pdHMocHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRQcm9wKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRJbnB1dFtub3JtYWxpemVkUHJvcF0gPSBpbnB1dE9iamVjdFtwcm9wXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZElucHV0O1xuICAgIH1cblxuICAgIHZhciBwcmlvcml0aWVzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRVbml0UHJpb3JpdHkodW5pdCwgcHJpb3JpdHkpIHtcbiAgICAgICAgcHJpb3JpdGllc1t1bml0XSA9IHByaW9yaXR5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFByaW9yaXRpemVkVW5pdHModW5pdHNPYmopIHtcbiAgICAgICAgdmFyIHVuaXRzID0gW107XG4gICAgICAgIGZvciAodmFyIHUgaW4gdW5pdHNPYmopIHtcbiAgICAgICAgICAgIHVuaXRzLnB1c2goe3VuaXQ6IHUsIHByaW9yaXR5OiBwcmlvcml0aWVzW3VdfSk7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGEucHJpb3JpdHkgLSBiLnByaW9yaXR5O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHVuaXRzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHplcm9GaWxsKG51bWJlciwgdGFyZ2V0TGVuZ3RoLCBmb3JjZVNpZ24pIHtcbiAgICAgICAgdmFyIGFic051bWJlciA9ICcnICsgTWF0aC5hYnMobnVtYmVyKSxcbiAgICAgICAgICAgIHplcm9zVG9GaWxsID0gdGFyZ2V0TGVuZ3RoIC0gYWJzTnVtYmVyLmxlbmd0aCxcbiAgICAgICAgICAgIHNpZ24gPSBudW1iZXIgPj0gMDtcbiAgICAgICAgcmV0dXJuIChzaWduID8gKGZvcmNlU2lnbiA/ICcrJyA6ICcnKSA6ICctJykgK1xuICAgICAgICAgICAgTWF0aC5wb3coMTAsIE1hdGgubWF4KDAsIHplcm9zVG9GaWxsKSkudG9TdHJpbmcoKS5zdWJzdHIoMSkgKyBhYnNOdW1iZXI7XG4gICAgfVxuXG4gICAgdmFyIGZvcm1hdHRpbmdUb2tlbnMgPSAvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oW0hoXW1tKHNzKT98TW98TU0/TT9NP3xEb3xERERvfEREP0Q/RD98ZGRkP2Q/fGRvP3x3W298d10/fFdbb3xXXT98UW8/fFlZWVlZWXxZWVlZWXxZWVlZfFlZfGdnKGdnZz8pP3xHRyhHR0c/KT98ZXxFfGF8QXxoaD98SEg/fGtrP3xtbT98c3M/fFN7MSw5fXx4fFh8eno/fFpaP3wuKS9nO1xuXG4gICAgdmFyIGxvY2FsRm9ybWF0dGluZ1Rva2VucyA9IC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhMVFN8TFR8TEw/TD9MP3xsezEsNH0pL2c7XG5cbiAgICB2YXIgZm9ybWF0RnVuY3Rpb25zID0ge307XG5cbiAgICB2YXIgZm9ybWF0VG9rZW5GdW5jdGlvbnMgPSB7fTtcblxuICAgIC8vIHRva2VuOiAgICAnTSdcbiAgICAvLyBwYWRkZWQ6ICAgWydNTScsIDJdXG4gICAgLy8gb3JkaW5hbDogICdNbydcbiAgICAvLyBjYWxsYmFjazogZnVuY3Rpb24gKCkgeyB0aGlzLm1vbnRoKCkgKyAxIH1cbiAgICBmdW5jdGlvbiBhZGRGb3JtYXRUb2tlbiAodG9rZW4sIHBhZGRlZCwgb3JkaW5hbCwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBjYWxsYmFjaztcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbY2FsbGJhY2tdKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbdG9rZW5dID0gZnVuYztcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFkZGVkKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1twYWRkZWRbMF1dID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB6ZXJvRmlsbChmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksIHBhZGRlZFsxXSwgcGFkZGVkWzJdKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9yZGluYWwpIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW29yZGluYWxdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5vcmRpbmFsKGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgdG9rZW4pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoaW5wdXQpIHtcbiAgICAgICAgaWYgKGlucHV0Lm1hdGNoKC9cXFtbXFxzXFxTXS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXlxcW3xcXF0kL2csICcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXFxcXC9nLCAnJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCkge1xuICAgICAgICB2YXIgYXJyYXkgPSBmb3JtYXQubWF0Y2goZm9ybWF0dGluZ1Rva2VucyksIGksIGxlbmd0aDtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXSkge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gZm9ybWF0VG9rZW5GdW5jdGlvbnNbYXJyYXlbaV1dO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoYXJyYXlbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChtb20pIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJywgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIG91dHB1dCArPSBpc0Z1bmN0aW9uKGFycmF5W2ldKSA/IGFycmF5W2ldLmNhbGwobW9tLCBmb3JtYXQpIDogYXJyYXlbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIGZvcm1hdCBkYXRlIHVzaW5nIG5hdGl2ZSBkYXRlIG9iamVjdFxuICAgIGZ1bmN0aW9uIGZvcm1hdE1vbWVudChtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG0ubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtYXQgPSBleHBhbmRGb3JtYXQoZm9ybWF0LCBtLmxvY2FsZURhdGEoKSk7XG4gICAgICAgIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdID0gZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gfHwgbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdKG0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4cGFuZEZvcm1hdChmb3JtYXQsIGxvY2FsZSkge1xuICAgICAgICB2YXIgaSA9IDU7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLmxvbmdEYXRlRm9ybWF0KGlucHV0KSB8fCBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAoaSA+PSAwICYmIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKGxvY2FsRm9ybWF0dGluZ1Rva2VucywgcmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zKTtcbiAgICAgICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICB2YXIgbWF0Y2gxICAgICAgICAgPSAvXFxkLzsgICAgICAgICAgICAvLyAgICAgICAwIC0gOVxuICAgIHZhciBtYXRjaDIgICAgICAgICA9IC9cXGRcXGQvOyAgICAgICAgICAvLyAgICAgIDAwIC0gOTlcbiAgICB2YXIgbWF0Y2gzICAgICAgICAgPSAvXFxkezN9LzsgICAgICAgICAvLyAgICAgMDAwIC0gOTk5XG4gICAgdmFyIG1hdGNoNCAgICAgICAgID0gL1xcZHs0fS87ICAgICAgICAgLy8gICAgMDAwMCAtIDk5OTlcbiAgICB2YXIgbWF0Y2g2ICAgICAgICAgPSAvWystXT9cXGR7Nn0vOyAgICAvLyAtOTk5OTk5IC0gOTk5OTk5XG4gICAgdmFyIG1hdGNoMXRvMiAgICAgID0gL1xcZFxcZD8vOyAgICAgICAgIC8vICAgICAgIDAgLSA5OVxuICAgIHZhciBtYXRjaDN0bzQgICAgICA9IC9cXGRcXGRcXGRcXGQ/LzsgICAgIC8vICAgICA5OTkgLSA5OTk5XG4gICAgdmFyIG1hdGNoNXRvNiAgICAgID0gL1xcZFxcZFxcZFxcZFxcZFxcZD8vOyAvLyAgIDk5OTk5IC0gOTk5OTk5XG4gICAgdmFyIG1hdGNoMXRvMyAgICAgID0gL1xcZHsxLDN9LzsgICAgICAgLy8gICAgICAgMCAtIDk5OVxuICAgIHZhciBtYXRjaDF0bzQgICAgICA9IC9cXGR7MSw0fS87ICAgICAgIC8vICAgICAgIDAgLSA5OTk5XG4gICAgdmFyIG1hdGNoMXRvNiAgICAgID0gL1srLV0/XFxkezEsNn0vOyAgLy8gLTk5OTk5OSAtIDk5OTk5OVxuXG4gICAgdmFyIG1hdGNoVW5zaWduZWQgID0gL1xcZCsvOyAgICAgICAgICAgLy8gICAgICAgMCAtIGluZlxuICAgIHZhciBtYXRjaFNpZ25lZCAgICA9IC9bKy1dP1xcZCsvOyAgICAgIC8vICAgIC1pbmYgLSBpbmZcblxuICAgIHZhciBtYXRjaE9mZnNldCAgICA9IC9afFsrLV1cXGRcXGQ6P1xcZFxcZC9naTsgLy8gKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG4gICAgdmFyIG1hdGNoU2hvcnRPZmZzZXQgPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy9naTsgLy8gKzAwIC0wMCArMDA6MDAgLTAwOjAwICswMDAwIC0wMDAwIG9yIFpcblxuICAgIHZhciBtYXRjaFRpbWVzdGFtcCA9IC9bKy1dP1xcZCsoXFwuXFxkezEsM30pPy87IC8vIDEyMzQ1Njc4OSAxMjM0NTY3ODkuMTIzXG5cbiAgICAvLyBhbnkgd29yZCAob3IgdHdvKSBjaGFyYWN0ZXJzIG9yIG51bWJlcnMgaW5jbHVkaW5nIHR3by90aHJlZSB3b3JkIG1vbnRoIGluIGFyYWJpYy5cbiAgICAvLyBpbmNsdWRlcyBzY290dGlzaCBnYWVsaWMgdHdvIHdvcmQgYW5kIGh5cGhlbmF0ZWQgbW9udGhzXG4gICAgdmFyIG1hdGNoV29yZCA9IC9bMC05XXswLDI1Nn1bJ2EtelxcdTAwQTAtXFx1MDVGRlxcdTA3MDAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkYwN1xcdUZGMTAtXFx1RkZFRl17MSwyNTZ9fFtcXHUwNjAwLVxcdTA2RkZcXC9dezEsMjU2fShcXHMqP1tcXHUwNjAwLVxcdTA2RkZdezEsMjU2fSl7MSwyfS9pO1xuXG4gICAgdmFyIHJlZ2V4ZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFJlZ2V4VG9rZW4gKHRva2VuLCByZWdleCwgc3RyaWN0UmVnZXgpIHtcbiAgICAgICAgcmVnZXhlc1t0b2tlbl0gPSBpc0Z1bmN0aW9uKHJlZ2V4KSA/IHJlZ2V4IDogZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGVEYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gKGlzU3RyaWN0ICYmIHN0cmljdFJlZ2V4KSA/IHN0cmljdFJlZ2V4IDogcmVnZXg7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2VSZWdleEZvclRva2VuICh0b2tlbiwgY29uZmlnKSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcChyZWdleGVzLCB0b2tlbikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHVuZXNjYXBlRm9ybWF0KHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVnZXhlc1t0b2tlbl0oY29uZmlnLl9zdHJpY3QsIGNvbmZpZy5fbG9jYWxlKTtcbiAgICB9XG5cbiAgICAvLyBDb2RlIGZyb20gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNTYxNDkzL2lzLXRoZXJlLWEtcmVnZXhwLWVzY2FwZS1mdW5jdGlvbi1pbi1qYXZhc2NyaXB0XG4gICAgZnVuY3Rpb24gdW5lc2NhcGVGb3JtYXQocykge1xuICAgICAgICByZXR1cm4gcmVnZXhFc2NhcGUocy5yZXBsYWNlKCdcXFxcJywgJycpLnJlcGxhY2UoL1xcXFwoXFxbKXxcXFxcKFxcXSl8XFxbKFteXFxdXFxbXSopXFxdfFxcXFwoLikvZywgZnVuY3Rpb24gKG1hdGNoZWQsIHAxLCBwMiwgcDMsIHA0KSB7XG4gICAgICAgICAgICByZXR1cm4gcDEgfHwgcDIgfHwgcDMgfHwgcDQ7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWdleEVzY2FwZShzKSB7XG4gICAgICAgIHJldHVybiBzLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICAgIH1cblxuICAgIHZhciB0b2tlbnMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFBhcnNlVG9rZW4gKHRva2VuLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgaSwgZnVuYyA9IGNhbGxiYWNrO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdG9rZW4gPSBbdG9rZW5dO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc051bWJlcihjYWxsYmFjaykpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbY2FsbGJhY2tdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdG9rZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbltpXV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkV2Vla1BhcnNlVG9rZW4gKHRva2VuLCBjYWxsYmFjaykge1xuICAgICAgICBhZGRQYXJzZVRva2VuKHRva2VuLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgICAgICBjb25maWcuX3cgPSBjb25maWcuX3cgfHwge307XG4gICAgICAgICAgICBjYWxsYmFjayhpbnB1dCwgY29uZmlnLl93LCBjb25maWcsIHRva2VuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4odG9rZW4sIGlucHV0LCBjb25maWcpIHtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwgJiYgaGFzT3duUHJvcCh0b2tlbnMsIHRva2VuKSkge1xuICAgICAgICAgICAgdG9rZW5zW3Rva2VuXShpbnB1dCwgY29uZmlnLl9hLCBjb25maWcsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBZRUFSID0gMDtcbiAgICB2YXIgTU9OVEggPSAxO1xuICAgIHZhciBEQVRFID0gMjtcbiAgICB2YXIgSE9VUiA9IDM7XG4gICAgdmFyIE1JTlVURSA9IDQ7XG4gICAgdmFyIFNFQ09ORCA9IDU7XG4gICAgdmFyIE1JTExJU0VDT05EID0gNjtcbiAgICB2YXIgV0VFSyA9IDc7XG4gICAgdmFyIFdFRUtEQVkgPSA4O1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1knLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB5ID0gdGhpcy55ZWFyKCk7XG4gICAgICAgIHJldHVybiB5IDw9IDk5OTkgPyAnJyArIHkgOiAnKycgKyB5O1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWScsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXIoKSAlIDEwMDtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVlZWScsICAgNF0sICAgICAgIDAsICd5ZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZWScsICA1XSwgICAgICAgMCwgJ3llYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVlZWScsIDYsIHRydWVdLCAwLCAneWVhcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd5ZWFyJywgJ3knKTtcblxuICAgIC8vIFBSSU9SSVRJRVNcblxuICAgIGFkZFVuaXRQcmlvcml0eSgneWVhcicsIDEpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignWScsICAgICAgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZJywgICAgIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdZWVlZJywgICBtYXRjaDF0bzQsIG1hdGNoNCk7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVknLCAgbWF0Y2gxdG82LCBtYXRjaDYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZWVlZWScsIG1hdGNoMXRvNiwgbWF0Y2g2KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydZWVlZWScsICdZWVlZWVknXSwgWUVBUik7XG4gICAgYWRkUGFyc2VUb2tlbignWVlZWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBpbnB1dC5sZW5ndGggPT09IDIgPyBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCkgOiB0b0ludChpbnB1dCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignWVknLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1knLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIGRheXNJblllYXIoeWVhcikge1xuICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHtcbiAgICAgICAgcmV0dXJuICh5ZWFyICUgNCA9PT0gMCAmJiB5ZWFyICUgMTAwICE9PSAwKSB8fCB5ZWFyICUgNDAwID09PSAwO1xuICAgIH1cblxuICAgIC8vIEhPT0tTXG5cbiAgICBob29rcy5wYXJzZVR3b0RpZ2l0WWVhciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdG9JbnQoaW5wdXQpICsgKHRvSW50KGlucHV0KSA+IDY4ID8gMTkwMCA6IDIwMDApO1xuICAgIH07XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0WWVhciA9IG1ha2VHZXRTZXQoJ0Z1bGxZZWFyJywgdHJ1ZSk7XG5cbiAgICBmdW5jdGlvbiBnZXRJc0xlYXBZZWFyICgpIHtcbiAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VHZXRTZXQgKHVuaXQsIGtlZXBUaW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0JDEodGhpcywgdW5pdCwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCBrZWVwVGltZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXQodGhpcywgdW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0IChtb20sIHVuaXQpIHtcbiAgICAgICAgcmV0dXJuIG1vbS5pc1ZhbGlkKCkgP1xuICAgICAgICAgICAgbW9tLl9kWydnZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKCkgOiBOYU47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0JDEgKG1vbSwgdW5pdCwgdmFsdWUpIHtcbiAgICAgICAgaWYgKG1vbS5pc1ZhbGlkKCkgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgaWYgKHVuaXQgPT09ICdGdWxsWWVhcicgJiYgaXNMZWFwWWVhcihtb20ueWVhcigpKSAmJiBtb20ubW9udGgoKSA9PT0gMSAmJiBtb20uZGF0ZSgpID09PSAyOSkge1xuICAgICAgICAgICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSh2YWx1ZSwgbW9tLm1vbnRoKCksIGRheXNJbk1vbnRoKHZhbHVlLCBtb20ubW9udGgoKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIHN0cmluZ0dldCAodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHNdKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBzdHJpbmdTZXQgKHVuaXRzLCB2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHVuaXRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVPYmplY3RVbml0cyh1bml0cyk7XG4gICAgICAgICAgICB2YXIgcHJpb3JpdGl6ZWQgPSBnZXRQcmlvcml0aXplZFVuaXRzKHVuaXRzKTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJpb3JpdGl6ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzW3ByaW9yaXRpemVkW2ldLnVuaXRdKHVuaXRzW3ByaW9yaXRpemVkW2ldLnVuaXRdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpc1t1bml0c10pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHNdKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb2QobiwgeCkge1xuICAgICAgICByZXR1cm4gKChuICUgeCkgKyB4KSAlIHg7XG4gICAgfVxuXG4gICAgdmFyIGluZGV4T2Y7XG5cbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgICAgICAgaW5kZXhPZiA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4T2YgPSBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgLy8gSSBrbm93XG4gICAgICAgICAgICB2YXIgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXNbaV0gPT09IG8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7XG4gICAgICAgIGlmIChpc05hTih5ZWFyKSB8fCBpc05hTihtb250aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1vZE1vbnRoID0gbW9kKG1vbnRoLCAxMik7XG4gICAgICAgIHllYXIgKz0gKG1vbnRoIC0gbW9kTW9udGgpIC8gMTI7XG4gICAgICAgIHJldHVybiBtb2RNb250aCA9PT0gMSA/IChpc0xlYXBZZWFyKHllYXIpID8gMjkgOiAyOCkgOiAoMzEgLSBtb2RNb250aCAlIDcgJSAyKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignTScsIFsnTU0nLCAyXSwgJ01vJywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aCgpICsgMTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHNTaG9ydCh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ01NTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbW9udGgnLCAnTScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbW9udGgnLCA4KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ00nLCAgICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NJywgICBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignTU1NJywgIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignTU1NTScsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ00nLCAnTU0nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNT05USF0gPSB0b0ludChpbnB1dCkgLSAxO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ01NTScsICdNTU1NJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgdmFyIG1vbnRoID0gY29uZmlnLl9sb2NhbGUubW9udGhzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmaW5kIGEgbW9udGggbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkLlxuICAgICAgICBpZiAobW9udGggIT0gbnVsbCkge1xuICAgICAgICAgICAgYXJyYXlbTU9OVEhdID0gbW9udGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkTW9udGggPSBpbnB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgdmFyIE1PTlRIU19JTl9GT1JNQVQgPSAvRFtvRF0/KFxcW1teXFxbXFxdXSpcXF18XFxzKStNTU1NPy87XG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNb250aHMgPSAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBsb2NhbGVNb250aHMgKG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocykgPyB0aGlzLl9tb250aHMgOlxuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1snc3RhbmRhbG9uZSddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocykgPyB0aGlzLl9tb250aHNbbS5tb250aCgpXSA6XG4gICAgICAgICAgICB0aGlzLl9tb250aHNbKHRoaXMuX21vbnRocy5pc0Zvcm1hdCB8fCBNT05USFNfSU5fRk9STUFUKS50ZXN0KGZvcm1hdCkgPyAnZm9ybWF0JyA6ICdzdGFuZGFsb25lJ11bbS5tb250aCgpXTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0ID0gJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1Nob3J0IChtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHNTaG9ydCkgPyB0aGlzLl9tb250aHNTaG9ydCA6XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHNTaG9ydCkgPyB0aGlzLl9tb250aHNTaG9ydFttLm1vbnRoKCldIDpcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0W01PTlRIU19JTl9GT1JNQVQudGVzdChmb3JtYXQpID8gJ2Zvcm1hdCcgOiAnc3RhbmRhbG9uZSddW20ubW9udGgoKV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlU3RyaWN0UGFyc2UobW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSwgaWksIG1vbSwgbGxjID0gbW9udGhOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGhpcy5fbW9udGhzUGFyc2UpIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IHVzZWRcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgKytpKSB7XG4gICAgICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSB0aGlzLm1vbnRocyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVNb250aHNQYXJzZSAobW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSwgbW9tLCByZWdleDtcblxuICAgICAgICBpZiAodGhpcy5fbW9udGhzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVN0cmljdFBhcnNlLmNhbGwodGhpcywgbW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX21vbnRoc1BhcnNlKSB7XG4gICAgICAgICAgICB0aGlzLl9tb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlID0gW107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUT0RPOiBhZGQgc29ydGluZ1xuICAgICAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIG1vbnRoIChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyXG4gICAgICAgIC8vIHNlZSBzb3J0aW5nIGluIGNvbXB1dGVNb250aHNQYXJzZVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5XG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgIXRoaXMuX2xvbmdNb250aHNQYXJzZVtpXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy5tb250aHMobW9tLCAnJykucmVwbGFjZSgnLicsICcnKSArICckJywgJ2knKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cCgnXicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0cmljdCAmJiAhdGhpcy5fbW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICByZWdleCA9ICdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpICsgJ3xeJyArIHRoaXMubW9udGhzU2hvcnQobW9tLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdNTU1NJyAmJiB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdNTU0nICYmIHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fbW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBzZXRNb250aCAobW9tLCB2YWx1ZSkge1xuICAgICAgICB2YXIgZGF5T2ZNb250aDtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm4gbW9tO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9JbnQodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG1vbS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IEFub3RoZXIgc2lsZW50IGZhaWx1cmU/XG4gICAgICAgICAgICAgICAgaWYgKCFpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkYXlPZk1vbnRoID0gTWF0aC5taW4obW9tLmRhdGUoKSwgZGF5c0luTW9udGgobW9tLnllYXIoKSwgdmFsdWUpKTtcbiAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArICdNb250aCddKHZhbHVlLCBkYXlPZk1vbnRoKTtcbiAgICAgICAgcmV0dXJuIG1vbTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRNb250aCAodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHNldE1vbnRoKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGdldCh0aGlzLCAnTW9udGgnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldERheXNJbk1vbnRoICgpIHtcbiAgICAgICAgcmV0dXJuIGRheXNJbk1vbnRoKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCkpO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TW9udGhzU2hvcnRSZWdleCA9IG1hdGNoV29yZDtcbiAgICBmdW5jdGlvbiBtb250aHNTaG9ydFJlZ2V4IChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fbW9udGhzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVNb250aHNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzU2hvcnRSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRSZWdleCA9IGRlZmF1bHRNb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgP1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXggOiB0aGlzLl9tb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRNb250aHNSZWdleCA9IG1hdGNoV29yZDtcbiAgICBmdW5jdGlvbiBtb250aHNSZWdleCAoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1JlZ2V4ID0gZGVmYXVsdE1vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0ID9cbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNTdHJpY3RSZWdleCA6IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29tcHV0ZU1vbnRoc1BhcnNlICgpIHtcbiAgICAgICAgZnVuY3Rpb24gY21wTGVuUmV2KGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNob3J0UGllY2VzID0gW10sIGxvbmdQaWVjZXMgPSBbXSwgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGksIG1vbTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICBzaG9ydFBpZWNlcy5wdXNoKHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykpO1xuICAgICAgICAgICAgbG9uZ1BpZWNlcy5wdXNoKHRoaXMubW9udGhzKG1vbSwgJycpKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHMobW9tLCAnJykpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaCh0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIG1vbnRoIChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICAgICAgc2hvcnRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgc2hvcnRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShzaG9ydFBpZWNlc1tpXSk7XG4gICAgICAgICAgICBsb25nUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobG9uZ1BpZWNlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDI0OyBpKyspIHtcbiAgICAgICAgICAgIG1peGVkUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobWl4ZWRQaWVjZXNbaV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbW9udGhzUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaXhlZFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSB0aGlzLl9tb250aHNSZWdleDtcbiAgICAgICAgdGhpcy5fbW9udGhzU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBsb25nUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIHNob3J0UGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVEYXRlICh5LCBtLCBkLCBoLCBNLCBzLCBtcykge1xuICAgICAgICAvLyBjYW4ndCBqdXN0IGFwcGx5KCkgdG8gY3JlYXRlIGEgZGF0ZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzE4MTM0OFxuICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHksIG0sIGQsIGgsIE0sIHMsIG1zKTtcblxuICAgICAgICAvLyB0aGUgZGF0ZSBjb25zdHJ1Y3RvciByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICAgICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwICYmIGlzRmluaXRlKGRhdGUuZ2V0RnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoeSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlVVRDRGF0ZSAoeSkge1xuICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDLmFwcGx5KG51bGwsIGFyZ3VtZW50cykpO1xuXG4gICAgICAgIC8vIHRoZSBEYXRlLlVUQyBmdW5jdGlvbiByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICAgICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwICYmIGlzRmluaXRlKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoeSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgLy8gc3RhcnQtb2YtZmlyc3Qtd2VlayAtIHN0YXJ0LW9mLXllYXJcbiAgICBmdW5jdGlvbiBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIC8vIGZpcnN0LXdlZWsgZGF5IC0tIHdoaWNoIGphbnVhcnkgaXMgYWx3YXlzIGluIHRoZSBmaXJzdCB3ZWVrICg0IGZvciBpc28sIDEgZm9yIG90aGVyKVxuICAgICAgICAgICAgZndkID0gNyArIGRvdyAtIGRveSxcbiAgICAgICAgICAgIC8vIGZpcnN0LXdlZWsgZGF5IGxvY2FsIHdlZWtkYXkgLS0gd2hpY2ggbG9jYWwgd2Vla2RheSBpcyBmd2RcbiAgICAgICAgICAgIGZ3ZGx3ID0gKDcgKyBjcmVhdGVVVENEYXRlKHllYXIsIDAsIGZ3ZCkuZ2V0VVRDRGF5KCkgLSBkb3cpICUgNztcblxuICAgICAgICByZXR1cm4gLWZ3ZGx3ICsgZndkIC0gMTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlI0NhbGN1bGF0aW5nX2FfZGF0ZV9naXZlbl90aGVfeWVhci4yQ193ZWVrX251bWJlcl9hbmRfd2Vla2RheVxuICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrcyh5ZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgbG9jYWxXZWVrZGF5ID0gKDcgKyB3ZWVrZGF5IC0gZG93KSAlIDcsXG4gICAgICAgICAgICB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIGRheU9mWWVhciA9IDEgKyA3ICogKHdlZWsgLSAxKSArIGxvY2FsV2Vla2RheSArIHdlZWtPZmZzZXQsXG4gICAgICAgICAgICByZXNZZWFyLCByZXNEYXlPZlllYXI7XG5cbiAgICAgICAgaWYgKGRheU9mWWVhciA8PSAwKSB7XG4gICAgICAgICAgICByZXNZZWFyID0geWVhciAtIDE7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlzSW5ZZWFyKHJlc1llYXIpICsgZGF5T2ZZZWFyO1xuICAgICAgICB9IGVsc2UgaWYgKGRheU9mWWVhciA+IGRheXNJblllYXIoeWVhcikpIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyICsgMTtcbiAgICAgICAgICAgIHJlc0RheU9mWWVhciA9IGRheU9mWWVhciAtIGRheXNJblllYXIoeWVhcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNZZWFyID0geWVhcjtcbiAgICAgICAgICAgIHJlc0RheU9mWWVhciA9IGRheU9mWWVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB5ZWFyOiByZXNZZWFyLFxuICAgICAgICAgICAgZGF5T2ZZZWFyOiByZXNEYXlPZlllYXJcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3ZWVrT2ZZZWFyKG1vbSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQobW9tLnllYXIoKSwgZG93LCBkb3kpLFxuICAgICAgICAgICAgd2VlayA9IE1hdGguZmxvb3IoKG1vbS5kYXlPZlllYXIoKSAtIHdlZWtPZmZzZXQgLSAxKSAvIDcpICsgMSxcbiAgICAgICAgICAgIHJlc1dlZWssIHJlc1llYXI7XG5cbiAgICAgICAgaWYgKHdlZWsgPCAxKSB7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKSAtIDE7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlayArIHdlZWtzSW5ZZWFyKHJlc1llYXIsIGRvdywgZG95KTtcbiAgICAgICAgfSBlbHNlIGlmICh3ZWVrID4gd2Vla3NJblllYXIobW9tLnllYXIoKSwgZG93LCBkb3kpKSB7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlayAtIHdlZWtzSW5ZZWFyKG1vbS55ZWFyKCksIGRvdywgZG95KTtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpO1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2VlazogcmVzV2VlayxcbiAgICAgICAgICAgIHllYXI6IHJlc1llYXJcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3ZWVrc0luWWVhcih5ZWFyLCBkb3csIGRveSkge1xuICAgICAgICB2YXIgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldCh5ZWFyLCBkb3csIGRveSksXG4gICAgICAgICAgICB3ZWVrT2Zmc2V0TmV4dCA9IGZpcnN0V2Vla09mZnNldCh5ZWFyICsgMSwgZG93LCBkb3kpO1xuICAgICAgICByZXR1cm4gKGRheXNJblllYXIoeWVhcikgLSB3ZWVrT2Zmc2V0ICsgd2Vla09mZnNldE5leHQpIC8gNztcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigndycsIFsnd3cnLCAyXSwgJ3dvJywgJ3dlZWsnKTtcbiAgICBhZGRGb3JtYXRUb2tlbignVycsIFsnV1cnLCAyXSwgJ1dvJywgJ2lzb1dlZWsnKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnd2VlaycsICd3Jyk7XG4gICAgYWRkVW5pdEFsaWFzKCdpc29XZWVrJywgJ1cnKTtcblxuICAgIC8vIFBSSU9SSVRJRVNcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnd2VlaycsIDUpO1xuICAgIGFkZFVuaXRQcmlvcml0eSgnaXNvV2VlaycsIDUpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigndycsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3d3JywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1cnLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdXVycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsndycsICd3dycsICdXJywgJ1dXJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuLnN1YnN0cigwLCAxKV0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrIChtb20pIHtcbiAgICAgICAgcmV0dXJuIHdlZWtPZlllYXIobW9tLCB0aGlzLl93ZWVrLmRvdywgdGhpcy5fd2Vlay5kb3kpLndlZWs7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrID0ge1xuICAgICAgICBkb3cgOiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgZG95IDogNiAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMXN0IGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVGaXJzdERheU9mV2VlayAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93ZWVrLmRvdztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVGaXJzdERheU9mWWVhciAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93ZWVrLmRveTtcbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXRXZWVrIChpbnB1dCkge1xuICAgICAgICB2YXIgd2VlayA9IHRoaXMubG9jYWxlRGF0YSgpLndlZWsodGhpcyk7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2VlayA6IHRoaXMuYWRkKChpbnB1dCAtIHdlZWspICogNywgJ2QnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09XZWVrIChpbnB1dCkge1xuICAgICAgICB2YXIgd2VlayA9IHdlZWtPZlllYXIodGhpcywgMSwgNCkud2VlaztcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkJywgMCwgJ2RvJywgJ2RheScpO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNNaW4odGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5c1Nob3J0KHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGRkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzKHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZScsIDAsIDAsICd3ZWVrZGF5Jyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ0UnLCAwLCAwLCAnaXNvV2Vla2RheScpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXknLCAnZCcpO1xuICAgIGFkZFVuaXRBbGlhcygnd2Vla2RheScsICdlJyk7XG4gICAgYWRkVW5pdEFsaWFzKCdpc29XZWVrZGF5JywgJ0UnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXknLCAxMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCd3ZWVrZGF5JywgMTEpO1xuICAgIGFkZFVuaXRQcmlvcml0eSgnaXNvV2Vla2RheScsIDExKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2QnLCAgICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2UnLCAgICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0UnLCAgICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2RkJywgICBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzTWluUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2RkZCcsICAgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1Nob3J0UmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2RkZGQnLCAgIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2RkJywgJ2RkZCcsICdkZGRkJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB2YXIgd2Vla2RheSA9IGNvbmZpZy5fbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgIC8vIGlmIHdlIGRpZG4ndCBnZXQgYSB3ZWVrZGF5IG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZFxuICAgICAgICBpZiAod2Vla2RheSAhPSBudWxsKSB7XG4gICAgICAgICAgICB3ZWVrLmQgPSB3ZWVrZGF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZFdlZWtkYXkgPSBpbnB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydkJywgJ2UnLCAnRSddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgd2Vla1t0b2tlbl0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICBmdW5jdGlvbiBwYXJzZVdlZWtkYXkoaW5wdXQsIGxvY2FsZSkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc05hTihpbnB1dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChpbnB1dCwgMTApO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQgPSBsb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCk7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUlzb1dlZWtkYXkoaW5wdXQsIGxvY2FsZSkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0KSAlIDcgfHwgNztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNOYU4oaW5wdXQpID8gbnVsbCA6IGlucHV0O1xuICAgIH1cblxuICAgIC8vIExPQ0FMRVNcblxuICAgIHZhciBkZWZhdWx0TG9jYWxlV2Vla2RheXMgPSAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXMgKG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX3dlZWtkYXlzKSA/IHRoaXMuX3dlZWtkYXlzIDpcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1snc3RhbmRhbG9uZSddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX3dlZWtkYXlzKSA/IHRoaXMuX3dlZWtkYXlzW20uZGF5KCldIDpcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzW3RoaXMuX3dlZWtkYXlzLmlzRm9ybWF0LnRlc3QoZm9ybWF0KSA/ICdmb3JtYXQnIDogJ3N0YW5kYWxvbmUnXVttLmRheSgpXTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQgPSAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzU2hvcnQgKG0pIHtcbiAgICAgICAgcmV0dXJuIChtKSA/IHRoaXMuX3dlZWtkYXlzU2hvcnRbbS5kYXkoKV0gOiB0aGlzLl93ZWVrZGF5c1Nob3J0O1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4gPSAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNNaW4gKG0pIHtcbiAgICAgICAgcmV0dXJuIChtKSA/IHRoaXMuX3dlZWtkYXlzTWluW20uZGF5KCldIDogdGhpcy5fd2Vla2RheXNNaW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlU3RyaWN0UGFyc2UkMSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIGlpLCBtb20sIGxsYyA9IHdlZWtkYXlOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNNaW4obW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5cyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdkZGRkJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNQYXJzZSAod2Vla2RheU5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLCBtb20sIHJlZ2V4O1xuXG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVTdHJpY3RQYXJzZSQxLmNhbGwodGhpcywgd2Vla2RheU5hbWUsIGZvcm1hdCwgc3RyaWN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5XG5cbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgMV0pLmRheShpKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgIXRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMud2Vla2RheXMobW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJywgJ2knKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLCAnaScpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMud2Vla2RheXNNaW4obW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJywgJ2knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZVtpXSkge1xuICAgICAgICAgICAgICAgIHJlZ2V4ID0gJ14nICsgdGhpcy53ZWVrZGF5cyhtb20sICcnKSArICd8XicgKyB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykgKyAnfF4nICsgdGhpcy53ZWVrZGF5c01pbihtb20sICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXhcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnZGRkZCcgJiYgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ2RkZCcgJiYgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdkZCcgJiYgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyaWN0ICYmIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldERheU9mV2VlayAoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXkgPSB0aGlzLl9pc1VUQyA/IHRoaXMuX2QuZ2V0VVRDRGF5KCkgOiB0aGlzLl9kLmdldERheSgpO1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaW5wdXQgPSBwYXJzZVdlZWtkYXkoaW5wdXQsIHRoaXMubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZChpbnB1dCAtIGRheSwgJ2QnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBkYXk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRMb2NhbGVEYXlPZldlZWsgKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd2Vla2RheSA9ICh0aGlzLmRheSgpICsgNyAtIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdykgJSA3O1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWtkYXkgOiB0aGlzLmFkZChpbnB1dCAtIHdlZWtkYXksICdkJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPRGF5T2ZXZWVrIChpbnB1dCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgIT0gbnVsbCA/IHRoaXMgOiBOYU47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBiZWhhdmVzIHRoZSBzYW1lIGFzIG1vbWVudCNkYXkgZXhjZXB0XG4gICAgICAgIC8vIGFzIGEgZ2V0dGVyLCByZXR1cm5zIDcgaW5zdGVhZCBvZiAwICgxLTcgcmFuZ2UgaW5zdGVhZCBvZiAwLTYpXG4gICAgICAgIC8vIGFzIGEgc2V0dGVyLCBzdW5kYXkgc2hvdWxkIGJlbG9uZyB0byB0aGUgcHJldmlvdXMgd2Vlay5cblxuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIHdlZWtkYXkgPSBwYXJzZUlzb1dlZWtkYXkoaW5wdXQsIHRoaXMubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSh0aGlzLmRheSgpICUgNyA/IHdlZWtkYXkgOiB3ZWVrZGF5IC0gNyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXkoKSB8fCA3O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRXZWVrZGF5c1JlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgIGZ1bmN0aW9uIHdlZWtkYXlzUmVnZXggKGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1JlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCA6IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleCA9IG1hdGNoV29yZDtcbiAgICBmdW5jdGlvbiB3ZWVrZGF5c1Nob3J0UmVnZXggKGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXggPSBkZWZhdWx0V2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4IDogdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRXZWVrZGF5c01pblJlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgIGZ1bmN0aW9uIHdlZWtkYXlzTWluUmVnZXggKGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c01pblJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCA6IHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVXZWVrZGF5c1BhcnNlICgpIHtcbiAgICAgICAgZnVuY3Rpb24gY21wTGVuUmV2KGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG1pblBpZWNlcyA9IFtdLCBzaG9ydFBpZWNlcyA9IFtdLCBsb25nUGllY2VzID0gW10sIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLCBtb20sIG1pbnAsIHNob3J0cCwgbG9uZ3A7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgbWlucCA9IHRoaXMud2Vla2RheXNNaW4obW9tLCAnJyk7XG4gICAgICAgICAgICBzaG9ydHAgPSB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJyk7XG4gICAgICAgICAgICBsb25ncCA9IHRoaXMud2Vla2RheXMobW9tLCAnJyk7XG4gICAgICAgICAgICBtaW5QaWVjZXMucHVzaChtaW5wKTtcbiAgICAgICAgICAgIHNob3J0UGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKG1pbnApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChzaG9ydHApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSB3ZWVrZGF5IChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICAgICAgbWluUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgc2hvcnRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBzaG9ydFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKHNob3J0UGllY2VzW2ldKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXNbaV0gPSByZWdleEVzY2FwZShsb25nUGllY2VzW2ldKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobWl4ZWRQaWVjZXNbaV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fd2Vla2RheXNSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG1peGVkUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG5cbiAgICAgICAgdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIGxvbmdQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBzaG9ydFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaW5QaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGZ1bmN0aW9uIGhGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvdXJzKCkgJSAxMiB8fCAxMjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBrRm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3VycygpIHx8IDI0O1xuICAgIH1cblxuICAgIGFkZEZvcm1hdFRva2VuKCdIJywgWydISCcsIDJdLCAwLCAnaG91cicpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdoJywgWydoaCcsIDJdLCAwLCBoRm9ybWF0KTtcbiAgICBhZGRGb3JtYXRUb2tlbignaycsIFsna2snLCAyXSwgMCwga0Zvcm1hdCk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignaG1tJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyBoRm9ybWF0LmFwcGx5KHRoaXMpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyBoRm9ybWF0LmFwcGx5KHRoaXMpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMuc2Vjb25kcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdIbW0nLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIHRoaXMuaG91cnMoKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdIbW1zcycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgdGhpcy5ob3VycygpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMuc2Vjb25kcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1lcmlkaWVtICh0b2tlbiwgbG93ZXJjYXNlKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLCB0aGlzLm1pbnV0ZXMoKSwgbG93ZXJjYXNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWVyaWRpZW0oJ2EnLCB0cnVlKTtcbiAgICBtZXJpZGllbSgnQScsIGZhbHNlKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnaG91cicsICdoJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnaG91cicsIDEzKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGZ1bmN0aW9uIG1hdGNoTWVyaWRpZW0gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5fbWVyaWRpZW1QYXJzZTtcbiAgICB9XG5cbiAgICBhZGRSZWdleFRva2VuKCdhJywgIG1hdGNoTWVyaWRpZW0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0EnLCAgbWF0Y2hNZXJpZGllbSk7XG4gICAgYWRkUmVnZXhUb2tlbignSCcsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2gnLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdrJywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignSEgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignaGgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbigna2snLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5cbiAgICBhZGRSZWdleFRva2VuKCdobW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2htbXNzJywgbWF0Y2g1dG82KTtcbiAgICBhZGRSZWdleFRva2VuKCdIbW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0htbXNzJywgbWF0Y2g1dG82KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydIJywgJ0hIJ10sIEhPVVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydrJywgJ2trJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIga0lucHV0ID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBhcnJheVtIT1VSXSA9IGtJbnB1dCA9PT0gMjQgPyAwIDoga0lucHV0O1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oWydhJywgJ0EnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5faXNQbSA9IGNvbmZpZy5fbG9jYWxlLmlzUE0oaW5wdXQpO1xuICAgICAgICBjb25maWcuX21lcmlkaWVtID0gaW5wdXQ7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2gnLCAnaGgnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW0nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvcyA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvcykpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvcykpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW1zcycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQ7XG4gICAgICAgIHZhciBwb3MyID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zMSkpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICAgICAgYXJyYXlbU0VDT05EXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MyKSk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0htbScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zKSk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignSG1tc3MnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvczEgPSBpbnB1dC5sZW5ndGggLSA0O1xuICAgICAgICB2YXIgcG9zMiA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvczEpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MxLCAyKSk7XG4gICAgICAgIGFycmF5W1NFQ09ORF0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMikpO1xuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlSXNQTSAoaW5wdXQpIHtcbiAgICAgICAgLy8gSUU4IFF1aXJrcyBNb2RlICYgSUU3IFN0YW5kYXJkcyBNb2RlIGRvIG5vdCBhbGxvdyBhY2Nlc3Npbmcgc3RyaW5ncyBsaWtlIGFycmF5c1xuICAgICAgICAvLyBVc2luZyBjaGFyQXQgc2hvdWxkIGJlIG1vcmUgY29tcGF0aWJsZS5cbiAgICAgICAgcmV0dXJuICgoaW5wdXQgKyAnJykudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkgPT09ICdwJyk7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNZXJpZGllbVBhcnNlID0gL1thcF1cXC4/bT9cXC4/L2k7XG4gICAgZnVuY3Rpb24gbG9jYWxlTWVyaWRpZW0gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdwbScgOiAnUE0nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnYW0nIDogJ0FNJztcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgLy8gU2V0dGluZyB0aGUgaG91ciBzaG91bGQga2VlcCB0aGUgdGltZSwgYmVjYXVzZSB0aGUgdXNlciBleHBsaWNpdGx5XG4gICAgLy8gc3BlY2lmaWVkIHdoaWNoIGhvdXIgdGhleSB3YW50LiBTbyB0cnlpbmcgdG8gbWFpbnRhaW4gdGhlIHNhbWUgaG91ciAoaW5cbiAgICAvLyBhIG5ldyB0aW1lem9uZSkgbWFrZXMgc2Vuc2UuIEFkZGluZy9zdWJ0cmFjdGluZyBob3VycyBkb2VzIG5vdCBmb2xsb3dcbiAgICAvLyB0aGlzIHJ1bGUuXG4gICAgdmFyIGdldFNldEhvdXIgPSBtYWtlR2V0U2V0KCdIb3VycycsIHRydWUpO1xuXG4gICAgdmFyIGJhc2VDb25maWcgPSB7XG4gICAgICAgIGNhbGVuZGFyOiBkZWZhdWx0Q2FsZW5kYXIsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiBkZWZhdWx0TG9uZ0RhdGVGb3JtYXQsXG4gICAgICAgIGludmFsaWREYXRlOiBkZWZhdWx0SW52YWxpZERhdGUsXG4gICAgICAgIG9yZGluYWw6IGRlZmF1bHRPcmRpbmFsLFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiBkZWZhdWx0RGF5T2ZNb250aE9yZGluYWxQYXJzZSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiBkZWZhdWx0UmVsYXRpdmVUaW1lLFxuXG4gICAgICAgIG1vbnRoczogZGVmYXVsdExvY2FsZU1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCxcblxuICAgICAgICB3ZWVrOiBkZWZhdWx0TG9jYWxlV2VlayxcblxuICAgICAgICB3ZWVrZGF5czogZGVmYXVsdExvY2FsZVdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbjogZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCxcblxuICAgICAgICBtZXJpZGllbVBhcnNlOiBkZWZhdWx0TG9jYWxlTWVyaWRpZW1QYXJzZVxuICAgIH07XG5cbiAgICAvLyBpbnRlcm5hbCBzdG9yYWdlIGZvciBsb2NhbGUgY29uZmlnIGZpbGVzXG4gICAgdmFyIGxvY2FsZXMgPSB7fTtcbiAgICB2YXIgbG9jYWxlRmFtaWxpZXMgPSB7fTtcbiAgICB2YXIgZ2xvYmFsTG9jYWxlO1xuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlKGtleSkge1xuICAgICAgICByZXR1cm4ga2V5ID8ga2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnXycsICctJykgOiBrZXk7XG4gICAgfVxuXG4gICAgLy8gcGljayB0aGUgbG9jYWxlIGZyb20gdGhlIGFycmF5XG4gICAgLy8gdHJ5IFsnZW4tYXUnLCAnZW4tZ2InXSBhcyAnZW4tYXUnLCAnZW4tZ2InLCAnZW4nLCBhcyBpbiBtb3ZlIHRocm91Z2ggdGhlIGxpc3QgdHJ5aW5nIGVhY2hcbiAgICAvLyBzdWJzdHJpbmcgZnJvbSBtb3N0IHNwZWNpZmljIHRvIGxlYXN0LCBidXQgbW92ZSB0byB0aGUgbmV4dCBhcnJheSBpdGVtIGlmIGl0J3MgYSBtb3JlIHNwZWNpZmljIHZhcmlhbnQgdGhhbiB0aGUgY3VycmVudCByb290XG4gICAgZnVuY3Rpb24gY2hvb3NlTG9jYWxlKG5hbWVzKSB7XG4gICAgICAgIHZhciBpID0gMCwgaiwgbmV4dCwgbG9jYWxlLCBzcGxpdDtcblxuICAgICAgICB3aGlsZSAoaSA8IG5hbWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgc3BsaXQgPSBub3JtYWxpemVMb2NhbGUobmFtZXNbaV0pLnNwbGl0KCctJyk7XG4gICAgICAgICAgICBqID0gc3BsaXQubGVuZ3RoO1xuICAgICAgICAgICAgbmV4dCA9IG5vcm1hbGl6ZUxvY2FsZShuYW1lc1tpICsgMV0pO1xuICAgICAgICAgICAgbmV4dCA9IG5leHQgPyBuZXh0LnNwbGl0KCctJykgOiBudWxsO1xuICAgICAgICAgICAgd2hpbGUgKGogPiAwKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShzcGxpdC5zbGljZSgwLCBqKS5qb2luKCctJykpO1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dC5sZW5ndGggPj0gaiAmJiBjb21wYXJlQXJyYXlzKHNwbGl0LCBuZXh0LCB0cnVlKSA+PSBqIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAvL3RoZSBuZXh0IGFycmF5IGl0ZW0gaXMgYmV0dGVyIHRoYW4gYSBzaGFsbG93ZXIgc3Vic3RyaW5nIG9mIHRoaXMgb25lXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBqLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdsb2JhbExvY2FsZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2FkTG9jYWxlKG5hbWUpIHtcbiAgICAgICAgdmFyIG9sZExvY2FsZSA9IG51bGw7XG4gICAgICAgIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIHJlZ2lzdGVyIGFuZCBsb2FkIGFsbCB0aGUgbG9jYWxlcyBpbiBOb2RlXG4gICAgICAgIGlmICghbG9jYWxlc1tuYW1lXSAmJiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpICYmXG4gICAgICAgICAgICAgICAgbW9kdWxlICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG9sZExvY2FsZSA9IGdsb2JhbExvY2FsZS5fYWJicjtcbiAgICAgICAgICAgICAgICB2YXIgYWxpYXNlZFJlcXVpcmUgPSByZXF1aXJlO1xuICAgICAgICAgICAgICAgIGFsaWFzZWRSZXF1aXJlKCcuL2xvY2FsZS8nICsgbmFtZSk7XG4gICAgICAgICAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlKG9sZExvY2FsZSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2NhbGVzW25hbWVdO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBsb2FkIGxvY2FsZSBhbmQgdGhlbiBzZXQgdGhlIGdsb2JhbCBsb2NhbGUuICBJZlxuICAgIC8vIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGluLCBpdCB3aWxsIHNpbXBseSByZXR1cm4gdGhlIGN1cnJlbnQgZ2xvYmFsXG4gICAgLy8gbG9jYWxlIGtleS5cbiAgICBmdW5jdGlvbiBnZXRTZXRHbG9iYWxMb2NhbGUgKGtleSwgdmFsdWVzKSB7XG4gICAgICAgIHZhciBkYXRhO1xuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQodmFsdWVzKSkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBkZWZpbmVMb2NhbGUoa2V5LCB2YWx1ZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIC8vIG1vbWVudC5kdXJhdGlvbi5fbG9jYWxlID0gbW9tZW50Ll9sb2NhbGUgPSBkYXRhO1xuICAgICAgICAgICAgICAgIGdsb2JhbExvY2FsZSA9IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoKHR5cGVvZiBjb25zb2xlICE9PSAgJ3VuZGVmaW5lZCcpICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgICAgICAgICAgICAgICAvL3dhcm4gdXNlciBpZiBhcmd1bWVudHMgYXJlIHBhc3NlZCBidXQgdGhlIGxvY2FsZSBjb3VsZCBub3QgYmUgc2V0XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTG9jYWxlICcgKyBrZXkgKyAgJyBub3QgZm91bmQuIERpZCB5b3UgZm9yZ2V0IHRvIGxvYWQgaXQ/Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdsb2JhbExvY2FsZS5fYWJicjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZWZpbmVMb2NhbGUgKG5hbWUsIGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlLCBwYXJlbnRDb25maWcgPSBiYXNlQ29uZmlnO1xuICAgICAgICAgICAgY29uZmlnLmFiYnIgPSBuYW1lO1xuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZSgnZGVmaW5lTG9jYWxlT3ZlcnJpZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBtb21lbnQudXBkYXRlTG9jYWxlKGxvY2FsZU5hbWUsIGNvbmZpZykgdG8gY2hhbmdlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2FuIGV4aXN0aW5nIGxvY2FsZS4gbW9tZW50LmRlZmluZUxvY2FsZShsb2NhbGVOYW1lLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWcpIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGNyZWF0aW5nIGEgbmV3IGxvY2FsZSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kZWZpbmUtbG9jYWxlLyBmb3IgbW9yZSBpbmZvLicpO1xuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZXNbbmFtZV0uX2NvbmZpZztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbY29uZmlnLnBhcmVudExvY2FsZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdLl9jb25maWc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShjb25maWcucGFyZW50TG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGUuX2NvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBuZXcgTG9jYWxlKG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZykpO1xuXG4gICAgICAgICAgICBpZiAobG9jYWxlRmFtaWxpZXNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmluZUxvY2FsZSh4Lm5hbWUsIHguY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBsb2NhbGUgQUZURVIgYWxsIGNoaWxkIGxvY2FsZXMgaGF2ZSBiZWVuXG4gICAgICAgICAgICAvLyBjcmVhdGVkLCBzbyB3ZSB3b24ndCBlbmQgdXAgd2l0aCB0aGUgY2hpbGQgbG9jYWxlIHNldC5cbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcblxuXG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHVzZWZ1bCBmb3IgdGVzdGluZ1xuICAgICAgICAgICAgZGVsZXRlIGxvY2FsZXNbbmFtZV07XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVwZGF0ZUxvY2FsZShuYW1lLCBjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlLCB0bXBMb2NhbGUsIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG4gICAgICAgICAgICAvLyBNRVJHRVxuICAgICAgICAgICAgdG1wTG9jYWxlID0gbG9hZExvY2FsZShuYW1lKTtcbiAgICAgICAgICAgIGlmICh0bXBMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IHRtcExvY2FsZS5fY29uZmlnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uZmlnID0gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY29uZmlnKTtcbiAgICAgICAgICAgIGxvY2FsZSA9IG5ldyBMb2NhbGUoY29uZmlnKTtcbiAgICAgICAgICAgIGxvY2FsZS5wYXJlbnRMb2NhbGUgPSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZTtcblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBwYXNzIG51bGwgZm9yIGNvbmZpZyB0byB1bnVwZGF0ZSwgdXNlZnVsIGZvciB0ZXN0c1xuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgLy8gcmV0dXJucyBsb2NhbGUgZGF0YVxuICAgIGZ1bmN0aW9uIGdldExvY2FsZSAoa2V5KSB7XG4gICAgICAgIHZhciBsb2NhbGU7XG5cbiAgICAgICAgaWYgKGtleSAmJiBrZXkuX2xvY2FsZSAmJiBrZXkuX2xvY2FsZS5fYWJicikge1xuICAgICAgICAgICAga2V5ID0ga2V5Ll9sb2NhbGUuX2FiYnI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWtleSkge1xuICAgICAgICAgICAgcmV0dXJuIGdsb2JhbExvY2FsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNBcnJheShrZXkpKSB7XG4gICAgICAgICAgICAvL3Nob3J0LWNpcmN1aXQgZXZlcnl0aGluZyBlbHNlXG4gICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKGtleSk7XG4gICAgICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGtleSA9IFtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNob29zZUxvY2FsZShrZXkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RMb2NhbGVzKCkge1xuICAgICAgICByZXR1cm4ga2V5cyhsb2NhbGVzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja092ZXJmbG93IChtKSB7XG4gICAgICAgIHZhciBvdmVyZmxvdztcbiAgICAgICAgdmFyIGEgPSBtLl9hO1xuXG4gICAgICAgIGlmIChhICYmIGdldFBhcnNpbmdGbGFncyhtKS5vdmVyZmxvdyA9PT0gLTIpIHtcbiAgICAgICAgICAgIG92ZXJmbG93ID1cbiAgICAgICAgICAgICAgICBhW01PTlRIXSAgICAgICA8IDAgfHwgYVtNT05USF0gICAgICAgPiAxMSAgPyBNT05USCA6XG4gICAgICAgICAgICAgICAgYVtEQVRFXSAgICAgICAgPCAxIHx8IGFbREFURV0gICAgICAgID4gZGF5c0luTW9udGgoYVtZRUFSXSwgYVtNT05USF0pID8gREFURSA6XG4gICAgICAgICAgICAgICAgYVtIT1VSXSAgICAgICAgPCAwIHx8IGFbSE9VUl0gICAgICAgID4gMjQgfHwgKGFbSE9VUl0gPT09IDI0ICYmIChhW01JTlVURV0gIT09IDAgfHwgYVtTRUNPTkRdICE9PSAwIHx8IGFbTUlMTElTRUNPTkRdICE9PSAwKSkgPyBIT1VSIDpcbiAgICAgICAgICAgICAgICBhW01JTlVURV0gICAgICA8IDAgfHwgYVtNSU5VVEVdICAgICAgPiA1OSAgPyBNSU5VVEUgOlxuICAgICAgICAgICAgICAgIGFbU0VDT05EXSAgICAgIDwgMCB8fCBhW1NFQ09ORF0gICAgICA+IDU5ICA/IFNFQ09ORCA6XG4gICAgICAgICAgICAgICAgYVtNSUxMSVNFQ09ORF0gPCAwIHx8IGFbTUlMTElTRUNPTkRdID4gOTk5ID8gTUlMTElTRUNPTkQgOlxuICAgICAgICAgICAgICAgIC0xO1xuXG4gICAgICAgICAgICBpZiAoZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd0RheU9mWWVhciAmJiAob3ZlcmZsb3cgPCBZRUFSIHx8IG92ZXJmbG93ID4gREFURSkpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IERBVEU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd1dlZWtzICYmIG92ZXJmbG93ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gV0VFSztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93V2Vla2RheSAmJiBvdmVyZmxvdyA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IFdFRUtEQVk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhtKS5vdmVyZmxvdyA9IG92ZXJmbG93O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgLy8gUGljayB0aGUgZmlyc3QgZGVmaW5lZCBvZiB0d28gb3IgdGhyZWUgYXJndW1lbnRzLlxuICAgIGZ1bmN0aW9uIGRlZmF1bHRzKGEsIGIsIGMpIHtcbiAgICAgICAgaWYgKGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGIgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3VycmVudERhdGVBcnJheShjb25maWcpIHtcbiAgICAgICAgLy8gaG9va3MgaXMgYWN0dWFsbHkgdGhlIGV4cG9ydGVkIG1vbWVudCBvYmplY3RcbiAgICAgICAgdmFyIG5vd1ZhbHVlID0gbmV3IERhdGUoaG9va3Mubm93KCkpO1xuICAgICAgICBpZiAoY29uZmlnLl91c2VVVEMpIHtcbiAgICAgICAgICAgIHJldHVybiBbbm93VmFsdWUuZ2V0VVRDRnVsbFllYXIoKSwgbm93VmFsdWUuZ2V0VVRDTW9udGgoKSwgbm93VmFsdWUuZ2V0VVRDRGF0ZSgpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW25vd1ZhbHVlLmdldEZ1bGxZZWFyKCksIG5vd1ZhbHVlLmdldE1vbnRoKCksIG5vd1ZhbHVlLmdldERhdGUoKV07XG4gICAgfVxuXG4gICAgLy8gY29udmVydCBhbiBhcnJheSB0byBhIGRhdGUuXG4gICAgLy8gdGhlIGFycmF5IHNob3VsZCBtaXJyb3IgdGhlIHBhcmFtZXRlcnMgYmVsb3dcbiAgICAvLyBub3RlOiBhbGwgdmFsdWVzIHBhc3QgdGhlIHllYXIgYXJlIG9wdGlvbmFsIGFuZCB3aWxsIGRlZmF1bHQgdG8gdGhlIGxvd2VzdCBwb3NzaWJsZSB2YWx1ZS5cbiAgICAvLyBbeWVhciwgbW9udGgsIGRheSAsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZF1cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tQXJyYXkgKGNvbmZpZykge1xuICAgICAgICB2YXIgaSwgZGF0ZSwgaW5wdXQgPSBbXSwgY3VycmVudERhdGUsIGV4cGVjdGVkV2Vla2RheSwgeWVhclRvVXNlO1xuXG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGVBcnJheShjb25maWcpO1xuXG4gICAgICAgIC8vY29tcHV0ZSBkYXkgb2YgdGhlIHllYXIgZnJvbSB3ZWVrcyBhbmQgd2Vla2RheXNcbiAgICAgICAgaWYgKGNvbmZpZy5fdyAmJiBjb25maWcuX2FbREFURV0gPT0gbnVsbCAmJiBjb25maWcuX2FbTU9OVEhdID09IG51bGwpIHtcbiAgICAgICAgICAgIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9pZiB0aGUgZGF5IG9mIHRoZSB5ZWFyIGlzIHNldCwgZmlndXJlIG91dCB3aGF0IGl0IGlzXG4gICAgICAgIGlmIChjb25maWcuX2RheU9mWWVhciAhPSBudWxsKSB7XG4gICAgICAgICAgICB5ZWFyVG9Vc2UgPSBkZWZhdWx0cyhjb25maWcuX2FbWUVBUl0sIGN1cnJlbnREYXRlW1lFQVJdKTtcblxuICAgICAgICAgICAgaWYgKGNvbmZpZy5fZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyVG9Vc2UpIHx8IGNvbmZpZy5fZGF5T2ZZZWFyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuX292ZXJmbG93RGF5T2ZZZWFyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGF0ZSA9IGNyZWF0ZVVUQ0RhdGUoeWVhclRvVXNlLCAwLCBjb25maWcuX2RheU9mWWVhcik7XG4gICAgICAgICAgICBjb25maWcuX2FbTU9OVEhdID0gZGF0ZS5nZXRVVENNb250aCgpO1xuICAgICAgICAgICAgY29uZmlnLl9hW0RBVEVdID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWZhdWx0IHRvIGN1cnJlbnQgZGF0ZS5cbiAgICAgICAgLy8gKiBpZiBubyB5ZWFyLCBtb250aCwgZGF5IG9mIG1vbnRoIGFyZSBnaXZlbiwgZGVmYXVsdCB0byB0b2RheVxuICAgICAgICAvLyAqIGlmIGRheSBvZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBtb250aCBhbmQgeWVhclxuICAgICAgICAvLyAqIGlmIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG9ubHkgeWVhclxuICAgICAgICAvLyAqIGlmIHllYXIgaXMgZ2l2ZW4sIGRvbid0IGRlZmF1bHQgYW55dGhpbmdcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgJiYgY29uZmlnLl9hW2ldID09IG51bGw7ICsraSkge1xuICAgICAgICAgICAgY29uZmlnLl9hW2ldID0gaW5wdXRbaV0gPSBjdXJyZW50RGF0ZVtpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFplcm8gb3V0IHdoYXRldmVyIHdhcyBub3QgZGVmYXVsdGVkLCBpbmNsdWRpbmcgdGltZVxuICAgICAgICBmb3IgKDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgY29uZmlnLl9hW2ldID0gaW5wdXRbaV0gPSAoY29uZmlnLl9hW2ldID09IG51bGwpID8gKGkgPT09IDIgPyAxIDogMCkgOiBjb25maWcuX2FbaV07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3IgMjQ6MDA6MDAuMDAwXG4gICAgICAgIGlmIChjb25maWcuX2FbSE9VUl0gPT09IDI0ICYmXG4gICAgICAgICAgICAgICAgY29uZmlnLl9hW01JTlVURV0gPT09IDAgJiZcbiAgICAgICAgICAgICAgICBjb25maWcuX2FbU0VDT05EXSA9PT0gMCAmJlxuICAgICAgICAgICAgICAgIGNvbmZpZy5fYVtNSUxMSVNFQ09ORF0gPT09IDApIHtcbiAgICAgICAgICAgIGNvbmZpZy5fbmV4dERheSA9IHRydWU7XG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uZmlnLl9kID0gKGNvbmZpZy5fdXNlVVRDID8gY3JlYXRlVVRDRGF0ZSA6IGNyZWF0ZURhdGUpLmFwcGx5KG51bGwsIGlucHV0KTtcbiAgICAgICAgZXhwZWN0ZWRXZWVrZGF5ID0gY29uZmlnLl91c2VVVEMgPyBjb25maWcuX2QuZ2V0VVRDRGF5KCkgOiBjb25maWcuX2QuZ2V0RGF5KCk7XG5cbiAgICAgICAgLy8gQXBwbHkgdGltZXpvbmUgb2Zmc2V0IGZyb20gaW5wdXQuIFRoZSBhY3R1YWwgdXRjT2Zmc2V0IGNhbiBiZSBjaGFuZ2VkXG4gICAgICAgIC8vIHdpdGggcGFyc2Vab25lLlxuICAgICAgICBpZiAoY29uZmlnLl90em0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uZmlnLl9kLnNldFVUQ01pbnV0ZXMoY29uZmlnLl9kLmdldFVUQ01pbnV0ZXMoKSAtIGNvbmZpZy5fdHptKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuX25leHREYXkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDI0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2hlY2sgZm9yIG1pc21hdGNoaW5nIGRheSBvZiB3ZWVrXG4gICAgICAgIGlmIChjb25maWcuX3cgJiYgdHlwZW9mIGNvbmZpZy5fdy5kICE9PSAndW5kZWZpbmVkJyAmJiBjb25maWcuX3cuZCAhPT0gZXhwZWN0ZWRXZWVrZGF5KSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS53ZWVrZGF5TWlzbWF0Y2ggPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtJbmZvKGNvbmZpZykge1xuICAgICAgICB2YXIgdywgd2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95LCB0ZW1wLCB3ZWVrZGF5T3ZlcmZsb3c7XG5cbiAgICAgICAgdyA9IGNvbmZpZy5fdztcbiAgICAgICAgaWYgKHcuR0cgIT0gbnVsbCB8fCB3LlcgIT0gbnVsbCB8fCB3LkUgIT0gbnVsbCkge1xuICAgICAgICAgICAgZG93ID0gMTtcbiAgICAgICAgICAgIGRveSA9IDQ7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IFdlIG5lZWQgdG8gdGFrZSB0aGUgY3VycmVudCBpc29XZWVrWWVhciwgYnV0IHRoYXQgZGVwZW5kcyBvblxuICAgICAgICAgICAgLy8gaG93IHdlIGludGVycHJldCBub3cgKGxvY2FsLCB1dGMsIGZpeGVkIG9mZnNldCkuIFNvIGNyZWF0ZVxuICAgICAgICAgICAgLy8gYSBub3cgdmVyc2lvbiBvZiBjdXJyZW50IGNvbmZpZyAodGFrZSBsb2NhbC91dGMvb2Zmc2V0IGZsYWdzLCBhbmRcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBub3cpLlxuICAgICAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyh3LkdHLCBjb25maWcuX2FbWUVBUl0sIHdlZWtPZlllYXIoY3JlYXRlTG9jYWwoKSwgMSwgNCkueWVhcik7XG4gICAgICAgICAgICB3ZWVrID0gZGVmYXVsdHMody5XLCAxKTtcbiAgICAgICAgICAgIHdlZWtkYXkgPSBkZWZhdWx0cyh3LkUsIDEpO1xuICAgICAgICAgICAgaWYgKHdlZWtkYXkgPCAxIHx8IHdlZWtkYXkgPiA3KSB7XG4gICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvdyA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRvdztcbiAgICAgICAgICAgIGRveSA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRveTtcblxuICAgICAgICAgICAgdmFyIGN1cldlZWsgPSB3ZWVrT2ZZZWFyKGNyZWF0ZUxvY2FsKCksIGRvdywgZG95KTtcblxuICAgICAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyh3LmdnLCBjb25maWcuX2FbWUVBUl0sIGN1cldlZWsueWVhcik7XG5cbiAgICAgICAgICAgIC8vIERlZmF1bHQgdG8gY3VycmVudCB3ZWVrLlxuICAgICAgICAgICAgd2VlayA9IGRlZmF1bHRzKHcudywgY3VyV2Vlay53ZWVrKTtcblxuICAgICAgICAgICAgaWYgKHcuZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gd2Vla2RheSAtLSBsb3cgZGF5IG51bWJlcnMgYXJlIGNvbnNpZGVyZWQgbmV4dCB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZDtcbiAgICAgICAgICAgICAgICBpZiAod2Vla2RheSA8IDAgfHwgd2Vla2RheSA+IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHcuZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gbG9jYWwgd2Vla2RheSAtLSBjb3VudGluZyBzdGFydHMgZnJvbSBiZWdpbmluZyBvZiB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZSArIGRvdztcbiAgICAgICAgICAgICAgICBpZiAody5lIDwgMCB8fCB3LmUgPiA2KSB7XG4gICAgICAgICAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHRvIGJlZ2luaW5nIG9mIHdlZWtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gZG93O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh3ZWVrIDwgMSB8fCB3ZWVrID4gd2Vla3NJblllYXIod2Vla1llYXIsIGRvdywgZG95KSkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuX292ZXJmbG93V2Vla3MgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHdlZWtkYXlPdmVyZmxvdyAhPSBudWxsKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dXZWVrZGF5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRlbXAgPSBkYXlPZlllYXJGcm9tV2Vla3Mod2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtZRUFSXSA9IHRlbXAueWVhcjtcbiAgICAgICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID0gdGVtcC5kYXlPZlllYXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpc28gODYwMSByZWdleFxuICAgIC8vIDAwMDAtMDAtMDAgMDAwMC1XMDAgb3IgMDAwMC1XMDAtMCArIFQgKyAwMCBvciAwMDowMCBvciAwMDowMDowMCBvciAwMDowMDowMC4wMDAgKyArMDA6MDAgb3IgKzAwMDAgb3IgKzAwKVxuICAgIHZhciBleHRlbmRlZElzb1JlZ2V4ID0gL15cXHMqKCg/OlsrLV1cXGR7Nn18XFxkezR9KS0oPzpcXGRcXGQtXFxkXFxkfFdcXGRcXGQtXFxkfFdcXGRcXGR8XFxkXFxkXFxkfFxcZFxcZCkpKD86KFR8ICkoXFxkXFxkKD86OlxcZFxcZCg/OjpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoW1xcK1xcLV1cXGRcXGQoPzo6P1xcZFxcZCk/fFxccypaKT8pPyQvO1xuICAgIHZhciBiYXNpY0lzb1JlZ2V4ID0gL15cXHMqKCg/OlsrLV1cXGR7Nn18XFxkezR9KSg/OlxcZFxcZFxcZFxcZHxXXFxkXFxkXFxkfFdcXGRcXGR8XFxkXFxkXFxkfFxcZFxcZCkpKD86KFR8ICkoXFxkXFxkKD86XFxkXFxkKD86XFxkXFxkKD86Wy4sXVxcZCspPyk/KT8pKFtcXCtcXC1dXFxkXFxkKD86Oj9cXGRcXGQpP3xcXHMqWik/KT8kLztcblxuICAgIHZhciB0elJlZ2V4ID0gL1p8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8vO1xuXG4gICAgdmFyIGlzb0RhdGVzID0gW1xuICAgICAgICBbJ1lZWVlZWS1NTS1ERCcsIC9bKy1dXFxkezZ9LVxcZFxcZC1cXGRcXGQvXSxcbiAgICAgICAgWydZWVlZLU1NLUREJywgL1xcZHs0fS1cXGRcXGQtXFxkXFxkL10sXG4gICAgICAgIFsnR0dHRy1bV11XVy1FJywgL1xcZHs0fS1XXFxkXFxkLVxcZC9dLFxuICAgICAgICBbJ0dHR0ctW1ddV1cnLCAvXFxkezR9LVdcXGRcXGQvLCBmYWxzZV0sXG4gICAgICAgIFsnWVlZWS1EREQnLCAvXFxkezR9LVxcZHszfS9dLFxuICAgICAgICBbJ1lZWVktTU0nLCAvXFxkezR9LVxcZFxcZC8sIGZhbHNlXSxcbiAgICAgICAgWydZWVlZWVlNTUREJywgL1srLV1cXGR7MTB9L10sXG4gICAgICAgIFsnWVlZWU1NREQnLCAvXFxkezh9L10sXG4gICAgICAgIC8vIFlZWVlNTSBpcyBOT1QgYWxsb3dlZCBieSB0aGUgc3RhbmRhcmRcbiAgICAgICAgWydHR0dHW1ddV1dFJywgL1xcZHs0fVdcXGR7M30vXSxcbiAgICAgICAgWydHR0dHW1ddV1cnLCAvXFxkezR9V1xcZHsyfS8sIGZhbHNlXSxcbiAgICAgICAgWydZWVlZREREJywgL1xcZHs3fS9dXG4gICAgXTtcblxuICAgIC8vIGlzbyB0aW1lIGZvcm1hdHMgYW5kIHJlZ2V4ZXNcbiAgICB2YXIgaXNvVGltZXMgPSBbXG4gICAgICAgIFsnSEg6bW06c3MuU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZFxcLlxcZCsvXSxcbiAgICAgICAgWydISDptbTpzcyxTU1NTJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkLFxcZCsvXSxcbiAgICAgICAgWydISDptbTpzcycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZC9dLFxuICAgICAgICBbJ0hIOm1tJywgL1xcZFxcZDpcXGRcXGQvXSxcbiAgICAgICAgWydISG1tc3MuU1NTUycsIC9cXGRcXGRcXGRcXGRcXGRcXGRcXC5cXGQrL10sXG4gICAgICAgIFsnSEhtbXNzLFNTU1MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkLFxcZCsvXSxcbiAgICAgICAgWydISG1tc3MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkL10sXG4gICAgICAgIFsnSEhtbScsIC9cXGRcXGRcXGRcXGQvXSxcbiAgICAgICAgWydISCcsIC9cXGRcXGQvXVxuICAgIF07XG5cbiAgICB2YXIgYXNwTmV0SnNvblJlZ2V4ID0gL15cXC8/RGF0ZVxcKChcXC0/XFxkKykvaTtcblxuICAgIC8vIGRhdGUgZnJvbSBpc28gZm9ybWF0XG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbUlTTyhjb25maWcpIHtcbiAgICAgICAgdmFyIGksIGwsXG4gICAgICAgICAgICBzdHJpbmcgPSBjb25maWcuX2ksXG4gICAgICAgICAgICBtYXRjaCA9IGV4dGVuZGVkSXNvUmVnZXguZXhlYyhzdHJpbmcpIHx8IGJhc2ljSXNvUmVnZXguZXhlYyhzdHJpbmcpLFxuICAgICAgICAgICAgYWxsb3dUaW1lLCBkYXRlRm9ybWF0LCB0aW1lRm9ybWF0LCB0ekZvcm1hdDtcblxuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmlzbyA9IHRydWU7XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSBpc29EYXRlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNvRGF0ZXNbaV1bMV0uZXhlYyhtYXRjaFsxXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCA9IGlzb0RhdGVzW2ldWzBdO1xuICAgICAgICAgICAgICAgICAgICBhbGxvd1RpbWUgPSBpc29EYXRlc1tpXVsyXSAhPT0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRlRm9ybWF0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hbM10pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gaXNvVGltZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc29UaW1lc1tpXVsxXS5leGVjKG1hdGNoWzNdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hbMl0gc2hvdWxkIGJlICdUJyBvciBzcGFjZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZUZvcm1hdCA9IChtYXRjaFsyXSB8fCAnICcpICsgaXNvVGltZXNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGltZUZvcm1hdCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFhbGxvd1RpbWUgJiYgdGltZUZvcm1hdCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoWzRdKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR6UmVnZXguZXhlYyhtYXRjaFs0XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdHpGb3JtYXQgPSAnWic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25maWcuX2YgPSBkYXRlRm9ybWF0ICsgKHRpbWVGb3JtYXQgfHwgJycpICsgKHR6Rm9ybWF0IHx8ICcnKTtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUkZDIDI4MjIgcmVnZXg6IEZvciBkZXRhaWxzIHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjgyMiNzZWN0aW9uLTMuM1xuICAgIHZhciByZmMyODIyID0gL14oPzooTW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXR8U3VuKSw/XFxzKT8oXFxkezEsMn0pXFxzKEphbnxGZWJ8TWFyfEFwcnxNYXl8SnVufEp1bHxBdWd8U2VwfE9jdHxOb3Z8RGVjKVxccyhcXGR7Miw0fSlcXHMoXFxkXFxkKTooXFxkXFxkKSg/OjooXFxkXFxkKSk/XFxzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfChbKy1dXFxkezR9KSkkLztcblxuICAgIGZ1bmN0aW9uIGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MoeWVhclN0ciwgbW9udGhTdHIsIGRheVN0ciwgaG91clN0ciwgbWludXRlU3RyLCBzZWNvbmRTdHIpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IFtcbiAgICAgICAgICAgIHVudHJ1bmNhdGVZZWFyKHllYXJTdHIpLFxuICAgICAgICAgICAgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpLFxuICAgICAgICAgICAgcGFyc2VJbnQoZGF5U3RyLCAxMCksXG4gICAgICAgICAgICBwYXJzZUludChob3VyU3RyLCAxMCksXG4gICAgICAgICAgICBwYXJzZUludChtaW51dGVTdHIsIDEwKVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChzZWNvbmRTdHIpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHBhcnNlSW50KHNlY29uZFN0ciwgMTApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdW50cnVuY2F0ZVllYXIoeWVhclN0cikge1xuICAgICAgICB2YXIgeWVhciA9IHBhcnNlSW50KHllYXJTdHIsIDEwKTtcbiAgICAgICAgaWYgKHllYXIgPD0gNDkpIHtcbiAgICAgICAgICAgIHJldHVybiAyMDAwICsgeWVhcjtcbiAgICAgICAgfSBlbHNlIGlmICh5ZWFyIDw9IDk5OSkge1xuICAgICAgICAgICAgcmV0dXJuIDE5MDAgKyB5ZWFyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB5ZWFyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZXByb2Nlc3NSRkMyODIyKHMpIHtcbiAgICAgICAgLy8gUmVtb3ZlIGNvbW1lbnRzIGFuZCBmb2xkaW5nIHdoaXRlc3BhY2UgYW5kIHJlcGxhY2UgbXVsdGlwbGUtc3BhY2VzIHdpdGggYSBzaW5nbGUgc3BhY2VcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvXFwoW14pXSpcXCl8W1xcblxcdF0vZywgJyAnKS5yZXBsYWNlKC8oXFxzXFxzKykvZywgJyAnKS5yZXBsYWNlKC9eXFxzXFxzKi8sICcnKS5yZXBsYWNlKC9cXHNcXHMqJC8sICcnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja1dlZWtkYXkod2Vla2RheVN0ciwgcGFyc2VkSW5wdXQsIGNvbmZpZykge1xuICAgICAgICBpZiAod2Vla2RheVN0cikge1xuICAgICAgICAgICAgLy8gVE9ETzogUmVwbGFjZSB0aGUgdmFuaWxsYSBKUyBEYXRlIG9iamVjdCB3aXRoIGFuIGluZGVwZW50ZW50IGRheS1vZi13ZWVrIGNoZWNrLlxuICAgICAgICAgICAgdmFyIHdlZWtkYXlQcm92aWRlZCA9IGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0LmluZGV4T2Yod2Vla2RheVN0ciksXG4gICAgICAgICAgICAgICAgd2Vla2RheUFjdHVhbCA9IG5ldyBEYXRlKHBhcnNlZElucHV0WzBdLCBwYXJzZWRJbnB1dFsxXSwgcGFyc2VkSW5wdXRbMl0pLmdldERheSgpO1xuICAgICAgICAgICAgaWYgKHdlZWtkYXlQcm92aWRlZCAhPT0gd2Vla2RheUFjdHVhbCkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLndlZWtkYXlNaXNtYXRjaCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhciBvYnNPZmZzZXRzID0ge1xuICAgICAgICBVVDogMCxcbiAgICAgICAgR01UOiAwLFxuICAgICAgICBFRFQ6IC00ICogNjAsXG4gICAgICAgIEVTVDogLTUgKiA2MCxcbiAgICAgICAgQ0RUOiAtNSAqIDYwLFxuICAgICAgICBDU1Q6IC02ICogNjAsXG4gICAgICAgIE1EVDogLTYgKiA2MCxcbiAgICAgICAgTVNUOiAtNyAqIDYwLFxuICAgICAgICBQRFQ6IC03ICogNjAsXG4gICAgICAgIFBTVDogLTggKiA2MFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjYWxjdWxhdGVPZmZzZXQob2JzT2Zmc2V0LCBtaWxpdGFyeU9mZnNldCwgbnVtT2Zmc2V0KSB7XG4gICAgICAgIGlmIChvYnNPZmZzZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBvYnNPZmZzZXRzW29ic09mZnNldF07XG4gICAgICAgIH0gZWxzZSBpZiAobWlsaXRhcnlPZmZzZXQpIHtcbiAgICAgICAgICAgIC8vIHRoZSBvbmx5IGFsbG93ZWQgbWlsaXRhcnkgdHogaXMgWlxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBwYXJzZUludChudW1PZmZzZXQsIDEwKTtcbiAgICAgICAgICAgIHZhciBtID0gaG0gJSAxMDAsIGggPSAoaG0gLSBtKSAvIDEwMDtcbiAgICAgICAgICAgIHJldHVybiBoICogNjAgKyBtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGF0ZSBhbmQgdGltZSBmcm9tIHJlZiAyODIyIGZvcm1hdFxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZykge1xuICAgICAgICB2YXIgbWF0Y2ggPSByZmMyODIyLmV4ZWMocHJlcHJvY2Vzc1JGQzI4MjIoY29uZmlnLl9pKSk7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgdmFyIHBhcnNlZEFycmF5ID0gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyhtYXRjaFs0XSwgbWF0Y2hbM10sIG1hdGNoWzJdLCBtYXRjaFs1XSwgbWF0Y2hbNl0sIG1hdGNoWzddKTtcbiAgICAgICAgICAgIGlmICghY2hlY2tXZWVrZGF5KG1hdGNoWzFdLCBwYXJzZWRBcnJheSwgY29uZmlnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uZmlnLl9hID0gcGFyc2VkQXJyYXk7XG4gICAgICAgICAgICBjb25maWcuX3R6bSA9IGNhbGN1bGF0ZU9mZnNldChtYXRjaFs4XSwgbWF0Y2hbOV0sIG1hdGNoWzEwXSk7XG5cbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IGNyZWF0ZVVUQ0RhdGUuYXBwbHkobnVsbCwgY29uZmlnLl9hKTtcbiAgICAgICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgLSBjb25maWcuX3R6bSk7XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnJmYzI4MjIgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGZyb20gaXNvIGZvcm1hdCBvciBmYWxsYmFja1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmcoY29uZmlnKSB7XG4gICAgICAgIHZhciBtYXRjaGVkID0gYXNwTmV0SnNvblJlZ2V4LmV4ZWMoY29uZmlnLl9pKTtcblxuICAgICAgICBpZiAobWF0Y2hlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoK21hdGNoZWRbMV0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uZmlnRnJvbUlTTyhjb25maWcpO1xuICAgICAgICBpZiAoY29uZmlnLl9pc1ZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5faXNWYWxpZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gICAgICAgIGlmIChjb25maWcuX2lzVmFsaWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBkZWxldGUgY29uZmlnLl9pc1ZhbGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmluYWwgYXR0ZW1wdCwgdXNlIElucHV0IEZhbGxiYWNrXG4gICAgICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2sgPSBkZXByZWNhdGUoXG4gICAgICAgICd2YWx1ZSBwcm92aWRlZCBpcyBub3QgaW4gYSByZWNvZ25pemVkIFJGQzI4MjIgb3IgSVNPIGZvcm1hdC4gbW9tZW50IGNvbnN0cnVjdGlvbiBmYWxscyBiYWNrIHRvIGpzIERhdGUoKSwgJyArXG4gICAgICAgICd3aGljaCBpcyBub3QgcmVsaWFibGUgYWNyb3NzIGFsbCBicm93c2VycyBhbmQgdmVyc2lvbnMuIE5vbiBSRkMyODIyL0lTTyBkYXRlIGZvcm1hdHMgYXJlICcgK1xuICAgICAgICAnZGlzY291cmFnZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyBtYWpvciByZWxlYXNlLiBQbGVhc2UgcmVmZXIgdG8gJyArXG4gICAgICAgICdodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2pzLWRhdGUvIGZvciBtb3JlIGluZm8uJyxcbiAgICAgICAgZnVuY3Rpb24gKGNvbmZpZykge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoY29uZmlnLl9pICsgKGNvbmZpZy5fdXNlVVRDID8gJyBVVEMnIDogJycpKTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBjb25zdGFudCB0aGF0IHJlZmVycyB0byB0aGUgSVNPIHN0YW5kYXJkXG4gICAgaG9va3MuSVNPXzg2MDEgPSBmdW5jdGlvbiAoKSB7fTtcblxuICAgIC8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBSRkMgMjgyMiBmb3JtXG4gICAgaG9va3MuUkZDXzI4MjIgPSBmdW5jdGlvbiAoKSB7fTtcblxuICAgIC8vIGRhdGUgZnJvbSBzdHJpbmcgYW5kIGZvcm1hdCBzdHJpbmdcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KGNvbmZpZykge1xuICAgICAgICAvLyBUT0RPOiBNb3ZlIHRoaXMgdG8gYW5vdGhlciBwYXJ0IG9mIHRoZSBjcmVhdGlvbiBmbG93IHRvIHByZXZlbnQgY2lyY3VsYXIgZGVwc1xuICAgICAgICBpZiAoY29uZmlnLl9mID09PSBob29rcy5JU09fODYwMSkge1xuICAgICAgICAgICAgY29uZmlnRnJvbUlTTyhjb25maWcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcuX2YgPT09IGhvb2tzLlJGQ18yODIyKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tUkZDMjgyMihjb25maWcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbmZpZy5fYSA9IFtdO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lbXB0eSA9IHRydWU7XG5cbiAgICAgICAgLy8gVGhpcyBhcnJheSBpcyB1c2VkIHRvIG1ha2UgYSBEYXRlLCBlaXRoZXIgd2l0aCBgbmV3IERhdGVgIG9yIGBEYXRlLlVUQ2BcbiAgICAgICAgdmFyIHN0cmluZyA9ICcnICsgY29uZmlnLl9pLFxuICAgICAgICAgICAgaSwgcGFyc2VkSW5wdXQsIHRva2VucywgdG9rZW4sIHNraXBwZWQsXG4gICAgICAgICAgICBzdHJpbmdMZW5ndGggPSBzdHJpbmcubGVuZ3RoLFxuICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCA9IDA7XG5cbiAgICAgICAgdG9rZW5zID0gZXhwYW5kRm9ybWF0KGNvbmZpZy5fZiwgY29uZmlnLl9sb2NhbGUpLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpIHx8IFtdO1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2VuID0gdG9rZW5zW2ldO1xuICAgICAgICAgICAgcGFyc2VkSW5wdXQgPSAoc3RyaW5nLm1hdGNoKGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSkgfHwgW10pWzBdO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ3Rva2VuJywgdG9rZW4sICdwYXJzZWRJbnB1dCcsIHBhcnNlZElucHV0LFxuICAgICAgICAgICAgLy8gICAgICAgICAncmVnZXgnLCBnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4odG9rZW4sIGNvbmZpZykpO1xuICAgICAgICAgICAgaWYgKHBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgc2tpcHBlZCA9IHN0cmluZy5zdWJzdHIoMCwgc3RyaW5nLmluZGV4T2YocGFyc2VkSW5wdXQpKTtcbiAgICAgICAgICAgICAgICBpZiAoc2tpcHBlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZElucHV0LnB1c2goc2tpcHBlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0cmluZyA9IHN0cmluZy5zbGljZShzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkgKyBwYXJzZWRJbnB1dC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGggKz0gcGFyc2VkSW5wdXQubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZG9uJ3QgcGFyc2UgaWYgaXQncyBub3QgYSBrbm93biB0b2tlblxuICAgICAgICAgICAgaWYgKGZvcm1hdFRva2VuRnVuY3Rpb25zW3Rva2VuXSkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lbXB0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkVG9rZW5zLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgcGFyc2VkSW5wdXQsIGNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjb25maWcuX3N0cmljdCAmJiAhcGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgcmVtYWluaW5nIHVucGFyc2VkIGlucHV0IGxlbmd0aCB0byB0aGUgc3RyaW5nXG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmNoYXJzTGVmdE92ZXIgPSBzdHJpbmdMZW5ndGggLSB0b3RhbFBhcnNlZElucHV0TGVuZ3RoO1xuICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZElucHV0LnB1c2goc3RyaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNsZWFyIF8xMmggZmxhZyBpZiBob3VyIGlzIDw9IDEyXG4gICAgICAgIGlmIChjb25maWcuX2FbSE9VUl0gPD0gMTIgJiZcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPT09IHRydWUgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA+IDApIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5wYXJzZWREYXRlUGFydHMgPSBjb25maWcuX2Euc2xpY2UoMCk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLm1lcmlkaWVtID0gY29uZmlnLl9tZXJpZGllbTtcbiAgICAgICAgLy8gaGFuZGxlIG1lcmlkaWVtXG4gICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IG1lcmlkaWVtRml4V3JhcChjb25maWcuX2xvY2FsZSwgY29uZmlnLl9hW0hPVVJdLCBjb25maWcuX21lcmlkaWVtKTtcblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICAgICAgY2hlY2tPdmVyZmxvdyhjb25maWcpO1xuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gbWVyaWRpZW1GaXhXcmFwIChsb2NhbGUsIGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgIHZhciBpc1BtO1xuXG4gICAgICAgIGlmIChtZXJpZGllbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWxlLm1lcmlkaWVtSG91ciAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLm1lcmlkaWVtSG91cihob3VyLCBtZXJpZGllbSk7XG4gICAgICAgIH0gZWxzZSBpZiAobG9jYWxlLmlzUE0gIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2tcbiAgICAgICAgICAgIGlzUG0gPSBsb2NhbGUuaXNQTShtZXJpZGllbSk7XG4gICAgICAgICAgICBpZiAoaXNQbSAmJiBob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyICs9IDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc1BtICYmIGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IHN1cHBvc2VkIHRvIGhhcHBlblxuICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBhcnJheSBvZiBmb3JtYXQgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpIHtcbiAgICAgICAgdmFyIHRlbXBDb25maWcsXG4gICAgICAgICAgICBiZXN0TW9tZW50LFxuXG4gICAgICAgICAgICBzY29yZVRvQmVhdCxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBjdXJyZW50U2NvcmU7XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fZi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRGb3JtYXQgPSB0cnVlO1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoTmFOKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb25maWcuX2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSA9IDA7XG4gICAgICAgICAgICB0ZW1wQ29uZmlnID0gY29weUNvbmZpZyh7fSwgY29uZmlnKTtcbiAgICAgICAgICAgIGlmIChjb25maWcuX3VzZVVUQyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGVtcENvbmZpZy5fdXNlVVRDID0gY29uZmlnLl91c2VVVEM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZW1wQ29uZmlnLl9mID0gY29uZmlnLl9mW2ldO1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdCh0ZW1wQ29uZmlnKTtcblxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKHRlbXBDb25maWcpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGFueSBpbnB1dCB0aGF0IHdhcyBub3QgcGFyc2VkIGFkZCBhIHBlbmFsdHkgZm9yIHRoYXQgZm9ybWF0XG4gICAgICAgICAgICBjdXJyZW50U2NvcmUgKz0gZ2V0UGFyc2luZ0ZsYWdzKHRlbXBDb25maWcpLmNoYXJzTGVmdE92ZXI7XG5cbiAgICAgICAgICAgIC8vb3IgdG9rZW5zXG4gICAgICAgICAgICBjdXJyZW50U2NvcmUgKz0gZ2V0UGFyc2luZ0ZsYWdzKHRlbXBDb25maWcpLnVudXNlZFRva2Vucy5sZW5ndGggKiAxMDtcblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKHRlbXBDb25maWcpLnNjb3JlID0gY3VycmVudFNjb3JlO1xuXG4gICAgICAgICAgICBpZiAoc2NvcmVUb0JlYXQgPT0gbnVsbCB8fCBjdXJyZW50U2NvcmUgPCBzY29yZVRvQmVhdCkge1xuICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID0gY3VycmVudFNjb3JlO1xuICAgICAgICAgICAgICAgIGJlc3RNb21lbnQgPSB0ZW1wQ29uZmlnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXh0ZW5kKGNvbmZpZywgYmVzdE1vbWVudCB8fCB0ZW1wQ29uZmlnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tT2JqZWN0KGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnLl9kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaSA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGNvbmZpZy5faSk7XG4gICAgICAgIGNvbmZpZy5fYSA9IG1hcChbaS55ZWFyLCBpLm1vbnRoLCBpLmRheSB8fCBpLmRhdGUsIGkuaG91ciwgaS5taW51dGUsIGkuc2Vjb25kLCBpLm1pbGxpc2Vjb25kXSwgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgcmV0dXJuIG9iaiAmJiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uZmlnRnJvbUFycmF5KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRnJvbUNvbmZpZyAoY29uZmlnKSB7XG4gICAgICAgIHZhciByZXMgPSBuZXcgTW9tZW50KGNoZWNrT3ZlcmZsb3cocHJlcGFyZUNvbmZpZyhjb25maWcpKSk7XG4gICAgICAgIGlmIChyZXMuX25leHREYXkpIHtcbiAgICAgICAgICAgIC8vIEFkZGluZyBpcyBzbWFydCBlbm91Z2ggYXJvdW5kIERTVFxuICAgICAgICAgICAgcmVzLmFkZCgxLCAnZCcpO1xuICAgICAgICAgICAgcmVzLl9uZXh0RGF5ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcmVwYXJlQ29uZmlnIChjb25maWcpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gY29uZmlnLl9pLFxuICAgICAgICAgICAgZm9ybWF0ID0gY29uZmlnLl9mO1xuXG4gICAgICAgIGNvbmZpZy5fbG9jYWxlID0gY29uZmlnLl9sb2NhbGUgfHwgZ2V0TG9jYWxlKGNvbmZpZy5fbCk7XG5cbiAgICAgICAgaWYgKGlucHV0ID09PSBudWxsIHx8IChmb3JtYXQgPT09IHVuZGVmaW5lZCAmJiBpbnB1dCA9PT0gJycpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCh7bnVsbElucHV0OiB0cnVlfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uZmlnLl9pID0gaW5wdXQgPSBjb25maWcuX2xvY2FsZS5wcmVwYXJzZShpbnB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNNb21lbnQoaW5wdXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vbWVudChjaGVja092ZXJmbG93KGlucHV0KSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gaW5wdXQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShmb3JtYXQpKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kQXJyYXkoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKTtcbiAgICAgICAgfSAgZWxzZSB7XG4gICAgICAgICAgICBjb25maWdGcm9tSW5wdXQoY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNWYWxpZChjb25maWcpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tSW5wdXQoY29uZmlnKSB7XG4gICAgICAgIHZhciBpbnB1dCA9IGNvbmZpZy5faTtcbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaG9va3Mubm93KCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGF0ZShpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGlucHV0LnZhbHVlT2YoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZyhjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2EgPSBtYXAoaW5wdXQuc2xpY2UoMCksIGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQob2JqLCAxMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnRnJvbU9iamVjdChjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgICAgICAgICAgLy8gZnJvbSBtaWxsaXNlY29uZHNcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGlucHV0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrKGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVMb2NhbE9yVVRDIChpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgaXNVVEMpIHtcbiAgICAgICAgdmFyIGMgPSB7fTtcblxuICAgICAgICBpZiAobG9jYWxlID09PSB0cnVlIHx8IGxvY2FsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHN0cmljdCA9IGxvY2FsZTtcbiAgICAgICAgICAgIGxvY2FsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoaXNPYmplY3QoaW5wdXQpICYmIGlzT2JqZWN0RW1wdHkoaW5wdXQpKSB8fFxuICAgICAgICAgICAgICAgIChpc0FycmF5KGlucHV0KSAmJiBpbnB1dC5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICBpbnB1dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyBvYmplY3QgY29uc3RydWN0aW9uIG11c3QgYmUgZG9uZSB0aGlzIHdheS5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzE0MjNcbiAgICAgICAgYy5faXNBTW9tZW50T2JqZWN0ID0gdHJ1ZTtcbiAgICAgICAgYy5fdXNlVVRDID0gYy5faXNVVEMgPSBpc1VUQztcbiAgICAgICAgYy5fbCA9IGxvY2FsZTtcbiAgICAgICAgYy5faSA9IGlucHV0O1xuICAgICAgICBjLl9mID0gZm9ybWF0O1xuICAgICAgICBjLl9zdHJpY3QgPSBzdHJpY3Q7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZyb21Db25maWcoYyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlTG9jYWwgKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvdHlwZU1pbiA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudCgpLm1pbiBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1heCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvJyxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJiBvdGhlci5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPCB0aGlzID8gdGhpcyA6IG90aGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIHZhciBwcm90b3R5cGVNYXggPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQoKS5tYXggaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5taW4gaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LycsXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBvdGhlciA9IGNyZWF0ZUxvY2FsLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG90aGVyID4gdGhpcyA/IHRoaXMgOiBvdGhlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBQaWNrIGEgbW9tZW50IG0gZnJvbSBtb21lbnRzIHNvIHRoYXQgbVtmbl0ob3RoZXIpIGlzIHRydWUgZm9yIGFsbFxuICAgIC8vIG90aGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgZnVuY3Rpb24gZm4gdG8gYmUgdHJhbnNpdGl2ZS5cbiAgICAvL1xuICAgIC8vIG1vbWVudHMgc2hvdWxkIGVpdGhlciBiZSBhbiBhcnJheSBvZiBtb21lbnQgb2JqZWN0cyBvciBhbiBhcnJheSwgd2hvc2VcbiAgICAvLyBmaXJzdCBlbGVtZW50IGlzIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzLlxuICAgIGZ1bmN0aW9uIHBpY2tCeShmbiwgbW9tZW50cykge1xuICAgICAgICB2YXIgcmVzLCBpO1xuICAgICAgICBpZiAobW9tZW50cy5sZW5ndGggPT09IDEgJiYgaXNBcnJheShtb21lbnRzWzBdKSkge1xuICAgICAgICAgICAgbW9tZW50cyA9IG1vbWVudHNbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtb21lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzID0gbW9tZW50c1swXTtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IG1vbWVudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmICghbW9tZW50c1tpXS5pc1ZhbGlkKCkgfHwgbW9tZW50c1tpXVtmbl0ocmVzKSkge1xuICAgICAgICAgICAgICAgIHJlcyA9IG1vbWVudHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgW10uc29ydCBpbnN0ZWFkP1xuICAgIGZ1bmN0aW9uIG1pbiAoKSB7XG4gICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gICAgICAgIHJldHVybiBwaWNrQnkoJ2lzQmVmb3JlJywgYXJncyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWF4ICgpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG5cbiAgICAgICAgcmV0dXJuIHBpY2tCeSgnaXNBZnRlcicsIGFyZ3MpO1xuICAgIH1cblxuICAgIHZhciBub3cgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBEYXRlLm5vdyA/IERhdGUubm93KCkgOiArKG5ldyBEYXRlKCkpO1xuICAgIH07XG5cbiAgICB2YXIgb3JkZXJpbmcgPSBbJ3llYXInLCAncXVhcnRlcicsICdtb250aCcsICd3ZWVrJywgJ2RheScsICdob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnLCAnbWlsbGlzZWNvbmQnXTtcblxuICAgIGZ1bmN0aW9uIGlzRHVyYXRpb25WYWxpZChtKSB7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBtKSB7XG4gICAgICAgICAgICBpZiAoIShpbmRleE9mLmNhbGwob3JkZXJpbmcsIGtleSkgIT09IC0xICYmIChtW2tleV0gPT0gbnVsbCB8fCAhaXNOYU4obVtrZXldKSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHVuaXRIYXNEZWNpbWFsID0gZmFsc2U7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3JkZXJpbmcubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmIChtW29yZGVyaW5nW2ldXSkge1xuICAgICAgICAgICAgICAgIGlmICh1bml0SGFzRGVjaW1hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIG9ubHkgYWxsb3cgbm9uLWludGVnZXJzIGZvciBzbWFsbGVzdCB1bml0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwYXJzZUZsb2F0KG1bb3JkZXJpbmdbaV1dKSAhPT0gdG9JbnQobVtvcmRlcmluZ1tpXV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaXRIYXNEZWNpbWFsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkJDEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUludmFsaWQkMSgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKE5hTik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gRHVyYXRpb24gKGR1cmF0aW9uKSB7XG4gICAgICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSBub3JtYWxpemVPYmplY3RVbml0cyhkdXJhdGlvbiksXG4gICAgICAgICAgICB5ZWFycyA9IG5vcm1hbGl6ZWRJbnB1dC55ZWFyIHx8IDAsXG4gICAgICAgICAgICBxdWFydGVycyA9IG5vcm1hbGl6ZWRJbnB1dC5xdWFydGVyIHx8IDAsXG4gICAgICAgICAgICBtb250aHMgPSBub3JtYWxpemVkSW5wdXQubW9udGggfHwgMCxcbiAgICAgICAgICAgIHdlZWtzID0gbm9ybWFsaXplZElucHV0LndlZWsgfHwgMCxcbiAgICAgICAgICAgIGRheXMgPSBub3JtYWxpemVkSW5wdXQuZGF5IHx8IDAsXG4gICAgICAgICAgICBob3VycyA9IG5vcm1hbGl6ZWRJbnB1dC5ob3VyIHx8IDAsXG4gICAgICAgICAgICBtaW51dGVzID0gbm9ybWFsaXplZElucHV0Lm1pbnV0ZSB8fCAwLFxuICAgICAgICAgICAgc2Vjb25kcyA9IG5vcm1hbGl6ZWRJbnB1dC5zZWNvbmQgfHwgMCxcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kcyA9IG5vcm1hbGl6ZWRJbnB1dC5taWxsaXNlY29uZCB8fCAwO1xuXG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSBpc0R1cmF0aW9uVmFsaWQobm9ybWFsaXplZElucHV0KTtcblxuICAgICAgICAvLyByZXByZXNlbnRhdGlvbiBmb3IgZGF0ZUFkZFJlbW92ZVxuICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgPSArbWlsbGlzZWNvbmRzICtcbiAgICAgICAgICAgIHNlY29uZHMgKiAxZTMgKyAvLyAxMDAwXG4gICAgICAgICAgICBtaW51dGVzICogNmU0ICsgLy8gMTAwMCAqIDYwXG4gICAgICAgICAgICBob3VycyAqIDEwMDAgKiA2MCAqIDYwOyAvL3VzaW5nIDEwMDAgKiA2MCAqIDYwIGluc3RlYWQgb2YgMzZlNSB0byBhdm9pZCBmbG9hdGluZyBwb2ludCByb3VuZGluZyBlcnJvcnMgaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzI5NzhcbiAgICAgICAgLy8gQmVjYXVzZSBvZiBkYXRlQWRkUmVtb3ZlIHRyZWF0cyAyNCBob3VycyBhcyBkaWZmZXJlbnQgZnJvbSBhXG4gICAgICAgIC8vIGRheSB3aGVuIHdvcmtpbmcgYXJvdW5kIERTVCwgd2UgbmVlZCB0byBzdG9yZSB0aGVtIHNlcGFyYXRlbHlcbiAgICAgICAgdGhpcy5fZGF5cyA9ICtkYXlzICtcbiAgICAgICAgICAgIHdlZWtzICogNztcbiAgICAgICAgLy8gSXQgaXMgaW1wb3NzaWJsZSB0byB0cmFuc2xhdGUgbW9udGhzIGludG8gZGF5cyB3aXRob3V0IGtub3dpbmdcbiAgICAgICAgLy8gd2hpY2ggbW9udGhzIHlvdSBhcmUgYXJlIHRhbGtpbmcgYWJvdXQsIHNvIHdlIGhhdmUgdG8gc3RvcmVcbiAgICAgICAgLy8gaXQgc2VwYXJhdGVseS5cbiAgICAgICAgdGhpcy5fbW9udGhzID0gK21vbnRocyArXG4gICAgICAgICAgICBxdWFydGVycyAqIDMgK1xuICAgICAgICAgICAgeWVhcnMgKiAxMjtcblxuICAgICAgICB0aGlzLl9kYXRhID0ge307XG5cbiAgICAgICAgdGhpcy5fbG9jYWxlID0gZ2V0TG9jYWxlKCk7XG5cbiAgICAgICAgdGhpcy5fYnViYmxlKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEdXJhdGlvbiAob2JqKSB7XG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEdXJhdGlvbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNSb3VuZCAobnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCgtMSAqIG51bWJlcikgKiAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBmdW5jdGlvbiBvZmZzZXQgKHRva2VuLCBzZXBhcmF0b3IpIHtcbiAgICAgICAgYWRkRm9ybWF0VG9rZW4odG9rZW4sIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSB0aGlzLnV0Y09mZnNldCgpO1xuICAgICAgICAgICAgdmFyIHNpZ24gPSAnKyc7XG4gICAgICAgICAgICBpZiAob2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgICAgIG9mZnNldCA9IC1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgc2lnbiA9ICctJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzaWduICsgemVyb0ZpbGwofn4ob2Zmc2V0IC8gNjApLCAyKSArIHNlcGFyYXRvciArIHplcm9GaWxsKH5+KG9mZnNldCkgJSA2MCwgMik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9mZnNldCgnWicsICc6Jyk7XG4gICAgb2Zmc2V0KCdaWicsICcnKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1onLCAgbWF0Y2hTaG9ydE9mZnNldCk7XG4gICAgYWRkUmVnZXhUb2tlbignWlonLCBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgICBhZGRQYXJzZVRva2VuKFsnWicsICdaWiddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl91c2VVVEMgPSB0cnVlO1xuICAgICAgICBjb25maWcuX3R6bSA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hTaG9ydE9mZnNldCwgaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgLy8gdGltZXpvbmUgY2h1bmtlclxuICAgIC8vICcrMTA6MDAnID4gWycxMCcsICAnMDAnXVxuICAgIC8vICctMTUzMCcgID4gWyctMTUnLCAnMzAnXVxuICAgIHZhciBjaHVua09mZnNldCA9IC8oW1xcK1xcLV18XFxkXFxkKS9naTtcblxuICAgIGZ1bmN0aW9uIG9mZnNldEZyb21TdHJpbmcobWF0Y2hlciwgc3RyaW5nKSB7XG4gICAgICAgIHZhciBtYXRjaGVzID0gKHN0cmluZyB8fCAnJykubWF0Y2gobWF0Y2hlcik7XG5cbiAgICAgICAgaWYgKG1hdGNoZXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNodW5rICAgPSBtYXRjaGVzW21hdGNoZXMubGVuZ3RoIC0gMV0gfHwgW107XG4gICAgICAgIHZhciBwYXJ0cyAgID0gKGNodW5rICsgJycpLm1hdGNoKGNodW5rT2Zmc2V0KSB8fCBbJy0nLCAwLCAwXTtcbiAgICAgICAgdmFyIG1pbnV0ZXMgPSArKHBhcnRzWzFdICogNjApICsgdG9JbnQocGFydHNbMl0pO1xuXG4gICAgICAgIHJldHVybiBtaW51dGVzID09PSAwID9cbiAgICAgICAgICAwIDpcbiAgICAgICAgICBwYXJ0c1swXSA9PT0gJysnID8gbWludXRlcyA6IC1taW51dGVzO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBhIG1vbWVudCBmcm9tIGlucHV0LCB0aGF0IGlzIGxvY2FsL3V0Yy96b25lIGVxdWl2YWxlbnQgdG8gbW9kZWwuXG4gICAgZnVuY3Rpb24gY2xvbmVXaXRoT2Zmc2V0KGlucHV0LCBtb2RlbCkge1xuICAgICAgICB2YXIgcmVzLCBkaWZmO1xuICAgICAgICBpZiAobW9kZWwuX2lzVVRDKSB7XG4gICAgICAgICAgICByZXMgPSBtb2RlbC5jbG9uZSgpO1xuICAgICAgICAgICAgZGlmZiA9IChpc01vbWVudChpbnB1dCkgfHwgaXNEYXRlKGlucHV0KSA/IGlucHV0LnZhbHVlT2YoKSA6IGNyZWF0ZUxvY2FsKGlucHV0KS52YWx1ZU9mKCkpIC0gcmVzLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIC8vIFVzZSBsb3ctbGV2ZWwgYXBpLCBiZWNhdXNlIHRoaXMgZm4gaXMgbG93LWxldmVsIGFwaS5cbiAgICAgICAgICAgIHJlcy5fZC5zZXRUaW1lKHJlcy5fZC52YWx1ZU9mKCkgKyBkaWZmKTtcbiAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldChyZXMsIGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwoaW5wdXQpLmxvY2FsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXREYXRlT2Zmc2V0IChtKSB7XG4gICAgICAgIC8vIE9uIEZpcmVmb3guMjQgRGF0ZSNnZXRUaW1lem9uZU9mZnNldCByZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L3B1bGwvMTg3MVxuICAgICAgICByZXR1cm4gLU1hdGgucm91bmQobS5fZC5nZXRUaW1lem9uZU9mZnNldCgpIC8gMTUpICogMTU7XG4gICAgfVxuXG4gICAgLy8gSE9PS1NcblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgYSBtb21lbnQgaXMgbXV0YXRlZC5cbiAgICAvLyBJdCBpcyBpbnRlbmRlZCB0byBrZWVwIHRoZSBvZmZzZXQgaW4gc3luYyB3aXRoIHRoZSB0aW1lem9uZS5cbiAgICBob29rcy51cGRhdGVPZmZzZXQgPSBmdW5jdGlvbiAoKSB7fTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIC8vIGtlZXBMb2NhbFRpbWUgPSB0cnVlIG1lYW5zIG9ubHkgY2hhbmdlIHRoZSB0aW1lem9uZSwgd2l0aG91dFxuICAgIC8vIGFmZmVjdGluZyB0aGUgbG9jYWwgaG91ci4gU28gNTozMToyNiArMDMwMCAtLVt1dGNPZmZzZXQoMiwgdHJ1ZSldLS0+XG4gICAgLy8gNTozMToyNiArMDIwMCBJdCBpcyBwb3NzaWJsZSB0aGF0IDU6MzE6MjYgZG9lc24ndCBleGlzdCB3aXRoIG9mZnNldFxuICAgIC8vICswMjAwLCBzbyB3ZSBhZGp1c3QgdGhlIHRpbWUgYXMgbmVlZGVkLCB0byBiZSB2YWxpZC5cbiAgICAvL1xuICAgIC8vIEtlZXBpbmcgdGhlIHRpbWUgYWN0dWFsbHkgYWRkcy9zdWJ0cmFjdHMgKG9uZSBob3VyKVxuICAgIC8vIGZyb20gdGhlIGFjdHVhbCByZXByZXNlbnRlZCB0aW1lLiBUaGF0IGlzIHdoeSB3ZSBjYWxsIHVwZGF0ZU9mZnNldFxuICAgIC8vIGEgc2Vjb25kIHRpbWUuIEluIGNhc2UgaXQgd2FudHMgdXMgdG8gY2hhbmdlIHRoZSBvZmZzZXQgYWdhaW5cbiAgICAvLyBfY2hhbmdlSW5Qcm9ncmVzcyA9PSB0cnVlIGNhc2UsIHRoZW4gd2UgaGF2ZSB0byBhZGp1c3QsIGJlY2F1c2VcbiAgICAvLyB0aGVyZSBpcyBubyBzdWNoIHRpbWUgaW4gdGhlIGdpdmVuIHRpbWV6b25lLlxuICAgIGZ1bmN0aW9uIGdldFNldE9mZnNldCAoaW5wdXQsIGtlZXBMb2NhbFRpbWUsIGtlZXBNaW51dGVzKSB7XG4gICAgICAgIHZhciBvZmZzZXQgPSB0aGlzLl9vZmZzZXQgfHwgMCxcbiAgICAgICAgICAgIGxvY2FsQWRqdXN0O1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgIT0gbnVsbCA/IHRoaXMgOiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoU2hvcnRPZmZzZXQsIGlucHV0KTtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChNYXRoLmFicyhpbnB1dCkgPCAxNiAmJiAha2VlcE1pbnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IGlucHV0ICogNjA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzVVRDICYmIGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgICAgICAgICBsb2NhbEFkanVzdCA9IGdldERhdGVPZmZzZXQodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9vZmZzZXQgPSBpbnB1dDtcbiAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChsb2NhbEFkanVzdCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGQobG9jYWxBZGp1c3QsICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob2Zmc2V0ICE9PSBpbnB1dCkge1xuICAgICAgICAgICAgICAgIGlmICgha2VlcExvY2FsVGltZSB8fCB0aGlzLl9jaGFuZ2VJblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZFN1YnRyYWN0KHRoaXMsIGNyZWF0ZUR1cmF0aW9uKGlucHV0IC0gb2Zmc2V0LCAnbScpLCAxLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VJblByb2dyZXNzID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc1VUQyA/IG9mZnNldCA6IGdldERhdGVPZmZzZXQodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRab25lIChpbnB1dCwga2VlcExvY2FsVGltZSkge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IC1pbnB1dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoaW5wdXQsIGtlZXBMb2NhbFRpbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAtdGhpcy51dGNPZmZzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvVVRDIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRUb0xvY2FsIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc1VUQykge1xuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoMCwga2VlcExvY2FsVGltZSk7XG4gICAgICAgICAgICB0aGlzLl9pc1VUQyA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoa2VlcExvY2FsVGltZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VidHJhY3QoZ2V0RGF0ZU9mZnNldCh0aGlzKSwgJ20nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRUb1BhcnNlZE9mZnNldCAoKSB7XG4gICAgICAgIGlmICh0aGlzLl90em0gIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQodGhpcy5fdHptLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX2kgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YXIgdFpvbmUgPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoT2Zmc2V0LCB0aGlzLl9pKTtcbiAgICAgICAgICAgIGlmICh0Wm9uZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQodFpvbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoMCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFzQWxpZ25lZEhvdXJPZmZzZXQgKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dCA9IGlucHV0ID8gY3JlYXRlTG9jYWwoaW5wdXQpLnV0Y09mZnNldCgpIDogMDtcblxuICAgICAgICByZXR1cm4gKHRoaXMudXRjT2Zmc2V0KCkgLSBpbnB1dCkgJSA2MCA9PT0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZSAoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgpID4gdGhpcy5jbG9uZSgpLm1vbnRoKDApLnV0Y09mZnNldCgpIHx8XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgpID4gdGhpcy5jbG9uZSgpLm1vbnRoKDUpLnV0Y09mZnNldCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXlsaWdodFNhdmluZ1RpbWVTaGlmdGVkICgpIHtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh0aGlzLl9pc0RTVFNoaWZ0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGMgPSB7fTtcblxuICAgICAgICBjb3B5Q29uZmlnKGMsIHRoaXMpO1xuICAgICAgICBjID0gcHJlcGFyZUNvbmZpZyhjKTtcblxuICAgICAgICBpZiAoYy5fYSkge1xuICAgICAgICAgICAgdmFyIG90aGVyID0gYy5faXNVVEMgPyBjcmVhdGVVVEMoYy5fYSkgOiBjcmVhdGVMb2NhbChjLl9hKTtcbiAgICAgICAgICAgIHRoaXMuX2lzRFNUU2hpZnRlZCA9IHRoaXMuaXNWYWxpZCgpICYmXG4gICAgICAgICAgICAgICAgY29tcGFyZUFycmF5cyhjLl9hLCBvdGhlci50b0FycmF5KCkpID4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lzRFNUU2hpZnRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRFNUU2hpZnRlZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0xvY2FsICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gIXRoaXMuX2lzVVRDIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVdGNPZmZzZXQgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9pc1VUQyA6IGZhbHNlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVXRjICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5faXNVVEMgJiYgdGhpcy5fb2Zmc2V0ID09PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQVNQLk5FVCBqc29uIGRhdGUgZm9ybWF0IHJlZ2V4XG4gICAgdmFyIGFzcE5ldFJlZ2V4ID0gL14oXFwtfFxcKyk/KD86KFxcZCopWy4gXSk/KFxcZCspXFw6KFxcZCspKD86XFw6KFxcZCspKFxcLlxcZCopPyk/JC87XG5cbiAgICAvLyBmcm9tIGh0dHA6Ly9kb2NzLmNsb3N1cmUtbGlicmFyeS5nb29nbGVjb2RlLmNvbS9naXQvY2xvc3VyZV9nb29nX2RhdGVfZGF0ZS5qcy5zb3VyY2UuaHRtbFxuICAgIC8vIHNvbWV3aGF0IG1vcmUgaW4gbGluZSB3aXRoIDQuNC4zLjIgMjAwNCBzcGVjLCBidXQgYWxsb3dzIGRlY2ltYWwgYW55d2hlcmVcbiAgICAvLyBhbmQgZnVydGhlciBtb2RpZmllZCB0byBhbGxvdyBmb3Igc3RyaW5ncyBjb250YWluaW5nIGJvdGggd2VlayBhbmQgZGF5XG4gICAgdmFyIGlzb1JlZ2V4ID0gL14oLXxcXCspP1AoPzooWy0rXT9bMC05LC5dKilZKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilXKT8oPzooWy0rXT9bMC05LC5dKilEKT8oPzpUKD86KFstK10/WzAtOSwuXSopSCk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopUyk/KT8kLztcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUR1cmF0aW9uIChpbnB1dCwga2V5KSB7XG4gICAgICAgIHZhciBkdXJhdGlvbiA9IGlucHV0LFxuICAgICAgICAgICAgLy8gbWF0Y2hpbmcgYWdhaW5zdCByZWdleHAgaXMgZXhwZW5zaXZlLCBkbyBpdCBvbiBkZW1hbmRcbiAgICAgICAgICAgIG1hdGNoID0gbnVsbCxcbiAgICAgICAgICAgIHNpZ24sXG4gICAgICAgICAgICByZXQsXG4gICAgICAgICAgICBkaWZmUmVzO1xuXG4gICAgICAgIGlmIChpc0R1cmF0aW9uKGlucHV0KSkge1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgbXMgOiBpbnB1dC5fbWlsbGlzZWNvbmRzLFxuICAgICAgICAgICAgICAgIGQgIDogaW5wdXQuX2RheXMsXG4gICAgICAgICAgICAgICAgTSAgOiBpbnB1dC5fbW9udGhzXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSkge1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbltrZXldID0gaW5wdXQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uLm1pbGxpc2Vjb25kcyA9IGlucHV0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCEhKG1hdGNoID0gYXNwTmV0UmVnZXguZXhlYyhpbnB1dCkpKSB7XG4gICAgICAgICAgICBzaWduID0gKG1hdGNoWzFdID09PSAnLScpID8gLTEgOiAxO1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeSAgOiAwLFxuICAgICAgICAgICAgICAgIGQgIDogdG9JbnQobWF0Y2hbREFURV0pICAgICAgICAgICAgICAgICAgICAgICAgICogc2lnbixcbiAgICAgICAgICAgICAgICBoICA6IHRvSW50KG1hdGNoW0hPVVJdKSAgICAgICAgICAgICAgICAgICAgICAgICAqIHNpZ24sXG4gICAgICAgICAgICAgICAgbSAgOiB0b0ludChtYXRjaFtNSU5VVEVdKSAgICAgICAgICAgICAgICAgICAgICAgKiBzaWduLFxuICAgICAgICAgICAgICAgIHMgIDogdG9JbnQobWF0Y2hbU0VDT05EXSkgICAgICAgICAgICAgICAgICAgICAgICogc2lnbixcbiAgICAgICAgICAgICAgICBtcyA6IHRvSW50KGFic1JvdW5kKG1hdGNoW01JTExJU0VDT05EXSAqIDEwMDApKSAqIHNpZ24gLy8gdGhlIG1pbGxpc2Vjb25kIGRlY2ltYWwgcG9pbnQgaXMgaW5jbHVkZWQgaW4gdGhlIG1hdGNoXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKCEhKG1hdGNoID0gaXNvUmVnZXguZXhlYyhpbnB1dCkpKSB7XG4gICAgICAgICAgICBzaWduID0gKG1hdGNoWzFdID09PSAnLScpID8gLTEgOiAobWF0Y2hbMV0gPT09ICcrJykgPyAxIDogMTtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge1xuICAgICAgICAgICAgICAgIHkgOiBwYXJzZUlzbyhtYXRjaFsyXSwgc2lnbiksXG4gICAgICAgICAgICAgICAgTSA6IHBhcnNlSXNvKG1hdGNoWzNdLCBzaWduKSxcbiAgICAgICAgICAgICAgICB3IDogcGFyc2VJc28obWF0Y2hbNF0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIGQgOiBwYXJzZUlzbyhtYXRjaFs1XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgaCA6IHBhcnNlSXNvKG1hdGNoWzZdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBtIDogcGFyc2VJc28obWF0Y2hbN10sIHNpZ24pLFxuICAgICAgICAgICAgICAgIHMgOiBwYXJzZUlzbyhtYXRjaFs4XSwgc2lnbilcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoZHVyYXRpb24gPT0gbnVsbCkgey8vIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWRcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge307XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGR1cmF0aW9uID09PSAnb2JqZWN0JyAmJiAoJ2Zyb20nIGluIGR1cmF0aW9uIHx8ICd0bycgaW4gZHVyYXRpb24pKSB7XG4gICAgICAgICAgICBkaWZmUmVzID0gbW9tZW50c0RpZmZlcmVuY2UoY3JlYXRlTG9jYWwoZHVyYXRpb24uZnJvbSksIGNyZWF0ZUxvY2FsKGR1cmF0aW9uLnRvKSk7XG5cbiAgICAgICAgICAgIGR1cmF0aW9uID0ge307XG4gICAgICAgICAgICBkdXJhdGlvbi5tcyA9IGRpZmZSZXMubWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgZHVyYXRpb24uTSA9IGRpZmZSZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0ID0gbmV3IER1cmF0aW9uKGR1cmF0aW9uKTtcblxuICAgICAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkgJiYgaGFzT3duUHJvcChpbnB1dCwgJ19sb2NhbGUnKSkge1xuICAgICAgICAgICAgcmV0Ll9sb2NhbGUgPSBpbnB1dC5fbG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICBjcmVhdGVEdXJhdGlvbi5mbiA9IER1cmF0aW9uLnByb3RvdHlwZTtcbiAgICBjcmVhdGVEdXJhdGlvbi5pbnZhbGlkID0gY3JlYXRlSW52YWxpZCQxO1xuXG4gICAgZnVuY3Rpb24gcGFyc2VJc28gKGlucCwgc2lnbikge1xuICAgICAgICAvLyBXZSdkIG5vcm1hbGx5IHVzZSB+fmlucCBmb3IgdGhpcywgYnV0IHVuZm9ydHVuYXRlbHkgaXQgYWxzb1xuICAgICAgICAvLyBjb252ZXJ0cyBmbG9hdHMgdG8gaW50cy5cbiAgICAgICAgLy8gaW5wIG1heSBiZSB1bmRlZmluZWQsIHNvIGNhcmVmdWwgY2FsbGluZyByZXBsYWNlIG9uIGl0LlxuICAgICAgICB2YXIgcmVzID0gaW5wICYmIHBhcnNlRmxvYXQoaW5wLnJlcGxhY2UoJywnLCAnLicpKTtcbiAgICAgICAgLy8gYXBwbHkgc2lnbiB3aGlsZSB3ZSdyZSBhdCBpdFxuICAgICAgICByZXR1cm4gKGlzTmFOKHJlcykgPyAwIDogcmVzKSAqIHNpZ247XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcikge1xuICAgICAgICB2YXIgcmVzID0ge21pbGxpc2Vjb25kczogMCwgbW9udGhzOiAwfTtcblxuICAgICAgICByZXMubW9udGhzID0gb3RoZXIubW9udGgoKSAtIGJhc2UubW9udGgoKSArXG4gICAgICAgICAgICAob3RoZXIueWVhcigpIC0gYmFzZS55ZWFyKCkpICogMTI7XG4gICAgICAgIGlmIChiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJykuaXNBZnRlcihvdGhlcikpIHtcbiAgICAgICAgICAgIC0tcmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcy5taWxsaXNlY29uZHMgPSArb3RoZXIgLSArKGJhc2UuY2xvbmUoKS5hZGQocmVzLm1vbnRocywgJ00nKSk7XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcikge1xuICAgICAgICB2YXIgcmVzO1xuICAgICAgICBpZiAoIShiYXNlLmlzVmFsaWQoKSAmJiBvdGhlci5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4ge21pbGxpc2Vjb25kczogMCwgbW9udGhzOiAwfTtcbiAgICAgICAgfVxuXG4gICAgICAgIG90aGVyID0gY2xvbmVXaXRoT2Zmc2V0KG90aGVyLCBiYXNlKTtcbiAgICAgICAgaWYgKGJhc2UuaXNCZWZvcmUob3RoZXIpKSB7XG4gICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcyA9IHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2Uob3RoZXIsIGJhc2UpO1xuICAgICAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9IC1yZXMubWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgcmVzLm1vbnRocyA9IC1yZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBUT0RPOiByZW1vdmUgJ25hbWUnIGFyZyBhZnRlciBkZXByZWNhdGlvbiBpcyByZW1vdmVkXG4gICAgZnVuY3Rpb24gY3JlYXRlQWRkZXIoZGlyZWN0aW9uLCBuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHZhciBkdXIsIHRtcDtcbiAgICAgICAgICAgIC8vaW52ZXJ0IHRoZSBhcmd1bWVudHMsIGJ1dCBjb21wbGFpbiBhYm91dCBpdFxuICAgICAgICAgICAgaWYgKHBlcmlvZCAhPT0gbnVsbCAmJiAhaXNOYU4oK3BlcmlvZCkpIHtcbiAgICAgICAgICAgICAgICBkZXByZWNhdGVTaW1wbGUobmFtZSwgJ21vbWVudCgpLicgKyBuYW1lICArICcocGVyaW9kLCBudW1iZXIpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgbW9tZW50KCkuJyArIG5hbWUgKyAnKG51bWJlciwgcGVyaW9kKS4gJyArXG4gICAgICAgICAgICAgICAgJ1NlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2FkZC1pbnZlcnRlZC1wYXJhbS8gZm9yIG1vcmUgaW5mby4nKTtcbiAgICAgICAgICAgICAgICB0bXAgPSB2YWw7IHZhbCA9IHBlcmlvZDsgcGVyaW9kID0gdG1wO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YWwgPSB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyA/ICt2YWwgOiB2YWw7XG4gICAgICAgICAgICBkdXIgPSBjcmVhdGVEdXJhdGlvbih2YWwsIHBlcmlvZCk7XG4gICAgICAgICAgICBhZGRTdWJ0cmFjdCh0aGlzLCBkdXIsIGRpcmVjdGlvbik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRTdWJ0cmFjdCAobW9tLCBkdXJhdGlvbiwgaXNBZGRpbmcsIHVwZGF0ZU9mZnNldCkge1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gZHVyYXRpb24uX21pbGxpc2Vjb25kcyxcbiAgICAgICAgICAgIGRheXMgPSBhYnNSb3VuZChkdXJhdGlvbi5fZGF5cyksXG4gICAgICAgICAgICBtb250aHMgPSBhYnNSb3VuZChkdXJhdGlvbi5fbW9udGhzKTtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGVPZmZzZXQgPSB1cGRhdGVPZmZzZXQgPT0gbnVsbCA/IHRydWUgOiB1cGRhdGVPZmZzZXQ7XG5cbiAgICAgICAgaWYgKG1vbnRocykge1xuICAgICAgICAgICAgc2V0TW9udGgobW9tLCBnZXQobW9tLCAnTW9udGgnKSArIG1vbnRocyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF5cykge1xuICAgICAgICAgICAgc2V0JDEobW9tLCAnRGF0ZScsIGdldChtb20sICdEYXRlJykgKyBkYXlzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaWxsaXNlY29uZHMpIHtcbiAgICAgICAgICAgIG1vbS5fZC5zZXRUaW1lKG1vbS5fZC52YWx1ZU9mKCkgKyBtaWxsaXNlY29uZHMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVwZGF0ZU9mZnNldCkge1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KG1vbSwgZGF5cyB8fCBtb250aHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGFkZCAgICAgID0gY3JlYXRlQWRkZXIoMSwgJ2FkZCcpO1xuICAgIHZhciBzdWJ0cmFjdCA9IGNyZWF0ZUFkZGVyKC0xLCAnc3VidHJhY3QnKTtcblxuICAgIGZ1bmN0aW9uIGdldENhbGVuZGFyRm9ybWF0KG15TW9tZW50LCBub3cpIHtcbiAgICAgICAgdmFyIGRpZmYgPSBteU1vbWVudC5kaWZmKG5vdywgJ2RheXMnLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGRpZmYgPCAtNiA/ICdzYW1lRWxzZScgOlxuICAgICAgICAgICAgICAgIGRpZmYgPCAtMSA/ICdsYXN0V2VlaycgOlxuICAgICAgICAgICAgICAgIGRpZmYgPCAwID8gJ2xhc3REYXknIDpcbiAgICAgICAgICAgICAgICBkaWZmIDwgMSA/ICdzYW1lRGF5JyA6XG4gICAgICAgICAgICAgICAgZGlmZiA8IDIgPyAnbmV4dERheScgOlxuICAgICAgICAgICAgICAgIGRpZmYgPCA3ID8gJ25leHRXZWVrJyA6ICdzYW1lRWxzZSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2FsZW5kYXIkMSAodGltZSwgZm9ybWF0cykge1xuICAgICAgICAvLyBXZSB3YW50IHRvIGNvbXBhcmUgdGhlIHN0YXJ0IG9mIHRvZGF5LCB2cyB0aGlzLlxuICAgICAgICAvLyBHZXR0aW5nIHN0YXJ0LW9mLXRvZGF5IGRlcGVuZHMgb24gd2hldGhlciB3ZSdyZSBsb2NhbC91dGMvb2Zmc2V0IG9yIG5vdC5cbiAgICAgICAgdmFyIG5vdyA9IHRpbWUgfHwgY3JlYXRlTG9jYWwoKSxcbiAgICAgICAgICAgIHNvZCA9IGNsb25lV2l0aE9mZnNldChub3csIHRoaXMpLnN0YXJ0T2YoJ2RheScpLFxuICAgICAgICAgICAgZm9ybWF0ID0gaG9va3MuY2FsZW5kYXJGb3JtYXQodGhpcywgc29kKSB8fCAnc2FtZUVsc2UnO1xuXG4gICAgICAgIHZhciBvdXRwdXQgPSBmb3JtYXRzICYmIChpc0Z1bmN0aW9uKGZvcm1hdHNbZm9ybWF0XSkgPyBmb3JtYXRzW2Zvcm1hdF0uY2FsbCh0aGlzLCBub3cpIDogZm9ybWF0c1tmb3JtYXRdKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXQob3V0cHV0IHx8IHRoaXMubG9jYWxlRGF0YSgpLmNhbGVuZGFyKGZvcm1hdCwgdGhpcywgY3JlYXRlTG9jYWwobm93KSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsb25lICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb21lbnQodGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNBZnRlciAoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCk7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHMoIWlzVW5kZWZpbmVkKHVuaXRzKSA/IHVuaXRzIDogJ21pbGxpc2Vjb25kJyk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID4gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxJbnB1dC52YWx1ZU9mKCkgPCB0aGlzLmNsb25lKCkuc3RhcnRPZih1bml0cykudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNCZWZvcmUgKGlucHV0LCB1bml0cykge1xuICAgICAgICB2YXIgbG9jYWxJbnB1dCA9IGlzTW9tZW50KGlucHV0KSA/IGlucHV0IDogY3JlYXRlTG9jYWwoaW5wdXQpO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKCFpc1VuZGVmaW5lZCh1bml0cykgPyB1bml0cyA6ICdtaWxsaXNlY29uZCcpO1xuICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA8IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5lbmRPZih1bml0cykudmFsdWVPZigpIDwgbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0JldHdlZW4gKGZyb20sIHRvLCB1bml0cywgaW5jbHVzaXZpdHkpIHtcbiAgICAgICAgaW5jbHVzaXZpdHkgPSBpbmNsdXNpdml0eSB8fCAnKCknO1xuICAgICAgICByZXR1cm4gKGluY2x1c2l2aXR5WzBdID09PSAnKCcgPyB0aGlzLmlzQWZ0ZXIoZnJvbSwgdW5pdHMpIDogIXRoaXMuaXNCZWZvcmUoZnJvbSwgdW5pdHMpKSAmJlxuICAgICAgICAgICAgKGluY2x1c2l2aXR5WzFdID09PSAnKScgPyB0aGlzLmlzQmVmb3JlKHRvLCB1bml0cykgOiAhdGhpcy5pc0FmdGVyKHRvLCB1bml0cykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzU2FtZSAoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCksXG4gICAgICAgICAgICBpbnB1dE1zO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzIHx8ICdtaWxsaXNlY29uZCcpO1xuICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA9PT0gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbnB1dE1zID0gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLnN0YXJ0T2YodW5pdHMpLnZhbHVlT2YoKSA8PSBpbnB1dE1zICYmIGlucHV0TXMgPD0gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckFmdGVyIChpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGlucHV0LCB1bml0cykgfHwgdGhpcy5pc0FmdGVyKGlucHV0LHVuaXRzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckJlZm9yZSAoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShpbnB1dCwgdW5pdHMpIHx8IHRoaXMuaXNCZWZvcmUoaW5wdXQsdW5pdHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRpZmYgKGlucHV0LCB1bml0cywgYXNGbG9hdCkge1xuICAgICAgICB2YXIgdGhhdCxcbiAgICAgICAgICAgIHpvbmVEZWx0YSxcbiAgICAgICAgICAgIG91dHB1dDtcblxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhhdCA9IGNsb25lV2l0aE9mZnNldChpbnB1dCwgdGhpcyk7XG5cbiAgICAgICAgaWYgKCF0aGF0LmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHpvbmVEZWx0YSA9ICh0aGF0LnV0Y09mZnNldCgpIC0gdGhpcy51dGNPZmZzZXQoKSkgKiA2ZTQ7XG5cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6IG91dHB1dCA9IG1vbnRoRGlmZih0aGlzLCB0aGF0KSAvIDEyOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzogb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOiBvdXRwdXQgPSBtb250aERpZmYodGhpcywgdGhhdCkgLyAzOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6IG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAxZTM7IGJyZWFrOyAvLyAxMDAwXG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOiBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gNmU0OyBicmVhazsgLy8gMTAwMCAqIDYwXG4gICAgICAgICAgICBjYXNlICdob3VyJzogb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDM2ZTU7IGJyZWFrOyAvLyAxMDAwICogNjAgKiA2MFxuICAgICAgICAgICAgY2FzZSAnZGF5Jzogb3V0cHV0ID0gKHRoaXMgLSB0aGF0IC0gem9uZURlbHRhKSAvIDg2NGU1OyBicmVhazsgLy8gMTAwMCAqIDYwICogNjAgKiAyNCwgbmVnYXRlIGRzdFxuICAgICAgICAgICAgY2FzZSAnd2Vlayc6IG91dHB1dCA9ICh0aGlzIC0gdGhhdCAtIHpvbmVEZWx0YSkgLyA2MDQ4ZTU7IGJyZWFrOyAvLyAxMDAwICogNjAgKiA2MCAqIDI0ICogNywgbmVnYXRlIGRzdFxuICAgICAgICAgICAgZGVmYXVsdDogb3V0cHV0ID0gdGhpcyAtIHRoYXQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXNGbG9hdCA/IG91dHB1dCA6IGFic0Zsb29yKG91dHB1dCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9udGhEaWZmIChhLCBiKSB7XG4gICAgICAgIC8vIGRpZmZlcmVuY2UgaW4gbW9udGhzXG4gICAgICAgIHZhciB3aG9sZU1vbnRoRGlmZiA9ICgoYi55ZWFyKCkgLSBhLnllYXIoKSkgKiAxMikgKyAoYi5tb250aCgpIC0gYS5tb250aCgpKSxcbiAgICAgICAgICAgIC8vIGIgaXMgaW4gKGFuY2hvciAtIDEgbW9udGgsIGFuY2hvciArIDEgbW9udGgpXG4gICAgICAgICAgICBhbmNob3IgPSBhLmNsb25lKCkuYWRkKHdob2xlTW9udGhEaWZmLCAnbW9udGhzJyksXG4gICAgICAgICAgICBhbmNob3IyLCBhZGp1c3Q7XG5cbiAgICAgICAgaWYgKGIgLSBhbmNob3IgPCAwKSB7XG4gICAgICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiAtIDEsICdtb250aHMnKTtcbiAgICAgICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgICAgICBhZGp1c3QgPSAoYiAtIGFuY2hvcikgLyAoYW5jaG9yIC0gYW5jaG9yMik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbmNob3IyID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiArIDEsICdtb250aHMnKTtcbiAgICAgICAgICAgIC8vIGxpbmVhciBhY3Jvc3MgdGhlIG1vbnRoXG4gICAgICAgICAgICBhZGp1c3QgPSAoYiAtIGFuY2hvcikgLyAoYW5jaG9yMiAtIGFuY2hvcik7XG4gICAgICAgIH1cblxuICAgICAgICAvL2NoZWNrIGZvciBuZWdhdGl2ZSB6ZXJvLCByZXR1cm4gemVybyBpZiBuZWdhdGl2ZSB6ZXJvXG4gICAgICAgIHJldHVybiAtKHdob2xlTW9udGhEaWZmICsgYWRqdXN0KSB8fCAwO1xuICAgIH1cblxuICAgIGhvb2tzLmRlZmF1bHRGb3JtYXQgPSAnWVlZWS1NTS1ERFRISDptbTpzc1onO1xuICAgIGhvb2tzLmRlZmF1bHRGb3JtYXRVdGMgPSAnWVlZWS1NTS1ERFRISDptbTpzc1taXSc7XG5cbiAgICBmdW5jdGlvbiB0b1N0cmluZyAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkubG9jYWxlKCdlbicpLmZvcm1hdCgnZGRkIE1NTSBERCBZWVlZIEhIOm1tOnNzIFtHTVRdWlonKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0lTT1N0cmluZyhrZWVwT2Zmc2V0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1dGMgPSBrZWVwT2Zmc2V0ICE9PSB0cnVlO1xuICAgICAgICB2YXIgbSA9IHV0YyA/IHRoaXMuY2xvbmUoKS51dGMoKSA6IHRoaXM7XG4gICAgICAgIGlmIChtLnllYXIoKSA8IDAgfHwgbS55ZWFyKCkgPiA5OTk5KSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0TW9tZW50KG0sIHV0YyA/ICdZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0nIDogJ1lZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1onKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNGdW5jdGlvbihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZykpIHtcbiAgICAgICAgICAgIC8vIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBpcyB+NTB4IGZhc3RlciwgdXNlIGl0IHdoZW4gd2UgY2FuXG4gICAgICAgICAgICBpZiAodXRjKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9EYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpICsgdGhpcy51dGNPZmZzZXQoKSAqIDYwICogMTAwMCkudG9JU09TdHJpbmcoKS5yZXBsYWNlKCdaJywgZm9ybWF0TW9tZW50KG0sICdaJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQobSwgdXRjID8gJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0nIDogJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgaHVtYW4gcmVhZGFibGUgcmVwcmVzZW50YXRpb24gb2YgYSBtb21lbnQgdGhhdCBjYW5cbiAgICAgKiBhbHNvIGJlIGV2YWx1YXRlZCB0byBnZXQgYSBuZXcgbW9tZW50IHdoaWNoIGlzIHRoZSBzYW1lXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QvZG9jcy9hcGkvdXRpbC5odG1sI3V0aWxfY3VzdG9tX2luc3BlY3RfZnVuY3Rpb25fb25fb2JqZWN0c1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ21vbWVudC5pbnZhbGlkKC8qICcgKyB0aGlzLl9pICsgJyAqLyknO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmdW5jID0gJ21vbWVudCc7XG4gICAgICAgIHZhciB6b25lID0gJyc7XG4gICAgICAgIGlmICghdGhpcy5pc0xvY2FsKCkpIHtcbiAgICAgICAgICAgIGZ1bmMgPSB0aGlzLnV0Y09mZnNldCgpID09PSAwID8gJ21vbWVudC51dGMnIDogJ21vbWVudC5wYXJzZVpvbmUnO1xuICAgICAgICAgICAgem9uZSA9ICdaJztcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJlZml4ID0gJ1snICsgZnVuYyArICcoXCJdJztcbiAgICAgICAgdmFyIHllYXIgPSAoMCA8PSB0aGlzLnllYXIoKSAmJiB0aGlzLnllYXIoKSA8PSA5OTk5KSA/ICdZWVlZJyA6ICdZWVlZWVknO1xuICAgICAgICB2YXIgZGF0ZXRpbWUgPSAnLU1NLUREW1RdSEg6bW06c3MuU1NTJztcbiAgICAgICAgdmFyIHN1ZmZpeCA9IHpvbmUgKyAnW1wiKV0nO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdChwcmVmaXggKyB5ZWFyICsgZGF0ZXRpbWUgKyBzdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZvcm1hdCAoaW5wdXRTdHJpbmcpIHtcbiAgICAgICAgaWYgKCFpbnB1dFN0cmluZykge1xuICAgICAgICAgICAgaW5wdXRTdHJpbmcgPSB0aGlzLmlzVXRjKCkgPyBob29rcy5kZWZhdWx0Rm9ybWF0VXRjIDogaG9va3MuZGVmYXVsdEZvcm1hdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb3V0cHV0ID0gZm9ybWF0TW9tZW50KHRoaXMsIGlucHV0U3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLnBvc3Rmb3JtYXQob3V0cHV0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmcm9tICh0aW1lLCB3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgICAgICgoaXNNb21lbnQodGltZSkgJiYgdGltZS5pc1ZhbGlkKCkpIHx8XG4gICAgICAgICAgICAgICAgIGNyZWF0ZUxvY2FsKHRpbWUpLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7dG86IHRoaXMsIGZyb206IHRpbWV9KS5sb2NhbGUodGhpcy5sb2NhbGUoKSkuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmcm9tTm93ICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb20oY3JlYXRlTG9jYWwoKSwgd2l0aG91dFN1ZmZpeCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG8gKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmXG4gICAgICAgICAgICAgICAgKChpc01vbWVudCh0aW1lKSAmJiB0aW1lLmlzVmFsaWQoKSkgfHxcbiAgICAgICAgICAgICAgICAgY3JlYXRlTG9jYWwodGltZSkuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKHtmcm9tOiB0aGlzLCB0bzogdGltZX0pLmxvY2FsZSh0aGlzLmxvY2FsZSgpKS5odW1hbml6ZSghd2l0aG91dFN1ZmZpeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvTm93ICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIC8vIElmIHBhc3NlZCBhIGxvY2FsZSBrZXksIGl0IHdpbGwgc2V0IHRoZSBsb2NhbGUgZm9yIHRoaXNcbiAgICAvLyBpbnN0YW5jZS4gIE90aGVyd2lzZSwgaXQgd2lsbCByZXR1cm4gdGhlIGxvY2FsZSBjb25maWd1cmF0aW9uXG4gICAgLy8gdmFyaWFibGVzIGZvciB0aGlzIGluc3RhbmNlLlxuICAgIGZ1bmN0aW9uIGxvY2FsZSAoa2V5KSB7XG4gICAgICAgIHZhciBuZXdMb2NhbGVEYXRhO1xuXG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZS5fYWJicjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0xvY2FsZURhdGEgPSBnZXRMb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIGlmIChuZXdMb2NhbGVEYXRhICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2NhbGUgPSBuZXdMb2NhbGVEYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbGFuZyA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudCgpLmxhbmcoKSBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkLCB1c2UgbW9tZW50KCkubG9jYWxlRGF0YSgpIHRvIGdldCB0aGUgbGFuZ3VhZ2UgY29uZmlndXJhdGlvbi4gVXNlIG1vbWVudCgpLmxvY2FsZSgpIHRvIGNoYW5nZSBsYW5ndWFnZXMuJyxcbiAgICAgICAgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVEYXRhICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdGFydE9mICh1bml0cykge1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgLy8gdGhlIGZvbGxvd2luZyBzd2l0Y2ggaW50ZW50aW9uYWxseSBvbWl0cyBicmVhayBrZXl3b3Jkc1xuICAgICAgICAvLyB0byB1dGlsaXplIGZhbGxpbmcgdGhyb3VnaCB0aGUgY2FzZXMuXG4gICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMubW9udGgoMCk7XG4gICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlKDEpO1xuICAgICAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgY2FzZSAnaXNvV2Vlayc6XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5ob3VycygwKTtcbiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovXG4gICAgICAgICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgICAgICAgICB0aGlzLm1pbnV0ZXMoMCk7XG4gICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNlY29uZHMoMCk7XG4gICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICB0aGlzLm1pbGxpc2Vjb25kcygwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdlZWtzIGFyZSBhIHNwZWNpYWwgY2FzZVxuICAgICAgICBpZiAodW5pdHMgPT09ICd3ZWVrJykge1xuICAgICAgICAgICAgdGhpcy53ZWVrZGF5KDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ2lzb1dlZWsnKSB7XG4gICAgICAgICAgICB0aGlzLmlzb1dlZWtkYXkoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBxdWFydGVycyBhcmUgYWxzbyBzcGVjaWFsXG4gICAgICAgIGlmICh1bml0cyA9PT0gJ3F1YXJ0ZXInKSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoKE1hdGguZmxvb3IodGhpcy5tb250aCgpIC8gMykgKiAzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVuZE9mICh1bml0cykge1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgaWYgKHVuaXRzID09PSB1bmRlZmluZWQgfHwgdW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gJ2RhdGUnIGlzIGFuIGFsaWFzIGZvciAnZGF5Jywgc28gaXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgc3VjaC5cbiAgICAgICAgaWYgKHVuaXRzID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgIHVuaXRzID0gJ2RheSc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zdGFydE9mKHVuaXRzKS5hZGQoMSwgKHVuaXRzID09PSAnaXNvV2VlaycgPyAnd2VlaycgOiB1bml0cykpLnN1YnRyYWN0KDEsICdtcycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbHVlT2YgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZC52YWx1ZU9mKCkgLSAoKHRoaXMuX29mZnNldCB8fCAwKSAqIDYwMDAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1bml4ICgpIHtcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IodGhpcy52YWx1ZU9mKCkgLyAxMDAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0RhdGUgKCkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvQXJyYXkgKCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiBbbS55ZWFyKCksIG0ubW9udGgoKSwgbS5kYXRlKCksIG0uaG91cigpLCBtLm1pbnV0ZSgpLCBtLnNlY29uZCgpLCBtLm1pbGxpc2Vjb25kKCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvT2JqZWN0ICgpIHtcbiAgICAgICAgdmFyIG0gPSB0aGlzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeWVhcnM6IG0ueWVhcigpLFxuICAgICAgICAgICAgbW9udGhzOiBtLm1vbnRoKCksXG4gICAgICAgICAgICBkYXRlOiBtLmRhdGUoKSxcbiAgICAgICAgICAgIGhvdXJzOiBtLmhvdXJzKCksXG4gICAgICAgICAgICBtaW51dGVzOiBtLm1pbnV0ZXMoKSxcbiAgICAgICAgICAgIHNlY29uZHM6IG0uc2Vjb25kcygpLFxuICAgICAgICAgICAgbWlsbGlzZWNvbmRzOiBtLm1pbGxpc2Vjb25kcygpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgICAgICAgLy8gbmV3IERhdGUoTmFOKS50b0pTT04oKSA9PT0gbnVsbFxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLnRvSVNPU3RyaW5nKCkgOiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQkMiAoKSB7XG4gICAgICAgIHJldHVybiBpc1ZhbGlkKHRoaXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNpbmdGbGFncyAoKSB7XG4gICAgICAgIHJldHVybiBleHRlbmQoe30sIGdldFBhcnNpbmdGbGFncyh0aGlzKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW52YWxpZEF0ICgpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhcnNpbmdGbGFncyh0aGlzKS5vdmVyZmxvdztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGlvbkRhdGEoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbnB1dDogdGhpcy5faSxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5fZixcbiAgICAgICAgICAgIGxvY2FsZTogdGhpcy5fbG9jYWxlLFxuICAgICAgICAgICAgaXNVVEM6IHRoaXMuX2lzVVRDLFxuICAgICAgICAgICAgc3RyaWN0OiB0aGlzLl9zdHJpY3RcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ2dnJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2Vla1llYXIoKSAlIDEwMDtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnR0cnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc29XZWVrWWVhcigpICUgMTAwO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gYWRkV2Vla1llYXJGb3JtYXRUb2tlbiAodG9rZW4sIGdldHRlcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbigwLCBbdG9rZW4sIHRva2VuLmxlbmd0aF0sIDAsIGdldHRlcik7XG4gICAgfVxuXG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignZ2dnZycsICAgICAnd2Vla1llYXInKTtcbiAgICBhZGRXZWVrWWVhckZvcm1hdFRva2VuKCdnZ2dnZycsICAgICd3ZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ0dHR0cnLCAgJ2lzb1dlZWtZZWFyJyk7XG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHR0cnLCAnaXNvV2Vla1llYXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnd2Vla1llYXInLCAnZ2cnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWtZZWFyJywgJ0dHJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd3ZWVrWWVhcicsIDEpO1xuICAgIGFkZFVuaXRQcmlvcml0eSgnaXNvV2Vla1llYXInLCAxKTtcblxuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignRycsICAgICAgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2cnLCAgICAgIG1hdGNoU2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCdHRycsICAgICBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignZ2cnLCAgICAgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHR0cnLCAgIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdnZ2dnJywgICBtYXRjaDF0bzQsIG1hdGNoNCk7XG4gICAgYWRkUmVnZXhUb2tlbignR0dHR0cnLCAgbWF0Y2gxdG82LCBtYXRjaDYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnZ2dnJywgIG1hdGNoMXRvNiwgbWF0Y2g2KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZ2dnZycsICdnZ2dnZycsICdHR0dHJywgJ0dHR0dHJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuLnN1YnN0cigwLCAyKV0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2dnJywgJ0dHJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuXSA9IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWtZZWFyIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gZ2V0U2V0V2Vla1llYXJIZWxwZXIuY2FsbCh0aGlzLFxuICAgICAgICAgICAgICAgIGlucHV0LFxuICAgICAgICAgICAgICAgIHRoaXMud2VlaygpLFxuICAgICAgICAgICAgICAgIHRoaXMud2Vla2RheSgpLFxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdyxcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3kpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldElTT1dlZWtZZWFyIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gZ2V0U2V0V2Vla1llYXJIZWxwZXIuY2FsbCh0aGlzLFxuICAgICAgICAgICAgICAgIGlucHV0LCB0aGlzLmlzb1dlZWsoKSwgdGhpcy5pc29XZWVrZGF5KCksIDEsIDQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldElTT1dlZWtzSW5ZZWFyICgpIHtcbiAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMueWVhcigpLCAxLCA0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRXZWVrc0luWWVhciAoKSB7XG4gICAgICAgIHZhciB3ZWVrSW5mbyA9IHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrO1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIHdlZWtJbmZvLmRvdywgd2Vla0luZm8uZG95KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRXZWVrWWVhckhlbHBlcihpbnB1dCwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtzVGFyZ2V0O1xuICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtPZlllYXIodGhpcywgZG93LCBkb3kpLnllYXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3ZWVrc1RhcmdldCA9IHdlZWtzSW5ZZWFyKGlucHV0LCBkb3csIGRveSk7XG4gICAgICAgICAgICBpZiAod2VlayA+IHdlZWtzVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgd2VlayA9IHdlZWtzVGFyZ2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNldFdlZWtBbGwuY2FsbCh0aGlzLCBpbnB1dCwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0V2Vla0FsbCh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIGRheU9mWWVhckRhdGEgPSBkYXlPZlllYXJGcm9tV2Vla3Mod2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSxcbiAgICAgICAgICAgIGRhdGUgPSBjcmVhdGVVVENEYXRlKGRheU9mWWVhckRhdGEueWVhciwgMCwgZGF5T2ZZZWFyRGF0YS5kYXlPZlllYXIpO1xuXG4gICAgICAgIHRoaXMueWVhcihkYXRlLmdldFVUQ0Z1bGxZZWFyKCkpO1xuICAgICAgICB0aGlzLm1vbnRoKGRhdGUuZ2V0VVRDTW9udGgoKSk7XG4gICAgICAgIHRoaXMuZGF0ZShkYXRlLmdldFVUQ0RhdGUoKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdRJywgMCwgJ1FvJywgJ3F1YXJ0ZXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygncXVhcnRlcicsICdRJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdxdWFydGVyJywgNyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdRJywgbWF0Y2gxKTtcbiAgICBhZGRQYXJzZVRva2VuKCdRJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNT05USF0gPSAodG9JbnQoaW5wdXQpIC0gMSkgKiAzO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0UXVhcnRlciAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyBNYXRoLmNlaWwoKHRoaXMubW9udGgoKSArIDEpIC8gMykgOiB0aGlzLm1vbnRoKChpbnB1dCAtIDEpICogMyArIHRoaXMubW9udGgoKSAlIDMpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdEJywgWydERCcsIDJdLCAnRG8nLCAnZGF0ZScpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXRlJywgJ0QnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXRlJywgOSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdEJywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignREQnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignRG8nLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgICAgIHJldHVybiBpc1N0cmljdCA/XG4gICAgICAgICAgKGxvY2FsZS5fZGF5T2ZNb250aE9yZGluYWxQYXJzZSB8fCBsb2NhbGUuX29yZGluYWxQYXJzZSkgOlxuICAgICAgICAgIGxvY2FsZS5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQ7XG4gICAgfSk7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnRCcsICdERCddLCBEQVRFKTtcbiAgICBhZGRQYXJzZVRva2VuKCdEbycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbREFURV0gPSB0b0ludChpbnB1dC5tYXRjaChtYXRjaDF0bzIpWzBdKTtcbiAgICB9KTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXREYXlPZk1vbnRoID0gbWFrZUdldFNldCgnRGF0ZScsIHRydWUpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0RERCcsIFsnRERERCcsIDNdLCAnREREbycsICdkYXlPZlllYXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnZGF5T2ZZZWFyJywgJ0RERCcpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RheU9mWWVhcicsIDQpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignREREJywgIG1hdGNoMXRvMyk7XG4gICAgYWRkUmVnZXhUb2tlbignRERERCcsIG1hdGNoMyk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ0RERCcsICdEREREJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldERheU9mWWVhciAoaW5wdXQpIHtcbiAgICAgICAgdmFyIGRheU9mWWVhciA9IE1hdGgucm91bmQoKHRoaXMuY2xvbmUoKS5zdGFydE9mKCdkYXknKSAtIHRoaXMuY2xvbmUoKS5zdGFydE9mKCd5ZWFyJykpIC8gODY0ZTUpICsgMTtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyBkYXlPZlllYXIgOiB0aGlzLmFkZCgoaW5wdXQgLSBkYXlPZlllYXIpLCAnZCcpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdtJywgWydtbScsIDJdLCAwLCAnbWludXRlJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21pbnV0ZScsICdtJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdtaW51dGUnLCAxNCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdtJywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignbW0nLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ20nLCAnbW0nXSwgTUlOVVRFKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRNaW51dGUgPSBtYWtlR2V0U2V0KCdNaW51dGVzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3MnLCBbJ3NzJywgMl0sIDAsICdzZWNvbmQnKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnc2Vjb25kJywgJ3MnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3NlY29uZCcsIDE1KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3MnLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdzcycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRQYXJzZVRva2VuKFsncycsICdzcyddLCBTRUNPTkQpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldFNlY29uZCA9IG1ha2VHZXRTZXQoJ1NlY29uZHMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignUycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIH5+KHRoaXMubWlsbGlzZWNvbmQoKSAvIDEwMCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIH5+KHRoaXMubWlsbGlzZWNvbmQoKSAvIDEwKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTJywgM10sIDAsICdtaWxsaXNlY29uZCcpO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTUycsIDRdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTJywgNV0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTUycsIDZdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTUycsIDddLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1NTJywgOF0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1NTUycsIDldLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDAwO1xuICAgIH0pO1xuXG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21pbGxpc2Vjb25kJywgJ21zJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdtaWxsaXNlY29uZCcsIDE2KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1MnLCAgICBtYXRjaDF0bzMsIG1hdGNoMSk7XG4gICAgYWRkUmVnZXhUb2tlbignU1MnLCAgIG1hdGNoMXRvMywgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdTU1MnLCAgbWF0Y2gxdG8zLCBtYXRjaDMpO1xuXG4gICAgdmFyIHRva2VuO1xuICAgIGZvciAodG9rZW4gPSAnU1NTUyc7IHRva2VuLmxlbmd0aCA8PSA5OyB0b2tlbiArPSAnUycpIHtcbiAgICAgICAgYWRkUmVnZXhUb2tlbih0b2tlbiwgbWF0Y2hVbnNpZ25lZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VNcyhpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTUlMTElTRUNPTkRdID0gdG9JbnQoKCcwLicgKyBpbnB1dCkgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBmb3IgKHRva2VuID0gJ1MnOyB0b2tlbi5sZW5ndGggPD0gOTsgdG9rZW4gKz0gJ1MnKSB7XG4gICAgICAgIGFkZFBhcnNlVG9rZW4odG9rZW4sIHBhcnNlTXMpO1xuICAgIH1cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0TWlsbGlzZWNvbmQgPSBtYWtlR2V0U2V0KCdNaWxsaXNlY29uZHMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigneicsICAwLCAwLCAnem9uZUFiYnInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignenonLCAwLCAwLCAnem9uZU5hbWUnKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFpvbmVBYmJyICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gJ1VUQycgOiAnJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRab25lTmFtZSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1VUQyA/ICdDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZScgOiAnJztcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8gPSBNb21lbnQucHJvdG90eXBlO1xuXG4gICAgcHJvdG8uYWRkICAgICAgICAgICAgICAgPSBhZGQ7XG4gICAgcHJvdG8uY2FsZW5kYXIgICAgICAgICAgPSBjYWxlbmRhciQxO1xuICAgIHByb3RvLmNsb25lICAgICAgICAgICAgID0gY2xvbmU7XG4gICAgcHJvdG8uZGlmZiAgICAgICAgICAgICAgPSBkaWZmO1xuICAgIHByb3RvLmVuZE9mICAgICAgICAgICAgID0gZW5kT2Y7XG4gICAgcHJvdG8uZm9ybWF0ICAgICAgICAgICAgPSBmb3JtYXQ7XG4gICAgcHJvdG8uZnJvbSAgICAgICAgICAgICAgPSBmcm9tO1xuICAgIHByb3RvLmZyb21Ob3cgICAgICAgICAgID0gZnJvbU5vdztcbiAgICBwcm90by50byAgICAgICAgICAgICAgICA9IHRvO1xuICAgIHByb3RvLnRvTm93ICAgICAgICAgICAgID0gdG9Ob3c7XG4gICAgcHJvdG8uZ2V0ICAgICAgICAgICAgICAgPSBzdHJpbmdHZXQ7XG4gICAgcHJvdG8uaW52YWxpZEF0ICAgICAgICAgPSBpbnZhbGlkQXQ7XG4gICAgcHJvdG8uaXNBZnRlciAgICAgICAgICAgPSBpc0FmdGVyO1xuICAgIHByb3RvLmlzQmVmb3JlICAgICAgICAgID0gaXNCZWZvcmU7XG4gICAgcHJvdG8uaXNCZXR3ZWVuICAgICAgICAgPSBpc0JldHdlZW47XG4gICAgcHJvdG8uaXNTYW1lICAgICAgICAgICAgPSBpc1NhbWU7XG4gICAgcHJvdG8uaXNTYW1lT3JBZnRlciAgICAgPSBpc1NhbWVPckFmdGVyO1xuICAgIHByb3RvLmlzU2FtZU9yQmVmb3JlICAgID0gaXNTYW1lT3JCZWZvcmU7XG4gICAgcHJvdG8uaXNWYWxpZCAgICAgICAgICAgPSBpc1ZhbGlkJDI7XG4gICAgcHJvdG8ubGFuZyAgICAgICAgICAgICAgPSBsYW5nO1xuICAgIHByb3RvLmxvY2FsZSAgICAgICAgICAgID0gbG9jYWxlO1xuICAgIHByb3RvLmxvY2FsZURhdGEgICAgICAgID0gbG9jYWxlRGF0YTtcbiAgICBwcm90by5tYXggICAgICAgICAgICAgICA9IHByb3RvdHlwZU1heDtcbiAgICBwcm90by5taW4gICAgICAgICAgICAgICA9IHByb3RvdHlwZU1pbjtcbiAgICBwcm90by5wYXJzaW5nRmxhZ3MgICAgICA9IHBhcnNpbmdGbGFncztcbiAgICBwcm90by5zZXQgICAgICAgICAgICAgICA9IHN0cmluZ1NldDtcbiAgICBwcm90by5zdGFydE9mICAgICAgICAgICA9IHN0YXJ0T2Y7XG4gICAgcHJvdG8uc3VidHJhY3QgICAgICAgICAgPSBzdWJ0cmFjdDtcbiAgICBwcm90by50b0FycmF5ICAgICAgICAgICA9IHRvQXJyYXk7XG4gICAgcHJvdG8udG9PYmplY3QgICAgICAgICAgPSB0b09iamVjdDtcbiAgICBwcm90by50b0RhdGUgICAgICAgICAgICA9IHRvRGF0ZTtcbiAgICBwcm90by50b0lTT1N0cmluZyAgICAgICA9IHRvSVNPU3RyaW5nO1xuICAgIHByb3RvLmluc3BlY3QgICAgICAgICAgID0gaW5zcGVjdDtcbiAgICBwcm90by50b0pTT04gICAgICAgICAgICA9IHRvSlNPTjtcbiAgICBwcm90by50b1N0cmluZyAgICAgICAgICA9IHRvU3RyaW5nO1xuICAgIHByb3RvLnVuaXggICAgICAgICAgICAgID0gdW5peDtcbiAgICBwcm90by52YWx1ZU9mICAgICAgICAgICA9IHZhbHVlT2Y7XG4gICAgcHJvdG8uY3JlYXRpb25EYXRhICAgICAgPSBjcmVhdGlvbkRhdGE7XG4gICAgcHJvdG8ueWVhciAgICAgICA9IGdldFNldFllYXI7XG4gICAgcHJvdG8uaXNMZWFwWWVhciA9IGdldElzTGVhcFllYXI7XG4gICAgcHJvdG8ud2Vla1llYXIgICAgPSBnZXRTZXRXZWVrWWVhcjtcbiAgICBwcm90by5pc29XZWVrWWVhciA9IGdldFNldElTT1dlZWtZZWFyO1xuICAgIHByb3RvLnF1YXJ0ZXIgPSBwcm90by5xdWFydGVycyA9IGdldFNldFF1YXJ0ZXI7XG4gICAgcHJvdG8ubW9udGggICAgICAgPSBnZXRTZXRNb250aDtcbiAgICBwcm90by5kYXlzSW5Nb250aCA9IGdldERheXNJbk1vbnRoO1xuICAgIHByb3RvLndlZWsgICAgICAgICAgID0gcHJvdG8ud2Vla3MgICAgICAgID0gZ2V0U2V0V2VlaztcbiAgICBwcm90by5pc29XZWVrICAgICAgICA9IHByb3RvLmlzb1dlZWtzICAgICA9IGdldFNldElTT1dlZWs7XG4gICAgcHJvdG8ud2Vla3NJblllYXIgICAgPSBnZXRXZWVrc0luWWVhcjtcbiAgICBwcm90by5pc29XZWVrc0luWWVhciA9IGdldElTT1dlZWtzSW5ZZWFyO1xuICAgIHByb3RvLmRhdGUgICAgICAgPSBnZXRTZXREYXlPZk1vbnRoO1xuICAgIHByb3RvLmRheSAgICAgICAgPSBwcm90by5kYXlzICAgICAgICAgICAgID0gZ2V0U2V0RGF5T2ZXZWVrO1xuICAgIHByb3RvLndlZWtkYXkgICAgPSBnZXRTZXRMb2NhbGVEYXlPZldlZWs7XG4gICAgcHJvdG8uaXNvV2Vla2RheSA9IGdldFNldElTT0RheU9mV2VlaztcbiAgICBwcm90by5kYXlPZlllYXIgID0gZ2V0U2V0RGF5T2ZZZWFyO1xuICAgIHByb3RvLmhvdXIgPSBwcm90by5ob3VycyA9IGdldFNldEhvdXI7XG4gICAgcHJvdG8ubWludXRlID0gcHJvdG8ubWludXRlcyA9IGdldFNldE1pbnV0ZTtcbiAgICBwcm90by5zZWNvbmQgPSBwcm90by5zZWNvbmRzID0gZ2V0U2V0U2Vjb25kO1xuICAgIHByb3RvLm1pbGxpc2Vjb25kID0gcHJvdG8ubWlsbGlzZWNvbmRzID0gZ2V0U2V0TWlsbGlzZWNvbmQ7XG4gICAgcHJvdG8udXRjT2Zmc2V0ICAgICAgICAgICAgPSBnZXRTZXRPZmZzZXQ7XG4gICAgcHJvdG8udXRjICAgICAgICAgICAgICAgICAgPSBzZXRPZmZzZXRUb1VUQztcbiAgICBwcm90by5sb2NhbCAgICAgICAgICAgICAgICA9IHNldE9mZnNldFRvTG9jYWw7XG4gICAgcHJvdG8ucGFyc2Vab25lICAgICAgICAgICAgPSBzZXRPZmZzZXRUb1BhcnNlZE9mZnNldDtcbiAgICBwcm90by5oYXNBbGlnbmVkSG91ck9mZnNldCA9IGhhc0FsaWduZWRIb3VyT2Zmc2V0O1xuICAgIHByb3RvLmlzRFNUICAgICAgICAgICAgICAgID0gaXNEYXlsaWdodFNhdmluZ1RpbWU7XG4gICAgcHJvdG8uaXNMb2NhbCAgICAgICAgICAgICAgPSBpc0xvY2FsO1xuICAgIHByb3RvLmlzVXRjT2Zmc2V0ICAgICAgICAgID0gaXNVdGNPZmZzZXQ7XG4gICAgcHJvdG8uaXNVdGMgICAgICAgICAgICAgICAgPSBpc1V0YztcbiAgICBwcm90by5pc1VUQyAgICAgICAgICAgICAgICA9IGlzVXRjO1xuICAgIHByb3RvLnpvbmVBYmJyID0gZ2V0Wm9uZUFiYnI7XG4gICAgcHJvdG8uem9uZU5hbWUgPSBnZXRab25lTmFtZTtcbiAgICBwcm90by5kYXRlcyAgPSBkZXByZWNhdGUoJ2RhdGVzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBkYXRlIGluc3RlYWQuJywgZ2V0U2V0RGF5T2ZNb250aCk7XG4gICAgcHJvdG8ubW9udGhzID0gZGVwcmVjYXRlKCdtb250aHMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbnRoIGluc3RlYWQnLCBnZXRTZXRNb250aCk7XG4gICAgcHJvdG8ueWVhcnMgID0gZGVwcmVjYXRlKCd5ZWFycyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgeWVhciBpbnN0ZWFkJywgZ2V0U2V0WWVhcik7XG4gICAgcHJvdG8uem9uZSAgID0gZGVwcmVjYXRlKCdtb21lbnQoKS56b25lIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQoKS51dGNPZmZzZXQgaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy96b25lLycsIGdldFNldFpvbmUpO1xuICAgIHByb3RvLmlzRFNUU2hpZnRlZCA9IGRlcHJlY2F0ZSgnaXNEU1RTaGlmdGVkIGlzIGRlcHJlY2F0ZWQuIFNlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2RzdC1zaGlmdGVkLyBmb3IgbW9yZSBpbmZvcm1hdGlvbicsIGlzRGF5bGlnaHRTYXZpbmdUaW1lU2hpZnRlZCk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVVbml4IChpbnB1dCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwoaW5wdXQgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJblpvbmUgKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKS5wYXJzZVpvbmUoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcmVQYXJzZVBvc3RGb3JtYXQgKHN0cmluZykge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgIH1cblxuICAgIHZhciBwcm90byQxID0gTG9jYWxlLnByb3RvdHlwZTtcblxuICAgIHByb3RvJDEuY2FsZW5kYXIgICAgICAgID0gY2FsZW5kYXI7XG4gICAgcHJvdG8kMS5sb25nRGF0ZUZvcm1hdCAgPSBsb25nRGF0ZUZvcm1hdDtcbiAgICBwcm90byQxLmludmFsaWREYXRlICAgICA9IGludmFsaWREYXRlO1xuICAgIHByb3RvJDEub3JkaW5hbCAgICAgICAgID0gb3JkaW5hbDtcbiAgICBwcm90byQxLnByZXBhcnNlICAgICAgICA9IHByZVBhcnNlUG9zdEZvcm1hdDtcbiAgICBwcm90byQxLnBvc3Rmb3JtYXQgICAgICA9IHByZVBhcnNlUG9zdEZvcm1hdDtcbiAgICBwcm90byQxLnJlbGF0aXZlVGltZSAgICA9IHJlbGF0aXZlVGltZTtcbiAgICBwcm90byQxLnBhc3RGdXR1cmUgICAgICA9IHBhc3RGdXR1cmU7XG4gICAgcHJvdG8kMS5zZXQgICAgICAgICAgICAgPSBzZXQ7XG5cbiAgICBwcm90byQxLm1vbnRocyAgICAgICAgICAgID0gICAgICAgIGxvY2FsZU1vbnRocztcbiAgICBwcm90byQxLm1vbnRoc1Nob3J0ICAgICAgID0gICAgICAgIGxvY2FsZU1vbnRoc1Nob3J0O1xuICAgIHByb3RvJDEubW9udGhzUGFyc2UgICAgICAgPSAgICAgICAgbG9jYWxlTW9udGhzUGFyc2U7XG4gICAgcHJvdG8kMS5tb250aHNSZWdleCAgICAgICA9IG1vbnRoc1JlZ2V4O1xuICAgIHByb3RvJDEubW9udGhzU2hvcnRSZWdleCAgPSBtb250aHNTaG9ydFJlZ2V4O1xuICAgIHByb3RvJDEud2VlayA9IGxvY2FsZVdlZWs7XG4gICAgcHJvdG8kMS5maXJzdERheU9mWWVhciA9IGxvY2FsZUZpcnN0RGF5T2ZZZWFyO1xuICAgIHByb3RvJDEuZmlyc3REYXlPZldlZWsgPSBsb2NhbGVGaXJzdERheU9mV2VlaztcblxuICAgIHByb3RvJDEud2Vla2RheXMgICAgICAgPSAgICAgICAgbG9jYWxlV2Vla2RheXM7XG4gICAgcHJvdG8kMS53ZWVrZGF5c01pbiAgICA9ICAgICAgICBsb2NhbGVXZWVrZGF5c01pbjtcbiAgICBwcm90byQxLndlZWtkYXlzU2hvcnQgID0gICAgICAgIGxvY2FsZVdlZWtkYXlzU2hvcnQ7XG4gICAgcHJvdG8kMS53ZWVrZGF5c1BhcnNlICA9ICAgICAgICBsb2NhbGVXZWVrZGF5c1BhcnNlO1xuXG4gICAgcHJvdG8kMS53ZWVrZGF5c1JlZ2V4ICAgICAgID0gICAgICAgIHdlZWtkYXlzUmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrZGF5c1Nob3J0UmVnZXggID0gICAgICAgIHdlZWtkYXlzU2hvcnRSZWdleDtcbiAgICBwcm90byQxLndlZWtkYXlzTWluUmVnZXggICAgPSAgICAgICAgd2Vla2RheXNNaW5SZWdleDtcblxuICAgIHByb3RvJDEuaXNQTSA9IGxvY2FsZUlzUE07XG4gICAgcHJvdG8kMS5tZXJpZGllbSA9IGxvY2FsZU1lcmlkaWVtO1xuXG4gICAgZnVuY3Rpb24gZ2V0JDEgKGZvcm1hdCwgaW5kZXgsIGZpZWxkLCBzZXR0ZXIpIHtcbiAgICAgICAgdmFyIGxvY2FsZSA9IGdldExvY2FsZSgpO1xuICAgICAgICB2YXIgdXRjID0gY3JlYXRlVVRDKCkuc2V0KHNldHRlciwgaW5kZXgpO1xuICAgICAgICByZXR1cm4gbG9jYWxlW2ZpZWxkXSh1dGMsIGZvcm1hdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdE1vbnRoc0ltcGwgKGZvcm1hdCwgaW5kZXgsIGZpZWxkKSB7XG4gICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcblxuICAgICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldCQxKGZvcm1hdCwgaW5kZXgsIGZpZWxkLCAnbW9udGgnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpO1xuICAgICAgICB2YXIgb3V0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaV0gPSBnZXQkMShmb3JtYXQsIGksIGZpZWxkLCAnbW9udGgnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cblxuICAgIC8vICgpXG4gICAgLy8gKDUpXG4gICAgLy8gKGZtdCwgNSlcbiAgICAvLyAoZm10KVxuICAgIC8vICh0cnVlKVxuICAgIC8vICh0cnVlLCA1KVxuICAgIC8vICh0cnVlLCBmbXQsIDUpXG4gICAgLy8gKHRydWUsIGZtdClcbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXNJbXBsIChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsIGZpZWxkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbG9jYWxlU29ydGVkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtYXQgPSBsb2NhbGVTb3J0ZWQ7XG4gICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGxvY2FsZVNvcnRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoaXNOdW1iZXIoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGxvY2FsZSA9IGdldExvY2FsZSgpLFxuICAgICAgICAgICAgc2hpZnQgPSBsb2NhbGVTb3J0ZWQgPyBsb2NhbGUuX3dlZWsuZG93IDogMDtcblxuICAgICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldCQxKGZvcm1hdCwgKGluZGV4ICsgc2hpZnQpICUgNywgZmllbGQsICdkYXknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpO1xuICAgICAgICB2YXIgb3V0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpXSA9IGdldCQxKGZvcm1hdCwgKGkgKyBzaGlmdCkgJSA3LCBmaWVsZCwgJ2RheScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdE1vbnRocyAoZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgJ21vbnRocycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RNb250aHNTaG9ydCAoZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdE1vbnRoc0ltcGwoZm9ybWF0LCBpbmRleCwgJ21vbnRoc1Nob3J0Jyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzIChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCAnd2Vla2RheXMnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXNTaG9ydCAobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzU2hvcnQnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXNNaW4gKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5c01pbicpO1xuICAgIH1cblxuICAgIGdldFNldEdsb2JhbExvY2FsZSgnZW4nLCB7XG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSh0aHxzdHxuZHxyZCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodG9JbnQobnVtYmVyICUgMTAwIC8gMTApID09PSAxKSA/ICd0aCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAxKSA/ICdzdCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAyKSA/ICduZCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAzKSA/ICdyZCcgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gU2lkZSBlZmZlY3QgaW1wb3J0c1xuXG4gICAgaG9va3MubGFuZyA9IGRlcHJlY2F0ZSgnbW9tZW50LmxhbmcgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGUgaW5zdGVhZC4nLCBnZXRTZXRHbG9iYWxMb2NhbGUpO1xuICAgIGhvb2tzLmxhbmdEYXRhID0gZGVwcmVjYXRlKCdtb21lbnQubGFuZ0RhdGEgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGVEYXRhIGluc3RlYWQuJywgZ2V0TG9jYWxlKTtcblxuICAgIHZhciBtYXRoQWJzID0gTWF0aC5hYnM7XG5cbiAgICBmdW5jdGlvbiBhYnMgKCkge1xuICAgICAgICB2YXIgZGF0YSAgICAgICAgICAgPSB0aGlzLl9kYXRhO1xuXG4gICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyA9IG1hdGhBYnModGhpcy5fbWlsbGlzZWNvbmRzKTtcbiAgICAgICAgdGhpcy5fZGF5cyAgICAgICAgID0gbWF0aEFicyh0aGlzLl9kYXlzKTtcbiAgICAgICAgdGhpcy5fbW9udGhzICAgICAgID0gbWF0aEFicyh0aGlzLl9tb250aHMpO1xuXG4gICAgICAgIGRhdGEubWlsbGlzZWNvbmRzICA9IG1hdGhBYnMoZGF0YS5taWxsaXNlY29uZHMpO1xuICAgICAgICBkYXRhLnNlY29uZHMgICAgICAgPSBtYXRoQWJzKGRhdGEuc2Vjb25kcyk7XG4gICAgICAgIGRhdGEubWludXRlcyAgICAgICA9IG1hdGhBYnMoZGF0YS5taW51dGVzKTtcbiAgICAgICAgZGF0YS5ob3VycyAgICAgICAgID0gbWF0aEFicyhkYXRhLmhvdXJzKTtcbiAgICAgICAgZGF0YS5tb250aHMgICAgICAgID0gbWF0aEFicyhkYXRhLm1vbnRocyk7XG4gICAgICAgIGRhdGEueWVhcnMgICAgICAgICA9IG1hdGhBYnMoZGF0YS55ZWFycyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU3VidHJhY3QkMSAoZHVyYXRpb24sIGlucHV0LCB2YWx1ZSwgZGlyZWN0aW9uKSB7XG4gICAgICAgIHZhciBvdGhlciA9IGNyZWF0ZUR1cmF0aW9uKGlucHV0LCB2YWx1ZSk7XG5cbiAgICAgICAgZHVyYXRpb24uX21pbGxpc2Vjb25kcyArPSBkaXJlY3Rpb24gKiBvdGhlci5fbWlsbGlzZWNvbmRzO1xuICAgICAgICBkdXJhdGlvbi5fZGF5cyAgICAgICAgICs9IGRpcmVjdGlvbiAqIG90aGVyLl9kYXlzO1xuICAgICAgICBkdXJhdGlvbi5fbW9udGhzICAgICAgICs9IGRpcmVjdGlvbiAqIG90aGVyLl9tb250aHM7XG5cbiAgICAgICAgcmV0dXJuIGR1cmF0aW9uLl9idWJibGUoKTtcbiAgICB9XG5cbiAgICAvLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBhZGQoMSwgJ3MnKSBvciBhZGQoZHVyYXRpb24pXG4gICAgZnVuY3Rpb24gYWRkJDEgKGlucHV0LCB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gYWRkU3VidHJhY3QkMSh0aGlzLCBpbnB1dCwgdmFsdWUsIDEpO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnRzIG9ubHkgMi4wLXN0eWxlIHN1YnRyYWN0KDEsICdzJykgb3Igc3VidHJhY3QoZHVyYXRpb24pXG4gICAgZnVuY3Rpb24gc3VidHJhY3QkMSAoaW5wdXQsIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBhZGRTdWJ0cmFjdCQxKHRoaXMsIGlucHV0LCB2YWx1ZSwgLTEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic0NlaWwgKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGJ1YmJsZSAoKSB7XG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSB0aGlzLl9taWxsaXNlY29uZHM7XG4gICAgICAgIHZhciBkYXlzICAgICAgICAgPSB0aGlzLl9kYXlzO1xuICAgICAgICB2YXIgbW9udGhzICAgICAgID0gdGhpcy5fbW9udGhzO1xuICAgICAgICB2YXIgZGF0YSAgICAgICAgID0gdGhpcy5fZGF0YTtcbiAgICAgICAgdmFyIHNlY29uZHMsIG1pbnV0ZXMsIGhvdXJzLCB5ZWFycywgbW9udGhzRnJvbURheXM7XG5cbiAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIG1peCBvZiBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgdmFsdWVzLCBidWJibGUgZG93biBmaXJzdFxuICAgICAgICAvLyBjaGVjazogaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzIxNjZcbiAgICAgICAgaWYgKCEoKG1pbGxpc2Vjb25kcyA+PSAwICYmIGRheXMgPj0gMCAmJiBtb250aHMgPj0gMCkgfHxcbiAgICAgICAgICAgICAgICAobWlsbGlzZWNvbmRzIDw9IDAgJiYgZGF5cyA8PSAwICYmIG1vbnRocyA8PSAwKSkpIHtcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kcyArPSBhYnNDZWlsKG1vbnRoc1RvRGF5cyhtb250aHMpICsgZGF5cykgKiA4NjRlNTtcbiAgICAgICAgICAgIGRheXMgPSAwO1xuICAgICAgICAgICAgbW9udGhzID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBidWJibGVzIHVwIHZhbHVlcywgc2VlIHRoZSB0ZXN0cyBmb3JcbiAgICAgICAgLy8gZXhhbXBsZXMgb2Ygd2hhdCB0aGF0IG1lYW5zLlxuICAgICAgICBkYXRhLm1pbGxpc2Vjb25kcyA9IG1pbGxpc2Vjb25kcyAlIDEwMDA7XG5cbiAgICAgICAgc2Vjb25kcyAgICAgICAgICAgPSBhYnNGbG9vcihtaWxsaXNlY29uZHMgLyAxMDAwKTtcbiAgICAgICAgZGF0YS5zZWNvbmRzICAgICAgPSBzZWNvbmRzICUgNjA7XG5cbiAgICAgICAgbWludXRlcyAgICAgICAgICAgPSBhYnNGbG9vcihzZWNvbmRzIC8gNjApO1xuICAgICAgICBkYXRhLm1pbnV0ZXMgICAgICA9IG1pbnV0ZXMgJSA2MDtcblxuICAgICAgICBob3VycyAgICAgICAgICAgICA9IGFic0Zsb29yKG1pbnV0ZXMgLyA2MCk7XG4gICAgICAgIGRhdGEuaG91cnMgICAgICAgID0gaG91cnMgJSAyNDtcblxuICAgICAgICBkYXlzICs9IGFic0Zsb29yKGhvdXJzIC8gMjQpO1xuXG4gICAgICAgIC8vIGNvbnZlcnQgZGF5cyB0byBtb250aHNcbiAgICAgICAgbW9udGhzRnJvbURheXMgPSBhYnNGbG9vcihkYXlzVG9Nb250aHMoZGF5cykpO1xuICAgICAgICBtb250aHMgKz0gbW9udGhzRnJvbURheXM7XG4gICAgICAgIGRheXMgLT0gYWJzQ2VpbChtb250aHNUb0RheXMobW9udGhzRnJvbURheXMpKTtcblxuICAgICAgICAvLyAxMiBtb250aHMgLT4gMSB5ZWFyXG4gICAgICAgIHllYXJzID0gYWJzRmxvb3IobW9udGhzIC8gMTIpO1xuICAgICAgICBtb250aHMgJT0gMTI7XG5cbiAgICAgICAgZGF0YS5kYXlzICAgPSBkYXlzO1xuICAgICAgICBkYXRhLm1vbnRocyA9IG1vbnRocztcbiAgICAgICAgZGF0YS55ZWFycyAgPSB5ZWFycztcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkYXlzVG9Nb250aHMgKGRheXMpIHtcbiAgICAgICAgLy8gNDAwIHllYXJzIGhhdmUgMTQ2MDk3IGRheXMgKHRha2luZyBpbnRvIGFjY291bnQgbGVhcCB5ZWFyIHJ1bGVzKVxuICAgICAgICAvLyA0MDAgeWVhcnMgaGF2ZSAxMiBtb250aHMgPT09IDQ4MDBcbiAgICAgICAgcmV0dXJuIGRheXMgKiA0ODAwIC8gMTQ2MDk3O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoc1RvRGF5cyAobW9udGhzKSB7XG4gICAgICAgIC8vIHRoZSByZXZlcnNlIG9mIGRheXNUb01vbnRoc1xuICAgICAgICByZXR1cm4gbW9udGhzICogMTQ2MDk3IC8gNDgwMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcyAodW5pdHMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF5cztcbiAgICAgICAgdmFyIG1vbnRocztcbiAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IHRoaXMuX21pbGxpc2Vjb25kcztcblxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcblxuICAgICAgICBpZiAodW5pdHMgPT09ICdtb250aCcgfHwgdW5pdHMgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgZGF5cyAgID0gdGhpcy5fZGF5cyAgICsgbWlsbGlzZWNvbmRzIC8gODY0ZTU7XG4gICAgICAgICAgICBtb250aHMgPSB0aGlzLl9tb250aHMgKyBkYXlzVG9Nb250aHMoZGF5cyk7XG4gICAgICAgICAgICByZXR1cm4gdW5pdHMgPT09ICdtb250aCcgPyBtb250aHMgOiBtb250aHMgLyAxMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGhhbmRsZSBtaWxsaXNlY29uZHMgc2VwYXJhdGVseSBiZWNhdXNlIG9mIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIChpc3N1ZSAjMTg2NylcbiAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzICsgTWF0aC5yb3VuZChtb250aHNUb0RheXModGhpcy5fbW9udGhzKSk7XG4gICAgICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnd2VlaycgICA6IHJldHVybiBkYXlzIC8gNyAgICAgKyBtaWxsaXNlY29uZHMgLyA2MDQ4ZTU7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGF5JyAgICA6IHJldHVybiBkYXlzICAgICAgICAgKyBtaWxsaXNlY29uZHMgLyA4NjRlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdob3VyJyAgIDogcmV0dXJuIGRheXMgKiAyNCAgICArIG1pbGxpc2Vjb25kcyAvIDM2ZTU7XG4gICAgICAgICAgICAgICAgY2FzZSAnbWludXRlJyA6IHJldHVybiBkYXlzICogMTQ0MCAgKyBtaWxsaXNlY29uZHMgLyA2ZTQ7XG4gICAgICAgICAgICAgICAgY2FzZSAnc2Vjb25kJyA6IHJldHVybiBkYXlzICogODY0MDAgKyBtaWxsaXNlY29uZHMgLyAxMDAwO1xuICAgICAgICAgICAgICAgIC8vIE1hdGguZmxvb3IgcHJldmVudHMgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgaGVyZVxuICAgICAgICAgICAgICAgIGNhc2UgJ21pbGxpc2Vjb25kJzogcmV0dXJuIE1hdGguZmxvb3IoZGF5cyAqIDg2NGU1KSArIG1pbGxpc2Vjb25kcztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gdW5pdCAnICsgdW5pdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogVXNlIHRoaXMuYXMoJ21zJyk/XG4gICAgZnVuY3Rpb24gdmFsdWVPZiQxICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzICtcbiAgICAgICAgICAgIHRoaXMuX2RheXMgKiA4NjRlNSArXG4gICAgICAgICAgICAodGhpcy5fbW9udGhzICUgMTIpICogMjU5MmU2ICtcbiAgICAgICAgICAgIHRvSW50KHRoaXMuX21vbnRocyAvIDEyKSAqIDMxNTM2ZTZcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlQXMgKGFsaWFzKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcyhhbGlhcyk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGFzTWlsbGlzZWNvbmRzID0gbWFrZUFzKCdtcycpO1xuICAgIHZhciBhc1NlY29uZHMgICAgICA9IG1ha2VBcygncycpO1xuICAgIHZhciBhc01pbnV0ZXMgICAgICA9IG1ha2VBcygnbScpO1xuICAgIHZhciBhc0hvdXJzICAgICAgICA9IG1ha2VBcygnaCcpO1xuICAgIHZhciBhc0RheXMgICAgICAgICA9IG1ha2VBcygnZCcpO1xuICAgIHZhciBhc1dlZWtzICAgICAgICA9IG1ha2VBcygndycpO1xuICAgIHZhciBhc01vbnRocyAgICAgICA9IG1ha2VBcygnTScpO1xuICAgIHZhciBhc1llYXJzICAgICAgICA9IG1ha2VBcygneScpO1xuXG4gICAgZnVuY3Rpb24gY2xvbmUkMSAoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih0aGlzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXQkMiAodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXNbdW5pdHMgKyAncyddKCkgOiBOYU47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUdldHRlcihuYW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9kYXRhW25hbWVdIDogTmFOO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBtaWxsaXNlY29uZHMgPSBtYWtlR2V0dGVyKCdtaWxsaXNlY29uZHMnKTtcbiAgICB2YXIgc2Vjb25kcyAgICAgID0gbWFrZUdldHRlcignc2Vjb25kcycpO1xuICAgIHZhciBtaW51dGVzICAgICAgPSBtYWtlR2V0dGVyKCdtaW51dGVzJyk7XG4gICAgdmFyIGhvdXJzICAgICAgICA9IG1ha2VHZXR0ZXIoJ2hvdXJzJyk7XG4gICAgdmFyIGRheXMgICAgICAgICA9IG1ha2VHZXR0ZXIoJ2RheXMnKTtcbiAgICB2YXIgbW9udGhzICAgICAgID0gbWFrZUdldHRlcignbW9udGhzJyk7XG4gICAgdmFyIHllYXJzICAgICAgICA9IG1ha2VHZXR0ZXIoJ3llYXJzJyk7XG5cbiAgICBmdW5jdGlvbiB3ZWVrcyAoKSB7XG4gICAgICAgIHJldHVybiBhYnNGbG9vcih0aGlzLmRheXMoKSAvIDcpO1xuICAgIH1cblxuICAgIHZhciByb3VuZCA9IE1hdGgucm91bmQ7XG4gICAgdmFyIHRocmVzaG9sZHMgPSB7XG4gICAgICAgIHNzOiA0NCwgICAgICAgICAvLyBhIGZldyBzZWNvbmRzIHRvIHNlY29uZHNcbiAgICAgICAgcyA6IDQ1LCAgICAgICAgIC8vIHNlY29uZHMgdG8gbWludXRlXG4gICAgICAgIG0gOiA0NSwgICAgICAgICAvLyBtaW51dGVzIHRvIGhvdXJcbiAgICAgICAgaCA6IDIyLCAgICAgICAgIC8vIGhvdXJzIHRvIGRheVxuICAgICAgICBkIDogMjYsICAgICAgICAgLy8gZGF5cyB0byBtb250aFxuICAgICAgICBNIDogMTEgICAgICAgICAgLy8gbW9udGhzIHRvIHllYXJcbiAgICB9O1xuXG4gICAgLy8gaGVscGVyIGZ1bmN0aW9uIGZvciBtb21lbnQuZm4uZnJvbSwgbW9tZW50LmZuLmZyb21Ob3csIGFuZCBtb21lbnQuZHVyYXRpb24uZm4uaHVtYW5pemVcbiAgICBmdW5jdGlvbiBzdWJzdGl0dXRlVGltZUFnbyhzdHJpbmcsIG51bWJlciwgd2l0aG91dFN1ZmZpeCwgaXNGdXR1cmUsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLnJlbGF0aXZlVGltZShudW1iZXIgfHwgMSwgISF3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUkMSAocG9zTmVnRHVyYXRpb24sIHdpdGhvdXRTdWZmaXgsIGxvY2FsZSkge1xuICAgICAgICB2YXIgZHVyYXRpb24gPSBjcmVhdGVEdXJhdGlvbihwb3NOZWdEdXJhdGlvbikuYWJzKCk7XG4gICAgICAgIHZhciBzZWNvbmRzICA9IHJvdW5kKGR1cmF0aW9uLmFzKCdzJykpO1xuICAgICAgICB2YXIgbWludXRlcyAgPSByb3VuZChkdXJhdGlvbi5hcygnbScpKTtcbiAgICAgICAgdmFyIGhvdXJzICAgID0gcm91bmQoZHVyYXRpb24uYXMoJ2gnKSk7XG4gICAgICAgIHZhciBkYXlzICAgICA9IHJvdW5kKGR1cmF0aW9uLmFzKCdkJykpO1xuICAgICAgICB2YXIgbW9udGhzICAgPSByb3VuZChkdXJhdGlvbi5hcygnTScpKTtcbiAgICAgICAgdmFyIHllYXJzICAgID0gcm91bmQoZHVyYXRpb24uYXMoJ3knKSk7XG5cbiAgICAgICAgdmFyIGEgPSBzZWNvbmRzIDw9IHRocmVzaG9sZHMuc3MgJiYgWydzJywgc2Vjb25kc10gIHx8XG4gICAgICAgICAgICAgICAgc2Vjb25kcyA8IHRocmVzaG9sZHMucyAgICYmIFsnc3MnLCBzZWNvbmRzXSB8fFxuICAgICAgICAgICAgICAgIG1pbnV0ZXMgPD0gMSAgICAgICAgICAgICAmJiBbJ20nXSAgICAgICAgICAgfHxcbiAgICAgICAgICAgICAgICBtaW51dGVzIDwgdGhyZXNob2xkcy5tICAgJiYgWydtbScsIG1pbnV0ZXNdIHx8XG4gICAgICAgICAgICAgICAgaG91cnMgICA8PSAxICAgICAgICAgICAgICYmIFsnaCddICAgICAgICAgICB8fFxuICAgICAgICAgICAgICAgIGhvdXJzICAgPCB0aHJlc2hvbGRzLmggICAmJiBbJ2hoJywgaG91cnNdICAgfHxcbiAgICAgICAgICAgICAgICBkYXlzICAgIDw9IDEgICAgICAgICAgICAgJiYgWydkJ10gICAgICAgICAgIHx8XG4gICAgICAgICAgICAgICAgZGF5cyAgICA8IHRocmVzaG9sZHMuZCAgICYmIFsnZGQnLCBkYXlzXSAgICB8fFxuICAgICAgICAgICAgICAgIG1vbnRocyAgPD0gMSAgICAgICAgICAgICAmJiBbJ00nXSAgICAgICAgICAgfHxcbiAgICAgICAgICAgICAgICBtb250aHMgIDwgdGhyZXNob2xkcy5NICAgJiYgWydNTScsIG1vbnRoc10gIHx8XG4gICAgICAgICAgICAgICAgeWVhcnMgICA8PSAxICAgICAgICAgICAgICYmIFsneSddICAgICAgICAgICB8fCBbJ3l5JywgeWVhcnNdO1xuXG4gICAgICAgIGFbMl0gPSB3aXRob3V0U3VmZml4O1xuICAgICAgICBhWzNdID0gK3Bvc05lZ0R1cmF0aW9uID4gMDtcbiAgICAgICAgYVs0XSA9IGxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHN1YnN0aXR1dGVUaW1lQWdvLmFwcGx5KG51bGwsIGEpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBzZXQgdGhlIHJvdW5kaW5nIGZ1bmN0aW9uIGZvciByZWxhdGl2ZSB0aW1lIHN0cmluZ3NcbiAgICBmdW5jdGlvbiBnZXRTZXRSZWxhdGl2ZVRpbWVSb3VuZGluZyAocm91bmRpbmdGdW5jdGlvbikge1xuICAgICAgICBpZiAocm91bmRpbmdGdW5jdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcm91bmQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZihyb3VuZGluZ0Z1bmN0aW9uKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcm91bmQgPSByb3VuZGluZ0Z1bmN0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBzZXQgYSB0aHJlc2hvbGQgZm9yIHJlbGF0aXZlIHRpbWUgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGdldFNldFJlbGF0aXZlVGltZVRocmVzaG9sZCAodGhyZXNob2xkLCBsaW1pdCkge1xuICAgICAgICBpZiAodGhyZXNob2xkc1t0aHJlc2hvbGRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGltaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRocmVzaG9sZHNbdGhyZXNob2xkXTtcbiAgICAgICAgfVxuICAgICAgICB0aHJlc2hvbGRzW3RocmVzaG9sZF0gPSBsaW1pdDtcbiAgICAgICAgaWYgKHRocmVzaG9sZCA9PT0gJ3MnKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGRzLnNzID0gbGltaXQgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGh1bWFuaXplICh3aXRoU3VmZml4KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGxvY2FsZSA9IHRoaXMubG9jYWxlRGF0YSgpO1xuICAgICAgICB2YXIgb3V0cHV0ID0gcmVsYXRpdmVUaW1lJDEodGhpcywgIXdpdGhTdWZmaXgsIGxvY2FsZSk7XG5cbiAgICAgICAgaWYgKHdpdGhTdWZmaXgpIHtcbiAgICAgICAgICAgIG91dHB1dCA9IGxvY2FsZS5wYXN0RnV0dXJlKCt0aGlzLCBvdXRwdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxvY2FsZS5wb3N0Zm9ybWF0KG91dHB1dCk7XG4gICAgfVxuXG4gICAgdmFyIGFicyQxID0gTWF0aC5hYnM7XG5cbiAgICBmdW5jdGlvbiBzaWduKHgpIHtcbiAgICAgICAgcmV0dXJuICgoeCA+IDApIC0gKHggPCAwKSkgfHwgK3g7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JU09TdHJpbmckMSgpIHtcbiAgICAgICAgLy8gZm9yIElTTyBzdHJpbmdzIHdlIGRvIG5vdCB1c2UgdGhlIG5vcm1hbCBidWJibGluZyBydWxlczpcbiAgICAgICAgLy8gICogbWlsbGlzZWNvbmRzIGJ1YmJsZSB1cCB1bnRpbCB0aGV5IGJlY29tZSBob3Vyc1xuICAgICAgICAvLyAgKiBkYXlzIGRvIG5vdCBidWJibGUgYXQgYWxsXG4gICAgICAgIC8vICAqIG1vbnRocyBidWJibGUgdXAgdW50aWwgdGhleSBiZWNvbWUgeWVhcnNcbiAgICAgICAgLy8gVGhpcyBpcyBiZWNhdXNlIHRoZXJlIGlzIG5vIGNvbnRleHQtZnJlZSBjb252ZXJzaW9uIGJldHdlZW4gaG91cnMgYW5kIGRheXNcbiAgICAgICAgLy8gKHRoaW5rIG9mIGNsb2NrIGNoYW5nZXMpXG4gICAgICAgIC8vIGFuZCBhbHNvIG5vdCBiZXR3ZWVuIGRheXMgYW5kIG1vbnRocyAoMjgtMzEgZGF5cyBwZXIgbW9udGgpXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNlY29uZHMgPSBhYnMkMSh0aGlzLl9taWxsaXNlY29uZHMpIC8gMTAwMDtcbiAgICAgICAgdmFyIGRheXMgICAgICAgICA9IGFicyQxKHRoaXMuX2RheXMpO1xuICAgICAgICB2YXIgbW9udGhzICAgICAgID0gYWJzJDEodGhpcy5fbW9udGhzKTtcbiAgICAgICAgdmFyIG1pbnV0ZXMsIGhvdXJzLCB5ZWFycztcblxuICAgICAgICAvLyAzNjAwIHNlY29uZHMgLT4gNjAgbWludXRlcyAtPiAxIGhvdXJcbiAgICAgICAgbWludXRlcyAgICAgICAgICAgPSBhYnNGbG9vcihzZWNvbmRzIC8gNjApO1xuICAgICAgICBob3VycyAgICAgICAgICAgICA9IGFic0Zsb29yKG1pbnV0ZXMgLyA2MCk7XG4gICAgICAgIHNlY29uZHMgJT0gNjA7XG4gICAgICAgIG1pbnV0ZXMgJT0gNjA7XG5cbiAgICAgICAgLy8gMTIgbW9udGhzIC0+IDEgeWVhclxuICAgICAgICB5ZWFycyAgPSBhYnNGbG9vcihtb250aHMgLyAxMik7XG4gICAgICAgIG1vbnRocyAlPSAxMjtcblxuXG4gICAgICAgIC8vIGluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9kb3JkaWxsZS9tb21lbnQtaXNvZHVyYXRpb24vYmxvYi9tYXN0ZXIvbW9tZW50Lmlzb2R1cmF0aW9uLmpzXG4gICAgICAgIHZhciBZID0geWVhcnM7XG4gICAgICAgIHZhciBNID0gbW9udGhzO1xuICAgICAgICB2YXIgRCA9IGRheXM7XG4gICAgICAgIHZhciBoID0gaG91cnM7XG4gICAgICAgIHZhciBtID0gbWludXRlcztcbiAgICAgICAgdmFyIHMgPSBzZWNvbmRzID8gc2Vjb25kcy50b0ZpeGVkKDMpLnJlcGxhY2UoL1xcLj8wKyQvLCAnJykgOiAnJztcbiAgICAgICAgdmFyIHRvdGFsID0gdGhpcy5hc1NlY29uZHMoKTtcblxuICAgICAgICBpZiAoIXRvdGFsKSB7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSBzYW1lIGFzIEMjJ3MgKE5vZGEpIGFuZCBweXRob24gKGlzb2RhdGUpLi4uXG4gICAgICAgICAgICAvLyBidXQgbm90IG90aGVyIEpTIChnb29nLmRhdGUpXG4gICAgICAgICAgICByZXR1cm4gJ1AwRCc7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdG90YWxTaWduID0gdG90YWwgPCAwID8gJy0nIDogJyc7XG4gICAgICAgIHZhciB5bVNpZ24gPSBzaWduKHRoaXMuX21vbnRocykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG4gICAgICAgIHZhciBkYXlzU2lnbiA9IHNpZ24odGhpcy5fZGF5cykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG4gICAgICAgIHZhciBobXNTaWduID0gc2lnbih0aGlzLl9taWxsaXNlY29uZHMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuXG4gICAgICAgIHJldHVybiB0b3RhbFNpZ24gKyAnUCcgK1xuICAgICAgICAgICAgKFkgPyB5bVNpZ24gKyBZICsgJ1knIDogJycpICtcbiAgICAgICAgICAgIChNID8geW1TaWduICsgTSArICdNJyA6ICcnKSArXG4gICAgICAgICAgICAoRCA/IGRheXNTaWduICsgRCArICdEJyA6ICcnKSArXG4gICAgICAgICAgICAoKGggfHwgbSB8fCBzKSA/ICdUJyA6ICcnKSArXG4gICAgICAgICAgICAoaCA/IGhtc1NpZ24gKyBoICsgJ0gnIDogJycpICtcbiAgICAgICAgICAgIChtID8gaG1zU2lnbiArIG0gKyAnTScgOiAnJykgK1xuICAgICAgICAgICAgKHMgPyBobXNTaWduICsgcyArICdTJyA6ICcnKTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8kMiA9IER1cmF0aW9uLnByb3RvdHlwZTtcblxuICAgIHByb3RvJDIuaXNWYWxpZCAgICAgICAgPSBpc1ZhbGlkJDE7XG4gICAgcHJvdG8kMi5hYnMgICAgICAgICAgICA9IGFicztcbiAgICBwcm90byQyLmFkZCAgICAgICAgICAgID0gYWRkJDE7XG4gICAgcHJvdG8kMi5zdWJ0cmFjdCAgICAgICA9IHN1YnRyYWN0JDE7XG4gICAgcHJvdG8kMi5hcyAgICAgICAgICAgICA9IGFzO1xuICAgIHByb3RvJDIuYXNNaWxsaXNlY29uZHMgPSBhc01pbGxpc2Vjb25kcztcbiAgICBwcm90byQyLmFzU2Vjb25kcyAgICAgID0gYXNTZWNvbmRzO1xuICAgIHByb3RvJDIuYXNNaW51dGVzICAgICAgPSBhc01pbnV0ZXM7XG4gICAgcHJvdG8kMi5hc0hvdXJzICAgICAgICA9IGFzSG91cnM7XG4gICAgcHJvdG8kMi5hc0RheXMgICAgICAgICA9IGFzRGF5cztcbiAgICBwcm90byQyLmFzV2Vla3MgICAgICAgID0gYXNXZWVrcztcbiAgICBwcm90byQyLmFzTW9udGhzICAgICAgID0gYXNNb250aHM7XG4gICAgcHJvdG8kMi5hc1llYXJzICAgICAgICA9IGFzWWVhcnM7XG4gICAgcHJvdG8kMi52YWx1ZU9mICAgICAgICA9IHZhbHVlT2YkMTtcbiAgICBwcm90byQyLl9idWJibGUgICAgICAgID0gYnViYmxlO1xuICAgIHByb3RvJDIuY2xvbmUgICAgICAgICAgPSBjbG9uZSQxO1xuICAgIHByb3RvJDIuZ2V0ICAgICAgICAgICAgPSBnZXQkMjtcbiAgICBwcm90byQyLm1pbGxpc2Vjb25kcyAgID0gbWlsbGlzZWNvbmRzO1xuICAgIHByb3RvJDIuc2Vjb25kcyAgICAgICAgPSBzZWNvbmRzO1xuICAgIHByb3RvJDIubWludXRlcyAgICAgICAgPSBtaW51dGVzO1xuICAgIHByb3RvJDIuaG91cnMgICAgICAgICAgPSBob3VycztcbiAgICBwcm90byQyLmRheXMgICAgICAgICAgID0gZGF5cztcbiAgICBwcm90byQyLndlZWtzICAgICAgICAgID0gd2Vla3M7XG4gICAgcHJvdG8kMi5tb250aHMgICAgICAgICA9IG1vbnRocztcbiAgICBwcm90byQyLnllYXJzICAgICAgICAgID0geWVhcnM7XG4gICAgcHJvdG8kMi5odW1hbml6ZSAgICAgICA9IGh1bWFuaXplO1xuICAgIHByb3RvJDIudG9JU09TdHJpbmcgICAgPSB0b0lTT1N0cmluZyQxO1xuICAgIHByb3RvJDIudG9TdHJpbmcgICAgICAgPSB0b0lTT1N0cmluZyQxO1xuICAgIHByb3RvJDIudG9KU09OICAgICAgICAgPSB0b0lTT1N0cmluZyQxO1xuICAgIHByb3RvJDIubG9jYWxlICAgICAgICAgPSBsb2NhbGU7XG4gICAgcHJvdG8kMi5sb2NhbGVEYXRhICAgICA9IGxvY2FsZURhdGE7XG5cbiAgICBwcm90byQyLnRvSXNvU3RyaW5nID0gZGVwcmVjYXRlKCd0b0lzb1N0cmluZygpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgdG9JU09TdHJpbmcoKSBpbnN0ZWFkIChub3RpY2UgdGhlIGNhcGl0YWxzKScsIHRvSVNPU3RyaW5nJDEpO1xuICAgIHByb3RvJDIubGFuZyA9IGxhbmc7XG5cbiAgICAvLyBTaWRlIGVmZmVjdCBpbXBvcnRzXG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignWCcsIDAsIDAsICd1bml4Jyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3gnLCAwLCAwLCAndmFsdWVPZicpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigneCcsIG1hdGNoU2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCdYJywgbWF0Y2hUaW1lc3RhbXApO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1gnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUocGFyc2VGbG9hdChpbnB1dCwgMTApICogMTAwMCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbigneCcsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSh0b0ludChpbnB1dCkpO1xuICAgIH0pO1xuXG4gICAgLy8gU2lkZSBlZmZlY3QgaW1wb3J0c1xuXG5cbiAgICBob29rcy52ZXJzaW9uID0gJzIuMjIuMic7XG5cbiAgICBzZXRIb29rQ2FsbGJhY2soY3JlYXRlTG9jYWwpO1xuXG4gICAgaG9va3MuZm4gICAgICAgICAgICAgICAgICAgID0gcHJvdG87XG4gICAgaG9va3MubWluICAgICAgICAgICAgICAgICAgID0gbWluO1xuICAgIGhvb2tzLm1heCAgICAgICAgICAgICAgICAgICA9IG1heDtcbiAgICBob29rcy5ub3cgICAgICAgICAgICAgICAgICAgPSBub3c7XG4gICAgaG9va3MudXRjICAgICAgICAgICAgICAgICAgID0gY3JlYXRlVVRDO1xuICAgIGhvb2tzLnVuaXggICAgICAgICAgICAgICAgICA9IGNyZWF0ZVVuaXg7XG4gICAgaG9va3MubW9udGhzICAgICAgICAgICAgICAgID0gbGlzdE1vbnRocztcbiAgICBob29rcy5pc0RhdGUgICAgICAgICAgICAgICAgPSBpc0RhdGU7XG4gICAgaG9va3MubG9jYWxlICAgICAgICAgICAgICAgID0gZ2V0U2V0R2xvYmFsTG9jYWxlO1xuICAgIGhvb2tzLmludmFsaWQgICAgICAgICAgICAgICA9IGNyZWF0ZUludmFsaWQ7XG4gICAgaG9va3MuZHVyYXRpb24gICAgICAgICAgICAgID0gY3JlYXRlRHVyYXRpb247XG4gICAgaG9va3MuaXNNb21lbnQgICAgICAgICAgICAgID0gaXNNb21lbnQ7XG4gICAgaG9va3Mud2Vla2RheXMgICAgICAgICAgICAgID0gbGlzdFdlZWtkYXlzO1xuICAgIGhvb2tzLnBhcnNlWm9uZSAgICAgICAgICAgICA9IGNyZWF0ZUluWm9uZTtcbiAgICBob29rcy5sb2NhbGVEYXRhICAgICAgICAgICAgPSBnZXRMb2NhbGU7XG4gICAgaG9va3MuaXNEdXJhdGlvbiAgICAgICAgICAgID0gaXNEdXJhdGlvbjtcbiAgICBob29rcy5tb250aHNTaG9ydCAgICAgICAgICAgPSBsaXN0TW9udGhzU2hvcnQ7XG4gICAgaG9va3Mud2Vla2RheXNNaW4gICAgICAgICAgID0gbGlzdFdlZWtkYXlzTWluO1xuICAgIGhvb2tzLmRlZmluZUxvY2FsZSAgICAgICAgICA9IGRlZmluZUxvY2FsZTtcbiAgICBob29rcy51cGRhdGVMb2NhbGUgICAgICAgICAgPSB1cGRhdGVMb2NhbGU7XG4gICAgaG9va3MubG9jYWxlcyAgICAgICAgICAgICAgID0gbGlzdExvY2FsZXM7XG4gICAgaG9va3Mud2Vla2RheXNTaG9ydCAgICAgICAgID0gbGlzdFdlZWtkYXlzU2hvcnQ7XG4gICAgaG9va3Mubm9ybWFsaXplVW5pdHMgICAgICAgID0gbm9ybWFsaXplVW5pdHM7XG4gICAgaG9va3MucmVsYXRpdmVUaW1lUm91bmRpbmcgID0gZ2V0U2V0UmVsYXRpdmVUaW1lUm91bmRpbmc7XG4gICAgaG9va3MucmVsYXRpdmVUaW1lVGhyZXNob2xkID0gZ2V0U2V0UmVsYXRpdmVUaW1lVGhyZXNob2xkO1xuICAgIGhvb2tzLmNhbGVuZGFyRm9ybWF0ICAgICAgICA9IGdldENhbGVuZGFyRm9ybWF0O1xuICAgIGhvb2tzLnByb3RvdHlwZSAgICAgICAgICAgICA9IHByb3RvO1xuXG4gICAgLy8gY3VycmVudGx5IEhUTUw1IGlucHV0IHR5cGUgb25seSBzdXBwb3J0cyAyNC1ob3VyIGZvcm1hdHNcbiAgICBob29rcy5IVE1MNV9GTVQgPSB7XG4gICAgICAgIERBVEVUSU1FX0xPQ0FMOiAnWVlZWS1NTS1ERFRISDptbScsICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiAvPlxuICAgICAgICBEQVRFVElNRV9MT0NBTF9TRUNPTkRTOiAnWVlZWS1NTS1ERFRISDptbTpzcycsICAvLyA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgc3RlcD1cIjFcIiAvPlxuICAgICAgICBEQVRFVElNRV9MT0NBTF9NUzogJ1lZWVktTU0tRERUSEg6bW06c3MuU1NTJywgICAvLyA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgc3RlcD1cIjAuMDAxXCIgLz5cbiAgICAgICAgREFURTogJ1lZWVktTU0tREQnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJkYXRlXCIgLz5cbiAgICAgICAgVElNRTogJ0hIOm1tJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJ0aW1lXCIgLz5cbiAgICAgICAgVElNRV9TRUNPTkRTOiAnSEg6bW06c3MnLCAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJ0aW1lXCIgc3RlcD1cIjFcIiAvPlxuICAgICAgICBUSU1FX01TOiAnSEg6bW06c3MuU1NTJywgICAgICAgICAgICAgICAgICAgICAgICAvLyA8aW5wdXQgdHlwZT1cInRpbWVcIiBzdGVwPVwiMC4wMDFcIiAvPlxuICAgICAgICBXRUVLOiAnWVlZWS1bV11XVycsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA8aW5wdXQgdHlwZT1cIndlZWtcIiAvPlxuICAgICAgICBNT05USDogJ1lZWVktTU0nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA8aW5wdXQgdHlwZT1cIm1vbnRoXCIgLz5cbiAgICB9O1xuXG4gICAgcmV0dXJuIGhvb2tzO1xuXG59KSkpO1xuIiwibW9kdWxlLmV4cG9ydHM9e1wiMi4xNi44NDAuMS4xMDEuMy40LjEuMVwiOiBcImFlcy0xMjgtZWNiXCIsXG5cIjIuMTYuODQwLjEuMTAxLjMuNC4xLjJcIjogXCJhZXMtMTI4LWNiY1wiLFxuXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4zXCI6IFwiYWVzLTEyOC1vZmJcIixcblwiMi4xNi44NDAuMS4xMDEuMy40LjEuNFwiOiBcImFlcy0xMjgtY2ZiXCIsXG5cIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIxXCI6IFwiYWVzLTE5Mi1lY2JcIixcblwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjJcIjogXCJhZXMtMTkyLWNiY1wiLFxuXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yM1wiOiBcImFlcy0xOTItb2ZiXCIsXG5cIjIuMTYuODQwLjEuMTAxLjMuNC4xLjI0XCI6IFwiYWVzLTE5Mi1jZmJcIixcblwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDFcIjogXCJhZXMtMjU2LWVjYlwiLFxuXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MlwiOiBcImFlcy0yNTYtY2JjXCIsXG5cIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQzXCI6IFwiYWVzLTI1Ni1vZmJcIixcblwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDRcIjogXCJhZXMtMjU2LWNmYlwiXG59IiwiLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaW5kdXRueS9zZWxmLXNpZ25lZC9ibG9iL2doLXBhZ2VzL2xpYi9hc24xLmpzXG4vLyBGZWRvciwgeW91IGFyZSBhbWF6aW5nLlxuJ3VzZSBzdHJpY3QnXG5cbnZhciBhc24xID0gcmVxdWlyZSgnYXNuMS5qcycpXG5cbmV4cG9ydHMuY2VydGlmaWNhdGUgPSByZXF1aXJlKCcuL2NlcnRpZmljYXRlJylcblxudmFyIFJTQVByaXZhdGVLZXkgPSBhc24xLmRlZmluZSgnUlNBUHJpdmF0ZUtleScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ3ZlcnNpb24nKS5pbnQoKSxcbiAgICB0aGlzLmtleSgnbW9kdWx1cycpLmludCgpLFxuICAgIHRoaXMua2V5KCdwdWJsaWNFeHBvbmVudCcpLmludCgpLFxuICAgIHRoaXMua2V5KCdwcml2YXRlRXhwb25lbnQnKS5pbnQoKSxcbiAgICB0aGlzLmtleSgncHJpbWUxJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3ByaW1lMicpLmludCgpLFxuICAgIHRoaXMua2V5KCdleHBvbmVudDEnKS5pbnQoKSxcbiAgICB0aGlzLmtleSgnZXhwb25lbnQyJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ2NvZWZmaWNpZW50JykuaW50KClcbiAgKVxufSlcbmV4cG9ydHMuUlNBUHJpdmF0ZUtleSA9IFJTQVByaXZhdGVLZXlcblxudmFyIFJTQVB1YmxpY0tleSA9IGFzbjEuZGVmaW5lKCdSU0FQdWJsaWNLZXknLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCdtb2R1bHVzJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3B1YmxpY0V4cG9uZW50JykuaW50KClcbiAgKVxufSlcbmV4cG9ydHMuUlNBUHVibGljS2V5ID0gUlNBUHVibGljS2V5XG5cbnZhciBQdWJsaWNLZXkgPSBhc24xLmRlZmluZSgnU3ViamVjdFB1YmxpY0tleUluZm8nLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCdhbGdvcml0aG0nKS51c2UoQWxnb3JpdGhtSWRlbnRpZmllciksXG4gICAgdGhpcy5rZXkoJ3N1YmplY3RQdWJsaWNLZXknKS5iaXRzdHIoKVxuICApXG59KVxuZXhwb3J0cy5QdWJsaWNLZXkgPSBQdWJsaWNLZXlcblxudmFyIEFsZ29yaXRobUlkZW50aWZpZXIgPSBhc24xLmRlZmluZSgnQWxnb3JpdGhtSWRlbnRpZmllcicsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ2FsZ29yaXRobScpLm9iamlkKCksXG4gICAgdGhpcy5rZXkoJ25vbmUnKS5udWxsXygpLm9wdGlvbmFsKCksXG4gICAgdGhpcy5rZXkoJ2N1cnZlJykub2JqaWQoKS5vcHRpb25hbCgpLFxuICAgIHRoaXMua2V5KCdwYXJhbXMnKS5zZXEoKS5vYmooXG4gICAgICB0aGlzLmtleSgncCcpLmludCgpLFxuICAgICAgdGhpcy5rZXkoJ3EnKS5pbnQoKSxcbiAgICAgIHRoaXMua2V5KCdnJykuaW50KClcbiAgICApLm9wdGlvbmFsKClcbiAgKVxufSlcblxudmFyIFByaXZhdGVLZXlJbmZvID0gYXNuMS5kZWZpbmUoJ1ByaXZhdGVLZXlJbmZvJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnNlcSgpLm9iaihcbiAgICB0aGlzLmtleSgndmVyc2lvbicpLmludCgpLFxuICAgIHRoaXMua2V5KCdhbGdvcml0aG0nKS51c2UoQWxnb3JpdGhtSWRlbnRpZmllciksXG4gICAgdGhpcy5rZXkoJ3N1YmplY3RQcml2YXRlS2V5Jykub2N0c3RyKClcbiAgKVxufSlcbmV4cG9ydHMuUHJpdmF0ZUtleSA9IFByaXZhdGVLZXlJbmZvXG52YXIgRW5jcnlwdGVkUHJpdmF0ZUtleUluZm8gPSBhc24xLmRlZmluZSgnRW5jcnlwdGVkUHJpdmF0ZUtleUluZm8nLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCdhbGdvcml0aG0nKS5zZXEoKS5vYmooXG4gICAgICB0aGlzLmtleSgnaWQnKS5vYmppZCgpLFxuICAgICAgdGhpcy5rZXkoJ2RlY3J5cHQnKS5zZXEoKS5vYmooXG4gICAgICAgIHRoaXMua2V5KCdrZGUnKS5zZXEoKS5vYmooXG4gICAgICAgICAgdGhpcy5rZXkoJ2lkJykub2JqaWQoKSxcbiAgICAgICAgICB0aGlzLmtleSgna2RlcGFyYW1zJykuc2VxKCkub2JqKFxuICAgICAgICAgICAgdGhpcy5rZXkoJ3NhbHQnKS5vY3RzdHIoKSxcbiAgICAgICAgICAgIHRoaXMua2V5KCdpdGVycycpLmludCgpXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLmtleSgnY2lwaGVyJykuc2VxKCkub2JqKFxuICAgICAgICAgIHRoaXMua2V5KCdhbGdvJykub2JqaWQoKSxcbiAgICAgICAgICB0aGlzLmtleSgnaXYnKS5vY3RzdHIoKVxuICAgICAgICApXG4gICAgICApXG4gICAgKSxcbiAgICB0aGlzLmtleSgnc3ViamVjdFByaXZhdGVLZXknKS5vY3RzdHIoKVxuICApXG59KVxuXG5leHBvcnRzLkVuY3J5cHRlZFByaXZhdGVLZXkgPSBFbmNyeXB0ZWRQcml2YXRlS2V5SW5mb1xuXG52YXIgRFNBUHJpdmF0ZUtleSA9IGFzbjEuZGVmaW5lKCdEU0FQcml2YXRlS2V5JywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnNlcSgpLm9iaihcbiAgICB0aGlzLmtleSgndmVyc2lvbicpLmludCgpLFxuICAgIHRoaXMua2V5KCdwJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3EnKS5pbnQoKSxcbiAgICB0aGlzLmtleSgnZycpLmludCgpLFxuICAgIHRoaXMua2V5KCdwdWJfa2V5JykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3ByaXZfa2V5JykuaW50KClcbiAgKVxufSlcbmV4cG9ydHMuRFNBUHJpdmF0ZUtleSA9IERTQVByaXZhdGVLZXlcblxuZXhwb3J0cy5EU0FwYXJhbSA9IGFzbjEuZGVmaW5lKCdEU0FwYXJhbScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5pbnQoKVxufSlcblxudmFyIEVDUHJpdmF0ZUtleSA9IGFzbjEuZGVmaW5lKCdFQ1ByaXZhdGVLZXknLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCd2ZXJzaW9uJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3ByaXZhdGVLZXknKS5vY3RzdHIoKSxcbiAgICB0aGlzLmtleSgncGFyYW1ldGVycycpLm9wdGlvbmFsKCkuZXhwbGljaXQoMCkudXNlKEVDUGFyYW1ldGVycyksXG4gICAgdGhpcy5rZXkoJ3B1YmxpY0tleScpLm9wdGlvbmFsKCkuZXhwbGljaXQoMSkuYml0c3RyKClcbiAgKVxufSlcbmV4cG9ydHMuRUNQcml2YXRlS2V5ID0gRUNQcml2YXRlS2V5XG5cbnZhciBFQ1BhcmFtZXRlcnMgPSBhc24xLmRlZmluZSgnRUNQYXJhbWV0ZXJzJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLmNob2ljZSh7XG4gICAgbmFtZWRDdXJ2ZTogdGhpcy5vYmppZCgpXG4gIH0pXG59KVxuXG5leHBvcnRzLnNpZ25hdHVyZSA9IGFzbjEuZGVmaW5lKCdzaWduYXR1cmUnLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCdyJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3MnKS5pbnQoKVxuICApXG59KVxuIiwiLy8gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vUmFudGFuZW4vbm9kZS1kdGxzL2Jsb2IvMjVhN2RjODYxYmRhMzhjZmVhYzkzYTcyMzUwMGVlYTRmMGFjMmU4Ni9DZXJ0aWZpY2F0ZS5qc1xuLy8gdGhhbmtzIHRvIEBSYW50YW5lblxuXG4ndXNlIHN0cmljdCdcblxudmFyIGFzbiA9IHJlcXVpcmUoJ2FzbjEuanMnKVxuXG52YXIgVGltZSA9IGFzbi5kZWZpbmUoJ1RpbWUnLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuY2hvaWNlKHtcbiAgICB1dGNUaW1lOiB0aGlzLnV0Y3RpbWUoKSxcbiAgICBnZW5lcmFsVGltZTogdGhpcy5nZW50aW1lKClcbiAgfSlcbn0pXG5cbnZhciBBdHRyaWJ1dGVUeXBlVmFsdWUgPSBhc24uZGVmaW5lKCdBdHRyaWJ1dGVUeXBlVmFsdWUnLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCd0eXBlJykub2JqaWQoKSxcbiAgICB0aGlzLmtleSgndmFsdWUnKS5hbnkoKVxuICApXG59KVxuXG52YXIgQWxnb3JpdGhtSWRlbnRpZmllciA9IGFzbi5kZWZpbmUoJ0FsZ29yaXRobUlkZW50aWZpZXInLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCdhbGdvcml0aG0nKS5vYmppZCgpLFxuICAgIHRoaXMua2V5KCdwYXJhbWV0ZXJzJykub3B0aW9uYWwoKVxuICApXG59KVxuXG52YXIgU3ViamVjdFB1YmxpY0tleUluZm8gPSBhc24uZGVmaW5lKCdTdWJqZWN0UHVibGljS2V5SW5mbycsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ2FsZ29yaXRobScpLnVzZShBbGdvcml0aG1JZGVudGlmaWVyKSxcbiAgICB0aGlzLmtleSgnc3ViamVjdFB1YmxpY0tleScpLmJpdHN0cigpXG4gIClcbn0pXG5cbnZhciBSZWxhdGl2ZURpc3Rpbmd1aXNoZWROYW1lID0gYXNuLmRlZmluZSgnUmVsYXRpdmVEaXN0aW5ndWlzaGVkTmFtZScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXRvZihBdHRyaWJ1dGVUeXBlVmFsdWUpXG59KVxuXG52YXIgUkROU2VxdWVuY2UgPSBhc24uZGVmaW5lKCdSRE5TZXF1ZW5jZScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXFvZihSZWxhdGl2ZURpc3Rpbmd1aXNoZWROYW1lKVxufSlcblxudmFyIE5hbWUgPSBhc24uZGVmaW5lKCdOYW1lJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLmNob2ljZSh7XG4gICAgcmRuU2VxdWVuY2U6IHRoaXMudXNlKFJETlNlcXVlbmNlKVxuICB9KVxufSlcblxudmFyIFZhbGlkaXR5ID0gYXNuLmRlZmluZSgnVmFsaWRpdHknLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCdub3RCZWZvcmUnKS51c2UoVGltZSksXG4gICAgdGhpcy5rZXkoJ25vdEFmdGVyJykudXNlKFRpbWUpXG4gIClcbn0pXG5cbnZhciBFeHRlbnNpb24gPSBhc24uZGVmaW5lKCdFeHRlbnNpb24nLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCdleHRuSUQnKS5vYmppZCgpLFxuICAgIHRoaXMua2V5KCdjcml0aWNhbCcpLmJvb2woKS5kZWYoZmFsc2UpLFxuICAgIHRoaXMua2V5KCdleHRuVmFsdWUnKS5vY3RzdHIoKVxuICApXG59KVxuXG52YXIgVEJTQ2VydGlmaWNhdGUgPSBhc24uZGVmaW5lKCdUQlNDZXJ0aWZpY2F0ZScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ3ZlcnNpb24nKS5leHBsaWNpdCgwKS5pbnQoKSxcbiAgICB0aGlzLmtleSgnc2VyaWFsTnVtYmVyJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3NpZ25hdHVyZScpLnVzZShBbGdvcml0aG1JZGVudGlmaWVyKSxcbiAgICB0aGlzLmtleSgnaXNzdWVyJykudXNlKE5hbWUpLFxuICAgIHRoaXMua2V5KCd2YWxpZGl0eScpLnVzZShWYWxpZGl0eSksXG4gICAgdGhpcy5rZXkoJ3N1YmplY3QnKS51c2UoTmFtZSksXG4gICAgdGhpcy5rZXkoJ3N1YmplY3RQdWJsaWNLZXlJbmZvJykudXNlKFN1YmplY3RQdWJsaWNLZXlJbmZvKSxcbiAgICB0aGlzLmtleSgnaXNzdWVyVW5pcXVlSUQnKS5pbXBsaWNpdCgxKS5iaXRzdHIoKS5vcHRpb25hbCgpLFxuICAgIHRoaXMua2V5KCdzdWJqZWN0VW5pcXVlSUQnKS5pbXBsaWNpdCgyKS5iaXRzdHIoKS5vcHRpb25hbCgpLFxuICAgIHRoaXMua2V5KCdleHRlbnNpb25zJykuZXhwbGljaXQoMykuc2Vxb2YoRXh0ZW5zaW9uKS5vcHRpb25hbCgpXG4gIClcbn0pXG5cbnZhciBYNTA5Q2VydGlmaWNhdGUgPSBhc24uZGVmaW5lKCdYNTA5Q2VydGlmaWNhdGUnLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCd0YnNDZXJ0aWZpY2F0ZScpLnVzZShUQlNDZXJ0aWZpY2F0ZSksXG4gICAgdGhpcy5rZXkoJ3NpZ25hdHVyZUFsZ29yaXRobScpLnVzZShBbGdvcml0aG1JZGVudGlmaWVyKSxcbiAgICB0aGlzLmtleSgnc2lnbmF0dXJlVmFsdWUnKS5iaXRzdHIoKVxuICApXG59KVxuXG5tb2R1bGUuZXhwb3J0cyA9IFg1MDlDZXJ0aWZpY2F0ZVxuIiwiLy8gYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGF0aWwvcGVtc3RyaXBcbnZhciBmaW5kUHJvYyA9IC9Qcm9jLVR5cGU6IDQsRU5DUllQVEVEW1xcblxccl0rREVLLUluZm86IEFFUy0oKD86MTI4KXwoPzoxOTIpfCg/OjI1NikpLUNCQywoWzAtOUEtSF0rKVtcXG5cXHJdKyhbMC05QS16XFxuXFxyXFwrXFwvXFw9XSspW1xcblxccl0rL21cbnZhciBzdGFydFJlZ2V4ID0gL14tLS0tLUJFR0lOICgoPzouKiBLRVkpfENFUlRJRklDQVRFKS0tLS0tL21cbnZhciBmdWxsUmVnZXggPSAvXi0tLS0tQkVHSU4gKCg/Oi4qIEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0oWzAtOUEtelxcblxcclxcK1xcL1xcPV0rKS0tLS0tRU5EIFxcMS0tLS0tJC9tXG52YXIgZXZwID0gcmVxdWlyZSgnZXZwX2J5dGVzdG9rZXknKVxudmFyIGNpcGhlcnMgPSByZXF1aXJlKCdicm93c2VyaWZ5LWFlcycpXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChva2V5LCBwYXNzd29yZCkge1xuICB2YXIga2V5ID0gb2tleS50b1N0cmluZygpXG4gIHZhciBtYXRjaCA9IGtleS5tYXRjaChmaW5kUHJvYylcbiAgdmFyIGRlY3J5cHRlZFxuICBpZiAoIW1hdGNoKSB7XG4gICAgdmFyIG1hdGNoMiA9IGtleS5tYXRjaChmdWxsUmVnZXgpXG4gICAgZGVjcnlwdGVkID0gbmV3IEJ1ZmZlcihtYXRjaDJbMl0ucmVwbGFjZSgvW1xcclxcbl0vZywgJycpLCAnYmFzZTY0JylcbiAgfSBlbHNlIHtcbiAgICB2YXIgc3VpdGUgPSAnYWVzJyArIG1hdGNoWzFdXG4gICAgdmFyIGl2ID0gbmV3IEJ1ZmZlcihtYXRjaFsyXSwgJ2hleCcpXG4gICAgdmFyIGNpcGhlclRleHQgPSBuZXcgQnVmZmVyKG1hdGNoWzNdLnJlcGxhY2UoL1tcXHJcXG5dL2csICcnKSwgJ2Jhc2U2NCcpXG4gICAgdmFyIGNpcGhlcktleSA9IGV2cChwYXNzd29yZCwgaXYuc2xpY2UoMCwgOCksIHBhcnNlSW50KG1hdGNoWzFdLCAxMCkpLmtleVxuICAgIHZhciBvdXQgPSBbXVxuICAgIHZhciBjaXBoZXIgPSBjaXBoZXJzLmNyZWF0ZURlY2lwaGVyaXYoc3VpdGUsIGNpcGhlcktleSwgaXYpXG4gICAgb3V0LnB1c2goY2lwaGVyLnVwZGF0ZShjaXBoZXJUZXh0KSlcbiAgICBvdXQucHVzaChjaXBoZXIuZmluYWwoKSlcbiAgICBkZWNyeXB0ZWQgPSBCdWZmZXIuY29uY2F0KG91dClcbiAgfVxuICB2YXIgdGFnID0ga2V5Lm1hdGNoKHN0YXJ0UmVnZXgpWzFdXG4gIHJldHVybiB7XG4gICAgdGFnOiB0YWcsXG4gICAgZGF0YTogZGVjcnlwdGVkXG4gIH1cbn1cbiIsInZhciBhc24xID0gcmVxdWlyZSgnLi9hc24xJylcbnZhciBhZXNpZCA9IHJlcXVpcmUoJy4vYWVzaWQuanNvbicpXG52YXIgZml4UHJvYyA9IHJlcXVpcmUoJy4vZml4UHJvYycpXG52YXIgY2lwaGVycyA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktYWVzJylcbnZhciBjb21wYXQgPSByZXF1aXJlKCdwYmtkZjInKVxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZUtleXNcblxuZnVuY3Rpb24gcGFyc2VLZXlzIChidWZmZXIpIHtcbiAgdmFyIHBhc3N3b3JkXG4gIGlmICh0eXBlb2YgYnVmZmVyID09PSAnb2JqZWN0JyAmJiAhQnVmZmVyLmlzQnVmZmVyKGJ1ZmZlcikpIHtcbiAgICBwYXNzd29yZCA9IGJ1ZmZlci5wYXNzcGhyYXNlXG4gICAgYnVmZmVyID0gYnVmZmVyLmtleVxuICB9XG4gIGlmICh0eXBlb2YgYnVmZmVyID09PSAnc3RyaW5nJykge1xuICAgIGJ1ZmZlciA9IG5ldyBCdWZmZXIoYnVmZmVyKVxuICB9XG5cbiAgdmFyIHN0cmlwcGVkID0gZml4UHJvYyhidWZmZXIsIHBhc3N3b3JkKVxuXG4gIHZhciB0eXBlID0gc3RyaXBwZWQudGFnXG4gIHZhciBkYXRhID0gc3RyaXBwZWQuZGF0YVxuICB2YXIgc3VidHlwZSwgbmRhdGFcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnQ0VSVElGSUNBVEUnOlxuICAgICAgbmRhdGEgPSBhc24xLmNlcnRpZmljYXRlLmRlY29kZShkYXRhLCAnZGVyJykudGJzQ2VydGlmaWNhdGUuc3ViamVjdFB1YmxpY0tleUluZm9cbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICBjYXNlICdQVUJMSUMgS0VZJzpcbiAgICAgIGlmICghbmRhdGEpIHtcbiAgICAgICAgbmRhdGEgPSBhc24xLlB1YmxpY0tleS5kZWNvZGUoZGF0YSwgJ2RlcicpXG4gICAgICB9XG4gICAgICBzdWJ0eXBlID0gbmRhdGEuYWxnb3JpdGhtLmFsZ29yaXRobS5qb2luKCcuJylcbiAgICAgIHN3aXRjaCAoc3VidHlwZSkge1xuICAgICAgICBjYXNlICcxLjIuODQwLjExMzU0OS4xLjEuMSc6XG4gICAgICAgICAgcmV0dXJuIGFzbjEuUlNBUHVibGljS2V5LmRlY29kZShuZGF0YS5zdWJqZWN0UHVibGljS2V5LmRhdGEsICdkZXInKVxuICAgICAgICBjYXNlICcxLjIuODQwLjEwMDQ1LjIuMSc6XG4gICAgICAgICAgbmRhdGEuc3ViamVjdFByaXZhdGVLZXkgPSBuZGF0YS5zdWJqZWN0UHVibGljS2V5XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdlYycsXG4gICAgICAgICAgICBkYXRhOiBuZGF0YVxuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAnMS4yLjg0MC4xMDA0MC40LjEnOlxuICAgICAgICAgIG5kYXRhLmFsZ29yaXRobS5wYXJhbXMucHViX2tleSA9IGFzbjEuRFNBcGFyYW0uZGVjb2RlKG5kYXRhLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwgJ2RlcicpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdkc2EnLFxuICAgICAgICAgICAgZGF0YTogbmRhdGEuYWxnb3JpdGhtLnBhcmFtc1xuICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGtleSBpZCAnICsgc3VidHlwZSlcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBrZXkgdHlwZSAnICsgdHlwZSlcbiAgICBjYXNlICdFTkNSWVBURUQgUFJJVkFURSBLRVknOlxuICAgICAgZGF0YSA9IGFzbjEuRW5jcnlwdGVkUHJpdmF0ZUtleS5kZWNvZGUoZGF0YSwgJ2RlcicpXG4gICAgICBkYXRhID0gZGVjcnlwdChkYXRhLCBwYXNzd29yZClcbiAgICAgIC8vIGZhbGxzIHRocm91Z2hcbiAgICBjYXNlICdQUklWQVRFIEtFWSc6XG4gICAgICBuZGF0YSA9IGFzbjEuUHJpdmF0ZUtleS5kZWNvZGUoZGF0YSwgJ2RlcicpXG4gICAgICBzdWJ0eXBlID0gbmRhdGEuYWxnb3JpdGhtLmFsZ29yaXRobS5qb2luKCcuJylcbiAgICAgIHN3aXRjaCAoc3VidHlwZSkge1xuICAgICAgICBjYXNlICcxLjIuODQwLjExMzU0OS4xLjEuMSc6XG4gICAgICAgICAgcmV0dXJuIGFzbjEuUlNBUHJpdmF0ZUtleS5kZWNvZGUobmRhdGEuc3ViamVjdFByaXZhdGVLZXksICdkZXInKVxuICAgICAgICBjYXNlICcxLjIuODQwLjEwMDQ1LjIuMSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGN1cnZlOiBuZGF0YS5hbGdvcml0aG0uY3VydmUsXG4gICAgICAgICAgICBwcml2YXRlS2V5OiBhc24xLkVDUHJpdmF0ZUtleS5kZWNvZGUobmRhdGEuc3ViamVjdFByaXZhdGVLZXksICdkZXInKS5wcml2YXRlS2V5XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICcxLjIuODQwLjEwMDQwLjQuMSc6XG4gICAgICAgICAgbmRhdGEuYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleSA9IGFzbjEuRFNBcGFyYW0uZGVjb2RlKG5kYXRhLnN1YmplY3RQcml2YXRlS2V5LCAnZGVyJylcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2RzYScsXG4gICAgICAgICAgICBwYXJhbXM6IG5kYXRhLmFsZ29yaXRobS5wYXJhbXNcbiAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcigndW5rbm93biBrZXkgaWQgJyArIHN1YnR5cGUpXG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24ga2V5IHR5cGUgJyArIHR5cGUpXG4gICAgY2FzZSAnUlNBIFBVQkxJQyBLRVknOlxuICAgICAgcmV0dXJuIGFzbjEuUlNBUHVibGljS2V5LmRlY29kZShkYXRhLCAnZGVyJylcbiAgICBjYXNlICdSU0EgUFJJVkFURSBLRVknOlxuICAgICAgcmV0dXJuIGFzbjEuUlNBUHJpdmF0ZUtleS5kZWNvZGUoZGF0YSwgJ2RlcicpXG4gICAgY2FzZSAnRFNBIFBSSVZBVEUgS0VZJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdkc2EnLFxuICAgICAgICBwYXJhbXM6IGFzbjEuRFNBUHJpdmF0ZUtleS5kZWNvZGUoZGF0YSwgJ2RlcicpXG4gICAgICB9XG4gICAgY2FzZSAnRUMgUFJJVkFURSBLRVknOlxuICAgICAgZGF0YSA9IGFzbjEuRUNQcml2YXRlS2V5LmRlY29kZShkYXRhLCAnZGVyJylcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGN1cnZlOiBkYXRhLnBhcmFtZXRlcnMudmFsdWUsXG4gICAgICAgIHByaXZhdGVLZXk6IGRhdGEucHJpdmF0ZUtleVxuICAgICAgfVxuICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcigndW5rbm93biBrZXkgdHlwZSAnICsgdHlwZSlcbiAgfVxufVxucGFyc2VLZXlzLnNpZ25hdHVyZSA9IGFzbjEuc2lnbmF0dXJlXG5mdW5jdGlvbiBkZWNyeXB0IChkYXRhLCBwYXNzd29yZCkge1xuICB2YXIgc2FsdCA9IGRhdGEuYWxnb3JpdGhtLmRlY3J5cHQua2RlLmtkZXBhcmFtcy5zYWx0XG4gIHZhciBpdGVycyA9IHBhcnNlSW50KGRhdGEuYWxnb3JpdGhtLmRlY3J5cHQua2RlLmtkZXBhcmFtcy5pdGVycy50b1N0cmluZygpLCAxMClcbiAgdmFyIGFsZ28gPSBhZXNpZFtkYXRhLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5hbGdvLmpvaW4oJy4nKV1cbiAgdmFyIGl2ID0gZGF0YS5hbGdvcml0aG0uZGVjcnlwdC5jaXBoZXIuaXZcbiAgdmFyIGNpcGhlclRleHQgPSBkYXRhLnN1YmplY3RQcml2YXRlS2V5XG4gIHZhciBrZXlsZW4gPSBwYXJzZUludChhbGdvLnNwbGl0KCctJylbMV0sIDEwKSAvIDhcbiAgdmFyIGtleSA9IGNvbXBhdC5wYmtkZjJTeW5jKHBhc3N3b3JkLCBzYWx0LCBpdGVycywga2V5bGVuKVxuICB2YXIgY2lwaGVyID0gY2lwaGVycy5jcmVhdGVEZWNpcGhlcml2KGFsZ28sIGtleSwgaXYpXG4gIHZhciBvdXQgPSBbXVxuICBvdXQucHVzaChjaXBoZXIudXBkYXRlKGNpcGhlclRleHQpKVxuICBvdXQucHVzaChjaXBoZXIuZmluYWwoKSlcbiAgcmV0dXJuIEJ1ZmZlci5jb25jYXQob3V0KVxufVxuIiwiZXhwb3J0cy5wYmtkZjIgPSByZXF1aXJlKCcuL2xpYi9hc3luYycpXG5leHBvcnRzLnBia2RmMlN5bmMgPSByZXF1aXJlKCcuL2xpYi9zeW5jJylcbiIsInZhciBjaGVja1BhcmFtZXRlcnMgPSByZXF1aXJlKCcuL3ByZWNvbmRpdGlvbicpXG52YXIgZGVmYXVsdEVuY29kaW5nID0gcmVxdWlyZSgnLi9kZWZhdWx0LWVuY29kaW5nJylcbnZhciBzeW5jID0gcmVxdWlyZSgnLi9zeW5jJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG52YXIgWkVST19CVUZcbnZhciBzdWJ0bGUgPSBnbG9iYWwuY3J5cHRvICYmIGdsb2JhbC5jcnlwdG8uc3VidGxlXG52YXIgdG9Ccm93c2VyID0ge1xuICAnc2hhJzogJ1NIQS0xJyxcbiAgJ3NoYS0xJzogJ1NIQS0xJyxcbiAgJ3NoYTEnOiAnU0hBLTEnLFxuICAnc2hhMjU2JzogJ1NIQS0yNTYnLFxuICAnc2hhLTI1Nic6ICdTSEEtMjU2JyxcbiAgJ3NoYTM4NCc6ICdTSEEtMzg0JyxcbiAgJ3NoYS0zODQnOiAnU0hBLTM4NCcsXG4gICdzaGEtNTEyJzogJ1NIQS01MTInLFxuICAnc2hhNTEyJzogJ1NIQS01MTInXG59XG52YXIgY2hlY2tzID0gW11cbmZ1bmN0aW9uIGNoZWNrTmF0aXZlIChhbGdvKSB7XG4gIGlmIChnbG9iYWwucHJvY2VzcyAmJiAhZ2xvYmFsLnByb2Nlc3MuYnJvd3Nlcikge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpXG4gIH1cbiAgaWYgKCFzdWJ0bGUgfHwgIXN1YnRsZS5pbXBvcnRLZXkgfHwgIXN1YnRsZS5kZXJpdmVCaXRzKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSlcbiAgfVxuICBpZiAoY2hlY2tzW2FsZ29dICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gY2hlY2tzW2FsZ29dXG4gIH1cbiAgWkVST19CVUYgPSBaRVJPX0JVRiB8fCBCdWZmZXIuYWxsb2MoOClcbiAgdmFyIHByb20gPSBicm93c2VyUGJrZGYyKFpFUk9fQlVGLCBaRVJPX0JVRiwgMTAsIDEyOCwgYWxnbylcbiAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIGNoZWNrc1thbGdvXSA9IHByb21cbiAgcmV0dXJuIHByb21cbn1cblxuZnVuY3Rpb24gYnJvd3NlclBia2RmMiAocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGxlbmd0aCwgYWxnbykge1xuICByZXR1cm4gc3VidGxlLmltcG9ydEtleShcbiAgICAncmF3JywgcGFzc3dvcmQsIHtuYW1lOiAnUEJLREYyJ30sIGZhbHNlLCBbJ2Rlcml2ZUJpdHMnXVxuICApLnRoZW4oZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBzdWJ0bGUuZGVyaXZlQml0cyh7XG4gICAgICBuYW1lOiAnUEJLREYyJyxcbiAgICAgIHNhbHQ6IHNhbHQsXG4gICAgICBpdGVyYXRpb25zOiBpdGVyYXRpb25zLFxuICAgICAgaGFzaDoge1xuICAgICAgICBuYW1lOiBhbGdvXG4gICAgICB9XG4gICAgfSwga2V5LCBsZW5ndGggPDwgMylcbiAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHJlcylcbiAgfSlcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVByb21pc2UgKHByb21pc2UsIGNhbGxiYWNrKSB7XG4gIHByb21pc2UudGhlbihmdW5jdGlvbiAob3V0KSB7XG4gICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7XG4gICAgICBjYWxsYmFjayhudWxsLCBvdXQpXG4gICAgfSlcbiAgfSwgZnVuY3Rpb24gKGUpIHtcbiAgICBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbGxiYWNrKGUpXG4gICAgfSlcbiAgfSlcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBrZXlsZW4sIGRpZ2VzdCwgY2FsbGJhY2spIHtcbiAgaWYgKHR5cGVvZiBkaWdlc3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYWxsYmFjayA9IGRpZ2VzdFxuICAgIGRpZ2VzdCA9IHVuZGVmaW5lZFxuICB9XG5cbiAgZGlnZXN0ID0gZGlnZXN0IHx8ICdzaGExJ1xuICB2YXIgYWxnbyA9IHRvQnJvd3NlcltkaWdlc3QudG9Mb3dlckNhc2UoKV1cblxuICBpZiAoIWFsZ28gfHwgdHlwZW9mIGdsb2JhbC5Qcm9taXNlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIG91dFxuICAgICAgdHJ5IHtcbiAgICAgICAgb3V0ID0gc3luYyhwYXNzd29yZCwgc2FsdCwgaXRlcmF0aW9ucywga2V5bGVuLCBkaWdlc3QpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlKVxuICAgICAgfVxuICAgICAgY2FsbGJhY2sobnVsbCwgb3V0KVxuICAgIH0pXG4gIH1cblxuICBjaGVja1BhcmFtZXRlcnMocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGtleWxlbilcbiAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykgdGhyb3cgbmV3IEVycm9yKCdObyBjYWxsYmFjayBwcm92aWRlZCB0byBwYmtkZjInKVxuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwYXNzd29yZCkpIHBhc3N3b3JkID0gQnVmZmVyLmZyb20ocGFzc3dvcmQsIGRlZmF1bHRFbmNvZGluZylcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoc2FsdCkpIHNhbHQgPSBCdWZmZXIuZnJvbShzYWx0LCBkZWZhdWx0RW5jb2RpbmcpXG5cbiAgcmVzb2x2ZVByb21pc2UoY2hlY2tOYXRpdmUoYWxnbykudGhlbihmdW5jdGlvbiAocmVzcCkge1xuICAgIGlmIChyZXNwKSByZXR1cm4gYnJvd3NlclBia2RmMihwYXNzd29yZCwgc2FsdCwgaXRlcmF0aW9ucywga2V5bGVuLCBhbGdvKVxuXG4gICAgcmV0dXJuIHN5bmMocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGtleWxlbiwgZGlnZXN0KVxuICB9KSwgY2FsbGJhY2spXG59XG4iLCJ2YXIgZGVmYXVsdEVuY29kaW5nXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuaWYgKHByb2Nlc3MuYnJvd3Nlcikge1xuICBkZWZhdWx0RW5jb2RpbmcgPSAndXRmLTgnXG59IGVsc2Uge1xuICB2YXIgcFZlcnNpb25NYWpvciA9IHBhcnNlSW50KHByb2Nlc3MudmVyc2lvbi5zcGxpdCgnLicpWzBdLnNsaWNlKDEpLCAxMClcblxuICBkZWZhdWx0RW5jb2RpbmcgPSBwVmVyc2lvbk1ham9yID49IDYgPyAndXRmLTgnIDogJ2JpbmFyeSdcbn1cbm1vZHVsZS5leHBvcnRzID0gZGVmYXVsdEVuY29kaW5nXG4iLCJ2YXIgTUFYX0FMTE9DID0gTWF0aC5wb3coMiwgMzApIC0gMSAvLyBkZWZhdWx0IGluIGlvanNcblxuZnVuY3Rpb24gY2hlY2tCdWZmZXIgKGJ1ZiwgbmFtZSkge1xuICBpZiAodHlwZW9mIGJ1ZiAhPT0gJ3N0cmluZycgJiYgIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihuYW1lICsgJyBtdXN0IGJlIGEgYnVmZmVyIG9yIHN0cmluZycpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGtleWxlbikge1xuICBjaGVja0J1ZmZlcihwYXNzd29yZCwgJ1Bhc3N3b3JkJylcbiAgY2hlY2tCdWZmZXIoc2FsdCwgJ1NhbHQnKVxuXG4gIGlmICh0eXBlb2YgaXRlcmF0aW9ucyAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJdGVyYXRpb25zIG5vdCBhIG51bWJlcicpXG4gIH1cblxuICBpZiAoaXRlcmF0aW9ucyA8IDApIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdCYWQgaXRlcmF0aW9ucycpXG4gIH1cblxuICBpZiAodHlwZW9mIGtleWxlbiAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdLZXkgbGVuZ3RoIG5vdCBhIG51bWJlcicpXG4gIH1cblxuICBpZiAoa2V5bGVuIDwgMCB8fCBrZXlsZW4gPiBNQVhfQUxMT0MgfHwga2V5bGVuICE9PSBrZXlsZW4pIHsgLyogZXNsaW50IG5vLXNlbGYtY29tcGFyZTogMCAqL1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0JhZCBrZXkgbGVuZ3RoJylcbiAgfVxufVxuIiwidmFyIG1kNSA9IHJlcXVpcmUoJ2NyZWF0ZS1oYXNoL21kNScpXG52YXIgcm1kMTYwID0gcmVxdWlyZSgncmlwZW1kMTYwJylcbnZhciBzaGEgPSByZXF1aXJlKCdzaGEuanMnKVxuXG52YXIgY2hlY2tQYXJhbWV0ZXJzID0gcmVxdWlyZSgnLi9wcmVjb25kaXRpb24nKVxudmFyIGRlZmF1bHRFbmNvZGluZyA9IHJlcXVpcmUoJy4vZGVmYXVsdC1lbmNvZGluZycpXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciBaRVJPUyA9IEJ1ZmZlci5hbGxvYygxMjgpXG52YXIgc2l6ZXMgPSB7XG4gIG1kNTogMTYsXG4gIHNoYTE6IDIwLFxuICBzaGEyMjQ6IDI4LFxuICBzaGEyNTY6IDMyLFxuICBzaGEzODQ6IDQ4LFxuICBzaGE1MTI6IDY0LFxuICBybWQxNjA6IDIwLFxuICByaXBlbWQxNjA6IDIwXG59XG5cbmZ1bmN0aW9uIEhtYWMgKGFsZywga2V5LCBzYWx0TGVuKSB7XG4gIHZhciBoYXNoID0gZ2V0RGlnZXN0KGFsZylcbiAgdmFyIGJsb2Nrc2l6ZSA9IChhbGcgPT09ICdzaGE1MTInIHx8IGFsZyA9PT0gJ3NoYTM4NCcpID8gMTI4IDogNjRcblxuICBpZiAoa2V5Lmxlbmd0aCA+IGJsb2Nrc2l6ZSkge1xuICAgIGtleSA9IGhhc2goa2V5KVxuICB9IGVsc2UgaWYgKGtleS5sZW5ndGggPCBibG9ja3NpemUpIHtcbiAgICBrZXkgPSBCdWZmZXIuY29uY2F0KFtrZXksIFpFUk9TXSwgYmxvY2tzaXplKVxuICB9XG5cbiAgdmFyIGlwYWQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoYmxvY2tzaXplICsgc2l6ZXNbYWxnXSlcbiAgdmFyIG9wYWQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoYmxvY2tzaXplICsgc2l6ZXNbYWxnXSlcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBibG9ja3NpemU7IGkrKykge1xuICAgIGlwYWRbaV0gPSBrZXlbaV0gXiAweDM2XG4gICAgb3BhZFtpXSA9IGtleVtpXSBeIDB4NUNcbiAgfVxuXG4gIHZhciBpcGFkMSA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShibG9ja3NpemUgKyBzYWx0TGVuICsgNClcbiAgaXBhZC5jb3B5KGlwYWQxLCAwLCAwLCBibG9ja3NpemUpXG4gIHRoaXMuaXBhZDEgPSBpcGFkMVxuICB0aGlzLmlwYWQyID0gaXBhZFxuICB0aGlzLm9wYWQgPSBvcGFkXG4gIHRoaXMuYWxnID0gYWxnXG4gIHRoaXMuYmxvY2tzaXplID0gYmxvY2tzaXplXG4gIHRoaXMuaGFzaCA9IGhhc2hcbiAgdGhpcy5zaXplID0gc2l6ZXNbYWxnXVxufVxuXG5IbWFjLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoZGF0YSwgaXBhZCkge1xuICBkYXRhLmNvcHkoaXBhZCwgdGhpcy5ibG9ja3NpemUpXG4gIHZhciBoID0gdGhpcy5oYXNoKGlwYWQpXG4gIGguY29weSh0aGlzLm9wYWQsIHRoaXMuYmxvY2tzaXplKVxuICByZXR1cm4gdGhpcy5oYXNoKHRoaXMub3BhZClcbn1cblxuZnVuY3Rpb24gZ2V0RGlnZXN0IChhbGcpIHtcbiAgZnVuY3Rpb24gc2hhRnVuYyAoZGF0YSkge1xuICAgIHJldHVybiBzaGEoYWxnKS51cGRhdGUoZGF0YSkuZGlnZXN0KClcbiAgfVxuXG4gIGlmIChhbGcgPT09ICdybWQxNjAnIHx8IGFsZyA9PT0gJ3JpcGVtZDE2MCcpIHJldHVybiBybWQxNjBcbiAgaWYgKGFsZyA9PT0gJ21kNScpIHJldHVybiBtZDVcbiAgcmV0dXJuIHNoYUZ1bmNcbn1cblxuZnVuY3Rpb24gcGJrZGYyIChwYXNzd29yZCwgc2FsdCwgaXRlcmF0aW9ucywga2V5bGVuLCBkaWdlc3QpIHtcbiAgY2hlY2tQYXJhbWV0ZXJzKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBrZXlsZW4pXG5cbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocGFzc3dvcmQpKSBwYXNzd29yZCA9IEJ1ZmZlci5mcm9tKHBhc3N3b3JkLCBkZWZhdWx0RW5jb2RpbmcpXG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHNhbHQpKSBzYWx0ID0gQnVmZmVyLmZyb20oc2FsdCwgZGVmYXVsdEVuY29kaW5nKVxuXG4gIGRpZ2VzdCA9IGRpZ2VzdCB8fCAnc2hhMSdcblxuICB2YXIgaG1hYyA9IG5ldyBIbWFjKGRpZ2VzdCwgcGFzc3dvcmQsIHNhbHQubGVuZ3RoKVxuXG4gIHZhciBESyA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShrZXlsZW4pXG4gIHZhciBibG9jazEgPSBCdWZmZXIuYWxsb2NVbnNhZmUoc2FsdC5sZW5ndGggKyA0KVxuICBzYWx0LmNvcHkoYmxvY2sxLCAwLCAwLCBzYWx0Lmxlbmd0aClcblxuICB2YXIgZGVzdFBvcyA9IDBcbiAgdmFyIGhMZW4gPSBzaXplc1tkaWdlc3RdXG4gIHZhciBsID0gTWF0aC5jZWlsKGtleWxlbiAvIGhMZW4pXG5cbiAgZm9yICh2YXIgaSA9IDE7IGkgPD0gbDsgaSsrKSB7XG4gICAgYmxvY2sxLndyaXRlVUludDMyQkUoaSwgc2FsdC5sZW5ndGgpXG5cbiAgICB2YXIgVCA9IGhtYWMucnVuKGJsb2NrMSwgaG1hYy5pcGFkMSlcbiAgICB2YXIgVSA9IFRcblxuICAgIGZvciAodmFyIGogPSAxOyBqIDwgaXRlcmF0aW9uczsgaisrKSB7XG4gICAgICBVID0gaG1hYy5ydW4oVSwgaG1hYy5pcGFkMilcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgaExlbjsgaysrKSBUW2tdIF49IFVba11cbiAgICB9XG5cbiAgICBULmNvcHkoREssIGRlc3RQb3MpXG4gICAgZGVzdFBvcyArPSBoTGVuXG4gIH1cblxuICByZXR1cm4gREtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYmtkZjJcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKCFwcm9jZXNzLnZlcnNpb24gfHxcbiAgICBwcm9jZXNzLnZlcnNpb24uaW5kZXhPZigndjAuJykgPT09IDAgfHxcbiAgICBwcm9jZXNzLnZlcnNpb24uaW5kZXhPZigndjEuJykgPT09IDAgJiYgcHJvY2Vzcy52ZXJzaW9uLmluZGV4T2YoJ3YxLjguJykgIT09IDApIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSB7IG5leHRUaWNrOiBuZXh0VGljayB9O1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBwcm9jZXNzXG59XG5cbmZ1bmN0aW9uIG5leHRUaWNrKGZuLCBhcmcxLCBhcmcyLCBhcmczKSB7XG4gIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImNhbGxiYWNrXCIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cbiAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHZhciBhcmdzLCBpO1xuICBzd2l0Y2ggKGxlbikge1xuICBjYXNlIDA6XG4gIGNhc2UgMTpcbiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmbik7XG4gIGNhc2UgMjpcbiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiBhZnRlclRpY2tPbmUoKSB7XG4gICAgICBmbi5jYWxsKG51bGwsIGFyZzEpO1xuICAgIH0pO1xuICBjYXNlIDM6XG4gICAgcmV0dXJuIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gYWZ0ZXJUaWNrVHdvKCkge1xuICAgICAgZm4uY2FsbChudWxsLCBhcmcxLCBhcmcyKTtcbiAgICB9KTtcbiAgY2FzZSA0OlxuICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uIGFmdGVyVGlja1RocmVlKCkge1xuICAgICAgZm4uY2FsbChudWxsLCBhcmcxLCBhcmcyLCBhcmczKTtcbiAgICB9KTtcbiAgZGVmYXVsdDpcbiAgICBhcmdzID0gbmV3IEFycmF5KGxlbiAtIDEpO1xuICAgIGkgPSAwO1xuICAgIHdoaWxlIChpIDwgYXJncy5sZW5ndGgpIHtcbiAgICAgIGFyZ3NbaSsrXSA9IGFyZ3VtZW50c1tpXTtcbiAgICB9XG4gICAgcmV0dXJuIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gYWZ0ZXJUaWNrKCkge1xuICAgICAgZm4uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgfSk7XG4gIH1cbn1cblxuIiwiZXhwb3J0cy5wdWJsaWNFbmNyeXB0ID0gcmVxdWlyZSgnLi9wdWJsaWNFbmNyeXB0Jyk7XG5leHBvcnRzLnByaXZhdGVEZWNyeXB0ID0gcmVxdWlyZSgnLi9wcml2YXRlRGVjcnlwdCcpO1xuXG5leHBvcnRzLnByaXZhdGVFbmNyeXB0ID0gZnVuY3Rpb24gcHJpdmF0ZUVuY3J5cHQoa2V5LCBidWYpIHtcbiAgcmV0dXJuIGV4cG9ydHMucHVibGljRW5jcnlwdChrZXksIGJ1ZiwgdHJ1ZSk7XG59O1xuXG5leHBvcnRzLnB1YmxpY0RlY3J5cHQgPSBmdW5jdGlvbiBwdWJsaWNEZWNyeXB0KGtleSwgYnVmKSB7XG4gIHJldHVybiBleHBvcnRzLnByaXZhdGVEZWNyeXB0KGtleSwgYnVmLCB0cnVlKTtcbn07IiwidmFyIGNyZWF0ZUhhc2ggPSByZXF1aXJlKCdjcmVhdGUtaGFzaCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoc2VlZCwgbGVuKSB7XG4gIHZhciB0ID0gbmV3IEJ1ZmZlcignJyk7XG4gIHZhciAgaSA9IDAsIGM7XG4gIHdoaWxlICh0Lmxlbmd0aCA8IGxlbikge1xuICAgIGMgPSBpMm9wcyhpKyspO1xuICAgIHQgPSBCdWZmZXIuY29uY2F0KFt0LCBjcmVhdGVIYXNoKCdzaGExJykudXBkYXRlKHNlZWQpLnVwZGF0ZShjKS5kaWdlc3QoKV0pO1xuICB9XG4gIHJldHVybiB0LnNsaWNlKDAsIGxlbik7XG59O1xuXG5mdW5jdGlvbiBpMm9wcyhjKSB7XG4gIHZhciBvdXQgPSBuZXcgQnVmZmVyKDQpO1xuICBvdXQud3JpdGVVSW50MzJCRShjLDApO1xuICByZXR1cm4gb3V0O1xufSIsInZhciBwYXJzZUtleXMgPSByZXF1aXJlKCdwYXJzZS1hc24xJyk7XG52YXIgbWdmID0gcmVxdWlyZSgnLi9tZ2YnKTtcbnZhciB4b3IgPSByZXF1aXJlKCcuL3hvcicpO1xudmFyIGJuID0gcmVxdWlyZSgnYm4uanMnKTtcbnZhciBjcnQgPSByZXF1aXJlKCdicm93c2VyaWZ5LXJzYScpO1xudmFyIGNyZWF0ZUhhc2ggPSByZXF1aXJlKCdjcmVhdGUtaGFzaCcpO1xudmFyIHdpdGhQdWJsaWMgPSByZXF1aXJlKCcuL3dpdGhQdWJsaWMnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcHJpdmF0ZURlY3J5cHQocHJpdmF0ZV9rZXksIGVuYywgcmV2ZXJzZSkge1xuICB2YXIgcGFkZGluZztcbiAgaWYgKHByaXZhdGVfa2V5LnBhZGRpbmcpIHtcbiAgICBwYWRkaW5nID0gcHJpdmF0ZV9rZXkucGFkZGluZztcbiAgfSBlbHNlIGlmIChyZXZlcnNlKSB7XG4gICAgcGFkZGluZyA9IDE7XG4gIH0gZWxzZSB7XG4gICAgcGFkZGluZyA9IDQ7XG4gIH1cbiAgXG4gIHZhciBrZXkgPSBwYXJzZUtleXMocHJpdmF0ZV9rZXkpO1xuICB2YXIgayA9IGtleS5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtcbiAgaWYgKGVuYy5sZW5ndGggPiBrIHx8IG5ldyBibihlbmMpLmNtcChrZXkubW9kdWx1cykgPj0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignZGVjcnlwdGlvbiBlcnJvcicpO1xuICB9XG4gIHZhciBtc2c7XG4gIGlmIChyZXZlcnNlKSB7XG4gICAgbXNnID0gd2l0aFB1YmxpYyhuZXcgYm4oZW5jKSwga2V5KTtcbiAgfSBlbHNlIHtcbiAgICBtc2cgPSBjcnQoZW5jLCBrZXkpO1xuICB9XG4gIHZhciB6QnVmZmVyID0gbmV3IEJ1ZmZlcihrIC0gbXNnLmxlbmd0aCk7XG4gIHpCdWZmZXIuZmlsbCgwKTtcbiAgbXNnID0gQnVmZmVyLmNvbmNhdChbekJ1ZmZlciwgbXNnXSwgayk7XG4gIGlmIChwYWRkaW5nID09PSA0KSB7XG4gICAgcmV0dXJuIG9hZXAoa2V5LCBtc2cpO1xuICB9IGVsc2UgaWYgKHBhZGRpbmcgPT09IDEpIHtcbiAgICByZXR1cm4gcGtjczEoa2V5LCBtc2csIHJldmVyc2UpO1xuICB9IGVsc2UgaWYgKHBhZGRpbmcgPT09IDMpIHtcbiAgICByZXR1cm4gbXNnO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBwYWRkaW5nJyk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIG9hZXAoa2V5LCBtc2cpe1xuICB2YXIgbiA9IGtleS5tb2R1bHVzO1xuICB2YXIgayA9IGtleS5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtcbiAgdmFyIG1MZW4gPSBtc2cubGVuZ3RoO1xuICB2YXIgaUhhc2ggPSBjcmVhdGVIYXNoKCdzaGExJykudXBkYXRlKG5ldyBCdWZmZXIoJycpKS5kaWdlc3QoKTtcbiAgdmFyIGhMZW4gPSBpSGFzaC5sZW5ndGg7XG4gIHZhciBoTGVuMiA9IDIgKiBoTGVuO1xuICBpZiAobXNnWzBdICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkZWNyeXB0aW9uIGVycm9yJyk7XG4gIH1cbiAgdmFyIG1hc2tlZFNlZWQgPSBtc2cuc2xpY2UoMSwgaExlbiArIDEpO1xuICB2YXIgbWFza2VkRGIgPSAgbXNnLnNsaWNlKGhMZW4gKyAxKTtcbiAgdmFyIHNlZWQgPSB4b3IobWFza2VkU2VlZCwgbWdmKG1hc2tlZERiLCBoTGVuKSk7XG4gIHZhciBkYiA9IHhvcihtYXNrZWREYiwgbWdmKHNlZWQsIGsgLSBoTGVuIC0gMSkpO1xuICBpZiAoY29tcGFyZShpSGFzaCwgZGIuc2xpY2UoMCwgaExlbikpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkZWNyeXB0aW9uIGVycm9yJyk7XG4gIH1cbiAgdmFyIGkgPSBoTGVuO1xuICB3aGlsZSAoZGJbaV0gPT09IDApIHtcbiAgICBpKys7XG4gIH1cbiAgaWYgKGRiW2krK10gIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlY3J5cHRpb24gZXJyb3InKTtcbiAgfVxuICByZXR1cm4gZGIuc2xpY2UoaSk7XG59XG5cbmZ1bmN0aW9uIHBrY3MxKGtleSwgbXNnLCByZXZlcnNlKXtcbiAgdmFyIHAxID0gbXNnLnNsaWNlKDAsIDIpO1xuICB2YXIgaSA9IDI7XG4gIHZhciBzdGF0dXMgPSAwO1xuICB3aGlsZSAobXNnW2krK10gIT09IDApIHtcbiAgICBpZiAoaSA+PSBtc2cubGVuZ3RoKSB7XG4gICAgICBzdGF0dXMrKztcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICB2YXIgcHMgPSBtc2cuc2xpY2UoMiwgaSAtIDEpO1xuICB2YXIgcDIgPSBtc2cuc2xpY2UoaSAtIDEsIGkpO1xuXG4gIGlmICgocDEudG9TdHJpbmcoJ2hleCcpICE9PSAnMDAwMicgJiYgIXJldmVyc2UpIHx8IChwMS50b1N0cmluZygnaGV4JykgIT09ICcwMDAxJyAmJiByZXZlcnNlKSl7XG4gICAgc3RhdHVzKys7XG4gIH1cbiAgaWYgKHBzLmxlbmd0aCA8IDgpIHtcbiAgICBzdGF0dXMrKztcbiAgfVxuICBpZiAoc3RhdHVzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkZWNyeXB0aW9uIGVycm9yJyk7XG4gIH1cbiAgcmV0dXJuICBtc2cuc2xpY2UoaSk7XG59XG5mdW5jdGlvbiBjb21wYXJlKGEsIGIpe1xuICBhID0gbmV3IEJ1ZmZlcihhKTtcbiAgYiA9IG5ldyBCdWZmZXIoYik7XG4gIHZhciBkaWYgPSAwO1xuICB2YXIgbGVuID0gYS5sZW5ndGg7XG4gIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHtcbiAgICBkaWYrKztcbiAgICBsZW4gPSBNYXRoLm1pbihhLmxlbmd0aCwgYi5sZW5ndGgpO1xuICB9XG4gIHZhciBpID0gLTE7XG4gIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICBkaWYgKz0gKGFbaV0gXiBiW2ldKTtcbiAgfVxuICByZXR1cm4gZGlmO1xufSIsInZhciBwYXJzZUtleXMgPSByZXF1aXJlKCdwYXJzZS1hc24xJyk7XG52YXIgcmFuZG9tQnl0ZXMgPSByZXF1aXJlKCdyYW5kb21ieXRlcycpO1xudmFyIGNyZWF0ZUhhc2ggPSByZXF1aXJlKCdjcmVhdGUtaGFzaCcpO1xudmFyIG1nZiA9IHJlcXVpcmUoJy4vbWdmJyk7XG52YXIgeG9yID0gcmVxdWlyZSgnLi94b3InKTtcbnZhciBibiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgd2l0aFB1YmxpYyA9IHJlcXVpcmUoJy4vd2l0aFB1YmxpYycpO1xudmFyIGNydCA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktcnNhJyk7XG5cbnZhciBjb25zdGFudHMgPSB7XG4gIFJTQV9QS0NTMV9PQUVQX1BBRERJTkc6IDQsXG4gIFJTQV9QS0NTMV9QQURESU46IDEsXG4gIFJTQV9OT19QQURESU5HOiAzXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHB1YmxpY0VuY3J5cHQocHVibGljX2tleSwgbXNnLCByZXZlcnNlKSB7XG4gIHZhciBwYWRkaW5nO1xuICBpZiAocHVibGljX2tleS5wYWRkaW5nKSB7XG4gICAgcGFkZGluZyA9IHB1YmxpY19rZXkucGFkZGluZztcbiAgfSBlbHNlIGlmIChyZXZlcnNlKSB7XG4gICAgcGFkZGluZyA9IDE7XG4gIH0gZWxzZSB7XG4gICAgcGFkZGluZyA9IDQ7XG4gIH1cbiAgdmFyIGtleSA9IHBhcnNlS2V5cyhwdWJsaWNfa2V5KTtcbiAgdmFyIHBhZGRlZE1zZztcbiAgaWYgKHBhZGRpbmcgPT09IDQpIHtcbiAgICBwYWRkZWRNc2cgPSBvYWVwKGtleSwgbXNnKTtcbiAgfSBlbHNlIGlmIChwYWRkaW5nID09PSAxKSB7XG4gICAgcGFkZGVkTXNnID0gcGtjczEoa2V5LCBtc2csIHJldmVyc2UpO1xuICB9IGVsc2UgaWYgKHBhZGRpbmcgPT09IDMpIHtcbiAgICBwYWRkZWRNc2cgPSBuZXcgYm4obXNnKTtcbiAgICBpZiAocGFkZGVkTXNnLmNtcChrZXkubW9kdWx1cykgPj0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkYXRhIHRvbyBsb25nIGZvciBtb2R1bHVzJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBwYWRkaW5nJyk7XG4gIH1cbiAgaWYgKHJldmVyc2UpIHtcbiAgICByZXR1cm4gY3J0KHBhZGRlZE1zZywga2V5KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gd2l0aFB1YmxpYyhwYWRkZWRNc2csIGtleSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIG9hZXAoa2V5LCBtc2cpe1xuICB2YXIgayA9IGtleS5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtcbiAgdmFyIG1MZW4gPSBtc2cubGVuZ3RoO1xuICB2YXIgaUhhc2ggPSBjcmVhdGVIYXNoKCdzaGExJykudXBkYXRlKG5ldyBCdWZmZXIoJycpKS5kaWdlc3QoKTtcbiAgdmFyIGhMZW4gPSBpSGFzaC5sZW5ndGg7XG4gIHZhciBoTGVuMiA9IDIgKiBoTGVuO1xuICBpZiAobUxlbiA+IGsgLSBoTGVuMiAtIDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21lc3NhZ2UgdG9vIGxvbmcnKTtcbiAgfVxuICB2YXIgcHMgPSBuZXcgQnVmZmVyKGsgLSBtTGVuIC0gaExlbjIgLSAyKTtcbiAgcHMuZmlsbCgwKTtcbiAgdmFyIGRibGVuID0gayAtIGhMZW4gLSAxO1xuICB2YXIgc2VlZCA9IHJhbmRvbUJ5dGVzKGhMZW4pO1xuICB2YXIgbWFza2VkRGIgPSB4b3IoQnVmZmVyLmNvbmNhdChbaUhhc2gsIHBzLCBuZXcgQnVmZmVyKFsxXSksIG1zZ10sIGRibGVuKSwgbWdmKHNlZWQsIGRibGVuKSk7XG4gIHZhciBtYXNrZWRTZWVkID0geG9yKHNlZWQsIG1nZihtYXNrZWREYiwgaExlbikpO1xuICByZXR1cm4gbmV3IGJuKEJ1ZmZlci5jb25jYXQoW25ldyBCdWZmZXIoWzBdKSwgbWFza2VkU2VlZCwgbWFza2VkRGJdLCBrKSk7XG59XG5mdW5jdGlvbiBwa2NzMShrZXksIG1zZywgcmV2ZXJzZSl7XG4gIHZhciBtTGVuID0gbXNnLmxlbmd0aDtcbiAgdmFyIGsgPSBrZXkubW9kdWx1cy5ieXRlTGVuZ3RoKCk7XG4gIGlmIChtTGVuID4gayAtIDExKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtZXNzYWdlIHRvbyBsb25nJyk7XG4gIH1cbiAgdmFyIHBzO1xuICBpZiAocmV2ZXJzZSkge1xuICAgIHBzID0gbmV3IEJ1ZmZlcihrIC0gbUxlbiAtIDMpO1xuICAgIHBzLmZpbGwoMHhmZik7XG4gIH0gZWxzZSB7XG4gICAgcHMgPSBub25aZXJvKGsgLSBtTGVuIC0gMyk7XG4gIH1cbiAgcmV0dXJuIG5ldyBibihCdWZmZXIuY29uY2F0KFtuZXcgQnVmZmVyKFswLCByZXZlcnNlPzE6Ml0pLCBwcywgbmV3IEJ1ZmZlcihbMF0pLCBtc2ddLCBrKSk7XG59XG5mdW5jdGlvbiBub25aZXJvKGxlbiwgY3J5cHRvKSB7XG4gIHZhciBvdXQgPSBuZXcgQnVmZmVyKGxlbik7XG4gIHZhciBpID0gMDtcbiAgdmFyIGNhY2hlID0gcmFuZG9tQnl0ZXMobGVuKjIpO1xuICB2YXIgY3VyID0gMDtcbiAgdmFyIG51bTtcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICBpZiAoY3VyID09PSBjYWNoZS5sZW5ndGgpIHtcbiAgICAgIGNhY2hlID0gcmFuZG9tQnl0ZXMobGVuKjIpO1xuICAgICAgY3VyID0gMDtcbiAgICB9XG4gICAgbnVtID0gY2FjaGVbY3VyKytdO1xuICAgIGlmIChudW0pIHtcbiAgICAgIG91dFtpKytdID0gbnVtO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufSIsInZhciBibiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG5mdW5jdGlvbiB3aXRoUHVibGljKHBhZGRlZE1zZywga2V5KSB7XG4gIHJldHVybiBuZXcgQnVmZmVyKHBhZGRlZE1zZ1xuICAgIC50b1JlZChibi5tb250KGtleS5tb2R1bHVzKSlcbiAgICAucmVkUG93KG5ldyBibihrZXkucHVibGljRXhwb25lbnQpKVxuICAgIC5mcm9tUmVkKClcbiAgICAudG9BcnJheSgpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB3aXRoUHVibGljOyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24geG9yKGEsIGIpIHtcbiAgdmFyIGxlbiA9IGEubGVuZ3RoO1xuICB2YXIgaSA9IC0xO1xuICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgYVtpXSBePSBiW2ldO1xuICB9XG4gIHJldHVybiBhXG59OyIsIi8qISBodHRwczovL210aHMuYmUvcHVueWNvZGUgdjEuMy4yIGJ5IEBtYXRoaWFzICovXG47KGZ1bmN0aW9uKHJvb3QpIHtcblxuXHQvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGVzICovXG5cdHZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiZcblx0XHQhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXHR2YXIgZnJlZU1vZHVsZSA9IHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmXG5cdFx0IW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cdHZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWw7XG5cdGlmIChcblx0XHRmcmVlR2xvYmFsLmdsb2JhbCA9PT0gZnJlZUdsb2JhbCB8fFxuXHRcdGZyZWVHbG9iYWwud2luZG93ID09PSBmcmVlR2xvYmFsIHx8XG5cdFx0ZnJlZUdsb2JhbC5zZWxmID09PSBmcmVlR2xvYmFsXG5cdCkge1xuXHRcdHJvb3QgPSBmcmVlR2xvYmFsO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBgcHVueWNvZGVgIG9iamVjdC5cblx0ICogQG5hbWUgcHVueWNvZGVcblx0ICogQHR5cGUgT2JqZWN0XG5cdCAqL1xuXHR2YXIgcHVueWNvZGUsXG5cblx0LyoqIEhpZ2hlc3QgcG9zaXRpdmUgc2lnbmVkIDMyLWJpdCBmbG9hdCB2YWx1ZSAqL1xuXHRtYXhJbnQgPSAyMTQ3NDgzNjQ3LCAvLyBha2EuIDB4N0ZGRkZGRkYgb3IgMl4zMS0xXG5cblx0LyoqIEJvb3RzdHJpbmcgcGFyYW1ldGVycyAqL1xuXHRiYXNlID0gMzYsXG5cdHRNaW4gPSAxLFxuXHR0TWF4ID0gMjYsXG5cdHNrZXcgPSAzOCxcblx0ZGFtcCA9IDcwMCxcblx0aW5pdGlhbEJpYXMgPSA3Mixcblx0aW5pdGlhbE4gPSAxMjgsIC8vIDB4ODBcblx0ZGVsaW1pdGVyID0gJy0nLCAvLyAnXFx4MkQnXG5cblx0LyoqIFJlZ3VsYXIgZXhwcmVzc2lvbnMgKi9cblx0cmVnZXhQdW55Y29kZSA9IC9eeG4tLS8sXG5cdHJlZ2V4Tm9uQVNDSUkgPSAvW15cXHgyMC1cXHg3RV0vLCAvLyB1bnByaW50YWJsZSBBU0NJSSBjaGFycyArIG5vbi1BU0NJSSBjaGFyc1xuXHRyZWdleFNlcGFyYXRvcnMgPSAvW1xceDJFXFx1MzAwMlxcdUZGMEVcXHVGRjYxXS9nLCAvLyBSRkMgMzQ5MCBzZXBhcmF0b3JzXG5cblx0LyoqIEVycm9yIG1lc3NhZ2VzICovXG5cdGVycm9ycyA9IHtcblx0XHQnb3ZlcmZsb3cnOiAnT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3MnLFxuXHRcdCdub3QtYmFzaWMnOiAnSWxsZWdhbCBpbnB1dCA+PSAweDgwIChub3QgYSBiYXNpYyBjb2RlIHBvaW50KScsXG5cdFx0J2ludmFsaWQtaW5wdXQnOiAnSW52YWxpZCBpbnB1dCdcblx0fSxcblxuXHQvKiogQ29udmVuaWVuY2Ugc2hvcnRjdXRzICovXG5cdGJhc2VNaW51c1RNaW4gPSBiYXNlIC0gdE1pbixcblx0Zmxvb3IgPSBNYXRoLmZsb29yLFxuXHRzdHJpbmdGcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLFxuXG5cdC8qKiBUZW1wb3JhcnkgdmFyaWFibGUgKi9cblx0a2V5O1xuXG5cdC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cdC8qKlxuXHQgKiBBIGdlbmVyaWMgZXJyb3IgdXRpbGl0eSBmdW5jdGlvbi5cblx0ICogQHByaXZhdGVcblx0ICogQHBhcmFtIHtTdHJpbmd9IHR5cGUgVGhlIGVycm9yIHR5cGUuXG5cdCAqIEByZXR1cm5zIHtFcnJvcn0gVGhyb3dzIGEgYFJhbmdlRXJyb3JgIHdpdGggdGhlIGFwcGxpY2FibGUgZXJyb3IgbWVzc2FnZS5cblx0ICovXG5cdGZ1bmN0aW9uIGVycm9yKHR5cGUpIHtcblx0XHR0aHJvdyBSYW5nZUVycm9yKGVycm9yc1t0eXBlXSk7XG5cdH1cblxuXHQvKipcblx0ICogQSBnZW5lcmljIGBBcnJheSNtYXBgIHV0aWxpdHkgZnVuY3Rpb24uXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGZvciBldmVyeSBhcnJheVxuXHQgKiBpdGVtLlxuXHQgKiBAcmV0dXJucyB7QXJyYXl9IEEgbmV3IGFycmF5IG9mIHZhbHVlcyByZXR1cm5lZCBieSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG5cdCAqL1xuXHRmdW5jdGlvbiBtYXAoYXJyYXksIGZuKSB7XG5cdFx0dmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblx0XHR2YXIgcmVzdWx0ID0gW107XG5cdFx0d2hpbGUgKGxlbmd0aC0tKSB7XG5cdFx0XHRyZXN1bHRbbGVuZ3RoXSA9IGZuKGFycmF5W2xlbmd0aF0pO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0LyoqXG5cdCAqIEEgc2ltcGxlIGBBcnJheSNtYXBgLWxpa2Ugd3JhcHBlciB0byB3b3JrIHdpdGggZG9tYWluIG5hbWUgc3RyaW5ncyBvciBlbWFpbFxuXHQgKiBhZGRyZXNzZXMuXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBkb21haW4gVGhlIGRvbWFpbiBuYW1lIG9yIGVtYWlsIGFkZHJlc3MuXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGZvciBldmVyeVxuXHQgKiBjaGFyYWN0ZXIuXG5cdCAqIEByZXR1cm5zIHtBcnJheX0gQSBuZXcgc3RyaW5nIG9mIGNoYXJhY3RlcnMgcmV0dXJuZWQgYnkgdGhlIGNhbGxiYWNrXG5cdCAqIGZ1bmN0aW9uLlxuXHQgKi9cblx0ZnVuY3Rpb24gbWFwRG9tYWluKHN0cmluZywgZm4pIHtcblx0XHR2YXIgcGFydHMgPSBzdHJpbmcuc3BsaXQoJ0AnKTtcblx0XHR2YXIgcmVzdWx0ID0gJyc7XG5cdFx0aWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcblx0XHRcdC8vIEluIGVtYWlsIGFkZHJlc3Nlcywgb25seSB0aGUgZG9tYWluIG5hbWUgc2hvdWxkIGJlIHB1bnljb2RlZC4gTGVhdmVcblx0XHRcdC8vIHRoZSBsb2NhbCBwYXJ0IChpLmUuIGV2ZXJ5dGhpbmcgdXAgdG8gYEBgKSBpbnRhY3QuXG5cdFx0XHRyZXN1bHQgPSBwYXJ0c1swXSArICdAJztcblx0XHRcdHN0cmluZyA9IHBhcnRzWzFdO1xuXHRcdH1cblx0XHQvLyBBdm9pZCBgc3BsaXQocmVnZXgpYCBmb3IgSUU4IGNvbXBhdGliaWxpdHkuIFNlZSAjMTcuXG5cdFx0c3RyaW5nID0gc3RyaW5nLnJlcGxhY2UocmVnZXhTZXBhcmF0b3JzLCAnXFx4MkUnKTtcblx0XHR2YXIgbGFiZWxzID0gc3RyaW5nLnNwbGl0KCcuJyk7XG5cdFx0dmFyIGVuY29kZWQgPSBtYXAobGFiZWxzLCBmbikuam9pbignLicpO1xuXHRcdHJldHVybiByZXN1bHQgKyBlbmNvZGVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgbnVtZXJpYyBjb2RlIHBvaW50cyBvZiBlYWNoIFVuaWNvZGVcblx0ICogY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcuIFdoaWxlIEphdmFTY3JpcHQgdXNlcyBVQ1MtMiBpbnRlcm5hbGx5LFxuXHQgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgY29udmVydCBhIHBhaXIgb2Ygc3Vycm9nYXRlIGhhbHZlcyAoZWFjaCBvZiB3aGljaFxuXHQgKiBVQ1MtMiBleHBvc2VzIGFzIHNlcGFyYXRlIGNoYXJhY3RlcnMpIGludG8gYSBzaW5nbGUgY29kZSBwb2ludCxcblx0ICogbWF0Y2hpbmcgVVRGLTE2LlxuXHQgKiBAc2VlIGBwdW55Y29kZS51Y3MyLmVuY29kZWBcblx0ICogQHNlZSA8aHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmc+XG5cdCAqIEBtZW1iZXJPZiBwdW55Y29kZS51Y3MyXG5cdCAqIEBuYW1lIGRlY29kZVxuXHQgKiBAcGFyYW0ge1N0cmluZ30gc3RyaW5nIFRoZSBVbmljb2RlIGlucHV0IHN0cmluZyAoVUNTLTIpLlxuXHQgKiBAcmV0dXJucyB7QXJyYXl9IFRoZSBuZXcgYXJyYXkgb2YgY29kZSBwb2ludHMuXG5cdCAqL1xuXHRmdW5jdGlvbiB1Y3MyZGVjb2RlKHN0cmluZykge1xuXHRcdHZhciBvdXRwdXQgPSBbXSxcblx0XHQgICAgY291bnRlciA9IDAsXG5cdFx0ICAgIGxlbmd0aCA9IHN0cmluZy5sZW5ndGgsXG5cdFx0ICAgIHZhbHVlLFxuXHRcdCAgICBleHRyYTtcblx0XHR3aGlsZSAoY291bnRlciA8IGxlbmd0aCkge1xuXHRcdFx0dmFsdWUgPSBzdHJpbmcuY2hhckNvZGVBdChjb3VudGVyKyspO1xuXHRcdFx0aWYgKHZhbHVlID49IDB4RDgwMCAmJiB2YWx1ZSA8PSAweERCRkYgJiYgY291bnRlciA8IGxlbmd0aCkge1xuXHRcdFx0XHQvLyBoaWdoIHN1cnJvZ2F0ZSwgYW5kIHRoZXJlIGlzIGEgbmV4dCBjaGFyYWN0ZXJcblx0XHRcdFx0ZXh0cmEgPSBzdHJpbmcuY2hhckNvZGVBdChjb3VudGVyKyspO1xuXHRcdFx0XHRpZiAoKGV4dHJhICYgMHhGQzAwKSA9PSAweERDMDApIHsgLy8gbG93IHN1cnJvZ2F0ZVxuXHRcdFx0XHRcdG91dHB1dC5wdXNoKCgodmFsdWUgJiAweDNGRikgPDwgMTApICsgKGV4dHJhICYgMHgzRkYpICsgMHgxMDAwMCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gdW5tYXRjaGVkIHN1cnJvZ2F0ZTsgb25seSBhcHBlbmQgdGhpcyBjb2RlIHVuaXQsIGluIGNhc2UgdGhlIG5leHRcblx0XHRcdFx0XHQvLyBjb2RlIHVuaXQgaXMgdGhlIGhpZ2ggc3Vycm9nYXRlIG9mIGEgc3Vycm9nYXRlIHBhaXJcblx0XHRcdFx0XHRvdXRwdXQucHVzaCh2YWx1ZSk7XG5cdFx0XHRcdFx0Y291bnRlci0tO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRvdXRwdXQucHVzaCh2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBvdXRwdXQ7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIHN0cmluZyBiYXNlZCBvbiBhbiBhcnJheSBvZiBudW1lcmljIGNvZGUgcG9pbnRzLlxuXHQgKiBAc2VlIGBwdW55Y29kZS51Y3MyLmRlY29kZWBcblx0ICogQG1lbWJlck9mIHB1bnljb2RlLnVjczJcblx0ICogQG5hbWUgZW5jb2RlXG5cdCAqIEBwYXJhbSB7QXJyYXl9IGNvZGVQb2ludHMgVGhlIGFycmF5IG9mIG51bWVyaWMgY29kZSBwb2ludHMuXG5cdCAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBuZXcgVW5pY29kZSBzdHJpbmcgKFVDUy0yKS5cblx0ICovXG5cdGZ1bmN0aW9uIHVjczJlbmNvZGUoYXJyYXkpIHtcblx0XHRyZXR1cm4gbWFwKGFycmF5LCBmdW5jdGlvbih2YWx1ZSkge1xuXHRcdFx0dmFyIG91dHB1dCA9ICcnO1xuXHRcdFx0aWYgKHZhbHVlID4gMHhGRkZGKSB7XG5cdFx0XHRcdHZhbHVlIC09IDB4MTAwMDA7XG5cdFx0XHRcdG91dHB1dCArPSBzdHJpbmdGcm9tQ2hhckNvZGUodmFsdWUgPj4+IDEwICYgMHgzRkYgfCAweEQ4MDApO1xuXHRcdFx0XHR2YWx1ZSA9IDB4REMwMCB8IHZhbHVlICYgMHgzRkY7XG5cdFx0XHR9XG5cdFx0XHRvdXRwdXQgKz0gc3RyaW5nRnJvbUNoYXJDb2RlKHZhbHVlKTtcblx0XHRcdHJldHVybiBvdXRwdXQ7XG5cdFx0fSkuam9pbignJyk7XG5cdH1cblxuXHQvKipcblx0ICogQ29udmVydHMgYSBiYXNpYyBjb2RlIHBvaW50IGludG8gYSBkaWdpdC9pbnRlZ2VyLlxuXHQgKiBAc2VlIGBkaWdpdFRvQmFzaWMoKWBcblx0ICogQHByaXZhdGVcblx0ICogQHBhcmFtIHtOdW1iZXJ9IGNvZGVQb2ludCBUaGUgYmFzaWMgbnVtZXJpYyBjb2RlIHBvaW50IHZhbHVlLlxuXHQgKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbnVtZXJpYyB2YWx1ZSBvZiBhIGJhc2ljIGNvZGUgcG9pbnQgKGZvciB1c2UgaW5cblx0ICogcmVwcmVzZW50aW5nIGludGVnZXJzKSBpbiB0aGUgcmFuZ2UgYDBgIHRvIGBiYXNlIC0gMWAsIG9yIGBiYXNlYCBpZlxuXHQgKiB0aGUgY29kZSBwb2ludCBkb2VzIG5vdCByZXByZXNlbnQgYSB2YWx1ZS5cblx0ICovXG5cdGZ1bmN0aW9uIGJhc2ljVG9EaWdpdChjb2RlUG9pbnQpIHtcblx0XHRpZiAoY29kZVBvaW50IC0gNDggPCAxMCkge1xuXHRcdFx0cmV0dXJuIGNvZGVQb2ludCAtIDIyO1xuXHRcdH1cblx0XHRpZiAoY29kZVBvaW50IC0gNjUgPCAyNikge1xuXHRcdFx0cmV0dXJuIGNvZGVQb2ludCAtIDY1O1xuXHRcdH1cblx0XHRpZiAoY29kZVBvaW50IC0gOTcgPCAyNikge1xuXHRcdFx0cmV0dXJuIGNvZGVQb2ludCAtIDk3O1xuXHRcdH1cblx0XHRyZXR1cm4gYmFzZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZXJ0cyBhIGRpZ2l0L2ludGVnZXIgaW50byBhIGJhc2ljIGNvZGUgcG9pbnQuXG5cdCAqIEBzZWUgYGJhc2ljVG9EaWdpdCgpYFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcGFyYW0ge051bWJlcn0gZGlnaXQgVGhlIG51bWVyaWMgdmFsdWUgb2YgYSBiYXNpYyBjb2RlIHBvaW50LlxuXHQgKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgYmFzaWMgY29kZSBwb2ludCB3aG9zZSB2YWx1ZSAod2hlbiB1c2VkIGZvclxuXHQgKiByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGlzIGBkaWdpdGAsIHdoaWNoIG5lZWRzIHRvIGJlIGluIHRoZSByYW5nZVxuXHQgKiBgMGAgdG8gYGJhc2UgLSAxYC4gSWYgYGZsYWdgIGlzIG5vbi16ZXJvLCB0aGUgdXBwZXJjYXNlIGZvcm0gaXNcblx0ICogdXNlZDsgZWxzZSwgdGhlIGxvd2VyY2FzZSBmb3JtIGlzIHVzZWQuIFRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWRcblx0ICogaWYgYGZsYWdgIGlzIG5vbi16ZXJvIGFuZCBgZGlnaXRgIGhhcyBubyB1cHBlcmNhc2UgZm9ybS5cblx0ICovXG5cdGZ1bmN0aW9uIGRpZ2l0VG9CYXNpYyhkaWdpdCwgZmxhZykge1xuXHRcdC8vICAwLi4yNSBtYXAgdG8gQVNDSUkgYS4ueiBvciBBLi5aXG5cdFx0Ly8gMjYuLjM1IG1hcCB0byBBU0NJSSAwLi45XG5cdFx0cmV0dXJuIGRpZ2l0ICsgMjIgKyA3NSAqIChkaWdpdCA8IDI2KSAtICgoZmxhZyAhPSAwKSA8PCA1KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCaWFzIGFkYXB0YXRpb24gZnVuY3Rpb24gYXMgcGVyIHNlY3Rpb24gMy40IG9mIFJGQyAzNDkyLlxuXHQgKiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzNDkyI3NlY3Rpb24tMy40XG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRmdW5jdGlvbiBhZGFwdChkZWx0YSwgbnVtUG9pbnRzLCBmaXJzdFRpbWUpIHtcblx0XHR2YXIgayA9IDA7XG5cdFx0ZGVsdGEgPSBmaXJzdFRpbWUgPyBmbG9vcihkZWx0YSAvIGRhbXApIDogZGVsdGEgPj4gMTtcblx0XHRkZWx0YSArPSBmbG9vcihkZWx0YSAvIG51bVBvaW50cyk7XG5cdFx0Zm9yICgvKiBubyBpbml0aWFsaXphdGlvbiAqLzsgZGVsdGEgPiBiYXNlTWludXNUTWluICogdE1heCA+PiAxOyBrICs9IGJhc2UpIHtcblx0XHRcdGRlbHRhID0gZmxvb3IoZGVsdGEgLyBiYXNlTWludXNUTWluKTtcblx0XHR9XG5cdFx0cmV0dXJuIGZsb29yKGsgKyAoYmFzZU1pbnVzVE1pbiArIDEpICogZGVsdGEgLyAoZGVsdGEgKyBza2V3KSk7XG5cdH1cblxuXHQvKipcblx0ICogQ29udmVydHMgYSBQdW55Y29kZSBzdHJpbmcgb2YgQVNDSUktb25seSBzeW1ib2xzIHRvIGEgc3RyaW5nIG9mIFVuaWNvZGVcblx0ICogc3ltYm9scy5cblx0ICogQG1lbWJlck9mIHB1bnljb2RlXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBpbnB1dCBUaGUgUHVueWNvZGUgc3RyaW5nIG9mIEFTQ0lJLW9ubHkgc3ltYm9scy5cblx0ICogQHJldHVybnMge1N0cmluZ30gVGhlIHJlc3VsdGluZyBzdHJpbmcgb2YgVW5pY29kZSBzeW1ib2xzLlxuXHQgKi9cblx0ZnVuY3Rpb24gZGVjb2RlKGlucHV0KSB7XG5cdFx0Ly8gRG9uJ3QgdXNlIFVDUy0yXG5cdFx0dmFyIG91dHB1dCA9IFtdLFxuXHRcdCAgICBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aCxcblx0XHQgICAgb3V0LFxuXHRcdCAgICBpID0gMCxcblx0XHQgICAgbiA9IGluaXRpYWxOLFxuXHRcdCAgICBiaWFzID0gaW5pdGlhbEJpYXMsXG5cdFx0ICAgIGJhc2ljLFxuXHRcdCAgICBqLFxuXHRcdCAgICBpbmRleCxcblx0XHQgICAgb2xkaSxcblx0XHQgICAgdyxcblx0XHQgICAgayxcblx0XHQgICAgZGlnaXQsXG5cdFx0ICAgIHQsXG5cdFx0ICAgIC8qKiBDYWNoZWQgY2FsY3VsYXRpb24gcmVzdWx0cyAqL1xuXHRcdCAgICBiYXNlTWludXNUO1xuXG5cdFx0Ly8gSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50czogbGV0IGBiYXNpY2AgYmUgdGhlIG51bWJlciBvZiBpbnB1dCBjb2RlXG5cdFx0Ly8gcG9pbnRzIGJlZm9yZSB0aGUgbGFzdCBkZWxpbWl0ZXIsIG9yIGAwYCBpZiB0aGVyZSBpcyBub25lLCB0aGVuIGNvcHlcblx0XHQvLyB0aGUgZmlyc3QgYmFzaWMgY29kZSBwb2ludHMgdG8gdGhlIG91dHB1dC5cblxuXHRcdGJhc2ljID0gaW5wdXQubGFzdEluZGV4T2YoZGVsaW1pdGVyKTtcblx0XHRpZiAoYmFzaWMgPCAwKSB7XG5cdFx0XHRiYXNpYyA9IDA7XG5cdFx0fVxuXG5cdFx0Zm9yIChqID0gMDsgaiA8IGJhc2ljOyArK2opIHtcblx0XHRcdC8vIGlmIGl0J3Mgbm90IGEgYmFzaWMgY29kZSBwb2ludFxuXHRcdFx0aWYgKGlucHV0LmNoYXJDb2RlQXQoaikgPj0gMHg4MCkge1xuXHRcdFx0XHRlcnJvcignbm90LWJhc2ljJyk7XG5cdFx0XHR9XG5cdFx0XHRvdXRwdXQucHVzaChpbnB1dC5jaGFyQ29kZUF0KGopKTtcblx0XHR9XG5cblx0XHQvLyBNYWluIGRlY29kaW5nIGxvb3A6IHN0YXJ0IGp1c3QgYWZ0ZXIgdGhlIGxhc3QgZGVsaW1pdGVyIGlmIGFueSBiYXNpYyBjb2RlXG5cdFx0Ly8gcG9pbnRzIHdlcmUgY29waWVkOyBzdGFydCBhdCB0aGUgYmVnaW5uaW5nIG90aGVyd2lzZS5cblxuXHRcdGZvciAoaW5kZXggPSBiYXNpYyA+IDAgPyBiYXNpYyArIDEgOiAwOyBpbmRleCA8IGlucHV0TGVuZ3RoOyAvKiBubyBmaW5hbCBleHByZXNzaW9uICovKSB7XG5cblx0XHRcdC8vIGBpbmRleGAgaXMgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0byBiZSBjb25zdW1lZC5cblx0XHRcdC8vIERlY29kZSBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyIGludG8gYGRlbHRhYCxcblx0XHRcdC8vIHdoaWNoIGdldHMgYWRkZWQgdG8gYGlgLiBUaGUgb3ZlcmZsb3cgY2hlY2tpbmcgaXMgZWFzaWVyXG5cdFx0XHQvLyBpZiB3ZSBpbmNyZWFzZSBgaWAgYXMgd2UgZ28sIHRoZW4gc3VidHJhY3Qgb2ZmIGl0cyBzdGFydGluZ1xuXHRcdFx0Ly8gdmFsdWUgYXQgdGhlIGVuZCB0byBvYnRhaW4gYGRlbHRhYC5cblx0XHRcdGZvciAob2xkaSA9IGksIHcgPSAxLCBrID0gYmFzZTsgLyogbm8gY29uZGl0aW9uICovOyBrICs9IGJhc2UpIHtcblxuXHRcdFx0XHRpZiAoaW5kZXggPj0gaW5wdXRMZW5ndGgpIHtcblx0XHRcdFx0XHRlcnJvcignaW52YWxpZC1pbnB1dCcpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGlnaXQgPSBiYXNpY1RvRGlnaXQoaW5wdXQuY2hhckNvZGVBdChpbmRleCsrKSk7XG5cblx0XHRcdFx0aWYgKGRpZ2l0ID49IGJhc2UgfHwgZGlnaXQgPiBmbG9vcigobWF4SW50IC0gaSkgLyB3KSkge1xuXHRcdFx0XHRcdGVycm9yKCdvdmVyZmxvdycpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aSArPSBkaWdpdCAqIHc7XG5cdFx0XHRcdHQgPSBrIDw9IGJpYXMgPyB0TWluIDogKGsgPj0gYmlhcyArIHRNYXggPyB0TWF4IDogayAtIGJpYXMpO1xuXG5cdFx0XHRcdGlmIChkaWdpdCA8IHQpIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGJhc2VNaW51c1QgPSBiYXNlIC0gdDtcblx0XHRcdFx0aWYgKHcgPiBmbG9vcihtYXhJbnQgLyBiYXNlTWludXNUKSkge1xuXHRcdFx0XHRcdGVycm9yKCdvdmVyZmxvdycpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dyAqPSBiYXNlTWludXNUO1xuXG5cdFx0XHR9XG5cblx0XHRcdG91dCA9IG91dHB1dC5sZW5ndGggKyAxO1xuXHRcdFx0YmlhcyA9IGFkYXB0KGkgLSBvbGRpLCBvdXQsIG9sZGkgPT0gMCk7XG5cblx0XHRcdC8vIGBpYCB3YXMgc3VwcG9zZWQgdG8gd3JhcCBhcm91bmQgZnJvbSBgb3V0YCB0byBgMGAsXG5cdFx0XHQvLyBpbmNyZW1lbnRpbmcgYG5gIGVhY2ggdGltZSwgc28gd2UnbGwgZml4IHRoYXQgbm93OlxuXHRcdFx0aWYgKGZsb29yKGkgLyBvdXQpID4gbWF4SW50IC0gbikge1xuXHRcdFx0XHRlcnJvcignb3ZlcmZsb3cnKTtcblx0XHRcdH1cblxuXHRcdFx0biArPSBmbG9vcihpIC8gb3V0KTtcblx0XHRcdGkgJT0gb3V0O1xuXG5cdFx0XHQvLyBJbnNlcnQgYG5gIGF0IHBvc2l0aW9uIGBpYCBvZiB0aGUgb3V0cHV0XG5cdFx0XHRvdXRwdXQuc3BsaWNlKGkrKywgMCwgbik7XG5cblx0XHR9XG5cblx0XHRyZXR1cm4gdWNzMmVuY29kZShvdXRwdXQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlcnRzIGEgc3RyaW5nIG9mIFVuaWNvZGUgc3ltYm9scyAoZS5nLiBhIGRvbWFpbiBuYW1lIGxhYmVsKSB0byBhXG5cdCAqIFB1bnljb2RlIHN0cmluZyBvZiBBU0NJSS1vbmx5IHN5bWJvbHMuXG5cdCAqIEBtZW1iZXJPZiBwdW55Y29kZVxuXHQgKiBAcGFyYW0ge1N0cmluZ30gaW5wdXQgVGhlIHN0cmluZyBvZiBVbmljb2RlIHN5bWJvbHMuXG5cdCAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSByZXN1bHRpbmcgUHVueWNvZGUgc3RyaW5nIG9mIEFTQ0lJLW9ubHkgc3ltYm9scy5cblx0ICovXG5cdGZ1bmN0aW9uIGVuY29kZShpbnB1dCkge1xuXHRcdHZhciBuLFxuXHRcdCAgICBkZWx0YSxcblx0XHQgICAgaGFuZGxlZENQQ291bnQsXG5cdFx0ICAgIGJhc2ljTGVuZ3RoLFxuXHRcdCAgICBiaWFzLFxuXHRcdCAgICBqLFxuXHRcdCAgICBtLFxuXHRcdCAgICBxLFxuXHRcdCAgICBrLFxuXHRcdCAgICB0LFxuXHRcdCAgICBjdXJyZW50VmFsdWUsXG5cdFx0ICAgIG91dHB1dCA9IFtdLFxuXHRcdCAgICAvKiogYGlucHV0TGVuZ3RoYCB3aWxsIGhvbGQgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiBgaW5wdXRgLiAqL1xuXHRcdCAgICBpbnB1dExlbmd0aCxcblx0XHQgICAgLyoqIENhY2hlZCBjYWxjdWxhdGlvbiByZXN1bHRzICovXG5cdFx0ICAgIGhhbmRsZWRDUENvdW50UGx1c09uZSxcblx0XHQgICAgYmFzZU1pbnVzVCxcblx0XHQgICAgcU1pbnVzVDtcblxuXHRcdC8vIENvbnZlcnQgdGhlIGlucHV0IGluIFVDUy0yIHRvIFVuaWNvZGVcblx0XHRpbnB1dCA9IHVjczJkZWNvZGUoaW5wdXQpO1xuXG5cdFx0Ly8gQ2FjaGUgdGhlIGxlbmd0aFxuXHRcdGlucHV0TGVuZ3RoID0gaW5wdXQubGVuZ3RoO1xuXG5cdFx0Ly8gSW5pdGlhbGl6ZSB0aGUgc3RhdGVcblx0XHRuID0gaW5pdGlhbE47XG5cdFx0ZGVsdGEgPSAwO1xuXHRcdGJpYXMgPSBpbml0aWFsQmlhcztcblxuXHRcdC8vIEhhbmRsZSB0aGUgYmFzaWMgY29kZSBwb2ludHNcblx0XHRmb3IgKGogPSAwOyBqIDwgaW5wdXRMZW5ndGg7ICsraikge1xuXHRcdFx0Y3VycmVudFZhbHVlID0gaW5wdXRbal07XG5cdFx0XHRpZiAoY3VycmVudFZhbHVlIDwgMHg4MCkge1xuXHRcdFx0XHRvdXRwdXQucHVzaChzdHJpbmdGcm9tQ2hhckNvZGUoY3VycmVudFZhbHVlKSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aGFuZGxlZENQQ291bnQgPSBiYXNpY0xlbmd0aCA9IG91dHB1dC5sZW5ndGg7XG5cblx0XHQvLyBgaGFuZGxlZENQQ291bnRgIGlzIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgdGhhdCBoYXZlIGJlZW4gaGFuZGxlZDtcblx0XHQvLyBgYmFzaWNMZW5ndGhgIGlzIHRoZSBudW1iZXIgb2YgYmFzaWMgY29kZSBwb2ludHMuXG5cblx0XHQvLyBGaW5pc2ggdGhlIGJhc2ljIHN0cmluZyAtIGlmIGl0IGlzIG5vdCBlbXB0eSAtIHdpdGggYSBkZWxpbWl0ZXJcblx0XHRpZiAoYmFzaWNMZW5ndGgpIHtcblx0XHRcdG91dHB1dC5wdXNoKGRlbGltaXRlcik7XG5cdFx0fVxuXG5cdFx0Ly8gTWFpbiBlbmNvZGluZyBsb29wOlxuXHRcdHdoaWxlIChoYW5kbGVkQ1BDb3VudCA8IGlucHV0TGVuZ3RoKSB7XG5cblx0XHRcdC8vIEFsbCBub24tYmFzaWMgY29kZSBwb2ludHMgPCBuIGhhdmUgYmVlbiBoYW5kbGVkIGFscmVhZHkuIEZpbmQgdGhlIG5leHRcblx0XHRcdC8vIGxhcmdlciBvbmU6XG5cdFx0XHRmb3IgKG0gPSBtYXhJbnQsIGogPSAwOyBqIDwgaW5wdXRMZW5ndGg7ICsraikge1xuXHRcdFx0XHRjdXJyZW50VmFsdWUgPSBpbnB1dFtqXTtcblx0XHRcdFx0aWYgKGN1cnJlbnRWYWx1ZSA+PSBuICYmIGN1cnJlbnRWYWx1ZSA8IG0pIHtcblx0XHRcdFx0XHRtID0gY3VycmVudFZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEluY3JlYXNlIGBkZWx0YWAgZW5vdWdoIHRvIGFkdmFuY2UgdGhlIGRlY29kZXIncyA8bixpPiBzdGF0ZSB0byA8bSwwPixcblx0XHRcdC8vIGJ1dCBndWFyZCBhZ2FpbnN0IG92ZXJmbG93XG5cdFx0XHRoYW5kbGVkQ1BDb3VudFBsdXNPbmUgPSBoYW5kbGVkQ1BDb3VudCArIDE7XG5cdFx0XHRpZiAobSAtIG4gPiBmbG9vcigobWF4SW50IC0gZGVsdGEpIC8gaGFuZGxlZENQQ291bnRQbHVzT25lKSkge1xuXHRcdFx0XHRlcnJvcignb3ZlcmZsb3cnKTtcblx0XHRcdH1cblxuXHRcdFx0ZGVsdGEgKz0gKG0gLSBuKSAqIGhhbmRsZWRDUENvdW50UGx1c09uZTtcblx0XHRcdG4gPSBtO1xuXG5cdFx0XHRmb3IgKGogPSAwOyBqIDwgaW5wdXRMZW5ndGg7ICsraikge1xuXHRcdFx0XHRjdXJyZW50VmFsdWUgPSBpbnB1dFtqXTtcblxuXHRcdFx0XHRpZiAoY3VycmVudFZhbHVlIDwgbiAmJiArK2RlbHRhID4gbWF4SW50KSB7XG5cdFx0XHRcdFx0ZXJyb3IoJ292ZXJmbG93Jyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoY3VycmVudFZhbHVlID09IG4pIHtcblx0XHRcdFx0XHQvLyBSZXByZXNlbnQgZGVsdGEgYXMgYSBnZW5lcmFsaXplZCB2YXJpYWJsZS1sZW5ndGggaW50ZWdlclxuXHRcdFx0XHRcdGZvciAocSA9IGRlbHRhLCBrID0gYmFzZTsgLyogbm8gY29uZGl0aW9uICovOyBrICs9IGJhc2UpIHtcblx0XHRcdFx0XHRcdHQgPSBrIDw9IGJpYXMgPyB0TWluIDogKGsgPj0gYmlhcyArIHRNYXggPyB0TWF4IDogayAtIGJpYXMpO1xuXHRcdFx0XHRcdFx0aWYgKHEgPCB0KSB7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cU1pbnVzVCA9IHEgLSB0O1xuXHRcdFx0XHRcdFx0YmFzZU1pbnVzVCA9IGJhc2UgLSB0O1xuXHRcdFx0XHRcdFx0b3V0cHV0LnB1c2goXG5cdFx0XHRcdFx0XHRcdHN0cmluZ0Zyb21DaGFyQ29kZShkaWdpdFRvQmFzaWModCArIHFNaW51c1QgJSBiYXNlTWludXNULCAwKSlcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRxID0gZmxvb3IocU1pbnVzVCAvIGJhc2VNaW51c1QpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdG91dHB1dC5wdXNoKHN0cmluZ0Zyb21DaGFyQ29kZShkaWdpdFRvQmFzaWMocSwgMCkpKTtcblx0XHRcdFx0XHRiaWFzID0gYWRhcHQoZGVsdGEsIGhhbmRsZWRDUENvdW50UGx1c09uZSwgaGFuZGxlZENQQ291bnQgPT0gYmFzaWNMZW5ndGgpO1xuXHRcdFx0XHRcdGRlbHRhID0gMDtcblx0XHRcdFx0XHQrK2hhbmRsZWRDUENvdW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCsrZGVsdGE7XG5cdFx0XHQrK247XG5cblx0XHR9XG5cdFx0cmV0dXJuIG91dHB1dC5qb2luKCcnKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZXJ0cyBhIFB1bnljb2RlIHN0cmluZyByZXByZXNlbnRpbmcgYSBkb21haW4gbmFtZSBvciBhbiBlbWFpbCBhZGRyZXNzXG5cdCAqIHRvIFVuaWNvZGUuIE9ubHkgdGhlIFB1bnljb2RlZCBwYXJ0cyBvZiB0aGUgaW5wdXQgd2lsbCBiZSBjb252ZXJ0ZWQsIGkuZS5cblx0ICogaXQgZG9lc24ndCBtYXR0ZXIgaWYgeW91IGNhbGwgaXQgb24gYSBzdHJpbmcgdGhhdCBoYXMgYWxyZWFkeSBiZWVuXG5cdCAqIGNvbnZlcnRlZCB0byBVbmljb2RlLlxuXHQgKiBAbWVtYmVyT2YgcHVueWNvZGVcblx0ICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBQdW55Y29kZWQgZG9tYWluIG5hbWUgb3IgZW1haWwgYWRkcmVzcyB0b1xuXHQgKiBjb252ZXJ0IHRvIFVuaWNvZGUuXG5cdCAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBVbmljb2RlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBQdW55Y29kZVxuXHQgKiBzdHJpbmcuXG5cdCAqL1xuXHRmdW5jdGlvbiB0b1VuaWNvZGUoaW5wdXQpIHtcblx0XHRyZXR1cm4gbWFwRG9tYWluKGlucHV0LCBmdW5jdGlvbihzdHJpbmcpIHtcblx0XHRcdHJldHVybiByZWdleFB1bnljb2RlLnRlc3Qoc3RyaW5nKVxuXHRcdFx0XHQ/IGRlY29kZShzdHJpbmcuc2xpY2UoNCkudG9Mb3dlckNhc2UoKSlcblx0XHRcdFx0OiBzdHJpbmc7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQ29udmVydHMgYSBVbmljb2RlIHN0cmluZyByZXByZXNlbnRpbmcgYSBkb21haW4gbmFtZSBvciBhbiBlbWFpbCBhZGRyZXNzIHRvXG5cdCAqIFB1bnljb2RlLiBPbmx5IHRoZSBub24tQVNDSUkgcGFydHMgb2YgdGhlIGRvbWFpbiBuYW1lIHdpbGwgYmUgY29udmVydGVkLFxuXHQgKiBpLmUuIGl0IGRvZXNuJ3QgbWF0dGVyIGlmIHlvdSBjYWxsIGl0IHdpdGggYSBkb21haW4gdGhhdCdzIGFscmVhZHkgaW5cblx0ICogQVNDSUkuXG5cdCAqIEBtZW1iZXJPZiBwdW55Y29kZVxuXHQgKiBAcGFyYW0ge1N0cmluZ30gaW5wdXQgVGhlIGRvbWFpbiBuYW1lIG9yIGVtYWlsIGFkZHJlc3MgdG8gY29udmVydCwgYXMgYVxuXHQgKiBVbmljb2RlIHN0cmluZy5cblx0ICogQHJldHVybnMge1N0cmluZ30gVGhlIFB1bnljb2RlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBkb21haW4gbmFtZSBvclxuXHQgKiBlbWFpbCBhZGRyZXNzLlxuXHQgKi9cblx0ZnVuY3Rpb24gdG9BU0NJSShpbnB1dCkge1xuXHRcdHJldHVybiBtYXBEb21haW4oaW5wdXQsIGZ1bmN0aW9uKHN0cmluZykge1xuXHRcdFx0cmV0dXJuIHJlZ2V4Tm9uQVNDSUkudGVzdChzdHJpbmcpXG5cdFx0XHRcdD8gJ3huLS0nICsgZW5jb2RlKHN0cmluZylcblx0XHRcdFx0OiBzdHJpbmc7XG5cdFx0fSk7XG5cdH1cblxuXHQvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuXHQvKiogRGVmaW5lIHRoZSBwdWJsaWMgQVBJICovXG5cdHB1bnljb2RlID0ge1xuXHRcdC8qKlxuXHRcdCAqIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBQdW55Y29kZS5qcyB2ZXJzaW9uIG51bWJlci5cblx0XHQgKiBAbWVtYmVyT2YgcHVueWNvZGVcblx0XHQgKiBAdHlwZSBTdHJpbmdcblx0XHQgKi9cblx0XHQndmVyc2lvbic6ICcxLjMuMicsXG5cdFx0LyoqXG5cdFx0ICogQW4gb2JqZWN0IG9mIG1ldGhvZHMgdG8gY29udmVydCBmcm9tIEphdmFTY3JpcHQncyBpbnRlcm5hbCBjaGFyYWN0ZXJcblx0XHQgKiByZXByZXNlbnRhdGlvbiAoVUNTLTIpIHRvIFVuaWNvZGUgY29kZSBwb2ludHMsIGFuZCBiYWNrLlxuXHRcdCAqIEBzZWUgPGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nPlxuXHRcdCAqIEBtZW1iZXJPZiBwdW55Y29kZVxuXHRcdCAqIEB0eXBlIE9iamVjdFxuXHRcdCAqL1xuXHRcdCd1Y3MyJzoge1xuXHRcdFx0J2RlY29kZSc6IHVjczJkZWNvZGUsXG5cdFx0XHQnZW5jb2RlJzogdWNzMmVuY29kZVxuXHRcdH0sXG5cdFx0J2RlY29kZSc6IGRlY29kZSxcblx0XHQnZW5jb2RlJzogZW5jb2RlLFxuXHRcdCd0b0FTQ0lJJzogdG9BU0NJSSxcblx0XHQndG9Vbmljb2RlJzogdG9Vbmljb2RlXG5cdH07XG5cblx0LyoqIEV4cG9zZSBgcHVueWNvZGVgICovXG5cdC8vIFNvbWUgQU1EIGJ1aWxkIG9wdGltaXplcnMsIGxpa2Ugci5qcywgY2hlY2sgZm9yIHNwZWNpZmljIGNvbmRpdGlvbiBwYXR0ZXJuc1xuXHQvLyBsaWtlIHRoZSBmb2xsb3dpbmc6XG5cdGlmIChcblx0XHR0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiZcblx0XHR0eXBlb2YgZGVmaW5lLmFtZCA9PSAnb2JqZWN0JyAmJlxuXHRcdGRlZmluZS5hbWRcblx0KSB7XG5cdFx0ZGVmaW5lKCdwdW55Y29kZScsIGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIHB1bnljb2RlO1xuXHRcdH0pO1xuXHR9IGVsc2UgaWYgKGZyZWVFeHBvcnRzICYmIGZyZWVNb2R1bGUpIHtcblx0XHRpZiAobW9kdWxlLmV4cG9ydHMgPT0gZnJlZUV4cG9ydHMpIHsgLy8gaW4gTm9kZS5qcyBvciBSaW5nb0pTIHYwLjguMCtcblx0XHRcdGZyZWVNb2R1bGUuZXhwb3J0cyA9IHB1bnljb2RlO1xuXHRcdH0gZWxzZSB7IC8vIGluIE5hcndoYWwgb3IgUmluZ29KUyB2MC43LjAtXG5cdFx0XHRmb3IgKGtleSBpbiBwdW55Y29kZSkge1xuXHRcdFx0XHRwdW55Y29kZS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIChmcmVlRXhwb3J0c1trZXldID0gcHVueWNvZGVba2V5XSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IGVsc2UgeyAvLyBpbiBSaGlubyBvciBhIHdlYiBicm93c2VyXG5cdFx0cm9vdC5wdW55Y29kZSA9IHB1bnljb2RlO1xuXHR9XG5cbn0odGhpcykpO1xuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxuLy8gSWYgb2JqLmhhc093blByb3BlcnR5IGhhcyBiZWVuIG92ZXJyaWRkZW4sIHRoZW4gY2FsbGluZ1xuLy8gb2JqLmhhc093blByb3BlcnR5KHByb3ApIHdpbGwgYnJlYWsuXG4vLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9qb3llbnQvbm9kZS9pc3N1ZXMvMTcwN1xuZnVuY3Rpb24gaGFzT3duUHJvcGVydHkob2JqLCBwcm9wKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihxcywgc2VwLCBlcSwgb3B0aW9ucykge1xuICBzZXAgPSBzZXAgfHwgJyYnO1xuICBlcSA9IGVxIHx8ICc9JztcbiAgdmFyIG9iaiA9IHt9O1xuXG4gIGlmICh0eXBlb2YgcXMgIT09ICdzdHJpbmcnIHx8IHFzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICB2YXIgcmVnZXhwID0gL1xcKy9nO1xuICBxcyA9IHFzLnNwbGl0KHNlcCk7XG5cbiAgdmFyIG1heEtleXMgPSAxMDAwO1xuICBpZiAob3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy5tYXhLZXlzID09PSAnbnVtYmVyJykge1xuICAgIG1heEtleXMgPSBvcHRpb25zLm1heEtleXM7XG4gIH1cblxuICB2YXIgbGVuID0gcXMubGVuZ3RoO1xuICAvLyBtYXhLZXlzIDw9IDAgbWVhbnMgdGhhdCB3ZSBzaG91bGQgbm90IGxpbWl0IGtleXMgY291bnRcbiAgaWYgKG1heEtleXMgPiAwICYmIGxlbiA+IG1heEtleXMpIHtcbiAgICBsZW4gPSBtYXhLZXlzO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgIHZhciB4ID0gcXNbaV0ucmVwbGFjZShyZWdleHAsICclMjAnKSxcbiAgICAgICAgaWR4ID0geC5pbmRleE9mKGVxKSxcbiAgICAgICAga3N0ciwgdnN0ciwgaywgdjtcblxuICAgIGlmIChpZHggPj0gMCkge1xuICAgICAga3N0ciA9IHguc3Vic3RyKDAsIGlkeCk7XG4gICAgICB2c3RyID0geC5zdWJzdHIoaWR4ICsgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGtzdHIgPSB4O1xuICAgICAgdnN0ciA9ICcnO1xuICAgIH1cblxuICAgIGsgPSBkZWNvZGVVUklDb21wb25lbnQoa3N0cik7XG4gICAgdiA9IGRlY29kZVVSSUNvbXBvbmVudCh2c3RyKTtcblxuICAgIGlmICghaGFzT3duUHJvcGVydHkob2JqLCBrKSkge1xuICAgICAgb2JqW2tdID0gdjtcbiAgICB9IGVsc2UgaWYgKGlzQXJyYXkob2JqW2tdKSkge1xuICAgICAgb2JqW2tdLnB1c2godik7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9ialtrXSA9IFtvYmpba10sIHZdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmo7XG59O1xuXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gKHhzKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeHMpID09PSAnW29iamVjdCBBcnJheV0nO1xufTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBzdHJpbmdpZnlQcmltaXRpdmUgPSBmdW5jdGlvbih2KSB7XG4gIHN3aXRjaCAodHlwZW9mIHYpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuIHY7XG5cbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIHJldHVybiB2ID8gJ3RydWUnIDogJ2ZhbHNlJztcblxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgICByZXR1cm4gaXNGaW5pdGUodikgPyB2IDogJyc7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICcnO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iaiwgc2VwLCBlcSwgbmFtZSkge1xuICBzZXAgPSBzZXAgfHwgJyYnO1xuICBlcSA9IGVxIHx8ICc9JztcbiAgaWYgKG9iaiA9PT0gbnVsbCkge1xuICAgIG9iaiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBtYXAob2JqZWN0S2V5cyhvYmopLCBmdW5jdGlvbihrKSB7XG4gICAgICB2YXIga3MgPSBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKGspKSArIGVxO1xuICAgICAgaWYgKGlzQXJyYXkob2JqW2tdKSkge1xuICAgICAgICByZXR1cm4gbWFwKG9ialtrXSwgZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiBrcyArIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUodikpO1xuICAgICAgICB9KS5qb2luKHNlcCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ga3MgKyBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKG9ialtrXSkpO1xuICAgICAgfVxuICAgIH0pLmpvaW4oc2VwKTtcblxuICB9XG5cbiAgaWYgKCFuYW1lKSByZXR1cm4gJyc7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKG5hbWUpKSArIGVxICtcbiAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUob2JqKSk7XG59O1xuXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gKHhzKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeHMpID09PSAnW29iamVjdCBBcnJheV0nO1xufTtcblxuZnVuY3Rpb24gbWFwICh4cywgZikge1xuICBpZiAoeHMubWFwKSByZXR1cm4geHMubWFwKGYpO1xuICB2YXIgcmVzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBpKyspIHtcbiAgICByZXMucHVzaChmKHhzW2ldLCBpKSk7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxudmFyIG9iamVjdEtleXMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciByZXMgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSByZXMucHVzaChrZXkpO1xuICB9XG4gIHJldHVybiByZXM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLmRlY29kZSA9IGV4cG9ydHMucGFyc2UgPSByZXF1aXJlKCcuL2RlY29kZScpO1xuZXhwb3J0cy5lbmNvZGUgPSBleHBvcnRzLnN0cmluZ2lmeSA9IHJlcXVpcmUoJy4vZW5jb2RlJyk7XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG4vLyBJZiBvYmouaGFzT3duUHJvcGVydHkgaGFzIGJlZW4gb3ZlcnJpZGRlbiwgdGhlbiBjYWxsaW5nXG4vLyBvYmouaGFzT3duUHJvcGVydHkocHJvcCkgd2lsbCBicmVhay5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2pveWVudC9ub2RlL2lzc3Vlcy8xNzA3XG5mdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHFzLCBzZXAsIGVxLCBvcHRpb25zKSB7XG4gIHNlcCA9IHNlcCB8fCAnJic7XG4gIGVxID0gZXEgfHwgJz0nO1xuICB2YXIgb2JqID0ge307XG5cbiAgaWYgKHR5cGVvZiBxcyAhPT0gJ3N0cmluZycgfHwgcXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHZhciByZWdleHAgPSAvXFwrL2c7XG4gIHFzID0gcXMuc3BsaXQoc2VwKTtcblxuICB2YXIgbWF4S2V5cyA9IDEwMDA7XG4gIGlmIChvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLm1heEtleXMgPT09ICdudW1iZXInKSB7XG4gICAgbWF4S2V5cyA9IG9wdGlvbnMubWF4S2V5cztcbiAgfVxuXG4gIHZhciBsZW4gPSBxcy5sZW5ndGg7XG4gIC8vIG1heEtleXMgPD0gMCBtZWFucyB0aGF0IHdlIHNob3VsZCBub3QgbGltaXQga2V5cyBjb3VudFxuICBpZiAobWF4S2V5cyA+IDAgJiYgbGVuID4gbWF4S2V5cykge1xuICAgIGxlbiA9IG1heEtleXM7XG4gIH1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKSB7XG4gICAgdmFyIHggPSBxc1tpXS5yZXBsYWNlKHJlZ2V4cCwgJyUyMCcpLFxuICAgICAgICBpZHggPSB4LmluZGV4T2YoZXEpLFxuICAgICAgICBrc3RyLCB2c3RyLCBrLCB2O1xuXG4gICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICBrc3RyID0geC5zdWJzdHIoMCwgaWR4KTtcbiAgICAgIHZzdHIgPSB4LnN1YnN0cihpZHggKyAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAga3N0ciA9IHg7XG4gICAgICB2c3RyID0gJyc7XG4gICAgfVxuXG4gICAgayA9IGRlY29kZVVSSUNvbXBvbmVudChrc3RyKTtcbiAgICB2ID0gZGVjb2RlVVJJQ29tcG9uZW50KHZzdHIpO1xuXG4gICAgaWYgKCFoYXNPd25Qcm9wZXJ0eShvYmosIGspKSB7XG4gICAgICBvYmpba10gPSB2O1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvYmpba10pKSB7XG4gICAgICBvYmpba10ucHVzaCh2KTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqW2tdID0gW29ialtrXSwgdl07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9iajtcbn07XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgc3RyaW5naWZ5UHJpbWl0aXZlID0gZnVuY3Rpb24odikge1xuICBzd2l0Y2ggKHR5cGVvZiB2KSB7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiB2O1xuXG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICByZXR1cm4gdiA/ICd0cnVlJyA6ICdmYWxzZSc7XG5cbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIGlzRmluaXRlKHYpID8gdiA6ICcnO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnJztcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvYmosIHNlcCwgZXEsIG5hbWUpIHtcbiAgc2VwID0gc2VwIHx8ICcmJztcbiAgZXEgPSBlcSB8fCAnPSc7XG4gIGlmIChvYmogPT09IG51bGwpIHtcbiAgICBvYmogPSB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5tYXAoZnVuY3Rpb24oaykge1xuICAgICAgdmFyIGtzID0gZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShrKSkgKyBlcTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9ialtrXSkpIHtcbiAgICAgICAgcmV0dXJuIG9ialtrXS5tYXAoZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiBrcyArIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUodikpO1xuICAgICAgICB9KS5qb2luKHNlcCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ga3MgKyBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKG9ialtrXSkpO1xuICAgICAgfVxuICAgIH0pLmpvaW4oc2VwKTtcblxuICB9XG5cbiAgaWYgKCFuYW1lKSByZXR1cm4gJyc7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKG5hbWUpKSArIGVxICtcbiAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUob2JqKSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnXG5cbmZ1bmN0aW9uIG9sZEJyb3dzZXIgKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1NlY3VyZSByYW5kb20gbnVtYmVyIGdlbmVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuXFxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMScpXG59XG5cbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxudmFyIGNyeXB0byA9IGdsb2JhbC5jcnlwdG8gfHwgZ2xvYmFsLm1zQ3J5cHRvXG5cbmlmIChjcnlwdG8gJiYgY3J5cHRvLmdldFJhbmRvbVZhbHVlcykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJhbmRvbUJ5dGVzXG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IG9sZEJyb3dzZXJcbn1cblxuZnVuY3Rpb24gcmFuZG9tQnl0ZXMgKHNpemUsIGNiKSB7XG4gIC8vIHBoYW50b21qcyBuZWVkcyB0byB0aHJvd1xuICBpZiAoc2l6ZSA+IDY1NTM2KSB0aHJvdyBuZXcgRXJyb3IoJ3JlcXVlc3RlZCB0b28gbWFueSByYW5kb20gYnl0ZXMnKVxuICAvLyBpbiBjYXNlIGJyb3dzZXJpZnkgIGlzbid0IHVzaW5nIHRoZSBVaW50OEFycmF5IHZlcnNpb25cbiAgdmFyIHJhd0J5dGVzID0gbmV3IGdsb2JhbC5VaW50OEFycmF5KHNpemUpXG5cbiAgLy8gVGhpcyB3aWxsIG5vdCB3b3JrIGluIG9sZGVyIGJyb3dzZXJzLlxuICAvLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL3dpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzXG4gIGlmIChzaXplID4gMCkgeyAgLy8gZ2V0UmFuZG9tVmFsdWVzIGZhaWxzIG9uIElFIGlmIHNpemUgPT0gMFxuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMocmF3Qnl0ZXMpXG4gIH1cblxuICAvLyBYWFg6IHBoYW50b21qcyBkb2Vzbid0IGxpa2UgYSBidWZmZXIgYmVpbmcgcGFzc2VkIGhlcmVcbiAgdmFyIGJ5dGVzID0gQnVmZmVyLmZyb20ocmF3Qnl0ZXMuYnVmZmVyKVxuXG4gIGlmICh0eXBlb2YgY2IgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7XG4gICAgICBjYihudWxsLCBieXRlcylcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzXG59XG4iLCIndXNlIHN0cmljdCdcblxuZnVuY3Rpb24gb2xkQnJvd3NlciAoKSB7XG4gIHRocm93IG5ldyBFcnJvcignc2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlclxcbnVzZSBjaHJvbWUsIEZpcmVGb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEnKVxufVxudmFyIHNhZmVCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpXG52YXIgcmFuZG9tYnl0ZXMgPSByZXF1aXJlKCdyYW5kb21ieXRlcycpXG52YXIgQnVmZmVyID0gc2FmZUJ1ZmZlci5CdWZmZXJcbnZhciBrQnVmZmVyTWF4TGVuZ3RoID0gc2FmZUJ1ZmZlci5rTWF4TGVuZ3RoXG52YXIgY3J5cHRvID0gZ2xvYmFsLmNyeXB0byB8fCBnbG9iYWwubXNDcnlwdG9cbnZhciBrTWF4VWludDMyID0gTWF0aC5wb3coMiwgMzIpIC0gMVxuZnVuY3Rpb24gYXNzZXJ0T2Zmc2V0IChvZmZzZXQsIGxlbmd0aCkge1xuICBpZiAodHlwZW9mIG9mZnNldCAhPT0gJ251bWJlcicgfHwgb2Zmc2V0ICE9PSBvZmZzZXQpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvZmZzZXQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH1cblxuICBpZiAob2Zmc2V0ID4ga01heFVpbnQzMiB8fCBvZmZzZXQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignb2Zmc2V0IG11c3QgYmUgYSB1aW50MzInKVxuICB9XG5cbiAgaWYgKG9mZnNldCA+IGtCdWZmZXJNYXhMZW5ndGggfHwgb2Zmc2V0ID4gbGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ29mZnNldCBvdXQgb2YgcmFuZ2UnKVxuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydFNpemUgKHNpemUsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicgfHwgc2l6ZSAhPT0gc2l6ZSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3NpemUgbXVzdCBiZSBhIG51bWJlcicpXG4gIH1cblxuICBpZiAoc2l6ZSA+IGtNYXhVaW50MzIgfHwgc2l6ZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzaXplIG11c3QgYmUgYSB1aW50MzInKVxuICB9XG5cbiAgaWYgKHNpemUgKyBvZmZzZXQgPiBsZW5ndGggfHwgc2l6ZSA+IGtCdWZmZXJNYXhMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignYnVmZmVyIHRvbyBzbWFsbCcpXG4gIH1cbn1cbmlmICgoY3J5cHRvICYmIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpIHx8ICFwcm9jZXNzLmJyb3dzZXIpIHtcbiAgZXhwb3J0cy5yYW5kb21GaWxsID0gcmFuZG9tRmlsbFxuICBleHBvcnRzLnJhbmRvbUZpbGxTeW5jID0gcmFuZG9tRmlsbFN5bmNcbn0gZWxzZSB7XG4gIGV4cG9ydHMucmFuZG9tRmlsbCA9IG9sZEJyb3dzZXJcbiAgZXhwb3J0cy5yYW5kb21GaWxsU3luYyA9IG9sZEJyb3dzZXJcbn1cbmZ1bmN0aW9uIHJhbmRvbUZpbGwgKGJ1Ziwgb2Zmc2V0LCBzaXplLCBjYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpICYmICEoYnVmIGluc3RhbmNlb2YgZ2xvYmFsLlVpbnQ4QXJyYXkpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJidWZcIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYiA9IG9mZnNldFxuICAgIG9mZnNldCA9IDBcbiAgICBzaXplID0gYnVmLmxlbmd0aFxuICB9IGVsc2UgaWYgKHR5cGVvZiBzaXplID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2IgPSBzaXplXG4gICAgc2l6ZSA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcbiAgfSBlbHNlIGlmICh0eXBlb2YgY2IgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImNiXCIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJylcbiAgfVxuICBhc3NlcnRPZmZzZXQob2Zmc2V0LCBidWYubGVuZ3RoKVxuICBhc3NlcnRTaXplKHNpemUsIG9mZnNldCwgYnVmLmxlbmd0aClcbiAgcmV0dXJuIGFjdHVhbEZpbGwoYnVmLCBvZmZzZXQsIHNpemUsIGNiKVxufVxuXG5mdW5jdGlvbiBhY3R1YWxGaWxsIChidWYsIG9mZnNldCwgc2l6ZSwgY2IpIHtcbiAgaWYgKHByb2Nlc3MuYnJvd3Nlcikge1xuICAgIHZhciBvdXJCdWYgPSBidWYuYnVmZmVyXG4gICAgdmFyIHVpbnQgPSBuZXcgVWludDhBcnJheShvdXJCdWYsIG9mZnNldCwgc2l6ZSlcbiAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHVpbnQpXG4gICAgaWYgKGNiKSB7XG4gICAgICBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2IobnVsbCwgYnVmKVxuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICByZXR1cm4gYnVmXG4gIH1cbiAgaWYgKGNiKSB7XG4gICAgcmFuZG9tYnl0ZXMoc2l6ZSwgZnVuY3Rpb24gKGVyciwgYnl0ZXMpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIGNiKGVycilcbiAgICAgIH1cbiAgICAgIGJ5dGVzLmNvcHkoYnVmLCBvZmZzZXQpXG4gICAgICBjYihudWxsLCBidWYpXG4gICAgfSlcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgYnl0ZXMgPSByYW5kb21ieXRlcyhzaXplKVxuICBieXRlcy5jb3B5KGJ1Ziwgb2Zmc2V0KVxuICByZXR1cm4gYnVmXG59XG5mdW5jdGlvbiByYW5kb21GaWxsU3luYyAoYnVmLCBvZmZzZXQsIHNpemUpIHtcbiAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgb2Zmc2V0ID0gMFxuICB9XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikgJiYgIShidWYgaW5zdGFuY2VvZiBnbG9iYWwuVWludDhBcnJheSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImJ1ZlwiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpXG4gIH1cblxuICBhc3NlcnRPZmZzZXQob2Zmc2V0LCBidWYubGVuZ3RoKVxuXG4gIGlmIChzaXplID09PSB1bmRlZmluZWQpIHNpemUgPSBidWYubGVuZ3RoIC0gb2Zmc2V0XG5cbiAgYXNzZXJ0U2l6ZShzaXplLCBvZmZzZXQsIGJ1Zi5sZW5ndGgpXG5cbiAgcmV0dXJuIGFjdHVhbEZpbGwoYnVmLCBvZmZzZXQsIHNpemUpXG59XG4iLCIhZnVuY3Rpb24oZSx0KXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJvYmplY3RcIj09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KHJlcXVpcmUoXCJyZWFjdFwiKSk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJyZWFjdFwiXSx0KTpcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLlNjcm9sbEFyZWE9dChyZXF1aXJlKFwicmVhY3RcIikpOmUuU2Nyb2xsQXJlYT10KGUuUmVhY3QpfSh0aGlzLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlKXtmdW5jdGlvbiB0KG8pe2lmKG5bb10pcmV0dXJuIG5bb10uZXhwb3J0czt2YXIgcj1uW29dPXtleHBvcnRzOnt9LGlkOm8sbG9hZGVkOiExfTtyZXR1cm4gZVtvXS5jYWxsKHIuZXhwb3J0cyxyLHIuZXhwb3J0cyx0KSxyLmxvYWRlZD0hMCxyLmV4cG9ydHN9dmFyIG49e307cmV0dXJuIHQubT1lLHQuYz1uLHQucD1cIlwiLHQoMCl9KFtmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksbigzMSk7dmFyIHI9bigxMyksaT1vKHIpO3QuZGVmYXVsdD1pLmRlZmF1bHR9LGZ1bmN0aW9uKHQsbil7dC5leHBvcnRzPWV9LGZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigxOSkoKX0sZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBuKGUpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pJiYodFtuXT1cIm51bWJlclwiPT10eXBlb2YgZVtuXT9lW25dOmVbbl0udmFsKTtyZXR1cm4gdH10Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PW4sZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbih0KXsoZnVuY3Rpb24oKXt2YXIgbixvLHI7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHBlcmZvcm1hbmNlJiZudWxsIT09cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9lLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2Uubm93KCl9OlwidW5kZWZpbmVkXCIhPXR5cGVvZiB0JiZudWxsIT09dCYmdC5ocnRpbWU/KGUuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybihuKCktcikvMWU2fSxvPXQuaHJ0aW1lLG49ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gZT1vKCksMWU5KmVbMF0rZVsxXX0scj1uKCkpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1yfSxyPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1yfSxyPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHQsbigxMCkpfSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKHQpe2Zvcih2YXIgbz1uKDIzKSxyPVwidW5kZWZpbmVkXCI9PXR5cGVvZiB3aW5kb3c/dDp3aW5kb3csaT1bXCJtb3pcIixcIndlYmtpdFwiXSxhPVwiQW5pbWF0aW9uRnJhbWVcIixsPXJbXCJyZXF1ZXN0XCIrYV0scz1yW1wiY2FuY2VsXCIrYV18fHJbXCJjYW5jZWxSZXF1ZXN0XCIrYV0sdT0wOyFsJiZ1PGkubGVuZ3RoO3UrKylsPXJbaVt1XStcIlJlcXVlc3RcIithXSxzPXJbaVt1XStcIkNhbmNlbFwiK2FdfHxyW2lbdV0rXCJDYW5jZWxSZXF1ZXN0XCIrYV07aWYoIWx8fCFzKXt2YXIgYz0wLGY9MCxwPVtdLGQ9MWUzLzYwO2w9ZnVuY3Rpb24oZSl7aWYoMD09PXAubGVuZ3RoKXt2YXIgdD1vKCksbj1NYXRoLm1heCgwLGQtKHQtYykpO2M9bit0LHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZT1wLnNsaWNlKDApO3AubGVuZ3RoPTA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspaWYoIWVbdF0uY2FuY2VsbGVkKXRyeXtlW3RdLmNhbGxiYWNrKGMpfWNhdGNoKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSwwKX19LE1hdGgucm91bmQobikpfXJldHVybiBwLnB1c2goe2hhbmRsZTorK2YsY2FsbGJhY2s6ZSxjYW5jZWxsZWQ6ITF9KSxmfSxzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8cC5sZW5ndGg7dCsrKXBbdF0uaGFuZGxlPT09ZSYmKHBbdF0uY2FuY2VsbGVkPSEwKX19ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBsLmNhbGwocixlKX0sZS5leHBvcnRzLmNhbmNlbD1mdW5jdGlvbigpe3MuYXBwbHkocixhcmd1bWVudHMpfSxlLmV4cG9ydHMucG9seWZpbGw9ZnVuY3Rpb24oZSl7ZXx8KGU9ciksZS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9bCxlLmNhbmNlbEFuaW1hdGlvbkZyYW1lPXN9fSkuY2FsbCh0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCkpfSxmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPTApO3JldHVybiB0fXQuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9bixlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSx0LG4pe2Zvcih2YXIgbyBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pKXtpZigwIT09bltvXSlyZXR1cm4hMTt2YXIgcj1cIm51bWJlclwiPT10eXBlb2YgdFtvXT90W29dOnRbb10udmFsO2lmKGVbb10hPT1yKXJldHVybiExfXJldHVybiEwfXQuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9bixlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSx0LG4scixpLGEsbCl7dmFyIHM9LWkqKHQtciksdT0tYSpuLGM9cyt1LGY9bitjKmUscD10K2YqZTtyZXR1cm4gTWF0aC5hYnMoZik8bCYmTWF0aC5hYnMocC1yKTxsPyhvWzBdPXIsb1sxXT0wLG8pOihvWzBdPXAsb1sxXT1mLG8pfXQuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9bjt2YXIgbz1bMCwwXTtlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gcihlKXtyZXR1cm4gcD9mLmRlZmF1bHQuZmluZERPTU5vZGUoZSk6ZX1mdW5jdGlvbiBpKCl7ZHx8cHx8KGQ9ITAsY29uc29sZS5lcnJvcihcIldpdGggUmVhY3QgMC4xNCBhbmQgbGF0ZXIgdmVyc2lvbnMsIHlvdSBubyBsb25nZXIgbmVlZCB0byB3cmFwIDxTY3JvbGxBcmVhPiBjaGlsZCBpbnRvIGEgZnVuY3Rpb24uXCIpKX1mdW5jdGlvbiBhKCl7IWQmJnAmJihkPSEwLGNvbnNvbGUuZXJyb3IoXCJXaXRoIFJlYWN0IDAuMTMsIHlvdSBuZWVkIHRvIHdyYXAgPFNjcm9sbEFyZWE+IGNoaWxkIGludG8gYSBmdW5jdGlvbi5cIikpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGU8MD8wOmV9ZnVuY3Rpb24gcyhlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LG49e307Zm9yKHZhciBvIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShvKSYmKG5bb109dChlW29dKSk7cmV0dXJuIG59ZnVuY3Rpb24gdShlKXt2YXIgdD1lLnZlcnNpb247aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpcmV0dXJuITA7dmFyIG49dC5zcGxpdChcIi5cIiksbz1wYXJzZUludChuWzBdLDEwKSxyPXBhcnNlSW50KG5bMV0sMTApO3JldHVybiAwPT09byYmMTM9PT1yfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZmluZERPTU5vZGU9cix0Lndhcm5BYm91dEZ1bmN0aW9uQ2hpbGQ9aSx0Lndhcm5BYm91dEVsZW1lbnRDaGlsZD1hLHQucG9zaXRpdmVPclplcm89bCx0Lm1vZGlmeU9ialZhbHVlcz1zLHQuaXNSZWFjdDEzPXU7dmFyIGM9bigxKSxmPW8oYykscD11KGYuZGVmYXVsdCksZD0hMX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKCl7dGhyb3cgbmV3IEVycm9yKFwic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZFwiKX1mdW5jdGlvbiBvKCl7dGhyb3cgbmV3IEVycm9yKFwiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkXCIpfWZ1bmN0aW9uIHIoZSl7aWYoYz09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQoZSwwKTtpZigoYz09PW58fCFjKSYmc2V0VGltZW91dClyZXR1cm4gYz1zZXRUaW1lb3V0LHNldFRpbWVvdXQoZSwwKTt0cnl7cmV0dXJuIGMoZSwwKX1jYXRjaCh0KXt0cnl7cmV0dXJuIGMuY2FsbChudWxsLGUsMCl9Y2F0Y2godCl7cmV0dXJuIGMuY2FsbCh0aGlzLGUsMCl9fX1mdW5jdGlvbiBpKGUpe2lmKGY9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dChlKTtpZigoZj09PW98fCFmKSYmY2xlYXJUaW1lb3V0KXJldHVybiBmPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQoZSk7dHJ5e3JldHVybiBmKGUpfWNhdGNoKHQpe3RyeXtyZXR1cm4gZi5jYWxsKG51bGwsZSl9Y2F0Y2godCl7cmV0dXJuIGYuY2FsbCh0aGlzLGUpfX19ZnVuY3Rpb24gYSgpe3kmJmQmJih5PSExLGQubGVuZ3RoP2g9ZC5jb25jYXQoaCk6dj0tMSxoLmxlbmd0aCYmbCgpKX1mdW5jdGlvbiBsKCl7aWYoIXkpe3ZhciBlPXIoYSk7eT0hMDtmb3IodmFyIHQ9aC5sZW5ndGg7dDspe2ZvcihkPWgsaD1bXTsrK3Y8dDspZCYmZFt2XS5ydW4oKTt2PS0xLHQ9aC5sZW5ndGh9ZD1udWxsLHk9ITEsaShlKX19ZnVuY3Rpb24gcyhlLHQpe3RoaXMuZnVuPWUsdGhpcy5hcnJheT10fWZ1bmN0aW9uIHUoKXt9dmFyIGMsZixwPWUuZXhwb3J0cz17fTshZnVuY3Rpb24oKXt0cnl7Yz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6bn1jYXRjaChlKXtjPW59dHJ5e2Y9XCJmdW5jdGlvblwiPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpvfWNhdGNoKGUpe2Y9b319KCk7dmFyIGQsaD1bXSx5PSExLHY9LTE7cC5uZXh0VGljaz1mdW5jdGlvbihlKXt2YXIgdD1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO2gucHVzaChuZXcgcyhlLHQpKSwxIT09aC5sZW5ndGh8fHl8fHIobCl9LHMucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe3RoaXMuZnVuLmFwcGx5KG51bGwsdGhpcy5hcnJheSl9LHAudGl0bGU9XCJicm93c2VyXCIscC5icm93c2VyPSEwLHAuZW52PXt9LHAuYXJndj1bXSxwLnZlcnNpb249XCJcIixwLnZlcnNpb25zPXt9LHAub249dSxwLmFkZExpc3RlbmVyPXUscC5vbmNlPXUscC5vZmY9dSxwLnJlbW92ZUxpc3RlbmVyPXUscC5yZW1vdmVBbGxMaXN0ZW5lcnM9dSxwLmVtaXQ9dSxwLmJpbmRpbmc9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKFwicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWRcIil9LHAuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuXCIvXCJ9LHAuY2hkaXI9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKFwicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkXCIpfSxwLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSxmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9e25vV29iYmxlOntzdGlmZm5lc3M6MTcwLGRhbXBpbmc6MjZ9LGdlbnRsZTp7c3RpZmZuZXNzOjEyMCxkYW1waW5nOjE0fSx3b2JibHk6e3N0aWZmbmVzczoxODAsZGFtcGluZzoxMn0sc3RpZmY6e3N0aWZmbmVzczoyMTAsZGFtcGluZzoyMH19LGUuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZS5kZWZhdWx0OmV9dC5fX2VzTW9kdWxlPSEwO3ZhciByPW4oMjQpO3QuTW90aW9uPW8ocik7dmFyIGk9bigyNSk7dC5TdGFnZ2VyZWRNb3Rpb249byhpKTt2YXIgYT1uKDI2KTt0LlRyYW5zaXRpb25Nb3Rpb249byhhKTt2YXIgbD1uKDI5KTt0LnNwcmluZz1vKGwpO3ZhciBzPW4oMTEpO3QucHJlc2V0cz1vKHMpO3ZhciB1PW4oMyk7dC5zdHJpcFN0eWxlPW8odSk7dmFyIGM9bigyOCk7dC5yZW9yZGVyS2V5cz1vKGMpfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gcihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9ZnVuY3Rpb24gaShlLHQpe2lmKCFlKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4hdHx8XCJvYmplY3RcIiE9dHlwZW9mIHQmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHQ/ZTp0fWZ1bmN0aW9uIGEoZSx0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KTplLl9fcHJvdG9fXz10KX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgbD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiBlfSxzPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIG8gaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSl9cmV0dXJuIGV9LHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBvPXRbbl07by5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbyYmKG8ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG8ua2V5LG8pfX1yZXR1cm4gZnVuY3Rpb24odCxuLG8pe3JldHVybiBuJiZlKHQucHJvdG90eXBlLG4pLG8mJmUodCxvKSx0fX0oKSxjPW4oMSksZj1vKGMpLHA9bigyKSxkPW8ocCksaD1uKDE4KSx5PW8oaCksdj1uKDEyKSxtPW4oOSksYj1uKDE0KSxTPW8oYiksZz17d2hlZWw6XCJ3aGVlbFwiLGFwaTpcImFwaVwiLHRvdWNoOlwidG91Y2hcIix0b3VjaEVuZDpcInRvdWNoRW5kXCIsbW91c2Vtb3ZlOlwibW91c2Vtb3ZlXCIsa2V5UHJlc3M6XCJrZXlwcmVzc1wifSx3PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSl7cih0aGlzLHQpO3ZhciBuPWkodGhpcywodC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KSkuY2FsbCh0aGlzLGUpKTtyZXR1cm4gbi5zdGF0ZT17dG9wUG9zaXRpb246MCxsZWZ0UG9zaXRpb246MCxyZWFsSGVpZ2h0OjAsY29udGFpbmVySGVpZ2h0OjAscmVhbFdpZHRoOjAsY29udGFpbmVyV2lkdGg6MH0sbi5zY3JvbGxBcmVhPXtyZWZyZXNoOmZ1bmN0aW9uKCl7bi5zZXRTaXplc1RvU3RhdGUoKX0sc2Nyb2xsVG9wOmZ1bmN0aW9uKCl7bi5zY3JvbGxUb3AoKX0sc2Nyb2xsQm90dG9tOmZ1bmN0aW9uKCl7bi5zY3JvbGxCb3R0b20oKX0sc2Nyb2xsWVRvOmZ1bmN0aW9uKGUpe24uc2Nyb2xsWVRvKGUpfSxzY3JvbGxMZWZ0OmZ1bmN0aW9uKCl7bi5zY3JvbGxMZWZ0KCl9LHNjcm9sbFJpZ2h0OmZ1bmN0aW9uKCl7bi5zY3JvbGxSaWdodCgpfSxzY3JvbGxYVG86ZnVuY3Rpb24oZSl7bi5zY3JvbGxYVG8oZSl9fSxuLmV2bnRzUHJldmlvdXNWYWx1ZXM9e2NsaWVudFg6MCxjbGllbnRZOjAsZGVsdGFYOjAsZGVsdGFZOjB9LG4uYmluZGVkSGFuZGxlV2luZG93UmVzaXplPW4uaGFuZGxlV2luZG93UmVzaXplLmJpbmQobiksbn1yZXR1cm4gYSh0LGUpLHUodCxbe2tleTpcImdldENoaWxkQ29udGV4dFwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3Njcm9sbEFyZWE6dGhpcy5zY3JvbGxBcmVhfX19LHtrZXk6XCJjb21wb25lbnREaWRNb3VudFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm9wcy5jb250ZW50V2luZG93JiZ0aGlzLnByb3BzLmNvbnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuYmluZGVkSGFuZGxlV2luZG93UmVzaXplKSx0aGlzLmxpbmVIZWlnaHRQeD0oMCx5LmRlZmF1bHQpKCgwLG0uZmluZERPTU5vZGUpKHRoaXMuY29udGVudCkpLHRoaXMuc2V0U2l6ZXNUb1N0YXRlKCl9fSx7a2V5OlwiY29tcG9uZW50V2lsbFVubW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucHJvcHMuY29udGVudFdpbmRvdyYmdGhpcy5wcm9wcy5jb250ZW50V2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLmJpbmRlZEhhbmRsZVdpbmRvd1Jlc2l6ZSl9fSx7a2V5OlwiY29tcG9uZW50RGlkVXBkYXRlXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNldFNpemVzVG9TdGF0ZSgpfX0se2tleTpcInJlbmRlclwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMucHJvcHMsbj10LmNoaWxkcmVuLG89dC5jbGFzc05hbWUscj10LmNvbnRlbnRDbGFzc05hbWUsaT10Lm93bmVyRG9jdW1lbnQsYT10aGlzLnByb3BzLnNtb290aFNjcm9sbGluZyYmKHRoaXMuc3RhdGUuZXZlbnRUeXBlPT09Zy53aGVlbHx8dGhpcy5zdGF0ZS5ldmVudFR5cGU9PT1nLmFwaXx8dGhpcy5zdGF0ZS5ldmVudFR5cGU9PT1nLnRvdWNoRW5kfHx0aGlzLnN0YXRlLmV2ZW50VHlwZT09PWcua2V5UHJlc3MpLGw9dGhpcy5jYW5TY3JvbGxZKCk/Zi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUy5kZWZhdWx0LHtvd25lckRvY3VtZW50OmkscmVhbFNpemU6dGhpcy5zdGF0ZS5yZWFsSGVpZ2h0LGNvbnRhaW5lclNpemU6dGhpcy5zdGF0ZS5jb250YWluZXJIZWlnaHQscG9zaXRpb246dGhpcy5zdGF0ZS50b3BQb3NpdGlvbixvbk1vdmU6dGhpcy5oYW5kbGVTY3JvbGxiYXJNb3ZlLmJpbmQodGhpcyksb25Qb3NpdGlvbkNoYW5nZTp0aGlzLmhhbmRsZVNjcm9sbGJhcllQb3NpdGlvbkNoYW5nZS5iaW5kKHRoaXMpLGNvbnRhaW5lclN0eWxlOnRoaXMucHJvcHMudmVydGljYWxDb250YWluZXJTdHlsZSxzY3JvbGxiYXJTdHlsZTp0aGlzLnByb3BzLnZlcnRpY2FsU2Nyb2xsYmFyU3R5bGUsc21vb3RoU2Nyb2xsaW5nOmEsbWluU2Nyb2xsU2l6ZTp0aGlzLnByb3BzLm1pblNjcm9sbFNpemUsb25Gb2N1czp0aGlzLmZvY3VzQ29udGVudC5iaW5kKHRoaXMpLHR5cGU6XCJ2ZXJ0aWNhbFwifSk6bnVsbCx1PXRoaXMuY2FuU2Nyb2xsWCgpP2YuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFMuZGVmYXVsdCx7b3duZXJEb2N1bWVudDppLHJlYWxTaXplOnRoaXMuc3RhdGUucmVhbFdpZHRoLGNvbnRhaW5lclNpemU6dGhpcy5zdGF0ZS5jb250YWluZXJXaWR0aCxwb3NpdGlvbjp0aGlzLnN0YXRlLmxlZnRQb3NpdGlvbixvbk1vdmU6dGhpcy5oYW5kbGVTY3JvbGxiYXJNb3ZlLmJpbmQodGhpcyksb25Qb3NpdGlvbkNoYW5nZTp0aGlzLmhhbmRsZVNjcm9sbGJhclhQb3NpdGlvbkNoYW5nZS5iaW5kKHRoaXMpLGNvbnRhaW5lclN0eWxlOnRoaXMucHJvcHMuaG9yaXpvbnRhbENvbnRhaW5lclN0eWxlLHNjcm9sbGJhclN0eWxlOnRoaXMucHJvcHMuaG9yaXpvbnRhbFNjcm9sbGJhclN0eWxlLHNtb290aFNjcm9sbGluZzphLG1pblNjcm9sbFNpemU6dGhpcy5wcm9wcy5taW5TY3JvbGxTaXplLG9uRm9jdXM6dGhpcy5mb2N1c0NvbnRlbnQuYmluZCh0aGlzKSx0eXBlOlwiaG9yaXpvbnRhbFwifSk6bnVsbDtcImZ1bmN0aW9uXCI9PXR5cGVvZiBuPygoMCxtLndhcm5BYm91dEZ1bmN0aW9uQ2hpbGQpKCksbj1uKCkpOigwLG0ud2FybkFib3V0RWxlbWVudENoaWxkKSgpO3ZhciBjPVwic2Nyb2xsYXJlYSBcIisob3x8XCJcIikscD1cInNjcm9sbGFyZWEtY29udGVudCBcIisocnx8XCJcIiksZD17bWFyZ2luVG9wOi10aGlzLnN0YXRlLnRvcFBvc2l0aW9uLG1hcmdpbkxlZnQ6LXRoaXMuc3RhdGUubGVmdFBvc2l0aW9ufSxoPWE/KDAsbS5tb2RpZnlPYmpWYWx1ZXMpKGQsZnVuY3Rpb24oZSl7cmV0dXJuKDAsdi5zcHJpbmcpKGUpfSk6ZDtyZXR1cm4gZi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodi5Nb3Rpb24se3N0eWxlOmh9LGZ1bmN0aW9uKHQpe3JldHVybiBmLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtyZWY6ZnVuY3Rpb24odCl7cmV0dXJuIGUud3JhcHBlcj10fSxjbGFzc05hbWU6YyxzdHlsZTplLnByb3BzLnN0eWxlLG9uV2hlZWw6ZS5oYW5kbGVXaGVlbC5iaW5kKGUpfSxmLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtyZWY6ZnVuY3Rpb24odCl7cmV0dXJuIGUuY29udGVudD10fSxzdHlsZTpzKHt9LGUucHJvcHMuY29udGVudFN0eWxlLHQpLGNsYXNzTmFtZTpwLG9uVG91Y2hTdGFydDplLmhhbmRsZVRvdWNoU3RhcnQuYmluZChlKSxvblRvdWNoTW92ZTplLmhhbmRsZVRvdWNoTW92ZS5iaW5kKGUpLG9uVG91Y2hFbmQ6ZS5oYW5kbGVUb3VjaEVuZC5iaW5kKGUpLG9uS2V5RG93bjplLmhhbmRsZUtleURvd24uYmluZChlKSx0YWJJbmRleDplLnByb3BzLmZvY3VzYWJsZVRhYkluZGV4fSxuKSxsLHUpfSl9fSx7a2V5Olwic2V0U3RhdGVGcm9tRXZlbnRcIix2YWx1ZTpmdW5jdGlvbihlLHQpe3RoaXMucHJvcHMub25TY3JvbGwmJnRoaXMucHJvcHMub25TY3JvbGwoZSksdGhpcy5zZXRTdGF0ZShzKHt9LGUse2V2ZW50VHlwZTp0fSkpfX0se2tleTpcImhhbmRsZVRvdWNoU3RhcnRcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1lLnRvdWNoZXM7aWYoMT09PXQubGVuZ3RoKXt2YXIgbj10WzBdLG89bi5jbGllbnRYLHI9bi5jbGllbnRZO3RoaXMuZXZlbnRQcmV2aW91c1ZhbHVlcz1zKHt9LHRoaXMuZXZlbnRQcmV2aW91c1ZhbHVlcyx7Y2xpZW50WTpyLGNsaWVudFg6byx0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfX19LHtrZXk6XCJoYW5kbGVUb3VjaE1vdmVcIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLmNhblNjcm9sbCgpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpO3ZhciB0PWUudG91Y2hlcztpZigxPT09dC5sZW5ndGgpe3ZhciBuPXRbMF0sbz1uLmNsaWVudFgscj1uLmNsaWVudFksaT10aGlzLmV2ZW50UHJldmlvdXNWYWx1ZXMuY2xpZW50WS1yLGE9dGhpcy5ldmVudFByZXZpb3VzVmFsdWVzLmNsaWVudFgtbzt0aGlzLmV2ZW50UHJldmlvdXNWYWx1ZXM9cyh7fSx0aGlzLmV2ZW50UHJldmlvdXNWYWx1ZXMse2RlbHRhWTppLGRlbHRhWDphLGNsaWVudFk6cixjbGllbnRYOm8sdGltZXN0YW1wOkRhdGUubm93KCl9KSx0aGlzLnNldFN0YXRlRnJvbUV2ZW50KHRoaXMuY29tcG9zZU5ld1N0YXRlKC1hLC1pKSl9fX0se2tleTpcImhhbmRsZVRvdWNoRW5kXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5ldmVudFByZXZpb3VzVmFsdWVzLG49dC5kZWx0YVgsbz10LmRlbHRhWSxyPXQudGltZXN0YW1wO1widW5kZWZpbmVkXCI9PXR5cGVvZiBuJiYobj0wKSxcInVuZGVmaW5lZFwiPT10eXBlb2YgbyYmKG89MCksRGF0ZS5ub3coKS1yPDIwMCYmdGhpcy5zZXRTdGF0ZUZyb21FdmVudCh0aGlzLmNvbXBvc2VOZXdTdGF0ZSgxMCotbiwxMCotbyksZy50b3VjaEVuZCksdGhpcy5ldmVudFByZXZpb3VzVmFsdWVzPXMoe30sdGhpcy5ldmVudFByZXZpb3VzVmFsdWVzLHtkZWx0YVk6MCxkZWx0YVg6MH0pfX0se2tleTpcImhhbmRsZVNjcm9sbGJhck1vdmVcIix2YWx1ZTpmdW5jdGlvbihlLHQpe3RoaXMuc2V0U3RhdGVGcm9tRXZlbnQodGhpcy5jb21wb3NlTmV3U3RhdGUodCxlKSl9fSx7a2V5OlwiaGFuZGxlU2Nyb2xsYmFyWFBvc2l0aW9uQ2hhbmdlXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5zY3JvbGxYVG8oZSl9fSx7a2V5OlwiaGFuZGxlU2Nyb2xsYmFyWVBvc2l0aW9uQ2hhbmdlXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5zY3JvbGxZVG8oZSl9fSx7a2V5OlwiaGFuZGxlV2hlZWxcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1lLmRlbHRhWSxuPWUuZGVsdGFYO2lmKHRoaXMucHJvcHMuc3dhcFdoZWVsQXhlcyl7dmFyIG89W24sdF07dD1vWzBdLG49b1sxXX0xPT09ZS5kZWx0YU1vZGUmJih0Kj10aGlzLmxpbmVIZWlnaHRQeCxuKj10aGlzLmxpbmVIZWlnaHRQeCksdCo9dGhpcy5wcm9wcy5zcGVlZCxuKj10aGlzLnByb3BzLnNwZWVkO3ZhciByPXRoaXMuY29tcG9zZU5ld1N0YXRlKC1uLC10KTsoci50b3BQb3NpdGlvbiYmdGhpcy5zdGF0ZS50b3BQb3NpdGlvbiE9PXIudG9wUG9zaXRpb258fHIubGVmdFBvc2l0aW9uJiZ0aGlzLnN0YXRlLmxlZnRQb3NpdGlvbiE9PXIubGVmdFBvc2l0aW9ufHx0aGlzLnByb3BzLnN0b3BTY3JvbGxQcm9wYWdhdGlvbikmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSksdGhpcy5zZXRTdGF0ZUZyb21FdmVudChyLGcud2hlZWwpLHRoaXMuZm9jdXNDb250ZW50KCl9fSx7a2V5OlwiaGFuZGxlS2V5RG93blwiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKFwiaW5wdXRcIiE9PWUudGFyZ2V0LnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmXCJ0ZXh0YXJlYVwiIT09ZS50YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpJiYhZS50YXJnZXQuaXNDb250ZW50RWRpdGFibGUpe3ZhciB0PTAsbj0wLG89dGhpcy5saW5lSGVpZ2h0UHg/dGhpcy5saW5lSGVpZ2h0UHg6MTA7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSAzMzp0PXRoaXMuc3RhdGUuY29udGFpbmVySGVpZ2h0LW87YnJlYWs7Y2FzZSAzNDp0PS10aGlzLnN0YXRlLmNvbnRhaW5lckhlaWdodCtvO2JyZWFrO2Nhc2UgMzc6bj1vO2JyZWFrO2Nhc2UgMzg6dD1vO2JyZWFrO2Nhc2UgMzk6bj0tbzticmVhaztjYXNlIDQwOnQ9LW99aWYoMCE9PXR8fDAhPT1uKXt2YXIgcj10aGlzLmNvbXBvc2VOZXdTdGF0ZShuLHQpO2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0U3RhdGVGcm9tRXZlbnQocixnLmtleVByZXNzKX19fX0se2tleTpcImhhbmRsZVdpbmRvd1Jlc2l6ZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb21wdXRlU2l6ZXMoKTtlPXRoaXMuZ2V0TW9kaWZpZWRQb3NpdGlvbnNJZk5lZWRlZChlKSx0aGlzLnNldFN0YXRlRnJvbUV2ZW50KGUpfX0se2tleTpcImNvbXBvc2VOZXdTdGF0ZVwiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5jb21wdXRlU2l6ZXMoKTtyZXR1cm4gdGhpcy5jYW5TY3JvbGxZKG4pP24udG9wUG9zaXRpb249dGhpcy5jb21wdXRlVG9wUG9zaXRpb24odCxuKTpuLnRvcFBvc2l0aW9uPTAsdGhpcy5jYW5TY3JvbGxYKG4pJiYobi5sZWZ0UG9zaXRpb249dGhpcy5jb21wdXRlTGVmdFBvc2l0aW9uKGUsbikpLG59fSx7a2V5OlwiY29tcHV0ZVRvcFBvc2l0aW9uXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLnN0YXRlLnRvcFBvc2l0aW9uLWU7cmV0dXJuIHRoaXMubm9ybWFsaXplVG9wUG9zaXRpb24obix0KX19LHtrZXk6XCJjb21wdXRlTGVmdFBvc2l0aW9uXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLnN0YXRlLmxlZnRQb3NpdGlvbi1lO3JldHVybiB0aGlzLm5vcm1hbGl6ZUxlZnRQb3NpdGlvbihuLHQpfX0se2tleTpcIm5vcm1hbGl6ZVRvcFBvc2l0aW9uXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT50LnJlYWxIZWlnaHQtdC5jb250YWluZXJIZWlnaHQmJihlPXQucmVhbEhlaWdodC10LmNvbnRhaW5lckhlaWdodCksZTwwJiYoZT0wKSxlfX0se2tleTpcIm5vcm1hbGl6ZUxlZnRQb3NpdGlvblwiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU+dC5yZWFsV2lkdGgtdC5jb250YWluZXJXaWR0aD9lPXQucmVhbFdpZHRoLXQuY29udGFpbmVyV2lkdGg6ZTwwJiYoZT0wKSxlfX0se2tleTpcImNvbXB1dGVTaXplc1wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250ZW50Lm9mZnNldEhlaWdodCx0PXRoaXMud3JhcHBlci5vZmZzZXRIZWlnaHQsbj10aGlzLmNvbnRlbnQub2Zmc2V0V2lkdGgsbz10aGlzLndyYXBwZXIub2Zmc2V0V2lkdGg7cmV0dXJue3JlYWxIZWlnaHQ6ZSxjb250YWluZXJIZWlnaHQ6dCxyZWFsV2lkdGg6bixjb250YWluZXJXaWR0aDpvfX19LHtrZXk6XCJzZXRTaXplc1RvU3RhdGVcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuY29tcHV0ZVNpemVzKCk7ZS5yZWFsSGVpZ2h0PT09dGhpcy5zdGF0ZS5yZWFsSGVpZ2h0JiZlLnJlYWxXaWR0aD09PXRoaXMuc3RhdGUucmVhbFdpZHRofHx0aGlzLnNldFN0YXRlRnJvbUV2ZW50KHRoaXMuZ2V0TW9kaWZpZWRQb3NpdGlvbnNJZk5lZWRlZChlKSl9fSx7a2V5Olwic2Nyb2xsVG9wXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbFlUbygwKX19LHtrZXk6XCJzY3JvbGxCb3R0b21cIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsWVRvKHRoaXMuc3RhdGUucmVhbEhlaWdodC10aGlzLnN0YXRlLmNvbnRhaW5lckhlaWdodCl9fSx7a2V5Olwic2Nyb2xsTGVmdFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxYVG8oMCl9fSx7a2V5Olwic2Nyb2xsUmlnaHRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsWFRvKHRoaXMuc3RhdGUucmVhbFdpZHRoLXRoaXMuc3RhdGUuY29udGFpbmVyV2lkdGgpfX0se2tleTpcInNjcm9sbFlUb1wiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuY2FuU2Nyb2xsWSgpKXt2YXIgdD10aGlzLm5vcm1hbGl6ZVRvcFBvc2l0aW9uKGUsdGhpcy5jb21wdXRlU2l6ZXMoKSk7dGhpcy5zZXRTdGF0ZUZyb21FdmVudCh7dG9wUG9zaXRpb246dH0sZy5hcGkpfX19LHtrZXk6XCJzY3JvbGxYVG9cIix2YWx1ZTpmdW5jdGlvbihlKXtpZih0aGlzLmNhblNjcm9sbFgoKSl7dmFyIHQ9dGhpcy5ub3JtYWxpemVMZWZ0UG9zaXRpb24oZSx0aGlzLmNvbXB1dGVTaXplcygpKTt0aGlzLnNldFN0YXRlRnJvbUV2ZW50KHtsZWZ0UG9zaXRpb246dH0sZy5hcGkpfX19LHtrZXk6XCJjYW5TY3JvbGxZXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5zdGF0ZSx0PWUucmVhbEhlaWdodD5lLmNvbnRhaW5lckhlaWdodDtyZXR1cm4gdCYmdGhpcy5wcm9wcy52ZXJ0aWNhbH19LHtrZXk6XCJjYW5TY3JvbGxYXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5zdGF0ZSx0PWUucmVhbFdpZHRoPmUuY29udGFpbmVyV2lkdGg7cmV0dXJuIHQmJnRoaXMucHJvcHMuaG9yaXpvbnRhbH19LHtrZXk6XCJjYW5TY3JvbGxcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnN0YXRlO3JldHVybiB0aGlzLmNhblNjcm9sbFkoZSl8fHRoaXMuY2FuU2Nyb2xsWChlKX19LHtrZXk6XCJnZXRNb2RpZmllZFBvc2l0aW9uc0lmTmVlZGVkXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZWFsSGVpZ2h0LWUuY29udGFpbmVySGVpZ2h0O3RoaXMuc3RhdGUudG9wUG9zaXRpb24+PXQmJihlLnRvcFBvc2l0aW9uPXRoaXMuY2FuU2Nyb2xsWShlKT8oMCxtLnBvc2l0aXZlT3JaZXJvKSh0KTowKTt2YXIgbj1lLnJlYWxXaWR0aC1lLmNvbnRhaW5lcldpZHRoO3JldHVybiB0aGlzLnN0YXRlLmxlZnRQb3NpdGlvbj49biYmKGUubGVmdFBvc2l0aW9uPXRoaXMuY2FuU2Nyb2xsWChlKT8oMCxtLnBvc2l0aXZlT3JaZXJvKShuKTowKSxlfX0se2tleTpcImZvY3VzQ29udGVudFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb250ZW50JiYoMCxtLmZpbmRET01Ob2RlKSh0aGlzLmNvbnRlbnQpLmZvY3VzKCl9fV0pLHR9KGYuZGVmYXVsdC5Db21wb25lbnQpO3QuZGVmYXVsdD13LHcuY2hpbGRDb250ZXh0VHlwZXM9e3Njcm9sbEFyZWE6ZC5kZWZhdWx0Lm9iamVjdH0sdy5wcm9wVHlwZXM9e2NsYXNzTmFtZTpkLmRlZmF1bHQuc3RyaW5nLHN0eWxlOmQuZGVmYXVsdC5vYmplY3Qsc3BlZWQ6ZC5kZWZhdWx0Lm51bWJlcixjb250ZW50Q2xhc3NOYW1lOmQuZGVmYXVsdC5zdHJpbmcsY29udGVudFN0eWxlOmQuZGVmYXVsdC5vYmplY3QsdmVydGljYWw6ZC5kZWZhdWx0LmJvb2wsdmVydGljYWxDb250YWluZXJTdHlsZTpkLmRlZmF1bHQub2JqZWN0LHZlcnRpY2FsU2Nyb2xsYmFyU3R5bGU6ZC5kZWZhdWx0Lm9iamVjdCxob3Jpem9udGFsOmQuZGVmYXVsdC5ib29sLGhvcml6b250YWxDb250YWluZXJTdHlsZTpkLmRlZmF1bHQub2JqZWN0LGhvcml6b250YWxTY3JvbGxiYXJTdHlsZTpkLmRlZmF1bHQub2JqZWN0LG9uU2Nyb2xsOmQuZGVmYXVsdC5mdW5jLGNvbnRlbnRXaW5kb3c6ZC5kZWZhdWx0LmFueSxvd25lckRvY3VtZW50OmQuZGVmYXVsdC5hbnksc21vb3RoU2Nyb2xsaW5nOmQuZGVmYXVsdC5ib29sLG1pblNjcm9sbFNpemU6ZC5kZWZhdWx0Lm51bWJlcixzd2FwV2hlZWxBeGVzOmQuZGVmYXVsdC5ib29sLHN0b3BTY3JvbGxQcm9wYWdhdGlvbjpkLmRlZmF1bHQuYm9vbCxmb2N1c2FibGVUYWJJbmRleDpkLmRlZmF1bHQubnVtYmVyfSx3LmRlZmF1bHRQcm9wcz17c3BlZWQ6MSx2ZXJ0aWNhbDohMCxob3Jpem9udGFsOiEwLHNtb290aFNjcm9sbGluZzohMSxzd2FwV2hlZWxBeGVzOiExLGNvbnRlbnRXaW5kb3c6XCJvYmplY3RcIj09PShcInVuZGVmaW5lZFwiPT10eXBlb2Ygd2luZG93P1widW5kZWZpbmVkXCI6bCh3aW5kb3cpKT93aW5kb3c6dm9pZCAwLG93bmVyRG9jdW1lbnQ6XCJvYmplY3RcIj09PShcInVuZGVmaW5lZFwiPT10eXBlb2YgZG9jdW1lbnQ/XCJ1bmRlZmluZWRcIjpsKGRvY3VtZW50KSk/ZG9jdW1lbnQ6dm9pZCAwLGZvY3VzYWJsZVRhYkluZGV4OjF9fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gcihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9ZnVuY3Rpb24gaShlLHQpe2lmKCFlKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4hdHx8XCJvYmplY3RcIiE9dHlwZW9mIHQmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHQ/ZTp0fWZ1bmN0aW9uIGEoZSx0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KTplLl9fcHJvdG9fXz10KX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgbD1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciBvIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sbykmJihlW29dPW5bb10pfXJldHVybiBlfSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgbz10W25dO28uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxvLmtleSxvKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxvJiZlKHQsbyksdH19KCksdT1uKDEpLGM9byh1KSxmPW4oMikscD1vKGYpLGQ9bigxMiksaD1uKDkpLHk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXtyKHRoaXMsdCk7dmFyIG49aSh0aGlzLCh0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpKS5jYWxsKHRoaXMsZSkpLG89bi5jYWxjdWxhdGVTdGF0ZShlKTtyZXR1cm4gbi5zdGF0ZT17cG9zaXRpb246by5wb3NpdGlvbixzY3JvbGxTaXplOm8uc2Nyb2xsU2l6ZSxpc0RyYWdnaW5nOiExLGxhc3RDbGllbnRQb3NpdGlvbjowfSxcInZlcnRpY2FsXCI9PT1lLnR5cGU/bi5iaW5kZWRIYW5kbGVNb3VzZU1vdmU9bi5oYW5kbGVNb3VzZU1vdmVGb3JWZXJ0aWNhbC5iaW5kKG4pOm4uYmluZGVkSGFuZGxlTW91c2VNb3ZlPW4uaGFuZGxlTW91c2VNb3ZlRm9ySG9yaXpvbnRhbC5iaW5kKG4pLG4uYmluZGVkSGFuZGxlTW91c2VVcD1uLmhhbmRsZU1vdXNlVXAuYmluZChuKSxufXJldHVybiBhKHQsZSkscyh0LFt7a2V5OlwiY29tcG9uZW50RGlkTW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucHJvcHMub3duZXJEb2N1bWVudCYmKHRoaXMucHJvcHMub3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsdGhpcy5iaW5kZWRIYW5kbGVNb3VzZU1vdmUpLHRoaXMucHJvcHMub3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLHRoaXMuYmluZGVkSGFuZGxlTW91c2VVcCkpfX0se2tleTpcImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNcIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLnNldFN0YXRlKHRoaXMuY2FsY3VsYXRlU3RhdGUoZSkpfX0se2tleTpcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnByb3BzLm93bmVyRG9jdW1lbnQmJih0aGlzLnByb3BzLm93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHRoaXMuYmluZGVkSGFuZGxlTW91c2VNb3ZlKSx0aGlzLnByb3BzLm93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIix0aGlzLmJpbmRlZEhhbmRsZU1vdXNlVXApKX19LHtrZXk6XCJjYWxjdWxhdGVGcmFjdGlvbmFsUG9zaXRpb25cIix2YWx1ZTpmdW5jdGlvbihlLHQsbil7dmFyIG89ZS10O3JldHVybiAxLShvLW4pL299fSx7a2V5OlwiY2FsY3VsYXRlU3RhdGVcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmNhbGN1bGF0ZUZyYWN0aW9uYWxQb3NpdGlvbihlLnJlYWxTaXplLGUuY29udGFpbmVyU2l6ZSxlLnBvc2l0aW9uKSxuPWUuY29udGFpbmVyU2l6ZSplLmNvbnRhaW5lclNpemUvZS5yZWFsU2l6ZSxvPW48ZS5taW5TY3JvbGxTaXplP2UubWluU2Nyb2xsU2l6ZTpuLHI9KGUuY29udGFpbmVyU2l6ZS1vKSp0O3JldHVybntzY3JvbGxTaXplOm8scG9zaXRpb246TWF0aC5yb3VuZChyKX19fSx7a2V5OlwicmVuZGVyXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5wcm9wcyxuPXQuc21vb3RoU2Nyb2xsaW5nLG89dC5pc0RyYWdnaW5nLHI9dC50eXBlLGk9dC5zY3JvbGxiYXJTdHlsZSxhPXQuY29udGFpbmVyU3R5bGUscz1cImhvcml6b250YWxcIj09PXIsdT1cInZlcnRpY2FsXCI9PT1yLGY9dGhpcy5jcmVhdGVTY3JvbGxTdHlsZXMoKSxwPW4/KDAsaC5tb2RpZnlPYmpWYWx1ZXMpKGYsZnVuY3Rpb24oZSl7cmV0dXJuKDAsZC5zcHJpbmcpKGUpfSk6Zix5PVwic2Nyb2xsYmFyLWNvbnRhaW5lciBcIisobz9cImFjdGl2ZVwiOlwiXCIpK1wiIFwiKyhzP1wiaG9yaXpvbnRhbFwiOlwiXCIpK1wiIFwiKyh1P1widmVydGljYWxcIjpcIlwiKTtyZXR1cm4gYy5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoZC5Nb3Rpb24se3N0eWxlOnB9LGZ1bmN0aW9uKHQpe3JldHVybiBjLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6eSxzdHlsZTphLG9uTW91c2VEb3duOmUuaGFuZGxlU2Nyb2xsQmFyQ29udGFpbmVyQ2xpY2suYmluZChlKSxyZWY6ZnVuY3Rpb24odCl7cmV0dXJuIGUuc2Nyb2xsYmFyQ29udGFpbmVyPXR9fSxjLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLHtjbGFzc05hbWU6XCJzY3JvbGxiYXJcIixzdHlsZTpsKHt9LGksdCksb25Nb3VzZURvd246ZS5oYW5kbGVNb3VzZURvd24uYmluZChlKX0pKX0pfX0se2tleTpcImhhbmRsZVNjcm9sbEJhckNvbnRhaW5lckNsaWNrXCIsdmFsdWU6ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PXRoaXMuY29tcHV0ZU11bHRpcGxpZXIoKSxuPXRoaXMuaXNWZXJ0aWNhbCgpP2UuY2xpZW50WTplLmNsaWVudFgsbz10aGlzLnNjcm9sbGJhckNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPW8udG9wLGk9by5sZWZ0LGE9dGhpcy5pc1ZlcnRpY2FsKCk/cjppLGw9bi1hLHM9dGhpcy5wcm9wcy5jb250YWluZXJTaXplKnRoaXMucHJvcHMuY29udGFpbmVyU2l6ZS90aGlzLnByb3BzLnJlYWxTaXplO3RoaXMuc2V0U3RhdGUoe2lzRHJhZ2dpbmc6ITAsbGFzdENsaWVudFBvc2l0aW9uOm59KSx0aGlzLnByb3BzLm9uUG9zaXRpb25DaGFuZ2UoKGwtcy8yKS90KX19LHtrZXk6XCJoYW5kbGVNb3VzZU1vdmVGb3JIb3Jpem9udGFsXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5jb21wdXRlTXVsdGlwbGllcigpO2lmKHRoaXMuc3RhdGUuaXNEcmFnZ2luZyl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPXRoaXMuc3RhdGUubGFzdENsaWVudFBvc2l0aW9uLWUuY2xpZW50WDt0aGlzLnNldFN0YXRlKHtsYXN0Q2xpZW50UG9zaXRpb246ZS5jbGllbnRYfSksdGhpcy5wcm9wcy5vbk1vdmUoMCxuL3QpfX19LHtrZXk6XCJoYW5kbGVNb3VzZU1vdmVGb3JWZXJ0aWNhbFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY29tcHV0ZU11bHRpcGxpZXIoKTtpZih0aGlzLnN0YXRlLmlzRHJhZ2dpbmcpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbj10aGlzLnN0YXRlLmxhc3RDbGllbnRQb3NpdGlvbi1lLmNsaWVudFk7dGhpcy5zZXRTdGF0ZSh7bGFzdENsaWVudFBvc2l0aW9uOmUuY2xpZW50WX0pLHRoaXMucHJvcHMub25Nb3ZlKG4vdCwwKX19fSx7a2V5OlwiaGFuZGxlTW91c2VEb3duXCIsdmFsdWU6ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHQ9dGhpcy5pc1ZlcnRpY2FsKCk/ZS5jbGllbnRZOmUuY2xpZW50WDt0aGlzLnNldFN0YXRlKHtpc0RyYWdnaW5nOiEwLGxhc3RDbGllbnRQb3NpdGlvbjp0fSksdGhpcy5wcm9wcy5vbkZvY3VzKCl9fSx7a2V5OlwiaGFuZGxlTW91c2VVcFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUuaXNEcmFnZ2luZyYmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLnNldFN0YXRlKHtpc0RyYWdnaW5nOiExfSkpfX0se2tleTpcImNyZWF0ZVNjcm9sbFN0eWxlc1wiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuXCJ2ZXJ0aWNhbFwiPT09dGhpcy5wcm9wcy50eXBlP3toZWlnaHQ6dGhpcy5zdGF0ZS5zY3JvbGxTaXplLG1hcmdpblRvcDp0aGlzLnN0YXRlLnBvc2l0aW9ufTp7d2lkdGg6dGhpcy5zdGF0ZS5zY3JvbGxTaXplLG1hcmdpbkxlZnQ6dGhpcy5zdGF0ZS5wb3NpdGlvbn19fSx7a2V5OlwiY29tcHV0ZU11bHRpcGxpZXJcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb3BzLmNvbnRhaW5lclNpemUvdGhpcy5wcm9wcy5yZWFsU2l6ZX19LHtrZXk6XCJpc1ZlcnRpY2FsXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5cInZlcnRpY2FsXCI9PT10aGlzLnByb3BzLnR5cGV9fV0pLHR9KGMuZGVmYXVsdC5Db21wb25lbnQpO3kucHJvcFR5cGVzPXtvbk1vdmU6cC5kZWZhdWx0LmZ1bmMsb25Qb3NpdGlvbkNoYW5nZTpwLmRlZmF1bHQuZnVuYyxvbkZvY3VzOnAuZGVmYXVsdC5mdW5jLHJlYWxTaXplOnAuZGVmYXVsdC5udW1iZXIsY29udGFpbmVyU2l6ZTpwLmRlZmF1bHQubnVtYmVyLHBvc2l0aW9uOnAuZGVmYXVsdC5udW1iZXIsY29udGFpbmVyU3R5bGU6cC5kZWZhdWx0Lm9iamVjdCxzY3JvbGxiYXJTdHlsZTpwLmRlZmF1bHQub2JqZWN0LHR5cGU6cC5kZWZhdWx0Lm9uZU9mKFtcInZlcnRpY2FsXCIsXCJob3Jpem9udGFsXCJdKSxvd25lckRvY3VtZW50OnAuZGVmYXVsdC5hbnksc21vb3RoU2Nyb2xsaW5nOnAuZGVmYXVsdC5ib29sLG1pblNjcm9sbFNpemU6cC5kZWZhdWx0Lm51bWJlcn0seS5kZWZhdWx0UHJvcHM9e3R5cGU6XCJ2ZXJ0aWNhbFwiLHNtb290aFNjcm9sbGluZzohMX0sdC5kZWZhdWx0PXl9LGZ1bmN0aW9uKGUsdCl7dmFyIG49ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlLChuP24oZSk6ZS5jdXJyZW50U3R5bGUpW3QucmVwbGFjZSgvLShcXHcpL2dpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pXX07ZS5leHBvcnRzPW59LGZ1bmN0aW9uKGUsdCxuKXt0PWUuZXhwb3J0cz1uKDE3KSgpLHQucHVzaChbZS5pZCxcIi5zY3JvbGxhcmVhLWNvbnRlbnR7bWFyZ2luOjA7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0uc2Nyb2xsYXJlYS1jb250ZW50OmZvY3Vze291dGxpbmU6MH0uc2Nyb2xsYXJlYXtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LnNjcm9sbGFyZWEgLnNjcm9sbGJhci1jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpub25lO29wYWNpdHk6LjE7ei1pbmRleDo5OTk5Oy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjRzO3RyYW5zaXRpb246YWxsIC40c30uc2Nyb2xsYXJlYSAuc2Nyb2xsYmFyLWNvbnRhaW5lci5ob3Jpem9udGFse3dpZHRoOjEwMCU7aGVpZ2h0OjEwcHg7bGVmdDowO2JvdHRvbTowfS5zY3JvbGxhcmVhIC5zY3JvbGxiYXItY29udGFpbmVyLmhvcml6b250YWwgLnNjcm9sbGJhcnt3aWR0aDoyMHB4O2hlaWdodDo4cHg7YmFja2dyb3VuZDojMDAwO21hcmdpbi10b3A6MXB4fS5zY3JvbGxhcmVhIC5zY3JvbGxiYXItY29udGFpbmVyLnZlcnRpY2Fse3dpZHRoOjEwcHg7aGVpZ2h0OjEwMCU7cmlnaHQ6MDt0b3A6MH0uc2Nyb2xsYXJlYSAuc2Nyb2xsYmFyLWNvbnRhaW5lci52ZXJ0aWNhbCAuc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6MjBweDtiYWNrZ3JvdW5kOiMwMDA7bWFyZ2luLWxlZnQ6MXB4fS5zY3JvbGxhcmVhIC5zY3JvbGxiYXItY29udGFpbmVyLmFjdGl2ZSwuc2Nyb2xsYXJlYSAuc2Nyb2xsYmFyLWNvbnRhaW5lcjpob3ZlcntiYWNrZ3JvdW5kOmdyYXk7b3BhY2l0eTouNiFpbXBvcnRhbnR9LnNjcm9sbGFyZWE6aG92ZXIgLnNjcm9sbGJhci1jb250YWluZXJ7b3BhY2l0eTouM31cIixcIlwiXSl9LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD0wO3Q8dGhpcy5sZW5ndGg7dCsrKXt2YXIgbj10aGlzW3RdO25bMl0/ZS5wdXNoKFwiQG1lZGlhIFwiK25bMl0rXCJ7XCIrblsxXStcIn1cIik6ZS5wdXNoKG5bMV0pfXJldHVybiBlLmpvaW4oXCJcIil9LGUuaT1mdW5jdGlvbih0LG4pe1wic3RyaW5nXCI9PXR5cGVvZiB0JiYodD1bW251bGwsdCxcIlwiXV0pO2Zvcih2YXIgbz17fSxyPTA7cjx0aGlzLmxlbmd0aDtyKyspe3ZhciBpPXRoaXNbcl1bMF07XCJudW1iZXJcIj09dHlwZW9mIGkmJihvW2ldPSEwKX1mb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgYT10W3JdO1wibnVtYmVyXCI9PXR5cGVvZiBhWzBdJiZvW2FbMF1dfHwobiYmIWFbMl0/YVsyXT1uOm4mJihhWzJdPVwiKFwiK2FbMl0rXCIpIGFuZCAoXCIrbitcIilcIiksZS5wdXNoKGEpKX19LGV9fSxmdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gbyhlKXt2YXIgdD1yKGUsXCJsaW5lLWhlaWdodFwiKSxuPXBhcnNlRmxvYXQodCwxMCk7aWYodD09PW4rXCJcIil7dmFyIG89ZS5zdHlsZS5saW5lSGVpZ2h0O2Uuc3R5bGUubGluZUhlaWdodD10K1wiZW1cIix0PXIoZSxcImxpbmUtaGVpZ2h0XCIpLG49cGFyc2VGbG9hdCh0LDEwKSxvP2Uuc3R5bGUubGluZUhlaWdodD1vOmRlbGV0ZSBlLnN0eWxlLmxpbmVIZWlnaHR9aWYodC5pbmRleE9mKFwicHRcIikhPT0tMT8obio9NCxuLz0zKTp0LmluZGV4T2YoXCJtbVwiKSE9PS0xPyhuKj05NixuLz0yNS40KTp0LmluZGV4T2YoXCJjbVwiKSE9PS0xPyhuKj05NixuLz0yLjU0KTp0LmluZGV4T2YoXCJpblwiKSE9PS0xP24qPTk2OnQuaW5kZXhPZihcInBjXCIpIT09LTEmJihuKj0xNiksbj1NYXRoLnJvdW5kKG4pLFwibm9ybWFsXCI9PT10KXt2YXIgaT1lLm5vZGVOYW1lLGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpKTthLmlubmVySFRNTD1cIiZuYnNwO1wiO3ZhciBsPXIoZSxcImZvbnQtc2l6ZVwiKTthLnN0eWxlLmZvbnRTaXplPWw7dmFyIHM9ZG9jdW1lbnQuYm9keTtzLmFwcGVuZENoaWxkKGEpO3ZhciB1PWEub2Zmc2V0SGVpZ2h0O249dSxzLnJlbW92ZUNoaWxkKGEpfXJldHVybiBufXZhciByPW4oMTUpO2UuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG89bigyMSkscj1uKDIyKSxpPW4oMjApO2UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LG4sbyxhLGwpe2whPT1pJiZyKCExLFwiQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gVXNlIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcygpIHRvIGNhbGwgdGhlbS4gUmVhZCBtb3JlIGF0IGh0dHA6Ly9mYi5tZS91c2UtY2hlY2stcHJvcC10eXBlc1wiKX1mdW5jdGlvbiB0KCl7cmV0dXJuIGV9ZS5pc1JlcXVpcmVkPWU7dmFyIG49e2FycmF5OmUsYm9vbDplLGZ1bmM6ZSxudW1iZXI6ZSxvYmplY3Q6ZSxzdHJpbmc6ZSxzeW1ib2w6ZSxhbnk6ZSxhcnJheU9mOnQsZWxlbWVudDplLGluc3RhbmNlT2Y6dCxub2RlOmUsb2JqZWN0T2Y6dCxvbmVPZjp0LG9uZU9mVHlwZTp0LHNoYXBlOnQsZXhhY3Q6dH07cmV0dXJuIG4uY2hlY2tQcm9wVHlwZXM9byxuLlByb3BUeXBlcz1uLG59fSxmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPVwiU0VDUkVUX0RPX05PVF9QQVNTX1RISVNfT1JfWU9VX1dJTExfQkVfRklSRURcIjtlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0KXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBuKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlfX12YXIgbz1mdW5jdGlvbigpe307by50aGF0UmV0dXJucz1uLG8udGhhdFJldHVybnNGYWxzZT1uKCExKSxvLnRoYXRSZXR1cm5zVHJ1ZT1uKCEwKSxvLnRoYXRSZXR1cm5zTnVsbD1uKG51bGwpLG8udGhhdFJldHVybnNUaGlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LG8udGhhdFJldHVybnNBcmd1bWVudD1mdW5jdGlvbihlKXtyZXR1cm4gZX0sZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUsdCxuLG8saSxhLGwscyl7aWYocih0KSwhZSl7dmFyIHU7aWYodm9pZCAwPT09dCl1PW5ldyBFcnJvcihcIk1pbmlmaWVkIGV4Y2VwdGlvbiBvY2N1cnJlZDsgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciB0aGUgZnVsbCBlcnJvciBtZXNzYWdlIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCIpO2Vsc2V7dmFyIGM9W24sbyxpLGEsbCxzXSxmPTA7dT1uZXcgRXJyb3IodC5yZXBsYWNlKC8lcy9nLGZ1bmN0aW9uKCl7cmV0dXJuIGNbZisrXX0pKSx1Lm5hbWU9XCJJbnZhcmlhbnQgVmlvbGF0aW9uXCJ9dGhyb3cgdS5mcmFtZXNUb1BvcD0xLHV9fXZhciByPWZ1bmN0aW9uKGUpe307ZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKCl7dmFyIG4sbyxyLGksYSxsO1widW5kZWZpbmVkXCIhPXR5cGVvZiBwZXJmb3JtYW5jZSYmbnVsbCE9PXBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpcInVuZGVmaW5lZFwiIT10eXBlb2YgdCYmbnVsbCE9PXQmJnQuaHJ0aW1lPyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obigpLWEpLzFlNn0sbz10LmhydGltZSxuPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIGU9bygpLDFlOSplWzBdK2VbMV19LGk9bigpLGw9MWU5KnQudXB0aW1lKCksYT1pLWwpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1yfSxyPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1yfSxyPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHQsbigxMCkpfSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gcihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9ZnVuY3Rpb24gaShlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfXQuX19lc01vZHVsZT0hMDt2YXIgYT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciBvIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sbykmJihlW29dPW5bb10pfXJldHVybiBlfSxsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgbz10W25dO28uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxvLmtleSxvKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxvJiZlKHQsbyksdH19KCkscz1uKDYpLHU9byhzKSxjPW4oMyksZj1vKGMpLHA9big4KSxkPW8ocCksaD1uKDQpLHk9byhoKSx2PW4oNSksbT1vKHYpLGI9big3KSxTPW8oYiksZz1uKDEpLHc9byhnKSxQPW4oMiksVD1vKFApLGs9MWUzLzYwLE89ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuKXt2YXIgbz10aGlzO3IodGhpcyx0KSxlLmNhbGwodGhpcyxuKSx0aGlzLndhc0FuaW1hdGluZz0hMSx0aGlzLmFuaW1hdGlvbklEPW51bGwsdGhpcy5wcmV2VGltZT0wLHRoaXMuYWNjdW11bGF0ZWRUaW1lPTAsdGhpcy51bnJlYWRQcm9wU3R5bGU9bnVsbCx0aGlzLmNsZWFyVW5yZWFkUHJvcFN0eWxlPWZ1bmN0aW9uKGUpe3ZhciB0PSExLG49by5zdGF0ZSxyPW4uY3VycmVudFN0eWxlLGk9bi5jdXJyZW50VmVsb2NpdHksbD1uLmxhc3RJZGVhbFN0eWxlLHM9bi5sYXN0SWRlYWxWZWxvY2l0eTtmb3IodmFyIHUgaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx1KSl7dmFyIGM9ZVt1XTtcIm51bWJlclwiPT10eXBlb2YgYyYmKHR8fCh0PSEwLHI9YSh7fSxyKSxpPWEoe30saSksbD1hKHt9LGwpLHM9YSh7fSxzKSksclt1XT1jLGlbdV09MCxsW3VdPWMsc1t1XT0wKX10JiZvLnNldFN0YXRlKHtjdXJyZW50U3R5bGU6cixjdXJyZW50VmVsb2NpdHk6aSxsYXN0SWRlYWxTdHlsZTpsLGxhc3RJZGVhbFZlbG9jaXR5OnN9KX0sdGhpcy5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5PWZ1bmN0aW9uKCl7by5hbmltYXRpb25JRD1tLmRlZmF1bHQoZnVuY3Rpb24oZSl7dmFyIHQ9by5wcm9wcy5zdHlsZTtpZihTLmRlZmF1bHQoby5zdGF0ZS5jdXJyZW50U3R5bGUsdCxvLnN0YXRlLmN1cnJlbnRWZWxvY2l0eSkpcmV0dXJuIG8ud2FzQW5pbWF0aW5nJiZvLnByb3BzLm9uUmVzdCYmby5wcm9wcy5vblJlc3QoKSxvLmFuaW1hdGlvbklEPW51bGwsby53YXNBbmltYXRpbmc9ITEsdm9pZChvLmFjY3VtdWxhdGVkVGltZT0wKTtvLndhc0FuaW1hdGluZz0hMDt2YXIgbj1lfHx5LmRlZmF1bHQoKSxyPW4tby5wcmV2VGltZTtpZihvLnByZXZUaW1lPW4sby5hY2N1bXVsYXRlZFRpbWU9by5hY2N1bXVsYXRlZFRpbWUrcixvLmFjY3VtdWxhdGVkVGltZT4xMCprJiYoby5hY2N1bXVsYXRlZFRpbWU9MCksMD09PW8uYWNjdW11bGF0ZWRUaW1lKXJldHVybiBvLmFuaW1hdGlvbklEPW51bGwsdm9pZCBvLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKTt2YXIgaT0oby5hY2N1bXVsYXRlZFRpbWUtTWF0aC5mbG9vcihvLmFjY3VtdWxhdGVkVGltZS9rKSprKS9rLGE9TWF0aC5mbG9vcihvLmFjY3VtdWxhdGVkVGltZS9rKSxsPXt9LHM9e30sdT17fSxjPXt9O2Zvcih2YXIgZiBpbiB0KWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGYpKXt2YXIgcD10W2ZdO2lmKFwibnVtYmVyXCI9PXR5cGVvZiBwKXVbZl09cCxjW2ZdPTAsbFtmXT1wLHNbZl09MDtlbHNle2Zvcih2YXIgaD1vLnN0YXRlLmxhc3RJZGVhbFN0eWxlW2ZdLHY9by5zdGF0ZS5sYXN0SWRlYWxWZWxvY2l0eVtmXSxtPTA7bTxhO20rKyl7dmFyIGI9ZC5kZWZhdWx0KGsvMWUzLGgsdixwLnZhbCxwLnN0aWZmbmVzcyxwLmRhbXBpbmcscC5wcmVjaXNpb24pO2g9YlswXSx2PWJbMV19dmFyIGc9ZC5kZWZhdWx0KGsvMWUzLGgsdixwLnZhbCxwLnN0aWZmbmVzcyxwLmRhbXBpbmcscC5wcmVjaXNpb24pLHc9Z1swXSxQPWdbMV07dVtmXT1oKyh3LWgpKmksY1tmXT12KyhQLXYpKmksbFtmXT1oLHNbZl09dn19by5hbmltYXRpb25JRD1udWxsLG8uYWNjdW11bGF0ZWRUaW1lLT1hKmssby5zZXRTdGF0ZSh7Y3VycmVudFN0eWxlOnUsY3VycmVudFZlbG9jaXR5OmMsbGFzdElkZWFsU3R5bGU6bCxsYXN0SWRlYWxWZWxvY2l0eTpzfSksby51bnJlYWRQcm9wU3R5bGU9bnVsbCxvLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKX0pfSx0aGlzLnN0YXRlPXRoaXMuZGVmYXVsdFN0YXRlKCl9cmV0dXJuIGkodCxlKSxsKHQsbnVsbCxbe2tleTpcInByb3BUeXBlc1wiLHZhbHVlOntkZWZhdWx0U3R5bGU6VC5kZWZhdWx0Lm9iamVjdE9mKFQuZGVmYXVsdC5udW1iZXIpLHN0eWxlOlQuZGVmYXVsdC5vYmplY3RPZihULmRlZmF1bHQub25lT2ZUeXBlKFtULmRlZmF1bHQubnVtYmVyLFQuZGVmYXVsdC5vYmplY3RdKSkuaXNSZXF1aXJlZCxjaGlsZHJlbjpULmRlZmF1bHQuZnVuYy5pc1JlcXVpcmVkLG9uUmVzdDpULmRlZmF1bHQuZnVuY30sZW51bWVyYWJsZTohMH1dKSx0LnByb3RvdHlwZS5kZWZhdWx0U3RhdGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLHQ9ZS5kZWZhdWx0U3R5bGUsbj1lLnN0eWxlLG89dHx8Zi5kZWZhdWx0KG4pLHI9dS5kZWZhdWx0KG8pO3JldHVybntjdXJyZW50U3R5bGU6byxjdXJyZW50VmVsb2NpdHk6cixsYXN0SWRlYWxTdHlsZTpvLGxhc3RJZGVhbFZlbG9jaXR5OnJ9fSx0LnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3RoaXMucHJldlRpbWU9eS5kZWZhdWx0KCksdGhpcy5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5KCl9LHQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM9ZnVuY3Rpb24oZSl7bnVsbCE9dGhpcy51bnJlYWRQcm9wU3R5bGUmJnRoaXMuY2xlYXJVbnJlYWRQcm9wU3R5bGUodGhpcy51bnJlYWRQcm9wU3R5bGUpLHRoaXMudW5yZWFkUHJvcFN0eWxlPWUuc3R5bGUsbnVsbD09dGhpcy5hbmltYXRpb25JRCYmKHRoaXMucHJldlRpbWU9eS5kZWZhdWx0KCksdGhpcy5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5KCkpfSx0LnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe251bGwhPXRoaXMuYW5pbWF0aW9uSUQmJihtLmRlZmF1bHQuY2FuY2VsKHRoaXMuYW5pbWF0aW9uSUQpLHRoaXMuYW5pbWF0aW9uSUQ9bnVsbCl9LHQucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMuY2hpbGRyZW4odGhpcy5zdGF0ZS5jdXJyZW50U3R5bGUpO3JldHVybiBlJiZ3LmRlZmF1bHQuQ2hpbGRyZW4ub25seShlKX0sdH0ody5kZWZhdWx0LkNvbXBvbmVudCk7dC5kZWZhdWx0PU8sZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIHIoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIGkoZSx0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KTplLl9fcHJvdG9fXz10KX1mdW5jdGlvbiBhKGUsdCxuKXtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylpZighZy5kZWZhdWx0KGVbb10sdFtvXSxuW29dKSlyZXR1cm4hMTtyZXR1cm4hMH10Ll9fZXNNb2R1bGU9ITA7dmFyIGw9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgbyBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLG8pJiYoZVtvXT1uW29dKX1yZXR1cm4gZX0scz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIG89dFtuXTtvLmVudW1lcmFibGU9by5lbnVtZXJhYmxlfHwhMSxvLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBvJiYoby53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsby5rZXksbyl9fXJldHVybiBmdW5jdGlvbih0LG4sbyl7cmV0dXJuIG4mJmUodC5wcm90b3R5cGUsbiksbyYmZSh0LG8pLHR9fSgpLHU9big2KSxjPW8odSksZj1uKDMpLHA9byhmKSxkPW4oOCksaD1vKGQpLHk9big0KSx2PW8oeSksbT1uKDUpLGI9byhtKSxTPW4oNyksZz1vKFMpLHc9bigxKSxQPW8odyksVD1uKDIpLGs9byhUKSxPPTFlMy82MCxNPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobil7dmFyIG89dGhpcztyKHRoaXMsdCksZS5jYWxsKHRoaXMsbiksdGhpcy5hbmltYXRpb25JRD1udWxsLHRoaXMucHJldlRpbWU9MCx0aGlzLmFjY3VtdWxhdGVkVGltZT0wLHRoaXMudW5yZWFkUHJvcFN0eWxlcz1udWxsLHRoaXMuY2xlYXJVbnJlYWRQcm9wU3R5bGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW8uc3RhdGUsbj10LmN1cnJlbnRTdHlsZXMscj10LmN1cnJlbnRWZWxvY2l0aWVzLGk9dC5sYXN0SWRlYWxTdHlsZXMsYT10Lmxhc3RJZGVhbFZlbG9jaXRpZXMscz0hMSx1PTA7dTxlLmxlbmd0aDt1Kyspe3ZhciBjPWVbdV0sZj0hMTtmb3IodmFyIHAgaW4gYylpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYyxwKSl7dmFyIGQ9Y1twXTtcIm51bWJlclwiPT10eXBlb2YgZCYmKGZ8fChmPSEwLHM9ITAsblt1XT1sKHt9LG5bdV0pLHJbdV09bCh7fSxyW3VdKSxpW3VdPWwoe30saVt1XSksYVt1XT1sKHt9LGFbdV0pKSxuW3VdW3BdPWQsclt1XVtwXT0wLGlbdV1bcF09ZCxhW3VdW3BdPTApfX1zJiZvLnNldFN0YXRlKHtjdXJyZW50U3R5bGVzOm4sY3VycmVudFZlbG9jaXRpZXM6cixsYXN0SWRlYWxTdHlsZXM6aSxsYXN0SWRlYWxWZWxvY2l0aWVzOmF9KX0sdGhpcy5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5PWZ1bmN0aW9uKCl7by5hbmltYXRpb25JRD1iLmRlZmF1bHQoZnVuY3Rpb24oZSl7XG52YXIgdD1vLnByb3BzLnN0eWxlcyhvLnN0YXRlLmxhc3RJZGVhbFN0eWxlcyk7aWYoYShvLnN0YXRlLmN1cnJlbnRTdHlsZXMsdCxvLnN0YXRlLmN1cnJlbnRWZWxvY2l0aWVzKSlyZXR1cm4gby5hbmltYXRpb25JRD1udWxsLHZvaWQoby5hY2N1bXVsYXRlZFRpbWU9MCk7dmFyIG49ZXx8di5kZWZhdWx0KCkscj1uLW8ucHJldlRpbWU7aWYoby5wcmV2VGltZT1uLG8uYWNjdW11bGF0ZWRUaW1lPW8uYWNjdW11bGF0ZWRUaW1lK3Isby5hY2N1bXVsYXRlZFRpbWU+MTAqTyYmKG8uYWNjdW11bGF0ZWRUaW1lPTApLDA9PT1vLmFjY3VtdWxhdGVkVGltZSlyZXR1cm4gby5hbmltYXRpb25JRD1udWxsLHZvaWQgby5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5KCk7Zm9yKHZhciBpPShvLmFjY3VtdWxhdGVkVGltZS1NYXRoLmZsb29yKG8uYWNjdW11bGF0ZWRUaW1lL08pKk8pL08sbD1NYXRoLmZsb29yKG8uYWNjdW11bGF0ZWRUaW1lL08pLHM9W10sdT1bXSxjPVtdLGY9W10scD0wO3A8dC5sZW5ndGg7cCsrKXt2YXIgZD10W3BdLHk9e30sbT17fSxiPXt9LFM9e307Zm9yKHZhciBnIGluIGQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykpe3ZhciB3PWRbZ107aWYoXCJudW1iZXJcIj09dHlwZW9mIHcpeVtnXT13LG1bZ109MCxiW2ddPXcsU1tnXT0wO2Vsc2V7Zm9yKHZhciBQPW8uc3RhdGUubGFzdElkZWFsU3R5bGVzW3BdW2ddLFQ9by5zdGF0ZS5sYXN0SWRlYWxWZWxvY2l0aWVzW3BdW2ddLGs9MDtrPGw7aysrKXt2YXIgTT1oLmRlZmF1bHQoTy8xZTMsUCxULHcudmFsLHcuc3RpZmZuZXNzLHcuZGFtcGluZyx3LnByZWNpc2lvbik7UD1NWzBdLFQ9TVsxXX12YXIgeD1oLmRlZmF1bHQoTy8xZTMsUCxULHcudmFsLHcuc3RpZmZuZXNzLHcuZGFtcGluZyx3LnByZWNpc2lvbiksST14WzBdLEQ9eFsxXTt5W2ddPVArKEktUCkqaSxtW2ddPVQrKEQtVCkqaSxiW2ddPVAsU1tnXT1UfX1jW3BdPXksZltwXT1tLHNbcF09Yix1W3BdPVN9by5hbmltYXRpb25JRD1udWxsLG8uYWNjdW11bGF0ZWRUaW1lLT1sKk8sby5zZXRTdGF0ZSh7Y3VycmVudFN0eWxlczpjLGN1cnJlbnRWZWxvY2l0aWVzOmYsbGFzdElkZWFsU3R5bGVzOnMsbGFzdElkZWFsVmVsb2NpdGllczp1fSksby51bnJlYWRQcm9wU3R5bGVzPW51bGwsby5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5KCl9KX0sdGhpcy5zdGF0ZT10aGlzLmRlZmF1bHRTdGF0ZSgpfXJldHVybiBpKHQsZSkscyh0LG51bGwsW3trZXk6XCJwcm9wVHlwZXNcIix2YWx1ZTp7ZGVmYXVsdFN0eWxlczprLmRlZmF1bHQuYXJyYXlPZihrLmRlZmF1bHQub2JqZWN0T2Yoay5kZWZhdWx0Lm51bWJlcikpLHN0eWxlczprLmRlZmF1bHQuZnVuYy5pc1JlcXVpcmVkLGNoaWxkcmVuOmsuZGVmYXVsdC5mdW5jLmlzUmVxdWlyZWR9LGVudW1lcmFibGU6ITB9XSksdC5wcm90b3R5cGUuZGVmYXVsdFN0YXRlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcm9wcyx0PWUuZGVmYXVsdFN0eWxlcyxuPWUuc3R5bGVzLG89dHx8bigpLm1hcChwLmRlZmF1bHQpLHI9by5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGMuZGVmYXVsdChlKX0pO3JldHVybntjdXJyZW50U3R5bGVzOm8sY3VycmVudFZlbG9jaXRpZXM6cixsYXN0SWRlYWxTdHlsZXM6byxsYXN0SWRlYWxWZWxvY2l0aWVzOnJ9fSx0LnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3RoaXMucHJldlRpbWU9di5kZWZhdWx0KCksdGhpcy5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5KCl9LHQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM9ZnVuY3Rpb24oZSl7bnVsbCE9dGhpcy51bnJlYWRQcm9wU3R5bGVzJiZ0aGlzLmNsZWFyVW5yZWFkUHJvcFN0eWxlKHRoaXMudW5yZWFkUHJvcFN0eWxlcyksdGhpcy51bnJlYWRQcm9wU3R5bGVzPWUuc3R5bGVzKHRoaXMuc3RhdGUubGFzdElkZWFsU3R5bGVzKSxudWxsPT10aGlzLmFuaW1hdGlvbklEJiYodGhpcy5wcmV2VGltZT12LmRlZmF1bHQoKSx0aGlzLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKSl9LHQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7bnVsbCE9dGhpcy5hbmltYXRpb25JRCYmKGIuZGVmYXVsdC5jYW5jZWwodGhpcy5hbmltYXRpb25JRCksdGhpcy5hbmltYXRpb25JRD1udWxsKX0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcm9wcy5jaGlsZHJlbih0aGlzLnN0YXRlLmN1cnJlbnRTdHlsZXMpO3JldHVybiBlJiZQLmRlZmF1bHQuQ2hpbGRyZW4ub25seShlKX0sdH0oUC5kZWZhdWx0LkNvbXBvbmVudCk7dC5kZWZhdWx0PU0sZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIHIoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIGkoZSx0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KTplLl9fcHJvdG9fXz10KX1mdW5jdGlvbiBhKGUsdCxuKXt2YXIgbz10O3JldHVybiBudWxsPT1vP2UubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJue2tleTplLmtleSxkYXRhOmUuZGF0YSxzdHlsZTpuW3RdfX0pOmUubWFwKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTA7cjxvLmxlbmd0aDtyKyspaWYob1tyXS5rZXk9PT1lLmtleSlyZXR1cm57a2V5Om9bcl0ua2V5LGRhdGE6b1tyXS5kYXRhLHN0eWxlOm5bdF19O3JldHVybntrZXk6ZS5rZXksZGF0YTplLmRhdGEsc3R5bGU6blt0XX19KX1mdW5jdGlvbiBsKGUsdCxuLG8pe2lmKG8ubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciByPTA7cjxvLmxlbmd0aDtyKyspaWYob1tyXS5rZXkhPT10W3JdLmtleSlyZXR1cm4hMTtmb3IodmFyIHI9MDtyPG8ubGVuZ3RoO3IrKylpZighay5kZWZhdWx0KGVbcl0sdFtyXS5zdHlsZSxuW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBzKGUsdCxuLG8scixpLGEsbCxzKXtmb3IodmFyIHU9Yi5kZWZhdWx0KG8scixmdW5jdGlvbihlLG8pe3ZhciByPXQobyk7cmV0dXJuIG51bGw9PXI/KG4oe2tleTpvLmtleSxkYXRhOm8uZGF0YX0pLG51bGwpOmsuZGVmYXVsdChpW2VdLHIsYVtlXSk/KG4oe2tleTpvLmtleSxkYXRhOm8uZGF0YX0pLG51bGwpOntrZXk6by5rZXksZGF0YTpvLmRhdGEsc3R5bGU6cn19KSxjPVtdLGY9W10sZD1bXSxoPVtdLHk9MDt5PHUubGVuZ3RoO3krKyl7Zm9yKHZhciB2PXVbeV0sbT1udWxsLFM9MDtTPG8ubGVuZ3RoO1MrKylpZihvW1NdLmtleT09PXYua2V5KXttPVM7YnJlYWt9aWYobnVsbD09bSl7dmFyIGc9ZSh2KTtjW3ldPWcsZFt5XT1nO3ZhciB3PXAuZGVmYXVsdCh2LnN0eWxlKTtmW3ldPXcsaFt5XT13fWVsc2UgY1t5XT1pW21dLGRbeV09bFttXSxmW3ldPWFbbV0saFt5XT1zW21dfXJldHVyblt1LGMsZixkLGhdfXQuX19lc01vZHVsZT0hMDt2YXIgdT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciBvIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sbykmJihlW29dPW5bb10pfXJldHVybiBlfSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgbz10W25dO28uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxvLmtleSxvKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxvJiZlKHQsbyksdH19KCksZj1uKDYpLHA9byhmKSxkPW4oMyksaD1vKGQpLHk9big4KSx2PW8oeSksbT1uKDI3KSxiPW8obSksUz1uKDQpLGc9byhTKSx3PW4oNSksUD1vKHcpLFQ9big3KSxrPW8oVCksTz1uKDEpLE09byhPKSx4PW4oMiksST1vKHgpLEQ9MWUzLzYwLF89ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuKXt2YXIgbz10aGlzO3IodGhpcyx0KSxlLmNhbGwodGhpcyxuKSx0aGlzLnVubW91bnRpbmc9ITEsdGhpcy5hbmltYXRpb25JRD1udWxsLHRoaXMucHJldlRpbWU9MCx0aGlzLmFjY3VtdWxhdGVkVGltZT0wLHRoaXMudW5yZWFkUHJvcFN0eWxlcz1udWxsLHRoaXMuY2xlYXJVbnJlYWRQcm9wU3R5bGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXMoby5wcm9wcy53aWxsRW50ZXIsby5wcm9wcy53aWxsTGVhdmUsby5wcm9wcy5kaWRMZWF2ZSxvLnN0YXRlLm1lcmdlZFByb3BzU3R5bGVzLGUsby5zdGF0ZS5jdXJyZW50U3R5bGVzLG8uc3RhdGUuY3VycmVudFZlbG9jaXRpZXMsby5zdGF0ZS5sYXN0SWRlYWxTdHlsZXMsby5zdGF0ZS5sYXN0SWRlYWxWZWxvY2l0aWVzKSxuPXRbMF0scj10WzFdLGk9dFsyXSxhPXRbM10sbD10WzRdLGM9MDtjPGUubGVuZ3RoO2MrKyl7dmFyIGY9ZVtjXS5zdHlsZSxwPSExO2Zvcih2YXIgZCBpbiBmKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmLGQpKXt2YXIgaD1mW2RdO1wibnVtYmVyXCI9PXR5cGVvZiBoJiYocHx8KHA9ITAscltjXT11KHt9LHJbY10pLGlbY109dSh7fSxpW2NdKSxhW2NdPXUoe30sYVtjXSksbFtjXT11KHt9LGxbY10pLG5bY109e2tleTpuW2NdLmtleSxkYXRhOm5bY10uZGF0YSxzdHlsZTp1KHt9LG5bY10uc3R5bGUpfSkscltjXVtkXT1oLGlbY11bZF09MCxhW2NdW2RdPWgsbFtjXVtkXT0wLG5bY10uc3R5bGVbZF09aCl9fW8uc2V0U3RhdGUoe2N1cnJlbnRTdHlsZXM6cixjdXJyZW50VmVsb2NpdGllczppLG1lcmdlZFByb3BzU3R5bGVzOm4sbGFzdElkZWFsU3R5bGVzOmEsbGFzdElkZWFsVmVsb2NpdGllczpsfSl9LHRoaXMuc3RhcnRBbmltYXRpb25JZk5lY2Vzc2FyeT1mdW5jdGlvbigpe28udW5tb3VudGluZ3x8KG8uYW5pbWF0aW9uSUQ9UC5kZWZhdWx0KGZ1bmN0aW9uKGUpe2lmKCFvLnVubW91bnRpbmcpe3ZhciB0PW8ucHJvcHMuc3R5bGVzLG49XCJmdW5jdGlvblwiPT10eXBlb2YgdD90KGEoby5zdGF0ZS5tZXJnZWRQcm9wc1N0eWxlcyxvLnVucmVhZFByb3BTdHlsZXMsby5zdGF0ZS5sYXN0SWRlYWxTdHlsZXMpKTp0O2lmKGwoby5zdGF0ZS5jdXJyZW50U3R5bGVzLG4sby5zdGF0ZS5jdXJyZW50VmVsb2NpdGllcyxvLnN0YXRlLm1lcmdlZFByb3BzU3R5bGVzKSlyZXR1cm4gby5hbmltYXRpb25JRD1udWxsLHZvaWQoby5hY2N1bXVsYXRlZFRpbWU9MCk7dmFyIHI9ZXx8Zy5kZWZhdWx0KCksaT1yLW8ucHJldlRpbWU7aWYoby5wcmV2VGltZT1yLG8uYWNjdW11bGF0ZWRUaW1lPW8uYWNjdW11bGF0ZWRUaW1lK2ksby5hY2N1bXVsYXRlZFRpbWU+MTAqRCYmKG8uYWNjdW11bGF0ZWRUaW1lPTApLDA9PT1vLmFjY3VtdWxhdGVkVGltZSlyZXR1cm4gby5hbmltYXRpb25JRD1udWxsLHZvaWQgby5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5KCk7Zm9yKHZhciB1PShvLmFjY3VtdWxhdGVkVGltZS1NYXRoLmZsb29yKG8uYWNjdW11bGF0ZWRUaW1lL0QpKkQpL0QsYz1NYXRoLmZsb29yKG8uYWNjdW11bGF0ZWRUaW1lL0QpLGY9cyhvLnByb3BzLndpbGxFbnRlcixvLnByb3BzLndpbGxMZWF2ZSxvLnByb3BzLmRpZExlYXZlLG8uc3RhdGUubWVyZ2VkUHJvcHNTdHlsZXMsbixvLnN0YXRlLmN1cnJlbnRTdHlsZXMsby5zdGF0ZS5jdXJyZW50VmVsb2NpdGllcyxvLnN0YXRlLmxhc3RJZGVhbFN0eWxlcyxvLnN0YXRlLmxhc3RJZGVhbFZlbG9jaXRpZXMpLHA9ZlswXSxkPWZbMV0saD1mWzJdLHk9ZlszXSxtPWZbNF0sYj0wO2I8cC5sZW5ndGg7YisrKXt2YXIgUz1wW2JdLnN0eWxlLHc9e30sUD17fSxUPXt9LGs9e307Zm9yKHZhciBPIGluIFMpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFMsTykpe3ZhciBNPVNbT107aWYoXCJudW1iZXJcIj09dHlwZW9mIE0pd1tPXT1NLFBbT109MCxUW09dPU0sa1tPXT0wO2Vsc2V7Zm9yKHZhciB4PXlbYl1bT10sST1tW2JdW09dLF89MDtfPGM7XysrKXt2YXIgaj12LmRlZmF1bHQoRC8xZTMseCxJLE0udmFsLE0uc3RpZmZuZXNzLE0uZGFtcGluZyxNLnByZWNpc2lvbik7eD1qWzBdLEk9alsxXX12YXIgQz12LmRlZmF1bHQoRC8xZTMseCxJLE0udmFsLE0uc3RpZmZuZXNzLE0uZGFtcGluZyxNLnByZWNpc2lvbiksej1DWzBdLEU9Q1sxXTt3W09dPXgrKHoteCkqdSxQW09dPUkrKEUtSSkqdSxUW09dPXgsa1tPXT1JfX15W2JdPVQsbVtiXT1rLGRbYl09dyxoW2JdPVB9by5hbmltYXRpb25JRD1udWxsLG8uYWNjdW11bGF0ZWRUaW1lLT1jKkQsby5zZXRTdGF0ZSh7Y3VycmVudFN0eWxlczpkLGN1cnJlbnRWZWxvY2l0aWVzOmgsbGFzdElkZWFsU3R5bGVzOnksbGFzdElkZWFsVmVsb2NpdGllczptLG1lcmdlZFByb3BzU3R5bGVzOnB9KSxvLnVucmVhZFByb3BTdHlsZXM9bnVsbCxvLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKX19KSl9LHRoaXMuc3RhdGU9dGhpcy5kZWZhdWx0U3RhdGUoKX1yZXR1cm4gaSh0LGUpLGModCxudWxsLFt7a2V5OlwicHJvcFR5cGVzXCIsdmFsdWU6e2RlZmF1bHRTdHlsZXM6SS5kZWZhdWx0LmFycmF5T2YoSS5kZWZhdWx0LnNoYXBlKHtrZXk6SS5kZWZhdWx0LnN0cmluZy5pc1JlcXVpcmVkLGRhdGE6SS5kZWZhdWx0LmFueSxzdHlsZTpJLmRlZmF1bHQub2JqZWN0T2YoSS5kZWZhdWx0Lm51bWJlcikuaXNSZXF1aXJlZH0pKSxzdHlsZXM6SS5kZWZhdWx0Lm9uZU9mVHlwZShbSS5kZWZhdWx0LmZ1bmMsSS5kZWZhdWx0LmFycmF5T2YoSS5kZWZhdWx0LnNoYXBlKHtrZXk6SS5kZWZhdWx0LnN0cmluZy5pc1JlcXVpcmVkLGRhdGE6SS5kZWZhdWx0LmFueSxzdHlsZTpJLmRlZmF1bHQub2JqZWN0T2YoSS5kZWZhdWx0Lm9uZU9mVHlwZShbSS5kZWZhdWx0Lm51bWJlcixJLmRlZmF1bHQub2JqZWN0XSkpLmlzUmVxdWlyZWR9KSldKS5pc1JlcXVpcmVkLGNoaWxkcmVuOkkuZGVmYXVsdC5mdW5jLmlzUmVxdWlyZWQsd2lsbEVudGVyOkkuZGVmYXVsdC5mdW5jLHdpbGxMZWF2ZTpJLmRlZmF1bHQuZnVuYyxkaWRMZWF2ZTpJLmRlZmF1bHQuZnVuY30sZW51bWVyYWJsZTohMH0se2tleTpcImRlZmF1bHRQcm9wc1wiLHZhbHVlOnt3aWxsRW50ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGguZGVmYXVsdChlLnN0eWxlKX0sd2lsbExlYXZlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGRpZExlYXZlOmZ1bmN0aW9uKCl7fX0sZW51bWVyYWJsZTohMH1dKSx0LnByb3RvdHlwZS5kZWZhdWx0U3RhdGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLHQ9ZS5kZWZhdWx0U3R5bGVzLG49ZS5zdHlsZXMsbz1lLndpbGxFbnRlcixyPWUud2lsbExlYXZlLGk9ZS5kaWRMZWF2ZSxhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bih0KTpuLGw9dm9pZCAwO2w9bnVsbD09dD9hOnQubWFwKGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8YS5sZW5ndGg7dCsrKWlmKGFbdF0ua2V5PT09ZS5rZXkpcmV0dXJuIGFbdF07cmV0dXJuIGV9KTt2YXIgdT1udWxsPT10P2EubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBoLmRlZmF1bHQoZS5zdHlsZSl9KTp0Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4gaC5kZWZhdWx0KGUuc3R5bGUpfSksYz1udWxsPT10P2EubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwLmRlZmF1bHQoZS5zdHlsZSl9KTp0Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4gcC5kZWZhdWx0KGUuc3R5bGUpfSksZj1zKG8scixpLGwsYSx1LGMsdSxjKSxkPWZbMF0seT1mWzFdLHY9ZlsyXSxtPWZbM10sYj1mWzRdO3JldHVybntjdXJyZW50U3R5bGVzOnksY3VycmVudFZlbG9jaXRpZXM6dixsYXN0SWRlYWxTdHlsZXM6bSxsYXN0SWRlYWxWZWxvY2l0aWVzOmIsbWVyZ2VkUHJvcHNTdHlsZXM6ZH19LHQucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dGhpcy5wcmV2VGltZT1nLmRlZmF1bHQoKSx0aGlzLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKX0sdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz1mdW5jdGlvbihlKXt0aGlzLnVucmVhZFByb3BTdHlsZXMmJnRoaXMuY2xlYXJVbnJlYWRQcm9wU3R5bGUodGhpcy51bnJlYWRQcm9wU3R5bGVzKTt2YXIgdD1lLnN0eWxlcztcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3RoaXMudW5yZWFkUHJvcFN0eWxlcz10KGEodGhpcy5zdGF0ZS5tZXJnZWRQcm9wc1N0eWxlcyx0aGlzLnVucmVhZFByb3BTdHlsZXMsdGhpcy5zdGF0ZS5sYXN0SWRlYWxTdHlsZXMpKTp0aGlzLnVucmVhZFByb3BTdHlsZXM9dCxudWxsPT10aGlzLmFuaW1hdGlvbklEJiYodGhpcy5wcmV2VGltZT1nLmRlZmF1bHQoKSx0aGlzLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKSl9LHQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dGhpcy51bm1vdW50aW5nPSEwLG51bGwhPXRoaXMuYW5pbWF0aW9uSUQmJihQLmRlZmF1bHQuY2FuY2VsKHRoaXMuYW5pbWF0aW9uSUQpLHRoaXMuYW5pbWF0aW9uSUQ9bnVsbCl9LHQucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbigpe3ZhciBlPWEodGhpcy5zdGF0ZS5tZXJnZWRQcm9wc1N0eWxlcyx0aGlzLnVucmVhZFByb3BTdHlsZXMsdGhpcy5zdGF0ZS5jdXJyZW50U3R5bGVzKSx0PXRoaXMucHJvcHMuY2hpbGRyZW4oZSk7cmV0dXJuIHQmJk0uZGVmYXVsdC5DaGlsZHJlbi5vbmx5KHQpfSx0fShNLmRlZmF1bHQuQ29tcG9uZW50KTt0LmRlZmF1bHQ9XyxlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSx0LG4pe2Zvcih2YXIgbz17fSxyPTA7cjxlLmxlbmd0aDtyKyspb1tlW3JdLmtleV09cjtmb3IodmFyIGk9e30scj0wO3I8dC5sZW5ndGg7cisrKWlbdFtyXS5rZXldPXI7Zm9yKHZhciBhPVtdLHI9MDtyPHQubGVuZ3RoO3IrKylhW3JdPXRbcl07Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspaWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLGVbcl0ua2V5KSl7dmFyIGw9bihyLGVbcl0pO251bGwhPWwmJmEucHVzaChsKX1yZXR1cm4gYS5zb3J0KGZ1bmN0aW9uKGUsbil7dmFyIHI9aVtlLmtleV0sYT1pW24ua2V5XSxsPW9bZS5rZXldLHM9b1tuLmtleV07aWYobnVsbCE9ciYmbnVsbCE9YSlyZXR1cm4gaVtlLmtleV0taVtuLmtleV07aWYobnVsbCE9bCYmbnVsbCE9cylyZXR1cm4gb1tlLmtleV0tb1tuLmtleV07aWYobnVsbCE9cil7Zm9yKHZhciB1PTA7dTx0Lmxlbmd0aDt1Kyspe3ZhciBjPXRbdV0ua2V5O2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLGMpKXtpZihyPGlbY10mJnM+b1tjXSlyZXR1cm4tMTtpZihyPmlbY10mJnM8b1tjXSlyZXR1cm4gMX19cmV0dXJuIDF9Zm9yKHZhciB1PTA7dTx0Lmxlbmd0aDt1Kyspe3ZhciBjPXRbdV0ua2V5O2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLGMpKXtpZihhPGlbY10mJmw+b1tjXSlyZXR1cm4gMTtpZihhPmlbY10mJmw8b1tjXSlyZXR1cm4tMX19cmV0dXJuLTF9KX10Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PW4sZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oKXt9dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD1vO2UuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiByKGUsdCl7cmV0dXJuIGkoe30scyx0LHt2YWw6ZX0pfXQuX19lc01vZHVsZT0hMDt2YXIgaT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciBvIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sbykmJihlW29dPW5bb10pfXJldHVybiBlfTt0LmRlZmF1bHQ9cjt2YXIgYT1uKDExKSxsPW8oYSkscz1pKHt9LGwuZGVmYXVsdC5ub1dvYmJsZSx7cHJlY2lzaW9uOi4wMX0pO2UuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiBvKGUsdCl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBvPWVbbl0scj1kW28uaWRdO2lmKHIpe3IucmVmcysrO2Zvcih2YXIgaT0wO2k8ci5wYXJ0cy5sZW5ndGg7aSsrKXIucGFydHNbaV0oby5wYXJ0c1tpXSk7Zm9yKDtpPG8ucGFydHMubGVuZ3RoO2krKylyLnBhcnRzLnB1c2godShvLnBhcnRzW2ldLHQpKX1lbHNle2Zvcih2YXIgYT1bXSxpPTA7aTxvLnBhcnRzLmxlbmd0aDtpKyspYS5wdXNoKHUoby5wYXJ0c1tpXSx0KSk7ZFtvLmlkXT17aWQ6by5pZCxyZWZzOjEscGFydHM6YX19fX1mdW5jdGlvbiByKGUpe2Zvcih2YXIgdD1bXSxuPXt9LG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIHI9ZVtvXSxpPXJbMF0sYT1yWzFdLGw9clsyXSxzPXJbM10sdT17Y3NzOmEsbWVkaWE6bCxzb3VyY2VNYXA6c307bltpXT9uW2ldLnBhcnRzLnB1c2godSk6dC5wdXNoKG5baV09e2lkOmkscGFydHM6W3VdfSl9cmV0dXJuIHR9ZnVuY3Rpb24gaShlLHQpe3ZhciBuPXYoKSxvPVNbUy5sZW5ndGgtMV07aWYoXCJ0b3BcIj09PWUuaW5zZXJ0QXQpbz9vLm5leHRTaWJsaW5nP24uaW5zZXJ0QmVmb3JlKHQsby5uZXh0U2libGluZyk6bi5hcHBlbmRDaGlsZCh0KTpuLmluc2VydEJlZm9yZSh0LG4uZmlyc3RDaGlsZCksUy5wdXNoKHQpO2Vsc2V7aWYoXCJib3R0b21cIiE9PWUuaW5zZXJ0QXQpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICdpbnNlcnRBdCcuIE11c3QgYmUgJ3RvcCcgb3IgJ2JvdHRvbScuXCIpO24uYXBwZW5kQ2hpbGQodCl9fWZ1bmN0aW9uIGEoZSl7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpO3ZhciB0PVMuaW5kZXhPZihlKTt0Pj0wJiZTLnNwbGljZSh0LDEpfWZ1bmN0aW9uIGwoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO3JldHVybiB0LnR5cGU9XCJ0ZXh0L2Nzc1wiLGkoZSx0KSx0fWZ1bmN0aW9uIHMoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIik7cmV0dXJuIHQucmVsPVwic3R5bGVzaGVldFwiLGkoZSx0KSx0fWZ1bmN0aW9uIHUoZSx0KXt2YXIgbixvLHI7aWYodC5zaW5nbGV0b24pe3ZhciBpPWIrKztuPW18fChtPWwodCkpLG89Yy5iaW5kKG51bGwsbixpLCExKSxyPWMuYmluZChudWxsLG4saSwhMCl9ZWxzZSBlLnNvdXJjZU1hcCYmXCJmdW5jdGlvblwiPT10eXBlb2YgVVJMJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBVUkwuY3JlYXRlT2JqZWN0VVJMJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBVUkwucmV2b2tlT2JqZWN0VVJMJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBCbG9iJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBidG9hPyhuPXModCksbz1wLmJpbmQobnVsbCxuKSxyPWZ1bmN0aW9uKCl7YShuKSxuLmhyZWYmJlVSTC5yZXZva2VPYmplY3RVUkwobi5ocmVmKX0pOihuPWwodCksbz1mLmJpbmQobnVsbCxuKSxyPWZ1bmN0aW9uKCl7YShuKX0pO3JldHVybiBvKGUpLGZ1bmN0aW9uKHQpe2lmKHQpe2lmKHQuY3NzPT09ZS5jc3MmJnQubWVkaWE9PT1lLm1lZGlhJiZ0LnNvdXJjZU1hcD09PWUuc291cmNlTWFwKXJldHVybjtvKGU9dCl9ZWxzZSByKCl9fWZ1bmN0aW9uIGMoZSx0LG4sbyl7dmFyIHI9bj9cIlwiOm8uY3NzO2lmKGUuc3R5bGVTaGVldCllLnN0eWxlU2hlZXQuY3NzVGV4dD1nKHQscik7ZWxzZXt2YXIgaT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShyKSxhPWUuY2hpbGROb2RlczthW3RdJiZlLnJlbW92ZUNoaWxkKGFbdF0pLGEubGVuZ3RoP2UuaW5zZXJ0QmVmb3JlKGksYVt0XSk6ZS5hcHBlbmRDaGlsZChpKX19ZnVuY3Rpb24gZihlLHQpe3ZhciBuPXQuY3NzLG89dC5tZWRpYTtpZihvJiZlLnNldEF0dHJpYnV0ZShcIm1lZGlhXCIsbyksZS5zdHlsZVNoZWV0KWUuc3R5bGVTaGVldC5jc3NUZXh0PW47ZWxzZXtmb3IoO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2UuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobikpfX1mdW5jdGlvbiBwKGUsdCl7dmFyIG49dC5jc3Msbz10LnNvdXJjZU1hcDtvJiYobis9XCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiK2J0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KG8pKSkpK1wiICovXCIpO3ZhciByPW5ldyBCbG9iKFtuXSx7dHlwZTpcInRleHQvY3NzXCJ9KSxpPWUuaHJlZjtlLmhyZWY9VVJMLmNyZWF0ZU9iamVjdFVSTChyKSxpJiZVUkwucmV2b2tlT2JqZWN0VVJMKGkpfXZhciBkPXt9LGg9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIHQmJih0PWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx0fX0seT1oKGZ1bmN0aW9uKCl7cmV0dXJuL21zaWUgWzYtOV1cXGIvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSl9KSx2PWgoZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuaGVhZHx8ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdfSksbT1udWxsLGI9MCxTPVtdO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3Q9dHx8e30sXCJ1bmRlZmluZWRcIj09dHlwZW9mIHQuc2luZ2xldG9uJiYodC5zaW5nbGV0b249eSgpKSxcInVuZGVmaW5lZFwiPT10eXBlb2YgdC5pbnNlcnRBdCYmKHQuaW5zZXJ0QXQ9XCJib3R0b21cIik7dmFyIG49cihlKTtyZXR1cm4gbyhuLHQpLGZ1bmN0aW9uKGUpe2Zvcih2YXIgaT1bXSxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBsPW5bYV0scz1kW2wuaWRdO3MucmVmcy0tLGkucHVzaChzKX1pZihlKXt2YXIgdT1yKGUpO28odSx0KX1mb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIHM9aVthXTtpZigwPT09cy5yZWZzKXtmb3IodmFyIGM9MDtjPHMucGFydHMubGVuZ3RoO2MrKylzLnBhcnRzW2NdKCk7ZGVsZXRlIGRbcy5pZF19fX19O3ZhciBnPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIGZ1bmN0aW9uKHQsbil7cmV0dXJuIGVbdF09bixlLmZpbHRlcihCb29sZWFuKS5qb2luKFwiXFxuXCIpfX0oKX0sZnVuY3Rpb24oZSx0LG4pe3ZhciBvPW4oMTYpO1wic3RyaW5nXCI9PXR5cGVvZiBvJiYobz1bW2UuaWQsbyxcIlwiXV0pO24oMzApKG8se30pO28ubG9jYWxzJiYoZS5leHBvcnRzPW8ubG9jYWxzKX1dKX0pOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvX3N0cmVhbV9kdXBsZXguanMnKTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4vLyBhIGR1cGxleCBzdHJlYW0gaXMganVzdCBhIHN0cmVhbSB0aGF0IGlzIGJvdGggcmVhZGFibGUgYW5kIHdyaXRhYmxlLlxuLy8gU2luY2UgSlMgZG9lc24ndCBoYXZlIG11bHRpcGxlIHByb3RvdHlwYWwgaW5oZXJpdGFuY2UsIHRoaXMgY2xhc3Ncbi8vIHByb3RvdHlwYWxseSBpbmhlcml0cyBmcm9tIFJlYWRhYmxlLCBhbmQgdGhlbiBwYXJhc2l0aWNhbGx5IGZyb21cbi8vIFdyaXRhYmxlLlxuXG4ndXNlIHN0cmljdCc7XG5cbi8qPHJlcGxhY2VtZW50PiovXG5cbnZhciBwbmEgPSByZXF1aXJlKCdwcm9jZXNzLW5leHRpY2stYXJncycpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgb2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIChvYmopIHtcbiAgdmFyIGtleXMgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIGtleXMucHVzaChrZXkpO1xuICB9cmV0dXJuIGtleXM7XG59O1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbm1vZHVsZS5leHBvcnRzID0gRHVwbGV4O1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIHV0aWwgPSByZXF1aXJlKCdjb3JlLXV0aWwtaXMnKTtcbnV0aWwuaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbnZhciBSZWFkYWJsZSA9IHJlcXVpcmUoJy4vX3N0cmVhbV9yZWFkYWJsZScpO1xudmFyIFdyaXRhYmxlID0gcmVxdWlyZSgnLi9fc3RyZWFtX3dyaXRhYmxlJyk7XG5cbnV0aWwuaW5oZXJpdHMoRHVwbGV4LCBSZWFkYWJsZSk7XG5cbntcbiAgLy8gYXZvaWQgc2NvcGUgY3JlZXAsIHRoZSBrZXlzIGFycmF5IGNhbiB0aGVuIGJlIGNvbGxlY3RlZFxuICB2YXIga2V5cyA9IG9iamVjdEtleXMoV3JpdGFibGUucHJvdG90eXBlKTtcbiAgZm9yICh2YXIgdiA9IDA7IHYgPCBrZXlzLmxlbmd0aDsgdisrKSB7XG4gICAgdmFyIG1ldGhvZCA9IGtleXNbdl07XG4gICAgaWYgKCFEdXBsZXgucHJvdG90eXBlW21ldGhvZF0pIER1cGxleC5wcm90b3R5cGVbbWV0aG9kXSA9IFdyaXRhYmxlLnByb3RvdHlwZVttZXRob2RdO1xuICB9XG59XG5cbmZ1bmN0aW9uIER1cGxleChvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBEdXBsZXgpKSByZXR1cm4gbmV3IER1cGxleChvcHRpb25zKTtcblxuICBSZWFkYWJsZS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICBXcml0YWJsZS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuXG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMucmVhZGFibGUgPT09IGZhbHNlKSB0aGlzLnJlYWRhYmxlID0gZmFsc2U7XG5cbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy53cml0YWJsZSA9PT0gZmFsc2UpIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcblxuICB0aGlzLmFsbG93SGFsZk9wZW4gPSB0cnVlO1xuICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmFsbG93SGFsZk9wZW4gPT09IGZhbHNlKSB0aGlzLmFsbG93SGFsZk9wZW4gPSBmYWxzZTtcblxuICB0aGlzLm9uY2UoJ2VuZCcsIG9uZW5kKTtcbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsICd3cml0YWJsZUhpZ2hXYXRlck1hcmsnLCB7XG4gIC8vIG1ha2luZyBpdCBleHBsaWNpdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlXG4gIC8vIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgcHJvdG90eXBlIG1hbmlwdWxhdGlvbiBpblxuICAvLyB1c2VybGFuZCB3aWxsIGZhaWxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcms7XG4gIH1cbn0pO1xuXG4vLyB0aGUgbm8taGFsZi1vcGVuIGVuZm9yY2VyXG5mdW5jdGlvbiBvbmVuZCgpIHtcbiAgLy8gaWYgd2UgYWxsb3cgaGFsZi1vcGVuIHN0YXRlLCBvciBpZiB0aGUgd3JpdGFibGUgc2lkZSBlbmRlZCxcbiAgLy8gdGhlbiB3ZSdyZSBvay5cbiAgaWYgKHRoaXMuYWxsb3dIYWxmT3BlbiB8fCB0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkKSByZXR1cm47XG5cbiAgLy8gbm8gbW9yZSBkYXRhIGNhbiBiZSB3cml0dGVuLlxuICAvLyBCdXQgYWxsb3cgbW9yZSB3cml0ZXMgdG8gaGFwcGVuIGluIHRoaXMgdGljay5cbiAgcG5hLm5leHRUaWNrKG9uRW5kTlQsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBvbkVuZE5UKHNlbGYpIHtcbiAgc2VsZi5lbmQoKTtcbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsICdkZXN0cm95ZWQnLCB7XG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLl9yZWFkYWJsZVN0YXRlID09PSB1bmRlZmluZWQgfHwgdGhpcy5fd3JpdGFibGVTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCAmJiB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZDtcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAvLyB3ZSBpZ25vcmUgdGhlIHZhbHVlIGlmIHRoZSBzdHJlYW1cbiAgICAvLyBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0XG4gICAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl93cml0YWJsZVN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgdXNlciBpcyBleHBsaWNpdGx5XG4gICAgLy8gbWFuYWdpbmcgZGVzdHJveWVkXG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB2YWx1ZTtcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZCA9IHZhbHVlO1xuICB9XG59KTtcblxuRHVwbGV4LnByb3RvdHlwZS5fZGVzdHJveSA9IGZ1bmN0aW9uIChlcnIsIGNiKSB7XG4gIHRoaXMucHVzaChudWxsKTtcbiAgdGhpcy5lbmQoKTtcblxuICBwbmEubmV4dFRpY2soY2IsIGVycik7XG59OyIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4vLyBhIHBhc3N0aHJvdWdoIHN0cmVhbS5cbi8vIGJhc2ljYWxseSBqdXN0IHRoZSBtb3N0IG1pbmltYWwgc29ydCBvZiBUcmFuc2Zvcm0gc3RyZWFtLlxuLy8gRXZlcnkgd3JpdHRlbiBjaHVuayBnZXRzIG91dHB1dCBhcy1pcy5cblxuJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFBhc3NUaHJvdWdoO1xuXG52YXIgVHJhbnNmb3JtID0gcmVxdWlyZSgnLi9fc3RyZWFtX3RyYW5zZm9ybScpO1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIHV0aWwgPSByZXF1aXJlKCdjb3JlLXV0aWwtaXMnKTtcbnV0aWwuaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbnV0aWwuaW5oZXJpdHMoUGFzc1Rocm91Z2gsIFRyYW5zZm9ybSk7XG5cbmZ1bmN0aW9uIFBhc3NUaHJvdWdoKG9wdGlvbnMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFBhc3NUaHJvdWdoKSkgcmV0dXJuIG5ldyBQYXNzVGhyb3VnaChvcHRpb25zKTtcblxuICBUcmFuc2Zvcm0uY2FsbCh0aGlzLCBvcHRpb25zKTtcbn1cblxuUGFzc1Rocm91Z2gucHJvdG90eXBlLl90cmFuc2Zvcm0gPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikge1xuICBjYihudWxsLCBjaHVuayk7XG59OyIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbi8qPHJlcGxhY2VtZW50PiovXG5cbnZhciBwbmEgPSByZXF1aXJlKCdwcm9jZXNzLW5leHRpY2stYXJncycpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbm1vZHVsZS5leHBvcnRzID0gUmVhZGFibGU7XG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzYXJyYXknKTtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIER1cGxleDtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG5SZWFkYWJsZS5SZWFkYWJsZVN0YXRlID0gUmVhZGFibGVTdGF0ZTtcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBFRSA9IHJlcXVpcmUoJ2V2ZW50cycpLkV2ZW50RW1pdHRlcjtcblxudmFyIEVFbGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uIChlbWl0dGVyLCB0eXBlKSB7XG4gIHJldHVybiBlbWl0dGVyLmxpc3RlbmVycyh0eXBlKS5sZW5ndGg7XG59O1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgU3RyZWFtID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbScpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8qPHJlcGxhY2VtZW50PiovXG5cbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlcjtcbnZhciBPdXJVaW50OEFycmF5ID0gZ2xvYmFsLlVpbnQ4QXJyYXkgfHwgZnVuY3Rpb24gKCkge307XG5mdW5jdGlvbiBfdWludDhBcnJheVRvQnVmZmVyKGNodW5rKSB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShjaHVuayk7XG59XG5mdW5jdGlvbiBfaXNVaW50OEFycmF5KG9iaikge1xuICByZXR1cm4gQnVmZmVyLmlzQnVmZmVyKG9iaikgfHwgb2JqIGluc3RhbmNlb2YgT3VyVWludDhBcnJheTtcbn1cblxuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgdXRpbCA9IHJlcXVpcmUoJ2NvcmUtdXRpbC1pcycpO1xudXRpbC5pbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBkZWJ1Z1V0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG52YXIgZGVidWcgPSB2b2lkIDA7XG5pZiAoZGVidWdVdGlsICYmIGRlYnVnVXRpbC5kZWJ1Z2xvZykge1xuICBkZWJ1ZyA9IGRlYnVnVXRpbC5kZWJ1Z2xvZygnc3RyZWFtJyk7XG59IGVsc2Uge1xuICBkZWJ1ZyA9IGZ1bmN0aW9uICgpIHt9O1xufVxuLyo8L3JlcGxhY2VtZW50PiovXG5cbnZhciBCdWZmZXJMaXN0ID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9zdHJlYW1zL0J1ZmZlckxpc3QnKTtcbnZhciBkZXN0cm95SW1wbCA9IHJlcXVpcmUoJy4vaW50ZXJuYWwvc3RyZWFtcy9kZXN0cm95Jyk7XG52YXIgU3RyaW5nRGVjb2RlcjtcblxudXRpbC5pbmhlcml0cyhSZWFkYWJsZSwgU3RyZWFtKTtcblxudmFyIGtQcm94eUV2ZW50cyA9IFsnZXJyb3InLCAnY2xvc2UnLCAnZGVzdHJveScsICdwYXVzZScsICdyZXN1bWUnXTtcblxuZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKGVtaXR0ZXIsIGV2ZW50LCBmbikge1xuICAvLyBTYWRseSB0aGlzIGlzIG5vdCBjYWNoZWFibGUgYXMgc29tZSBsaWJyYXJpZXMgYnVuZGxlIHRoZWlyIG93blxuICAvLyBldmVudCBlbWl0dGVyIGltcGxlbWVudGF0aW9uIHdpdGggdGhlbS5cbiAgaWYgKHR5cGVvZiBlbWl0dGVyLnByZXBlbmRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGVtaXR0ZXIucHJlcGVuZExpc3RlbmVyKGV2ZW50LCBmbik7XG5cbiAgLy8gVGhpcyBpcyBhIGhhY2sgdG8gbWFrZSBzdXJlIHRoYXQgb3VyIGVycm9yIGhhbmRsZXIgaXMgYXR0YWNoZWQgYmVmb3JlIGFueVxuICAvLyB1c2VybGFuZCBvbmVzLiAgTkVWRVIgRE8gVEhJUy4gVGhpcyBpcyBoZXJlIG9ubHkgYmVjYXVzZSB0aGlzIGNvZGUgbmVlZHNcbiAgLy8gdG8gY29udGludWUgdG8gd29yayB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIE5vZGUuanMgdGhhdCBkbyBub3QgaW5jbHVkZVxuICAvLyB0aGUgcHJlcGVuZExpc3RlbmVyKCkgbWV0aG9kLiBUaGUgZ29hbCBpcyB0byBldmVudHVhbGx5IHJlbW92ZSB0aGlzIGhhY2suXG4gIGlmICghZW1pdHRlci5fZXZlbnRzIHx8ICFlbWl0dGVyLl9ldmVudHNbZXZlbnRdKSBlbWl0dGVyLm9uKGV2ZW50LCBmbik7ZWxzZSBpZiAoaXNBcnJheShlbWl0dGVyLl9ldmVudHNbZXZlbnRdKSkgZW1pdHRlci5fZXZlbnRzW2V2ZW50XS51bnNoaWZ0KGZuKTtlbHNlIGVtaXR0ZXIuX2V2ZW50c1tldmVudF0gPSBbZm4sIGVtaXR0ZXIuX2V2ZW50c1tldmVudF1dO1xufVxuXG5mdW5jdGlvbiBSZWFkYWJsZVN0YXRlKG9wdGlvbnMsIHN0cmVhbSkge1xuICBEdXBsZXggPSBEdXBsZXggfHwgcmVxdWlyZSgnLi9fc3RyZWFtX2R1cGxleCcpO1xuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIC8vIER1cGxleCBzdHJlYW1zIGFyZSBib3RoIHJlYWRhYmxlIGFuZCB3cml0YWJsZSwgYnV0IHNoYXJlXG4gIC8vIHRoZSBzYW1lIG9wdGlvbnMgb2JqZWN0LlxuICAvLyBIb3dldmVyLCBzb21lIGNhc2VzIHJlcXVpcmUgc2V0dGluZyBvcHRpb25zIHRvIGRpZmZlcmVudFxuICAvLyB2YWx1ZXMgZm9yIHRoZSByZWFkYWJsZSBhbmQgdGhlIHdyaXRhYmxlIHNpZGVzIG9mIHRoZSBkdXBsZXggc3RyZWFtLlxuICAvLyBUaGVzZSBvcHRpb25zIGNhbiBiZSBwcm92aWRlZCBzZXBhcmF0ZWx5IGFzIHJlYWRhYmxlWFhYIGFuZCB3cml0YWJsZVhYWC5cbiAgdmFyIGlzRHVwbGV4ID0gc3RyZWFtIGluc3RhbmNlb2YgRHVwbGV4O1xuXG4gIC8vIG9iamVjdCBzdHJlYW0gZmxhZy4gVXNlZCB0byBtYWtlIHJlYWQobikgaWdub3JlIG4gYW5kIHRvXG4gIC8vIG1ha2UgYWxsIHRoZSBidWZmZXIgbWVyZ2luZyBhbmQgbGVuZ3RoIGNoZWNrcyBnbyBhd2F5XG4gIHRoaXMub2JqZWN0TW9kZSA9ICEhb3B0aW9ucy5vYmplY3RNb2RlO1xuXG4gIGlmIChpc0R1cGxleCkgdGhpcy5vYmplY3RNb2RlID0gdGhpcy5vYmplY3RNb2RlIHx8ICEhb3B0aW9ucy5yZWFkYWJsZU9iamVjdE1vZGU7XG5cbiAgLy8gdGhlIHBvaW50IGF0IHdoaWNoIGl0IHN0b3BzIGNhbGxpbmcgX3JlYWQoKSB0byBmaWxsIHRoZSBidWZmZXJcbiAgLy8gTm90ZTogMCBpcyBhIHZhbGlkIHZhbHVlLCBtZWFucyBcImRvbid0IGNhbGwgX3JlYWQgcHJlZW1wdGl2ZWx5IGV2ZXJcIlxuICB2YXIgaHdtID0gb3B0aW9ucy5oaWdoV2F0ZXJNYXJrO1xuICB2YXIgcmVhZGFibGVId20gPSBvcHRpb25zLnJlYWRhYmxlSGlnaFdhdGVyTWFyaztcbiAgdmFyIGRlZmF1bHRId20gPSB0aGlzLm9iamVjdE1vZGUgPyAxNiA6IDE2ICogMTAyNDtcblxuICBpZiAoaHdtIHx8IGh3bSA9PT0gMCkgdGhpcy5oaWdoV2F0ZXJNYXJrID0gaHdtO2Vsc2UgaWYgKGlzRHVwbGV4ICYmIChyZWFkYWJsZUh3bSB8fCByZWFkYWJsZUh3bSA9PT0gMCkpIHRoaXMuaGlnaFdhdGVyTWFyayA9IHJlYWRhYmxlSHdtO2Vsc2UgdGhpcy5oaWdoV2F0ZXJNYXJrID0gZGVmYXVsdEh3bTtcblxuICAvLyBjYXN0IHRvIGludHMuXG4gIHRoaXMuaGlnaFdhdGVyTWFyayA9IE1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKTtcblxuICAvLyBBIGxpbmtlZCBsaXN0IGlzIHVzZWQgdG8gc3RvcmUgZGF0YSBjaHVua3MgaW5zdGVhZCBvZiBhbiBhcnJheSBiZWNhdXNlIHRoZVxuICAvLyBsaW5rZWQgbGlzdCBjYW4gcmVtb3ZlIGVsZW1lbnRzIGZyb20gdGhlIGJlZ2lubmluZyBmYXN0ZXIgdGhhblxuICAvLyBhcnJheS5zaGlmdCgpXG4gIHRoaXMuYnVmZmVyID0gbmV3IEJ1ZmZlckxpc3QoKTtcbiAgdGhpcy5sZW5ndGggPSAwO1xuICB0aGlzLnBpcGVzID0gbnVsbDtcbiAgdGhpcy5waXBlc0NvdW50ID0gMDtcbiAgdGhpcy5mbG93aW5nID0gbnVsbDtcbiAgdGhpcy5lbmRlZCA9IGZhbHNlO1xuICB0aGlzLmVuZEVtaXR0ZWQgPSBmYWxzZTtcbiAgdGhpcy5yZWFkaW5nID0gZmFsc2U7XG5cbiAgLy8gYSBmbGFnIHRvIGJlIGFibGUgdG8gdGVsbCBpZiB0aGUgZXZlbnQgJ3JlYWRhYmxlJy8nZGF0YScgaXMgZW1pdHRlZFxuICAvLyBpbW1lZGlhdGVseSwgb3Igb24gYSBsYXRlciB0aWNrLiAgV2Ugc2V0IHRoaXMgdG8gdHJ1ZSBhdCBmaXJzdCwgYmVjYXVzZVxuICAvLyBhbnkgYWN0aW9ucyB0aGF0IHNob3VsZG4ndCBoYXBwZW4gdW50aWwgXCJsYXRlclwiIHNob3VsZCBnZW5lcmFsbHkgYWxzb1xuICAvLyBub3QgaGFwcGVuIGJlZm9yZSB0aGUgZmlyc3QgcmVhZCBjYWxsLlxuICB0aGlzLnN5bmMgPSB0cnVlO1xuXG4gIC8vIHdoZW5ldmVyIHdlIHJldHVybiBudWxsLCB0aGVuIHdlIHNldCBhIGZsYWcgdG8gc2F5XG4gIC8vIHRoYXQgd2UncmUgYXdhaXRpbmcgYSAncmVhZGFibGUnIGV2ZW50IGVtaXNzaW9uLlxuICB0aGlzLm5lZWRSZWFkYWJsZSA9IGZhbHNlO1xuICB0aGlzLmVtaXR0ZWRSZWFkYWJsZSA9IGZhbHNlO1xuICB0aGlzLnJlYWRhYmxlTGlzdGVuaW5nID0gZmFsc2U7XG4gIHRoaXMucmVzdW1lU2NoZWR1bGVkID0gZmFsc2U7XG5cbiAgLy8gaGFzIGl0IGJlZW4gZGVzdHJveWVkXG4gIHRoaXMuZGVzdHJveWVkID0gZmFsc2U7XG5cbiAgLy8gQ3J5cHRvIGlzIGtpbmQgb2Ygb2xkIGFuZCBjcnVzdHkuICBIaXN0b3JpY2FsbHksIGl0cyBkZWZhdWx0IHN0cmluZ1xuICAvLyBlbmNvZGluZyBpcyAnYmluYXJ5JyBzbyB3ZSBoYXZlIHRvIG1ha2UgdGhpcyBjb25maWd1cmFibGUuXG4gIC8vIEV2ZXJ5dGhpbmcgZWxzZSBpbiB0aGUgdW5pdmVyc2UgdXNlcyAndXRmOCcsIHRob3VnaC5cbiAgdGhpcy5kZWZhdWx0RW5jb2RpbmcgPSBvcHRpb25zLmRlZmF1bHRFbmNvZGluZyB8fCAndXRmOCc7XG5cbiAgLy8gdGhlIG51bWJlciBvZiB3cml0ZXJzIHRoYXQgYXJlIGF3YWl0aW5nIGEgZHJhaW4gZXZlbnQgaW4gLnBpcGUoKXNcbiAgdGhpcy5hd2FpdERyYWluID0gMDtcblxuICAvLyBpZiB0cnVlLCBhIG1heWJlUmVhZE1vcmUgaGFzIGJlZW4gc2NoZWR1bGVkXG4gIHRoaXMucmVhZGluZ01vcmUgPSBmYWxzZTtcblxuICB0aGlzLmRlY29kZXIgPSBudWxsO1xuICB0aGlzLmVuY29kaW5nID0gbnVsbDtcbiAgaWYgKG9wdGlvbnMuZW5jb2RpbmcpIHtcbiAgICBpZiAoIVN0cmluZ0RlY29kZXIpIFN0cmluZ0RlY29kZXIgPSByZXF1aXJlKCdzdHJpbmdfZGVjb2Rlci8nKS5TdHJpbmdEZWNvZGVyO1xuICAgIHRoaXMuZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKG9wdGlvbnMuZW5jb2RpbmcpO1xuICAgIHRoaXMuZW5jb2RpbmcgPSBvcHRpb25zLmVuY29kaW5nO1xuICB9XG59XG5cbmZ1bmN0aW9uIFJlYWRhYmxlKG9wdGlvbnMpIHtcbiAgRHVwbGV4ID0gRHVwbGV4IHx8IHJlcXVpcmUoJy4vX3N0cmVhbV9kdXBsZXgnKTtcblxuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVhZGFibGUpKSByZXR1cm4gbmV3IFJlYWRhYmxlKG9wdGlvbnMpO1xuXG4gIHRoaXMuX3JlYWRhYmxlU3RhdGUgPSBuZXcgUmVhZGFibGVTdGF0ZShvcHRpb25zLCB0aGlzKTtcblxuICAvLyBsZWdhY3lcbiAgdGhpcy5yZWFkYWJsZSA9IHRydWU7XG5cbiAgaWYgKG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMucmVhZCA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fcmVhZCA9IG9wdGlvbnMucmVhZDtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5kZXN0cm95ID09PSAnZnVuY3Rpb24nKSB0aGlzLl9kZXN0cm95ID0gb3B0aW9ucy5kZXN0cm95O1xuICB9XG5cbiAgU3RyZWFtLmNhbGwodGhpcyk7XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsICdkZXN0cm95ZWQnLCB7XG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLl9yZWFkYWJsZVN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIC8vIHdlIGlnbm9yZSB0aGUgdmFsdWUgaWYgdGhlIHN0cmVhbVxuICAgIC8vIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXRcbiAgICBpZiAoIXRoaXMuX3JlYWRhYmxlU3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgdXNlciBpcyBleHBsaWNpdGx5XG4gICAgLy8gbWFuYWdpbmcgZGVzdHJveWVkXG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB2YWx1ZTtcbiAgfVxufSk7XG5cblJlYWRhYmxlLnByb3RvdHlwZS5kZXN0cm95ID0gZGVzdHJveUltcGwuZGVzdHJveTtcblJlYWRhYmxlLnByb3RvdHlwZS5fdW5kZXN0cm95ID0gZGVzdHJveUltcGwudW5kZXN0cm95O1xuUmVhZGFibGUucHJvdG90eXBlLl9kZXN0cm95ID0gZnVuY3Rpb24gKGVyciwgY2IpIHtcbiAgdGhpcy5wdXNoKG51bGwpO1xuICBjYihlcnIpO1xufTtcblxuLy8gTWFudWFsbHkgc2hvdmUgc29tZXRoaW5nIGludG8gdGhlIHJlYWQoKSBidWZmZXIuXG4vLyBUaGlzIHJldHVybnMgdHJ1ZSBpZiB0aGUgaGlnaFdhdGVyTWFyayBoYXMgbm90IGJlZW4gaGl0IHlldCxcbi8vIHNpbWlsYXIgdG8gaG93IFdyaXRhYmxlLndyaXRlKCkgcmV0dXJucyB0cnVlIGlmIHlvdSBzaG91bGRcbi8vIHdyaXRlKCkgc29tZSBtb3JlLlxuUmVhZGFibGUucHJvdG90eXBlLnB1c2ggPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gIHZhciBza2lwQ2h1bmtDaGVjaztcblxuICBpZiAoIXN0YXRlLm9iamVjdE1vZGUpIHtcbiAgICBpZiAodHlwZW9mIGNodW5rID09PSAnc3RyaW5nJykge1xuICAgICAgZW5jb2RpbmcgPSBlbmNvZGluZyB8fCBzdGF0ZS5kZWZhdWx0RW5jb2Rpbmc7XG4gICAgICBpZiAoZW5jb2RpbmcgIT09IHN0YXRlLmVuY29kaW5nKSB7XG4gICAgICAgIGNodW5rID0gQnVmZmVyLmZyb20oY2h1bmssIGVuY29kaW5nKTtcbiAgICAgICAgZW5jb2RpbmcgPSAnJztcbiAgICAgIH1cbiAgICAgIHNraXBDaHVua0NoZWNrID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc2tpcENodW5rQ2hlY2sgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHJlYWRhYmxlQWRkQ2h1bmsodGhpcywgY2h1bmssIGVuY29kaW5nLCBmYWxzZSwgc2tpcENodW5rQ2hlY2spO1xufTtcblxuLy8gVW5zaGlmdCBzaG91bGQgKmFsd2F5cyogYmUgc29tZXRoaW5nIGRpcmVjdGx5IG91dCBvZiByZWFkKClcblJlYWRhYmxlLnByb3RvdHlwZS51bnNoaWZ0ID0gZnVuY3Rpb24gKGNodW5rKSB7XG4gIHJldHVybiByZWFkYWJsZUFkZENodW5rKHRoaXMsIGNodW5rLCBudWxsLCB0cnVlLCBmYWxzZSk7XG59O1xuXG5mdW5jdGlvbiByZWFkYWJsZUFkZENodW5rKHN0cmVhbSwgY2h1bmssIGVuY29kaW5nLCBhZGRUb0Zyb250LCBza2lwQ2h1bmtDaGVjaykge1xuICB2YXIgc3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGU7XG4gIGlmIChjaHVuayA9PT0gbnVsbCkge1xuICAgIHN0YXRlLnJlYWRpbmcgPSBmYWxzZTtcbiAgICBvbkVvZkNodW5rKHN0cmVhbSwgc3RhdGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciBlcjtcbiAgICBpZiAoIXNraXBDaHVua0NoZWNrKSBlciA9IGNodW5rSW52YWxpZChzdGF0ZSwgY2h1bmspO1xuICAgIGlmIChlcikge1xuICAgICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXIpO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUub2JqZWN0TW9kZSB8fCBjaHVuayAmJiBjaHVuay5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodHlwZW9mIGNodW5rICE9PSAnc3RyaW5nJyAmJiAhc3RhdGUub2JqZWN0TW9kZSAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY2h1bmspICE9PSBCdWZmZXIucHJvdG90eXBlKSB7XG4gICAgICAgIGNodW5rID0gX3VpbnQ4QXJyYXlUb0J1ZmZlcihjaHVuayk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhZGRUb0Zyb250KSB7XG4gICAgICAgIGlmIChzdGF0ZS5lbmRFbWl0dGVkKSBzdHJlYW0uZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoJ3N0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50JykpO2Vsc2UgYWRkQ2h1bmsoc3RyZWFtLCBzdGF0ZSwgY2h1bmssIHRydWUpO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5lbmRlZCkge1xuICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoJ3N0cmVhbS5wdXNoKCkgYWZ0ZXIgRU9GJykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUucmVhZGluZyA9IGZhbHNlO1xuICAgICAgICBpZiAoc3RhdGUuZGVjb2RlciAmJiAhZW5jb2RpbmcpIHtcbiAgICAgICAgICBjaHVuayA9IHN0YXRlLmRlY29kZXIud3JpdGUoY2h1bmspO1xuICAgICAgICAgIGlmIChzdGF0ZS5vYmplY3RNb2RlIHx8IGNodW5rLmxlbmd0aCAhPT0gMCkgYWRkQ2h1bmsoc3RyZWFtLCBzdGF0ZSwgY2h1bmssIGZhbHNlKTtlbHNlIG1heWJlUmVhZE1vcmUoc3RyZWFtLCBzdGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkQ2h1bmsoc3RyZWFtLCBzdGF0ZSwgY2h1bmssIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWFkZFRvRnJvbnQpIHtcbiAgICAgIHN0YXRlLnJlYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmVlZE1vcmVEYXRhKHN0YXRlKTtcbn1cblxuZnVuY3Rpb24gYWRkQ2h1bmsoc3RyZWFtLCBzdGF0ZSwgY2h1bmssIGFkZFRvRnJvbnQpIHtcbiAgaWYgKHN0YXRlLmZsb3dpbmcgJiYgc3RhdGUubGVuZ3RoID09PSAwICYmICFzdGF0ZS5zeW5jKSB7XG4gICAgc3RyZWFtLmVtaXQoJ2RhdGEnLCBjaHVuayk7XG4gICAgc3RyZWFtLnJlYWQoMCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gdXBkYXRlIHRoZSBidWZmZXIgaW5mby5cbiAgICBzdGF0ZS5sZW5ndGggKz0gc3RhdGUub2JqZWN0TW9kZSA/IDEgOiBjaHVuay5sZW5ndGg7XG4gICAgaWYgKGFkZFRvRnJvbnQpIHN0YXRlLmJ1ZmZlci51bnNoaWZ0KGNodW5rKTtlbHNlIHN0YXRlLmJ1ZmZlci5wdXNoKGNodW5rKTtcblxuICAgIGlmIChzdGF0ZS5uZWVkUmVhZGFibGUpIGVtaXRSZWFkYWJsZShzdHJlYW0pO1xuICB9XG4gIG1heWJlUmVhZE1vcmUoc3RyZWFtLCBzdGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNodW5rSW52YWxpZChzdGF0ZSwgY2h1bmspIHtcbiAgdmFyIGVyO1xuICBpZiAoIV9pc1VpbnQ4QXJyYXkoY2h1bmspICYmIHR5cGVvZiBjaHVuayAhPT0gJ3N0cmluZycgJiYgY2h1bmsgIT09IHVuZGVmaW5lZCAmJiAhc3RhdGUub2JqZWN0TW9kZSkge1xuICAgIGVyID0gbmV3IFR5cGVFcnJvcignSW52YWxpZCBub24tc3RyaW5nL2J1ZmZlciBjaHVuaycpO1xuICB9XG4gIHJldHVybiBlcjtcbn1cblxuLy8gaWYgaXQncyBwYXN0IHRoZSBoaWdoIHdhdGVyIG1hcmssIHdlIGNhbiBwdXNoIGluIHNvbWUgbW9yZS5cbi8vIEFsc28sIGlmIHdlIGhhdmUgbm8gZGF0YSB5ZXQsIHdlIGNhbiBzdGFuZCBzb21lXG4vLyBtb3JlIGJ5dGVzLiAgVGhpcyBpcyB0byB3b3JrIGFyb3VuZCBjYXNlcyB3aGVyZSBod209MCxcbi8vIHN1Y2ggYXMgdGhlIHJlcGwuICBBbHNvLCBpZiB0aGUgcHVzaCgpIHRyaWdnZXJlZCBhXG4vLyByZWFkYWJsZSBldmVudCwgYW5kIHRoZSB1c2VyIGNhbGxlZCByZWFkKGxhcmdlTnVtYmVyKSBzdWNoIHRoYXRcbi8vIG5lZWRSZWFkYWJsZSB3YXMgc2V0LCB0aGVuIHdlIG91Z2h0IHRvIHB1c2ggbW9yZSwgc28gdGhhdCBhbm90aGVyXG4vLyAncmVhZGFibGUnIGV2ZW50IHdpbGwgYmUgdHJpZ2dlcmVkLlxuZnVuY3Rpb24gbmVlZE1vcmVEYXRhKHN0YXRlKSB7XG4gIHJldHVybiAhc3RhdGUuZW5kZWQgJiYgKHN0YXRlLm5lZWRSZWFkYWJsZSB8fCBzdGF0ZS5sZW5ndGggPCBzdGF0ZS5oaWdoV2F0ZXJNYXJrIHx8IHN0YXRlLmxlbmd0aCA9PT0gMCk7XG59XG5cblJlYWRhYmxlLnByb3RvdHlwZS5pc1BhdXNlZCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyA9PT0gZmFsc2U7XG59O1xuXG4vLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cblJlYWRhYmxlLnByb3RvdHlwZS5zZXRFbmNvZGluZyA9IGZ1bmN0aW9uIChlbmMpIHtcbiAgaWYgKCFTdHJpbmdEZWNvZGVyKSBTdHJpbmdEZWNvZGVyID0gcmVxdWlyZSgnc3RyaW5nX2RlY29kZXIvJykuU3RyaW5nRGVjb2RlcjtcbiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyID0gbmV3IFN0cmluZ0RlY29kZXIoZW5jKTtcbiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmNvZGluZyA9IGVuYztcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vLyBEb24ndCByYWlzZSB0aGUgaHdtID4gOE1CXG52YXIgTUFYX0hXTSA9IDB4ODAwMDAwO1xuZnVuY3Rpb24gY29tcHV0ZU5ld0hpZ2hXYXRlck1hcmsobikge1xuICBpZiAobiA+PSBNQVhfSFdNKSB7XG4gICAgbiA9IE1BWF9IV007XG4gIH0gZWxzZSB7XG4gICAgLy8gR2V0IHRoZSBuZXh0IGhpZ2hlc3QgcG93ZXIgb2YgMiB0byBwcmV2ZW50IGluY3JlYXNpbmcgaHdtIGV4Y2Vzc2l2ZWx5IGluXG4gICAgLy8gdGlueSBhbW91bnRzXG4gICAgbi0tO1xuICAgIG4gfD0gbiA+Pj4gMTtcbiAgICBuIHw9IG4gPj4+IDI7XG4gICAgbiB8PSBuID4+PiA0O1xuICAgIG4gfD0gbiA+Pj4gODtcbiAgICBuIHw9IG4gPj4+IDE2O1xuICAgIG4rKztcbiAgfVxuICByZXR1cm4gbjtcbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBpbmxpbmFibGUsIHNvIHBsZWFzZSB0YWtlIGNhcmUgd2hlbiBtYWtpbmdcbi8vIGNoYW5nZXMgdG8gdGhlIGZ1bmN0aW9uIGJvZHkuXG5mdW5jdGlvbiBob3dNdWNoVG9SZWFkKG4sIHN0YXRlKSB7XG4gIGlmIChuIDw9IDAgfHwgc3RhdGUubGVuZ3RoID09PSAwICYmIHN0YXRlLmVuZGVkKSByZXR1cm4gMDtcbiAgaWYgKHN0YXRlLm9iamVjdE1vZGUpIHJldHVybiAxO1xuICBpZiAobiAhPT0gbikge1xuICAgIC8vIE9ubHkgZmxvdyBvbmUgYnVmZmVyIGF0IGEgdGltZVxuICAgIGlmIChzdGF0ZS5mbG93aW5nICYmIHN0YXRlLmxlbmd0aCkgcmV0dXJuIHN0YXRlLmJ1ZmZlci5oZWFkLmRhdGEubGVuZ3RoO2Vsc2UgcmV0dXJuIHN0YXRlLmxlbmd0aDtcbiAgfVxuICAvLyBJZiB3ZSdyZSBhc2tpbmcgZm9yIG1vcmUgdGhhbiB0aGUgY3VycmVudCBod20sIHRoZW4gcmFpc2UgdGhlIGh3bS5cbiAgaWYgKG4gPiBzdGF0ZS5oaWdoV2F0ZXJNYXJrKSBzdGF0ZS5oaWdoV2F0ZXJNYXJrID0gY29tcHV0ZU5ld0hpZ2hXYXRlck1hcmsobik7XG4gIGlmIChuIDw9IHN0YXRlLmxlbmd0aCkgcmV0dXJuIG47XG4gIC8vIERvbid0IGhhdmUgZW5vdWdoXG4gIGlmICghc3RhdGUuZW5kZWQpIHtcbiAgICBzdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlO1xuICAgIHJldHVybiAwO1xuICB9XG4gIHJldHVybiBzdGF0ZS5sZW5ndGg7XG59XG5cbi8vIHlvdSBjYW4gb3ZlcnJpZGUgZWl0aGVyIHRoaXMgbWV0aG9kLCBvciB0aGUgYXN5bmMgX3JlYWQobikgYmVsb3cuXG5SZWFkYWJsZS5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uIChuKSB7XG4gIGRlYnVnKCdyZWFkJywgbik7XG4gIG4gPSBwYXJzZUludChuLCAxMCk7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gIHZhciBuT3JpZyA9IG47XG5cbiAgaWYgKG4gIT09IDApIHN0YXRlLmVtaXR0ZWRSZWFkYWJsZSA9IGZhbHNlO1xuXG4gIC8vIGlmIHdlJ3JlIGRvaW5nIHJlYWQoMCkgdG8gdHJpZ2dlciBhIHJlYWRhYmxlIGV2ZW50LCBidXQgd2VcbiAgLy8gYWxyZWFkeSBoYXZlIGEgYnVuY2ggb2YgZGF0YSBpbiB0aGUgYnVmZmVyLCB0aGVuIGp1c3QgdHJpZ2dlclxuICAvLyB0aGUgJ3JlYWRhYmxlJyBldmVudCBhbmQgbW92ZSBvbi5cbiAgaWYgKG4gPT09IDAgJiYgc3RhdGUubmVlZFJlYWRhYmxlICYmIChzdGF0ZS5sZW5ndGggPj0gc3RhdGUuaGlnaFdhdGVyTWFyayB8fCBzdGF0ZS5lbmRlZCkpIHtcbiAgICBkZWJ1ZygncmVhZDogZW1pdFJlYWRhYmxlJywgc3RhdGUubGVuZ3RoLCBzdGF0ZS5lbmRlZCk7XG4gICAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5lbmRlZCkgZW5kUmVhZGFibGUodGhpcyk7ZWxzZSBlbWl0UmVhZGFibGUodGhpcyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBuID0gaG93TXVjaFRvUmVhZChuLCBzdGF0ZSk7XG5cbiAgLy8gaWYgd2UndmUgZW5kZWQsIGFuZCB3ZSdyZSBub3cgY2xlYXIsIHRoZW4gZmluaXNoIGl0IHVwLlxuICBpZiAobiA9PT0gMCAmJiBzdGF0ZS5lbmRlZCkge1xuICAgIGlmIChzdGF0ZS5sZW5ndGggPT09IDApIGVuZFJlYWRhYmxlKHRoaXMpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gQWxsIHRoZSBhY3R1YWwgY2h1bmsgZ2VuZXJhdGlvbiBsb2dpYyBuZWVkcyB0byBiZVxuICAvLyAqYmVsb3cqIHRoZSBjYWxsIHRvIF9yZWFkLiAgVGhlIHJlYXNvbiBpcyB0aGF0IGluIGNlcnRhaW5cbiAgLy8gc3ludGhldGljIHN0cmVhbSBjYXNlcywgc3VjaCBhcyBwYXNzdGhyb3VnaCBzdHJlYW1zLCBfcmVhZFxuICAvLyBtYXkgYmUgYSBjb21wbGV0ZWx5IHN5bmNocm9ub3VzIG9wZXJhdGlvbiB3aGljaCBtYXkgY2hhbmdlXG4gIC8vIHRoZSBzdGF0ZSBvZiB0aGUgcmVhZCBidWZmZXIsIHByb3ZpZGluZyBlbm91Z2ggZGF0YSB3aGVuXG4gIC8vIGJlZm9yZSB0aGVyZSB3YXMgKm5vdCogZW5vdWdoLlxuICAvL1xuICAvLyBTbywgdGhlIHN0ZXBzIGFyZTpcbiAgLy8gMS4gRmlndXJlIG91dCB3aGF0IHRoZSBzdGF0ZSBvZiB0aGluZ3Mgd2lsbCBiZSBhZnRlciB3ZSBkb1xuICAvLyBhIHJlYWQgZnJvbSB0aGUgYnVmZmVyLlxuICAvL1xuICAvLyAyLiBJZiB0aGF0IHJlc3VsdGluZyBzdGF0ZSB3aWxsIHRyaWdnZXIgYSBfcmVhZCwgdGhlbiBjYWxsIF9yZWFkLlxuICAvLyBOb3RlIHRoYXQgdGhpcyBtYXkgYmUgYXN5bmNocm9ub3VzLCBvciBzeW5jaHJvbm91cy4gIFllcywgaXQgaXNcbiAgLy8gZGVlcGx5IHVnbHkgdG8gd3JpdGUgQVBJcyB0aGlzIHdheSwgYnV0IHRoYXQgc3RpbGwgZG9lc24ndCBtZWFuXG4gIC8vIHRoYXQgdGhlIFJlYWRhYmxlIGNsYXNzIHNob3VsZCBiZWhhdmUgaW1wcm9wZXJseSwgYXMgc3RyZWFtcyBhcmVcbiAgLy8gZGVzaWduZWQgdG8gYmUgc3luYy9hc3luYyBhZ25vc3RpYy5cbiAgLy8gVGFrZSBub3RlIGlmIHRoZSBfcmVhZCBjYWxsIGlzIHN5bmMgb3IgYXN5bmMgKGllLCBpZiB0aGUgcmVhZCBjYWxsXG4gIC8vIGhhcyByZXR1cm5lZCB5ZXQpLCBzbyB0aGF0IHdlIGtub3cgd2hldGhlciBvciBub3QgaXQncyBzYWZlIHRvIGVtaXRcbiAgLy8gJ3JlYWRhYmxlJyBldGMuXG4gIC8vXG4gIC8vIDMuIEFjdHVhbGx5IHB1bGwgdGhlIHJlcXVlc3RlZCBjaHVua3Mgb3V0IG9mIHRoZSBidWZmZXIgYW5kIHJldHVybi5cblxuICAvLyBpZiB3ZSBuZWVkIGEgcmVhZGFibGUgZXZlbnQsIHRoZW4gd2UgbmVlZCB0byBkbyBzb21lIHJlYWRpbmcuXG4gIHZhciBkb1JlYWQgPSBzdGF0ZS5uZWVkUmVhZGFibGU7XG4gIGRlYnVnKCduZWVkIHJlYWRhYmxlJywgZG9SZWFkKTtcblxuICAvLyBpZiB3ZSBjdXJyZW50bHkgaGF2ZSBsZXNzIHRoYW4gdGhlIGhpZ2hXYXRlck1hcmssIHRoZW4gYWxzbyByZWFkIHNvbWVcbiAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCB8fCBzdGF0ZS5sZW5ndGggLSBuIDwgc3RhdGUuaGlnaFdhdGVyTWFyaykge1xuICAgIGRvUmVhZCA9IHRydWU7XG4gICAgZGVidWcoJ2xlbmd0aCBsZXNzIHRoYW4gd2F0ZXJtYXJrJywgZG9SZWFkKTtcbiAgfVxuXG4gIC8vIGhvd2V2ZXIsIGlmIHdlJ3ZlIGVuZGVkLCB0aGVuIHRoZXJlJ3Mgbm8gcG9pbnQsIGFuZCBpZiB3ZSdyZSBhbHJlYWR5XG4gIC8vIHJlYWRpbmcsIHRoZW4gaXQncyB1bm5lY2Vzc2FyeS5cbiAgaWYgKHN0YXRlLmVuZGVkIHx8IHN0YXRlLnJlYWRpbmcpIHtcbiAgICBkb1JlYWQgPSBmYWxzZTtcbiAgICBkZWJ1ZygncmVhZGluZyBvciBlbmRlZCcsIGRvUmVhZCk7XG4gIH0gZWxzZSBpZiAoZG9SZWFkKSB7XG4gICAgZGVidWcoJ2RvIHJlYWQnKTtcbiAgICBzdGF0ZS5yZWFkaW5nID0gdHJ1ZTtcbiAgICBzdGF0ZS5zeW5jID0gdHJ1ZTtcbiAgICAvLyBpZiB0aGUgbGVuZ3RoIGlzIGN1cnJlbnRseSB6ZXJvLCB0aGVuIHdlICpuZWVkKiBhIHJlYWRhYmxlIGV2ZW50LlxuICAgIGlmIChzdGF0ZS5sZW5ndGggPT09IDApIHN0YXRlLm5lZWRSZWFkYWJsZSA9IHRydWU7XG4gICAgLy8gY2FsbCBpbnRlcm5hbCByZWFkIG1ldGhvZFxuICAgIHRoaXMuX3JlYWQoc3RhdGUuaGlnaFdhdGVyTWFyayk7XG4gICAgc3RhdGUuc3luYyA9IGZhbHNlO1xuICAgIC8vIElmIF9yZWFkIHB1c2hlZCBkYXRhIHN5bmNocm9ub3VzbHksIHRoZW4gYHJlYWRpbmdgIHdpbGwgYmUgZmFsc2UsXG4gICAgLy8gYW5kIHdlIG5lZWQgdG8gcmUtZXZhbHVhdGUgaG93IG11Y2ggZGF0YSB3ZSBjYW4gcmV0dXJuIHRvIHRoZSB1c2VyLlxuICAgIGlmICghc3RhdGUucmVhZGluZykgbiA9IGhvd011Y2hUb1JlYWQobk9yaWcsIHN0YXRlKTtcbiAgfVxuXG4gIHZhciByZXQ7XG4gIGlmIChuID4gMCkgcmV0ID0gZnJvbUxpc3Qobiwgc3RhdGUpO2Vsc2UgcmV0ID0gbnVsbDtcblxuICBpZiAocmV0ID09PSBudWxsKSB7XG4gICAgc3RhdGUubmVlZFJlYWRhYmxlID0gdHJ1ZTtcbiAgICBuID0gMDtcbiAgfSBlbHNlIHtcbiAgICBzdGF0ZS5sZW5ndGggLT0gbjtcbiAgfVxuXG4gIGlmIChzdGF0ZS5sZW5ndGggPT09IDApIHtcbiAgICAvLyBJZiB3ZSBoYXZlIG5vdGhpbmcgaW4gdGhlIGJ1ZmZlciwgdGhlbiB3ZSB3YW50IHRvIGtub3dcbiAgICAvLyBhcyBzb29uIGFzIHdlICpkbyogZ2V0IHNvbWV0aGluZyBpbnRvIHRoZSBidWZmZXIuXG4gICAgaWYgKCFzdGF0ZS5lbmRlZCkgc3RhdGUubmVlZFJlYWRhYmxlID0gdHJ1ZTtcblxuICAgIC8vIElmIHdlIHRyaWVkIHRvIHJlYWQoKSBwYXN0IHRoZSBFT0YsIHRoZW4gZW1pdCBlbmQgb24gdGhlIG5leHQgdGljay5cbiAgICBpZiAobk9yaWcgIT09IG4gJiYgc3RhdGUuZW5kZWQpIGVuZFJlYWRhYmxlKHRoaXMpO1xuICB9XG5cbiAgaWYgKHJldCAhPT0gbnVsbCkgdGhpcy5lbWl0KCdkYXRhJywgcmV0KTtcblxuICByZXR1cm4gcmV0O1xufTtcblxuZnVuY3Rpb24gb25Fb2ZDaHVuayhzdHJlYW0sIHN0YXRlKSB7XG4gIGlmIChzdGF0ZS5lbmRlZCkgcmV0dXJuO1xuICBpZiAoc3RhdGUuZGVjb2Rlcikge1xuICAgIHZhciBjaHVuayA9IHN0YXRlLmRlY29kZXIuZW5kKCk7XG4gICAgaWYgKGNodW5rICYmIGNodW5rLmxlbmd0aCkge1xuICAgICAgc3RhdGUuYnVmZmVyLnB1c2goY2h1bmspO1xuICAgICAgc3RhdGUubGVuZ3RoICs9IHN0YXRlLm9iamVjdE1vZGUgPyAxIDogY2h1bmsubGVuZ3RoO1xuICAgIH1cbiAgfVxuICBzdGF0ZS5lbmRlZCA9IHRydWU7XG5cbiAgLy8gZW1pdCAncmVhZGFibGUnIG5vdyB0byBtYWtlIHN1cmUgaXQgZ2V0cyBwaWNrZWQgdXAuXG4gIGVtaXRSZWFkYWJsZShzdHJlYW0pO1xufVxuXG4vLyBEb24ndCBlbWl0IHJlYWRhYmxlIHJpZ2h0IGF3YXkgaW4gc3luYyBtb2RlLCBiZWNhdXNlIHRoaXMgY2FuIHRyaWdnZXJcbi8vIGFub3RoZXIgcmVhZCgpIGNhbGwgPT4gc3RhY2sgb3ZlcmZsb3cuICBUaGlzIHdheSwgaXQgbWlnaHQgdHJpZ2dlclxuLy8gYSBuZXh0VGljayByZWN1cnNpb24gd2FybmluZywgYnV0IHRoYXQncyBub3Qgc28gYmFkLlxuZnVuY3Rpb24gZW1pdFJlYWRhYmxlKHN0cmVhbSkge1xuICB2YXIgc3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGU7XG4gIHN0YXRlLm5lZWRSZWFkYWJsZSA9IGZhbHNlO1xuICBpZiAoIXN0YXRlLmVtaXR0ZWRSZWFkYWJsZSkge1xuICAgIGRlYnVnKCdlbWl0UmVhZGFibGUnLCBzdGF0ZS5mbG93aW5nKTtcbiAgICBzdGF0ZS5lbWl0dGVkUmVhZGFibGUgPSB0cnVlO1xuICAgIGlmIChzdGF0ZS5zeW5jKSBwbmEubmV4dFRpY2soZW1pdFJlYWRhYmxlXywgc3RyZWFtKTtlbHNlIGVtaXRSZWFkYWJsZV8oc3RyZWFtKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbWl0UmVhZGFibGVfKHN0cmVhbSkge1xuICBkZWJ1ZygnZW1pdCByZWFkYWJsZScpO1xuICBzdHJlYW0uZW1pdCgncmVhZGFibGUnKTtcbiAgZmxvdyhzdHJlYW0pO1xufVxuXG4vLyBhdCB0aGlzIHBvaW50LCB0aGUgdXNlciBoYXMgcHJlc3VtYWJseSBzZWVuIHRoZSAncmVhZGFibGUnIGV2ZW50LFxuLy8gYW5kIGNhbGxlZCByZWFkKCkgdG8gY29uc3VtZSBzb21lIGRhdGEuICB0aGF0IG1heSBoYXZlIHRyaWdnZXJlZFxuLy8gaW4gdHVybiBhbm90aGVyIF9yZWFkKG4pIGNhbGwsIGluIHdoaWNoIGNhc2UgcmVhZGluZyA9IHRydWUgaWZcbi8vIGl0J3MgaW4gcHJvZ3Jlc3MuXG4vLyBIb3dldmVyLCBpZiB3ZSdyZSBub3QgZW5kZWQsIG9yIHJlYWRpbmcsIGFuZCB0aGUgbGVuZ3RoIDwgaHdtLFxuLy8gdGhlbiBnbyBhaGVhZCBhbmQgdHJ5IHRvIHJlYWQgc29tZSBtb3JlIHByZWVtcHRpdmVseS5cbmZ1bmN0aW9uIG1heWJlUmVhZE1vcmUoc3RyZWFtLCBzdGF0ZSkge1xuICBpZiAoIXN0YXRlLnJlYWRpbmdNb3JlKSB7XG4gICAgc3RhdGUucmVhZGluZ01vcmUgPSB0cnVlO1xuICAgIHBuYS5uZXh0VGljayhtYXliZVJlYWRNb3JlXywgc3RyZWFtLCBzdGF0ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF5YmVSZWFkTW9yZV8oc3RyZWFtLCBzdGF0ZSkge1xuICB2YXIgbGVuID0gc3RhdGUubGVuZ3RoO1xuICB3aGlsZSAoIXN0YXRlLnJlYWRpbmcgJiYgIXN0YXRlLmZsb3dpbmcgJiYgIXN0YXRlLmVuZGVkICYmIHN0YXRlLmxlbmd0aCA8IHN0YXRlLmhpZ2hXYXRlck1hcmspIHtcbiAgICBkZWJ1ZygnbWF5YmVSZWFkTW9yZSByZWFkIDAnKTtcbiAgICBzdHJlYW0ucmVhZCgwKTtcbiAgICBpZiAobGVuID09PSBzdGF0ZS5sZW5ndGgpXG4gICAgICAvLyBkaWRuJ3QgZ2V0IGFueSBkYXRhLCBzdG9wIHNwaW5uaW5nLlxuICAgICAgYnJlYWs7ZWxzZSBsZW4gPSBzdGF0ZS5sZW5ndGg7XG4gIH1cbiAgc3RhdGUucmVhZGluZ01vcmUgPSBmYWxzZTtcbn1cblxuLy8gYWJzdHJhY3QgbWV0aG9kLiAgdG8gYmUgb3ZlcnJpZGRlbiBpbiBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzLlxuLy8gY2FsbCBjYihlciwgZGF0YSkgd2hlcmUgZGF0YSBpcyA8PSBuIGluIGxlbmd0aC5cbi8vIGZvciB2aXJ0dWFsIChub24tc3RyaW5nLCBub24tYnVmZmVyKSBzdHJlYW1zLCBcImxlbmd0aFwiIGlzIHNvbWV3aGF0XG4vLyBhcmJpdHJhcnksIGFuZCBwZXJoYXBzIG5vdCB2ZXJ5IG1lYW5pbmdmdWwuXG5SZWFkYWJsZS5wcm90b3R5cGUuX3JlYWQgPSBmdW5jdGlvbiAobikge1xuICB0aGlzLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKCdfcmVhZCgpIGlzIG5vdCBpbXBsZW1lbnRlZCcpKTtcbn07XG5cblJlYWRhYmxlLnByb3RvdHlwZS5waXBlID0gZnVuY3Rpb24gKGRlc3QsIHBpcGVPcHRzKSB7XG4gIHZhciBzcmMgPSB0aGlzO1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuXG4gIHN3aXRjaCAoc3RhdGUucGlwZXNDb3VudCkge1xuICAgIGNhc2UgMDpcbiAgICAgIHN0YXRlLnBpcGVzID0gZGVzdDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTpcbiAgICAgIHN0YXRlLnBpcGVzID0gW3N0YXRlLnBpcGVzLCBkZXN0XTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBzdGF0ZS5waXBlcy5wdXNoKGRlc3QpO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgc3RhdGUucGlwZXNDb3VudCArPSAxO1xuICBkZWJ1ZygncGlwZSBjb3VudD0lZCBvcHRzPSVqJywgc3RhdGUucGlwZXNDb3VudCwgcGlwZU9wdHMpO1xuXG4gIHZhciBkb0VuZCA9ICghcGlwZU9wdHMgfHwgcGlwZU9wdHMuZW5kICE9PSBmYWxzZSkgJiYgZGVzdCAhPT0gcHJvY2Vzcy5zdGRvdXQgJiYgZGVzdCAhPT0gcHJvY2Vzcy5zdGRlcnI7XG5cbiAgdmFyIGVuZEZuID0gZG9FbmQgPyBvbmVuZCA6IHVucGlwZTtcbiAgaWYgKHN0YXRlLmVuZEVtaXR0ZWQpIHBuYS5uZXh0VGljayhlbmRGbik7ZWxzZSBzcmMub25jZSgnZW5kJywgZW5kRm4pO1xuXG4gIGRlc3Qub24oJ3VucGlwZScsIG9udW5waXBlKTtcbiAgZnVuY3Rpb24gb251bnBpcGUocmVhZGFibGUsIHVucGlwZUluZm8pIHtcbiAgICBkZWJ1Zygnb251bnBpcGUnKTtcbiAgICBpZiAocmVhZGFibGUgPT09IHNyYykge1xuICAgICAgaWYgKHVucGlwZUluZm8gJiYgdW5waXBlSW5mby5oYXNVbnBpcGVkID09PSBmYWxzZSkge1xuICAgICAgICB1bnBpcGVJbmZvLmhhc1VucGlwZWQgPSB0cnVlO1xuICAgICAgICBjbGVhbnVwKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gb25lbmQoKSB7XG4gICAgZGVidWcoJ29uZW5kJyk7XG4gICAgZGVzdC5lbmQoKTtcbiAgfVxuXG4gIC8vIHdoZW4gdGhlIGRlc3QgZHJhaW5zLCBpdCByZWR1Y2VzIHRoZSBhd2FpdERyYWluIGNvdW50ZXJcbiAgLy8gb24gdGhlIHNvdXJjZS4gIFRoaXMgd291bGQgYmUgbW9yZSBlbGVnYW50IHdpdGggYSAub25jZSgpXG4gIC8vIGhhbmRsZXIgaW4gZmxvdygpLCBidXQgYWRkaW5nIGFuZCByZW1vdmluZyByZXBlYXRlZGx5IGlzXG4gIC8vIHRvbyBzbG93LlxuICB2YXIgb25kcmFpbiA9IHBpcGVPbkRyYWluKHNyYyk7XG4gIGRlc3Qub24oJ2RyYWluJywgb25kcmFpbik7XG5cbiAgdmFyIGNsZWFuZWRVcCA9IGZhbHNlO1xuICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgIGRlYnVnKCdjbGVhbnVwJyk7XG4gICAgLy8gY2xlYW51cCBldmVudCBoYW5kbGVycyBvbmNlIHRoZSBwaXBlIGlzIGJyb2tlblxuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2Nsb3NlJywgb25jbG9zZSk7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZmluaXNoJywgb25maW5pc2gpO1xuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2RyYWluJywgb25kcmFpbik7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbmVycm9yKTtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCd1bnBpcGUnLCBvbnVucGlwZSk7XG4gICAgc3JjLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCBvbmVuZCk7XG4gICAgc3JjLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCB1bnBpcGUpO1xuICAgIHNyYy5yZW1vdmVMaXN0ZW5lcignZGF0YScsIG9uZGF0YSk7XG5cbiAgICBjbGVhbmVkVXAgPSB0cnVlO1xuXG4gICAgLy8gaWYgdGhlIHJlYWRlciBpcyB3YWl0aW5nIGZvciBhIGRyYWluIGV2ZW50IGZyb20gdGhpc1xuICAgIC8vIHNwZWNpZmljIHdyaXRlciwgdGhlbiBpdCB3b3VsZCBjYXVzZSBpdCB0byBuZXZlciBzdGFydFxuICAgIC8vIGZsb3dpbmcgYWdhaW4uXG4gICAgLy8gU28sIGlmIHRoaXMgaXMgYXdhaXRpbmcgYSBkcmFpbiwgdGhlbiB3ZSBqdXN0IGNhbGwgaXQgbm93LlxuICAgIC8vIElmIHdlIGRvbid0IGtub3csIHRoZW4gYXNzdW1lIHRoYXQgd2UgYXJlIHdhaXRpbmcgZm9yIG9uZS5cbiAgICBpZiAoc3RhdGUuYXdhaXREcmFpbiAmJiAoIWRlc3QuX3dyaXRhYmxlU3RhdGUgfHwgZGVzdC5fd3JpdGFibGVTdGF0ZS5uZWVkRHJhaW4pKSBvbmRyYWluKCk7XG4gIH1cblxuICAvLyBJZiB0aGUgdXNlciBwdXNoZXMgbW9yZSBkYXRhIHdoaWxlIHdlJ3JlIHdyaXRpbmcgdG8gZGVzdCB0aGVuIHdlJ2xsIGVuZCB1cFxuICAvLyBpbiBvbmRhdGEgYWdhaW4uIEhvd2V2ZXIsIHdlIG9ubHkgd2FudCB0byBpbmNyZWFzZSBhd2FpdERyYWluIG9uY2UgYmVjYXVzZVxuICAvLyBkZXN0IHdpbGwgb25seSBlbWl0IG9uZSAnZHJhaW4nIGV2ZW50IGZvciB0aGUgbXVsdGlwbGUgd3JpdGVzLlxuICAvLyA9PiBJbnRyb2R1Y2UgYSBndWFyZCBvbiBpbmNyZWFzaW5nIGF3YWl0RHJhaW4uXG4gIHZhciBpbmNyZWFzZWRBd2FpdERyYWluID0gZmFsc2U7XG4gIHNyYy5vbignZGF0YScsIG9uZGF0YSk7XG4gIGZ1bmN0aW9uIG9uZGF0YShjaHVuaykge1xuICAgIGRlYnVnKCdvbmRhdGEnKTtcbiAgICBpbmNyZWFzZWRBd2FpdERyYWluID0gZmFsc2U7XG4gICAgdmFyIHJldCA9IGRlc3Qud3JpdGUoY2h1bmspO1xuICAgIGlmIChmYWxzZSA9PT0gcmV0ICYmICFpbmNyZWFzZWRBd2FpdERyYWluKSB7XG4gICAgICAvLyBJZiB0aGUgdXNlciB1bnBpcGVkIGR1cmluZyBgZGVzdC53cml0ZSgpYCwgaXQgaXMgcG9zc2libGVcbiAgICAgIC8vIHRvIGdldCBzdHVjayBpbiBhIHBlcm1hbmVudGx5IHBhdXNlZCBzdGF0ZSBpZiB0aGF0IHdyaXRlXG4gICAgICAvLyBhbHNvIHJldHVybmVkIGZhbHNlLlxuICAgICAgLy8gPT4gQ2hlY2sgd2hldGhlciBgZGVzdGAgaXMgc3RpbGwgYSBwaXBpbmcgZGVzdGluYXRpb24uXG4gICAgICBpZiAoKHN0YXRlLnBpcGVzQ291bnQgPT09IDEgJiYgc3RhdGUucGlwZXMgPT09IGRlc3QgfHwgc3RhdGUucGlwZXNDb3VudCA+IDEgJiYgaW5kZXhPZihzdGF0ZS5waXBlcywgZGVzdCkgIT09IC0xKSAmJiAhY2xlYW5lZFVwKSB7XG4gICAgICAgIGRlYnVnKCdmYWxzZSB3cml0ZSByZXNwb25zZSwgcGF1c2UnLCBzcmMuX3JlYWRhYmxlU3RhdGUuYXdhaXREcmFpbik7XG4gICAgICAgIHNyYy5fcmVhZGFibGVTdGF0ZS5hd2FpdERyYWluKys7XG4gICAgICAgIGluY3JlYXNlZEF3YWl0RHJhaW4gPSB0cnVlO1xuICAgICAgfVxuICAgICAgc3JjLnBhdXNlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gaWYgdGhlIGRlc3QgaGFzIGFuIGVycm9yLCB0aGVuIHN0b3AgcGlwaW5nIGludG8gaXQuXG4gIC8vIGhvd2V2ZXIsIGRvbid0IHN1cHByZXNzIHRoZSB0aHJvd2luZyBiZWhhdmlvciBmb3IgdGhpcy5cbiAgZnVuY3Rpb24gb25lcnJvcihlcikge1xuICAgIGRlYnVnKCdvbmVycm9yJywgZXIpO1xuICAgIHVucGlwZSgpO1xuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25lcnJvcik7XG4gICAgaWYgKEVFbGlzdGVuZXJDb3VudChkZXN0LCAnZXJyb3InKSA9PT0gMCkgZGVzdC5lbWl0KCdlcnJvcicsIGVyKTtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSBvdXIgZXJyb3IgaGFuZGxlciBpcyBhdHRhY2hlZCBiZWZvcmUgdXNlcmxhbmQgb25lcy5cbiAgcHJlcGVuZExpc3RlbmVyKGRlc3QsICdlcnJvcicsIG9uZXJyb3IpO1xuXG4gIC8vIEJvdGggY2xvc2UgYW5kIGZpbmlzaCBzaG91bGQgdHJpZ2dlciB1bnBpcGUsIGJ1dCBvbmx5IG9uY2UuXG4gIGZ1bmN0aW9uIG9uY2xvc2UoKSB7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZmluaXNoJywgb25maW5pc2gpO1xuICAgIHVucGlwZSgpO1xuICB9XG4gIGRlc3Qub25jZSgnY2xvc2UnLCBvbmNsb3NlKTtcbiAgZnVuY3Rpb24gb25maW5pc2goKSB7XG4gICAgZGVidWcoJ29uZmluaXNoJyk7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBvbmNsb3NlKTtcbiAgICB1bnBpcGUoKTtcbiAgfVxuICBkZXN0Lm9uY2UoJ2ZpbmlzaCcsIG9uZmluaXNoKTtcblxuICBmdW5jdGlvbiB1bnBpcGUoKSB7XG4gICAgZGVidWcoJ3VucGlwZScpO1xuICAgIHNyYy51bnBpcGUoZGVzdCk7XG4gIH1cblxuICAvLyB0ZWxsIHRoZSBkZXN0IHRoYXQgaXQncyBiZWluZyBwaXBlZCB0b1xuICBkZXN0LmVtaXQoJ3BpcGUnLCBzcmMpO1xuXG4gIC8vIHN0YXJ0IHRoZSBmbG93IGlmIGl0IGhhc24ndCBiZWVuIHN0YXJ0ZWQgYWxyZWFkeS5cbiAgaWYgKCFzdGF0ZS5mbG93aW5nKSB7XG4gICAgZGVidWcoJ3BpcGUgcmVzdW1lJyk7XG4gICAgc3JjLnJlc3VtZSgpO1xuICB9XG5cbiAgcmV0dXJuIGRlc3Q7XG59O1xuXG5mdW5jdGlvbiBwaXBlT25EcmFpbihzcmMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc3RhdGUgPSBzcmMuX3JlYWRhYmxlU3RhdGU7XG4gICAgZGVidWcoJ3BpcGVPbkRyYWluJywgc3RhdGUuYXdhaXREcmFpbik7XG4gICAgaWYgKHN0YXRlLmF3YWl0RHJhaW4pIHN0YXRlLmF3YWl0RHJhaW4tLTtcbiAgICBpZiAoc3RhdGUuYXdhaXREcmFpbiA9PT0gMCAmJiBFRWxpc3RlbmVyQ291bnQoc3JjLCAnZGF0YScpKSB7XG4gICAgICBzdGF0ZS5mbG93aW5nID0gdHJ1ZTtcbiAgICAgIGZsb3coc3JjKTtcbiAgICB9XG4gIH07XG59XG5cblJlYWRhYmxlLnByb3RvdHlwZS51bnBpcGUgPSBmdW5jdGlvbiAoZGVzdCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICB2YXIgdW5waXBlSW5mbyA9IHsgaGFzVW5waXBlZDogZmFsc2UgfTtcblxuICAvLyBpZiB3ZSdyZSBub3QgcGlwaW5nIGFueXdoZXJlLCB0aGVuIGRvIG5vdGhpbmcuXG4gIGlmIChzdGF0ZS5waXBlc0NvdW50ID09PSAwKSByZXR1cm4gdGhpcztcblxuICAvLyBqdXN0IG9uZSBkZXN0aW5hdGlvbi4gIG1vc3QgY29tbW9uIGNhc2UuXG4gIGlmIChzdGF0ZS5waXBlc0NvdW50ID09PSAxKSB7XG4gICAgLy8gcGFzc2VkIGluIG9uZSwgYnV0IGl0J3Mgbm90IHRoZSByaWdodCBvbmUuXG4gICAgaWYgKGRlc3QgJiYgZGVzdCAhPT0gc3RhdGUucGlwZXMpIHJldHVybiB0aGlzO1xuXG4gICAgaWYgKCFkZXN0KSBkZXN0ID0gc3RhdGUucGlwZXM7XG5cbiAgICAvLyBnb3QgYSBtYXRjaC5cbiAgICBzdGF0ZS5waXBlcyA9IG51bGw7XG4gICAgc3RhdGUucGlwZXNDb3VudCA9IDA7XG4gICAgc3RhdGUuZmxvd2luZyA9IGZhbHNlO1xuICAgIGlmIChkZXN0KSBkZXN0LmVtaXQoJ3VucGlwZScsIHRoaXMsIHVucGlwZUluZm8pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gc2xvdyBjYXNlLiBtdWx0aXBsZSBwaXBlIGRlc3RpbmF0aW9ucy5cblxuICBpZiAoIWRlc3QpIHtcbiAgICAvLyByZW1vdmUgYWxsLlxuICAgIHZhciBkZXN0cyA9IHN0YXRlLnBpcGVzO1xuICAgIHZhciBsZW4gPSBzdGF0ZS5waXBlc0NvdW50O1xuICAgIHN0YXRlLnBpcGVzID0gbnVsbDtcbiAgICBzdGF0ZS5waXBlc0NvdW50ID0gMDtcbiAgICBzdGF0ZS5mbG93aW5nID0gZmFsc2U7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBkZXN0c1tpXS5lbWl0KCd1bnBpcGUnLCB0aGlzLCB1bnBpcGVJbmZvKTtcbiAgICB9cmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyB0cnkgdG8gZmluZCB0aGUgcmlnaHQgb25lLlxuICB2YXIgaW5kZXggPSBpbmRleE9mKHN0YXRlLnBpcGVzLCBkZXN0KTtcbiAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuIHRoaXM7XG5cbiAgc3RhdGUucGlwZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgc3RhdGUucGlwZXNDb3VudCAtPSAxO1xuICBpZiAoc3RhdGUucGlwZXNDb3VudCA9PT0gMSkgc3RhdGUucGlwZXMgPSBzdGF0ZS5waXBlc1swXTtcblxuICBkZXN0LmVtaXQoJ3VucGlwZScsIHRoaXMsIHVucGlwZUluZm8pO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLy8gc2V0IHVwIGRhdGEgZXZlbnRzIGlmIHRoZXkgYXJlIGFza2VkIGZvclxuLy8gRW5zdXJlIHJlYWRhYmxlIGxpc3RlbmVycyBldmVudHVhbGx5IGdldCBzb21ldGhpbmdcblJlYWRhYmxlLnByb3RvdHlwZS5vbiA9IGZ1bmN0aW9uIChldiwgZm4pIHtcbiAgdmFyIHJlcyA9IFN0cmVhbS5wcm90b3R5cGUub24uY2FsbCh0aGlzLCBldiwgZm4pO1xuXG4gIGlmIChldiA9PT0gJ2RhdGEnKSB7XG4gICAgLy8gU3RhcnQgZmxvd2luZyBvbiBuZXh0IHRpY2sgaWYgc3RyZWFtIGlzbid0IGV4cGxpY2l0bHkgcGF1c2VkXG4gICAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyAhPT0gZmFsc2UpIHRoaXMucmVzdW1lKCk7XG4gIH0gZWxzZSBpZiAoZXYgPT09ICdyZWFkYWJsZScpIHtcbiAgICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICAgIGlmICghc3RhdGUuZW5kRW1pdHRlZCAmJiAhc3RhdGUucmVhZGFibGVMaXN0ZW5pbmcpIHtcbiAgICAgIHN0YXRlLnJlYWRhYmxlTGlzdGVuaW5nID0gc3RhdGUubmVlZFJlYWRhYmxlID0gdHJ1ZTtcbiAgICAgIHN0YXRlLmVtaXR0ZWRSZWFkYWJsZSA9IGZhbHNlO1xuICAgICAgaWYgKCFzdGF0ZS5yZWFkaW5nKSB7XG4gICAgICAgIHBuYS5uZXh0VGljayhuUmVhZGluZ05leHRUaWNrLCB0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGVuZ3RoKSB7XG4gICAgICAgIGVtaXRSZWFkYWJsZSh0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzO1xufTtcblJlYWRhYmxlLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IFJlYWRhYmxlLnByb3RvdHlwZS5vbjtcblxuZnVuY3Rpb24gblJlYWRpbmdOZXh0VGljayhzZWxmKSB7XG4gIGRlYnVnKCdyZWFkYWJsZSBuZXh0dGljayByZWFkIDAnKTtcbiAgc2VsZi5yZWFkKDApO1xufVxuXG4vLyBwYXVzZSgpIGFuZCByZXN1bWUoKSBhcmUgcmVtbmFudHMgb2YgdGhlIGxlZ2FjeSByZWFkYWJsZSBzdHJlYW0gQVBJXG4vLyBJZiB0aGUgdXNlciB1c2VzIHRoZW0sIHRoZW4gc3dpdGNoIGludG8gb2xkIG1vZGUuXG5SZWFkYWJsZS5wcm90b3R5cGUucmVzdW1lID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICBpZiAoIXN0YXRlLmZsb3dpbmcpIHtcbiAgICBkZWJ1ZygncmVzdW1lJyk7XG4gICAgc3RhdGUuZmxvd2luZyA9IHRydWU7XG4gICAgcmVzdW1lKHRoaXMsIHN0YXRlKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIHJlc3VtZShzdHJlYW0sIHN0YXRlKSB7XG4gIGlmICghc3RhdGUucmVzdW1lU2NoZWR1bGVkKSB7XG4gICAgc3RhdGUucmVzdW1lU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICBwbmEubmV4dFRpY2socmVzdW1lXywgc3RyZWFtLCBzdGF0ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzdW1lXyhzdHJlYW0sIHN0YXRlKSB7XG4gIGlmICghc3RhdGUucmVhZGluZykge1xuICAgIGRlYnVnKCdyZXN1bWUgcmVhZCAwJyk7XG4gICAgc3RyZWFtLnJlYWQoMCk7XG4gIH1cblxuICBzdGF0ZS5yZXN1bWVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgc3RhdGUuYXdhaXREcmFpbiA9IDA7XG4gIHN0cmVhbS5lbWl0KCdyZXN1bWUnKTtcbiAgZmxvdyhzdHJlYW0pO1xuICBpZiAoc3RhdGUuZmxvd2luZyAmJiAhc3RhdGUucmVhZGluZykgc3RyZWFtLnJlYWQoMCk7XG59XG5cblJlYWRhYmxlLnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uICgpIHtcbiAgZGVidWcoJ2NhbGwgcGF1c2UgZmxvd2luZz0laicsIHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyk7XG4gIGlmIChmYWxzZSAhPT0gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKSB7XG4gICAgZGVidWcoJ3BhdXNlJyk7XG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nID0gZmFsc2U7XG4gICAgdGhpcy5lbWl0KCdwYXVzZScpO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gZmxvdyhzdHJlYW0pIHtcbiAgdmFyIHN0YXRlID0gc3RyZWFtLl9yZWFkYWJsZVN0YXRlO1xuICBkZWJ1ZygnZmxvdycsIHN0YXRlLmZsb3dpbmcpO1xuICB3aGlsZSAoc3RhdGUuZmxvd2luZyAmJiBzdHJlYW0ucmVhZCgpICE9PSBudWxsKSB7fVxufVxuXG4vLyB3cmFwIGFuIG9sZC1zdHlsZSBzdHJlYW0gYXMgdGhlIGFzeW5jIGRhdGEgc291cmNlLlxuLy8gVGhpcyBpcyAqbm90KiBwYXJ0IG9mIHRoZSByZWFkYWJsZSBzdHJlYW0gaW50ZXJmYWNlLlxuLy8gSXQgaXMgYW4gdWdseSB1bmZvcnR1bmF0ZSBtZXNzIG9mIGhpc3RvcnkuXG5SZWFkYWJsZS5wcm90b3R5cGUud3JhcCA9IGZ1bmN0aW9uIChzdHJlYW0pIHtcbiAgdmFyIF90aGlzID0gdGhpcztcblxuICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICB2YXIgcGF1c2VkID0gZmFsc2U7XG5cbiAgc3RyZWFtLm9uKCdlbmQnLCBmdW5jdGlvbiAoKSB7XG4gICAgZGVidWcoJ3dyYXBwZWQgZW5kJyk7XG4gICAgaWYgKHN0YXRlLmRlY29kZXIgJiYgIXN0YXRlLmVuZGVkKSB7XG4gICAgICB2YXIgY2h1bmsgPSBzdGF0ZS5kZWNvZGVyLmVuZCgpO1xuICAgICAgaWYgKGNodW5rICYmIGNodW5rLmxlbmd0aCkgX3RoaXMucHVzaChjaHVuayk7XG4gICAgfVxuXG4gICAgX3RoaXMucHVzaChudWxsKTtcbiAgfSk7XG5cbiAgc3RyZWFtLm9uKCdkYXRhJywgZnVuY3Rpb24gKGNodW5rKSB7XG4gICAgZGVidWcoJ3dyYXBwZWQgZGF0YScpO1xuICAgIGlmIChzdGF0ZS5kZWNvZGVyKSBjaHVuayA9IHN0YXRlLmRlY29kZXIud3JpdGUoY2h1bmspO1xuXG4gICAgLy8gZG9uJ3Qgc2tpcCBvdmVyIGZhbHN5IHZhbHVlcyBpbiBvYmplY3RNb2RlXG4gICAgaWYgKHN0YXRlLm9iamVjdE1vZGUgJiYgKGNodW5rID09PSBudWxsIHx8IGNodW5rID09PSB1bmRlZmluZWQpKSByZXR1cm47ZWxzZSBpZiAoIXN0YXRlLm9iamVjdE1vZGUgJiYgKCFjaHVuayB8fCAhY2h1bmsubGVuZ3RoKSkgcmV0dXJuO1xuXG4gICAgdmFyIHJldCA9IF90aGlzLnB1c2goY2h1bmspO1xuICAgIGlmICghcmV0KSB7XG4gICAgICBwYXVzZWQgPSB0cnVlO1xuICAgICAgc3RyZWFtLnBhdXNlKCk7XG4gICAgfVxuICB9KTtcblxuICAvLyBwcm94eSBhbGwgdGhlIG90aGVyIG1ldGhvZHMuXG4gIC8vIGltcG9ydGFudCB3aGVuIHdyYXBwaW5nIGZpbHRlcnMgYW5kIGR1cGxleGVzLlxuICBmb3IgKHZhciBpIGluIHN0cmVhbSkge1xuICAgIGlmICh0aGlzW2ldID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIHN0cmVhbVtpXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpc1tpXSA9IGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gc3RyZWFtW21ldGhvZF0uYXBwbHkoc3RyZWFtLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgICAgfShpKTtcbiAgICB9XG4gIH1cblxuICAvLyBwcm94eSBjZXJ0YWluIGltcG9ydGFudCBldmVudHMuXG4gIGZvciAodmFyIG4gPSAwOyBuIDwga1Byb3h5RXZlbnRzLmxlbmd0aDsgbisrKSB7XG4gICAgc3RyZWFtLm9uKGtQcm94eUV2ZW50c1tuXSwgdGhpcy5lbWl0LmJpbmQodGhpcywga1Byb3h5RXZlbnRzW25dKSk7XG4gIH1cblxuICAvLyB3aGVuIHdlIHRyeSB0byBjb25zdW1lIHNvbWUgbW9yZSBieXRlcywgc2ltcGx5IHVucGF1c2UgdGhlXG4gIC8vIHVuZGVybHlpbmcgc3RyZWFtLlxuICB0aGlzLl9yZWFkID0gZnVuY3Rpb24gKG4pIHtcbiAgICBkZWJ1Zygnd3JhcHBlZCBfcmVhZCcsIG4pO1xuICAgIGlmIChwYXVzZWQpIHtcbiAgICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgICAgc3RyZWFtLnJlc3VtZSgpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWFkYWJsZS5wcm90b3R5cGUsICdyZWFkYWJsZUhpZ2hXYXRlck1hcmsnLCB7XG4gIC8vIG1ha2luZyBpdCBleHBsaWNpdCB0aGlzIHByb3BlcnR5IGlzIG5vdCBlbnVtZXJhYmxlXG4gIC8vIGJlY2F1c2Ugb3RoZXJ3aXNlIHNvbWUgcHJvdG90eXBlIG1hbmlwdWxhdGlvbiBpblxuICAvLyB1c2VybGFuZCB3aWxsIGZhaWxcbiAgZW51bWVyYWJsZTogZmFsc2UsXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcms7XG4gIH1cbn0pO1xuXG4vLyBleHBvc2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuXG5SZWFkYWJsZS5fZnJvbUxpc3QgPSBmcm9tTGlzdDtcblxuLy8gUGx1Y2sgb2ZmIG4gYnl0ZXMgZnJvbSBhbiBhcnJheSBvZiBidWZmZXJzLlxuLy8gTGVuZ3RoIGlzIHRoZSBjb21iaW5lZCBsZW5ndGhzIG9mIGFsbCB0aGUgYnVmZmVycyBpbiB0aGUgbGlzdC5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gYmUgaW5saW5hYmxlLCBzbyBwbGVhc2UgdGFrZSBjYXJlIHdoZW4gbWFraW5nXG4vLyBjaGFuZ2VzIHRvIHRoZSBmdW5jdGlvbiBib2R5LlxuZnVuY3Rpb24gZnJvbUxpc3Qobiwgc3RhdGUpIHtcbiAgLy8gbm90aGluZyBidWZmZXJlZFxuICBpZiAoc3RhdGUubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICB2YXIgcmV0O1xuICBpZiAoc3RhdGUub2JqZWN0TW9kZSkgcmV0ID0gc3RhdGUuYnVmZmVyLnNoaWZ0KCk7ZWxzZSBpZiAoIW4gfHwgbiA+PSBzdGF0ZS5sZW5ndGgpIHtcbiAgICAvLyByZWFkIGl0IGFsbCwgdHJ1bmNhdGUgdGhlIGxpc3RcbiAgICBpZiAoc3RhdGUuZGVjb2RlcikgcmV0ID0gc3RhdGUuYnVmZmVyLmpvaW4oJycpO2Vsc2UgaWYgKHN0YXRlLmJ1ZmZlci5sZW5ndGggPT09IDEpIHJldCA9IHN0YXRlLmJ1ZmZlci5oZWFkLmRhdGE7ZWxzZSByZXQgPSBzdGF0ZS5idWZmZXIuY29uY2F0KHN0YXRlLmxlbmd0aCk7XG4gICAgc3RhdGUuYnVmZmVyLmNsZWFyKCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gcmVhZCBwYXJ0IG9mIGxpc3RcbiAgICByZXQgPSBmcm9tTGlzdFBhcnRpYWwobiwgc3RhdGUuYnVmZmVyLCBzdGF0ZS5kZWNvZGVyKTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8vIEV4dHJhY3RzIG9ubHkgZW5vdWdoIGJ1ZmZlcmVkIGRhdGEgdG8gc2F0aXNmeSB0aGUgYW1vdW50IHJlcXVlc3RlZC5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gYmUgaW5saW5hYmxlLCBzbyBwbGVhc2UgdGFrZSBjYXJlIHdoZW4gbWFraW5nXG4vLyBjaGFuZ2VzIHRvIHRoZSBmdW5jdGlvbiBib2R5LlxuZnVuY3Rpb24gZnJvbUxpc3RQYXJ0aWFsKG4sIGxpc3QsIGhhc1N0cmluZ3MpIHtcbiAgdmFyIHJldDtcbiAgaWYgKG4gPCBsaXN0LmhlYWQuZGF0YS5sZW5ndGgpIHtcbiAgICAvLyBzbGljZSBpcyB0aGUgc2FtZSBmb3IgYnVmZmVycyBhbmQgc3RyaW5nc1xuICAgIHJldCA9IGxpc3QuaGVhZC5kYXRhLnNsaWNlKDAsIG4pO1xuICAgIGxpc3QuaGVhZC5kYXRhID0gbGlzdC5oZWFkLmRhdGEuc2xpY2Uobik7XG4gIH0gZWxzZSBpZiAobiA9PT0gbGlzdC5oZWFkLmRhdGEubGVuZ3RoKSB7XG4gICAgLy8gZmlyc3QgY2h1bmsgaXMgYSBwZXJmZWN0IG1hdGNoXG4gICAgcmV0ID0gbGlzdC5zaGlmdCgpO1xuICB9IGVsc2Uge1xuICAgIC8vIHJlc3VsdCBzcGFucyBtb3JlIHRoYW4gb25lIGJ1ZmZlclxuICAgIHJldCA9IGhhc1N0cmluZ3MgPyBjb3B5RnJvbUJ1ZmZlclN0cmluZyhuLCBsaXN0KSA6IGNvcHlGcm9tQnVmZmVyKG4sIGxpc3QpO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8vIENvcGllcyBhIHNwZWNpZmllZCBhbW91bnQgb2YgY2hhcmFjdGVycyBmcm9tIHRoZSBsaXN0IG9mIGJ1ZmZlcmVkIGRhdGFcbi8vIGNodW5rcy5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gYmUgaW5saW5hYmxlLCBzbyBwbGVhc2UgdGFrZSBjYXJlIHdoZW4gbWFraW5nXG4vLyBjaGFuZ2VzIHRvIHRoZSBmdW5jdGlvbiBib2R5LlxuZnVuY3Rpb24gY29weUZyb21CdWZmZXJTdHJpbmcobiwgbGlzdCkge1xuICB2YXIgcCA9IGxpc3QuaGVhZDtcbiAgdmFyIGMgPSAxO1xuICB2YXIgcmV0ID0gcC5kYXRhO1xuICBuIC09IHJldC5sZW5ndGg7XG4gIHdoaWxlIChwID0gcC5uZXh0KSB7XG4gICAgdmFyIHN0ciA9IHAuZGF0YTtcbiAgICB2YXIgbmIgPSBuID4gc3RyLmxlbmd0aCA/IHN0ci5sZW5ndGggOiBuO1xuICAgIGlmIChuYiA9PT0gc3RyLmxlbmd0aCkgcmV0ICs9IHN0cjtlbHNlIHJldCArPSBzdHIuc2xpY2UoMCwgbik7XG4gICAgbiAtPSBuYjtcbiAgICBpZiAobiA9PT0gMCkge1xuICAgICAgaWYgKG5iID09PSBzdHIubGVuZ3RoKSB7XG4gICAgICAgICsrYztcbiAgICAgICAgaWYgKHAubmV4dCkgbGlzdC5oZWFkID0gcC5uZXh0O2Vsc2UgbGlzdC5oZWFkID0gbGlzdC50YWlsID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxpc3QuaGVhZCA9IHA7XG4gICAgICAgIHAuZGF0YSA9IHN0ci5zbGljZShuYik7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgKytjO1xuICB9XG4gIGxpc3QubGVuZ3RoIC09IGM7XG4gIHJldHVybiByZXQ7XG59XG5cbi8vIENvcGllcyBhIHNwZWNpZmllZCBhbW91bnQgb2YgYnl0ZXMgZnJvbSB0aGUgbGlzdCBvZiBidWZmZXJlZCBkYXRhIGNodW5rcy5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gYmUgaW5saW5hYmxlLCBzbyBwbGVhc2UgdGFrZSBjYXJlIHdoZW4gbWFraW5nXG4vLyBjaGFuZ2VzIHRvIHRoZSBmdW5jdGlvbiBib2R5LlxuZnVuY3Rpb24gY29weUZyb21CdWZmZXIobiwgbGlzdCkge1xuICB2YXIgcmV0ID0gQnVmZmVyLmFsbG9jVW5zYWZlKG4pO1xuICB2YXIgcCA9IGxpc3QuaGVhZDtcbiAgdmFyIGMgPSAxO1xuICBwLmRhdGEuY29weShyZXQpO1xuICBuIC09IHAuZGF0YS5sZW5ndGg7XG4gIHdoaWxlIChwID0gcC5uZXh0KSB7XG4gICAgdmFyIGJ1ZiA9IHAuZGF0YTtcbiAgICB2YXIgbmIgPSBuID4gYnVmLmxlbmd0aCA/IGJ1Zi5sZW5ndGggOiBuO1xuICAgIGJ1Zi5jb3B5KHJldCwgcmV0Lmxlbmd0aCAtIG4sIDAsIG5iKTtcbiAgICBuIC09IG5iO1xuICAgIGlmIChuID09PSAwKSB7XG4gICAgICBpZiAobmIgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICAgICAgKytjO1xuICAgICAgICBpZiAocC5uZXh0KSBsaXN0LmhlYWQgPSBwLm5leHQ7ZWxzZSBsaXN0LmhlYWQgPSBsaXN0LnRhaWwgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGlzdC5oZWFkID0gcDtcbiAgICAgICAgcC5kYXRhID0gYnVmLnNsaWNlKG5iKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICArK2M7XG4gIH1cbiAgbGlzdC5sZW5ndGggLT0gYztcbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gZW5kUmVhZGFibGUoc3RyZWFtKSB7XG4gIHZhciBzdGF0ZSA9IHN0cmVhbS5fcmVhZGFibGVTdGF0ZTtcblxuICAvLyBJZiB3ZSBnZXQgaGVyZSBiZWZvcmUgY29uc3VtaW5nIGFsbCB0aGUgYnl0ZXMsIHRoZW4gdGhhdCBpcyBhXG4gIC8vIGJ1ZyBpbiBub2RlLiAgU2hvdWxkIG5ldmVyIGhhcHBlbi5cbiAgaWYgKHN0YXRlLmxlbmd0aCA+IDApIHRocm93IG5ldyBFcnJvcignXCJlbmRSZWFkYWJsZSgpXCIgY2FsbGVkIG9uIG5vbi1lbXB0eSBzdHJlYW0nKTtcblxuICBpZiAoIXN0YXRlLmVuZEVtaXR0ZWQpIHtcbiAgICBzdGF0ZS5lbmRlZCA9IHRydWU7XG4gICAgcG5hLm5leHRUaWNrKGVuZFJlYWRhYmxlTlQsIHN0YXRlLCBzdHJlYW0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVuZFJlYWRhYmxlTlQoc3RhdGUsIHN0cmVhbSkge1xuICAvLyBDaGVjayB0aGF0IHdlIGRpZG4ndCBnZXQgb25lIGxhc3QgdW5zaGlmdC5cbiAgaWYgKCFzdGF0ZS5lbmRFbWl0dGVkICYmIHN0YXRlLmxlbmd0aCA9PT0gMCkge1xuICAgIHN0YXRlLmVuZEVtaXR0ZWQgPSB0cnVlO1xuICAgIHN0cmVhbS5yZWFkYWJsZSA9IGZhbHNlO1xuICAgIHN0cmVhbS5lbWl0KCdlbmQnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmRleE9mKHhzLCB4KSB7XG4gIGZvciAodmFyIGkgPSAwLCBsID0geHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgaWYgKHhzW2ldID09PSB4KSByZXR1cm4gaTtcbiAgfVxuICByZXR1cm4gLTE7XG59IiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi8vIGEgdHJhbnNmb3JtIHN0cmVhbSBpcyBhIHJlYWRhYmxlL3dyaXRhYmxlIHN0cmVhbSB3aGVyZSB5b3UgZG9cbi8vIHNvbWV0aGluZyB3aXRoIHRoZSBkYXRhLiAgU29tZXRpbWVzIGl0J3MgY2FsbGVkIGEgXCJmaWx0ZXJcIixcbi8vIGJ1dCB0aGF0J3Mgbm90IGEgZ3JlYXQgbmFtZSBmb3IgaXQsIHNpbmNlIHRoYXQgaW1wbGllcyBhIHRoaW5nIHdoZXJlXG4vLyBzb21lIGJpdHMgcGFzcyB0aHJvdWdoLCBhbmQgb3RoZXJzIGFyZSBzaW1wbHkgaWdub3JlZC4gIChUaGF0IHdvdWxkXG4vLyBiZSBhIHZhbGlkIGV4YW1wbGUgb2YgYSB0cmFuc2Zvcm0sIG9mIGNvdXJzZS4pXG4vL1xuLy8gV2hpbGUgdGhlIG91dHB1dCBpcyBjYXVzYWxseSByZWxhdGVkIHRvIHRoZSBpbnB1dCwgaXQncyBub3QgYVxuLy8gbmVjZXNzYXJpbHkgc3ltbWV0cmljIG9yIHN5bmNocm9ub3VzIHRyYW5zZm9ybWF0aW9uLiAgRm9yIGV4YW1wbGUsXG4vLyBhIHpsaWIgc3RyZWFtIG1pZ2h0IHRha2UgbXVsdGlwbGUgcGxhaW4tdGV4dCB3cml0ZXMoKSwgYW5kIHRoZW5cbi8vIGVtaXQgYSBzaW5nbGUgY29tcHJlc3NlZCBjaHVuayBzb21lIHRpbWUgaW4gdGhlIGZ1dHVyZS5cbi8vXG4vLyBIZXJlJ3MgaG93IHRoaXMgd29ya3M6XG4vL1xuLy8gVGhlIFRyYW5zZm9ybSBzdHJlYW0gaGFzIGFsbCB0aGUgYXNwZWN0cyBvZiB0aGUgcmVhZGFibGUgYW5kIHdyaXRhYmxlXG4vLyBzdHJlYW0gY2xhc3Nlcy4gIFdoZW4geW91IHdyaXRlKGNodW5rKSwgdGhhdCBjYWxscyBfd3JpdGUoY2h1bmssY2IpXG4vLyBpbnRlcm5hbGx5LCBhbmQgcmV0dXJucyBmYWxzZSBpZiB0aGVyZSdzIGEgbG90IG9mIHBlbmRpbmcgd3JpdGVzXG4vLyBidWZmZXJlZCB1cC4gIFdoZW4geW91IGNhbGwgcmVhZCgpLCB0aGF0IGNhbGxzIF9yZWFkKG4pIHVudGlsXG4vLyB0aGVyZSdzIGVub3VnaCBwZW5kaW5nIHJlYWRhYmxlIGRhdGEgYnVmZmVyZWQgdXAuXG4vL1xuLy8gSW4gYSB0cmFuc2Zvcm0gc3RyZWFtLCB0aGUgd3JpdHRlbiBkYXRhIGlzIHBsYWNlZCBpbiBhIGJ1ZmZlci4gIFdoZW5cbi8vIF9yZWFkKG4pIGlzIGNhbGxlZCwgaXQgdHJhbnNmb3JtcyB0aGUgcXVldWVkIHVwIGRhdGEsIGNhbGxpbmcgdGhlXG4vLyBidWZmZXJlZCBfd3JpdGUgY2IncyBhcyBpdCBjb25zdW1lcyBjaHVua3MuICBJZiBjb25zdW1pbmcgYSBzaW5nbGVcbi8vIHdyaXR0ZW4gY2h1bmsgd291bGQgcmVzdWx0IGluIG11bHRpcGxlIG91dHB1dCBjaHVua3MsIHRoZW4gdGhlIGZpcnN0XG4vLyBvdXRwdXR0ZWQgYml0IGNhbGxzIHRoZSByZWFkY2IsIGFuZCBzdWJzZXF1ZW50IGNodW5rcyBqdXN0IGdvIGludG9cbi8vIHRoZSByZWFkIGJ1ZmZlciwgYW5kIHdpbGwgY2F1c2UgaXQgdG8gZW1pdCAncmVhZGFibGUnIGlmIG5lY2Vzc2FyeS5cbi8vXG4vLyBUaGlzIHdheSwgYmFjay1wcmVzc3VyZSBpcyBhY3R1YWxseSBkZXRlcm1pbmVkIGJ5IHRoZSByZWFkaW5nIHNpZGUsXG4vLyBzaW5jZSBfcmVhZCBoYXMgdG8gYmUgY2FsbGVkIHRvIHN0YXJ0IHByb2Nlc3NpbmcgYSBuZXcgY2h1bmsuICBIb3dldmVyLFxuLy8gYSBwYXRob2xvZ2ljYWwgaW5mbGF0ZSB0eXBlIG9mIHRyYW5zZm9ybSBjYW4gY2F1c2UgZXhjZXNzaXZlIGJ1ZmZlcmluZ1xuLy8gaGVyZS4gIEZvciBleGFtcGxlLCBpbWFnaW5lIGEgc3RyZWFtIHdoZXJlIGV2ZXJ5IGJ5dGUgb2YgaW5wdXQgaXNcbi8vIGludGVycHJldGVkIGFzIGFuIGludGVnZXIgZnJvbSAwLTI1NSwgYW5kIHRoZW4gcmVzdWx0cyBpbiB0aGF0IG1hbnlcbi8vIGJ5dGVzIG9mIG91dHB1dC4gIFdyaXRpbmcgdGhlIDQgYnl0ZXMge2ZmLGZmLGZmLGZmfSB3b3VsZCByZXN1bHQgaW5cbi8vIDFrYiBvZiBkYXRhIGJlaW5nIG91dHB1dC4gIEluIHRoaXMgY2FzZSwgeW91IGNvdWxkIHdyaXRlIGEgdmVyeSBzbWFsbFxuLy8gYW1vdW50IG9mIGlucHV0LCBhbmQgZW5kIHVwIHdpdGggYSB2ZXJ5IGxhcmdlIGFtb3VudCBvZiBvdXRwdXQuICBJblxuLy8gc3VjaCBhIHBhdGhvbG9naWNhbCBpbmZsYXRpbmcgbWVjaGFuaXNtLCB0aGVyZSdkIGJlIG5vIHdheSB0byB0ZWxsXG4vLyB0aGUgc3lzdGVtIHRvIHN0b3AgZG9pbmcgdGhlIHRyYW5zZm9ybS4gIEEgc2luZ2xlIDRNQiB3cml0ZSBjb3VsZFxuLy8gY2F1c2UgdGhlIHN5c3RlbSB0byBydW4gb3V0IG9mIG1lbW9yeS5cbi8vXG4vLyBIb3dldmVyLCBldmVuIGluIHN1Y2ggYSBwYXRob2xvZ2ljYWwgY2FzZSwgb25seSBhIHNpbmdsZSB3cml0dGVuIGNodW5rXG4vLyB3b3VsZCBiZSBjb25zdW1lZCwgYW5kIHRoZW4gdGhlIHJlc3Qgd291bGQgd2FpdCAodW4tdHJhbnNmb3JtZWQpIHVudGlsXG4vLyB0aGUgcmVzdWx0cyBvZiB0aGUgcHJldmlvdXMgdHJhbnNmb3JtZWQgY2h1bmsgd2VyZSBjb25zdW1lZC5cblxuJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFRyYW5zZm9ybTtcblxudmFyIER1cGxleCA9IHJlcXVpcmUoJy4vX3N0cmVhbV9kdXBsZXgnKTtcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciB1dGlsID0gcmVxdWlyZSgnY29yZS11dGlsLWlzJyk7XG51dGlsLmluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG51dGlsLmluaGVyaXRzKFRyYW5zZm9ybSwgRHVwbGV4KTtcblxuZnVuY3Rpb24gYWZ0ZXJUcmFuc2Zvcm0oZXIsIGRhdGEpIHtcbiAgdmFyIHRzID0gdGhpcy5fdHJhbnNmb3JtU3RhdGU7XG4gIHRzLnRyYW5zZm9ybWluZyA9IGZhbHNlO1xuXG4gIHZhciBjYiA9IHRzLndyaXRlY2I7XG5cbiAgaWYgKCFjYikge1xuICAgIHJldHVybiB0aGlzLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKCd3cml0ZSBjYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMnKSk7XG4gIH1cblxuICB0cy53cml0ZWNodW5rID0gbnVsbDtcbiAgdHMud3JpdGVjYiA9IG51bGw7XG5cbiAgaWYgKGRhdGEgIT0gbnVsbCkgLy8gc2luZ2xlIGVxdWFscyBjaGVjayBmb3IgYm90aCBgbnVsbGAgYW5kIGB1bmRlZmluZWRgXG4gICAgdGhpcy5wdXNoKGRhdGEpO1xuXG4gIGNiKGVyKTtcblxuICB2YXIgcnMgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICBycy5yZWFkaW5nID0gZmFsc2U7XG4gIGlmIChycy5uZWVkUmVhZGFibGUgfHwgcnMubGVuZ3RoIDwgcnMuaGlnaFdhdGVyTWFyaykge1xuICAgIHRoaXMuX3JlYWQocnMuaGlnaFdhdGVyTWFyayk7XG4gIH1cbn1cblxuZnVuY3Rpb24gVHJhbnNmb3JtKG9wdGlvbnMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFRyYW5zZm9ybSkpIHJldHVybiBuZXcgVHJhbnNmb3JtKG9wdGlvbnMpO1xuXG4gIER1cGxleC5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuXG4gIHRoaXMuX3RyYW5zZm9ybVN0YXRlID0ge1xuICAgIGFmdGVyVHJhbnNmb3JtOiBhZnRlclRyYW5zZm9ybS5iaW5kKHRoaXMpLFxuICAgIG5lZWRUcmFuc2Zvcm06IGZhbHNlLFxuICAgIHRyYW5zZm9ybWluZzogZmFsc2UsXG4gICAgd3JpdGVjYjogbnVsbCxcbiAgICB3cml0ZWNodW5rOiBudWxsLFxuICAgIHdyaXRlZW5jb2Rpbmc6IG51bGxcbiAgfTtcblxuICAvLyBzdGFydCBvdXQgYXNraW5nIGZvciBhIHJlYWRhYmxlIGV2ZW50IG9uY2UgZGF0YSBpcyB0cmFuc2Zvcm1lZC5cbiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlO1xuXG4gIC8vIHdlIGhhdmUgaW1wbGVtZW50ZWQgdGhlIF9yZWFkIG1ldGhvZCwgYW5kIGRvbmUgdGhlIG90aGVyIHRoaW5nc1xuICAvLyB0aGF0IFJlYWRhYmxlIHdhbnRzIGJlZm9yZSB0aGUgZmlyc3QgX3JlYWQgY2FsbCwgc28gdW5zZXQgdGhlXG4gIC8vIHN5bmMgZ3VhcmQgZmxhZy5cbiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jID0gZmFsc2U7XG5cbiAgaWYgKG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMudHJhbnNmb3JtID09PSAnZnVuY3Rpb24nKSB0aGlzLl90cmFuc2Zvcm0gPSBvcHRpb25zLnRyYW5zZm9ybTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5mbHVzaCA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fZmx1c2ggPSBvcHRpb25zLmZsdXNoO1xuICB9XG5cbiAgLy8gV2hlbiB0aGUgd3JpdGFibGUgc2lkZSBmaW5pc2hlcywgdGhlbiBmbHVzaCBvdXQgYW55dGhpbmcgcmVtYWluaW5nLlxuICB0aGlzLm9uKCdwcmVmaW5pc2gnLCBwcmVmaW5pc2gpO1xufVxuXG5mdW5jdGlvbiBwcmVmaW5pc2goKSB7XG4gIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgaWYgKHR5cGVvZiB0aGlzLl9mbHVzaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRoaXMuX2ZsdXNoKGZ1bmN0aW9uIChlciwgZGF0YSkge1xuICAgICAgZG9uZShfdGhpcywgZXIsIGRhdGEpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGRvbmUodGhpcywgbnVsbCwgbnVsbCk7XG4gIH1cbn1cblxuVHJhbnNmb3JtLnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZykge1xuICB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtID0gZmFsc2U7XG4gIHJldHVybiBEdXBsZXgucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLCBjaHVuaywgZW5jb2RpbmcpO1xufTtcblxuLy8gVGhpcyBpcyB0aGUgcGFydCB3aGVyZSB5b3UgZG8gc3R1ZmYhXG4vLyBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGluIGltcGxlbWVudGF0aW9uIGNsYXNzZXMuXG4vLyAnY2h1bmsnIGlzIGFuIGlucHV0IGNodW5rLlxuLy9cbi8vIENhbGwgYHB1c2gobmV3Q2h1bmspYCB0byBwYXNzIGFsb25nIHRyYW5zZm9ybWVkIG91dHB1dFxuLy8gdG8gdGhlIHJlYWRhYmxlIHNpZGUuICBZb3UgbWF5IGNhbGwgJ3B1c2gnIHplcm8gb3IgbW9yZSB0aW1lcy5cbi8vXG4vLyBDYWxsIGBjYihlcnIpYCB3aGVuIHlvdSBhcmUgZG9uZSB3aXRoIHRoaXMgY2h1bmsuICBJZiB5b3UgcGFzc1xuLy8gYW4gZXJyb3IsIHRoZW4gdGhhdCdsbCBwdXQgdGhlIGh1cnQgb24gdGhlIHdob2xlIG9wZXJhdGlvbi4gIElmIHlvdVxuLy8gbmV2ZXIgY2FsbCBjYigpLCB0aGVuIHlvdSdsbCBuZXZlciBnZXQgYW5vdGhlciBjaHVuay5cblRyYW5zZm9ybS5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIHRocm93IG5ldyBFcnJvcignX3RyYW5zZm9ybSgpIGlzIG5vdCBpbXBsZW1lbnRlZCcpO1xufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS5fd3JpdGUgPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikge1xuICB2YXIgdHMgPSB0aGlzLl90cmFuc2Zvcm1TdGF0ZTtcbiAgdHMud3JpdGVjYiA9IGNiO1xuICB0cy53cml0ZWNodW5rID0gY2h1bms7XG4gIHRzLndyaXRlZW5jb2RpbmcgPSBlbmNvZGluZztcbiAgaWYgKCF0cy50cmFuc2Zvcm1pbmcpIHtcbiAgICB2YXIgcnMgPSB0aGlzLl9yZWFkYWJsZVN0YXRlO1xuICAgIGlmICh0cy5uZWVkVHJhbnNmb3JtIHx8IHJzLm5lZWRSZWFkYWJsZSB8fCBycy5sZW5ndGggPCBycy5oaWdoV2F0ZXJNYXJrKSB0aGlzLl9yZWFkKHJzLmhpZ2hXYXRlck1hcmspO1xuICB9XG59O1xuXG4vLyBEb2Vzbid0IG1hdHRlciB3aGF0IHRoZSBhcmdzIGFyZSBoZXJlLlxuLy8gX3RyYW5zZm9ybSBkb2VzIGFsbCB0aGUgd29yay5cbi8vIFRoYXQgd2UgZ290IGhlcmUgbWVhbnMgdGhhdCB0aGUgcmVhZGFibGUgc2lkZSB3YW50cyBtb3JlIGRhdGEuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLl9yZWFkID0gZnVuY3Rpb24gKG4pIHtcbiAgdmFyIHRzID0gdGhpcy5fdHJhbnNmb3JtU3RhdGU7XG5cbiAgaWYgKHRzLndyaXRlY2h1bmsgIT09IG51bGwgJiYgdHMud3JpdGVjYiAmJiAhdHMudHJhbnNmb3JtaW5nKSB7XG4gICAgdHMudHJhbnNmb3JtaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl90cmFuc2Zvcm0odHMud3JpdGVjaHVuaywgdHMud3JpdGVlbmNvZGluZywgdHMuYWZ0ZXJUcmFuc2Zvcm0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG1hcmsgdGhhdCB3ZSBuZWVkIGEgdHJhbnNmb3JtLCBzbyB0aGF0IGFueSBkYXRhIHRoYXQgY29tZXMgaW5cbiAgICAvLyB3aWxsIGdldCBwcm9jZXNzZWQsIG5vdyB0aGF0IHdlJ3ZlIGFza2VkIGZvciBpdC5cbiAgICB0cy5uZWVkVHJhbnNmb3JtID0gdHJ1ZTtcbiAgfVxufTtcblxuVHJhbnNmb3JtLnByb3RvdHlwZS5fZGVzdHJveSA9IGZ1bmN0aW9uIChlcnIsIGNiKSB7XG4gIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gIER1cGxleC5wcm90b3R5cGUuX2Rlc3Ryb3kuY2FsbCh0aGlzLCBlcnIsIGZ1bmN0aW9uIChlcnIyKSB7XG4gICAgY2IoZXJyMik7XG4gICAgX3RoaXMyLmVtaXQoJ2Nsb3NlJyk7XG4gIH0pO1xufTtcblxuZnVuY3Rpb24gZG9uZShzdHJlYW0sIGVyLCBkYXRhKSB7XG4gIGlmIChlcikgcmV0dXJuIHN0cmVhbS5lbWl0KCdlcnJvcicsIGVyKTtcblxuICBpZiAoZGF0YSAhPSBudWxsKSAvLyBzaW5nbGUgZXF1YWxzIGNoZWNrIGZvciBib3RoIGBudWxsYCBhbmQgYHVuZGVmaW5lZGBcbiAgICBzdHJlYW0ucHVzaChkYXRhKTtcblxuICAvLyBpZiB0aGVyZSdzIG5vdGhpbmcgaW4gdGhlIHdyaXRlIGJ1ZmZlciwgdGhlbiB0aGF0IG1lYW5zXG4gIC8vIHRoYXQgbm90aGluZyBtb3JlIHdpbGwgZXZlciBiZSBwcm92aWRlZFxuICBpZiAoc3RyZWFtLl93cml0YWJsZVN0YXRlLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdDYWxsaW5nIHRyYW5zZm9ybSBkb25lIHdoZW4gd3MubGVuZ3RoICE9IDAnKTtcblxuICBpZiAoc3RyZWFtLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpIHRocm93IG5ldyBFcnJvcignQ2FsbGluZyB0cmFuc2Zvcm0gZG9uZSB3aGVuIHN0aWxsIHRyYW5zZm9ybWluZycpO1xuXG4gIHJldHVybiBzdHJlYW0ucHVzaChudWxsKTtcbn0iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuLy8gQSBiaXQgc2ltcGxlciB0aGFuIHJlYWRhYmxlIHN0cmVhbXMuXG4vLyBJbXBsZW1lbnQgYW4gYXN5bmMgLl93cml0ZShjaHVuaywgZW5jb2RpbmcsIGNiKSwgYW5kIGl0J2xsIGhhbmRsZSBhbGxcbi8vIHRoZSBkcmFpbiBldmVudCBlbWlzc2lvbiBhbmQgYnVmZmVyaW5nLlxuXG4ndXNlIHN0cmljdCc7XG5cbi8qPHJlcGxhY2VtZW50PiovXG5cbnZhciBwbmEgPSByZXF1aXJlKCdwcm9jZXNzLW5leHRpY2stYXJncycpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbm1vZHVsZS5leHBvcnRzID0gV3JpdGFibGU7XG5cbi8qIDxyZXBsYWNlbWVudD4gKi9cbmZ1bmN0aW9uIFdyaXRlUmVxKGNodW5rLCBlbmNvZGluZywgY2IpIHtcbiAgdGhpcy5jaHVuayA9IGNodW5rO1xuICB0aGlzLmVuY29kaW5nID0gZW5jb2Rpbmc7XG4gIHRoaXMuY2FsbGJhY2sgPSBjYjtcbiAgdGhpcy5uZXh0ID0gbnVsbDtcbn1cblxuLy8gSXQgc2VlbXMgYSBsaW5rZWQgbGlzdCBidXQgaXQgaXMgbm90XG4vLyB0aGVyZSB3aWxsIGJlIG9ubHkgMiBvZiB0aGVzZSBmb3IgZWFjaCBzdHJlYW1cbmZ1bmN0aW9uIENvcmtlZFJlcXVlc3Qoc3RhdGUpIHtcbiAgdmFyIF90aGlzID0gdGhpcztcblxuICB0aGlzLm5leHQgPSBudWxsO1xuICB0aGlzLmVudHJ5ID0gbnVsbDtcbiAgdGhpcy5maW5pc2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgb25Db3JrZWRGaW5pc2goX3RoaXMsIHN0YXRlKTtcbiAgfTtcbn1cbi8qIDwvcmVwbGFjZW1lbnQ+ICovXG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgYXN5bmNXcml0ZSA9ICFwcm9jZXNzLmJyb3dzZXIgJiYgWyd2MC4xMCcsICd2MC45LiddLmluZGV4T2YocHJvY2Vzcy52ZXJzaW9uLnNsaWNlKDAsIDUpKSA+IC0xID8gc2V0SW1tZWRpYXRlIDogcG5hLm5leHRUaWNrO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgRHVwbGV4O1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbldyaXRhYmxlLldyaXRhYmxlU3RhdGUgPSBXcml0YWJsZVN0YXRlO1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIHV0aWwgPSByZXF1aXJlKCdjb3JlLXV0aWwtaXMnKTtcbnV0aWwuaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgaW50ZXJuYWxVdGlsID0ge1xuICBkZXByZWNhdGU6IHJlcXVpcmUoJ3V0aWwtZGVwcmVjYXRlJylcbn07XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBTdHJlYW0gPSByZXF1aXJlKCcuL2ludGVybmFsL3N0cmVhbXMvc3RyZWFtJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cblxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyO1xudmFyIE91clVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheSB8fCBmdW5jdGlvbiAoKSB7fTtcbmZ1bmN0aW9uIF91aW50OEFycmF5VG9CdWZmZXIoY2h1bmspIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNodW5rKTtcbn1cbmZ1bmN0aW9uIF9pc1VpbnQ4QXJyYXkob2JqKSB7XG4gIHJldHVybiBCdWZmZXIuaXNCdWZmZXIob2JqKSB8fCBvYmogaW5zdGFuY2VvZiBPdXJVaW50OEFycmF5O1xufVxuXG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxudmFyIGRlc3Ryb3lJbXBsID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9zdHJlYW1zL2Rlc3Ryb3knKTtcblxudXRpbC5pbmhlcml0cyhXcml0YWJsZSwgU3RyZWFtKTtcblxuZnVuY3Rpb24gbm9wKCkge31cblxuZnVuY3Rpb24gV3JpdGFibGVTdGF0ZShvcHRpb25zLCBzdHJlYW0pIHtcbiAgRHVwbGV4ID0gRHVwbGV4IHx8IHJlcXVpcmUoJy4vX3N0cmVhbV9kdXBsZXgnKTtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAvLyBEdXBsZXggc3RyZWFtcyBhcmUgYm90aCByZWFkYWJsZSBhbmQgd3JpdGFibGUsIGJ1dCBzaGFyZVxuICAvLyB0aGUgc2FtZSBvcHRpb25zIG9iamVjdC5cbiAgLy8gSG93ZXZlciwgc29tZSBjYXNlcyByZXF1aXJlIHNldHRpbmcgb3B0aW9ucyB0byBkaWZmZXJlbnRcbiAgLy8gdmFsdWVzIGZvciB0aGUgcmVhZGFibGUgYW5kIHRoZSB3cml0YWJsZSBzaWRlcyBvZiB0aGUgZHVwbGV4IHN0cmVhbS5cbiAgLy8gVGhlc2Ugb3B0aW9ucyBjYW4gYmUgcHJvdmlkZWQgc2VwYXJhdGVseSBhcyByZWFkYWJsZVhYWCBhbmQgd3JpdGFibGVYWFguXG4gIHZhciBpc0R1cGxleCA9IHN0cmVhbSBpbnN0YW5jZW9mIER1cGxleDtcblxuICAvLyBvYmplY3Qgc3RyZWFtIGZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciBvciBub3QgdGhpcyBzdHJlYW1cbiAgLy8gY29udGFpbnMgYnVmZmVycyBvciBvYmplY3RzLlxuICB0aGlzLm9iamVjdE1vZGUgPSAhIW9wdGlvbnMub2JqZWN0TW9kZTtcblxuICBpZiAoaXNEdXBsZXgpIHRoaXMub2JqZWN0TW9kZSA9IHRoaXMub2JqZWN0TW9kZSB8fCAhIW9wdGlvbnMud3JpdGFibGVPYmplY3RNb2RlO1xuXG4gIC8vIHRoZSBwb2ludCBhdCB3aGljaCB3cml0ZSgpIHN0YXJ0cyByZXR1cm5pbmcgZmFsc2VcbiAgLy8gTm90ZTogMCBpcyBhIHZhbGlkIHZhbHVlLCBtZWFucyB0aGF0IHdlIGFsd2F5cyByZXR1cm4gZmFsc2UgaWZcbiAgLy8gdGhlIGVudGlyZSBidWZmZXIgaXMgbm90IGZsdXNoZWQgaW1tZWRpYXRlbHkgb24gd3JpdGUoKVxuICB2YXIgaHdtID0gb3B0aW9ucy5oaWdoV2F0ZXJNYXJrO1xuICB2YXIgd3JpdGFibGVId20gPSBvcHRpb25zLndyaXRhYmxlSGlnaFdhdGVyTWFyaztcbiAgdmFyIGRlZmF1bHRId20gPSB0aGlzLm9iamVjdE1vZGUgPyAxNiA6IDE2ICogMTAyNDtcblxuICBpZiAoaHdtIHx8IGh3bSA9PT0gMCkgdGhpcy5oaWdoV2F0ZXJNYXJrID0gaHdtO2Vsc2UgaWYgKGlzRHVwbGV4ICYmICh3cml0YWJsZUh3bSB8fCB3cml0YWJsZUh3bSA9PT0gMCkpIHRoaXMuaGlnaFdhdGVyTWFyayA9IHdyaXRhYmxlSHdtO2Vsc2UgdGhpcy5oaWdoV2F0ZXJNYXJrID0gZGVmYXVsdEh3bTtcblxuICAvLyBjYXN0IHRvIGludHMuXG4gIHRoaXMuaGlnaFdhdGVyTWFyayA9IE1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKTtcblxuICAvLyBpZiBfZmluYWwgaGFzIGJlZW4gY2FsbGVkXG4gIHRoaXMuZmluYWxDYWxsZWQgPSBmYWxzZTtcblxuICAvLyBkcmFpbiBldmVudCBmbGFnLlxuICB0aGlzLm5lZWREcmFpbiA9IGZhbHNlO1xuICAvLyBhdCB0aGUgc3RhcnQgb2YgY2FsbGluZyBlbmQoKVxuICB0aGlzLmVuZGluZyA9IGZhbHNlO1xuICAvLyB3aGVuIGVuZCgpIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHJldHVybmVkXG4gIHRoaXMuZW5kZWQgPSBmYWxzZTtcbiAgLy8gd2hlbiAnZmluaXNoJyBpcyBlbWl0dGVkXG4gIHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcblxuICAvLyBoYXMgaXQgYmVlbiBkZXN0cm95ZWRcbiAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAvLyBzaG91bGQgd2UgZGVjb2RlIHN0cmluZ3MgaW50byBidWZmZXJzIGJlZm9yZSBwYXNzaW5nIHRvIF93cml0ZT9cbiAgLy8gdGhpcyBpcyBoZXJlIHNvIHRoYXQgc29tZSBub2RlLWNvcmUgc3RyZWFtcyBjYW4gb3B0aW1pemUgc3RyaW5nXG4gIC8vIGhhbmRsaW5nIGF0IGEgbG93ZXIgbGV2ZWwuXG4gIHZhciBub0RlY29kZSA9IG9wdGlvbnMuZGVjb2RlU3RyaW5ncyA9PT0gZmFsc2U7XG4gIHRoaXMuZGVjb2RlU3RyaW5ncyA9ICFub0RlY29kZTtcblxuICAvLyBDcnlwdG8gaXMga2luZCBvZiBvbGQgYW5kIGNydXN0eS4gIEhpc3RvcmljYWxseSwgaXRzIGRlZmF1bHQgc3RyaW5nXG4gIC8vIGVuY29kaW5nIGlzICdiaW5hcnknIHNvIHdlIGhhdmUgdG8gbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZS5cbiAgLy8gRXZlcnl0aGluZyBlbHNlIGluIHRoZSB1bml2ZXJzZSB1c2VzICd1dGY4JywgdGhvdWdoLlxuICB0aGlzLmRlZmF1bHRFbmNvZGluZyA9IG9wdGlvbnMuZGVmYXVsdEVuY29kaW5nIHx8ICd1dGY4JztcblxuICAvLyBub3QgYW4gYWN0dWFsIGJ1ZmZlciB3ZSBrZWVwIHRyYWNrIG9mLCBidXQgYSBtZWFzdXJlbWVudFxuICAvLyBvZiBob3cgbXVjaCB3ZSdyZSB3YWl0aW5nIHRvIGdldCBwdXNoZWQgdG8gc29tZSB1bmRlcmx5aW5nXG4gIC8vIHNvY2tldCBvciBmaWxlLlxuICB0aGlzLmxlbmd0aCA9IDA7XG5cbiAgLy8gYSBmbGFnIHRvIHNlZSB3aGVuIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYSB3cml0ZS5cbiAgdGhpcy53cml0aW5nID0gZmFsc2U7XG5cbiAgLy8gd2hlbiB0cnVlIGFsbCB3cml0ZXMgd2lsbCBiZSBidWZmZXJlZCB1bnRpbCAudW5jb3JrKCkgY2FsbFxuICB0aGlzLmNvcmtlZCA9IDA7XG5cbiAgLy8gYSBmbGFnIHRvIGJlIGFibGUgdG8gdGVsbCBpZiB0aGUgb253cml0ZSBjYiBpcyBjYWxsZWQgaW1tZWRpYXRlbHksXG4gIC8vIG9yIG9uIGEgbGF0ZXIgdGljay4gIFdlIHNldCB0aGlzIHRvIHRydWUgYXQgZmlyc3QsIGJlY2F1c2UgYW55XG4gIC8vIGFjdGlvbnMgdGhhdCBzaG91bGRuJ3QgaGFwcGVuIHVudGlsIFwibGF0ZXJcIiBzaG91bGQgZ2VuZXJhbGx5IGFsc29cbiAgLy8gbm90IGhhcHBlbiBiZWZvcmUgdGhlIGZpcnN0IHdyaXRlIGNhbGwuXG4gIHRoaXMuc3luYyA9IHRydWU7XG5cbiAgLy8gYSBmbGFnIHRvIGtub3cgaWYgd2UncmUgcHJvY2Vzc2luZyBwcmV2aW91c2x5IGJ1ZmZlcmVkIGl0ZW1zLCB3aGljaFxuICAvLyBtYXkgY2FsbCB0aGUgX3dyaXRlKCkgY2FsbGJhY2sgaW4gdGhlIHNhbWUgdGljaywgc28gdGhhdCB3ZSBkb24ndFxuICAvLyBlbmQgdXAgaW4gYW4gb3ZlcmxhcHBlZCBvbndyaXRlIHNpdHVhdGlvbi5cbiAgdGhpcy5idWZmZXJQcm9jZXNzaW5nID0gZmFsc2U7XG5cbiAgLy8gdGhlIGNhbGxiYWNrIHRoYXQncyBwYXNzZWQgdG8gX3dyaXRlKGNodW5rLGNiKVxuICB0aGlzLm9ud3JpdGUgPSBmdW5jdGlvbiAoZXIpIHtcbiAgICBvbndyaXRlKHN0cmVhbSwgZXIpO1xuICB9O1xuXG4gIC8vIHRoZSBjYWxsYmFjayB0aGF0IHRoZSB1c2VyIHN1cHBsaWVzIHRvIHdyaXRlKGNodW5rLGVuY29kaW5nLGNiKVxuICB0aGlzLndyaXRlY2IgPSBudWxsO1xuXG4gIC8vIHRoZSBhbW91bnQgdGhhdCBpcyBiZWluZyB3cml0dGVuIHdoZW4gX3dyaXRlIGlzIGNhbGxlZC5cbiAgdGhpcy53cml0ZWxlbiA9IDA7XG5cbiAgdGhpcy5idWZmZXJlZFJlcXVlc3QgPSBudWxsO1xuICB0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3QgPSBudWxsO1xuXG4gIC8vIG51bWJlciBvZiBwZW5kaW5nIHVzZXItc3VwcGxpZWQgd3JpdGUgY2FsbGJhY2tzXG4gIC8vIHRoaXMgbXVzdCBiZSAwIGJlZm9yZSAnZmluaXNoJyBjYW4gYmUgZW1pdHRlZFxuICB0aGlzLnBlbmRpbmdjYiA9IDA7XG5cbiAgLy8gZW1pdCBwcmVmaW5pc2ggaWYgdGhlIG9ubHkgdGhpbmcgd2UncmUgd2FpdGluZyBmb3IgaXMgX3dyaXRlIGNic1xuICAvLyBUaGlzIGlzIHJlbGV2YW50IGZvciBzeW5jaHJvbm91cyBUcmFuc2Zvcm0gc3RyZWFtc1xuICB0aGlzLnByZWZpbmlzaGVkID0gZmFsc2U7XG5cbiAgLy8gVHJ1ZSBpZiB0aGUgZXJyb3Igd2FzIGFscmVhZHkgZW1pdHRlZCBhbmQgc2hvdWxkIG5vdCBiZSB0aHJvd24gYWdhaW5cbiAgdGhpcy5lcnJvckVtaXR0ZWQgPSBmYWxzZTtcblxuICAvLyBjb3VudCBidWZmZXJlZCByZXF1ZXN0c1xuICB0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50ID0gMDtcblxuICAvLyBhbGxvY2F0ZSB0aGUgZmlyc3QgQ29ya2VkUmVxdWVzdCwgdGhlcmUgaXMgYWx3YXlzXG4gIC8vIG9uZSBhbGxvY2F0ZWQgYW5kIGZyZWUgdG8gdXNlLCBhbmQgd2UgbWFpbnRhaW4gYXQgbW9zdCB0d29cbiAgdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWUgPSBuZXcgQ29ya2VkUmVxdWVzdCh0aGlzKTtcbn1cblxuV3JpdGFibGVTdGF0ZS5wcm90b3R5cGUuZ2V0QnVmZmVyID0gZnVuY3Rpb24gZ2V0QnVmZmVyKCkge1xuICB2YXIgY3VycmVudCA9IHRoaXMuYnVmZmVyZWRSZXF1ZXN0O1xuICB2YXIgb3V0ID0gW107XG4gIHdoaWxlIChjdXJyZW50KSB7XG4gICAgb3V0LnB1c2goY3VycmVudCk7XG4gICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDtcbiAgfVxuICByZXR1cm4gb3V0O1xufTtcblxuKGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGVTdGF0ZS5wcm90b3R5cGUsICdidWZmZXInLCB7XG4gICAgICBnZXQ6IGludGVybmFsVXRpbC5kZXByZWNhdGUoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCdWZmZXIoKTtcbiAgICAgIH0sICdfd3JpdGFibGVTdGF0ZS5idWZmZXIgaXMgZGVwcmVjYXRlZC4gVXNlIF93cml0YWJsZVN0YXRlLmdldEJ1ZmZlciAnICsgJ2luc3RlYWQuJywgJ0RFUDAwMDMnKVxuICAgIH0pO1xuICB9IGNhdGNoIChfKSB7fVxufSkoKTtcblxuLy8gVGVzdCBfd3JpdGFibGVTdGF0ZSBmb3IgaW5oZXJpdGFuY2UgdG8gYWNjb3VudCBmb3IgRHVwbGV4IHN0cmVhbXMsXG4vLyB3aG9zZSBwcm90b3R5cGUgY2hhaW4gb25seSBwb2ludHMgdG8gUmVhZGFibGUuXG52YXIgcmVhbEhhc0luc3RhbmNlO1xuaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmhhc0luc3RhbmNlICYmIHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSA9PT0gJ2Z1bmN0aW9uJykge1xuICByZWFsSGFzSW5zdGFuY2UgPSBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLCBTeW1ib2wuaGFzSW5zdGFuY2UsIHtcbiAgICB2YWx1ZTogZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgaWYgKHJlYWxIYXNJbnN0YW5jZS5jYWxsKHRoaXMsIG9iamVjdCkpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKHRoaXMgIT09IFdyaXRhYmxlKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHJldHVybiBvYmplY3QgJiYgb2JqZWN0Ll93cml0YWJsZVN0YXRlIGluc3RhbmNlb2YgV3JpdGFibGVTdGF0ZTtcbiAgICB9XG4gIH0pO1xufSBlbHNlIHtcbiAgcmVhbEhhc0luc3RhbmNlID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgIHJldHVybiBvYmplY3QgaW5zdGFuY2VvZiB0aGlzO1xuICB9O1xufVxuXG5mdW5jdGlvbiBXcml0YWJsZShvcHRpb25zKSB7XG4gIER1cGxleCA9IER1cGxleCB8fCByZXF1aXJlKCcuL19zdHJlYW1fZHVwbGV4Jyk7XG5cbiAgLy8gV3JpdGFibGUgY3RvciBpcyBhcHBsaWVkIHRvIER1cGxleGVzLCB0b28uXG4gIC8vIGByZWFsSGFzSW5zdGFuY2VgIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHVzaW5nIHBsYWluIGBpbnN0YW5jZW9mYFxuICAvLyB3b3VsZCByZXR1cm4gZmFsc2UsIGFzIG5vIGBfd3JpdGFibGVTdGF0ZWAgcHJvcGVydHkgaXMgYXR0YWNoZWQuXG5cbiAgLy8gVHJ5aW5nIHRvIHVzZSB0aGUgY3VzdG9tIGBpbnN0YW5jZW9mYCBmb3IgV3JpdGFibGUgaGVyZSB3aWxsIGFsc28gYnJlYWsgdGhlXG4gIC8vIE5vZGUuanMgTGF6eVRyYW5zZm9ybSBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaGFzIGEgbm9uLXRyaXZpYWwgZ2V0dGVyIGZvclxuICAvLyBgX3dyaXRhYmxlU3RhdGVgIHRoYXQgd291bGQgbGVhZCB0byBpbmZpbml0ZSByZWN1cnNpb24uXG4gIGlmICghcmVhbEhhc0luc3RhbmNlLmNhbGwoV3JpdGFibGUsIHRoaXMpICYmICEodGhpcyBpbnN0YW5jZW9mIER1cGxleCkpIHtcbiAgICByZXR1cm4gbmV3IFdyaXRhYmxlKG9wdGlvbnMpO1xuICB9XG5cbiAgdGhpcy5fd3JpdGFibGVTdGF0ZSA9IG5ldyBXcml0YWJsZVN0YXRlKG9wdGlvbnMsIHRoaXMpO1xuXG4gIC8vIGxlZ2FjeS5cbiAgdGhpcy53cml0YWJsZSA9IHRydWU7XG5cbiAgaWYgKG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMud3JpdGUgPT09ICdmdW5jdGlvbicpIHRoaXMuX3dyaXRlID0gb3B0aW9ucy53cml0ZTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy53cml0ZXYgPT09ICdmdW5jdGlvbicpIHRoaXMuX3dyaXRldiA9IG9wdGlvbnMud3JpdGV2O1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLmRlc3Ryb3kgPT09ICdmdW5jdGlvbicpIHRoaXMuX2Rlc3Ryb3kgPSBvcHRpb25zLmRlc3Ryb3k7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuZmluYWwgPT09ICdmdW5jdGlvbicpIHRoaXMuX2ZpbmFsID0gb3B0aW9ucy5maW5hbDtcbiAgfVxuXG4gIFN0cmVhbS5jYWxsKHRoaXMpO1xufVxuXG4vLyBPdGhlcndpc2UgcGVvcGxlIGNhbiBwaXBlIFdyaXRhYmxlIHN0cmVhbXMsIHdoaWNoIGlzIGp1c3Qgd3JvbmcuXG5Xcml0YWJsZS5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcignQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZScpKTtcbn07XG5cbmZ1bmN0aW9uIHdyaXRlQWZ0ZXJFbmQoc3RyZWFtLCBjYikge1xuICB2YXIgZXIgPSBuZXcgRXJyb3IoJ3dyaXRlIGFmdGVyIGVuZCcpO1xuICAvLyBUT0RPOiBkZWZlciBlcnJvciBldmVudHMgY29uc2lzdGVudGx5IGV2ZXJ5d2hlcmUsIG5vdCBqdXN0IHRoZSBjYlxuICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcik7XG4gIHBuYS5uZXh0VGljayhjYiwgZXIpO1xufVxuXG4vLyBDaGVja3MgdGhhdCBhIHVzZXItc3VwcGxpZWQgY2h1bmsgaXMgdmFsaWQsIGVzcGVjaWFsbHkgZm9yIHRoZSBwYXJ0aWN1bGFyXG4vLyBtb2RlIHRoZSBzdHJlYW0gaXMgaW4uIEN1cnJlbnRseSB0aGlzIG1lYW5zIHRoYXQgYG51bGxgIGlzIG5ldmVyIGFjY2VwdGVkXG4vLyBhbmQgdW5kZWZpbmVkL25vbi1zdHJpbmcgdmFsdWVzIGFyZSBvbmx5IGFsbG93ZWQgaW4gb2JqZWN0IG1vZGUuXG5mdW5jdGlvbiB2YWxpZENodW5rKHN0cmVhbSwgc3RhdGUsIGNodW5rLCBjYikge1xuICB2YXIgdmFsaWQgPSB0cnVlO1xuICB2YXIgZXIgPSBmYWxzZTtcblxuICBpZiAoY2h1bmsgPT09IG51bGwpIHtcbiAgICBlciA9IG5ldyBUeXBlRXJyb3IoJ01heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtJyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGNodW5rICE9PSAnc3RyaW5nJyAmJiBjaHVuayAhPT0gdW5kZWZpbmVkICYmICFzdGF0ZS5vYmplY3RNb2RlKSB7XG4gICAgZXIgPSBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG5vbi1zdHJpbmcvYnVmZmVyIGNodW5rJyk7XG4gIH1cbiAgaWYgKGVyKSB7XG4gICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXIpO1xuICAgIHBuYS5uZXh0VGljayhjYiwgZXIpO1xuICAgIHZhbGlkID0gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbGlkO1xufVxuXG5Xcml0YWJsZS5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikge1xuICB2YXIgc3RhdGUgPSB0aGlzLl93cml0YWJsZVN0YXRlO1xuICB2YXIgcmV0ID0gZmFsc2U7XG4gIHZhciBpc0J1ZiA9ICFzdGF0ZS5vYmplY3RNb2RlICYmIF9pc1VpbnQ4QXJyYXkoY2h1bmspO1xuXG4gIGlmIChpc0J1ZiAmJiAhQnVmZmVyLmlzQnVmZmVyKGNodW5rKSkge1xuICAgIGNodW5rID0gX3VpbnQ4QXJyYXlUb0J1ZmZlcihjaHVuayk7XG4gIH1cblxuICBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2IgPSBlbmNvZGluZztcbiAgICBlbmNvZGluZyA9IG51bGw7XG4gIH1cblxuICBpZiAoaXNCdWYpIGVuY29kaW5nID0gJ2J1ZmZlcic7ZWxzZSBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9IHN0YXRlLmRlZmF1bHRFbmNvZGluZztcblxuICBpZiAodHlwZW9mIGNiICE9PSAnZnVuY3Rpb24nKSBjYiA9IG5vcDtcblxuICBpZiAoc3RhdGUuZW5kZWQpIHdyaXRlQWZ0ZXJFbmQodGhpcywgY2IpO2Vsc2UgaWYgKGlzQnVmIHx8IHZhbGlkQ2h1bmsodGhpcywgc3RhdGUsIGNodW5rLCBjYikpIHtcbiAgICBzdGF0ZS5wZW5kaW5nY2IrKztcbiAgICByZXQgPSB3cml0ZU9yQnVmZmVyKHRoaXMsIHN0YXRlLCBpc0J1ZiwgY2h1bmssIGVuY29kaW5nLCBjYik7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcblxuV3JpdGFibGUucHJvdG90eXBlLmNvcmsgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3dyaXRhYmxlU3RhdGU7XG5cbiAgc3RhdGUuY29ya2VkKys7XG59O1xuXG5Xcml0YWJsZS5wcm90b3R5cGUudW5jb3JrID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl93cml0YWJsZVN0YXRlO1xuXG4gIGlmIChzdGF0ZS5jb3JrZWQpIHtcbiAgICBzdGF0ZS5jb3JrZWQtLTtcblxuICAgIGlmICghc3RhdGUud3JpdGluZyAmJiAhc3RhdGUuY29ya2VkICYmICFzdGF0ZS5maW5pc2hlZCAmJiAhc3RhdGUuYnVmZmVyUHJvY2Vzc2luZyAmJiBzdGF0ZS5idWZmZXJlZFJlcXVlc3QpIGNsZWFyQnVmZmVyKHRoaXMsIHN0YXRlKTtcbiAgfVxufTtcblxuV3JpdGFibGUucHJvdG90eXBlLnNldERlZmF1bHRFbmNvZGluZyA9IGZ1bmN0aW9uIHNldERlZmF1bHRFbmNvZGluZyhlbmNvZGluZykge1xuICAvLyBub2RlOjpQYXJzZUVuY29kaW5nKCkgcmVxdWlyZXMgbG93ZXIgY2FzZS5cbiAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZycpIGVuY29kaW5nID0gZW5jb2RpbmcudG9Mb3dlckNhc2UoKTtcbiAgaWYgKCEoWydoZXgnLCAndXRmOCcsICd1dGYtOCcsICdhc2NpaScsICdiaW5hcnknLCAnYmFzZTY0JywgJ3VjczInLCAndWNzLTInLCAndXRmMTZsZScsICd1dGYtMTZsZScsICdyYXcnXS5pbmRleE9mKChlbmNvZGluZyArICcnKS50b0xvd2VyQ2FzZSgpKSA+IC0xKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKTtcbiAgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2RpbmcgPSBlbmNvZGluZztcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiBkZWNvZGVDaHVuayhzdGF0ZSwgY2h1bmssIGVuY29kaW5nKSB7XG4gIGlmICghc3RhdGUub2JqZWN0TW9kZSAmJiBzdGF0ZS5kZWNvZGVTdHJpbmdzICE9PSBmYWxzZSAmJiB0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7XG4gICAgY2h1bmsgPSBCdWZmZXIuZnJvbShjaHVuaywgZW5jb2RpbmcpO1xuICB9XG4gIHJldHVybiBjaHVuaztcbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSwgJ3dyaXRhYmxlSGlnaFdhdGVyTWFyaycsIHtcbiAgLy8gbWFraW5nIGl0IGV4cGxpY2l0IHRoaXMgcHJvcGVydHkgaXMgbm90IGVudW1lcmFibGVcbiAgLy8gYmVjYXVzZSBvdGhlcndpc2Ugc29tZSBwcm90b3R5cGUgbWFuaXB1bGF0aW9uIGluXG4gIC8vIHVzZXJsYW5kIHdpbGwgZmFpbFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFyaztcbiAgfVxufSk7XG5cbi8vIGlmIHdlJ3JlIGFscmVhZHkgd3JpdGluZyBzb21ldGhpbmcsIHRoZW4ganVzdCBwdXQgdGhpc1xuLy8gaW4gdGhlIHF1ZXVlLCBhbmQgd2FpdCBvdXIgdHVybi4gIE90aGVyd2lzZSwgY2FsbCBfd3JpdGVcbi8vIElmIHdlIHJldHVybiBmYWxzZSwgdGhlbiB3ZSBuZWVkIGEgZHJhaW4gZXZlbnQsIHNvIHNldCB0aGF0IGZsYWcuXG5mdW5jdGlvbiB3cml0ZU9yQnVmZmVyKHN0cmVhbSwgc3RhdGUsIGlzQnVmLCBjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIGlmICghaXNCdWYpIHtcbiAgICB2YXIgbmV3Q2h1bmsgPSBkZWNvZGVDaHVuayhzdGF0ZSwgY2h1bmssIGVuY29kaW5nKTtcbiAgICBpZiAoY2h1bmsgIT09IG5ld0NodW5rKSB7XG4gICAgICBpc0J1ZiA9IHRydWU7XG4gICAgICBlbmNvZGluZyA9ICdidWZmZXInO1xuICAgICAgY2h1bmsgPSBuZXdDaHVuaztcbiAgICB9XG4gIH1cbiAgdmFyIGxlbiA9IHN0YXRlLm9iamVjdE1vZGUgPyAxIDogY2h1bmsubGVuZ3RoO1xuXG4gIHN0YXRlLmxlbmd0aCArPSBsZW47XG5cbiAgdmFyIHJldCA9IHN0YXRlLmxlbmd0aCA8IHN0YXRlLmhpZ2hXYXRlck1hcms7XG4gIC8vIHdlIG11c3QgZW5zdXJlIHRoYXQgcHJldmlvdXMgbmVlZERyYWluIHdpbGwgbm90IGJlIHJlc2V0IHRvIGZhbHNlLlxuICBpZiAoIXJldCkgc3RhdGUubmVlZERyYWluID0gdHJ1ZTtcblxuICBpZiAoc3RhdGUud3JpdGluZyB8fCBzdGF0ZS5jb3JrZWQpIHtcbiAgICB2YXIgbGFzdCA9IHN0YXRlLmxhc3RCdWZmZXJlZFJlcXVlc3Q7XG4gICAgc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdCA9IHtcbiAgICAgIGNodW5rOiBjaHVuayxcbiAgICAgIGVuY29kaW5nOiBlbmNvZGluZyxcbiAgICAgIGlzQnVmOiBpc0J1ZixcbiAgICAgIGNhbGxiYWNrOiBjYixcbiAgICAgIG5leHQ6IG51bGxcbiAgICB9O1xuICAgIGlmIChsYXN0KSB7XG4gICAgICBsYXN0Lm5leHQgPSBzdGF0ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZS5idWZmZXJlZFJlcXVlc3QgPSBzdGF0ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0O1xuICAgIH1cbiAgICBzdGF0ZS5idWZmZXJlZFJlcXVlc3RDb3VudCArPSAxO1xuICB9IGVsc2Uge1xuICAgIGRvV3JpdGUoc3RyZWFtLCBzdGF0ZSwgZmFsc2UsIGxlbiwgY2h1bmssIGVuY29kaW5nLCBjYik7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBkb1dyaXRlKHN0cmVhbSwgc3RhdGUsIHdyaXRldiwgbGVuLCBjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIHN0YXRlLndyaXRlbGVuID0gbGVuO1xuICBzdGF0ZS53cml0ZWNiID0gY2I7XG4gIHN0YXRlLndyaXRpbmcgPSB0cnVlO1xuICBzdGF0ZS5zeW5jID0gdHJ1ZTtcbiAgaWYgKHdyaXRldikgc3RyZWFtLl93cml0ZXYoY2h1bmssIHN0YXRlLm9ud3JpdGUpO2Vsc2Ugc3RyZWFtLl93cml0ZShjaHVuaywgZW5jb2RpbmcsIHN0YXRlLm9ud3JpdGUpO1xuICBzdGF0ZS5zeW5jID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIG9ud3JpdGVFcnJvcihzdHJlYW0sIHN0YXRlLCBzeW5jLCBlciwgY2IpIHtcbiAgLS1zdGF0ZS5wZW5kaW5nY2I7XG5cbiAgaWYgKHN5bmMpIHtcbiAgICAvLyBkZWZlciB0aGUgY2FsbGJhY2sgaWYgd2UgYXJlIGJlaW5nIGNhbGxlZCBzeW5jaHJvbm91c2x5XG4gICAgLy8gdG8gYXZvaWQgcGlsaW5nIHVwIHRoaW5ncyBvbiB0aGUgc3RhY2tcbiAgICBwbmEubmV4dFRpY2soY2IsIGVyKTtcbiAgICAvLyB0aGlzIGNhbiBlbWl0IGZpbmlzaCwgYW5kIGl0IHdpbGwgYWx3YXlzIGhhcHBlblxuICAgIC8vIGFmdGVyIGVycm9yXG4gICAgcG5hLm5leHRUaWNrKGZpbmlzaE1heWJlLCBzdHJlYW0sIHN0YXRlKTtcbiAgICBzdHJlYW0uX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkID0gdHJ1ZTtcbiAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcik7XG4gIH0gZWxzZSB7XG4gICAgLy8gdGhlIGNhbGxlciBleHBlY3QgdGhpcyB0byBoYXBwZW4gYmVmb3JlIGlmXG4gICAgLy8gaXQgaXMgYXN5bmNcbiAgICBjYihlcik7XG4gICAgc3RyZWFtLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCA9IHRydWU7XG4gICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXIpO1xuICAgIC8vIHRoaXMgY2FuIGVtaXQgZmluaXNoLCBidXQgZmluaXNoIG11c3RcbiAgICAvLyBhbHdheXMgZm9sbG93IGVycm9yXG4gICAgZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gb253cml0ZVN0YXRlVXBkYXRlKHN0YXRlKSB7XG4gIHN0YXRlLndyaXRpbmcgPSBmYWxzZTtcbiAgc3RhdGUud3JpdGVjYiA9IG51bGw7XG4gIHN0YXRlLmxlbmd0aCAtPSBzdGF0ZS53cml0ZWxlbjtcbiAgc3RhdGUud3JpdGVsZW4gPSAwO1xufVxuXG5mdW5jdGlvbiBvbndyaXRlKHN0cmVhbSwgZXIpIHtcbiAgdmFyIHN0YXRlID0gc3RyZWFtLl93cml0YWJsZVN0YXRlO1xuICB2YXIgc3luYyA9IHN0YXRlLnN5bmM7XG4gIHZhciBjYiA9IHN0YXRlLndyaXRlY2I7XG5cbiAgb253cml0ZVN0YXRlVXBkYXRlKHN0YXRlKTtcblxuICBpZiAoZXIpIG9ud3JpdGVFcnJvcihzdHJlYW0sIHN0YXRlLCBzeW5jLCBlciwgY2IpO2Vsc2Uge1xuICAgIC8vIENoZWNrIGlmIHdlJ3JlIGFjdHVhbGx5IHJlYWR5IHRvIGZpbmlzaCwgYnV0IGRvbid0IGVtaXQgeWV0XG4gICAgdmFyIGZpbmlzaGVkID0gbmVlZEZpbmlzaChzdGF0ZSk7XG5cbiAgICBpZiAoIWZpbmlzaGVkICYmICFzdGF0ZS5jb3JrZWQgJiYgIXN0YXRlLmJ1ZmZlclByb2Nlc3NpbmcgJiYgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0KSB7XG4gICAgICBjbGVhckJ1ZmZlcihzdHJlYW0sIHN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAoc3luYykge1xuICAgICAgLyo8cmVwbGFjZW1lbnQ+Ki9cbiAgICAgIGFzeW5jV3JpdGUoYWZ0ZXJXcml0ZSwgc3RyZWFtLCBzdGF0ZSwgZmluaXNoZWQsIGNiKTtcbiAgICAgIC8qPC9yZXBsYWNlbWVudD4qL1xuICAgIH0gZWxzZSB7XG4gICAgICBhZnRlcldyaXRlKHN0cmVhbSwgc3RhdGUsIGZpbmlzaGVkLCBjYik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFmdGVyV3JpdGUoc3RyZWFtLCBzdGF0ZSwgZmluaXNoZWQsIGNiKSB7XG4gIGlmICghZmluaXNoZWQpIG9ud3JpdGVEcmFpbihzdHJlYW0sIHN0YXRlKTtcbiAgc3RhdGUucGVuZGluZ2NiLS07XG4gIGNiKCk7XG4gIGZpbmlzaE1heWJlKHN0cmVhbSwgc3RhdGUpO1xufVxuXG4vLyBNdXN0IGZvcmNlIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCBvbiBuZXh0VGljaywgc28gdGhhdCB3ZSBkb24ndFxuLy8gZW1pdCAnZHJhaW4nIGJlZm9yZSB0aGUgd3JpdGUoKSBjb25zdW1lciBnZXRzIHRoZSAnZmFsc2UnIHJldHVyblxuLy8gdmFsdWUsIGFuZCBoYXMgYSBjaGFuY2UgdG8gYXR0YWNoIGEgJ2RyYWluJyBsaXN0ZW5lci5cbmZ1bmN0aW9uIG9ud3JpdGVEcmFpbihzdHJlYW0sIHN0YXRlKSB7XG4gIGlmIChzdGF0ZS5sZW5ndGggPT09IDAgJiYgc3RhdGUubmVlZERyYWluKSB7XG4gICAgc3RhdGUubmVlZERyYWluID0gZmFsc2U7XG4gICAgc3RyZWFtLmVtaXQoJ2RyYWluJyk7XG4gIH1cbn1cblxuLy8gaWYgdGhlcmUncyBzb21ldGhpbmcgaW4gdGhlIGJ1ZmZlciB3YWl0aW5nLCB0aGVuIHByb2Nlc3MgaXRcbmZ1bmN0aW9uIGNsZWFyQnVmZmVyKHN0cmVhbSwgc3RhdGUpIHtcbiAgc3RhdGUuYnVmZmVyUHJvY2Vzc2luZyA9IHRydWU7XG4gIHZhciBlbnRyeSA9IHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdDtcblxuICBpZiAoc3RyZWFtLl93cml0ZXYgJiYgZW50cnkgJiYgZW50cnkubmV4dCkge1xuICAgIC8vIEZhc3QgY2FzZSwgd3JpdGUgZXZlcnl0aGluZyB1c2luZyBfd3JpdGV2KClcbiAgICB2YXIgbCA9IHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdENvdW50O1xuICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXkobCk7XG4gICAgdmFyIGhvbGRlciA9IHN0YXRlLmNvcmtlZFJlcXVlc3RzRnJlZTtcbiAgICBob2xkZXIuZW50cnkgPSBlbnRyeTtcblxuICAgIHZhciBjb3VudCA9IDA7XG4gICAgdmFyIGFsbEJ1ZmZlcnMgPSB0cnVlO1xuICAgIHdoaWxlIChlbnRyeSkge1xuICAgICAgYnVmZmVyW2NvdW50XSA9IGVudHJ5O1xuICAgICAgaWYgKCFlbnRyeS5pc0J1ZikgYWxsQnVmZmVycyA9IGZhbHNlO1xuICAgICAgZW50cnkgPSBlbnRyeS5uZXh0O1xuICAgICAgY291bnQgKz0gMTtcbiAgICB9XG4gICAgYnVmZmVyLmFsbEJ1ZmZlcnMgPSBhbGxCdWZmZXJzO1xuXG4gICAgZG9Xcml0ZShzdHJlYW0sIHN0YXRlLCB0cnVlLCBzdGF0ZS5sZW5ndGgsIGJ1ZmZlciwgJycsIGhvbGRlci5maW5pc2gpO1xuXG4gICAgLy8gZG9Xcml0ZSBpcyBhbG1vc3QgYWx3YXlzIGFzeW5jLCBkZWZlciB0aGVzZSB0byBzYXZlIGEgYml0IG9mIHRpbWVcbiAgICAvLyBhcyB0aGUgaG90IHBhdGggZW5kcyB3aXRoIGRvV3JpdGVcbiAgICBzdGF0ZS5wZW5kaW5nY2IrKztcbiAgICBzdGF0ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0ID0gbnVsbDtcbiAgICBpZiAoaG9sZGVyLm5leHQpIHtcbiAgICAgIHN0YXRlLmNvcmtlZFJlcXVlc3RzRnJlZSA9IGhvbGRlci5uZXh0O1xuICAgICAgaG9sZGVyLm5leHQgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZS5jb3JrZWRSZXF1ZXN0c0ZyZWUgPSBuZXcgQ29ya2VkUmVxdWVzdChzdGF0ZSk7XG4gICAgfVxuICAgIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdENvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBTbG93IGNhc2UsIHdyaXRlIGNodW5rcyBvbmUtYnktb25lXG4gICAgd2hpbGUgKGVudHJ5KSB7XG4gICAgICB2YXIgY2h1bmsgPSBlbnRyeS5jaHVuaztcbiAgICAgIHZhciBlbmNvZGluZyA9IGVudHJ5LmVuY29kaW5nO1xuICAgICAgdmFyIGNiID0gZW50cnkuY2FsbGJhY2s7XG4gICAgICB2YXIgbGVuID0gc3RhdGUub2JqZWN0TW9kZSA/IDEgOiBjaHVuay5sZW5ndGg7XG5cbiAgICAgIGRvV3JpdGUoc3RyZWFtLCBzdGF0ZSwgZmFsc2UsIGxlbiwgY2h1bmssIGVuY29kaW5nLCBjYik7XG4gICAgICBlbnRyeSA9IGVudHJ5Lm5leHQ7XG4gICAgICBzdGF0ZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tO1xuICAgICAgLy8gaWYgd2UgZGlkbid0IGNhbGwgdGhlIG9ud3JpdGUgaW1tZWRpYXRlbHksIHRoZW5cbiAgICAgIC8vIGl0IG1lYW5zIHRoYXQgd2UgbmVlZCB0byB3YWl0IHVudGlsIGl0IGRvZXMuXG4gICAgICAvLyBhbHNvLCB0aGF0IG1lYW5zIHRoYXQgdGhlIGNodW5rIGFuZCBjYiBhcmUgY3VycmVudGx5XG4gICAgICAvLyBiZWluZyBwcm9jZXNzZWQsIHNvIG1vdmUgdGhlIGJ1ZmZlciBjb3VudGVyIHBhc3QgdGhlbS5cbiAgICAgIGlmIChzdGF0ZS53cml0aW5nKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlbnRyeSA9PT0gbnVsbCkgc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdCA9IG51bGw7XG4gIH1cblxuICBzdGF0ZS5idWZmZXJlZFJlcXVlc3QgPSBlbnRyeTtcbiAgc3RhdGUuYnVmZmVyUHJvY2Vzc2luZyA9IGZhbHNlO1xufVxuXG5Xcml0YWJsZS5wcm90b3R5cGUuX3dyaXRlID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZywgY2IpIHtcbiAgY2IobmV3IEVycm9yKCdfd3JpdGUoKSBpcyBub3QgaW1wbGVtZW50ZWQnKSk7XG59O1xuXG5Xcml0YWJsZS5wcm90b3R5cGUuX3dyaXRldiA9IG51bGw7XG5cbldyaXRhYmxlLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikge1xuICB2YXIgc3RhdGUgPSB0aGlzLl93cml0YWJsZVN0YXRlO1xuXG4gIGlmICh0eXBlb2YgY2h1bmsgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYiA9IGNodW5rO1xuICAgIGNodW5rID0gbnVsbDtcbiAgICBlbmNvZGluZyA9IG51bGw7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2IgPSBlbmNvZGluZztcbiAgICBlbmNvZGluZyA9IG51bGw7XG4gIH1cblxuICBpZiAoY2h1bmsgIT09IG51bGwgJiYgY2h1bmsgIT09IHVuZGVmaW5lZCkgdGhpcy53cml0ZShjaHVuaywgZW5jb2RpbmcpO1xuXG4gIC8vIC5lbmQoKSBmdWxseSB1bmNvcmtzXG4gIGlmIChzdGF0ZS5jb3JrZWQpIHtcbiAgICBzdGF0ZS5jb3JrZWQgPSAxO1xuICAgIHRoaXMudW5jb3JrKCk7XG4gIH1cblxuICAvLyBpZ25vcmUgdW5uZWNlc3NhcnkgZW5kKCkgY2FsbHMuXG4gIGlmICghc3RhdGUuZW5kaW5nICYmICFzdGF0ZS5maW5pc2hlZCkgZW5kV3JpdGFibGUodGhpcywgc3RhdGUsIGNiKTtcbn07XG5cbmZ1bmN0aW9uIG5lZWRGaW5pc2goc3RhdGUpIHtcbiAgcmV0dXJuIHN0YXRlLmVuZGluZyAmJiBzdGF0ZS5sZW5ndGggPT09IDAgJiYgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0ID09PSBudWxsICYmICFzdGF0ZS5maW5pc2hlZCAmJiAhc3RhdGUud3JpdGluZztcbn1cbmZ1bmN0aW9uIGNhbGxGaW5hbChzdHJlYW0sIHN0YXRlKSB7XG4gIHN0cmVhbS5fZmluYWwoZnVuY3Rpb24gKGVycikge1xuICAgIHN0YXRlLnBlbmRpbmdjYi0tO1xuICAgIGlmIChlcnIpIHtcbiAgICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIGVycik7XG4gICAgfVxuICAgIHN0YXRlLnByZWZpbmlzaGVkID0gdHJ1ZTtcbiAgICBzdHJlYW0uZW1pdCgncHJlZmluaXNoJyk7XG4gICAgZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSk7XG4gIH0pO1xufVxuZnVuY3Rpb24gcHJlZmluaXNoKHN0cmVhbSwgc3RhdGUpIHtcbiAgaWYgKCFzdGF0ZS5wcmVmaW5pc2hlZCAmJiAhc3RhdGUuZmluYWxDYWxsZWQpIHtcbiAgICBpZiAodHlwZW9mIHN0cmVhbS5fZmluYWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHN0YXRlLnBlbmRpbmdjYisrO1xuICAgICAgc3RhdGUuZmluYWxDYWxsZWQgPSB0cnVlO1xuICAgICAgcG5hLm5leHRUaWNrKGNhbGxGaW5hbCwgc3RyZWFtLCBzdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLnByZWZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgIHN0cmVhbS5lbWl0KCdwcmVmaW5pc2gnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSkge1xuICB2YXIgbmVlZCA9IG5lZWRGaW5pc2goc3RhdGUpO1xuICBpZiAobmVlZCkge1xuICAgIHByZWZpbmlzaChzdHJlYW0sIHN0YXRlKTtcbiAgICBpZiAoc3RhdGUucGVuZGluZ2NiID09PSAwKSB7XG4gICAgICBzdGF0ZS5maW5pc2hlZCA9IHRydWU7XG4gICAgICBzdHJlYW0uZW1pdCgnZmluaXNoJyk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZWVkO1xufVxuXG5mdW5jdGlvbiBlbmRXcml0YWJsZShzdHJlYW0sIHN0YXRlLCBjYikge1xuICBzdGF0ZS5lbmRpbmcgPSB0cnVlO1xuICBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKTtcbiAgaWYgKGNiKSB7XG4gICAgaWYgKHN0YXRlLmZpbmlzaGVkKSBwbmEubmV4dFRpY2soY2IpO2Vsc2Ugc3RyZWFtLm9uY2UoJ2ZpbmlzaCcsIGNiKTtcbiAgfVxuICBzdGF0ZS5lbmRlZCA9IHRydWU7XG4gIHN0cmVhbS53cml0YWJsZSA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBvbkNvcmtlZEZpbmlzaChjb3JrUmVxLCBzdGF0ZSwgZXJyKSB7XG4gIHZhciBlbnRyeSA9IGNvcmtSZXEuZW50cnk7XG4gIGNvcmtSZXEuZW50cnkgPSBudWxsO1xuICB3aGlsZSAoZW50cnkpIHtcbiAgICB2YXIgY2IgPSBlbnRyeS5jYWxsYmFjaztcbiAgICBzdGF0ZS5wZW5kaW5nY2ItLTtcbiAgICBjYihlcnIpO1xuICAgIGVudHJ5ID0gZW50cnkubmV4dDtcbiAgfVxuICBpZiAoc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlKSB7XG4gICAgc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQgPSBjb3JrUmVxO1xuICB9IGVsc2Uge1xuICAgIHN0YXRlLmNvcmtlZFJlcXVlc3RzRnJlZSA9IGNvcmtSZXE7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSwgJ2Rlc3Ryb3llZCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuX3dyaXRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgLy8gd2UgaWdub3JlIHRoZSB2YWx1ZSBpZiB0aGUgc3RyZWFtXG4gICAgLy8gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldFxuICAgIGlmICghdGhpcy5fd3JpdGFibGVTdGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSB1c2VyIGlzIGV4cGxpY2l0bHlcbiAgICAvLyBtYW5hZ2luZyBkZXN0cm95ZWRcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZCA9IHZhbHVlO1xuICB9XG59KTtcblxuV3JpdGFibGUucHJvdG90eXBlLmRlc3Ryb3kgPSBkZXN0cm95SW1wbC5kZXN0cm95O1xuV3JpdGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3kgPSBkZXN0cm95SW1wbC51bmRlc3Ryb3k7XG5Xcml0YWJsZS5wcm90b3R5cGUuX2Rlc3Ryb3kgPSBmdW5jdGlvbiAoZXJyLCBjYikge1xuICB0aGlzLmVuZCgpO1xuICBjYihlcnIpO1xufTsiLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlcjtcbnZhciB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xuXG5mdW5jdGlvbiBjb3B5QnVmZmVyKHNyYywgdGFyZ2V0LCBvZmZzZXQpIHtcbiAgc3JjLmNvcHkodGFyZ2V0LCBvZmZzZXQpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gQnVmZmVyTGlzdCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQnVmZmVyTGlzdCk7XG5cbiAgICB0aGlzLmhlYWQgPSBudWxsO1xuICAgIHRoaXMudGFpbCA9IG51bGw7XG4gICAgdGhpcy5sZW5ndGggPSAwO1xuICB9XG5cbiAgQnVmZmVyTGlzdC5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIHB1c2godikge1xuICAgIHZhciBlbnRyeSA9IHsgZGF0YTogdiwgbmV4dDogbnVsbCB9O1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IDApIHRoaXMudGFpbC5uZXh0ID0gZW50cnk7ZWxzZSB0aGlzLmhlYWQgPSBlbnRyeTtcbiAgICB0aGlzLnRhaWwgPSBlbnRyeTtcbiAgICArK3RoaXMubGVuZ3RoO1xuICB9O1xuXG4gIEJ1ZmZlckxpc3QucHJvdG90eXBlLnVuc2hpZnQgPSBmdW5jdGlvbiB1bnNoaWZ0KHYpIHtcbiAgICB2YXIgZW50cnkgPSB7IGRhdGE6IHYsIG5leHQ6IHRoaXMuaGVhZCB9O1xuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgdGhpcy50YWlsID0gZW50cnk7XG4gICAgdGhpcy5oZWFkID0gZW50cnk7XG4gICAgKyt0aGlzLmxlbmd0aDtcbiAgfTtcblxuICBCdWZmZXJMaXN0LnByb3RvdHlwZS5zaGlmdCA9IGZ1bmN0aW9uIHNoaWZ0KCkge1xuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIHZhciByZXQgPSB0aGlzLmhlYWQuZGF0YTtcbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDEpIHRoaXMuaGVhZCA9IHRoaXMudGFpbCA9IG51bGw7ZWxzZSB0aGlzLmhlYWQgPSB0aGlzLmhlYWQubmV4dDtcbiAgICAtLXRoaXMubGVuZ3RoO1xuICAgIHJldHVybiByZXQ7XG4gIH07XG5cbiAgQnVmZmVyTGlzdC5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICB0aGlzLmhlYWQgPSB0aGlzLnRhaWwgPSBudWxsO1xuICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgfTtcblxuICBCdWZmZXJMaXN0LnByb3RvdHlwZS5qb2luID0gZnVuY3Rpb24gam9pbihzKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG4gICAgdmFyIHAgPSB0aGlzLmhlYWQ7XG4gICAgdmFyIHJldCA9ICcnICsgcC5kYXRhO1xuICAgIHdoaWxlIChwID0gcC5uZXh0KSB7XG4gICAgICByZXQgKz0gcyArIHAuZGF0YTtcbiAgICB9cmV0dXJuIHJldDtcbiAgfTtcblxuICBCdWZmZXJMaXN0LnByb3RvdHlwZS5jb25jYXQgPSBmdW5jdGlvbiBjb25jYXQobikge1xuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIEJ1ZmZlci5hbGxvYygwKTtcbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDEpIHJldHVybiB0aGlzLmhlYWQuZGF0YTtcbiAgICB2YXIgcmV0ID0gQnVmZmVyLmFsbG9jVW5zYWZlKG4gPj4+IDApO1xuICAgIHZhciBwID0gdGhpcy5oZWFkO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAocCkge1xuICAgICAgY29weUJ1ZmZlcihwLmRhdGEsIHJldCwgaSk7XG4gICAgICBpICs9IHAuZGF0YS5sZW5ndGg7XG4gICAgICBwID0gcC5uZXh0O1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9O1xuXG4gIHJldHVybiBCdWZmZXJMaXN0O1xufSgpO1xuXG5pZiAodXRpbCAmJiB1dGlsLmluc3BlY3QgJiYgdXRpbC5pbnNwZWN0LmN1c3RvbSkge1xuICBtb2R1bGUuZXhwb3J0cy5wcm90b3R5cGVbdXRpbC5pbnNwZWN0LmN1c3RvbV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG9iaiA9IHV0aWwuaW5zcGVjdCh7IGxlbmd0aDogdGhpcy5sZW5ndGggfSk7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZSArICcgJyArIG9iajtcbiAgfTtcbn0iLCIndXNlIHN0cmljdCc7XG5cbi8qPHJlcGxhY2VtZW50PiovXG5cbnZhciBwbmEgPSByZXF1aXJlKCdwcm9jZXNzLW5leHRpY2stYXJncycpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8vIHVuZG9jdW1lbnRlZCBjYigpIEFQSSwgbmVlZGVkIGZvciBjb3JlLCBub3QgZm9yIHB1YmxpYyBBUElcbmZ1bmN0aW9uIGRlc3Ryb3koZXJyLCBjYikge1xuICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gIHZhciByZWFkYWJsZURlc3Ryb3llZCA9IHRoaXMuX3JlYWRhYmxlU3RhdGUgJiYgdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ7XG4gIHZhciB3cml0YWJsZURlc3Ryb3llZCA9IHRoaXMuX3dyaXRhYmxlU3RhdGUgJiYgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7XG5cbiAgaWYgKHJlYWRhYmxlRGVzdHJveWVkIHx8IHdyaXRhYmxlRGVzdHJveWVkKSB7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihlcnIpO1xuICAgIH0gZWxzZSBpZiAoZXJyICYmICghdGhpcy5fd3JpdGFibGVTdGF0ZSB8fCAhdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQpKSB7XG4gICAgICBwbmEubmV4dFRpY2soZW1pdEVycm9yTlQsIHRoaXMsIGVycik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gd2Ugc2V0IGRlc3Ryb3llZCB0byB0cnVlIGJlZm9yZSBmaXJpbmcgZXJyb3IgY2FsbGJhY2tzIGluIG9yZGVyXG4gIC8vIHRvIG1ha2UgaXQgcmUtZW50cmFuY2Ugc2FmZSBpbiBjYXNlIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2l0aGluIGNhbGxiYWNrc1xuXG4gIGlmICh0aGlzLl9yZWFkYWJsZVN0YXRlKSB7XG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgLy8gaWYgdGhpcyBpcyBhIGR1cGxleCBzdHJlYW0gbWFyayB0aGUgd3JpdGFibGUgcGFydCBhcyBkZXN0cm95ZWQgYXMgd2VsbFxuICBpZiAodGhpcy5fd3JpdGFibGVTdGF0ZSkge1xuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkID0gdHJ1ZTtcbiAgfVxuXG4gIHRoaXMuX2Rlc3Ryb3koZXJyIHx8IG51bGwsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICBpZiAoIWNiICYmIGVycikge1xuICAgICAgcG5hLm5leHRUaWNrKGVtaXRFcnJvck5ULCBfdGhpcywgZXJyKTtcbiAgICAgIGlmIChfdGhpcy5fd3JpdGFibGVTdGF0ZSkge1xuICAgICAgICBfdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2IpIHtcbiAgICAgIGNiKGVycik7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gdW5kZXN0cm95KCkge1xuICBpZiAodGhpcy5fcmVhZGFibGVTdGF0ZSkge1xuICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkID0gZmFsc2U7XG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHRoaXMuX3dyaXRhYmxlU3RhdGUpIHtcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWQgPSBmYWxzZTtcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNoZWQgPSBmYWxzZTtcbiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVtaXRFcnJvck5UKHNlbGYsIGVycikge1xuICBzZWxmLmVtaXQoJ2Vycm9yJywgZXJyKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGRlc3Ryb3k6IGRlc3Ryb3ksXG4gIHVuZGVzdHJveTogdW5kZXN0cm95XG59OyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnZXZlbnRzJykuRXZlbnRFbWl0dGVyO1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL3JlYWRhYmxlJykuUGFzc1Rocm91Z2hcbiIsImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vbGliL19zdHJlYW1fcmVhZGFibGUuanMnKTtcbmV4cG9ydHMuU3RyZWFtID0gZXhwb3J0cztcbmV4cG9ydHMuUmVhZGFibGUgPSBleHBvcnRzO1xuZXhwb3J0cy5Xcml0YWJsZSA9IHJlcXVpcmUoJy4vbGliL19zdHJlYW1fd3JpdGFibGUuanMnKTtcbmV4cG9ydHMuRHVwbGV4ID0gcmVxdWlyZSgnLi9saWIvX3N0cmVhbV9kdXBsZXguanMnKTtcbmV4cG9ydHMuVHJhbnNmb3JtID0gcmVxdWlyZSgnLi9saWIvX3N0cmVhbV90cmFuc2Zvcm0uanMnKTtcbmV4cG9ydHMuUGFzc1Rocm91Z2ggPSByZXF1aXJlKCcuL2xpYi9fc3RyZWFtX3Bhc3N0aHJvdWdoLmpzJyk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vcmVhZGFibGUnKS5UcmFuc2Zvcm1cbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvX3N0cmVhbV93cml0YWJsZS5qcycpO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG47XG47XG47XG52YXIgaXNXZWJTb2NrZXQgPSBmdW5jdGlvbiAoY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gY29uc3RydWN0b3IgJiYgY29uc3RydWN0b3IuQ0xPU0lORyA9PT0gMjtcbn07XG52YXIgaXNHbG9iYWxXZWJTb2NrZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBXZWJTb2NrZXQgIT09ICd1bmRlZmluZWQnICYmIGlzV2ViU29ja2V0KFdlYlNvY2tldCk7XG59O1xudmFyIGdldERlZmF1bHRPcHRpb25zID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gKHtcbiAgICBjb25zdHJ1Y3RvcjogaXNHbG9iYWxXZWJTb2NrZXQoKSA/IFdlYlNvY2tldCA6IG51bGwsXG4gICAgbWF4UmVjb25uZWN0aW9uRGVsYXk6IDEwMDAwLFxuICAgIG1pblJlY29ubmVjdGlvbkRlbGF5OiAxNTAwLFxuICAgIHJlY29ubmVjdGlvbkRlbGF5R3Jvd0ZhY3RvcjogMS4zLFxuICAgIGNvbm5lY3Rpb25UaW1lb3V0OiA0MDAwLFxuICAgIG1heFJldHJpZXM6IEluZmluaXR5LFxuICAgIGRlYnVnOiBmYWxzZSxcbn0pOyB9O1xudmFyIGJ5cGFzc1Byb3BlcnR5ID0gZnVuY3Rpb24gKHNyYywgZHN0LCBuYW1lKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGRzdCwgbmFtZSwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNyY1tuYW1lXTsgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHsgc3JjW25hbWVdID0gdmFsdWU7IH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbn07XG52YXIgaW5pdFJlY29ubmVjdGlvbkRlbGF5ID0gZnVuY3Rpb24gKGNvbmZpZykge1xuICAgIHJldHVybiAoY29uZmlnLm1pblJlY29ubmVjdGlvbkRlbGF5ICsgTWF0aC5yYW5kb20oKSAqIGNvbmZpZy5taW5SZWNvbm5lY3Rpb25EZWxheSk7XG59O1xudmFyIHVwZGF0ZVJlY29ubmVjdGlvbkRlbGF5ID0gZnVuY3Rpb24gKGNvbmZpZywgcHJldmlvdXNEZWxheSkge1xuICAgIHZhciBuZXdEZWxheSA9IHByZXZpb3VzRGVsYXkgKiBjb25maWcucmVjb25uZWN0aW9uRGVsYXlHcm93RmFjdG9yO1xuICAgIHJldHVybiAobmV3RGVsYXkgPiBjb25maWcubWF4UmVjb25uZWN0aW9uRGVsYXkpXG4gICAgICAgID8gY29uZmlnLm1heFJlY29ubmVjdGlvbkRlbGF5XG4gICAgICAgIDogbmV3RGVsYXk7XG59O1xudmFyIExFVkVMXzBfRVZFTlRTID0gWydvbm9wZW4nLCAnb25jbG9zZScsICdvbm1lc3NhZ2UnLCAnb25lcnJvciddO1xudmFyIHJlYXNzaWduRXZlbnRMaXN0ZW5lcnMgPSBmdW5jdGlvbiAod3MsIG9sZFdzLCBsaXN0ZW5lcnMpIHtcbiAgICBPYmplY3Qua2V5cyhsaXN0ZW5lcnMpLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgICAgbGlzdGVuZXJzW3R5cGVdLmZvckVhY2goZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICB2YXIgbGlzdGVuZXIgPSBfYVswXSwgb3B0aW9ucyA9IF9hWzFdO1xuICAgICAgICAgICAgd3MuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGlmIChvbGRXcykge1xuICAgICAgICBMRVZFTF8wX0VWRU5UUy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgICAgICB3c1tuYW1lXSA9IG9sZFdzW25hbWVdO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xudmFyIFJlY29ubmVjdGluZ1dlYnNvY2tldCA9IGZ1bmN0aW9uICh1cmwsIHByb3RvY29scywgb3B0aW9ucykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgd3M7XG4gICAgdmFyIGNvbm5lY3RpbmdUaW1lb3V0O1xuICAgIHZhciByZWNvbm5lY3REZWxheSA9IDA7XG4gICAgdmFyIHJldHJpZXNDb3VudCA9IDA7XG4gICAgdmFyIHNob3VsZFJldHJ5ID0gdHJ1ZTtcbiAgICB2YXIgc2F2ZWRPbkNsb3NlID0gbnVsbDtcbiAgICB2YXIgbGlzdGVuZXJzID0ge307XG4gICAgLy8gcmVxdWlyZSBuZXcgdG8gY29uc3RydWN0XG4gICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFJlY29ubmVjdGluZ1dlYnNvY2tldCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZhaWxlZCB0byBjb25zdHJ1Y3QgJ1JlY29ubmVjdGluZ1dlYlNvY2tldCc6IFBsZWFzZSB1c2UgdGhlICduZXcnIG9wZXJhdG9yXCIpO1xuICAgIH1cbiAgICAvLyBTZXQgY29uZmlnLiBOb3QgdXNpbmcgYE9iamVjdC5hc3NpZ25gIGJlY2F1c2Ugb2YgSUUxMVxuICAgIHZhciBjb25maWcgPSBnZXREZWZhdWx0T3B0aW9ucygpO1xuICAgIE9iamVjdC5rZXlzKGNvbmZpZylcbiAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAoa2V5KSB7IHJldHVybiBvcHRpb25zLmhhc093blByb3BlcnR5KGtleSk7IH0pXG4gICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgcmV0dXJuIGNvbmZpZ1trZXldID0gb3B0aW9uc1trZXldOyB9KTtcbiAgICBpZiAoIWlzV2ViU29ja2V0KGNvbmZpZy5jb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBXZWJTb2NrZXQgY29uc3RydWN0b3IuIFNldCBgb3B0aW9ucy5jb25zdHJ1Y3RvcmAnKTtcbiAgICB9XG4gICAgdmFyIGxvZyA9IGNvbmZpZy5kZWJ1ZyA/IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHBhcmFtcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgcGFyYW1zW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnNvbGUubG9nLmFwcGx5KGNvbnNvbGUsIFsnUldTOiddLmNvbmNhdChwYXJhbXMpKTtcbiAgICB9IDogZnVuY3Rpb24gKCkgeyB9O1xuICAgIC8qKlxuICAgICAqIE5vdCB1c2luZyBkaXNwYXRjaEV2ZW50LCBvdGhlcndpc2Ugd2UgbXVzdCB1c2UgYSBET00gRXZlbnQgb2JqZWN0XG4gICAgICogRGVmZXJyZWQgYmVjYXVzZSB3ZSB3YW50IHRvIGhhbmRsZSB0aGUgY2xvc2UgZXZlbnQgYmVmb3JlIHRoaXNcbiAgICAgKi9cbiAgICB2YXIgZW1pdEVycm9yID0gZnVuY3Rpb24gKGNvZGUsIG1zZykgeyByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgICAgICAgZXJyLmNvZGUgPSBjb2RlO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsaXN0ZW5lcnMuZXJyb3IpKSB7XG4gICAgICAgICAgICBsaXN0ZW5lcnMuZXJyb3IuZm9yRWFjaChmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICB2YXIgZm4gPSBfYVswXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZm4oZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3cy5vbmVycm9yKSB7XG4gICAgICAgICAgICB3cy5vbmVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICB9LCAwKTsgfTtcbiAgICB2YXIgaGFuZGxlQ2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxvZygnaGFuZGxlQ2xvc2UnLCB7IHNob3VsZFJldHJ5OiBzaG91bGRSZXRyeSB9KTtcbiAgICAgICAgcmV0cmllc0NvdW50Kys7XG4gICAgICAgIGxvZygncmV0cmllcyBjb3VudDonLCByZXRyaWVzQ291bnQpO1xuICAgICAgICBpZiAocmV0cmllc0NvdW50ID4gY29uZmlnLm1heFJldHJpZXMpIHtcbiAgICAgICAgICAgIGVtaXRFcnJvcignRUhPU1RET1dOJywgJ1RvbyBtYW55IGZhaWxlZCBjb25uZWN0aW9uIGF0dGVtcHRzJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZWNvbm5lY3REZWxheSkge1xuICAgICAgICAgICAgcmVjb25uZWN0RGVsYXkgPSBpbml0UmVjb25uZWN0aW9uRGVsYXkoY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlY29ubmVjdERlbGF5ID0gdXBkYXRlUmVjb25uZWN0aW9uRGVsYXkoY29uZmlnLCByZWNvbm5lY3REZWxheSk7XG4gICAgICAgIH1cbiAgICAgICAgbG9nKCdoYW5kbGVDbG9zZSAtIHJlY29ubmVjdERlbGF5OicsIHJlY29ubmVjdERlbGF5KTtcbiAgICAgICAgaWYgKHNob3VsZFJldHJ5KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNvbm5lY3QsIHJlY29ubmVjdERlbGF5KTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgdmFyIGNvbm5lY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghc2hvdWxkUmV0cnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsb2coJ2Nvbm5lY3QnKTtcbiAgICAgICAgdmFyIG9sZFdzID0gd3M7XG4gICAgICAgIHZhciB3c1VybCA9ICh0eXBlb2YgdXJsID09PSAnZnVuY3Rpb24nKSA/IHVybCgpIDogdXJsO1xuICAgICAgICB3cyA9IG5ldyBjb25maWcuY29uc3RydWN0b3Iod3NVcmwsIHByb3RvY29scyk7XG4gICAgICAgIGNvbm5lY3RpbmdUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsb2coJ3RpbWVvdXQnKTtcbiAgICAgICAgICAgIHdzLmNsb3NlKCk7XG4gICAgICAgICAgICBlbWl0RXJyb3IoJ0VUSU1FRE9VVCcsICdDb25uZWN0aW9uIHRpbWVvdXQnKTtcbiAgICAgICAgfSwgY29uZmlnLmNvbm5lY3Rpb25UaW1lb3V0KTtcbiAgICAgICAgbG9nKCdieXBhc3MgcHJvcGVydGllcycpO1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gd3MpIHtcbiAgICAgICAgICAgIC8vIEB0b2RvIG1vdmUgdG8gY29uc3RhbnRcbiAgICAgICAgICAgIGlmIChbJ2FkZEV2ZW50TGlzdGVuZXInLCAncmVtb3ZlRXZlbnRMaXN0ZW5lcicsICdjbG9zZScsICdzZW5kJ10uaW5kZXhPZihrZXkpIDwgMCkge1xuICAgICAgICAgICAgICAgIGJ5cGFzc1Byb3BlcnR5KHdzLCBfdGhpcywga2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB3cy5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGNvbm5lY3RpbmdUaW1lb3V0KTtcbiAgICAgICAgICAgIGxvZygnb3BlbicpO1xuICAgICAgICAgICAgcmVjb25uZWN0RGVsYXkgPSBpbml0UmVjb25uZWN0aW9uRGVsYXkoY29uZmlnKTtcbiAgICAgICAgICAgIGxvZygncmVjb25uZWN0RGVsYXk6JywgcmVjb25uZWN0RGVsYXkpO1xuICAgICAgICAgICAgcmV0cmllc0NvdW50ID0gMDtcbiAgICAgICAgfSk7XG4gICAgICAgIHdzLmFkZEV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgaGFuZGxlQ2xvc2UpO1xuICAgICAgICByZWFzc2lnbkV2ZW50TGlzdGVuZXJzKHdzLCBvbGRXcywgbGlzdGVuZXJzKTtcbiAgICAgICAgLy8gYmVjYXVzZSB3aGVuIGNsb3Npbmcgd2l0aCBmYXN0Q2xvc2U9dHJ1ZSwgaXQgaXMgc2F2ZWQgYW5kIHNldCB0byBudWxsIHRvIGF2b2lkIGRvdWJsZSBjYWxsc1xuICAgICAgICB3cy5vbmNsb3NlID0gd3Mub25jbG9zZSB8fCBzYXZlZE9uQ2xvc2U7XG4gICAgICAgIHNhdmVkT25DbG9zZSA9IG51bGw7XG4gICAgfTtcbiAgICBsb2coJ2luaXQnKTtcbiAgICBjb25uZWN0KCk7XG4gICAgdGhpcy5jbG9zZSA9IGZ1bmN0aW9uIChjb2RlLCByZWFzb24sIF9hKSB7XG4gICAgICAgIGlmIChjb2RlID09PSB2b2lkIDApIHsgY29kZSA9IDEwMDA7IH1cbiAgICAgICAgaWYgKHJlYXNvbiA9PT0gdm9pZCAwKSB7IHJlYXNvbiA9ICcnOyB9XG4gICAgICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyB7fSA6IF9hLCBfYyA9IF9iLmtlZXBDbG9zZWQsIGtlZXBDbG9zZWQgPSBfYyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYywgX2QgPSBfYi5mYXN0Q2xvc2UsIGZhc3RDbG9zZSA9IF9kID09PSB2b2lkIDAgPyB0cnVlIDogX2QsIF9lID0gX2IuZGVsYXksIGRlbGF5ID0gX2UgPT09IHZvaWQgMCA/IDAgOiBfZTtcbiAgICAgICAgbG9nKCdjbG9zZSAtIHBhcmFtczonLCB7IHJlYXNvbjogcmVhc29uLCBrZWVwQ2xvc2VkOiBrZWVwQ2xvc2VkLCBmYXN0Q2xvc2U6IGZhc3RDbG9zZSwgZGVsYXk6IGRlbGF5LCByZXRyaWVzQ291bnQ6IHJldHJpZXNDb3VudCwgbWF4UmV0cmllczogY29uZmlnLm1heFJldHJpZXMgfSk7XG4gICAgICAgIHNob3VsZFJldHJ5ID0gIWtlZXBDbG9zZWQgJiYgcmV0cmllc0NvdW50IDw9IGNvbmZpZy5tYXhSZXRyaWVzO1xuICAgICAgICBpZiAoZGVsYXkpIHtcbiAgICAgICAgICAgIHJlY29ubmVjdERlbGF5ID0gZGVsYXk7XG4gICAgICAgIH1cbiAgICAgICAgd3MuY2xvc2UoY29kZSwgcmVhc29uKTtcbiAgICAgICAgaWYgKGZhc3RDbG9zZSkge1xuICAgICAgICAgICAgdmFyIGZha2VDbG9zZUV2ZW50XzEgPSB7XG4gICAgICAgICAgICAgICAgY29kZTogY29kZSxcbiAgICAgICAgICAgICAgICByZWFzb246IHJlYXNvbixcbiAgICAgICAgICAgICAgICB3YXNDbGVhbjogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyBleGVjdXRlIGNsb3NlIGxpc3RlbmVycyBzb29uIHdpdGggYSBmYWtlIGNsb3NlRXZlbnRcbiAgICAgICAgICAgIC8vIGFuZCByZW1vdmUgdGhlbSBmcm9tIHRoZSBXUyBpbnN0YW5jZSBzbyB0aGV5XG4gICAgICAgICAgICAvLyBkb24ndCBnZXQgZmlyZWQgb24gdGhlIHJlYWwgY2xvc2UuXG4gICAgICAgICAgICBoYW5kbGVDbG9zZSgpO1xuICAgICAgICAgICAgd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xvc2UnLCBoYW5kbGVDbG9zZSk7XG4gICAgICAgICAgICAvLyBydW4gYW5kIHJlbW92ZSBsZXZlbDJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxpc3RlbmVycy5jbG9zZSkpIHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuY2xvc2UuZm9yRWFjaChmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RlbmVyID0gX2FbMF0sIG9wdGlvbnMgPSBfYVsxXTtcbiAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIoZmFrZUNsb3NlRXZlbnRfMSk7XG4gICAgICAgICAgICAgICAgICAgIHdzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Nsb3NlJywgbGlzdGVuZXIsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcnVuIGFuZCByZW1vdmUgbGV2ZWwwXG4gICAgICAgICAgICBpZiAod3Mub25jbG9zZSkge1xuICAgICAgICAgICAgICAgIHNhdmVkT25DbG9zZSA9IHdzLm9uY2xvc2U7XG4gICAgICAgICAgICAgICAgd3Mub25jbG9zZShmYWtlQ2xvc2VFdmVudF8xKTtcbiAgICAgICAgICAgICAgICB3cy5vbmNsb3NlID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5zZW5kID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgd3Muc2VuZChkYXRhKTtcbiAgICB9O1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uICh0eXBlLCBsaXN0ZW5lciwgb3B0aW9ucykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsaXN0ZW5lcnNbdHlwZV0pKSB7XG4gICAgICAgICAgICBpZiAoIWxpc3RlbmVyc1t0eXBlXS5zb21lKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIHZhciBsID0gX2FbMF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGwgPT09IGxpc3RlbmVyO1xuICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnNbdHlwZV0ucHVzaChbbGlzdGVuZXIsIG9wdGlvbnNdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxpc3RlbmVyc1t0eXBlXSA9IFtbbGlzdGVuZXIsIG9wdGlvbnNdXTtcbiAgICAgICAgfVxuICAgICAgICB3cy5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKTtcbiAgICB9O1xuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uICh0eXBlLCBsaXN0ZW5lciwgb3B0aW9ucykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsaXN0ZW5lcnNbdHlwZV0pKSB7XG4gICAgICAgICAgICBsaXN0ZW5lcnNbdHlwZV0gPSBsaXN0ZW5lcnNbdHlwZV0uZmlsdGVyKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIHZhciBsID0gX2FbMF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGwgIT09IGxpc3RlbmVyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciwgb3B0aW9ucyk7XG4gICAgfTtcbn07XG5tb2R1bGUuZXhwb3J0cyA9IFJlY29ubmVjdGluZ1dlYnNvY2tldDtcbiIsIid1c2Ugc3RyaWN0J1xudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpLkJ1ZmZlclxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEhhc2hCYXNlID0gcmVxdWlyZSgnaGFzaC1iYXNlJylcblxudmFyIEFSUkFZMTYgPSBuZXcgQXJyYXkoMTYpXG5cbnZhciB6bCA9IFtcbiAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSxcbiAgNywgNCwgMTMsIDEsIDEwLCA2LCAxNSwgMywgMTIsIDAsIDksIDUsIDIsIDE0LCAxMSwgOCxcbiAgMywgMTAsIDE0LCA0LCA5LCAxNSwgOCwgMSwgMiwgNywgMCwgNiwgMTMsIDExLCA1LCAxMixcbiAgMSwgOSwgMTEsIDEwLCAwLCA4LCAxMiwgNCwgMTMsIDMsIDcsIDE1LCAxNCwgNSwgNiwgMixcbiAgNCwgMCwgNSwgOSwgNywgMTIsIDIsIDEwLCAxNCwgMSwgMywgOCwgMTEsIDYsIDE1LCAxM1xuXVxuXG52YXIgenIgPSBbXG4gIDUsIDE0LCA3LCAwLCA5LCAyLCAxMSwgNCwgMTMsIDYsIDE1LCA4LCAxLCAxMCwgMywgMTIsXG4gIDYsIDExLCAzLCA3LCAwLCAxMywgNSwgMTAsIDE0LCAxNSwgOCwgMTIsIDQsIDksIDEsIDIsXG4gIDE1LCA1LCAxLCAzLCA3LCAxNCwgNiwgOSwgMTEsIDgsIDEyLCAyLCAxMCwgMCwgNCwgMTMsXG4gIDgsIDYsIDQsIDEsIDMsIDExLCAxNSwgMCwgNSwgMTIsIDIsIDEzLCA5LCA3LCAxMCwgMTQsXG4gIDEyLCAxNSwgMTAsIDQsIDEsIDUsIDgsIDcsIDYsIDIsIDEzLCAxNCwgMCwgMywgOSwgMTFcbl1cblxudmFyIHNsID0gW1xuICAxMSwgMTQsIDE1LCAxMiwgNSwgOCwgNywgOSwgMTEsIDEzLCAxNCwgMTUsIDYsIDcsIDksIDgsXG4gIDcsIDYsIDgsIDEzLCAxMSwgOSwgNywgMTUsIDcsIDEyLCAxNSwgOSwgMTEsIDcsIDEzLCAxMixcbiAgMTEsIDEzLCA2LCA3LCAxNCwgOSwgMTMsIDE1LCAxNCwgOCwgMTMsIDYsIDUsIDEyLCA3LCA1LFxuICAxMSwgMTIsIDE0LCAxNSwgMTQsIDE1LCA5LCA4LCA5LCAxNCwgNSwgNiwgOCwgNiwgNSwgMTIsXG4gIDksIDE1LCA1LCAxMSwgNiwgOCwgMTMsIDEyLCA1LCAxMiwgMTMsIDE0LCAxMSwgOCwgNSwgNlxuXVxuXG52YXIgc3IgPSBbXG4gIDgsIDksIDksIDExLCAxMywgMTUsIDE1LCA1LCA3LCA3LCA4LCAxMSwgMTQsIDE0LCAxMiwgNixcbiAgOSwgMTMsIDE1LCA3LCAxMiwgOCwgOSwgMTEsIDcsIDcsIDEyLCA3LCA2LCAxNSwgMTMsIDExLFxuICA5LCA3LCAxNSwgMTEsIDgsIDYsIDYsIDE0LCAxMiwgMTMsIDUsIDE0LCAxMywgMTMsIDcsIDUsXG4gIDE1LCA1LCA4LCAxMSwgMTQsIDE0LCA2LCAxNCwgNiwgOSwgMTIsIDksIDEyLCA1LCAxNSwgOCxcbiAgOCwgNSwgMTIsIDksIDEyLCA1LCAxNCwgNiwgOCwgMTMsIDYsIDUsIDE1LCAxMywgMTEsIDExXG5dXG5cbnZhciBobCA9IFsweDAwMDAwMDAwLCAweDVhODI3OTk5LCAweDZlZDllYmExLCAweDhmMWJiY2RjLCAweGE5NTNmZDRlXVxudmFyIGhyID0gWzB4NTBhMjhiZTYsIDB4NWM0ZGQxMjQsIDB4NmQ3MDNlZjMsIDB4N2E2ZDc2ZTksIDB4MDAwMDAwMDBdXG5cbmZ1bmN0aW9uIFJJUEVNRDE2MCAoKSB7XG4gIEhhc2hCYXNlLmNhbGwodGhpcywgNjQpXG5cbiAgLy8gc3RhdGVcbiAgdGhpcy5fYSA9IDB4Njc0NTIzMDFcbiAgdGhpcy5fYiA9IDB4ZWZjZGFiODlcbiAgdGhpcy5fYyA9IDB4OThiYWRjZmVcbiAgdGhpcy5fZCA9IDB4MTAzMjU0NzZcbiAgdGhpcy5fZSA9IDB4YzNkMmUxZjBcbn1cblxuaW5oZXJpdHMoUklQRU1EMTYwLCBIYXNoQmFzZSlcblxuUklQRU1EMTYwLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgd29yZHMgPSBBUlJBWTE2XG4gIGZvciAodmFyIGogPSAwOyBqIDwgMTY7ICsraikgd29yZHNbal0gPSB0aGlzLl9ibG9jay5yZWFkSW50MzJMRShqICogNClcblxuICB2YXIgYWwgPSB0aGlzLl9hIHwgMFxuICB2YXIgYmwgPSB0aGlzLl9iIHwgMFxuICB2YXIgY2wgPSB0aGlzLl9jIHwgMFxuICB2YXIgZGwgPSB0aGlzLl9kIHwgMFxuICB2YXIgZWwgPSB0aGlzLl9lIHwgMFxuXG4gIHZhciBhciA9IHRoaXMuX2EgfCAwXG4gIHZhciBiciA9IHRoaXMuX2IgfCAwXG4gIHZhciBjciA9IHRoaXMuX2MgfCAwXG4gIHZhciBkciA9IHRoaXMuX2QgfCAwXG4gIHZhciBlciA9IHRoaXMuX2UgfCAwXG5cbiAgLy8gY29tcHV0YXRpb25cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA4MDsgaSArPSAxKSB7XG4gICAgdmFyIHRsXG4gICAgdmFyIHRyXG4gICAgaWYgKGkgPCAxNikge1xuICAgICAgdGwgPSBmbjEoYWwsIGJsLCBjbCwgZGwsIGVsLCB3b3Jkc1t6bFtpXV0sIGhsWzBdLCBzbFtpXSlcbiAgICAgIHRyID0gZm41KGFyLCBiciwgY3IsIGRyLCBlciwgd29yZHNbenJbaV1dLCBoclswXSwgc3JbaV0pXG4gICAgfSBlbHNlIGlmIChpIDwgMzIpIHtcbiAgICAgIHRsID0gZm4yKGFsLCBibCwgY2wsIGRsLCBlbCwgd29yZHNbemxbaV1dLCBobFsxXSwgc2xbaV0pXG4gICAgICB0ciA9IGZuNChhciwgYnIsIGNyLCBkciwgZXIsIHdvcmRzW3pyW2ldXSwgaHJbMV0sIHNyW2ldKVxuICAgIH0gZWxzZSBpZiAoaSA8IDQ4KSB7XG4gICAgICB0bCA9IGZuMyhhbCwgYmwsIGNsLCBkbCwgZWwsIHdvcmRzW3psW2ldXSwgaGxbMl0sIHNsW2ldKVxuICAgICAgdHIgPSBmbjMoYXIsIGJyLCBjciwgZHIsIGVyLCB3b3Jkc1t6cltpXV0sIGhyWzJdLCBzcltpXSlcbiAgICB9IGVsc2UgaWYgKGkgPCA2NCkge1xuICAgICAgdGwgPSBmbjQoYWwsIGJsLCBjbCwgZGwsIGVsLCB3b3Jkc1t6bFtpXV0sIGhsWzNdLCBzbFtpXSlcbiAgICAgIHRyID0gZm4yKGFyLCBiciwgY3IsIGRyLCBlciwgd29yZHNbenJbaV1dLCBoclszXSwgc3JbaV0pXG4gICAgfSBlbHNlIHsgLy8gaWYgKGk8ODApIHtcbiAgICAgIHRsID0gZm41KGFsLCBibCwgY2wsIGRsLCBlbCwgd29yZHNbemxbaV1dLCBobFs0XSwgc2xbaV0pXG4gICAgICB0ciA9IGZuMShhciwgYnIsIGNyLCBkciwgZXIsIHdvcmRzW3pyW2ldXSwgaHJbNF0sIHNyW2ldKVxuICAgIH1cblxuICAgIGFsID0gZWxcbiAgICBlbCA9IGRsXG4gICAgZGwgPSByb3RsKGNsLCAxMClcbiAgICBjbCA9IGJsXG4gICAgYmwgPSB0bFxuXG4gICAgYXIgPSBlclxuICAgIGVyID0gZHJcbiAgICBkciA9IHJvdGwoY3IsIDEwKVxuICAgIGNyID0gYnJcbiAgICBiciA9IHRyXG4gIH1cblxuICAvLyB1cGRhdGUgc3RhdGVcbiAgdmFyIHQgPSAodGhpcy5fYiArIGNsICsgZHIpIHwgMFxuICB0aGlzLl9iID0gKHRoaXMuX2MgKyBkbCArIGVyKSB8IDBcbiAgdGhpcy5fYyA9ICh0aGlzLl9kICsgZWwgKyBhcikgfCAwXG4gIHRoaXMuX2QgPSAodGhpcy5fZSArIGFsICsgYnIpIHwgMFxuICB0aGlzLl9lID0gKHRoaXMuX2EgKyBibCArIGNyKSB8IDBcbiAgdGhpcy5fYSA9IHRcbn1cblxuUklQRU1EMTYwLnByb3RvdHlwZS5fZGlnZXN0ID0gZnVuY3Rpb24gKCkge1xuICAvLyBjcmVhdGUgcGFkZGluZyBhbmQgaGFuZGxlIGJsb2Nrc1xuICB0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXSA9IDB4ODBcbiAgaWYgKHRoaXMuX2Jsb2NrT2Zmc2V0ID4gNTYpIHtcbiAgICB0aGlzLl9ibG9jay5maWxsKDAsIHRoaXMuX2Jsb2NrT2Zmc2V0LCA2NClcbiAgICB0aGlzLl91cGRhdGUoKVxuICAgIHRoaXMuX2Jsb2NrT2Zmc2V0ID0gMFxuICB9XG5cbiAgdGhpcy5fYmxvY2suZmlsbCgwLCB0aGlzLl9ibG9ja09mZnNldCwgNTYpXG4gIHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLCA1NilcbiAgdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sIDYwKVxuICB0aGlzLl91cGRhdGUoKVxuXG4gIC8vIHByb2R1Y2UgcmVzdWx0XG4gIHZhciBidWZmZXIgPSBCdWZmZXIuYWxsb2MgPyBCdWZmZXIuYWxsb2MoMjApIDogbmV3IEJ1ZmZlcigyMClcbiAgYnVmZmVyLndyaXRlSW50MzJMRSh0aGlzLl9hLCAwKVxuICBidWZmZXIud3JpdGVJbnQzMkxFKHRoaXMuX2IsIDQpXG4gIGJ1ZmZlci53cml0ZUludDMyTEUodGhpcy5fYywgOClcbiAgYnVmZmVyLndyaXRlSW50MzJMRSh0aGlzLl9kLCAxMilcbiAgYnVmZmVyLndyaXRlSW50MzJMRSh0aGlzLl9lLCAxNilcbiAgcmV0dXJuIGJ1ZmZlclxufVxuXG5mdW5jdGlvbiByb3RsICh4LCBuKSB7XG4gIHJldHVybiAoeCA8PCBuKSB8ICh4ID4+PiAoMzIgLSBuKSlcbn1cblxuZnVuY3Rpb24gZm4xIChhLCBiLCBjLCBkLCBlLCBtLCBrLCBzKSB7XG4gIHJldHVybiAocm90bCgoYSArIChiIF4gYyBeIGQpICsgbSArIGspIHwgMCwgcykgKyBlKSB8IDBcbn1cblxuZnVuY3Rpb24gZm4yIChhLCBiLCBjLCBkLCBlLCBtLCBrLCBzKSB7XG4gIHJldHVybiAocm90bCgoYSArICgoYiAmIGMpIHwgKCh+YikgJiBkKSkgKyBtICsgaykgfCAwLCBzKSArIGUpIHwgMFxufVxuXG5mdW5jdGlvbiBmbjMgKGEsIGIsIGMsIGQsIGUsIG0sIGssIHMpIHtcbiAgcmV0dXJuIChyb3RsKChhICsgKChiIHwgKH5jKSkgXiBkKSArIG0gKyBrKSB8IDAsIHMpICsgZSkgfCAwXG59XG5cbmZ1bmN0aW9uIGZuNCAoYSwgYiwgYywgZCwgZSwgbSwgaywgcykge1xuICByZXR1cm4gKHJvdGwoKGEgKyAoKGIgJiBkKSB8IChjICYgKH5kKSkpICsgbSArIGspIHwgMCwgcykgKyBlKSB8IDBcbn1cblxuZnVuY3Rpb24gZm41IChhLCBiLCBjLCBkLCBlLCBtLCBrLCBzKSB7XG4gIHJldHVybiAocm90bCgoYSArIChiIF4gKGMgfCAofmQpKSkgKyBtICsgaykgfCAwLCBzKSArIGUpIHwgMFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJJUEVNRDE2MFxuIiwiLyogZXNsaW50LWRpc2FibGUgbm9kZS9uby1kZXByZWNhdGVkLWFwaSAqL1xudmFyIGJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlcicpXG52YXIgQnVmZmVyID0gYnVmZmVyLkJ1ZmZlclxuXG4vLyBhbHRlcm5hdGl2ZSB0byB1c2luZyBPYmplY3Qua2V5cyBmb3Igb2xkIGJyb3dzZXJzXG5mdW5jdGlvbiBjb3B5UHJvcHMgKHNyYywgZHN0KSB7XG4gIGZvciAodmFyIGtleSBpbiBzcmMpIHtcbiAgICBkc3Rba2V5XSA9IHNyY1trZXldXG4gIH1cbn1cbmlmIChCdWZmZXIuZnJvbSAmJiBCdWZmZXIuYWxsb2MgJiYgQnVmZmVyLmFsbG9jVW5zYWZlICYmIEJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3cpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBidWZmZXJcbn0gZWxzZSB7XG4gIC8vIENvcHkgcHJvcGVydGllcyBmcm9tIHJlcXVpcmUoJ2J1ZmZlcicpXG4gIGNvcHlQcm9wcyhidWZmZXIsIGV4cG9ydHMpXG4gIGV4cG9ydHMuQnVmZmVyID0gU2FmZUJ1ZmZlclxufVxuXG5mdW5jdGlvbiBTYWZlQnVmZmVyIChhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gQnVmZmVyKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKVxufVxuXG4vLyBDb3B5IHN0YXRpYyBtZXRob2RzIGZyb20gQnVmZmVyXG5jb3B5UHJvcHMoQnVmZmVyLCBTYWZlQnVmZmVyKVxuXG5TYWZlQnVmZmVyLmZyb20gPSBmdW5jdGlvbiAoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKVxuICB9XG4gIHJldHVybiBCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cblNhZmVCdWZmZXIuYWxsb2MgPSBmdW5jdGlvbiAoc2l6ZSwgZmlsbCwgZW5jb2RpbmcpIHtcbiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKVxuICB9XG4gIHZhciBidWYgPSBCdWZmZXIoc2l6ZSlcbiAgaWYgKGZpbGwgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICBidWYuZmlsbChmaWxsLCBlbmNvZGluZylcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmLmZpbGwoZmlsbClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYnVmLmZpbGwoMClcbiAgfVxuICByZXR1cm4gYnVmXG59XG5cblNhZmVCdWZmZXIuYWxsb2NVbnNhZmUgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICBpZiAodHlwZW9mIHNpemUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH1cbiAgcmV0dXJuIEJ1ZmZlcihzaXplKVxufVxuXG5TYWZlQnVmZmVyLmFsbG9jVW5zYWZlU2xvdyA9IGZ1bmN0aW9uIChzaXplKSB7XG4gIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJylcbiAgfVxuICByZXR1cm4gYnVmZmVyLlNsb3dCdWZmZXIoc2l6ZSlcbn1cbiIsInZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG4vLyBwcm90b3R5cGUgY2xhc3MgZm9yIGhhc2ggZnVuY3Rpb25zXG5mdW5jdGlvbiBIYXNoIChibG9ja1NpemUsIGZpbmFsU2l6ZSkge1xuICB0aGlzLl9ibG9jayA9IEJ1ZmZlci5hbGxvYyhibG9ja1NpemUpXG4gIHRoaXMuX2ZpbmFsU2l6ZSA9IGZpbmFsU2l6ZVxuICB0aGlzLl9ibG9ja1NpemUgPSBibG9ja1NpemVcbiAgdGhpcy5fbGVuID0gMFxufVxuXG5IYXNoLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSwgZW5jKSB7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmMgPSBlbmMgfHwgJ3V0ZjgnXG4gICAgZGF0YSA9IEJ1ZmZlci5mcm9tKGRhdGEsIGVuYylcbiAgfVxuXG4gIHZhciBibG9jayA9IHRoaXMuX2Jsb2NrXG4gIHZhciBibG9ja1NpemUgPSB0aGlzLl9ibG9ja1NpemVcbiAgdmFyIGxlbmd0aCA9IGRhdGEubGVuZ3RoXG4gIHZhciBhY2N1bSA9IHRoaXMuX2xlblxuXG4gIGZvciAodmFyIG9mZnNldCA9IDA7IG9mZnNldCA8IGxlbmd0aDspIHtcbiAgICB2YXIgYXNzaWduZWQgPSBhY2N1bSAlIGJsb2NrU2l6ZVxuICAgIHZhciByZW1haW5kZXIgPSBNYXRoLm1pbihsZW5ndGggLSBvZmZzZXQsIGJsb2NrU2l6ZSAtIGFzc2lnbmVkKVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZW1haW5kZXI7IGkrKykge1xuICAgICAgYmxvY2tbYXNzaWduZWQgKyBpXSA9IGRhdGFbb2Zmc2V0ICsgaV1cbiAgICB9XG5cbiAgICBhY2N1bSArPSByZW1haW5kZXJcbiAgICBvZmZzZXQgKz0gcmVtYWluZGVyXG5cbiAgICBpZiAoKGFjY3VtICUgYmxvY2tTaXplKSA9PT0gMCkge1xuICAgICAgdGhpcy5fdXBkYXRlKGJsb2NrKVxuICAgIH1cbiAgfVxuXG4gIHRoaXMuX2xlbiArPSBsZW5ndGhcbiAgcmV0dXJuIHRoaXNcbn1cblxuSGFzaC5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKGVuYykge1xuICB2YXIgcmVtID0gdGhpcy5fbGVuICUgdGhpcy5fYmxvY2tTaXplXG5cbiAgdGhpcy5fYmxvY2tbcmVtXSA9IDB4ODBcblxuICAvLyB6ZXJvIChyZW0gKyAxKSB0cmFpbGluZyBiaXRzLCB3aGVyZSAocmVtICsgMSkgaXMgdGhlIHNtYWxsZXN0XG4gIC8vIG5vbi1uZWdhdGl2ZSBzb2x1dGlvbiB0byB0aGUgZXF1YXRpb24gKGxlbmd0aCArIDEgKyAocmVtICsgMSkpID09PSBmaW5hbFNpemUgbW9kIGJsb2NrU2l6ZVxuICB0aGlzLl9ibG9jay5maWxsKDAsIHJlbSArIDEpXG5cbiAgaWYgKHJlbSA+PSB0aGlzLl9maW5hbFNpemUpIHtcbiAgICB0aGlzLl91cGRhdGUodGhpcy5fYmxvY2spXG4gICAgdGhpcy5fYmxvY2suZmlsbCgwKVxuICB9XG5cbiAgdmFyIGJpdHMgPSB0aGlzLl9sZW4gKiA4XG5cbiAgLy8gdWludDMyXG4gIGlmIChiaXRzIDw9IDB4ZmZmZmZmZmYpIHtcbiAgICB0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKGJpdHMsIHRoaXMuX2Jsb2NrU2l6ZSAtIDQpXG5cbiAgLy8gdWludDY0XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxvd0JpdHMgPSAoYml0cyAmIDB4ZmZmZmZmZmYpID4+PiAwXG4gICAgdmFyIGhpZ2hCaXRzID0gKGJpdHMgLSBsb3dCaXRzKSAvIDB4MTAwMDAwMDAwXG5cbiAgICB0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKGhpZ2hCaXRzLCB0aGlzLl9ibG9ja1NpemUgLSA4KVxuICAgIHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUobG93Qml0cywgdGhpcy5fYmxvY2tTaXplIC0gNClcbiAgfVxuXG4gIHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jaylcbiAgdmFyIGhhc2ggPSB0aGlzLl9oYXNoKClcblxuICByZXR1cm4gZW5jID8gaGFzaC50b1N0cmluZyhlbmMpIDogaGFzaFxufVxuXG5IYXNoLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ191cGRhdGUgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzcycpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gSGFzaFxuIiwidmFyIGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIFNIQSAoYWxnb3JpdGhtKSB7XG4gIGFsZ29yaXRobSA9IGFsZ29yaXRobS50b0xvd2VyQ2FzZSgpXG5cbiAgdmFyIEFsZ29yaXRobSA9IGV4cG9ydHNbYWxnb3JpdGhtXVxuICBpZiAoIUFsZ29yaXRobSkgdGhyb3cgbmV3IEVycm9yKGFsZ29yaXRobSArICcgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMpJylcblxuICByZXR1cm4gbmV3IEFsZ29yaXRobSgpXG59XG5cbmV4cG9ydHMuc2hhID0gcmVxdWlyZSgnLi9zaGEnKVxuZXhwb3J0cy5zaGExID0gcmVxdWlyZSgnLi9zaGExJylcbmV4cG9ydHMuc2hhMjI0ID0gcmVxdWlyZSgnLi9zaGEyMjQnKVxuZXhwb3J0cy5zaGEyNTYgPSByZXF1aXJlKCcuL3NoYTI1NicpXG5leHBvcnRzLnNoYTM4NCA9IHJlcXVpcmUoJy4vc2hhMzg0JylcbmV4cG9ydHMuc2hhNTEyID0gcmVxdWlyZSgnLi9zaGE1MTInKVxuIiwiLypcbiAqIEEgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtLCBTSEEtMCwgYXMgZGVmaW5lZFxuICogaW4gRklQUyBQVUIgMTgwLTFcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNoYTEuanMgb2YgdGhlIHNhbWUgcmVwb3NpdG9yeS5cbiAqIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gU0hBLTAgYW5kIFNIQS0xIGlzIGp1c3QgYSBiaXR3aXNlIHJvdGF0ZSBsZWZ0XG4gKiBvcGVyYXRpb24gd2FzIGFkZGVkLlxuICovXG5cbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBIYXNoID0gcmVxdWlyZSgnLi9oYXNoJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG52YXIgSyA9IFtcbiAgMHg1YTgyNzk5OSwgMHg2ZWQ5ZWJhMSwgMHg4ZjFiYmNkYyB8IDAsIDB4Y2E2MmMxZDYgfCAwXG5dXG5cbnZhciBXID0gbmV3IEFycmF5KDgwKVxuXG5mdW5jdGlvbiBTaGEgKCkge1xuICB0aGlzLmluaXQoKVxuICB0aGlzLl93ID0gV1xuXG4gIEhhc2guY2FsbCh0aGlzLCA2NCwgNTYpXG59XG5cbmluaGVyaXRzKFNoYSwgSGFzaClcblxuU2hhLnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLl9hID0gMHg2NzQ1MjMwMVxuICB0aGlzLl9iID0gMHhlZmNkYWI4OVxuICB0aGlzLl9jID0gMHg5OGJhZGNmZVxuICB0aGlzLl9kID0gMHgxMDMyNTQ3NlxuICB0aGlzLl9lID0gMHhjM2QyZTFmMFxuXG4gIHJldHVybiB0aGlzXG59XG5cbmZ1bmN0aW9uIHJvdGw1IChudW0pIHtcbiAgcmV0dXJuIChudW0gPDwgNSkgfCAobnVtID4+PiAyNylcbn1cblxuZnVuY3Rpb24gcm90bDMwIChudW0pIHtcbiAgcmV0dXJuIChudW0gPDwgMzApIHwgKG51bSA+Pj4gMilcbn1cblxuZnVuY3Rpb24gZnQgKHMsIGIsIGMsIGQpIHtcbiAgaWYgKHMgPT09IDApIHJldHVybiAoYiAmIGMpIHwgKCh+YikgJiBkKVxuICBpZiAocyA9PT0gMikgcmV0dXJuIChiICYgYykgfCAoYiAmIGQpIHwgKGMgJiBkKVxuICByZXR1cm4gYiBeIGMgXiBkXG59XG5cblNoYS5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChNKSB7XG4gIHZhciBXID0gdGhpcy5fd1xuXG4gIHZhciBhID0gdGhpcy5fYSB8IDBcbiAgdmFyIGIgPSB0aGlzLl9iIHwgMFxuICB2YXIgYyA9IHRoaXMuX2MgfCAwXG4gIHZhciBkID0gdGhpcy5fZCB8IDBcbiAgdmFyIGUgPSB0aGlzLl9lIHwgMFxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7ICsraSkgV1tpXSA9IE0ucmVhZEludDMyQkUoaSAqIDQpXG4gIGZvciAoOyBpIDwgODA7ICsraSkgV1tpXSA9IFdbaSAtIDNdIF4gV1tpIC0gOF0gXiBXW2kgLSAxNF0gXiBXW2kgLSAxNl1cblxuICBmb3IgKHZhciBqID0gMDsgaiA8IDgwOyArK2opIHtcbiAgICB2YXIgcyA9IH5+KGogLyAyMClcbiAgICB2YXIgdCA9IChyb3RsNShhKSArIGZ0KHMsIGIsIGMsIGQpICsgZSArIFdbal0gKyBLW3NdKSB8IDBcblxuICAgIGUgPSBkXG4gICAgZCA9IGNcbiAgICBjID0gcm90bDMwKGIpXG4gICAgYiA9IGFcbiAgICBhID0gdFxuICB9XG5cbiAgdGhpcy5fYSA9IChhICsgdGhpcy5fYSkgfCAwXG4gIHRoaXMuX2IgPSAoYiArIHRoaXMuX2IpIHwgMFxuICB0aGlzLl9jID0gKGMgKyB0aGlzLl9jKSB8IDBcbiAgdGhpcy5fZCA9IChkICsgdGhpcy5fZCkgfCAwXG4gIHRoaXMuX2UgPSAoZSArIHRoaXMuX2UpIHwgMFxufVxuXG5TaGEucHJvdG90eXBlLl9oYXNoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgSCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyMClcblxuICBILndyaXRlSW50MzJCRSh0aGlzLl9hIHwgMCwgMClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fYiB8IDAsIDQpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2MgfCAwLCA4KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9kIHwgMCwgMTIpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2UgfCAwLCAxNilcblxuICByZXR1cm4gSFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFNoYVxuIiwiLypcbiAqIEEgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtLCBTSEEtMSwgYXMgZGVmaW5lZFxuICogaW4gRklQUyBQVUIgMTgwLTFcbiAqIFZlcnNpb24gMi4xYSBDb3B5cmlnaHQgUGF1bCBKb2huc3RvbiAyMDAwIC0gMjAwMi5cbiAqIE90aGVyIGNvbnRyaWJ1dG9yczogR3JlZyBIb2x0LCBBbmRyZXcgS2VwZXJ0LCBZZG5hciwgTG9zdGluZXRcbiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCU0QgTGljZW5zZVxuICogU2VlIGh0dHA6Ly9wYWpob21lLm9yZy51ay9jcnlwdC9tZDUgZm9yIGRldGFpbHMuXG4gKi9cblxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBLID0gW1xuICAweDVhODI3OTk5LCAweDZlZDllYmExLCAweDhmMWJiY2RjIHwgMCwgMHhjYTYyYzFkNiB8IDBcbl1cblxudmFyIFcgPSBuZXcgQXJyYXkoODApXG5cbmZ1bmN0aW9uIFNoYTEgKCkge1xuICB0aGlzLmluaXQoKVxuICB0aGlzLl93ID0gV1xuXG4gIEhhc2guY2FsbCh0aGlzLCA2NCwgNTYpXG59XG5cbmluaGVyaXRzKFNoYTEsIEhhc2gpXG5cblNoYTEucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2EgPSAweDY3NDUyMzAxXG4gIHRoaXMuX2IgPSAweGVmY2RhYjg5XG4gIHRoaXMuX2MgPSAweDk4YmFkY2ZlXG4gIHRoaXMuX2QgPSAweDEwMzI1NDc2XG4gIHRoaXMuX2UgPSAweGMzZDJlMWYwXG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuZnVuY3Rpb24gcm90bDEgKG51bSkge1xuICByZXR1cm4gKG51bSA8PCAxKSB8IChudW0gPj4+IDMxKVxufVxuXG5mdW5jdGlvbiByb3RsNSAobnVtKSB7XG4gIHJldHVybiAobnVtIDw8IDUpIHwgKG51bSA+Pj4gMjcpXG59XG5cbmZ1bmN0aW9uIHJvdGwzMCAobnVtKSB7XG4gIHJldHVybiAobnVtIDw8IDMwKSB8IChudW0gPj4+IDIpXG59XG5cbmZ1bmN0aW9uIGZ0IChzLCBiLCBjLCBkKSB7XG4gIGlmIChzID09PSAwKSByZXR1cm4gKGIgJiBjKSB8ICgofmIpICYgZClcbiAgaWYgKHMgPT09IDIpIHJldHVybiAoYiAmIGMpIHwgKGIgJiBkKSB8IChjICYgZClcbiAgcmV0dXJuIGIgXiBjIF4gZFxufVxuXG5TaGExLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKE0pIHtcbiAgdmFyIFcgPSB0aGlzLl93XG5cbiAgdmFyIGEgPSB0aGlzLl9hIHwgMFxuICB2YXIgYiA9IHRoaXMuX2IgfCAwXG4gIHZhciBjID0gdGhpcy5fYyB8IDBcbiAgdmFyIGQgPSB0aGlzLl9kIHwgMFxuICB2YXIgZSA9IHRoaXMuX2UgfCAwXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgKytpKSBXW2ldID0gTS5yZWFkSW50MzJCRShpICogNClcbiAgZm9yICg7IGkgPCA4MDsgKytpKSBXW2ldID0gcm90bDEoV1tpIC0gM10gXiBXW2kgLSA4XSBeIFdbaSAtIDE0XSBeIFdbaSAtIDE2XSlcblxuICBmb3IgKHZhciBqID0gMDsgaiA8IDgwOyArK2opIHtcbiAgICB2YXIgcyA9IH5+KGogLyAyMClcbiAgICB2YXIgdCA9IChyb3RsNShhKSArIGZ0KHMsIGIsIGMsIGQpICsgZSArIFdbal0gKyBLW3NdKSB8IDBcblxuICAgIGUgPSBkXG4gICAgZCA9IGNcbiAgICBjID0gcm90bDMwKGIpXG4gICAgYiA9IGFcbiAgICBhID0gdFxuICB9XG5cbiAgdGhpcy5fYSA9IChhICsgdGhpcy5fYSkgfCAwXG4gIHRoaXMuX2IgPSAoYiArIHRoaXMuX2IpIHwgMFxuICB0aGlzLl9jID0gKGMgKyB0aGlzLl9jKSB8IDBcbiAgdGhpcy5fZCA9IChkICsgdGhpcy5fZCkgfCAwXG4gIHRoaXMuX2UgPSAoZSArIHRoaXMuX2UpIHwgMFxufVxuXG5TaGExLnByb3RvdHlwZS5faGFzaCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIEggPSBCdWZmZXIuYWxsb2NVbnNhZmUoMjApXG5cbiAgSC53cml0ZUludDMyQkUodGhpcy5fYSB8IDAsIDApXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2IgfCAwLCA0KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9jIHwgMCwgOClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZCB8IDAsIDEyKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9lIHwgMCwgMTYpXG5cbiAgcmV0dXJuIEhcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTaGExXG4iLCIvKipcbiAqIEEgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtLCBTSEEtMjU2LCBhcyBkZWZpbmVkXG4gKiBpbiBGSVBTIDE4MC0yXG4gKiBWZXJzaW9uIDIuMi1iZXRhIENvcHlyaWdodCBBbmdlbCBNYXJpbiwgUGF1bCBKb2huc3RvbiAyMDAwIC0gMjAwOS5cbiAqIE90aGVyIGNvbnRyaWJ1dG9yczogR3JlZyBIb2x0LCBBbmRyZXcgS2VwZXJ0LCBZZG5hciwgTG9zdGluZXRcbiAqXG4gKi9cblxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIFNoYTI1NiA9IHJlcXVpcmUoJy4vc2hhMjU2JylcbnZhciBIYXNoID0gcmVxdWlyZSgnLi9oYXNoJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG52YXIgVyA9IG5ldyBBcnJheSg2NClcblxuZnVuY3Rpb24gU2hhMjI0ICgpIHtcbiAgdGhpcy5pbml0KClcblxuICB0aGlzLl93ID0gVyAvLyBuZXcgQXJyYXkoNjQpXG5cbiAgSGFzaC5jYWxsKHRoaXMsIDY0LCA1Nilcbn1cblxuaW5oZXJpdHMoU2hhMjI0LCBTaGEyNTYpXG5cblNoYTIyNC5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5fYSA9IDB4YzEwNTllZDhcbiAgdGhpcy5fYiA9IDB4MzY3Y2Q1MDdcbiAgdGhpcy5fYyA9IDB4MzA3MGRkMTdcbiAgdGhpcy5fZCA9IDB4ZjcwZTU5MzlcbiAgdGhpcy5fZSA9IDB4ZmZjMDBiMzFcbiAgdGhpcy5fZiA9IDB4Njg1ODE1MTFcbiAgdGhpcy5fZyA9IDB4NjRmOThmYTdcbiAgdGhpcy5faCA9IDB4YmVmYTRmYTRcblxuICByZXR1cm4gdGhpc1xufVxuXG5TaGEyMjQucHJvdG90eXBlLl9oYXNoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgSCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyOClcblxuICBILndyaXRlSW50MzJCRSh0aGlzLl9hLCAwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9iLCA0KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9jLCA4KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9kLCAxMilcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZSwgMTYpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2YsIDIwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9nLCAyNClcblxuICByZXR1cm4gSFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFNoYTIyNFxuIiwiLyoqXG4gKiBBIEphdmFTY3JpcHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNlY3VyZSBIYXNoIEFsZ29yaXRobSwgU0hBLTI1NiwgYXMgZGVmaW5lZFxuICogaW4gRklQUyAxODAtMlxuICogVmVyc2lvbiAyLjItYmV0YSBDb3B5cmlnaHQgQW5nZWwgTWFyaW4sIFBhdWwgSm9obnN0b24gMjAwMCAtIDIwMDkuXG4gKiBPdGhlciBjb250cmlidXRvcnM6IEdyZWcgSG9sdCwgQW5kcmV3IEtlcGVydCwgWWRuYXIsIExvc3RpbmV0XG4gKlxuICovXG5cbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBIYXNoID0gcmVxdWlyZSgnLi9oYXNoJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG52YXIgSyA9IFtcbiAgMHg0MjhBMkY5OCwgMHg3MTM3NDQ5MSwgMHhCNUMwRkJDRiwgMHhFOUI1REJBNSxcbiAgMHgzOTU2QzI1QiwgMHg1OUYxMTFGMSwgMHg5MjNGODJBNCwgMHhBQjFDNUVENSxcbiAgMHhEODA3QUE5OCwgMHgxMjgzNUIwMSwgMHgyNDMxODVCRSwgMHg1NTBDN0RDMyxcbiAgMHg3MkJFNUQ3NCwgMHg4MERFQjFGRSwgMHg5QkRDMDZBNywgMHhDMTlCRjE3NCxcbiAgMHhFNDlCNjlDMSwgMHhFRkJFNDc4NiwgMHgwRkMxOURDNiwgMHgyNDBDQTFDQyxcbiAgMHgyREU5MkM2RiwgMHg0QTc0ODRBQSwgMHg1Q0IwQTlEQywgMHg3NkY5ODhEQSxcbiAgMHg5ODNFNTE1MiwgMHhBODMxQzY2RCwgMHhCMDAzMjdDOCwgMHhCRjU5N0ZDNyxcbiAgMHhDNkUwMEJGMywgMHhENUE3OTE0NywgMHgwNkNBNjM1MSwgMHgxNDI5Mjk2NyxcbiAgMHgyN0I3MEE4NSwgMHgyRTFCMjEzOCwgMHg0RDJDNkRGQywgMHg1MzM4MEQxMyxcbiAgMHg2NTBBNzM1NCwgMHg3NjZBMEFCQiwgMHg4MUMyQzkyRSwgMHg5MjcyMkM4NSxcbiAgMHhBMkJGRThBMSwgMHhBODFBNjY0QiwgMHhDMjRCOEI3MCwgMHhDNzZDNTFBMyxcbiAgMHhEMTkyRTgxOSwgMHhENjk5MDYyNCwgMHhGNDBFMzU4NSwgMHgxMDZBQTA3MCxcbiAgMHgxOUE0QzExNiwgMHgxRTM3NkMwOCwgMHgyNzQ4Nzc0QywgMHgzNEIwQkNCNSxcbiAgMHgzOTFDMENCMywgMHg0RUQ4QUE0QSwgMHg1QjlDQ0E0RiwgMHg2ODJFNkZGMyxcbiAgMHg3NDhGODJFRSwgMHg3OEE1NjM2RiwgMHg4NEM4NzgxNCwgMHg4Q0M3MDIwOCxcbiAgMHg5MEJFRkZGQSwgMHhBNDUwNkNFQiwgMHhCRUY5QTNGNywgMHhDNjcxNzhGMlxuXVxuXG52YXIgVyA9IG5ldyBBcnJheSg2NClcblxuZnVuY3Rpb24gU2hhMjU2ICgpIHtcbiAgdGhpcy5pbml0KClcblxuICB0aGlzLl93ID0gVyAvLyBuZXcgQXJyYXkoNjQpXG5cbiAgSGFzaC5jYWxsKHRoaXMsIDY0LCA1Nilcbn1cblxuaW5oZXJpdHMoU2hhMjU2LCBIYXNoKVxuXG5TaGEyNTYucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2EgPSAweDZhMDllNjY3XG4gIHRoaXMuX2IgPSAweGJiNjdhZTg1XG4gIHRoaXMuX2MgPSAweDNjNmVmMzcyXG4gIHRoaXMuX2QgPSAweGE1NGZmNTNhXG4gIHRoaXMuX2UgPSAweDUxMGU1MjdmXG4gIHRoaXMuX2YgPSAweDliMDU2ODhjXG4gIHRoaXMuX2cgPSAweDFmODNkOWFiXG4gIHRoaXMuX2ggPSAweDViZTBjZDE5XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuZnVuY3Rpb24gY2ggKHgsIHksIHopIHtcbiAgcmV0dXJuIHogXiAoeCAmICh5IF4geikpXG59XG5cbmZ1bmN0aW9uIG1haiAoeCwgeSwgeikge1xuICByZXR1cm4gKHggJiB5KSB8ICh6ICYgKHggfCB5KSlcbn1cblxuZnVuY3Rpb24gc2lnbWEwICh4KSB7XG4gIHJldHVybiAoeCA+Pj4gMiB8IHggPDwgMzApIF4gKHggPj4+IDEzIHwgeCA8PCAxOSkgXiAoeCA+Pj4gMjIgfCB4IDw8IDEwKVxufVxuXG5mdW5jdGlvbiBzaWdtYTEgKHgpIHtcbiAgcmV0dXJuICh4ID4+PiA2IHwgeCA8PCAyNikgXiAoeCA+Pj4gMTEgfCB4IDw8IDIxKSBeICh4ID4+PiAyNSB8IHggPDwgNylcbn1cblxuZnVuY3Rpb24gZ2FtbWEwICh4KSB7XG4gIHJldHVybiAoeCA+Pj4gNyB8IHggPDwgMjUpIF4gKHggPj4+IDE4IHwgeCA8PCAxNCkgXiAoeCA+Pj4gMylcbn1cblxuZnVuY3Rpb24gZ2FtbWExICh4KSB7XG4gIHJldHVybiAoeCA+Pj4gMTcgfCB4IDw8IDE1KSBeICh4ID4+PiAxOSB8IHggPDwgMTMpIF4gKHggPj4+IDEwKVxufVxuXG5TaGEyNTYucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoTSkge1xuICB2YXIgVyA9IHRoaXMuX3dcblxuICB2YXIgYSA9IHRoaXMuX2EgfCAwXG4gIHZhciBiID0gdGhpcy5fYiB8IDBcbiAgdmFyIGMgPSB0aGlzLl9jIHwgMFxuICB2YXIgZCA9IHRoaXMuX2QgfCAwXG4gIHZhciBlID0gdGhpcy5fZSB8IDBcbiAgdmFyIGYgPSB0aGlzLl9mIHwgMFxuICB2YXIgZyA9IHRoaXMuX2cgfCAwXG4gIHZhciBoID0gdGhpcy5faCB8IDBcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IDE2OyArK2kpIFdbaV0gPSBNLnJlYWRJbnQzMkJFKGkgKiA0KVxuICBmb3IgKDsgaSA8IDY0OyArK2kpIFdbaV0gPSAoZ2FtbWExKFdbaSAtIDJdKSArIFdbaSAtIDddICsgZ2FtbWEwKFdbaSAtIDE1XSkgKyBXW2kgLSAxNl0pIHwgMFxuXG4gIGZvciAodmFyIGogPSAwOyBqIDwgNjQ7ICsraikge1xuICAgIHZhciBUMSA9IChoICsgc2lnbWExKGUpICsgY2goZSwgZiwgZykgKyBLW2pdICsgV1tqXSkgfCAwXG4gICAgdmFyIFQyID0gKHNpZ21hMChhKSArIG1haihhLCBiLCBjKSkgfCAwXG5cbiAgICBoID0gZ1xuICAgIGcgPSBmXG4gICAgZiA9IGVcbiAgICBlID0gKGQgKyBUMSkgfCAwXG4gICAgZCA9IGNcbiAgICBjID0gYlxuICAgIGIgPSBhXG4gICAgYSA9IChUMSArIFQyKSB8IDBcbiAgfVxuXG4gIHRoaXMuX2EgPSAoYSArIHRoaXMuX2EpIHwgMFxuICB0aGlzLl9iID0gKGIgKyB0aGlzLl9iKSB8IDBcbiAgdGhpcy5fYyA9IChjICsgdGhpcy5fYykgfCAwXG4gIHRoaXMuX2QgPSAoZCArIHRoaXMuX2QpIHwgMFxuICB0aGlzLl9lID0gKGUgKyB0aGlzLl9lKSB8IDBcbiAgdGhpcy5fZiA9IChmICsgdGhpcy5fZikgfCAwXG4gIHRoaXMuX2cgPSAoZyArIHRoaXMuX2cpIHwgMFxuICB0aGlzLl9oID0gKGggKyB0aGlzLl9oKSB8IDBcbn1cblxuU2hhMjU2LnByb3RvdHlwZS5faGFzaCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIEggPSBCdWZmZXIuYWxsb2NVbnNhZmUoMzIpXG5cbiAgSC53cml0ZUludDMyQkUodGhpcy5fYSwgMClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fYiwgNClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fYywgOClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZCwgMTIpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2UsIDE2KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9mLCAyMClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZywgMjQpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2gsIDI4KVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhMjU2XG4iLCJ2YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgU0hBNTEyID0gcmVxdWlyZSgnLi9zaGE1MTInKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBXID0gbmV3IEFycmF5KDE2MClcblxuZnVuY3Rpb24gU2hhMzg0ICgpIHtcbiAgdGhpcy5pbml0KClcbiAgdGhpcy5fdyA9IFdcblxuICBIYXNoLmNhbGwodGhpcywgMTI4LCAxMTIpXG59XG5cbmluaGVyaXRzKFNoYTM4NCwgU0hBNTEyKVxuXG5TaGEzODQucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2FoID0gMHhjYmJiOWQ1ZFxuICB0aGlzLl9iaCA9IDB4NjI5YTI5MmFcbiAgdGhpcy5fY2ggPSAweDkxNTkwMTVhXG4gIHRoaXMuX2RoID0gMHgxNTJmZWNkOFxuICB0aGlzLl9laCA9IDB4NjczMzI2NjdcbiAgdGhpcy5fZmggPSAweDhlYjQ0YTg3XG4gIHRoaXMuX2doID0gMHhkYjBjMmUwZFxuICB0aGlzLl9oaCA9IDB4NDdiNTQ4MWRcblxuICB0aGlzLl9hbCA9IDB4YzEwNTllZDhcbiAgdGhpcy5fYmwgPSAweDM2N2NkNTA3XG4gIHRoaXMuX2NsID0gMHgzMDcwZGQxN1xuICB0aGlzLl9kbCA9IDB4ZjcwZTU5MzlcbiAgdGhpcy5fZWwgPSAweGZmYzAwYjMxXG4gIHRoaXMuX2ZsID0gMHg2ODU4MTUxMVxuICB0aGlzLl9nbCA9IDB4NjRmOThmYTdcbiAgdGhpcy5faGwgPSAweGJlZmE0ZmE0XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuU2hhMzg0LnByb3RvdHlwZS5faGFzaCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIEggPSBCdWZmZXIuYWxsb2NVbnNhZmUoNDgpXG5cbiAgZnVuY3Rpb24gd3JpdGVJbnQ2NEJFIChoLCBsLCBvZmZzZXQpIHtcbiAgICBILndyaXRlSW50MzJCRShoLCBvZmZzZXQpXG4gICAgSC53cml0ZUludDMyQkUobCwgb2Zmc2V0ICsgNClcbiAgfVxuXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9haCwgdGhpcy5fYWwsIDApXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9iaCwgdGhpcy5fYmwsIDgpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9jaCwgdGhpcy5fY2wsIDE2KVxuICB3cml0ZUludDY0QkUodGhpcy5fZGgsIHRoaXMuX2RsLCAyNClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2VoLCB0aGlzLl9lbCwgMzIpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9maCwgdGhpcy5fZmwsIDQwKVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhMzg0XG4iLCJ2YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgSGFzaCA9IHJlcXVpcmUoJy4vaGFzaCcpXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcblxudmFyIEsgPSBbXG4gIDB4NDI4YTJmOTgsIDB4ZDcyOGFlMjIsIDB4NzEzNzQ0OTEsIDB4MjNlZjY1Y2QsXG4gIDB4YjVjMGZiY2YsIDB4ZWM0ZDNiMmYsIDB4ZTliNWRiYTUsIDB4ODE4OWRiYmMsXG4gIDB4Mzk1NmMyNWIsIDB4ZjM0OGI1MzgsIDB4NTlmMTExZjEsIDB4YjYwNWQwMTksXG4gIDB4OTIzZjgyYTQsIDB4YWYxOTRmOWIsIDB4YWIxYzVlZDUsIDB4ZGE2ZDgxMTgsXG4gIDB4ZDgwN2FhOTgsIDB4YTMwMzAyNDIsIDB4MTI4MzViMDEsIDB4NDU3MDZmYmUsXG4gIDB4MjQzMTg1YmUsIDB4NGVlNGIyOGMsIDB4NTUwYzdkYzMsIDB4ZDVmZmI0ZTIsXG4gIDB4NzJiZTVkNzQsIDB4ZjI3Yjg5NmYsIDB4ODBkZWIxZmUsIDB4M2IxNjk2YjEsXG4gIDB4OWJkYzA2YTcsIDB4MjVjNzEyMzUsIDB4YzE5YmYxNzQsIDB4Y2Y2OTI2OTQsXG4gIDB4ZTQ5YjY5YzEsIDB4OWVmMTRhZDIsIDB4ZWZiZTQ3ODYsIDB4Mzg0ZjI1ZTMsXG4gIDB4MGZjMTlkYzYsIDB4OGI4Y2Q1YjUsIDB4MjQwY2ExY2MsIDB4NzdhYzljNjUsXG4gIDB4MmRlOTJjNmYsIDB4NTkyYjAyNzUsIDB4NGE3NDg0YWEsIDB4NmVhNmU0ODMsXG4gIDB4NWNiMGE5ZGMsIDB4YmQ0MWZiZDQsIDB4NzZmOTg4ZGEsIDB4ODMxMTUzYjUsXG4gIDB4OTgzZTUxNTIsIDB4ZWU2NmRmYWIsIDB4YTgzMWM2NmQsIDB4MmRiNDMyMTAsXG4gIDB4YjAwMzI3YzgsIDB4OThmYjIxM2YsIDB4YmY1OTdmYzcsIDB4YmVlZjBlZTQsXG4gIDB4YzZlMDBiZjMsIDB4M2RhODhmYzIsIDB4ZDVhNzkxNDcsIDB4OTMwYWE3MjUsXG4gIDB4MDZjYTYzNTEsIDB4ZTAwMzgyNmYsIDB4MTQyOTI5NjcsIDB4MGEwZTZlNzAsXG4gIDB4MjdiNzBhODUsIDB4NDZkMjJmZmMsIDB4MmUxYjIxMzgsIDB4NWMyNmM5MjYsXG4gIDB4NGQyYzZkZmMsIDB4NWFjNDJhZWQsIDB4NTMzODBkMTMsIDB4OWQ5NWIzZGYsXG4gIDB4NjUwYTczNTQsIDB4OGJhZjYzZGUsIDB4NzY2YTBhYmIsIDB4M2M3N2IyYTgsXG4gIDB4ODFjMmM5MmUsIDB4NDdlZGFlZTYsIDB4OTI3MjJjODUsIDB4MTQ4MjM1M2IsXG4gIDB4YTJiZmU4YTEsIDB4NGNmMTAzNjQsIDB4YTgxYTY2NGIsIDB4YmM0MjMwMDEsXG4gIDB4YzI0YjhiNzAsIDB4ZDBmODk3OTEsIDB4Yzc2YzUxYTMsIDB4MDY1NGJlMzAsXG4gIDB4ZDE5MmU4MTksIDB4ZDZlZjUyMTgsIDB4ZDY5OTA2MjQsIDB4NTU2NWE5MTAsXG4gIDB4ZjQwZTM1ODUsIDB4NTc3MTIwMmEsIDB4MTA2YWEwNzAsIDB4MzJiYmQxYjgsXG4gIDB4MTlhNGMxMTYsIDB4YjhkMmQwYzgsIDB4MWUzNzZjMDgsIDB4NTE0MWFiNTMsXG4gIDB4Mjc0ODc3NGMsIDB4ZGY4ZWViOTksIDB4MzRiMGJjYjUsIDB4ZTE5YjQ4YTgsXG4gIDB4MzkxYzBjYjMsIDB4YzVjOTVhNjMsIDB4NGVkOGFhNGEsIDB4ZTM0MThhY2IsXG4gIDB4NWI5Y2NhNGYsIDB4Nzc2M2UzNzMsIDB4NjgyZTZmZjMsIDB4ZDZiMmI4YTMsXG4gIDB4NzQ4ZjgyZWUsIDB4NWRlZmIyZmMsIDB4NzhhNTYzNmYsIDB4NDMxNzJmNjAsXG4gIDB4ODRjODc4MTQsIDB4YTFmMGFiNzIsIDB4OGNjNzAyMDgsIDB4MWE2NDM5ZWMsXG4gIDB4OTBiZWZmZmEsIDB4MjM2MzFlMjgsIDB4YTQ1MDZjZWIsIDB4ZGU4MmJkZTksXG4gIDB4YmVmOWEzZjcsIDB4YjJjNjc5MTUsIDB4YzY3MTc4ZjIsIDB4ZTM3MjUzMmIsXG4gIDB4Y2EyNzNlY2UsIDB4ZWEyNjYxOWMsIDB4ZDE4NmI4YzcsIDB4MjFjMGMyMDcsXG4gIDB4ZWFkYTdkZDYsIDB4Y2RlMGViMWUsIDB4ZjU3ZDRmN2YsIDB4ZWU2ZWQxNzgsXG4gIDB4MDZmMDY3YWEsIDB4NzIxNzZmYmEsIDB4MGE2MzdkYzUsIDB4YTJjODk4YTYsXG4gIDB4MTEzZjk4MDQsIDB4YmVmOTBkYWUsIDB4MWI3MTBiMzUsIDB4MTMxYzQ3MWIsXG4gIDB4MjhkYjc3ZjUsIDB4MjMwNDdkODQsIDB4MzJjYWFiN2IsIDB4NDBjNzI0OTMsXG4gIDB4M2M5ZWJlMGEsIDB4MTVjOWJlYmMsIDB4NDMxZDY3YzQsIDB4OWMxMDBkNGMsXG4gIDB4NGNjNWQ0YmUsIDB4Y2IzZTQyYjYsIDB4NTk3ZjI5OWMsIDB4ZmM2NTdlMmEsXG4gIDB4NWZjYjZmYWIsIDB4M2FkNmZhZWMsIDB4NmM0NDE5OGMsIDB4NGE0NzU4MTdcbl1cblxudmFyIFcgPSBuZXcgQXJyYXkoMTYwKVxuXG5mdW5jdGlvbiBTaGE1MTIgKCkge1xuICB0aGlzLmluaXQoKVxuICB0aGlzLl93ID0gV1xuXG4gIEhhc2guY2FsbCh0aGlzLCAxMjgsIDExMilcbn1cblxuaW5oZXJpdHMoU2hhNTEyLCBIYXNoKVxuXG5TaGE1MTIucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2FoID0gMHg2YTA5ZTY2N1xuICB0aGlzLl9iaCA9IDB4YmI2N2FlODVcbiAgdGhpcy5fY2ggPSAweDNjNmVmMzcyXG4gIHRoaXMuX2RoID0gMHhhNTRmZjUzYVxuICB0aGlzLl9laCA9IDB4NTEwZTUyN2ZcbiAgdGhpcy5fZmggPSAweDliMDU2ODhjXG4gIHRoaXMuX2doID0gMHgxZjgzZDlhYlxuICB0aGlzLl9oaCA9IDB4NWJlMGNkMTlcblxuICB0aGlzLl9hbCA9IDB4ZjNiY2M5MDhcbiAgdGhpcy5fYmwgPSAweDg0Y2FhNzNiXG4gIHRoaXMuX2NsID0gMHhmZTk0ZjgyYlxuICB0aGlzLl9kbCA9IDB4NWYxZDM2ZjFcbiAgdGhpcy5fZWwgPSAweGFkZTY4MmQxXG4gIHRoaXMuX2ZsID0gMHgyYjNlNmMxZlxuICB0aGlzLl9nbCA9IDB4ZmI0MWJkNmJcbiAgdGhpcy5faGwgPSAweDEzN2UyMTc5XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuZnVuY3Rpb24gQ2ggKHgsIHksIHopIHtcbiAgcmV0dXJuIHogXiAoeCAmICh5IF4geikpXG59XG5cbmZ1bmN0aW9uIG1haiAoeCwgeSwgeikge1xuICByZXR1cm4gKHggJiB5KSB8ICh6ICYgKHggfCB5KSlcbn1cblxuZnVuY3Rpb24gc2lnbWEwICh4LCB4bCkge1xuICByZXR1cm4gKHggPj4+IDI4IHwgeGwgPDwgNCkgXiAoeGwgPj4+IDIgfCB4IDw8IDMwKSBeICh4bCA+Pj4gNyB8IHggPDwgMjUpXG59XG5cbmZ1bmN0aW9uIHNpZ21hMSAoeCwgeGwpIHtcbiAgcmV0dXJuICh4ID4+PiAxNCB8IHhsIDw8IDE4KSBeICh4ID4+PiAxOCB8IHhsIDw8IDE0KSBeICh4bCA+Pj4gOSB8IHggPDwgMjMpXG59XG5cbmZ1bmN0aW9uIEdhbW1hMCAoeCwgeGwpIHtcbiAgcmV0dXJuICh4ID4+PiAxIHwgeGwgPDwgMzEpIF4gKHggPj4+IDggfCB4bCA8PCAyNCkgXiAoeCA+Pj4gNylcbn1cblxuZnVuY3Rpb24gR2FtbWEwbCAoeCwgeGwpIHtcbiAgcmV0dXJuICh4ID4+PiAxIHwgeGwgPDwgMzEpIF4gKHggPj4+IDggfCB4bCA8PCAyNCkgXiAoeCA+Pj4gNyB8IHhsIDw8IDI1KVxufVxuXG5mdW5jdGlvbiBHYW1tYTEgKHgsIHhsKSB7XG4gIHJldHVybiAoeCA+Pj4gMTkgfCB4bCA8PCAxMykgXiAoeGwgPj4+IDI5IHwgeCA8PCAzKSBeICh4ID4+PiA2KVxufVxuXG5mdW5jdGlvbiBHYW1tYTFsICh4LCB4bCkge1xuICByZXR1cm4gKHggPj4+IDE5IHwgeGwgPDwgMTMpIF4gKHhsID4+PiAyOSB8IHggPDwgMykgXiAoeCA+Pj4gNiB8IHhsIDw8IDI2KVxufVxuXG5mdW5jdGlvbiBnZXRDYXJyeSAoYSwgYikge1xuICByZXR1cm4gKGEgPj4+IDApIDwgKGIgPj4+IDApID8gMSA6IDBcbn1cblxuU2hhNTEyLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKE0pIHtcbiAgdmFyIFcgPSB0aGlzLl93XG5cbiAgdmFyIGFoID0gdGhpcy5fYWggfCAwXG4gIHZhciBiaCA9IHRoaXMuX2JoIHwgMFxuICB2YXIgY2ggPSB0aGlzLl9jaCB8IDBcbiAgdmFyIGRoID0gdGhpcy5fZGggfCAwXG4gIHZhciBlaCA9IHRoaXMuX2VoIHwgMFxuICB2YXIgZmggPSB0aGlzLl9maCB8IDBcbiAgdmFyIGdoID0gdGhpcy5fZ2ggfCAwXG4gIHZhciBoaCA9IHRoaXMuX2hoIHwgMFxuXG4gIHZhciBhbCA9IHRoaXMuX2FsIHwgMFxuICB2YXIgYmwgPSB0aGlzLl9ibCB8IDBcbiAgdmFyIGNsID0gdGhpcy5fY2wgfCAwXG4gIHZhciBkbCA9IHRoaXMuX2RsIHwgMFxuICB2YXIgZWwgPSB0aGlzLl9lbCB8IDBcbiAgdmFyIGZsID0gdGhpcy5fZmwgfCAwXG4gIHZhciBnbCA9IHRoaXMuX2dsIHwgMFxuICB2YXIgaGwgPSB0aGlzLl9obCB8IDBcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IDMyOyBpICs9IDIpIHtcbiAgICBXW2ldID0gTS5yZWFkSW50MzJCRShpICogNClcbiAgICBXW2kgKyAxXSA9IE0ucmVhZEludDMyQkUoaSAqIDQgKyA0KVxuICB9XG4gIGZvciAoOyBpIDwgMTYwOyBpICs9IDIpIHtcbiAgICB2YXIgeGggPSBXW2kgLSAxNSAqIDJdXG4gICAgdmFyIHhsID0gV1tpIC0gMTUgKiAyICsgMV1cbiAgICB2YXIgZ2FtbWEwID0gR2FtbWEwKHhoLCB4bClcbiAgICB2YXIgZ2FtbWEwbCA9IEdhbW1hMGwoeGwsIHhoKVxuXG4gICAgeGggPSBXW2kgLSAyICogMl1cbiAgICB4bCA9IFdbaSAtIDIgKiAyICsgMV1cbiAgICB2YXIgZ2FtbWExID0gR2FtbWExKHhoLCB4bClcbiAgICB2YXIgZ2FtbWExbCA9IEdhbW1hMWwoeGwsIHhoKVxuXG4gICAgLy8gV1tpXSA9IGdhbW1hMCArIFdbaSAtIDddICsgZ2FtbWExICsgV1tpIC0gMTZdXG4gICAgdmFyIFdpN2ggPSBXW2kgLSA3ICogMl1cbiAgICB2YXIgV2k3bCA9IFdbaSAtIDcgKiAyICsgMV1cblxuICAgIHZhciBXaTE2aCA9IFdbaSAtIDE2ICogMl1cbiAgICB2YXIgV2kxNmwgPSBXW2kgLSAxNiAqIDIgKyAxXVxuXG4gICAgdmFyIFdpbCA9IChnYW1tYTBsICsgV2k3bCkgfCAwXG4gICAgdmFyIFdpaCA9IChnYW1tYTAgKyBXaTdoICsgZ2V0Q2FycnkoV2lsLCBnYW1tYTBsKSkgfCAwXG4gICAgV2lsID0gKFdpbCArIGdhbW1hMWwpIHwgMFxuICAgIFdpaCA9IChXaWggKyBnYW1tYTEgKyBnZXRDYXJyeShXaWwsIGdhbW1hMWwpKSB8IDBcbiAgICBXaWwgPSAoV2lsICsgV2kxNmwpIHwgMFxuICAgIFdpaCA9IChXaWggKyBXaTE2aCArIGdldENhcnJ5KFdpbCwgV2kxNmwpKSB8IDBcblxuICAgIFdbaV0gPSBXaWhcbiAgICBXW2kgKyAxXSA9IFdpbFxuICB9XG5cbiAgZm9yICh2YXIgaiA9IDA7IGogPCAxNjA7IGogKz0gMikge1xuICAgIFdpaCA9IFdbal1cbiAgICBXaWwgPSBXW2ogKyAxXVxuXG4gICAgdmFyIG1hamggPSBtYWooYWgsIGJoLCBjaClcbiAgICB2YXIgbWFqbCA9IG1haihhbCwgYmwsIGNsKVxuXG4gICAgdmFyIHNpZ21hMGggPSBzaWdtYTAoYWgsIGFsKVxuICAgIHZhciBzaWdtYTBsID0gc2lnbWEwKGFsLCBhaClcbiAgICB2YXIgc2lnbWExaCA9IHNpZ21hMShlaCwgZWwpXG4gICAgdmFyIHNpZ21hMWwgPSBzaWdtYTEoZWwsIGVoKVxuXG4gICAgLy8gdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2pdICsgV1tqXVxuICAgIHZhciBLaWggPSBLW2pdXG4gICAgdmFyIEtpbCA9IEtbaiArIDFdXG5cbiAgICB2YXIgY2hoID0gQ2goZWgsIGZoLCBnaClcbiAgICB2YXIgY2hsID0gQ2goZWwsIGZsLCBnbClcblxuICAgIHZhciB0MWwgPSAoaGwgKyBzaWdtYTFsKSB8IDBcbiAgICB2YXIgdDFoID0gKGhoICsgc2lnbWExaCArIGdldENhcnJ5KHQxbCwgaGwpKSB8IDBcbiAgICB0MWwgPSAodDFsICsgY2hsKSB8IDBcbiAgICB0MWggPSAodDFoICsgY2hoICsgZ2V0Q2FycnkodDFsLCBjaGwpKSB8IDBcbiAgICB0MWwgPSAodDFsICsgS2lsKSB8IDBcbiAgICB0MWggPSAodDFoICsgS2loICsgZ2V0Q2FycnkodDFsLCBLaWwpKSB8IDBcbiAgICB0MWwgPSAodDFsICsgV2lsKSB8IDBcbiAgICB0MWggPSAodDFoICsgV2loICsgZ2V0Q2FycnkodDFsLCBXaWwpKSB8IDBcblxuICAgIC8vIHQyID0gc2lnbWEwICsgbWFqXG4gICAgdmFyIHQybCA9IChzaWdtYTBsICsgbWFqbCkgfCAwXG4gICAgdmFyIHQyaCA9IChzaWdtYTBoICsgbWFqaCArIGdldENhcnJ5KHQybCwgc2lnbWEwbCkpIHwgMFxuXG4gICAgaGggPSBnaFxuICAgIGhsID0gZ2xcbiAgICBnaCA9IGZoXG4gICAgZ2wgPSBmbFxuICAgIGZoID0gZWhcbiAgICBmbCA9IGVsXG4gICAgZWwgPSAoZGwgKyB0MWwpIHwgMFxuICAgIGVoID0gKGRoICsgdDFoICsgZ2V0Q2FycnkoZWwsIGRsKSkgfCAwXG4gICAgZGggPSBjaFxuICAgIGRsID0gY2xcbiAgICBjaCA9IGJoXG4gICAgY2wgPSBibFxuICAgIGJoID0gYWhcbiAgICBibCA9IGFsXG4gICAgYWwgPSAodDFsICsgdDJsKSB8IDBcbiAgICBhaCA9ICh0MWggKyB0MmggKyBnZXRDYXJyeShhbCwgdDFsKSkgfCAwXG4gIH1cblxuICB0aGlzLl9hbCA9ICh0aGlzLl9hbCArIGFsKSB8IDBcbiAgdGhpcy5fYmwgPSAodGhpcy5fYmwgKyBibCkgfCAwXG4gIHRoaXMuX2NsID0gKHRoaXMuX2NsICsgY2wpIHwgMFxuICB0aGlzLl9kbCA9ICh0aGlzLl9kbCArIGRsKSB8IDBcbiAgdGhpcy5fZWwgPSAodGhpcy5fZWwgKyBlbCkgfCAwXG4gIHRoaXMuX2ZsID0gKHRoaXMuX2ZsICsgZmwpIHwgMFxuICB0aGlzLl9nbCA9ICh0aGlzLl9nbCArIGdsKSB8IDBcbiAgdGhpcy5faGwgPSAodGhpcy5faGwgKyBobCkgfCAwXG5cbiAgdGhpcy5fYWggPSAodGhpcy5fYWggKyBhaCArIGdldENhcnJ5KHRoaXMuX2FsLCBhbCkpIHwgMFxuICB0aGlzLl9iaCA9ICh0aGlzLl9iaCArIGJoICsgZ2V0Q2FycnkodGhpcy5fYmwsIGJsKSkgfCAwXG4gIHRoaXMuX2NoID0gKHRoaXMuX2NoICsgY2ggKyBnZXRDYXJyeSh0aGlzLl9jbCwgY2wpKSB8IDBcbiAgdGhpcy5fZGggPSAodGhpcy5fZGggKyBkaCArIGdldENhcnJ5KHRoaXMuX2RsLCBkbCkpIHwgMFxuICB0aGlzLl9laCA9ICh0aGlzLl9laCArIGVoICsgZ2V0Q2FycnkodGhpcy5fZWwsIGVsKSkgfCAwXG4gIHRoaXMuX2ZoID0gKHRoaXMuX2ZoICsgZmggKyBnZXRDYXJyeSh0aGlzLl9mbCwgZmwpKSB8IDBcbiAgdGhpcy5fZ2ggPSAodGhpcy5fZ2ggKyBnaCArIGdldENhcnJ5KHRoaXMuX2dsLCBnbCkpIHwgMFxuICB0aGlzLl9oaCA9ICh0aGlzLl9oaCArIGhoICsgZ2V0Q2FycnkodGhpcy5faGwsIGhsKSkgfCAwXG59XG5cblNoYTUxMi5wcm90b3R5cGUuX2hhc2ggPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBIID0gQnVmZmVyLmFsbG9jVW5zYWZlKDY0KVxuXG4gIGZ1bmN0aW9uIHdyaXRlSW50NjRCRSAoaCwgbCwgb2Zmc2V0KSB7XG4gICAgSC53cml0ZUludDMyQkUoaCwgb2Zmc2V0KVxuICAgIEgud3JpdGVJbnQzMkJFKGwsIG9mZnNldCArIDQpXG4gIH1cblxuICB3cml0ZUludDY0QkUodGhpcy5fYWgsIHRoaXMuX2FsLCAwKVxuICB3cml0ZUludDY0QkUodGhpcy5fYmgsIHRoaXMuX2JsLCA4KVxuICB3cml0ZUludDY0QkUodGhpcy5fY2gsIHRoaXMuX2NsLCAxNilcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2RoLCB0aGlzLl9kbCwgMjQpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9laCwgdGhpcy5fZWwsIDMyKVxuICB3cml0ZUludDY0QkUodGhpcy5fZmgsIHRoaXMuX2ZsLCA0MClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2doLCB0aGlzLl9nbCwgNDgpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9oaCwgdGhpcy5faGwsIDU2KVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhNTEyXG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxubW9kdWxlLmV4cG9ydHMgPSBTdHJlYW07XG5cbnZhciBFRSA9IHJlcXVpcmUoJ2V2ZW50cycpLkV2ZW50RW1pdHRlcjtcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG5cbmluaGVyaXRzKFN0cmVhbSwgRUUpO1xuU3RyZWFtLlJlYWRhYmxlID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtL3JlYWRhYmxlLmpzJyk7XG5TdHJlYW0uV3JpdGFibGUgPSByZXF1aXJlKCdyZWFkYWJsZS1zdHJlYW0vd3JpdGFibGUuanMnKTtcblN0cmVhbS5EdXBsZXggPSByZXF1aXJlKCdyZWFkYWJsZS1zdHJlYW0vZHVwbGV4LmpzJyk7XG5TdHJlYW0uVHJhbnNmb3JtID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtL3RyYW5zZm9ybS5qcycpO1xuU3RyZWFtLlBhc3NUaHJvdWdoID0gcmVxdWlyZSgncmVhZGFibGUtc3RyZWFtL3Bhc3N0aHJvdWdoLmpzJyk7XG5cbi8vIEJhY2t3YXJkcy1jb21wYXQgd2l0aCBub2RlIDAuNC54XG5TdHJlYW0uU3RyZWFtID0gU3RyZWFtO1xuXG5cblxuLy8gb2xkLXN0eWxlIHN0cmVhbXMuICBOb3RlIHRoYXQgdGhlIHBpcGUgbWV0aG9kICh0aGUgb25seSByZWxldmFudFxuLy8gcGFydCBvZiB0aGlzIGNsYXNzKSBpcyBvdmVycmlkZGVuIGluIHRoZSBSZWFkYWJsZSBjbGFzcy5cblxuZnVuY3Rpb24gU3RyZWFtKCkge1xuICBFRS5jYWxsKHRoaXMpO1xufVxuXG5TdHJlYW0ucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbihkZXN0LCBvcHRpb25zKSB7XG4gIHZhciBzb3VyY2UgPSB0aGlzO1xuXG4gIGZ1bmN0aW9uIG9uZGF0YShjaHVuaykge1xuICAgIGlmIChkZXN0LndyaXRhYmxlKSB7XG4gICAgICBpZiAoZmFsc2UgPT09IGRlc3Qud3JpdGUoY2h1bmspICYmIHNvdXJjZS5wYXVzZSkge1xuICAgICAgICBzb3VyY2UucGF1c2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzb3VyY2Uub24oJ2RhdGEnLCBvbmRhdGEpO1xuXG4gIGZ1bmN0aW9uIG9uZHJhaW4oKSB7XG4gICAgaWYgKHNvdXJjZS5yZWFkYWJsZSAmJiBzb3VyY2UucmVzdW1lKSB7XG4gICAgICBzb3VyY2UucmVzdW1lKCk7XG4gICAgfVxuICB9XG5cbiAgZGVzdC5vbignZHJhaW4nLCBvbmRyYWluKTtcblxuICAvLyBJZiB0aGUgJ2VuZCcgb3B0aW9uIGlzIG5vdCBzdXBwbGllZCwgZGVzdC5lbmQoKSB3aWxsIGJlIGNhbGxlZCB3aGVuXG4gIC8vIHNvdXJjZSBnZXRzIHRoZSAnZW5kJyBvciAnY2xvc2UnIGV2ZW50cy4gIE9ubHkgZGVzdC5lbmQoKSBvbmNlLlxuICBpZiAoIWRlc3QuX2lzU3RkaW8gJiYgKCFvcHRpb25zIHx8IG9wdGlvbnMuZW5kICE9PSBmYWxzZSkpIHtcbiAgICBzb3VyY2Uub24oJ2VuZCcsIG9uZW5kKTtcbiAgICBzb3VyY2Uub24oJ2Nsb3NlJywgb25jbG9zZSk7XG4gIH1cblxuICB2YXIgZGlkT25FbmQgPSBmYWxzZTtcbiAgZnVuY3Rpb24gb25lbmQoKSB7XG4gICAgaWYgKGRpZE9uRW5kKSByZXR1cm47XG4gICAgZGlkT25FbmQgPSB0cnVlO1xuXG4gICAgZGVzdC5lbmQoKTtcbiAgfVxuXG5cbiAgZnVuY3Rpb24gb25jbG9zZSgpIHtcbiAgICBpZiAoZGlkT25FbmQpIHJldHVybjtcbiAgICBkaWRPbkVuZCA9IHRydWU7XG5cbiAgICBpZiAodHlwZW9mIGRlc3QuZGVzdHJveSA9PT0gJ2Z1bmN0aW9uJykgZGVzdC5kZXN0cm95KCk7XG4gIH1cblxuICAvLyBkb24ndCBsZWF2ZSBkYW5nbGluZyBwaXBlcyB3aGVuIHRoZXJlIGFyZSBlcnJvcnMuXG4gIGZ1bmN0aW9uIG9uZXJyb3IoZXIpIHtcbiAgICBjbGVhbnVwKCk7XG4gICAgaWYgKEVFLmxpc3RlbmVyQ291bnQodGhpcywgJ2Vycm9yJykgPT09IDApIHtcbiAgICAgIHRocm93IGVyOyAvLyBVbmhhbmRsZWQgc3RyZWFtIGVycm9yIGluIHBpcGUuXG4gICAgfVxuICB9XG5cbiAgc291cmNlLm9uKCdlcnJvcicsIG9uZXJyb3IpO1xuICBkZXN0Lm9uKCdlcnJvcicsIG9uZXJyb3IpO1xuXG4gIC8vIHJlbW92ZSBhbGwgdGhlIGV2ZW50IGxpc3RlbmVycyB0aGF0IHdlcmUgYWRkZWQuXG4gIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgc291cmNlLnJlbW92ZUxpc3RlbmVyKCdkYXRhJywgb25kYXRhKTtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdkcmFpbicsIG9uZHJhaW4pO1xuXG4gICAgc291cmNlLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCBvbmVuZCk7XG4gICAgc291cmNlLnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIG9uY2xvc2UpO1xuXG4gICAgc291cmNlLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uZXJyb3IpO1xuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25lcnJvcik7XG5cbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIGNsZWFudXApO1xuICAgIHNvdXJjZS5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBjbGVhbnVwKTtcblxuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2Nsb3NlJywgY2xlYW51cCk7XG4gIH1cblxuICBzb3VyY2Uub24oJ2VuZCcsIGNsZWFudXApO1xuICBzb3VyY2Uub24oJ2Nsb3NlJywgY2xlYW51cCk7XG5cbiAgZGVzdC5vbignY2xvc2UnLCBjbGVhbnVwKTtcblxuICBkZXN0LmVtaXQoJ3BpcGUnLCBzb3VyY2UpO1xuXG4gIC8vIEFsbG93IGZvciB1bml4LWxpa2UgdXNhZ2U6IEEucGlwZShCKS5waXBlKEMpXG4gIHJldHVybiBkZXN0O1xufTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbi8qPHJlcGxhY2VtZW50PiovXG5cbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlcjtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG52YXIgaXNFbmNvZGluZyA9IEJ1ZmZlci5pc0VuY29kaW5nIHx8IGZ1bmN0aW9uIChlbmNvZGluZykge1xuICBlbmNvZGluZyA9ICcnICsgZW5jb2Rpbmc7XG4gIHN3aXRjaCAoZW5jb2RpbmcgJiYgZW5jb2RpbmcudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2hleCc6Y2FzZSAndXRmOCc6Y2FzZSAndXRmLTgnOmNhc2UgJ2FzY2lpJzpjYXNlICdiaW5hcnknOmNhc2UgJ2Jhc2U2NCc6Y2FzZSAndWNzMic6Y2FzZSAndWNzLTInOmNhc2UgJ3V0ZjE2bGUnOmNhc2UgJ3V0Zi0xNmxlJzpjYXNlICdyYXcnOlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuZnVuY3Rpb24gX25vcm1hbGl6ZUVuY29kaW5nKGVuYykge1xuICBpZiAoIWVuYykgcmV0dXJuICd1dGY4JztcbiAgdmFyIHJldHJpZWQ7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgc3dpdGNoIChlbmMpIHtcbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gJ3V0ZjgnO1xuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuICd1dGYxNmxlJztcbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gJ2xhdGluMSc7XG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGVuYztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChyZXRyaWVkKSByZXR1cm47IC8vIHVuZGVmaW5lZFxuICAgICAgICBlbmMgPSAoJycgKyBlbmMpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHJpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufTtcblxuLy8gRG8gbm90IGNhY2hlIGBCdWZmZXIuaXNFbmNvZGluZ2Agd2hlbiBjaGVja2luZyBlbmNvZGluZyBuYW1lcyBhcyBzb21lXG4vLyBtb2R1bGVzIG1vbmtleS1wYXRjaCBpdCB0byBzdXBwb3J0IGFkZGl0aW9uYWwgZW5jb2RpbmdzXG5mdW5jdGlvbiBub3JtYWxpemVFbmNvZGluZyhlbmMpIHtcbiAgdmFyIG5lbmMgPSBfbm9ybWFsaXplRW5jb2RpbmcoZW5jKTtcbiAgaWYgKHR5cGVvZiBuZW5jICE9PSAnc3RyaW5nJyAmJiAoQnVmZmVyLmlzRW5jb2RpbmcgPT09IGlzRW5jb2RpbmcgfHwgIWlzRW5jb2RpbmcoZW5jKSkpIHRocm93IG5ldyBFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuYyk7XG4gIHJldHVybiBuZW5jIHx8IGVuYztcbn1cblxuLy8gU3RyaW5nRGVjb2RlciBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIGVmZmljaWVudGx5IHNwbGl0dGluZyBhIHNlcmllcyBvZlxuLy8gYnVmZmVycyBpbnRvIGEgc2VyaWVzIG9mIEpTIHN0cmluZ3Mgd2l0aG91dCBicmVha2luZyBhcGFydCBtdWx0aS1ieXRlXG4vLyBjaGFyYWN0ZXJzLlxuZXhwb3J0cy5TdHJpbmdEZWNvZGVyID0gU3RyaW5nRGVjb2RlcjtcbmZ1bmN0aW9uIFN0cmluZ0RlY29kZXIoZW5jb2RpbmcpIHtcbiAgdGhpcy5lbmNvZGluZyA9IG5vcm1hbGl6ZUVuY29kaW5nKGVuY29kaW5nKTtcbiAgdmFyIG5iO1xuICBzd2l0Y2ggKHRoaXMuZW5jb2RpbmcpIHtcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIHRoaXMudGV4dCA9IHV0ZjE2VGV4dDtcbiAgICAgIHRoaXMuZW5kID0gdXRmMTZFbmQ7XG4gICAgICBuYiA9IDQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd1dGY4JzpcbiAgICAgIHRoaXMuZmlsbExhc3QgPSB1dGY4RmlsbExhc3Q7XG4gICAgICBuYiA9IDQ7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgdGhpcy50ZXh0ID0gYmFzZTY0VGV4dDtcbiAgICAgIHRoaXMuZW5kID0gYmFzZTY0RW5kO1xuICAgICAgbmIgPSAzO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRoaXMud3JpdGUgPSBzaW1wbGVXcml0ZTtcbiAgICAgIHRoaXMuZW5kID0gc2ltcGxlRW5kO1xuICAgICAgcmV0dXJuO1xuICB9XG4gIHRoaXMubGFzdE5lZWQgPSAwO1xuICB0aGlzLmxhc3RUb3RhbCA9IDA7XG4gIHRoaXMubGFzdENoYXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUobmIpO1xufVxuXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChidWYpIHtcbiAgaWYgKGJ1Zi5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgdmFyIHI7XG4gIHZhciBpO1xuICBpZiAodGhpcy5sYXN0TmVlZCkge1xuICAgIHIgPSB0aGlzLmZpbGxMYXN0KGJ1Zik7XG4gICAgaWYgKHIgPT09IHVuZGVmaW5lZCkgcmV0dXJuICcnO1xuICAgIGkgPSB0aGlzLmxhc3ROZWVkO1xuICAgIHRoaXMubGFzdE5lZWQgPSAwO1xuICB9IGVsc2Uge1xuICAgIGkgPSAwO1xuICB9XG4gIGlmIChpIDwgYnVmLmxlbmd0aCkgcmV0dXJuIHIgPyByICsgdGhpcy50ZXh0KGJ1ZiwgaSkgOiB0aGlzLnRleHQoYnVmLCBpKTtcbiAgcmV0dXJuIHIgfHwgJyc7XG59O1xuXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSB1dGY4RW5kO1xuXG4vLyBSZXR1cm5zIG9ubHkgY29tcGxldGUgY2hhcmFjdGVycyBpbiBhIEJ1ZmZlclxuU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUudGV4dCA9IHV0ZjhUZXh0O1xuXG4vLyBBdHRlbXB0cyB0byBjb21wbGV0ZSBhIHBhcnRpYWwgbm9uLVVURi04IGNoYXJhY3RlciB1c2luZyBieXRlcyBmcm9tIGEgQnVmZmVyXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5maWxsTGFzdCA9IGZ1bmN0aW9uIChidWYpIHtcbiAgaWYgKHRoaXMubGFzdE5lZWQgPD0gYnVmLmxlbmd0aCkge1xuICAgIGJ1Zi5jb3B5KHRoaXMubGFzdENoYXIsIHRoaXMubGFzdFRvdGFsIC0gdGhpcy5sYXN0TmVlZCwgMCwgdGhpcy5sYXN0TmVlZCk7XG4gICAgcmV0dXJuIHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywgMCwgdGhpcy5sYXN0VG90YWwpO1xuICB9XG4gIGJ1Zi5jb3B5KHRoaXMubGFzdENoYXIsIHRoaXMubGFzdFRvdGFsIC0gdGhpcy5sYXN0TmVlZCwgMCwgYnVmLmxlbmd0aCk7XG4gIHRoaXMubGFzdE5lZWQgLT0gYnVmLmxlbmd0aDtcbn07XG5cbi8vIENoZWNrcyB0aGUgdHlwZSBvZiBhIFVURi04IGJ5dGUsIHdoZXRoZXIgaXQncyBBU0NJSSwgYSBsZWFkaW5nIGJ5dGUsIG9yIGFcbi8vIGNvbnRpbnVhdGlvbiBieXRlLiBJZiBhbiBpbnZhbGlkIGJ5dGUgaXMgZGV0ZWN0ZWQsIC0yIGlzIHJldHVybmVkLlxuZnVuY3Rpb24gdXRmOENoZWNrQnl0ZShieXRlKSB7XG4gIGlmIChieXRlIDw9IDB4N0YpIHJldHVybiAwO2Vsc2UgaWYgKGJ5dGUgPj4gNSA9PT0gMHgwNikgcmV0dXJuIDI7ZWxzZSBpZiAoYnl0ZSA+PiA0ID09PSAweDBFKSByZXR1cm4gMztlbHNlIGlmIChieXRlID4+IDMgPT09IDB4MUUpIHJldHVybiA0O1xuICByZXR1cm4gYnl0ZSA+PiA2ID09PSAweDAyID8gLTEgOiAtMjtcbn1cblxuLy8gQ2hlY2tzIGF0IG1vc3QgMyBieXRlcyBhdCB0aGUgZW5kIG9mIGEgQnVmZmVyIGluIG9yZGVyIHRvIGRldGVjdCBhblxuLy8gaW5jb21wbGV0ZSBtdWx0aS1ieXRlIFVURi04IGNoYXJhY3Rlci4gVGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyAoMiwgMywgb3IgNClcbi8vIG5lZWRlZCB0byBjb21wbGV0ZSB0aGUgVVRGLTggY2hhcmFjdGVyIChpZiBhcHBsaWNhYmxlKSBhcmUgcmV0dXJuZWQuXG5mdW5jdGlvbiB1dGY4Q2hlY2tJbmNvbXBsZXRlKHNlbGYsIGJ1ZiwgaSkge1xuICB2YXIgaiA9IGJ1Zi5sZW5ndGggLSAxO1xuICBpZiAoaiA8IGkpIHJldHVybiAwO1xuICB2YXIgbmIgPSB1dGY4Q2hlY2tCeXRlKGJ1ZltqXSk7XG4gIGlmIChuYiA+PSAwKSB7XG4gICAgaWYgKG5iID4gMCkgc2VsZi5sYXN0TmVlZCA9IG5iIC0gMTtcbiAgICByZXR1cm4gbmI7XG4gIH1cbiAgaWYgKC0taiA8IGkgfHwgbmIgPT09IC0yKSByZXR1cm4gMDtcbiAgbmIgPSB1dGY4Q2hlY2tCeXRlKGJ1ZltqXSk7XG4gIGlmIChuYiA+PSAwKSB7XG4gICAgaWYgKG5iID4gMCkgc2VsZi5sYXN0TmVlZCA9IG5iIC0gMjtcbiAgICByZXR1cm4gbmI7XG4gIH1cbiAgaWYgKC0taiA8IGkgfHwgbmIgPT09IC0yKSByZXR1cm4gMDtcbiAgbmIgPSB1dGY4Q2hlY2tCeXRlKGJ1ZltqXSk7XG4gIGlmIChuYiA+PSAwKSB7XG4gICAgaWYgKG5iID4gMCkge1xuICAgICAgaWYgKG5iID09PSAyKSBuYiA9IDA7ZWxzZSBzZWxmLmxhc3ROZWVkID0gbmIgLSAzO1xuICAgIH1cbiAgICByZXR1cm4gbmI7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vIFZhbGlkYXRlcyBhcyBtYW55IGNvbnRpbnVhdGlvbiBieXRlcyBmb3IgYSBtdWx0aS1ieXRlIFVURi04IGNoYXJhY3RlciBhc1xuLy8gbmVlZGVkIG9yIGFyZSBhdmFpbGFibGUuIElmIHdlIHNlZSBhIG5vbi1jb250aW51YXRpb24gYnl0ZSB3aGVyZSB3ZSBleHBlY3Rcbi8vIG9uZSwgd2UgXCJyZXBsYWNlXCIgdGhlIHZhbGlkYXRlZCBjb250aW51YXRpb24gYnl0ZXMgd2UndmUgc2VlbiBzbyBmYXIgd2l0aFxuLy8gYSBzaW5nbGUgVVRGLTggcmVwbGFjZW1lbnQgY2hhcmFjdGVyICgnXFx1ZmZmZCcpLCB0byBtYXRjaCB2OCdzIFVURi04IGRlY29kaW5nXG4vLyBiZWhhdmlvci4gVGhlIGNvbnRpbnVhdGlvbiBieXRlIGNoZWNrIGlzIGluY2x1ZGVkIHRocmVlIHRpbWVzIGluIHRoZSBjYXNlXG4vLyB3aGVyZSBhbGwgb2YgdGhlIGNvbnRpbnVhdGlvbiBieXRlcyBmb3IgYSBjaGFyYWN0ZXIgZXhpc3QgaW4gdGhlIHNhbWUgYnVmZmVyLlxuLy8gSXQgaXMgYWxzbyBkb25lIHRoaXMgd2F5IGFzIGEgc2xpZ2h0IHBlcmZvcm1hbmNlIGluY3JlYXNlIGluc3RlYWQgb2YgdXNpbmcgYVxuLy8gbG9vcC5cbmZ1bmN0aW9uIHV0ZjhDaGVja0V4dHJhQnl0ZXMoc2VsZiwgYnVmLCBwKSB7XG4gIGlmICgoYnVmWzBdICYgMHhDMCkgIT09IDB4ODApIHtcbiAgICBzZWxmLmxhc3ROZWVkID0gMDtcbiAgICByZXR1cm4gJ1xcdWZmZmQnO1xuICB9XG4gIGlmIChzZWxmLmxhc3ROZWVkID4gMSAmJiBidWYubGVuZ3RoID4gMSkge1xuICAgIGlmICgoYnVmWzFdICYgMHhDMCkgIT09IDB4ODApIHtcbiAgICAgIHNlbGYubGFzdE5lZWQgPSAxO1xuICAgICAgcmV0dXJuICdcXHVmZmZkJztcbiAgICB9XG4gICAgaWYgKHNlbGYubGFzdE5lZWQgPiAyICYmIGJ1Zi5sZW5ndGggPiAyKSB7XG4gICAgICBpZiAoKGJ1ZlsyXSAmIDB4QzApICE9PSAweDgwKSB7XG4gICAgICAgIHNlbGYubGFzdE5lZWQgPSAyO1xuICAgICAgICByZXR1cm4gJ1xcdWZmZmQnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBdHRlbXB0cyB0byBjb21wbGV0ZSBhIG11bHRpLWJ5dGUgVVRGLTggY2hhcmFjdGVyIHVzaW5nIGJ5dGVzIGZyb20gYSBCdWZmZXIuXG5mdW5jdGlvbiB1dGY4RmlsbExhc3QoYnVmKSB7XG4gIHZhciBwID0gdGhpcy5sYXN0VG90YWwgLSB0aGlzLmxhc3ROZWVkO1xuICB2YXIgciA9IHV0ZjhDaGVja0V4dHJhQnl0ZXModGhpcywgYnVmLCBwKTtcbiAgaWYgKHIgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHI7XG4gIGlmICh0aGlzLmxhc3ROZWVkIDw9IGJ1Zi5sZW5ndGgpIHtcbiAgICBidWYuY29weSh0aGlzLmxhc3RDaGFyLCBwLCAwLCB0aGlzLmxhc3ROZWVkKTtcbiAgICByZXR1cm4gdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLCAwLCB0aGlzLmxhc3RUb3RhbCk7XG4gIH1cbiAgYnVmLmNvcHkodGhpcy5sYXN0Q2hhciwgcCwgMCwgYnVmLmxlbmd0aCk7XG4gIHRoaXMubGFzdE5lZWQgLT0gYnVmLmxlbmd0aDtcbn1cblxuLy8gUmV0dXJucyBhbGwgY29tcGxldGUgVVRGLTggY2hhcmFjdGVycyBpbiBhIEJ1ZmZlci4gSWYgdGhlIEJ1ZmZlciBlbmRlZCBvbiBhXG4vLyBwYXJ0aWFsIGNoYXJhY3RlciwgdGhlIGNoYXJhY3RlcidzIGJ5dGVzIGFyZSBidWZmZXJlZCB1bnRpbCB0aGUgcmVxdWlyZWRcbi8vIG51bWJlciBvZiBieXRlcyBhcmUgYXZhaWxhYmxlLlxuZnVuY3Rpb24gdXRmOFRleHQoYnVmLCBpKSB7XG4gIHZhciB0b3RhbCA9IHV0ZjhDaGVja0luY29tcGxldGUodGhpcywgYnVmLCBpKTtcbiAgaWYgKCF0aGlzLmxhc3ROZWVkKSByZXR1cm4gYnVmLnRvU3RyaW5nKCd1dGY4JywgaSk7XG4gIHRoaXMubGFzdFRvdGFsID0gdG90YWw7XG4gIHZhciBlbmQgPSBidWYubGVuZ3RoIC0gKHRvdGFsIC0gdGhpcy5sYXN0TmVlZCk7XG4gIGJ1Zi5jb3B5KHRoaXMubGFzdENoYXIsIDAsIGVuZCk7XG4gIHJldHVybiBidWYudG9TdHJpbmcoJ3V0ZjgnLCBpLCBlbmQpO1xufVxuXG4vLyBGb3IgVVRGLTgsIGEgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIGlzIGFkZGVkIHdoZW4gZW5kaW5nIG9uIGEgcGFydGlhbFxuLy8gY2hhcmFjdGVyLlxuZnVuY3Rpb24gdXRmOEVuZChidWYpIHtcbiAgdmFyIHIgPSBidWYgJiYgYnVmLmxlbmd0aCA/IHRoaXMud3JpdGUoYnVmKSA6ICcnO1xuICBpZiAodGhpcy5sYXN0TmVlZCkgcmV0dXJuIHIgKyAnXFx1ZmZmZCc7XG4gIHJldHVybiByO1xufVxuXG4vLyBVVEYtMTZMRSB0eXBpY2FsbHkgbmVlZHMgdHdvIGJ5dGVzIHBlciBjaGFyYWN0ZXIsIGJ1dCBldmVuIGlmIHdlIGhhdmUgYW4gZXZlblxuLy8gbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSwgd2UgbmVlZCB0byBjaGVjayBpZiB3ZSBlbmQgb24gYSBsZWFkaW5nL2hpZ2hcbi8vIHN1cnJvZ2F0ZS4gSW4gdGhhdCBjYXNlLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBuZXh0IHR3byBieXRlcyBpbiBvcmRlciB0b1xuLy8gZGVjb2RlIHRoZSBsYXN0IGNoYXJhY3RlciBwcm9wZXJseS5cbmZ1bmN0aW9uIHV0ZjE2VGV4dChidWYsIGkpIHtcbiAgaWYgKChidWYubGVuZ3RoIC0gaSkgJSAyID09PSAwKSB7XG4gICAgdmFyIHIgPSBidWYudG9TdHJpbmcoJ3V0ZjE2bGUnLCBpKTtcbiAgICBpZiAocikge1xuICAgICAgdmFyIGMgPSByLmNoYXJDb2RlQXQoci5sZW5ndGggLSAxKTtcbiAgICAgIGlmIChjID49IDB4RDgwMCAmJiBjIDw9IDB4REJGRikge1xuICAgICAgICB0aGlzLmxhc3ROZWVkID0gMjtcbiAgICAgICAgdGhpcy5sYXN0VG90YWwgPSA0O1xuICAgICAgICB0aGlzLmxhc3RDaGFyWzBdID0gYnVmW2J1Zi5sZW5ndGggLSAyXTtcbiAgICAgICAgdGhpcy5sYXN0Q2hhclsxXSA9IGJ1ZltidWYubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiByLnNsaWNlKDAsIC0xKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH1cbiAgdGhpcy5sYXN0TmVlZCA9IDE7XG4gIHRoaXMubGFzdFRvdGFsID0gMjtcbiAgdGhpcy5sYXN0Q2hhclswXSA9IGJ1ZltidWYubGVuZ3RoIC0gMV07XG4gIHJldHVybiBidWYudG9TdHJpbmcoJ3V0ZjE2bGUnLCBpLCBidWYubGVuZ3RoIC0gMSk7XG59XG5cbi8vIEZvciBVVEYtMTZMRSB3ZSBkbyBub3QgZXhwbGljaXRseSBhcHBlbmQgc3BlY2lhbCByZXBsYWNlbWVudCBjaGFyYWN0ZXJzIGlmIHdlXG4vLyBlbmQgb24gYSBwYXJ0aWFsIGNoYXJhY3Rlciwgd2Ugc2ltcGx5IGxldCB2OCBoYW5kbGUgdGhhdC5cbmZ1bmN0aW9uIHV0ZjE2RW5kKGJ1Zikge1xuICB2YXIgciA9IGJ1ZiAmJiBidWYubGVuZ3RoID8gdGhpcy53cml0ZShidWYpIDogJyc7XG4gIGlmICh0aGlzLmxhc3ROZWVkKSB7XG4gICAgdmFyIGVuZCA9IHRoaXMubGFzdFRvdGFsIC0gdGhpcy5sYXN0TmVlZDtcbiAgICByZXR1cm4gciArIHRoaXMubGFzdENoYXIudG9TdHJpbmcoJ3V0ZjE2bGUnLCAwLCBlbmQpO1xuICB9XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBiYXNlNjRUZXh0KGJ1ZiwgaSkge1xuICB2YXIgbiA9IChidWYubGVuZ3RoIC0gaSkgJSAzO1xuICBpZiAobiA9PT0gMCkgcmV0dXJuIGJ1Zi50b1N0cmluZygnYmFzZTY0JywgaSk7XG4gIHRoaXMubGFzdE5lZWQgPSAzIC0gbjtcbiAgdGhpcy5sYXN0VG90YWwgPSAzO1xuICBpZiAobiA9PT0gMSkge1xuICAgIHRoaXMubGFzdENoYXJbMF0gPSBidWZbYnVmLmxlbmd0aCAtIDFdO1xuICB9IGVsc2Uge1xuICAgIHRoaXMubGFzdENoYXJbMF0gPSBidWZbYnVmLmxlbmd0aCAtIDJdO1xuICAgIHRoaXMubGFzdENoYXJbMV0gPSBidWZbYnVmLmxlbmd0aCAtIDFdO1xuICB9XG4gIHJldHVybiBidWYudG9TdHJpbmcoJ2Jhc2U2NCcsIGksIGJ1Zi5sZW5ndGggLSBuKTtcbn1cblxuZnVuY3Rpb24gYmFzZTY0RW5kKGJ1Zikge1xuICB2YXIgciA9IGJ1ZiAmJiBidWYubGVuZ3RoID8gdGhpcy53cml0ZShidWYpIDogJyc7XG4gIGlmICh0aGlzLmxhc3ROZWVkKSByZXR1cm4gciArIHRoaXMubGFzdENoYXIudG9TdHJpbmcoJ2Jhc2U2NCcsIDAsIDMgLSB0aGlzLmxhc3ROZWVkKTtcbiAgcmV0dXJuIHI7XG59XG5cbi8vIFBhc3MgYnl0ZXMgb24gdGhyb3VnaCBmb3Igc2luZ2xlLWJ5dGUgZW5jb2RpbmdzIChlLmcuIGFzY2lpLCBsYXRpbjEsIGhleClcbmZ1bmN0aW9uIHNpbXBsZVdyaXRlKGJ1Zikge1xuICByZXR1cm4gYnVmLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcpO1xufVxuXG5mdW5jdGlvbiBzaW1wbGVFbmQoYnVmKSB7XG4gIHJldHVybiBidWYgJiYgYnVmLmxlbmd0aCA/IHRoaXMud3JpdGUoYnVmKSA6ICcnO1xufSIsImZ1bmN0aW9uIEFnZW50KCkge1xuICB0aGlzLl9kZWZhdWx0cyA9IFtdO1xufVxuXG5bXCJ1c2VcIiwgXCJvblwiLCBcIm9uY2VcIiwgXCJzZXRcIiwgXCJxdWVyeVwiLCBcInR5cGVcIiwgXCJhY2NlcHRcIiwgXCJhdXRoXCIsIFwid2l0aENyZWRlbnRpYWxzXCIsIFwic29ydFF1ZXJ5XCIsIFwicmV0cnlcIiwgXCJva1wiLCBcInJlZGlyZWN0c1wiLFxuIFwidGltZW91dFwiLCBcImJ1ZmZlclwiLCBcInNlcmlhbGl6ZVwiLCBcInBhcnNlXCIsIFwiY2FcIiwgXCJrZXlcIiwgXCJwZnhcIiwgXCJjZXJ0XCJdLmZvckVhY2goZnVuY3Rpb24oZm4pIHtcbiAgLyoqIERlZmF1bHQgc2V0dGluZyBmb3IgYWxsIHJlcXVlc3RzIGZyb20gdGhpcyBhZ2VudCAqL1xuICBBZ2VudC5wcm90b3R5cGVbZm5dID0gZnVuY3Rpb24oLyp2YXJhcmdzKi8pIHtcbiAgICB0aGlzLl9kZWZhdWx0cy5wdXNoKHtmbjpmbiwgYXJndW1lbnRzOmFyZ3VtZW50c30pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59KTtcblxuQWdlbnQucHJvdG90eXBlLl9zZXREZWZhdWx0cyA9IGZ1bmN0aW9uKHJlcSkge1xuICAgIHRoaXMuX2RlZmF1bHRzLmZvckVhY2goZnVuY3Rpb24oZGVmKSB7XG4gICAgICByZXFbZGVmLmZuXS5hcHBseShyZXEsIGRlZi5hcmd1bWVudHMpO1xuICAgIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBBZ2VudDtcbiIsIi8qKlxuICogUm9vdCByZWZlcmVuY2UgZm9yIGlmcmFtZXMuXG4gKi9cblxudmFyIHJvb3Q7XG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHsgLy8gQnJvd3NlciB3aW5kb3dcbiAgcm9vdCA9IHdpbmRvdztcbn0gZWxzZSBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7IC8vIFdlYiBXb3JrZXJcbiAgcm9vdCA9IHNlbGY7XG59IGVsc2UgeyAvLyBPdGhlciBlbnZpcm9ubWVudHNcbiAgY29uc29sZS53YXJuKFwiVXNpbmcgYnJvd3Nlci1vbmx5IHZlcnNpb24gb2Ygc3VwZXJhZ2VudCBpbiBub24tYnJvd3NlciBlbnZpcm9ubWVudFwiKTtcbiAgcm9vdCA9IHRoaXM7XG59XG5cbnZhciBFbWl0dGVyID0gcmVxdWlyZSgnY29tcG9uZW50LWVtaXR0ZXInKTtcbnZhciBSZXF1ZXN0QmFzZSA9IHJlcXVpcmUoJy4vcmVxdWVzdC1iYXNlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzLW9iamVjdCcpO1xudmFyIFJlc3BvbnNlQmFzZSA9IHJlcXVpcmUoJy4vcmVzcG9uc2UtYmFzZScpO1xudmFyIEFnZW50ID0gcmVxdWlyZSgnLi9hZ2VudC1iYXNlJyk7XG5cbi8qKlxuICogTm9vcC5cbiAqL1xuXG5mdW5jdGlvbiBub29wKCl7fTtcblxuLyoqXG4gKiBFeHBvc2UgYHJlcXVlc3RgLlxuICovXG5cbnZhciByZXF1ZXN0ID0gZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obWV0aG9kLCB1cmwpIHtcbiAgLy8gY2FsbGJhY2tcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIHVybCkge1xuICAgIHJldHVybiBuZXcgZXhwb3J0cy5SZXF1ZXN0KCdHRVQnLCBtZXRob2QpLmVuZCh1cmwpO1xuICB9XG5cbiAgLy8gdXJsIGZpcnN0XG4gIGlmICgxID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbmV3IGV4cG9ydHMuUmVxdWVzdCgnR0VUJywgbWV0aG9kKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgZXhwb3J0cy5SZXF1ZXN0KG1ldGhvZCwgdXJsKTtcbn1cblxuZXhwb3J0cy5SZXF1ZXN0ID0gUmVxdWVzdDtcblxuLyoqXG4gKiBEZXRlcm1pbmUgWEhSLlxuICovXG5cbnJlcXVlc3QuZ2V0WEhSID0gZnVuY3Rpb24gKCkge1xuICBpZiAocm9vdC5YTUxIdHRwUmVxdWVzdFxuICAgICAgJiYgKCFyb290LmxvY2F0aW9uIHx8ICdmaWxlOicgIT0gcm9vdC5sb2NhdGlvbi5wcm90b2NvbFxuICAgICAgICAgIHx8ICFyb290LkFjdGl2ZVhPYmplY3QpKSB7XG4gICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtcbiAgfSBlbHNlIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjYuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUC4zLjAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICB9XG4gIHRocm93IEVycm9yKFwiQnJvd3Nlci1vbmx5IHZlcnNpb24gb2Ygc3VwZXJhZ2VudCBjb3VsZCBub3QgZmluZCBYSFJcIik7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgYWRkZWQgdG8gc3VwcG9ydCBJRS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxudmFyIHRyaW0gPSAnJy50cmltXG4gID8gZnVuY3Rpb24ocykgeyByZXR1cm4gcy50cmltKCk7IH1cbiAgOiBmdW5jdGlvbihzKSB7IHJldHVybiBzLnJlcGxhY2UoLyheXFxzKnxcXHMqJCkvZywgJycpOyB9O1xuXG4vKipcbiAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gYG9iamAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2VyaWFsaXplKG9iaikge1xuICBpZiAoIWlzT2JqZWN0KG9iaikpIHJldHVybiBvYmo7XG4gIHZhciBwYWlycyA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgb2JqW2tleV0pO1xuICB9XG4gIHJldHVybiBwYWlycy5qb2luKCcmJyk7XG59XG5cbi8qKlxuICogSGVscHMgJ3NlcmlhbGl6ZScgd2l0aCBzZXJpYWxpemluZyBhcnJheXMuXG4gKiBNdXRhdGVzIHRoZSBwYWlycyBhcnJheS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBwYWlyc1xuICogQHBhcmFtIHtTdHJpbmd9IGtleVxuICogQHBhcmFtIHtNaXhlZH0gdmFsXG4gKi9cblxuZnVuY3Rpb24gcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgdmFsKSB7XG4gIGlmICh2YWwgIT0gbnVsbCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHZhbC5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgcHVzaEVuY29kZWRLZXlWYWx1ZVBhaXIocGFpcnMsIGtleSwgdik7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbCkpIHtcbiAgICAgIGZvcih2YXIgc3Via2V5IGluIHZhbCkge1xuICAgICAgICBwdXNoRW5jb2RlZEtleVZhbHVlUGFpcihwYWlycywga2V5ICsgJ1snICsgc3Via2V5ICsgJ10nLCB2YWxbc3Via2V5XSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhaXJzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSlcbiAgICAgICAgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsKSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgIHBhaXJzLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGtleSkpO1xuICB9XG59XG5cbi8qKlxuICogRXhwb3NlIHNlcmlhbGl6YXRpb24gbWV0aG9kLlxuICovXG5cbnJlcXVlc3Quc2VyaWFsaXplT2JqZWN0ID0gc2VyaWFsaXplO1xuXG4vKipcbiAgKiBQYXJzZSB0aGUgZ2l2ZW4geC13d3ctZm9ybS11cmxlbmNvZGVkIGBzdHJgLlxuICAqXG4gICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAqIEByZXR1cm4ge09iamVjdH1cbiAgKiBAYXBpIHByaXZhdGVcbiAgKi9cblxuZnVuY3Rpb24gcGFyc2VTdHJpbmcoc3RyKSB7XG4gIHZhciBvYmogPSB7fTtcbiAgdmFyIHBhaXJzID0gc3RyLnNwbGl0KCcmJyk7XG4gIHZhciBwYWlyO1xuICB2YXIgcG9zO1xuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBwYWlycy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIHBhaXIgPSBwYWlyc1tpXTtcbiAgICBwb3MgPSBwYWlyLmluZGV4T2YoJz0nKTtcbiAgICBpZiAocG9zID09IC0xKSB7XG4gICAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIpXSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmpbZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIuc2xpY2UoMCwgcG9zKSldID1cbiAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KHBhaXIuc2xpY2UocG9zICsgMSkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogRXhwb3NlIHBhcnNlci5cbiAqL1xuXG5yZXF1ZXN0LnBhcnNlU3RyaW5nID0gcGFyc2VTdHJpbmc7XG5cbi8qKlxuICogRGVmYXVsdCBNSU1FIHR5cGUgbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqL1xuXG5yZXF1ZXN0LnR5cGVzID0ge1xuICBodG1sOiAndGV4dC9odG1sJyxcbiAganNvbjogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICB4bWw6ICd0ZXh0L3htbCcsXG4gIHVybGVuY29kZWQ6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAnZm9ybS1kYXRhJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbn07XG5cbi8qKlxuICogRGVmYXVsdCBzZXJpYWxpemF0aW9uIG1hcC5cbiAqXG4gKiAgICAgc3VwZXJhZ2VudC5zZXJpYWxpemVbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24ob2JqKXtcbiAqICAgICAgIHJldHVybiAnZ2VuZXJhdGVkIHhtbCBoZXJlJztcbiAqICAgICB9O1xuICpcbiAqL1xuXG5yZXF1ZXN0LnNlcmlhbGl6ZSA9IHtcbiAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHNlcmlhbGl6ZSxcbiAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnN0cmluZ2lmeVxufTtcblxuLyoqXG4gICogRGVmYXVsdCBwYXJzZXJzLlxuICAqXG4gICogICAgIHN1cGVyYWdlbnQucGFyc2VbJ2FwcGxpY2F0aW9uL3htbCddID0gZnVuY3Rpb24oc3RyKXtcbiAgKiAgICAgICByZXR1cm4geyBvYmplY3QgcGFyc2VkIGZyb20gc3RyIH07XG4gICogICAgIH07XG4gICpcbiAgKi9cblxucmVxdWVzdC5wYXJzZSA9IHtcbiAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCc6IHBhcnNlU3RyaW5nLFxuICAnYXBwbGljYXRpb24vanNvbic6IEpTT04ucGFyc2Vcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGhlYWRlciBgc3RyYCBpbnRvXG4gKiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgbWFwcGVkIGZpZWxkcy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwYXJzZUhlYWRlcihzdHIpIHtcbiAgdmFyIGxpbmVzID0gc3RyLnNwbGl0KC9cXHI/XFxuLyk7XG4gIHZhciBmaWVsZHMgPSB7fTtcbiAgdmFyIGluZGV4O1xuICB2YXIgbGluZTtcbiAgdmFyIGZpZWxkO1xuICB2YXIgdmFsO1xuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBsaW5lcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIGxpbmUgPSBsaW5lc1tpXTtcbiAgICBpbmRleCA9IGxpbmUuaW5kZXhPZignOicpO1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHsgLy8gY291bGQgYmUgZW1wdHkgbGluZSwganVzdCBza2lwIGl0XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgZmllbGQgPSBsaW5lLnNsaWNlKDAsIGluZGV4KS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhbCA9IHRyaW0obGluZS5zbGljZShpbmRleCArIDEpKTtcbiAgICBmaWVsZHNbZmllbGRdID0gdmFsO1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkcztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBgbWltZWAgaXMganNvbiBvciBoYXMgK2pzb24gc3RydWN0dXJlZCBzeW50YXggc3VmZml4LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBtaW1lXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNKU09OKG1pbWUpIHtcbiAgLy8gc2hvdWxkIG1hdGNoIC9qc29uIG9yICtqc29uXG4gIC8vIGJ1dCBub3QgL2pzb24tc2VxXG4gIHJldHVybiAvW1xcLytdanNvbigkfFteLVxcd10pLy50ZXN0KG1pbWUpO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemUgYSBuZXcgYFJlc3BvbnNlYCB3aXRoIHRoZSBnaXZlbiBgeGhyYC5cbiAqXG4gKiAgLSBzZXQgZmxhZ3MgKC5vaywgLmVycm9yLCBldGMpXG4gKiAgLSBwYXJzZSBoZWFkZXJcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgQWxpYXNpbmcgYHN1cGVyYWdlbnRgIGFzIGByZXF1ZXN0YCBpcyBuaWNlOlxuICpcbiAqICAgICAgcmVxdWVzdCA9IHN1cGVyYWdlbnQ7XG4gKlxuICogIFdlIGNhbiB1c2UgdGhlIHByb21pc2UtbGlrZSBBUEksIG9yIHBhc3MgY2FsbGJhY2tzOlxuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy8nKS5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqICAgICAgcmVxdWVzdC5nZXQoJy8nLCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBTZW5kaW5nIGRhdGEgY2FuIGJlIGNoYWluZWQ6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJylcbiAqICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIE9yIHBhc3NlZCB0byBgLnNlbmQoKWA6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJylcbiAqICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSwgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgT3IgcGFzc2VkIHRvIGAucG9zdCgpYDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInLCB7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogT3IgZnVydGhlciByZWR1Y2VkIHRvIGEgc2luZ2xlIGNhbGwgZm9yIHNpbXBsZSBjYXNlczpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInLCB7IG5hbWU6ICd0aicgfSwgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiBAcGFyYW0ge1hNTEhUVFBSZXF1ZXN0fSB4aHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBSZXNwb25zZShyZXEpIHtcbiAgdGhpcy5yZXEgPSByZXE7XG4gIHRoaXMueGhyID0gdGhpcy5yZXEueGhyO1xuICAvLyByZXNwb25zZVRleHQgaXMgYWNjZXNzaWJsZSBvbmx5IGlmIHJlc3BvbnNlVHlwZSBpcyAnJyBvciAndGV4dCcgYW5kIG9uIG9sZGVyIGJyb3dzZXJzXG4gIHRoaXMudGV4dCA9ICgodGhpcy5yZXEubWV0aG9kICE9J0hFQUQnICYmICh0aGlzLnhoci5yZXNwb25zZVR5cGUgPT09ICcnIHx8IHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJ3RleHQnKSkgfHwgdHlwZW9mIHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgID8gdGhpcy54aHIucmVzcG9uc2VUZXh0XG4gICAgIDogbnVsbDtcbiAgdGhpcy5zdGF0dXNUZXh0ID0gdGhpcy5yZXEueGhyLnN0YXR1c1RleHQ7XG4gIHZhciBzdGF0dXMgPSB0aGlzLnhoci5zdGF0dXM7XG4gIC8vIGhhbmRsZSBJRTkgYnVnOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEwMDQ2OTcyL21zaWUtcmV0dXJucy1zdGF0dXMtY29kZS1vZi0xMjIzLWZvci1hamF4LXJlcXVlc3RcbiAgaWYgKHN0YXR1cyA9PT0gMTIyMykge1xuICAgIHN0YXR1cyA9IDIwNDtcbiAgfVxuICB0aGlzLl9zZXRTdGF0dXNQcm9wZXJ0aWVzKHN0YXR1cyk7XG4gIHRoaXMuaGVhZGVyID0gdGhpcy5oZWFkZXJzID0gcGFyc2VIZWFkZXIodGhpcy54aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpO1xuICAvLyBnZXRBbGxSZXNwb25zZUhlYWRlcnMgc29tZXRpbWVzIGZhbHNlbHkgcmV0dXJucyBcIlwiIGZvciBDT1JTIHJlcXVlc3RzLCBidXRcbiAgLy8gZ2V0UmVzcG9uc2VIZWFkZXIgc3RpbGwgd29ya3MuIHNvIHdlIGdldCBjb250ZW50LXR5cGUgZXZlbiBpZiBnZXR0aW5nXG4gIC8vIG90aGVyIGhlYWRlcnMgZmFpbHMuXG4gIHRoaXMuaGVhZGVyWydjb250ZW50LXR5cGUnXSA9IHRoaXMueGhyLmdldFJlc3BvbnNlSGVhZGVyKCdjb250ZW50LXR5cGUnKTtcbiAgdGhpcy5fc2V0SGVhZGVyUHJvcGVydGllcyh0aGlzLmhlYWRlcik7XG5cbiAgaWYgKG51bGwgPT09IHRoaXMudGV4dCAmJiByZXEuX3Jlc3BvbnNlVHlwZSkge1xuICAgIHRoaXMuYm9keSA9IHRoaXMueGhyLnJlc3BvbnNlO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuYm9keSA9IHRoaXMucmVxLm1ldGhvZCAhPSAnSEVBRCdcbiAgICAgID8gdGhpcy5fcGFyc2VCb2R5KHRoaXMudGV4dCA/IHRoaXMudGV4dCA6IHRoaXMueGhyLnJlc3BvbnNlKVxuICAgICAgOiBudWxsO1xuICB9XG59XG5cblJlc3BvbnNlQmFzZShSZXNwb25zZS5wcm90b3R5cGUpO1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBib2R5IGBzdHJgLlxuICpcbiAqIFVzZWQgZm9yIGF1dG8tcGFyc2luZyBvZiBib2RpZXMuIFBhcnNlcnNcbiAqIGFyZSBkZWZpbmVkIG9uIHRoZSBgc3VwZXJhZ2VudC5wYXJzZWAgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge01peGVkfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLl9wYXJzZUJvZHkgPSBmdW5jdGlvbihzdHIpIHtcbiAgdmFyIHBhcnNlID0gcmVxdWVzdC5wYXJzZVt0aGlzLnR5cGVdO1xuICBpZiAodGhpcy5yZXEuX3BhcnNlcikge1xuICAgIHJldHVybiB0aGlzLnJlcS5fcGFyc2VyKHRoaXMsIHN0cik7XG4gIH1cbiAgaWYgKCFwYXJzZSAmJiBpc0pTT04odGhpcy50eXBlKSkge1xuICAgIHBhcnNlID0gcmVxdWVzdC5wYXJzZVsnYXBwbGljYXRpb24vanNvbiddO1xuICB9XG4gIHJldHVybiBwYXJzZSAmJiBzdHIgJiYgKHN0ci5sZW5ndGggfHwgc3RyIGluc3RhbmNlb2YgT2JqZWN0KVxuICAgID8gcGFyc2Uoc3RyKVxuICAgIDogbnVsbDtcbn07XG5cbi8qKlxuICogUmV0dXJuIGFuIGBFcnJvcmAgcmVwcmVzZW50YXRpdmUgb2YgdGhpcyByZXNwb25zZS5cbiAqXG4gKiBAcmV0dXJuIHtFcnJvcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLnRvRXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgcmVxID0gdGhpcy5yZXE7XG4gIHZhciBtZXRob2QgPSByZXEubWV0aG9kO1xuICB2YXIgdXJsID0gcmVxLnVybDtcblxuICB2YXIgbXNnID0gJ2Nhbm5vdCAnICsgbWV0aG9kICsgJyAnICsgdXJsICsgJyAoJyArIHRoaXMuc3RhdHVzICsgJyknO1xuICB2YXIgZXJyID0gbmV3IEVycm9yKG1zZyk7XG4gIGVyci5zdGF0dXMgPSB0aGlzLnN0YXR1cztcbiAgZXJyLm1ldGhvZCA9IG1ldGhvZDtcbiAgZXJyLnVybCA9IHVybDtcblxuICByZXR1cm4gZXJyO1xufTtcblxuLyoqXG4gKiBFeHBvc2UgYFJlc3BvbnNlYC5cbiAqL1xuXG5yZXF1ZXN0LlJlc3BvbnNlID0gUmVzcG9uc2U7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVxdWVzdGAgd2l0aCB0aGUgZ2l2ZW4gYG1ldGhvZGAgYW5kIGB1cmxgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBtZXRob2RcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gUmVxdWVzdChtZXRob2QsIHVybCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuX3F1ZXJ5ID0gdGhpcy5fcXVlcnkgfHwgW107XG4gIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICB0aGlzLnVybCA9IHVybDtcbiAgdGhpcy5oZWFkZXIgPSB7fTsgLy8gcHJlc2VydmVzIGhlYWRlciBuYW1lIGNhc2VcbiAgdGhpcy5faGVhZGVyID0ge307IC8vIGNvZXJjZXMgaGVhZGVyIG5hbWVzIHRvIGxvd2VyY2FzZVxuICB0aGlzLm9uKCdlbmQnLCBmdW5jdGlvbigpe1xuICAgIHZhciBlcnIgPSBudWxsO1xuICAgIHZhciByZXMgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IG5ldyBSZXNwb25zZShzZWxmKTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIGVyciA9IG5ldyBFcnJvcignUGFyc2VyIGlzIHVuYWJsZSB0byBwYXJzZSB0aGUgcmVzcG9uc2UnKTtcbiAgICAgIGVyci5wYXJzZSA9IHRydWU7XG4gICAgICBlcnIub3JpZ2luYWwgPSBlO1xuICAgICAgLy8gaXNzdWUgIzY3NTogcmV0dXJuIHRoZSByYXcgcmVzcG9uc2UgaWYgdGhlIHJlc3BvbnNlIHBhcnNpbmcgZmFpbHNcbiAgICAgIGlmIChzZWxmLnhocikge1xuICAgICAgICAvLyBpZTkgZG9lc24ndCBoYXZlICdyZXNwb25zZScgcHJvcGVydHlcbiAgICAgICAgZXJyLnJhd1Jlc3BvbnNlID0gdHlwZW9mIHNlbGYueGhyLnJlc3BvbnNlVHlwZSA9PSAndW5kZWZpbmVkJyA/IHNlbGYueGhyLnJlc3BvbnNlVGV4dCA6IHNlbGYueGhyLnJlc3BvbnNlO1xuICAgICAgICAvLyBpc3N1ZSAjODc2OiByZXR1cm4gdGhlIGh0dHAgc3RhdHVzIGNvZGUgaWYgdGhlIHJlc3BvbnNlIHBhcnNpbmcgZmFpbHNcbiAgICAgICAgZXJyLnN0YXR1cyA9IHNlbGYueGhyLnN0YXR1cyA/IHNlbGYueGhyLnN0YXR1cyA6IG51bGw7XG4gICAgICAgIGVyci5zdGF0dXNDb2RlID0gZXJyLnN0YXR1czsgLy8gYmFja3dhcmRzLWNvbXBhdCBvbmx5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnIucmF3UmVzcG9uc2UgPSBudWxsO1xuICAgICAgICBlcnIuc3RhdHVzID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlbGYuY2FsbGJhY2soZXJyKTtcbiAgICB9XG5cbiAgICBzZWxmLmVtaXQoJ3Jlc3BvbnNlJywgcmVzKTtcblxuICAgIHZhciBuZXdfZXJyO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXNlbGYuX2lzUmVzcG9uc2VPSyhyZXMpKSB7XG4gICAgICAgIG5ld19lcnIgPSBuZXcgRXJyb3IocmVzLnN0YXR1c1RleHQgfHwgJ1Vuc3VjY2Vzc2Z1bCBIVFRQIHJlc3BvbnNlJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaChjdXN0b21fZXJyKSB7XG4gICAgICBuZXdfZXJyID0gY3VzdG9tX2VycjsgLy8gb2soKSBjYWxsYmFjayBjYW4gdGhyb3dcbiAgICB9XG5cbiAgICAvLyAjMTAwMCBkb24ndCBjYXRjaCBlcnJvcnMgZnJvbSB0aGUgY2FsbGJhY2sgdG8gYXZvaWQgZG91YmxlIGNhbGxpbmcgaXRcbiAgICBpZiAobmV3X2Vycikge1xuICAgICAgbmV3X2Vyci5vcmlnaW5hbCA9IGVycjtcbiAgICAgIG5ld19lcnIucmVzcG9uc2UgPSByZXM7XG4gICAgICBuZXdfZXJyLnN0YXR1cyA9IHJlcy5zdGF0dXM7XG4gICAgICBzZWxmLmNhbGxiYWNrKG5ld19lcnIsIHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGYuY2FsbGJhY2sobnVsbCwgcmVzKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIE1peGluIGBFbWl0dGVyYCBhbmQgYFJlcXVlc3RCYXNlYC5cbiAqL1xuXG5FbWl0dGVyKFJlcXVlc3QucHJvdG90eXBlKTtcblJlcXVlc3RCYXNlKFJlcXVlc3QucHJvdG90eXBlKTtcblxuLyoqXG4gKiBTZXQgQ29udGVudC1UeXBlIHRvIGB0eXBlYCwgbWFwcGluZyB2YWx1ZXMgZnJvbSBgcmVxdWVzdC50eXBlc2AuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICBzdXBlcmFnZW50LnR5cGVzLnhtbCA9ICdhcHBsaWNhdGlvbi94bWwnO1xuICpcbiAqICAgICAgcmVxdWVzdC5wb3N0KCcvJylcbiAqICAgICAgICAudHlwZSgneG1sJylcbiAqICAgICAgICAuc2VuZCh4bWxzdHJpbmcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCdhcHBsaWNhdGlvbi94bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnR5cGUgPSBmdW5jdGlvbih0eXBlKXtcbiAgdGhpcy5zZXQoJ0NvbnRlbnQtVHlwZScsIHJlcXVlc3QudHlwZXNbdHlwZV0gfHwgdHlwZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgQWNjZXB0IHRvIGB0eXBlYCwgbWFwcGluZyB2YWx1ZXMgZnJvbSBgcmVxdWVzdC50eXBlc2AuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICBzdXBlcmFnZW50LnR5cGVzLmpzb24gPSAnYXBwbGljYXRpb24vanNvbic7XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnL2FnZW50JylcbiAqICAgICAgICAuYWNjZXB0KCdqc29uJylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBhY2NlcHRcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hY2NlcHQgPSBmdW5jdGlvbih0eXBlKXtcbiAgdGhpcy5zZXQoJ0FjY2VwdCcsIHJlcXVlc3QudHlwZXNbdHlwZV0gfHwgdHlwZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgQXV0aG9yaXphdGlvbiBmaWVsZCB2YWx1ZSB3aXRoIGB1c2VyYCBhbmQgYHBhc3NgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1c2VyXG4gKiBAcGFyYW0ge1N0cmluZ30gW3Bhc3NdIG9wdGlvbmFsIGluIGNhc2Ugb2YgdXNpbmcgJ2JlYXJlcicgYXMgdHlwZVxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgd2l0aCAndHlwZScgcHJvcGVydHkgJ2F1dG8nLCAnYmFzaWMnIG9yICdiZWFyZXInIChkZWZhdWx0ICdiYXNpYycpXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXV0aCA9IGZ1bmN0aW9uKHVzZXIsIHBhc3MsIG9wdGlvbnMpe1xuICBpZiAoMSA9PT0gYXJndW1lbnRzLmxlbmd0aCkgcGFzcyA9ICcnO1xuICBpZiAodHlwZW9mIHBhc3MgPT09ICdvYmplY3QnICYmIHBhc3MgIT09IG51bGwpIHsgLy8gcGFzcyBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHJlcGxhY2VkIHdpdGggb3B0aW9uc1xuICAgIG9wdGlvbnMgPSBwYXNzO1xuICAgIHBhc3MgPSAnJztcbiAgfVxuICBpZiAoIW9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgdHlwZTogJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIGJ0b2EgPyAnYmFzaWMnIDogJ2F1dG8nLFxuICAgIH07XG4gIH1cblxuICB2YXIgZW5jb2RlciA9IGZ1bmN0aW9uKHN0cmluZykge1xuICAgIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgYnRvYSkge1xuICAgICAgcmV0dXJuIGJ0b2Eoc3RyaW5nKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXNlIGJhc2ljIGF1dGgsIGJ0b2EgaXMgbm90IGEgZnVuY3Rpb24nKTtcbiAgfTtcblxuICByZXR1cm4gdGhpcy5fYXV0aCh1c2VyLCBwYXNzLCBvcHRpb25zLCBlbmNvZGVyKTtcbn07XG5cbi8qKlxuICogQWRkIHF1ZXJ5LXN0cmluZyBgdmFsYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgIHJlcXVlc3QuZ2V0KCcvc2hvZXMnKVxuICogICAgIC5xdWVyeSgnc2l6ZT0xMCcpXG4gKiAgICAgLnF1ZXJ5KHsgY29sb3I6ICdibHVlJyB9KVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fFN0cmluZ30gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbih2YWwpe1xuICBpZiAoJ3N0cmluZycgIT0gdHlwZW9mIHZhbCkgdmFsID0gc2VyaWFsaXplKHZhbCk7XG4gIGlmICh2YWwpIHRoaXMuX3F1ZXJ5LnB1c2godmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFF1ZXVlIHRoZSBnaXZlbiBgZmlsZWAgYXMgYW4gYXR0YWNobWVudCB0byB0aGUgc3BlY2lmaWVkIGBmaWVsZGAsXG4gKiB3aXRoIG9wdGlvbmFsIGBvcHRpb25zYCAob3IgZmlsZW5hbWUpLlxuICpcbiAqIGBgYCBqc1xuICogcmVxdWVzdC5wb3N0KCcvdXBsb2FkJylcbiAqICAgLmF0dGFjaCgnY29udGVudCcsIG5ldyBCbG9iKFsnPGEgaWQ9XCJhXCI+PGIgaWQ9XCJiXCI+aGV5ITwvYj48L2E+J10sIHsgdHlwZTogXCJ0ZXh0L2h0bWxcIn0pKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHBhcmFtIHtCbG9ifEZpbGV9IGZpbGVcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmF0dGFjaCA9IGZ1bmN0aW9uKGZpZWxkLCBmaWxlLCBvcHRpb25zKXtcbiAgaWYgKGZpbGUpIHtcbiAgICBpZiAodGhpcy5fZGF0YSkge1xuICAgICAgdGhyb3cgRXJyb3IoXCJzdXBlcmFnZW50IGNhbid0IG1peCAuc2VuZCgpIGFuZCAuYXR0YWNoKClcIik7XG4gICAgfVxuXG4gICAgdGhpcy5fZ2V0Rm9ybURhdGEoKS5hcHBlbmQoZmllbGQsIGZpbGUsIG9wdGlvbnMgfHwgZmlsZS5uYW1lKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cblJlcXVlc3QucHJvdG90eXBlLl9nZXRGb3JtRGF0YSA9IGZ1bmN0aW9uKCl7XG4gIGlmICghdGhpcy5fZm9ybURhdGEpIHtcbiAgICB0aGlzLl9mb3JtRGF0YSA9IG5ldyByb290LkZvcm1EYXRhKCk7XG4gIH1cbiAgcmV0dXJuIHRoaXMuX2Zvcm1EYXRhO1xufTtcblxuLyoqXG4gKiBJbnZva2UgdGhlIGNhbGxiYWNrIHdpdGggYGVycmAgYW5kIGByZXNgXG4gKiBhbmQgaGFuZGxlIGFyaXR5IGNoZWNrLlxuICpcbiAqIEBwYXJhbSB7RXJyb3J9IGVyclxuICogQHBhcmFtIHtSZXNwb25zZX0gcmVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jYWxsYmFjayA9IGZ1bmN0aW9uKGVyciwgcmVzKXtcbiAgaWYgKHRoaXMuX3Nob3VsZFJldHJ5KGVyciwgcmVzKSkge1xuICAgIHJldHVybiB0aGlzLl9yZXRyeSgpO1xuICB9XG5cbiAgdmFyIGZuID0gdGhpcy5fY2FsbGJhY2s7XG4gIHRoaXMuY2xlYXJUaW1lb3V0KCk7XG5cbiAgaWYgKGVycikge1xuICAgIGlmICh0aGlzLl9tYXhSZXRyaWVzKSBlcnIucmV0cmllcyA9IHRoaXMuX3JldHJpZXMgLSAxO1xuICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpO1xuICB9XG5cbiAgZm4oZXJyLCByZXMpO1xufTtcblxuLyoqXG4gKiBJbnZva2UgY2FsbGJhY2sgd2l0aCB4LWRvbWFpbiBlcnJvci5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jcm9zc0RvbWFpbkVycm9yID0gZnVuY3Rpb24oKXtcbiAgdmFyIGVyciA9IG5ldyBFcnJvcignUmVxdWVzdCBoYXMgYmVlbiB0ZXJtaW5hdGVkXFxuUG9zc2libGUgY2F1c2VzOiB0aGUgbmV0d29yayBpcyBvZmZsaW5lLCBPcmlnaW4gaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCB0aGUgcGFnZSBpcyBiZWluZyB1bmxvYWRlZCwgZXRjLicpO1xuICBlcnIuY3Jvc3NEb21haW4gPSB0cnVlO1xuXG4gIGVyci5zdGF0dXMgPSB0aGlzLnN0YXR1cztcbiAgZXJyLm1ldGhvZCA9IHRoaXMubWV0aG9kO1xuICBlcnIudXJsID0gdGhpcy51cmw7XG5cbiAgdGhpcy5jYWxsYmFjayhlcnIpO1xufTtcblxuLy8gVGhpcyBvbmx5IHdhcm5zLCBiZWNhdXNlIHRoZSByZXF1ZXN0IGlzIHN0aWxsIGxpa2VseSB0byB3b3JrXG5SZXF1ZXN0LnByb3RvdHlwZS5idWZmZXIgPSBSZXF1ZXN0LnByb3RvdHlwZS5jYSA9IFJlcXVlc3QucHJvdG90eXBlLmFnZW50ID0gZnVuY3Rpb24oKXtcbiAgY29uc29sZS53YXJuKFwiVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgdmVyc2lvbiBvZiBzdXBlcmFnZW50XCIpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIFRoaXMgdGhyb3dzLCBiZWNhdXNlIGl0IGNhbid0IHNlbmQvcmVjZWl2ZSBkYXRhIGFzIGV4cGVjdGVkXG5SZXF1ZXN0LnByb3RvdHlwZS5waXBlID0gUmVxdWVzdC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbigpe1xuICB0aHJvdyBFcnJvcihcIlN0cmVhbWluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGJyb3dzZXIgdmVyc2lvbiBvZiBzdXBlcmFnZW50XCIpO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiBgb2JqYCBpcyBhIGhvc3Qgb2JqZWN0LFxuICogd2UgZG9uJ3Qgd2FudCB0byBzZXJpYWxpemUgdGhlc2UgOilcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblJlcXVlc3QucHJvdG90eXBlLl9pc0hvc3QgPSBmdW5jdGlvbiBfaXNIb3N0KG9iaikge1xuICAvLyBOYXRpdmUgb2JqZWN0cyBzdHJpbmdpZnkgdG8gW29iamVjdCBGaWxlXSwgW29iamVjdCBCbG9iXSwgW29iamVjdCBGb3JtRGF0YV0sIGV0Yy5cbiAgcmV0dXJuIG9iaiAmJiAnb2JqZWN0JyA9PT0gdHlwZW9mIG9iaiAmJiAhQXJyYXkuaXNBcnJheShvYmopICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopICE9PSAnW29iamVjdCBPYmplY3RdJztcbn1cblxuLyoqXG4gKiBJbml0aWF0ZSByZXF1ZXN0LCBpbnZva2luZyBjYWxsYmFjayBgZm4ocmVzKWBcbiAqIHdpdGggYW4gaW5zdGFuY2VvZiBgUmVzcG9uc2VgLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oZm4pe1xuICBpZiAodGhpcy5fZW5kQ2FsbGVkKSB7XG4gICAgY29uc29sZS53YXJuKFwiV2FybmluZzogLmVuZCgpIHdhcyBjYWxsZWQgdHdpY2UuIFRoaXMgaXMgbm90IHN1cHBvcnRlZCBpbiBzdXBlcmFnZW50XCIpO1xuICB9XG4gIHRoaXMuX2VuZENhbGxlZCA9IHRydWU7XG5cbiAgLy8gc3RvcmUgY2FsbGJhY2tcbiAgdGhpcy5fY2FsbGJhY2sgPSBmbiB8fCBub29wO1xuXG4gIC8vIHF1ZXJ5c3RyaW5nXG4gIHRoaXMuX2ZpbmFsaXplUXVlcnlTdHJpbmcoKTtcblxuICByZXR1cm4gdGhpcy5fZW5kKCk7XG59O1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5fZW5kID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHhociA9ICh0aGlzLnhociA9IHJlcXVlc3QuZ2V0WEhSKCkpO1xuICB2YXIgZGF0YSA9IHRoaXMuX2Zvcm1EYXRhIHx8IHRoaXMuX2RhdGE7XG5cbiAgdGhpcy5fc2V0VGltZW91dHMoKTtcblxuICAvLyBzdGF0ZSBjaGFuZ2VcbiAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCl7XG4gICAgdmFyIHJlYWR5U3RhdGUgPSB4aHIucmVhZHlTdGF0ZTtcbiAgICBpZiAocmVhZHlTdGF0ZSA+PSAyICYmIHNlbGYuX3Jlc3BvbnNlVGltZW91dFRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQoc2VsZi5fcmVzcG9uc2VUaW1lb3V0VGltZXIpO1xuICAgIH1cbiAgICBpZiAoNCAhPSByZWFkeVN0YXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSW4gSUU5LCByZWFkcyB0byBhbnkgcHJvcGVydHkgKGUuZy4gc3RhdHVzKSBvZmYgb2YgYW4gYWJvcnRlZCBYSFIgd2lsbFxuICAgIC8vIHJlc3VsdCBpbiB0aGUgZXJyb3IgXCJDb3VsZCBub3QgY29tcGxldGUgdGhlIG9wZXJhdGlvbiBkdWUgdG8gZXJyb3IgYzAwYzAyM2ZcIlxuICAgIHZhciBzdGF0dXM7XG4gICAgdHJ5IHsgc3RhdHVzID0geGhyLnN0YXR1cyB9IGNhdGNoKGUpIHsgc3RhdHVzID0gMDsgfVxuXG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIGlmIChzZWxmLnRpbWVkb3V0IHx8IHNlbGYuX2Fib3J0ZWQpIHJldHVybjtcbiAgICAgIHJldHVybiBzZWxmLmNyb3NzRG9tYWluRXJyb3IoKTtcbiAgICB9XG4gICAgc2VsZi5lbWl0KCdlbmQnKTtcbiAgfTtcblxuICAvLyBwcm9ncmVzc1xuICB2YXIgaGFuZGxlUHJvZ3Jlc3MgPSBmdW5jdGlvbihkaXJlY3Rpb24sIGUpIHtcbiAgICBpZiAoZS50b3RhbCA+IDApIHtcbiAgICAgIGUucGVyY2VudCA9IGUubG9hZGVkIC8gZS50b3RhbCAqIDEwMDtcbiAgICB9XG4gICAgZS5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgc2VsZi5lbWl0KCdwcm9ncmVzcycsIGUpO1xuICB9O1xuICBpZiAodGhpcy5oYXNMaXN0ZW5lcnMoJ3Byb2dyZXNzJykpIHtcbiAgICB0cnkge1xuICAgICAgeGhyLm9ucHJvZ3Jlc3MgPSBoYW5kbGVQcm9ncmVzcy5iaW5kKG51bGwsICdkb3dubG9hZCcpO1xuICAgICAgaWYgKHhoci51cGxvYWQpIHtcbiAgICAgICAgeGhyLnVwbG9hZC5vbnByb2dyZXNzID0gaGFuZGxlUHJvZ3Jlc3MuYmluZChudWxsLCAndXBsb2FkJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICAvLyBBY2Nlc3NpbmcgeGhyLnVwbG9hZCBmYWlscyBpbiBJRSBmcm9tIGEgd2ViIHdvcmtlciwgc28ganVzdCBwcmV0ZW5kIGl0IGRvZXNuJ3QgZXhpc3QuXG4gICAgICAvLyBSZXBvcnRlZCBoZXJlOlxuICAgICAgLy8gaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vSUUvZmVlZGJhY2svZGV0YWlscy84MzcyNDUveG1saHR0cHJlcXVlc3QtdXBsb2FkLXRocm93cy1pbnZhbGlkLWFyZ3VtZW50LXdoZW4tdXNlZC1mcm9tLXdlYi13b3JrZXItY29udGV4dFxuICAgIH1cbiAgfVxuXG4gIC8vIGluaXRpYXRlIHJlcXVlc3RcbiAgdHJ5IHtcbiAgICBpZiAodGhpcy51c2VybmFtZSAmJiB0aGlzLnBhc3N3b3JkKSB7XG4gICAgICB4aHIub3Blbih0aGlzLm1ldGhvZCwgdGhpcy51cmwsIHRydWUsIHRoaXMudXNlcm5hbWUsIHRoaXMucGFzc3dvcmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB4aHIub3Blbih0aGlzLm1ldGhvZCwgdGhpcy51cmwsIHRydWUpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gc2VlICMxMTQ5XG4gICAgcmV0dXJuIHRoaXMuY2FsbGJhY2soZXJyKTtcbiAgfVxuXG4gIC8vIENPUlNcbiAgaWYgKHRoaXMuX3dpdGhDcmVkZW50aWFscykgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWU7XG5cbiAgLy8gYm9keVxuICBpZiAoIXRoaXMuX2Zvcm1EYXRhICYmICdHRVQnICE9IHRoaXMubWV0aG9kICYmICdIRUFEJyAhPSB0aGlzLm1ldGhvZCAmJiAnc3RyaW5nJyAhPSB0eXBlb2YgZGF0YSAmJiAhdGhpcy5faXNIb3N0KGRhdGEpKSB7XG4gICAgLy8gc2VyaWFsaXplIHN0dWZmXG4gICAgdmFyIGNvbnRlbnRUeXBlID0gdGhpcy5faGVhZGVyWydjb250ZW50LXR5cGUnXTtcbiAgICB2YXIgc2VyaWFsaXplID0gdGhpcy5fc2VyaWFsaXplciB8fCByZXF1ZXN0LnNlcmlhbGl6ZVtjb250ZW50VHlwZSA/IGNvbnRlbnRUeXBlLnNwbGl0KCc7JylbMF0gOiAnJ107XG4gICAgaWYgKCFzZXJpYWxpemUgJiYgaXNKU09OKGNvbnRlbnRUeXBlKSkge1xuICAgICAgc2VyaWFsaXplID0gcmVxdWVzdC5zZXJpYWxpemVbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB9XG4gICAgaWYgKHNlcmlhbGl6ZSkgZGF0YSA9IHNlcmlhbGl6ZShkYXRhKTtcbiAgfVxuXG4gIC8vIHNldCBoZWFkZXIgZmllbGRzXG4gIGZvciAodmFyIGZpZWxkIGluIHRoaXMuaGVhZGVyKSB7XG4gICAgaWYgKG51bGwgPT0gdGhpcy5oZWFkZXJbZmllbGRdKSBjb250aW51ZTtcblxuICAgIGlmICh0aGlzLmhlYWRlci5oYXNPd25Qcm9wZXJ0eShmaWVsZCkpXG4gICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihmaWVsZCwgdGhpcy5oZWFkZXJbZmllbGRdKTtcbiAgfVxuXG4gIGlmICh0aGlzLl9yZXNwb25zZVR5cGUpIHtcbiAgICB4aHIucmVzcG9uc2VUeXBlID0gdGhpcy5fcmVzcG9uc2VUeXBlO1xuICB9XG5cbiAgLy8gc2VuZCBzdHVmZlxuICB0aGlzLmVtaXQoJ3JlcXVlc3QnLCB0aGlzKTtcblxuICAvLyBJRTExIHhoci5zZW5kKHVuZGVmaW5lZCkgc2VuZHMgJ3VuZGVmaW5lZCcgc3RyaW5nIGFzIFBPU1QgcGF5bG9hZCAoaW5zdGVhZCBvZiBub3RoaW5nKVxuICAvLyBXZSBuZWVkIG51bGwgaGVyZSBpZiBkYXRhIGlzIHVuZGVmaW5lZFxuICB4aHIuc2VuZCh0eXBlb2YgZGF0YSAhPT0gJ3VuZGVmaW5lZCcgPyBkYXRhIDogbnVsbCk7XG4gIHJldHVybiB0aGlzO1xufTtcblxucmVxdWVzdC5hZ2VudCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IEFnZW50KCk7XG59O1xuXG5bXCJHRVRcIiwgXCJQT1NUXCIsIFwiT1BUSU9OU1wiLCBcIlBBVENIXCIsIFwiUFVUXCIsIFwiREVMRVRFXCJdLmZvckVhY2goZnVuY3Rpb24obWV0aG9kKSB7XG4gIEFnZW50LnByb3RvdHlwZVttZXRob2QudG9Mb3dlckNhc2UoKV0gPSBmdW5jdGlvbih1cmwsIGZuKSB7XG4gICAgdmFyIHJlcSA9IG5ldyByZXF1ZXN0LlJlcXVlc3QobWV0aG9kLCB1cmwpO1xuICAgIHRoaXMuX3NldERlZmF1bHRzKHJlcSk7XG4gICAgaWYgKGZuKSB7XG4gICAgICByZXEuZW5kKGZuKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcTtcbiAgfTtcbn0pO1xuXG5BZ2VudC5wcm90b3R5cGUuZGVsID0gQWdlbnQucHJvdG90eXBlWydkZWxldGUnXTtcblxuLyoqXG4gKiBHRVQgYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gW2RhdGFdIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LmdldCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pIHtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ0dFVCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5xdWVyeShkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogSEVBRCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuaGVhZCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pIHtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ0hFQUQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgKGZuID0gZGF0YSksIChkYXRhID0gbnVsbCk7XG4gIGlmIChkYXRhKSByZXEucXVlcnkoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIE9QVElPTlMgcXVlcnkgdG8gYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gW2RhdGFdIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0Lm9wdGlvbnMgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdPUFRJT05TJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIERFTEVURSBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR9IFtkYXRhXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZGVsKHVybCwgZGF0YSwgZm4pIHtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ0RFTEVURScsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufVxuXG5yZXF1ZXN0WydkZWwnXSA9IGRlbDtcbnJlcXVlc3RbJ2RlbGV0ZSddID0gZGVsO1xuXG4vKipcbiAqIFBBVENIIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gW2RhdGFdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnBhdGNoID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUEFUQ0gnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgKGZuID0gZGF0YSksIChkYXRhID0gbnVsbCk7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogUE9TVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR9IFtkYXRhXVxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wb3N0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUE9TVCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQVVQgYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucHV0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUFVUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGFuIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNPYmplY3Qob2JqKSB7XG4gIHJldHVybiBudWxsICE9PSBvYmogJiYgJ29iamVjdCcgPT09IHR5cGVvZiBvYmo7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3Q7XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTW9kdWxlIG9mIG1peGVkLWluIGZ1bmN0aW9ucyBzaGFyZWQgYmV0d2VlbiBub2RlIGFuZCBjbGllbnQgY29kZVxuICovXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzLW9iamVjdCcpO1xuXG4vKipcbiAqIEV4cG9zZSBgUmVxdWVzdEJhc2VgLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gUmVxdWVzdEJhc2U7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVxdWVzdEJhc2VgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gUmVxdWVzdEJhc2Uob2JqKSB7XG4gIGlmIChvYmopIHJldHVybiBtaXhpbihvYmopO1xufVxuXG4vKipcbiAqIE1peGluIHRoZSBwcm90b3R5cGUgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBtaXhpbihvYmopIHtcbiAgZm9yICh2YXIga2V5IGluIFJlcXVlc3RCYXNlLnByb3RvdHlwZSkge1xuICAgIG9ialtrZXldID0gUmVxdWVzdEJhc2UucHJvdG90eXBlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBDbGVhciBwcmV2aW91cyB0aW1lb3V0LlxuICpcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuY2xlYXJUaW1lb3V0ID0gZnVuY3Rpb24gX2NsZWFyVGltZW91dCgpe1xuICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICBjbGVhclRpbWVvdXQodGhpcy5fcmVzcG9uc2VUaW1lb3V0VGltZXIpO1xuICBkZWxldGUgdGhpcy5fdGltZXI7XG4gIGRlbGV0ZSB0aGlzLl9yZXNwb25zZVRpbWVvdXRUaW1lcjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIE92ZXJyaWRlIGRlZmF1bHQgcmVzcG9uc2UgYm9keSBwYXJzZXJcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHRvIGNvbnZlcnQgaW5jb21pbmcgZGF0YSBpbnRvIHJlcXVlc3QuYm9keVxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uIHBhcnNlKGZuKXtcbiAgdGhpcy5fcGFyc2VyID0gZm47XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgZm9ybWF0IG9mIGJpbmFyeSByZXNwb25zZSBib2R5LlxuICogSW4gYnJvd3NlciB2YWxpZCBmb3JtYXRzIGFyZSAnYmxvYicgYW5kICdhcnJheWJ1ZmZlcicsXG4gKiB3aGljaCByZXR1cm4gQmxvYiBhbmQgQXJyYXlCdWZmZXIsIHJlc3BlY3RpdmVseS5cbiAqXG4gKiBJbiBOb2RlIGFsbCB2YWx1ZXMgcmVzdWx0IGluIEJ1ZmZlci5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC5yZXNwb25zZVR5cGUoJ2Jsb2InKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUucmVzcG9uc2VUeXBlID0gZnVuY3Rpb24odmFsKXtcbiAgdGhpcy5fcmVzcG9uc2VUeXBlID0gdmFsO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCByZXF1ZXN0IGJvZHkgc2VyaWFsaXplclxuICpcbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgdG8gY29udmVydCBkYXRhIHNldCB2aWEgLnNlbmQgb3IgLmF0dGFjaCBpbnRvIHBheWxvYWQgdG8gc2VuZFxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5zZXJpYWxpemUgPSBmdW5jdGlvbiBzZXJpYWxpemUoZm4pe1xuICB0aGlzLl9zZXJpYWxpemVyID0gZm47XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgdGltZW91dHMuXG4gKlxuICogLSByZXNwb25zZSB0aW1lb3V0IGlzIHRpbWUgYmV0d2VlbiBzZW5kaW5nIHJlcXVlc3QgYW5kIHJlY2VpdmluZyB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgcmVzcG9uc2UuIEluY2x1ZGVzIEROUyBhbmQgY29ubmVjdGlvbiB0aW1lLlxuICogLSBkZWFkbGluZSBpcyB0aGUgdGltZSBmcm9tIHN0YXJ0IG9mIHRoZSByZXF1ZXN0IHRvIHJlY2VpdmluZyByZXNwb25zZSBib2R5IGluIGZ1bGwuIElmIHRoZSBkZWFkbGluZSBpcyB0b28gc2hvcnQgbGFyZ2UgZmlsZXMgbWF5IG5vdCBsb2FkIGF0IGFsbCBvbiBzbG93IGNvbm5lY3Rpb25zLlxuICpcbiAqIFZhbHVlIG9mIDAgb3IgZmFsc2UgbWVhbnMgbm8gdGltZW91dC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcnxPYmplY3R9IG1zIG9yIHtyZXNwb25zZSwgZGVhZGxpbmV9XG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnRpbWVvdXQgPSBmdW5jdGlvbiB0aW1lb3V0KG9wdGlvbnMpe1xuICBpZiAoIW9wdGlvbnMgfHwgJ29iamVjdCcgIT09IHR5cGVvZiBvcHRpb25zKSB7XG4gICAgdGhpcy5fdGltZW91dCA9IG9wdGlvbnM7XG4gICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0ID0gMDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZvcih2YXIgb3B0aW9uIGluIG9wdGlvbnMpIHtcbiAgICBzd2l0Y2gob3B0aW9uKSB7XG4gICAgICBjYXNlICdkZWFkbGluZSc6XG4gICAgICAgIHRoaXMuX3RpbWVvdXQgPSBvcHRpb25zLmRlYWRsaW5lO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jlc3BvbnNlJzpcbiAgICAgICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0ID0gb3B0aW9ucy5yZXNwb25zZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oXCJVbmtub3duIHRpbWVvdXQgb3B0aW9uXCIsIG9wdGlvbik7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXQgbnVtYmVyIG9mIHJldHJ5IGF0dGVtcHRzIG9uIGVycm9yLlxuICpcbiAqIEZhaWxlZCByZXF1ZXN0cyB3aWxsIGJlIHJldHJpZWQgJ2NvdW50JyB0aW1lcyBpZiB0aW1lb3V0IG9yIGVyci5jb2RlID49IDUwMC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gY291bnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUucmV0cnkgPSBmdW5jdGlvbiByZXRyeShjb3VudCwgZm4pe1xuICAvLyBEZWZhdWx0IHRvIDEgaWYgbm8gY291bnQgcGFzc2VkIG9yIHRydWVcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDAgfHwgY291bnQgPT09IHRydWUpIGNvdW50ID0gMTtcbiAgaWYgKGNvdW50IDw9IDApIGNvdW50ID0gMDtcbiAgdGhpcy5fbWF4UmV0cmllcyA9IGNvdW50O1xuICB0aGlzLl9yZXRyaWVzID0gMDtcbiAgdGhpcy5fcmV0cnlDYWxsYmFjayA9IGZuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbnZhciBFUlJPUl9DT0RFUyA9IFtcbiAgJ0VDT05OUkVTRVQnLFxuICAnRVRJTUVET1VUJyxcbiAgJ0VBRERSSU5GTycsXG4gICdFU09DS0VUVElNRURPVVQnXG5dO1xuXG4vKipcbiAqIERldGVybWluZSBpZiBhIHJlcXVlc3Qgc2hvdWxkIGJlIHJldHJpZWQuXG4gKiAoQm9ycm93ZWQgZnJvbSBzZWdtZW50aW8vc3VwZXJhZ2VudC1yZXRyeSlcbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJcbiAqIEBwYXJhbSB7UmVzcG9uc2V9IFtyZXNdXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9zaG91bGRSZXRyeSA9IGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gIGlmICghdGhpcy5fbWF4UmV0cmllcyB8fCB0aGlzLl9yZXRyaWVzKysgPj0gdGhpcy5fbWF4UmV0cmllcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAodGhpcy5fcmV0cnlDYWxsYmFjaykge1xuICAgIHRyeSB7XG4gICAgICB2YXIgb3ZlcnJpZGUgPSB0aGlzLl9yZXRyeUNhbGxiYWNrKGVyciwgcmVzKTtcbiAgICAgIGlmIChvdmVycmlkZSA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAob3ZlcnJpZGUgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7XG4gICAgICAvLyB1bmRlZmluZWQgZmFsbHMgYmFjayB0byBkZWZhdWx0c1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICB9XG4gIH1cbiAgaWYgKHJlcyAmJiByZXMuc3RhdHVzICYmIHJlcy5zdGF0dXMgPj0gNTAwICYmIHJlcy5zdGF0dXMgIT0gNTAxKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGVycikge1xuICAgIGlmIChlcnIuY29kZSAmJiB+RVJST1JfQ09ERVMuaW5kZXhPZihlcnIuY29kZSkpIHJldHVybiB0cnVlO1xuICAgIC8vIFN1cGVyYWdlbnQgdGltZW91dFxuICAgIGlmIChlcnIudGltZW91dCAmJiBlcnIuY29kZSA9PSAnRUNPTk5BQk9SVEVEJykgcmV0dXJuIHRydWU7XG4gICAgaWYgKGVyci5jcm9zc0RvbWFpbikgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLyoqXG4gKiBSZXRyeSByZXF1ZXN0XG4gKlxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX3JldHJ5ID0gZnVuY3Rpb24oKSB7XG5cbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcblxuICAvLyBub2RlXG4gIGlmICh0aGlzLnJlcSkge1xuICAgIHRoaXMucmVxID0gbnVsbDtcbiAgICB0aGlzLnJlcSA9IHRoaXMucmVxdWVzdCgpO1xuICB9XG5cbiAgdGhpcy5fYWJvcnRlZCA9IGZhbHNlO1xuICB0aGlzLnRpbWVkb3V0ID0gZmFsc2U7XG5cbiAgcmV0dXJuIHRoaXMuX2VuZCgpO1xufTtcblxuLyoqXG4gKiBQcm9taXNlIHN1cHBvcnRcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZXNvbHZlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbcmVqZWN0XVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUudGhlbiA9IGZ1bmN0aW9uIHRoZW4ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gIGlmICghdGhpcy5fZnVsbGZpbGxlZFByb21pc2UpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHRoaXMuX2VuZENhbGxlZCkge1xuICAgICAgY29uc29sZS53YXJuKFwiV2FybmluZzogc3VwZXJhZ2VudCByZXF1ZXN0IHdhcyBzZW50IHR3aWNlLCBiZWNhdXNlIGJvdGggLmVuZCgpIGFuZCAudGhlbigpIHdlcmUgY2FsbGVkLiBOZXZlciBjYWxsIC5lbmQoKSBpZiB5b3UgdXNlIHByb21pc2VzXCIpO1xuICAgIH1cbiAgICB0aGlzLl9mdWxsZmlsbGVkUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKGlubmVyUmVzb2x2ZSwgaW5uZXJSZWplY3QpIHtcbiAgICAgIHNlbGYuZW5kKGZ1bmN0aW9uKGVyciwgcmVzKSB7XG4gICAgICAgIGlmIChlcnIpIGlubmVyUmVqZWN0KGVycik7XG4gICAgICAgIGVsc2UgaW5uZXJSZXNvbHZlKHJlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gdGhpcy5fZnVsbGZpbGxlZFByb21pc2UudGhlbihyZXNvbHZlLCByZWplY3QpO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlWydjYXRjaCddID0gZnVuY3Rpb24oY2IpIHtcbiAgcmV0dXJuIHRoaXMudGhlbih1bmRlZmluZWQsIGNiKTtcbn07XG5cbi8qKlxuICogQWxsb3cgZm9yIGV4dGVuc2lvblxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS51c2UgPSBmdW5jdGlvbiB1c2UoZm4pIHtcbiAgZm4odGhpcyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLm9rID0gZnVuY3Rpb24oY2IpIHtcbiAgaWYgKCdmdW5jdGlvbicgIT09IHR5cGVvZiBjYikgdGhyb3cgRXJyb3IoXCJDYWxsYmFjayByZXF1aXJlZFwiKTtcbiAgdGhpcy5fb2tDYWxsYmFjayA9IGNiO1xuICByZXR1cm4gdGhpcztcbn07XG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5faXNSZXNwb25zZU9LID0gZnVuY3Rpb24ocmVzKSB7XG4gIGlmICghcmVzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHRoaXMuX29rQ2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5fb2tDYWxsYmFjayhyZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJlcy5zdGF0dXMgPj0gMjAwICYmIHJlcy5zdGF0dXMgPCAzMDA7XG59O1xuXG4vKipcbiAqIEdldCByZXF1ZXN0IGhlYWRlciBgZmllbGRgLlxuICogQ2FzZS1pbnNlbnNpdGl2ZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgcmV0dXJuIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbn07XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgaGVhZGVyIGBmaWVsZGAgdmFsdWUuXG4gKiBUaGlzIGlzIGEgZGVwcmVjYXRlZCBpbnRlcm5hbCBBUEkuIFVzZSBgLmdldChmaWVsZClgIGluc3RlYWQuXG4gKlxuICogKGdldEhlYWRlciBpcyBubyBsb25nZXIgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBzdXBlcmFnZW50IGNvZGUgYmFzZSlcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICogQGRlcHJlY2F0ZWRcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuZ2V0SGVhZGVyID0gUmVxdWVzdEJhc2UucHJvdG90eXBlLmdldDtcblxuLyoqXG4gKiBTZXQgaGVhZGVyIGBmaWVsZGAgdG8gYHZhbGAsIG9yIG11bHRpcGxlIGZpZWxkcyB3aXRoIG9uZSBvYmplY3QuXG4gKiBDYXNlLWluc2Vuc2l0aXZlLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5zZXQoJ1gtQVBJLUtleScsICdmb29iYXInKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCh7IEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLCAnWC1BUEktS2V5JzogJ2Zvb2JhcicgfSlcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGZpZWxkXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKGZpZWxkLCB2YWwpe1xuICBpZiAoaXNPYmplY3QoZmllbGQpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGZpZWxkKSB7XG4gICAgICB0aGlzLnNldChrZXksIGZpZWxkW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV0gPSB2YWw7XG4gIHRoaXMuaGVhZGVyW2ZpZWxkXSA9IHZhbDtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBoZWFkZXIgYGZpZWxkYC5cbiAqIENhc2UtaW5zZW5zaXRpdmUuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiAgICAgIHJlcS5nZXQoJy8nKVxuICogICAgICAgIC51bnNldCgnVXNlci1BZ2VudCcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKi9cblJlcXVlc3RCYXNlLnByb3RvdHlwZS51bnNldCA9IGZ1bmN0aW9uKGZpZWxkKXtcbiAgZGVsZXRlIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbiAgZGVsZXRlIHRoaXMuaGVhZGVyW2ZpZWxkXTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFdyaXRlIHRoZSBmaWVsZCBgbmFtZWAgYW5kIGB2YWxgLCBvciBtdWx0aXBsZSBmaWVsZHMgd2l0aCBvbmUgb2JqZWN0XG4gKiBmb3IgXCJtdWx0aXBhcnQvZm9ybS1kYXRhXCIgcmVxdWVzdCBib2RpZXMuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoJ2ZvbycsICdiYXInKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoeyBmb286ICdiYXInLCBiYXo6ICdxdXgnIH0pXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ3xCbG9ifEZpbGV8QnVmZmVyfGZzLlJlYWRTdHJlYW19IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuZmllbGQgPSBmdW5jdGlvbihuYW1lLCB2YWwpIHtcbiAgLy8gbmFtZSBzaG91bGQgYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIG9iamVjdC5cbiAgaWYgKG51bGwgPT09IG5hbWUgfHwgdW5kZWZpbmVkID09PSBuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCcuZmllbGQobmFtZSwgdmFsKSBuYW1lIGNhbiBub3QgYmUgZW1wdHknKTtcbiAgfVxuXG4gIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgY29uc29sZS5lcnJvcihcIi5maWVsZCgpIGNhbid0IGJlIHVzZWQgaWYgLnNlbmQoKSBpcyB1c2VkLiBQbGVhc2UgdXNlIG9ubHkgLnNlbmQoKSBvciBvbmx5IC5maWVsZCgpICYgLmF0dGFjaCgpXCIpO1xuICB9XG5cbiAgaWYgKGlzT2JqZWN0KG5hbWUpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIG5hbWUpIHtcbiAgICAgIHRoaXMuZmllbGQoa2V5LCBuYW1lW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICBmb3IgKHZhciBpIGluIHZhbCkge1xuICAgICAgdGhpcy5maWVsZChuYW1lLCB2YWxbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHZhbCBzaG91bGQgYmUgZGVmaW5lZCBub3dcbiAgaWYgKG51bGwgPT09IHZhbCB8fCB1bmRlZmluZWQgPT09IHZhbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignLmZpZWxkKG5hbWUsIHZhbCkgdmFsIGNhbiBub3QgYmUgZW1wdHknKTtcbiAgfVxuICBpZiAoJ2Jvb2xlYW4nID09PSB0eXBlb2YgdmFsKSB7XG4gICAgdmFsID0gJycgKyB2YWw7XG4gIH1cbiAgdGhpcy5fZ2V0Rm9ybURhdGEoKS5hcHBlbmQobmFtZSwgdmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEFib3J0IHRoZSByZXF1ZXN0LCBhbmQgY2xlYXIgcG90ZW50aWFsIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5hYm9ydCA9IGZ1bmN0aW9uKCl7XG4gIGlmICh0aGlzLl9hYm9ydGVkKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdGhpcy5fYWJvcnRlZCA9IHRydWU7XG4gIHRoaXMueGhyICYmIHRoaXMueGhyLmFib3J0KCk7IC8vIGJyb3dzZXJcbiAgdGhpcy5yZXEgJiYgdGhpcy5yZXEuYWJvcnQoKTsgLy8gbm9kZVxuICB0aGlzLmNsZWFyVGltZW91dCgpO1xuICB0aGlzLmVtaXQoJ2Fib3J0Jyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9hdXRoID0gZnVuY3Rpb24odXNlciwgcGFzcywgb3B0aW9ucywgYmFzZTY0RW5jb2Rlcikge1xuICBzd2l0Y2ggKG9wdGlvbnMudHlwZSkge1xuICAgIGNhc2UgJ2Jhc2ljJzpcbiAgICAgIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgKyBiYXNlNjRFbmNvZGVyKHVzZXIgKyAnOicgKyBwYXNzKSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2F1dG8nOlxuICAgICAgdGhpcy51c2VybmFtZSA9IHVzZXI7XG4gICAgICB0aGlzLnBhc3N3b3JkID0gcGFzcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnYmVhcmVyJzogLy8gdXNhZ2Ugd291bGQgYmUgLmF1dGgoYWNjZXNzVG9rZW4sIHsgdHlwZTogJ2JlYXJlcicgfSlcbiAgICAgIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgdXNlcik7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogRW5hYmxlIHRyYW5zbWlzc2lvbiBvZiBjb29raWVzIHdpdGggeC1kb21haW4gcmVxdWVzdHMuXG4gKlxuICogTm90ZSB0aGF0IGZvciB0aGlzIHRvIHdvcmsgdGhlIG9yaWdpbiBtdXN0IG5vdCBiZVxuICogdXNpbmcgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5cIiB3aXRoIGEgd2lsZGNhcmQsXG4gKiBhbmQgYWxzbyBtdXN0IHNldCBcIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzXCJcbiAqIHRvIFwidHJ1ZVwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLndpdGhDcmVkZW50aWFscyA9IGZ1bmN0aW9uKG9uKSB7XG4gIC8vIFRoaXMgaXMgYnJvd3Nlci1vbmx5IGZ1bmN0aW9uYWxpdHkuIE5vZGUgc2lkZSBpcyBuby1vcC5cbiAgaWYgKG9uID09IHVuZGVmaW5lZCkgb24gPSB0cnVlO1xuICB0aGlzLl93aXRoQ3JlZGVudGlhbHMgPSBvbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCB0aGUgbWF4IHJlZGlyZWN0cyB0byBgbmAuIERvZXMgbm90aW5nIGluIGJyb3dzZXIgWEhSIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnJlZGlyZWN0cyA9IGZ1bmN0aW9uKG4pe1xuICB0aGlzLl9tYXhSZWRpcmVjdHMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogTWF4aW11bSBzaXplIG9mIGJ1ZmZlcmVkIHJlc3BvbnNlIGJvZHksIGluIGJ5dGVzLiBDb3VudHMgdW5jb21wcmVzc2VkIHNpemUuXG4gKiBEZWZhdWx0IDIwME1CLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLm1heFJlc3BvbnNlU2l6ZSA9IGZ1bmN0aW9uKG4pe1xuICBpZiAoJ251bWJlcicgIT09IHR5cGVvZiBuKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhcmd1bWVudFwiKTtcbiAgfVxuICB0aGlzLl9tYXhSZXNwb25zZVNpemUgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQ29udmVydCB0byBhIHBsYWluIGphdmFzY3JpcHQgb2JqZWN0IChub3QgSlNPTiBzdHJpbmcpIG9mIHNjYWxhciBwcm9wZXJ0aWVzLlxuICogTm90ZSBhcyB0aGlzIG1ldGhvZCBpcyBkZXNpZ25lZCB0byByZXR1cm4gYSB1c2VmdWwgbm9uLXRoaXMgdmFsdWUsXG4gKiBpdCBjYW5ub3QgYmUgY2hhaW5lZC5cbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9IGRlc2NyaWJpbmcgbWV0aG9kLCB1cmwsIGFuZCBkYXRhIG9mIHRoaXMgcmVxdWVzdFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICB1cmw6IHRoaXMudXJsLFxuICAgIGRhdGE6IHRoaXMuX2RhdGEsXG4gICAgaGVhZGVyczogdGhpcy5faGVhZGVyLFxuICB9O1xufTtcblxuLyoqXG4gKiBTZW5kIGBkYXRhYCBhcyB0aGUgcmVxdWVzdCBib2R5LCBkZWZhdWx0aW5nIHRoZSBgLnR5cGUoKWAgdG8gXCJqc29uXCIgd2hlblxuICogYW4gb2JqZWN0IGlzIGdpdmVuLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgIC8vIG1hbnVhbCBqc29uXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2pzb24nKVxuICogICAgICAgICAuc2VuZCgne1wibmFtZVwiOlwidGpcIn0nKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGF1dG8ganNvblxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG1hbnVhbCB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnZm9ybScpXG4gKiAgICAgICAgIC5zZW5kKCduYW1lPXRqJylcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBhdXRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdmb3JtJylcbiAqICAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gZGVmYXVsdHMgdG8geC13d3ctZm9ybS11cmxlbmNvZGVkXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKCduYW1lPXRvYmknKVxuICogICAgICAgIC5zZW5kKCdzcGVjaWVzPWZlcnJldCcpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGRhdGFcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uKGRhdGEpe1xuICB2YXIgaXNPYmogPSBpc09iamVjdChkYXRhKTtcbiAgdmFyIHR5cGUgPSB0aGlzLl9oZWFkZXJbJ2NvbnRlbnQtdHlwZSddO1xuXG4gIGlmICh0aGlzLl9mb3JtRGF0YSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCIuc2VuZCgpIGNhbid0IGJlIHVzZWQgaWYgLmF0dGFjaCgpIG9yIC5maWVsZCgpIGlzIHVzZWQuIFBsZWFzZSB1c2Ugb25seSAuc2VuZCgpIG9yIG9ubHkgLmZpZWxkKCkgJiAuYXR0YWNoKClcIik7XG4gIH1cblxuICBpZiAoaXNPYmogJiYgIXRoaXMuX2RhdGEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgdGhpcy5fZGF0YSA9IFtdO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzSG9zdChkYXRhKSkge1xuICAgICAgdGhpcy5fZGF0YSA9IHt9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChkYXRhICYmIHRoaXMuX2RhdGEgJiYgdGhpcy5faXNIb3N0KHRoaXMuX2RhdGEpKSB7XG4gICAgdGhyb3cgRXJyb3IoXCJDYW4ndCBtZXJnZSB0aGVzZSBzZW5kIGNhbGxzXCIpO1xuICB9XG5cbiAgLy8gbWVyZ2VcbiAgaWYgKGlzT2JqICYmIGlzT2JqZWN0KHRoaXMuX2RhdGEpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGFba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoJ3N0cmluZycgPT0gdHlwZW9mIGRhdGEpIHtcbiAgICAvLyBkZWZhdWx0IHRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICAgIGlmICghdHlwZSkgdGhpcy50eXBlKCdmb3JtJyk7XG4gICAgdHlwZSA9IHRoaXMuX2hlYWRlclsnY29udGVudC10eXBlJ107XG4gICAgaWYgKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnID09IHR5cGUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9kYXRhXG4gICAgICAgID8gdGhpcy5fZGF0YSArICcmJyArIGRhdGFcbiAgICAgICAgOiBkYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kYXRhID0gKHRoaXMuX2RhdGEgfHwgJycpICsgZGF0YTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fZGF0YSA9IGRhdGE7XG4gIH1cblxuICBpZiAoIWlzT2JqIHx8IHRoaXMuX2lzSG9zdChkYXRhKSkge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gZGVmYXVsdCB0byBqc29uXG4gIGlmICghdHlwZSkgdGhpcy50eXBlKCdqc29uJyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTb3J0IGBxdWVyeXN0cmluZ2AgYnkgdGhlIHNvcnQgZnVuY3Rpb25cbiAqXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICAgLy8gZGVmYXVsdCBvcmRlclxuICogICAgICAgcmVxdWVzdC5nZXQoJy91c2VyJylcbiAqICAgICAgICAgLnF1ZXJ5KCduYW1lPU5pY2snKVxuICogICAgICAgICAucXVlcnkoJ3NlYXJjaD1NYW5ueScpXG4gKiAgICAgICAgIC5zb3J0UXVlcnkoKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGN1c3RvbWl6ZWQgc29ydCBmdW5jdGlvblxuICogICAgICAgcmVxdWVzdC5nZXQoJy91c2VyJylcbiAqICAgICAgICAgLnF1ZXJ5KCduYW1lPU5pY2snKVxuICogICAgICAgICAucXVlcnkoJ3NlYXJjaD1NYW5ueScpXG4gKiAgICAgICAgIC5zb3J0UXVlcnkoZnVuY3Rpb24oYSwgYil7XG4gKiAgICAgICAgICAgcmV0dXJuIGEubGVuZ3RoIC0gYi5sZW5ndGg7XG4gKiAgICAgICAgIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHNvcnRcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuc29ydFF1ZXJ5ID0gZnVuY3Rpb24oc29ydCkge1xuICAvLyBfc29ydCBkZWZhdWx0IHRvIHRydWUgYnV0IG90aGVyd2lzZSBjYW4gYmUgYSBmdW5jdGlvbiBvciBib29sZWFuXG4gIHRoaXMuX3NvcnQgPSB0eXBlb2Ygc29ydCA9PT0gJ3VuZGVmaW5lZCcgPyB0cnVlIDogc29ydDtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIENvbXBvc2UgcXVlcnlzdHJpbmcgdG8gYXBwZW5kIHRvIHJlcS51cmxcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9maW5hbGl6ZVF1ZXJ5U3RyaW5nID0gZnVuY3Rpb24oKXtcbiAgdmFyIHF1ZXJ5ID0gdGhpcy5fcXVlcnkuam9pbignJicpO1xuICBpZiAocXVlcnkpIHtcbiAgICB0aGlzLnVybCArPSAodGhpcy51cmwuaW5kZXhPZignPycpID49IDAgPyAnJicgOiAnPycpICsgcXVlcnk7XG4gIH1cbiAgdGhpcy5fcXVlcnkubGVuZ3RoID0gMDsgLy8gTWFrZXMgdGhlIGNhbGwgaWRlbXBvdGVudFxuXG4gIGlmICh0aGlzLl9zb3J0KSB7XG4gICAgdmFyIGluZGV4ID0gdGhpcy51cmwuaW5kZXhPZignPycpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgcXVlcnlBcnIgPSB0aGlzLnVybC5zdWJzdHJpbmcoaW5kZXggKyAxKS5zcGxpdCgnJicpO1xuICAgICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiB0aGlzLl9zb3J0KSB7XG4gICAgICAgIHF1ZXJ5QXJyLnNvcnQodGhpcy5fc29ydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeUFyci5zb3J0KCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVybCA9IHRoaXMudXJsLnN1YnN0cmluZygwLCBpbmRleCkgKyAnPycgKyBxdWVyeUFyci5qb2luKCcmJyk7XG4gICAgfVxuICB9XG59O1xuXG4vLyBGb3IgYmFja3dhcmRzIGNvbXBhdCBvbmx5XG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX2FwcGVuZFF1ZXJ5U3RyaW5nID0gZnVuY3Rpb24oKSB7Y29uc29sZS50cmFjZShcIlVuc3VwcG9ydGVkXCIpO31cblxuLyoqXG4gKiBJbnZva2UgY2FsbGJhY2sgd2l0aCB0aW1lb3V0IGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5fdGltZW91dEVycm9yID0gZnVuY3Rpb24ocmVhc29uLCB0aW1lb3V0LCBlcnJubyl7XG4gIGlmICh0aGlzLl9hYm9ydGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IocmVhc29uICsgdGltZW91dCArICdtcyBleGNlZWRlZCcpO1xuICBlcnIudGltZW91dCA9IHRpbWVvdXQ7XG4gIGVyci5jb2RlID0gJ0VDT05OQUJPUlRFRCc7XG4gIGVyci5lcnJubyA9IGVycm5vO1xuICB0aGlzLnRpbWVkb3V0ID0gdHJ1ZTtcbiAgdGhpcy5hYm9ydCgpO1xuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX3NldFRpbWVvdXRzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBkZWFkbGluZVxuICBpZiAodGhpcy5fdGltZW91dCAmJiAhdGhpcy5fdGltZXIpIHtcbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgIHNlbGYuX3RpbWVvdXRFcnJvcignVGltZW91dCBvZiAnLCBzZWxmLl90aW1lb3V0LCAnRVRJTUUnKTtcbiAgICB9LCB0aGlzLl90aW1lb3V0KTtcbiAgfVxuICAvLyByZXNwb25zZSB0aW1lb3V0XG4gIGlmICh0aGlzLl9yZXNwb25zZVRpbWVvdXQgJiYgIXRoaXMuX3Jlc3BvbnNlVGltZW91dFRpbWVyKSB7XG4gICAgdGhpcy5fcmVzcG9uc2VUaW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICBzZWxmLl90aW1lb3V0RXJyb3IoJ1Jlc3BvbnNlIHRpbWVvdXQgb2YgJywgc2VsZi5fcmVzcG9uc2VUaW1lb3V0LCAnRVRJTUVET1VUJyk7XG4gICAgfSwgdGhpcy5fcmVzcG9uc2VUaW1lb3V0KTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICovXG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxuLyoqXG4gKiBFeHBvc2UgYFJlc3BvbnNlQmFzZWAuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBSZXNwb25zZUJhc2U7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVzcG9uc2VCYXNlYC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIFJlc3BvbnNlQmFzZShvYmopIHtcbiAgaWYgKG9iaikgcmV0dXJuIG1peGluKG9iaik7XG59XG5cbi8qKlxuICogTWl4aW4gdGhlIHByb3RvdHlwZSBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIG1peGluKG9iaikge1xuICBmb3IgKHZhciBrZXkgaW4gUmVzcG9uc2VCYXNlLnByb3RvdHlwZSkge1xuICAgIG9ialtrZXldID0gUmVzcG9uc2VCYXNlLnByb3RvdHlwZVtrZXldO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgYGZpZWxkYCB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVzcG9uc2VCYXNlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihmaWVsZCkge1xuICByZXR1cm4gdGhpcy5oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV07XG59O1xuXG4vKipcbiAqIFNldCBoZWFkZXIgcmVsYXRlZCBwcm9wZXJ0aWVzOlxuICpcbiAqICAgLSBgLnR5cGVgIHRoZSBjb250ZW50IHR5cGUgd2l0aG91dCBwYXJhbXNcbiAqXG4gKiBBIHJlc3BvbnNlIG9mIFwiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04XCJcbiAqIHdpbGwgcHJvdmlkZSB5b3Ugd2l0aCBhIGAudHlwZWAgb2YgXCJ0ZXh0L3BsYWluXCIuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGhlYWRlclxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVzcG9uc2VCYXNlLnByb3RvdHlwZS5fc2V0SGVhZGVyUHJvcGVydGllcyA9IGZ1bmN0aW9uKGhlYWRlcil7XG4gICAgLy8gVE9ETzogbW9hciFcbiAgICAvLyBUT0RPOiBtYWtlIHRoaXMgYSB1dGlsXG5cbiAgICAvLyBjb250ZW50LXR5cGVcbiAgICB2YXIgY3QgPSBoZWFkZXJbJ2NvbnRlbnQtdHlwZSddIHx8ICcnO1xuICAgIHRoaXMudHlwZSA9IHV0aWxzLnR5cGUoY3QpO1xuXG4gICAgLy8gcGFyYW1zXG4gICAgdmFyIHBhcmFtcyA9IHV0aWxzLnBhcmFtcyhjdCk7XG4gICAgZm9yICh2YXIga2V5IGluIHBhcmFtcykgdGhpc1trZXldID0gcGFyYW1zW2tleV07XG5cbiAgICB0aGlzLmxpbmtzID0ge307XG5cbiAgICAvLyBsaW5rc1xuICAgIHRyeSB7XG4gICAgICAgIGlmIChoZWFkZXIubGluaykge1xuICAgICAgICAgICAgdGhpcy5saW5rcyA9IHV0aWxzLnBhcnNlTGlua3MoaGVhZGVyLmxpbmspO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGlnbm9yZVxuICAgIH1cbn07XG5cbi8qKlxuICogU2V0IGZsYWdzIHN1Y2ggYXMgYC5va2AgYmFzZWQgb24gYHN0YXR1c2AuXG4gKlxuICogRm9yIGV4YW1wbGUgYSAyeHggcmVzcG9uc2Ugd2lsbCBnaXZlIHlvdSBhIGAub2tgIG9mIF9fdHJ1ZV9fXG4gKiB3aGVyZWFzIDV4eCB3aWxsIGJlIF9fZmFsc2VfXyBhbmQgYC5lcnJvcmAgd2lsbCBiZSBfX3RydWVfXy4gVGhlXG4gKiBgLmNsaWVudEVycm9yYCBhbmQgYC5zZXJ2ZXJFcnJvcmAgYXJlIGFsc28gYXZhaWxhYmxlIHRvIGJlIG1vcmVcbiAqIHNwZWNpZmljLCBhbmQgYC5zdGF0dXNUeXBlYCBpcyB0aGUgY2xhc3Mgb2YgZXJyb3IgcmFuZ2luZyBmcm9tIDEuLjVcbiAqIHNvbWV0aW1lcyB1c2VmdWwgZm9yIG1hcHBpbmcgcmVzcG9uZCBjb2xvcnMgZXRjLlxuICpcbiAqIFwic3VnYXJcIiBwcm9wZXJ0aWVzIGFyZSBhbHNvIGRlZmluZWQgZm9yIGNvbW1vbiBjYXNlcy4gQ3VycmVudGx5IHByb3ZpZGluZzpcbiAqXG4gKiAgIC0gLm5vQ29udGVudFxuICogICAtIC5iYWRSZXF1ZXN0XG4gKiAgIC0gLnVuYXV0aG9yaXplZFxuICogICAtIC5ub3RBY2NlcHRhYmxlXG4gKiAgIC0gLm5vdEZvdW5kXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IHN0YXR1c1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVzcG9uc2VCYXNlLnByb3RvdHlwZS5fc2V0U3RhdHVzUHJvcGVydGllcyA9IGZ1bmN0aW9uKHN0YXR1cyl7XG4gICAgdmFyIHR5cGUgPSBzdGF0dXMgLyAxMDAgfCAwO1xuXG4gICAgLy8gc3RhdHVzIC8gY2xhc3NcbiAgICB0aGlzLnN0YXR1cyA9IHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1cztcbiAgICB0aGlzLnN0YXR1c1R5cGUgPSB0eXBlO1xuXG4gICAgLy8gYmFzaWNzXG4gICAgdGhpcy5pbmZvID0gMSA9PSB0eXBlO1xuICAgIHRoaXMub2sgPSAyID09IHR5cGU7XG4gICAgdGhpcy5yZWRpcmVjdCA9IDMgPT0gdHlwZTtcbiAgICB0aGlzLmNsaWVudEVycm9yID0gNCA9PSB0eXBlO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSA1ID09IHR5cGU7XG4gICAgdGhpcy5lcnJvciA9ICg0ID09IHR5cGUgfHwgNSA9PSB0eXBlKVxuICAgICAgICA/IHRoaXMudG9FcnJvcigpXG4gICAgICAgIDogZmFsc2U7XG5cbiAgICAvLyBzdWdhclxuICAgIHRoaXMuY3JlYXRlZCA9IDIwMSA9PSBzdGF0dXM7XG4gICAgdGhpcy5hY2NlcHRlZCA9IDIwMiA9PSBzdGF0dXM7XG4gICAgdGhpcy5ub0NvbnRlbnQgPSAyMDQgPT0gc3RhdHVzO1xuICAgIHRoaXMuYmFkUmVxdWVzdCA9IDQwMCA9PSBzdGF0dXM7XG4gICAgdGhpcy51bmF1dGhvcml6ZWQgPSA0MDEgPT0gc3RhdHVzO1xuICAgIHRoaXMubm90QWNjZXB0YWJsZSA9IDQwNiA9PSBzdGF0dXM7XG4gICAgdGhpcy5mb3JiaWRkZW4gPSA0MDMgPT0gc3RhdHVzO1xuICAgIHRoaXMubm90Rm91bmQgPSA0MDQgPT0gc3RhdHVzO1xuICAgIHRoaXMudW5wcm9jZXNzYWJsZUVudGl0eSA9IDQyMiA9PSBzdGF0dXM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFJldHVybiB0aGUgbWltZSB0eXBlIGZvciB0aGUgZ2l2ZW4gYHN0cmAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZXhwb3J0cy50eXBlID0gZnVuY3Rpb24oc3RyKXtcbiAgcmV0dXJuIHN0ci5zcGxpdCgvICo7ICovKS5zaGlmdCgpO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gaGVhZGVyIGZpZWxkIHBhcmFtZXRlcnMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7T2JqZWN0fVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZXhwb3J0cy5wYXJhbXMgPSBmdW5jdGlvbihzdHIpe1xuICByZXR1cm4gc3RyLnNwbGl0KC8gKjsgKi8pLnJlZHVjZShmdW5jdGlvbihvYmosIHN0cil7XG4gICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KC8gKj0gKi8pO1xuICAgIHZhciBrZXkgPSBwYXJ0cy5zaGlmdCgpO1xuICAgIHZhciB2YWwgPSBwYXJ0cy5zaGlmdCgpO1xuXG4gICAgaWYgKGtleSAmJiB2YWwpIG9ialtrZXldID0gdmFsO1xuICAgIHJldHVybiBvYmo7XG4gIH0sIHt9KTtcbn07XG5cbi8qKlxuICogUGFyc2UgTGluayBoZWFkZXIgZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMucGFyc2VMaW5rcyA9IGZ1bmN0aW9uKHN0cil7XG4gIHJldHVybiBzdHIuc3BsaXQoLyAqLCAqLykucmVkdWNlKGZ1bmN0aW9uKG9iaiwgc3RyKXtcbiAgICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoLyAqOyAqLyk7XG4gICAgdmFyIHVybCA9IHBhcnRzWzBdLnNsaWNlKDEsIC0xKTtcbiAgICB2YXIgcmVsID0gcGFydHNbMV0uc3BsaXQoLyAqPSAqLylbMV0uc2xpY2UoMSwgLTEpO1xuICAgIG9ialtyZWxdID0gdXJsO1xuICAgIHJldHVybiBvYmo7XG4gIH0sIHt9KTtcbn07XG5cbi8qKlxuICogU3RyaXAgY29udGVudCByZWxhdGVkIGZpZWxkcyBmcm9tIGBoZWFkZXJgLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBoZWFkZXJcbiAqIEByZXR1cm4ge09iamVjdH0gaGVhZGVyXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLmNsZWFuSGVhZGVyID0gZnVuY3Rpb24oaGVhZGVyLCBjaGFuZ2VzT3JpZ2luKXtcbiAgZGVsZXRlIGhlYWRlclsnY29udGVudC10eXBlJ107XG4gIGRlbGV0ZSBoZWFkZXJbJ2NvbnRlbnQtbGVuZ3RoJ107XG4gIGRlbGV0ZSBoZWFkZXJbJ3RyYW5zZmVyLWVuY29kaW5nJ107XG4gIGRlbGV0ZSBoZWFkZXJbJ2hvc3QnXTtcbiAgLy8gc2VjdWlydHlcbiAgaWYgKGNoYW5nZXNPcmlnaW4pIHtcbiAgICBkZWxldGUgaGVhZGVyWydhdXRob3JpemF0aW9uJ107XG4gICAgZGVsZXRlIGhlYWRlclsnY29va2llJ107XG4gIH1cbiAgcmV0dXJuIGhlYWRlcjtcbn07XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxudmFyIHB1bnljb2RlID0gcmVxdWlyZSgncHVueWNvZGUnKTtcblxuZXhwb3J0cy5wYXJzZSA9IHVybFBhcnNlO1xuZXhwb3J0cy5yZXNvbHZlID0gdXJsUmVzb2x2ZTtcbmV4cG9ydHMucmVzb2x2ZU9iamVjdCA9IHVybFJlc29sdmVPYmplY3Q7XG5leHBvcnRzLmZvcm1hdCA9IHVybEZvcm1hdDtcblxuZXhwb3J0cy5VcmwgPSBVcmw7XG5cbmZ1bmN0aW9uIFVybCgpIHtcbiAgdGhpcy5wcm90b2NvbCA9IG51bGw7XG4gIHRoaXMuc2xhc2hlcyA9IG51bGw7XG4gIHRoaXMuYXV0aCA9IG51bGw7XG4gIHRoaXMuaG9zdCA9IG51bGw7XG4gIHRoaXMucG9ydCA9IG51bGw7XG4gIHRoaXMuaG9zdG5hbWUgPSBudWxsO1xuICB0aGlzLmhhc2ggPSBudWxsO1xuICB0aGlzLnNlYXJjaCA9IG51bGw7XG4gIHRoaXMucXVlcnkgPSBudWxsO1xuICB0aGlzLnBhdGhuYW1lID0gbnVsbDtcbiAgdGhpcy5wYXRoID0gbnVsbDtcbiAgdGhpcy5ocmVmID0gbnVsbDtcbn1cblxuLy8gUmVmZXJlbmNlOiBSRkMgMzk4NiwgUkZDIDE4MDgsIFJGQyAyMzk2XG5cbi8vIGRlZmluZSB0aGVzZSBoZXJlIHNvIGF0IGxlYXN0IHRoZXkgb25seSBoYXZlIHRvIGJlXG4vLyBjb21waWxlZCBvbmNlIG9uIHRoZSBmaXJzdCBtb2R1bGUgbG9hZC5cbnZhciBwcm90b2NvbFBhdHRlcm4gPSAvXihbYS16MC05ListXSs6KS9pLFxuICAgIHBvcnRQYXR0ZXJuID0gLzpbMC05XSokLyxcblxuICAgIC8vIFJGQyAyMzk2OiBjaGFyYWN0ZXJzIHJlc2VydmVkIGZvciBkZWxpbWl0aW5nIFVSTHMuXG4gICAgLy8gV2UgYWN0dWFsbHkganVzdCBhdXRvLWVzY2FwZSB0aGVzZS5cbiAgICBkZWxpbXMgPSBbJzwnLCAnPicsICdcIicsICdgJywgJyAnLCAnXFxyJywgJ1xcbicsICdcXHQnXSxcblxuICAgIC8vIFJGQyAyMzk2OiBjaGFyYWN0ZXJzIG5vdCBhbGxvd2VkIGZvciB2YXJpb3VzIHJlYXNvbnMuXG4gICAgdW53aXNlID0gWyd7JywgJ30nLCAnfCcsICdcXFxcJywgJ14nLCAnYCddLmNvbmNhdChkZWxpbXMpLFxuXG4gICAgLy8gQWxsb3dlZCBieSBSRkNzLCBidXQgY2F1c2Ugb2YgWFNTIGF0dGFja3MuICBBbHdheXMgZXNjYXBlIHRoZXNlLlxuICAgIGF1dG9Fc2NhcGUgPSBbJ1xcJyddLmNvbmNhdCh1bndpc2UpLFxuICAgIC8vIENoYXJhY3RlcnMgdGhhdCBhcmUgbmV2ZXIgZXZlciBhbGxvd2VkIGluIGEgaG9zdG5hbWUuXG4gICAgLy8gTm90ZSB0aGF0IGFueSBpbnZhbGlkIGNoYXJzIGFyZSBhbHNvIGhhbmRsZWQsIGJ1dCB0aGVzZVxuICAgIC8vIGFyZSB0aGUgb25lcyB0aGF0IGFyZSAqZXhwZWN0ZWQqIHRvIGJlIHNlZW4sIHNvIHdlIGZhc3QtcGF0aFxuICAgIC8vIHRoZW0uXG4gICAgbm9uSG9zdENoYXJzID0gWyclJywgJy8nLCAnPycsICc7JywgJyMnXS5jb25jYXQoYXV0b0VzY2FwZSksXG4gICAgaG9zdEVuZGluZ0NoYXJzID0gWycvJywgJz8nLCAnIyddLFxuICAgIGhvc3RuYW1lTWF4TGVuID0gMjU1LFxuICAgIGhvc3RuYW1lUGFydFBhdHRlcm4gPSAvXlthLXowLTlBLVpfLV17MCw2M30kLyxcbiAgICBob3N0bmFtZVBhcnRTdGFydCA9IC9eKFthLXowLTlBLVpfLV17MCw2M30pKC4qKSQvLFxuICAgIC8vIHByb3RvY29scyB0aGF0IGNhbiBhbGxvdyBcInVuc2FmZVwiIGFuZCBcInVud2lzZVwiIGNoYXJzLlxuICAgIHVuc2FmZVByb3RvY29sID0ge1xuICAgICAgJ2phdmFzY3JpcHQnOiB0cnVlLFxuICAgICAgJ2phdmFzY3JpcHQ6JzogdHJ1ZVxuICAgIH0sXG4gICAgLy8gcHJvdG9jb2xzIHRoYXQgbmV2ZXIgaGF2ZSBhIGhvc3RuYW1lLlxuICAgIGhvc3RsZXNzUHJvdG9jb2wgPSB7XG4gICAgICAnamF2YXNjcmlwdCc6IHRydWUsXG4gICAgICAnamF2YXNjcmlwdDonOiB0cnVlXG4gICAgfSxcbiAgICAvLyBwcm90b2NvbHMgdGhhdCBhbHdheXMgY29udGFpbiBhIC8vIGJpdC5cbiAgICBzbGFzaGVkUHJvdG9jb2wgPSB7XG4gICAgICAnaHR0cCc6IHRydWUsXG4gICAgICAnaHR0cHMnOiB0cnVlLFxuICAgICAgJ2Z0cCc6IHRydWUsXG4gICAgICAnZ29waGVyJzogdHJ1ZSxcbiAgICAgICdmaWxlJzogdHJ1ZSxcbiAgICAgICdodHRwOic6IHRydWUsXG4gICAgICAnaHR0cHM6JzogdHJ1ZSxcbiAgICAgICdmdHA6JzogdHJ1ZSxcbiAgICAgICdnb3BoZXI6JzogdHJ1ZSxcbiAgICAgICdmaWxlOic6IHRydWVcbiAgICB9LFxuICAgIHF1ZXJ5c3RyaW5nID0gcmVxdWlyZSgncXVlcnlzdHJpbmcnKTtcblxuZnVuY3Rpb24gdXJsUGFyc2UodXJsLCBwYXJzZVF1ZXJ5U3RyaW5nLCBzbGFzaGVzRGVub3RlSG9zdCkge1xuICBpZiAodXJsICYmIGlzT2JqZWN0KHVybCkgJiYgdXJsIGluc3RhbmNlb2YgVXJsKSByZXR1cm4gdXJsO1xuXG4gIHZhciB1ID0gbmV3IFVybDtcbiAgdS5wYXJzZSh1cmwsIHBhcnNlUXVlcnlTdHJpbmcsIHNsYXNoZXNEZW5vdGVIb3N0KTtcbiAgcmV0dXJuIHU7XG59XG5cblVybC5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbih1cmwsIHBhcnNlUXVlcnlTdHJpbmcsIHNsYXNoZXNEZW5vdGVIb3N0KSB7XG4gIGlmICghaXNTdHJpbmcodXJsKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJQYXJhbWV0ZXIgJ3VybCcgbXVzdCBiZSBhIHN0cmluZywgbm90IFwiICsgdHlwZW9mIHVybCk7XG4gIH1cblxuICB2YXIgcmVzdCA9IHVybDtcblxuICAvLyB0cmltIGJlZm9yZSBwcm9jZWVkaW5nLlxuICAvLyBUaGlzIGlzIHRvIHN1cHBvcnQgcGFyc2Ugc3R1ZmYgbGlrZSBcIiAgaHR0cDovL2Zvby5jb20gIFxcblwiXG4gIHJlc3QgPSByZXN0LnRyaW0oKTtcblxuICB2YXIgcHJvdG8gPSBwcm90b2NvbFBhdHRlcm4uZXhlYyhyZXN0KTtcbiAgaWYgKHByb3RvKSB7XG4gICAgcHJvdG8gPSBwcm90b1swXTtcbiAgICB2YXIgbG93ZXJQcm90byA9IHByb3RvLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5wcm90b2NvbCA9IGxvd2VyUHJvdG87XG4gICAgcmVzdCA9IHJlc3Quc3Vic3RyKHByb3RvLmxlbmd0aCk7XG4gIH1cblxuICAvLyBmaWd1cmUgb3V0IGlmIGl0J3MgZ290IGEgaG9zdFxuICAvLyB1c2VyQHNlcnZlciBpcyAqYWx3YXlzKiBpbnRlcnByZXRlZCBhcyBhIGhvc3RuYW1lLCBhbmQgdXJsXG4gIC8vIHJlc29sdXRpb24gd2lsbCB0cmVhdCAvL2Zvby9iYXIgYXMgaG9zdD1mb28scGF0aD1iYXIgYmVjYXVzZSB0aGF0J3NcbiAgLy8gaG93IHRoZSBicm93c2VyIHJlc29sdmVzIHJlbGF0aXZlIFVSTHMuXG4gIGlmIChzbGFzaGVzRGVub3RlSG9zdCB8fCBwcm90byB8fCByZXN0Lm1hdGNoKC9eXFwvXFwvW15AXFwvXStAW15AXFwvXSsvKSkge1xuICAgIHZhciBzbGFzaGVzID0gcmVzdC5zdWJzdHIoMCwgMikgPT09ICcvLyc7XG4gICAgaWYgKHNsYXNoZXMgJiYgIShwcm90byAmJiBob3N0bGVzc1Byb3RvY29sW3Byb3RvXSkpIHtcbiAgICAgIHJlc3QgPSByZXN0LnN1YnN0cigyKTtcbiAgICAgIHRoaXMuc2xhc2hlcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFob3N0bGVzc1Byb3RvY29sW3Byb3RvXSAmJlxuICAgICAgKHNsYXNoZXMgfHwgKHByb3RvICYmICFzbGFzaGVkUHJvdG9jb2xbcHJvdG9dKSkpIHtcblxuICAgIC8vIHRoZXJlJ3MgYSBob3N0bmFtZS5cbiAgICAvLyB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgLywgPywgOywgb3IgIyBlbmRzIHRoZSBob3N0LlxuICAgIC8vXG4gICAgLy8gSWYgdGhlcmUgaXMgYW4gQCBpbiB0aGUgaG9zdG5hbWUsIHRoZW4gbm9uLWhvc3QgY2hhcnMgKmFyZSogYWxsb3dlZFxuICAgIC8vIHRvIHRoZSBsZWZ0IG9mIHRoZSBsYXN0IEAgc2lnbiwgdW5sZXNzIHNvbWUgaG9zdC1lbmRpbmcgY2hhcmFjdGVyXG4gICAgLy8gY29tZXMgKmJlZm9yZSogdGhlIEAtc2lnbi5cbiAgICAvLyBVUkxzIGFyZSBvYm5veGlvdXMuXG4gICAgLy9cbiAgICAvLyBleDpcbiAgICAvLyBodHRwOi8vYUBiQGMvID0+IHVzZXI6YUBiIGhvc3Q6Y1xuICAgIC8vIGh0dHA6Ly9hQGI/QGMgPT4gdXNlcjphIGhvc3Q6YyBwYXRoOi8/QGNcblxuICAgIC8vIHYwLjEyIFRPRE8oaXNhYWNzKTogVGhpcyBpcyBub3QgcXVpdGUgaG93IENocm9tZSBkb2VzIHRoaW5ncy5cbiAgICAvLyBSZXZpZXcgb3VyIHRlc3QgY2FzZSBhZ2FpbnN0IGJyb3dzZXJzIG1vcmUgY29tcHJlaGVuc2l2ZWx5LlxuXG4gICAgLy8gZmluZCB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgYW55IGhvc3RFbmRpbmdDaGFyc1xuICAgIHZhciBob3N0RW5kID0gLTE7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBob3N0RW5kaW5nQ2hhcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBoZWMgPSByZXN0LmluZGV4T2YoaG9zdEVuZGluZ0NoYXJzW2ldKTtcbiAgICAgIGlmIChoZWMgIT09IC0xICYmIChob3N0RW5kID09PSAtMSB8fCBoZWMgPCBob3N0RW5kKSlcbiAgICAgICAgaG9zdEVuZCA9IGhlYztcbiAgICB9XG5cbiAgICAvLyBhdCB0aGlzIHBvaW50LCBlaXRoZXIgd2UgaGF2ZSBhbiBleHBsaWNpdCBwb2ludCB3aGVyZSB0aGVcbiAgICAvLyBhdXRoIHBvcnRpb24gY2Fubm90IGdvIHBhc3QsIG9yIHRoZSBsYXN0IEAgY2hhciBpcyB0aGUgZGVjaWRlci5cbiAgICB2YXIgYXV0aCwgYXRTaWduO1xuICAgIGlmIChob3N0RW5kID09PSAtMSkge1xuICAgICAgLy8gYXRTaWduIGNhbiBiZSBhbnl3aGVyZS5cbiAgICAgIGF0U2lnbiA9IHJlc3QubGFzdEluZGV4T2YoJ0AnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYXRTaWduIG11c3QgYmUgaW4gYXV0aCBwb3J0aW9uLlxuICAgICAgLy8gaHR0cDovL2FAYi9jQGQgPT4gaG9zdDpiIGF1dGg6YSBwYXRoOi9jQGRcbiAgICAgIGF0U2lnbiA9IHJlc3QubGFzdEluZGV4T2YoJ0AnLCBob3N0RW5kKTtcbiAgICB9XG5cbiAgICAvLyBOb3cgd2UgaGF2ZSBhIHBvcnRpb24gd2hpY2ggaXMgZGVmaW5pdGVseSB0aGUgYXV0aC5cbiAgICAvLyBQdWxsIHRoYXQgb2ZmLlxuICAgIGlmIChhdFNpZ24gIT09IC0xKSB7XG4gICAgICBhdXRoID0gcmVzdC5zbGljZSgwLCBhdFNpZ24pO1xuICAgICAgcmVzdCA9IHJlc3Quc2xpY2UoYXRTaWduICsgMSk7XG4gICAgICB0aGlzLmF1dGggPSBkZWNvZGVVUklDb21wb25lbnQoYXV0aCk7XG4gICAgfVxuXG4gICAgLy8gdGhlIGhvc3QgaXMgdGhlIHJlbWFpbmluZyB0byB0aGUgbGVmdCBvZiB0aGUgZmlyc3Qgbm9uLWhvc3QgY2hhclxuICAgIGhvc3RFbmQgPSAtMTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vbkhvc3RDaGFycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGhlYyA9IHJlc3QuaW5kZXhPZihub25Ib3N0Q2hhcnNbaV0pO1xuICAgICAgaWYgKGhlYyAhPT0gLTEgJiYgKGhvc3RFbmQgPT09IC0xIHx8IGhlYyA8IGhvc3RFbmQpKVxuICAgICAgICBob3N0RW5kID0gaGVjO1xuICAgIH1cbiAgICAvLyBpZiB3ZSBzdGlsbCBoYXZlIG5vdCBoaXQgaXQsIHRoZW4gdGhlIGVudGlyZSB0aGluZyBpcyBhIGhvc3QuXG4gICAgaWYgKGhvc3RFbmQgPT09IC0xKVxuICAgICAgaG9zdEVuZCA9IHJlc3QubGVuZ3RoO1xuXG4gICAgdGhpcy5ob3N0ID0gcmVzdC5zbGljZSgwLCBob3N0RW5kKTtcbiAgICByZXN0ID0gcmVzdC5zbGljZShob3N0RW5kKTtcblxuICAgIC8vIHB1bGwgb3V0IHBvcnQuXG4gICAgdGhpcy5wYXJzZUhvc3QoKTtcblxuICAgIC8vIHdlJ3ZlIGluZGljYXRlZCB0aGF0IHRoZXJlIGlzIGEgaG9zdG5hbWUsXG4gICAgLy8gc28gZXZlbiBpZiBpdCdzIGVtcHR5LCBpdCBoYXMgdG8gYmUgcHJlc2VudC5cbiAgICB0aGlzLmhvc3RuYW1lID0gdGhpcy5ob3N0bmFtZSB8fCAnJztcblxuICAgIC8vIGlmIGhvc3RuYW1lIGJlZ2lucyB3aXRoIFsgYW5kIGVuZHMgd2l0aCBdXG4gICAgLy8gYXNzdW1lIHRoYXQgaXQncyBhbiBJUHY2IGFkZHJlc3MuXG4gICAgdmFyIGlwdjZIb3N0bmFtZSA9IHRoaXMuaG9zdG5hbWVbMF0gPT09ICdbJyAmJlxuICAgICAgICB0aGlzLmhvc3RuYW1lW3RoaXMuaG9zdG5hbWUubGVuZ3RoIC0gMV0gPT09ICddJztcblxuICAgIC8vIHZhbGlkYXRlIGEgbGl0dGxlLlxuICAgIGlmICghaXB2Nkhvc3RuYW1lKSB7XG4gICAgICB2YXIgaG9zdHBhcnRzID0gdGhpcy5ob3N0bmFtZS5zcGxpdCgvXFwuLyk7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGhvc3RwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgdmFyIHBhcnQgPSBob3N0cGFydHNbaV07XG4gICAgICAgIGlmICghcGFydCkgY29udGludWU7XG4gICAgICAgIGlmICghcGFydC5tYXRjaChob3N0bmFtZVBhcnRQYXR0ZXJuKSkge1xuICAgICAgICAgIHZhciBuZXdwYXJ0ID0gJyc7XG4gICAgICAgICAgZm9yICh2YXIgaiA9IDAsIGsgPSBwYXJ0Lmxlbmd0aDsgaiA8IGs7IGorKykge1xuICAgICAgICAgICAgaWYgKHBhcnQuY2hhckNvZGVBdChqKSA+IDEyNykge1xuICAgICAgICAgICAgICAvLyB3ZSByZXBsYWNlIG5vbi1BU0NJSSBjaGFyIHdpdGggYSB0ZW1wb3JhcnkgcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0aGlzIHRvIG1ha2Ugc3VyZSBzaXplIG9mIGhvc3RuYW1lIGlzIG5vdFxuICAgICAgICAgICAgICAvLyBicm9rZW4gYnkgcmVwbGFjaW5nIG5vbi1BU0NJSSBieSBub3RoaW5nXG4gICAgICAgICAgICAgIG5ld3BhcnQgKz0gJ3gnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbmV3cGFydCArPSBwYXJ0W2pdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB3ZSB0ZXN0IGFnYWluIHdpdGggQVNDSUkgY2hhciBvbmx5XG4gICAgICAgICAgaWYgKCFuZXdwYXJ0Lm1hdGNoKGhvc3RuYW1lUGFydFBhdHRlcm4pKSB7XG4gICAgICAgICAgICB2YXIgdmFsaWRQYXJ0cyA9IGhvc3RwYXJ0cy5zbGljZSgwLCBpKTtcbiAgICAgICAgICAgIHZhciBub3RIb3N0ID0gaG9zdHBhcnRzLnNsaWNlKGkgKyAxKTtcbiAgICAgICAgICAgIHZhciBiaXQgPSBwYXJ0Lm1hdGNoKGhvc3RuYW1lUGFydFN0YXJ0KTtcbiAgICAgICAgICAgIGlmIChiaXQpIHtcbiAgICAgICAgICAgICAgdmFsaWRQYXJ0cy5wdXNoKGJpdFsxXSk7XG4gICAgICAgICAgICAgIG5vdEhvc3QudW5zaGlmdChiaXRbMl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5vdEhvc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlc3QgPSAnLycgKyBub3RIb3N0LmpvaW4oJy4nKSArIHJlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhvc3RuYW1lID0gdmFsaWRQYXJ0cy5qb2luKCcuJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5ob3N0bmFtZS5sZW5ndGggPiBob3N0bmFtZU1heExlbikge1xuICAgICAgdGhpcy5ob3N0bmFtZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBob3N0bmFtZXMgYXJlIGFsd2F5cyBsb3dlciBjYXNlLlxuICAgICAgdGhpcy5ob3N0bmFtZSA9IHRoaXMuaG9zdG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBpZiAoIWlwdjZIb3N0bmFtZSkge1xuICAgICAgLy8gSUROQSBTdXBwb3J0OiBSZXR1cm5zIGEgcHVueSBjb2RlZCByZXByZXNlbnRhdGlvbiBvZiBcImRvbWFpblwiLlxuICAgICAgLy8gSXQgb25seSBjb252ZXJ0cyB0aGUgcGFydCBvZiB0aGUgZG9tYWluIG5hbWUgdGhhdFxuICAgICAgLy8gaGFzIG5vbiBBU0NJSSBjaGFyYWN0ZXJzLiBJLmUuIGl0IGRvc2VudCBtYXR0ZXIgaWZcbiAgICAgIC8vIHlvdSBjYWxsIGl0IHdpdGggYSBkb21haW4gdGhhdCBhbHJlYWR5IGlzIGluIEFTQ0lJLlxuICAgICAgdmFyIGRvbWFpbkFycmF5ID0gdGhpcy5ob3N0bmFtZS5zcGxpdCgnLicpO1xuICAgICAgdmFyIG5ld091dCA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkb21haW5BcnJheS5sZW5ndGg7ICsraSkge1xuICAgICAgICB2YXIgcyA9IGRvbWFpbkFycmF5W2ldO1xuICAgICAgICBuZXdPdXQucHVzaChzLm1hdGNoKC9bXkEtWmEtejAtOV8tXS8pID9cbiAgICAgICAgICAgICd4bi0tJyArIHB1bnljb2RlLmVuY29kZShzKSA6IHMpO1xuICAgICAgfVxuICAgICAgdGhpcy5ob3N0bmFtZSA9IG5ld091dC5qb2luKCcuJyk7XG4gICAgfVxuXG4gICAgdmFyIHAgPSB0aGlzLnBvcnQgPyAnOicgKyB0aGlzLnBvcnQgOiAnJztcbiAgICB2YXIgaCA9IHRoaXMuaG9zdG5hbWUgfHwgJyc7XG4gICAgdGhpcy5ob3N0ID0gaCArIHA7XG4gICAgdGhpcy5ocmVmICs9IHRoaXMuaG9zdDtcblxuICAgIC8vIHN0cmlwIFsgYW5kIF0gZnJvbSB0aGUgaG9zdG5hbWVcbiAgICAvLyB0aGUgaG9zdCBmaWVsZCBzdGlsbCByZXRhaW5zIHRoZW0sIHRob3VnaFxuICAgIGlmIChpcHY2SG9zdG5hbWUpIHtcbiAgICAgIHRoaXMuaG9zdG5hbWUgPSB0aGlzLmhvc3RuYW1lLnN1YnN0cigxLCB0aGlzLmhvc3RuYW1lLmxlbmd0aCAtIDIpO1xuICAgICAgaWYgKHJlc3RbMF0gIT09ICcvJykge1xuICAgICAgICByZXN0ID0gJy8nICsgcmVzdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBub3cgcmVzdCBpcyBzZXQgdG8gdGhlIHBvc3QtaG9zdCBzdHVmZi5cbiAgLy8gY2hvcCBvZmYgYW55IGRlbGltIGNoYXJzLlxuICBpZiAoIXVuc2FmZVByb3RvY29sW2xvd2VyUHJvdG9dKSB7XG5cbiAgICAvLyBGaXJzdCwgbWFrZSAxMDAlIHN1cmUgdGhhdCBhbnkgXCJhdXRvRXNjYXBlXCIgY2hhcnMgZ2V0XG4gICAgLy8gZXNjYXBlZCwgZXZlbiBpZiBlbmNvZGVVUklDb21wb25lbnQgZG9lc24ndCB0aGluayB0aGV5XG4gICAgLy8gbmVlZCB0byBiZS5cbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IGF1dG9Fc2NhcGUubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB2YXIgYWUgPSBhdXRvRXNjYXBlW2ldO1xuICAgICAgdmFyIGVzYyA9IGVuY29kZVVSSUNvbXBvbmVudChhZSk7XG4gICAgICBpZiAoZXNjID09PSBhZSkge1xuICAgICAgICBlc2MgPSBlc2NhcGUoYWUpO1xuICAgICAgfVxuICAgICAgcmVzdCA9IHJlc3Quc3BsaXQoYWUpLmpvaW4oZXNjKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIGNob3Agb2ZmIGZyb20gdGhlIHRhaWwgZmlyc3QuXG4gIHZhciBoYXNoID0gcmVzdC5pbmRleE9mKCcjJyk7XG4gIGlmIChoYXNoICE9PSAtMSkge1xuICAgIC8vIGdvdCBhIGZyYWdtZW50IHN0cmluZy5cbiAgICB0aGlzLmhhc2ggPSByZXN0LnN1YnN0cihoYXNoKTtcbiAgICByZXN0ID0gcmVzdC5zbGljZSgwLCBoYXNoKTtcbiAgfVxuICB2YXIgcW0gPSByZXN0LmluZGV4T2YoJz8nKTtcbiAgaWYgKHFtICE9PSAtMSkge1xuICAgIHRoaXMuc2VhcmNoID0gcmVzdC5zdWJzdHIocW0pO1xuICAgIHRoaXMucXVlcnkgPSByZXN0LnN1YnN0cihxbSArIDEpO1xuICAgIGlmIChwYXJzZVF1ZXJ5U3RyaW5nKSB7XG4gICAgICB0aGlzLnF1ZXJ5ID0gcXVlcnlzdHJpbmcucGFyc2UodGhpcy5xdWVyeSk7XG4gICAgfVxuICAgIHJlc3QgPSByZXN0LnNsaWNlKDAsIHFtKTtcbiAgfSBlbHNlIGlmIChwYXJzZVF1ZXJ5U3RyaW5nKSB7XG4gICAgLy8gbm8gcXVlcnkgc3RyaW5nLCBidXQgcGFyc2VRdWVyeVN0cmluZyBzdGlsbCByZXF1ZXN0ZWRcbiAgICB0aGlzLnNlYXJjaCA9ICcnO1xuICAgIHRoaXMucXVlcnkgPSB7fTtcbiAgfVxuICBpZiAocmVzdCkgdGhpcy5wYXRobmFtZSA9IHJlc3Q7XG4gIGlmIChzbGFzaGVkUHJvdG9jb2xbbG93ZXJQcm90b10gJiZcbiAgICAgIHRoaXMuaG9zdG5hbWUgJiYgIXRoaXMucGF0aG5hbWUpIHtcbiAgICB0aGlzLnBhdGhuYW1lID0gJy8nO1xuICB9XG5cbiAgLy90byBzdXBwb3J0IGh0dHAucmVxdWVzdFxuICBpZiAodGhpcy5wYXRobmFtZSB8fCB0aGlzLnNlYXJjaCkge1xuICAgIHZhciBwID0gdGhpcy5wYXRobmFtZSB8fCAnJztcbiAgICB2YXIgcyA9IHRoaXMuc2VhcmNoIHx8ICcnO1xuICAgIHRoaXMucGF0aCA9IHAgKyBzO1xuICB9XG5cbiAgLy8gZmluYWxseSwgcmVjb25zdHJ1Y3QgdGhlIGhyZWYgYmFzZWQgb24gd2hhdCBoYXMgYmVlbiB2YWxpZGF0ZWQuXG4gIHRoaXMuaHJlZiA9IHRoaXMuZm9ybWF0KCk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLy8gZm9ybWF0IGEgcGFyc2VkIG9iamVjdCBpbnRvIGEgdXJsIHN0cmluZ1xuZnVuY3Rpb24gdXJsRm9ybWF0KG9iaikge1xuICAvLyBlbnN1cmUgaXQncyBhbiBvYmplY3QsIGFuZCBub3QgYSBzdHJpbmcgdXJsLlxuICAvLyBJZiBpdCdzIGFuIG9iaiwgdGhpcyBpcyBhIG5vLW9wLlxuICAvLyB0aGlzIHdheSwgeW91IGNhbiBjYWxsIHVybF9mb3JtYXQoKSBvbiBzdHJpbmdzXG4gIC8vIHRvIGNsZWFuIHVwIHBvdGVudGlhbGx5IHdvbmt5IHVybHMuXG4gIGlmIChpc1N0cmluZyhvYmopKSBvYmogPSB1cmxQYXJzZShvYmopO1xuICBpZiAoIShvYmogaW5zdGFuY2VvZiBVcmwpKSByZXR1cm4gVXJsLnByb3RvdHlwZS5mb3JtYXQuY2FsbChvYmopO1xuICByZXR1cm4gb2JqLmZvcm1hdCgpO1xufVxuXG5VcmwucHJvdG90eXBlLmZvcm1hdCA9IGZ1bmN0aW9uKCkge1xuICB2YXIgYXV0aCA9IHRoaXMuYXV0aCB8fCAnJztcbiAgaWYgKGF1dGgpIHtcbiAgICBhdXRoID0gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpO1xuICAgIGF1dGggPSBhdXRoLnJlcGxhY2UoLyUzQS9pLCAnOicpO1xuICAgIGF1dGggKz0gJ0AnO1xuICB9XG5cbiAgdmFyIHByb3RvY29sID0gdGhpcy5wcm90b2NvbCB8fCAnJyxcbiAgICAgIHBhdGhuYW1lID0gdGhpcy5wYXRobmFtZSB8fCAnJyxcbiAgICAgIGhhc2ggPSB0aGlzLmhhc2ggfHwgJycsXG4gICAgICBob3N0ID0gZmFsc2UsXG4gICAgICBxdWVyeSA9ICcnO1xuXG4gIGlmICh0aGlzLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHRoaXMuaG9zdDtcbiAgfSBlbHNlIGlmICh0aGlzLmhvc3RuYW1lKSB7XG4gICAgaG9zdCA9IGF1dGggKyAodGhpcy5ob3N0bmFtZS5pbmRleE9mKCc6JykgPT09IC0xID9cbiAgICAgICAgdGhpcy5ob3N0bmFtZSA6XG4gICAgICAgICdbJyArIHRoaXMuaG9zdG5hbWUgKyAnXScpO1xuICAgIGlmICh0aGlzLnBvcnQpIHtcbiAgICAgIGhvc3QgKz0gJzonICsgdGhpcy5wb3J0O1xuICAgIH1cbiAgfVxuXG4gIGlmICh0aGlzLnF1ZXJ5ICYmXG4gICAgICBpc09iamVjdCh0aGlzLnF1ZXJ5KSAmJlxuICAgICAgT2JqZWN0LmtleXModGhpcy5xdWVyeSkubGVuZ3RoKSB7XG4gICAgcXVlcnkgPSBxdWVyeXN0cmluZy5zdHJpbmdpZnkodGhpcy5xdWVyeSk7XG4gIH1cblxuICB2YXIgc2VhcmNoID0gdGhpcy5zZWFyY2ggfHwgKHF1ZXJ5ICYmICgnPycgKyBxdWVyeSkpIHx8ICcnO1xuXG4gIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSAnOicpIHByb3RvY29sICs9ICc6JztcblxuICAvLyBvbmx5IHRoZSBzbGFzaGVkUHJvdG9jb2xzIGdldCB0aGUgLy8uICBOb3QgbWFpbHRvOiwgeG1wcDosIGV0Yy5cbiAgLy8gdW5sZXNzIHRoZXkgaGFkIHRoZW0gdG8gYmVnaW4gd2l0aC5cbiAgaWYgKHRoaXMuc2xhc2hlcyB8fFxuICAgICAgKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xbcHJvdG9jb2xdKSAmJiBob3N0ICE9PSBmYWxzZSkge1xuICAgIGhvc3QgPSAnLy8nICsgKGhvc3QgfHwgJycpO1xuICAgIGlmIChwYXRobmFtZSAmJiBwYXRobmFtZS5jaGFyQXQoMCkgIT09ICcvJykgcGF0aG5hbWUgPSAnLycgKyBwYXRobmFtZTtcbiAgfSBlbHNlIGlmICghaG9zdCkge1xuICAgIGhvc3QgPSAnJztcbiAgfVxuXG4gIGlmIChoYXNoICYmIGhhc2guY2hhckF0KDApICE9PSAnIycpIGhhc2ggPSAnIycgKyBoYXNoO1xuICBpZiAoc2VhcmNoICYmIHNlYXJjaC5jaGFyQXQoMCkgIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoO1xuXG4gIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBmdW5jdGlvbihtYXRjaCkge1xuICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQobWF0Y2gpO1xuICB9KTtcbiAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoJyMnLCAnJTIzJyk7XG5cbiAgcmV0dXJuIHByb3RvY29sICsgaG9zdCArIHBhdGhuYW1lICsgc2VhcmNoICsgaGFzaDtcbn07XG5cbmZ1bmN0aW9uIHVybFJlc29sdmUoc291cmNlLCByZWxhdGl2ZSkge1xuICByZXR1cm4gdXJsUGFyc2Uoc291cmNlLCBmYWxzZSwgdHJ1ZSkucmVzb2x2ZShyZWxhdGl2ZSk7XG59XG5cblVybC5wcm90b3R5cGUucmVzb2x2ZSA9IGZ1bmN0aW9uKHJlbGF0aXZlKSB7XG4gIHJldHVybiB0aGlzLnJlc29sdmVPYmplY3QodXJsUGFyc2UocmVsYXRpdmUsIGZhbHNlLCB0cnVlKSkuZm9ybWF0KCk7XG59O1xuXG5mdW5jdGlvbiB1cmxSZXNvbHZlT2JqZWN0KHNvdXJjZSwgcmVsYXRpdmUpIHtcbiAgaWYgKCFzb3VyY2UpIHJldHVybiByZWxhdGl2ZTtcbiAgcmV0dXJuIHVybFBhcnNlKHNvdXJjZSwgZmFsc2UsIHRydWUpLnJlc29sdmVPYmplY3QocmVsYXRpdmUpO1xufVxuXG5VcmwucHJvdG90eXBlLnJlc29sdmVPYmplY3QgPSBmdW5jdGlvbihyZWxhdGl2ZSkge1xuICBpZiAoaXNTdHJpbmcocmVsYXRpdmUpKSB7XG4gICAgdmFyIHJlbCA9IG5ldyBVcmwoKTtcbiAgICByZWwucGFyc2UocmVsYXRpdmUsIGZhbHNlLCB0cnVlKTtcbiAgICByZWxhdGl2ZSA9IHJlbDtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBuZXcgVXJsKCk7XG4gIE9iamVjdC5rZXlzKHRoaXMpLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgIHJlc3VsdFtrXSA9IHRoaXNba107XG4gIH0sIHRoaXMpO1xuXG4gIC8vIGhhc2ggaXMgYWx3YXlzIG92ZXJyaWRkZW4sIG5vIG1hdHRlciB3aGF0LlxuICAvLyBldmVuIGhyZWY9XCJcIiB3aWxsIHJlbW92ZSBpdC5cbiAgcmVzdWx0Lmhhc2ggPSByZWxhdGl2ZS5oYXNoO1xuXG4gIC8vIGlmIHRoZSByZWxhdGl2ZSB1cmwgaXMgZW1wdHksIHRoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gZG8gaGVyZS5cbiAgaWYgKHJlbGF0aXZlLmhyZWYgPT09ICcnKSB7XG4gICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vIGhyZWZzIGxpa2UgLy9mb28vYmFyIGFsd2F5cyBjdXQgdG8gdGhlIHByb3RvY29sLlxuICBpZiAocmVsYXRpdmUuc2xhc2hlcyAmJiAhcmVsYXRpdmUucHJvdG9jb2wpIHtcbiAgICAvLyB0YWtlIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBwcm90b2NvbCBmcm9tIHJlbGF0aXZlXG4gICAgT2JqZWN0LmtleXMocmVsYXRpdmUpLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgICAgaWYgKGsgIT09ICdwcm90b2NvbCcpXG4gICAgICAgIHJlc3VsdFtrXSA9IHJlbGF0aXZlW2tdO1xuICAgIH0pO1xuXG4gICAgLy91cmxQYXJzZSBhcHBlbmRzIHRyYWlsaW5nIC8gdG8gdXJscyBsaWtlIGh0dHA6Ly93d3cuZXhhbXBsZS5jb21cbiAgICBpZiAoc2xhc2hlZFByb3RvY29sW3Jlc3VsdC5wcm90b2NvbF0gJiZcbiAgICAgICAgcmVzdWx0Lmhvc3RuYW1lICYmICFyZXN1bHQucGF0aG5hbWUpIHtcbiAgICAgIHJlc3VsdC5wYXRoID0gcmVzdWx0LnBhdGhuYW1lID0gJy8nO1xuICAgIH1cblxuICAgIHJlc3VsdC5ocmVmID0gcmVzdWx0LmZvcm1hdCgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpZiAocmVsYXRpdmUucHJvdG9jb2wgJiYgcmVsYXRpdmUucHJvdG9jb2wgIT09IHJlc3VsdC5wcm90b2NvbCkge1xuICAgIC8vIGlmIGl0J3MgYSBrbm93biB1cmwgcHJvdG9jb2wsIHRoZW4gY2hhbmdpbmdcbiAgICAvLyB0aGUgcHJvdG9jb2wgZG9lcyB3ZWlyZCB0aGluZ3NcbiAgICAvLyBmaXJzdCwgaWYgaXQncyBub3QgZmlsZTosIHRoZW4gd2UgTVVTVCBoYXZlIGEgaG9zdCxcbiAgICAvLyBhbmQgaWYgdGhlcmUgd2FzIGEgcGF0aFxuICAgIC8vIHRvIGJlZ2luIHdpdGgsIHRoZW4gd2UgTVVTVCBoYXZlIGEgcGF0aC5cbiAgICAvLyBpZiBpdCBpcyBmaWxlOiwgdGhlbiB0aGUgaG9zdCBpcyBkcm9wcGVkLFxuICAgIC8vIGJlY2F1c2UgdGhhdCdzIGtub3duIHRvIGJlIGhvc3RsZXNzLlxuICAgIC8vIGFueXRoaW5nIGVsc2UgaXMgYXNzdW1lZCB0byBiZSBhYnNvbHV0ZS5cbiAgICBpZiAoIXNsYXNoZWRQcm90b2NvbFtyZWxhdGl2ZS5wcm90b2NvbF0pIHtcbiAgICAgIE9iamVjdC5rZXlzKHJlbGF0aXZlKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgcmVzdWx0W2tdID0gcmVsYXRpdmVba107XG4gICAgICB9KTtcbiAgICAgIHJlc3VsdC5ocmVmID0gcmVzdWx0LmZvcm1hdCgpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXN1bHQucHJvdG9jb2wgPSByZWxhdGl2ZS5wcm90b2NvbDtcbiAgICBpZiAoIXJlbGF0aXZlLmhvc3QgJiYgIWhvc3RsZXNzUHJvdG9jb2xbcmVsYXRpdmUucHJvdG9jb2xdKSB7XG4gICAgICB2YXIgcmVsUGF0aCA9IChyZWxhdGl2ZS5wYXRobmFtZSB8fCAnJykuc3BsaXQoJy8nKTtcbiAgICAgIHdoaWxlIChyZWxQYXRoLmxlbmd0aCAmJiAhKHJlbGF0aXZlLmhvc3QgPSByZWxQYXRoLnNoaWZ0KCkpKTtcbiAgICAgIGlmICghcmVsYXRpdmUuaG9zdCkgcmVsYXRpdmUuaG9zdCA9ICcnO1xuICAgICAgaWYgKCFyZWxhdGl2ZS5ob3N0bmFtZSkgcmVsYXRpdmUuaG9zdG5hbWUgPSAnJztcbiAgICAgIGlmIChyZWxQYXRoWzBdICE9PSAnJykgcmVsUGF0aC51bnNoaWZ0KCcnKTtcbiAgICAgIGlmIChyZWxQYXRoLmxlbmd0aCA8IDIpIHJlbFBhdGgudW5zaGlmdCgnJyk7XG4gICAgICByZXN1bHQucGF0aG5hbWUgPSByZWxQYXRoLmpvaW4oJy8nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0LnBhdGhuYW1lID0gcmVsYXRpdmUucGF0aG5hbWU7XG4gICAgfVxuICAgIHJlc3VsdC5zZWFyY2ggPSByZWxhdGl2ZS5zZWFyY2g7XG4gICAgcmVzdWx0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7XG4gICAgcmVzdWx0Lmhvc3QgPSByZWxhdGl2ZS5ob3N0IHx8ICcnO1xuICAgIHJlc3VsdC5hdXRoID0gcmVsYXRpdmUuYXV0aDtcbiAgICByZXN1bHQuaG9zdG5hbWUgPSByZWxhdGl2ZS5ob3N0bmFtZSB8fCByZWxhdGl2ZS5ob3N0O1xuICAgIHJlc3VsdC5wb3J0ID0gcmVsYXRpdmUucG9ydDtcbiAgICAvLyB0byBzdXBwb3J0IGh0dHAucmVxdWVzdFxuICAgIGlmIChyZXN1bHQucGF0aG5hbWUgfHwgcmVzdWx0LnNlYXJjaCkge1xuICAgICAgdmFyIHAgPSByZXN1bHQucGF0aG5hbWUgfHwgJyc7XG4gICAgICB2YXIgcyA9IHJlc3VsdC5zZWFyY2ggfHwgJyc7XG4gICAgICByZXN1bHQucGF0aCA9IHAgKyBzO1xuICAgIH1cbiAgICByZXN1bHQuc2xhc2hlcyA9IHJlc3VsdC5zbGFzaGVzIHx8IHJlbGF0aXZlLnNsYXNoZXM7XG4gICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHZhciBpc1NvdXJjZUFicyA9IChyZXN1bHQucGF0aG5hbWUgJiYgcmVzdWx0LnBhdGhuYW1lLmNoYXJBdCgwKSA9PT0gJy8nKSxcbiAgICAgIGlzUmVsQWJzID0gKFxuICAgICAgICAgIHJlbGF0aXZlLmhvc3QgfHxcbiAgICAgICAgICByZWxhdGl2ZS5wYXRobmFtZSAmJiByZWxhdGl2ZS5wYXRobmFtZS5jaGFyQXQoMCkgPT09ICcvJ1xuICAgICAgKSxcbiAgICAgIG11c3RFbmRBYnMgPSAoaXNSZWxBYnMgfHwgaXNTb3VyY2VBYnMgfHxcbiAgICAgICAgICAgICAgICAgICAgKHJlc3VsdC5ob3N0ICYmIHJlbGF0aXZlLnBhdGhuYW1lKSksXG4gICAgICByZW1vdmVBbGxEb3RzID0gbXVzdEVuZEFicyxcbiAgICAgIHNyY1BhdGggPSByZXN1bHQucGF0aG5hbWUgJiYgcmVzdWx0LnBhdGhuYW1lLnNwbGl0KCcvJykgfHwgW10sXG4gICAgICByZWxQYXRoID0gcmVsYXRpdmUucGF0aG5hbWUgJiYgcmVsYXRpdmUucGF0aG5hbWUuc3BsaXQoJy8nKSB8fCBbXSxcbiAgICAgIHBzeWNob3RpYyA9IHJlc3VsdC5wcm90b2NvbCAmJiAhc2xhc2hlZFByb3RvY29sW3Jlc3VsdC5wcm90b2NvbF07XG5cbiAgLy8gaWYgdGhlIHVybCBpcyBhIG5vbi1zbGFzaGVkIHVybCwgdGhlbiByZWxhdGl2ZVxuICAvLyBsaW5rcyBsaWtlIC4uLy4uIHNob3VsZCBiZSBhYmxlXG4gIC8vIHRvIGNyYXdsIHVwIHRvIHRoZSBob3N0bmFtZSwgYXMgd2VsbC4gIFRoaXMgaXMgc3RyYW5nZS5cbiAgLy8gcmVzdWx0LnByb3RvY29sIGhhcyBhbHJlYWR5IGJlZW4gc2V0IGJ5IG5vdy5cbiAgLy8gTGF0ZXIgb24sIHB1dCB0aGUgZmlyc3QgcGF0aCBwYXJ0IGludG8gdGhlIGhvc3QgZmllbGQuXG4gIGlmIChwc3ljaG90aWMpIHtcbiAgICByZXN1bHQuaG9zdG5hbWUgPSAnJztcbiAgICByZXN1bHQucG9ydCA9IG51bGw7XG4gICAgaWYgKHJlc3VsdC5ob3N0KSB7XG4gICAgICBpZiAoc3JjUGF0aFswXSA9PT0gJycpIHNyY1BhdGhbMF0gPSByZXN1bHQuaG9zdDtcbiAgICAgIGVsc2Ugc3JjUGF0aC51bnNoaWZ0KHJlc3VsdC5ob3N0KTtcbiAgICB9XG4gICAgcmVzdWx0Lmhvc3QgPSAnJztcbiAgICBpZiAocmVsYXRpdmUucHJvdG9jb2wpIHtcbiAgICAgIHJlbGF0aXZlLmhvc3RuYW1lID0gbnVsbDtcbiAgICAgIHJlbGF0aXZlLnBvcnQgPSBudWxsO1xuICAgICAgaWYgKHJlbGF0aXZlLmhvc3QpIHtcbiAgICAgICAgaWYgKHJlbFBhdGhbMF0gPT09ICcnKSByZWxQYXRoWzBdID0gcmVsYXRpdmUuaG9zdDtcbiAgICAgICAgZWxzZSByZWxQYXRoLnVuc2hpZnQocmVsYXRpdmUuaG9zdCk7XG4gICAgICB9XG4gICAgICByZWxhdGl2ZS5ob3N0ID0gbnVsbDtcbiAgICB9XG4gICAgbXVzdEVuZEFicyA9IG11c3RFbmRBYnMgJiYgKHJlbFBhdGhbMF0gPT09ICcnIHx8IHNyY1BhdGhbMF0gPT09ICcnKTtcbiAgfVxuXG4gIGlmIChpc1JlbEFicykge1xuICAgIC8vIGl0J3MgYWJzb2x1dGUuXG4gICAgcmVzdWx0Lmhvc3QgPSAocmVsYXRpdmUuaG9zdCB8fCByZWxhdGl2ZS5ob3N0ID09PSAnJykgP1xuICAgICAgICAgICAgICAgICAgcmVsYXRpdmUuaG9zdCA6IHJlc3VsdC5ob3N0O1xuICAgIHJlc3VsdC5ob3N0bmFtZSA9IChyZWxhdGl2ZS5ob3N0bmFtZSB8fCByZWxhdGl2ZS5ob3N0bmFtZSA9PT0gJycpID9cbiAgICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZS5ob3N0bmFtZSA6IHJlc3VsdC5ob3N0bmFtZTtcbiAgICByZXN1bHQuc2VhcmNoID0gcmVsYXRpdmUuc2VhcmNoO1xuICAgIHJlc3VsdC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5O1xuICAgIHNyY1BhdGggPSByZWxQYXRoO1xuICAgIC8vIGZhbGwgdGhyb3VnaCB0byB0aGUgZG90LWhhbmRsaW5nIGJlbG93LlxuICB9IGVsc2UgaWYgKHJlbFBhdGgubGVuZ3RoKSB7XG4gICAgLy8gaXQncyByZWxhdGl2ZVxuICAgIC8vIHRocm93IGF3YXkgdGhlIGV4aXN0aW5nIGZpbGUsIGFuZCB0YWtlIHRoZSBuZXcgcGF0aCBpbnN0ZWFkLlxuICAgIGlmICghc3JjUGF0aCkgc3JjUGF0aCA9IFtdO1xuICAgIHNyY1BhdGgucG9wKCk7XG4gICAgc3JjUGF0aCA9IHNyY1BhdGguY29uY2F0KHJlbFBhdGgpO1xuICAgIHJlc3VsdC5zZWFyY2ggPSByZWxhdGl2ZS5zZWFyY2g7XG4gICAgcmVzdWx0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7XG4gIH0gZWxzZSBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHJlbGF0aXZlLnNlYXJjaCkpIHtcbiAgICAvLyBqdXN0IHB1bGwgb3V0IHRoZSBzZWFyY2guXG4gICAgLy8gbGlrZSBocmVmPSc/Zm9vJy5cbiAgICAvLyBQdXQgdGhpcyBhZnRlciB0aGUgb3RoZXIgdHdvIGNhc2VzIGJlY2F1c2UgaXQgc2ltcGxpZmllcyB0aGUgYm9vbGVhbnNcbiAgICBpZiAocHN5Y2hvdGljKSB7XG4gICAgICByZXN1bHQuaG9zdG5hbWUgPSByZXN1bHQuaG9zdCA9IHNyY1BhdGguc2hpZnQoKTtcbiAgICAgIC8vb2NjYXRpb25hbHkgdGhlIGF1dGggY2FuIGdldCBzdHVjayBvbmx5IGluIGhvc3RcbiAgICAgIC8vdGhpcyBlc3BlY2lhbHkgaGFwcGVucyBpbiBjYXNlcyBsaWtlXG4gICAgICAvL3VybC5yZXNvbHZlT2JqZWN0KCdtYWlsdG86bG9jYWwxQGRvbWFpbjEnLCAnbG9jYWwyQGRvbWFpbjInKVxuICAgICAgdmFyIGF1dGhJbkhvc3QgPSByZXN1bHQuaG9zdCAmJiByZXN1bHQuaG9zdC5pbmRleE9mKCdAJykgPiAwID9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lmhvc3Quc3BsaXQoJ0AnKSA6IGZhbHNlO1xuICAgICAgaWYgKGF1dGhJbkhvc3QpIHtcbiAgICAgICAgcmVzdWx0LmF1dGggPSBhdXRoSW5Ib3N0LnNoaWZ0KCk7XG4gICAgICAgIHJlc3VsdC5ob3N0ID0gcmVzdWx0Lmhvc3RuYW1lID0gYXV0aEluSG9zdC5zaGlmdCgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXN1bHQuc2VhcmNoID0gcmVsYXRpdmUuc2VhcmNoO1xuICAgIHJlc3VsdC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5O1xuICAgIC8vdG8gc3VwcG9ydCBodHRwLnJlcXVlc3RcbiAgICBpZiAoIWlzTnVsbChyZXN1bHQucGF0aG5hbWUpIHx8ICFpc051bGwocmVzdWx0LnNlYXJjaCkpIHtcbiAgICAgIHJlc3VsdC5wYXRoID0gKHJlc3VsdC5wYXRobmFtZSA/IHJlc3VsdC5wYXRobmFtZSA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAgIChyZXN1bHQuc2VhcmNoID8gcmVzdWx0LnNlYXJjaCA6ICcnKTtcbiAgICB9XG4gICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlmICghc3JjUGF0aC5sZW5ndGgpIHtcbiAgICAvLyBubyBwYXRoIGF0IGFsbC4gIGVhc3kuXG4gICAgLy8gd2UndmUgYWxyZWFkeSBoYW5kbGVkIHRoZSBvdGhlciBzdHVmZiBhYm92ZS5cbiAgICByZXN1bHQucGF0aG5hbWUgPSBudWxsO1xuICAgIC8vdG8gc3VwcG9ydCBodHRwLnJlcXVlc3RcbiAgICBpZiAocmVzdWx0LnNlYXJjaCkge1xuICAgICAgcmVzdWx0LnBhdGggPSAnLycgKyByZXN1bHQuc2VhcmNoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQucGF0aCA9IG51bGw7XG4gICAgfVxuICAgIHJlc3VsdC5ocmVmID0gcmVzdWx0LmZvcm1hdCgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyBpZiBhIHVybCBFTkRzIGluIC4gb3IgLi4sIHRoZW4gaXQgbXVzdCBnZXQgYSB0cmFpbGluZyBzbGFzaC5cbiAgLy8gaG93ZXZlciwgaWYgaXQgZW5kcyBpbiBhbnl0aGluZyBlbHNlIG5vbi1zbGFzaHksXG4gIC8vIHRoZW4gaXQgbXVzdCBOT1QgZ2V0IGEgdHJhaWxpbmcgc2xhc2guXG4gIHZhciBsYXN0ID0gc3JjUGF0aC5zbGljZSgtMSlbMF07XG4gIHZhciBoYXNUcmFpbGluZ1NsYXNoID0gKFxuICAgICAgKHJlc3VsdC5ob3N0IHx8IHJlbGF0aXZlLmhvc3QpICYmIChsYXN0ID09PSAnLicgfHwgbGFzdCA9PT0gJy4uJykgfHxcbiAgICAgIGxhc3QgPT09ICcnKTtcblxuICAvLyBzdHJpcCBzaW5nbGUgZG90cywgcmVzb2x2ZSBkb3VibGUgZG90cyB0byBwYXJlbnQgZGlyXG4gIC8vIGlmIHRoZSBwYXRoIHRyaWVzIHRvIGdvIGFib3ZlIHRoZSByb290LCBgdXBgIGVuZHMgdXAgPiAwXG4gIHZhciB1cCA9IDA7XG4gIGZvciAodmFyIGkgPSBzcmNQYXRoLmxlbmd0aDsgaSA+PSAwOyBpLS0pIHtcbiAgICBsYXN0ID0gc3JjUGF0aFtpXTtcbiAgICBpZiAobGFzdCA9PSAnLicpIHtcbiAgICAgIHNyY1BhdGguc3BsaWNlKGksIDEpO1xuICAgIH0gZWxzZSBpZiAobGFzdCA9PT0gJy4uJykge1xuICAgICAgc3JjUGF0aC5zcGxpY2UoaSwgMSk7XG4gICAgICB1cCsrO1xuICAgIH0gZWxzZSBpZiAodXApIHtcbiAgICAgIHNyY1BhdGguc3BsaWNlKGksIDEpO1xuICAgICAgdXAtLTtcbiAgICB9XG4gIH1cblxuICAvLyBpZiB0aGUgcGF0aCBpcyBhbGxvd2VkIHRvIGdvIGFib3ZlIHRoZSByb290LCByZXN0b3JlIGxlYWRpbmcgLi5zXG4gIGlmICghbXVzdEVuZEFicyAmJiAhcmVtb3ZlQWxsRG90cykge1xuICAgIGZvciAoOyB1cC0tOyB1cCkge1xuICAgICAgc3JjUGF0aC51bnNoaWZ0KCcuLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChtdXN0RW5kQWJzICYmIHNyY1BhdGhbMF0gIT09ICcnICYmXG4gICAgICAoIXNyY1BhdGhbMF0gfHwgc3JjUGF0aFswXS5jaGFyQXQoMCkgIT09ICcvJykpIHtcbiAgICBzcmNQYXRoLnVuc2hpZnQoJycpO1xuICB9XG5cbiAgaWYgKGhhc1RyYWlsaW5nU2xhc2ggJiYgKHNyY1BhdGguam9pbignLycpLnN1YnN0cigtMSkgIT09ICcvJykpIHtcbiAgICBzcmNQYXRoLnB1c2goJycpO1xuICB9XG5cbiAgdmFyIGlzQWJzb2x1dGUgPSBzcmNQYXRoWzBdID09PSAnJyB8fFxuICAgICAgKHNyY1BhdGhbMF0gJiYgc3JjUGF0aFswXS5jaGFyQXQoMCkgPT09ICcvJyk7XG5cbiAgLy8gcHV0IHRoZSBob3N0IGJhY2tcbiAgaWYgKHBzeWNob3RpYykge1xuICAgIHJlc3VsdC5ob3N0bmFtZSA9IHJlc3VsdC5ob3N0ID0gaXNBYnNvbHV0ZSA/ICcnIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BhdGgubGVuZ3RoID8gc3JjUGF0aC5zaGlmdCgpIDogJyc7XG4gICAgLy9vY2NhdGlvbmFseSB0aGUgYXV0aCBjYW4gZ2V0IHN0dWNrIG9ubHkgaW4gaG9zdFxuICAgIC8vdGhpcyBlc3BlY2lhbHkgaGFwcGVucyBpbiBjYXNlcyBsaWtlXG4gICAgLy91cmwucmVzb2x2ZU9iamVjdCgnbWFpbHRvOmxvY2FsMUBkb21haW4xJywgJ2xvY2FsMkBkb21haW4yJylcbiAgICB2YXIgYXV0aEluSG9zdCA9IHJlc3VsdC5ob3N0ICYmIHJlc3VsdC5ob3N0LmluZGV4T2YoJ0AnKSA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lmhvc3Quc3BsaXQoJ0AnKSA6IGZhbHNlO1xuICAgIGlmIChhdXRoSW5Ib3N0KSB7XG4gICAgICByZXN1bHQuYXV0aCA9IGF1dGhJbkhvc3Quc2hpZnQoKTtcbiAgICAgIHJlc3VsdC5ob3N0ID0gcmVzdWx0Lmhvc3RuYW1lID0gYXV0aEluSG9zdC5zaGlmdCgpO1xuICAgIH1cbiAgfVxuXG4gIG11c3RFbmRBYnMgPSBtdXN0RW5kQWJzIHx8IChyZXN1bHQuaG9zdCAmJiBzcmNQYXRoLmxlbmd0aCk7XG5cbiAgaWYgKG11c3RFbmRBYnMgJiYgIWlzQWJzb2x1dGUpIHtcbiAgICBzcmNQYXRoLnVuc2hpZnQoJycpO1xuICB9XG5cbiAgaWYgKCFzcmNQYXRoLmxlbmd0aCkge1xuICAgIHJlc3VsdC5wYXRobmFtZSA9IG51bGw7XG4gICAgcmVzdWx0LnBhdGggPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdC5wYXRobmFtZSA9IHNyY1BhdGguam9pbignLycpO1xuICB9XG5cbiAgLy90byBzdXBwb3J0IHJlcXVlc3QuaHR0cFxuICBpZiAoIWlzTnVsbChyZXN1bHQucGF0aG5hbWUpIHx8ICFpc051bGwocmVzdWx0LnNlYXJjaCkpIHtcbiAgICByZXN1bHQucGF0aCA9IChyZXN1bHQucGF0aG5hbWUgPyByZXN1bHQucGF0aG5hbWUgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHJlc3VsdC5zZWFyY2ggPyByZXN1bHQuc2VhcmNoIDogJycpO1xuICB9XG4gIHJlc3VsdC5hdXRoID0gcmVsYXRpdmUuYXV0aCB8fCByZXN1bHQuYXV0aDtcbiAgcmVzdWx0LnNsYXNoZXMgPSByZXN1bHQuc2xhc2hlcyB8fCByZWxhdGl2ZS5zbGFzaGVzO1xuICByZXN1bHQuaHJlZiA9IHJlc3VsdC5mb3JtYXQoKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cblVybC5wcm90b3R5cGUucGFyc2VIb3N0ID0gZnVuY3Rpb24oKSB7XG4gIHZhciBob3N0ID0gdGhpcy5ob3N0O1xuICB2YXIgcG9ydCA9IHBvcnRQYXR0ZXJuLmV4ZWMoaG9zdCk7XG4gIGlmIChwb3J0KSB7XG4gICAgcG9ydCA9IHBvcnRbMF07XG4gICAgaWYgKHBvcnQgIT09ICc6Jykge1xuICAgICAgdGhpcy5wb3J0ID0gcG9ydC5zdWJzdHIoMSk7XG4gICAgfVxuICAgIGhvc3QgPSBob3N0LnN1YnN0cigwLCBob3N0Lmxlbmd0aCAtIHBvcnQubGVuZ3RoKTtcbiAgfVxuICBpZiAoaG9zdCkgdGhpcy5ob3N0bmFtZSA9IGhvc3Q7XG59O1xuXG5mdW5jdGlvbiBpc1N0cmluZyhhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09IFwic3RyaW5nXCI7XG59XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsO1xufVxuXG5mdW5jdGlvbiBpc051bGwoYXJnKSB7XG4gIHJldHVybiBhcmcgPT09IG51bGw7XG59XG5mdW5jdGlvbiBpc051bGxPclVuZGVmaW5lZChhcmcpIHtcbiAgcmV0dXJuICBhcmcgPT0gbnVsbDtcbn1cbiIsIlxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlcHJlY2F0ZTtcblxuLyoqXG4gKiBNYXJrIHRoYXQgYSBtZXRob2Qgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICogUmV0dXJucyBhIG1vZGlmaWVkIGZ1bmN0aW9uIHdoaWNoIHdhcm5zIG9uY2UgYnkgZGVmYXVsdC5cbiAqXG4gKiBJZiBgbG9jYWxTdG9yYWdlLm5vRGVwcmVjYXRpb24gPSB0cnVlYCBpcyBzZXQsIHRoZW4gaXQgaXMgYSBuby1vcC5cbiAqXG4gKiBJZiBgbG9jYWxTdG9yYWdlLnRocm93RGVwcmVjYXRpb24gPSB0cnVlYCBpcyBzZXQsIHRoZW4gZGVwcmVjYXRlZCBmdW5jdGlvbnNcbiAqIHdpbGwgdGhyb3cgYW4gRXJyb3Igd2hlbiBpbnZva2VkLlxuICpcbiAqIElmIGBsb2NhbFN0b3JhZ2UudHJhY2VEZXByZWNhdGlvbiA9IHRydWVgIGlzIHNldCwgdGhlbiBkZXByZWNhdGVkIGZ1bmN0aW9uc1xuICogd2lsbCBpbnZva2UgYGNvbnNvbGUudHJhY2UoKWAgaW5zdGVhZCBvZiBgY29uc29sZS5lcnJvcigpYC5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiAtIHRoZSBmdW5jdGlvbiB0byBkZXByZWNhdGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBtc2cgLSB0aGUgc3RyaW5nIHRvIHByaW50IHRvIHRoZSBjb25zb2xlIHdoZW4gYGZuYCBpcyBpbnZva2VkXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IGEgbmV3IFwiZGVwcmVjYXRlZFwiIHZlcnNpb24gb2YgYGZuYFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBkZXByZWNhdGUgKGZuLCBtc2cpIHtcbiAgaWYgKGNvbmZpZygnbm9EZXByZWNhdGlvbicpKSB7XG4gICAgcmV0dXJuIGZuO1xuICB9XG5cbiAgdmFyIHdhcm5lZCA9IGZhbHNlO1xuICBmdW5jdGlvbiBkZXByZWNhdGVkKCkge1xuICAgIGlmICghd2FybmVkKSB7XG4gICAgICBpZiAoY29uZmlnKCd0aHJvd0RlcHJlY2F0aW9uJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICB9IGVsc2UgaWYgKGNvbmZpZygndHJhY2VEZXByZWNhdGlvbicpKSB7XG4gICAgICAgIGNvbnNvbGUudHJhY2UobXNnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2Fybihtc2cpO1xuICAgICAgfVxuICAgICAgd2FybmVkID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICByZXR1cm4gZGVwcmVjYXRlZDtcbn1cblxuLyoqXG4gKiBDaGVja3MgYGxvY2FsU3RvcmFnZWAgZm9yIGJvb2xlYW4gdmFsdWVzIGZvciB0aGUgZ2l2ZW4gYG5hbWVgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGNvbmZpZyAobmFtZSkge1xuICAvLyBhY2Nlc3NpbmcgZ2xvYmFsLmxvY2FsU3RvcmFnZSBjYW4gdHJpZ2dlciBhIERPTUV4Y2VwdGlvbiBpbiBzYW5kYm94ZWQgaWZyYW1lc1xuICB0cnkge1xuICAgIGlmICghZ2xvYmFsLmxvY2FsU3RvcmFnZSkgcmV0dXJuIGZhbHNlO1xuICB9IGNhdGNoIChfKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB2YWwgPSBnbG9iYWwubG9jYWxTdG9yYWdlW25hbWVdO1xuICBpZiAobnVsbCA9PSB2YWwpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJztcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNCdWZmZXIoYXJnKSB7XG4gIHJldHVybiBhcmcgJiYgdHlwZW9mIGFyZyA9PT0gJ29iamVjdCdcbiAgICAmJiB0eXBlb2YgYXJnLmNvcHkgPT09ICdmdW5jdGlvbidcbiAgICAmJiB0eXBlb2YgYXJnLmZpbGwgPT09ICdmdW5jdGlvbidcbiAgICAmJiB0eXBlb2YgYXJnLnJlYWRVSW50OCA9PT0gJ2Z1bmN0aW9uJztcbn0iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxudmFyIGZvcm1hdFJlZ0V4cCA9IC8lW3NkaiVdL2c7XG5leHBvcnRzLmZvcm1hdCA9IGZ1bmN0aW9uKGYpIHtcbiAgaWYgKCFpc1N0cmluZyhmKSkge1xuICAgIHZhciBvYmplY3RzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG9iamVjdHMucHVzaChpbnNwZWN0KGFyZ3VtZW50c1tpXSkpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0cy5qb2luKCcgJyk7XG4gIH1cblxuICB2YXIgaSA9IDE7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICB2YXIgbGVuID0gYXJncy5sZW5ndGg7XG4gIHZhciBzdHIgPSBTdHJpbmcoZikucmVwbGFjZShmb3JtYXRSZWdFeHAsIGZ1bmN0aW9uKHgpIHtcbiAgICBpZiAoeCA9PT0gJyUlJykgcmV0dXJuICclJztcbiAgICBpZiAoaSA+PSBsZW4pIHJldHVybiB4O1xuICAgIHN3aXRjaCAoeCkge1xuICAgICAgY2FzZSAnJXMnOiByZXR1cm4gU3RyaW5nKGFyZ3NbaSsrXSk7XG4gICAgICBjYXNlICclZCc6IHJldHVybiBOdW1iZXIoYXJnc1tpKytdKTtcbiAgICAgIGNhc2UgJyVqJzpcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnc1tpKytdKTtcbiAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB4O1xuICAgIH1cbiAgfSk7XG4gIGZvciAodmFyIHggPSBhcmdzW2ldOyBpIDwgbGVuOyB4ID0gYXJnc1srK2ldKSB7XG4gICAgaWYgKGlzTnVsbCh4KSB8fCAhaXNPYmplY3QoeCkpIHtcbiAgICAgIHN0ciArPSAnICcgKyB4O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHIgKz0gJyAnICsgaW5zcGVjdCh4KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn07XG5cblxuLy8gTWFyayB0aGF0IGEgbWV0aG9kIHNob3VsZCBub3QgYmUgdXNlZC5cbi8vIFJldHVybnMgYSBtb2RpZmllZCBmdW5jdGlvbiB3aGljaCB3YXJucyBvbmNlIGJ5IGRlZmF1bHQuXG4vLyBJZiAtLW5vLWRlcHJlY2F0aW9uIGlzIHNldCwgdGhlbiBpdCBpcyBhIG5vLW9wLlxuZXhwb3J0cy5kZXByZWNhdGUgPSBmdW5jdGlvbihmbiwgbXNnKSB7XG4gIC8vIEFsbG93IGZvciBkZXByZWNhdGluZyB0aGluZ3MgaW4gdGhlIHByb2Nlc3Mgb2Ygc3RhcnRpbmcgdXAuXG4gIGlmIChpc1VuZGVmaW5lZChnbG9iYWwucHJvY2VzcykpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gZXhwb3J0cy5kZXByZWNhdGUoZm4sIG1zZykuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9XG5cbiAgaWYgKHByb2Nlc3Mubm9EZXByZWNhdGlvbiA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIHZhciB3YXJuZWQgPSBmYWxzZTtcbiAgZnVuY3Rpb24gZGVwcmVjYXRlZCgpIHtcbiAgICBpZiAoIXdhcm5lZCkge1xuICAgICAgaWYgKHByb2Nlc3MudGhyb3dEZXByZWNhdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy50cmFjZURlcHJlY2F0aW9uKSB7XG4gICAgICAgIGNvbnNvbGUudHJhY2UobXNnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IobXNnKTtcbiAgICAgIH1cbiAgICAgIHdhcm5lZCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgcmV0dXJuIGRlcHJlY2F0ZWQ7XG59O1xuXG5cbnZhciBkZWJ1Z3MgPSB7fTtcbnZhciBkZWJ1Z0Vudmlyb247XG5leHBvcnRzLmRlYnVnbG9nID0gZnVuY3Rpb24oc2V0KSB7XG4gIGlmIChpc1VuZGVmaW5lZChkZWJ1Z0Vudmlyb24pKVxuICAgIGRlYnVnRW52aXJvbiA9IHByb2Nlc3MuZW52Lk5PREVfREVCVUcgfHwgJyc7XG4gIHNldCA9IHNldC50b1VwcGVyQ2FzZSgpO1xuICBpZiAoIWRlYnVnc1tzZXRdKSB7XG4gICAgaWYgKG5ldyBSZWdFeHAoJ1xcXFxiJyArIHNldCArICdcXFxcYicsICdpJykudGVzdChkZWJ1Z0Vudmlyb24pKSB7XG4gICAgICB2YXIgcGlkID0gcHJvY2Vzcy5waWQ7XG4gICAgICBkZWJ1Z3Nbc2V0XSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbXNnID0gZXhwb3J0cy5mb3JtYXQuYXBwbHkoZXhwb3J0cywgYXJndW1lbnRzKTtcbiAgICAgICAgY29uc29sZS5lcnJvcignJXMgJWQ6ICVzJywgc2V0LCBwaWQsIG1zZyk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1Z3Nbc2V0XSA9IGZ1bmN0aW9uKCkge307XG4gICAgfVxuICB9XG4gIHJldHVybiBkZWJ1Z3Nbc2V0XTtcbn07XG5cblxuLyoqXG4gKiBFY2hvcyB0aGUgdmFsdWUgb2YgYSB2YWx1ZS4gVHJ5cyB0byBwcmludCB0aGUgdmFsdWUgb3V0XG4gKiBpbiB0aGUgYmVzdCB3YXkgcG9zc2libGUgZ2l2ZW4gdGhlIGRpZmZlcmVudCB0eXBlcy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIFRoZSBvYmplY3QgdG8gcHJpbnQgb3V0LlxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgb3B0aW9ucyBvYmplY3QgdGhhdCBhbHRlcnMgdGhlIG91dHB1dC5cbiAqL1xuLyogbGVnYWN5OiBvYmosIHNob3dIaWRkZW4sIGRlcHRoLCBjb2xvcnMqL1xuZnVuY3Rpb24gaW5zcGVjdChvYmosIG9wdHMpIHtcbiAgLy8gZGVmYXVsdCBvcHRpb25zXG4gIHZhciBjdHggPSB7XG4gICAgc2VlbjogW10sXG4gICAgc3R5bGl6ZTogc3R5bGl6ZU5vQ29sb3JcbiAgfTtcbiAgLy8gbGVnYWN5Li4uXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID49IDMpIGN0eC5kZXB0aCA9IGFyZ3VtZW50c1syXTtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPj0gNCkgY3R4LmNvbG9ycyA9IGFyZ3VtZW50c1szXTtcbiAgaWYgKGlzQm9vbGVhbihvcHRzKSkge1xuICAgIC8vIGxlZ2FjeS4uLlxuICAgIGN0eC5zaG93SGlkZGVuID0gb3B0cztcbiAgfSBlbHNlIGlmIChvcHRzKSB7XG4gICAgLy8gZ290IGFuIFwib3B0aW9uc1wiIG9iamVjdFxuICAgIGV4cG9ydHMuX2V4dGVuZChjdHgsIG9wdHMpO1xuICB9XG4gIC8vIHNldCBkZWZhdWx0IG9wdGlvbnNcbiAgaWYgKGlzVW5kZWZpbmVkKGN0eC5zaG93SGlkZGVuKSkgY3R4LnNob3dIaWRkZW4gPSBmYWxzZTtcbiAgaWYgKGlzVW5kZWZpbmVkKGN0eC5kZXB0aCkpIGN0eC5kZXB0aCA9IDI7XG4gIGlmIChpc1VuZGVmaW5lZChjdHguY29sb3JzKSkgY3R4LmNvbG9ycyA9IGZhbHNlO1xuICBpZiAoaXNVbmRlZmluZWQoY3R4LmN1c3RvbUluc3BlY3QpKSBjdHguY3VzdG9tSW5zcGVjdCA9IHRydWU7XG4gIGlmIChjdHguY29sb3JzKSBjdHguc3R5bGl6ZSA9IHN0eWxpemVXaXRoQ29sb3I7XG4gIHJldHVybiBmb3JtYXRWYWx1ZShjdHgsIG9iaiwgY3R4LmRlcHRoKTtcbn1cbmV4cG9ydHMuaW5zcGVjdCA9IGluc3BlY3Q7XG5cblxuLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BTlNJX2VzY2FwZV9jb2RlI2dyYXBoaWNzXG5pbnNwZWN0LmNvbG9ycyA9IHtcbiAgJ2JvbGQnIDogWzEsIDIyXSxcbiAgJ2l0YWxpYycgOiBbMywgMjNdLFxuICAndW5kZXJsaW5lJyA6IFs0LCAyNF0sXG4gICdpbnZlcnNlJyA6IFs3LCAyN10sXG4gICd3aGl0ZScgOiBbMzcsIDM5XSxcbiAgJ2dyZXknIDogWzkwLCAzOV0sXG4gICdibGFjaycgOiBbMzAsIDM5XSxcbiAgJ2JsdWUnIDogWzM0LCAzOV0sXG4gICdjeWFuJyA6IFszNiwgMzldLFxuICAnZ3JlZW4nIDogWzMyLCAzOV0sXG4gICdtYWdlbnRhJyA6IFszNSwgMzldLFxuICAncmVkJyA6IFszMSwgMzldLFxuICAneWVsbG93JyA6IFszMywgMzldXG59O1xuXG4vLyBEb24ndCB1c2UgJ2JsdWUnIG5vdCB2aXNpYmxlIG9uIGNtZC5leGVcbmluc3BlY3Quc3R5bGVzID0ge1xuICAnc3BlY2lhbCc6ICdjeWFuJyxcbiAgJ251bWJlcic6ICd5ZWxsb3cnLFxuICAnYm9vbGVhbic6ICd5ZWxsb3cnLFxuICAndW5kZWZpbmVkJzogJ2dyZXknLFxuICAnbnVsbCc6ICdib2xkJyxcbiAgJ3N0cmluZyc6ICdncmVlbicsXG4gICdkYXRlJzogJ21hZ2VudGEnLFxuICAvLyBcIm5hbWVcIjogaW50ZW50aW9uYWxseSBub3Qgc3R5bGluZ1xuICAncmVnZXhwJzogJ3JlZCdcbn07XG5cblxuZnVuY3Rpb24gc3R5bGl6ZVdpdGhDb2xvcihzdHIsIHN0eWxlVHlwZSkge1xuICB2YXIgc3R5bGUgPSBpbnNwZWN0LnN0eWxlc1tzdHlsZVR5cGVdO1xuXG4gIGlmIChzdHlsZSkge1xuICAgIHJldHVybiAnXFx1MDAxYlsnICsgaW5zcGVjdC5jb2xvcnNbc3R5bGVdWzBdICsgJ20nICsgc3RyICtcbiAgICAgICAgICAgJ1xcdTAwMWJbJyArIGluc3BlY3QuY29sb3JzW3N0eWxlXVsxXSArICdtJztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG59XG5cblxuZnVuY3Rpb24gc3R5bGl6ZU5vQ29sb3Ioc3RyLCBzdHlsZVR5cGUpIHtcbiAgcmV0dXJuIHN0cjtcbn1cblxuXG5mdW5jdGlvbiBhcnJheVRvSGFzaChhcnJheSkge1xuICB2YXIgaGFzaCA9IHt9O1xuXG4gIGFycmF5LmZvckVhY2goZnVuY3Rpb24odmFsLCBpZHgpIHtcbiAgICBoYXNoW3ZhbF0gPSB0cnVlO1xuICB9KTtcblxuICByZXR1cm4gaGFzaDtcbn1cblxuXG5mdW5jdGlvbiBmb3JtYXRWYWx1ZShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMpIHtcbiAgLy8gUHJvdmlkZSBhIGhvb2sgZm9yIHVzZXItc3BlY2lmaWVkIGluc3BlY3QgZnVuY3Rpb25zLlxuICAvLyBDaGVjayB0aGF0IHZhbHVlIGlzIGFuIG9iamVjdCB3aXRoIGFuIGluc3BlY3QgZnVuY3Rpb24gb24gaXRcbiAgaWYgKGN0eC5jdXN0b21JbnNwZWN0ICYmXG4gICAgICB2YWx1ZSAmJlxuICAgICAgaXNGdW5jdGlvbih2YWx1ZS5pbnNwZWN0KSAmJlxuICAgICAgLy8gRmlsdGVyIG91dCB0aGUgdXRpbCBtb2R1bGUsIGl0J3MgaW5zcGVjdCBmdW5jdGlvbiBpcyBzcGVjaWFsXG4gICAgICB2YWx1ZS5pbnNwZWN0ICE9PSBleHBvcnRzLmluc3BlY3QgJiZcbiAgICAgIC8vIEFsc28gZmlsdGVyIG91dCBhbnkgcHJvdG90eXBlIG9iamVjdHMgdXNpbmcgdGhlIGNpcmN1bGFyIGNoZWNrLlxuICAgICAgISh2YWx1ZS5jb25zdHJ1Y3RvciAmJiB2YWx1ZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgPT09IHZhbHVlKSkge1xuICAgIHZhciByZXQgPSB2YWx1ZS5pbnNwZWN0KHJlY3Vyc2VUaW1lcywgY3R4KTtcbiAgICBpZiAoIWlzU3RyaW5nKHJldCkpIHtcbiAgICAgIHJldCA9IGZvcm1hdFZhbHVlKGN0eCwgcmV0LCByZWN1cnNlVGltZXMpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLy8gUHJpbWl0aXZlIHR5cGVzIGNhbm5vdCBoYXZlIHByb3BlcnRpZXNcbiAgdmFyIHByaW1pdGl2ZSA9IGZvcm1hdFByaW1pdGl2ZShjdHgsIHZhbHVlKTtcbiAgaWYgKHByaW1pdGl2ZSkge1xuICAgIHJldHVybiBwcmltaXRpdmU7XG4gIH1cblxuICAvLyBMb29rIHVwIHRoZSBrZXlzIG9mIHRoZSBvYmplY3QuXG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXModmFsdWUpO1xuICB2YXIgdmlzaWJsZUtleXMgPSBhcnJheVRvSGFzaChrZXlzKTtcblxuICBpZiAoY3R4LnNob3dIaWRkZW4pIHtcbiAgICBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmFsdWUpO1xuICB9XG5cbiAgLy8gSUUgZG9lc24ndCBtYWtlIGVycm9yIGZpZWxkcyBub24tZW51bWVyYWJsZVxuICAvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvZHd3NTJzYnQodj12cy45NCkuYXNweFxuICBpZiAoaXNFcnJvcih2YWx1ZSlcbiAgICAgICYmIChrZXlzLmluZGV4T2YoJ21lc3NhZ2UnKSA+PSAwIHx8IGtleXMuaW5kZXhPZignZGVzY3JpcHRpb24nKSA+PSAwKSkge1xuICAgIHJldHVybiBmb3JtYXRFcnJvcih2YWx1ZSk7XG4gIH1cblxuICAvLyBTb21lIHR5cGUgb2Ygb2JqZWN0IHdpdGhvdXQgcHJvcGVydGllcyBjYW4gYmUgc2hvcnRjdXR0ZWQuXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChpc0Z1bmN0aW9uKHZhbHVlKSkge1xuICAgICAgdmFyIG5hbWUgPSB2YWx1ZS5uYW1lID8gJzogJyArIHZhbHVlLm5hbWUgOiAnJztcbiAgICAgIHJldHVybiBjdHguc3R5bGl6ZSgnW0Z1bmN0aW9uJyArIG5hbWUgKyAnXScsICdzcGVjaWFsJyk7XG4gICAgfVxuICAgIGlmIChpc1JlZ0V4cCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjdHguc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLCAncmVnZXhwJyk7XG4gICAgfVxuICAgIGlmIChpc0RhdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gY3R4LnN0eWxpemUoRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSksICdkYXRlJyk7XG4gICAgfVxuICAgIGlmIChpc0Vycm9yKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGZvcm1hdEVycm9yKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB2YXIgYmFzZSA9ICcnLCBhcnJheSA9IGZhbHNlLCBicmFjZXMgPSBbJ3snLCAnfSddO1xuXG4gIC8vIE1ha2UgQXJyYXkgc2F5IHRoYXQgdGhleSBhcmUgQXJyYXlcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgYXJyYXkgPSB0cnVlO1xuICAgIGJyYWNlcyA9IFsnWycsICddJ107XG4gIH1cblxuICAvLyBNYWtlIGZ1bmN0aW9ucyBzYXkgdGhhdCB0aGV5IGFyZSBmdW5jdGlvbnNcbiAgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7XG4gICAgdmFyIG4gPSB2YWx1ZS5uYW1lID8gJzogJyArIHZhbHVlLm5hbWUgOiAnJztcbiAgICBiYXNlID0gJyBbRnVuY3Rpb24nICsgbiArICddJztcbiAgfVxuXG4gIC8vIE1ha2UgUmVnRXhwcyBzYXkgdGhhdCB0aGV5IGFyZSBSZWdFeHBzXG4gIGlmIChpc1JlZ0V4cCh2YWx1ZSkpIHtcbiAgICBiYXNlID0gJyAnICsgUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgfVxuXG4gIC8vIE1ha2UgZGF0ZXMgd2l0aCBwcm9wZXJ0aWVzIGZpcnN0IHNheSB0aGUgZGF0ZVxuICBpZiAoaXNEYXRlKHZhbHVlKSkge1xuICAgIGJhc2UgPSAnICcgKyBEYXRlLnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgfVxuXG4gIC8vIE1ha2UgZXJyb3Igd2l0aCBtZXNzYWdlIGZpcnN0IHNheSB0aGUgZXJyb3JcbiAgaWYgKGlzRXJyb3IodmFsdWUpKSB7XG4gICAgYmFzZSA9ICcgJyArIGZvcm1hdEVycm9yKHZhbHVlKTtcbiAgfVxuXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCAmJiAoIWFycmF5IHx8IHZhbHVlLmxlbmd0aCA9PSAwKSkge1xuICAgIHJldHVybiBicmFjZXNbMF0gKyBiYXNlICsgYnJhY2VzWzFdO1xuICB9XG5cbiAgaWYgKHJlY3Vyc2VUaW1lcyA8IDApIHtcbiAgICBpZiAoaXNSZWdFeHAodmFsdWUpKSB7XG4gICAgICByZXR1cm4gY3R4LnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSwgJ3JlZ2V4cCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3R4LnN0eWxpemUoJ1tPYmplY3RdJywgJ3NwZWNpYWwnKTtcbiAgICB9XG4gIH1cblxuICBjdHguc2Vlbi5wdXNoKHZhbHVlKTtcblxuICB2YXIgb3V0cHV0O1xuICBpZiAoYXJyYXkpIHtcbiAgICBvdXRwdXQgPSBmb3JtYXRBcnJheShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXlzKTtcbiAgfSBlbHNlIHtcbiAgICBvdXRwdXQgPSBrZXlzLm1hcChmdW5jdGlvbihrZXkpIHtcbiAgICAgIHJldHVybiBmb3JtYXRQcm9wZXJ0eShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXksIGFycmF5KTtcbiAgICB9KTtcbiAgfVxuXG4gIGN0eC5zZWVuLnBvcCgpO1xuXG4gIHJldHVybiByZWR1Y2VUb1NpbmdsZVN0cmluZyhvdXRwdXQsIGJhc2UsIGJyYWNlcyk7XG59XG5cblxuZnVuY3Rpb24gZm9ybWF0UHJpbWl0aXZlKGN0eCwgdmFsdWUpIHtcbiAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlKSlcbiAgICByZXR1cm4gY3R4LnN0eWxpemUoJ3VuZGVmaW5lZCcsICd1bmRlZmluZWQnKTtcbiAgaWYgKGlzU3RyaW5nKHZhbHVlKSkge1xuICAgIHZhciBzaW1wbGUgPSAnXFwnJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlKS5yZXBsYWNlKC9eXCJ8XCIkL2csICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFxcIi9nLCAnXCInKSArICdcXCcnO1xuICAgIHJldHVybiBjdHguc3R5bGl6ZShzaW1wbGUsICdzdHJpbmcnKTtcbiAgfVxuICBpZiAoaXNOdW1iZXIodmFsdWUpKVxuICAgIHJldHVybiBjdHguc3R5bGl6ZSgnJyArIHZhbHVlLCAnbnVtYmVyJyk7XG4gIGlmIChpc0Jvb2xlYW4odmFsdWUpKVxuICAgIHJldHVybiBjdHguc3R5bGl6ZSgnJyArIHZhbHVlLCAnYm9vbGVhbicpO1xuICAvLyBGb3Igc29tZSByZWFzb24gdHlwZW9mIG51bGwgaXMgXCJvYmplY3RcIiwgc28gc3BlY2lhbCBjYXNlIGhlcmUuXG4gIGlmIChpc051bGwodmFsdWUpKVxuICAgIHJldHVybiBjdHguc3R5bGl6ZSgnbnVsbCcsICdudWxsJyk7XG59XG5cblxuZnVuY3Rpb24gZm9ybWF0RXJyb3IodmFsdWUpIHtcbiAgcmV0dXJuICdbJyArIEVycm9yLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSArICddJztcbn1cblxuXG5mdW5jdGlvbiBmb3JtYXRBcnJheShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXlzKSB7XG4gIHZhciBvdXRwdXQgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkodmFsdWUsIFN0cmluZyhpKSkpIHtcbiAgICAgIG91dHB1dC5wdXNoKGZvcm1hdFByb3BlcnR5KGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcywgdmlzaWJsZUtleXMsXG4gICAgICAgICAgU3RyaW5nKGkpLCB0cnVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICB9XG4gIH1cbiAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIGlmICgha2V5Lm1hdGNoKC9eXFxkKyQvKSkge1xuICAgICAgb3V0cHV0LnB1c2goZm9ybWF0UHJvcGVydHkoY3R4LCB2YWx1ZSwgcmVjdXJzZVRpbWVzLCB2aXNpYmxlS2V5cyxcbiAgICAgICAgICBrZXksIHRydWUpKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb3V0cHV0O1xufVxuXG5cbmZ1bmN0aW9uIGZvcm1hdFByb3BlcnR5KGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcywgdmlzaWJsZUtleXMsIGtleSwgYXJyYXkpIHtcbiAgdmFyIG5hbWUsIHN0ciwgZGVzYztcbiAgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodmFsdWUsIGtleSkgfHwgeyB2YWx1ZTogdmFsdWVba2V5XSB9O1xuICBpZiAoZGVzYy5nZXQpIHtcbiAgICBpZiAoZGVzYy5zZXQpIHtcbiAgICAgIHN0ciA9IGN0eC5zdHlsaXplKCdbR2V0dGVyL1NldHRlcl0nLCAnc3BlY2lhbCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHIgPSBjdHguc3R5bGl6ZSgnW0dldHRlcl0nLCAnc3BlY2lhbCcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoZGVzYy5zZXQpIHtcbiAgICAgIHN0ciA9IGN0eC5zdHlsaXplKCdbU2V0dGVyXScsICdzcGVjaWFsJyk7XG4gICAgfVxuICB9XG4gIGlmICghaGFzT3duUHJvcGVydHkodmlzaWJsZUtleXMsIGtleSkpIHtcbiAgICBuYW1lID0gJ1snICsga2V5ICsgJ10nO1xuICB9XG4gIGlmICghc3RyKSB7XG4gICAgaWYgKGN0eC5zZWVuLmluZGV4T2YoZGVzYy52YWx1ZSkgPCAwKSB7XG4gICAgICBpZiAoaXNOdWxsKHJlY3Vyc2VUaW1lcykpIHtcbiAgICAgICAgc3RyID0gZm9ybWF0VmFsdWUoY3R4LCBkZXNjLnZhbHVlLCBudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0ciA9IGZvcm1hdFZhbHVlKGN0eCwgZGVzYy52YWx1ZSwgcmVjdXJzZVRpbWVzIC0gMSk7XG4gICAgICB9XG4gICAgICBpZiAoc3RyLmluZGV4T2YoJ1xcbicpID4gLTEpIHtcbiAgICAgICAgaWYgKGFycmF5KSB7XG4gICAgICAgICAgc3RyID0gc3RyLnNwbGl0KCdcXG4nKS5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICAgICAgcmV0dXJuICcgICcgKyBsaW5lO1xuICAgICAgICAgIH0pLmpvaW4oJ1xcbicpLnN1YnN0cigyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHIgPSAnXFxuJyArIHN0ci5zcGxpdCgnXFxuJykubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgICAgIHJldHVybiAnICAgJyArIGxpbmU7XG4gICAgICAgICAgfSkuam9pbignXFxuJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3RyID0gY3R4LnN0eWxpemUoJ1tDaXJjdWxhcl0nLCAnc3BlY2lhbCcpO1xuICAgIH1cbiAgfVxuICBpZiAoaXNVbmRlZmluZWQobmFtZSkpIHtcbiAgICBpZiAoYXJyYXkgJiYga2V5Lm1hdGNoKC9eXFxkKyQvKSkge1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgbmFtZSA9IEpTT04uc3RyaW5naWZ5KCcnICsga2V5KTtcbiAgICBpZiAobmFtZS5tYXRjaCgvXlwiKFthLXpBLVpfXVthLXpBLVpfMC05XSopXCIkLykpIHtcbiAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cigxLCBuYW1lLmxlbmd0aCAtIDIpO1xuICAgICAgbmFtZSA9IGN0eC5zdHlsaXplKG5hbWUsICduYW1lJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKVxuICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxcXFwiL2csICdcIicpXG4gICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oXlwifFwiJCkvZywgXCInXCIpO1xuICAgICAgbmFtZSA9IGN0eC5zdHlsaXplKG5hbWUsICdzdHJpbmcnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmFtZSArICc6ICcgKyBzdHI7XG59XG5cblxuZnVuY3Rpb24gcmVkdWNlVG9TaW5nbGVTdHJpbmcob3V0cHV0LCBiYXNlLCBicmFjZXMpIHtcbiAgdmFyIG51bUxpbmVzRXN0ID0gMDtcbiAgdmFyIGxlbmd0aCA9IG91dHB1dC5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgY3VyKSB7XG4gICAgbnVtTGluZXNFc3QrKztcbiAgICBpZiAoY3VyLmluZGV4T2YoJ1xcbicpID49IDApIG51bUxpbmVzRXN0Kys7XG4gICAgcmV0dXJuIHByZXYgKyBjdXIucmVwbGFjZSgvXFx1MDAxYlxcW1xcZFxcZD9tL2csICcnKS5sZW5ndGggKyAxO1xuICB9LCAwKTtcblxuICBpZiAobGVuZ3RoID4gNjApIHtcbiAgICByZXR1cm4gYnJhY2VzWzBdICtcbiAgICAgICAgICAgKGJhc2UgPT09ICcnID8gJycgOiBiYXNlICsgJ1xcbiAnKSArXG4gICAgICAgICAgICcgJyArXG4gICAgICAgICAgIG91dHB1dC5qb2luKCcsXFxuICAnKSArXG4gICAgICAgICAgICcgJyArXG4gICAgICAgICAgIGJyYWNlc1sxXTtcbiAgfVxuXG4gIHJldHVybiBicmFjZXNbMF0gKyBiYXNlICsgJyAnICsgb3V0cHV0LmpvaW4oJywgJykgKyAnICcgKyBicmFjZXNbMV07XG59XG5cblxuLy8gTk9URTogVGhlc2UgdHlwZSBjaGVja2luZyBmdW5jdGlvbnMgaW50ZW50aW9uYWxseSBkb24ndCB1c2UgYGluc3RhbmNlb2ZgXG4vLyBiZWNhdXNlIGl0IGlzIGZyYWdpbGUgYW5kIGNhbiBiZSBlYXNpbHkgZmFrZWQgd2l0aCBgT2JqZWN0LmNyZWF0ZSgpYC5cbmZ1bmN0aW9uIGlzQXJyYXkoYXIpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYXIpO1xufVxuZXhwb3J0cy5pc0FycmF5ID0gaXNBcnJheTtcblxuZnVuY3Rpb24gaXNCb29sZWFuKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ2Jvb2xlYW4nO1xufVxuZXhwb3J0cy5pc0Jvb2xlYW4gPSBpc0Jvb2xlYW47XG5cbmZ1bmN0aW9uIGlzTnVsbChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gbnVsbDtcbn1cbmV4cG9ydHMuaXNOdWxsID0gaXNOdWxsO1xuXG5mdW5jdGlvbiBpc051bGxPclVuZGVmaW5lZChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PSBudWxsO1xufVxuZXhwb3J0cy5pc051bGxPclVuZGVmaW5lZCA9IGlzTnVsbE9yVW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBpc051bWJlcihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdudW1iZXInO1xufVxuZXhwb3J0cy5pc051bWJlciA9IGlzTnVtYmVyO1xuXG5mdW5jdGlvbiBpc1N0cmluZyhhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnO1xufVxuZXhwb3J0cy5pc1N0cmluZyA9IGlzU3RyaW5nO1xuXG5mdW5jdGlvbiBpc1N5bWJvbChhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdzeW1ib2wnO1xufVxuZXhwb3J0cy5pc1N5bWJvbCA9IGlzU3ltYm9sO1xuXG5mdW5jdGlvbiBpc1VuZGVmaW5lZChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gdm9pZCAwO1xufVxuZXhwb3J0cy5pc1VuZGVmaW5lZCA9IGlzVW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBpc1JlZ0V4cChyZSkge1xuICByZXR1cm4gaXNPYmplY3QocmUpICYmIG9iamVjdFRvU3RyaW5nKHJlKSA9PT0gJ1tvYmplY3QgUmVnRXhwXSc7XG59XG5leHBvcnRzLmlzUmVnRXhwID0gaXNSZWdFeHA7XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsO1xufVxuZXhwb3J0cy5pc09iamVjdCA9IGlzT2JqZWN0O1xuXG5mdW5jdGlvbiBpc0RhdGUoZCkge1xuICByZXR1cm4gaXNPYmplY3QoZCkgJiYgb2JqZWN0VG9TdHJpbmcoZCkgPT09ICdbb2JqZWN0IERhdGVdJztcbn1cbmV4cG9ydHMuaXNEYXRlID0gaXNEYXRlO1xuXG5mdW5jdGlvbiBpc0Vycm9yKGUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0KGUpICYmXG4gICAgICAob2JqZWN0VG9TdHJpbmcoZSkgPT09ICdbb2JqZWN0IEVycm9yXScgfHwgZSBpbnN0YW5jZW9mIEVycm9yKTtcbn1cbmV4cG9ydHMuaXNFcnJvciA9IGlzRXJyb3I7XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24oYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnZnVuY3Rpb24nO1xufVxuZXhwb3J0cy5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcblxuZnVuY3Rpb24gaXNQcmltaXRpdmUoYXJnKSB7XG4gIHJldHVybiBhcmcgPT09IG51bGwgfHxcbiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdib29sZWFuJyB8fFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ251bWJlcicgfHxcbiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICB0eXBlb2YgYXJnID09PSAnc3ltYm9sJyB8fCAgLy8gRVM2IHN5bWJvbFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ3VuZGVmaW5lZCc7XG59XG5leHBvcnRzLmlzUHJpbWl0aXZlID0gaXNQcmltaXRpdmU7XG5cbmV4cG9ydHMuaXNCdWZmZXIgPSByZXF1aXJlKCcuL3N1cHBvcnQvaXNCdWZmZXInKTtcblxuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcobykge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pO1xufVxuXG5cbmZ1bmN0aW9uIHBhZChuKSB7XG4gIHJldHVybiBuIDwgMTAgPyAnMCcgKyBuLnRvU3RyaW5nKDEwKSA6IG4udG9TdHJpbmcoMTApO1xufVxuXG5cbnZhciBtb250aHMgPSBbJ0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJywgJ0p1bCcsICdBdWcnLCAnU2VwJyxcbiAgICAgICAgICAgICAgJ09jdCcsICdOb3YnLCAnRGVjJ107XG5cbi8vIDI2IEZlYiAxNjoxOTozNFxuZnVuY3Rpb24gdGltZXN0YW1wKCkge1xuICB2YXIgZCA9IG5ldyBEYXRlKCk7XG4gIHZhciB0aW1lID0gW3BhZChkLmdldEhvdXJzKCkpLFxuICAgICAgICAgICAgICBwYWQoZC5nZXRNaW51dGVzKCkpLFxuICAgICAgICAgICAgICBwYWQoZC5nZXRTZWNvbmRzKCkpXS5qb2luKCc6Jyk7XG4gIHJldHVybiBbZC5nZXREYXRlKCksIG1vbnRoc1tkLmdldE1vbnRoKCldLCB0aW1lXS5qb2luKCcgJyk7XG59XG5cblxuLy8gbG9nIGlzIGp1c3QgYSB0aGluIHdyYXBwZXIgdG8gY29uc29sZS5sb2cgdGhhdCBwcmVwZW5kcyBhIHRpbWVzdGFtcFxuZXhwb3J0cy5sb2cgPSBmdW5jdGlvbigpIHtcbiAgY29uc29sZS5sb2coJyVzIC0gJXMnLCB0aW1lc3RhbXAoKSwgZXhwb3J0cy5mb3JtYXQuYXBwbHkoZXhwb3J0cywgYXJndW1lbnRzKSk7XG59O1xuXG5cbi8qKlxuICogSW5oZXJpdCB0aGUgcHJvdG90eXBlIG1ldGhvZHMgZnJvbSBvbmUgY29uc3RydWN0b3IgaW50byBhbm90aGVyLlxuICpcbiAqIFRoZSBGdW5jdGlvbi5wcm90b3R5cGUuaW5oZXJpdHMgZnJvbSBsYW5nLmpzIHJld3JpdHRlbiBhcyBhIHN0YW5kYWxvbmVcbiAqIGZ1bmN0aW9uIChub3Qgb24gRnVuY3Rpb24ucHJvdG90eXBlKS4gTk9URTogSWYgdGhpcyBmaWxlIGlzIHRvIGJlIGxvYWRlZFxuICogZHVyaW5nIGJvb3RzdHJhcHBpbmcgdGhpcyBmdW5jdGlvbiBuZWVkcyB0byBiZSByZXdyaXR0ZW4gdXNpbmcgc29tZSBuYXRpdmVcbiAqIGZ1bmN0aW9ucyBhcyBwcm90b3R5cGUgc2V0dXAgdXNpbmcgbm9ybWFsIEphdmFTY3JpcHQgZG9lcyBub3Qgd29yayBhc1xuICogZXhwZWN0ZWQgZHVyaW5nIGJvb3RzdHJhcHBpbmcgKHNlZSBtaXJyb3IuanMgaW4gcjExNDkwMykuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY3RvciBDb25zdHJ1Y3RvciBmdW5jdGlvbiB3aGljaCBuZWVkcyB0byBpbmhlcml0IHRoZVxuICogICAgIHByb3RvdHlwZS5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IHN1cGVyQ3RvciBDb25zdHJ1Y3RvciBmdW5jdGlvbiB0byBpbmhlcml0IHByb3RvdHlwZSBmcm9tLlxuICovXG5leHBvcnRzLmluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxuZXhwb3J0cy5fZXh0ZW5kID0gZnVuY3Rpb24ob3JpZ2luLCBhZGQpIHtcbiAgLy8gRG9uJ3QgZG8gYW55dGhpbmcgaWYgYWRkIGlzbid0IGFuIG9iamVjdFxuICBpZiAoIWFkZCB8fCAhaXNPYmplY3QoYWRkKSkgcmV0dXJuIG9yaWdpbjtcblxuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGFkZCk7XG4gIHZhciBpID0ga2V5cy5sZW5ndGg7XG4gIHdoaWxlIChpLS0pIHtcbiAgICBvcmlnaW5ba2V5c1tpXV0gPSBhZGRba2V5c1tpXV07XG4gIH1cbiAgcmV0dXJuIG9yaWdpbjtcbn07XG5cbmZ1bmN0aW9uIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG59XG4iLCJ2YXIgdjEgPSByZXF1aXJlKCcuL3YxJyk7XG52YXIgdjQgPSByZXF1aXJlKCcuL3Y0Jyk7XG5cbnZhciB1dWlkID0gdjQ7XG51dWlkLnYxID0gdjE7XG51dWlkLnY0ID0gdjQ7XG5cbm1vZHVsZS5leHBvcnRzID0gdXVpZDtcbiIsIi8qKlxuICogQ29udmVydCBhcnJheSBvZiAxNiBieXRlIHZhbHVlcyB0byBVVUlEIHN0cmluZyBmb3JtYXQgb2YgdGhlIGZvcm06XG4gKiBYWFhYWFhYWC1YWFhYLVhYWFgtWFhYWC1YWFhYWFhYWFhYWFhcbiAqL1xudmFyIGJ5dGVUb0hleCA9IFtdO1xuZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7ICsraSkge1xuICBieXRlVG9IZXhbaV0gPSAoaSArIDB4MTAwKS50b1N0cmluZygxNikuc3Vic3RyKDEpO1xufVxuXG5mdW5jdGlvbiBieXRlc1RvVXVpZChidWYsIG9mZnNldCkge1xuICB2YXIgaSA9IG9mZnNldCB8fCAwO1xuICB2YXIgYnRoID0gYnl0ZVRvSGV4O1xuICByZXR1cm4gYnRoW2J1ZltpKytdXSArIGJ0aFtidWZbaSsrXV0gK1xuICAgICAgICAgIGJ0aFtidWZbaSsrXV0gKyBidGhbYnVmW2krK11dICsgJy0nICtcbiAgICAgICAgICBidGhbYnVmW2krK11dICsgYnRoW2J1ZltpKytdXSArICctJyArXG4gICAgICAgICAgYnRoW2J1ZltpKytdXSArIGJ0aFtidWZbaSsrXV0gKyAnLScgK1xuICAgICAgICAgIGJ0aFtidWZbaSsrXV0gKyBidGhbYnVmW2krK11dICsgJy0nICtcbiAgICAgICAgICBidGhbYnVmW2krK11dICsgYnRoW2J1ZltpKytdXSArXG4gICAgICAgICAgYnRoW2J1ZltpKytdXSArIGJ0aFtidWZbaSsrXV0gK1xuICAgICAgICAgIGJ0aFtidWZbaSsrXV0gKyBidGhbYnVmW2krK11dO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJ5dGVzVG9VdWlkO1xuIiwiLy8gVW5pcXVlIElEIGNyZWF0aW9uIHJlcXVpcmVzIGEgaGlnaCBxdWFsaXR5IHJhbmRvbSAjIGdlbmVyYXRvci4gIEluIHRoZVxuLy8gYnJvd3NlciB0aGlzIGlzIGEgbGl0dGxlIGNvbXBsaWNhdGVkIGR1ZSB0byB1bmtub3duIHF1YWxpdHkgb2YgTWF0aC5yYW5kb20oKVxuLy8gYW5kIGluY29uc2lzdGVudCBzdXBwb3J0IGZvciB0aGUgYGNyeXB0b2AgQVBJLiAgV2UgZG8gdGhlIGJlc3Qgd2UgY2FuIHZpYVxuLy8gZmVhdHVyZS1kZXRlY3Rpb25cbnZhciBybmc7XG5cbnZhciBjcnlwdG8gPSBnbG9iYWwuY3J5cHRvIHx8IGdsb2JhbC5tc0NyeXB0bzsgLy8gZm9yIElFIDExXG5pZiAoY3J5cHRvICYmIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpIHtcbiAgLy8gV0hBVFdHIGNyeXB0byBSTkcgLSBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvQ3J5cHRvXG4gIHZhciBybmRzOCA9IG5ldyBVaW50OEFycmF5KDE2KTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuICBybmcgPSBmdW5jdGlvbiB3aGF0d2dSTkcoKSB7XG4gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhybmRzOCk7XG4gICAgcmV0dXJuIHJuZHM4O1xuICB9O1xufVxuXG5pZiAoIXJuZykge1xuICAvLyBNYXRoLnJhbmRvbSgpLWJhc2VkIChSTkcpXG4gIC8vXG4gIC8vIElmIGFsbCBlbHNlIGZhaWxzLCB1c2UgTWF0aC5yYW5kb20oKS4gIEl0J3MgZmFzdCwgYnV0IGlzIG9mIHVuc3BlY2lmaWVkXG4gIC8vIHF1YWxpdHkuXG4gIHZhciBybmRzID0gbmV3IEFycmF5KDE2KTtcbiAgcm5nID0gZnVuY3Rpb24oKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIHI7IGkgPCAxNjsgaSsrKSB7XG4gICAgICBpZiAoKGkgJiAweDAzKSA9PT0gMCkgciA9IE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAwMDtcbiAgICAgIHJuZHNbaV0gPSByID4+PiAoKGkgJiAweDAzKSA8PCAzKSAmIDB4ZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJuZHM7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcm5nO1xuIiwidmFyIHJuZyA9IHJlcXVpcmUoJy4vbGliL3JuZycpO1xudmFyIGJ5dGVzVG9VdWlkID0gcmVxdWlyZSgnLi9saWIvYnl0ZXNUb1V1aWQnKTtcblxuLy8gKipgdjEoKWAgLSBHZW5lcmF0ZSB0aW1lLWJhc2VkIFVVSUQqKlxuLy9cbi8vIEluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9MaW9zSy9VVUlELmpzXG4vLyBhbmQgaHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L3V1aWQuaHRtbFxuXG4vLyByYW5kb20gIydzIHdlIG5lZWQgdG8gaW5pdCBub2RlIGFuZCBjbG9ja3NlcVxudmFyIF9zZWVkQnl0ZXMgPSBybmcoKTtcblxuLy8gUGVyIDQuNSwgY3JlYXRlIGFuZCA0OC1iaXQgbm9kZSBpZCwgKDQ3IHJhbmRvbSBiaXRzICsgbXVsdGljYXN0IGJpdCA9IDEpXG52YXIgX25vZGVJZCA9IFtcbiAgX3NlZWRCeXRlc1swXSB8IDB4MDEsXG4gIF9zZWVkQnl0ZXNbMV0sIF9zZWVkQnl0ZXNbMl0sIF9zZWVkQnl0ZXNbM10sIF9zZWVkQnl0ZXNbNF0sIF9zZWVkQnl0ZXNbNV1cbl07XG5cbi8vIFBlciA0LjIuMiwgcmFuZG9taXplICgxNCBiaXQpIGNsb2Nrc2VxXG52YXIgX2Nsb2Nrc2VxID0gKF9zZWVkQnl0ZXNbNl0gPDwgOCB8IF9zZWVkQnl0ZXNbN10pICYgMHgzZmZmO1xuXG4vLyBQcmV2aW91cyB1dWlkIGNyZWF0aW9uIHRpbWVcbnZhciBfbGFzdE1TZWNzID0gMCwgX2xhc3ROU2VjcyA9IDA7XG5cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYnJvb2ZhL25vZGUtdXVpZCBmb3IgQVBJIGRldGFpbHNcbmZ1bmN0aW9uIHYxKG9wdGlvbnMsIGJ1Ziwgb2Zmc2V0KSB7XG4gIHZhciBpID0gYnVmICYmIG9mZnNldCB8fCAwO1xuICB2YXIgYiA9IGJ1ZiB8fCBbXTtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICB2YXIgY2xvY2tzZXEgPSBvcHRpb25zLmNsb2Nrc2VxICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLmNsb2Nrc2VxIDogX2Nsb2Nrc2VxO1xuXG4gIC8vIFVVSUQgdGltZXN0YW1wcyBhcmUgMTAwIG5hbm8tc2Vjb25kIHVuaXRzIHNpbmNlIHRoZSBHcmVnb3JpYW4gZXBvY2gsXG4gIC8vICgxNTgyLTEwLTE1IDAwOjAwKS4gIEpTTnVtYmVycyBhcmVuJ3QgcHJlY2lzZSBlbm91Z2ggZm9yIHRoaXMsIHNvXG4gIC8vIHRpbWUgaXMgaGFuZGxlZCBpbnRlcm5hbGx5IGFzICdtc2VjcycgKGludGVnZXIgbWlsbGlzZWNvbmRzKSBhbmQgJ25zZWNzJ1xuICAvLyAoMTAwLW5hbm9zZWNvbmRzIG9mZnNldCBmcm9tIG1zZWNzKSBzaW5jZSB1bml4IGVwb2NoLCAxOTcwLTAxLTAxIDAwOjAwLlxuICB2YXIgbXNlY3MgPSBvcHRpb25zLm1zZWNzICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLm1zZWNzIDogbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgLy8gUGVyIDQuMi4xLjIsIHVzZSBjb3VudCBvZiB1dWlkJ3MgZ2VuZXJhdGVkIGR1cmluZyB0aGUgY3VycmVudCBjbG9ja1xuICAvLyBjeWNsZSB0byBzaW11bGF0ZSBoaWdoZXIgcmVzb2x1dGlvbiBjbG9ja1xuICB2YXIgbnNlY3MgPSBvcHRpb25zLm5zZWNzICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLm5zZWNzIDogX2xhc3ROU2VjcyArIDE7XG5cbiAgLy8gVGltZSBzaW5jZSBsYXN0IHV1aWQgY3JlYXRpb24gKGluIG1zZWNzKVxuICB2YXIgZHQgPSAobXNlY3MgLSBfbGFzdE1TZWNzKSArIChuc2VjcyAtIF9sYXN0TlNlY3MpLzEwMDAwO1xuXG4gIC8vIFBlciA0LjIuMS4yLCBCdW1wIGNsb2Nrc2VxIG9uIGNsb2NrIHJlZ3Jlc3Npb25cbiAgaWYgKGR0IDwgMCAmJiBvcHRpb25zLmNsb2Nrc2VxID09PSB1bmRlZmluZWQpIHtcbiAgICBjbG9ja3NlcSA9IGNsb2Nrc2VxICsgMSAmIDB4M2ZmZjtcbiAgfVxuXG4gIC8vIFJlc2V0IG5zZWNzIGlmIGNsb2NrIHJlZ3Jlc3NlcyAobmV3IGNsb2Nrc2VxKSBvciB3ZSd2ZSBtb3ZlZCBvbnRvIGEgbmV3XG4gIC8vIHRpbWUgaW50ZXJ2YWxcbiAgaWYgKChkdCA8IDAgfHwgbXNlY3MgPiBfbGFzdE1TZWNzKSAmJiBvcHRpb25zLm5zZWNzID09PSB1bmRlZmluZWQpIHtcbiAgICBuc2VjcyA9IDA7XG4gIH1cblxuICAvLyBQZXIgNC4yLjEuMiBUaHJvdyBlcnJvciBpZiB0b28gbWFueSB1dWlkcyBhcmUgcmVxdWVzdGVkXG4gIGlmIChuc2VjcyA+PSAxMDAwMCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXVpZC52MSgpOiBDYW5cXCd0IGNyZWF0ZSBtb3JlIHRoYW4gMTBNIHV1aWRzL3NlYycpO1xuICB9XG5cbiAgX2xhc3RNU2VjcyA9IG1zZWNzO1xuICBfbGFzdE5TZWNzID0gbnNlY3M7XG4gIF9jbG9ja3NlcSA9IGNsb2Nrc2VxO1xuXG4gIC8vIFBlciA0LjEuNCAtIENvbnZlcnQgZnJvbSB1bml4IGVwb2NoIHRvIEdyZWdvcmlhbiBlcG9jaFxuICBtc2VjcyArPSAxMjIxOTI5MjgwMDAwMDtcblxuICAvLyBgdGltZV9sb3dgXG4gIHZhciB0bCA9ICgobXNlY3MgJiAweGZmZmZmZmYpICogMTAwMDAgKyBuc2VjcykgJSAweDEwMDAwMDAwMDtcbiAgYltpKytdID0gdGwgPj4+IDI0ICYgMHhmZjtcbiAgYltpKytdID0gdGwgPj4+IDE2ICYgMHhmZjtcbiAgYltpKytdID0gdGwgPj4+IDggJiAweGZmO1xuICBiW2krK10gPSB0bCAmIDB4ZmY7XG5cbiAgLy8gYHRpbWVfbWlkYFxuICB2YXIgdG1oID0gKG1zZWNzIC8gMHgxMDAwMDAwMDAgKiAxMDAwMCkgJiAweGZmZmZmZmY7XG4gIGJbaSsrXSA9IHRtaCA+Pj4gOCAmIDB4ZmY7XG4gIGJbaSsrXSA9IHRtaCAmIDB4ZmY7XG5cbiAgLy8gYHRpbWVfaGlnaF9hbmRfdmVyc2lvbmBcbiAgYltpKytdID0gdG1oID4+PiAyNCAmIDB4ZiB8IDB4MTA7IC8vIGluY2x1ZGUgdmVyc2lvblxuICBiW2krK10gPSB0bWggPj4+IDE2ICYgMHhmZjtcblxuICAvLyBgY2xvY2tfc2VxX2hpX2FuZF9yZXNlcnZlZGAgKFBlciA0LjIuMiAtIGluY2x1ZGUgdmFyaWFudClcbiAgYltpKytdID0gY2xvY2tzZXEgPj4+IDggfCAweDgwO1xuXG4gIC8vIGBjbG9ja19zZXFfbG93YFxuICBiW2krK10gPSBjbG9ja3NlcSAmIDB4ZmY7XG5cbiAgLy8gYG5vZGVgXG4gIHZhciBub2RlID0gb3B0aW9ucy5ub2RlIHx8IF9ub2RlSWQ7XG4gIGZvciAodmFyIG4gPSAwOyBuIDwgNjsgKytuKSB7XG4gICAgYltpICsgbl0gPSBub2RlW25dO1xuICB9XG5cbiAgcmV0dXJuIGJ1ZiA/IGJ1ZiA6IGJ5dGVzVG9VdWlkKGIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHYxO1xuIiwidmFyIHJuZyA9IHJlcXVpcmUoJy4vbGliL3JuZycpO1xudmFyIGJ5dGVzVG9VdWlkID0gcmVxdWlyZSgnLi9saWIvYnl0ZXNUb1V1aWQnKTtcblxuZnVuY3Rpb24gdjQob3B0aW9ucywgYnVmLCBvZmZzZXQpIHtcbiAgdmFyIGkgPSBidWYgJiYgb2Zmc2V0IHx8IDA7XG5cbiAgaWYgKHR5cGVvZihvcHRpb25zKSA9PSAnc3RyaW5nJykge1xuICAgIGJ1ZiA9IG9wdGlvbnMgPT0gJ2JpbmFyeScgPyBuZXcgQXJyYXkoMTYpIDogbnVsbDtcbiAgICBvcHRpb25zID0gbnVsbDtcbiAgfVxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICB2YXIgcm5kcyA9IG9wdGlvbnMucmFuZG9tIHx8IChvcHRpb25zLnJuZyB8fCBybmcpKCk7XG5cbiAgLy8gUGVyIDQuNCwgc2V0IGJpdHMgZm9yIHZlcnNpb24gYW5kIGBjbG9ja19zZXFfaGlfYW5kX3Jlc2VydmVkYFxuICBybmRzWzZdID0gKHJuZHNbNl0gJiAweDBmKSB8IDB4NDA7XG4gIHJuZHNbOF0gPSAocm5kc1s4XSAmIDB4M2YpIHwgMHg4MDtcblxuICAvLyBDb3B5IGJ5dGVzIHRvIGJ1ZmZlciwgaWYgcHJvdmlkZWRcbiAgaWYgKGJ1Zikge1xuICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCAxNjsgKytpaSkge1xuICAgICAgYnVmW2kgKyBpaV0gPSBybmRzW2lpXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYnVmIHx8IGJ5dGVzVG9VdWlkKHJuZHMpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHY0O1xuIiwiJ3VzZSBzdHJpY3QnO1xyXG5cclxudmFyIGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpXHJcbiAgICAsdXVpZFBhdHRlcm4gPSAvXlswLTlhLWZdezh9LVswLTlhLWZdezR9LTRbMC05YS1mXXszfS1bODlhYl1bMC05YS1mXXszfS1bMC05YS1mXXsxMn0kL1xyXG4gICAgO1xyXG5cclxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZ2VuZXJhdGVVdWlkO1xyXG5leHBvcnRzLmFzeW5jID0gZ2VuZXJhdGVVdWlkQXN5bmM7XHJcbmV4cG9ydHMuc3luYyA9IGdlbmVyYXRlVXVpZFN5bmM7XHJcbmV4cG9ydHMudmFsaWQgPSBnZW5lcmF0ZVV1aWQ7XHJcblxyXG5cclxuZnVuY3Rpb24gaXNVVUlEKHV1aWQpIHtcclxuICByZXR1cm4gdXVpZFBhdHRlcm4udGVzdCh1dWlkKTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlVXVpZFN5bmMoKSB7XHJcbiAgdmFyIHJuZCA9IGNyeXB0by5yYW5kb21CeXRlcygxNik7XHJcbiAgcm5kWzZdID0gKHJuZFs2XSAmIDB4MGYpIHwgMHg0MDtcclxuICBybmRbOF0gPSAocm5kWzhdICYgMHgzZikgfCAweDgwO1xyXG4gIHJuZCA9IHJuZC50b1N0cmluZygnaGV4JykubWF0Y2goLyguezh9KSguezR9KSguezR9KSguezR9KSguezEyfSkvKTtcclxuICBybmQuc2hpZnQoKTtcclxuICByZXR1cm4gcm5kLmpvaW4oJy0nKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVVdWlkQXN5bmMoY2FsbGJhY2spIHtcclxuICBjcnlwdG8ucmFuZG9tQnl0ZXMoMTYsIGZ1bmN0aW9uKGVyciwgcm5kKSB7XHJcbiAgICBybmRbNl0gPSAocm5kWzZdICYgMHgwZikgfCAweDQwO1xyXG4gICAgcm5kWzhdID0gKHJuZFs4XSAmIDB4M2YpIHwgMHg4MDtcclxuICAgIHJuZCA9IHJuZC50b1N0cmluZygnaGV4JykubWF0Y2goLyguezh9KSguezR9KSguezR9KSguezR9KSguezEyfSkvKTtcclxuICAgIHJuZC5zaGlmdCgpO1xyXG4gICAgY2FsbGJhY2sobnVsbCwgcm5kLmpvaW4oJy0nKSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlVXVpZChjYWxsYmFjaykge1xyXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHJldHVybiBnZW5lcmF0ZVV1aWRTeW5jKCk7XHJcbiAgcmV0dXJuIGdlbmVyYXRlVXVpZEFzeW5jKGNhbGxiYWNrKTtcclxufVxyXG4iLCJ2YXIgaW5kZXhPZiA9IHJlcXVpcmUoJ2luZGV4b2YnKTtcblxudmFyIE9iamVjdF9rZXlzID0gZnVuY3Rpb24gKG9iaikge1xuICAgIGlmIChPYmplY3Qua2V5cykgcmV0dXJuIE9iamVjdC5rZXlzKG9iailcbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIHJlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSByZXMucHVzaChrZXkpXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxufTtcblxudmFyIGZvckVhY2ggPSBmdW5jdGlvbiAoeHMsIGZuKSB7XG4gICAgaWYgKHhzLmZvckVhY2gpIHJldHVybiB4cy5mb3JFYWNoKGZuKVxuICAgIGVsc2UgZm9yICh2YXIgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBmbih4c1tpXSwgaSwgeHMpO1xuICAgIH1cbn07XG5cbnZhciBkZWZpbmVQcm9wID0gKGZ1bmN0aW9uKCkge1xuICAgIHRyeSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ18nLCB7fSk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbihvYmosIG5hbWUsIHZhbHVlKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBuYW1lLCB7XG4gICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iaiwgbmFtZSwgdmFsdWUpIHtcbiAgICAgICAgICAgIG9ialtuYW1lXSA9IHZhbHVlO1xuICAgICAgICB9O1xuICAgIH1cbn0oKSk7XG5cbnZhciBnbG9iYWxzID0gWydBcnJheScsICdCb29sZWFuJywgJ0RhdGUnLCAnRXJyb3InLCAnRXZhbEVycm9yJywgJ0Z1bmN0aW9uJyxcbidJbmZpbml0eScsICdKU09OJywgJ01hdGgnLCAnTmFOJywgJ051bWJlcicsICdPYmplY3QnLCAnUmFuZ2VFcnJvcicsXG4nUmVmZXJlbmNlRXJyb3InLCAnUmVnRXhwJywgJ1N0cmluZycsICdTeW50YXhFcnJvcicsICdUeXBlRXJyb3InLCAnVVJJRXJyb3InLFxuJ2RlY29kZVVSSScsICdkZWNvZGVVUklDb21wb25lbnQnLCAnZW5jb2RlVVJJJywgJ2VuY29kZVVSSUNvbXBvbmVudCcsICdlc2NhcGUnLFxuJ2V2YWwnLCAnaXNGaW5pdGUnLCAnaXNOYU4nLCAncGFyc2VGbG9hdCcsICdwYXJzZUludCcsICd1bmRlZmluZWQnLCAndW5lc2NhcGUnXTtcblxuZnVuY3Rpb24gQ29udGV4dCgpIHt9XG5Db250ZXh0LnByb3RvdHlwZSA9IHt9O1xuXG52YXIgU2NyaXB0ID0gZXhwb3J0cy5TY3JpcHQgPSBmdW5jdGlvbiBOb2RlU2NyaXB0IChjb2RlKSB7XG4gICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFNjcmlwdCkpIHJldHVybiBuZXcgU2NyaXB0KGNvZGUpO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG59O1xuXG5TY3JpcHQucHJvdG90eXBlLnJ1bkluQ29udGV4dCA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgaWYgKCEoY29udGV4dCBpbnN0YW5jZW9mIENvbnRleHQpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJuZWVkcyBhICdjb250ZXh0JyBhcmd1bWVudC5cIik7XG4gICAgfVxuICAgIFxuICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICBpZiAoIWlmcmFtZS5zdHlsZSkgaWZyYW1lLnN0eWxlID0ge307XG4gICAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICAgIFxuICAgIHZhciB3aW4gPSBpZnJhbWUuY29udGVudFdpbmRvdztcbiAgICB2YXIgd0V2YWwgPSB3aW4uZXZhbCwgd0V4ZWNTY3JpcHQgPSB3aW4uZXhlY1NjcmlwdDtcblxuICAgIGlmICghd0V2YWwgJiYgd0V4ZWNTY3JpcHQpIHtcbiAgICAgICAgLy8gd2luLmV2YWwoKSBtYWdpY2FsbHkgYXBwZWFycyB3aGVuIHRoaXMgaXMgY2FsbGVkIGluIElFOlxuICAgICAgICB3RXhlY1NjcmlwdC5jYWxsKHdpbiwgJ251bGwnKTtcbiAgICAgICAgd0V2YWwgPSB3aW4uZXZhbDtcbiAgICB9XG4gICAgXG4gICAgZm9yRWFjaChPYmplY3Rfa2V5cyhjb250ZXh0KSwgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB3aW5ba2V5XSA9IGNvbnRleHRba2V5XTtcbiAgICB9KTtcbiAgICBmb3JFYWNoKGdsb2JhbHMsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgaWYgKGNvbnRleHRba2V5XSkge1xuICAgICAgICAgICAgd2luW2tleV0gPSBjb250ZXh0W2tleV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICB2YXIgd2luS2V5cyA9IE9iamVjdF9rZXlzKHdpbik7XG5cbiAgICB2YXIgcmVzID0gd0V2YWwuY2FsbCh3aW4sIHRoaXMuY29kZSk7XG4gICAgXG4gICAgZm9yRWFjaChPYmplY3Rfa2V5cyh3aW4pLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIC8vIEF2b2lkIGNvcHlpbmcgY2lyY3VsYXIgb2JqZWN0cyBsaWtlIGB0b3BgIGFuZCBgd2luZG93YCBieSBvbmx5XG4gICAgICAgIC8vIHVwZGF0aW5nIGV4aXN0aW5nIGNvbnRleHQgcHJvcGVydGllcyBvciBuZXcgcHJvcGVydGllcyBpbiB0aGUgYHdpbmBcbiAgICAgICAgLy8gdGhhdCB3YXMgb25seSBpbnRyb2R1Y2VkIGFmdGVyIHRoZSBldmFsLlxuICAgICAgICBpZiAoa2V5IGluIGNvbnRleHQgfHwgaW5kZXhPZih3aW5LZXlzLCBrZXkpID09PSAtMSkge1xuICAgICAgICAgICAgY29udGV4dFtrZXldID0gd2luW2tleV07XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGZvckVhY2goZ2xvYmFscywgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBpZiAoIShrZXkgaW4gY29udGV4dCkpIHtcbiAgICAgICAgICAgIGRlZmluZVByb3AoY29udGV4dCwga2V5LCB3aW5ba2V5XSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlmcmFtZSk7XG4gICAgXG4gICAgcmV0dXJuIHJlcztcbn07XG5cblNjcmlwdC5wcm90b3R5cGUucnVuSW5UaGlzQ29udGV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZXZhbCh0aGlzLmNvZGUpOyAvLyBtYXliZS4uLlxufTtcblxuU2NyaXB0LnByb3RvdHlwZS5ydW5Jbk5ld0NvbnRleHQgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBjdHggPSBTY3JpcHQuY3JlYXRlQ29udGV4dChjb250ZXh0KTtcbiAgICB2YXIgcmVzID0gdGhpcy5ydW5JbkNvbnRleHQoY3R4KTtcblxuICAgIGZvckVhY2goT2JqZWN0X2tleXMoY3R4KSwgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBjb250ZXh0W2tleV0gPSBjdHhba2V5XTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXM7XG59O1xuXG5mb3JFYWNoKE9iamVjdF9rZXlzKFNjcmlwdC5wcm90b3R5cGUpLCBmdW5jdGlvbiAobmFtZSkge1xuICAgIGV4cG9ydHNbbmFtZV0gPSBTY3JpcHRbbmFtZV0gPSBmdW5jdGlvbiAoY29kZSkge1xuICAgICAgICB2YXIgcyA9IFNjcmlwdChjb2RlKTtcbiAgICAgICAgcmV0dXJuIHNbbmFtZV0uYXBwbHkocywgW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTtcbiAgICB9O1xufSk7XG5cbmV4cG9ydHMuY3JlYXRlU2NyaXB0ID0gZnVuY3Rpb24gKGNvZGUpIHtcbiAgICByZXR1cm4gZXhwb3J0cy5TY3JpcHQoY29kZSk7XG59O1xuXG5leHBvcnRzLmNyZWF0ZUNvbnRleHQgPSBTY3JpcHQuY3JlYXRlQ29udGV4dCA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgdmFyIGNvcHkgPSBuZXcgQ29udGV4dCgpO1xuICAgIGlmKHR5cGVvZiBjb250ZXh0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBmb3JFYWNoKE9iamVjdF9rZXlzKGNvbnRleHQpLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBjb3B5W2tleV0gPSBjb250ZXh0W2tleV07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29weTtcbn07XG4iLCIoZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7dmFyIGs9dGhpcztcbmZ1bmN0aW9uIGFhKGEpe3ZhciBiPXR5cGVvZiBhO2lmKFwib2JqZWN0XCI9PWIpaWYoYSl7aWYoYSBpbnN0YW5jZW9mIEFycmF5KXJldHVyblwiYXJyYXlcIjtpZihhIGluc3RhbmNlb2YgT2JqZWN0KXJldHVybiBiO3ZhciBjPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKTtpZihcIltvYmplY3QgV2luZG93XVwiPT1jKXJldHVyblwib2JqZWN0XCI7aWYoXCJbb2JqZWN0IEFycmF5XVwiPT1jfHxcIm51bWJlclwiPT10eXBlb2YgYS5sZW5ndGgmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBhLnNwbGljZSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGEucHJvcGVydHlJc0VudW1lcmFibGUmJiFhLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwic3BsaWNlXCIpKXJldHVyblwiYXJyYXlcIjtpZihcIltvYmplY3QgRnVuY3Rpb25dXCI9PWN8fFwidW5kZWZpbmVkXCIhPXR5cGVvZiBhLmNhbGwmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBhLnByb3BlcnR5SXNFbnVtZXJhYmxlJiYhYS5wcm9wZXJ0eUlzRW51bWVyYWJsZShcImNhbGxcIikpcmV0dXJuXCJmdW5jdGlvblwifWVsc2UgcmV0dXJuXCJudWxsXCI7ZWxzZSBpZihcImZ1bmN0aW9uXCI9PVxuYiYmXCJ1bmRlZmluZWRcIj09dHlwZW9mIGEuY2FsbClyZXR1cm5cIm9iamVjdFwiO3JldHVybiBifWZ1bmN0aW9uIGwoYSl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGF9ZnVuY3Rpb24gYmEoYSxiLGMpe3JldHVybiBhLmNhbGwuYXBwbHkoYS5iaW5kLGFyZ3VtZW50cyl9ZnVuY3Rpb24gY2EoYSxiLGMpe2lmKCFhKXRocm93IEVycm9yKCk7aWYoMjxhcmd1bWVudHMubGVuZ3RoKXt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShjLGQpO3JldHVybiBhLmFwcGx5KGIsYyl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGIsYXJndW1lbnRzKX19XG5mdW5jdGlvbiBkYShhLGIsYyl7ZGE9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQmJi0xIT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZC50b1N0cmluZygpLmluZGV4T2YoXCJuYXRpdmUgY29kZVwiKT9iYTpjYTtyZXR1cm4gZGEuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGVhKGEsYil7dmFyIGM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciBiPWMuc2xpY2UoKTtiLnB1c2guYXBwbHkoYixhcmd1bWVudHMpO3JldHVybiBhLmFwcGx5KHRoaXMsYil9fVxuZnVuY3Rpb24gbShhKXt2YXIgYj1uO2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5HPWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5GPWZ1bmN0aW9uKGEsYyxmKXtmb3IodmFyIGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aC0yKSxoPTI7aDxhcmd1bWVudHMubGVuZ3RoO2grKylnW2gtMl09YXJndW1lbnRzW2hdO3JldHVybiBiLnByb3RvdHlwZVtjXS5hcHBseShhLGcpfX07LypcblxuIFRoZSBNSVQgTGljZW5zZVxuXG4gQ29weXJpZ2h0IChjKSAyMDA3IEN5Ym96dSBMYWJzLCBJbmMuXG4gQ29weXJpZ2h0IChjKSAyMDEyIEdvb2dsZSBJbmMuXG5cbiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cbiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HXG4gRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HU1xuIElOIFRIRSBTT0ZUV0FSRS5cbiovXG52YXIgZmE9U3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvXltcXHNcXHhhMF0rfFtcXHNcXHhhMF0rJC9nLFwiXCIpfTtmdW5jdGlvbiBxKGEsYil7cmV0dXJuLTEhPWEuaW5kZXhPZihiKX1mdW5jdGlvbiBnYShhLGIpe3JldHVybiBhPGI/LTE6YT5iPzE6MH07dmFyIGhhPUFycmF5LnByb3RvdHlwZS5pbmRleE9mP2Z1bmN0aW9uKGEsYixjKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtjPW51bGw9PWM/MDowPmM/TWF0aC5tYXgoMCxhLmxlbmd0aCtjKTpjO2lmKGwoYSkpcmV0dXJuIGwoYikmJjE9PWIubGVuZ3RoP2EuaW5kZXhPZihiLGMpOi0xO2Zvcig7YzxhLmxlbmd0aDtjKyspaWYoYyBpbiBhJiZhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0scj1BcnJheS5wcm90b3R5cGUuZm9yRWFjaD9mdW5jdGlvbihhLGIsYyl7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5sZW5ndGgsZT1sKGEpP2Euc3BsaXQoXCJcIik6YSxmPTA7ZjxkO2YrKylmIGluIGUmJmIuY2FsbChjLGVbZl0sZixhKX0saWE9QXJyYXkucHJvdG90eXBlLmZpbHRlcj9mdW5jdGlvbihhLGIsYyl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChhLFxuYixjKX06ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1hLmxlbmd0aCxlPVtdLGY9MCxnPWwoYSk/YS5zcGxpdChcIlwiKTphLGg9MDtoPGQ7aCsrKWlmKGggaW4gZyl7dmFyIHA9Z1toXTtiLmNhbGwoYyxwLGgsYSkmJihlW2YrK109cCl9cmV0dXJuIGV9LHQ9QXJyYXkucHJvdG90eXBlLnJlZHVjZT9mdW5jdGlvbihhLGIsYyxkKXtkJiYoYj1kYShiLGQpKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnJlZHVjZS5jYWxsKGEsYixjKX06ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YztyKGEsZnVuY3Rpb24oYyxnKXtlPWIuY2FsbChkLGUsYyxnLGEpfSk7cmV0dXJuIGV9LGphPUFycmF5LnByb3RvdHlwZS5zb21lP2Z1bmN0aW9uKGEsYixjKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5sZW5ndGgsZT1sKGEpP2Euc3BsaXQoXCJcIik6YSxmPTA7ZjxkO2YrKylpZihmIGluIGUmJmIuY2FsbChjLGVbZl0sZixhKSlyZXR1cm4hMDtcbnJldHVybiExfTtmdW5jdGlvbiBrYShhLGIpe3ZhciBjO2E6e2M9YS5sZW5ndGg7Zm9yKHZhciBkPWwoYSk/YS5zcGxpdChcIlwiKTphLGU9MDtlPGM7ZSsrKWlmKGUgaW4gZCYmYi5jYWxsKHZvaWQgMCxkW2VdLGUsYSkpe2M9ZTticmVhayBhfWM9LTF9cmV0dXJuIDA+Yz9udWxsOmwoYSk/YS5jaGFyQXQoYyk6YVtjXX1mdW5jdGlvbiBsYShhKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShBcnJheS5wcm90b3R5cGUsYXJndW1lbnRzKX1mdW5jdGlvbiBtYShhLGIsYyl7cmV0dXJuIDI+PWFyZ3VtZW50cy5sZW5ndGg/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSxiKTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLGIsYyl9O3ZhciB1O2E6e3ZhciBuYT1rLm5hdmlnYXRvcjtpZihuYSl7dmFyIG9hPW5hLnVzZXJBZ2VudDtpZihvYSl7dT1vYTticmVhayBhfX11PVwiXCJ9O3ZhciBwYT1xKHUsXCJPcGVyYVwiKXx8cSh1LFwiT1BSXCIpLHY9cSh1LFwiVHJpZGVudFwiKXx8cSh1LFwiTVNJRVwiKSxxYT1xKHUsXCJFZGdlXCIpLHJhPXEodSxcIkdlY2tvXCIpJiYhKHEodS50b0xvd2VyQ2FzZSgpLFwid2Via2l0XCIpJiYhcSh1LFwiRWRnZVwiKSkmJiEocSh1LFwiVHJpZGVudFwiKXx8cSh1LFwiTVNJRVwiKSkmJiFxKHUsXCJFZGdlXCIpLHNhPXEodS50b0xvd2VyQ2FzZSgpLFwid2Via2l0XCIpJiYhcSh1LFwiRWRnZVwiKTtmdW5jdGlvbiB0YSgpe3ZhciBhPWsuZG9jdW1lbnQ7cmV0dXJuIGE/YS5kb2N1bWVudE1vZGU6dm9pZCAwfXZhciB1YTtcbmE6e3ZhciB2YT1cIlwiLHdhPWZ1bmN0aW9uKCl7dmFyIGE9dTtpZihyYSlyZXR1cm4vcnZcXDooW15cXCk7XSspKFxcKXw7KS8uZXhlYyhhKTtpZihxYSlyZXR1cm4vRWRnZVxcLyhbXFxkXFwuXSspLy5leGVjKGEpO2lmKHYpcmV0dXJuL1xcYig/Ok1TSUV8cnYpWzogXShbXlxcKTtdKykoXFwpfDspLy5leGVjKGEpO2lmKHNhKXJldHVybi9XZWJLaXRcXC8oXFxTKykvLmV4ZWMoYSk7aWYocGEpcmV0dXJuLyg/OlZlcnNpb24pWyBcXC9dPyhcXFMrKS8uZXhlYyhhKX0oKTt3YSYmKHZhPXdhP3dhWzFdOlwiXCIpO2lmKHYpe3ZhciB4YT10YSgpO2lmKG51bGwhPXhhJiZ4YT5wYXJzZUZsb2F0KHZhKSl7dWE9U3RyaW5nKHhhKTticmVhayBhfX11YT12YX12YXIgeWE9e307XG5mdW5jdGlvbiB6YShhKXtpZigheWFbYV0pe2Zvcih2YXIgYj0wLGM9ZmEoU3RyaW5nKHVhKSkuc3BsaXQoXCIuXCIpLGQ9ZmEoU3RyaW5nKGEpKS5zcGxpdChcIi5cIiksZT1NYXRoLm1heChjLmxlbmd0aCxkLmxlbmd0aCksZj0wOzA9PWImJmY8ZTtmKyspe3ZhciBnPWNbZl18fFwiXCIsaD1kW2ZdfHxcIlwiLHA9LyhcXGQqKShcXEQqKS9nLHk9LyhcXGQqKShcXEQqKS9nO2Rve3ZhciBEPXAuZXhlYyhnKXx8W1wiXCIsXCJcIixcIlwiXSxYPXkuZXhlYyhoKXx8W1wiXCIsXCJcIixcIlwiXTtpZigwPT1EWzBdLmxlbmd0aCYmMD09WFswXS5sZW5ndGgpYnJlYWs7Yj1nYSgwPT1EWzFdLmxlbmd0aD8wOnBhcnNlSW50KERbMV0sMTApLDA9PVhbMV0ubGVuZ3RoPzA6cGFyc2VJbnQoWFsxXSwxMCkpfHxnYSgwPT1EWzJdLmxlbmd0aCwwPT1YWzJdLmxlbmd0aCl8fGdhKERbMl0sWFsyXSl9d2hpbGUoMD09Yil9eWFbYV09MDw9Yn19XG52YXIgQWE9ay5kb2N1bWVudCxCYT1BYSYmdj90YSgpfHwoXCJDU1MxQ29tcGF0XCI9PUFhLmNvbXBhdE1vZGU/cGFyc2VJbnQodWEsMTApOjUpOnZvaWQgMDt2YXIgdz12JiYhKDk8PU51bWJlcihCYSkpLENhPXYmJiEoODw9TnVtYmVyKEJhKSk7ZnVuY3Rpb24geChhLGIsYyxkKXt0aGlzLmE9YTt0aGlzLm5vZGVOYW1lPWM7dGhpcy5ub2RlVmFsdWU9ZDt0aGlzLm5vZGVUeXBlPTI7dGhpcy5wYXJlbnROb2RlPXRoaXMub3duZXJFbGVtZW50PWJ9ZnVuY3Rpb24gRGEoYSxiKXt2YXIgYz1DYSYmXCJocmVmXCI9PWIubm9kZU5hbWU/YS5nZXRBdHRyaWJ1dGUoYi5ub2RlTmFtZSwyKTpiLm5vZGVWYWx1ZTtyZXR1cm4gbmV3IHgoYixhLGIubm9kZU5hbWUsYyl9O2Z1bmN0aW9uIHooYSl7dmFyIGI9bnVsbCxjPWEubm9kZVR5cGU7MT09YyYmKGI9YS50ZXh0Q29udGVudCxiPXZvaWQgMD09Ynx8bnVsbD09Yj9hLmlubmVyVGV4dDpiLGI9dm9pZCAwPT1ifHxudWxsPT1iP1wiXCI6Yik7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGIpaWYodyYmXCJ0aXRsZVwiPT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJjE9PWMpYj1hLnRleHQ7ZWxzZSBpZig5PT1jfHwxPT1jKXthPTk9PWM/YS5kb2N1bWVudEVsZW1lbnQ6YS5maXJzdENoaWxkO2Zvcih2YXIgYz0wLGQ9W10sYj1cIlwiO2E7KXtkbyAxIT1hLm5vZGVUeXBlJiYoYis9YS5ub2RlVmFsdWUpLHcmJlwidGl0bGVcIj09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYoYis9YS50ZXh0KSxkW2MrK109YTt3aGlsZShhPWEuZmlyc3RDaGlsZCk7Zm9yKDtjJiYhKGE9ZFstLWNdLm5leHRTaWJsaW5nKTspO319ZWxzZSBiPWEubm9kZVZhbHVlO3JldHVyblwiXCIrYn1cbmZ1bmN0aW9uIEEoYSxiLGMpe2lmKG51bGw9PT1iKXJldHVybiEwO3RyeXtpZighYS5nZXRBdHRyaWJ1dGUpcmV0dXJuITF9Y2F0Y2goZCl7cmV0dXJuITF9Q2EmJlwiY2xhc3NcIj09YiYmKGI9XCJjbGFzc05hbWVcIik7cmV0dXJuIG51bGw9PWM/ISFhLmdldEF0dHJpYnV0ZShiKTphLmdldEF0dHJpYnV0ZShiLDIpPT1jfWZ1bmN0aW9uIEIoYSxiLGMsZCxlKXtyZXR1cm4odz9FYTpGYSkuY2FsbChudWxsLGEsYixsKGMpP2M6bnVsbCxsKGQpP2Q6bnVsbCxlfHxuZXcgQyl9XG5mdW5jdGlvbiBFYShhLGIsYyxkLGUpe2lmKGEgaW5zdGFuY2VvZiBFfHw4PT1hLmJ8fGMmJm51bGw9PT1hLmIpe3ZhciBmPWIuYWxsO2lmKCFmKXJldHVybiBlO2E9R2EoYSk7aWYoXCIqXCIhPWEmJihmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSksIWYpKXJldHVybiBlO2lmKGMpe2Zvcih2YXIgZz1bXSxoPTA7Yj1mW2grK107KUEoYixjLGQpJiZnLnB1c2goYik7Zj1nfWZvcihoPTA7Yj1mW2grK107KVwiKlwiPT1hJiZcIiFcIj09Yi50YWdOYW1lfHxGKGUsYik7cmV0dXJuIGV9SGEoYSxiLGMsZCxlKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIEZhKGEsYixjLGQsZSl7Yi5nZXRFbGVtZW50c0J5TmFtZSYmZCYmXCJuYW1lXCI9PWMmJiF2PyhiPWIuZ2V0RWxlbWVudHNCeU5hbWUoZCkscihiLGZ1bmN0aW9uKGIpe2EuYShiKSYmRihlLGIpfSkpOmIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZCYmXCJjbGFzc1wiPT1jPyhiPWIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkKSxyKGIsZnVuY3Rpb24oYil7Yi5jbGFzc05hbWU9PWQmJmEuYShiKSYmRihlLGIpfSkpOmEgaW5zdGFuY2VvZiBHP0hhKGEsYixjLGQsZSk6Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSYmKGI9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhLmYoKSkscihiLGZ1bmN0aW9uKGEpe0EoYSxjLGQpJiZGKGUsYSl9KSk7cmV0dXJuIGV9XG5mdW5jdGlvbiBJYShhLGIsYyxkLGUpe3ZhciBmO2lmKChhIGluc3RhbmNlb2YgRXx8OD09YS5ifHxjJiZudWxsPT09YS5iKSYmKGY9Yi5jaGlsZE5vZGVzKSl7dmFyIGc9R2EoYSk7aWYoXCIqXCIhPWcmJihmPWlhKGYsZnVuY3Rpb24oYSl7cmV0dXJuIGEudGFnTmFtZSYmYS50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PWd9KSwhZikpcmV0dXJuIGU7YyYmKGY9aWEoZixmdW5jdGlvbihhKXtyZXR1cm4gQShhLGMsZCl9KSk7cihmLGZ1bmN0aW9uKGEpe1wiKlwiPT1nJiYoXCIhXCI9PWEudGFnTmFtZXx8XCIqXCI9PWcmJjEhPWEubm9kZVR5cGUpfHxGKGUsYSl9KTtyZXR1cm4gZX1yZXR1cm4gSmEoYSxiLGMsZCxlKX1mdW5jdGlvbiBKYShhLGIsYyxkLGUpe2ZvcihiPWIuZmlyc3RDaGlsZDtiO2I9Yi5uZXh0U2libGluZylBKGIsYyxkKSYmYS5hKGIpJiZGKGUsYik7cmV0dXJuIGV9XG5mdW5jdGlvbiBIYShhLGIsYyxkLGUpe2ZvcihiPWIuZmlyc3RDaGlsZDtiO2I9Yi5uZXh0U2libGluZylBKGIsYyxkKSYmYS5hKGIpJiZGKGUsYiksSGEoYSxiLGMsZCxlKX1mdW5jdGlvbiBHYShhKXtpZihhIGluc3RhbmNlb2YgRyl7aWYoOD09YS5iKXJldHVyblwiIVwiO2lmKG51bGw9PT1hLmIpcmV0dXJuXCIqXCJ9cmV0dXJuIGEuZigpfTshcmEmJiF2fHx2JiY5PD1OdW1iZXIoQmEpfHxyYSYmemEoXCIxLjkuMVwiKTt2JiZ6YShcIjlcIik7ZnVuY3Rpb24gS2EoYSxiKXtpZighYXx8IWIpcmV0dXJuITE7aWYoYS5jb250YWlucyYmMT09Yi5ub2RlVHlwZSlyZXR1cm4gYT09Ynx8YS5jb250YWlucyhiKTtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbilyZXR1cm4gYT09Ynx8ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik7Zm9yKDtiJiZhIT1iOyliPWIucGFyZW50Tm9kZTtyZXR1cm4gYj09YX1cbmZ1bmN0aW9uIExhKGEsYil7aWYoYT09YilyZXR1cm4gMDtpZihhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXJldHVybiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjI/MTotMTtpZih2JiYhKDk8PU51bWJlcihCYSkpKXtpZig5PT1hLm5vZGVUeXBlKXJldHVybi0xO2lmKDk9PWIubm9kZVR5cGUpcmV0dXJuIDF9aWYoXCJzb3VyY2VJbmRleFwiaW4gYXx8YS5wYXJlbnROb2RlJiZcInNvdXJjZUluZGV4XCJpbiBhLnBhcmVudE5vZGUpe3ZhciBjPTE9PWEubm9kZVR5cGUsZD0xPT1iLm5vZGVUeXBlO2lmKGMmJmQpcmV0dXJuIGEuc291cmNlSW5kZXgtYi5zb3VyY2VJbmRleDt2YXIgZT1hLnBhcmVudE5vZGUsZj1iLnBhcmVudE5vZGU7cmV0dXJuIGU9PWY/TWEoYSxiKTohYyYmS2EoZSxiKT8tMSpOYShhLGIpOiFkJiZLYShmLGEpP05hKGIsYSk6KGM/YS5zb3VyY2VJbmRleDplLnNvdXJjZUluZGV4KS0oZD9iLnNvdXJjZUluZGV4OmYuc291cmNlSW5kZXgpfWQ9OT09YS5ub2RlVHlwZT9cbmE6YS5vd25lckRvY3VtZW50fHxhLmRvY3VtZW50O2M9ZC5jcmVhdGVSYW5nZSgpO2Muc2VsZWN0Tm9kZShhKTtjLmNvbGxhcHNlKCEwKTtkPWQuY3JlYXRlUmFuZ2UoKTtkLnNlbGVjdE5vZGUoYik7ZC5jb2xsYXBzZSghMCk7cmV0dXJuIGMuY29tcGFyZUJvdW5kYXJ5UG9pbnRzKGsuUmFuZ2UuU1RBUlRfVE9fRU5ELGQpfWZ1bmN0aW9uIE5hKGEsYil7dmFyIGM9YS5wYXJlbnROb2RlO2lmKGM9PWIpcmV0dXJuLTE7Zm9yKHZhciBkPWI7ZC5wYXJlbnROb2RlIT1jOylkPWQucGFyZW50Tm9kZTtyZXR1cm4gTWEoZCxhKX1mdW5jdGlvbiBNYShhLGIpe2Zvcih2YXIgYz1iO2M9Yy5wcmV2aW91c1NpYmxpbmc7KWlmKGM9PWEpcmV0dXJuLTE7cmV0dXJuIDF9O2Z1bmN0aW9uIEMoKXt0aGlzLmI9dGhpcy5hPW51bGw7dGhpcy5sPTB9ZnVuY3Rpb24gT2EoYSl7dGhpcy5ub2RlPWE7dGhpcy5hPXRoaXMuYj1udWxsfWZ1bmN0aW9uIFBhKGEsYil7aWYoIWEuYSlyZXR1cm4gYjtpZighYi5hKXJldHVybiBhO2Zvcih2YXIgYz1hLmEsZD1iLmEsZT1udWxsLGY9bnVsbCxnPTA7YyYmZDspe3ZhciBmPWMubm9kZSxoPWQubm9kZTtmPT1ofHxmIGluc3RhbmNlb2YgeCYmaCBpbnN0YW5jZW9mIHgmJmYuYT09aC5hPyhmPWMsYz1jLmEsZD1kLmEpOjA8TGEoYy5ub2RlLGQubm9kZSk/KGY9ZCxkPWQuYSk6KGY9YyxjPWMuYSk7KGYuYj1lKT9lLmE9ZjphLmE9ZjtlPWY7ZysrfWZvcihmPWN8fGQ7ZjspZi5iPWUsZT1lLmE9ZixnKyssZj1mLmE7YS5iPWU7YS5sPWc7cmV0dXJuIGF9ZnVuY3Rpb24gUWEoYSxiKXt2YXIgYz1uZXcgT2EoYik7Yy5hPWEuYTthLmI/YS5hLmI9YzphLmE9YS5iPWM7YS5hPWM7YS5sKyt9XG5mdW5jdGlvbiBGKGEsYil7dmFyIGM9bmV3IE9hKGIpO2MuYj1hLmI7YS5hP2EuYi5hPWM6YS5hPWEuYj1jO2EuYj1jO2EubCsrfWZ1bmN0aW9uIFJhKGEpe3JldHVybihhPWEuYSk/YS5ub2RlOm51bGx9ZnVuY3Rpb24gU2EoYSl7cmV0dXJuKGE9UmEoYSkpP3ooYSk6XCJcIn1mdW5jdGlvbiBIKGEsYil7cmV0dXJuIG5ldyBUYShhLCEhYil9ZnVuY3Rpb24gVGEoYSxiKXt0aGlzLmY9YTt0aGlzLmI9KHRoaXMuYz1iKT9hLmI6YS5hO3RoaXMuYT1udWxsfWZ1bmN0aW9uIEkoYSl7dmFyIGI9YS5iO2lmKG51bGw9PWIpcmV0dXJuIG51bGw7dmFyIGM9YS5hPWI7YS5iPWEuYz9iLmI6Yi5hO3JldHVybiBjLm5vZGV9O2Z1bmN0aW9uIG4oYSl7dGhpcy5pPWE7dGhpcy5iPXRoaXMuZz0hMTt0aGlzLmY9bnVsbH1mdW5jdGlvbiBKKGEpe3JldHVyblwiXFxuICBcIithLnRvU3RyaW5nKCkuc3BsaXQoXCJcXG5cIikuam9pbihcIlxcbiAgXCIpfWZ1bmN0aW9uIFVhKGEsYil7YS5nPWJ9ZnVuY3Rpb24gVmEoYSxiKXthLmI9Yn1mdW5jdGlvbiBLKGEsYil7dmFyIGM9YS5hKGIpO3JldHVybiBjIGluc3RhbmNlb2YgQz8rU2EoYyk6K2N9ZnVuY3Rpb24gTChhLGIpe3ZhciBjPWEuYShiKTtyZXR1cm4gYyBpbnN0YW5jZW9mIEM/U2EoYyk6XCJcIitjfWZ1bmN0aW9uIE0oYSxiKXt2YXIgYz1hLmEoYik7cmV0dXJuIGMgaW5zdGFuY2VvZiBDPyEhYy5sOiEhY307ZnVuY3Rpb24gTihhLGIsYyl7bi5jYWxsKHRoaXMsYS5pKTt0aGlzLmM9YTt0aGlzLmg9Yjt0aGlzLm89Yzt0aGlzLmc9Yi5nfHxjLmc7dGhpcy5iPWIuYnx8Yy5iO3RoaXMuYz09V2EmJihjLmJ8fGMuZ3x8ND09Yy5pfHwwPT1jLml8fCFiLmY/Yi5ifHxiLmd8fDQ9PWIuaXx8MD09Yi5pfHwhYy5mfHwodGhpcy5mPXtuYW1lOmMuZi5uYW1lLHM6Yn0pOnRoaXMuZj17bmFtZTpiLmYubmFtZSxzOmN9KX1tKE4pO1xuZnVuY3Rpb24gTyhhLGIsYyxkLGUpe2I9Yi5hKGQpO2M9Yy5hKGQpO3ZhciBmO2lmKGIgaW5zdGFuY2VvZiBDJiZjIGluc3RhbmNlb2YgQyl7Yj1IKGIpO2ZvcihkPUkoYik7ZDtkPUkoYikpZm9yKGU9SChjKSxmPUkoZSk7ZjtmPUkoZSkpaWYoYSh6KGQpLHooZikpKXJldHVybiEwO3JldHVybiExfWlmKGIgaW5zdGFuY2VvZiBDfHxjIGluc3RhbmNlb2YgQyl7YiBpbnN0YW5jZW9mIEM/KGU9YixkPWMpOihlPWMsZD1iKTtmPUgoZSk7Zm9yKHZhciBnPXR5cGVvZiBkLGg9SShmKTtoO2g9SShmKSl7c3dpdGNoKGcpe2Nhc2UgXCJudW1iZXJcIjpoPSt6KGgpO2JyZWFrO2Nhc2UgXCJib29sZWFuXCI6aD0hIXooaCk7YnJlYWs7Y2FzZSBcInN0cmluZ1wiOmg9eihoKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKFwiSWxsZWdhbCBwcmltaXRpdmUgdHlwZSBmb3IgY29tcGFyaXNvbi5cIik7fWlmKGU9PWImJmEoaCxkKXx8ZT09YyYmYShkLGgpKXJldHVybiEwfXJldHVybiExfXJldHVybiBlP1wiYm9vbGVhblwiPT1cbnR5cGVvZiBifHxcImJvb2xlYW5cIj09dHlwZW9mIGM/YSghIWIsISFjKTpcIm51bWJlclwiPT10eXBlb2YgYnx8XCJudW1iZXJcIj09dHlwZW9mIGM/YSgrYiwrYyk6YShiLGMpOmEoK2IsK2MpfU4ucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYy5tKHRoaXMuaCx0aGlzLm8sYSl9O04ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE9XCJCaW5hcnkgRXhwcmVzc2lvbjogXCIrdGhpcy5jLGE9YStKKHRoaXMuaCk7cmV0dXJuIGErPUoodGhpcy5vKX07ZnVuY3Rpb24gWGEoYSxiLGMsZCl7dGhpcy5hPWE7dGhpcy53PWI7dGhpcy5pPWM7dGhpcy5tPWR9WGEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYX07dmFyIFlhPXt9O1xuZnVuY3Rpb24gUChhLGIsYyxkKXtpZihZYS5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcihcIkJpbmFyeSBvcGVyYXRvciBhbHJlYWR5IGNyZWF0ZWQ6IFwiK2EpO2E9bmV3IFhhKGEsYixjLGQpO3JldHVybiBZYVthLnRvU3RyaW5nKCldPWF9UChcImRpdlwiLDYsMSxmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEsoYSxjKS9LKGIsYyl9KTtQKFwibW9kXCIsNiwxLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSyhhLGMpJUsoYixjKX0pO1AoXCIqXCIsNiwxLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSyhhLGMpKksoYixjKX0pO1AoXCIrXCIsNSwxLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSyhhLGMpK0soYixjKX0pO1AoXCItXCIsNSwxLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSyhhLGMpLUsoYixjKX0pO1AoXCI8XCIsNCwyLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTyhmdW5jdGlvbihhLGIpe3JldHVybiBhPGJ9LGEsYixjKX0pO1xuUChcIj5cIiw0LDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBPKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGE+Yn0sYSxiLGMpfSk7UChcIjw9XCIsNCwyLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTyhmdW5jdGlvbihhLGIpe3JldHVybiBhPD1ifSxhLGIsYyl9KTtQKFwiPj1cIiw0LDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBPKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGE+PWJ9LGEsYixjKX0pO3ZhciBXYT1QKFwiPVwiLDMsMixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIE8oZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09Yn0sYSxiLGMsITApfSk7UChcIiE9XCIsMywyLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTyhmdW5jdGlvbihhLGIpe3JldHVybiBhIT1ifSxhLGIsYywhMCl9KTtQKFwiYW5kXCIsMiwyLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTShhLGMpJiZNKGIsYyl9KTtQKFwib3JcIiwxLDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBNKGEsYyl8fE0oYixjKX0pO2Z1bmN0aW9uIFEoYSxiLGMpe3RoaXMuYT1hO3RoaXMuYj1ifHwxO3RoaXMuZj1jfHwxfTtmdW5jdGlvbiBaYShhLGIpe2lmKGIuYS5sZW5ndGgmJjQhPWEuaSl0aHJvdyBFcnJvcihcIlByaW1hcnkgZXhwcmVzc2lvbiBtdXN0IGV2YWx1YXRlIHRvIG5vZGVzZXQgaWYgZmlsdGVyIGhhcyBwcmVkaWNhdGUocykuXCIpO24uY2FsbCh0aGlzLGEuaSk7dGhpcy5jPWE7dGhpcy5oPWI7dGhpcy5nPWEuZzt0aGlzLmI9YS5ifW0oWmEpO1phLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe2E9dGhpcy5jLmEoYSk7cmV0dXJuICRhKHRoaXMuaCxhKX07WmEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE7YT1cIkZpbHRlcjpcIitKKHRoaXMuYyk7cmV0dXJuIGErPUoodGhpcy5oKX07ZnVuY3Rpb24gYWIoYSxiKXtpZihiLmxlbmd0aDxhLkEpdGhyb3cgRXJyb3IoXCJGdW5jdGlvbiBcIithLmorXCIgZXhwZWN0cyBhdCBsZWFzdFwiK2EuQStcIiBhcmd1bWVudHMsIFwiK2IubGVuZ3RoK1wiIGdpdmVuXCIpO2lmKG51bGwhPT1hLnYmJmIubGVuZ3RoPmEudil0aHJvdyBFcnJvcihcIkZ1bmN0aW9uIFwiK2EuaitcIiBleHBlY3RzIGF0IG1vc3QgXCIrYS52K1wiIGFyZ3VtZW50cywgXCIrYi5sZW5ndGgrXCIgZ2l2ZW5cIik7YS5CJiZyKGIsZnVuY3Rpb24oYixkKXtpZig0IT1iLmkpdGhyb3cgRXJyb3IoXCJBcmd1bWVudCBcIitkK1wiIHRvIGZ1bmN0aW9uIFwiK2EuaitcIiBpcyBub3Qgb2YgdHlwZSBOb2Rlc2V0OiBcIitiKTt9KTtuLmNhbGwodGhpcyxhLmkpO3RoaXMuaD1hO3RoaXMuYz1iO1VhKHRoaXMsYS5nfHxqYShiLGZ1bmN0aW9uKGEpe3JldHVybiBhLmd9KSk7VmEodGhpcyxhLkQmJiFiLmxlbmd0aHx8YS5DJiYhIWIubGVuZ3RofHxqYShiLGZ1bmN0aW9uKGEpe3JldHVybiBhLmJ9KSl9bShhYik7XG5hYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5oLm0uYXBwbHkobnVsbCxsYShhLHRoaXMuYykpfTthYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1cIkZ1bmN0aW9uOiBcIit0aGlzLmg7aWYodGhpcy5jLmxlbmd0aCl2YXIgYj10KHRoaXMuYyxmdW5jdGlvbihhLGIpe3JldHVybiBhK0ooYil9LFwiQXJndW1lbnRzOlwiKSxhPWErSihiKTtyZXR1cm4gYX07ZnVuY3Rpb24gYmIoYSxiLGMsZCxlLGYsZyxoLHApe3RoaXMuaj1hO3RoaXMuaT1iO3RoaXMuZz1jO3RoaXMuRD1kO3RoaXMuQz1lO3RoaXMubT1mO3RoaXMuQT1nO3RoaXMudj12b2lkIDAhPT1oP2g6Zzt0aGlzLkI9ISFwfWJiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmp9O3ZhciBjYj17fTtcbmZ1bmN0aW9uIFIoYSxiLGMsZCxlLGYsZyxoKXtpZihjYi5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBFcnJvcihcIkZ1bmN0aW9uIGFscmVhZHkgY3JlYXRlZDogXCIrYStcIi5cIik7Y2JbYV09bmV3IGJiKGEsYixjLGQsITEsZSxmLGcsaCl9UihcImJvb2xlYW5cIiwyLCExLCExLGZ1bmN0aW9uKGEsYil7cmV0dXJuIE0oYixhKX0sMSk7UihcImNlaWxpbmdcIiwxLCExLCExLGZ1bmN0aW9uKGEsYil7cmV0dXJuIE1hdGguY2VpbChLKGIsYSkpfSwxKTtSKFwiY29uY2F0XCIsMywhMSwhMSxmdW5jdGlvbihhLGIpe3JldHVybiB0KG1hKGFyZ3VtZW50cywxKSxmdW5jdGlvbihiLGQpe3JldHVybiBiK0woZCxhKX0sXCJcIil9LDIsbnVsbCk7UihcImNvbnRhaW5zXCIsMiwhMSwhMSxmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHEoTChiLGEpLEwoYyxhKSl9LDIpO1IoXCJjb3VudFwiLDEsITEsITEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5hKGEpLmx9LDEsMSwhMCk7XG5SKFwiZmFsc2VcIiwyLCExLCExLGZ1bmN0aW9uKCl7cmV0dXJuITF9LDApO1IoXCJmbG9vclwiLDEsITEsITEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gTWF0aC5mbG9vcihLKGIsYSkpfSwxKTtSKFwiaWRcIiw0LCExLCExLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhKXtpZih3KXt2YXIgYj1lLmFsbFthXTtpZihiKXtpZihiLm5vZGVUeXBlJiZhPT1iLmlkKXJldHVybiBiO2lmKGIubGVuZ3RoKXJldHVybiBrYShiLGZ1bmN0aW9uKGIpe3JldHVybiBhPT1iLmlkfSl9cmV0dXJuIG51bGx9cmV0dXJuIGUuZ2V0RWxlbWVudEJ5SWQoYSl9dmFyIGQ9YS5hLGU9OT09ZC5ub2RlVHlwZT9kOmQub3duZXJEb2N1bWVudCxkPUwoYixhKS5zcGxpdCgvXFxzKy8pLGY9W107cihkLGZ1bmN0aW9uKGEpe2E9YyhhKTshYXx8MDw9aGEoZixhKXx8Zi5wdXNoKGEpfSk7Zi5zb3J0KExhKTt2YXIgZz1uZXcgQztyKGYsZnVuY3Rpb24oYSl7RihnLGEpfSk7cmV0dXJuIGd9LDEpO1xuUihcImxhbmdcIiwyLCExLCExLGZ1bmN0aW9uKCl7cmV0dXJuITF9LDEpO1IoXCJsYXN0XCIsMSwhMCwhMSxmdW5jdGlvbihhKXtpZigxIT1hcmd1bWVudHMubGVuZ3RoKXRocm93IEVycm9yKFwiRnVuY3Rpb24gbGFzdCBleHBlY3RzICgpXCIpO3JldHVybiBhLmZ9LDApO1IoXCJsb2NhbC1uYW1lXCIsMywhMSwhMCxmdW5jdGlvbihhLGIpe3ZhciBjPWI/UmEoYi5hKGEpKTphLmE7cmV0dXJuIGM/Yy5sb2NhbE5hbWV8fGMubm9kZU5hbWUudG9Mb3dlckNhc2UoKTpcIlwifSwwLDEsITApO1IoXCJuYW1lXCIsMywhMSwhMCxmdW5jdGlvbihhLGIpe3ZhciBjPWI/UmEoYi5hKGEpKTphLmE7cmV0dXJuIGM/Yy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOlwiXCJ9LDAsMSwhMCk7UihcIm5hbWVzcGFjZS11cmlcIiwzLCEwLCExLGZ1bmN0aW9uKCl7cmV0dXJuXCJcIn0sMCwxLCEwKTtcblIoXCJub3JtYWxpemUtc3BhY2VcIiwzLCExLCEwLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGI/TChiLGEpOnooYS5hKSkucmVwbGFjZSgvW1xcc1xceGEwXSsvZyxcIiBcIikucmVwbGFjZSgvXlxccyt8XFxzKyQvZyxcIlwiKX0sMCwxKTtSKFwibm90XCIsMiwhMSwhMSxmdW5jdGlvbihhLGIpe3JldHVybiFNKGIsYSl9LDEpO1IoXCJudW1iZXJcIiwxLCExLCEwLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/SyhiLGEpOit6KGEuYSl9LDAsMSk7UihcInBvc2l0aW9uXCIsMSwhMCwhMSxmdW5jdGlvbihhKXtyZXR1cm4gYS5ifSwwKTtSKFwicm91bmRcIiwxLCExLCExLGZ1bmN0aW9uKGEsYil7cmV0dXJuIE1hdGgucm91bmQoSyhiLGEpKX0sMSk7UihcInN0YXJ0cy13aXRoXCIsMiwhMSwhMSxmdW5jdGlvbihhLGIsYyl7Yj1MKGIsYSk7YT1MKGMsYSk7cmV0dXJuIDA9PWIubGFzdEluZGV4T2YoYSwwKX0sMik7UihcInN0cmluZ1wiLDMsITEsITAsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9MKGIsYSk6eihhLmEpfSwwLDEpO1xuUihcInN0cmluZy1sZW5ndGhcIiwxLCExLCEwLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGI/TChiLGEpOnooYS5hKSkubGVuZ3RofSwwLDEpO1IoXCJzdWJzdHJpbmdcIiwzLCExLCExLGZ1bmN0aW9uKGEsYixjLGQpe2M9SyhjLGEpO2lmKGlzTmFOKGMpfHxJbmZpbml0eT09Y3x8LUluZmluaXR5PT1jKXJldHVyblwiXCI7ZD1kP0soZCxhKTpJbmZpbml0eTtpZihpc05hTihkKXx8LUluZmluaXR5PT09ZClyZXR1cm5cIlwiO2M9TWF0aC5yb3VuZChjKS0xO3ZhciBlPU1hdGgubWF4KGMsMCk7YT1MKGIsYSk7cmV0dXJuIEluZmluaXR5PT1kP2Euc3Vic3RyaW5nKGUpOmEuc3Vic3RyaW5nKGUsYytNYXRoLnJvdW5kKGQpKX0sMiwzKTtSKFwic3Vic3RyaW5nLWFmdGVyXCIsMywhMSwhMSxmdW5jdGlvbihhLGIsYyl7Yj1MKGIsYSk7YT1MKGMsYSk7Yz1iLmluZGV4T2YoYSk7cmV0dXJuLTE9PWM/XCJcIjpiLnN1YnN0cmluZyhjK2EubGVuZ3RoKX0sMik7XG5SKFwic3Vic3RyaW5nLWJlZm9yZVwiLDMsITEsITEsZnVuY3Rpb24oYSxiLGMpe2I9TChiLGEpO2E9TChjLGEpO2E9Yi5pbmRleE9mKGEpO3JldHVybi0xPT1hP1wiXCI6Yi5zdWJzdHJpbmcoMCxhKX0sMik7UihcInN1bVwiLDEsITEsITEsZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9SChiLmEoYSkpLGQ9MCxlPUkoYyk7ZTtlPUkoYykpZCs9K3ooZSk7cmV0dXJuIGR9LDEsMSwhMCk7UihcInRyYW5zbGF0ZVwiLDMsITEsITEsZnVuY3Rpb24oYSxiLGMsZCl7Yj1MKGIsYSk7Yz1MKGMsYSk7dmFyIGU9TChkLGEpO2E9e307Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrKyl7dmFyIGY9Yy5jaGFyQXQoZCk7ZiBpbiBhfHwoYVtmXT1lLmNoYXJBdChkKSl9Yz1cIlwiO2ZvcihkPTA7ZDxiLmxlbmd0aDtkKyspZj1iLmNoYXJBdChkKSxjKz1mIGluIGE/YVtmXTpmO3JldHVybiBjfSwzKTtSKFwidHJ1ZVwiLDIsITEsITEsZnVuY3Rpb24oKXtyZXR1cm4hMH0sMCk7ZnVuY3Rpb24gRyhhLGIpe3RoaXMuaD1hO3RoaXMuYz12b2lkIDAhPT1iP2I6bnVsbDt0aGlzLmI9bnVsbDtzd2l0Y2goYSl7Y2FzZSBcImNvbW1lbnRcIjp0aGlzLmI9ODticmVhaztjYXNlIFwidGV4dFwiOnRoaXMuYj0zO2JyZWFrO2Nhc2UgXCJwcm9jZXNzaW5nLWluc3RydWN0aW9uXCI6dGhpcy5iPTc7YnJlYWs7Y2FzZSBcIm5vZGVcIjpicmVhaztkZWZhdWx0OnRocm93IEVycm9yKFwiVW5leHBlY3RlZCBhcmd1bWVudFwiKTt9fWZ1bmN0aW9uIGRiKGEpe3JldHVyblwiY29tbWVudFwiPT1hfHxcInRleHRcIj09YXx8XCJwcm9jZXNzaW5nLWluc3RydWN0aW9uXCI9PWF8fFwibm9kZVwiPT1hfUcucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT10aGlzLmJ8fHRoaXMuYj09YS5ub2RlVHlwZX07Ry5wcm90b3R5cGUuZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmh9O1xuRy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1cIktpbmQgVGVzdDogXCIrdGhpcy5oO251bGw9PT10aGlzLmN8fChhKz1KKHRoaXMuYykpO3JldHVybiBhfTtmdW5jdGlvbiBlYihhKXt0aGlzLmI9YTt0aGlzLmE9MH1mdW5jdGlvbiBmYihhKXthPWEubWF0Y2goZ2IpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWhiLnRlc3QoYVtiXSkmJmEuc3BsaWNlKGIsMSk7cmV0dXJuIG5ldyBlYihhKX12YXIgZ2I9L1xcJD8oPzooPyFbMC05LVxcLl0pKD86XFwqfFtcXHctXFwuXSspOik/KD8hWzAtOS1cXC5dKSg/OlxcKnxbXFx3LVxcLl0rKXxcXC9cXC98XFwuXFwufDo6fFxcZCsoPzpcXC5cXGQqKT98XFwuXFxkK3xcIlteXCJdKlwifCdbXiddKid8WyE8Pl09fFxccyt8Li9nLGhiPS9eXFxzLztmdW5jdGlvbiBTKGEsYil7cmV0dXJuIGEuYlthLmErKGJ8fDApXX1mdW5jdGlvbiBUKGEpe3JldHVybiBhLmJbYS5hKytdfWZ1bmN0aW9uIGliKGEpe3JldHVybiBhLmIubGVuZ3RoPD1hLmF9O2Z1bmN0aW9uIGpiKGEpe24uY2FsbCh0aGlzLDMpO3RoaXMuYz1hLnN1YnN0cmluZygxLGEubGVuZ3RoLTEpfW0oamIpO2piLnByb3RvdHlwZS5hPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY307amIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJMaXRlcmFsOiBcIit0aGlzLmN9O2Z1bmN0aW9uIEUoYSxiKXt0aGlzLmo9YS50b0xvd2VyQ2FzZSgpO3ZhciBjO2M9XCIqXCI9PXRoaXMuaj9cIipcIjpcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjt0aGlzLmM9Yj9iLnRvTG93ZXJDYXNlKCk6Y31FLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZVR5cGU7aWYoMSE9YiYmMiE9YilyZXR1cm4hMTtiPXZvaWQgMCE9PWEubG9jYWxOYW1lP2EubG9jYWxOYW1lOmEubm9kZU5hbWU7cmV0dXJuXCIqXCIhPXRoaXMuaiYmdGhpcy5qIT1iLnRvTG93ZXJDYXNlKCk/ITE6XCIqXCI9PXRoaXMuYz8hMDp0aGlzLmM9PShhLm5hbWVzcGFjZVVSST9hLm5hbWVzcGFjZVVSSS50b0xvd2VyQ2FzZSgpOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiKX07RS5wcm90b3R5cGUuZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmp9O1xuRS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIk5hbWUgVGVzdDogXCIrKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiPT10aGlzLmM/XCJcIjp0aGlzLmMrXCI6XCIpK3RoaXMuan07ZnVuY3Rpb24ga2IoYSxiKXtuLmNhbGwodGhpcyxhLmkpO3RoaXMuaD1hO3RoaXMuYz1iO3RoaXMuZz1hLmc7dGhpcy5iPWEuYjtpZigxPT10aGlzLmMubGVuZ3RoKXt2YXIgYz10aGlzLmNbMF07Yy51fHxjLmMhPWxifHwoYz1jLm8sXCIqXCIhPWMuZigpJiYodGhpcy5mPXtuYW1lOmMuZigpLHM6bnVsbH0pKX19bShrYik7ZnVuY3Rpb24gbWIoKXtuLmNhbGwodGhpcyw0KX1tKG1iKTttYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgQzthPWEuYTs5PT1hLm5vZGVUeXBlP0YoYixhKTpGKGIsYS5vd25lckRvY3VtZW50KTtyZXR1cm4gYn07bWIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJSb290IEhlbHBlciBFeHByZXNzaW9uXCJ9O2Z1bmN0aW9uIG5iKCl7bi5jYWxsKHRoaXMsNCl9bShuYik7bmIucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEM7RihiLGEuYSk7cmV0dXJuIGJ9O25iLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiQ29udGV4dCBIZWxwZXIgRXhwcmVzc2lvblwifTtcbmZ1bmN0aW9uIG9iKGEpe3JldHVyblwiL1wiPT1hfHxcIi8vXCI9PWF9a2IucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5oLmEoYSk7aWYoIShiIGluc3RhbmNlb2YgQykpdGhyb3cgRXJyb3IoXCJGaWx0ZXIgZXhwcmVzc2lvbiBtdXN0IGV2YWx1YXRlIHRvIG5vZGVzZXQuXCIpO2E9dGhpcy5jO2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7YzxkJiZiLmw7YysrKXt2YXIgZT1hW2NdLGY9SChiLGUuYy5hKSxnO2lmKGUuZ3x8ZS5jIT1wYilpZihlLmd8fGUuYyE9cWIpZm9yKGc9SShmKSxiPWUuYShuZXcgUShnKSk7bnVsbCE9KGc9SShmKSk7KWc9ZS5hKG5ldyBRKGcpKSxiPVBhKGIsZyk7ZWxzZSBnPUkoZiksYj1lLmEobmV3IFEoZykpO2Vsc2V7Zm9yKGc9SShmKTsoYj1JKGYpKSYmKCFnLmNvbnRhaW5zfHxnLmNvbnRhaW5zKGIpKSYmYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihnKSY4O2c9Yik7Yj1lLmEobmV3IFEoZykpfX1yZXR1cm4gYn07XG5rYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYTthPVwiUGF0aCBFeHByZXNzaW9uOlwiK0oodGhpcy5oKTtpZih0aGlzLmMubGVuZ3RoKXt2YXIgYj10KHRoaXMuYyxmdW5jdGlvbihhLGIpe3JldHVybiBhK0ooYil9LFwiU3RlcHM6XCIpO2ErPUooYil9cmV0dXJuIGF9O2Z1bmN0aW9uIHJiKGEpe24uY2FsbCh0aGlzLDQpO3RoaXMuYz1hO1VhKHRoaXMsamEodGhpcy5jLGZ1bmN0aW9uKGEpe3JldHVybiBhLmd9KSk7VmEodGhpcyxqYSh0aGlzLmMsZnVuY3Rpb24oYSl7cmV0dXJuIGEuYn0pKX1tKHJiKTtyYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgQztyKHRoaXMuYyxmdW5jdGlvbihjKXtjPWMuYShhKTtpZighKGMgaW5zdGFuY2VvZiBDKSl0aHJvdyBFcnJvcihcIlBhdGggZXhwcmVzc2lvbiBtdXN0IGV2YWx1YXRlIHRvIE5vZGVTZXQuXCIpO2I9UGEoYixjKX0pO3JldHVybiBifTtyYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLmMsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStKKGIpfSxcIlVuaW9uIEV4cHJlc3Npb246XCIpfTtmdW5jdGlvbiBzYihhLGIpe3RoaXMuYT1hO3RoaXMuYj0hIWJ9XG5mdW5jdGlvbiAkYShhLGIsYyl7Zm9yKGM9Y3x8MDtjPGEuYS5sZW5ndGg7YysrKWZvcih2YXIgZD1hLmFbY10sZT1IKGIpLGY9Yi5sLGcsaD0wO2c9SShlKTtoKyspe3ZhciBwPWEuYj9mLWg6aCsxO2c9ZC5hKG5ldyBRKGcscCxmKSk7aWYoXCJudW1iZXJcIj09dHlwZW9mIGcpcD1wPT1nO2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIGd8fFwiYm9vbGVhblwiPT10eXBlb2YgZylwPSEhZztlbHNlIGlmKGcgaW5zdGFuY2VvZiBDKXA9MDxnLmw7ZWxzZSB0aHJvdyBFcnJvcihcIlByZWRpY2F0ZS5ldmFsdWF0ZSByZXR1cm5lZCBhbiB1bmV4cGVjdGVkIHR5cGUuXCIpO2lmKCFwKXtwPWU7Zz1wLmY7dmFyIHk9cC5hO2lmKCF5KXRocm93IEVycm9yKFwiTmV4dCBtdXN0IGJlIGNhbGxlZCBhdCBsZWFzdCBvbmNlIGJlZm9yZSByZW1vdmUuXCIpO3ZhciBEPXkuYix5PXkuYTtEP0QuYT15OmcuYT15O3k/eS5iPUQ6Zy5iPUQ7Zy5sLS07cC5hPW51bGx9fXJldHVybiBifVxuc2IucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcy5hLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErSihiKX0sXCJQcmVkaWNhdGVzOlwiKX07ZnVuY3Rpb24gVShhLGIsYyxkKXtuLmNhbGwodGhpcyw0KTt0aGlzLmM9YTt0aGlzLm89Yjt0aGlzLmg9Y3x8bmV3IHNiKFtdKTt0aGlzLnU9ISFkO2I9dGhpcy5oO2I9MDxiLmEubGVuZ3RoP2IuYVswXS5mOm51bGw7YS5iJiZiJiYoYT1iLm5hbWUsYT13P2EudG9Mb3dlckNhc2UoKTphLHRoaXMuZj17bmFtZTphLHM6Yi5zfSk7YTp7YT10aGlzLmg7Zm9yKGI9MDtiPGEuYS5sZW5ndGg7YisrKWlmKGM9YS5hW2JdLGMuZ3x8MT09Yy5pfHwwPT1jLmkpe2E9ITA7YnJlYWsgYX1hPSExfXRoaXMuZz1hfW0oVSk7XG5VLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3ZhciBiPWEuYSxjPW51bGwsYz10aGlzLmYsZD1udWxsLGU9bnVsbCxmPTA7YyYmKGQ9Yy5uYW1lLGU9Yy5zP0woYy5zLGEpOm51bGwsZj0xKTtpZih0aGlzLnUpaWYodGhpcy5nfHx0aGlzLmMhPXRiKWlmKGE9SCgobmV3IFUodWIsbmV3IEcoXCJub2RlXCIpKSkuYShhKSksYj1JKGEpKWZvcihjPXRoaXMubShiLGQsZSxmKTtudWxsIT0oYj1JKGEpKTspYz1QYShjLHRoaXMubShiLGQsZSxmKSk7ZWxzZSBjPW5ldyBDO2Vsc2UgYz1CKHRoaXMubyxiLGQsZSksYz0kYSh0aGlzLmgsYyxmKTtlbHNlIGM9dGhpcy5tKGEuYSxkLGUsZik7cmV0dXJuIGN9O1UucHJvdG90eXBlLm09ZnVuY3Rpb24oYSxiLGMsZCl7YT10aGlzLmMuZih0aGlzLm8sYSxiLGMpO3JldHVybiBhPSRhKHRoaXMuaCxhLGQpfTtcblUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGE7YT1cIlN0ZXA6XCIrSihcIk9wZXJhdG9yOiBcIisodGhpcy51P1wiLy9cIjpcIi9cIikpO3RoaXMuYy5qJiYoYSs9SihcIkF4aXM6IFwiK3RoaXMuYykpO2ErPUoodGhpcy5vKTtpZih0aGlzLmguYS5sZW5ndGgpe3ZhciBiPXQodGhpcy5oLmEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStKKGIpfSxcIlByZWRpY2F0ZXM6XCIpO2ErPUooYil9cmV0dXJuIGF9O2Z1bmN0aW9uIHZiKGEsYixjLGQpe3RoaXMuaj1hO3RoaXMuZj1iO3RoaXMuYT1jO3RoaXMuYj1kfXZiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmp9O3ZhciB3Yj17fTtmdW5jdGlvbiBWKGEsYixjLGQpe2lmKHdiLmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKFwiQXhpcyBhbHJlYWR5IGNyZWF0ZWQ6IFwiK2EpO2I9bmV3IHZiKGEsYixjLCEhZCk7cmV0dXJuIHdiW2FdPWJ9XG5WKFwiYW5jZXN0b3JcIixmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1uZXcgQyxkPWI7ZD1kLnBhcmVudE5vZGU7KWEuYShkKSYmUWEoYyxkKTtyZXR1cm4gY30sITApO1YoXCJhbmNlc3Rvci1vci1zZWxmXCIsZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgQyxkPWI7ZG8gYS5hKGQpJiZRYShjLGQpO3doaWxlKGQ9ZC5wYXJlbnROb2RlKTtyZXR1cm4gY30sITApO1xudmFyIGxiPVYoXCJhdHRyaWJ1dGVcIixmdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBDLGQ9YS5mKCk7aWYoXCJzdHlsZVwiPT1kJiZ3JiZiLnN0eWxlKXJldHVybiBGKGMsbmV3IHgoYi5zdHlsZSxiLFwic3R5bGVcIixiLnN0eWxlLmNzc1RleHQpKSxjO3ZhciBlPWIuYXR0cmlidXRlcztpZihlKWlmKGEgaW5zdGFuY2VvZiBHJiZudWxsPT09YS5ifHxcIipcIj09ZClmb3IodmFyIGQ9MCxmO2Y9ZVtkXTtkKyspdz9mLm5vZGVWYWx1ZSYmRihjLERhKGIsZikpOkYoYyxmKTtlbHNlKGY9ZS5nZXROYW1lZEl0ZW0oZCkpJiYodz9mLm5vZGVWYWx1ZSYmRihjLERhKGIsZikpOkYoYyxmKSk7cmV0dXJuIGN9LCExKSx0Yj1WKFwiY2hpbGRcIixmdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybih3P0lhOkphKS5jYWxsKG51bGwsYSxiLGwoYyk/YzpudWxsLGwoZCk/ZDpudWxsLGV8fG5ldyBDKX0sITEsITApO1YoXCJkZXNjZW5kYW50XCIsQiwhMSwhMCk7XG52YXIgdWI9VihcImRlc2NlbmRhbnQtb3Itc2VsZlwiLGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBDO0EoYixjLGQpJiZhLmEoYikmJkYoZSxiKTtyZXR1cm4gQihhLGIsYyxkLGUpfSwhMSwhMCkscGI9VihcImZvbGxvd2luZ1wiLGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBDO2RvIGZvcih2YXIgZj1iO2Y9Zi5uZXh0U2libGluZzspQShmLGMsZCkmJmEuYShmKSYmRihlLGYpLGU9QihhLGYsYyxkLGUpO3doaWxlKGI9Yi5wYXJlbnROb2RlKTtyZXR1cm4gZX0sITEsITApO1YoXCJmb2xsb3dpbmctc2libGluZ1wiLGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBDLGQ9YjtkPWQubmV4dFNpYmxpbmc7KWEuYShkKSYmRihjLGQpO3JldHVybiBjfSwhMSk7VihcIm5hbWVzcGFjZVwiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBDfSwhMSk7XG52YXIgeGI9VihcInBhcmVudFwiLGZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IEM7aWYoOT09Yi5ub2RlVHlwZSlyZXR1cm4gYztpZigyPT1iLm5vZGVUeXBlKXJldHVybiBGKGMsYi5vd25lckVsZW1lbnQpLGM7dmFyIGQ9Yi5wYXJlbnROb2RlO2EuYShkKSYmRihjLGQpO3JldHVybiBjfSwhMSkscWI9VihcInByZWNlZGluZ1wiLGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPW5ldyBDLGY9W107ZG8gZi51bnNoaWZ0KGIpO3doaWxlKGI9Yi5wYXJlbnROb2RlKTtmb3IodmFyIGc9MSxoPWYubGVuZ3RoO2c8aDtnKyspe3ZhciBwPVtdO2ZvcihiPWZbZ107Yj1iLnByZXZpb3VzU2libGluZzspcC51bnNoaWZ0KGIpO2Zvcih2YXIgeT0wLEQ9cC5sZW5ndGg7eTxEO3krKyliPXBbeV0sQShiLGMsZCkmJmEuYShiKSYmRihlLGIpLGU9QihhLGIsYyxkLGUpfXJldHVybiBlfSwhMCwhMCk7XG5WKFwicHJlY2VkaW5nLXNpYmxpbmdcIixmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1uZXcgQyxkPWI7ZD1kLnByZXZpb3VzU2libGluZzspYS5hKGQpJiZRYShjLGQpO3JldHVybiBjfSwhMCk7dmFyIHliPVYoXCJzZWxmXCIsZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgQzthLmEoYikmJkYoYyxiKTtyZXR1cm4gY30sITEpO2Z1bmN0aW9uIHpiKGEpe24uY2FsbCh0aGlzLDEpO3RoaXMuYz1hO3RoaXMuZz1hLmc7dGhpcy5iPWEuYn1tKHpiKTt6Yi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXtyZXR1cm4tSyh0aGlzLmMsYSl9O3piLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiVW5hcnkgRXhwcmVzc2lvbjogLVwiK0oodGhpcy5jKX07ZnVuY3Rpb24gQWIoYSl7bi5jYWxsKHRoaXMsMSk7dGhpcy5jPWF9bShBYik7QWIucHJvdG90eXBlLmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jfTtBYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIk51bWJlcjogXCIrdGhpcy5jfTtmdW5jdGlvbiBCYihhLGIpe3RoaXMuYT1hO3RoaXMuYj1ifWZ1bmN0aW9uIENiKGEpe2Zvcih2YXIgYixjPVtdOzspe1coYSxcIk1pc3NpbmcgcmlnaHQgaGFuZCBzaWRlIG9mIGJpbmFyeSBleHByZXNzaW9uLlwiKTtiPURiKGEpO3ZhciBkPVQoYS5hKTtpZighZClicmVhazt2YXIgZT0oZD1ZYVtkXXx8bnVsbCkmJmQudztpZighZSl7YS5hLmEtLTticmVha31mb3IoO2MubGVuZ3RoJiZlPD1jW2MubGVuZ3RoLTFdLnc7KWI9bmV3IE4oYy5wb3AoKSxjLnBvcCgpLGIpO2MucHVzaChiLGQpfWZvcig7Yy5sZW5ndGg7KWI9bmV3IE4oYy5wb3AoKSxjLnBvcCgpLGIpO3JldHVybiBifWZ1bmN0aW9uIFcoYSxiKXtpZihpYihhLmEpKXRocm93IEVycm9yKGIpO31mdW5jdGlvbiBFYihhLGIpe3ZhciBjPVQoYS5hKTtpZihjIT1iKXRocm93IEVycm9yKFwiQmFkIHRva2VuLCBleHBlY3RlZDogXCIrYitcIiBnb3Q6IFwiK2MpO31cbmZ1bmN0aW9uIEZiKGEpe2E9VChhLmEpO2lmKFwiKVwiIT1hKXRocm93IEVycm9yKFwiQmFkIHRva2VuOiBcIithKTt9ZnVuY3Rpb24gR2IoYSl7YT1UKGEuYSk7aWYoMj5hLmxlbmd0aCl0aHJvdyBFcnJvcihcIlVuY2xvc2VkIGxpdGVyYWwgc3RyaW5nXCIpO3JldHVybiBuZXcgamIoYSl9XG5mdW5jdGlvbiBIYihhKXt2YXIgYixjPVtdLGQ7aWYob2IoUyhhLmEpKSl7Yj1UKGEuYSk7ZD1TKGEuYSk7aWYoXCIvXCI9PWImJihpYihhLmEpfHxcIi5cIiE9ZCYmXCIuLlwiIT1kJiZcIkBcIiE9ZCYmXCIqXCIhPWQmJiEvKD8hWzAtOV0pW1xcd10vLnRlc3QoZCkpKXJldHVybiBuZXcgbWI7ZD1uZXcgbWI7VyhhLFwiTWlzc2luZyBuZXh0IGxvY2F0aW9uIHN0ZXAuXCIpO2I9SWIoYSxiKTtjLnB1c2goYil9ZWxzZXthOntiPVMoYS5hKTtkPWIuY2hhckF0KDApO3N3aXRjaChkKXtjYXNlIFwiJFwiOnRocm93IEVycm9yKFwiVmFyaWFibGUgcmVmZXJlbmNlIG5vdCBhbGxvd2VkIGluIEhUTUwgWFBhdGhcIik7Y2FzZSBcIihcIjpUKGEuYSk7Yj1DYihhKTtXKGEsJ3VuY2xvc2VkIFwiKFwiJyk7RWIoYSxcIilcIik7YnJlYWs7Y2FzZSAnXCInOmNhc2UgXCInXCI6Yj1HYihhKTticmVhaztkZWZhdWx0OmlmKGlzTmFOKCtiKSlpZighZGIoYikmJi8oPyFbMC05XSlbXFx3XS8udGVzdChkKSYmXCIoXCI9PVMoYS5hLDEpKXtiPVQoYS5hKTtcbmI9Y2JbYl18fG51bGw7VChhLmEpO2ZvcihkPVtdO1wiKVwiIT1TKGEuYSk7KXtXKGEsXCJNaXNzaW5nIGZ1bmN0aW9uIGFyZ3VtZW50IGxpc3QuXCIpO2QucHVzaChDYihhKSk7aWYoXCIsXCIhPVMoYS5hKSlicmVhaztUKGEuYSl9VyhhLFwiVW5jbG9zZWQgZnVuY3Rpb24gYXJndW1lbnQgbGlzdC5cIik7RmIoYSk7Yj1uZXcgYWIoYixkKX1lbHNle2I9bnVsbDticmVhayBhfWVsc2UgYj1uZXcgQWIoK1QoYS5hKSl9XCJbXCI9PVMoYS5hKSYmKGQ9bmV3IHNiKEpiKGEpKSxiPW5ldyBaYShiLGQpKX1pZihiKWlmKG9iKFMoYS5hKSkpZD1iO2Vsc2UgcmV0dXJuIGI7ZWxzZSBiPUliKGEsXCIvXCIpLGQ9bmV3IG5iLGMucHVzaChiKX1mb3IoO29iKFMoYS5hKSk7KWI9VChhLmEpLFcoYSxcIk1pc3NpbmcgbmV4dCBsb2NhdGlvbiBzdGVwLlwiKSxiPUliKGEsYiksYy5wdXNoKGIpO3JldHVybiBuZXcga2IoZCxjKX1cbmZ1bmN0aW9uIEliKGEsYil7dmFyIGMsZCxlO2lmKFwiL1wiIT1iJiZcIi8vXCIhPWIpdGhyb3cgRXJyb3IoJ1N0ZXAgb3Agc2hvdWxkIGJlIFwiL1wiIG9yIFwiLy9cIicpO2lmKFwiLlwiPT1TKGEuYSkpcmV0dXJuIGQ9bmV3IFUoeWIsbmV3IEcoXCJub2RlXCIpKSxUKGEuYSksZDtpZihcIi4uXCI9PVMoYS5hKSlyZXR1cm4gZD1uZXcgVSh4YixuZXcgRyhcIm5vZGVcIikpLFQoYS5hKSxkO3ZhciBmO2lmKFwiQFwiPT1TKGEuYSkpZj1sYixUKGEuYSksVyhhLFwiTWlzc2luZyBhdHRyaWJ1dGUgbmFtZVwiKTtlbHNlIGlmKFwiOjpcIj09UyhhLmEsMSkpe2lmKCEvKD8hWzAtOV0pW1xcd10vLnRlc3QoUyhhLmEpLmNoYXJBdCgwKSkpdGhyb3cgRXJyb3IoXCJCYWQgdG9rZW46IFwiK1QoYS5hKSk7Yz1UKGEuYSk7Zj13YltjXXx8bnVsbDtpZighZil0aHJvdyBFcnJvcihcIk5vIGF4aXMgd2l0aCBuYW1lOiBcIitjKTtUKGEuYSk7VyhhLFwiTWlzc2luZyBub2RlIG5hbWVcIil9ZWxzZSBmPXRiO2M9UyhhLmEpO2lmKC8oPyFbMC05XSlbXFx3XFwqXS8udGVzdChjLmNoYXJBdCgwKSkpaWYoXCIoXCI9PVxuUyhhLmEsMSkpe2lmKCFkYihjKSl0aHJvdyBFcnJvcihcIkludmFsaWQgbm9kZSB0eXBlOiBcIitjKTtjPVQoYS5hKTtpZighZGIoYykpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIHR5cGUgbmFtZTogXCIrYyk7RWIoYSxcIihcIik7VyhhLFwiQmFkIG5vZGV0eXBlXCIpO2U9UyhhLmEpLmNoYXJBdCgwKTt2YXIgZz1udWxsO2lmKCdcIic9PWV8fFwiJ1wiPT1lKWc9R2IoYSk7VyhhLFwiQmFkIG5vZGV0eXBlXCIpO0ZiKGEpO2M9bmV3IEcoYyxnKX1lbHNlIGlmKGM9VChhLmEpLGU9Yy5pbmRleE9mKFwiOlwiKSwtMT09ZSljPW5ldyBFKGMpO2Vsc2V7dmFyIGc9Yy5zdWJzdHJpbmcoMCxlKSxoO2lmKFwiKlwiPT1nKWg9XCIqXCI7ZWxzZSBpZihoPWEuYihnKSwhaCl0aHJvdyBFcnJvcihcIk5hbWVzcGFjZSBwcmVmaXggbm90IGRlY2xhcmVkOiBcIitnKTtjPWMuc3Vic3RyKGUrMSk7Yz1uZXcgRShjLGgpfWVsc2UgdGhyb3cgRXJyb3IoXCJCYWQgdG9rZW46IFwiK1QoYS5hKSk7ZT1uZXcgc2IoSmIoYSksZi5hKTtyZXR1cm4gZHx8XG5uZXcgVShmLGMsZSxcIi8vXCI9PWIpfWZ1bmN0aW9uIEpiKGEpe2Zvcih2YXIgYj1bXTtcIltcIj09UyhhLmEpOyl7VChhLmEpO1coYSxcIk1pc3NpbmcgcHJlZGljYXRlIGV4cHJlc3Npb24uXCIpO3ZhciBjPUNiKGEpO2IucHVzaChjKTtXKGEsXCJVbmNsb3NlZCBwcmVkaWNhdGUgZXhwcmVzc2lvbi5cIik7RWIoYSxcIl1cIil9cmV0dXJuIGJ9ZnVuY3Rpb24gRGIoYSl7aWYoXCItXCI9PVMoYS5hKSlyZXR1cm4gVChhLmEpLG5ldyB6YihEYihhKSk7dmFyIGI9SGIoYSk7aWYoXCJ8XCIhPVMoYS5hKSlhPWI7ZWxzZXtmb3IoYj1bYl07XCJ8XCI9PVQoYS5hKTspVyhhLFwiTWlzc2luZyBuZXh0IHVuaW9uIGxvY2F0aW9uIHBhdGguXCIpLGIucHVzaChIYihhKSk7YS5hLmEtLTthPW5ldyByYihiKX1yZXR1cm4gYX07ZnVuY3Rpb24gS2IoYSl7c3dpdGNoKGEubm9kZVR5cGUpe2Nhc2UgMTpyZXR1cm4gZWEoTGIsYSk7Y2FzZSA5OnJldHVybiBLYihhLmRvY3VtZW50RWxlbWVudCk7Y2FzZSAxMTpjYXNlIDEwOmNhc2UgNjpjYXNlIDEyOnJldHVybiBNYjtkZWZhdWx0OnJldHVybiBhLnBhcmVudE5vZGU/S2IoYS5wYXJlbnROb2RlKTpNYn19ZnVuY3Rpb24gTWIoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBMYihhLGIpe2lmKGEucHJlZml4PT1iKXJldHVybiBhLm5hbWVzcGFjZVVSSXx8XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI7dmFyIGM9YS5nZXRBdHRyaWJ1dGVOb2RlKFwieG1sbnM6XCIrYik7cmV0dXJuIGMmJmMuc3BlY2lmaWVkP2MudmFsdWV8fG51bGw6YS5wYXJlbnROb2RlJiY5IT1hLnBhcmVudE5vZGUubm9kZVR5cGU/TGIoYS5wYXJlbnROb2RlLGIpOm51bGx9O2Z1bmN0aW9uIE5iKGEsYil7aWYoIWEubGVuZ3RoKXRocm93IEVycm9yKFwiRW1wdHkgWFBhdGggZXhwcmVzc2lvbi5cIik7dmFyIGM9ZmIoYSk7aWYoaWIoYykpdGhyb3cgRXJyb3IoXCJJbnZhbGlkIFhQYXRoIGV4cHJlc3Npb24uXCIpO2I/XCJmdW5jdGlvblwiPT1hYShiKXx8KGI9ZGEoYi5sb29rdXBOYW1lc3BhY2VVUkksYikpOmI9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07dmFyIGQ9Q2IobmV3IEJiKGMsYikpO2lmKCFpYihjKSl0aHJvdyBFcnJvcihcIkJhZCB0b2tlbjogXCIrVChjKSk7dGhpcy5ldmFsdWF0ZT1mdW5jdGlvbihhLGIpe3ZhciBjPWQuYShuZXcgUShhKSk7cmV0dXJuIG5ldyBZKGMsYil9fVxuZnVuY3Rpb24gWShhLGIpe2lmKDA9PWIpaWYoYSBpbnN0YW5jZW9mIEMpYj00O2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIGEpYj0yO2Vsc2UgaWYoXCJudW1iZXJcIj09dHlwZW9mIGEpYj0xO2Vsc2UgaWYoXCJib29sZWFuXCI9PXR5cGVvZiBhKWI9MztlbHNlIHRocm93IEVycm9yKFwiVW5leHBlY3RlZCBldmFsdWF0aW9uIHJlc3VsdC5cIik7aWYoMiE9YiYmMSE9YiYmMyE9YiYmIShhIGluc3RhbmNlb2YgQykpdGhyb3cgRXJyb3IoXCJ2YWx1ZSBjb3VsZCBub3QgYmUgY29udmVydGVkIHRvIHRoZSBzcGVjaWZpZWQgdHlwZVwiKTt0aGlzLnJlc3VsdFR5cGU9Yjt2YXIgYztzd2l0Y2goYil7Y2FzZSAyOnRoaXMuc3RyaW5nVmFsdWU9YSBpbnN0YW5jZW9mIEM/U2EoYSk6XCJcIithO2JyZWFrO2Nhc2UgMTp0aGlzLm51bWJlclZhbHVlPWEgaW5zdGFuY2VvZiBDPytTYShhKTorYTticmVhaztjYXNlIDM6dGhpcy5ib29sZWFuVmFsdWU9YSBpbnN0YW5jZW9mIEM/MDxhLmw6ISFhO2JyZWFrO2Nhc2UgNDpjYXNlIDU6Y2FzZSA2OmNhc2UgNzp2YXIgZD1cbkgoYSk7Yz1bXTtmb3IodmFyIGU9SShkKTtlO2U9SShkKSljLnB1c2goZSBpbnN0YW5jZW9mIHg/ZS5hOmUpO3RoaXMuc25hcHNob3RMZW5ndGg9YS5sO3RoaXMuaW52YWxpZEl0ZXJhdG9yU3RhdGU9ITE7YnJlYWs7Y2FzZSA4OmNhc2UgOTpkPVJhKGEpO3RoaXMuc2luZ2xlTm9kZVZhbHVlPWQgaW5zdGFuY2VvZiB4P2QuYTpkO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoXCJVbmtub3duIFhQYXRoUmVzdWx0IHR5cGUuXCIpO312YXIgZj0wO3RoaXMuaXRlcmF0ZU5leHQ9ZnVuY3Rpb24oKXtpZig0IT1iJiY1IT1iKXRocm93IEVycm9yKFwiaXRlcmF0ZU5leHQgY2FsbGVkIHdpdGggd3JvbmcgcmVzdWx0IHR5cGVcIik7cmV0dXJuIGY+PWMubGVuZ3RoP251bGw6Y1tmKytdfTt0aGlzLnNuYXBzaG90SXRlbT1mdW5jdGlvbihhKXtpZig2IT1iJiY3IT1iKXRocm93IEVycm9yKFwic25hcHNob3RJdGVtIGNhbGxlZCB3aXRoIHdyb25nIHJlc3VsdCB0eXBlXCIpO3JldHVybiBhPj1jLmxlbmd0aHx8XG4wPmE/bnVsbDpjW2FdfX1ZLkFOWV9UWVBFPTA7WS5OVU1CRVJfVFlQRT0xO1kuU1RSSU5HX1RZUEU9MjtZLkJPT0xFQU5fVFlQRT0zO1kuVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRT00O1kuT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU9NTtZLlVOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU9NjtZLk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFPTc7WS5BTllfVU5PUkRFUkVEX05PREVfVFlQRT04O1kuRklSU1RfT1JERVJFRF9OT0RFX1RZUEU9OTtmdW5jdGlvbiBPYihhKXt0aGlzLmxvb2t1cE5hbWVzcGFjZVVSST1LYihhKX1cbmZ1bmN0aW9uIFBiKGEsYil7dmFyIGM9YXx8ayxkPWMuRG9jdW1lbnQmJmMuRG9jdW1lbnQucHJvdG90eXBlfHxjLmRvY3VtZW50O2lmKCFkLmV2YWx1YXRlfHxiKWMuWFBhdGhSZXN1bHQ9WSxkLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybihuZXcgTmIoYSxjKSkuZXZhbHVhdGUoYixkKX0sZC5jcmVhdGVFeHByZXNzaW9uPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBOYihhLGIpfSxkLmNyZWF0ZU5TUmVzb2x2ZXI9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBPYihhKX19dmFyIFFiPVtcIndneHBhdGhcIixcImluc3RhbGxcIl0sWj1rO1FiWzBdaW4gWnx8IVouZXhlY1NjcmlwdHx8Wi5leGVjU2NyaXB0KFwidmFyIFwiK1FiWzBdKTtmb3IodmFyIFJiO1FiLmxlbmd0aCYmKFJiPVFiLnNoaWZ0KCkpOylRYi5sZW5ndGh8fHZvaWQgMD09PVBiP1pbUmJdP1o9WltSYl06Wj1aW1JiXT17fTpaW1JiXT1QYjttb2R1bGUuZXhwb3J0cy5pbnN0YWxsPVBiO21vZHVsZS5leHBvcnRzLlhQYXRoUmVzdWx0VHlwZT17QU5ZX1RZUEU6MCxOVU1CRVJfVFlQRToxLFNUUklOR19UWVBFOjIsQk9PTEVBTl9UWVBFOjMsVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRTo0LE9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFOjUsVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRTo2LE9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFOjcsQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEU6OCxGSVJTVF9PUkRFUkVEX05PREVfVFlQRTo5fTt9KS5jYWxsKGdsb2JhbClcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2xhbmdPYnNlcnZhYmxlID0gcmVxdWlyZSgnLi9sYW5nL09ic2VydmFibGUnKTtcblxudmFyIF9sYW5nT2JzZXJ2YWJsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nT2JzZXJ2YWJsZSk7XG5cbnZhciBfbGFuZ0xvZ2dlciA9IHJlcXVpcmUoJy4vbGFuZy9Mb2dnZXInKTtcblxudmFyIF9sYW5nTG9nZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdMb2dnZXIpO1xuXG52YXIgX2h0dHBQeWRpb0FwaSA9IHJlcXVpcmUoJy4vaHR0cC9QeWRpb0FwaScpO1xuXG52YXIgX2h0dHBQeWRpb0FwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwUHlkaW9BcGkpO1xuXG52YXIgX21vZGVsUmVnaXN0cnkgPSByZXF1aXJlKCcuL21vZGVsL1JlZ2lzdHJ5Jyk7XG5cbnZhciBfbW9kZWxSZWdpc3RyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlZ2lzdHJ5KTtcblxudmFyIF9tb2RlbEFqeHBOb2RlID0gcmVxdWlyZSgnLi9tb2RlbC9BanhwTm9kZScpO1xuXG52YXIgX21vZGVsQWp4cE5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBanhwTm9kZSk7XG5cbnZhciBfbW9kZWxQeWRpb0RhdGFNb2RlbCA9IHJlcXVpcmUoJy4vbW9kZWwvUHlkaW9EYXRhTW9kZWwnKTtcblxudmFyIF9tb2RlbFB5ZGlvRGF0YU1vZGVsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUHlkaW9EYXRhTW9kZWwpO1xuXG52YXIgX21vZGVsUmVwb3NpdG9yeSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVwb3NpdG9yeScpO1xuXG52YXIgX21vZGVsUmVwb3NpdG9yeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlcG9zaXRvcnkpO1xuXG52YXIgX21vZGVsQ29udHJvbGxlciA9IHJlcXVpcmUoJy4vbW9kZWwvQ29udHJvbGxlcicpO1xuXG52YXIgX21vZGVsQ29udHJvbGxlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbENvbnRyb2xsZXIpO1xuXG52YXIgX3V0aWxYTUxVdGlscyA9IHJlcXVpcmUoJy4vdXRpbC9YTUxVdGlscycpO1xuXG52YXIgX3V0aWxYTUxVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsWE1MVXRpbHMpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMgPSByZXF1aXJlKCcuL3V0aWwvUGF0aFV0aWxzJyk7XG5cbnZhciBfdXRpbFBhdGhVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsUGF0aFV0aWxzKTtcblxudmFyIF91dGlsTGFuZ1V0aWxzID0gcmVxdWlyZSgnLi91dGlsL0xhbmdVdGlscycpO1xuXG52YXIgX3V0aWxMYW5nVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbExhbmdVdGlscyk7XG5cbnZhciBfdXRpbEFjdGl2aXR5TW9uaXRvciA9IHJlcXVpcmUoJy4vdXRpbC9BY3Rpdml0eU1vbml0b3InKTtcblxudmFyIF91dGlsQWN0aXZpdHlNb25pdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxBY3Rpdml0eU1vbml0b3IpO1xuXG52YXIgX2h0dHBQeWRpb1dlYlNvY2tldCA9IHJlcXVpcmUoJy4vaHR0cC9QeWRpb1dlYlNvY2tldCcpO1xuXG52YXIgX2h0dHBQeWRpb1dlYlNvY2tldDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwUHlkaW9XZWJTb2NrZXQpO1xuXG52YXIgX21vZGVsRW1wdHlOb2RlUHJvdmlkZXIgPSByZXF1aXJlKFwiLi9tb2RlbC9FbXB0eU5vZGVQcm92aWRlclwiKTtcblxudmFyIF9tb2RlbEVtcHR5Tm9kZVByb3ZpZGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW1wdHlOb2RlUHJvdmlkZXIpO1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIG1haW4gY2xhc3MgZm9yIGxhdW5jaGluZyB0aGUgd2hvbGUgZnJhbWV3b3JrLFxuICogd2l0aCBvciB3aXRob3V0IGEgVUkuXG4gKiBJdCBjYW4gYmUgbGF1bmNoZWQgYnkgUHlkaW9Cb290c3RyYXAgb3IgZGlyZWN0bHkgYnkgZ2l2aW5nIHRoZSByaWdodCBwYXJhbWV0ZXJzLlxuICovXG5cbnZhciBQeWRpbyA9IChmdW5jdGlvbiAoX09ic2VydmFibGUpIHtcbiAgICBfaW5oZXJpdHMoUHlkaW8sIF9PYnNlcnZhYmxlKTtcblxuICAgIC8qKlxuICAgICAqIFB5ZGlvIENvbnN0cnVjdG9yIHRha2VzIGEgTWFwIG9mIHN0YXJ0IHBhcmFtZXRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFyYW1ldGVycyB7TWFwfVxuICAgICAqL1xuXG4gICAgZnVuY3Rpb24gUHlkaW8ocGFyYW1ldGVycykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHlkaW8pO1xuXG4gICAgICAgIF9PYnNlcnZhYmxlLmNhbGwodGhpcyk7XG4gICAgICAgIFB5ZGlvLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgdGhpcy5QYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICAgICAgdGhpcy5faW5pdExvYWRSZXAgPSBwYXJhbWV0ZXJzLmdldCgnaW5pdExvYWRSZXAnKSB8fCBudWxsO1xuICAgICAgICB0aGlzLnVzZXJzRW5hYmxlZCA9IHBhcmFtZXRlcnMuZ2V0KCd1c2Vyc0VuYWJsZWQnKSB8fCBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IHBhcmFtZXRlcnMuZ2V0KCdjdXJyZW50TGFuZ3VhZ2UnKSB8fCBudWxsO1xuICAgICAgICB0aGlzLmFwcFRpdGxlID0gXCJQeWRpb1wiO1xuICAgICAgICBpZiAodGhpcy5QYXJhbWV0ZXJzLmhhcyhcImN1c3RvbVdvcmRpbmdcIikpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwVGl0bGUgPSB0aGlzLlBhcmFtZXRlcnMuZ2V0KFwiY3VzdG9tV29yZGluZ1wiKS50aXRsZSB8fCBcIlB5ZGlvXCI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51c2VyID0gbnVsbDtcbiAgICAgICAgdGhpcy5NZXNzYWdlSGFzaCA9IHt9O1xuICAgICAgICBpZiAod2luZG93Lk1lc3NhZ2VIYXNoKSB7XG4gICAgICAgICAgICB0aGlzLk1lc3NhZ2VIYXNoID0gd2luZG93Lk1lc3NhZ2VIYXNoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuQXBpQ2xpZW50ID0gX2h0dHBQeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRDbGllbnQoKTtcbiAgICAgICAgdGhpcy5BcGlDbGllbnQuc2V0UHlkaW9PYmplY3QodGhpcyk7XG4gICAgICAgIHRoaXMuQWN0aXZpdHlNb25pdG9yID0gbmV3IF91dGlsQWN0aXZpdHlNb25pdG9yMlsnZGVmYXVsdCddKHRoaXMpO1xuICAgICAgICB0aGlzLlJlZ2lzdHJ5ID0gbmV3IF9tb2RlbFJlZ2lzdHJ5MlsnZGVmYXVsdCddKHRoaXMpO1xuICAgICAgICB0aGlzLl9yb290Tm9kZSA9IG5ldyBfbW9kZWxBanhwTm9kZTJbJ2RlZmF1bHQnXShcIi9cIiwgXCJSb290XCIpO1xuICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyID0gbmV3IF9tb2RlbFB5ZGlvRGF0YU1vZGVsMlsnZGVmYXVsdCddKGZhbHNlKTtcbiAgICAgICAgdGhpcy5fZGF0YU1vZGVsID0gdGhpcy5fY29udGV4dEhvbGRlcjtcbiAgICAgICAgdGhpcy5fZGF0YU1vZGVsLnNldEFqeHBOb2RlUHJvdmlkZXIobmV3IF9tb2RlbEVtcHR5Tm9kZVByb3ZpZGVyMlsnZGVmYXVsdCddKCkpO1xuICAgICAgICB0aGlzLl9kYXRhTW9kZWwuc2V0Um9vdE5vZGUodGhpcy5fcm9vdE5vZGUpO1xuICAgICAgICAvLyBNdXN0IGhhcHBlbiBBRlRFUiBkYXRhbW9kZWwgaW5pdGl6YXRpb24uXG4gICAgICAgIHRoaXMuQ29udHJvbGxlciA9IG5ldyBfbW9kZWxDb250cm9sbGVyMlsnZGVmYXVsdCddKHRoaXMpO1xuICAgICAgICB0aGlzLldlYlNvY2tldENsaWVudCA9IG5ldyBfaHR0cFB5ZGlvV2ViU29ja2V0MlsnZGVmYXVsdCddKHRoaXMpO1xuICAgICAgICBpZiAodGhpcy5yZXBvc2l0b3J5SWQpIHtcbiAgICAgICAgICAgIHRoaXMuV2ViU29ja2V0Q2xpZW50LmN1cnJlbnRSZXBvID0gdGhpcy5yZXBvc2l0b3J5SWQ7XG4gICAgICAgICAgICB0aGlzLldlYlNvY2tldENsaWVudC5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLlBhcmFtZXRlcnMuaGFzKCdTVEFSVF9SRVBPU0lUT1JZJykpIHtcbiAgICAgICAgICAgIHZhciBsb2FkVXJpUGFydHMgPSBfdXRpbExhbmdVdGlsczJbJ2RlZmF1bHQnXS50cmltKHdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2UocGFyYW1ldGVycy5nZXQoJ0ZST05URU5EX1VSTCcpLCAnJyksICcvJykuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIGlmIChsb2FkVXJpUGFydHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxvYWRXcyA9IGxvYWRVcmlQYXJ0c1swXTtcbiAgICAgICAgICAgICAgICB2YXIgb3RoZXIgPSBsb2FkVXJpUGFydHMuc2xpY2UoMSk7XG5cbiAgICAgICAgICAgICAgICBpZiAobG9hZFdzLmluZGV4T2YoJ3dzLScpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRXcyA9IGxvYWRXcy5zdWJzdHIoMyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuUGFyYW1ldGVycy5zZXQoJ1NUQVJUX1JFUE9TSVRPUlknLCBsb2FkV3MpO1xuICAgICAgICAgICAgICAgIGlmIChvdGhlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5QYXJhbWV0ZXJzLnNldCgnU1RBUlRfRk9MREVSJywgJy8nICsgb3RoZXIuam9pbignLycpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBQeWRpby5wcm90b3R5cGUuZmlyZSA9IGZ1bmN0aW9uIGZpcmUoZXZlbnROYW1lLCBkYXRhKSB7XG4gICAgICAgIHRoaXMubm90aWZ5KGV2ZW50TmFtZSwgZGF0YSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHtVc2VyfG51bGx9IHVzZXJPYmplY3RcbiAgICAgKiBAcGFyYW0gc2tpcEV2ZW50IGJvb2xcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS51cGRhdGVVc2VyID0gZnVuY3Rpb24gdXBkYXRlVXNlcih1c2VyT2JqZWN0KSB7XG4gICAgICAgIHZhciBza2lwRXZlbnQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB0aGlzLnVzZXIgPSB1c2VyT2JqZWN0O1xuICAgICAgICBpZiAoIXNraXBFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkoJ3VzZXJfbG9nZ2VkJywgdXNlck9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7bnVsbHxVc2VyfVxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmdldFVzZXIgPSBmdW5jdGlvbiBnZXRVc2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy51c2VyO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZWZyZXNoIHVzZXIvcHJlZmVyZW5jZXMgcmVnaXN0cnkgcGFydFxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLnJlZnJlc2hVc2VyRGF0YSA9IGZ1bmN0aW9uIHJlZnJlc2hVc2VyRGF0YSgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB0aGlzLm9ic2VydmVPbmNlKFwicmVnaXN0cnlfcGFydF9sb2FkZWRcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgIT09IFwidXNlci9wcmVmZXJlbmNlc1wiKSByZXR1cm47XG4gICAgICAgICAgICBfdGhpcy51cGRhdGVVc2VyKF90aGlzLlJlZ2lzdHJ5LnBhcnNlVXNlcigpLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLlJlZ2lzdHJ5LmxvYWQoXCJ1c2VyL3ByZWZlcmVuY2VzXCIpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZWFsIGluaXRpYWxpc2F0aW9uIHNlcXVlbmNlLiBXaWxsIFRyaWdnZXIgdGhlIHdob2xlIEdVSSBidWlsZGluZy5cbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlKFwicmVnaXN0cnlfbG9hZGVkXCIsIGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgX3RoaXMyLlJlZ2lzdHJ5LnJlZnJlc2hFeHRlbnNpb25zUmVnaXN0cnkoKTtcbiAgICAgICAgICAgIF90aGlzMi51cGRhdGVVc2VyKF90aGlzMi5SZWdpc3RyeS5wYXJzZVVzZXIoKSwgZmFsc2UpO1xuICAgICAgICAgICAgaWYgKF90aGlzMi51c2VyKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcElkID0gX3RoaXMyLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeSgpO1xuICAgICAgICAgICAgICAgIHZhciByZXBMaXN0ID0gX3RoaXMyLnVzZXIuZ2V0UmVwb3NpdG9yaWVzTGlzdCgpO1xuICAgICAgICAgICAgICAgIHZhciByZXBvc2l0b3J5T2JqZWN0ID0gcmVwTGlzdC5nZXQocmVwSWQpO1xuICAgICAgICAgICAgICAgIGlmIChyZXBvc2l0b3J5T2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlPYmplY3QubG9hZFJlc291cmNlcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfdGhpczIuVUkuZ3VpTG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLlVJLnJlZnJlc2hUZW1wbGF0ZVBhcnRzKCk7XG4gICAgICAgICAgICAgICAgX3RoaXMyLlJlZ2lzdHJ5LnJlZnJlc2hFeHRlbnNpb25zUmVnaXN0cnkoKTtcbiAgICAgICAgICAgICAgICBfdGhpczIuQ29udHJvbGxlci5sb2FkQWN0aW9uc0Zyb21SZWdpc3RyeShfdGhpczIuZ2V0WG1sUmVnaXN0cnkoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIF90aGlzMi5vYnNlcnZlKFwiZ3VpX2xvYWRlZFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5VSS5yZWZyZXNoVGVtcGxhdGVQYXJ0cygpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuUmVnaXN0cnkucmVmcmVzaEV4dGVuc2lvbnNSZWdpc3RyeSgpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuQ29udHJvbGxlci5sb2FkQWN0aW9uc0Zyb21SZWdpc3RyeShfdGhpczIuZ2V0WG1sUmVnaXN0cnkoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfdGhpczIubG9hZEFjdGl2ZVJlcG9zaXRvcnkoKTtcbiAgICAgICAgICAgIGlmIChfdGhpczIuUGFyYW1ldGVycy5oYXMoXCJVU0VSX0dVSV9BQ1RJT05cIikpIHtcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IF90aGlzMi5QYXJhbWV0ZXJzLmdldChcIlVTRVJfR1VJX0FDVElPTlwiKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLlBhcmFtZXRlcnNbJ2RlbGV0ZSddKFwiVVNFUl9HVUlfQUNUSU9OXCIpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5Db250cm9sbGVyLmZpcmVBY3Rpb24oYSk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBzdGFydGVyRnVuYyA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkQ2xhc3Nlc0FuZEFwcGx5KFtcIlJlYWN0XCIsIFwiUHlkaW9SZWFjdFVJXCJdLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMzLlVJID0gbmV3IHdpbmRvdy5QeWRpb1JlYWN0VUkuQnVpbGRlcihfdGhpczMpO1xuICAgICAgICAgICAgICAgIF90aGlzMy5VSS5pbml0VGVtcGxhdGVzKCk7XG4gICAgICAgICAgICAgICAgX3RoaXMzLmZpcmUoXCJyZWdpc3RyeV9sb2FkZWRcIiwgX3RoaXMzLlJlZ2lzdHJ5LmdldFhNTCgpKTtcbiAgICAgICAgICAgICAgICBfdGhpczMuZmlyZSgnbG9hZGVkJyk7XG4gICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5maXJlKCdsb2FkZWQnKTsgfSwgMjAwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5iaW5kKHRoaXMpO1xuXG4gICAgICAgIC8vIFByZWxvZ2dlZCB1c2VyXG4gICAgICAgIGlmICh0aGlzLlBhcmFtZXRlcnMuaGFzKFwiUFJFTE9HX1VTRVJcIikgJiYgIXRoaXMudXNlcikge1xuICAgICAgICAgICAgdmFyIGxvZ2luID0gdGhpcy5QYXJhbWV0ZXJzLmdldChcIlBSRUxPR19VU0VSXCIpO1xuICAgICAgICAgICAgdmFyIHB3ZCA9IGxvZ2luICsgXCIjJCFBejFcIjtcbiAgICAgICAgICAgIF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmp3dEZyb21DcmVkZW50aWFscyhsb2dpbiwgcHdkLCBmYWxzZSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLmxvYWRYbWxSZWdpc3RyeShudWxsLCBzdGFydGVyRnVuYywgX3RoaXMyLlBhcmFtZXRlcnMuZ2V0KFwiU1RBUlRfUkVQT1NJVE9SWVwiKSk7XG4gICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIF90aGlzMi5sb2FkWG1sUmVnaXN0cnkobnVsbCwgc3RhcnRlckZ1bmMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBfaHR0cFB5ZGlvQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKS5nZXRPclVwZGF0ZUp3dCgpLnRoZW4oZnVuY3Rpb24gKGp3dCkge1xuICAgICAgICAgICAgICAgIGlmIChqd3QgfHwgIV90aGlzMi5QYXJhbWV0ZXJzLmhhcygnUFJFTE9BREVEX1JFR0lTVFJZJykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSBqd3RcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLmxvYWRYbWxSZWdpc3RyeShudWxsLCBzdGFydGVyRnVuYywgX3RoaXMyLlBhcmFtZXRlcnMuZ2V0KFwiU1RBUlRfUkVQT1NJVE9SWVwiKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90IGxvZ2dlZCwgdXNlZCBwcmVmZXRlY2hlZCByZWdpc3RyeSB0byBzcGVlZCB1cCBsb2dpbiBzY3JlZW5cbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLlJlZ2lzdHJ5LmxvYWRGcm9tU3RyaW5nKF90aGlzMi5QYXJhbWV0ZXJzLmdldChcIlBSRUxPQURFRF9SRUdJU1RSWVwiKSk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5QYXJhbWV0ZXJzWydkZWxldGUnXShcIlBSRUxPQURFRF9SRUdJU1RSWVwiKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRlckZ1bmMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub2JzZXJ2ZShcInNlcnZlcl9tZXNzYWdlXCIsIGZ1bmN0aW9uICh4bWwpIHtcbiAgICAgICAgICAgIHZhciByZWxvYWQgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh4bWwsIFwidHJlZS9yZXF1aXJlX3JlZ2lzdHJ5X3JlbG9hZFwiKTtcbiAgICAgICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVsb2FkLmdldEF0dHJpYnV0ZShcInJlcG9zaXRvcnlJZFwiKSAhPT0gX3RoaXMyLnJlcG9zaXRvcnlJZCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIubG9hZFhtbFJlZ2lzdHJ5KG51bGwsIG51bGwsIHJlbG9hZC5nZXRBdHRyaWJ1dGUoXCJyZXBvc2l0b3J5SWRcIikpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIucmVwb3NpdG9yeUlkID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyB0aGUgWE1MIFJlZ2lzdHJ5LCBhbiBpbWFnZSBvZiB0aGUgYXBwbGljYXRpb24gaW4gaXRzIGN1cnJlbnQgc3RhdGVcbiAgICAgKiBzZW50IGJ5IHRoZSBzZXJ2ZXIuXG4gICAgICogQHBhcmFtIHhQYXRoIFN0cmluZyBBbiBYUGF0aCB0byBsb2FkIG9ubHkgYSBzdWJwYXJ0IG9mIHRoZSByZWdpc3RyeVxuICAgICAqIEBwYXJhbSBjb21wbGV0ZUZ1bmNcbiAgICAgKiBAcGFyYW0gdGFyZ2V0UmVwb3NpdG9yeUlkXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUubG9hZFhtbFJlZ2lzdHJ5ID0gZnVuY3Rpb24gbG9hZFhtbFJlZ2lzdHJ5KCkge1xuICAgICAgICB2YXIgeFBhdGggPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzBdO1xuICAgICAgICB2YXIgY29tcGxldGVGdW5jID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIHRhcmdldFJlcG9zaXRvcnlJZCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgdGhpcy5SZWdpc3RyeS5sb2FkKHhQYXRoLCBjb21wbGV0ZUZ1bmMsIHRhcmdldFJlcG9zaXRvcnlJZCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgWE1MIFJlZ2lzdHJ5XG4gICAgICogQHJldHVybnMgRG9jdW1lbnRcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5nZXRYbWxSZWdpc3RyeSA9IGZ1bmN0aW9uIGdldFhtbFJlZ2lzdHJ5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5SZWdpc3RyeS5nZXRYTUwoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmluZCB0aGUgY3VycmVudCByZXBvc2l0b3J5IChmcm9tIHRoZSBjdXJyZW50IHVzZXIpIGFuZCBsb2FkIGl0LlxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmxvYWRBY3RpdmVSZXBvc2l0b3J5ID0gZnVuY3Rpb24gbG9hZEFjdGl2ZVJlcG9zaXRvcnkoKSB7XG4gICAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBfcmVwb3NpdG9yeU9iamVjdCA9IG5ldyBfbW9kZWxSZXBvc2l0b3J5MlsnZGVmYXVsdCddKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5sb2FkUmVwb3NpdG9yeShfcmVwb3NpdG9yeU9iamVjdCk7XG4gICAgICAgICAgICB0aGlzLmZpcmUoXCJyZXBvc2l0b3J5X2xpc3RfcmVmcmVzaGVkXCIsIHsgbGlzdDogZmFsc2UsIGFjdGl2ZTogZmFsc2UgfSk7XG4gICAgICAgICAgICB0aGlzLkNvbnRyb2xsZXIuZmlyZUFjdGlvbihcImxvZ2luXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJlcElkID0gdGhpcy51c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnkoKTtcbiAgICAgICAgdmFyIHJlcExpc3QgPSB0aGlzLnVzZXIuZ2V0UmVwb3NpdG9yaWVzTGlzdCgpO1xuICAgICAgICB2YXIgcmVwb3NpdG9yeU9iamVjdCA9IHJlcExpc3QuZ2V0KHJlcElkKTtcblxuICAgICAgICBpZiAoIXJlcG9zaXRvcnlPYmplY3QpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnVzZXIubG9jaykge1xuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzNC5Db250cm9sbGVyLmxvYWRBY3Rpb25zRnJvbVJlZ2lzdHJ5KF90aGlzNC5nZXRYbWxSZWdpc3RyeSgpKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxvY2sgPSBfdGhpczQudXNlci5sb2NrLnNwbGl0KFwiLFwiKS5zaGlmdCgpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczQuQ29udHJvbGxlci5maXJlQWN0aW9uKGxvY2spO1xuICAgICAgICAgICAgICAgICAgICB9LCAxNTApO1xuICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFsZXJ0KFwiTm8gYWN0aXZlIHJlcG9zaXRvcnkgZm91bmQgZm9yIHVzZXIhXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuQ29udHJvbGxlci5maXJlQWN0aW9uKFwibG9nb3V0XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudXNlci5nZXRQcmVmZXJlbmNlKFwicGVuZGluZ19mb2xkZXJcIikgJiYgdGhpcy51c2VyLmdldFByZWZlcmVuY2UoXCJwZW5kaW5nX2ZvbGRlclwiKSAhPT0gXCItMVwiKSB7XG5cbiAgICAgICAgICAgIHRoaXMuX2luaXRMb2FkUmVwID0gdGhpcy51c2VyLmdldFByZWZlcmVuY2UoXCJwZW5kaW5nX2ZvbGRlclwiKTtcbiAgICAgICAgICAgIHRoaXMudXNlci5zZXRQcmVmZXJlbmNlKFwicGVuZGluZ19mb2xkZXJcIiwgXCItMVwiKTtcbiAgICAgICAgICAgIHRoaXMudXNlci5zYXZlUHJlZmVyZW5jZShcInBlbmRpbmdfZm9sZGVyXCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNlciAmJiB0aGlzLlBhcmFtZXRlcnMuaGFzKCdTVEFSVF9GT0xERVInKSkge1xuICAgICAgICAgICAgdGhpcy5faW5pdExvYWRSZXAgPSB0aGlzLlBhcmFtZXRlcnMuZ2V0KCdTVEFSVF9GT0xERVInKTtcbiAgICAgICAgICAgIHRoaXMuUGFyYW1ldGVyc1snZGVsZXRlJ10oJ1NUQVJUX0ZPTERFUicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2FkUmVwb3NpdG9yeShyZXBvc2l0b3J5T2JqZWN0KTtcbiAgICAgICAgdGhpcy5maXJlKFwicmVwb3NpdG9yeV9saXN0X3JlZnJlc2hlZFwiLCB7IGxpc3Q6IHJlcExpc3QsIGFjdGl2ZTogcmVwSWQgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2ggdGhlIHJlcG9zaXRvcmllcyBsaXN0IGZvciB0aGUgY3VycmVudCB1c2VyXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUucmVsb2FkUmVwb3NpdG9yaWVzTGlzdCA9IGZ1bmN0aW9uIHJlbG9hZFJlcG9zaXRvcmllc0xpc3QoKSB7XG4gICAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gICAgICAgIGlmICghdGhpcy51c2VyKSByZXR1cm47XG4gICAgICAgIHRoaXMub2JzZXJ2ZU9uY2UoXCJyZWdpc3RyeV9wYXJ0X2xvYWRlZFwiLCBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgaWYgKGRhdGEgIT09IFwidXNlci9yZXBvc2l0b3JpZXNcIikgcmV0dXJuO1xuICAgICAgICAgICAgX3RoaXM1LnVwZGF0ZVVzZXIoX3RoaXM1LlJlZ2lzdHJ5LnBhcnNlVXNlcigpKTtcbiAgICAgICAgICAgIGlmIChfdGhpczUudXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCkuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIF90aGlzNS5sb2FkWG1sUmVnaXN0cnkoKTsgLy8gVXNlciBtYXliZSBsb2NrZXQgb3V0IFJlbG9hZCBmdWxsIHJlZ2lzdHJ5IG5vdyFcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF90aGlzNS5maXJlKFwicmVwb3NpdG9yeV9saXN0X3JlZnJlc2hlZFwiLCB7XG4gICAgICAgICAgICAgICAgbGlzdDogX3RoaXM1LnVzZXIuZ2V0UmVwb3NpdG9yaWVzTGlzdCgpLFxuICAgICAgICAgICAgICAgIGFjdGl2ZTogX3RoaXM1LnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeSgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9hZFhtbFJlZ2lzdHJ5KFwidXNlci9yZXBvc2l0b3JpZXNcIik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBSZXBvc2l0b3J5IGluc3RhbmNlXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnkgUmVwb3NpdG9yeVxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmxvYWRSZXBvc2l0b3J5ID0gZnVuY3Rpb24gbG9hZFJlcG9zaXRvcnkocmVwb3NpdG9yeSkge1xuICAgICAgICB2YXIgX3RoaXM2ID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5yZXBvc2l0b3J5SWQgIT0gbnVsbCAmJiB0aGlzLnJlcG9zaXRvcnlJZCA9PT0gcmVwb3NpdG9yeS5nZXRJZCgpKSB7XG4gICAgICAgICAgICBfbGFuZ0xvZ2dlcjJbJ2RlZmF1bHQnXS5kZWJ1ZygnUmVwb3NpdG9yeSBhbHJlYWR5IGxvYWRlZCwgZG8gbm90aGluZycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIuc2V0U2VsZWN0ZWROb2RlcyhbXSk7XG4gICAgICAgIGlmIChyZXBvc2l0b3J5ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByZXBvc2l0b3J5LmxvYWRSZXNvdXJjZXMoKTtcbiAgICAgICAgdmFyIHJlcG9zaXRvcnlJZCA9IHJlcG9zaXRvcnkuZ2V0SWQoKTtcbiAgICAgICAgdmFyIG5ld0ljb24gPSByZXBvc2l0b3J5LmdldEljb24oKTtcblxuICAgICAgICB2YXIgcHJvdmlkZXJEZWYgPSByZXBvc2l0b3J5LmdldE5vZGVQcm92aWRlckRlZigpO1xuICAgICAgICB2YXIgcm9vdE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChwcm92aWRlckRlZiA9PSBudWxsKSB7XG4gICAgICAgICAgICByb290Tm9kZSA9IG5ldyBfbW9kZWxBanhwTm9kZTJbJ2RlZmF1bHQnXShcIi9cIiwgZmFsc2UsIHJlcG9zaXRvcnkuZ2V0TGFiZWwoKSwgbmV3SWNvbik7XG4gICAgICAgICAgICAvLyBEZWZhdWx0XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnNldEFqeHBOb2RlUHJvdmlkZXIobmV3IF9tb2RlbEVtcHR5Tm9kZVByb3ZpZGVyMlsnZGVmYXVsdCddKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHByb3ZpZGVyQ2xhc3MgPSB3aW5kb3dbcHJvdmlkZXJEZWYubmFtZV07XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXIgPSBuZXcgcHJvdmlkZXJDbGFzcygpO1xuICAgICAgICAgICAgaWYgKHByb3ZpZGVyRGVmLm9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlci5pbml0UHJvdmlkZXIocHJvdmlkZXJEZWYub3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnNldEFqeHBOb2RlUHJvdmlkZXIocHJvdmlkZXIpO1xuICAgICAgICAgICAgcm9vdE5vZGUgPSBuZXcgX21vZGVsQWp4cE5vZGUyWydkZWZhdWx0J10oXCIvXCIsIGZhbHNlLCByZXBvc2l0b3J5LmdldExhYmVsKCksIG5ld0ljb24sIHByb3ZpZGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpbml0TG9hZFJlcCA9IHRoaXMuX2luaXRMb2FkUmVwICYmIHRoaXMuX2luaXRMb2FkUmVwICE9PSAnLycgPyB0aGlzLl9pbml0TG9hZFJlcC52YWx1ZU9mKCkgOiBudWxsO1xuICAgICAgICB2YXIgZmlyc3RMb2FkT2JzID0gZnVuY3Rpb24gZmlyc3RMb2FkT2JzKCkge307XG4gICAgICAgIGlmIChpbml0TG9hZFJlcCkge1xuICAgICAgICAgICAgZmlyc3RMb2FkT2JzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzNi5nb1RvKGluaXRMb2FkUmVwKTtcbiAgICAgICAgICAgICAgICBfdGhpczYuX2luaXRMb2FkUmVwID0gbnVsbDtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnNldFJvb3ROb2RlKHJvb3ROb2RlKTtcbiAgICAgICAgcm9vdE5vZGUub2JzZXJ2ZU9uY2UoJ2ZpcnN0X2xvYWQnLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5fY29udGV4dEhvbGRlci5ub3RpZnkoJ2NvbnRleHRfY2hhbmdlZCcsIHJvb3ROb2RlKTtcbiAgICAgICAgICAgIHRoaXMuQ29udHJvbGxlci5maXJlQ29udGV4dENoYW5nZSgpO1xuICAgICAgICAgICAgZmlyc3RMb2FkT2JzKCk7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLnJlcG9zaXRvcnlJZCA9IHJlcG9zaXRvcnlJZDtcbiAgICAgICAgcm9vdE5vZGUubG9hZCgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXF1aXJlIGEgY29udGV4dCBjaGFuZ2UgdG8gdGhlIGdpdmVuIHBhdGhcbiAgICAgKiBAcGFyYW0gbm9kZU9yUGF0aCBBanhwTm9kZXxTdHJpbmcgQSBub2RlIG9yIGEgcGF0aFxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmdvVG8gPSBmdW5jdGlvbiBnb1RvKG5vZGVPclBhdGgpIHtcbiAgICAgICAgdmFyIGdvdG9Ob2RlID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgcGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHR5cGVvZiBub2RlT3JQYXRoID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBwYXRoID0gbm9kZU9yUGF0aDtcbiAgICAgICAgICAgIGdvdG9Ob2RlID0gbmV3IF9tb2RlbEFqeHBOb2RlMlsnZGVmYXVsdCddKG5vZGVPclBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ290b05vZGUgPSBub2RlT3JQYXRoO1xuICAgICAgICAgICAgcGF0aCA9IGdvdG9Ob2RlLmdldFBhdGgoKTtcbiAgICAgICAgICAgIGlmIChub2RlT3JQYXRoLmdldE1ldGFkYXRhKCkuaGFzKFwicmVwb3NpdG9yeV9pZFwiKSAmJiBub2RlT3JQYXRoLmdldE1ldGFkYXRhKCkuZ2V0KFwicmVwb3NpdG9yeV9pZFwiKSAhPT0gdGhpcy5yZXBvc2l0b3J5SWQgJiYgbm9kZU9yUGF0aC5nZXRBanhwTWltZSgpICE9PSBcInJlcG9zaXRvcnlcIiAmJiBub2RlT3JQYXRoLmdldEFqeHBNaW1lKCkgIT09IFwicmVwb3NpdG9yeV9lZGl0YWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIuc2V0UHJlZmVyZW5jZShcInBlbmRpbmdfZm9sZGVyXCIsIG5vZGVPclBhdGguZ2V0UGF0aCgpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdExvYWRSZXAgPSBub2RlT3JQYXRoLmdldFBhdGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyUmVwb3NpdG9yeUNoYW5nZShub2RlT3JQYXRoLmdldE1ldGFkYXRhKCkuZ2V0KFwicmVwb3NpdG9yeV9pZFwiKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9yZXBvc2l0b3J5Q3VycmVudGx5U3dpdGNoaW5nICYmIHRoaXMudXNlcikge1xuICAgICAgICAgICAgdGhpcy51c2VyLnNldFByZWZlcmVuY2UoXCJwZW5kaW5nX2ZvbGRlclwiLCBnb3RvTm9kZS5nZXRQYXRoKCkpO1xuICAgICAgICAgICAgdGhpcy5faW5pdExvYWRSZXAgPSBnb3RvTm9kZS5nZXRQYXRoKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGN1cnJlbnQgPSB0aGlzLl9jb250ZXh0SG9sZGVyLmdldENvbnRleHROb2RlKCk7XG4gICAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQuZ2V0UGF0aCgpID09PSBwYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGggPT09IFwiXCIgfHwgcGF0aCA9PT0gXCIvXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIucmVxdWlyZUNvbnRleHRDaGFuZ2UodGhpcy5fY29udGV4dEhvbGRlci5nZXRSb290Tm9kZSgpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdvdG9Ob2RlID0gZ290b05vZGUuZmluZEluQXJibyh0aGlzLl9jb250ZXh0SG9sZGVyLmdldFJvb3ROb2RlKCkpO1xuICAgICAgICAgICAgaWYgKGdvdG9Ob2RlKSB7XG4gICAgICAgICAgICAgICAgLy8gTm9kZSBpcyBhbHJlYWR5IGhlcmVcbiAgICAgICAgICAgICAgICBpZiAoZ290b05vZGUuaXNCcm93c2FibGUoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnJlcXVpcmVDb250ZXh0Q2hhbmdlKGdvdG9Ob2RlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnNldFBlbmRpbmdTZWxlY3Rpb24oX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QmFzZW5hbWUocGF0aCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnJlcXVpcmVDb250ZXh0Q2hhbmdlKGdvdG9Ob2RlLmdldFBhcmVudCgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIENoZWNrIG9uIHNlcnZlciBpZiBpdCBkb2VzIGV4aXN0LCB0aGVuIGxvYWRcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLmxvYWRQYXRoSW5mb0FzeW5jKHBhdGgsIChmdW5jdGlvbiAoZm91bmROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZE5vZGUuaXNCcm93c2FibGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ290b05vZGUgPSBmb3VuZE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnNldFBlbmRpbmdTZWxlY3Rpb24oX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QmFzZW5hbWUocGF0aCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ290b05vZGUgPSBuZXcgX21vZGVsQWp4cE5vZGUyWydkZWZhdWx0J10oX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0RGlybmFtZShwYXRoKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGV4dEhvbGRlci5yZXF1aXJlQ29udGV4dENoYW5nZShnb3RvTm9kZSk7XG4gICAgICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSByZXBvc2l0b3J5IG9mIHRoZSBjdXJyZW50IHVzZXIgYW5kIHJlbG9hZCBsaXN0IGFuZCBjdXJyZW50LlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5SWQgU3RyaW5nIElkIG9mIHRoZSBuZXcgcmVwb3NpdG9yeVxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBGdW5jdGlvblxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLnRyaWdnZXJSZXBvc2l0b3J5Q2hhbmdlID0gZnVuY3Rpb24gdHJpZ2dlclJlcG9zaXRvcnlDaGFuZ2UocmVwb3NpdG9yeUlkKSB7XG4gICAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgdGhpcy5maXJlKFwidHJpZ2dlcl9yZXBvc2l0b3J5X3N3aXRjaFwiKTtcbiAgICAgICAgdGhpcy5SZWdpc3RyeS5sb2FkKG51bGwsIGNhbGxiYWNrLCByZXBvc2l0b3J5SWQpO1xuICAgIH07XG5cbiAgICBQeWRpby5wcm90b3R5cGUuZ2V0UGx1Z2luQ29uZmlncyA9IGZ1bmN0aW9uIGdldFBsdWdpbkNvbmZpZ3MocGx1Z2luUXVlcnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUmVnaXN0cnkuZ2V0UGx1Z2luQ29uZmlncyhwbHVnaW5RdWVyeSk7XG4gICAgfTtcblxuICAgIFB5ZGlvLnByb3RvdHlwZS5saXN0TGFuZ3VhZ2VzV2l0aENhbGxiYWNrID0gZnVuY3Rpb24gbGlzdExhbmd1YWdlc1dpdGhDYWxsYmFjayhjYWxsYmFjaykge1xuICAgICAgICB2YXIgbGFuZ3MgPSB0aGlzLlBhcmFtZXRlcnMuZ2V0KFwiYXZhaWxhYmxlTGFuZ3VhZ2VzXCIpIHx8IHsgXCJlblwiOiBcIkRlZmF1bHRcIiB9O1xuICAgICAgICB2YXIgY3VycmVudCA9IHRoaXMuY3VycmVudExhbmd1YWdlO1xuICAgICAgICBPYmplY3Qua2V5cyhsYW5ncykuc29ydCgpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBjYWxsYmFjayhrZXksIGxhbmdzW2tleV0sIGN1cnJlbnQgPT09IGtleSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZWxvYWQgYWxsIG1lc3NhZ2VzIGZyb20gc2VydmVyIGFuZCB0cmlnZ2VyIHVwZGF0ZUkxOG5UYWdzXG4gICAgICogQHBhcmFtIG5ld0xhbmd1YWdlIFN0cmluZ1xuICAgICAqIEBwYXJhbSByZWxvYWRSZWdpc3RyeSBib29sXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUubG9hZEkxOE5NZXNzYWdlcyA9IGZ1bmN0aW9uIGxvYWRJMThOTWVzc2FnZXMobmV3TGFuZ3VhZ2UpIHtcbiAgICAgICAgdmFyIHJlbG9hZFJlZ2lzdHJ5ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB0aGlzLkFwaUNsaWVudC5zd2l0Y2hMYW5ndWFnZShuZXdMYW5ndWFnZSwgKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuTWVzc2FnZUhhc2ggPSBkYXRhO1xuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cgJiYgd2luZG93Lk1lc3NhZ2VIYXNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5NZXNzYWdlSGFzaCA9IHRoaXMuTWVzc2FnZUhhc2g7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLk1lc3NhZ2VIYXNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLk1lc3NhZ2VIYXNoLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuTWVzc2FnZUhhc2hba2V5XSA9IHRoaXMuTWVzc2FnZUhhc2hba2V5XS5yZXBsYWNlKFwiXFxcXG5cIiwgXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZnkoXCJsYW5ndWFnZVwiLCBuZXdMYW5ndWFnZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5Db250cm9sbGVyLnJlZnJlc2hHdWlBY3Rpb25zSTE4bigpO1xuICAgICAgICAgICAgICAgIGlmIChyZWxvYWRSZWdpc3RyeSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRYbWxSZWdpc3RyeSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLlVJLnJlZnJlc2hUZW1wbGF0ZVBhcnRzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dFJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IG5ld0xhbmd1YWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBtYWluIGNvbnRyb2xsZXJcbiAgICAgKiBAcmV0dXJucyBBY3Rpb25NYW5hZ2VyXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUuZ2V0Q29udHJvbGxlciA9IGZ1bmN0aW9uIGdldENvbnRyb2xsZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLkNvbnRyb2xsZXI7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgYW4gaW5mb3JtYXRpb24gb3IgZXJyb3IgbWVzc2FnZSB0byB0aGUgdXNlclxuICAgICAqIEBwYXJhbSBtZXNzYWdlVHlwZSBTdHJpbmcgRVJST1Igb3IgU1VDQ0VTU1xuICAgICAqIEBwYXJhbSBtZXNzYWdlIFN0cmluZyB0aGUgbWVzc2FnZVxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmRpc3BsYXlNZXNzYWdlID0gZnVuY3Rpb24gZGlzcGxheU1lc3NhZ2UobWVzc2FnZVR5cGUsIG1lc3NhZ2UpIHtcbiAgICAgICAgdmFyIHVybHMgPSBfdXRpbExhbmdVdGlsczJbJ2RlZmF1bHQnXS5wYXJzZVVybChtZXNzYWdlKTtcbiAgICAgICAgaWYgKHVybHMubGVuZ3RoICYmIHRoaXMudXNlciAmJiB0aGlzLnVzZXIucmVwb3NpdG9yaWVzKSB7XG4gICAgICAgICAgICB1cmxzLmZvckVhY2goKGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHZhciByZXBvID0gdGhpcy51c2VyLnJlcG9zaXRvcmllcy5nZXQobWF0Y2guaG9zdCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXBvKSByZXR1cm47XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShtYXRjaC51cmwsIHJlcG8ubGFiZWwgKyBcIjpcIiArIG1hdGNoLnBhdGggKyBtYXRjaC5maWxlKTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZXNzYWdlVHlwZSA9PT0gJ0VSUk9SJykgX2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IobWVzc2FnZSk7ZWxzZSBfbGFuZ0xvZ2dlcjJbJ2RlZmF1bHQnXS5sb2cobWVzc2FnZSk7XG4gICAgICAgIGlmICh0aGlzLlVJKSB7XG4gICAgICAgICAgICB0aGlzLlVJLmRpc3BsYXlNZXNzYWdlKG1lc3NhZ2VUeXBlLCBtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogICAgICAgICAgUFJPWFkgTUVUSE9EUyBGT1IgREFUQU1PREVMXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgLyoqXG4gICAgICogQWNjZXNzb3IgZm9yIHVwZGF0aW5nIHRoZSBkYXRhbW9kZWwgY29udGV4dFxuICAgICAqIEBwYXJhbSBhanhwQ29udGV4dE5vZGUgQWp4cE5vZGVcbiAgICAgKiBAcGFyYW0gYWp4cFNlbGVjdGVkTm9kZXMgQWp4cE5vZGVbXVxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25Tb3VyY2UgU3RyaW5nXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUudXBkYXRlQ29udGV4dERhdGEgPSBmdW5jdGlvbiB1cGRhdGVDb250ZXh0RGF0YShhanhwQ29udGV4dE5vZGUsIGFqeHBTZWxlY3RlZE5vZGVzLCBzZWxlY3Rpb25Tb3VyY2UpIHtcbiAgICAgICAgaWYgKGFqeHBDb250ZXh0Tm9kZSkge1xuICAgICAgICAgICAgdGhpcy5fY29udGV4dEhvbGRlci5yZXF1aXJlQ29udGV4dENoYW5nZShhanhwQ29udGV4dE5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhanhwU2VsZWN0ZWROb2Rlcykge1xuICAgICAgICAgICAgdGhpcy5fY29udGV4dEhvbGRlci5zZXRTZWxlY3RlZE5vZGVzKGFqeHBTZWxlY3RlZE5vZGVzLCBzZWxlY3Rpb25Tb3VyY2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFB5ZGlvRGF0YU1vZGVsXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUuZ2V0Q29udGV4dEhvbGRlciA9IGZ1bmN0aW9uIGdldENvbnRleHRIb2xkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0SG9sZGVyO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBBanhwTm9kZVxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmdldENvbnRleHROb2RlID0gZnVuY3Rpb24gZ2V0Q29udGV4dE5vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0SG9sZGVyLmdldENvbnRleHROb2RlKCkgfHwgbmV3IF9tb2RlbEFqeHBOb2RlMlsnZGVmYXVsdCddKFwiXCIpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBQeWRpb0RhdGFNb2RlbFxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmdldFVzZXJTZWxlY3Rpb24gPSBmdW5jdGlvbiBnZXRVc2VyU2VsZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dEhvbGRlcjtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWNjZXNzb3IgZm9yIGRhdGFtb2RlbC5yZXF1aXJlQ29udGV4dENoYW5nZSgpXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUuZmlyZUNvbnRleHRSZWZyZXNoID0gZnVuY3Rpb24gZmlyZUNvbnRleHRSZWZyZXNoKCkge1xuICAgICAgICB0aGlzLmdldENvbnRleHRIb2xkZXIoKS5yZXF1aXJlQ29udGV4dENoYW5nZSh0aGlzLmdldENvbnRleHROb2RlKCksIHRydWUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NvciBmb3IgZGF0YW1vZGVsLnJlcXVpcmVDb250ZXh0Q2hhbmdlKClcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5maXJlTm9kZVJlZnJlc2ggPSBmdW5jdGlvbiBmaXJlTm9kZVJlZnJlc2gobm9kZVBhdGhPck5vZGUsIGNvbXBsZXRlQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5nZXRDb250ZXh0SG9sZGVyKCkucmVxdWlyZU5vZGVSZWxvYWQobm9kZVBhdGhPck5vZGUsIGNvbXBsZXRlQ2FsbGJhY2spO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NvciBmb3IgZGF0YW1vZGVsLnJlcXVpcmVDb250ZXh0Q2hhbmdlKClcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5maXJlQ29udGV4dFVwID0gZnVuY3Rpb24gZmlyZUNvbnRleHRVcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0Q29udGV4dE5vZGUoKS5pc1Jvb3QoKSkgcmV0dXJuO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHREYXRhKHRoaXMuZ2V0Q29udGV4dE5vZGUoKS5nZXRQYXJlbnQoKSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFByb3h5IHRvIFJlc291cmNlc01hbmFnZXIucmVxdWlyZUxpYiBmb3IgZWFzZSBvZiB3cml0aW5nXG4gICAgICogQHBhcmFtIG1vZHVsZVxuICAgICAqIEBwYXJhbSBwcm9taXNlXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG5cbiAgICBQeWRpby5yZXF1aXJlTGliID0gZnVuY3Rpb24gcmVxdWlyZUxpYihtb2R1bGUpIHtcbiAgICAgICAgdmFyIHByb21pc2UgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICByZXR1cm4gcmVxdWlyZSgncHlkaW8vaHR0cC9yZXNvdXJjZXMtbWFuYWdlcicpLnJlcXVpcmVMaWIobW9kdWxlLCBwcm9taXNlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIHVuaXF1ZSBpbnN0YW5jZSBvZiBweWRpbyBvYmplY3RcbiAgICAgKiBAcmV0dXJuIHsqfG51bGx9XG4gICAgICovXG5cbiAgICBQeWRpby5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uIGdldEluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gUHlkaW8uaW5zdGFuY2U7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIERpcmVjdCBhY2Nlc3MgdG8gdW5pcXVlIGluc3RhbmNlIE1lc3NhZ2VIYXNoXG4gICAgICogQHJldHVybiB7e319XG4gICAgICovXG5cbiAgICBQeWRpby5nZXRNZXNzYWdlcyA9IGZ1bmN0aW9uIGdldE1lc3NhZ2VzKCkge1xuICAgICAgICByZXR1cm4gUHlkaW8uaW5zdGFuY2UgPyBQeWRpby5pbnN0YW5jZS5NZXNzYWdlSGFzaCA6IHt9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZW5kIG5vdGlmaWNhdGlvbiB0byBkaXNwbGF5IGxvYWRlclxuICAgICAqL1xuXG4gICAgUHlkaW8uc3RhcnRMb2FkaW5nID0gZnVuY3Rpb24gc3RhcnRMb2FkaW5nKCkge1xuICAgICAgICBQeWRpby5pbnN0YW5jZS5ub3RpZnkoXCJjb25uZWN0aW9uLXN0YXJ0XCIpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZW5kIG5vdGlmaWNhdGlvbiB0byBoaWRlIGxvYWRlclxuICAgICAqL1xuXG4gICAgUHlkaW8uZW5kTG9hZGluZyA9IGZ1bmN0aW9uIGVuZExvYWRpbmcoKSB7XG4gICAgICAgIFB5ZGlvLmluc3RhbmNlLm5vdGlmeShcImNvbm5lY3Rpb24tZW5kXCIpO1xuICAgIH07XG5cbiAgICByZXR1cm4gUHlkaW87XG59KShfbGFuZ09ic2VydmFibGUyWydkZWZhdWx0J10pO1xuXG5QeWRpby5pbnN0YW5jZSA9IG51bGw7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFB5ZGlvO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxOCBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF91dGlsWE1MVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL1hNTFV0aWxzJyk7XG5cbnZhciBfdXRpbFhNTFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxYTUxVdGlscyk7XG5cbi8qKlxuICogUHlkaW8gZW5jYXBzdWxhdGlvbiBvZiBYSFIgLyBGZXRjaFxuICovXG5yZXF1aXJlKCd3aGF0d2ctZmV0Y2gnKTtcblxudmFyIENvbm5leGlvbiA9IChmdW5jdGlvbiAoKSB7XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBiYXNlVXJsIFN0cmluZyBUaGUgYmFzZSB1cmwgZm9yIHNlcnZpY2VzXG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBDb25uZXhpb24oYmFzZVVybCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29ubmV4aW9uKTtcblxuICAgICAgICB0aGlzLl9weWRpbyA9IHdpbmRvdy5weWRpbztcbiAgICAgICAgdGhpcy5fYmFzZVVybCA9IGJhc2VVcmwgfHwgd2luZG93LmFqeHBTZXJ2ZXJBY2Nlc3NQYXRoO1xuICAgICAgICB0aGlzLl9saWJVcmwgPSB3aW5kb3cuYWp4cFJlc291cmNlc0ZvbGRlciArICcvYnVpbGQnO1xuICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLl9tZXRob2QgPSAncG9zdCc7XG4gICAgICAgIHRoaXMuZGlzY3JldGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBDb25uZXhpb24udXBkYXRlU2VydmVyQWNjZXNzID0gZnVuY3Rpb24gdXBkYXRlU2VydmVyQWNjZXNzKHBhcmFtZXRlcnMpIHtcblxuICAgICAgICBpZiAocGFyYW1ldGVycy5nZXQoJ1NFQ1VSRV9UT0tFTicpKSB7XG4gICAgICAgICAgICBDb25uZXhpb24uU0VDVVJFX1RPS0VOID0gcGFyYW1ldGVycy5nZXQoJ1NFQ1VSRV9UT0tFTicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzZXJ2ZXJBY2Nlc3NQYXRoID0gcGFyYW1ldGVycy5nZXQoJ2FqeHBTZXJ2ZXJBY2Nlc3MnKS5zcGxpdCgnPycpLnNoaWZ0KCk7XG4gICAgICAgIGlmIChwYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BSRUZJWF9VUkknKSkge1xuICAgICAgICAgICAgcGFyYW1ldGVycy5zZXQoJ2FqeHBSZXNvdXJjZXNGb2xkZXInLCBwYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BSRUZJWF9VUkknKSArIHBhcmFtZXRlcnMuZ2V0KCdhanhwUmVzb3VyY2VzRm9sZGVyJykpO1xuICAgICAgICAgICAgc2VydmVyQWNjZXNzUGF0aCA9IHBhcmFtZXRlcnMuZ2V0KCdTRVJWRVJfUFJFRklYX1VSSScpICsgc2VydmVyQWNjZXNzUGF0aCArICc/JyArIChDb25uZXhpb24uU0VDVVJFX1RPS0VOID8gJ3NlY3VyZV90b2tlbj0nICsgQ29ubmV4aW9uLlNFQ1VSRV9UT0tFTiA6ICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlcnZlckFjY2Vzc1BhdGggPSBzZXJ2ZXJBY2Nlc3NQYXRoICsgJz8nICsgKENvbm5leGlvbi5TRUNVUkVfVE9LRU4gPyAnc2VjdXJlX3Rva2VuPScgKyBDb25uZXhpb24uU0VDVVJFX1RPS0VOIDogJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BFUk1BTkVOVF9QQVJBTVMnKSkge1xuICAgICAgICAgICAgdmFyIHBlcm1QYXJhbXMgPSBwYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BFUk1BTkVOVF9QQVJBTVMnKTtcbiAgICAgICAgICAgIHZhciBwZXJtU3RyaW5ncyA9IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgcGVybWFuZW50IGluIHBlcm1QYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBpZiAocGVybVBhcmFtcy5oYXNPd25Qcm9wZXJ0eShwZXJtYW5lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBlcm1TdHJpbmdzLnB1c2gocGVybWFuZW50ICsgJz0nICsgcGVybVBhcmFtc1twZXJtYW5lbnRdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwZXJtU3RyaW5ncyA9IHBlcm1TdHJpbmdzLmpvaW4oJyYnKTtcbiAgICAgICAgICAgIGlmIChwZXJtU3RyaW5ncykge1xuICAgICAgICAgICAgICAgIHNlcnZlckFjY2Vzc1BhdGggKz0gJyYnICsgcGVybVN0cmluZ3M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwYXJhbWV0ZXJzLnNldCgnYWp4cFNlcnZlckFjY2VzcycsIHNlcnZlckFjY2Vzc1BhdGgpO1xuICAgICAgICAvLyBCQUNLV0FSRCBDT01QQVRcbiAgICAgICAgd2luZG93LmFqeHBTZXJ2ZXJBY2Nlc3NQYXRoID0gc2VydmVyQWNjZXNzUGF0aDtcbiAgICAgICAgaWYgKHdpbmRvdy5weWRpb0Jvb3RzdHJhcCAmJiB3aW5kb3cucHlkaW9Cb290c3RyYXAucGFyYW1ldGVycykge1xuICAgICAgICAgICAgcHlkaW9Cb290c3RyYXAucGFyYW1ldGVycy5zZXQoXCJhanhwU2VydmVyQWNjZXNzXCIsIHNlcnZlckFjY2Vzc1BhdGgpO1xuICAgICAgICAgICAgcHlkaW9Cb290c3RyYXAucGFyYW1ldGVycy5zZXQoXCJTRUNVUkVfVE9LRU5cIiwgQ29ubmV4aW9uLlNFQ1VSRV9UT0tFTik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ29ubmV4aW9uLmxvZyA9IGZ1bmN0aW9uIGxvZyhhY3Rpb24sIHN5bmNTdGF0dXMpIHtcbiAgICAgICAgaWYgKCFDb25uZXhpb24uUHlkaW9Mb2dzKSB7XG4gICAgICAgICAgICBDb25uZXhpb24uUHlkaW9Mb2dzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgQ29ubmV4aW9uLlB5ZGlvTG9ncy5wdXNoKHsgYWN0aW9uOiBhY3Rpb24sIHN5bmM6IHN5bmNTdGF0dXMgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgcXVlcnkgbWV0aG9kIChnZXQgcG9zdClcbiAgICAgKiBAcGFyYW0gbWV0aG9kIFN0cmluZ1xuICAgICAqL1xuXG4gICAgQ29ubmV4aW9uLnByb3RvdHlwZS5zZXRNZXRob2QgPSBmdW5jdGlvbiBzZXRNZXRob2QobWV0aG9kKSB7XG4gICAgICAgIHRoaXMuX21ldGhvZCA9IG1ldGhvZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2hvdyBhIHNtYWxsIGxvYWRlclxuICAgICAqL1xuXG4gICAgQ29ubmV4aW9uLnByb3RvdHlwZS5zaG93TG9hZGVyID0gZnVuY3Rpb24gc2hvd0xvYWRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzY3JldGUgfHwgIXRoaXMuX3B5ZGlvKSByZXR1cm47XG4gICAgICAgIHRoaXMuX3B5ZGlvLm5vdGlmeShcImNvbm5lY3Rpb24tc3RhcnRcIik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEhpZGUgYSBzbWFsbCBsb2FkZXJcbiAgICAgKi9cblxuICAgIENvbm5leGlvbi5wcm90b3R5cGUuaGlkZUxvYWRlciA9IGZ1bmN0aW9uIGhpZGVMb2FkZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2NyZXRlIHx8ICF0aGlzLl9weWRpbykgcmV0dXJuO1xuICAgICAgICB0aGlzLl9weWRpby5ub3RpZnkoXCJjb25uZWN0aW9uLWVuZFwiKTtcbiAgICB9O1xuXG4gICAgQ29ubmV4aW9uLnByb3RvdHlwZS5zZW5kID0gZnVuY3Rpb24gc2VuZCgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB0aGlzLnNob3dMb2FkZXIoKTtcbiAgICAgICAgdmFyIG9UaGlzID0gdGhpcztcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBtZXRob2Q6IHRoaXMuX21ldGhvZCxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nXG4gICAgICAgIH07XG4gICAgICAgIHZhciB1cmwgPSB0aGlzLl9iYXNlVXJsO1xuICAgICAgICB2YXIgYm9keVBhcnRzID0gW107XG4gICAgICAgIHRoaXMuX3BhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5tYXAoZnVuY3Rpb24gKG9uZVYpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9keVBhcnRzLnB1c2goa2V5ICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG9uZVYpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYm9keVBhcnRzLnB1c2goa2V5ICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSBib2R5UGFydHMuam9pbignJicpO1xuICAgICAgICBpZiAodGhpcy5fbWV0aG9kID09PSAncG9zdCcpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuaGVhZGVycyA9IHsgXCJDb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLThcIiB9O1xuICAgICAgICAgICAgb3B0aW9ucy5ib2R5ID0gcXVlcnlTdHJpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cmwgKz0gKHVybC5pbmRleE9mKCc/JykgPiAtMSA/ICcmJyA6ICc/JykgKyBxdWVyeVN0cmluZztcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuZmV0Y2godXJsLCBvcHRpb25zKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuXG4gICAgICAgICAgICB2YXIgaCA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LXR5cGUnKTtcbiAgICAgICAgICAgIGlmIChoLmluZGV4T2YoJy9qc29uJykgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuanNvbigpLnRoZW4oZnVuY3Rpb24gKGpzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgb1RoaXMuYXBwbHlDb21wbGV0ZSh7IHJlc3BvbnNlSlNPTjoganNvbiB9LCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGguaW5kZXhPZignL3htbCcpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLnRleHQoKS50aGVuKGZ1bmN0aW9uICh0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIG9UaGlzLmFwcGx5Q29tcGxldGUoeyByZXNwb25zZVhNTDogX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5wYXJzZVhtbCh0ZXh0KSB9LCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLnRleHQoKS50aGVuKGZ1bmN0aW9uICh0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIG9UaGlzLmFwcGx5Q29tcGxldGUoeyByZXNwb25zZVRleHQ6IHRleHQgfSwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChfdGhpcy5fcHlkaW8pIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5fcHlkaW8uZGlzcGxheU1lc3NhZ2UoJ0VSUk9SJywgJ05ldHdvcmsgZXJyb3IgJyArIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQXBwbHkgdGhlIGNvbXBsZXRlIGNhbGxiYWNrLCB0cnkgdG8gZ3JhYiBtYXhpbXVtIG9mIGVycm9yc1xuICAgICAqIEBwYXJhbSBwYXJzZWRCb2R5IFRyYW5zcG90XG4gICAgICovXG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLmFwcGx5Q29tcGxldGUgPSBmdW5jdGlvbiBhcHBseUNvbXBsZXRlKHBhcnNlZEJvZHksIHJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMuaGlkZUxvYWRlcigpO1xuICAgICAgICB2YXIgcHlkaW8gPSB0aGlzLl9weWRpbztcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICB0b2tlbk1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciB0b2sxID0gXCJPb29wcywgaXQgc2VlbXMgdGhhdCB5b3VyIHNlY3VyaXR5IHRva2VuIGhhcyBleHBpcmVkISBQbGVhc2UgJXMgYnkgaGl0dGluZyByZWZyZXNoIG9yIEY1IGluIHlvdXIgYnJvd3NlciFcIjtcbiAgICAgICAgdmFyIHRvazIgPSBcInJlbG9hZCB0aGUgcGFnZVwiO1xuICAgICAgICBpZiAod2luZG93Lk1lc3NhZ2VIYXNoICYmIHdpbmRvdy5NZXNzYWdlSGFzaFs0MzddKSB7XG4gICAgICAgICAgICB0b2sxID0gd2luZG93Lk1lc3NhZ2VIYXNoWzQzN107XG4gICAgICAgICAgICB0b2syID0gd2luZG93Lk1lc3NhZ2VIYXNoWzQzOF07XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW5NZXNzYWdlID0gdG9rMS5yZXBsYWNlKFwiJXNcIiwgXCI8YSBocmVmPSdqYXZhc2NyaXB0OmRvY3VtZW50LmxvY2F0aW9uLnJlbG9hZCgpJyBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Jz5cIiArIHRvazIgKyBcIjwvYT5cIik7XG5cbiAgICAgICAgdmFyIGN0eXBlID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtdHlwZScpO1xuICAgICAgICBpZiAocGFyc2VkQm9keS5yZXNwb25zZVhNTCAmJiBwYXJzZWRCb2R5LnJlc3BvbnNlWE1MLmRvY3VtZW50RWxlbWVudCAmJiBwYXJzZWRCb2R5LnJlc3BvbnNlWE1MLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZSA9PSBcInBhcnNlcmVycm9yXCIpIHtcblxuICAgICAgICAgICAgbWVzc2FnZSA9IFwiUGFyc2luZyBlcnJvciA6IFxcblwiICsgcGFyc2VkQm9keS5yZXNwb25zZVhNTC5kb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZC50ZXh0Q29udGVudDtcbiAgICAgICAgfSBlbHNlIGlmIChwYXJzZWRCb2R5LnJlc3BvbnNlWE1MICYmIHBhcnNlZEJvZHkucmVzcG9uc2VYTUwucGFyc2VFcnJvciAmJiBwYXJzZWRCb2R5LnJlc3BvbnNlWE1MLnBhcnNlRXJyb3IuZXJyb3JDb2RlICE9IDApIHtcblxuICAgICAgICAgICAgbWVzc2FnZSA9IFwiUGFyc2luZyBFcnJvciA6IFxcblwiICsgcGFyc2VkQm9keS5yZXNwb25zZVhNTC5wYXJzZUVycm9yLnJlYXNvbjtcbiAgICAgICAgfSBlbHNlIGlmIChjdHlwZS5pbmRleE9mKFwidGV4dC94bWxcIikgPiAtMSAmJiBwYXJzZWRCb2R5LnJlc3BvbnNlWE1MID09IG51bGwpIHtcblxuICAgICAgICAgICAgbWVzc2FnZSA9IFwiRXhwZWN0ZWQgWE1MIGJ1dCBnb3QgZW1wdHkgcmVzcG9uc2UhXCI7XG4gICAgICAgIH0gZWxzZSBpZiAoY3R5cGUuaW5kZXhPZihcInRleHQveG1sXCIpID09IC0xICYmIGN0eXBlLmluZGV4T2YoXCJhcHBsaWNhdGlvbi9qc29uXCIpID09IC0xICYmIHBhcnNlZEJvZHkucmVzcG9uc2VUZXh0LmluZGV4T2YoXCI8Yj5GYXRhbCBlcnJvcjwvYj5cIikgPiAtMSkge1xuXG4gICAgICAgICAgICBtZXNzYWdlID0gcGFyc2VkQm9keS5yZXNwb25zZVRleHQucmVwbGFjZShcIjxiciAvPlwiLCBcIlwiKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gNTAwKSB7XG5cbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIkludGVybmFsIFNlcnZlciBFcnJvcjogeW91IHNob3VsZCBjaGVjayB5b3VyIHdlYiBzZXJ2ZXIgbG9ncyB0byBmaW5kIHdoYXQncyBnb2luZyB3cm9uZyFcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVzc2FnZSkge1xuXG4gICAgICAgICAgICBpZiAobWVzc2FnZS5zdGFydHNXaXRoKFwiWW91IGFyZSBub3QgYWxsb3dlZCB0byBhY2Nlc3MgdGhpcyByZXNvdXJjZS5cIikpIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gdG9rZW5NZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHB5ZGlvKSB7XG4gICAgICAgICAgICAgICAgcHlkaW8uZGlzcGxheU1lc3NhZ2UoXCJFUlJPUlwiLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYWxlcnQobWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnNlZEJvZHkucmVzcG9uc2VYTUwgJiYgcGFyc2VkQm9keS5yZXNwb25zZVhNTC5kb2N1bWVudEVsZW1lbnQpIHtcblxuICAgICAgICAgICAgdmFyIGF1dGhOb2RlID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUocGFyc2VkQm9keS5yZXNwb25zZVhNTC5kb2N1bWVudEVsZW1lbnQsIFwicmVxdWlyZV9hdXRoXCIpO1xuICAgICAgICAgICAgaWYgKGF1dGhOb2RlICYmIHB5ZGlvKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJvb3QgPSBweWRpby5nZXRDb250ZXh0SG9sZGVyKCkuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgICAgICAgICAgICBweWRpby5nZXRDb250ZXh0SG9sZGVyKCkuc2V0Q29udGV4dE5vZGUocm9vdCk7XG4gICAgICAgICAgICAgICAgICAgIHJvb3QuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcHlkaW8uZ2V0Q29udHJvbGxlcigpLmZpcmVBY3Rpb24oJ2xvZ291dCcpO1xuICAgICAgICAgICAgICAgIHB5ZGlvLmdldENvbnRyb2xsZXIoKS5maXJlQWN0aW9uKCdsb2dpbicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgbWVzc2FnZU5vZGUgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZShwYXJzZWRCb2R5LnJlc3BvbnNlWE1MLmRvY3VtZW50RWxlbWVudCwgXCJtZXNzYWdlXCIpO1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2VOb2RlKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VUeXBlID0gbWVzc2FnZU5vZGUuZ2V0QXR0cmlidXRlKFwidHlwZVwiKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlQ29udGVudCA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uZ2V0RG9tTm9kZVRleHQobWVzc2FnZU5vZGUpO1xuICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlQ29udGVudC5zdGFydHNXaXRoKFwiWW91IGFyZSBub3QgYWxsb3dlZCB0byBhY2Nlc3MgdGhpcyByZXNvdXJjZS5cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUNvbnRlbnQgPSB0b2tlbk1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChweWRpbykge1xuICAgICAgICAgICAgICAgICAgICBweWRpby5kaXNwbGF5TWVzc2FnZShtZXNzYWdlVHlwZSwgbWVzc2FnZUNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlVHlwZSA9PSBcIkVSUk9SXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1lc3NhZ2VUeXBlICsgXCI6XCIgKyBtZXNzYWdlQ29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VUeXBlID09IFwiU1VDQ0VTU1wiKSBtZXNzYWdlTm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG1lc3NhZ2VOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vbkNvbXBsZXRlKSB7XG5cbiAgICAgICAgICAgIHBhcnNlZEJvZHkuc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICAgICAgcGFyc2VkQm9keS5yZXNwb25zZU9iamVjdCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHBhcnNlZEJvZHkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChweWRpbykge1xuICAgICAgICAgICAgcHlkaW8uZmlyZShcInNlcnZlcl9hbnN3ZXJcIiwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ29ubmV4aW9uLnByb3RvdHlwZS51cGxvYWRGaWxlID0gZnVuY3Rpb24gdXBsb2FkRmlsZShmaWxlLCBmaWxlUGFyYW1ldGVyTmFtZSwgdXBsb2FkVXJsKSB7XG4gICAgICAgIHZhciBvbkNvbXBsZXRlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gZnVuY3Rpb24gKCkge30gOiBhcmd1bWVudHNbM107XG4gICAgICAgIHZhciBvbkVycm9yID0gYXJndW1lbnRzLmxlbmd0aCA8PSA0IHx8IGFyZ3VtZW50c1s0XSA9PT0gdW5kZWZpbmVkID8gZnVuY3Rpb24gKCkge30gOiBhcmd1bWVudHNbNF07XG5cbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIG9uUHJvZ3Jlc3MgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDUgfHwgYXJndW1lbnRzWzVdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1s1XTtcbiAgICAgICAgdmFyIHhoclNldHRpbmdzID0gYXJndW1lbnRzLmxlbmd0aCA8PSA2IHx8IGFyZ3VtZW50c1s2XSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbNl07XG5cbiAgICAgICAgdmFyIHhociA9IHRoaXMuaW5pdGlhbGl6ZVhIUkZvclVwbG9hZCh1cGxvYWRVcmwsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uUHJvZ3Jlc3MsIHhoclNldHRpbmdzKTtcbiAgICAgICAgaWYgKHhoclNldHRpbmdzICYmIHhoclNldHRpbmdzLm1ldGhvZCA9PT0gJ1BVVCcpIHtcbiAgICAgICAgICAgIHhoci5zZW5kKGZpbGUpO1xuICAgICAgICAgICAgcmV0dXJuIHhocjtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2luZG93LkZvcm1EYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnNlbmRGaWxlVXNpbmdGb3JtRGF0YSh4aHIsIGZpbGUsIGZpbGVQYXJhbWV0ZXJOYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cuRmlsZVJlYWRlcikge1xuICAgICAgICAgICAgdmFyIGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIF90aGlzMi54aHJTZW5kQXNCaW5hcnkoeGhyLCBmaWxlLm5hbWUsIGUudGFyZ2V0LnJlc3VsdCwgZmlsZVBhcmFtZXRlck5hbWUpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZpbGVSZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKGZpbGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGZpbGUuZ2V0QXNCaW5hcnkpIHtcbiAgICAgICAgICAgIHRoaXMueGhyU2VuZEFzQmluYXJ5KHhociwgZmlsZS5uYW1lLCBmaWxlLmdldEFzQmluYXJ5KCksIGZpbGVQYXJhbWV0ZXJOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geGhyO1xuICAgIH07XG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLmluaXRpYWxpemVYSFJGb3JVcGxvYWQgPSBmdW5jdGlvbiBpbml0aWFsaXplWEhSRm9yVXBsb2FkKHVybCwgb25Db21wbGV0ZSwgb25FcnJvciwgb25Qcm9ncmVzcykge1xuICAgICAgICB2YXIgeGhyU2V0dGluZ3MgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1s0XTtcblxuICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgICAgIHZhciB1cGxvYWQgPSB4aHIudXBsb2FkO1xuICAgICAgICBpZiAoeGhyU2V0dGluZ3Mud2l0aENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB1cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcihcInByb2dyZXNzXCIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBpZiAoIWUubGVuZ3RoQ29tcHV0YWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uUHJvZ3Jlc3MoZSk7XG4gICAgICAgIH0sIGZhbHNlKTtcbiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uQ29tcGxldGUoeGhyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKHhocik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KS5iaW5kKHRoaXMpO1xuICAgICAgICB1cGxvYWQub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIG9uRXJyb3IoeGhyKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIG1ldGhvZCA9ICdQT1NUJztcbiAgICAgICAgaWYgKHhoclNldHRpbmdzLm1ldGhvZCkge1xuICAgICAgICAgICAgbWV0aG9kID0geGhyU2V0dGluZ3MubWV0aG9kO1xuICAgICAgICB9XG4gICAgICAgIHhoci5vcGVuKG1ldGhvZCwgdXJsLCB0cnVlKTtcbiAgICAgICAgaWYgKHhoclNldHRpbmdzLmN1c3RvbUhlYWRlcnMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHhoclNldHRpbmdzLmN1c3RvbUhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihrLCB4aHJTZXR0aW5ncy5jdXN0b21IZWFkZXJzW2tdKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHhocjtcbiAgICB9O1xuXG4gICAgQ29ubmV4aW9uLnByb3RvdHlwZS5zZW5kRmlsZVVzaW5nRm9ybURhdGEgPSBmdW5jdGlvbiBzZW5kRmlsZVVzaW5nRm9ybURhdGEoeGhyLCBmaWxlLCBmaWxlUGFyYW1ldGVyTmFtZSkge1xuICAgICAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpbGVQYXJhbWV0ZXJOYW1lLCBmaWxlKTtcbiAgICAgICAgeGhyLnNlbmQoZm9ybURhdGEpO1xuICAgIH07XG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLnhoclNlbmRBc0JpbmFyeSA9IGZ1bmN0aW9uIHhoclNlbmRBc0JpbmFyeSh4aHIsIGZpbGVOYW1lLCBmaWxlRGF0YSwgZmlsZVBhcmFtZXRlck5hbWUpIHtcbiAgICAgICAgdmFyIGJvdW5kYXJ5ID0gJy0tLS1NdWx0aVBhcnRGb3JtQm91bmRhcnknICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwibXVsdGlwYXJ0L2Zvcm0tZGF0YSwgYm91bmRhcnk9XCIgKyBib3VuZGFyeSk7XG5cbiAgICAgICAgdmFyIGJvZHkgPSBcIi0tXCIgKyBib3VuZGFyeSArIFwiXFxyXFxuXCI7XG4gICAgICAgIGJvZHkgKz0gXCJDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9J1wiICsgZmlsZVBhcmFtZXRlck5hbWUgKyBcIic7IGZpbGVuYW1lPSdcIiArIHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChmaWxlTmFtZSkpICsgXCInXFxyXFxuXCI7XG4gICAgICAgIGJvZHkgKz0gXCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVxcclxcblxcclxcblwiO1xuICAgICAgICBib2R5ICs9IGZpbGVEYXRhICsgXCJcXHJcXG5cIjtcbiAgICAgICAgYm9keSArPSBcIi0tXCIgKyBib3VuZGFyeSArIFwiLS1cXHJcXG5cIjtcblxuICAgICAgICB4aHIuc2VuZEFzQmluYXJ5KGJvZHkpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIGEgamF2YXNjcmlwdCBsaWJyYXJ5XG4gICAgICogQHBhcmFtIGZpbGVOYW1lIFN0cmluZ1xuICAgICAqIEBwYXJhbSBvbkxvYWRlZENvZGUgRnVuY3Rpb24gQ2FsbGJhY2tcbiAgICAgICAgKiBAcGFyYW0gYVN5bmMgQm9vbGVhbiBsb2FkIGxpYnJhcnkgYXN5bmNocm9uZW91c2x5XG4gICAgICovXG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLmxvYWRMaWJyYXJ5ID0gZnVuY3Rpb24gbG9hZExpYnJhcnkoZmlsZU5hbWUsIG9uTG9hZGVkQ29kZSwgYVN5bmMpIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHdpbmRvdy5weWRpb0Jvb3RzdHJhcCAmJiB3aW5kb3cucHlkaW9Cb290c3RyYXAucGFyYW1ldGVycy5nZXQoXCJhanhwVmVyc2lvblwiKSAmJiBmaWxlTmFtZS5pbmRleE9mKFwiP1wiKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGZpbGVOYW1lICs9IFwiP3Y9XCIgKyB3aW5kb3cucHlkaW9Cb290c3RyYXAucGFyYW1ldGVycy5nZXQoXCJhanhwVmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdXJsID0gdGhpcy5fbGliVXJsID8gdGhpcy5fbGliVXJsICsgJy8nICsgZmlsZU5hbWUgOiBmaWxlTmFtZTtcbiAgICAgICAgdmFyIHB5ZGlvID0gdGhpcy5fcHlkaW87XG5cbiAgICAgICAgdmFyIHNjcmlwdExvYWRlZCA9IGZ1bmN0aW9uIHNjcmlwdExvYWRlZChzY3JpcHQpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5leGVjU2NyaXB0KSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5leGVjU2NyaXB0KHNjcmlwdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Lm15X2NvZGUgPSBzY3JpcHQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNjcmlwdF90YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0X3RhZy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdF90YWcuaW5uZXJIVE1MID0gJ2V2YWwod2luZG93Lm15X2NvZGUpJztcbiAgICAgICAgICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzY3JpcHRfdGFnKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdpbmRvdy5teV9jb2RlO1xuICAgICAgICAgICAgICAgICAgICBoZWFkLnJlbW92ZUNoaWxkKHNjcmlwdF90YWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob25Mb2FkZWRDb2RlICE9IG51bGwpIG9uTG9hZGVkQ29kZSgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGFsZXJ0KCdlcnJvciBsb2FkaW5nICcgKyBmaWxlTmFtZSArICc6JyArIGUubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnNvbGUpIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHlkaW8pIHB5ZGlvLmZpcmUoXCJzZXJ2ZXJfYW5zd2VyXCIpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChhU3luYykge1xuICAgICAgICAgICAgd2luZG93LmZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidcbiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHNjcmlwdCkge1xuICAgICAgICAgICAgICAgIHNjcmlwdExvYWRlZChzY3JpcHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIC8vIFNIT1VMRCBCRSBSRU1PVkVEISFcbiAgICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgICAgICAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0TG9hZGVkKHhoci5yZXNwb25zZVRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydCgnZXJyb3IgbG9hZGluZyAnICsgZmlsZU5hbWUgKyAnOiBTdGF0dXMgY29kZSB3YXMgJyArIHhoci5zdGF0dXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkuYmluZChfdGhpczMpO1xuICAgICAgICAgICAgICAgIHhoci5vcGVuKFwiR0VUXCIsIHVybCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHhoci5zZW5kKCk7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBDb25uZXhpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDb25uZXhpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9nZW5BcGlVc2VyU2VydmljZUFwaSA9IHJlcXVpcmUoXCIuL2dlbi9hcGkvVXNlclNlcnZpY2VBcGlcIik7XG5cbnZhciBfZ2VuQXBpVXNlclNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuQXBpVXNlclNlcnZpY2VBcGkpO1xuXG52YXIgX2dlbk1vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0ID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdFwiKTtcblxudmFyIF9nZW5Nb2RlbFJlc3RTZWFyY2hVc2VyUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbFJlc3RTZWFyY2hVc2VyUmVxdWVzdCk7XG5cbnZhciBfZ2VuTW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvSWRtVXNlclNpbmdsZVF1ZXJ5XCIpO1xuXG52YXIgX2dlbk1vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5KTtcblxudmFyIF9nZW5Nb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL1NlcnZpY2VPcGVyYXRpb25UeXBlXCIpO1xuXG52YXIgX2dlbk1vZGVsU2VydmljZU9wZXJhdGlvblR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuTW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZSk7XG5cbnZhciBfZ2VuTW9kZWxJZG1Ob2RlVHlwZSA9IHJlcXVpcmUoXCIuL2dlbi9tb2RlbC9JZG1Ob2RlVHlwZVwiKTtcblxudmFyIF9nZW5Nb2RlbElkbU5vZGVUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsSWRtTm9kZVR5cGUpO1xuXG52YXIgX2dlbk1vZGVsSWRtVXNlciA9IHJlcXVpcmUoXCIuL2dlbi9tb2RlbC9JZG1Vc2VyXCIpO1xuXG52YXIgX2dlbk1vZGVsSWRtVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbElkbVVzZXIpO1xuXG52YXIgX3V0aWxMYW5nVXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbC9MYW5nVXRpbHNcIik7XG5cbnZhciBfdXRpbExhbmdVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsTGFuZ1V0aWxzKTtcblxudmFyIF9nZW5BcGlSb2xlU2VydmljZUFwaSA9IHJlcXVpcmUoXCIuL2dlbi9hcGkvUm9sZVNlcnZpY2VBcGlcIik7XG5cbnZhciBfZ2VuQXBpUm9sZVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuQXBpUm9sZVNlcnZpY2VBcGkpO1xuXG52YXIgX2dlbk1vZGVsSWRtUm9sZSA9IHJlcXVpcmUoXCIuL2dlbi9tb2RlbC9JZG1Sb2xlXCIpO1xuXG52YXIgX2dlbk1vZGVsSWRtUm9sZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbElkbVJvbGUpO1xuXG52YXIgX2dlbk1vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL1Jlc3RTZWFyY2hSb2xlUmVxdWVzdFwiKTtcblxudmFyIF9nZW5Nb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdCk7XG5cbnZhciBfZ2VuTW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvSWRtUm9sZVNpbmdsZVF1ZXJ5XCIpO1xuXG52YXIgX2dlbk1vZGVsSWRtUm9sZVNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsSWRtUm9sZVNpbmdsZVF1ZXJ5KTtcblxudmFyIF91dWlkNCA9IHJlcXVpcmUoJ3V1aWQ0Jyk7XG5cbnZhciBfdXVpZDQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXVpZDQpO1xuXG52YXIgX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5ID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVwiKTtcblxudmFyIF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeSk7XG5cbnZhciBfZ2VuQXBpR3JhcGhTZXJ2aWNlQXBpID0gcmVxdWlyZShcIi4vZ2VuL2FwaS9HcmFwaFNlcnZpY2VBcGlcIik7XG5cbnZhciBfZ2VuQXBpR3JhcGhTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbkFwaUdyYXBoU2VydmljZUFwaSk7XG5cbnZhciBJZG1BcGkgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIElkbUFwaShyZXN0Q2xpZW50KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1BcGkpO1xuXG4gICAgICAgIHRoaXMuY2xpZW50ID0gcmVzdENsaWVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyTG9naW5cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPElkbVVzZXI+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5sb2FkVXNlciA9IGZ1bmN0aW9uIGxvYWRVc2VyKHVzZXJMb2dpbikge1xuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcmVxdWVzdC5PcGVyYXRpb24gPSBfZ2VuTW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ0FORCcpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbXTtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gbmV3IF9nZW5Nb2RlbElkbVVzZXJTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIHF1ZXJ5LkxvZ2luID0gdXNlckxvZ2luO1xuICAgICAgICBxdWVyeS5Ob2RlVHlwZSA9IF9nZW5Nb2RlbElkbU5vZGVUeXBlMltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCgnVVNFUicpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxdWVyeSk7XG4gICAgICAgIHJldHVybiBhcGkuc2VhcmNoVXNlcnMocmVxdWVzdCkudGhlbihmdW5jdGlvbiAoY29sbGVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24uVXNlcnMgPyBjb2xsZWN0aW9uLlVzZXJzWzBdIDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvbGVVdWlkXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxJZG1Sb2xlPn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUubG9hZFJvbGUgPSBmdW5jdGlvbiBsb2FkUm9sZShyb2xlVXVpZCkge1xuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlSb2xlU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzID0gW19nZW5Nb2RlbElkbVJvbGVTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoeyBVdWlkOiBbcm9sZVV1aWRdIH0pXTtcbiAgICAgICAgcmV0dXJuIGFwaS5zZWFyY2hSb2xlcyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5Sb2xlcyA/IGNvbGxlY3Rpb24uUm9sZXNbMF0gOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYmFzZUdyb3VwIHN0cmluZ1xuICAgICAqIEBwYXJhbSBmaWx0ZXJTdHJpbmcgc3RyaW5nXG4gICAgICogQHBhcmFtIHJlY3Vyc2l2ZSBib29sZWFuXG4gICAgICogQHBhcmFtIG9mZnNldCBpbnRlZ2VyXG4gICAgICogQHBhcmFtIGxpbWl0IGludGVnZXJcbiAgICAgKiBAcGFyYW0gcHJvZmlsZSBzdHJpbmcgZmlsdGVyIGJ5IHByb2ZpbGVcbiAgICAgKiBAcmV0dXJuIFByb21pc2U8SWRtVXNlcltdPlxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5saXN0VXNlcnMgPSBmdW5jdGlvbiBsaXN0VXNlcnMoKSB7XG4gICAgICAgIHZhciBiYXNlR3JvdXAgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyAnLycgOiBhcmd1bWVudHNbMF07XG4gICAgICAgIHZhciBmaWx0ZXJTdHJpbmcgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIHJlY3Vyc2l2ZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzJdO1xuICAgICAgICB2YXIgb2Zmc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gMCA6IGFyZ3VtZW50c1szXTtcbiAgICAgICAgdmFyIGxpbWl0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSA0IHx8IGFyZ3VtZW50c1s0XSA9PT0gdW5kZWZpbmVkID8gLTEgOiBhcmd1bWVudHNbNF07XG4gICAgICAgIHZhciBwcm9maWxlID0gYXJndW1lbnRzLmxlbmd0aCA8PSA1IHx8IGFyZ3VtZW50c1s1XSA9PT0gdW5kZWZpbmVkID8gJycgOiBhcmd1bWVudHNbNV07XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpVXNlclNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IF9nZW5Nb2RlbFJlc3RTZWFyY2hVc2VyUmVxdWVzdDJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIHJlcXVlc3QuT3BlcmF0aW9uID0gX2dlbk1vZGVsU2VydmljZU9wZXJhdGlvblR5cGUyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KCdBTkQnKTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzID0gW107XG4gICAgICAgIHZhciBxdWVyeSA9IG5ldyBfZ2VuTW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICBxdWVyeS5Hcm91cFBhdGggPSBiYXNlR3JvdXAgfHwgJy8nO1xuICAgICAgICBxdWVyeS5SZWN1cnNpdmUgPSByZWN1cnNpdmU7XG4gICAgICAgIHF1ZXJ5Lk5vZGVUeXBlID0gX2dlbk1vZGVsSWRtTm9kZVR5cGUyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KCdVU0VSJyk7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcy5wdXNoKHF1ZXJ5KTtcblxuICAgICAgICBpZiAoZmlsdGVyU3RyaW5nKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSBuZXcgX2dlbk1vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nLkxvZ2luID0gZmlsdGVyU3RyaW5nICsgJyonO1xuICAgICAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocXVlcnlTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9maWxlKSB7XG4gICAgICAgICAgICB2YXIgZXhjbHVkZSA9IHByb2ZpbGVbMF0gPT09ICchJztcbiAgICAgICAgICAgIHZhciBwcm9maWxlUSA9IG5ldyBfZ2VuTW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICAgICAgcHJvZmlsZVEuQXR0cmlidXRlTmFtZSA9ICdwcm9maWxlJztcbiAgICAgICAgICAgIHByb2ZpbGVRLkF0dHJpYnV0ZVZhbHVlID0gZXhjbHVkZSA/IHByb2ZpbGUuc3Vic3RyaW5nKDEpIDogcHJvZmlsZTtcbiAgICAgICAgICAgIGlmIChleGNsdWRlKSB7XG4gICAgICAgICAgICAgICAgcHJvZmlsZVEubm90ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcXVlc3QuUXVlcmllcy5wdXNoKHByb2ZpbGVRKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBxdWVyeTIgPSBuZXcgX2dlbk1vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcXVlcnkyLkF0dHJpYnV0ZU5hbWUgPSAnaGlkZGVuJztcbiAgICAgICAgcXVlcnkyLkF0dHJpYnV0ZVZhbHVlID0gJ3RydWUnO1xuICAgICAgICBxdWVyeTIubm90ID0gdHJ1ZTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocXVlcnkyKTtcbiAgICAgICAgaWYgKG9mZnNldCA+IDApIHtcbiAgICAgICAgICAgIHJlcXVlc3QuT2Zmc2V0ID0gb2Zmc2V0ICsgJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbWl0ID4gLTEpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuTGltaXQgPSBsaW1pdCArICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFwaS5zZWFyY2hVc2VycyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4geyBVc2VyczogY29sbGVjdGlvbi5Vc2VycyB8fCBbXSwgVG90YWw6IGNvbGxlY3Rpb24uVG90YWwsIE9mZnNldDogb2Zmc2V0LCBMaW1pdDogbGltaXQgfTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGJhc2VHcm91cCBzdHJpbmdcbiAgICAgKiBAcGFyYW0gcmVjdXJzaXZlIGJvb2xlYW5cbiAgICAgKiBAcGFyYW0gb2Zmc2V0IGludGVnZXJcbiAgICAgKiBAcGFyYW0gbGltaXQgaW50ZWdlclxuICAgICAqIEByZXR1cm4gUHJvbWlzZTxSZXN0VXNlcnNDb2xsZWN0aW9uPlxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5saXN0VXNlcnNHcm91cHMgPSBmdW5jdGlvbiBsaXN0VXNlcnNHcm91cHMoKSB7XG4gICAgICAgIHZhciBiYXNlR3JvdXAgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyAnLycgOiBhcmd1bWVudHNbMF07XG4gICAgICAgIHZhciByZWN1cnNpdmUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbMl07XG4gICAgICAgIHZhciBsaW1pdCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/IC0xIDogYXJndW1lbnRzWzNdO1xuXG4gICAgICAgIHZhciBwMSA9IHRoaXMubGlzdEdyb3VwcyhiYXNlR3JvdXAsICcnLCByZWN1cnNpdmUsIDAsIDEwMDApO1xuICAgICAgICB2YXIgcDIgPSB0aGlzLmxpc3RVc2VycyhiYXNlR3JvdXAsICcnLCByZWN1cnNpdmUsIG9mZnNldCwgbGltaXQpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3AxLCBwMl0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgdmFyIHJlc0dyb3VwcyA9IHJlc3VsdFswXTtcbiAgICAgICAgICAgIHZhciByZXNVc2VycyA9IHJlc3VsdFsxXTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBHcm91cHM6IHJlc0dyb3Vwcy5Hcm91cHMgfHwgW10sXG4gICAgICAgICAgICAgICAgVXNlcnM6IHJlc1VzZXJzLlVzZXJzIHx8IFtdLFxuICAgICAgICAgICAgICAgIFRvdGFsOiByZXNVc2Vycy5Ub3RhbCxcbiAgICAgICAgICAgICAgICBPZmZzZXQ6IG9mZnNldCxcbiAgICAgICAgICAgICAgICBMaW1pdDogbGltaXRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICAvKlxuICAgICAgICBjb25zdCBhcGkgPSBuZXcgVXNlclNlcnZpY2VBcGkodGhpcy5jbGllbnQpO1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFJlc3RTZWFyY2hVc2VyUmVxdWVzdCgpO1xuICAgICAgICByZXF1ZXN0Lk9wZXJhdGlvbiA9IFNlcnZpY2VPcGVyYXRpb25UeXBlLmNvbnN0cnVjdEZyb21PYmplY3QoJ0FORCcpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbXTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBuZXcgSWRtVXNlclNpbmdsZVF1ZXJ5KCk7XG4gICAgICAgIHF1ZXJ5Lkdyb3VwUGF0aCA9IGJhc2VHcm91cCB8fCAnLyc7XG4gICAgICAgIHF1ZXJ5LlJlY3Vyc2l2ZSA9IHJlY3Vyc2l2ZTtcbiAgICAgICAgcXVlcnkuTm9kZVR5cGUgPSBJZG1Ob2RlVHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0KCdVTktOT1dOJyk7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcy5wdXNoKHF1ZXJ5KTtcbiAgICAgICAgIGNvbnN0IHF1ZXJ5MiA9IG5ldyBJZG1Vc2VyU2luZ2xlUXVlcnkoKTtcbiAgICAgICAgcXVlcnkyLkF0dHJpYnV0ZU5hbWUgPSAnaGlkZGVuJztcbiAgICAgICAgcXVlcnkyLkF0dHJpYnV0ZVZhbHVlID0gJ3RydWUnO1xuICAgICAgICBxdWVyeTIubm90ID0gdHJ1ZTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocXVlcnkyKTtcbiAgICAgICAgaWYob2Zmc2V0ID4gMCl7XG4gICAgICAgICAgICByZXF1ZXN0Lk9mZnNldCA9IG9mZnNldCArICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmKGxpbWl0ID4gLTEpe1xuICAgICAgICAgICAgcmVxdWVzdC5MaW1pdCA9IGxpbWl0ICsgJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXF1ZXN0LkxpbWl0ID0gJzEwMDAwJztcbiAgICAgICAgfVxuICAgICAgICAgcmV0dXJuIGFwaS5zZWFyY2hVc2VycyhyZXF1ZXN0KTtcbiAgICAgICAgKi9cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9sZUlkIHN0cmluZ1xuICAgICAqIEBwYXJhbSBvZmZzZXQgaW50ZWdlclxuICAgICAqIEBwYXJhbSBsaW1pdCBpbnRlZ2VyXG4gICAgICogQHJldHVybiBQcm9taXNlPFJlc3RVc2Vyc0NvbGxlY3Rpb24+XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmxpc3RVc2Vyc1dpdGhSb2xlID0gZnVuY3Rpb24gbGlzdFVzZXJzV2l0aFJvbGUocm9sZUlkKSB7XG4gICAgICAgIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgbGltaXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyAtMSA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcmVxdWVzdC5PcGVyYXRpb24gPSBfZ2VuTW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ0FORCcpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbXTtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gbmV3IF9nZW5Nb2RlbElkbVVzZXJTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIHF1ZXJ5Lkdyb3VwUGF0aCA9ICcvJztcbiAgICAgICAgcXVlcnkuUmVjdXJzaXZlID0gdHJ1ZTtcbiAgICAgICAgcXVlcnkuTm9kZVR5cGUgPSBfZ2VuTW9kZWxJZG1Ob2RlVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ1VTRVInKTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocXVlcnkpO1xuICAgICAgICB2YXIgcXVlcnkyID0gbmV3IF9nZW5Nb2RlbElkbVVzZXJTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIHF1ZXJ5Mi5IYXNSb2xlID0gcm9sZUlkO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxdWVyeTIpO1xuXG4gICAgICAgIGlmIChvZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICByZXF1ZXN0Lk9mZnNldCA9IG9mZnNldCArICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaW1pdCA+IC0xKSB7XG4gICAgICAgICAgICByZXF1ZXN0LkxpbWl0ID0gbGltaXQgKyAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcXVlc3QuTGltaXQgPSAnMTAwJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcGkuc2VhcmNoVXNlcnMocmVxdWVzdCkudGhlbihmdW5jdGlvbiAoY29sbGVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHsgVXNlcnM6IGNvbGxlY3Rpb24uVXNlcnMgfHwgW10sIFRvdGFsOiBjb2xsZWN0aW9uLlRvdGFsLCBPZmZzZXQ6IG9mZnNldCwgTGltaXQ6IGxpbWl0IH07XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBiYXNlR3JvdXAgc3RyaW5nXG4gICAgICogQHBhcmFtIGZpbHRlclN0cmluZyBzdHJpbmdcbiAgICAgKiBAcGFyYW0gcmVjdXJzaXZlIGJvb2xlYW5cbiAgICAgKiBAcGFyYW0gb2Zmc2V0IGludGVnZXJcbiAgICAgKiBAcGFyYW0gbGltaXQgaW50ZWdlclxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8SWRtVXNlcltdPn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUubGlzdEdyb3VwcyA9IGZ1bmN0aW9uIGxpc3RHcm91cHMoKSB7XG4gICAgICAgIHZhciBiYXNlR3JvdXAgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyAnLycgOiBhcmd1bWVudHNbMF07XG4gICAgICAgIHZhciBmaWx0ZXJTdHJpbmcgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIHJlY3Vyc2l2ZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzJdO1xuICAgICAgICB2YXIgb2Zmc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gMCA6IGFyZ3VtZW50c1szXTtcbiAgICAgICAgdmFyIGxpbWl0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSA0IHx8IGFyZ3VtZW50c1s0XSA9PT0gdW5kZWZpbmVkID8gLTEgOiBhcmd1bWVudHNbNF07XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpVXNlclNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IF9nZW5Nb2RlbFJlc3RTZWFyY2hVc2VyUmVxdWVzdDJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIHJlcXVlc3QuT3BlcmF0aW9uID0gX2dlbk1vZGVsU2VydmljZU9wZXJhdGlvblR5cGUyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KCdBTkQnKTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzID0gW107XG4gICAgICAgIHZhciBxdWVyeSA9IG5ldyBfZ2VuTW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICBxdWVyeS5Hcm91cFBhdGggPSBiYXNlR3JvdXAgfHwgJy8nO1xuICAgICAgICBxdWVyeS5SZWN1cnNpdmUgPSByZWN1cnNpdmU7XG4gICAgICAgIHF1ZXJ5Lk5vZGVUeXBlID0gX2dlbk1vZGVsSWRtTm9kZVR5cGUyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KCdHUk9VUCcpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxdWVyeSk7XG5cbiAgICAgICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgICAgICAgdmFyIHF1ZXJ5U3RyaW5nID0gbmV3IF9nZW5Nb2RlbElkbVVzZXJTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgICAgICBxdWVyeVN0cmluZy5BdHRyaWJ1dGVOYW1lID0gJ2Rpc3BsYXlOYW1lJztcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nLkF0dHJpYnV0ZVZhbHVlID0gZmlsdGVyU3RyaW5nICsgJyonO1xuICAgICAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocXVlcnlTdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9mZnNldCA+IDApIHtcbiAgICAgICAgICAgIHJlcXVlc3QuT2Zmc2V0ID0gb2Zmc2V0ICsgJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbWl0ID4gLTEpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuTGltaXQgPSBsaW1pdCArICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFwaS5zZWFyY2hVc2VycyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgR3JvdXBzOiB2YWx1ZS5Hcm91cHMgfHwgW10sIFRvdGFsOiB2YWx1ZS5Ub3RhbCwgT2Zmc2V0OiBvZmZzZXQsIExpbWl0OiBsaW1pdCB9O1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2hvd1RlY2huaWNhbFJvbGVzIGJvb2xlYW5cbiAgICAgKiBAcGFyYW0gb2Zmc2V0IGludFxuICAgICAqIEBwYXJhbSBsaW1pdCBpbnRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmxpc3RSb2xlcyA9IGZ1bmN0aW9uIGxpc3RSb2xlcygpIHtcbiAgICAgICAgdmFyIHNob3dUZWNobmljYWxSb2xlcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzBdO1xuICAgICAgICB2YXIgb2Zmc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gMCA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIGxpbWl0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gLTEgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpUm9sZVNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IF9nZW5Nb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdDJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIGlmIChvZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICByZXF1ZXN0Lk9mZnNldCA9IG9mZnNldCArICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaW1pdCA+IC0xKSB7XG4gICAgICAgICAgICByZXF1ZXN0LkxpbWl0ID0gbGltaXQgKyAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvd1RlY2huaWNhbFJvbGVzKSB7XG5cbiAgICAgICAgICAgIHJldHVybiBhcGkuc2VhcmNoUm9sZXMocmVxdWVzdCkudGhlbihmdW5jdGlvbiAoY29sbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb2xsLlJvbGVzIHx8IFtdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXhjbHVkZSB0ZWNoIHJvbGVzIGJ1dCBzdGlsbCBsb2FkIFJPT1RfR1JPVVAgcm9sZVxuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbXTtcbiAgICAgICAge1xuICAgICAgICAgICAgdmFyIHEgPSBuZXcgX2dlbk1vZGVsSWRtUm9sZVNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgICAgIHEuSXNHcm91cFJvbGUgPSB0cnVlO1xuICAgICAgICAgICAgcS5ub3QgPSB0cnVlO1xuICAgICAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocSk7XG4gICAgICAgIH1cbiAgICAgICAge1xuICAgICAgICAgICAgdmFyIHEgPSBuZXcgX2dlbk1vZGVsSWRtUm9sZVNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgICAgIHEuSXNVc2VyUm9sZSA9IHRydWU7XG4gICAgICAgICAgICBxLm5vdCA9IHRydWU7XG4gICAgICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxKTtcbiAgICAgICAgfVxuICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcSA9IG5ldyBfZ2VuTW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICAgICAgcS5Jc1RlYW0gPSB0cnVlO1xuICAgICAgICAgICAgcS5ub3QgPSB0cnVlO1xuICAgICAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVxdWVzdC5PcGVyYXRpb24gPSBfZ2VuTW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ0FORCcpO1xuXG4gICAgICAgIHZhciBwMSA9IGFwaS5zZWFyY2hSb2xlcyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChjb2xsKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbC5Sb2xlcyB8fCBbXTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBwMiA9IHRoaXMubG9hZFJvbGUoJ1JPT1RfR1JPVVAnKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtwMSwgcDJdKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHZhciByb2xlcyA9IHJlc3VsdFswXTtcbiAgICAgICAgICAgIGlmIChyZXN1bHRbMV0gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByb2xlcyA9IFtyZXN1bHRbMV1dLmNvbmNhdChyb2xlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcm9sZXM7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXJTdHJpbmdcbiAgICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAgICogQHBhcmFtIGxpbWl0XG4gICAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5saXN0VGVhbXMgPSBmdW5jdGlvbiBsaXN0VGVhbXMoKSB7XG4gICAgICAgIHZhciBmaWx0ZXJTdHJpbmcgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1swXTtcbiAgICAgICAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbMV07XG4gICAgICAgIHZhciBsaW1pdCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IC0xIDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVJvbGVTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfZ2VuTW9kZWxSZXN0U2VhcmNoUm9sZVJlcXVlc3QyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICBpZiAob2Zmc2V0ID4gMCkge1xuICAgICAgICAgICAgcmVxdWVzdC5PZmZzZXQgPSBvZmZzZXQgKyAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobGltaXQgPiAtMSkge1xuICAgICAgICAgICAgcmVxdWVzdC5MaW1pdCA9IGxpbWl0ICsgJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzID0gW107XG4gICAgICAgIHZhciBxID0gbmV3IF9nZW5Nb2RlbElkbVJvbGVTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIHEuSXNUZWFtID0gdHJ1ZTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocSk7XG4gICAgICAgIGlmIChmaWx0ZXJTdHJpbmcpIHtcbiAgICAgICAgICAgIHZhciBxMiA9IG5ldyBfZ2VuTW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICAgICAgcTIuTGFiZWwgPSBmaWx0ZXJTdHJpbmcgKyAnKic7XG4gICAgICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxMik7XG4gICAgICAgIH1cbiAgICAgICAgcmVxdWVzdC5PcGVyYXRpb24gPSBfZ2VuTW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ0FORCcpO1xuXG4gICAgICAgIHJldHVybiBhcGkuc2VhcmNoUm9sZXMocmVxdWVzdCkudGhlbihmdW5jdGlvbiAoY29sbCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgVGVhbXM6IGNvbGwuUm9sZXMgfHwgW10sIFRvdGFsOiBjb2xsLlRvdGFsLCBPZmZzZXQ6IG9mZnNldCwgTGltaXQ6IGxpbWl0IH07XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBiYXNlR3JvdXBcbiAgICAgKiBAcGFyYW0gZ3JvdXBJZGVudGlmaWVyXG4gICAgICogQHBhcmFtIGRpc3BsYXlOYW1lXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUuY3JlYXRlR3JvdXAgPSBmdW5jdGlvbiBjcmVhdGVHcm91cChiYXNlR3JvdXAsIGdyb3VwSWRlbnRpZmllciwgZGlzcGxheU5hbWUpIHtcbiAgICAgICAgaWYgKGJhc2VHcm91cCA9PT0gdW5kZWZpbmVkKSBiYXNlR3JvdXAgPSAnLyc7XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpVXNlclNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIHZhciBvYmplY3QgPSBuZXcgX2dlbk1vZGVsSWRtVXNlcjJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIG9iamVjdC5Jc0dyb3VwID0gdHJ1ZTtcbiAgICAgICAgb2JqZWN0Lkdyb3VwUGF0aCA9IGJhc2VHcm91cCB8fCAnLyc7XG4gICAgICAgIG9iamVjdC5Hcm91cExhYmVsID0gZ3JvdXBJZGVudGlmaWVyO1xuICAgICAgICBvYmplY3QuQXR0cmlidXRlcyA9IHsgXCJkaXNwbGF5TmFtZVwiOiBkaXNwbGF5TmFtZSB9O1xuICAgICAgICByZXR1cm4gYXBpLnB1dFVzZXIoZ3JvdXBJZGVudGlmaWVyLCBvYmplY3QpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBiYXNlR3JvdXAgc3RyaW5nXG4gICAgICogQHBhcmFtIGxvZ2luIHN0cmluZ1xuICAgICAqIEBwYXJhbSBwYXNzd29yZCBzdHJpbmdcbiAgICAgKiBAcGFyYW0gcHJvZmlsZSBzdHJpbmdcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5jcmVhdGVVc2VyID0gZnVuY3Rpb24gY3JlYXRlVXNlcihiYXNlR3JvdXAsIGxvZ2luLCBwYXNzd29yZCkge1xuICAgICAgICBpZiAoYmFzZUdyb3VwID09PSB1bmRlZmluZWQpIGJhc2VHcm91cCA9ICcvJztcbiAgICAgICAgdmFyIHByb2ZpbGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyAnc3RhbmRhcmQnIDogYXJndW1lbnRzWzNdO1xuXG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVVzZXJTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICB2YXIgb2JqZWN0ID0gbmV3IF9nZW5Nb2RlbElkbVVzZXIyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICBvYmplY3QuR3JvdXBQYXRoID0gYmFzZUdyb3VwO1xuICAgICAgICBvYmplY3QuTG9naW4gPSBsb2dpbjtcbiAgICAgICAgb2JqZWN0LlBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gICAgICAgIG9iamVjdC5BdHRyaWJ1dGVzID0geyBwcm9maWxlOiBwcm9maWxlIH07XG4gICAgICAgIHJldHVybiBhcGkucHV0VXNlcihsb2dpbiwgb2JqZWN0KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSB7Kn1cbiAgICAgKiBAcGFyYW0gcGFyYW1ldGVyc0RlZiBbXVxuICAgICAqIEBwYXJhbSBleGlzdGluZ1VzZXIge0lkbVVzZXJ9XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLnB1dEV4dGVybmFsVXNlciA9IGZ1bmN0aW9uIHB1dEV4dGVybmFsVXNlcihkYXRhLCBwYXJhbWV0ZXJzRGVmKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGV4aXN0aW5nVXNlciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgdmFyIGlkbVVzZXIgPSBleGlzdGluZ1VzZXIgfHwgbmV3IF9nZW5Nb2RlbElkbVVzZXIyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICBpZG1Vc2VyLkF0dHJpYnV0ZXMgPSBpZG1Vc2VyLkF0dHJpYnV0ZXMgfHwge307XG4gICAgICAgIGlkbVVzZXIuUm9sZXMgPSBpZG1Vc2VyLlJvbGVzIHx8IFtdO1xuICAgICAgICBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJwcm9maWxlXCJdID0gXCJzaGFyZWRcIjtcblxuICAgICAgICBwYXJhbWV0ZXJzRGVmLmZvckVhY2goZnVuY3Rpb24gKHBhcmFtKSB7XG4gICAgICAgICAgICB2YXIgbmFtZSA9IHBhcmFtLm5hbWU7XG4gICAgICAgICAgICB2YXIgSWRtVXNlckZpZWxkID0gcGFyYW0uSWRtVXNlckZpZWxkO1xuICAgICAgICAgICAgdmFyIHNjb3BlID0gcGFyYW0uc2NvcGU7XG4gICAgICAgICAgICB2YXIgcGx1Z2luSWQgPSBwYXJhbS5wbHVnaW5JZDtcblxuICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtuYW1lXTtcbiAgICAgICAgICAgIGlmIChJZG1Vc2VyRmllbGQpIHtcbiAgICAgICAgICAgICAgICBpZG1Vc2VyW0lkbVVzZXJGaWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NvcGUgPT09ICd1c2VyJykge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlkbVVzZXIuQXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwbHVnaW5JZCkge1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBiZSByZWRpc3BhdGNoZWQgdG8gdXNlciByb2xlIGluIGJhY2tlbmRcbiAgICAgICAgICAgICAgICBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJwYXJhbWV0ZXI6XCIgKyBwbHVnaW5JZCArIFwiOlwiICsgbmFtZV0gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHlkaW8udXNlci5nZXRJZG1Vc2VyKCkudGhlbihmdW5jdGlvbiAoY3J0VXNlcikge1xuICAgICAgICAgICAgaWRtVXNlci5Hcm91cFBhdGggPSBjcnRVc2VyLkdyb3VwUGF0aDtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5wb2xpY2llc0ZvckV4dGVybmFsVXNlcihweWRpby51c2VyLCBpZG1Vc2VyLkxvZ2luKS50aGVuKGZ1bmN0aW9uIChwb2xpY2llcykge1xuICAgICAgICAgICAgICAgIGlkbVVzZXIuUG9saWNpZXMgPSBwb2xpY2llcztcbiAgICAgICAgICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKF90aGlzLmNsaWVudCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwaS5wdXRVc2VyKGlkbVVzZXIuTG9naW4sIGlkbVVzZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyTG9naW5cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlc3RSZWxhdGlvblJlc3BvbnNlPn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUubG9hZFVzZXJHcmFwaCA9IGZ1bmN0aW9uIGxvYWRVc2VyR3JhcGgodXNlckxvZ2luKSB7XG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaUdyYXBoU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgcmV0dXJuIGFwaS5yZWxhdGlvbih1c2VyTG9naW4pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSByb2xlIGZyb20gc2NyYXRjaFxuICAgICAqIEBwYXJhbSByb2xlTGFiZWwgc3RyaW5nXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUuY3JlYXRlUm9sZSA9IGZ1bmN0aW9uIGNyZWF0ZVJvbGUocm9sZUxhYmVsKSB7XG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVJvbGVTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICB2YXIgaWRtUm9sZSA9IG5ldyBfZ2VuTW9kZWxJZG1Sb2xlMltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgaWRtUm9sZS5VdWlkID0gX3V1aWQ0MltcImRlZmF1bHRcIl0uc3luYygpO1xuICAgICAgICBpZG1Sb2xlLkxhYmVsID0gcm9sZUxhYmVsO1xuICAgICAgICByZXR1cm4gYXBpLnNldFJvbGUoaWRtUm9sZS5VdWlkLCBpZG1Sb2xlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWRtVXNlciB7SWRtVXNlcn1cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS51cGRhdGVJZG1Vc2VyID0gZnVuY3Rpb24gdXBkYXRlSWRtVXNlcihpZG1Vc2VyKSB7XG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVVzZXJTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICBpZiAoaWRtVXNlci5Jc0dyb3VwKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBpLnB1dFVzZXIoaWRtVXNlci5Hcm91cExhYmVsLCBpZG1Vc2VyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhcGkucHV0VXNlcihpZG1Vc2VyLkxvZ2luLCBpZG1Vc2VyKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZG1Vc2VyIHtJZG1Vc2VyfVxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmRlbGV0ZUlkbVVzZXIgPSBmdW5jdGlvbiBkZWxldGVJZG1Vc2VyKGlkbVVzZXIpIHtcbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpVXNlclNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIGlmIChpZG1Vc2VyLklzR3JvdXApIHtcbiAgICAgICAgICAgIHZhciBnUGF0aCA9IF91dGlsTGFuZ1V0aWxzMltcImRlZmF1bHRcIl0udHJpbVJpZ2h0KGlkbVVzZXIuR3JvdXBQYXRoLCAnLycpICsgJy8nICsgaWRtVXNlci5Hcm91cExhYmVsICsgJy8nO1xuICAgICAgICAgICAgaWYgKGdQYXRoID09PSAnLycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ2Nhbm5vdCBkZWxldGUgcm9vdCBncm91cCEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcGkuZGVsZXRlVXNlcihfdXRpbExhbmdVdGlsczJbXCJkZWZhdWx0XCJdLnRyaW1MZWZ0KGdQYXRoLCAnLycpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhcGkuZGVsZXRlVXNlcihpZG1Vc2VyLkxvZ2luKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSByb2xlIGJ5IElkXG4gICAgICogQHBhcmFtIHJvbGVJZFxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmRlbGV0ZVJvbGUgPSBmdW5jdGlvbiBkZWxldGVSb2xlKHJvbGVJZCkge1xuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlSb2xlU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgcmV0dXJuIGFwaS5kZWxldGVSb2xlKHJvbGVJZCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHRlYW1OYW1lIHN0cmluZ1xuICAgICAqIEBwYXJhbSB1c2VySWRzIGFycmF5XG4gICAgICogQHBhcmFtIGNhbGxiYWNrIG9wdGlvbmFsIGNhbGxiYWNrXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxUPn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUuc2F2ZVNlbGVjdGlvbkFzVGVhbSA9IGZ1bmN0aW9uIHNhdmVTZWxlY3Rpb25Bc1RlYW0odGVhbU5hbWUsIHVzZXJJZHMsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBvbGljaWVzRm9yVW5pcXVlVXNlcihweWRpby51c2VyKS50aGVuKGZ1bmN0aW9uIChwb2xpY2llcykge1xuICAgICAgICAgICAgdmFyIHJvbGVBcGkgPSBuZXcgX2dlbkFwaVJvbGVTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0oX3RoaXMyLmNsaWVudCk7XG4gICAgICAgICAgICB2YXIgcm9sZSA9IG5ldyBfZ2VuTW9kZWxJZG1Sb2xlMltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgICAgIHJvbGUuVXVpZCA9IF91dGlsTGFuZ1V0aWxzMltcImRlZmF1bHRcIl0uY29tcHV0ZVN0cmluZ1NsdWcodGVhbU5hbWUpICsgXCItXCIgKyBfdXVpZDQyW1wiZGVmYXVsdFwiXS5zeW5jKCkuc3Vic3RyKDAsIDQpO1xuICAgICAgICAgICAgcm9sZS5MYWJlbCA9IHRlYW1OYW1lO1xuICAgICAgICAgICAgcm9sZS5Jc1RlYW0gPSB0cnVlO1xuICAgICAgICAgICAgcm9sZS5Qb2xpY2llcyA9IHBvbGljaWVzO1xuICAgICAgICAgICAgcmV0dXJuIHJvbGVBcGkuc2V0Um9sZShyb2xlLlV1aWQsIHJvbGUpLnRoZW4oZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgICAgICB2YXIgcHMgPSB1c2VySWRzLm1hcChmdW5jdGlvbiAodXNlcklkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczIuYWRkVXNlclRvVGVhbShyb2xlLlV1aWQsIHVzZXJJZCwgbnVsbCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHBzKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0ZWFtSWRcbiAgICAgKiBAcGFyYW0gdXNlckxvZ2luXG4gICAgICogQHBhcmFtIGNhbGxiYWNrXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxbYW55ICwgYW55XT59XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmFkZFVzZXJUb1RlYW0gPSBmdW5jdGlvbiBhZGRVc2VyVG9UZWFtKHRlYW1JZCwgdXNlckxvZ2luLCBjYWxsYmFjaykge1xuXG4gICAgICAgIHZhciB1c2VyQXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgdmFyIHAxID0gdGhpcy5sb2FkVXNlcih1c2VyTG9naW4pO1xuICAgICAgICB2YXIgcDIgPSB0aGlzLmxvYWRSb2xlKHRlYW1JZCk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbcDEsIHAyXSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICB2YXIgdXNlciA9IHJlc3VsdFswXTtcbiAgICAgICAgICAgIHZhciByb2xlID0gcmVzdWx0WzFdO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgIXJvbGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmaW5kIHVzZXIgb3IgdGVhbSEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVzZXIuUm9sZXMgPSB1c2VyLlJvbGVzIHx8IFtdO1xuICAgICAgICAgICAgdXNlci5Sb2xlcy5wdXNoKHJvbGUpO1xuICAgICAgICAgICAgcmV0dXJuIHVzZXJBcGkucHV0Um9sZXModXNlckxvZ2luLCB1c2VyKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHRlYW1JZFxuICAgICAqIEBwYXJhbSB1c2VyTG9naW5cbiAgICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFthbnkgLCBhbnldPn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUucmVtb3ZlVXNlckZyb21UZWFtID0gZnVuY3Rpb24gcmVtb3ZlVXNlckZyb21UZWFtKHRlYW1JZCwgdXNlckxvZ2luLCBjYWxsYmFjaykge1xuXG4gICAgICAgIHZhciB1c2VyQXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZFVzZXIodXNlckxvZ2luKS50aGVuKGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICBpZiAoIXUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmaW5kIHVzZXIhJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1LlJvbGVzID0gdS5Sb2xlcyB8fCBbXTtcbiAgICAgICAgICAgIHUuUm9sZXMgPSB1LlJvbGVzLmZpbHRlcihmdW5jdGlvbiAocikge1xuICAgICAgICAgICAgICAgIHJldHVybiByLlV1aWQgIT09IHRlYW1JZDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayh1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1c2VyQXBpLnB1dFJvbGVzKHVzZXJMb2dpbiwgdSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0ZWFtSWRcbiAgICAgKiBAcGFyYW0gbmV3TGFiZWxcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPElkbVJvbGU+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS51cGRhdGVUZWFtTGFiZWwgPSBmdW5jdGlvbiB1cGRhdGVUZWFtTGFiZWwodGVhbUlkLCBuZXdMYWJlbCwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIHJvbGVBcGkgPSBuZXcgX2dlbkFwaVJvbGVTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkUm9sZSh0ZWFtSWQpLnRoZW4oZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgIGlmICghcikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbmQgdGVhbSEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHIuTGFiZWwgPSBuZXdMYWJlbDtcbiAgICAgICAgICAgIHJldHVybiByb2xlQXBpLnNldFJvbGUoci5VdWlkLCByKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGN1cnJlbnRVc2VyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheT59XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLnBvbGljaWVzRm9yVW5pcXVlVXNlciA9IGZ1bmN0aW9uIHBvbGljaWVzRm9yVW5pcXVlVXNlcihjdXJyZW50VXNlcikge1xuICAgICAgICByZXR1cm4gY3VycmVudFVzZXIuZ2V0SWRtVXNlcigpLnRoZW4oZnVuY3Rpb24gKGlkbVVzZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBbX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5MltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCh7XG4gICAgICAgICAgICAgICAgU3ViamVjdDogaWRtVXNlci5VdWlkLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ09XTkVSJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pLCBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBcInVzZXI6XCIgKyBpZG1Vc2VyLkxvZ2luLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ1JFQUQnLFxuICAgICAgICAgICAgICAgIEVmZmVjdDogJ2FsbG93J1xuICAgICAgICAgICAgfSksIF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3Qoe1xuICAgICAgICAgICAgICAgIFN1YmplY3Q6IFwidXNlcjpcIiArIGlkbVVzZXIuTG9naW4sXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnV1JJVEUnLFxuICAgICAgICAgICAgICAgIEVmZmVjdDogJ2FsbG93J1xuICAgICAgICAgICAgfSksIF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3Qoe1xuICAgICAgICAgICAgICAgIFN1YmplY3Q6IFwicHJvZmlsZTphZG1pblwiLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ1dSSVRFJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pLCBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBcInByb2ZpbGU6YWRtaW5cIixcbiAgICAgICAgICAgICAgICBBY3Rpb246ICdSRUFEJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pXTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGN1cnJlbnRVc2VyXG4gICAgICogQHBhcmFtIG5ld1VzZXJMb2dpblxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8QXJyYXk+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5wb2xpY2llc0ZvckV4dGVybmFsVXNlciA9IGZ1bmN0aW9uIHBvbGljaWVzRm9yRXh0ZXJuYWxVc2VyKGN1cnJlbnRVc2VyLCBuZXdVc2VyTG9naW4pIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRVc2VyLmdldElkbVVzZXIoKS50aGVuKGZ1bmN0aW9uIChpZG1Vc2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gW19nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3Qoe1xuICAgICAgICAgICAgICAgIFN1YmplY3Q6IGlkbVVzZXIuVXVpZCxcbiAgICAgICAgICAgICAgICBBY3Rpb246ICdPV05FUicsXG4gICAgICAgICAgICAgICAgRWZmZWN0OiAnYWxsb3cnXG4gICAgICAgICAgICB9KSwgX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5MltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCh7XG4gICAgICAgICAgICAgICAgU3ViamVjdDogXCJ1c2VyOlwiICsgaWRtVXNlci5Mb2dpbixcbiAgICAgICAgICAgICAgICBBY3Rpb246ICdSRUFEJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pLCBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBcInVzZXI6XCIgKyBpZG1Vc2VyLkxvZ2luLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ1dSSVRFJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pLCBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBcInVzZXI6XCIgKyBuZXdVc2VyTG9naW4sXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnUkVBRCcsXG4gICAgICAgICAgICAgICAgRWZmZWN0OiAnYWxsb3cnXG4gICAgICAgICAgICB9KSwgX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5MltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCh7XG4gICAgICAgICAgICAgICAgU3ViamVjdDogXCJ1c2VyOlwiICsgbmV3VXNlckxvZ2luLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ1dSSVRFJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pLCBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBcInByb2ZpbGU6YWRtaW5cIixcbiAgICAgICAgICAgICAgICBBY3Rpb246ICdXUklURScsXG4gICAgICAgICAgICAgICAgRWZmZWN0OiAnYWxsb3cnXG4gICAgICAgICAgICB9KSwgX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5MltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCh7XG4gICAgICAgICAgICAgICAgU3ViamVjdDogXCJwcm9maWxlOmFkbWluXCIsXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnUkVBRCcsXG4gICAgICAgICAgICAgICAgRWZmZWN0OiAnYWxsb3cnXG4gICAgICAgICAgICB9KV07XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gSWRtQXBpO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBJZG1BcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2xhbmdPYnNlcnZhYmxlID0gcmVxdWlyZSgnLi4vbGFuZy9PYnNlcnZhYmxlJyk7XG5cbnZhciBfbGFuZ09ic2VydmFibGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ09ic2VydmFibGUpO1xuXG4vKipcbiAqIEFQSSBDbGllbnRcbiAqL1xuXG52YXIgTWV0YUNhY2hlU2VydmljZSA9IChmdW5jdGlvbiAoX09ic2VydmFibGUpIHtcbiAgICBfaW5oZXJpdHMoTWV0YUNhY2hlU2VydmljZSwgX09ic2VydmFibGUpO1xuXG4gICAgTWV0YUNhY2hlU2VydmljZS5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uIGdldEluc3RhbmNlKCkge1xuICAgICAgICBpZiAoIU1ldGFDYWNoZVNlcnZpY2UuSU5TVEFOQ0UpIHtcbiAgICAgICAgICAgIE1ldGFDYWNoZVNlcnZpY2UuSU5TVEFOQ0UgPSBuZXcgTWV0YUNhY2hlU2VydmljZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBNZXRhQ2FjaGVTZXJ2aWNlLklOU1RBTkNFO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBNZXRhQ2FjaGVTZXJ2aWNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWV0YUNhY2hlU2VydmljZSk7XG5cbiAgICAgICAgX09ic2VydmFibGUuY2FsbCh0aGlzKTtcbiAgICAgICAgdGhpcy5fc3RyZWFtcyA9IG5ldyBNYXAoKTtcbiAgICB9XG5cbiAgICBNZXRhQ2FjaGVTZXJ2aWNlLnByb3RvdHlwZS5oYXNLZXkgPSBmdW5jdGlvbiBoYXNLZXkoc3RyZWFtTmFtZSwga2V5TmFtZSkge1xuICAgICAgICBpZiAoIXRoaXMuX3N0cmVhbXMuZ2V0KHN0cmVhbU5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0cmVhbXMuZ2V0KHN0cmVhbU5hbWUpLmdldCgnZGF0YScpLmhhcyhrZXlOYW1lKTtcbiAgICB9O1xuXG4gICAgTWV0YUNhY2hlU2VydmljZS5wcm90b3R5cGUuZ2V0QnlLZXkgPSBmdW5jdGlvbiBnZXRCeUtleShzdHJlYW1OYW1lLCBrZXlOYW1lKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJlYW1zLmdldChzdHJlYW1OYW1lKS5nZXQoJ2RhdGEnKS5nZXQoa2V5TmFtZSk7XG4gICAgfTtcblxuICAgIE1ldGFDYWNoZVNlcnZpY2UucHJvdG90eXBlLmRlbGV0ZUtleSA9IGZ1bmN0aW9uIGRlbGV0ZUtleShzdHJlYW1OYW1lLCBrZXlOYW1lKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zdHJlYW1zLmdldChzdHJlYW1OYW1lKS5nZXQoJ2RhdGEnKVsnZGVsZXRlJ10oa2V5TmFtZSk7XG4gICAgfTtcblxuICAgIE1ldGFDYWNoZVNlcnZpY2UucHJvdG90eXBlLnNldEtleSA9IGZ1bmN0aW9uIHNldEtleShzdHJlYW1OYW1lLCBrZXlOYW1lLCB2YWx1ZSkge1xuICAgICAgICBpZiAoIXRoaXMuX3N0cmVhbXMuZ2V0KHN0cmVhbU5hbWUpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignU3RyZWFtICcgKyBzdHJlYW1OYW1lICsgJyBub3QgcmVnaXN0ZXJlZCwgcGxlYXNlIHJlZ2lzdGVyIGZpcnN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkuZ2V0KCdkYXRhJykuc2V0KGtleU5hbWUsIHZhbHVlKTtcbiAgICB9O1xuXG4gICAgTWV0YUNhY2hlU2VydmljZS5wcm90b3R5cGUuY2xlYXJNZXRhU3RyZWFtS2V5cyA9IGZ1bmN0aW9uIGNsZWFyTWV0YVN0cmVhbUtleXMoc3RyZWFtTmFtZSkge1xuICAgICAgICBpZiAodGhpcy5fc3RyZWFtcy5oYXMoc3RyZWFtTmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0cmVhbXMuZ2V0KHN0cmVhbU5hbWUpLnNldCgnZGF0YScsIG5ldyBNYXAoKSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgTWV0YUNhY2hlU2VydmljZS5wcm90b3R5cGUucmVnaXN0ZXJNZXRhU3RyZWFtID0gZnVuY3Rpb24gcmVnaXN0ZXJNZXRhU3RyZWFtKHN0cmVhbU5hbWUsIGV4cGlyYXRpb25Qb2xpY3kpIHtcbiAgICAgICAgaWYgKHRoaXMuX3N0cmVhbXMuZ2V0KHN0cmVhbU5hbWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRhdGEgPSBuZXcgTWFwKCk7XG4gICAgICAgIGRhdGEuc2V0KCdleHBpcmF0aW9uUG9saWN5JywgZXhwaXJhdGlvblBvbGljeSk7XG4gICAgICAgIGRhdGEuc2V0KCdkYXRhJywgbmV3IE1hcCgpKTtcbiAgICAgICAgdGhpcy5fc3RyZWFtcy5zZXQoc3RyZWFtTmFtZSwgZGF0YSk7XG4gICAgICAgIHB5ZGlvLm9ic2VydmVPbmNlKFwicmVwb3NpdG9yeV9saXN0X3JlZnJlc2hlZFwiLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgLy8gQWx3YXlzIGtlZXAgdGhlIGNhY2hlIGF0IHdvcmtzcGFjZSBzY29wZVxuICAgICAgICAgICAgdGhpcy5fc3RyZWFtc1snZGVsZXRlJ10oc3RyZWFtTmFtZSk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyTWV0YVN0cmVhbShzdHJlYW1OYW1lLCBleHBpcmF0aW9uUG9saWN5KTsgLy8gUmUtcmVnaXN0ZXIgZGlyZWN0bHlcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgfTtcblxuICAgIE1ldGFDYWNoZVNlcnZpY2UucHJvdG90eXBlLm1ldGFGb3JOb2RlID0gZnVuY3Rpb24gbWV0YUZvck5vZGUoc3RyZWFtTmFtZSwgYWp4cE5vZGUsIGxvYWRlckNhbGxiYWNrLCByZW1vdGVQYXJzZXIsIGNhY2hlTG9hZGVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLl9zdHJlYW1zLmhhcyhzdHJlYW1OYW1lKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmluZCBtZXRhIHN0cmVhbSAnICsgc3RyZWFtTmFtZSArICcsIHBsZWFzZSByZWdpc3RlciBpdCBiZWZvcmUgdXNpbmcgaXQnKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVmID0gdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSk7XG4gICAgICAgIHZhciBrZXkgPSBhanhwTm9kZS5nZXRQYXRoKCk7XG4gICAgICAgIHZhciBleHBpcmF0aW9uUG9saWN5ID0gZGVmLmdldCgnZXhwaXJhdGlvblBvbGljeScpO1xuICAgICAgICBpZiAoZGVmLmdldCgnZGF0YScpLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBjYWNoZUxvYWRlcihkZWYuZ2V0KCdkYXRhJykuZ2V0KGtleSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2xlYXJWYWx1ZU9ic2VydmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmLmdldCgnZGF0YScpWydkZWxldGUnXShrZXkpO1xuICAgICAgICAgICAgICAgIH0pLmJpbmQoX3RoaXMpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ2FjaGUgcmVzcG9uc2UgaWYgc3VjY2Vzc1xuICAgICAgICAgICAgICAgIHZhciBjYWNoZUNhbGxiYWNrID0gZnVuY3Rpb24gY2FjaGVDYWxsYmFjayh0cmFuc3BvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0RhdGEgPSByZW1vdGVQYXJzZXIodHJhbnNwb3J0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0RhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjYWNoZWREYXRhID0gbmV3RGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdEYXRhIGluc3RhbmNlb2YgQWp4cE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZWREYXRhID0gbmV3IEFqeHBOb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkRGF0YS5yZXBsYWNlQnkobmV3RGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWYuZ2V0KCdkYXRhJykuc2V0KGtleSwgY2FjaGVkRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwaXJhdGlvblBvbGljeSA9PSBNZXRhQ2FjaGVTZXJ2aWNlLkVYUElSQVRJT05fTE9DQUxfTk9ERSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqeHBOb2RlLm9ic2VydmVPbmNlKFwibm9kZV9yZW1vdmVkXCIsIGNsZWFyVmFsdWVPYnNlcnZlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWp4cE5vZGUub2JzZXJ2ZU9uY2UoXCJub2RlX3JlcGxhY2VkXCIsIGNsZWFyVmFsdWVPYnNlcnZlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGxvYWRlckNhbGxiYWNrKGFqeHBOb2RlLCBjYWNoZUNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgTWV0YUNhY2hlU2VydmljZS5wcm90b3R5cGUuaW52YWxpZGF0ZU1ldGFGb3JLZXlzID0gZnVuY3Rpb24gaW52YWxpZGF0ZU1ldGFGb3JLZXlzKHN0cmVhbU5hbWUsIGtleVBhdHRlcm4pIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdHJlYW1zLmhhcyhzdHJlYW1OYW1lKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmluZCBtZXRhIHN0cmVhbSAnICsgc3RyZWFtTmFtZSArICcsIHBsZWFzZSByZWdpc3RlciBpdCBiZWZvcmUgdXNpbmcgaXQnKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX3N0cmVhbXMuZ2V0KHN0cmVhbU5hbWUpLmdldCgnZGF0YScpO1xuICAgICAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICAgIGlmIChrZXkubWF0Y2goa2V5UGF0dGVybikpIHtcbiAgICAgICAgICAgICAgICBkYXRhWydkZWxldGUnXShrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIE1ldGFDYWNoZVNlcnZpY2U7XG59KShfbGFuZ09ic2VydmFibGUyWydkZWZhdWx0J10pO1xuXG5NZXRhQ2FjaGVTZXJ2aWNlLkVYUElSQVRJT05fTE9DQUxfTk9ERSA9ICdMT0NBTF9OT0RFJztcbk1ldGFDYWNoZVNlcnZpY2UuRVhQSVJBVElPTl9NQU5VQUxfVFJJR0dFUiA9ICdNQU5VQUxfVFJJR0dFUic7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE1ldGFDYWNoZVNlcnZpY2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9QeWRpbyA9IHJlcXVpcmUoJy4uL1B5ZGlvJyk7XG5cbnZhciBfUHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUHlkaW8pO1xuXG52YXIgX0Nvbm5leGlvbiA9IHJlcXVpcmUoJy4vQ29ubmV4aW9uJyk7XG5cbnZhciBfQ29ubmV4aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0Nvbm5leGlvbik7XG5cbnZhciBfdXRpbFBhdGhVdGlscyA9IHJlcXVpcmUoJy4uL3V0aWwvUGF0aFV0aWxzJyk7XG5cbnZhciBfdXRpbFBhdGhVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsUGF0aFV0aWxzKTtcblxudmFyIF9SZXN0Q2xpZW50ID0gcmVxdWlyZSgnLi9SZXN0Q2xpZW50Jyk7XG5cbnZhciBfUmVzdENsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0Q2xpZW50KTtcblxudmFyIF9hd3NTZGsgPSByZXF1aXJlKCdhd3Mtc2RrJyk7XG5cbnZhciBfYXdzU2RrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2F3c1Nkayk7XG5cbnZhciBfZ2VuTW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdCA9IHJlcXVpcmUoJy4vZ2VuL21vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0Jyk7XG5cbnZhciBfZ2VuTW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0KTtcblxudmFyIF9nZW5Nb2RlbFRyZWVOb2RlID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL1RyZWVOb2RlXCIpO1xuXG52YXIgX2dlbk1vZGVsVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuTW9kZWxUcmVlTm9kZSk7XG5cbnZhciBfZ2VuQXBpVHJlZVNlcnZpY2VBcGkgPSByZXF1aXJlKFwiLi9nZW4vYXBpL1RyZWVTZXJ2aWNlQXBpXCIpO1xuXG52YXIgX2dlbkFwaVRyZWVTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbkFwaVRyZWVTZXJ2aWNlQXBpKTtcblxudmFyIF9tb2RlbEFqeHBOb2RlID0gcmVxdWlyZShcIi4uL21vZGVsL0FqeHBOb2RlXCIpO1xuXG52YXIgX21vZGVsQWp4cE5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBanhwTm9kZSk7XG5cbi8vIEV4dGVuZCBTMyBNYW5hZ2VkVXBsb2FkIHRvIGdldCBwcm9ncmVzcyBpbmZvIGFib3V0IGVhY2ggcGFydFxuXG52YXIgTWFuYWdlZE11bHRpcGFydCA9IChmdW5jdGlvbiAoX0FXUyRTMyRNYW5hZ2VkVXBsb2FkKSB7XG4gICAgX2luaGVyaXRzKE1hbmFnZWRNdWx0aXBhcnQsIF9BV1MkUzMkTWFuYWdlZFVwbG9hZCk7XG5cbiAgICBmdW5jdGlvbiBNYW5hZ2VkTXVsdGlwYXJ0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFuYWdlZE11bHRpcGFydCk7XG5cbiAgICAgICAgX0FXUyRTMyRNYW5hZ2VkVXBsb2FkLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQVBJIENsaWVudFxuICAgICAqL1xuXG4gICAgTWFuYWdlZE11bHRpcGFydC5wcm90b3R5cGUucHJvZ3Jlc3MgPSBmdW5jdGlvbiBwcm9ncmVzcyhpbmZvKSB7XG4gICAgICAgIHZhciB1cGxvYWQgPSB0aGlzLl9tYW5hZ2VkVXBsb2FkO1xuICAgICAgICBpZiAodGhpcy5vcGVyYXRpb24gPT09ICdwdXRPYmplY3QnKSB7XG4gICAgICAgICAgICBpbmZvLnBhcnQgPSAxO1xuICAgICAgICAgICAgaW5mby5rZXkgPSB0aGlzLnBhcmFtcy5LZXk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgcGFydExvYWRlZCA9IGluZm8ubG9hZGVkO1xuICAgICAgICAgICAgdmFyIHBhcnRUb3RhbCA9IGluZm8udG90YWw7XG4gICAgICAgICAgICB1cGxvYWQudG90YWxVcGxvYWRlZEJ5dGVzICs9IGluZm8ubG9hZGVkIC0gdGhpcy5fbGFzdFVwbG9hZGVkQnl0ZXM7XG4gICAgICAgICAgICB0aGlzLl9sYXN0VXBsb2FkZWRCeXRlcyA9IGluZm8ubG9hZGVkO1xuICAgICAgICAgICAgaW5mbyA9IHtcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHVwbG9hZC50b3RhbFVwbG9hZGVkQnl0ZXMsXG4gICAgICAgICAgICAgICAgdG90YWw6IHVwbG9hZC50b3RhbEJ5dGVzLFxuICAgICAgICAgICAgICAgIHBhcnQ6IHRoaXMucGFyYW1zLlBhcnROdW1iZXIsXG4gICAgICAgICAgICAgICAgcGFydExvYWRlZDogcGFydExvYWRlZCwgcGFydFRvdGFsOiBwYXJ0VG90YWwsXG4gICAgICAgICAgICAgICAga2V5OiB0aGlzLnBhcmFtcy5LZXlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdXBsb2FkLmVtaXQoJ2h0dHBVcGxvYWRQcm9ncmVzcycsIFtpbmZvXSk7XG4gICAgfTtcblxuICAgIHJldHVybiBNYW5hZ2VkTXVsdGlwYXJ0O1xufSkoX2F3c1NkazJbJ2RlZmF1bHQnXS5TMy5NYW5hZ2VkVXBsb2FkKTtcblxudmFyIFB5ZGlvQXBpID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQeWRpb0FwaSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFB5ZGlvQXBpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtKd3RBcGlDbGllbnR9XG4gICAgICovXG5cbiAgICBQeWRpb0FwaS5nZXRSZXN0Q2xpZW50ID0gZnVuY3Rpb24gZ2V0UmVzdENsaWVudCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBfUmVzdENsaWVudDJbJ2RlZmF1bHQnXSh0aGlzLmdldENsaWVudCgpLl9weWRpb09iamVjdCk7XG4gICAgfTtcblxuICAgIFB5ZGlvQXBpLmdldE11bHRpcGFydFRocmVzaG9sZCA9IGZ1bmN0aW9uIGdldE11bHRpcGFydFRocmVzaG9sZCgpIHtcbiAgICAgICAgdmFyIGNvbmYgPSBfUHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5nZXRQbHVnaW5Db25maWdzKFwiY29yZS51cGxvYWRlclwiKS5nZXQoXCJNVUxUSVBBUlRfVVBMT0FEX1RIUkVTSE9MRFwiKTtcbiAgICAgICAgaWYgKGNvbmYpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChjb25mKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAxMDAgKiAxMDI0ICogMTAyNDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBQeWRpb0FwaS5nZXRNdWx0aXBhcnRQYXJ0U2l6ZSA9IGZ1bmN0aW9uIGdldE11bHRpcGFydFBhcnRTaXplKCkge1xuICAgICAgICB2YXIgY29uZiA9IF9QeWRpbzJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSgpLmdldFBsdWdpbkNvbmZpZ3MoXCJjb3JlLnVwbG9hZGVyXCIpLmdldChcIk1VTFRJUEFSVF9VUExPQURfUEFSVF9TSVpFXCIpO1xuICAgICAgICBpZiAoY29uZikge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGNvbmYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDUwICogMTAyNCAqIDEwMjQ7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUHlkaW9BcGkuZ2V0TXVsdGlwYXJ0UGFydFF1ZXVlU2l6ZSA9IGZ1bmN0aW9uIGdldE11bHRpcGFydFBhcnRRdWV1ZVNpemUoKSB7XG4gICAgICAgIHZhciBjb25mID0gX1B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkuZ2V0UGx1Z2luQ29uZmlncyhcImNvcmUudXBsb2FkZXJcIikuZ2V0KFwiTVVMVElQQVJUX1VQTE9BRF9RVUVVRV9TSVpFXCIpO1xuICAgICAgICBpZiAoY29uZikge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGNvbmYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDM7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLnNldFB5ZGlvT2JqZWN0ID0gZnVuY3Rpb24gc2V0UHlkaW9PYmplY3QocHlkaW9PYmplY3QpIHtcbiAgICAgICAgdGhpcy5fcHlkaW9PYmplY3QgPSBweWRpb09iamVjdDtcbiAgICAgICAgdGhpcy5fYmFzZVVybCA9IHB5ZGlvT2JqZWN0LlBhcmFtZXRlcnMuZ2V0KCdzZXJ2ZXJBY2Nlc3NQYXRoJyk7XG4gICAgfTtcblxuICAgIFB5ZGlvQXBpLnByb3RvdHlwZS5nZXRQeWRpb09iamVjdCA9IGZ1bmN0aW9uIGdldFB5ZGlvT2JqZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHlkaW9PYmplY3Q7XG4gICAgfTtcblxuICAgIFB5ZGlvQXBpLnByb3RvdHlwZS5sb2FkRmlsZSA9IGZ1bmN0aW9uIGxvYWRGaWxlKGZpbGVQYXRoKSB7XG4gICAgICAgIHZhciBvbkNvbXBsZXRlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIG9uRXJyb3IgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIHZhciBjID0gbmV3IF9Db25uZXhpb24yWydkZWZhdWx0J10oZmlsZVBhdGgpO1xuICAgICAgICBjLnNldE1ldGhvZCgnR0VUJyk7XG4gICAgICAgIGMub25Db21wbGV0ZSA9IG9uQ29tcGxldGU7XG4gICAgICAgIGMuc2VuZCgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gZmlsZVxuICAgICAqIEBwYXJhbSBmaWxlUGFyYW1ldGVyTmFtZVxuICAgICAqIEBwYXJhbSBxdWVyeVN0cmluZ1BhcmFtc1xuICAgICAqIEBwYXJhbSBvbkNvbXBsZXRlXG4gICAgICogQHBhcmFtIG9uRXJyb3JcbiAgICAgKiBAcGFyYW0gb25Qcm9ncmVzc1xuICAgICAqIEBwYXJhbSB1cGxvYWRVcmxcbiAgICAgKiBAcGFyYW0geGhyU2V0dGluZ3NcbiAgICAgKiBAcmV0dXJucyBYSFIgSGFuZGxlIHRvIGFib3J0IHRyYW5zZmVyXG4gICAgICovXG5cbiAgICBQeWRpb0FwaS5wcm90b3R5cGUudXBsb2FkRmlsZSA9IGZ1bmN0aW9uIHVwbG9hZEZpbGUoZmlsZSwgZmlsZVBhcmFtZXRlck5hbWUpIHtcbiAgICAgICAgdmFyIHF1ZXJ5U3RyaW5nUGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gJycgOiBhcmd1bWVudHNbMl07XG4gICAgICAgIHZhciBvbkNvbXBsZXRlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gZnVuY3Rpb24gKCkge30gOiBhcmd1bWVudHNbM107XG4gICAgICAgIHZhciBvbkVycm9yID0gYXJndW1lbnRzLmxlbmd0aCA8PSA0IHx8IGFyZ3VtZW50c1s0XSA9PT0gdW5kZWZpbmVkID8gZnVuY3Rpb24gKCkge30gOiBhcmd1bWVudHNbNF07XG4gICAgICAgIHZhciBvblByb2dyZXNzID0gYXJndW1lbnRzLmxlbmd0aCA8PSA1IHx8IGFyZ3VtZW50c1s1XSA9PT0gdW5kZWZpbmVkID8gZnVuY3Rpb24gKCkge30gOiBhcmd1bWVudHNbNV07XG4gICAgICAgIHZhciB1cGxvYWRVcmwgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDYgfHwgYXJndW1lbnRzWzZdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1s2XTtcbiAgICAgICAgdmFyIHhoclNldHRpbmdzID0gYXJndW1lbnRzLmxlbmd0aCA8PSA3IHx8IGFyZ3VtZW50c1s3XSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbN107XG5cbiAgICAgICAgaWYgKCF1cGxvYWRVcmwpIHtcbiAgICAgICAgICAgIHVwbG9hZFVybCA9IHB5ZGlvLlBhcmFtZXRlcnMuZ2V0KCdhanhwU2VydmVyQWNjZXNzJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1ZXJ5U3RyaW5nUGFyYW1zKSB7XG4gICAgICAgICAgICB1cGxvYWRVcmwgKz0gKHVwbG9hZFVybC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArIHF1ZXJ5U3RyaW5nUGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2FybmluZywgYXZvaWQgZG91YmxlIGVycm9yXG4gICAgICAgIHZhciBlcnJvclNlbnQgPSBmYWxzZTtcbiAgICAgICAgdmFyIGxvY2FsRXJyb3IgPSBmdW5jdGlvbiBsb2NhbEVycm9yKHhocikge1xuICAgICAgICAgICAgaWYgKCFlcnJvclNlbnQpIHtcbiAgICAgICAgICAgICAgICBvbkVycm9yKCdSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyA6JyArIHhoci5zdGF0dXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXJyb3JTZW50ID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGMgPSBuZXcgX0Nvbm5leGlvbjJbJ2RlZmF1bHQnXSgpO1xuICAgICAgICByZXR1cm4gYy51cGxvYWRGaWxlKGZpbGUsIGZpbGVQYXJhbWV0ZXJOYW1lLCB1cGxvYWRVcmwsIG9uQ29tcGxldGUsIGxvY2FsRXJyb3IsIG9uUHJvZ3Jlc3MsIHhoclNldHRpbmdzKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlclNlbGVjdGlvbiBVc2VyU2VsZWN0aW9uIEEgUHlkaW8gRGF0YU1vZGVsIHdpdGggc2VsZWN0ZWQgZmlsZXNcbiAgICAgKi9cblxuICAgIFB5ZGlvQXBpLnByb3RvdHlwZS5kb3dubG9hZFNlbGVjdGlvbiA9IGZ1bmN0aW9uIGRvd25sb2FkU2VsZWN0aW9uKHVzZXJTZWxlY3Rpb24pIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgcHlkaW8gPSB0aGlzLmdldFB5ZGlvT2JqZWN0KCk7XG4gICAgICAgIHZhciBhZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQgfHwgJyc7XG4gICAgICAgIHZhciBhZ2VudElzTW9iaWxlID0gYWdlbnQuaW5kZXhPZignaVBob25lJykgIT09IC0xIHx8IGFnZW50LmluZGV4T2YoJ2lQb2QnKSAhPT0gLTEgfHwgYWdlbnQuaW5kZXhPZignaVBhZCcpICE9PSAtMSB8fCBhZ2VudC5pbmRleE9mKCdpT3MnKSAhPT0gLTE7XG5cbiAgICAgICAgdmFyIGhpZGRlbkZvcm0gPSBweWRpby5VSSAmJiBweWRpby5VSS5oYXNIaWRkZW5Eb3dubG9hZEZvcm0oKTtcbiAgICAgICAgdmFyIGFyY2hpdmVFeHQgPSBweWRpby5nZXRQbHVnaW5Db25maWdzKFwiYWNjZXNzLmdhdGV3YXlcIikuZ2V0KFwiRE9XTkxPQURfQVJDSElWRV9GT1JNQVRcIikgfHwgXCJ6aXBcIjtcblxuICAgICAgICBpZiAodXNlclNlbGVjdGlvbi5pc1VuaXF1ZSgpKSB7XG4gICAgICAgICAgICB2YXIgZG93bmxvYWROb2RlID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnROYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdmFyIHVuaXF1ZU5vZGUgPSB1c2VyU2VsZWN0aW9uLmdldFVuaXF1ZU5vZGUoKTtcbiAgICAgICAgICAgIGlmICh1bmlxdWVOb2RlLmlzTGVhZigpKSB7XG4gICAgICAgICAgICAgICAgZG93bmxvYWROb2RlID0gdW5pcXVlTm9kZTtcbiAgICAgICAgICAgICAgICBhdHRhY2htZW50TmFtZSA9IHVuaXF1ZU5vZGUuZ2V0TGFiZWwoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZG93bmxvYWROb2RlID0gbmV3IF9tb2RlbEFqeHBOb2RlMlsnZGVmYXVsdCddKHVuaXF1ZU5vZGUuZ2V0UGF0aCgpICsgJy4nICsgYXJjaGl2ZUV4dCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnROYW1lID0gdW5pcXVlTm9kZS5nZXRMYWJlbCgpICsgJy4nICsgYXJjaGl2ZUV4dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5idWlsZFByZXNpZ25lZEdldFVybChkb3dubG9hZE5vZGUsIG51bGwsICcnLCBudWxsLCBhdHRhY2htZW50TmFtZSkudGhlbihmdW5jdGlvbiAodXJsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFnZW50SXNNb2JpbGUgfHwgIWhpZGRlbkZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5nZXRQeWRpb09iamVjdCgpLlVJLnNlbmREb3dubG9hZFRvSGlkZGVuRm9ybSh1c2VyU2VsZWN0aW9uLCB7IHByZXNpZ25lZFVybDogdXJsIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IF9nZW5Nb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0MlsnZGVmYXVsdCddKCk7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uLk5vZGVzID0gW107XG4gICAgICAgICAgICAgICAgdmFyIHNsdWcgPSBfdGhpcy5nZXRQeWRpb09iamVjdCgpLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeU9iamVjdCgpLmdldFNsdWcoKTtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24uTm9kZXMgPSB1c2VyU2VsZWN0aW9uLmdldFNlbGVjdGVkTm9kZXMoKS5tYXAoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHROb2RlID0gbmV3IF9nZW5Nb2RlbFRyZWVOb2RlMlsnZGVmYXVsdCddKCk7XG4gICAgICAgICAgICAgICAgICAgIHROb2RlLlBhdGggPSBzbHVnICsgbm9kZS5nZXRQYXRoKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlUcmVlU2VydmljZUFwaTJbJ2RlZmF1bHQnXShQeWRpb0FwaS5nZXRSZXN0Q2xpZW50KCkpO1xuICAgICAgICAgICAgICAgIGFwaS5jcmVhdGVTZWxlY3Rpb24oc2VsZWN0aW9uKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgU2VsZWN0aW9uVVVJRCA9IHJlc3BvbnNlLlNlbGVjdGlvblVVSUQ7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGZha2VOb2RlUGF0aCA9IF90aGlzLmdldFB5ZGlvT2JqZWN0KCkuZ2V0Q29udGV4dEhvbGRlcigpLmdldENvbnRleHROb2RlKCkuZ2V0UGF0aCgpICsgXCIvXCIgKyBTZWxlY3Rpb25VVUlEICsgJy1zZWxlY3Rpb24uJyArIGFyY2hpdmVFeHQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmYWtlTm9kZSA9IG5ldyBfbW9kZWxBanhwTm9kZTJbJ2RlZmF1bHQnXShmYWtlTm9kZVBhdGgsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5idWlsZFByZXNpZ25lZEdldFVybChmYWtlTm9kZSwgbnVsbCwgJycsIG51bGwsICdzZWxlY3Rpb24uJyArIGFyY2hpdmVFeHQpLnRoZW4oZnVuY3Rpb24gKHVybCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFnZW50SXNNb2JpbGUgfHwgIWhpZGRlbkZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5nZXRQeWRpb09iamVjdCgpLlVJLnNlbmREb3dubG9hZFRvSGlkZGVuRm9ybSh1c2VyU2VsZWN0aW9uLCB7IHByZXNpZ25lZFVybDogdXJsIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGUgcHJlc2lnbmVkIGFuZCB1c2UgaXQgZm9yIHVwbG9hZHNcbiAgICAgKiBAcGFyYW0gZmlsZVxuICAgICAqIEBwYXJhbSBwYXRoXG4gICAgICogQHBhcmFtIG9uQ29tcGxldGVcbiAgICAgKiBAcGFyYW0gb25FcnJvclxuICAgICAqIEBwYXJhbSBvblByb2dyZXNzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgICAqL1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLnVwbG9hZFByZXNpZ25lZCA9IGZ1bmN0aW9uIHVwbG9hZFByZXNpZ25lZChmaWxlLCBwYXRoKSB7XG4gICAgICAgIHZhciBvbkNvbXBsZXRlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gZnVuY3Rpb24gKCkge30gOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIG9uRXJyb3IgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1szXTtcbiAgICAgICAgdmFyIG9uUHJvZ3Jlc3MgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1s0XTtcblxuICAgICAgICB2YXIgdGFyZ2V0UGF0aCA9IHBhdGg7XG4gICAgICAgIGlmIChwYXRoLm5vcm1hbGl6ZSkge1xuICAgICAgICAgICAgdGFyZ2V0UGF0aCA9IHBhdGgubm9ybWFsaXplKCdORkMnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0UGF0aFswXSA9PT0gXCIvXCIpIHtcbiAgICAgICAgICAgIHRhcmdldFBhdGggPSB0YXJnZXRQYXRoLnN1YnN0cmluZygxKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdXJsID0gdGhpcy5nZXRQeWRpb09iamVjdCgpLlBhcmFtZXRlcnMuZ2V0KCdFTkRQT0lOVF9TM19HQVRFV0FZJyk7XG4gICAgICAgIHZhciBwYXJhbXMgPSB7XG4gICAgICAgICAgICBCdWNrZXQ6ICdpbycsXG4gICAgICAgICAgICBLZXk6IHRhcmdldFBhdGgsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICAgIFB5ZGlvQXBpLmdldFJlc3RDbGllbnQoKS5nZXRPclVwZGF0ZUp3dCgpLnRoZW4oZnVuY3Rpb24gKGp3dCkge1xuICAgICAgICAgICAgICAgIF9hd3NTZGsyWydkZWZhdWx0J10uY29uZmlnLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiAnZ2F0ZXdheScsXG4gICAgICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogJ2dhdGV3YXlzZWNyZXQnLFxuICAgICAgICAgICAgICAgICAgICBzM0ZvcmNlUGF0aFN0eWxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdmFyIHMzID0gbmV3IF9hd3NTZGsyWydkZWZhdWx0J10uUzMoeyBlbmRwb2ludDogdXJsLnJlcGxhY2UoJy9pbycsICcnKSB9KTtcbiAgICAgICAgICAgICAgICB2YXIgc2lnbmVkID0gczMuZ2V0U2lnbmVkVXJsKCdwdXRPYmplY3QnLCBwYXJhbXMpO1xuICAgICAgICAgICAgICAgIHZhciB4aHIgPSBfdGhpczIudXBsb2FkRmlsZShmaWxlLCAnJywgJycsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uUHJvZ3Jlc3MsIHNpZ25lZCwgeyBtZXRob2Q6ICdQVVQnLCBjdXN0b21IZWFkZXJzOiB7ICdYLVB5ZGlvLUJlYXJlcic6IGp3dCwgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIH0gfSk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh4aHIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBQeWRpb0FwaS5wcm90b3R5cGUudXBsb2FkTXVsdGlwYXJ0ID0gZnVuY3Rpb24gdXBsb2FkTXVsdGlwYXJ0KGZpbGUsIHBhdGgpIHtcbiAgICAgICAgdmFyIG9uQ29tcGxldGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1syXTtcbiAgICAgICAgdmFyIG9uRXJyb3IgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1szXTtcbiAgICAgICAgdmFyIG9uUHJvZ3Jlc3MgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1s0XTtcblxuICAgICAgICB2YXIgdGFyZ2V0UGF0aCA9IHBhdGg7XG4gICAgICAgIGlmIChwYXRoLm5vcm1hbGl6ZSkge1xuICAgICAgICAgICAgdGFyZ2V0UGF0aCA9IHBhdGgubm9ybWFsaXplKCdORkMnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0UGF0aFswXSA9PT0gXCIvXCIpIHtcbiAgICAgICAgICAgIHRhcmdldFBhdGggPSB0YXJnZXRQYXRoLnN1YnN0cmluZygxKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdXJsID0gdGhpcy5nZXRQeWRpb09iamVjdCgpLlBhcmFtZXRlcnMuZ2V0KCdFTkRQT0lOVF9TM19HQVRFV0FZJyk7XG4gICAgICAgIHZhciBwYXJhbXMgPSB7XG4gICAgICAgICAgICBCdWNrZXQ6ICdpbycsXG4gICAgICAgICAgICBLZXk6IHRhcmdldFBhdGgsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICAgIFB5ZGlvQXBpLmdldFJlc3RDbGllbnQoKS5nZXRPclVwZGF0ZUp3dCgpLnRoZW4oZnVuY3Rpb24gKGp3dCkge1xuICAgICAgICAgICAgICAgIF9hd3NTZGsyWydkZWZhdWx0J10uY29uZmlnLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBqd3QsXG4gICAgICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogJ2dhdGV3YXlzZWNyZXQnLFxuICAgICAgICAgICAgICAgICAgICBzM0ZvcmNlUGF0aFN0eWxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdXJsLnJlcGxhY2UoJy9pbycsICcnKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHZhciBtYW5hZ2VkID0gbmV3IE1hbmFnZWRNdWx0aXBhcnQoe1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IF9leHRlbmRzKHt9LCBwYXJhbXMsIHsgQm9keTogZmlsZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgcGFydFNpemU6IFB5ZGlvQXBpLmdldE11bHRpcGFydFBhcnRTaXplKCksXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlU2l6ZTogUHlkaW9BcGkuZ2V0TXVsdGlwYXJ0UGFydFF1ZXVlU2l6ZSgpLFxuICAgICAgICAgICAgICAgICAgICBsZWF2ZVBhcnRzT25FcnJvcjogZmFsc2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtYW5hZ2VkLm9uKCdodHRwVXBsb2FkUHJvZ3Jlc3MnLCBvblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgICBtYW5hZ2VkLnNlbmQoZnVuY3Rpb24gKGUsIGQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNvbXBsZXRlKGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShtYW5hZ2VkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2VuZCBhIHJlcXVlc3QgdG8gdGhlIHNlcnZlciB0byBnZXQgYSB1c2FibGUgcHJlc2lnbmVkIHVybC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIEFqeHBOb2RlXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHByZXNldFR5cGUgU3RyaW5nXG4gICAgICogQHBhcmFtIGJ1Y2tldFBhcmFtc1xuICAgICAqIEBwYXJhbSBhdHRhY2htZW50TmFtZVxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9fG51bGwgUmV0dXJuIGEgUHJvbWlzZSBpZiBjYWxsYmFjayBpcyBudWxsLCBvciBjYWxsIHRoZSBjYWxsYmFja1xuICAgICAqL1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLmJ1aWxkUHJlc2lnbmVkR2V0VXJsID0gZnVuY3Rpb24gYnVpbGRQcmVzaWduZWRHZXRVcmwobm9kZSkge1xuICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgcHJlc2V0VHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzJdO1xuICAgICAgICB2YXIgYnVja2V0UGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1szXTtcbiAgICAgICAgdmFyIGF0dGFjaG1lbnROYW1lID0gYXJndW1lbnRzLmxlbmd0aCA8PSA0IHx8IGFyZ3VtZW50c1s0XSA9PT0gdW5kZWZpbmVkID8gJycgOiBhcmd1bWVudHNbNF07XG5cbiAgICAgICAgdmFyIHVybCA9IHRoaXMuZ2V0UHlkaW9PYmplY3QoKS5QYXJhbWV0ZXJzLmdldCgnRU5EUE9JTlRfUzNfR0FURVdBWScpO1xuICAgICAgICB2YXIgc2x1ZyA9IHRoaXMuZ2V0UHlkaW9PYmplY3QoKS51c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnlPYmplY3QoKS5nZXRTbHVnKCk7XG4gICAgICAgIHZhciBjVHlwZSA9ICcnLFxuICAgICAgICAgICAgY0Rpc3Bvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgbG9uZ0V4cGlyZSA9IGZhbHNlO1xuXG4gICAgICAgIHN3aXRjaCAocHJlc2V0VHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvcG5nJzpcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOlxuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvYm1wJzpcbiAgICAgICAgICAgIGNhc2UgJ3RleHQvcGxhaW4nOlxuICAgICAgICAgICAgICAgIGNUeXBlID0gcHJlc2V0VHlwZTtcbiAgICAgICAgICAgICAgICBjRGlzcG9zaXRpb24gPSAnaW5saW5lJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2pwZyc6XG4gICAgICAgICAgICAgICAgY1R5cGUgPSAnaW1hZ2UvanBlZyc7XG4gICAgICAgICAgICAgICAgY0Rpc3Bvc2l0aW9uID0gJ2lubGluZSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhdWRpby9tcDMnOlxuICAgICAgICAgICAgICAgIGNUeXBlID0gcHJlc2V0VHlwZTtcbiAgICAgICAgICAgICAgICBsb25nRXhwaXJlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvL21wNCc6XG4gICAgICAgICAgICAgICAgY1R5cGUgPSBwcmVzZXRUeXBlO1xuICAgICAgICAgICAgICAgIGxvbmdFeHBpcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGV0ZWN0JzpcbiAgICAgICAgICAgICAgICBjVHlwZSA9IF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEFqeHBNaW1lVHlwZShub2RlKTtcbiAgICAgICAgICAgICAgICBjRGlzcG9zaXRpb24gPSAnaW5saW5lJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcGFyYW1zID0ge1xuICAgICAgICAgICAgQnVja2V0OiAnaW8nLFxuICAgICAgICAgICAgS2V5OiBzbHVnICsgbm9kZS5nZXRQYXRoKCksXG4gICAgICAgICAgICBFeHBpcmVzOiBsb25nRXhwaXJlID8gNjAwMCA6IDYwMFxuICAgICAgICB9O1xuICAgICAgICBpZiAoYnVja2V0UGFyYW1zICE9PSBudWxsKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBidWNrZXRQYXJhbXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNUeXBlKSB7XG4gICAgICAgICAgICBwYXJhbXNbJ1Jlc3BvbnNlQ29udGVudFR5cGUnXSA9IGNUeXBlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjRGlzcG9zaXRpb24pIHtcbiAgICAgICAgICAgIHBhcmFtc1snUmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb24nXSA9IGNEaXNwb3NpdGlvbjtcbiAgICAgICAgfSBlbHNlIGlmIChhdHRhY2htZW50TmFtZSkge1xuICAgICAgICAgICAgcGFyYW1zWydSZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbiddID0gJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPScgKyBlbmNvZGVVUklDb21wb25lbnQoYXR0YWNobWVudE5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJlc29sdmVyID0gZnVuY3Rpb24gcmVzb2x2ZXIoand0LCBjYikge1xuICAgICAgICAgICAgdmFyIG1ldGEgPSBub2RlLmdldE1ldGFkYXRhKCkuZ2V0KCdwcmVzaWduZWRVcmxzJyk7XG4gICAgICAgICAgICB2YXIgY2FjaGVLZXkgPSBqd3QgKyBwYXJhbXMuS2V5O1xuICAgICAgICAgICAgaWYgKGNUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVLZXkgKz0gXCIjXCIgKyBjVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjYWNoZWQgPSBtZXRhID8gbWV0YS5nZXQoY2FjaGVLZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChjYWNoZWQpIHtcbiAgICAgICAgICAgICAgICBjYihjYWNoZWQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbWV0YSkge1xuICAgICAgICAgICAgICAgIG1ldGEgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF9hd3NTZGsyWydkZWZhdWx0J10uY29uZmlnLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgYWNjZXNzS2V5SWQ6ICdnYXRld2F5JyxcbiAgICAgICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6ICdnYXRld2F5c2VjcmV0JyxcbiAgICAgICAgICAgICAgICBzM0ZvcmNlUGF0aFN0eWxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBzMyA9IG5ldyBfYXdzU2RrMlsnZGVmYXVsdCddLlMzKHsgZW5kcG9pbnQ6IHVybC5yZXBsYWNlKCcvaW8nLCAnJykgfSk7XG4gICAgICAgICAgICB2YXIgc2lnbmVkID0gczMuZ2V0U2lnbmVkVXJsKCdnZXRPYmplY3QnLCBwYXJhbXMpO1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IHNpZ25lZCArICcmcHlkaW9fand0PScgKyBqd3Q7XG4gICAgICAgICAgICBjYihvdXRwdXQpO1xuICAgICAgICAgICAgbWV0YS5zZXQoY2FjaGVLZXksIG91dHB1dCk7XG4gICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdwcmVzaWduZWRVcmxzJywgbWV0YSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGNhbGxiYWNrID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICAgICAgICBQeWRpb0FwaS5nZXRSZXN0Q2xpZW50KCkuZ2V0T3JVcGRhdGVKd3QoKS50aGVuKGZ1bmN0aW9uIChqd3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZXIoand0LCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgUHlkaW9BcGkuZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZXIoand0LCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFB5ZGlvQXBpLnByb3RvdHlwZS5nZXRQbGFpbkNvbnRlbnQgPSBmdW5jdGlvbiBnZXRQbGFpbkNvbnRlbnQobm9kZSwgY29udGVudENhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICAgIFB5ZGlvQXBpLmdldFJlc3RDbGllbnQoKS5nZXRPclVwZGF0ZUp3dCgpLnRoZW4oZnVuY3Rpb24gKGp3dCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IF90aGlzMy5nZXRQeWRpb09iamVjdCgpLlBhcmFtZXRlcnMuZ2V0KCdFTkRQT0lOVF9TM19HQVRFV0FZJyk7XG4gICAgICAgICAgICB2YXIgc2x1ZyA9IF90aGlzMy5nZXRQeWRpb09iamVjdCgpLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeU9iamVjdCgpLmdldFNsdWcoKTtcblxuICAgICAgICAgICAgX2F3c1NkazJbJ2RlZmF1bHQnXS5jb25maWcudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NLZXlJZDogand0LFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogJ2dhdGV3YXlzZWNyZXQnLFxuICAgICAgICAgICAgICAgIHMzRm9yY2VQYXRoU3R5bGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBCdWNrZXQ6IFwiaW9cIixcbiAgICAgICAgICAgICAgICBLZXk6IHNsdWcgKyBub2RlLmdldFBhdGgoKSxcbiAgICAgICAgICAgICAgICBSZXNwb25zZUNvbnRlbnRUeXBlOiAndGV4dC9wbGFpbicsXG4gICAgICAgICAgICAgICAgUmVzcG9uc2VDYWNoZUNvbnRyb2w6IFwibm8tY2FjaGVcIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBzMyA9IG5ldyBfYXdzU2RrMlsnZGVmYXVsdCddLlMzKHsgZW5kcG9pbnQ6IHVybC5yZXBsYWNlKCcvaW8nLCAnJykgfSk7XG4gICAgICAgICAgICBzMy5nZXRPYmplY3QocGFyYW1zLCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudENhbGxiYWNrKGRhdGEuQm9keS50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMzLmdldFB5ZGlvT2JqZWN0KCkuVUkuZGlzcGxheU1lc3NhZ2UoJ0VSUk9SJywgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLnBvc3RQbGFpblRleHRDb250ZW50ID0gZnVuY3Rpb24gcG9zdFBsYWluVGV4dENvbnRlbnQobm9kZVBhdGgsIGNvbnRlbnQsIGZpbmlzaGVkQ2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgICAgUHlkaW9BcGkuZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gX3RoaXM0LmdldFB5ZGlvT2JqZWN0KCkuUGFyYW1ldGVycy5nZXQoJ0VORFBPSU5UX1MzX0dBVEVXQVknKTtcbiAgICAgICAgICAgIHZhciBzbHVnID0gX3RoaXM0LmdldFB5ZGlvT2JqZWN0KCkudXNlci5nZXRBY3RpdmVSZXBvc2l0b3J5T2JqZWN0KCkuZ2V0U2x1ZygpO1xuXG4gICAgICAgICAgICBfYXdzU2RrMlsnZGVmYXVsdCddLmNvbmZpZy51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBqd3QsXG4gICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiAnZ2F0ZXdheXNlY3JldCcsXG4gICAgICAgICAgICAgICAgczNGb3JjZVBhdGhTdHlsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIEJ1Y2tldDogXCJpb1wiLFxuICAgICAgICAgICAgICAgIEtleTogc2x1ZyArIG5vZGVQYXRoLFxuICAgICAgICAgICAgICAgIEJvZHk6IGNvbnRlbnRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgczMgPSBuZXcgX2F3c1NkazJbJ2RlZmF1bHQnXS5TMyh7IGVuZHBvaW50OiB1cmwucmVwbGFjZSgnL2lvJywgJycpIH0pO1xuICAgICAgICAgICAgczMucHV0T2JqZWN0KHBhcmFtcywgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIGlmICghZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkQ2FsbGJhY2soJ09rJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM0LmdldFB5ZGlvT2JqZWN0KCkuVUkuZGlzcGxheU1lc3NhZ2UoJ0VSUk9SJywgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZENhbGxiYWNrKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIFB5ZGlvQXBpLnByb3RvdHlwZS5vcGVuVmVyc2lvbiA9IGZ1bmN0aW9uIG9wZW5WZXJzaW9uKG5vZGUsIHZlcnNpb25JZCkge1xuXG4gICAgICAgIHZhciBweWRpbyA9IHRoaXMuZ2V0UHlkaW9PYmplY3QoKTtcbiAgICAgICAgdmFyIGFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudCB8fCAnJztcbiAgICAgICAgdmFyIGFnZW50SXNNb2JpbGUgPSBhZ2VudC5pbmRleE9mKCdpUGhvbmUnKSAhPT0gLTEgfHwgYWdlbnQuaW5kZXhPZignaVBvZCcpICE9PSAtMSB8fCBhZ2VudC5pbmRleE9mKCdpUGFkJykgIT09IC0xIHx8IGFnZW50LmluZGV4T2YoJ2lPcycpICE9PSAtMTtcbiAgICAgICAgdmFyIGhpZGRlbkZvcm0gPSBweWRpbyAmJiBweWRpby5VSSAmJiBweWRpby5VSS5oYXNIaWRkZW5Eb3dubG9hZEZvcm0oKTtcbiAgICAgICAgdmFyIHNsdWcgPSBweWRpby51c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnlPYmplY3QoKS5nZXRTbHVnKCk7XG5cbiAgICAgICAgdGhpcy5idWlsZFByZXNpZ25lZEdldFVybChub2RlLCBmdW5jdGlvbiAodXJsKSB7XG4gICAgICAgICAgICBpZiAoYWdlbnRJc01vYmlsZSB8fCAhaGlkZGVuRm9ybSkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHB5ZGlvLlVJLnNlbmREb3dubG9hZFRvSGlkZGVuRm9ybShudWxsLCB7IHByZXNpZ25lZFVybDogdXJsIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAnJywge1xuICAgICAgICAgICAgQnVja2V0OiAnaW8nLFxuICAgICAgICAgICAgS2V5OiBzbHVnICsgbm9kZS5nZXRQYXRoKCksXG4gICAgICAgICAgICBWZXJzaW9uSWQ6IHZlcnNpb25JZFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLnJldmVydFRvVmVyc2lvbiA9IGZ1bmN0aW9uIHJldmVydFRvVmVyc2lvbihub2RlLCB2ZXJzaW9uSWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gICAgICAgIFB5ZGlvQXBpLmdldFJlc3RDbGllbnQoKS5nZXRPclVwZGF0ZUp3dCgpLnRoZW4oZnVuY3Rpb24gKGp3dCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IF90aGlzNS5nZXRQeWRpb09iamVjdCgpLlBhcmFtZXRlcnMuZ2V0KCdFTkRQT0lOVF9TM19HQVRFV0FZJyk7XG4gICAgICAgICAgICB2YXIgc2x1ZyA9IF90aGlzNS5nZXRQeWRpb09iamVjdCgpLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeU9iamVjdCgpLmdldFNsdWcoKTtcblxuICAgICAgICAgICAgX2F3c1NkazJbJ2RlZmF1bHQnXS5jb25maWcudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NLZXlJZDogand0LFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogJ2dhdGV3YXlzZWNyZXQnLFxuICAgICAgICAgICAgICAgIHMzRm9yY2VQYXRoU3R5bGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBCdWNrZXQ6IFwiaW9cIixcbiAgICAgICAgICAgICAgICBLZXk6IHNsdWcgKyBub2RlLmdldFBhdGgoKSxcbiAgICAgICAgICAgICAgICBDb3B5U291cmNlOiBlbmNvZGVVUklDb21wb25lbnQoJ2lvLycgKyBzbHVnICsgbm9kZS5nZXRQYXRoKCkgKyAnP3ZlcnNpb25JZD0nICsgdmVyc2lvbklkKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBzMyA9IG5ldyBfYXdzU2RrMlsnZGVmYXVsdCddLlMzKHsgZW5kcG9pbnQ6IHVybC5yZXBsYWNlKCcvaW8nLCAnJykgfSk7XG4gICAgICAgICAgICBzMy5jb3B5T2JqZWN0KHBhcmFtcywgZnVuY3Rpb24gKGVycikge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM1LmdldFB5ZGlvT2JqZWN0KCkuVUkuZGlzcGxheU1lc3NhZ2UoJ0VSUk9SJywgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soJ0NvcHkgdmVyc2lvbiB0byBvcmlnaW5hbCBub2RlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgYSBtaW5pc2l0ZV9zZXNzaW9uIHBhcmFtZXRlciBpbiB0aGUgVVJMXG4gICAgICogQHBhcmFtIHNlcnZlckFjY2Vzc1xuICAgICAqIEByZXR1cm5zIHN0cmluZ3xib29sXG4gICAgICovXG5cbiAgICBQeWRpb0FwaS5kZXRlY3RNaW5pc2l0ZVNlc3Npb24gPSBmdW5jdGlvbiBkZXRlY3RNaW5pc2l0ZVNlc3Npb24oc2VydmVyQWNjZXNzKSB7XG4gICAgICAgIHZhciByZWdleCA9IG5ldyBSZWdFeHAoJy4qP1smXFxcXD9dJyArICdtaW5pc2l0ZV9zZXNzaW9uJyArICc9KC4qPykmPy4qPycpO1xuICAgICAgICB2YXIgdmFsID0gc2VydmVyQWNjZXNzLnJlcGxhY2UocmVnZXgsIFwiJDFcIik7XG4gICAgICAgIHJldHVybiB2YWwgPT09IHNlcnZlckFjY2VzcyA/IGZhbHNlIDogdmFsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3RzIGlmIGN1cnJlbnQgYnJvd3NlciBzdXBwb3J0cyBIVE1MNSBVcGxvYWQuXG4gICAgICogQHJldHVybnMgYm9vbGVhblxuICAgICAqL1xuXG4gICAgUHlkaW9BcGkuc3VwcG9ydHNVcGxvYWQgPSBmdW5jdGlvbiBzdXBwb3J0c1VwbG9hZCgpIHtcbiAgICAgICAgaWYgKHdpbmRvdy5Db25uZXhpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3cuRm9ybURhdGEgfHwgd2luZG93LkZpbGVSZWFkZXI7XG4gICAgICAgIH0gZWxzZSBpZiAod2luZG93LmpRdWVyeSkge1xuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5Gb3JtRGF0YTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEluc3RhbmNpYXRlIGEgUHlkaW9BcGkgY2xpZW50IGlmIGl0J3Mgbm90IGFscmVhZHkgaW5zdGFuY2lhdGVkIGFuZCByZXR1cm4gaXQuXG4gICAgICogQHJldHVybnMgUHlkaW9BcGlcbiAgICAgKi9cblxuICAgIFB5ZGlvQXBpLmdldENsaWVudCA9IGZ1bmN0aW9uIGdldENsaWVudCgpIHtcbiAgICAgICAgaWYgKFB5ZGlvQXBpLl9QeWRpb0NsaWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFB5ZGlvQXBpLl9QeWRpb0NsaWVudDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2xpZW50ID0gbmV3IFB5ZGlvQXBpKCk7XG4gICAgICAgIFB5ZGlvQXBpLl9QeWRpb0NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIGNsaWVudDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZCBhIGphdmFzY3JpcHQgbGlicmFyeVxuICAgICAqIEBwYXJhbSBmaWxlTmFtZSBTdHJpbmdcbiAgICAgKiBAcGFyYW0gb25Mb2FkZWRDb2RlIEZ1bmN0aW9uIENhbGxiYWNrXG4gICAgICogQHBhcmFtIGFTeW5jIEJvb2xlYW4gbG9hZCBsaWJyYXJ5IGFzeW5jaHJvbmVvdXNseVxuICAgICAqL1xuXG4gICAgUHlkaW9BcGkubG9hZExpYnJhcnkgPSBmdW5jdGlvbiBsb2FkTGlicmFyeShmaWxlTmFtZSwgb25Mb2FkZWRDb2RlLCBhU3luYykge1xuICAgICAgICBpZiAod2luZG93LnB5ZGlvICYmIHB5ZGlvLlBhcmFtZXRlcnMuZ2V0KFwiYWp4cFZlcnNpb25cIikgJiYgZmlsZU5hbWUuaW5kZXhPZihcIj9cIikgPT09IC0xKSB7XG4gICAgICAgICAgICBmaWxlTmFtZSArPSBcIj92PVwiICsgcHlkaW8uUGFyYW1ldGVycy5nZXQoXCJhanhwVmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBQeWRpb0FwaS5fbGliVXJsID0gZmFsc2U7XG4gICAgICAgIGlmICh3aW5kb3cucHlkaW8gJiYgcHlkaW8uUGFyYW1ldGVycy5nZXQoJ1NFUlZFUl9QUkVGSVhfVVJJJykpIHtcbiAgICAgICAgICAgIFB5ZGlvQXBpLl9saWJVcmwgPSBweWRpby5QYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BSRUZJWF9VUkknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjb25uID0gbmV3IF9Db25uZXhpb24yWydkZWZhdWx0J10oKTtcbiAgICAgICAgY29ubi5fbGliVXJsID0gZmFsc2U7XG4gICAgICAgIGlmIChweWRpby5QYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BSRUZJWF9VUkknKSkge1xuICAgICAgICAgICAgY29ubi5fbGliVXJsID0gcHlkaW8uUGFyYW1ldGVycy5nZXQoJ1NFUlZFUl9QUkVGSVhfVVJJJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29ubi5sb2FkTGlicmFyeShmaWxlTmFtZSwgb25Mb2FkZWRDb2RlLCBhU3luYyk7XG4gICAgfTtcblxuICAgIFB5ZGlvQXBpLnByb3RvdHlwZS5zd2l0Y2hMYW5ndWFnZSA9IGZ1bmN0aW9uIHN3aXRjaExhbmd1YWdlKGxhbmcsIGNvbXBsZXRlQ2FsbGJhY2spIHtcblxuICAgICAgICB2YXIgdXJsID0gcHlkaW8uUGFyYW1ldGVycy5nZXQoJ0VORFBPSU5UX1JFU1RfQVBJJykgKyAnL2Zyb250ZW5kL21lc3NhZ2VzLycgKyBsYW5nO1xuICAgICAgICB3aW5kb3cuZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidcbiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlLmpzb24oKS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgY29tcGxldGVDYWxsYmFjayhkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFB5ZGlvQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUHlkaW9BcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX21vZGVsQWp4cE5vZGUgPSByZXF1aXJlKCcuLi9tb2RlbC9BanhwTm9kZScpO1xuXG52YXIgX21vZGVsQWp4cE5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBanhwTm9kZSk7XG5cbnZhciBfdXRpbFBhdGhVdGlscyA9IHJlcXVpcmUoJy4uL3V0aWwvUGF0aFV0aWxzJyk7XG5cbnZhciBfdXRpbFBhdGhVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsUGF0aFV0aWxzKTtcblxudmFyIF9QeWRpb0FwaSA9IHJlcXVpcmUoJy4vUHlkaW9BcGknKTtcblxudmFyIF9QeWRpb0FwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9QeWRpb0FwaSk7XG5cbnZhciBfbW9kZWxNZXRhTm9kZVByb3ZpZGVyID0gcmVxdWlyZSgnLi4vbW9kZWwvTWV0YU5vZGVQcm92aWRlcicpO1xuXG52YXIgX21vZGVsTWV0YU5vZGVQcm92aWRlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE1ldGFOb2RlUHJvdmlkZXIpO1xuXG52YXIgX2xvZGFzaERlYm91bmNlID0gcmVxdWlyZSgnbG9kYXNoLmRlYm91bmNlJyk7XG5cbnZhciBfbG9kYXNoRGVib3VuY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbG9kYXNoRGVib3VuY2UpO1xuXG4vKipcbiAqIFdlYlNvY2tldCBjbGllbnRcbiAqL1xuXG52YXIgUmVjb25uZWN0aW5nV2ViU29ja2V0ID0gcmVxdWlyZSgncmVjb25uZWN0aW5nLXdlYnNvY2tldCcpO1xuXG52YXIgUHlkaW9XZWJTb2NrZXQgPSAoZnVuY3Rpb24gKCkge1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHlkaW9PYmplY3QgUHlkaW9cbiAgICAgKi9cblxuICAgIGZ1bmN0aW9uIFB5ZGlvV2ViU29ja2V0KHB5ZGlvT2JqZWN0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFB5ZGlvV2ViU29ja2V0KTtcblxuICAgICAgICB0aGlzLnB5ZGlvID0gcHlkaW9PYmplY3Q7XG5cbiAgICAgICAgdGhpcy5jb25uT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLndzID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWxvYWRSZXBvc2l0b3JpZXNEZWJvdW5jZWQgPSBfbG9kYXNoRGVib3VuY2UyWydkZWZhdWx0J10oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMucHlkaW8ucmVsb2FkUmVwb3NpdG9yaWVzTGlzdCgpO1xuICAgICAgICB9LCA1MDApO1xuXG4gICAgICAgIHRoaXMucHlkaW8ub2JzZXJ2ZShcInJlcG9zaXRvcnlfbGlzdF9yZWZyZXNoZWRcIiwgKGZ1bmN0aW9uIChkYXRhKSB7XG5cbiAgICAgICAgICAgIHZhciByZXBvSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoZGF0YS5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICByZXBvSWQgPSBkYXRhLmFjdGl2ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5weWRpby5yZXBvc2l0b3J5SWQpIHtcbiAgICAgICAgICAgICAgICByZXBvSWQgPSB0aGlzLnB5ZGlvLnJlcG9zaXRvcnlJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcmVwb0lkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5jb25uT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgUHlkaW9XZWJTb2NrZXQucHJvdG90eXBlLmlzT3BlbiA9IGZ1bmN0aW9uIGlzT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubk9wZW4gJiYgdGhpcy53cyAhPT0gbnVsbDtcbiAgICB9O1xuXG4gICAgUHlkaW9XZWJTb2NrZXQucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24gY2xvc2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25uT3BlbiB8fCB0aGlzLndzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53cy5jbG9zZSgxMDAwLCAnQ2xvc2luZycsIHsga2VlcENsb3NlZDogdHJ1ZSB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogT3BlbiBhIGNvbm5lY3Rpb25cbiAgICAgKi9cblxuICAgIFB5ZGlvV2ViU29ja2V0LnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24gb3BlbigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIHVybCA9IHRoaXMucHlkaW8uUGFyYW1ldGVycy5nZXQoXCJFTkRQT0lOVF9XRUJTT0NLRVRcIik7XG4gICAgICAgIHRoaXMud3MgPSBuZXcgUmVjb25uZWN0aW5nV2ViU29ja2V0KHVybCwgW10sIHtcbiAgICAgICAgICAgIG1heFJlY29ubmVjdGlvbkRlbGF5OiA2MDAwMCxcbiAgICAgICAgICAgIHJlY29ubmVjdGlvbkRlbGF5R3Jvd0ZhY3RvcjogMS42LFxuICAgICAgICAgICAgbWF4UmV0cmllczogMTBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMyLmNvbm5PcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIFB5ZGlvV2ViU29ja2V0LnN1YnNjcmliZUpXVChfdGhpczIud3MsIHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdGhpcy5wYXJzZVdlYnNvY2tldE1lc3NhZ2UuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2UnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIF90aGlzMi5jb25uT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgUHlkaW9XZWJTb2NrZXQubG9nQ2xvc2UoZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFSE9TVERPV04nKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IG1heFJldHJpZXMgcmVhY2hlZCwgaG9zdCBpcyBkb3duIScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUHlkaW9XZWJTb2NrZXQucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbiByZWZyZXNoKCkge1xuICAgICAgICBpZiAodGhpcy53cykge1xuICAgICAgICAgICAgUHlkaW9XZWJTb2NrZXQuc3Vic2NyaWJlSldUKHRoaXMud3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUHlkaW9XZWJTb2NrZXQucHJvdG90eXBlLnBhcnNlV2Vic29ja2V0TWVzc2FnZSA9IGZ1bmN0aW9uIHBhcnNlV2Vic29ja2V0TWVzc2FnZShtc2cpIHtcbiAgICAgICAgdmFyIGRtID0gdGhpcy5weWRpby5nZXRDb250ZXh0SG9sZGVyKCk7XG4gICAgICAgIHZhciBldmVudCA9IEpTT04ucGFyc2UobXNnLmRhdGEpO1xuICAgICAgICBpZiAoZXZlbnQgPT09IFwiZHVtcFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50WydAdHlwZSddKSB7XG4gICAgICAgICAgICB0aGlzLnB5ZGlvLmZpcmUoXCJ3ZWJzb2NrZXRfZXZlbnQ6XCIgKyBldmVudFsnQHR5cGUnXSwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudFsnQHR5cGUnXSAmJiBldmVudFsnQHR5cGUnXSA9PT0gXCJpZG1cIikge1xuICAgICAgICAgICAgdGhpcy5yZWxvYWRSZXBvc2l0b3JpZXNEZWJvdW5jZWQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnRbJ1Rhc2tVcGRhdGVkJ10gJiYgZXZlbnRbJ0pvYiddKSB7XG4gICAgICAgICAgICB0aGlzLnB5ZGlvLmZpcmUoXCJ0YXNrX21lc3NhZ2VcIiwgZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZXZlbnQuVHlwZSAmJiBldmVudC5UYXJnZXQpIHtcbiAgICAgICAgICAgIGV2ZW50LlR5cGUgPSBcIkNSRUFURVwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBjdXJyZW50UmVwb0lkID0gdGhpcy5weWRpby51c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnkoKTtcbiAgICAgICAgaWYgKCF0aGlzLnB5ZGlvLnVzZXIucmVwb3NpdG9yaWVzLmhhcyhjdXJyZW50UmVwb0lkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjdXJyZW50UmVwb1NsdWcgPSB0aGlzLnB5ZGlvLnVzZXIucmVwb3NpdG9yaWVzLmdldChjdXJyZW50UmVwb0lkKS5nZXRTbHVnKCk7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcIkNSRUFURVwiOlxuICAgICAgICAgICAgICAgIHRhcmdldCA9IFB5ZGlvV2ViU29ja2V0LnBhcnNlRXZlbnROb2RlKGV2ZW50LlRhcmdldCwgY3VycmVudFJlcG9JZCwgY3VycmVudFJlcG9TbHVnKTtcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldC5nZXRQYXRoKCkgPT09IFwiXCIgfHwgdGFyZ2V0LmdldFBhdGgoKSA9PT0gXCIvXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBwcm9iYWJseSBhIG5ldyBjZWxsIGZvbGRlclxuICAgICAgICAgICAgICAgICAgICBkbS5nZXRSb290Tm9kZSgpLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZG0uYWRkTm9kZSh0YXJnZXQsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJVUERBVEVfUEFUSFwiOlxuICAgICAgICAgICAgY2FzZSBcIlVQREFURV9NRVRBXCI6XG4gICAgICAgICAgICBjYXNlIFwiVVBEQVRFX0NPTlRFTlRcIjpcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBQeWRpb1dlYlNvY2tldC5wYXJzZUV2ZW50Tm9kZShldmVudC5UYXJnZXQsIGN1cnJlbnRSZXBvSWQsIGN1cnJlbnRSZXBvU2x1Zyk7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChldmVudC5Tb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9zb3VyY2UgPSBQeWRpb1dlYlNvY2tldC5wYXJzZUV2ZW50Tm9kZShldmVudC5Tb3VyY2UsIGN1cnJlbnRSZXBvSWQsIGN1cnJlbnRSZXBvU2x1Zyk7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5nZXRNZXRhZGF0YSgpLnNldChcIm9yaWdpbmFsX3BhdGhcIiwgX3NvdXJjZS5nZXRQYXRoKCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5nZXRNZXRhZGF0YSgpLnNldChcIm9yaWdpbmFsX3BhdGhcIiwgdGFyZ2V0LmdldFBhdGgoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRtLnVwZGF0ZU5vZGUodGFyZ2V0LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiREVMRVRFXCI6XG4gICAgICAgICAgICAgICAgdmFyIHNvdXJjZSA9IFB5ZGlvV2ViU29ja2V0LnBhcnNlRXZlbnROb2RlKGV2ZW50LlNvdXJjZSwgY3VycmVudFJlcG9JZCwgY3VycmVudFJlcG9TbHVnKTtcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZG0ucmVtb3ZlTm9kZUJ5UGF0aCgnLycgKyBzb3VyY2UuZ2V0UGF0aCgpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUHlkaW9XZWJTb2NrZXQucGFyc2VFdmVudE5vZGUgPSBmdW5jdGlvbiBwYXJzZUV2ZW50Tm9kZShvYmosIGN1cnJlbnRSZXBvSWQsIGN1cnJlbnRSZXBvU2x1Zykge1xuICAgICAgICBpZiAoIW9iaikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHdzSWQgPSBKU09OLnBhcnNlKG9iai5NZXRhU3RvcmUuRXZlbnRXb3Jrc3BhY2VJZCk7XG4gICAgICAgIGlmICh3c0lkICE9PSBjdXJyZW50UmVwb0lkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX21vZGVsTWV0YU5vZGVQcm92aWRlcjJbJ2RlZmF1bHQnXS5wYXJzZVRyZWVOb2RlKG9iaiwgY3VycmVudFJlcG9TbHVnKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd3Mge1JlY29ubmVjdGluZ1dlYlNvY2tldH1cbiAgICAgKiBAcGFyYW0gd2l0aFJldHJpZXMgYm9vbFxuICAgICAqIEBwYXJhbSByZXRyeSBpbnRlZ2VyXG4gICAgICogQHJldHVybiB7KnxQcm9taXNlLjxzdHJpbmc+fVxuICAgICAqL1xuXG4gICAgUHlkaW9XZWJTb2NrZXQuc3Vic2NyaWJlSldUID0gZnVuY3Rpb24gc3Vic2NyaWJlSldUKHdzKSB7XG4gICAgICAgIHZhciB3aXRoUmV0cmllcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgcmV0cnkgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIHJldHVybiBfUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICBpZiAoIWp3dCAmJiB3aXRoUmV0cmllcyAmJiByZXRyeSA8IDMpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V0IGNvbm5lY3RlZCBidXQgd2l0aG91dCB2YWxpZCBKV1QsIHJldHJ5IGluIDEwIHNlY29uZHMnKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgUHlkaW9XZWJTb2NrZXQuc3Vic2NyaWJlSldUKHdzLCB3aXRoUmV0cmllcywgcmV0cnkgKyAxKTtcbiAgICAgICAgICAgICAgICB9LCAxMDAwMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3Muc2VuZChKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgXCJAdHlwZVwiOiBcInN1YnNjcmliZVwiLFxuICAgICAgICAgICAgICAgIFwiand0XCI6IGp3dFxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUHlkaW9XZWJTb2NrZXQubG9nQ2xvc2UgPSBmdW5jdGlvbiBsb2dDbG9zZShldmVudCkge1xuICAgICAgICB2YXIgcmVhc29uID0gdW5kZWZpbmVkO1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgMTAwMDpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIk5vcm1hbCBjbG9zdXJlLCBtZWFuaW5nIHRoYXQgdGhlIHB1cnBvc2UgZm9yIHdoaWNoIHRoZSBjb25uZWN0aW9uIHdhcyBlc3RhYmxpc2hlZCBoYXMgYmVlbiBmdWxmaWxsZWQuXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDEwMDE6XG4gICAgICAgICAgICAgICAgcmVhc29uID0gXCJBbiBlbmRwb2ludCBpcyBcXFwiZ29pbmcgYXdheVxcXCIsIHN1Y2ggYXMgYSBzZXJ2ZXIgZ29pbmcgZG93biBvciBhIGJyb3dzZXIgaGF2aW5nIG5hdmlnYXRlZCBhd2F5IGZyb20gYSBwYWdlLlwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxMDAyOlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiQW4gZW5kcG9pbnQgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gZHVlIHRvIGEgcHJvdG9jb2wgZXJyb3JcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAwMzpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIkFuIGVuZHBvaW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgaGFzIHJlY2VpdmVkIGEgdHlwZSBvZiBkYXRhIGl0IGNhbm5vdCBhY2NlcHQgKGUuZy4sIGFuIGVuZHBvaW50IHRoYXQgdW5kZXJzdGFuZHMgb25seSB0ZXh0IGRhdGEgTUFZIHNlbmQgdGhpcyBpZiBpdCByZWNlaXZlcyBhIGJpbmFyeSBtZXNzYWdlKS5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAwNDpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIlJlc2VydmVkLiBUaGUgc3BlY2lmaWMgbWVhbmluZyBtaWdodCBiZSBkZWZpbmVkIGluIHRoZSBmdXR1cmUuXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDEwMDU6XG4gICAgICAgICAgICAgICAgcmVhc29uID0gXCJObyBzdGF0dXMgY29kZSB3YXMgYWN0dWFsbHkgcHJlc2VudC5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAwNjpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIlRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgYWJub3JtYWxseSwgZS5nLiwgd2l0aG91dCBzZW5kaW5nIG9yIHJlY2VpdmluZyBhIENsb3NlIGNvbnRyb2wgZnJhbWVcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAwNzpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIkFuIGVuZHBvaW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgaGFzIHJlY2VpdmVkIGRhdGEgd2l0aGluIGEgbWVzc2FnZSB0aGF0IHdhcyBub3QgY29uc2lzdGVudCB3aXRoIHRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlIChlLmcuLCBub24tVVRGLTggW2h0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM2MjldIGRhdGEgd2l0aGluIGEgdGV4dCBtZXNzYWdlKS5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAwODpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIkFuIGVuZHBvaW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgaGFzIHJlY2VpdmVkIGEgbWVzc2FnZSB0aGF0IFxcXCJ2aW9sYXRlcyBpdHMgcG9saWN5XFxcIi4gVGhpcyByZWFzb24gaXMgZ2l2ZW4gZWl0aGVyIGlmIHRoZXJlIGlzIG5vIG90aGVyIHN1dGlibGUgcmVhc29uLCBvciBpZiB0aGVyZSBpcyBhIG5lZWQgdG8gaGlkZSBzcGVjaWZpYyBkZXRhaWxzIGFib3V0IHRoZSBwb2xpY3kuXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDEwMDk6XG4gICAgICAgICAgICAgICAgcmVhc29uID0gXCJBbiBlbmRwb2ludCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGl0IGhhcyByZWNlaXZlZCBhIG1lc3NhZ2UgdGhhdCBpcyB0b28gYmlnIGZvciBpdCB0byBwcm9jZXNzLlwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxMDEwOlxuICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIHN0YXR1cyBjb2RlIGlzIG5vdCB1c2VkIGJ5IHRoZSBzZXJ2ZXIsIGJlY2F1c2UgaXQgY2FuIGZhaWwgdGhlIFdlYlNvY2tldCBoYW5kc2hha2UgaW5zdGVhZC5cbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIkFuIGVuZHBvaW50IChjbGllbnQpIGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgaGFzIGV4cGVjdGVkIHRoZSBzZXJ2ZXIgdG8gbmVnb3RpYXRlIG9uZSBvciBtb3JlIGV4dGVuc2lvbiwgYnV0IHRoZSBzZXJ2ZXIgZGlkbid0IHJldHVybiB0aGVtIGluIHRoZSByZXNwb25zZSBtZXNzYWdlIG9mIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtlLiBTcGVjaWZpY2FsbHksIHRoZSBleHRlbnNpb25zIHRoYXQgYXJlIG5lZWRlZCBhcmU6IFwiICsgZXZlbnQucmVhc29uO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxMDExOlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiQSBzZXJ2ZXIgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBpdCBlbmNvdW50ZXJlZCBhbiB1bmV4cGVjdGVkIGNvbmRpdGlvbiB0aGF0IHByZXZlbnRlZCBpdCBmcm9tIGZ1bGZpbGxpbmcgdGhlIHJlcXVlc3QuXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDEwMTU6XG4gICAgICAgICAgICAgICAgcmVhc29uID0gXCJUaGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkIGR1ZSB0byBhIGZhaWx1cmUgdG8gcGVyZm9ybSBhIFRMUyBoYW5kc2hha2UgKGUuZy4sIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2FuJ3QgYmUgdmVyaWZpZWQpLlwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIlVua25vd24gcmVhc29uXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmNvZGUgPiAxMDAwICYmIGNvbnNvbGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiV2ViU29ja2V0IENsb3NlZCBDb25uZWN0aW9uOlwiICsgcmVhc29uICsgXCIgKGNvZGUgXCIgKyBldmVudC5jb2RlICsgXCIpXCIpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBQeWRpb1dlYlNvY2tldDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFB5ZGlvV2ViU29ja2V0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF91dGlsWE1MVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL1hNTFV0aWxzJyk7XG5cbnZhciBfdXRpbFhNTFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxYTUxVdGlscyk7XG5cbnZhciBTeXN0ZW1KUyA9IHJlcXVpcmUoJ3N5c3RlbWpzJyk7XG5cbi8qKlxuICogQSBtYW5hZ2VyIHRoYXQgY2FuIGhhbmRsZSB0aGUgbG9hZGluZyBvZiBKUywgQ1NTIGFuZCBjaGVja3MgZGVwZW5kZW5jaWVzXG4gKi9cblxudmFyIFJlc291cmNlc01hbmFnZXIgPSAoZnVuY3Rpb24gKCkge1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc291cmNlc01hbmFnZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXNvdXJjZXNNYW5hZ2VyKTtcblxuICAgICAgICB0aGlzLm1haW5Gb3JtQ29udGFpbmVySWQgPSAnYWxsX2Zvcm1zJztcbiAgICAgICAgdGhpcy5yZXNvdXJjZXMgPSB7fTtcbiAgICAgICAgdGhpcy5sb2FkZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgSmF2YXNjcmlwdCByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBmaWxlTmFtZSBTdHJpbmdcbiAgICAgKiBAcGFyYW0gY2xhc3NOYW1lIFN0cmluZ1xuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5wcm90b3R5cGUuYWRkSlNSZXNvdXJjZSA9IGZ1bmN0aW9uIGFkZEpTUmVzb3VyY2UoZmlsZU5hbWUsIGNsYXNzTmFtZSkge1xuICAgICAgICBpZiAoIXRoaXMucmVzb3VyY2VzLmpzKSB7XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlcy5qcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzb3VyY2VzLmpzLnB1c2goe1xuICAgICAgICAgICAgZmlsZU5hbWU6IGZpbGVOYW1lLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgICAgICBhdXRvbG9hZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBDU1MgcmVzb3VyY2VcbiAgICAgKiBAcGFyYW0gZmlsZU5hbWUgU3RyaW5nXG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLnByb3RvdHlwZS5hZGRDU1NSZXNvdXJjZSA9IGZ1bmN0aW9uIGFkZENTU1Jlc291cmNlKGZpbGVOYW1lKSB7XG4gICAgICAgIGlmICghdGhpcy5yZXNvdXJjZXMuY3NzKSB7XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlcy5jc3MgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc291cmNlcy5jc3MucHVzaChmaWxlTmFtZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBGT1JNIGZyb20gaHRtbCBzbmlwcGVyXG4gICAgICogQHBhcmFtIGZvcm1JZCBTdHJpbmdcbiAgICAgKiBAcGFyYW0gaHRtbFNuaXBwZXQgU3RyaW5nXG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLnByb3RvdHlwZS5hZGRHdWlGb3JtID0gZnVuY3Rpb24gYWRkR3VpRm9ybShmb3JtSWQsIGh0bWxTbmlwcGV0KSB7XG4gICAgICAgIGlmICghdGhpcy5yZXNvdXJjZXMuZm9ybXMpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzLmZvcm1zID0gbmV3IE1hcCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzb3VyY2VzLmZvcm1zLnNldChmb3JtSWQsIGh0bWxTbmlwcGV0KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkIGEgZGVwZW5kZW5jeSB0byBhbm90aGVyIHBsdWdpblxuICAgICAqIEBwYXJhbSBkYXRhIE9iamVjdFxuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5wcm90b3R5cGUuYWRkRGVwZW5kZW5jeSA9IGZ1bmN0aW9uIGFkZERlcGVuZGVuY3koZGF0YSkge1xuICAgICAgICBpZiAoIXRoaXMucmVzb3VyY2VzLmRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXMuZGVwZW5kZW5jaWVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNvdXJjZXMuZGVwZW5kZW5jaWVzLnB1c2goZGF0YSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHNvbWUgZGVwZW5kZW5jaWVzIG11c3QgYmUgbG9hZGVkIGJlZm9yZVxuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKi9cblxuICAgIFJlc291cmNlc01hbmFnZXIucHJvdG90eXBlLmhhc0RlcGVuZGVuY2llcyA9IGZ1bmN0aW9uIGhhc0RlcGVuZGVuY2llcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmRlcGVuZGVuY2llcyB8fCBmYWxzZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZCByZXNvdXJjZXNcbiAgICAgKiBAcGFyYW0gcmVzb3VyY2VzUmVnaXN0cnkgUHlkaW8gcmVzb3VyY2VzIHJlZ2lzdHJ5XG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLnByb3RvdHlwZS5sb2FkID0gZnVuY3Rpb24gbG9hZChyZXNvdXJjZXNSZWdpc3RyeSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBqc0F1dG9sb2FkT25seSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBGdW5jVXRpbHMuRW1wdHkgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgaWYgKHRoaXMubG9hZGVkKSB7XG4gICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc0RlcGVuZGVuY2llcygpICYmICF0aGlzLmRlcGVuZGVuY2llc0xvYWRlZCkge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXMuZGVwZW5kZW5jaWVzLmZvckVhY2goKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZXNSZWdpc3RyeVtlbF0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTG9hZCBkZXBlbmRlbmNpZXMgYW5kIHRyeSBhZ2FpblxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNSZWdpc3RyeVtlbF0ubG9hZChyZXNvdXJjZXNSZWdpc3RyeSwgZmFsc2UsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlcGVuZGVuY2llc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQocmVzb3VyY2VzUmVnaXN0cnksIGZhbHNlLCBjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlcy5mb3Jtcykge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXMuZm9ybXMuZm9yRWFjaCgoZnVuY3Rpb24gKHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICAgICAgICAvLyBSRU1PVkVEXG4gICAgICAgICAgICAgICAgLy90aGlzLmxvYWRHdWlGb3JtKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVzb3VyY2VzLmpzKSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBpdCA9IF90aGlzLnJlc291cmNlcy5qcy52YWx1ZXMoKTtcbiAgICAgICAgICAgICAgICB2YXIgY2IgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgb2JqZWN0ID0gaXQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob2JqZWN0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoanNBdXRvbG9hZE9ubHkgJiYgIW9iamVjdC52YWx1ZS5hdXRvbG9hZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkSlNSZXNvdXJjZShvYmplY3QudmFsdWUuZmlsZU5hbWUsIG9iamVjdC52YWx1ZS5jbGFzc05hbWUsIGNiLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzKTtcbiAgICAgICAgICAgICAgICBjYigpO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVzb3VyY2VzLmNzcykge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXMuY3NzLmZvckVhY2goKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZENTU1Jlc291cmNlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBqYXZhc2NyaXB0IGZpbGVcbiAgICAgKiBAcGFyYW0gZmlsZU5hbWUgU3RyaW5nXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBTdHJpbmdcbiAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgRnVuY3Rpb25cbiAgICAgICAgKiBAcGFyYW0gYVN5bmMgQm9vbGVhblxuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5wcm90b3R5cGUubG9hZEpTUmVzb3VyY2UgPSBmdW5jdGlvbiBsb2FkSlNSZXNvdXJjZShmaWxlTmFtZSwgY2xhc3NOYW1lLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgYVN5bmMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyB0cnVlIDogYXJndW1lbnRzWzNdO1xuXG4gICAgICAgIGlmICghUmVzb3VyY2VzTWFuYWdlci5fX2NvbmZpZ3NQYXJzZWQpIHtcbiAgICAgICAgICAgIFJlc291cmNlc01hbmFnZXIubG9hZEF1dG9Mb2FkUmVzb3VyY2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgU3lzdGVtSlNbJ2ltcG9ydCddKGNsYXNzTmFtZSkudGhlbihjYWxsYmFjayk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBDU1MgZmlsZVxuICAgICAqIEBwYXJhbSBmaWxlTmFtZSBTdHJpbmdcbiAgICAgKi9cblxuICAgIFJlc291cmNlc01hbmFnZXIucHJvdG90eXBlLmxvYWRDU1NSZXNvdXJjZSA9IGZ1bmN0aW9uIGxvYWRDU1NSZXNvdXJjZShmaWxlTmFtZSkge1xuXG4gICAgICAgIGlmIChweWRpby5QYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BSRUZJWF9VUkknKSkge1xuICAgICAgICAgICAgZmlsZU5hbWUgPSBweWRpby5QYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BSRUZJWF9VUkknKSArIGZpbGVOYW1lO1xuICAgICAgICB9XG4gICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUgKyBcIj92PVwiICsgcHlkaW8uUGFyYW1ldGVycy5nZXQoXCJhanhwVmVyc2lvblwiKTtcblxuICAgICAgICB2YXIgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgdmFyIGxpbmtzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xpbmsnKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5rcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGxpbmsgPSBsaW5rc1tpXTtcbiAgICAgICAgICAgIGlmIChsaW5rLnJlbCA9PT0gJ3N0eWxlc2hlZXQnICYmIGxpbmsuaHJlZi5lbmRzV2l0aChmaWxlTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7YnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgICAgdmFyIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgICAgICAgICAgdmFyIGNzc05vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgICAgICBjc3NOb2RlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICAgICAgY3NzTm9kZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgICBjc3NOb2RlLmhyZWYgPSBmaWxlTmFtZTtcbiAgICAgICAgICAgIGNzc05vZGUubWVkaWEgPSAnc2NyZWVuJztcbiAgICAgICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoY3NzTm9kZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZCB0aGUgcmVzb3VyY2VzIGZyb20gWE1MXG4gICAgICogQHBhcmFtIG5vZGUgWE1MTm9kZVxuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5wcm90b3R5cGUubG9hZEZyb21YbWxOb2RlID0gZnVuY3Rpb24gbG9hZEZyb21YbWxOb2RlKG5vZGUpIHtcbiAgICAgICAgdmFyIGNsRm9ybSA9IHt9LFxuICAgICAgICAgICAgayA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09IFwicmVzb3VyY2VzXCIpIHtcbiAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5jaGlsZE5vZGVzW2tdLm5vZGVOYW1lID09PSAnanMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkSlNSZXNvdXJjZShSZXNvdXJjZXNNYW5hZ2VyLmdldEZpbGVPckZhbGxiYWNrKG5vZGUuY2hpbGROb2Rlc1trXSksIG5vZGUuY2hpbGROb2Rlc1trXS5nZXRBdHRyaWJ1dGUoJ2NsYXNzTmFtZScpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGROb2Rlc1trXS5ub2RlTmFtZSA9PT0gJ2NzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRDU1NSZXNvdXJjZShSZXNvdXJjZXNNYW5hZ2VyLmdldEZpbGVPckZhbGxiYWNrKG5vZGUuY2hpbGROb2Rlc1trXSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZE5vZGVzW2tdLm5vZGVOYW1lID09PSAnaW1nX2xpYnJhcnknKSB7XG4gICAgICAgICAgICAgICAgICAgIFJlc291cmNlc01hbmFnZXIuYWRkSW1hZ2VMaWJyYXJ5KG5vZGUuY2hpbGROb2Rlc1trXS5nZXRBdHRyaWJ1dGUoJ2FsaWFzJyksIG5vZGUuY2hpbGROb2Rlc1trXS5nZXRBdHRyaWJ1dGUoJ3BhdGgnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG5vZGUubm9kZU5hbWUgPT09IFwiZGVwZW5kZW5jaWVzXCIpIHtcbiAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5jaGlsZE5vZGVzW2tdLm5vZGVOYW1lID09PSBcInBsdWdpblJlc291cmNlc1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jeShub2RlLmNoaWxkTm9kZXNba10uZ2V0QXR0cmlidXRlKFwicGx1Z2luTmFtZVwiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG5vZGUubm9kZU5hbWUgPT09IFwiY2xpZW50Rm9ybVwiICYmIG5vZGUuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgaWYgKCFub2RlLmdldEF0dHJpYnV0ZShcInRoZW1lXCIpIHx8IG5vZGUuZ2V0QXR0cmlidXRlKFwidGhlbWVcIikgPT09IHB5ZGlvLlBhcmFtZXRlcnMuZ2V0KFwidGhlbWVcIikpIHtcbiAgICAgICAgICAgICAgICBjbEZvcm0gPSB7IGZvcm1JZDogbm9kZS5nZXRBdHRyaWJ1dGUoXCJpZFwiKSwgZm9ybUNvZGU6IG5vZGUuZmlyc3RDaGlsZC5ub2RlVmFsdWUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xGb3JtLmZvcm1JZCkge1xuICAgICAgICAgICAgdGhpcy5hZGRHdWlGb3JtKGNsRm9ybS5mb3JtSWQsIGNsRm9ybS5mb3JtQ29kZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYWxpYXNOYW1lXG4gICAgICogQHBhcmFtIGFsaWFzUGF0aFxuICAgICAqIEB0b2RvIE1PVkUgT1VUU0lERT9cbiAgICAgKi9cblxuICAgIFJlc291cmNlc01hbmFnZXIuYWRkSW1hZ2VMaWJyYXJ5ID0gZnVuY3Rpb24gYWRkSW1hZ2VMaWJyYXJ5KGFsaWFzTmFtZSwgYWxpYXNQYXRoKSB7XG4gICAgICAgIGlmICghd2luZG93LkFqeHBJbWFnZUxpYnJhcmllcykgd2luZG93LkFqeHBJbWFnZUxpYnJhcmllcyA9IHt9O1xuICAgICAgICB3aW5kb3cuQWp4cEltYWdlTGlicmFyaWVzW2FsaWFzTmFtZV0gPSBhbGlhc1BhdGg7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZpbmQgdGhlIGRlZmF1bHQgaW1hZ2VzIHBhdGhcbiAgICAgKiBAcGFyYW0gc3JjIEljb24gc291cmNlXG4gICAgICogQHBhcmFtIGRlZmF1bHRQYXRoIERlZmF1bHQgcGF0aCwgY2FuIGNvbnRhaW4gSUNPTl9TSVpFXG4gICAgICogQHBhcmFtIHNpemUgSW50ZWdlciBzaXplIG9wdGlvbmFsXG4gICAgICogQHJldHVybnMgc3RyaW5nXG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLnJlc29sdmVJbWFnZVNvdXJjZSA9IGZ1bmN0aW9uIHJlc29sdmVJbWFnZVNvdXJjZShzcmMsIGRlZmF1bHRQYXRoLCBzaXplKSB7XG4gICAgICAgIGlmICghc3JjKSByZXR1cm4gXCJcIjtcbiAgICAgICAgdmFyIGltYWdlc0ZvbGRlciA9IGFqeHBSZXNvdXJjZXNGb2xkZXIgKyAnL2ltYWdlcyc7XG4gICAgICAgIGlmIChweWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzLmdldCgnYWp4cEltYWdlc0NvbW1vbicpKSB7XG4gICAgICAgICAgICBpbWFnZXNGb2xkZXIgPSBpbWFnZXNGb2xkZXIucmVwbGFjZSgnLycgKyBweWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzLmdldCgndGhlbWUnKSArICcvJywgJy9jb21tb24vJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVmYXVsdFBhdGggJiYgZGVmYXVsdFBhdGhbMF0gIT09ICcvJykge1xuICAgICAgICAgICAgZGVmYXVsdFBhdGggPSAnLycgKyBkZWZhdWx0UGF0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghd2luZG93LkFqeHBJbWFnZUxpYnJhcmllcyB8fCBzcmMuaW5kZXhPZihcIi9cIikgPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBpbWFnZXNGb2xkZXIgKyAoZGVmYXVsdFBhdGggPyBzaXplID8gZGVmYXVsdFBhdGgucmVwbGFjZShcIklDT05fU0laRVwiLCBzaXplKSA6IGRlZmF1bHRQYXRoIDogJycpICsgJy8nICsgc3JjO1xuICAgICAgICB9XG4gICAgICAgIHZhciByYWRpYyA9IHNyYy5zdWJzdHJpbmcoMCwgc3JjLmluZGV4T2YoXCIvXCIpKTtcbiAgICAgICAgaWYgKHdpbmRvdy5BanhwSW1hZ2VMaWJyYXJpZXNbcmFkaWNdKSB7XG4gICAgICAgICAgICBzcmMgPSBzcmMucmVwbGFjZShyYWRpYywgd2luZG93LkFqeHBJbWFnZUxpYnJhcmllc1tyYWRpY10pO1xuICAgICAgICAgICAgaWYgKHB5ZGlvQm9vdHN0cmFwLnBhcmFtZXRlcnMuZ2V0KFwiU0VSVkVSX1BSRUZJWF9VUklcIikpIHtcbiAgICAgICAgICAgICAgICBzcmMgPSBweWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzLmdldChcIlNFUlZFUl9QUkVGSVhfVVJJXCIpICsgc3JjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNpemUgPyBzcmMucmVwbGFjZShcIklDT05fU0laRVwiLCBzaXplKSA6IHNyYztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpbWFnZXNGb2xkZXIgKyAoZGVmYXVsdFBhdGggPyBzaXplID8gZGVmYXVsdFBhdGgucmVwbGFjZShcIklDT05fU0laRVwiLCBzaXplKSA6IGRlZmF1bHRQYXRoIDogJycpICsgJy8nICsgc3JjO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQ2hlY2sgaWYgcmVzb3VyY2VzIGFyZSB0YWdnZWQgYXV0b2xvYWQgYW5kIGxvYWQgdGhlbVxuICAgICogQHBhcmFtIHJlZ2lzdHJ5IERPTURvY3VtZW50IFhNTCBSZWdpc3RyeVxuICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRBdXRvTG9hZFJlc291cmNlcyA9IGZ1bmN0aW9uIGxvYWRBdXRvTG9hZFJlc291cmNlcygpIHtcbiAgICAgICAgdmFyIHJlZ2lzdHJ5ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgICAgICAgICByZWdpc3RyeSA9IHdpbmRvdy5weWRpby5SZWdpc3RyeS5nZXRYTUwoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWFuYWdlciA9IG5ldyBSZXNvdXJjZXNNYW5hZ2VyKCk7XG4gICAgICAgIHZhciBqc05vZGVzID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdE5vZGVzKHJlZ2lzdHJ5LCAncGx1Z2lucy8qL2NsaWVudF9zZXR0aW5ncy9yZXNvdXJjZXMvanMnKTtcbiAgICAgICAgdmFyIG5vZGUgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdmFyIHN5c2pzTWFwID0ge307XG4gICAgICAgIHZhciBzeXNqc01ldGEgPSB7XG4gICAgICAgICAgICAnKic6IHsgYXV0aG9yaXphdGlvbjogdHJ1ZSB9XG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0ganNOb2RlcywgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfaXRlcmF0b3JbU3ltYm9sLml0ZXJhdG9yXSgpOzspIHtcbiAgICAgICAgICAgIGlmIChfaXNBcnJheSkge1xuICAgICAgICAgICAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhaztcbiAgICAgICAgICAgICAgICBub2RlID0gX2l0ZXJhdG9yW19pKytdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrO1xuICAgICAgICAgICAgICAgIG5vZGUgPSBfaS52YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIG5hbWVzcGFjZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdjbGFzc05hbWUnKTtcbiAgICAgICAgICAgIHZhciBmaWxlcGF0aCA9IFJlc291cmNlc01hbmFnZXIuZ2V0RmlsZU9yRmFsbGJhY2sobm9kZSk7XG4gICAgICAgICAgICB2YXIgZGVwcyA9IFtdO1xuICAgICAgICAgICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKCdkZXBlbmRzJykpIHtcbiAgICAgICAgICAgICAgICBkZXBzID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2RlcGVuZHMnKS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKCdleHBvc2UnKSkge1xuICAgICAgICAgICAgICAgIFJlc291cmNlc01hbmFnZXIuX19yZXF1aXJlc1tub2RlLmdldEF0dHJpYnV0ZSgnZXhwb3NlJyldID0gbmFtZXNwYWNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3lzanNNYXBbbmFtZXNwYWNlXSA9IGZpbGVwYXRoO1xuICAgICAgICAgICAgc3lzanNNZXRhW25hbWVzcGFjZV0gPSB7IGZvcm1hdDogJ2dsb2JhbCcsIGRlcHM6IGRlcHMgfTtcbiAgICAgICAgfVxuICAgICAgICBTeXN0ZW1KUy5jb25maWcoeyBtYXA6IHN5c2pzTWFwLCBtZXRhOiBzeXNqc01ldGEgfSk7XG4gICAgICAgIFJlc291cmNlc01hbmFnZXIuX19jb25maWdzUGFyc2VkID0gdHJ1ZTtcblxuICAgICAgICB2YXIgaW1nTm9kZXMgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0Tm9kZXMocmVnaXN0cnksICdwbHVnaW5zLyovY2xpZW50X3NldHRpbmdzL3Jlc291cmNlcy9pbWdfbGlicmFyeScpO1xuICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IyID0gaW1nTm9kZXMsIF9pc0FycmF5MiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMiksIF9pMiA9IDAsIF9pdGVyYXRvcjIgPSBfaXNBcnJheTIgPyBfaXRlcmF0b3IyIDogX2l0ZXJhdG9yMltTeW1ib2wuaXRlcmF0b3JdKCk7Oykge1xuICAgICAgICAgICAgaWYgKF9pc0FycmF5Mikge1xuICAgICAgICAgICAgICAgIGlmIChfaTIgPj0gX2l0ZXJhdG9yMi5sZW5ndGgpIGJyZWFrO1xuICAgICAgICAgICAgICAgIG5vZGUgPSBfaXRlcmF0b3IyW19pMisrXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgX2kyID0gX2l0ZXJhdG9yMi5uZXh0KCk7XG4gICAgICAgICAgICAgICAgaWYgKF9pMi5kb25lKSBicmVhaztcbiAgICAgICAgICAgICAgICBub2RlID0gX2kyLnZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmFkZEltYWdlTGlicmFyeShub2RlLmdldEF0dHJpYnV0ZSgnYWxpYXMnKSwgbm9kZS5nZXRBdHRyaWJ1dGUoJ3BhdGgnKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNzc05vZGVzID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdE5vZGVzKHJlZ2lzdHJ5LCAncGx1Z2lucy8qL2NsaWVudF9zZXR0aW5ncy9yZXNvdXJjZXMvY3NzW0BhdXRvbG9hZD1cInRydWVcIl0nKTtcbiAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMyA9IGNzc05vZGVzLCBfaXNBcnJheTMgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjMpLCBfaTMgPSAwLCBfaXRlcmF0b3IzID0gX2lzQXJyYXkzID8gX2l0ZXJhdG9yMyA6IF9pdGVyYXRvcjNbU3ltYm9sLml0ZXJhdG9yXSgpOzspIHtcbiAgICAgICAgICAgIGlmIChfaXNBcnJheTMpIHtcbiAgICAgICAgICAgICAgICBpZiAoX2kzID49IF9pdGVyYXRvcjMubGVuZ3RoKSBicmVhaztcbiAgICAgICAgICAgICAgICBub2RlID0gX2l0ZXJhdG9yM1tfaTMrK107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIF9pMyA9IF9pdGVyYXRvcjMubmV4dCgpO1xuICAgICAgICAgICAgICAgIGlmIChfaTMuZG9uZSkgYnJlYWs7XG4gICAgICAgICAgICAgICAgbm9kZSA9IF9pMy52YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFuYWdlci5sb2FkQ1NTUmVzb3VyY2UoUmVzb3VyY2VzTWFuYWdlci5nZXRGaWxlT3JGYWxsYmFjayhub2RlKSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5nZXRGaWxlT3JGYWxsYmFjayA9IGZ1bmN0aW9uIGdldEZpbGVPckZhbGxiYWNrKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuZ2V0QXR0cmlidXRlKCdmYWxsYmFja0NvbmRpdGlvbicpICYmIGV2YWwobm9kZS5nZXRBdHRyaWJ1dGUoJ2ZhbGxiYWNrQ29uZGl0aW9uJykpKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUoJ2ZhbGxiYWNrRmlsZScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZ2V0QXR0cmlidXRlKCdmaWxlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5yZXF1aXJlTGliID0gZnVuY3Rpb24gcmVxdWlyZUxpYihtb2R1bGUpIHtcbiAgICAgICAgdmFyIHByb21pc2UgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICBpZiAod2luZG93W21vZHVsZV0pIHJldHVybiB3aW5kb3dbbW9kdWxlXTtcbiAgICAgICAgaWYgKFJlc291cmNlc01hbmFnZXIuX19yZXF1aXJlcyAmJiBSZXNvdXJjZXNNYW5hZ2VyLl9fcmVxdWlyZXNbbW9kdWxlXSkge1xuICAgICAgICAgICAgdmFyIGdsb2JhbE5TID0gUmVzb3VyY2VzTWFuYWdlci5fX3JlcXVpcmVzW21vZHVsZV07XG4gICAgICAgICAgICBpZiAocHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW1KU1snaW1wb3J0J10oZ2xvYmFsTlMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdpbmRvd1tnbG9iYWxOU10pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93W2dsb2JhbE5TXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJpbmcgYSByZW1vdGUgbGliIHRoYXQgd2FzIG5vdCBwcmV2aW91c2x5IGxvYWRlZCAoJyArIGdsb2JhbE5TICsgJykuIFlvdSBtYXkgYmUgbWlzc2luZyBhIGRlcGVuZGVuY3kgZGVjbGFyYXRpb24gaW4gbWFuaWZlc3QsIG9yIHlvdSBjYW4gdXNlIHJlcXVpcmVMaWIobW9kdWxlTmFtZSwgdHJ1ZSkgdG8gcmVjZWl2ZSBhIFByb21pc2UuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmaW5kIGFueSByZWZlcmVuY2UgdG8gbGliICcgKyBtb2R1bGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgbW9kdWxlIGlzIHJlZ2lzdGVyZWQgKG5vdCBuZWNlc3NhcmlseSBsb2FkZWQgeWV0KVxuICAgICAqIEBwYXJhbSBjbGFzc05hbWVcbiAgICAgKiBAcmV0dXJucyB7TWFwfGJvb2xlYW59XG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLm1vZHVsZUlzQXZhaWxhYmxlID0gZnVuY3Rpb24gbW9kdWxlSXNBdmFpbGFibGUoY2xhc3NOYW1lKSB7XG4gICAgICAgIHZhciBjb25maWcgPSBTeXN0ZW1KUy5nZXRDb25maWcoKTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5tYXAgJiYgY29uZmlnLm1hcFtjbGFzc05hbWVdO1xuICAgIH07XG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRDbGFzc2VzQW5kQXBwbHkgPSBmdW5jdGlvbiBsb2FkQ2xhc3Nlc0FuZEFwcGx5KGNsYXNzTmFtZXMsIGNhbGxiYWNrRnVuYykge1xuICAgICAgICBpZiAoIVJlc291cmNlc01hbmFnZXIuX19jb25maWdzUGFyc2VkKSB7XG4gICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRBdXRvTG9hZFJlc291cmNlcygpO1xuICAgICAgICB9XG4gICAgICAgIFByb21pc2UuYWxsKGNsYXNzTmFtZXMubWFwKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgICByZXR1cm4gU3lzdGVtSlNbJ2ltcG9ydCddKGMpO1xuICAgICAgICB9KSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjYWxsYmFja0Z1bmMoKTtcbiAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIExvYWRpbmcgJyArIGNsYXNzTmFtZXMuam9pbignLCAnKSArICcgOiAnLCByZWFzb24pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZCBjbGFzcyBhbmQgcmV0dXJuIGFzIGEgcHJvbWlzZSAtIGRvIG5vdCBjYXRjaCBlcnJvclxuICAgICAqIEBwYXJhbSBjbGFzc05hbWVcbiAgICAgKiBAcmV0dXJuIHsqfFByb21pc2V8UHJvbWlzZUxpa2U8VD58UHJvbWlzZTxUPn1cbiAgICAgKi9cblxuICAgIFJlc291cmNlc01hbmFnZXIubG9hZENsYXNzID0gZnVuY3Rpb24gbG9hZENsYXNzKGNsYXNzTmFtZSkge1xuICAgICAgICBpZiAoIVJlc291cmNlc01hbmFnZXIuX19jb25maWdzUGFyc2VkKSB7XG4gICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRBdXRvTG9hZFJlc291cmNlcygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTeXN0ZW1KU1snaW1wb3J0J10oY2xhc3NOYW1lKTtcbiAgICB9O1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5kZXRlY3RNb2R1bGVUb0xvYWRBbmRBcHBseSA9IGZ1bmN0aW9uIGRldGVjdE1vZHVsZVRvTG9hZEFuZEFwcGx5KGNhbGxiYWNrU3RyaW5nLCBjYWxsYmFja0Z1bmMpIHtcbiAgICAgICAgdmFyIGFzeW5jID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICBpZiAoIVJlc291cmNlc01hbmFnZXIuX19jb25maWdzUGFyc2VkKSB7XG4gICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRBdXRvTG9hZFJlc291cmNlcygpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjbGFzc05hbWUgPSBjYWxsYmFja1N0cmluZy5zcGxpdCgnLicsIDEpLnNoaWZ0KCk7XG4gICAgICAgIGlmIChhc3luYykge1xuICAgICAgICAgICAgU3lzdGVtSlNbJ2ltcG9ydCddKGNsYXNzTmFtZSkudGhlbihjYWxsYmFja0Z1bmMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkU2NyaXB0U3luYyhjbGFzc05hbWUsIGNhbGxiYWNrRnVuYyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkU2NyaXB0U3luYyA9IGZ1bmN0aW9uIGxvYWRTY3JpcHRTeW5jKG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUuYXN5bmMoZnVuY3Rpb24gbG9hZFNjcmlwdFN5bmMkKGNvbnRleHQkMiQwKSB7XG4gICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChjb250ZXh0JDIkMC5wcmV2ID0gY29udGV4dCQyJDAubmV4dCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dCQyJDAubmV4dCA9IDI7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUuYXdyYXAoU3lzdGVtSlNbJ2ltcG9ydCddKG5hbWUpKTtcblxuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcblxuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICBjYXNlICdlbmQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGV4dCQyJDAuc3RvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBudWxsLCB0aGlzKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFJlc291cmNlc01hbmFnZXI7XG59KSgpO1xuXG5SZXNvdXJjZXNNYW5hZ2VyLl9fY29uZmlnc1BhcnNlZCA9IGZhbHNlO1xuUmVzb3VyY2VzTWFuYWdlci5fX3JlcXVpcmVzID0ge307XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc291cmNlc01hbmFnZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE4IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX1B5ZGlvQXBpID0gcmVxdWlyZSgnLi9QeWRpb0FwaScpO1xuXG52YXIgX1B5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1B5ZGlvQXBpKTtcblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX21vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xuXG52YXIgX21vbWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb21lbnQpO1xuXG52YXIgX2dlbkFwaUpvYnNTZXJ2aWNlQXBpID0gcmVxdWlyZShcIi4vZ2VuL2FwaS9Kb2JzU2VydmljZUFwaVwiKTtcblxudmFyIF9nZW5BcGlKb2JzU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5BcGlKb2JzU2VydmljZUFwaSk7XG5cbnZhciBfZ2VuTW9kZWxSZXN0VXNlckpvYlJlcXVlc3QgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvUmVzdFVzZXJKb2JSZXF1ZXN0XCIpO1xuXG52YXIgX2dlbk1vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0KTtcblxudmFyIF9nZW5BcGlGcm9udGVuZFNlcnZpY2VBcGkgPSByZXF1aXJlKFwiLi9nZW4vYXBpL0Zyb250ZW5kU2VydmljZUFwaVwiKTtcblxudmFyIF9nZW5BcGlGcm9udGVuZFNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuQXBpRnJvbnRlbmRTZXJ2aWNlQXBpKTtcblxudmFyIF9nZW5Nb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0ID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXF1ZXN0XCIpO1xuXG52YXIgX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuTW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCk7XG5cbnZhciBfZ2VuTW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlXCIpO1xuXG52YXIgX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlKTtcblxudmFyIF9JZG1BcGkgPSByZXF1aXJlKCcuL0lkbUFwaScpO1xuXG52YXIgX0lkbUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1BcGkpO1xuXG4vLyBPdmVycmlkZSBwYXJzZURhdGUgbWV0aG9kIHRvIHN1cHBvcnQgSVNPODYwMSBjcm9zcy1icm93c2VyXG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJy4vZ2VuL2luZGV4Jyk7XG5cbnZhciBBcGlDbGllbnQgPSBfcmVxdWlyZS5BcGlDbGllbnQ7XG5BcGlDbGllbnQucGFyc2VEYXRlID0gZnVuY3Rpb24gKHN0cikge1xuICAgIHJldHVybiBfbW9tZW50MlsnZGVmYXVsdCddKHN0cikudG9EYXRlKCk7XG59O1xuXG4vLyBPdmVycmlkZSBjYWxsQXBpIE1ldGhvZFxuXG52YXIgSnd0QXBpQ2xpZW50ID0gKGZ1bmN0aW9uIChfQXBpQ2xpZW50KSB7XG4gICAgX2luaGVyaXRzKEp3dEFwaUNsaWVudCwgX0FwaUNsaWVudCk7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBweWRpb09iamVjdCB7UHlkaW99XG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBKd3RBcGlDbGllbnQocHlkaW9PYmplY3QpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEp3dEFwaUNsaWVudCk7XG5cbiAgICAgICAgX0FwaUNsaWVudC5jYWxsKHRoaXMpO1xuICAgICAgICB0aGlzLmJhc2VQYXRoID0gcHlkaW9PYmplY3QuUGFyYW1ldGVycy5nZXQoJ0VORFBPSU5UX1JFU1RfQVBJJyk7XG4gICAgICAgIHRoaXMuZW5hYmxlQ29va2llcyA9IHRydWU7IC8vIGVuYWJsZXMgd2l0aENyZWRlbnRpYWxzKClcbiAgICAgICAgdGhpcy5weWRpbyA9IHB5ZGlvT2JqZWN0O1xuICAgICAgICBweWRpb09iamVjdC5vYnNlcnZlKCdiZWZvcmVBcHBseS1sb2dvdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfUHlkaW9BcGkyWydkZWZhdWx0J10uSldUX0RBVEEgPSBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0IHtSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdH1cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgSnd0QXBpQ2xpZW50LnByb3RvdHlwZS5qd3RFbmRwb2ludCA9IGZ1bmN0aW9uIGp3dEVuZHBvaW50KHJlcXVlc3QpIHtcbiAgICAgICAgdmFyIGhlYWRlcnMgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5weWRpby5QYXJhbWV0ZXJzLmhhcygnTUlOSVNJVEUnKSkge1xuICAgICAgICAgICAgaGVhZGVycyA9IHsgXCJYLVB5ZGlvLU1pbmlzaXRlXCI6IHRoaXMucHlkaW8uUGFyYW1ldGVycy5nZXQoJ01JTklTSVRFJykgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX0FwaUNsaWVudC5wcm90b3R5cGUuY2FsbEFwaS5jYWxsKHRoaXMsICcvZnJvbnRlbmQvc2Vzc2lvbicsICdQT1NUJywgbnVsbCwgbnVsbCwgaGVhZGVycywgbnVsbCwgcmVxdWVzdCwgW10sIFsnYXBwbGljYXRpb24vanNvbiddLCBbJ2FwcGxpY2F0aW9uL2pzb24nXSwgX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlMlsnZGVmYXVsdCddKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnJvbnRKd3RSZXNwb25zZSB7UmVzdEZyb250U2Vzc2lvblJlc3BvbnNlfVxuICAgICAqL1xuXG4gICAgSnd0QXBpQ2xpZW50LnN0b3JlSnd0TG9jYWxseSA9IGZ1bmN0aW9uIHN0b3JlSnd0TG9jYWxseShmcm9udEp3dFJlc3BvbnNlKSB7XG4gICAgICAgIHZhciBub3cgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbiAgICAgICAgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLkpXVF9EQVRBID0ge1xuICAgICAgICAgICAgand0OiBmcm9udEp3dFJlc3BvbnNlLkpXVCxcbiAgICAgICAgICAgIGV4cGlyYXRpb25UaW1lOiBub3cgKyBmcm9udEp3dFJlc3BvbnNlLkV4cGlyZVRpbWVcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2FsbCBzZXNzaW9uIGVuZHBvaW50IGZvciBkZXN0cm95aW5nIHNlc3Npb25cbiAgICAgKi9cblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUuc2Vzc2lvbkxvZ291dCA9IGZ1bmN0aW9uIHNlc3Npb25Mb2dvdXQoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpRnJvbnRlbmRTZXJ2aWNlQXBpMlsnZGVmYXVsdCddKHRoaXMpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfZ2VuTW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdDJbJ2RlZmF1bHQnXSgpO1xuICAgICAgICByZXF1ZXN0LkxvZ291dCA9IHRydWU7XG4gICAgICAgIHRoaXMuand0RW5kcG9pbnQocmVxdWVzdCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5KV1RfREFUQSA9IG51bGw7XG4gICAgICAgICAgICBfdGhpcy5weWRpby5sb2FkWG1sUmVnaXN0cnkoKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBBdXRoSW5mbyByZXF1ZXN0IHdpdGggdHlwZSBcImNyZWRlbnRpYWxzXCJcbiAgICAgKiBAcGFyYW0gbG9naW4gc3RyaW5nXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIHN0cmluZ1xuICAgICAqIEBwYXJhbSByZWxvYWRSZWdpc3RyeSBib29sXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fVxuICAgICAqL1xuXG4gICAgSnd0QXBpQ2xpZW50LnByb3RvdHlwZS5qd3RGcm9tQ3JlZGVudGlhbHMgPSBmdW5jdGlvbiBqd3RGcm9tQ3JlZGVudGlhbHMobG9naW4sIHBhc3N3b3JkKSB7XG4gICAgICAgIHZhciByZWxvYWRSZWdpc3RyeSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuand0V2l0aEF1dGhJbmZvKHsgbG9naW46IGxvZ2luLCBwYXNzd29yZDogcGFzc3dvcmQsIHR5cGU6IFwiY3JlZGVudGlhbHNcIiB9LCByZWxvYWRSZWdpc3RyeSk7XG4gICAgfTtcblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUuand0V2l0aEF1dGhJbmZvID0gZnVuY3Rpb24gand0V2l0aEF1dGhJbmZvKGF1dGhJbmZvKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciByZWxvYWRSZWdpc3RyeSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QyWydkZWZhdWx0J10oKTtcbiAgICAgICAgcmVxdWVzdC5BdXRoSW5mbyA9IGF1dGhJbmZvO1xuICAgICAgICByZXR1cm4gdGhpcy5qd3RFbmRwb2ludChyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5KV1QpIHtcbiAgICAgICAgICAgICAgICBKd3RBcGlDbGllbnQuc3RvcmVKd3RMb2NhbGx5KHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIGlmIChyZWxvYWRSZWdpc3RyeSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0UmVwb3NpdG9yeSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpczIucHlkaW8uUGFyYW1ldGVycy5oYXMoJ1NUQVJUX1JFUE9TSVRPUlknKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UmVwb3NpdG9yeSA9IF90aGlzMi5weWRpby5QYXJhbWV0ZXJzLmdldChcIlNUQVJUX1JFUE9TSVRPUllcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnB5ZGlvLmxvYWRYbWxSZWdpc3RyeShudWxsLCBudWxsLCB0YXJnZXRSZXBvc2l0b3J5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5UcmlnZ2VyKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLnB5ZGlvLmdldENvbnRyb2xsZXIoKS5maXJlQWN0aW9uKHJlc3BvbnNlLmRhdGEuVHJpZ2dlciwgcmVzcG9uc2UuZGF0YS5UcmlnZ2VySW5mbyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5KV1RfREFUQSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgSnd0QXBpQ2xpZW50LnByb3RvdHlwZS5nZXRPclVwZGF0ZUp3dCA9IGZ1bmN0aW9uIGdldE9yVXBkYXRlSnd0KCkge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICB2YXIgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgICAgIGlmIChfUHlkaW9BcGkyWydkZWZhdWx0J10uSldUX0RBVEEgJiYgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLkpXVF9EQVRBWydqd3QnXSAmJiBfUHlkaW9BcGkyWydkZWZhdWx0J10uSldUX0RBVEFbJ2V4cGlyYXRpb25UaW1lJ10gPj0gbm93KSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5KV1RfREFUQVsnand0J10pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5SZXNvbHZpbmdKd3QpIHtcbiAgICAgICAgICAgIHJldHVybiBfUHlkaW9BcGkyWydkZWZhdWx0J10uUmVzb2x2aW5nSnd0O1xuICAgICAgICB9XG5cbiAgICAgICAgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLlJlc29sdmluZ0p3dCA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG5cbiAgICAgICAgICAgIC8vIFRyeSB0byBsb2FkIEpXVCBmcm9tIHNlc3Npb25cbiAgICAgICAgICAgIF90aGlzMy5qd3RFbmRwb2ludChuZXcgX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QyWydkZWZhdWx0J10oKSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YSAmJiByZXNwb25zZS5kYXRhLkpXVCkge1xuICAgICAgICAgICAgICAgICAgICBKd3RBcGlDbGllbnQuc3RvcmVKd3RMb2NhbGx5KHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLmRhdGEuSldUKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5UcmlnZ2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMy5weWRpby5nZXRDb250cm9sbGVyKCkuZmlyZUFjdGlvbihyZXNwb25zZS5kYXRhLlRyaWdnZXIsIHJlc3BvbnNlLmRhdGEuVHJpZ2dlckluZm8pO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCcnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBfUHlkaW9BcGkyWydkZWZhdWx0J10uSldUX0RBVEEgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLlJlc29sdmluZ0p3dCA9IG51bGw7XG4gICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlLnJlc3BvbnNlICYmIGUucmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMzLnB5ZGlvLmdldENvbnRyb2xsZXIoKS5maXJlQWN0aW9uKCdsb2dvdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLlJlc29sdmluZ0p3dCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5KV1RfREFUQSA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgnJyk7XG4gICAgICAgICAgICAgICAgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLlJlc29sdmluZ0p3dCA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5SZXNvbHZpbmdKd3Q7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgdGhlIFJFU1Qgc2VydmljZSB1c2luZyB0aGUgc3VwcGxpZWQgc2V0dGluZ3MgYW5kIHBhcmFtZXRlcnMuXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHBhdGggVGhlIGJhc2UgVVJMIHRvIGludm9rZS5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gaHR0cE1ldGhvZCBUaGUgSFRUUCBtZXRob2QgdG8gdXNlLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IHBhdGhQYXJhbXMgQSBtYXAgb2YgcGF0aCBwYXJhbWV0ZXJzIGFuZCB0aGVpciB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3QuPFN0cmluZywgT2JqZWN0Pn0gcXVlcnlQYXJhbXMgQSBtYXAgb2YgcXVlcnkgcGFyYW1ldGVycyBhbmQgdGhlaXIgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0LjxTdHJpbmcsIE9iamVjdD59IGhlYWRlclBhcmFtcyBBIG1hcCBvZiBoZWFkZXIgcGFyYW1ldGVycyBhbmQgdGhlaXIgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0LjxTdHJpbmcsIE9iamVjdD59IGZvcm1QYXJhbXMgQSBtYXAgb2YgZm9ybSBwYXJhbWV0ZXJzIGFuZCB0aGVpciB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGJvZHlQYXJhbSBUaGUgdmFsdWUgdG8gcGFzcyBhcyB0aGUgcmVxdWVzdCBib2R5LlxuICAgICAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGF1dGhOYW1lcyBBbiBhcnJheSBvZiBhdXRoZW50aWNhdGlvbiB0eXBlIG5hbWVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGNvbnRlbnRUeXBlcyBBbiBhcnJheSBvZiByZXF1ZXN0IE1JTUUgdHlwZXMuXG4gICAgICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gYWNjZXB0cyBBbiBhcnJheSBvZiBhY2NlcHRhYmxlIHJlc3BvbnNlIE1JTUUgdHlwZXMuXG4gICAgICogQHBhcmFtIHsoU3RyaW5nfEFycmF5fE9iamVjdEZ1bmN0aW9uKX0gcmV0dXJuVHlwZSBUaGUgcmVxdWlyZWQgdHlwZSB0byByZXR1cm47IGNhbiBiZSBhIHN0cmluZyBmb3Igc2ltcGxlIHR5cGVzIG9yIHRoZVxuICAgICAqIGNvbnN0cnVjdG9yIGZvciBhIGNvbXBsZXggdHlwZS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gQSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0gb2JqZWN0LlxuICAgICAqL1xuXG4gICAgSnd0QXBpQ2xpZW50LnByb3RvdHlwZS5jYWxsQXBpID0gZnVuY3Rpb24gY2FsbEFwaShwYXRoLCBodHRwTWV0aG9kLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBib2R5UGFyYW0sIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKSB7XG4gICAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICAgIGlmICh0aGlzLnB5ZGlvLnVzZXIgJiYgdGhpcy5weWRpby51c2VyLmdldFByZWZlcmVuY2UoXCJsYW5nXCIpKSB7XG4gICAgICAgICAgICBoZWFkZXJQYXJhbXNbXCJYLVB5ZGlvLUxhbmd1YWdlXCJdID0gdGhpcy5weWRpby51c2VyLmdldFByZWZlcmVuY2UoXCJsYW5nXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcblxuICAgICAgICAgICAgX3RoaXM0LmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICAgICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIGlmIChqd3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYXV0aE5hbWVzLnB1c2goJ29hdXRoMicpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczQuYXV0aGVudGljYXRpb25zID0geyAnb2F1dGgyJzogeyB0eXBlOiAnb2F1dGgyJywgYWNjZXNzVG9rZW46IGp3dCB9IH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBwID0gX0FwaUNsaWVudC5wcm90b3R5cGUuY2FsbEFwaS5jYWxsKF90aGlzNCwgcGF0aCwgaHR0cE1ldGhvZCwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgYm9keVBhcmFtLCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gICAgICAgICAgICAgICAgcC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzNC5oYW5kbGVFcnJvcihyZWFzb24pO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QocmVhc29uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgICAgICAgICBfdGhpczQuaGFuZGxlRXJyb3IocmVhc29uKTtcbiAgICAgICAgICAgICAgICByZWplY3QocmVhc29uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgSnd0QXBpQ2xpZW50LnByb3RvdHlwZS5oYW5kbGVFcnJvciA9IGZ1bmN0aW9uIGhhbmRsZUVycm9yKHJlYXNvbikge1xuICAgICAgICB2YXIgbXNnID0gcmVhc29uLm1lc3NhZ2U7XG4gICAgICAgIGlmIChyZWFzb24ucmVzcG9uc2UgJiYgcmVhc29uLnJlc3BvbnNlLmJvZHkpIHtcbiAgICAgICAgICAgIG1zZyA9IHJlYXNvbi5yZXNwb25zZS5ib2R5O1xuICAgICAgICB9IGVsc2UgaWYgKHJlYXNvbi5yZXNwb25zZSAmJiByZWFzb24ucmVzcG9uc2UudGV4dCkge1xuICAgICAgICAgICAgbXNnID0gcmVhc29uLnJlc3BvbnNlLnRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlYXNvbi5yZXNwb25zZSAmJiByZWFzb24ucmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgIHRoaXMucHlkaW8uZ2V0Q29udHJvbGxlcigpLmZpcmVBY3Rpb24oJ2xvZ291dCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWFzb24ucmVzcG9uc2UgJiYgcmVhc29uLnJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAvLyA0MDQgbWF5IGhhcHBlblxuICAgICAgICAgICAgY29uc29sZS5pbmZvKCc0MDQgbm90IGZvdW5kJywgbXNnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5weWRpbyAmJiB0aGlzLnB5ZGlvLlVJKSB7XG4gICAgICAgICAgICB0aGlzLnB5ZGlvLlVJLmRpc3BsYXlNZXNzYWdlKCdFUlJPUicsIG1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnNvbGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVhc29uKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lXG4gICAgICogQHBhcmFtIHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgSnd0QXBpQ2xpZW50LnByb3RvdHlwZS51c2VySm9iID0gZnVuY3Rpb24gdXNlckpvYihuYW1lLCBwYXJhbWV0ZXJzKSB7XG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaUpvYnNTZXJ2aWNlQXBpMlsnZGVmYXVsdCddKHRoaXMpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfZ2VuTW9kZWxSZXN0VXNlckpvYlJlcXVlc3QyWydkZWZhdWx0J10oKTtcbiAgICAgICAgcmVxdWVzdC5Kb2JOYW1lID0gbmFtZTtcbiAgICAgICAgcmVxdWVzdC5Kc29uUGFyYW1ldGVycyA9IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMpO1xuICAgICAgICByZXR1cm4gYXBpLnVzZXJDcmVhdGVKb2IobmFtZSwgcmVxdWVzdCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge0lkbUFwaX1cbiAgICAgKi9cblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUuZ2V0SWRtQXBpID0gZnVuY3Rpb24gZ2V0SWRtQXBpKCkge1xuICAgICAgICByZXR1cm4gbmV3IF9JZG1BcGkyWydkZWZhdWx0J10odGhpcyk7XG4gICAgfTtcblxuICAgIHJldHVybiBKd3RBcGlDbGllbnQ7XG59KShBcGlDbGllbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKd3RBcGlDbGllbnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfc3VwZXJhZ2VudCA9IHJlcXVpcmUoXCJzdXBlcmFnZW50XCIpO1xuXG52YXIgX3N1cGVyYWdlbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3VwZXJhZ2VudCk7XG5cbnZhciBfcXVlcnlzdHJpbmcgPSByZXF1aXJlKFwicXVlcnlzdHJpbmdcIik7XG5cbnZhciBfcXVlcnlzdHJpbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcXVlcnlzdHJpbmcpO1xuXG4vKipcbiogQG1vZHVsZSBBcGlDbGllbnRcbiogQHZlcnNpb24gMS4wXG4qL1xuXG4vKipcbiogTWFuYWdlcyBsb3cgbGV2ZWwgY2xpZW50LXNlcnZlciBjb21tdW5pY2F0aW9ucywgcGFyYW1ldGVyIG1hcnNoYWxsaW5nLCBldGMuIFRoZXJlIHNob3VsZCBub3QgYmUgYW55IG5lZWQgZm9yIGFuXG4qIGFwcGxpY2F0aW9uIHRvIHVzZSB0aGlzIGNsYXNzIGRpcmVjdGx5IC0gdGhlICpBcGkgYW5kIG1vZGVsIGNsYXNzZXMgcHJvdmlkZSB0aGUgcHVibGljIEFQSSBmb3IgdGhlIHNlcnZpY2UuIFRoZVxuKiBjb250ZW50cyBvZiB0aGlzIGZpbGUgc2hvdWxkIGJlIHJlZ2FyZGVkIGFzIGludGVybmFsIGJ1dCBhcmUgZG9jdW1lbnRlZCBmb3IgY29tcGxldGVuZXNzLlxuKiBAYWxpYXMgbW9kdWxlOkFwaUNsaWVudFxuKiBAY2xhc3NcbiovXG5cbnZhciBBcGlDbGllbnQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFwaUNsaWVudCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFwaUNsaWVudCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBiYXNlIFVSTCBhZ2FpbnN0IHdoaWNoIHRvIHJlc29sdmUgZXZlcnkgQVBJIGNhbGwncyAocmVsYXRpdmUpIHBhdGguXG4gICAgICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICAgICAqIEBkZWZhdWx0IGh0dHA6Ly9sb2NhbGhvc3RcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYmFzZVBhdGggPSAnaHR0cDovL2xvY2FsaG9zdCcucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBhdXRoZW50aWNhdGlvbiBtZXRob2RzIHRvIGJlIGluY2x1ZGVkIGZvciBhbGwgQVBJIGNhbGxzLlxuICAgICAgICAgKiBAdHlwZSB7QXJyYXkuPFN0cmluZz59XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9ucyA9IHt9O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZGVmYXVsdCBIVFRQIGhlYWRlcnMgdG8gYmUgaW5jbHVkZWQgZm9yIGFsbCBBUEkgY2FsbHMuXG4gICAgICAgICAqIEB0eXBlIHtBcnJheS48U3RyaW5nPn1cbiAgICAgICAgICogQGRlZmF1bHQge31cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZGVmYXVsdEhlYWRlcnMgPSB7fTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGRlZmF1bHQgSFRUUCB0aW1lb3V0IGZvciBhbGwgQVBJIGNhbGxzLlxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKiBAZGVmYXVsdCA2MDAwMFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy50aW1lb3V0ID0gNjAwMDA7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHNldCB0byBmYWxzZSBhbiBhZGRpdGlvbmFsIHRpbWVzdGFtcCBwYXJhbWV0ZXIgaXMgYWRkZWQgdG8gYWxsIEFQSSBHRVQgY2FsbHMgdG9cbiAgICAgICAgICogcHJldmVudCBicm93c2VyIGNhY2hpbmdcbiAgICAgICAgICogQHR5cGUge0Jvb2xlYW59XG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY2FjaGUgPSB0cnVlO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGNsaWVudCB3aWxsIHNhdmUgdGhlIGNvb2tpZXMgZnJvbSBlYWNoIHNlcnZlclxuICAgICAgICAgKiByZXNwb25zZSwgYW5kIHJldHVybiB0aGVtIGluIHRoZSBuZXh0IHJlcXVlc3QuXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmVuYWJsZUNvb2tpZXMgPSBmYWxzZTtcblxuICAgICAgICAvKlxuICAgICAgICAgKiBVc2VkIHRvIHNhdmUgYW5kIHJldHVybiBjb29raWVzIGluIGEgbm9kZS5qcyAobm9uLWJyb3dzZXIpIHNldHRpbmcsXG4gICAgICAgICAqIGlmIHRoaXMuZW5hYmxlQ29va2llcyBpcyBzZXQgdG8gdHJ1ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5hZ2VudCA9IG5ldyBfc3VwZXJhZ2VudDJbXCJkZWZhdWx0XCJdLmFnZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFRoZSBkZWZhdWx0IEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24uXG4gICAgKiBAdHlwZSB7bW9kdWxlOkFwaUNsaWVudH1cbiAgICAqL1xuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciBhbiBhY3R1YWwgcGFyYW1ldGVyLlxuICAgICogQHBhcmFtIHBhcmFtIFRoZSBhY3R1YWwgcGFyYW1ldGVyLlxuICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiA8Y29kZT5wYXJhbTwvY29kZT4uXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5wcm90b3R5cGUucGFyYW1Ub1N0cmluZyA9IGZ1bmN0aW9uIHBhcmFtVG9TdHJpbmcocGFyYW0pIHtcbiAgICAgICAgaWYgKHBhcmFtID09IHVuZGVmaW5lZCB8fCBwYXJhbSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtLnRvSlNPTigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtLnRvU3RyaW5nKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQnVpbGRzIGZ1bGwgVVJMIGJ5IGFwcGVuZGluZyB0aGUgZ2l2ZW4gcGF0aCB0byB0aGUgYmFzZSBVUkwgYW5kIHJlcGxhY2luZyBwYXRoIHBhcmFtZXRlciBwbGFjZS1ob2xkZXJzIHdpdGggcGFyYW1ldGVyIHZhbHVlcy5cbiAgICAqIE5PVEU6IHF1ZXJ5IHBhcmFtZXRlcnMgYXJlIG5vdCBoYW5kbGVkIGhlcmUuXG4gICAgKiBAcGFyYW0ge1N0cmluZ30gcGF0aCBUaGUgcGF0aCB0byBhcHBlbmQgdG8gdGhlIGJhc2UgVVJMLlxuICAgICogQHBhcmFtIHtPYmplY3R9IHBhdGhQYXJhbXMgVGhlIHBhcmFtZXRlciB2YWx1ZXMgdG8gYXBwZW5kLlxuICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIGVuY29kZWQgcGF0aCB3aXRoIHBhcmFtZXRlciB2YWx1ZXMgc3Vic3RpdHV0ZWQuXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5wcm90b3R5cGUuYnVpbGRVcmwgPSBmdW5jdGlvbiBidWlsZFVybChwYXRoLCBwYXRoUGFyYW1zKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCFwYXRoLm1hdGNoKC9eXFwvLykpIHtcbiAgICAgICAgICAgIHBhdGggPSAnLycgKyBwYXRoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHVybCA9IHRoaXMuYmFzZVBhdGggKyBwYXRoO1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFx7KFtcXHctXSspXFx9L2csIGZ1bmN0aW9uIChmdWxsTWF0Y2gsIGtleSkge1xuICAgICAgICAgICAgdmFyIHZhbHVlO1xuICAgICAgICAgICAgaWYgKHBhdGhQYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gX3RoaXMucGFyYW1Ub1N0cmluZyhwYXRoUGFyYW1zW2tleV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGZ1bGxNYXRjaDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGNvbnRlbnQgdHlwZSByZXByZXNlbnRzIEpTT04uPGJyPlxuICAgICogSlNPTiBjb250ZW50IHR5cGUgZXhhbXBsZXM6PGJyPlxuICAgICogPHVsPlxuICAgICogPGxpPmFwcGxpY2F0aW9uL2pzb248L2xpPlxuICAgICogPGxpPmFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGODwvbGk+XG4gICAgKiA8bGk+QVBQTElDQVRJT04vSlNPTjwvbGk+XG4gICAgKiA8L3VsPlxuICAgICogQHBhcmFtIHtTdHJpbmd9IGNvbnRlbnRUeXBlIFRoZSBNSU1FIGNvbnRlbnQgdHlwZSB0byBjaGVjay5cbiAgICAqIEByZXR1cm5zIHtCb29sZWFufSA8Y29kZT50cnVlPC9jb2RlPiBpZiA8Y29kZT5jb250ZW50VHlwZTwvY29kZT4gcmVwcmVzZW50cyBKU09OLCBvdGhlcndpc2UgPGNvZGU+ZmFsc2U8L2NvZGU+LlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLmlzSnNvbk1pbWUgPSBmdW5jdGlvbiBpc0pzb25NaW1lKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKGNvbnRlbnRUeXBlICE9IG51bGwgJiYgY29udGVudFR5cGUubWF0Y2goL15hcHBsaWNhdGlvblxcL2pzb24oOy4qKT8kL2kpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBDaG9vc2VzIGEgY29udGVudCB0eXBlIGZyb20gdGhlIGdpdmVuIGFycmF5LCB3aXRoIEpTT04gcHJlZmVycmVkOyBpLmUuIHJldHVybiBKU09OIGlmIGluY2x1ZGVkLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBmaXJzdC5cbiAgICAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGNvbnRlbnRUeXBlc1xuICAgICogQHJldHVybnMge1N0cmluZ30gVGhlIGNob3NlbiBjb250ZW50IHR5cGUsIHByZWZlcnJpbmcgSlNPTi5cbiAgICAqL1xuXG4gICAgQXBpQ2xpZW50LnByb3RvdHlwZS5qc29uUHJlZmVycmVkTWltZSA9IGZ1bmN0aW9uIGpzb25QcmVmZXJyZWRNaW1lKGNvbnRlbnRUeXBlcykge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRlbnRUeXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNKc29uTWltZShjb250ZW50VHlwZXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250ZW50VHlwZXNbMF07XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHBhcmFtZXRlciB2YWx1ZSByZXByZXNlbnRzIGZpbGUtbGlrZSBjb250ZW50LlxuICAgICogQHBhcmFtIHBhcmFtIFRoZSBwYXJhbWV0ZXIgdG8gY2hlY2suXG4gICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgPGNvZGU+cGFyYW08L2NvZGU+IHJlcHJlc2VudHMgYSBmaWxlLlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLmlzRmlsZVBhcmFtID0gZnVuY3Rpb24gaXNGaWxlUGFyYW0ocGFyYW0pIHtcbiAgICAgICAgLy8gZnMuUmVhZFN0cmVhbSBpbiBOb2RlLmpzIGFuZCBFbGVjdHJvbiAoYnV0IG5vdCBpbiBydW50aW1lIGxpa2UgYnJvd3NlcmlmeSlcbiAgICAgICAgaWYgKHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgZnMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZzID0gcmVxdWlyZSgnZnMnKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge31cbiAgICAgICAgICAgIGlmIChmcyAmJiBmcy5SZWFkU3RyZWFtICYmIHBhcmFtIGluc3RhbmNlb2YgZnMuUmVhZFN0cmVhbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQnVmZmVyIGluIE5vZGUuanNcbiAgICAgICAgaWYgKHR5cGVvZiBCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgcGFyYW0gaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmxvYiBpbiBicm93c2VyXG4gICAgICAgIGlmICh0eXBlb2YgQmxvYiA9PT0gJ2Z1bmN0aW9uJyAmJiBwYXJhbSBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsZSBpbiBicm93c2VyIChpdCBzZWVtcyBGaWxlIG9iamVjdCBpcyBhbHNvIGluc3RhbmNlIG9mIEJsb2IsIGJ1dCBrZWVwIHRoaXMgZm9yIHNhZmUpXG4gICAgICAgIGlmICh0eXBlb2YgRmlsZSA9PT0gJ2Z1bmN0aW9uJyAmJiBwYXJhbSBpbnN0YW5jZW9mIEZpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIE5vcm1hbGl6ZXMgcGFyYW1ldGVyIHZhbHVlczpcbiAgICAqIDx1bD5cbiAgICAqIDxsaT5yZW1vdmUgbmlsczwvbGk+XG4gICAgKiA8bGk+a2VlcCBmaWxlcyBhbmQgYXJyYXlzPC9saT5cbiAgICAqIDxsaT5mb3JtYXQgdG8gc3RyaW5nIHdpdGggYHBhcmFtVG9TdHJpbmdgIGZvciBvdGhlciBjYXNlczwvbGk+XG4gICAgKiA8L3VsPlxuICAgICogQHBhcmFtIHtPYmplY3QuPFN0cmluZywgT2JqZWN0Pn0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIGFzIG9iamVjdCBwcm9wZXJ0aWVzLlxuICAgICogQHJldHVybnMge09iamVjdC48U3RyaW5nLCBPYmplY3Q+fSBub3JtYWxpemVkIHBhcmFtZXRlcnMuXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5wcm90b3R5cGUubm9ybWFsaXplUGFyYW1zID0gZnVuY3Rpb24gbm9ybWFsaXplUGFyYW1zKHBhcmFtcykge1xuICAgICAgICB2YXIgbmV3UGFyYW1zID0ge307XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBwYXJhbXMpIHtcbiAgICAgICAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBwYXJhbXNba2V5XSAhPSB1bmRlZmluZWQgJiYgcGFyYW1zW2tleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHBhcmFtc1trZXldO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRmlsZVBhcmFtKHZhbHVlKSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbXNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1BhcmFtc1trZXldID0gdGhpcy5wYXJhbVRvU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3UGFyYW1zO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEVudW1lcmF0aW9uIG9mIGNvbGxlY3Rpb24gZm9ybWF0IHNlcGFyYXRvciBzdHJhdGVnaWVzLlxuICAgICogQGVudW0ge1N0cmluZ31cbiAgICAqIEByZWFkb25seVxuICAgICovXG5cbiAgICAvKipcbiAgICAqIEJ1aWxkcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBhcnJheS10eXBlIGFjdHVhbCBwYXJhbWV0ZXIsIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gY29sbGVjdGlvbiBmb3JtYXQuXG4gICAgKiBAcGFyYW0ge0FycmF5fSBwYXJhbSBBbiBhcnJheSBwYXJhbWV0ZXIuXG4gICAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnQuQ29sbGVjdGlvbkZvcm1hdEVudW19IGNvbGxlY3Rpb25Gb3JtYXQgVGhlIGFycmF5IGVsZW1lbnQgc2VwYXJhdG9yIHN0cmF0ZWd5LlxuICAgICogQHJldHVybnMge1N0cmluZ3xBcnJheX0gQSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHN1cHBsaWVkIGNvbGxlY3Rpb24sIHVzaW5nIHRoZSBzcGVjaWZpZWQgZGVsaW1pdGVyLiBSZXR1cm5zXG4gICAgKiA8Y29kZT5wYXJhbTwvY29kZT4gYXMgaXMgaWYgPGNvZGU+Y29sbGVjdGlvbkZvcm1hdDwvY29kZT4gaXMgPGNvZGU+bXVsdGk8L2NvZGU+LlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLmJ1aWxkQ29sbGVjdGlvblBhcmFtID0gZnVuY3Rpb24gYnVpbGRDb2xsZWN0aW9uUGFyYW0ocGFyYW0sIGNvbGxlY3Rpb25Gb3JtYXQpIHtcbiAgICAgICAgaWYgKHBhcmFtID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoY29sbGVjdGlvbkZvcm1hdCkge1xuICAgICAgICAgICAgY2FzZSAnY3N2JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW0ubWFwKHRoaXMucGFyYW1Ub1N0cmluZykuam9pbignLCcpO1xuICAgICAgICAgICAgY2FzZSAnc3N2JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW0ubWFwKHRoaXMucGFyYW1Ub1N0cmluZykuam9pbignICcpO1xuICAgICAgICAgICAgY2FzZSAndHN2JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW0ubWFwKHRoaXMucGFyYW1Ub1N0cmluZykuam9pbignXFx0Jyk7XG4gICAgICAgICAgICBjYXNlICdwaXBlcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtLm1hcCh0aGlzLnBhcmFtVG9TdHJpbmcpLmpvaW4oJ3wnKTtcbiAgICAgICAgICAgIGNhc2UgJ211bHRpJzpcbiAgICAgICAgICAgICAgICAvL3JldHVybiB0aGUgYXJyYXkgZGlyZWN0bHkgYXMgU3VwZXJBZ2VudCB3aWxsIGhhbmRsZSBpdCBhcyBleHBlY3RlZFxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJhbS5tYXAodGhpcy5wYXJhbVRvU3RyaW5nKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGNvbGxlY3Rpb24gZm9ybWF0OiAnICsgY29sbGVjdGlvbkZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBBcHBsaWVzIGF1dGhlbnRpY2F0aW9uIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gcmVxdWVzdCBUaGUgcmVxdWVzdCBvYmplY3QgY3JlYXRlZCBieSBhIDxjb2RlPnN1cGVyYWdlbnQoKTwvY29kZT4gY2FsbC5cbiAgICAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGF1dGhOYW1lcyBBbiBhcnJheSBvZiBhdXRoZW50aWNhdGlvbiBtZXRob2QgbmFtZXMuXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5wcm90b3R5cGUuYXBwbHlBdXRoVG9SZXF1ZXN0ID0gZnVuY3Rpb24gYXBwbHlBdXRoVG9SZXF1ZXN0KHJlcXVlc3QsIGF1dGhOYW1lcykge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICBhdXRoTmFtZXMuZm9yRWFjaChmdW5jdGlvbiAoYXV0aE5hbWUpIHtcbiAgICAgICAgICAgIHZhciBhdXRoID0gX3RoaXMyLmF1dGhlbnRpY2F0aW9uc1thdXRoTmFtZV07XG4gICAgICAgICAgICBzd2l0Y2ggKGF1dGgudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Jhc2ljJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGgudXNlcm5hbWUgfHwgYXV0aC5wYXNzd29yZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5hdXRoKGF1dGgudXNlcm5hbWUgfHwgJycsIGF1dGgucGFzc3dvcmQgfHwgJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYXBpS2V5JzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGguYXBpS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGguYXBpS2V5UHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVthdXRoLm5hbWVdID0gYXV0aC5hcGlLZXlQcmVmaXggKyAnICcgKyBhdXRoLmFwaUtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVthdXRoLm5hbWVdID0gYXV0aC5hcGlLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRoWydpbiddID09PSAnaGVhZGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0KGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnF1ZXJ5KGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnb2F1dGgyJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGguYWNjZXNzVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0KHsgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhdXRoLmFjY2Vzc1Rva2VuIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGF1dGhlbnRpY2F0aW9uIHR5cGU6ICcgKyBhdXRoLnR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBEZXNlcmlhbGl6ZXMgYW4gSFRUUCByZXNwb25zZSBib2R5IGludG8gYSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gcmVzcG9uc2UgQSBTdXBlckFnZW50IHJlc3BvbnNlIG9iamVjdC5cbiAgICAqIEBwYXJhbSB7KFN0cmluZ3xBcnJheS48U3RyaW5nPnxPYmplY3QuPFN0cmluZywgT2JqZWN0PnxGdW5jdGlvbil9IHJldHVyblR5cGUgVGhlIHR5cGUgdG8gcmV0dXJuLiBQYXNzIGEgc3RyaW5nIGZvciBzaW1wbGUgdHlwZXNcbiAgICAqIG9yIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgYSBjb21wbGV4IHR5cGUuIFBhc3MgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgdHlwZSBuYW1lIHRvIHJldHVybiBhbiBhcnJheSBvZiB0aGF0IHR5cGUuIFRvXG4gICAgKiByZXR1cm4gYW4gb2JqZWN0LCBwYXNzIGFuIG9iamVjdCB3aXRoIG9uZSBwcm9wZXJ0eSB3aG9zZSBuYW1lIGlzIHRoZSBrZXkgdHlwZSBhbmQgd2hvc2UgdmFsdWUgaXMgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgdHlwZTpcbiAgICAqIGFsbCBwcm9wZXJ0aWVzIG9uIDxjb2RlPmRhdGE8Y29kZT4gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhpcyB0eXBlLlxuICAgICogQHJldHVybnMgQSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5wcm90b3R5cGUuZGVzZXJpYWxpemUgPSBmdW5jdGlvbiBkZXNlcmlhbGl6ZShyZXNwb25zZSwgcmV0dXJuVHlwZSkge1xuICAgICAgICBpZiAocmVzcG9uc2UgPT0gbnVsbCB8fCByZXR1cm5UeXBlID09IG51bGwgfHwgcmVzcG9uc2Uuc3RhdHVzID09IDIwNCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWx5IG9uIFN1cGVyQWdlbnQgZm9yIHBhcnNpbmcgcmVzcG9uc2UgYm9keS5cbiAgICAgICAgLy8gU2VlIGh0dHA6Ly92aXNpb25tZWRpYS5naXRodWIuaW8vc3VwZXJhZ2VudC8jcGFyc2luZy1yZXNwb25zZS1ib2RpZXNcbiAgICAgICAgdmFyIGRhdGEgPSByZXNwb25zZS5ib2R5O1xuICAgICAgICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgZGF0YS5sZW5ndGggPT09ICd1bmRlZmluZWQnICYmICFPYmplY3Qua2V5cyhkYXRhKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIFN1cGVyQWdlbnQgZG9lcyBub3QgYWx3YXlzIHByb2R1Y2UgYSBib2R5OyB1c2UgdGhlIHVucGFyc2VkIHJlc3BvbnNlIGFzIGEgZmFsbGJhY2tcbiAgICAgICAgICAgIGRhdGEgPSByZXNwb25zZS50ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEFwaUNsaWVudC5jb252ZXJ0VG9UeXBlKGRhdGEsIHJldHVyblR5cGUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEludm9rZXMgdGhlIFJFU1Qgc2VydmljZSB1c2luZyB0aGUgc3VwcGxpZWQgc2V0dGluZ3MgYW5kIHBhcmFtZXRlcnMuXG4gICAgKiBAcGFyYW0ge1N0cmluZ30gcGF0aCBUaGUgYmFzZSBVUkwgdG8gaW52b2tlLlxuICAgICogQHBhcmFtIHtTdHJpbmd9IGh0dHBNZXRob2QgVGhlIEhUVFAgbWV0aG9kIHRvIHVzZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IHBhdGhQYXJhbXMgQSBtYXAgb2YgcGF0aCBwYXJhbWV0ZXJzIGFuZCB0aGVpciB2YWx1ZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdC48U3RyaW5nLCBPYmplY3Q+fSBxdWVyeVBhcmFtcyBBIG1hcCBvZiBxdWVyeSBwYXJhbWV0ZXJzIGFuZCB0aGVpciB2YWx1ZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdC48U3RyaW5nLCBPYmplY3Q+fSBoZWFkZXJQYXJhbXMgQSBtYXAgb2YgaGVhZGVyIHBhcmFtZXRlcnMgYW5kIHRoZWlyIHZhbHVlcy5cbiAgICAqIEBwYXJhbSB7T2JqZWN0LjxTdHJpbmcsIE9iamVjdD59IGZvcm1QYXJhbXMgQSBtYXAgb2YgZm9ybSBwYXJhbWV0ZXJzIGFuZCB0aGVpciB2YWx1ZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gYm9keVBhcmFtIFRoZSB2YWx1ZSB0byBwYXNzIGFzIHRoZSByZXF1ZXN0IGJvZHkuXG4gICAgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBhdXRoTmFtZXMgQW4gYXJyYXkgb2YgYXV0aGVudGljYXRpb24gdHlwZSBuYW1lcy5cbiAgICAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGNvbnRlbnRUeXBlcyBBbiBhcnJheSBvZiByZXF1ZXN0IE1JTUUgdHlwZXMuXG4gICAgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBhY2NlcHRzIEFuIGFycmF5IG9mIGFjY2VwdGFibGUgcmVzcG9uc2UgTUlNRSB0eXBlcy5cbiAgICAqIEBwYXJhbSB7KFN0cmluZ3xBcnJheXxPYmplY3RGdW5jdGlvbil9IHJldHVyblR5cGUgVGhlIHJlcXVpcmVkIHR5cGUgdG8gcmV0dXJuOyBjYW4gYmUgYSBzdHJpbmcgZm9yIHNpbXBsZSB0eXBlcyBvciB0aGVcbiAgICAqIGNvbnN0cnVjdG9yIGZvciBhIGNvbXBsZXggdHlwZS5cbiAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSBvYmplY3QuXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5wcm90b3R5cGUuY2FsbEFwaSA9IGZ1bmN0aW9uIGNhbGxBcGkocGF0aCwgaHR0cE1ldGhvZCwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgYm9keVBhcmFtLCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSkge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICB2YXIgdXJsID0gdGhpcy5idWlsZFVybChwYXRoLCBwYXRoUGFyYW1zKTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBfc3VwZXJhZ2VudDJbXCJkZWZhdWx0XCJdKGh0dHBNZXRob2QsIHVybCk7XG5cbiAgICAgICAgLy8gYXBwbHkgYXV0aGVudGljYXRpb25zXG4gICAgICAgIHRoaXMuYXBwbHlBdXRoVG9SZXF1ZXN0KHJlcXVlc3QsIGF1dGhOYW1lcyk7XG5cbiAgICAgICAgLy8gc2V0IHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICAgICAgaWYgKGh0dHBNZXRob2QudG9VcHBlckNhc2UoKSA9PT0gJ0dFVCcgJiYgdGhpcy5jYWNoZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zWydfJ10gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcXVlc3QucXVlcnkodGhpcy5ub3JtYWxpemVQYXJhbXMocXVlcnlQYXJhbXMpKTtcblxuICAgICAgICAvLyBzZXQgaGVhZGVyIHBhcmFtZXRlcnNcbiAgICAgICAgcmVxdWVzdC5zZXQodGhpcy5kZWZhdWx0SGVhZGVycykuc2V0KHRoaXMubm9ybWFsaXplUGFyYW1zKGhlYWRlclBhcmFtcykpO1xuXG4gICAgICAgIC8vIHNldCByZXF1ZXN0IHRpbWVvdXRcbiAgICAgICAgcmVxdWVzdC50aW1lb3V0KHRoaXMudGltZW91dCk7XG5cbiAgICAgICAgdmFyIGNvbnRlbnRUeXBlID0gdGhpcy5qc29uUHJlZmVycmVkTWltZShjb250ZW50VHlwZXMpO1xuICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICAgIC8vIElzc3VlIHdpdGggc3VwZXJhZ2VudCBhbmQgbXVsdGlwYXJ0L2Zvcm0tZGF0YSAoaHR0cHM6Ly9naXRodWIuY29tL3Zpc2lvbm1lZGlhL3N1cGVyYWdlbnQvaXNzdWVzLzc0NilcbiAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSAhPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LnR5cGUoY29udGVudFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlclsnQ29udGVudC1UeXBlJ10pIHtcbiAgICAgICAgICAgIHJlcXVlc3QudHlwZSgnYXBwbGljYXRpb24vanNvbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRlbnRUeXBlID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykge1xuICAgICAgICAgICAgcmVxdWVzdC5zZW5kKF9xdWVyeXN0cmluZzJbXCJkZWZhdWx0XCJdLnN0cmluZ2lmeSh0aGlzLm5vcm1hbGl6ZVBhcmFtcyhmb3JtUGFyYW1zKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRUeXBlID09ICdtdWx0aXBhcnQvZm9ybS1kYXRhJykge1xuICAgICAgICAgICAgdmFyIF9mb3JtUGFyYW1zID0gdGhpcy5ub3JtYWxpemVQYXJhbXMoZm9ybVBhcmFtcyk7XG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gX2Zvcm1QYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoX2Zvcm1QYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ZpbGVQYXJhbShfZm9ybVBhcmFtc1trZXldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsZSBmaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5hdHRhY2goa2V5LCBfZm9ybVBhcmFtc1trZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuZmllbGQoa2V5LCBfZm9ybVBhcmFtc1trZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChib2R5UGFyYW0pIHtcbiAgICAgICAgICAgIHJlcXVlc3Quc2VuZChib2R5UGFyYW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGFjY2VwdCA9IHRoaXMuanNvblByZWZlcnJlZE1pbWUoYWNjZXB0cyk7XG4gICAgICAgIGlmIChhY2NlcHQpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYWNjZXB0KGFjY2VwdCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmV0dXJuVHlwZSA9PT0gJ0Jsb2InKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnJlc3BvbnNlVHlwZSgnYmxvYicpO1xuICAgICAgICB9IGVsc2UgaWYgKHJldHVyblR5cGUgPT09ICdTdHJpbmcnKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnJlc3BvbnNlVHlwZSgnc3RyaW5nJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBdHRhY2ggcHJldmlvdXNseSBzYXZlZCBjb29raWVzLCBpZiBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUNvb2tpZXMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHRoaXMuYWdlbnQuYXR0YWNoQ29va2llcyhyZXF1ZXN0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC53aXRoQ3JlZGVudGlhbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmVuZChmdW5jdGlvbiAoZXJyb3IsIHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gX3RoaXMzLmRlc2VyaWFsaXplKHJlc3BvbnNlLCByZXR1cm5UeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfdGhpczMuZW5hYmxlQ29va2llcyAmJiB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy5hZ2VudC5zYXZlQ29va2llcyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoeyBkYXRhOiBkYXRhLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogUGFyc2VzIGFuIElTTy04NjAxIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIGRhdGUgdmFsdWUuXG4gICAgKiBAcGFyYW0ge1N0cmluZ30gc3RyIFRoZSBkYXRlIHZhbHVlIGFzIGEgc3RyaW5nLlxuICAgICogQHJldHVybnMge0RhdGV9IFRoZSBwYXJzZWQgZGF0ZSBvYmplY3QuXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5wYXJzZURhdGUgPSBmdW5jdGlvbiBwYXJzZURhdGUoc3RyKSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShzdHIucmVwbGFjZSgvVC9pLCAnICcpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBDb252ZXJ0cyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgdHlwZS5cbiAgICAqIEBwYXJhbSB7KFN0cmluZ3xPYmplY3QpfSBkYXRhIFRoZSBkYXRhIHRvIGNvbnZlcnQsIGFzIGEgc3RyaW5nIG9yIG9iamVjdC5cbiAgICAqIEBwYXJhbSB7KFN0cmluZ3xBcnJheS48U3RyaW5nPnxPYmplY3QuPFN0cmluZywgT2JqZWN0PnxGdW5jdGlvbil9IHR5cGUgVGhlIHR5cGUgdG8gcmV0dXJuLiBQYXNzIGEgc3RyaW5nIGZvciBzaW1wbGUgdHlwZXNcbiAgICAqIG9yIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgYSBjb21wbGV4IHR5cGUuIFBhc3MgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgdHlwZSBuYW1lIHRvIHJldHVybiBhbiBhcnJheSBvZiB0aGF0IHR5cGUuIFRvXG4gICAgKiByZXR1cm4gYW4gb2JqZWN0LCBwYXNzIGFuIG9iamVjdCB3aXRoIG9uZSBwcm9wZXJ0eSB3aG9zZSBuYW1lIGlzIHRoZSBrZXkgdHlwZSBhbmQgd2hvc2UgdmFsdWUgaXMgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgdHlwZTpcbiAgICAqIGFsbCBwcm9wZXJ0aWVzIG9uIDxjb2RlPmRhdGE8Y29kZT4gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhpcyB0eXBlLlxuICAgICogQHJldHVybnMgQW4gaW5zdGFuY2Ugb2YgdGhlIHNwZWNpZmllZCB0eXBlIG9yIG51bGwgb3IgdW5kZWZpbmVkIGlmIGRhdGEgaXMgbnVsbCBvciB1bmRlZmluZWQuXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5jb252ZXJ0VG9UeXBlID0gZnVuY3Rpb24gY29udmVydFRvVHlwZShkYXRhLCB0eXBlKSB7XG4gICAgICAgIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGRhdGE7XG5cbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdCb29sZWFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQm9vbGVhbihkYXRhKTtcbiAgICAgICAgICAgIGNhc2UgJ0ludGVnZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChkYXRhLCAxMCk7XG4gICAgICAgICAgICBjYXNlICdOdW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KGRhdGEpO1xuICAgICAgICAgICAgY2FzZSAnU3RyaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGRhdGEpO1xuICAgICAgICAgICAgY2FzZSAnRGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFwaUNsaWVudC5wYXJzZURhdGUoU3RyaW5nKGRhdGEpKTtcbiAgICAgICAgICAgIGNhc2UgJ0Jsb2InOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGdlbmVyaWMgb2JqZWN0LCByZXR1cm4gZGlyZWN0bHlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3IgbW9kZWwgdHlwZSBsaWtlOiBVc2VyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGZvciBhcnJheSB0eXBlIGxpa2U6IFsnU3RyaW5nJ11cbiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1UeXBlID0gdHlwZVswXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcGlDbGllbnQuY29udmVydFRvVHlwZShpdGVtLCBpdGVtVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGZvciBwbGFpbiBvYmplY3QgdHlwZSBsaWtlOiB7J1N0cmluZyc6ICdJbnRlZ2VyJ31cbiAgICAgICAgICAgICAgICAgICAgdmFyIGtleVR5cGUsIHZhbHVlVHlwZTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayBpbiB0eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZS5oYXNPd25Qcm9wZXJ0eShrKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleVR5cGUgPSBrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVHlwZSA9IHR5cGVba107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGsgaW4gZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5ID0gQXBpQ2xpZW50LmNvbnZlcnRUb1R5cGUoaywga2V5VHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gQXBpQ2xpZW50LmNvbnZlcnRUb1R5cGUoZGF0YVtrXSwgdmFsdWVUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3IgdW5rbm93biB0eXBlLCByZXR1cm4gdGhlIGRhdGEgZGlyZWN0bHlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyBtYXAgb3IgYXJyYXkgbW9kZWwgZnJvbSBSRVNUIGRhdGEuXG4gICAgKiBAcGFyYW0gZGF0YSB7T2JqZWN0fEFycmF5fSBUaGUgUkVTVCBkYXRhLlxuICAgICogQHBhcmFtIG9iaiB7T2JqZWN0fEFycmF5fSBUaGUgdGFyZ2V0IG9iamVjdCBvciBhcnJheS5cbiAgICAqL1xuXG4gICAgQXBpQ2xpZW50LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaiwgaXRlbVR5cGUpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGkpKSBvYmpbaV0gPSBBcGlDbGllbnQuY29udmVydFRvVHlwZShkYXRhW2ldLCBpdGVtVHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrKSkgb2JqW2tdID0gQXBpQ2xpZW50LmNvbnZlcnRUb1R5cGUoZGF0YVtrXSwgaXRlbVR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIF9jcmVhdGVDbGFzcyhBcGlDbGllbnQsIG51bGwsIFt7XG4gICAgICAgIGtleTogXCJDb2xsZWN0aW9uRm9ybWF0RW51bVwiLFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBDb21tYS1zZXBhcmF0ZWQgdmFsdWVzLiBWYWx1ZTogPGNvZGU+Y3N2PC9jb2RlPlxuICAgICAgICAgICAgICogQGNvbnN0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIENTVjogJywnLFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNwYWNlLXNlcGFyYXRlZCB2YWx1ZXMuIFZhbHVlOiA8Y29kZT5zc3Y8L2NvZGU+XG4gICAgICAgICAgICAgKiBAY29uc3RcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgU1NWOiAnICcsXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVGFiLXNlcGFyYXRlZCB2YWx1ZXMuIFZhbHVlOiA8Y29kZT50c3Y8L2NvZGU+XG4gICAgICAgICAgICAgKiBAY29uc3RcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgVFNWOiAnXFx0JyxcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBQaXBlKHwpLXNlcGFyYXRlZCB2YWx1ZXMuIFZhbHVlOiA8Y29kZT5waXBlczwvY29kZT5cbiAgICAgICAgICAgICAqIEBjb25zdFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBQSVBFUzogJ3wnLFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE5hdGl2ZSBhcnJheS4gVmFsdWU6IDxjb2RlPm11bHRpPC9jb2RlPlxuICAgICAgICAgICAgICogQGNvbnN0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIE1VTFRJOiAnbXVsdGknXG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICB9XSk7XG5cbiAgICByZXR1cm4gQXBpQ2xpZW50O1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBBcGlDbGllbnQ7XG5BcGlDbGllbnQuaW5zdGFuY2UgPSBuZXcgQXBpQ2xpZW50KCk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbElkbUFDTCA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbUFDTCcpO1xuXG52YXIgX21vZGVsSWRtQUNMMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtQUNMKTtcblxudmFyIF9tb2RlbFJlc3RBQ0xDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEFDTENvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RBQ0xDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEFDTENvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaEFDTFJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaEFDTFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2VhcmNoQUNMUmVxdWVzdCk7XG5cbi8qKlxuKiBBQ0xTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL0FDTFNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgQUNMU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBBQ0xTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9BQ0xTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gQUNMU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQUNMU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBvbmUgb3IgbW9yZSBBQ0xzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUFDTH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBBQ0xTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVBY2xXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBkZWxldGVBY2xXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBkZWxldGVBY2xcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3REZWxldGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvYWNsL2J1bGsvZGVsZXRlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgb25lIG9yIG1vcmUgQUNMc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1BQ0x9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVSZXNwb25zZX1cbiAgICovXG5cbiAgQUNMU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlQWNsID0gZnVuY3Rpb24gZGVsZXRlQWNsKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVBY2xXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTdG9yZSBhbiBBQ0xcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtQUNMfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1BQ0x9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEFDTFNlcnZpY2VBcGkucHJvdG90eXBlLnB1dEFjbFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHB1dEFjbFdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHB1dEFjbFwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSWRtQUNMMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9hY2wnLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU3RvcmUgYW4gQUNMXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUFDTH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtQUNMfVxuICAgKi9cblxuICBBQ0xTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRBY2wgPSBmdW5jdGlvbiBwdXRBY2woYm9keSkge1xuICAgIHJldHVybiB0aGlzLnB1dEFjbFdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBBY2xzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hBQ0xSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0QUNMQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQUNMU2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoQWNsc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHNlYXJjaEFjbHNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzZWFyY2hBY2xzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0QUNMQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvYWNsJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZWFyY2ggQWNsc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEFDTENvbGxlY3Rpb259XG4gICAqL1xuXG4gIEFDTFNlcnZpY2VBcGkucHJvdG90eXBlLnNlYXJjaEFjbHMgPSBmdW5jdGlvbiBzZWFyY2hBY2xzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hBY2xzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gQUNMU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFDTFNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eU9iamVjdCA9IHJlcXVpcmUoJy4uL21vZGVsL0FjdGl2aXR5T2JqZWN0Jyk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eU9iamVjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5T2JqZWN0KTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdWJzY3JpcHRpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9BY3Rpdml0eVN1YnNjcmlwdGlvbicpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdWJzY3JpcHRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBY3Rpdml0eVN1YnNjcmlwdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbik7XG5cbi8qKlxuKiBBY3Rpdml0eVNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvQWN0aXZpdHlTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEFjdGl2aXR5U2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBBY3Rpdml0eVNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL0FjdGl2aXR5U2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIEFjdGl2aXR5U2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWN0aXZpdHlTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBzdWJzY3JpcHRpb25zIHRvIG90aGVyIHVzZXJzL25vZGVzIGZlZWRzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQWN0aXZpdHlTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZWFyY2hTdWJzY3JpcHRpb25zV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc2VhcmNoU3Vic2NyaXB0aW9uc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHNlYXJjaFN1YnNjcmlwdGlvbnNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvYWN0aXZpdHkvc3Vic2NyaXB0aW9ucycsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCBzdWJzY3JpcHRpb25zIHRvIG90aGVyIHVzZXJzL25vZGVzIGZlZWRzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgQWN0aXZpdHlTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZWFyY2hTdWJzY3JpcHRpb25zID0gZnVuY3Rpb24gc2VhcmNoU3Vic2NyaXB0aW9ucyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIHRoZSBmZWVkcyBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCB1c2VyXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBBY3Rpdml0eVNlcnZpY2VBcGkucHJvdG90eXBlLnN0cmVhbVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHN0cmVhbVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHN0cmVhbVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsQWN0aXZpdHlPYmplY3QyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2FjdGl2aXR5L3N0cmVhbScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCB0aGUgdGhlIGZlZWRzIG9mIHRoZSBjdXJyZW50bHkgbG9nZ2VkIHVzZXJcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9XG4gICAqL1xuXG4gIEFjdGl2aXR5U2VydmljZUFwaS5wcm90b3R5cGUuc3RyZWFtID0gZnVuY3Rpb24gc3RyZWFtKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJlYW1XaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBNYW5hZ2Ugc3Vic2NyaXB0aW9ucyB0byBvdGhlciB1c2Vycy9ub2RlcyBmZWVkc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9BY3Rpdml0eVN1YnNjcmlwdGlvbn0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEFjdGl2aXR5U2VydmljZUFwaS5wcm90b3R5cGUuc3Vic2NyaWJlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc3Vic2NyaWJlV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc3Vic2NyaWJlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxBY3Rpdml0eVN1YnNjcmlwdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvYWN0aXZpdHkvc3Vic2NyaWJlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBNYW5hZ2Ugc3Vic2NyaXB0aW9ucyB0byBvdGhlciB1c2Vycy9ub2RlcyBmZWVkc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9BY3Rpdml0eVN1YnNjcmlwdGlvbn0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb259XG4gICAqL1xuXG4gIEFjdGl2aXR5U2VydmljZUFwaS5wcm90b3R5cGUuc3Vic2NyaWJlID0gZnVuY3Rpb24gc3Vic2NyaWJlKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpYmVXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBBY3Rpdml0eVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBY3Rpdml0eVNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsVHJlZUxpc3ROb2Rlc1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9UcmVlTGlzdE5vZGVzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsVHJlZUxpc3ROb2Rlc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlTGlzdE5vZGVzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxUcmVlUmVhZE5vZGVSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvVHJlZVJlYWROb2RlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsVHJlZVJlYWROb2RlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVSZWFkTm9kZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsVHJlZVJlYWROb2RlUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsVHJlZVJlYWROb2RlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlUmVhZE5vZGVSZXNwb25zZSk7XG5cbi8qKlxuKiBBZG1pblRyZWVTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL0FkbWluVHJlZVNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgQWRtaW5UcmVlU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBBZG1pblRyZWVTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9BZG1pblRyZWVTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gQWRtaW5UcmVlU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWRtaW5UcmVlU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3QgZmlsZXMgYW5kIGZvbGRlcnMgc3RhcnRpbmcgYXQgdGhlIHJvb3QgKGZpcnN0IGxldmVsIGxpc3RzIHRoZSBkYXRhc291cmNlcylcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZUxpc3ROb2Rlc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEFkbWluVHJlZVNlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RBZG1pblRyZWVXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0QWRtaW5UcmVlV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgbGlzdEFkbWluVHJlZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdHJlZS9hZG1pbi9saXN0JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGZpbGVzIGFuZCBmb2xkZXJzIHN0YXJ0aW5nIGF0IHRoZSByb290IChmaXJzdCBsZXZlbCBsaXN0cyB0aGUgZGF0YXNvdXJjZXMpXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVMaXN0Tm9kZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9ufVxuICAgKi9cblxuICBBZG1pblRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0QWRtaW5UcmVlID0gZnVuY3Rpb24gbGlzdEFkbWluVHJlZShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdEFkbWluVHJlZVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlYWQgYSBub2RlIGluZm9ybWF0aW9uIGluc2lkZSB0aGUgYWRtaW4gdHJlZVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlUmVhZE5vZGVSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQWRtaW5UcmVlU2VydmljZUFwaS5wcm90b3R5cGUuc3RhdEFkbWluVHJlZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHN0YXRBZG1pblRyZWVXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzdGF0QWRtaW5UcmVlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxUcmVlUmVhZE5vZGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdHJlZS9hZG1pbi9zdGF0JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZWFkIGEgbm9kZSBpbmZvcm1hdGlvbiBpbnNpZGUgdGhlIGFkbWluIHRyZWVcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVzcG9uc2V9XG4gICAqL1xuXG4gIEFkbWluVHJlZVNlcnZpY2VBcGkucHJvdG90eXBlLnN0YXRBZG1pblRyZWUgPSBmdW5jdGlvbiBzdGF0QWRtaW5UcmVlKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0QWRtaW5UcmVlV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gQWRtaW5UcmVlU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFkbWluVHJlZVNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxSZXN0Q2hhbmdlQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RDaGFuZ2VDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0Q2hhbmdlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDaGFuZ2VDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RDaGFuZ2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdENoYW5nZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RDaGFuZ2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENoYW5nZVJlcXVlc3QpO1xuXG4vKipcbiogQ2hhbmdlU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9DaGFuZ2VTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIENoYW5nZVNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgQ2hhbmdlU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvQ2hhbmdlU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIENoYW5nZVNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENoYW5nZVNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQ2hhbmdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gc2VxSUQgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDaGFuZ2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Q2hhbmdlQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ2hhbmdlU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0Q2hhbmdlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldENoYW5nZXNXaXRoSHR0cEluZm8oc2VxSUQsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3NlcUlEJyBpcyBzZXRcbiAgICBpZiAoc2VxSUQgPT09IHVuZGVmaW5lZCB8fCBzZXFJRCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzZXFJRCcgd2hlbiBjYWxsaW5nIGdldENoYW5nZXNcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgZ2V0Q2hhbmdlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdTZXFJRCc6IHNlcUlEXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RDaGFuZ2VDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jaGFuZ2VzL3tTZXFJRH0nLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCBDaGFuZ2VzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzZXFJRCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENoYW5nZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RDaGFuZ2VDb2xsZWN0aW9ufVxuICAgKi9cblxuICBDaGFuZ2VTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRDaGFuZ2VzID0gZnVuY3Rpb24gZ2V0Q2hhbmdlcyhzZXFJRCwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmdldENoYW5nZXNXaXRoSHR0cEluZm8oc2VxSUQsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gQ2hhbmdlU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENoYW5nZVNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxDdGxTZXJ2aWNlID0gcmVxdWlyZSgnLi4vbW9kZWwvQ3RsU2VydmljZScpO1xuXG52YXIgX21vZGVsQ3RsU2VydmljZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEN0bFNlcnZpY2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3QpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbE9iamVjdERhdGFTb3VyY2UgPSByZXF1aXJlKCcuLi9tb2RlbC9PYmplY3REYXRhU291cmNlJyk7XG5cbnZhciBfbW9kZWxPYmplY3REYXRhU291cmNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsT2JqZWN0RGF0YVNvdXJjZSk7XG5cbnZhciBfbW9kZWxSZXN0Q29uZmlndXJhdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RDb25maWd1cmF0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0Q29uZmlndXJhdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDb25maWd1cmF0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RDb250cm9sU2VydmljZVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3REYXRhU291cmNlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REYXRhU291cmNlQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERpc2NvdmVyeVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGlzY292ZXJ5UmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGlzY292ZXJ5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdE9wZW5BcGlSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RPcGVuQXBpUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RPcGVuQXBpUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0T3BlbkFwaVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RTZXJ2aWNlQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFNlcnZpY2VDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlcnZpY2VDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFRyZWVWZXJzaW9uaW5nUG9saWN5ID0gcmVxdWlyZSgnLi4vbW9kZWwvVHJlZVZlcnNpb25pbmdQb2xpY3knKTtcblxudmFyIF9tb2RlbFRyZWVWZXJzaW9uaW5nUG9saWN5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZVZlcnNpb25pbmdQb2xpY3kpO1xuXG4vKipcbiogQ29uZmlnU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9Db25maWdTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIENvbmZpZ1NlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgQ29uZmlnU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvQ29uZmlnU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIENvbmZpZ1NlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENvbmZpZ1NlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoIEZvcm1zIGRlZmluaXRpb24gZm9yIGJ1aWxkaW5nIHNjcmVlbnMgaW4gZnJvbnRlbmRcbiAgICogQHBhcmFtIHtTdHJpbmd9IHNlcnZpY2VOYW1lIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGlzY292ZXJ5UmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmNvbmZpZ0Zvcm1zRGlzY292ZXJ5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gY29uZmlnRm9ybXNEaXNjb3ZlcnlXaXRoSHR0cEluZm8oc2VydmljZU5hbWUpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3NlcnZpY2VOYW1lJyBpcyBzZXRcbiAgICBpZiAoc2VydmljZU5hbWUgPT09IHVuZGVmaW5lZCB8fCBzZXJ2aWNlTmFtZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzZXJ2aWNlTmFtZScgd2hlbiBjYWxsaW5nIGNvbmZpZ0Zvcm1zRGlzY292ZXJ5XCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1NlcnZpY2VOYW1lJzogc2VydmljZU5hbWVcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZGlzY292ZXJ5L2Zvcm1zL3tTZXJ2aWNlTmFtZX0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogUHVibGlzaCBGb3JtcyBkZWZpbml0aW9uIGZvciBidWlsZGluZyBzY3JlZW5zIGluIGZyb250ZW5kXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzZXJ2aWNlTmFtZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERpc2NvdmVyeVJlc3BvbnNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5jb25maWdGb3Jtc0Rpc2NvdmVyeSA9IGZ1bmN0aW9uIGNvbmZpZ0Zvcm1zRGlzY292ZXJ5KHNlcnZpY2VOYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnRm9ybXNEaXNjb3ZlcnlXaXRoSHR0cEluZm8oc2VydmljZU5hbWUpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogW05vdCBJbXBsZW1lbnRlZF0gIFN0YXJ0L1N0b3AgYSBzZXJ2aWNlXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDb250cm9sU2VydmljZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0N0bFNlcnZpY2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmNvbnRyb2xTZXJ2aWNlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gY29udHJvbFNlcnZpY2VXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBjb250cm9sU2VydmljZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsQ3RsU2VydmljZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY29uZmlnL2N0bCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogW05vdCBJbXBsZW1lbnRlZF0gIFN0YXJ0L1N0b3AgYSBzZXJ2aWNlXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDb250cm9sU2VydmljZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0N0bFNlcnZpY2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmNvbnRyb2xTZXJ2aWNlID0gZnVuY3Rpb24gY29udHJvbFNlcnZpY2UoYm9keSkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xTZXJ2aWNlV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IG1hc3RlciBrZXlcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmNyZWF0ZUVuY3J5cHRpb25LZXlXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBjcmVhdGVFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgY3JlYXRlRW5jcnlwdGlvbktleVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9lbmNyeXB0aW9uL2NyZWF0ZScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IG1hc3RlciBrZXlcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmNyZWF0ZUVuY3J5cHRpb25LZXkgPSBmdW5jdGlvbiBjcmVhdGVFbmNyeXB0aW9uS2V5KGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGEgZGF0YXNvdXJjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlRGF0YVNvdXJjZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGRlbGV0ZURhdGFTb3VyY2VXaXRoSHR0cEluZm8obmFtZSkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbmFtZScgaXMgc2V0XG4gICAgaWYgKG5hbWUgPT09IHVuZGVmaW5lZCB8fCBuYW1lID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWUnIHdoZW4gY2FsbGluZyBkZWxldGVEYXRhU291cmNlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ05hbWUnOiBuYW1lXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9kYXRhc291cmNlL3tOYW1lfScsICdERUxFVEUnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBkYXRhc291cmNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVEYXRhU291cmNlID0gZnVuY3Rpb24gZGVsZXRlRGF0YVNvdXJjZShuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlRGF0YVNvdXJjZVdpdGhIdHRwSW5mbyhuYW1lKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbiBleGlzdGluZyBtYXN0ZXIga2V5XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZGVsZXRlRW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGRlbGV0ZUVuY3J5cHRpb25LZXlcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZW5jcnlwdGlvbi9kZWxldGUnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbiBleGlzdGluZyBtYXN0ZXIga2V5XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVFbmNyeXB0aW9uS2V5ID0gZnVuY3Rpb24gZGVsZXRlRW5jcnlwdGlvbktleShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlRW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYXZhaWxhYmxlIGVuZHBvaW50c1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmVuZHBvaW50VHlwZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERpc2NvdmVyeVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5lbmRwb2ludHNEaXNjb3ZlcnlXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBlbmRwb2ludHNEaXNjb3ZlcnlXaXRoSHR0cEluZm8ob3B0cykge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICdFbmRwb2ludFR5cGUnOiBvcHRzWydlbmRwb2ludFR5cGUnXVxuICAgIH07XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RGlzY292ZXJ5UmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9kaXNjb3ZlcnknLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogUHVibGlzaCBhdmFpbGFibGUgZW5kcG9pbnRzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuZW5kcG9pbnRUeXBlIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGlzY292ZXJ5UmVzcG9uc2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmVuZHBvaW50c0Rpc2NvdmVyeSA9IGZ1bmN0aW9uIGVuZHBvaW50c0Rpc2NvdmVyeShvcHRzKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5kcG9pbnRzRGlzY292ZXJ5V2l0aEh0dHBJbmZvKG9wdHMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogRXhwb3J0IGEgbWFzdGVyIGtleSBmb3IgYmFja3VwIHB1cnBvc2UsIHByb3RlY3RlZCB3aXRoIGEgcGFzc3dvcmRcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmV4cG9ydEVuY3J5cHRpb25LZXlXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBleHBvcnRFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgZXhwb3J0RW5jcnlwdGlvbktleVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9lbmNyeXB0aW9uL2V4cG9ydCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogRXhwb3J0IGEgbWFzdGVyIGtleSBmb3IgYmFja3VwIHB1cnBvc2UsIHByb3RlY3RlZCB3aXRoIGEgcGFzc3dvcmRcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmV4cG9ydEVuY3J5cHRpb25LZXkgPSBmdW5jdGlvbiBleHBvcnRFbmNyeXB0aW9uS2V5KGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5leHBvcnRFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJpYyBjb25maWcgR2V0IHVzaW5nIGEgZnVsbCBwYXRoIGluIHRoZSBjb25maWcgdHJlZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gZnVsbFBhdGggXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuZGF0YSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENvbmZpZ3VyYXRpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmdldENvbmZpZ1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldENvbmZpZ1dpdGhIdHRwSW5mbyhmdWxsUGF0aCwgb3B0cykge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnZnVsbFBhdGgnIGlzIHNldFxuICAgIGlmIChmdWxsUGF0aCA9PT0gdW5kZWZpbmVkIHx8IGZ1bGxQYXRoID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2Z1bGxQYXRoJyB3aGVuIGNhbGxpbmcgZ2V0Q29uZmlnXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0Z1bGxQYXRoJzogZnVsbFBhdGhcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICdEYXRhJzogb3B0c1snZGF0YSddXG4gICAgfTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RDb25maWd1cmF0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcve0Z1bGxQYXRofScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZW5lcmljIGNvbmZpZyBHZXQgdXNpbmcgYSBmdWxsIHBhdGggaW4gdGhlIGNvbmZpZyB0cmVlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBmdWxsUGF0aCBcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5kYXRhIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Q29uZmlndXJhdGlvbn1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0Q29uZmlnID0gZnVuY3Rpb24gZ2V0Q29uZmlnKGZ1bGxQYXRoLCBvcHRzKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29uZmlnV2l0aEh0dHBJbmZvKGZ1bGxQYXRoLCBvcHRzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgZGF0YXNvdXJjZSBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMuZGlzYWJsZWQgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1N0cmluZ30gb3B0cy5zdG9yYWdlVHlwZSAgKGRlZmF1bHQgdG8gTE9DQUwpXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9iamVjdHNTZXJ2aWNlTmFtZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMub2JqZWN0c0hvc3QgXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBvcHRzLm9iamVjdHNQb3J0IFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMub2JqZWN0c1NlY3VyZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMub2JqZWN0c0J1Y2tldCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMub2JqZWN0c0Jhc2VGb2xkZXIgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmFwaUtleSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuYXBpU2VjcmV0IFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5wZWVyQWRkcmVzcyBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLndhdGNoIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9TdHJpbmd9IG9wdHMuZW5jcnlwdGlvbk1vZGUgIChkZWZhdWx0IHRvIENMRUFSKVxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5lbmNyeXB0aW9uS2V5IFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy52ZXJzaW9uaW5nUG9saWN5TmFtZSBcbiAgICogQHBhcmFtIHtOdW1iZXJ9IG9wdHMuY3JlYXRpb25EYXRlIFxuICAgKiBAcGFyYW0ge051bWJlcn0gb3B0cy5sYXN0U3luY2hyb25pemF0aW9uRGF0ZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvT2JqZWN0RGF0YVNvdXJjZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0RGF0YVNvdXJjZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldERhdGFTb3VyY2VXaXRoSHR0cEluZm8obmFtZSwgb3B0cykge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbmFtZScgaXMgc2V0XG4gICAgaWYgKG5hbWUgPT09IHVuZGVmaW5lZCB8fCBuYW1lID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWUnIHdoZW4gY2FsbGluZyBnZXREYXRhU291cmNlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ05hbWUnOiBuYW1lXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnRGlzYWJsZWQnOiBvcHRzWydkaXNhYmxlZCddLFxuICAgICAgJ1N0b3JhZ2VUeXBlJzogb3B0c1snc3RvcmFnZVR5cGUnXSxcbiAgICAgICdPYmplY3RzU2VydmljZU5hbWUnOiBvcHRzWydvYmplY3RzU2VydmljZU5hbWUnXSxcbiAgICAgICdPYmplY3RzSG9zdCc6IG9wdHNbJ29iamVjdHNIb3N0J10sXG4gICAgICAnT2JqZWN0c1BvcnQnOiBvcHRzWydvYmplY3RzUG9ydCddLFxuICAgICAgJ09iamVjdHNTZWN1cmUnOiBvcHRzWydvYmplY3RzU2VjdXJlJ10sXG4gICAgICAnT2JqZWN0c0J1Y2tldCc6IG9wdHNbJ29iamVjdHNCdWNrZXQnXSxcbiAgICAgICdPYmplY3RzQmFzZUZvbGRlcic6IG9wdHNbJ29iamVjdHNCYXNlRm9sZGVyJ10sXG4gICAgICAnQXBpS2V5Jzogb3B0c1snYXBpS2V5J10sXG4gICAgICAnQXBpU2VjcmV0Jzogb3B0c1snYXBpU2VjcmV0J10sXG4gICAgICAnUGVlckFkZHJlc3MnOiBvcHRzWydwZWVyQWRkcmVzcyddLFxuICAgICAgJ1dhdGNoJzogb3B0c1snd2F0Y2gnXSxcbiAgICAgICdFbmNyeXB0aW9uTW9kZSc6IG9wdHNbJ2VuY3J5cHRpb25Nb2RlJ10sXG4gICAgICAnRW5jcnlwdGlvbktleSc6IG9wdHNbJ2VuY3J5cHRpb25LZXknXSxcbiAgICAgICdWZXJzaW9uaW5nUG9saWN5TmFtZSc6IG9wdHNbJ3ZlcnNpb25pbmdQb2xpY3lOYW1lJ10sXG4gICAgICAnQ3JlYXRpb25EYXRlJzogb3B0c1snY3JlYXRpb25EYXRlJ10sXG4gICAgICAnTGFzdFN5bmNocm9uaXphdGlvbkRhdGUnOiBvcHRzWydsYXN0U3luY2hyb25pemF0aW9uRGF0ZSddXG4gICAgfTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbE9iamVjdERhdGFTb3VyY2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9kYXRhc291cmNlL3tOYW1lfScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkIGRhdGFzb3VyY2UgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLmRpc2FibGVkIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9TdHJpbmd9IG9wdHMuc3RvcmFnZVR5cGUgIChkZWZhdWx0IHRvIExPQ0FMKVxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5vYmplY3RzU2VydmljZU5hbWUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9iamVjdHNIb3N0IFxuICAgKiBAcGFyYW0ge051bWJlcn0gb3B0cy5vYmplY3RzUG9ydCBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLm9iamVjdHNTZWN1cmUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9iamVjdHNCdWNrZXQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9iamVjdHNCYXNlRm9sZGVyIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5hcGlLZXkgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmFwaVNlY3JldCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMucGVlckFkZHJlc3MgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy53YXRjaCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvU3RyaW5nfSBvcHRzLmVuY3J5cHRpb25Nb2RlICAoZGVmYXVsdCB0byBDTEVBUilcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuZW5jcnlwdGlvbktleSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMudmVyc2lvbmluZ1BvbGljeU5hbWUgXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBvcHRzLmNyZWF0aW9uRGF0ZSBcbiAgICogQHBhcmFtIHtOdW1iZXJ9IG9wdHMubGFzdFN5bmNocm9uaXphdGlvbkRhdGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmdldERhdGFTb3VyY2UgPSBmdW5jdGlvbiBnZXREYXRhU291cmNlKG5hbWUsIG9wdHMpIHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRhU291cmNlV2l0aEh0dHBJbmZvKG5hbWUsIG9wdHMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCBhIGdpdmVuIHZlcnNpb25pbmcgcG9saWN5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm5hbWUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmRlc2NyaXB0aW9uIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy52ZXJzaW9uc0RhdGFTb3VyY2VOYW1lIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy52ZXJzaW9uc0RhdGFTb3VyY2VCdWNrZXQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm1heFRvdGFsU2l6ZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMubWF4U2l6ZVBlckZpbGUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmlnbm9yZUZpbGVzR3JlYXRlclRoYW4gXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nUG9saWN5fSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRWZXJzaW9uaW5nUG9saWN5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZ2V0VmVyc2lvbmluZ1BvbGljeVdpdGhIdHRwSW5mbyh1dWlkLCBvcHRzKSB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyBpcyBzZXRcbiAgICBpZiAodXVpZCA9PT0gdW5kZWZpbmVkIHx8IHV1aWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgd2hlbiBjYWxsaW5nIGdldFZlcnNpb25pbmdQb2xpY3lcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnVXVpZCc6IHV1aWRcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICdOYW1lJzogb3B0c1snbmFtZSddLFxuICAgICAgJ0Rlc2NyaXB0aW9uJzogb3B0c1snZGVzY3JpcHRpb24nXSxcbiAgICAgICdWZXJzaW9uc0RhdGFTb3VyY2VOYW1lJzogb3B0c1sndmVyc2lvbnNEYXRhU291cmNlTmFtZSddLFxuICAgICAgJ1ZlcnNpb25zRGF0YVNvdXJjZUJ1Y2tldCc6IG9wdHNbJ3ZlcnNpb25zRGF0YVNvdXJjZUJ1Y2tldCddLFxuICAgICAgJ01heFRvdGFsU2l6ZSc6IG9wdHNbJ21heFRvdGFsU2l6ZSddLFxuICAgICAgJ01heFNpemVQZXJGaWxlJzogb3B0c1snbWF4U2l6ZVBlckZpbGUnXSxcbiAgICAgICdJZ25vcmVGaWxlc0dyZWF0ZXJUaGFuJzogb3B0c1snaWdub3JlRmlsZXNHcmVhdGVyVGhhbiddXG4gICAgfTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFRyZWVWZXJzaW9uaW5nUG9saWN5MlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvdmVyc2lvbmluZy97VXVpZH0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCBhIGdpdmVuIHZlcnNpb25pbmcgcG9saWN5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm5hbWUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmRlc2NyaXB0aW9uIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy52ZXJzaW9uc0RhdGFTb3VyY2VOYW1lIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy52ZXJzaW9uc0RhdGFTb3VyY2VCdWNrZXQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm1heFRvdGFsU2l6ZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMubWF4U2l6ZVBlckZpbGUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmlnbm9yZUZpbGVzR3JlYXRlclRoYW4gXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nUG9saWN5fVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRWZXJzaW9uaW5nUG9saWN5ID0gZnVuY3Rpb24gZ2V0VmVyc2lvbmluZ1BvbGljeSh1dWlkLCBvcHRzKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmVyc2lvbmluZ1BvbGljeVdpdGhIdHRwSW5mbyh1dWlkLCBvcHRzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIHByZXZpb3VzbHkgZXhwb3J0ZWQgbWFzdGVyIGtleSwgcmVxdWlyZXMgdGhlIHBhc3N3b3JkIGNyZWF0ZWQgYXQgZXhwb3J0IHRpbWVcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmltcG9ydEVuY3J5cHRpb25LZXlXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBpbXBvcnRFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgaW1wb3J0RW5jcnlwdGlvbktleVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9lbmNyeXB0aW9uL2ltcG9ydCcsICdQVVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYSBwcmV2aW91c2x5IGV4cG9ydGVkIG1hc3RlciBrZXksIHJlcXVpcmVzIHRoZSBwYXNzd29yZCBjcmVhdGVkIGF0IGV4cG9ydCB0aW1lXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5pbXBvcnRFbmNyeXB0aW9uS2V5ID0gZnVuY3Rpb24gaW1wb3J0RW5jcnlwdGlvbktleShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0RW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGRlZmluZWQgZGF0YXNvdXJjZXNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0RGF0YVNvdXJjZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0RGF0YVNvdXJjZXNXaXRoSHR0cEluZm8oKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9kYXRhc291cmNlJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGRlZmluZWQgZGF0YXNvdXJjZXNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9ufVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0RGF0YVNvdXJjZXMgPSBmdW5jdGlvbiBsaXN0RGF0YVNvdXJjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdERhdGFTb3VyY2VzV2l0aEh0dHBJbmZvKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IHJlZ2lzdGVyZWQgbWFzdGVyIGtleXNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0RW5jcnlwdGlvbktleXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0RW5jcnlwdGlvbktleXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBsaXN0RW5jcnlwdGlvbktleXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9lbmNyeXB0aW9uL2xpc3QnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgcmVnaXN0ZXJlZCBtYXN0ZXIga2V5c1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RFbmNyeXB0aW9uS2V5cyA9IGZ1bmN0aW9uIGxpc3RFbmNyeXB0aW9uS2V5cyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdEVuY3J5cHRpb25LZXlzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBmb2xkZXJzIG9uIGEgcGVlciwgc3RhcnRpbmcgZnJvbSByb290XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwZWVyQWRkcmVzcyBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RQZWVyRm9sZGVyc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGxpc3RQZWVyRm9sZGVyc1dpdGhIdHRwSW5mbyhwZWVyQWRkcmVzcywgYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAncGVlckFkZHJlc3MnIGlzIHNldFxuICAgIGlmIChwZWVyQWRkcmVzcyA9PT0gdW5kZWZpbmVkIHx8IHBlZXJBZGRyZXNzID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3BlZXJBZGRyZXNzJyB3aGVuIGNhbGxpbmcgbGlzdFBlZXJGb2xkZXJzXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGxpc3RQZWVyRm9sZGVyc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdQZWVyQWRkcmVzcyc6IHBlZXJBZGRyZXNzXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9wZWVycy97UGVlckFkZHJlc3N9JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGZvbGRlcnMgb24gYSBwZWVyLCBzdGFydGluZyBmcm9tIHJvb3RcbiAgICogQHBhcmFtIHtTdHJpbmd9IHBlZXJBZGRyZXNzIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFBlZXJGb2xkZXJzID0gZnVuY3Rpb24gbGlzdFBlZXJGb2xkZXJzKHBlZXJBZGRyZXNzLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFBlZXJGb2xkZXJzV2l0aEh0dHBJbmZvKHBlZXJBZGRyZXNzLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGRldGVjdGVkIHBlZXJzIChzZXJ2ZXJzIG9uIHdoaWNoIHRoZSBhcHAgaXMgcnVubmluZylcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0UGVlcnNBZGRyZXNzZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0UGVlcnNBZGRyZXNzZXNXaXRoSHR0cEluZm8oKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9wZWVycycsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZXRlY3RlZCBwZWVycyAoc2VydmVycyBvbiB3aGljaCB0aGUgYXBwIGlzIHJ1bm5pbmcpXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZX1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFBlZXJzQWRkcmVzc2VzID0gZnVuY3Rpb24gbGlzdFBlZXJzQWRkcmVzc2VzKCkge1xuICAgIHJldHVybiB0aGlzLmxpc3RQZWVyc0FkZHJlc3Nlc1dpdGhIdHRwSW5mbygpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBhbGwgc2VydmljZXMgYW5kIHRoZWlyIHN0YXR1c1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1N0cmluZ30gb3B0cy5zdGF0dXNGaWx0ZXIgIChkZWZhdWx0IHRvIEFOWSlcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFNlcnZpY2VDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0U2VydmljZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0U2VydmljZXNXaXRoSHR0cEluZm8ob3B0cykge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICdTdGF0dXNGaWx0ZXInOiBvcHRzWydzdGF0dXNGaWx0ZXInXVxuICAgIH07XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0U2VydmljZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9jdGwnLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBhbGwgc2VydmljZXMgYW5kIHRoZWlyIHN0YXR1c1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1N0cmluZ30gb3B0cy5zdGF0dXNGaWx0ZXIgIChkZWZhdWx0IHRvIEFOWSlcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFNlcnZpY2VDb2xsZWN0aW9ufVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0U2VydmljZXMgPSBmdW5jdGlvbiBsaXN0U2VydmljZXMob3B0cykge1xuICAgIHJldHVybiB0aGlzLmxpc3RTZXJ2aWNlc1dpdGhIdHRwSW5mbyhvcHRzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGRlZmluZWQgdmVyc2lvbmluZyBwb2xpY2llc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RWZXJzaW9uaW5nUG9saWNpZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0VmVyc2lvbmluZ1BvbGljaWVzV2l0aEh0dHBJbmZvKCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvdmVyc2lvbmluZycsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZWZpbmVkIHZlcnNpb25pbmcgcG9saWNpZXNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9ufVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0VmVyc2lvbmluZ1BvbGljaWVzID0gZnVuY3Rpb24gbGlzdFZlcnNpb25pbmdQb2xpY2llcygpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0VmVyc2lvbmluZ1BvbGljaWVzV2l0aEh0dHBJbmZvKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZWZpbmVkIHZpcnR1YWwgbm9kZXNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFZpcnR1YWxOb2Rlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGxpc3RWaXJ0dWFsTm9kZXNXaXRoSHR0cEluZm8oKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvdmlydHVhbG5vZGVzJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGRlZmluZWQgdmlydHVhbCBub2Rlc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9ufVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0VmlydHVhbE5vZGVzID0gZnVuY3Rpb24gbGlzdFZpcnR1YWxOb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0VmlydHVhbE5vZGVzV2l0aEh0dHBJbmZvKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIGF2YWlsYWJsZSBSRVNUIEFQSXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5lbmRwb2ludFR5cGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RPcGVuQXBpUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLm9wZW5BcGlEaXNjb3ZlcnlXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBvcGVuQXBpRGlzY292ZXJ5V2l0aEh0dHBJbmZvKG9wdHMpIHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnRW5kcG9pbnRUeXBlJzogb3B0c1snZW5kcG9pbnRUeXBlJ11cbiAgICB9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdE9wZW5BcGlSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY29uZmlnL2Rpc2NvdmVyeS9vcGVuYXBpJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYXZhaWxhYmxlIFJFU1QgQVBJc1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmVuZHBvaW50VHlwZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdE9wZW5BcGlSZXNwb25zZX1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUub3BlbkFwaURpc2NvdmVyeSA9IGZ1bmN0aW9uIG9wZW5BcGlEaXNjb3Zlcnkob3B0cykge1xuICAgIHJldHVybiB0aGlzLm9wZW5BcGlEaXNjb3ZlcnlXaXRoSHR0cEluZm8ob3B0cykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZW5lcmljIGNvbmZpZyBQdXQsIHVzaW5nIGEgZnVsbCBwYXRoIGluIHRoZSBjb25maWcgdHJlZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gZnVsbFBhdGggXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDb25maWd1cmF0aW9ufSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Q29uZmlndXJhdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUucHV0Q29uZmlnV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcHV0Q29uZmlnV2l0aEh0dHBJbmZvKGZ1bGxQYXRoLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdmdWxsUGF0aCcgaXMgc2V0XG4gICAgaWYgKGZ1bGxQYXRoID09PSB1bmRlZmluZWQgfHwgZnVsbFBhdGggPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnZnVsbFBhdGgnIHdoZW4gY2FsbGluZyBwdXRDb25maWdcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgcHV0Q29uZmlnXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0Z1bGxQYXRoJzogZnVsbFBhdGhcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdENvbmZpZ3VyYXRpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy97RnVsbFBhdGh9JywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdlbmVyaWMgY29uZmlnIFB1dCwgdXNpbmcgYSBmdWxsIHBhdGggaW4gdGhlIGNvbmZpZyB0cmVlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBmdWxsUGF0aCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENvbmZpZ3VyYXRpb259IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RDb25maWd1cmF0aW9ufVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRDb25maWcgPSBmdW5jdGlvbiBwdXRDb25maWcoZnVsbFBhdGgsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wdXRDb25maWdXaXRoSHR0cEluZm8oZnVsbFBhdGgsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIG9yIHVwZGF0ZSBhIGRhdGFzb3VyY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLnB1dERhdGFTb3VyY2VXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBwdXREYXRhU291cmNlV2l0aEh0dHBJbmZvKG5hbWUsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWUnIGlzIHNldFxuICAgIGlmIChuYW1lID09PSB1bmRlZmluZWQgfHwgbmFtZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICduYW1lJyB3aGVuIGNhbGxpbmcgcHV0RGF0YVNvdXJjZVwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBwdXREYXRhU291cmNlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ05hbWUnOiBuYW1lXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbE9iamVjdERhdGFTb3VyY2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9kYXRhc291cmNlL3tOYW1lfScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIG9yIHVwZGF0ZSBhIGRhdGFzb3VyY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLnB1dERhdGFTb3VyY2UgPSBmdW5jdGlvbiBwdXREYXRhU291cmNlKG5hbWUsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wdXREYXRhU291cmNlV2l0aEh0dHBJbmZvKG5hbWUsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gQ29uZmlnU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENvbmZpZ1NlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250QmluYXJ5UmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEZyb250QmluYXJ5UmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdEZyb250QmluYXJ5UmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250QmluYXJ5UmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRCaW5hcnlSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250U3RhdGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U3RhdGVSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udFN0YXRlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UpO1xuXG4vKipcbiogRnJvbnRlbmRTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL0Zyb250ZW5kU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBGcm9udGVuZFNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgRnJvbnRlbmRTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9Gcm9udGVuZFNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBGcm9udGVuZFNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEZyb250ZW5kU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBzb21lIGRhdGEgdG8gdGhlIGluaXRpYWwgc2V0IG9mIHBhcmFtZXRlcnMgbG9hZGVkIGJ5IHRoZSBmcm9udGVuZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250Qm9vdENvbmZXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBmcm9udEJvb3RDb25mV2l0aEh0dHBJbmZvKCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvZnJvbnRlbmQvYm9vdGNvbmYnLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQWRkIHNvbWUgZGF0YSB0byB0aGUgaW5pdGlhbCBzZXQgb2YgcGFyYW1ldGVycyBsb2FkZWQgYnkgdGhlIGZyb250ZW5kXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2V9XG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRCb290Q29uZiA9IGZ1bmN0aW9uIGZyb250Qm9vdENvbmYoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRCb290Q29uZldpdGhIdHRwSW5mbygpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJpYyBlbmRwb2ludCB0aGF0IGNhbiBiZSBpbXBsZW1lbnRlZCBieSAyRkEgc3lzdGVtcyBmb3IgZW5yb2xsbWVudFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250RW5yb2xsQXV0aFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGZyb250RW5yb2xsQXV0aFdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGZyb250RW5yb2xsQXV0aFwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9mcm9udGVuZC9lbnJvbGwnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdlbmVyaWMgZW5kcG9pbnQgdGhhdCBjYW4gYmUgaW1wbGVtZW50ZWQgYnkgMkZBIHN5c3RlbXMgZm9yIGVucm9sbG1lbnRcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZX1cbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udEVucm9sbEF1dGggPSBmdW5jdGlvbiBmcm9udEVucm9sbEF1dGgoYm9keSkge1xuICAgIHJldHVybiB0aGlzLmZyb250RW5yb2xsQXV0aFdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlcnZlIGxpc3Qgb2YgSTE4biBtZXNzYWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbGFuZyBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udE1lc3NhZ2VzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZnJvbnRNZXNzYWdlc1dpdGhIdHRwSW5mbyhsYW5nKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdsYW5nJyBpcyBzZXRcbiAgICBpZiAobGFuZyA9PT0gdW5kZWZpbmVkIHx8IGxhbmcgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbGFuZycgd2hlbiBjYWxsaW5nIGZyb250TWVzc2FnZXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTGFuZyc6IGxhbmdcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvZnJvbnRlbmQvbWVzc2FnZXMve0xhbmd9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlcnZlIGxpc3Qgb2YgSTE4biBtZXNzYWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbGFuZyBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZX1cbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udE1lc3NhZ2VzID0gZnVuY3Rpb24gZnJvbnRNZXNzYWdlcyhsYW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRNZXNzYWdlc1dpdGhIdHRwSW5mbyhsYW5nKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlcnZlIGxpc3Qgb2YgSTE4biBtZXNzYWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbGFuZyBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250UGx1Z2luc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGZyb250UGx1Z2luc1dpdGhIdHRwSW5mbyhsYW5nKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdsYW5nJyBpcyBzZXRcbiAgICBpZiAobGFuZyA9PT0gdW5kZWZpbmVkIHx8IGxhbmcgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbGFuZycgd2hlbiBjYWxsaW5nIGZyb250UGx1Z2luc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdMYW5nJzogbGFuZ1xuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2Zyb250ZW5kL3BsdWdpbnMve0xhbmd9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlcnZlIGxpc3Qgb2YgSTE4biBtZXNzYWdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbGFuZyBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlfVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250UGx1Z2lucyA9IGZ1bmN0aW9uIGZyb250UGx1Z2lucyhsYW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRQbHVnaW5zV2l0aEh0dHBJbmZvKGxhbmcpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogVXBsb2FkIGZyb250ZW5kIGJpbmFyaWVzIChhdmF0YXJzIC8gbG9nb3MgLyBiZyBpbWFnZXMpXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBiaW5hcnlUeXBlIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRQdXRCaW5hcnlXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBmcm9udFB1dEJpbmFyeVdpdGhIdHRwSW5mbyhiaW5hcnlUeXBlLCB1dWlkLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdiaW5hcnlUeXBlJyBpcyBzZXRcbiAgICBpZiAoYmluYXJ5VHlwZSA9PT0gdW5kZWZpbmVkIHx8IGJpbmFyeVR5cGUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYmluYXJ5VHlwZScgd2hlbiBjYWxsaW5nIGZyb250UHV0QmluYXJ5XCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyBpcyBzZXRcbiAgICBpZiAodXVpZCA9PT0gdW5kZWZpbmVkIHx8IHV1aWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgd2hlbiBjYWxsaW5nIGZyb250UHV0QmluYXJ5XCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGZyb250UHV0QmluYXJ5XCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0JpbmFyeVR5cGUnOiBiaW5hcnlUeXBlLFxuICAgICAgJ1V1aWQnOiB1dWlkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9mcm9udGVuZC9iaW5hcmllcy97QmluYXJ5VHlwZX0ve1V1aWR9JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGxvYWQgZnJvbnRlbmQgYmluYXJpZXMgKGF2YXRhcnMgLyBsb2dvcyAvIGJnIGltYWdlcylcbiAgICogQHBhcmFtIHtTdHJpbmd9IGJpbmFyeVR5cGUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXNwb25zZX1cbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udFB1dEJpbmFyeSA9IGZ1bmN0aW9uIGZyb250UHV0QmluYXJ5KGJpbmFyeVR5cGUsIHV1aWQsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5mcm9udFB1dEJpbmFyeVdpdGhIdHRwSW5mbyhiaW5hcnlUeXBlLCB1dWlkLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlcnZlIGZyb250ZW5kIGJpbmFyaWVzIGRpcmVjdGx5IChhdmF0YXJzIC8gbG9nb3MgLyBiZyBpbWFnZXMpXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBiaW5hcnlUeXBlIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRTZXJ2ZUJpbmFyeVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGZyb250U2VydmVCaW5hcnlXaXRoSHR0cEluZm8oYmluYXJ5VHlwZSwgdXVpZCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYmluYXJ5VHlwZScgaXMgc2V0XG4gICAgaWYgKGJpbmFyeVR5cGUgPT09IHVuZGVmaW5lZCB8fCBiaW5hcnlUeXBlID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JpbmFyeVR5cGUnIHdoZW4gY2FsbGluZyBmcm9udFNlcnZlQmluYXJ5XCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyBpcyBzZXRcbiAgICBpZiAodXVpZCA9PT0gdW5kZWZpbmVkIHx8IHV1aWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgd2hlbiBjYWxsaW5nIGZyb250U2VydmVCaW5hcnlcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnQmluYXJ5VHlwZSc6IGJpbmFyeVR5cGUsXG4gICAgICAnVXVpZCc6IHV1aWRcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdEZyb250QmluYXJ5UmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2Zyb250ZW5kL2JpbmFyaWVzL3tCaW5hcnlUeXBlfS97VXVpZH0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VydmUgZnJvbnRlbmQgYmluYXJpZXMgZGlyZWN0bHkgKGF2YXRhcnMgLyBsb2dvcyAvIGJnIGltYWdlcylcbiAgICogQHBhcmFtIHtTdHJpbmd9IGJpbmFyeVR5cGUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXNwb25zZX1cbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udFNlcnZlQmluYXJ5ID0gZnVuY3Rpb24gZnJvbnRTZXJ2ZUJpbmFyeShiaW5hcnlUeXBlLCB1dWlkKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRTZXJ2ZUJpbmFyeVdpdGhIdHRwSW5mbyhiaW5hcnlUeXBlLCB1dWlkKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBKV1RcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udFNlc3Npb25XaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBmcm9udFNlc3Npb25XaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBmcm9udFNlc3Npb25cIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvZnJvbnRlbmQvc2Vzc2lvbicsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogSGFuZGxlIEpXVFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlfVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250U2Vzc2lvbiA9IGZ1bmN0aW9uIGZyb250U2Vzc2lvbihib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRTZXNzaW9uV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogU2VuZCBYTUwgc3RhdGUgcmVnaXN0cnlcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250U3RhdGVSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udFN0YXRlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZnJvbnRTdGF0ZVdpdGhIdHRwSW5mbygpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RGcm9udFN0YXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2Zyb250ZW5kL3N0YXRlJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlbmQgWE1MIHN0YXRlIHJlZ2lzdHJ5XG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFN0YXRlUmVzcG9uc2V9XG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRTdGF0ZSA9IGZ1bmN0aW9uIGZyb250U3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRTdGF0ZVdpdGhIdHRwSW5mbygpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogU2VuZHMgYSB0cmVlIG9mIG5vZGVzIHRvIGJlIHVzZWQgYSBtZW51IGluIHRoZSBTZXR0aW5ncyBwYW5lbFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NNZW51UmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuc2V0dGluZ3NNZW51V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc2V0dGluZ3NNZW51V2l0aEh0dHBJbmZvKCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9mcm9udGVuZC9zZXR0aW5ncy1tZW51JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgdHJlZSBvZiBub2RlcyB0byBiZSB1c2VkIGEgbWVudSBpbiB0aGUgU2V0dGluZ3MgcGFuZWxcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlfVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLnNldHRpbmdzTWVudSA9IGZ1bmN0aW9uIHNldHRpbmdzTWVudSgpIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5nc01lbnVXaXRoSHR0cEluZm8oKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIEZyb250ZW5kU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEZyb250ZW5kU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbFJlc3RSZWxhdGlvblJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFJlbGF0aW9uUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RSZWxhdGlvblJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlbGF0aW9uUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJTdGF0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlclN0YXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlclN0YXRlUmVzcG9uc2UpO1xuXG4vKipcbiogR3JhcGhTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL0dyYXBoU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBHcmFwaFNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgR3JhcGhTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9HcmFwaFNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBHcmFwaFNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEdyYXBoU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgcmVsYXRpb24gb2YgY29udGV4dCB1c2VyIHdpdGggYW5vdGhlciB1c2VyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1c2VySWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RSZWxhdGlvblJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBHcmFwaFNlcnZpY2VBcGkucHJvdG90eXBlLnJlbGF0aW9uV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcmVsYXRpb25XaXRoSHR0cEluZm8odXNlcklkKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1c2VySWQnIGlzIHNldFxuICAgIGlmICh1c2VySWQgPT09IHVuZGVmaW5lZCB8fCB1c2VySWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXNlcklkJyB3aGVuIGNhbGxpbmcgcmVsYXRpb25cIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnVXNlcklkJzogdXNlcklkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RSZWxhdGlvblJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9ncmFwaC9yZWxhdGlvbi97VXNlcklkfScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb21wdXRlIHJlbGF0aW9uIG9mIGNvbnRleHQgdXNlciB3aXRoIGFub3RoZXIgdXNlclxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXNlcklkIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmVsYXRpb25SZXNwb25zZX1cbiAgICovXG5cbiAgR3JhcGhTZXJ2aWNlQXBpLnByb3RvdHlwZS5yZWxhdGlvbiA9IGZ1bmN0aW9uIHJlbGF0aW9uKHVzZXJJZCkge1xuICAgIHJldHVybiB0aGlzLnJlbGF0aW9uV2l0aEh0dHBJbmZvKHVzZXJJZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb21wdXRlIGFjY2Vzc2libGUgd29ya3NwYWNlcyBmb3IgYSBnaXZlbiB1c2VyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzZWdtZW50IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlclN0YXRlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEdyYXBoU2VydmljZUFwaS5wcm90b3R5cGUudXNlclN0YXRlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gdXNlclN0YXRlV2l0aEh0dHBJbmZvKHNlZ21lbnQpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3NlZ21lbnQnIGlzIHNldFxuICAgIGlmIChzZWdtZW50ID09PSB1bmRlZmluZWQgfHwgc2VnbWVudCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzZWdtZW50JyB3aGVuIGNhbGxpbmcgdXNlclN0YXRlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1NlZ21lbnQnOiBzZWdtZW50XG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RVc2VyU3RhdGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvZ3JhcGgvc3RhdGUve1NlZ21lbnR9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgYWNjZXNzaWJsZSB3b3Jrc3BhY2VzIGZvciBhIGdpdmVuIHVzZXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IHNlZ21lbnQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RVc2VyU3RhdGVSZXNwb25zZX1cbiAgICovXG5cbiAgR3JhcGhTZXJ2aWNlQXBpLnByb3RvdHlwZS51c2VyU3RhdGUgPSBmdW5jdGlvbiB1c2VyU3RhdGUoc2VnbWVudCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJTdGF0ZVdpdGhIdHRwSW5mbyhzZWdtZW50KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIEdyYXBoU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEdyYXBoU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsSW5zdGFsbEluc3RhbGxSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvSW5zdGFsbEluc3RhbGxSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsSW5zdGFsbFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJbnN0YWxsSW5zdGFsbFJlcXVlc3QpO1xuXG52YXIgX21vZGVsSW5zdGFsbEluc3RhbGxSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0luc3RhbGxJbnN0YWxsUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEluc3RhbGxJbnN0YWxsUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJbnN0YWxsSW5zdGFsbFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QpO1xuXG52YXIgX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UpO1xuXG4vKipcbiogSW5zdGFsbFNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvSW5zdGFsbFNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSW5zdGFsbFNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgSW5zdGFsbFNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL0luc3RhbGxTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gSW5zdGFsbFNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluc3RhbGxTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBhIGNoZWNrIGR1cmluZyBpbnN0YWxsIChsaWtlIERCIGNvbm5lY3Rpb24sIHBocC1mcG0gZGV0ZWN0aW9uLCBldGMpXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgSW5zdGFsbFNlcnZpY2VBcGkucHJvdG90eXBlLmdldEFncmVlbWVudFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldEFncmVlbWVudFdpdGhIdHRwSW5mbygpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvaW5zdGFsbC9hZ3JlZW1lbnQnLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogUGVyZm9ybSBhIGNoZWNrIGR1cmluZyBpbnN0YWxsIChsaWtlIERCIGNvbm5lY3Rpb24sIHBocC1mcG0gZGV0ZWN0aW9uLCBldGMpXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZX1cbiAgICovXG5cbiAgSW5zdGFsbFNlcnZpY2VBcGkucHJvdG90eXBlLmdldEFncmVlbWVudCA9IGZ1bmN0aW9uIGdldEFncmVlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBZ3JlZW1lbnRXaXRoSHR0cEluZm8oKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWRzIGRlZmF1bHQgdmFsdWVzIGZvciBpbnN0YWxsIGZvcm1cbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEluc3RhbGxTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRJbnN0YWxsV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZ2V0SW5zdGFsbFdpdGhIdHRwSW5mbygpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9pbnN0YWxsJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWRzIGRlZmF1bHQgdmFsdWVzIGZvciBpbnN0YWxsIGZvcm1cbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2V9XG4gICAqL1xuXG4gIEluc3RhbGxTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRJbnN0YWxsID0gZnVuY3Rpb24gZ2V0SW5zdGFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnN0YWxsV2l0aEh0dHBJbmZvKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGEgY2hlY2sgZHVyaW5nIGluc3RhbGwgKGxpa2UgREIgY29ubmVjdGlvbiwgcGhwLWZwbSBkZXRlY3Rpb24sIGV0YylcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgSW5zdGFsbFNlcnZpY2VBcGkucHJvdG90eXBlLnBlcmZvcm1JbnN0YWxsQ2hlY2tXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBwZXJmb3JtSW5zdGFsbENoZWNrV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgcGVyZm9ybUluc3RhbGxDaGVja1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9pbnN0YWxsL2NoZWNrJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGEgY2hlY2sgZHVyaW5nIGluc3RhbGwgKGxpa2UgREIgY29ubmVjdGlvbiwgcGhwLWZwbSBkZXRlY3Rpb24sIGV0YylcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZX1cbiAgICovXG5cbiAgSW5zdGFsbFNlcnZpY2VBcGkucHJvdG90eXBlLnBlcmZvcm1JbnN0YWxsQ2hlY2sgPSBmdW5jdGlvbiBwZXJmb3JtSW5zdGFsbENoZWNrKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wZXJmb3JtSW5zdGFsbENoZWNrV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUG9zdCB2YWx1ZXMgdG8gYmUgc2F2ZWQgZm9yIGluc3RhbGxcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBJbnN0YWxsU2VydmljZUFwaS5wcm90b3R5cGUucG9zdEluc3RhbGxXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBwb3N0SW5zdGFsbFdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHBvc3RJbnN0YWxsXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJbnN0YWxsSW5zdGFsbFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9pbnN0YWxsJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQb3N0IHZhbHVlcyB0byBiZSBzYXZlZCBmb3IgaW5zdGFsbFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbFJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsUmVzcG9uc2V9XG4gICAqL1xuXG4gIEluc3RhbGxTZXJ2aWNlQXBpLnByb3RvdHlwZS5wb3N0SW5zdGFsbCA9IGZ1bmN0aW9uIHBvc3RJbnN0YWxsKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wb3N0SW5zdGFsbFdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIEluc3RhbGxTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSW5zdGFsbFNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxKb2JzQ3RybENvbW1hbmQgPSByZXF1aXJlKCcuLi9tb2RlbC9Kb2JzQ3RybENvbW1hbmQnKTtcblxudmFyIF9tb2RlbEpvYnNDdHJsQ29tbWFuZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNDdHJsQ29tbWFuZCk7XG5cbnZhciBfbW9kZWxKb2JzQ3RybENvbW1hbmRSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0pvYnNDdHJsQ29tbWFuZFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxKb2JzQ3RybENvbW1hbmRSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEpvYnNEZWxldGVUYXNrc1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxKb2JzRGVsZXRlVGFza3NSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxKb2JzRGVsZXRlVGFza3NSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0pvYnNEZWxldGVUYXNrc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxKb2JzRGVsZXRlVGFza3NSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbEpvYnNMaXN0Sm9ic1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9Kb2JzTGlzdEpvYnNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxKb2JzTGlzdEpvYnNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0xpc3RKb2JzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYlJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0VXNlckpvYlJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9iUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RVc2VySm9iUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYlJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFVzZXJKb2JSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJKb2JSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RVc2VySm9iUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJKb2JzQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RVc2VySm9ic0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9ic0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlckpvYnNDb2xsZWN0aW9uKTtcblxuLyoqXG4qIEpvYnNTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL0pvYnNTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IEpvYnNTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9Kb2JzU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIEpvYnNTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgQ29udHJvbCBDb21tYW5kcyB0byBvbmUgb3IgbWFueSBqb2JzIC8gdGFza3NcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9Kb2JzQ3RybENvbW1hbmRSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgSm9ic1NlcnZpY2VBcGkucHJvdG90eXBlLnVzZXJDb250cm9sSm9iV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gdXNlckNvbnRyb2xKb2JXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyB1c2VyQ29udHJvbEpvYlwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2pvYnMvdXNlcicsICdQVVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZW5kIENvbnRyb2wgQ29tbWFuZHMgdG8gb25lIG9yIG1hbnkgam9icyAvIHRhc2tzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNDdHJsQ29tbWFuZH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kUmVzcG9uc2V9XG4gICAqL1xuXG4gIEpvYnNTZXJ2aWNlQXBpLnByb3RvdHlwZS51c2VyQ29udHJvbEpvYiA9IGZ1bmN0aW9uIHVzZXJDb250cm9sSm9iKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyQ29udHJvbEpvYldpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHByZWRlZmluZWQgam9iIHRvIGJlIHJ1biBkaXJlY3RseVxuICAgKiBAcGFyYW0ge1N0cmluZ30gam9iTmFtZSBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlckpvYlJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBKb2JzU2VydmljZUFwaS5wcm90b3R5cGUudXNlckNyZWF0ZUpvYldpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVzZXJDcmVhdGVKb2JXaXRoSHR0cEluZm8oam9iTmFtZSwgYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnam9iTmFtZScgaXMgc2V0XG4gICAgaWYgKGpvYk5hbWUgPT09IHVuZGVmaW5lZCB8fCBqb2JOYW1lID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2pvYk5hbWUnIHdoZW4gY2FsbGluZyB1c2VyQ3JlYXRlSm9iXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHVzZXJDcmVhdGVKb2JcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnSm9iTmFtZSc6IGpvYk5hbWVcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFVzZXJKb2JSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvam9icy91c2VyL3tKb2JOYW1lfScsICdQVVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBwcmVkZWZpbmVkIGpvYiB0byBiZSBydW4gZGlyZWN0bHlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGpvYk5hbWUgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXNwb25zZX1cbiAgICovXG5cbiAgSm9ic1NlcnZpY2VBcGkucHJvdG90eXBlLnVzZXJDcmVhdGVKb2IgPSBmdW5jdGlvbiB1c2VyQ3JlYXRlSm9iKGpvYk5hbWUsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyQ3JlYXRlSm9iV2l0aEh0dHBJbmZvKGpvYk5hbWUsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogU2VuZCBhIGNvbnRyb2wgY29tbWFuZCB0byBjbGVhbiB0YXNrcyBvbiBhIGdpdmVuIGpvYlxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgSm9ic1NlcnZpY2VBcGkucHJvdG90eXBlLnVzZXJEZWxldGVUYXNrc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVzZXJEZWxldGVUYXNrc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHVzZXJEZWxldGVUYXNrc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2pvYnMvdGFza3MvZGVsZXRlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZW5kIGEgY29udHJvbCBjb21tYW5kIHRvIGNsZWFuIHRhc2tzIG9uIGEgZ2l2ZW4gam9iXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNEZWxldGVUYXNrc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0pvYnNEZWxldGVUYXNrc1Jlc3BvbnNlfVxuICAgKi9cblxuICBKb2JzU2VydmljZUFwaS5wcm90b3R5cGUudXNlckRlbGV0ZVRhc2tzID0gZnVuY3Rpb24gdXNlckRlbGV0ZVRhc2tzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyRGVsZXRlVGFza3NXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGpvYnMgYXNzb2NpYXRlZCB3aXRoIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzTGlzdEpvYnNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlckpvYnNDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBKb2JzU2VydmljZUFwaS5wcm90b3R5cGUudXNlckxpc3RKb2JzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gdXNlckxpc3RKb2JzV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgdXNlckxpc3RKb2JzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0VXNlckpvYnNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9qb2JzL3VzZXInLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3Qgam9icyBhc3NvY2lhdGVkIHdpdGggY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNMaXN0Sm9ic1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9ic0NvbGxlY3Rpb259XG4gICAqL1xuXG4gIEpvYnNTZXJ2aWNlQXBpLnByb3RvdHlwZS51c2VyTGlzdEpvYnMgPSBmdW5jdGlvbiB1c2VyTGlzdEpvYnMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnVzZXJMaXN0Sm9ic1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIEpvYnNTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic1NlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxMb2dMaXN0TG9nUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0xvZ0xpc3RMb2dSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxMb2dMaXN0TG9nUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbExvZ0xpc3RMb2dSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uKTtcblxuLyoqXG4qIExvZ1NlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvTG9nU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBMb2dTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IExvZ1NlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL0xvZ1NlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBMb2dTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMb2dTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogVGVjaG5pY2FsIExvZ3MsIGluIEpzb24gb3IgQ1NWIGZvcm1hdFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Mb2dMaXN0TG9nUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBMb2dTZXJ2aWNlQXBpLnByb3RvdHlwZS5zeXNsb2dXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzeXNsb2dXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzeXNsb2dcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvbG9nL3N5cycsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogVGVjaG5pY2FsIExvZ3MsIGluIEpzb24gb3IgQ1NWIGZvcm1hdFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Mb2dMaXN0TG9nUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9ufVxuICAgKi9cblxuICBMb2dTZXJ2aWNlQXBpLnByb3RvdHlwZS5zeXNsb2cgPSBmdW5jdGlvbiBzeXNsb2coYm9keSkge1xuICAgIHJldHVybiB0aGlzLnN5c2xvZ1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIExvZ1NlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBMb2dTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsTWFpbGVyTWFpbCA9IHJlcXVpcmUoJy4uL21vZGVsL01haWxlck1haWwnKTtcblxudmFyIF9tb2RlbE1haWxlck1haWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxNYWlsZXJNYWlsKTtcblxudmFyIF9tb2RlbE1haWxlclNlbmRNYWlsUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9NYWlsZXJTZW5kTWFpbFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxNYWlsZXJTZW5kTWFpbFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsTWFpbGVyU2VuZE1haWxSZXNwb25zZSk7XG5cbi8qKlxuKiBNYWlsZXJTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL01haWxlclNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgTWFpbGVyU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBNYWlsZXJTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9NYWlsZXJTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gTWFpbGVyU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFpbGVyU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgYW4gZW1haWwgdG8gYSB1c2VyIG9yIGFueSBlbWFpbCBhZGRyZXNzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL01haWxlck1haWx9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL01haWxlclNlbmRNYWlsUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIE1haWxlclNlcnZpY2VBcGkucHJvdG90eXBlLnNlbmRXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzZW5kV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc2VuZFwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsTWFpbGVyU2VuZE1haWxSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvbWFpbGVyL3NlbmQnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlbmQgYW4gZW1haWwgdG8gYSB1c2VyIG9yIGFueSBlbWFpbCBhZGRyZXNzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL01haWxlck1haWx9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL01haWxlclNlbmRNYWlsUmVzcG9uc2V9XG4gICAqL1xuXG4gIE1haWxlclNlcnZpY2VBcGkucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbiBzZW5kKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zZW5kV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gTWFpbGVyU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE1haWxlclNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0R2V0QnVsa01ldGFSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0R2V0QnVsa01ldGFSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0TWV0YUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0TWV0YUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RNZXRhQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RNZXRhQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxUcmVlTm9kZSA9IHJlcXVpcmUoJy4uL21vZGVsL1RyZWVOb2RlJyk7XG5cbnZhciBfbW9kZWxUcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVOb2RlKTtcblxuLyoqXG4qIE1ldGFTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL01ldGFTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIE1ldGFTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IE1ldGFTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9NZXRhU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIE1ldGFTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNZXRhU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBtZXRhZGF0YSBvZiBhIGdpdmVuIG5vZGVcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5vZGVQYXRoIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1RyZWVOb2RlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlTWV0YVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGRlbGV0ZU1ldGFXaXRoSHR0cEluZm8obm9kZVBhdGgsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25vZGVQYXRoJyBpcyBzZXRcbiAgICBpZiAobm9kZVBhdGggPT09IHVuZGVmaW5lZCB8fCBub2RlUGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdub2RlUGF0aCcgd2hlbiBjYWxsaW5nIGRlbGV0ZU1ldGFcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgZGVsZXRlTWV0YVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdOb2RlUGF0aCc6IG5vZGVQYXRoXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFRyZWVOb2RlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9tZXRhL2RlbGV0ZS97Tm9kZVBhdGh9JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgbWV0YWRhdGEgb2YgYSBnaXZlbiBub2RlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBub2RlUGF0aCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9UcmVlTm9kZX1cbiAgICovXG5cbiAgTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZU1ldGEgPSBmdW5jdGlvbiBkZWxldGVNZXRhKG5vZGVQYXRoLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlTWV0YVdpdGhIdHRwSW5mbyhub2RlUGF0aCwgYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IG1ldGEgZm9yIGEgbGlzdCBvZiBub2Rlcywgb3IgYSBmdWxsIGRpcmVjdG9yeSB1c2luZyAvcGF0aC9fKiBzeW50YXhcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIE1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRCdWxrTWV0YVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldEJ1bGtNZXRhV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgZ2V0QnVsa01ldGFcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9tZXRhL2J1bGsvZ2V0JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IG1ldGEgZm9yIGEgbGlzdCBvZiBub2Rlcywgb3IgYSBmdWxsIGRpcmVjdG9yeSB1c2luZyAvcGF0aC9fKiBzeW50YXhcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2V9XG4gICAqL1xuXG4gIE1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRCdWxrTWV0YSA9IGZ1bmN0aW9uIGdldEJ1bGtNZXRhKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRCdWxrTWV0YVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gbm9kZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbm9kZVBhdGggXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvVHJlZU5vZGV9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIE1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRNZXRhV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZ2V0TWV0YVdpdGhIdHRwSW5mbyhub2RlUGF0aCwgYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbm9kZVBhdGgnIGlzIHNldFxuICAgIGlmIChub2RlUGF0aCA9PT0gdW5kZWZpbmVkIHx8IG5vZGVQYXRoID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25vZGVQYXRoJyB3aGVuIGNhbGxpbmcgZ2V0TWV0YVwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBnZXRNZXRhXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ05vZGVQYXRoJzogbm9kZVBhdGhcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsVHJlZU5vZGUyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL21ldGEvZ2V0L3tOb2RlUGF0aH0nLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gbm9kZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbm9kZVBhdGggXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvVHJlZU5vZGV9XG4gICAqL1xuXG4gIE1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRNZXRhID0gZnVuY3Rpb24gZ2V0TWV0YShub2RlUGF0aCwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFXaXRoSHR0cEluZm8obm9kZVBhdGgsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIG1ldGFkYXRhIGZvciBhIGdpdmVuIG5vZGVcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5vZGVQYXRoIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TWV0YUNvbGxlY3Rpb259IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1RyZWVOb2RlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuc2V0TWV0YVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHNldE1ldGFXaXRoSHR0cEluZm8obm9kZVBhdGgsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25vZGVQYXRoJyBpcyBzZXRcbiAgICBpZiAobm9kZVBhdGggPT09IHVuZGVmaW5lZCB8fCBub2RlUGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdub2RlUGF0aCcgd2hlbiBjYWxsaW5nIHNldE1ldGFcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc2V0TWV0YVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdOb2RlUGF0aCc6IG5vZGVQYXRoXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFRyZWVOb2RlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9tZXRhL3NldC97Tm9kZVBhdGh9JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gbm9kZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbm9kZVBhdGggXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhQ29sbGVjdGlvbn0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvVHJlZU5vZGV9XG4gICAqL1xuXG4gIE1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZXRNZXRhID0gZnVuY3Rpb24gc2V0TWV0YShub2RlUGF0aCwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLnNldE1ldGFXaXRoSHR0cEluZm8obm9kZVBhdGgsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gTWV0YVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBNZXRhU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UpO1xuXG4vKipcbiogUG9saWN5U2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9Qb2xpY3lTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFBvbGljeVNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgUG9saWN5U2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvUG9saWN5U2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIFBvbGljeVNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFBvbGljeVNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZWZpbmVkIHNlY3VyaXR5IHBvbGljaWVzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFBvbGljeVNlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RQb2xpY2llc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGxpc3RQb2xpY2llc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGxpc3RQb2xpY2llc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9wb2xpY3knLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGRlZmluZWQgc2VjdXJpdHkgcG9saWNpZXNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZX1cbiAgICovXG5cbiAgUG9saWN5U2VydmljZUFwaS5wcm90b3R5cGUubGlzdFBvbGljaWVzID0gZnVuY3Rpb24gbGlzdFBvbGljaWVzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0UG9saWNpZXNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBQb2xpY3lTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUG9saWN5U2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbElkbVJvbGUgPSByZXF1aXJlKCcuLi9tb2RlbC9JZG1Sb2xlJyk7XG5cbnZhciBfbW9kZWxJZG1Sb2xlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtUm9sZSk7XG5cbnZhciBfbW9kZWxSZXN0Um9sZXNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFJvbGVzQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFJvbGVzQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSb2xlc0NvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0U2VhcmNoUm9sZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2VhcmNoUm9sZVJlcXVlc3QpO1xuXG4vKipcbiogUm9sZVNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvUm9sZVNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUm9sZVNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgUm9sZVNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL1JvbGVTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gUm9sZVNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJvbGVTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGEgUm9sZSBieSBJRFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtUm9sZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgUm9sZVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZVJvbGVXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBkZWxldGVSb2xlV2l0aEh0dHBJbmZvKHV1aWQpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIGlzIHNldFxuICAgIGlmICh1dWlkID09PSB1bmRlZmluZWQgfHwgdXVpZCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyB3aGVuIGNhbGxpbmcgZGVsZXRlUm9sZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdVdWlkJzogdXVpZFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJZG1Sb2xlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9yb2xlL3tVdWlkfScsICdERUxFVEUnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBSb2xlIGJ5IElEXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1Sb2xlfVxuICAgKi9cblxuICBSb2xlU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlUm9sZSA9IGZ1bmN0aW9uIGRlbGV0ZVJvbGUodXVpZCkge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZVJvbGVXaXRoSHR0cEluZm8odXVpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgYSBSb2xlIGJ5IElEXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmxhYmVsIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMuaXNUZWFtIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMuZ3JvdXBSb2xlIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMudXNlclJvbGUgXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBvcHRzLmxhc3RVcGRhdGVkIFxuICAgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBvcHRzLmF1dG9BcHBsaWVzIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMucG9saWNpZXNDb250ZXh0RWRpdGFibGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVJvbGV9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFJvbGVTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRSb2xlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZ2V0Um9sZVdpdGhIdHRwSW5mbyh1dWlkLCBvcHRzKSB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyBpcyBzZXRcbiAgICBpZiAodXVpZCA9PT0gdW5kZWZpbmVkIHx8IHV1aWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgd2hlbiBjYWxsaW5nIGdldFJvbGVcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnVXVpZCc6IHV1aWRcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICdMYWJlbCc6IG9wdHNbJ2xhYmVsJ10sXG4gICAgICAnSXNUZWFtJzogb3B0c1snaXNUZWFtJ10sXG4gICAgICAnR3JvdXBSb2xlJzogb3B0c1snZ3JvdXBSb2xlJ10sXG4gICAgICAnVXNlclJvbGUnOiBvcHRzWyd1c2VyUm9sZSddLFxuICAgICAgJ0xhc3RVcGRhdGVkJzogb3B0c1snbGFzdFVwZGF0ZWQnXSxcbiAgICAgICdBdXRvQXBwbGllcyc6IHRoaXMuYXBpQ2xpZW50LmJ1aWxkQ29sbGVjdGlvblBhcmFtKG9wdHNbJ2F1dG9BcHBsaWVzJ10sICdjc3YnKSxcbiAgICAgICdQb2xpY2llc0NvbnRleHRFZGl0YWJsZSc6IG9wdHNbJ3BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ11cbiAgICB9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSWRtUm9sZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvcm9sZS97VXVpZH0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0IGEgUm9sZSBieSBJRFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5sYWJlbCBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLmlzVGVhbSBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLmdyb3VwUm9sZSBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLnVzZXJSb2xlIFxuICAgKiBAcGFyYW0ge051bWJlcn0gb3B0cy5sYXN0VXBkYXRlZCBcbiAgICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gb3B0cy5hdXRvQXBwbGllcyBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLnBvbGljaWVzQ29udGV4dEVkaXRhYmxlIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1Sb2xlfVxuICAgKi9cblxuICBSb2xlU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0Um9sZSA9IGZ1bmN0aW9uIGdldFJvbGUodXVpZCwgb3B0cykge1xuICAgIHJldHVybiB0aGlzLmdldFJvbGVXaXRoSHR0cEluZm8odXVpZCwgb3B0cykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZWFyY2ggUm9sZXNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Um9sZXNDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBSb2xlU2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoUm9sZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzZWFyY2hSb2xlc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHNlYXJjaFJvbGVzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Um9sZXNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9yb2xlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZWFyY2ggUm9sZXNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Um9sZXNDb2xsZWN0aW9ufVxuICAgKi9cblxuICBSb2xlU2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoUm9sZXMgPSBmdW5jdGlvbiBzZWFyY2hSb2xlcyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoUm9sZXNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgb3IgdXBkYXRlIGEgUm9sZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtUm9sZX0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtUm9sZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgUm9sZVNlcnZpY2VBcGkucHJvdG90eXBlLnNldFJvbGVXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzZXRSb2xlV2l0aEh0dHBJbmZvKHV1aWQsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIGlzIHNldFxuICAgIGlmICh1dWlkID09PSB1bmRlZmluZWQgfHwgdXVpZCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyB3aGVuIGNhbGxpbmcgc2V0Um9sZVwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzZXRSb2xlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1V1aWQnOiB1dWlkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbElkbVJvbGUyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3JvbGUve1V1aWR9JywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBvciB1cGRhdGUgYSBSb2xlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Sb2xlfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1Sb2xlfVxuICAgKi9cblxuICBSb2xlU2VydmljZUFwaS5wcm90b3R5cGUuc2V0Um9sZSA9IGZ1bmN0aW9uIHNldFJvbGUodXVpZCwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLnNldFJvbGVXaXRoSHR0cEluZm8odXVpZCwgYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBSb2xlU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJvbGVTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFJlc3VsdHMgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0U2VhcmNoUmVzdWx0cycpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFJlc3VsdHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2VhcmNoUmVzdWx0cyk7XG5cbnZhciBfbW9kZWxUcmVlU2VhcmNoUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1RyZWVTZWFyY2hSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxUcmVlU2VhcmNoUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVTZWFyY2hSZXF1ZXN0KTtcblxuLyoqXG4qIFNlYXJjaFNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvU2VhcmNoU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBTZWFyY2hTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFNlYXJjaFNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL1NlYXJjaFNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBTZWFyY2hTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTZWFyY2hTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoIGluZGV4ZWQgbm9kZXMgKGZpbGVzL2ZvbGRlcnMpIG9uIHZhcmlvdXMgYXNwZWN0c1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlU2VhcmNoUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJlc3VsdHN9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFNlYXJjaFNlcnZpY2VBcGkucHJvdG90eXBlLm5vZGVzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbm9kZXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBub2Rlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFNlYXJjaFJlc3VsdHMyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3NlYXJjaC9ub2RlcycsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VhcmNoIGluZGV4ZWQgbm9kZXMgKGZpbGVzL2ZvbGRlcnMpIG9uIHZhcmlvdXMgYXNwZWN0c1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlU2VhcmNoUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJlc3VsdHN9XG4gICAqL1xuXG4gIFNlYXJjaFNlcnZpY2VBcGkucHJvdG90eXBlLm5vZGVzID0gZnVuY3Rpb24gbm9kZXMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gU2VhcmNoU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNlYXJjaFNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxSZXN0Q2VsbCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RDZWxsJyk7XG5cbnZhciBfbW9kZWxSZXN0Q2VsbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDZWxsKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVDZWxsUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZUNlbGxSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFB1dENlbGxSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFB1dENlbGxSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0UHV0Q2VsbFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UHV0Q2VsbFJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0U2hhcmVMaW5rID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFNoYXJlTGluaycpO1xuXG52YXIgX21vZGVsUmVzdFNoYXJlTGluazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTaGFyZUxpbmspO1xuXG4vKipcbiogU2hhcmVTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL1NoYXJlU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBTaGFyZVNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgU2hhcmVTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9TaGFyZVNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBTaGFyZVNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNoYXJlU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIHNoYXJlIHJvb21cbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVDZWxsUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlQ2VsbFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGRlbGV0ZUNlbGxXaXRoSHR0cEluZm8odXVpZCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgaXMgc2V0XG4gICAgaWYgKHV1aWQgPT09IHVuZGVmaW5lZCB8fCB1dWlkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIHdoZW4gY2FsbGluZyBkZWxldGVDZWxsXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1V1aWQnOiB1dWlkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3REZWxldGVDZWxsUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3NoYXJlL2NlbGwve1V1aWR9JywgJ0RFTEVURScsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIHNoYXJlIHJvb21cbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVDZWxsUmVzcG9uc2V9XG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlQ2VsbCA9IGZ1bmN0aW9uIGRlbGV0ZUNlbGwodXVpZCkge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZUNlbGxXaXRoSHR0cEluZm8odXVpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgU2hhcmUgTGlua1xuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZVNoYXJlTGlua1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGRlbGV0ZVNoYXJlTGlua1dpdGhIdHRwSW5mbyh1dWlkKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyBpcyBzZXRcbiAgICBpZiAodXVpZCA9PT0gdW5kZWZpbmVkIHx8IHV1aWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgd2hlbiBjYWxsaW5nIGRlbGV0ZVNoYXJlTGlua1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdVdWlkJzogdXVpZFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3NoYXJlL2xpbmsve1V1aWR9JywgJ0RFTEVURScsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBTaGFyZSBMaW5rXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2V9XG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlU2hhcmVMaW5rID0gZnVuY3Rpb24gZGVsZXRlU2hhcmVMaW5rKHV1aWQpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVTaGFyZUxpbmtXaXRoSHR0cEluZm8odXVpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkIGEgc2hhcmUgcm9vbVxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENlbGx9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0Q2VsbFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldENlbGxXaXRoSHR0cEluZm8odXVpZCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgaXMgc2V0XG4gICAgaWYgKHV1aWQgPT09IHVuZGVmaW5lZCB8fCB1dWlkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIHdoZW4gY2FsbGluZyBnZXRDZWxsXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1V1aWQnOiB1dWlkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RDZWxsMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9zaGFyZS9jZWxsL3tVdWlkfScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkIGEgc2hhcmUgcm9vbVxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENlbGx9XG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0Q2VsbCA9IGZ1bmN0aW9uIGdldENlbGwodXVpZCkge1xuICAgIHJldHVybiB0aGlzLmdldENlbGxXaXRoSHR0cEluZm8odXVpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkIGEgc2hhcmUgbGluayB3aXRoIGFsbCBpbmZvc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua30gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgU2hhcmVTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRTaGFyZUxpbmtXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBnZXRTaGFyZUxpbmtXaXRoSHR0cEluZm8odXVpZCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgaXMgc2V0XG4gICAgaWYgKHV1aWQgPT09IHVuZGVmaW5lZCB8fCB1dWlkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIHdoZW4gY2FsbGluZyBnZXRTaGFyZUxpbmtcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnVXVpZCc6IHV1aWRcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFNoYXJlTGluazJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvc2hhcmUvbGluay97VXVpZH0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCBhIHNoYXJlIGxpbmsgd2l0aCBhbGwgaW5mb3NcbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmt9XG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0U2hhcmVMaW5rID0gZnVuY3Rpb24gZ2V0U2hhcmVMaW5rKHV1aWQpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTaGFyZUxpbmtXaXRoSHR0cEluZm8odXVpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IFNoYXJlZCBSZXNvdXJjZXMgZm9yIGN1cnJlbnQgdXNlciBvciBhbGwgdXNlcnNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RTaGFyZWRSZXNvdXJjZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0U2hhcmVkUmVzb3VyY2VzV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgbGlzdFNoYXJlZFJlc291cmNlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvc2hhcmUvcmVzb3VyY2VzJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IFNoYXJlZCBSZXNvdXJjZXMgZm9yIGN1cnJlbnQgdXNlciBvciBhbGwgdXNlcnNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlfVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RTaGFyZWRSZXNvdXJjZXMgPSBmdW5jdGlvbiBsaXN0U2hhcmVkUmVzb3VyY2VzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0U2hhcmVkUmVzb3VyY2VzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUHV0IG9yIENyZWF0ZSBhIHNoYXJlIHJvb21cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFB1dENlbGxSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Q2VsbH0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgU2hhcmVTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRDZWxsV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcHV0Q2VsbFdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHB1dENlbGxcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RDZWxsMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9zaGFyZS9jZWxsJywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFB1dCBvciBDcmVhdGUgYSBzaGFyZSByb29tXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRDZWxsUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENlbGx9XG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUucHV0Q2VsbCA9IGZ1bmN0aW9uIHB1dENlbGwoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnB1dENlbGxXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQdXQgb3IgQ3JlYXRlIGEgc2hhcmUgcm9vbVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua30gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgU2hhcmVTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRTaGFyZUxpbmtXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBwdXRTaGFyZUxpbmtXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBwdXRTaGFyZUxpbmtcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RTaGFyZUxpbmsyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3NoYXJlL2xpbmsnLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogUHV0IG9yIENyZWF0ZSBhIHNoYXJlIHJvb21cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmt9XG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUucHV0U2hhcmVMaW5rID0gZnVuY3Rpb24gcHV0U2hhcmVMaW5rKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wdXRTaGFyZUxpbmtXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBTaGFyZVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTaGFyZVNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UpO1xuXG4vKipcbiogVGVtcGxhdGVzU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9UZW1wbGF0ZXNTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRlbXBsYXRlc1NlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgVGVtcGxhdGVzU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvVGVtcGxhdGVzU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIFRlbXBsYXRlc1NlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRlbXBsYXRlc1NlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGF2YWlsYWJsZSB0ZW1wbGF0ZXNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVGVtcGxhdGVzU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFRlbXBsYXRlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGxpc3RUZW1wbGF0ZXNXaXRoSHR0cEluZm8oKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy90ZW1wbGF0ZXMnLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBhdmFpbGFibGUgdGVtcGxhdGVzXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2V9XG4gICAqL1xuXG4gIFRlbXBsYXRlc1NlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RUZW1wbGF0ZXMgPSBmdW5jdGlvbiBsaXN0VGVtcGxhdGVzKCkge1xuICAgIHJldHVybiB0aGlzLmxpc3RUZW1wbGF0ZXNXaXRoSHR0cEluZm8oKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIFRlbXBsYXRlc1NlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUZW1wbGF0ZXNTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RSZXZva2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFJldm9rZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RSZXZva2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJldm9rZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFJldm9rZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFJldm9rZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0UmV2b2tlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmV2b2tlUmVzcG9uc2UpO1xuXG4vKipcbiogVG9rZW5TZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL1Rva2VuU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUb2tlblNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgVG9rZW5TZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9Ub2tlblNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBUb2tlblNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRva2VuU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmlzaCB1cCB0aGUgcmVzZXQgcGFzc3dvcmQgcHJvY2VzcyBieSBwcm92aWRpbmcgdGhlIHVuaXF1ZSB0b2tlblxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRva2VuU2VydmljZUFwaS5wcm90b3R5cGUucmVzZXRQYXNzd29yZFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHJlc2V0UGFzc3dvcmRXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyByZXNldFBhc3N3b3JkXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9hdXRoL3Jlc2V0LXBhc3N3b3JkJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGaW5pc2ggdXAgdGhlIHJlc2V0IHBhc3N3b3JkIHByb2Nlc3MgYnkgcHJvdmlkaW5nIHRoZSB1bmlxdWUgdG9rZW5cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlfVxuICAgKi9cblxuICBUb2tlblNlcnZpY2VBcGkucHJvdG90eXBlLnJlc2V0UGFzc3dvcmQgPSBmdW5jdGlvbiByZXNldFBhc3N3b3JkKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNldFBhc3N3b3JkV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGUgYSB1bmlxdWUgdG9rZW4gZm9yIHRoZSByZXNldCBwYXNzd29yZCBwcm9jZXNzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1c2VyTG9naW4gXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVG9rZW5TZXJ2aWNlQXBpLnByb3RvdHlwZS5yZXNldFBhc3N3b3JkVG9rZW5XaXRoSHR0cEluZm8gPSBmdW5jdGlvbiByZXNldFBhc3N3b3JkVG9rZW5XaXRoSHR0cEluZm8odXNlckxvZ2luKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1c2VyTG9naW4nIGlzIHNldFxuICAgIGlmICh1c2VyTG9naW4gPT09IHVuZGVmaW5lZCB8fCB1c2VyTG9naW4gPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXNlckxvZ2luJyB3aGVuIGNhbGxpbmcgcmVzZXRQYXNzd29yZFRva2VuXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1VzZXJMb2dpbic6IHVzZXJMb2dpblxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2F1dGgvcmVzZXQtcGFzc3dvcmQtdG9rZW4ve1VzZXJMb2dpbn0nLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGUgYSB1bmlxdWUgdG9rZW4gZm9yIHRoZSByZXNldCBwYXNzd29yZCBwcm9jZXNzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1c2VyTG9naW4gXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZX1cbiAgICovXG5cbiAgVG9rZW5TZXJ2aWNlQXBpLnByb3RvdHlwZS5yZXNldFBhc3N3b3JkVG9rZW4gPSBmdW5jdGlvbiByZXNldFBhc3N3b3JkVG9rZW4odXNlckxvZ2luKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzZXRQYXNzd29yZFRva2VuV2l0aEh0dHBJbmZvKHVzZXJMb2dpbikudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXZva2UgYSBKV1QgdG9rZW5cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJldm9rZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVG9rZW5TZXJ2aWNlQXBpLnByb3RvdHlwZS5yZXZva2VXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiByZXZva2VXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyByZXZva2VcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RSZXZva2VSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvYXV0aC90b2tlbi9yZXZva2UnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldm9rZSBhIEpXVCB0b2tlblxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmV2b2tlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFJldm9rZVJlc3BvbnNlfVxuICAgKi9cblxuICBUb2tlblNlcnZpY2VBcGkucHJvdG90eXBlLnJldm9rZSA9IGZ1bmN0aW9uIHJldm9rZShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucmV2b2tlV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gVG9rZW5TZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVG9rZW5TZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0QnVsa01ldGFSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdENyZWF0ZU5vZGVzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZU5vZGVzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REZWxldGVOb2Rlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0R2V0QnVsa01ldGFSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdEhlYWROb2RlUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0SGVhZE5vZGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEhlYWROb2RlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0SGVhZE5vZGVSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZSk7XG5cbi8qKlxuKiBUcmVlU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9UcmVlU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBUcmVlU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvVHJlZVNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBUcmVlU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG1ldGEgZm9yIGEgbGlzdCBvZiBub2Rlcywgb3IgYSBmdWxsIGRpcmVjdG9yeSB1c2luZyAvcGF0aC9fKiBzeW50YXhcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5idWxrU3RhdE5vZGVzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gYnVsa1N0YXROb2Rlc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGJ1bGtTdGF0Tm9kZXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy90cmVlL3N0YXRzJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IG1ldGEgZm9yIGEgbGlzdCBvZiBub2Rlcywgb3IgYSBmdWxsIGRpcmVjdG9yeSB1c2luZyAvcGF0aC9fKiBzeW50YXhcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2V9XG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5idWxrU3RhdE5vZGVzID0gZnVuY3Rpb24gYnVsa1N0YXROb2Rlcyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuYnVsa1N0YXROb2Rlc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBkaXJzIG9yIGVtcHR5IGZpbGVzIGluc2lkZSB0aGUgdHJlZVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUuY3JlYXRlTm9kZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBjcmVhdGVOb2Rlc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGNyZWF0ZU5vZGVzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy90cmVlL2NyZWF0ZScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIGRpcnMgb3IgZW1wdHkgZmlsZXMgaW5zaWRlIHRoZSB0cmVlXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVOb2Rlc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb259XG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5jcmVhdGVOb2RlcyA9IGZ1bmN0aW9uIGNyZWF0ZU5vZGVzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVOb2Rlc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHRlbXBvcmFyeSBzZWxlY3Rpb24gZm9yIGZ1cnRoZXIgYWN0aW9uIChuYW1lbHkgZG93bmxvYWQpXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5jcmVhdGVTZWxlY3Rpb25XaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBjcmVhdGVTZWxlY3Rpb25XaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBjcmVhdGVTZWxlY3Rpb25cIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdHJlZS9zZWxlY3Rpb24nLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHRlbXBvcmFyeSBzZWxlY3Rpb24gZm9yIGZ1cnRoZXIgYWN0aW9uIChuYW1lbHkgZG93bmxvYWQpXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2V9XG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5jcmVhdGVTZWxlY3Rpb24gPSBmdW5jdGlvbiBjcmVhdGVTZWxlY3Rpb24oYm9keSkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVNlbGVjdGlvbldpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBub2RlcyBkZWxldGlvblxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVHJlZVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZU5vZGVzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZGVsZXRlTm9kZXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBkZWxldGVOb2Rlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3RyZWUvZGVsZXRlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGUgbm9kZXMgZGVsZXRpb25cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2V9XG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVOb2RlcyA9IGZ1bmN0aW9uIGRlbGV0ZU5vZGVzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVOb2Rlc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBub2RlIG1ldGEgd2l0aG91dCB0aGUgbm9kZSBjb250ZW50IGl0c2VsZlxuICAgKiBAcGFyYW0ge1N0cmluZ30gbm9kZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5oZWFkTm9kZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGhlYWROb2RlV2l0aEh0dHBJbmZvKG5vZGUpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25vZGUnIGlzIHNldFxuICAgIGlmIChub2RlID09PSB1bmRlZmluZWQgfHwgbm9kZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdub2RlJyB3aGVuIGNhbGxpbmcgaGVhZE5vZGVcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTm9kZSc6IG5vZGVcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdEhlYWROb2RlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3RyZWUvc3RhdC97Tm9kZX0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJuIG5vZGUgbWV0YSB3aXRob3V0IHRoZSBub2RlIGNvbnRlbnQgaXRzZWxmXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBub2RlIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0SGVhZE5vZGVSZXNwb25zZX1cbiAgICovXG5cbiAgVHJlZVNlcnZpY2VBcGkucHJvdG90eXBlLmhlYWROb2RlID0gZnVuY3Rpb24gaGVhZE5vZGUobm9kZSkge1xuICAgIHJldHVybiB0aGlzLmhlYWROb2RlV2l0aEh0dHBJbmZvKG5vZGUpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogSGFuZGxlIG5vZGVzIHJlc3RvcmF0aW9uIGZyb20gcmVjeWNsZSBiaW5cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVHJlZVNlcnZpY2VBcGkucHJvdG90eXBlLnJlc3RvcmVOb2Rlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHJlc3RvcmVOb2Rlc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHJlc3RvcmVOb2Rlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy90cmVlL3Jlc3RvcmUnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBub2RlcyByZXN0b3JhdGlvbiBmcm9tIHJlY3ljbGUgYmluXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2V9XG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5yZXN0b3JlTm9kZXMgPSBmdW5jdGlvbiByZXN0b3JlTm9kZXMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnJlc3RvcmVOb2Rlc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIFRyZWVTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZVNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsVXBkYXRlVXBkYXRlUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9VcGRhdGVVcGRhdGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsVXBkYXRlVXBkYXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxVcGRhdGVVcGRhdGVSZXNwb25zZSk7XG5cbi8qKlxuKiBVcGRhdGVTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL1VwZGF0ZVNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVXBkYXRlU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBVcGRhdGVTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9VcGRhdGVTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gVXBkYXRlU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXBkYXRlU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGFuIHVwZGF0ZSB0byBhIGdpdmVuIHZlcnNpb25cbiAgICogQHBhcmFtIHtTdHJpbmd9IHRhcmdldFZlcnNpb24gXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1VwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVwZGF0ZVNlcnZpY2VBcGkucHJvdG90eXBlLmFwcGx5VXBkYXRlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gYXBwbHlVcGRhdGVXaXRoSHR0cEluZm8odGFyZ2V0VmVyc2lvbikge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndGFyZ2V0VmVyc2lvbicgaXMgc2V0XG4gICAgaWYgKHRhcmdldFZlcnNpb24gPT09IHVuZGVmaW5lZCB8fCB0YXJnZXRWZXJzaW9uID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3RhcmdldFZlcnNpb24nIHdoZW4gY2FsbGluZyBhcHBseVVwZGF0ZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdUYXJnZXRWZXJzaW9uJzogdGFyZ2V0VmVyc2lvblxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91cGRhdGUve1RhcmdldFZlcnNpb259JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFwcGx5IGFuIHVwZGF0ZSB0byBhIGdpdmVuIHZlcnNpb25cbiAgICogQHBhcmFtIHtTdHJpbmd9IHRhcmdldFZlcnNpb24gXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1VwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2V9XG4gICAqL1xuXG4gIFVwZGF0ZVNlcnZpY2VBcGkucHJvdG90eXBlLmFwcGx5VXBkYXRlID0gZnVuY3Rpb24gYXBwbHlVcGRhdGUodGFyZ2V0VmVyc2lvbikge1xuICAgIHJldHVybiB0aGlzLmFwcGx5VXBkYXRlV2l0aEh0dHBJbmZvKHRhcmdldFZlcnNpb24pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2sgdGhlIHJlbW90ZSBzZXJ2ZXIgdG8gc2VlIGlmIHRoZXJlIGFyZSBhdmFpbGFibGUgYmluYXJpZXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5jaGFubmVsIENoYW5uZWwgbmFtZS5cbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMucGFja2FnZU5hbWUgTmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgYXBwbGljYXRpb24uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmN1cnJlbnRWZXJzaW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLkdPT1MgQ3VycmVudCBHT09TLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5HT0FSQ0ggQ3VycmVudCBHT0FSQ0guXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLnNlcnZpY2VOYW1lIE5vdCBVc2VkIDogc3BlY2lmaWMgc2VydmljZSB0byBnZXQgdXBkYXRlcyBmb3IuXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBVcGRhdGVTZXJ2aWNlQXBpLnByb3RvdHlwZS51cGRhdGVSZXF1aXJlZFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVwZGF0ZVJlcXVpcmVkV2l0aEh0dHBJbmZvKG9wdHMpIHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnQ2hhbm5lbCc6IG9wdHNbJ2NoYW5uZWwnXSxcbiAgICAgICdQYWNrYWdlTmFtZSc6IG9wdHNbJ3BhY2thZ2VOYW1lJ10sXG4gICAgICAnQ3VycmVudFZlcnNpb24nOiBvcHRzWydjdXJyZW50VmVyc2lvbiddLFxuICAgICAgJ0dPT1MnOiBvcHRzWydHT09TJ10sXG4gICAgICAnR09BUkNIJzogb3B0c1snR09BUkNIJ10sXG4gICAgICAnU2VydmljZU5hbWUnOiBvcHRzWydzZXJ2aWNlTmFtZSddXG4gICAgfTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFVwZGF0ZVVwZGF0ZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91cGRhdGUnLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQ2hlY2sgdGhlIHJlbW90ZSBzZXJ2ZXIgdG8gc2VlIGlmIHRoZXJlIGFyZSBhdmFpbGFibGUgYmluYXJpZXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5jaGFubmVsIENoYW5uZWwgbmFtZS5cbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMucGFja2FnZU5hbWUgTmFtZSBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgYXBwbGljYXRpb24uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmN1cnJlbnRWZXJzaW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLkdPT1MgQ3VycmVudCBHT09TLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5HT0FSQ0ggQ3VycmVudCBHT0FSQ0guXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLnNlcnZpY2VOYW1lIE5vdCBVc2VkIDogc3BlY2lmaWMgc2VydmljZSB0byBnZXQgdXBkYXRlcyBmb3IuXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlfVxuICAgKi9cblxuICBVcGRhdGVTZXJ2aWNlQXBpLnByb3RvdHlwZS51cGRhdGVSZXF1aXJlZCA9IGZ1bmN0aW9uIHVwZGF0ZVJlcXVpcmVkKG9wdHMpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVSZXF1aXJlZFdpdGhIdHRwSW5mbyhvcHRzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIFVwZGF0ZVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVcGRhdGVTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0KTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0VXNlck1ldGFDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFVzZXJNZXRhQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJNZXRhQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uKTtcblxuLyoqXG4qIFVzZXJNZXRhU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9Vc2VyTWV0YVNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVXNlck1ldGFTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFVzZXJNZXRhU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvVXNlck1ldGFTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gVXNlck1ldGFTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBVc2VyTWV0YVNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IFRhZ3MgZm9yIGEgZ2l2ZW4gbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2UgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0YWdzIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlVXNlck1ldGFUYWdzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZGVsZXRlVXNlck1ldGFUYWdzV2l0aEh0dHBJbmZvKG5hbWVzcGFjZSwgdGFncykge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbmFtZXNwYWNlJyBpcyBzZXRcbiAgICBpZiAobmFtZXNwYWNlID09PSB1bmRlZmluZWQgfHwgbmFtZXNwYWNlID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWVzcGFjZScgd2hlbiBjYWxsaW5nIGRlbGV0ZVVzZXJNZXRhVGFnc1wiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndGFncycgaXMgc2V0XG4gICAgaWYgKHRhZ3MgPT09IHVuZGVmaW5lZCB8fCB0YWdzID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3RhZ3MnIHdoZW4gY2FsbGluZyBkZWxldGVVc2VyTWV0YVRhZ3NcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTmFtZXNwYWNlJzogbmFtZXNwYWNlLFxuICAgICAgJ1RhZ3MnOiB0YWdzXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci1tZXRhL3RhZ3Mve05hbWVzcGFjZX0ve1RhZ3N9JywgJ0RFTEVURScsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgVGFncyBmb3IgYSBnaXZlbiBuYW1lc3BhY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IHRhZ3MgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZX1cbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVVc2VyTWV0YVRhZ3MgPSBmdW5jdGlvbiBkZWxldGVVc2VyTWV0YVRhZ3MobmFtZXNwYWNlLCB0YWdzKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlVXNlck1ldGFUYWdzV2l0aEh0dHBJbmZvKG5hbWVzcGFjZSwgdGFncykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGRlZmluZWQgbWV0YSBuYW1lc3BhY2VzXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFVzZXJNZXRhTmFtZXNwYWNlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdFVzZXJNZXRhTmFtZXNwYWNlV2l0aEh0dHBJbmZvKCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci1tZXRhL25hbWVzcGFjZScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGRlZmluZWQgbWV0YSBuYW1lc3BhY2VzXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb259XG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFVzZXJNZXRhTmFtZXNwYWNlID0gZnVuY3Rpb24gbGlzdFVzZXJNZXRhTmFtZXNwYWNlKCkge1xuICAgIHJldHVybiB0aGlzLmxpc3RVc2VyTWV0YU5hbWVzcGFjZVdpdGhIdHRwSW5mbygpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBUYWdzIGZvciBhIGdpdmVuIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBVc2VyTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RVc2VyTWV0YVRhZ3NXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0VXNlck1ldGFUYWdzV2l0aEh0dHBJbmZvKG5hbWVzcGFjZSkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbmFtZXNwYWNlJyBpcyBzZXRcbiAgICBpZiAobmFtZXNwYWNlID09PSB1bmRlZmluZWQgfHwgbmFtZXNwYWNlID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWVzcGFjZScgd2hlbiBjYWxsaW5nIGxpc3RVc2VyTWV0YVRhZ3NcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTmFtZXNwYWNlJzogbmFtZXNwYWNlXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXItbWV0YS90YWdzL3tOYW1lc3BhY2V9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgVGFncyBmb3IgYSBnaXZlbiBuYW1lc3BhY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZX1cbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0VXNlck1ldGFUYWdzID0gZnVuY3Rpb24gbGlzdFVzZXJNZXRhVGFncyhuYW1lc3BhY2UpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0VXNlck1ldGFUYWdzV2l0aEh0dHBJbmZvKG5hbWVzcGFjZSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IFRhZ3MgZm9yIGEgZ2l2ZW4gbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2UgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBVc2VyTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLnB1dFVzZXJNZXRhVGFnV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcHV0VXNlck1ldGFUYWdXaXRoSHR0cEluZm8obmFtZXNwYWNlLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICduYW1lc3BhY2UnIGlzIHNldFxuICAgIGlmIChuYW1lc3BhY2UgPT09IHVuZGVmaW5lZCB8fCBuYW1lc3BhY2UgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbmFtZXNwYWNlJyB3aGVuIGNhbGxpbmcgcHV0VXNlck1ldGFUYWdcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgcHV0VXNlck1ldGFUYWdcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTmFtZXNwYWNlJzogbmFtZXNwYWNlXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91c2VyLW1ldGEvdGFncy97TmFtZXNwYWNlfScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBUYWdzIGZvciBhIGdpdmVuIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZX1cbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRVc2VyTWV0YVRhZyA9IGZ1bmN0aW9uIHB1dFVzZXJNZXRhVGFnKG5hbWVzcGFjZSwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLnB1dFVzZXJNZXRhVGFnV2l0aEh0dHBJbmZvKG5hbWVzcGFjZSwgYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZWFyY2ggYSBsaXN0IG9mIG1ldGEgYnkgbm9kZSBJZCBvciBieSBVc2VyIGlkIGFuZCBieSBuYW1lc3BhY2VcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlck1ldGFDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBVc2VyTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLnNlYXJjaFVzZXJNZXRhV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc2VhcmNoVXNlck1ldGFXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzZWFyY2hVc2VyTWV0YVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFVzZXJNZXRhQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci1tZXRhL3NlYXJjaCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VhcmNoIGEgbGlzdCBvZiBtZXRhIGJ5IG5vZGUgSWQgb3IgYnkgVXNlciBpZCBhbmQgYnkgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFVzZXJNZXRhQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZWFyY2hVc2VyTWV0YSA9IGZ1bmN0aW9uIHNlYXJjaFVzZXJNZXRhKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hVc2VyTWV0YVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZS9kZWxldGUgdXNlciBtZXRhXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS51cGRhdGVVc2VyTWV0YVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVwZGF0ZVVzZXJNZXRhV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgdXBkYXRlVXNlck1ldGFcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXItbWV0YS91cGRhdGUnLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlL2RlbGV0ZSB1c2VyIG1ldGFcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlfVxuICAgKi9cblxuICBVc2VyTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLnVwZGF0ZVVzZXJNZXRhID0gZnVuY3Rpb24gdXBkYXRlVXNlck1ldGEoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZVVzZXJNZXRhV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQWRtaW46IHVwZGF0ZSBuYW1lc3BhY2VzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS51cGRhdGVVc2VyTWV0YU5hbWVzcGFjZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgdXBkYXRlVXNlck1ldGFOYW1lc3BhY2VcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXItbWV0YS9uYW1lc3BhY2UnLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQWRtaW46IHVwZGF0ZSBuYW1lc3BhY2VzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZX1cbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS51cGRhdGVVc2VyTWV0YU5hbWVzcGFjZSA9IGZ1bmN0aW9uIHVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVVc2VyTWV0YU5hbWVzcGFjZVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNwZWNpYWwgQVBJIGZvciBCb29rbWFya3MsIHdpbGwgbG9hZCB1c2VyTWV0YSBhbmQgdGhlIGFzc29jaWF0ZWQgbm9kZXMsIGFuZCByZXR1cm4gYXMgYSBub2RlIGxpc3RcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0QnVsa01ldGFSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS51c2VyQm9va21hcmtzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gdXNlckJvb2ttYXJrc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHVzZXJCb29rbWFya3NcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91c2VyLW1ldGEvYm9va21hcmtzJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTcGVjaWFsIEFQSSBmb3IgQm9va21hcmtzLCB3aWxsIGxvYWQgdXNlck1ldGEgYW5kIHRoZSBhc3NvY2lhdGVkIG5vZGVzLCBhbmQgcmV0dXJuIGFzIGEgbm9kZSBsaXN0XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyQm9va21hcmtzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2V9XG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUudXNlckJvb2ttYXJrcyA9IGZ1bmN0aW9uIHVzZXJCb29rbWFya3MoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnVzZXJCb29rbWFya3NXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBVc2VyTWV0YVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVc2VyTWV0YVNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxJZG1Vc2VyID0gcmVxdWlyZSgnLi4vbW9kZWwvSWRtVXNlcicpO1xuXG52YXIgX21vZGVsSWRtVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVVzZXIpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0U2VhcmNoVXNlclJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2VhcmNoVXNlclJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJzQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RVc2Vyc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RVc2Vyc0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlcnNDb2xsZWN0aW9uKTtcblxuLyoqXG4qIFVzZXJTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL1VzZXJTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFVzZXJTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFVzZXJTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9Vc2VyU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIFVzZXJTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBVc2VyU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIHVzZXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvZ2luIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVVc2VyV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZGVsZXRlVXNlcldpdGhIdHRwSW5mbyhsb2dpbikge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbG9naW4nIGlzIHNldFxuICAgIGlmIChsb2dpbiA9PT0gdW5kZWZpbmVkIHx8IGxvZ2luID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2xvZ2luJyB3aGVuIGNhbGxpbmcgZGVsZXRlVXNlclwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdMb2dpbic6IGxvZ2luXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3REZWxldGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci97TG9naW59JywgJ0RFTEVURScsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIHVzZXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvZ2luIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlUmVzcG9uc2V9XG4gICAqL1xuXG4gIFVzZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVVc2VyID0gZnVuY3Rpb24gZGVsZXRlVXNlcihsb2dpbikge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZVVzZXJXaXRoSHR0cEluZm8obG9naW4pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0IGEgdXNlciBieSBsb2dpblxuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9naW4gXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMudXVpZCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuZ3JvdXBQYXRoIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5wYXNzd29yZCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMub2xkUGFzc3dvcmQgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5pc0dyb3VwIEdyb3VwIHNwZWNpZmljIGRhdGEuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmdyb3VwTGFiZWwgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5wb2xpY2llc0NvbnRleHRFZGl0YWJsZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXNlcn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlclNlcnZpY2VBcGkucHJvdG90eXBlLmdldFVzZXJXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBnZXRVc2VyV2l0aEh0dHBJbmZvKGxvZ2luLCBvcHRzKSB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdsb2dpbicgaXMgc2V0XG4gICAgaWYgKGxvZ2luID09PSB1bmRlZmluZWQgfHwgbG9naW4gPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbG9naW4nIHdoZW4gY2FsbGluZyBnZXRVc2VyXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0xvZ2luJzogbG9naW5cbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHtcbiAgICAgICdVdWlkJzogb3B0c1sndXVpZCddLFxuICAgICAgJ0dyb3VwUGF0aCc6IG9wdHNbJ2dyb3VwUGF0aCddLFxuICAgICAgJ1Bhc3N3b3JkJzogb3B0c1sncGFzc3dvcmQnXSxcbiAgICAgICdPbGRQYXNzd29yZCc6IG9wdHNbJ29sZFBhc3N3b3JkJ10sXG4gICAgICAnSXNHcm91cCc6IG9wdHNbJ2lzR3JvdXAnXSxcbiAgICAgICdHcm91cExhYmVsJzogb3B0c1snZ3JvdXBMYWJlbCddLFxuICAgICAgJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJzogb3B0c1sncG9saWNpZXNDb250ZXh0RWRpdGFibGUnXVxuICAgIH07XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJZG1Vc2VyMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91c2VyL3tMb2dpbn0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0IGEgdXNlciBieSBsb2dpblxuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9naW4gXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMudXVpZCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuZ3JvdXBQYXRoIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5wYXNzd29yZCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMub2xkUGFzc3dvcmQgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5pc0dyb3VwIEdyb3VwIHNwZWNpZmljIGRhdGEuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmdyb3VwTGFiZWwgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5wb2xpY2llc0NvbnRleHRFZGl0YWJsZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXNlcn1cbiAgICovXG5cbiAgVXNlclNlcnZpY2VBcGkucHJvdG90eXBlLmdldFVzZXIgPSBmdW5jdGlvbiBnZXRVc2VyKGxvZ2luLCBvcHRzKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcldpdGhIdHRwSW5mbyhsb2dpbiwgb3B0cykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBKdXN0IHNhdmUgYSB1c2VyIHJvbGVzLCB3aXRob3V0IG90aGVyIGRhdGFzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2dpbiBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtVXNlcn0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXNlcn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlclNlcnZpY2VBcGkucHJvdG90eXBlLnB1dFJvbGVzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcHV0Um9sZXNXaXRoSHR0cEluZm8obG9naW4sIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2xvZ2luJyBpcyBzZXRcbiAgICBpZiAobG9naW4gPT09IHVuZGVmaW5lZCB8fCBsb2dpbiA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdsb2dpbicgd2hlbiBjYWxsaW5nIHB1dFJvbGVzXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHB1dFJvbGVzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0xvZ2luJzogbG9naW5cbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSWRtVXNlcjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci9yb2xlcy97TG9naW59JywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEp1c3Qgc2F2ZSBhIHVzZXIgcm9sZXMsIHdpdGhvdXQgb3RoZXIgZGF0YXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvZ2luIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Vc2VyfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1Vc2VyfVxuICAgKi9cblxuICBVc2VyU2VydmljZUFwaS5wcm90b3R5cGUucHV0Um9sZXMgPSBmdW5jdGlvbiBwdXRSb2xlcyhsb2dpbiwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLnB1dFJvbGVzV2l0aEh0dHBJbmZvKGxvZ2luLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBvciB1cGRhdGUgYSB1c2VyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2dpbiBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtVXNlcn0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXNlcn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlclNlcnZpY2VBcGkucHJvdG90eXBlLnB1dFVzZXJXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBwdXRVc2VyV2l0aEh0dHBJbmZvKGxvZ2luLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdsb2dpbicgaXMgc2V0XG4gICAgaWYgKGxvZ2luID09PSB1bmRlZmluZWQgfHwgbG9naW4gPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbG9naW4nIHdoZW4gY2FsbGluZyBwdXRVc2VyXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHB1dFVzZXJcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTG9naW4nOiBsb2dpblxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJZG1Vc2VyMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91c2VyL3tMb2dpbn0nLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIG9yIHVwZGF0ZSBhIHVzZXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvZ2luIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Vc2VyfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1Vc2VyfVxuICAgKi9cblxuICBVc2VyU2VydmljZUFwaS5wcm90b3R5cGUucHV0VXNlciA9IGZ1bmN0aW9uIHB1dFVzZXIobG9naW4sIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wdXRVc2VyV2l0aEh0dHBJbmZvKGxvZ2luLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QvU2VhcmNoIHVzZXJzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFVzZXJzQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlclNlcnZpY2VBcGkucHJvdG90eXBlLnNlYXJjaFVzZXJzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc2VhcmNoVXNlcnNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzZWFyY2hVc2Vyc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFVzZXJzQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlcicsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdC9TZWFyY2ggdXNlcnNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlcnNDb2xsZWN0aW9ufVxuICAgKi9cblxuICBVc2VyU2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoVXNlcnMgPSBmdW5jdGlvbiBzZWFyY2hVc2Vycyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoVXNlcnNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBVc2VyU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVzZXJTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsSWRtV29ya3NwYWNlID0gcmVxdWlyZSgnLi4vbW9kZWwvSWRtV29ya3NwYWNlJyk7XG5cbnZhciBfbW9kZWxJZG1Xb3Jrc3BhY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Xb3Jrc3BhY2UpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0V29ya3NwYWNlQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0V29ya3NwYWNlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uKTtcblxuLyoqXG4qIFdvcmtzcGFjZVNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvV29ya3NwYWNlU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBXb3Jrc3BhY2VTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFdvcmtzcGFjZVNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL1dvcmtzcGFjZVNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBXb3Jrc3BhY2VTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBXb3Jrc3BhY2VTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFuIGV4aXN0aW5nIHdvcmtzcGFjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gc2x1ZyBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBXb3Jrc3BhY2VTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVXb3Jrc3BhY2VXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBkZWxldGVXb3Jrc3BhY2VXaXRoSHR0cEluZm8oc2x1Zykge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnc2x1ZycgaXMgc2V0XG4gICAgaWYgKHNsdWcgPT09IHVuZGVmaW5lZCB8fCBzbHVnID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3NsdWcnIHdoZW4gY2FsbGluZyBkZWxldGVXb3Jrc3BhY2VcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnU2x1Zyc6IHNsdWdcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy93b3Jrc3BhY2Uve1NsdWd9JywgJ0RFTEVURScsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbiBleGlzdGluZyB3b3Jrc3BhY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IHNsdWcgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVSZXNwb25zZX1cbiAgICovXG5cbiAgV29ya3NwYWNlU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlV29ya3NwYWNlID0gZnVuY3Rpb24gZGVsZXRlV29ya3NwYWNlKHNsdWcpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVXb3Jrc3BhY2VXaXRoSHR0cEluZm8oc2x1ZykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgb3IgdXBkYXRlIGEgd29ya3NwYWNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzbHVnIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2V9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgV29ya3NwYWNlU2VydmljZUFwaS5wcm90b3R5cGUucHV0V29ya3NwYWNlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcHV0V29ya3NwYWNlV2l0aEh0dHBJbmZvKHNsdWcsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3NsdWcnIGlzIHNldFxuICAgIGlmIChzbHVnID09PSB1bmRlZmluZWQgfHwgc2x1ZyA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzbHVnJyB3aGVuIGNhbGxpbmcgcHV0V29ya3NwYWNlXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHB1dFdvcmtzcGFjZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdTbHVnJzogc2x1Z1xuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJZG1Xb3Jrc3BhY2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3dvcmtzcGFjZS97U2x1Z30nLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIG9yIHVwZGF0ZSBhIHdvcmtzcGFjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gc2x1ZyBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2V9XG4gICAqL1xuXG4gIFdvcmtzcGFjZVNlcnZpY2VBcGkucHJvdG90eXBlLnB1dFdvcmtzcGFjZSA9IGZ1bmN0aW9uIHB1dFdvcmtzcGFjZShzbHVnLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucHV0V29ya3NwYWNlV2l0aEh0dHBJbmZvKHNsdWcsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogU2VhcmNoIHdvcmtzcGFjZXMgb24gY2VydGFpbiBrZXlzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0V29ya3NwYWNlQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgV29ya3NwYWNlU2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoV29ya3NwYWNlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHNlYXJjaFdvcmtzcGFjZXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzZWFyY2hXb3Jrc3BhY2VzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0V29ya3NwYWNlQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvd29ya3NwYWNlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZWFyY2ggd29ya3NwYWNlcyBvbiBjZXJ0YWluIGtleXNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RXb3Jrc3BhY2VDb2xsZWN0aW9ufVxuICAgKi9cblxuICBXb3Jrc3BhY2VTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZWFyY2hXb3Jrc3BhY2VzID0gZnVuY3Rpb24gc2VhcmNoV29ya3NwYWNlcyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoV29ya3NwYWNlc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIFdvcmtzcGFjZVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBXb3Jrc3BhY2VTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eU9iamVjdCA9IHJlcXVpcmUoJy4vbW9kZWwvQWN0aXZpdHlPYmplY3QnKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5T2JqZWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQWN0aXZpdHlPYmplY3QpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlPYmplY3RUeXBlID0gcmVxdWlyZSgnLi9tb2RlbC9BY3Rpdml0eU9iamVjdFR5cGUnKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5T2JqZWN0VHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5T2JqZWN0VHlwZSk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eU93bmVyVHlwZSA9IHJlcXVpcmUoJy4vbW9kZWwvQWN0aXZpdHlPd25lclR5cGUnKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5T3duZXJUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQWN0aXZpdHlPd25lclR5cGUpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdHJlYW1Db250ZXh0ID0gcmVxdWlyZSgnLi9tb2RlbC9BY3Rpdml0eVN0cmVhbUNvbnRleHQnKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3RyZWFtQ29udGV4dDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5U3RyZWFtQ29udGV4dCk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eVN1YnNjcmlwdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb24nKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3Vic2NyaXB0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQWN0aXZpdHlTdWJzY3JpcHRpb24pO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcgPSByZXF1aXJlKCcuL21vZGVsL0FjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3Jyk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3KTtcblxudmFyIF9tb2RlbEN0bFBlZXIgPSByZXF1aXJlKCcuL21vZGVsL0N0bFBlZXInKTtcblxudmFyIF9tb2RlbEN0bFBlZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxDdGxQZWVyKTtcblxudmFyIF9tb2RlbEN0bFNlcnZpY2UgPSByZXF1aXJlKCcuL21vZGVsL0N0bFNlcnZpY2UnKTtcblxudmFyIF9tb2RlbEN0bFNlcnZpY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxDdGxTZXJ2aWNlKTtcblxudmFyIF9tb2RlbEN0bFNlcnZpY2VDb21tYW5kID0gcmVxdWlyZSgnLi9tb2RlbC9DdGxTZXJ2aWNlQ29tbWFuZCcpO1xuXG52YXIgX21vZGVsQ3RsU2VydmljZUNvbW1hbmQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxDdGxTZXJ2aWNlQ29tbWFuZCk7XG5cbnZhciBfbW9kZWxDdGxTZXJ2aWNlU3RhdHVzID0gcmVxdWlyZSgnLi9tb2RlbC9DdGxTZXJ2aWNlU3RhdHVzJyk7XG5cbnZhciBfbW9kZWxDdGxTZXJ2aWNlU3RhdHVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQ3RsU2VydmljZVN0YXR1cyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdCcpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZScpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uRXhwb3J0ID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uRXhwb3J0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uRXhwb3J0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkV4cG9ydCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uSW1wb3J0ID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uSW1wb3J0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uSW1wb3J0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkltcG9ydCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uS2V5ID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uS2V5Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uS2V5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbktleSk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uS2V5SW5mbyA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbktleUluZm8nKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25LZXlJbmZvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbktleUluZm8pO1xuXG52YXIgX21vZGVsSWRtQUNMID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1BQ0wnKTtcblxudmFyIF9tb2RlbElkbUFDTDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbUFDTCk7XG5cbnZhciBfbW9kZWxJZG1BQ0xBY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL0lkbUFDTEFjdGlvbicpO1xuXG52YXIgX21vZGVsSWRtQUNMQWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtQUNMQWN0aW9uKTtcblxudmFyIF9tb2RlbElkbUFDTFNpbmdsZVF1ZXJ5ID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1BQ0xTaW5nbGVRdWVyeScpO1xuXG52YXIgX21vZGVsSWRtQUNMU2luZ2xlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1BQ0xTaW5nbGVRdWVyeSk7XG5cbnZhciBfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxJZG1Ob2RlVHlwZSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtTm9kZVR5cGUnKTtcblxudmFyIF9tb2RlbElkbU5vZGVUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtTm9kZVR5cGUpO1xuXG52YXIgX21vZGVsSWRtUG9saWN5ID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Qb2xpY3knKTtcblxudmFyIF9tb2RlbElkbVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVBvbGljeSk7XG5cbnZhciBfbW9kZWxJZG1Qb2xpY3lDb25kaXRpb24gPSByZXF1aXJlKCcuL21vZGVsL0lkbVBvbGljeUNvbmRpdGlvbicpO1xuXG52YXIgX21vZGVsSWRtUG9saWN5Q29uZGl0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtUG9saWN5Q29uZGl0aW9uKTtcblxudmFyIF9tb2RlbElkbVBvbGljeUVmZmVjdCA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtUG9saWN5RWZmZWN0Jyk7XG5cbnZhciBfbW9kZWxJZG1Qb2xpY3lFZmZlY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Qb2xpY3lFZmZlY3QpO1xuXG52YXIgX21vZGVsSWRtUG9saWN5R3JvdXAgPSByZXF1aXJlKCcuL21vZGVsL0lkbVBvbGljeUdyb3VwJyk7XG5cbnZhciBfbW9kZWxJZG1Qb2xpY3lHcm91cDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVBvbGljeUdyb3VwKTtcblxudmFyIF9tb2RlbElkbVBvbGljeVJlc291cmNlR3JvdXAgPSByZXF1aXJlKCcuL21vZGVsL0lkbVBvbGljeVJlc291cmNlR3JvdXAnKTtcblxudmFyIF9tb2RlbElkbVBvbGljeVJlc291cmNlR3JvdXAyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Qb2xpY3lSZXNvdXJjZUdyb3VwKTtcblxudmFyIF9tb2RlbElkbVJvbGUgPSByZXF1aXJlKCcuL21vZGVsL0lkbVJvbGUnKTtcblxudmFyIF9tb2RlbElkbVJvbGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Sb2xlKTtcblxudmFyIF9tb2RlbElkbVJvbGVTaW5nbGVRdWVyeSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtUm9sZVNpbmdsZVF1ZXJ5Jyk7XG5cbnZhciBfbW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkpO1xuXG52YXIgX21vZGVsSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0KTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsSWRtVXNlciA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtVXNlcicpO1xuXG52YXIgX21vZGVsSWRtVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVVzZXIpO1xuXG52YXIgX21vZGVsSWRtVXNlck1ldGEgPSByZXF1aXJlKCcuL21vZGVsL0lkbVVzZXJNZXRhJyk7XG5cbnZhciBfbW9kZWxJZG1Vc2VyTWV0YTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVVzZXJNZXRhKTtcblxudmFyIF9tb2RlbElkbVVzZXJNZXRhTmFtZXNwYWNlID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Vc2VyTWV0YU5hbWVzcGFjZScpO1xuXG52YXIgX21vZGVsSWRtVXNlck1ldGFOYW1lc3BhY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Vc2VyTWV0YU5hbWVzcGFjZSk7XG5cbnZhciBfbW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkgPSByZXF1aXJlKCcuL21vZGVsL0lkbVVzZXJTaW5nbGVRdWVyeScpO1xuXG52YXIgX21vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5KTtcblxudmFyIF9tb2RlbElkbVdvcmtzcGFjZSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtV29ya3NwYWNlJyk7XG5cbnZhciBfbW9kZWxJZG1Xb3Jrc3BhY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Xb3Jrc3BhY2UpO1xuXG52YXIgX21vZGVsSWRtV29ya3NwYWNlU2NvcGUgPSByZXF1aXJlKCcuL21vZGVsL0lkbVdvcmtzcGFjZVNjb3BlJyk7XG5cbnZhciBfbW9kZWxJZG1Xb3Jrc3BhY2VTY29wZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVdvcmtzcGFjZVNjb3BlKTtcblxudmFyIF9tb2RlbElkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5ID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeScpO1xuXG52YXIgX21vZGVsSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeSk7XG5cbnZhciBfbW9kZWxJbnN0YWxsQ2hlY2tSZXN1bHQgPSByZXF1aXJlKCcuL21vZGVsL0luc3RhbGxDaGVja1Jlc3VsdCcpO1xuXG52YXIgX21vZGVsSW5zdGFsbENoZWNrUmVzdWx0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbENoZWNrUmVzdWx0KTtcblxudmFyIF9tb2RlbEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbEluc3RhbGxJbnN0YWxsQ29uZmlnID0gcmVxdWlyZSgnLi9tb2RlbC9JbnN0YWxsSW5zdGFsbENvbmZpZycpO1xuXG52YXIgX21vZGVsSW5zdGFsbEluc3RhbGxDb25maWcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJbnN0YWxsSW5zdGFsbENvbmZpZyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsSW5zdGFsbFJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0luc3RhbGxJbnN0YWxsUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSW5zdGFsbEluc3RhbGxSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbEluc3RhbGxSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEluc3RhbGxJbnN0YWxsUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0luc3RhbGxJbnN0YWxsUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEluc3RhbGxJbnN0YWxsUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJbnN0YWxsSW5zdGFsbFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbEpvYnNBY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL0pvYnNBY3Rpb24nKTtcblxudmFyIF9tb2RlbEpvYnNBY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzQWN0aW9uKTtcblxudmFyIF9tb2RlbEpvYnNBY3Rpb25Mb2cgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNBY3Rpb25Mb2cnKTtcblxudmFyIF9tb2RlbEpvYnNBY3Rpb25Mb2cyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzQWN0aW9uTG9nKTtcblxudmFyIF9tb2RlbEpvYnNBY3Rpb25NZXNzYWdlID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzQWN0aW9uTWVzc2FnZScpO1xuXG52YXIgX21vZGVsSm9ic0FjdGlvbk1lc3NhZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzQWN0aW9uTWVzc2FnZSk7XG5cbnZhciBfbW9kZWxKb2JzQWN0aW9uT3V0cHV0ID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzQWN0aW9uT3V0cHV0Jyk7XG5cbnZhciBfbW9kZWxKb2JzQWN0aW9uT3V0cHV0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0FjdGlvbk91dHB1dCk7XG5cbnZhciBfbW9kZWxKb2JzQ29tbWFuZCA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic0NvbW1hbmQnKTtcblxudmFyIF9tb2RlbEpvYnNDb21tYW5kMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0NvbW1hbmQpO1xuXG52YXIgX21vZGVsSm9ic0N0cmxDb21tYW5kID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzQ3RybENvbW1hbmQnKTtcblxudmFyIF9tb2RlbEpvYnNDdHJsQ29tbWFuZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNDdHJsQ29tbWFuZCk7XG5cbnZhciBfbW9kZWxKb2JzQ3RybENvbW1hbmRSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNEZWxldGVUYXNrc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNEZWxldGVUYXNrc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxKb2JzRGVsZXRlVGFza3NSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbEpvYnNKb2IgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNKb2InKTtcblxudmFyIF9tb2RlbEpvYnNKb2IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzSm9iKTtcblxudmFyIF9tb2RlbEpvYnNMaXN0Sm9ic1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNMaXN0Sm9ic1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbEpvYnNMaXN0Sm9ic1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzTGlzdEpvYnNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEpvYnNOb2Rlc1NlbGVjdG9yID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzTm9kZXNTZWxlY3RvcicpO1xuXG52YXIgX21vZGVsSm9ic05vZGVzU2VsZWN0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzTm9kZXNTZWxlY3Rvcik7XG5cbnZhciBfbW9kZWxKb2JzU2NoZWR1bGUgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNTY2hlZHVsZScpO1xuXG52YXIgX21vZGVsSm9ic1NjaGVkdWxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic1NjaGVkdWxlKTtcblxudmFyIF9tb2RlbEpvYnNTb3VyY2VGaWx0ZXIgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNTb3VyY2VGaWx0ZXInKTtcblxudmFyIF9tb2RlbEpvYnNTb3VyY2VGaWx0ZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzU291cmNlRmlsdGVyKTtcblxudmFyIF9tb2RlbEpvYnNUYXNrID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzVGFzaycpO1xuXG52YXIgX21vZGVsSm9ic1Rhc2syID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzVGFzayk7XG5cbnZhciBfbW9kZWxKb2JzVGFza1N0YXR1cyA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic1Rhc2tTdGF0dXMnKTtcblxudmFyIF9tb2RlbEpvYnNUYXNrU3RhdHVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic1Rhc2tTdGF0dXMpO1xuXG52YXIgX21vZGVsSm9ic1VzZXJzU2VsZWN0b3IgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNVc2Vyc1NlbGVjdG9yJyk7XG5cbnZhciBfbW9kZWxKb2JzVXNlcnNTZWxlY3RvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNVc2Vyc1NlbGVjdG9yKTtcblxudmFyIF9tb2RlbExpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0ID0gcmVxdWlyZSgnLi9tb2RlbC9MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCcpO1xuXG52YXIgX21vZGVsTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxMaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCk7XG5cbnZhciBfbW9kZWxMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUgPSByZXF1aXJlKCcuL21vZGVsL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZScpO1xuXG52YXIgX21vZGVsTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlKTtcblxudmFyIF9tb2RlbExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlID0gcmVxdWlyZSgnLi9tb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZScpO1xuXG52YXIgX21vZGVsTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZSk7XG5cbnZhciBfbW9kZWxMb2dMaXN0TG9nUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvTG9nTGlzdExvZ1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbExvZ0xpc3RMb2dSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsTG9nTGlzdExvZ1JlcXVlc3QpO1xuXG52YXIgX21vZGVsTG9nTG9nTWVzc2FnZSA9IHJlcXVpcmUoJy4vbW9kZWwvTG9nTG9nTWVzc2FnZScpO1xuXG52YXIgX21vZGVsTG9nTG9nTWVzc2FnZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbExvZ0xvZ01lc3NhZ2UpO1xuXG52YXIgX21vZGVsTWFpbGVyTWFpbCA9IHJlcXVpcmUoJy4vbW9kZWwvTWFpbGVyTWFpbCcpO1xuXG52YXIgX21vZGVsTWFpbGVyTWFpbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE1haWxlck1haWwpO1xuXG52YXIgX21vZGVsTWFpbGVyU2VuZE1haWxSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvTWFpbGVyU2VuZE1haWxSZXNwb25zZScpO1xuXG52YXIgX21vZGVsTWFpbGVyU2VuZE1haWxSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE1haWxlclNlbmRNYWlsUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsTWFpbGVyVXNlciA9IHJlcXVpcmUoJy4vbW9kZWwvTWFpbGVyVXNlcicpO1xuXG52YXIgX21vZGVsTWFpbGVyVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE1haWxlclVzZXIpO1xuXG52YXIgX21vZGVsTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlID0gcmVxdWlyZSgnLi9tb2RlbC9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUnKTtcblxudmFyIF9tb2RlbE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZSk7XG5cbnZhciBfbW9kZWxPYmplY3REYXRhU291cmNlID0gcmVxdWlyZSgnLi9tb2RlbC9PYmplY3REYXRhU291cmNlJyk7XG5cbnZhciBfbW9kZWxPYmplY3REYXRhU291cmNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsT2JqZWN0RGF0YVNvdXJjZSk7XG5cbnZhciBfbW9kZWxPYmplY3RFbmNyeXB0aW9uTW9kZSA9IHJlcXVpcmUoJy4vbW9kZWwvT2JqZWN0RW5jcnlwdGlvbk1vZGUnKTtcblxudmFyIF9tb2RlbE9iamVjdEVuY3J5cHRpb25Nb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsT2JqZWN0RW5jcnlwdGlvbk1vZGUpO1xuXG52YXIgX21vZGVsT2JqZWN0U3RvcmFnZVR5cGUgPSByZXF1aXJlKCcuL21vZGVsL09iamVjdFN0b3JhZ2VUeXBlJyk7XG5cbnZhciBfbW9kZWxPYmplY3RTdG9yYWdlVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE9iamVjdFN0b3JhZ2VUeXBlKTtcblxudmFyIF9tb2RlbFBhY2thZ2VQYWNrYWdlU3RhdHVzID0gcmVxdWlyZSgnLi9tb2RlbC9QYWNrYWdlUGFja2FnZVN0YXR1cycpO1xuXG52YXIgX21vZGVsUGFja2FnZVBhY2thZ2VTdGF0dXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxQYWNrYWdlUGFja2FnZVN0YXR1cyk7XG5cbnZhciBfbW9kZWxQcm90b2J1ZkFueSA9IHJlcXVpcmUoJy4vbW9kZWwvUHJvdG9idWZBbnknKTtcblxudmFyIF9tb2RlbFByb3RvYnVmQW55MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUHJvdG9idWZBbnkpO1xuXG52YXIgX21vZGVsUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZScpO1xuXG52YXIgX21vZGVsUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUpO1xuXG52YXIgX21vZGVsUmVzdEFDTENvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RBQ0xDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0QUNMQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RBQ0xDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdCcpO1xuXG52YXIgX21vZGVsUmVzdEJhY2tncm91bmRKb2JSZXN1bHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0QmFja2dyb3VuZEpvYlJlc3VsdCk7XG5cbnZhciBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdENlbGwgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RDZWxsJyk7XG5cbnZhciBfbW9kZWxSZXN0Q2VsbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDZWxsKTtcblxudmFyIF9tb2RlbFJlc3RDZWxsQWNsID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Q2VsbEFjbCcpO1xuXG52YXIgX21vZGVsUmVzdENlbGxBY2wyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q2VsbEFjbCk7XG5cbnZhciBfbW9kZWxSZXN0Q2hhbmdlQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdENoYW5nZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RDaGFuZ2VDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENoYW5nZUNvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdENoYW5nZVJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RDaGFuZ2VSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0Q2hhbmdlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDaGFuZ2VSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RDb25maWd1cmF0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Q29uZmlndXJhdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdENvbmZpZ3VyYXRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q29uZmlndXJhdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENyZWF0ZU5vZGVzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3REYXRhU291cmNlQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVDZWxsUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3REZWxldGVDZWxsUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVDZWxsUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVOb2Rlc1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3REZWxldGVOb2Rlc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVOb2Rlc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3REZWxldGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGlzY292ZXJ5UmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RFcnJvciA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEVycm9yJyk7XG5cbnZhciBfbW9kZWxSZXN0RXJyb3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RXJyb3IpO1xuXG52YXIgX21vZGVsUmVzdEZyb250QmluYXJ5UmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEZyb250QmluYXJ5UmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEZyb250QmluYXJ5UmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdEZyb250QmluYXJ5UmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udEJpbmFyeVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRCaW5hcnlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFBsdWdpbnNSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U3RhdGVSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEZyb250U3RhdGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U3RhdGVSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udFN0YXRlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdEhlYWROb2RlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RIZWFkTm9kZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0SGVhZE5vZGVSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RIZWFkTm9kZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0TWV0YUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RNZXRhQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdE1ldGFDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdE1ldGFDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdE1ldGFkYXRhID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0TWV0YWRhdGEnKTtcblxudmFyIF9tb2RlbFJlc3RNZXRhZGF0YTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RNZXRhZGF0YSk7XG5cbnZhciBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0T3BlbkFwaVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0T3BlbkFwaVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdE9wZW5BcGlSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0UGFnaW5hdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFBhZ2luYXRpb24nKTtcblxudmFyIF9tb2RlbFJlc3RQYWdpbmF0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFBhZ2luYXRpb24pO1xuXG52YXIgX21vZGVsUmVzdFB1dENlbGxSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RQdXRDZWxsUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RQdXRDZWxsUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RSZWxhdGlvblJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UmVsYXRpb25SZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFJlbGF0aW9uUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVsYXRpb25SZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFJlc291cmNlUG9saWN5UXVlcnkgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5Jyk7XG5cbnZhciBfbW9kZWxSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5KTtcblxudmFyIF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RSZXZva2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UmV2b2tlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFJldm9rZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmV2b2tlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0UmV2b2tlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RSZXZva2VSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFJldm9rZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJldm9rZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RSb2xlc0NvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RSb2xlc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RSb2xlc0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Um9sZXNDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hBQ0xSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaEFDTFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2VhcmNoQUNMUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0U2VhcmNoUmVzdWx0cyA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNlYXJjaFJlc3VsdHMnKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hSZXN1bHRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaFJlc3VsdHMpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2VhcmNoUm9sZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0U2VhcmNoVXNlclJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0U2VydmljZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFNlcnZpY2VDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlcnZpY2VDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RTZXR0aW5nc0VudHJ5ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2V0dGluZ3NFbnRyeScpO1xuXG52YXIgX21vZGVsUmVzdFNldHRpbmdzRW50cnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2V0dGluZ3NFbnRyeSk7XG5cbnZhciBfbW9kZWxSZXN0U2V0dGluZ3NFbnRyeU1ldGEgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YScpO1xuXG52YXIgX21vZGVsUmVzdFNldHRpbmdzRW50cnlNZXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNldHRpbmdzRW50cnlNZXRhKTtcblxudmFyIF9tb2RlbFJlc3RTZXR0aW5nc01lbnVSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFNldHRpbmdzU2VjdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNldHRpbmdzU2VjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFNldHRpbmdzU2VjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTZXR0aW5nc1NlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdFNoYXJlTGluayA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNoYXJlTGluaycpO1xuXG52YXIgX21vZGVsUmVzdFNoYXJlTGluazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTaGFyZUxpbmspO1xuXG52YXIgX21vZGVsUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlJyk7XG5cbnZhciBfbW9kZWxSZXN0U2hhcmVMaW5rQWNjZXNzVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlKTtcblxudmFyIF9tb2RlbFJlc3RTaGFyZUxpbmtUYXJnZXRVc2VyID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcicpO1xuXG52YXIgX21vZGVsUmVzdFNoYXJlTGlua1RhcmdldFVzZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcik7XG5cbnZhciBfbW9kZWxSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RUZW1wbGF0ZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFRlbXBsYXRlJyk7XG5cbnZhciBfbW9kZWxSZXN0VGVtcGxhdGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VGVtcGxhdGUpO1xuXG52YXIgX21vZGVsUmVzdFRlbXBsYXRlTm9kZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFRlbXBsYXRlTm9kZScpO1xuXG52YXIgX21vZGVsUmVzdFRlbXBsYXRlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RUZW1wbGF0ZU5vZGUpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYlJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9iUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RVc2VySm9iUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9iUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlckpvYlJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9ic0NvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RVc2VySm9ic0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9ic0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlckpvYnNDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlck1ldGFDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyU3RhdGVSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlclN0YXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlclN0YXRlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJzQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFVzZXJzQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJzQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RVc2Vyc0NvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0V29ya3NwYWNlQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsU2VydmljZU9wZXJhdGlvblR5cGUgPSByZXF1aXJlKCcuL21vZGVsL1NlcnZpY2VPcGVyYXRpb25UeXBlJyk7XG5cbnZhciBfbW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlKTtcblxudmFyIF9tb2RlbFNlcnZpY2VRdWVyeSA9IHJlcXVpcmUoJy4vbW9kZWwvU2VydmljZVF1ZXJ5Jyk7XG5cbnZhciBfbW9kZWxTZXJ2aWNlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxTZXJ2aWNlUXVlcnkpO1xuXG52YXIgX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5ID0gcmVxdWlyZSgnLi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3knKTtcblxudmFyIF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeSk7XG5cbnZhciBfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbicpO1xuXG52YXIgX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uKTtcblxudmFyIF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdCA9IHJlcXVpcmUoJy4vbW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0Jyk7XG5cbnZhciBfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QpO1xuXG52YXIgX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkgPSByZXF1aXJlKCcuL21vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5Jyk7XG5cbnZhciBfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5KTtcblxudmFyIF9tb2RlbFRyZWVDaGFuZ2VMb2cgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVDaGFuZ2VMb2cnKTtcblxudmFyIF9tb2RlbFRyZWVDaGFuZ2VMb2cyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlQ2hhbmdlTG9nKTtcblxudmFyIF9tb2RlbFRyZWVHZW9Qb2ludCA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZUdlb1BvaW50Jyk7XG5cbnZhciBfbW9kZWxUcmVlR2VvUG9pbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlR2VvUG9pbnQpO1xuXG52YXIgX21vZGVsVHJlZUdlb1F1ZXJ5ID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlR2VvUXVlcnknKTtcblxudmFyIF9tb2RlbFRyZWVHZW9RdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVHZW9RdWVyeSk7XG5cbnZhciBfbW9kZWxUcmVlTGlzdE5vZGVzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZUxpc3ROb2Rlc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFRyZWVMaXN0Tm9kZXNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZUxpc3ROb2Rlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsVHJlZU5vZGUgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVOb2RlJyk7XG5cbnZhciBfbW9kZWxUcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVOb2RlKTtcblxudmFyIF9tb2RlbFRyZWVOb2RlQ2hhbmdlRXZlbnQgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVOb2RlQ2hhbmdlRXZlbnQnKTtcblxudmFyIF9tb2RlbFRyZWVOb2RlQ2hhbmdlRXZlbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlTm9kZUNoYW5nZUV2ZW50KTtcblxudmFyIF9tb2RlbFRyZWVOb2RlVHlwZSA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZU5vZGVUeXBlJyk7XG5cbnZhciBfbW9kZWxUcmVlTm9kZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlTm9kZVR5cGUpO1xuXG52YXIgX21vZGVsVHJlZVF1ZXJ5ID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlUXVlcnknKTtcblxudmFyIF9tb2RlbFRyZWVRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVRdWVyeSk7XG5cbnZhciBfbW9kZWxUcmVlUmVhZE5vZGVSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlUmVhZE5vZGVSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxUcmVlUmVhZE5vZGVSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZVJlYWROb2RlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxUcmVlUmVhZE5vZGVSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZVJlYWROb2RlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFRyZWVSZWFkTm9kZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZVJlYWROb2RlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsVHJlZVNlYXJjaFJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVTZWFyY2hSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxUcmVlU2VhcmNoUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVTZWFyY2hSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFRyZWVTeW5jQ2hhbmdlID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlU3luY0NoYW5nZScpO1xuXG52YXIgX21vZGVsVHJlZVN5bmNDaGFuZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlU3luY0NoYW5nZSk7XG5cbnZhciBfbW9kZWxUcmVlU3luY0NoYW5nZU5vZGUgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVTeW5jQ2hhbmdlTm9kZScpO1xuXG52YXIgX21vZGVsVHJlZVN5bmNDaGFuZ2VOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZVN5bmNDaGFuZ2VOb2RlKTtcblxudmFyIF9tb2RlbFRyZWVTeW5jQ2hhbmdlVHlwZSA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZVN5bmNDaGFuZ2VUeXBlJyk7XG5cbnZhciBfbW9kZWxUcmVlU3luY0NoYW5nZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlU3luY0NoYW5nZVR5cGUpO1xuXG52YXIgX21vZGVsVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QnKTtcblxudmFyIF9tb2RlbFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCk7XG5cbnZhciBfbW9kZWxUcmVlVmVyc2lvbmluZ1BvbGljeSA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZVZlcnNpb25pbmdQb2xpY3knKTtcblxudmFyIF9tb2RlbFRyZWVWZXJzaW9uaW5nUG9saWN5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZVZlcnNpb25pbmdQb2xpY3kpO1xuXG52YXIgX21vZGVsVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aCA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aCcpO1xuXG52YXIgX21vZGVsVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgpO1xuXG52YXIgX21vZGVsVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsVXBkYXRlUGFja2FnZSA9IHJlcXVpcmUoJy4vbW9kZWwvVXBkYXRlUGFja2FnZScpO1xuXG52YXIgX21vZGVsVXBkYXRlUGFja2FnZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFVwZGF0ZVBhY2thZ2UpO1xuXG52YXIgX21vZGVsVXBkYXRlVXBkYXRlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxVcGRhdGVVcGRhdGVSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFVwZGF0ZVVwZGF0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcCA9IHJlcXVpcmUoJy4vbW9kZWwvVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wJyk7XG5cbnZhciBfbW9kZWxVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3ApO1xuXG52YXIgX21vZGVsVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCA9IHJlcXVpcmUoJy4vbW9kZWwvVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCcpO1xuXG52YXIgX21vZGVsVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3ApO1xuXG52YXIgX2FwaUFDTFNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9BQ0xTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpQUNMU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlBQ0xTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlBY3Rpdml0eVNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9BY3Rpdml0eVNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlBY3Rpdml0eVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpQWN0aXZpdHlTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlBZG1pblRyZWVTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvQWRtaW5UcmVlU2VydmljZUFwaScpO1xuXG52YXIgX2FwaUFkbWluVHJlZVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpQWRtaW5UcmVlU2VydmljZUFwaSk7XG5cbnZhciBfYXBpQ2hhbmdlU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL0NoYW5nZVNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlDaGFuZ2VTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaUNoYW5nZVNlcnZpY2VBcGkpO1xuXG52YXIgX2FwaUNvbmZpZ1NlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9Db25maWdTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpQ29uZmlnU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlDb25maWdTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlGcm9udGVuZFNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9Gcm9udGVuZFNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlGcm9udGVuZFNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpRnJvbnRlbmRTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlHcmFwaFNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9HcmFwaFNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlHcmFwaFNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpR3JhcGhTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlJbnN0YWxsU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL0luc3RhbGxTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpSW5zdGFsbFNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpSW5zdGFsbFNlcnZpY2VBcGkpO1xuXG52YXIgX2FwaUpvYnNTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvSm9ic1NlcnZpY2VBcGknKTtcblxudmFyIF9hcGlKb2JzU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlKb2JzU2VydmljZUFwaSk7XG5cbnZhciBfYXBpTG9nU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL0xvZ1NlcnZpY2VBcGknKTtcblxudmFyIF9hcGlMb2dTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaUxvZ1NlcnZpY2VBcGkpO1xuXG52YXIgX2FwaU1haWxlclNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9NYWlsZXJTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpTWFpbGVyU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlNYWlsZXJTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlNZXRhU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL01ldGFTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpTWV0YVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpTWV0YVNlcnZpY2VBcGkpO1xuXG52YXIgX2FwaVBvbGljeVNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9Qb2xpY3lTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpUG9saWN5U2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlQb2xpY3lTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlSb2xlU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL1JvbGVTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpUm9sZVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpUm9sZVNlcnZpY2VBcGkpO1xuXG52YXIgX2FwaVNlYXJjaFNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9TZWFyY2hTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpU2VhcmNoU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlTZWFyY2hTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlTaGFyZVNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9TaGFyZVNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlTaGFyZVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpU2hhcmVTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlUZW1wbGF0ZXNTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvVGVtcGxhdGVzU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVRlbXBsYXRlc1NlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpVGVtcGxhdGVzU2VydmljZUFwaSk7XG5cbnZhciBfYXBpVG9rZW5TZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvVG9rZW5TZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpVG9rZW5TZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVRva2VuU2VydmljZUFwaSk7XG5cbnZhciBfYXBpVHJlZVNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9UcmVlU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVRyZWVTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVRyZWVTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlVcGRhdGVTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvVXBkYXRlU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVVwZGF0ZVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpVXBkYXRlU2VydmljZUFwaSk7XG5cbnZhciBfYXBpVXNlck1ldGFTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvVXNlck1ldGFTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpVXNlck1ldGFTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVVzZXJNZXRhU2VydmljZUFwaSk7XG5cbnZhciBfYXBpVXNlclNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9Vc2VyU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVVzZXJTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVVzZXJTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlXb3Jrc3BhY2VTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvV29ya3NwYWNlU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVdvcmtzcGFjZVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpV29ya3NwYWNlU2VydmljZUFwaSk7XG5cbi8qKlxuKiBFUlJPUl9VTktOT1dOLjxicj5cbiogVGhlIDxjb2RlPmluZGV4PC9jb2RlPiBtb2R1bGUgcHJvdmlkZXMgYWNjZXNzIHRvIGNvbnN0cnVjdG9ycyBmb3IgYWxsIHRoZSBjbGFzc2VzIHdoaWNoIGNvbXByaXNlIHRoZSBwdWJsaWMgQVBJLlxuKiA8cD5cbiogQW4gQU1EIChyZWNvbW1lbmRlZCEpIG9yIENvbW1vbkpTIGFwcGxpY2F0aW9uIHdpbGwgZ2VuZXJhbGx5IGRvIHNvbWV0aGluZyBlcXVpdmFsZW50IHRvIHRoZSBmb2xsb3dpbmc6XG4qIDxwcmU+XG4qIHZhciBQeWRpb0NlbGxzUmVzdEFwaSA9IHJlcXVpcmUoJ2luZGV4Jyk7IC8vIFNlZSBub3RlIGJlbG93Ki5cbiogdmFyIHh4eFN2YyA9IG5ldyBQeWRpb0NlbGxzUmVzdEFwaS5YeHhBcGkoKTsgLy8gQWxsb2NhdGUgdGhlIEFQSSBjbGFzcyB3ZSdyZSBnb2luZyB0byB1c2UuXG4qIHZhciB5eXlNb2RlbCA9IG5ldyBQeWRpb0NlbGxzUmVzdEFwaS5ZeXkoKTsgLy8gQ29uc3RydWN0IGEgbW9kZWwgaW5zdGFuY2UuXG4qIHl5eU1vZGVsLnNvbWVQcm9wZXJ0eSA9ICdzb21lVmFsdWUnO1xuKiAuLi5cbiogdmFyIHp6eiA9IHh4eFN2Yy5kb1NvbWV0aGluZyh5eXlNb2RlbCk7IC8vIEludm9rZSB0aGUgc2VydmljZS5cbiogLi4uXG4qIDwvcHJlPlxuKiA8ZW0+Kk5PVEU6IEZvciBhIHRvcC1sZXZlbCBBTUQgc2NyaXB0LCB1c2UgcmVxdWlyZShbJ2luZGV4J10sIGZ1bmN0aW9uKCl7Li4ufSlcbiogYW5kIHB1dCB0aGUgYXBwbGljYXRpb24gbG9naWMgd2l0aGluIHRoZSBjYWxsYmFjayBmdW5jdGlvbi48L2VtPlxuKiA8L3A+XG4qIDxwPlxuKiBBIG5vbi1BTUQgYnJvd3NlciBhcHBsaWNhdGlvbiAoZGlzY291cmFnZWQpIG1pZ2h0IGRvIHNvbWV0aGluZyBsaWtlIHRoaXM6XG4qIDxwcmU+XG4qIHZhciB4eHhTdmMgPSBuZXcgUHlkaW9DZWxsc1Jlc3RBcGkuWHh4QXBpKCk7IC8vIEFsbG9jYXRlIHRoZSBBUEkgY2xhc3Mgd2UncmUgZ29pbmcgdG8gdXNlLlxuKiB2YXIgeXl5ID0gbmV3IFB5ZGlvQ2VsbHNSZXN0QXBpLll5eSgpOyAvLyBDb25zdHJ1Y3QgYSBtb2RlbCBpbnN0YW5jZS5cbiogeXl5TW9kZWwuc29tZVByb3BlcnR5ID0gJ3NvbWVWYWx1ZSc7XG4qIC4uLlxuKiB2YXIgenp6ID0geHh4U3ZjLmRvU29tZXRoaW5nKHl5eU1vZGVsKTsgLy8gSW52b2tlIHRoZSBzZXJ2aWNlLlxuKiAuLi5cbiogPC9wcmU+XG4qIDwvcD5cbiogQG1vZHVsZSBpbmRleFxuKiBAdmVyc2lvbiAxLjBcbiovXG5leHBvcnRzLlxuLyoqXG4gKiBUaGUgQXBpQ2xpZW50IGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6QXBpQ2xpZW50fVxuICovXG5BcGlDbGllbnQgPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgQWN0aXZpdHlPYmplY3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH1cbiAqL1xuQWN0aXZpdHlPYmplY3QgPSBfbW9kZWxBY3Rpdml0eU9iamVjdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEFjdGl2aXR5T2JqZWN0VHlwZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0VHlwZX1cbiAqL1xuQWN0aXZpdHlPYmplY3RUeXBlID0gX21vZGVsQWN0aXZpdHlPYmplY3RUeXBlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgQWN0aXZpdHlPd25lclR5cGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9BY3Rpdml0eU93bmVyVHlwZX1cbiAqL1xuQWN0aXZpdHlPd25lclR5cGUgPSBfbW9kZWxBY3Rpdml0eU93bmVyVHlwZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0fVxuICovXG5BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0ID0gX21vZGVsQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9BY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0fVxuICovXG5BY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0ID0gX21vZGVsQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEFjdGl2aXR5U3RyZWFtQ29udGV4dCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U3RyZWFtQ29udGV4dH1cbiAqL1xuQWN0aXZpdHlTdHJlYW1Db250ZXh0ID0gX21vZGVsQWN0aXZpdHlTdHJlYW1Db250ZXh0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgQWN0aXZpdHlTdWJzY3JpcHRpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9BY3Rpdml0eVN1YnNjcmlwdGlvbn1cbiAqL1xuQWN0aXZpdHlTdWJzY3JpcHRpb24gPSBfbW9kZWxBY3Rpdml0eVN1YnNjcmlwdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXd9XG4gKi9cbkFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3ID0gX21vZGVsQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBDdGxQZWVyIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvQ3RsUGVlcn1cbiAqL1xuQ3RsUGVlciA9IF9tb2RlbEN0bFBlZXIyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBDdGxTZXJ2aWNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvQ3RsU2VydmljZX1cbiAqL1xuQ3RsU2VydmljZSA9IF9tb2RlbEN0bFNlcnZpY2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBDdGxTZXJ2aWNlQ29tbWFuZCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0N0bFNlcnZpY2VDb21tYW5kfVxuICovXG5DdGxTZXJ2aWNlQ29tbWFuZCA9IF9tb2RlbEN0bFNlcnZpY2VDb21tYW5kMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgQ3RsU2VydmljZVN0YXR1cyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0N0bFNlcnZpY2VTdGF0dXN9XG4gKi9cbkN0bFNlcnZpY2VTdGF0dXMgPSBfbW9kZWxDdGxTZXJ2aWNlU3RhdHVzMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3R9XG4gKi9cbkVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZX1cbiAqL1xuRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0fVxuICovXG5FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0ID0gX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2V9XG4gKi9cbkVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlID0gX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdH1cbiAqL1xuRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdCA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlfVxuICovXG5FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZSA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3R9XG4gKi9cbkVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZX1cbiAqL1xuRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdH1cbiAqL1xuRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0ID0gX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2V9XG4gKi9cbkVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkV4cG9ydCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25FeHBvcnR9XG4gKi9cbkVuY3J5cHRpb25FeHBvcnQgPSBfbW9kZWxFbmNyeXB0aW9uRXhwb3J0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkltcG9ydCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25JbXBvcnR9XG4gKi9cbkVuY3J5cHRpb25JbXBvcnQgPSBfbW9kZWxFbmNyeXB0aW9uSW1wb3J0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbktleSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25LZXl9XG4gKi9cbkVuY3J5cHRpb25LZXkgPSBfbW9kZWxFbmNyeXB0aW9uS2V5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbktleUluZm8gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5SW5mb31cbiAqL1xuRW5jcnlwdGlvbktleUluZm8gPSBfbW9kZWxFbmNyeXB0aW9uS2V5SW5mbzJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbUFDTCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbUFDTH1cbiAqL1xuSWRtQUNMID0gX21vZGVsSWRtQUNMMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtQUNMQWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtQUNMQWN0aW9ufVxuICovXG5JZG1BQ0xBY3Rpb24gPSBfbW9kZWxJZG1BQ0xBY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1BQ0xTaW5nbGVRdWVyeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbUFDTFNpbmdsZVF1ZXJ5fVxuICovXG5JZG1BQ0xTaW5nbGVRdWVyeSA9IF9tb2RlbElkbUFDTFNpbmdsZVF1ZXJ5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdH1cbiAqL1xuSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QgPSBfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZX1cbiAqL1xuSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlID0gX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtTm9kZVR5cGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1Ob2RlVHlwZX1cbiAqL1xuSWRtTm9kZVR5cGUgPSBfbW9kZWxJZG1Ob2RlVHlwZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVBvbGljeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeX1cbiAqL1xuSWRtUG9saWN5ID0gX21vZGVsSWRtUG9saWN5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtUG9saWN5Q29uZGl0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtUG9saWN5Q29uZGl0aW9ufVxuICovXG5JZG1Qb2xpY3lDb25kaXRpb24gPSBfbW9kZWxJZG1Qb2xpY3lDb25kaXRpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Qb2xpY3lFZmZlY3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1Qb2xpY3lFZmZlY3R9XG4gKi9cbklkbVBvbGljeUVmZmVjdCA9IF9tb2RlbElkbVBvbGljeUVmZmVjdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVBvbGljeUdyb3VwIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtUG9saWN5R3JvdXB9XG4gKi9cbklkbVBvbGljeUdyb3VwID0gX21vZGVsSWRtUG9saWN5R3JvdXAyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Qb2xpY3lSZXNvdXJjZUdyb3VwIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtUG9saWN5UmVzb3VyY2VHcm91cH1cbiAqL1xuSWRtUG9saWN5UmVzb3VyY2VHcm91cCA9IF9tb2RlbElkbVBvbGljeVJlc291cmNlR3JvdXAyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Sb2xlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtUm9sZX1cbiAqL1xuSWRtUm9sZSA9IF9tb2RlbElkbVJvbGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Sb2xlU2luZ2xlUXVlcnkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1Sb2xlU2luZ2xlUXVlcnl9XG4gKi9cbklkbVJvbGVTaW5nbGVRdWVyeSA9IF9tb2RlbElkbVJvbGVTaW5nbGVRdWVyeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdH1cbiAqL1xuSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0ID0gX21vZGVsSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0fVxuICovXG5JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QgPSBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZX1cbiAqL1xuSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSA9IF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3R9XG4gKi9cbklkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdCA9IF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlfVxuICovXG5JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlID0gX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVVzZXIgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1Vc2VyfVxuICovXG5JZG1Vc2VyID0gX21vZGVsSWRtVXNlcjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVVzZXJNZXRhIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtVXNlck1ldGF9XG4gKi9cbklkbVVzZXJNZXRhID0gX21vZGVsSWRtVXNlck1ldGEyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Vc2VyTWV0YU5hbWVzcGFjZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhTmFtZXNwYWNlfVxuICovXG5JZG1Vc2VyTWV0YU5hbWVzcGFjZSA9IF9tb2RlbElkbVVzZXJNZXRhTmFtZXNwYWNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtVXNlclNpbmdsZVF1ZXJ5IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtVXNlclNpbmdsZVF1ZXJ5fVxuICovXG5JZG1Vc2VyU2luZ2xlUXVlcnkgPSBfbW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Xb3Jrc3BhY2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2V9XG4gKi9cbklkbVdvcmtzcGFjZSA9IF9tb2RlbElkbVdvcmtzcGFjZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVdvcmtzcGFjZVNjb3BlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlU2NvcGV9XG4gKi9cbklkbVdvcmtzcGFjZVNjb3BlID0gX21vZGVsSWRtV29ya3NwYWNlU2NvcGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5fVxuICovXG5JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeSA9IF9tb2RlbElkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSW5zdGFsbENoZWNrUmVzdWx0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSW5zdGFsbENoZWNrUmVzdWx0fVxuICovXG5JbnN0YWxsQ2hlY2tSZXN1bHQgPSBfbW9kZWxJbnN0YWxsQ2hlY2tSZXN1bHQyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2V9XG4gKi9cbkluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSA9IF9tb2RlbEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2V9XG4gKi9cbkluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlID0gX21vZGVsSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJbnN0YWxsSW5zdGFsbENvbmZpZyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsQ29uZmlnfVxuICovXG5JbnN0YWxsSW5zdGFsbENvbmZpZyA9IF9tb2RlbEluc3RhbGxJbnN0YWxsQ29uZmlnMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSW5zdGFsbEluc3RhbGxSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXF1ZXN0fVxuICovXG5JbnN0YWxsSW5zdGFsbFJlcXVlc3QgPSBfbW9kZWxJbnN0YWxsSW5zdGFsbFJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJbnN0YWxsSW5zdGFsbFJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXNwb25zZX1cbiAqL1xuSW5zdGFsbEluc3RhbGxSZXNwb25zZSA9IF9tb2RlbEluc3RhbGxJbnN0YWxsUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0fVxuICovXG5JbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdCA9IF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlfVxuICovXG5JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UgPSBfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzQWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbn1cbiAqL1xuSm9ic0FjdGlvbiA9IF9tb2RlbEpvYnNBY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzQWN0aW9uTG9nIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbkxvZ31cbiAqL1xuSm9ic0FjdGlvbkxvZyA9IF9tb2RlbEpvYnNBY3Rpb25Mb2cyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzQWN0aW9uTWVzc2FnZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25NZXNzYWdlfVxuICovXG5Kb2JzQWN0aW9uTWVzc2FnZSA9IF9tb2RlbEpvYnNBY3Rpb25NZXNzYWdlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic0FjdGlvbk91dHB1dCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25PdXRwdXR9XG4gKi9cbkpvYnNBY3Rpb25PdXRwdXQgPSBfbW9kZWxKb2JzQWN0aW9uT3V0cHV0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic0NvbW1hbmQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzQ29tbWFuZH1cbiAqL1xuSm9ic0NvbW1hbmQgPSBfbW9kZWxKb2JzQ29tbWFuZDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNDdHJsQ29tbWFuZCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNDdHJsQ29tbWFuZH1cbiAqL1xuSm9ic0N0cmxDb21tYW5kID0gX21vZGVsSm9ic0N0cmxDb21tYW5kMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzQ3RybENvbW1hbmRSZXNwb25zZX1cbiAqL1xuSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UgPSBfbW9kZWxKb2JzQ3RybENvbW1hbmRSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNEZWxldGVUYXNrc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0fVxuICovXG5Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0ID0gX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2V9XG4gKi9cbkpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlID0gX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzSm9iIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic0pvYn1cbiAqL1xuSm9ic0pvYiA9IF9tb2RlbEpvYnNKb2IyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzTGlzdEpvYnNSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic0xpc3RKb2JzUmVxdWVzdH1cbiAqL1xuSm9ic0xpc3RKb2JzUmVxdWVzdCA9IF9tb2RlbEpvYnNMaXN0Sm9ic1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzTm9kZXNTZWxlY3RvciBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNOb2Rlc1NlbGVjdG9yfVxuICovXG5Kb2JzTm9kZXNTZWxlY3RvciA9IF9tb2RlbEpvYnNOb2Rlc1NlbGVjdG9yMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic1NjaGVkdWxlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic1NjaGVkdWxlfVxuICovXG5Kb2JzU2NoZWR1bGUgPSBfbW9kZWxKb2JzU2NoZWR1bGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzU291cmNlRmlsdGVyIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic1NvdXJjZUZpbHRlcn1cbiAqL1xuSm9ic1NvdXJjZUZpbHRlciA9IF9tb2RlbEpvYnNTb3VyY2VGaWx0ZXIyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzVGFzayBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNUYXNrfVxuICovXG5Kb2JzVGFzayA9IF9tb2RlbEpvYnNUYXNrMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic1Rhc2tTdGF0dXMgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzVGFza1N0YXR1c31cbiAqL1xuSm9ic1Rhc2tTdGF0dXMgPSBfbW9kZWxKb2JzVGFza1N0YXR1czJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNVc2Vyc1NlbGVjdG9yIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic1VzZXJzU2VsZWN0b3J9XG4gKi9cbkpvYnNVc2Vyc1NlbGVjdG9yID0gX21vZGVsSm9ic1VzZXJzU2VsZWN0b3IyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBMaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0xpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0fVxuICovXG5MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCA9IF9tb2RlbExpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlfVxuICovXG5MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUgPSBfbW9kZWxMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlfVxuICovXG5MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZSA9IF9tb2RlbExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgTG9nTGlzdExvZ1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Mb2dMaXN0TG9nUmVxdWVzdH1cbiAqL1xuTG9nTGlzdExvZ1JlcXVlc3QgPSBfbW9kZWxMb2dMaXN0TG9nUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIExvZ0xvZ01lc3NhZ2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Mb2dMb2dNZXNzYWdlfVxuICovXG5Mb2dMb2dNZXNzYWdlID0gX21vZGVsTG9nTG9nTWVzc2FnZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIE1haWxlck1haWwgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9NYWlsZXJNYWlsfVxuICovXG5NYWlsZXJNYWlsID0gX21vZGVsTWFpbGVyTWFpbDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIE1haWxlclNlbmRNYWlsUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9NYWlsZXJTZW5kTWFpbFJlc3BvbnNlfVxuICovXG5NYWlsZXJTZW5kTWFpbFJlc3BvbnNlID0gX21vZGVsTWFpbGVyU2VuZE1haWxSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIE1haWxlclVzZXIgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9NYWlsZXJVc2VyfVxuICovXG5NYWlsZXJVc2VyID0gX21vZGVsTWFpbGVyVXNlcjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL05vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZX1cbiAqL1xuTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlID0gX21vZGVsTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgT2JqZWN0RGF0YVNvdXJjZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9XG4gKi9cbk9iamVjdERhdGFTb3VyY2UgPSBfbW9kZWxPYmplY3REYXRhU291cmNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgT2JqZWN0RW5jcnlwdGlvbk1vZGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9PYmplY3RFbmNyeXB0aW9uTW9kZX1cbiAqL1xuT2JqZWN0RW5jcnlwdGlvbk1vZGUgPSBfbW9kZWxPYmplY3RFbmNyeXB0aW9uTW9kZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIE9iamVjdFN0b3JhZ2VUeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvT2JqZWN0U3RvcmFnZVR5cGV9XG4gKi9cbk9iamVjdFN0b3JhZ2VUeXBlID0gX21vZGVsT2JqZWN0U3RvcmFnZVR5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBQYWNrYWdlUGFja2FnZVN0YXR1cyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1BhY2thZ2VQYWNrYWdlU3RhdHVzfVxuICovXG5QYWNrYWdlUGFja2FnZVN0YXR1cyA9IF9tb2RlbFBhY2thZ2VQYWNrYWdlU3RhdHVzMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUHJvdG9idWZBbnkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Qcm90b2J1ZkFueX1cbiAqL1xuUHJvdG9idWZBbnkgPSBfbW9kZWxQcm90b2J1ZkFueTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlfVxuICovXG5SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlID0gX21vZGVsUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RBQ0xDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEFDTENvbGxlY3Rpb259XG4gKi9cblJlc3RBQ0xDb2xsZWN0aW9uID0gX21vZGVsUmVzdEFDTENvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0QmFja2dyb3VuZEpvYlJlc3VsdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0fVxuICovXG5SZXN0QmFja2dyb3VuZEpvYlJlc3VsdCA9IF9tb2RlbFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEJ1bGtNZXRhUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0QnVsa01ldGFSZXNwb25zZX1cbiAqL1xuUmVzdEJ1bGtNZXRhUmVzcG9uc2UgPSBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RDZWxsIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdENlbGx9XG4gKi9cblJlc3RDZWxsID0gX21vZGVsUmVzdENlbGwyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0Q2VsbEFjbCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RDZWxsQWNsfVxuICovXG5SZXN0Q2VsbEFjbCA9IF9tb2RlbFJlc3RDZWxsQWNsMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdENoYW5nZUNvbGxlY3Rpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0Q2hhbmdlQ29sbGVjdGlvbn1cbiAqL1xuUmVzdENoYW5nZUNvbGxlY3Rpb24gPSBfbW9kZWxSZXN0Q2hhbmdlQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RDaGFuZ2VSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdENoYW5nZVJlcXVlc3R9XG4gKi9cblJlc3RDaGFuZ2VSZXF1ZXN0ID0gX21vZGVsUmVzdENoYW5nZVJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0Q29uZmlndXJhdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RDb25maWd1cmF0aW9ufVxuICovXG5SZXN0Q29uZmlndXJhdGlvbiA9IF9tb2RlbFJlc3RDb25maWd1cmF0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RDb250cm9sU2VydmljZVJlcXVlc3R9XG4gKi9cblJlc3RDb250cm9sU2VydmljZVJlcXVlc3QgPSBfbW9kZWxSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdENyZWF0ZU5vZGVzUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVOb2Rlc1JlcXVlc3R9XG4gKi9cblJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QgPSBfbW9kZWxSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdH1cbiAqL1xuUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QgPSBfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZX1cbiAqL1xuUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlID0gX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9ufVxuICovXG5SZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24gPSBfbW9kZWxSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZUNlbGxSZXNwb25zZX1cbiAqL1xuUmVzdERlbGV0ZUNlbGxSZXNwb25zZSA9IF9tb2RlbFJlc3REZWxldGVDZWxsUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZX1cbiAqL1xuUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSA9IF9tb2RlbFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVxdWVzdH1cbiAqL1xuUmVzdERlbGV0ZU5vZGVzUmVxdWVzdCA9IF9tb2RlbFJlc3REZWxldGVOb2Rlc1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RGVsZXRlTm9kZXNSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVOb2Rlc1Jlc3BvbnNlfVxuICovXG5SZXN0RGVsZXRlTm9kZXNSZXNwb25zZSA9IF9tb2RlbFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdERlbGV0ZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlfVxuICovXG5SZXN0RGVsZXRlUmVzcG9uc2UgPSBfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2V9XG4gKi9cblJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZSA9IF9tb2RlbFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZX1cbiAqL1xuUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlID0gX21vZGVsUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdERpc2NvdmVyeVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdERpc2NvdmVyeVJlc3BvbnNlfVxuICovXG5SZXN0RGlzY292ZXJ5UmVzcG9uc2UgPSBfbW9kZWxSZXN0RGlzY292ZXJ5UmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RXJyb3IgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RXJyb3J9XG4gKi9cblJlc3RFcnJvciA9IF9tb2RlbFJlc3RFcnJvcjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RGcm9udEJpbmFyeVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0fVxuICovXG5SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0ID0gX21vZGVsUmVzdEZyb250QmluYXJ5UmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVzcG9uc2V9XG4gKi9cblJlc3RGcm9udEJpbmFyeVJlc3BvbnNlID0gX21vZGVsUmVzdEZyb250QmluYXJ5UmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZX1cbiAqL1xuUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSA9IF9tb2RlbFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0fVxuICovXG5SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCA9IF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlfVxuICovXG5SZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UgPSBfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZX1cbiAqL1xuUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZSA9IF9tb2RlbFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2V9XG4gKi9cblJlc3RGcm9udFBsdWdpbnNSZXNwb25zZSA9IF9tb2RlbFJlc3RGcm9udFBsdWdpbnNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlcXVlc3R9XG4gKi9cblJlc3RGcm9udFNlc3Npb25SZXF1ZXN0ID0gX21vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2V9XG4gKi9cblJlc3RGcm9udFNlc3Npb25SZXNwb25zZSA9IF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RGcm9udFN0YXRlUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlfVxuICovXG5SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlID0gX21vZGVsUmVzdEZyb250U3RhdGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0R2V0QnVsa01ldGFSZXF1ZXN0fVxuICovXG5SZXN0R2V0QnVsa01ldGFSZXF1ZXN0ID0gX21vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RIZWFkTm9kZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2V9XG4gKi9cblJlc3RIZWFkTm9kZVJlc3BvbnNlID0gX21vZGVsUmVzdEhlYWROb2RlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0fVxuICovXG5SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCA9IF9tb2RlbFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlfVxuICovXG5SZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UgPSBfbW9kZWxSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3R9XG4gKi9cblJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCA9IF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlfVxuICovXG5SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlID0gX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlfVxuICovXG5SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlID0gX21vZGVsUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlfVxuICovXG5SZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlID0gX21vZGVsUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbn1cbiAqL1xuUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uID0gX21vZGVsUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdE1ldGFDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdE1ldGFDb2xsZWN0aW9ufVxuICovXG5SZXN0TWV0YUNvbGxlY3Rpb24gPSBfbW9kZWxSZXN0TWV0YUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3R9XG4gKi9cblJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdCA9IF9tb2RlbFJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RNZXRhZGF0YSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhZGF0YX1cbiAqL1xuUmVzdE1ldGFkYXRhID0gX21vZGVsUmVzdE1ldGFkYXRhMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdE5vZGVzQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb259XG4gKi9cblJlc3ROb2Rlc0NvbGxlY3Rpb24gPSBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdE9wZW5BcGlSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RPcGVuQXBpUmVzcG9uc2V9XG4gKi9cblJlc3RPcGVuQXBpUmVzcG9uc2UgPSBfbW9kZWxSZXN0T3BlbkFwaVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFBhZ2luYXRpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0UGFnaW5hdGlvbn1cbiAqL1xuUmVzdFBhZ2luYXRpb24gPSBfbW9kZWxSZXN0UGFnaW5hdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RQdXRDZWxsUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRDZWxsUmVxdWVzdH1cbiAqL1xuUmVzdFB1dENlbGxSZXF1ZXN0ID0gX21vZGVsUmVzdFB1dENlbGxSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdH1cbiAqL1xuUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QgPSBfbW9kZWxSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0fVxuICovXG5SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0ID0gX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2V9XG4gKi9cblJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlID0gX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UmVsYXRpb25SZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSZWxhdGlvblJlc3BvbnNlfVxuICovXG5SZXN0UmVsYXRpb25SZXNwb25zZSA9IF9tb2RlbFJlc3RSZWxhdGlvblJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0fVxuICovXG5SZXN0UmVzZXRQYXNzd29yZFJlcXVlc3QgPSBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZX1cbiAqL1xuUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZSA9IF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2V9XG4gKi9cblJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZSA9IF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFJlc291cmNlUG9saWN5UXVlcnl9XG4gKi9cblJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gX21vZGVsUmVzdFJlc291cmNlUG9saWN5UXVlcnkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0fVxuICovXG5SZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCA9IF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlfVxuICovXG5SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UgPSBfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UmV2b2tlUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXF1ZXN0fVxuICovXG5SZXN0UmV2b2tlUmVxdWVzdCA9IF9tb2RlbFJlc3RSZXZva2VSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJldm9rZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFJldm9rZVJlc3BvbnNlfVxuICovXG5SZXN0UmV2b2tlUmVzcG9uc2UgPSBfbW9kZWxSZXN0UmV2b2tlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0Um9sZXNDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFJvbGVzQ29sbGVjdGlvbn1cbiAqL1xuUmVzdFJvbGVzQ29sbGVjdGlvbiA9IF9tb2RlbFJlc3RSb2xlc0NvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2VhcmNoQUNMUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hBQ0xSZXF1ZXN0fVxuICovXG5SZXN0U2VhcmNoQUNMUmVxdWVzdCA9IF9tb2RlbFJlc3RTZWFyY2hBQ0xSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNlYXJjaFJlc3VsdHMgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoUmVzdWx0c31cbiAqL1xuUmVzdFNlYXJjaFJlc3VsdHMgPSBfbW9kZWxSZXN0U2VhcmNoUmVzdWx0czJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTZWFyY2hSb2xlUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hSb2xlUmVxdWVzdH1cbiAqL1xuUmVzdFNlYXJjaFJvbGVSZXF1ZXN0ID0gX21vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNlYXJjaFVzZXJSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0fVxuICovXG5SZXN0U2VhcmNoVXNlclJlcXVlc3QgPSBfbW9kZWxSZXN0U2VhcmNoVXNlclJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0fVxuICovXG5SZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCA9IF9tb2RlbFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNlcnZpY2VDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFNlcnZpY2VDb2xsZWN0aW9ufVxuICovXG5SZXN0U2VydmljZUNvbGxlY3Rpb24gPSBfbW9kZWxSZXN0U2VydmljZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2V0dGluZ3NFbnRyeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5fVxuICovXG5SZXN0U2V0dGluZ3NFbnRyeSA9IF9tb2RlbFJlc3RTZXR0aW5nc0VudHJ5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNldHRpbmdzRW50cnlNZXRhIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzRW50cnlNZXRhfVxuICovXG5SZXN0U2V0dGluZ3NFbnRyeU1ldGEgPSBfbW9kZWxSZXN0U2V0dGluZ3NFbnRyeU1ldGEyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NNZW51UmVzcG9uc2V9XG4gKi9cblJlc3RTZXR0aW5nc01lbnVSZXNwb25zZSA9IF9tb2RlbFJlc3RTZXR0aW5nc01lbnVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTZXR0aW5nc1NlY3Rpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NTZWN0aW9ufVxuICovXG5SZXN0U2V0dGluZ3NTZWN0aW9uID0gX21vZGVsUmVzdFNldHRpbmdzU2VjdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTaGFyZUxpbmsgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rfVxuICovXG5SZXN0U2hhcmVMaW5rID0gX21vZGVsUmVzdFNoYXJlTGluazJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGV9XG4gKi9cblJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlID0gX21vZGVsUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlciBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmtUYXJnZXRVc2VyfVxuICovXG5SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlciA9IF9tb2RlbFJlc3RTaGFyZUxpbmtUYXJnZXRVc2VyMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9ufVxuICovXG5SZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24gPSBfbW9kZWxSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VGVtcGxhdGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGV9XG4gKi9cblJlc3RUZW1wbGF0ZSA9IF9tb2RlbFJlc3RUZW1wbGF0ZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RUZW1wbGF0ZU5vZGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGVOb2RlfVxuICovXG5SZXN0VGVtcGxhdGVOb2RlID0gX21vZGVsUmVzdFRlbXBsYXRlTm9kZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyQm9va21hcmtzUmVxdWVzdH1cbiAqL1xuUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0ID0gX21vZGVsUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFVzZXJKb2JSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXF1ZXN0fVxuICovXG5SZXN0VXNlckpvYlJlcXVlc3QgPSBfbW9kZWxSZXN0VXNlckpvYlJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VXNlckpvYlJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXNwb25zZX1cbiAqL1xuUmVzdFVzZXJKb2JSZXNwb25zZSA9IF9tb2RlbFJlc3RVc2VySm9iUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VXNlckpvYnNDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JzQ29sbGVjdGlvbn1cbiAqL1xuUmVzdFVzZXJKb2JzQ29sbGVjdGlvbiA9IF9tb2RlbFJlc3RVc2VySm9ic0NvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VXNlck1ldGFDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFVzZXJNZXRhQ29sbGVjdGlvbn1cbiAqL1xuUmVzdFVzZXJNZXRhQ29sbGVjdGlvbiA9IF9tb2RlbFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbn1cbiAqL1xuUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbiA9IF9tb2RlbFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VXNlclN0YXRlUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0VXNlclN0YXRlUmVzcG9uc2V9XG4gKi9cblJlc3RVc2VyU3RhdGVSZXNwb25zZSA9IF9tb2RlbFJlc3RVc2VyU3RhdGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RVc2Vyc0NvbGxlY3Rpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0VXNlcnNDb2xsZWN0aW9ufVxuICovXG5SZXN0VXNlcnNDb2xsZWN0aW9uID0gX21vZGVsUmVzdFVzZXJzQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbn1cbiAqL1xuUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uID0gX21vZGVsUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0V29ya3NwYWNlQ29sbGVjdGlvbn1cbiAqL1xuUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24gPSBfbW9kZWxSZXN0V29ya3NwYWNlQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFNlcnZpY2VPcGVyYXRpb25UeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvU2VydmljZU9wZXJhdGlvblR5cGV9XG4gKi9cblNlcnZpY2VPcGVyYXRpb25UeXBlID0gX21vZGVsU2VydmljZU9wZXJhdGlvblR5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBTZXJ2aWNlUXVlcnkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9TZXJ2aWNlUXVlcnl9XG4gKi9cblNlcnZpY2VRdWVyeSA9IF9tb2RlbFNlcnZpY2VRdWVyeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFNlcnZpY2VSZXNvdXJjZVBvbGljeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeX1cbiAqL1xuU2VydmljZVJlc291cmNlUG9saWN5ID0gX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9ufVxuICovXG5TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24gPSBfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3R9XG4gKi9cblNlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdCA9IF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UXVlcnl9XG4gKi9cblNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlQ2hhbmdlTG9nIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZUNoYW5nZUxvZ31cbiAqL1xuVHJlZUNoYW5nZUxvZyA9IF9tb2RlbFRyZWVDaGFuZ2VMb2cyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlR2VvUG9pbnQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlR2VvUG9pbnR9XG4gKi9cblRyZWVHZW9Qb2ludCA9IF9tb2RlbFRyZWVHZW9Qb2ludDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVHZW9RdWVyeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVHZW9RdWVyeX1cbiAqL1xuVHJlZUdlb1F1ZXJ5ID0gX21vZGVsVHJlZUdlb1F1ZXJ5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZUxpc3ROb2Rlc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlTGlzdE5vZGVzUmVxdWVzdH1cbiAqL1xuVHJlZUxpc3ROb2Rlc1JlcXVlc3QgPSBfbW9kZWxUcmVlTGlzdE5vZGVzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVOb2RlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9XG4gKi9cblRyZWVOb2RlID0gX21vZGVsVHJlZU5vZGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlTm9kZUNoYW5nZUV2ZW50IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZU5vZGVDaGFuZ2VFdmVudH1cbiAqL1xuVHJlZU5vZGVDaGFuZ2VFdmVudCA9IF9tb2RlbFRyZWVOb2RlQ2hhbmdlRXZlbnQyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlTm9kZVR5cGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlTm9kZVR5cGV9XG4gKi9cblRyZWVOb2RlVHlwZSA9IF9tb2RlbFRyZWVOb2RlVHlwZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVRdWVyeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVRdWVyeX1cbiAqL1xuVHJlZVF1ZXJ5ID0gX21vZGVsVHJlZVF1ZXJ5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZVJlYWROb2RlUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVSZWFkTm9kZVJlcXVlc3R9XG4gKi9cblRyZWVSZWFkTm9kZVJlcXVlc3QgPSBfbW9kZWxUcmVlUmVhZE5vZGVSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZVJlYWROb2RlUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZX1cbiAqL1xuVHJlZVJlYWROb2RlUmVzcG9uc2UgPSBfbW9kZWxUcmVlUmVhZE5vZGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVTZWFyY2hSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZVNlYXJjaFJlcXVlc3R9XG4gKi9cblRyZWVTZWFyY2hSZXF1ZXN0ID0gX21vZGVsVHJlZVNlYXJjaFJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlU3luY0NoYW5nZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlfVxuICovXG5UcmVlU3luY0NoYW5nZSA9IF9tb2RlbFRyZWVTeW5jQ2hhbmdlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZVN5bmNDaGFuZ2VOb2RlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZVN5bmNDaGFuZ2VOb2RlfVxuICovXG5UcmVlU3luY0NoYW5nZU5vZGUgPSBfbW9kZWxUcmVlU3luY0NoYW5nZU5vZGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlU3luY0NoYW5nZVR5cGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZVR5cGV9XG4gKi9cblRyZWVTeW5jQ2hhbmdlVHlwZSA9IF9tb2RlbFRyZWVTeW5jQ2hhbmdlVHlwZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZH1cbiAqL1xuVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kID0gX21vZGVsVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZVZlcnNpb25pbmdQb2xpY3kgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlVmVyc2lvbmluZ1BvbGljeX1cbiAqL1xuVHJlZVZlcnNpb25pbmdQb2xpY3kgPSBfbW9kZWxUcmVlVmVyc2lvbmluZ1BvbGljeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGggbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRofVxuICovXG5UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoID0gX21vZGVsVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlfVxuICovXG5VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlID0gX21vZGVsVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFVwZGF0ZVBhY2thZ2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9VcGRhdGVQYWNrYWdlfVxuICovXG5VcGRhdGVQYWNrYWdlID0gX21vZGVsVXBkYXRlUGFja2FnZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFVwZGF0ZVVwZGF0ZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVXBkYXRlVXBkYXRlUmVzcG9uc2V9XG4gKi9cblVwZGF0ZVVwZGF0ZVJlc3BvbnNlID0gX21vZGVsVXBkYXRlVXBkYXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3B9XG4gKi9cblVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcCA9IF9tb2RlbFVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3AgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9VcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wfVxuICovXG5VcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wID0gX21vZGVsVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgQUNMU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvQUNMU2VydmljZUFwaX1cbiovXG5BQ0xTZXJ2aWNlQXBpID0gX2FwaUFDTFNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIEFjdGl2aXR5U2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvQWN0aXZpdHlTZXJ2aWNlQXBpfVxuKi9cbkFjdGl2aXR5U2VydmljZUFwaSA9IF9hcGlBY3Rpdml0eVNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIEFkbWluVHJlZVNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL0FkbWluVHJlZVNlcnZpY2VBcGl9XG4qL1xuQWRtaW5UcmVlU2VydmljZUFwaSA9IF9hcGlBZG1pblRyZWVTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBDaGFuZ2VTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9DaGFuZ2VTZXJ2aWNlQXBpfVxuKi9cbkNoYW5nZVNlcnZpY2VBcGkgPSBfYXBpQ2hhbmdlU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgQ29uZmlnU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvQ29uZmlnU2VydmljZUFwaX1cbiovXG5Db25maWdTZXJ2aWNlQXBpID0gX2FwaUNvbmZpZ1NlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIEZyb250ZW5kU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvRnJvbnRlbmRTZXJ2aWNlQXBpfVxuKi9cbkZyb250ZW5kU2VydmljZUFwaSA9IF9hcGlGcm9udGVuZFNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIEdyYXBoU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvR3JhcGhTZXJ2aWNlQXBpfVxuKi9cbkdyYXBoU2VydmljZUFwaSA9IF9hcGlHcmFwaFNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIEluc3RhbGxTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9JbnN0YWxsU2VydmljZUFwaX1cbiovXG5JbnN0YWxsU2VydmljZUFwaSA9IF9hcGlJbnN0YWxsU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgSm9ic1NlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL0pvYnNTZXJ2aWNlQXBpfVxuKi9cbkpvYnNTZXJ2aWNlQXBpID0gX2FwaUpvYnNTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBMb2dTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9Mb2dTZXJ2aWNlQXBpfVxuKi9cbkxvZ1NlcnZpY2VBcGkgPSBfYXBpTG9nU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgTWFpbGVyU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvTWFpbGVyU2VydmljZUFwaX1cbiovXG5NYWlsZXJTZXJ2aWNlQXBpID0gX2FwaU1haWxlclNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIE1ldGFTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9NZXRhU2VydmljZUFwaX1cbiovXG5NZXRhU2VydmljZUFwaSA9IF9hcGlNZXRhU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgUG9saWN5U2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvUG9saWN5U2VydmljZUFwaX1cbiovXG5Qb2xpY3lTZXJ2aWNlQXBpID0gX2FwaVBvbGljeVNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIFJvbGVTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9Sb2xlU2VydmljZUFwaX1cbiovXG5Sb2xlU2VydmljZUFwaSA9IF9hcGlSb2xlU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgU2VhcmNoU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvU2VhcmNoU2VydmljZUFwaX1cbiovXG5TZWFyY2hTZXJ2aWNlQXBpID0gX2FwaVNlYXJjaFNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIFNoYXJlU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvU2hhcmVTZXJ2aWNlQXBpfVxuKi9cblNoYXJlU2VydmljZUFwaSA9IF9hcGlTaGFyZVNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIFRlbXBsYXRlc1NlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1RlbXBsYXRlc1NlcnZpY2VBcGl9XG4qL1xuVGVtcGxhdGVzU2VydmljZUFwaSA9IF9hcGlUZW1wbGF0ZXNTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBUb2tlblNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1Rva2VuU2VydmljZUFwaX1cbiovXG5Ub2tlblNlcnZpY2VBcGkgPSBfYXBpVG9rZW5TZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBUcmVlU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvVHJlZVNlcnZpY2VBcGl9XG4qL1xuVHJlZVNlcnZpY2VBcGkgPSBfYXBpVHJlZVNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIFVwZGF0ZVNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1VwZGF0ZVNlcnZpY2VBcGl9XG4qL1xuVXBkYXRlU2VydmljZUFwaSA9IF9hcGlVcGRhdGVTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBVc2VyTWV0YVNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1VzZXJNZXRhU2VydmljZUFwaX1cbiovXG5Vc2VyTWV0YVNlcnZpY2VBcGkgPSBfYXBpVXNlck1ldGFTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBVc2VyU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvVXNlclNlcnZpY2VBcGl9XG4qL1xuVXNlclNlcnZpY2VBcGkgPSBfYXBpVXNlclNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIFdvcmtzcGFjZVNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1dvcmtzcGFjZVNlcnZpY2VBcGl9XG4qL1xuV29ya3NwYWNlU2VydmljZUFwaSA9IF9hcGlXb3Jrc3BhY2VTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfQWN0aXZpdHlPYmplY3RUeXBlID0gcmVxdWlyZSgnLi9BY3Rpdml0eU9iamVjdFR5cGUnKTtcblxudmFyIF9BY3Rpdml0eU9iamVjdFR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWN0aXZpdHlPYmplY3RUeXBlKTtcblxuLyoqXG4qIFRoZSBBY3Rpdml0eU9iamVjdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvQWN0aXZpdHlPYmplY3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgQWN0aXZpdHlPYmplY3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5BY3Rpdml0eU9iamVjdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gQWN0aXZpdHlPYmplY3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpdml0eU9iamVjdCk7XG5cbiAgICAgICAgdGhpcy5qc29uTGRDb250ZXh0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdW1tYXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmNvbnRleHQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYXR0YWNobWVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVkVG8gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYXVkaWVuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZW5kVGltZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5wdWJsaXNoZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudXBkYXRlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy51cmwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubWVkaWFUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmljb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaW1hZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucHJldmlldyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5sb2NhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5pblJlcGx5VG8gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVwbGllcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50YWcgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZ2VuZXJhdG9yID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnRvID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmJ0byA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jYyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5iY2MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYWN0b3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMub2JqZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMub3JpZ2luID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmluc3RydW1lbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaHJlZiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5yZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaHJlZmxhbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLndpZHRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm9uZU9mID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmFueU9mID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmNsb3NlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdWJqZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnJlbGF0aW9uc2hpcCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5mb3JtZXJUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRlbGV0ZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYWNjdXJhY3kgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYWx0aXR1ZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubGF0aXR1ZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubG9uZ2l0dWRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnJhZGl1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy51bml0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZmlyc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubGFzdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5wYXJ0T2YgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubmV4dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5wcmV2ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkFjdGl2aXR5T2JqZWN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkFjdGl2aXR5T2JqZWN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEFjdGl2aXR5T2JqZWN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdqc29uTGRDb250ZXh0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2pzb25MZENvbnRleHQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydqc29uTGRDb250ZXh0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCd0eXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3R5cGUnXSA9IF9BY3Rpdml0eU9iamVjdFR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWyd0eXBlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2lkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2lkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnaWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ25hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ25hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3N1bW1hcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc3VtbWFyeSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3N1bW1hcnknXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2NvbnRleHQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnY29udGV4dCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydjb250ZXh0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2F0dGFjaG1lbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnYXR0YWNobWVudCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydhdHRhY2htZW50J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2F0dHJpYnV0ZWRUbycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydhdHRyaWJ1dGVkVG8nXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnYXR0cmlidXRlZFRvJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2F1ZGllbmNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2F1ZGllbmNlJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2F1ZGllbmNlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2NvbnRlbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnY29udGVudCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydjb250ZW50J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3N0YXJ0VGltZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydzdGFydFRpbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydzdGFydFRpbWUnXSwgJ0RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdlbmRUaW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2VuZFRpbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydlbmRUaW1lJ10sICdEYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncHVibGlzaGVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3B1Ymxpc2hlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3B1Ymxpc2hlZCddLCAnRGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3VwZGF0ZWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsndXBkYXRlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3VwZGF0ZWQnXSwgJ0RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkdXJhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkdXJhdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2R1cmF0aW9uJ10sICdEYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndXJsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3VybCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWyd1cmwnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbWVkaWFUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ21lZGlhVHlwZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ21lZGlhVHlwZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnaWNvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydpY29uJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2ljb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnaW1hZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnaW1hZ2UnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnaW1hZ2UnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncHJldmlldycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydwcmV2aWV3J10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ3ByZXZpZXcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbG9jYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbG9jYXRpb24nXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnbG9jYXRpb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnaW5SZXBseVRvJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2luUmVwbHlUbyddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydpblJlcGx5VG8nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncmVwbGllcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydyZXBsaWVzJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ3JlcGxpZXMnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndGFnJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3RhZyddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWyd0YWcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZ2VuZXJhdG9yJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2dlbmVyYXRvciddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydnZW5lcmF0b3InXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndG8nKSkge1xuICAgICAgICAgICAgICAgIG9ialsndG8nXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsndG8nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnYnRvJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2J0byddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydidG8nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnY2MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnY2MnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnY2MnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnYmNjJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2JjYyddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydiY2MnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnYWN0b3InKSkge1xuICAgICAgICAgICAgICAgIG9ialsnYWN0b3InXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnYWN0b3InXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnb2JqZWN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ29iamVjdCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydvYmplY3QnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndGFyZ2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3RhcmdldCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWyd0YXJnZXQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncmVzdWx0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3Jlc3VsdCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydyZXN1bHQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnb3JpZ2luJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ29yaWdpbiddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydvcmlnaW4nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnaW5zdHJ1bWVudCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydpbnN0cnVtZW50J10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2luc3RydW1lbnQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnaHJlZicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydocmVmJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnaHJlZiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3JlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3JlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnaHJlZmxhbmcnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnaHJlZmxhbmcnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydocmVmbGFuZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnaGVpZ2h0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2hlaWdodCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2hlaWdodCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnd2lkdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnd2lkdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWyd3aWR0aCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnb25lT2YnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnb25lT2YnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnb25lT2YnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnYW55T2YnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnYW55T2YnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnYW55T2YnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnY2xvc2VkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Nsb3NlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2Nsb3NlZCddLCAnRGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3N1YmplY3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc3ViamVjdCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydzdWJqZWN0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3JlbGF0aW9uc2hpcCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydyZWxhdGlvbnNoaXAnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsncmVsYXRpb25zaGlwJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Zvcm1lclR5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZm9ybWVyVHlwZSddID0gX0FjdGl2aXR5T2JqZWN0VHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2Zvcm1lclR5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZGVsZXRlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkZWxldGVkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGVsZXRlZCddLCAnRGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2FjY3VyYWN5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2FjY3VyYWN5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnYWNjdXJhY3knXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2FsdGl0dWRlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2FsdGl0dWRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnYWx0aXR1ZGUnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2xhdGl0dWRlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2xhdGl0dWRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbGF0aXR1ZGUnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2xvbmdpdHVkZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydsb25naXR1ZGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydsb25naXR1ZGUnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3JhZGl1cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydyYWRpdXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydyYWRpdXMnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3VuaXRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3VuaXRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsndW5pdHMnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2l0ZW1zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2l0ZW1zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnaXRlbXMnXSwgW0FjdGl2aXR5T2JqZWN0XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndG90YWxJdGVtcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd0b3RhbEl0ZW1zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsndG90YWxJdGVtcyddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnY3VycmVudCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydjdXJyZW50J10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2N1cnJlbnQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlyc3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZmlyc3QnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnZmlyc3QnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbGFzdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydsYXN0J10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2xhc3QnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncGFydE9mJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3BhcnRPZiddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydwYXJ0T2YnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbmV4dCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyduZXh0J10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ25leHQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncHJldicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydwcmV2J10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ3ByZXYnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IGpzb25MZENvbnRleHRcbiAgICAqL1xuICAgIHJldHVybiBBY3Rpdml0eU9iamVjdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFjdGl2aXR5T2JqZWN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3RUeXBlfSB0eXBlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gbmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gc3VtbWFyeVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gY29udGV4dFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gYXR0YWNobWVudFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gYXR0cmlidXRlZFRvXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBhdWRpZW5jZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gY29udGVudFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0RhdGV9IHN0YXJ0VGltZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0RhdGV9IGVuZFRpbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtEYXRlfSBwdWJsaXNoZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtEYXRlfSB1cGRhdGVkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7RGF0ZX0gZHVyYXRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHVybFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gbWVkaWFUeXBlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBpY29uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBpbWFnZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gcHJldmlld1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gbG9jYXRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGluUmVwbHlUb1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gcmVwbGllc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gdGFnXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBnZW5lcmF0b3JcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHRvXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBidG9cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGNjXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBiY2NcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGFjdG9yXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBvYmplY3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHRhcmdldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gcmVzdWx0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBvcmlnaW5cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGluc3RydW1lbnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGhyZWZcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IHJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gaHJlZmxhbmdcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IGhlaWdodFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gd2lkdGhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IG9uZU9mXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBhbnlPZlxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0RhdGV9IGNsb3NlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gc3ViamVjdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gcmVsYXRpb25zaGlwXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0VHlwZX0gZm9ybWVyVHlwZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0RhdGV9IGRlbGV0ZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IGFjY3VyYWN5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBhbHRpdHVkZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gbGF0aXR1ZGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IGxvbmdpdHVkZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gcmFkaXVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSB1bml0c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3Q+fSBpdGVtc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gdG90YWxJdGVtc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gY3VycmVudFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gZmlyc3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGxhc3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHBhcnRPZlxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gbmV4dFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gcHJldlxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBBY3Rpdml0eU9iamVjdFR5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIEFjdGl2aXR5T2JqZWN0VHlwZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQWN0aXZpdHlPYmplY3RUeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWN0aXZpdHlPYmplY3RUeXBlKTtcblxuICAgICAgICB0aGlzLkJhc2VPYmplY3QgPSBcIkJhc2VPYmplY3RcIjtcbiAgICAgICAgdGhpcy5BY3Rpdml0eSA9IFwiQWN0aXZpdHlcIjtcbiAgICAgICAgdGhpcy5MaW5rID0gXCJMaW5rXCI7XG4gICAgICAgIHRoaXMuTWVudGlvbiA9IFwiTWVudGlvblwiO1xuICAgICAgICB0aGlzLkNvbGxlY3Rpb24gPSBcIkNvbGxlY3Rpb25cIjtcbiAgICAgICAgdGhpcy5PcmRlcmVkQ29sbGVjdGlvbiA9IFwiT3JkZXJlZENvbGxlY3Rpb25cIjtcbiAgICAgICAgdGhpcy5Db2xsZWN0aW9uUGFnZSA9IFwiQ29sbGVjdGlvblBhZ2VcIjtcbiAgICAgICAgdGhpcy5PcmRlcmVkQ29sbGVjdGlvblBhZ2UgPSBcIk9yZGVyZWRDb2xsZWN0aW9uUGFnZVwiO1xuICAgICAgICB0aGlzLkFwcGxpY2F0aW9uID0gXCJBcHBsaWNhdGlvblwiO1xuICAgICAgICB0aGlzLkdyb3VwID0gXCJHcm91cFwiO1xuICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbiA9IFwiT3JnYW5pemF0aW9uXCI7XG4gICAgICAgIHRoaXMuUGVyc29uID0gXCJQZXJzb25cIjtcbiAgICAgICAgdGhpcy5TZXJ2aWNlID0gXCJTZXJ2aWNlXCI7XG4gICAgICAgIHRoaXMuQXJ0aWNsZSA9IFwiQXJ0aWNsZVwiO1xuICAgICAgICB0aGlzLkF1ZGlvID0gXCJBdWRpb1wiO1xuICAgICAgICB0aGlzLkRvY3VtZW50ID0gXCJEb2N1bWVudFwiO1xuICAgICAgICB0aGlzLkV2ZW50ID0gXCJFdmVudFwiO1xuICAgICAgICB0aGlzLkltYWdlID0gXCJJbWFnZVwiO1xuICAgICAgICB0aGlzLk5vdGUgPSBcIk5vdGVcIjtcbiAgICAgICAgdGhpcy5QYWdlID0gXCJQYWdlXCI7XG4gICAgICAgIHRoaXMuUGxhY2UgPSBcIlBsYWNlXCI7XG4gICAgICAgIHRoaXMuUHJvZmlsZSA9IFwiUHJvZmlsZVwiO1xuICAgICAgICB0aGlzLlJlbGF0aW9uc2hpcCA9IFwiUmVsYXRpb25zaGlwXCI7XG4gICAgICAgIHRoaXMuVG9tYnN0b25lID0gXCJUb21ic3RvbmVcIjtcbiAgICAgICAgdGhpcy5WaWRlbyA9IFwiVmlkZW9cIjtcbiAgICAgICAgdGhpcy5BY2NlcHQgPSBcIkFjY2VwdFwiO1xuICAgICAgICB0aGlzLkFkZCA9IFwiQWRkXCI7XG4gICAgICAgIHRoaXMuQW5ub3VuY2UgPSBcIkFubm91bmNlXCI7XG4gICAgICAgIHRoaXMuQXJyaXZlID0gXCJBcnJpdmVcIjtcbiAgICAgICAgdGhpcy5CbG9jayA9IFwiQmxvY2tcIjtcbiAgICAgICAgdGhpcy5DcmVhdGUgPSBcIkNyZWF0ZVwiO1xuICAgICAgICB0aGlzLkRlbGV0ZSA9IFwiRGVsZXRlXCI7XG4gICAgICAgIHRoaXMuRGlzbGlrZSA9IFwiRGlzbGlrZVwiO1xuICAgICAgICB0aGlzLkZsYWcgPSBcIkZsYWdcIjtcbiAgICAgICAgdGhpcy5Gb2xsb3cgPSBcIkZvbGxvd1wiO1xuICAgICAgICB0aGlzLklnbm9yZSA9IFwiSWdub3JlXCI7XG4gICAgICAgIHRoaXMuSW52aXRlID0gXCJJbnZpdGVcIjtcbiAgICAgICAgdGhpcy5Kb2luID0gXCJKb2luXCI7XG4gICAgICAgIHRoaXMuTGVhdmUgPSBcIkxlYXZlXCI7XG4gICAgICAgIHRoaXMuTGlrZSA9IFwiTGlrZVwiO1xuICAgICAgICB0aGlzLkxpc3RlbiA9IFwiTGlzdGVuXCI7XG4gICAgICAgIHRoaXMuTW92ZSA9IFwiTW92ZVwiO1xuICAgICAgICB0aGlzLk9mZmVyID0gXCJPZmZlclwiO1xuICAgICAgICB0aGlzLlF1ZXN0aW9uID0gXCJRdWVzdGlvblwiO1xuICAgICAgICB0aGlzLlJlamVjdCA9IFwiUmVqZWN0XCI7XG4gICAgICAgIHRoaXMuUmVhZCA9IFwiUmVhZFwiO1xuICAgICAgICB0aGlzLlJlbW92ZSA9IFwiUmVtb3ZlXCI7XG4gICAgICAgIHRoaXMuVGVudGF0aXZlUmVqZWN0ID0gXCJUZW50YXRpdmVSZWplY3RcIjtcbiAgICAgICAgdGhpcy5UZW50YXRpdmVBY2NlcHQgPSBcIlRlbnRhdGl2ZUFjY2VwdFwiO1xuICAgICAgICB0aGlzLlRyYXZlbCA9IFwiVHJhdmVsXCI7XG4gICAgICAgIHRoaXMuVW5kbyA9IFwiVW5kb1wiO1xuICAgICAgICB0aGlzLlVwZGF0ZSA9IFwiVXBkYXRlXCI7XG4gICAgICAgIHRoaXMuVmlldyA9IFwiVmlld1wiO1xuICAgICAgICB0aGlzLldvcmtzcGFjZSA9IFwiV29ya3NwYWNlXCI7XG4gICAgICAgIHRoaXMuRGlnZXN0ID0gXCJEaWdlc3RcIjtcbiAgICAgICAgdGhpcy5Gb2xkZXIgPSBcIkZvbGRlclwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPkFjdGl2aXR5T2JqZWN0VHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0VHlwZX0gVGhlIGVudW0gPGNvZGU+QWN0aXZpdHlPYmplY3RUeXBlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgQWN0aXZpdHlPYmplY3RUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gQWN0aXZpdHlPYmplY3RUeXBlO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBBY3Rpdml0eU9iamVjdFR5cGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkJhc2VPYmplY3RcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBY3Rpdml0eVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkxpbmtcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJNZW50aW9uXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQ29sbGVjdGlvblwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk9yZGVyZWRDb2xsZWN0aW9uXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQ29sbGVjdGlvblBhZ2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJPcmRlcmVkQ29sbGVjdGlvblBhZ2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBcHBsaWNhdGlvblwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkdyb3VwXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiT3JnYW5pemF0aW9uXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUGVyc29uXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiU2VydmljZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkFydGljbGVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBdWRpb1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkRvY3VtZW50XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRXZlbnRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJJbWFnZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk5vdGVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJQYWdlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUGxhY2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJQcm9maWxlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUmVsYXRpb25zaGlwXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVG9tYnN0b25lXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVmlkZW9cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBY2NlcHRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBZGRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBbm5vdW5jZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkFycml2ZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkJsb2NrXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQ3JlYXRlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRGVsZXRlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRGlzbGlrZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkZsYWdcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJGb2xsb3dcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJJZ25vcmVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJJbnZpdGVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJKb2luXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTGVhdmVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJMaWtlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTGlzdGVuXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTW92ZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk9mZmVyXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUXVlc3Rpb25cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJSZWplY3RcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJSZWFkXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUmVtb3ZlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVGVudGF0aXZlUmVqZWN0XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVGVudGF0aXZlQWNjZXB0XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVHJhdmVsXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVW5kb1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlVwZGF0ZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlZpZXdcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJXb3Jrc3BhY2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJEaWdlc3RcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJGb2xkZXJcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBBY3Rpdml0eU93bmVyVHlwZS5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgQWN0aXZpdHlPd25lclR5cGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFjdGl2aXR5T3duZXJUeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWN0aXZpdHlPd25lclR5cGUpO1xuXG4gICAgICAgIHRoaXMuTk9ERSA9IFwiTk9ERVwiO1xuICAgICAgICB0aGlzLlVTRVIgPSBcIlVTRVJcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5BY3Rpdml0eU93bmVyVHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T3duZXJUeXBlfSBUaGUgZW51bSA8Y29kZT5BY3Rpdml0eU93bmVyVHlwZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIEFjdGl2aXR5T3duZXJUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gQWN0aXZpdHlPd25lclR5cGU7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEFjdGl2aXR5T3duZXJUeXBlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJOT0RFXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVVNFUlwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfQWN0aXZpdHlPd25lclR5cGUgPSByZXF1aXJlKCcuL0FjdGl2aXR5T3duZXJUeXBlJyk7XG5cbnZhciBfQWN0aXZpdHlPd25lclR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWN0aXZpdHlPd25lclR5cGUpO1xuXG4vKipcbiogVGhlIEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0FjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuVXNlcklkcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PYmplY3RUeXBlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PYmplY3RJZHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+QWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJJZHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlcklkcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJJZHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0VHlwZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2JqZWN0VHlwZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPYmplY3RUeXBlcyddLCBbX0FjdGl2aXR5T3duZXJUeXBlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0SWRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09iamVjdElkcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09iamVjdElkcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBVc2VySWRzXG4gICAgKi9cbiAgICByZXR1cm4gQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvQWN0aXZpdHlPd25lclR5cGU+fSBPYmplY3RUeXBlc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBPYmplY3RJZHNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9BY3Rpdml0eVN0cmVhbUNvbnRleHQgPSByZXF1aXJlKCcuL0FjdGl2aXR5U3RyZWFtQ29udGV4dCcpO1xuXG52YXIgX0FjdGl2aXR5U3RyZWFtQ29udGV4dDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BY3Rpdml0eVN0cmVhbUNvbnRleHQpO1xuXG52YXIgX0FjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3ID0gcmVxdWlyZSgnLi9BY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldycpO1xuXG52YXIgX0FjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3KTtcblxuLyoqXG4qIFRoZSBBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9BY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5BY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLkNvbnRleHQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29udGV4dERhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RyZWFtRmlsdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkJveE5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVW5yZWFkQ291bnRPbmx5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Bc0RpZ2VzdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2ludE9mVmlldyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYW5ndWFnZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5BY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9BY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5BY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29udGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb250ZXh0J10gPSBfQWN0aXZpdHlTdHJlYW1Db250ZXh0MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnQ29udGV4dCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb250ZXh0RGF0YScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb250ZXh0RGF0YSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvbnRleHREYXRhJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdHJlYW1GaWx0ZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RyZWFtRmlsdGVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3RyZWFtRmlsdGVyJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCb3hOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0JveE5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCb3hOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVbnJlYWRDb3VudE9ubHknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVW5yZWFkQ291bnRPbmx5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVW5yZWFkQ291bnRPbmx5J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09mZnNldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09mZnNldCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW1pdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXNEaWdlc3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQXNEaWdlc3QnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBc0RpZ2VzdCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvaW50T2ZWaWV3JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvaW50T2ZWaWV3J10gPSBfQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydQb2ludE9mVmlldyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYW5ndWFnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYW5ndWFnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhbmd1YWdlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eVN0cmVhbUNvbnRleHR9IENvbnRleHRcbiAgICAqL1xuICAgIHJldHVybiBBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBDb250ZXh0RGF0YVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU3RyZWFtRmlsdGVyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBCb3hOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gVW5yZWFkQ291bnRPbmx5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExpbWl0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQXNEaWdlc3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXd9IFBvaW50T2ZWaWV3XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYW5ndWFnZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBBY3Rpdml0eVN0cmVhbUNvbnRleHQuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIEFjdGl2aXR5U3RyZWFtQ29udGV4dCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQWN0aXZpdHlTdHJlYW1Db250ZXh0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWN0aXZpdHlTdHJlYW1Db250ZXh0KTtcblxuICAgICAgICB0aGlzLk1ZRkVFRCA9IFwiTVlGRUVEXCI7XG4gICAgICAgIHRoaXMuVVNFUl9JRCA9IFwiVVNFUl9JRFwiO1xuICAgICAgICB0aGlzLk5PREVfSUQgPSBcIk5PREVfSURcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5BY3Rpdml0eVN0cmVhbUNvbnRleHQ8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9BY3Rpdml0eVN0cmVhbUNvbnRleHR9IFRoZSBlbnVtIDxjb2RlPkFjdGl2aXR5U3RyZWFtQ29udGV4dDwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIEFjdGl2aXR5U3RyZWFtQ29udGV4dC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEFjdGl2aXR5U3RyZWFtQ29udGV4dDtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gQWN0aXZpdHlTdHJlYW1Db250ZXh0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJNWUZFRURcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJVU0VSX0lEXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTk9ERV9JRFwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfQWN0aXZpdHlPd25lclR5cGUgPSByZXF1aXJlKCcuL0FjdGl2aXR5T3duZXJUeXBlJyk7XG5cbnZhciBfQWN0aXZpdHlPd25lclR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWN0aXZpdHlPd25lclR5cGUpO1xuXG4vKipcbiogVGhlIEFjdGl2aXR5U3Vic2NyaXB0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9BY3Rpdml0eVN1YnNjcmlwdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBBY3Rpdml0eVN1YnNjcmlwdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkFjdGl2aXR5U3Vic2NyaXB0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBBY3Rpdml0eVN1YnNjcmlwdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFjdGl2aXR5U3Vic2NyaXB0aW9uKTtcblxuICAgICAgICB0aGlzLlVzZXJJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PYmplY3RUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9iamVjdElkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkV2ZW50cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5BY3Rpdml0eVN1YnNjcmlwdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9BY3Rpdml0eVN1YnNjcmlwdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5BY3Rpdml0eVN1YnNjcmlwdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEFjdGl2aXR5U3Vic2NyaXB0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBBY3Rpdml0eVN1YnNjcmlwdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlcklkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0VHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPYmplY3RUeXBlJ10gPSBfQWN0aXZpdHlPd25lclR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydPYmplY3RUeXBlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09iamVjdElkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09iamVjdElkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2JqZWN0SWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0V2ZW50cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFdmVudHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFdmVudHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFVzZXJJZFxuICAgICovXG4gICAgcmV0dXJuIEFjdGl2aXR5U3Vic2NyaXB0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQWN0aXZpdHlTdWJzY3JpcHRpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU93bmVyVHlwZX0gT2JqZWN0VHlwZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT2JqZWN0SWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gRXZlbnRzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIEFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3LlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBBY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldyk7XG5cbiAgICAgICAgdGhpcy5HRU5FUklDID0gXCJHRU5FUklDXCI7XG4gICAgICAgIHRoaXMuQUNUT1IgPSBcIkFDVE9SXCI7XG4gICAgICAgIHRoaXMuU1VCSkVDVCA9IFwiU1VCSkVDVFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPkFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3PC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXd9IFRoZSBlbnVtIDxjb2RlPkFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3PC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBBY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldztcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXc7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkdFTkVSSUNcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBQ1RPUlwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlNVQkpFQ1RcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEN0bFBlZXIgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0N0bFBlZXJcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgQ3RsUGVlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkN0bFBlZXI8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9DdGxQZWVyXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gQ3RsUGVlcigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEN0bFBlZXIpO1xuXG4gICAgICAgIHRoaXMuSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWRkcmVzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb3J0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1ldGFkYXRhID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkN0bFBlZXI8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0N0bFBlZXJ9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9DdGxQZWVyfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkN0bFBlZXI8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBDdGxQZWVyLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBDdGxQZWVyKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBZGRyZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FkZHJlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBZGRyZXNzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb3J0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvcnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb3J0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXRhZGF0YScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXRhZGF0YSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01ldGFkYXRhJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBJZFxuICAgICovXG4gICAgcmV0dXJuIEN0bFBlZXI7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDdGxQZWVyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEFkZHJlc3NcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFBvcnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gTWV0YWRhdGFcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9DdGxQZWVyID0gcmVxdWlyZSgnLi9DdGxQZWVyJyk7XG5cbnZhciBfQ3RsUGVlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9DdGxQZWVyKTtcblxudmFyIF9DdGxTZXJ2aWNlU3RhdHVzID0gcmVxdWlyZSgnLi9DdGxTZXJ2aWNlU3RhdHVzJyk7XG5cbnZhciBfQ3RsU2VydmljZVN0YXR1czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9DdGxTZXJ2aWNlU3RhdHVzKTtcblxuLyoqXG4qIFRoZSBDdGxTZXJ2aWNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9DdGxTZXJ2aWNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEN0bFNlcnZpY2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5DdGxTZXJ2aWNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvQ3RsU2VydmljZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEN0bFNlcnZpY2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDdGxTZXJ2aWNlKTtcblxuICAgICAgICB0aGlzLk5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVmVyc2lvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UYWcgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29udHJvbGxhYmxlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SdW5uaW5nUGVlcnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q3RsU2VydmljZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvQ3RsU2VydmljZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0N0bFNlcnZpY2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+Q3RsU2VydmljZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEN0bFNlcnZpY2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEN0bFNlcnZpY2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1ZlcnNpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVmVyc2lvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1ZlcnNpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rlc2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Rlc2NyaXB0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGVzY3JpcHRpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RhZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUYWcnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUYWcnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbnRyb2xsYWJsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb250cm9sbGFibGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb250cm9sbGFibGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdGF0dXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RhdHVzJ10gPSBfQ3RsU2VydmljZVN0YXR1czJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1N0YXR1cyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSdW5uaW5nUGVlcnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUnVubmluZ1BlZXJzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUnVubmluZ1BlZXJzJ10sIFtfQ3RsUGVlcjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBOYW1lXG4gICAgKi9cbiAgICByZXR1cm4gQ3RsU2VydmljZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEN0bFNlcnZpY2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVmVyc2lvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFRhZ1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IENvbnRyb2xsYWJsZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9DdGxTZXJ2aWNlU3RhdHVzfSBTdGF0dXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0N0bFBlZXI+fSBSdW5uaW5nUGVlcnNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgQ3RsU2VydmljZUNvbW1hbmQuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIEN0bFNlcnZpY2VDb21tYW5kID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDdGxTZXJ2aWNlQ29tbWFuZCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEN0bFNlcnZpY2VDb21tYW5kKTtcblxuICAgICAgICB0aGlzLlNUQVJUID0gXCJTVEFSVFwiO1xuICAgICAgICB0aGlzLlNUT1AgPSBcIlNUT1BcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5DdGxTZXJ2aWNlQ29tbWFuZDwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0N0bFNlcnZpY2VDb21tYW5kfSBUaGUgZW51bSA8Y29kZT5DdGxTZXJ2aWNlQ29tbWFuZDwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIEN0bFNlcnZpY2VDb21tYW5kLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gQ3RsU2VydmljZUNvbW1hbmQ7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEN0bFNlcnZpY2VDb21tYW5kO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJTVEFSVFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlNUT1BcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBDdGxTZXJ2aWNlU3RhdHVzLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBDdGxTZXJ2aWNlU3RhdHVzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDdGxTZXJ2aWNlU3RhdHVzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ3RsU2VydmljZVN0YXR1cyk7XG5cbiAgICAgICAgdGhpcy5BTlkgPSBcIkFOWVwiO1xuICAgICAgICB0aGlzLlNUT1BQRUQgPSBcIlNUT1BQRURcIjtcbiAgICAgICAgdGhpcy5TVEFSVElORyA9IFwiU1RBUlRJTkdcIjtcbiAgICAgICAgdGhpcy5TVE9QUElORyA9IFwiU1RPUFBJTkdcIjtcbiAgICAgICAgdGhpcy5TVEFSVEVEID0gXCJTVEFSVEVEXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+Q3RsU2VydmljZVN0YXR1czwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0N0bFNlcnZpY2VTdGF0dXN9IFRoZSBlbnVtIDxjb2RlPkN0bFNlcnZpY2VTdGF0dXM8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBDdGxTZXJ2aWNlU3RhdHVzLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gQ3RsU2VydmljZVN0YXR1cztcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gQ3RsU2VydmljZVN0YXR1cztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiQU5ZXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiU1RPUFBFRFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlNUQVJUSU5HXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiU1RPUFBJTkdcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJTVEFSVEVEXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLktleUlEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdLZXlJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydLZXlJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0tleUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gS2V5SURcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+RW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLktleUlEID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdLZXlJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydLZXlJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0tleUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gS2V5SURcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuS2V5SUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RyUGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+RW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0tleUlEJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0tleUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnS2V5SUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N0clBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N0clBhc3N3b3JkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3RyUGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBLZXlJRFxuICAgICovXG4gICAgcmV0dXJuIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFN0clBhc3N3b3JkXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfRW5jcnlwdGlvbktleSA9IHJlcXVpcmUoJy4vRW5jcnlwdGlvbktleScpO1xuXG52YXIgX0VuY3J5cHRpb25LZXkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRW5jcnlwdGlvbktleSk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuS2V5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdLZXknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnS2V5J10gPSBfRW5jcnlwdGlvbktleTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0tleSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5fSBLZXlcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9FbmNyeXB0aW9uS2V5ID0gcmVxdWlyZSgnLi9FbmNyeXB0aW9uS2V5Jyk7XG5cbnZhciBfRW5jcnlwdGlvbktleTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9FbmNyeXB0aW9uS2V5KTtcblxuLyoqXG4qIFRoZSBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLktleSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdHJQYXNzd29yZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PdmVycmlkZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnS2V5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0tleSddID0gX0VuY3J5cHRpb25LZXkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydLZXknXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RyUGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RyUGFzc3dvcmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdHJQYXNzd29yZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3ZlcnJpZGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3ZlcnJpZGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPdmVycmlkZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25LZXl9IEtleVxuICAgICovXG4gICAgcmV0dXJuIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFN0clBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gT3ZlcnJpZGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0VuY3J5cHRpb25LZXkgPSByZXF1aXJlKCcuL0VuY3J5cHRpb25LZXknKTtcblxudmFyIF9FbmNyeXB0aW9uS2V5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0VuY3J5cHRpb25LZXkpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuS2V5cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnS2V5cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydLZXlzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnS2V5cyddLCBbX0VuY3J5cHRpb25LZXkyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbktleT59IEtleXNcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkV4cG9ydCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvRW5jcnlwdGlvbkV4cG9ydFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uRXhwb3J0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkV4cG9ydDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25FeHBvcnRcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uRXhwb3J0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkV4cG9ydCk7XG5cbiAgICAgICAgdGhpcy5CeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EYXRlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25FeHBvcnQ8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25FeHBvcnR9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uRXhwb3J0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25FeHBvcnQ8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBFbmNyeXB0aW9uRXhwb3J0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uRXhwb3J0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCeSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0J5J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEYXRlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0RhdGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEYXRlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gQnlcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uRXhwb3J0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkV4cG9ydDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBEYXRlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkltcG9ydCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvRW5jcnlwdGlvbkltcG9ydFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uSW1wb3J0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkltcG9ydDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25JbXBvcnRcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uSW1wb3J0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkltcG9ydCk7XG5cbiAgICAgICAgdGhpcy5CeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EYXRlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25JbXBvcnQ8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25JbXBvcnR9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uSW1wb3J0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25JbXBvcnQ8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBFbmNyeXB0aW9uSW1wb3J0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uSW1wb3J0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCeSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0J5J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEYXRlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0RhdGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEYXRlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gQnlcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uSW1wb3J0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkltcG9ydDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBEYXRlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfRW5jcnlwdGlvbktleUluZm8gPSByZXF1aXJlKCcuL0VuY3J5cHRpb25LZXlJbmZvJyk7XG5cbnZhciBfRW5jcnlwdGlvbktleUluZm8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRW5jcnlwdGlvbktleUluZm8pO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25LZXkgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25LZXlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRW5jcnlwdGlvbktleSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25LZXk8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gRW5jcnlwdGlvbktleSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25LZXkpO1xuXG4gICAgICAgIHRoaXMuT3duZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29udGVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DcmVhdGlvbkRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSW5mbyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uS2V5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbktleX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uS2V5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbktleS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbktleSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3duZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3duZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPd25lciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29udGVudCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb250ZW50J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ29udGVudCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ3JlYXRpb25EYXRlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NyZWF0aW9uRGF0ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NyZWF0aW9uRGF0ZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSW5mbycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJbmZvJ10gPSBfRW5jcnlwdGlvbktleUluZm8yWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydJbmZvJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBPd25lclxuICAgICovXG4gICAgcmV0dXJuIEVuY3J5cHRpb25LZXk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbmNyeXB0aW9uS2V5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IElEXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQ29udGVudFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gQ3JlYXRpb25EYXRlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25LZXlJbmZvfSBJbmZvXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfRW5jcnlwdGlvbkV4cG9ydCA9IHJlcXVpcmUoJy4vRW5jcnlwdGlvbkV4cG9ydCcpO1xuXG52YXIgX0VuY3J5cHRpb25FeHBvcnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRW5jcnlwdGlvbkV4cG9ydCk7XG5cbnZhciBfRW5jcnlwdGlvbkltcG9ydCA9IHJlcXVpcmUoJy4vRW5jcnlwdGlvbkltcG9ydCcpO1xuXG52YXIgX0VuY3J5cHRpb25JbXBvcnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRW5jcnlwdGlvbkltcG9ydCk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbktleUluZm8gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25LZXlJbmZvXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25LZXlJbmZvID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbktleUluZm88L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5SW5mb1xuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25LZXlJbmZvKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbktleUluZm8pO1xuXG4gICAgICAgIHRoaXMuRXhwb3J0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5JbXBvcnRzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25LZXlJbmZvPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5SW5mb30gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25LZXlJbmZvfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25LZXlJbmZvPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbktleUluZm8uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25LZXlJbmZvKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFeHBvcnRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0V4cG9ydHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFeHBvcnRzJ10sIFtfRW5jcnlwdGlvbkV4cG9ydDJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0ltcG9ydHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSW1wb3J0cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0ltcG9ydHMnXSwgW19FbmNyeXB0aW9uSW1wb3J0MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25FeHBvcnQ+fSBFeHBvcnRzXG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbktleUluZm87XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbmNyeXB0aW9uS2V5SW5mbztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uSW1wb3J0Pn0gSW1wb3J0c1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbUFDTEFjdGlvbiA9IHJlcXVpcmUoJy4vSWRtQUNMQWN0aW9uJyk7XG5cbnZhciBfSWRtQUNMQWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbUFDTEFjdGlvbik7XG5cbi8qKlxuKiBUaGUgSWRtQUNMIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1BQ0xcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtQUNMID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtQUNMPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtQUNMXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtQUNMKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtQUNMKTtcblxuICAgICAgICB0aGlzLklEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Sb2xlSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuV29ya3NwYWNlSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZUlEID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbUFDTDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtQUNMfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtQUNMfSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbUFDTDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIElkbUFDTC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtQUNMKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBY3Rpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWN0aW9uJ10gPSBfSWRtQUNMQWN0aW9uMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnQWN0aW9uJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JvbGVJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSb2xlSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSb2xlSUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dvcmtzcGFjZUlEJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dvcmtzcGFjZUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV29ya3NwYWNlSUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlSUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBJRFxuICAgICovXG4gICAgcmV0dXJuIElkbUFDTDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbUFDTDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0lkbUFDTEFjdGlvbn0gQWN0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBSb2xlSURcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFdvcmtzcGFjZUlEXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBOb2RlSURcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBJZG1BQ0xBY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbUFDTEFjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1BQ0xBY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1BQ0xBY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1BQ0xBY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1BQ0xBY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1BQ0xBY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5WYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1BQ0xBY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUFDTEFjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbUFDTEFjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1BQ0xBY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1BQ0xBY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbUFDTEFjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVmFsdWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVmFsdWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydWYWx1ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVcbiAgICAqL1xuICAgIHJldHVybiBJZG1BQ0xBY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1BQ0xBY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVmFsdWVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1BQ0xBY3Rpb24gPSByZXF1aXJlKCcuL0lkbUFDTEFjdGlvbicpO1xuXG52YXIgX0lkbUFDTEFjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1BQ0xBY3Rpb24pO1xuXG4vKipcbiogVGhlIElkbUFDTFNpbmdsZVF1ZXJ5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1BQ0xTaW5nbGVRdWVyeVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1BQ0xTaW5nbGVRdWVyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbUFDTFNpbmdsZVF1ZXJ5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtQUNMU2luZ2xlUXVlcnlcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1BQ0xTaW5nbGVRdWVyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbUFDTFNpbmdsZVF1ZXJ5KTtcblxuICAgICAgICB0aGlzLkFjdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUm9sZUlEcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Xb3Jrc3BhY2VJRHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZUlEcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ub3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtQUNMU2luZ2xlUXVlcnk8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUFDTFNpbmdsZVF1ZXJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtQUNMU2luZ2xlUXVlcnl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtQUNMU2luZ2xlUXVlcnk8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1BQ0xTaW5nbGVRdWVyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtQUNMU2luZ2xlUXVlcnkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FjdGlvbnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWN0aW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FjdGlvbnMnXSwgW19JZG1BQ0xBY3Rpb24yWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb2xlSURzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JvbGVJRHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSb2xlSURzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dvcmtzcGFjZUlEcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXb3Jrc3BhY2VJRHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXb3Jrc3BhY2VJRHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZUlEcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlSURzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZUlEcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdub3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbm90J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbm90J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbUFDTEFjdGlvbj59IEFjdGlvbnNcbiAgICAqL1xuICAgIHJldHVybiBJZG1BQ0xTaW5nbGVRdWVyeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbUFDTFNpbmdsZVF1ZXJ5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gUm9sZUlEc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBXb3Jrc3BhY2VJRHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gTm9kZUlEc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IG5vdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIHJldHVybiBJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Qb2xpY3lHcm91cCA9IHJlcXVpcmUoJy4vSWRtUG9saWN5R3JvdXAnKTtcblxudmFyIF9JZG1Qb2xpY3lHcm91cDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Qb2xpY3lHcm91cCk7XG5cbi8qKlxuKiBUaGUgSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlBvbGljeUdyb3VwcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWN5R3JvdXBzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljeUdyb3VwcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljeUdyb3VwcyddLCBbX0lkbVBvbGljeUdyb3VwMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG90YWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG90YWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb3RhbCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVBvbGljeUdyb3VwPn0gUG9saWN5R3JvdXBzXG4gICAgKi9cbiAgICByZXR1cm4gSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFRvdGFsXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIElkbU5vZGVUeXBlLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBJZG1Ob2RlVHlwZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSWRtTm9kZVR5cGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Ob2RlVHlwZSk7XG5cbiAgICAgICAgdGhpcy5VTktOT1dOID0gXCJVTktOT1dOXCI7XG4gICAgICAgIHRoaXMuVVNFUiA9IFwiVVNFUlwiO1xuICAgICAgICB0aGlzLkdST1VQID0gXCJHUk9VUFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPklkbU5vZGVUeXBlPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtTm9kZVR5cGV9IFRoZSBlbnVtIDxjb2RlPklkbU5vZGVUeXBlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgSWRtTm9kZVR5cGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBJZG1Ob2RlVHlwZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gSWRtTm9kZVR5cGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIlVOS05PV05cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJVU0VSXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiR1JPVVBcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVBvbGljeUNvbmRpdGlvbiA9IHJlcXVpcmUoJy4vSWRtUG9saWN5Q29uZGl0aW9uJyk7XG5cbnZhciBfSWRtUG9saWN5Q29uZGl0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVBvbGljeUNvbmRpdGlvbik7XG5cbnZhciBfSWRtUG9saWN5RWZmZWN0ID0gcmVxdWlyZSgnLi9JZG1Qb2xpY3lFZmZlY3QnKTtcblxudmFyIF9JZG1Qb2xpY3lFZmZlY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtUG9saWN5RWZmZWN0KTtcblxuLyoqXG4qIFRoZSBJZG1Qb2xpY3kgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVBvbGljeVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1Qb2xpY3kgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Qb2xpY3k8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1Qb2xpY3lcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1Qb2xpY3koKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Qb2xpY3kpO1xuXG4gICAgICAgIHRoaXMuaWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc3ViamVjdHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVzb3VyY2VzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmFjdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZWZmZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmNvbmRpdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtUG9saWN5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Qb2xpY3l9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1Qb2xpY3l9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtUG9saWN5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtUG9saWN5LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1Qb2xpY3koKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2lkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2lkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnaWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Rlc2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Rlc2NyaXB0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGVzY3JpcHRpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3N1YmplY3RzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3N1YmplY3RzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnc3ViamVjdHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncmVzb3VyY2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3Jlc291cmNlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3Jlc291cmNlcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdhY3Rpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2FjdGlvbnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydhY3Rpb25zJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2VmZmVjdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydlZmZlY3QnXSA9IF9JZG1Qb2xpY3lFZmZlY3QyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydlZmZlY3QnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnY29uZGl0aW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydjb25kaXRpb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnY29uZGl0aW9ucyddLCB7ICdTdHJpbmcnOiBfSWRtUG9saWN5Q29uZGl0aW9uMlsnZGVmYXVsdCddIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBpZFxuICAgICovXG4gICAgcmV0dXJuIElkbVBvbGljeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVBvbGljeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkZXNjcmlwdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBzdWJqZWN0c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSByZXNvdXJjZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gYWN0aW9uc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9JZG1Qb2xpY3lFZmZlY3R9IGVmZmVjdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBtb2R1bGU6bW9kZWwvSWRtUG9saWN5Q29uZGl0aW9uPn0gY29uZGl0aW9uc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIElkbVBvbGljeUNvbmRpdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtUG9saWN5Q29uZGl0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVBvbGljeUNvbmRpdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVBvbGljeUNvbmRpdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVBvbGljeUNvbmRpdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVBvbGljeUNvbmRpdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVBvbGljeUNvbmRpdGlvbik7XG5cbiAgICAgICAgdGhpcy50eXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmpzb25PcHRpb25zID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVBvbGljeUNvbmRpdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5Q29uZGl0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5Q29uZGl0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVBvbGljeUNvbmRpdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIElkbVBvbGljeUNvbmRpdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtUG9saWN5Q29uZGl0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCd0eXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3R5cGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWyd0eXBlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdqc29uT3B0aW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydqc29uT3B0aW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2pzb25PcHRpb25zJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gdHlwZVxuICAgICovXG4gICAgcmV0dXJuIElkbVBvbGljeUNvbmRpdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVBvbGljeUNvbmRpdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBqc29uT3B0aW9uc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBJZG1Qb2xpY3lFZmZlY3QuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIElkbVBvbGljeUVmZmVjdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSWRtUG9saWN5RWZmZWN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtUG9saWN5RWZmZWN0KTtcblxuICAgICAgICB0aGlzLnVua25vd24gPSBcInVua25vd25cIjtcbiAgICAgICAgdGhpcy5kZW55ID0gXCJkZW55XCI7XG4gICAgICAgIHRoaXMuYWxsb3cgPSBcImFsbG93XCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+SWRtUG9saWN5RWZmZWN0PC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5RWZmZWN0fSBUaGUgZW51bSA8Y29kZT5JZG1Qb2xpY3lFZmZlY3Q8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBJZG1Qb2xpY3lFZmZlY3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBJZG1Qb2xpY3lFZmZlY3Q7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IElkbVBvbGljeUVmZmVjdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwidW5rbm93blwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcImRlbnlcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJhbGxvd1wiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtUG9saWN5ID0gcmVxdWlyZSgnLi9JZG1Qb2xpY3knKTtcblxudmFyIF9JZG1Qb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtUG9saWN5KTtcblxudmFyIF9JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwID0gcmVxdWlyZSgnLi9JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwJyk7XG5cbnZhciBfSWRtUG9saWN5UmVzb3VyY2VHcm91cDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwKTtcblxuLyoqXG4qIFRoZSBJZG1Qb2xpY3lHcm91cCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtUG9saWN5R3JvdXBcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtUG9saWN5R3JvdXAgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Qb2xpY3lHcm91cDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVBvbGljeUdyb3VwXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtUG9saWN5R3JvdXAoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Qb2xpY3lHcm91cCk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3duZXJVdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlc291cmNlR3JvdXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFzdFVwZGF0ZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUG9saWNpZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtUG9saWN5R3JvdXA8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeUdyb3VwfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5R3JvdXB9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtUG9saWN5R3JvdXA8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1Qb2xpY3lHcm91cC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtUG9saWN5R3JvdXAoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1V1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1V1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rlc2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Rlc2NyaXB0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGVzY3JpcHRpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ093bmVyVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPd25lclV1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPd25lclV1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc291cmNlR3JvdXAnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzb3VyY2VHcm91cCddID0gX0lkbVBvbGljeVJlc291cmNlR3JvdXAyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydSZXNvdXJjZUdyb3VwJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhc3RVcGRhdGVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhc3RVcGRhdGVkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGFzdFVwZGF0ZWQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXMnXSwgW19JZG1Qb2xpY3kyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIElkbVBvbGljeUdyb3VwO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtUG9saWN5R3JvdXA7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE93bmVyVXVpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwfSBSZXNvdXJjZUdyb3VwXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBMYXN0VXBkYXRlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtUG9saWN5Pn0gUG9saWNpZXNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgSWRtUG9saWN5UmVzb3VyY2VHcm91cC5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgSWRtUG9saWN5UmVzb3VyY2VHcm91cCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSWRtUG9saWN5UmVzb3VyY2VHcm91cCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVBvbGljeVJlc291cmNlR3JvdXApO1xuXG4gICAgICAgIHRoaXMucmVzdCA9IFwicmVzdFwiO1xuICAgICAgICB0aGlzLmFjbCA9IFwiYWNsXCI7XG4gICAgICAgIHRoaXMub2lkYyA9IFwib2lkY1wiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPklkbVBvbGljeVJlc291cmNlR3JvdXA8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwfSBUaGUgZW51bSA8Y29kZT5JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgSWRtUG9saWN5UmVzb3VyY2VHcm91cC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIElkbVBvbGljeVJlc291cmNlR3JvdXA7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IElkbVBvbGljeVJlc291cmNlR3JvdXA7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcInJlc3RcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJhY2xcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJvaWRjXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeScpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kpO1xuXG4vKipcbiogVGhlIElkbVJvbGUgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVJvbGVcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtUm9sZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVJvbGU8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1Sb2xlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtUm9sZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVJvbGUpO1xuXG4gICAgICAgIHRoaXMuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Jc1RlYW0gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBSb2xlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVzZXJSb2xlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhc3RVcGRhdGVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF1dG9BcHBsaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzQ29udGV4dEVkaXRhYmxlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVJvbGU8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVJvbGV9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1Sb2xlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVJvbGU8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1Sb2xlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1Sb2xlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJc1RlYW0nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSXNUZWFtJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSXNUZWFtJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR3JvdXBSb2xlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwUm9sZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0dyb3VwUm9sZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJSb2xlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJSb2xlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlclJvbGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYXN0VXBkYXRlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYXN0VXBkYXRlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhc3RVcGRhdGVkJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBdXRvQXBwbGllcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBdXRvQXBwbGllcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0F1dG9BcHBsaWVzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXMnXSwgW19TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llc0NvbnRleHRFZGl0YWJsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBJZG1Sb2xlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtUm9sZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IElzVGVhbVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEdyb3VwUm9sZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFVzZXJSb2xlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBMYXN0VXBkYXRlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBBdXRvQXBwbGllc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5Pn0gUG9saWNpZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBQb2xpY2llc0NvbnRleHRFZGl0YWJsZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIElkbVJvbGVTaW5nbGVRdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtUm9sZVNpbmdsZVF1ZXJ5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVJvbGVTaW5nbGVRdWVyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVJvbGVTaW5nbGVRdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVJvbGVTaW5nbGVRdWVyeVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVJvbGVTaW5nbGVRdWVyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVJvbGVTaW5nbGVRdWVyeSk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklzVGVhbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Jc0dyb3VwUm9sZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Jc1VzZXJSb2xlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkhhc0F1dG9BcHBseSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ub3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtUm9sZVNpbmdsZVF1ZXJ5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Sb2xlU2luZ2xlUXVlcnl9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1Sb2xlU2luZ2xlUXVlcnl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtUm9sZVNpbmdsZVF1ZXJ5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtUm9sZVNpbmdsZVF1ZXJ5LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1Sb2xlU2luZ2xlUXVlcnkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1V1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1V1aWQnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNUZWFtJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lzVGVhbSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lzVGVhbSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lzR3JvdXBSb2xlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lzR3JvdXBSb2xlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSXNHcm91cFJvbGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJc1VzZXJSb2xlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lzVXNlclJvbGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJc1VzZXJSb2xlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSGFzQXV0b0FwcGx5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0hhc0F1dG9BcHBseSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0hhc0F1dG9BcHBseSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ25vdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydub3QnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydub3QnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gSWRtUm9sZVNpbmdsZVF1ZXJ5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtUm9sZVNpbmdsZVF1ZXJ5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExhYmVsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSXNUZWFtXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSXNHcm91cFJvbGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBJc1VzZXJSb2xlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSGFzQXV0b0FwcGx5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gbm90XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5Jyk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkpO1xuXG4vKipcbiogVGhlIElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5NZXRhVXVpZHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZVV1aWRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5hbWVzcGFjZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZXNvdXJjZVN1YmplY3RPd25lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZXNvdXJjZVF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXRhVXVpZHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWV0YVV1aWRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWV0YVV1aWRzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVVdWlkcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlVXVpZHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlVXVpZHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZXNwYWNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWVzcGFjZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWVzcGFjZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzb3VyY2VTdWJqZWN0T3duZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzb3VyY2VTdWJqZWN0T3duZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZXNvdXJjZVN1YmplY3RPd25lciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzb3VyY2VRdWVyeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZXNvdXJjZVF1ZXJ5J10gPSBfU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydSZXNvdXJjZVF1ZXJ5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IE1ldGFVdWlkc1xuICAgICovXG4gICAgcmV0dXJuIElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IE5vZGVVdWlkc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTmFtZXNwYWNlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBSZXNvdXJjZVN1YmplY3RPd25lclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeX0gUmVzb3VyY2VRdWVyeVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVVzZXJNZXRhTmFtZXNwYWNlID0gcmVxdWlyZSgnLi9JZG1Vc2VyTWV0YU5hbWVzcGFjZScpO1xuXG52YXIgX0lkbVVzZXJNZXRhTmFtZXNwYWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVVzZXJNZXRhTmFtZXNwYWNlKTtcblxudmFyIF9VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AgPSByZXF1aXJlKCcuL1VwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcCcpO1xuXG52YXIgX1VwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3ApO1xuXG4vKipcbiogVGhlIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5PcGVyYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTmFtZXNwYWNlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3BlcmF0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09wZXJhdGlvbiddID0gX1VwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ09wZXJhdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lc3BhY2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWVzcGFjZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lc3BhY2VzJ10sIFtfSWRtVXNlck1ldGFOYW1lc3BhY2UyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3B9IE9wZXJhdGlvblxuICAgICovXG4gICAgcmV0dXJuIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Vc2VyTWV0YU5hbWVzcGFjZT59IE5hbWVzcGFjZXNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Vc2VyTWV0YU5hbWVzcGFjZSA9IHJlcXVpcmUoJy4vSWRtVXNlck1ldGFOYW1lc3BhY2UnKTtcblxudmFyIF9JZG1Vc2VyTWV0YU5hbWVzcGFjZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyTWV0YU5hbWVzcGFjZSk7XG5cbi8qKlxuKiBUaGUgSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5OYW1lc3BhY2VzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lc3BhY2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWVzcGFjZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lc3BhY2VzJ10sIFtfSWRtVXNlck1ldGFOYW1lc3BhY2UyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtVXNlck1ldGFOYW1lc3BhY2U+fSBOYW1lc3BhY2VzXG4gICAgKi9cbiAgICByZXR1cm4gSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVVzZXJNZXRhID0gcmVxdWlyZSgnLi9JZG1Vc2VyTWV0YScpO1xuXG52YXIgX0lkbVVzZXJNZXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVVzZXJNZXRhKTtcblxudmFyIF9VcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wID0gcmVxdWlyZSgnLi9VcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wJyk7XG5cbnZhciBfVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9VcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wKTtcblxuLyoqXG4qIFRoZSBJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuT3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1ldGFEYXRhcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3BlcmF0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09wZXJhdGlvbiddID0gX1VwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3AyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydPcGVyYXRpb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWV0YURhdGFzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01ldGFEYXRhcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01ldGFEYXRhcyddLCBbX0lkbVVzZXJNZXRhMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcH0gT3BlcmF0aW9uXG4gICAgKi9cbiAgICByZXR1cm4gSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhPn0gTWV0YURhdGFzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtVXNlck1ldGEgPSByZXF1aXJlKCcuL0lkbVVzZXJNZXRhJyk7XG5cbnZhciBfSWRtVXNlck1ldGEyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtVXNlck1ldGEpO1xuXG4vKipcbiogVGhlIElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuTWV0YURhdGFzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXRhRGF0YXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWV0YURhdGFzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWV0YURhdGFzJ10sIFtfSWRtVXNlck1ldGEyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtVXNlck1ldGE+fSBNZXRhRGF0YXNcbiAgICAqL1xuICAgIHJldHVybiBJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtUm9sZSA9IHJlcXVpcmUoJy4vSWRtUm9sZScpO1xuXG52YXIgX0lkbVJvbGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtUm9sZSk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUmVzb3VyY2VQb2xpY3knKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5KTtcblxuLyoqXG4qIFRoZSBJZG1Vc2VyIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1Vc2VyXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVVzZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Vc2VyPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtVXNlclxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVVzZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Vc2VyKTtcblxuICAgICAgICB0aGlzLlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF0dHJpYnV0ZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUm9sZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTG9naW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2xkUGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSXNHcm91cCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Hcm91cExhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzQ29udGV4dEVkaXRhYmxlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVVzZXI8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVzZXJ9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1Vc2VyfSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVVzZXI8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1Vc2VyLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1Vc2VyKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHcm91cFBhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnR3JvdXBQYXRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnR3JvdXBQYXRoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBdHRyaWJ1dGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0F0dHJpYnV0ZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdHRyaWJ1dGVzJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JvbGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JvbGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9sZXMnXSwgW19JZG1Sb2xlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTG9naW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTG9naW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMb2dpbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGFzc3dvcmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYXNzd29yZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2xkUGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2xkUGFzc3dvcmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPbGRQYXNzd29yZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNHcm91cCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJc0dyb3VwJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSXNHcm91cCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0dyb3VwTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnR3JvdXBMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0dyb3VwTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXMnXSwgW19TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llc0NvbnRleHRFZGl0YWJsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBJZG1Vc2VyO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtVXNlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBHcm91cFBhdGhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gQXR0cmlidXRlc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtUm9sZT59IFJvbGVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMb2dpblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUGFzc3dvcmRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9sZFBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSXNHcm91cFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gR3JvdXBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5Pn0gUG9saWNpZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBQb2xpY2llc0NvbnRleHRFZGl0YWJsZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeSA9IHJlcXVpcmUoJy4vU2VydmljZVJlc291cmNlUG9saWN5Jyk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VSZXNvdXJjZVBvbGljeSk7XG5cbi8qKlxuKiBUaGUgSWRtVXNlck1ldGEgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVVzZXJNZXRhXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVVzZXJNZXRhID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtVXNlck1ldGE8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1Vc2VyTWV0YVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVVzZXJNZXRhKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtVXNlck1ldGEpO1xuXG4gICAgICAgIHRoaXMuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2RlVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5OYW1lc3BhY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSnNvblZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzQ29udGV4dEVkaXRhYmxlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVVzZXJNZXRhPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Vc2VyTWV0YX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhfSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVVzZXJNZXRhPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtVXNlck1ldGEuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVVzZXJNZXRhKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lc3BhY2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZXNwYWNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZXNwYWNlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKc29uVmFsdWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSnNvblZhbHVlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSnNvblZhbHVlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzJ10sIFtfU2VydmljZVJlc291cmNlUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gSWRtVXNlck1ldGE7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1Vc2VyTWV0YTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBOb2RlVXVpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTmFtZXNwYWNlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBKc29uVmFsdWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeT59IFBvbGljaWVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUG9saWNpZXNDb250ZXh0RWRpdGFibGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeScpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kpO1xuXG4vKipcbiogVGhlIElkbVVzZXJNZXRhTmFtZXNwYWNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1Vc2VyTWV0YU5hbWVzcGFjZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1Vc2VyTWV0YU5hbWVzcGFjZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVVzZXJNZXRhTmFtZXNwYWNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtVXNlck1ldGFOYW1lc3BhY2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1Vc2VyTWV0YU5hbWVzcGFjZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVVzZXJNZXRhTmFtZXNwYWNlKTtcblxuICAgICAgICB0aGlzLk5hbWVzcGFjZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PcmRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5JbmRleGFibGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSnNvbkRlZmluaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUG9saWNpZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtVXNlck1ldGFOYW1lc3BhY2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhTmFtZXNwYWNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtVXNlck1ldGFOYW1lc3BhY2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtVXNlck1ldGFOYW1lc3BhY2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1Vc2VyTWV0YU5hbWVzcGFjZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtVXNlck1ldGFOYW1lc3BhY2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWVzcGFjZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lc3BhY2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lc3BhY2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhYmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09yZGVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09yZGVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT3JkZXInXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0luZGV4YWJsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJbmRleGFibGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJbmRleGFibGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKc29uRGVmaW5pdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKc29uRGVmaW5pdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pzb25EZWZpbml0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzJ10sIFtfU2VydmljZVJlc291cmNlUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVzcGFjZVxuICAgICovXG4gICAgcmV0dXJuIElkbVVzZXJNZXRhTmFtZXNwYWNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtVXNlck1ldGFOYW1lc3BhY2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IE9yZGVyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSW5kZXhhYmxlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBKc29uRGVmaW5pdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5Pn0gUG9saWNpZXNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Ob2RlVHlwZSA9IHJlcXVpcmUoJy4vSWRtTm9kZVR5cGUnKTtcblxudmFyIF9JZG1Ob2RlVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Ob2RlVHlwZSk7XG5cbi8qKlxuKiBUaGUgSWRtVXNlclNpbmdsZVF1ZXJ5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1Vc2VyU2luZ2xlUXVlcnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtVXNlclNpbmdsZVF1ZXJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtVXNlclNpbmdsZVF1ZXJ5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtVXNlclNpbmdsZVF1ZXJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtVXNlclNpbmdsZVF1ZXJ5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtVXNlclNpbmdsZVF1ZXJ5KTtcblxuICAgICAgICB0aGlzLlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTG9naW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlY3Vyc2l2ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5GdWxsUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BdHRyaWJ1dGVOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF0dHJpYnV0ZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF0dHJpYnV0ZUFueVZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkhhc1JvbGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZVR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubm90ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVVzZXJTaW5nbGVRdWVyeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtVXNlclNpbmdsZVF1ZXJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtVXNlclNpbmdsZVF1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVVzZXJTaW5nbGVRdWVyeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIElkbVVzZXJTaW5nbGVRdWVyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtVXNlclNpbmdsZVF1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMb2dpbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMb2dpbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xvZ2luJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQYXNzd29yZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Bhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHcm91cFBhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnR3JvdXBQYXRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnR3JvdXBQYXRoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZWN1cnNpdmUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVjdXJzaXZlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmVjdXJzaXZlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRnVsbFBhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRnVsbFBhdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydGdWxsUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXR0cmlidXRlTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBdHRyaWJ1dGVOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXR0cmlidXRlTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXR0cmlidXRlVmFsdWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQXR0cmlidXRlVmFsdWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdHRyaWJ1dGVWYWx1ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXR0cmlidXRlQW55VmFsdWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQXR0cmlidXRlQW55VmFsdWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdHRyaWJ1dGVBbnlWYWx1ZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0hhc1JvbGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSGFzUm9sZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0hhc1JvbGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVUeXBlJ10gPSBfSWRtTm9kZVR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydOb2RlVHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdub3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbm90J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbm90J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBJZG1Vc2VyU2luZ2xlUXVlcnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1Vc2VyU2luZ2xlUXVlcnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTG9naW5cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBHcm91cFBhdGhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBSZWN1cnNpdmVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEZ1bGxQYXRoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBBdHRyaWJ1dGVOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBBdHRyaWJ1dGVWYWx1ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEF0dHJpYnV0ZUFueVZhbHVlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBIYXNSb2xlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0lkbU5vZGVUeXBlfSBOb2RlVHlwZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IG5vdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVdvcmtzcGFjZVNjb3BlID0gcmVxdWlyZSgnLi9JZG1Xb3Jrc3BhY2VTY29wZScpO1xuXG52YXIgX0lkbVdvcmtzcGFjZVNjb3BlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVdvcmtzcGFjZVNjb3BlKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeScpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBJZG1Xb3Jrc3BhY2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVdvcmtzcGFjZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1Xb3Jrc3BhY2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Xb3Jrc3BhY2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1Xb3Jrc3BhY2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Xb3Jrc3BhY2UpO1xuXG4gICAgICAgIHRoaXMuVVVJRCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TbHVnID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNjb3BlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhc3RVcGRhdGVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF0dHJpYnV0ZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUm9vdFVVSURzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJvb3ROb2RlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1Xb3Jrc3BhY2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1Xb3Jrc3BhY2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1Xb3Jrc3BhY2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVdvcmtzcGFjZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVVVJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVVUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVVVJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGVzY3JpcHRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGVzY3JpcHRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZXNjcmlwdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2x1ZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTbHVnJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2x1ZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2NvcGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU2NvcGUnXSA9IF9JZG1Xb3Jrc3BhY2VTY29wZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1Njb3BlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhc3RVcGRhdGVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhc3RVcGRhdGVkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGFzdFVwZGF0ZWQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXMnXSwgW19TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBdHRyaWJ1dGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0F0dHJpYnV0ZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdHRyaWJ1dGVzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb290VVVJRHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9vdFVVSURzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9vdFVVSURzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jvb3ROb2RlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSb290Tm9kZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSb290Tm9kZXMnXSwgeyAnU3RyaW5nJzogX1RyZWVOb2RlMlsnZGVmYXVsdCddIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVVVJRFxuICAgICovXG4gICAgcmV0dXJuIElkbVdvcmtzcGFjZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVdvcmtzcGFjZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFNsdWdcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlU2NvcGV9IFNjb3BlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBMYXN0VXBkYXRlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5Pn0gUG9saWNpZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEF0dHJpYnV0ZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gUm9vdFVVSURzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IFJvb3ROb2Rlc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFBvbGljaWVzQ29udGV4dEVkaXRhYmxlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIElkbVdvcmtzcGFjZVNjb3BlLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBJZG1Xb3Jrc3BhY2VTY29wZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSWRtV29ya3NwYWNlU2NvcGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Xb3Jrc3BhY2VTY29wZSk7XG5cbiAgICAgICAgdGhpcy5BTlkgPSBcIkFOWVwiO1xuICAgICAgICB0aGlzLkFETUlOID0gXCJBRE1JTlwiO1xuICAgICAgICB0aGlzLlJPT00gPSBcIlJPT01cIjtcbiAgICAgICAgdGhpcy5MSU5LID0gXCJMSU5LXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+SWRtV29ya3NwYWNlU2NvcGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2VTY29wZX0gVGhlIGVudW0gPGNvZGU+SWRtV29ya3NwYWNlU2NvcGU8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBJZG1Xb3Jrc3BhY2VTY29wZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIElkbVdvcmtzcGFjZVNjb3BlO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBJZG1Xb3Jrc3BhY2VTY29wZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiQU5ZXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQURNSU5cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJST09NXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTElOS1wiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtV29ya3NwYWNlU2NvcGUgPSByZXF1aXJlKCcuL0lkbVdvcmtzcGFjZVNjb3BlJyk7XG5cbnZhciBfSWRtV29ya3NwYWNlU2NvcGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtV29ya3NwYWNlU2NvcGUpO1xuXG4vKipcbiogVGhlIElkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlU2luZ2xlUXVlcnlcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5KTtcblxuICAgICAgICB0aGlzLnV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2x1ZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zY29wZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ub3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtV29ya3NwYWNlU2luZ2xlUXVlcnk8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlU2luZ2xlUXVlcnl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtV29ya3NwYWNlU2luZ2xlUXVlcnk8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3V1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsndXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3V1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2xhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2xhYmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Rlc2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Rlc2NyaXB0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGVzY3JpcHRpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3NsdWcnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc2x1ZyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3NsdWcnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3Njb3BlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3Njb3BlJ10gPSBfSWRtV29ya3NwYWNlU2NvcGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydzY29wZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdub3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbm90J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbm90J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IHV1aWRcbiAgICAqL1xuICAgIHJldHVybiBJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGxhYmVsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkZXNjcmlwdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gc2x1Z1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2VTY29wZX0gc2NvcGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBub3RcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBJbnN0YWxsQ2hlY2tSZXN1bHQgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0luc3RhbGxDaGVja1Jlc3VsdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJbnN0YWxsQ2hlY2tSZXN1bHQgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JbnN0YWxsQ2hlY2tSZXN1bHQ8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JbnN0YWxsQ2hlY2tSZXN1bHRcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJbnN0YWxsQ2hlY2tSZXN1bHQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnN0YWxsQ2hlY2tSZXN1bHQpO1xuXG4gICAgICAgIHRoaXMuTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkpzb25SZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SW5zdGFsbENoZWNrUmVzdWx0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JbnN0YWxsQ2hlY2tSZXN1bHR9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JbnN0YWxsQ2hlY2tSZXN1bHR9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SW5zdGFsbENoZWNrUmVzdWx0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSW5zdGFsbENoZWNrUmVzdWx0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJbnN0YWxsQ2hlY2tSZXN1bHQoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKc29uUmVzdWx0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pzb25SZXN1bHQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKc29uUmVzdWx0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTmFtZVxuICAgICovXG4gICAgcmV0dXJuIEluc3RhbGxDaGVja1Jlc3VsdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEluc3RhbGxDaGVja1Jlc3VsdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSnNvblJlc3VsdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5UZXh0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUZXh0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RleHQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUZXh0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVGV4dFxuICAgICovXG4gICAgcmV0dXJuIEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSW5zdGFsbEluc3RhbGxDb25maWcgPSByZXF1aXJlKCcuL0luc3RhbGxJbnN0YWxsQ29uZmlnJyk7XG5cbnZhciBfSW5zdGFsbEluc3RhbGxDb25maWcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSW5zdGFsbEluc3RhbGxDb25maWcpO1xuXG4vKipcbiogVGhlIEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLmNvbmZpZyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnY29uZmlnJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2NvbmZpZyddID0gX0luc3RhbGxJbnN0YWxsQ29uZmlnMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnY29uZmlnJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsQ29uZmlnfSBjb25maWdcbiAgICAqL1xuICAgIHJldHVybiBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JbnN0YWxsQ2hlY2tSZXN1bHQgPSByZXF1aXJlKCcuL0luc3RhbGxDaGVja1Jlc3VsdCcpO1xuXG52YXIgX0luc3RhbGxDaGVja1Jlc3VsdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JbnN0YWxsQ2hlY2tSZXN1bHQpO1xuXG4vKipcbiogVGhlIEluc3RhbGxJbnN0YWxsQ29uZmlnIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JbnN0YWxsSW5zdGFsbENvbmZpZ1xuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJbnN0YWxsSW5zdGFsbENvbmZpZyA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkluc3RhbGxJbnN0YWxsQ29uZmlnPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxDb25maWdcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJbnN0YWxsSW5zdGFsbENvbmZpZygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluc3RhbGxJbnN0YWxsQ29uZmlnKTtcblxuICAgICAgICB0aGlzLmludGVybmFsVXJsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRiQ29ubmVjdGlvblR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGJUQ1BIb3N0bmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYlRDUFBvcnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGJUQ1BOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRiVENQVXNlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYlRDUFBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRiU29ja2V0RmlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYlNvY2tldE5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGJTb2NrZXRVc2VyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRiU29ja2V0UGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGJNYW51YWxEU04gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZHNOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRzUG9ydCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kc0ZvbGRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5leHRlcm5hbE1pY3JvID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmV4dGVybmFsR2F0ZXdheSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5leHRlcm5hbFdlYnNvY2tldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5leHRlcm5hbEZyb250UGx1Z2lucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5leHRlcm5hbERBViA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5leHRlcm5hbFdPUEkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxEZXggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxEZXhJRCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5leHRlcm5hbERleFNlY3JldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5mcm9udGVuZEhvc3RzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmZyb250ZW5kTG9naW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZnJvbnRlbmRQYXNzd29yZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5mcm9udGVuZFJlcGVhdFBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmZyb250ZW5kQXBwbGljYXRpb25UaXRsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5mcm9udGVuZERlZmF1bHRMYW5ndWFnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5saWNlbnNlUmVxdWlyZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubGljZW5zZVN0cmluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DaGVja1Jlc3VsdHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SW5zdGFsbEluc3RhbGxDb25maWc8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsQ29uZmlnfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxDb25maWd9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SW5zdGFsbEluc3RhbGxDb25maWc8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJbnN0YWxsSW5zdGFsbENvbmZpZy5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSW5zdGFsbEluc3RhbGxDb25maWcoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2ludGVybmFsVXJsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2ludGVybmFsVXJsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnaW50ZXJuYWxVcmwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiQ29ubmVjdGlvblR5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJDb25uZWN0aW9uVHlwZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2RiQ29ubmVjdGlvblR5cGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiVENQSG9zdG5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJUQ1BIb3N0bmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2RiVENQSG9zdG5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiVENQUG9ydCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkYlRDUFBvcnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlRDUFBvcnQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiVENQTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkYlRDUE5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlRDUE5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiVENQVXNlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkYlRDUFVzZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlRDUFVzZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiVENQUGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJUQ1BQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2RiVENQUGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiU29ja2V0RmlsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkYlNvY2tldEZpbGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlNvY2tldEZpbGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiU29ja2V0TmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkYlNvY2tldE5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlNvY2tldE5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiU29ja2V0VXNlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkYlNvY2tldFVzZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlNvY2tldFVzZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiU29ja2V0UGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJTb2NrZXRQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2RiU29ja2V0UGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RiTWFudWFsRFNOJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2RiTWFudWFsRFNOJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGJNYW51YWxEU04nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RzTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkc05hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkc05hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RzUG9ydCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkc1BvcnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkc1BvcnQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RzRm9sZGVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2RzRm9sZGVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZHNGb2xkZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsTWljcm8nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZXh0ZXJuYWxNaWNybyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2V4dGVybmFsTWljcm8nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsR2F0ZXdheScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydleHRlcm5hbEdhdGV3YXknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydleHRlcm5hbEdhdGV3YXknXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsV2Vic29ja2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2V4dGVybmFsV2Vic29ja2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZXh0ZXJuYWxXZWJzb2NrZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsRnJvbnRQbHVnaW5zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2V4dGVybmFsRnJvbnRQbHVnaW5zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZXh0ZXJuYWxGcm9udFBsdWdpbnMnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsREFWJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2V4dGVybmFsREFWJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZXh0ZXJuYWxEQVYnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsV09QSScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydleHRlcm5hbFdPUEknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydleHRlcm5hbFdPUEknXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsRGV4JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2V4dGVybmFsRGV4J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZXh0ZXJuYWxEZXgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsRGV4SUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZXh0ZXJuYWxEZXhJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2V4dGVybmFsRGV4SUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2V4dGVybmFsRGV4U2VjcmV0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2V4dGVybmFsRGV4U2VjcmV0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZXh0ZXJuYWxEZXhTZWNyZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Zyb250ZW5kSG9zdHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZnJvbnRlbmRIb3N0cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2Zyb250ZW5kSG9zdHMnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Zyb250ZW5kTG9naW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZnJvbnRlbmRMb2dpbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2Zyb250ZW5kTG9naW4nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Zyb250ZW5kUGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZnJvbnRlbmRQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2Zyb250ZW5kUGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Zyb250ZW5kUmVwZWF0UGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZnJvbnRlbmRSZXBlYXRQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2Zyb250ZW5kUmVwZWF0UGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Zyb250ZW5kQXBwbGljYXRpb25UaXRsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydmcm9udGVuZEFwcGxpY2F0aW9uVGl0bGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydmcm9udGVuZEFwcGxpY2F0aW9uVGl0bGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Zyb250ZW5kRGVmYXVsdExhbmd1YWdlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Zyb250ZW5kRGVmYXVsdExhbmd1YWdlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZnJvbnRlbmREZWZhdWx0TGFuZ3VhZ2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2xpY2Vuc2VSZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydsaWNlbnNlUmVxdWlyZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydsaWNlbnNlUmVxdWlyZWQnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdsaWNlbnNlU3RyaW5nJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2xpY2Vuc2VTdHJpbmcnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydsaWNlbnNlU3RyaW5nJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDaGVja1Jlc3VsdHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2hlY2tSZXN1bHRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2hlY2tSZXN1bHRzJ10sIFtfSW5zdGFsbENoZWNrUmVzdWx0MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IGludGVybmFsVXJsXG4gICAgKi9cbiAgICByZXR1cm4gSW5zdGFsbEluc3RhbGxDb25maWc7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbnN0YWxsSW5zdGFsbENvbmZpZztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYkNvbm5lY3Rpb25UeXBlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYlRDUEhvc3RuYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYlRDUFBvcnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGRiVENQTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJUQ1BVc2VyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYlRDUFBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYlNvY2tldEZpbGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGRiU29ja2V0TmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJTb2NrZXRVc2VyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYlNvY2tldFBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYk1hbnVhbERTTlxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZHNOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkc1BvcnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGRzRm9sZGVyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBleHRlcm5hbE1pY3JvXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBleHRlcm5hbEdhdGV3YXlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGV4dGVybmFsV2Vic29ja2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBleHRlcm5hbEZyb250UGx1Z2luc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZXh0ZXJuYWxEQVZcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGV4dGVybmFsV09QSVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZXh0ZXJuYWxEZXhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGV4dGVybmFsRGV4SURcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGV4dGVybmFsRGV4U2VjcmV0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBmcm9udGVuZEhvc3RzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBmcm9udGVuZExvZ2luXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBmcm9udGVuZFBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBmcm9udGVuZFJlcGVhdFBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBmcm9udGVuZEFwcGxpY2F0aW9uVGl0bGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGZyb250ZW5kRGVmYXVsdExhbmd1YWdlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gbGljZW5zZVJlcXVpcmVkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBsaWNlbnNlU3RyaW5nXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JbnN0YWxsQ2hlY2tSZXN1bHQ+fSBDaGVja1Jlc3VsdHNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JbnN0YWxsSW5zdGFsbENvbmZpZyA9IHJlcXVpcmUoJy4vSW5zdGFsbEluc3RhbGxDb25maWcnKTtcblxudmFyIF9JbnN0YWxsSW5zdGFsbENvbmZpZzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JbnN0YWxsSW5zdGFsbENvbmZpZyk7XG5cbi8qKlxuKiBUaGUgSW5zdGFsbEluc3RhbGxSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JbnN0YWxsSW5zdGFsbFJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSW5zdGFsbEluc3RhbGxSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SW5zdGFsbEluc3RhbGxSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSW5zdGFsbEluc3RhbGxSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSW5zdGFsbEluc3RhbGxSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLmNvbmZpZyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JbnN0YWxsSW5zdGFsbFJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JbnN0YWxsSW5zdGFsbFJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJbnN0YWxsSW5zdGFsbFJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEluc3RhbGxJbnN0YWxsUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnY29uZmlnJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2NvbmZpZyddID0gX0luc3RhbGxJbnN0YWxsQ29uZmlnMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnY29uZmlnJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsQ29uZmlnfSBjb25maWdcbiAgICAqL1xuICAgIHJldHVybiBJbnN0YWxsSW5zdGFsbFJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbnN0YWxsSW5zdGFsbFJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEluc3RhbGxJbnN0YWxsUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0luc3RhbGxJbnN0YWxsUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSW5zdGFsbEluc3RhbGxSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkluc3RhbGxJbnN0YWxsUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSW5zdGFsbEluc3RhbGxSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluc3RhbGxJbnN0YWxsUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuc3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JbnN0YWxsSW5zdGFsbFJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JbnN0YWxsSW5zdGFsbFJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSW5zdGFsbEluc3RhbGxSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSW5zdGFsbEluc3RhbGxSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnc3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydzdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnc3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gc3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIEluc3RhbGxJbnN0YWxsUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbnN0YWxsSW5zdGFsbFJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JbnN0YWxsSW5zdGFsbENvbmZpZyA9IHJlcXVpcmUoJy4vSW5zdGFsbEluc3RhbGxDb25maWcnKTtcblxudmFyIF9JbnN0YWxsSW5zdGFsbENvbmZpZzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JbnN0YWxsSW5zdGFsbENvbmZpZyk7XG5cbi8qKlxuKiBUaGUgSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db25maWcgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbmZpZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb25maWcnXSA9IF9JbnN0YWxsSW5zdGFsbENvbmZpZzJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0NvbmZpZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTmFtZVxuICAgICovXG4gICAgcmV0dXJuIEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbENvbmZpZ30gQ29uZmlnXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSW5zdGFsbENoZWNrUmVzdWx0ID0gcmVxdWlyZSgnLi9JbnN0YWxsQ2hlY2tSZXN1bHQnKTtcblxudmFyIF9JbnN0YWxsQ2hlY2tSZXN1bHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSW5zdGFsbENoZWNrUmVzdWx0KTtcblxuLyoqXG4qIFRoZSBJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuUmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZXN1bHQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzdWx0J10gPSBfSW5zdGFsbENoZWNrUmVzdWx0MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUmVzdWx0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0luc3RhbGxDaGVja1Jlc3VsdH0gUmVzdWx0XG4gICAgKi9cbiAgICByZXR1cm4gSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9Kb2JzTm9kZXNTZWxlY3RvciA9IHJlcXVpcmUoJy4vSm9ic05vZGVzU2VsZWN0b3InKTtcblxudmFyIF9Kb2JzTm9kZXNTZWxlY3RvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Kb2JzTm9kZXNTZWxlY3Rvcik7XG5cbnZhciBfSm9ic1NvdXJjZUZpbHRlciA9IHJlcXVpcmUoJy4vSm9ic1NvdXJjZUZpbHRlcicpO1xuXG52YXIgX0pvYnNTb3VyY2VGaWx0ZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic1NvdXJjZUZpbHRlcik7XG5cbnZhciBfSm9ic1VzZXJzU2VsZWN0b3IgPSByZXF1aXJlKCcuL0pvYnNVc2Vyc1NlbGVjdG9yJyk7XG5cbnZhciBfSm9ic1VzZXJzU2VsZWN0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic1VzZXJzU2VsZWN0b3IpO1xuXG4vKipcbiogVGhlIEpvYnNBY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNBY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic0FjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNBY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzQWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic0FjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNBY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZXNTZWxlY3RvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2Vyc1NlbGVjdG9yID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVzRmlsdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVzZXJzRmlsdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNvdXJjZUZpbHRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5QYXJhbWV0ZXJzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNoYWluZWRBY3Rpb25zID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNBY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNBY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzQWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzQWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2Rlc1NlbGVjdG9yJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVzU2VsZWN0b3InXSA9IF9Kb2JzTm9kZXNTZWxlY3RvcjJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ05vZGVzU2VsZWN0b3InXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlcnNTZWxlY3RvcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2Vyc1NlbGVjdG9yJ10gPSBfSm9ic1VzZXJzU2VsZWN0b3IyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydVc2Vyc1NlbGVjdG9yJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVzRmlsdGVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVzRmlsdGVyJ10gPSBfSm9ic05vZGVzU2VsZWN0b3IyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydOb2Rlc0ZpbHRlciddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2Vyc0ZpbHRlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2Vyc0ZpbHRlciddID0gX0pvYnNVc2Vyc1NlbGVjdG9yMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnVXNlcnNGaWx0ZXInXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU291cmNlRmlsdGVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NvdXJjZUZpbHRlciddID0gX0pvYnNTb3VyY2VGaWx0ZXIyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydTb3VyY2VGaWx0ZXInXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFyYW1ldGVycycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYXJhbWV0ZXJzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGFyYW1ldGVycyddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDaGFpbmVkQWN0aW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDaGFpbmVkQWN0aW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NoYWluZWRBY3Rpb25zJ10sIFtKb2JzQWN0aW9uXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IElEXG4gICAgKi9cbiAgICByZXR1cm4gSm9ic0FjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNBY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzTm9kZXNTZWxlY3Rvcn0gTm9kZXNTZWxlY3RvclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzVXNlcnNTZWxlY3Rvcn0gVXNlcnNTZWxlY3RvclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzTm9kZXNTZWxlY3Rvcn0gTm9kZXNGaWx0ZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic1VzZXJzU2VsZWN0b3J9IFVzZXJzRmlsdGVyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0pvYnNTb3VyY2VGaWx0ZXJ9IFNvdXJjZUZpbHRlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBQYXJhbWV0ZXJzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9Kb2JzQWN0aW9uPn0gQ2hhaW5lZEFjdGlvbnNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9Kb2JzQWN0aW9uID0gcmVxdWlyZSgnLi9Kb2JzQWN0aW9uJyk7XG5cbnZhciBfSm9ic0FjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Kb2JzQWN0aW9uKTtcblxudmFyIF9Kb2JzQWN0aW9uTWVzc2FnZSA9IHJlcXVpcmUoJy4vSm9ic0FjdGlvbk1lc3NhZ2UnKTtcblxudmFyIF9Kb2JzQWN0aW9uTWVzc2FnZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Kb2JzQWN0aW9uTWVzc2FnZSk7XG5cbi8qKlxuKiBUaGUgSm9ic0FjdGlvbkxvZyBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSm9ic0FjdGlvbkxvZ1xuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzQWN0aW9uTG9nID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic0FjdGlvbkxvZzwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25Mb2dcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzQWN0aW9uTG9nKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic0FjdGlvbkxvZyk7XG5cbiAgICAgICAgdGhpcy5BY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSW5wdXRNZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk91dHB1dE1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Sm9ic0FjdGlvbkxvZzwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbkxvZ30gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25Mb2d9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+Sm9ic0FjdGlvbkxvZzwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNBY3Rpb25Mb2cuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNBY3Rpb25Mb2coKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FjdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBY3Rpb24nXSA9IF9Kb2JzQWN0aW9uMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnQWN0aW9uJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lucHV0TWVzc2FnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJbnB1dE1lc3NhZ2UnXSA9IF9Kb2JzQWN0aW9uTWVzc2FnZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0lucHV0TWVzc2FnZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPdXRwdXRNZXNzYWdlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ091dHB1dE1lc3NhZ2UnXSA9IF9Kb2JzQWN0aW9uTWVzc2FnZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ091dHB1dE1lc3NhZ2UnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbn0gQWN0aW9uXG4gICAgKi9cbiAgICByZXR1cm4gSm9ic0FjdGlvbkxvZztcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNBY3Rpb25Mb2c7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9uTWVzc2FnZX0gSW5wdXRNZXNzYWdlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25NZXNzYWdlfSBPdXRwdXRNZXNzYWdlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfQWN0aXZpdHlPYmplY3QgPSByZXF1aXJlKCcuL0FjdGl2aXR5T2JqZWN0Jyk7XG5cbnZhciBfQWN0aXZpdHlPYmplY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWN0aXZpdHlPYmplY3QpO1xuXG52YXIgX0lkbVVzZXIgPSByZXF1aXJlKCcuL0lkbVVzZXInKTtcblxudmFyIF9JZG1Vc2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVVzZXIpO1xuXG52YXIgX0pvYnNBY3Rpb25PdXRwdXQgPSByZXF1aXJlKCcuL0pvYnNBY3Rpb25PdXRwdXQnKTtcblxudmFyIF9Kb2JzQWN0aW9uT3V0cHV0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNBY3Rpb25PdXRwdXQpO1xuXG52YXIgX1Byb3RvYnVmQW55ID0gcmVxdWlyZSgnLi9Qcm90b2J1ZkFueScpO1xuXG52YXIgX1Byb3RvYnVmQW55MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Byb3RvYnVmQW55KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgSm9ic0FjdGlvbk1lc3NhZ2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNBY3Rpb25NZXNzYWdlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNBY3Rpb25NZXNzYWdlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic0FjdGlvbk1lc3NhZ2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzQWN0aW9uTWVzc2FnZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNBY3Rpb25NZXNzYWdlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic0FjdGlvbk1lc3NhZ2UpO1xuXG4gICAgICAgIHRoaXMuRXZlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWN0aXZpdGllcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PdXRwdXRDaGFpbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzQWN0aW9uTWVzc2FnZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbk1lc3NhZ2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9uTWVzc2FnZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzQWN0aW9uTWVzc2FnZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNBY3Rpb25NZXNzYWdlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzQWN0aW9uTWVzc2FnZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRXZlbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRXZlbnQnXSA9IF9Qcm90b2J1ZkFueTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0V2ZW50J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZXMnXSwgW19UcmVlTm9kZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlcnMnXSwgW19JZG1Vc2VyMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWN0aXZpdGllcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBY3Rpdml0aWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWN0aXZpdGllcyddLCBbX0FjdGl2aXR5T2JqZWN0MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3V0cHV0Q2hhaW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3V0cHV0Q2hhaW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPdXRwdXRDaGFpbiddLCBbX0pvYnNBY3Rpb25PdXRwdXQyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9Qcm90b2J1ZkFueX0gRXZlbnRcbiAgICAqL1xuICAgIHJldHVybiBKb2JzQWN0aW9uTWVzc2FnZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNBY3Rpb25NZXNzYWdlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVOb2RlPn0gTm9kZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVVzZXI+fSBVc2Vyc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3Q+fSBBY3Rpdml0aWVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9Kb2JzQWN0aW9uT3V0cHV0Pn0gT3V0cHV0Q2hhaW5cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBKb2JzQWN0aW9uT3V0cHV0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzQWN0aW9uT3V0cHV0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNBY3Rpb25PdXRwdXQgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzQWN0aW9uT3V0cHV0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0FjdGlvbk91dHB1dFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNBY3Rpb25PdXRwdXQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzQWN0aW9uT3V0cHV0KTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmF3Qm9keSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdHJpbmdCb2R5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkpzb25Cb2R5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkVycm9yU3RyaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklnbm9yZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Sm9ic0FjdGlvbk91dHB1dDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbk91dHB1dH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25PdXRwdXR9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+Sm9ic0FjdGlvbk91dHB1dDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNBY3Rpb25PdXRwdXQuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNBY3Rpb25PdXRwdXQoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSYXdCb2R5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jhd0JvZHknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSYXdCb2R5J10sICdCbG9iJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RyaW5nQm9keScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdHJpbmdCb2R5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3RyaW5nQm9keSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSnNvbkJvZHknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSnNvbkJvZHknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKc29uQm9keSddLCAnQmxvYicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Vycm9yU3RyaW5nJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Vycm9yU3RyaW5nJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRXJyb3JTdHJpbmcnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lnbm9yZWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSWdub3JlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lnbm9yZWQnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBKb2JzQWN0aW9uT3V0cHV0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic0FjdGlvbk91dHB1dDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QmxvYn0gUmF3Qm9keVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU3RyaW5nQm9keVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jsb2J9IEpzb25Cb2R5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBFcnJvclN0cmluZ1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IElnbm9yZWRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgSm9ic0NvbW1hbmQuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIEpvYnNDb21tYW5kID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBKb2JzQ29tbWFuZCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNDb21tYW5kKTtcblxuICAgICAgICB0aGlzLk5vbmUgPSBcIk5vbmVcIjtcbiAgICAgICAgdGhpcy5QYXVzZSA9IFwiUGF1c2VcIjtcbiAgICAgICAgdGhpcy5SZXN1bWUgPSBcIlJlc3VtZVwiO1xuICAgICAgICB0aGlzLlN0b3AgPSBcIlN0b3BcIjtcbiAgICAgICAgdGhpcy5EZWxldGUgPSBcIkRlbGV0ZVwiO1xuICAgICAgICB0aGlzLlJ1bk9uY2UgPSBcIlJ1bk9uY2VcIjtcbiAgICAgICAgdGhpcy5JbmFjdGl2ZSA9IFwiSW5hY3RpdmVcIjtcbiAgICAgICAgdGhpcy5BY3RpdmUgPSBcIkFjdGl2ZVwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPkpvYnNDb21tYW5kPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic0NvbW1hbmR9IFRoZSBlbnVtIDxjb2RlPkpvYnNDb21tYW5kPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgSm9ic0NvbW1hbmQuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBKb2JzQ29tbWFuZDtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gSm9ic0NvbW1hbmQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIk5vbmVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJQYXVzZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlJlc3VtZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlN0b3BcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJEZWxldGVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJSdW5PbmNlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiSW5hY3RpdmVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBY3RpdmVcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0pvYnNDb21tYW5kID0gcmVxdWlyZSgnLi9Kb2JzQ29tbWFuZCcpO1xuXG52YXIgX0pvYnNDb21tYW5kMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNDb21tYW5kKTtcblxuLyoqXG4qIFRoZSBKb2JzQ3RybENvbW1hbmQgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNDdHJsQ29tbWFuZFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzQ3RybENvbW1hbmQgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzQ3RybENvbW1hbmQ8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzQ3RybENvbW1hbmRcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzQ3RybENvbW1hbmQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzQ3RybENvbW1hbmQpO1xuXG4gICAgICAgIHRoaXMuQ21kID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkpvYklkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRhc2tJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Pd25lcklkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNDdHJsQ29tbWFuZDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNDdHJsQ29tbWFuZDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNDdHJsQ29tbWFuZC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSm9ic0N0cmxDb21tYW5kKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDbWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ21kJ10gPSBfSm9ic0NvbW1hbmQyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydDbWQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSm9iSWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSm9iSWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKb2JJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGFza0lkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Rhc2tJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Rhc2tJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3duZXJJZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPd25lcklkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT3duZXJJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic0NvbW1hbmR9IENtZFxuICAgICovXG4gICAgcmV0dXJuIEpvYnNDdHJsQ29tbWFuZDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNDdHJsQ29tbWFuZDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBKb2JJZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVGFza0lkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPd25lcklkXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNDdHJsQ29tbWFuZFJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic0N0cmxDb21tYW5kUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzQ3RybENvbW1hbmRSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuTXNnID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzQ3RybENvbW1hbmRSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNDdHJsQ29tbWFuZFJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNc2cnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTXNnJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTXNnJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTXNnXG4gICAgKi9cbiAgICByZXR1cm4gSm9ic0N0cmxDb21tYW5kUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzQ3RybENvbW1hbmRSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSm9ic1Rhc2tTdGF0dXMgPSByZXF1aXJlKCcuL0pvYnNUYXNrU3RhdHVzJyk7XG5cbnZhciBfSm9ic1Rhc2tTdGF0dXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic1Rhc2tTdGF0dXMpO1xuXG4vKipcbiogVGhlIEpvYnNEZWxldGVUYXNrc1JlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNEZWxldGVUYXNrc1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNEZWxldGVUYXNrc1JlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNEZWxldGVUYXNrc1JlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuSm9iSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGFza0lEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5QcnVuZUxpbWl0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNEZWxldGVUYXNrc1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNEZWxldGVUYXNrc1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNEZWxldGVUYXNrc1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzRGVsZXRlVGFza3NSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzRGVsZXRlVGFza3NSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKb2JJZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKb2JJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pvYklkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUYXNrSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGFza0lEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGFza0lEJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N0YXR1cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdGF0dXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdGF0dXMnXSwgW19Kb2JzVGFza1N0YXR1czJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BydW5lTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUHJ1bmVMaW1pdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BydW5lTGltaXQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBKb2JJZFxuICAgICovXG4gICAgcmV0dXJuIEpvYnNEZWxldGVUYXNrc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzRGVsZXRlVGFza3NSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gVGFza0lEXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9Kb2JzVGFza1N0YXR1cz59IFN0YXR1c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gUHJ1bmVMaW1pdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzRGVsZXRlVGFza3NSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzRGVsZXRlVGFza3NSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLkRlbGV0ZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Sm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNEZWxldGVUYXNrc1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+Sm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzRGVsZXRlVGFza3NSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0RlbGV0ZWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGVsZXRlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0RlbGV0ZWQnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gRGVsZXRlZFxuICAgICovXG4gICAgcmV0dXJuIEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0pvYnNBY3Rpb24gPSByZXF1aXJlKCcuL0pvYnNBY3Rpb24nKTtcblxudmFyIF9Kb2JzQWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNBY3Rpb24pO1xuXG52YXIgX0pvYnNTY2hlZHVsZSA9IHJlcXVpcmUoJy4vSm9ic1NjaGVkdWxlJyk7XG5cbnZhciBfSm9ic1NjaGVkdWxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNTY2hlZHVsZSk7XG5cbnZhciBfSm9ic1Rhc2sgPSByZXF1aXJlKCcuL0pvYnNUYXNrJyk7XG5cbnZhciBfSm9ic1Rhc2syID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic1Rhc2spO1xuXG4vKipcbiogVGhlIEpvYnNKb2IgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNKb2JcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic0pvYiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNKb2I8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzSm9iXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic0pvYigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNKb2IpO1xuXG4gICAgICAgIHRoaXMuSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3duZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSW5hY3RpdmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFuZ3VhZ2VzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkV2ZW50TmFtZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU2NoZWR1bGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQXV0b1N0YXJ0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF1dG9DbGVhbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BY3Rpb25zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1heENvbmN1cnJlbmN5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRhc2tzU2lsZW50VXBkYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRhc2tzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNKb2I8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNKb2J9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzSm9ifSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNKb2I8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzSm9iLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzSm9iKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPd25lcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPd25lciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ093bmVyJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJbmFjdGl2ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJbmFjdGl2ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0luYWN0aXZlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFuZ3VhZ2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhbmd1YWdlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhbmd1YWdlcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFdmVudE5hbWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0V2ZW50TmFtZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFdmVudE5hbWVzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NjaGVkdWxlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NjaGVkdWxlJ10gPSBfSm9ic1NjaGVkdWxlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnU2NoZWR1bGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXV0b1N0YXJ0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0F1dG9TdGFydCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0F1dG9TdGFydCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0F1dG9DbGVhbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBdXRvQ2xlYW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdXRvQ2xlYW4nXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBY3Rpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FjdGlvbnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBY3Rpb25zJ10sIFtfSm9ic0FjdGlvbjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01heENvbmN1cnJlbmN5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01heENvbmN1cnJlbmN5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWF4Q29uY3VycmVuY3knXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Rhc2tzU2lsZW50VXBkYXRlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Rhc2tzU2lsZW50VXBkYXRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGFza3NTaWxlbnRVcGRhdGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUYXNrcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUYXNrcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Rhc2tzJ10sIFtfSm9ic1Rhc2syWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSURcbiAgICAqL1xuICAgIHJldHVybiBKb2JzSm9iO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic0pvYjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT3duZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBJbmFjdGl2ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBMYW5ndWFnZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gRXZlbnROYW1lc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzU2NoZWR1bGV9IFNjaGVkdWxlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQXV0b1N0YXJ0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQXV0b0NsZWFuXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9Kb2JzQWN0aW9uPn0gQWN0aW9uc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTWF4Q29uY3VycmVuY3lcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBUYXNrc1NpbGVudFVwZGF0ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSm9ic1Rhc2s+fSBUYXNrc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0pvYnNUYXNrU3RhdHVzID0gcmVxdWlyZSgnLi9Kb2JzVGFza1N0YXR1cycpO1xuXG52YXIgX0pvYnNUYXNrU3RhdHVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNUYXNrU3RhdHVzKTtcblxuLyoqXG4qIFRoZSBKb2JzTGlzdEpvYnNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzTGlzdEpvYnNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNMaXN0Sm9ic1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzTGlzdEpvYnNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0xpc3RKb2JzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNMaXN0Sm9ic1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzTGlzdEpvYnNSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk93bmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkV2ZW50c09ubHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGltZXJzT25seSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Mb2FkVGFza3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Sm9ic0xpc3RKb2JzUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0xpc3RKb2JzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNMaXN0Sm9ic1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+Sm9ic0xpc3RKb2JzUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNMaXN0Sm9ic1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNMaXN0Sm9ic1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ093bmVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ093bmVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT3duZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0V2ZW50c09ubHknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRXZlbnRzT25seSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0V2ZW50c09ubHknXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUaW1lcnNPbmx5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RpbWVyc09ubHknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUaW1lcnNPbmx5J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTG9hZFRhc2tzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xvYWRUYXNrcyddID0gX0pvYnNUYXNrU3RhdHVzMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnTG9hZFRhc2tzJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBPd25lclxuICAgICovXG4gICAgcmV0dXJuIEpvYnNMaXN0Sm9ic1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzTGlzdEpvYnNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBFdmVudHNPbmx5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gVGltZXJzT25seVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzVGFza1N0YXR1c30gTG9hZFRhc2tzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfU2VydmljZVF1ZXJ5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUXVlcnknKTtcblxudmFyIF9TZXJ2aWNlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVF1ZXJ5KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgSm9ic05vZGVzU2VsZWN0b3IgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNOb2Rlc1NlbGVjdG9yXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNOb2Rlc1NlbGVjdG9yID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic05vZGVzU2VsZWN0b3I8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzTm9kZXNTZWxlY3RvclxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNOb2Rlc1NlbGVjdG9yKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic05vZGVzU2VsZWN0b3IpO1xuXG4gICAgICAgIHRoaXMuQWxsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhdGhlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2RlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5RdWVyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db2xsZWN0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNOb2Rlc1NlbGVjdG9yPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzTm9kZXNTZWxlY3Rvcn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNOb2Rlc1NlbGVjdG9yfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNOb2Rlc1NlbGVjdG9yPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic05vZGVzU2VsZWN0b3IuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNOb2Rlc1NlbGVjdG9yKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBbGwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWxsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWxsJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGF0aGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BhdGhlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhdGhlcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdRdWVyeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydRdWVyeSddID0gX1NlcnZpY2VRdWVyeTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1F1ZXJ5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbGxlY3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29sbGVjdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvbGxlY3QnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IEFsbFxuICAgICovXG4gICAgcmV0dXJuIEpvYnNOb2Rlc1NlbGVjdG9yO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic05vZGVzU2VsZWN0b3I7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBQYXRoZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVOb2RlPn0gTm9kZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZVF1ZXJ5fSBRdWVyeVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IENvbGxlY3RcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBKb2JzU2NoZWR1bGUgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNTY2hlZHVsZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzU2NoZWR1bGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzU2NoZWR1bGU8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzU2NoZWR1bGVcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzU2NoZWR1bGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzU2NoZWR1bGUpO1xuXG4gICAgICAgIHRoaXMuSXNvODYwMVNjaGVkdWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklzbzg2MDFNaW5EZWx0YSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzU2NoZWR1bGU8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNTY2hlZHVsZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNTY2hlZHVsZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzU2NoZWR1bGU8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzU2NoZWR1bGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNTY2hlZHVsZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNvODYwMVNjaGVkdWxlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lzbzg2MDFTY2hlZHVsZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lzbzg2MDFTY2hlZHVsZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNvODYwMU1pbkRlbHRhJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lzbzg2MDFNaW5EZWx0YSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lzbzg2MDFNaW5EZWx0YSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBJU08gODYwMSBEZXNjcmlwdGlvbiBvZiB0aGUgc2NoZWR1bGluZyBmb3IgaW5zdGFuY2UgXFxcIlIyLzIwMTUtMDYtMDRUMTk6MjU6MTYuODI4Njk2LTA3OjAwL1BUNFNcXFwiIHdoZXJlIGZpcnN0IHBhcnQgaXMgdGhlIG51bWJlciBvZiByZXBldGl0aW9ucyAoaWYgMCwgaW5maW5pdGUgcmVwZXRpdGlvbiksICBzZWNvbmQgcGFydCB0aGUgc3RhcnRpbmcgZGF0ZSBhbmQgbGFzdCBwYXJ0LCB0aGUgZHVyYXRpb24gYmV0d2VlbiAyIG9jY3VycmVuY2VzLlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBJc284NjAxU2NoZWR1bGVcbiAgICAqL1xuICAgIHJldHVybiBKb2JzU2NoZWR1bGU7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzU2NoZWR1bGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSXNvODYwMU1pbkRlbHRhXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfU2VydmljZVF1ZXJ5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUXVlcnknKTtcblxudmFyIF9TZXJ2aWNlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVF1ZXJ5KTtcblxuLyoqXG4qIFRoZSBKb2JzU291cmNlRmlsdGVyIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzU291cmNlRmlsdGVyXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNTb3VyY2VGaWx0ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzU291cmNlRmlsdGVyPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic1NvdXJjZUZpbHRlclxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNTb3VyY2VGaWx0ZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzU291cmNlRmlsdGVyKTtcblxuICAgICAgICB0aGlzLlF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNTb3VyY2VGaWx0ZXI8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNTb3VyY2VGaWx0ZXJ9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzU291cmNlRmlsdGVyfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNTb3VyY2VGaWx0ZXI8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzU291cmNlRmlsdGVyLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzU291cmNlRmlsdGVyKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdRdWVyeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydRdWVyeSddID0gX1NlcnZpY2VRdWVyeTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1F1ZXJ5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1NlcnZpY2VRdWVyeX0gUXVlcnlcbiAgICAqL1xuICAgIHJldHVybiBKb2JzU291cmNlRmlsdGVyO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic1NvdXJjZUZpbHRlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSm9ic0FjdGlvbkxvZyA9IHJlcXVpcmUoJy4vSm9ic0FjdGlvbkxvZycpO1xuXG52YXIgX0pvYnNBY3Rpb25Mb2cyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic0FjdGlvbkxvZyk7XG5cbnZhciBfSm9ic1Rhc2tTdGF0dXMgPSByZXF1aXJlKCcuL0pvYnNUYXNrU3RhdHVzJyk7XG5cbnZhciBfSm9ic1Rhc2tTdGF0dXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic1Rhc2tTdGF0dXMpO1xuXG4vKipcbiogVGhlIEpvYnNUYXNrIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzVGFza1xuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzVGFzayA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNUYXNrPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic1Rhc2tcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzVGFzaygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNUYXNrKTtcblxuICAgICAgICB0aGlzLklEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkpvYklEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdGF0dXNNZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRyaWdnZXJPd25lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdGFydFRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRW5kVGltZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DYW5TdG9wID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNhblBhdXNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkhhc1Byb2dyZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlByb2dyZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFjdGlvbnNMb2dzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNUYXNrPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzVGFza30gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNUYXNrfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNUYXNrPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic1Rhc2suY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNUYXNrKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKb2JJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKb2JJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pvYklEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdGF0dXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RhdHVzJ10gPSBfSm9ic1Rhc2tTdGF0dXMyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydTdGF0dXMnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RhdHVzTWVzc2FnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdGF0dXNNZXNzYWdlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3RhdHVzTWVzc2FnZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVHJpZ2dlck93bmVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RyaWdnZXJPd25lciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RyaWdnZXJPd25lciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RhcnRUaW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N0YXJ0VGltZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N0YXJ0VGltZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRW5kVGltZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFbmRUaW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRW5kVGltZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2FuU3RvcCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDYW5TdG9wJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2FuU3RvcCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NhblBhdXNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NhblBhdXNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2FuUGF1c2UnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdIYXNQcm9ncmVzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydIYXNQcm9ncmVzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0hhc1Byb2dyZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUHJvZ3Jlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUHJvZ3Jlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQcm9ncmVzcyddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWN0aW9uc0xvZ3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWN0aW9uc0xvZ3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBY3Rpb25zTG9ncyddLCBbX0pvYnNBY3Rpb25Mb2cyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSURcbiAgICAqL1xuICAgIHJldHVybiBKb2JzVGFzaztcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNUYXNrO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEpvYklEXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0pvYnNUYXNrU3RhdHVzfSBTdGF0dXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFN0YXR1c01lc3NhZ2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFRyaWdnZXJPd25lclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gU3RhcnRUaW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBFbmRUaW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQ2FuU3RvcFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IENhblBhdXNlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSGFzUHJvZ3Jlc3NcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFByb2dyZXNzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9Kb2JzQWN0aW9uTG9nPn0gQWN0aW9uc0xvZ3NcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgSm9ic1Rhc2tTdGF0dXMuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIEpvYnNUYXNrU3RhdHVzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBKb2JzVGFza1N0YXR1cygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNUYXNrU3RhdHVzKTtcblxuICAgICAgICB0aGlzLlVua25vd24gPSBcIlVua25vd25cIjtcbiAgICAgICAgdGhpcy5JZGxlID0gXCJJZGxlXCI7XG4gICAgICAgIHRoaXMuUnVubmluZyA9IFwiUnVubmluZ1wiO1xuICAgICAgICB0aGlzLkZpbmlzaGVkID0gXCJGaW5pc2hlZFwiO1xuICAgICAgICB0aGlzLkludGVycnVwdGVkID0gXCJJbnRlcnJ1cHRlZFwiO1xuICAgICAgICB0aGlzLlBhdXNlZCA9IFwiUGF1c2VkXCI7XG4gICAgICAgIHRoaXMuQW55ID0gXCJBbnlcIjtcbiAgICAgICAgdGhpcy5FcnJvciA9IFwiRXJyb3JcIjtcbiAgICAgICAgdGhpcy5RdWV1ZWQgPSBcIlF1ZXVlZFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPkpvYnNUYXNrU3RhdHVzPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic1Rhc2tTdGF0dXN9IFRoZSBlbnVtIDxjb2RlPkpvYnNUYXNrU3RhdHVzPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgSm9ic1Rhc2tTdGF0dXMuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBKb2JzVGFza1N0YXR1cztcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gSm9ic1Rhc2tTdGF0dXM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIlVua25vd25cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJJZGxlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUnVubmluZ1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkZpbmlzaGVkXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiSW50ZXJydXB0ZWRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJQYXVzZWRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBbnlcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJFcnJvclwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlF1ZXVlZFwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtVXNlciA9IHJlcXVpcmUoJy4vSWRtVXNlcicpO1xuXG52YXIgX0lkbVVzZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtVXNlcik7XG5cbnZhciBfU2VydmljZVF1ZXJ5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUXVlcnknKTtcblxudmFyIF9TZXJ2aWNlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVF1ZXJ5KTtcblxuLyoqXG4qIFRoZSBKb2JzVXNlcnNTZWxlY3RvciBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSm9ic1VzZXJzU2VsZWN0b3JcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic1VzZXJzU2VsZWN0b3IgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzVXNlcnNTZWxlY3RvcjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0pvYnNVc2Vyc1NlbGVjdG9yXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic1VzZXJzU2VsZWN0b3IoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzVXNlcnNTZWxlY3Rvcik7XG5cbiAgICAgICAgdGhpcy5BbGwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29sbGVjdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzVXNlcnNTZWxlY3RvcjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic1VzZXJzU2VsZWN0b3J9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzVXNlcnNTZWxlY3Rvcn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzVXNlcnNTZWxlY3RvcjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNVc2Vyc1NlbGVjdG9yLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzVXNlcnNTZWxlY3RvcigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWxsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FsbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FsbCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlcnMnXSwgW19JZG1Vc2VyMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUXVlcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUXVlcnknXSA9IF9TZXJ2aWNlUXVlcnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydRdWVyeSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb2xsZWN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbGxlY3QnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb2xsZWN0J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBBbGxcbiAgICAqL1xuICAgIHJldHVybiBKb2JzVXNlcnNTZWxlY3Rvcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNVc2Vyc1NlbGVjdG9yO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVVzZXI+fSBVc2Vyc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9TZXJ2aWNlUXVlcnl9IFF1ZXJ5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQ29sbGVjdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBMaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdC5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIExpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQpO1xuXG4gICAgICAgIHRoaXMuSlNPTiA9IFwiSlNPTlwiO1xuICAgICAgICB0aGlzLkNTViA9IFwiQ1NWXCI7XG4gICAgICAgIHRoaXMuWExTWCA9IFwiWExTWFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPkxpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0PC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXR9IFRoZSBlbnVtIDxjb2RlPkxpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0PC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBMaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdDtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkpTT05cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJDU1ZcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJYTFNYXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZSk7XG5cbiAgICAgICAgdGhpcy5BTlkgPSBcIkFOWVwiO1xuICAgICAgICB0aGlzLkxJTktTID0gXCJMSU5LU1wiO1xuICAgICAgICB0aGlzLkNFTExTID0gXCJDRUxMU1wiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPkxpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZX0gVGhlIGVudW0gPGNvZGU+TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkFOWVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkxJTktTXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQ0VMTFNcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RDZWxsID0gcmVxdWlyZSgnLi9SZXN0Q2VsbCcpO1xuXG52YXIgX1Jlc3RDZWxsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RDZWxsKTtcblxudmFyIF9SZXN0U2hhcmVMaW5rID0gcmVxdWlyZSgnLi9SZXN0U2hhcmVMaW5rJyk7XG5cbnZhciBfUmVzdFNoYXJlTGluazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0U2hhcmVMaW5rKTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UpO1xuXG4gICAgICAgIHRoaXMuTm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaW5rID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNlbGxzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkxpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkxpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGUnXSA9IF9UcmVlTm9kZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ05vZGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGluaycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW5rJ10gPSBfUmVzdFNoYXJlTGluazJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0xpbmsnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2VsbHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2VsbHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDZWxscyddLCBbX1Jlc3RDZWxsMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IE5vZGVcbiAgICAqL1xuICAgIHJldHVybiBMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua30gTGlua1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvUmVzdENlbGw+fSBDZWxsc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0xpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0ID0gcmVxdWlyZSgnLi9MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCcpO1xuXG52YXIgX0xpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0xpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0KTtcblxuLyoqXG4qIFRoZSBMb2dMaXN0TG9nUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvTG9nTGlzdExvZ1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgTG9nTGlzdExvZ1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Mb2dMaXN0TG9nUmVxdWVzdDwvY29kZT4uXG4gICAgKiBMaXN0TG9nUmVxdWVzdCBsYXVuY2hlcyBhIHBhcmFtZXRlcmlzZWQgcXVlcnkgaW4gdGhlIGxvZyByZXBvc2l0b3J5IGFuZCBzdHJlYW1zIHRoZSByZXN1bHRzLlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Mb2dMaXN0TG9nUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIExvZ0xpc3RMb2dSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9nTGlzdExvZ1JlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuUXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGFnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TaXplID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Mb2dMaXN0TG9nUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvTG9nTGlzdExvZ1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Mb2dMaXN0TG9nUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Mb2dMaXN0TG9nUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIExvZ0xpc3RMb2dSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBMb2dMaXN0TG9nUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUXVlcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUXVlcnknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydRdWVyeSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYWdlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGFnZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2l6ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTaXplJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2l6ZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRm9ybWF0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Zvcm1hdCddID0gX0xpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnRm9ybWF0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBRdWVyeVxuICAgICovXG4gICAgcmV0dXJuIExvZ0xpc3RMb2dSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTG9nTGlzdExvZ1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gUGFnZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gU2l6ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdH0gRm9ybWF0XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgTG9nTG9nTWVzc2FnZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvTG9nTG9nTWVzc2FnZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBMb2dMb2dNZXNzYWdlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TG9nTG9nTWVzc2FnZTwvY29kZT4uXG4gICAgKiBMb2dNZXNzYWdlIGlzIHRoZSBmb3JtYXQgdXNlZCB0byB0cmFuc21pdCBsb2cgbWVzc2FnZXMgdG8gY2xpZW50cyB2aWEgdGhlIFJFU1QgQVBJLlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Mb2dMb2dNZXNzYWdlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gTG9nTG9nTWVzc2FnZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExvZ0xvZ01lc3NhZ2UpO1xuXG4gICAgICAgIHRoaXMuVHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGV2ZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTG9nZ2VyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1zZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Nc2dJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2VyTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2VyVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Hcm91cFBhdGggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUHJvZmlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Sb2xlVXVpZHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmVtb3RlQWRkcmVzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2VyQWdlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSHR0cFByb3RvY29sID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVVdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldzVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Xc1Njb3BlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNwYW5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNwYW5QYXJlbnRVdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNwYW5Sb290VXVpZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Mb2dMb2dNZXNzYWdlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Mb2dMb2dNZXNzYWdlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvTG9nTG9nTWVzc2FnZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Mb2dMb2dNZXNzYWdlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgTG9nTG9nTWVzc2FnZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgTG9nTG9nTWVzc2FnZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUcyddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGV2ZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGV2ZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMZXZlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTG9nZ2VyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xvZ2dlciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xvZ2dlciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTXNnJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01zZyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01zZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTXNnSWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTXNnSWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNc2dJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlck5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlck5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVc2VyTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlclV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlclV1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVc2VyVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR3JvdXBQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0dyb3VwUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUHJvZmlsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQcm9maWxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUHJvZmlsZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUm9sZVV1aWRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JvbGVVdWlkcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1JvbGVVdWlkcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZW1vdGVBZGRyZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JlbW90ZUFkZHJlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZW1vdGVBZGRyZXNzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VyQWdlbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlckFnZW50J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlckFnZW50J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdIdHRwUHJvdG9jb2wnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSHR0cFByb3RvY29sJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSHR0cFByb3RvY29sJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlUGF0aCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVQYXRoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdXc1V1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV3NVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV3NVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdXc1Njb3BlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dzU2NvcGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXc1Njb3BlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTcGFuVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTcGFuVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NwYW5VdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTcGFuUGFyZW50VXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTcGFuUGFyZW50VXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NwYW5QYXJlbnRVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTcGFuUm9vdFV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3BhblJvb3RVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3BhblJvb3RVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge051bWJlcn0gVHNcbiAgICAqL1xuICAgIHJldHVybiBMb2dMb2dNZXNzYWdlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTG9nTG9nTWVzc2FnZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMZXZlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTG9nZ2VyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNc2dcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1zZ0lkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBVc2VyTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVXNlclV1aWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEdyb3VwUGF0aFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUHJvZmlsZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBSb2xlVXVpZHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFJlbW90ZUFkZHJlc3NcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFVzZXJBZ2VudFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSHR0cFByb3RvY29sXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBOb2RlVXVpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTm9kZVBhdGhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFdzVXVpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gV3NTY29wZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU3BhblV1aWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFNwYW5QYXJlbnRVdWlkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBTcGFuUm9vdFV1aWRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9NYWlsZXJVc2VyID0gcmVxdWlyZSgnLi9NYWlsZXJVc2VyJyk7XG5cbnZhciBfTWFpbGVyVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9NYWlsZXJVc2VyKTtcblxuLyoqXG4qIFRoZSBNYWlsZXJNYWlsIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9NYWlsZXJNYWlsXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIE1haWxlck1haWwgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5NYWlsZXJNYWlsPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvTWFpbGVyTWFpbFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIE1haWxlck1haWwoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNYWlsZXJNYWlsKTtcblxuICAgICAgICB0aGlzLkZyb20gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVG8gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ2MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGF0ZVNlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3ViamVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db250ZW50UGxhaW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29udGVudEh0bWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29udGVudE1hcmtkb3duID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF0dGFjaG1lbnRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRocmVhZFV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGhyZWFkSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGVtcGxhdGVJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UZW1wbGF0ZURhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmV0cmllcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zZW5kRXJyb3JzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPk1haWxlck1haWw8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL01haWxlck1haWx9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9NYWlsZXJNYWlsfSBUaGUgcG9wdWxhdGVkIDxjb2RlPk1haWxlck1haWw8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBNYWlsZXJNYWlsLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBNYWlsZXJNYWlsKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdGcm9tJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Zyb20nXSA9IF9NYWlsZXJVc2VyMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnRnJvbSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUbycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUbyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RvJ10sIFtfTWFpbGVyVXNlcjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NjJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NjJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2MnXSwgW19NYWlsZXJVc2VyMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGF0ZVNlbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGF0ZVNlbnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEYXRlU2VudCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3ViamVjdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWJqZWN0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3ViamVjdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29udGVudFBsYWluJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbnRlbnRQbGFpbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvbnRlbnRQbGFpbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29udGVudEh0bWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29udGVudEh0bWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb250ZW50SHRtbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29udGVudE1hcmtkb3duJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbnRlbnRNYXJrZG93biddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvbnRlbnRNYXJrZG93biddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXR0YWNobWVudHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQXR0YWNobWVudHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdHRhY2htZW50cyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUaHJlYWRVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RocmVhZFV1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUaHJlYWRVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUaHJlYWRJbmRleCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUaHJlYWRJbmRleCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RocmVhZEluZGV4J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUZW1wbGF0ZUlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RlbXBsYXRlSWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUZW1wbGF0ZUlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUZW1wbGF0ZURhdGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGVtcGxhdGVEYXRhJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGVtcGxhdGVEYXRhJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JldHJpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmV0cmllcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1JldHJpZXMnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3NlbmRFcnJvcnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc2VuZEVycm9ycyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3NlbmRFcnJvcnMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvTWFpbGVyVXNlcn0gRnJvbVxuICAgICovXG4gICAgcmV0dXJuIE1haWxlck1haWw7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBNYWlsZXJNYWlsO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL01haWxlclVzZXI+fSBUb1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvTWFpbGVyVXNlcj59IENjXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBEYXRlU2VudFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU3ViamVjdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQ29udGVudFBsYWluXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBDb250ZW50SHRtbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQ29udGVudE1hcmtkb3duXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IEF0dGFjaG1lbnRzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBUaHJlYWRVdWlkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBUaHJlYWRJbmRleFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVGVtcGxhdGVJZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBUZW1wbGF0ZURhdGFcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFJldHJpZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gc2VuZEVycm9yc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIE1haWxlclNlbmRNYWlsUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL01haWxlclNlbmRNYWlsUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgTWFpbGVyU2VuZE1haWxSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk1haWxlclNlbmRNYWlsUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9NYWlsZXJTZW5kTWFpbFJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gTWFpbGVyU2VuZE1haWxSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1haWxlclNlbmRNYWlsUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5NYWlsZXJTZW5kTWFpbFJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9NYWlsZXJTZW5kTWFpbFJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvTWFpbGVyU2VuZE1haWxSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5NYWlsZXJTZW5kTWFpbFJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgTWFpbGVyU2VuZE1haWxSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgTWFpbGVyU2VuZE1haWxSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIE1haWxlclNlbmRNYWlsUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBNYWlsZXJTZW5kTWFpbFJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBNYWlsZXJVc2VyIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9NYWlsZXJVc2VyXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIE1haWxlclVzZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5NYWlsZXJVc2VyPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvTWFpbGVyVXNlclxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIE1haWxlclVzZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNYWlsZXJVc2VyKTtcblxuICAgICAgICB0aGlzLlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWRkcmVzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5OYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhbmd1YWdlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPk1haWxlclVzZXI8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL01haWxlclVzZXJ9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9NYWlsZXJVc2VyfSBUaGUgcG9wdWxhdGVkIDxjb2RlPk1haWxlclVzZXI8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBNYWlsZXJVc2VyLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBNYWlsZXJVc2VyKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBZGRyZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FkZHJlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBZGRyZXNzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYW5ndWFnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYW5ndWFnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhbmd1YWdlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIE1haWxlclVzZXI7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBNYWlsZXJVc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEFkZHJlc3NcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExhbmd1YWdlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZS5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBOb2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBOb2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUpO1xuXG4gICAgICAgIHRoaXMuQ1JFQVRFID0gXCJDUkVBVEVcIjtcbiAgICAgICAgdGhpcy5SRUFEID0gXCJSRUFEXCI7XG4gICAgICAgIHRoaXMuVVBEQVRFX1BBVEggPSBcIlVQREFURV9QQVRIXCI7XG4gICAgICAgIHRoaXMuVVBEQVRFX0NPTlRFTlQgPSBcIlVQREFURV9DT05URU5UXCI7XG4gICAgICAgIHRoaXMuVVBEQVRFX01FVEEgPSBcIlVQREFURV9NRVRBXCI7XG4gICAgICAgIHRoaXMuREVMRVRFID0gXCJERUxFVEVcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGV9IFRoZSBlbnVtIDxjb2RlPk5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJDUkVBVEVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJSRUFEXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVVBEQVRFX1BBVEhcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJVUERBVEVfQ09OVEVOVFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlVQREFURV9NRVRBXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiREVMRVRFXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9PYmplY3RFbmNyeXB0aW9uTW9kZSA9IHJlcXVpcmUoJy4vT2JqZWN0RW5jcnlwdGlvbk1vZGUnKTtcblxudmFyIF9PYmplY3RFbmNyeXB0aW9uTW9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9PYmplY3RFbmNyeXB0aW9uTW9kZSk7XG5cbnZhciBfT2JqZWN0U3RvcmFnZVR5cGUgPSByZXF1aXJlKCcuL09iamVjdFN0b3JhZ2VUeXBlJyk7XG5cbnZhciBfT2JqZWN0U3RvcmFnZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfT2JqZWN0U3RvcmFnZVR5cGUpO1xuXG4vKipcbiogVGhlIE9iamVjdERhdGFTb3VyY2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL09iamVjdERhdGFTb3VyY2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgT2JqZWN0RGF0YVNvdXJjZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk9iamVjdERhdGFTb3VyY2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gT2JqZWN0RGF0YVNvdXJjZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE9iamVjdERhdGFTb3VyY2UpO1xuXG4gICAgICAgIHRoaXMuTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EaXNhYmxlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdG9yYWdlVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdG9yYWdlQ29uZmlndXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PYmplY3RzU2VydmljZU5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2JqZWN0c0hvc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2JqZWN0c1BvcnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2JqZWN0c1NlY3VyZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PYmplY3RzQnVja2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9iamVjdHNCYXNlRm9sZGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFwaUtleSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BcGlTZWNyZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGVlckFkZHJlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuV2F0Y2ggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRW5jcnlwdGlvbk1vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRW5jcnlwdGlvbktleSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5WZXJzaW9uaW5nUG9saWN5TmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DcmVhdGlvbkRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFzdFN5bmNocm9uaXphdGlvbkRhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+T2JqZWN0RGF0YVNvdXJjZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvT2JqZWN0RGF0YVNvdXJjZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+T2JqZWN0RGF0YVNvdXJjZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIE9iamVjdERhdGFTb3VyY2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IE9iamVjdERhdGFTb3VyY2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rpc2FibGVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Rpc2FibGVkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGlzYWJsZWQnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdG9yYWdlVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdG9yYWdlVHlwZSddID0gX09iamVjdFN0b3JhZ2VUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnU3RvcmFnZVR5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RvcmFnZUNvbmZpZ3VyYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RvcmFnZUNvbmZpZ3VyYXRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdG9yYWdlQ29uZmlndXJhdGlvbiddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPYmplY3RzU2VydmljZU5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2JqZWN0c1NlcnZpY2VOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2JqZWN0c1NlcnZpY2VOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPYmplY3RzSG9zdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPYmplY3RzSG9zdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09iamVjdHNIb3N0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPYmplY3RzUG9ydCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPYmplY3RzUG9ydCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09iamVjdHNQb3J0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPYmplY3RzU2VjdXJlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09iamVjdHNTZWN1cmUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPYmplY3RzU2VjdXJlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0c0J1Y2tldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPYmplY3RzQnVja2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2JqZWN0c0J1Y2tldCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0c0Jhc2VGb2xkZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2JqZWN0c0Jhc2VGb2xkZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPYmplY3RzQmFzZUZvbGRlciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXBpS2V5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FwaUtleSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FwaUtleSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXBpU2VjcmV0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FwaVNlY3JldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FwaVNlY3JldCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGVlckFkZHJlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGVlckFkZHJlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQZWVyQWRkcmVzcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV2F0Y2gnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV2F0Y2gnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXYXRjaCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0VuY3J5cHRpb25Nb2RlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0VuY3J5cHRpb25Nb2RlJ10gPSBfT2JqZWN0RW5jcnlwdGlvbk1vZGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydFbmNyeXB0aW9uTW9kZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFbmNyeXB0aW9uS2V5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0VuY3J5cHRpb25LZXknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFbmNyeXB0aW9uS2V5J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdWZXJzaW9uaW5nUG9saWN5TmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydWZXJzaW9uaW5nUG9saWN5TmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1ZlcnNpb25pbmdQb2xpY3lOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDcmVhdGlvbkRhdGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ3JlYXRpb25EYXRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ3JlYXRpb25EYXRlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYXN0U3luY2hyb25pemF0aW9uRGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYXN0U3luY2hyb25pemF0aW9uRGF0ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhc3RTeW5jaHJvbml6YXRpb25EYXRlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTmFtZVxuICAgICovXG4gICAgcmV0dXJuIE9iamVjdERhdGFTb3VyY2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBPYmplY3REYXRhU291cmNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBEaXNhYmxlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9PYmplY3RTdG9yYWdlVHlwZX0gU3RvcmFnZVR5cGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gU3RvcmFnZUNvbmZpZ3VyYXRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9iamVjdHNTZXJ2aWNlTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT2JqZWN0c0hvc3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IE9iamVjdHNQb3J0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gT2JqZWN0c1NlY3VyZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT2JqZWN0c0J1Y2tldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT2JqZWN0c0Jhc2VGb2xkZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEFwaUtleVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQXBpU2VjcmV0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBQZWVyQWRkcmVzc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFdhdGNoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL09iamVjdEVuY3J5cHRpb25Nb2RlfSBFbmNyeXB0aW9uTW9kZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRW5jcnlwdGlvbktleVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVmVyc2lvbmluZ1BvbGljeU5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IENyZWF0aW9uRGF0ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTGFzdFN5bmNocm9uaXphdGlvbkRhdGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgT2JqZWN0RW5jcnlwdGlvbk1vZGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIE9iamVjdEVuY3J5cHRpb25Nb2RlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBPYmplY3RFbmNyeXB0aW9uTW9kZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE9iamVjdEVuY3J5cHRpb25Nb2RlKTtcblxuICAgICAgICB0aGlzLkNMRUFSID0gXCJDTEVBUlwiO1xuICAgICAgICB0aGlzLk1BU1RFUiA9IFwiTUFTVEVSXCI7XG4gICAgICAgIHRoaXMuVVNFUiA9IFwiVVNFUlwiO1xuICAgICAgICB0aGlzLlVTRVJfUFdEID0gXCJVU0VSX1BXRFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPk9iamVjdEVuY3J5cHRpb25Nb2RlPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvT2JqZWN0RW5jcnlwdGlvbk1vZGV9IFRoZSBlbnVtIDxjb2RlPk9iamVjdEVuY3J5cHRpb25Nb2RlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgT2JqZWN0RW5jcnlwdGlvbk1vZGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBPYmplY3RFbmNyeXB0aW9uTW9kZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gT2JqZWN0RW5jcnlwdGlvbk1vZGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkNMRUFSXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTUFTVEVSXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVVNFUlwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlVTRVJfUFdEXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgT2JqZWN0U3RvcmFnZVR5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIE9iamVjdFN0b3JhZ2VUeXBlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBPYmplY3RTdG9yYWdlVHlwZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE9iamVjdFN0b3JhZ2VUeXBlKTtcblxuICAgICAgICB0aGlzLkxPQ0FMID0gXCJMT0NBTFwiO1xuICAgICAgICB0aGlzLlMzID0gXCJTM1wiO1xuICAgICAgICB0aGlzLlNNQiA9IFwiU01CXCI7XG4gICAgICAgIHRoaXMuQ0VMTFMgPSBcIkNFTExTXCI7XG4gICAgICAgIHRoaXMuQVpVUkUgPSBcIkFaVVJFXCI7XG4gICAgICAgIHRoaXMuR0NTID0gXCJHQ1NcIjtcbiAgICAgICAgdGhpcy5CMiA9IFwiQjJcIjtcbiAgICAgICAgdGhpcy5NQU5UQSA9IFwiTUFOVEFcIjtcbiAgICAgICAgdGhpcy5TSUEgPSBcIlNJQVwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPk9iamVjdFN0b3JhZ2VUeXBlPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvT2JqZWN0U3RvcmFnZVR5cGV9IFRoZSBlbnVtIDxjb2RlPk9iamVjdFN0b3JhZ2VUeXBlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgT2JqZWN0U3RvcmFnZVR5cGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBPYmplY3RTdG9yYWdlVHlwZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gT2JqZWN0U3RvcmFnZVR5cGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkxPQ0FMXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUzNcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJTTUJcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJDRUxMU1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkFaVVJFXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiR0NTXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQjJcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJNQU5UQVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlNJQVwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIFBhY2thZ2VQYWNrYWdlU3RhdHVzLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBQYWNrYWdlUGFja2FnZVN0YXR1cyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUGFja2FnZVBhY2thZ2VTdGF0dXMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQYWNrYWdlUGFja2FnZVN0YXR1cyk7XG5cbiAgICAgICAgdGhpcy5EcmFmdCA9IFwiRHJhZnRcIjtcbiAgICAgICAgdGhpcy5QZW5kaW5nID0gXCJQZW5kaW5nXCI7XG4gICAgICAgIHRoaXMuUmVsZWFzZWQgPSBcIlJlbGVhc2VkXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+UGFja2FnZVBhY2thZ2VTdGF0dXM8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9QYWNrYWdlUGFja2FnZVN0YXR1c30gVGhlIGVudW0gPGNvZGU+UGFja2FnZVBhY2thZ2VTdGF0dXM8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBQYWNrYWdlUGFja2FnZVN0YXR1cy5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFBhY2thZ2VQYWNrYWdlU3RhdHVzO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBQYWNrYWdlUGFja2FnZVN0YXR1cztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiRHJhZnRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJQZW5kaW5nXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUmVsZWFzZWRcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFByb3RvYnVmQW55IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Qcm90b2J1ZkFueVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBQcm90b2J1ZkFueSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlByb3RvYnVmQW55PC9jb2RlPi5cbiAgICAqICYjeDYwO0FueSYjeDYwOyBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEgVVJMIHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkIG1lc3NhZ2UuICBQcm90b2J1ZiBsaWJyYXJ5IHByb3ZpZGVzIHN1cHBvcnQgdG8gcGFjay91bnBhY2sgQW55IHZhbHVlcyBpbiB0aGUgZm9ybSBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4gIEV4YW1wbGUgMTogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBDKysuICAgICAgRm9vIGZvbyAmI3gzRDsgLi4uOyAgICAgQW55IGFueTsgICAgIGFueS5QYWNrRnJvbShmb28pOyAgICAgLi4uICAgICBpZiAoYW55LlVucGFja1RvKCZhbXA7Zm9vKSkgeyAgICAgICAuLi4gICAgIH0gIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLiAgICAgIEZvbyBmb28gJiN4M0Q7IC4uLjsgICAgIEFueSBhbnkgJiN4M0Q7IEFueS5wYWNrKGZvbyk7ICAgICAuLi4gICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgeyAgICAgICBmb28gJiN4M0Q7IGFueS51bnBhY2soRm9vLmNsYXNzKTsgICAgIH0gICBFeGFtcGxlIDM6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gUHl0aG9uLiAgICAgIGZvbyAmI3gzRDsgRm9vKC4uLikgICAgIGFueSAmI3gzRDsgQW55KCkgICAgIGFueS5QYWNrKGZvbykgICAgIC4uLiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKTogICAgICAgYW55LlVucGFjayhmb28pICAgICAgIC4uLiAgIEV4YW1wbGUgNDogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBHbyAgICAgICBmb28gOiYjeDNEOyAmYW1wO3BiLkZvb3suLi59ICAgICAgYW55LCBlcnIgOiYjeDNEOyBwdHlwZXMuTWFyc2hhbEFueShmb28pICAgICAgLi4uICAgICAgZm9vIDomI3gzRDsgJmFtcDtwYi5Gb297fSAgICAgIGlmIGVyciA6JiN4M0Q7IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgISYjeDNEOyBuaWwgeyAgICAgICAgLi4uICAgICAgfSAgVGhlIHBhY2sgbWV0aG9kcyBwcm92aWRlZCBieSBwcm90b2J1ZiBsaWJyYXJ5IHdpbGwgYnkgZGVmYXVsdCB1c2UgJiMzOTt0eXBlLmdvb2dsZWFwaXMuY29tL2Z1bGwudHlwZS5uYW1lJiMzOTsgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrIG1ldGhvZHMgb25seSB1c2UgdGhlIGZ1bGx5IHF1YWxpZmllZCB0eXBlIG5hbWUgYWZ0ZXIgdGhlIGxhc3QgJiMzOTsvJiMzOTsgaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSBcXCZxdW90O2Zvby5iYXIuY29tL3gveS56XFwmcXVvdDsgd2lsbCB5aWVsZCB0eXBlIG5hbWUgXFwmcXVvdDt5LnpcXCZxdW90Oy4gICBKU09OICYjeDNEOyYjeDNEOyYjeDNEOyYjeDNEOyBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhbiAmI3g2MDtBbnkmI3g2MDsgdmFsdWUgdXNlcyB0aGUgcmVndWxhciByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVzZXJpYWxpemVkLCBlbWJlZGRlZCBtZXNzYWdlLCB3aXRoIGFuIGFkZGl0aW9uYWwgZmllbGQgJiN4NjA7QHR5cGUmI3g2MDsgd2hpY2ggY29udGFpbnMgdGhlIHR5cGUgVVJMLiBFeGFtcGxlOiAgICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7ICAgICBtZXNzYWdlIFBlcnNvbiB7ICAgICAgIHN0cmluZyBmaXJzdF9uYW1lICYjeDNEOyAxOyAgICAgICBzdHJpbmcgbGFzdF9uYW1lICYjeDNEOyAyOyAgICAgfSAgICAgIHsgICAgICAgXFwmcXVvdDtAdHlwZVxcJnF1b3Q7OiBcXCZxdW90O3R5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb2ZpbGUuUGVyc29uXFwmcXVvdDssICAgICAgIFxcJnF1b3Q7Zmlyc3ROYW1lXFwmcXVvdDs6ICZsdDtzdHJpbmcmZ3Q7LCAgICAgICBcXCZxdW90O2xhc3ROYW1lXFwmcXVvdDs6ICZsdDtzdHJpbmcmZ3Q7ICAgICB9ICBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OIHJlcHJlc2VudGF0aW9uLCB0aGF0IHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgZW1iZWRkZWQgYWRkaW5nIGEgZmllbGQgJiN4NjA7dmFsdWUmI3g2MDsgd2hpY2ggaG9sZHMgdGhlIGN1c3RvbSBKU09OIGluIGFkZGl0aW9uIHRvIHRoZSAmI3g2MDtAdHlwZSYjeDYwOyBmaWVsZC4gRXhhbXBsZSAoZm9yIG1lc3NhZ2UgW2dvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbl1bXSk6ICAgICAgeyAgICAgICBcXCZxdW90O0B0eXBlXFwmcXVvdDs6IFxcJnF1b3Q7dHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb25cXCZxdW90OywgICAgICAgXFwmcXVvdDt2YWx1ZVxcJnF1b3Q7OiBcXCZxdW90OzEuMjEyc1xcJnF1b3Q7ICAgICB9XG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Byb3RvYnVmQW55XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUHJvdG9idWZBbnkoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQcm90b2J1ZkFueSk7XG5cbiAgICAgICAgdGhpcy50eXBlX3VybCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Qcm90b2J1ZkFueTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUHJvdG9idWZBbnl9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Qcm90b2J1ZkFueX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Qcm90b2J1ZkFueTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFByb3RvYnVmQW55LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBQcm90b2J1ZkFueSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndHlwZV91cmwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsndHlwZV91cmwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWyd0eXBlX3VybCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndmFsdWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsndmFsdWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWyd2YWx1ZSddLCAnQmxvYicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQSBVUkwvcmVzb3VyY2UgbmFtZSB3aG9zZSBjb250ZW50IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gIEZvciBVUkxzIHdoaWNoIHVzZSB0aGUgc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9ucyBhbmQgaW50ZXJwcmV0YXRpb25zIGFwcGx5OiAgKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4gKiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50IHRoZSBmdWxseSAgIHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gICBUaGUgbmFtZSBzaG91bGQgYmUgaW4gYSBjYW5vbmljYWwgZm9ybSAoZS5nLiwgbGVhZGluZyBcXFwiLlxcXCIgaXMgICBub3QgYWNjZXB0ZWQpLiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXSAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuICogQXBwbGljYXRpb25zIGFyZSBhbGxvd2VkIHRvIGNhY2hlIGxvb2t1cCByZXN1bHRzIGJhc2VkIG9uIHRoZSAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55ICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZCAgIG9uIGNoYW5nZXMgdG8gdHlwZXMuIChVc2UgdmVyc2lvbmVkIHR5cGUgbmFtZXMgdG8gbWFuYWdlICAgYnJlYWtpbmcgY2hhbmdlcy4pICBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZSB1c2VkIHdpdGggaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgc2VtYW50aWNzLlxuICAgICogQG1lbWJlciB7U3RyaW5nfSB0eXBlX3VybFxuICAgICovXG4gICAgcmV0dXJuIFByb3RvYnVmQW55O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUHJvdG9idWZBbnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuXG4qIEBtZW1iZXIge0Jsb2J9IHZhbHVlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlKTtcblxuICAgICAgICB0aGlzLkNPTlRFWFQgPSBcIkNPTlRFWFRcIjtcbiAgICAgICAgdGhpcy5BTlkgPSBcIkFOWVwiO1xuICAgICAgICB0aGlzLk5PTkUgPSBcIk5PTkVcIjtcbiAgICAgICAgdGhpcy5VU0VSID0gXCJVU0VSXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+UmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGV9IFRoZSBlbnVtIDxjb2RlPlJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGU8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBSZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiQ09OVEVYVFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkFOWVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk5PTkVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJVU0VSXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1BQ0wgPSByZXF1aXJlKCcuL0lkbUFDTCcpO1xuXG52YXIgX0lkbUFDTDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1BQ0wpO1xuXG4vKipcbiogVGhlIFJlc3RBQ0xDb2xsZWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0QUNMQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0QUNMQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RBQ0xDb2xsZWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEFDTENvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0QUNMQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RBQ0xDb2xsZWN0aW9uKTtcblxuICAgICAgICB0aGlzLkFDTHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVG90YWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEFDTENvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RBQ0xDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEFDTENvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEFDTENvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0QUNMQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEFDTENvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FDTHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQUNMcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FDTHMnXSwgW19JZG1BQ0wyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb3RhbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUb3RhbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RvdGFsJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtQUNMPn0gQUNMc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RBQ0xDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEFDTENvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gVG90YWxcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0QmFja2dyb3VuZEpvYlJlc3VsdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEJhY2tncm91bmRKb2JSZXN1bHRcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEJhY2tncm91bmRKb2JSZXN1bHQgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0QmFja2dyb3VuZEpvYlJlc3VsdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEJhY2tncm91bmRKb2JSZXN1bHQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0QmFja2dyb3VuZEpvYlJlc3VsdCk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEJhY2tncm91bmRKb2JSZXN1bHQuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEJhY2tncm91bmRKb2JSZXN1bHQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0UGFnaW5hdGlvbiA9IHJlcXVpcmUoJy4vUmVzdFBhZ2luYXRpb24nKTtcblxudmFyIF9SZXN0UGFnaW5hdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0UGFnaW5hdGlvbik7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIFJlc3RCdWxrTWV0YVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0QnVsa01ldGFSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0QnVsa01ldGFSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RCdWxrTWV0YVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0QnVsa01ldGFSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RCdWxrTWV0YVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLk5vZGVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhZ2luYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEJ1bGtNZXRhUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEJ1bGtNZXRhUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0QnVsa01ldGFSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEJ1bGtNZXRhUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZXMnXSwgW19UcmVlTm9kZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhZ2luYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGFnaW5hdGlvbiddID0gX1Jlc3RQYWdpbmF0aW9uMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUGFnaW5hdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBOb2Rlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RCdWxrTWV0YVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEJ1bGtNZXRhUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9SZXN0UGFnaW5hdGlvbn0gUGFnaW5hdGlvblxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RDZWxsQWNsID0gcmVxdWlyZSgnLi9SZXN0Q2VsbEFjbCcpO1xuXG52YXIgX1Jlc3RDZWxsQWNsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RDZWxsQWNsKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeScpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0Q2VsbCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdENlbGxcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdENlbGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0Q2VsbDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RDZWxsXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdENlbGwoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0Q2VsbCk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJvb3ROb2RlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BQ0xzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzQ29udGV4dEVkaXRhYmxlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RDZWxsPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q2VsbH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RDZWxsfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RDZWxsPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdENlbGwuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RDZWxsKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb290Tm9kZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9vdE5vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9vdE5vZGVzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBQ0xzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FDTHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBQ0xzJ10sIHsgJ1N0cmluZyc6IF9SZXN0Q2VsbEFjbDJbJ2RlZmF1bHQnXSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzJ10sIFtfU2VydmljZVJlc291cmNlUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdENlbGw7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0Q2VsbDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVOb2RlPn0gUm9vdE5vZGVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIG1vZHVsZTptb2RlbC9SZXN0Q2VsbEFjbD59IEFDTHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeT59IFBvbGljaWVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUG9saWNpZXNDb250ZXh0RWRpdGFibGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1BQ0xBY3Rpb24gPSByZXF1aXJlKCcuL0lkbUFDTEFjdGlvbicpO1xuXG52YXIgX0lkbUFDTEFjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1BQ0xBY3Rpb24pO1xuXG52YXIgX0lkbVJvbGUgPSByZXF1aXJlKCcuL0lkbVJvbGUnKTtcblxudmFyIF9JZG1Sb2xlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVJvbGUpO1xuXG52YXIgX0lkbVVzZXIgPSByZXF1aXJlKCcuL0lkbVVzZXInKTtcblxudmFyIF9JZG1Vc2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVVzZXIpO1xuXG4vKipcbiogVGhlIFJlc3RDZWxsQWNsIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0Q2VsbEFjbFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0Q2VsbEFjbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RDZWxsQWNsPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdENlbGxBY2xcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0Q2VsbEFjbCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RDZWxsQWNsKTtcblxuICAgICAgICB0aGlzLlJvbGVJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BY3Rpb25zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklzVXNlclJvbGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Hcm91cCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Sb2xlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RDZWxsQWNsPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q2VsbEFjbH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RDZWxsQWNsfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RDZWxsQWNsPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdENlbGxBY2wuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RDZWxsQWNsKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb2xlSWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9sZUlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9sZUlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBY3Rpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FjdGlvbnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBY3Rpb25zJ10sIFtfSWRtQUNMQWN0aW9uMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNVc2VyUm9sZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJc1VzZXJSb2xlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSXNVc2VyUm9sZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlciddID0gX0lkbVVzZXIyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydVc2VyJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0dyb3VwJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwJ10gPSBfSWRtVXNlcjJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0dyb3VwJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JvbGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9sZSddID0gX0lkbVJvbGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydSb2xlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBSb2xlSWRcbiAgICAqL1xuICAgIHJldHVybiBSZXN0Q2VsbEFjbDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RDZWxsQWNsO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbUFDTEFjdGlvbj59IEFjdGlvbnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBJc1VzZXJSb2xlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0lkbVVzZXJ9IFVzZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSWRtVXNlcn0gR3JvdXBcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSWRtUm9sZX0gUm9sZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVTeW5jQ2hhbmdlID0gcmVxdWlyZSgnLi9UcmVlU3luY0NoYW5nZScpO1xuXG52YXIgX1RyZWVTeW5jQ2hhbmdlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVTeW5jQ2hhbmdlKTtcblxuLyoqXG4qIFRoZSBSZXN0Q2hhbmdlQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdENoYW5nZUNvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdENoYW5nZUNvbGxlY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0Q2hhbmdlQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RDaGFuZ2VDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdENoYW5nZUNvbGxlY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0Q2hhbmdlQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5DaGFuZ2VzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhc3RTZXFJZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0Q2hhbmdlQ29sbGVjdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENoYW5nZUNvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0Q2hhbmdlQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0Q2hhbmdlQ29sbGVjdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RDaGFuZ2VDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0Q2hhbmdlQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2hhbmdlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDaGFuZ2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2hhbmdlcyddLCBbX1RyZWVTeW5jQ2hhbmdlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFzdFNlcUlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhc3RTZXFJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhc3RTZXFJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlPn0gQ2hhbmdlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RDaGFuZ2VDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdENoYW5nZUNvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFzdFNlcUlkXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdENoYW5nZVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RDaGFuZ2VSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RDaGFuZ2VSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdENoYW5nZVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0Q2hhbmdlUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RDaGFuZ2VSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdENoYW5nZVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuU2VxSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZmlsdGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmZsYXR0ZW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc3RyZWFtID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RDaGFuZ2VSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q2hhbmdlUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RDaGFuZ2VSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RDaGFuZ2VSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdENoYW5nZVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RDaGFuZ2VSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTZXFJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTZXFJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NlcUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmaWx0ZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZmlsdGVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZmlsdGVyJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmbGF0dGVuJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2ZsYXR0ZW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydmbGF0dGVuJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnc3RyZWFtJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3N0cmVhbSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3N0cmVhbSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBTZXFJRFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RDaGFuZ2VSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdENoYW5nZVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZmlsdGVyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gZmxhdHRlblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IHN0cmVhbVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RDb25maWd1cmF0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0Q29uZmlndXJhdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0Q29uZmlndXJhdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RDb25maWd1cmF0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdENvbmZpZ3VyYXRpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0Q29uZmlndXJhdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RDb25maWd1cmF0aW9uKTtcblxuICAgICAgICB0aGlzLkZ1bGxQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRhdGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdENvbmZpZ3VyYXRpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDb25maWd1cmF0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdENvbmZpZ3VyYXRpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdENvbmZpZ3VyYXRpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0Q29uZmlndXJhdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdENvbmZpZ3VyYXRpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Z1bGxQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Z1bGxQYXRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRnVsbFBhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0RhdGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGF0YSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0RhdGEnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBGdWxsUGF0aFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RDb25maWd1cmF0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdENvbmZpZ3VyYXRpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGF0YVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0N0bFNlcnZpY2VDb21tYW5kID0gcmVxdWlyZSgnLi9DdGxTZXJ2aWNlQ29tbWFuZCcpO1xuXG52YXIgX0N0bFNlcnZpY2VDb21tYW5kMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0N0bFNlcnZpY2VDb21tYW5kKTtcblxuLyoqXG4qIFRoZSBSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RDb250cm9sU2VydmljZVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RDb250cm9sU2VydmljZVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlNlcnZpY2VOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbW1hbmQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RDb250cm9sU2VydmljZVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RDb250cm9sU2VydmljZVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RDb250cm9sU2VydmljZVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NlcnZpY2VOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NlcnZpY2VOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2VydmljZU5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZU5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbW1hbmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29tbWFuZCddID0gX0N0bFNlcnZpY2VDb21tYW5kMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnQ29tbWFuZCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gU2VydmljZU5hbWVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBOb2RlTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9DdGxTZXJ2aWNlQ29tbWFuZH0gQ29tbWFuZFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdENyZWF0ZU5vZGVzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk5vZGVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlY3Vyc2l2ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UZW1wbGF0ZVVVSUQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdENyZWF0ZU5vZGVzUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENyZWF0ZU5vZGVzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVOb2Rlc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdENyZWF0ZU5vZGVzUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZXMnXSwgW19UcmVlTm9kZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JlY3Vyc2l2ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZWN1cnNpdmUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZWN1cnNpdmUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUZW1wbGF0ZVVVSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGVtcGxhdGVVVUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGVtcGxhdGVVVUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBOb2Rlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBSZWN1cnNpdmVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFRlbXBsYXRlVVVJRFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Ob2RlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UYXJnZXRBY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGVyc2lzdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlcyddLCBbX1RyZWVOb2RlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGFyZ2V0QWN0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RhcmdldEFjdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RhcmdldEFjdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGVyc2lzdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQZXJzaXN0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGVyc2lzdCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IE5vZGVzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBUYXJnZXRBY3Rpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBQZXJzaXN0XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TZWxlY3Rpb25VVUlEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTZWxlY3Rpb25VVUlEJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NlbGVjdGlvblVVSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTZWxlY3Rpb25VVUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gU2VsZWN0aW9uVVVJRFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IE5vZGVzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfT2JqZWN0RGF0YVNvdXJjZSA9IHJlcXVpcmUoJy4vT2JqZWN0RGF0YVNvdXJjZScpO1xuXG52YXIgX09iamVjdERhdGFTb3VyY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfT2JqZWN0RGF0YVNvdXJjZSk7XG5cbi8qKlxuKiBUaGUgUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uKTtcblxuICAgICAgICB0aGlzLkRhdGFTb3VyY2VzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRvdGFsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3REYXRhU291cmNlQ29sbGVjdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3REYXRhU291cmNlQ29sbGVjdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3REYXRhU291cmNlQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEYXRhU291cmNlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEYXRhU291cmNlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0RhdGFTb3VyY2VzJ10sIFtfT2JqZWN0RGF0YVNvdXJjZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RvdGFsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RvdGFsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVG90YWwnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlPn0gRGF0YVNvdXJjZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gVG90YWxcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3REZWxldGVDZWxsUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZUNlbGxSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3REZWxldGVDZWxsUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdERlbGV0ZUNlbGxSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZUNlbGxSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVDZWxsUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdERlbGV0ZUNlbGxSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3REZWxldGVDZWxsUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3REZWxldGVDZWxsUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdERlbGV0ZUNlbGxSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3REZWxldGVOb2Rlc1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RGVsZXRlTm9kZXNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3REZWxldGVOb2Rlc1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk5vZGVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlY3Vyc2l2ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RGVsZXRlTm9kZXNSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RGVsZXRlTm9kZXNSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdERlbGV0ZU5vZGVzUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdERlbGV0ZU5vZGVzUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlcyddLCBbX1RyZWVOb2RlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVjdXJzaXZlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JlY3Vyc2l2ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1JlY3Vyc2l2ZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IE5vZGVzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdERlbGV0ZU5vZGVzUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3REZWxldGVOb2Rlc1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFJlY3Vyc2l2ZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0ID0gcmVxdWlyZSgnLi9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdCcpO1xuXG52YXIgX1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0KTtcblxuLyoqXG4qIFRoZSBSZXN0RGVsZXRlTm9kZXNSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RGVsZXRlTm9kZXNSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVOb2Rlc1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RGVsZXRlTm9kZXNSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5EZWxldGVKb2JzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVOb2Rlc1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZWxldGVKb2JzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0RlbGV0ZUpvYnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZWxldGVKb2JzJ10sIFtfUmVzdEJhY2tncm91bmRKb2JSZXN1bHQyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvUmVzdEJhY2tncm91bmRKb2JSZXN1bHQ+fSBEZWxldGVKb2JzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RGVsZXRlTm9kZXNSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdERlbGV0ZVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RGVsZXRlUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdERlbGV0ZVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdERlbGV0ZVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdERlbGV0ZVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdERlbGV0ZVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTnVtUm93cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RGVsZXRlUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RGVsZXRlUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RGVsZXRlUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3REZWxldGVSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ051bVJvd3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTnVtUm93cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ051bVJvd3MnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3REZWxldGVSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3REZWxldGVSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBOdW1Sb3dzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RGlzY292ZXJ5UmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RGlzY292ZXJ5UmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RGlzY292ZXJ5UmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RGlzY292ZXJ5UmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RGlzY292ZXJ5UmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RGlzY292ZXJ5UmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuUGFja2FnZVR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGFja2FnZUxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlZlcnNpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQnVpbGRTdGFtcCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5CdWlsZFJldmlzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkVuZHBvaW50cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RGlzY292ZXJ5UmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RGlzY292ZXJ5UmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RGlzY292ZXJ5UmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3REaXNjb3ZlcnlSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFja2FnZVR5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGFja2FnZVR5cGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYWNrYWdlVHlwZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFja2FnZUxhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BhY2thZ2VMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhY2thZ2VMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVmVyc2lvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydWZXJzaW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVmVyc2lvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQnVpbGRTdGFtcCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCdWlsZFN0YW1wJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQnVpbGRTdGFtcCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQnVpbGRSZXZpc2lvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCdWlsZFJldmlzaW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQnVpbGRSZXZpc2lvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRW5kcG9pbnRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0VuZHBvaW50cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0VuZHBvaW50cyddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gUGFja2FnZVR5cGVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RGlzY292ZXJ5UmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RGlzY292ZXJ5UmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUGFja2FnZUxhYmVsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBWZXJzaW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBCdWlsZFN0YW1wXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBCdWlsZFJldmlzaW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IEVuZHBvaW50c1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RFcnJvciBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEVycm9yXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RFcnJvciA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RFcnJvcjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RFcnJvclxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RFcnJvcigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RFcnJvcik7XG5cbiAgICAgICAgdGhpcy5Db2RlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRpdGxlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRldGFpbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Tb3VyY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWV0YSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RXJyb3I8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RFcnJvcn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RFcnJvcn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RXJyb3I8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RXJyb3IuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RFcnJvcigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29kZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb2RlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ29kZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGl0bGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGl0bGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUaXRsZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGV0YWlsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0RldGFpbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0RldGFpbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU291cmNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NvdXJjZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NvdXJjZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWV0YScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXRhJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWV0YSddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gQ29kZVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RFcnJvcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RFcnJvcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBUaXRsZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGV0YWlsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBTb3VyY2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gTWV0YVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RGcm9udEJpbmFyeVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEZyb250QmluYXJ5UmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RGcm9udEJpbmFyeVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEZyb250QmluYXJ5UmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RGcm9udEJpbmFyeVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuQmluYXJ5VHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RGcm9udEJpbmFyeVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RGcm9udEJpbmFyeVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCaW5hcnlUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0JpbmFyeVR5cGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCaW5hcnlUeXBlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gQmluYXJ5VHlwZVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RGcm9udEJpbmFyeVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RnJvbnRCaW5hcnlSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEZyb250QmluYXJ5UmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEZyb250QmluYXJ5UmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RnJvbnRCaW5hcnlSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEZyb250QmluYXJ5UmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RnJvbnRCaW5hcnlSZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEZyb250QmluYXJ5UmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEZyb250QmluYXJ5UmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RnJvbnRCaW5hcnlSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEZyb250QmluYXJ5UmVzcG9uc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICByZXR1cm4gUmVzdEZyb250QmluYXJ5UmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RnJvbnRCaW5hcnlSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdEZyb250Qm9vdENvbmZSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5Kc29uRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSnNvbkRhdGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSnNvbkRhdGEnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKc29uRGF0YSddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBKc29uRGF0YVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5FbnJvbGxUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkVucm9sbEluZm8gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Vucm9sbFR5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRW5yb2xsVHlwZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Vucm9sbFR5cGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Vucm9sbEluZm8nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRW5yb2xsSW5mbyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Vucm9sbEluZm8nXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEVucm9sbFR5cGVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gRW5yb2xsSW5mb1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5JbmZvID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJbmZvJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0luZm8nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJbmZvJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IEluZm9cbiAgICAqL1xuICAgIHJldHVybiBSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuTWVzc2FnZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEZyb250TWVzc2FnZXNSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEZyb250TWVzc2FnZXNSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01lc3NhZ2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01lc3NhZ2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWVzc2FnZXMnXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gTWVzc2FnZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udFBsdWdpbnNSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udFBsdWdpbnNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RGcm9udFBsdWdpbnNSZXNwb25zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIHJldHVybiBSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RGcm9udFNlc3Npb25SZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLkNsaWVudFRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQXV0aEluZm8gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTG9nb3V0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RGcm9udFNlc3Npb25SZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RGcm9udFNlc3Npb25SZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEZyb250U2Vzc2lvblJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDbGllbnRUaW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NsaWVudFRpbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDbGllbnRUaW1lJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBdXRoSW5mbycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBdXRoSW5mbyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0F1dGhJbmZvJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xvZ291dCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMb2dvdXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMb2dvdXQnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge051bWJlcn0gQ2xpZW50VGltZVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250U2Vzc2lvblJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBBdXRoSW5mb1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IExvZ291dFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RGcm9udFNlc3Npb25SZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RGcm9udFNlc3Npb25SZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RGcm9udFNlc3Npb25SZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RGcm9udFNlc3Npb25SZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RGcm9udFNlc3Npb25SZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5KV1QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRXhwaXJlVGltZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UcmlnZ2VyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRyaWdnZXJJbmZvID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RGcm9udFNlc3Npb25SZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RGcm9udFNlc3Npb25SZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RGcm9udFNlc3Npb25SZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKV1QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSldUJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSldUJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFeHBpcmVUaW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0V4cGlyZVRpbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFeHBpcmVUaW1lJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUcmlnZ2VyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RyaWdnZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUcmlnZ2VyJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUcmlnZ2VySW5mbycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUcmlnZ2VySW5mbyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RyaWdnZXJJbmZvJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBKV1RcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gRXhwaXJlVGltZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVHJpZ2dlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBUcmlnZ2VySW5mb1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RGcm9udFN0YXRlUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RGcm9udFN0YXRlUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEZyb250U3RhdGVSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RGcm9udFN0YXRlUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEZyb250U3RhdGVSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RGcm9udFN0YXRlUmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RGcm9udFN0YXRlUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udFN0YXRlUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RGcm9udFN0YXRlUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFJlc3RGcm9udFN0YXRlUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0R2V0QnVsa01ldGFSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0R2V0QnVsa01ldGFSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk5vZGVQYXRocyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2RlVXVpZHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWxsTWV0YVByb3ZpZGVycyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5WZXJzaW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEdldEJ1bGtNZXRhUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEdldEJ1bGtNZXRhUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVQYXRocycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlUGF0aHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlUGF0aHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZVV1aWRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVVdWlkcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVVdWlkcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBbGxNZXRhUHJvdmlkZXJzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FsbE1ldGFQcm92aWRlcnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBbGxNZXRhUHJvdmlkZXJzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVmVyc2lvbnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVmVyc2lvbnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydWZXJzaW9ucyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPZmZzZXQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbWl0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGltaXQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IE5vZGVQYXRoc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RHZXRCdWxrTWV0YVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gTm9kZVV1aWRzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQWxsTWV0YVByb3ZpZGVyc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFZlcnNpb25zXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IExpbWl0XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIFJlc3RIZWFkTm9kZVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0SGVhZE5vZGVSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0SGVhZE5vZGVSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RIZWFkTm9kZVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0SGVhZE5vZGVSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RIZWFkTm9kZVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLk5vZGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEhlYWROb2RlUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RIZWFkTm9kZVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEhlYWROb2RlUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0SGVhZE5vZGVSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEhlYWROb2RlUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZSddID0gX1RyZWVOb2RlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnTm9kZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZX0gTm9kZVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RIZWFkTm9kZVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEhlYWROb2RlUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlBlZXJBZGRyZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhdGggPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BlZXJBZGRyZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BlZXJBZGRyZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGVlckFkZHJlc3MnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBQZWVyQWRkcmVzc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUGF0aFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5QZWVyQWRkcmVzc2VzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQZWVyQWRkcmVzc2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BlZXJBZGRyZXNzZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQZWVyQWRkcmVzc2VzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IFBlZXJBZGRyZXNzZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZSA9IHJlcXVpcmUoJy4vTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlJyk7XG5cbnZhciBfTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZSk7XG5cbi8qKlxuKiBUaGUgUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlNoYXJlVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdWJqZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk93bmVkQnlTdWJqZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaW1pdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2hhcmVUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NoYXJlVHlwZSddID0gX0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1NoYXJlVHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWJqZWN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1YmplY3QnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWJqZWN0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPd25lZEJ5U3ViamVjdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPd25lZEJ5U3ViamVjdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ093bmVkQnlTdWJqZWN0J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09mZnNldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09mZnNldCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW1pdCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlfSBTaGFyZVR5cGVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU3ViamVjdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IE93bmVkQnlTdWJqZWN0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IExpbWl0XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UgPSByZXF1aXJlKCcuL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlJyk7XG5cbnZhciBfTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UpO1xuXG4vKipcbiogVGhlIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuUmVzb3VyY2VzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzb3VyY2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc291cmNlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Jlc291cmNlcyddLCBbX0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09mZnNldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09mZnNldCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW1pdCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG90YWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG90YWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb3RhbCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlPn0gUmVzb3VyY2VzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gT2Zmc2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBMaW1pdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gVG90YWxcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0VGVtcGxhdGUgPSByZXF1aXJlKCcuL1Jlc3RUZW1wbGF0ZScpO1xuXG52YXIgX1Jlc3RUZW1wbGF0ZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0VGVtcGxhdGUpO1xuXG4vKipcbiogVGhlIFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuVGVtcGxhdGVzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUZW1wbGF0ZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGVtcGxhdGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGVtcGxhdGVzJ10sIFtfUmVzdFRlbXBsYXRlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1Jlc3RUZW1wbGF0ZT59IFRlbXBsYXRlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlRhZ3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RhZ3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGFncyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RhZ3MnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gVGFnc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9Mb2dMb2dNZXNzYWdlID0gcmVxdWlyZSgnLi9Mb2dMb2dNZXNzYWdlJyk7XG5cbnZhciBfTG9nTG9nTWVzc2FnZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Mb2dMb2dNZXNzYWdlKTtcblxuLyoqXG4qIFRoZSBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuTG9ncyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTG9ncycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMb2dzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTG9ncyddLCBbX0xvZ0xvZ01lc3NhZ2UyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvTG9nTG9nTWVzc2FnZT59IExvZ3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RNZXRhZGF0YSA9IHJlcXVpcmUoJy4vUmVzdE1ldGFkYXRhJyk7XG5cbnZhciBfUmVzdE1ldGFkYXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RNZXRhZGF0YSk7XG5cbi8qKlxuKiBUaGUgUmVzdE1ldGFDb2xsZWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0TWV0YUNvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdE1ldGFDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdE1ldGFDb2xsZWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdE1ldGFDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdE1ldGFDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdE1ldGFDb2xsZWN0aW9uKTtcblxuICAgICAgICB0aGlzLk5vZGVQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1ldGFkYXRhcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0TWV0YUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhQ29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0TWV0YUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0TWV0YUNvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RNZXRhQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZVBhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZVBhdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWV0YWRhdGFzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01ldGFkYXRhcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01ldGFkYXRhcyddLCBbX1Jlc3RNZXRhZGF0YTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBOb2RlUGF0aFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RNZXRhQ29sbGVjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RNZXRhQ29sbGVjdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9SZXN0TWV0YWRhdGE+fSBNZXRhZGF0YXNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuTm9kZVBhdGggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTmFtZXNwYWNlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlUGF0aCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVQYXRoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lc3BhY2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZXNwYWNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZXNwYWNlJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBOb2RlUGF0aFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IE5hbWVzcGFjZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RNZXRhZGF0YSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdE1ldGFkYXRhXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RNZXRhZGF0YSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RNZXRhZGF0YTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RNZXRhZGF0YVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RNZXRhZGF0YSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RNZXRhZGF0YSk7XG5cbiAgICAgICAgdGhpcy5OYW1lc3BhY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSnNvbk1ldGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdE1ldGFkYXRhPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TWV0YWRhdGF9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0TWV0YWRhdGF9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdE1ldGFkYXRhPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdE1ldGFkYXRhLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0TWV0YWRhdGEoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWVzcGFjZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lc3BhY2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lc3BhY2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0pzb25NZXRhJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pzb25NZXRhJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSnNvbk1ldGEnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBOYW1lc3BhY2VcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TWV0YWRhdGE7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TWV0YWRhdGE7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSnNvbk1ldGFcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgUmVzdE5vZGVzQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0Tm9kZXNDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdE5vZGVzQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0Tm9kZXNDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdE5vZGVzQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5QYXJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ2hpbGRyZW4gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdE5vZGVzQ29sbGVjdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdE5vZGVzQ29sbGVjdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3ROb2Rlc0NvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3ROb2Rlc0NvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhcmVudCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYXJlbnQnXSA9IF9UcmVlTm9kZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1BhcmVudCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDaGlsZHJlbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDaGlsZHJlbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NoaWxkcmVuJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZX0gUGFyZW50XG4gICAgKi9cbiAgICByZXR1cm4gUmVzdE5vZGVzQ29sbGVjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3ROb2Rlc0NvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBDaGlsZHJlblxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RPcGVuQXBpUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RPcGVuQXBpUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdE9wZW5BcGlSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RPcGVuQXBpUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdE9wZW5BcGlSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RPcGVuQXBpUmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RPcGVuQXBpUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RPcGVuQXBpUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RPcGVuQXBpUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0T3BlbkFwaVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0T3BlbkFwaVJlc3BvbnNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFJlc3RPcGVuQXBpUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0T3BlbkFwaVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0UGFnaW5hdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFBhZ2luYXRpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFBhZ2luYXRpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0UGFnaW5hdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RQYWdpbmF0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFBhZ2luYXRpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0UGFnaW5hdGlvbik7XG5cbiAgICAgICAgdGhpcy5MaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DdXJyZW50T2Zmc2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRvdGFsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkN1cnJlbnRQYWdlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRvdGFsUGFnZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTmV4dE9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5QcmV2T2Zmc2V0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RQYWdpbmF0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UGFnaW5hdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RQYWdpbmF0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RQYWdpbmF0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFBhZ2luYXRpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RQYWdpbmF0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaW1pdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW1pdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xpbWl0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDdXJyZW50T2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0N1cnJlbnRPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDdXJyZW50T2Zmc2V0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb3RhbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUb3RhbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RvdGFsJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDdXJyZW50UGFnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDdXJyZW50UGFnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0N1cnJlbnRQYWdlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb3RhbFBhZ2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RvdGFsUGFnZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb3RhbFBhZ2VzJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOZXh0T2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05leHRPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOZXh0T2Zmc2V0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQcmV2T2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1ByZXZPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQcmV2T2Zmc2V0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge051bWJlcn0gTGltaXRcbiAgICAqL1xuICAgIHJldHVybiBSZXN0UGFnaW5hdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RQYWdpbmF0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IEN1cnJlbnRPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFRvdGFsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBDdXJyZW50UGFnZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gVG90YWxQYWdlc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTmV4dE9mZnNldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gUHJldk9mZnNldFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RDZWxsID0gcmVxdWlyZSgnLi9SZXN0Q2VsbCcpO1xuXG52YXIgX1Jlc3RDZWxsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RDZWxsKTtcblxuLyoqXG4qIFRoZSBSZXN0UHV0Q2VsbFJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RQdXRDZWxsUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UHV0Q2VsbFJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0UHV0Q2VsbFJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UHV0Q2VsbFJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0UHV0Q2VsbFJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuUm9vbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DcmVhdGVFbXB0eVJvb3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFB1dENlbGxSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFB1dENlbGxSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFB1dENlbGxSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UHV0Q2VsbFJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jvb20nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9vbSddID0gX1Jlc3RDZWxsMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUm9vbSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDcmVhdGVFbXB0eVJvb3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ3JlYXRlRW1wdHlSb290J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ3JlYXRlRW1wdHlSb290J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUmVzdENlbGx9IFJvb21cbiAgICAqL1xuICAgIHJldHVybiBSZXN0UHV0Q2VsbFJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UHV0Q2VsbFJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IENyZWF0ZUVtcHR5Um9vdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RTaGFyZUxpbmsgPSByZXF1aXJlKCcuL1Jlc3RTaGFyZUxpbmsnKTtcblxudmFyIF9SZXN0U2hhcmVMaW5rMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RTaGFyZUxpbmspO1xuXG4vKipcbiogVGhlIFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlNoYXJlTGluayA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5QYXNzd29yZEVuYWJsZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ3JlYXRlUGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXBkYXRlUGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXBkYXRlQ3VzdG9tSGFzaCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2hhcmVMaW5rJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NoYXJlTGluayddID0gX1Jlc3RTaGFyZUxpbmsyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydTaGFyZUxpbmsnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFzc3dvcmRFbmFibGVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Bhc3N3b3JkRW5hYmxlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Bhc3N3b3JkRW5hYmxlZCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NyZWF0ZVBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NyZWF0ZVBhc3N3b3JkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ3JlYXRlUGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VwZGF0ZVBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VwZGF0ZVBhc3N3b3JkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXBkYXRlUGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VwZGF0ZUN1c3RvbUhhc2gnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXBkYXRlQ3VzdG9tSGFzaCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VwZGF0ZUN1c3RvbUhhc2gnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmt9IFNoYXJlTGlua1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFB1dFNoYXJlTGlua1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFBhc3N3b3JkRW5hYmxlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQ3JlYXRlUGFzc3dvcmRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFVwZGF0ZVBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBVcGRhdGVDdXN0b21IYXNoXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5OYW1lc3BhY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGFnID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lc3BhY2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZXNwYWNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZXNwYWNlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUYWcnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGFnJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGFnJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTmFtZXNwYWNlXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVGFnXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVJvbGUgPSByZXF1aXJlKCcuL0lkbVJvbGUnKTtcblxudmFyIF9JZG1Sb2xlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVJvbGUpO1xuXG52YXIgX0lkbVdvcmtzcGFjZSA9IHJlcXVpcmUoJy4vSWRtV29ya3NwYWNlJyk7XG5cbnZhciBfSWRtV29ya3NwYWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVdvcmtzcGFjZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFJlbGF0aW9uUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RSZWxhdGlvblJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RSZWxhdGlvblJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFJlbGF0aW9uUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UmVsYXRpb25SZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RSZWxhdGlvblJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFJlbGF0aW9uUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU2hhcmVkQ2VsbHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQmVsb25nc1RvVGVhbXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFJlbGF0aW9uUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZWxhdGlvblJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFJlbGF0aW9uUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFJlbGF0aW9uUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UmVsYXRpb25SZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFJlbGF0aW9uUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NoYXJlZENlbGxzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NoYXJlZENlbGxzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2hhcmVkQ2VsbHMnXSwgW19JZG1Xb3Jrc3BhY2UyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCZWxvbmdzVG9UZWFtcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCZWxvbmdzVG9UZWFtcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0JlbG9uZ3NUb1RlYW1zJ10sIFtfSWRtUm9sZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2U+fSBTaGFyZWRDZWxsc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RSZWxhdGlvblJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFJlbGF0aW9uUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtUm9sZT59IEJlbG9uZ3NUb1RlYW1zXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlJlc2V0UGFzc3dvcmRUb2tlbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2VyTG9naW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTmV3UGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UmVzZXRQYXNzd29yZFJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc2V0UGFzc3dvcmRUb2tlbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZXNldFBhc3N3b3JkVG9rZW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZXNldFBhc3N3b3JkVG9rZW4nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJMb2dpbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2VyTG9naW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVc2VyTG9naW4nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05ld1Bhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05ld1Bhc3N3b3JkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmV3UGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBSZXNldFBhc3N3b3JkVG9rZW5cbiAgICAqL1xuICAgIHJldHVybiBSZXN0UmVzZXRQYXNzd29yZFJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UmVzZXRQYXNzd29yZFJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVXNlckxvZ2luXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBOZXdQYXNzd29yZFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWVzc2FnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXNzYWdlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWVzc2FnZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWVzc2FnZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXNzYWdlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01lc3NhZ2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNZXNzYWdlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWVzc2FnZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUgPSByZXF1aXJlKCcuL1Jlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUnKTtcblxudmFyIF9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUpO1xuXG4vKipcbiogVGhlIFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFJlc291cmNlUG9saWN5UXVlcnlcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5KTtcblxuICAgICAgICB0aGlzLlR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlcklkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJlc291cmNlUG9saWN5UXVlcnkuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1R5cGUnXSA9IF9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnVHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VySWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlcklkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlcklkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlfSBUeXBlXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFJlc291cmNlUG9saWN5UXVlcnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBVc2VySWRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuTm9kZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZXMnXSwgW19UcmVlTm9kZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IE5vZGVzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUmVzdEJhY2tncm91bmRKb2JSZXN1bHQgPSByZXF1aXJlKCcuL1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0Jyk7XG5cbnZhciBfUmVzdEJhY2tncm91bmRKb2JSZXN1bHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdEJhY2tncm91bmRKb2JSZXN1bHQpO1xuXG4vKipcbiogVGhlIFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5SZXN0b3JlSm9icyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzdG9yZUpvYnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzdG9yZUpvYnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZXN0b3JlSm9icyddLCBbX1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0Pn0gUmVzdG9yZUpvYnNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RSZXZva2VSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UmV2b2tlUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UmV2b2tlUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZXZva2VSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFJldm9rZVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UmV2b2tlUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZXZva2VSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlRva2VuSWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFJldm9rZVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFJldm9rZVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFJldm9rZVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UmV2b2tlUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFJldm9rZVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Rva2VuSWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG9rZW5JZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Rva2VuSWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBUb2tlbklkXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFJldm9rZVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UmV2b2tlUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdFJldm9rZVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UmV2b2tlUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFJldm9rZVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFJldm9rZVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFJldm9rZVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFJldm9rZVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFJldm9rZVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0UmV2b2tlUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0UmV2b2tlUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UmV2b2tlUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RSZXZva2VSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01lc3NhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWVzc2FnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01lc3NhZ2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RSZXZva2VSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RSZXZva2VSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNZXNzYWdlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtUm9sZSA9IHJlcXVpcmUoJy4vSWRtUm9sZScpO1xuXG52YXIgX0lkbVJvbGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtUm9sZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFJvbGVzQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFJvbGVzQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0Um9sZXNDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFJvbGVzQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RSb2xlc0NvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0Um9sZXNDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFJvbGVzQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5Sb2xlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0Um9sZXNDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Um9sZXNDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFJvbGVzQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0Um9sZXNDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJvbGVzQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFJvbGVzQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUm9sZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9sZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSb2xlcyddLCBbX0lkbVJvbGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtUm9sZT59IFJvbGVzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFJvbGVzQ29sbGVjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RSb2xlc0NvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbUFDTFNpbmdsZVF1ZXJ5ID0gcmVxdWlyZSgnLi9JZG1BQ0xTaW5nbGVRdWVyeScpO1xuXG52YXIgX0lkbUFDTFNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbUFDTFNpbmdsZVF1ZXJ5KTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSA9IHJlcXVpcmUoJy4vU2VydmljZU9wZXJhdGlvblR5cGUnKTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFNlYXJjaEFDTFJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZWFyY2hBQ0xSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTZWFyY2hBQ0xSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNlYXJjaEFDTFJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTZWFyY2hBQ0xSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNlYXJjaEFDTFJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuUXVlcmllcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBCeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db3VudE9ubHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTZWFyY2hBQ0xSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hBQ0xSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTZWFyY2hBQ0xSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFNlYXJjaEFDTFJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RTZWFyY2hBQ0xSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdRdWVyaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1F1ZXJpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydRdWVyaWVzJ10sIFtfSWRtQUNMU2luZ2xlUXVlcnkyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPZmZzZXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2Zmc2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2Zmc2V0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaW1pdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW1pdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xpbWl0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHcm91cEJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwQnknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydHcm91cEJ5J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb3VudE9ubHknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ291bnRPbmx5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ291bnRPbmx5J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3BlcmF0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09wZXJhdGlvbiddID0gX1NlcnZpY2VPcGVyYXRpb25UeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnT3BlcmF0aW9uJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1BQ0xTaW5nbGVRdWVyeT59IFF1ZXJpZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0U2VhcmNoQUNMUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RTZWFyY2hBQ0xSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9mZnNldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGltaXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IEdyb3VwQnlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBDb3VudE9ubHlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZU9wZXJhdGlvblR5cGV9IE9wZXJhdGlvblxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0U2VhcmNoUmVzdWx0cyBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFNlYXJjaFJlc3VsdHNcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFNlYXJjaFJlc3VsdHMgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2VhcmNoUmVzdWx0czwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hSZXN1bHRzXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFNlYXJjaFJlc3VsdHMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2VhcmNoUmVzdWx0cyk7XG5cbiAgICAgICAgdGhpcy5SZXN1bHRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRvdGFsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTZWFyY2hSZXN1bHRzPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoUmVzdWx0c30gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hSZXN1bHRzfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTZWFyY2hSZXN1bHRzPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFNlYXJjaFJlc3VsdHMuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RTZWFyY2hSZXN1bHRzKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZXN1bHRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc3VsdHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZXN1bHRzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb3RhbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUb3RhbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RvdGFsJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBSZXN1bHRzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNlYXJjaFJlc3VsdHM7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2VhcmNoUmVzdWx0cztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBUb3RhbFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVJvbGVTaW5nbGVRdWVyeSA9IHJlcXVpcmUoJy4vSWRtUm9sZVNpbmdsZVF1ZXJ5Jyk7XG5cbnZhciBfSWRtUm9sZVNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVJvbGVTaW5nbGVRdWVyeSk7XG5cbnZhciBfUmVzdFJlc291cmNlUG9saWN5UXVlcnkgPSByZXF1aXJlKCcuL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5Jyk7XG5cbnZhciBfUmVzdFJlc291cmNlUG9saWN5UXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFJlc291cmNlUG9saWN5UXVlcnkpO1xuXG52YXIgX1NlcnZpY2VPcGVyYXRpb25UeXBlID0gcmVxdWlyZSgnLi9TZXJ2aWNlT3BlcmF0aW9uVHlwZScpO1xuXG52YXIgX1NlcnZpY2VPcGVyYXRpb25UeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VPcGVyYXRpb25UeXBlKTtcblxuLyoqXG4qIFRoZSBSZXN0U2VhcmNoUm9sZVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZWFyY2hSb2xlUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0U2VhcmNoUm9sZVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2VhcmNoUm9sZVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2VhcmNoUm9sZVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0U2VhcmNoUm9sZVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2VhcmNoUm9sZVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuUXVlcmllcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZXNvdXJjZVBvbGljeVF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Hcm91cEJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvdW50T25seSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PcGVyYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFNlYXJjaFJvbGVSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoUm9sZVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoUm9sZVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFNlYXJjaFJvbGVSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFNlYXJjaFJvbGVSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U2VhcmNoUm9sZVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1F1ZXJpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUXVlcmllcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1F1ZXJpZXMnXSwgW19JZG1Sb2xlU2luZ2xlUXVlcnkyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZXNvdXJjZVBvbGljeVF1ZXJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc291cmNlUG9saWN5UXVlcnknXSA9IF9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1Jlc291cmNlUG9saWN5UXVlcnknXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09mZnNldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09mZnNldCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW1pdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR3JvdXBCeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydHcm91cEJ5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnR3JvdXBCeSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ291bnRPbmx5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvdW50T25seSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvdW50T25seSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09wZXJhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPcGVyYXRpb24nXSA9IF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ09wZXJhdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtUm9sZVNpbmdsZVF1ZXJ5Pn0gUXVlcmllc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RTZWFyY2hSb2xlUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RTZWFyY2hSb2xlUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5fSBSZXNvdXJjZVBvbGljeVF1ZXJ5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExpbWl0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBHcm91cEJ5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQ291bnRPbmx5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1NlcnZpY2VPcGVyYXRpb25UeXBlfSBPcGVyYXRpb25cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Vc2VyU2luZ2xlUXVlcnkgPSByZXF1aXJlKCcuL0lkbVVzZXJTaW5nbGVRdWVyeScpO1xuXG52YXIgX0lkbVVzZXJTaW5nbGVRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyU2luZ2xlUXVlcnkpO1xuXG52YXIgX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gcmVxdWlyZSgnLi9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeScpO1xuXG52YXIgX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5KTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSA9IHJlcXVpcmUoJy4vU2VydmljZU9wZXJhdGlvblR5cGUnKTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFNlYXJjaFVzZXJSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2VhcmNoVXNlclJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFNlYXJjaFVzZXJSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNlYXJjaFVzZXJSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFNlYXJjaFVzZXJSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNlYXJjaFVzZXJSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlF1ZXJpZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmVzb3VyY2VQb2xpY3lRdWVyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBCeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db3VudE9ubHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTZWFyY2hVc2VyUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTZWFyY2hVc2VyUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTZWFyY2hVc2VyUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNlYXJjaFVzZXJSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdRdWVyaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1F1ZXJpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydRdWVyaWVzJ10sIFtfSWRtVXNlclNpbmdsZVF1ZXJ5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzb3VyY2VQb2xpY3lRdWVyeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZXNvdXJjZVBvbGljeVF1ZXJ5J10gPSBfUmVzdFJlc291cmNlUG9saWN5UXVlcnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydSZXNvdXJjZVBvbGljeVF1ZXJ5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPZmZzZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbWl0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGltaXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0dyb3VwQnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnR3JvdXBCeSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0dyb3VwQnknXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvdW50T25seScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb3VudE9ubHknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb3VudE9ubHknXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPcGVyYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3BlcmF0aW9uJ10gPSBfU2VydmljZU9wZXJhdGlvblR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydPcGVyYXRpb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVVzZXJTaW5nbGVRdWVyeT59IFF1ZXJpZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0U2VhcmNoVXNlclJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2VhcmNoVXNlclJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeX0gUmVzb3VyY2VQb2xpY3lRdWVyeVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT2Zmc2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMaW1pdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gR3JvdXBCeVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IENvdW50T25seVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9TZXJ2aWNlT3BlcmF0aW9uVHlwZX0gT3BlcmF0aW9uXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkgPSByZXF1aXJlKCcuL0lkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5Jyk7XG5cbnZhciBfSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkpO1xuXG52YXIgX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gcmVxdWlyZSgnLi9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeScpO1xuXG52YXIgX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5KTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSA9IHJlcXVpcmUoJy4vU2VydmljZU9wZXJhdGlvblR5cGUnKTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuUXVlcmllcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZXNvdXJjZVBvbGljeVF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Hcm91cEJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvdW50T25seSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PcGVyYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1F1ZXJpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUXVlcmllcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1F1ZXJpZXMnXSwgW19JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc291cmNlUG9saWN5UXVlcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzb3VyY2VQb2xpY3lRdWVyeSddID0gX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUmVzb3VyY2VQb2xpY3lRdWVyeSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPZmZzZXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2Zmc2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2Zmc2V0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaW1pdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW1pdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xpbWl0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHcm91cEJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwQnknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydHcm91cEJ5J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb3VudE9ubHknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ291bnRPbmx5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ291bnRPbmx5J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3BlcmF0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09wZXJhdGlvbiddID0gX1NlcnZpY2VPcGVyYXRpb25UeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnT3BlcmF0aW9uJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeT59IFF1ZXJpZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUmVzdFJlc291cmNlUG9saWN5UXVlcnl9IFJlc291cmNlUG9saWN5UXVlcnlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9mZnNldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGltaXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IEdyb3VwQnlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBDb3VudE9ubHlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZU9wZXJhdGlvblR5cGV9IE9wZXJhdGlvblxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0N0bFNlcnZpY2UgPSByZXF1aXJlKCcuL0N0bFNlcnZpY2UnKTtcblxudmFyIF9DdGxTZXJ2aWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0N0bFNlcnZpY2UpO1xuXG4vKipcbiogVGhlIFJlc3RTZXJ2aWNlQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFNlcnZpY2VDb2xsZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTZXJ2aWNlQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RTZXJ2aWNlQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTZXJ2aWNlQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RTZXJ2aWNlQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5TZXJ2aWNlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2VydmljZUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2VydmljZUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2VydmljZUNvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RTZXJ2aWNlQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2VydmljZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU2VydmljZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTZXJ2aWNlcyddLCBbX0N0bFNlcnZpY2UyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb3RhbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUb3RhbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RvdGFsJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvQ3RsU2VydmljZT59IFNlcnZpY2VzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNlcnZpY2VDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFNlcnZpY2VDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFRvdGFsXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUmVzdFNldHRpbmdzRW50cnlNZXRhID0gcmVxdWlyZSgnLi9SZXN0U2V0dGluZ3NFbnRyeU1ldGEnKTtcblxudmFyIF9SZXN0U2V0dGluZ3NFbnRyeU1ldGEyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFNldHRpbmdzRW50cnlNZXRhKTtcblxuLyoqXG4qIFRoZSBSZXN0U2V0dGluZ3NFbnRyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFNldHRpbmdzRW50cnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFNldHRpbmdzRW50cnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2V0dGluZ3NFbnRyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFNldHRpbmdzRW50cnkoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2V0dGluZ3NFbnRyeSk7XG5cbiAgICAgICAgdGhpcy5LZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWFuYWdlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BbGlhcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NZXRhZGF0YSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2V0dGluZ3NFbnRyeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzRW50cnl9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NFbnRyeX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2V0dGluZ3NFbnRyeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTZXR0aW5nc0VudHJ5LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U2V0dGluZ3NFbnRyeSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnS2V5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0tleSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0tleSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGVzY3JpcHRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGVzY3JpcHRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZXNjcmlwdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWFuYWdlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNYW5hZ2VyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWFuYWdlciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWxpYXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWxpYXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBbGlhcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWV0YWRhdGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWV0YWRhdGEnXSA9IF9SZXN0U2V0dGluZ3NFbnRyeU1ldGEyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydNZXRhZGF0YSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gS2V5XG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNldHRpbmdzRW50cnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2V0dGluZ3NFbnRyeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1hbmFnZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEFsaWFzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YX0gTWV0YWRhdGFcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0U2V0dGluZ3NFbnRyeU1ldGEgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0U2V0dGluZ3NFbnRyeU1ldGEgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2V0dGluZ3NFbnRyeU1ldGE8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NFbnRyeU1ldGFcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0U2V0dGluZ3NFbnRyeU1ldGEoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2V0dGluZ3NFbnRyeU1ldGEpO1xuXG4gICAgICAgIHRoaXMuSWNvbkNsYXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbXBvbmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qcm9wcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BZHZhbmNlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5JbmRleGVkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTZXR0aW5nc0VudHJ5TWV0YTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzRW50cnlNZXRhfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzRW50cnlNZXRhfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTZXR0aW5nc0VudHJ5TWV0YTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTZXR0aW5nc0VudHJ5TWV0YS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNldHRpbmdzRW50cnlNZXRhKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJY29uQ2xhc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSWNvbkNsYXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSWNvbkNsYXNzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb21wb25lbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29tcG9uZW50J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ29tcG9uZW50J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQcm9wcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQcm9wcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Byb3BzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBZHZhbmNlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBZHZhbmNlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FkdmFuY2VkJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSW5kZXhlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJbmRleGVkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSW5kZXhlZCddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSWNvbkNsYXNzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNldHRpbmdzRW50cnlNZXRhO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFNldHRpbmdzRW50cnlNZXRhO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IENvbXBvbmVudFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUHJvcHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBBZHZhbmNlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBJbmRleGVkXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUmVzdFNldHRpbmdzRW50cnlNZXRhID0gcmVxdWlyZSgnLi9SZXN0U2V0dGluZ3NFbnRyeU1ldGEnKTtcblxudmFyIF9SZXN0U2V0dGluZ3NFbnRyeU1ldGEyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFNldHRpbmdzRW50cnlNZXRhKTtcblxudmFyIF9SZXN0U2V0dGluZ3NTZWN0aW9uID0gcmVxdWlyZSgnLi9SZXN0U2V0dGluZ3NTZWN0aW9uJyk7XG5cbnZhciBfUmVzdFNldHRpbmdzU2VjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0U2V0dGluZ3NTZWN0aW9uKTtcblxuLyoqXG4qIFRoZSBSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZXR0aW5nc01lbnVSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2V0dGluZ3NNZW51UmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NNZW51UmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuUm9vdE1ldGFkYXRhID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNlY3Rpb25zID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTZXR0aW5nc01lbnVSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTZXR0aW5nc01lbnVSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTZXR0aW5nc01lbnVSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb290TWV0YWRhdGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9vdE1ldGFkYXRhJ10gPSBfUmVzdFNldHRpbmdzRW50cnlNZXRhMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUm9vdE1ldGFkYXRhJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NlY3Rpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NlY3Rpb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2VjdGlvbnMnXSwgW19SZXN0U2V0dGluZ3NTZWN0aW9uMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzRW50cnlNZXRhfSBSb290TWV0YWRhdGFcbiAgICAqL1xuICAgIHJldHVybiBSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzU2VjdGlvbj59IFNlY3Rpb25zXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUmVzdFNldHRpbmdzRW50cnkgPSByZXF1aXJlKCcuL1Jlc3RTZXR0aW5nc0VudHJ5Jyk7XG5cbnZhciBfUmVzdFNldHRpbmdzRW50cnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFNldHRpbmdzRW50cnkpO1xuXG4vKipcbiogVGhlIFJlc3RTZXR0aW5nc1NlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZXR0aW5nc1NlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFNldHRpbmdzU2VjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RTZXR0aW5nc1NlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NTZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFNldHRpbmdzU2VjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RTZXR0aW5nc1NlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuS2V5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNoaWxkcmVuID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTZXR0aW5nc1NlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc1NlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NTZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTZXR0aW5nc1NlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2V0dGluZ3NTZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U2V0dGluZ3NTZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdLZXknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnS2V5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnS2V5J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDaGlsZHJlbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDaGlsZHJlbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NoaWxkcmVuJ10sIFtfUmVzdFNldHRpbmdzRW50cnkyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gS2V5XG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNldHRpbmdzU2VjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RTZXR0aW5nc1NlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NFbnRyeT59IENoaWxkcmVuXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUgPSByZXF1aXJlKCcuL1Jlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlJyk7XG5cbnZhciBfUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUpO1xuXG52YXIgX1Jlc3RTaGFyZUxpbmtUYXJnZXRVc2VyID0gcmVxdWlyZSgnLi9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcicpO1xuXG52YXIgX1Jlc3RTaGFyZUxpbmtUYXJnZXRVc2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RTaGFyZUxpbmtUYXJnZXRVc2VyKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeScpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0U2hhcmVMaW5rIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2hhcmVMaW5rXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTaGFyZUxpbmsgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2hhcmVMaW5rPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua1xuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTaGFyZUxpbmsoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2hhcmVMaW5rKTtcblxuICAgICAgICB0aGlzLlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGlua0hhc2ggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGlua1VybCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2VyVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2VyTG9naW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGFzc3dvcmRSZXF1aXJlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BY2Nlc3NTdGFydCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BY2Nlc3NFbmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWF4RG93bmxvYWRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkN1cnJlbnREb3dubG9hZHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVmlld1RlbXBsYXRlTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UYXJnZXRVc2VycyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZXN0cmljdFRvVGFyZ2V0VXNlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUm9vdE5vZGVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBlcm1pc3Npb25zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzQ29udGV4dEVkaXRhYmxlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTaGFyZUxpbms8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmt9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTaGFyZUxpbms8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2hhcmVMaW5rLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U2hhcmVMaW5rKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaW5rSGFzaCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW5rSGFzaCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xpbmtIYXNoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaW5rVXJsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbmtVcmwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW5rVXJsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VyVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2VyVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VyTG9naW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlckxvZ2luJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlckxvZ2luJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQYXNzd29yZFJlcXVpcmVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Bhc3N3b3JkUmVxdWlyZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYXNzd29yZFJlcXVpcmVkJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWNjZXNzU3RhcnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWNjZXNzU3RhcnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBY2Nlc3NTdGFydCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWNjZXNzRW5kJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FjY2Vzc0VuZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FjY2Vzc0VuZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWF4RG93bmxvYWRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01heERvd25sb2FkcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01heERvd25sb2FkcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ3VycmVudERvd25sb2FkcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDdXJyZW50RG93bmxvYWRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ3VycmVudERvd25sb2FkcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVmlld1RlbXBsYXRlTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydWaWV3VGVtcGxhdGVOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVmlld1RlbXBsYXRlTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGFyZ2V0VXNlcnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGFyZ2V0VXNlcnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUYXJnZXRVc2VycyddLCB7ICdTdHJpbmcnOiBfUmVzdFNoYXJlTGlua1RhcmdldFVzZXIyWydkZWZhdWx0J10gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzdHJpY3RUb1RhcmdldFVzZXJzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc3RyaWN0VG9UYXJnZXRVc2VycyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Jlc3RyaWN0VG9UYXJnZXRVc2VycyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jvb3ROb2RlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSb290Tm9kZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSb290Tm9kZXMnXSwgW19UcmVlTm9kZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Blcm1pc3Npb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Blcm1pc3Npb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGVybWlzc2lvbnMnXSwgW19SZXN0U2hhcmVMaW5rQWNjZXNzVHlwZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXMnXSwgW19TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llc0NvbnRleHRFZGl0YWJsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBSZXN0U2hhcmVMaW5rO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFNoYXJlTGluaztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMaW5rSGFzaFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGlua1VybFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBVc2VyVXVpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVXNlckxvZ2luXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUGFzc3dvcmRSZXF1aXJlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQWNjZXNzU3RhcnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEFjY2Vzc0VuZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWF4RG93bmxvYWRzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBDdXJyZW50RG93bmxvYWRzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBWaWV3VGVtcGxhdGVOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIG1vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcj59IFRhcmdldFVzZXJzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUmVzdHJpY3RUb1RhcmdldFVzZXJzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IFJvb3ROb2Rlc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGU+fSBQZXJtaXNzaW9uc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5Pn0gUG9saWNpZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBQb2xpY2llc0NvbnRleHRFZGl0YWJsZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBSZXN0U2hhcmVMaW5rQWNjZXNzVHlwZS5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUpO1xuXG4gICAgICAgIHRoaXMuTm9BY2Nlc3MgPSBcIk5vQWNjZXNzXCI7XG4gICAgICAgIHRoaXMuUHJldmlldyA9IFwiUHJldmlld1wiO1xuICAgICAgICB0aGlzLkRvd25sb2FkID0gXCJEb3dubG9hZFwiO1xuICAgICAgICB0aGlzLlVwbG9hZCA9IFwiVXBsb2FkXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+UmVzdFNoYXJlTGlua0FjY2Vzc1R5cGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rQWNjZXNzVHlwZX0gVGhlIGVudW0gPGNvZGU+UmVzdFNoYXJlTGlua0FjY2Vzc1R5cGU8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBSZXN0U2hhcmVMaW5rQWNjZXNzVHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBSZXN0U2hhcmVMaW5rQWNjZXNzVHlwZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiTm9BY2Nlc3NcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJQcmV2aWV3XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRG93bmxvYWRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJVcGxvYWRcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RTaGFyZUxpbmtUYXJnZXRVc2VyIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlclxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RTaGFyZUxpbmtUYXJnZXRVc2VyPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua1RhcmdldFVzZXJcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RTaGFyZUxpbmtUYXJnZXRVc2VyKTtcblxuICAgICAgICB0aGlzLkRpc3BsYXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRG93bmxvYWRDb3VudCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua1RhcmdldFVzZXJ9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTaGFyZUxpbmtUYXJnZXRVc2VyLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGlzcGxheScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEaXNwbGF5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGlzcGxheSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRG93bmxvYWRDb3VudCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEb3dubG9hZENvdW50J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRG93bmxvYWRDb3VudCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IERpc3BsYXlcbiAgICAqL1xuICAgIHJldHVybiBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RTaGFyZUxpbmtUYXJnZXRVc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IERvd25sb2FkQ291bnRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9BY3Rpdml0eVN1YnNjcmlwdGlvbiA9IHJlcXVpcmUoJy4vQWN0aXZpdHlTdWJzY3JpcHRpb24nKTtcblxudmFyIF9BY3Rpdml0eVN1YnNjcmlwdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BY3Rpdml0eVN1YnNjcmlwdGlvbik7XG5cbi8qKlxuKiBUaGUgUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3N1YnNjcmlwdGlvbnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc3Vic2NyaXB0aW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3N1YnNjcmlwdGlvbnMnXSwgW19BY3Rpdml0eVN1YnNjcmlwdGlvbjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9BY3Rpdml0eVN1YnNjcmlwdGlvbj59IHN1YnNjcmlwdGlvbnNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RUZW1wbGF0ZU5vZGUgPSByZXF1aXJlKCcuL1Jlc3RUZW1wbGF0ZU5vZGUnKTtcblxudmFyIF9SZXN0VGVtcGxhdGVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RUZW1wbGF0ZU5vZGUpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeSA9IHJlcXVpcmUoJy4vU2VydmljZVJlc291cmNlUG9saWN5Jyk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VSZXNvdXJjZVBvbGljeSk7XG5cbi8qKlxuKiBUaGUgUmVzdFRlbXBsYXRlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0VGVtcGxhdGVcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFRlbXBsYXRlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFRlbXBsYXRlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFRlbXBsYXRlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFRlbXBsYXRlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFRlbXBsYXRlKTtcblxuICAgICAgICB0aGlzLlVVSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VGVtcGxhdGU8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RUZW1wbGF0ZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RUZW1wbGF0ZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VGVtcGxhdGU8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VGVtcGxhdGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RUZW1wbGF0ZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVVVJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVVUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVVVJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlJ10gPSBfUmVzdFRlbXBsYXRlTm9kZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ05vZGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llcyddLCBbX1NlcnZpY2VSZXNvdXJjZVBvbGljeTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVVUlEXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFRlbXBsYXRlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFRlbXBsYXRlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExhYmVsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1Jlc3RUZW1wbGF0ZU5vZGV9IE5vZGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeT59IFBvbGljaWVzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdFRlbXBsYXRlTm9kZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFRlbXBsYXRlTm9kZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0VGVtcGxhdGVOb2RlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFRlbXBsYXRlTm9kZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RUZW1wbGF0ZU5vZGVcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0VGVtcGxhdGVOb2RlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFRlbXBsYXRlTm9kZSk7XG5cbiAgICAgICAgdGhpcy5Jc0ZpbGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQmluYXJ5VVVVSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRW1iZWRQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNoaWxkcmVuID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RUZW1wbGF0ZU5vZGU8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RUZW1wbGF0ZU5vZGV9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGVOb2RlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RUZW1wbGF0ZU5vZGU8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VGVtcGxhdGVOb2RlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0VGVtcGxhdGVOb2RlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJc0ZpbGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSXNGaWxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSXNGaWxlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5VVVVSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQmluYXJ5VVVVSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCaW5hcnlVVVVJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRW1iZWRQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0VtYmVkUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0VtYmVkUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2hpbGRyZW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2hpbGRyZW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDaGlsZHJlbiddLCBbUmVzdFRlbXBsYXRlTm9kZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gSXNGaWxlXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFRlbXBsYXRlTm9kZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RUZW1wbGF0ZU5vZGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQmluYXJ5VVVVSURcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEVtYmVkUGF0aFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvUmVzdFRlbXBsYXRlTm9kZT59IENoaWxkcmVuXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyQm9va21hcmtzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyQm9va21hcmtzUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIHJldHVybiBSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RVc2VySm9iUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFVzZXJKb2JSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RVc2VySm9iUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RVc2VySm9iUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RVc2VySm9iUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RVc2VySm9iUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Kb2JOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkpzb25QYXJhbWV0ZXJzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RVc2VySm9iUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RVc2VySm9iUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RVc2VySm9iUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFVzZXJKb2JSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKb2JOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pvYk5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKb2JOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKc29uUGFyYW1ldGVycycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKc29uUGFyYW1ldGVycyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pzb25QYXJhbWV0ZXJzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSm9iTmFtZVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RVc2VySm9iUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RVc2VySm9iUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBKc29uUGFyYW1ldGVyc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RVc2VySm9iUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RVc2VySm9iUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFVzZXJKb2JSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RVc2VySm9iUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0VXNlckpvYlJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFVzZXJKb2JSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RVc2VySm9iUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuSm9iVXVpZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VXNlckpvYlJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VXNlckpvYlJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VXNlckpvYlJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFVzZXJKb2JSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFVzZXJKb2JSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSm9iVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKb2JVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSm9iVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEpvYlV1aWRcbiAgICAqL1xuICAgIHJldHVybiBSZXN0VXNlckpvYlJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFVzZXJKb2JSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSm9ic0pvYiA9IHJlcXVpcmUoJy4vSm9ic0pvYicpO1xuXG52YXIgX0pvYnNKb2IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic0pvYik7XG5cbi8qKlxuKiBUaGUgUmVzdFVzZXJKb2JzQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFVzZXJKb2JzQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0VXNlckpvYnNDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFVzZXJKb2JzQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9ic0NvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0VXNlckpvYnNDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFVzZXJKb2JzQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5Kb2JzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RVc2VySm9ic0NvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9ic0NvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0VXNlckpvYnNDb2xsZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RVc2VySm9ic0NvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VXNlckpvYnNDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0VXNlckpvYnNDb2xsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKb2JzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pvYnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKb2JzJ10sIFtfSm9ic0pvYjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9Kb2JzSm9iPn0gSm9ic1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RVc2VySm9ic0NvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0VXNlckpvYnNDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Vc2VyTWV0YSA9IHJlcXVpcmUoJy4vSWRtVXNlck1ldGEnKTtcblxudmFyIF9JZG1Vc2VyTWV0YTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyTWV0YSk7XG5cbi8qKlxuKiBUaGUgUmVzdFVzZXJNZXRhQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFVzZXJNZXRhQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0VXNlck1ldGFDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFVzZXJNZXRhQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0VXNlck1ldGFDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFVzZXJNZXRhQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5NZXRhZGF0YXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFVzZXJNZXRhQ29sbGVjdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJNZXRhQ29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFVzZXJNZXRhQ29sbGVjdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01ldGFkYXRhcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXRhZGF0YXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNZXRhZGF0YXMnXSwgW19JZG1Vc2VyTWV0YTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Vc2VyTWV0YT59IE1ldGFkYXRhc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RVc2VyTWV0YUNvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0VXNlck1ldGFDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Vc2VyTWV0YU5hbWVzcGFjZSA9IHJlcXVpcmUoJy4vSWRtVXNlck1ldGFOYW1lc3BhY2UnKTtcblxudmFyIF9JZG1Vc2VyTWV0YU5hbWVzcGFjZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyTWV0YU5hbWVzcGFjZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5OYW1lc3BhY2VzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lc3BhY2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWVzcGFjZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lc3BhY2VzJ10sIFtfSWRtVXNlck1ldGFOYW1lc3BhY2UyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtVXNlck1ldGFOYW1lc3BhY2U+fSBOYW1lc3BhY2VzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVdvcmtzcGFjZSA9IHJlcXVpcmUoJy4vSWRtV29ya3NwYWNlJyk7XG5cbnZhciBfSWRtV29ya3NwYWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVdvcmtzcGFjZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFVzZXJTdGF0ZVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0VXNlclN0YXRlUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFVzZXJTdGF0ZVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFVzZXJTdGF0ZVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFVzZXJTdGF0ZVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFVzZXJTdGF0ZVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLldvcmtzcGFjZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuV29ya3NwYWNlc0FjY2Vzc2VzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RVc2VyU3RhdGVSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RVc2VyU3RhdGVSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RVc2VyU3RhdGVSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFVzZXJTdGF0ZVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdXb3Jrc3BhY2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dvcmtzcGFjZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXb3Jrc3BhY2VzJ10sIFtfSWRtV29ya3NwYWNlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV29ya3NwYWNlc0FjY2Vzc2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dvcmtzcGFjZXNBY2Nlc3NlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1dvcmtzcGFjZXNBY2Nlc3NlcyddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlPn0gV29ya3NwYWNlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RVc2VyU3RhdGVSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RVc2VyU3RhdGVSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IFdvcmtzcGFjZXNBY2Nlc3Nlc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVVzZXIgPSByZXF1aXJlKCcuL0lkbVVzZXInKTtcblxudmFyIF9JZG1Vc2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVVzZXIpO1xuXG4vKipcbiogVGhlIFJlc3RVc2Vyc0NvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RVc2Vyc0NvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFVzZXJzQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RVc2Vyc0NvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0VXNlcnNDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFVzZXJzQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RVc2Vyc0NvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuR3JvdXBzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVzZXJzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRvdGFsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RVc2Vyc0NvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2Vyc0NvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0VXNlcnNDb2xsZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RVc2Vyc0NvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VXNlcnNDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0VXNlcnNDb2xsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHcm91cHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnR3JvdXBzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnR3JvdXBzJ10sIFtfSWRtVXNlcjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlcnMnXSwgW19JZG1Vc2VyMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG90YWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG90YWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb3RhbCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVVzZXI+fSBHcm91cHNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0VXNlcnNDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFVzZXJzQ29sbGVjdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Vc2VyPn0gVXNlcnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFRvdGFsXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZVZlcnNpb25pbmdQb2xpY3kgPSByZXF1aXJlKCcuL1RyZWVWZXJzaW9uaW5nUG9saWN5Jyk7XG5cbnZhciBfVHJlZVZlcnNpb25pbmdQb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZVZlcnNpb25pbmdQb2xpY3kpO1xuXG4vKipcbiogVGhlIFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5Qb2xpY2llcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llcyddLCBbX1RyZWVWZXJzaW9uaW5nUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nUG9saWN5Pn0gUG9saWNpZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVdvcmtzcGFjZSA9IHJlcXVpcmUoJy4vSWRtV29ya3NwYWNlJyk7XG5cbnZhciBfSWRtV29ya3NwYWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVdvcmtzcGFjZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFdvcmtzcGFjZUNvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0V29ya3NwYWNlQ29sbGVjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuV29ya3NwYWNlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0V29ya3NwYWNlQ29sbGVjdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0V29ya3NwYWNlQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0V29ya3NwYWNlQ29sbGVjdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0V29ya3NwYWNlQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV29ya3NwYWNlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXb3Jrc3BhY2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV29ya3NwYWNlcyddLCBbX0lkbVdvcmtzcGFjZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RvdGFsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RvdGFsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVG90YWwnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2U+fSBXb3Jrc3BhY2VzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0V29ya3NwYWNlQ29sbGVjdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBUb3RhbFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBTZXJ2aWNlT3BlcmF0aW9uVHlwZS5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgU2VydmljZU9wZXJhdGlvblR5cGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNlcnZpY2VPcGVyYXRpb25UeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2VydmljZU9wZXJhdGlvblR5cGUpO1xuXG4gICAgICAgIHRoaXMuT1IgPSBcIk9SXCI7XG4gICAgICAgIHRoaXMuQU5EID0gXCJBTkRcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5TZXJ2aWNlT3BlcmF0aW9uVHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1NlcnZpY2VPcGVyYXRpb25UeXBlfSBUaGUgZW51bSA8Y29kZT5TZXJ2aWNlT3BlcmF0aW9uVHlwZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIFNlcnZpY2VPcGVyYXRpb25UeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gU2VydmljZU9wZXJhdGlvblR5cGU7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFNlcnZpY2VPcGVyYXRpb25UeXBlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJPUlwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkFORFwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUHJvdG9idWZBbnkgPSByZXF1aXJlKCcuL1Byb3RvYnVmQW55Jyk7XG5cbnZhciBfUHJvdG9idWZBbnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUHJvdG9idWZBbnkpO1xuXG52YXIgX1NlcnZpY2VPcGVyYXRpb25UeXBlID0gcmVxdWlyZSgnLi9TZXJ2aWNlT3BlcmF0aW9uVHlwZScpO1xuXG52YXIgX1NlcnZpY2VPcGVyYXRpb25UeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VPcGVyYXRpb25UeXBlKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeSA9IHJlcXVpcmUoJy4vU2VydmljZVJlc291cmNlUG9saWN5UXVlcnknKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeSk7XG5cbi8qKlxuKiBUaGUgU2VydmljZVF1ZXJ5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9TZXJ2aWNlUXVlcnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgU2VydmljZVF1ZXJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+U2VydmljZVF1ZXJ5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvU2VydmljZVF1ZXJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gU2VydmljZVF1ZXJ5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2VydmljZVF1ZXJ5KTtcblxuICAgICAgICB0aGlzLlN1YlF1ZXJpZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlc291cmNlUG9saWN5UXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2Zmc2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxpbWl0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmdyb3VwQnkgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+U2VydmljZVF1ZXJ5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9TZXJ2aWNlUXVlcnl9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9TZXJ2aWNlUXVlcnl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+U2VydmljZVF1ZXJ5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgU2VydmljZVF1ZXJ5LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBTZXJ2aWNlUXVlcnkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1YlF1ZXJpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3ViUXVlcmllcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1YlF1ZXJpZXMnXSwgW19Qcm90b2J1ZkFueTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09wZXJhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPcGVyYXRpb24nXSA9IF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ09wZXJhdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZXNvdXJjZVBvbGljeVF1ZXJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc291cmNlUG9saWN5UXVlcnknXSA9IF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1Jlc291cmNlUG9saWN5UXVlcnknXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09mZnNldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09mZnNldCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW1pdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZ3JvdXBCeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydncm91cEJ5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZ3JvdXBCeSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1Byb3RvYnVmQW55Pn0gU3ViUXVlcmllc1xuICAgICovXG4gICAgcmV0dXJuIFNlcnZpY2VRdWVyeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNlcnZpY2VRdWVyeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1NlcnZpY2VPcGVyYXRpb25UeXBlfSBPcGVyYXRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UXVlcnl9IFJlc291cmNlUG9saWN5UXVlcnlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9mZnNldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGltaXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IGdyb3VwQnlcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24gPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbicpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24pO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdCA9IHJlcXVpcmUoJy4vU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0Jyk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdCk7XG5cbi8qKlxuKiBUaGUgU2VydmljZVJlc291cmNlUG9saWN5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgU2VydmljZVJlc291cmNlUG9saWN5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gU2VydmljZVJlc291cmNlUG9saWN5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2VydmljZVJlc291cmNlUG9saWN5KTtcblxuICAgICAgICB0aGlzLmlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlc291cmNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdWJqZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkVmZmVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Kc29uQ29uZGl0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5TZXJ2aWNlUmVzb3VyY2VQb2xpY3k8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5TZXJ2aWNlUmVzb3VyY2VQb2xpY3k8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBTZXJ2aWNlUmVzb3VyY2VQb2xpY3kuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFNlcnZpY2VSZXNvdXJjZVBvbGljeSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnaWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnaWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzb3VyY2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzb3VyY2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZXNvdXJjZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWN0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FjdGlvbiddID0gX1NlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbjJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0FjdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWJqZWN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1YmplY3QnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWJqZWN0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFZmZlY3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRWZmZWN0J10gPSBfU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnRWZmZWN0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0pzb25Db25kaXRpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pzb25Db25kaXRpb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSnNvbkNvbmRpdGlvbnMnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBpZFxuICAgICovXG4gICAgcmV0dXJuIFNlcnZpY2VSZXNvdXJjZVBvbGljeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNlcnZpY2VSZXNvdXJjZVBvbGljeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBSZXNvdXJjZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb259IEFjdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU3ViamVjdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3R9IEVmZmVjdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSnNvbkNvbmRpdGlvbnNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbik7XG5cbiAgICAgICAgdGhpcy5BTlkgPSBcIkFOWVwiO1xuICAgICAgICB0aGlzLk9XTkVSID0gXCJPV05FUlwiO1xuICAgICAgICB0aGlzLlJFQUQgPSBcIlJFQURcIjtcbiAgICAgICAgdGhpcy5XUklURSA9IFwiV1JJVEVcIjtcbiAgICAgICAgdGhpcy5FRElUX1JVTEVTID0gXCJFRElUX1JVTEVTXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9ufSBUaGUgZW51bSA8Y29kZT5TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb248L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb247XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFNlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiQU5ZXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiT1dORVJcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJSRUFEXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiV1JJVEVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJFRElUX1JVTEVTXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0LlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdCk7XG5cbiAgICAgICAgdGhpcy5kZW55ID0gXCJkZW55XCI7XG4gICAgICAgIHRoaXMuYWxsb3cgPSBcImFsbG93XCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0PC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0fSBUaGUgZW51bSA8Y29kZT5TZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3Q8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3Q7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFNlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiZGVueVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcImFsbG93XCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UXVlcnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeSk7XG5cbiAgICAgICAgdGhpcy5TdWJqZWN0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FbXB0eSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BbnkgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5UXVlcnk8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UXVlcnl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5UXVlcnk8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1YmplY3RzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1YmplY3RzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3ViamVjdHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRW1wdHknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRW1wdHknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFbXB0eSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FueScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBbnknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBbnknXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBTdWJqZWN0c1xuICAgICovXG4gICAgcmV0dXJuIFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gU2VydmljZVJlc291cmNlUG9saWN5UXVlcnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEVtcHR5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQW55XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZU5vZGVDaGFuZ2VFdmVudCA9IHJlcXVpcmUoJy4vVHJlZU5vZGVDaGFuZ2VFdmVudCcpO1xuXG52YXIgX1RyZWVOb2RlQ2hhbmdlRXZlbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGVDaGFuZ2VFdmVudCk7XG5cbi8qKlxuKiBUaGUgVHJlZUNoYW5nZUxvZyBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZUNoYW5nZUxvZ1xuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlQ2hhbmdlTG9nID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZUNoYW5nZUxvZzwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVDaGFuZ2VMb2dcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBUcmVlQ2hhbmdlTG9nKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZUNoYW5nZUxvZyk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1UaW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNpemUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Pd25lclV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRXZlbnQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZUNoYW5nZUxvZzwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZUNoYW5nZUxvZ30gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVDaGFuZ2VMb2d9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZUNoYW5nZUxvZzwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVDaGFuZ2VMb2cuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVDaGFuZ2VMb2coKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1V1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1V1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rlc2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Rlc2NyaXB0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGVzY3JpcHRpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01UaW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01UaW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTVRpbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NpemUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU2l6ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NpemUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0RhdGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGF0YSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0RhdGEnXSwgJ0Jsb2InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPd25lclV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3duZXJVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT3duZXJVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFdmVudCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFdmVudCddID0gX1RyZWVOb2RlQ2hhbmdlRXZlbnQyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydFdmVudCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIFRyZWVDaGFuZ2VMb2c7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlQ2hhbmdlTG9nO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNVGltZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU2l6ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jsb2J9IERhdGFcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE93bmVyVXVpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZUNoYW5nZUV2ZW50fSBFdmVudFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFRyZWVHZW9Qb2ludCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZUdlb1BvaW50XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVHZW9Qb2ludCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVHZW9Qb2ludDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVHZW9Qb2ludFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVHZW9Qb2ludCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVHZW9Qb2ludCk7XG5cbiAgICAgICAgdGhpcy5MYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTG9uID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVHZW9Qb2ludDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZUdlb1BvaW50fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZUdlb1BvaW50fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVHZW9Qb2ludDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVHZW9Qb2ludC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZUdlb1BvaW50KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGF0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGF0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTG9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTG9uJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge051bWJlcn0gTGF0XG4gICAgKi9cbiAgICByZXR1cm4gVHJlZUdlb1BvaW50O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZUdlb1BvaW50O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IExvblxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVHZW9Qb2ludCA9IHJlcXVpcmUoJy4vVHJlZUdlb1BvaW50Jyk7XG5cbnZhciBfVHJlZUdlb1BvaW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVHZW9Qb2ludCk7XG5cbi8qKlxuKiBUaGUgVHJlZUdlb1F1ZXJ5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlR2VvUXVlcnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZUdlb1F1ZXJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZUdlb1F1ZXJ5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZUdlb1F1ZXJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZUdlb1F1ZXJ5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZUdlb1F1ZXJ5KTtcblxuICAgICAgICB0aGlzLkNlbnRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EaXN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3BMZWZ0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkJvdHRvbVJpZ2h0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVHZW9RdWVyeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZUdlb1F1ZXJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZUdlb1F1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVHZW9RdWVyeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVHZW9RdWVyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZUdlb1F1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDZW50ZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2VudGVyJ10gPSBfVHJlZUdlb1BvaW50MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnQ2VudGVyJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rpc3RhbmNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Rpc3RhbmNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGlzdGFuY2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RvcExlZnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG9wTGVmdCddID0gX1RyZWVHZW9Qb2ludDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1RvcExlZnQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQm90dG9tUmlnaHQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQm90dG9tUmlnaHQnXSA9IF9UcmVlR2VvUG9pbnQyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydCb3R0b21SaWdodCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlR2VvUG9pbnR9IENlbnRlclxuICAgICovXG4gICAgcmV0dXJuIFRyZWVHZW9RdWVyeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVHZW9RdWVyeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogRXhhbXBsZSBmb3JtYXRzIHN1cHBvcnRlZDogXFxcIjVpblxcXCIgXFxcIjVpbmNoXFxcIiBcXFwiN3lkXFxcIiBcXFwiN3lhcmRzXFxcIiBcXFwiOWZ0XFxcIiBcXFwiOWZlZXRcXFwiIFxcXCIxMWttXFxcIiBcXFwiMTFraWxvbWV0ZXJzXFxcIiBcXFwiM25tXFxcIiBcXFwiM25hdXRpY2FsbWlsZXNcXFwiIFxcXCIxM21tXFxcIiBcXFwiMTNtaWxsaW1ldGVyc1xcXCIgXFxcIjE1Y21cXFwiIFxcXCIxNWNlbnRpbWV0ZXJzXFxcIiBcXFwiMTdtaVxcXCIgXFxcIjE3bWlsZXNcXFwiIFxcXCIxOW1cXFwiIFxcXCIxOW1ldGVyc1xcXCIgSWYgdGhlIHVuaXQgY2Fubm90IGJlIGRldGVybWluZWQsIHRoZSBlbnRpcmUgc3RyaW5nIGlzIHBhcnNlZCBhbmQgdGhlIHVuaXQgb2YgbWV0ZXJzIGlzIGFzc3VtZWQuXG4qIEBtZW1iZXIge1N0cmluZ30gRGlzdGFuY2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZUdlb1BvaW50fSBUb3BMZWZ0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVHZW9Qb2ludH0gQm90dG9tUmlnaHRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbnZhciBfVHJlZU5vZGVUeXBlID0gcmVxdWlyZSgnLi9UcmVlTm9kZVR5cGUnKTtcblxudmFyIF9UcmVlTm9kZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGVUeXBlKTtcblxuLyoqXG4qIFRoZSBUcmVlTGlzdE5vZGVzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZUxpc3ROb2Rlc1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZUxpc3ROb2Rlc1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5UcmVlTGlzdE5vZGVzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVMaXN0Tm9kZXNSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZUxpc3ROb2Rlc1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlTGlzdE5vZGVzUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Ob2RlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlY3Vyc2l2ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BbmNlc3RvcnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuV2l0aFZlcnNpb25zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldpdGhDb21taXRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxpbWl0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5GaWx0ZXJUeXBlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVMaXN0Tm9kZXNSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlTGlzdE5vZGVzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVMaXN0Tm9kZXNSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVMaXN0Tm9kZXNSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVHJlZUxpc3ROb2Rlc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVMaXN0Tm9kZXNSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGUnXSA9IF9UcmVlTm9kZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ05vZGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVjdXJzaXZlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JlY3Vyc2l2ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1JlY3Vyc2l2ZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FuY2VzdG9ycycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBbmNlc3RvcnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBbmNlc3RvcnMnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdXaXRoVmVyc2lvbnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV2l0aFZlcnNpb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV2l0aFZlcnNpb25zJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV2l0aENvbW1pdHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV2l0aENvbW1pdHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXaXRoQ29tbWl0cyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbWl0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGltaXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPZmZzZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0ZpbHRlclR5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRmlsdGVyVHlwZSddID0gX1RyZWVOb2RlVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0ZpbHRlclR5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IE5vZGVcbiAgICAqL1xuICAgIHJldHVybiBUcmVlTGlzdE5vZGVzUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVMaXN0Tm9kZXNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBSZWN1cnNpdmVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBBbmNlc3RvcnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBXaXRoVmVyc2lvbnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBXaXRoQ29tbWl0c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGltaXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9mZnNldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZVR5cGV9IEZpbHRlclR5cGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlQ2hhbmdlTG9nID0gcmVxdWlyZSgnLi9UcmVlQ2hhbmdlTG9nJyk7XG5cbnZhciBfVHJlZUNoYW5nZUxvZzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlQ2hhbmdlTG9nKTtcblxudmFyIF9UcmVlTm9kZVR5cGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlVHlwZScpO1xuXG52YXIgX1RyZWVOb2RlVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZVR5cGUpO1xuXG52YXIgX1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGggPSByZXF1aXJlKCcuL1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgnKTtcblxudmFyIF9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgpO1xuXG4vKipcbiogVGhlIFRyZWVOb2RlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlTm9kZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlTm9kZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVOb2RlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZU5vZGVcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBUcmVlTm9kZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVOb2RlKTtcblxuICAgICAgICB0aGlzLlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNpemUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTVRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTW9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FdGFnID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbW1pdHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWV0YVN0b3JlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFwcGVhcnNJbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlTm9kZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlTm9kZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlTm9kZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVOb2RlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlTm9kZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGF0aCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYXRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUeXBlJ10gPSBfVHJlZU5vZGVUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnVHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTaXplJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NpemUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTaXplJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNVGltZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNVGltZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01UaW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNb2RlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01vZGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNb2RlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFdGFnJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0V0YWcnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFdGFnJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb21taXRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbW1pdHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb21taXRzJ10sIFtfVHJlZUNoYW5nZUxvZzJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01ldGFTdG9yZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXRhU3RvcmUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNZXRhU3RvcmUnXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXBwZWFyc0luJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FwcGVhcnNJbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FwcGVhcnNJbiddLCBbX1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIFRyZWVOb2RlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZU5vZGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUGF0aFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZVR5cGV9IFR5cGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFNpemVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1UaW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBNb2RlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBFdGFnXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlQ2hhbmdlTG9nPn0gQ29tbWl0c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBNZXRhU3RvcmVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGg+fSBBcHBlYXJzSW5cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUgPSByZXF1aXJlKCcuL05vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZScpO1xuXG52YXIgX05vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBUcmVlTm9kZUNoYW5nZUV2ZW50IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlTm9kZUNoYW5nZUV2ZW50XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVOb2RlQ2hhbmdlRXZlbnQgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5UcmVlTm9kZUNoYW5nZUV2ZW50PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZU5vZGVDaGFuZ2VFdmVudFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVOb2RlQ2hhbmdlRXZlbnQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlTm9kZUNoYW5nZUV2ZW50KTtcblxuICAgICAgICB0aGlzLlR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU291cmNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlTm9kZUNoYW5nZUV2ZW50PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlTm9kZUNoYW5nZUV2ZW50fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZU5vZGVDaGFuZ2VFdmVudH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlTm9kZUNoYW5nZUV2ZW50PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVHJlZU5vZGVDaGFuZ2VFdmVudC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZU5vZGVDaGFuZ2VFdmVudCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUeXBlJ10gPSBfTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnVHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTb3VyY2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU291cmNlJ10gPSBfVHJlZU5vZGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydTb3VyY2UnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGFyZ2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RhcmdldCddID0gX1RyZWVOb2RlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnVGFyZ2V0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL05vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZX0gVHlwZVxuICAgICovXG4gICAgcmV0dXJuIFRyZWVOb2RlQ2hhbmdlRXZlbnQ7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlTm9kZUNoYW5nZUV2ZW50O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IFNvdXJjZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZX0gVGFyZ2V0XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIFRyZWVOb2RlVHlwZS5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgVHJlZU5vZGVUeXBlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUcmVlTm9kZVR5cGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlTm9kZVR5cGUpO1xuXG4gICAgICAgIHRoaXMuVU5LTk9XTiA9IFwiVU5LTk9XTlwiO1xuICAgICAgICB0aGlzLkxFQUYgPSBcIkxFQUZcIjtcbiAgICAgICAgdGhpcy5DT0xMRUNUSU9OID0gXCJDT0xMRUNUSU9OXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+VHJlZU5vZGVUeXBlPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZU5vZGVUeXBlfSBUaGUgZW51bSA8Y29kZT5UcmVlTm9kZVR5cGU8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBUcmVlTm9kZVR5cGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBUcmVlTm9kZVR5cGU7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFRyZWVOb2RlVHlwZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiVU5LTk9XTlwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkxFQUZcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJDT0xMRUNUSU9OXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlR2VvUXVlcnkgPSByZXF1aXJlKCcuL1RyZWVHZW9RdWVyeScpO1xuXG52YXIgX1RyZWVHZW9RdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlR2VvUXVlcnkpO1xuXG52YXIgX1RyZWVOb2RlVHlwZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGVUeXBlJyk7XG5cbnZhciBfVHJlZU5vZGVUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlVHlwZSk7XG5cbi8qKlxuKiBUaGUgVHJlZVF1ZXJ5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlUXVlcnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZVF1ZXJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZVF1ZXJ5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZVF1ZXJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZVF1ZXJ5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVF1ZXJ5KTtcblxuICAgICAgICB0aGlzLlBhdGhQcmVmaXggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWluU2l6ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NYXhTaXplID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1pbkRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWF4RGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkZpbGVOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRnJlZVN0cmluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FeHRlbnNpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR2VvUXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZVF1ZXJ5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlUXVlcnl9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlUXVlcnl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZVF1ZXJ5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVHJlZVF1ZXJ5LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlUXVlcnkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhdGhQcmVmaXgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGF0aFByZWZpeCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhdGhQcmVmaXgnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWluU2l6ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNaW5TaXplJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWluU2l6ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWF4U2l6ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNYXhTaXplJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWF4U2l6ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWluRGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNaW5EYXRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWluRGF0ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWF4RGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNYXhEYXRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWF4RGF0ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUeXBlJ10gPSBfVHJlZU5vZGVUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnVHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdGaWxlTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydGaWxlTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0ZpbGVOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb250ZW50JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbnRlbnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb250ZW50J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdGcmVlU3RyaW5nJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0ZyZWVTdHJpbmcnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydGcmVlU3RyaW5nJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFeHRlbnNpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRXh0ZW5zaW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRXh0ZW5zaW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHZW9RdWVyeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydHZW9RdWVyeSddID0gX1RyZWVHZW9RdWVyeTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0dlb1F1ZXJ5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IFBhdGhQcmVmaXhcbiAgICAqL1xuICAgIHJldHVybiBUcmVlUXVlcnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlUXVlcnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWluU2l6ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWF4U2l6ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWluRGF0ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWF4RGF0ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZVR5cGV9IFR5cGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEZpbGVOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBDb250ZW50XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBGcmVlU3RyaW5nXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBFeHRlbnNpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZUdlb1F1ZXJ5fSBHZW9RdWVyeVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBUcmVlUmVhZE5vZGVSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlUmVhZE5vZGVSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVSZWFkTm9kZVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5UcmVlUmVhZE5vZGVSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVSZWFkTm9kZVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlUmVhZE5vZGVSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuV2l0aENvbW1pdHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuV2l0aEV4dGVuZGVkU3RhdHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZVJlYWROb2RlUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVSZWFkTm9kZVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZVJlYWROb2RlUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVSZWFkTm9kZVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVSZWFkTm9kZVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZSddID0gX1RyZWVOb2RlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnTm9kZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdXaXRoQ29tbWl0cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXaXRoQ29tbWl0cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1dpdGhDb21taXRzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV2l0aEV4dGVuZGVkU3RhdHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV2l0aEV4dGVuZGVkU3RhdHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXaXRoRXh0ZW5kZWRTdGF0cyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlfSBOb2RlXG4gICAgKi9cbiAgICByZXR1cm4gVHJlZVJlYWROb2RlUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVSZWFkTm9kZVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFdpdGhDb21taXRzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gV2l0aEV4dGVuZGVkU3RhdHNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgVHJlZVJlYWROb2RlUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1RyZWVSZWFkTm9kZVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVSZWFkTm9kZVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZVJlYWROb2RlUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVSZWFkTm9kZVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVJlYWROb2RlUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2RlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVSZWFkTm9kZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVSZWFkTm9kZVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVSZWFkTm9kZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVHJlZVJlYWROb2RlUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVSZWFkTm9kZVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlJ10gPSBfVHJlZU5vZGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydOb2RlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIFRyZWVSZWFkTm9kZVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZVJlYWROb2RlUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZX0gTm9kZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVRdWVyeSA9IHJlcXVpcmUoJy4vVHJlZVF1ZXJ5Jyk7XG5cbnZhciBfVHJlZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVRdWVyeSk7XG5cbi8qKlxuKiBUaGUgVHJlZVNlYXJjaFJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1RyZWVTZWFyY2hSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVTZWFyY2hSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZVNlYXJjaFJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9UcmVlU2VhcmNoUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVTZWFyY2hSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVNlYXJjaFJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuUXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU2l6ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Gcm9tID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRldGFpbHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRmFjZXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZVNlYXJjaFJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVTZWFyY2hSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZVNlYXJjaFJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZVNlYXJjaFJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlU2VhcmNoUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZVNlYXJjaFJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1F1ZXJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1F1ZXJ5J10gPSBfVHJlZVF1ZXJ5MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUXVlcnknXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2l6ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTaXplJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2l6ZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRnJvbScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydGcm9tJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRnJvbSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGV0YWlscycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXRhaWxzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGV0YWlscyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0ZhY2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0ZhY2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRmFjZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVRdWVyeX0gUXVlcnlcbiAgICAqL1xuICAgIHJldHVybiBUcmVlU2VhcmNoUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVTZWFyY2hSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFNpemVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IEZyb21cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBEZXRhaWxzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBGYWNldFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVTeW5jQ2hhbmdlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZVN5bmNDaGFuZ2VOb2RlJyk7XG5cbnZhciBfVHJlZVN5bmNDaGFuZ2VOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVTeW5jQ2hhbmdlTm9kZSk7XG5cbnZhciBfVHJlZVN5bmNDaGFuZ2VUeXBlID0gcmVxdWlyZSgnLi9UcmVlU3luY0NoYW5nZVR5cGUnKTtcblxudmFyIF9UcmVlU3luY0NoYW5nZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZVN5bmNDaGFuZ2VUeXBlKTtcblxuLyoqXG4qIFRoZSBUcmVlU3luY0NoYW5nZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZVN5bmNDaGFuZ2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZVN5bmNDaGFuZ2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5UcmVlU3luY0NoYW5nZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZVN5bmNDaGFuZ2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlU3luY0NoYW5nZSk7XG5cbiAgICAgICAgdGhpcy5zZXEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubm9kZUlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc291cmNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ub2RlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVTeW5jQ2hhbmdlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVTeW5jQ2hhbmdlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVHJlZVN5bmNDaGFuZ2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVTeW5jQ2hhbmdlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzZXEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc2VxJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnc2VxJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdub2RlSWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbm9kZUlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbm9kZUlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCd0eXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3R5cGUnXSA9IF9UcmVlU3luY0NoYW5nZVR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWyd0eXBlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3NvdXJjZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydzb3VyY2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydzb3VyY2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3RhcmdldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd0YXJnZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWyd0YXJnZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ25vZGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbm9kZSddID0gX1RyZWVTeW5jQ2hhbmdlTm9kZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ25vZGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IHNlcVxuICAgICovXG4gICAgcmV0dXJuIFRyZWVTeW5jQ2hhbmdlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZVN5bmNDaGFuZ2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gbm9kZUlkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlVHlwZX0gdHlwZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gc291cmNlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSB0YXJnZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZVN5bmNDaGFuZ2VOb2RlfSBub2RlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgVHJlZVN5bmNDaGFuZ2VOb2RlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlU3luY0NoYW5nZU5vZGVcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZVN5bmNDaGFuZ2VOb2RlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZVN5bmNDaGFuZ2VOb2RlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZVN5bmNDaGFuZ2VOb2RlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZVN5bmNDaGFuZ2VOb2RlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVN5bmNDaGFuZ2VOb2RlKTtcblxuICAgICAgICB0aGlzLmJ5dGVzaXplID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm1kNSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5tdGltZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ub2RlUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5yZXBvc2l0b3J5SWRlbnRpZmllciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlU3luY0NoYW5nZU5vZGU8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlTm9kZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlTm9kZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlU3luY0NoYW5nZU5vZGU8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlU3luY0NoYW5nZU5vZGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVTeW5jQ2hhbmdlTm9kZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnYnl0ZXNpemUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnYnl0ZXNpemUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydieXRlc2l6ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbWQ1JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ21kNSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ21kNSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbXRpbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbXRpbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydtdGltZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbm9kZVBhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbm9kZVBhdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydub2RlUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncmVwb3NpdG9yeUlkZW50aWZpZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsncmVwb3NpdG9yeUlkZW50aWZpZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydyZXBvc2l0b3J5SWRlbnRpZmllciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IGJ5dGVzaXplXG4gICAgKi9cbiAgICByZXR1cm4gVHJlZVN5bmNDaGFuZ2VOb2RlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZVN5bmNDaGFuZ2VOb2RlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IG1kNVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gbXRpbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IG5vZGVQYXRoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSByZXBvc2l0b3J5SWRlbnRpZmllclxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBUcmVlU3luY0NoYW5nZVR5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIFRyZWVTeW5jQ2hhbmdlVHlwZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVHJlZVN5bmNDaGFuZ2VUeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVN5bmNDaGFuZ2VUeXBlKTtcblxuICAgICAgICB0aGlzLnVua25vd24gPSBcInVua25vd25cIjtcbiAgICAgICAgdGhpcy5jcmVhdGUgPSBcImNyZWF0ZVwiO1xuICAgICAgICB0aGlzW1wiZGVsZXRlXCJdID0gXCJkZWxldGVcIjtcbiAgICAgICAgdGhpcy5wYXRoID0gXCJwYXRoXCI7XG4gICAgICAgIHRoaXMuY29udGVudCA9IFwiY29udGVudFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPlRyZWVTeW5jQ2hhbmdlVHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlVHlwZX0gVGhlIGVudW0gPGNvZGU+VHJlZVN5bmNDaGFuZ2VUeXBlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgVHJlZVN5bmNDaGFuZ2VUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gVHJlZVN5bmNDaGFuZ2VUeXBlO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBUcmVlU3luY0NoYW5nZVR5cGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcInVua25vd25cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJjcmVhdGVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJkZWxldGVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJwYXRoXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiY29udGVudFwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kKTtcblxuICAgICAgICB0aGlzLkludGVydmFsU3RhcnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWF4TnVtYmVyID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJbnRlcnZhbFN0YXJ0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0ludGVydmFsU3RhcnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJbnRlcnZhbFN0YXJ0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNYXhOdW1iZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWF4TnVtYmVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWF4TnVtYmVyJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSW50ZXJ2YWxTdGFydFxuICAgICovXG4gICAgcmV0dXJuIFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBNYXhOdW1iZXJcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QgPSByZXF1aXJlKCcuL1RyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCcpO1xuXG52YXIgX1RyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QpO1xuXG4vKipcbiogVGhlIFRyZWVWZXJzaW9uaW5nUG9saWN5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlVmVyc2lvbmluZ1BvbGljeVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlVmVyc2lvbmluZ1BvbGljeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVWZXJzaW9uaW5nUG9saWN5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZVZlcnNpb25pbmdQb2xpY3lcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBUcmVlVmVyc2lvbmluZ1BvbGljeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVWZXJzaW9uaW5nUG9saWN5KTtcblxuICAgICAgICB0aGlzLlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5WZXJzaW9uc0RhdGFTb3VyY2VOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlZlcnNpb25zRGF0YVNvdXJjZUJ1Y2tldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NYXhUb3RhbFNpemUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWF4U2l6ZVBlckZpbGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSWdub3JlRmlsZXNHcmVhdGVyVGhhbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5LZWVwUGVyaW9kcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlVmVyc2lvbmluZ1BvbGljeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVZlcnNpb25pbmdQb2xpY3l9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlVmVyc2lvbmluZ1BvbGljeX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlVmVyc2lvbmluZ1BvbGljeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVWZXJzaW9uaW5nUG9saWN5LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlVmVyc2lvbmluZ1BvbGljeSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGVzY3JpcHRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGVzY3JpcHRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZXNjcmlwdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVmVyc2lvbnNEYXRhU291cmNlTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydWZXJzaW9uc0RhdGFTb3VyY2VOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVmVyc2lvbnNEYXRhU291cmNlTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVmVyc2lvbnNEYXRhU291cmNlQnVja2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1ZlcnNpb25zRGF0YVNvdXJjZUJ1Y2tldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1ZlcnNpb25zRGF0YVNvdXJjZUJ1Y2tldCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWF4VG90YWxTaXplJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01heFRvdGFsU2l6ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01heFRvdGFsU2l6ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWF4U2l6ZVBlckZpbGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWF4U2l6ZVBlckZpbGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNYXhTaXplUGVyRmlsZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSWdub3JlRmlsZXNHcmVhdGVyVGhhbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJZ25vcmVGaWxlc0dyZWF0ZXJUaGFuJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSWdub3JlRmlsZXNHcmVhdGVyVGhhbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnS2VlcFBlcmlvZHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnS2VlcFBlcmlvZHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydLZWVwUGVyaW9kcyddLCBbX1RyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gVHJlZVZlcnNpb25pbmdQb2xpY3k7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlVmVyc2lvbmluZ1BvbGljeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBEZXNjcmlwdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVmVyc2lvbnNEYXRhU291cmNlTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVmVyc2lvbnNEYXRhU291cmNlQnVja2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNYXhUb3RhbFNpemVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1heFNpemVQZXJGaWxlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBJZ25vcmVGaWxlc0dyZWF0ZXJUaGFuXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2Q+fSBLZWVwUGVyaW9kc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGggbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGhcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGg8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgpO1xuXG4gICAgICAgIHRoaXMuV3NVdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldzTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGF0aCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRofSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV3NVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dzVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1dzVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV3NMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXc0xhYmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV3NMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGF0aCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYXRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFdzVXVpZFxuICAgICovXG4gICAgcmV0dXJuIFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGg7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFdzTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFBhdGhcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01lc3NhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWVzc2FnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01lc3NhZ2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1lc3NhZ2VcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9QYWNrYWdlUGFja2FnZVN0YXR1cyA9IHJlcXVpcmUoJy4vUGFja2FnZVBhY2thZ2VTdGF0dXMnKTtcblxudmFyIF9QYWNrYWdlUGFja2FnZVN0YXR1czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9QYWNrYWdlUGFja2FnZVN0YXR1cyk7XG5cbi8qKlxuKiBUaGUgVXBkYXRlUGFja2FnZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVXBkYXRlUGFja2FnZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBVcGRhdGVQYWNrYWdlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VXBkYXRlUGFja2FnZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1VwZGF0ZVBhY2thZ2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBVcGRhdGVQYWNrYWdlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXBkYXRlUGFja2FnZSk7XG5cbiAgICAgICAgdGhpcy5QYWNrYWdlTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5WZXJzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlbGVhc2VEYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNoYW5nZUxvZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaWNlbnNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkJpbmFyeVVSTCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5CaW5hcnlDaGVja3N1bSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5CaW5hcnlTaWduYXR1cmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQmluYXJ5SGFzaFR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQmluYXJ5U2l6ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5CaW5hcnlPUyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5CaW5hcnlBcmNoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklzUGF0Y2ggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGF0Y2hBbGdvcml0aG0gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU2VydmljZU5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RhdHVzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlVwZGF0ZVBhY2thZ2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1VwZGF0ZVBhY2thZ2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9VcGRhdGVQYWNrYWdlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlVwZGF0ZVBhY2thZ2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBVcGRhdGVQYWNrYWdlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBVcGRhdGVQYWNrYWdlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQYWNrYWdlTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYWNrYWdlTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhY2thZ2VOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdWZXJzaW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1ZlcnNpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydWZXJzaW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZWxlYXNlRGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZWxlYXNlRGF0ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1JlbGVhc2VEYXRlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDaGFuZ2VMb2cnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2hhbmdlTG9nJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2hhbmdlTG9nJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaWNlbnNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpY2Vuc2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaWNlbnNlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCaW5hcnlVUkwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQmluYXJ5VVJMJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQmluYXJ5VVJMJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCaW5hcnlDaGVja3N1bScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCaW5hcnlDaGVja3N1bSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0JpbmFyeUNoZWNrc3VtJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCaW5hcnlTaWduYXR1cmUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQmluYXJ5U2lnbmF0dXJlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQmluYXJ5U2lnbmF0dXJlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCaW5hcnlIYXNoVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCaW5hcnlIYXNoVHlwZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0JpbmFyeUhhc2hUeXBlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCaW5hcnlTaXplJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0JpbmFyeVNpemUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCaW5hcnlTaXplJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCaW5hcnlPUycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCaW5hcnlPUyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0JpbmFyeU9TJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdCaW5hcnlBcmNoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0JpbmFyeUFyY2gnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCaW5hcnlBcmNoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJc1BhdGNoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lzUGF0Y2gnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJc1BhdGNoJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGF0Y2hBbGdvcml0aG0nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGF0Y2hBbGdvcml0aG0nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYXRjaEFsZ29yaXRobSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2VydmljZU5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU2VydmljZU5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTZXJ2aWNlTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RhdHVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N0YXR1cyddID0gX1BhY2thZ2VQYWNrYWdlU3RhdHVzMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnU3RhdHVzJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBQYWNrYWdlTmFtZVxuICAgICovXG4gICAgcmV0dXJuIFVwZGF0ZVBhY2thZ2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVcGRhdGVQYWNrYWdlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFZlcnNpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFJlbGVhc2VEYXRlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IENoYW5nZUxvZ1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGljZW5zZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQmluYXJ5VVJMXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBCaW5hcnlDaGVja3N1bVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQmluYXJ5U2lnbmF0dXJlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBCaW5hcnlIYXNoVHlwZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQmluYXJ5U2l6ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQmluYXJ5T1NcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEJpbmFyeUFyY2hcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBJc1BhdGNoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBQYXRjaEFsZ29yaXRobVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU2VydmljZU5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUGFja2FnZVBhY2thZ2VTdGF0dXN9IFN0YXR1c1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1VwZGF0ZVBhY2thZ2UgPSByZXF1aXJlKCcuL1VwZGF0ZVBhY2thZ2UnKTtcblxudmFyIF9VcGRhdGVQYWNrYWdlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1VwZGF0ZVBhY2thZ2UpO1xuXG4vKipcbiogVGhlIFVwZGF0ZVVwZGF0ZVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9VcGRhdGVVcGRhdGVSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBVcGRhdGVVcGRhdGVSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlVwZGF0ZVVwZGF0ZVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVXBkYXRlVXBkYXRlUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBVcGRhdGVVcGRhdGVSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVwZGF0ZVVwZGF0ZVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLkNoYW5uZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQXZhaWxhYmxlQmluYXJpZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VXBkYXRlVXBkYXRlUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVXBkYXRlVXBkYXRlUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VXBkYXRlVXBkYXRlUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBVcGRhdGVVcGRhdGVSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVXBkYXRlVXBkYXRlUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NoYW5uZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2hhbm5lbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NoYW5uZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0F2YWlsYWJsZUJpbmFyaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0F2YWlsYWJsZUJpbmFyaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXZhaWxhYmxlQmluYXJpZXMnXSwgW19VcGRhdGVQYWNrYWdlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IENoYW5uZWxcbiAgICAqL1xuICAgIHJldHVybiBVcGRhdGVVcGRhdGVSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVwZGF0ZVVwZGF0ZVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1VwZGF0ZVBhY2thZ2U+fSBBdmFpbGFibGVCaW5hcmllc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIFVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wKTtcblxuICAgICAgICB0aGlzLlBVVCA9IFwiUFVUXCI7XG4gICAgICAgIHRoaXMuREVMRVRFID0gXCJERUxFVEVcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3A8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3B9IFRoZSBlbnVtIDxjb2RlPlVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcDwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIFVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcDtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJQVVRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJERUxFVEVcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBVcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBVcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBVcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCk7XG5cbiAgICAgICAgdGhpcy5QVVQgPSBcIlBVVFwiO1xuICAgICAgICB0aGlzLkRFTEVURSA9IFwiREVMRVRFXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+VXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcDwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1VwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3B9IFRoZSBlbnVtIDxjb2RlPlVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3A8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBVcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcDtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiUFVUXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiREVMRVRFXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgTG9nZ2VyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBMb2dnZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMb2dnZXIpO1xuICAgIH1cblxuICAgIExvZ2dlci5sb2cgPSBmdW5jdGlvbiBsb2cobWVzc2FnZSkge1xuICAgICAgICBpZiAod2luZG93LmNvbnNvbGUpIGNvbnNvbGUubG9nKG1lc3NhZ2UpO1xuICAgIH07XG5cbiAgICBMb2dnZXIuZXJyb3IgPSBmdW5jdGlvbiBlcnJvcihtZXNzYWdlKSB7XG4gICAgICAgIGlmICh3aW5kb3cuY29uc29sZSkgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9O1xuXG4gICAgTG9nZ2VyLmRlYnVnID0gZnVuY3Rpb24gZGVidWcobWVzc2FnZSkge1xuICAgICAgICBpZiAod2luZG93LmNvbnNvbGUpIGNvbnNvbGUuZGVidWcobWVzc2FnZSk7XG4gICAgfTtcblxuICAgIHJldHVybiBMb2dnZXI7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IExvZ2dlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBPYnNlcnZhYmxlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBPYnNlcnZhYmxlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgT2JzZXJ2YWJsZSk7XG4gICAgfVxuXG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuX29iamVjdEV2ZW50U2V0dXAgPSBmdW5jdGlvbiBfb2JqZWN0RXZlbnRTZXR1cChldmVudF9uYW1lKSB7XG4gICAgICAgIHRoaXMuX29ic2VydmVycyA9IHRoaXMuX29ic2VydmVycyB8fCB7fTtcbiAgICAgICAgdGhpcy5fb2JzZXJ2ZXJzW2V2ZW50X25hbWVdID0gdGhpcy5fb2JzZXJ2ZXJzW2V2ZW50X25hbWVdIHx8IFtdO1xuICAgIH07XG5cbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5vYnNlcnZlID0gZnVuY3Rpb24gb2JzZXJ2ZShldmVudF9uYW1lLCBvYnNlcnZlcikge1xuICAgICAgICBpZiAodHlwZW9mIGV2ZW50X25hbWUgPT0gJ3N0cmluZycgJiYgdHlwZW9mIG9ic2VydmVyICE9ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLl9vYmplY3RFdmVudFNldHVwKGV2ZW50X25hbWUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXS5pbmRleE9mKG9ic2VydmVyKSA9PSAtMSkgdGhpcy5fb2JzZXJ2ZXJzW2V2ZW50X25hbWVdLnB1c2gob2JzZXJ2ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yICh2YXIgZSBpbiBldmVudF9uYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50X25hbWUuaGFzT3duUHJvcGVydHkoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vYnNlcnZlKGUsIGV2ZW50X25hbWVbZV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5zdG9wT2JzZXJ2aW5nID0gZnVuY3Rpb24gc3RvcE9ic2VydmluZyhldmVudF9uYW1lLCBvYnNlcnZlcikge1xuICAgICAgICB0aGlzLl9vYmplY3RFdmVudFNldHVwKGV2ZW50X25hbWUpO1xuICAgICAgICBpZiAoZXZlbnRfbmFtZSAmJiBvYnNlcnZlcikgdGhpcy5fb2JzZXJ2ZXJzW2V2ZW50X25hbWVdID0gdGhpcy5fb2JzZXJ2ZXJzW2V2ZW50X25hbWVdLmZpbHRlcihmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgcmV0dXJuIG8gIT0gb2JzZXJ2ZXI7XG4gICAgICAgIH0pO2Vsc2UgaWYgKGV2ZW50X25hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXSA9IFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXJzID0ge307XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUub2JzZXJ2ZU9uY2UgPSBmdW5jdGlvbiBvYnNlcnZlT25jZShldmVudF9uYW1lLCBvdXRlcl9vYnNlcnZlcikge1xuICAgICAgICB2YXIgaW5uZXJfb2JzZXJ2ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgb3V0ZXJfb2JzZXJ2ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcE9ic2VydmluZyhldmVudF9uYW1lLCBpbm5lcl9vYnNlcnZlcik7XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuX29iamVjdEV2ZW50U2V0dXAoZXZlbnRfbmFtZSk7XG4gICAgICAgIHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXS5wdXNoKGlubmVyX29ic2VydmVyKTtcbiAgICB9O1xuXG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gbm90aWZ5KGV2ZW50X25hbWUpIHtcbiAgICAgICAgdGhpcy5fb2JqZWN0RXZlbnRTZXR1cChldmVudF9uYW1lKTtcbiAgICAgICAgdmFyIGNvbGxlY3RlZF9yZXR1cm5fdmFsdWVzID0gW107XG4gICAgICAgIHZhciBhcmdzID0gQXJyYXkuZnJvbShhcmd1bWVudHMpLnNsaWNlKDEpO1xuICAgICAgICB2YXIgb2JzZXJ2ZXJzQ29weSA9IHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXS5zbGljZSgwKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYnNlcnZlcnNDb3B5Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb2xsZWN0ZWRfcmV0dXJuX3ZhbHVlcy5wdXNoKG9ic2VydmVyc0NvcHlbaV0uYXBwbHkob2JzZXJ2ZXJzQ29weVtpXSwgYXJncykgfHwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxlY3RlZF9yZXR1cm5fdmFsdWVzO1xuICAgIH07XG5cbiAgICBPYnNlcnZhYmxlLnByb3RvdHlwZS5oYXNPYnNlcnZlcnMgPSBmdW5jdGlvbiBoYXNPYnNlcnZlcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vYnNlcnZlcnMubGVuZ3RoO1xuICAgIH07XG5cbiAgICByZXR1cm4gT2JzZXJ2YWJsZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE9ic2VydmFibGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2xhbmdPYnNlcnZhYmxlID0gcmVxdWlyZSgnLi4vbGFuZy9PYnNlcnZhYmxlJyk7XG5cbnZhciBfbGFuZ09ic2VydmFibGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ09ic2VydmFibGUpO1xuXG52YXIgX3V0aWxMYW5nVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL0xhbmdVdGlscycpO1xuXG52YXIgX3V0aWxMYW5nVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbExhbmdVdGlscyk7XG5cbnZhciBfaHR0cFJlc291cmNlc01hbmFnZXIgPSByZXF1aXJlKCcuLi9odHRwL1Jlc291cmNlc01hbmFnZXInKTtcblxudmFyIF9odHRwUmVzb3VyY2VzTWFuYWdlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwUmVzb3VyY2VzTWFuYWdlcik7XG5cbnZhciBfbGFuZ0xvZ2dlciA9IHJlcXVpcmUoJy4uL2xhbmcvTG9nZ2VyJyk7XG5cbnZhciBfbGFuZ0xvZ2dlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nTG9nZ2VyKTtcblxudmFyIF91dGlsWE1MVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL1hNTFV0aWxzJyk7XG5cbnZhciBfdXRpbFhNTFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxYTUxVdGlscyk7XG5cbnZhciBfdXRpbEZ1bmNVdGlscyA9IHJlcXVpcmUoJy4uL3V0aWwvRnVuY1V0aWxzJyk7XG5cbnZhciBfdXRpbEZ1bmNVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsRnVuY1V0aWxzKTtcblxuLyoqXG4gKiBBIFwiQ29tbWFuZFwiIG9iamVjdCwgZW5jYXBzdWxhdGluZyBpdHMgY2FsbGJhY2tzLCBkaXNwbGF5IGF0dHJpYnV0ZXMsIGV0Yy5cbiAqL1xuXG52YXIgQWN0aW9uID0gKGZ1bmN0aW9uIChfT2JzZXJ2YWJsZSkge1xuXHRfaW5oZXJpdHMoQWN0aW9uLCBfT2JzZXJ2YWJsZSk7XG5cblx0LyoqXG4gICogU3RhbmRhcmQgY29uc3RydWN0b3JcbiAgKi9cblxuXHRmdW5jdGlvbiBBY3Rpb24oKSB7XG5cdFx0X2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFjdGlvbik7XG5cblx0XHRfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuXHRcdHRoaXMuX19ERUZBVUxUX0lDT05fUEFUSCA9IFwiYWN0aW9ucy9JQ09OX1NJWkVcIjtcblx0XHR0aGlzLm9wdGlvbnMgPSBfdXRpbExhbmdVdGlsczJbJ2RlZmF1bHQnXS5vYmplY3RNZXJnZSh7XG5cdFx0XHRuYW1lOiAnJyxcblx0XHRcdGljb25fY2xhc3M6ICcnLFxuXHRcdFx0dGV4dDogJycsXG5cdFx0XHR0aXRsZTogJycsXG5cdFx0XHR0ZXh0X2lkOiAnJyxcblx0XHRcdHRpdGxlX2lkOiAnJyxcblx0XHRcdHdlaWdodDogMCxcblx0XHRcdGhhc0FjY2Vzc0tleTogZmFsc2UsXG5cdFx0XHRhY2Nlc3NLZXk6ICcnLFxuXHRcdFx0c3ViTWVudTogZmFsc2UsXG5cdFx0XHRzdWJNZW51VXBkYXRlSW1hZ2U6IGZhbHNlLFxuXHRcdFx0c3ViTWVudVVwZGF0ZVRpdGxlOiBmYWxzZSxcblx0XHRcdGNhbGxiYWNrQ29kZTogJycsXG5cdFx0XHRjYWxsYmFjazogZnVuY3Rpb24gY2FsbGJhY2soKSB7fSxcblx0XHRcdGxpc3RlbmVyczogW10sXG5cdFx0XHRhY3RpdmVDb25kaXRpb246IG51bGxcblx0XHR9LCBhcmd1bWVudHNbMF0gfHwge30pO1xuXG5cdFx0dGhpcy5jb250ZXh0ID0gX3V0aWxMYW5nVXRpbHMyWydkZWZhdWx0J10ub2JqZWN0TWVyZ2Uoe1xuXHRcdFx0c2VsZWN0aW9uOiB0cnVlLFxuXHRcdFx0ZGlyOiBmYWxzZSxcblx0XHRcdGFsbG93ZWRNaW1lczogW10sXG5cdFx0XHRldmFsTWV0YWRhdGE6ICcnLFxuXHRcdFx0cm9vdDogdHJ1ZSxcblx0XHRcdGluWmlwOiB0cnVlLFxuXHRcdFx0cmVjeWNsZTogZmFsc2UsXG5cdFx0XHRiZWhhdmlvdXI6ICdoaWRkZW4nLFxuXHRcdFx0YWN0aW9uQmFyOiBmYWxzZSxcblx0XHRcdGFjdGlvbkJhckdyb3VwOiAnZGVmYXVsdCcsXG5cdFx0XHRjb250ZXh0TWVudTogZmFsc2UsXG5cdFx0XHRhanhwV2lkZ2V0czogbnVsbCxcblx0XHRcdGluZm9QYW5lbDogZmFsc2Vcblx0XHR9LCBhcmd1bWVudHNbMV0gfHwge30pO1xuXG5cdFx0dGhpcy5zZWxlY3Rpb25Db250ZXh0ID0gX3V0aWxMYW5nVXRpbHMyWydkZWZhdWx0J10ub2JqZWN0TWVyZ2Uoe1xuXHRcdFx0ZGlyOiBmYWxzZSxcblx0XHRcdGZpbGU6IHRydWUsXG5cdFx0XHRyZWN5Y2xlOiBmYWxzZSxcblx0XHRcdGJlaGF2aW91cjogJ2Rpc2FibGVkJyxcblx0XHRcdGFsbG93ZWRNaW1lczogW10sXG5cdFx0XHRldmFsTWV0YWRhdGE6ICcnLFxuXHRcdFx0dW5pcXVlOiB0cnVlLFxuXHRcdFx0bXVsdGlwbGVPbmx5OiBmYWxzZSxcblx0XHRcdGVuYWJsZVJvb3Q6IGZhbHNlXG5cdFx0fSwgYXJndW1lbnRzWzJdIHx8IHt9KTtcblxuXHRcdHRoaXMucmlnaHRzQ29udGV4dCA9IF91dGlsTGFuZ1V0aWxzMlsnZGVmYXVsdCddLm9iamVjdE1lcmdlKHtcblx0XHRcdG5vVXNlcjogdHJ1ZSxcblx0XHRcdHVzZXJMb2dnZWQ6IHRydWUsXG5cdFx0XHRndWVzdExvZ2dlZDogZmFsc2UsXG5cdFx0XHRyZWFkOiBmYWxzZSxcblx0XHRcdHdyaXRlOiBmYWxzZSxcblx0XHRcdGFkbWluT25seTogZmFsc2UsXG5cdFx0XHRwYXJhbURpc2FibGU6ICcnXG5cdFx0fSwgYXJndW1lbnRzWzNdIHx8IHt9KTtcblxuXHRcdHRoaXMuc3ViTWVudUl0ZW1zID0gX3V0aWxMYW5nVXRpbHMyWydkZWZhdWx0J10ub2JqZWN0TWVyZ2Uoe1xuXHRcdFx0c3RhdGljSXRlbXM6IG51bGwsXG5cdFx0XHRkeW5hbWljSXRlbXM6IG51bGwsXG5cdFx0XHRkeW5hbWljQnVpbGRlckNvZGU6IG51bGwsXG5cdFx0XHRwb3BvdmVyQ29udGVudDogbnVsbCxcblx0XHRcdG1hc3RlckFjdGlvbjogdW5kZWZpbmVkXG5cdFx0fSwgYXJndW1lbnRzWzRdIHx8IHt9KTtcblxuXHRcdHRoaXMuZWxlbWVudHMgPSBbXTtcblx0XHR0aGlzLmNvbnRleHRIaWRkZW4gPSBmYWxzZTtcblx0XHR0aGlzLmRlbnkgPSBmYWxzZTtcblx0XHRpZiAodGhpcy5jb250ZXh0LnN1Yk1lbnUpIHtcblx0XHRcdGlmICghdGhpcy5vcHRpb25zLmFjdGlvbkJhcikge1xuXHRcdFx0XHRhbGVydCgnV2FybmluZywgd3JvbmcgYWN0aW9uIGRlZmluaXRpb24uIENhbm5vdCB1c2UgYSBzdWJNZW51IGlmIG5vdCBkaXNwbGF5ZWQgaW4gdGhlIGFjdGlvbkJhciEnKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRBY3Rpb24ucHJvdG90eXBlLl9ldmFsU2NyaXB0cyA9IGZ1bmN0aW9uIF9ldmFsU2NyaXB0cyhkYXRhLCBsb2NhbFNjb3BlTWV0YWRhdGEpIHtcblx0XHR2YXIgbWV0YWRhdGEgPSBsb2NhbFNjb3BlTWV0YWRhdGE7XG5cdFx0cmV0dXJuIGV2YWwoZGF0YSk7XG5cdH07XG5cblx0LyoqXG4gICogU2V0cyB0aGUgbWFuYWdlciBmb3IgdGhpcyBhY3Rpb25cbiAgKiBAcGFyYW0gbWFuYWdlciBBY3Rpb25zTWFuYWdlclxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuc2V0TWFuYWdlciA9IGZ1bmN0aW9uIHNldE1hbmFnZXIobWFuYWdlcikge1xuXHRcdHRoaXMubWFuYWdlciA9IG1hbmFnZXI7XG5cdFx0aWYgKHRoaXMub3B0aW9ucy5zdWJNZW51KSB7XG5cdFx0XHRpZiAodGhpcy5zdWJNZW51SXRlbXMuc3RhdGljSXRlbXMpIHtcblx0XHRcdFx0dGhpcy5idWlsZFN1Ym1lbnVTdGF0aWNJdGVtcygpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuc3ViTWVudUl0ZW1zLmR5bmFtaWNJdGVtcyB8fCB0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlckNvZGUpIHtcblx0XHRcdFx0dGhpcy5wcmVwYXJlU3VibWVudUR5bmFtaWNCdWlsZGVyKCk7XG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMuc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyTW9kdWxlKSB7XG5cdFx0XHRcdF9odHRwUmVzb3VyY2VzTWFuYWdlcjJbJ2RlZmF1bHQnXS5kZXRlY3RNb2R1bGVUb0xvYWRBbmRBcHBseSh0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlck1vZHVsZSwgdGhpcy5wcmVwYXJlU3VibWVudUR5bmFtaWNCdWlsZGVyLmJpbmQodGhpcykpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAodGhpcy5vcHRpb25zLmxpc3RlbmVyc1snaW5pdCddKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR3aW5kb3cubGlzdGVuZXJDb250ZXh0ID0gdGhpcztcblx0XHRcdFx0aWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMubGlzdGVuZXJzWydpbml0J10gPT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdHRoaXMuX2V2YWxTY3JpcHRzKHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbJ2luaXQnXSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLmxpc3RlbmVyc1snaW5pdCddKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0X2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IoJ0Vycm9yIHdoaWxlIGV2YWx1YXRpbmcgaW5pdCBzY3JpcHQgZm9yIGFjdGlvbiAnICsgdGhpcy5vcHRpb25zLm5hbWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblxuXHQvKipcbiAgKiBFeGVjdXRlIHRoZSBhY3Rpb24gY29kZVxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuYXBwbHkgPSBmdW5jdGlvbiBhcHBseSgpIHtcblx0XHRpZiAodGhpcy5kZW55KSByZXR1cm47XG5cdFx0dGhpcy5tYW5hZ2VyLnB1Ymxpc2hBY3Rpb25FdmVudChcImJlZm9yZUFwcGx5LVwiICsgdGhpcy5vcHRpb25zLm5hbWUpO1xuXHRcdHdpbmRvdy5hY3Rpb25Bcmd1bWVudHMgPSBbXTtcblx0XHR3aW5kb3cuYWN0aW9uTWFuYWdlciA9IHRoaXMubWFuYWdlcjtcblx0XHRpZiAoYXJndW1lbnRzWzBdKSB3aW5kb3cuYWN0aW9uQXJndW1lbnRzID0gYXJndW1lbnRzWzBdO1xuXHRcdGlmICh0aGlzLm9wdGlvbnMuY2FsbGJhY2tDb2RlKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLl9ldmFsU2NyaXB0cyh0aGlzLm9wdGlvbnMuY2FsbGJhY2tDb2RlKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0X2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IoZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh0aGlzLm9wdGlvbnMuY2FsbGJhY2spIHtcblx0XHRcdHRoaXMub3B0aW9ucy5jYWxsYmFjayh0aGlzLm1hbmFnZXIsIGFyZ3VtZW50c1swXSk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLm9wdGlvbnMuc3ViTWVudSAmJiBhcmd1bWVudHNbMF0gJiYgYXJndW1lbnRzWzBdWzBdKSB7XG5cdFx0XHR0aGlzLm5vdGlmeShcInN1Ym1lbnVfYWN0aXZlXCIsIGFyZ3VtZW50c1swXVswXSk7XG5cdFx0fVxuXHRcdHdpbmRvdy5hY3Rpb25Bcmd1bWVudHMgPSBudWxsO1xuXHRcdHdpbmRvdy5hY3Rpb25NYW5hZ2VyID0gbnVsbDtcblx0XHR0aGlzLm1hbmFnZXIucHVibGlzaEFjdGlvbkV2ZW50KFwiYWZ0ZXJBcHBseS1cIiArIHRoaXMub3B0aW9ucy5uYW1lKTtcblx0fTtcblxuXHQvKipcbiAgKiBVcGRhdGVzIHRoZSBhY3Rpb24gc3RhdHVzIG9uIGNvbnRleHQgY2hhbmdlXG4gICAgICogQHBhcmFtIGRhdGFNb2RlbCBQeWRpb0RhdGFNb2RlbFxuICAgICAqIEBwYXJhbSB1c2Vyc0VuYWJsZWQgYm9vbGVhblxuICAgICAqIEBwYXJhbSBjcnRVc2VyIHN0cmluZ1xuICAqIEByZXR1cm5zIHZvaWRcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLmZpcmVDb250ZXh0Q2hhbmdlID0gZnVuY3Rpb24gZmlyZUNvbnRleHRDaGFuZ2UoZGF0YU1vZGVsLCB1c2Vyc0VuYWJsZWQsIGNydFVzZXIpIHtcblxuXHRcdGlmICh0aGlzLnJpZ2h0c0NvbnRleHQucGFyYW1EaXNhYmxlKSB7XG5cdFx0XHQvLyBGdWxsIGRpc2FibGVcblxuXHRcdFx0dmFyIF9yaWdodHNDb250ZXh0JHBhcmFtRGlzYWJsZSRzcGxpdCA9IHRoaXMucmlnaHRzQ29udGV4dC5wYXJhbURpc2FibGUuc3BsaXQoJy8nKTtcblxuXHRcdFx0dmFyIHBsdWdpbiA9IF9yaWdodHNDb250ZXh0JHBhcmFtRGlzYWJsZSRzcGxpdFswXTtcblx0XHRcdHZhciBwYXJhbSA9IF9yaWdodHNDb250ZXh0JHBhcmFtRGlzYWJsZSRzcGxpdFsxXTtcblxuXHRcdFx0aWYgKHRoaXMubWFuYWdlci5nZXRQeWRpbygpLmdldFBsdWdpbkNvbmZpZ3MocGx1Z2luKS5oYXMocGFyYW0pKSB7XG5cdFx0XHRcdHZhciBwVmFsdWUgPSB0aGlzLm1hbmFnZXIuZ2V0UHlkaW8oKS5nZXRQbHVnaW5Db25maWdzKHBsdWdpbikuZ2V0KHBhcmFtKTtcblx0XHRcdFx0aWYgKHBWYWx1ZSA9PT0gdHJ1ZSB8fCBwVmFsdWUgPT09ICd0cnVlJykge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLmhpZGVGb3JDb250ZXh0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR2YXIgY3J0SXNSZWN5Y2xlID0gZmFsc2U7XG5cdFx0dmFyIGNydEluWmlwID0gZmFsc2U7XG5cdFx0dmFyIGNydElzUm9vdCA9IGZhbHNlO1xuXHRcdHZhciBjcnRBanhwTWltZSA9ICcnO1xuXHRcdHZhciBjcnRJc1JlYWRPbmx5ID0gZmFsc2U7XG5cblx0XHR2YXIgY3J0Tm9kZSA9IGRhdGFNb2RlbC5nZXRDb250ZXh0Tm9kZSgpO1xuXHRcdGlmIChjcnROb2RlKSB7XG5cdFx0XHRjcnRJc1JlY3ljbGUgPSBjcnROb2RlLmdldEFqeHBNaW1lKCkgPT09IFwiYWp4cF9yZWN5Y2xlXCI7XG5cdFx0XHRjcnRJblppcCA9IGNydE5vZGUuaGFzQWp4cE1pbWVJbkJyYW5jaChcImFqeHBfYnJvd3NhYmxlX2FyY2hpdmVcIik7XG5cdFx0XHRjcnRJc1Jvb3QgPSBjcnROb2RlLmlzUm9vdCgpO1xuXHRcdFx0Y3J0QWp4cE1pbWUgPSBjcnROb2RlLmdldEFqeHBNaW1lKCk7XG5cdFx0XHRjcnRJc1JlYWRPbmx5ID0gY3J0Tm9kZS5oYXNNZXRhZGF0YUluQnJhbmNoKFwibm9kZV9yZWFkb25seVwiLCBcInRydWVcIikgfHwgY3J0Tm9kZS5nZXRNZXRhZGF0YSgpLmhhcyhcImxldmVsX3JlYWRvbmx5XCIpICYmIGNydE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJsZXZlbF9yZWFkb25seVwiKSA9PT0gXCJ0cnVlXCI7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbXCJjb250ZXh0Q2hhbmdlXCJdKSB7XG5cdFx0XHRpZiAodGhpcy5vcHRpb25zLmxpc3RlbmVyc1tcImNvbnRleHRDaGFuZ2VcIl0gaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMubGlzdGVuZXJzW1wiY29udGV4dENoYW5nZVwiXSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2luZG93Lmxpc3RlbmVyQ29udGV4dCA9IHRoaXM7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0dGhpcy5fZXZhbFNjcmlwdHModGhpcy5vcHRpb25zLmxpc3RlbmVyc1tcImNvbnRleHRDaGFuZ2VcIl0pO1xuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0X2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IoXCJFcnJvciB3aGlsZSBldmFsdWF0aW5nIHNjcmlwdCBmb3IgY29udGV4dENoYW5nZSBldmVudCAtIGFjdGlvbiBcIiArIHRoaXMub3B0aW9ucy5uYW1lKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHR2YXIgcmlnaHRzQ29udGV4dCA9IHRoaXMucmlnaHRzQ29udGV4dDtcblx0XHRpZiAoIXJpZ2h0c0NvbnRleHQubm9Vc2VyICYmICF1c2Vyc0VuYWJsZWQpIHtcblx0XHRcdHJldHVybiB0aGlzLmhpZGVGb3JDb250ZXh0KCk7XG5cdFx0fVxuXHRcdGlmIChyaWdodHNDb250ZXh0LnVzZXJMb2dnZWQgPT09ICdvbmx5JyAmJiBjcnRVc2VyID09PSBudWxsIHx8IHJpZ2h0c0NvbnRleHQuZ3Vlc3RMb2dnZWQgJiYgcmlnaHRzQ29udGV4dC5ndWVzdExvZ2dlZCA9PT0gJ2hpZGRlbicgJiYgY3J0VXNlciAhPT0gbnVsbCAmJiBjcnRVc2VyLmlkID09PSAnZ3Vlc3QnKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdH1cblx0XHRpZiAocmlnaHRzQ29udGV4dC51c2VyTG9nZ2VkID09PSAnaGlkZGVuJyAmJiBjcnRVc2VyICE9PSBudWxsICYmICEoY3J0VXNlci5pZCA9PT0gJ2d1ZXN0JyAmJiByaWdodHNDb250ZXh0Lmd1ZXN0TG9nZ2VkICYmIHJpZ2h0c0NvbnRleHQuZ3Vlc3RMb2dnZWQgPT09ICdzaG93JykpIHtcblx0XHRcdHJldHVybiB0aGlzLmhpZGVGb3JDb250ZXh0KCk7XG5cdFx0fVxuXHRcdGlmIChyaWdodHNDb250ZXh0LmFkbWluT25seSAmJiAoY3J0VXNlciA9PSBudWxsIHx8ICFjcnRVc2VyLmlzQWRtaW4pKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdH1cblx0XHRpZiAocmlnaHRzQ29udGV4dC5yZWFkICYmIGNydFVzZXIgIT0gbnVsbCAmJiAhY3J0VXNlci5jYW5SZWFkKCkpIHtcblx0XHRcdHJldHVybiB0aGlzLmhpZGVGb3JDb250ZXh0KCk7XG5cdFx0fVxuXHRcdGlmIChyaWdodHNDb250ZXh0LndyaXRlICYmIGNydFVzZXIgIT0gbnVsbCAmJiAhY3J0VXNlci5jYW5Xcml0ZSgpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdH1cblx0XHRpZiAocmlnaHRzQ29udGV4dC53cml0ZSAmJiBjcnRJc1JlYWRPbmx5KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5jb250ZXh0LmFsbG93ZWRNaW1lcy5sZW5ndGgpIHtcblx0XHRcdGlmICh0aGlzLmNvbnRleHQuYWxsb3dlZE1pbWVzLmluZGV4T2YoXCIqXCIpID09PSAtMSAmJiB0aGlzLmNvbnRleHQuYWxsb3dlZE1pbWVzLmluZGV4T2YoY3J0QWp4cE1pbWUpID09PSAtMSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuY29udGV4dC5hbGxvd2VkTWltZXMuaW5kZXhPZihcIl5cIiArIGNydEFqeHBNaW1lKSAhPT0gLTEpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuaGlkZUZvckNvbnRleHQoKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRoaXMuY29udGV4dC5yZWN5Y2xlKSB7XG5cdFx0XHRpZiAodGhpcy5jb250ZXh0LnJlY3ljbGUgPT09ICdvbmx5JyAmJiAhY3J0SXNSZWN5Y2xlKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmhpZGVGb3JDb250ZXh0KCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5jb250ZXh0LnJlY3ljbGUgPT09ICdoaWRkZW4nICYmIGNydElzUmVjeWNsZSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIXRoaXMuY29udGV4dC5pblppcCAmJiBjcnRJblppcCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuaGlkZUZvckNvbnRleHQoKTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLmNvbnRleHQucm9vdCAmJiBjcnRJc1Jvb3QpIHtcblx0XHRcdHJldHVybiB0aGlzLmhpZGVGb3JDb250ZXh0KCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5zaG93Rm9yQ29udGV4dChkYXRhTW9kZWwpO1xuXHR9O1xuXG5cdC8qKlxuICAqIFVwYXRlcyB0aGUgYWN0aW9uIHN0YXR1cyBvbiBzZWxlY3Rpb24gY2hhbmdlXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5maXJlU2VsZWN0aW9uQ2hhbmdlID0gZnVuY3Rpb24gZmlyZVNlbGVjdGlvbkNoYW5nZSgpIHtcblx0XHRpZiAodGhpcy5vcHRpb25zLmxpc3RlbmVyc1tcInNlbGVjdGlvbkNoYW5nZVwiXSkge1xuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbXCJzZWxlY3Rpb25DaGFuZ2VcIl0gaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMubGlzdGVuZXJzW1wic2VsZWN0aW9uQ2hhbmdlXCJdKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR3aW5kb3cubGlzdGVuZXJDb250ZXh0ID0gdGhpcztcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHR0aGlzLl9ldmFsU2NyaXB0cyh0aGlzLm9wdGlvbnMubGlzdGVuZXJzW1wic2VsZWN0aW9uQ2hhbmdlXCJdKTtcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmVycm9yKFwiRXJyb3Igd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQgZm9yIHNlbGVjdGlvbkNoYW5nZSBldmVudCAtIGFjdGlvbiBcIiArIHRoaXMub3B0aW9ucy5uYW1lKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAodGhpcy5vcHRpb25zLmFjdGl2ZUNvbmRpdGlvbikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0dmFyIHJlc3VsdCA9IHRoaXMub3B0aW9ucy5hY3RpdmVDb25kaXRpb24oKTtcblx0XHRcdFx0aWYgKHJlc3VsdCA9PT0gZmFsc2UpIHRoaXMuZGlzYWJsZSgpO2Vsc2UgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkgdGhpcy5lbmFibGUoKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0X2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IoXCJFcnJvciB3aGlsZSBldmFsdWF0aW5nIGFjdGl2ZUNvbmRpdGlvbigpIHNjcmlwdCBmb3IgYWN0aW9uIFwiICsgdGhpcy5vcHRpb25zLm5hbWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAodGhpcy5jb250ZXh0SGlkZGVuIHx8ICF0aGlzLmNvbnRleHQuc2VsZWN0aW9uKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHZhciB1c2VyU2VsZWN0aW9uID0gYXJndW1lbnRzWzBdO1xuXHRcdHZhciBoYXNSb290ID0gZmFsc2U7XG5cdFx0aWYgKHVzZXJTZWxlY3Rpb24gIT0gbnVsbCkge1xuXHRcdFx0aGFzUm9vdCA9IHVzZXJTZWxlY3Rpb24uc2VsZWN0aW9uSGFzUm9vdE5vZGUoKTtcblx0XHRcdHZhciBiVW5pcXVlID0gdXNlclNlbGVjdGlvbi5pc1VuaXF1ZSgpO1xuXHRcdFx0dmFyIGJGaWxlID0gdXNlclNlbGVjdGlvbi5oYXNGaWxlKCk7XG5cdFx0XHR2YXIgYkRpciA9IHVzZXJTZWxlY3Rpb24uaGFzRGlyKCk7XG5cdFx0XHR2YXIgYlJlY3ljbGUgPSB1c2VyU2VsZWN0aW9uLmlzUmVjeWNsZSgpO1xuXHRcdH1cblx0XHR2YXIgc2VsZWN0aW9uQ29udGV4dCA9IHRoaXMuc2VsZWN0aW9uQ29udGV4dDtcblx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC5hbGxvd2VkTWltZXMubGVuZ3RoKSB7XG5cdFx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC5iZWhhdmlvdXIgPT0gJ2hpZGRlbicpIHRoaXMuaGlkZSgpO2Vsc2UgdGhpcy5kaXNhYmxlKCk7XG5cdFx0fVxuXHRcdGlmIChzZWxlY3Rpb25Db250ZXh0LmV2YWxNZXRhZGF0YSAmJiB1c2VyU2VsZWN0aW9uICYmIHVzZXJTZWxlY3Rpb24uaXNVbmlxdWUoKSkge1xuXHRcdFx0dmFyIHJlc3VsdCA9IHRoaXMuX2V2YWxTY3JpcHRzKHNlbGVjdGlvbkNvbnRleHQuZXZhbE1ldGFkYXRhLCB1c2VyU2VsZWN0aW9uLmdldFVuaXF1ZU5vZGUoKS5nZXRNZXRhZGF0YSgpKTtcblx0XHRcdGlmICghcmVzdWx0KSB7XG5cdFx0XHRcdGlmIChzZWxlY3Rpb25Db250ZXh0LmJlaGF2aW91ciA9PSAnaGlkZGVuJykgdGhpcy5oaWRlKCk7ZWxzZSB0aGlzLmRpc2FibGUoKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIXNlbGVjdGlvbkNvbnRleHQuZW5hYmxlUm9vdCAmJiBoYXNSb290KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5kaXNhYmxlKCk7XG5cdFx0fVxuXHRcdGlmIChzZWxlY3Rpb25Db250ZXh0LnVuaXF1ZSAmJiAhYlVuaXF1ZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzYWJsZSgpO1xuXHRcdH1cblx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC5tdWx0aXBsZU9ubHkgJiYgYlVuaXF1ZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzYWJsZSgpO1xuXHRcdH1cblx0XHRpZiAoKHNlbGVjdGlvbkNvbnRleHQuZmlsZSB8fCBzZWxlY3Rpb25Db250ZXh0LmRpcikgJiYgIWJGaWxlICYmICFiRGlyKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5kaXNhYmxlKCk7XG5cdFx0fVxuXHRcdGlmIChzZWxlY3Rpb25Db250ZXh0LmRpciAmJiAhc2VsZWN0aW9uQ29udGV4dC5maWxlICYmIGJGaWxlIHx8ICFzZWxlY3Rpb25Db250ZXh0LmRpciAmJiBzZWxlY3Rpb25Db250ZXh0LmZpbGUgJiYgYkRpcikge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzYWJsZSgpO1xuXHRcdH1cblx0XHRpZiAoIXNlbGVjdGlvbkNvbnRleHQucmVjeWNsZSAmJiBiUmVjeWNsZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzYWJsZSgpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5yaWdodHNDb250ZXh0LndyaXRlICYmIHVzZXJTZWxlY3Rpb24uaGFzUmVhZE9ubHkoKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzYWJsZSgpO1xuXHRcdH1cblx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC5hbGxvd2VkTWltZXMubGVuZ3RoICYmIHVzZXJTZWxlY3Rpb24gJiYgc2VsZWN0aW9uQ29udGV4dC5hbGxvd2VkTWltZXMuaW5kZXhPZignKicpID09IC0xICYmICF1c2VyU2VsZWN0aW9uLmhhc01pbWUoc2VsZWN0aW9uQ29udGV4dC5hbGxvd2VkTWltZXMpKSB7XG5cdFx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC5iZWhhdmlvdXIgPT0gJ2hpZGRlbicpIHJldHVybiB0aGlzLmhpZGUoKTtlbHNlIHJldHVybiB0aGlzLmRpc2FibGUoKTtcblx0XHR9XG5cdFx0aWYgKHNlbGVjdGlvbkNvbnRleHQuYWxsb3dlZE1pbWVzLmxlbmd0aCAmJiB1c2VyU2VsZWN0aW9uICYmIHNlbGVjdGlvbkNvbnRleHQuYWxsb3dlZE1pbWVzLmluZGV4T2YoXCJeXCIpICE9PSAtMSkge1xuXHRcdFx0dmFyIGZvcmJpZGRlblZhbHVlRm91bmQgPSBmYWxzZTtcblx0XHRcdHNlbGVjdGlvbkNvbnRleHQuYWxsb3dlZE1pbWVzLmZvckVhY2goZnVuY3Rpb24gKG0pIHtcblx0XHRcdFx0aWYgKG0uaW5kZXhPZihcIl5cIikgPT0gLTEpIHJldHVybjtcblx0XHRcdFx0aWYgKHVzZXJTZWxlY3Rpb24uaGFzTWltZShbbS5yZXBsYWNlKFwiXlwiLCBcIlwiKV0pKSB7XG5cdFx0XHRcdFx0Zm9yYmlkZGVuVmFsdWVGb3VuZCA9IHRydWU7XG5cdFx0XHRcdFx0Ly90aHJvdyAkYnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0aWYgKGZvcmJpZGRlblZhbHVlRm91bmQpIHtcblx0XHRcdFx0aWYgKHNlbGVjdGlvbkNvbnRleHQuYmVoYXZpb3VyID09ICdoaWRkZW4nKSByZXR1cm4gdGhpcy5oaWRlKCk7ZWxzZSByZXR1cm4gdGhpcy5kaXNhYmxlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuc2hvdygpO1xuXHRcdHRoaXMuZW5hYmxlKCk7XG5cdH07XG5cblx0QWN0aW9uLnByb3RvdHlwZS5nZXRNZW51RGF0YSA9IGZ1bmN0aW9uIGdldE1lbnVEYXRhKCkge1xuXHRcdHZhciBtZW51SXRlbSA9IHtcblx0XHRcdG5hbWU6IHRoaXMuZ2V0S2V5ZWRUZXh0KCksXG5cdFx0XHRsYWJlbF9pZDogdGhpcy5vcHRpb25zLnRleHRfaWQsXG5cdFx0XHRyYXdfbmFtZTogdGhpcy5vcHRpb25zLnRleHQsXG5cdFx0XHRhbHQ6IHRoaXMub3B0aW9ucy50aXRsZSxcblx0XHRcdGFjdGlvbl9pZDogdGhpcy5vcHRpb25zLm5hbWUsXG5cdFx0XHR3ZWlnaHQ6IHRoaXMub3B0aW9ucy53ZWlnaHQgfHwgMCxcblx0XHRcdGNhbGxiYWNrOiAoZnVuY3Rpb24gKGUpIHtcblx0XHRcdFx0dGhpcy5hcHBseSgpO1xuXHRcdFx0fSkuYmluZCh0aGlzKVxuXHRcdH07XG5cdFx0aWYgKHRoaXMub3B0aW9ucy5pY29uX2NsYXNzKSB7XG5cdFx0XHRtZW51SXRlbS5pY29uX2NsYXNzID0gdGhpcy5vcHRpb25zLmljb25fY2xhc3M7XG5cdFx0fVxuXHRcdGlmICh0aGlzLm9wdGlvbnMuc3ViTWVudSkge1xuXHRcdFx0bWVudUl0ZW0uc3ViTWVudSA9IFtdO1xuXHRcdFx0aWYgKHRoaXMuc3ViTWVudUl0ZW1zLnN0YXRpY09wdGlvbnMpIHtcblx0XHRcdFx0bWVudUl0ZW0uc3ViTWVudSA9IHRoaXMuc3ViTWVudUl0ZW1zLnN0YXRpY09wdGlvbnM7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXIpIHtcblx0XHRcdFx0bWVudUl0ZW0uc3ViTWVudUJlZm9yZVNob3cgPSB0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlcjtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG1lbnVJdGVtO1xuXHR9O1xuXG5cdC8qKlxuICAqIFBhcnNlcyBhbiBYTUwgZnJhZ21lbnQgdG8gY29uZmlndXJlIHRoaXMgYWN0aW9uXG4gICogQHBhcmFtIHhtbE5vZGUgTm9kZSBYTUwgRnJhZ21lbnQgZGVzY3JpYmluZyB0aGUgYWN0aW9uXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5jcmVhdGVGcm9tWE1MID0gZnVuY3Rpb24gY3JlYXRlRnJvbVhNTCh4bWxOb2RlKSB7XG5cdFx0dmFyIF90aGlzID0gdGhpcztcblxuXHRcdHRoaXMub3B0aW9ucy5uYW1lID0geG1sTm9kZS5nZXRBdHRyaWJ1dGUoJ25hbWUnKTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHhtbE5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIG5vZGUgPSB4bWxOb2RlLmNoaWxkTm9kZXNbaV07XG5cdFx0XHR2YXIgZGVmYXVsdEF0dHJpYnV0ZXMgPSB7XG5cdFx0XHRcdGRpcjogXCJkaXJEZWZhdWx0XCIsXG5cdFx0XHRcdGZpbGU6IFwiZmlsZURlZmF1bHRcIixcblx0XHRcdFx0ZHJhZ25kcm9wOiBcImRyYWduZHJvcERlZmF1bHRcIixcblx0XHRcdFx0Y3RybGRyYWduZHJvcDogXCJjdHJsRHJhZ25kcm9wRGVmYXVsdFwiLFxuXHRcdFx0XHRleHBpcmU6IFwiZXhwaXJlRGVmYXVsdFwiXG5cdFx0XHR9O1xuXHRcdFx0Zm9yICh2YXIga2V5IGluIGRlZmF1bHRBdHRyaWJ1dGVzKSB7XG5cdFx0XHRcdGlmICghZGVmYXVsdEF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG5cdFx0XHRcdHZhciB2YWx1ZSA9IGRlZmF1bHRBdHRyaWJ1dGVzW2tleV07XG5cdFx0XHRcdGlmICh4bWxOb2RlLmdldEF0dHJpYnV0ZSh2YWx1ZSkgJiYgeG1sTm9kZS5nZXRBdHRyaWJ1dGUodmFsdWUpID09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmRlZmF1bHRzKSB0aGlzLmRlZmF1bHRzID0ge307XG5cdFx0XHRcdFx0dGhpcy5kZWZhdWx0c1trZXldID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dmFyIGo7XG5cdFx0XHRpZiAobm9kZS5ub2RlTmFtZSA9PSBcInByb2Nlc3NpbmdcIikge1xuXHRcdFx0XHR2YXIgY2xpZW50Rm9ybURhdGEgPSB7fTtcblx0XHRcdFx0Zm9yIChqID0gMDsgaiA8IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdHZhciBwcm9jZXNzTm9kZSA9IG5vZGUuY2hpbGROb2Rlc1tqXTtcblx0XHRcdFx0XHRpZiAocHJvY2Vzc05vZGUubm9kZU5hbWUgPT09IFwiY2xpZW50Q2FsbGJhY2tcIikge1xuXHRcdFx0XHRcdFx0aWYgKHByb2Nlc3NOb2RlLmdldEF0dHJpYnV0ZSgnbW9kdWxlJykpIHtcblx0XHRcdFx0XHRcdFx0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHR2YXIgZk5hbWUgPSBwcm9jZXNzTm9kZS5nZXRBdHRyaWJ1dGUoJ21vZHVsZScpO1xuXHRcdFx0XHRcdFx0XHRcdF90aGlzLm9wdGlvbnMuY2FsbGJhY2sgPSBmdW5jdGlvbiAobWFuYWdlciwgb3RoZXJBcmd1bWVudHMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdF9odHRwUmVzb3VyY2VzTWFuYWdlcjJbJ2RlZmF1bHQnXS5kZXRlY3RNb2R1bGVUb0xvYWRBbmRBcHBseShmTmFtZSwgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRfdXRpbEZ1bmNVdGlsczJbJ2RlZmF1bHQnXS5leGVjdXRlRnVuY3Rpb25CeU5hbWUoZk5hbWUsIHdpbmRvdywgbWFuYWdlciwgb3RoZXJBcmd1bWVudHMpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoX3RoaXMuZGVmYXVsdHMgJiYgKF90aGlzLmRlZmF1bHRzWydkcmFnbmRyb3AnXSB8fCBfdGhpcy5kZWZhdWx0c1snY3RybGRyYWduZHJvcCddKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0X3RoaXMub3B0aW9ucy5kcmFnbmRyb3BDaGVja01vZHVsZSA9IGZOYW1lO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSkoKTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAocHJvY2Vzc05vZGUuZmlyc3RDaGlsZCkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLm9wdGlvbnMuY2FsbGJhY2tDb2RlID0gcHJvY2Vzc05vZGUuZmlyc3RDaGlsZC5ub2RlVmFsdWUudHJpbSgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAocHJvY2Vzc05vZGUubm9kZU5hbWUgPT09IFwiY2xpZW50TGlzdGVuZXJcIikge1xuXHRcdFx0XHRcdFx0aWYgKHByb2Nlc3NOb2RlLmdldEF0dHJpYnV0ZSgnbW9kdWxlJykpIHtcblx0XHRcdFx0XHRcdFx0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHR2YXIgbW9kdWxlTmFtZSA9IHByb2Nlc3NOb2RlLmdldEF0dHJpYnV0ZSgnbW9kdWxlJyk7XG5cdFx0XHRcdFx0XHRcdFx0X3RoaXMub3B0aW9ucy5saXN0ZW5lcnNbcHJvY2Vzc05vZGUuZ2V0QXR0cmlidXRlKCduYW1lJyldID0gKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdF9odHRwUmVzb3VyY2VzTWFuYWdlcjJbJ2RlZmF1bHQnXS5kZXRlY3RNb2R1bGVUb0xvYWRBbmRBcHBseShtb2R1bGVOYW1lLCAoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZnVuYyA9IF91dGlsRnVuY1V0aWxzMlsnZGVmYXVsdCddLmdldEZ1bmN0aW9uQnlOYW1lKG1vZHVsZU5hbWUsIHdpbmRvdyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChmdW5jKSBmdW5jLmFwcGx5KHRoaXMpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSkuYmluZCh0aGlzKSk7XG5cdFx0XHRcdFx0XHRcdFx0fSkuYmluZChfdGhpcyk7XG5cdFx0XHRcdFx0XHRcdH0pKCk7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHByb2Nlc3NOb2RlLmZpcnN0Q2hpbGQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb25zLmxpc3RlbmVyc1twcm9jZXNzTm9kZS5nZXRBdHRyaWJ1dGUoJ25hbWUnKV0gPSBwcm9jZXNzTm9kZS5maXJzdENoaWxkLm5vZGVWYWx1ZS50cmltKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChwcm9jZXNzTm9kZS5ub2RlTmFtZSA9PT0gXCJhY3RpdmVDb25kaXRpb25cIiAmJiBwcm9jZXNzTm9kZS5maXJzdENoaWxkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbnMuYWN0aXZlQ29uZGl0aW9uID0gbmV3IEZ1bmN0aW9uKHByb2Nlc3NOb2RlLmZpcnN0Q2hpbGQubm9kZVZhbHVlLnRyaW0oKSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKG5vZGUubm9kZU5hbWUgPT09IFwiZ3VpXCIpIHtcblx0XHRcdFx0dGhpcy5vcHRpb25zLnRleHRfaWQgPSBub2RlLmdldEF0dHJpYnV0ZSgndGV4dCcpO1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMudGl0bGVfaWQgPSBub2RlLmdldEF0dHJpYnV0ZSgndGl0bGUnKTtcblx0XHRcdFx0dGhpcy5vcHRpb25zLnRleHQgPSB0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZShub2RlLmdldEF0dHJpYnV0ZSgndGV4dCcpKSB8fCAnbm90X2ZvdW5kJztcblx0XHRcdFx0dGhpcy5vcHRpb25zLnRpdGxlID0gdGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2Uobm9kZS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpIHx8ICdub3RfZm91bmQnO1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMuc3JjID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ3NyYycpO1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMuaWNvbl9jbGFzcyA9IG5vZGUuZ2V0QXR0cmlidXRlKCdpY29uQ2xhc3MnKTtcblx0XHRcdFx0dGhpcy5vcHRpb25zLndlaWdodCA9IG5vZGUuZ2V0QXR0cmlidXRlKCd3ZWlnaHQnKSB8fCAwO1xuXHRcdFx0XHRpZiAobm9kZS5nZXRBdHRyaWJ1dGUoJ2hhc0FjY2Vzc0tleScpICYmIG5vZGUuZ2V0QXR0cmlidXRlKCdoYXNBY2Nlc3NLZXknKSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMuYWNjZXNzS2V5ID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2FjY2Vzc0tleScpO1xuXHRcdFx0XHRcdHRoaXMub3B0aW9ucy5oYXNBY2Nlc3NLZXkgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChub2RlLmdldEF0dHJpYnV0ZSgnc3BlY2lhbEFjY2Vzc0tleScpKSB7XG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnNwZWNpYWxBY2Nlc3NLZXkgPSBub2RlLmdldEF0dHJpYnV0ZSgnc3BlY2lhbEFjY2Vzc0tleScpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGZvciAoaiA9IDA7IGogPCBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHRpZiAobm9kZS5jaGlsZE5vZGVzW2pdLm5vZGVOYW1lID09PSBcImNvbnRleHRcIikge1xuXHRcdFx0XHRcdFx0dGhpcy5hdHRyaWJ1dGVzVG9PYmplY3QodGhpcy5jb250ZXh0LCBub2RlLmNoaWxkTm9kZXNbal0pO1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMuY29udGV4dC5hanhwV2lkZ2V0cykge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmNvbnRleHQuYWp4cFdpZGdldHMgPSB0aGlzLmNvbnRleHQuYWp4cFdpZGdldHMuc3BsaXQoJywnKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuY29udGV4dC5hanhwV2lkZ2V0cyA9IFtdO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly8gQmFja3dhcmQgY29tcGF0aWJpbGl0eVxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuY29udGV4dC5pbmZvUGFuZWwpIHRoaXMuY29udGV4dC5hanhwV2lkZ2V0cy5wdXNoKCdJbmZvUGFuZWwnKTtcblx0XHRcdFx0XHRcdGlmICh0aGlzLmNvbnRleHQuYWN0aW9uQmFyKSB0aGlzLmNvbnRleHQuYWp4cFdpZGdldHMucHVzaCgnQWN0aW9uc1Rvb2xiYXInKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKG5vZGUuY2hpbGROb2Rlc1tqXS5ub2RlTmFtZSA9PT0gXCJzZWxlY3Rpb25Db250ZXh0XCIpIHtcblx0XHRcdFx0XHRcdHRoaXMuYXR0cmlidXRlc1RvT2JqZWN0KHRoaXMuc2VsZWN0aW9uQ29udGV4dCwgbm9kZS5jaGlsZE5vZGVzW2pdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAobm9kZS5ub2RlTmFtZSA9PT0gXCJyaWdodHNDb250ZXh0XCIpIHtcblx0XHRcdFx0dGhpcy5hdHRyaWJ1dGVzVG9PYmplY3QodGhpcy5yaWdodHNDb250ZXh0LCBub2RlKTtcblx0XHRcdH0gZWxzZSBpZiAobm9kZS5ub2RlTmFtZSA9PT0gXCJzdWJNZW51XCIpIHtcblx0XHRcdFx0dGhpcy5vcHRpb25zLnN1Yk1lbnUgPSB0cnVlO1xuXHRcdFx0XHRpZiAobm9kZS5nZXRBdHRyaWJ1dGUoXCJ1cGRhdGVJbWFnZU9uU2VsZWN0XCIpICYmIG5vZGUuZ2V0QXR0cmlidXRlKFwidXBkYXRlSW1hZ2VPblNlbGVjdFwiKSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMuc3ViTWVudVVwZGF0ZUltYWdlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobm9kZS5nZXRBdHRyaWJ1dGUoXCJ1cGRhdGVUaXRsZU9uU2VsZWN0XCIpICYmIG5vZGUuZ2V0QXR0cmlidXRlKFwidXBkYXRlVGl0bGVPblNlbGVjdFwiKSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMuc3ViTWVudVVwZGF0ZVRpdGxlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobm9kZS5nZXRBdHRyaWJ1dGUoXCJtYXN0ZXJBY3Rpb25cIikpIHtcblx0XHRcdFx0XHR0aGlzLnN1Yk1lbnVJdGVtcy5tYXN0ZXJBY3Rpb24gPSBub2RlLmdldEF0dHJpYnV0ZShcIm1hc3RlckFjdGlvblwiKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IgKGogPSAwOyBqIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0aWYgKG5vZGUuY2hpbGROb2Rlc1tqXS5ub2RlTmFtZSA9PT0gXCJzdGF0aWNJdGVtc1wiIHx8IG5vZGUuY2hpbGROb2Rlc1tqXS5ub2RlTmFtZSA9PT0gXCJkeW5hbWljSXRlbXNcIikge1xuXHRcdFx0XHRcdFx0dGhpcy5zdWJNZW51SXRlbXNbbm9kZS5jaGlsZE5vZGVzW2pdLm5vZGVOYW1lXSA9IFtdO1xuXHRcdFx0XHRcdFx0Zm9yICh2YXIgayA9IDA7IGsgPCBub2RlLmNoaWxkTm9kZXNbal0uY2hpbGROb2Rlcy5sZW5ndGg7IGsrKykge1xuXHRcdFx0XHRcdFx0XHRpZiAobm9kZS5jaGlsZE5vZGVzW2pdLmNoaWxkTm9kZXNba10ubm9kZU5hbWUuc3RhcnRzV2l0aChcIml0ZW1cIikpIHtcblx0XHRcdFx0XHRcdFx0XHR2YXIgaXRlbSA9IHt9O1xuXHRcdFx0XHRcdFx0XHRcdGZvciAodmFyIHogPSAwOyB6IDwgbm9kZS5jaGlsZE5vZGVzW2pdLmNoaWxkTm9kZXNba10uYXR0cmlidXRlcy5sZW5ndGg7IHorKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHJpYnV0ZSA9IG5vZGUuY2hpbGROb2Rlc1tqXS5jaGlsZE5vZGVzW2tdLmF0dHJpYnV0ZXNbel07XG5cdFx0XHRcdFx0XHRcdFx0XHRpdGVtW2F0dHJpYnV0ZS5ub2RlTmFtZV0gPSBhdHRyaWJ1dGUudmFsdWU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3ViTWVudUl0ZW1zW25vZGUuY2hpbGROb2Rlc1tqXS5ub2RlTmFtZV0ucHVzaChpdGVtKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAobm9kZS5jaGlsZE5vZGVzW2pdLm5vZGVOYW1lID09PSBcImR5bmFtaWNCdWlsZGVyXCIpIHtcblx0XHRcdFx0XHRcdGlmIChub2RlLmNoaWxkTm9kZXNbal0uZ2V0QXR0cmlidXRlKFwibW9kdWxlXCIpKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyTW9kdWxlID0gbm9kZS5jaGlsZE5vZGVzW2pdLmdldEF0dHJpYnV0ZShcIm1vZHVsZVwiKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyQ29kZSA9IG5vZGUuY2hpbGROb2Rlc1tqXS5maXJzdENoaWxkLm5vZGVWYWx1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKCF0aGlzLm9wdGlvbnMuaGFzQWNjZXNzS2V5KSByZXR1cm47XG5cdFx0aWYgKHRoaXMub3B0aW9ucy5hY2Nlc3NLZXkgPT0gJycgfHwgIXRoaXMubWFuYWdlci5nZXRNZXNzYWdlKHRoaXMub3B0aW9ucy5hY2Nlc3NLZXkpIHx8IHRoaXMub3B0aW9ucy50ZXh0LmluZGV4T2YodGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2UodGhpcy5vcHRpb25zLmFjY2Vzc0tleSkpID09IC0xKSB7XG5cdFx0XHR0aGlzLm9wdGlvbnMuYWNjZXNzS2V5ID0gdGhpcy5vcHRpb25zLnRleHQuY2hhckF0KDApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLm9wdGlvbnMuYWNjZXNzS2V5ID0gdGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2UodGhpcy5vcHRpb25zLmFjY2Vzc0tleSk7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuICAqIENyZWF0ZXMgdGhlIHN1Ym1lbnUgaXRlbXNcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLmJ1aWxkU3VibWVudVN0YXRpY0l0ZW1zID0gZnVuY3Rpb24gYnVpbGRTdWJtZW51U3RhdGljSXRlbXMoKSB7XG5cdFx0dmFyIG1lbnVJdGVtcyA9IFtdO1xuXHRcdGlmICh0aGlzLnN1Yk1lbnVJdGVtcy5zdGF0aWNJdGVtcykge1xuXHRcdFx0dGhpcy5zdWJNZW51SXRlbXMuc3RhdGljSXRlbXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0XHR2YXIgaXRlbVRleHQgPSB0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZShpdGVtLnRleHQpO1xuXHRcdFx0XHRpZiAoaXRlbS5oYXNBY2Nlc3NLZXkgJiYgKGl0ZW0uaGFzQWNjZXNzS2V5ID09ICd0cnVlJyB8fCBpdGVtLmhhc0FjY2Vzc0tleSA9PT0gdHJ1ZSkgJiYgdGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2UoaXRlbS5hY2Nlc3NLZXkpKSB7XG5cdFx0XHRcdFx0aXRlbVRleHQgPSB0aGlzLmdldEtleWVkVGV4dCh0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZShpdGVtLnRleHQpLCB0cnVlLCB0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZShpdGVtLmFjY2Vzc0tleSkpO1xuXHRcdFx0XHRcdGlmICghdGhpcy5zdWJNZW51SXRlbXMuYWNjZXNzS2V5cykgdGhpcy5zdWJNZW51SXRlbXMuYWNjZXNzS2V5cyA9IFtdO1xuXHRcdFx0XHRcdHRoaXMubWFuYWdlci5yZWdpc3RlcktleSh0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZShpdGVtLmFjY2Vzc0tleSksIHRoaXMub3B0aW9ucy5uYW1lLCBpdGVtLmNvbW1hbmQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG1lbnVJdGVtcy5wdXNoKHtcblx0XHRcdFx0XHRuYW1lOiBpdGVtVGV4dCxcblx0XHRcdFx0XHRhbHQ6IHRoaXMubWFuYWdlci5nZXRNZXNzYWdlKGl0ZW0udGl0bGUpLFxuXHRcdFx0XHRcdGltYWdlX3VucmVzb2x2ZWQ6IGl0ZW0uc3JjLFxuXHRcdFx0XHRcdGljb25fY2xhc3M6IGl0ZW0uaWNvbl9jbGFzcyxcblx0XHRcdFx0XHRpc0RlZmF1bHQ6IGl0ZW0uaXNEZWZhdWx0ID8gdHJ1ZSA6IGZhbHNlLFxuXHRcdFx0XHRcdGNhbGxiYWNrOiAoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0dGhpcy5hcHBseShbaXRlbV0pO1xuXHRcdFx0XHRcdH0pLmJpbmQodGhpcylcblx0XHRcdFx0fSk7XG5cdFx0XHR9LCB0aGlzKTtcblx0XHR9XG5cdFx0dGhpcy5zdWJNZW51SXRlbXMuc3RhdGljT3B0aW9ucyA9IG1lbnVJdGVtcztcblx0fTtcblxuXHQvKipcbiAgKiBDYWNoZXMgc29tZSBkYXRhIGZvciBkeW5hbWljYWxseSBidWlsdCBtZW51c1xuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUucHJlcGFyZVN1Ym1lbnVEeW5hbWljQnVpbGRlciA9IGZ1bmN0aW9uIHByZXBhcmVTdWJtZW51RHluYW1pY0J1aWxkZXIoKSB7XG5cdFx0dGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXIgPSAoZnVuY3Rpb24gKGNvbnRyb2xsZXIpIHtcblx0XHRcdHZhciBtZW51SXRlbXMgPSBbXTtcblx0XHRcdGlmICh0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlckNvZGUpIHtcblx0XHRcdFx0d2luZG93LmJ1aWxkZXJDb250ZXh0ID0gdGhpcztcblx0XHRcdFx0dGhpcy5fZXZhbFNjcmlwdHModGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXJDb2RlKTtcblx0XHRcdFx0bWVudUl0ZW1zID0gdGhpcy5idWlsZGVyTWVudUl0ZW1zIHx8IFtdO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlck1vZHVsZSkge1xuXHRcdFx0XHR2YXIgZnVuYyA9IF91dGlsRnVuY1V0aWxzMlsnZGVmYXVsdCddLmdldEZ1bmN0aW9uQnlOYW1lKHRoaXMuc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyTW9kdWxlLCB3aW5kb3cpO1xuXHRcdFx0XHRpZiAoZnVuYykge1xuXHRcdFx0XHRcdG1lbnVJdGVtcyA9IGZ1bmMuYXBwbHkodGhpcyk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG1lbnVJdGVtcyA9IFtdO1xuXHRcdFx0XHR0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljSXRlbXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0XHRcdGlmIChpdGVtLnNlcGFyYXRvcikge1xuXHRcdFx0XHRcdFx0bWVudUl0ZW1zLnB1c2goaXRlbSk7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHZhciBhY3Rpb24gPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0aWYgKGl0ZW1bJ2FjdGlvbklkJ10gaW5zdGFuY2VvZiBBY3Rpb24pIHtcblx0XHRcdFx0XHRcdGFjdGlvbiA9IGl0ZW1bJ2FjdGlvbklkJ107XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGFjdGlvbiA9IHRoaXMubWFuYWdlci5hY3Rpb25zLmdldChpdGVtWydhY3Rpb25JZCddKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGFjdGlvbi5kZW55KSByZXR1cm47XG5cdFx0XHRcdFx0dmFyIGl0ZW1EYXRhID0ge1xuXHRcdFx0XHRcdFx0bmFtZTogYWN0aW9uLmdldEtleWVkVGV4dCgpLFxuXHRcdFx0XHRcdFx0YWx0OiBhY3Rpb24ub3B0aW9ucy50aXRsZSxcblx0XHRcdFx0XHRcdGljb25fY2xhc3M6IGFjdGlvbi5vcHRpb25zLmljb25fY2xhc3MsXG5cdFx0XHRcdFx0XHRpbWFnZV91bnJlc29sdmVkOiBhY3Rpb24ub3B0aW9ucy5zcmMsXG5cdFx0XHRcdFx0XHRjYWxsYmFjazogKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5hcHBseSgpO1xuXHRcdFx0XHRcdFx0fSkuYmluZChhY3Rpb24pXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRpZiAoYWN0aW9uLm9wdGlvbnMuc3ViTWVudSkge1xuXHRcdFx0XHRcdFx0aXRlbURhdGEuc3ViTWVudSA9IFtdO1xuXHRcdFx0XHRcdFx0aWYgKGFjdGlvbi5zdWJNZW51SXRlbXMuc3RhdGljT3B0aW9ucykge1xuXHRcdFx0XHRcdFx0XHRpdGVtRGF0YS5zdWJNZW51ID0gYWN0aW9uLnN1Yk1lbnVJdGVtcy5zdGF0aWNPcHRpb25zO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKGFjdGlvbi5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXIpIHtcblx0XHRcdFx0XHRcdFx0aXRlbURhdGEuc3ViTWVudUJlZm9yZVNob3cgPSBhY3Rpb24uc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRtZW51SXRlbXMucHVzaChpdGVtRGF0YSk7XG5cdFx0XHRcdH0sIHRoaXMpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1lbnVJdGVtcztcblx0XHR9KS5iaW5kKHRoaXMpO1xuXHR9O1xuXG5cdC8qKlxuICAqIFJlZnJlc2ggaWNvbiBpbWFnZSBzb3VyY2VcbiAgKiBAcGFyYW0gbmV3U3JjIFN0cmluZyBUaGUgaW1hZ2Ugc291cmNlLiBDYW4gcmVmZXJlbmNlIGFuIGltYWdlIGxpYnJhcnlcbiAgICAgKiBAcGFyYW0gaWNvbkNsYXNzIFN0cmluZyBPcHRpb25hbCBjbGFzcyB0byByZXBsYWNlIGltYWdlXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5zZXRJY29uQ2xhc3NOYW1lID0gZnVuY3Rpb24gc2V0SWNvbkNsYXNzTmFtZShpY29uQ2xhc3MpIHtcblx0XHR2YXIgaWNvbl9jbGFzcyA9IHRoaXMub3B0aW9ucy5pY29uX2NsYXNzO1xuXG5cdFx0dGhpcy5ub3RpZnkoXCJ1cGRhdGVfaWNvblwiLCB7IG5ld19jbGFzczogaWNvbkNsYXNzLCBwcmV2aW91c19jbGFzczogaWNvbl9jbGFzcyB9KTtcblx0XHR0aGlzLm9wdGlvbnMuaWNvbl9jbGFzcyA9IGljb25DbGFzcztcblx0fTtcblxuXHQvKipcbiAgKiBSZWZyZXNoIHRoZSBhY3Rpb24gbGFiZWxcbiAgKiBAcGFyYW0gbmV3TGFiZWwgU3RyaW5nIHRoZSBuZXcgbGFiZWxcbiAgKiBAcGFyYW0gbmV3VGl0bGUgU3RyaW5nIHRoZSBuZXcgdG9vbHRpcFxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuc2V0TGFiZWwgPSBmdW5jdGlvbiBzZXRMYWJlbChuZXdMYWJlbCwgbmV3VGl0bGUpIHtcblx0XHR0aGlzLm9wdGlvbnMudGV4dCA9IHRoaXMubWFuYWdlci5nZXRNZXNzYWdlKG5ld0xhYmVsKTtcblx0XHR0aGlzLm5vdGlmeShcInVwZGF0ZV9sYWJlbFwiLCB0aGlzLmdldEtleWVkVGV4dCgpKTtcblx0XHRpZiAobmV3VGl0bGUpIHtcblx0XHRcdHRoaXMub3B0aW9ucy50aXRsZSA9IHRoaXMubWFuYWdlci5nZXRNZXNzYWdlKG5ld1RpdGxlKTtcblx0XHRcdHRoaXMubm90aWZ5KFwidXBkYXRlX3RpdGxlXCIsIHRoaXMub3B0aW9ucy50aXRsZSk7XG5cdFx0fVxuXHR9O1xuXG5cdEFjdGlvbi5wcm90b3R5cGUucmVmcmVzaEluc3RhbmNlcyA9IGZ1bmN0aW9uIHJlZnJlc2hJbnN0YW5jZXMoKSB7fTtcblxuXHQvKipcbiAgKiBHcmFiIGl0cyBsYWJlbCBmcm9tIHRoZSBpMThuXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5yZWZyZXNoRnJvbUkxOE5IYXNoID0gZnVuY3Rpb24gcmVmcmVzaEZyb21JMThOSGFzaCgpIHtcblx0XHR0aGlzLnNldExhYmVsKHRoaXMub3B0aW9ucy50ZXh0X2lkLCB0aGlzLm9wdGlvbnMudGl0bGVfaWQpO1xuXHR9O1xuXG5cdC8qKlxuICAqIFJldHVybiBkYXRhIG5lY2Vzc2FyeSB0byBidWlsZCBJbmZvUGFuZWxcbiAgKiBAcmV0dXJucyBPYmplY3RcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLnRvSW5mb1BhbmVsID0gZnVuY3Rpb24gdG9JbmZvUGFuZWwoKSB7XG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucztcblx0fTtcblxuXHQvKipcbiAgKiBSZXR1cm4gbmVjZXNzYXJ5IGRhdGEgdG8gYnVpbGQgY29udGV4dHVhbCBtZW51XG4gICogQHJldHVybnMgT2JqZWN0XG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS50b0NvbnRleHRNZW51ID0gZnVuY3Rpb24gdG9Db250ZXh0TWVudSgpIHtcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zO1xuXHR9O1xuXG5cdC8qKlxuICAqIENoYW5nZXMgc2hvdy9oaWRlIHN0YXRlXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5oaWRlRm9yQ29udGV4dCA9IGZ1bmN0aW9uIGhpZGVGb3JDb250ZXh0KCkge1xuXHRcdHRoaXMuaGlkZSgpO1xuXHRcdHRoaXMuY29udGV4dEhpZGRlbiA9IHRydWU7XG5cdH07XG5cblx0LyoqXG4gICogQ2hhbmdlcyBzaG93L2hpZGUgc3RhdGVcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLnNob3dGb3JDb250ZXh0ID0gZnVuY3Rpb24gc2hvd0ZvckNvbnRleHQoZGF0YU1vZGVsKSB7XG5cdFx0dGhpcy5jb250ZXh0SGlkZGVuID0gZmFsc2U7XG5cdFx0dGhpcy5zaG93KCk7XG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uQ29udGV4dCkge1xuXHRcdFx0dGhpcy5maXJlU2VsZWN0aW9uQ2hhbmdlKGRhdGFNb2RlbCk7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuICAqIENoYW5nZXMgc2hvdy9oaWRlIHN0YXRlXG4gICogTm90aWZpZXMgXCJoaWRlXCIgRXZlbnRcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbiBoaWRlKCkge1xuXHRcdHRoaXMuZGVueSA9IHRydWU7XG5cdFx0dGhpcy5ub3RpZnkoJ2hpZGUnKTtcblx0fTtcblxuXHQvKipcbiAgKiBDaGFuZ2VzIHNob3cvaGlkZSBzdGF0ZVxuICAqIE5vdGlmaWVzIFwic2hvd1wiIEV2ZW50IFxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIHNob3coKSB7XG5cdFx0dGhpcy5kZW55ID0gZmFsc2U7XG5cdFx0dGhpcy5ub3RpZnkoJ3Nob3cnKTtcblx0fTtcblxuXHQvKipcbiAgKiBDaGFuZ2VzIGVuYWJsZS9kaXNhYmxlIHN0YXRlXG4gICogTm90aWZpZXMgXCJkaXNhYmxlXCIgRXZlbnQgXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24gZGlzYWJsZSgpIHtcblx0XHR0aGlzLmRlbnkgPSB0cnVlO1xuXHRcdHRoaXMubm90aWZ5KCdkaXNhYmxlJyk7XG5cdH07XG5cblx0LyoqXG4gICogQ2hhbmdlcyBlbmFibGUvZGlzYWJsZSBzdGF0ZVxuICAqIE5vdGlmaWVzIFwiZW5hYmxlXCIgRXZlbnQgXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5lbmFibGUgPSBmdW5jdGlvbiBlbmFibGUoKSB7XG5cdFx0dGhpcy5kZW55ID0gZmFsc2U7XG5cdFx0dGhpcy5ub3RpZnkoJ2VuYWJsZScpO1xuXHR9O1xuXG5cdC8qKlxuICAqIFRvIGJlIGNhbGxlZCB3aGVuIHJlbW92aW5nXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbiByZW1vdmUoKSB7XG5cdFx0dGhpcy5ub3RpZnkoXCJyZW1vdmVcIik7XG5cdH07XG5cblx0LyoqXG4gICogQ3JlYXRlIGEgdGV4dCBsYWJlbCB3aXRoIGFjY2Vzcy1rZXkgdW5kZXJsaW5lZC5cbiAgKiBAcGFyYW0gZGlzcGxheVN0cmluZyBTdHJpbmcgdGhlIGxhYmVsXG4gICogQHBhcmFtIGhhc0FjY2Vzc0tleSBCb29sZWFuIHdoZXRoZXIgdGhlcmUgaXMgYW4gYWNjZXNzS2V5IG9yIG5vdFxuICAqIEBwYXJhbSBhY2Nlc3NLZXkgU3RyaW5nIFRoZSBrZXkgdG8gdW5kZXJsaW5lXG4gICogQHJldHVybnMgU3RyaW5nXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5nZXRLZXllZFRleHQgPSBmdW5jdGlvbiBnZXRLZXllZFRleHQoZGlzcGxheVN0cmluZywgaGFzQWNjZXNzS2V5LCBhY2Nlc3NLZXkpIHtcblx0XHRpZiAoIWRpc3BsYXlTdHJpbmcpIHtcblx0XHRcdGRpc3BsYXlTdHJpbmcgPSB0aGlzLm9wdGlvbnMudGV4dDtcblx0XHR9XG5cdFx0aWYgKCFoYXNBY2Nlc3NLZXkpIHtcblx0XHRcdGhhc0FjY2Vzc0tleSA9IHRoaXMub3B0aW9ucy5oYXNBY2Nlc3NLZXk7XG5cdFx0fVxuXHRcdGlmICghYWNjZXNzS2V5KSB7XG5cdFx0XHRhY2Nlc3NLZXkgPSB0aGlzLm9wdGlvbnMuYWNjZXNzS2V5O1xuXHRcdH1cblx0XHRpZiAoIWhhc0FjY2Vzc0tleSkgcmV0dXJuIGRpc3BsYXlTdHJpbmc7XG5cdFx0dmFyIGtleVBvcyA9IGRpc3BsYXlTdHJpbmcudG9Mb3dlckNhc2UoKS5pbmRleE9mKGFjY2Vzc0tleS50b0xvd2VyQ2FzZSgpKTtcblx0XHRpZiAoa2V5UG9zID09IC0xKSB7XG5cdFx0XHRyZXR1cm4gZGlzcGxheVN0cmluZyArICcgKDx1PicgKyBhY2Nlc3NLZXkgKyAnPC91PiknO1xuXHRcdH1cblx0XHRpZiAoZGlzcGxheVN0cmluZy5jaGFyQXQoa2V5UG9zKSAhPSBhY2Nlc3NLZXkpIHtcblx0XHRcdC8vIGNhc2UgZGlmZmVyXG5cdFx0XHRhY2Nlc3NLZXkgPSBkaXNwbGF5U3RyaW5nLmNoYXJBdChrZXlQb3MpO1xuXHRcdH1cblx0XHR2YXIgcmV0dXJuU3RyaW5nID0gZGlzcGxheVN0cmluZy5zdWJzdHJpbmcoMCwgZGlzcGxheVN0cmluZy5pbmRleE9mKGFjY2Vzc0tleSkpO1xuXHRcdHJldHVyblN0cmluZyArPSAnPHU+JyArIGFjY2Vzc0tleSArICc8L3U+Jztcblx0XHRyZXR1cm5TdHJpbmcgKz0gZGlzcGxheVN0cmluZy5zdWJzdHJpbmcoZGlzcGxheVN0cmluZy5pbmRleE9mKGFjY2Vzc0tleSkgKyAxLCBkaXNwbGF5U3RyaW5nLmxlbmd0aCk7XG5cdFx0cmV0dXJuIHJldHVyblN0cmluZztcblx0fTtcblxuXHQvKipcbiAgKiBVdGlsaXRhcnkgZnVuY3Rpb24gdG8gdHJhbnNmb3JtIFhNTCBOb2RlIGF0dHJpYnV0ZXMgaW50byBPYmplY3QgbWFwcGluZyBrZXlzLlxuICAqIEBwYXJhbSBvYmplY3QgT2JqZWN0IFRoZSB0YXJnZXQgb2JqZWN0XG4gICogQHBhcmFtIG5vZGUgTm9kZSBUaGUgc291cmNlIG5vZGVcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLmF0dHJpYnV0ZXNUb09iamVjdCA9IGZ1bmN0aW9uIGF0dHJpYnV0ZXNUb09iamVjdChvYmplY3QsIG5vZGUpIHtcblx0XHRmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG5cdFx0XHRpZiAoIW9iamVjdC5oYXNPd25Qcm9wZXJ0eShrZXkpIHx8ICFub2RlLmdldEF0dHJpYnV0ZShrZXkpKSBjb250aW51ZTtcblx0XHRcdHZhciB2YWx1ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKGtleSk7XG5cdFx0XHRpZiAodmFsdWUgPT0gJ3RydWUnKSB2YWx1ZSA9IHRydWU7ZWxzZSBpZiAodmFsdWUgPT0gJ2ZhbHNlJykgdmFsdWUgPSBmYWxzZTtcblx0XHRcdGlmIChrZXkgPT0gJ2FsbG93ZWRNaW1lcycpIHtcblx0XHRcdFx0aWYgKHZhbHVlICYmIHZhbHVlLnNwbGl0KCcsJykubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dmFsdWUgPSB2YWx1ZS5zcGxpdCgnLCcpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHZhbHVlID0gW107XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG9iamVjdFtrZXldID0gdmFsdWU7XG5cdFx0fVxuXHR9O1xuXG5cdHJldHVybiBBY3Rpb247XG59KShfbGFuZ09ic2VydmFibGUyWydkZWZhdWx0J10pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2xhbmdPYnNlcnZhYmxlID0gcmVxdWlyZSgnLi4vbGFuZy9PYnNlcnZhYmxlJyk7XG5cbnZhciBfbGFuZ09ic2VydmFibGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ09ic2VydmFibGUpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL1BhdGhVdGlscycpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbFBhdGhVdGlscyk7XG5cbnZhciBBanhwTm9kZSA9IChmdW5jdGlvbiAoX09ic2VydmFibGUpIHtcbiAgICBfaW5oZXJpdHMoQWp4cE5vZGUsIF9PYnNlcnZhYmxlKTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggU3RyaW5nXG4gICAgICogQHBhcmFtIGlzTGVhZiBCb29sZWFuXG4gICAgICogQHBhcmFtIGxhYmVsIFN0cmluZ1xuICAgICAqIEBwYXJhbSBpY29uIFN0cmluZ1xuICAgICAqIEBwYXJhbSBpTm9kZVByb3ZpZGVyIElBanhwTm9kZVByb3ZpZGVyXG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBBanhwTm9kZShwYXRoKSB7XG4gICAgICAgIHZhciBpc0xlYWYgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIGxhYmVsID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gJycgOiBhcmd1bWVudHNbMl07XG4gICAgICAgIHZhciBpY29uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gJycgOiBhcmd1bWVudHNbM107XG4gICAgICAgIHZhciBpTm9kZVByb3ZpZGVyID0gYXJndW1lbnRzLmxlbmd0aCA8PSA0IHx8IGFyZ3VtZW50c1s0XSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1s0XTtcblxuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWp4cE5vZGUpO1xuXG4gICAgICAgIF9PYnNlcnZhYmxlLmNhbGwodGhpcyk7XG4gICAgICAgIHRoaXMuX3BhdGggPSBwYXRoO1xuICAgICAgICBpZiAodGhpcy5fcGF0aCAmJiB0aGlzLl9wYXRoLmxlbmd0aCAmJiB0aGlzLl9wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9wYXRoW3RoaXMuX3BhdGgubGVuZ3RoIC0gMV0gPT09IFwiL1wiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGF0aCA9IHRoaXMuX3BhdGguc3Vic3RyaW5nKDAsIHRoaXMuX3BhdGgubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNMZWFmID0gaXNMZWFmO1xuICAgICAgICB0aGlzLl9sYWJlbCA9IGxhYmVsO1xuICAgICAgICB0aGlzLl9pY29uID0gaWNvbjtcbiAgICAgICAgdGhpcy5faXNSb290ID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5fbWV0YWRhdGEgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuX2NoaWxkcmVuID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIHRoaXMuX2lzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmFrZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pTm9kZVByb3ZpZGVyID0gaU5vZGVQcm92aWRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbm9kZSBpcyBsb2FkZWQgb3Igbm90XG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmlzTG9hZGVkID0gZnVuY3Rpb24gaXNMb2FkZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0xvYWRlZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5vZGUgaXMgY3VycmVudGx5IGxvYWRpbmdcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuaXNMb2FkaW5nID0gZnVuY3Rpb24gaXNMb2FkaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIGxvYWRlZCBzdGF0dXNcbiAgICAgKiBAcGFyYW0gYm9vbCBCb29sZWFuXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuc2V0TG9hZGVkID0gZnVuY3Rpb24gc2V0TG9hZGVkKGJvb2wpIHtcbiAgICAgICAgdGhpcy5faXNMb2FkZWQgPSBib29sO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgbm9kZSBwcm92aWRlclxuICAgICAqIEBwYXJhbSBpQWp4cE5vZGVQcm92aWRlclxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLnVwZGF0ZVByb3ZpZGVyID0gZnVuY3Rpb24gdXBkYXRlUHJvdmlkZXIoaUFqeHBOb2RlUHJvdmlkZXIpIHtcbiAgICAgICAgdGhpcy5faU5vZGVQcm92aWRlciA9IGlBanhwTm9kZVByb3ZpZGVyO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyB0aGUgbm9kZSB1c2luZyBpdHMgb3duIHByb3ZpZGVyIG9yIHRoZSBvbmUgcGFzc2VkXG4gICAgICogQHBhcmFtIGlBanhwTm9kZVByb3ZpZGVyIElBanhwTm9kZVByb3ZpZGVyIE9wdGlvbm5hbFxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsUGFyYW1ldGVycyBPYmplY3Qgb2Ygb3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmxvYWQgPSBmdW5jdGlvbiBsb2FkKGlBanhwTm9kZVByb3ZpZGVyKSB7XG4gICAgICAgIHZhciBhZGRpdGlvbmFsUGFyYW1ldGVycyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgaWYgKHRoaXMuX2lzTG9hZGluZykgcmV0dXJuO1xuICAgICAgICBpZiAoIWlBanhwTm9kZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faU5vZGVQcm92aWRlcikge1xuICAgICAgICAgICAgICAgIGlBanhwTm9kZVByb3ZpZGVyID0gdGhpcy5faU5vZGVQcm92aWRlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaUFqeHBOb2RlUHJvdmlkZXIgPSBuZXcgRW1wdHlOb2RlUHJvdmlkZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLm5vdGlmeShcImxvYWRpbmdcIik7XG4gICAgICAgIGlmICh0aGlzLl9pc0xvYWRlZCkge1xuICAgICAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeShcImxvYWRlZFwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpQWp4cE5vZGVQcm92aWRlci5sb2FkTm9kZSh0aGlzLCAoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkoXCJsb2FkZWRcIik7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeShcImZpcnN0X2xvYWRcIik7XG4gICAgICAgIH0pLmJpbmQodGhpcyksIG51bGwsIGZhbHNlLCAtMSwgYWRkaXRpb25hbFBhcmFtZXRlcnMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgY2hpbGRyZW4gYW5kIHJlbG9hZCBub2RlXG4gICAgICogQHBhcmFtIGlBanhwTm9kZVByb3ZpZGVyIElBanhwTm9kZVByb3ZpZGVyIE9wdGlvbm5hbFxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLnJlbG9hZCA9IGZ1bmN0aW9uIHJlbG9hZChpQWp4cE5vZGVQcm92aWRlcikge1xuICAgICAgICB2YXIgc2lsZW50Q2xlYXIgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB0aGlzLl9pc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCwga2V5KSB7XG4gICAgICAgICAgICBpZiAoIXNpbGVudENsZWFyKSBjaGlsZC5ub3RpZnkoXCJub2RlX3JlbW92ZWRcIik7XG4gICAgICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9jaGlsZHJlblsnZGVsZXRlJ10oa2V5KTtcbiAgICAgICAgICAgIGlmICghc2lsZW50Q2xlYXIpIHRoaXMubm90aWZ5KFwiY2hpbGRfcmVtb3ZlZFwiLCBjaGlsZCk7XG4gICAgICAgIH0sIHRoaXMpO1xuICAgICAgICB0aGlzLmxvYWQoaUFqeHBOb2RlUHJvdmlkZXIpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBVbmxvYWQgY2hpbGQgYW5kIG5vdGlmeSBcImZvcmNlX2NsZWFyXCJcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgICAgICB0aGlzLl9jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCwga2V5KSB7XG4gICAgICAgICAgICBjaGlsZC5ub3RpZnkoXCJub2RlX3JlbW92ZWRcIik7XG4gICAgICAgICAgICBjaGlsZC5fcGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9jaGlsZHJlblsnZGVsZXRlJ10oa2V5KTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5KFwiY2hpbGRfcmVtb3ZlZFwiLCBjaGlsZCk7XG4gICAgICAgIH0sIHRoaXMpO1xuICAgICAgICB0aGlzLl9pc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmeShcImZvcmNlX2NsZWFyXCIpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoaXMgQWp4cE5vZGUgYXMgYmVpbmcgdGhlIHJvb3QgcGFyZW50XG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuc2V0Um9vdCA9IGZ1bmN0aW9uIHNldFJvb3QoKSB7XG4gICAgICAgIHRoaXMuX2lzUm9vdCA9IHRydWU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgbm9kZSBjaGlsZHJlbiBhcyBhIGJ1bmNoXG4gICAgICogQHBhcmFtIGFqeHBOb2RlcyBBanhwTm9kZXNbXVxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLnNldENoaWxkcmVuID0gZnVuY3Rpb24gc2V0Q2hpbGRyZW4oYWp4cE5vZGVzKSB7XG4gICAgICAgIHRoaXMuX2NoaWxkcmVuID0gbmV3IE1hcCgpO1xuICAgICAgICBhanhwTm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGlsZHJlbi5zZXQodmFsdWUuZ2V0UGF0aCgpLCB2YWx1ZSk7XG4gICAgICAgICAgICB2YWx1ZS5zZXRQYXJlbnQodGhpcyk7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIGNoaWxkcmVuIGFzIGEgYnVuY2hcbiAgICAgKiBAcmV0dXJucyBBanhwTm9kZVtdXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuZ2V0Q2hpbGRyZW4gPSBmdW5jdGlvbiBnZXRDaGlsZHJlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuO1xuICAgIH07XG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuZ2V0Rmlyc3RDaGlsZElmRXhpc3RzID0gZnVuY3Rpb24gZ2V0Rmlyc3RDaGlsZElmRXhpc3RzKCkge1xuICAgICAgICBpZiAodGhpcy5fY2hpbGRyZW4uc2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmlzTW9yZVJlY2VudFRoYW4gPSBmdW5jdGlvbiBpc01vcmVSZWNlbnRUaGFuKG90aGVyTm9kZSkge1xuICAgICAgICByZXR1cm4gb3RoZXJOb2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwiYWp4cF9pbV90aW1lXCIpICYmIHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXQoXCJhanhwX2ltX3RpbWVcIikgJiYgcGFyc2VJbnQodGhpcy5nZXRNZXRhZGF0YSgpLmdldChcImFqeHBfaW1fdGltZVwiKSkgPj0gcGFyc2VJbnQob3RoZXJOb2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwiYWp4cF9pbV90aW1lXCIpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIGNoaWxkIHRvIGNoaWxkcmVuXG4gICAgICogQHBhcmFtIGFqeHBOb2RlIEFqeHBOb2RlIFRoZSBjaGlsZFxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmFkZENoaWxkID0gZnVuY3Rpb24gYWRkQ2hpbGQoYWp4cE5vZGUpIHtcbiAgICAgICAgYWp4cE5vZGUuc2V0UGFyZW50KHRoaXMpO1xuICAgICAgICBpZiAodGhpcy5faU5vZGVQcm92aWRlcikgYWp4cE5vZGUuX2lOb2RlUHJvdmlkZXIgPSB0aGlzLl9pTm9kZVByb3ZpZGVyO1xuICAgICAgICB2YXIgZXhpc3RpbmdOb2RlID0gdGhpcy5maW5kQ2hpbGRCeVBhdGgoYWp4cE5vZGUuZ2V0UGF0aCgpKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nTm9kZSAmJiAhKGV4aXN0aW5nTm9kZSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgIGlmICghZXhpc3RpbmdOb2RlLmlzTW9yZVJlY2VudFRoYW4oYWp4cE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgZXhpc3RpbmdOb2RlLnJlcGxhY2VCeShhanhwTm9kZSwgXCJvdmVycmlkZVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdOb2RlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jaGlsZHJlbi5zZXQoYWp4cE5vZGUuZ2V0UGF0aCgpLCBhanhwTm9kZSk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeShcImNoaWxkX2FkZGVkXCIsIGFqeHBOb2RlLmdldFBhdGgoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFqeHBOb2RlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBjaGlsZCBmcm9tIHRoZSBjaGlsZHJlblxuICAgICAqIEBwYXJhbSBhanhwTm9kZSBBanhwTm9kZVxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkID0gZnVuY3Rpb24gcmVtb3ZlQ2hpbGQoYWp4cE5vZGUpIHtcbiAgICAgICAgdmFyIHJlbW92ZVBhdGggPSBhanhwTm9kZS5nZXRQYXRoKCk7XG4gICAgICAgIGFqeHBOb2RlLm5vdGlmeShcIm5vZGVfcmVtb3ZlZFwiKTtcbiAgICAgICAgYWp4cE5vZGUuX3BhcmVudE5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLl9jaGlsZHJlblsnZGVsZXRlJ10oYWp4cE5vZGUuZ2V0UGF0aCgpKTtcbiAgICAgICAgdGhpcy5ub3RpZnkoXCJjaGlsZF9yZW1vdmVkXCIsIHJlbW92ZVBhdGgpO1xuICAgIH07XG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUucmVwbGFjZU1ldGFkYXRhID0gZnVuY3Rpb24gcmVwbGFjZU1ldGFkYXRhKG5ld01ldGEpIHtcbiAgICAgICAgdGhpcy5fbWV0YWRhdGEgPSBuZXdNZXRhO1xuICAgICAgICB0aGlzLm5vdGlmeShcIm1ldGFfcmVwbGFjZWRcIiwgdGhpcyk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIHRoZSBjdXJyZW50IG5vZGUgYnkgYSBuZXcgb25lLiBDb3B5IGFsbCBwcm9wZXJ0aWVzIGRlZXBseVxuICAgICAqIEBwYXJhbSBhanhwTm9kZSBBanhwTm9kZVxuICAgICAqIEBwYXJhbSBtZXRhTWVyZ2VcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5yZXBsYWNlQnkgPSBmdW5jdGlvbiByZXBsYWNlQnkoYWp4cE5vZGUsIG1ldGFNZXJnZSkge1xuICAgICAgICB0aGlzLl9pc0xlYWYgPSBhanhwTm9kZS5faXNMZWFmO1xuICAgICAgICB2YXIgcGF0aENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGFqeHBOb2RlLmdldFBhdGgoKSAmJiB0aGlzLl9wYXRoICE9IGFqeHBOb2RlLmdldFBhdGgoKSkge1xuICAgICAgICAgICAgdmFyIG9yaWdpbmFsUGF0aCA9IHRoaXMuX3BhdGg7XG4gICAgICAgICAgICBpZiAodGhpcy5nZXRQYXJlbnQoKSkge1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnRDaGlsZHJlbkluZGV4ID0gdGhpcy5nZXRQYXJlbnQoKS5fY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgcGFyZW50Q2hpbGRyZW5JbmRleC5zZXQoYWp4cE5vZGUuZ2V0UGF0aCgpLCB0aGlzKTtcbiAgICAgICAgICAgICAgICBwYXJlbnRDaGlsZHJlbkluZGV4WydkZWxldGUnXShvcmlnaW5hbFBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcGF0aCA9IGFqeHBOb2RlLmdldFBhdGgoKTtcbiAgICAgICAgICAgIHBhdGhDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWp4cE5vZGUuX2xhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLl9sYWJlbCA9IGFqeHBOb2RlLl9sYWJlbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWp4cE5vZGUuX2ljb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2ljb24gPSBhanhwTm9kZS5faWNvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWp4cE5vZGUuX2lOb2RlUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2lOb2RlUHJvdmlkZXIgPSBhanhwTm9kZS5faU5vZGVQcm92aWRlcjtcbiAgICAgICAgfVxuICAgICAgICAvL3RoaXMuX2lzUm9vdCA9IGFqeHBOb2RlLl9pc1Jvb3Q7XG4gICAgICAgIHRoaXMuX2lzTG9hZGVkID0gYWp4cE5vZGUuX2lzTG9hZGVkO1xuICAgICAgICB0aGlzLmZha2UgPSBhanhwTm9kZS5mYWtlO1xuICAgICAgICB2YXIgbWV0YSA9IGFqeHBOb2RlLmdldE1ldGFkYXRhKCk7XG4gICAgICAgIGlmIChtZXRhTWVyZ2UgPT0gXCJvdmVycmlkZVwiKSB0aGlzLl9tZXRhZGF0YSA9IG5ldyBNYXAoKTtcbiAgICAgICAgbWV0YS5mb3JFYWNoKChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgICAgICAgaWYgKG1ldGFNZXJnZSA9PSBcIm92ZXJyaWRlXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXRhZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tZXRhZGF0YS5oYXMoa2V5KSAmJiB2YWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX21ldGFkYXRhLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIGlmIChwYXRoQ2hhbmdlZCAmJiAhdGhpcy5faXNMZWFmICYmIHRoaXMuZ2V0Q2hpbGRyZW4oKS5zaXplKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKHRoaXMuX2lOb2RlUHJvdmlkZXIpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSwgMTAwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhanhwTm9kZS5nZXRDaGlsZHJlbigpLmZvckVhY2goKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZChjaGlsZCk7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLm5vdGlmeShcIm5vZGVfcmVwbGFjZWRcIiwgdGhpcyk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgY2hpbGQgbm9kZSBieSBpdHMgcGF0aFxuICAgICAqIEBwYXJhbSBwYXRoIFN0cmluZ1xuICAgICAqIEByZXR1cm5zIEFqeHBOb2RlXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuZmluZENoaWxkQnlQYXRoID0gZnVuY3Rpb24gZmluZENoaWxkQnlQYXRoKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuLmdldChwYXRoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgbWV0YWRhdGEgYXMgYSBidW5jaFxuICAgICAqIEBwYXJhbSBkYXRhIE1hcCBBIE1hcFxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLnNldE1ldGFkYXRhID0gZnVuY3Rpb24gc2V0TWV0YWRhdGEoZGF0YSkge1xuICAgICAgICB0aGlzLl9tZXRhZGF0YSA9IGRhdGE7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG1ldGFkYXRcbiAgICAgKiBAcmV0dXJucyBNYXBcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5nZXRNZXRhZGF0YSA9IGZ1bmN0aW9uIGdldE1ldGFkYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWV0YWRhdGE7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIElzIHRoaXMgbm9kZSBhIGxlYWZcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuaXNMZWFmID0gZnVuY3Rpb24gaXNMZWFmKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNMZWFmO1xuICAgIH07XG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuaXNCcm93c2FibGUgPSBmdW5jdGlvbiBpc0Jyb3dzYWJsZSgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLl9pc0xlYWYgfHwgdGhpcy5nZXRBanhwTWltZSgpID09PSAnYWp4cF9icm93c2FibGVfYXJjaGl2ZSc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFN0cmluZ1xuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmdldFBhdGggPSBmdW5jdGlvbiBnZXRQYXRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgU3RyaW5nXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuZ2V0TGFiZWwgPSBmdW5jdGlvbiBnZXRMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbCBzdHJpbmdcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5zZXRMYWJlbCA9IGZ1bmN0aW9uIHNldExhYmVsKGwpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSBsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5nZXRJY29uID0gZnVuY3Rpb24gZ2V0SWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb247XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5pc1JlY3ljbGUgPSBmdW5jdGlvbiBpc1JlY3ljbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFqeHBNaW1lKCkgPT0gJ2FqeHBfcmVjeWNsZSc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFN0cmluZ1xuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmdldFN2Z1NvdXJjZSA9IGZ1bmN0aW9uIGdldFN2Z1NvdXJjZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXQoXCJmb250aWNvblwiKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIHRoZSBtaW1lIHR5cGUgaW4gdGhlIHBhcmVudCBicmFuY2hcbiAgICAgKiBAcGFyYW0gYWp4cE1pbWUgU3RyaW5nXG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmhhc0FqeHBNaW1lSW5CcmFuY2ggPSBmdW5jdGlvbiBoYXNBanhwTWltZUluQnJhbmNoKGFqeHBNaW1lKSB7XG4gICAgICAgIGlmICh0aGlzLmdldEFqeHBNaW1lKCkgPT09IGFqeHBNaW1lLnRvTG93ZXJDYXNlKCkpIHJldHVybiB0cnVlO1xuICAgICAgICB2YXIgcGFyZW50ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgY3J0ID0gdGhpcztcbiAgICAgICAgd2hpbGUgKHBhcmVudCA9IGNydC5fcGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgaWYgKHBhcmVudC5nZXRBanhwTWltZSgpID09PSBhanhwTWltZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjcnQgPSBwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2ggdGhlIG1pbWUgdHlwZSBpbiB0aGUgcGFyZW50IGJyYW5jaFxuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXlcbiAgICAgKiBAcGFyYW0gbWV0YWRhdGFWYWx1ZVxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmhhc01ldGFkYXRhSW5CcmFuY2ggPSBmdW5jdGlvbiBoYXNNZXRhZGF0YUluQnJhbmNoKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLmdldE1ldGFkYXRhKCkuaGFzKG1ldGFkYXRhS2V5KSkge1xuICAgICAgICAgICAgaWYgKG1ldGFkYXRhVmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRNZXRhZGF0YSgpLmdldChtZXRhZGF0YUtleSkgPT09IG1ldGFkYXRhVmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciBwYXJlbnQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBjcnQgPSB0aGlzO1xuICAgICAgICB3aGlsZSAocGFyZW50ID0gY3J0Ll9wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBpZiAocGFyZW50LmdldE1ldGFkYXRhKCkuaGFzKG1ldGFkYXRhS2V5KSkge1xuICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnQuZ2V0TWV0YWRhdGEoKS5nZXQobWV0YWRhdGFLZXkpID09PSBtZXRhZGF0YVZhbHVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNydCA9IHBhcmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgYSByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBub2RlXG4gICAgICogQHBhcmFtIHBhcmVudE5vZGUgQWp4cE5vZGVcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5zZXRQYXJlbnQgPSBmdW5jdGlvbiBzZXRQYXJlbnQocGFyZW50Tm9kZSkge1xuICAgICAgICB0aGlzLl9wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcGFyZW50IE5vZGVcbiAgICAgKiBAcmV0dXJucyBBanhwTm9kZVxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmdldFBhcmVudCA9IGZ1bmN0aW9uIGdldFBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudE5vZGU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZpbmRzIHRoaXMgbm9kZSBieSBwYXRoIGlmIGl0IGFscmVhZHkgZXhpc3RzIGluIGFyYm9yZXNjZW5jZVxuICAgICAqIEBwYXJhbSByb290Tm9kZSBBanhwTm9kZVxuICAgICAqIEBwYXJhbSBmYWtlTm9kZXMgQWp4cE5vZGVbXVxuICAgICAqIEByZXR1cm5zIEFqeHBOb2RlfHVuZGVmaW5lZFxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmZpbmRJbkFyYm8gPSBmdW5jdGlvbiBmaW5kSW5BcmJvKHJvb3ROb2RlLCBmYWtlTm9kZXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldFBhdGgoKSkgcmV0dXJuO1xuICAgICAgICB2YXIgcGF0aFBhcnRzID0gdGhpcy5nZXRQYXRoKCkuc3BsaXQoXCIvXCIpO1xuICAgICAgICB2YXIgY3J0UGF0aCA9IFwiXCIsXG4gICAgICAgICAgICBjcnROb2RlID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgY3J0UGFyZW50Tm9kZSA9IHJvb3ROb2RlO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGhQYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhdGhQYXJ0c1tpXSA9PSBcIlwiKSBjb250aW51ZTtcbiAgICAgICAgICAgIGNydFBhdGggPSBjcnRQYXRoICsgXCIvXCIgKyBwYXRoUGFydHNbaV07XG4gICAgICAgICAgICB2YXIgbm9kZSA9IGNydFBhcmVudE5vZGUuZmluZENoaWxkQnlQYXRoKGNydFBhdGgpO1xuICAgICAgICAgICAgaWYgKG5vZGUgJiYgIShub2RlIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgICAgIGNydE5vZGUgPSBub2RlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoZmFrZU5vZGVzID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgY3J0Tm9kZSA9IG5ldyBBanhwTm9kZShjcnRQYXRoLCBmYWxzZSwgX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QmFzZW5hbWUoY3J0UGF0aCkpO1xuICAgICAgICAgICAgICAgIGNydE5vZGUuZmFrZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY3J0Tm9kZS5nZXRNZXRhZGF0YSgpLnNldChcInRleHRcIiwgX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QmFzZW5hbWUoY3J0UGF0aCkpO1xuICAgICAgICAgICAgICAgIGZha2VOb2Rlcy5wdXNoKGNydE5vZGUpO1xuICAgICAgICAgICAgICAgIGNydFBhcmVudE5vZGUuYWRkQ2hpbGQoY3J0Tm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjcnRQYXJlbnROb2RlID0gY3J0Tm9kZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3J0Tm9kZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmlzUm9vdCA9IGZ1bmN0aW9uIGlzUm9vdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUm9vdDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgaXQncyB0aGUgcGFyZW50IG9mIHRoZSBnaXZlbiBub2RlXG4gICAgICogQHBhcmFtIG5vZGUgQWp4cE5vZGVcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuaXNQYXJlbnRPZiA9IGZ1bmN0aW9uIGlzUGFyZW50T2Yobm9kZSkge1xuICAgICAgICB2YXIgY2hpbGRQYXRoID0gbm9kZS5nZXRQYXRoKCk7XG4gICAgICAgIHZhciBwYXJlbnRQYXRoID0gdGhpcy5nZXRQYXRoKCk7XG4gICAgICAgIHJldHVybiBjaGlsZFBhdGguc3Vic3RyaW5nKDAsIHBhcmVudFBhdGgubGVuZ3RoKSA9PT0gcGFyZW50UGF0aDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgaXQncyBhIGNoaWxkIG9mIHRoZSBnaXZlbiBub2RlXG4gICAgICogQHBhcmFtIG5vZGUgQWp4cE5vZGVcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuaXNDaGlsZE9mID0gZnVuY3Rpb24gaXNDaGlsZE9mKG5vZGUpIHtcbiAgICAgICAgdmFyIGNoaWxkUGF0aCA9IHRoaXMuZ2V0UGF0aCgpO1xuICAgICAgICB2YXIgcGFyZW50UGF0aCA9IG5vZGUuZ2V0UGF0aCgpO1xuICAgICAgICByZXR1cm4gY2hpbGRQYXRoLnN1YnN0cmluZygwLCBwYXJlbnRQYXRoLmxlbmd0aCkgPT09IHBhcmVudFBhdGg7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnQncyBub2RlIG1pbWUgdHlwZSwgZWl0aGVyIGJ5IGFqeHBfbWltZSBvciBieSBleHRlbnNpb24uXG4gICAgICogQHJldHVybnMgU3RyaW5nXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuZ2V0QWp4cE1pbWUgPSBmdW5jdGlvbiBnZXRBanhwTWltZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX21ldGFkYXRhICYmIHRoaXMuX21ldGFkYXRhLmhhcyhcImFqeHBfbWltZVwiKSkgcmV0dXJuIHRoaXMuX21ldGFkYXRhLmdldChcImFqeHBfbWltZVwiKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodGhpcy5fbWV0YWRhdGEgJiYgdGhpcy5pc0xlYWYoKSkgcmV0dXJuIF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEFqeHBNaW1lVHlwZSh0aGlzLl9tZXRhZGF0YSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfTtcblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5idWlsZFJhbmRvbVNlZWQgPSBmdW5jdGlvbiBidWlsZFJhbmRvbVNlZWQoYWp4cE5vZGUpIHtcbiAgICAgICAgdmFyIG10aW1lU3RyaW5nID0gXCImdGltZV9zZWVkPVwiICsgdGhpcy5fbWV0YWRhdGEuZ2V0KFwiYWp4cF9tb2RpZnRpbWVcIik7XG4gICAgICAgIGlmICh0aGlzLmdldFBhcmVudCgpKSB7XG4gICAgICAgICAgICB2YXIgcHJldmlld19zZWVkID0gdGhpcy5nZXRQYXJlbnQoKS5nZXRNZXRhZGF0YSgpLmdldCgncHJldmlld19zZWVkJyk7XG4gICAgICAgICAgICBpZiAocHJldmlld19zZWVkKSB7XG4gICAgICAgICAgICAgICAgbXRpbWVTdHJpbmcgKz0gXCImcmFuZD1cIiArIHByZXZpZXdfc2VlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbXRpbWVTdHJpbmc7XG4gICAgfTtcblxuICAgIHJldHVybiBBanhwTm9kZTtcbn0pKF9sYW5nT2JzZXJ2YWJsZTJbJ2RlZmF1bHQnXSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFqeHBOb2RlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9odHRwUHlkaW9BcGkgPSByZXF1aXJlKCcuLi9odHRwL1B5ZGlvQXBpJyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBQeWRpb0FwaSk7XG5cbnZhciBfbGFuZ09ic2VydmFibGUgPSByZXF1aXJlKCcuLi9sYW5nL09ic2VydmFibGUnKTtcblxudmFyIF9sYW5nT2JzZXJ2YWJsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nT2JzZXJ2YWJsZSk7XG5cbnZhciBfdXRpbFBhdGhVdGlscyA9IHJlcXVpcmUoJy4uL3V0aWwvUGF0aFV0aWxzJyk7XG5cbnZhciBfdXRpbFBhdGhVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsUGF0aFV0aWxzKTtcblxudmFyIF9JZG1PYmplY3RIZWxwZXIgPSByZXF1aXJlKCcuL0lkbU9iamVjdEhlbHBlcicpO1xuXG52YXIgX0lkbU9iamVjdEhlbHBlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1PYmplY3RIZWxwZXIpO1xuXG52YXIgX2h0dHBHZW5JbmRleCA9IHJlcXVpcmUoJy4uL2h0dHAvZ2VuL2luZGV4Jyk7XG5cbnZhciBDZWxsTW9kZWwgPSAoZnVuY3Rpb24gKF9PYnNlcnZhYmxlKSB7XG4gICAgX2luaGVyaXRzKENlbGxNb2RlbCwgX09ic2VydmFibGUpO1xuXG4gICAgZnVuY3Rpb24gQ2VsbE1vZGVsKCkge1xuICAgICAgICB2YXIgZWRpdE1vZGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ2VsbE1vZGVsKTtcblxuICAgICAgICBfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuICAgICAgICAvLyBDcmVhdGUgYW4gZW1wdHkgcm9vbVxuICAgICAgICB0aGlzLmNlbGwgPSBuZXcgX2h0dHBHZW5JbmRleC5SZXN0Q2VsbCgpO1xuICAgICAgICB0aGlzLmNlbGwuTGFiZWwgPSAnJztcbiAgICAgICAgdGhpcy5jZWxsLkRlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgIHRoaXMuY2VsbC5BQ0xzID0ge307XG4gICAgICAgIHRoaXMuY2VsbC5Sb290Tm9kZXMgPSBbXTtcbiAgICAgICAgdGhpcy5jZWxsLlBvbGljaWVzID0gW107XG4gICAgICAgIHRoaXMuY2VsbC5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VkaXQgPSBlZGl0TW9kZTtcbiAgICB9XG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmlzRGlydHkgPSBmdW5jdGlvbiBpc0RpcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXJ0eTtcbiAgICB9O1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5pc0VkaXRhYmxlID0gZnVuY3Rpb24gaXNFZGl0YWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbC5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZTtcbiAgICB9O1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5nZXRSb290Tm9kZXMgPSBmdW5jdGlvbiBnZXRSb290Tm9kZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGwuUm9vdE5vZGVzO1xuICAgIH07XG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLm5vdGlmeURpcnR5ID0gZnVuY3Rpb24gbm90aWZ5RGlydHkoKSB7XG4gICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xuICAgICAgICB0aGlzLm5vdGlmeSgndXBkYXRlJyk7XG4gICAgfTtcblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUucmV2ZXJ0Q2hhbmdlcyA9IGZ1bmN0aW9uIHJldmVydENoYW5nZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLm9yaWdpbmFsQ2VsbCkge1xuICAgICAgICAgICAgdGhpcy5jZWxsID0gdGhpcy5jbG9uZSh0aGlzLm9yaWdpbmFsQ2VsbCk7XG4gICAgICAgICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeSgndXBkYXRlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSB7VHJlZU5vZGV9XG4gICAgICogQHJldHVybiBzdHJpbmdcbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuZ2V0Tm9kZUxhYmVsSW5Db250ZXh0ID0gZnVuY3Rpb24gZ2V0Tm9kZUxhYmVsSW5Db250ZXh0KG5vZGUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgcGF0aCA9IG5vZGUuUGF0aDtcbiAgICAgICAgdmFyIGxhYmVsID0gX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QmFzZW5hbWUocGF0aCk7XG4gICAgICAgIGlmIChub2RlLk1ldGFTdG9yZSAmJiBub2RlLk1ldGFTdG9yZS5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBsYWJlbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5NZXRhU3RvcmUgJiYgbm9kZS5NZXRhU3RvcmUuQ2VsbE5vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnW0NlbGwgRm9sZGVyXSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuQXBwZWFyc0luICYmIG5vZGUuQXBwZWFyc0luLmxlbmd0aCkge1xuICAgICAgICAgICAgbm9kZS5BcHBlYXJzSW4ubWFwKGZ1bmN0aW9uICh3b3Jrc3BhY2VSZWxhdGl2ZVBhdGgpIHtcbiAgICAgICAgICAgICAgICBpZiAod29ya3NwYWNlUmVsYXRpdmVQYXRoLldzVXVpZCAhPT0gX3RoaXMuY2VsbC5VdWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ1snICsgd29ya3NwYWNlUmVsYXRpdmVQYXRoLldzTGFiZWwgKyAnXSAnICsgX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QmFzZW5hbWUod29ya3NwYWNlUmVsYXRpdmVQYXRoLlBhdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsYWJlbDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9XG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmdldEFjbHNTdWJqZWN0cyA9IGZ1bmN0aW9uIGdldEFjbHNTdWJqZWN0cygpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY2VsbC5BQ0xzKS5tYXAoZnVuY3Rpb24gKHJvbGVJZCkge1xuICAgICAgICAgICAgdmFyIGFjbCA9IF90aGlzMi5jZWxsLkFDTHNbcm9sZUlkXTtcbiAgICAgICAgICAgIHJldHVybiBfSWRtT2JqZWN0SGVscGVyMlsnZGVmYXVsdCddLmV4dHJhY3RMYWJlbChfcHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKSwgYWNsKTtcbiAgICAgICAgfSkuam9pbignLCAnKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7T2JqZWN0LjxTdHJpbmcsIG1vZHVsZTptb2RlbC9SZXN0Q2VsbEFjbD59XG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmdldEFjbHMgPSBmdW5jdGlvbiBnZXRBY2xzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsLkFDTHM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkbU9iamVjdCBJZG1Vc2VyfElkbVJvbGVcbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuYWRkVXNlciA9IGZ1bmN0aW9uIGFkZFVzZXIoaWRtT2JqZWN0KSB7XG4gICAgICAgIHZhciBhY2wgPSBuZXcgX2h0dHBHZW5JbmRleC5SZXN0Q2VsbEFjbCgpO1xuICAgICAgICBhY2wuUm9sZUlkID0gaWRtT2JqZWN0LlV1aWQ7XG4gICAgICAgIGlmIChpZG1PYmplY3QuTG9naW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYWNsLklzVXNlclJvbGUgPSB0cnVlO1xuICAgICAgICAgICAgYWNsLlVzZXIgPSBpZG1PYmplY3Q7XG4gICAgICAgIH0gZWxzZSBpZiAoaWRtT2JqZWN0LklzR3JvdXApIHtcbiAgICAgICAgICAgIGFjbC5Hcm91cCA9IGlkbU9iamVjdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjbC5Sb2xlID0gaWRtT2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIGFjbC5BY3Rpb25zID0gW107XG4gICAgICAgIHZhciBhY3Rpb24gPSBuZXcgX2h0dHBHZW5JbmRleC5JZG1BQ0xBY3Rpb24oKTtcbiAgICAgICAgYWN0aW9uLk5hbWUgPSAncmVhZCc7XG4gICAgICAgIGFjdGlvbi5WYWx1ZSA9ICcxJztcbiAgICAgICAgYWNsLkFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICB0aGlzLmNlbGwuQUNMc1thY2wuUm9sZUlkXSA9IGFjbDtcbiAgICAgICAgdGhpcy5ub3RpZnlEaXJ0eSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSByb2xlSWQgc3RyaW5nXG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLnJlbW92ZVVzZXIgPSBmdW5jdGlvbiByZW1vdmVVc2VyKHJvbGVJZCkge1xuICAgICAgICBpZiAodGhpcy5jZWxsLkFDTHNbcm9sZUlkXSkge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuY2VsbC5BQ0xzW3JvbGVJZF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ub3RpZnlEaXJ0eSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSByb2xlSWQgc3RyaW5nXG4gICAgICogQHBhcmFtIHJpZ2h0IHN0cmluZ1xuICAgICAqIEBwYXJhbSB2YWx1ZSBib29sXG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLnVwZGF0ZVVzZXJSaWdodCA9IGZ1bmN0aW9uIHVwZGF0ZVVzZXJSaWdodChyb2xlSWQsIHJpZ2h0LCB2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBhY2wgPSB0aGlzLmNlbGwuQUNMc1tyb2xlSWRdO1xuICAgICAgICAgICAgdmFyIGFjdGlvbiA9IG5ldyBfaHR0cEdlbkluZGV4LklkbUFDTEFjdGlvbigpO1xuICAgICAgICAgICAgYWN0aW9uLk5hbWUgPSByaWdodDtcbiAgICAgICAgICAgIGFjdGlvbi5WYWx1ZSA9ICcxJztcbiAgICAgICAgICAgIGFjbC5BY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuY2VsbC5BQ0xzW3JvbGVJZF0gPSBhY2w7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jZWxsLkFDTHNbcm9sZUlkXSkge1xuICAgICAgICAgICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5jZWxsLkFDTHNbcm9sZUlkXS5BY3Rpb25zO1xuICAgICAgICAgICAgICAgIHRoaXMuY2VsbC5BQ0xzW3JvbGVJZF0uQWN0aW9ucyA9IGFjdGlvbnMuZmlsdGVyKGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbi5OYW1lICE9PSByaWdodDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2VsbC5BQ0xzW3JvbGVJZF0uQWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVVc2VyKHJvbGVJZCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ub3RpZnlEaXJ0eSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIE5vZGVcbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeUlkIFN0cmluZ1xuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5hZGRSb290Tm9kZSA9IGZ1bmN0aW9uIGFkZFJvb3ROb2RlKG5vZGUpIHtcbiAgICAgICAgdmFyIHJlcG9zaXRvcnlJZCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgdmFyIHB5ZGlvID0gX3B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCk7XG4gICAgICAgIHZhciB0cmVlTm9kZSA9IG5ldyBfaHR0cEdlbkluZGV4LlRyZWVOb2RlKCk7XG4gICAgICAgIHRyZWVOb2RlLlV1aWQgPSBub2RlLmdldE1ldGFkYXRhKCkuZ2V0KCd1dWlkJyk7XG4gICAgICAgIHZhciBzbHVnID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAocmVwb3NpdG9yeUlkKSB7XG4gICAgICAgICAgICBzbHVnID0gcHlkaW8udXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCkuZ2V0KHJlcG9zaXRvcnlJZCkuZ2V0U2x1ZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2x1ZyA9IHB5ZGlvLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeU9iamVjdCgpLmdldFNsdWcoKTtcbiAgICAgICAgfVxuICAgICAgICB0cmVlTm9kZS5QYXRoID0gc2x1ZyArIG5vZGUuZ2V0UGF0aCgpO1xuICAgICAgICB0cmVlTm9kZS5NZXRhU3RvcmUgPSB7IHNlbGVjdGlvbjogdHJ1ZSB9O1xuICAgICAgICB0aGlzLmNlbGwuUm9vdE5vZGVzLnB1c2godHJlZU5vZGUpO1xuICAgICAgICB0aGlzLm5vdGlmeURpcnR5KCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHV1aWQgc3RyaW5nXG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLnJlbW92ZVJvb3ROb2RlID0gZnVuY3Rpb24gcmVtb3ZlUm9vdE5vZGUodXVpZCkge1xuICAgICAgICB2YXIgbmV3Tm9kZXMgPSBbXTtcbiAgICAgICAgdGhpcy5jZWxsLlJvb3ROb2Rlcy5tYXAoZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgICAgIGlmIChuLlV1aWQgIT09IHV1aWQpIHtcbiAgICAgICAgICAgICAgICBuZXdOb2Rlcy5wdXNoKG4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jZWxsLlJvb3ROb2RlcyA9IG5ld05vZGVzO1xuICAgICAgICB0aGlzLm5vdGlmeURpcnR5KCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGVJZFxuICAgICAqIEByZXR1cm4gYm9vbFxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5oYXNSb290Tm9kZSA9IGZ1bmN0aW9uIGhhc1Jvb3ROb2RlKG5vZGVJZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsLlJvb3ROb2Rlcy5maWx0ZXIoZnVuY3Rpb24gKHJvb3QpIHtcbiAgICAgICAgICAgIHJldHVybiByb290LlV1aWQgPT09IG5vZGVJZDtcbiAgICAgICAgfSkubGVuZ3RoO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGVyZSBhcmUgZGlmZmVyZW5jZXMgYmV0d2VlbiBjdXJyZW50IHJvb3Qgbm9kZXMgYW5kIG9yaWdpbmFsIG9uZXNcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5oYXNEaXJ0eVJvb3ROb2RlcyA9IGZ1bmN0aW9uIGhhc0RpcnR5Um9vdE5vZGVzKCkge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICBpZiAoIXRoaXMub3JpZ2luYWxDZWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG5ld05vZGVzID0gW10sXG4gICAgICAgICAgICBkZWxldGVkTm9kZXMgPSBbXTtcbiAgICAgICAgdGhpcy5jZWxsLlJvb3ROb2Rlcy5tYXAoZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgICAgIGlmIChfdGhpczMub3JpZ2luYWxDZWxsLlJvb3ROb2Rlcy5maWx0ZXIoZnVuY3Rpb24gKHJvb3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcm9vdC5VdWlkID09PSBuLlV1aWQ7XG4gICAgICAgICAgICB9KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBuZXdOb2Rlcy5wdXNoKG4uVXVpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9yaWdpbmFsQ2VsbC5Sb290Tm9kZXMubWFwKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgICBpZiAoX3RoaXMzLmNlbGwuUm9vdE5vZGVzLmZpbHRlcihmdW5jdGlvbiAocm9vdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByb290LlV1aWQgPT09IG4uVXVpZDtcbiAgICAgICAgICAgIH0pLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZWROb2Rlcy5wdXNoKG4uVXVpZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3Tm9kZXMubGVuZ3RoID4gMCB8fCBkZWxldGVkTm9kZXMubGVuZ3RoID4gMDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9vbUxhYmVsXG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLnNldExhYmVsID0gZnVuY3Rpb24gc2V0TGFiZWwocm9vbUxhYmVsKSB7XG4gICAgICAgIHRoaXMuY2VsbC5MYWJlbCA9IHJvb21MYWJlbDtcbiAgICAgICAgdGhpcy5ub3RpZnlEaXJ0eSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1N0cmluZ31cbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuZ2V0TGFiZWwgPSBmdW5jdGlvbiBnZXRMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbC5MYWJlbDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtTdHJpbmd9XG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmdldERlc2NyaXB0aW9uID0gZnVuY3Rpb24gZ2V0RGVzY3JpcHRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGwuRGVzY3JpcHRpb247XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybiB7U3RyaW5nfVxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5nZXRVdWlkID0gZnVuY3Rpb24gZ2V0VXVpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbC5VdWlkO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvblxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5zZXREZXNjcmlwdGlvbiA9IGZ1bmN0aW9uIHNldERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMuY2VsbC5EZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgICB0aGlzLm5vdGlmeURpcnR5KCk7XG4gICAgfTtcblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiBjbG9uZShyb29tKSB7XG4gICAgICAgIHJldHVybiBfaHR0cEdlbkluZGV4LlJlc3RDZWxsLmNvbnN0cnVjdEZyb21PYmplY3QoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyb29tKSkpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5zYXZlID0gZnVuY3Rpb24gc2F2ZSgpIHtcbiAgICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLmNlbGwuUm9vdE5vZGVzLmxlbmd0aCAmJiB0aGlzLmNlbGwuVXVpZCkge1xuICAgICAgICAgICAgLy8gY2VsbCB3YXMgZW1wdGllZCwgcmVtb3ZlIGl0XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZWxldGVDZWxsKCdUaGlzIGNlbGwgaGFzIG5vIG1vcmUgaXRlbXMgaW4gaXQsIGl0IHdpbGwgYmUgZGVsZXRlZCwgYXJlIHlvdSBzdXJlPycpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfaHR0cEdlbkluZGV4LlNoYXJlU2VydmljZUFwaShfaHR0cFB5ZGlvQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKSk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IF9odHRwR2VuSW5kZXguUmVzdFB1dENlbGxSZXF1ZXN0KCk7XG4gICAgICAgIGlmICghdGhpcy5fZWRpdCAmJiAhdGhpcy5jZWxsLlJvb3ROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuQ3JlYXRlRW1wdHlSb290ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNlbGwuUm9vdE5vZGVzLm1hcChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgaWYgKG5vZGUuTWV0YVN0b3JlICYmIG5vZGUuTWV0YVN0b3JlLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBub2RlLk1ldGFTdG9yZS5zZWxlY3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXF1ZXN0LlJvb20gPSB0aGlzLmNlbGw7XG4gICAgICAgIHJldHVybiBhcGkucHV0Q2VsbChyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2UuVXVpZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3Igd2hpbGUgc2F2aW5nIGNlbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfdGhpczQuX2VkaXQpIHtcbiAgICAgICAgICAgICAgICBfdGhpczQuY2VsbCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIF90aGlzNC5kaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIF90aGlzNC5vcmlnaW5hbENlbGwgPSBfdGhpczQuY2xvbmUoX3RoaXM0LmNlbGwpO1xuICAgICAgICAgICAgICAgIF90aGlzNC5ub3RpZnkoJ3VwZGF0ZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBfcHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5vYnNlcnZlT25jZSgncmVwb3NpdG9yeV9saXN0X3JlZnJlc2hlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkudHJpZ2dlclJlcG9zaXRvcnlDaGFuZ2UocmVzcG9uc2UuVXVpZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmxvYWQgPSBmdW5jdGlvbiBsb2FkKGNlbGxJZCkge1xuICAgICAgICB2YXIgX3RoaXM1ID0gdGhpcztcblxuICAgICAgICB2YXIgYXBpID0gbmV3IF9odHRwR2VuSW5kZXguU2hhcmVTZXJ2aWNlQXBpKF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpKTtcbiAgICAgICAgcmV0dXJuIGFwaS5nZXRDZWxsKGNlbGxJZCkudGhlbihmdW5jdGlvbiAocm9vbSkge1xuICAgICAgICAgICAgX3RoaXM1LmNlbGwgPSByb29tO1xuICAgICAgICAgICAgaWYgKCFfdGhpczUuY2VsbC5Sb290Tm9kZXMpIHtcbiAgICAgICAgICAgICAgICBfdGhpczUuY2VsbC5Sb290Tm9kZXMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghX3RoaXM1LmNlbGwuQUNMcykge1xuICAgICAgICAgICAgICAgIF90aGlzNS5jZWxsLkFDTHMgPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghX3RoaXM1LmNlbGwuUG9saWNpZXMpIHtcbiAgICAgICAgICAgICAgICBfdGhpczUuY2VsbC5Qb2xpY2llcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFfdGhpczUuY2VsbC5EZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIF90aGlzNS5jZWxsLkRlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfdGhpczUuX2VkaXQgPSB0cnVlO1xuICAgICAgICAgICAgX3RoaXM1Lm9yaWdpbmFsQ2VsbCA9IF90aGlzNS5jbG9uZShfdGhpczUuY2VsbCk7XG4gICAgICAgICAgICBfdGhpczUubm90aWZ5KCd1cGRhdGUnKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjb25maXJtTWVzc2FnZSBTdHJpbmdcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5kZWxldGVDZWxsID0gZnVuY3Rpb24gZGVsZXRlQ2VsbCgpIHtcbiAgICAgICAgdmFyIF90aGlzNiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGNvbmZpcm1NZXNzYWdlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gJycgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgaWYgKCFjb25maXJtTWVzc2FnZSkge1xuICAgICAgICAgICAgY29uZmlybU1lc3NhZ2UgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNlbGw/IFRoaXMgY2Fubm90IGJlIHVuZG9uZS4nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maXJtKGNvbmZpcm1NZXNzYWdlKSkge1xuICAgICAgICAgICAgdmFyIF9yZXQgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBhcGkgPSBuZXcgX2h0dHBHZW5JbmRleC5TaGFyZVNlcnZpY2VBcGkoX2h0dHBQeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkpO1xuICAgICAgICAgICAgICAgIHZhciBweWRpbyA9IF9weWRpbzJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSgpO1xuICAgICAgICAgICAgICAgIGlmIChweWRpby51c2VyLmFjdGl2ZVJlcG9zaXRvcnkgPT09IF90aGlzNi5jZWxsLlV1aWQpIHtcbiAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzd2l0Y2hUb090aGVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgcHlkaW8udXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCkuZm9yRWFjaChmdW5jdGlvbiAodiwgaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrICE9PSBfdGhpczYuY2VsbC5VdWlkICYmICghc3dpdGNoVG9PdGhlciB8fCB2LmdldEFjY2Vzc1R5cGUoKSA9PT0gJ2dhdGV3YXknKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hUb090aGVyID0gaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzd2l0Y2hUb090aGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHlkaW8udHJpZ2dlclJlcG9zaXRvcnlDaGFuZ2Uoc3dpdGNoVG9PdGhlciwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGkuZGVsZXRlQ2VsbChfdGhpczYuY2VsbC5VdWlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdjogYXBpLmRlbGV0ZUNlbGwoX3RoaXM2LmNlbGwuVXVpZCkudGhlbihmdW5jdGlvbiAocmVzKSB7fSlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIF9yZXQgPT09ICdvYmplY3QnKSByZXR1cm4gX3JldC52O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH07XG5cbiAgICByZXR1cm4gQ2VsbE1vZGVsO1xufSkoX2xhbmdPYnNlcnZhYmxlMlsnZGVmYXVsdCddKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQ2VsbE1vZGVsO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9sYW5nT2JzZXJ2YWJsZSA9IHJlcXVpcmUoJy4uL2xhbmcvT2JzZXJ2YWJsZScpO1xuXG52YXIgX2xhbmdPYnNlcnZhYmxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdPYnNlcnZhYmxlKTtcblxudmFyIF9sYW5nTG9nZ2VyID0gcmVxdWlyZSgnLi4vbGFuZy9Mb2dnZXInKTtcblxudmFyIF9sYW5nTG9nZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdMb2dnZXIpO1xuXG52YXIgX2h0dHBQeWRpb0FwaSA9IHJlcXVpcmUoJy4uL2h0dHAvUHlkaW9BcGknKTtcblxudmFyIF9odHRwUHlkaW9BcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cFB5ZGlvQXBpKTtcblxudmFyIF91dGlsWE1MVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL1hNTFV0aWxzJyk7XG5cbnZhciBfdXRpbFhNTFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxYTUxVdGlscyk7XG5cbnZhciBfQWN0aW9uID0gcmVxdWlyZSgnLi9BY3Rpb24nKTtcblxudmFyIF9BY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWN0aW9uKTtcblxuLyoqXG4gKiBTaW5nbGV0b24gY2xhc3MgdGhhdCBtYW5hZ2VzIGFsbCBhY3Rpb25zLiBDYW4gYmUgY2FsbGVkIGRpcmVjdGx5IHVzaW5nIHB5ZGlvLmdldENvbnRyb2xsZXIoKS5cbiAqL1xuXG52YXIgQ29udHJvbGxlciA9IChmdW5jdGlvbiAoX09ic2VydmFibGUpIHtcbiAgICBfaW5oZXJpdHMoQ29udHJvbGxlciwgX09ic2VydmFibGUpO1xuXG4gICAgLyoqXG4gICAgICogU3RhbmRhcmQgY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gcHlkaW9PYmplY3QgUHlkaW9cbiAgICAgKiBAcGFyYW0gZGF0YU1vZGVsRWxlbWVudElkXG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBDb250cm9sbGVyKHB5ZGlvT2JqZWN0KSB7XG4gICAgICAgIHZhciBkYXRhTW9kZWxFbGVtZW50SWQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb250cm9sbGVyKTtcblxuICAgICAgICBfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuICAgICAgICB0aGlzLl9weWRpb09iamVjdCA9IHB5ZGlvT2JqZWN0O1xuICAgICAgICB0aGlzLl9yZWdpc3RlcmVkS2V5cyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy51c2Vyc0VuYWJsZWQgPSBweWRpb09iamVjdC5QYXJhbWV0ZXJzLmdldChcInVzZXJzRW5hYmxlZFwiKTtcblxuICAgICAgICB0aGlzLnN1Yk1lbnVzID0gW107XG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5kZWZhdWx0QWN0aW9ucyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy50b29sYmFycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5fZ3VpQWN0aW9ucyA9IG5ldyBNYXAoKTtcblxuICAgICAgICB0aGlzLmNvbnRleHRDaGFuZ2VkT2JzID0gKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpcmVDb250ZXh0Q2hhbmdlKCk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpLCAwKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkT2JzID0gKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpcmVTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcyksIDApO1xuICAgICAgICB9KS5iaW5kKHRoaXMpO1xuXG4gICAgICAgIGlmIChkYXRhTW9kZWxFbGVtZW50SWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxEYXRhTW9kZWwgPSB0cnVlO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhTW9kZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkYXRhTW9kZWxFbGVtZW50SWQpLmFqeHBQYW5lT2JqZWN0LmdldERhdGFNb2RlbCgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICAgIGlmICh0aGlzLl9kYXRhTW9kZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb25uZWN0RGF0YU1vZGVsKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3B5ZGlvT2JqZWN0Lm9ic2VydmVPbmNlKFwiZGF0YW1vZGVsLWxvYWRlZC1cIiArIGRhdGFNb2RlbEVsZW1lbnRJZCwgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YU1vZGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGF0YU1vZGVsRWxlbWVudElkKS5hanhwUGFuZU9iamVjdC5nZXREYXRhTW9kZWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29ubmVjdERhdGFNb2RlbCgpO1xuICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2NhbERhdGFNb2RlbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fY29ubmVjdERhdGFNb2RlbCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudXNlcnNFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9weWRpb09iamVjdC5vYnNlcnZlKFwidXNlcl9sb2dnZWRcIiwgKGZ1bmN0aW9uICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRVc2VyKHVzZXIpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5fcHlkaW9PYmplY3QudXNlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VXNlcih0aGlzLl9weWRpb09iamVjdC51c2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmdldFB5ZGlvID0gZnVuY3Rpb24gZ2V0UHlkaW8oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9weWRpb09iamVjdDtcbiAgICB9O1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUucHVibGlzaEFjdGlvbkV2ZW50ID0gZnVuY3Rpb24gcHVibGlzaEFjdGlvbkV2ZW50KGV2ZW50TmFtZSwgZGF0YSkge1xuICAgICAgICB0aGlzLl9weWRpb09iamVjdC5maXJlKGV2ZW50TmFtZSwgZGF0YSk7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLl9jb25uZWN0RGF0YU1vZGVsID0gZnVuY3Rpb24gX2Nvbm5lY3REYXRhTW9kZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLmxvY2FsRGF0YU1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhTW9kZWwub2JzZXJ2ZShcImNvbnRleHRfY2hhbmdlZFwiLCB0aGlzLmNvbnRleHRDaGFuZ2VkT2JzKTtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFNb2RlbC5vYnNlcnZlKFwic2VsZWN0aW9uX2NoYW5nZWRcIiwgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkT2JzKTtcbiAgICAgICAgICAgIHRoaXMubG9hZEFjdGlvbnNGcm9tUmVnaXN0cnkoKTtcbiAgICAgICAgICAgIHRoaXMuX3B5ZGlvT2JqZWN0Lm9ic2VydmUoXCJyZWdpc3RyeV9sb2FkZWRcIiwgKGZ1bmN0aW9uIChyZWdpc3RyeSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZEFjdGlvbnNGcm9tUmVnaXN0cnkocmVnaXN0cnkpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9weWRpb09iamVjdC5vYnNlcnZlKFwiY29udGV4dF9jaGFuZ2VkXCIsIHRoaXMuY29udGV4dENoYW5nZWRPYnMpO1xuICAgICAgICAgICAgdGhpcy5fcHlkaW9PYmplY3Qub2JzZXJ2ZShcInNlbGVjdGlvbl9jaGFuZ2VkXCIsIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZE9icyk7XG4gICAgICAgICAgICB0aGlzLl9kYXRhTW9kZWwgPSB0aGlzLl9weWRpb09iamVjdC5nZXRDb250ZXh0SG9sZGVyKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUudXBkYXRlR3VpQWN0aW9ucyA9IGZ1bmN0aW9uIHVwZGF0ZUd1aUFjdGlvbnMoYWN0aW9ucykge1xuICAgICAgICBhY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uICh2LCBrKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2d1aUFjdGlvbnMuaGFzKGspKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZ3VpQWN0aW9ucy5zZXQoaywgdik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlckFjdGlvbih2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMubm90aWZ5KFwiYWN0aW9uc19yZWZyZXNoZWRcIik7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmRlbGV0ZUZyb21HdWlBY3Rpb25zID0gZnVuY3Rpb24gZGVsZXRlRnJvbUd1aUFjdGlvbnMoYWN0aW9uTmFtZSkge1xuICAgICAgICB0aGlzLl9ndWlBY3Rpb25zWydkZWxldGUnXShhY3Rpb25OYW1lKTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9ucy5oYXMoYWN0aW9uTmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc1snZGVsZXRlJ10oYWN0aW9uTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ub3RpZnkoXCJhY3Rpb25zX3JlZnJlc2hlZFwiKTtcbiAgICB9O1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUucmVmcmVzaEd1aUFjdGlvbnNJMThuID0gZnVuY3Rpb24gcmVmcmVzaEd1aUFjdGlvbnNJMThuKCkge1xuICAgICAgICB0aGlzLl9ndWlBY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICAgIHZhbHVlLnJlZnJlc2hGcm9tSTE4Tkhhc2goKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmdldERhdGFNb2RlbCA9IGZ1bmN0aW9uIGdldERhdGFNb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFNb2RlbDtcbiAgICB9O1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmxvY2FsRGF0YU1vZGVsICYmIHRoaXMuX2RhdGFNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YU1vZGVsLnN0b3BPYnNlcnZpbmcoXCJjb250ZXh0X2NoYW5nZWRcIiwgdGhpcy5jb250ZXh0Q2hhbmdlZE9icyk7XG4gICAgICAgICAgICB0aGlzLl9kYXRhTW9kZWwuc3RvcE9ic2VydmluZyhcInNlbGVjdGlvbl9jaGFuZ2VkXCIsIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZE9icyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0TWVzc2FnZSA9IGZ1bmN0aW9uIGdldE1lc3NhZ2UobWVzc2FnZUlkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHlkaW9PYmplY3QuTWVzc2FnZUhhc2hbbWVzc2FnZUlkXTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2VJZDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZXMgdGhlIGN1cnJlbnRseSBsb2dnZWQgdXNlciBvYmplY3RcbiAgICAgKiBAcGFyYW0gb1VzZXIgVXNlciBVc2VyIGluc3RhbmNlXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5zZXRVc2VyID0gZnVuY3Rpb24gc2V0VXNlcihvVXNlcikge1xuICAgICAgICB0aGlzLm9Vc2VyID0gb1VzZXI7XG4gICAgICAgIGlmIChvVXNlciAhPSBudWxsICYmIG9Vc2VyLmlkICE9PSAnZ3Vlc3QnICYmIG9Vc2VyLmdldFByZWZlcmVuY2UoJ2xhbmcnKSAhPSBudWxsICYmIG9Vc2VyLmdldFByZWZlcmVuY2UoJ2xhbmcnKSAhPT0gXCJcIiAmJiBvVXNlci5nZXRQcmVmZXJlbmNlKCdsYW5nJykgIT09IHRoaXMuX3B5ZGlvT2JqZWN0LmN1cnJlbnRMYW5ndWFnZSAmJiAhb1VzZXIubG9jaykge1xuICAgICAgICAgICAgdGhpcy5fcHlkaW9PYmplY3QubG9hZEkxOE5NZXNzYWdlcyhvVXNlci5nZXRQcmVmZXJlbmNlKCdsYW5nJyksIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgdGhlIGFjdGlvbnMgZ2l2ZW4gdGhlIHNyY0VsZW1lbnQgcGFzc2VkIGFzIGFyZ3VtZW50cy5cbiAgICAgKiBAcGFyYW0gYWN0aW9uc1NlbGVjdG9yQXR0IFN0cmluZyBBbiBpZGVudGlmaWVyIGFtb25nIHNlbGVjdGlvbkNvbnRleHQsIGdlbmVyaWNDb250ZXh0LCBhIHdlYmZ4IG9iamVjdCBpZFxuICAgICAgICAqIEBwYXJhbSBpZ25vcmVHcm91cHMgQXJyYXkgYSBsaXN0IG9mIGdyb3VwcyB0byBpZ25vcmVcbiAgICAgKiBAcmV0dXJucyBBcnJheVxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0Q29udGV4dEFjdGlvbnMgPSBmdW5jdGlvbiBnZXRDb250ZXh0QWN0aW9ucyhhY3Rpb25zU2VsZWN0b3JBdHQsIGlnbm9yZUdyb3Vwcywgb25seUdyb3Vwcykge1xuICAgICAgICB2YXIgY29udGV4dEFjdGlvbnMgPSBbXTtcbiAgICAgICAgdmFyIGRlZmF1bHRHcm91cCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIGNvbnRleHRBY3Rpb25zR3JvdXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuYWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoIWFjdGlvbi5jb250ZXh0LmNvbnRleHRNZW51ICYmICEob25seUdyb3VwcyAmJiBvbmx5R3JvdXBzLmxlbmd0aCkpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChhY3Rpb25zU2VsZWN0b3JBdHQgPT0gJ3NlbGVjdGlvbkNvbnRleHQnICYmICFhY3Rpb24uY29udGV4dC5zZWxlY3Rpb24pIHJldHVybjtcbiAgICAgICAgICAgIGlmIChhY3Rpb25zU2VsZWN0b3JBdHQgPT0gJ2RpcmVjdG9yeUNvbnRleHQnICYmICFhY3Rpb24uY29udGV4dC5kaXIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChhY3Rpb25zU2VsZWN0b3JBdHQgPT0gJ2dlbmVyaWNDb250ZXh0JyAmJiBhY3Rpb24uY29udGV4dC5zZWxlY3Rpb24pIHJldHVybjtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uY29udGV4dEhpZGRlbiB8fCBhY3Rpb24uZGVueSkgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uLmNvbnRleHQuYWN0aW9uQmFyR3JvdXAuc3BsaXQoJywnKS5mb3JFYWNoKGZ1bmN0aW9uIChiYXJHcm91cCkge1xuICAgICAgICAgICAgICAgIGlmICghY29udGV4dEFjdGlvbnNHcm91cC5oYXMoYmFyR3JvdXApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHRBY3Rpb25zR3JvdXAuc2V0KGJhckdyb3VwLCBbXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgaXNEZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoYWN0aW9uc1NlbGVjdG9yQXR0ID09ICdzZWxlY3Rpb25Db250ZXh0Jykge1xuICAgICAgICAgICAgICAgIC8vIHNldCBkZWZhdWx0IGluIGJvbGRcbiAgICAgICAgICAgICAgICB2YXIgdXNlclNlbGVjdGlvbiA9IHRoaXMuX2RhdGFNb2RlbDtcbiAgICAgICAgICAgICAgICBpZiAoIXVzZXJTZWxlY3Rpb24uaXNFbXB0eSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZWZhdWx0QWN0aW9uID0gJ2ZpbGUnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodXNlclNlbGVjdGlvbi5pc1VuaXF1ZSgpICYmICh1c2VyU2VsZWN0aW9uLmhhc0RpcigpIHx8IHVzZXJTZWxlY3Rpb24uaGFzTWltZShbJ2FqeHBfYnJvd3NhYmxlX2FyY2hpdmUnXSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0QWN0aW9uID0gJ2Rpcic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnMuZ2V0KGRlZmF1bHRBY3Rpb24pICYmIGFjdGlvbi5vcHRpb25zLm5hbWUgPT0gdGhpcy5kZWZhdWx0QWN0aW9ucy5nZXQoZGVmYXVsdEFjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY3Rpb24uY29udGV4dC5hY3Rpb25CYXJHcm91cC5zcGxpdCgnLCcpLmZvckVhY2goZnVuY3Rpb24gKGJhckdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVJdGVtID0gYWN0aW9uLmdldE1lbnVEYXRhKCk7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW0uaXNEZWZhdWx0ID0gaXNEZWZhdWx0O1xuICAgICAgICAgICAgICAgIGNvbnRleHRBY3Rpb25zR3JvdXAuZ2V0KGJhckdyb3VwKS5wdXNoKG1lbnVJdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRHcm91cCA9IGJhckdyb3VwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdmFyIGZpcnN0ID0gdHJ1ZSxcbiAgICAgICAgICAgIGtleXMgPSBbXTtcbiAgICAgICAgY29udGV4dEFjdGlvbnNHcm91cCA9IHRoaXMuX3NvcnRUb29sYmFyc0FjdGlvbnMoY29udGV4dEFjdGlvbnNHcm91cCk7XG4gICAgICAgIGNvbnRleHRBY3Rpb25zR3JvdXAuZm9yRWFjaChmdW5jdGlvbiAodiwgaykge1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRHcm91cCAmJiBrID09IGRlZmF1bHRHcm91cCkgcmV0dXJuO1xuICAgICAgICAgICAga2V5cy5wdXNoKGspO1xuICAgICAgICB9KTtcbiAgICAgICAga2V5cy5zb3J0KCk7XG4gICAgICAgIGlmIChkZWZhdWx0R3JvdXAgJiYgY29udGV4dEFjdGlvbnNHcm91cC5oYXMoZGVmYXVsdEdyb3VwKSkge1xuICAgICAgICAgICAga2V5cy51bnNoaWZ0KGRlZmF1bHRHcm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFjdGlvbnNQdXNoZWQgPSB7fTtcbiAgICAgICAga2V5cy5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gY29udGV4dEFjdGlvbnNHcm91cC5nZXQoa2V5KTtcbiAgICAgICAgICAgIGlmICghZmlyc3QpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0QWN0aW9ucy5wdXNoKHsgc2VwYXJhdG9yOiB0cnVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlnbm9yZUdyb3VwcyAmJiBpZ25vcmVHcm91cHMuaW5kZXhPZihrZXkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvbmx5R3JvdXBzICYmIG9ubHlHcm91cHMuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uIChtSXRlbSkge1xuICAgICAgICAgICAgICAgIHZhciBhY3Rpb25JZCA9IG1JdGVtLmFjdGlvbl9pZDtcbiAgICAgICAgICAgICAgICBpZiAoIWFjdGlvbnNQdXNoZWRbYWN0aW9uSWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHRBY3Rpb25zLnB1c2gobUl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25zUHVzaGVkW2FjdGlvbklkXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY29udGV4dEFjdGlvbnM7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmdldFRvb2xiYXJzQWN0aW9ucyA9IGZ1bmN0aW9uIGdldFRvb2xiYXJzQWN0aW9ucygpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgdG9vbGJhcnNMaXN0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gW10gOiBhcmd1bWVudHNbMF07XG4gICAgICAgIHZhciBncm91cE90aGVyTGlzdCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IFtdIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIHZhciB0b29sYmFycyA9IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIGdyb3VwT3RoZXJCYXJzID0gbmV3IE1hcCgpO1xuICAgICAgICB2YXIgbGFzdFRiYXJBZGRlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uY29udGV4dC5hY3Rpb25CYXIpIHtcbiAgICAgICAgICAgICAgICBhY3Rpb24uY29udGV4dC5hY3Rpb25CYXJHcm91cC5zcGxpdChcIixcIikubWFwKChmdW5jdGlvbiAoYmFyR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvb2xiYXJzTGlzdC5pbmRleE9mKGJhckdyb3VwKSA9PT0gLTEgJiYgZ3JvdXBPdGhlckxpc3QuaW5kZXhPZihiYXJHcm91cCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIHRCYXJVcGRhdGUgPSB0b29sYmFyc0xpc3QuaW5kZXhPZihiYXJHcm91cCkgIT09IC0xID8gdG9vbGJhcnMgOiBncm91cE90aGVyQmFycztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRCYXJVcGRhdGUuZ2V0KGJhckdyb3VwKSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0QmFyVXBkYXRlLnNldChiYXJHcm91cCwgW10pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRCYXJVcGRhdGUuZ2V0KGJhckdyb3VwKS5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0QmFyVXBkYXRlID09PSB0b29sYmFycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRiYXJBZGRlZCA9IGJhckdyb3VwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuXG4gICAgICAgIC8vIFJlZ3JvdXAgYWN0aW9ucyBhcnRpZmljaWFsbHlcbiAgICAgICAgaWYgKGdyb3VwT3RoZXJMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgc3VibWVudUl0ZW1zID0gW107XG4gICAgICAgICAgICAgICAgZ3JvdXBPdGhlckxpc3QubWFwKChmdW5jdGlvbiAob3RoZXJUb29sYmFyKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIG90aGVyQWN0aW9ucyA9IGdyb3VwT3RoZXJCYXJzLmdldChvdGhlclRvb2xiYXIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW90aGVyQWN0aW9ucykgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICBvdGhlckFjdGlvbnMubWFwKGZ1bmN0aW9uIChhY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1lbnVJdGVtcy5wdXNoKHsgYWN0aW9uSWQ6IGFjdCB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChncm91cE90aGVyTGlzdC5pbmRleE9mKG90aGVyVG9vbGJhcikgPCBncm91cE90aGVyTGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJtZW51SXRlbXMucHVzaCh7IHNlcGFyYXRvcjogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLmJpbmQoX3RoaXMpKTtcbiAgICAgICAgICAgICAgICB2YXIgbW9yZUFjdGlvbiA9IG5ldyBfQWN0aW9uMlsnZGVmYXVsdCddKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2dyb3VwX21vcmVfYWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbl9jbGFzczogJ2ljb24tbm9uZScsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IE1lc3NhZ2VIYXNoWzQ1Nl0sXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBNZXNzYWdlSGFzaFs0NTZdLFxuICAgICAgICAgICAgICAgICAgICBoYXNBY2Nlc3NLZXk6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzdWJNZW51OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gY2FsbGJhY2soKSB7fVxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZGlyOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25CYXI6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbkJhckdyb3VwOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dE1lbnU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBpbmZvUGFuZWw6IGZhbHNlXG5cbiAgICAgICAgICAgICAgICB9LCB7fSwge30sIHsgZHluYW1pY0l0ZW1zOiBzdWJtZW51SXRlbXMgfSk7XG4gICAgICAgICAgICAgICAgX3RoaXMucmVnaXN0ZXJBY3Rpb24obW9yZUFjdGlvbik7XG4gICAgICAgICAgICAgICAgX3RoaXMuYWN0aW9ucy5zZXQoXCJncm91cF9tb3JlX2FjdGlvblwiLCBtb3JlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB0b29sYmFycy5zZXQoJ01PUkVfQUNUSU9OJywgW21vcmVBY3Rpb25dKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc29ydFRvb2xiYXJzQWN0aW9ucyh0b29sYmFycyk7XG4gICAgICAgIHJldHVybiB0b29sYmFycztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2VuZXJpYyBtZXRob2QgdG8gZ2V0IGFjdGlvbnMgZm9yIGEgZ2l2ZW4gY29tcG9uZW50IHBhcnQuXG4gICAgICogQHBhcmFtIGFqeHBDbGFzc05hbWUgU3RyaW5nIFxuICAgICAqIEBwYXJhbSB3aWRnZXRJZCBTdHJpbmdcbiAgICAgKiBAcmV0dXJucyBbXVxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0QWN0aW9uc0ZvckFqeHBXaWRnZXQgPSBmdW5jdGlvbiBnZXRBY3Rpb25zRm9yQWp4cFdpZGdldChhanhwQ2xhc3NOYW1lLCB3aWRnZXRJZCkge1xuICAgICAgICB2YXIgYWN0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLmNvbnRleHQuYWp4cFdpZGdldHMgJiYgKGFjdGlvbi5jb250ZXh0LmFqeHBXaWRnZXRzLmluZGV4T2YoYWp4cENsYXNzTmFtZSArICc6OicgKyB3aWRnZXRJZCkgIT0gLTEgfHwgYWN0aW9uLmNvbnRleHQuYWp4cFdpZGdldHMuaW5kZXhPZihhanhwQ2xhc3NOYW1lKSAhPSAtMSkgJiYgIWFjdGlvbi5kZW55KSBhY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhY3Rpb25zO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyBhIGRlZmF1bHQgYWN0aW9uIGFuZCBmaXJlcyBpdC5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdE5hbWUgU3RyaW5nIChcImZpbGVcIiwgXCJkaXJcIiwgXCJkcmFnbmRyb3BcIiwgXCJjdHJsZHJhZ25kcm9wXCIpXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5maXJlRGVmYXVsdEFjdGlvbiA9IGZ1bmN0aW9uIGZpcmVEZWZhdWx0QWN0aW9uKGRlZmF1bHROYW1lKSB7XG4gICAgICAgIHZhciBhY3Rpb25OYW1lID0gdGhpcy5kZWZhdWx0QWN0aW9ucy5nZXQoZGVmYXVsdE5hbWUpO1xuICAgICAgICBpZiAoYWN0aW9uTmFtZSkge1xuICAgICAgICAgICAgYXJndW1lbnRzWzBdID0gYWN0aW9uTmFtZTtcbiAgICAgICAgICAgIGlmIChhY3Rpb25OYW1lID09PSBcImxzXCIpIHtcbiAgICAgICAgICAgICAgICB2YXIgYWN0aW9uID0gdGhpcy5hY3Rpb25zLmdldChhY3Rpb25OYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uKSBhY3Rpb24uZW5hYmxlKCk7IC8vIEZvcmNlIGVuYWJsZSBvbiBkZWZhdWx0IGFjdGlvblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5maXJlQWN0aW9uLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmlyZSBhbiBhY3Rpb24gYmFzZWQgb24gaXRzIG5hbWVcbiAgICAgKiBAcGFyYW0gYWN0aW9uTmFtZSBTdHJpbmcgVGhlIG5hbWUgb2YgdGhlIGFjdGlvblxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZmlyZUFjdGlvbiA9IGZ1bmN0aW9uIGZpcmVBY3Rpb24oYWN0aW9uTmFtZSkge1xuICAgICAgICB2YXIgYWN0aW9uID0gdGhpcy5hY3Rpb25zLmdldChhY3Rpb25OYW1lKTtcbiAgICAgICAgaWYgKGFjdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IEFycmF5LmZyb20oYXJndW1lbnRzKS5zbGljZSgxKTtcbiAgICAgICAgICAgIGFjdGlvbi5hcHBseShhcmdzKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgYW4gYWNjZXNza2V5IGZvciBhIGdpdmVuIGFjdGlvbi4gXG4gICAgICogQHBhcmFtIGtleSBTdHJpbmcgVGhlIGFjY2VzcyBrZXlcbiAgICAgKiBAcGFyYW0gYWN0aW9uTmFtZSBTdHJpbmcgVGhlIG5hbWUgb2YgdGhlIGFjdGlvblxuICAgICAqIEBwYXJhbSBvcHRpb25uYWxDb21tYW5kIFN0cmluZyBBbiBvcHRpb25uYWwgYXJndW1lbnQgXG4gICAgICogdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgYWN0aW9uIHdoZW4gZmlyZWQuXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5yZWdpc3RlcktleSA9IGZ1bmN0aW9uIHJlZ2lzdGVyS2V5KGtleSwgYWN0aW9uTmFtZSwgb3B0aW9ubmFsQ29tbWFuZCkge1xuICAgICAgICBpZiAob3B0aW9ubmFsQ29tbWFuZCkge1xuICAgICAgICAgICAgYWN0aW9uTmFtZSA9IGFjdGlvbk5hbWUgKyBcIjo6XCIgKyBvcHRpb25uYWxDb21tYW5kO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyZWRLZXlzLnNldChrZXkudG9Mb3dlckNhc2UoKSwgYWN0aW9uTmFtZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhbGwgcmVnaXN0ZXJlZCBrZXlzLlxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuY2xlYXJSZWdpc3RlcmVkS2V5cyA9IGZ1bmN0aW9uIGNsZWFyUmVnaXN0ZXJlZEtleXMoKSB7XG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyZWRLZXlzID0gbmV3IE1hcCgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VycyBhbiBhY3Rpb24gYnkgaXRzIGFjY2VzcyBrZXkuXG4gICAgICogQHBhcmFtIGtleU5hbWUgU3RyaW5nIEEga2V5IG5hbWVcbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmZpcmVBY3Rpb25CeUtleSA9IGZ1bmN0aW9uIGZpcmVBY3Rpb25CeUtleShrZXlOYW1lKSB7XG4gICAgICAgIGlmICh0aGlzLl9yZWdpc3RlcmVkS2V5cy5nZXQoa2V5TmFtZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9yZWdpc3RlcmVkS2V5cy5nZXQoa2V5TmFtZSkuaW5kZXhPZihcIjo6XCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHZhciBwYXJ0cyA9IHRoaXMuX3JlZ2lzdGVyZWRLZXlzLmdldChrZXlOYW1lKS5zcGxpdChcIjo6XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlyZUFjdGlvbihwYXJ0c1swXSwgcGFydHNbMV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpcmVBY3Rpb24odGhpcy5fcmVnaXN0ZXJlZEtleXMuZ2V0KGtleU5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBhY3Rpb24gZGVmaW5lZCBhcyBkZWZhdWx0IGZvciBhIGdpdmVuIGRlZmF1bHQgc3RyaW5nXG4gICAgICogQHBhcmFtIGRlZmF1bHROYW1lIFN0cmluZ1xuICAgICAqIEByZXR1cm5zIEFjdGlvblxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0RGVmYXVsdEFjdGlvbiA9IGZ1bmN0aW9uIGdldERlZmF1bHRBY3Rpb24oZGVmYXVsdE5hbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnMuaGFzKGRlZmF1bHROYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucy5nZXQodGhpcy5kZWZhdWx0QWN0aW9ucy5nZXQoZGVmYXVsdE5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU3ByZWFkcyBhIHNlbGVjdGlvbiBjaGFuZ2UgdG8gYWxsIGFjdGlvbnMgYW5kIHRvIHJlZ2lzdGVyZWQgY29tcG9uZW50cyBcbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmZpcmVTZWxlY3Rpb25DaGFuZ2UgPSBmdW5jdGlvbiBmaXJlU2VsZWN0aW9uQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICAgICAgYWN0aW9uLmZpcmVTZWxlY3Rpb25DaGFuZ2UodGhpcy5fZGF0YU1vZGVsKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMubm90aWZ5KFwiYWN0aW9uc19yZWZyZXNoZWRcIik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNwcmVhZHMgYSBjb250ZXh0IGNoYW5nZSB0byBhbGwgYWN0aW9ucyBhbmQgdG8gcmVnaXN0ZXJlZCBjb21wb25lbnRzIFxuICAgICAqIGJ5IHRyaWdnZXJpbmcgYWN0aW9uc19yZWZyZXNoZWQgZXZlbnQuXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5maXJlQ29udGV4dENoYW5nZSA9IGZ1bmN0aW9uIGZpcmVDb250ZXh0Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICAgICAgYWN0aW9uLmZpcmVDb250ZXh0Q2hhbmdlKHRoaXMuX2RhdGFNb2RlbCwgdGhpcy51c2Vyc0VuYWJsZWQsIHRoaXMub1VzZXIpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5ub3RpZnkoXCJhY3Rpb25zX3JlZnJlc2hlZFwiKTtcbiAgICB9O1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gbm90aWZ5KGV2ZW50TmFtZSwgbWVtbykge1xuICAgICAgICBpZiAodGhpcy5sb2NhbERhdGFNb2RlbCkge1xuICAgICAgICAgICAgX09ic2VydmFibGUucHJvdG90eXBlLm5vdGlmeS5jYWxsKHRoaXMsIFwiYWN0aW9uc19yZWZyZXNoZWRcIiwgbWVtbyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9weWRpb09iamVjdC5maXJlKFwiYWN0aW9uc19yZWZyZXNoZWRcIik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGFsbCBhY3Rpb25zXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5yZW1vdmVBY3Rpb25zID0gZnVuY3Rpb24gcmVtb3ZlQWN0aW9ucygpIHtcbiAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICAgICAgYWN0aW9uLnJlbW92ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25zID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmNsZWFyUmVnaXN0ZXJlZEtleXMoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGFjdGlvbnMgZnJvbSBYTUwgUmVnaXN0cnlcbiAgICAgKiBAcGFyYW0gcmVnaXN0cnkgRE9NRG9jdW1lbnRcbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmxvYWRBY3Rpb25zRnJvbVJlZ2lzdHJ5ID0gZnVuY3Rpb24gbG9hZEFjdGlvbnNGcm9tUmVnaXN0cnkoKSB7XG4gICAgICAgIHZhciByZWdpc3RyeSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgaWYgKCFyZWdpc3RyeSkge1xuICAgICAgICAgICAgcmVnaXN0cnkgPSBweWRpby5nZXRYbWxSZWdpc3RyeSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWN0aW9ucygpO1xuICAgICAgICB0aGlzLnBhcnNlQWN0aW9ucyhyZWdpc3RyeSk7XG4gICAgICAgIHRoaXMuX2d1aUFjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24gKGFjdCkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckFjdGlvbihhY3QpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5ub3RpZnkoXCJhY3Rpb25zX2xvYWRlZFwiKTtcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dENoYW5nZSgpO1xuICAgICAgICB0aGlzLmZpcmVTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGFuIGFjdGlvbiB0byB0aGlzIG1hbmFnZXIgKGRlZmF1bHQsIGFjY2Vzc2tleSkuXG4gICAgICogQHBhcmFtIGFjdGlvbiBBY3Rpb25cbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLnJlZ2lzdGVyQWN0aW9uID0gZnVuY3Rpb24gcmVnaXN0ZXJBY3Rpb24oYWN0aW9uKSB7XG4gICAgICAgIHZhciBhY3Rpb25OYW1lID0gYWN0aW9uLm9wdGlvbnMubmFtZTtcbiAgICAgICAgdGhpcy5hY3Rpb25zLnNldChhY3Rpb25OYW1lLCBhY3Rpb24pO1xuICAgICAgICBpZiAoYWN0aW9uLmRlZmF1bHRzKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gYWN0aW9uLmRlZmF1bHRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi5kZWZhdWx0cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdEFjdGlvbnMuc2V0KGtleSwgYWN0aW9uTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb24ub3B0aW9ucy5oYXNBY2Nlc3NLZXkpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJLZXkoYWN0aW9uLm9wdGlvbnMuYWNjZXNzS2V5LCBhY3Rpb25OYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uLm9wdGlvbnMuc3BlY2lhbEFjY2Vzc0tleSkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlcktleShcImtleV9cIiArIGFjdGlvbi5vcHRpb25zLnNwZWNpYWxBY2Nlc3NLZXksIGFjdGlvbk5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGFjdGlvbi5zZXRNYW5hZ2VyKHRoaXMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZSBhbiBYTUwgYWN0aW9uIG5vZGUgYW5kIHJlZ2lzdGVycyB0aGUgYWN0aW9uXG4gICAgICogQHBhcmFtIGRvY3VtZW50RWxlbWVudCBET01Ob2RlIFRoZSBub2RlIHRvIHBhcnNlXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5wYXJzZUFjdGlvbnMgPSBmdW5jdGlvbiBwYXJzZUFjdGlvbnMoZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAgIHZhciBhY3Rpb25zID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdE5vZGVzKGRvY3VtZW50RWxlbWVudCwgXCJhY3Rpb25zL2FjdGlvblwiKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uc1tpXS5ub2RlTmFtZSAhPSAnYWN0aW9uJykgY29udGludWU7XG4gICAgICAgICAgICBpZiAoYWN0aW9uc1tpXS5nZXRBdHRyaWJ1dGUoJ2VuYWJsZWQnKSA9PSAnZmFsc2UnKSBjb250aW51ZTtcbiAgICAgICAgICAgIHZhciBuZXdBY3Rpb24gPSBuZXcgX0FjdGlvbjJbJ2RlZmF1bHQnXSgpO1xuICAgICAgICAgICAgbmV3QWN0aW9uLnNldE1hbmFnZXIodGhpcyk7XG4gICAgICAgICAgICBuZXdBY3Rpb24uY3JlYXRlRnJvbVhNTChhY3Rpb25zW2ldKTtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJBY3Rpb24obmV3QWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIGFuIGFjdGlvbiBieSBpdHMgbmFtZVxuICAgICAqIEBwYXJhbSBhY3Rpb25OYW1lIFN0cmluZ1xuICAgICAqIEByZXR1cm5zIEFjdGlvblxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0QWN0aW9uQnlOYW1lID0gZnVuY3Rpb24gZ2V0QWN0aW9uQnlOYW1lKGFjdGlvbk5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucy5nZXQoYWN0aW9uTmFtZSk7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLl9zb3J0VG9vbGJhcnNBY3Rpb25zID0gZnVuY3Rpb24gX3NvcnRUb29sYmFyc0FjdGlvbnModG9vbGJhcnMpIHtcbiAgICAgICAgLy8gU29ydFxuICAgICAgICB0b29sYmFycy5mb3JFYWNoKGZ1bmN0aW9uICh2LCBrKSB7XG4gICAgICAgICAgICBpZiAoIXYuc29ydCkgcmV0dXJuO1xuICAgICAgICAgICAgdi5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgdmFyIHdBID0gYS53ZWlnaHQgfHwgYS5vcHRpb25zICYmIGEub3B0aW9ucy53ZWlnaHQgfHwgMDtcbiAgICAgICAgICAgICAgICB2YXIgd0IgPSBiLndlaWdodCB8fCBiLm9wdGlvbnMgJiYgYi5vcHRpb25zLndlaWdodCB8fCAwO1xuICAgICAgICAgICAgICAgIHJldHVybiB3QSA9PT0gd0IgPyAwIDogd0EgPiB3QiA/IDEgOiAtMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRvb2xiYXJzO1xuICAgIH07XG5cbiAgICByZXR1cm4gQ29udHJvbGxlcjtcbn0pKF9sYW5nT2JzZXJ2YWJsZTJbJ2RlZmF1bHQnXSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENvbnRyb2xsZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2xhbmdPYnNlcnZhYmxlID0gcmVxdWlyZSgnLi4vbGFuZy9PYnNlcnZhYmxlJyk7XG5cbnZhciBfbGFuZ09ic2VydmFibGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ09ic2VydmFibGUpO1xuXG52YXIgRW1wdHlOb2RlUHJvdmlkZXIgPSAoZnVuY3Rpb24gKF9PYnNlcnZhYmxlKSB7XG4gICAgX2luaGVyaXRzKEVtcHR5Tm9kZVByb3ZpZGVyLCBfT2JzZXJ2YWJsZSk7XG5cbiAgICBmdW5jdGlvbiBFbXB0eU5vZGVQcm92aWRlcigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVtcHR5Tm9kZVByb3ZpZGVyKTtcblxuICAgICAgICBfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIEVtcHR5Tm9kZVByb3ZpZGVyLnByb3RvdHlwZS5pbml0UHJvdmlkZXIgPSBmdW5jdGlvbiBpbml0UHJvdmlkZXIocHJvcGVydGllcykge1xuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIEFqeHBOb2RlXG4gICAgICogQHBhcmFtIG5vZGVDYWxsYmFjayBGdW5jdGlvblxuICAgICAqIEBwYXJhbSBjaGlsZENhbGxiYWNrIEZ1bmN0aW9uXG4gICAgICovXG5cbiAgICBFbXB0eU5vZGVQcm92aWRlci5wcm90b3R5cGUubG9hZE5vZGUgPSBmdW5jdGlvbiBsb2FkTm9kZShub2RlLCBub2RlQ2FsbGJhY2ssIGNoaWxkQ2FsbGJhY2spIHt9O1xuXG4gICAgRW1wdHlOb2RlUHJvdmlkZXIucHJvdG90eXBlLmxvYWRMZWFmTm9kZVN5bmMgPSBmdW5jdGlvbiBsb2FkTGVhZk5vZGVTeW5jKG5vZGUsIGNhbGxiYWNrKSB7fTtcblxuICAgIHJldHVybiBFbXB0eU5vZGVQcm92aWRlcjtcbn0pKF9sYW5nT2JzZXJ2YWJsZTJbJ2RlZmF1bHQnXSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVtcHR5Tm9kZVByb3ZpZGVyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgSWRtT2JqZWN0SGVscGVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBJZG1PYmplY3RIZWxwZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1PYmplY3RIZWxwZXIpO1xuICAgIH1cblxuICAgIElkbU9iamVjdEhlbHBlci5leHRyYWN0TGFiZWwgPSBmdW5jdGlvbiBleHRyYWN0TGFiZWwocHlkaW8sIGFjbCkge1xuICAgICAgICBpZiAoYWNsLlVzZXIpIHtcbiAgICAgICAgICAgIGlmIChhY2wuVXNlci5Mb2dpbiA9PT0gcHlkaW8udXNlci5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBweWRpby5NZXNzYWdlSGFzaFsnNjM0J107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjbC5Vc2VyLkF0dHJpYnV0ZXMgJiYgYWNsLlVzZXIuQXR0cmlidXRlc1snZGlzcGxheU5hbWUnXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2wuVXNlci5BdHRyaWJ1dGVzWydkaXNwbGF5TmFtZSddO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNsLlVzZXIuTG9naW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoYWNsLkdyb3VwKSB7XG4gICAgICAgICAgICBpZiAoYWNsLkdyb3VwLlV1aWQgPT09ICdST09UX0dST1VQJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBweWRpby5NZXNzYWdlSGFzaFsnNjM0YyddO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhY2wuR3JvdXAuR3JvdXBMYWJlbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBweWRpby5NZXNzYWdlSGFzaFsnMjg5J10gKyAnICcgKyBhY2wuR3JvdXAuR3JvdXBMYWJlbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjbC5Hcm91cC5VdWlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGFjbC5Sb2xlKSB7XG4gICAgICAgICAgICByZXR1cm4gYWNsLlJvbGUuTGFiZWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgSWRtT2JqZWN0SGVscGVyLmV4dHJhY3RMYWJlbEZyb21JZG1PYmplY3QgPSBmdW5jdGlvbiBleHRyYWN0TGFiZWxGcm9tSWRtT2JqZWN0KGlkbU9iamVjdCkge1xuICAgICAgICBpZiAoaWRtT2JqZWN0LkxvZ2luKSB7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIGEgdXNlclxuICAgICAgICAgICAgcmV0dXJuIGlkbU9iamVjdC5BdHRyaWJ1dGVzICYmIGlkbU9iamVjdC5BdHRyaWJ1dGVzWydkaXNwbGF5TmFtZSddIHx8IGlkbU9iamVjdC5Mb2dpbjtcbiAgICAgICAgfSBlbHNlIGlmIChpZG1PYmplY3QuR3JvdXBQYXRoKSB7XG4gICAgICAgICAgICBpZiAoaWRtT2JqZWN0LlV1aWQgPT09ICdST09UX0dST1VQJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBweWRpby5NZXNzYWdlSGFzaFsnNjM0YyddO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGlkbU9iamVjdC5Hcm91cExhYmVsIHx8ICdHcm91cCAnICsgaWRtT2JqZWN0Lkdyb3VwUGF0aDtcbiAgICAgICAgfSBlbHNlIGlmIChpZG1PYmplY3QuTGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiBpZG1PYmplY3QuTGFiZWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaWRtT2JqZWN0LlV1aWQ7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIElkbU9iamVjdEhlbHBlcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbU9iamVjdEhlbHBlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfaHR0cE1ldGFDYWNoZVNlcnZpY2UgPSByZXF1aXJlKCcuLi9odHRwL01ldGFDYWNoZVNlcnZpY2UnKTtcblxudmFyIF9odHRwTWV0YUNhY2hlU2VydmljZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwTWV0YUNhY2hlU2VydmljZSk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpID0gcmVxdWlyZSgnLi4vaHR0cC9QeWRpb0FwaScpO1xuXG52YXIgX2h0dHBQeWRpb0FwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwUHlkaW9BcGkpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL1BhdGhVdGlscycpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbFBhdGhVdGlscyk7XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9BanhwTm9kZSA9IHJlcXVpcmUoJy4vQWp4cE5vZGUnKTtcblxudmFyIF9BanhwTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BanhwTm9kZSk7XG5cbnZhciBfaHR0cEdlbkFwaU1ldGFTZXJ2aWNlQXBpID0gcmVxdWlyZShcIi4uL2h0dHAvZ2VuL2FwaS9NZXRhU2VydmljZUFwaVwiKTtcblxudmFyIF9odHRwR2VuQXBpTWV0YVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cEdlbkFwaU1ldGFTZXJ2aWNlQXBpKTtcblxudmFyIF9odHRwR2VuTW9kZWxSZXN0R2V0QnVsa01ldGFSZXF1ZXN0ID0gcmVxdWlyZShcIi4uL2h0dHAvZ2VuL21vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3RcIik7XG5cbnZhciBfaHR0cEdlbk1vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwR2VuTW9kZWxSZXN0R2V0QnVsa01ldGFSZXF1ZXN0KTtcblxuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgSUFqeHBOb2RlUHJvdmlkZXIgaW50ZXJmYWNlIGJhc2VkIG9uIGEgcmVtb3RlIHNlcnZlciBhY2Nlc3MuXG4gKiBEZWZhdWx0IGZvciBhbGwgcmVwb3NpdG9yaWVzLlxuICovXG5cbnZhciBNZXRhTm9kZVByb3ZpZGVyID0gKGZ1bmN0aW9uICgpIHtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBNZXRhTm9kZVByb3ZpZGVyKCkge1xuICAgICAgICB2YXIgcHJvcGVydGllcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1ldGFOb2RlUHJvdmlkZXIpO1xuXG4gICAgICAgIHRoaXMuZGlzY3JldGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gbmV3IE1hcCgpO1xuICAgICAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgICAgICAgdGhpcy5pbml0UHJvdmlkZXIocHJvcGVydGllcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIHByb3BlcnRpZXNcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyBPYmplY3RcbiAgICAgKi9cblxuICAgIE1ldGFOb2RlUHJvdmlkZXIucHJvdG90eXBlLmluaXRQcm92aWRlciA9IGZ1bmN0aW9uIGluaXRQcm92aWRlcihwcm9wZXJ0aWVzKSB7XG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgZm9yICh2YXIgcCBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBpZiAocHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShwKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcGVydGllcy5zZXQocCwgcHJvcGVydGllc1twXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcGVydGllcyAmJiB0aGlzLnByb3BlcnRpZXMuaGFzKCdjb25uZXhpb25fZGlzY3JldGUnKSkge1xuICAgICAgICAgICAgdGhpcy5kaXNjcmV0ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNbJ2RlbGV0ZSddKCdjb25uZXhpb25fZGlzY3JldGUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzICYmIHRoaXMucHJvcGVydGllcy5oYXMoJ2NhY2hlX3NlcnZpY2UnKSkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZVNlcnZpY2UgPSB0aGlzLnByb3BlcnRpZXMuZ2V0KCdjYWNoZV9zZXJ2aWNlJyk7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXNbJ2RlbGV0ZSddKCdjYWNoZV9zZXJ2aWNlJyk7XG4gICAgICAgICAgICBfaHR0cE1ldGFDYWNoZVNlcnZpY2UyWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5yZWdpc3Rlck1ldGFTdHJlYW0odGhpcy5jYWNoZVNlcnZpY2VbJ21ldGFTdHJlYW1OYW1lJ10sIHRoaXMuY2FjaGVTZXJ2aWNlWydleHBpcmF0aW9uUG9saWN5J10pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBub2RlXG4gICAgICogQHBhcmFtIG5vZGUgQWp4cE5vZGVcbiAgICAgKiBAcGFyYW0gbm9kZUNhbGxiYWNrIEZ1bmN0aW9uIE9uIG5vZGUgbG9hZGVkXG4gICAgICogQHBhcmFtIGNoaWxkQ2FsbGJhY2sgRnVuY3Rpb24gT24gY2hpbGQgYWRkZWRcbiAgICAgKiBAcGFyYW0gcmVjdXJzaXZlXG4gICAgICogQHBhcmFtIGRlcHRoXG4gICAgICogQHBhcmFtIG9wdGlvbmFsUGFyYW1ldGVyc1xuICAgICAqL1xuXG4gICAgTWV0YU5vZGVQcm92aWRlci5wcm90b3R5cGUubG9hZE5vZGUgPSBmdW5jdGlvbiBsb2FkTm9kZShub2RlKSB7XG4gICAgICAgIHZhciBub2RlQ2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgY2hpbGRDYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMl07XG4gICAgICAgIHZhciByZWN1cnNpdmUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1szXTtcblxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBkZXB0aCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNCB8fCBhcmd1bWVudHNbNF0gPT09IHVuZGVmaW5lZCA/IC0xIDogYXJndW1lbnRzWzRdO1xuICAgICAgICB2YXIgb3B0aW9uYWxQYXJhbWV0ZXJzID0gYXJndW1lbnRzLmxlbmd0aCA8PSA1IHx8IGFyZ3VtZW50c1s1XSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1s1XTtcblxuICAgICAgICB2YXIgcHlkaW8gPSBfcHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKTtcbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfaHR0cEdlbkFwaU1ldGFTZXJ2aWNlQXBpMlsnZGVmYXVsdCddKF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpKTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2h0dHBHZW5Nb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QyWydkZWZhdWx0J10oKTtcbiAgICAgICAgdmFyIHNsdWcgPSAnJztcbiAgICAgICAgaWYgKHB5ZGlvLnVzZXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMuaGFzKCd0bXBfcmVwb3NpdG9yeV9pZCcpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcG9zID0gcHlkaW8udXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCk7XG4gICAgICAgICAgICAgICAgc2x1ZyA9IHJlcG9zLmdldCh0aGlzLnByb3BlcnRpZXMuZ2V0KCd0bXBfcmVwb3NpdG9yeV9pZCcpKS5nZXRTbHVnKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNsdWcgPSBweWRpby51c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnlPYmplY3QoKS5nZXRTbHVnKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlucHV0UGFnaW5hdGlvbiA9IG5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKTtcbiAgICAgICAgaWYgKGlucHV0UGFnaW5hdGlvbikge1xuICAgICAgICAgICAgcmVxdWVzdC5PZmZzZXQgPSAoaW5wdXRQYWdpbmF0aW9uLmdldChcImN1cnJlbnRcIikgLSAxKSAqIGlucHV0UGFnaW5hdGlvbi5nZXQoXCJzaXplXCIpO1xuICAgICAgICAgICAgcmVxdWVzdC5MaW1pdCA9IGlucHV0UGFnaW5hdGlvbi5nZXQoXCJzaXplXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVxdWVzdC5MaW1pdCA9IHB5ZGlvLmdldFBsdWdpbkNvbmZpZ3MoXCJhY2Nlc3MuZ2F0ZXdheVwiKS5nZXQoXCJMSVNUX05PREVTX1BFUl9QQUdFXCIpIHx8IDIwMDtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0Lk5vZGVQYXRocyA9IFtzbHVnICsgbm9kZS5nZXRQYXRoKCksIHNsdWcgKyBub2RlLmdldFBhdGgoKSArICcvKiddO1xuICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzLmhhcyhcInZlcnNpb25zXCIpKSB7XG4gICAgICAgICAgICByZXF1ZXN0LlZlcnNpb25zID0gdHJ1ZTtcbiAgICAgICAgICAgIHJlcXVlc3QuTm9kZVBhdGhzID0gW3NsdWcgKyB0aGlzLnByb3BlcnRpZXMuZ2V0KCdmaWxlJyldO1xuICAgICAgICB9XG4gICAgICAgIF9weWRpbzJbJ2RlZmF1bHQnXS5zdGFydExvYWRpbmcoKTtcbiAgICAgICAgYXBpLmdldEJ1bGtNZXRhKHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgX3B5ZGlvMlsnZGVmYXVsdCddLmVuZExvYWRpbmcoKTtcbiAgICAgICAgICAgIHZhciBvcmlnTm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciBjaGlsZHJlbk5vZGVzID0gW107XG4gICAgICAgICAgICByZXMuTm9kZXMubWFwKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld05vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Tm9kZSA9IE1ldGFOb2RlUHJvdmlkZXIucGFyc2VUcmVlTm9kZShuLCBzbHVnKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5ld05vZGUuZ2V0TGFiZWwoKSA9PT0gJy5weWRpbycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV3Tm9kZS5nZXRQYXRoKCkgPT09IG5vZGUuZ2V0UGF0aCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdOb2RlID0gbmV3Tm9kZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRDYWxsYmFjayhuZXdOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbk5vZGVzLnB1c2gobmV3Tm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAob3JpZ05vZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChyZXMuUGFnaW5hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcGFnaW5hdGlvbkRhdGEgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb25EYXRhLnNldChcImN1cnJlbnRcIiwgcmVzLlBhZ2luYXRpb24uQ3VycmVudFBhZ2UpO1xuICAgICAgICAgICAgICAgICAgICBwYWdpbmF0aW9uRGF0YS5zZXQoXCJ0b3RhbFwiLCByZXMuUGFnaW5hdGlvbi5Ub3RhbFBhZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbkRhdGEuc2V0KFwic2l6ZVwiLCByZXMuUGFnaW5hdGlvbi5MaW1pdCk7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdOb2RlLmdldE1ldGFkYXRhKCkuc2V0KFwicGFnaW5hdGlvbkRhdGFcIiwgcGFnaW5hdGlvbkRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub2RlLnJlcGxhY2VCeShvcmlnTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoX3RoaXMucHJvcGVydGllcy5oYXMoXCJ2ZXJzaW9uc1wiKSkge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuTm9kZXMgPSBjaGlsZHJlbk5vZGVzLm1hcChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQuX3BhdGggPSBjaGlsZC5nZXRNZXRhZGF0YSgpLmdldCgndmVyc2lvbklkJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGUuc2V0Q2hpbGRyZW4oY2hpbGRyZW5Ob2Rlcyk7XG4gICAgICAgICAgICBpZiAobm9kZUNhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNhbGxiYWNrKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgX3B5ZGlvMlsnZGVmYXVsdCddLmVuZExvYWRpbmcoKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZCBhIG5vZGVcbiAgICAgKiBAcGFyYW0gbm9kZSB7QWp4cE5vZGV9XG4gICAgICogQHBhcmFtIG5vZGVDYWxsYmFjayBGdW5jdGlvbiBPbiBub2RlIGxvYWRlZFxuICAgICAqIEBwYXJhbSBhU3luYyBib29sXG4gICAgICogQHBhcmFtIGFkZGl0aW9uYWxQYXJhbWV0ZXJzIG9iamVjdFxuICAgICAqL1xuXG4gICAgTWV0YU5vZGVQcm92aWRlci5wcm90b3R5cGUubG9hZExlYWZOb2RlU3luYyA9IGZ1bmN0aW9uIGxvYWRMZWFmTm9kZVN5bmMobm9kZSwgbm9kZUNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBhU3luYyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzJdO1xuICAgICAgICB2YXIgYWRkaXRpb25hbFBhcmFtZXRlcnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1szXTtcblxuICAgICAgICB2YXIgYXBpID0gbmV3IF9odHRwR2VuQXBpTWV0YVNlcnZpY2VBcGkyWydkZWZhdWx0J10oX2h0dHBQeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfaHR0cEdlbk1vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdDJbJ2RlZmF1bHQnXSgpO1xuICAgICAgICB2YXIgc2x1ZyA9ICcnO1xuICAgICAgICB2YXIgcGF0aCA9IG5vZGUuZ2V0UGF0aCgpO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKTtcbiAgICAgICAgaWYgKHB5ZGlvLnVzZXIpIHtcbiAgICAgICAgICAgIGlmIChub2RlLmdldE1ldGFkYXRhKCkuaGFzKCdyZXBvc2l0b3J5X2lkJykpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVwb0lkID0gbm9kZS5nZXRNZXRhZGF0YSgpLmdldCgncmVwb3NpdG9yeV9pZCcpO1xuICAgICAgICAgICAgICAgIHZhciByZXBvID0gcHlkaW8udXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCkuZ2V0KHJlcG9JZCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcG8pIHtcbiAgICAgICAgICAgICAgICAgICAgc2x1ZyA9IHJlcG8uZ2V0U2x1ZygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2x1ZyA9IHB5ZGlvLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeU9iamVjdCgpLmdldFNsdWcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCAmJiBwYXRoWzBdICE9PSAnLycpIHtcbiAgICAgICAgICAgIHBhdGggPSAnLycgKyBwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHJlcXVlc3QuTm9kZVBhdGhzID0gW3NsdWcgKyBwYXRoXTtcbiAgICAgICAgYXBpLmdldEJ1bGtNZXRhKHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgaWYgKHJlcy5Ob2RlcyAmJiByZXMuTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbm9kZUNhbGxiYWNrKE1ldGFOb2RlUHJvdmlkZXIucGFyc2VUcmVlTm9kZShyZXMuTm9kZXNbMF0sIHNsdWcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIE1ldGFOb2RlUHJvdmlkZXIucHJvdG90eXBlLnJlZnJlc2hOb2RlQW5kUmVwbGFjZSA9IGZ1bmN0aW9uIHJlZnJlc2hOb2RlQW5kUmVwbGFjZShub2RlLCBvbkNvbXBsZXRlKSB7XG5cbiAgICAgICAgdmFyIG5vZGVDYWxsYmFjayA9IGZ1bmN0aW9uIG5vZGVDYWxsYmFjayhuZXdOb2RlKSB7XG4gICAgICAgICAgICBub2RlLnJlcGxhY2VCeShuZXdOb2RlLCBcIm92ZXJyaWRlXCIpO1xuICAgICAgICAgICAgaWYgKG9uQ29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmxvYWRMZWFmTm9kZVN5bmMobm9kZSwgbm9kZUNhbGxiYWNrKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybiBBanhwTm9kZSB8IG51bGxcbiAgICAgKiBAcGFyYW0gb2JqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZVNsdWcgc3RyaW5nXG4gICAgICogQHBhcmFtIGRlZmF1bHRTbHVnIHN0cmluZ1xuICAgICAqL1xuXG4gICAgTWV0YU5vZGVQcm92aWRlci5wYXJzZVRyZWVOb2RlID0gZnVuY3Rpb24gcGFyc2VUcmVlTm9kZShvYmosIHdvcmtzcGFjZVNsdWcpIHtcbiAgICAgICAgdmFyIGRlZmF1bHRTbHVnID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gJycgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgaWYgKCFvYmogfHwgIW9iai5NZXRhU3RvcmUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBweWRpbyA9IF9weWRpbzJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSgpO1xuXG4gICAgICAgIHZhciBub2RlTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKG9iai5NZXRhU3RvcmUubmFtZSkge1xuICAgICAgICAgICAgbm9kZU5hbWUgPSBKU09OLnBhcnNlKG9iai5NZXRhU3RvcmUubmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlTmFtZSA9IF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEJhc2VuYW1lKG9iai5QYXRoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2x1ZyA9IHdvcmtzcGFjZVNsdWc7XG4gICAgICAgIGlmICghd29ya3NwYWNlU2x1Zykge1xuICAgICAgICAgICAgaWYgKG9iai5NZXRhU3RvcmVbJ3JlcG9zaXRvcnlfaWQnXSkge1xuICAgICAgICAgICAgICAgIHZhciB3c0lkID0gSlNPTi5wYXJzZShvYmouTWV0YVN0b3JlWydyZXBvc2l0b3J5X2lkJ10pO1xuICAgICAgICAgICAgICAgIGlmIChweWRpby51c2VyLmdldFJlcG9zaXRvcmllc0xpc3QoKS5oYXMod3NJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2x1ZyA9IHB5ZGlvLnVzZXIuZ2V0UmVwb3NpdG9yaWVzTGlzdCgpLmdldCh3c0lkKS5nZXRTbHVnKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghc2x1Zykge1xuICAgICAgICAgICAgc2x1ZyA9IGRlZmF1bHRTbHVnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzbHVnKSB7XG4gICAgICAgICAgICAvLyBTdHJpcCB3b3Jrc3BhY2Ugc2x1Z1xuICAgICAgICAgICAgb2JqLlBhdGggPSBvYmouUGF0aC5zdWJzdHIoc2x1Zy5sZW5ndGggKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBub2RlID0gbmV3IF9BanhwTm9kZTJbJ2RlZmF1bHQnXSgnLycgKyBvYmouUGF0aCwgb2JqLlR5cGUgPT09IFwiTEVBRlwiLCBub2RlTmFtZSwgJycsIG51bGwpO1xuXG4gICAgICAgIHZhciBtZXRhID0gb2JqLk1ldGFTdG9yZTtcbiAgICAgICAgZm9yICh2YXIgayBpbiBtZXRhKSB7XG4gICAgICAgICAgICBpZiAobWV0YS5oYXNPd25Qcm9wZXJ0eShrKSkge1xuICAgICAgICAgICAgICAgIHZhciBtZXRhVmFsdWUgPSBKU09OLnBhcnNlKG1ldGFba10pO1xuICAgICAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoaywgbWV0YVZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG1ldGFWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIga1N1YiBpbiBtZXRhVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXRhVmFsdWUuaGFzT3duUHJvcGVydHkoa1N1YikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KGtTdWIsIG1ldGFWYWx1ZVtrU3ViXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgnZmlsZW5hbWUnLCBub2RlLmdldFBhdGgoKSk7XG4gICAgICAgIGlmIChub2RlLmdldFBhdGgoKSA9PT0gJy9yZWN5Y2xlX2JpbicpIHtcbiAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ2ZvbnRpY29uJywgJ2RlbGV0ZScpO1xuICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgnbWltZXN0cmluZ19pZCcsICcxMjInKTtcbiAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ2FqeHBfbWltZScsICdhanhwX3JlY3ljbGUnKTtcbiAgICAgICAgICAgIGlmIChweWRpbykgbm9kZS5zZXRMYWJlbChweWRpby5NZXNzYWdlSGFzaFsxMjJdKTtcbiAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ21pbWVzdHJpbmcnLCBweWRpby5NZXNzYWdlSGFzaFsxMjJdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5pc0xlYWYoKSAmJiBweWRpbyAmJiBweWRpby5SZWdpc3RyeSkge1xuICAgICAgICAgICAgdmFyIGV4dCA9IF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEZpbGVFeHRlbnNpb24obm9kZS5nZXRQYXRoKCkpO1xuICAgICAgICAgICAgdmFyIHJlZ2lzdGVyZWQgPSBweWRpby5SZWdpc3RyeS5nZXRGaWxlc0V4dGVuc2lvbnMoKTtcbiAgICAgICAgICAgIGlmIChyZWdpc3RlcmVkLmhhcyhleHQpKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9yZWdpc3RlcmVkJGdldCA9IHJlZ2lzdGVyZWQuZ2V0KGV4dCk7XG5cbiAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUlkID0gX3JlZ2lzdGVyZWQkZ2V0Lm1lc3NhZ2VJZDtcbiAgICAgICAgICAgICAgICB2YXIgZm9udEljb24gPSBfcmVnaXN0ZXJlZCRnZXQuZm9udEljb247XG5cbiAgICAgICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdmb250aWNvbicsIGZvbnRJY29uKTtcbiAgICAgICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdtaW1lc3RyaW5nX2lkJywgbWVzc2FnZUlkKTtcbiAgICAgICAgICAgICAgICBpZiAocHlkaW8uTWVzc2FnZUhhc2hbbWVzc2FnZUlkXSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdtaW1lc3RyaW5nJywgcHlkaW8uTWVzc2FnZUhhc2hbbWVzc2FnZUlkXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFub2RlLmlzTGVhZigpKSB7XG4gICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdtaW1lc3RyaW5nJywgcHlkaW8uTWVzc2FnZUhhc2hbOF0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvYmouU2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdieXRlc2l6ZScsIG9iai5TaXplKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLk1UaW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ2FqeHBfbW9kaWZ0aW1lJywgb2JqLk1UaW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLkV0YWcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgnZXRhZycsIG9iai5FdGFnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLlV1aWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgndXVpZCcsIG9iai5VdWlkKTtcbiAgICAgICAgfVxuICAgICAgICBNZXRhTm9kZVByb3ZpZGVyLm92ZXJsYXlzKG5vZGUpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIG1ldGFkYXRhIGZvciBzcGVjaWZpYyBvdmVybGF5c1xuICAgICAqIEBwYXJhbSBub2RlIEFqeHBOb2RlXG4gICAgICovXG5cbiAgICBNZXRhTm9kZVByb3ZpZGVyLm92ZXJsYXlzID0gZnVuY3Rpb24gb3ZlcmxheXMobm9kZSkge1xuICAgICAgICB2YXIgbWV0YSA9IG5vZGUuZ2V0TWV0YWRhdGEoKTtcbiAgICAgICAgdmFyIG92ZXJsYXlzID0gW107XG5cbiAgICAgICAgLy8gU0hBUkVTXG4gICAgICAgIGlmIChtZXRhLmhhcygnd29ya3NwYWNlc19zaGFyZXMnKSkge1xuICAgICAgICAgICAgdmFyIHdzUm9vdCA9IG1ldGEuZ2V0KCd3c19yb290Jyk7XG4gICAgICAgICAgICBtZXRhLnNldCgncHlkaW9faXNfc2hhcmVkJywgXCJ0cnVlXCIpO1xuICAgICAgICAgICAgbWV0YS5zZXQoJ3B5ZGlvX3NoYXJlcycsIEpTT04uc3RyaW5naWZ5KG1ldGEuZ2V0KCd3b3Jrc3BhY2VzX3NoYXJlcycpKSk7XG4gICAgICAgICAgICBpZiAoIXdzUm9vdCkge1xuICAgICAgICAgICAgICAgIG92ZXJsYXlzLnB1c2goJ21kaSBtZGktc2hhcmUtdmFyaWFudCcpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghbm9kZS5pc0xlYWYoKSkge1xuICAgICAgICAgICAgICAgIG1ldGEuc2V0KCdmb250aWNvbicsICdmb2xkZXItc3RhcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gV0FUQ0hFU1xuICAgICAgICBpZiAobWV0YS5oYXMoJ3VzZXJfc3Vic2NyaXB0aW9ucycpKSB7XG4gICAgICAgICAgICB2YXIgc3VicyA9IG1ldGEuZ2V0KCd1c2VyX3N1YnNjcmlwdGlvbnMnKTtcbiAgICAgICAgICAgIHZhciByZWFkID0gc3Vicy5pbmRleE9mKCdyZWFkJyk7XG4gICAgICAgICAgICB2YXIgY2hhbmdlcyA9IHN1YnMuaW5kZXhPZignY2hhbmdlJyk7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSAnJztcbiAgICAgICAgICAgIGlmIChyZWFkICYmIGNoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9ICdNRVRBX1dBVENIX0JPVEgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZWFkKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSAnTUVUQV9XQVRDSF9SRUFEJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlcykge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gJ01FVEFfV0FUQ0hfQ0hBTkdFUyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBtZXRhLnNldCgnbWV0YV93YXRjaGVkJywgdmFsdWUpO1xuICAgICAgICAgICAgICAgIG92ZXJsYXlzLnB1c2goJ21kaSBtZGktcnNzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCT09LTUFSS1NcbiAgICAgICAgaWYgKG1ldGEuaGFzKCdib29rbWFyaycpKSB7XG4gICAgICAgICAgICBtZXRhLnNldCgnYWp4cF9ib29rbWFya2VkJywgJ3RydWUnKTtcbiAgICAgICAgICAgIG92ZXJsYXlzLnB1c2goJ21kaSBtZGktYm9va21hcmstb3V0bGluZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTE9DS1NcbiAgICAgICAgaWYgKG1ldGEuaGFzKCdjb250ZW50X2xvY2snKSkge1xuICAgICAgICAgICAgdmFyIGxvY2tVc2VyID0gbWV0YS5nZXQoJ2NvbnRlbnRfbG9jaycpO1xuICAgICAgICAgICAgb3ZlcmxheXMucHVzaCgnbWRpIG1kaS1sb2NrLW91dGxpbmUnKTtcbiAgICAgICAgICAgIG1ldGEuc2V0KCdzbF9sb2NrZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgaWYgKHB5ZGlvICYmIHB5ZGlvLnVzZXIgJiYgbG9ja1VzZXIgPT09IHB5ZGlvLnVzZXIuaWQpIHtcbiAgICAgICAgICAgICAgICBtZXRhLnNldCgnc2xfbXlsb2NrJywgJ3RydWUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvdmVybGF5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIG1ldGEuc2V0KCdvdmVybGF5X2NsYXNzJywgb3ZlcmxheXMuam9pbignLCcpKTtcbiAgICAgICAgfVxuICAgICAgICBub2RlLnNldE1ldGFkYXRhKG1ldGEpO1xuICAgIH07XG5cbiAgICByZXR1cm4gTWV0YU5vZGVQcm92aWRlcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE1ldGFOb2RlUHJvdmlkZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2xhbmdPYnNlcnZhYmxlID0gcmVxdWlyZSgnLi4vbGFuZy9PYnNlcnZhYmxlJyk7XG5cbnZhciBfbGFuZ09ic2VydmFibGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ09ic2VydmFibGUpO1xuXG52YXIgX2xhbmdMb2dnZXIgPSByZXF1aXJlKCcuLi9sYW5nL0xvZ2dlcicpO1xuXG52YXIgX2xhbmdMb2dnZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ0xvZ2dlcik7XG5cbnZhciBfQWp4cE5vZGUgPSByZXF1aXJlKCcuL0FqeHBOb2RlJyk7XG5cbnZhciBfQWp4cE5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWp4cE5vZGUpO1xuXG52YXIgX3V0aWxMYW5nVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL0xhbmdVdGlscycpO1xuXG52YXIgX3V0aWxMYW5nVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbExhbmdVdGlscyk7XG5cbnZhciBfdXRpbFBhdGhVdGlscyA9IHJlcXVpcmUoJy4uL3V0aWwvUGF0aFV0aWxzJyk7XG5cbnZhciBfdXRpbFBhdGhVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsUGF0aFV0aWxzKTtcblxudmFyIF9odHRwUHlkaW9BcGkgPSByZXF1aXJlKCcuLi9odHRwL1B5ZGlvQXBpJyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBQeWRpb0FwaSk7XG5cbnZhciBfbW9kZWxNZXRhTm9kZVByb3ZpZGVyID0gcmVxdWlyZSgnLi4vbW9kZWwvTWV0YU5vZGVQcm92aWRlcicpO1xuXG52YXIgX21vZGVsTWV0YU5vZGVQcm92aWRlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE1ldGFOb2RlUHJvdmlkZXIpO1xuXG4vKipcbiAqIEZ1bGwgY29udGFpbmVyIG9mIHRoZSBkYXRhIHRyZWUuIENvbnRhaW5zIHRoZSBTZWxlY3Rpb25Nb2RlbCBhcyB3ZWxsLlxuICovXG5cbnZhciBQeWRpb0RhdGFNb2RlbCA9IChmdW5jdGlvbiAoX09ic2VydmFibGUpIHtcblx0X2luaGVyaXRzKFB5ZGlvRGF0YU1vZGVsLCBfT2JzZXJ2YWJsZSk7XG5cblx0LyoqXG4gICogQ29uc3RydWN0b3JcbiAgICAgKiA+IFdhcm5pbmcsIGV2ZW50cyBhcmUgbm93IExPQ0FMIGJ5IGRlZmF1bHRcbiAgKi9cblxuXHRmdW5jdGlvbiBQeWRpb0RhdGFNb2RlbCgpIHtcblx0XHR2YXIgbG9jYWxFdmVudHMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB0cnVlIDogYXJndW1lbnRzWzBdO1xuXG5cdFx0X2NsYXNzQ2FsbENoZWNrKHRoaXMsIFB5ZGlvRGF0YU1vZGVsKTtcblxuXHRcdF9PYnNlcnZhYmxlLmNhbGwodGhpcyk7XG5cdFx0dGhpcy5fY3VycmVudFJlcCA9ICcvJztcblx0XHR0aGlzLl9zZWxlY3RlZE5vZGVzID0gW107XG5cdFx0dGhpcy5fYkVtcHR5ID0gdHJ1ZTtcblx0XHR0aGlzLl9nbG9iYWxFdmVudHMgPSAhbG9jYWxFdmVudHM7XG5cblx0XHR0aGlzLl9iRmlsZSA9IGZhbHNlO1xuXHRcdHRoaXMuX2JEaXIgPSBmYWxzZTtcblx0XHR0aGlzLl9pc1JlY3ljbGUgPSBmYWxzZTtcblxuXHRcdHRoaXMuX3BlbmRpbmdTZWxlY3Rpb24gPSBudWxsO1xuXHRcdHRoaXMuX3NlbGVjdGlvblNvdXJjZSA9IHt9O1xuXG5cdFx0dGhpcy5fcm9vdE5vZGUgPSBudWxsO1xuXHR9XG5cblx0UHlkaW9EYXRhTW9kZWwuUmVtb3RlRGF0YU1vZGVsRmFjdG9yeSA9IGZ1bmN0aW9uIFJlbW90ZURhdGFNb2RlbEZhY3RvcnkocHJvdmlkZXJQcm9wZXJ0aWVzKSB7XG5cdFx0dmFyIHJvb3RMYWJlbCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzFdO1xuXG5cdFx0dmFyIGRhdGFNb2RlbCA9IG5ldyBQeWRpb0RhdGFNb2RlbCh0cnVlKTtcblx0XHR2YXIgck5vZGVQcm92aWRlciA9IG5ldyBfbW9kZWxNZXRhTm9kZVByb3ZpZGVyMlsnZGVmYXVsdCddKHByb3ZpZGVyUHJvcGVydGllcyk7XG5cdFx0ZGF0YU1vZGVsLnNldEFqeHBOb2RlUHJvdmlkZXIock5vZGVQcm92aWRlcik7XG5cdFx0dmFyIHJvb3ROb2RlID0gbmV3IF9BanhwTm9kZTJbJ2RlZmF1bHQnXShcIi9cIiwgZmFsc2UsIHJvb3RMYWJlbCwgJycsIHJOb2RlUHJvdmlkZXIpO1xuXHRcdGRhdGFNb2RlbC5zZXRSb290Tm9kZShyb290Tm9kZSk7XG5cdFx0cmV0dXJuIGRhdGFNb2RlbDtcblx0fTtcblxuXHQvKipcbiAgKiBTZXRzIHRoZSBkYXRhIHNvdXJjZSB0aGF0IHdpbGwgZmVlZCB0aGUgbm9kZXMgd2l0aCBjaGlsZHJlbi5cbiAgKiBAcGFyYW0gaUFqeHBOb2RlUHJvdmlkZXIgSUFqeHBOb2RlUHJvdmlkZXJcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuc2V0QWp4cE5vZGVQcm92aWRlciA9IGZ1bmN0aW9uIHNldEFqeHBOb2RlUHJvdmlkZXIoaUFqeHBOb2RlUHJvdmlkZXIpIHtcblx0XHR0aGlzLl9pQWp4cE5vZGVQcm92aWRlciA9IGlBanhwTm9kZVByb3ZpZGVyO1xuXHR9O1xuXG5cdC8qKlxuICAqIFJldHVybiB0aGUgY3VycmVudCBkYXRhIHNvdXJjZSBwcm92aWRlclxuICAqIEByZXR1cm4gSUFqeHBOb2RlUHJvdmlkZXJcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuZ2V0QWp4cE5vZGVQcm92aWRlciA9IGZ1bmN0aW9uIGdldEFqeHBOb2RlUHJvdmlkZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2lBanhwTm9kZVByb3ZpZGVyO1xuXHR9O1xuXG5cdC8qKlxuICAqIENoYW5nZXMgdGhlIGN1cnJlbnQgY29udGV4dCBub2RlLlxuICAqIEBwYXJhbSBhanhwTm9kZSBBanhwTm9kZSBUYXJnZXQgbm9kZSwgZWl0aGVyIGFuIGV4aXN0aW5nIG9uZSBvciBhIGZha2Ugb25lIGNvbnRhaW5pbmcgdGhlIHRhcmdldCBwYXJ0LlxuICAqIEBwYXJhbSBmb3JjZVJlbG9hZCBCb29sZWFuIElmIHNldCB0byB0cnVlLCB0aGUgbm9kZSB3aWxsIGJlIHJlbG9hZGVkIGV2ZW4gaWYgYWxyZWFkeSBsb2FkZWQuXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnJlcXVpcmVDb250ZXh0Q2hhbmdlID0gZnVuY3Rpb24gcmVxdWlyZUNvbnRleHRDaGFuZ2UoYWp4cE5vZGUpIHtcblx0XHR2YXIgX3RoaXMgPSB0aGlzO1xuXG5cdFx0dmFyIGZvcmNlUmVsb2FkID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG5cblx0XHRpZiAoYWp4cE5vZGUgPT09IG51bGwpIHJldHVybjtcblx0XHR0aGlzLnNldFNlbGVjdGVkTm9kZXMoW10pO1xuXHRcdHZhciBwYXRoID0gYWp4cE5vZGUuZ2V0UGF0aCgpO1xuXHRcdGlmICgocGF0aCA9PT0gXCJcIiB8fCBwYXRoID09PSBcIi9cIikgJiYgYWp4cE5vZGUgIT09IHRoaXMuX3Jvb3ROb2RlKSB7XG5cdFx0XHRhanhwTm9kZSA9IHRoaXMuX3Jvb3ROb2RlO1xuXHRcdH1cblx0XHR2YXIgcGFnaW5hdGlvblBhZ2UgPSBudWxsO1xuXHRcdGlmIChhanhwTm9kZS5nZXRNZXRhZGF0YSgpLmhhcygncGFnaW5hdGlvbkRhdGEnKSAmJiBhanhwTm9kZS5nZXRNZXRhZGF0YSgpLmdldCgncGFnaW5hdGlvbkRhdGEnKS5oYXMoJ25ld19wYWdlJykgJiYgYWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3BhZ2luYXRpb25EYXRhJykuZ2V0KCduZXdfcGFnZScpICE9PSBhanhwTm9kZS5nZXRNZXRhZGF0YSgpLmdldCgncGFnaW5hdGlvbkRhdGEnKS5nZXQoJ2N1cnJlbnQnKSkge1xuXHRcdFx0cGFnaW5hdGlvblBhZ2UgPSBhanhwTm9kZS5nZXRNZXRhZGF0YSgpLmdldCgncGFnaW5hdGlvbkRhdGEnKS5nZXQoJ25ld19wYWdlJyk7XG5cdFx0XHRmb3JjZVJlbG9hZCA9IHRydWU7XG5cdFx0fVxuXHRcdGlmIChhanhwTm9kZSAhPSB0aGlzLl9yb290Tm9kZSAmJiAoIWFqeHBOb2RlLmdldFBhcmVudCgpIHx8IGFqeHBOb2RlLmZha2UpKSB7XG5cdFx0XHQvLyBGaW5kIGluIGFyYm8gb3IgYnVpbGQgZmFrZSBhcmJvXG5cdFx0XHR2YXIgZmFrZU5vZGVzID0gW107XG5cdFx0XHRhanhwTm9kZSA9IGFqeHBOb2RlLmZpbmRJbkFyYm8odGhpcy5fcm9vdE5vZGUsIGZha2VOb2Rlcyk7XG5cdFx0XHRpZiAoZmFrZU5vZGVzLmxlbmd0aCkge1xuXHRcdFx0XHR2YXIgX3JldCA9IChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyIGZpcnN0RmFrZSA9IGZha2VOb2Rlcy5zaGlmdCgpO1xuXHRcdFx0XHRcdGZpcnN0RmFrZS5vYnNlcnZlT25jZShcImZpcnN0X2xvYWRcIiwgKGZ1bmN0aW9uIChlKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJlcXVpcmVDb250ZXh0Q2hhbmdlKGFqeHBOb2RlKTtcblx0XHRcdFx0XHR9KS5iaW5kKF90aGlzKSk7XG5cdFx0XHRcdFx0Zmlyc3RGYWtlLm9ic2VydmVPbmNlKFwiZXJyb3JcIiwgKGZ1bmN0aW9uIChtZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRfbGFuZ0xvZ2dlcjJbJ2RlZmF1bHQnXS5lcnJvcihtZXNzYWdlKTtcblx0XHRcdFx0XHRcdGZpcnN0RmFrZS5ub3RpZnkoXCJub2RlX3JlbW92ZWRcIik7XG5cdFx0XHRcdFx0XHR2YXIgcGFyZW50ID0gZmlyc3RGYWtlLmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0cGFyZW50LnJlbW92ZUNoaWxkKGZpcnN0RmFrZSk7XG5cdFx0XHRcdFx0XHQvL2RlbGV0ZShmaXJzdEZha2UpO1xuXHRcdFx0XHRcdFx0dGhpcy5yZXF1aXJlQ29udGV4dENoYW5nZShwYXJlbnQpO1xuXHRcdFx0XHRcdH0pLmJpbmQoX3RoaXMpKTtcblx0XHRcdFx0XHRfdGhpcy5wdWJsaXNoKFwiY29udGV4dF9sb2FkaW5nXCIpO1xuXHRcdFx0XHRcdGZpcnN0RmFrZS5sb2FkKF90aGlzLl9pQWp4cE5vZGVQcm92aWRlcik7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdHY6IHVuZGVmaW5lZFxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0pKCk7XG5cblx0XHRcdFx0aWYgKHR5cGVvZiBfcmV0ID09PSAnb2JqZWN0JykgcmV0dXJuIF9yZXQudjtcblx0XHRcdH1cblx0XHR9XG5cdFx0YWp4cE5vZGUub2JzZXJ2ZU9uY2UoXCJsb2FkZWRcIiwgKGZ1bmN0aW9uICgpIHtcblx0XHRcdHRoaXMuc2V0Q29udGV4dE5vZGUoYWp4cE5vZGUsIHRydWUpO1xuXHRcdFx0dGhpcy5wdWJsaXNoKFwiY29udGV4dF9sb2FkZWRcIik7XG5cdFx0XHRpZiAodGhpcy5nZXRQZW5kaW5nU2VsZWN0aW9uKCkpIHtcblx0XHRcdFx0dmFyIHNlbFBhdGggPSBhanhwTm9kZS5nZXRQYXRoKCkgKyAoYWp4cE5vZGUuZ2V0UGF0aCgpID09IFwiL1wiID8gXCJcIiA6IFwiL1wiKSArIHRoaXMuZ2V0UGVuZGluZ1NlbGVjdGlvbigpO1xuXHRcdFx0XHR2YXIgc2VsTm9kZSA9IGFqeHBOb2RlLmZpbmRDaGlsZEJ5UGF0aChzZWxQYXRoKTtcblx0XHRcdFx0aWYgKHNlbE5vZGUpIHtcblx0XHRcdFx0XHR0aGlzLnNldFNlbGVjdGVkTm9kZXMoW3NlbE5vZGVdLCB0aGlzKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpZiAoYWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKSAmJiBhcmd1bWVudHMubGVuZ3RoIDwgMykge1xuXHRcdFx0XHRcdFx0dmFyIG5ld1BhZ2UgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHR2YXIgY3VycmVudFBhZ2UgPSBhanhwTm9kZS5nZXRNZXRhZGF0YSgpLmdldChcInBhZ2luYXRpb25EYXRhXCIpLmdldChcImN1cnJlbnRcIik7XG5cdFx0XHRcdFx0XHR0aGlzLmxvYWRQYXRoSW5mb1N5bmMoc2VsUGF0aCwgZnVuY3Rpb24gKGZvdW5kTm9kZSkge1xuXHRcdFx0XHRcdFx0XHRuZXdQYWdlID0gZm91bmROb2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwicGFnZV9wb3NpdGlvblwiKTtcblx0XHRcdFx0XHRcdH0sIHsgcGFnZV9wb3NpdGlvbjogJ3RydWUnIH0pO1xuXHRcdFx0XHRcdFx0aWYgKG5ld1BhZ2UgJiYgbmV3UGFnZSAhPT0gY3VycmVudFBhZ2UpIHtcblx0XHRcdFx0XHRcdFx0YWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKS5zZXQoXCJuZXdfcGFnZVwiLCBuZXdQYWdlKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5yZXF1aXJlQ29udGV4dENoYW5nZShhanhwTm9kZSwgdHJ1ZSwgdHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5jbGVhclBlbmRpbmdTZWxlY3Rpb24oKTtcblx0XHRcdH1cblx0XHR9KS5iaW5kKHRoaXMpKTtcblx0XHRhanhwTm9kZS5vYnNlcnZlT25jZShcImVycm9yXCIsIChmdW5jdGlvbiAobWVzc2FnZSkge1xuXHRcdFx0X2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IobWVzc2FnZSk7XG5cdFx0XHR0aGlzLnB1Ymxpc2goXCJjb250ZXh0X2xvYWRlZFwiKTtcblx0XHR9KS5iaW5kKHRoaXMpKTtcblx0XHR0aGlzLnB1Ymxpc2goXCJjb250ZXh0X2xvYWRpbmdcIik7XG5cdFx0dHJ5IHtcblx0XHRcdGlmIChmb3JjZVJlbG9hZCkge1xuXHRcdFx0XHRpZiAocGFnaW5hdGlvblBhZ2UpIHtcblx0XHRcdFx0XHRhanhwTm9kZS5nZXRNZXRhZGF0YSgpLmdldCgncGFnaW5hdGlvbkRhdGEnKS5zZXQoJ2N1cnJlbnQnLCBwYWdpbmF0aW9uUGFnZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YWp4cE5vZGUucmVsb2FkKHRoaXMuX2lBanhwTm9kZVByb3ZpZGVyLCB0cnVlKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFqeHBOb2RlLmxvYWQodGhpcy5faUFqeHBOb2RlUHJvdmlkZXIpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHRoaXMucHVibGlzaChcImNvbnRleHRfbG9hZGVkXCIpO1xuXHRcdH1cblx0fTtcblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUucmVxdWlyZU5vZGVSZWxvYWQgPSBmdW5jdGlvbiByZXF1aXJlTm9kZVJlbG9hZChub2RlT3JQYXRoLCBjb21wbGV0ZUNhbGxiYWNrKSB7XG5cdFx0aWYgKG5vZGVPclBhdGggaW5zdGFuY2VvZiBTdHJpbmcpIHtcblx0XHRcdG5vZGVPclBhdGggPSBuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKG5vZGVPclBhdGgpO1xuXHRcdH1cblx0XHR2YXIgb25Db21wbGV0ZSA9IG51bGw7XG5cdFx0aWYgKHRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgZm91bmQgPSAtMTtcblx0XHRcdHRoaXMuX3NlbGVjdGVkTm9kZXMubWFwKGZ1bmN0aW9uIChub2RlLCBrZXkpIHtcblx0XHRcdFx0aWYgKG5vZGUuZ2V0UGF0aCgpID09PSBub2RlT3JQYXRoLmdldFBhdGgoKSkgZm91bmQgPSBrZXk7XG5cdFx0XHR9KTtcblx0XHRcdGlmIChmb3VuZCAhPT0gLTEpIHtcblx0XHRcdFx0Ly8gTUFLRSBTVVJFIFNFTEVDVElPTiBJUyBPSyBBRlRFUiBSRUxPQURcblx0XHRcdFx0dGhpcy5fc2VsZWN0ZWROb2RlcyA9IF91dGlsTGFuZ1V0aWxzMlsnZGVmYXVsdCddLmFycmF5V2l0aG91dCh0aGlzLl9zZWxlY3RlZE5vZGVzLCBmb3VuZCk7XG5cdFx0XHRcdHRoaXMucHVibGlzaChcInNlbGVjdGlvbl9jaGFuZ2VkXCIsIHRoaXMpO1xuXHRcdFx0XHRvbkNvbXBsZXRlID0gKGZ1bmN0aW9uIChuZXdOb2RlKSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VsZWN0ZWROb2Rlcy5wdXNoKG5ld05vZGUpO1xuXHRcdFx0XHRcdHRoaXMuX3NlbGVjdGlvblNvdXJjZSA9IHt9O1xuXHRcdFx0XHRcdHRoaXMucHVibGlzaChcInNlbGVjdGlvbl9jaGFuZ2VkXCIsIHRoaXMpO1xuXHRcdFx0XHRcdGlmIChjb21wbGV0ZUNhbGxiYWNrKSBjb21wbGV0ZUNhbGxiYWNrKG5ld05vZGUpO1xuXHRcdFx0XHR9KS5iaW5kKHRoaXMpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLl9pQWp4cE5vZGVQcm92aWRlci5yZWZyZXNoTm9kZUFuZFJlcGxhY2Uobm9kZU9yUGF0aCwgb25Db21wbGV0ZSk7XG5cdH07XG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmxvYWRQYXRoSW5mb1N5bmMgPSBmdW5jdGlvbiBsb2FkUGF0aEluZm9TeW5jKHBhdGgsIGNhbGxiYWNrKSB7XG5cdFx0dmFyIGFkZGl0aW9uYWxQYXJhbWV0ZXJzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMl07XG5cblx0XHR0aGlzLl9pQWp4cE5vZGVQcm92aWRlci5sb2FkTGVhZk5vZGVTeW5jKG5ldyBfQWp4cE5vZGUyWydkZWZhdWx0J10ocGF0aCksIGNhbGxiYWNrLCBmYWxzZSwgYWRkaXRpb25hbFBhcmFtZXRlcnMpO1xuXHR9O1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5sb2FkUGF0aEluZm9Bc3luYyA9IGZ1bmN0aW9uIGxvYWRQYXRoSW5mb0FzeW5jKHBhdGgsIGNhbGxiYWNrKSB7XG5cdFx0dGhpcy5faUFqeHBOb2RlUHJvdmlkZXIubG9hZExlYWZOb2RlU3luYyhuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKHBhdGgpLCBjYWxsYmFjaywgdHJ1ZSk7XG5cdH07XG5cblx0LyoqXG4gICogU2V0cyB0aGUgcm9vdCBvZiB0aGUgZGF0YSBzdG9yZVxuICAqIEBwYXJhbSBhanhwUm9vdE5vZGUgQWp4cE5vZGUgVGhlIHBhcmVudCBub2RlXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnNldFJvb3ROb2RlID0gZnVuY3Rpb24gc2V0Um9vdE5vZGUoYWp4cFJvb3ROb2RlKSB7XG5cdFx0dGhpcy5fcm9vdE5vZGUgPSBhanhwUm9vdE5vZGU7XG5cdFx0dGhpcy5fcm9vdE5vZGUuc2V0Um9vdCgpO1xuXHRcdHRoaXMuX3Jvb3ROb2RlLm9ic2VydmUoXCJjaGlsZF9hZGRlZFwiLCBmdW5jdGlvbiAoYykge1xuXHRcdFx0Ly9jb25zb2xlLmxvZyhjKTtcblx0XHR9KTtcblx0XHR0aGlzLnB1Ymxpc2goXCJyb290X25vZGVfY2hhbmdlZFwiLCB0aGlzLl9yb290Tm9kZSk7XG5cdFx0dGhpcy5zZXRDb250ZXh0Tm9kZSh0aGlzLl9yb290Tm9kZSk7XG5cdH07XG5cblx0LyoqXG4gICogR2V0cyB0aGUgY3VycmVudCByb290IG5vZGVcbiAgKiBAcmV0dXJucyBBanhwTm9kZVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5nZXRSb290Tm9kZSA9IGZ1bmN0aW9uIGdldFJvb3ROb2RlKCkge1xuXHRcdHJldHVybiB0aGlzLl9yb290Tm9kZTtcblx0fTtcblxuXHQvKipcbiAgKiBTZXRzIHRoZSBjdXJyZW50IGNvbnRleHQgbm9kZVxuICAqIEBwYXJhbSBhanhwRGF0YU5vZGUgQWp4cE5vZGVcbiAgKiBAcGFyYW0gZm9yY2VFdmVudCBCb29sZWFuIElmIHNldCB0byB0cnVlLCBldmVudCB3aWxsIGJlIHRyaWdnZXJlZCBldmVuIGlmIHRoZSBjdXJyZW50IG5vZGUgaXMgYWxyZWFkeSB0aGUgc2FtZS5cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuc2V0Q29udGV4dE5vZGUgPSBmdW5jdGlvbiBzZXRDb250ZXh0Tm9kZShhanhwRGF0YU5vZGUsIGZvcmNlRXZlbnQpIHtcblx0XHRpZiAodGhpcy5fY29udGV4dE5vZGUgJiYgdGhpcy5fY29udGV4dE5vZGUgPT0gYWp4cERhdGFOb2RlICYmIHRoaXMuX2N1cnJlbnRSZXAgPT0gYWp4cERhdGFOb2RlLmdldFBhdGgoKSAmJiAhZm9yY2VFdmVudCkge1xuXHRcdFx0cmV0dXJuOyAvLyBObyBjaGFuZ2VzXG5cdFx0fVxuXHRcdGlmICghYWp4cERhdGFOb2RlKSByZXR1cm47XG5cdFx0aWYgKHRoaXMuX2NvbnRleHROb2RlUmVwbGFjZWRPYnNlcnZlciAmJiB0aGlzLl9jb250ZXh0Tm9kZSkge1xuXHRcdFx0dGhpcy5fY29udGV4dE5vZGUuc3RvcE9ic2VydmluZyhcIm5vZGVfcmVwbGFjZWRcIiwgdGhpcy5fY29udGV4dE5vZGVSZXBsYWNlZE9ic2VydmVyKTtcblx0XHR9XG5cdFx0dGhpcy5fY29udGV4dE5vZGUgPSBhanhwRGF0YU5vZGU7XG5cdFx0dGhpcy5fY3VycmVudFJlcCA9IGFqeHBEYXRhTm9kZS5nZXRQYXRoKCk7XG5cdFx0dGhpcy5wdWJsaXNoKFwiY29udGV4dF9jaGFuZ2VkXCIsIGFqeHBEYXRhTm9kZSk7XG5cdFx0aWYgKCF0aGlzLl9jb250ZXh0Tm9kZVJlcGxhY2VkT2JzZXJ2ZXIpIHRoaXMuX2NvbnRleHROb2RlUmVwbGFjZWRPYnNlcnZlciA9IHRoaXMuY29udGV4dE5vZGVSZXBsYWNlZC5iaW5kKHRoaXMpO1xuXHRcdGFqeHBEYXRhTm9kZS5vYnNlcnZlKFwibm9kZV9yZXBsYWNlZFwiLCB0aGlzLl9jb250ZXh0Tm9kZVJlcGxhY2VkT2JzZXJ2ZXIpO1xuXHR9O1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5jb250ZXh0Tm9kZVJlcGxhY2VkID0gZnVuY3Rpb24gY29udGV4dE5vZGVSZXBsYWNlZChuZXdOb2RlKSB7XG5cdFx0dGhpcy5zZXRDb250ZXh0Tm9kZShuZXdOb2RlLCB0cnVlKTtcblx0fTtcblxuXHQvKipcbiAgKlxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5wdWJsaXNoID0gZnVuY3Rpb24gcHVibGlzaChldmVudE5hbWUsIG9wdGlvbmFsRGF0YSkge1xuXHRcdHZhciBhcmdzID0gW107XG5cdFx0aWYgKHRoaXMuX2dsb2JhbEV2ZW50cykge1xuXHRcdFx0aWYgKHdpbmRvdy5weWRpbykge1xuXHRcdFx0XHRhcmdzLnB1c2goZXZlbnROYW1lKTtcblx0XHRcdFx0aWYgKG9wdGlvbmFsRGF0YSkgYXJncy5wdXNoKG9wdGlvbmFsRGF0YSk7XG5cdFx0XHRcdHdpbmRvdy5weWRpby5maXJlLmFwcGx5KHdpbmRvdy5weWRpbywgYXJncyk7XG5cdFx0XHR9IGVsc2UgaWYgKGRvY3VtZW50LmZpcmUpIHtcblx0XHRcdFx0YXJncy5wdXNoKFwicHlkaW86XCIgKyBldmVudE5hbWUpO1xuXHRcdFx0XHRpZiAob3B0aW9uYWxEYXRhKSBhcmdzLnB1c2gob3B0aW9uYWxEYXRhKTtcblx0XHRcdFx0ZG9jdW1lbnQuZmlyZS5hcHBseShkb2N1bWVudCwgYXJncyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAob3B0aW9uYWxEYXRhKSB7XG5cdFx0XHRcdGFyZ3MgPSBbZXZlbnROYW1lLCB7IG1lbW86IG9wdGlvbmFsRGF0YSB9XTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFyZ3MgPSBbZXZlbnROYW1lXTtcblx0XHRcdH1cblx0XHRcdHRoaXMubm90aWZ5LmFwcGx5KHRoaXMsIGFyZ3MpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAob3B0aW9uYWxEYXRhKSB7XG5cdFx0XHRcdGFyZ3MgPSBbZXZlbnROYW1lLCB7IG1lbW86IG9wdGlvbmFsRGF0YSB9XTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFyZ3MgPSBbZXZlbnROYW1lXTtcblx0XHRcdH1cblx0XHRcdHRoaXMubm90aWZ5LmFwcGx5KHRoaXMsIGFyZ3MpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcbiAgKiBHZXQgdGhlIGN1cnJlbnQgY29udGV4dCBub2RlXG4gICogQHJldHVybnMgQWp4cE5vZGVcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuZ2V0Q29udGV4dE5vZGUgPSBmdW5jdGlvbiBnZXRDb250ZXh0Tm9kZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fY29udGV4dE5vZGU7XG5cdH07XG5cblx0LyoqXG4gICogQWZ0ZXIgYSBjb3B5IG9yIG1vdmUgb3BlcmF0aW9uLCBtYW55IG5vZGVzIG1heSBoYXZlIHRvIGJlIHJlbG9hZGVkXG4gICogVGhpcyBmdW5jdGlvbiB0cmllcyB0byByZWxvYWQgdGhlbSBpbiB0aGUgcmlnaHQgb3JkZXIgYW5kIGlmIG5lY2Vzc2FyeS5cbiAgKiBAcGFyYW0gbm9kZXMgQWp4cE5vZGVzW10gQW4gYXJyYXkgb2Ygbm9kZXNcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUubXVsdGlwbGVOb2Rlc1JlbG9hZCA9IGZ1bmN0aW9uIG11bHRpcGxlTm9kZXNSZWxvYWQobm9kZXMpIHtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgbm9kZVBhdGhPck5vZGUgPSBub2Rlc1tpXTtcblx0XHRcdHZhciBub2RlO1xuXHRcdFx0aWYgKG5vZGVQYXRoT3JOb2RlIGluc3RhbmNlb2YgU3RyaW5nKSB7XG5cdFx0XHRcdG5vZGUgPSBuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKG5vZGVQYXRoT3JOb2RlKTtcblx0XHRcdFx0aWYgKG5vZGUuZ2V0UGF0aCgpID09IHRoaXMuX3Jvb3ROb2RlLmdldFBhdGgoKSkgbm9kZSA9IHRoaXMuX3Jvb3ROb2RlO2Vsc2Ugbm9kZSA9IG5vZGUuZmluZEluQXJibyh0aGlzLl9yb290Tm9kZSwgW10pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bm9kZSA9IG5vZGVQYXRoT3JOb2RlO1xuXHRcdFx0fVxuXHRcdFx0bm9kZXNbaV0gPSBub2RlO1xuXHRcdH1cblx0XHR2YXIgY2hpbGRyZW4gPSBbXTtcblx0XHRub2Rlcy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG5cdFx0XHRpZiAoYS5pc1BhcmVudE9mKGIpKSB7XG5cdFx0XHRcdGNoaWxkcmVuLnB1c2goYik7XG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblx0XHRcdGlmIChhLmlzQ2hpbGRPZihiKSkge1xuXHRcdFx0XHRjaGlsZHJlbi5wdXNoKGEpO1xuXHRcdFx0XHRyZXR1cm4gKzE7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9KTtcblx0XHRjaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGMpIHtcblx0XHRcdG5vZGVzID0gX3V0aWxMYW5nVXRpbHMyWydkZWZhdWx0J10uYXJyYXlXaXRob3V0KG5vZGVzLCBjKTtcblx0XHR9KTtcblx0XHRub2Rlcy5tYXAodGhpcy5xdWV1ZU5vZGVSZWxvYWQuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy5uZXh0Tm9kZVJlbG9hZGVyKCk7XG5cdH07XG5cblx0LyoqXG4gICogQWRkIGEgbm9kZSB0byB0aGUgcXVldWUgb2Ygbm9kZXMgdG8gcmVsb2FkLlxuICAqIEBwYXJhbSBub2RlIEFqeHBOb2RlXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnF1ZXVlTm9kZVJlbG9hZCA9IGZ1bmN0aW9uIHF1ZXVlTm9kZVJlbG9hZChub2RlKSB7XG5cdFx0aWYgKCF0aGlzLnF1ZXVlKSB0aGlzLnF1ZXVlID0gW107XG5cdFx0aWYgKG5vZGUpIHtcblx0XHRcdHRoaXMucXVldWUucHVzaChub2RlKTtcblx0XHR9XG5cdH07XG5cblx0LyoqXG4gICogUXVldWUgcHJvY2Vzc29yIGZvciB0aGUgbm9kZXMgdG8gcmVsb2FkXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLm5leHROb2RlUmVsb2FkZXIgPSBmdW5jdGlvbiBuZXh0Tm9kZVJlbG9hZGVyKCkge1xuXHRcdGlmICghdGhpcy5xdWV1ZS5sZW5ndGgpIHtcblx0XHRcdHdpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdHRoaXMucHVibGlzaChcImNvbnRleHRfY2hhbmdlZFwiLCB0aGlzLl9jb250ZXh0Tm9kZSk7XG5cdFx0XHR9KS5iaW5kKHRoaXMpLCAyMDApO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR2YXIgbmV4dCA9IHRoaXMucXVldWUuc2hpZnQoKTtcblx0XHR2YXIgb2JzZXJ2ZXIgPSB0aGlzLm5leHROb2RlUmVsb2FkZXIuYmluZCh0aGlzKTtcblx0XHRuZXh0Lm9ic2VydmVPbmNlKFwibG9hZGVkXCIsIG9ic2VydmVyKTtcblx0XHRuZXh0Lm9ic2VydmVPbmNlKFwiZXJyb3JcIiwgb2JzZXJ2ZXIpO1xuXHRcdGlmIChuZXh0ID09PSB0aGlzLl9jb250ZXh0Tm9kZSB8fCBuZXh0LmlzUGFyZW50T2YodGhpcy5fY29udGV4dE5vZGUpKSB7XG5cdFx0XHR0aGlzLnJlcXVpcmVDb250ZXh0Q2hhbmdlKG5leHQsIHRydWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRuZXh0LnJlbG9hZCh0aGlzLl9pQWp4cE5vZGVQcm92aWRlcik7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuICAqIEluc2VydCBhIG5vZGUgc29tZXdoZXJlIGluIHRoZSBkYXRhbW9kZWxcbiAgKiBAcGFyYW0gbm9kZSBBanhwTm9kZVxuICAqIEBwYXJhbSBzZXRTZWxlY3RlZEFmdGVyQWRkIGJvb2xcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuYWRkTm9kZSA9IGZ1bmN0aW9uIGFkZE5vZGUobm9kZSkge1xuXHRcdHZhciBzZXRTZWxlY3RlZEFmdGVyQWRkID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG5cblx0XHQvLyBJZiBpdCBhbHJlYWR5IGV4aXN0cywgcmVwbGFjZSBpdFxuXHRcdHZhciBleGlzdGluZyA9IG5vZGUuZmluZEluQXJibyh0aGlzLmdldFJvb3ROb2RlKCksIHVuZGVmaW5lZCk7XG5cdFx0aWYgKGV4aXN0aW5nKSB7XG5cdFx0XHRleGlzdGluZy5yZXBsYWNlQnkobm9kZSwgXCJvdmVycmlkZVwiKTtcblx0XHRcdGlmIChzZXRTZWxlY3RlZEFmdGVyQWRkICYmIHRoaXMuZ2V0Q29udGV4dE5vZGUoKSA9PT0gZXhpc3RpbmcuZ2V0UGFyZW50KCkpIHtcblx0XHRcdFx0dGhpcy5zZXRTZWxlY3RlZE5vZGVzKFtleGlzdGluZ10sIHt9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR2YXIgcGFyZW50RmFrZSA9IG5ldyBfQWp4cE5vZGUyWydkZWZhdWx0J10oX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0RGlybmFtZShub2RlLmdldFBhdGgoKSkpO1xuXHRcdHZhciBwYXJlbnQgPSBwYXJlbnRGYWtlLmZpbmRJbkFyYm8odGhpcy5nZXRSb290Tm9kZSgpLCB1bmRlZmluZWQpO1xuXHRcdGlmICghcGFyZW50ICYmIF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldERpcm5hbWUobm9kZS5nZXRQYXRoKCkpID09PSBcIlwiKSB7XG5cdFx0XHRwYXJlbnQgPSB0aGlzLmdldFJvb3ROb2RlKCk7XG5cdFx0fVxuXHRcdGlmIChwYXJlbnQpIHtcblx0XHRcdHZhciBhZGRlZE5vZGUgPSBwYXJlbnQuYWRkQ2hpbGQobm9kZSk7XG5cdFx0XHRpZiAoYWRkZWROb2RlICYmIHNldFNlbGVjdGVkQWZ0ZXJBZGQgJiYgdGhpcy5nZXRDb250ZXh0Tm9kZSgpID09PSBwYXJlbnQpIHtcblx0XHRcdFx0dGhpcy5zZXRTZWxlY3RlZE5vZGVzKFthZGRlZE5vZGVdLCB7fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuICAqIFJlbW92ZSBhIG5vZGUgYnkgcGF0aCBzb21ld2hlcmVcbiAgKiBAcGFyYW0gcGF0aCBzdHJpbmdcbiAgKiBAcGFyYW0gaW1UaW1lIGludGVnZXJ8bnVsbFxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5yZW1vdmVOb2RlQnlQYXRoID0gZnVuY3Rpb24gcmVtb3ZlTm9kZUJ5UGF0aChwYXRoKSB7XG5cdFx0dmFyIGltVGltZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMV07XG5cblx0XHR2YXIgZmFrZSA9IG5ldyBfQWp4cE5vZGUyWydkZWZhdWx0J10ocGF0aCk7XG5cdFx0dmFyIG4gPSBmYWtlLmZpbmRJbkFyYm8odGhpcy5nZXRSb290Tm9kZSgpLCB1bmRlZmluZWQpO1xuXHRcdGlmIChuKSB7XG5cdFx0XHRpZiAoaW1UaW1lICYmIG4uZ2V0TWV0YWRhdGEoKSAmJiBuLmdldE1ldGFkYXRhKCkuZ2V0KFwiYWp4cF9pbV90aW1lXCIpICYmIHBhcnNlSW50KG4uZ2V0TWV0YWRhdGEoKS5nZXQoXCJhanhwX2ltX3RpbWVcIikpID49IGltVGltZSkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHRuLmdldFBhcmVudCgpLnJlbW92ZUNoaWxkKG4pO1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fTtcblxuXHQvKipcbiAgKiBVcGRhdGUgYSBub2RlIHNvbWV3aGVyZSBpbiB0aGUgZGF0YW1vZGVsXG4gICogQHBhcmFtIG5vZGUgQWp4cE5vZGVcbiAgKiBAcGFyYW0gc2V0U2VsZWN0ZWRBZnRlclVwZGF0ZSBib29sXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnVwZGF0ZU5vZGUgPSBmdW5jdGlvbiB1cGRhdGVOb2RlKG5vZGUpIHtcblx0XHR2YXIgc2V0U2VsZWN0ZWRBZnRlclVwZGF0ZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG5cdFx0dmFyIG9yaWdpbmFsID0gbm9kZS5nZXRNZXRhZGF0YSgpLmdldChcIm9yaWdpbmFsX3BhdGhcIik7XG5cdFx0dmFyIGZha2UsIG47XG5cdFx0aWYgKG9yaWdpbmFsICYmIG9yaWdpbmFsICE9PSBub2RlLmdldFBhdGgoKSAmJiBfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXREaXJuYW1lKG9yaWdpbmFsKSAhPT0gX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0RGlybmFtZShub2RlLmdldFBhdGgoKSkpIHtcblx0XHRcdC8vIE5vZGUgd2FzIHJlYWxseSBtb3ZlZCB0byBhbm90aGVyIGZvbGRlclxuXHRcdFx0ZmFrZSA9IG5ldyBfQWp4cE5vZGUyWydkZWZhdWx0J10ob3JpZ2luYWwpO1xuXHRcdFx0biA9IGZha2UuZmluZEluQXJibyh0aGlzLmdldFJvb3ROb2RlKCksIHVuZGVmaW5lZCk7XG5cdFx0XHRpZiAobikge1xuXHRcdFx0XHRuLmdldFBhcmVudCgpLnJlbW92ZUNoaWxkKG4pO1xuXHRcdFx0fVxuXHRcdFx0dmFyIHBhcmVudEZha2UgPSBuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldERpcm5hbWUobm9kZS5nZXRQYXRoKCkpKTtcblx0XHRcdHZhciBwYXJlbnQgPSBwYXJlbnRGYWtlLmZpbmRJbkFyYm8odGhpcy5nZXRSb290Tm9kZSgpLCB1bmRlZmluZWQpO1xuXHRcdFx0aWYgKCFwYXJlbnQgJiYgX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0RGlybmFtZShub2RlLmdldFBhdGgoKSkgPT09IFwiXCIpIHBhcmVudCA9IHRoaXMuZ2V0Um9vdE5vZGUoKTtcblx0XHRcdGlmIChwYXJlbnQpIHtcblx0XHRcdFx0bm9kZS5nZXRNZXRhZGF0YSgpLnNldChcIm9yaWdpbmFsX3BhdGhcIiwgdW5kZWZpbmVkKTtcblx0XHRcdFx0cGFyZW50LmFkZENoaWxkKG5vZGUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAobm9kZS5nZXRNZXRhZGF0YSgpLmdldChcIm9yaWdpbmFsX3BhdGhcIikgPT09IFwiL1wiICYmIG5vZGUuZ2V0UGF0aCgpID09PSBcIi9cIikge1xuXHRcdFx0XHRuID0gdGhpcy5nZXRSb290Tm9kZSgpO1xuXHRcdFx0XHRuLnJlcGxhY2VNZXRhZGF0YShub2RlLmdldE1ldGFkYXRhKCkpO1xuXHRcdFx0XHRpZiAoc2V0U2VsZWN0ZWRBZnRlclVwZGF0ZSAmJiB0aGlzLmdldENvbnRleHROb2RlKCkgPT09IG4pIHtcblx0XHRcdFx0XHR0aGlzLnNldFNlbGVjdGVkTm9kZXMoW25dLCB7fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0ZmFrZSA9IG5ldyBfQWp4cE5vZGUyWydkZWZhdWx0J10ob3JpZ2luYWwpO1xuXHRcdFx0biA9IGZha2UuZmluZEluQXJibyh0aGlzLmdldFJvb3ROb2RlKCksIHVuZGVmaW5lZCk7XG5cdFx0XHRpZiAobiAmJiAhbi5pc01vcmVSZWNlbnRUaGFuKG5vZGUpKSB7XG5cdFx0XHRcdG5vZGUuX2lzTG9hZGVkID0gbi5faXNMb2FkZWQ7XG5cdFx0XHRcdG4ucmVwbGFjZUJ5KG5vZGUsIFwib3ZlcnJpZGVcIik7XG5cdFx0XHRcdGlmIChzZXRTZWxlY3RlZEFmdGVyVXBkYXRlICYmIHRoaXMuZ2V0Q29udGV4dE5vZGUoKSA9PT0gbi5nZXRQYXJlbnQoKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0U2VsZWN0ZWROb2Rlcyhbbl0sIHt9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fTtcblxuXHQvKipcbiAgKiBTZXRzIGFuIGFycmF5IG9mIG5vZGVzIHRvIGJlIHNlbGVjdGVkIGFmdGVyIHRoZSBjb250ZXh0IGlzIChyZSlsb2FkZWRcbiAgKiBAcGFyYW0gc2VsZWN0aW9uIEFqeHBOb2RlW11cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuc2V0UGVuZGluZ1NlbGVjdGlvbiA9IGZ1bmN0aW9uIHNldFBlbmRpbmdTZWxlY3Rpb24oc2VsZWN0aW9uKSB7XG5cdFx0dGhpcy5fcGVuZGluZ1NlbGVjdGlvbiA9IHNlbGVjdGlvbjtcblx0fTtcblxuXHQvKipcbiAgKiBHZXRzIHRoZSBhcnJheSBvZiBub2RlcyB0byBiZSBzZWxlY3RlZCBhZnRlciB0aGUgY29udGV4dCBpcyAocmUpbG9hZGVkXG4gICogQHJldHVybnMgQWp4cE5vZGVbXVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5nZXRQZW5kaW5nU2VsZWN0aW9uID0gZnVuY3Rpb24gZ2V0UGVuZGluZ1NlbGVjdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5fcGVuZGluZ1NlbGVjdGlvbjtcblx0fTtcblxuXHQvKipcbiAgKiBDbGVhcnMgdGhlIG5vZGVzIHRvIGJlIHNlbGVjdGVkXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmNsZWFyUGVuZGluZ1NlbGVjdGlvbiA9IGZ1bmN0aW9uIGNsZWFyUGVuZGluZ1NlbGVjdGlvbigpIHtcblx0XHR0aGlzLl9wZW5kaW5nU2VsZWN0aW9uID0gbnVsbDtcblx0fTtcblxuXHQvKipcbiAgKiBTZXQgYW4gYXJyYXkgb2Ygbm9kZXMgYXMgdGhlIGN1cnJlbnQgc2VsZWN0aW9uXG4gICogQHBhcmFtIGFqeHBEYXRhTm9kZXMgQWp4cE5vZGVbXSBUaGUgbm9kZXMgdG8gc2VsZWN0XG4gICogQHBhcmFtIHNvdXJjZSBTdHJpbmcgVGhlIHNvdXJjZSBvZiB0aGlzIHNlbGVjdGlvbiBhY3Rpb25cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuc2V0U2VsZWN0ZWROb2RlcyA9IGZ1bmN0aW9uIHNldFNlbGVjdGVkTm9kZXMoYWp4cERhdGFOb2Rlcywgc291cmNlKSB7XG5cdFx0aWYgKHRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoID09PSBhanhwRGF0YU5vZGVzLmxlbmd0aCkge1xuXHRcdFx0aWYgKGFqeHBEYXRhTm9kZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHZhciBlcXVhbCA9IHRydWU7XG5cdFx0XHRmb3IgKHZhciBrID0gMDsgayA8IGFqeHBEYXRhTm9kZXMubGVuZ3RoOyBrKyspIHtcblx0XHRcdFx0ZXF1YWwgPSBlcXVhbCAmJiBhanhwRGF0YU5vZGVzW2tdID09PSB0aGlzLl9zZWxlY3RlZE5vZGVzW2tdO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGVxdWFsKSB7XG5cdFx0XHRcdHdpbmRvdy5weWRpby5maXJlKFwic2VsZWN0aW9uX3JlbG9hZGVkXCIsIHRoaXMpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICghc291cmNlKSB7XG5cdFx0XHR0aGlzLl9zZWxlY3Rpb25Tb3VyY2UgPSB7fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fc2VsZWN0aW9uU291cmNlID0gc291cmNlO1xuXHRcdH1cblx0XHR0aGlzLl9zZWxlY3RlZE5vZGVzID0gYWp4cERhdGFOb2Rlcztcblx0XHR0aGlzLl9iRW1wdHkgPSBhanhwRGF0YU5vZGVzICYmIGFqeHBEYXRhTm9kZXMubGVuZ3RoID8gZmFsc2UgOiB0cnVlO1xuXHRcdHRoaXMuX2JGaWxlID0gdGhpcy5fYkRpciA9IHRoaXMuX2lzUmVjeWNsZSA9IGZhbHNlO1xuXHRcdGlmICghdGhpcy5fYkVtcHR5KSB7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGFqeHBEYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0dmFyIHNlbGVjdGVkTm9kZSA9IGFqeHBEYXRhTm9kZXNbaV07XG5cdFx0XHRcdGlmIChzZWxlY3RlZE5vZGUuaXNMZWFmKCkpIHRoaXMuX2JGaWxlID0gdHJ1ZTtlbHNlIHRoaXMuX2JEaXIgPSB0cnVlO1xuXHRcdFx0XHRpZiAoc2VsZWN0ZWROb2RlLmlzUmVjeWNsZSgpKSB0aGlzLl9pc1JlY3ljbGUgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLnB1Ymxpc2goXCJzZWxlY3Rpb25fY2hhbmdlZFwiLCB0aGlzKTtcblx0fTtcblxuXHQvKipcbiAgKiBHZXRzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbm9kZXNcbiAgKiBAcmV0dXJucyBBanhwTm9kZVtdXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmdldFNlbGVjdGVkTm9kZXMgPSBmdW5jdGlvbiBnZXRTZWxlY3RlZE5vZGVzKCkge1xuXHRcdHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGVzO1xuXHR9O1xuXG5cdC8qKlxuICAqIEdldHMgdGhlIHNvdXJjZSBvZiB0aGUgbGFzdCBzZWxlY3Rpb24gYWN0aW9uXG4gICogQHJldHVybnMgU3RyaW5nXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmdldFNlbGVjdGlvblNvdXJjZSA9IGZ1bmN0aW9uIGdldFNlbGVjdGlvblNvdXJjZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VsZWN0aW9uU291cmNlO1xuXHR9O1xuXG5cdC8qKlxuICAqIE1hbnVhbGx5IHNldHMgdGhlIHNvdXJjZSBvZiB0aGUgc2VsZWN0aW9uXG4gICogQHBhcmFtIG9iamVjdFxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5zZXRTZWxlY3Rpb25Tb3VyY2UgPSBmdW5jdGlvbiBzZXRTZWxlY3Rpb25Tb3VyY2Uob2JqZWN0KSB7XG5cdFx0dGhpcy5fc2VsZWN0aW9uU291cmNlID0gb2JqZWN0O1xuXHR9O1xuXG5cdC8qKlxuICAqIFNlbGVjdCBhbGwgdGhlIGNoaWxkcmVuIG9mIHRoZSBjdXJyZW50IGNvbnRleHQgbm9kZVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5zZWxlY3RBbGwgPSBmdW5jdGlvbiBzZWxlY3RBbGwoKSB7XG5cdFx0dmFyIG5vZGVzID0gW107XG5cdFx0dmFyIGNoaWxkcmVuTWFwID0gdGhpcy5fY29udGV4dE5vZGUuZ2V0Q2hpbGRyZW4oKTtcblx0XHRjaGlsZHJlbk1hcC5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuXHRcdFx0bm9kZXMucHVzaChjaGlsZCk7XG5cdFx0fSk7XG5cdFx0dGhpcy5zZXRTZWxlY3RlZE5vZGVzKG5vZGVzLCBcImRhdGFNb2RlbFwiKTtcblx0fTtcblxuXHQvKipcbiAgKiBXaGV0aGVyIHRoZSBzZWxlY3Rpb24gaXMgZW1wdHlcbiAgKiBAcmV0dXJucyBCb29sZWFuXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmlzRW1wdHkgPSBmdW5jdGlvbiBpc0VtcHR5KCkge1xuXHRcdHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGVzID8gdGhpcy5fc2VsZWN0ZWROb2Rlcy5sZW5ndGggPT09IDAgOiB0cnVlO1xuXHR9O1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5oYXNSZWFkT25seSA9IGZ1bmN0aW9uIGhhc1JlYWRPbmx5KCkge1xuXHRcdHZhciB0ZXN0ID0gZmFsc2U7XG5cdFx0dHJ5IHtcblx0XHRcdHRoaXMuX3NlbGVjdGVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkge1xuXHRcdFx0XHRpZiAobm9kZS5oYXNNZXRhZGF0YUluQnJhbmNoKFwibm9kZV9yZWFkb25seVwiLCBcInRydWVcIikpIHtcblx0XHRcdFx0XHR0ZXN0ID0gdHJ1ZTtcblx0XHRcdFx0XHR0aHJvdyAkYnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0gY2F0Y2ggKGUpIHt9XG5cdFx0cmV0dXJuIHRlc3Q7XG5cdH07XG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnNlbGVjdGlvbkhhc1Jvb3ROb2RlID0gZnVuY3Rpb24gc2VsZWN0aW9uSGFzUm9vdE5vZGUoKSB7XG5cdFx0dmFyIGZvdW5kID0gZmFsc2U7XG5cdFx0dHJ5IHtcblx0XHRcdHRoaXMuX3NlbGVjdGVkTm9kZXMuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHtcblx0XHRcdFx0aWYgKGVsLmlzUm9vdCgpKSB7XG5cdFx0XHRcdFx0Zm91bmQgPSB0cnVlO1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGNhdGNoIChlKSB7fVxuXHRcdHJldHVybiBmb3VuZDtcblx0fTtcblxuXHQvKipcbiAgKiBXaGV0aGVyIHRoZSBzZWxlY3Rpb24gaXMgdW5pcXVlXG4gICogQHJldHVybnMgQm9vbGVhblxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5pc1VuaXF1ZSA9IGZ1bmN0aW9uIGlzVW5pcXVlKCkge1xuXHRcdHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGVzICYmIHRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoID09PSAxO1xuXHR9O1xuXG5cdC8qKlxuICAqIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBoYXMgYSBmaWxlIHNlbGVjdGVkLlxuICAqIFNob3VsZCBiZSBoYXNMZWFmXG4gICogQHJldHVybnMgQm9vbGVhblxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5oYXNGaWxlID0gZnVuY3Rpb24gaGFzRmlsZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fYkZpbGU7XG5cdH07XG5cblx0LyoqXG4gICogV2hldGhlciB0aGUgc2VsZWN0aW9uIGhhcyBhIGRpciBzZWxlY3RlZFxuICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuaGFzRGlyID0gZnVuY3Rpb24gaGFzRGlyKCkge1xuXHRcdHJldHVybiB0aGlzLl9iRGlyO1xuXHR9O1xuXG5cdC8qKlxuICAqIFdoZXRoZXIgdGhlIGN1cnJlbnQgY29udGV4dCBpcyB0aGUgcmVjeWNsZSBiaW5cbiAgKiBAcmV0dXJucyBCb29sZWFuXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmlzUmVjeWNsZSA9IGZ1bmN0aW9uIGlzUmVjeWNsZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5faXNSZWN5Y2xlO1xuXHR9O1xuXG5cdC8qKlxuICAqIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBoYXMgbW9yZSB0aGFuIG9uZSBub2RlIHNlbGVjdGVkXG4gICogQHJldHVybnMgQm9vbGVhblxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5pc011bHRpcGxlID0gZnVuY3Rpb24gaXNNdWx0aXBsZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VsZWN0ZWROb2RlcyAmJiB0aGlzLl9zZWxlY3RlZE5vZGVzLmxlbmd0aCA+IDE7XG5cdH07XG5cblx0LyoqXG4gICogV2hldGhlciB0aGUgc2VsZWN0aW9uIGhhcyBhIGZpbGUgd2l0aCBvbmUgb2YgdGhlIG1pbWVzXG4gICogQHBhcmFtIG1pbWVUeXBlcyBBcnJheSBBcnJheSBvZiBtaW1lIHR5cGVzXG4gICogQHJldHVybnMgQm9vbGVhblxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5oYXNNaW1lID0gZnVuY3Rpb24gaGFzTWltZShtaW1lVHlwZXMpIHtcblx0XHRpZiAobWltZVR5cGVzLmxlbmd0aCA9PT0gMSAmJiBtaW1lVHlwZXNbMF0gPT09IFwiKlwiKSByZXR1cm4gdHJ1ZTtcblx0XHR2YXIgaGFzID0gZmFsc2U7XG5cdFx0bWltZVR5cGVzLm1hcCgoZnVuY3Rpb24gKG1pbWUpIHtcblx0XHRcdGlmIChoYXMpIHJldHVybjtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VsZWN0ZWROb2Rlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QWp4cE1pbWVUeXBlKHRoaXMuX3NlbGVjdGVkTm9kZXNbaV0pID09PSBtaW1lKSB7XG5cdFx0XHRcdFx0aGFzID0gdHJ1ZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pLmJpbmQodGhpcykpO1xuXHRcdHJldHVybiBoYXM7XG5cdH07XG5cblx0LyoqXG4gICogR2V0IGFsbCBzZWxlY3RlZCBmaWxlbmFtZXMgYXMgYW4gYXJyYXkuXG4gICogQHBhcmFtIHNlcGFyYXRvciBTdHJpbmcgSXMgYSBzZXBhcmF0b3IsIHdpbGwgcmV0dXJuIGEgc3RyaW5nIGpvaW5lZFxuICAqIEByZXR1cm5zIEFycmF5fFN0cmluZ3xib29sXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmdldEZpbGVOYW1lcyA9IGZ1bmN0aW9uIGdldEZpbGVOYW1lcyhzZXBhcmF0b3IpIHtcblx0XHRpZiAoIXRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoKSB7XG5cdFx0XHRhbGVydCgnUGxlYXNlIHNlbGVjdCBhIGZpbGUhJyk7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHZhciB0bXAgPSBuZXcgQXJyYXkodGhpcy5fc2VsZWN0ZWROb2Rlcy5sZW5ndGgpO1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VsZWN0ZWROb2Rlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dG1wW2ldID0gdGhpcy5fc2VsZWN0ZWROb2Rlc1tpXS5nZXRQYXRoKCk7XG5cdFx0fVxuXHRcdGlmIChzZXBhcmF0b3IpIHtcblx0XHRcdHJldHVybiB0bXAuam9pbihzZXBhcmF0b3IpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdG1wO1xuXHRcdH1cblx0fTtcblxuXHQvKipcbiAgKiBHZXQgYWxsIHRoZSBmaWxlbmFtZXMgb2YgdGhlIGN1cnJlbnQgY29udGV4dCBub2RlIGNoaWxkcmVuXG4gICogQHBhcmFtIHNlcGFyYXRvciBTdHJpbmcgSWYgcGFzc2VkLCB3aWxsIGpvaW4gdGhlIGFycmF5IGFzIGEgc3RyaW5nXG4gICogQHJldHVybiBBcnJheXxTdHJpbmd8Ym9vbFxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5nZXRDb250ZXh0RmlsZU5hbWVzID0gZnVuY3Rpb24gZ2V0Q29udGV4dEZpbGVOYW1lcyhzZXBhcmF0b3IpIHtcblx0XHR2YXIgYWxsSXRlbXMgPSB0aGlzLl9jb250ZXh0Tm9kZS5nZXRDaGlsZHJlbigpO1xuXHRcdGlmICghYWxsSXRlbXMubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHZhciBuYW1lcyA9IFtdO1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYWxsSXRlbXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdG5hbWVzLnB1c2goX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QmFzZW5hbWUoYWxsSXRlbXNbaV0uZ2V0UGF0aCgpKSk7XG5cdFx0fVxuXHRcdGlmIChzZXBhcmF0b3IpIHtcblx0XHRcdHJldHVybiBuYW1lcy5qb2luKHNlcGFyYXRvcik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBuYW1lcztcblx0XHR9XG5cdH07XG5cblx0LyoqXG4gICogV2hldGhlciB0aGUgY29udGV4dCBub2RlIGhhcyBhIGNoaWxkIHdpdGggdGhpcyBiYXNlbmFtZVxuICAqIEBwYXJhbSBuZXdGaWxlTmFtZSBTdHJpbmcgVGhlIG5hbWUgdG8gY2hlY2tcbiAgKiBAcmV0dXJucyBCb29sZWFuXG4gICogQHBhcmFtIGxvY2FsXG4gICogQHBhcmFtIGNvbnRleHROb2RlXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmZpbGVOYW1lRXhpc3RzID0gZnVuY3Rpb24gZmlsZU5hbWVFeGlzdHMobmV3RmlsZU5hbWUsIGxvY2FsLCBjb250ZXh0Tm9kZSkge1xuXHRcdGlmICghY29udGV4dE5vZGUpIHtcblx0XHRcdGNvbnRleHROb2RlID0gdGhpcy5fY29udGV4dE5vZGU7XG5cdFx0fVxuXHRcdGlmIChsb2NhbCkge1xuXHRcdFx0dmFyIHRlc3QgPSAoY29udGV4dE5vZGUuZ2V0UGF0aCgpID09PSBcIi9cIiA/IFwiXCIgOiBjb250ZXh0Tm9kZS5nZXRQYXRoKCkpICsgXCIvXCIgKyBuZXdGaWxlTmFtZTtcblx0XHRcdHZhciBmb3VuZCA9IGZhbHNlO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29udGV4dE5vZGUuZ2V0Q2hpbGRyZW4oKS5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XG5cdFx0XHRcdFx0aWYgKGMuZ2V0UGF0aCgpID09PSB0ZXN0KSB7XG5cdFx0XHRcdFx0XHRmb3VuZCA9IHRydWU7XG5cdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBjYXRjaCAoZSkge31cblx0XHRcdHJldHVybiBmb3VuZDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmFyIG5vZGVFeGlzdHMgPSBmYWxzZTtcblx0XHRcdHRoaXMubG9hZFBhdGhJbmZvU3luYyhjb250ZXh0Tm9kZS5nZXRQYXRoKCkgKyBcIi9cIiArIG5ld0ZpbGVOYW1lLCBmdW5jdGlvbiAoZm91bmROb2RlKSB7XG5cdFx0XHRcdG5vZGVFeGlzdHMgPSB0cnVlO1xuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gbm9kZUV4aXN0cztcblx0XHR9XG5cdH07XG5cblx0LyoqXG4gICogR2V0cyB0aGUgZmlyc3QgbmFtZSBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb25cbiAgKiBAcmV0dXJucyBTdHJpbmdcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuZ2V0VW5pcXVlRmlsZU5hbWUgPSBmdW5jdGlvbiBnZXRVbmlxdWVGaWxlTmFtZSgpIHtcblx0XHRpZiAodGhpcy5nZXRGaWxlTmFtZXMoKS5sZW5ndGgpIHtcblx0XHRcdHJldHVybiB0aGlzLmdldEZpbGVOYW1lcygpWzBdO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fTtcblxuXHQvKipcbiAgKiBHZXRzIHRoZSBmaXJzdCBub2RlIG9mIHRoZSBzZWxlY3Rpb24sIG9yIE51bGxcbiAgKiBAcmV0dXJucyBBanhwTm9kZVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5nZXRVbmlxdWVOb2RlID0gZnVuY3Rpb24gZ2V0VW5pcXVlTm9kZSgpIHtcblx0XHRpZiAodGhpcy5fc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcblx0XHRcdHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGVzWzBdO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fTtcblxuXHQvKipcbiAgKiBHZXRzIGEgbm9kZSBmcm9tIHRoZSBjdXJyZW50IHNlbGVjdGlvblxuICAqIEBwYXJhbSBpIEludGVnZXIgdGhlIG5vZGUgaW5kZXhcbiAgKiBAcmV0dXJucyBBanhwTm9kZVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5nZXROb2RlID0gZnVuY3Rpb24gZ2V0Tm9kZShpKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlbGVjdGVkTm9kZXNbaV07XG5cdH07XG5cblx0LyoqXG4gICogV2lsbCBhZGQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIG5vZGVzIGFzIHNlcmlhbGl6YWJsZSBkYXRhIHRvIHRoZSBlbGVtZW50IHBhc3NlZCA6XG4gICogZWl0aGVyIGFzIGhpZGRlbiBpbnB1dCBlbGVtZW50cyBpZiBpdCdzIGEgZm9ybSwgb3IgYXMgcXVlcnkgcGFyYW1ldGVycyBpZiBpdCdzIGFuIHVybFxuICAqIEBwYXJhbSBvRm9ybUVsZW1lbnQgSFRNTEZvcm0gVGhlIGZvcm1cbiAgKiBAcGFyYW0gc1VybCBTdHJpbmcgQW4gdXJsIHRvIGNvbXBsZXRlXG4gICogQHJldHVybnMgU3RyaW5nXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnVwZGF0ZUZvcm1PclVybCA9IGZ1bmN0aW9uIHVwZGF0ZUZvcm1PclVybChvRm9ybUVsZW1lbnQsIHNVcmwpIHtcblx0XHQvLyBDTEVBUiBGUk9NIFBSRVZJT1VTIEFDVElPTlMhXG5cdFx0aWYgKG9Gb3JtRWxlbWVudCkge1xuXHRcdFx0JChvRm9ybUVsZW1lbnQpLnNlbGVjdCgnaW5wdXRbdHlwZT1cImhpZGRlblwiXScpLm1hcChmdW5jdGlvbiAoZWxlbWVudCkge1xuXHRcdFx0XHRpZiAoZWxlbWVudC5uYW1lID09PSBcIm5vZGVzW11cIiB8fCBlbGVtZW50Lm5hbWUgPT09IFwiZmlsZVwiKSB7XG5cdFx0XHRcdFx0ZWxlbWVudC5yZW1vdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdC8vIFVQREFURSBUSEUgJ0RJUicgRklFTERTXG5cdFx0aWYgKG9Gb3JtRWxlbWVudCAmJiBvRm9ybUVsZW1lbnRbJ3JlcCddKSB7XG5cdFx0XHRvRm9ybUVsZW1lbnRbJ3JlcCddLnZhbHVlID0gdGhpcy5fY3VycmVudFJlcDtcblx0XHR9XG5cdFx0c1VybCArPSAnJmRpcj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuX2N1cnJlbnRSZXApO1xuXG5cdFx0Ly8gVVBEQVRFIFRIRSAnZmlsZScgRklFTERTXG5cdFx0aWYgKHRoaXMuaXNFbXB0eSgpKSB7XG5cdFx0XHRyZXR1cm4gc1VybDtcblx0XHR9XG5cdFx0dmFyIGZpbGVOYW1lcyA9IHRoaXMuZ2V0RmlsZU5hbWVzKCk7XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlTmFtZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHNVcmwgKz0gJyYnICsgJ25vZGVzW109JyArIGVuY29kZVVSSUNvbXBvbmVudChmaWxlTmFtZXNbaV0pO1xuXHRcdFx0aWYgKG9Gb3JtRWxlbWVudCkge1xuXHRcdFx0XHR0aGlzLl9hZGRIaWRkZW5GaWVsZChvRm9ybUVsZW1lbnQsICdub2Rlc1tdJywgZmlsZU5hbWVzW2ldKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGZpbGVOYW1lcy5sZW5ndGggPT09IDEpIHtcblx0XHRcdHNVcmwgKz0gJyYnICsgJ2ZpbGU9JyArIGVuY29kZVVSSUNvbXBvbmVudChmaWxlTmFtZXNbMF0pO1xuXHRcdFx0aWYgKG9Gb3JtRWxlbWVudCkge1xuXHRcdFx0XHR0aGlzLl9hZGRIaWRkZW5GaWVsZChvRm9ybUVsZW1lbnQsICdmaWxlJywgZmlsZU5hbWVzWzBdKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHNVcmw7XG5cdH07XG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLl9hZGRIaWRkZW5GaWVsZCA9IGZ1bmN0aW9uIF9hZGRIaWRkZW5GaWVsZChvRm9ybUVsZW1lbnQsIHNGaWVsZE5hbWUsIHNGaWVsZFZhbHVlKSB7XG5cdFx0b0Zvcm1FbGVtZW50Lmluc2VydChuZXcgRWxlbWVudCgnaW5wdXQnLCB7IHR5cGU6ICdoaWRkZW4nLCBuYW1lOiBzRmllbGROYW1lLCB2YWx1ZTogc0ZpZWxkVmFsdWUgfSkpO1xuXHR9O1xuXG5cdHJldHVybiBQeWRpb0RhdGFNb2RlbDtcbn0pKF9sYW5nT2JzZXJ2YWJsZTJbJ2RlZmF1bHQnXSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFB5ZGlvRGF0YU1vZGVsO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfdXRpbFhNTFV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9YTUxVdGlscycpO1xuXG52YXIgX3V0aWxYTUxVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsWE1MVXRpbHMpO1xuXG52YXIgX2h0dHBQeWRpb0FwaSA9IHJlcXVpcmUoJy4uL2h0dHAvUHlkaW9BcGknKTtcblxudmFyIF9odHRwUHlkaW9BcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cFB5ZGlvQXBpKTtcblxudmFyIF9Vc2VyID0gcmVxdWlyZSgnLi9Vc2VyJyk7XG5cbnZhciBfVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Vc2VyKTtcblxudmFyIF9sYW5nTG9nZ2VyID0gcmVxdWlyZSgnLi4vbGFuZy9Mb2dnZXInKTtcblxudmFyIF9sYW5nTG9nZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdMb2dnZXIpO1xuXG52YXIgX2h0dHBSZXNvdXJjZXNNYW5hZ2VyID0gcmVxdWlyZSgnLi4vaHR0cC9SZXNvdXJjZXNNYW5hZ2VyJyk7XG5cbnZhciBfaHR0cFJlc291cmNlc01hbmFnZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cFJlc291cmNlc01hbmFnZXIpO1xuXG52YXIgUmVnaXN0cnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFJlZ2lzdHJ5KHB5ZGlvT2JqZWN0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZWdpc3RyeSk7XG5cbiAgICAgICAgdGhpcy5fcmVnaXN0cnkgPSBudWxsO1xuICAgICAgICB0aGlzLl9leHRlbnNpb25zUmVnaXN0cnkgPSB7IFwiZWRpdG9yXCI6IFtdLCBcInVwbG9hZGVyXCI6IFtdIH07XG4gICAgICAgIHRoaXMuX3Jlc291cmNlc1JlZ2lzdHJ5ID0ge307XG4gICAgICAgIHRoaXMuX3B5ZGlvT2JqZWN0ID0gcHlkaW9PYmplY3Q7XG4gICAgICAgIHRoaXMuX3hQYXRoTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9nbG9iYWxMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGFyc2UgWE1MIFN0cmluZyBkaXJlY3RseVxuICAgICAqIEBwYXJhbSBzXG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUubG9hZEZyb21TdHJpbmcgPSBmdW5jdGlvbiBsb2FkRnJvbVN0cmluZyhzKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWxlRXh0ZW5zaW9ucykgdGhpcy5fZmlsZUV4dGVuc2lvbnMgPSBudWxsO1xuICAgICAgICB0aGlzLl9yZWdpc3RyeSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10ucGFyc2VYbWwocykuZG9jdW1lbnRFbGVtZW50O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmxvYWRYTUwgPSBmdW5jdGlvbiBsb2FkWE1MKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5fZmlsZUV4dGVuc2lvbnMpIHRoaXMuX2ZpbGVFeHRlbnNpb25zID0gbnVsbDtcbiAgICAgICAgdGhpcy5fcmVnaXN0cnkgPSBkb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuX3B5ZGlvT2JqZWN0LmZpcmUoXCJyZWdpc3RyeV9sb2FkZWRcIiwgdGhpcy5fcmVnaXN0cnkpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHJlZ2lzdHJ5IGZyb20gc2VydmVyXG4gICAgICogQHBhcmFtIHhQYXRoXG4gICAgICogQHBhcmFtIGNvbXBsZXRlRnVuY1xuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5SWRcbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5sb2FkID0gZnVuY3Rpb24gbG9hZCgpIHtcbiAgICAgICAgdmFyIHhQYXRoID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBjb21wbGV0ZUZ1bmMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgcmVwb3NpdG9yeUlkID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICBpZiAodGhpcy5fZ2xvYmFsTG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2dsb2JhbExvYWRpbmcgPSB0cnVlO1xuICAgICAgICBfaHR0cFB5ZGlvQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKS5nZXRPclVwZGF0ZUp3dCgpLnRoZW4oZnVuY3Rpb24gKGp3dCkge1xuICAgICAgICAgICAgdmFyIF9weWRpb09iamVjdCA9IF90aGlzLl9weWRpb09iamVjdDtcbiAgICAgICAgICAgIHZhciB1c2VyID0gX3B5ZGlvT2JqZWN0LnVzZXI7XG4gICAgICAgICAgICB2YXIgUGFyYW1ldGVycyA9IF9weWRpb09iamVjdC5QYXJhbWV0ZXJzO1xuXG4gICAgICAgICAgICB2YXIgdXJsID0gUGFyYW1ldGVycy5nZXQoJ0VORFBPSU5UX1JFU1RfQVBJJykgKyAnL2Zyb250ZW5kL3N0YXRlLyc7XG4gICAgICAgICAgICB2YXIgaGVhZGVycyA9IHt9O1xuICAgICAgICAgICAgaWYgKGp3dCkge1xuICAgICAgICAgICAgICAgIGhlYWRlcnMgPSB7IEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIGp3dCB9O1xuICAgICAgICAgICAgICAgIGlmICh1c2VyIHx8IHJlcG9zaXRvcnlJZCkge1xuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gJz93cz0nICsgKHJlcG9zaXRvcnlJZCA/IHJlcG9zaXRvcnlJZCA6IHVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoUGFyYW1ldGVycy5oYXMoJ01JTklTSVRFJykpIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzW1wiWC1QeWRpby1NaW5pc2l0ZVwiXSA9IFBhcmFtZXRlcnMuZ2V0KCdNSU5JU0lURScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVzZXIgJiYgdXNlci5nZXRQcmVmZXJlbmNlKCdsYW5nJykpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFuZyA9IHVzZXIuZ2V0UHJlZmVyZW5jZSgnbGFuZycpO1xuICAgICAgICAgICAgICAgIGlmICh1cmwuaW5kZXhPZignPycpID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gJyZsYW5nPScgKyBsYW5nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHVybCArPSAnP2xhbmc9JyArIGxhbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2luZG93LmZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVyc1xuICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5fZ2xvYmFsTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLnRleHQoKS50aGVuKGZ1bmN0aW9uICh0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLl9yZWdpc3RyeSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10ucGFyc2VYbWwodGV4dCkuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGxldGVGdW5jKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZUZ1bmMoX3RoaXMuX3JlZ2lzdHJ5KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLl9weWRpb09iamVjdC5maXJlKFwicmVnaXN0cnlfbG9hZGVkXCIsIF90aGlzLl9yZWdpc3RyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuX2dsb2JhbExvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSW5zZXJ0cyBhIGRvY3VtZW50IGZyYWdtZW50IHJldHJpZXZlZCBmcm9tIHNlcnZlciBpbnNpZGUgdGhlIGZ1bGwgdHJlZS5cbiAgICAgKiBUaGUgbm9kZSBtdXN0IGNvbnRhaW5zIHRoZSB4UGF0aCBhdHRyaWJ1dGUgdG8gbG9jYXRlIGl0IGluc2lkZSB0aGUgcmVnaXN0cnkuXG4gICAgICogQHBhcmFtIGRvY3VtZW50RWxlbWVudCBET01Ob2RlXG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUucmVmcmVzaFhtbFJlZ2lzdHJ5UGFydCA9IGZ1bmN0aW9uIHJlZnJlc2hYbWxSZWdpc3RyeVBhcnQoZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAgIHZhciB4UGF0aCA9IGRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ4UGF0aFwiKTtcbiAgICAgICAgdmFyIGV4aXN0aW5nTm9kZSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHRoaXMuX3JlZ2lzdHJ5LCB4UGF0aCk7XG4gICAgICAgIHZhciBwYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZXhpc3RpbmdOb2RlICYmIGV4aXN0aW5nTm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBwYXJlbnROb2RlID0gZXhpc3RpbmdOb2RlLnBhcmVudE5vZGU7XG4gICAgICAgICAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKGV4aXN0aW5nTm9kZSk7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnRFbGVtZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLmFwcGVuZENoaWxkKGRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkLmNsb25lTm9kZSh0cnVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoeFBhdGguaW5kZXhPZihcIi9cIikgPiAtMSkge1xuICAgICAgICAgICAgLy8gdHJ5IHNlbGVjdGluZyBwYXJlbnROb2RlXG4gICAgICAgICAgICB2YXIgcGFyZW50UGF0aCA9IHhQYXRoLnN1YnN0cmluZygwLCB4UGF0aC5sYXN0SW5kZXhPZihcIi9cIikpO1xuICAgICAgICAgICAgcGFyZW50Tm9kZSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHRoaXMuX3JlZ2lzdHJ5LCBwYXJlbnRQYXRoKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICYmIGRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZC5jbG9uZU5vZGUodHJ1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkKSB0aGlzLl9yZWdpc3RyeS5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZC5jbG9uZU5vZGUodHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3B5ZGlvT2JqZWN0LmZpcmUoXCJyZWdpc3RyeV9wYXJ0X2xvYWRlZFwiLCB4UGF0aCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZSB0aGUgWE1MIGFuc3dlciB0byBhIG5ldyBVc2VyIG9iamVjdFxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLnBhcnNlVXNlciA9IGZ1bmN0aW9uIHBhcnNlVXNlcigpIHtcbiAgICAgICAgdmFyIHVzZXIgPSBudWxsLFxuICAgICAgICAgICAgdXNlck5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLl9yZWdpc3RyeSkge1xuICAgICAgICAgICAgdXNlck5vZGUgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh0aGlzLl9yZWdpc3RyeSwgXCJ1c2VyXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VyTm9kZSkge1xuICAgICAgICAgICAgdmFyIHVzZXJJZCA9IHVzZXJOb2RlLmdldEF0dHJpYnV0ZSgnaWQnKTtcbiAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IHVzZXJOb2RlLmNoaWxkTm9kZXM7XG4gICAgICAgICAgICBpZiAodXNlcklkKSB7XG4gICAgICAgICAgICAgICAgdXNlciA9IG5ldyBfVXNlcjJbJ2RlZmF1bHQnXSh1c2VySWQsIGNoaWxkcmVuLCB0aGlzLl9weWRpb09iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXI7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMge0VsZW1lbnR8KnxudWxsfVxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmdldFhNTCA9IGZ1bmN0aW9uIGdldFhNTCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIEV4dGVuc2lvbiBpbml0aWFsaXNhdGlvbiBub2RlcyAoYWN0aXZlQ29uZGl0aW9uLCBvbkluaXQsIGV0YyksIHBhcnNlc1xuICAgICAqIHRoZSBYTUwgYW5kIGV4ZWN1dGUgSlMuXG4gICAgICogQHBhcmFtIHhtbE5vZGUge0VsZW1lbnR9IFRoZSBleHRlbnNpb24gbm9kZVxuICAgICAqIEBwYXJhbSBleHRlbnNpb25EZWZpbml0aW9uIE9iamVjdCBJbmZvcm1hdGlvbiBhbHJlYWR5IGNvbGxlY3RlZCBhYm91dCB0aGlzIGV4dGVuc2lvblxuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5pbml0RXh0ZW5zaW9uID0gZnVuY3Rpb24gaW5pdEV4dGVuc2lvbih4bWxOb2RlLCBleHRlbnNpb25EZWZpbml0aW9uKSB7XG4gICAgICAgIHZhciBhY3RpdmVDb25kaXRpb24gPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh4bWxOb2RlLCAncHJvY2Vzc2luZy9hY3RpdmVDb25kaXRpb24nKTtcbiAgICAgICAgaWYgKGFjdGl2ZUNvbmRpdGlvbiAmJiBhY3RpdmVDb25kaXRpb24uZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB2YXIgZnVuYyA9IG5ldyBGdW5jdGlvbihhY3RpdmVDb25kaXRpb24uZmlyc3RDaGlsZC5ub2RlVmFsdWUudHJpbSgpKTtcbiAgICAgICAgICAgICAgICBpZiAoZnVuYygpID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfVxuICAgICAgICBpZiAoeG1sTm9kZS5ub2RlTmFtZSA9PT0gJ2VkaXRvcicpIHtcblxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihleHRlbnNpb25EZWZpbml0aW9uLCB7XG4gICAgICAgICAgICAgICAgb3BlbmFibGU6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwib3BlbmFibGVcIikgPT09IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIG1vZGFsT25seTogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJtb2RhbE9ubHlcIikgPT09IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHByZXZpZXdQcm92aWRlcjogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJwcmV2aWV3UHJvdmlkZXJcIikgPT09IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIG9yZGVyOiB4bWxOb2RlLmdldEF0dHJpYnV0ZShcIm9yZGVyXCIpID8gcGFyc2VJbnQoeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJvcmRlclwiKSkgOiAwLFxuICAgICAgICAgICAgICAgIGZvcm1JZDogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJmb3JtSWRcIikgfHwgbnVsbCxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLl9weWRpb09iamVjdC5NZXNzYWdlSGFzaFt4bWxOb2RlLmdldEF0dHJpYnV0ZShcInRleHRcIildLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLl9weWRpb09iamVjdC5NZXNzYWdlSGFzaFt4bWxOb2RlLmdldEF0dHJpYnV0ZShcInRpdGxlXCIpXSxcbiAgICAgICAgICAgICAgICBpY29uOiB4bWxOb2RlLmdldEF0dHJpYnV0ZShcImljb25cIiksXG4gICAgICAgICAgICAgICAgaWNvbl9jbGFzczogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJpY29uQ2xhc3NcIiksXG4gICAgICAgICAgICAgICAgZWRpdG9yQWN0aW9uczogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJhY3Rpb25zXCIpLFxuICAgICAgICAgICAgICAgIGVkaXRvckNsYXNzOiB4bWxOb2RlLmdldEF0dHJpYnV0ZShcImNsYXNzTmFtZVwiKSxcbiAgICAgICAgICAgICAgICBtaW1lczogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJtaW1lc1wiKS5zcGxpdChcIixcIiksXG4gICAgICAgICAgICAgICAgd3JpdGU6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwid3JpdGVcIikgJiYgeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJ3cml0ZVwiKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgY2FuV3JpdGU6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwiY2FuV3JpdGVcIikgJiYgeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJjYW5Xcml0ZVwiKSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHhtbE5vZGUubm9kZU5hbWUgPT09ICd1cGxvYWRlcicpIHtcblxuICAgICAgICAgICAgdmFyIHRoID0gdGhpcy5fcHlkaW9PYmplY3QuUGFyYW1ldGVycy5nZXQoJ3RoZW1lJyk7XG4gICAgICAgICAgICB2YXIgY2xpZW50Rm9ybSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHhtbE5vZGUsICdwcm9jZXNzaW5nL2NsaWVudEZvcm1bQHRoZW1lPVwiJyArIHRoICsgJ1wiXScpO1xuICAgICAgICAgICAgaWYgKCFjbGllbnRGb3JtKSB7XG4gICAgICAgICAgICAgICAgY2xpZW50Rm9ybSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHhtbE5vZGUsICdwcm9jZXNzaW5nL2NsaWVudEZvcm0nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjbGllbnRGb3JtICYmIGNsaWVudEZvcm0uZ2V0QXR0cmlidXRlKCdtb2R1bGUnKSkge1xuICAgICAgICAgICAgICAgIGV4dGVuc2lvbkRlZmluaXRpb24ubW9kdWxlTmFtZSA9IGNsaWVudEZvcm0uZ2V0QXR0cmlidXRlKCdtb2R1bGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh4bWxOb2RlLmdldEF0dHJpYnV0ZShcIm9yZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uRGVmaW5pdGlvbi5vcmRlciA9IHBhcnNlSW50KHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwib3JkZXJcIikpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleHRlbnNpb25EZWZpbml0aW9uLm9yZGVyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBleHRlbnNpb25PbkluaXQgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh4bWxOb2RlLCAncHJvY2Vzc2luZy9leHRlbnNpb25PbkluaXQnKTtcbiAgICAgICAgICAgIGlmIChleHRlbnNpb25PbkluaXQgJiYgZXh0ZW5zaW9uT25Jbml0LmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBAVE9ETzogVEhJUyBXSUxMIExJS0VMWSBUUklHR0VSIFBST1RPVFlQRSBDT0RFXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoZXh0ZW5zaW9uT25Jbml0LmZpcnN0Q2hpbGQubm9kZVZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmVycm9yKFwiSWdub3JpbmcgRXJyb3IgaW4gZXh0ZW5zaW9uT25Jbml0IGNvZGU6XCIpO1xuICAgICAgICAgICAgICAgICAgICBfbGFuZ0xvZ2dlcjJbJ2RlZmF1bHQnXS5lcnJvcihleHRlbnNpb25PbkluaXQuZmlyc3RDaGlsZC5ub2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBfbGFuZ0xvZ2dlcjJbJ2RlZmF1bHQnXS5lcnJvcihlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBkaWFsb2dPbk9wZW4gPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh4bWxOb2RlLCAncHJvY2Vzc2luZy9kaWFsb2dPbk9wZW4nKTtcbiAgICAgICAgICAgIGlmIChkaWFsb2dPbk9wZW4gJiYgZGlhbG9nT25PcGVuLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICBleHRlbnNpb25EZWZpbml0aW9uLmRpYWxvZ09uT3BlbiA9IGRpYWxvZ09uT3Blbi5maXJzdENoaWxkLm5vZGVWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBkaWFsb2dPbkNvbXBsZXRlID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUoeG1sTm9kZSwgJ3Byb2Nlc3NpbmcvZGlhbG9nT25Db21wbGV0ZScpO1xuICAgICAgICAgICAgaWYgKGRpYWxvZ09uQ29tcGxldGUgJiYgZGlhbG9nT25Db21wbGV0ZS5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uRGVmaW5pdGlvbi5kaWFsb2dPbkNvbXBsZXRlID0gZGlhbG9nT25Db21wbGV0ZS5maXJzdENoaWxkLm5vZGVWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVmcmVzaCB0aGUgY3VycmVudGx5IGFjdGl2ZSBleHRlbnNpb25zXG4gICAgICogRXh0ZW5zaW9ucyBhcmUgZWRpdG9ycyBhbmQgdXBsb2FkZXJzIGZvciB0aGUgbW9tZW50LlxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLnJlZnJlc2hFeHRlbnNpb25zUmVnaXN0cnkgPSBmdW5jdGlvbiByZWZyZXNoRXh0ZW5zaW9uc1JlZ2lzdHJ5KCkge1xuXG4gICAgICAgIHRoaXMuX2V4dGVuc2lvbnNSZWdpc3RyeSA9IHsgXCJlZGl0b3JcIjogW10sIFwidXBsb2FkZXJcIjogW10gfTtcbiAgICAgICAgdmFyIGV4dGVuc2lvbnMgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0Tm9kZXModGhpcy5fcmVnaXN0cnksIFwicGx1Z2lucy9lZGl0b3J8cGx1Z2lucy91cGxvYWRlclwiKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHRlbnNpb25zLmxlbmd0aDsgaSsrKSB7XG5cbiAgICAgICAgICAgIHZhciBleHRlbnNpb25EZWZpbml0aW9uID0ge1xuICAgICAgICAgICAgICAgIGlkOiBleHRlbnNpb25zW2ldLmdldEF0dHJpYnV0ZShcImlkXCIpLFxuICAgICAgICAgICAgICAgIHhtbE5vZGU6IGV4dGVuc2lvbnNbaV0sXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzTWFuYWdlcjogbmV3IF9odHRwUmVzb3VyY2VzTWFuYWdlcjJbJ2RlZmF1bHQnXSgpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VzUmVnaXN0cnlbZXh0ZW5zaW9uRGVmaW5pdGlvbi5pZF0gPSBleHRlbnNpb25EZWZpbml0aW9uLnJlc291cmNlc01hbmFnZXI7XG4gICAgICAgICAgICB2YXIgcmVzb3VyY2VOb2RlcyA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3ROb2RlcyhleHRlbnNpb25zW2ldLCBcImNsaWVudF9zZXR0aW5ncy9yZXNvdXJjZXN8ZGVwZW5kZW5jaWVzfGNsaWVudEZvcm1cIik7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJlc291cmNlTm9kZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBleHRlbnNpb25EZWZpbml0aW9uLnJlc291cmNlc01hbmFnZXIubG9hZEZyb21YbWxOb2RlKHJlc291cmNlTm9kZXNbal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdEV4dGVuc2lvbihleHRlbnNpb25zW2ldLCBleHRlbnNpb25EZWZpbml0aW9uKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4dGVuc2lvbnNSZWdpc3RyeVtleHRlbnNpb25zW2ldLm5vZGVOYW1lXS5wdXNoKGV4dGVuc2lvbkRlZmluaXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIF9odHRwUmVzb3VyY2VzTWFuYWdlcjJbJ2RlZmF1bHQnXS5sb2FkQXV0b0xvYWRSZXNvdXJjZXModGhpcy5fcmVnaXN0cnkpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIHRoZSBjdXJyZW50bHkgYWN0aXZlIGV4dGVuc2lvbnMgYnkgdHlwZVxuICAgICAqIEBwYXJhbSBleHRlbnNpb25UeXBlIFN0cmluZyBcImVkaXRvclwiIG9yIFwidXBsb2FkZXJcIlxuICAgICAqIEByZXR1cm5zIHthcnJheX1cbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRBY3RpdmVFeHRlbnNpb25CeVR5cGUgPSBmdW5jdGlvbiBnZXRBY3RpdmVFeHRlbnNpb25CeVR5cGUoZXh0ZW5zaW9uVHlwZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXh0ZW5zaW9uc1JlZ2lzdHJ5W2V4dGVuc2lvblR5cGVdO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIGEgZ2l2ZW4gZWRpdG9yIGJ5IGl0cyBpZFxuICAgICAqIEBwYXJhbSBlZGl0b3JJZCBTdHJpbmdcbiAgICAgKiBAcmV0dXJucyBBYnN0cmFjdEVkaXRvclxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmZpbmRFZGl0b3JCeUlkID0gZnVuY3Rpb24gZmluZEVkaXRvckJ5SWQoZWRpdG9ySWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dGVuc2lvbnNSZWdpc3RyeS5lZGl0b3IuZmluZChmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgIHJldHVybiBlbC5pZCA9PSBlZGl0b3JJZDtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZpbmQgRWRpdG9ycyB0aGF0IGNhbiBoYW5kbGUgYSBnaXZlbiBtaW1lIHR5cGVcbiAgICAgKiBAcGFyYW0gbWltZSBTdHJpbmdcbiAgICAgKiBAcmV0dXJucyBBYnN0cmFjdEVkaXRvcltdXG4gICAgICogQHBhcmFtIHJlc3RyaWN0VG9QcmV2aWV3UHJvdmlkZXJzXG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUuZmluZEVkaXRvcnNGb3JNaW1lID0gZnVuY3Rpb24gZmluZEVkaXRvcnNGb3JNaW1lKG1pbWUsIHJlc3RyaWN0VG9QcmV2aWV3UHJvdmlkZXJzKSB7XG5cbiAgICAgICAgdmFyIHVzZXIgPSB0aGlzLl9weWRpb09iamVjdC51c2VyO1xuICAgICAgICB2YXIgZWRpdG9ycyA9IFtdLFxuICAgICAgICAgICAgY2hlY2tXcml0ZSA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh1c2VyICE9IG51bGwgJiYgIXVzZXIuY2FuV3JpdGUoKSkge1xuICAgICAgICAgICAgY2hlY2tXcml0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZXh0ZW5zaW9uc1JlZ2lzdHJ5LmVkaXRvci5mb3JFYWNoKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgICAgaWYgKGVsLm1pbWVzLmluZGV4T2YobWltZSkgIT09IC0xIHx8IGVsLm1pbWVzLmluZGV4T2YoJyonKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdHJpY3RUb1ByZXZpZXdQcm92aWRlcnMgJiYgIWVsLnByZXZpZXdQcm92aWRlcikgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmICghY2hlY2tXcml0ZSB8fCAhZWwud3JpdGUpIGVkaXRvcnMucHVzaChlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZWRpdG9ycy5sZW5ndGggJiYgZWRpdG9ycy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBlZGl0b3JzID0gZWRpdG9ycy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChhLm9yZGVyIHx8IDApIC0gKGIub3JkZXIgfHwgMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWRpdG9ycztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlciB0aGUgbG9hZCBtZXRob2Qgb2YgdGhlIHJlc291cmNlc01hbmFnZXIuXG4gICAgICogQHBhcmFtIHJlc291cmNlc01hbmFnZXIgUmVzb3VyY2VzTWFuYWdlclxuICAgICAqIEBwYXJhbSBjYWxsYmFjayB0cmlnZ2VyZWQgYWZ0ZXIgSlMgbG9hZGVkXG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUubG9hZEVkaXRvclJlc291cmNlcyA9IGZ1bmN0aW9uIGxvYWRFZGl0b3JSZXNvdXJjZXMocmVzb3VyY2VzTWFuYWdlciwgY2FsbGJhY2spIHtcbiAgICAgICAgcmVzb3VyY2VzTWFuYWdlci5sb2FkKHRoaXMuX3Jlc291cmNlc1JlZ2lzdHJ5LCBmYWxzZSwgY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwbHVnaW5RdWVyeVxuICAgICAqIEByZXR1cm5zIHtNYXB9XG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UGx1Z2luQ29uZmlncyA9IGZ1bmN0aW9uIGdldFBsdWdpbkNvbmZpZ3MocGx1Z2luUXVlcnkpIHtcblxuICAgICAgICB2YXIgeHBhdGggPSAncGx1Z2lucy8qW0BpZD1cImNvcmUuJyArIHBsdWdpblF1ZXJ5ICsgJ1wiXS9wbHVnaW5fY29uZmlncy9wcm9wZXJ0eSB8IHBsdWdpbnMvKltAaWQ9XCInICsgcGx1Z2luUXVlcnkgKyAnXCJdL3BsdWdpbl9jb25maWdzL3Byb3BlcnR5JztcbiAgICAgICAgaWYgKHBsdWdpblF1ZXJ5LmluZGV4T2YoJy4nKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHhwYXRoID0gJ3BsdWdpbnMvJyArIHBsdWdpblF1ZXJ5ICsgJy9wbHVnaW5fY29uZmlncy9wcm9wZXJ0eSB8JyArIHhwYXRoO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcm9wZXJ0aWVzID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdE5vZGVzKHRoaXMuX3JlZ2lzdHJ5LCB4cGF0aCk7XG4gICAgICAgIHZhciBjb25maWdzID0gbmV3IE1hcCgpO1xuICAgICAgICBwcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKHByb3BOb2RlKSB7XG4gICAgICAgICAgICBjb25maWdzLnNldChwcm9wTm9kZS5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpLCBKU09OLnBhcnNlKHByb3BOb2RlLmZpcnN0Q2hpbGQubm9kZVZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY29uZmlncztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGx1Z2luSWRcbiAgICAgKiBAcGFyYW0gcGFyYW1OYW1lXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5nZXREZWZhdWx0SW1hZ2VGcm9tUGFyYW1ldGVycyA9IGZ1bmN0aW9uIGdldERlZmF1bHRJbWFnZUZyb21QYXJhbWV0ZXJzKHBsdWdpbklkLCBwYXJhbU5hbWUpIHtcbiAgICAgICAgdmFyIG5vZGUgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh0aGlzLl9yZWdpc3RyeSwgXCJwbHVnaW5zLypbQGlkPSdcIiArIHBsdWdpbklkICsgXCInXS9zZXJ2ZXJfc2V0dGluZ3MvZ2xvYmFsX3BhcmFtW0BuYW1lPSdcIiArIHBhcmFtTmFtZSArIFwiJ11cIik7XG4gICAgICAgIGlmICghbm9kZSkgcmV0dXJuICcnO1xuICAgICAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUoXCJkZWZhdWx0SW1hZ2VcIikgfHwgJyc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHR5cGVcbiAgICAgKiBAcGFyYW0gbmFtZVxuICAgICAqIEByZXR1cm5zIHtib29sfVxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmhhc1BsdWdpbk9mVHlwZSA9IGZ1bmN0aW9uIGhhc1BsdWdpbk9mVHlwZSh0eXBlLCBuYW1lKSB7XG4gICAgICAgIHZhciBub2RlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAobmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgICBub2RlID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUodGhpcy5fcmVnaXN0cnksICdwbHVnaW5zL3BsdWdpbltjb250YWlucyhAaWQsIFwiJyArIHR5cGUgKyAnLlwiKV0gfCBwbHVnaW5zLycgKyB0eXBlICsgJ1tAaWRdJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUodGhpcy5fcmVnaXN0cnksICdwbHVnaW5zL3BsdWdpbltAaWQ9XCInICsgdHlwZSArICcuJyArIG5hbWUgKyAnXCJdIHwgcGx1Z2lucy8nICsgdHlwZSArICdbQGlkPVwiJyArIHR5cGUgKyAnLicgKyBuYW1lICsgJ1wiXScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlICE9PSB1bmRlZmluZWQ7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge01hcHxNYXA8c3RyaW5nLCBvYmplY3Q+fVxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmdldEZpbGVzRXh0ZW5zaW9ucyA9IGZ1bmN0aW9uIGdldEZpbGVzRXh0ZW5zaW9ucygpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMuX2ZpbGVFeHRlbnNpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmlsZUV4dGVuc2lvbnM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsZUV4dGVuc2lvbnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHZhciBub2RlcyA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3ROb2Rlcyh0aGlzLl9yZWdpc3RyeSwgJ2V4dGVuc2lvbnMvKicpO1xuICAgICAgICBub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgICAgICBfdGhpczIuX2ZpbGVFeHRlbnNpb25zLnNldChub2RlLmdldEF0dHJpYnV0ZSgnbWltZScpLCB7IG1lc3NhZ2VJZDogbm9kZS5nZXRBdHRyaWJ1dGUoJ21lc3NhZ2VJZCcpLCBmb250SWNvbjogbm9kZS5nZXRBdHRyaWJ1dGUoJ2ZvbnQnKSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlRXh0ZW5zaW9ucztcbiAgICB9O1xuXG4gICAgcmV0dXJuIFJlZ2lzdHJ5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVnaXN0cnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9QeWRpbyA9IHJlcXVpcmUoJy4uL1B5ZGlvJyk7XG5cbnZhciBfUHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUHlkaW8pO1xuXG52YXIgX2h0dHBSZXNvdXJjZXNNYW5hZ2VyID0gcmVxdWlyZSgnLi4vaHR0cC9SZXNvdXJjZXNNYW5hZ2VyJyk7XG5cbnZhciBfaHR0cFJlc291cmNlc01hbmFnZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cFJlc291cmNlc01hbmFnZXIpO1xuXG52YXIgX0NlbGxNb2RlbCA9IHJlcXVpcmUoJy4vQ2VsbE1vZGVsJyk7XG5cbnZhciBfQ2VsbE1vZGVsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0NlbGxNb2RlbCk7XG5cbi8qKiBcbiAqIENvbnRhaW5lciBmb3IgYSBSZXBvc2l0b3J5LlxuICovXG5cbnZhciBSZXBvc2l0b3J5ID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICogQHBhcmFtIGlkIFN0cmluZ1xuICAgKiBAcGFyYW0geG1sRGVmIFhNTE5vZGVcbiAgICovXG5cbiAgZnVuY3Rpb24gUmVwb3NpdG9yeShpZCwgeG1sRGVmKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlcG9zaXRvcnkpO1xuXG4gICAgdGhpcy5sYWJlbCA9ICcnO1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmFjY2Vzc1R5cGUgPSAnJztcbiAgICB0aGlzLm5vZGVQcm92aWRlckRlZiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFsbG93Q3Jvc3NSZXBvc2l0b3J5Q29weSA9IGZhbHNlO1xuICAgIHRoaXMudXNlckVkaXRhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5zbHVnID0gJyc7XG4gICAgdGhpcy5vd25lciA9ICcnO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSAnJztcbiAgICB0aGlzLl9oYXNDb250ZW50RmlsdGVyID0gZmFsc2U7XG4gICAgdGhpcy5faGFzVXNlclNjb3BlID0gZmFsc2U7XG4gICAgdGhpcy5fcmVwb3NpdG9yeVR5cGUgPSAnbG9jYWwnO1xuICAgIHRoaXMuX2FjY2Vzc1N0YXR1cyA9IG51bGw7XG4gICAgdGhpcy5fbGFzdENvbm5lY3Rpb24gPSBudWxsO1xuICAgIHRoaXMuaWNvbiA9ICcnO1xuICAgIHRoaXMucmVzb3VyY2VzTWFuYWdlciA9IG5ldyBfaHR0cFJlc291cmNlc01hbmFnZXIyWydkZWZhdWx0J10oKTtcbiAgICB0aGlzLmxvYWRlZENlbGwgPSBudWxsO1xuICAgIGlmICh4bWxEZWYpIHRoaXMubG9hZEZyb21YbWwoeG1sRGVmKTtcbiAgfVxuXG4gIFJlcG9zaXRvcnkuaXNJbnRlcm5hbCA9IGZ1bmN0aW9uIGlzSW50ZXJuYWwoZHJpdmVyTmFtZSkge1xuICAgIHJldHVybiBkcml2ZXJOYW1lID09PSAnc2V0dGluZ3MnIHx8IGRyaXZlck5hbWUgPT09ICdob21lcGFnZSc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIFN0cmluZ1xuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXRJZCA9IGZ1bmN0aW9uIGdldElkKCkge1xuICAgIHJldHVybiB0aGlzLmlkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0U2hhcmVJZCA9IGZ1bmN0aW9uIGdldFNoYXJlSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQucmVwbGFjZSgvb2NzX3JlbW90ZV9zaGFyZV8vLCAnJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q2VsbE1vZGVsPn1cbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuYXNDZWxsID0gZnVuY3Rpb24gYXNDZWxsKCkge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBpZiAoIXRoaXMuZ2V0T3duZXIoKSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9hZGVkQ2VsbCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmxvYWRlZENlbGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX3JldCA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBjZWxsID0gbmV3IF9DZWxsTW9kZWwyWydkZWZhdWx0J10oKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2OiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBjZWxsLmxvYWQoX3RoaXMuZ2V0SWQoKSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgIF90aGlzLmxvYWRlZENlbGwgPSBjZWxsO1xuICAgICAgICAgICAgICByZXNvbHZlKGNlbGwpO1xuICAgICAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgICAgICByZWplY3QocmVhc29uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9KSgpO1xuXG4gICAgICBpZiAodHlwZW9mIF9yZXQgPT09ICdvYmplY3QnKSByZXR1cm4gX3JldC52O1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMgU3RyaW5nXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmdldExhYmVsID0gZnVuY3Rpb24gZ2V0TGFiZWwoKSB7XG4gICAgaWYgKHRoaXMuYWNjZXNzVHlwZSA9PT0gJ2hvbWVwYWdlJykge1xuICAgICAgcmV0dXJuIF9QeWRpbzJbJ2RlZmF1bHQnXS5nZXRNZXNzYWdlcygpWyd1c2VyX2hvbWUudGl0bGUnXSB8fCAnSG9tZXBhZ2UnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hY2Nlc3NUeXBlID09PSAnc2V0dGluZ3MnKSB7XG4gICAgICByZXR1cm4gX1B5ZGlvMlsnZGVmYXVsdCddLmdldE1lc3NhZ2VzKClbJzE2NSddIHx8ICdTZXR0aW5ncyc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbGFiZWwgU3RyaW5nXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLnNldExhYmVsID0gZnVuY3Rpb24gc2V0TGFiZWwobGFiZWwpIHtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gIH07XG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0TGV0dGVyc0JhZGdlID0gZnVuY3Rpb24gZ2V0TGV0dGVyc0JhZGdlKCkge1xuICAgIGlmICghdGhpcy5sYWJlbCkgcmV0dXJuICcnO1xuICAgIHJldHVybiB0aGlzLmxhYmVsLnNwbGl0KFwiIFwiKS5tYXAoZnVuY3Rpb24gKHdvcmQpIHtcbiAgICAgIHJldHVybiB3b3JkLnN1YnN0cigwLCAxKTtcbiAgICB9KS5zbGljZSgwLCAyKS5qb2luKFwiXCIpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFN0cmluZ1xuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXREZXNjcmlwdGlvbiA9IGZ1bmN0aW9uIGdldERlc2NyaXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0SWNvbiA9IGZ1bmN0aW9uIGdldEljb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaWNvbjtcbiAgfTtcblxuICAvKipcbiAgICogQHBhcmFtIGljb24gU3RyaW5nXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLnNldEljb24gPSBmdW5jdGlvbiBzZXRJY29uKGljb24pIHtcbiAgICB0aGlzLmljb24gPSBpY29uO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFN0cmluZ1xuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXRPd25lciA9IGZ1bmN0aW9uIGdldE93bmVyKCkge1xuICAgIHJldHVybiB0aGlzLm93bmVyO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0QWNjZXNzVHlwZSA9IGZ1bmN0aW9uIGdldEFjY2Vzc1R5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzVHlwZTtcbiAgfTtcblxuICAvKipcbiAgICogQHBhcmFtIGFjY2VzcyBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuc2V0QWNjZXNzVHlwZSA9IGZ1bmN0aW9uIHNldEFjY2Vzc1R5cGUoYWNjZXNzKSB7XG4gICAgdGhpcy5hY2Nlc3NUeXBlID0gYWNjZXNzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUubG9hZFJlc291cmNlcyA9IGZ1bmN0aW9uIGxvYWRSZXNvdXJjZXMoKSB7XG4gICAgdGhpcy5yZXNvdXJjZXNNYW5hZ2VyLmxvYWQobnVsbCwgdHJ1ZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIE9iamVjdFxuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXROb2RlUHJvdmlkZXJEZWYgPSBmdW5jdGlvbiBnZXROb2RlUHJvdmlkZXJEZWYoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZVByb3ZpZGVyRGVmO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gc2x1ZyBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuc2V0U2x1ZyA9IGZ1bmN0aW9uIHNldFNsdWcoc2x1Zykge1xuICAgIHRoaXMuc2x1ZyA9IHNsdWc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIFN0cmluZ1xuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXRTbHVnID0gZnVuY3Rpb24gZ2V0U2x1ZygpIHtcbiAgICByZXR1cm4gdGhpcy5zbHVnO1xuICB9O1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmdldE92ZXJsYXkgPSBmdW5jdGlvbiBnZXRPdmVybGF5KCkge1xuICAgIHJldHVybiB0aGlzLmdldE93bmVyKCkgPyBfaHR0cFJlc291cmNlc01hbmFnZXIyWydkZWZhdWx0J10ucmVzb2x2ZUltYWdlU291cmNlKFwic2hhcmVkLnBuZ1wiLCBcIm92ZXJsYXlzL0lDT05fU0laRVwiLCA4KSA6IFwiXCI7XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5oYXNDb250ZW50RmlsdGVyID0gZnVuY3Rpb24gaGFzQ29udGVudEZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5faGFzQ29udGVudEZpbHRlcjtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmhhc1VzZXJTY29wZSA9IGZ1bmN0aW9uIGhhc1VzZXJTY29wZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faGFzVXNlclNjb3BlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXRSZXBvc2l0b3J5VHlwZSA9IGZ1bmN0aW9uIGdldFJlcG9zaXRvcnlUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9yZXBvc2l0b3J5VHlwZTtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0QWNjZXNzU3RhdHVzID0gZnVuY3Rpb24gZ2V0QWNjZXNzU3RhdHVzKCkge1xuICAgIHJldHVybiB0aGlzLl9hY2Nlc3NTdGF0dXM7XG4gIH07XG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuc2V0QWNjZXNzU3RhdHVzID0gZnVuY3Rpb24gc2V0QWNjZXNzU3RhdHVzKHN0YXR1cykge1xuICAgIHRoaXMuX2FjY2Vzc1N0YXR1cyA9IHN0YXR1cztcbiAgfTtcblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXRMYXN0Q29ubmVjdGlvbiA9IGZ1bmN0aW9uIGdldExhc3RDb25uZWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9sYXN0Q29ubmVjdGlvbjtcbiAgfTtcblxuICAvKipcbiAgICogUGFyc2VzIFhNTCBOb2RlXG4gICAqIEBwYXJhbSByZXBvTm9kZSBYTUxOb2RlXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmxvYWRGcm9tWG1sID0gZnVuY3Rpb24gbG9hZEZyb21YbWwocmVwb05vZGUpIHtcbiAgICBpZiAocmVwb05vZGUuZ2V0QXR0cmlidXRlKCdhbGxvd0Nyb3NzUmVwb3NpdG9yeUNvcHknKSAmJiByZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ2FsbG93Q3Jvc3NSZXBvc2l0b3J5Q29weScpID09IFwidHJ1ZVwiKSB7XG4gICAgICB0aGlzLmFsbG93Q3Jvc3NSZXBvc2l0b3J5Q29weSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ2hhc0NvbnRlbnRGaWx0ZXInKSAmJiByZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ2hhc0NvbnRlbnRGaWx0ZXInKSA9PSBcInRydWVcIikge1xuICAgICAgdGhpcy5faGFzQ29udGVudEZpbHRlciA9IHRydWU7XG4gICAgfVxuICAgIGlmIChyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ3VzZXJTY29wZScpICYmIHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgndXNlclNjb3BlJykgPT0gXCJ0cnVlXCIpIHtcbiAgICAgIHRoaXMuX2hhc1VzZXJTY29wZSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ3JlcG9zaXRvcnlfdHlwZScpKSB7XG4gICAgICB0aGlzLl9yZXBvc2l0b3J5VHlwZSA9IHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgncmVwb3NpdG9yeV90eXBlJyk7XG4gICAgfVxuICAgIGlmIChyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ2FjY2Vzc19zdGF0dXMnKSkge1xuICAgICAgdGhpcy5fYWNjZXNzU3RhdHVzID0gcmVwb05vZGUuZ2V0QXR0cmlidXRlKCdhY2Nlc3Nfc3RhdHVzJyk7XG4gICAgfVxuICAgIGlmIChyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ2xhc3RfY29ubmVjdGlvbicpKSB7XG4gICAgICB0aGlzLl9sYXN0Q29ubmVjdGlvbiA9IHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgnbGFzdF9jb25uZWN0aW9uJyk7XG4gICAgfVxuXG4gICAgaWYgKHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgndXNlcl9lZGl0YWJsZV9yZXBvc2l0b3J5JykgJiYgcmVwb05vZGUuZ2V0QXR0cmlidXRlKCd1c2VyX2VkaXRhYmxlX3JlcG9zaXRvcnknKSA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgIHRoaXMudXNlckVkaXRhYmxlID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgnYWNjZXNzX3R5cGUnKSkge1xuICAgICAgdGhpcy5zZXRBY2Nlc3NUeXBlKHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgnYWNjZXNzX3R5cGUnKSk7XG4gICAgfVxuICAgIGlmIChyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ3JlcG9zaXRvcnlTbHVnJykpIHtcbiAgICAgIHRoaXMuc2V0U2x1ZyhyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ3JlcG9zaXRvcnlTbHVnJykpO1xuICAgIH1cbiAgICBpZiAocmVwb05vZGUuZ2V0QXR0cmlidXRlKCdvd25lcicpKSB7XG4gICAgICB0aGlzLm93bmVyID0gcmVwb05vZGUuZ2V0QXR0cmlidXRlKCdvd25lcicpO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcG9Ob2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjaGlsZE5vZGUgPSByZXBvTm9kZS5jaGlsZE5vZGVzW2ldO1xuICAgICAgaWYgKGNoaWxkTm9kZS5ub2RlTmFtZSA9PT0gXCJsYWJlbFwiKSB7XG4gICAgICAgIHRoaXMuc2V0TGFiZWwoY2hpbGROb2RlLmZpcnN0Q2hpbGQubm9kZVZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hpbGROb2RlLm5vZGVOYW1lID09PSBcImRlc2NyaXB0aW9uXCIpIHtcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGNoaWxkTm9kZS5maXJzdENoaWxkLm5vZGVWYWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAoY2hpbGROb2RlLm5vZGVOYW1lID09PSBcImNsaWVudF9zZXR0aW5nc1wiKSB7XG4gICAgICAgIHRoaXMuc2V0SWNvbihjaGlsZE5vZGUuZ2V0QXR0cmlidXRlKCdpY29uJykpO1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNoaWxkTm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgdmFyIHN1YkNoID0gY2hpbGROb2RlLmNoaWxkTm9kZXNbal07XG4gICAgICAgICAgaWYgKHN1YkNoLm5vZGVOYW1lID09PSAncmVzb3VyY2VzJykge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXNNYW5hZ2VyLmxvYWRGcm9tWG1sTm9kZShzdWJDaCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChzdWJDaC5ub2RlTmFtZSA9PT0gJ25vZGVfcHJvdmlkZXInKSB7XG4gICAgICAgICAgICB2YXIgbm9kZVByb3ZpZGVyTmFtZSA9IHN1YkNoLmdldEF0dHJpYnV0ZShcImFqeHBDbGFzc1wiKTtcbiAgICAgICAgICAgIHZhciBub2RlUHJvdmlkZXJPcHRpb25zID0gSlNPTi5wYXJzZShzdWJDaC5nZXRBdHRyaWJ1dGUoXCJhanhwT3B0aW9uc1wiKSk7XG4gICAgICAgICAgICB0aGlzLm5vZGVQcm92aWRlckRlZiA9IHsgbmFtZTogbm9kZVByb3ZpZGVyTmFtZSwgb3B0aW9uczogbm9kZVByb3ZpZGVyT3B0aW9ucyB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gUmVwb3NpdG9yeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlcG9zaXRvcnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9sYW5nTG9nZ2VyID0gcmVxdWlyZSgnLi4vbGFuZy9Mb2dnZXInKTtcblxudmFyIF9sYW5nTG9nZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdMb2dnZXIpO1xuXG52YXIgX2h0dHBQeWRpb0FwaSA9IHJlcXVpcmUoJy4uL2h0dHAvUHlkaW9BcGknKTtcblxudmFyIF9odHRwUHlkaW9BcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cFB5ZGlvQXBpKTtcblxudmFyIF9SZXBvc2l0b3J5ID0gcmVxdWlyZSgnLi9SZXBvc2l0b3J5Jyk7XG5cbnZhciBfUmVwb3NpdG9yeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXBvc2l0b3J5KTtcblxudmFyIF9DZWxsTW9kZWwgPSByZXF1aXJlKCcuL0NlbGxNb2RlbCcpO1xuXG52YXIgX0NlbGxNb2RlbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9DZWxsTW9kZWwpO1xuXG52YXIgX2h0dHBHZW5JbmRleCA9IHJlcXVpcmUoJy4uL2h0dHAvZ2VuL2luZGV4Jyk7XG5cbnZhciBfdXRpbEhhc2hlclV0aWxzID0gcmVxdWlyZShcIi4uL3V0aWwvSGFzaGVyVXRpbHNcIik7XG5cbnZhciBfdXRpbEhhc2hlclV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxIYXNoZXJVdGlscyk7XG5cbi8qKlxuICogQWJzdHJhY3Rpb24gb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgdXNlci4gQ2FuIGJlIGEgXCJmYWtlXCIgdXNlciB3aGVuIHVzZXJzIG1hbmFnZW1lbnRcbiAqIHN5c3RlbSBpcyBkaXNhYmxlZFxuICovXG5cbnZhciBVc2VyID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICogQHBhcmFtIGlkIFN0cmluZyBUaGUgdXNlciB1bmlxdWUgaWRcbiAgICogQHBhcmFtIHhtbERlZiBYTUxOb2RlIFJlZ2lzdHJ5IEZyYWdtZW50XG4gICAgICAqIEBwYXJhbSBweWRpb09iamVjdCBQeWRpb1xuICAgKi9cblxuICBmdW5jdGlvbiBVc2VyKGlkLCB4bWxEZWYsIHB5ZGlvT2JqZWN0KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVzZXIpO1xuXG4gICAgLyoqXG4gICAgICogQHZhciBTdHJpbmdcbiAgICAgKi9cbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgLyoqXG4gICAgICogQHZhciBQeWRpb1xuICAgICAqL1xuICAgIHRoaXMuX3B5ZGlvT2JqZWN0ID0gcHlkaW9PYmplY3Q7XG4gICAgLyoqXG4gICAgICogQHZhciBTdHJpbmdcbiAgICAgKi9cbiAgICB0aGlzLmFjdGl2ZVJlcG9zaXRvcnkgPSB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQHZhciBCb29sZWFuXG4gICAgICovXG4gICAgdGhpcy5yZWFkID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQHZhciBCb29sZWFuXG4gICAgICovXG4gICAgdGhpcy53cml0ZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEB2YXIgQm9vbGVhblxuICAgICAqL1xuICAgIHRoaXMuY3Jvc3NSZXBvc2l0b3J5Q29weSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEB2YXIgTWFwKClcbiAgICAgKi9cbiAgICB0aGlzLnByZWZlcmVuY2VzID0gbmV3IE1hcCgpO1xuICAgIC8qKlxuICAgICAqIEB2YXIgTWFwKClcbiAgICAgKi9cbiAgICB0aGlzLnJlcG9zaXRvcmllcyA9IG5ldyBNYXAoKTtcbiAgICAvKipcbiAgICAgKiBAdmFyIE1hcCgpXG4gICAgICovXG4gICAgdGhpcy5jcm9zc1JlcG9zaXRvcmllcyA9IG5ldyBNYXAoKTtcbiAgICAvKipcbiAgICAgKiBAdmFyIEJvb2xlYW5cbiAgICAgKi9cbiAgICB0aGlzLmlzQWRtaW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAdmFyIFN0cmluZ1xuICAgICAqL1xuICAgIHRoaXMubG9jayA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqXG4gICAgICogQHR5cGUgTWFwXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICB0aGlzLl9wYXJzZWRKU09OQ2FjaGUgPSBuZXcgTWFwKCk7XG5cbiAgICBpZiAoeG1sRGVmKSB7XG4gICAgICB0aGlzLmxvYWRGcm9tWG1sKHhtbERlZik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjdXJyZW50IHJlcG9zaXRvcnlcbiAgICogQHBhcmFtIGlkIFN0cmluZ1xuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5zZXRBY3RpdmVSZXBvc2l0b3J5ID0gZnVuY3Rpb24gc2V0QWN0aXZlUmVwb3NpdG9yeShpZCkge1xuICAgIHRoaXMuYWN0aXZlUmVwb3NpdG9yeSA9IGlkO1xuICAgIGlmICh0aGlzLnJlcG9zaXRvcmllcy5oYXMoaWQpKSB7XG4gICAgICB0aGlzLmNyb3NzUmVwb3NpdG9yeUNvcHkgPSB0aGlzLnJlcG9zaXRvcmllcy5nZXQoaWQpLmFsbG93Q3Jvc3NSZXBvc2l0b3J5Q29weTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3Jvc3NSZXBvc2l0b3JpZXMuaGFzKGlkKSkge1xuICAgICAgdGhpcy5jcm9zc1JlcG9zaXRvcmllc1snZGVsZXRlJ10oaWQpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBhY3RpdmUgcmVwb3NpdG9yeVxuICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuZ2V0QWN0aXZlUmVwb3NpdG9yeSA9IGZ1bmN0aW9uIGdldEFjdGl2ZVJlcG9zaXRvcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlUmVwb3NpdG9yeTtcbiAgfTtcblxuICAvKipcbiAgICogV2hldGhlciBjdXJyZW50IHJlcG8gaXMgYWxsb3dlZCB0byBiZSByZWFkXG4gICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuY2FuUmVhZCA9IGZ1bmN0aW9uIGNhblJlYWQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRPRE86IGdldCBcInJlYWRcIiBwcm9wZXJ0eSBmcm9tIHJvb3Qgbm9kZSBtZXRhZGF0YVxuICAgICAgdmFyIG1ldGFSb290ID0gdGhpcy5fcHlkaW9PYmplY3QuZ2V0Q29udGV4dEhvbGRlcigpLmdldFJvb3ROb2RlKCkuZ2V0TWV0YWRhdGEoKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICAgIHJldHVybiB0cnVlO1xuICAgIC8vcmV0dXJuIHRoaXMucmVhZDtcbiAgfTtcblxuICAvKipcbiAgICogV2hldGhlciBjdXJyZW50IHJlcG8gaXMgYWxsb3dlZCB0byBiZSB3cml0dGVuXG4gICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuY2FuV3JpdGUgPSBmdW5jdGlvbiBjYW5Xcml0ZSgpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIG1ldGFSb290ID0gdGhpcy5fcHlkaW9PYmplY3QuZ2V0Q29udGV4dEhvbGRlcigpLmdldFJvb3ROb2RlKCkuZ2V0TWV0YWRhdGEoKTtcbiAgICAgIHJldHVybiAhbWV0YVJvb3QuaGFzKFwibm9kZV9yZWFkb25seVwiKSB8fCAhbWV0YVJvb3QuZ2V0KFwibm9kZV9yZWFkb25seVwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGN1cnJlbnQgcmVwbyBpcyBhbGxvd2VkIHRvIGJlIGNyb3NzLWNvcGllZFxuICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAqL1xuXG4gIFVzZXIucHJvdG90eXBlLmNhbkNyb3NzUmVwb3NpdG9yeUNvcHkgPSBmdW5jdGlvbiBjYW5Dcm9zc1JlcG9zaXRvcnlDb3B5KCkge1xuICAgIHJldHVybiB0aGlzLmNyb3NzUmVwb3NpdG9yeUNvcHk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCBhIHVzZXIgcHJlZmVyZW5jZSBieSBpdHMgbmFtZVxuICAgKiBAcmV0dXJucyBNaXhlZFxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5nZXRQcmVmZXJlbmNlID0gZnVuY3Rpb24gZ2V0UHJlZmVyZW5jZShwcmVmTmFtZSwgZnJvbUpTT04pIHtcbiAgICBpZiAoZnJvbUpTT04pIHtcbiAgICAgIHZhciB0ZXN0ID0gdGhpcy5fcGFyc2VkSlNPTkNhY2hlLmdldChwcmVmTmFtZSk7XG4gICAgICBpZiAodGVzdCkgcmV0dXJuIHRlc3Q7XG4gICAgfVxuICAgIHZhciB2YWx1ZSA9IHRoaXMucHJlZmVyZW5jZXMuZ2V0KHByZWZOYW1lKTtcbiAgICBpZiAoZnJvbUpTT04pIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHBhcnNlZCA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgICAgIHRoaXMuX3BhcnNlZEpTT05DYWNoZS5zZXQocHJlZk5hbWUsIHBhcnNlZCk7XG4gICAgICAgICAgaWYgKCFwYXJzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmICh3aW5kb3cuY29uc29sZSkge1xuICAgICAgICAgICAgX2xhbmdMb2dnZXIyWydkZWZhdWx0J10ubG9nKFwiRXJyb3IgcGFyc2luZyBKU09OIGluIHByZWZlcmVuY2VzIChcIiArIHByZWZOYW1lICsgXCIpLiBZb3Ugc2hvdWxkIGNvbnRhY3Qgc3lzdGVtIGFkbWluIGFuZCBjbGVhciB1c2VyIHByZWZlcmVuY2VzLlwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWxlcnQoXCJFcnJvciBwYXJzaW5nIEpTT04gaW4gcHJlZmVyZW5jZXMuIFlvdSBzaG91bGQgY29udGFjdCBzeXN0ZW0gYWRtaW4gYW5kIGNsZWFyIHVzZXIgcHJlZmVyZW5jZXMuXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgcmVwb3NpdG9yaWVzIFxuICAgKiBAcmV0dXJucyB7TWFwfVxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5nZXRSZXBvc2l0b3JpZXNMaXN0ID0gZnVuY3Rpb24gZ2V0UmVwb3NpdG9yaWVzTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3JpZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNldCBhIHByZWZlcmVuY2UgdmFsdWVcbiAgICogQHBhcmFtIHByZWZOYW1lIFN0cmluZ1xuICAgKiBAcGFyYW0gcHJlZlZhbHVlIE1peGVkXG4gICAqIEBwYXJhbSB0b0pTT04gQm9vbGVhbiBXaGV0aGVyIHRvIGNvbnZlcnQgdGhlIHZhbHVlIHRvIEpTT04gcmVwcmVzZW50YXRpb25cbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuc2V0UHJlZmVyZW5jZSA9IGZ1bmN0aW9uIHNldFByZWZlcmVuY2UocHJlZk5hbWUsIHByZWZWYWx1ZSkge1xuICAgIHZhciB0b0pTT04gPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1syXTtcblxuICAgIGlmICh0b0pTT04pIHtcbiAgICAgIHRoaXMuX3BhcnNlZEpTT05DYWNoZVsnZGVsZXRlJ10ocHJlZk5hbWUpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcHJlZlZhbHVlID0gSlNPTi5zdHJpbmdpZnkocHJlZlZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKGNvbnNvbGUpIHtcbiAgICAgICAgICB2YXIgaXNDeWNsaWMgPSBmdW5jdGlvbiBpc0N5Y2xpYyhvYmopIHtcbiAgICAgICAgICAgIHZhciBzZWVuT2JqZWN0cyA9IFtdO1xuXG4gICAgICAgICAgICBmdW5jdGlvbiBkZXRlY3Qob2JqKSB7XG4gICAgICAgICAgICAgIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2Vlbk9iamVjdHMuaW5kZXhPZihvYmopICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNlZW5PYmplY3RzLnB1c2gob2JqKTtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYgZGV0ZWN0KG9ialtrZXldKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhvYmosICdjeWNsZSBhdCAnICsga2V5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkZXRlY3Qob2JqKTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc29sZS5sb2coXCJDYXVnaHQgdG9KU09OIGVycm9yIFwiICsgZS5tZXNzYWdlLCBwcmVmVmFsdWUsIGlzQ3ljbGljKHByZWZWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wcmVmZXJlbmNlcy5zZXQocHJlZk5hbWUsIHByZWZWYWx1ZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcmVwb3NpdG9yaWVzIGFzIGEgYnVuY2hcbiAgICogQHBhcmFtIHJlcG9IYXNoIE1hcFxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5zZXRSZXBvc2l0b3JpZXNMaXN0ID0gZnVuY3Rpb24gc2V0UmVwb3NpdG9yaWVzTGlzdChyZXBvSGFzaCkge1xuICAgIHRoaXMucmVwb3NpdG9yaWVzID0gcmVwb0hhc2g7XG4gICAgLy8gZmlsdGVyIHJlcG9zaXRvcmllcyBvbmNlIGZvciBhbGxcbiAgICB0aGlzLmNyb3NzUmVwb3NpdG9yaWVzID0gbmV3IE1hcCgpO1xuICAgIHRoaXMucmVwb3NpdG9yaWVzLmZvckVhY2goKGZ1bmN0aW9uICh2YWx1ZSwga2V5KSB7XG4gICAgICBpZiAodmFsdWUuYWxsb3dDcm9zc1JlcG9zaXRvcnlDb3B5ICYmIHZhbHVlLmFjY2Vzc1R5cGUgIT0gJ2luYm94Jykge1xuICAgICAgICB0aGlzLmNyb3NzUmVwb3NpdG9yaWVzLnNldChrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KS5iaW5kKHRoaXMpKTtcbiAgfTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGVyZSBhcmUgYW55IHJlcG9zaXRvcmllcyBhbGxvd2luZyBjcm9zc0NvcHlcbiAgICogQHJldHVybnMgQm9vbGVhblxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5oYXNDcm9zc1JlcG9zaXRvcmllcyA9IGZ1bmN0aW9uIGhhc0Nyb3NzUmVwb3NpdG9yaWVzKCkge1xuICAgIHJldHVybiB0aGlzLmNyb3NzUmVwb3NpdG9yaWVzLnNpemU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCByZXBvc2l0b3JpZXMgYWxsb3dpbmcgY3Jvc3MgY29weVxuICAgKiBAcmV0dXJucyB7TWFwfVxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5nZXRDcm9zc1JlcG9zaXRvcmllcyA9IGZ1bmN0aW9uIGdldENyb3NzUmVwb3NpdG9yaWVzKCkge1xuICAgIHJldHVybiB0aGlzLmNyb3NzUmVwb3NpdG9yaWVzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgcmVwb3NpdG9yeSBJY29uXG4gICAqIEBwYXJhbSByZXBvSWQgU3RyaW5nXG4gICAqIEByZXR1cm5zIFN0cmluZ1xuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5nZXRSZXBvc2l0b3J5SWNvbiA9IGZ1bmN0aW9uIGdldFJlcG9zaXRvcnlJY29uKHJlcG9JZCkge1xuICAgIHJldHVybiB0aGlzLnJlcG9JY29uLmdldChyZXBvSWQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZW5kIHRoZSBwcmVmZXJlbmNlIHRvIHRoZSBzZXJ2ZXIgZm9yIHNhdmluZ1xuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5zYXZlUHJlZmVyZW5jZSA9IGZ1bmN0aW9uIHNhdmVQcmVmZXJlbmNlKCkge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBpZiAoIXRoaXMucHJlZmVyZW5jZXMuaGFzKCdndWlfcHJlZmVyZW5jZXMnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZ3VpUHJlZnMgPSB0aGlzLnByZWZlcmVuY2VzLmdldCgnZ3VpX3ByZWZlcmVuY2VzJyk7XG4gICAgdmFyIHN0cmluZ1ByZWYgPSBfdXRpbEhhc2hlclV0aWxzMlsnZGVmYXVsdCddLmJhc2U2NF9lbmNvZGUoZ3VpUHJlZnMpO1xuICAgIHRoaXMuZ2V0SWRtVXNlcigpLnRoZW4oZnVuY3Rpb24gKGlkbVVzZXIpIHtcbiAgICAgIGlkbVVzZXIuQXR0cmlidXRlc1sncHJlZmVyZW5jZXMnXSA9IEpTT04uc3RyaW5naWZ5KHsgZ3VpX3ByZWZlcmVuY2VzOiBzdHJpbmdQcmVmIH0pO1xuICAgICAgdmFyIGFwaSA9IG5ldyBfaHR0cEdlbkluZGV4LlVzZXJTZXJ2aWNlQXBpKF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpKTtcbiAgICAgIGFwaS5wdXRVc2VyKGlkbVVzZXIuTG9naW4sIGlkbVVzZXIpLnRoZW4oZnVuY3Rpb24gKG9rKSB7XG4gICAgICAgIF90aGlzLmlkbVVzZXIgPSBpZG1Vc2VyO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge1Byb21pc2U8SWRtVXNlcj59XG4gICAqL1xuXG4gIFVzZXIucHJvdG90eXBlLmdldElkbVVzZXIgPSBmdW5jdGlvbiBnZXRJZG1Vc2VyKCkge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgaWYgKHRoaXMuaWRtVXNlcikge1xuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuaWRtVXNlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfcmV0ID0gKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICB2YXIgYXBpID0gbmV3IF9odHRwR2VuSW5kZXguVXNlclNlcnZpY2VBcGkoX2h0dHBQeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfaHR0cEdlbkluZGV4LlJlc3RTZWFyY2hVc2VyUmVxdWVzdCgpO1xuICAgICAgICB2YXIgcXVlcnkgPSBuZXcgX2h0dHBHZW5JbmRleC5JZG1Vc2VyU2luZ2xlUXVlcnkoKTtcbiAgICAgICAgcXVlcnkuTG9naW4gPSBfdGhpczIuaWQ7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcyA9IFtxdWVyeV07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdjogbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgYXBpLnNlYXJjaFVzZXJzKHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgICBpZiAocmVzdWx0LlRvdGFsID09PSAwIHx8ICFyZXN1bHQuVXNlcnMpIHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdDYW5ub3QgZmluZCB1c2VyJykpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF90aGlzMi5pZG1Vc2VyID0gcmVzdWx0LlVzZXJzWzBdO1xuICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5Vc2Vyc1swXSk7XG4gICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9KSgpO1xuXG4gICAgICBpZiAodHlwZW9mIF9yZXQgPT09ICdvYmplY3QnKSByZXR1cm4gX3JldC52O1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybiB7UHJvbWlzZTxDZWxsTW9kZWw+fVxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5nZXRBY3RpdmVSZXBvc2l0b3J5QXNDZWxsID0gZnVuY3Rpb24gZ2V0QWN0aXZlUmVwb3NpdG9yeUFzQ2VsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3JpZXMuZ2V0KHRoaXMuYWN0aXZlUmVwb3NpdG9yeSkuYXNDZWxsKCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBhY3RpdmUgcmVwb3NpdG9yeSBvYmplY3RcbiAgICogQHJldHVybiB7UmVwb3NpdG9yeX1cbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuZ2V0QWN0aXZlUmVwb3NpdG9yeU9iamVjdCA9IGZ1bmN0aW9uIGdldEFjdGl2ZVJlcG9zaXRvcnlPYmplY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yaWVzLmdldCh0aGlzLmFjdGl2ZVJlcG9zaXRvcnkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgcmVnaXN0cnkgZnJhZ21lbnQgdG8gbG9hZCB0aGlzIHVzZXJcbiAgICogQHBhcmFtIHVzZXJOb2RlcyBET01Ob2RlXG4gICAqL1xuXG4gIFVzZXIucHJvdG90eXBlLmxvYWRGcm9tWG1sID0gZnVuY3Rpb24gbG9hZEZyb21YbWwodXNlck5vZGVzKSB7XG5cbiAgICB2YXIgcmVwb3NpdG9yaWVzID0gbmV3IE1hcCgpLFxuICAgICAgICBhY3RpdmVOb2RlID0gdW5kZWZpbmVkO1xuICAgIHZhciBpID0gdW5kZWZpbmVkLFxuICAgICAgICBqID0gdW5kZWZpbmVkO1xuICAgIGZvciAoaSA9IDA7IGkgPCB1c2VyTm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh1c2VyTm9kZXNbaV0ubm9kZU5hbWUgPT09IFwiYWN0aXZlX3JlcG9cIikge1xuICAgICAgICBhY3RpdmVOb2RlID0gdXNlck5vZGVzW2ldO1xuICAgICAgfSBlbHNlIGlmICh1c2VyTm9kZXNbaV0ubm9kZU5hbWUgPT09IFwicmVwb3NpdG9yaWVzXCIpIHtcbiAgICAgICAgZm9yIChqID0gMDsgaiA8IHVzZXJOb2Rlc1tpXS5jaGlsZE5vZGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgdmFyIHJlcG9DaGlsZCA9IHVzZXJOb2Rlc1tpXS5jaGlsZE5vZGVzW2pdO1xuICAgICAgICAgIGlmIChyZXBvQ2hpbGQubm9kZU5hbWUgPT09IFwicmVwb1wiKSB7XG4gICAgICAgICAgICB2YXIgcmVwb3NpdG9yeSA9IG5ldyBfUmVwb3NpdG9yeTJbJ2RlZmF1bHQnXShyZXBvQ2hpbGQuZ2V0QXR0cmlidXRlKFwiaWRcIiksIHJlcG9DaGlsZCk7XG4gICAgICAgICAgICByZXBvc2l0b3JpZXMuc2V0KHJlcG9DaGlsZC5nZXRBdHRyaWJ1dGUoXCJpZFwiKSwgcmVwb3NpdG9yeSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0UmVwb3NpdG9yaWVzTGlzdChyZXBvc2l0b3JpZXMpO1xuICAgICAgfSBlbHNlIGlmICh1c2VyTm9kZXNbaV0ubm9kZU5hbWUgPT09IFwicHJlZmVyZW5jZXNcIikge1xuICAgICAgICBmb3IgKGogPSAwOyBqIDwgdXNlck5vZGVzW2ldLmNoaWxkTm9kZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICB2YXIgcHJlZkNoaWxkID0gdXNlck5vZGVzW2ldLmNoaWxkTm9kZXNbal07XG4gICAgICAgICAgaWYgKHByZWZDaGlsZC5ub2RlTmFtZSA9PT0gXCJwcmVmXCIpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IHByZWZDaGlsZC5nZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGlmICghdmFsdWUgJiYgcHJlZkNoaWxkLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgLy8gUmV0cmlldmUgdmFsdWUgZnJvbSBDREFUQVxuICAgICAgICAgICAgICB2YWx1ZSA9IHByZWZDaGlsZC5maXJzdENoaWxkLm5vZGVWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0UHJlZmVyZW5jZShwcmVmQ2hpbGQuZ2V0QXR0cmlidXRlKFwibmFtZVwiKSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh1c2VyTm9kZXNbaV0ubm9kZU5hbWUgPT09IFwic3BlY2lhbF9yaWdodHNcIikge1xuICAgICAgICB2YXIgYXR0ciA9IHVzZXJOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoXCJpc19hZG1pblwiKTtcbiAgICAgICAgaWYgKGF0dHIgJiYgYXR0ciA9PT0gXCIxXCIpIHtcbiAgICAgICAgICB0aGlzLmlzQWRtaW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VyTm9kZXNbaV0uZ2V0QXR0cmlidXRlKFwibG9ja1wiKSkge1xuICAgICAgICAgIHRoaXMubG9jayA9IHVzZXJOb2Rlc1tpXS5nZXRBdHRyaWJ1dGUoXCJsb2NrXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIE1ha2Ugc3VyZSBpdCBoYXBwZW5zIGF0IHRoZSBlbmRcbiAgICBpZiAoYWN0aXZlTm9kZSkge1xuICAgICAgdGhpcy5zZXRBY3RpdmVSZXBvc2l0b3J5KGFjdGl2ZU5vZGUuZ2V0QXR0cmlidXRlKCdpZCcpKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIFVzZXI7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9sYW5nT2JzZXJ2YWJsZSA9IHJlcXVpcmUoJy4uL2xhbmcvT2JzZXJ2YWJsZScpO1xuXG52YXIgX2xhbmdPYnNlcnZhYmxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdPYnNlcnZhYmxlKTtcblxudmFyIF9odHRwUHlkaW9BcGkgPSByZXF1aXJlKCcuLi9odHRwL1B5ZGlvQXBpJyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBQeWRpb0FwaSk7XG5cbi8qKlxuICogQSBtb25pdG9yIGZvciB1c2VyIFwiaWRsZVwiIHN0YXRlIHRvIHByZXZlbnQgc2Vzc2lvbiB0aW1pbmcgb3V0LlxuICovXG5cbnZhciBBY3Rpdml0eU1vbml0b3IgPSAoZnVuY3Rpb24gKF9PYnNlcnZhYmxlKSB7XG4gICAgX2luaGVyaXRzKEFjdGl2aXR5TW9uaXRvciwgX09ic2VydmFibGUpO1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gcHlkaW8gUHlkaW9cbiAgICAgKi9cblxuICAgIGZ1bmN0aW9uIEFjdGl2aXR5TW9uaXRvcihweWRpbykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpdml0eU1vbml0b3IpO1xuXG4gICAgICAgIF9PYnNlcnZhYmxlLmNhbGwodGhpcyk7XG5cbiAgICAgICAgdmFyIHNlcnZlclNlc3Npb25UaW1lID0gcHlkaW8uUGFyYW1ldGVycy5nZXQoJ3Nlc3Npb25fdGltZW91dCcpO1xuICAgICAgICB2YXIgY2xpZW50U2Vzc2lvblRpbWUgPSBweWRpby5QYXJhbWV0ZXJzLmdldCgnY2xpZW50X3RpbWVvdXQnKTtcbiAgICAgICAgdmFyIHdhcm5pbmdNaW51dGVzID0gcHlkaW8uUGFyYW1ldGVycy5nZXQoJ2NsaWVudF90aW1lb3V0X3dhcm5pbmcnKTtcblxuICAgICAgICB0aGlzLl9weWRpbyA9IHB5ZGlvO1xuICAgICAgICB0aGlzLl93YXJuaW5nTWludXRlcyA9IDM7XG4gICAgICAgIHRoaXMuX3JlbmV3TWludXRlcyA9IDEwO1xuICAgICAgICB0aGlzLl9sb2dvdXRNaW51dGVzID0gMDtcblxuICAgICAgICB0aGlzLl9sYXN0QWN0aXZlID0gMDtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSAnYWN0aXZlJztcbiAgICAgICAgdGhpcy5fbG9uZ1Rhc2tSdW5uaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKCFzZXJ2ZXJTZXNzaW9uVGltZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlcnZlclNlc3Npb25UaW1lIDw9IDYwICogdGhpcy5fcmVuZXdNaW51dGVzKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5ld01pbnV0ZXMgPSAyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbGllbnRTZXNzaW9uVGltZSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmV3VGltZSA9IHNlcnZlclNlc3Npb25UaW1lIC0gdGhpcy5fcmVuZXdNaW51dGVzICogNjA7XG4gICAgICAgICAgICBpZiAodGhpcy5fcHlkaW8udXNlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRTZXJ2ZXJMb25nUG9sbGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9weWRpby5vYnNlcnZlKCd1c2VyX2xvZ2dlZCcsIGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICAgICAgaWYgKHUpIF90aGlzLnN0YXJ0U2VydmVyTG9uZ1BvbGxlcigpO2Vsc2UgX3RoaXMuc3RvcFNlcnZlckxvbmdQb2xsZXIoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2VydmVyU2Vzc2lvblRpbWUgPSBzZXJ2ZXJTZXNzaW9uVGltZTtcbiAgICAgICAgaWYgKHdhcm5pbmdNaW51dGVzKSB7XG4gICAgICAgICAgICB0aGlzLl93YXJuaW5nTWludXRlcyA9IHdhcm5pbmdNaW51dGVzO1xuICAgICAgICAgICAgdGhpcy5fd2FybmluZ1RpbWUgPSBjbGllbnRTZXNzaW9uVGltZSAtIHRoaXMuX3dhcm5pbmdNaW51dGVzICogNjA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl93YXJuaW5nVGltZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xvZ291dFRpbWUgPSBjbGllbnRTZXNzaW9uVGltZSAtIHRoaXMuX2xvZ291dE1pbnV0ZXMgKiA2MDtcbiAgICAgICAgdGhpcy5fcmVuZXdUaW1lID0gc2VydmVyU2Vzc2lvblRpbWUgLSB0aGlzLl9yZW5ld01pbnV0ZXMgKiA2MDtcbiAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZSA9IHRoaXMuZ2V0Tm93KCk7XG5cbiAgICAgICAgdGhpcy5fYWN0aXZpdHlPYnNlcnZlciA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuX3B5ZGlvLnVzZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9weWRpby5vYnNlcnZlKCd1c2VyX2xvZ2dlZCcsIGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICBfdGhpcy51cGRhdGVMYXN0QWN0aXZlKCk7XG4gICAgICAgICAgICBpZiAodSkgX3RoaXMucmVnaXN0ZXIoKTtlbHNlIF90aGlzLnVucmVnaXN0ZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5zdGFydFNlcnZlckxvbmdQb2xsZXIgPSBmdW5jdGlvbiBzdGFydFNlcnZlckxvbmdQb2xsZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLl9zZXJ2ZXJJbnRlcnZhbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlcnZlckludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX2h0dHBQeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0T3JVcGRhdGVKd3QoKS50aGVuKGZ1bmN0aW9uICgpIHt9KTtcbiAgICAgICAgfSwgTWF0aC5taW4oTWF0aC5wb3coMiwgMzEpIC0gMSwgdGhpcy5fcmVuZXdUaW1lICogMTAwMCkpO1xuICAgIH07XG5cbiAgICBBY3Rpdml0eU1vbml0b3IucHJvdG90eXBlLnN0b3BTZXJ2ZXJMb25nUG9sbGVyID0gZnVuY3Rpb24gc3RvcFNlcnZlckxvbmdQb2xsZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLl9zZXJ2ZXJJbnRlcnZhbCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9zZXJ2ZXJJbnRlcnZhbCk7XG4gICAgICAgICAgICB0aGlzLl9zZXJ2ZXJJbnRlcnZhbCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5zdGFydElkbGVQb2xsZXIgPSBmdW5jdGlvbiBzdGFydElkbGVQb2xsZXIoKSB7XG4gICAgICAgIHZhciByZXN0YXJ0QXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgIGlmIChyZXN0YXJ0QXQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pZGxlSW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwodGhpcy5faWRsZUludGVydmFsKTtcbiAgICAgICAgICAgIHRoaXMuX2lkbGVJbnRlcnZhbCA9IHNldEludGVydmFsKHRoaXMuaWRsZU9ic2VydmVyLmJpbmQodGhpcyksIHJlc3RhcnRBdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faWRsZUludGVydmFsKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLl9pZGxlSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh0aGlzLmlkbGVPYnNlcnZlci5iaW5kKHRoaXMpLCA1MDAwKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBBY3Rpdml0eU1vbml0b3IucHJvdG90eXBlLnN0b3BJZGxlUG9sbGVyID0gZnVuY3Rpb24gc3RvcElkbGVQb2xsZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLl9pZGxlSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5faWRsZUludGVydmFsKTtcbiAgICAgICAgICAgIHRoaXMuX2lkbGVJbnRlcnZhbCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uIHJlZ2lzdGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5fYWN0aXZpdHlPYnNlcnZlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQWxyZWFkeSByZWdpc3RlcmVkXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RhdGUgPSAnYWN0aXZlJztcbiAgICAgICAgdGhpcy5fYWN0aXZpdHlPYnNlcnZlciA9IHRoaXMuYWN0aXZpdHlPYnNlcnZlci5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9weWRpby5vYnNlcnZlKCd1c2VyX2FjdGl2aXR5JywgdGhpcy5fYWN0aXZpdHlPYnNlcnZlcik7XG4gICAgICAgIHRoaXMuX3B5ZGlvLm9ic2VydmUoJ3NlcnZlcl9hbnN3ZXInLCB0aGlzLl9hY3Rpdml0eU9ic2VydmVyKTtcbiAgICAgICAgdGhpcy5fcHlkaW8ub2JzZXJ2ZSgnbG9uZ3Rhc2tfc3RhcnRpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpczIuX2xvbmdUYXNrUnVubmluZyA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9weWRpby5vYnNlcnZlKCdsb25ndGFza19maW5pc2hlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMi5fbG9uZ1Rhc2tSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN0YXJ0SWRsZVBvbGxlcigpO1xuICAgICAgICB0aGlzLnN0YXJ0U2VydmVyTG9uZ1BvbGxlcigpO1xuICAgIH07XG5cbiAgICBBY3Rpdml0eU1vbml0b3IucHJvdG90eXBlLnVucmVnaXN0ZXIgPSBmdW5jdGlvbiB1bnJlZ2lzdGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5fYWN0aXZpdHlPYnNlcnZlciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQWxyZWFkeSBpbmFjdGl2ZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcElkbGVQb2xsZXIoKTtcbiAgICAgICAgdGhpcy5zdG9wU2VydmVyTG9uZ1BvbGxlcigpO1xuICAgICAgICB0aGlzLl9zdGF0ZSA9ICdpbmFjdGl2ZSc7XG4gICAgICAgIHRoaXMuX3B5ZGlvLnN0b3BPYnNlcnZpbmcoJ3VzZXJfYWN0aXZpdHknLCB0aGlzLl9hY3Rpdml0eU9ic2VydmVyKTtcbiAgICAgICAgdGhpcy5fcHlkaW8uc3RvcE9ic2VydmluZygnc2VydmVyX2Fuc3dlcicsIHRoaXMuX2FjdGl2aXR5T2JzZXJ2ZXIpO1xuICAgICAgICB0aGlzLl9weWRpby5zdG9wT2JzZXJ2aW5nKCdsb25ndGFza19zdGFydGluZycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMy5fbG9uZ1Rhc2tSdW5uaW5nID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3B5ZGlvLnN0b3BPYnNlcnZpbmcoJ2xvbmd0YXNrX2ZpbmlzaGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMzLl9sb25nVGFza1J1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2FjdGl2aXR5T2JzZXJ2ZXIgPSBudWxsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0ZW5lciB0byBjbGVhciB0aGUgdGltZXJcbiAgICAgKi9cblxuICAgIEFjdGl2aXR5TW9uaXRvci5wcm90b3R5cGUuYWN0aXZpdHlPYnNlcnZlciA9IGZ1bmN0aW9uIGFjdGl2aXR5T2JzZXJ2ZXIoZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50ICYmIChldmVudC5tZW1vICYmIGV2ZW50Lm1lbW8uZGlzY3JldGUgfHwgZXZlbnQuZGlzY3JldGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3N0YXRlID09PSAnd2FybmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuZXhpdElkbGVTdGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbnRlcm5hbFRpbWVyKSBjbGVhclRpbWVvdXQodGhpcy5faW50ZXJuYWxUaW1lcik7XG4gICAgICAgIHRoaXMuX2ludGVybmFsVGltZXIgPSBzZXRUaW1lb3V0KHRoaXMudXBkYXRlTGFzdEFjdGl2ZS5iaW5kKHRoaXMpLCAxMDAwKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2V0IGxhc3QgYWN0aXZpdHkgdGltZVxuICAgICAqL1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS51cGRhdGVMYXN0QWN0aXZlID0gZnVuY3Rpb24gdXBkYXRlTGFzdEFjdGl2ZSgpIHtcbiAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZSA9IHRoaXMuZ2V0Tm93KCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RlbmVyIGZvciBcImlkbGVcIiBzdGF0ZSBvZiB0aGUgdXNlclxuICAgICAqL1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5pZGxlT2JzZXJ2ZXIgPSBmdW5jdGlvbiBpZGxlT2JzZXJ2ZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICAgIHZhciBpZGxlVGltZSA9IHRoaXMuZ2V0Tm93KCkgLSB0aGlzLl9sYXN0QWN0aXZlO1xuICAgICAgICBpZiAodGhpcy5fc3RhdGUgPT09ICdpbmFjdGl2ZScpIHJldHVybjtcbiAgICAgICAgaWYgKHRoaXMuX2xvbmdUYXNrUnVubmluZykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMYXN0QWN0aXZlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy9jb25zb2xlLmxvZyhpZGxlVGltZSwgdGhpcy5fbG9nb3V0VGltZSk7XG4gICAgICAgIGlmIChpZGxlVGltZSA+PSB0aGlzLl9sb2dvdXRUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVdhcm5pbmdTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUgPSAnYWN0aXZlJztcbiAgICAgICAgICAgIHRoaXMuc3RvcElkbGVQb2xsZXIoKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcFNlcnZlckxvbmdQb2xsZXIoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzNC5fcHlkaW8uZ2V0Q29udHJvbGxlcigpLmZpcmVEZWZhdWx0QWN0aW9uKFwiZXhwaXJlXCIpO1xuICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3dhcm5pbmdUaW1lICYmIGlkbGVUaW1lID49IHRoaXMuX3dhcm5pbmdUaW1lKSB7XG4gICAgICAgICAgICB2YXIgdGltZXJTdHJpbmcgPSB0aGlzLmdldFdhcm5pbmdUaW1lcih0aGlzLl9sb2dvdXRUaW1lIC0gaWRsZVRpbWUpO1xuICAgICAgICAgICAgdGhpcy5zZXRXYXJuaW5nU3RhdGUodGltZXJTdHJpbmcpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlYWN0aXZhdGUgd2luZG93XG4gICAgICovXG5cbiAgICBBY3Rpdml0eU1vbml0b3IucHJvdG90eXBlLmV4aXRJZGxlU3RhdGUgPSBmdW5jdGlvbiBleGl0SWRsZVN0YXRlKCkge1xuICAgICAgICB0aGlzLnJlbW92ZVdhcm5pbmdTdGF0ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUxhc3RBY3RpdmUoKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSAnYWN0aXZlJztcbiAgICAgICAgdGhpcy5zdGFydElkbGVQb2xsZXIoNTAwMCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFB1dCB0aGUgd2luZG93IGluIFwid2FybmluZ1wiIHN0YXRlIDogb3ZlcmxheSwgc2hha2luZyB0aW1lciwgY2hyb25vbWV0ZXIuXG4gICAgICovXG5cbiAgICBBY3Rpdml0eU1vbml0b3IucHJvdG90eXBlLnNldFdhcm5pbmdTdGF0ZSA9IGZ1bmN0aW9uIHNldFdhcm5pbmdTdGF0ZSh3YXJuaW5nVGltZXJTdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSAnd2FybmluZyc7XG4gICAgICAgIHRoaXMuc3RhcnRJZGxlUG9sbGVyKDEwMDApO1xuXG4gICAgICAgIHRoaXMuX3B5ZGlvLm5vdGlmeSgnYWN0aXZpdHlfc3RhdGVfY2hhbmdlJywge1xuICAgICAgICAgICAgYWN0aXZlU3RhdGU6ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIGxhc3RBY3RpdmVTaW5jZTogdGhpcy5fd2FybmluZ1RpbWUgLyA2MCxcbiAgICAgICAgICAgIHRpbWVyU3RyaW5nOiB3YXJuaW5nVGltZXJTdHJpbmdcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENocm9ub21ldGVyIGZvciB3YXJuaW5nIGJlZm9yZSB0aW1lb3V0XG4gICAgICogQHBhcmFtIHRpbWUgSW50ZWdlclxuICAgICAqL1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5nZXRXYXJuaW5nVGltZXIgPSBmdW5jdGlvbiBnZXRXYXJuaW5nVGltZXIodGltZSkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aW1lIC8gNjApICsgJ21uJyArIHRpbWUgJSA2MCArICdzJztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgb3ZlcmxheSBvZiB3YXJuaW5nIHN0YXRlXG4gICAgICovXG5cbiAgICBBY3Rpdml0eU1vbml0b3IucHJvdG90eXBlLnJlbW92ZVdhcm5pbmdTdGF0ZSA9IGZ1bmN0aW9uIHJlbW92ZVdhcm5pbmdTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5fcHlkaW8ubm90aWZ5KCdhY3Rpdml0eV9zdGF0ZV9jaGFuZ2UnLCB7XG4gICAgICAgICAgICBhY3RpdmVTdGF0ZTogJ2FjdGl2ZSdcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFV0aWxpdHkgdG8gZ2V0IHRoZSB0aW1lXG4gICAgICogQHJldHVybnMgSW50ZWdlclxuICAgICAqL1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5nZXROb3cgPSBmdW5jdGlvbiBnZXROb3coKSB7XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCk7XG4gICAgfTtcblxuICAgIHJldHVybiBBY3Rpdml0eU1vbml0b3I7XG59KShfbGFuZ09ic2VydmFibGUyWydkZWZhdWx0J10pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBY3Rpdml0eU1vbml0b3I7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbS8+LlxuICpcbiAqL1xuLyoqXG4gKiBVdGlsaXRhcnkgY2xhc3MgZm9yIGxhbmd1YWdlIHNwZWNpZmljIG1ldGhvZHNcbiAqL1xuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBGdW5jVXRpbHMgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEZ1bmNVdGlscygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEZ1bmNVdGlscyk7XG4gICAgfVxuXG4gICAgRnVuY1V0aWxzLkVtcHR5ID0gZnVuY3Rpb24gRW1wdHkoKSB7fTtcblxuICAgIEZ1bmNVdGlscy5JZGVudGl0eSA9IGZ1bmN0aW9uIElkZW50aXR5KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICBGdW5jVXRpbHMuZXhlY3V0ZUZ1bmN0aW9uQnlOYW1lID0gZnVuY3Rpb24gZXhlY3V0ZUZ1bmN0aW9uQnlOYW1lKGZ1bmN0aW9uTmFtZSwgY29udGV4dCkge1xuICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG4gICAgICAgIHZhciBuYW1lc3BhY2VzID0gZnVuY3Rpb25OYW1lLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgdmFyIGZ1bmMgPSBuYW1lc3BhY2VzLnBvcCgpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVzcGFjZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0W25hbWVzcGFjZXNbaV1dO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZXh0W2Z1bmNdLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgIH07XG5cbiAgICBGdW5jVXRpbHMuZ2V0RnVuY3Rpb25CeU5hbWUgPSBmdW5jdGlvbiBnZXRGdW5jdGlvbkJ5TmFtZShmdW5jdGlvbk5hbWUsIGNvbnRleHQpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpO1xuICAgICAgICB2YXIgbmFtZXNwYWNlcyA9IGZ1bmN0aW9uTmFtZS5zcGxpdChcIi5cIik7XG4gICAgICAgIHZhciBmdW5jID0gbmFtZXNwYWNlcy5wb3AoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lc3BhY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIWNvbnRleHRbbmFtZXNwYWNlc1tpXV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0W25hbWVzcGFjZXNbaV1dO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZXh0W2Z1bmNdO1xuICAgIH07XG5cbiAgICBGdW5jVXRpbHMuYnVmZmVyQ2FsbGJhY2sgPSBmdW5jdGlvbiBidWZmZXJDYWxsYmFjayhuYW1lLCB0aW1lLCBjYWxsYmFjaykge1xuICAgICAgICBpZiAod2luZG93W25hbWVdKSB7XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHdpbmRvd1tuYW1lXSk7XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93W25hbWVdID0gd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2ssIHRpbWUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gRnVuY1V0aWxzO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBGdW5jVXRpbHM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tLz4uXG4gKlxuICovXG4vKipcbiAqIFV0aWxpdGFyeSBjbGFzcyBmb3IgaGFzaGluZyBtZXRob2RzXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBIYXNoZXJVdGlscyA9IChmdW5jdGlvbiAoKSB7XG5cbiAgICAvKlxuICAgICAqIEEgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUlNBIERhdGEgU2VjdXJpdHksIEluYy4gTUQ1IE1lc3NhZ2VcbiAgICAgKiBEaWdlc3QgQWxnb3JpdGhtLCBhcyBkZWZpbmVkIGluIFJGQyAxMzIxLlxuICAgICAqIFZlcnNpb24gMi4xIENvcHlyaWdodCAoQykgUGF1bCBKb2huc3RvbiAxOTk5IC0gMjAwMi5cbiAgICAgKiBPdGhlciBjb250cmlidXRvcnM6IEdyZWcgSG9sdCwgQW5kcmV3IEtlcGVydCwgWWRuYXIsIExvc3RpbmV0XG4gICAgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlXG4gICAgICogU2VlIGh0dHA6Ly9wYWpob21lLm9yZy51ay9jcnlwdC9tZDUgZm9yIG1vcmUgaW5mby5cbiAgICAgKi9cblxuICAgIGZ1bmN0aW9uIEhhc2hlclV0aWxzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSGFzaGVyVXRpbHMpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQ29uZmlndXJhYmxlIHZhcmlhYmxlcy4gWW91IG1heSBuZWVkIHRvIHR3ZWFrIHRoZXNlIHRvIGJlIGNvbXBhdGlibGUgd2l0aFxuICAgICAqIHRoZSBzZXJ2ZXItc2lkZSwgYnV0IHRoZSBkZWZhdWx0cyB3b3JrIGluIG1vc3QgY2FzZXMuXG4gICAgICovXG5cbiAgICAvKlxuICAgICAqIFRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIHlvdSdsbCB1c3VhbGx5IHdhbnQgdG8gY2FsbFxuICAgICAqIFRoZXkgdGFrZSBzdHJpbmcgYXJndW1lbnRzIGFuZCByZXR1cm4gZWl0aGVyIGhleCBvciBiYXNlLTY0IGVuY29kZWQgc3RyaW5nc1xuICAgICAqL1xuXG4gICAgSGFzaGVyVXRpbHMuaGV4X21kNSA9IGZ1bmN0aW9uIGhleF9tZDUocykge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMuYmlubDJoZXgoSGFzaGVyVXRpbHMuY29yZV9tZDUoSGFzaGVyVXRpbHMuc3RyMmJpbmwocyksIHMubGVuZ3RoICogSGFzaGVyVXRpbHMuY2hyc3opKTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMuYjY0X21kNSA9IGZ1bmN0aW9uIGI2NF9tZDUocykge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMuYmlubDJiNjQoSGFzaGVyVXRpbHMuY29yZV9tZDUoSGFzaGVyVXRpbHMuc3RyMmJpbmwocyksIHMubGVuZ3RoICogSGFzaGVyVXRpbHMuY2hyc3opKTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMuc3RyX21kNSA9IGZ1bmN0aW9uIHN0cl9tZDUocykge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMuYmlubDJzdHIoSGFzaGVyVXRpbHMuY29yZV9tZDUoSGFzaGVyVXRpbHMuc3RyMmJpbmwocyksIHMubGVuZ3RoICogSGFzaGVyVXRpbHMuY2hyc3opKTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMuaGV4X2htYWNfbWQ1ID0gZnVuY3Rpb24gaGV4X2htYWNfbWQ1KGtleSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMuYmlubDJoZXgoSGFzaGVyVXRpbHMuY29yZV9obWFjX21kNShrZXksIGRhdGEpKTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMuYjY0X2htYWNfbWQ1ID0gZnVuY3Rpb24gYjY0X2htYWNfbWQ1KGtleSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMuYmlubDJiNjQoSGFzaGVyVXRpbHMuY29yZV9obWFjX21kNShrZXksIGRhdGEpKTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMuc3RyX2htYWNfbWQ1ID0gZnVuY3Rpb24gc3RyX2htYWNfbWQ1KGtleSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMuYmlubDJzdHIoSGFzaGVyVXRpbHMuY29yZV9obWFjX21kNShrZXksIGRhdGEpKTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMuYmFzZTY0X2VuY29kZSA9IGZ1bmN0aW9uIGJhc2U2NF9lbmNvZGUoZGF0YSkge1xuICAgICAgICAvLyBodHRwOi8va2V2aW4udmFuem9ubmV2ZWxkLm5ldFxuICAgICAgICAvLyArICAgb3JpZ2luYWwgYnk6IFR5bGVyIEFraW5zIChodHRwOi8vcnVta2luLmNvbSlcbiAgICAgICAgLy8gKyAgIGltcHJvdmVkIGJ5OiBCYXlyb24gR3VldmFyYVxuICAgICAgICAvLyArICAgaW1wcm92ZWQgYnk6IFRodW5kZXIubVxuICAgICAgICAvLyArICAgaW1wcm92ZWQgYnk6IEtldmluIHZhbiBab25uZXZlbGQgKGh0dHA6Ly9rZXZpbi52YW56b25uZXZlbGQubmV0KVxuICAgICAgICAvLyArICAgYnVnZml4ZWQgYnk6IFBlbGxlbnRlc3F1ZSBNYWxlc3VhZGFcbiAgICAgICAgLy8gKyAgIGltcHJvdmVkIGJ5OiBLZXZpbiB2YW4gWm9ubmV2ZWxkIChodHRwOi8va2V2aW4udmFuem9ubmV2ZWxkLm5ldClcbiAgICAgICAgLy8gLSAgICBkZXBlbmRzIG9uOiB1dGY4X2VuY29kZVxuICAgICAgICAvLyAqICAgICBleGFtcGxlIDE6IGJhc2U2NF9lbmNvZGUoJ0tldmluIHZhbiBab25uZXZlbGQnKTtcbiAgICAgICAgLy8gKiAgICAgcmV0dXJucyAxOiAnUzJWMmFXNGdkbUZ1SUZwdmJtNWxkbVZzWkE9PSdcblxuICAgICAgICAvLyBtb3ppbGxhIGhhcyB0aGlzIG5hdGl2ZVxuICAgICAgICAvLyAtIGJ1dCBicmVha3MgaW4gMi4wLjAuMTIhXG4gICAgICAgIC8vaWYgKHR5cGVvZiB3aW5kb3dbJ2F0b2InXSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vICAgIHJldHVybiBhdG9iKGRhdGEpO1xuICAgICAgICAvL31cblxuICAgICAgICB2YXIgYjY0ID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwiO1xuICAgICAgICB2YXIgbzEsXG4gICAgICAgICAgICBvMixcbiAgICAgICAgICAgIG8zLFxuICAgICAgICAgICAgaDEsXG4gICAgICAgICAgICBoMixcbiAgICAgICAgICAgIGgzLFxuICAgICAgICAgICAgaDQsXG4gICAgICAgICAgICBiaXRzLFxuICAgICAgICAgICAgaSA9IDAsXG4gICAgICAgICAgICBhYyA9IDAsXG4gICAgICAgICAgICBlbmMsXG4gICAgICAgICAgICB0bXBfYXJyID0gW107XG5cbiAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGEgPSBIYXNoZXJVdGlscy51dGY4X2VuY29kZShkYXRhICsgJycpO1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIC8vIHBhY2sgdGhyZWUgb2N0ZXRzIGludG8gZm91ciBoZXhldHNcbiAgICAgICAgICAgIG8xID0gZGF0YS5jaGFyQ29kZUF0KGkrKyk7XG4gICAgICAgICAgICBvMiA9IGRhdGEuY2hhckNvZGVBdChpKyspO1xuICAgICAgICAgICAgbzMgPSBkYXRhLmNoYXJDb2RlQXQoaSsrKTtcblxuICAgICAgICAgICAgYml0cyA9IG8xIDw8IDE2IHwgbzIgPDwgOCB8IG8zO1xuXG4gICAgICAgICAgICBoMSA9IGJpdHMgPj4gMTggJiAweDNmO1xuICAgICAgICAgICAgaDIgPSBiaXRzID4+IDEyICYgMHgzZjtcbiAgICAgICAgICAgIGgzID0gYml0cyA+PiA2ICYgMHgzZjtcbiAgICAgICAgICAgIGg0ID0gYml0cyAmIDB4M2Y7XG5cbiAgICAgICAgICAgIC8vIHVzZSBoZXhldHMgdG8gaW5kZXggaW50byBiNjQsIGFuZCBhcHBlbmQgcmVzdWx0IHRvIGVuY29kZWQgc3RyaW5nXG4gICAgICAgICAgICB0bXBfYXJyW2FjKytdID0gYjY0LmNoYXJBdChoMSkgKyBiNjQuY2hhckF0KGgyKSArIGI2NC5jaGFyQXQoaDMpICsgYjY0LmNoYXJBdChoNCk7XG4gICAgICAgIH0gd2hpbGUgKGkgPCBkYXRhLmxlbmd0aCk7XG5cbiAgICAgICAgZW5jID0gdG1wX2Fyci5qb2luKCcnKTtcblxuICAgICAgICBzd2l0Y2ggKGRhdGEubGVuZ3RoICUgMykge1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIGVuYyA9IGVuYy5zbGljZSgwLCAtMikgKyAnPT0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIGVuYyA9IGVuYy5zbGljZSgwLCAtMSkgKyAnPSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZW5jO1xuICAgIH07XG5cbiAgICBIYXNoZXJVdGlscy51dGY4X2VuY29kZSA9IGZ1bmN0aW9uIHV0ZjhfZW5jb2RlKHN0cmluZykge1xuICAgICAgICAvLyBodHRwOi8va2V2aW4udmFuem9ubmV2ZWxkLm5ldFxuICAgICAgICAvLyArICAgb3JpZ2luYWwgYnk6IFdlYnRvb2xraXQuaW5mbyAoaHR0cDovL3d3dy53ZWJ0b29sa2l0LmluZm8vKVxuICAgICAgICAvLyArICAgaW1wcm92ZWQgYnk6IEtldmluIHZhbiBab25uZXZlbGQgKGh0dHA6Ly9rZXZpbi52YW56b25uZXZlbGQubmV0KVxuICAgICAgICAvLyArICAgaW1wcm92ZWQgYnk6IHNvd2JlcnJ5XG4gICAgICAgIC8vICsgICAgdHdlYWtlZCBieTogSmFja1xuICAgICAgICAvLyArICAgYnVnZml4ZWQgYnk6IE9ubm8gTWFyc21hblxuICAgICAgICAvLyArICAgaW1wcm92ZWQgYnk6IFl2ZXMgU3VjYWV0XG4gICAgICAgIC8vICsgICBidWdmaXhlZCBieTogT25ubyBNYXJzbWFuXG4gICAgICAgIC8vICogICAgIGV4YW1wbGUgMTogdXRmOF9lbmNvZGUoJ0tldmluIHZhbiBab25uZXZlbGQnKTtcbiAgICAgICAgLy8gKiAgICAgcmV0dXJucyAxOiAnS2V2aW4gdmFuIFpvbm5ldmVsZCdcblxuICAgICAgICBzdHJpbmcgPSAoc3RyaW5nICsgJycpLnJlcGxhY2UoL1xcclxcbi9nLCBcIlxcblwiKS5yZXBsYWNlKC9cXHIvZywgXCJcXG5cIik7XG5cbiAgICAgICAgdmFyIHV0ZnRleHQgPSBcIlwiO1xuICAgICAgICB2YXIgc3RhcnQsIGVuZDtcbiAgICAgICAgdmFyIHN0cmluZ2w7XG5cbiAgICAgICAgc3RhcnQgPSBlbmQgPSAwO1xuICAgICAgICBzdHJpbmdsID0gc3RyaW5nLmxlbmd0aDtcbiAgICAgICAgZm9yICh2YXIgbiA9IDA7IG4gPCBzdHJpbmdsOyBuKyspIHtcbiAgICAgICAgICAgIHZhciBjMSA9IHN0cmluZy5jaGFyQ29kZUF0KG4pO1xuICAgICAgICAgICAgdmFyIGVuYyA9IG51bGw7XG5cbiAgICAgICAgICAgIGlmIChjMSA8IDEyOCkge1xuICAgICAgICAgICAgICAgIGVuZCsrO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjMSA+IDEyNyAmJiBjMSA8IDIwNDgpIHtcbiAgICAgICAgICAgICAgICBlbmMgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMxID4+IDYgfCAxOTIpICsgU3RyaW5nLmZyb21DaGFyQ29kZShjMSAmIDYzIHwgMTI4KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW5jID0gU3RyaW5nLmZyb21DaGFyQ29kZShjMSA+PiAxMiB8IDIyNCkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGMxID4+IDYgJiA2MyB8IDEyOCkgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGMxICYgNjMgfCAxMjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVuYyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIHV0ZnRleHQgKz0gc3RyaW5nLnN1YnN0cmluZyhzdGFydCwgZW5kKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdXRmdGV4dCArPSBlbmM7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSBlbmQgPSBuICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgdXRmdGV4dCArPSBzdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBzdHJpbmcubGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1dGZ0ZXh0O1xuICAgIH07XG5cbiAgICAvKlxuICAgICAqIFBlcmZvcm0gYSBzaW1wbGUgc2VsZi10ZXN0IHRvIHNlZSBpZiB0aGUgVk0gaXMgd29ya2luZ1xuICAgICAqL1xuXG4gICAgSGFzaGVyVXRpbHMubWQ1X3ZtX3Rlc3QgPSBmdW5jdGlvbiBtZDVfdm1fdGVzdCgpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLmhleF9tZDUoXCJhYmNcIikgPT0gXCI5MDAxNTA5ODNjZDI0ZmIwZDY5NjNmN2QyOGUxN2Y3MlwiO1xuICAgIH07XG5cbiAgICAvKlxuICAgICAqIENhbGN1bGF0ZSB0aGUgTUQ1IG9mIGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHMsIGFuZCBhIGJpdCBsZW5ndGhcbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLmNvcmVfbWQ1ID0gZnVuY3Rpb24gY29yZV9tZDUoeCwgbGVuKSB7XG4gICAgICAgIC8qIGFwcGVuZCBwYWRkaW5nICovXG4gICAgICAgIHhbbGVuID4+IDVdIHw9IDB4ODAgPDwgbGVuICUgMzI7XG4gICAgICAgIHhbKGxlbiArIDY0ID4+PiA5IDw8IDQpICsgMTRdID0gbGVuO1xuXG4gICAgICAgIHZhciBhID0gMTczMjU4NDE5MztcbiAgICAgICAgdmFyIGIgPSAtMjcxNzMzODc5O1xuICAgICAgICB2YXIgYyA9IC0xNzMyNTg0MTk0O1xuICAgICAgICB2YXIgZCA9IDI3MTczMzg3ODtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHgubGVuZ3RoOyBpICs9IDE2KSB7XG4gICAgICAgICAgICB2YXIgb2xkYSA9IGE7XG4gICAgICAgICAgICB2YXIgb2xkYiA9IGI7XG4gICAgICAgICAgICB2YXIgb2xkYyA9IGM7XG4gICAgICAgICAgICB2YXIgb2xkZCA9IGQ7XG5cbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgMF0sIDcsIC02ODA4NzY5MzYpO1xuICAgICAgICAgICAgZCA9IEhhc2hlclV0aWxzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyAxXSwgMTIsIC0zODk1NjQ1ODYpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9mZihjLCBkLCBhLCBiLCB4W2kgKyAyXSwgMTcsIDYwNjEwNTgxOSk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGIsIGMsIGQsIGEsIHhbaSArIDNdLCAyMiwgLTEwNDQ1MjUzMzApO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9mZihhLCBiLCBjLCBkLCB4W2kgKyA0XSwgNywgLTE3NjQxODg5Nyk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGQsIGEsIGIsIGMsIHhbaSArIDVdLCAxMiwgMTIwMDA4MDQyNik7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSArIDZdLCAxNywgLTE0NzMyMzEzNDEpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyA3XSwgMjIsIC00NTcwNTk4Myk7XG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGEsIGIsIGMsIGQsIHhbaSArIDhdLCA3LCAxNzcwMDM1NDE2KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfZmYoZCwgYSwgYiwgYywgeFtpICsgOV0sIDEyLCAtMTk1ODQxNDQxNyk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSArIDEwXSwgMTcsIC00MjA2Myk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGIsIGMsIGQsIGEsIHhbaSArIDExXSwgMjIsIC0xOTkwNDA0MTYyKTtcbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgMTJdLCA3LCAxODA0NjAzNjgyKTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfZmYoZCwgYSwgYiwgYywgeFtpICsgMTNdLCAxMiwgLTQwMzQxMTAxKTtcbiAgICAgICAgICAgIGMgPSBIYXNoZXJVdGlscy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgMTRdLCAxNywgLTE1MDIwMDIyOTApO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAxNV0sIDIyLCAxMjM2NTM1MzI5KTtcblxuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyAxXSwgNSwgLTE2NTc5NjUxMCk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArIDZdLCA5LCAtMTA2OTUwMTYzMik7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSArIDExXSwgMTQsIDY0MzcxNzcxMyk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArIDBdLCAyMCwgLTM3Mzg5NzMwMik7XG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArIDVdLCA1LCAtNzAxNTU4NjkxKTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfZ2coZCwgYSwgYiwgYywgeFtpICsgMTBdLCA5LCAzODAxNjA4Myk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSArIDE1XSwgMTQsIC02NjA0NzgzMzUpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2kgKyA0XSwgMjAsIC00MDU1Mzc4NDgpO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyA5XSwgNSwgNTY4NDQ2NDM4KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfZ2coZCwgYSwgYiwgYywgeFtpICsgMTRdLCA5LCAtMTAxOTgwMzY5MCk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSArIDNdLCAxNCwgLTE4NzM2Mzk2MSk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArIDhdLCAyMCwgMTE2MzUzMTUwMSk7XG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSArIDEzXSwgNSwgLTE0NDQ2ODE0NjcpO1xuICAgICAgICAgICAgZCA9IEhhc2hlclV0aWxzLm1kNV9nZyhkLCBhLCBiLCBjLCB4W2kgKyAyXSwgOSwgLTUxNDAzNzg0KTtcbiAgICAgICAgICAgIGMgPSBIYXNoZXJVdGlscy5tZDVfZ2coYywgZCwgYSwgYiwgeFtpICsgN10sIDE0LCAxNzM1MzI4NDczKTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfZ2coYiwgYywgZCwgYSwgeFtpICsgMTJdLCAyMCwgLTE5MjY2MDc3MzQpO1xuXG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArIDVdLCA0LCAtMzc4NTU4KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfaGgoZCwgYSwgYiwgYywgeFtpICsgOF0sIDExLCAtMjAyMjU3NDQ2Myk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArIDExXSwgMTYsIDE4MzkwMzA1NjIpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9oaChiLCBjLCBkLCBhLCB4W2kgKyAxNF0sIDIzLCAtMzUzMDk1NTYpO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAxXSwgNCwgLTE1MzA5OTIwNjApO1xuICAgICAgICAgICAgZCA9IEhhc2hlclV0aWxzLm1kNV9oaChkLCBhLCBiLCBjLCB4W2kgKyA0XSwgMTEsIDEyNzI4OTMzNTMpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyA3XSwgMTYsIC0xNTU0OTc2MzIpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9oaChiLCBjLCBkLCBhLCB4W2kgKyAxMF0sIDIzLCAtMTA5NDczMDY0MCk7XG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArIDEzXSwgNCwgNjgxMjc5MTc0KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfaGgoZCwgYSwgYiwgYywgeFtpICsgMF0sIDExLCAtMzU4NTM3MjIyKTtcbiAgICAgICAgICAgIGMgPSBIYXNoZXJVdGlscy5tZDVfaGgoYywgZCwgYSwgYiwgeFtpICsgM10sIDE2LCAtNzIyNTIxOTc5KTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfaGgoYiwgYywgZCwgYSwgeFtpICsgNl0sIDIzLCA3NjAyOTE4OSk7XG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSArIDldLCA0LCAtNjQwMzY0NDg3KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfaGgoZCwgYSwgYiwgYywgeFtpICsgMTJdLCAxMSwgLTQyMTgxNTgzNSk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArIDE1XSwgMTYsIDUzMDc0MjUyMCk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArIDJdLCAyMywgLTk5NTMzODY1MSk7XG5cbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfaWkoYSwgYiwgYywgZCwgeFtpICsgMF0sIDYsIC0xOTg2MzA4NDQpO1xuICAgICAgICAgICAgZCA9IEhhc2hlclV0aWxzLm1kNV9paShkLCBhLCBiLCBjLCB4W2kgKyA3XSwgMTAsIDExMjY4OTE0MTUpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAxNF0sIDE1LCAtMTQxNjM1NDkwNSk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2lpKGIsIGMsIGQsIGEsIHhbaSArIDVdLCAyMSwgLTU3NDM0MDU1KTtcbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfaWkoYSwgYiwgYywgZCwgeFtpICsgMTJdLCA2LCAxNzAwNDg1NTcxKTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgM10sIDEwLCAtMTg5NDk4NjYwNik7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2lpKGMsIGQsIGEsIGIsIHhbaSArIDEwXSwgMTUsIC0xMDUxNTIzKTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfaWkoYiwgYywgZCwgYSwgeFtpICsgMV0sIDIxLCAtMjA1NDkyMjc5OSk7XG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArIDhdLCA2LCAxODczMzEzMzU5KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgMTVdLCAxMCwgLTMwNjExNzQ0KTtcbiAgICAgICAgICAgIGMgPSBIYXNoZXJVdGlscy5tZDVfaWkoYywgZCwgYSwgYiwgeFtpICsgNl0sIDE1LCAtMTU2MDE5ODM4MCk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2lpKGIsIGMsIGQsIGEsIHhbaSArIDEzXSwgMjEsIDEzMDkxNTE2NDkpO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9paShhLCBiLCBjLCBkLCB4W2kgKyA0XSwgNiwgLTE0NTUyMzA3MCk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSArIDExXSwgMTAsIC0xMTIwMjEwMzc5KTtcbiAgICAgICAgICAgIGMgPSBIYXNoZXJVdGlscy5tZDVfaWkoYywgZCwgYSwgYiwgeFtpICsgMl0sIDE1LCA3MTg3ODcyNTkpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyA5XSwgMjEsIC0zNDM0ODU1NTEpO1xuXG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMuc2FmZV9hZGQoYSwgb2xkYSk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMuc2FmZV9hZGQoYiwgb2xkYik7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMuc2FmZV9hZGQoYywgb2xkYyk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMuc2FmZV9hZGQoZCwgb2xkZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFthLCBiLCBjLCBkXTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBUaGVzZSBmdW5jdGlvbnMgaW1wbGVtZW50IHRoZSBmb3VyIGJhc2ljIG9wZXJhdGlvbnMgdGhlIGFsZ29yaXRobSB1c2VzLlxuICAgICAqL1xuXG4gICAgSGFzaGVyVXRpbHMubWQ1X2NtbiA9IGZ1bmN0aW9uIG1kNV9jbW4ocSwgYSwgYiwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMuc2FmZV9hZGQoSGFzaGVyVXRpbHMuYml0X3JvbChIYXNoZXJVdGlscy5zYWZlX2FkZChIYXNoZXJVdGlscy5zYWZlX2FkZChhLCBxKSwgSGFzaGVyVXRpbHMuc2FmZV9hZGQoeCwgdCkpLCBzKSwgYik7XG4gICAgfTtcblxuICAgIEhhc2hlclV0aWxzLm1kNV9mZiA9IGZ1bmN0aW9uIG1kNV9mZihhLCBiLCBjLCBkLCB4LCBzLCB0KSB7XG4gICAgICAgIHJldHVybiBIYXNoZXJVdGlscy5tZDVfY21uKGIgJiBjIHwgfmIgJiBkLCBhLCBiLCB4LCBzLCB0KTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMubWQ1X2dnID0gZnVuY3Rpb24gbWQ1X2dnKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLm1kNV9jbW4oYiAmIGQgfCBjICYgfmQsIGEsIGIsIHgsIHMsIHQpO1xuICAgIH07XG5cbiAgICBIYXNoZXJVdGlscy5tZDVfaGggPSBmdW5jdGlvbiBtZDVfaGgoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMubWQ1X2NtbihiIF4gYyBeIGQsIGEsIGIsIHgsIHMsIHQpO1xuICAgIH07XG5cbiAgICBIYXNoZXJVdGlscy5tZDVfaWkgPSBmdW5jdGlvbiBtZDVfaWkoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMubWQ1X2NtbihjIF4gKGIgfCB+ZCksIGEsIGIsIHgsIHMsIHQpO1xuICAgIH07XG5cbiAgICAvKlxuICAgICAqIENhbGN1bGF0ZSB0aGUgSE1BQy1NRDUsIG9mIGEga2V5IGFuZCBzb21lIGRhdGFcbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLmNvcmVfaG1hY19tZDUgPSBmdW5jdGlvbiBjb3JlX2htYWNfbWQ1KGtleSwgZGF0YSkge1xuICAgICAgICB2YXIgYmtleSA9IEhhc2hlclV0aWxzLnN0cjJiaW5sKGtleSk7XG4gICAgICAgIGlmIChia2V5Lmxlbmd0aCA+IDE2KSBia2V5ID0gSGFzaGVyVXRpbHMuY29yZV9tZDUoYmtleSwga2V5Lmxlbmd0aCAqIEhhc2hlclV0aWxzLmNocnN6KTtcblxuICAgICAgICB2YXIgaXBhZCA9IG5ldyBBcnJheSgxNiksXG4gICAgICAgICAgICBvcGFkID0gbmV3IEFycmF5KDE2KTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG4gICAgICAgICAgICBpcGFkW2ldID0gYmtleVtpXSBeIDB4MzYzNjM2MzY7XG4gICAgICAgICAgICBvcGFkW2ldID0gYmtleVtpXSBeIDB4NUM1QzVDNUM7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaGFzaCA9IEhhc2hlclV0aWxzLmNvcmVfbWQ1KGlwYWQuY29uY2F0KEhhc2hlclV0aWxzLnN0cjJiaW5sKGRhdGEpKSwgNTEyICsgZGF0YS5sZW5ndGggKiBIYXNoZXJVdGlscy5jaHJzeik7XG4gICAgICAgIHJldHVybiBIYXNoZXJVdGlscy5jb3JlX21kNShvcGFkLmNvbmNhdChoYXNoKSwgNTEyICsgMTI4KTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBBZGQgaW50ZWdlcnMsIHdyYXBwaW5nIGF0IDJeMzIuIFRoaXMgdXNlcyAxNi1iaXQgb3BlcmF0aW9ucyBpbnRlcm5hbGx5XG4gICAgICogdG8gd29yayBhcm91bmQgYnVncyBpbiBzb21lIEpTIGludGVycHJldGVycy5cbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLnNhZmVfYWRkID0gZnVuY3Rpb24gc2FmZV9hZGQoeCwgeSkge1xuICAgICAgICB2YXIgbHN3ID0gKHggJiAweEZGRkYpICsgKHkgJiAweEZGRkYpO1xuICAgICAgICB2YXIgbXN3ID0gKHggPj4gMTYpICsgKHkgPj4gMTYpICsgKGxzdyA+PiAxNik7XG4gICAgICAgIHJldHVybiBtc3cgPDwgMTYgfCBsc3cgJiAweEZGRkY7XG4gICAgfTtcblxuICAgIC8qXG4gICAgICogQml0d2lzZSByb3RhdGUgYSAzMi1iaXQgbnVtYmVyIHRvIHRoZSBsZWZ0LlxuICAgICAqL1xuXG4gICAgSGFzaGVyVXRpbHMuYml0X3JvbCA9IGZ1bmN0aW9uIGJpdF9yb2wobnVtLCBjbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bSA8PCBjbnQgfCBudW0gPj4+IDMyIC0gY250O1xuICAgIH07XG5cbiAgICAvKlxuICAgICAqIENvbnZlcnQgYSBzdHJpbmcgdG8gYW4gYXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3Jkc1xuICAgICAqIElmIEhhc2hlclV0aWxzLmNocnN6IGlzIEFTQ0lJLCBjaGFyYWN0ZXJzID4yNTUgaGF2ZSB0aGVpciBoaS1ieXRlIHNpbGVudGx5IGlnbm9yZWQuXG4gICAgICovXG5cbiAgICBIYXNoZXJVdGlscy5zdHIyYmlubCA9IGZ1bmN0aW9uIHN0cjJiaW5sKHN0cikge1xuICAgICAgICB2YXIgYmluID0gW107XG4gICAgICAgIHZhciBtYXNrID0gKDEgPDwgSGFzaGVyVXRpbHMuY2hyc3opIC0gMTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoICogSGFzaGVyVXRpbHMuY2hyc3o7IGkgKz0gSGFzaGVyVXRpbHMuY2hyc3opIGJpbltpID4+IDVdIHw9IChzdHIuY2hhckNvZGVBdChpIC8gSGFzaGVyVXRpbHMuY2hyc3opICYgbWFzaykgPDwgaSAlIDMyO1xuICAgICAgICByZXR1cm4gYmluO1xuICAgIH07XG5cbiAgICAvKlxuICAgICAqIENvbnZlcnQgYW4gYXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcyB0byBhIHN0cmluZ1xuICAgICAqL1xuXG4gICAgSGFzaGVyVXRpbHMuYmlubDJzdHIgPSBmdW5jdGlvbiBiaW5sMnN0cihiaW4pIHtcbiAgICAgICAgdmFyIHN0ciA9IFwiXCI7XG4gICAgICAgIHZhciBtYXNrID0gKDEgPDwgSGFzaGVyVXRpbHMuY2hyc3opIC0gMTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiaW4ubGVuZ3RoICogMzI7IGkgKz0gSGFzaGVyVXRpbHMuY2hyc3opIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJpbltpID4+IDVdID4+PiBpICUgMzIgJiBtYXNrKTtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBDb252ZXJ0IGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHMgdG8gYSBoZXggc3RyaW5nLlxuICAgICAqL1xuXG4gICAgSGFzaGVyVXRpbHMuYmlubDJoZXggPSBmdW5jdGlvbiBiaW5sMmhleChiaW5hcnJheSkge1xuICAgICAgICB2YXIgaGV4X3RhYiA9IEhhc2hlclV0aWxzLmhleGNhc2UgPyBcIjAxMjM0NTY3ODlBQkNERUZcIiA6IFwiMDEyMzQ1Njc4OWFiY2RlZlwiO1xuICAgICAgICB2YXIgc3RyID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiaW5hcnJheS5sZW5ndGggKiA0OyBpKyspIHtcbiAgICAgICAgICAgIHN0ciArPSBoZXhfdGFiLmNoYXJBdChiaW5hcnJheVtpID4+IDJdID4+IGkgJSA0ICogOCArIDQgJiAweEYpICsgaGV4X3RhYi5jaGFyQXQoYmluYXJyYXlbaSA+PiAyXSA+PiBpICUgNCAqIDggJiAweEYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfTtcblxuICAgIC8qXG4gICAgICogQ29udmVydCBhbiBhcnJheSBvZiBsaXR0bGUtZW5kaWFuIHdvcmRzIHRvIGEgYmFzZS02NCBzdHJpbmdcbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLmJpbmwyYjY0ID0gZnVuY3Rpb24gYmlubDJiNjQoYmluYXJyYXkpIHtcbiAgICAgICAgdmFyIHRhYiA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL1wiO1xuICAgICAgICB2YXIgc3RyID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiaW5hcnJheS5sZW5ndGggKiA0OyBpICs9IDMpIHtcbiAgICAgICAgICAgIHZhciB0cmlwbGV0ID0gKGJpbmFycmF5W2kgPj4gMl0gPj4gOCAqIChpICUgNCkgJiAweEZGKSA8PCAxNiB8IChiaW5hcnJheVtpICsgMSA+PiAyXSA+PiA4ICogKChpICsgMSkgJSA0KSAmIDB4RkYpIDw8IDggfCBiaW5hcnJheVtpICsgMiA+PiAyXSA+PiA4ICogKChpICsgMikgJSA0KSAmIDB4RkY7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDQ7IGorKykge1xuICAgICAgICAgICAgICAgIGlmIChpICogOCArIGogKiA2ID4gYmluYXJyYXkubGVuZ3RoICogMzIpIHN0ciArPSBIYXNoZXJVdGlscy5iNjRwYWQ7ZWxzZSBzdHIgKz0gdGFiLmNoYXJBdCh0cmlwbGV0ID4+IDYgKiAoMyAtIGopICYgMHgzRik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEhhc2hlclV0aWxzO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSGFzaGVyVXRpbHM7XG5IYXNoZXJVdGlscy5oZXhjYXNlID0gMDsgLyogaGV4IG91dHB1dCBmb3JtYXQuIDAgLSBsb3dlcmNhc2U7IDEgLSB1cHBlcmNhc2UgICAgICAgICovXG5IYXNoZXJVdGlscy5iNjRwYWQgPSBcIlwiOyAvKiBiYXNlLTY0IHBhZCBjaGFyYWN0ZXIuIFwiPVwiIGZvciBzdHJpY3QgUkZDIGNvbXBsaWFuY2UgICAqL1xuSGFzaGVyVXRpbHMuY2hyc3ogPSA4OyAvKiBiaXRzIHBlciBpbnB1dCBjaGFyYWN0ZXIuIDggLSBBU0NJSTsgMTYgLSBVbmljb2RlICAgICAgKi9cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tLz4uXG4gKlxuICovXG4vKipcbiAqIFV0aWxpdGFyeSBjbGFzcyBmb3IgbGFuZ3VhZ2Ugc3BlY2lmaWMgbWV0aG9kc1xuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgTGFuZ1V0aWxzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBMYW5nVXRpbHMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMYW5nVXRpbHMpO1xuICAgIH1cblxuICAgIExhbmdVdGlscy5hcnJheVdpdGhvdXQgPSBmdW5jdGlvbiBhcnJheVdpdGhvdXQoYXJyYXksIGtleSkge1xuICAgICAgICBpZiAoIWFycmF5Lmxlbmd0aCkgcmV0dXJuIGFycmF5O1xuICAgICAgICBpZiAoa2V5ID49IGFycmF5Lmxlbmd0aCkgcmV0dXJuIGFycmF5O1xuICAgICAgICB2YXIgbmV3QXJyYXk7XG4gICAgICAgIGlmIChrZXkgPT0gMCkgbmV3QXJyYXkgPSBhcnJheS5zbGljZSgxKTtlbHNlIGlmIChrZXkgPT0gYXJyYXkubGVuZ3RoIC0gMSkgbmV3QXJyYXkgPSBhcnJheS5zbGljZSgwLCAtMSk7ZWxzZSBuZXdBcnJheSA9IGFycmF5LnNsaWNlKDAsIGtleSkuY29uY2F0KGFycmF5LnNsaWNlKGtleSArIDEpKTtcbiAgICAgICAgcmV0dXJuIG5ld0FycmF5O1xuICAgIH07XG5cbiAgICBMYW5nVXRpbHMub2JqZWN0TWVyZ2UgPSBmdW5jdGlvbiBvYmplY3RNZXJnZShvYmoxLCBvYmoyKSB7XG4gICAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgb2JqMSwgb2JqMik7XG4gICAgfTtcblxuICAgIExhbmdVdGlscy5wYXJzZVVybCA9IGZ1bmN0aW9uIHBhcnNlVXJsKGRhdGEpIHtcbiAgICAgICAgdmFyIG1hdGNoZXMgPSBbXTtcbiAgICAgICAgLy92YXIgZT0vKChodHRwfGZ0cCk6XFwvKT9cXC8/KFteOlxcL1xcc10rKSgoXFwvXFx3KykqXFwvKShbXFx3XFwtXFwuXStcXC5bXiM/XFxzXSspKCNbXFx3XFwtXSspPy87XG4gICAgICAgIHZhciBkZXRlY3QgPSAvKHB5ZGlvOlxcLyk/XFwvPyhbXjpcXC9cXHNdKykoKFxcL1xcdyspKlxcLykoLiopKCNbXFx3XFwtXSspPy9nO1xuICAgICAgICB2YXIgcmVzdWx0cyA9IGRhdGEubWF0Y2goZGV0ZWN0KTtcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBlID0gL14oKHB5ZGlvKTpcXC8pP1xcLz8oW146XFwvXFxzXSspKChcXC9cXHcrKSpcXC8pKC4qKSgjW1xcd1xcLV0rKT8kLztcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHRzW2ldLm1hdGNoKGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaCh7IHVybDogUmVnRXhwWyckJiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w6IFJlZ0V4cC4kMixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Q6IFJlZ0V4cC4kMyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFJlZ0V4cC4kNCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IFJlZ0V4cC4kNixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc2g6IFJlZ0V4cC4kNyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hdGNoZXM7XG4gICAgfTtcblxuICAgIExhbmdVdGlscy5jb21wdXRlU3RyaW5nU2x1ZyA9IGZ1bmN0aW9uIGNvbXB1dGVTdHJpbmdTbHVnKHZhbHVlKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBMYW5nVXRpbHMuc2x1Z1RhYmxlLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoTGFuZ1V0aWxzLnNsdWdUYWJsZVtpXS5yZSwgTGFuZ1V0aWxzLnNsdWdUYWJsZVtpXS5jaCk7XG5cbiAgICAgICAgLy8gMSkgbWV0IGVuIGJhcyBkZSBjYXNzZVxuICAgICAgICAvLyAyKSByZW1wbGFjZSBsZXMgZXNwYWNlIHBhciBkZXMgdGlyZXRzXG4gICAgICAgIC8vIDMpIGVubGV2ZSB0b3V0IGxlcyBjYXJhdMOocmVzIG5vbiBhbHBoYW51bWVyaXF1ZXNcbiAgICAgICAgLy8gNCkgZW5sw6h2ZSBsZXMgZG91YmxlcyB0aXJldHNcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpLnJlcGxhY2UoL1teYS16MC05LV0vZywgJycpLnJlcGxhY2UoL1xcLXsyLH0vZywgJy0nKTtcbiAgICB9O1xuXG4gICAgTGFuZ1V0aWxzLmZvcmNlSlNPTkFycmF5VG9PYmplY3QgPSBmdW5jdGlvbiBmb3JjZUpTT05BcnJheVRvT2JqZWN0KGNvbnRhaW5lciwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGNvbnRhaW5lclt2YWx1ZV0gaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgLy8gQ2xvbmVcbiAgICAgICAgICAgIHZhciBjb3B5ID0gY29udGFpbmVyW3ZhbHVlXS5zbGljZSgwKTtcbiAgICAgICAgICAgIGNvbnRhaW5lclt2YWx1ZV0gPSB7fTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29weS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lclt2YWx1ZV1baV0gPSBjb3B5W2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIExhbmdVdGlscy5kZWVwQ29weSA9IGZ1bmN0aW9uIGRlZXBDb3B5KHNvdXJjZSkge1xuICAgICAgICByZXR1cm4gTGFuZ1V0aWxzLm1lcmdlT2JqZWN0c1JlY3Vyc2l2ZSh7fSwgc291cmNlKTtcbiAgICB9O1xuXG4gICAgTGFuZ1V0aWxzLnNpbXBsZUNvcHkgPSBmdW5jdGlvbiBzaW1wbGVDb3B5KHNvdXJjZSkge1xuICAgICAgICB2YXIgY29weSA9IHt9O1xuICAgICAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICAgICAgICAgICAgY29weVtwcm9wZXJ0eV0gPSBzb3VyY2VbcHJvcGVydHldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH07XG5cbiAgICBMYW5nVXRpbHMubWVyZ2VPYmplY3RzUmVjdXJzaXZlID0gZnVuY3Rpb24gbWVyZ2VPYmplY3RzUmVjdXJzaXZlKHNvdXJjZSwgZGVzdGluYXRpb24pIHtcbiAgICAgICAgdmFyIG5ld09iamVjdCA9IHt9LFxuICAgICAgICAgICAgcHJvcGVydHk7XG4gICAgICAgIGZvciAocHJvcGVydHkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoc291cmNlLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgICAgICAgICAgIC8vaWYgKHNvdXJjZVtwcm9wZXJ0eV0gPT09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGlmIChkZXN0aW5hdGlvbi5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtwcm9wZXJ0eV0gaW5zdGFuY2VvZiBPYmplY3QgJiYgZGVzdGluYXRpb24gaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09iamVjdFtwcm9wZXJ0eV0gPSBMYW5nVXRpbHMubWVyZ2VPYmplY3RzUmVjdXJzaXZlKHNvdXJjZVtwcm9wZXJ0eV0sIGRlc3RpbmF0aW9uW3Byb3BlcnR5XSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gZGVzdGluYXRpb25bcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtwcm9wZXJ0eV0gaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09iamVjdFtwcm9wZXJ0eV0gPSBMYW5nVXRpbHMubWVyZ2VPYmplY3RzUmVjdXJzaXZlKHNvdXJjZVtwcm9wZXJ0eV0sIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09iamVjdFtwcm9wZXJ0eV0gPSBzb3VyY2VbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAocHJvcGVydHkgaW4gZGVzdGluYXRpb24pIHtcbiAgICAgICAgICAgIGlmIChkZXN0aW5hdGlvbi5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkgJiYgIW5ld09iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkgLyomJiBkZXN0aW5hdGlvbltwcm9wZXJ0eV0gIT09IG51bGwqLykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVzdGluYXRpb25bcHJvcGVydHldIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gTGFuZ1V0aWxzLm1lcmdlT2JqZWN0c1JlY3Vyc2l2ZShkZXN0aW5hdGlvbltwcm9wZXJ0eV0sIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09iamVjdFtwcm9wZXJ0eV0gPSBkZXN0aW5hdGlvbltwcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld09iamVjdDtcbiAgICB9O1xuXG4gICAgTGFuZ1V0aWxzLm9iamVjdFZhbHVlcyA9IGZ1bmN0aW9uIG9iamVjdFZhbHVlcyhvYmplY3QpIHtcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gb2JqZWN0KSBpZiAob2JqZWN0Lmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKG9iamVjdFtwcm9wZXJ0eV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH07XG5cbiAgICBMYW5nVXRpbHMudHJpbUxlZnQgPSBmdW5jdGlvbiB0cmltTGVmdChzdHJpbmcsIGNoYXJsaXN0KSB7XG4gICAgICAgIGlmIChjaGFybGlzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjaGFybGlzdCA9IFwiXFxzXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKG5ldyBSZWdFeHAoXCJeW1wiICsgY2hhcmxpc3QgKyBcIl0rXCIpLCBcIlwiKTtcbiAgICB9O1xuXG4gICAgTGFuZ1V0aWxzLnRyaW1SaWdodCA9IGZ1bmN0aW9uIHRyaW1SaWdodChzdHJpbmcsIGNoYXJsaXN0KSB7XG4gICAgICAgIGlmIChjaGFybGlzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjaGFybGlzdCA9IFwiXFxzXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKG5ldyBSZWdFeHAoXCJbXCIgKyBjaGFybGlzdCArIFwiXSskXCIpLCBcIlwiKTtcbiAgICB9O1xuXG4gICAgTGFuZ1V0aWxzLnRyaW0gPSBmdW5jdGlvbiB0cmltKHN0cmluZywgY2hhcmxpc3QpIHtcbiAgICAgICAgcmV0dXJuIExhbmdVdGlscy50cmltTGVmdChMYW5nVXRpbHMudHJpbVJpZ2h0KHN0cmluZywgY2hhcmxpc3QpLCBjaGFybGlzdCk7XG4gICAgfTtcblxuICAgIExhbmdVdGlscy5hcnJheVNvcnRlciA9IGZ1bmN0aW9uIGFycmF5U29ydGVyKGtleSkge1xuICAgICAgICB2YXIgaXNGdW5jID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgaWYgKGlzRnVuYykge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFba2V5XSgpID4gYltrZXldKCkgPyAxIDogYVtrZXldKCkgPCBiW2tleV0oKSA/IC0xIDogMDtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYVtrZXldID4gYltrZXldID8gMSA6IGFba2V5XSA8IGJba2V5XSA/IC0xIDogMDtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIExhbmdVdGlscztcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IExhbmdVdGlscztcblxuTGFuZ1V0aWxzLnNsdWdUYWJsZSA9IFt7IHJlOiAvW1xceEMwLVxceEM2XS9nLCBjaDogJ0EnIH0sIHsgcmU6IC9bXFx4RTAtXFx4RTZdL2csIGNoOiAnYScgfSwgeyByZTogL1tcXHhDOC1cXHhDQl0vZywgY2g6ICdFJyB9LCB7IHJlOiAvW1xceEU4LVxceEVCXS9nLCBjaDogJ2UnIH0sIHsgcmU6IC9bXFx4Q0MtXFx4Q0ZdL2csIGNoOiAnSScgfSwgeyByZTogL1tcXHhFQy1cXHhFRl0vZywgY2g6ICdpJyB9LCB7IHJlOiAvW1xceEQyLVxceEQ2XS9nLCBjaDogJ08nIH0sIHsgcmU6IC9bXFx4RjItXFx4RjZdL2csIGNoOiAnbycgfSwgeyByZTogL1tcXHhEOS1cXHhEQ10vZywgY2g6ICdVJyB9LCB7IHJlOiAvW1xceEY5LVxceEZDXS9nLCBjaDogJ3UnIH0sIHsgcmU6IC9bXFx4QzctXFx4RTddL2csIGNoOiAnYycgfSwgeyByZTogL1tcXHhEMV0vZywgY2g6ICdOJyB9LCB7IHJlOiAvW1xceEYxXS9nLCBjaDogJ24nIH1dO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20vPi5cbiAqXG4gKi9cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9QeWRpbyA9IHJlcXVpcmUoJy4uL1B5ZGlvJyk7XG5cbnZhciBfUHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUHlkaW8pO1xuXG4vKipcbiAqIFV0aWxpdGFyeSBjbGFzcyBmb3IgbWFuaXB1bGF0aW5nIGZpbGUvZm9sZGVycyBwYXRoZXNcbiAqL1xuXG52YXIgUGF0aFV0aWxzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQYXRoVXRpbHMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQYXRoVXRpbHMpO1xuICAgIH1cblxuICAgIFBhdGhVdGlscy5nZXRCYXNlbmFtZSA9IGZ1bmN0aW9uIGdldEJhc2VuYW1lKGZpbGVOYW1lKSB7XG4gICAgICAgIGlmIChmaWxlTmFtZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2VwYXJhdG9yID0gXCIvXCI7XG4gICAgICAgIGlmIChmaWxlTmFtZS5pbmRleE9mKFwiXFxcXFwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHNlcGFyYXRvciA9IFwiXFxcXFwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWxlTmFtZS5zdWJzdHIoZmlsZU5hbWUubGFzdEluZGV4T2Yoc2VwYXJhdG9yKSArIDEsIGZpbGVOYW1lLmxlbmd0aCk7XG4gICAgfTtcblxuICAgIFBhdGhVdGlscy5nZXREaXJuYW1lID0gZnVuY3Rpb24gZ2V0RGlybmFtZShmaWxlTmFtZSkge1xuICAgICAgICByZXR1cm4gZmlsZU5hbWUuc3Vic3RyKDAsIGZpbGVOYW1lLmxhc3RJbmRleE9mKFwiL1wiKSk7XG4gICAgfTtcblxuICAgIFBhdGhVdGlscy5nZXRBanhwTWltZVR5cGUgPSBmdW5jdGlvbiBnZXRBanhwTWltZVR5cGUoaXRlbSkge1xuICAgICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5nZXQoJ2FqeHBfbWltZScpIHx8IFBhdGhVdGlscy5nZXRGaWxlRXh0ZW5zaW9uKGl0ZW0uZ2V0KCdmaWxlbmFtZScpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLmdldE1ldGFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5nZXRNZXRhZGF0YSgpLmdldCgnYWp4cF9taW1lJykgfHwgUGF0aFV0aWxzLmdldEZpbGVFeHRlbnNpb24oaXRlbS5nZXRQYXRoKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZ2V0QXR0cmlidXRlKCdhanhwX21pbWUnKSB8fCBQYXRoVXRpbHMuZ2V0RmlsZUV4dGVuc2lvbihpdGVtLmdldEF0dHJpYnV0ZSgnZmlsZW5hbWUnKSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUGF0aFV0aWxzLmdldEZpbGVFeHRlbnNpb24gPSBmdW5jdGlvbiBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lKSB7XG4gICAgICAgIGlmICghZmlsZU5hbWUgfHwgZmlsZU5hbWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzcGxpdCA9IFBhdGhVdGlscy5nZXRCYXNlbmFtZShmaWxlTmFtZSkuc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBzcGxpdFtzcGxpdC5sZW5ndGggLSAxXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9O1xuXG4gICAgUGF0aFV0aWxzLnJvdW5kRmlsZVNpemUgPSBmdW5jdGlvbiByb3VuZEZpbGVTaXplKGZpbGVzaXplKSB7XG4gICAgICAgIHZhciBtZXNzYWdlcyA9IF9QeWRpbzJbXCJkZWZhdWx0XCJdLmdldE1lc3NhZ2VzKCk7XG4gICAgICAgIHZhciBzaXplVW5pdCA9IG1lc3NhZ2VzW1wiYnl0ZV91bml0X3N5bWJvbFwiXSB8fCBcIkJcIjtcbiAgICAgICAgdmFyIHNpemUgPSBmaWxlc2l6ZTtcbiAgICAgICAgaWYgKGZpbGVzaXplID49IDEwNzM3NDE4MjQpIHtcbiAgICAgICAgICAgIHNpemUgPSBNYXRoLnJvdW5kKGZpbGVzaXplIC8gMTA3Mzc0MTgyNCAqIDEwMCkgLyAxMDAgKyBcIiBHXCIgKyBzaXplVW5pdDtcbiAgICAgICAgfSBlbHNlIGlmIChmaWxlc2l6ZSA+PSAxMDQ4NTc2KSB7XG4gICAgICAgICAgICBzaXplID0gTWF0aC5yb3VuZChmaWxlc2l6ZSAvIDEwNDg1NzYgKiAxMDApIC8gMTAwICsgXCIgTVwiICsgc2l6ZVVuaXQ7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsZXNpemUgPj0gMTAyNCkge1xuICAgICAgICAgICAgc2l6ZSA9IE1hdGgucm91bmQoZmlsZXNpemUgLyAxMDI0ICogMTAwKSAvIDEwMCArIFwiIEtcIiArIHNpemVVbml0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2l6ZSA9IGZpbGVzaXplICsgXCIgXCIgKyBzaXplVW5pdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2l6ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0ZU9iamVjdCBEYXRlXG4gICAgICogQHBhcmFtIGZvcm1hdCBTdHJpbmdcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cblxuICAgIFBhdGhVdGlscy5mb3JtYXRNb2RpZkRhdGUgPSBmdW5jdGlvbiBmb3JtYXRNb2RpZkRhdGUoZGF0ZU9iamVjdCwgZm9ybWF0KSB7XG4gICAgICAgIHZhciBmID0gZm9ybWF0O1xuICAgICAgICBpZiAoIWZvcm1hdCAmJiBweWRpbyAmJiBweWRpby5NZXNzYWdlSGFzaCkge1xuICAgICAgICAgICAgZiA9IF9QeWRpbzJbXCJkZWZhdWx0XCJdLmdldE1lc3NhZ2VzKClbXCJkYXRlX2Zvcm1hdFwiXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWYpIHtcbiAgICAgICAgICAgIHJldHVybiAnbm8gZm9ybWF0JztcbiAgICAgICAgfVxuICAgICAgICBmID0gZi5yZXBsYWNlKFwiZFwiLCBkYXRlT2JqZWN0LmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZU9iamVjdC5nZXREYXRlKCkgOiBkYXRlT2JqZWN0LmdldERhdGUoKSk7XG4gICAgICAgIGYgPSBmLnJlcGxhY2UoXCJEXCIsIGRhdGVPYmplY3QuZ2V0RGF5KCkpO1xuICAgICAgICBmID0gZi5yZXBsYWNlKFwiWVwiLCBkYXRlT2JqZWN0LmdldEZ1bGxZZWFyKCkpO1xuICAgICAgICBmID0gZi5yZXBsYWNlKFwieVwiLCBkYXRlT2JqZWN0LmdldFllYXIoKSk7XG4gICAgICAgIHZhciBtb250aCA9IGRhdGVPYmplY3QuZ2V0TW9udGgoKSArIDE7XG4gICAgICAgIGYgPSBmLnJlcGxhY2UoXCJtXCIsIG1vbnRoIDwgMTAgPyAnMCcgKyBtb250aCA6IG1vbnRoKTtcbiAgICAgICAgZiA9IGYucmVwbGFjZShcIkhcIiwgKGRhdGVPYmplY3QuZ2V0SG91cnMoKSA8IDEwID8gJzAnIDogJycpICsgZGF0ZU9iamVjdC5nZXRIb3VycygpKTtcbiAgICAgICAgLy8gU3VwcG9ydCAxMiBob3VyIGYgY29tcGF0aWJpbGl0eVxuICAgICAgICBmID0gZi5yZXBsYWNlKFwiaFwiLCBkYXRlT2JqZWN0LmdldEhvdXJzKCkgJSAxMiB8fCAxMik7XG4gICAgICAgIGYgPSBmLnJlcGxhY2UoXCJwXCIsIGRhdGVPYmplY3QuZ2V0SG91cnMoKSA8IDEyID8gXCJhbVwiIDogXCJwbVwiKTtcbiAgICAgICAgZiA9IGYucmVwbGFjZShcIlBcIiwgZGF0ZU9iamVjdC5nZXRIb3VycygpIDwgMTIgPyBcIkFNXCIgOiBcIlBNXCIpO1xuICAgICAgICBmID0gZi5yZXBsYWNlKFwiaVwiLCAoZGF0ZU9iamVjdC5nZXRNaW51dGVzKCkgPCAxMCA/ICcwJyA6ICcnKSArIGRhdGVPYmplY3QuZ2V0TWludXRlcygpKTtcbiAgICAgICAgZiA9IGYucmVwbGFjZShcInNcIiwgKGRhdGVPYmplY3QuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgOiAnJykgKyBkYXRlT2JqZWN0LmdldFNlY29uZHMoKSk7XG4gICAgICAgIHJldHVybiBmO1xuICAgIH07XG5cbiAgICByZXR1cm4gUGF0aFV0aWxzO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBQYXRoVXRpbHM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tLz4uXG4gKlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfd2lja2VkR29vZFhwYXRoID0gcmVxdWlyZSgnd2lja2VkLWdvb2QteHBhdGgnKTtcblxudmFyIF93aWNrZWRHb29kWHBhdGgyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2lja2VkR29vZFhwYXRoKTtcblxuX3dpY2tlZEdvb2RYcGF0aDJbJ2RlZmF1bHQnXS5pbnN0YWxsKCk7XG4vKipcbiAqIFV0aWxpdGFyeSBjbGFzcyBmb3IgbWFuaXB1bGF0aW5nIFhNTFxuICovXG5cbnZhciBYTUxVdGlscyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gWE1MVXRpbHMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBYTUxVdGlscyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VsZWN0cyB0aGUgZmlyc3QgWG1sTm9kZSB0aGF0IG1hdGNoZXMgdGhlIFhQYXRoIGV4cHJlc3Npb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZWxlbWVudCB7RWxlbWVudCB8IERvY3VtZW50fSByb290IGVsZW1lbnQgZm9yIHRoZSBzZWFyY2hcbiAgICAgKiBAcGFyYW0gcXVlcnkge1N0cmluZ30gWFBhdGggcXVlcnlcbiAgICAgKiBAcmV0dXJuIHtFbGVtZW50fSBmaXJzdCBtYXRjaGluZyBlbGVtZW50XG4gICAgICogQHNpZ25hdHVyZSBmdW5jdGlvbihlbGVtZW50LCBxdWVyeSlcbiAgICAgKi9cblxuICAgIFhNTFV0aWxzLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSA9IGZ1bmN0aW9uIFhQYXRoU2VsZWN0U2luZ2xlTm9kZShlbGVtZW50LCBxdWVyeSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRbJ3NlbGVjdFNpbmdsZU5vZGUnXSAmJiB0eXBlb2YgZWxlbWVudC5zZWxlY3RTaW5nbGVOb2RlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0gZWxlbWVudC5zZWxlY3RTaW5nbGVOb2RlKHF1ZXJ5KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICAgIGlmICghWE1MVXRpbHMuX194cGUgJiYgd2luZG93LlhQYXRoRXZhbHVhdG9yKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIFhNTFV0aWxzLl9feHBlID0gbmV3IFhQYXRoRXZhbHVhdG9yKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFYTUxVdGlscy5fX3hwZSkge1xuICAgICAgICAgICAgcXVlcnkgPSBkb2N1bWVudC5jcmVhdGVFeHByZXNzaW9uKHF1ZXJ5LCBudWxsKTtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBxdWVyeS5ldmFsdWF0ZShlbGVtZW50LCA3LCBudWxsKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQuc25hcHNob3RMZW5ndGggPyByZXN1bHQuc25hcHNob3RJdGVtKDApIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB4cGUgPSBYTUxVdGlscy5fX3hwZTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHhwZS5ldmFsdWF0ZShxdWVyeSwgZWxlbWVudCwgeHBlLmNyZWF0ZU5TUmVzb2x2ZXIoZWxlbWVudCksIFhQYXRoUmVzdWx0LkZJUlNUX09SREVSRURfTk9ERV9UWVBFLCBudWxsKS5zaW5nbGVOb2RlVmFsdWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2VsZWN0U2luZ2xlTm9kZTogcXVlcnk6IFwiICsgcXVlcnkgKyBcIiwgZWxlbWVudDogXCIgKyBlbGVtZW50ICsgXCIsIGVycm9yOiBcIiArIGVycik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0cyBhIGxpc3Qgb2Ygbm9kZXMgbWF0Y2hpbmcgdGhlIFhQYXRoIGV4cHJlc3Npb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZWxlbWVudCB7RWxlbWVudCB8IERvY3VtZW50fSByb290IGVsZW1lbnQgZm9yIHRoZSBzZWFyY2hcbiAgICAgKiBAcGFyYW0gcXVlcnkge1N0cmluZ30gWFBhdGggcXVlcnlcbiAgICAgKiBAcmV0dXJuIHtFbGVtZW50W119IExpc3Qgb2YgbWF0Y2hpbmcgZWxlbWVudHNcbiAgICAgKiBAc2lnbmF0dXJlIGZ1bmN0aW9uKGVsZW1lbnQsIHF1ZXJ5KVxuICAgICAqL1xuXG4gICAgWE1MVXRpbHMuWFBhdGhTZWxlY3ROb2RlcyA9IGZ1bmN0aW9uIFhQYXRoU2VsZWN0Tm9kZXMoZWxlbWVudCwgcXVlcnkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZWxlbWVudC5zZWxlY3ROb2RlcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQub3duZXJEb2N1bWVudCAmJiBlbGVtZW50Lm93bmVyRG9jdW1lbnQuc2V0UHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQub3duZXJEb2N1bWVudC5zZXRQcm9wZXJ0eShcIlNlbGVjdGlvbkxhbmd1YWdlXCIsIFwiWFBhdGhcIik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5zZXRQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRQcm9wZXJ0eShcIlNlbGVjdGlvbkxhbmd1YWdlXCIsIFwiWFBhdGhcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgICAgICAgIHZhciByZXMgPSBBcnJheS5mcm9tKGVsZW1lbnQuc2VsZWN0Tm9kZXMocXVlcnkpKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICAgIHZhciB4cGUgPSBYTUxVdGlscy5fX3hwZTtcblxuICAgICAgICBpZiAoIXhwZSAmJiB3aW5kb3cuWFBhdGhFdmFsdWF0b3IpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgWE1MVXRpbHMuX194cGUgPSB4cGUgPSBuZXcgWFBhdGhFdmFsdWF0b3IoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlc3VsdCxcbiAgICAgICAgICAgIG5vZGVzID0gW10sXG4gICAgICAgICAgICBpO1xuICAgICAgICBpZiAoIVhNTFV0aWxzLl9feHBlKSB7XG4gICAgICAgICAgICBxdWVyeSA9IGRvY3VtZW50LmNyZWF0ZUV4cHJlc3Npb24ocXVlcnksIG51bGwpO1xuICAgICAgICAgICAgcmVzdWx0ID0gcXVlcnkuZXZhbHVhdGUoZWxlbWVudCwgNywgbnVsbCk7XG4gICAgICAgICAgICBub2RlcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHJlc3VsdC5zbmFwc2hvdExlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQuZXh0ZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzW2ldID0gRWxlbWVudC5leHRlbmQocmVzdWx0LnNuYXBzaG90SXRlbShpKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZXNbaV0gPSByZXN1bHQuc25hcHNob3RJdGVtKGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBub2RlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSB4cGUuZXZhbHVhdGUocXVlcnksIGVsZW1lbnQsIHhwZS5jcmVhdGVOU1Jlc29sdmVyKGVsZW1lbnQpLCBYUGF0aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2VsZWN0Tm9kZXM6IHF1ZXJ5OiBcIiArIHF1ZXJ5ICsgXCIsIGVsZW1lbnQ6IFwiICsgZWxlbWVudCArIFwiLCBlcnJvcjogXCIgKyBlcnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHJlc3VsdC5zbmFwc2hvdExlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBub2Rlc1tpXSA9IHJlc3VsdC5zbmFwc2hvdEl0ZW0oaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZXM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgdGhlIGZpcnN0IFhtbE5vZGUgdGhhdCBtYXRjaGVzIHRoZSBYUGF0aCBleHByZXNzaW9uIGFuZCByZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIGVsZW1lbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbGVtZW50IHtFbGVtZW50fERvY3VtZW50fSByb290IGVsZW1lbnQgZm9yIHRoZSBzZWFyY2hcbiAgICAgKiBAcGFyYW0gcXVlcnkge1N0cmluZ30gIFhQYXRoIHF1ZXJ5XG4gICAgICogQHJldHVybiB7U3RyaW5nfSB0aGUgam9pbmVkIHRleHQgY29udGVudCBvZiB0aGUgZm91bmQgZWxlbWVudCBvciBudWxsIGlmIG5vdCBhcHByb3ByaWF0ZS5cbiAgICAgKiBAc2lnbmF0dXJlIGZ1bmN0aW9uKGVsZW1lbnQsIHF1ZXJ5KVxuICAgICAqL1xuXG4gICAgWE1MVXRpbHMuWFBhdGhHZXRTaW5nbGVOb2RlVGV4dCA9IGZ1bmN0aW9uIFhQYXRoR2V0U2luZ2xlTm9kZVRleHQoZWxlbWVudCwgcXVlcnkpIHtcbiAgICAgICAgdmFyIG5vZGUgPSBYTUxVdGlscy5YUGF0aFNlbGVjdFNpbmdsZU5vZGUoZWxlbWVudCwgcXVlcnkpO1xuICAgICAgICByZXR1cm4gWE1MVXRpbHMuZ2V0RG9tTm9kZVRleHQobm9kZSk7XG4gICAgfTtcblxuICAgIFhNTFV0aWxzLmdldERvbU5vZGVUZXh0ID0gZnVuY3Rpb24gZ2V0RG9tTm9kZVRleHQobm9kZSkge1xuICAgICAgICB2YXIgaW5jbHVkZUNEYXRhID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLm5vZGVUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAobm9kZS5ub2RlVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIC8vIE5PREVfRUxFTUVOVFxuICAgICAgICAgICAgICAgIHZhciBpLFxuICAgICAgICAgICAgICAgICAgICBhID0gW10sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVzID0gbm9kZS5jaGlsZE5vZGVzLFxuICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSBub2Rlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFbaV0gPSBYTUxVdGlscy5nZXREb21Ob2RlVGV4dChub2Rlc1tpXSwgaW5jbHVkZUNEYXRhKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYS5qb2luKFwiXCIpO1xuXG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgLy8gTk9ERV9BVFRSSUJVVEVcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS52YWx1ZTtcblxuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgIC8vIE5PREVfVEVYVFxuICAgICAgICAgICAgICAgIHJldHVybiBub2RlLm5vZGVWYWx1ZTtcblxuICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgIC8vIENEQVRBXG4gICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVDRGF0YSkgcmV0dXJuIG5vZGUubm9kZVZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB4bWxTdHJcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cblxuICAgIFhNTFV0aWxzLnBhcnNlWG1sID0gZnVuY3Rpb24gcGFyc2VYbWwoeG1sU3RyKSB7XG5cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuRE9NUGFyc2VyICE9IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgd2luZG93LkRPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh4bWxTdHIsIFwidGV4dC94bWxcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuQWN0aXZlWE9iamVjdCAhPSBcInVuZGVmaW5lZFwiICYmIG5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdChcIk1TWE1MMi5ET01Eb2N1bWVudC42LjBcIikpIHtcbiAgICAgICAgICAgIHZhciB4bWxEb2MgPSBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoXCJNU1hNTDIuRE9NRG9jdW1lbnQuNi4wXCIpO1xuICAgICAgICAgICAgeG1sRG9jLnZhbGlkYXRlT25QYXJzZSA9IGZhbHNlO1xuICAgICAgICAgICAgeG1sRG9jLmFzeW5jID0gZmFsc2U7XG4gICAgICAgICAgICB4bWxEb2MubG9hZFhNTCh4bWxTdHIpO1xuICAgICAgICAgICAgeG1sRG9jLnNldFByb3BlcnR5KCdTZWxlY3Rpb25MYW5ndWFnZScsICdYUGF0aCcpO1xuICAgICAgICAgICAgcmV0dXJuIHhtbERvYztcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBwYXJzZSBYTUwgc3RyaW5nJyk7XG4gICAgfTtcblxuICAgIHJldHVybiBYTUxVdGlscztcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFhNTFV0aWxzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3B5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9weWRpbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpbyk7XG5cbnZhciBfQ2hhdENsaWVudCA9IHJlcXVpcmUoJy4vQ2hhdENsaWVudCcpO1xuXG52YXIgX0NoYXRDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ2hhdENsaWVudCk7XG5cbnZhciBfTWVzc2FnZSA9IHJlcXVpcmUoJy4vTWVzc2FnZScpO1xuXG52YXIgX01lc3NhZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTWVzc2FnZSk7XG5cbnZhciBfdmlld3NFbXB0eVN0YXRlVmlldyA9IHJlcXVpcmUoJy4uL3ZpZXdzL0VtcHR5U3RhdGVWaWV3Jyk7XG5cbnZhciBfdmlld3NFbXB0eVN0YXRlVmlldzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF92aWV3c0VtcHR5U3RhdGVWaWV3KTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9DaGF0VXNlcnMgPSByZXF1aXJlKCcuL0NoYXRVc2VycycpO1xuXG52YXIgX0NoYXRVc2VyczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9DaGF0VXNlcnMpO1xuXG52YXIgX1B5ZGlvJHJlcXVpcmVMaWIgPSBfcHlkaW8yWydkZWZhdWx0J10ucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfUHlkaW8kcmVxdWlyZUxpYi5QeWRpb0NvbnRleHRDb25zdW1lcjtcbnZhciBtb21lbnQgPSBfUHlkaW8kcmVxdWlyZUxpYi5tb21lbnQ7XG5cbnZhciBDaGF0ID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKENoYXQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gQ2hhdChwcm9wcykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ2hhdCk7XG5cbiAgICAgICAgX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzKTtcbiAgICAgICAgdGhpcy5jbGllbnQgPSBudWxsO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBtZXNzYWdlczogW10sIHJvb206IG51bGwsIHZhbHVlOiBcIlwiIH07XG4gICAgICAgIHRoaXMuX25ld01lc3NhZ2VMaXN0ZW5lciA9IHRoaXMub25OZXdNZXNzYWdlLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgQ2hhdC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5qb2luKHRoaXMucHJvcHMucm9vbVR5cGUsIHRoaXMucHJvcHMucm9vbU9iamVjdElkKTtcbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgfTtcblxuICAgIENoYXQucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgICAgICBpZiAocHJldlN0YXRlLm1lc3NhZ2VzLmxlbmd0aCA8PSB0aGlzLnN0YXRlLm1lc3NhZ2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZWZzLmNvbW1lbnRzLnNjcm9sbFRvcCA9IDEwMDAwMDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGF0LnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgdmFyIHB5ZGlvID0gbmV4dFByb3BzLnB5ZGlvO1xuICAgICAgICB2YXIgcm9vbVR5cGUgPSBuZXh0UHJvcHMucm9vbVR5cGU7XG4gICAgICAgIHZhciByb29tT2JqZWN0SWQgPSBuZXh0UHJvcHMucm9vbU9iamVjdElkO1xuXG4gICAgICAgIGlmIChyb29tVHlwZSAhPT0gdGhpcy5wcm9wcy5yb29tVHlwZSB8fCByb29tT2JqZWN0SWQgIT09IHRoaXMucHJvcHMucm9vbU9iamVjdElkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jbGllbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsaWVudC5sZWF2ZVJvb20odGhpcy5wcm9wcy5yb29tVHlwZSwgdGhpcy5wcm9wcy5yb29tT2JqZWN0SWQsIHRoaXMuX25ld01lc3NhZ2VMaXN0ZW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWVzc2FnZXM6IFtdLCByb29tOiBudWxsLCB2YWx1ZTogXCJcIiB9KTtcbiAgICAgICAgICAgIGlmIChyb29tVHlwZSAmJiByb29tT2JqZWN0SWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmpvaW4ocm9vbVR5cGUsIHJvb21PYmplY3RJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUub25Sb29tTWVzc2FnZSA9IGZ1bmN0aW9uIG9uUm9vbU1lc3NhZ2UobXNnKSB7XG4gICAgICAgIGlmIChtc2cpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyByb29tOiBtc2dbJ1Jvb20nXSB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGF0LnByb3RvdHlwZS5vbk5ld01lc3NhZ2UgPSBmdW5jdGlvbiBvbk5ld01lc3NhZ2UobXNnKSB7XG4gICAgICAgIHZhciBkZWxldGVNc2cgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICBpZiAoIW1zZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWxldGVNc2cpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBtZXNzYWdlczogdGhpcy5zdGF0ZS5tZXNzYWdlcy5maWx0ZXIoZnVuY3Rpb24gKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0uVXVpZCAhPT0gbXNnLlV1aWQ7XG4gICAgICAgICAgICAgICAgfSkgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWVzc2FnZXM6IFtdLmNvbmNhdCh0aGlzLnN0YXRlLm1lc3NhZ2VzLCBbbXNnXSkgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUuam9pbiA9IGZ1bmN0aW9uIGpvaW4ocm9vbVR5cGUsIHJvb21PYmplY3RJZCkge1xuICAgICAgICBpZiAoIXJvb21PYmplY3RJZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBweWRpbyA9IHRoaXMucHJvcHMucHlkaW87XG5cbiAgICAgICAgdGhpcy5jbGllbnQgPSBfQ2hhdENsaWVudDJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZShweWRpbyk7XG4gICAgICAgIHZhciByb29tID0gdGhpcy5jbGllbnQuam9pblJvb20ocm9vbVR5cGUsIHJvb21PYmplY3RJZCwgdGhpcy5fbmV3TWVzc2FnZUxpc3RlbmVyLCB0aGlzLm9uUm9vbU1lc3NhZ2UuYmluZCh0aGlzKSk7XG4gICAgICAgIGlmIChyb29tICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgcm9vbTogcm9vbSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsaWVudC5sb2FkSGlzdG9yeShyb29tVHlwZSwgcm9vbU9iamVjdElkKTtcbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcm9vbVR5cGUgPSBfcHJvcHMucm9vbVR5cGU7XG4gICAgICAgIHZhciByb29tT2JqZWN0SWQgPSBfcHJvcHMucm9vbU9iamVjdElkO1xuXG4gICAgICAgIGlmICh0aGlzLmNsaWVudCkgdGhpcy5jbGllbnQubGVhdmVSb29tKHJvb21UeXBlLCByb29tT2JqZWN0SWQsIHRoaXMuX25ld01lc3NhZ2VMaXN0ZW5lcik7XG4gICAgfTtcblxuICAgIENoYXQucHJvdG90eXBlLnBvc3RNZXNzYWdlID0gZnVuY3Rpb24gcG9zdE1lc3NhZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciByb29tID0gdGhpcy5zdGF0ZS5yb29tO1xuXG4gICAgICAgIGlmICghcm9vbSB8fCAhcm9vbS5VdWlkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IGZpbmQgY2VsbCBpbmZvXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtZXNzYWdlID0ge1xuICAgICAgICAgICAgXCJAdHlwZVwiOiBcIlBPU1RcIixcbiAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7IFwiUm9vbVV1aWRcIjogcm9vbS5VdWlkLCBcIk1lc3NhZ2VcIjogdGhpcy5zdGF0ZS52YWx1ZSB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2xpZW50LnNlbmQoSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWU6ICcnIH0pO1xuICAgIH07XG5cbiAgICBDaGF0LnByb3RvdHlwZS5kZWxldGVNZXNzYWdlID0gZnVuY3Rpb24gZGVsZXRlTWVzc2FnZShtc2cpIHtcbiAgICAgICAgdmFyIHJvb20gPSB0aGlzLnN0YXRlLnJvb207XG5cbiAgICAgICAgaWYgKCFyb29tIHx8ICFyb29tLlV1aWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJDYW5ub3QgZmluZCBjZWxsIGluZm9cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICBcIkB0eXBlXCI6IFwiREVMRVRFX01TR1wiLFxuICAgICAgICAgICAgXCJNZXNzYWdlXCI6IG1zZ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNsaWVudC5zZW5kKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKTtcbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUua2V5RG93biA9IGZ1bmN0aW9uIGtleURvd24oZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMucG9zdE1lc3NhZ2UoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGF0LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgc3R5bGUgPSBfcHJvcHMyLnN0eWxlO1xuICAgICAgICB2YXIgbXNnQ29udGFpbmVyU3R5bGUgPSBfcHJvcHMyLm1zZ0NvbnRhaW5lclN0eWxlO1xuICAgICAgICB2YXIgZmllbGRIaW50ID0gX3Byb3BzMi5maWVsZEhpbnQ7XG4gICAgICAgIHZhciBlbXB0eVN0YXRlUHJvcHMgPSBfcHJvcHMyLmVtcHR5U3RhdGVQcm9wcztcbiAgICAgICAgdmFyIHB5ZGlvID0gX3Byb3BzMi5weWRpbztcbiAgICAgICAgdmFyIHB1c2hNZXNzYWdlc1RvQm90dG9tID0gX3Byb3BzMi5wdXNoTWVzc2FnZXNUb0JvdHRvbTtcbiAgICAgICAgdmFyIGNvbXB1dGVQcmVzZW5jZUZyb21BQ0xzID0gX3Byb3BzMi5jb21wdXRlUHJlc2VuY2VGcm9tQUNMcztcbiAgICAgICAgdmFyIF9zdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciBtZXNzYWdlcyA9IF9zdGF0ZS5tZXNzYWdlcztcbiAgICAgICAgdmFyIHJvb20gPSBfc3RhdGUucm9vbTtcblxuICAgICAgICB2YXIgZGF0YSA9IFtdO1xuICAgICAgICB2YXIgcHJldmlvdXNNRGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIHByZXZpb3VzQXV0aG9yID0gdW5kZWZpbmVkO1xuICAgICAgICBtZXNzYWdlcy5mb3JFYWNoKGZ1bmN0aW9uIChtKSB7XG4gICAgICAgICAgICBpZiAobVsnTWVzc2FnZSddKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1EYXRlID0gbW9tZW50KHBhcnNlRmxvYXQobS5UaW1lc3RhbXApICogMTAwMCkuZnJvbU5vdygpO1xuICAgICAgICAgICAgICAgIHZhciBoaWRlRGF0ZSA9IHByZXZpb3VzTURhdGUgJiYgcHJldmlvdXNNRGF0ZSA9PT0gbURhdGU7XG4gICAgICAgICAgICAgICAgdmFyIHNhbWVBdXRob3IgPSBwcmV2aW91c0F1dGhvciAmJiBwcmV2aW91c0F1dGhvciA9PT0gbS5BdXRob3IgJiYgaGlkZURhdGU7XG4gICAgICAgICAgICAgICAgZGF0YS5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9NZXNzYWdlMlsnZGVmYXVsdCddLCB7IGtleTogbS5VdWlkLCBtZXNzYWdlOiBtLCBoaWRlRGF0ZTogaGlkZURhdGUsIHNhbWVBdXRob3I6IHNhbWVBdXRob3IsIG9uRGVsZXRlTWVzc2FnZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuZGVsZXRlTWVzc2FnZShtKTtcbiAgICAgICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNNRGF0ZSA9IG1EYXRlO1xuICAgICAgICAgICAgICAgIHByZXZpb3VzQXV0aG9yID0gbS5BdXRob3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgcHVzaFN0eWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgcHVzaGVyID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAocHVzaE1lc3NhZ2VzVG9Cb3R0b20pIHtcbiAgICAgICAgICAgIHB1c2hTdHlsZSA9IHsgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyB9O1xuICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwdXNoZXIgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IHsgZmxleDogMSB9IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciBlbXB0eVN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZW1wdHlTdGF0ZVByb3BzICYmICghZGF0YSB8fCAhZGF0YS5sZW5ndGgpKSB7XG4gICAgICAgICAgICBlbXB0eVN0YXRlID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3ZpZXdzRW1wdHlTdGF0ZVZpZXcyWydkZWZhdWx0J10sIF9leHRlbmRzKHsgcHlkaW86IHB5ZGlvIH0sIGVtcHR5U3RhdGVQcm9wcykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBzdHlsZTogX2V4dGVuZHMoeyBwYWRkaW5nOiAwIH0sIHN0eWxlKSB9LFxuICAgICAgICAgICAgY29tcHV0ZVByZXNlbmNlRnJvbUFDTHMgIT09IHVuZGVmaW5lZCAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfQ2hhdFVzZXJzMlsnZGVmYXVsdCddLCB7IHB5ZGlvOiBweWRpbywgQUNMczogY29tcHV0ZVByZXNlbmNlRnJvbUFDTHMsIHJvb21Vc2Vyczogcm9vbSA/IHJvb20uVXNlcnMgOiBbXSB9KSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgcmVmOiAnY29tbWVudHMnLCBjbGFzc05hbWU6ICdjb21tZW50c19mZWVkJywgc3R5bGU6IF9leHRlbmRzKHsgbWF4SGVpZ2h0OiAzMDAsIG92ZXJmbG93WTogJ2F1dG8nIH0sIHB1c2hTdHlsZSwgbXNnQ29udGFpbmVyU3R5bGUpIH0sXG4gICAgICAgICAgICAgICAgcHVzaGVyLFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLCBwYWRkaW5nTGVmdDogMTYsIHBhZGRpbmdSaWdodDogMTYsIGJvcmRlclRvcDogJzFweCBzb2xpZCAjZTBlMGUwJyB9IH0sXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuVGV4dEZpZWxkLCB7XG4gICAgICAgICAgICAgICAgICAgIGhpbnRUZXh0OiBmaWVsZEhpbnQsXG4gICAgICAgICAgICAgICAgICAgIGhpbnRTdHlsZTogeyB3aGl0ZVNwYWNlOiAnbm93cmFwJyB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5zdGF0ZS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uIChldmVudCwgbmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmFsdWU6IG5ld1ZhbHVlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBtdWx0aUxpbmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlZjogJ25ld19jb21tZW50JyxcbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duOiB0aGlzLmtleURvd24uYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB1bmRlcmxpbmVTaG93OiBmYWxzZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBDaGF0O1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbkNoYXQuUHJvcFR5cGVzID0ge1xuICAgIHJvb21UeXBlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZyxcbiAgICByb29tT2JqZWN0SWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDaGF0ID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoQ2hhdCk7XG5leHBvcnRzWydkZWZhdWx0J10gPSBDaGF0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9weWRpb0h0dHBXZWJzb2NrZXQgPSByZXF1aXJlKCdweWRpby9odHRwL3dlYnNvY2tldCcpO1xuXG52YXIgX3B5ZGlvSHR0cFdlYnNvY2tldDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb0h0dHBXZWJzb2NrZXQpO1xuXG52YXIgX3JlY29ubmVjdGluZ1dlYnNvY2tldCA9IHJlcXVpcmUoJ3JlY29ubmVjdGluZy13ZWJzb2NrZXQnKTtcblxudmFyIF9yZWNvbm5lY3RpbmdXZWJzb2NrZXQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVjb25uZWN0aW5nV2Vic29ja2V0KTtcblxudmFyIENoYXRDbGllbnQgPSAoZnVuY3Rpb24gKF9QeWRpb1dlYlNvY2tldCkge1xuICAgIF9pbmhlcml0cyhDaGF0Q2xpZW50LCBfUHlkaW9XZWJTb2NrZXQpO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHlkaW9PYmplY3RcbiAgICAgKiBAcmV0dXJuIHtDaGF0Q2xpZW50fVxuICAgICAqL1xuXG4gICAgQ2hhdENsaWVudC5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uIGdldEluc3RhbmNlKHB5ZGlvT2JqZWN0KSB7XG4gICAgICAgIGlmIChDaGF0Q2xpZW50Ll9pbnN0YW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gQ2hhdENsaWVudC5faW5zdGFuY2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBDaGF0Q2xpZW50Ll9pbnN0YW5jZSA9IG5ldyBDaGF0Q2xpZW50KHB5ZGlvT2JqZWN0KTtcbiAgICAgICAgICAgIHJldHVybiBDaGF0Q2xpZW50Ll9pbnN0YW5jZTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBweWRpb09iamVjdCB7UHlkaW99XG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBDaGF0Q2xpZW50KHB5ZGlvT2JqZWN0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDaGF0Q2xpZW50KTtcblxuICAgICAgICBfUHlkaW9XZWJTb2NrZXQuY2FsbCh0aGlzLCBweWRpb09iamVjdCk7XG4gICAgICAgIHRoaXMuY3VycmVudFJlcG8gPSBweWRpb09iamVjdC5yZXBvc2l0b3J5SWQ7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IHt9O1xuICAgICAgICB0aGlzLnJvb21zID0ge307XG4gICAgICAgIHRoaXMucm9vbUluZm9zID0ge307XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cblxuICAgIENoYXRDbGllbnQucHJvdG90eXBlLmdldElkZW50aWZpZXIgPSBmdW5jdGlvbiBnZXRJZGVudGlmaWVyKHJvb21UeXBlLCBvYmplY3RJZCkge1xuICAgICAgICByZXR1cm4gcm9vbVR5cGUgKyAnOicgKyBvYmplY3RJZDtcbiAgICB9O1xuXG4gICAgQ2hhdENsaWVudC5wcm90b3R5cGUuZ2V0Um9vbUluZm9Gcm9tSWRlbnRpZmllciA9IGZ1bmN0aW9uIGdldFJvb21JbmZvRnJvbUlkZW50aWZpZXIoaWRlbnRpZmllcikge1xuICAgICAgICB2YXIgX2lkZW50aWZpZXIkc3BsaXQgPSBpZGVudGlmaWVyLnNwbGl0KCc6Jyk7XG5cbiAgICAgICAgdmFyIHJvb21UeXBlID0gX2lkZW50aWZpZXIkc3BsaXRbMF07XG4gICAgICAgIHZhciBvYmplY3RJZCA9IF9pZGVudGlmaWVyJHNwbGl0WzFdO1xuXG4gICAgICAgIHJldHVybiB7IHJvb21UeXBlOiByb29tVHlwZSwgb2JqZWN0SWQ6IG9iamVjdElkIH07XG4gICAgfTtcblxuICAgIENoYXRDbGllbnQucHJvdG90eXBlLm9uUm9vbU1lc3NhZ2UgPSBmdW5jdGlvbiBvblJvb21NZXNzYWdlKG1zZykge1xuICAgICAgICBpZiAobXNnKSB7XG4gICAgICAgICAgICB2YXIgcm9vbSA9IG1zZ1snUm9vbSddO1xuICAgICAgICAgICAgdmFyIGlkZW50aWZpZXIgPSB0aGlzLmdldElkZW50aWZpZXIocm9vbS5UeXBlLCByb29tLlJvb21UeXBlT2JqZWN0KTtcbiAgICAgICAgICAgIHRoaXMucm9vbUluZm9zW2lkZW50aWZpZXJdID0gcm9vbTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSByb29tVHlwZSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gb2JqZWN0SWQgc3RyaW5nXG4gICAgICogQHBhcmFtIG1lc3NhZ2VIYW5kbGVyIEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHJvb21VcGRhdGVIYW5kbGVyIEZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHJldHJ5IE51bWJlclxuICAgICAqL1xuXG4gICAgQ2hhdENsaWVudC5wcm90b3R5cGUuam9pblJvb20gPSBmdW5jdGlvbiBqb2luUm9vbShyb29tVHlwZSwgb2JqZWN0SWQsIG1lc3NhZ2VIYW5kbGVyLCByb29tVXBkYXRlSGFuZGxlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciByZXRyeSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNCB8fCBhcmd1bWVudHNbNF0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbNF07XG5cbiAgICAgICAgdmFyIGlkZW50aWZpZXIgPSB0aGlzLmdldElkZW50aWZpZXIocm9vbVR5cGUsIG9iamVjdElkKTtcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uc1tpZGVudGlmaWVyXSkge1xuICAgICAgICAgICAgdmFyIGFscmVhZHkgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZGVudGlmaWVyXS5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICBpZiAodi5tZXNzYWdlSGFuZGxlciA9PT0gbWVzc2FnZUhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxyZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIWFscmVhZHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl0ucHVzaCh7IG1lc3NhZ2VIYW5kbGVyOiBtZXNzYWdlSGFuZGxlciwgcm9vbVVwZGF0ZUhhbmRsZXI6IHJvb21VcGRhdGVIYW5kbGVyIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm9vbUluZm9zW2lkZW50aWZpZXJdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbm5lY3RpbmcpIHtcbiAgICAgICAgICAgIGlmIChyZXRyeSA8IDMpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnQ29ubmVjdGluZyBzdGF0ZS4uLiByZXRyeWluZyBub3cnLCBvYmplY3RJZCk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLmpvaW5Sb29tKHJvb21UeXBlLCBvYmplY3RJZCwgbWVzc2FnZUhhbmRsZXIsIHJvb21VcGRhdGVIYW5kbGVyLCByZXRyeSArIDEpO1xuICAgICAgICAgICAgICAgIH0sIDE1MDApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmNvbm5PcGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ05vdCBvcGVuLi4uIHJldHJ5aW5nIG5vdycsIG9iamVjdElkKTtcbiAgICAgICAgICAgICAgICBfdGhpcy5qb2luUm9vbShyb29tVHlwZSwgb2JqZWN0SWQsIG1lc3NhZ2VIYW5kbGVyLCByb29tVXBkYXRlSGFuZGxlciwgcmV0cnkgKyAxKTtcbiAgICAgICAgICAgIH0sIDE1MDApO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLy9jb25zb2xlLmxvZygnTm93IHN0b3Jpbmcgc3Vic2NyaXB0aW9uIGZvciAnLCBvYmplY3RJZCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tyb29tVHlwZSArICc6JyArIG9iamVjdElkXSA9IFt7IG1lc3NhZ2VIYW5kbGVyOiBtZXNzYWdlSGFuZGxlciwgcm9vbVVwZGF0ZUhhbmRsZXI6IHJvb21VcGRhdGVIYW5kbGVyIH1dO1xuICAgICAgICB2YXIgbWVzc2FnZSA9IHsgXCJAdHlwZVwiOiBcIkpPSU5cIiwgXCJSb29tXCI6IHsgXCJUeXBlXCI6IHJvb21UeXBlLCBcIlJvb21UeXBlT2JqZWN0XCI6IG9iamVjdElkIH0gfTtcbiAgICAgICAgdGhpcy53cy5zZW5kKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vbUluZm9zW2lkZW50aWZpZXJdO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZW5kIGEgSElTVE9SWSByZXF1ZXN0IHRvIHJlY2VpdmUgZXhpc3RpbmcgbWVzc2FnZXMgaW4gcm9vbVxuICAgICAqIEBwYXJhbSByb29tVHlwZVxuICAgICAqIEBwYXJhbSBvYmplY3RJZFxuICAgICAqIEBwYXJhbSByZXRyeSBpbnRcbiAgICAgKi9cblxuICAgIENoYXRDbGllbnQucHJvdG90eXBlLmxvYWRIaXN0b3J5ID0gZnVuY3Rpb24gbG9hZEhpc3Rvcnkocm9vbVR5cGUsIG9iamVjdElkKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciByZXRyeSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgaWYgKHRoaXMuY29ubmVjdGluZykge1xuICAgICAgICAgICAgaWYgKHJldHJ5IDwgMykge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIubG9hZEhpc3Rvcnkocm9vbVR5cGUsIG9iamVjdElkLCByZXRyeSArIDEpO1xuICAgICAgICAgICAgICAgIH0sIDE1MDApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgbWVzc2FnZSA9IHsgXCJAdHlwZVwiOiBcIkhJU1RPUllcIiwgXCJSb29tXCI6IHsgXCJUeXBlXCI6IHJvb21UeXBlLCBcIlJvb21UeXBlT2JqZWN0XCI6IG9iamVjdElkIH0gfTtcbiAgICAgICAgdGhpcy53cy5zZW5kKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9vbVR5cGVcbiAgICAgKiBAcGFyYW0gb2JqZWN0SWRcbiAgICAgKiBAcGFyYW0gbWVzc2FnZUhhbmRsZXIgRnVuY3Rpb25cbiAgICAgKi9cblxuICAgIENoYXRDbGllbnQucHJvdG90eXBlLmxlYXZlUm9vbSA9IGZ1bmN0aW9uIGxlYXZlUm9vbShyb29tVHlwZSwgb2JqZWN0SWQpIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIG1lc3NhZ2VIYW5kbGVyID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIHZhciBrZWVwID0gZmFsc2U7XG4gICAgICAgIHZhciBpZGVudGlmaWVyID0gdGhpcy5nZXRJZGVudGlmaWVyKHJvb21UeXBlLCBvYmplY3RJZCk7XG4gICAgICAgIC8vY29uc29sZS5sb2coJ0xlYXZpbmcgcm9vbTogJyArIG9iamVjdElkKTtcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uc1tpZGVudGlmaWVyXSkge1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgLy8gSnVzdCByZW1vdmUgdGhpcyBoYW5kbGVyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2lkZW50aWZpZXJdID0gdGhpcy5zdWJzY3JpcHRpb25zW2lkZW50aWZpZXJdLmZpbHRlcihmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdi5tZXNzYWdlSGFuZGxlciAhPT0gbWVzc2FnZUhhbmRsZXI7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uc1tpZGVudGlmaWVyXS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAga2VlcCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuc3Vic2NyaXB0aW9uc1tpZGVudGlmaWVyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFrZWVwKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnJvb21zKS5tYXAoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICAgICAgICBpZiAoX3RoaXMzLnJvb21zW2tdID09PSBpZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBfdGhpczMucm9vbXNba107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5jb25uT3Blbikge1xuICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0geyBcIkB0eXBlXCI6IFwiTEVBVkVcIiwgXCJSb29tXCI6IHsgXCJUeXBlXCI6IHJvb21UeXBlLCBcIlJvb21UeXBlT2JqZWN0XCI6IG9iamVjdElkIH0gfTtcbiAgICAgICAgICAgICAgICB0aGlzLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIG1zZ1xuICAgICAqL1xuXG4gICAgQ2hhdENsaWVudC5wcm90b3R5cGUuaGFuZGxlTWVzc2FnZVJlY2VpdmVkID0gZnVuY3Rpb24gaGFuZGxlTWVzc2FnZVJlY2VpdmVkKG1zZykge1xuICAgICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UobXNnWydkYXRhJ10pO1xuICAgICAgICBpZiAoZGF0YVtcIkB0eXBlXCJdID09PSAnUk9PTV9VUERBVEUnKSB7XG4gICAgICAgICAgICB2YXIgaWRlbnRpZmllciA9IHRoaXMuZ2V0SWRlbnRpZmllcihkYXRhLlJvb20uVHlwZSwgZGF0YS5Sb29tLlJvb21UeXBlT2JqZWN0KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl0pIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucm9vbXNbZGF0YS5Sb29tLlV1aWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vbXNbZGF0YS5Sb29tLlV1aWRdID0gaWRlbnRpZmllcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5vblJvb21NZXNzYWdlKGRhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZGVudGlmaWVyXS5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYucm9vbVVwZGF0ZUhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5yb29tVXBkYXRlSGFuZGxlcihkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRlbGV0ZU1zZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHZhciB3c01lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGFbXCJAdHlwZVwiXSA9PT0gJ0RFTEVURV9NU0cnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZU1zZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHdzTWVzc2FnZSA9IGRhdGFbXCJNZXNzYWdlXCJdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdzTWVzc2FnZSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh3c01lc3NhZ2UuUm9vbVV1aWQgJiYgX3RoaXM0LnJvb21zW3dzTWVzc2FnZS5Sb29tVXVpZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN1YnMgPSBfdGhpczQuc3Vic2NyaXB0aW9uc1tfdGhpczQucm9vbXNbd3NNZXNzYWdlLlJvb21VdWlkXV07XG4gICAgICAgICAgICAgICAgICAgIHZhciB3aXRoUm9vbVVwZGF0ZUhhbmRsZXIgPSBzdWJzLmZpbHRlcihmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYucm9vbVVwZGF0ZUhhbmRsZXI7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHN1YnNjcmliZXIgd2l0aCBhIHJvb21VcGRhdGVIYW5kbGVyLCBpdCBpcyBhbiBvcGVuIHJvb20sXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvIHNlbmQgbWVzc2FnZSBvbmx5IHRvIHRoYXQgb25lLiBUaGUgb25lcyB3aXRob3V0IGFyZSBqdXN0IG5vdGlmaWNhdGlvbiBsaXN0ZW5lcnNcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhSb29tVXBkYXRlSGFuZGxlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnMgPSB3aXRoUm9vbVVwZGF0ZUhhbmRsZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3Vicy5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5tZXNzYWdlSGFuZGxlcih3c01lc3NhZ2UsIGRlbGV0ZU1zZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIG1lc3NhZ2VcbiAgICAgKi9cblxuICAgIENoYXRDbGllbnQucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbiBzZW5kKG1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy53cy5zZW5kKG1lc3NhZ2UpO1xuICAgIH07XG5cbiAgICBDaGF0Q2xpZW50LnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24gb3BlbigpIHtcbiAgICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFJlcG8pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdXJsID0gdGhpcy5weWRpby5QYXJhbWV0ZXJzLmdldChcIkVORFBPSU5UX1dFQlNPQ0tFVFwiKS5yZXBsYWNlKFwiL2V2ZW50XCIsIFwiL2NoYXRcIik7XG4gICAgICAgIHRoaXMud3MgPSBuZXcgX3JlY29ubmVjdGluZ1dlYnNvY2tldDJbJ2RlZmF1bHQnXSh1cmwsIFtdLCB7XG4gICAgICAgICAgICBtYXhSZWNvbm5lY3Rpb25EZWxheTogNjAwMDAsXG4gICAgICAgICAgICByZWNvbm5lY3Rpb25EZWxheUdyb3dGYWN0b3I6IDEuNixcbiAgICAgICAgICAgIG1heFJldHJpZXM6IDEwXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29ubmVjdGluZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3B5ZGlvSHR0cFdlYnNvY2tldDJbJ2RlZmF1bHQnXS5zdWJzY3JpYmVKV1QoX3RoaXM1LndzKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczUuY29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIF90aGlzNS5jb25uT3BlbiA9IHRydWU7XG4gICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM1LmNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBfdGhpczUuY29ubk9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKG1zZykge1xuICAgICAgICAgICAgX3RoaXM1LmhhbmRsZU1lc3NhZ2VSZWNlaXZlZChtc2cpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCdjbG9zZScsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgX3RoaXM1LmNvbm5PcGVuID0gZmFsc2U7XG4gICAgICAgICAgICBfdGhpczUuY29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgX3B5ZGlvSHR0cFdlYnNvY2tldDJbJ2RlZmF1bHQnXS5sb2dDbG9zZShldmVudCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLndzLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoZXJyb3IuY29kZSA9PT0gJ0VIT1NURE9XTicpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgbWF4UmV0cmllcyByZWFjaGVkLCBob3N0IGlzIGRvd24hJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBDaGF0Q2xpZW50LnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uIGNsb3NlKCkge1xuICAgICAgICB2YXIgX3RoaXM2ID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy53cyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuc3Vic2NyaXB0aW9ucykubWFwKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgICB2YXIgX2dldFJvb21JbmZvRnJvbUlkZW50aWZpZXIgPSBfdGhpczYuZ2V0Um9vbUluZm9Gcm9tSWRlbnRpZmllcihrKTtcblxuICAgICAgICAgICAgdmFyIHJvb21UeXBlID0gX2dldFJvb21JbmZvRnJvbUlkZW50aWZpZXIucm9vbVR5cGU7XG4gICAgICAgICAgICB2YXIgb2JqZWN0SWQgPSBfZ2V0Um9vbUluZm9Gcm9tSWRlbnRpZmllci5vYmplY3RJZDtcblxuICAgICAgICAgICAgX3RoaXM2LmxlYXZlUm9vbShyb29tVHlwZSwgb2JqZWN0SWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy53cy5jbG9zZSgxMDAwLCAnQ2xvc2luZycsIHsga2VlcENsb3NlZDogdHJ1ZSB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIENoYXRDbGllbnQ7XG59KShfcHlkaW9IdHRwV2Vic29ja2V0MlsnZGVmYXVsdCddKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQ2hhdENsaWVudDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfQ2hhdENsaWVudCA9IHJlcXVpcmUoJy4vQ2hhdENsaWVudCcpO1xuXG52YXIgX0NoYXRDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ2hhdENsaWVudCk7XG5cbnZhciBDaGF0SWNvbiA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhDaGF0SWNvbiwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBDaGF0SWNvbihwcm9wcykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ2hhdEljb24pO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IG5ld01lc3NhZ2VzOiAwIH07XG4gICAgICAgIHRoaXMuX21lc3NhZ2VMaXN0ZW5lciA9IHRoaXMub25NZXNzYWdlLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgQ2hhdEljb24ucHJvdG90eXBlLm9uTWVzc2FnZSA9IGZ1bmN0aW9uIG9uTWVzc2FnZShtc2cpIHtcbiAgICAgICAgdmFyIGRlbGV0ZU1zZyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIGlmIChkZWxldGVNc2cpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBuZXdNZXNzYWdlczogTWF0aC5tYXgoMCwgdGhpcy5zdGF0ZS5uZXdNZXNzYWdlcyAtIDEpIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG5ld01lc3NhZ2VzOiB0aGlzLnN0YXRlLm5ld01lc3NhZ2VzICsgMSB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGF0SWNvbi5wcm90b3R5cGUubGlzdGVuVG9Sb29tID0gZnVuY3Rpb24gbGlzdGVuVG9Sb29tKHJvb21UeXBlLCBvYmplY3RJZCkge1xuICAgICAgICB2YXIgY2xpZW50ID0gX0NoYXRDbGllbnQyWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UodGhpcy5wcm9wcy5weWRpbyk7XG4gICAgICAgIGNsaWVudC5qb2luUm9vbShyb29tVHlwZSwgb2JqZWN0SWQsIHRoaXMuX21lc3NhZ2VMaXN0ZW5lciwgbnVsbCk7XG4gICAgfTtcblxuICAgIENoYXRJY29uLnByb3RvdHlwZS5sZWF2ZVJvb20gPSBmdW5jdGlvbiBsZWF2ZVJvb20ocm9vbVR5cGUsIG9iamVjdElkKSB7XG4gICAgICAgIHZhciBjbGllbnQgPSBfQ2hhdENsaWVudDJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSh0aGlzLnByb3BzLnB5ZGlvKTtcbiAgICAgICAgY2xpZW50LmxlYXZlUm9vbShyb29tVHlwZSwgb2JqZWN0SWQsIHRoaXMuX21lc3NhZ2VMaXN0ZW5lcik7XG4gICAgfTtcblxuICAgIENoYXRJY29uLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHJvb21UeXBlID0gX3Byb3BzLnJvb21UeXBlO1xuICAgICAgICB2YXIgb2JqZWN0SWQgPSBfcHJvcHMub2JqZWN0SWQ7XG5cbiAgICAgICAgdGhpcy5saXN0ZW5Ub1Jvb20ocm9vbVR5cGUsIG9iamVjdElkKTtcbiAgICB9O1xuXG4gICAgQ2hhdEljb24ucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHJvb21UeXBlID0gX3Byb3BzMi5yb29tVHlwZTtcbiAgICAgICAgdmFyIG9iamVjdElkID0gX3Byb3BzMi5vYmplY3RJZDtcblxuICAgICAgICB0aGlzLmxlYXZlUm9vbShyb29tVHlwZSwgb2JqZWN0SWQpO1xuICAgIH07XG5cbiAgICBDaGF0SWNvbi5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wczMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcm9vbVR5cGUgPSBfcHJvcHMzLnJvb21UeXBlO1xuICAgICAgICB2YXIgb2JqZWN0SWQgPSBfcHJvcHMzLm9iamVjdElkO1xuXG4gICAgICAgIGlmIChuZXh0UHJvcHMucm9vbVR5cGUgIT09IHJvb21UeXBlIHx8IG5leHRQcm9wcy5vYmplY3RJZCAhPT0gb2JqZWN0SWQpIHtcbiAgICAgICAgICAgIHRoaXMubGVhdmVSb29tKHJvb21UeXBlLCBvYmplY3RJZCk7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbmV3TWVzc2FnZXM6IDAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzLmxpc3RlblRvUm9vbShuZXh0UHJvcHMucm9vbVR5cGUsIG5leHRQcm9wcy5vYmplY3RJZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDaGF0SWNvbi5wcm90b3R5cGUub25DbGljayA9IGZ1bmN0aW9uIG9uQ2xpY2soKSB7XG4gICAgICAgIHZhciBweWRpbyA9IHRoaXMucHJvcHMucHlkaW87XG5cbiAgICAgICAgcHlkaW8uQ29udHJvbGxlci5maXJlQWN0aW9uKCd0b2dnbGVfY2hhdF9wYW5lbCcpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbmV3TWVzc2FnZXM6IDAgfSk7XG4gICAgfTtcblxuICAgIENoYXRJY29uLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBuZXdNZXNzYWdlcyA9IHRoaXMuc3RhdGUubmV3TWVzc2FnZXM7XG5cbiAgICAgICAgaWYgKG5ld01lc3NhZ2VzID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVkID0gJyc7XG4gICAgICAgIHZhciBncmVlbiA9ICcjOEJDMzRBJztcbiAgICAgICAgdmFyIHN0eWxlID0geyBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJywgcGFkZGluZzogJzAgNXB4JywgZm9udFNpemU6IDE1LCB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgY29sb3I6IGdyZWVuLCBmb250V2VpZ2h0OiA1MDAsIHBvc2l0aW9uOiAncmVsYXRpdmUnIH07XG4gICAgICAgIHZhciBpbm5lclN0eWxlID0geyBmb250U2l6ZTogMTMsIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLCBwb3NpdGlvbjogJ2Fic29sdXRlJywgdG9wOiAtMSwgbWFyZ2luTGVmdDogMiB9O1xuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICB7IG9uQ2xpY2s6IHRoaXMub25DbGljay5iaW5kKHRoaXMpLCBjbGFzc05hbWU6ICdtZGkgbWRpLWNvbW1lbnQnLCBzdHlsZTogc3R5bGUgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiBpbm5lclN0eWxlIH0sXG4gICAgICAgICAgICAgICAgbmV3TWVzc2FnZXNcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIENoYXRJY29uO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENoYXRJY29uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyID0gcmVxdWlyZSgncHlkaW8vbW9kZWwvaWRtLW9iamVjdC1oZWxwZXInKTtcblxudmFyIF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvTW9kZWxJZG1PYmplY3RIZWxwZXIpO1xuXG52YXIgQ2hhdFVzZXJzID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKENoYXRVc2VycywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBDaGF0VXNlcnMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDaGF0VXNlcnMpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBDaGF0VXNlcnMucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBBQ0xzID0gX3Byb3BzLkFDTHM7XG4gICAgICAgIHZhciByb29tVXNlcnMgPSBfcHJvcHMucm9vbVVzZXJzO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHMucHlkaW87XG5cbiAgICAgICAgdmFyIHN0eWxlID0geyB1c2VyOiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6IDEwXG4gICAgICAgICAgICB9LCBvbmxpbmU6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJyM0Q0FGNTAnLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDVcbiAgICAgICAgICAgIH0sIG9mZmxpbmU6IHtcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA1XG4gICAgICAgICAgICB9IH07XG5cbiAgICAgICAgdmFyIHVzZXJzID0gT2JqZWN0LmtleXMoQUNMcykubWFwKGZ1bmN0aW9uIChyb2xlSWQpIHtcbiAgICAgICAgICAgIHZhciBhY2wgPSBBQ0xzW3JvbGVJZF07XG4gICAgICAgICAgICB2YXIgb25saW5lID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdmFyIGxhYmVsID0gX3B5ZGlvTW9kZWxJZG1PYmplY3RIZWxwZXIyWydkZWZhdWx0J10uZXh0cmFjdExhYmVsKHB5ZGlvLCBhY2wpO1xuICAgICAgICAgICAgaWYgKGFjbC5Vc2VyKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJvb21Vc2VycyAmJiByb29tVXNlcnMuaW5kZXhPZihhY2wuVXNlci5Mb2dpbikgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBvbmxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9ubGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGUudXNlciB9LFxuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIG9ubGluZSAhPT0gdW5kZWZpbmVkICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6IFwibWRpIG1kaS1jaGVja2JveC1ibGFuay1jaXJjbGVcIiArIChvbmxpbmUgPyBcIlwiIDogXCItb3V0bGluZVwiKSwgc3R5bGU6IG9ubGluZSA/IHN0eWxlLm9ubGluZSA6IHN0eWxlLm9mZmxpbmUgfSksXG4gICAgICAgICAgICAgICAgb25saW5lID09PSB1bmRlZmluZWQgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IGNsYXNzTmFtZTogXCJtZGkgbWRpLWFjY291bnQtbXVsdGlwbGUtb3V0bGluZVwiLCBzdHlsZTogc3R5bGUub2ZmbGluZSB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiB7IHBhZGRpbmc6IDE2LCBmb250V2VpZ2h0OiA1MDAsIGNvbG9yOiAnIzc1NzU3NScgfSB9LFxuICAgICAgICAgICAgdXNlcnNcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIENoYXRVc2Vycztcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDaGF0VXNlcnM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF91c2Vyc0F2YXRhclVzZXJBdmF0YXIgPSByZXF1aXJlKCcuLi91c2Vycy9hdmF0YXIvVXNlckF2YXRhcicpO1xuXG52YXIgX3VzZXJzQXZhdGFyVXNlckF2YXRhcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91c2Vyc0F2YXRhclVzZXJBdmF0YXIpO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgX3B5ZGlvVXRpbERvbSA9IHJlcXVpcmUoJ3B5ZGlvL3V0aWwvZG9tJyk7XG5cbnZhciBfcHlkaW9VdGlsRG9tMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvVXRpbERvbSk7XG5cbnZhciBfUHlkaW8kcmVxdWlyZUxpYiA9IF9weWRpbzJbJ2RlZmF1bHQnXS5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9QeWRpbyRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xudmFyIG1vbWVudCA9IF9QeWRpbyRyZXF1aXJlTGliLm1vbWVudDtcblxudmFyIE1lc3NhZ2UgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoTWVzc2FnZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBNZXNzYWdlKHByb3BzKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNZXNzYWdlKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBob3ZlcjogZmFsc2UgfTtcbiAgICB9XG5cbiAgICBNZXNzYWdlLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBtZXNzYWdlID0gX3Byb3BzLm1lc3NhZ2U7XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wcy5weWRpbztcbiAgICAgICAgdmFyIGhpZGVEYXRlID0gX3Byb3BzLmhpZGVEYXRlO1xuICAgICAgICB2YXIgc2FtZUF1dGhvciA9IF9wcm9wcy5zYW1lQXV0aG9yO1xuICAgICAgICB2YXIgb25EZWxldGVNZXNzYWdlID0gX3Byb3BzLm9uRGVsZXRlTWVzc2FnZTtcblxuICAgICAgICB2YXIgbURhdGUgPSBtb21lbnQocGFyc2VGbG9hdChtZXNzYWdlLlRpbWVzdGFtcCkgKiAxMDAwKTtcblxuICAgICAgICB2YXIgc3R5bGVzID0ge1xuICAgICAgICAgICAgZGF0ZToge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLDAsMCwuMjMpJyxcbiAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBtYXJnaW46ICc1cHggMCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRlTGluZToge1xuICAgICAgICAgICAgICAgIGZsZXg6IDEsXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAnMTBweCAyMHB4JyxcbiAgICAgICAgICAgICAgICBib3JkZXJCb3R0b206ICcxcHggc29saWQgI2VlZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21tZW50OiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2ZsZXgtc3RhcnQnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tbWVudENvbnRlbnQ6IHtcbiAgICAgICAgICAgICAgICBmbGV4OiAnMScsXG4gICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogOCxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAnOHB4IDEwcHgnLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNlZWUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tbWVudERlbGV0ZUJveDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIHRvcDogNSxcbiAgICAgICAgICAgICAgICByaWdodDogNSxcbiAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMjAsXG4gICAgICAgICAgICAgICAgY29sb3I6ICcjNDI0MjQyJyxcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IF9weWRpb1V0aWxEb20yWydkZWZhdWx0J10uZ2V0QmV6aWVyc1RyYW5zaXRpb24oKVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBhdXRob3JJc0xvZ2dlZCA9IGZhbHNlO1xuICAgICAgICBpZiAocHlkaW8udXNlci5pZCA9PT0gbWVzc2FnZS5BdXRob3IpIHtcbiAgICAgICAgICAgIGF1dGhvcklzTG9nZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYXZhdGFyID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHNhbWVBdXRob3IgPyB7IHZpc2liaWxpdHk6ICdoaWRkZW4nIH0gOiB7IHBhZGRpbmdUb3A6IDIgfSB9LFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3VzZXJzQXZhdGFyVXNlckF2YXRhcjJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgIGF2YXRhclNpemU6IDMwLFxuICAgICAgICAgICAgICAgIHB5ZGlvOiBweWRpbyxcbiAgICAgICAgICAgICAgICB1c2VySWQ6IG1lc3NhZ2UuQXV0aG9yLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlMYWJlbDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmljaE9uSG92ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgYXZhdGFyTGV0dGVyczogdHJ1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdmFyIHRleHRTdHlsZSA9IF9leHRlbmRzKHt9LCBzdHlsZXMuY29tbWVudENvbnRlbnQpO1xuICAgICAgICBpZiAoYXV0aG9ySXNMb2dnZWQpIHtcbiAgICAgICAgICAgIHRleHRTdHlsZSA9IF9leHRlbmRzKHt9LCB0ZXh0U3R5bGUsIHsgbWFyZ2luTGVmdDogMCwgbWFyZ2luUmlnaHQ6IDggfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNhbWVBdXRob3IpIHtcbiAgICAgICAgICAgIHRleHRTdHlsZSA9IF9leHRlbmRzKHt9LCB0ZXh0U3R5bGUsIHsgYm9yZGVyUmFkaXVzOiAwIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWxldGVCb3ggPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChhdXRob3JJc0xvZ2dlZCkge1xuICAgICAgICAgICAgdmFyIGhvdmVyID0gdGhpcy5zdGF0ZS5ob3ZlcjtcblxuICAgICAgICAgICAgdmFyIGRlbGV0ZVN0eWxlID0gc3R5bGVzLmNvbW1lbnREZWxldGVCb3g7XG4gICAgICAgICAgICBpZiAoaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBkZWxldGVTdHlsZS5vcGFjaXR5ID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlbGV0ZUJveCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywge1xuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG9uRGVsZXRlTWVzc2FnZSxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZGkgbWRpLWNsb3NlJyxcbiAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGVzLmNvbW1lbnREZWxldGVCb3gsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHB5ZGlvLk1lc3NhZ2VIYXNoWyc3J11cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0ZXh0ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBfbWF0ZXJpYWxVaS5QYXBlcixcbiAgICAgICAgICAgIHsgekRlcHRoOiAwLCBzdHlsZTogdGV4dFN0eWxlIH0sXG4gICAgICAgICAgICBkZWxldGVCb3gsXG4gICAgICAgICAgICBtZXNzYWdlLk1lc3NhZ2VcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHNhbWVBdXRob3IgPyB7IG1hcmdpblRvcDogLTE2IH0gOiB7fSwgb25Nb3VzZU92ZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBob3ZlcjogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICB9LCBvbk1vdXNlT3V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgaG92ZXI6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH0gfSxcbiAgICAgICAgICAgICFoaWRlRGF0ZSAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiBzdHlsZXMuZGF0ZSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBzdHlsZTogc3R5bGVzLmRhdGVMaW5lIH0pLFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG1EYXRlLmZyb21Ob3coKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IHN0eWxlOiBzdHlsZXMuZGF0ZUxpbmUgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBhdXRob3JJc0xvZ2dlZCAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiBzdHlsZXMuY29tbWVudCB9LFxuICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgJyAnLFxuICAgICAgICAgICAgICAgIGF2YXRhclxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICFhdXRob3JJc0xvZ2dlZCAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiBzdHlsZXMuY29tbWVudCB9LFxuICAgICAgICAgICAgICAgIGF2YXRhcixcbiAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgdGV4dFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gTWVzc2FnZTtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5NZXNzYWdlLlByb3BUeXBlcyA9IHtcbiAgICBtZXNzYWdlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoaWRlRGF0ZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgIHNhbWVBdXRob3I6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbFxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTWVzc2FnZSA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKE1lc3NhZ2UpO1xuZXhwb3J0c1snZGVmYXVsdCddID0gTWVzc2FnZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9TdG9yZSA9IHJlcXVpcmUoJy4vU3RvcmUnKTtcblxudmFyIF9TdG9yZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TdG9yZSk7XG5cbnZhciBfR3JpZEJ1aWxkZXIgPSByZXF1aXJlKCcuL0dyaWRCdWlsZGVyJyk7XG5cbnZhciBfR3JpZEJ1aWxkZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfR3JpZEJ1aWxkZXIpO1xuXG4vKipcbiAqIEF1dG9tYXRpYyBsYXlvdXQgZm9yIHByZXNlbnRpbmcgZHJhZ2dhYmxlIGNhcmRzIHRvIHVzZXJzLiBVc2VkIGZvciB1c2VyIGFuZCBhZG1pbiBkYXNoYm9hcmQuXG4gKi9cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG52YXIgUHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdyZWFjdC1ncmlkLWxheW91dCcpO1xuXG52YXIgUmVzcG9uc2l2ZSA9IF9yZXF1aXJlLlJlc3BvbnNpdmU7XG52YXIgV2lkdGhQcm92aWRlciA9IF9yZXF1aXJlLldpZHRoUHJvdmlkZXI7XG5cbnZhciBfUHlkaW8kcmVxdWlyZUxpYiA9IFB5ZGlvLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX1B5ZGlvJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG52YXIgQ2FyZHNHcmlkID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnQ2FyZHNHcmlkJyxcblxuICAgIC8qKlxuICAgICAqIFNhdmUgbGF5b3V0cyBpbiB0aGUgdXNlcnMgcHJlZmVyZW5jZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBhbGxMYXlvdXRzIFJlc3BvbnNpdmUgbGF5b3V0cyBwYXNzZWQgZm9yIHNhdmluZ1xuICAgICAqL1xuICAgIHNhdmVGdWxsTGF5b3V0czogZnVuY3Rpb24gc2F2ZUZ1bGxMYXlvdXRzKGFsbExheW91dHMpIHtcbiAgICAgICAgdmFyIHNhdmVkUHJlZiA9IHRoaXMucHJvcHMuc3RvcmUuZ2V0VXNlclByZWZlcmVuY2UoJ0xheW91dCcpO1xuICAgICAgICAvLyBDb21wYXJlIEpTT04gdmVyc2lvbnMgdG8gYXZvaWQgc2F2aW5nIHVubmVjZXNzYXJ5IGNoYW5nZXNcbiAgICAgICAgaWYgKHNhdmVkUHJlZiAmJiB0aGlzLnByZXZpb3VzTGF5b3V0ICYmIHRoaXMucHJldmlvdXNMYXlvdXQgPT0gSlNPTi5zdHJpbmdpZnkoYWxsTGF5b3V0cykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXZpb3VzTGF5b3V0ID0gSlNPTi5zdHJpbmdpZnkoYWxsTGF5b3V0cyk7XG4gICAgICAgIHRoaXMucHJvcHMuc3RvcmUuc2F2ZVVzZXJQcmVmZXJlbmNlKCdMYXlvdXQnLCBhbGxMYXlvdXRzKTtcbiAgICB9LFxuXG4gICAgb25MYXlvdXRDaGFuZ2U6IGZ1bmN0aW9uIG9uTGF5b3V0Q2hhbmdlKGN1cnJlbnRMYXlvdXQsIGFsbExheW91dHMpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Jsb2NrTGF5b3V0U2F2ZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLnNhdmVGdWxsTGF5b3V0cyhhbGxMYXlvdXRzKTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLnByb3BzLnN0b3JlLnN0b3BPYnNlcnZpbmcoXCJjYXJkc1wiLCB0aGlzLl9zdG9yZU9ic2VydmVyKTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMgJiYgbmV4dFByb3BzLmVkaXRNb2RlICE9PSB0aGlzLnByb3BzLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnJlZnMpLmZvckVhY2goKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZzW2tdLnRvZ2dsZUVkaXRNb2RlKG5leHRQcm9wcy5lZGl0TW9kZSk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGU6IGZ1bmN0aW9uIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9yY2VVcGRhdGUgfHwgZmFsc2U7XG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICB0aGlzLl9zdG9yZU9ic2VydmVyID0gKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgICAgICB0aGlzLl9mb3JjZVVwZGF0ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBjYXJkczogdGhpcy5wcm9wcy5zdG9yZS5nZXRDYXJkcygpXG4gICAgICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuX2ZvcmNlVXBkYXRlID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5wcm9wcy5zdG9yZS5vYnNlcnZlKFwiY2FyZHNcIiwgdGhpcy5fc3RvcmVPYnNlcnZlcik7XG4gICAgICAgIHJldHVybiB7IGNhcmRzOiB0aGlzLnByb3BzLnN0b3JlLmdldENhcmRzKCkgfTtcbiAgICB9LFxuXG4gICAgcmVtb3ZlQ2FyZDogZnVuY3Rpb24gcmVtb3ZlQ2FyZChpdGVtS2V5KSB7XG4gICAgICAgIHRoaXMucHJvcHMucmVtb3ZlQ2FyZChpdGVtS2V5KTtcbiAgICB9LFxuXG4gICAgYnVpbGRDYXJkczogZnVuY3Rpb24gYnVpbGRDYXJkcyhjYXJkcykge1xuXG4gICAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICAgIHZhciBsYXlvdXRzID0geyBsZzogW10sIG1kOiBbXSwgc206IFtdLCB4czogW10sIHh4czogW10gfTtcbiAgICAgICAgdmFyIGl0ZW1zID0gW107XG4gICAgICAgIHZhciBhZGRpdGlvbmFsTmFtZXNwYWNlcyA9IFtdO1xuICAgICAgICB2YXIgcmFuZCA9IE1hdGgucmFuZG9tKCk7XG4gICAgICAgIHZhciBzYXZlZExheW91dHMgPSB0aGlzLnByb3BzLnN0b3JlLmdldFVzZXJQcmVmZXJlbmNlKCdMYXlvdXQnKTtcbiAgICAgICAgdmFyIGJ1aWxkTGF5b3V0ID0gZnVuY3Rpb24gYnVpbGRMYXlvdXQoY2xhc3NPYmplY3QsIGl0ZW1LZXksIGl0ZW0sIHgsIHkpIHtcbiAgICAgICAgICAgIHZhciBsYXlvdXQgPSBjbGFzc09iamVjdC5nZXRHcmlkTGF5b3V0KHgsIHkpO1xuICAgICAgICAgICAgbGF5b3V0WydoYW5kbGUnXSA9ICdoNCc7XG4gICAgICAgICAgICBpZiAoaXRlbVsnZ3JpZEhhbmRsZSddKSB7XG4gICAgICAgICAgICAgICAgbGF5b3V0WydoYW5kbGUnXSA9IGl0ZW1bJ2dyaWRIYW5kbGUnXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxheW91dFsnaSddID0gaXRlbUtleTtcbiAgICAgICAgICAgIHJldHVybiBsYXlvdXQ7XG4gICAgICAgIH07XG4gICAgICAgIGNhcmRzLm1hcCgoZnVuY3Rpb24gKGl0ZW0pIHtcblxuICAgICAgICAgICAgdmFyIHBhcnRzID0gaXRlbS5jb21wb25lbnRDbGFzcy5zcGxpdChcIi5cIik7XG4gICAgICAgICAgICB2YXIgY2xhc3NOUyA9IHBhcnRzWzBdO1xuICAgICAgICAgICAgdmFyIGNsYXNzTmFtZSA9IHBhcnRzWzFdO1xuICAgICAgICAgICAgdmFyIGNsYXNzT2JqZWN0O1xuICAgICAgICAgICAgaWYgKGdsb2JhbFtjbGFzc05TXSAmJiBnbG9iYWxbY2xhc3NOU11bY2xhc3NOYW1lXSkge1xuICAgICAgICAgICAgICAgIGNsYXNzT2JqZWN0ID0gZ2xvYmFsW2NsYXNzTlNdW2NsYXNzTmFtZV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsW2NsYXNzTlNdKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxOYW1lc3BhY2VzLnB1c2goY2xhc3NOUyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBwcm9wcyA9IF9leHRlbmRzKHt9LCBpdGVtLnByb3BzKTtcbiAgICAgICAgICAgIHZhciBpdGVtS2V5ID0gcHJvcHNbJ2tleSddID0gaXRlbVsnaWQnXSB8fCAnaXRlbV8nICsgaW5kZXg7XG4gICAgICAgICAgICBwcm9wcy5yZWYgPSBpdGVtS2V5O1xuICAgICAgICAgICAgcHJvcHMucHlkaW8gPSB0aGlzLnByb3BzLnB5ZGlvO1xuICAgICAgICAgICAgcHJvcHMub25DbG9zZUFjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDYXJkKGl0ZW1LZXkpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgICAgIHByb3BzLnByZWZlcmVuY2VzUHJvdmlkZXIgPSB0aGlzLnByb3BzLnN0b3JlO1xuICAgICAgICAgICAgdmFyIGRlZmF1bHRYID0gMCxcbiAgICAgICAgICAgICAgICBkZWZhdWx0WSA9IDA7XG4gICAgICAgICAgICBpZiAoaXRlbS5kZWZhdWx0UG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0WCA9IGl0ZW0uZGVmYXVsdFBvc2l0aW9uLng7XG4gICAgICAgICAgICAgICAgZGVmYXVsdFkgPSBpdGVtLmRlZmF1bHRQb3NpdGlvbi55O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGRlZmF1bHRMYXlvdXQgPSBidWlsZExheW91dChjbGFzc09iamVjdCwgaXRlbUtleSwgaXRlbSwgZGVmYXVsdFgsIGRlZmF1bHRZKTtcblxuICAgICAgICAgICAgZm9yICh2YXIgYnJlYWtwb2ludCBpbiBsYXlvdXRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFsYXlvdXRzLmhhc093blByb3BlcnR5KGJyZWFrcG9pbnQpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB2YXIgYnJlYWtMYXlvdXQgPSBsYXlvdXRzW2JyZWFrcG9pbnRdO1xuICAgICAgICAgICAgICAgIC8vIEZpbmQgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHByZWZlcmVuY2VcbiAgICAgICAgICAgICAgICB2YXIgZXhpc3Rpbmc7XG4gICAgICAgICAgICAgICAgaWYgKHNhdmVkTGF5b3V0cyAmJiBzYXZlZExheW91dHNbYnJlYWtwb2ludF0pIHtcbiAgICAgICAgICAgICAgICAgICAgc2F2ZWRMYXlvdXRzW2JyZWFrcG9pbnRdLm1hcChmdW5jdGlvbiAoZ3JpZERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncmlkRGF0YVsnaSddID09IGl0ZW1LZXkgJiYgZ3JpZERhdGFbJ2gnXSA9PSBkZWZhdWx0TGF5b3V0WydoJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZyA9IGdyaWREYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrTGF5b3V0LnB1c2goZXhpc3RpbmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS5kZWZhdWx0TGF5b3V0cyAmJiBpdGVtLmRlZmF1bHRMYXlvdXRzW2JyZWFrcG9pbnRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjcnRMYXlvdXQgPSBidWlsZExheW91dChjbGFzc09iamVjdCwgaXRlbUtleSwgaXRlbSwgaXRlbS5kZWZhdWx0TGF5b3V0c1ticmVha3BvaW50XS54LCBpdGVtLmRlZmF1bHRMYXlvdXRzW2JyZWFrcG9pbnRdLnkpO1xuICAgICAgICAgICAgICAgICAgICBicmVha0xheW91dC5wdXNoKGNydExheW91dCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtMYXlvdXQucHVzaChkZWZhdWx0TGF5b3V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgaXRlbXMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KGNsYXNzT2JqZWN0LCBwcm9wcykpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcblxuICAgICAgICBpZiAoYWRkaXRpb25hbE5hbWVzcGFjZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9ibG9ja0xheW91dFNhdmUgPSB0cnVlO1xuICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkQ2xhc3Nlc0FuZEFwcGx5KGFkZGl0aW9uYWxOYW1lc3BhY2VzLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBhZGRpdGlvbmFsTmFtZXNwYWNlc0xvYWRlZDogYWRkaXRpb25hbE5hbWVzcGFjZXMgfSwgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYmxvY2tMYXlvdXRTYXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjYXJkczogaXRlbXMsIGxheW91dHM6IGxheW91dHMgfTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfYnVpbGRDYXJkcyA9IHRoaXMuYnVpbGRDYXJkcyh0aGlzLnN0YXRlLmNhcmRzKTtcblxuICAgICAgICB2YXIgY2FyZHMgPSBfYnVpbGRDYXJkcy5jYXJkcztcbiAgICAgICAgdmFyIGxheW91dHMgPSBfYnVpbGRDYXJkcy5sYXlvdXRzO1xuXG4gICAgICAgIHZhciBSZXNwb25zaXZlR3JpZExheW91dCA9IFdpZHRoUHJvdmlkZXIoUmVzcG9uc2l2ZSk7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgUmVzcG9uc2l2ZUdyaWRMYXlvdXQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZGFzaGJvYXJkLWxheW91dCcsXG4gICAgICAgICAgICAgICAgY29sczogdGhpcy5wcm9wcy5jb2xzIHx8IHsgbGc6IDEwLCBtZDogOCwgc206IDgsIHhzOiA0LCB4eHM6IDIgfSxcbiAgICAgICAgICAgICAgICBsYXlvdXRzOiBsYXlvdXRzLFxuICAgICAgICAgICAgICAgIHJvd0hlaWdodDogNSxcbiAgICAgICAgICAgICAgICBvbkxheW91dENoYW5nZTogdGhpcy5vbkxheW91dENoYW5nZSxcbiAgICAgICAgICAgICAgICBpc0RyYWdnYWJsZTogIXRoaXMucHJvcHMuZGlzYWJsZURyYWcsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHRoaXMucHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgICAgYXV0b1NpemU6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FyZHNcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xuXG52YXIgRHluYW1pY0dyaWQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdEeW5hbWljR3JpZCcsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgc3RvcmVOYW1lc3BhY2U6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgYnVpbGRlck5hbWVzcGFjZXM6IFJlYWN0LlByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgZGVmYXVsdENhcmRzOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIHB5ZGlvOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpbyksXG4gICAgICAgIGRpc2FibGVEcmFnOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgZGlzYWJsZUVkaXQ6IFJlYWN0LlByb3BUeXBlcy5ib29sXG4gICAgfSxcblxuICAgIHJlbW92ZUNhcmQ6IGZ1bmN0aW9uIHJlbW92ZUNhcmQoY2FyZElkKSB7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5zdG9yZS5yZW1vdmVDYXJkKGNhcmRJZCk7XG4gICAgfSxcblxuICAgIGFkZENhcmQ6IGZ1bmN0aW9uIGFkZENhcmQoY2FyZERlZmluaXRpb24pIHtcblxuICAgICAgICB0aGlzLnN0YXRlLnN0b3JlLmFkZENhcmQoY2FyZERlZmluaXRpb24pO1xuICAgIH0sXG5cbiAgICByZXNldENhcmRzQW5kTGF5b3V0OiBmdW5jdGlvbiByZXNldENhcmRzQW5kTGF5b3V0KCkge1xuICAgICAgICB0aGlzLnN0YXRlLnN0b3JlLnNhdmVVc2VyUHJlZmVyZW5jZSgnTGF5b3V0JywgbnVsbCk7XG4gICAgICAgIHRoaXMuc3RhdGUuc3RvcmUuc2V0Q2FyZHModGhpcy5wcm9wcy5kZWZhdWx0Q2FyZHMpO1xuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgdmFyIHN0b3JlID0gbmV3IF9TdG9yZTJbJ2RlZmF1bHQnXSh0aGlzLnByb3BzLnN0b3JlTmFtZXNwYWNlLCB0aGlzLnByb3BzLmRlZmF1bHRDYXJkcywgdGhpcy5wcm9wcy5weWRpbyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlZGl0TW9kZTogZmFsc2UsXG4gICAgICAgICAgICBzdG9yZTogc3RvcmVcbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgdG9nZ2xlRWRpdE1vZGU6IGZ1bmN0aW9uIHRvZ2dsZUVkaXRNb2RlKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZWRpdE1vZGU6ICF0aGlzLnN0YXRlLmVkaXRNb2RlIH0pO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIG1vbml0b3JXaWRnZXRFZGl0aW5nID0gKGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyB3aWRnZXRFZGl0aW5nOiBzdGF0dXMgfSk7XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG5cbiAgICAgICAgdmFyIGJ1aWxkZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmJ1aWxkZXJOYW1lc3BhY2VzICYmIHRoaXMuc3RhdGUuZWRpdE1vZGUpIHtcbiAgICAgICAgICAgIGJ1aWxkZXIgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9HcmlkQnVpbGRlcjJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2FkbWluLWhlbHBlci1wYW5lbCcsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlczogdGhpcy5wcm9wcy5idWlsZGVyTmFtZXNwYWNlcyxcbiAgICAgICAgICAgICAgICBvbkNyZWF0ZUNhcmQ6IHRoaXMuYWRkQ2FyZCxcbiAgICAgICAgICAgICAgICBvblJlc2V0TGF5b3V0OiB0aGlzLnJlc2V0Q2FyZHNBbmRMYXlvdXQsXG4gICAgICAgICAgICAgICAgb25FZGl0U3RhdHVzQ2hhbmdlOiBtb25pdG9yV2lkZ2V0RWRpdGluZyxcbiAgICAgICAgICAgICAgICBnZXRNZXNzYWdlOiBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gJ2FqeHBfYWRtaW4nIDogYXJndW1lbnRzWzFdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXMyLnByb3BzLmdldE1lc3NhZ2UoaWQsIG5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJvcFN0eWxlID0gdGhpcy5wcm9wcy5zdHlsZSB8fCB7fTtcbiAgICAgICAgdmFyIHJnbFN0eWxlID0gdGhpcy5wcm9wcy5yZ2xTdHlsZSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLnN0eWxlLCB7IHdpZHRoOiAnMTAwJScsIGZsZXg6ICcxJyB9KSwgY2xhc3NOYW1lOiB0aGlzLnN0YXRlLmVkaXRNb2RlID8gXCJidWlsZGVyLW9wZW5cIiA6IFwiXCIgfSxcbiAgICAgICAgICAgICF0aGlzLnByb3BzLmRpc2FibGVFZGl0ICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyBwb3NpdGlvbjogJ2Fic29sdXRlJywgYm90dG9tOiAzMCwgcmlnaHQ6IDE4LCB6SW5kZXg6IDExIH0gfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE1hdGVyaWFsVUkuRmxvYXRpbmdBY3Rpb25CdXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5wcm9wcy5nZXRNZXNzYWdlKCdob21lLjQ5JyksXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMudG9nZ2xlRWRpdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWU6IHRoaXMuc3RhdGUuZWRpdE1vZGUgPyBcImljb24tb2tcIiA6IFwibWRpIG1kaS1wZW5jaWxcIixcbiAgICAgICAgICAgICAgICAgICAgbWluaTogdGhpcy5zdGF0ZS5lZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuc3RhdGUuZWRpdE1vZGUgJiYgdGhpcy5zdGF0ZS53aWRnZXRFZGl0aW5nXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBidWlsZGVyLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ2hvbWUtZGFzaGJvYXJkJywgc3R5bGU6IHsgaGVpZ2h0OiAnMTAwJScgfSB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FyZHNHcmlkLCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVEcmFnOiB0aGlzLnByb3BzLmRpc2FibGVEcmFnLFxuICAgICAgICAgICAgICAgICAgICBjb2xzOiB0aGlzLnByb3BzLmNvbHMsXG4gICAgICAgICAgICAgICAgICAgIHN0b3JlOiB0aGlzLnN0YXRlLnN0b3JlLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogcmdsU3R5bGUsXG4gICAgICAgICAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvLFxuICAgICAgICAgICAgICAgICAgICBlZGl0TW9kZTogdGhpcy5zdGF0ZS5lZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2FyZDogdGhpcy5yZW1vdmVDYXJkXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBEeW5hbWljR3JpZCA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKER5bmFtaWNHcmlkKTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IER5bmFtaWNHcmlkO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBQeWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfUHlkaW8kcmVxdWlyZUxpYiA9IFB5ZGlvLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX1B5ZGlvJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG52YXIgQXN5bmNDb21wb25lbnQgPSBfUHlkaW8kcmVxdWlyZUxpYi5Bc3luY0NvbXBvbmVudDtcblxudmFyIEdyaWRCdWlsZGVyID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnR3JpZEJ1aWxkZXInLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIG5hbWVzcGFjZXM6IFJlYWN0LlByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgb25DcmVhdGVDYXJkOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgb25FZGl0U3RhdHVzQ2hhbmdlOiBSZWFjdC5Qcm9wVHlwZXMuZnVuY1xuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSW5kZXg6IDAsXG4gICAgICAgICAgICBhdmFpbGFibGVXaWRnZXRzOiB0aGlzLmxpc3RBdmFpbGFibGVXaWRnZXRzKClcbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgbGlzdEF2YWlsYWJsZVdpZGdldHM6IGZ1bmN0aW9uIGxpc3RBdmFpbGFibGVXaWRnZXRzKCkge1xuICAgICAgICB2YXIgc2Vjb25kUGFzcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgIHZhciB3aWRnZXRzID0gW107XG4gICAgICAgIHZhciBhZGRpdGlvbmFsTmFtZXNwYWNlcyA9IFtdO1xuICAgICAgICB0aGlzLnByb3BzLm5hbWVzcGFjZXMubWFwKGZ1bmN0aW9uIChucykge1xuICAgICAgICAgICAgaWYgKCFnbG9iYWxbbnNdKSB7XG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbE5hbWVzcGFjZXMucHVzaChucyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBnbG9iYWxbbnNdKSB7XG4gICAgICAgICAgICAgICAgaWYgKGdsb2JhbFtuc10uaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHdpZGdldENsYXNzID0gZ2xvYmFsW25zXVtrXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpZGdldENsYXNzLmhhc0J1aWxkZXJGaWVsZHMgJiYgd2lkZ2V0Q2xhc3MuaGFzQnVpbGRlckZpZWxkcygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXRzLnB1c2goeyByZWFjdENsYXNzOiB3aWRnZXRDbGFzcywgZnVsbE5hbWU6IG5zICsgJy4nICsgd2lkZ2V0Q2xhc3MuZGlzcGxheU5hbWUgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoYWRkaXRpb25hbE5hbWVzcGFjZXMubGVuZ3RoICYmICFzZWNvbmRQYXNzKSB7XG4gICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRDbGFzc2VzQW5kQXBwbHkoYWRkaXRpb25hbE5hbWVzcGFjZXMsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZVdpZGdldHM6IHRoaXMubGlzdEF2YWlsYWJsZVdpZGdldHModHJ1ZSlcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB3aWRnZXRzO1xuICAgIH0sXG5cbiAgICBvbkRyb3BEb3duQ2hhbmdlOiBmdW5jdGlvbiBvbkRyb3BEb3duQ2hhbmdlKGV2ZW50LCBpbmRleCwgaXRlbSkge1xuICAgICAgICB2YXIgZGVmYXVsdFZhbHVlcyA9IHt9O1xuICAgICAgICBpZiAoaW5kZXggIT0gMCkge1xuICAgICAgICAgICAgaXRlbS5wYXlsb2FkWydyZWFjdENsYXNzJ10uZ2V0QnVpbGRlckZpZWxkcygpLm1hcChmdW5jdGlvbiAoZikge1xuICAgICAgICAgICAgICAgIGlmIChmWydkZWZhdWx0J10pIGRlZmF1bHRWYWx1ZXNbZi5uYW1lXSA9IGZbJ2RlZmF1bHQnXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uRWRpdFN0YXR1c0NoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkVkaXRTdGF0dXNDaGFuZ2UoaW5kZXggIT0gMCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBzZWxlY3RlZEluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIHNlbGVjdGVkV2lkZ2V0OiBpdGVtLnBheWxvYWQsXG4gICAgICAgICAgICBjdXJyZW50Rm9ybVZhbHVlczogZGVmYXVsdFZhbHVlc1xuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgY2FuY2VsOiBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uRWRpdFN0YXR1c0NoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkVkaXRTdGF0dXNDaGFuZ2UoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzZWxlY3RlZEluZGV4OiAwIH0pO1xuICAgIH0sXG5cbiAgICBvbkZvcm1WYWx1ZUNoYW5nZTogZnVuY3Rpb24gb25Gb3JtVmFsdWVDaGFuZ2UobmV3VmFsdWVzKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjdXJyZW50Rm9ybVZhbHVlczogbmV3VmFsdWVzIH0pO1xuICAgIH0sXG5cbiAgICBvbkZvcm1TdWJtaXQ6IGZ1bmN0aW9uIG9uRm9ybVN1Ym1pdCgpIHtcbiAgICAgICAgdmFyIHZhbHVlcyA9IHRoaXMuc3RhdGUuY3VycmVudEZvcm1WYWx1ZXM7XG4gICAgICAgIHZhciBzZWxlY3RlZFdpZGdldCA9IHRoaXMuc3RhdGUuc2VsZWN0ZWRXaWRnZXQ7XG4gICAgICAgIHZhciB0aXRsZSA9IHZhbHVlcy50aXRsZSA/IHZhbHVlcy50aXRsZSA6IHZhbHVlcy5sZWdlbmQ7XG4gICAgICAgIGlmICghdGl0bGUpIHRpdGxlID0gdGhpcy5zdGF0ZS5zZWxlY3RlZFdpZGdldFsncmVhY3RDbGFzcyddLmJ1aWxkZXJEaXNwbGF5TmFtZTtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNyZWF0ZUNhcmQoe1xuICAgICAgICAgICAgY29tcG9uZW50Q2xhc3M6IHNlbGVjdGVkV2lkZ2V0LmZ1bGxOYW1lLFxuICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICAgICAgcHJvcHM6IHZhbHVlc1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICB9LFxuXG4gICAgcmVzZXRMYXlvdXQ6IGZ1bmN0aW9uIHJlc2V0TGF5b3V0KCkge1xuICAgICAgICBpZiAod2luZG93LmNvbmZpcm0odGhpcy5wcm9wcy5nZXRNZXNzYWdlKCdob21lLjUxJykpKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzZXRMYXlvdXQoKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIGdldE1lc3NhZ2UgPSB0aGlzLnByb3BzLmdldE1lc3NhZ2U7XG5cbiAgICAgICAgdmFyIHNlbGVjdG9ySXRlbXMgPSBbeyBwYXlsb2FkOiAwLCB0ZXh0OiBnZXRNZXNzYWdlKCdob21lLjUwJykgfV0uY29uY2F0KHRoaXMuc3RhdGUuYXZhaWxhYmxlV2lkZ2V0cy5tYXAoZnVuY3Rpb24gKHcsIGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4geyBwYXlsb2FkOiB3LCB0ZXh0OiB3WydyZWFjdENsYXNzJ10uYnVpbGRlckRpc3BsYXlOYW1lIH07XG4gICAgICAgIH0pKTtcblxuICAgICAgICB2YXIgc2VsZWN0b3IgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0TVVJLkRyb3BEb3duTWVudSwge1xuICAgICAgICAgICAgbWVudUl0ZW1zOiBzZWxlY3Rvckl0ZW1zLFxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMub25Ecm9wRG93bkNoYW5nZSxcbiAgICAgICAgICAgIHNlbGVjdGVkSW5kZXg6IHRoaXMuc3RhdGUuc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgICAgIGF1dG9XaWR0aDogZmFsc2UsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICd3aWRnZXQtdHlwZS1zZWxlY3RvcidcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIGZvcm0sIGFkZDtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2VsZWN0ZWRJbmRleCAhPSAwKSB7XG4gICAgICAgICAgICB2YXIgZmllbGRzID0gdGhpcy5zdGF0ZS5zZWxlY3RlZFdpZGdldFsncmVhY3RDbGFzcyddLmdldEJ1aWxkZXJGaWVsZHMoKTtcbiAgICAgICAgICAgIHZhciBkZWZhdWx0VmFsdWVzID0ge307XG4gICAgICAgICAgICBmaWVsZHMubWFwKGZ1bmN0aW9uIChmKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZbJ2RlZmF1bHQnXSkgZGVmYXVsdFZhbHVlc1tmLm5hbWVdID0gZlsnZGVmYXVsdCddO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5jdXJyZW50Rm9ybVZhbHVlcykge1xuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZXMgPSBMYW5nVXRpbHMubWVyZ2VPYmplY3RzUmVjdXJzaXZlKGRlZmF1bHRWYWx1ZXMsIHRoaXMuc3RhdGUuY3VycmVudEZvcm1WYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9ybSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXN5bmNDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2U6ICdQeWRpb0Zvcm0nLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU6ICdGb3JtUGFuZWwnLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IGZpZWxkcyxcbiAgICAgICAgICAgICAgICBkZXB0aDogLTEsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBkZWZhdWx0VmFsdWVzLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uRm9ybVZhbHVlQ2hhbmdlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGFkZCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyB0ZXh0QWxpZ246ICdjZW50ZXInLCBwYWRkaW5nQm90dG9tOiAxMDAgfSB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3RNVUkuUmFpc2VkQnV0dG9uLCB7IGxhYmVsOiBnZXRNZXNzYWdlKCdob21lLjUyJyksIG9uQ2xpY2s6IHRoaXMub25Gb3JtU3VibWl0IH0pLFxuICAgICAgICAgICAgICAgICfCoCcsXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdE1VSS5SYWlzZWRCdXR0b24sIHsgbGFiZWw6IGdldE1lc3NhZ2UoJzU0JywgJycpLCBvbkNsaWNrOiB0aGlzLmNhbmNlbCB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgUmVhY3RNVUkuUGFwZXIsXG4gICAgICAgICAgICBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywge1xuICAgICAgICAgICAgICAgIHpEZXB0aDogMyB9KSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2gzJyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIGdldE1lc3NhZ2UoJ2hvbWUuNTMnKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdsZWdlbmQnIH0sXG4gICAgICAgICAgICAgICAgZ2V0TWVzc2FnZSgnaG9tZS41NCcpLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2JyJywgbnVsbCksXG4gICAgICAgICAgICAgICAgZ2V0TWVzc2FnZSgnaG9tZS41NScpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc2VsZWN0b3IsXG4gICAgICAgICAgICBmb3JtLFxuICAgICAgICAgICAgYWRkLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBib3R0b206IDMwLCBsZWZ0OiAxMCB9IH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdE1VSS5GbGF0QnV0dG9uLCB7IGRpc2FibGVkOiB0aGlzLnN0YXRlLnNlbGVjdGVkSW5kZXggIT0gMCwgbGFiZWw6IGdldE1lc3NhZ2UoJ2hvbWUuNTYnKSwgc2Vjb25kYXJ5OiB0cnVlLCBvbkNsaWNrOiB0aGlzLnJlc2V0TGF5b3V0IH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gR3JpZEJ1aWxkZXIgPSBQeWRpb0NvbnRleHRDb25zdW1lcihHcmlkQnVpbGRlcik7XG5leHBvcnRzWydkZWZhdWx0J10gPSBHcmlkQnVpbGRlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHtcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBzaG93Q2xvc2VBY3Rpb246IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgICAgICBvbkNsb3NlQWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuZnVuY1xuICAgIH0sXG5cbiAgICBmb2N1c0l0ZW06IGZ1bmN0aW9uIGZvY3VzSXRlbSgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZvY3VzOiB0cnVlIH0pO1xuICAgIH0sXG5cbiAgICBibHVySXRlbTogZnVuY3Rpb24gYmx1ckl0ZW0oKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBmb2N1czogZmFsc2UgfSk7XG4gICAgfSxcblxuICAgIG1lcmdlU3R5bGVXaXRoRm9jdXM6IGZ1bmN0aW9uIG1lcmdlU3R5bGVXaXRoRm9jdXMoKSB7XG4gICAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcy5zdHlsZSwgeyB6SW5kZXg6IHRoaXMuc3RhdGUuZm9jdXMgPyAxIDogbnVsbCB9KTtcbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFNhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTYXRlKCkge1xuICAgICAgICByZXR1cm4geyBmb2N1czogZmFsc2UsIHNob3dDbG9zZUFjdGlvbjogZmFsc2UgfTtcbiAgICB9LFxuXG4gICAgdG9nZ2xlRWRpdE1vZGU6IGZ1bmN0aW9uIHRvZ2dsZUVkaXRNb2RlKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93Q2xvc2VBY3Rpb246ICEodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnNob3dDbG9zZUFjdGlvbikgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0Nsb3NlQWN0aW9uOiB2YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBnZXRDbG9zZUJ1dHRvbjogZnVuY3Rpb24gZ2V0Q2xvc2VCdXR0b24oKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuc2hvd0Nsb3NlQWN0aW9uKSB7XG4gICAgICAgICAgICB2YXIgY2xvc2VBY3Rpb24gPSB0aGlzLnByb3BzLm9uQ2xvc2VBY3Rpb24gfHwgZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICB2YXIgb3ZlcmxheVN0eWxlID0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMC41MyknLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAsXG4gICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcidcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiBvdmVybGF5U3R5bGUgfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE1hdGVyaWFsVUkuRmxhdEJ1dHRvbiwge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcHlkaW8uTWVzc2FnZUhhc2hbJ2FqeHBfYWRtaW4uaG9tZS40OCddLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdjYXJkLWNsb3NlLWJ1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGNsb3NlQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBjb2xvcjogJ3doaXRlJyB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBzdGF0aWNzOiB7XG4gICAgICAgIGdldEdyaWRMYXlvdXQ6IGZ1bmN0aW9uIGdldEdyaWRMYXlvdXQoeCwgeSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB4OiB4IHx8IDAsXG4gICAgICAgICAgICAgICAgeTogeSB8fCAwLFxuICAgICAgICAgICAgICAgIHc6IHRoaXMuZ3JpZFdpZHRoIHx8IDQsXG4gICAgICAgICAgICAgICAgaDogdGhpcy5ncmlkSGVpZ2h0IHx8IDEyLFxuICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzQnVpbGRlckZpZWxkczogZnVuY3Rpb24gaGFzQnVpbGRlckZpZWxkcygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkZXJGaWVsZHMgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGdldEJ1aWxkZXJGaWVsZHM6IGZ1bmN0aW9uIGdldEJ1aWxkZXJGaWVsZHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZGVyRmllbGRzO1xuICAgICAgICB9XG4gICAgfVxuXG59O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTdG9yZSA9IChmdW5jdGlvbiAoX09ic2VydmFibGUpIHtcbiAgICBfaW5oZXJpdHMoU3RvcmUsIF9PYnNlcnZhYmxlKTtcblxuICAgIC8qKlxuICAgICAqIEluaXQgYSBjYXJkIHN0b3JlXG4gICAgICogQHBhcmFtIHByZWZOYW1lc3BhY2UgTmFtZXNwYWNlIGZvciBnZXR0aW5nL3NldHRpbmcgdXNlciBwcmVmZXJlbmNlc1xuICAgICAqIEBwYXJhbSBkZWZhdWx0Q2FyZHMgQXJyYXkgb2YgY2FyZHMgdG8gYmUgZGlzcGxheWVkIGJ5IGRlZmF1bHRcbiAgICAgKi9cblxuICAgIGZ1bmN0aW9uIFN0b3JlKHByZWZOYW1lc3BhY2UsIGRlZmF1bHRDYXJkcywgcHlkaW9PYmplY3QpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFN0b3JlKTtcblxuICAgICAgICBfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuICAgICAgICB0aGlzLl9uYW1lc3BhY2UgPSBwcmVmTmFtZXNwYWNlO1xuICAgICAgICB0aGlzLl9weWRpbyA9IHB5ZGlvT2JqZWN0O1xuICAgICAgICB0aGlzLl9jYXJkcyA9IHRoaXMuZ2V0VXNlclByZWZlcmVuY2UoXCJDYXJkc1wiKTtcbiAgICAgICAgaWYgKCF0aGlzLl9jYXJkcykge1xuICAgICAgICAgICAgdGhpcy5fY2FyZHMgPSBkZWZhdWx0Q2FyZHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBTdG9yZS5wcm90b3R5cGUuZ2V0VXNlclByZWZlcmVuY2UgPSBmdW5jdGlvbiBnZXRVc2VyUHJlZmVyZW5jZShwcmVmTmFtZSkge1xuICAgICAgICB2YXIgcHJlZktleSA9IHRoaXMuX25hbWVzcGFjZSArIHByZWZOYW1lO1xuICAgICAgICB2YXIgZ3VpUHJlZnMgPSB0aGlzLl9weWRpby51c2VyLmdldFByZWZlcmVuY2UoJ2d1aV9wcmVmZXJlbmNlcycsIHRydWUpO1xuICAgICAgICBpZiAoZ3VpUHJlZnMgJiYgZ3VpUHJlZnNbcHJlZktleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBndWlQcmVmc1twcmVmS2V5XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFN0b3JlLnByb3RvdHlwZS5zYXZlVXNlclByZWZlcmVuY2UgPSBmdW5jdGlvbiBzYXZlVXNlclByZWZlcmVuY2UocHJlZk5hbWUsIHByZWZWYWx1ZSkge1xuICAgICAgICB2YXIgcHJlZktleSA9IHRoaXMuX25hbWVzcGFjZSArIHByZWZOYW1lO1xuICAgICAgICB2YXIgZ3VpUHJlZnMgPSB0aGlzLl9weWRpby51c2VyLmdldFByZWZlcmVuY2UoJ2d1aV9wcmVmZXJlbmNlcycsIHRydWUpO1xuICAgICAgICBpZiAoIWd1aVByZWZzKSBndWlQcmVmcyA9IHt9O1xuICAgICAgICBndWlQcmVmc1twcmVmS2V5XSA9IHByZWZWYWx1ZTtcbiAgICAgICAgdGhpcy5fcHlkaW8udXNlci5zZXRQcmVmZXJlbmNlKCdndWlfcHJlZmVyZW5jZXMnLCBndWlQcmVmcywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX3B5ZGlvLnVzZXIuc2F2ZVByZWZlcmVuY2UoJ2d1aV9wcmVmZXJlbmNlcycpO1xuICAgIH07XG5cbiAgICBTdG9yZS5wcm90b3R5cGUuc2F2ZUNhcmRzID0gZnVuY3Rpb24gc2F2ZUNhcmRzKGNhcmRzKSB7XG4gICAgICAgIHRoaXMuc2F2ZVVzZXJQcmVmZXJlbmNlKCdDYXJkcycsIGNhcmRzKTtcbiAgICB9O1xuXG4gICAgU3RvcmUucHJvdG90eXBlLnJlc2V0Q2FyZHMgPSBmdW5jdGlvbiByZXNldENhcmRzKCkge1xuICAgICAgICB0aGlzLnNhdmVVc2VyUHJlZmVyZW5jZSgnQ2FyZHMnLCBudWxsKTtcbiAgICB9O1xuXG4gICAgU3RvcmUucHJvdG90eXBlLnNldENhcmRzID0gZnVuY3Rpb24gc2V0Q2FyZHMobmV3Q2FyZHMpIHtcbiAgICAgICAgdGhpcy5fY2FyZHMgPSBuZXdDYXJkcztcbiAgICAgICAgdGhpcy5ub3RpZnkoXCJjYXJkc1wiLCB0aGlzLl9jYXJkcyk7XG4gICAgICAgIHRoaXMuc2F2ZUNhcmRzKG5ld0NhcmRzKTtcbiAgICB9O1xuXG4gICAgU3RvcmUucHJvdG90eXBlLmdldENhcmRzID0gZnVuY3Rpb24gZ2V0Q2FyZHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYXJkcztcbiAgICB9O1xuXG4gICAgU3RvcmUucHJvdG90eXBlLnJlbW92ZUNhcmQgPSBmdW5jdGlvbiByZW1vdmVDYXJkKGNhcmRJZCkge1xuICAgICAgICB2YXIgaW5kZXggPSAtMTtcbiAgICAgICAgdmFyIGN1cnJlbnRDYXJkcyA9IHRoaXMuZ2V0Q2FyZHMoKTtcbiAgICAgICAgY3VycmVudENhcmRzLm1hcChmdW5jdGlvbiAoY2FyZCwgYXJyYXlJbmRleCkge1xuICAgICAgICAgICAgaWYgKGNhcmQuaWQgPT0gY2FyZElkKSBpbmRleCA9IGFycmF5SW5kZXg7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ2FyZCBJRCBub3QgZm91bmQsIHRoaXMgaXMgc3RyYW5nZS4nLCBjYXJkSWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBuZXdDYXJkcztcbiAgICAgICAgaWYgKGluZGV4ID09IDApIG5ld0NhcmRzID0gY3VycmVudENhcmRzLnNsaWNlKDEpO2Vsc2UgaWYgKGluZGV4ID09IGN1cnJlbnRDYXJkcy5sZW5ndGggLSAxKSBuZXdDYXJkcyA9IGN1cnJlbnRDYXJkcy5zbGljZSgwLCAtMSk7ZWxzZSBuZXdDYXJkcyA9IGN1cnJlbnRDYXJkcy5zbGljZSgwLCBpbmRleCkuY29uY2F0KGN1cnJlbnRDYXJkcy5zbGljZShpbmRleCArIDEpKTtcbiAgICAgICAgdGhpcy5zZXRDYXJkcyhuZXdDYXJkcyk7XG4gICAgfTtcblxuICAgIFN0b3JlLnByb3RvdHlwZS5jcmVhdGVDYXJkSWQgPSBmdW5jdGlvbiBjcmVhdGVDYXJkSWQoY2FyZERlZmluaXRpb24pIHtcbiAgICAgICAgdmFyIHJhbmRvbWl6ZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIHZhciBpZCA9IExhbmdVdGlscy5jb21wdXRlU3RyaW5nU2x1ZyhjYXJkRGVmaW5pdGlvblsndGl0bGUnXSk7XG4gICAgICAgIGlmIChyYW5kb21pemUpIHtcbiAgICAgICAgICAgIGlkICs9ICctJyArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMCArIDEwKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYWxyZWFkeUV4aXN0cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jYXJkcy5tYXAoKGZ1bmN0aW9uIChjYXJkKSB7XG4gICAgICAgICAgICBpZiAoY2FyZC5pZCA9PSBpZCkgYWxyZWFkeUV4aXN0cyA9IHRydWU7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICBpZiAoYWxyZWFkeUV4aXN0cykge1xuICAgICAgICAgICAgaWQgPSB0aGlzLmNyZWF0ZUNhcmRJZChjYXJkRGVmaW5pdGlvbiwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH07XG5cbiAgICBTdG9yZS5wcm90b3R5cGUuYWRkQ2FyZCA9IGZ1bmN0aW9uIGFkZENhcmQoY2FyZERlZmluaXRpb24pIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhjYXJkRGVmaW5pdGlvbik7XG5cbiAgICAgICAgY2FyZERlZmluaXRpb25bJ2lkJ10gPSB0aGlzLmNyZWF0ZUNhcmRJZChjYXJkRGVmaW5pdGlvbik7XG4gICAgICAgIHRoaXMuc2V0Q2FyZHModGhpcy5fY2FyZHMuY29uY2F0KFtjYXJkRGVmaW5pdGlvbl0pKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFN0b3JlO1xufSkoT2JzZXJ2YWJsZSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFN0b3JlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBDb21wb25lbnQgPSBfcmVxdWlyZS5Db21wb25lbnQ7XG52YXIgUHJvcFR5cGVzID0gX3JlcXVpcmUuUHJvcFR5cGVzO1xuXG52YXIgX3JlcXVpcmUyID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIEZsYXRCdXR0b24gPSBfcmVxdWlyZTIuRmxhdEJ1dHRvbjtcblxudmFyIF9yZXF1aXJlMyA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpL3N0eWxlcycpO1xuXG52YXIgbXVpVGhlbWVhYmxlID0gX3JlcXVpcmUzLm11aVRoZW1lYWJsZTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gZnVuY3Rpb24gKFB5ZGlvQ29tcG9uZW50LCBkaXNwbGF5TmFtZSkge1xuICAgIHZhciBncmlkRGltZW5zaW9uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8geyBncmlkV2lkdGg6IDQsIGdyaWRIZWlnaHQ6IDEyIH0gOiBhcmd1bWVudHNbMl07XG4gICAgdmFyIGJ1aWxkZXJGaWVsZHMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBhcmd1bWVudHNbM107XG5cbiAgICB2YXIgb3JpZ2luYWxEaXNwbGF5TmFtZSA9IFB5ZGlvQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IFB5ZGlvQ29tcG9uZW50Lm5hbWU7XG4gICAgUHlkaW9Db21wb25lbnQgPSBtdWlUaGVtZWFibGUoKShQeWRpb0NvbXBvbmVudCk7XG5cbiAgICB2YXIgR3JpZEl0ZW0gPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgICAgICAgX2luaGVyaXRzKEdyaWRJdGVtLCBfQ29tcG9uZW50KTtcblxuICAgICAgICBmdW5jdGlvbiBHcmlkSXRlbShwcm9wcywgY29udGV4dCkge1xuICAgICAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEdyaWRJdGVtKTtcblxuICAgICAgICAgICAgX0NvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB7IGZvY3VzOiBmYWxzZSwgc2hvd0Nsb3NlQWN0aW9uOiBmYWxzZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgR3JpZEl0ZW0ucHJvdG90eXBlLmZvY3VzSXRlbSA9IGZ1bmN0aW9uIGZvY3VzSXRlbSgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBmb2N1czogdHJ1ZSB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBHcmlkSXRlbS5wcm90b3R5cGUuYmx1ckl0ZW0gPSBmdW5jdGlvbiBibHVySXRlbSgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBmb2N1czogZmFsc2UgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgR3JpZEl0ZW0ucHJvdG90eXBlLm1lcmdlU3R5bGVXaXRoRm9jdXMgPSBmdW5jdGlvbiBtZXJnZVN0eWxlV2l0aEZvY3VzKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLnN0eWxlLCB7IHpJbmRleDogdGhpcy5zdGF0ZS5mb2N1cyA/IDEgOiBudWxsIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIEdyaWRJdGVtLnByb3RvdHlwZS50b2dnbGVFZGl0TW9kZSA9IGZ1bmN0aW9uIHRvZ2dsZUVkaXRNb2RlKCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93Q2xvc2VBY3Rpb246ICEodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnNob3dDbG9zZUFjdGlvbikgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93Q2xvc2VBY3Rpb246IHZhbHVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIEdyaWRJdGVtLnByb3RvdHlwZS5nZXRDbG9zZUJ1dHRvbiA9IGZ1bmN0aW9uIGdldENsb3NlQnV0dG9uKCkge1xuICAgICAgICAgICAgdmFyIGNsb3NlQWN0aW9uID0gdGhpcy5wcm9wcy5vbkNsb3NlQWN0aW9uIHx8IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgdmFyIG92ZXJsYXlTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDAuNTMpJyxcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDEwLFxuICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogb3ZlcmxheVN0eWxlIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGbGF0QnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnByb3BzLnB5ZGlvLk1lc3NhZ2VIYXNoWydhanhwX2FkbWluLmhvbWUuNDgnXSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnY2FyZC1jbG9zZS1idXR0b24nLFxuICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBjbG9zZUFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgY29sb3I6ICd3aGl0ZScgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9O1xuXG4gICAgICAgIEdyaWRJdGVtLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywge1xuICAgICAgICAgICAgICAgIHN0eWxlOiB0aGlzLm1lcmdlU3R5bGVXaXRoRm9jdXMoKSxcbiAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbjogdGhpcy5zdGF0ZS5zaG93Q2xvc2VBY3Rpb24gPyB0aGlzLmdldENsb3NlQnV0dG9uKCkgOiBudWxsLFxuICAgICAgICAgICAgICAgIG9uRm9jdXNJdGVtOiB0aGlzLmZvY3VzSXRlbS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIG9uQmx1ckl0ZW06IHRoaXMuYmx1ckl0ZW0uYmluZCh0aGlzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChQeWRpb0NvbXBvbmVudCwgcHJvcHMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBHcmlkSXRlbTtcbiAgICB9KShDb21wb25lbnQpO1xuXG4gICAgR3JpZEl0ZW0ucHJvcFR5cGVzID0ge1xuICAgICAgICBvbkNsb3NlQWN0aW9uOiBQcm9wVHlwZXMuZnVuY1xuICAgIH07XG5cbiAgICBHcmlkSXRlbS5kaXNwbGF5TmFtZSA9IG9yaWdpbmFsRGlzcGxheU5hbWU7XG4gICAgR3JpZEl0ZW0uYnVpbGRlckRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWU7XG5cbiAgICBHcmlkSXRlbS5nZXRHcmlkTGF5b3V0ID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IHggfHwgMCxcbiAgICAgICAgICAgIHk6IHkgfHwgMCxcbiAgICAgICAgICAgIHc6IGdyaWREaW1lbnNpb24uZ3JpZFdpZHRoIHx8IDQsXG4gICAgICAgICAgICBoOiBncmlkRGltZW5zaW9uLmdyaWRIZWlnaHQgfHwgMTIsXG4gICAgICAgICAgICBpc1Jlc2l6YWJsZTogZmFsc2VcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgR3JpZEl0ZW0uaGFzQnVpbGRlckZpZWxkcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkZXJGaWVsZHMgIT09IHVuZGVmaW5lZDtcbiAgICB9O1xuICAgIEdyaWRJdGVtLmdldEJ1aWxkZXJGaWVsZHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBidWlsZGVyRmllbGRzO1xuICAgIH07XG5cbiAgICByZXR1cm4gR3JpZEl0ZW07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfbWF0ZXJpYWxVaVN0eWxlcyA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpL3N0eWxlcycpO1xuXG4vKipcbiAqIFR3byBjb2x1bW5zIGxheW91dCB1c2VkIGZvciBXb3Jrc3BhY2VzIGFuZCBQbHVnaW5zIGVkaXRvcnNcbiAqL1xuXG52YXIgUGFwZXJFZGl0b3JMYXlvdXQgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoUGFwZXJFZGl0b3JMYXlvdXQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gUGFwZXJFZGl0b3JMYXlvdXQocHJvcHMpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFBhcGVyRWRpdG9yTGF5b3V0KTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBmb3JjZUxlZnRPcGVuOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIFBhcGVyRWRpdG9yTGF5b3V0LnByb3RvdHlwZS50b2dnbGVNZW51ID0gZnVuY3Rpb24gdG9nZ2xlTWVudSgpIHtcbiAgICAgICAgdmFyIGNydExlZnRPcGVuID0gdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmZvcmNlTGVmdE9wZW47XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBmb3JjZUxlZnRPcGVuOiAhY3J0TGVmdE9wZW4gfSk7XG4gICAgfTtcblxuICAgIFBhcGVyRWRpdG9yTGF5b3V0LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgbXVpVGhlbWUgPSBfcHJvcHMubXVpVGhlbWU7XG4gICAgICAgIHZhciBjbG9zZUFjdGlvbiA9IF9wcm9wcy5jbG9zZUFjdGlvbjtcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IF9wcm9wcy5jbGFzc05hbWU7XG4gICAgICAgIHZhciB0aXRsZSA9IF9wcm9wcy50aXRsZTtcbiAgICAgICAgdmFyIHRpdGxlQWN0aW9uQmFyID0gX3Byb3BzLnRpdGxlQWN0aW9uQmFyO1xuICAgICAgICB2YXIgbGVmdE5hdiA9IF9wcm9wcy5sZWZ0TmF2O1xuICAgICAgICB2YXIgY29udGVudEZpbGwgPSBfcHJvcHMuY29udGVudEZpbGw7XG4gICAgICAgIHZhciBjaGlsZHJlbiA9IF9wcm9wcy5jaGlsZHJlbjtcbiAgICAgICAgdmFyIGZvcmNlTGVmdE9wZW4gPSB0aGlzLnN0YXRlLmZvcmNlTGVmdE9wZW47XG5cbiAgICAgICAgdmFyIHN0eWxlcyA9IHtcbiAgICAgICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBtdWlUaGVtZS5wYWxldHRlLnByaW1hcnkxQ29sb3IsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnMnB4IDJweCAwIDAnLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNnB4IDEycHgnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGl0bGVIMjoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAnd2hpdGUnLFxuICAgICAgICAgICAgICAgIGZsZXg6IDEsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IDIyLFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aXRsZUJhcjoge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgY2xvc2VCdXR0b24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChjbG9zZUFjdGlvbikge1xuICAgICAgICAgICAgY2xvc2VCdXR0b24gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgdG9vbHRpcDogX3B5ZGlvMlsnZGVmYXVsdCddLmdldE1lc3NhZ2VzKClbODZdLFxuICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWU6ICdtZGkgbWRpLWNsb3NlJyxcbiAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBjbG9zZUFjdGlvbixcbiAgICAgICAgICAgICAgICBpY29uU3R5bGU6IHsgY29sb3I6ICd3aGl0ZScgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJwYXBlci1lZGl0b3ItY29udGVudCBsYXlvdXQtZmlsbCB2ZXJ0aWNhbC1sYXlvdXRcIiArIChjbGFzc05hbWUgPyAnICcgKyBjbGFzc05hbWUgOiAnJykgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAncGFwZXItZWRpdG9yLXRpdGxlJywgc3R5bGU6IHN0eWxlcy50aXRsZSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnaDInLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiBzdHlsZXMudGl0bGVIMiB9LFxuICAgICAgICAgICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgJyAnLFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdsZWZ0LXBpY2tlci10b2dnbGUnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IGljb25DbGFzc05hbWU6ICdpY29uLWNhcmV0LWRvd24nLCBvbkNsaWNrOiB0aGlzLnRvZ2dsZU1lbnUuYmluZCh0aGlzKSB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy50aXRsZUJhciB9LFxuICAgICAgICAgICAgICAgICAgICB0aXRsZUFjdGlvbkJhclxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2xvc2VCdXR0b25cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ2xheW91dC1maWxsIG1haW4tbGF5b3V0LW5hdi10by1zdGFjaycgfSxcbiAgICAgICAgICAgICAgICBsZWZ0TmF2ICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwicGFwZXItZWRpdG9yLWxlZnRcIiArIChmb3JjZUxlZnRPcGVuID8gJyBwaWNrZXItb3BlbicgOiAnJyksIG9uQ2xpY2s6IHRoaXMudG9nZ2xlTWVudS5iaW5kKHRoaXMpIH0sXG4gICAgICAgICAgICAgICAgICAgIGxlZnROYXZcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwibGF5b3V0LWZpbGwgcGFwZXItZWRpdG9yLXJpZ2h0XCIgKyAoY29udGVudEZpbGwgPyAnIHZlcnRpY2FsLWxheW91dCcgOiAnJyksIHN0eWxlOiBjb250ZW50RmlsbCA/IHt9IDogeyBvdmVyZmxvd1k6ICdhdXRvJyB9IH0sXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gUGFwZXJFZGl0b3JMYXlvdXQ7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuUGFwZXJFZGl0b3JMYXlvdXQucHJvcFR5cGVzID0ge1xuICAgIHRpdGxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFueSxcbiAgICB0aXRsZUFjdGlvbkJhcjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hbnksXG4gICAgY2xvc2VBY3Rpb246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICBsZWZ0TmF2OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFueSxcbiAgICBjb250ZW50RmlsbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgIGNsYXNzTmFtZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmdcbn07XG5leHBvcnRzLlBhcGVyRWRpdG9yTGF5b3V0ID0gUGFwZXJFZGl0b3JMYXlvdXQgPSBfbWF0ZXJpYWxVaVN0eWxlcy5tdWlUaGVtZWFibGUoKShQYXBlckVkaXRvckxheW91dCk7XG5QYXBlckVkaXRvckxheW91dC5hY3Rpb25CdXR0b24gPSBmdW5jdGlvbiAobGFiZWwsIGljb24sIGFjdGlvbikge1xuICAgIHZhciBkaXNhYmxlZCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzNdO1xuXG4gICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHtcbiAgICAgICAgdG9vbHRpcDogbGFiZWwsXG4gICAgICAgIGljb25DbGFzc05hbWU6IGljb24sXG4gICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgICAgb25Ub3VjaFRhcDogYWN0aW9uLFxuICAgICAgICBpY29uU3R5bGU6IHsgY29sb3I6IGRpc2FibGVkID8gJ3JnYmEoMjU1LDI1NSwyNTUsMC41KScgOiAnd2hpdGUnIH1cbiAgICB9KTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGlvbiBzdWJoZWFkZXIgdXNlZCBieSBQYXBlckVkaXRvckxheW91dFxuICovXG52YXIgUGFwZXJFZGl0b3JOYXZIZWFkZXIgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnUGFwZXJFZGl0b3JOYXZIZWFkZXInLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGxhYmVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZ1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcIm11aS1zdWJoZWFkZXJcIiwgc3R5bGU6IHsgZm9udFNpemU6IDEzLCBmb250V2VpZ2h0OiA1MDAsIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjI1KScsIGxpbmVIZWlnaHQ6ICc0OHB4JywgcGFkZGluZ0xlZnQ6IDE2IH0gfSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICB0aGlzLnByb3BzLmxhYmVsXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcbi8qKlxuICogTmF2aWdhdGlvbiBlbnRyeSB1c2VkIGJ5IFBhcGVyRWRpdG9yTGF5b3V0LlxuICovXG52YXIgUGFwZXJFZGl0b3JOYXZFbnRyeSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdQYXBlckVkaXRvck5hdkVudHJ5JyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBrZXlOYW1lOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICBvbkNsaWNrOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgICAgbGFiZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBzZWxlY3RlZEtleTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGlzTGFzdDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICAvLyBEcm9wIERvd24gRGF0YVxuICAgICAgICBkcm9wRG93bjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBkcm9wRG93bkRhdGE6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICBkcm9wRG93bkNoYW5nZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBkcm9wRG93bkRlZmF1bHRJdGVtczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheVxuICAgIH0sXG5cbiAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQ2xpY2sodGhpcy5wcm9wcy5rZXlOYW1lKTtcbiAgICB9LFxuXG4gICAgY2FwdHVyZURyb3BEb3duQ2xpY2s6IGZ1bmN0aW9uIGNhcHR1cmVEcm9wRG93bkNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5wcmV2ZW50Q2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMucHJldmVudENsaWNrID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9wcy5vbkNsaWNrKHRoaXMucHJvcHMua2V5TmFtZSk7XG4gICAgfSxcblxuICAgIGRyb3BEb3duQ2hhbmdlOiBmdW5jdGlvbiBkcm9wRG93bkNoYW5nZShldmVudCwgaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgdGhpcy5wcmV2ZW50Q2xpY2sgPSB0cnVlO1xuICAgICAgICB0aGlzLnByb3BzLmRyb3BEb3duQ2hhbmdlKGl0ZW0pO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcblxuICAgICAgICBpZiAoIXRoaXMucHJvcHMuZHJvcERvd24gfHwgIXRoaXMucHJvcHMuZHJvcERvd25EYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZW51LWVudHJ5JyArICh0aGlzLnByb3BzLmtleU5hbWUgPT09IHRoaXMucHJvcHMuc2VsZWN0ZWRLZXkgPyAnIG1lbnUtZW50cnktc2VsZWN0ZWQnIDogJycpICsgKHRoaXMucHJvcHMuaXNMYXN0ID8gJyBsYXN0JyA6ICcnKSxcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5vbkNsaWNrIH0sXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmxhYmVsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZHJvcERvd24gJiBkcm9wRG93bkRhdGEgYXJlIGxvYWRlZFxuICAgICAgICB2YXIgbWVudUl0ZW1zVHBsID0gW3sgdGV4dDogdGhpcy5wcm9wcy5sYWJlbCwgcGF5bG9hZDogJy0xJyB9XTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZHJvcERvd25EZWZhdWx0SXRlbXMpIHtcbiAgICAgICAgICAgIG1lbnVJdGVtc1RwbCA9IG1lbnVJdGVtc1RwbC5jb25jYXQodGhpcy5wcm9wcy5kcm9wRG93bkRlZmF1bHRJdGVtcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9wcy5kcm9wRG93bkRhdGEuZm9yRWFjaChmdW5jdGlvbiAodiwgaykge1xuICAgICAgICAgICAgbWVudUl0ZW1zVHBsLnB1c2goeyB0ZXh0OiB2LmxhYmVsLCBwYXlsb2FkOiB2IH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IG9uQ2xpY2s6IHRoaXMuY2FwdHVyZURyb3BEb3duQ2xpY2ssIGNsYXNzTmFtZTogJ21lbnUtZW50cnktZHJvcGRvd24nICsgKHRoaXMucHJvcHMua2V5TmFtZSA9PT0gdGhpcy5wcm9wcy5zZWxlY3RlZEtleSA/ICcgbWVudS1lbnRyeS1zZWxlY3RlZCcgOiAnJykgKyAodGhpcy5wcm9wcy5pc0xhc3QgPyAnIGxhc3QnIDogJycpIH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5Ecm9wRG93bk1lbnUsIHtcbiAgICAgICAgICAgICAgICBtZW51SXRlbXM6IG1lbnVJdGVtc1RwbCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdkcm9wZG93bi1mdWxsLXdpZHRoJyxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyB3aWR0aDogMjU2IH0sXG4gICAgICAgICAgICAgICAgYXV0b1dpZHRoOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogdGhpcy5kcm9wRG93bkNoYW5nZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59KTtcblxuZXhwb3J0cy5QYXBlckVkaXRvckxheW91dCA9IFBhcGVyRWRpdG9yTGF5b3V0O1xuZXhwb3J0cy5QYXBlckVkaXRvck5hdkVudHJ5ID0gUGFwZXJFZGl0b3JOYXZFbnRyeTtcbmV4cG9ydHMuUGFwZXJFZGl0b3JOYXZIZWFkZXIgPSBQYXBlckVkaXRvck5hdkhlYWRlcjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgcHJvcFR5cGVzID0ge1xuICAgIG5vZGU6IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKEFqeHBOb2RlKS5pc1JlcXVpcmVkLFxuICAgIHJlZ2lzdHJ5OiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihSZWdpc3RyeSkuaXNSZXF1aXJlZCxcbiAgICBlZGl0b3JEYXRhOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgaWNvbjogUmVhY3QuUHJvcFR5cGVzLmJvb2xcbn07XG5cbnZhciBkZWZhdWx0UHJvcHMgPSB7XG4gICAgaWNvbjogZmFsc2Vcbn07XG5cbnZhciBSZWFjdEVkaXRvck9wZW5lciA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhSZWFjdEVkaXRvck9wZW5lciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBSZWFjdEVkaXRvck9wZW5lcihwcm9wcykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVhY3RFZGl0b3JPcGVuZXIpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICAgICAgdmFyIG5vZGUgPSBwcm9wcy5ub2RlO1xuICAgICAgICB2YXIgZWRpdG9yRGF0YSA9IHByb3BzLmVkaXRvckRhdGE7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHJlYWR5OiBmYWxzZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIFJlYWN0RWRpdG9yT3BlbmVyLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgZWRpdG9yRGF0YSA9IF9wcm9wcy5lZGl0b3JEYXRhO1xuICAgICAgICB2YXIgcmVnaXN0cnkgPSBfcHJvcHMucmVnaXN0cnk7XG5cbiAgICAgICAgcmVnaXN0cnkubG9hZEVkaXRvclJlc291cmNlcyhlZGl0b3JEYXRhLnJlc291cmNlc01hbmFnZXIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5zZXRTdGF0ZSh7IHJlYWR5OiB0cnVlIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUmVhY3RFZGl0b3JPcGVuZXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIGVkaXRvckRhdGEgPSB0aGlzLnByb3BzLmVkaXRvckRhdGE7XG4gICAgICAgIHZhciByZWFkeSA9IHRoaXMuc3RhdGUucmVhZHk7XG5cbiAgICAgICAgaWYgKCFyZWFkeSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgdmFyIEVkaXRvckNsYXNzID0gbnVsbDtcbiAgICAgICAgaWYgKCEoRWRpdG9yQ2xhc3MgPSBGdW5jVXRpbHMuZ2V0RnVuY3Rpb25CeU5hbWUoZWRpdG9yRGF0YS5lZGl0b3JDbGFzcywgd2luZG93KSkpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBcIkNhbm5vdCBmaW5kIGVkaXRvciBjb21wb25lbnQgKFwiICsgZWRpdG9yRGF0YS5lZGl0b3JDbGFzcyArIFwiKSFcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldHRpbmcgSE9DIG9mIHRoZSBjbGFzc1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChFZGl0b3JDbGFzcy5FZGl0b3IsIHRoaXMucHJvcHMpO1xuICAgIH07XG5cbiAgICByZXR1cm4gUmVhY3RFZGl0b3JPcGVuZXI7XG59KShSZWFjdC5Db21wb25lbnQpO1xuXG5SZWFjdEVkaXRvck9wZW5lci5wcm9wVHlwZXMgPSBwcm9wVHlwZXM7XG5SZWFjdEVkaXRvck9wZW5lci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gUmVhY3RFZGl0b3JPcGVuZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0NsaXBib2FyZFRleHRGaWVsZCcsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgZmxvYXRpbmdMYWJlbFRleHQ6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAgICAgaW5wdXRWYWx1ZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgaW5wdXRDbGFzc05hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGdldE1lc3NhZ2U6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBpbnB1dENvcHlNZXNzYWdlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nXG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICByZXR1cm4geyBjb3B5TWVzc2FnZTogbnVsbCB9O1xuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuYXR0YWNoQ2xpcGJvYXJkKCk7XG4gICAgfSxcbiAgICBjb21wb25lbnREaWRVcGRhdGU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5hdHRhY2hDbGlwYm9hcmQoKTtcbiAgICB9LFxuXG4gICAgYXR0YWNoQ2xpcGJvYXJkOiBmdW5jdGlvbiBhdHRhY2hDbGlwYm9hcmQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jbGlwKSB7XG4gICAgICAgICAgICB0aGlzLl9jbGlwLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucmVmc1snY29weS1idXR0b24nXSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NsaXAgPSBuZXcgQ2xpcGJvYXJkKHRoaXMucmVmc1snY29weS1idXR0b24nXSwge1xuICAgICAgICAgICAgdGV4dDogKGZ1bmN0aW9uICh0cmlnZ2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuaW5wdXRWYWx1ZTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcylcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2NsaXAub24oJ3N1Y2Nlc3MnLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvcHlNZXNzYWdlOiB0aGlzLnByb3BzLmdldE1lc3NhZ2UodGhpcy5wcm9wcy5pbnB1dENvcHlNZXNzYWdlIHx8ICcxOTInKSB9LCB0aGlzLmNsZWFyQ29weU1lc3NhZ2UpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5fY2xpcC5vbignZXJyb3InLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGNvcHlNZXNzYWdlO1xuICAgICAgICAgICAgaWYgKGdsb2JhbC5uYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZihcIk1hY1wiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvcHlNZXNzYWdlID0gdGhpcy5wcm9wcy5nZXRNZXNzYWdlKCcxNDQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weU1lc3NhZ2UgPSB0aGlzLnByb3BzLmdldE1lc3NhZ2UoJzE0MycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5yZWZzWydpbnB1dCddLmZvY3VzKCk7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgY29weU1lc3NhZ2U6IGNvcHlNZXNzYWdlIH0sIHRoaXMuY2xlYXJDb3B5TWVzc2FnZSk7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgIH0sXG5cbiAgICBjbGVhckNvcHlNZXNzYWdlOiBmdW5jdGlvbiBjbGVhckNvcHlNZXNzYWdlKCkge1xuICAgICAgICBnbG9iYWwuc2V0VGltZW91dCgoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvcHlNZXNzYWdlOiAnJyB9KTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSwgMzAwMCk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuXG4gICAgICAgIHZhciBzZWxlY3QgPSBmdW5jdGlvbiBzZWxlY3QoZSkge1xuICAgICAgICAgICAgZS5jdXJyZW50VGFyZ2V0LnNlbGVjdCgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBjb3B5TWVzc2FnZSA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmNvcHlNZXNzYWdlKSB7XG4gICAgICAgICAgICB2YXIgc2V0SHRtbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgX19odG1sOiB0aGlzLnN0YXRlLmNvcHlNZXNzYWdlIH07XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgY29weU1lc3NhZ2UgPSBSZWFjdC5jcmVhdGVFbGVtZW50KCdkaXYnLCB7IHN0eWxlOiB7IGNvbG9yOiAncmdiYSgwLDAsMCwwLjIzKScgfSwgY2xhc3NOYW1lOiAnY29weS1tZXNzYWdlJywgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHNldEh0bWwoKSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBidXR0b25TdHlsZSA9IF9leHRlbmRzKHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgcmlnaHQ6IC04LFxuICAgICAgICAgICAgYm90dG9tOiAxMyxcbiAgICAgICAgICAgIGZvbnRTaXplOiAxNSxcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLnByb3BzLmJ1dHRvbkNvbG9yIHx8ICdyZ2JhKDAsIDE1MCwgMTM2LCAwLjUyKScsXG4gICAgICAgICAgICBoZWlnaHQ6IDI2LFxuICAgICAgICAgICAgd2lkdGg6IDI2LFxuICAgICAgICAgICAgbGluZUhlaWdodDogJzI4cHgnLFxuICAgICAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNTAlJ1xuICAgICAgICB9LCB0aGlzLnByb3BzLmJ1dHRvblN0eWxlKTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9IH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChNYXRlcmlhbFVJLlRleHRGaWVsZCwge1xuICAgICAgICAgICAgICAgICAgICBmdWxsV2lkdGg6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlZjogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdMYWJlbFRleHQ6IHRoaXMucHJvcHMuZmxvYXRpbmdMYWJlbFRleHQsXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nTGFiZWxTdHlsZTogeyB3aGl0ZVNwYWNlOiAnbm93cmFwJyB9LFxuICAgICAgICAgICAgICAgICAgICB1bmRlcmxpbmVTaG93OiB0aGlzLnByb3BzLnVuZGVybGluZVNob3csXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5wcm9wcy5pbnB1dFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuaW5wdXRDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpTGluZTogdGhpcy5wcm9wcy5tdWx0aUxpbmUsXG4gICAgICAgICAgICAgICAgICAgIHJvd3M6IHRoaXMucHJvcHMucm93cyxcbiAgICAgICAgICAgICAgICAgICAgcm93c01heDogdGhpcy5wcm9wcy5yb3dzTWF4LFxuICAgICAgICAgICAgICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBtYXJnaW5Ub3A6IC0xMCwgd2lkdGg6ICc5MiUnLCBmb250U2l6ZTogMTQgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IHJlZjogJ2NvcHktYnV0dG9uJywgc3R5bGU6IGJ1dHRvblN0eWxlLCB0aXRsZTogdGhpcy5wcm9wcy5nZXRNZXNzYWdlKCcxOTEnKSwgY2xhc3NOYW1lOiAnY29weS1idXR0b24gbWRpIG1kaS1jb250ZW50LWNvcHknIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY29weU1lc3NhZ2VcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0xhYmVsV2l0aFRpcCcsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgbGFiZWw6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGxhYmVsRWxlbWVudDogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgdG9vbHRpcDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgdG9vbHRpcENsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBzdHlsZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdFxuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHsgc2hvdzogZmFsc2UgfTtcbiAgICB9LFxuXG4gICAgc2hvdzogZnVuY3Rpb24gc2hvdygpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3c6IHRydWUgfSk7XG4gICAgfSxcbiAgICBoaWRlOiBmdW5jdGlvbiBoaWRlKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvdzogZmFsc2UgfSk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy50b29sdGlwKSB7XG4gICAgICAgICAgICB2YXIgdG9vbHRpcFN0eWxlID0ge307XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5sYWJlbCB8fCB0aGlzLnByb3BzLmxhYmVsRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFN0eWxlID0geyBib3R0b206IC0xMCwgdG9wOiAnaW5oZXJpdCcgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRvb2x0aXBTdHlsZSA9IHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBsYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgbGFiZWwgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZWxsaXBzaXMtbGFiZWwnIH0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubGFiZWxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLmxhYmVsRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGxhYmVsID0gdGhpcy5wcm9wcy5sYWJlbEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlIHx8IHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfTtcblxuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgIHsgb25Nb3VzZUVudGVyOiB0aGlzLnNob3csIG9uTW91c2VMZWF2ZTogdGhpcy5oaWRlLCBzdHlsZTogc3R5bGUsIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWUgfSxcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3RNVUkuVG9vbHRpcCwgeyBsYWJlbDogdGhpcy5wcm9wcy50b29sdGlwLCBzdHlsZTogdG9vbHRpcFN0eWxlLCBjbGFzc05hbWU6IHRoaXMucHJvcHMudG9vbHRpcENsYXNzTmFtZSwgc2hvdzogdGhpcy5zdGF0ZS5zaG93IH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMubGFiZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmxhYmVsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5sYWJlbEVsZW1lbnQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4vKipcbiAqIFNpbXBsZSBNdWlQYXBlciB3aXRoIGEgZmlndXJlIGFuZCBhIGxlZ2VuZFxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzWydkZWZhdWx0J10gPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdTaW1wbGVGaWd1cmVCYWRnZScsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgY29sb3JJbmRpY2F0b3I6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGZpZ3VyZTogUmVhY3QuUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgICBsZWdlbmQ6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmdcbiAgICB9LFxuXG4gICAgZ2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbiBnZXREZWZhdWx0UHJvcHMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2xvckluZGljYXRvcjogJydcbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgUmVhY3RNVUkuUGFwZXIsXG4gICAgICAgICAgICB7IHN0eWxlOiB7IGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLCBtYXJnaW5MZWZ0OiAxNiB9IH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZmlndXJlLWJhZGdlJywgc3R5bGU6IHRoaXMucHJvcHMuY29sb3JJbmRpY2F0b3IgPyB7IGJvcmRlckxlZnRDb2xvcjogdGhpcy5wcm9wcy5jb2xvckluZGljYXRvciB9IDoge30gfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdmaWd1cmUnIH0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZmlndXJlXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdsZWdlbmQnIH0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubGVnZW5kXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX2xpc3RTb3J0YWJsZUxpc3QgPSByZXF1aXJlKCcuL2xpc3QvU29ydGFibGVMaXN0Jyk7XG5cbnZhciBfbGlzdFNvcnRhYmxlTGlzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9saXN0U29ydGFibGVMaXN0KTtcblxudmFyIF9saXN0U2ltcGxlTGlzdCA9IHJlcXVpcmUoJy4vbGlzdC9TaW1wbGVMaXN0Jyk7XG5cbnZhciBfbGlzdFNpbXBsZUxpc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGlzdFNpbXBsZUxpc3QpO1xuXG52YXIgX2xpc3ROb2RlTGlzdEN1c3RvbVByb3ZpZGVyID0gcmVxdWlyZSgnLi9saXN0L05vZGVMaXN0Q3VzdG9tUHJvdmlkZXInKTtcblxudmFyIF9saXN0Tm9kZUxpc3RDdXN0b21Qcm92aWRlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9saXN0Tm9kZUxpc3RDdXN0b21Qcm92aWRlcik7XG5cbnZhciBfbGlzdExpc3RFbnRyeSA9IHJlcXVpcmUoJy4vbGlzdC9MaXN0RW50cnknKTtcblxudmFyIF9saXN0TGlzdFBhZ2luYXRvciA9IHJlcXVpcmUoJy4vbGlzdC9MaXN0UGFnaW5hdG9yJyk7XG5cbnZhciBfbGlzdExpc3RQYWdpbmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGlzdExpc3RQYWdpbmF0b3IpO1xuXG52YXIgX2xpc3RNYXRlcmlhbFRhYmxlID0gcmVxdWlyZSgnLi9saXN0L01hdGVyaWFsVGFibGUnKTtcblxudmFyIF9saXN0TWF0ZXJpYWxUYWJsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9saXN0TWF0ZXJpYWxUYWJsZSk7XG5cbnZhciBfdmlld3NUcmVlVmlldyA9IHJlcXVpcmUoJy4vdmlld3MvVHJlZVZpZXcnKTtcblxudmFyIF9lbGVtZW50c0xhYmVsV2l0aFRpcCA9IHJlcXVpcmUoJy4vZWxlbWVudHMvTGFiZWxXaXRoVGlwJyk7XG5cbnZhciBfZWxlbWVudHNMYWJlbFdpdGhUaXAyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZWxlbWVudHNMYWJlbFdpdGhUaXApO1xuXG52YXIgX2VsZW1lbnRzU2ltcGxlRmlndXJlQmFkZ2UgPSByZXF1aXJlKCcuL2VsZW1lbnRzL1NpbXBsZUZpZ3VyZUJhZGdlJyk7XG5cbnZhciBfZWxlbWVudHNTaW1wbGVGaWd1cmVCYWRnZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9lbGVtZW50c1NpbXBsZUZpZ3VyZUJhZGdlKTtcblxudmFyIF9lbGVtZW50c0NsaXBib2FyZFRleHRGaWVsZCA9IHJlcXVpcmUoJy4vZWxlbWVudHMvQ2xpcGJvYXJkVGV4dEZpZWxkJyk7XG5cbnZhciBfZWxlbWVudHNDbGlwYm9hcmRUZXh0RmllbGQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZWxlbWVudHNDbGlwYm9hcmRUZXh0RmllbGQpO1xuXG52YXIgX3ZpZXdzRW1wdHlTdGF0ZVZpZXcgPSByZXF1aXJlKCcuL3ZpZXdzL0VtcHR5U3RhdGVWaWV3Jyk7XG5cbnZhciBfdmlld3NFbXB0eVN0YXRlVmlldzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF92aWV3c0VtcHR5U3RhdGVWaWV3KTtcblxudmFyIF92aWV3c01vZGFsQXBwQmFyID0gcmVxdWlyZSgnLi92aWV3cy9Nb2RhbEFwcEJhcicpO1xuXG52YXIgX3ZpZXdzTW9kYWxBcHBCYXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdmlld3NNb2RhbEFwcEJhcik7XG5cbnZhciBfZWRpdG9yUmVhY3RFZGl0b3JPcGVuZXIgPSByZXF1aXJlKCcuL2VkaXRvci9SZWFjdEVkaXRvck9wZW5lcicpO1xuXG52YXIgX2VkaXRvclJlYWN0RWRpdG9yT3BlbmVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2VkaXRvclJlYWN0RWRpdG9yT3BlbmVyKTtcblxudmFyIF9lZGl0b3JQYXBlckVkaXRvciA9IHJlcXVpcmUoJy4vZWRpdG9yL1BhcGVyRWRpdG9yJyk7XG5cbnZhciBfZHluYW1pY0dyaWREeW5hbWljR3JpZCA9IHJlcXVpcmUoJy4vZHluYW1pYy1ncmlkL0R5bmFtaWNHcmlkJyk7XG5cbnZhciBfZHluYW1pY0dyaWREeW5hbWljR3JpZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9keW5hbWljR3JpZER5bmFtaWNHcmlkKTtcblxudmFyIF9keW5hbWljR3JpZFN0b3JlID0gcmVxdWlyZSgnLi9keW5hbWljLWdyaWQvU3RvcmUnKTtcblxudmFyIF9keW5hbWljR3JpZFN0b3JlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2R5bmFtaWNHcmlkU3RvcmUpO1xuXG52YXIgX2R5bmFtaWNHcmlkR3JpZEl0ZW1NaXhpbiA9IHJlcXVpcmUoJy4vZHluYW1pYy1ncmlkL0dyaWRJdGVtTWl4aW4nKTtcblxudmFyIF9keW5hbWljR3JpZEdyaWRJdGVtTWl4aW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZHluYW1pY0dyaWRHcmlkSXRlbU1peGluKTtcblxudmFyIF9keW5hbWljR3JpZEFzR3JpZEl0ZW0gPSByZXF1aXJlKCcuL2R5bmFtaWMtZ3JpZC9hc0dyaWRJdGVtJyk7XG5cbnZhciBfZHluYW1pY0dyaWRBc0dyaWRJdGVtMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2R5bmFtaWNHcmlkQXNHcmlkSXRlbSk7XG5cbnZhciBfdXRpbERORCA9IHJlcXVpcmUoJy4vdXRpbC9ETkQnKTtcblxudmFyIF91c2Vyc0F2YXRhclVzZXJBdmF0YXIgPSByZXF1aXJlKCcuL3VzZXJzL2F2YXRhci9Vc2VyQXZhdGFyJyk7XG5cbnZhciBfdXNlcnNBdmF0YXJVc2VyQXZhdGFyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3VzZXJzQXZhdGFyVXNlckF2YXRhcik7XG5cbnZhciBfdXNlcnNVc2Vyc0NvbXBsZXRlciA9IHJlcXVpcmUoJy4vdXNlcnMvVXNlcnNDb21wbGV0ZXInKTtcblxudmFyIF91c2Vyc1VzZXJzQ29tcGxldGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3VzZXJzVXNlcnNDb21wbGV0ZXIpO1xuXG52YXIgX3VzZXJzVGVhbUNyZWF0aW9uRm9ybSA9IHJlcXVpcmUoJy4vdXNlcnMvVGVhbUNyZWF0aW9uRm9ybScpO1xuXG52YXIgX3VzZXJzVGVhbUNyZWF0aW9uRm9ybTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91c2Vyc1RlYW1DcmVhdGlvbkZvcm0pO1xuXG52YXIgX21lbnVCdXR0b25NZW51ID0gcmVxdWlyZSgnLi9tZW51L0J1dHRvbk1lbnUnKTtcblxudmFyIF9tZW51QnV0dG9uTWVudTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZW51QnV0dG9uTWVudSk7XG5cbnZhciBfbWVudUNvbnRleHRNZW51ID0gcmVxdWlyZSgnLi9tZW51L0NvbnRleHRNZW51Jyk7XG5cbnZhciBfbWVudUNvbnRleHRNZW51MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21lbnVDb250ZXh0TWVudSk7XG5cbnZhciBfbWVudUljb25CdXR0b25NZW51ID0gcmVxdWlyZSgnLi9tZW51L0ljb25CdXR0b25NZW51Jyk7XG5cbnZhciBfbWVudUljb25CdXR0b25NZW51MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21lbnVJY29uQnV0dG9uTWVudSk7XG5cbnZhciBfbWVudVRvb2xiYXIgPSByZXF1aXJlKCcuL21lbnUvVG9vbGJhcicpO1xuXG52YXIgX21lbnVUb29sYmFyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21lbnVUb29sYmFyKTtcblxudmFyIF91c2Vyc0FkZHJlc3Nib29rQWRkcmVzc0Jvb2sgPSByZXF1aXJlKCcuL3VzZXJzL2FkZHJlc3Nib29rL0FkZHJlc3NCb29rJyk7XG5cbnZhciBfdXNlcnNBZGRyZXNzYm9va0FkZHJlc3NCb29rMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3VzZXJzQWRkcmVzc2Jvb2tBZGRyZXNzQm9vayk7XG5cbnZhciBfY2hhdENoYXRDbGllbnQgPSByZXF1aXJlKCcuL2NoYXQvQ2hhdENsaWVudCcpO1xuXG52YXIgX2NoYXRDaGF0Q2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NoYXRDaGF0Q2xpZW50KTtcblxudmFyIF9jaGF0Q2hhdCA9IHJlcXVpcmUoJy4vY2hhdC9DaGF0Jyk7XG5cbnZhciBfY2hhdENoYXQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2hhdENoYXQpO1xuXG52YXIgX2NoYXRDaGF0SWNvbiA9IHJlcXVpcmUoJy4vY2hhdC9DaGF0SWNvbicpO1xuXG52YXIgX2NoYXRDaGF0SWNvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jaGF0Q2hhdEljb24pO1xuXG52YXIgX3BvbGljaWVzUmVzb3VyY2VQb2xpY2llc1BhbmVsID0gcmVxdWlyZSgnLi9wb2xpY2llcy9SZXNvdXJjZVBvbGljaWVzUGFuZWwnKTtcblxudmFyIF9wb2xpY2llc1Jlc291cmNlUG9saWNpZXNQYW5lbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wb2xpY2llc1Jlc291cmNlUG9saWNpZXNQYW5lbCk7XG5cbnZhciBfdXNlcnNBdmF0YXJDZWxsQWN0aW9uc1JlbmRlcmVyID0gcmVxdWlyZSgnLi91c2Vycy9hdmF0YXIvQ2VsbEFjdGlvbnNSZW5kZXJlcicpO1xuXG52YXIgX3VzZXJzQXZhdGFyQ2VsbEFjdGlvbnNSZW5kZXJlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91c2Vyc0F2YXRhckNlbGxBY3Rpb25zUmVuZGVyZXIpO1xuXG52YXIgUHlkaW9Db21wb25lbnRzID0ge1xuXG4gICAgU29ydGFibGVMaXN0OiBfbGlzdFNvcnRhYmxlTGlzdDJbJ2RlZmF1bHQnXSxcbiAgICBTaW1wbGVMaXN0OiBfbGlzdFNpbXBsZUxpc3QyWydkZWZhdWx0J10sXG4gICAgTm9kZUxpc3RDdXN0b21Qcm92aWRlcjogX2xpc3ROb2RlTGlzdEN1c3RvbVByb3ZpZGVyMlsnZGVmYXVsdCddLFxuICAgIExpc3RFbnRyeTogX2xpc3RMaXN0RW50cnkuTGlzdEVudHJ5LFxuICAgIExpc3RQYWdpbmF0b3I6IF9saXN0TGlzdFBhZ2luYXRvcjJbJ2RlZmF1bHQnXSxcbiAgICBNYXRlcmlhbFRhYmxlOiBfbGlzdE1hdGVyaWFsVGFibGUyWydkZWZhdWx0J10sXG5cbiAgICBUcmVlVmlldzogX3ZpZXdzVHJlZVZpZXcuVHJlZVZpZXcsXG4gICAgRE5EVHJlZVZpZXc6IF92aWV3c1RyZWVWaWV3LkRORFRyZWVWaWV3LFxuICAgIEZvbGRlcnNUcmVlOiBfdmlld3NUcmVlVmlldy5Gb2xkZXJzVHJlZSxcbiAgICBDbGlwYm9hcmRUZXh0RmllbGQ6IF9lbGVtZW50c0NsaXBib2FyZFRleHRGaWVsZDJbJ2RlZmF1bHQnXSxcbiAgICBMYWJlbFdpdGhUaXA6IF9lbGVtZW50c0xhYmVsV2l0aFRpcDJbJ2RlZmF1bHQnXSxcbiAgICBFbXB0eVN0YXRlVmlldzogX3ZpZXdzRW1wdHlTdGF0ZVZpZXcyWydkZWZhdWx0J10sXG4gICAgU2ltcGxlRmlndXJlQmFkZ2U6IF9lbGVtZW50c1NpbXBsZUZpZ3VyZUJhZGdlMlsnZGVmYXVsdCddLFxuICAgIE1vZGFsQXBwQmFyOiBfdmlld3NNb2RhbEFwcEJhcjJbJ2RlZmF1bHQnXSxcblxuICAgIFJlYWN0RWRpdG9yT3BlbmVyOiBfZWRpdG9yUmVhY3RFZGl0b3JPcGVuZXIyWydkZWZhdWx0J10sXG4gICAgUGFwZXJFZGl0b3JMYXlvdXQ6IF9lZGl0b3JQYXBlckVkaXRvci5QYXBlckVkaXRvckxheW91dCxcbiAgICBQYXBlckVkaXRvck5hdkVudHJ5OiBfZWRpdG9yUGFwZXJFZGl0b3IuUGFwZXJFZGl0b3JOYXZFbnRyeSxcbiAgICBQYXBlckVkaXRvck5hdkhlYWRlcjogX2VkaXRvclBhcGVyRWRpdG9yLlBhcGVyRWRpdG9yTmF2SGVhZGVyLFxuXG4gICAgRHluYW1pY0dyaWQ6IF9keW5hbWljR3JpZER5bmFtaWNHcmlkMlsnZGVmYXVsdCddLFxuICAgIER5bmFtaWNHcmlkSXRlbU1peGluOiBfZHluYW1pY0dyaWRHcmlkSXRlbU1peGluMlsnZGVmYXVsdCddLFxuICAgIGFzR3JpZEl0ZW06IF9keW5hbWljR3JpZEFzR3JpZEl0ZW0yWydkZWZhdWx0J10sXG4gICAgRHluYW1pY0dyaWRTdG9yZTogX2R5bmFtaWNHcmlkU3RvcmUyWydkZWZhdWx0J10sXG5cbiAgICBETkQ6IHtcbiAgICAgICAgVHlwZXM6IF91dGlsRE5ELlR5cGVzLCBjb2xsZWN0OiBfdXRpbERORC5jb2xsZWN0LCBjb2xsZWN0RHJvcDogX3V0aWxETkQuY29sbGVjdERyb3AsIG5vZGVEcmFnU291cmNlOiBfdXRpbERORC5ub2RlRHJhZ1NvdXJjZSwgbm9kZURyb3BUYXJnZXQ6IF91dGlsRE5ELm5vZGVEcm9wVGFyZ2V0LCBETkRBY3Rpb25QYXJhbWV0ZXI6IF91dGlsRE5ELkROREFjdGlvblBhcmFtZXRlclxuICAgIH0sXG4gICAgRE5EQWN0aW9uUGFyYW1ldGVyOiBfdXRpbERORC5ETkRBY3Rpb25QYXJhbWV0ZXIsXG5cbiAgICBVc2VyQXZhdGFyOiBfdXNlcnNBdmF0YXJVc2VyQXZhdGFyMlsnZGVmYXVsdCddLFxuICAgIFVzZXJzQ29tcGxldGVyOiBfdXNlcnNVc2Vyc0NvbXBsZXRlcjJbJ2RlZmF1bHQnXSxcbiAgICBUZWFtQ3JlYXRpb25Gb3JtOiBfdXNlcnNUZWFtQ3JlYXRpb25Gb3JtMlsnZGVmYXVsdCddLFxuICAgIEFkZHJlc3NCb29rOiBfdXNlcnNBZGRyZXNzYm9va0FkZHJlc3NCb29rMlsnZGVmYXVsdCddLFxuXG4gICAgQ29udGV4dE1lbnU6IF9tZW51Q29udGV4dE1lbnUyWydkZWZhdWx0J10sXG4gICAgVG9vbGJhcjogX21lbnVUb29sYmFyMlsnZGVmYXVsdCddLFxuICAgIEJ1dHRvbk1lbnU6IF9tZW51QnV0dG9uTWVudTJbJ2RlZmF1bHQnXSxcbiAgICBJY29uQnV0dG9uTWVudTogX21lbnVJY29uQnV0dG9uTWVudTJbJ2RlZmF1bHQnXSxcblxuICAgIENoYXQ6IF9jaGF0Q2hhdDJbJ2RlZmF1bHQnXSxcbiAgICBDaGF0SWNvbjogX2NoYXRDaGF0SWNvbjJbJ2RlZmF1bHQnXSxcbiAgICBDaGF0Q2xpZW50OiBfY2hhdENoYXRDbGllbnQyWydkZWZhdWx0J10sXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsOiBfcG9saWNpZXNSZXNvdXJjZVBvbGljaWVzUGFuZWwyWydkZWZhdWx0J10sXG4gICAgQ2VsbEFjdGlvbnNSZW5kZXJlcjogX3VzZXJzQXZhdGFyQ2VsbEFjdGlvbnNSZW5kZXJlcjJbJ2RlZmF1bHQnXVxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUHlkaW9Db21wb25lbnRzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4gPSByZXF1aXJlKCcuL0xpc3RFbnRyeU5vZGVMaXN0ZW5lck1peGluJyk7XG5cbnZhciBfTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4pO1xuXG52YXIgX0lubGluZUVkaXRvciA9IHJlcXVpcmUoJy4vSW5saW5lRWRpdG9yJyk7XG5cbnZhciBfSW5saW5lRWRpdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lubGluZUVkaXRvcik7XG5cbnZhciBfTGlzdEVudHJ5ID0gcmVxdWlyZSgnLi9MaXN0RW50cnknKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxuLyoqXG4gKiBDYWxsYmFjayBiYXNlZCBtYXRlcmlhbCBsaXN0IGVudHJ5IHdpdGggY3VzdG9tIGljb24gcmVuZGVyLCBmaXJzdExpbmUsIHNlY29uZExpbmUsIGV0Yy5cbiAqL1xuZXhwb3J0c1snZGVmYXVsdCddID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0NvbmZpZ3VyYWJsZUxpc3RFbnRyeScsXG5cbiAgICBtaXhpbnM6IFtfTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4yWydkZWZhdWx0J11dLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIG5vZGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuaW5zdGFuY2VPZihBanhwTm9kZSksXG4gICAgICAgIC8vIFNFRSBBTFNPIExpc3RFbnRyeSBQUk9QU1xuICAgICAgICByZW5kZXJJY29uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbmRlckZpcnN0TGluZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICByZW5kZXJTZWNvbmRMaW5lOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbmRlclRoaXJkTGluZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICByZW5kZXJBY3Rpb25zOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHN0eWxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdFxuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgaWNvbiA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGZpcnN0TGluZSA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHNlY29uZExpbmUgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICB0aGlyZExpbmUgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBzdHlsZSA9IHRoaXMucHJvcHMuc3R5bGUgfHwge307XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlbmRlckljb24pIHtcbiAgICAgICAgICAgIGljb24gPSB0aGlzLnByb3BzLnJlbmRlckljb24odGhpcy5wcm9wcy5ub2RlLCB0aGlzLnByb3BzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBub2RlID0gdGhpcy5wcm9wcy5ub2RlO1xuICAgICAgICAgICAgdmFyIGljb25DbGFzcyA9IG5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJpY29uX2NsYXNzXCIpID8gbm9kZS5nZXRNZXRhZGF0YSgpLmdldChcImljb25fY2xhc3NcIikgOiBub2RlLmlzTGVhZigpID8gXCJpY29uLWZpbGUtYWx0XCIgOiBcImljb24tZm9sZGVyLWNsb3NlXCI7XG4gICAgICAgICAgICBpY29uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRm9udEljb24sIHsgY2xhc3NOYW1lOiBpY29uQ2xhc3MgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZW5kZXJGaXJzdExpbmUpIHtcbiAgICAgICAgICAgIGZpcnN0TGluZSA9IHRoaXMucHJvcHMucmVuZGVyRmlyc3RMaW5lKHRoaXMucHJvcHMubm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaXJzdExpbmUgPSB0aGlzLnByb3BzLm5vZGUuZ2V0TGFiZWwoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmlubGluZUVkaXRpb24pIHtcbiAgICAgICAgICAgIGZpcnN0TGluZSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9JbmxpbmVFZGl0b3IyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogdGhpcy5wcm9wcy5ub2RlLFxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGlubGluZUVkaXRpb246IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogdGhpcy5zdGF0ZS5pbmxpbmVFZGl0aW9uQ2FsbGJhY2tcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaXJzdExpbmVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVuZGVyU2Vjb25kTGluZSkge1xuICAgICAgICAgICAgc2Vjb25kTGluZSA9IHRoaXMucHJvcHMucmVuZGVyU2Vjb25kTGluZSh0aGlzLnByb3BzLm5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlbmRlclRoaXJkTGluZSkge1xuICAgICAgICAgICAgdGhpcmRMaW5lID0gdGhpcy5wcm9wcy5yZW5kZXJUaGlyZExpbmUodGhpcy5wcm9wcy5ub2RlKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYWN0aW9ucyA9IHRoaXMucHJvcHMuYWN0aW9ucztcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVuZGVyQWN0aW9ucykge1xuICAgICAgICAgICAgYWN0aW9ucyA9IHRoaXMucHJvcHMucmVuZGVyQWN0aW9ucyh0aGlzLnByb3BzLm5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9MaXN0RW50cnkuRHJhZ0Ryb3BMaXN0RW50cnksIF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLCB7XG4gICAgICAgICAgICBpY29uQ2VsbDogaWNvbixcbiAgICAgICAgICAgIGZpcnN0TGluZTogZmlyc3RMaW5lLFxuICAgICAgICAgICAgc2Vjb25kTGluZTogc2Vjb25kTGluZSxcbiAgICAgICAgICAgIHRoaXJkTGluZTogdGhpcmRMaW5lLFxuICAgICAgICAgICAgYWN0aW9uczogYWN0aW9ucyxcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZVxuICAgICAgICB9KSk7XG4gICAgfVxuXG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIFB5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcbnZhciBBanhwTm9kZSA9IHJlcXVpcmUoJ3B5ZGlvL21vZGVsL25vZGUnKTtcblxudmFyIF9QeWRpbyRyZXF1aXJlTGliID0gUHlkaW8ucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfUHlkaW8kcmVxdWlyZUxpYi5QeWRpb0NvbnRleHRDb25zdW1lcjtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIFBhcGVyID0gX3JlcXVpcmUuUGFwZXI7XG52YXIgVGV4dEZpZWxkID0gX3JlcXVpcmUuVGV4dEZpZWxkO1xudmFyIEZsYXRCdXR0b24gPSBfcmVxdWlyZS5GbGF0QnV0dG9uO1xuXG52YXIgSW5saW5lRWRpdG9yID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnSW5saW5lRWRpdG9yJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBub2RlOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihBanhwTm9kZSksXG4gICAgICAgIGNhbGxiYWNrOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgb25DbG9zZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGRldGFjaGVkOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbFxuICAgIH0sXG5cbiAgICBzdWJtaXQ6IGZ1bmN0aW9uIHN1Ym1pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlIHx8ICF0aGlzLnN0YXRlLnZhbHVlIHx8IHRoaXMuc3RhdGUudmFsdWUgPT09IHRoaXMucHJvcHMubm9kZS5nZXRMYWJlbCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JTdHJpbmc6ICdQbGVhc2UgdXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciByZW5hbWluZyEnIH0pO1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5nZXRQeWRpbygpLmRpc3BsYXlNZXNzYWdlKCdFUlJPUicsICdQbGVhc2UgdXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciByZW5hbWluZyEnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY2FsbGJhY2sodGhpcy5zdGF0ZS52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMucmVmcy50ZXh0LmZvY3VzKCk7XG4gICAgfSxcblxuICAgIGNhdGNoQ2xpY2tzOiBmdW5jdGlvbiBjYXRjaENsaWNrcyhlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSxcblxuICAgIG9uS2V5RG93bjogZnVuY3Rpb24gb25LZXlEb3duKGUpIHtcbiAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlcnJvclN0cmluZzogJycgfSk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgUGFwZXIsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJpbmxpbmUtZWRpdG9yXCIgKyAodGhpcy5wcm9wcy5kZXRhY2hlZCA/IFwiIGRldGFjaGVkXCIgOiBcIlwiKSwgc3R5bGU6IHsgcGFkZGluZzogOCB9LCB6RGVwdGg6IDIgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGV4dEZpZWxkLCB7XG4gICAgICAgICAgICAgICAgcmVmOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLnByb3BzLm5vZGUuZ2V0TGFiZWwoKSxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKGUsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmFsdWU6IHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb25DbGljazogdGhpc1snY2F0Y2gnXSwgb25Eb3VibGVDbGljazogdGhpcy5jYXRjaENsaWNrcyxcbiAgICAgICAgICAgICAgICB0YWJJbmRleDogJzAnLCBvbktleURvd246IHRoaXMub25LZXlEb3duLFxuICAgICAgICAgICAgICAgIGVycm9yVGV4dDogdGhpcy5zdGF0ZSA/IHRoaXMuc3RhdGUuZXJyb3JTdHJpbmcgOiBudWxsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyB0ZXh0QWxpZ246ICdyaWdodCcsIHBhZGRpbmdUb3A6IDggfSB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRmxhdEJ1dHRvbiwgeyBsYWJlbDogJ0NhbmNlbCcsIG9uQ2xpY2s6IHRoaXMucHJvcHMub25DbG9zZSB9KSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZsYXRCdXR0b24sIHsgbGFiZWw6ICdTdWJtaXQnLCBvbkNsaWNrOiB0aGlzLnN1Ym1pdCB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxufSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElubGluZUVkaXRvciA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKElubGluZUVkaXRvcik7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElubGluZUVkaXRvcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3REb20gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcblxudmFyIF9yZWFjdERvbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdERvbSk7XG5cbnZhciBfdXRpbERORCA9IHJlcXVpcmUoJy4uL3V0aWwvRE5EJyk7XG5cbnZhciBfcmVhY3REbmQgPSByZXF1aXJlKCdyZWFjdC1kbmQnKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9tYXRlcmlhbFVpU3R5bGVzID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWkvc3R5bGVzJyk7XG5cbnZhciBfY29sb3IgPSByZXF1aXJlKCdjb2xvcicpO1xuXG52YXIgX2NvbG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NvbG9yKTtcblxuLyoqXG4gKiBNYXRlcmlhbCBMaXN0IEVudHJ5XG4gKi9cblxudmFyIExpc3RFbnRyeSA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhMaXN0RW50cnksIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gTGlzdEVudHJ5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGlzdEVudHJ5KTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgTGlzdEVudHJ5LnByb3RvdHlwZS5vbkNsaWNrID0gZnVuY3Rpb24gb25DbGljayhldmVudCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5zaG93U2VsZWN0b3IpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnNlbGVjdG9yRGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QodGhpcy5wcm9wcy5ub2RlLCBldmVudCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5vbkNsaWNrKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2xpY2sodGhpcy5wcm9wcy5ub2RlLCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgTGlzdEVudHJ5LnByb3RvdHlwZS5vbkRvdWJsZUNsaWNrID0gZnVuY3Rpb24gb25Eb3VibGVDbGljayhldmVudCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvdWJsZUNsaWNrKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uRG91YmxlQ2xpY2sodGhpcy5wcm9wcy5ub2RlLCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgTGlzdEVudHJ5LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIHNlbGVjdG9yID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgaWNvbiA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxDbGFzc05hbWUgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBub2RlID0gX3Byb3BzLm5vZGU7XG4gICAgICAgIHZhciBzaG93U2VsZWN0b3IgPSBfcHJvcHMuc2hvd1NlbGVjdG9yO1xuICAgICAgICB2YXIgc2VsZWN0ZWQgPSBfcHJvcHMuc2VsZWN0ZWQ7XG4gICAgICAgIHZhciBzZWxlY3RvckRpc2FibGVkID0gX3Byb3BzLnNlbGVjdG9yRGlzYWJsZWQ7XG4gICAgICAgIHZhciBmaXJzdExpbmUgPSBfcHJvcHMuZmlyc3RMaW5lO1xuICAgICAgICB2YXIgc2Vjb25kTGluZSA9IF9wcm9wcy5zZWNvbmRMaW5lO1xuICAgICAgICB2YXIgdGhpcmRMaW5lID0gX3Byb3BzLnRoaXJkTGluZTtcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzLnN0eWxlO1xuICAgICAgICB2YXIgYWN0aW9ucyA9IF9wcm9wcy5hY3Rpb25zO1xuICAgICAgICB2YXIgaWNvbkNlbGwgPSBfcHJvcHMuaWNvbkNlbGw7XG4gICAgICAgIHZhciBtYWluSWNvbiA9IF9wcm9wcy5tYWluSWNvbjtcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IF9wcm9wcy5jbGFzc05hbWU7XG4gICAgICAgIHZhciBjYW5Ecm9wID0gX3Byb3BzLmNhbkRyb3A7XG4gICAgICAgIHZhciBpc092ZXIgPSBfcHJvcHMuaXNPdmVyO1xuICAgICAgICB2YXIgY29ubmVjdERyYWdTb3VyY2UgPSBfcHJvcHMuY29ubmVjdERyYWdTb3VyY2U7XG4gICAgICAgIHZhciBjb25uZWN0RHJvcFRhcmdldCA9IF9wcm9wcy5jb25uZWN0RHJvcFRhcmdldDtcblxuICAgICAgICB2YXIgbWFpbkNsYXNzZXMgPSBbJ21hdGVyaWFsLWxpc3QtZW50cnknLCAnbWF0ZXJpYWwtbGlzdC1lbnRyeS0nICsgKHRoaXJkTGluZSA/IDMgOiBzZWNvbmRMaW5lID8gMiA6IDEpICsgJy1saW5lcyddO1xuICAgICAgICBpZiAoY2xhc3NOYW1lKSBtYWluQ2xhc3Nlcy5wdXNoKGNsYXNzTmFtZSk7XG5cbiAgICAgICAgaWYgKHNob3dTZWxlY3Rvcikge1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnbWF0ZXJpYWwtbGlzdC1zZWxlY3RvcicgfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkNoZWNrYm94LCB7IGNoZWNrZWQ6IHNlbGVjdGVkLCByZWY6ICdzZWxlY3RvcicsIGRpc2FibGVkOiBzZWxlY3RvckRpc2FibGVkIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGljb25DZWxsKSB7XG4gICAgICAgICAgICBpY29uID0gdGhpcy5wcm9wcy5pY29uQ2VsbDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLm1haW5JY29uKSB7XG4gICAgICAgICAgICB2YXIgX3N0eWxlID0ge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxOCwgY29sb3I6ICcjRkZGJywgZGlzcGxheTogJ2lubGluZS1ibG9jaycsIG1hcmdpbjogMTYsIGJhY2tncm91bmRDb2xvcjogJ3JnYigxODksIDE4OSwgMTg5KScsIHBhZGRpbmc6ICc3cHggM3B4Jywgd2lkdGg6IDMzLCBoZWlnaHQ6IDMzLCB0ZXh0QWxpZ246ICdjZW50ZXInXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWNvbiA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRm9udEljb24sIHsgY2xhc3NOYW1lOiBcIm11aS1mb250LWljb24gXCIgKyB0aGlzLnByb3BzLm1haW5JY29uLCBzdHlsZTogX3N0eWxlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNhbkRyb3AgJiYgaXNPdmVyKSB7XG4gICAgICAgICAgICBtYWluQ2xhc3Nlcy5wdXNoKCdkcm9wcGFibGUtYWN0aXZlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgbWFpbkNsYXNzZXMucHVzaCgnbGlzdGVudHJ5JyArIG5vZGUuZ2V0UGF0aCgpLnJlcGxhY2UoL1xcLy9nLCAnXycpKTtcbiAgICAgICAgICAgIG1haW5DbGFzc2VzLnB1c2goJ2FqeHBfbm9kZV8nICsgKG5vZGUuaXNMZWFmKCkgPyAnbGVhZicgOiAnY29sbGVjdGlvbicpKTtcbiAgICAgICAgICAgIGlmIChub2RlLmdldEFqeHBNaW1lKCkpIHtcbiAgICAgICAgICAgICAgICBtYWluQ2xhc3Nlcy5wdXNoKCdhanhwX21pbWVfJyArIG5vZGUuZ2V0QWp4cE1pbWUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYWRkaXRpb25hbFN0eWxlID0ge1xuICAgICAgICAgICAgLyp0cmFuc2l0aW9uOidiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXMsIGNvbG9yIDI1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXMnKi9cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5ob3ZlciAmJiAhdGhpcy5wcm9wcy5ub0hvdmVyKSB7XG4gICAgICAgICAgICBhZGRpdGlvbmFsU3R5bGUgPSBfZXh0ZW5kcyh7fSwgYWRkaXRpb25hbFN0eWxlLCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwLjA1KScsXG4gICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkIHRyYW5zcGFyZW50J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICB2YXIgc2VsZWN0aW9uQ29sb3IgPSB0aGlzLnByb3BzLm11aVRoZW1lLnBhbGV0dGUuYWNjZW50MkNvbG9yO1xuICAgICAgICAgICAgdmFyIHNlbGVjdGlvbkNvbG9yRGFyayA9IF9jb2xvcjJbJ2RlZmF1bHQnXShzZWxlY3Rpb25Db2xvcikuZGFyaygpO1xuICAgICAgICAgICAgYWRkaXRpb25hbFN0eWxlID0gX2V4dGVuZHMoe30sIGFkZGl0aW9uYWxTdHlsZSwge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogc2VsZWN0aW9uQ29sb3IsXG4gICAgICAgICAgICAgICAgY29sb3I6IHNlbGVjdGlvbkNvbG9yRGFyayA/ICd3aGl0ZScgOiAncmdiYSgwLDAsMCwuODcpJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBtYWluQ2xhc3Nlcy5wdXNoKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAgbWFpbkNsYXNzZXMucHVzaCgnc2VsZWN0ZWQtJyArIChzZWxlY3Rpb25Db2xvckRhcmsgPyAnZGFyaycgOiAnbGlnaHQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIENvbnRleHRNZW51V3JhcHBlcixcbiAgICAgICAgICAgIF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLCB7XG4gICAgICAgICAgICAgICAgcmVmOiBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUoaW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbm5lY3REcm9wVGFyZ2V0ID09PSAnZnVuY3Rpb24nKSBjb25uZWN0RHJvcFRhcmdldChub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25uZWN0RHJhZ1NvdXJjZSA9PT0gJ2Z1bmN0aW9uJykgY29ubmVjdERyYWdTb3VyY2Uobm9kZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBvbkRvdWJsZUNsaWNrOiBzaG93U2VsZWN0b3IgPyBudWxsIDogdGhpcy5vbkRvdWJsZUNsaWNrLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBtYWluQ2xhc3Nlcy5qb2luKCcgJyksXG4gICAgICAgICAgICAgICAgb25Nb3VzZU92ZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBob3ZlcjogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uTW91c2VPdXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBob3ZlcjogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzdHlsZTogX2V4dGVuZHMoe30sIHN0eWxlLCBhZGRpdGlvbmFsU3R5bGUpIH0pLFxuICAgICAgICAgICAgc2VsZWN0b3IsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcIm1hdGVyaWFsLWxpc3QtaWNvblwiICsgKG1haW5JY29uIHx8IGljb25DZWxsID8gXCJcIiA6IFwiIG1hdGVyaWFsLWxpc3QtaWNvbi1ub25lXCIpIH0sXG4gICAgICAgICAgICAgICAgaWNvblxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdtYXRlcmlhbC1saXN0LXRleHQnIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnbGluZS0xJywgY2xhc3NOYW1lOiAnbWF0ZXJpYWwtbGlzdC1saW5lLTEnIH0sXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiAnbGluZS0yJywgY2xhc3NOYW1lOiAnbWF0ZXJpYWwtbGlzdC1saW5lLTInIH0sXG4gICAgICAgICAgICAgICAgICAgIHNlY29uZExpbmVcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ2xpbmUtMycsIGNsYXNzTmFtZTogJ21hdGVyaWFsLWxpc3QtbGluZS0zJyB9LFxuICAgICAgICAgICAgICAgICAgICB0aGlyZExpbmVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ21hdGVyaWFsLWxpc3QtYWN0aW9ucycgfSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBMaXN0RW50cnk7XG59KShSZWFjdC5Db21wb25lbnQpO1xuXG52YXIgQ29udGV4dE1lbnVXcmFwcGVyID0gZnVuY3Rpb24gQ29udGV4dE1lbnVXcmFwcGVyKHByb3BzKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHByb3BzKTtcbn07XG5Db250ZXh0TWVudVdyYXBwZXIgPSBQeWRpb0hPQ3Mud2l0aENvbnRleHRNZW51KENvbnRleHRNZW51V3JhcHBlcik7XG5cbkxpc3RFbnRyeS5wcm9wVHlwZXMgPSB7XG4gICAgc2hvd1NlbGVjdG9yOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICBzZWxlY3RlZDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgc2VsZWN0b3JEaXNhYmxlZDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgb25TZWxlY3Q6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgIG9uQ2xpY2s6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgIGljb25DZWxsOiBSZWFjdC5Qcm9wVHlwZXMuZWxlbWVudCxcbiAgICBtYWluSWNvbjogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICBmaXJzdExpbmU6IFJlYWN0LlByb3BUeXBlcy5ub2RlLFxuICAgIHNlY29uZExpbmU6IFJlYWN0LlByb3BUeXBlcy5ub2RlLFxuICAgIHRoaXJkTGluZTogUmVhY3QuUHJvcFR5cGVzLm5vZGUsXG4gICAgYWN0aW9uczogUmVhY3QuUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgYWN0aXZlRHJvcHBhYmxlOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICBjbGFzc05hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgc3R5bGU6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgbm9Ib3ZlcjogUmVhY3QuUHJvcFR5cGVzLmJvb2xcbn07XG5cbmV4cG9ydHMuTGlzdEVudHJ5ID0gTGlzdEVudHJ5ID0gX21hdGVyaWFsVWlTdHlsZXMubXVpVGhlbWVhYmxlKCkoTGlzdEVudHJ5KTtcblxudmFyIERyYWdEcm9wTGlzdEVudHJ5ID0gX3JlYWN0RG5kLmZsb3coX3JlYWN0RG5kLkRyYWdTb3VyY2UoX3V0aWxETkQuVHlwZXMuTk9ERV9QUk9WSURFUiwgX3V0aWxETkQubm9kZURyYWdTb3VyY2UsIF91dGlsRE5ELmNvbGxlY3QpLCBfcmVhY3REbmQuRHJvcFRhcmdldChfdXRpbERORC5UeXBlcy5OT0RFX1BST1ZJREVSLCBfdXRpbERORC5ub2RlRHJvcFRhcmdldCwgX3V0aWxETkQuY29sbGVjdERyb3ApKShMaXN0RW50cnkpO1xuXG5leHBvcnRzLkRyYWdEcm9wTGlzdEVudHJ5ID0gRHJhZ0Ryb3BMaXN0RW50cnk7XG5leHBvcnRzLkxpc3RFbnRyeSA9IExpc3RFbnRyeTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHtcblxuICAgIGF0dGFjaDogZnVuY3Rpb24gYXR0YWNoKG5vZGUpIHtcbiAgICAgICAgdGhpcy5fbm9kZUxpc3RlbmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGV0YWNoKG5vZGUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5fYWN0aW9uTGlzdGVuZXIgPSAoZnVuY3Rpb24gKGV2ZW50TWVtbykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTW91bnRlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXRhY2gobm9kZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2ZW50TWVtbyAmJiBldmVudE1lbW8udHlwZSA9PT0gJ3Byb21wdC1yZW5hbWUnICYmIGV2ZW50TWVtby5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpbmxpbmVFZGl0aW9uOiB0cnVlLCBpbmxpbmVFZGl0aW9uQ2FsbGJhY2s6IGV2ZW50TWVtby5jYWxsYmFjayB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KS5iaW5kKHRoaXMpO1xuICAgICAgICBub2RlLm9ic2VydmUoXCJub2RlX3JlcGxhY2VkXCIsIHRoaXMuX25vZGVMaXN0ZW5lcik7XG4gICAgICAgIG5vZGUub2JzZXJ2ZShcIm5vZGVfYWN0aW9uXCIsIHRoaXMuX2FjdGlvbkxpc3RlbmVyKTtcbiAgICB9LFxuXG4gICAgZGV0YWNoOiBmdW5jdGlvbiBkZXRhY2gobm9kZSkge1xuICAgICAgICBpZiAodGhpcy5fbm9kZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICBub2RlLnN0b3BPYnNlcnZpbmcoXCJub2RlX3JlcGxhY2VkXCIsIHRoaXMuX25vZGVMaXN0ZW5lcik7XG4gICAgICAgICAgICBub2RlLnN0b3BPYnNlcnZpbmcoXCJub2RlX2FjdGlvblwiLCB0aGlzLl9hY3Rpb25MaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmF0dGFjaCh0aGlzLnByb3BzLm5vZGUpO1xuICAgIH0sXG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIHRoaXMuZGV0YWNoKHRoaXMucHJvcHMubm9kZSk7XG4gICAgfVxuXG59O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbiA9IHJlcXVpcmUoJy4uL3V0aWwvTWVzc2FnZXNDb25zdW1lck1peGluJyk7XG5cbnZhciBfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsTWVzc2FnZXNDb25zdW1lck1peGluKTtcblxuLyoqXG4gKiBQYWdpbmF0aW9uIGNvbXBvbmVudCByZWFkaW5nIG1ldGFkYXRhIFwicGFnaW5hdGlvbkRhdGFcIiBmcm9tIGN1cnJlbnQgbm9kZS5cbiAqL1xuZXhwb3J0c1snZGVmYXVsdCddID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0xpc3RQYWdpbmF0b3InLFxuXG4gICAgbWl4aW5zOiBbX3V0aWxNZXNzYWdlc0NvbnN1bWVyTWl4aW4yWydkZWZhdWx0J11dLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGRhdGFNb2RlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKFB5ZGlvRGF0YU1vZGVsKS5pc1JlcXVpcmVkLFxuICAgICAgICBub2RlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoQWp4cE5vZGUpXG4gICAgfSxcblxuICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICBpZiAoIXRoaXMucHJvcHMubm9kZSkge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgZG0gPSBfdGhpcy5wcm9wcy5kYXRhTW9kZWw7XG4gICAgICAgICAgICAgICAgX3RoaXMuX2RtT2JzZXJ2ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbm9kZTogZG0uZ2V0Q29udGV4dE5vZGUoKSB9KTtcbiAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzKTtcbiAgICAgICAgICAgICAgICBkbS5vYnNlcnZlKFwiY29udGV4dF9jaGFuZ2VkXCIsIF90aGlzLl9kbU9ic2VydmVyKTtcbiAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG5vZGU6IGRtLmdldENvbnRleHROb2RlKCkgfSk7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RtT2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnN0b3BPYnNlcnZpbmcoXCJjb250ZXh0X2NoYW5nZWRcIiwgdGhpcy5fZG1PYnNlcnZlcik7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7IG5vZGU6IHRoaXMucHJvcHMubm9kZSB9O1xuICAgIH0sXG5cbiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc3RhdGUubm9kZS5nZXRNZXRhZGF0YSgpLmdldChcInBhZ2luYXRpb25EYXRhXCIpLnNldChcIm5ld19wYWdlXCIsIGV2ZW50LmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLXBhZ2UnKSk7XG4gICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnJlcXVpcmVDb250ZXh0Q2hhbmdlKHRoaXMuc3RhdGUubm9kZSk7XG4gICAgfSxcblxuICAgIG9uTWVudUNoYW5nZTogZnVuY3Rpb24gb25NZW51Q2hhbmdlKGV2ZW50LCBpbmRleCwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5ub2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwicGFnaW5hdGlvbkRhdGFcIikuc2V0KFwibmV3X3BhZ2VcIiwgdmFsdWUpO1xuICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5yZXF1aXJlQ29udGV4dENoYW5nZSh0aGlzLnN0YXRlLm5vZGUpO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLm5vZGUgfHwgIXRoaXMuc3RhdGUubm9kZS5nZXRNZXRhZGF0YSgpLmdldChcInBhZ2luYXRpb25EYXRhXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcERhdGEgPSB0aGlzLnN0YXRlLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKTtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBwYXJzZUludChwRGF0YS5nZXQoXCJjdXJyZW50XCIpKTtcbiAgICAgICAgdmFyIHRvdGFsID0gcGFyc2VJbnQocERhdGEuZ2V0KFwidG90YWxcIikpO1xuICAgICAgICB2YXIgcGFnZXMgPSBbXSxcbiAgICAgICAgICAgIG5leHQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBsYXN0ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgcHJldmlvdXMgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBmaXJzdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIHBhZ2VXb3JkID0gdGhpcy5jb250ZXh0LmdldE1lc3NhZ2UgPyB0aGlzLmNvbnRleHQuZ2V0TWVzc2FnZSgnMzMxJywgJycpIDogdGhpcy5wcm9wcy5nZXRNZXNzYWdlKCczMzEnLCAnJyk7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IHRvdGFsOyBpKyspIHtcbiAgICAgICAgICAgIHBhZ2VzLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTWVudUl0ZW0sIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogaSxcbiAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogcGFnZVdvcmQgKyAnICcgKyBpICsgKGkgPT09IGN1cnJlbnQgPyAnIC8gJyArIHRvdGFsIDogJycpXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhZ2VzLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBwcmV2aW91cyA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHsgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzMi5vbk1lbnVDaGFuZ2UobnVsbCwgMCwgY3VycmVudCAtIDEpO1xuICAgICAgICAgICAgfSwgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLWNoZXZyb24tbGVmdFwiLCBkaXNhYmxlZDogY3VycmVudCA9PT0gMSB9KTtcbiAgICAgICAgbmV4dCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHsgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzMi5vbk1lbnVDaGFuZ2UobnVsbCwgMCwgY3VycmVudCArIDEpO1xuICAgICAgICAgICAgfSwgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLWNoZXZyb24tcmlnaHRcIiwgZGlzYWJsZWQ6IGN1cnJlbnQgPT09IHRvdGFsLCBzdHlsZTogeyBtYXJnaW5MZWZ0OiAtMjAgfSB9KTtcblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgaWQ6IHRoaXMucHJvcHMuaWQsIHN0eWxlOiBfZXh0ZW5kcyh7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicgfSwgdGhpcy5wcm9wcy5zdHlsZSkgfSxcbiAgICAgICAgICAgIHByZXZpb3VzLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuRHJvcERvd25NZW51LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6IDE1MCwgbWFyZ2luVG9wOiAtNiB9LFxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogdGhpcy5vbk1lbnVDaGFuZ2UsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICB1bmRlcmxpbmVTdHlsZTogeyBkaXNwbGF5OiAnbm9uZScgfSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxTdHlsZTogeyBjb2xvcjogJ3doaXRlJyB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYWdlc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5leHRcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX1B5ZGlvJHJlcXVpcmVMaWIgPSBfcHlkaW8yWydkZWZhdWx0J10ucmVxdWlyZUxpYihcImJvb3RcIik7XG5cbnZhciBtb21lbnQgPSBfUHlkaW8kcmVxdWlyZUxpYi5tb21lbnQ7XG5cbi8qKlxuICogU2ltcGxlIG1hdGVyaWFsIHRhYmxlXG4gKiBjb2x1bW5zIGFyZSBvYmplY3RzIG9mIHNoYXBlIHtuYW1lLCBsYWJlbCwgc3R5bGUsIGhlYWRlclN0eWxlfVxuICovXG5cbnZhciBNYXRlcmlhbFRhYmxlID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKE1hdGVyaWFsVGFibGUsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gTWF0ZXJpYWxUYWJsZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1hdGVyaWFsVGFibGUpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBNYXRlcmlhbFRhYmxlLnByb3RvdHlwZS5vblJvd1NlbGVjdGlvbiA9IGZ1bmN0aW9uIG9uUm93U2VsZWN0aW9uKGluZGV4ZXMpIHtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBkYXRhID0gX3Byb3BzLmRhdGE7XG4gICAgICAgIHZhciBvblNlbGVjdFJvd3MgPSBfcHJvcHMub25TZWxlY3RSb3dzO1xuXG4gICAgICAgIGlmICghb25TZWxlY3RSb3dzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ZXMgPT09ICdub25lJykge1xuICAgICAgICAgICAgb25TZWxlY3RSb3dzKFtdKTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleGVzID09PSAnYWxsJykge1xuICAgICAgICAgICAgb25TZWxlY3RSb3dzKGRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgaW5kZXhlcy5tYXAoZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLnB1c2goZGF0YVtpXSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgb25TZWxlY3RSb3dzKHNlbGVjdGlvbik7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIE1hdGVyaWFsVGFibGUucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgY29sdW1ucyA9IF9wcm9wczIuY29sdW1ucztcbiAgICAgICAgdmFyIGRhdGEgPSBfcHJvcHMyLmRhdGE7XG4gICAgICAgIHZhciBkZXNlbGVjdE9uQ2xpY2tBd2F5ID0gX3Byb3BzMi5kZXNlbGVjdE9uQ2xpY2tBd2F5O1xuICAgICAgICB2YXIgZW1wdHlTdGF0ZVN0cmluZyA9IF9wcm9wczIuZW1wdHlTdGF0ZVN0cmluZztcbiAgICAgICAgdmFyIG9uU2VsZWN0Um93cyA9IF9wcm9wczIub25TZWxlY3RSb3dzO1xuICAgICAgICB2YXIgY29tcHV0ZVJvd1N0eWxlID0gX3Byb3BzMi5jb21wdXRlUm93U3R5bGU7XG4gICAgICAgIHZhciBzaG93Q2hlY2tib3hlcyA9IHRoaXMucHJvcHMuc2hvd0NoZWNrYm94ZXM7XG5cbiAgICAgICAgdmFyIHJvd3MgPSBkYXRhLm1hcChmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICAgIHZhciByb3dTdHlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChjb21wdXRlUm93U3R5bGUpIHtcbiAgICAgICAgICAgICAgICByb3dTdHlsZSA9IGNvbXB1dGVSb3dTdHlsZShtb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW9kZWwuU3ViaGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgdmFyIGhlYWRlclN0eWxlID0gX2V4dGVuZHMoe1xuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogMTIsIGNvbG9yOiAnIzYxNjE2MScsIGJhY2tncm91bmRDb2xvcjogJyNGQUZBRkEnLCBmb250V2VpZ2h0OiA1MDBcbiAgICAgICAgICAgICAgICB9LCBtb2RlbC5zdHlsZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZVJvdyxcbiAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwibWVkaWEtc21hbGwtaGlkZVwiIH0sXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVGFibGVSb3dDb2x1bW4sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGNvbFNwYW46IGNvbHVtbnMubGVuZ3RoLCBzdHlsZTogaGVhZGVyU3R5bGUgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsLlN1YmhlYWRlclxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZVJvdyxcbiAgICAgICAgICAgICAgICB7IHNlbGVjdGFibGU6IG9uU2VsZWN0Um93cyAhPT0gdW5kZWZpbmVkLCBzdHlsZTogcm93U3R5bGUgfSxcbiAgICAgICAgICAgICAgICBjb2x1bW5zLm1hcChmdW5jdGlvbiAoY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IG1vZGVsW2NvbHVtbi5uYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbi51c2VNb21lbnQgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbW9tZW50KG5ldyBEYXRlKHBhcnNlSW50KHZhbHVlKSAqIDEwMDApKS5mcm9tTm93KCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29sdW1uLnJlbmRlckNlbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29sdW1uLnJlbmRlckNlbGwobW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRhYmxlUm93Q29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogY29sdW1uLnN0eWxlIHx8IHt9LCB0aXRsZTogdmFsdWUsIGNsYXNzTmFtZTogY29sdW1uLmhpZGVTbWFsbCA/ICdtZWRpYS1zbWFsbC1oaWRlJyA6IG51bGwgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgaGVhZGVycyA9IGNvbHVtbnMubWFwKGZ1bmN0aW9uIChjb2x1bW4pIHtcbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZUhlYWRlckNvbHVtbixcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiBjb2x1bW4uaGVhZGVyU3R5bGUgfHwge30sIGNsYXNzTmFtZTogY29sdW1uLmhpZGVTbWFsbCA/ICdtZWRpYS1zbWFsbC1oaWRlJyA6IG51bGwgfSxcbiAgICAgICAgICAgICAgICBjb2x1bW4ubGFiZWxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZW1wdHlTdGF0ZVN0cmluZyAmJiAhcm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHNob3dDaGVja2JveGVzID0gZmFsc2U7XG4gICAgICAgICAgICByb3dzID0gW19yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRhYmxlUm93LFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRhYmxlUm93Q29sdW1uLFxuICAgICAgICAgICAgICAgICAgICB7IGNvbFNwYW46IGNvbHVtbnMubGVuZ3RoIH0sXG4gICAgICAgICAgICAgICAgICAgIGVtcHR5U3RhdGVTdHJpbmdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5sZW5ndGggJiYgZGF0YVswXS5TdWJoZWFkZXIgfHwgZW1wdHlTdGF0ZVN0cmluZyAmJiAhcm93cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIEFkZCBmYWtlIGZpcnN0IGxpbmUgdG8gZml4IHdpZHRoXG4gICAgICAgICAgICByb3dzLnVuc2hpZnQoX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVGFibGVSb3csXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyBib3JkZXJCb3R0b206ICdub25lJywgaGVpZ2h0OiAwIH0gfSxcbiAgICAgICAgICAgICAgICBjb2x1bW5zLm1hcChmdW5jdGlvbiAoY29sKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzID0gY29sLnN0eWxlIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuVGFibGVSb3dDb2x1bW4sIHsgc3R5bGU6IF9leHRlbmRzKHt9LCBzLCB7IGhlaWdodDogMCB9KSwgY2xhc3NOYW1lOiBjb2wuaGlkZVNtYWxsID8gJ21lZGlhLXNtYWxsLWhpZGUnIDogbnVsbCB9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZSxcbiAgICAgICAgICAgIHsgb25Sb3dTZWxlY3Rpb246IHRoaXMub25Sb3dTZWxlY3Rpb24uYmluZCh0aGlzKSwgbXVsdGlTZWxlY3RhYmxlOiBzaG93Q2hlY2tib3hlcyB9LFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVGFibGVIZWFkZXIsXG4gICAgICAgICAgICAgICAgeyBkaXNwbGF5U2VsZWN0QWxsOiBzaG93Q2hlY2tib3hlcywgYWRqdXN0Rm9yQ2hlY2tib3g6IHNob3dDaGVja2JveGVzLCBlbmFibGVTZWxlY3RBbGw6IHNob3dDaGVja2JveGVzIH0sXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRhYmxlUm93LFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRhYmxlQm9keSxcbiAgICAgICAgICAgICAgICB7IGRlc2VsZWN0T25DbGlja2F3YXk6IGRlc2VsZWN0T25DbGlja0F3YXksIGRpc3BsYXlSb3dDaGVja2JveDogc2hvd0NoZWNrYm94ZXMgfSxcbiAgICAgICAgICAgICAgICByb3dzXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBNYXRlcmlhbFRhYmxlO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbk1hdGVyaWFsVGFibGUuUHJvcFR5cGVzID0ge1xuICAgIGRhdGE6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXksXG4gICAgY29sdW1uczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheSxcbiAgICBvblNlbGVjdFJvd3M6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICBlbXB0eVN0YXRlU3RyaW5nOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZ1xufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTWF0ZXJpYWxUYWJsZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfU2ltcGxlTGlzdCA9IHJlcXVpcmUoJy4vU2ltcGxlTGlzdCcpO1xuXG52YXIgX1NpbXBsZUxpc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2ltcGxlTGlzdCk7XG5cbi8qKlxuICogU2ltcGxlIHRvIHVzZSBsaXN0IGNvbXBvbmVudCBlbmNhcHN1bGF0ZWQgd2l0aCBpdHMgb3duIHF1ZXJ5IG1lY2hhbmlzbVxuICogdXNpbmcgYSBzZXQgb2YgcHJvcGVydGllcyBmb3IgdGhlIHJlbW90ZSBub2RlIHByb3ZpZGVyLlxuICovXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogXCJOb2RlTGlzdEN1c3RvbVByb3ZpZGVyXCIsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgbm9kZVByb3ZpZGVyUHJvcGVydGllczogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgcHJlc2V0RGF0YU1vZGVsOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpb0RhdGFNb2RlbCksXG4gICAgICAgIGF1dG9SZWZyZXNoOiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICBhY3Rpb25CYXJHcm91cHM6IFJlYWN0LlByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgaGVpZ2h0QXV0b1dpdGhNYXg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIGVsZW1lbnRIZWlnaHQ6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICAgICAgbm9kZUNsaWNrZWQ6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICByZWxvYWRPblNlcnZlck1lc3NhZ2U6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGVudHJ5UmVuZGVyQXNDYXJkOiBSZWFjdC5Qcm9wVHlwZXMuZnVuY1xuICAgIH0sXG5cbiAgICByZWxvYWQ6IGZ1bmN0aW9uIHJlbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVmcy5saXN0ICYmIHRoaXMuaXNNb3VudGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcy5saXN0LnJlbG9hZCgpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NtT2JzKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLnB5ZGlvLnN0b3BPYnNlcnZpbmcoXCJzZXJ2ZXJfbWVzc2FnZVwiLCB0aGlzLl9zbU9icyk7XG4gICAgICAgICAgICB0aGlzLnByb3BzLnB5ZGlvLnN0b3BPYnNlcnZpbmcoXCJzZXJ2ZXJfbWVzc2FnZTpcIiArIHRoaXMucHJvcHMucmVsb2FkT25TZXJ2ZXJNZXNzYWdlLCB0aGlzLnJlbG9hZCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMubm9kZVByb3ZpZGVyUHJvcGVydGllcyAmJiB0aGlzLnByb3BzLm5vZGVQcm92aWRlclByb3BlcnRpZXMgIT09IG5leHRQcm9wcy5ub2RlUHJvdmlkZXJQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgICAgIHZhciBkYXRhTW9kZWwgPSBfc3RhdGUuZGF0YU1vZGVsO1xuICAgICAgICAgICAgdmFyIG5vZGUgPSBfc3RhdGUubm9kZTtcblxuICAgICAgICAgICAgdmFyIHByb3ZpZGVyID0gbmV3IFJlbW90ZU5vZGVQcm92aWRlcihuZXh0UHJvcHMubm9kZVByb3ZpZGVyUHJvcGVydGllcyk7XG4gICAgICAgICAgICBkYXRhTW9kZWwuc2V0QWp4cE5vZGVQcm92aWRlcihwcm92aWRlcik7XG4gICAgICAgICAgICBub2RlLnVwZGF0ZVByb3ZpZGVyKHByb3ZpZGVyKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRhTW9kZWw6IGRhdGFNb2RlbCwgbm9kZTogbm9kZSB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnByZXNldERhdGFNb2RlbCAhPT0gbmV4dFByb3BzLnByZXNldERhdGFNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgZGF0YU1vZGVsOiBuZXh0UHJvcHMucHJlc2V0RGF0YU1vZGVsLFxuICAgICAgICAgICAgICAgIG5vZGU6IG5leHRQcm9wcy5wcmVzZXREYXRhTW9kZWwuZ2V0Um9vdE5vZGUoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG5cbiAgICAgICAgdmFyIGRhdGFNb2RlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucHJlc2V0RGF0YU1vZGVsKSB7XG4gICAgICAgICAgICBkYXRhTW9kZWwgPSB0aGlzLnByb3BzLnByZXNldERhdGFNb2RlbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGFNb2RlbCA9IFB5ZGlvRGF0YU1vZGVsLlJlbW90ZURhdGFNb2RlbEZhY3RvcnkodGhpcy5wcm9wcy5ub2RlUHJvdmlkZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcm9vdE5vZGUgPSBkYXRhTW9kZWwuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMubm9kZUNsaWNrZWQpIHtcbiAgICAgICAgICAgIC8vIGxlYWZcbiAgICAgICAgICAgIHRoaXMub3BlbkVkaXRvciA9IChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubm9kZUNsaWNrZWQobm9kZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgICAgIC8vIGRpclxuICAgICAgICAgICAgZGF0YU1vZGVsLm9ic2VydmUoXCJzZWxlY3Rpb25fY2hhbmdlZFwiLCAoZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkTm9kZXMgPSBldmVudC5tZW1vLmdldFNlbGVjdGVkTm9kZXMoKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5ub2RlQ2xpY2tlZChzZWxlY3RlZE5vZGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQubWVtby5zZXRTZWxlY3RlZE5vZGVzKFtdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZWxvYWRPblNlcnZlck1lc3NhZ2UgJiYgdGhpcy5wcm9wcy5weWRpbykge1xuICAgICAgICAgICAgdGhpcy5fc21PYnMgPSAoZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKFhNTFV0aWxzLlhQYXRoU2VsZWN0U2luZ2xlTm9kZShldmVudCwgdGhpcy5wcm9wcy5yZWxvYWRPblNlcnZlck1lc3NhZ2UpKSB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucHlkaW8ub2JzZXJ2ZShcInNlcnZlcl9tZXNzYWdlXCIsIHRoaXMuX3NtT2JzKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucHlkaW8ub2JzZXJ2ZShcInNlcnZlcl9tZXNzYWdlOlwiICsgdGhpcy5wcm9wcy5yZWxvYWRPblNlcnZlck1lc3NhZ2UsIHRoaXMucmVsb2FkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBub2RlOiByb290Tm9kZSwgZGF0YU1vZGVsOiBkYXRhTW9kZWwgfTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBsZWdlbmQ7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmxlZ2VuZCkge1xuICAgICAgICAgICAgbGVnZW5kID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInN1YnRpdGxlXCIgfSxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmxlZ2VuZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogdGhpcy5wcm9wcy5oZWlnaHRBdXRvV2l0aE1heCA/IFwiXCIgOiBcImxheW91dC1maWxsIHZlcnRpY2FsLWxheW91dFwiIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9TaW1wbGVMaXN0MltcImRlZmF1bHRcIl0sIF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLCB7XG4gICAgICAgICAgICAgICAgb3BlbkVkaXRvcjogdGhpcy5vcGVuRWRpdG9yLFxuICAgICAgICAgICAgICAgIHJlZjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oeyBoZWlnaHQ6ICcxMDAlJyB9LCB0aGlzLnByb3BzLnN0eWxlIHx8IHt9KSxcbiAgICAgICAgICAgICAgICBub2RlOiB0aGlzLnN0YXRlLm5vZGUsXG4gICAgICAgICAgICAgICAgZGF0YU1vZGVsOiB0aGlzLnN0YXRlLmRhdGFNb2RlbCxcbiAgICAgICAgICAgICAgICBhY3Rpb25CYXJHcm91cHM6IHRoaXMucHJvcHMuYWN0aW9uQmFyR3JvdXBzLFxuICAgICAgICAgICAgICAgIHNraXBQYXJlbnROYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9ic2VydmVOb2RlUmVsb2FkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGhpZGVUb29sYmFyOiB0cnVlXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfcmVhY3RTY3JvbGxiYXIgPSByZXF1aXJlKCdyZWFjdC1zY3JvbGxiYXInKTtcblxudmFyIF9yZWFjdFNjcm9sbGJhcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdFNjcm9sbGJhcik7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbiA9IHJlcXVpcmUoJy4uL3V0aWwvTWVzc2FnZXNDb25zdW1lck1peGluJyk7XG5cbnZhciBfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsTWVzc2FnZXNDb25zdW1lck1peGluKTtcblxudmFyIF9MaXN0RW50cnkgPSByZXF1aXJlKCcuL0xpc3RFbnRyeScpO1xuXG52YXIgX1RhYmxlTGlzdEVudHJ5ID0gcmVxdWlyZSgnLi9UYWJsZUxpc3RFbnRyeScpO1xuXG52YXIgX1RhYmxlTGlzdEVudHJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RhYmxlTGlzdEVudHJ5KTtcblxudmFyIF9UYWJsZUxpc3RIZWFkZXIgPSByZXF1aXJlKCcuL1RhYmxlTGlzdEhlYWRlcicpO1xuXG52YXIgX1RhYmxlTGlzdEhlYWRlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UYWJsZUxpc3RIZWFkZXIpO1xuXG52YXIgX0NvbmZpZ3VyYWJsZUxpc3RFbnRyeSA9IHJlcXVpcmUoJy4vQ29uZmlndXJhYmxlTGlzdEVudHJ5Jyk7XG5cbnZhciBfQ29uZmlndXJhYmxlTGlzdEVudHJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0NvbmZpZ3VyYWJsZUxpc3RFbnRyeSk7XG5cbnZhciBfU29ydENvbHVtbnMgPSByZXF1aXJlKCcuL1NvcnRDb2x1bW5zJyk7XG5cbnZhciBfU29ydENvbHVtbnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU29ydENvbHVtbnMpO1xuXG52YXIgX0xpc3RQYWdpbmF0b3IgPSByZXF1aXJlKCcuL0xpc3RQYWdpbmF0b3InKTtcblxudmFyIF9MaXN0UGFnaW5hdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0xpc3RQYWdpbmF0b3IpO1xuXG52YXIgX3ZpZXdzU2ltcGxlUmVhY3RBY3Rpb25CYXIgPSByZXF1aXJlKCcuLi92aWV3cy9TaW1wbGVSZWFjdEFjdGlvbkJhcicpO1xuXG52YXIgX3ZpZXdzU2ltcGxlUmVhY3RBY3Rpb25CYXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdmlld3NTaW1wbGVSZWFjdEFjdGlvbkJhcik7XG5cbnZhciBfSW5saW5lRWRpdG9yID0gcmVxdWlyZSgnLi9JbmxpbmVFZGl0b3InKTtcblxudmFyIF9JbmxpbmVFZGl0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSW5saW5lRWRpdG9yKTtcblxudmFyIF92aWV3c0VtcHR5U3RhdGVWaWV3ID0gcmVxdWlyZSgnLi4vdmlld3MvRW1wdHlTdGF0ZVZpZXcnKTtcblxudmFyIF92aWV3c0VtcHR5U3RhdGVWaWV3MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3ZpZXdzRW1wdHlTdGF0ZVZpZXcpO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIEluZmluaXRlID0gcmVxdWlyZSgncmVhY3QtaW5maW5pdGUnKTtcblxudmFyIERPTVV0aWxzID0gcmVxdWlyZSgncHlkaW8vdXRpbC9kb20nKTtcbnZhciBMYW5nVXRpbHMgPSByZXF1aXJlKCdweWRpby91dGlsL2xhbmcnKTtcbnZhciBQeWRpb0RhdGFNb2RlbCA9IHJlcXVpcmUoJ3B5ZGlvL21vZGVsL2RhdGEtbW9kZWwnKTtcbnZhciBQZXJpb2RpY2FsRXhlY3V0ZXIgPSByZXF1aXJlKCdweWRpby91dGlsL3BlcmlvZGljYWwtZXhlY3V0ZXInKTtcblxuLyoqXG4gKiBHZW5lcmljIExpc3QgY29tcG9uZW50LCB1c2luZyBJbmZpbml0ZSBmb3IgY2VsbCB2aXJ0dWFsaXphdGlvbiwgcGFnaW5hdGlvbiwgdmFyaW91c1xuICogZGlzcGxheXMsIGV0Yy4uLiBJdCBwcm92aWRlcyBtYW55IGhvb2tzIGZvciByZW5kZXJpbmcgY2VsbHMgb24tZGVtYW5kLlxuICovXG52YXIgU2ltcGxlTGlzdCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1NpbXBsZUxpc3QnLFxuXG4gICAgbWl4aW5zOiBbX3V0aWxNZXNzYWdlc0NvbnN1bWVyTWl4aW4yWydkZWZhdWx0J11dLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGluZmluaXRlU2xpY2VDb3VudDogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgZmlsdGVyTm9kZXM6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBjdXN0b21Ub29sYmFyOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICB0YWJsZUtleXM6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIGF1dG9SZWZyZXNoOiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICByZWxvYWRBdEN1cnNvcjogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIGNsZWFyU2VsZWN0aW9uT25SZWxvYWQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgICAgICBoZWlnaHRBdXRvV2l0aE1heDogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgY29udGFpbmVySGVpZ2h0OiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICBvYnNlcnZlTm9kZVJlbG9hZDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIGRlZmF1bHRHcm91cEJ5OiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBkZWZhdWx0R3JvdXBCeUxhYmVsOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgICAgIHNraXBQYXJlbnROYXZpZ2F0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgc2tpcEludGVybmFsRGF0YU1vZGVsOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgZGVsYXlJbml0aWFsTG9hZDogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcblxuICAgICAgICBlbnRyeUVuYWJsZVNlbGVjdG9yOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcmVuZGVyQ3VzdG9tRW50cnk6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBlbnRyeVJlbmRlckljb246IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBlbnRyeVJlbmRlckFjdGlvbnM6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBlbnRyeVJlbmRlckZpcnN0TGluZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGVudHJ5UmVuZGVyU2Vjb25kTGluZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGVudHJ5UmVuZGVyVGhpcmRMaW5lOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgZW50cnlIYW5kbGVDbGlja3M6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBoaWRlVG9vbGJhcjogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIGNvbXB1dGVBY3Rpb25zRm9yTm9kZTogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIG11bHRpcGxlQWN0aW9uczogUmVhY3QuUHJvcFR5cGVzLmFycmF5LFxuXG4gICAgICAgIG9wZW5FZGl0b3I6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBvcGVuQ29sbGVjdGlvbjogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICAgICAgZWxlbWVudFN0eWxlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICBwYXNzU2Nyb2xsaW5nU3RhdGVUb0NoaWxkcmVuOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgZWxlbWVudEhlaWdodDogUmVhY3QuUHJvcFR5cGVzLm9uZU9mVHlwZShbUmVhY3QuUHJvcFR5cGVzLm51bWJlciwgUmVhY3QuUHJvcFR5cGVzLm9iamVjdF0pLmlzUmVxdWlyZWRcblxuICAgIH0sXG5cbiAgICBzdGF0aWNzOiB7XG4gICAgICAgIEhFSUdIVF9PTkVfTElORTogNTAsXG4gICAgICAgIEhFSUdIVF9UV09fTElORVM6IDczLFxuICAgICAgICBDTElDS19UWVBFX1NJTVBMRTogJ3NpbXBsZScsXG4gICAgICAgIENMSUNLX1RZUEVfRE9VQkxFOiAnZG91YmxlJyxcbiAgICAgICAgUEFSRU5UX0ZPTERFUl9JQ09OOiAnbWRpIG1kaS1jaGV2cm9uLWxlZnQnXG4gICAgfSxcblxuICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gZ2V0RGVmYXVsdFByb3BzKCkge1xuICAgICAgICByZXR1cm4geyBpbmZpbml0ZVNsaWNlQ291bnQ6IDMwLCBjbGVhclNlbGVjdGlvbk9uUmVsb2FkOiB0cnVlIH07XG4gICAgfSxcblxuICAgIGNsaWNrUm93OiBmdW5jdGlvbiBjbGlja1JvdyhncmlkUm93LCBldmVudCkge1xuICAgICAgICB2YXIgbm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGdyaWRSb3cucHJvcHMpIHtcbiAgICAgICAgICAgIG5vZGUgPSBncmlkUm93LnByb3BzLmRhdGEubm9kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vZGUgPSBncmlkUm93O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmVudHJ5SGFuZGxlQ2xpY2tzKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmVudHJ5SGFuZGxlQ2xpY2tzKG5vZGUsIFNpbXBsZUxpc3QuQ0xJQ0tfVFlQRV9TSU1QTEUsIGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5pc0xlYWYoKSAmJiB0aGlzLnByb3BzLm9wZW5FZGl0b3IpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9wZW5FZGl0b3Iobm9kZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHVuaXF1ZVNlbGVjdGlvbiA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIHVuaXF1ZVNlbGVjdGlvbi5zZXQobm9kZSwgdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2VsZWN0aW9uOiB1bmlxdWVTZWxlY3Rpb24gfSwgdGhpcy5yZWJ1aWxkTG9hZGVkRWxlbWVudHMpO1xuICAgICAgICB9IGVsc2UgaWYgKCFub2RlLmlzTGVhZigpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vcGVuQ29sbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub3BlbkNvbGxlY3Rpb24obm9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnNldFNlbGVjdGVkTm9kZXMoW25vZGVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBkb3VibGVDbGlja1JvdzogZnVuY3Rpb24gZG91YmxlQ2xpY2tSb3coZ3JpZFJvdywgZXZlbnQpIHtcbiAgICAgICAgdmFyIG5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChncmlkUm93LnByb3BzKSB7XG4gICAgICAgICAgICBub2RlID0gZ3JpZFJvdy5wcm9wcy5kYXRhLm5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlID0gZ3JpZFJvdztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5lbnRyeUhhbmRsZUNsaWNrcykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5lbnRyeUhhbmRsZUNsaWNrcyhub2RlLCBTaW1wbGVMaXN0LkNMSUNLX1RZUEVfRE9VQkxFLCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgb25Db2x1bW5Tb3J0OiBmdW5jdGlvbiBvbkNvbHVtblNvcnQoY29sdW1uKSB7XG4gICAgICAgIHZhciBzdGF0ZVNldENhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB2YXIgcGFnaW5hdGlvbiA9IHRoaXMucHJvcHMubm9kZS5nZXRNZXRhZGF0YSgpLmdldCgncGFnaW5hdGlvbkRhdGEnKTtcbiAgICAgICAgaWYgKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5nZXQoJ3RvdGFsJykgPiAxICYmIHBhZ2luYXRpb24uZ2V0KCdyZW1vdGVfb3JkZXInKSkge1xuXG4gICAgICAgICAgICB2YXIgZGlyID0gJ2FzYyc7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5ub2RlLmdldE1ldGFkYXRhKCkuZ2V0KCdwYWdpbmF0aW9uRGF0YScpLmdldCgnY3VycmVudE9yZGVyRGlyJykpIHtcbiAgICAgICAgICAgICAgICBkaXIgPSB0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3BhZ2luYXRpb25EYXRhJykuZ2V0KCdjdXJyZW50T3JkZXJEaXInKSA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBvcmRlckRhdGEgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBvcmRlckRhdGEuc2V0KCdvcmRlcl9jb2x1bW4nLCBjb2x1bW5bJ3JlbW90ZVNvcnRBdHRyaWJ1dGUnXSA/IGNvbHVtbi5yZW1vdGVTb3J0QXR0cmlidXRlIDogY29sdW1uLm5hbWUpO1xuICAgICAgICAgICAgb3JkZXJEYXRhLnNldCgnb3JkZXJfZGlyZWN0aW9uJywgZGlyKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMubm9kZS5nZXRNZXRhZGF0YSgpLnNldChcInJlbW90ZV9vcmRlclwiLCBvcmRlckRhdGEpO1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5kYXRhTW9kZWwucmVxdWlyZUNvbnRleHRDaGFuZ2UodGhpcy5wcm9wcy5ub2RlLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgdmFyIGF0dCA9IGNvbHVtblsnc29ydEF0dHJpYnV0ZSddID8gY29sdW1uWydzb3J0QXR0cmlidXRlJ10gOiBjb2x1bW4ubmFtZTtcbiAgICAgICAgICAgIHZhciBzb3J0aW5nSW5mbyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciBfc3RhdGUkc29ydGluZ0luZm8gPSB0aGlzLnN0YXRlLnNvcnRpbmdJbmZvO1xuICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZSA9IF9zdGF0ZSRzb3J0aW5nSW5mby5hdHRyaWJ1dGU7XG4gICAgICAgICAgICB2YXIgZGlyZWN0aW9uID0gX3N0YXRlJHNvcnRpbmdJbmZvLmRpcmVjdGlvbjtcblxuICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZSA9PT0gYXR0ICYmIGRpcmVjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICdhc2MnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFN3aXRjaCBkaXJlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgc29ydGluZ0luZm8gPSB7IGF0dHJpYnV0ZTogYXR0LCBzb3J0VHlwZTogY29sdW1uLnNvcnRUeXBlLCBkaXJlY3Rpb246ICdkZXNjJyB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlc2V0IHNvcnRpbmdcbiAgICAgICAgICAgICAgICAgICAgc29ydGluZ0luZm8gPSB0aGlzLnByb3BzLmRlZmF1bHRTb3J0aW5nSW5mbyB8fCB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNvcnRpbmdJbmZvID0geyBhdHRyaWJ1dGU6IGF0dCwgc29ydFR5cGU6IGNvbHVtbi5zb3J0VHlwZSwgZGlyZWN0aW9uOiAnYXNjJyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRpbmdJbmZvOiBzb3J0aW5nSW5mbyB9LCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVidWlsZExvYWRlZEVsZW1lbnRzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlU2V0Q2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGVTZXRDYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXB1dGVTZWxlY3Rpb25Gcm9tQ3VycmVudFBsdXNUYXJnZXROb2RlOiBmdW5jdGlvbiBjb21wdXRlU2VsZWN0aW9uRnJvbUN1cnJlbnRQbHVzVGFyZ2V0Tm9kZShjdXJyZW50U2VsZWN0aW9uLCB0YXJnZXROb2RlKSB7XG5cbiAgICAgICAgdmFyIGN1cnJlbnRJbmRleFN0YXJ0ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgY3VycmVudEluZGV4RW5kID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbm9kZUJlZm9yZSA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuaW5kZXhlZEVsZW1lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZpcnN0U2VsZWN0ZWQgPSBjdXJyZW50U2VsZWN0aW9uWzBdO1xuICAgICAgICB2YXIgbGFzdFNlbGVjdGVkID0gY3VycmVudFNlbGVjdGlvbltjdXJyZW50U2VsZWN0aW9uLmxlbmd0aCAtIDFdO1xuICAgICAgICB2YXIgbmV3U2VsZWN0aW9uID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbmRleGVkRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXhTdGFydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnB1c2godGhpcy5pbmRleGVkRWxlbWVudHNbaV0ubm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pbmRleGVkRWxlbWVudHNbaV0ubm9kZSA9PT0gdGFyZ2V0Tm9kZSkge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXhTdGFydCAhPT0gdW5kZWZpbmVkICYmIGN1cnJlbnRJbmRleEVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleEVuZCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXhTdGFydCA9IGk7XG4gICAgICAgICAgICAgICAgbm9kZUJlZm9yZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnB1c2godGhpcy5pbmRleGVkRWxlbWVudHNbaV0ubm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pbmRleGVkRWxlbWVudHNbaV0ubm9kZSA9PT0gZmlyc3RTZWxlY3RlZCAmJiBjdXJyZW50SW5kZXhTdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4U3RhcnQgPSBpO1xuICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5wdXNoKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUgPT09IGxhc3RTZWxlY3RlZCAmJiBub2RlQmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4RW5kID0gaTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3U2VsZWN0aW9uO1xuICAgIH0sXG5cbiAgICBvbktleURvd246IGZ1bmN0aW9uIG9uS2V5RG93bihlKSB7XG4gICAgICAgIHZhciBjdXJyZW50SW5kZXhTdGFydCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleEVuZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIGNvbnRleHRIb2xkZXIgPSB3aW5kb3cucHlkaW8uZ2V0Q29udGV4dEhvbGRlcigpO1xuICAgICAgICB2YXIgZWxlbWVudHNQZXJMaW5lID0gdGhpcy5wcm9wcy5lbGVtZW50c1BlckxpbmUgfHwgMTtcbiAgICAgICAgdmFyIHNoaWZ0S2V5ID0gZS5zaGlmdEtleTtcbiAgICAgICAgdmFyIGtleSA9IGUua2V5O1xuXG4gICAgICAgIGlmIChjb250ZXh0SG9sZGVyLmlzRW1wdHkoKSB8fCAhdGhpcy5pbmRleGVkRWxlbWVudHMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZG93bktleXMgPSBbJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ1BhZ2VEb3duJywgJ0VuZCddO1xuXG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHNoaWZ0S2V5ICYmIGRvd25LZXlzLmluZGV4T2Yoa2V5KSA+IC0xID8gJ2ZpcnN0JyA6ICdsYXN0JztcbiAgICAgICAgdmFyIGN1cnJlbnRTZWxlY3Rpb24gPSBjb250ZXh0SG9sZGVyLmdldFNlbGVjdGVkTm9kZXMoKTtcblxuICAgICAgICB2YXIgZmlyc3RTZWxlY3RlZCA9IGN1cnJlbnRTZWxlY3Rpb25bMF07XG4gICAgICAgIHZhciBsYXN0U2VsZWN0ZWQgPSBjdXJyZW50U2VsZWN0aW9uW2N1cnJlbnRTZWxlY3Rpb24ubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy5kb3VibGVDbGlja1JvdyhmaXJzdFNlbGVjdGVkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnRGVsZXRlJyAmJiBnbG9iYWwucHlkaW8uQ29udHJvbGxlci5maXJlQWN0aW9uQnlLZXkoJ2tleV9kZWxldGUnKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmluZGV4ZWRFbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUgPT09IGZpcnN0U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXhTdGFydCA9IGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5pbmRleGVkRWxlbWVudHNbaV0ubm9kZSA9PT0gbGFzdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4RW5kID0gaTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgc2VsZWN0aW9uSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBtYXhJbmRleCA9IHRoaXMuaW5kZXhlZEVsZW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgICAgIHZhciBpbmNyZW1lbnQgPSBrZXkgPT09ICdQYWdlRG93bicgfHwga2V5ID09PSAnUGFnZVVwJyA/IDEwIDogMTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ0Fycm93RG93bicgfHwga2V5ID09PSAnUGFnZURvd24nKSB7XG4gICAgICAgICAgICBzZWxlY3Rpb25JbmRleCA9IE1hdGgubWluKGN1cnJlbnRJbmRleEVuZCArIGVsZW1lbnRzUGVyTGluZSAqIGluY3JlbWVudCwgbWF4SW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0Fycm93VXAnIHx8IGtleSA9PT0gJ1BhZ2VVcCcpIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbkluZGV4ID0gTWF0aC5tYXgoY3VycmVudEluZGV4U3RhcnQgLSBlbGVtZW50c1BlckxpbmUgKiBpbmNyZW1lbnQsIDApO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0hvbWUnKSB7XG4gICAgICAgICAgICBzZWxlY3Rpb25JbmRleCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnRW5kJykge1xuICAgICAgICAgICAgc2VsZWN0aW9uSW5kZXggPSBtYXhJbmRleDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudHNQZXJMaW5lID4gMSkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uSW5kZXggPSBjdXJyZW50SW5kZXhFbmQgKyAxO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uSW5kZXggPSBjdXJyZW50SW5kZXhTdGFydCAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2hpZnRLZXkgJiYgc2VsZWN0aW9uSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdmFyIG1pbiA9IE1hdGgubWluKGN1cnJlbnRJbmRleFN0YXJ0LCBjdXJyZW50SW5kZXhFbmQsIHNlbGVjdGlvbkluZGV4KTtcbiAgICAgICAgICAgIHZhciBtYXggPSBNYXRoLm1heChjdXJyZW50SW5kZXhTdGFydCwgY3VycmVudEluZGV4RW5kLCBzZWxlY3Rpb25JbmRleCk7XG4gICAgICAgICAgICBpZiAobWluICE9PSBtYXgpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IG1pbjsgaSA8IG1heCArIDE7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbmRleGVkRWxlbWVudHNbaV0pIHNlbGVjdGlvbi5wdXNoKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250ZXh0SG9sZGVyLnNldFNlbGVjdGVkTm9kZXMoc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmluZGV4ZWRFbGVtZW50c1tzZWxlY3Rpb25JbmRleF0gJiYgdGhpcy5pbmRleGVkRWxlbWVudHNbc2VsZWN0aW9uSW5kZXhdLm5vZGUpIHtcbiAgICAgICAgICAgIGNvbnRleHRIb2xkZXIuc2V0U2VsZWN0ZWROb2RlcyhbdGhpcy5pbmRleGVkRWxlbWVudHNbc2VsZWN0aW9uSW5kZXhdLm5vZGVdKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5hY3Rpb25zQ2FjaGUgPSB7IG11bHRpcGxlOiBuZXcgTWFwKCkgfTtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnNraXBJbnRlcm5hbERhdGFNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5kbSA9IG5ldyBQeWRpb0RhdGFNb2RlbCgpO1xuICAgICAgICAgICAgdGhpcy5kbS5zZXRSb290Tm9kZSh0aGlzLnByb3BzLmRhdGFNb2RlbC5nZXRDb250ZXh0Tm9kZSgpKTtcbiAgICAgICAgICAgIHRoaXMuZG0uc2V0Q29udGV4dE5vZGUodGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0Q29udGV4dE5vZGUoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRtID0gdGhpcy5wcm9wcy5kYXRhTW9kZWw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0YXRlID0ge1xuICAgICAgICAgICAgbG9hZGVkOiB0aGlzLnByb3BzLm5vZGUuaXNMb2FkZWQoKSxcbiAgICAgICAgICAgIGxvYWRpbmc6ICF0aGlzLnByb3BzLm5vZGUuaXNMb2FkZWQoKSxcbiAgICAgICAgICAgIHNob3dTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBlbGVtZW50czogdGhpcy5wcm9wcy5ub2RlLmlzTG9hZGVkKCkgPyB0aGlzLmJ1aWxkRWxlbWVudHMoMCwgdGhpcy5wcm9wcy5pbmZpbml0ZVNsaWNlQ291bnQpIDogW10sXG4gICAgICAgICAgICBjb250YWluZXJIZWlnaHQ6IHRoaXMucHJvcHMuY29udGFpbmVySGVpZ2h0ID8gdGhpcy5wcm9wcy5jb250YWluZXJIZWlnaHQgOiB0aGlzLnByb3BzLmhlaWdodEF1dG9XaXRoTWF4ID8gMCA6IDUwMCxcbiAgICAgICAgICAgIHNvcnRpbmdJbmZvOiB0aGlzLnByb3BzLmRlZmF1bHRTb3J0aW5nSW5mbyB8fCBudWxsXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgICAgIHN0YXRlLmVsZW1lbnRIZWlnaHQgPSB0aGlzLmNvbXB1dGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHN0YXRlLmluZmluaXRlTG9hZEJlZ2luQm90dG9tT2Zmc2V0ID0gMjAwO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5pbmRleGVkRWxlbWVudHMgPSBudWxsO1xuICAgICAgICB2YXIgY3VycmVudExlbmd0aCA9IE1hdGgubWF4KHRoaXMuc3RhdGUuZWxlbWVudHMubGVuZ3RoLCBuZXh0UHJvcHMuaW5maW5pdGVTbGljZUNvdW50KTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBsb2FkZWQ6IG5leHRQcm9wcy5ub2RlLmlzTG9hZGVkKCksXG4gICAgICAgICAgICBsb2FkaW5nOiAhbmV4dFByb3BzLm5vZGUuaXNMb2FkZWQoKSxcbiAgICAgICAgICAgIHNob3dTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBlbGVtZW50czogbmV4dFByb3BzLm5vZGUuaXNMb2FkZWQoKSA/IHRoaXMuYnVpbGRFbGVtZW50cygwLCBjdXJyZW50TGVuZ3RoLCBuZXh0UHJvcHMubm9kZSkgOiBbXSxcbiAgICAgICAgICAgIGluZmluaXRlTG9hZEJlZ2luQm90dG9tT2Zmc2V0OiAyMDAsXG4gICAgICAgICAgICBzb3J0aW5nSW5mbzogdGhpcy5zdGF0ZS5zb3J0aW5nSW5mbyB8fCBuZXh0UHJvcHMuZGVmYXVsdFNvcnRpbmdJbmZvIHx8IG51bGxcbiAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKG5leHRQcm9wcy5ub2RlLmlzTG9hZGVkKCkpIF90aGlzLnVwZGF0ZUluZmluaXRlQ29udGFpbmVySGVpZ2h0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIW5leHRQcm9wcy5hdXRvUmVmcmVzaCAmJiB0aGlzLnJlZnJlc2hJbnRlcnZhbCkge1xuICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5yZWZyZXNoSW50ZXJ2YWwpO1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoSW50ZXJ2YWwgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKG5leHRQcm9wcy5hdXRvUmVmcmVzaCAmJiAhdGhpcy5yZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEludGVydmFsID0gd2luZG93LnNldEludGVydmFsKHRoaXMucmVsb2FkLCBuZXh0UHJvcHMuYXV0b1JlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGF0Y2hJbmZpbml0ZUdyaWQobmV4dFByb3BzLmVsZW1lbnRzUGVyTGluZSk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGUgJiYgbmV4dFByb3BzLm5vZGUgIT09IHRoaXMucHJvcHMubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlTm9kZUNoaWxkcmVuKHRoaXMucHJvcHMubm9kZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX21hbnVhbFNjcm9sbFBlKSB7XG4gICAgICAgICAgICB0aGlzLl9tYW51YWxTY3JvbGxQZS5zdG9wKCk7XG4gICAgICAgICAgICB0aGlzLl9tYW51YWxTY3JvbGxQZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgb2JzZXJ2ZU5vZGVDaGlsZHJlbjogZnVuY3Rpb24gb2JzZXJ2ZU5vZGVDaGlsZHJlbihub2RlKSB7XG4gICAgICAgIHZhciBzdG9wID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgaWYgKHN0b3AgJiYgIXRoaXMuX2NoaWxkcmVuT2JzZXJ2ZXIpIHJldHVybjtcblxuICAgICAgICBpZiAoIXRoaXMuX2NoaWxkcmVuT2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVuT2JzZXJ2ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZXhlZEVsZW1lbnRzID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYnVpbGRMb2FkZWRFbGVtZW50cygpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2NoaWxkcmVuQWN0aW9uc09ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGlsZHJlbkFjdGlvbnNPYnNlcnZlciA9IChmdW5jdGlvbiAoZXZlbnRNZW1vKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50TWVtby50eXBlID09PSAncHJvbXB0LXJlbmFtZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlubGluZUVkaXRpb25Gb3JOb2RlOiBldmVudE1lbW8uY2hpbGQsIGlubGluZUVkaXRpb25DYWxsYmFjazogZXZlbnRNZW1vLmNhbGxiYWNrIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0b3ApIHtcbiAgICAgICAgICAgIG5vZGUuc3RvcE9ic2VydmluZyhcImNoaWxkX2FkZGVkXCIsIHRoaXMuX2NoaWxkcmVuT2JzZXJ2ZXIpO1xuICAgICAgICAgICAgbm9kZS5zdG9wT2JzZXJ2aW5nKFwiY2hpbGRfcmVtb3ZlZFwiLCB0aGlzLl9jaGlsZHJlbk9ic2VydmVyKTtcbiAgICAgICAgICAgIG5vZGUuc3RvcE9ic2VydmluZyhcImNoaWxkX25vZGVfYWN0aW9uXCIsIHRoaXMuX2NoaWxkcmVuQWN0aW9uc09ic2VydmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vZGUub2JzZXJ2ZShcImNoaWxkX2FkZGVkXCIsIHRoaXMuX2NoaWxkcmVuT2JzZXJ2ZXIpO1xuICAgICAgICAgICAgbm9kZS5vYnNlcnZlKFwiY2hpbGRfcmVtb3ZlZFwiLCB0aGlzLl9jaGlsZHJlbk9ic2VydmVyKTtcbiAgICAgICAgICAgIG5vZGUub2JzZXJ2ZShcImNoaWxkX25vZGVfYWN0aW9uXCIsIHRoaXMuX2NoaWxkcmVuQWN0aW9uc09ic2VydmVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBfbG9hZE5vZGVJZk5vdExvYWRlZDogZnVuY3Rpb24gX2xvYWROb2RlSWZOb3RMb2FkZWQoKSB7XG4gICAgICAgIHZhciBub2RlID0gdGhpcy5wcm9wcy5ub2RlO1xuXG4gICAgICAgIGlmICghbm9kZS5pc0xvYWRlZCgpKSB7XG4gICAgICAgICAgICBub2RlLm9ic2VydmVPbmNlKFwibG9hZGVkXCIsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzTW91bnRlZCgpKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMubm9kZSA9PT0gbm9kZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVOb2RlQ2hpbGRyZW4obm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50czogdGhpcy5idWlsZEVsZW1lbnRzKDAsIHRoaXMucHJvcHMuaW5maW5pdGVTbGljZUNvdW50KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuaGVpZ2h0QXV0b1dpdGhNYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgbm9kZS5sb2FkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVOb2RlQ2hpbGRyZW4obm9kZSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgX2xvYWRpbmdMaXN0ZW5lcjogZnVuY3Rpb24gX2xvYWRpbmdMaXN0ZW5lcigpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlTm9kZUNoaWxkcmVuKHRoaXMucHJvcHMubm9kZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkZWQ6IGZhbHNlLCBsb2FkaW5nOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLmluZGV4ZWRFbGVtZW50cyA9IG51bGw7XG4gICAgfSxcbiAgICBfbG9hZGVkTGlzdGVuZXI6IGZ1bmN0aW9uIF9sb2FkZWRMaXN0ZW5lcigpIHtcbiAgICAgICAgdmFyIGN1cnJlbnRMZW5ndGggPSBNYXRoLm1heCh0aGlzLnN0YXRlLmVsZW1lbnRzLmxlbmd0aCwgdGhpcy5wcm9wcy5pbmZpbml0ZVNsaWNlQ291bnQpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgZWxlbWVudHM6IHRoaXMuYnVpbGRFbGVtZW50cygwLCBjdXJyZW50TGVuZ3RoLCB0aGlzLnByb3BzLm5vZGUpXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5oZWlnaHRBdXRvV2l0aE1heCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2JzZXJ2ZU5vZGVDaGlsZHJlbih0aGlzLnByb3BzLm5vZGUpO1xuICAgIH0sXG5cbiAgICByZWxvYWQ6IGZ1bmN0aW9uIHJlbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVsb2FkQXRDdXJzb3IgJiYgdGhpcy5fY3VycmVudEN1cnNvcikge1xuICAgICAgICAgICAgdGhpcy5sb2FkU3RhcnRpbmdBdEN1cnNvcigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNsZWFyU2VsZWN0aW9uT25SZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnNldFNlbGVjdGVkTm9kZXMoW10pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xvYWRpbmdMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLnByb3BzLm5vZGUub2JzZXJ2ZU9uY2UoXCJsb2FkZWRcIiwgdGhpcy5fbG9hZGVkTGlzdGVuZXIpO1xuICAgICAgICB0aGlzLnByb3BzLm5vZGUucmVsb2FkKCk7XG4gICAgfSxcblxuICAgIGxvYWRTdGFydGluZ0F0Q3Vyc29yOiBmdW5jdGlvbiBsb2FkU3RhcnRpbmdBdEN1cnNvcigpIHtcbiAgICAgICAgdGhpcy5fbG9hZGluZ0xpc3RlbmVyKCk7XG4gICAgICAgIHZhciBub2RlID0gdGhpcy5wcm9wcy5ub2RlO1xuICAgICAgICB2YXIgY2FjaGVkQ2hpbGRyZW4gPSBub2RlLmdldENoaWxkcmVuKCk7XG4gICAgICAgIHZhciBuZXdDaGlsZHJlbiA9IFtdO1xuICAgICAgICBub2RlLm9ic2VydmVPbmNlKFwibG9hZGVkXCIsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgcmVvcmRlcmVkQ2hpbGRyZW4gPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICBuZXdDaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgICByZW9yZGVyZWRDaGlsZHJlbi5zZXQoYy5nZXRQYXRoKCksIGMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYWNoZWRDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgICAgICAgcmVvcmRlcmVkQ2hpbGRyZW4uc2V0KGMuZ2V0UGF0aCgpLCBjKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbm9kZS5fY2hpbGRyZW4gPSByZW9yZGVyZWRDaGlsZHJlbjtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZExpc3RlbmVyKCk7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICBub2RlLnNldExvYWRlZChmYWxzZSk7XG4gICAgICAgIG5vZGUub2JzZXJ2ZShcImNoaWxkX2FkZGVkXCIsIGZ1bmN0aW9uIChuZXdDaGlsZCkge1xuICAgICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaChub2RlLl9jaGlsZHJlbi5nZXQobmV3Q2hpbGQpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucHJvcHMubm9kZS5sb2FkKG51bGwsIHsgY3Vyc29yOiB0aGlzLl9jdXJyZW50Q3Vyc29yIH0pO1xuICAgIH0sXG5cbiAgICB3aXJlUmVsb2FkTGlzdGVuZXJzOiBmdW5jdGlvbiB3aXJlUmVsb2FkTGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLndyYXBwZWRMb2FkaW5nID0gdGhpcy5fbG9hZGluZ0xpc3RlbmVyO1xuICAgICAgICB0aGlzLndyYXBwZWRMb2FkZWQgPSB0aGlzLl9sb2FkZWRMaXN0ZW5lcjtcbiAgICAgICAgdGhpcy5wcm9wcy5ub2RlLm9ic2VydmUoXCJsb2FkaW5nXCIsIHRoaXMud3JhcHBlZExvYWRpbmcpO1xuICAgICAgICB0aGlzLnByb3BzLm5vZGUub2JzZXJ2ZShcImxvYWRlZFwiLCB0aGlzLndyYXBwZWRMb2FkZWQpO1xuICAgIH0sXG4gICAgc3RvcFJlbG9hZExpc3RlbmVyczogZnVuY3Rpb24gc3RvcFJlbG9hZExpc3RlbmVycygpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5ub2RlLnN0b3BPYnNlcnZpbmcoXCJsb2FkaW5nXCIsIHRoaXMud3JhcHBlZExvYWRpbmcpO1xuICAgICAgICB0aGlzLnByb3BzLm5vZGUuc3RvcE9ic2VydmluZyhcImxvYWRlZFwiLCB0aGlzLndyYXBwZWRMb2FkZWQpO1xuICAgIH0sXG5cbiAgICB0b2dnbGVTZWxlY3RvcjogZnVuY3Rpb24gdG9nZ2xlU2VsZWN0b3IoKSB7XG4gICAgICAgIC8vIEZvcmNlIHJlYnVpbGQgZWxlbWVudHNcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBzaG93U2VsZWN0b3I6ICF0aGlzLnN0YXRlLnNob3dTZWxlY3RvcixcbiAgICAgICAgICAgIHNlbGVjdGlvbjogbmV3IE1hcCgpXG4gICAgICAgIH0sIHRoaXMucmVidWlsZExvYWRlZEVsZW1lbnRzKTtcbiAgICB9LFxuXG4gICAgdG9nZ2xlU2VsZWN0aW9uOiBmdW5jdGlvbiB0b2dnbGVTZWxlY3Rpb24obm9kZSkge1xuICAgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5zdGF0ZS5zZWxlY3Rpb24gfHwgbmV3IE1hcCgpO1xuICAgICAgICBpZiAoc2VsZWN0aW9uLmdldChub2RlKSkgc2VsZWN0aW9uWydkZWxldGUnXShub2RlKTtlbHNlIHNlbGVjdGlvbi5zZXQobm9kZSwgdHJ1ZSk7XG4gICAgICAgIGlmICh0aGlzLnJlZnMuYWxsX3NlbGVjdG9yKSB0aGlzLnJlZnMuYWxsX3NlbGVjdG9yLnNldENoZWNrZWQoZmFsc2UpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNlbGVjdGlvbjogc2VsZWN0aW9uXG4gICAgICAgIH0sIHRoaXMucmVidWlsZExvYWRlZEVsZW1lbnRzKTtcbiAgICB9LFxuXG4gICAgc2VsZWN0QWxsOiBmdW5jdGlvbiBzZWxlY3RBbGwoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIGlmICh0aGlzLnJlZnMuYWxsX3NlbGVjdG9yICYmICF0aGlzLnJlZnMuYWxsX3NlbGVjdG9yLmlzQ2hlY2tlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2VsZWN0aW9uOiBuZXcgTWFwKCkgfSwgdGhpcy5yZWJ1aWxkTG9hZGVkRWxlbWVudHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgICAgIF90aGlzMi5wcm9wcy5ub2RlLmdldENoaWxkcmVuKCkuZm9yRWFjaCgoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmZpbHRlck5vZGVzICYmICF0aGlzLnByb3BzLmZpbHRlck5vZGVzKGNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5pc0xlYWYoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLnNldChjaGlsZCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzMikpO1xuICAgICAgICAgICAgICAgIGlmIChfdGhpczIucmVmcy5hbGxfc2VsZWN0b3IpIF90aGlzMi5yZWZzLmFsbF9zZWxlY3Rvci5zZXRDaGVja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNlbGVjdGlvbjogc2VsZWN0aW9uIH0sIF90aGlzMi5yZWJ1aWxkTG9hZGVkRWxlbWVudHMpO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBhcHBseU11bHRpcGxlQWN0aW9uOiBmdW5jdGlvbiBhcHBseU11bHRpcGxlQWN0aW9uKGV2KSB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5zZWxlY3Rpb24gfHwgIXRoaXMuc3RhdGUuc2VsZWN0aW9uLnNpemUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYWN0aW9uTmFtZSA9IGV2LmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLWFjdGlvbicpO1xuICAgICAgICB2YXIgZG0gPSB0aGlzLmRtIHx8IG5ldyBQeWRpb0RhdGFNb2RlbCgpO1xuICAgICAgICBkbS5zZXRDb250ZXh0Tm9kZSh0aGlzLnByb3BzLm5vZGUpO1xuICAgICAgICB2YXIgc2VsTm9kZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3Rpb24uZm9yRWFjaChmdW5jdGlvbiAodiwgbm9kZSkge1xuICAgICAgICAgICAgc2VsTm9kZXMucHVzaChub2RlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGRtLnNldFNlbGVjdGVkTm9kZXMoc2VsTm9kZXMpO1xuICAgICAgICB2YXIgYSA9IHRoaXMucHJvcHMucHlkaW8uQ29udHJvbGxlci5nZXRBY3Rpb25CeU5hbWUoYWN0aW9uTmFtZSk7XG4gICAgICAgIGEuZmlyZUNvbnRleHRDaGFuZ2UoZG0sIHRydWUsIHRoaXMucHJvcHMucHlkaW8udXNlcik7XG4gICAgICAgIGEuYXBwbHkoW2RtXSk7XG5cbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSxcblxuICAgIGdldEFjdGlvbnNGb3JOb2RlOiBmdW5jdGlvbiBnZXRBY3Rpb25zRm9yTm9kZShkbSwgbm9kZSkge1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMuY29tcHV0ZUFjdGlvbnNGb3JOb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNhY2hlS2V5ID0gbm9kZS5pc0xlYWYoKSA/ICdmaWxlLScgKyBub2RlLmdldEFqeHBNaW1lKCkgOiAnZm9sZGVyJztcbiAgICAgICAgdmFyIHNlbGVjdGlvblR5cGUgPSBub2RlLmlzTGVhZigpID8gJ2ZpbGUnIDogJ2Rpcic7XG4gICAgICAgIHZhciBub2RlQWN0aW9ucyA9IFtdO1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25zQ2FjaGVbY2FjaGVLZXldKSB7XG4gICAgICAgICAgICBub2RlQWN0aW9ucyA9IHRoaXMuYWN0aW9uc0NhY2hlW2NhY2hlS2V5XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRtLnNldFNlbGVjdGVkTm9kZXMoW25vZGVdKTtcbiAgICAgICAgICAgIHdpbmRvdy5weWRpby5Db250cm9sbGVyLmFjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICBhLmZpcmVDb250ZXh0Q2hhbmdlKGRtLCB0cnVlLCB3aW5kb3cucHlkaW8udXNlcik7XG4gICAgICAgICAgICAgICAgaWYgKGEuY29udGV4dC5zZWxlY3Rpb24gJiYgYS5jb250ZXh0LmFjdGlvbkJhciAmJiBhLnNlbGVjdGlvbkNvbnRleHRbc2VsZWN0aW9uVHlwZV0gJiYgIWEuZGVueSAmJiBhLm9wdGlvbnMuaWNvbl9jbGFzcyAmJiAoIXRoaXMucHJvcHMuYWN0aW9uQmFyR3JvdXBzIHx8IHRoaXMucHJvcHMuYWN0aW9uQmFyR3JvdXBzLmluZGV4T2YoYS5jb250ZXh0LmFjdGlvbkJhckdyb3VwKSAhPT0gLTEpICYmICghYS5zZWxlY3Rpb25Db250ZXh0LmFsbG93ZWRNaW1lcy5sZW5ndGggfHwgYS5zZWxlY3Rpb25Db250ZXh0LmFsbG93ZWRNaW1lcy5pbmRleE9mKG5vZGUuZ2V0QWp4cE1pbWUoKSkgIT09IC0xKSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlQWN0aW9ucy5wdXNoKGEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5pc0xlYWYoKSAmJiBhLnNlbGVjdGlvbkNvbnRleHQudW5pcXVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25zQ2FjaGUubXVsdGlwbGUuc2V0KGEub3B0aW9ucy5uYW1lLCBhKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zQ2FjaGVbY2FjaGVLZXldID0gbm9kZUFjdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vZGVBY3Rpb25zO1xuICAgIH0sXG5cbiAgICB1cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodDogZnVuY3Rpb24gdXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQoKSB7XG4gICAgICAgIHZhciByZXRyaWVzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY29udGFpbmVySGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jb250YWluZXJIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnJlZnMuaW5maW5pdGVQYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29udGFpbmVySGVpZ2h0ID0gdGhpcy5yZWZzLmluZmluaXRlUGFyZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuaGVpZ2h0QXV0b1dpdGhNYXgpIHtcbiAgICAgICAgICAgIHZhciBudW1iZXIgPSB0aGlzLmluZGV4ZWRFbGVtZW50cyA/IHRoaXMuaW5kZXhlZEVsZW1lbnRzLmxlbmd0aCA6IHRoaXMucHJvcHMubm9kZS5nZXRDaGlsZHJlbigpLnNpemU7XG4gICAgICAgICAgICB2YXIgZWxlbWVudEhlaWdodCA9IHRoaXMuc3RhdGUuZWxlbWVudEhlaWdodCA/IHRoaXMuc3RhdGUuZWxlbWVudEhlaWdodCA6IHRoaXMucHJvcHMuZWxlbWVudEhlaWdodDtcbiAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodCA9IE1hdGgubWluKG51bWJlciAqIGVsZW1lbnRIZWlnaHQsIHRoaXMucHJvcHMuaGVpZ2h0QXV0b1dpdGhNYXgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY29udGFpbmVySGVpZ2h0ICYmICFyZXRyaWVzKSB7XG4gICAgICAgICAgICBnbG9iYWwuc2V0VGltZW91dCgoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQodHJ1ZSk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpLCA1MCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbnRhaW5lckhlaWdodDogY29udGFpbmVySGVpZ2h0IH0pO1xuICAgIH0sXG5cbiAgICBjb21wdXRlRWxlbWVudEhlaWdodFJlc3BvbnNpdmU6IGZ1bmN0aW9uIGNvbXB1dGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZSgpIHtcbiAgICAgICAgdmFyIGJyZWFrcyA9IHRoaXMucHJvcHMuZWxlbWVudEhlaWdodDtcbiAgICAgICAgaWYgKCEoYnJlYWtzIGluc3RhbmNlb2YgT2JqZWN0KSkge1xuICAgICAgICAgICAgYnJlYWtzID0ge1xuICAgICAgICAgICAgICAgIFwibWluLXdpZHRoOjQ4MHB4XCI6IHRoaXMucHJvcHMuZWxlbWVudEhlaWdodCxcbiAgICAgICAgICAgICAgICBcIm1heC13aWR0aDo0ODBweFwiOiBPYmplY3Qua2V5cyh0aGlzLnByb3BzLnRhYmxlS2V5cykubGVuZ3RoICogMjQgKyAzM1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gYnJlYWtzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGJyZWFrcy5oYXNPd25Qcm9wZXJ0eShrKSAmJiB3aW5kb3cubWF0Y2hNZWRpYSgnKCcgKyBrICsgJyknKS5tYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBicmVha3Nba107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHdpZHRoID0gRE9NVXRpbHMuZ2V0Vmlld3BvcnRXaWR0aCgpO1xuICAgICAgICAgICAgaWYgKHdpZHRoIDwgNDgwKSByZXR1cm4gYnJlYWtzW1wibWF4LXdpZHRoOjQ4MHB4XCJdO2Vsc2UgcmV0dXJuIGJyZWFrc1tcIm1heC13aWR0aDo0ODBweFwiXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gNTA7XG4gICAgfSxcblxuICAgIHVwZGF0ZUVsZW1lbnRIZWlnaHRSZXNwb25zaXZlOiBmdW5jdGlvbiB1cGRhdGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZSgpIHtcbiAgICAgICAgdmFyIG5ld0ggPSB0aGlzLmNvbXB1dGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZSgpO1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGUgfHwgIXRoaXMuc3RhdGUuZWxlbWVudEhlaWdodCB8fCB0aGlzLnN0YXRlLmVsZW1lbnRIZWlnaHQgIT0gbmV3SCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVsZW1lbnRIZWlnaHQ6IG5ld0ggfSwgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5oZWlnaHRBdXRvV2l0aE1heCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUluZmluaXRlQ29udGFpbmVySGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgcGF0Y2hJbmZpbml0ZUdyaWQ6IGZ1bmN0aW9uIHBhdGNoSW5maW5pdGVHcmlkKGVscykge1xuICAgICAgICBpZiAodGhpcy5yZWZzLmluZmluaXRlICYmIGVscyA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcy5pbmZpbml0ZS5zdGF0ZS5pbmZpbml0ZUNvbXB1dGVyLl9fcHJvdG9fXy5nZXREaXNwbGF5SW5kZXhTdGFydCA9IGZ1bmN0aW9uICh3aW5kb3dUb3ApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxzICogTWF0aC5mbG9vcih3aW5kb3dUb3AgLyB0aGlzLmhlaWdodERhdGEgLyBlbHMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMucmVmcy5pbmZpbml0ZS5zdGF0ZS5pbmZpbml0ZUNvbXB1dGVyLl9fcHJvdG9fXy5nZXREaXNwbGF5SW5kZXhFbmQgPSBmdW5jdGlvbiAod2luZG93Qm90dG9tKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVscyAqIE1hdGguY2VpbCh3aW5kb3dCb3R0b20gLyB0aGlzLmhlaWdodERhdGEgLyBlbHMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRlbGF5SW5pdGlhbExvYWQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzMy5fbG9hZE5vZGVJZk5vdExvYWRlZCgpO1xuICAgICAgICAgICAgfSwgdGhpcy5wcm9wcy5kZWxheUluaXRpYWxMb2FkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWROb2RlSWZOb3RMb2FkZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdGNoSW5maW5pdGVHcmlkKHRoaXMucHJvcHMuZWxlbWVudHNQZXJMaW5lKTtcbiAgICAgICAgaWYgKHRoaXMucmVmcy5pbmZpbml0ZVBhcmVudCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnByb3BzLmhlaWdodEF1dG9XaXRoTWF4ICYmICF0aGlzLnByb3BzLmV4dGVybmFsUmVzaXplKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZUluZmluaXRlQ29udGFpbmVySGVpZ2h0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYXR0YWNoRXZlbnQoJ29ucmVzaXplJywgdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmF1dG9SZWZyZXNoKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hJbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh0aGlzLnJlbG9hZCwgdGhpcy5wcm9wcy5hdXRvUmVmcmVzaCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub2JzZXJ2ZU5vZGVSZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMud2lyZVJlbG9hZExpc3RlbmVycygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQgaW5zdGFuY2VvZiBPYmplY3QgfHwgdGhpcy5wcm9wcy50YWJsZUtleXMpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZUVsZW1lbnRIZWlnaHRSZXNwb25zaXZlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmF0dGFjaEV2ZW50KCdvbnJlc2l6ZScsIHRoaXMudXBkYXRlRWxlbWVudEhlaWdodFJlc3BvbnNpdmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLm9ic2VydmUoJ3Jvb3Rfbm9kZV9jaGFuZ2VkJywgZnVuY3Rpb24gKHJvb3ROb2RlKSB7XG4gICAgICAgICAgICBfdGhpczMucm9vdE5vZGVDaGFuZ2VkRmxhZyA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5vYnNlcnZlKCdzZWxlY3Rpb25fY2hhbmdlZCcsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTW91bnRlZCgpKSByZXR1cm47XG4gICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgdmFyIHNlbGVjdGVkTm9kZXMgPSB0aGlzLnByb3BzLmRhdGFNb2RlbC5nZXRTZWxlY3RlZE5vZGVzKCk7XG4gICAgICAgICAgICBzZWxlY3RlZE5vZGVzLm1hcChmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5zZXQobiwgdHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzZWxlY3Rpb246IHNlbGVjdGlvbiB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM0LnJlYnVpbGRMb2FkZWRFbGVtZW50cygpO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZE5vZGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczQuc2Nyb2xsVG9WaWV3KHNlbGVjdGVkTm9kZXNbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMuaGVpZ2h0QXV0b1dpdGhNYXgpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZUluZmluaXRlQ29udGFpbmVySGVpZ2h0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmRldGFjaEV2ZW50KCdvbnJlc2l6ZScsIHRoaXMudXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQgaW5zdGFuY2VvZiBPYmplY3QgfHwgdGhpcy5wcm9wcy50YWJsZUtleXMpIHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZUVsZW1lbnRIZWlnaHRSZXNwb25zaXZlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmRldGFjaEV2ZW50KCdyZXNpemUnLCB0aGlzLnVwZGF0ZUVsZW1lbnRIZWlnaHRSZXNwb25zaXZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMucmVmcmVzaEludGVydmFsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vYnNlcnZlTm9kZVJlbG9hZCkge1xuICAgICAgICAgICAgdGhpcy5zdG9wUmVsb2FkTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlTm9kZUNoaWxkcmVuKHRoaXMucHJvcHMubm9kZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJvb3ROb2RlQ2hhbmdlZEZsYWcgJiYgcHJldlByb3BzLm5vZGUgJiYgdGhpcy5wcm9wcy5ub2RlICYmIHByZXZQcm9wcy5ub2RlLmdldFBhdGgoKSA9PT0gdGhpcy5wcm9wcy5ub2RlLmdldFBhdGgoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xvYWROb2RlSWZOb3RMb2FkZWQoKTtcbiAgICAgICAgdGhpcy5yb290Tm9kZUNoYW5nZWRGbGFnID0gZmFsc2U7XG4gICAgfSxcblxuICAgIG9uU2Nyb2xsOiBmdW5jdGlvbiBvblNjcm9sbChzY3JvbGxUb3ApIHtcblxuICAgICAgICBpZiAoIXRoaXMucHJvcHMucGFzc1Njcm9sbGluZ1N0YXRlVG9DaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1haW50YWlucyBhIHNlcmllcyBvZiB0aW1lb3V0cyB0byBzZXQgdGhpcy5zdGF0ZS5pc1Njcm9sbGluZ1xuICAgICAgICAvLyB0byBiZSB0cnVlIHdoZW4gdGhlIGVsZW1lbnQgaXMgc2Nyb2xsaW5nLlxuXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNjcm9sbFRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnN0YXRlLnNjcm9sbFRpbWVvdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHRoYXQgPSB0aGlzLFxuICAgICAgICAgICAgc2Nyb2xsVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhhdC5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgaXNTY3JvbGxpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNjcm9sbFRpbWVvdXQ6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIDE1MCk7XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBpc1Njcm9sbGluZzogdHJ1ZSxcbiAgICAgICAgICAgIHNjcm9sbFRpbWVvdXQ6IHNjcm9sbFRpbWVvdXRcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIHNjcm9sbFRvTGFzdDogZnVuY3Rpb24gc2Nyb2xsVG9MYXN0KCkge1xuICAgICAgICBpZiAodGhpcy5pbmRleGVkRWxlbWVudHMgJiYgdGhpcy5pbmRleGVkRWxlbWVudHNbdGhpcy5pbmRleGVkRWxlbWVudHMubGVuZ3RoIC0gMV0ubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb1ZpZXcodGhpcy5pbmRleGVkRWxlbWVudHNbdGhpcy5pbmRleGVkRWxlbWVudHMubGVuZ3RoIC0gMV0ubm9kZSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgc2Nyb2xsVG9WaWV3OiBmdW5jdGlvbiBzY3JvbGxUb1ZpZXcobm9kZSkge1xuICAgICAgICB2YXIgX3RoaXM1ID0gdGhpcztcblxuICAgICAgICBpZiAoIXRoaXMuaW5kZXhlZEVsZW1lbnRzIHx8ICF0aGlzLnJlZnMuaW5maW5pdGUgfHwgIXRoaXMucmVmcy5pbmZpbml0ZS5zY3JvbGxhYmxlKSByZXR1cm47XG4gICAgICAgIHZhciBzY3JvbGxhYmxlID0gdGhpcy5yZWZzLmluZmluaXRlLnNjcm9sbGFibGU7XG4gICAgICAgIHZhciB2aXNpYmxlRnJhbWUgPSB7XG4gICAgICAgICAgICB0b3A6IHNjcm9sbGFibGUuc2Nyb2xsVG9wICsgdGhpcy5wcm9wcy5lbGVtZW50SGVpZ2h0IC8gMixcbiAgICAgICAgICAgIGJvdHRvbTogc2Nyb2xsYWJsZS5zY3JvbGxUb3AgKyB0aGlzLnN0YXRlLmNvbnRhaW5lckhlaWdodCAtIHRoaXMucHJvcHMuZWxlbWVudEhlaWdodCAvIDJcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHJlYWxNYXhTY3JvbGxUb3AgPSB0aGlzLmluZGV4ZWRFbGVtZW50cy5sZW5ndGggKiB0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQgLSB0aGlzLnN0YXRlLmNvbnRhaW5lckhlaWdodDtcblxuICAgICAgICB2YXIgcG9zaXRpb24gPSAtMTtcbiAgICAgICAgdGhpcy5pbmRleGVkRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoZSwgaykge1xuICAgICAgICAgICAgaWYgKGUubm9kZSAmJiBlLm5vZGUgPT09IG5vZGUpIHBvc2l0aW9uID0gaztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gLTEpIHJldHVybjtcbiAgICAgICAgdmFyIGVsZW1lbnRIZWlnaHQgPSB0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQ7XG4gICAgICAgIHZhciBzY3JvbGxUYXJnZXQgPSBwb3NpdGlvbiAqIGVsZW1lbnRIZWlnaHQ7XG5cbiAgICAgICAgaWYgKHNjcm9sbFRhcmdldCA+IHZpc2libGVGcmFtZS50b3AgJiYgc2Nyb2xsVGFyZ2V0IDwgdmlzaWJsZUZyYW1lLmJvdHRvbSkge1xuICAgICAgICAgICAgLy8gYWxyZWFkeSB2aXNpYmxlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHNjcm9sbFRhcmdldCA+PSB2aXNpYmxlRnJhbWUuYm90dG9tKSB7XG4gICAgICAgICAgICBzY3JvbGxUYXJnZXQgLT0gdGhpcy5zdGF0ZS5jb250YWluZXJIZWlnaHQgLSBlbGVtZW50SGVpZ2h0ICogMjtcbiAgICAgICAgfVxuICAgICAgICBzY3JvbGxUYXJnZXQgPSBNYXRoLm1pbihzY3JvbGxUYXJnZXQsIHJlYWxNYXhTY3JvbGxUb3ApO1xuICAgICAgICBzY3JvbGxhYmxlLnNjcm9sbFRvcCA9IHNjcm9sbFRhcmdldDtcbiAgICAgICAgaWYgKHRoaXMuX21hbnVhbFNjcm9sbFBlKSB0aGlzLl9tYW51YWxTY3JvbGxQZS5zdG9wKCk7XG4gICAgICAgIGlmIChzY3JvbGxhYmxlLnNjcm9sbEhlaWdodCA8IHNjcm9sbFRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5fbWFudWFsU2Nyb2xsUGUgPSBuZXcgUGVyaW9kaWNhbEV4ZWN1dGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxhYmxlLnNjcm9sbFRvcCA9IHNjcm9sbFRhcmdldDtcbiAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZS5zY3JvbGxIZWlnaHQgPj0gc2Nyb2xsVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzNS5fbWFudWFsU2Nyb2xsUGUuc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczUuX21hbnVhbFNjcm9sbFBlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAuMjUpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGJ1aWxkRWxlbWVudHNGcm9tTm9kZUVudHJpZXM6IGZ1bmN0aW9uIGJ1aWxkRWxlbWVudHNGcm9tTm9kZUVudHJpZXMobm9kZUVudHJpZXMsIHNob3dTZWxlY3Rvcikge1xuXG4gICAgICAgIHZhciBjb21wb25lbnRzID0gW10sXG4gICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIHZhciBub2RlRW50cmllc0xlbmd0aCA9IG5vZGVFbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgbm9kZUVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChlbnRyeS5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBub2RlOiBlbnRyeS5ub2RlLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IGVudHJ5Lm5vZGUuZ2V0UGF0aCgpLFxuICAgICAgICAgICAgICAgICAgICBpZDogZW50cnkubm9kZS5nZXRQYXRoKCksXG4gICAgICAgICAgICAgICAgICAgIG1haW5JY29uOiBTaW1wbGVMaXN0LlBBUkVOVF9GT0xERVJfSUNPTixcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lOiBcIi4uXCIsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJsaXN0LXBhcmVudC1ub2RlXCIsXG4gICAgICAgICAgICAgICAgICAgIHNlY29uZExpbmU6IHRoaXMuY29udGV4dC5nZXRNZXNzYWdlKCdyZWFjdC4xJyksXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuY2xpY2tSb3csXG4gICAgICAgICAgICAgICAgICAgIG9uRG91YmxlQ2xpY2s6IHRoaXMuZG91YmxlQ2xpY2tSb3csXG4gICAgICAgICAgICAgICAgICAgIHNob3dTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yRGlzYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG5vSG92ZXI6IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5lbnRyeVJlbmRlclBhcmVudEljb24gJiYgIXRoaXMucHJvcHMudGFibGVLZXlzKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbJ2ljb25DZWxsJ10gPSB0aGlzLnByb3BzLmVudHJ5UmVuZGVyUGFyZW50SWNvbihlbnRyeS5ub2RlLCBlbnRyeSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVsnbWFpbkljb24nXSA9IFNpbXBsZUxpc3QuUEFSRU5UX0ZPTERFUl9JQ09OO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5lbGVtZW50U3R5bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVsnc3R5bGUnXSA9IHRoaXMucHJvcHMuZWxlbWVudFN0eWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5wYXNzU2Nyb2xsaW5nU3RhdGVUb0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbJ3BhcmVudElzU2Nyb2xsaW5nJ10gPSB0aGlzLnN0YXRlLmlzU2Nyb2xsaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChfTGlzdEVudHJ5Lkxpc3RFbnRyeSwgZGF0YSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeS5ncm91cEhlYWRlcikge1xuICAgICAgICAgICAgICAgIHZhciBpZCA9IGVudHJ5Lmdyb3VwSGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmUgPSBlbnRyeS5ncm91cEhlYWRlckxhYmVsO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmVudHJ5UmVuZGVyR3JvdXBIZWFkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lID0gdGhpcy5wcm9wcy5lbnRyeVJlbmRlckdyb3VwSGVhZGVyKGlkLCBmaXJzdExpbmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBub2RlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IGVudHJ5Lmdyb3VwSGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgICAgICAgICAgIG1haW5JY29uOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmU6IGZpcnN0TGluZSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbGlzdC1ncm91cC1oZWFkZXInLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBzaG93U2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvckRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBub0hvdmVyOiB0cnVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5wYXNzU2Nyb2xsaW5nU3RhdGVUb0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbJ3BhcmVudElzU2Nyb2xsaW5nJ10gPSB0aGlzLnN0YXRlLmlzU2Nyb2xsaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChfTGlzdEVudHJ5Lkxpc3RFbnRyeSwgZGF0YSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBub2RlOiBlbnRyeS5ub2RlLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLmNsaWNrUm93LFxuICAgICAgICAgICAgICAgICAgICBvbkRvdWJsZUNsaWNrOiB0aGlzLmRvdWJsZUNsaWNrUm93LFxuICAgICAgICAgICAgICAgICAgICBvblNlbGVjdDogdGhpcy50b2dnbGVTZWxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGtleTogZW50cnkubm9kZS5nZXRQYXRoKCksXG4gICAgICAgICAgICAgICAgICAgIGlkOiBlbnRyeS5ub2RlLmdldFBhdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVySWNvbjogdGhpcy5wcm9wcy5lbnRyeVJlbmRlckljb24sXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckZpcnN0TGluZTogdGhpcy5wcm9wcy5lbnRyeVJlbmRlckZpcnN0TGluZSxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyU2Vjb25kTGluZTogdGhpcy5wcm9wcy5lbnRyeVJlbmRlclNlY29uZExpbmUsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlclRoaXJkTGluZTogdGhpcy5wcm9wcy5lbnRyeVJlbmRlclRoaXJkTGluZSxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyQWN0aW9uczogdGhpcy5wcm9wcy5lbnRyeVJlbmRlckFjdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIHNob3dTZWxlY3Rvcjogc2hvd1NlbGVjdG9yLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnNlbGVjdGlvbiA/IHRoaXMuc3RhdGUuc2VsZWN0aW9uLmdldChlbnRyeS5ub2RlKSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiBSZWFjdC5jcmVhdGVFbGVtZW50KF92aWV3c1NpbXBsZVJlYWN0QWN0aW9uQmFyMlsnZGVmYXVsdCddLCB7IG5vZGU6IGVudHJ5Lm5vZGUsIGFjdGlvbnM6IGVudHJ5LmFjdGlvbnMsIGRhdGFNb2RlbDogdGhpcy5kbSB9KSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3JEaXNhYmxlZDogISh0aGlzLnByb3BzLmVudHJ5RW5hYmxlU2VsZWN0b3IgPyB0aGlzLnByb3BzLmVudHJ5RW5hYmxlU2VsZWN0b3IoZW50cnkubm9kZSkgOiBlbnRyeS5ub2RlLmlzTGVhZigpKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZGF0YVsnaXNGaXJzdCddID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICAgICAgZGF0YVsnaXNMYXN0J10gPSBpbmRleCA9PT0gbm9kZUVudHJpZXNMZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuZWxlbWVudFN0eWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbJ3N0eWxlJ10gPSB0aGlzLnByb3BzLmVsZW1lbnRTdHlsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMucGFzc1Njcm9sbGluZ1N0YXRlVG9DaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBkYXRhWydwYXJlbnRJc1Njcm9sbGluZyddID0gdGhpcy5zdGF0ZS5pc1Njcm9sbGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMucmVuZGVyQ3VzdG9tRW50cnkpIHtcblxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2godGhpcy5wcm9wcy5yZW5kZXJDdXN0b21FbnRyeShkYXRhKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnRhYmxlS2V5cykge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmRlZmF1bHRHcm91cEJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyd0YWJsZUtleXMnXSA9IExhbmdVdGlscy5kZWVwQ29weSh0aGlzLnByb3BzLnRhYmxlS2V5cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZGF0YVsndGFibGVLZXlzJ11bdGhpcy5wcm9wcy5kZWZhdWx0R3JvdXBCeV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyd0YWJsZUtleXMnXSA9IHRoaXMucHJvcHMudGFibGVLZXlzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KF9UYWJsZUxpc3RFbnRyeTJbJ2RlZmF1bHQnXSwgZGF0YSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoX0NvbmZpZ3VyYWJsZUxpc3RFbnRyeTJbJ2RlZmF1bHQnXSwgZGF0YSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudHM7XG4gICAgfSxcblxuICAgIGJ1aWxkRWxlbWVudHM6IGZ1bmN0aW9uIGJ1aWxkRWxlbWVudHMoc3RhcnQsIGVuZCwgbm9kZSwgc2hvd1NlbGVjdG9yKSB7XG4gICAgICAgIHZhciBfdGhpczYgPSB0aGlzO1xuXG4gICAgICAgIHZhciB0aGVOb2RlID0gdGhpcy5wcm9wcy5ub2RlO1xuICAgICAgICBpZiAobm9kZSkgdGhlTm9kZSA9IG5vZGU7XG4gICAgICAgIHZhciB0aGVTaG93U2VsZWN0b3IgPSB0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuc2hvd1NlbGVjdG9yO1xuICAgICAgICBpZiAoc2hvd1NlbGVjdG9yICE9PSB1bmRlZmluZWQpIHRoZVNob3dTZWxlY3RvciA9IHNob3dTZWxlY3RvcjtcblxuICAgICAgICBpZiAoIXRoaXMuaW5kZXhlZEVsZW1lbnRzIHx8IHRoaXMuaW5kZXhlZEVsZW1lbnRzLmxlbmd0aCAhPT0gdGhlTm9kZS5nZXRDaGlsZHJlbigpLnNpemUpIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM2LmluZGV4ZWRFbGVtZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIHZhciBncm91cEJ5ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBncm91cEJ5TGFiZWwgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBLZXlzID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBncm91cExhYmVscyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBpZiAoX3RoaXM2LnByb3BzLmRlZmF1bHRHcm91cEJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwQnkgPSBfdGhpczYucHJvcHMuZGVmYXVsdEdyb3VwQnk7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwQnlMYWJlbCA9IF90aGlzNi5wcm9wcy5ncm91cEJ5TGFiZWwgfHwgZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwcyA9IHt9LCBncm91cEtleXMgPSBbXSwgZ3JvdXBMYWJlbHMgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIV90aGlzNi5wcm9wcy5za2lwUGFyZW50TmF2aWdhdGlvbiAmJiB0aGVOb2RlLmdldFBhcmVudCgpICYmIChfdGhpczYucHJvcHMuZGF0YU1vZGVsLmdldENvbnRleHROb2RlKCkgIT09IHRoZU5vZGUgfHwgX3RoaXM2LnByb3BzLnNraXBJbnRlcm5hbERhdGFNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM2LmluZGV4ZWRFbGVtZW50cy5wdXNoKHsgbm9kZTogdGhlTm9kZS5nZXRQYXJlbnQoKSwgcGFyZW50OiB0cnVlLCBhY3Rpb25zOiBudWxsIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoZU5vZGUuZ2V0Q2hpbGRyZW4oKS5mb3JFYWNoKChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLmdldE1ldGFkYXRhKCkuaGFzKCdjdXJzb3InKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNoaWxkQ3Vyc29yID0gcGFyc2VJbnQoY2hpbGQuZ2V0TWV0YWRhdGEoKS5nZXQoJ2N1cnNvcicpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRDdXJzb3IgPSBNYXRoLm1heCh0aGlzLl9jdXJyZW50Q3Vyc29yID8gdGhpcy5fY3VycmVudEN1cnNvciA6IDAsIGNoaWxkQ3Vyc29yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5maWx0ZXJOb2RlcyAmJiAhdGhpcy5wcm9wcy5maWx0ZXJOb2RlcyhjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgbm9kZUFjdGlvbnMgPSB0aGlzLmdldEFjdGlvbnNGb3JOb2RlKHRoaXMuZG0sIGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwQnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncm91cFZhbHVlID0gY2hpbGQuZ2V0TWV0YWRhdGEoKS5nZXQoZ3JvdXBCeSkgfHwgJ04vQSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdyb3Vwc1tncm91cFZhbHVlXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3Vwc1tncm91cFZhbHVlXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwS2V5cy5wdXNoKGdyb3VwVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwQnlMYWJlbCAmJiBjaGlsZC5nZXRNZXRhZGF0YSgpLmhhcyhncm91cEJ5TGFiZWwpICYmICFncm91cExhYmVsc1tncm91cFZhbHVlXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwTGFiZWxzW2dyb3VwVmFsdWVdID0gY2hpbGQuZ2V0TWV0YWRhdGEoKS5nZXQoZ3JvdXBCeUxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3Vwc1tncm91cFZhbHVlXS5wdXNoKHsgbm9kZTogY2hpbGQsIHBhcmVudDogZmFsc2UsIGFjdGlvbnM6IG5vZGVBY3Rpb25zIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRleGVkRWxlbWVudHMucHVzaCh7IG5vZGU6IGNoaWxkLCBwYXJlbnQ6IGZhbHNlLCBhY3Rpb25zOiBub2RlQWN0aW9ucyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLmJpbmQoX3RoaXM2KSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZ3JvdXBCeSkge1xuICAgICAgICAgICAgICAgICAgICBncm91cEtleXMgPSBncm91cEtleXMuc29ydCgpO1xuICAgICAgICAgICAgICAgICAgICBncm91cEtleXMubWFwKChmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxhYmVsID0gaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cExhYmVsc1trXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gZ3JvdXBMYWJlbHNba107XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMucmVuZGVyR3JvdXBMYWJlbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHRoaXMucHJvcHMucmVuZGVyR3JvdXBMYWJlbHMoZ3JvdXBCeSwgayk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluZGV4ZWRFbGVtZW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwSGVhZGVyOiBrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwSGVhZGVyTGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluZGV4ZWRFbGVtZW50cyA9IHRoaXMuaW5kZXhlZEVsZW1lbnRzLmNvbmNhdChncm91cHNba10pO1xuICAgICAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzNikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnNvcnRpbmdJbmZvICYmICF0aGlzLnJlbW90ZVNvcnRpbmdJbmZvKCkpIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9zdGF0ZSRzb3J0aW5nSW5mbzIgPSBfdGhpczYuc3RhdGUuc29ydGluZ0luZm87XG4gICAgICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZSA9IF9zdGF0ZSRzb3J0aW5nSW5mbzIuYXR0cmlidXRlO1xuICAgICAgICAgICAgICAgIHZhciBkaXJlY3Rpb24gPSBfc3RhdGUkc29ydGluZ0luZm8yLmRpcmVjdGlvbjtcbiAgICAgICAgICAgICAgICB2YXIgc29ydFR5cGUgPSBfc3RhdGUkc29ydGluZ0luZm8yLnNvcnRUeXBlO1xuXG4gICAgICAgICAgICAgICAgdmFyIHNvcnRGdW5jdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBpZiAoc29ydFR5cGUgPT09ICdmaWxlLW5hdHVyYWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNvcnRGdW5jdGlvbiA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYS5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYi5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBub2RlQSA9IGEubm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBub2RlQiA9IGIubm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlY3ljbGUgYWx3YXlzIGxhc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlQS5pc1JlY3ljbGUoKSkgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZUIuaXNSZWN5Y2xlKCkpIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvbGRlcnMgZmlyc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhTGVhZiA9IG5vZGVBLmlzTGVhZigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJMZWFmID0gbm9kZUIuaXNMZWFmKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0gYUxlYWYgJiYgIWJMZWFmID8gMSA6ICFhTGVhZiAmJiBiTGVhZiA/IC0xIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT09IDApIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBub2RlQS5nZXRMYWJlbCgpLmxvY2FsZUNvbXBhcmUobm9kZUIuZ2V0TGFiZWwoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNvcnRGdW5jdGlvbiA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYS5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYU1ldGEgPSBhLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoYXR0cmlidXRlKSB8fCBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJNZXRhID0gYi5ub2RlLmdldE1ldGFkYXRhKCkuZ2V0KGF0dHJpYnV0ZSkgfHwgXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc29ydFR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYU1ldGEgPSBwYXJzZUZsb2F0KGFNZXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiTWV0YSA9IHBhcnNlRmxvYXQoYk1ldGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGRpcmVjdGlvbiA9PT0gJ2FzYycgPyBhTWV0YSAtIGJNZXRhIDogYk1ldGEgLSBhTWV0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc29ydFR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gZGlyZWN0aW9uID09PSAnYXNjJyA/IGFNZXRhLmxvY2FsZUNvbXBhcmUoYk1ldGEpIDogYk1ldGEubG9jYWxlQ29tcGFyZShhTWV0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzb3J0IGJ5IGxhYmVsIHRvIG1ha2UgaXQgc3RhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxhYkNvbXAgPSBhLm5vZGUuZ2V0TGFiZWwoKS5sb2NhbGVDb21wYXJlKGIubm9kZS5nZXRMYWJlbCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBkaXJlY3Rpb24gPT09ICdhc2MnID8gbGFiQ29tcCA6IC1sYWJDb21wO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX3RoaXM2LmluZGV4ZWRFbGVtZW50cy5zb3J0KHNvcnRGdW5jdGlvbik7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZWxlbWVudFBlckxpbmUgPiAxKSB7XG4gICAgICAgICAgICBlbmQgPSBlbmQgKiB0aGlzLnByb3BzLmVsZW1lbnRQZXJMaW5lO1xuICAgICAgICAgICAgc3RhcnQgPSBzdGFydCAqIHRoaXMucHJvcHMuZWxlbWVudFBlckxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXhlZEVsZW1lbnRzLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIH0sXG5cbiAgICByZWJ1aWxkTG9hZGVkRWxlbWVudHM6IGZ1bmN0aW9uIHJlYnVpbGRMb2FkZWRFbGVtZW50cygpIHtcbiAgICAgICAgdmFyIG5ld0VsZW1lbnRzID0gdGhpcy5idWlsZEVsZW1lbnRzKDAsIE1hdGgubWF4KHRoaXMuc3RhdGUuZWxlbWVudHMubGVuZ3RoLCB0aGlzLnByb3BzLmluZmluaXRlU2xpY2VDb3VudCkpO1xuICAgICAgICB2YXIgaW5maW5pdGVMb2FkQmVnaW5Cb3R0b21PZmZzZXQgPSBuZXdFbGVtZW50cy5sZW5ndGggPyAyMDAgOiAwO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGVsZW1lbnRzOiBuZXdFbGVtZW50cyxcbiAgICAgICAgICAgIGluZmluaXRlTG9hZEJlZ2luQm90dG9tT2Zmc2V0OiBpbmZpbml0ZUxvYWRCZWdpbkJvdHRvbU9mZnNldFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCgpO1xuICAgIH0sXG5cbiAgICBoYW5kbGVJbmZpbml0ZUxvYWQ6IGZ1bmN0aW9uIGhhbmRsZUluZmluaXRlTG9hZCgpIHtcbiAgICAgICAgdmFyIGVsZW1MZW5ndGggPSB0aGlzLnN0YXRlLmVsZW1lbnRzLmxlbmd0aDtcbiAgICAgICAgdmFyIG5ld0VsZW1lbnRzID0gdGhpcy5idWlsZEVsZW1lbnRzKGVsZW1MZW5ndGgsIGVsZW1MZW5ndGggKyB0aGlzLnByb3BzLmluZmluaXRlU2xpY2VDb3VudCk7XG4gICAgICAgIHZhciBpbmZpbml0ZUxvYWRCZWdpbkJvdHRvbU9mZnNldCA9IG5ld0VsZW1lbnRzLmxlbmd0aCA/IDIwMCA6IDA7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgaXNJbmZpbml0ZUxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgZWxlbWVudHM6IHRoaXMuc3RhdGUuZWxlbWVudHMuY29uY2F0KG5ld0VsZW1lbnRzKSxcbiAgICAgICAgICAgIGluZmluaXRlTG9hZEJlZ2luQm90dG9tT2Zmc2V0OiBpbmZpbml0ZUxvYWRCZWdpbkJvdHRvbU9mZnNldFxuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogRXh0cmFjdCByZW1vdGUgc29ydGluZyBpbmZvIGZyb20gY3VycmVudCBub2RlIG1ldGFkYXRhXG4gICAgICovXG4gICAgcmVtb3RlU29ydGluZ0luZm86IGZ1bmN0aW9uIHJlbW90ZVNvcnRpbmdJbmZvKCkge1xuICAgICAgICB2YXIgbWV0YSA9IHRoaXMucHJvcHMubm9kZS5nZXRNZXRhZGF0YSgpLmdldCgncGFnaW5hdGlvbkRhdGEnKTtcbiAgICAgICAgaWYgKG1ldGEgJiYgbWV0YS5nZXQoJ3RvdGFsJykgPiAxICYmIG1ldGEuaGFzKCdyZW1vdGVfb3JkZXInKSkge1xuICAgICAgICAgICAgdmFyIGNvbCA9IG1ldGEuZ2V0KCdjdXJyZW50T3JkZXJDb2wnKTtcbiAgICAgICAgICAgIHZhciBkaXIgPSBtZXRhLmdldCgnY3VycmVudE9yZGVyRGlyJyk7XG4gICAgICAgICAgICBpZiAoY29sICYmIGRpcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW90ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlOiBjb2wsXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogZGlyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuXG4gICAgcmVuZGVyVG9vbGJhcjogZnVuY3Rpb24gcmVuZGVyVG9vbGJhcigpIHtcbiAgICAgICAgdmFyIF90aGlzNyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGhpZGRlbk1vZGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgICBpZiAoaGlkZGVuTW9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuc29ydEtleXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgc29ydGluZ0luZm8gPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHJlbW90ZVNvcnRpbmdJbmZvID0gdGhpcy5yZW1vdGVTb3J0aW5nSW5mbygpO1xuICAgICAgICAgICAgICAgIGlmIChyZW1vdGVTb3J0aW5nSW5mbykge1xuICAgICAgICAgICAgICAgICAgICBzb3J0aW5nSW5mbyA9IHJlbW90ZVNvcnRpbmdJbmZvO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNvcnRpbmdJbmZvID0gdGhpcy5zdGF0ZSA/IHRoaXMuc3RhdGUuc29ydGluZ0luZm8gOiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChfU29ydENvbHVtbnMyWydkZWZhdWx0J10sIHsgZGlzcGxheU1vZGU6ICdoaWRkZW4nLCB0YWJsZUtleXM6IHRoaXMucHJvcHMuc29ydEtleXMsIGNvbHVtbkNsaWNrZWQ6IHRoaXMub25Db2x1bW5Tb3J0LCBzb3J0aW5nSW5mbzogc29ydGluZ0luZm8gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciByaWdodEJ1dHRvbnMgPSBbUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5Gb250SWNvbiwge1xuICAgICAgICAgICAga2V5OiAxLFxuICAgICAgICAgICAgdG9vbHRpcDogJ1JlbG9hZCcsXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwibWRpIG1kaS1yZWxvYWRcIiArICh0aGlzLnN0YXRlLmxvYWRpbmcgPyBcIiByb3RhdGluZ1wiIDogXCJcIiksXG4gICAgICAgICAgICBvbkNsaWNrOiB0aGlzLnJlbG9hZFxuICAgICAgICB9KV07XG4gICAgICAgIHZhciBpID0gMjtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc29ydEtleXMpIHtcblxuICAgICAgICAgICAgdmFyIHNvcnRpbmdJbmZvID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJlbW90ZVNvcnRpbmdJbmZvID0gdGhpcy5yZW1vdGVTb3J0aW5nSW5mbygpO1xuICAgICAgICAgICAgaWYgKHJlbW90ZVNvcnRpbmdJbmZvKSB7XG4gICAgICAgICAgICAgICAgc29ydGluZ0luZm8gPSByZW1vdGVTb3J0aW5nSW5mbztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc29ydGluZ0luZm8gPSB0aGlzLnN0YXRlID8gdGhpcy5zdGF0ZS5zb3J0aW5nSW5mbyA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByaWdodEJ1dHRvbnMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KF9Tb3J0Q29sdW1uczJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgIGtleTogaSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TW9kZTogJ21lbnUnLFxuICAgICAgICAgICAgICAgIHRhYmxlS2V5czogdGhpcy5wcm9wcy5zb3J0S2V5cyxcbiAgICAgICAgICAgICAgICBjb2x1bW5DbGlja2VkOiB0aGlzLm9uQ29sdW1uU29ydCxcbiAgICAgICAgICAgICAgICBzb3J0aW5nSW5mbzogc29ydGluZ0luZm9cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5hZGRpdGlvbmFsQWN0aW9ucykge1xuICAgICAgICAgICAgcmlnaHRCdXR0b25zLnB1c2godGhpcy5wcm9wcy5hZGRpdGlvbmFsQWN0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbGVmdFRvb2xiYXIgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYWdpbmF0b3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKSAmJiB0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKS5nZXQoJ3RvdGFsJykgPiAxKSB7XG4gICAgICAgICAgICBwYWdpbmF0b3IgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9MaXN0UGFnaW5hdG9yMlsnZGVmYXVsdCddLCB7IGRhdGFNb2RlbDogdGhpcy5kbSwgbm9kZTogdGhpcy5wcm9wcy5ub2RlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMubGlzdFRpdGxlKSB7XG4gICAgICAgICAgICBsZWZ0VG9vbGJhciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVG9vbGJhckdyb3VwLFxuICAgICAgICAgICAgICAgIHsga2V5OiAwLCBmbG9hdDogJ2xlZnQnIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnbGlzdC10aXRsZScgfSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5saXN0VGl0bGVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc2VhcmNoUmVzdWx0RGF0YSkge1xuXG4gICAgICAgICAgICBsZWZ0VG9vbGJhciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVG9vbGJhckdyb3VwLFxuICAgICAgICAgICAgICAgIHsga2V5OiAwLCBmbG9hdDogJ2xlZnQnIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZm9udFNpemU6IDE1LCBmb250V2VpZ2h0OiA1MDAsIGNvbG9yOiAnIzllOWU5ZScgfSB9LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0TWVzc2FnZSgncmVhY3QuMycpLnJlcGxhY2UoJyVzJywgdGhpcy5wcm9wcy5zZWFyY2hSZXN1bHREYXRhLnRlcm0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJpZ2h0QnV0dG9ucyA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuUmFpc2VkQnV0dG9uLCB7IGtleTogMSwgbGFiZWw6IHRoaXMuY29udGV4dC5nZXRNZXNzYWdlKCdyZWFjdC40JyksIHByaW1hcnk6IHRydWUsIG9uVG91Y2hUYXA6IHRoaXMucHJvcHMuc2VhcmNoUmVzdWx0RGF0YS50b2dnbGVTdGF0ZSwgc3R5bGU6IHsgbWFyZ2luUmlnaHQ6IC0xMCB9IH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aW9uc0NhY2hlLm11bHRpcGxlLnNpemUgfHwgdGhpcy5wcm9wcy5tdWx0aXBsZUFjdGlvbnMpIHtcbiAgICAgICAgICAgIHZhciBidWxrTGFiZWwgPSB0aGlzLmNvbnRleHQuZ2V0TWVzc2FnZSgncmVhY3QuMicpO1xuICAgICAgICAgICAgdmFyIGhpZGRlblN0eWxlID0ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTgwcHgpJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBjYlN0eWxlID0gX2V4dGVuZHMoeyB3aWR0aDogMjQgfSwgaGlkZGVuU3R5bGUpO1xuICAgICAgICAgICAgdmFyIGJ1dHRvblN0eWxlID0gX2V4dGVuZHMoe30sIGhpZGRlblN0eWxlKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnNob3dTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgIGNiU3R5bGUgPSB7IHdpZHRoOiAyNCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTJweCknIH07XG4gICAgICAgICAgICAgICAgYnV0dG9uU3R5bGUgPSB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTQwcHgpJyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2VsZWN0aW9uICYmIHRoaXMuc3RhdGUuc2hvd1NlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgYnVsa0xhYmVsICs9IFwiIChcIiArIHRoaXMuc3RhdGUuc2VsZWN0aW9uLnNpemUgKyBcIilcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxlZnRUb29sYmFyID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5Ub29sYmFyR3JvdXAsXG4gICAgICAgICAgICAgICAgeyBrZXk6IDAsIGZsb2F0OiAnbGVmdCcsIGNsYXNzTmFtZTogJ2hpZGUtb24tdmVydGljYWwtbGF5b3V0JyB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuQ2hlY2tib3gsIHsgcmVmOiAnYWxsX3NlbGVjdG9yJywgb25DbGljazogdGhpcy5zZWxlY3RBbGwsIHN0eWxlOiBjYlN0eWxlIH0pLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRmxhdEJ1dHRvbiwgeyBsYWJlbDogYnVsa0xhYmVsLCBvbkNsaWNrOiB0aGlzLnRvZ2dsZVNlbGVjdG9yLCBzdHlsZTogYnV0dG9uU3R5bGUgfSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnNob3dTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0QnV0dG9ucyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYWN0aW9ucyA9IF90aGlzNy5wcm9wcy5tdWx0aXBsZUFjdGlvbnMgfHwgX3RoaXM3LmFjdGlvbnNDYWNoZS5tdWx0aXBsZTtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRCdXR0b25zLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5SYWlzZWRCdXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBhLm9wdGlvbnMudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1hY3Rpb24nOiBhLm9wdGlvbnMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLmFwcGx5TXVsdGlwbGVBY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmJpbmQoX3RoaXM3KSk7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0QnV0dG9ucyA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRCdXR0b25zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgX21hdGVyaWFsVWkuVG9vbGJhcixcbiAgICAgICAgICAgIHsgc3R5bGU6IHRoaXMucHJvcHMudG9vbGJhclN0eWxlIH0sXG4gICAgICAgICAgICBsZWZ0VG9vbGJhcixcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVG9vbGJhckdyb3VwLFxuICAgICAgICAgICAgICAgIHsga2V5OiAxLCBmbG9hdDogJ3JpZ2h0JyB9LFxuICAgICAgICAgICAgICAgIHBhZ2luYXRvcixcbiAgICAgICAgICAgICAgICByaWdodEJ1dHRvbnNcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczggPSB0aGlzO1xuXG4gICAgICAgIHZhciBjb250YWluZXJDbGFzc2VzID0gXCJtYXRlcmlhbC1saXN0IHZlcnRpY2FsLWxheW91dCBsYXlvdXQtZmlsbFwiO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5jbGFzc05hbWUpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzZXMgKz0gXCIgXCIgKyB0aGlzLnByb3BzLmNsYXNzTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG93U2VsZWN0b3IpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzZXMgKz0gXCIgbGlzdC1zaG93LXNlbGVjdG9yc1wiO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnRhYmxlS2V5cykge1xuICAgICAgICAgICAgY29udGFpbmVyQ2xhc3NlcyArPSBcIiB0YWJsZS1tb2RlXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvb2xiYXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBoaWRkZW5Ub29sYmFyID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy50YWJsZUtleXMpIHtcbiAgICAgICAgICAgIHZhciB0YWJsZUtleXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5kZWZhdWx0R3JvdXBCeSkge1xuICAgICAgICAgICAgICAgIHRhYmxlS2V5cyA9IExhbmdVdGlscy5kZWVwQ29weSh0aGlzLnByb3BzLnRhYmxlS2V5cyk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRhYmxlS2V5c1t0aGlzLnByb3BzLmRlZmF1bHRHcm91cEJ5XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFibGVLZXlzID0gdGhpcy5wcm9wcy50YWJsZUtleXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgc29ydGluZ0luZm8gPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcmVtb3RlU29ydGluZ0luZm8gPSB0aGlzLnJlbW90ZVNvcnRpbmdJbmZvKCk7XG4gICAgICAgICAgICBpZiAocmVtb3RlU29ydGluZ0luZm8pIHtcbiAgICAgICAgICAgICAgICBzb3J0aW5nSW5mbyA9IHJlbW90ZVNvcnRpbmdJbmZvO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzb3J0aW5nSW5mbyA9IHRoaXMuc3RhdGUgPyB0aGlzLnN0YXRlLnNvcnRpbmdJbmZvIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvb2xiYXIgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9UYWJsZUxpc3RIZWFkZXIyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICB0YWJsZUtleXM6IHRhYmxlS2V5cyxcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiB0aGlzLnN0YXRlLmxvYWRpbmcsXG4gICAgICAgICAgICAgICAgcmVsb2FkOiB0aGlzLnJlbG9hZCxcbiAgICAgICAgICAgICAgICByZWY6ICdsb2FkaW5nX2luZGljYXRvcicsXG4gICAgICAgICAgICAgICAgZG06IHRoaXMucHJvcHMuZGF0YU1vZGVsLFxuICAgICAgICAgICAgICAgIG5vZGU6IHRoaXMucHJvcHMubm9kZSxcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsQWN0aW9uczogdGhpcy5wcm9wcy5hZGRpdGlvbmFsQWN0aW9ucyxcbiAgICAgICAgICAgICAgICBvbkhlYWRlckNsaWNrOiB0aGlzLm9uQ29sdW1uU29ydCxcbiAgICAgICAgICAgICAgICBzb3J0aW5nSW5mbzogc29ydGluZ0luZm9cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG9vbGJhciA9IHRoaXMucHJvcHMuY3VzdG9tVG9vbGJhciA/IHRoaXMucHJvcHMuY3VzdG9tVG9vbGJhciA6ICF0aGlzLnByb3BzLmhpZGVUb29sYmFyID8gdGhpcy5yZW5kZXJUb29sYmFyKCkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuaGlkZVRvb2xiYXIgfHwgdGhpcy5wcm9wcy5jdXN0b21Ub29sYmFyKSB7XG4gICAgICAgICAgICAgICAgaGlkZGVuVG9vbGJhciA9IHRoaXMucmVuZGVyVG9vbGJhcih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpbmxpbmVFZGl0b3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmlubGluZUVkaXRpb25Gb3JOb2RlKSB7XG4gICAgICAgICAgICBpbmxpbmVFZGl0b3IgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9JbmxpbmVFZGl0b3IyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBub2RlOiB0aGlzLnN0YXRlLmlubGluZUVkaXRpb25Gb3JOb2RlLFxuICAgICAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLnN0YXRlLmlubGluZUVkaXRpb25DYWxsYmFjayxcbiAgICAgICAgICAgICAgICBvbkNsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzOC5zZXRTdGF0ZSh7IGlubGluZUVkaXRpb25Gb3JOb2RlOiBudWxsIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGVtcHR5U3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgZW1wdHlTdGF0ZVByb3BzID0gX3Byb3BzLmVtcHR5U3RhdGVQcm9wcztcbiAgICAgICAgdmFyIG5vZGUgPSBfcHJvcHMubm9kZTtcblxuICAgICAgICBpZiAoZW1wdHlTdGF0ZVByb3BzICYmIHRoaXMucHJvcHMubm9kZS5pc0xvYWRlZCgpICYmICF0aGlzLnByb3BzLm5vZGUuaXNMb2FkaW5nKCkgJiYgKCF0aGlzLnN0YXRlLmVsZW1lbnRzLmxlbmd0aCB8fCB0aGlzLnN0YXRlLmVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnN0YXRlLmVsZW1lbnRzWzBdLnBhcmVudCkpIHtcblxuICAgICAgICAgICAgdmFyIGFjdGlvblByb3BzID0ge307XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5lbGVtZW50cy5sZW5ndGggPT09IDEgJiYgdGhpcy5zdGF0ZS5lbGVtZW50c1swXS5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IF90aGlzOC5zdGF0ZS5lbGVtZW50c1swXS5ub2RlO1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25Qcm9wcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkxhYmVsSWQ6ICdyZWFjdC4xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkljb25DbGFzc05hbWU6IFNpbXBsZUxpc3QuUEFSRU5UX0ZPTERFUl9JQ09OLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uQ2FsbGJhY2s6IGZ1bmN0aW9uIGFjdGlvbkNhbGxiYWNrKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXM4LnByb3BzLmVudHJ5SGFuZGxlQ2xpY2tzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzOC5wcm9wcy5lbnRyeUhhbmRsZUNsaWNrcyhwYXJlbnROb2RlLCBTaW1wbGVMaXN0LkNMSUNLX1RZUEVfRE9VQkxFLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVtcHR5U3RhdGUgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF92aWV3c0VtcHR5U3RhdGVWaWV3MlsnZGVmYXVsdCddLCBfZXh0ZW5kcyh7fSwgZW1wdHlTdGF0ZVByb3BzLCBhY3Rpb25Qcm9wcykpO1xuICAgICAgICB9IGVsc2UgaWYgKGVtcHR5U3RhdGVQcm9wcyAmJiBlbXB0eVN0YXRlUHJvcHMuY2hlY2tFbXB0eVN0YXRlICYmIGVtcHR5U3RhdGVQcm9wcy5jaGVja0VtcHR5U3RhdGUodGhpcy5wcm9wcy5ub2RlKSkge1xuXG4gICAgICAgICAgICBlbXB0eVN0YXRlID0gUmVhY3QuY3JlYXRlRWxlbWVudChfdmlld3NFbXB0eVN0YXRlVmlldzJbJ2RlZmF1bHQnXSwgZW1wdHlTdGF0ZVByb3BzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBlbGVtZW50cyA9IHRoaXMuYnVpbGRFbGVtZW50c0Zyb21Ob2RlRW50cmllcyh0aGlzLnN0YXRlLmVsZW1lbnRzLCB0aGlzLnN0YXRlLnNob3dTZWxlY3Rvcik7XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBjb250YWluZXJDbGFzc2VzLCBvbkNvbnRleHRNZW51OiB0aGlzLmNvbnRleHRNZW51UmVzcG9uZGVyLCB0YWJJbmRleDogJzAnLCBvbktleURvd246IHRoaXMub25LZXlEb3duLCBzdHlsZTogdGhpcy5wcm9wcy5zdHlsZSB9LFxuICAgICAgICAgICAgdG9vbGJhcixcbiAgICAgICAgICAgIGhpZGRlblRvb2xiYXIsXG4gICAgICAgICAgICBpbmxpbmVFZGl0b3IsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmhlaWdodEF1dG9XaXRoTWF4ID8gXCJpbmZpbml0ZS1wYXJlbnQtc21vb3RoLWhlaWdodFwiIDogZW1wdHlTdGF0ZSA/IFwibGF5b3V0LWZpbGwgdmVydGljYWxfbGF5b3V0XCIgOiBcImxheW91dC1maWxsXCIsIHJlZjogJ2luZmluaXRlUGFyZW50JyB9LFxuICAgICAgICAgICAgICAgICFlbXB0eVN0YXRlICYmICF0aGlzLnByb3BzLnZlcnRpY2FsU2Nyb2xsZXIgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgSW5maW5pdGUsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRIZWlnaHQ6IHRoaXMuc3RhdGUuZWxlbWVudEhlaWdodCA/IHRoaXMuc3RhdGUuZWxlbWVudEhlaWdodCA6IHRoaXMucHJvcHMuZWxlbWVudEhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckhlaWdodDogdGhpcy5zdGF0ZS5jb250YWluZXJIZWlnaHQgPyB0aGlzLnN0YXRlLmNvbnRhaW5lckhlaWdodCA6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZpbml0ZUxvYWRCZWdpbkVkZ2VPZmZzZXQ6IHRoaXMuc3RhdGUuaW5maW5pdGVMb2FkQmVnaW5Cb3R0b21PZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkluZmluaXRlTG9hZDogdGhpcy5oYW5kbGVJbmZpbml0ZUxvYWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTY3JvbGw6IHRoaXMub25TY3JvbGwsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6ICdpbmZpbml0ZSdcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHNcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICFlbXB0eVN0YXRlICYmIHRoaXMucHJvcHMudmVydGljYWxTY3JvbGxlciAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3RTY3JvbGxiYXIyWydkZWZhdWx0J10sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwZWVkOiAwLjgsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsU2Nyb2xsOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGhlaWdodDogdGhpcy5zdGF0ZS5jb250YWluZXJIZWlnaHQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyU3R5bGU6IHsgYm9yZGVyUmFkaXVzOiAxMCwgd2lkdGg6IDYgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQ29udGFpbmVyU3R5bGU6IHsgd2lkdGg6IDggfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxufSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNpbXBsZUxpc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfbWVudUljb25CdXR0b25NZW51ID0gcmVxdWlyZSgnLi4vbWVudS9JY29uQnV0dG9uTWVudScpO1xuXG52YXIgX21lbnVJY29uQnV0dG9uTWVudTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZW51SWNvbkJ1dHRvbk1lbnUpO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIFB5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9QeWRpbyRyZXF1aXJlTGliID0gUHlkaW8ucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfUHlkaW8kcmVxdWlyZUxpYi5QeWRpb0NvbnRleHRDb25zdW1lcjtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWktbGVnYWN5Jyk7XG5cbnZhciBUb29sYmFyR3JvdXAgPSBfcmVxdWlyZS5Ub29sYmFyR3JvdXA7XG5cbnZhciBTb3J0Q29sdW1ucyA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1NvcnRDb2x1bW5zJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICB0YWJsZUtleXM6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgICAgY29sdW1uQ2xpY2tlZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHNvcnRpbmdJbmZvOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICBkaXNwbGF5TW9kZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZ1xuICAgIH0sXG5cbiAgICBvbk1lbnVDbGlja2VkOiBmdW5jdGlvbiBvbk1lbnVDbGlja2VkKG9iamVjdCkge1xuICAgICAgICB0aGlzLnByb3BzLmNvbHVtbkNsaWNrZWQob2JqZWN0LnBheWxvYWQpO1xuICAgIH0sXG5cbiAgICBvbkhlYWRlckNsaWNrOiBmdW5jdGlvbiBvbkhlYWRlckNsaWNrKGtleSwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLnByb3BzLnRhYmxlS2V5c1trZXldO1xuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhWydzb3J0VHlwZSddICYmIHRoaXMucHJvcHMuY29sdW1uQ2xpY2tlZCkge1xuICAgICAgICAgICAgZGF0YVsnbmFtZSddID0ga2V5O1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5jb2x1bW5DbGlja2VkKGRhdGEsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBnZXRDb2x1bW5zSXRlbXM6IGZ1bmN0aW9uIGdldENvbHVtbnNJdGVtcyhkaXNwbGF5TW9kZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBjb250cm9sbGVyID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB2YXIgaXRlbXMgPSBbXTtcbiAgICAgICAgdmFyIF9jYWxsYmFjayA9IGZ1bmN0aW9uIF9jYWxsYmFjaygpIHtcbiAgICAgICAgICAgIGlmIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5ub3RpZnkoJ2FjdGlvbnNfcmVmcmVzaGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIF9sb29wID0gZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgaWYgKCFfdGhpcy5wcm9wcy50YWJsZUtleXMuaGFzT3duUHJvcGVydHkoa2V5KSkgcmV0dXJuICdjb250aW51ZSc7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IF90aGlzLnByb3BzLnRhYmxlS2V5c1trZXldO1xuICAgICAgICAgICAgdmFyIHN0eWxlID0gZGF0YVsnd2lkdGgnXSA/IHsgd2lkdGg6IGRhdGFbJ3dpZHRoJ10gfSA6IG51bGw7XG4gICAgICAgICAgICB2YXIgaWNvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciBjbGFzc05hbWUgPSAnY2VsbCBoZWFkZXJfY2VsbCBjZWxsLScgKyBrZXk7XG4gICAgICAgICAgICBpZiAoZGF0YVsnc29ydFR5cGUnXSkge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZSArPSAnIHNvcnRhYmxlJztcbiAgICAgICAgICAgICAgICBpZiAoX3RoaXMucHJvcHMuc29ydGluZ0luZm8gJiYgKF90aGlzLnByb3BzLnNvcnRpbmdJbmZvLmF0dHJpYnV0ZSA9PT0ga2V5IHx8IF90aGlzLnByb3BzLnNvcnRpbmdJbmZvLmF0dHJpYnV0ZSA9PT0gZGF0YVsnc29ydEF0dHJpYnV0ZSddIHx8IF90aGlzLnByb3BzLnNvcnRpbmdJbmZvLmF0dHJpYnV0ZSA9PT0gZGF0YVsncmVtb3RlU29ydEF0dHJpYnV0ZSddKSkge1xuICAgICAgICAgICAgICAgICAgICBpY29uID0gX3RoaXMucHJvcHMuc29ydGluZ0luZm8uZGlyZWN0aW9uID09PSAnYXNjJyA/ICdtZGkgbWRpLWFycm93LXVwJyA6ICdtZGkgbWRpLWFycm93LWRvd24nO1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gJyBhY3RpdmUtc29ydC0nICsgX3RoaXMucHJvcHMuc29ydGluZ0luZm8uZGlyZWN0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkaXNwbGF5TW9kZSA9PT0gJ21lbnUnKSB7XG4gICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddID0ga2V5O1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiBkYXRhLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBkYXRhWydsYWJlbCddLFxuICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiBpY29uXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlNb2RlID09PSAnbWVudV9kYXRhJykge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBkYXRhWydsYWJlbCddLFxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gY2FsbGJhY2soKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5vbkhlYWRlckNsaWNrKGtleSwgX2NhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbl9jbGFzczogaWNvbiB8fCAnX19JTlNFVF9fJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5vbkhlYWRlckNsaWNrKGtleSwgX2NhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVsnbGFiZWwnXVxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLnByb3BzLnRhYmxlS2V5cykge1xuICAgICAgICAgICAgdmFyIF9yZXQgPSBfbG9vcChrZXkpO1xuXG4gICAgICAgICAgICBpZiAoX3JldCA9PT0gJ2NvbnRpbnVlJykgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH0sXG5cbiAgICBidWlsZFNvcnRpbmdNZW51SXRlbXM6IGZ1bmN0aW9uIGJ1aWxkU29ydGluZ01lbnVJdGVtcyhjb250cm9sbGVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbHVtbnNJdGVtcygnbWVudV9kYXRhJywgY29udHJvbGxlcik7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcblxuICAgICAgICB2YXIgc29ydEFjdGlvbiA9IG5ldyBBY3Rpb24oe1xuICAgICAgICAgICAgbmFtZTogJ3NvcnRfYWN0aW9uJyxcbiAgICAgICAgICAgIGljb25fY2xhc3M6ICdtZGkgbWRpLXNvcnQtZGVzY2VuZGluZycsXG4gICAgICAgICAgICB0ZXh0X2lkOiA0NTAsXG4gICAgICAgICAgICB0aXRsZV9pZDogNDUwLFxuICAgICAgICAgICAgdGV4dDogdGhpcy5wcm9wcy5nZXRNZXNzYWdlKDQ1MCksXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5wcm9wcy5nZXRNZXNzYWdlKDQ1MCksXG4gICAgICAgICAgICBoYXNBY2Nlc3NLZXk6IGZhbHNlLFxuICAgICAgICAgICAgc3ViTWVudTogdHJ1ZSxcbiAgICAgICAgICAgIHN1Yk1lbnVVcGRhdGVJbWFnZTogdHJ1ZSxcbiAgICAgICAgICAgIHdlaWdodDogNTBcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgc2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIGRpcjogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbkJhcjogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbkJhckdyb3VwOiAnZGlzcGxheV90b29sYmFyJyxcbiAgICAgICAgICAgIGNvbnRleHRNZW51OiBmYWxzZSxcbiAgICAgICAgICAgIGluZm9QYW5lbDogZmFsc2VcbiAgICAgICAgfSwge30sIHt9LCB7XG4gICAgICAgICAgICBkeW5hbWljQnVpbGRlcjogdGhpcy5idWlsZFNvcnRpbmdNZW51SXRlbXNcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBidXR0b25zID0gbmV3IE1hcCgpO1xuICAgICAgICBidXR0b25zLnNldCgnc29ydF9hY3Rpb24nLCBzb3J0QWN0aW9uKTtcbiAgICAgICAgdGhpcy5wcm9wcy5weWRpby5nZXRDb250cm9sbGVyKCkudXBkYXRlR3VpQWN0aW9ucyhidXR0b25zKTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLnByb3BzLnB5ZGlvLmdldENvbnRyb2xsZXIoKS5kZWxldGVGcm9tR3VpQWN0aW9ucygnc29ydF9hY3Rpb24nKTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRpc3BsYXlNb2RlID09PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5kaXNwbGF5TW9kZSA9PT0gJ21lbnUnKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChfbWVudUljb25CdXR0b25NZW51MlsnZGVmYXVsdCddLCB7IGJ1dHRvblRpdGxlOiAnU29ydCBieS4uLicsIGJ1dHRvbkNsYXNzTmFtZTogJ21kaSBtZGktc29ydC1kZXNjZW5kaW5nJywgbWVudUl0ZW1zOiB0aGlzLmdldENvbHVtbnNJdGVtcygnbWVudScsIHRoaXMucHJvcHMucHlkaW8uZ2V0Q29udHJvbGxlcigpKSwgb25NZW51Q2xpY2tlZDogdGhpcy5vbk1lbnVDbGlja2VkIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgVG9vbGJhckdyb3VwLFxuICAgICAgICAgICAgICAgIHsgZmxvYXQ6ICdsZWZ0JyB9LFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29sdW1uc0l0ZW1zKCdoZWFkZXInLCB0aGlzLnByb3BzLnB5ZGlvLmdldENvbnRyb2xsZXIoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gU29ydENvbHVtbnMgPSBQeWRpb0NvbnRleHRDb25zdW1lcihTb3J0Q29sdW1ucyk7XG5leHBvcnRzWydkZWZhdWx0J10gPSBTb3J0Q29sdW1ucztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF91dGlsRE5EID0gcmVxdWlyZSgnLi4vdXRpbC9ETkQnKTtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFJFQUNUIERORCBTT1JUQUJMRSBMSVNUXG4gLyoqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRyYWcgc291cmNlIGNvbnRyYWN0LlxuICogT25seSBgYmVnaW5EcmFnYCBmdW5jdGlvbiBpcyByZXF1aXJlZC5cbiAqL1xudmFyIHNvcnRhYmxlSXRlbVNvdXJjZSA9IHtcbiAgICBiZWdpbkRyYWc6IGZ1bmN0aW9uIGJlZ2luRHJhZyhwcm9wcykge1xuICAgICAgICAvLyBSZXR1cm4gdGhlIGRhdGEgZGVzY3JpYmluZyB0aGUgZHJhZ2dlZCBpdGVtXG4gICAgICAgIHJldHVybiB7IGlkOiBwcm9wcy5pZCB9O1xuICAgIH0sXG4gICAgZW5kRHJhZzogZnVuY3Rpb24gZW5kRHJhZyhwcm9wcykge1xuICAgICAgICBwcm9wcy5lbmRTd2l0Y2hpbmcoKTtcbiAgICB9XG59O1xuXG52YXIgc29ydGFibGVJdGVtVGFyZ2V0ID0ge1xuXG4gICAgaG92ZXI6IGZ1bmN0aW9uIGhvdmVyKHByb3BzLCBtb25pdG9yKSB7XG4gICAgICAgIHZhciBkcmFnZ2VkSWQgPSBtb25pdG9yLmdldEl0ZW0oKS5pZDtcbiAgICAgICAgaWYgKGRyYWdnZWRJZCAhPT0gcHJvcHMuaWQpIHtcbiAgICAgICAgICAgIHByb3BzLnN3aXRjaEl0ZW1zKGRyYWdnZWRJZCwgcHJvcHMuaWQpO1xuICAgICAgICB9XG4gICAgfVxuXG59O1xuXG52YXIgc29ydGFibGVJdGVtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiBcInNvcnRhYmxlSXRlbVwiLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGNvbm5lY3REcmFnU291cmNlOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgICBjb25uZWN0RHJvcFRhcmdldDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgICAgaXNEcmFnZ2luZzogUmVhY3QuUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICAgICAgaWQ6IFJlYWN0LlByb3BUeXBlcy5hbnkuaXNSZXF1aXJlZCxcbiAgICAgICAgbGFiZWw6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgc3dpdGNoSXRlbXM6IFJlYWN0LlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIHJlbW92YWJsZTogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIG9uUmVtb3ZlOiBSZWFjdC5Qcm9wVHlwZXMuZnVuY1xuICAgIH0sXG5cbiAgICByZW1vdmVDbGlja2VkOiBmdW5jdGlvbiByZW1vdmVDbGlja2VkKCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKHRoaXMucHJvcHMuaWQpO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgLy8gWW91ciBjb21wb25lbnQgcmVjZWl2ZXMgaXRzIG93biBwcm9wcyBhcyB1c3VhbFxuICAgICAgICB2YXIgaWQgPSB0aGlzLnByb3BzLmlkO1xuXG4gICAgICAgIC8vIFRoZXNlIHR3byBwcm9wcyBhcmUgaW5qZWN0ZWQgYnkgUmVhY3QgRG5ELFxuICAgICAgICAvLyBhcyBkZWZpbmVkIGJ5IHlvdXIgYGNvbGxlY3RgIGZ1bmN0aW9uIGFib3ZlOlxuICAgICAgICB2YXIgaXNEcmFnZ2luZyA9IHRoaXMucHJvcHMuaXNEcmFnZ2luZztcbiAgICAgICAgdmFyIGNvbm5lY3REcmFnU291cmNlID0gdGhpcy5wcm9wcy5jb25uZWN0RHJhZ1NvdXJjZTtcbiAgICAgICAgdmFyIGNvbm5lY3REcm9wVGFyZ2V0ID0gdGhpcy5wcm9wcy5jb25uZWN0RHJvcFRhcmdldDtcblxuICAgICAgICB2YXIgcmVtb3ZlO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZW1vdmFibGUpIHtcbiAgICAgICAgICAgIHJlbW92ZSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBcImJ1dHRvbiBtZGkgbWRpLWNsb3NlXCIsIG9uQ2xpY2s6IHRoaXMucmVtb3ZlQ2xpY2tlZCB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFJlYWN0TVVJLlBhcGVyLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJlZjogZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3REcm9wVGFyZ2V0KFJlYWN0RE9NLmZpbmRET01Ob2RlKGluc3RhbmNlKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3REcmFnU291cmNlKFJlYWN0RE9NLmZpbmRET01Ob2RlKGluc3RhbmNlKSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB6RGVwdGg6IDEsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgb3BhY2l0eTogaXNEcmFnZ2luZyA/IDAgOiAxIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IHRoaXMucHJvcHMuY2xhc3NOYW1lIH0sXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5sYWJlbCxcbiAgICAgICAgICAgICAgICByZW1vdmVcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59KTtcblxudmFyIE5vbkRyYWdnYWJsZUxpc3RJdGVtID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiBcIk5vbkRyYWdnYWJsZUxpc3RJdGVtXCIsXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIHJlbW92ZTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVtb3ZhYmxlKSB7XG4gICAgICAgICAgICByZW1vdmUgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogXCJidXR0b24gbWRpIG1kaS1jbG9zZVwiLCBvbkNsaWNrOiB0aGlzLnJlbW92ZUNsaWNrZWQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBSZWFjdE1VSS5QYXBlcixcbiAgICAgICAgICAgIHsgekRlcHRoOiAxIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IHRoaXMucHJvcHMuY2xhc3NOYW1lIH0sXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5sYWJlbCxcbiAgICAgICAgICAgICAgICByZW1vdmVcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59KTtcblxudmFyIERyYWdnYWJsZUxpc3RJdGVtO1xuaWYgKHdpbmRvdy5SZWFjdERORCkge1xuICAgIERyYWdnYWJsZUxpc3RJdGVtID0gUmVhY3RETkQuZmxvdyhSZWFjdERORC5EcmFnU291cmNlKF91dGlsRE5ELlR5cGVzLlNPUlRBQkxFX0xJU1RfSVRFTSwgc29ydGFibGVJdGVtU291cmNlLCBfdXRpbERORC5jb2xsZWN0KSwgUmVhY3RETkQuRHJvcFRhcmdldChfdXRpbERORC5UeXBlcy5TT1JUQUJMRV9MSVNUX0lURU0sIHNvcnRhYmxlSXRlbVRhcmdldCwgX3V0aWxETkQuY29sbGVjdERyb3ApKShzb3J0YWJsZUl0ZW0pO1xufSBlbHNlIHtcbiAgICBEcmFnZ2FibGVMaXN0SXRlbSA9IE5vbkRyYWdnYWJsZUxpc3RJdGVtO1xufVxuXG52YXIgU29ydGFibGVMaXN0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiBcIlNvcnRhYmxlTGlzdFwiLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIHZhbHVlczogUmVhY3QuUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgICAgIG9uT3JkZXJVcGRhdGVkOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcmVtb3ZhYmxlOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgb25SZW1vdmU6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBjbGFzc05hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGl0ZW1DbGFzc05hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmdcbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7IHZhbHVlczogdGhpcy5wcm9wcy52YWx1ZXMgfTtcbiAgICB9LFxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMocHJvcHMpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlczogcHJvcHMudmFsdWVzLCBzd2l0Y2hEYXRhOiBudWxsIH0pO1xuICAgIH0sXG5cbiAgICBmaW5kSXRlbUluZGV4OiBmdW5jdGlvbiBmaW5kSXRlbUluZGV4KGl0ZW1JZCwgZGF0YSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChkYXRhW2ldWydwYXlsb2FkJ10gPT0gaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgc3dpdGNoSXRlbXM6IGZ1bmN0aW9uIHN3aXRjaEl0ZW1zKG9sZElkLCBuZXdJZCkge1xuICAgICAgICB2YXIgb2xkSW5kZXggPSB0aGlzLmZpbmRJdGVtSW5kZXgob2xkSWQsIHRoaXMuc3RhdGUudmFsdWVzKTtcbiAgICAgICAgdmFyIG9sZEl0ZW0gPSB0aGlzLnN0YXRlLnZhbHVlc1tvbGRJbmRleF07XG4gICAgICAgIHZhciBuZXdJbmRleCA9IHRoaXMuZmluZEl0ZW1JbmRleChuZXdJZCwgdGhpcy5zdGF0ZS52YWx1ZXMpO1xuICAgICAgICB2YXIgbmV3SXRlbSA9IHRoaXMuc3RhdGUudmFsdWVzW25ld0luZGV4XTtcblxuICAgICAgICB2YXIgY3VycmVudFZhbHVlcyA9IHRoaXMuc3RhdGUudmFsdWVzLnNsaWNlKCk7XG4gICAgICAgIGN1cnJlbnRWYWx1ZXNbb2xkSW5kZXhdID0gbmV3SXRlbTtcbiAgICAgICAgY3VycmVudFZhbHVlc1tuZXdJbmRleF0gPSBvbGRJdGVtO1xuXG4gICAgICAgIC8vIENoZWNrIHRoYXQgaXQgZGlkIG5vdCBjb21lIGJhY2sgdG8gb3JpZ2luYWwgc3RhdGVcbiAgICAgICAgdmFyIG9sZFByZXZpb3VzID0gdGhpcy5maW5kSXRlbUluZGV4KG9sZElkLCB0aGlzLnByb3BzLnZhbHVlcyk7XG4gICAgICAgIHZhciBuZXdQcmV2aW91cyA9IHRoaXMuZmluZEl0ZW1JbmRleChuZXdJZCwgdGhpcy5wcm9wcy52YWx1ZXMpO1xuICAgICAgICBpZiAob2xkUHJldmlvdXMgPT0gbmV3SW5kZXggJiYgbmV3UHJldmlvdXMgPT0gb2xkSW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZXM6IGN1cnJlbnRWYWx1ZXMsIHN3aXRjaERhdGE6IG51bGwgfSk7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwibm8gbW9yZSBtb3Zlc1wiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWVzOiBjdXJyZW50VmFsdWVzLCBzd2l0Y2hEYXRhOiB7IG9sZElkOiBvbGRJZCwgbmV3SWQ6IG5ld0lkIH0gfSk7XG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh7b2xkSWQ6b2xkSW5kZXgsIG5ld0lkOm5ld0luZGV4fSk7XG4gICAgICAgICAgICB9XG4gICAgfSxcblxuICAgIGVuZFN3aXRjaGluZzogZnVuY3Rpb24gZW5kU3dpdGNoaW5nKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zd2l0Y2hEYXRhKSB7XG4gICAgICAgICAgICAvLyBDaGVjayB0aGF0IGl0IGRpZCBub3QgY29tZSBiYWNrIHRvIG9yaWdpbmFsIHN0YXRlXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbk9yZGVyVXBkYXRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25PcmRlclVwZGF0ZWQodGhpcy5zdGF0ZS5zd2l0Y2hEYXRhLm9sZElkLCB0aGlzLnN0YXRlLnN3aXRjaERhdGEubmV3SWQsIHRoaXMuc3RhdGUudmFsdWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc3dpdGNoRGF0YTogbnVsbCB9KTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBzd2l0Y2hJdGVtcyA9IHRoaXMuc3dpdGNoSXRlbXM7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZSB9LFxuICAgICAgICAgICAgdGhpcy5zdGF0ZS52YWx1ZXMubWFwKChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KERyYWdnYWJsZUxpc3RJdGVtLCB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLnBheWxvYWQsXG4gICAgICAgICAgICAgICAgICAgIGtleTogaXRlbS5wYXlsb2FkLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogaXRlbS50ZXh0LFxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hJdGVtczogc3dpdGNoSXRlbXMsXG4gICAgICAgICAgICAgICAgICAgIGVuZFN3aXRjaGluZzogdGhpcy5lbmRTd2l0Y2hpbmcsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92YWJsZTogdGhpcy5wcm9wcy5yZW1vdmFibGUsXG4gICAgICAgICAgICAgICAgICAgIG9uUmVtb3ZlOiB0aGlzLnByb3BzLm9uUmVtb3ZlLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuaXRlbUNsYXNzTmFtZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSlcbiAgICAgICAgKTtcbiAgICB9XG59KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBTb3J0YWJsZUxpc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9MaXN0RW50cnlOb2RlTGlzdGVuZXJNaXhpbiA9IHJlcXVpcmUoJy4vTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4nKTtcblxudmFyIF9MaXN0RW50cnlOb2RlTGlzdGVuZXJNaXhpbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9MaXN0RW50cnlOb2RlTGlzdGVuZXJNaXhpbik7XG5cbnZhciBfTGlzdEVudHJ5ID0gcmVxdWlyZSgnLi9MaXN0RW50cnknKTtcblxudmFyIF9JbmxpbmVFZGl0b3IgPSByZXF1aXJlKCcuL0lubGluZUVkaXRvcicpO1xuXG52YXIgX0lubGluZUVkaXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JbmxpbmVFZGl0b3IpO1xuXG52YXIgX3B5ZGlvVXRpbFBhdGggPSByZXF1aXJlKCdweWRpby91dGlsL3BhdGgnKTtcblxudmFyIF9weWRpb1V0aWxQYXRoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvVXRpbFBhdGgpO1xuXG52YXIgX3JlcXVpcmUkcmVxdWlyZUxpYiA9IHJlcXVpcmUoJ3B5ZGlvJykucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgbW9tZW50ID0gX3JlcXVpcmUkcmVxdWlyZUxpYi5tb21lbnQ7XG5cbi8qKlxuICogU3BlY2lmaWMgbGlzdCBlbnRyeSByZW5kZXJlZCBhcyBhIHRhYmxlIHJvdy4gTm90IGEgcmVhbCB0YWJsZSwgQ1NTIHVzZWQuXG4gKi9cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1RhYmxlTGlzdEVudHJ5JyxcblxuICAgIG1peGluczogW19MaXN0RW50cnlOb2RlTGlzdGVuZXJNaXhpbjJbJ2RlZmF1bHQnXV0sXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgbm9kZTogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoQWp4cE5vZGUpLFxuICAgICAgICB0YWJsZUtleXM6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgICAgcmVuZGVyQWN0aW9uczogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbiAgICAgICAgLy8gU2VlIGFsc28gTGlzdEVudHJ5IG5vZGVzXG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5wcm9wcy5hY3Rpb25zO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZW5kZXJBY3Rpb25zKSB7XG4gICAgICAgICAgICBhY3Rpb25zID0gdGhpcy5wcm9wcy5yZW5kZXJBY3Rpb25zKHRoaXMucHJvcHMubm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2VsbHMgPSBbXTtcbiAgICAgICAgdmFyIGZpcnN0S2V5ID0gdHJ1ZTtcbiAgICAgICAgdmFyIG1ldGEgPSB0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMucHJvcHMudGFibGVLZXlzKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucHJvcHMudGFibGVLZXlzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLnByb3BzLnRhYmxlS2V5c1trZXldO1xuICAgICAgICAgICAgdmFyIHN0eWxlID0gZGF0YVsnd2lkdGgnXSA/IHsgd2lkdGg6IGRhdGFbJ3dpZHRoJ10gfSA6IG51bGw7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcmF3VmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoZGF0YS5yZW5kZXJDZWxsKSB7XG4gICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddID0ga2V5O1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZGF0YS5yZW5kZXJDZWxsKHRoaXMucHJvcHMubm9kZSwgZGF0YSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2FqeHBfbW9kaWZ0aW1lJykge1xuICAgICAgICAgICAgICAgIHZhciBtRGF0ZSA9IG1vbWVudChwYXJzZUZsb2F0KG1ldGEuZ2V0KCdhanhwX21vZGlmdGltZScpKSAqIDEwMDApO1xuICAgICAgICAgICAgICAgIHZhciBkYXRlU3RyaW5nID0gbURhdGUuY2FsZW5kYXIoKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZVN0cmluZy5pbmRleE9mKCcvJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlU3RyaW5nID0gbURhdGUuZnJvbU5vdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGVTdHJpbmc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2J5dGVzaXplJykge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gX3B5ZGlvVXRpbFBhdGgyWydkZWZhdWx0J10ucm91bmRGaWxlU2l6ZShwYXJzZUludChtZXRhLmdldChrZXkpKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gbWV0YS5nZXQoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJhd1ZhbHVlID0gbWV0YS5nZXQoa2V5KTtcbiAgICAgICAgICAgIHZhciBpbmxpbmVFZGl0b3IgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLmlubGluZUVkaXRpb24gJiYgZmlyc3RLZXkpIHtcbiAgICAgICAgICAgICAgICBpbmxpbmVFZGl0b3IgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9JbmxpbmVFZGl0b3IyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogdGhpcy5wcm9wcy5ub2RlLFxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGlubGluZUVkaXRpb246IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogdGhpcy5zdGF0ZS5pbmxpbmVFZGl0aW9uQ2FsbGJhY2tcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB2YXIgX3N0eWxlID0gdGhpcy5wcm9wcy5zdHlsZSB8fCB7fTtcbiAgICAgICAgICAgICAgICBfc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuc3R5bGUgPSBfc3R5bGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjZWxscy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgIHsga2V5OiBrZXksIGNsYXNzTmFtZTogJ2NlbGwgY2VsbC0nICsga2V5LCB0aXRsZTogcmF3VmFsdWUsIHN0eWxlOiBzdHlsZSwgJ2RhdGEtbGFiZWwnOiBkYXRhWydsYWJlbCddIH0sXG4gICAgICAgICAgICAgICAgaW5saW5lRWRpdG9yLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICApKTtcbiAgICAgICAgICAgIGZpcnN0S2V5ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChfTGlzdEVudHJ5LkRyYWdEcm9wTGlzdEVudHJ5LCBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywge1xuICAgICAgICAgICAgaWNvbkNlbGw6IG51bGwsXG4gICAgICAgICAgICBmaXJzdExpbmU6IGNlbGxzLFxuICAgICAgICAgICAgYWN0aW9uczogYWN0aW9uc1xuICAgICAgICB9KSk7XG4gICAgfVxuXG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF91dGlsTWVzc2FnZXNDb25zdW1lck1peGluID0gcmVxdWlyZSgnLi4vdXRpbC9NZXNzYWdlc0NvbnN1bWVyTWl4aW4nKTtcblxudmFyIF91dGlsTWVzc2FnZXNDb25zdW1lck1peGluMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxNZXNzYWdlc0NvbnN1bWVyTWl4aW4pO1xuXG52YXIgX1NvcnRDb2x1bW5zID0gcmVxdWlyZSgnLi9Tb3J0Q29sdW1ucycpO1xuXG52YXIgX1NvcnRDb2x1bW5zMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NvcnRDb2x1bW5zKTtcblxudmFyIF9MaXN0UGFnaW5hdG9yID0gcmVxdWlyZSgnLi9MaXN0UGFnaW5hdG9yJyk7XG5cbnZhciBfTGlzdFBhZ2luYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9MaXN0UGFnaW5hdG9yKTtcblxuLyoqXG4gKiBTcGVjaWZpYyBoZWFkZXIgZm9yIFRhYmxlIGxheW91dCwgcmVhZGluZyBtZXRhZGF0YSBmcm9tIG5vZGUgYW5kIHVzaW5nIGtleXNcbiAqL1xuZXhwb3J0c1snZGVmYXVsdCddID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnVGFibGVMaXN0SGVhZGVyJyxcblxuICAgIG1peGluczogW191dGlsTWVzc2FnZXNDb25zdW1lck1peGluMlsnZGVmYXVsdCddXSxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICB0YWJsZUtleXM6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgICAgbG9hZGluZzogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIHJlbG9hZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGRtOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpb0RhdGFNb2RlbCksXG4gICAgICAgIG5vZGU6IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKEFqeHBOb2RlKSxcbiAgICAgICAgb25IZWFkZXJDbGljazogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHNvcnRpbmdJbmZvOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgaGVhZGVycyA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhZ2luYXRvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMubm9kZS5nZXRNZXRhZGF0YSgpLmdldChcInBhZ2luYXRpb25EYXRhXCIpICYmIHRoaXMucHJvcHMubm9kZS5nZXRNZXRhZGF0YSgpLmdldChcInBhZ2luYXRpb25EYXRhXCIpLmdldCgndG90YWwnKSA+IDEpIHtcbiAgICAgICAgICAgIHBhZ2luYXRvciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoX0xpc3RQYWdpbmF0b3IyWydkZWZhdWx0J10sIHsgZGF0YU1vZGVsOiB0aGlzLnByb3BzLmRtLCBub2RlOiB0aGlzLnByb3BzLm5vZGUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBSZWFjdE1VSS5Ub29sYmFyLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6ICd0b29sYmFyVGFibGVIZWFkZXInIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9Tb3J0Q29sdW1uczJbJ2RlZmF1bHQnXSwgX2V4dGVuZHMoeyBkaXNwbGF5TW9kZTogJ3RhYmxlSGVhZGVyJyB9LCB0aGlzLnByb3BzLCB7IGNvbHVtbkNsaWNrZWQ6IHRoaXMucHJvcHMub25IZWFkZXJDbGljayB9KSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFJlYWN0TVVJLlRvb2xiYXJHcm91cCxcbiAgICAgICAgICAgICAgICB7IGZsb2F0OiAncmlnaHQnIH0sXG4gICAgICAgICAgICAgICAgcGFnaW5hdG9yLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3RNVUkuRm9udEljb24sIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiAxLFxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiB0aGlzLmNvbnRleHQuZ2V0TWVzc2FnZSgnMTQ5JywgJycpLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiaWNvbi1yZWZyZXNoXCIgKyAodGhpcy5wcm9wcy5sb2FkaW5nID8gXCIgcm90YXRpbmdcIiA6IFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLnByb3BzLnJlbG9hZFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuYWRkaXRpb25hbEFjdGlvbnNcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTggQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpbyBDZWxscy5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfVXRpbHMgPSByZXF1aXJlKCcuL1V0aWxzJyk7XG5cbnZhciBfVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXRpbHMpO1xuXG52YXIgX01lbnVJdGVtc0NvbnN1bWVyID0gcmVxdWlyZSgnLi9NZW51SXRlbXNDb25zdW1lcicpO1xuXG52YXIgX01lbnVJdGVtc0NvbnN1bWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX01lbnVJdGVtc0NvbnN1bWVyKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3REb20gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuXG52YXIgX3JlYWN0RG9tMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0RG9tKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZShcIm1hdGVyaWFsLXVpXCIpO1xuXG52YXIgQnV0dG9uQ29tcG9zZWQgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnQnV0dG9uQ29tcG9zZWQnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGJ1dHRvblRpdGxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9uZU9mVHlwZShbX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsIF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0XSkuaXNSZXF1aXJlZCxcbiAgICAgICAgbWFzdGVyQWN0aW9uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgICAgbWVudUl0ZW1zOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgICAgIGNsYXNzTmFtZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIHJhaXNlZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBkaXJlY3Rpb246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub25lT2YoWydsZWZ0JywgJ3JpZ2h0J10pXG4gICAgfSxcblxuICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vcGVuT25FdmVudCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5weWRpby5vYnNlcnZlKHRoaXMucHJvcHMub3Blbk9uRXZlbnQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5zaG93TWVudSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7IHNob3dNZW51OiBmYWxzZSB9O1xuICAgIH0sXG5cbiAgICBzaG93TWVudTogZnVuY3Rpb24gc2hvd01lbnUoZXZlbnQpIHtcbiAgICAgICAgdmFyIGFuY2hvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICBhbmNob3IgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW5jaG9yID0gdGhpcy5fYnV0dG9uRE9NO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2hvd01lbnU6IHRydWUsXG4gICAgICAgICAgICBhbmNob3I6IGFuY2hvclxuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgbWVudUNsaWNrZWQ6IGZ1bmN0aW9uIG1lbnVDbGlja2VkKGV2ZW50LCBpbmRleCwgb2JqZWN0KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93TWVudTogZmFsc2UgfSk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgbWFzdGVyQnV0dG9uID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgYXJyb3dCdXR0b24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgaWQgPSBfcHJvcHMuaWQ7XG4gICAgICAgIHZhciBtYXN0ZXJBY3Rpb24gPSBfcHJvcHMubWFzdGVyQWN0aW9uO1xuICAgICAgICB2YXIgYnV0dG9uVGl0bGUgPSBfcHJvcHMuYnV0dG9uVGl0bGU7XG4gICAgICAgIHZhciBwcmltYXJ5ID0gX3Byb3BzLnByaW1hcnk7XG4gICAgICAgIHZhciBzZWNvbmRhcnkgPSBfcHJvcHMuc2Vjb25kYXJ5O1xuICAgICAgICB2YXIgZGlzYWJsZWQgPSBfcHJvcHMuZGlzYWJsZWQ7XG4gICAgICAgIHZhciByYWlzZWQgPSBfcHJvcHMucmFpc2VkO1xuICAgICAgICB2YXIgbWVudUl0ZW1zID0gX3Byb3BzLm1lbnVJdGVtcztcbiAgICAgICAgdmFyIGJ1dHRvblN0eWxlID0gX3Byb3BzLmJ1dHRvblN0eWxlO1xuICAgICAgICB2YXIgYnV0dG9uTGFiZWxTdHlsZSA9IF9wcm9wcy5idXR0b25MYWJlbFN0eWxlO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gX3Byb3BzLmNsYXNzTmFtZTtcbiAgICAgICAgdmFyIGRpcmVjdGlvbiA9IF9wcm9wcy5kaXJlY3Rpb247XG5cbiAgICAgICAgdmFyIG1hc3RlclByb3BzID0ge1xuICAgICAgICAgICAgcHJpbWFyeTogcHJpbWFyeSxcbiAgICAgICAgICAgIHNlY29uZGFyeTogc2Vjb25kYXJ5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgICAgICAgbGFiZWw6IGJ1dHRvblRpdGxlLFxuICAgICAgICAgICAgc3R5bGU6IF9leHRlbmRzKHt9LCBidXR0b25TdHlsZSwgeyBtaW5XaWR0aDogNjAgfSksXG4gICAgICAgICAgICBsYWJlbFN0eWxlOiBfZXh0ZW5kcyh7fSwgYnV0dG9uTGFiZWxTdHlsZSwgeyBwYWRkaW5nUmlnaHQ6IDggfSksXG4gICAgICAgICAgICBvblRvdWNoVGFwOiBtYXN0ZXJBY3Rpb24sXG4gICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGFycm93UHJvcHMgPSB7XG4gICAgICAgICAgICBwcmltYXJ5OiBwcmltYXJ5LFxuICAgICAgICAgICAgc2Vjb25kYXJ5OiBzZWNvbmRhcnksXG4gICAgICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICAgICAgICBsYWJlbDogX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IGNsYXNzTmFtZTogXCJtZGkgbWRpLW1lbnUtZG93blwiIH0pLFxuICAgICAgICAgICAgb25Ub3VjaFRhcDogdGhpcy5zaG93TWVudSxcbiAgICAgICAgICAgIHN0eWxlOiBfZXh0ZW5kcyh7fSwgYnV0dG9uU3R5bGUsIHsgbWluV2lkdGg6IDE2IH0pLFxuICAgICAgICAgICAgbGFiZWxTdHlsZTogX2V4dGVuZHMoe30sIGJ1dHRvbkxhYmVsU3R5bGUsIHsgcGFkZGluZ0xlZnQ6IDgsIHBhZGRpbmdSaWdodDogOCB9KSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdmFyIHNob3dNZW51ID0gX3N0YXRlLnNob3dNZW51O1xuICAgICAgICB2YXIgYW5jaG9yID0gX3N0YXRlLmFuY2hvcjtcbiAgICAgICAgdmFyIG92ZXIgPSBfc3RhdGUub3ZlcjtcblxuICAgICAgICBpZiAobWVudUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHJhaXNlZCkge1xuICAgICAgICAgICAgICAgIGFycm93QnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuUmFpc2VkQnV0dG9uLCBfZXh0ZW5kcyh7fSwgYXJyb3dQcm9wcywgeyByZWY6IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIuX2J1dHRvbkRPTSA9IF9yZWFjdERvbTJbJ2RlZmF1bHQnXS5maW5kRE9NTm9kZShiKTtcbiAgICAgICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAgICAgbWFzdGVyQnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuUmFpc2VkQnV0dG9uLCBtYXN0ZXJQcm9wcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFycm93QnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRmxhdEJ1dHRvbiwgX2V4dGVuZHMoe30sIGFycm93UHJvcHMsIHsgcmVmOiBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLl9idXR0b25ET00gPSBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUoYik7XG4gICAgICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgICAgIG1hc3RlckJ1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZsYXRCdXR0b24sIG1hc3RlclByb3BzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICB7IGlkOiBpZCwgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25Nb3VzZU92ZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgb3ZlcjogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICB9LCBvbk1vdXNlT3V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IG92ZXI6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3R5bGU6IG92ZXIgfHwgc2hvd01lbnUgPyB7IGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMTUzLCAxNTMsIDE1MywgMC4yKScsIHdoaXRlU3BhY2U6ICdub3dyYXAnIH0gOiB7IHdoaXRlU3BhY2U6ICdub3dyYXAnIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXN0ZXJCdXR0b24sXG4gICAgICAgICAgICBhcnJvd0J1dHRvbixcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlBvcG92ZXIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZW51UG9wb3ZlcicsXG4gICAgICAgICAgICAgICAgICAgIG9wZW46IHNob3dNZW51LFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JFbDogYW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW46IHsgaG9yaXpvbnRhbDogZGlyZWN0aW9uIHx8ICdsZWZ0JywgdmVydGljYWw6ICdib3R0b20nIH0sXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiBkaXJlY3Rpb24gfHwgJ2xlZnQnLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNob3dNZW51OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgbWFyZ2luVG9wOiAxIH0sXG4gICAgICAgICAgICAgICAgICAgIHVzZUxheWVyRm9yQ2xpY2tBd2F5OiBmYWxzZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgX1V0aWxzMlsnZGVmYXVsdCddLml0ZW1zVG9NZW51KG1lbnVJdGVtcywgdGhpcy5tZW51Q2xpY2tlZClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBfTWVudUl0ZW1zQ29uc3VtZXIyWydkZWZhdWx0J10oQnV0dG9uQ29tcG9zZWQpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxOCBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvIENlbGxzLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9VdGlscyA9IHJlcXVpcmUoJy4vVXRpbHMnKTtcblxudmFyIF9VdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9VdGlscyk7XG5cbnZhciBfTWVudUl0ZW1zQ29uc3VtZXIgPSByZXF1aXJlKCcuL01lbnVJdGVtc0NvbnN1bWVyJyk7XG5cbnZhciBfTWVudUl0ZW1zQ29uc3VtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTWVudUl0ZW1zQ29uc3VtZXIpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9yZWFjdERvbSA9IHJlcXVpcmUoXCJyZWFjdC1kb21cIik7XG5cbnZhciBfcmVhY3REb20yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3REb20pO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKFwibWF0ZXJpYWwtdWlcIik7XG5cbnZhciBCdXR0b25NZW51ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0J1dHRvbk1lbnUnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGJ1dHRvblRpdGxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9uZU9mVHlwZShbX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsIF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0XSkuaXNSZXF1aXJlZCxcbiAgICAgICAgbWVudUl0ZW1zOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgICAgIGNsYXNzTmFtZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIHJhaXNlZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBkaXJlY3Rpb246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub25lT2YoWydsZWZ0JywgJ3JpZ2h0J10pXG4gICAgfSxcblxuICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vcGVuT25FdmVudCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5weWRpby5vYnNlcnZlKHRoaXMucHJvcHMub3Blbk9uRXZlbnQsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5zaG93TWVudSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7IHNob3dNZW51OiBmYWxzZSB9O1xuICAgIH0sXG5cbiAgICBzaG93TWVudTogZnVuY3Rpb24gc2hvd01lbnUoZXZlbnQpIHtcbiAgICAgICAgdmFyIGFuY2hvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICBhbmNob3IgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW5jaG9yID0gdGhpcy5fYnV0dG9uRE9NO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2hvd01lbnU6IHRydWUsXG4gICAgICAgICAgICBhbmNob3I6IGFuY2hvclxuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgbWVudUNsaWNrZWQ6IGZ1bmN0aW9uIG1lbnVDbGlja2VkKGV2ZW50LCBpbmRleCwgb2JqZWN0KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93TWVudTogZmFsc2UgfSk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdmFyIHNob3dNZW51ID0gX3N0YXRlLnNob3dNZW51O1xuICAgICAgICB2YXIgYW5jaG9yID0gX3N0YXRlLmFuY2hvcjtcblxuICAgICAgICB2YXIgbGFiZWwgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHsgd2hpdGVTcGFjZTogJ25vd3JhcCcgfSB9LFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5idXR0b25UaXRsZSxcbiAgICAgICAgICAgICcgJyxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6ICdtZGkgbWRpLW1lbnUtZG93bicgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdmFyIGJ1dHRvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICAgICAgcHJpbWFyeTogdGhpcy5wcm9wcy5wcmltYXJ5LFxuICAgICAgICAgICAgc2Vjb25kYXJ5OiB0aGlzLnByb3BzLnNlY29uZGFyeSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnByb3BzLmRpc2FiZWxkLFxuICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgb25Ub3VjaFRhcDogdGhpcy5zaG93TWVudSxcbiAgICAgICAgICAgIGxhYmVsU3R5bGU6IF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLmJ1dHRvbkxhYmVsU3R5bGUsIHsgcGFkZGluZ1JpZ2h0OiAxMCB9KSxcbiAgICAgICAgICAgIHN0eWxlOiBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcy5idXR0b25TdHlsZSwgeyBiYWNrZ3JvdW5kQ29sb3I6IHNob3dNZW51ID8gJ3JnYmEoMTUzLDE1MywxNTMsLjIpJyA6ICcnIH0pLFxuICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciBtZW51SXRlbXMgPSB0aGlzLnByb3BzLm1lbnVJdGVtcztcblxuICAgICAgICBpZiAobWVudUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMucmFpc2VkKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuUmFpc2VkQnV0dG9uLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHsgcmVmOiBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLl9idXR0b25ET00gPSBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUoYik7XG4gICAgICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBidXR0b24gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5GbGF0QnV0dG9uLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHsgcmVmOiBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLl9idXR0b25ET00gPSBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUoYik7XG4gICAgICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgIHsgaWQ6IHRoaXMucHJvcHMuaWQsIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWUgfSxcbiAgICAgICAgICAgIGJ1dHRvbixcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlBvcG92ZXIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZW51UG9wb3ZlcicsXG4gICAgICAgICAgICAgICAgICAgIG9wZW46IHNob3dNZW51LFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JFbDogYW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW46IHsgaG9yaXpvbnRhbDogdGhpcy5wcm9wcy5kaXJlY3Rpb24gfHwgJ2xlZnQnLCB2ZXJ0aWNhbDogJ2JvdHRvbScgfSxcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0T3JpZ2luOiB7IGhvcml6b250YWw6IHRoaXMucHJvcHMuZGlyZWN0aW9uIHx8ICdsZWZ0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93TWVudTogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IG1hcmdpblRvcDogMSB9LFxuICAgICAgICAgICAgICAgICAgICB1c2VMYXllckZvckNsaWNrQXdheTogZmFsc2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF9VdGlsczJbJ2RlZmF1bHQnXS5pdGVtc1RvTWVudShtZW51SXRlbXMsIHRoaXMubWVudUNsaWNrZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gX01lbnVJdGVtc0NvbnN1bWVyMlsnZGVmYXVsdCddKEJ1dHRvbk1lbnUpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9weWRpb01vZGVsQ29udGV4dE1lbnUgPSByZXF1aXJlKCdweWRpby9tb2RlbC9jb250ZXh0LW1lbnUnKTtcblxudmFyIF9weWRpb01vZGVsQ29udGV4dE1lbnUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9Nb2RlbENvbnRleHRNZW51KTtcblxudmFyIF9VdGlscyA9IHJlcXVpcmUoJy4vVXRpbHMnKTtcblxudmFyIF9VdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9VdGlscyk7XG5cbnZhciBfUG9wdXBNZW51ID0gcmVxdWlyZSgnLi9Qb3B1cE1lbnUnKTtcblxudmFyIF9Qb3B1cE1lbnUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUG9wdXBNZW51KTtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIENvbXBvbmVudCA9IF9yZXF1aXJlLkNvbXBvbmVudDtcblxudmFyIGRpbXMgPSB7XG4gICAgTUVOVV9JVEVNX0hFSUdIVDogMzIsIC8vNDggaWYgbm90IGRpc3BsYXk6Y29tcGFjdFxuICAgIE1FTlVfU0VQX0hFSUdIVDogMTYsXG4gICAgTUVOVV9WRVJUSUNBTF9QQURESU5HOiA4LFxuICAgIE1FTlVfV0lEVEg6IDI1MCxcbiAgICBPRkZTRVRfVkVSVElDQUw6IDgsXG4gICAgT0ZGU0VUX0hPUklaT05UQUw6IDhcbn07XG5cbnZhciBDb250ZXh0TWVudSA9IChmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhDb250ZXh0TWVudSwgX0NvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBDb250ZXh0TWVudSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENvbnRleHRNZW51KTtcblxuICAgICAgICBfQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgQ29udGV4dE1lbnUucHJvdG90eXBlLm1vZGVsT3BlbiA9IGZ1bmN0aW9uIG1vZGVsT3Blbihub2RlKSB7XG4gICAgICAgIHZhciBwb3NpdGlvbiA9IF9weWRpb01vZGVsQ29udGV4dE1lbnUyWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5nZXRQb3NpdGlvbigpO1xuICAgICAgICB2YXIgaXRlbXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICB2YXIgZG0gPSBweWRpby5nZXRDb250ZXh0SG9sZGVyKCk7XG4gICAgICAgICAgICBpZiAoZG0uZ2V0U2VsZWN0ZWROb2RlcygpLmluZGV4T2Yobm9kZSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTWVudSgnc2VsZWN0aW9uQ29udGV4dCcsIHBvc2l0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHlkaW8ub2JzZXJ2ZU9uY2UoXCJhY3Rpb25zX3JlZnJlc2hlZFwiLCAoZnVuY3Rpb24gKGRhdGFNb2RlbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5NZW51KCdzZWxlY3Rpb25Db250ZXh0JywgcG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIGRtLnNldFNlbGVjdGVkTm9kZXMoW25vZGVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3Blbk1lbnUoJ2dlbmVyaWNDb250ZXh0JywgcG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENvbnRleHRNZW51LnByb3RvdHlwZS5vcGVuTWVudSA9IGZ1bmN0aW9uIG9wZW5NZW51KGNvbnRleHQsIHBvc2l0aW9uKSB7XG4gICAgICAgIHZhciBpdGVtcyA9IHRoaXMuY29tcHV0ZU1lbnVJdGVtcyhjb250ZXh0KTtcbiAgICAgICAgdGhpcy5faXRlbXMgPSBpdGVtcztcbiAgICAgICAgdmFyIG1vYmlsZSA9IHRoaXMucHJvcHMucHlkaW8uVUkuTU9CSUxFX0VYVEVOU0lPTlM7XG4gICAgICAgIGlmICghbW9iaWxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMuY29tcHV0ZVZpc2libGVQb3NpdGlvbihwb3NpdGlvbiwgaXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5yZWZzWydtZW51J10uc2hvd01lbnUoe1xuICAgICAgICAgICAgICAgIHRvcDogcG9zaXRpb24ueSxcbiAgICAgICAgICAgICAgICBsZWZ0OiBwb3NpdGlvbi54XG4gICAgICAgICAgICB9LCBpdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZnNbJ21lbnUnXS5zaG93TWVudSh7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDAsXG4gICAgICAgICAgICAgICAgekluZGV4OiAxMDAwMCxcbiAgICAgICAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJ1xuICAgICAgICAgICAgfSwgaXRlbXMpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENvbnRleHRNZW51LnByb3RvdHlwZS5jb21wdXRlTWVudUl0ZW1zID0gZnVuY3Rpb24gY29tcHV0ZU1lbnVJdGVtcyhjb250ZXh0KSB7XG4gICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5wcm9wcy5weWRpby5Db250cm9sbGVyLmdldENvbnRleHRBY3Rpb25zKGNvbnRleHQsIFsnaW5saW5lJywgJ2luZm9fcGFuZWwnLCAnaW5mb19wYW5lbF9zaGFyZSddKTtcbiAgICAgICAgcmV0dXJuIF9VdGlsczJbJ2RlZmF1bHQnXS5weWRpb0FjdGlvbnNUb0l0ZW1zKGFjdGlvbnMpO1xuICAgIH07XG5cbiAgICBDb250ZXh0TWVudS5wcm90b3R5cGUuY29tcHV0ZVZpc2libGVQb3NpdGlvbiA9IGZ1bmN0aW9uIGNvbXB1dGVWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24sIGl0ZW1zKSB7XG4gICAgICAgIHZhciBtZW51SGVpZ2h0ID0gZGltcy5NRU5VX1ZFUlRJQ0FMX1BBRERJTkcgKiAyO1xuICAgICAgICBpdGVtcy5tYXAoZnVuY3Rpb24gKGl0KSB7XG4gICAgICAgICAgICBpZiAoaXQuc2VwYXJhdG9yKSBtZW51SGVpZ2h0ICs9IGRpbXMuTUVOVV9TRVBfSEVJR0hUO2Vsc2UgbWVudUhlaWdodCArPSBkaW1zLk1FTlVfSVRFTV9IRUlHSFQ7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgbWVudVdpZHRoID0gZGltcy5NRU5VX1dJRFRIO1xuICAgICAgICB2YXIgd2luZG93VyA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCwgd2luZG93LmlubmVyV2lkdGggfHwgMCk7XG4gICAgICAgIHZhciB3aW5kb3dIID0gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCwgd2luZG93LmlubmVySGVpZ2h0IHx8IDApO1xuICAgICAgICBpZiAocG9zaXRpb24ueCArIG1lbnVXaWR0aCA+IHdpbmRvd1cpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uLnggPSBNYXRoLm1heChwb3NpdGlvbi54IC0gbWVudVdpZHRoLCAxMCkgLSBkaW1zLk9GRlNFVF9IT1JJWk9OVEFMO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9zaXRpb24ueCArPSBkaW1zLk9GRlNFVF9IT1JJWk9OVEFMO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwb3NpdGlvbi55ICsgbWVudUhlaWdodCA+IHdpbmRvd0gpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uLnkgPSBNYXRoLm1heChwb3NpdGlvbi55IC0gbWVudUhlaWdodCwgMTApIC0gZGltcy5PRkZTRVRfVkVSVElDQUw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3NpdGlvbi55ICs9IGRpbXMuT0ZGU0VUX1ZFUlRJQ0FMO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICB9O1xuXG4gICAgQ29udGV4dE1lbnUucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuX21vZGVsT3BlbiA9IHRoaXMubW9kZWxPcGVuLmJpbmQodGhpcyk7XG4gICAgICAgIF9weWRpb01vZGVsQ29udGV4dE1lbnUyWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5vYnNlcnZlKFwib3BlblwiLCB0aGlzLl9tb2RlbE9wZW4pO1xuICAgIH07XG5cbiAgICBDb250ZXh0TWVudS5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgX3B5ZGlvTW9kZWxDb250ZXh0TWVudTJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSgpLnN0b3BPYnNlcnZpbmcoXCJvcGVuXCIsIHRoaXMuX21vZGVsT3Blbik7XG4gICAgfTtcblxuICAgIENvbnRleHRNZW51LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBtb2JpbGUgPSB0aGlzLnByb3BzLnB5ZGlvLlVJLk1PQklMRV9FWFRFTlNJT05TO1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChfUG9wdXBNZW51MlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICByZWY6ICdtZW51JyxcbiAgICAgICAgICAgIG1lbnVJdGVtczogdGhpcy5faXRlbXMgfHwgW10sXG4gICAgICAgICAgICBvbk1lbnVDbG9zZWQ6IHRoaXMucHJvcHMub25NZW51Q2xvc2VkLFxuICAgICAgICAgICAgbWVudVByb3BzOiBtb2JpbGUgPyB7IHdpZHRoOiA2MDAsIGF1dG9XaWR0aDogZmFsc2UsIGRlc2t0b3A6IGZhbHNlIH0gOiB7fSxcbiAgICAgICAgICAgIHpEZXB0aDogbW9iaWxlID8gMiA6IDFcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBDb250ZXh0TWVudTtcbn0pKENvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENvbnRleHRNZW51O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9VdGlscyA9IHJlcXVpcmUoJy4vVXRpbHMnKTtcblxudmFyIF9VdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9VdGlscyk7XG5cbnZhciBfTWVudUl0ZW1zQ29uc3VtZXIgPSByZXF1aXJlKCcuL01lbnVJdGVtc0NvbnN1bWVyJyk7XG5cbnZhciBfTWVudUl0ZW1zQ29uc3VtZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTWVudUl0ZW1zQ29uc3VtZXIpO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgSWNvbkJ1dHRvbiA9IF9yZXF1aXJlLkljb25CdXR0b247XG52YXIgUG9wb3ZlciA9IF9yZXF1aXJlLlBvcG92ZXI7XG5cbnZhciBJY29uQnV0dG9uTWVudSA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhJY29uQnV0dG9uTWVudSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBJY29uQnV0dG9uTWVudShwcm9wcywgY29udGV4dCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWNvbkJ1dHRvbk1lbnUpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IHNob3dNZW51OiBmYWxzZSB9O1xuICAgIH1cblxuICAgIEljb25CdXR0b25NZW51LnByb3RvdHlwZS5zaG93TWVudSA9IGZ1bmN0aW9uIHNob3dNZW51KGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2hvd01lbnU6IHRydWUsXG4gICAgICAgICAgICBhbmNob3I6IGV2ZW50LmN1cnJlbnRUYXJnZXRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIEljb25CdXR0b25NZW51LnByb3RvdHlwZS5jbG9zZU1lbnUgPSBmdW5jdGlvbiBjbG9zZU1lbnUoZXZlbnQsIGluZGV4LCBtZW51SXRlbSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd01lbnU6IGZhbHNlIH0pO1xuICAgIH07XG5cbiAgICBJY29uQnV0dG9uTWVudS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgbWVudUl0ZW1zID0gX3Byb3BzLm1lbnVJdGVtcztcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IF9wcm9wcy5jbGFzc05hbWU7XG4gICAgICAgIHZhciBidXR0b25UaXRsZSA9IF9wcm9wcy5idXR0b25UaXRsZTtcbiAgICAgICAgdmFyIGJ1dHRvbkNsYXNzTmFtZSA9IF9wcm9wcy5idXR0b25DbGFzc05hbWU7XG4gICAgICAgIHZhciBjb250YWluZXJTdHlsZSA9IF9wcm9wcy5jb250YWluZXJTdHlsZTtcbiAgICAgICAgdmFyIGJ1dHRvblN0eWxlID0gX3Byb3BzLmJ1dHRvblN0eWxlO1xuICAgICAgICB2YXIgcG9wb3ZlckRpcmVjdGlvbiA9IF9wcm9wcy5wb3BvdmVyRGlyZWN0aW9uO1xuICAgICAgICB2YXIgcG9wb3ZlclRhcmdldFBvc2l0aW9uID0gX3Byb3BzLnBvcG92ZXJUYXJnZXRQb3NpdGlvbjtcbiAgICAgICAgdmFyIG1lbnVQcm9wcyA9IF9wcm9wcy5tZW51UHJvcHM7XG5cbiAgICAgICAgaWYgKCFtZW51SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInRvb2xiYXJzLWJ1dHRvbi1tZW51IFwiICsgKGNsYXNzTmFtZSA/IGNsYXNzTmFtZSA6ICcnKSwgc3R5bGU6IGNvbnRhaW5lclN0eWxlIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHtcbiAgICAgICAgICAgICAgICByZWY6ICdtZW51QnV0dG9uJyxcbiAgICAgICAgICAgICAgICB0b29sdGlwOiBidXR0b25UaXRsZSxcbiAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiBidXR0b25DbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25Ub3VjaFRhcDogdGhpcy5zaG93TWVudS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGljb25TdHlsZTogYnV0dG9uU3R5bGVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBQb3BvdmVyLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb3BlbjogdGhpcy5zdGF0ZS5zaG93TWVudSxcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IHRoaXMuc3RhdGUuYW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW46IHsgaG9yaXpvbnRhbDogcG9wb3ZlckRpcmVjdGlvbiB8fCAncmlnaHQnLCB2ZXJ0aWNhbDogcG9wb3ZlclRhcmdldFBvc2l0aW9uIHx8ICdib3R0b20nIH0sXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiBwb3BvdmVyRGlyZWN0aW9uIHx8ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBzaG93TWVudTogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHVzZUxheWVyRm9yQ2xpY2tBd2F5OiBmYWxzZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgX1V0aWxzMlsnZGVmYXVsdCddLml0ZW1zVG9NZW51KG1lbnVJdGVtcywgdGhpcy5jbG9zZU1lbnUuYmluZCh0aGlzKSwgZmFsc2UsIG1lbnVQcm9wcyB8fCB1bmRlZmluZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBJY29uQnV0dG9uTWVudTtcbn0pKFJlYWN0LkNvbXBvbmVudCk7XG5cbkljb25CdXR0b25NZW51LnByb3BUeXBlcyA9IHtcbiAgICBidXR0b25UaXRsZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGJ1dHRvbkNsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGNsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICBwb3BvdmVyRGlyZWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMub25lT2YoWydyaWdodCcsICdsZWZ0J10pLFxuICAgIHBvcG92ZXJQb3NpdGlvbjogUmVhY3QuUHJvcFR5cGVzLm9uZU9mKFsndG9wJywgJ2JvdHRvbSddKSxcbiAgICBtZW51UHJvcHM6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgbWVudUl0ZW1zOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZFxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gX01lbnVJdGVtc0NvbnN1bWVyMlsnZGVmYXVsdCddKEljb25CdXR0b25NZW51KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgSWNvbkJ1dHRvbiA9IF9yZXF1aXJlLkljb25CdXR0b247XG52YXIgUG9wb3ZlciA9IF9yZXF1aXJlLlBvcG92ZXI7XG5cbnZhciBJY29uQnV0dG9uUG9wb3ZlciA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhJY29uQnV0dG9uUG9wb3ZlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBJY29uQnV0dG9uUG9wb3Zlcihwcm9wcywgY29udGV4dCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWNvbkJ1dHRvblBvcG92ZXIpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IHNob3dQb3BvdmVyOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIEljb25CdXR0b25Qb3BvdmVyLnByb3RvdHlwZS5zaG93UG9wb3ZlciA9IGZ1bmN0aW9uIHNob3dQb3BvdmVyKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2hvd1BvcG92ZXI6IHRydWUsXG4gICAgICAgICAgICBhbmNob3I6IGV2ZW50LmN1cnJlbnRUYXJnZXRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIEljb25CdXR0b25Qb3BvdmVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJ0b29sYmFycy1idXR0b24tbWVudSBcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSA/IHRoaXMucHJvcHMuY2xhc3NOYW1lIDogJycpIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHtcbiAgICAgICAgICAgICAgICByZWY6ICdtZW51QnV0dG9uJyxcbiAgICAgICAgICAgICAgICB0b29sdGlwOiB0aGlzLnByb3BzLmJ1dHRvblRpdGxlLFxuICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWU6IHRoaXMucHJvcHMuYnV0dG9uQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRoaXMuc2hvd1BvcG92ZXIuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBpY29uU3R5bGU6IHRoaXMucHJvcHMuYnV0dG9uU3R5bGVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBQb3BvdmVyLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb3BlbjogdGhpcy5zdGF0ZS5zaG93UG9wb3ZlcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IHRoaXMuc3RhdGUuYW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW46IHsgaG9yaXpvbnRhbDogdGhpcy5wcm9wcy5kaXJlY3Rpb24gfHwgJ3JpZ2h0JywgdmVydGljYWw6ICdib3R0b20nIH0sXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiB0aGlzLnByb3BzLmRpcmVjdGlvbiB8fCAncmlnaHQnLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgc2hvd1BvcG92ZXI6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB1c2VMYXllckZvckNsaWNrQXdheTogZmFsc2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMucG9wb3ZlckNvbnRlbnRcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEljb25CdXR0b25Qb3BvdmVyO1xufSkoUmVhY3QuQ29tcG9uZW50KTtcblxuSWNvbkJ1dHRvblBvcG92ZXIucHJvcFR5cGVzID0ge1xuICAgIGJ1dHRvblRpdGxlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgYnV0dG9uQ2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRpcmVjdGlvbjogUmVhY3QuUHJvcFR5cGVzLm9uZU9mKFsncmlnaHQnLCAnbGVmdCddKSxcbiAgICBwb3BvdmVyQ29udGVudDogUmVhY3QuUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJY29uQnV0dG9uUG9wb3Zlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfVXRpbHMgPSByZXF1aXJlKCcuL1V0aWxzJyk7XG5cbnZhciBfVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXRpbHMpO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIENvbnRyb2xsZXIgPSByZXF1aXJlKCdweWRpby9tb2RlbC9jb250cm9sbGVyJyk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChDb21wb25lbnQpIHtcbiAgICB2YXIgV3JhcHBlZCA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgICAgICBfaW5oZXJpdHMoV3JhcHBlZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICAgICAgZnVuY3Rpb24gV3JhcHBlZChwcm9wcywgY29udGV4dCkge1xuICAgICAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFdyYXBwZWQpO1xuXG4gICAgICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBtZW51SXRlbXM6IHRoaXMucHJvcHMubWVudUl0ZW1zIHx8IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgV3JhcHBlZC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2xsZXIgJiYgIXRoaXMucHJvcHMubWVudUl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhY3Rpb25zID0gX3RoaXMucHJvcHMuY29udHJvbGxlci5nZXRDb250ZXh0QWN0aW9ucygnZ2VuZXJpY0NvbnRleHQnLCBudWxsLCBfdGhpcy5wcm9wcy50b29sYmFycyk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtZW51SXRlbXMgPSBfVXRpbHMyWydkZWZhdWx0J10ucHlkaW9BY3Rpb25zVG9JdGVtcyhhY3Rpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBtZW51SXRlbXM6IG1lbnVJdGVtcyB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2xsZXIgPT09IHRoaXMucHJvcHMucHlkaW8uQ29udHJvbGxlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnB5ZGlvLm9ic2VydmUoXCJhY3Rpb25zX3JlZnJlc2hlZFwiLCB0aGlzLl9vYnNlcnZlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5jb250cm9sbGVyLm9ic2VydmUoXCJhY3Rpb25zX3JlZnJlc2hlZFwiLCB0aGlzLl9vYnNlcnZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX29ic2VydmVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgV3JhcHBlZC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9vYnNlcnZlcikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2xsZXIgPT09IHRoaXMucHJvcHMucHlkaW8uQ29udHJvbGxlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnB5ZGlvLnN0b3BPYnNlcnZpbmcoXCJhY3Rpb25zX3JlZnJlc2hlZFwiLCB0aGlzLl9vYnNlcnZlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5jb250cm9sbGVyLnN0b3BPYnNlcnZpbmcoXCJhY3Rpb25zX3JlZnJlc2hlZFwiLCB0aGlzLl9vYnNlcnZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIFdyYXBwZWQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICAgICAgaWYgKG5leHRQcm9wcy5tZW51SXRlbXMgJiYgbmV4dFByb3BzLm1lbnVJdGVtcyAhPT0gdGhpcy5wcm9wcy5tZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWVudUl0ZW1zOiBuZXh0UHJvcHMubWVudUl0ZW1zIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIFdyYXBwZWQucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHsgbWVudUl0ZW1zOiB0aGlzLnN0YXRlLm1lbnVJdGVtcyB9KSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIFdyYXBwZWQ7XG4gICAgfSkoUmVhY3QuQ29tcG9uZW50KTtcblxuICAgIFdyYXBwZWQucHJvcFR5cGVzID0ge1xuICAgICAgICBtZW51SXRlbXM6IFJlYWN0LlByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgdG9vbGJhcnM6IFJlYWN0LlByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgY29udHJvbGxlcjogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoQ29udHJvbGxlciksXG4gICAgICAgIHB5ZGlvOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpbylcbiAgICB9O1xuXG4gICAgcmV0dXJuIFdyYXBwZWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfVXRpbHMgPSByZXF1aXJlKCcuL1V0aWxzJyk7XG5cbnZhciBfVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXRpbHMpO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIFJlYWN0RE9NID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBNZW51ID0gX3JlcXVpcmUuTWVudTtcbnZhciBQYXBlciA9IF9yZXF1aXJlLlBhcGVyO1xuZXhwb3J0c1snZGVmYXVsdCddID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnUG9wdXBNZW51JyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBtZW51SXRlbXM6IFJlYWN0LlByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICBvbkV4dGVybmFsQ2xpY2tDaGVja0VsZW1lbnRzOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBzdHlsZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgb25NZW51Q2xvc2VkOiBSZWFjdC5Qcm9wVHlwZXMuZnVuY1xuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHsgc2hvd01lbnU6IGZhbHNlLCBtZW51SXRlbXM6IHRoaXMucHJvcHMubWVudUl0ZW1zIH07XG4gICAgfSxcbiAgICBzaG93TWVudTogZnVuY3Rpb24gc2hvd01lbnUoKSB7XG4gICAgICAgIHZhciBzdHlsZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMF07XG4gICAgICAgIHZhciBtZW51SXRlbXMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2hvd01lbnU6IHRydWUsXG4gICAgICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgICAgICBtZW51SXRlbXM6IG1lbnVJdGVtcyA/IG1lbnVJdGVtcyA6IHRoaXMuc3RhdGUubWVudUl0ZW1zXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgaGlkZU1lbnU6IGZ1bmN0aW9uIGhpZGVNZW51KGV2ZW50KSB7XG4gICAgICAgIGlmICghZXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93TWVudTogZmFsc2UgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbk1lbnVDbG9zZWQpIHRoaXMucHJvcHMub25NZW51Q2xvc2VkKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRmlyZWZveCB0cmlnZ2VyIGEgY2xpY2sgZXZlbnQgd2hlbiB5b3UgbW91c2UgdXAgb24gY29udGV4dG1lbnUgZXZlbnRcbiAgICAgICAgaWYgKHR5cGVvZiBldmVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZXZlbnQuYnV0dG9uID09PSAyICYmIGV2ZW50LnR5cGUgIT09ICdjb250ZXh0bWVudScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbm9kZSA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMucmVmcy5tZW51Q29udGFpbmVyKTtcbiAgICAgICAgaWYgKG5vZGUuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fCBub2RlID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93TWVudTogZmFsc2UgfSk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uTWVudUNsb3NlZCkgdGhpcy5wcm9wcy5vbk1lbnVDbG9zZWQoKTtcbiAgICB9LFxuICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5fb2JzZXJ2ZXIgPSB0aGlzLmhpZGVNZW51O1xuICAgIH0sXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX29ic2VydmVyLCBmYWxzZSk7XG4gICAgfSxcbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICBpZiAobmV4dFByb3BzLm1lbnVJdGVtcykge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1lbnVJdGVtczogbmV4dFByb3BzLm1lbnVJdGVtcyB9KTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgY29tcG9uZW50RGlkVXBkYXRlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBuZXh0UHJvcHMpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2hvd01lbnUpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb2JzZXJ2ZXIsIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb2JzZXJ2ZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBtZW51Q2xpY2tlZDogZnVuY3Rpb24gbWVudUNsaWNrZWQoZXZlbnQsIGluZGV4LCBtZW51SXRlbSkge1xuICAgICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgfSxcbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcblxuICAgICAgICB2YXIgc3R5bGUgPSB0aGlzLnN0YXRlLnN0eWxlIHx8IHt9O1xuICAgICAgICBzdHlsZSA9IF9leHRlbmRzKHt9LCBzdHlsZSwgeyB6SW5kZXg6IDEwMDAgfSk7XG4gICAgICAgIHZhciBtZW51ID0gX1V0aWxzMlsnZGVmYXVsdCddLml0ZW1zVG9NZW51KHRoaXMuc3RhdGUubWVudUl0ZW1zLCB0aGlzLm1lbnVDbGlja2VkLCBmYWxzZSwgX2V4dGVuZHMoeyBkZXNrdG9wOiB0cnVlLCBkaXNwbGF5OiAncmlnaHQnLCB3aWR0aDogMjUwIH0sIHRoaXMucHJvcHMubWVudVByb3BzKSk7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNob3dNZW51KSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBQYXBlcixcbiAgICAgICAgICAgICAgICB7IHpEZXB0aDogdGhpcy5wcm9wcy56RGVwdGggfHwgMSwgcmVmOiAnbWVudUNvbnRhaW5lcicsIGNsYXNzTmFtZTogJ21lbnUtcG9zaXRpb25lcicsIHN0eWxlOiBzdHlsZSB9LFxuICAgICAgICAgICAgICAgIG1lbnVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxufSk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9VdGlscyA9IHJlcXVpcmUoJy4vVXRpbHMnKTtcblxudmFyIF9VdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9VdGlscyk7XG5cbnZhciBfSWNvbkJ1dHRvbk1lbnUgPSByZXF1aXJlKCcuL0ljb25CdXR0b25NZW51Jyk7XG5cbnZhciBfSWNvbkJ1dHRvbk1lbnUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWNvbkJ1dHRvbk1lbnUpO1xuXG52YXIgX0J1dHRvbk1lbnUgPSByZXF1aXJlKCcuL0J1dHRvbk1lbnUnKTtcblxudmFyIF9CdXR0b25NZW51MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0J1dHRvbk1lbnUpO1xuXG52YXIgX0J1dHRvbkNvbXBvc2VkID0gcmVxdWlyZSgnLi9CdXR0b25Db21wb3NlZCcpO1xuXG52YXIgX0J1dHRvbkNvbXBvc2VkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0J1dHRvbkNvbXBvc2VkKTtcblxudmFyIF9JY29uQnV0dG9uUG9wb3ZlciA9IHJlcXVpcmUoJy4vSWNvbkJ1dHRvblBvcG92ZXInKTtcblxudmFyIF9JY29uQnV0dG9uUG9wb3ZlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JY29uQnV0dG9uUG9wb3Zlcik7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdUb29sYmFyJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICB0b29sYmFyczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgZ3JvdXBPdGhlckxpc3Q6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIHJlbmRlcmluZ1R5cGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBjb250cm9sbGVyOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoQ29udHJvbGxlciksXG4gICAgICAgIHRvb2xiYXJTdHlsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIGJ1dHRvblN0eWxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgZmFiQWN0aW9uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgYnV0dG9uTWVudU5vTGFiZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbFxuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuX29ic2VydmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgZ3JvdXBzOiB0aGlzLnByb3BzLmNvbnRyb2xsZXIuZ2V0VG9vbGJhcnNBY3Rpb25zKHRoaXMucHJvcHMudG9vbGJhcnMsIHRoaXMucHJvcHMuZ3JvdXBPdGhlckxpc3QpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY29udHJvbGxlciA9PT0gcHlkaW8uQ29udHJvbGxlcikge1xuICAgICAgICAgICAgcHlkaW8ub2JzZXJ2ZShcImFjdGlvbnNfcmVmcmVzaGVkXCIsIHRoaXMuX29ic2VydmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY29udHJvbGxlci5vYnNlcnZlKFwiYWN0aW9uc19yZWZyZXNoZWRcIiwgdGhpcy5fb2JzZXJ2ZXIpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY29udHJvbGxlciA9PT0gcHlkaW8uQ29udHJvbGxlcikge1xuICAgICAgICAgICAgcHlkaW8uc3RvcE9ic2VydmluZyhcImFjdGlvbnNfcmVmcmVzaGVkXCIsIHRoaXMuX29ic2VydmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY29udHJvbGxlci5zdG9wT2JzZXJ2aW5nKFwiYWN0aW9uc19yZWZyZXNoZWRcIiwgdGhpcy5fb2JzZXJ2ZXIpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmIChuZXh0UHJvcHMudG9vbGJhcnMgIT09IHRoaXMucHJvcHMudG9vbGJhcnMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGdyb3VwczogdGhpcy5wcm9wcy5jb250cm9sbGVyLmdldFRvb2xiYXJzQWN0aW9ucyhuZXh0UHJvcHMudG9vbGJhcnMsIG5leHRQcm9wcy5ncm91cE90aGVyTGlzdClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ3JvdXBzOiB0aGlzLnByb3BzLmNvbnRyb2xsZXIuZ2V0VG9vbGJhcnNBY3Rpb25zKHRoaXMucHJvcHMudG9vbGJhcnMsIHRoaXMucHJvcHMuZ3JvdXBPdGhlckxpc3QpXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gZ2V0RGVmYXVsdFByb3BzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udHJvbGxlcjogZ2xvYmFsLnB5ZGlvLkNvbnRyb2xsZXIsXG4gICAgICAgICAgICByZW5kZXJpbmdUeXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgIGdyb3VwT3RoZXJMaXN0OiBbXVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIGdyb3VwcyA9IHRoaXMuc3RhdGUuZ3JvdXBzO1xuXG4gICAgICAgIHZhciBhY3Rpb25zID0gW107XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgdG9vbGJhcnMgPSBfcHJvcHMudG9vbGJhcnM7XG4gICAgICAgIHZhciByZW5kZXJpbmdUeXBlID0gX3Byb3BzLnJlbmRlcmluZ1R5cGU7XG4gICAgICAgIHZhciBncm91cE90aGVyTGlzdCA9IF9wcm9wcy5ncm91cE90aGVyTGlzdDtcbiAgICAgICAgdmFyIGJ1dHRvblN0eWxlID0gX3Byb3BzLmJ1dHRvblN0eWxlO1xuICAgICAgICB2YXIgdG9vbHRpcFBvc2l0aW9uID0gX3Byb3BzLnRvb2x0aXBQb3NpdGlvbjtcbiAgICAgICAgdmFyIGNvbnRyb2xsZXIgPSBfcHJvcHMuY29udHJvbGxlcjtcbiAgICAgICAgdmFyIGZhYkFjdGlvbiA9IF9wcm9wcy5mYWJBY3Rpb247XG4gICAgICAgIHZhciB0b29sYmFyU3R5bGUgPSBfcHJvcHMudG9vbGJhclN0eWxlO1xuICAgICAgICB2YXIgYnV0dG9uTWVudU5vTGFiZWwgPSBfcHJvcHMuYnV0dG9uTWVudU5vTGFiZWw7XG4gICAgICAgIHZhciBidXR0b25NZW51UG9wb3ZlckRpcmVjdGlvbiA9IF9wcm9wcy5idXR0b25NZW51UG9wb3ZlckRpcmVjdGlvbjtcbiAgICAgICAgdmFyIGZsYXRCdXR0b25TdHlsZSA9IF9wcm9wcy5mbGF0QnV0dG9uU3R5bGU7XG5cbiAgICAgICAgdmFyIGFsbFRvb2xiYXJzID0gW10uY29uY2F0KHRvb2xiYXJzKTtcbiAgICAgICAgaWYgKGdyb3VwT3RoZXJMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgYWxsVG9vbGJhcnMgPSBhbGxUb29sYmFycy5jb25jYXQoWydNT1JFX0FDVElPTiddKTtcbiAgICAgICAgfVxuICAgICAgICBhbGxUb29sYmFycy5tYXAoZnVuY3Rpb24gKGJhck5hbWUpIHtcbiAgICAgICAgICAgIGlmICghZ3JvdXBzLmhhcyhiYXJOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdyb3Vwcy5nZXQoYmFyTmFtZSkubWFwKGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uLmRlbnkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgbWVudUl0ZW1zID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBwb3BvdmVyQ29udGVudCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgbWVudVRpdGxlID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBtZW51SWNvbiA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zVXNlTWFzdGVyQWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHZhciBhY3Rpb25OYW1lID0gYWN0aW9uLm9wdGlvbnMubmFtZTtcblxuICAgICAgICAgICAgICAgIG1lbnVUaXRsZSA9IHB5ZGlvLk1lc3NhZ2VIYXNoW2FjdGlvbi5vcHRpb25zLnRleHRfaWRdIHx8IGFjdGlvbi5vcHRpb25zLnRleHQ7XG4gICAgICAgICAgICAgICAgbWVudUljb24gPSBhY3Rpb24ub3B0aW9ucy5pY29uX2NsYXNzO1xuXG4gICAgICAgICAgICAgICAgaWYgKGJhck5hbWUgPT09ICdNT1JFX0FDVElPTicpIHtcbiAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdWJJdGVtcyA9IGFjdGlvbi5zdWJNZW51SXRlbXMuZHluYW1pY0l0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1zID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJJdGVtcy5tYXAoZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvYmouc2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2gob2JqKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9iai5hY3Rpb25JZCAmJiAhb2JqLmFjdGlvbklkLmRlbnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaChvYmouYWN0aW9uSWQuZ2V0TWVudURhdGEoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXMgPSBfVXRpbHMyWydkZWZhdWx0J10ucHlkaW9BY3Rpb25zVG9JdGVtcyhpdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZW51SWNvbiA9IFwibWRpIG1kaS1kb3RzLXZlcnRpY2FsXCI7XG4gICAgICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24uc3ViTWVudUl0ZW1zLnN0YXRpY0l0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtcyA9IF9VdGlsczJbJ2RlZmF1bHQnXS5weWRpb0FjdGlvbnNUb0l0ZW1zKGFjdGlvbi5zdWJNZW51SXRlbXMuc3RhdGljSXRlbXMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlcikge1xuICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXMgPSBfVXRpbHMyWydkZWZhdWx0J10ucHlkaW9BY3Rpb25zVG9JdGVtcyhhY3Rpb24uc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyKGNvbnRyb2xsZXIpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5zdWJNZW51SXRlbXMucG9wb3ZlckNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9wb3ZlckNvbnRlbnQgPSBhY3Rpb24uc3ViTWVudUl0ZW1zLnBvcG92ZXJDb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVudUl0ZW1zICYmIGFjdGlvbi5zdWJNZW51SXRlbXMubWFzdGVyQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFzdGVyQWN0aW9uID0gY29udHJvbGxlci5nZXRBY3Rpb25CeU5hbWUoYWN0aW9uLnN1Yk1lbnVJdGVtcy5tYXN0ZXJBY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hc3RlckFjdGlvbiAmJiAhbWFzdGVyQWN0aW9uLmRlbnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNVc2VNYXN0ZXJBY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc3RlckFjdGlvbi5hcHBseSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBpZCA9ICdhY3Rpb24tJyArIGFjdGlvbi5vcHRpb25zLm5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKHJlbmRlcmluZ1R5cGUgPT09ICdidXR0b24taWNvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVudVRpdGxlID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ2J1dHRvbi1pY29uJyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IGNsYXNzTmFtZTogXCJidXR0b24taWNvbi1pY29uIFwiICsgbWVudUljb24gfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdidXR0b24taWNvbi1sYWJlbCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51VGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG1lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVuZGVyaW5nVHlwZSA9PT0gJ2J1dHRvbicgfHwgcmVuZGVyaW5nVHlwZSA9PT0gJ2J1dHRvbi1pY29uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lbnVJdGVtc1VzZU1hc3RlckFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfQnV0dG9uQ29tcG9zZWQyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBhY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25UaXRsZTogbWVudVRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXM6IG1lbnVJdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzdGVyQWN0aW9uOiBtZW51SXRlbXNVc2VNYXN0ZXJBY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbkxhYmVsU3R5bGU6IGJ1dHRvblN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGJ1dHRvbk1lbnVQb3BvdmVyRGlyZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX0J1dHRvbk1lbnUyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBhY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25UaXRsZTogYnV0dG9uTWVudU5vTGFiZWwgPyAnJyA6IG1lbnVUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zOiBtZW51SXRlbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbkxhYmVsU3R5bGU6IGJ1dHRvblN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGJ1dHRvbk1lbnVQb3BvdmVyRGlyZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9JY29uQnV0dG9uTWVudTJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogYWN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVudUNsaWNrZWQ6IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LnBheWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbkNsYXNzTmFtZTogbWVudUljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVGl0bGU6IG1lbnVUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXM6IG1lbnVJdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25TdHlsZTogYnV0dG9uU3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3ZlckRpcmVjdGlvbjogYnV0dG9uTWVudVBvcG92ZXJEaXJlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocG9wb3ZlckNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9JY29uQnV0dG9uUG9wb3ZlcjJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBhY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbkNsYXNzTmFtZTogbWVudUljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25UaXRsZTogbWVudVRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU6IGJ1dHRvblN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3ZlckNvbnRlbnQ6IHBvcG92ZXJDb250ZW50XG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2xpY2sgPSBmdW5jdGlvbiBjbGljaygpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5hcHBseSgpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmFiQWN0aW9uICYmIGZhYkFjdGlvbiA9PT0gYWN0aW9uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZsb2F0aW5nQWN0aW9uQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBhY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGNsaWNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWU6IG1lbnVJY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0b29sYmFyU3R5bGUuYmFja2dyb3VuZENvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCB0b3A6IC0yMCwgbGVmdDogMTAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlbmRlcmluZ1R5cGUgPT09ICdidXR0b24taWNvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChSZWFjdE1VSS5GbGF0QnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBhY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFRhcDogY2xpY2ssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IG1lbnVUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbFN0eWxlOiBidXR0b25TdHlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlbmRlcmluZ1R5cGUgPT09ICdidXR0b24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRmxhdEJ1dHRvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogYWN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGNsaWNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBtZW51VGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxTdHlsZTogYnV0dG9uU3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGZsYXRCdXR0b25TdHlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGFjdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogbWVudUljb24gKyAnICcgKyBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3R5bGU6IGJ1dHRvblN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGNsaWNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IG1lbnVUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb246IHRvb2x0aXBQb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY05hbWUgPSB0aGlzLnByb3BzLmNsYXNzTmFtZSA/IHRoaXMucHJvcHMuY2xhc3NOYW1lIDogJyc7XG4gICAgICAgIGNOYW1lICs9ICcgJyArICd0b29sYmFyJztcbiAgICAgICAgaWYgKCFhY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgY05hbWUgKz0gJyBlbXB0eS10b29sYmFyJztcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3R5bGUgPSBfZXh0ZW5kcyh7fSwgdG9vbGJhclN0eWxlKTtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogY05hbWUsIHN0eWxlOiBzdHlsZSwgaWQ6IHRoaXMucHJvcHMuaWQgfSxcbiAgICAgICAgICAgIGFjdGlvbnNcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG5mdW5jdGlvbiBweWRpb0FjdGlvbnNUb0l0ZW1zKCkge1xuICAgIHZhciBhY3Rpb25zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gW10gOiBhcmd1bWVudHNbMF07XG5cbiAgICB2YXIgaXRlbXMgPSBbXTtcbiAgICB2YXIgbGFzdElzU2VwYXJhdG9yID0gZmFsc2U7XG4gICAgdmFyIG1lc3NhZ2VzID0gX3B5ZGlvMlsnZGVmYXVsdCddLmdldE1lc3NhZ2VzKCk7XG5cbiAgICBhY3Rpb25zLm1hcCgoZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICBpZiAoYWN0aW9uLnNlcGFyYXRvcikge1xuICAgICAgICAgICAgaWYgKGxhc3RJc1NlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZW1zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgIGxhc3RJc1NlcGFyYXRvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGFzdElzU2VwYXJhdG9yID0gZmFsc2U7XG4gICAgICAgIHZhciBsYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGFjdGlvbi5sYWJlbF9pZCAmJiBtZXNzYWdlc1thY3Rpb24ubGFiZWxfaWRdKSB7XG4gICAgICAgICAgICBsYWJlbCA9IG1lc3NhZ2VzW2FjdGlvbi5sYWJlbF9pZF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsYWJlbCA9IGFjdGlvbi5yYXdfbmFtZSA/IGFjdGlvbi5yYXdfbmFtZSA6IGFjdGlvbi5uYW1lO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpY29uQ2xhc3MgPSBhY3Rpb24uaWNvbl9jbGFzcztcbiAgICAgICAgaWYgKGFjdGlvbi5zdWJNZW51KSB7XG4gICAgICAgICAgICB2YXIgc3ViSXRlbXMgPSBhY3Rpb24uc3ViTWVudUJlZm9yZVNob3cgPyBweWRpb0FjdGlvbnNUb0l0ZW1zKGFjdGlvbi5zdWJNZW51QmVmb3JlU2hvdygpKSA6IGFjdGlvbi5zdWJNZW51O1xuICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgdGV4dDogbGFiZWwsXG4gICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogaWNvbkNsYXNzLFxuICAgICAgICAgICAgICAgIHN1Ykl0ZW1zOiBzdWJJdGVtc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBsYWJlbCxcbiAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiBpY29uQ2xhc3MsXG4gICAgICAgICAgICAgICAgcGF5bG9hZDogYWN0aW9uLmNhbGxiYWNrXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pLmJpbmQodGhpcykpO1xuICAgIGlmIChsYXN0SXNTZXBhcmF0b3IpIHtcbiAgICAgICAgaXRlbXMgPSBpdGVtcy5zbGljZSgwLCBpdGVtcy5sZW5ndGggLSAxKTtcbiAgICB9XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCAmJiBpdGVtc1swXSAmJiBpdGVtc1swXS5zZXBhcmF0b3IpIHtcbiAgICAgICAgaXRlbXMuc2hpZnQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zO1xufVxuXG5mdW5jdGlvbiBpdGVtc1RvTWVudShpdGVtcywgY2xvc2VNZW51Q2FsbGJhY2spIHtcbiAgICB2YXIgc3ViSXRlbXNPbmx5ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMl07XG4gICAgdmFyIG1lbnVQcm9wcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzNdO1xuXG4gICAgbWVudVByb3BzID0gX2V4dGVuZHMoe1xuICAgICAgICBkaXNwbGF5OiAnbm9ybWFsJyxcbiAgICAgICAgd2lkdGg6IDIxNixcbiAgICAgICAgZGVza3RvcDogdHJ1ZSxcbiAgICAgICAgYXV0b1dpZHRoOiBmYWxzZVxuICAgIH0sIG1lbnVQcm9wcyk7XG5cbiAgICB2YXIgbWVudUl0ZW1zID0gaXRlbXMubWFwKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkge1xuXG4gICAgICAgIGlmIChpdGVtLnNlcGFyYXRvcikge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRGl2aWRlciwgeyBrZXk6IFwiZGl2aWRlclwiICsgaW5kZXggfSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc3ViSXRlbXMgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYXlsb2FkID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoaXRlbS5zdWJJdGVtcykge1xuICAgICAgICAgICAgc3ViSXRlbXMgPSBpdGVtc1RvTWVudShpdGVtLnN1Ykl0ZW1zLCBjbG9zZU1lbnVDYWxsYmFjaywgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5wYXlsb2FkKSB7XG4gICAgICAgICAgICBwYXlsb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGl0ZW0ucGF5bG9hZCgpO1xuICAgICAgICAgICAgICAgIGNsb3NlTWVudUNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGxlZnRJY29uID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgcmlnaHRJY29uID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgaWNvbkNsYXNzTmFtZSA9IGl0ZW0uaWNvbkNsYXNzTmFtZTt2YXIgaW5zZXQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGljb25DbGFzc05hbWUgPT09ICdfX0lOU0VUX18nKSB7XG4gICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gJyc7XG4gICAgICAgICAgICBpbnNldCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWVudVByb3BzLmRpc3BsYXkgPT09ICdub3JtYWwnKSB7XG4gICAgICAgICAgICBsZWZ0SWNvbiA9IGljb25DbGFzc05hbWUgPyBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZvbnRJY29uLCB7IGNsYXNzTmFtZTogaXRlbS5pY29uQ2xhc3NOYW1lICsgJyBtZW51LWljb25zJywgc3R5bGU6IHsgZm9udFNpemU6IDE2LCBwYWRkaW5nOiA1IH0gfSkgOiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKG1lbnVQcm9wcy5kaXNwbGF5ID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICByaWdodEljb24gPSBpY29uQ2xhc3NOYW1lID8gUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5Gb250SWNvbiwgeyBjbGFzc05hbWU6IGl0ZW0uaWNvbkNsYXNzTmFtZSArICcgbWVudS1pY29ucycsIHN0eWxlOiB7IGZvbnRTaXplOiAxNiwgcGFkZGluZzogNSB9IH0pIDogbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByaWdodEljb24gPSBzdWJJdGVtcyAmJiBzdWJJdGVtcy5sZW5ndGggPyBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZvbnRJY29uLCB7IGNsYXNzTmFtZTogJ21kaSBtZGktbWVudS1yaWdodCBtZW51LWljb25zJyB9KSA6IHJpZ2h0SWNvbjtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5NZW51SXRlbSwge1xuICAgICAgICAgICAga2V5OiBpdGVtLnRleHQsXG4gICAgICAgICAgICBwcmltYXJ5VGV4dDogaXRlbS50ZXh0LFxuICAgICAgICAgICAgaW5zZXRDaGlsZHJlbjogaW5zZXQsXG4gICAgICAgICAgICBsZWZ0SWNvbjogbGVmdEljb24sXG4gICAgICAgICAgICByaWdodEljb246IHJpZ2h0SWNvbixcbiAgICAgICAgICAgIG9uVG91Y2hUYXA6IHBheWxvYWQsXG4gICAgICAgICAgICBtZW51SXRlbXM6IHN1Ykl0ZW1zXG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaWYgKHN1Ykl0ZW1zT25seSkge1xuICAgICAgICByZXR1cm4gbWVudUl0ZW1zO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgX21hdGVyaWFsVWkuTWVudSxcbiAgICAgICAgICAgIG1lbnVQcm9wcyxcbiAgICAgICAgICAgIG1lbnVJdGVtc1xuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0c1snZGVmYXVsdCddID0geyBweWRpb0FjdGlvbnNUb0l0ZW1zOiBweWRpb0FjdGlvbnNUb0l0ZW1zLCBpdGVtc1RvTWVudTogaXRlbXNUb01lbnUgfTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTggQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9tYXRlcmlhbFVpU3R5bGVzID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWkvc3R5bGVzJyk7XG5cbnZhciBfcHlkaW9IdHRwUG9saWNpZXMgPSByZXF1aXJlKCdweWRpby9odHRwL3BvbGljaWVzJyk7XG5cbnZhciBfcHlkaW9IdHRwUG9saWNpZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9IdHRwUG9saWNpZXMpO1xuXG52YXIgX3B5ZGlvSHR0cFVzZXJzQXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC91c2Vycy1hcGknKTtcblxudmFyIF9weWRpb0h0dHBSZXN0QXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC9yZXN0LWFwaScpO1xuXG52YXIgX3B5ZGlvMiA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8yKTtcblxudmFyIF9weWRpb0h0dHBBcGkgPSByZXF1aXJlKCdweWRpby9odHRwL2FwaScpO1xuXG52YXIgX3B5ZGlvSHR0cEFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb0h0dHBBcGkpO1xuXG52YXIgX3VzZXJzVXNlcnNDb21wbGV0ZXIgPSByZXF1aXJlKCcuLi91c2Vycy9Vc2Vyc0NvbXBsZXRlcicpO1xuXG52YXIgX3VzZXJzVXNlcnNDb21wbGV0ZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXNlcnNVc2Vyc0NvbXBsZXRlcik7XG5cbnZhciBSZXNvdXJjZVBvbGljaWVzUGFuZWwgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoUmVzb3VyY2VQb2xpY2llc1BhbmVsLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFJlc291cmNlUG9saWNpZXNQYW5lbChwcm9wcykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzb3VyY2VQb2xpY2llc1BhbmVsKTtcblxuICAgICAgICBpZiAoIXByb3BzLnN1YmplY3RzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHByb3BzLnN1YmplY3RzRGlzYWJsZWQgPSB7ICdSRUFEJzoge30sICdXUklURSc6IHt9IH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BzLmNlbGxBY2xzKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhwcm9wcy5jZWxsQWNscykubWFwKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLmNlbGxBY2xzW2tdLlJvbGVJZCkge1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5zdWJqZWN0c0Rpc2FibGVkWydSRUFEJ11bXCJyb2xlOlwiICsgcHJvcHMuY2VsbEFjbHNba10uUm9sZUlkXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICAgICAgICBwb2xpY2llczogW10sXG4gICAgICAgICAgICBkaWZmUG9saWNpZXM6IHsgYWRkOiB7fSwgcmVtb3ZlOiB7fSB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9O1xuXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsLnByb3RvdHlwZS5yZWxvYWQgPSBmdW5jdGlvbiByZWxvYWQoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciByZXNvdXJjZVR5cGUgPSBfcHJvcHMucmVzb3VyY2VUeXBlO1xuICAgICAgICB2YXIgcmVzb3VyY2VJZCA9IF9wcm9wcy5yZXNvdXJjZUlkO1xuICAgICAgICB2YXIgX3B5ZGlvID0gcHlkaW87XG4gICAgICAgIHZhciB1c2VyID0gX3B5ZGlvLnVzZXI7XG5cbiAgICAgICAgdmFyIHByb21zID0gW19weWRpb0h0dHBQb2xpY2llczJbJ2RlZmF1bHQnXS5sb2FkUG9saWNpZXMocmVzb3VyY2VUeXBlLCByZXNvdXJjZUlkKSwgdXNlci5nZXRJZG1Vc2VyKCldO1xuICAgICAgICBpZiAocmVzb3VyY2VUeXBlICE9PSAndGVhbScpIHtcbiAgICAgICAgICAgIHByb21zLnB1c2goX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkubGlzdFRlYW1zKCkpO1xuICAgICAgICB9XG4gICAgICAgIFByb21pc2UuYWxsKHByb21zKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHZhciBwb2xpY2llcyA9IHJlc3VsdFswXTtcbiAgICAgICAgICAgIHZhciByZXNvdXJjZVV1aWQgPSBwb2xpY2llc1swXS5SZXNvdXJjZTtcbiAgICAgICAgICAgIHZhciBpZG1Vc2VyID0gcmVzdWx0WzFdO1xuICAgICAgICAgICAgdmFyIHRlYW1zID0gW107XG4gICAgICAgICAgICBpZiAocmVzb3VyY2VUeXBlICE9PSAndGVhbScgJiYgcmVzdWx0WzJdKSB7XG4gICAgICAgICAgICAgICAgdGVhbXMgPSByZXN1bHRbMl0uVGVhbXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgcG9saWNpZXM6IHBvbGljaWVzLFxuICAgICAgICAgICAgICAgIGlkbVVzZXI6IGlkbVVzZXIsXG4gICAgICAgICAgICAgICAgdXNlclRlYW1zOiB0ZWFtcyxcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXNvdXJjZVV1aWQ6IHJlc291cmNlVXVpZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBlcnJvcjogZXJyb3IubWVzc2FnZSwgbG9hZGluZzogZmFsc2UgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLnJldmVydCA9IGZ1bmN0aW9uIHJldmVydCgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRpcnR5UG9saWNpZXM6IG51bGwsIGRpZmZQb2xpY2llczogeyBhZGQ6IHt9LCByZW1vdmU6IHt9IH0gfSk7XG4gICAgfTtcblxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbC5wcm90b3R5cGUuc2F2ZSA9IGZ1bmN0aW9uIHNhdmUoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfc3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgICAgICB2YXIgZGlydHlQb2xpY2llcyA9IF9zdGF0ZS5kaXJ0eVBvbGljaWVzO1xuICAgICAgICB2YXIgZGlmZlBvbGljaWVzID0gX3N0YXRlLmRpZmZQb2xpY2llcztcbiAgICAgICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcmVzb3VyY2VUeXBlID0gX3Byb3BzMi5yZXNvdXJjZVR5cGU7XG4gICAgICAgIHZhciByZXNvdXJjZUlkID0gX3Byb3BzMi5yZXNvdXJjZUlkO1xuICAgICAgICB2YXIgb25TYXZlUG9saWNpZXMgPSBfcHJvcHMyLm9uU2F2ZVBvbGljaWVzO1xuXG4gICAgICAgIF9weWRpb0h0dHBQb2xpY2llczJbJ2RlZmF1bHQnXS5zYXZlUG9saWNpZXMocmVzb3VyY2VUeXBlLCByZXNvdXJjZUlkLCBkaXJ0eVBvbGljaWVzKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHBvbGljaWVzOiByZXN1bHQsIGRpcnR5UG9saWNpZXM6IG51bGwsIGRpZmZQb2xpY2llczogeyBhZGQ6IHt9LCByZW1vdmU6IHt9IH0gfSk7XG4gICAgICAgICAgICBpZiAob25TYXZlUG9saWNpZXMpIHtcbiAgICAgICAgICAgICAgICBvblNhdmVQb2xpY2llcyhkaWZmUG9saWNpZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBlcnJvcjogcmVhc29uLm1lc3NhZ2UgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvL2NvbnNvbGUubG9nKGRpcnR5UG9saWNpZXMsIGRpZmZQb2xpY2llcyk7XG4gICAgfTtcblxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbC5wcm90b3R5cGUucmVtb3ZlUG9saWN5ID0gZnVuY3Rpb24gcmVtb3ZlUG9saWN5KGFjdGlvbiwgc3ViamVjdCkge1xuICAgICAgICB2YXIgX3N0YXRlMiA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciBwb2xpY2llcyA9IF9zdGF0ZTIucG9saWNpZXM7XG4gICAgICAgIHZhciBkaXJ0eVBvbGljaWVzID0gX3N0YXRlMi5kaXJ0eVBvbGljaWVzO1xuICAgICAgICB2YXIgZGlmZlBvbGljaWVzID0gX3N0YXRlMi5kaWZmUG9saWNpZXM7XG5cbiAgICAgICAgaWYgKGRpcnR5UG9saWNpZXMpIHtcbiAgICAgICAgICAgIHBvbGljaWVzID0gZGlydHlQb2xpY2llcztcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmV3UG9saWNpZXMgPSBbXTtcbiAgICAgICAgcG9saWNpZXMubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICAgICAgICBpZiAocC5BY3Rpb24gIT09IGFjdGlvbiB8fCBwLlN1YmplY3QgIT09IHN1YmplY3QpIHtcbiAgICAgICAgICAgICAgICBuZXdQb2xpY2llcy5wdXNoKHApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZGlmZlBvbGljaWVzLnJlbW92ZVthY3Rpb24gKyAnLy8vJyArIHN1YmplY3RdID0gdHJ1ZTtcbiAgICAgICAgaWYgKGRpZmZQb2xpY2llcy5hZGRbYWN0aW9uICsgJy8vLycgKyBzdWJqZWN0XSkge1xuICAgICAgICAgICAgZGVsZXRlIGRpZmZQb2xpY2llcy5hZGRbYWN0aW9uICsgJy8vLycgKyBzdWJqZWN0XTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGlydHlQb2xpY2llczogbmV3UG9saWNpZXMsIGRpZmZQb2xpY2llczogZGlmZlBvbGljaWVzIH0pO1xuICAgIH07XG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLmFkZFBvbGljeSA9IGZ1bmN0aW9uIGFkZFBvbGljeShhY3Rpb24sIHN1YmplY3QpIHtcbiAgICAgICAgdmFyIGlzUGlja2VkVXNlciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzJdO1xuICAgICAgICB2YXIgX3N0YXRlMyA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciBwb2xpY2llcyA9IF9zdGF0ZTMucG9saWNpZXM7XG4gICAgICAgIHZhciBkaXJ0eVBvbGljaWVzID0gX3N0YXRlMy5kaXJ0eVBvbGljaWVzO1xuICAgICAgICB2YXIgcmVzb3VyY2VVdWlkID0gX3N0YXRlMy5yZXNvdXJjZVV1aWQ7XG4gICAgICAgIHZhciBkaWZmUG9saWNpZXMgPSBfc3RhdGUzLmRpZmZQb2xpY2llcztcblxuICAgICAgICB2YXIgbmV3UG9saWNpZXMgPSBkaXJ0eVBvbGljaWVzID8gW10uY29uY2F0KGRpcnR5UG9saWNpZXMpIDogW10uY29uY2F0KHBvbGljaWVzKTtcbiAgICAgICAgdmFyIG5ld1BvbCA9IG5ldyBfcHlkaW9IdHRwUmVzdEFwaS5TZXJ2aWNlUmVzb3VyY2VQb2xpY3koKTtcbiAgICAgICAgbmV3UG9sLlJlc291cmNlID0gcmVzb3VyY2VVdWlkO1xuICAgICAgICBuZXdQb2wuRWZmZWN0ID0gJ2FsbG93JztcbiAgICAgICAgbmV3UG9sLlN1YmplY3QgPSBzdWJqZWN0O1xuICAgICAgICBuZXdQb2wuQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICBuZXdQb2xpY2llcy5wdXNoKG5ld1BvbCk7XG5cbiAgICAgICAgZGlmZlBvbGljaWVzLmFkZFthY3Rpb24gKyAnLy8vJyArIHN1YmplY3RdID0gdHJ1ZTtcbiAgICAgICAgaWYgKGRpZmZQb2xpY2llcy5yZW1vdmVbYWN0aW9uICsgJy8vLycgKyBzdWJqZWN0XSkge1xuICAgICAgICAgICAgZGVsZXRlIGRpZmZQb2xpY2llcy5yZW1vdmVbYWN0aW9uICsgJy8vLycgKyBzdWJqZWN0XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNQaWNrZWRVc2VyKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGlydHlQb2xpY2llczogbmV3UG9saWNpZXMsIGRpZmZQb2xpY2llczogZGlmZlBvbGljaWVzLCBwaWNrZWRVc2VyOiBudWxsLCBwaWNrZWRMYWJlbDogbnVsbCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkaXJ0eVBvbGljaWVzOiBuZXdQb2xpY2llcywgZGlmZlBvbGljaWVzOiBkaWZmUG9saWNpZXMgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlclN1YmplY3RzXG4gICAgICogQHBhcmFtIHBvbGljaWVzXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICAgKi9cblxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbC5wcm90b3R5cGUuaGFzT25lV3JpdGUgPSBmdW5jdGlvbiBoYXNPbmVXcml0ZSh1c2VyU3ViamVjdHMsIHBvbGljaWVzKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlclN1YmplY3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHBvbGljaWVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBvbGljaWVzW2pdLlN1YmplY3QgPT09IHVzZXJTdWJqZWN0c1tpXSAmJiBwb2xpY2llc1tqXS5BY3Rpb24gPT09ICdXUklURScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaWRtVXNlclxuICAgICAqIEBwYXJhbSBwb2xpY2llc1xuICAgICAqIEByZXR1cm4ge3tncm91cEJsb2NrczogQXJyYXksIGhhc1dyaXRlOiBib29sZWFufX1cbiAgICAgKi9cblxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbC5wcm90b3R5cGUubGlzdFVzZXJSb2xlcyA9IGZ1bmN0aW9uIGxpc3RVc2VyUm9sZXMoaWRtVXNlciwgcG9saWNpZXMpIHtcbiAgICAgICAgdmFyIGNydFVzZXJTdWJqZWN0ID0gJ3VzZXI6JyArIGlkbVVzZXIuTG9naW47XG4gICAgICAgIHZhciB2YWx1ZXMgPSB7fTtcbiAgICAgICAgaWRtVXNlci5Sb2xlcy5tYXAoZnVuY3Rpb24gKHJvbGUpIHtcbiAgICAgICAgICAgIGlmICghcm9sZS5Hcm91cFJvbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YWx1ZXNbJ3JvbGU6JyArIHJvbGUuVXVpZF0gPSByb2xlLkxhYmVsO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFsdWVzW2NydFVzZXJTdWJqZWN0XSA9ICdZb3UnO1xuICAgICAgICB2YXIgaGFzV3JpdGUgPSB0aGlzLmhhc09uZVdyaXRlKE9iamVjdC5rZXlzKHZhbHVlcyksIHBvbGljaWVzKTtcbiAgICAgICAgLy8gQWRkIG90aGVyIHN1YmplY3RzXG4gICAgICAgIHZhbHVlcyA9IF9leHRlbmRzKHt9LCB0aGlzLmxpc3RPdGhlclVzZXJzU3ViamVjdHMocG9saWNpZXMsIGNydFVzZXJTdWJqZWN0KSwgdmFsdWVzKTtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZXMpO1xuICAgICAgICAvLyBCdWlsZCBMaW5lc1xuICAgICAgICB2YXIgZ3JvdXBCbG9ja3MgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IGtleXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIHZhciBuZXdLZXkgPSBrZXlzW2ldO1xuICAgICAgICAgICAgdmFyIG5ld1ZhbCA9IHZhbHVlc1tuZXdLZXldO1xuICAgICAgICAgICAgZ3JvdXBCbG9ja3MucHVzaCh0aGlzLnJlbmRlckxpbmUobmV3S2V5LCBuZXdWYWwsIHBvbGljaWVzLCAhaGFzV3JpdGUgfHwgbmV3S2V5ID09PSBjcnRVc2VyU3ViamVjdCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGdyb3VwQmxvY2tzOiBncm91cEJsb2NrcywgaGFzV3JpdGU6IGhhc1dyaXRlIH07XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJUZWFtc1xuICAgICAqIEBwYXJhbSBwb2xpY2llc1xuICAgICAqIEBwYXJhbSBkaXNhYmxlZFxuICAgICAqIEByZXR1cm4ge1hNTH1bXVxuICAgICAqL1xuXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsLnByb3RvdHlwZS5saXN0VXNlclRlYW1zID0gZnVuY3Rpb24gbGlzdFVzZXJUZWFtcyh1c2VyVGVhbXMsIHBvbGljaWVzLCBkaXNhYmxlZCkge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICByZXR1cm4gdXNlclRlYW1zLm1hcChmdW5jdGlvbiAocm9sZSkge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzMy5yZW5kZXJMaW5lKCdyb2xlOicgKyByb2xlLlV1aWQsIHJvbGUuTGFiZWwsIHBvbGljaWVzLCBkaXNhYmxlZCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLmxpc3RPdGhlclVzZXJzU3ViamVjdHMgPSBmdW5jdGlvbiBsaXN0T3RoZXJVc2Vyc1N1YmplY3RzKHBvbGljaWVzLCBjdXJyZW50VXNlclN1YmplY3QpIHtcbiAgICAgICAgdmFyIF9wcm9wczMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcmVzb3VyY2VJZCA9IF9wcm9wczMucmVzb3VyY2VJZDtcbiAgICAgICAgdmFyIGNlbGxBY2xzID0gX3Byb3BzMy5jZWxsQWNscztcblxuICAgICAgICB2YXIgc3VicyA9IHt9O1xuICAgICAgICBwb2xpY2llcy5tYXAoZnVuY3Rpb24gKHApIHtcbiAgICAgICAgICAgIGlmIChwLlN1YmplY3QuaW5kZXhPZigndXNlcjonKSA9PT0gMCAmJiBwLlN1YmplY3QgIT09IGN1cnJlbnRVc2VyU3ViamVjdCAmJiBwLlN1YmplY3QgIT09ICd1c2VyOicgKyByZXNvdXJjZUlkKSB7XG4gICAgICAgICAgICAgICAgc3Vic1twLlN1YmplY3RdID0gcC5TdWJqZWN0LnN1YnN0cigndXNlcjonLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2VsbEFjbHMgJiYgcC5TdWJqZWN0LmluZGV4T2YoJ3JvbGU6JykgPT09IDAgJiYgY2VsbEFjbHNbcC5TdWJqZWN0LnN1YnN0cigncm9sZTonLmxlbmd0aCldKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJvbGVJZCA9IHAuU3ViamVjdC5zdWJzdHIoJ3JvbGU6Jy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGlmIChjZWxsQWNsc1tyb2xlSWRdLlVzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHVzciA9IGNlbGxBY2xzW3JvbGVJZF0uVXNlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRVc2VyU3ViamVjdCAhPT0gJ3VzZXI6JyArIHVzci5Mb2dpbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic1twLlN1YmplY3RdID0gdXNyLkF0dHJpYnV0ZXMgJiYgdXNyLkF0dHJpYnV0ZXNbJ2Rpc3BsYXlOYW1lJ10gPyB1c3IuQXR0cmlidXRlc1snZGlzcGxheU5hbWUnXSA6IHVzci5Mb2dpbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2VsbEFjbHNbcm9sZUlkXS5Hcm91cCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZ3JwID0gY2VsbEFjbHNbcm9sZUlkXS5Hcm91cDtcbiAgICAgICAgICAgICAgICAgICAgc3Vic1twLlN1YmplY3RdID0gZ3JwLkF0dHJpYnV0ZXMgJiYgZ3JwLkF0dHJpYnV0ZXNbJ2Rpc3BsYXlOYW1lJ10gPyBncnAuQXR0cmlidXRlc1snZGlzcGxheU5hbWUnXSA6IGdycC5Hcm91cExhYmVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzdWJzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyT3JSb2xlIHt7SWRtVXNlcixJZG1Sb2xlfX1cbiAgICAgKi9cblxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbC5wcm90b3R5cGUucGlja1VzZXIgPSBmdW5jdGlvbiBwaWNrVXNlcih1c2VyT3JSb2xlKSB7XG4gICAgICAgIHZhciBzdWJqZWN0ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh1c2VyT3JSb2xlLklkbVVzZXIpIHtcbiAgICAgICAgICAgIHZhciBJZG1Vc2VyID0gdXNlck9yUm9sZS5JZG1Vc2VyO1xuXG4gICAgICAgICAgICB2YXIgYXR0cmlidXRlcyA9IElkbVVzZXIuQXR0cmlidXRlcyB8fCB7fTtcbiAgICAgICAgICAgIGlmIChJZG1Vc2VyLklzR3JvdXApIHtcbiAgICAgICAgICAgICAgICBzdWJqZWN0ID0gJ3JvbGU6JyArIElkbVVzZXIuVXVpZDtcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGF0dHJpYnV0ZXNbJ2Rpc3BsYXlOYW1lJ10gfHwgSWRtVXNlci5Hcm91cExhYmVsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdWJqZWN0ID0gJ3VzZXI6JyArIElkbVVzZXIuTG9naW47XG4gICAgICAgICAgICAgICAgbGFiZWwgPSBhdHRyaWJ1dGVzWydkaXNwbGF5TmFtZSddIHx8IElkbVVzZXIuTG9naW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgSWRtUm9sZSA9IHVzZXJPclJvbGUuSWRtUm9sZTtcblxuICAgICAgICAgICAgc3ViamVjdCA9ICdyb2xlOicgKyBJZG1Sb2xlLlV1aWQ7XG4gICAgICAgICAgICBsYWJlbCA9IElkbVJvbGUuTGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHBpY2tlZFVzZXI6IHN1YmplY3QsIHBpY2tlZExhYmVsOiBsYWJlbCB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3ViamVjdFxuICAgICAqIEBwYXJhbSBsYWJlbFxuICAgICAqIEBwYXJhbSBwb2xpY2llc1xuICAgICAqIEBwYXJhbSBkaXNhYmxlZFxuICAgICAqIEBwYXJhbSBpc1BpY2tlZFVzZXJcbiAgICAgKiBAcmV0dXJuIHtYTUx9XG4gICAgICovXG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLnJlbmRlckxpbmUgPSBmdW5jdGlvbiByZW5kZXJMaW5lKHN1YmplY3QsIGxhYmVsLCBwb2xpY2llcywgZGlzYWJsZWQpIHtcbiAgICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGlzUGlja2VkVXNlciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNCB8fCBhcmd1bWVudHNbNF0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzRdO1xuICAgICAgICB2YXIgX3Byb3BzNCA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBzdWJqZWN0c0Rpc2FibGVkID0gX3Byb3BzNC5zdWJqZWN0c0Rpc2FibGVkO1xuICAgICAgICB2YXIgc3ViamVjdHNIaWRkZW4gPSBfcHJvcHM0LnN1YmplY3RzSGlkZGVuO1xuICAgICAgICB2YXIgcmVhZG9ubHkgPSBfcHJvcHM0LnJlYWRvbmx5O1xuXG4gICAgICAgIGlmIChzdWJqZWN0c0hpZGRlbiAmJiBzdWJqZWN0c0hpZGRlbltzdWJqZWN0XSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcmVhZCA9IGZhbHNlLFxuICAgICAgICAgICAgd3JpdGUgPSBmYWxzZTtcbiAgICAgICAgdmFyIHJlYWRDaGFuZ2UgPSBmdW5jdGlvbiByZWFkQ2hhbmdlKCkge1xuICAgICAgICAgICAgX3RoaXM0LmFkZFBvbGljeSgnUkVBRCcsIHN1YmplY3QsIGlzUGlja2VkVXNlcik7XG4gICAgICAgIH07XG4gICAgICAgIHZhciB3cml0ZUNoYW5nZSA9IGZ1bmN0aW9uIHdyaXRlQ2hhbmdlKCkge1xuICAgICAgICAgICAgX3RoaXM0LmFkZFBvbGljeSgnV1JJVEUnLCBzdWJqZWN0LCBpc1BpY2tlZFVzZXIpO1xuICAgICAgICB9O1xuICAgICAgICBwb2xpY2llcy5tYXAoZnVuY3Rpb24gKHApIHtcbiAgICAgICAgICAgIGlmIChwLlN1YmplY3QgIT09IHN1YmplY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocC5BY3Rpb24gPT09ICdXUklURScpIHtcbiAgICAgICAgICAgICAgICB3cml0ZSA9IHAuQWN0aW9uID09PSAnV1JJVEUnO1xuICAgICAgICAgICAgICAgIHdyaXRlQ2hhbmdlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczQucmVtb3ZlUG9saWN5KCdXUklURScsIHN1YmplY3QpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHAuQWN0aW9uID09PSAnUkVBRCcpIHtcbiAgICAgICAgICAgICAgICByZWFkID0gcC5BY3Rpb24gPT09ICdSRUFEJztcbiAgICAgICAgICAgICAgICByZWFkQ2hhbmdlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczQucmVtb3ZlUG9saWN5KCdSRUFEJywgc3ViamVjdCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBkaXNhYmxlV3JpdGUgPSBkaXNhYmxlZDtcbiAgICAgICAgdmFyIGRpc2FibGVSZWFkID0gZGlzYWJsZWQ7XG4gICAgICAgIGlmIChyZWFkb25seSkge1xuICAgICAgICAgICAgZGlzYWJsZVJlYWQgPSB0cnVlO1xuICAgICAgICAgICAgZGlzYWJsZVdyaXRlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzdWJqZWN0c0Rpc2FibGVkICYmIHN1YmplY3RzRGlzYWJsZWRbJ1JFQUQnXSAmJiBzdWJqZWN0c0Rpc2FibGVkWydSRUFEJ11bc3ViamVjdF0pIHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlUmVhZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3ViamVjdHNEaXNhYmxlZCAmJiBzdWJqZWN0c0Rpc2FibGVkWydXUklURSddICYmIHN1YmplY3RzRGlzYWJsZWRbJ1dSSVRFJ11bc3ViamVjdF0pIHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlV3JpdGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBzdHlsZTogeyBkaXNwbGF5OiAnZmxleCcsIG1hcmdpbjogMTAsIG1hcmdpblJpZ2h0OiAwIH0gfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZmxleDogMSB9IH0sXG4gICAgICAgICAgICAgICAgbGFiZWxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5DaGVja2JveCwgeyBjaGVja2VkOiByZWFkLCBkaXNhYmxlZDogZGlzYWJsZVJlYWQsIHN0eWxlOiB7IHdpZHRoOiA0MCB9LCBvbkNoZWNrOiByZWFkQ2hhbmdlIH0pLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuQ2hlY2tib3gsIHsgY2hlY2tlZDogd3JpdGUsIGRpc2FibGVkOiBkaXNhYmxlV3JpdGUsIHN0eWxlOiB7IHdpZHRoOiA0MCB9LCBvbkNoZWNrOiB3cml0ZUNoYW5nZSB9KVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGFwcEJhciA9IHRoaXMucHJvcHMubXVpVGhlbWUuYXBwQmFyO1xuXG4gICAgICAgIHZhciBzdHlsZXMgPSB7XG4gICAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAxMCxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGFwcEJhci5jb2xvcixcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IDE2LFxuICAgICAgICAgICAgICAgIGNvbG9yOiBhcHBCYXIudGV4dENvbG9yXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3ViaGVhZGVyOiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMCxcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgICAgICAgICAgICAgY29sb3I6ICcjOUU5RTlFJyxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdWJqZWN0OiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhlYWQ6IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogNDAsXG4gICAgICAgICAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIF9zdGF0ZTQgPSB0aGlzLnN0YXRlO1xuICAgICAgICB2YXIgcG9saWNpZXMgPSBfc3RhdGU0LnBvbGljaWVzO1xuICAgICAgICB2YXIgZGlydHlQb2xpY2llcyA9IF9zdGF0ZTQuZGlydHlQb2xpY2llcztcbiAgICAgICAgdmFyIGVycm9yID0gX3N0YXRlNC5lcnJvcjtcbiAgICAgICAgdmFyIGlkbVVzZXIgPSBfc3RhdGU0LmlkbVVzZXI7XG4gICAgICAgIHZhciB1c2VyVGVhbXMgPSBfc3RhdGU0LnVzZXJUZWFtcztcbiAgICAgICAgdmFyIGxvYWRpbmcgPSBfc3RhdGU0LmxvYWRpbmc7XG4gICAgICAgIHZhciBwaWNrZWRVc2VyID0gX3N0YXRlNC5waWNrZWRVc2VyO1xuICAgICAgICB2YXIgcGlja2VkTGFiZWwgPSBfc3RhdGU0LnBpY2tlZExhYmVsO1xuICAgICAgICB2YXIgX3Byb3BzNSA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBvbkRpc21pc3MgPSBfcHJvcHM1Lm9uRGlzbWlzcztcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzNS5zdHlsZTtcbiAgICAgICAgdmFyIHNraXBUaXRsZSA9IF9wcm9wczUuc2tpcFRpdGxlO1xuICAgICAgICB2YXIgcmVzb3VyY2VJZCA9IF9wcm9wczUucmVzb3VyY2VJZDtcbiAgICAgICAgdmFyIHB5ZGlvID0gX3Byb3BzNS5weWRpbztcbiAgICAgICAgdmFyIHVzZXJMaXN0RXhjbHVkZXMgPSBfcHJvcHM1LnVzZXJMaXN0RXhjbHVkZXM7XG4gICAgICAgIHZhciByZWFkb25seSA9IF9wcm9wczUucmVhZG9ubHk7XG5cbiAgICAgICAgdmFyIGJsb2NrcyA9IFtdO1xuICAgICAgICBpZiAoIWxvYWRpbmcgJiYgIWVycm9yKSB7XG4gICAgICAgICAgICB2YXIgX2xpc3RVc2VyUm9sZXMgPSB0aGlzLmxpc3RVc2VyUm9sZXMoaWRtVXNlciwgZGlydHlQb2xpY2llcyA/IGRpcnR5UG9saWNpZXMgOiBwb2xpY2llcyk7XG5cbiAgICAgICAgICAgIHZhciBncm91cEJsb2NrcyA9IF9saXN0VXNlclJvbGVzLmdyb3VwQmxvY2tzO1xuICAgICAgICAgICAgdmFyIGhhc1dyaXRlID0gX2xpc3RVc2VyUm9sZXMuaGFzV3JpdGU7XG5cbiAgICAgICAgICAgIHZhciB0ZWFtQmxvY2tzID0gdGhpcy5saXN0VXNlclRlYW1zKHVzZXJUZWFtcywgZGlydHlQb2xpY2llcyA/IGRpcnR5UG9saWNpZXMgOiBwb2xpY2llcywgIWhhc1dyaXRlKTtcbiAgICAgICAgICAgIHZhciBoZWFkcyA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLmhlYWQgfSxcbiAgICAgICAgICAgICAgICAgICAgJ1ZpZXcnXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiBzdHlsZXMuaGVhZCB9LFxuICAgICAgICAgICAgICAgICAgICAnRWRpdCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGdyb3VwQmxvY2tzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLnN1YmhlYWRlciB9LFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZmxleDogMSB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAnVXNlcnMnXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIGhlYWRzXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnB1c2goZ3JvdXBCbG9ja3MpO1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIG51bGwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0ZWFtQmxvY2tzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLnN1YmhlYWRlciB9LFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZmxleDogMSB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAnWW91ciBUZWFtcydcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZHNcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICBibG9ja3MucHVzaCh0ZWFtQmxvY2tzKTtcbiAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5EaXZpZGVyLCBudWxsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGlja2VkVXNlcikge1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLnN1YmhlYWRlciB9LFxuICAgICAgICAgICAgICAgICAgICAnU2V0IHZpc2libGUgdG8uLi4nXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnB1c2godGhpcy5yZW5kZXJMaW5lKHBpY2tlZFVzZXIsIHBpY2tlZExhYmVsLCBwb2xpY2llcywgZmFsc2UsIHRydWUpKTtcbiAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgdGV4dEFsaWduOiAncmlnaHQnIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRmxhdEJ1dHRvbiwgeyBsYWJlbDogXCJDYW5jZWxcIiwgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7IHBpY2tlZFVzZXI6IG51bGwsIHBpY2tlZExhYmVsOiBudWxsIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSB9KVxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIG51bGwpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNydFVzZXJTdWJqZWN0ID0gJ3VzZXI6JyArIGlkbVVzZXIuTG9naW47XG4gICAgICAgICAgICAgICAgICAgIHZhciB1c2VyU3ViamVjdHMgPSBfdGhpczUubGlzdE90aGVyVXNlcnNTdWJqZWN0cyhkaXJ0eVBvbGljaWVzID8gZGlydHlQb2xpY2llcyA6IHBvbGljaWVzLCBjcnRVc2VyU3ViamVjdCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBleGx1ZGVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHVzZXJTdWJqZWN0cykubWFwKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGx1ZGVzLnB1c2godXNlclN1YmplY3RzW2tdKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0IGFuIGFyYml0cmFyeSByZXNvdXJjZVxuICAgICAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLnN1YmhlYWRlciB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NldCB2aXNpYmxlIHRvIC4uLidcbiAgICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IG1hcmdpbjogJy0zMHB4IDEwcHggMCcgfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3VzZXJzVXNlcnNDb21wbGV0ZXIyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzaGFyZS1mb3JtLXVzZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZExhYmVsOiAnU2VsZWN0IHVzZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlclN1Z2dlc3Rpb246IGZ1bmN0aW9uICh1c2VyT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyBmb250U2l6ZTogMTMgfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlck9iamVjdC5nZXRFeHRlbmRlZExhYmVsKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVmFsdWVTZWxlY3RlZDogX3RoaXM1LnBpY2tVc2VyLmJpbmQoX3RoaXM1KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc09ubHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdPbmx5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVzOiBbcmVzb3VyY2VJZF0uY29uY2F0KHVzZXJMaXN0RXhjbHVkZXMsIGV4bHVkZXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5ZGlvOiBweWRpbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93QWRkcmVzc0Jvb2s6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzRnJvbTogJ2xvY2FsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIG51bGwpKTtcbiAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBibG9ja3MucG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlIH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiBzdHlsZXMudGl0bGUgfSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDEgfSB9LFxuICAgICAgICAgICAgICAgICAgICBza2lwVGl0bGUgPyAnJyA6ICdWaXNpYmlsaXR5J1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZGlydHlQb2xpY2llcyAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IGljb25DbGFzc05hbWU6IFwibWRpIG1kaS11bmRvLXZhcmlhbnRcIiwgdG9vbHRpcDogXCJSZXZlcnQgY2hhbmdlc1wiLCBvblRvdWNoVGFwOiB0aGlzLnJldmVydC5iaW5kKHRoaXMpLCBpY29uU3R5bGU6IHsgY29sb3I6IGFwcEJhci50ZXh0Q29sb3IgfSB9KSxcbiAgICAgICAgICAgICAgICBkaXJ0eVBvbGljaWVzICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHsgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLWNvbnRlbnQtc2F2ZVwiLCB0b29sdGlwOiBcIlNhdmUgY2hhbmdlc1wiLCBvblRvdWNoVGFwOiB0aGlzLnNhdmUuYmluZCh0aGlzKSwgaWNvblN0eWxlOiB7IGNvbG9yOiBhcHBCYXIudGV4dENvbG9yIH0gfSksXG4gICAgICAgICAgICAgICAgIWRpcnR5UG9saWNpZXMgJiYgb25EaXNtaXNzICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHsgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLWNsb3NlXCIsIG9uVG91Y2hUYXA6IG9uRGlzbWlzcywgaWNvblN0eWxlOiB7IGNvbG9yOiBhcHBCYXIudGV4dENvbG9yIH0gfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBlcnJvciAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICdFcnJvcjogJyxcbiAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgYmxvY2tzXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBSZXNvdXJjZVBvbGljaWVzUGFuZWw7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuUmVzb3VyY2VQb2xpY2llc1BhbmVsLlByb3BUeXBlcyA9IHtcbiAgICBweWRpbzogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKF9weWRpbzNbJ2RlZmF1bHQnXSksXG4gICAgcmVzb3VyY2VUeXBlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIHJlc291cmNlSWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgb25TYXZlUG9saWNpZXM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICB1c2VyTGlzdEV4Y2x1ZGVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgIHN1YmplY3RzRGlzYWJsZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXksXG4gICAgc3ViamVjdHNIaWRkZW46IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIHJlYWRvbmx5OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgY2VsbEFjbHM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuXG4gICAgb25EaXNtaXNzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgc3R5bGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIHNraXBUaXRsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sXG5cbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc291cmNlUG9saWNpZXNQYW5lbCA9IF9tYXRlcmlhbFVpU3R5bGVzLm11aVRoZW1lYWJsZSgpKFJlc291cmNlUG9saWNpZXNQYW5lbCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc291cmNlUG9saWNpZXNQYW5lbDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcHlkaW9IdHRwQXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC9hcGknKTtcblxudmFyIF9weWRpb0h0dHBBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9IdHRwQXBpKTtcblxuLyoqXG4gKiBTaW1wbGUgZm9ybSBmb3IgY3JlYXRpbmcgYSB0ZWFtXG4gKi9cblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIENvbXBvbmVudCA9IF9yZXF1aXJlLkNvbXBvbmVudDtcbnZhciBQcm9wVHlwZXMgPSBfcmVxdWlyZS5Qcm9wVHlwZXM7XG5cbnZhciBfcmVxdWlyZTIgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgVGV4dEZpZWxkID0gX3JlcXVpcmUyLlRleHRGaWVsZDtcbnZhciBGbGF0QnV0dG9uID0gX3JlcXVpcmUyLkZsYXRCdXR0b247XG5cbnZhciBfcmVxdWlyZSRyZXF1aXJlTGliID0gcmVxdWlyZSgncHlkaW8nKS5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9yZXF1aXJlJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG5cbnZhciBUZWFtQ3JlYXRpb25Gb3JtID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFRlYW1DcmVhdGlvbkZvcm0sIF9Db21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gVGVhbUNyZWF0aW9uRm9ybShwcm9wcywgY29udGV4dCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGVhbUNyZWF0aW9uRm9ybSk7XG5cbiAgICAgICAgX0NvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHsgdmFsdWU6ICcnIH07XG4gICAgfVxuXG4gICAgVGVhbUNyZWF0aW9uRm9ybS5wcm90b3R5cGUub25DaGFuZ2UgPSBmdW5jdGlvbiBvbkNoYW5nZShlLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWU6IHZhbHVlIH0pO1xuICAgIH07XG5cbiAgICBUZWFtQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5zdWJtaXRDcmVhdGlvbkZvcm0gPSBmdW5jdGlvbiBzdWJtaXRDcmVhdGlvbkZvcm0oKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuc3RhdGUudmFsdWU7XG4gICAgICAgIF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLnNhdmVTZWxlY3Rpb25Bc1RlYW0odmFsdWUsIFtdLCB0aGlzLnByb3BzLm9uVGVhbUNyZWF0ZWQpO1xuICAgIH07XG5cbiAgICBUZWFtQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gdGhpcy5wcm9wcy5nZXRNZXNzYWdlO1xuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHBhZGRpbmc6IDIwIH0gfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgZ2V0TWVzc2FnZSg1OTEpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRleHRGaWVsZCwgeyBmbG9hdGluZ0xhYmVsVGV4dDogZ2V0TWVzc2FnZSg1NzgpLCB2YWx1ZTogdGhpcy5zdGF0ZS52YWx1ZSwgb25DaGFuZ2U6IHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKSwgZnVsbFdpZHRoOiB0cnVlIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHRleHRBbGlnbjogJ3JpZ2h0JywgcGFkZGluZzogOCB9IH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRmxhdEJ1dHRvbiwgeyBsYWJlbDogZ2V0TWVzc2FnZSg0OSksIG9uVG91Y2hUYXA6IHRoaXMucHJvcHMub25DYW5jZWwuYmluZCh0aGlzKSB9KSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGbGF0QnV0dG9uLCB7IGxhYmVsOiBnZXRNZXNzYWdlKDU3OSksIHByaW1hcnk6IHRydWUsIG9uVG91Y2hUYXA6IHRoaXMuc3VibWl0Q3JlYXRpb25Gb3JtLmJpbmQodGhpcykgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBUZWFtQ3JlYXRpb25Gb3JtO1xufSkoQ29tcG9uZW50KTtcblxuVGVhbUNyZWF0aW9uRm9ybS5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdHJpZ2dlcmVkIGFmdGVyIHRlYW0gY3JlYXRpb24gc3VjY2VlZGVkXG4gICAgICovXG4gICAgb25UZWFtQ3JlYXRlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAvKipcbiAgICAgKiBSZXF1ZXN0IG1vZGFsIGNsb3NlXG4gICAgICovXG4gICAgb25DYW5jZWw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRlYW1DcmVhdGlvbkZvcm0gPSBQeWRpb0NvbnRleHRDb25zdW1lcihUZWFtQ3JlYXRpb25Gb3JtKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVGVhbUNyZWF0aW9uRm9ybTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX3B5ZGlvSHR0cEFwaSA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvYXBpJyk7XG5cbnZhciBfcHlkaW9IdHRwQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvSHR0cEFwaSk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfcHlkaW9IdHRwVXNlcnNBcGkgPSByZXF1aXJlKCdweWRpby9odHRwL3VzZXJzLWFwaScpO1xuXG52YXIgX1B5ZGlvJHJlcXVpcmVMaWIgPSBfcHlkaW8yWydkZWZhdWx0J10ucmVxdWlyZUxpYignZm9ybScpO1xuXG52YXIgTWFuYWdlciA9IF9QeWRpbyRyZXF1aXJlTGliLk1hbmFnZXI7XG52YXIgRm9ybVBhbmVsID0gX1B5ZGlvJHJlcXVpcmVMaWIuRm9ybVBhbmVsO1xuXG52YXIgVXNlckNyZWF0aW9uRm9ybSA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhVc2VyQ3JlYXRpb25Gb3JtLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIFVzZXJDcmVhdGlvbkZvcm0ucHJvdG90eXBlLmdldENyZWF0ZVVzZXJQYXJhbWV0ZXJzID0gZnVuY3Rpb24gZ2V0Q3JlYXRlVXNlclBhcmFtZXRlcnMoKSB7XG4gICAgICAgIHZhciBlZGl0TW9kZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgIHZhciBiYXNpY1BhcmFtZXRlcnMgPSBbXTtcbiAgICAgICAgdmFyIHB5ZGlvID0gdGhpcy5wcm9wcy5weWRpbztcbiAgICAgICAgdmFyIE1lc3NhZ2VIYXNoID0gcHlkaW8uTWVzc2FnZUhhc2g7XG5cbiAgICAgICAgdmFyIHByZWZpeCA9IHB5ZGlvLmdldFBsdWdpbkNvbmZpZ3MoJ2FjdGlvbi5zaGFyZScpLmdldCgnU0hBUkVEX1VTRVJTX1RNUF9QUkVGSVgnKTtcbiAgICAgICAgYmFzaWNQYXJhbWV0ZXJzLnB1c2goe1xuICAgICAgICAgICAgSWRtVXNlckZpZWxkOiAnTG9naW4nLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IE1lc3NhZ2VIYXNoWyc1MzMnXSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiBlZGl0TW9kZSxcbiAgICAgICAgICAgIGV4cG9zZTogXCJ0cnVlXCIsXG4gICAgICAgICAgICBsYWJlbDogTWVzc2FnZUhhc2hbJzUyMiddLFxuICAgICAgICAgICAgbmFtZTogZWRpdE1vZGUgPyBcImV4aXN0aW5nX3VzZXJfaWRcIiA6IFwibmV3X3VzZXJfaWRcIixcbiAgICAgICAgICAgIHNjb3BlOiBcInVzZXJcIixcbiAgICAgICAgICAgIHR5cGU6IFwidmFsaWQtbG9naW5cIixcbiAgICAgICAgICAgIG1hbmRhdG9yeTogdHJ1ZSxcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBwcmVmaXggPyBwcmVmaXggOiAnJ1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBJZG1Vc2VyRmllbGQ6ICdQYXNzd29yZCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogTWVzc2FnZUhhc2hbJzUzNCddLFxuICAgICAgICAgICAgZWRpdGFibGU6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgZXhwb3NlOiBcInRydWVcIixcbiAgICAgICAgICAgIGxhYmVsOiBNZXNzYWdlSGFzaFsnNTIzJ10sXG4gICAgICAgICAgICBuYW1lOiBcIm5ld19wYXNzd29yZFwiLFxuICAgICAgICAgICAgc2NvcGU6IFwidXNlclwiLFxuICAgICAgICAgICAgdHlwZTogXCJ2YWxpZC1wYXNzd29yZFwiLFxuICAgICAgICAgICAgbWFuZGF0b3J5OiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBwYXJhbXMgPSBnbG9iYWwucHlkaW8uZ2V0UGx1Z2luQ29uZmlncygnYXV0aCcpLmdldCgnTkVXVVNFUlNfRURJVF9QQVJBTUVURVJTJykuc3BsaXQoJywnKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhcmFtc1tpXSA9IFwidXNlci9wcmVmZXJlbmNlcy9wcmVmW0BleHBvc2VkXXwvL3BhcmFtW0BuYW1lPSdcIiArIHBhcmFtc1tpXSArIFwiJ11cIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgeFBhdGggPSBwYXJhbXMuam9pbignfCcpO1xuICAgICAgICBNYW5hZ2VyLnBhcnNlUGFyYW1ldGVycyh0aGlzLnByb3BzLnB5ZGlvLmdldFhtbFJlZ2lzdHJ5KCksIHhQYXRoKS5tYXAoZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgICAgICBiYXNpY1BhcmFtZXRlcnMucHVzaChlbCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIWVkaXRNb2RlKSB7XG4gICAgICAgICAgICBiYXNpY1BhcmFtZXRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IE1lc3NhZ2VIYXNoWyc1MzYnXSxcbiAgICAgICAgICAgICAgICBlZGl0YWJsZTogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgZXhwb3NlOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogTWVzc2FnZUhhc2hbJzUzNSddLFxuICAgICAgICAgICAgICAgIG5hbWU6IFwic2VuZF9lbWFpbFwiLFxuICAgICAgICAgICAgICAgIHNjb3BlOiBcInVzZXJcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICBtYW5kYXRvcnk6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiYXNpY1BhcmFtZXRlcnM7XG4gICAgfTtcblxuICAgIFVzZXJDcmVhdGlvbkZvcm0ucHJvdG90eXBlLmdldERlZmF1bHRQcm9wcyA9IGZ1bmN0aW9uIGdldERlZmF1bHRQcm9wcygpIHtcbiAgICAgICAgcmV0dXJuIHsgZWRpdE1vZGU6IGZhbHNlIH07XG4gICAgfTtcblxuICAgIFVzZXJDcmVhdGlvbkZvcm0ucHJvdG90eXBlLmdldFBhcmFtZXRlcnMgPSBmdW5jdGlvbiBnZXRQYXJhbWV0ZXJzKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BhcnNlZFBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcnNlZFBhcmFtZXRlcnMgPSB0aGlzLmdldENyZWF0ZVVzZXJQYXJhbWV0ZXJzKHRoaXMucHJvcHMuZWRpdE1vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJzZWRQYXJhbWV0ZXJzO1xuICAgIH07XG5cbiAgICBVc2VyQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5nZXRWYWx1ZXNGb3JQb3N0ID0gZnVuY3Rpb24gZ2V0VmFsdWVzRm9yUG9zdChwcmVmaXgpIHtcbiAgICAgICAgcmV0dXJuIE1hbmFnZXIuZ2V0VmFsdWVzRm9yUE9TVCh0aGlzLmdldFBhcmFtZXRlcnMoKSwgdGhpcy5zdGF0ZS52YWx1ZXMsIHByZWZpeCk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIFVzZXJDcmVhdGlvbkZvcm0ocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXNlckNyZWF0aW9uRm9ybSk7XG5cbiAgICAgICAgX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KTtcblxuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHB5ZGlvID0gX3Byb3BzLnB5ZGlvO1xuICAgICAgICB2YXIgbmV3VXNlck5hbWUgPSBfcHJvcHMubmV3VXNlck5hbWU7XG4gICAgICAgIHZhciBlZGl0TW9kZSA9IF9wcm9wcy5lZGl0TW9kZTtcbiAgICAgICAgdmFyIHVzZXJEYXRhID0gX3Byb3BzLnVzZXJEYXRhO1xuXG4gICAgICAgIHZhciB1c2VyUHJlZml4ID0gcHlkaW8uZ2V0UGx1Z2luQ29uZmlncygnYWN0aW9uLnNoYXJlJykuZ2V0KCdTSEFSRURfVVNFUlNfVE1QX1BSRUZJWCcpO1xuICAgICAgICBpZiAoIXVzZXJQcmVmaXggfHwgbmV3VXNlck5hbWUuc3RhcnRzV2l0aCh1c2VyUHJlZml4KSkgdXNlclByZWZpeCA9ICcnO1xuICAgICAgICB2YXIgdmFsdWVzID0ge1xuICAgICAgICAgICAgbmV3X3Bhc3N3b3JkOiAnJyxcbiAgICAgICAgICAgIHNlbmRfZW1haWw6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGVkaXRNb2RlICYmIHVzZXJEYXRhICYmIHVzZXJEYXRhLklkbVVzZXIpIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIElkbVVzZXIgPSB1c2VyRGF0YS5JZG1Vc2VyO1xuXG4gICAgICAgICAgICAgICAgX3RoaXMuZ2V0UGFyYW1ldGVycygpLmZvckVhY2goZnVuY3Rpb24gKHBhcmFtKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuYW1lID0gcGFyYW0ubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIElkbVVzZXJGaWVsZCA9IHBhcmFtLklkbVVzZXJGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNjb3BlID0gcGFyYW0uc2NvcGU7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwbHVnaW5JZCA9IHBhcmFtLnBsdWdpbklkO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKElkbVVzZXJGaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBJZG1Vc2VyW0lkbVVzZXJGaWVsZF07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NvcGUgPT09ICd1c2VyJyAmJiBJZG1Vc2VyLkF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gSWRtVXNlci5BdHRyaWJ1dGVzW25hbWVdO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBsdWdpbklkICYmIElkbVVzZXIuQXR0cmlidXRlc1tcInBhcmFtZXRlcjpcIiArIHBsdWdpbklkICsgXCI6XCIgKyBuYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBKU09OLnBhcnNlKElkbVVzZXIuQXR0cmlidXRlc1tcInBhcmFtZXRlcjpcIiArIHBsdWdpbklkICsgXCI6XCIgKyBuYW1lXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWVzWyduZXdfdXNlcl9pZCddID0gdXNlclByZWZpeCArIG5ld1VzZXJOYW1lO1xuICAgICAgICAgICAgdmFsdWVzWydsYW5nJ10gPSBweWRpby5jdXJyZW50TGFuZ3VhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHsgdmFsdWVzOiB2YWx1ZXMgfTtcbiAgICB9XG5cbiAgICBVc2VyQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5vblZhbHVlc0NoYW5nZSA9IGZ1bmN0aW9uIG9uVmFsdWVzQ2hhbmdlKG5ld1ZhbHVlcykge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWVzOiBuZXdWYWx1ZXMgfSk7XG4gICAgfTtcblxuICAgIFVzZXJDcmVhdGlvbkZvcm0ucHJvdG90eXBlLmNoYW5nZVZhbGlkU3RhdHVzID0gZnVuY3Rpb24gY2hhbmdlVmFsaWRTdGF0dXMoc3RhdHVzKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWxpZDogc3RhdHVzIH0pO1xuICAgIH07XG5cbiAgICBVc2VyQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5zdWJtaXRDcmVhdGlvbkZvcm0gPSBmdW5jdGlvbiBzdWJtaXRDcmVhdGlvbkZvcm0oKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciBleGlzdGluZ1VzZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGVkaXRNb2RlID0gX3Byb3BzMi5lZGl0TW9kZTtcbiAgICAgICAgdmFyIHVzZXJEYXRhID0gX3Byb3BzMi51c2VyRGF0YTtcblxuICAgICAgICBpZiAoZWRpdE1vZGUpIHtcbiAgICAgICAgICAgIGV4aXN0aW5nVXNlciA9IHVzZXJEYXRhLklkbVVzZXI7XG4gICAgICAgIH1cbiAgICAgICAgX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkucHV0RXh0ZXJuYWxVc2VyKHRoaXMuc3RhdGUudmFsdWVzLCB0aGlzLmdldFBhcmFtZXRlcnMoKSwgZXhpc3RpbmdVc2VyKS50aGVuKGZ1bmN0aW9uIChpZG1Vc2VyKSB7XG4gICAgICAgICAgICBfdGhpczIucHJvcHMub25Vc2VyQ3JlYXRlZChfcHlkaW9IdHRwVXNlcnNBcGkuVXNlci5mcm9tSWRtVXNlcihpZG1Vc2VyKSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBVc2VyQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5jYW5jZWxDcmVhdGlvbkZvcm0gPSBmdW5jdGlvbiBjYW5jZWxDcmVhdGlvbkZvcm0oKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25DYW5jZWwoKTtcbiAgICB9O1xuXG4gICAgVXNlckNyZWF0aW9uRm9ybS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3Byb3BzMyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wczMucHlkaW87XG4gICAgICAgIHZhciBlZGl0TW9kZSA9IF9wcm9wczMuZWRpdE1vZGU7XG4gICAgICAgIHZhciBuZXdVc2VyTmFtZSA9IF9wcm9wczMubmV3VXNlck5hbWU7XG5cbiAgICAgICAgdmFyIHN0YXR1cyA9IHRoaXMuc3RhdGUudmFsaWQ7XG4gICAgICAgIGlmICghc3RhdHVzICYmIGVkaXRNb2RlICYmICF0aGlzLnN0YXRlLnZhbHVlc1snbmV3X3Bhc3N3b3JkJ10pIHtcbiAgICAgICAgICAgIHN0YXR1cyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBfbWF0ZXJpYWxVaS5QYXBlcixcbiAgICAgICAgICAgIHsgekRlcHRoOiB0aGlzLnByb3BzLnpEZXB0aCAhPT0gdW5kZWZpbmVkID8gdGhpcy5wcm9wcy56RGVwdGggOiAyLCBzdHlsZTogX2V4dGVuZHMoeyBtaW5IZWlnaHQ6IDI1MCwgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyB9LCB0aGlzLnByb3BzLnN0eWxlKSB9LFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoRm9ybVBhbmVsLCB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAncmVzZXQtcHlkaW8tZm9ybXMnLFxuICAgICAgICAgICAgICAgIGRlcHRoOiAtMSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB0aGlzLmdldFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IHRoaXMuc3RhdGUudmFsdWVzLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uVmFsdWVzQ2hhbmdlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgb25WYWxpZFN0YXR1c0NoYW5nZTogdGhpcy5jaGFuZ2VWYWxpZFN0YXR1cy5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IG92ZXJmbG93WTogJ2F1dG8nLCBmbGV4OiAxIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRGl2aWRlciwgeyBzdHlsZTogeyBmbGV4U2hyaW5rOiAwIH0gfSksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHBhZGRpbmc6IDgsIHRleHRBbGlnbjogJ3JpZ2h0JyB9IH0sXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRmxhdEJ1dHRvbiwgeyBsYWJlbDogcHlkaW8uTWVzc2FnZUhhc2hbNDldLCBvblRvdWNoVGFwOiB0aGlzLmNhbmNlbENyZWF0aW9uRm9ybS5iaW5kKHRoaXMpIH0pLFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZsYXRCdXR0b24sIHsgbGFiZWw6IHRoaXMucHJvcHMuZWRpdE1vZGUgPyBweWRpby5NZXNzYWdlSGFzaFs1MTldIDogcHlkaW8uTWVzc2FnZUhhc2hbNDg0XSwgcHJpbWFyeTogdHJ1ZSwgb25Ub3VjaFRhcDogdGhpcy5zdWJtaXRDcmVhdGlvbkZvcm0uYmluZCh0aGlzKSwgZGlzYWJsZWQ6ICFzdGF0dXMgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFVzZXJDcmVhdGlvbkZvcm07XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuVXNlckNyZWF0aW9uRm9ybS5wcm9wVHlwZXMgPSB7XG4gICAgbmV3VXNlck5hbWU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIG9uVXNlckNyZWF0ZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ2FuY2VsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBlZGl0TW9kZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgIHVzZXJEYXRhOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdFxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlckNyZWF0aW9uRm9ybTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9weWRpb0h0dHBBcGkgPSByZXF1aXJlKCdweWRpby9odHRwL2FwaScpO1xuXG52YXIgX3B5ZGlvSHR0cEFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb0h0dHBBcGkpO1xuXG52YXIgX3B5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9weWRpbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpbyk7XG5cbnZhciBfYWRkcmVzc2Jvb2tBZGRyZXNzQm9vayA9IHJlcXVpcmUoJy4vYWRkcmVzc2Jvb2svQWRkcmVzc0Jvb2snKTtcblxudmFyIF9hZGRyZXNzYm9va0FkZHJlc3NCb29rMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FkZHJlc3Nib29rQWRkcmVzc0Jvb2spO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgX3B5ZGlvVXRpbEZ1bmMgPSByZXF1aXJlKCdweWRpby91dGlsL2Z1bmMnKTtcblxudmFyIF9weWRpb1V0aWxGdW5jMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvVXRpbEZ1bmMpO1xuXG52YXIgX1VzZXJDcmVhdGlvbkZvcm0gPSByZXF1aXJlKCcuL1VzZXJDcmVhdGlvbkZvcm0nKTtcblxudmFyIF9Vc2VyQ3JlYXRpb25Gb3JtMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1VzZXJDcmVhdGlvbkZvcm0pO1xuXG4vKipcbiAqIFJlYWR5IHRvIHVzZSBhdXRvY29tcGxldGUgZmllbGQgdGhhdCB3aWxsIGxvYWQgdXNlcnMvZ3JvdXBzL3JvbGVzIGZyb21cbiAqIHRoZSBzZXJ2ZXIgKHVzaW5nIHVzZXJfbGlzdF9hdXRob3JpemVkX3VzZXJzIEFQSSkuXG4gKiBVc2VkIGZvciBzaGFyaW5nLCBhZGRyZXNzYm9va3MsIHNlbmQgZW1haWwsIGV0Yy5cbiAqXG4gKiBDYW4gYWxzbyBvcGVuIGEgXCJzZWxlY3Rvci1zdHlsZVwiIGFkcmVzcyBib29rLlxuICovXG52YXIgVXNlcnNMb2FkZXIgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnVXNlcnNMb2FkZXInLFxuXG4gICAgcHJvcFR5cGVzOiB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE1ldGhvZCBjYWxsZWQgdG8gcmVuZGVyIGEgY29tbXBvbmVudCwgdGFraW5nIGEgVXNlck9iamVjdCBhcyBpbnB1dFxuICAgICAgICAgKi9cbiAgICAgICAgcmVuZGVyU3VnZ2VzdGlvbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDYWxsYmFjayB3aGVuIGEgdmFsdWUgaXMgZmluYWxseSBzZWxlY3RlZFxuICAgICAgICAgKi9cbiAgICAgICAgb25WYWx1ZVNlbGVjdGVkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZsb2F0aW5nIExhYmVsIFRleHQgZGlzcGxheWVkIG9uIHRoZSBmaWVsZFxuICAgICAgICAgKi9cbiAgICAgICAgZmllbGRMYWJlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFycmF5IG9mIHZhbHVlcyB0byBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIGV4Y2x1ZGVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEaXNwbGF5IG9ubHkgdXNlcnMsIG5vIGdyb3VwcyBub3Igcm9sZXNcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJzT25seTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogRGlzcGxheSB1c2VycyBmcm9tIGxvY2FsIGRpcmVjdG9yeSBhbmQvb3IgZnJvbSByZW1vdGUuXG4gICAgICAgICAqL1xuICAgICAgICB1c2Vyc0Zyb206IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub25lT2YoWydsb2NhbCcsICdyZW1vdGUnLCAnYW55J10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogRG8gbm90IHByb3Bvc2UgYSBcIkNyZWF0ZSB1c2VyXCIgb3B0aW9uXG4gICAgICAgICAqL1xuICAgICAgICBleGlzdGluZ09ubHk6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFsbG93IGZyZWUgdHlwaW5nXG4gICAgICAgICAqL1xuICAgICAgICBmcmVlVmFsdWVBbGxvd2VkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaWxsIGJlIHBhc3NlZCB0byB0aGUgcm9vdCBjb21wb25lbnRcbiAgICAgICAgICovXG4gICAgICAgIGNsYXNzTmFtZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmdcbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRhU291cmNlOiBbXSxcbiAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgc2VhcmNoVGV4dDogJycsXG4gICAgICAgICAgICBtaW5DaGFyczogcGFyc2VJbnQoZ2xvYmFsLnB5ZGlvLmdldFBsdWdpbkNvbmZpZ3MoXCJjb3JlLmF1dGhcIikuZ2V0KFwiVVNFUlNfTElTVF9DT01QTEVURV9NSU5fQ0hBUlNcIikpXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIExvYWRzIHZhbHVlcyBmcm9tIHNlcnZlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dCBDdXJyZW50bHkgc2VhcmNoZWQgdGV4dFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCB3aXRoIHRoZSB2YWx1ZXNcbiAgICAgKi9cbiAgICBzdWdnZXN0aW9uTG9hZGVyOiBmdW5jdGlvbiBzdWdnZXN0aW9uTG9hZGVyKGlucHV0LCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBleGNsdWRlcyA9IHRoaXMucHJvcHMuZXhjbHVkZXM7XG4gICAgICAgIC8vY29uc3QgZGlzYWxsb3dUZW1wb3JhcnkgPSB0aGlzLnByb3BzLmV4aXN0aW5nT25seSAmJiAhdGhpcy5wcm9wcy5mcmVlVmFsdWVBbGxvd2VkO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdGhpcy5zdGF0ZS5sb2FkaW5nICsgMSB9KTtcbiAgICAgICAgdmFyIGFwaSA9IF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpO1xuICAgICAgICB2YXIgdVByb21pc2UgPSBhcGkubGlzdFVzZXJzKCcvJywgaW5wdXQsIHRydWUsIDAsIDIwKTtcbiAgICAgICAgdmFyIGdQcm9taXNlID0gYXBpLmxpc3RHcm91cHMoJy8nLCBpbnB1dCwgdHJ1ZSwgMCwgMjApO1xuICAgICAgICB2YXIgdFByb21pc2UgPSBhcGkubGlzdFRlYW1zKGlucHV0LCAwLCAyMCk7XG4gICAgICAgIFByb21pc2UuYWxsKFt1UHJvbWlzZSwgZ1Byb21pc2UsIHRQcm9taXNlXSkudGhlbihmdW5jdGlvbiAocmVzdWx0cykge1xuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBfdGhpcy5zdGF0ZS5sb2FkaW5nIC0gMSB9KTtcbiAgICAgICAgICAgIHZhciB1c2VycyA9IHJlc3VsdHNbMF07XG4gICAgICAgICAgICB2YXIgZ3JvdXBzID0gcmVzdWx0c1sxXTtcbiAgICAgICAgICAgIHZhciB0ZWFtcyA9IHJlc3VsdHNbMl07XG5cbiAgICAgICAgICAgIHVzZXJzID0gdXNlcnMuVXNlcnM7XG4gICAgICAgICAgICBncm91cHMgPSBncm91cHMuR3JvdXBzO1xuICAgICAgICAgICAgdGVhbXMgPSB0ZWFtcy5UZWFtcztcbiAgICAgICAgICAgIGlmIChleGNsdWRlcyAmJiBleGNsdWRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB1c2VycyA9IHVzZXJzLmZpbHRlcihmdW5jdGlvbiAodXNlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjbHVkZXMuaW5kZXhPZih1c2VyLkxvZ2luKSA9PT0gLTE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZ3JvdXBzID0gZ3JvdXBzLmZpbHRlcihmdW5jdGlvbiAoZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2x1ZGVzLmluZGV4T2YoZ3JvdXAuR3JvdXBMYWJlbCkgPT09IC0xO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRlYW1zID0gdGVhbXMuZmlsdGVyKGZ1bmN0aW9uICh0ZWFtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNsdWRlcy5pbmRleE9mKHRlYW0uTGFiZWwgPT09IC0xKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbGxiYWNrKFtdLmNvbmNhdChncm91cHMubWFwKGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgSWRtVXNlcjogdSB9O1xuICAgICAgICAgICAgfSksIHRlYW1zLm1hcChmdW5jdGlvbiAodSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IElkbVJvbGU6IHUgfTtcbiAgICAgICAgICAgIH0pLCB1c2Vycy5tYXAoZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBJZG1Vc2VyOiB1IH07XG4gICAgICAgICAgICB9KSkpO1xuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGZpZWxkIGlzIHVwZGF0ZWRcbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICB0ZXh0RmllbGRVcGRhdGU6IGZ1bmN0aW9uIHRleHRGaWVsZFVwZGF0ZSh2YWx1ZSkge1xuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzZWFyY2hUZXh0OiB2YWx1ZSB9KTtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubWluQ2hhcnMgJiYgdmFsdWUgJiYgdmFsdWUubGVuZ3RoIDwgdGhpcy5zdGF0ZS5taW5DaGFycykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZEJ1ZmZlcmVkKHZhbHVlLCAzNTApO1xuICAgIH0sXG5cbiAgICBnZXRQZW5kaW5nU2VhcmNoVGV4dDogZnVuY3Rpb24gZ2V0UGVuZGluZ1NlYXJjaFRleHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLnNlYXJjaFRleHQgfHwgZmFsc2U7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKSB7XG4gICAgICAgIHRoaXMuX2VtcHR5VmFsdWVMaXN0ID0gbnVsbDtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogRGVib3VuY2VkIGNhbGwgZm9yIHJlbmRlcmluZyBzZWFyY2hcbiAgICAgKiBAcGFyYW0gdmFsdWUge3N0cmluZ31cbiAgICAgKiBAcGFyYW0gdGltZW91dCB7aW50fVxuICAgICAqL1xuICAgIGxvYWRCdWZmZXJlZDogZnVuY3Rpb24gbG9hZEJ1ZmZlcmVkKHZhbHVlLCB0aW1lb3V0KSB7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSAmJiB0aGlzLl9lbXB0eVZhbHVlTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IHRoaXMuX2VtcHR5VmFsdWVMaXN0IH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgZXhpc3RpbmdPbmx5ID0gX3Byb3BzLmV4aXN0aW5nT25seTtcbiAgICAgICAgdmFyIGZyZWVWYWx1ZUFsbG93ZWQgPSBfcHJvcHMuZnJlZVZhbHVlQWxsb3dlZDtcbiAgICAgICAgdmFyIGV4Y2x1ZGVzID0gX3Byb3BzLmV4Y2x1ZGVzO1xuXG4gICAgICAgIF9weWRpb1V0aWxGdW5jMlsnZGVmYXVsdCddLmJ1ZmZlckNhbGxiYWNrKCdyZW1vdGVfdXNlcnNfc2VhcmNoJywgdGltZW91dCwgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xuICAgICAgICAgICAgdmFyIGV4Y2x1ZGVkID0gW19weWRpbzJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSgpLnVzZXIuaWQsICdweWRpby5hbm9uLnVzZXInXTtcbiAgICAgICAgICAgIHRoaXMuc3VnZ2VzdGlvbkxvYWRlcih2YWx1ZSwgKGZ1bmN0aW9uICh1c2Vycykge1xuICAgICAgICAgICAgICAgIHZhciB2YWx1ZUV4aXN0cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSB1c2Vycy5maWx0ZXIoZnVuY3Rpb24gKHVzZXJPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEodXNlck9iamVjdC5JZG1Vc2VyICYmICF1c2VyT2JqZWN0LklkbVVzZXIuSXNHcm91cCAmJiBleGNsdWRlZC5pbmRleE9mKHVzZXJPYmplY3QuSWRtVXNlci5Mb2dpbikgPiAtMSk7XG4gICAgICAgICAgICAgICAgfSkuZmlsdGVyKGZ1bmN0aW9uICh1c2VyT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZXhjbHVkZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2VyT2JqZWN0LklkbVVzZXIgJiYgdXNlck9iamVjdC5JZG1Vc2VyLklzR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNsdWRlcy5maWx0ZXIoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZSA9PT0gdXNlck9iamVjdC5JZG1Vc2VyLlV1aWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXNlck9iamVjdC5JZG1Vc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjbHVkZXMuZmlsdGVyKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUgPT09IHVzZXJPYmplY3QuSWRtVXNlci5Mb2dpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNsdWRlcy5maWx0ZXIoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZSA9PT0gdXNlck9iamVjdC5JZG1Sb2xlLlV1aWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KS5tYXAoZnVuY3Rpb24gKHVzZXJPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlkZW50aWZpZXIgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2VyT2JqZWN0LklkbVVzZXIgJiYgdXNlck9iamVjdC5JZG1Vc2VyLklzR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgPSB1c2VyT2JqZWN0LklkbVVzZXIuR3JvdXBMYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdXNlck9iamVjdC5JZG1Vc2VyLkF0dHJpYnV0ZXMgJiYgdXNlck9iamVjdC5JZG1Vc2VyLkF0dHJpYnV0ZXNbXCJkaXNwbGF5TmFtZVwiXSA/IHVzZXJPYmplY3QuSWRtVXNlci5BdHRyaWJ1dGVzW1wiZGlzcGxheU5hbWVcIl0gOiBpZGVudGlmaWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwibWRpIG1kaS1mb2xkZXItYWNjb3VudFwiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVzZXJPYmplY3QuSWRtVXNlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciA9IHVzZXJPYmplY3QuSWRtVXNlci5Mb2dpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdXNlck9iamVjdC5JZG1Vc2VyLkF0dHJpYnV0ZXMgJiYgdXNlck9iamVjdC5JZG1Vc2VyLkF0dHJpYnV0ZXNbXCJkaXNwbGF5TmFtZVwiXSA/IHVzZXJPYmplY3QuSWRtVXNlci5BdHRyaWJ1dGVzW1wiZGlzcGxheU5hbWVcIl0gOiBpZGVudGlmaWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNoYXJlZCA9IHVzZXJPYmplY3QuSWRtVXNlci5BdHRyaWJ1dGVzICYmIHVzZXJPYmplY3QuSWRtVXNlci5BdHRyaWJ1dGVzW1wicHJvZmlsZVwiXSA9PT0gXCJzaGFyZWRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaGFyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJtZGkgbWRpLWFjY291bnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwibWRpIG1kaS1hY2NvdW50LWJveC1vdXRsaW5lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyID0gdXNlck9iamVjdC5JZG1Sb2xlLlV1aWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHVzZXJPYmplY3QuSWRtUm9sZS5MYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcIm1kaSBtZGktYWNjb3VudC1tdWx0aXBsZS1vdXRsaW5lXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVFeGlzdHMgfD0gbGFiZWwgPT09IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29tcG9uZW50ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTWVudUl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRJY29uOiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5Gb250SWNvbiwgeyBjbGFzc05hbWU6IGljb24sIHN0eWxlOiB7IG1hcmdpbjogJzAgMTJweCcgfSB9KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJPYmplY3Q6IHVzZXJPYmplY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1wdHlWYWx1ZUxpc3QgPSB2YWx1ZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0ZW1wb3JhcnkgY3JlYXRlIHVzZXJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgIXZhbHVlRXhpc3RzICYmICghZXhpc3RpbmdPbmx5IHx8IGZyZWVWYWx1ZUFsbG93ZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtID0gX3B5ZGlvMlsnZGVmYXVsdCddLmdldE1lc3NhZ2VzKClbXCI0NDhcIl0gfHwgXCJjcmVhdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNyZWF0ZUl0ZW0gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5NZW51SXRlbSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6IHZhbHVlICsgKGZyZWVWYWx1ZUFsbG93ZWQgPyAnJyA6ICcgKCcgKyBtICsgJyknKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRJY29uOiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5Gb250SWNvbiwgeyBjbGFzc05hbWU6IFwibWRpIG1kaS1hY2NvdW50LXBsdXNcIiwgc3R5bGU6IHsgbWFyZ2luOiAnMCAxMnB4JyB9IH0pXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBbeyB0ZXh0OiB2YWx1ZSwgdmFsdWU6IGNyZWF0ZUl0ZW0gfV0uY29uY2F0KHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiB2YWx1ZXMsIGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiB1c2VyIHNlbGVjdHMgYSB2YWx1ZSBmcm9tIHRoZSBsaXN0XG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICovXG4gICAgb25Db21wbGV0ZXJSZXF1ZXN0OiBmdW5jdGlvbiBvbkNvbXBsZXRlclJlcXVlc3QodmFsdWUsIGluZGV4KSB7XG4gICAgICAgIHZhciBmcmVlVmFsdWVBbGxvd2VkID0gdGhpcy5wcm9wcy5mcmVlVmFsdWVBbGxvd2VkO1xuXG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuZGF0YVNvdXJjZS5tYXAoZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LnRleHQgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZW50cnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgIXZhbHVlLnVzZXJPYmplY3QgJiYgdGhpcy5wcm9wcy5mcmVlVmFsdWVBbGxvd2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblZhbHVlU2VsZWN0ZWQoeyBGcmVlVmFsdWU6IHZhbHVlLnRleHQgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNlYXJjaFRleHQ6ICcnLCBkYXRhU291cmNlOiBbXSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUudXNlck9iamVjdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25WYWx1ZVNlbGVjdGVkKHZhbHVlLnVzZXJPYmplY3QpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmcmVlVmFsdWVBbGxvd2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblZhbHVlU2VsZWN0ZWQoeyBGcmVlVmFsdWU6IHZhbHVlLnRleHQgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjcmVhdGVVc2VyOiB2YWx1ZS50ZXh0IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNlYXJjaFRleHQ6ICcnLCBkYXRhU291cmNlOiBbXSB9KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VycyBvblZhbHVlU2VsZWN0ZWQgcHJvcHMgY2FsbGJhY2tcbiAgICAgKiBAcGFyYW0ge1B5ZGlvLlVzZXJ9IG5ld1VzZXJcbiAgICAgKi9cbiAgICBvblVzZXJDcmVhdGVkOiBmdW5jdGlvbiBvblVzZXJDcmVhdGVkKG5ld1VzZXIpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblZhbHVlU2VsZWN0ZWQobmV3VXNlcik7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjcmVhdGVVc2VyOiBudWxsIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSB1c2VyIGNyZWF0aW9uIGZvcm1cbiAgICAgKi9cbiAgICBvbkNyZWF0aW9uQ2FuY2VsbGVkOiBmdW5jdGlvbiBvbkNyZWF0aW9uQ2FuY2VsbGVkKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY3JlYXRlVXNlcjogbnVsbCB9KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogT3BlbiBhZGRyZXNzIGJvb2sgaW5zaWRlIGEgUG9wb3ZlclxuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIG9wZW5BZGRyZXNzQm9vazogZnVuY3Rpb24gb3BlbkFkZHJlc3NCb29rKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgYWRkcmVzc0Jvb2tPcGVuOiB0cnVlLFxuICAgICAgICAgICAgYWRkcmVzc0Jvb2tBbmNob3I6IGV2ZW50LmN1cnJlbnRUYXJnZXRcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENsb3NlIGFkZHJlc3MgYm9vayBwb3BvdmVyXG4gICAgICovXG4gICAgY2xvc2VBZGRyZXNzQm9vazogZnVuY3Rpb24gY2xvc2VBZGRyZXNzQm9vaygpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFkZHJlc3NCb29rT3BlbjogZmFsc2UgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIGFuIGVudHJ5IGZyb20gYWRyZXNzIGJvb2suXG4gICAgICogQHBhcmFtIGl0ZW1cbiAgICAgKi9cbiAgICBvbkFkZHJlc3NCb29rSXRlbVNlbGVjdGVkOiBmdW5jdGlvbiBvbkFkZHJlc3NCb29rSXRlbVNlbGVjdGVkKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblZhbHVlU2VsZWN0ZWQoaXRlbSk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdmFyIGRhdGFTb3VyY2UgPSBfc3RhdGUuZGF0YVNvdXJjZTtcbiAgICAgICAgdmFyIGNyZWF0ZVVzZXIgPSBfc3RhdGUuY3JlYXRlVXNlcjtcblxuICAgICAgICB2YXIgY29udGFpbmVyU3R5bGUgPSB7IHBvc2l0aW9uOiAncmVsYXRpdmUnLCBvdmVyZmxvdzogJ3Zpc2libGUnIH07XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBjb250YWluZXJTdHlsZSwgcmVmOiBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLl9wb3BvdmVyQW5jaG9yID0gZWw7XG4gICAgICAgICAgICAgICAgfSB9LFxuICAgICAgICAgICAgIWNyZWF0ZVVzZXIgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuQXV0b0NvbXBsZXRlLCB7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBfbWF0ZXJpYWxVaS5BdXRvQ29tcGxldGUubm9GaWx0ZXIsXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSxcbiAgICAgICAgICAgICAgICBzZWFyY2hUZXh0OiB0aGlzLnN0YXRlLnNlYXJjaFRleHQsXG4gICAgICAgICAgICAgICAgb25VcGRhdGVJbnB1dDogdGhpcy50ZXh0RmllbGRVcGRhdGUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvcGVuT25Gb2N1czogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmbG9hdGluZ0xhYmVsVGV4dDogdGhpcy5wcm9wcy5maWVsZExhYmVsLFxuICAgICAgICAgICAgICAgIHVuZGVybGluZVNob3c6ICF0aGlzLnByb3BzLnVuZGVybGluZUhpZGUsXG4gICAgICAgICAgICAgICAgZnVsbFdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9uTmV3UmVxdWVzdDogdGhpcy5vbkNvbXBsZXRlclJlcXVlc3QsXG4gICAgICAgICAgICAgICAgbGlzdFN0eWxlOiB7IG1heEhlaWdodDogMzUwLCBvdmVyZmxvd1k6ICdhdXRvJyB9LFxuICAgICAgICAgICAgICAgIG9uRm9jdXM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLmxvYWRCdWZmZXJlZChfdGhpczIuc3RhdGUuc2VhcmNoVGV4dCwgMTAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNyZWF0ZVVzZXIgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuVGV4dEZpZWxkLCB7XG4gICAgICAgICAgICAgICAgZmxvYXRpbmdMYWJlbFRleHQ6IHRoaXMucHJvcHMuZmllbGRMYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZ2xvYmFsLnB5ZGlvLk1lc3NhZ2VIYXNoWzQ4NV0gKyAnICgnICsgdGhpcy5zdGF0ZS5jcmVhdGVVc2VyICsgJyknLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB1bmRlcmxpbmVTaG93OiAhdGhpcy5wcm9wcy51bmRlcmxpbmVIaWRlXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICFjcmVhdGVVc2VyICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgcG9zaXRpb246ICdhYnNvbHV0ZScsIHJpZ2h0OiA0LCBib3R0b206IDE0LCBoZWlnaHQ6IDIwLCB3aWR0aDogMjAgfSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlJlZnJlc2hJbmRpY2F0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogMjAsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiB0aGlzLnN0YXRlLmxvYWRpbmcgPyAnbG9hZGluZycgOiAnaGlkZSdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuc2hvd0FkZHJlc3NCb29rICYmICFjcmVhdGVVc2VyICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9hZGRyZXNzYm9va0FkZHJlc3NCb29rMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgbW9kZTogJ3BvcG92ZXInLFxuICAgICAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvLFxuICAgICAgICAgICAgICAgIGxvYWRlclN0eWxlOiB7IHdpZHRoOiAzMjAsIGhlaWdodDogNDIwIH0sXG4gICAgICAgICAgICAgICAgb25JdGVtU2VsZWN0ZWQ6IHRoaXMub25BZGRyZXNzQm9va0l0ZW1TZWxlY3RlZCxcbiAgICAgICAgICAgICAgICB1c2Vyc0Zyb206IHRoaXMucHJvcHMudXNlcnNGcm9tLFxuICAgICAgICAgICAgICAgIGRpc2FibGVTZWFyY2g6IHRydWVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuUG9wb3ZlcixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW46IGNyZWF0ZVVzZXIsXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvckVsOiB0aGlzLl9wb3BvdmVyQW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW46IHsgaG9yaXpvbnRhbDogJ2xlZnQnLCB2ZXJ0aWNhbDogJ2JvdHRvbScgfSxcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0T3JpZ2luOiB7IGhvcml6b250YWw6ICdsZWZ0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlOiB0aGlzLm9uQ3JlYXRpb25DYW5jZWxsZWQsXG4gICAgICAgICAgICAgICAgICAgIGNhbkF1dG9Qb3NpdGlvbjogZmFsc2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNyZWF0ZVVzZXIgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX1VzZXJDcmVhdGlvbkZvcm0yWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgb25Vc2VyQ3JlYXRlZDogdGhpcy5vblVzZXJDcmVhdGVkLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiB0aGlzLm9uQ3JlYXRpb25DYW5jZWxsZWQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6IDM1MCwgaGVpZ2h0OiAzMjAgfSxcbiAgICAgICAgICAgICAgICAgICAgbmV3VXNlck5hbWU6IHRoaXMuc3RhdGUuY3JlYXRlVXNlcixcbiAgICAgICAgICAgICAgICAgICAgcHlkaW86IHRoaXMucHJvcHMucHlkaW9cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxufSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVzZXJzTG9hZGVyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX05lc3RlZExpc3RJdGVtID0gcmVxdWlyZSgnLi9OZXN0ZWRMaXN0SXRlbScpO1xuXG52YXIgX05lc3RlZExpc3RJdGVtMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX05lc3RlZExpc3RJdGVtKTtcblxudmFyIF9Vc2Vyc0xpc3QgPSByZXF1aXJlKCcuL1VzZXJzTGlzdCcpO1xuXG52YXIgX1VzZXJzTGlzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Vc2Vyc0xpc3QpO1xuXG52YXIgX1JpZ2h0UGFuZWxDYXJkID0gcmVxdWlyZSgnLi9SaWdodFBhbmVsQ2FyZCcpO1xuXG52YXIgX1JpZ2h0UGFuZWxDYXJkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1JpZ2h0UGFuZWxDYXJkKTtcblxudmFyIF9TZWFyY2hQYW5lbCA9IHJlcXVpcmUoJy4vU2VhcmNoUGFuZWwnKTtcblxudmFyIF9TZWFyY2hQYW5lbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZWFyY2hQYW5lbCk7XG5cbnZhciBfTG9hZGVycyA9IHJlcXVpcmUoJy4vTG9hZGVycycpO1xuXG52YXIgX0xvYWRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTG9hZGVycyk7XG5cbnZhciBfVGVhbUNyZWF0aW9uRm9ybSA9IHJlcXVpcmUoJy4uL1RlYW1DcmVhdGlvbkZvcm0nKTtcblxudmFyIF9UZWFtQ3JlYXRpb25Gb3JtMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RlYW1DcmVhdGlvbkZvcm0pO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9tYXRlcmlhbFVpU3R5bGVzID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWkvc3R5bGVzJyk7XG5cbnZhciBfYXZhdGFyQWN0aW9uc1BhbmVsID0gcmVxdWlyZSgnLi4vYXZhdGFyL0FjdGlvbnNQYW5lbCcpO1xuXG52YXIgX2F2YXRhckFjdGlvbnNQYW5lbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hdmF0YXJBY3Rpb25zUGFuZWwpO1xuXG52YXIgX1VzZXJDcmVhdGlvbkZvcm0gPSByZXF1aXJlKCcuLi9Vc2VyQ3JlYXRpb25Gb3JtJyk7XG5cbnZhciBfVXNlckNyZWF0aW9uRm9ybTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Vc2VyQ3JlYXRpb25Gb3JtKTtcblxudmFyIF9weWRpb0h0dHBBcGkgPSByZXF1aXJlKCdweWRpby9odHRwL2FwaScpO1xuXG52YXIgX3B5ZGlvSHR0cEFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb0h0dHBBcGkpO1xuXG4vKipcbiAqIEhpZ2ggbGV2ZWwgY29tcG9uZW50IHRvIGJyb3dzZSB1c2VycywgZ3JvdXBzIGFuZCB0ZWFtcywgZWl0aGVyIGluIGEgbGFyZ2UgZm9ybWF0IChtb2RlPSdib29rJykgb3IgYSBtb3JlIGNvbXBhY3RcbiAqIGZvcm1hdCAobW9kZT0nc2VsZWN0b3InfCdwb3BvdmVyJykuXG4gKiBBZGRyZXNzIGJvb2sgYWxsb3dzIHRvIGNyZWF0ZSBleHRlcm5hbCB1c2VycywgdGVhbXMsIGFuZCBhbHNvIHRvIGJyb3dzZSB0cnVzdGVkIHNlcnZlciBkaXJlY3RvcmllcyBpZiBGZWRlcmF0ZWQgU2hhcmluZ1xuICogaXMgYWN0aXZlLlxuICovXG5cbnZhciBfUHlkaW8kcmVxdWlyZUxpYiA9IF9weWRpbzJbJ2RlZmF1bHQnXS5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9QeWRpbyRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xudmFyIEFkZHJlc3NCb29rID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0FkZHJlc3NCb29rJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICAvKipcbiAgICAgICAgICogTWFpbiBpbnN0YW5jZSBvZiBweWRpb1xuICAgICAgICAgKi9cbiAgICAgICAgcHlkaW86IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuaW5zdGFuY2VPZihfcHlkaW8yWydkZWZhdWx0J10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogRGlzcGxheSBtb2RlLCBlaXRoZXIgbGFyZ2UgKGJvb2spIG9yIHNtYWxsIHBpY2tlciAoJ3NlbGVjdG9yJywgJ3BvcG92ZXInKS5cbiAgICAgICAgICovXG4gICAgICAgIG1vZGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub25lT2YoWydib29rJywgJ3NlbGVjdG9yJywgJ3BvcG92ZXInXSkuaXNSZXF1aXJlZCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZSBib29rIG1vZGUgYnV0IGRpc3BsYXkgYXMgY29sdW1uXG4gICAgICAgICAqL1xuICAgICAgICBib29rQ29sdW1uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDYWxsYmFjayB0cmlnZ2VyZWQgaW4gJ3NlbGVjdG9yJyBtb2RlIHdoZW5ldmVyIGFuIGl0ZW0gaXMgY2xpY2tlZC5cbiAgICAgICAgICovXG4gICAgICAgIG9uSXRlbVNlbGVjdGVkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEaXNwbGF5IHVzZXJzIG9ubHksIG5vIHRlYW1zIG9yIGdyb3Vwc1xuICAgICAgICAgKi9cbiAgICAgICAgdXNlcnNPbmx5OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDaG9vc2UgdmFyaW91cyB1c2VyIHNvdXJjZXMsIGVpdGhlciB0aGUgbG9jYWwgZGlyZWN0b3J5IG9yIHJlbW90ZSAoID0gdHJ1c3RlZCApIHNlcnZlcnMuXG4gICAgICAgICAqL1xuICAgICAgICB1c2Vyc0Zyb206IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub25lT2YoWydsb2NhbCcsICdyZW1vdGUnLCAnYW55J10pLFxuICAgICAgICAvKipcbiAgICAgICAgICogRGlzYWJsZSB0aGUgc2VhcmNoIGVuZ2luZVxuICAgICAgICAgKi9cbiAgICAgICAgZGlzYWJsZVNlYXJjaDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogVGhlbWUgb2JqZWN0IHBhc3NlZCBieSBtdWlUaGVtZWFibGUoKSB3cmFwcGVyXG4gICAgICAgICAqL1xuICAgICAgICBtdWlUaGVtZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaWxsIGJlIHBhc3NlZCB0byB0aGUgUG9wb3ZlciBvYmplY3RcbiAgICAgICAgICovXG4gICAgICAgIHBvcG92ZXJTdHlsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2VkIGFzIGEgYnV0dG9uIHRvIG9wZW4gdGhlIHNlbGVjdG9yIGluIGEgcG9wb3ZlclxuICAgICAgICAgKi9cbiAgICAgICAgcG9wb3ZlckJ1dHRvbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaWxsIGJlIHBhc3NlZCB0byB0aGUgUG9wb3ZlciBjb250YWluZXIgb2JqZWN0XG4gICAgICAgICAqL1xuICAgICAgICBwb3BvdmVyQ29udGFpbmVyU3R5bGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogV2lsbCBiZSBwYXNzZWQgdG8gdGhlIFBvcG92ZXIgSWNvbiBCdXR0b24uXG4gICAgICAgICAqL1xuICAgICAgICBwb3BvdmVySWNvbkJ1dHRvblN0eWxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdFxuICAgIH0sXG5cbiAgICBnZXREZWZhdWx0UHJvcHM6IGZ1bmN0aW9uIGdldERlZmF1bHRQcm9wcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1vZGU6ICdib29rJyxcbiAgICAgICAgICAgIHVzZXJzT25seTogZmFsc2UsXG4gICAgICAgICAgICB1c2Vyc0Zyb206ICdhbnknLFxuICAgICAgICAgICAgdGVhbXNPbmx5OiBmYWxzZSxcbiAgICAgICAgICAgIGRpc2FibGVTZWFyY2g6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHMucHlkaW87XG4gICAgICAgIHZhciBtb2RlID0gX3Byb3BzLm1vZGU7XG4gICAgICAgIHZhciB1c2Vyc09ubHkgPSBfcHJvcHMudXNlcnNPbmx5O1xuICAgICAgICB2YXIgdXNlcnNGcm9tID0gX3Byb3BzLnVzZXJzRnJvbTtcbiAgICAgICAgdmFyIHRlYW1zT25seSA9IF9wcm9wcy50ZWFtc09ubHk7XG4gICAgICAgIHZhciBkaXNhYmxlU2VhcmNoID0gX3Byb3BzLmRpc2FibGVTZWFyY2g7XG5cbiAgICAgICAgdmFyIGdldE1lc3NhZ2UgPSBmdW5jdGlvbiBnZXRNZXNzYWdlKGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMucHJvcHMuZ2V0TWVzc2FnZShpZCwgJycpO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgYXV0aENvbmZpZ3MgPSBweWRpby5nZXRQbHVnaW5Db25maWdzKCdjb3JlLmF1dGgnKTtcblxuICAgICAgICB2YXIgcm9vdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRlYW1zT25seSkge1xuICAgICAgICAgICAgcm9vdCA9IHtcbiAgICAgICAgICAgICAgICBpZDogJ3RlYW1zJyxcbiAgICAgICAgICAgICAgICBsYWJlbDogZ2V0TWVzc2FnZSg1NjgpLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuTG9hZGVyOiBfTG9hZGVyczJbJ2RlZmF1bHQnXS5sb2FkVGVhbXMsXG4gICAgICAgICAgICAgICAgX3BhcmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICBfbm90U2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZWFtcycsXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZTogJysgJyArIGdldE1lc3NhZ2UoNTY5KSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiBnZXRNZXNzYWdlKDU3MCksXG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcm9vdDogcm9vdCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW06IHJvb3QsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmlnaHRQYW5lSXRlbTogbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJvb3QgPSB7XG4gICAgICAgICAgICBpZDogJ3Jvb3QnLFxuICAgICAgICAgICAgbGFiZWw6IGdldE1lc3NhZ2UoNTkyKSxcbiAgICAgICAgICAgIHR5cGU6ICdyb290JyxcbiAgICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXVxuICAgICAgICB9O1xuICAgICAgICBpZiAodXNlcnNGcm9tICE9PSAncmVtb3RlJykge1xuICAgICAgICAgICAgaWYgKGF1dGhDb25maWdzLmdldCgnVVNFUl9DUkVBVEVfVVNFUlMnKSkge1xuICAgICAgICAgICAgICAgIHJvb3QuY29sbGVjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAnZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldE1lc3NhZ2UoNTkzKSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ21kaSBtZGktYWNjb3VudC1uZXR3b3JrJyxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNMb2FkZXI6IF9Mb2FkZXJzMlsnZGVmYXVsdCddLmxvYWRFeHRlcm5hbFVzZXJzLFxuICAgICAgICAgICAgICAgICAgICBfcGFyZW50OiByb290LFxuICAgICAgICAgICAgICAgICAgICBfbm90U2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3VzZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZTogJysgJyArIGdldE1lc3NhZ2UoNDg0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZTogZ2V0TWVzc2FnZSg1ODIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF1c2Vyc09ubHkpIHtcbiAgICAgICAgICAgICAgICByb290LmNvbGxlY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDogJ3RlYW1zJyxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldE1lc3NhZ2UoNTY4KSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ21kaSBtZGktYWNjb3VudC1tdWx0aXBsZScsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuTG9hZGVyOiBfTG9hZGVyczJbJ2RlZmF1bHQnXS5sb2FkVGVhbXMsXG4gICAgICAgICAgICAgICAgICAgIF9wYXJlbnQ6IHJvb3QsXG4gICAgICAgICAgICAgICAgICAgIF9ub3RTZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGVhbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlOiAnKyAnICsgZ2V0TWVzc2FnZSg1NjkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiBnZXRNZXNzYWdlKDU3MCksXG4gICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb290LmNvbGxlY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiAnUFlESU9fR1JQXy8nLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRNZXNzYWdlKDU4NCksXG4gICAgICAgICAgICAgICAgaWNvbjogJ21kaSBtZGktYWNjb3VudC1ib3gnLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuTG9hZGVyOiBfTG9hZGVyczJbJ2RlZmF1bHQnXS5sb2FkR3JvdXBzLFxuICAgICAgICAgICAgICAgIGl0ZW1zTG9hZGVyOiBfTG9hZGVyczJbJ2RlZmF1bHQnXS5sb2FkR3JvdXBVc2VycyxcbiAgICAgICAgICAgICAgICBfcGFyZW50OiByb290LFxuICAgICAgICAgICAgICAgIF9ub3RTZWxlY3RhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBvY3NSZW1vdGVzID0gcHlkaW8uZ2V0UGx1Z2luQ29uZmlncygnY29yZS5vY3MnKS5nZXQoJ1RSVVNURURfU0VSVkVSUycpO1xuICAgICAgICBpZiAob2NzUmVtb3RlcyAmJiAhdXNlcnNPbmx5ICYmIHVzZXJzRnJvbSAhPT0gJ2xvY2FsJykge1xuICAgICAgICAgICAgdmFyIHJlbW90ZXMgPSBKU09OLnBhcnNlKG9jc1JlbW90ZXMpO1xuICAgICAgICAgICAgdmFyIHJlbW90ZXNOb2RlcyA9IHtcbiAgICAgICAgICAgICAgICBpZDogJ3JlbW90ZXMnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRNZXNzYWdlKDU5NCksXG4gICAgICAgICAgICAgICAgLy9pY29uOidtZGkgbWRpLXNlcnZlcicsXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbnM6IFtdLFxuICAgICAgICAgICAgICAgIF9wYXJlbnQ6IHJvb3QsXG4gICAgICAgICAgICAgICAgX25vdFNlbGVjdGFibGU6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIHJlbW90ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlbW90ZXMuaGFzT3duUHJvcGVydHkoaykpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIHJlbW90ZXNOb2Rlcy5jb2xsZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGssXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiByZW1vdGVzW2tdLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiAnbWRpIG1kaS1zZXJ2ZXItbmV0d29yaycsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdyZW1vdGUnLFxuICAgICAgICAgICAgICAgICAgICBfcGFyZW50OiByZW1vdGVzTm9kZXMsXG4gICAgICAgICAgICAgICAgICAgIF9ub3RTZWxlY3RhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVtb3Rlc05vZGVzLmNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJvb3QuY29sbGVjdGlvbnMucHVzaChyZW1vdGVzTm9kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJvb3Q6IHJvb3QsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW06IG1vZGUgPT09ICdzZWxlY3RvcicgPyByb290IDogcm9vdC5jb2xsZWN0aW9uc1swXSxcbiAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgcmlnaHRQYW5lSXRlbTogbnVsbFxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtICYmIHRoaXMub25Gb2xkZXJDbGlja2VkKHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtKTtcbiAgICB9LFxuXG4gICAgb25Gb2xkZXJDbGlja2VkOiBmdW5jdGlvbiBvbkZvbGRlckNsaWNrZWQoaXRlbSkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciB0ZWFtc1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5tb2RlID09PSAnc2VsZWN0b3InICYmIGl0ZW0uSWRtUm9sZSAmJiBpdGVtLklkbVJvbGUuSXNUZWFtKSB7XG4gICAgICAgICAgICB0aGlzLm9uVXNlckxpc3RJdGVtQ2xpY2tlZChpdGVtKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcblxuICAgICAgICBfTG9hZGVyczJbJ2RlZmF1bHQnXS5jaGlsZHJlbkFzUHJvbWlzZShpdGVtLCBmYWxzZSkudGhlbihmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIF9Mb2FkZXJzMlsnZGVmYXVsdCddLmNoaWxkcmVuQXNQcm9taXNlKGl0ZW0sIHRydWUpLnRoZW4oZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2VsZWN0ZWRJdGVtOiBpdGVtLCBsb2FkaW5nOiBmYWxzZSB9LCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIG9uVXNlckxpc3RJdGVtQ2xpY2tlZDogZnVuY3Rpb24gb25Vc2VyTGlzdEl0ZW1DbGlja2VkKGl0ZW0pIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25JdGVtU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHZhciB1T2JqZWN0ID0gbmV3IFB5ZGlvVXNlcnMuVXNlcihpdGVtLmlkLCBpdGVtLmxhYmVsLCBpdGVtLnR5cGUsIGl0ZW0uZ3JvdXAsIGl0ZW0uYXZhdGFyLCBpdGVtLnRlbXBvcmFyeSwgaXRlbS5leHRlcm5hbCk7XG4gICAgICAgICAgICBpZiAoaXRlbS50cnVzdGVkX3NlcnZlcl9pZCkge1xuICAgICAgICAgICAgICAgIHVPYmplY3QudHJ1c3RlZFNlcnZlcklkID0gaXRlbS50cnVzdGVkX3NlcnZlcl9pZDtcbiAgICAgICAgICAgICAgICB1T2JqZWN0LnRydXN0ZWRTZXJ2ZXJMYWJlbCA9IGl0ZW0udHJ1c3RlZF9zZXJ2ZXJfbGFiZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1T2JqZWN0Ll91dWlkID0gaXRlbS51dWlkO1xuICAgICAgICAgICAgaWYgKGl0ZW0uSWRtVXNlcikgdU9iamVjdC5JZG1Vc2VyID0gaXRlbS5JZG1Vc2VyO1xuICAgICAgICAgICAgaWYgKGl0ZW0uSWRtUm9sZSkgdU9iamVjdC5JZG1Sb2xlID0gaXRlbS5JZG1Sb2xlO1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkl0ZW1TZWxlY3RlZCh1T2JqZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyByaWdodFBhbmVJdGVtOiBpdGVtIH0pO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9uQ3JlYXRlQWN0aW9uOiBmdW5jdGlvbiBvbkNyZWF0ZUFjdGlvbihpdGVtKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjcmVhdGVEaWFsb2dJdGVtOiBpdGVtIH0pO1xuICAgIH0sXG5cbiAgICBjbG9zZUNyZWF0ZURpYWxvZ0FuZFJlbG9hZDogZnVuY3Rpb24gY2xvc2VDcmVhdGVEaWFsb2dBbmRSZWxvYWQoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjcmVhdGVEaWFsb2dJdGVtOiBudWxsIH0pO1xuICAgICAgICB0aGlzLnJlbG9hZEN1cnJlbnROb2RlKCk7XG4gICAgfSxcblxuICAgIG9uQ2FyZFVwZGF0ZUFjdGlvbjogZnVuY3Rpb24gb25DYXJkVXBkYXRlQWN0aW9uKGl0ZW0pIHtcbiAgICAgICAgaWYgKGl0ZW0uX3BhcmVudCAmJiBpdGVtLl9wYXJlbnQgPT09IHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZEN1cnJlbnROb2RlKCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgb25EZWxldGVBY3Rpb246IGZ1bmN0aW9uIG9uRGVsZXRlQWN0aW9uKHBhcmVudEl0ZW0sIHNlbGVjdGlvbikge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICB2YXIgc2tpcENvbmZpcm0gPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICBpZiAoIXNraXBDb25maXJtICYmICFjb25maXJtKHRoaXMucHJvcHMuZ2V0TWVzc2FnZSgyNzgpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAocGFyZW50SXRlbS5hY3Rpb25zLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3VzZXJzJzpcbiAgICAgICAgICAgICAgICBQcm9taXNlLmFsbChzZWxlY3Rpb24ubWFwKGZ1bmN0aW9uICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpczMuc3RhdGUucmlnaHRQYW5lSXRlbSA9PT0gdXNlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMzLnNldFN0YXRlKHsgcmlnaHRQYW5lSXRlbTogbnVsbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkuZGVsZXRlSWRtVXNlcih1c2VyLklkbVVzZXIpO1xuICAgICAgICAgICAgICAgIH0pKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMzLnJlbG9hZEN1cnJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZWFtcyc6XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAodGVhbSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXMzLnN0YXRlLnJpZ2h0UGFuZUl0ZW0gPT09IHRlYW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy5zZXRTdGF0ZSh7IHJpZ2h0UGFuZUl0ZW06IG51bGwgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLmRlbGV0ZVJvbGUodGVhbS5JZG1Sb2xlLlV1aWQpO1xuICAgICAgICAgICAgICAgIH0pKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMzLnJlbG9hZEN1cnJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZWFtJzpcbiAgICAgICAgICAgICAgICBQcm9taXNlLmFsbChzZWxlY3Rpb24ubWFwKGZ1bmN0aW9uICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfcHlkaW9IdHRwQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKS5nZXRJZG1BcGkoKS5yZW1vdmVVc2VyRnJvbVRlYW0ocGFyZW50SXRlbS5JZG1Sb2xlLlV1aWQsIHVzZXIuSWRtVXNlci5Mb2dpbik7XG4gICAgICAgICAgICAgICAgfSkpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczMucmVsb2FkQ3VycmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgb3BlblBvcG92ZXI6IGZ1bmN0aW9uIG9wZW5Qb3BvdmVyKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgcG9wb3Zlck9wZW46IHRydWUsXG4gICAgICAgICAgICBwb3BvdmVyQW5jaG9yOiBldmVudC5jdXJyZW50VGFyZ2V0XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICBjbG9zZVBvcG92ZXI6IGZ1bmN0aW9uIGNsb3NlUG9wb3ZlcigpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHBvcG92ZXJPcGVuOiBmYWxzZSB9KTtcbiAgICB9LFxuXG4gICAgcmVsb2FkQ3VycmVudE5vZGU6IGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnROb2RlKCkge1xuICAgICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5sZWFmTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtLmNvbGxlY3Rpb25zTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Gb2xkZXJDbGlja2VkKHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoX3RoaXM0LnN0YXRlLnJpZ2h0UGFuZUl0ZW0pIHtcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgclBhbmVJZCA9IF90aGlzNC5zdGF0ZS5yaWdodFBhbmVJdGVtLmlkO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZm91bmRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxlYWZzID0gX3RoaXM0LnN0YXRlLnNlbGVjdGVkSXRlbS5sZWFmcyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbGxlY3Rpb25zID0gX3RoaXM0LnN0YXRlLnNlbGVjdGVkSXRlbS5jb2xsZWN0aW9ucyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgW10uY29uY2F0KGxlYWZzLCBjb2xsZWN0aW9ucykuZm9yRWFjaChmdW5jdGlvbiAobGVhZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlYWYuaWQgPT09IHJQYW5lSWQpIGZvdW5kSXRlbSA9IGxlYWY7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczQuc2V0U3RhdGUoeyByaWdodFBhbmVJdGVtOiBmb3VuZEl0ZW0gfSk7XG4gICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIHJlbG9hZEN1cnJlbnRBdFBhZ2U6IGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRBdFBhZ2UobGV0dGVyT3JSYW5nZSkge1xuICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5sZWFmTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtLmNvbGxlY3Rpb25zTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIGlmIChsZXR0ZXJPclJhbmdlID09PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0uY3VycmVudFBhcmFtcyA9IG51bGw7XG4gICAgICAgIH0gZWxzZSBpZiAobGV0dGVyT3JSYW5nZS5pbmRleE9mKCctJykgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5yYW5nZSA9IGxldHRlck9yUmFuZ2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5yYW5nZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5jdXJyZW50UGFyYW1zID0geyBhbHBoYV9wYWdlczogJ3RydWUnLCB2YWx1ZTogbGV0dGVyT3JSYW5nZSB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25Gb2xkZXJDbGlja2VkKHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtKTtcbiAgICB9LFxuXG4gICAgcmVsb2FkQ3VycmVudFdpdGhTZWFyY2g6IGZ1bmN0aW9uIHJlbG9hZEN1cnJlbnRXaXRoU2VhcmNoKHZhbHVlKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkQ3VycmVudEF0UGFnZSgtMSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0ubGVhZkxvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5jb2xsZWN0aW9uc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5jdXJyZW50UGFyYW1zID0geyBoYXNfc2VhcmNoOiB0cnVlLCB2YWx1ZTogdmFsdWUsIGV4aXN0aW5nX29ubHk6IHRydWUgfTtcbiAgICAgICAgdGhpcy5vbkZvbGRlckNsaWNrZWQodGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0pO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgbW9kZSA9IF9wcm9wczIubW9kZTtcbiAgICAgICAgdmFyIGdldE1lc3NhZ2UgPSBfcHJvcHMyLmdldE1lc3NhZ2U7XG4gICAgICAgIHZhciBib29rQ29sdW1uID0gX3Byb3BzMi5ib29rQ29sdW1uO1xuXG4gICAgICAgIGlmIChtb2RlID09PSAncG9wb3ZlcicpIHtcblxuICAgICAgICAgICAgdmFyIHBvcG92ZXJTdHlsZSA9IHRoaXMucHJvcHMucG9wb3ZlclN0eWxlIHx8IHt9O1xuICAgICAgICAgICAgdmFyIHBvcG92ZXJDb250YWluZXJTdHlsZSA9IHRoaXMucHJvcHMucG9wb3ZlckNvbnRhaW5lclN0eWxlIHx8IHt9O1xuICAgICAgICAgICAgdmFyIGljb25CdXR0b25TdHlsZSA9IHRoaXMucHJvcHMucG9wb3Zlckljb25CdXR0b25TdHlsZSB8fCB7fTtcbiAgICAgICAgICAgIHZhciBpY29uQnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwge1xuICAgICAgICAgICAgICAgIHN0eWxlOiBfZXh0ZW5kcyh7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCBwYWRkaW5nOiAxNSwgekluZGV4OiAxMDAsIHJpZ2h0OiAwLCB0b3A6IDI1LCBkaXNwbGF5OiB0aGlzLnN0YXRlLmxvYWRpbmcgPyAnbm9uZScgOiAnaW5pdGlhbCcgfSwgaWNvbkJ1dHRvblN0eWxlKSxcbiAgICAgICAgICAgICAgICBpY29uU3R5bGU6IHsgZm9udFNpemU6IDE5LCBjb2xvcjogJ3JnYmEoMCwwLDAsMC42KScgfSxcbiAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiAnbWRpIG1kaS1ib29rLW9wZW4tdmFyaWFudCcsXG4gICAgICAgICAgICAgICAgb25Ub3VjaFRhcDogdGhpcy5vcGVuUG9wb3ZlclxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5wb3BvdmVyQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgaWNvbkJ1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KHRoaXMucHJvcHMucG9wb3ZlckJ1dHRvbi50eXBlLCBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcy5wb3BvdmVyQnV0dG9uLnByb3BzLCB7IG9uVG91Y2hUYXA6IHRoaXMub3BlblBvcG92ZXIgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIGljb25CdXR0b24sXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlBvcG92ZXIsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IHRoaXMuc3RhdGUucG9wb3Zlck9wZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbDogdGhpcy5zdGF0ZS5wb3BvdmVyQW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0T3JpZ2luOiB7IGhvcml6b250YWw6ICdsZWZ0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZTogdGhpcy5jbG9zZVBvcG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogX2V4dGVuZHMoeyBtYXJnaW5MZWZ0OiAyMCB9LCBwb3BvdmVyU3R5bGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgekRlcHRoOiAyXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiBfZXh0ZW5kcyh7IHdpZHRoOiAzMjAsIGhlaWdodDogNDIwIH0sIHBvcG92ZXJDb250YWluZXJTdHlsZSkgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KEFkZHJlc3NCb29rLCBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywgeyBtb2RlOiAnc2VsZWN0b3InIH0pKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfc3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgICAgICB2YXIgc2VsZWN0ZWRJdGVtID0gX3N0YXRlLnNlbGVjdGVkSXRlbTtcbiAgICAgICAgdmFyIHJvb3QgPSBfc3RhdGUucm9vdDtcbiAgICAgICAgdmFyIHJpZ2h0UGFuZUl0ZW0gPSBfc3RhdGUucmlnaHRQYW5lSXRlbTtcbiAgICAgICAgdmFyIGNyZWF0ZURpYWxvZ0l0ZW0gPSBfc3RhdGUuY3JlYXRlRGlhbG9nSXRlbTtcblxuICAgICAgICB2YXIgbGVmdENvbHVtblN0eWxlID0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBfbWF0ZXJpYWxVaVN0eWxlcy5jb2xvcnMuZ3JleTEwMCxcbiAgICAgICAgICAgIHdpZHRoOiAyNTYsXG4gICAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICAgICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbidcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGNlbnRlckNvbXBvbmVudCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHJpZ2h0UGFuZWwgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBsZWZ0UGFuZWwgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICB0b3BBY3Rpb25zUGFuZWwgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBvbkVkaXRMYWJlbCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtLmlkID09PSAnc2VhcmNoJykge1xuXG4gICAgICAgICAgICBjZW50ZXJDb21wb25lbnQgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfU2VhcmNoUGFuZWwyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICBpdGVtOiBzZWxlY3RlZEl0ZW0sXG4gICAgICAgICAgICAgICAgdGl0bGU6IGdldE1lc3NhZ2UoNTgzLCAnJyksXG4gICAgICAgICAgICAgICAgc2VhcmNoTGFiZWw6IGdldE1lc3NhZ2UoNTk1LCAnJyksXG4gICAgICAgICAgICAgICAgb25JdGVtQ2xpY2tlZDogdGhpcy5vblVzZXJMaXN0SXRlbUNsaWNrZWQsXG4gICAgICAgICAgICAgICAgb25Gb2xkZXJDbGlja2VkOiB0aGlzLm9uRm9sZGVyQ2xpY2tlZCxcbiAgICAgICAgICAgICAgICBtb2RlOiBtb2RlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZEl0ZW0udHlwZSA9PT0gJ3JlbW90ZScpIHtcblxuICAgICAgICAgICAgY2VudGVyQ29tcG9uZW50ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX1NlYXJjaFBhbmVsMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgaXRlbTogc2VsZWN0ZWRJdGVtLFxuICAgICAgICAgICAgICAgIHBhcmFtczogeyB0cnVzdGVkX3NlcnZlcl9pZDogc2VsZWN0ZWRJdGVtLmlkIH0sXG4gICAgICAgICAgICAgICAgc2VhcmNoTGFiZWw6IGdldE1lc3NhZ2UoNTk1LCAnJyksXG4gICAgICAgICAgICAgICAgdGl0bGU6IGdldE1lc3NhZ2UoNTk2LCAnJykucmVwbGFjZSgnJXMnLCBzZWxlY3RlZEl0ZW0ubGFiZWwpLFxuICAgICAgICAgICAgICAgIG9uSXRlbUNsaWNrZWQ6IHRoaXMub25Vc2VyTGlzdEl0ZW1DbGlja2VkLFxuICAgICAgICAgICAgICAgIG9uRm9sZGVyQ2xpY2tlZDogdGhpcy5vbkZvbGRlckNsaWNrZWQsXG4gICAgICAgICAgICAgICAgbW9kZTogbW9kZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIHZhciBlbXB0eVN0YXRlUHJpbWFyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciBlbXB0eVN0YXRlU2Vjb25kYXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdmFyIG90aGVyUHJvcHMgPSB7fTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW0uaWQgPT09ICd0ZWFtcycpIHtcbiAgICAgICAgICAgICAgICBlbXB0eVN0YXRlUHJpbWFyeSA9IGdldE1lc3NhZ2UoNTcxLCAnJyk7XG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVNlY29uZGFyeSA9IGdldE1lc3NhZ2UoNTcyLCAnJyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSXRlbS5pZCA9PT0gJ2V4dCcpIHtcbiAgICAgICAgICAgICAgICBlbXB0eVN0YXRlUHJpbWFyeSA9IGdldE1lc3NhZ2UoNTg1LCAnJyk7XG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVNlY29uZGFyeSA9IGdldE1lc3NhZ2UoNTg2LCAnJyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSXRlbS5JZG1Vc2VyICYmIHNlbGVjdGVkSXRlbS5JZG1Vc2VyLklzR3JvdXAgfHwgc2VsZWN0ZWRJdGVtLmlkID09PSAnUFlESU9fR1JQXy8nKSB7XG4gICAgICAgICAgICAgICAgb3RoZXJQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd1N1YmhlYWRlcnM6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2luYXRvclR5cGU6ICEoc2VsZWN0ZWRJdGVtLmN1cnJlbnRQYXJhbXMgJiYgc2VsZWN0ZWRJdGVtLmN1cnJlbnRQYXJhbXMuaGFzX3NlYXJjaCkgJiYgJ2FscGhhJyxcbiAgICAgICAgICAgICAgICAgICAgcGFnaW5hdG9yQ2FsbGJhY2s6IHRoaXMucmVsb2FkQ3VycmVudEF0UGFnZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICBlbmFibGVTZWFyY2g6ICF0aGlzLnByb3BzLmRpc2FibGVTZWFyY2gsXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaExhYmVsOiBnZXRNZXNzYWdlKDU5NSwgJycpLFxuICAgICAgICAgICAgICAgICAgICBvblNlYXJjaDogdGhpcy5yZWxvYWRDdXJyZW50V2l0aFNlYXJjaC5iaW5kKHRoaXMpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKChtb2RlID09PSAnYm9vaycgfHwgYm9va0NvbHVtbikgJiYgc2VsZWN0ZWRJdGVtLklkbVJvbGUgJiYgc2VsZWN0ZWRJdGVtLklkbVJvbGUuSXNUZWFtKSB7XG4gICAgICAgICAgICAgICAgdG9wQWN0aW9uc1BhbmVsID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX2F2YXRhckFjdGlvbnNQYW5lbDJbJ2RlZmF1bHQnXSwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHtcbiAgICAgICAgICAgICAgICAgICAgdGVhbTogc2VsZWN0ZWRJdGVtLFxuICAgICAgICAgICAgICAgICAgICB1c2VyRWRpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlbG9hZEFjdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM1LnJlbG9hZEN1cnJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uRGVsZXRlQWN0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlybShfdGhpczUucHJvcHMuZ2V0TWVzc2FnZSgyNzgpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSBzZWxlY3RlZEl0ZW0uX3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM1LnNldFN0YXRlKHsgc2VsZWN0ZWRJdGVtOiBwYXJlbnQgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM1Lm9uRGVsZXRlQWN0aW9uKHBhcmVudCwgW3NlbGVjdGVkSXRlbV0sIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsIGJvcmRlclRvcDogMCwgYm9yZGVyQm90dG9tOiAwIH1cbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgb25FZGl0TGFiZWwgPSBmdW5jdGlvbiAoaXRlbSwgbmV3TGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkudXBkYXRlVGVhbUxhYmVsKGl0ZW0uSWRtUm9sZS5VdWlkLCBuZXdMYWJlbCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9IHNlbGVjdGVkSXRlbS5fcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM1LnNldFN0YXRlKHsgc2VsZWN0ZWRJdGVtOiBwYXJlbnQgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5yZWxvYWRDdXJyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNlbnRlckNvbXBvbmVudCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9Vc2Vyc0xpc3QyWydkZWZhdWx0J10sIF9leHRlbmRzKHtcbiAgICAgICAgICAgICAgICBpdGVtOiBzZWxlY3RlZEl0ZW0sXG4gICAgICAgICAgICAgICAgb25JdGVtQ2xpY2tlZDogdGhpcy5vblVzZXJMaXN0SXRlbUNsaWNrZWQsXG4gICAgICAgICAgICAgICAgb25Gb2xkZXJDbGlja2VkOiB0aGlzLm9uRm9sZGVyQ2xpY2tlZCxcbiAgICAgICAgICAgICAgICBvbkNyZWF0ZUFjdGlvbjogdGhpcy5vbkNyZWF0ZUFjdGlvbixcbiAgICAgICAgICAgICAgICBvbkRlbGV0ZUFjdGlvbjogdGhpcy5vbkRlbGV0ZUFjdGlvbixcbiAgICAgICAgICAgICAgICByZWxvYWRBY3Rpb246IHRoaXMucmVsb2FkQ3VycmVudE5vZGUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBvbkVkaXRMYWJlbDogb25FZGl0TGFiZWwsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogdGhpcy5zdGF0ZS5sb2FkaW5nLFxuICAgICAgICAgICAgICAgIG1vZGU6IG1vZGUsXG4gICAgICAgICAgICAgICAgYm9va0NvbHVtbjogYm9va0NvbHVtbixcbiAgICAgICAgICAgICAgICBlbXB0eVN0YXRlUHJpbWFyeVRleHQ6IGVtcHR5U3RhdGVQcmltYXJ5LFxuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGVTZWNvbmRhcnlUZXh0OiBlbXB0eVN0YXRlU2Vjb25kYXJ5LFxuICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRoaXMuc3RhdGUucmlnaHRQYW5lSXRlbSA/IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM1LnNldFN0YXRlKHsgcmlnaHRQYW5lSXRlbTogbnVsbCB9KTtcbiAgICAgICAgICAgICAgICB9IDogbnVsbCxcbiAgICAgICAgICAgICAgICBhY3Rpb25zUGFuZWw6IHRvcEFjdGlvbnNQYW5lbCxcbiAgICAgICAgICAgICAgICBhY3Rpb25zRm9yQ2VsbDogdGhpcy5wcm9wcy5hY3Rpb25zRm9yQ2VsbFxuICAgICAgICAgICAgfSwgb3RoZXJQcm9wcykpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByaWdodFBhbmVsU3R5bGUgPSBfZXh0ZW5kcyh7fSwgbGVmdENvbHVtblN0eWxlLCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjogJ3JpZ2h0JyxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICAgIHJpZ2h0OiA4LFxuICAgICAgICAgICAgYm90dG9tOiA4LFxuICAgICAgICAgICAgdG9wOiAxMjAsXG4gICAgICAgICAgICB6SW5kZXg6IDJcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghcmlnaHRQYW5lSXRlbSkge1xuICAgICAgICAgICAgcmlnaHRQYW5lbFN0eWxlID0gX2V4dGVuZHMoe30sIHJpZ2h0UGFuZWxTdHlsZSwge1xuICAgICAgICAgICAgICAgIC8vdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgyNTZweCknLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDApJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gICAgICAgICAgICAgICAgd2lkdGg6IDBcbiAgICAgICAgcmlnaHRQYW5lbCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9SaWdodFBhbmVsQ2FyZDJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgcHlkaW86IHRoaXMucHJvcHMucHlkaW8sXG4gICAgICAgICAgICBvblJlcXVlc3RDbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7IHJpZ2h0UGFuZUl0ZW06IG51bGwgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3R5bGU6IHJpZ2h0UGFuZWxTdHlsZSxcbiAgICAgICAgICAgIG9uQ3JlYXRlQWN0aW9uOiB0aGlzLm9uQ3JlYXRlQWN0aW9uLFxuICAgICAgICAgICAgb25EZWxldGVBY3Rpb246IHRoaXMub25EZWxldGVBY3Rpb24sXG4gICAgICAgICAgICBvblVwZGF0ZUFjdGlvbjogdGhpcy5vbkNhcmRVcGRhdGVBY3Rpb24sXG4gICAgICAgICAgICBpdGVtOiByaWdodFBhbmVJdGVtIH0pO1xuICAgICAgICBpZiAobW9kZSA9PT0gJ2Jvb2snKSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXN0ZWRSb290cyA9IFtdO1xuICAgICAgICAgICAgICAgIHJvb3QuY29sbGVjdGlvbnMubWFwKChmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICBuZXN0ZWRSb290cy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9OZXN0ZWRMaXN0SXRlbTJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBlLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGVkSXRlbS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RlZExldmVsOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50cnk6IGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiB0aGlzLm9uRm9sZGVyQ2xpY2tlZFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIG5lc3RlZFJvb3RzLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRGl2aWRlciwgeyBrZXk6IGUuaWQgKyAnLWRpdmlkZXInIH0pKTtcbiAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzNSkpO1xuICAgICAgICAgICAgICAgIG5lc3RlZFJvb3RzLnBvcCgpO1xuICAgICAgICAgICAgICAgIGxlZnRQYW5lbCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBNYXRlcmlhbFVJLlBhcGVyLFxuICAgICAgICAgICAgICAgICAgICB7IHpEZXB0aDogMSwgc3R5bGU6IF9leHRlbmRzKHt9LCBsZWZ0Q29sdW1uU3R5bGUsIHsgekluZGV4OiAyIH0pIH0sXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgTWF0ZXJpYWxVSS5MaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RlZFJvb3RzXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkaWFsb2dUaXRsZSA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRpYWxvZ0NvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChjcmVhdGVEaWFsb2dJdGVtKSB7XG4gICAgICAgICAgICBpZiAoY3JlYXRlRGlhbG9nSXRlbS5hY3Rpb25zLnR5cGUgPT09ICd1c2VycycpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSA9IGdldE1lc3NhZ2UoNDg0LCAnJyk7XG4gICAgICAgICAgICAgICAgZGlhbG9nQ29udGVudCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyBoZWlnaHQ6IDUwMCB9IH0sXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9Vc2VyQ3JlYXRpb25Gb3JtMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB6RGVwdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBoZWlnaHQ6IDUwMCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VXNlck5hbWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvblVzZXJDcmVhdGVkOiB0aGlzLmNsb3NlQ3JlYXRlRGlhbG9nQW5kUmVsb2FkLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNhbmNlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7IGNyZWF0ZURpYWxvZ0l0ZW06IG51bGwgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHlkaW86IHRoaXMucHJvcHMucHlkaW9cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjcmVhdGVEaWFsb2dJdGVtLmFjdGlvbnMudHlwZSA9PT0gJ3RlYW1zJykge1xuICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlID0gZ2V0TWVzc2FnZSg1NjksICcnKTtcbiAgICAgICAgICAgICAgICBkaWFsb2dDb250ZW50ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX1RlYW1DcmVhdGlvbkZvcm0yWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgb25UZWFtQ3JlYXRlZDogdGhpcy5jbG9zZUNyZWF0ZURpYWxvZ0FuZFJlbG9hZCxcbiAgICAgICAgICAgICAgICAgICAgb25DYW5jZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7IGNyZWF0ZURpYWxvZ0l0ZW06IG51bGwgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3JlYXRlRGlhbG9nSXRlbS5hY3Rpb25zLnR5cGUgPT09ICd0ZWFtJykge1xuICAgICAgICAgICAgICAgIHZhciBzZWxlY3RVc2VyID0gZnVuY3Rpb24gc2VsZWN0VXNlcihpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLmFkZFVzZXJUb1RlYW0oY3JlYXRlRGlhbG9nSXRlbS5JZG1Sb2xlLlV1aWQsIGl0ZW0uSWRtVXNlci5Mb2dpbikudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczUucmVsb2FkQ3VycmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgZGlhbG9nQ29udGVudCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KEFkZHJlc3NCb29rLCB7XG4gICAgICAgICAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvLFxuICAgICAgICAgICAgICAgICAgICBtb2RlOiAnc2VsZWN0b3InLFxuICAgICAgICAgICAgICAgICAgICB1c2Vyc09ubHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVTZWFyY2g6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG9uSXRlbVNlbGVjdGVkOiBzZWxlY3RVc2VyXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlIHx8IHt9O1xuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IF9leHRlbmRzKHsgZGlzcGxheTogJ2ZsZXgnLCBoZWlnaHQ6IG1vZGUgPT09ICdzZWxlY3RvcicgPyA0MjAgOiA0NTAgfSwgc3R5bGUpIH0sXG4gICAgICAgICAgICBsZWZ0UGFuZWwsXG4gICAgICAgICAgICBjZW50ZXJDb21wb25lbnQsXG4gICAgICAgICAgICByaWdodFBhbmVsLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgTWF0ZXJpYWxVSS5EaWFsb2csXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50U3R5bGU6IHsgd2lkdGg6IDM4MCwgbWluV2lkdGg6IDM4MCwgbWF4V2lkdGg6IDM4MCwgcGFkZGluZzogMCB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5U3R5bGU6IHsgcGFkZGluZzogMCB9LFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgcGFkZGluZzogMjAgfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nVGl0bGVcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbW9kYWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvcGVuOiBjcmVhdGVEaWFsb2dJdGVtID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM1LnNldFN0YXRlKHsgY3JlYXRlRGlhbG9nSXRlbTogbnVsbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29udGVudFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxufSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFkZHJlc3NCb29rID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoQWRkcmVzc0Jvb2spO1xuZXhwb3J0c1snZGVmYXVsdCddID0gQWRkcmVzc0Jvb2sgPSBfbWF0ZXJpYWxVaVN0eWxlcy5tdWlUaGVtZWFibGUoKShBZGRyZXNzQm9vayk7XG5leHBvcnRzWydkZWZhdWx0J10gPSBBZGRyZXNzQm9vaztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX21hdGVyaWFsVWlTdHlsZXMgPSByZXF1aXJlKCdtYXRlcmlhbC11aS9zdHlsZXMnKTtcblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG4vKipcbiAqIEFscGhhYmV0IGFuZCBwYWdlcyBnZW5lcmF0b3IgdG8gZ2l2ZSBhIGZpcnN0LWxldHRlci1iYXNlZCBwYWdpbmF0aW9uXG4gKi9cblxudmFyIF9QeWRpbyRyZXF1aXJlTGliID0gX3B5ZGlvMlsnZGVmYXVsdCddLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX1B5ZGlvJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG5cbnZhciBBbHBoYVBhZ2luYXRvciA9IChmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhBbHBoYVBhZ2luYXRvciwgX0NvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBBbHBoYVBhZ2luYXRvcigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFscGhhUGFnaW5hdG9yKTtcblxuICAgICAgICBfQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgQWxwaGFQYWdpbmF0b3IucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcblxuICAgICAgICB2YXIgbGV0dGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknLnNwbGl0KCcnKTtcbiAgICAgICAgbGV0dGVycyA9IFstMV0uY29uY2F0KGxldHRlcnMpO1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGl0ZW0gPSBfcHJvcHMuaXRlbTtcbiAgICAgICAgdmFyIHBhZ2luYXRvckNhbGxiYWNrID0gX3Byb3BzLnBhZ2luYXRvckNhbGxiYWNrO1xuICAgICAgICB2YXIgc3R5bGUgPSBfcHJvcHMuc3R5bGU7XG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gX3Byb3BzLmdldE1lc3NhZ2U7XG5cbiAgICAgICAgdmFyIHBhZ2luYXRvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGl0ZW0ucGFnaW5hdGlvbikge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2l0ZW0kcGFnaW5hdGlvbiA9IGl0ZW0ucGFnaW5hdGlvbjtcbiAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBfaXRlbSRwYWdpbmF0aW9uLnN0YXJ0O1xuICAgICAgICAgICAgICAgIHZhciBlbmQgPSBfaXRlbSRwYWdpbmF0aW9uLmVuZDtcbiAgICAgICAgICAgICAgICB2YXIgbWF4ID0gX2l0ZW0kcGFnaW5hdGlvbi5tYXg7XG4gICAgICAgICAgICAgICAgdmFyIGludGVydmFsID0gX2l0ZW0kcGFnaW5hdGlvbi5pbnRlcnZhbDtcblxuICAgICAgICAgICAgICAgIHZhciB0b3RhbF9wYWdlcyA9IE1hdGguY2VpbChtYXggLyBpbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBNYXRoLmNlaWwoc3RhcnQgLyBpbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgdmFyIHBhZ2VzID0gW107XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b3RhbF9wYWdlczsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2VzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgfXBhZ2luYXRvciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlNlbGVjdEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICB7IGZsb2F0aW5nTGFiZWxUZXh0OiBnZXRNZXNzYWdlKDMzMSksIHN0eWxlOiB7IHdpZHRoOiA2MCB9LCBmdWxsV2lkdGg6IHRydWUsIHZhbHVlOiBjdXJyZW50LCBvbkNoYW5nZTogZnVuY3Rpb24gKGUsIGksIHYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmF0b3JDYWxsYmFjayh2ICogaW50ZXJ2YWwgKyAnLScgKyAodiArIDEpICogaW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSB9LFxuICAgICAgICAgICAgICAgICAgICBwYWdlcy5tYXAoZnVuY3Rpb24gKHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLk1lbnVJdGVtLCB7IHZhbHVlOiBwLCBrZXk6IHAsIHByaW1hcnlUZXh0OiBwICsgMSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjdXJyZW50UGFnZSA9IGl0ZW0uY3VycmVudFBhcmFtcyAmJiBpdGVtLmN1cnJlbnRQYXJhbXMuYWxwaGFfcGFnZXMgJiYgaXRlbS5jdXJyZW50UGFyYW1zLnZhbHVlIHx8IC0xO1xuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBfZXh0ZW5kcyh7fSwgc3R5bGUsIHsgZGlzcGxheTogJ2ZsZXgnLCBwYWRkaW5nUmlnaHQ6IDgsIGFsaWduSXRlbXM6ICdjZW50ZXInIH0pIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZmxleDogMSB9IH0sXG4gICAgICAgICAgICAgICAgZ2V0TWVzc2FnZSgyNDksICcnKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHBhZ2luYXRvcixcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuU2VsZWN0RmllbGQsXG4gICAgICAgICAgICAgICAgeyBmbG9hdGluZ0xhYmVsVGV4dDogZ2V0TWVzc2FnZSg2MjUpLCBzdHlsZTogeyB3aWR0aDogNjAsIG1hcmdpbkxlZnQ6IDIwIH0sIGZ1bGxXaWR0aDogdHJ1ZSwgdmFsdWU6IGN1cnJlbnRQYWdlLCBvbkNoYW5nZTogZnVuY3Rpb24gKGUsIGksIHYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2luYXRvckNhbGxiYWNrKHYpO1xuICAgICAgICAgICAgICAgICAgICB9IH0sXG4gICAgICAgICAgICAgICAgbGV0dGVycy5tYXAoZnVuY3Rpb24gKGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTWVudUl0ZW0sIHsgdmFsdWU6IGwsIGtleTogbCwgcHJpbWFyeVRleHQ6IGwgPT09IC0xID8gZ2V0TWVzc2FnZSg1OTcsICcnKSA6IGwgfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEFscGhhUGFnaW5hdG9yO1xufSkoX3JlYWN0LkNvbXBvbmVudCk7XG5cbkFscGhhUGFnaW5hdG9yLnByb3BUeXBlcyA9IHtcbiAgICAvKipcbiAgICAgKiBDdXJyZW50bHkgc2VsZWN0ZWQgSXRlbVxuICAgICAqL1xuICAgIGl0ZW06IF9yZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIFdoZW4gYSBsZXR0ZXIgaXMgY2xpY2tlZCwgZnVuY3Rpb24obGV0dGVyKVxuICAgICAqL1xuICAgIHBhZ2luYXRvckNhbGxiYWNrOiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAvKipcbiAgICAgKiBNYWluIGluc3RhbmNlIG9mIHB5ZGlvXG4gICAgICovXG4gICAgcHlkaW86IF9yZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihfcHlkaW8yWydkZWZhdWx0J10pLFxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgbW9kZSwgZWl0aGVyIGxhcmdlIChib29rKSBvciBzbWFsbCBwaWNrZXIgKCdzZWxlY3RvcicsICdwb3BvdmVyJykuXG4gICAgICovXG4gICAgbW9kZTogX3JlYWN0LlByb3BUeXBlcy5vbmVPZihbJ2Jvb2snLCAnc2VsZWN0b3InLCAncG9wb3ZlciddKS5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBbHBoYVBhZ2luYXRvciA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKEFscGhhUGFnaW5hdG9yKTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFscGhhUGFnaW5hdG9yID0gX21hdGVyaWFsVWlTdHlsZXMubXVpVGhlbWVhYmxlKCkoQWxwaGFQYWdpbmF0b3IpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBbHBoYVBhZ2luYXRvcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX3B5ZGlvSHR0cEFwaSA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvYXBpJyk7XG5cbnZhciBfcHlkaW9IdHRwQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvSHR0cEFwaSk7XG5cbnZhciBfcHlkaW9VdGlsTGFuZyA9IHJlcXVpcmUoJ3B5ZGlvL3V0aWwvbGFuZycpO1xuXG52YXIgX3B5ZGlvVXRpbExhbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9VdGlsTGFuZyk7XG5cbnZhciBJZG1BcGkgPSBfcHlkaW9IdHRwQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKS5nZXRJZG1BcGkoKTtcblxudmFyIExvYWRlcnMgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIExvYWRlcnMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMb2FkZXJzKTtcbiAgICB9XG5cbiAgICBMb2FkZXJzLmNoaWxkcmVuQXNQcm9taXNlID0gZnVuY3Rpb24gY2hpbGRyZW5Bc1Byb21pc2UoaXRlbSkge1xuICAgICAgICB2YXIgbGVhZiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgY2hpbGRyZW5Mb2FkZXIgPSBpdGVtLmNoaWxkcmVuTG9hZGVyO1xuICAgICAgICB2YXIgaXRlbXNMb2FkZXIgPSBpdGVtLml0ZW1zTG9hZGVyO1xuICAgICAgICB2YXIgbGVhZkxvYWRlZCA9IGl0ZW0ubGVhZkxvYWRlZDtcbiAgICAgICAgdmFyIGNvbGxlY3Rpb25zTG9hZGVkID0gaXRlbS5jb2xsZWN0aW9uc0xvYWRlZDtcbiAgICAgICAgdmFyIGxlYWZzID0gaXRlbS5sZWFmcztcbiAgICAgICAgdmFyIGNvbGxlY3Rpb25zID0gaXRlbS5jb2xsZWN0aW9ucztcblxuICAgICAgICB2YXIgbG9hZGVyID0gbGVhZiA/IGl0ZW1zTG9hZGVyIDogY2hpbGRyZW5Mb2FkZXI7XG4gICAgICAgIHZhciBsb2FkZWQgPSBsZWFmID8gbGVhZkxvYWRlZCA6IGNvbGxlY3Rpb25zTG9hZGVkO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgaWYgKCFsb2FkZWQgJiYgbG9hZGVyKSB7XG4gICAgICAgICAgICAgICAgbG9hZGVyKGl0ZW0sIGZ1bmN0aW9uIChuZXdDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGVhZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5sZWFmcyA9IG5ld0NoaWxkcmVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5sZWFmTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY29sbGVjdGlvbnMgPSBuZXdDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY29sbGVjdGlvbnNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUobmV3Q2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0gKGxlYWYgPyBsZWFmcyA6IGNvbGxlY3Rpb25zKSB8fCBbXTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBMb2FkZXJzLmNvbXB1dGVQYWdpbmF0aW9uID0gZnVuY3Rpb24gY29tcHV0ZVBhZ2luYXRpb24ocmVzdWx0KSB7XG4gICAgICAgIHZhciBjb3VudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHJlc3VsdC5Vc2Vycykge1xuICAgICAgICAgICAgY291bnQgPSByZXN1bHQuVXNlcnMubGVuZ3RoO1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5Hcm91cHMpIHtcbiAgICAgICAgICAgIGNvdW50ID0gcmVzdWx0Lkdyb3Vwcy5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LlRlYW1zKSB7XG4gICAgICAgICAgICBjb3VudCA9IHJlc3VsdC5UZWFtcy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3VsdC5Ub3RhbCA+IGNvdW50KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiByZXN1bHQuT2Zmc2V0LFxuICAgICAgICAgICAgICAgIGVuZDogcmVzdWx0Lk9mZnNldCArIHJlc3VsdC5MaW1pdCxcbiAgICAgICAgICAgICAgICBtYXg6IHJlc3VsdC5Ub3RhbCxcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDogcmVzdWx0LkxpbWl0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgTG9hZGVycy5sb2FkVGVhbXMgPSBmdW5jdGlvbiBsb2FkVGVhbXMoZW50cnksIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBvZmZzZXQgPSAwLFxuICAgICAgICAgICAgbGltaXQgPSA1MDtcbiAgICAgICAgaWYgKGVudHJ5LnJhbmdlKSB7XG4gICAgICAgICAgICB2YXIgX2VudHJ5JHJhbmdlJHNwbGl0ID0gZW50cnkucmFuZ2Uuc3BsaXQoJy0nKTtcblxuICAgICAgICAgICAgdmFyIHN0YXJ0ID0gX2VudHJ5JHJhbmdlJHNwbGl0WzBdO1xuICAgICAgICAgICAgdmFyIGVuZCA9IF9lbnRyeSRyYW5nZSRzcGxpdFsxXTtcblxuICAgICAgICAgICAgb2Zmc2V0ID0gcGFyc2VJbnQoc3RhcnQpO1xuICAgICAgICAgICAgZW5kID0gcGFyc2VJbnQoZW5kKTtcbiAgICAgICAgICAgIGxpbWl0ID0gZW5kIC0gb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIElkbUFwaS5saXN0VGVhbXMoJycsIG9mZnNldCwgbGltaXQpLnRoZW4oZnVuY3Rpb24gKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIGVudHJ5LnBhZ2luYXRpb24gPSBMb2FkZXJzLmNvbXB1dGVQYWdpbmF0aW9uKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgdmFyIGl0ZW1zID0gY29sbGVjdGlvbi5UZWFtcy5tYXAoZnVuY3Rpb24gKHRlYW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBfcGFyZW50OiBlbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHRlYW0uVXVpZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRlYW0uTGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZWFtJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ21kaSBtZGktYWNjb3VudC1tdWx0aXBsZS1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNMb2FkZXI6IExvYWRlcnMubG9hZFRlYW1Vc2VycyxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RlYW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiAnNTc0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF9ub3RTZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBJZG1Sb2xlOiB0ZWFtXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FsbGJhY2soaXRlbXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgTG9hZGVycy5sb2FkR3JvdXBzID0gZnVuY3Rpb24gbG9hZEdyb3VwcyhlbnRyeSwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIHBhdGggPSAnLycsXG4gICAgICAgICAgICBmaWx0ZXIgPSAnJztcbiAgICAgICAgaWYgKGVudHJ5LklkbVVzZXIpIHtcbiAgICAgICAgICAgIHBhdGggPSBfcHlkaW9VdGlsTGFuZzJbJ2RlZmF1bHQnXS50cmltUmlnaHQoZW50cnkuSWRtVXNlci5Hcm91cFBhdGgsICcvJykgKyAnLycgKyBlbnRyeS5JZG1Vc2VyLkdyb3VwTGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVudHJ5LmN1cnJlbnRQYXJhbXMgJiYgZW50cnkuY3VycmVudFBhcmFtcy5oYXNfc2VhcmNoKSB7XG4gICAgICAgICAgICBmaWx0ZXIgPSBlbnRyeS5jdXJyZW50UGFyYW1zLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgSWRtQXBpLmxpc3RHcm91cHMocGF0aCwgZmlsdGVyLCBmYWxzZSwgMCwgMTAwMCkudGhlbihmdW5jdGlvbiAoZ3JvdXBzKSB7XG4gICAgICAgICAgICB2YXIgaXRlbXMgPSBncm91cHMuR3JvdXBzLm1hcChmdW5jdGlvbiAoaWRtVXNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIF9wYXJlbnQ6IGVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBpZDogaWRtVXNlci5VdWlkLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogaWRtVXNlci5Hcm91cExhYmVsLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZ3JvdXAnLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiAnbWRpIG1kaS1hY2NvdW50LW11bHRpcGxlJyxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5Mb2FkZXI6IGVudHJ5LmNoaWxkcmVuTG9hZGVyID8gTG9hZGVycy5sb2FkR3JvdXBzIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNMb2FkZXI6IGVudHJ5Lml0ZW1zTG9hZGVyID8gTG9hZGVycy5sb2FkR3JvdXBVc2VycyA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJhbXM6IGVudHJ5LmN1cnJlbnRQYXJhbXMgJiYgZW50cnkuY3VycmVudFBhcmFtcy5hbHBoYV9wYWdlcyA/IF9leHRlbmRzKHt9LCBlbnRyeS5jdXJyZW50UGFyYW1zKSA6IHt9LFxuICAgICAgICAgICAgICAgICAgICBJZG1Vc2VyOiBpZG1Vc2VyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FsbGJhY2soaXRlbXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgTG9hZGVycy5sb2FkRXh0ZXJuYWxVc2VycyA9IGZ1bmN0aW9uIGxvYWRFeHRlcm5hbFVzZXJzKGVudHJ5LCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgZmlsdGVyID0gJycsXG4gICAgICAgICAgICBvZmZzZXQgPSAwLFxuICAgICAgICAgICAgbGltaXQgPSA1MDtcbiAgICAgICAgaWYgKGVudHJ5LmN1cnJlbnRQYXJhbXMgJiYgZW50cnkuY3VycmVudFBhcmFtcy5hbHBoYV9wYWdlcykge1xuICAgICAgICAgICAgZmlsdGVyID0gZW50cnkuY3VycmVudFBhcmFtcy52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmFuZ2UpIHtcbiAgICAgICAgICAgIHZhciBfZW50cnkkcmFuZ2Ukc3BsaXQyID0gZW50cnkucmFuZ2Uuc3BsaXQoJy0nKTtcblxuICAgICAgICAgICAgdmFyIHN0YXJ0ID0gX2VudHJ5JHJhbmdlJHNwbGl0MlswXTtcbiAgICAgICAgICAgIHZhciBlbmQgPSBfZW50cnkkcmFuZ2Ukc3BsaXQyWzFdO1xuXG4gICAgICAgICAgICBvZmZzZXQgPSBwYXJzZUludChzdGFydCk7XG4gICAgICAgICAgICBlbmQgPSBwYXJzZUludChlbmQpO1xuICAgICAgICAgICAgbGltaXQgPSBlbmQgLSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHB5ZGlvID0gX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRDbGllbnQoKS5nZXRQeWRpb09iamVjdCgpO1xuICAgICAgICBJZG1BcGkubGlzdFVzZXJzKCcvJywgZmlsdGVyLCB0cnVlLCBvZmZzZXQsIGxpbWl0LCAnc2hhcmVkJykudGhlbihmdW5jdGlvbiAodXNlcnMpIHtcbiAgICAgICAgICAgIGVudHJ5LnBhZ2luYXRpb24gPSBMb2FkZXJzLmNvbXB1dGVQYWdpbmF0aW9uKHVzZXJzKTtcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IHVzZXJzLlVzZXJzLmZpbHRlcihmdW5jdGlvbiAoaWRtVXNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpZG1Vc2VyLkxvZ2luICE9PSBweWRpby51c2VyLmlkO1xuICAgICAgICAgICAgfSkubWFwKGZ1bmN0aW9uIChpZG1Vc2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgX3BhcmVudDogZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGlkOiBpZG1Vc2VyLkxvZ2luLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogaWRtVXNlci5BdHRyaWJ1dGVzICYmIGlkbVVzZXIuQXR0cmlidXRlc1tcImRpc3BsYXlOYW1lXCJdID8gaWRtVXNlci5BdHRyaWJ1dGVzW1wiZGlzcGxheU5hbWVcIl0gOiBpZG1Vc2VyLkxvZ2luLFxuICAgICAgICAgICAgICAgICAgICBhdmF0YXI6IGlkbVVzZXIuQXR0cmlidXRlcyAmJiBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJhdmF0YXJcIl0gPyBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJhdmF0YXJcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd1c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWw6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIElkbVVzZXI6IGlkbVVzZXJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYWxsYmFjayhpdGVtcyk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBMb2FkZXJzLmxvYWRHcm91cFVzZXJzID0gZnVuY3Rpb24gbG9hZEdyb3VwVXNlcnMoZW50cnksIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBwYXRoID0gJy8nLFxuICAgICAgICAgICAgZmlsdGVyID0gJycsXG4gICAgICAgICAgICBvZmZzZXQgPSAwLFxuICAgICAgICAgICAgbGltaXQgPSA1MDtcbiAgICAgICAgaWYgKGVudHJ5LklkbVVzZXIpIHtcbiAgICAgICAgICAgIHBhdGggPSBfcHlkaW9VdGlsTGFuZzJbJ2RlZmF1bHQnXS50cmltUmlnaHQoZW50cnkuSWRtVXNlci5Hcm91cFBhdGgsICcvJykgKyAnLycgKyBlbnRyeS5JZG1Vc2VyLkdyb3VwTGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVudHJ5LmN1cnJlbnRQYXJhbXMgJiYgKGVudHJ5LmN1cnJlbnRQYXJhbXMuYWxwaGFfcGFnZXMgfHwgZW50cnkuY3VycmVudFBhcmFtcy5oYXNfc2VhcmNoKSkge1xuICAgICAgICAgICAgZmlsdGVyID0gZW50cnkuY3VycmVudFBhcmFtcy52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmFuZ2UpIHtcbiAgICAgICAgICAgIHZhciBfZW50cnkkcmFuZ2Ukc3BsaXQzID0gZW50cnkucmFuZ2Uuc3BsaXQoJy0nKTtcblxuICAgICAgICAgICAgdmFyIHN0YXJ0ID0gX2VudHJ5JHJhbmdlJHNwbGl0M1swXTtcbiAgICAgICAgICAgIHZhciBlbmQgPSBfZW50cnkkcmFuZ2Ukc3BsaXQzWzFdO1xuXG4gICAgICAgICAgICBvZmZzZXQgPSBwYXJzZUludChzdGFydCk7XG4gICAgICAgICAgICBlbmQgPSBwYXJzZUludChlbmQpO1xuICAgICAgICAgICAgbGltaXQgPSBlbmQgLSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHB5ZGlvID0gX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRDbGllbnQoKS5nZXRQeWRpb09iamVjdCgpO1xuICAgICAgICBJZG1BcGkubGlzdFVzZXJzKHBhdGgsIGZpbHRlciwgZmFsc2UsIG9mZnNldCwgbGltaXQsICchc2hhcmVkJykudGhlbihmdW5jdGlvbiAodXNlcnMpIHtcbiAgICAgICAgICAgIGVudHJ5LnBhZ2luYXRpb24gPSBMb2FkZXJzLmNvbXB1dGVQYWdpbmF0aW9uKHVzZXJzKTtcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IHVzZXJzLlVzZXJzLmZpbHRlcihmdW5jdGlvbiAoaWRtVXNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpZG1Vc2VyLkxvZ2luICE9PSBweWRpby51c2VyLmlkICYmIGlkbVVzZXIuTG9naW4gIT09IFwicHlkaW8uYW5vbi51c2VyXCI7XG4gICAgICAgICAgICB9KS5tYXAoZnVuY3Rpb24gKGlkbVVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBfcGFyZW50OiBlbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGlkbVVzZXIuTG9naW4sXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBpZG1Vc2VyLkF0dHJpYnV0ZXMgJiYgaWRtVXNlci5BdHRyaWJ1dGVzW1wiZGlzcGxheU5hbWVcIl0gPyBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJkaXNwbGF5TmFtZVwiXSA6IGlkbVVzZXIuTG9naW4sXG4gICAgICAgICAgICAgICAgICAgIGF2YXRhcjogaWRtVXNlci5BdHRyaWJ1dGVzICYmIGlkbVVzZXIuQXR0cmlidXRlc1tcImF2YXRhclwiXSA/IGlkbVVzZXIuQXR0cmlidXRlc1tcImF2YXRhclwiXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3VzZXInLFxuICAgICAgICAgICAgICAgICAgICBJZG1Vc2VyOiBpZG1Vc2VyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FsbGJhY2soaXRlbXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgTG9hZGVycy5sb2FkVGVhbVVzZXJzID0gZnVuY3Rpb24gbG9hZFRlYW1Vc2VycyhlbnRyeSwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IDAsXG4gICAgICAgICAgICBsaW1pdCA9IDUwO1xuICAgICAgICBpZiAoZW50cnkucmFuZ2UpIHtcbiAgICAgICAgICAgIHZhciBfZW50cnkkcmFuZ2Ukc3BsaXQ0ID0gZW50cnkucmFuZ2Uuc3BsaXQoJy0nKTtcblxuICAgICAgICAgICAgdmFyIHN0YXJ0ID0gX2VudHJ5JHJhbmdlJHNwbGl0NFswXTtcbiAgICAgICAgICAgIHZhciBlbmQgPSBfZW50cnkkcmFuZ2Ukc3BsaXQ0WzFdO1xuXG4gICAgICAgICAgICBvZmZzZXQgPSBwYXJzZUludChzdGFydCk7XG4gICAgICAgICAgICBlbmQgPSBwYXJzZUludChlbmQpO1xuICAgICAgICAgICAgbGltaXQgPSBlbmQgLSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgSWRtQXBpLmxpc3RVc2Vyc1dpdGhSb2xlKGVudHJ5LklkbVJvbGUuVXVpZCwgb2Zmc2V0LCBsaW1pdCkudGhlbihmdW5jdGlvbiAodXNlcnMpIHtcbiAgICAgICAgICAgIGVudHJ5LnBhZ2luYXRpb24gPSBMb2FkZXJzLmNvbXB1dGVQYWdpbmF0aW9uKHVzZXJzKTtcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IHVzZXJzLlVzZXJzLm1hcChmdW5jdGlvbiAoaWRtVXNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIF9wYXJlbnQ6IGVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBpZDogaWRtVXNlci5Mb2dpbixcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGlkbVVzZXIuQXR0cmlidXRlcyAmJiBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJkaXNwbGF5TmFtZVwiXSA/IGlkbVVzZXIuQXR0cmlidXRlc1tcImRpc3BsYXlOYW1lXCJdIDogaWRtVXNlci5Mb2dpbixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3VzZXInLFxuICAgICAgICAgICAgICAgICAgICBJZG1Vc2VyOiBpZG1Vc2VyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FsbGJhY2soaXRlbXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIExvYWRlcnM7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBMb2FkZXJzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG4vKipcbiAqIExlZnQgcGFuZWwgb2YgdGhlIGFkZHJlc3MgYm9va1xuICogRGlzcGxheSB0cmVldmlldyBoaWVyYXJjaHkgb2YgdXNlcnMsIHRlYW1zLCBncm91cHMuXG4gKi9cblxudmFyIE5lc3RlZExpc3RJdGVtID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKE5lc3RlZExpc3RJdGVtLCBfQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIE5lc3RlZExpc3RJdGVtKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTmVzdGVkTGlzdEl0ZW0pO1xuXG4gICAgICAgIF9Db21wb25lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VycyB0aGlzLnByb3BzLm9uVG91Y2hUYXBcbiAgICAgKi9cblxuICAgIE5lc3RlZExpc3RJdGVtLnByb3RvdHlwZS5vblRvdWNoVGFwID0gZnVuY3Rpb24gb25Ub3VjaFRhcCgpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblRvdWNoVGFwKHRoaXMucHJvcHMuZW50cnkpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZWN1cnNpdmVseSBidWlsZCBvdGhlciBOZXN0ZWRMaXN0SXRlbVxuICAgICAqIEBwYXJhbSBkYXRhXG4gICAgICovXG5cbiAgICBOZXN0ZWRMaXN0SXRlbS5wcm90b3R5cGUuYnVpbGROZXN0ZWRJdGVtcyA9IGZ1bmN0aW9uIGJ1aWxkTmVzdGVkSXRlbXMoZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YS5tYXAoKGZ1bmN0aW9uIChlbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTmVzdGVkTGlzdEl0ZW0sIHtcbiAgICAgICAgICAgICAgICBuZXN0ZWRMZXZlbDogdGhpcy5wcm9wcy5uZXN0ZWRMZXZlbCArIDEsXG4gICAgICAgICAgICAgICAgZW50cnk6IGVudHJ5LFxuICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRoaXMucHJvcHMub25Ub3VjaFRhcCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5wcm9wcy5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBzaG93SWNvbnM6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICB9O1xuXG4gICAgTmVzdGVkTGlzdEl0ZW0ucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBzaG93SWNvbnMgPSBfcHJvcHMuc2hvd0ljb25zO1xuICAgICAgICB2YXIgZW50cnkgPSBfcHJvcHMuZW50cnk7XG4gICAgICAgIHZhciBzZWxlY3RlZCA9IF9wcm9wcy5zZWxlY3RlZDtcbiAgICAgICAgdmFyIGlkID0gZW50cnkuaWQ7XG4gICAgICAgIHZhciBsYWJlbCA9IGVudHJ5LmxhYmVsO1xuICAgICAgICB2YXIgaWNvbiA9IGVudHJ5Lmljb247XG5cbiAgICAgICAgdmFyIGNoaWxkcmVuID0gZW50cnkuY29sbGVjdGlvbnMgfHwgW107XG4gICAgICAgIHZhciBuZXN0ZWQgPSB0aGlzLmJ1aWxkTmVzdGVkSXRlbXMoY2hpbGRyZW4pO1xuICAgICAgICB2YXIgZm9udEljb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChpY29uICYmIHNob3dJY29ucykge1xuICAgICAgICAgICAgZm9udEljb24gPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZvbnRJY29uLCB7IGNsYXNzTmFtZTogaWNvbiB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5MaXN0SXRlbSwge1xuICAgICAgICAgICAgbmVzdGVkTGV2ZWw6IHRoaXMucHJvcHMubmVzdGVkTGV2ZWwsXG4gICAgICAgICAgICBrZXk6IGlkLFxuICAgICAgICAgICAgcHJpbWFyeVRleHQ6IGxhYmVsLFxuICAgICAgICAgICAgb25Ub3VjaFRhcDogdGhpcy5vblRvdWNoVGFwLmJpbmQodGhpcyksXG4gICAgICAgICAgICBuZXN0ZWRJdGVtczogbmVzdGVkLFxuICAgICAgICAgICAgaW5pdGlhbGx5T3BlbjogdHJ1ZSxcbiAgICAgICAgICAgIGxlZnRJY29uOiBmb250SWNvbixcbiAgICAgICAgICAgIGlubmVyRGl2U3R5bGU6IHsgZm9udFdlaWdodDogc2VsZWN0ZWQgPT09IGVudHJ5LmlkID8gNTAwIDogNDAwIH0sXG4gICAgICAgICAgICBzdHlsZTogc2VsZWN0ZWQgPT09IGVudHJ5LmlkID8geyBiYWNrZ3JvdW5kQ29sb3I6IFwiI2VmZWZlZlwiIH0gOiB7fVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIE5lc3RlZExpc3RJdGVtO1xufSkoX3JlYWN0LkNvbXBvbmVudCk7XG5cbk5lc3RlZExpc3RJdGVtLnByb3BUeXBlcyA9IHtcbiAgICAvKipcbiAgICAgKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkZXB0aCBsZXZlbFxuICAgICAqL1xuICAgIG5lc3RlZExldmVsOiBfcmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICAvKipcbiAgICAgKiBDdXJyZW50bHkgc2VsZWN0ZWQgbm9kZSBpZFxuICAgICAqL1xuICAgIHNlbGVjdGVkOiBfcmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0cmlnZ2VyZWQgd2hlbiBhbiBlbnRyeSBpcyBzZWxlY3RlZFxuICAgICAqL1xuICAgIG9uVG91Y2hUYXA6IF9yZWFjdC5Qcm9wVHlwZXMuZnVuY1xufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTmVzdGVkTGlzdEl0ZW07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX1RlYW1DYXJkID0gcmVxdWlyZSgnLi9UZWFtQ2FyZCcpO1xuXG52YXIgX1RlYW1DYXJkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RlYW1DYXJkKTtcblxudmFyIF9Vc2VyQ2FyZCA9IHJlcXVpcmUoJy4vVXNlckNhcmQnKTtcblxudmFyIF9Vc2VyQ2FyZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Vc2VyQ2FyZCk7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBQYXBlciA9IF9yZXF1aXJlLlBhcGVyO1xudmFyIEljb25CdXR0b24gPSBfcmVxdWlyZS5JY29uQnV0dG9uO1xuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgVXNlckNhcmQgb3IgVGVhbUNhcmRcbiAqL1xuXG52YXIgUmlnaHRQYW5lbENhcmQgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFJpZ2h0UGFuZWxDYXJkLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBSaWdodFBhbmVsQ2FyZCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmlnaHRQYW5lbENhcmQpO1xuXG4gICAgX1JlYWN0JENvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgUmlnaHRQYW5lbENhcmQucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcblxuICAgIHZhciBjb250ZW50ID0gdW5kZWZpbmVkO1xuICAgIHZhciBpdGVtID0gdGhpcy5wcm9wcy5pdGVtIHx8IHt9O1xuICAgIGlmIChpdGVtLnR5cGUgPT09ICd1c2VyJykge1xuICAgICAgY29udGVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoX1VzZXJDYXJkMlsnZGVmYXVsdCddLCB0aGlzLnByb3BzKTtcbiAgICB9IGVsc2UgaWYgKGl0ZW0uSWRtUm9sZSAmJiBpdGVtLklkbVJvbGUuSXNUZWFtKSB7XG4gICAgICBjb250ZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChfVGVhbUNhcmQyWydkZWZhdWx0J10sIHRoaXMucHJvcHMpO1xuICAgIH1cblxuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgUGFwZXIsXG4gICAgICB7IHpEZXB0aDogMiwgc3R5bGU6IF9leHRlbmRzKHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfSwgdGhpcy5wcm9wcy5zdHlsZSkgfSxcbiAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkJ1dHRvbiwgeyBpY29uQ2xhc3NOYW1lOiBcIm1kaSBtZGktY2xvc2VcIiwgc3R5bGU6IHsgcG9zaXRpb246ICdhYnNvbHV0ZScsIHRvcDogMCwgcmlnaHQ6IDAgfSwgaWNvblN0eWxlOiB7IGNvbG9yOiAnI2UwZTBlMCcgfSwgb25Ub3VjaFRhcDogdGhpcy5wcm9wcy5vblJlcXVlc3RDbG9zZSB9KSxcbiAgICAgIGNvbnRlbnRcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBSaWdodFBhbmVsQ2FyZDtcbn0pKFJlYWN0LkNvbXBvbmVudCk7XG5cblJpZ2h0UGFuZWxDYXJkLnByb3BUeXBlcyA9IHtcbiAgLyoqXG4gICAqIFB5ZGlvIGluc3RhbmNlXG4gICAqL1xuICBweWRpbzogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW8pLFxuICAvKipcbiAgICogU2VsZWN0ZWQgaXRlbVxuICAgKi9cbiAgaXRlbTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqXG4gICAqIEFwcGxpZXMgdG8gcm9vdCBjb250YWluZXJcbiAgICovXG4gIHN0eWxlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAvKipcbiAgICogRm9yd2FyZGVkIHRvIGNoaWxkXG4gICAqL1xuICBvblJlcXVlc3RDbG9zZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlxuICAgKiBGb3J3YXJkZWQgdG8gY2hpbGRcbiAgICovXG4gIG9uRGVsZXRlQWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgLyoqXG4gICAqIEZvcndhcmRlZCB0byBjaGlsZFxuICAgKi9cbiAgb25VcGRhdGVBY3Rpb246IFJlYWN0LlByb3BUeXBlcy5mdW5jXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSaWdodFBhbmVsQ2FyZDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgX2xvZGFzaERlYm91bmNlID0gcmVxdWlyZSgnbG9kYXNoLmRlYm91bmNlJyk7XG5cbnZhciBfbG9kYXNoRGVib3VuY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbG9kYXNoRGVib3VuY2UpO1xuXG4vKipcbiAqIFJlYWR5IHRvIHVzZSBGb3JtICsgUmVzdWx0IExpc3QgZm9yIHNlYXJjaCB1c2Vyc1xuICovXG5cbnZhciBTZWFyY2hGb3JtID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFNlYXJjaEZvcm0sIF9Db21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gU2VhcmNoRm9ybShwcm9wcywgY29udGV4dCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2VhcmNoRm9ybSk7XG5cbiAgICAgICAgX0NvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHsgdmFsdWU6ICcnIH07XG4gICAgICAgIHRoaXMuc2VhcmNoID0gX2xvZGFzaERlYm91bmNlMlsnZGVmYXVsdCddKHRoaXMuc2VhcmNoLmJpbmQodGhpcyksIDMwMCk7XG4gICAgfVxuXG4gICAgU2VhcmNoRm9ybS5wcm90b3R5cGUuc2VhcmNoID0gZnVuY3Rpb24gc2VhcmNoKCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uU2VhcmNoKHRoaXMuc3RhdGUudmFsdWUpO1xuICAgIH07XG5cbiAgICBTZWFyY2hGb3JtLnByb3RvdHlwZS5vbkNoYW5nZSA9IGZ1bmN0aW9uIG9uQ2hhbmdlKGV2ZW50LCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWU6IHZhbHVlIH0pO1xuICAgICAgICB0aGlzLnNlYXJjaCgpO1xuICAgIH07XG5cbiAgICBTZWFyY2hGb3JtLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgdW5kZXJsaW5lU2hvdyA9IF9wcm9wcy51bmRlcmxpbmVTaG93O1xuICAgICAgICB2YXIgc2VhcmNoTGFiZWwgPSBfcHJvcHMuc2VhcmNoTGFiZWw7XG4gICAgICAgIHZhciBzdHlsZSA9IF9wcm9wcy5zdHlsZTtcbiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5zdGF0ZS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBzdHlsZTogX2V4dGVuZHMoeyBtaW5XaWR0aDogMzIwIH0sIHN0eWxlKSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5UZXh0RmllbGQsIHtcbiAgICAgICAgICAgICAgICBmdWxsV2lkdGg6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgaGludFRleHQ6IHNlYXJjaExhYmVsLFxuICAgICAgICAgICAgICAgIHVuZGVybGluZVNob3c6IHVuZGVybGluZVNob3cgPT09IHVuZGVmaW5lZCA/IHRydWUgOiB1bmRlcmxpbmVTaG93XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gU2VhcmNoRm9ybTtcbn0pKF9yZWFjdC5Db21wb25lbnQpO1xuXG5TZWFyY2hGb3JtLnByb3BUeXBlcyA9IHtcbiAgICAvKipcbiAgICAgKiBMYWJlbCBkaXNwbGF5ZWQgaW4gdGhlIHNlYXJjaCBmaWVsZFxuICAgICAqL1xuICAgIHNlYXJjaExhYmVsOiBfcmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRyaWdnZXJlZCB0byBzZWFyY2hcbiAgICAgKi9cbiAgICBvblNlYXJjaDogX3JlYWN0LlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgLyoqXG4gICAgICogV2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgcm9vdCBlbGVtZW50XG4gICAgICovXG4gICAgc3R5bGU6IF9yZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIFRvIGJlIGFwcGxpZWQgb24gVGV4dEZpZWxkXG4gICAgICovXG4gICAgdW5kZXJsaW5lU2hvdzogX3JlYWN0LlByb3BUeXBlcy5ib29sXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTZWFyY2hGb3JtO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9TZWFyY2hGb3JtID0gcmVxdWlyZSgnLi9TZWFyY2hGb3JtJyk7XG5cbnZhciBfU2VhcmNoRm9ybTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZWFyY2hGb3JtKTtcblxudmFyIF9Vc2Vyc0xpc3QgPSByZXF1aXJlKCcuL1VzZXJzTGlzdCcpO1xuXG52YXIgX1VzZXJzTGlzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Vc2Vyc0xpc3QpO1xuXG52YXIgX0xvYWRlcnMgPSByZXF1aXJlKCcuL0xvYWRlcnMnKTtcblxudmFyIF9Mb2FkZXJzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0xvYWRlcnMpO1xuXG4vKipcbiAqIFJlYWR5IHRvIHVzZSBGb3JtICsgUmVzdWx0IExpc3QgZm9yIHNlYXJjaCB1c2Vyc1xuICovXG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBDb21wb25lbnQgPSBfcmVxdWlyZS5Db21wb25lbnQ7XG52YXIgUHJvcFR5cGVzID0gX3JlcXVpcmUuUHJvcFR5cGVzO1xuXG52YXIgX3JlcXVpcmUkcmVxdWlyZUxpYiA9IHJlcXVpcmUoJ3B5ZGlvJykucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfcmVxdWlyZSRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xuXG52YXIgU2VhcmNoUGFuZWwgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoU2VhcmNoUGFuZWwsIF9Db21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gU2VhcmNoUGFuZWwocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlYXJjaFBhbmVsKTtcblxuICAgICAgICBfQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMuY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IGl0ZW1zOiBbXSB9O1xuICAgIH1cblxuICAgIFNlYXJjaFBhbmVsLnByb3RvdHlwZS5vblNlYXJjaCA9IGZ1bmN0aW9uIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGl0ZW1zOiBbXSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFyYW1zID0geyB2YWx1ZTogdmFsdWUsIGV4aXN0aW5nX29ubHk6ICd0cnVlJyB9O1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5wYXJhbXMpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IF9leHRlbmRzKHt9LCBwYXJhbXMsIHRoaXMucHJvcHMucGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgICBfTG9hZGVyczJbJ2RlZmF1bHQnXS5saXN0VXNlcnMocGFyYW1zLCBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgaXRlbXM6IGNoaWxkcmVuIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgU2VhcmNoUGFuZWwucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBtb2RlID0gX3Byb3BzLm1vZGU7XG4gICAgICAgIHZhciBpdGVtID0gX3Byb3BzLml0ZW07XG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gX3Byb3BzLmdldE1lc3NhZ2U7XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHsgZmxleDogMSwgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyB9IH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgcGFkZGluZzogMTAsIGhlaWdodDogNTYsIGJhY2tncm91bmRDb2xvcjogdGhpcy5zdGF0ZS5zZWxlY3QgPyBhY3RpdmVUYmFyQ29sb3IgOiAnI2ZhZmFmYScsIGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIHRyYW5zaXRpb246IERPTVV0aWxzLmdldEJlemllcnNUcmFuc2l0aW9uKCkgfSB9LFxuICAgICAgICAgICAgICAgIG1vZGUgPT09IFwic2VsZWN0b3JcIiAmJiBpdGVtLl9wYXJlbnQgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChNYXRlcmlhbFVJLkljb25CdXR0b24sIHsgaWNvbkNsYXNzTmFtZTogJ21kaSBtZGktY2hldnJvbi1sZWZ0Jywgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnByb3BzLm9uRm9sZGVyQ2xpY2tlZChpdGVtLl9wYXJlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IH0pLFxuICAgICAgICAgICAgICAgIG1vZGUgPT09ICdib29rJyAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyBmb250U2l6ZTogMjAsIGNvbG9yOiAncmdiYSgwLDAsMCwwLjg3KScsIGZsZXg6IDEgfSB9LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnRpdGxlXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9TZWFyY2hGb3JtMlsnZGVmYXVsdCddLCB7IHN0eWxlOiBtb2RlID09PSAnYm9vaycgPyB7IG1pbldpZHRoOiAzMjAgfSA6IHsgZmxleDogMSB9LCBzZWFyY2hMYWJlbDogdGhpcy5wcm9wcy5zZWFyY2hMYWJlbCwgb25TZWFyY2g6IHRoaXMub25TZWFyY2guYmluZCh0aGlzKSB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX1VzZXJzTGlzdDJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgIG1vZGU6IHRoaXMucHJvcHMubW9kZSxcbiAgICAgICAgICAgICAgICBvbkl0ZW1DbGlja2VkOiB0aGlzLnByb3BzLm9uSXRlbUNsaWNrZWQsXG4gICAgICAgICAgICAgICAgaXRlbTogeyBsZWFmczogdGhpcy5zdGF0ZS5pdGVtcyB9LFxuICAgICAgICAgICAgICAgIG5vVG9vbGJhcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbXB0eVN0YXRlUHJpbWFyeVRleHQ6IGdldE1lc3NhZ2UoNTg3LCAnJyksXG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVNlY29uZGFyeVRleHQ6IGdldE1lc3NhZ2UoNTg4LCAnJylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBTZWFyY2hQYW5lbDtcbn0pKENvbXBvbmVudCk7XG5cblNlYXJjaFBhbmVsLnByb3BUeXBlcyA9IHtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBwYXJhbWV0ZXJzIGFkZGVkIHRvIGxpc3RVc2VycygpIHJlcXVlc3RcbiAgICAgKi9cbiAgICBwYXJhbXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgLyoqXG4gICAgICogTGFiZWwgZGlzcGxheWVkIGluIHRoZSB0b29sYmFyXG4gICAgICovXG4gICAgc2VhcmNoTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdHJpZ2dlcmVkIHdoZW4gYSBzZWFyY2ggcmVzdWx0IGlzIGNsaWNrZWRcbiAgICAgKi9cbiAgICBvbkl0ZW1DbGlja2VkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKipcbiAgICAgKiBDdXJyZW50bHkgc2VsZWN0ZWQgaXRlbSwgcmVxdWlyZWQgZm9yIG5hdmlnYXRpb25cbiAgICAgKi9cbiAgICBpdGVtOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRyaWdnZXJlZCBpZiB0aGUgcmVzdWx0IGlzIGEgY29sbGVjdGlvblxuICAgICAqL1xuICAgIG9uRm9sZGVyQ2xpY2tlZDogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNlYXJjaFBhbmVsID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoU2VhcmNoUGFuZWwpO1xuZXhwb3J0c1snZGVmYXVsdCddID0gU2VhcmNoUGFuZWw7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhvYmosIGtleXMpIHsgdmFyIHRhcmdldCA9IHt9OyBmb3IgKHZhciBpIGluIG9iaikgeyBpZiAoa2V5cy5pbmRleE9mKGkpID49IDApIGNvbnRpbnVlOyBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGkpKSBjb250aW51ZTsgdGFyZ2V0W2ldID0gb2JqW2ldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfVXNlcnNMaXN0ID0gcmVxdWlyZSgnLi9Vc2Vyc0xpc3QnKTtcblxudmFyIF9Vc2Vyc0xpc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXNlcnNMaXN0KTtcblxudmFyIF9Mb2FkZXJzID0gcmVxdWlyZSgnLi9Mb2FkZXJzJyk7XG5cbnZhciBfTG9hZGVyczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Mb2FkZXJzKTtcblxudmFyIF9hdmF0YXJBY3Rpb25zUGFuZWwgPSByZXF1aXJlKCcuLi9hdmF0YXIvQWN0aW9uc1BhbmVsJyk7XG5cbnZhciBfYXZhdGFyQWN0aW9uc1BhbmVsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2F2YXRhckFjdGlvbnNQYW5lbCk7XG5cbnZhciBfcHlkaW9IdHRwQXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC9hcGknKTtcblxudmFyIF9weWRpb0h0dHBBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9IdHRwQXBpKTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIFRleHRGaWVsZCA9IF9yZXF1aXJlLlRleHRGaWVsZDtcbnZhciBGbGF0QnV0dG9uID0gX3JlcXVpcmUuRmxhdEJ1dHRvbjtcbnZhciBDYXJkVGl0bGUgPSBfcmVxdWlyZS5DYXJkVGl0bGU7XG52YXIgRGl2aWRlciA9IF9yZXF1aXJlLkRpdmlkZXI7XG5cbnZhciBfcmVxdWlyZSRyZXF1aXJlTGliID0gcmVxdWlyZSgncHlkaW8nKS5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9yZXF1aXJlJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG5cbi8qKlxuICogRGlzcGxheSBpbmZvIGFib3V0IGEgVGVhbSBpbnNpZGUgYSBwb3BvdmVyLWFibGUgY2FyZFxuICovXG5cbnZhciBUZWFtQ2FyZCA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhUZWFtQ2FyZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBUZWFtQ2FyZChwcm9wcywgY29udGV4dCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGVhbUNhcmQpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IGxhYmVsOiB0aGlzLnByb3BzLml0ZW0ubGFiZWwgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2UgbG9hZGVyIHRvIGdldCB0ZWFtIHBhcnRpY2lwYW50c1xuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICovXG5cbiAgICBUZWFtQ2FyZC5wcm90b3R5cGUubG9hZE1lbWJlcnMgPSBmdW5jdGlvbiBsb2FkTWVtYmVycyhpdGVtKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XG4gICAgICAgIF9Mb2FkZXJzMlsnZGVmYXVsdCddLmNoaWxkcmVuQXNQcm9taXNlKGl0ZW0sIGZhbHNlKS50aGVuKGZ1bmN0aW9uIChjaGlsZHJlbikge1xuICAgICAgICAgICAgX0xvYWRlcnMyWydkZWZhdWx0J10uY2hpbGRyZW5Bc1Byb21pc2UoaXRlbSwgdHJ1ZSkudGhlbihmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG1lbWJlcnM6IGl0ZW0ubGVhZnMsIGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBUZWFtQ2FyZC5wcm90b3R5cGUuY29tcG9uZW50V2lsbE1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbE1vdW50KCkge1xuICAgICAgICB0aGlzLmxvYWRNZW1iZXJzKHRoaXMucHJvcHMuaXRlbSk7XG4gICAgfTtcblxuICAgIFRlYW1DYXJkLnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgdGhpcy5sb2FkTWVtYmVycyhuZXh0UHJvcHMuaXRlbSk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsYWJlbDogbmV4dFByb3BzLml0ZW0ubGFiZWwgfSk7XG4gICAgfTtcblxuICAgIFRlYW1DYXJkLnByb3RvdHlwZS5vbkxhYmVsQ2hhbmdlID0gZnVuY3Rpb24gb25MYWJlbENoYW5nZShlLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbGFiZWw6IHZhbHVlIH0pO1xuICAgIH07XG5cbiAgICBUZWFtQ2FyZC5wcm90b3R5cGUudXBkYXRlTGFiZWwgPSBmdW5jdGlvbiB1cGRhdGVMYWJlbCgpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubGFiZWwgIT09IHRoaXMucHJvcHMuaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkudXBkYXRlVGVhbUxhYmVsKHRoaXMucHJvcHMuaXRlbS5JZG1Sb2xlLlV1aWQsIHRoaXMuc3RhdGUubGFiZWwsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczIucHJvcHMub25VcGRhdGVBY3Rpb24oX3RoaXMyLnByb3BzLml0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRNb2RlOiBmYWxzZSB9KTtcbiAgICB9O1xuXG4gICAgVGVhbUNhcmQucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBpdGVtID0gX3Byb3BzLml0ZW07XG4gICAgICAgIHZhciBvbkRlbGV0ZUFjdGlvbiA9IF9wcm9wcy5vbkRlbGV0ZUFjdGlvbjtcbiAgICAgICAgdmFyIG9uQ3JlYXRlQWN0aW9uID0gX3Byb3BzLm9uQ3JlYXRlQWN0aW9uO1xuICAgICAgICB2YXIgZ2V0TWVzc2FnZSA9IF9wcm9wcy5nZXRNZXNzYWdlO1xuXG4gICAgICAgIHZhciBlZGl0UHJvcHMgPSB7XG4gICAgICAgICAgICB0ZWFtOiBpdGVtLFxuICAgICAgICAgICAgdXNlckVkaXRhYmxlOiB0aGlzLnByb3BzLml0ZW0uSWRtUm9sZS5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSxcbiAgICAgICAgICAgIG9uRGVsZXRlQWN0aW9uOiBmdW5jdGlvbiBvbkRlbGV0ZUFjdGlvbigpIHtcbiAgICAgICAgICAgICAgICBfdGhpczMucHJvcHMub25EZWxldGVBY3Rpb24oaXRlbS5fcGFyZW50LCBbaXRlbV0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uRWRpdEFjdGlvbjogZnVuY3Rpb24gb25FZGl0QWN0aW9uKCkge1xuICAgICAgICAgICAgICAgIF90aGlzMy5zZXRTdGF0ZSh7IGVkaXRNb2RlOiAhX3RoaXMzLnN0YXRlLmVkaXRNb2RlIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlbG9hZEFjdGlvbjogZnVuY3Rpb24gcmVsb2FkQWN0aW9uKCkge1xuICAgICAgICAgICAgICAgIF90aGlzMy5wcm9wcy5vblVwZGF0ZUFjdGlvbihpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgdGl0bGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICB0aXRsZSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBtYXJnaW46IDE2IH0gfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRleHRGaWVsZCwgeyBzdHlsZTogeyBmbGV4OiAxLCBmb250U2l6ZTogMjQgfSwgZnVsbFdpZHRoOiB0cnVlLCBkaXNhYmxlZDogZmFsc2UsIHVuZGVybGluZVNob3c6IGZhbHNlLCB2YWx1ZTogdGhpcy5zdGF0ZS5sYWJlbCwgb25DaGFuZ2U6IHRoaXMub25MYWJlbENoYW5nZS5iaW5kKHRoaXMpIH0pLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRmxhdEJ1dHRvbiwgeyBzZWNvbmRhcnk6IHRydWUsIGxhYmVsOiBnZXRNZXNzYWdlKDQ4KSwgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMzLnVwZGF0ZUxhYmVsKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aXRsZSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FyZFRpdGxlLCB7IHRpdGxlOiB0aGlzLnN0YXRlLmxhYmVsLCBzdWJ0aXRsZTogaXRlbS5sZWFmcyAmJiBpdGVtLmxlYWZzLmxlbmd0aCA/IGdldE1lc3NhZ2UoNTc2KS5yZXBsYWNlKCclcycsIGl0ZW0ubGVhZnMubGVuZ3RoKSA6IGdldE1lc3NhZ2UoNTc3KSB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX3Byb3BzMiA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBzdHlsZSA9IF9wcm9wczIuc3R5bGU7XG5cbiAgICAgICAgdmFyIG90aGVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3Byb3BzMiwgWydzdHlsZSddKTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfYXZhdGFyQWN0aW9uc1BhbmVsMlsnZGVmYXVsdCddLCBfZXh0ZW5kcyh7fSwgb3RoZXJQcm9wcywgZWRpdFByb3BzKSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KERpdmlkZXIsIG51bGwpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfVXNlcnNMaXN0MlsnZGVmYXVsdCddLCB7IHN1YkhlYWRlcjogZ2V0TWVzc2FnZSg1NzUpLCBvbkl0ZW1DbGlja2VkOiBmdW5jdGlvbiAoKSB7fSwgaXRlbTogaXRlbSwgbW9kZTogJ2lubmVyJywgb25EZWxldGVBY3Rpb246IG9uRGVsZXRlQWN0aW9uIH0pXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBUZWFtQ2FyZDtcbn0pKFJlYWN0LkNvbXBvbmVudCk7XG5cblRlYW1DYXJkLnByb3BUeXBlcyA9IHtcbiAgICAvKipcbiAgICAgKiBQeWRpbyBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB5ZGlvOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpbyksXG4gICAgLyoqXG4gICAgICogVGVhbSBkYXRhIG9iamVjdFxuICAgICAqL1xuICAgIGl0ZW06IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgLyoqXG4gICAgICogQXBwbGllZCB0byByb290IGNvbnRhaW5lclxuICAgICAqL1xuICAgIHN0eWxlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIENhbGxlZCB0byBkaXNtaXNzIHRoZSBwb3BvdmVyXG4gICAgICovXG4gICAgb25SZXF1ZXN0Q2xvc2U6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBjdXJyZW50IHRlYW1cbiAgICAgKi9cbiAgICBvbkRlbGV0ZUFjdGlvbjogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGN1cnJlbnQgdGVhbVxuICAgICAqL1xuICAgIG9uVXBkYXRlQWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuZnVuY1xufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVGVhbUNhcmQgPSBQeWRpb0NvbnRleHRDb25zdW1lcihUZWFtQ2FyZCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRlYW1DYXJkO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX2F2YXRhclVzZXJBdmF0YXIgPSByZXF1aXJlKCcuLi9hdmF0YXIvVXNlckF2YXRhcicpO1xuXG52YXIgX2F2YXRhclVzZXJBdmF0YXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXZhdGFyVXNlckF2YXRhcik7XG5cbnZhciBfVXNlckNyZWF0aW9uRm9ybSA9IHJlcXVpcmUoJy4uL1VzZXJDcmVhdGlvbkZvcm0nKTtcblxudmFyIF9Vc2VyQ3JlYXRpb25Gb3JtMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1VzZXJDcmVhdGlvbkZvcm0pO1xuXG4vKipcbiAqIENhcmQgcHJlc2VudGF0aW9uIG9mIGEgdXNlci4gUmVsaWVzIG9uIHRoZSBVc2VyQXZhdGFyIG9iamVjdCxcbiAqIHBsdXMgdGhlIFB5ZGlvRm9ybS5Vc2VyQ3JlYXRpb25Gb3JtIHdoZW4gaW4gZWRpdCBtb2RlLlxuICovXG5cbnZhciBVc2VyQ2FyZCA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhVc2VyQ2FyZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBVc2VyQ2FyZChwcm9wcywgY29udGV4dCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXNlckNhcmQpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IGVkaXRGb3JtOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIFVzZXJDYXJkLnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgaWYgKG5leHRQcm9wcy5pdGVtICE9PSB0aGlzLnByb3BzLml0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlZGl0Rm9ybTogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgVXNlckNhcmQucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgaXRlbSA9IHRoaXMucHJvcHMuaXRlbTtcblxuICAgICAgICB2YXIgZWRpdGFibGVQcm9wcyA9IHt9LFxuICAgICAgICAgICAgZWRpdEZvcm0gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChpdGVtLl9wYXJlbnQgJiYgaXRlbS5fcGFyZW50LmlkID09PSAnZXh0Jykge1xuICAgICAgICAgICAgZWRpdGFibGVQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICB1c2VyRWRpdGFibGU6IGl0ZW0uSWRtVXNlci5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSxcbiAgICAgICAgICAgICAgICBvbkRlbGV0ZUFjdGlvbjogZnVuY3Rpb24gb25EZWxldGVBY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uRGVsZXRlQWN0aW9uKGl0ZW0uX3BhcmVudCwgW2l0ZW1dKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uRWRpdEFjdGlvbjogZnVuY3Rpb24gb25FZGl0QWN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGVkaXRGb3JtOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVsb2FkQWN0aW9uOiBmdW5jdGlvbiByZWxvYWRBY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uVXBkYXRlQWN0aW9uKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5lZGl0Rm9ybSkge1xuICAgICAgICAgICAgZWRpdEZvcm0gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfVXNlckNyZWF0aW9uRm9ybTJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvLFxuICAgICAgICAgICAgICAgIHpEZXB0aDogMCxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyBmbGV4OiAxIH0sXG4gICAgICAgICAgICAgICAgbmV3VXNlck5hbWU6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgZWRpdE1vZGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdXNlckRhdGE6IGl0ZW0sXG4gICAgICAgICAgICAgICAgb25Vc2VyQ3JlYXRlZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5vblVwZGF0ZUFjdGlvbihpdGVtKTtfdGhpcy5zZXRTdGF0ZSh7IGVkaXRGb3JtOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZWRpdEZvcm06IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZWRpdGFibGVQcm9wcyA9IF9leHRlbmRzKHt9LCBlZGl0YWJsZVByb3BzLCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheUxhYmVsOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlBdmF0YXI6IHRydWUsXG4gICAgICAgICAgICAgICAgdXNlRGVmYXVsdEF2YXRhcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyB0ZXh0QWxpZ246ICdjZW50ZXInLCBib3JkZXJCb3R0b206ICcxcHggc29saWQgI2UwZTBlMCcsIHBhZGRpbmc6IDEwLCBiYWNrZ3JvdW5kQ29sb3I6ICcjZmFmYWZhJyB9LFxuICAgICAgICAgICAgICAgIGF2YXRhclN0eWxlOiB7IG1hcmdpbkJvdHRvbTogMTYgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IGVkaXRGb3JtID8geyBoZWlnaHQ6ICcxMDAlJywgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyB9IDoge30gfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9hdmF0YXJVc2VyQXZhdGFyMlsnZGVmYXVsdCddLCBfZXh0ZW5kcyh7XG4gICAgICAgICAgICAgICAgdXNlcklkOiB0aGlzLnByb3BzLml0ZW0uaWQsXG4gICAgICAgICAgICAgICAgcmljaENhcmQ6ICFlZGl0Rm9ybSxcbiAgICAgICAgICAgICAgICBweWRpbzogdGhpcy5wcm9wcy5weWRpbyxcbiAgICAgICAgICAgICAgICBjYXJkU2l6ZTogdGhpcy5wcm9wcy5zdHlsZS53aWR0aFxuICAgICAgICAgICAgfSwgZWRpdGFibGVQcm9wcykpLFxuICAgICAgICAgICAgZWRpdEZvcm1cbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFVzZXJDYXJkO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cblVzZXJDYXJkLnByb3BUeXBlcyA9IHtcbiAgICAvKipcbiAgICAgKiBQeWRpbyBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB5ZGlvOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW8pLFxuICAgIC8qKlxuICAgICAqIFRlYW0gZGF0YSBvYmplY3RcbiAgICAgKi9cbiAgICBpdGVtOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBBcHBsaWVkIHRvIHJvb3QgY29udGFpbmVyXG4gICAgICovXG4gICAgc3R5bGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIENhbGxlZCB0byBkaXNtaXNzIHRoZSBwb3BvdmVyXG4gICAgICovXG4gICAgb25SZXF1ZXN0Q2xvc2U6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAvKipcbiAgICAgKiBEZWxldGUgY3VycmVudCB0ZWFtXG4gICAgICovXG4gICAgb25EZWxldGVBY3Rpb246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAvKipcbiAgICAgKiBVcGRhdGUgY3VycmVudCB0ZWFtXG4gICAgICovXG4gICAgb25VcGRhdGVBY3Rpb246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuY1xufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlckNhcmQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfYXZhdGFyVXNlckF2YXRhciA9IHJlcXVpcmUoJy4uL2F2YXRhci9Vc2VyQXZhdGFyJyk7XG5cbnZhciBfYXZhdGFyVXNlckF2YXRhcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hdmF0YXJVc2VyQXZhdGFyKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9tYXRlcmlhbFVpU3R5bGVzID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWkvc3R5bGVzJyk7XG5cbnZhciBfdmlld3NFbXB0eVN0YXRlVmlldyA9IHJlcXVpcmUoJy4uLy4uL3ZpZXdzL0VtcHR5U3RhdGVWaWV3Jyk7XG5cbnZhciBfdmlld3NFbXB0eVN0YXRlVmlldzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF92aWV3c0VtcHR5U3RhdGVWaWV3KTtcblxudmFyIF9BbHBoYVBhZ2luYXRvciA9IHJlcXVpcmUoJy4vQWxwaGFQYWdpbmF0b3InKTtcblxudmFyIF9BbHBoYVBhZ2luYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BbHBoYVBhZ2luYXRvcik7XG5cbnZhciBfU2VhcmNoRm9ybSA9IHJlcXVpcmUoJy4vU2VhcmNoRm9ybScpO1xuXG52YXIgX1NlYXJjaEZvcm0yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VhcmNoRm9ybSk7XG5cbnZhciBfcHlkaW9VdGlsRG9tID0gcmVxdWlyZSgncHlkaW8vdXRpbC9kb20nKTtcblxudmFyIF9weWRpb1V0aWxEb20yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9VdGlsRG9tKTtcblxudmFyIF9hdmF0YXJDZWxsQWN0aW9uc1JlbmRlcmVyID0gcmVxdWlyZSgnLi4vYXZhdGFyL0NlbGxBY3Rpb25zUmVuZGVyZXInKTtcblxudmFyIF9hdmF0YXJDZWxsQWN0aW9uc1JlbmRlcmVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2F2YXRhckNlbGxBY3Rpb25zUmVuZGVyZXIpO1xuXG52YXIgX3JlcXVpcmUkcmVxdWlyZUxpYiA9IHJlcXVpcmUoJ3B5ZGlvJykucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgTG9hZGVyID0gX3JlcXVpcmUkcmVxdWlyZUxpYi5Mb2FkZXI7XG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfcmVxdWlyZSRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xuXG52YXIgVXNlcnNMaXN0ID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFVzZXJzTGlzdCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBVc2Vyc0xpc3QocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVzZXJzTGlzdCk7XG5cbiAgICAgICAgX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHsgc2VsZWN0OiBmYWxzZSwgc2VsZWN0aW9uOiBbXSwgZWRpdExhYmVsOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIFVzZXJzTGlzdC5wcm90b3R5cGUub25MYWJlbEtleUVudGVyID0gZnVuY3Rpb24gb25MYWJlbEtleUVudGVyKGUpIHtcbiAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgVXNlcnNMaXN0LnByb3RvdHlwZS5vbkxhYmVsQ2hhbmdlID0gZnVuY3Rpb24gb25MYWJlbENoYW5nZShlLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbGFiZWw6IHZhbHVlIH0pO1xuICAgIH07XG5cbiAgICBVc2Vyc0xpc3QucHJvdG90eXBlLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24gdXBkYXRlTGFiZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmxhYmVsICE9PSB0aGlzLnByb3BzLml0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25FZGl0TGFiZWwodGhpcy5wcm9wcy5pdGVtLCB0aGlzLnN0YXRlLmxhYmVsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZWRpdExhYmVsOiBmYWxzZSB9KTtcbiAgICB9O1xuXG4gICAgVXNlcnNMaXN0LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBpdGVtID0gX3Byb3BzLml0ZW07XG4gICAgICAgIHZhciBtb2RlID0gX3Byb3BzLm1vZGU7XG4gICAgICAgIHZhciBwYWdpbmF0b3JUeXBlID0gX3Byb3BzLnBhZ2luYXRvclR5cGU7XG4gICAgICAgIHZhciBsb2FkaW5nID0gX3Byb3BzLmxvYWRpbmc7XG4gICAgICAgIHZhciBlbmFibGVTZWFyY2ggPSBfcHJvcHMuZW5hYmxlU2VhcmNoO1xuICAgICAgICB2YXIgc2hvd1N1YmhlYWRlcnMgPSBfcHJvcHMuc2hvd1N1YmhlYWRlcnM7XG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gX3Byb3BzLmdldE1lc3NhZ2U7XG4gICAgICAgIHZhciBhY3Rpb25zUGFuZWwgPSBfcHJvcHMuYWN0aW9uc1BhbmVsO1xuICAgICAgICB2YXIgbXVpVGhlbWUgPSBfcHJvcHMubXVpVGhlbWU7XG4gICAgICAgIHZhciBib29rQ29sdW1uID0gX3Byb3BzLmJvb2tDb2x1bW47XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wcy5weWRpbztcbiAgICAgICAgdmFyIHJlbG9hZEFjdGlvbiA9IF9wcm9wcy5yZWxvYWRBY3Rpb247XG5cbiAgICAgICAgdmFyIGZvbGRlcnMgPSBpdGVtLmNvbGxlY3Rpb25zIHx8IFtdO1xuICAgICAgICB2YXIgbGVhZnMgPSBpdGVtLmxlYWZzIHx8IFtdO1xuICAgICAgICB2YXIgZm9sZGVyc1N1YkhlYWRlciA9IGZvbGRlcnMubGVuZ3RoICYmIChsZWFmcy5sZW5ndGggfHwgc2hvd1N1YmhlYWRlcnMpID8gW3sgc3ViaGVhZGVyOiBnZXRNZXNzYWdlKCc1MzInKSB9XSA6IFtdO1xuICAgICAgICB2YXIgdXNlcnNTdWJIZWFkZXIgPSBbXTtcbiAgICAgICAgaWYgKHNob3dTdWJoZWFkZXJzIHx8IHBhZ2luYXRvclR5cGUpIHtcbiAgICAgICAgICAgIHVzZXJzU3ViSGVhZGVyID0gW3sgc3ViaGVhZGVyOiBwYWdpbmF0b3JUeXBlID8gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX0FscGhhUGFnaW5hdG9yMlsnZGVmYXVsdCddLCBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywgeyBzdHlsZTogeyBsaW5lSGVpZ2h0OiAnMjBweCcsIHBhZGRpbmc6ICcxNHB4IDAnIH0gfSkpIDogZ2V0TWVzc2FnZSgnMjQ5JykgfV07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGl0ZW1zID0gW10uY29uY2F0KGZvbGRlcnNTdWJIZWFkZXIsIGZvbGRlcnMsIHVzZXJzU3ViSGVhZGVyLCBsZWFmcyk7XG4gICAgICAgIHZhciB0b3RhbCA9IGl0ZW1zLmxlbmd0aDtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gW107XG4gICAgICAgIHZhciB0b2dnbGVTZWxlY3QgPSBmdW5jdGlvbiB0b2dnbGVTZWxlY3QoKSB7XG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdDogIV90aGlzLnN0YXRlLnNlbGVjdCwgc2VsZWN0aW9uOiBbXSB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGNyZWF0ZUFjdGlvbiA9IGZ1bmN0aW9uIGNyZWF0ZUFjdGlvbigpIHtcbiAgICAgICAgICAgIF90aGlzLnByb3BzLm9uQ3JlYXRlQWN0aW9uKGl0ZW0pO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgZGVsZXRlQWN0aW9uID0gZnVuY3Rpb24gZGVsZXRlQWN0aW9uKCkge1xuICAgICAgICAgICAgX3RoaXMucHJvcHMub25EZWxldGVBY3Rpb24oaXRlbSwgX3RoaXMuc3RhdGUuc2VsZWN0aW9uKTtfdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdDogZmFsc2UsIHNlbGVjdGlvbjogW10gfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGFjY2VudENvbG9yID0gbXVpVGhlbWUucGFsZXR0ZS5hY2NlbnQyQ29sb3I7XG4gICAgICAgIHZhciBhcHBCYXIgPSBtdWlUaGVtZS5hcHBCYXI7XG4gICAgICAgIHZhciBzdHlsZXNQcm9wcyA9IHtcbiAgICAgICAgICAgIHRvb2xiYXJIZWlnaHQ6IG1vZGUgPT09ICdib29rJyA/IDU2IDogNDgsXG4gICAgICAgICAgICB0b29sYmFyQmdDb2xvcjogbW9kZSA9PT0gJ2Jvb2snID8gdGhpcy5zdGF0ZS5zZWxlY3QgPyBhY2NlbnRDb2xvciA6ICcjZmFmYWZhJyA6IGFwcEJhci5jb2xvcixcbiAgICAgICAgICAgIHRpdGxlRm9udHNpemU6IG1vZGUgPT09ICdib29rJyA/IDIwIDogMTYsXG4gICAgICAgICAgICB0aXRsZUZvbnRXZWlnaHQ6IDQwMCxcbiAgICAgICAgICAgIHRpdGxlQ29sb3I6IG1vZGUgPT09ICdib29rJyA/IHRoaXMuc3RhdGUuc2VsZWN0ID8gJ3doaXRlJyA6ICdyZ2JhKDAsMCwwLDAuODcpJyA6IGFwcEJhci50ZXh0Q29sb3IsXG4gICAgICAgICAgICB0aXRsZVBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgYnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICcgKyBhY2NlbnRDb2xvcixcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgICAgICAgICAgIG1hcmdpbjogJzAgNHB4JyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMzYsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzNixcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA2XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAyMixcbiAgICAgICAgICAgICAgICBjb2xvcjogYWNjZW50Q29sb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGJvb2tDb2x1bW4pIHtcbiAgICAgICAgICAgIHN0eWxlc1Byb3BzLnRvb2xiYXJCZ0NvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICAgICAgICAgIHN0eWxlc1Byb3BzLnRpdGxlQ29sb3IgPSAncmdiYSgwLDAsMCwwLjU0KSc7XG4gICAgICAgICAgICBzdHlsZXNQcm9wcy50aXRsZUZvbnRzaXplID0gMTQ7XG4gICAgICAgICAgICBzdHlsZXNQcm9wcy50aXRsZUZvbnRXZWlnaHQgPSA1MDA7XG4gICAgICAgICAgICBzdHlsZXNQcm9wcy50aXRsZVBhZGRpbmcgPSAnMTBweCAxNnB4JztcbiAgICAgICAgICAgIHN0eWxlc1Byb3BzLmJ1dHRvbi5ib3JkZXIgPSAnMCc7XG4gICAgICAgICAgICBzdHlsZXNQcm9wcy5pY29uLmNvbG9yID0gbXVpVGhlbWUucGFsZXR0ZS5wcmltYXJ5MUNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGxhYmVsID0gaXRlbS5sYWJlbDtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25FZGl0TGFiZWwgJiYgIXRoaXMuc3RhdGUuc2VsZWN0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5lZGl0TGFiZWwpIHtcbiAgICAgICAgICAgICAgICBsYWJlbCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBmbGV4OiAxIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuVGV4dEZpZWxkLCB7IHN0eWxlOiB7IGZvbnRTaXplOiAyMCB9LCB2YWx1ZTogdGhpcy5zdGF0ZS5sYWJlbCwgb25DaGFuZ2U6IHRoaXMub25MYWJlbENoYW5nZS5iaW5kKHRoaXMpLCBvbktleURvd246IHRoaXMub25MYWJlbEtleUVudGVyLmJpbmQodGhpcykgfSksXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHsgaWNvblN0eWxlOiB7IGNvbG9yOiAnI2UwZTBlMCcgfSwgc2Vjb25kYXJ5OiB0cnVlLCBpY29uQ2xhc3NOYW1lOiBcIm1kaSBtZGktY29udGVudC1zYXZlXCIsIHRvb2x0aXA6IGdldE1lc3NhZ2UoNDgpLCBvblRvdWNoVGFwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMudXBkYXRlTGFiZWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYWJlbCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBmbGV4OiAxIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHsgaWNvblN0eWxlOiB7IGNvbG9yOiAnI2UwZTBlMCcgfSwgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLXBlbmNpbFwiLCB0b29sdGlwOiBnZXRNZXNzYWdlKDQ4KSwgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZWRpdExhYmVsOiB0cnVlLCBsYWJlbDogaXRlbS5sYWJlbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciBjcmVhdGVJY29uID0gJ21kaSBtZGktYWNjb3VudC1wbHVzJztcbiAgICAgICAgaWYgKGl0ZW0uYWN0aW9ucyAmJiBpdGVtLmFjdGlvbnMudHlwZSA9PT0gJ3RlYW1zJykge1xuICAgICAgICAgICAgY3JlYXRlSWNvbiA9ICdtZGkgbWRpLWFjY291bnQtbXVsdGlwbGUtcGx1cyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRvb2xiYXIgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBzdHlsZTogeyBwYWRkaW5nOiBzdHlsZXNQcm9wcy50aXRsZVBhZGRpbmcsIGhlaWdodDogc3R5bGVzUHJvcHMudG9vbGJhckhlaWdodCwgYmFja2dyb3VuZENvbG9yOiBzdHlsZXNQcm9wcy50b29sYmFyQmdDb2xvciwgYm9yZGVyUmFkaXVzOiAnMnB4IDJweCAwIDAnLCBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCB0cmFuc2l0aW9uOiBfcHlkaW9VdGlsRG9tMlsnZGVmYXVsdCddLmdldEJlemllcnNUcmFuc2l0aW9uKCkgfSB9LFxuICAgICAgICAgICAgbW9kZSA9PT0gXCJzZWxlY3RvclwiICYmIGl0ZW0uX3BhcmVudCAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IHN0eWxlOiB7IG1hcmdpbkxlZnQ6IC0xMCB9LCBpY29uQ2xhc3NOYW1lOiAnbWRpIG1kaS1jaGV2cm9uLWxlZnQnLCBvblRvdWNoVGFwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uRm9sZGVyQ2xpY2tlZChpdGVtLl9wYXJlbnQpO1xuICAgICAgICAgICAgICAgIH0gfSksXG4gICAgICAgICAgICBtb2RlID09PSAnYm9vaycgJiYgdG90YWwgPiAwICYmIGl0ZW0uYWN0aW9ucyAmJiBpdGVtLmFjdGlvbnMubXVsdGlwbGUgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuQ2hlY2tib3gsIHsgc3R5bGU6IHsgd2lkdGg6ICdpbml0aWFsJywgbWFyZ2luTGVmdDogdGhpcy5zdGF0ZS5zZWxlY3QgPyA3IDogMTQgfSwgY2hlY2tlZDogdGhpcy5zdGF0ZS5zZWxlY3QsIG9uQ2hlY2s6IHRvZ2dsZVNlbGVjdCB9KSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZmxleDogMiwgZm9udFNpemU6IHN0eWxlc1Byb3BzLnRpdGxlRm9udHNpemUsIGNvbG9yOiBzdHlsZXNQcm9wcy50aXRsZUNvbG9yLCBmb250V2VpZ2h0OiBzdHlsZXNQcm9wcy50aXRsZUZvbnRXZWlnaHQgfSB9LFxuICAgICAgICAgICAgICAgIGxhYmVsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKG1vZGUgPT09ICdib29rJyB8fCBtb2RlID09PSAnc2VsZWN0b3InICYmIGJvb2tDb2x1bW4pICYmIGl0ZW0uYWN0aW9ucyAmJiBpdGVtLmFjdGlvbnMuY3JlYXRlICYmICF0aGlzLnN0YXRlLnNlbGVjdCAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IHN0eWxlOiBzdHlsZXNQcm9wcy5idXR0b24sIGljb25TdHlsZTogc3R5bGVzUHJvcHMuaWNvbiwgaWNvbkNsYXNzTmFtZTogY3JlYXRlSWNvbiwgdG9vbHRpcFBvc2l0aW9uOiBcImJvdHRvbS1sZWZ0XCIsIHRvb2x0aXA6IGdldE1lc3NhZ2UoaXRlbS5hY3Rpb25zLmNyZWF0ZSksIG9uVG91Y2hUYXA6IGNyZWF0ZUFjdGlvbiB9KSxcbiAgICAgICAgICAgIGJvb2tDb2x1bW4gJiYgIWl0ZW0uX3BhcmVudCAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IHN0eWxlOiBzdHlsZXNQcm9wcy5idXR0b24sIGljb25TdHlsZTogc3R5bGVzUHJvcHMuaWNvbiwgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLXdpbmRvdy1yZXN0b3JlXCIsIHRvb2x0aXBQb3NpdGlvbjogXCJib3R0b20tbGVmdFwiLCB0b29sdGlwOiBweWRpby5NZXNzYWdlSGFzaFsnNDExJ10sIG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcHlkaW8uQ29udHJvbGxlci5maXJlQWN0aW9uKCdvcGVuX2FkZHJlc3NfYm9vaycpO1xuICAgICAgICAgICAgICAgIH0gfSksXG4gICAgICAgICAgICBtb2RlID09PSAnYm9vaycgJiYgaXRlbS5hY3Rpb25zICYmIGl0ZW0uYWN0aW9ucy5yZW1vdmUgJiYgdGhpcy5zdGF0ZS5zZWxlY3QgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuUmFpc2VkQnV0dG9uLCB7IHNlY29uZGFyeTogdHJ1ZSwgbGFiZWw6IGdldE1lc3NhZ2UoaXRlbS5hY3Rpb25zLnJlbW92ZSksIGRpc2FibGVkOiAhdGhpcy5zdGF0ZS5zZWxlY3Rpb24ubGVuZ3RoLCBvblRvdWNoVGFwOiBkZWxldGVBY3Rpb24gfSksXG4gICAgICAgICAgICAhdGhpcy5zdGF0ZS5zZWxlY3QgJiYgYWN0aW9uc1BhbmVsLFxuICAgICAgICAgICAgZW5hYmxlU2VhcmNoICYmICFib29rQ29sdW1uICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9TZWFyY2hGb3JtMlsnZGVmYXVsdCddLCB7IHNlYXJjaExhYmVsOiB0aGlzLnByb3BzLnNlYXJjaExhYmVsLCBvblNlYXJjaDogdGhpcy5wcm9wcy5vblNlYXJjaCwgc3R5bGU6IHsgZmxleDogMSwgbWluV2lkdGg6IDExMCB9IH0pLFxuICAgICAgICAgICAgcmVsb2FkQWN0aW9uICYmIChtb2RlID09PSAnYm9vaycgfHwgbW9kZSA9PT0gJ3NlbGVjdG9yJyAmJiBib29rQ29sdW1uKSAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IHN0eWxlOiBzdHlsZXNQcm9wcy5idXR0b24sIGljb25TdHlsZTogc3R5bGVzUHJvcHMuaWNvbiwgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLXJlZnJlc2hcIiwgdG9vbHRpcFBvc2l0aW9uOiBcImJvdHRvbS1sZWZ0XCIsIHRvb2x0aXA6IHB5ZGlvLk1lc3NhZ2VIYXNoWycxNDknXSwgb25Ub3VjaFRhcDogcmVsb2FkQWN0aW9uLCBkaXNhYmxlZDogbG9hZGluZyB9KVxuICAgICAgICApO1xuICAgICAgICAvLyBQQVJFTlQgTk9ERVxuICAgICAgICBpZiAoaXRlbS5fcGFyZW50ICYmIG1vZGUgPT09ICdib29rJyAmJiBpdGVtLl9wYXJlbnQuX3BhcmVudCAmJiBpdGVtLl9wYXJlbnQuaWQgIT09ICd0ZWFtcycpIHtcbiAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTGlzdEl0ZW0sIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdfX3BhcmVudF9fJyxcbiAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogXCIuLlwiLFxuICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7X3RoaXMucHJvcHMub25Gb2xkZXJDbGlja2VkKGl0ZW0uX3BhcmVudCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBsZWZ0QXZhdGFyOiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5BdmF0YXIsIHsgaWNvbjogX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRm9udEljb24sIHsgY2xhc3NOYW1lOiAnbWRpIG1kaS1hcnJvdy11cCcgfSksIHNpemU6IDM2IH0pXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBpZiAodG90YWwpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIHsgaW5zZXQ6IHRydWUsIGtleTogJ3BhcmVudC1kaXZpZGVyJyB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gSVRFTVNcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICAgICAgaWYgKGl0ZW0uc3ViaGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuU3ViaGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogaXRlbS5zdWJoZWFkZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5zdWJoZWFkZXJcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZm9udEljb24gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfYXZhdGFyVXNlckF2YXRhcjJbJ2RlZmF1bHQnXSwgeyBhdmF0YXJTaXplOiAzNiwgcHlkaW86IHRoaXMucHJvcHMucHlkaW8gfHwgcHlkaW8sXG4gICAgICAgICAgICAgICAgdXNlcklkOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgIHVzZXJMYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgICAgICBhdmF0YXI6IGl0ZW0uYXZhdGFyLFxuICAgICAgICAgICAgICAgIGljb246IGl0ZW0uaWNvbixcbiAgICAgICAgICAgICAgICBpZG1Vc2VyOiBpdGVtLklkbVVzZXIsXG4gICAgICAgICAgICAgICAgdXNlclR5cGU6IGl0ZW0udHlwZSB8fCAnZ3JvdXAnLFxuICAgICAgICAgICAgICAgIGF2YXRhck9ubHk6IHRydWUsXG4gICAgICAgICAgICAgICAgdXNlRGVmYXVsdEF2YXRhcjogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgcmlnaHRJY29uQnV0dG9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdmFyIHRvdWNoVGFwID0gZnVuY3Rpb24gdG91Y2hUYXAoZSkge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7X3RoaXMyLnByb3BzLm9uSXRlbUNsaWNrZWQoaXRlbSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGZvbGRlcnMuaW5kZXhPZihpdGVtKSA+IC0xICYmIHRoaXMucHJvcHMub25Gb2xkZXJDbGlja2VkKSB7XG4gICAgICAgICAgICAgICAgdG91Y2hUYXAgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO190aGlzMi5wcm9wcy5vbkZvbGRlckNsaWNrZWQoaXRlbSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3NlbGVjdG9yJyAmJiAhaXRlbS5fbm90U2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICByaWdodEljb25CdXR0b24gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiBcIm1kaSBtZGktYWNjb3VudC1tdWx0aXBsZS1wbHVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiBcIlNlbGVjdCB0aGlzIGdyb3VwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb246ICdib3R0b20tbGVmdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnByb3BzLm9uSXRlbUNsaWNrZWQoaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gJ2lubmVyJyAmJiB0aGlzLnByb3BzLm9uRGVsZXRlQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmlnaHRJY29uQnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwge1xuICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiBcIm1kaSBtZGktZGVsZXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IGdldE1lc3NhZ2UoMjU3KSxcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uOiAnYm90dG9tLWxlZnQnLFxuICAgICAgICAgICAgICAgICAgICBpY29uU3R5bGU6IHsgY29sb3I6ICdyZ2JhKDAsMCwwLDAuMTMpJywgaG92ZXJDb2xvcjogJ3JnYmEoMCwwLDAsMC41MyknIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5wcm9wcy5vbkRlbGV0ZUFjdGlvbihfdGhpczIucHJvcHMuaXRlbSwgW2l0ZW1dKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJvb2tDb2x1bW4gJiYgdGhpcy5wcm9wcy5hY3Rpb25zRm9yQ2VsbCAmJiBpdGVtLnR5cGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbWVudUl0ZW1zID0gbmV3IF9hdmF0YXJDZWxsQWN0aW9uc1JlbmRlcmVyMlsnZGVmYXVsdCddKHB5ZGlvLCB0aGlzLnByb3BzLmFjdGlvbnNGb3JDZWxsLCBudWxsLCBpdGVtKS5yZW5kZXJJdGVtcygpO1xuICAgICAgICAgICAgICAgIGlmIChtZW51SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0SWNvbkJ1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuSWNvbk1lbnUsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkJ1dHRvbkVsZW1lbnQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHsgaWNvbkNsYXNzTmFtZTogJ21kaSBtZGktZG90cy12ZXJ0aWNhbCcsIGljb25TdHlsZTogeyBjb2xvcjogJ3JnYmEoMCwwLDAsLjMzKScgfSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRPcmlnaW46IHsgaG9yaXpvbnRhbDogJ3JpZ2h0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHRJY29uQnV0dG9uID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgc2VsZWN0ID0gZnVuY3Rpb24gc2VsZWN0KGUsIGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzZWxlY3Rpb246IFtdLmNvbmNhdChfdGhpczIuc3RhdGUuc2VsZWN0aW9uLCBbaXRlbV0pIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGF0ZVNlbCA9IF90aGlzMi5zdGF0ZS5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBbXS5jb25jYXQoc3RhdGVTZWwuc2xpY2UoMCwgc3RhdGVTZWwuaW5kZXhPZihpdGVtKSksIHN0YXRlU2VsLnNsaWNlKHN0YXRlU2VsLmluZGV4T2YoaXRlbSkgKyAxKSk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNlbGVjdGlvbjogc2VsZWN0aW9uIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBlbGVtZW50cy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkxpc3RJdGVtLCB7XG4gICAgICAgICAgICAgICAga2V5OiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBpdGVtLmxhYmVsLFxuICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRvdWNoVGFwLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiBtb2RlID09PSAnaW5uZXInLFxuICAgICAgICAgICAgICAgIGxlZnRBdmF0YXI6ICF0aGlzLnN0YXRlLnNlbGVjdCAmJiBmb250SWNvbixcbiAgICAgICAgICAgICAgICByaWdodEljb25CdXR0b246IHJpZ2h0SWNvbkJ1dHRvbixcbiAgICAgICAgICAgICAgICBsZWZ0Q2hlY2tib3g6IHRoaXMuc3RhdGUuc2VsZWN0ICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkNoZWNrYm94LCB7IGNoZWNrZWQ6IHRoaXMuc3RhdGUuc2VsZWN0aW9uLmluZGV4T2YoaXRlbSkgPiAtMSwgb25DaGVjazogc2VsZWN0IH0pXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBpZiAobW9kZSAhPT0gJ2lubmVyJyAmJiBpbmRleCA8IHRvdGFsIC0gMSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRGl2aWRlciwgeyBpbnNldDogdHJ1ZSwga2V5OiBpdGVtLmlkICsgJy1kaXZpZGVyJyB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuXG4gICAgICAgIHZhciBlbXB0eVN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIWVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIGVtcHR5U3RhdGVQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICBzdHlsZTogeyBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsIG1pbkhlaWdodDogMzAwIH0sXG4gICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogJ21kaSBtZGktYWNjb3VudC1vZmYnLFxuICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0SWQ6IHRoaXMucHJvcHMuZW1wdHlTdGF0ZVByaW1hcnlUZXh0IHx8IGdldE1lc3NhZ2UoNjI5KSxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlUZXh0SWQ6IG1vZGUgPT09ICdib29rJyA/IHRoaXMucHJvcHMuZW1wdHlTdGF0ZVNlY29uZGFyeVRleHQgfHwgbnVsbCA6IG51bGxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gJ2Jvb2snICYmIGl0ZW0uYWN0aW9ucyAmJiBpdGVtLmFjdGlvbnMuY3JlYXRlKSB7XG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVByb3BzID0gX2V4dGVuZHMoe30sIGVtcHR5U3RhdGVQcm9wcywge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25MYWJlbElkOiBnZXRNZXNzYWdlKGl0ZW0uYWN0aW9ucy5jcmVhdGUpLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25DYWxsYmFjazogY3JlYXRlQWN0aW9uXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbXB0eVN0YXRlID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3ZpZXdzRW1wdHlTdGF0ZVZpZXcyWydkZWZhdWx0J10sIGVtcHR5U3RhdGVQcm9wcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHsgZmxleDogMSwgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGRpc3BsYXk6ICdmbGV4JyB9LCBvblRvdWNoVGFwOiB0aGlzLnByb3BzLm9uVG91Y2hUYXAgfSxcbiAgICAgICAgICAgIG1vZGUgIT09ICdpbm5lcicgJiYgIXRoaXMucHJvcHMubm9Ub29sYmFyICYmIHRvb2xiYXIsXG4gICAgICAgICAgICAhZW1wdHlTdGF0ZSAmJiAhbG9hZGluZyAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5MaXN0LFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZmxleDogMSwgb3ZlcmZsb3dZOiBtb2RlICE9PSAnaW5uZXInID8gJ2F1dG8nIDogJ2luaXRpYWwnIH0gfSxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnN1YkhlYWRlciAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuU3ViaGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnN1YkhlYWRlclxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZWxlbWVudHNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsb2FkaW5nICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KExvYWRlciwgeyBzdHlsZTogeyBmbGV4OiAxIH0gfSksXG4gICAgICAgICAgICAhbG9hZGluZyAmJiBlbXB0eVN0YXRlLFxuICAgICAgICAgICAgbW9kZSA9PT0gJ3NlbGVjdG9yJyAmJiBlbmFibGVTZWFyY2ggJiYgYm9va0NvbHVtbiAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfU2VhcmNoRm9ybTJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgIHNlYXJjaExhYmVsOiB0aGlzLnByb3BzLnNlYXJjaExhYmVsLFxuICAgICAgICAgICAgICAgIG9uU2VhcmNoOiB0aGlzLnByb3BzLm9uU2VhcmNoLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IHBhZGRpbmc6ICcwIDIwcHgnLCBtaW5XaWR0aDogbnVsbCwgYm9yZGVyVG9wOiAnMXB4IHNvbGlkICNlMGUwZTAnIH0sXG4gICAgICAgICAgICAgICAgdW5kZXJsaW5lU2hvdzogZmFsc2VcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBVc2Vyc0xpc3Q7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuVXNlcnNMaXN0LnByb3BUeXBlcyA9IHtcbiAgICBpdGVtOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNyZWF0ZUFjdGlvbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgIG9uRGVsZXRlQWN0aW9uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25JdGVtQ2xpY2tlZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgIG9uRm9sZGVyQ2xpY2tlZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgIG9uRWRpdExhYmVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgbW9kZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vbmVPZihbJ2Jvb2snLCAnc2VsZWN0b3InLCAnaW5uZXInXSksXG4gICAgYm9va0NvbHVtbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVc2Vyc0xpc3QgPSBQeWRpb0NvbnRleHRDb25zdW1lcihVc2Vyc0xpc3QpO1xuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlcnNMaXN0ID0gX21hdGVyaWFsVWlTdHlsZXMubXVpVGhlbWVhYmxlKCkoVXNlcnNMaXN0KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlcnNMaXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9hZGRyZXNzYm9va0FkZHJlc3NCb29rID0gcmVxdWlyZSgnLi4vYWRkcmVzc2Jvb2svQWRkcmVzc0Jvb2snKTtcblxudmFyIF9hZGRyZXNzYm9va0FkZHJlc3NCb29rMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FkZHJlc3Nib29rQWRkcmVzc0Jvb2spO1xuXG52YXIgX3BvbGljaWVzUmVzb3VyY2VQb2xpY2llc1BhbmVsID0gcmVxdWlyZSgnLi4vLi4vcG9saWNpZXMvUmVzb3VyY2VQb2xpY2llc1BhbmVsJyk7XG5cbnZhciBfcG9saWNpZXNSZXNvdXJjZVBvbGljaWVzUGFuZWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcG9saWNpZXNSZXNvdXJjZVBvbGljaWVzUGFuZWwpO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIFB5ZGlvQXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC9hcGknKTtcbnZhciBSZXNvdXJjZXNNYW5hZ2VyID0gcmVxdWlyZSgncHlkaW8vaHR0cC9yZXNvdXJjZXMtbWFuYWdlcicpO1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgSWNvbkJ1dHRvbiA9IF9yZXF1aXJlLkljb25CdXR0b247XG52YXIgUG9wb3ZlciA9IF9yZXF1aXJlLlBvcG92ZXI7XG5cbnZhciBfcmVxdWlyZTIgPSByZXF1aXJlKCdtYXRlcmlhbC11aS9zdHlsZXMnKTtcblxudmFyIG11aVRoZW1lYWJsZSA9IF9yZXF1aXJlMi5tdWlUaGVtZWFibGU7XG5cbnZhciBfcmVxdWlyZSRyZXF1aXJlTGliID0gcmVxdWlyZSgncHlkaW8nKS5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9yZXF1aXJlJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG52YXIgQXN5bmNDb21wb25lbnQgPSBfcmVxdWlyZSRyZXF1aXJlTGliLkFzeW5jQ29tcG9uZW50O1xuXG52YXIgQWN0aW9uc1BhbmVsID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKEFjdGlvbnNQYW5lbCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBBY3Rpb25zUGFuZWwocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFjdGlvbnNQYW5lbCk7XG5cbiAgICAgICAgX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIHNob3dQaWNrZXI6IGZhbHNlLCBwaWNrZXJBbmNob3I6IG51bGwsXG4gICAgICAgICAgICBzaG93TWFpbGVyOiBmYWxzZSwgbWFpbGVyQW5jaG9yOiBudWxsLFxuICAgICAgICAgICAgc2hvd1BvbGljaWVzOiBmYWxzZSwgcG9saWNpZXNBbmNob3I6IG51bGxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBBY3Rpb25zUGFuZWwucHJvdG90eXBlLm9uVGVhbVNlbGVjdGVkID0gZnVuY3Rpb24gb25UZWFtU2VsZWN0ZWQoaXRlbSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd1BpY2tlcjogZmFsc2UgfSk7XG4gICAgICAgIGlmIChpdGVtLklkbVJvbGUgJiYgaXRlbS5JZG1Sb2xlLklzVGVhbSkge1xuICAgICAgICAgICAgUHlkaW9BcGkuZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLmFkZFVzZXJUb1RlYW0oaXRlbS5JZG1Sb2xlLlV1aWQsIHRoaXMucHJvcHMudXNlcklkLCB0aGlzLnByb3BzLnJlbG9hZEFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQWN0aW9uc1BhbmVsLnByb3RvdHlwZS5vblVzZXJTZWxlY3RlZCA9IGZ1bmN0aW9uIG9uVXNlclNlbGVjdGVkKGl0ZW0pIHtcbiAgICAgICAgLy90aGlzLnNldFN0YXRlKHtzaG93UGlja2VyOiBmYWxzZX0pO1xuICAgICAgICBQeWRpb0FwaS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkuYWRkVXNlclRvVGVhbSh0aGlzLnByb3BzLnRlYW0uaWQsIGl0ZW0uSWRtVXNlci5Mb2dpbiwgdGhpcy5wcm9wcy5yZWxvYWRBY3Rpb24pO1xuICAgIH07XG5cbiAgICBBY3Rpb25zUGFuZWwucHJvdG90eXBlLm9wZW5QaWNrZXIgPSBmdW5jdGlvbiBvcGVuUGlja2VyKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93UGlja2VyOiB0cnVlLCBwaWNrZXJBbmNob3I6IGV2ZW50LmN1cnJlbnRUYXJnZXQgfSk7XG4gICAgfTtcblxuICAgIEFjdGlvbnNQYW5lbC5wcm90b3R5cGUub3BlblBvbGljaWVzID0gZnVuY3Rpb24gb3BlblBvbGljaWVzKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93UG9saWNpZXM6IHRydWUsIHBvbGljaWVzQW5jaG9yOiBldmVudC5jdXJyZW50VGFyZ2V0IH0pO1xuICAgIH07XG5cbiAgICBBY3Rpb25zUGFuZWwucHJvdG90eXBlLm9wZW5NYWlsZXIgPSBmdW5jdGlvbiBvcGVuTWFpbGVyKGV2ZW50KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIHRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgIFJlc291cmNlc01hbmFnZXIubG9hZENsYXNzZXNBbmRBcHBseShbJ1B5ZGlvTWFpbGVyJ10sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgbWFpbGVyTGliTG9hZGVkOiB0cnVlIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHNob3dNYWlsZXI6IHRydWUsIG1haWxlckFuY2hvcjogdGFyZ2V0IH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBBY3Rpb25zUGFuZWwucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgICAgICBpZiAoIXRoaXMucHJvcHMubG9ja09uU3ViUG9wb3Zlck9wZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHRoaXMuc3RhdGUuc2hvd1BpY2tlciB8fCB0aGlzLnN0YXRlLnNob3dNYWlsZXIpICYmICEocHJldlN0YXRlLnNob3dQaWNrZXIgfHwgcHJldlN0YXRlLnNob3dNYWlsZXIpKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmxvY2tPblN1YlBvcG92ZXJPcGVuKHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKCEodGhpcy5zdGF0ZS5zaG93UGlja2VyIHx8IHRoaXMuc3RhdGUuc2hvd01haWxlcikgJiYgKHByZXZTdGF0ZS5zaG93UGlja2VyIHx8IHByZXZTdGF0ZS5zaG93TWFpbGVyKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5sb2NrT25TdWJQb3BvdmVyT3BlbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQWN0aW9uc1BhbmVsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgZ2V0TWVzc2FnZSA9IF9wcm9wcy5nZXRNZXNzYWdlO1xuICAgICAgICB2YXIgbXVpVGhlbWUgPSBfcHJvcHMubXVpVGhlbWU7XG4gICAgICAgIHZhciB0ZWFtID0gX3Byb3BzLnRlYW07XG4gICAgICAgIHZhciB1c2VyID0gX3Byb3BzLnVzZXI7XG4gICAgICAgIHZhciB1c2VyRWRpdGFibGUgPSBfcHJvcHMudXNlckVkaXRhYmxlO1xuICAgICAgICB2YXIgdXNlcklkID0gX3Byb3BzLnVzZXJJZDtcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzLnN0eWxlO1xuICAgICAgICB2YXIgekRlcHRoID0gX3Byb3BzLnpEZXB0aDtcblxuICAgICAgICB2YXIgc3R5bGVzID0ge1xuICAgICAgICAgICAgYnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgLy9iYWNrZ3JvdW5kQ29sb3I6IG11aVRoZW1lLnBhbGV0dGUuYWNjZW50MkNvbG9yLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAnICsgbXVpVGhlbWUucGFsZXR0ZS5hY2NlbnQyQ29sb3IsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNTAlJyxcbiAgICAgICAgICAgICAgICBtYXJnaW46ICcwIDRweCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDM2LFxuICAgICAgICAgICAgICAgIGhlaWdodDogMzYsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGljb246IHtcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMjIsXG4gICAgICAgICAgICAgICAgLy9jb2xvcjogJ3doaXRlJ1xuICAgICAgICAgICAgICAgIGNvbG9yOiBtdWlUaGVtZS5wYWxldHRlLmFjY2VudDJDb2xvclxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgdXNlcm1haWxzID0ge307XG4gICAgICAgIHZhciBhY3Rpb25zID0gW107XG4gICAgICAgIHZhciByZXNvdXJjZVR5cGUgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICByZXNvdXJjZUlkID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodXNlciAmJiB1c2VyLmhhc0VtYWlsKSB7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2goeyBrZXk6ICdtZXNzYWdlJywgbGFiZWw6IGdldE1lc3NhZ2UoNTk4KSwgaWNvbjogJ2VtYWlsJywgY2FsbGJhY2s6IHRoaXMub3Blbk1haWxlci5iaW5kKHRoaXMpIH0pO1xuICAgICAgICAgICAgdXNlcm1haWxzW3VzZXIuaWRdID0gUHlkaW9Vc2Vycy5Vc2VyLmZyb21PYmplY3QodXNlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRlYW0pIHtcbiAgICAgICAgICAgIHJlc291cmNlVHlwZSA9ICd0ZWFtJztcbiAgICAgICAgICAgIHJlc291cmNlSWQgPSB0ZWFtLmlkO1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHsga2V5OiAndXNlcnMnLCBsYWJlbDogZ2V0TWVzc2FnZSg1OTkpLCBpY29uOiAnYWNjb3VudC1tdWx0aXBsZS1wbHVzJywgY2FsbGJhY2s6IHRoaXMub3BlblBpY2tlci5iaW5kKHRoaXMpIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb3VyY2VUeXBlID0gJ3VzZXInO1xuICAgICAgICAgICAgcmVzb3VyY2VJZCA9IHVzZXJJZDtcbiAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7IGtleTogJ3RlYW1zJywgbGFiZWw6IGdldE1lc3NhZ2UoNTczKSwgaWNvbjogJ2FjY291bnQtbXVsdGlwbGUtcGx1cycsIGNhbGxiYWNrOiB0aGlzLm9wZW5QaWNrZXIuYmluZCh0aGlzKSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckVkaXRhYmxlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkVkaXRBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goeyBrZXk6ICdlZGl0JywgbGFiZWw6IHRoaXMucHJvcHMudGVhbSA/IGdldE1lc3NhZ2UoNTgwKSA6IGdldE1lc3NhZ2UoNjAwKSwgaWNvbjogJ3BlbmNpbCcsIGNhbGxiYWNrOiB0aGlzLnByb3BzLm9uRWRpdEFjdGlvbiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7IGtleTogJ3BvbGljaWVzJywgbGFiZWw6ICdWaXNpYmlsaXR5JywgaWNvbjogJ3NlY3VyaXR5JywgY2FsbGJhY2s6IHRoaXMub3BlblBvbGljaWVzLmJpbmQodGhpcykgfSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRlbGV0ZUFjdGlvbikge1xuICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7IGtleTogJ2RlbGV0ZScsIGxhYmVsOiB0aGlzLnByb3BzLnRlYW0gPyBnZXRNZXNzYWdlKDU3MCkgOiBnZXRNZXNzYWdlKDU4MiksIGljb246ICdkZWxldGUnLCBjYWxsYmFjazogdGhpcy5wcm9wcy5vbkRlbGV0ZUFjdGlvbiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBfZXh0ZW5kcyh7IHRleHRBbGlnbjogJ2NlbnRlcicsIHBhZGRpbmdUb3A6IDEwLCBwYWRkaW5nQm90dG9tOiAxMCwgYm9yZGVyVG9wOiAnMXB4IHNvbGlkICNlMGUwZTAnLCBib3JkZXJCb3R0b206ICcxcHggc29saWQgI2UwZTBlMCcgfSwgc3R5bGUpIH0sXG4gICAgICAgICAgICBhY3Rpb25zLm1hcChmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBhLmtleSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5idXR0b24sXG4gICAgICAgICAgICAgICAgICAgIGljb25TdHlsZTogc3R5bGVzLmljb24sXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IGEubGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWU6IFwibWRpIG1kaS1cIiArIGEuaWNvbixcbiAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFRhcDogYS5jYWxsYmFja1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFBvcG92ZXIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcGVuOiB0aGlzLnN0YXRlLnNob3dQaWNrZXIsXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvckVsOiB0aGlzLnN0YXRlLnBpY2tlckFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRPcmlnaW46IHsgaG9yaXpvbnRhbDogJ3JpZ2h0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93UGlja2VyOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdXNlTGF5ZXJGb3JDbGlja0F3YXk6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyB6SW5kZXg6IDIyMDAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgd2lkdGg6IDI1NiwgaGVpZ2h0OiAzMjAgfSB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9hZGRyZXNzYm9va0FkZHJlc3NCb29rMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiAnc2VsZWN0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHlkaW86IHRoaXMucHJvcHMucHlkaW8sXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXJTdHlsZTogeyB3aWR0aDogMzIwLCBoZWlnaHQ6IDQyMCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgb25JdGVtU2VsZWN0ZWQ6IHRoaXMucHJvcHMudGVhbSA/IHRoaXMub25Vc2VyU2VsZWN0ZWQuYmluZCh0aGlzKSA6IHRoaXMub25UZWFtU2VsZWN0ZWQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlYW1zT25seTogIXRoaXMucHJvcHMudGVhbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzT25seTogISF0aGlzLnByb3BzLnRlYW1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBQb3BvdmVyLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb3BlbjogdGhpcy5zdGF0ZS5zaG93TWFpbGVyLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JFbDogdGhpcy5zdGF0ZS5tYWlsZXJBbmNob3IsXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbjogeyBob3Jpem9udGFsOiAncmlnaHQnLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0T3JpZ2luOiB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICB1c2VMYXllckZvckNsaWNrQXdheTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHpJbmRleDogMjIwMCB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyB3aWR0aDogMjU2LCBoZWlnaHQ6IDMyMCB9IH0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUubWFpbGVyTGliTG9hZGVkICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXN5bmNDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZTogJ1B5ZGlvTWFpbGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU6ICdQYW5lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHpEZXB0aDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsVGl0bGU6IGdldE1lc3NhZ2UoNTk4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZVVzZXJTdHlsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJzOiB1c2VybWFpbHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkRpc21pc3M6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93TWFpbGVyOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkZpZWxkRm9jdXM6IHRoaXMucHJvcHMub3RoZXJQb3BvdmVyTW91c2VPdmVyXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgUG9wb3ZlcixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW46IHRoaXMuc3RhdGUuc2hvd1BvbGljaWVzLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JFbDogdGhpcy5zdGF0ZS5wb2xpY2llc0FuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRPcmlnaW46IHsgaG9yaXpvbnRhbDogJ3JpZ2h0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgIHVzZUxheWVyRm9yQ2xpY2tBd2F5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgekluZGV4OiAyMDAwIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHdpZHRoOiAyNTYsIGhlaWdodDogMzIwIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfcG9saWNpZXNSZXNvdXJjZVBvbGljaWVzUGFuZWwyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlOiByZXNvdXJjZVR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZUlkOiByZXNvdXJjZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25EaXNtaXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd1BvbGljaWVzOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBBY3Rpb25zUGFuZWw7XG59KShSZWFjdC5Db21wb25lbnQpO1xuXG5BY3Rpb25zUGFuZWwucHJvcFR5cGVzID0ge1xuXG4gICAgLyoqXG4gICAgICogVXNlciBkYXRhLCBwcm9wcyBtdXN0IHBhc3MgYXQgbGVhc3Qgb25lIG9mICd1c2VyJyBvciAndGVhbSdcbiAgICAgKi9cbiAgICB1c2VyOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIFRlYW0gZGF0YSwgcHJvcHMgbXVzdCBwYXNzIGF0IGxlYXN0IG9uZSBvZiAndXNlcicgb3IgJ3RlYW0nXG4gICAgICovXG4gICAgdGVhbTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBGb3IgdXNlcnMsIHdoZXRoZXIgaXQgaXMgZWRpdGFibGUgb3Igbm90XG4gICAgICovXG4gICAgdXNlckVkaXRhYmxlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0XG5cbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFjdGlvbnNQYW5lbCA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKEFjdGlvbnNQYW5lbCk7XG5leHBvcnRzWydkZWZhdWx0J10gPSBBY3Rpb25zUGFuZWwgPSBtdWlUaGVtZWFibGUoKShBY3Rpb25zUGFuZWwpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBY3Rpb25zUGFuZWw7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyID0gcmVxdWlyZSgncHlkaW8vbW9kZWwvaWRtLW9iamVjdC1oZWxwZXInKTtcblxudmFyIF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvTW9kZWxJZG1PYmplY3RIZWxwZXIpO1xuXG52YXIgX3B5ZGlvTW9kZWxDZWxsID0gcmVxdWlyZSgncHlkaW8vbW9kZWwvY2VsbCcpO1xuXG52YXIgX3B5ZGlvTW9kZWxDZWxsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvTW9kZWxDZWxsKTtcblxudmFyIENlbGxBY3Rpb25zUmVuZGVyZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIENlbGxBY3Rpb25zUmVuZGVyZXIocHlkaW8sIGNlbGxNb2RlbCwgYWNsKSB7XG4gICAgICAgIHZhciBhZGRyZXNzQm9va0l0ZW0gPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzNdO1xuXG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDZWxsQWN0aW9uc1JlbmRlcmVyKTtcblxuICAgICAgICB0aGlzLnByb3BzID0geyBweWRpbzogcHlkaW8sIGNlbGxNb2RlbDogY2VsbE1vZGVsLCBhY2w6IGFjbCwgYWRkcmVzc0Jvb2tJdGVtOiBhZGRyZXNzQm9va0l0ZW0gfTtcbiAgICB9XG5cbiAgICBDZWxsQWN0aW9uc1JlbmRlcmVyLnByb3RvdHlwZS5jcmVhdGVDZWxsID0gZnVuY3Rpb24gY3JlYXRlQ2VsbCgpIHtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBhZGRyZXNzQm9va0l0ZW0gPSBfcHJvcHMuYWRkcmVzc0Jvb2tJdGVtO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHMucHlkaW87XG5cbiAgICAgICAgdmFyIG0gPSBweWRpby5NZXNzYWdlSGFzaDtcblxuICAgICAgICB2YXIgaWRtT2JqZWN0ID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYWRkcmVzc0Jvb2tJdGVtLklkbVVzZXIpIHtcbiAgICAgICAgICAgIGlkbU9iamVjdCA9IGFkZHJlc3NCb29rSXRlbS5JZG1Vc2VyO1xuICAgICAgICB9IGVsc2UgaWYgKGFkZHJlc3NCb29rSXRlbS5JZG1Sb2xlKSB7XG4gICAgICAgICAgICBpZG1PYmplY3QgPSBhZGRyZXNzQm9va0l0ZW0uSWRtUm9sZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaWRtT2JqZWN0KSB7XG4gICAgICAgICAgICBweWRpby51c2VyLmdldElkbVVzZXIoKS50aGVuKGZ1bmN0aW9uIChsb2dnZWRVc2VyKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgbG9nZ2VkTGFiZWwgPSBfcHlkaW9Nb2RlbElkbU9iamVjdEhlbHBlcjJbJ2RlZmF1bHQnXS5leHRyYWN0TGFiZWxGcm9tSWRtT2JqZWN0KGxvZ2dlZFVzZXIpO1xuICAgICAgICAgICAgICAgIHZhciB0YXJnZXRMYWJlbCA9IF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyMlsnZGVmYXVsdCddLmV4dHJhY3RMYWJlbEZyb21JZG1PYmplY3QoYWRkcmVzc0Jvb2tJdGVtLklkbVVzZXIgfHwgYWRkcmVzc0Jvb2tJdGVtLklkbVJvbGUpO1xuXG4gICAgICAgICAgICAgICAgdmFyIG1vZGVsID0gbmV3IF9weWRpb01vZGVsQ2VsbDJbJ2RlZmF1bHQnXSgpO1xuICAgICAgICAgICAgICAgIG1vZGVsLnNldExhYmVsKGxvZ2dlZExhYmVsICsgXCIsIFwiICsgdGFyZ2V0TGFiZWwpO1xuICAgICAgICAgICAgICAgIG1vZGVsLnNldERlc2NyaXB0aW9uKFwiQ3JlYXRlZCBieSBcIiArIGxvZ2dlZExhYmVsKTtcbiAgICAgICAgICAgICAgICBtb2RlbC5hZGRVc2VyKGlkbU9iamVjdCk7XG4gICAgICAgICAgICAgICAgbW9kZWwuc2F2ZSgpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBweWRpby5VSS5kaXNwbGF5TWVzc2FnZSgnU1VDQ0VTUycsIG1bJzY0MyddLnJlcGxhY2UoJyVzJywgdGFyZ2V0TGFiZWwpKTtcbiAgICAgICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHB5ZGlvLlVJLmRpc3BsYXlNZXNzYWdlKCdFUlJPUicsIG1bJzY0NCddLnJlcGxhY2UoJyVzJywgcmVhc29uLm1lc3NhZ2UpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENlbGxBY3Rpb25zUmVuZGVyZXIucHJvdG90eXBlLmFkZFRvQ2VsbCA9IGZ1bmN0aW9uIGFkZFRvQ2VsbCgpIHtcbiAgICAgICAgdmFyIGlkbU9iamVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgYWRkcmVzc0Jvb2tJdGVtID0gX3Byb3BzMi5hZGRyZXNzQm9va0l0ZW07XG4gICAgICAgIHZhciBjZWxsTW9kZWwgPSBfcHJvcHMyLmNlbGxNb2RlbDtcblxuICAgICAgICBpZiAoYWRkcmVzc0Jvb2tJdGVtLklkbVVzZXIpIHtcbiAgICAgICAgICAgIGlkbU9iamVjdCA9IGFkZHJlc3NCb29rSXRlbS5JZG1Vc2VyO1xuICAgICAgICB9IGVsc2UgaWYgKGFkZHJlc3NCb29rSXRlbS5JZG1Sb2xlKSB7XG4gICAgICAgICAgICBpZG1PYmplY3QgPSBhZGRyZXNzQm9va0l0ZW0uSWRtUm9sZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaWRtT2JqZWN0KSB7XG4gICAgICAgICAgICBjZWxsTW9kZWwuYWRkVXNlcihpZG1PYmplY3QpO1xuICAgICAgICAgICAgY2VsbE1vZGVsLnNhdmUoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDZWxsQWN0aW9uc1JlbmRlcmVyLnByb3RvdHlwZS5yZW1vdmVGcm9tQ2VsbCA9IGZ1bmN0aW9uIHJlbW92ZUZyb21DZWxsKCkge1xuICAgICAgICB2YXIgX3Byb3BzMyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBhY2wgPSBfcHJvcHMzLmFjbDtcbiAgICAgICAgdmFyIGNlbGxNb2RlbCA9IF9wcm9wczMuY2VsbE1vZGVsO1xuXG4gICAgICAgIGNlbGxNb2RlbC5yZW1vdmVVc2VyKGFjbC5Sb2xlSWQpO1xuICAgICAgICBjZWxsTW9kZWwuc2F2ZSgpO1xuICAgIH07XG5cbiAgICBDZWxsQWN0aW9uc1JlbmRlcmVyLnByb3RvdHlwZS5yZW5kZXJJdGVtcyA9IGZ1bmN0aW9uIHJlbmRlckl0ZW1zKCkge1xuICAgICAgICB2YXIgX3Byb3BzNCA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wczQucHlkaW87XG4gICAgICAgIHZhciBjZWxsTW9kZWwgPSBfcHJvcHM0LmNlbGxNb2RlbDtcbiAgICAgICAgdmFyIGFjbCA9IF9wcm9wczQuYWNsO1xuICAgICAgICB2YXIgYWRkcmVzc0Jvb2tJdGVtID0gX3Byb3BzNC5hZGRyZXNzQm9va0l0ZW07XG5cbiAgICAgICAgdmFyIG0gPSBweWRpby5NZXNzYWdlSGFzaDtcblxuICAgICAgICAvLyBDaGVjayBpZiBjdXJyZW50IHVzZXIgaXQgdGhlIGxvZ2dlZCBvbmVcbiAgICAgICAgdmFyIGlzTG9nZ2VkID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYWNsKSB7XG4gICAgICAgICAgICBpc0xvZ2dlZCA9IGFjbC5Vc2VyICYmIGFjbC5Vc2VyLkxvZ2luID09PSBweWRpby51c2VyLmlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXNMb2dnZWQgPSB1c2VyVHlwZSA9PT0gJ3VzZXInICYmIHB5ZGlvLnVzZXIuaWQgPT09IHVzZXJJZDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXRlbXMgPSBbXTtcbiAgICAgICAgaWYgKGlzTG9nZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHVzZXJJZCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVzZXJUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYWRkcmVzc0Jvb2tJdGVtKSB7XG4gICAgICAgICAgICB1c2VySWQgPSBhZGRyZXNzQm9va0l0ZW0uaWQ7XG4gICAgICAgICAgICB1c2VyVHlwZSA9IGFkZHJlc3NCb29rSXRlbS50eXBlO1xuICAgICAgICAgICAgaWYgKHVzZXJUeXBlID09PSAnZ3JvdXAnICYmIGFkZHJlc3NCb29rSXRlbS5JZG1Sb2xlKSB7XG4gICAgICAgICAgICAgICAgdXNlcklkID0gYWRkcmVzc0Jvb2tJdGVtLklkbVJvbGUuVXVpZDt1c2VyVHlwZSA9ICd0ZWFtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgbGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChhY2wpIHtcbiAgICAgICAgICAgIGxhYmVsID0gX3B5ZGlvTW9kZWxJZG1PYmplY3RIZWxwZXIyWydkZWZhdWx0J10uZXh0cmFjdExhYmVsKHB5ZGlvLCBhY2wpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFiZWwgPSBhZGRyZXNzQm9va0l0ZW0ubGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGNlbGxNb2RlbCBpcyBcIlRSVUVcIiwgbm90IGEgcmVhbCBjZWxsIG1vZGVsXG4gICAgICAgIGlmIChjZWxsTW9kZWwgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChweWRpby5nZXRQbHVnaW5Db25maWdzKFwiYXV0aFwiKS5nZXQoXCJVU0VSX0NSRUFURV9DRUxMU1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5NZW51SXRlbSwgeyBwcmltYXJ5VGV4dDogbVsnNjQwJ10ucmVwbGFjZSgnJXMnLCBsYWJlbCksIG9uVG91Y2hUYXA6IHRoaXMuY3JlYXRlQ2VsbC5iaW5kKHRoaXMpIH0pXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNhbldyaXRlID0gY2VsbE1vZGVsLmlzRWRpdGFibGUoKTtcbiAgICAgICAgLy8gQ2hlY2sgaWYgY3VycmVudCBhY2wgb3IgdXNlcklkL3VzZXJUeXBlIGlzIGluIGNlbGxcbiAgICAgICAgdmFyIGFjbHMgPSBjZWxsTW9kZWwuZ2V0QWNscygpO1xuICAgICAgICAvLyBDaGVjayBpZiB1c2VyIGlzIGFscmVhZHkgaW4gdGhlIGN1cnJlbnQgY2VsbFxuICAgICAgICB2YXIgaXNJbkN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIE9iamVjdC5rZXlzKGFjbHMpLm1hcChmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgdmFyIGNlbGxBY2wgPSBhY2xzW2tdO1xuICAgICAgICAgICAgdmFyIGNydCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChhY2wpIHtcbiAgICAgICAgICAgICAgICBjcnQgPSBhY2wuUm9sZUlkID09PSBjZWxsQWNsLlJvbGVJZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3J0ID0gdXNlclR5cGUgPT09ICd1c2VyJyAmJiBjZWxsQWNsLlVzZXIgJiYgY2VsbEFjbC5Vc2VyLkxvZ2luID09PSB1c2VySWQgfHwgdXNlclR5cGUgPT09ICdncm91cCcgJiYgY2VsbEFjbC5Hcm91cCAmJiBjZWxsQWNsLkdyb3VwLlV1aWQgPT09IHVzZXJJZCB8fCB1c2VyVHlwZSA9PT0gJ3RlYW0nICYmIGNlbGxBY2wuUm9sZSAmJiBjZWxsQWNsLlJvbGUuVXVpZCA9PT0gdXNlcklkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNydCkge1xuICAgICAgICAgICAgICAgIGlzSW5DdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGlzSW5DdXJyZW50KSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTWVudUl0ZW0sIHsgcHJpbWFyeVRleHQ6IG1bJzY0MSddLCBkaXNhYmxlZDogIWNhbldyaXRlLCBvblRvdWNoVGFwOiB0aGlzLnJlbW92ZUZyb21DZWxsLmJpbmQodGhpcykgfSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbXMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLk1lbnVJdGVtLCB7IHByaW1hcnlUZXh0OiBtWyc2NDInXSwgZGlzYWJsZWQ6ICFjYW5Xcml0ZSwgb25Ub3VjaFRhcDogdGhpcy5hZGRUb0NlbGwuYmluZCh0aGlzKSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHB5ZGlvLmdldFBsdWdpbkNvbmZpZ3MoXCJhdXRoXCIpLmdldChcIlVTRVJfQ1JFQVRFX0NFTExTXCIpKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRGl2aWRlciwgbnVsbCksIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTWVudUl0ZW0sIHsgcHJpbWFyeVRleHQ6IG1bJzY0MCddLnJlcGxhY2UoJyVzJywgbGFiZWwpLCBvblRvdWNoVGFwOiB0aGlzLmNyZWF0ZUNlbGwuYmluZCh0aGlzKSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfTtcblxuICAgIHJldHVybiBDZWxsQWN0aW9uc1JlbmRlcmVyO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQ2VsbEFjdGlvbnNSZW5kZXJlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfYWRkcmVzc2Jvb2tVc2Vyc0xpc3QgPSByZXF1aXJlKCcuLi9hZGRyZXNzYm9vay9Vc2Vyc0xpc3QnKTtcblxudmFyIF9hZGRyZXNzYm9va1VzZXJzTGlzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hZGRyZXNzYm9va1VzZXJzTGlzdCk7XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBDb21wb25lbnQgPSBfcmVxdWlyZS5Db21wb25lbnQ7XG5cbnZhciBfcmVxdWlyZTIgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgRGl2aWRlciA9IF9yZXF1aXJlMi5EaXZpZGVyO1xudmFyIFN1YmhlYWRlciA9IF9yZXF1aXJlMi5TdWJoZWFkZXI7XG52YXIgTGlzdCA9IF9yZXF1aXJlMi5MaXN0O1xudmFyIExpc3RJdGVtID0gX3JlcXVpcmUyLkxpc3RJdGVtO1xudmFyIEZvbnRJY29uID0gX3JlcXVpcmUyLkZvbnRJY29uO1xudmFyIEF2YXRhciA9IF9yZXF1aXJlMi5BdmF0YXI7XG5cbnZhciBQeWRpb0FwaSA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvYXBpJyk7XG5cbnZhciBfcmVxdWlyZSRyZXF1aXJlTGliID0gcmVxdWlyZSgncHlkaW8nKS5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9yZXF1aXJlJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG5cbi8qKlxuICogRGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCB1c2VyIG9yIHRlYW0gcmVsYXRpb25zXG4gKi9cblxudmFyIEdyYXBoUGFuZWwgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoR3JhcGhQYW5lbCwgX0NvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBHcmFwaFBhbmVsKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgR3JhcGhQYW5lbCk7XG5cbiAgICAgICAgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIEdyYXBoUGFuZWwucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBncmFwaCA9IF9wcm9wcy5ncmFwaDtcbiAgICAgICAgdmFyIHVzZXJMYWJlbCA9IF9wcm9wcy51c2VyTGFiZWw7XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wcy5weWRpbztcbiAgICAgICAgdmFyIGdldE1lc3NhZ2UgPSBfcHJvcHMuZ2V0TWVzc2FnZTtcblxuICAgICAgICB2YXIgZWxlbWVudHMgPSBbXTtcbiAgICAgICAgaWYgKGdyYXBoLnRlYW1zICYmIGdyYXBoLnRlYW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdmFyIG9uRGVsZXRlQWN0aW9uID0gKGZ1bmN0aW9uIChwYXJlbnRJdGVtLCB0ZWFtKSB7XG4gICAgICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICAgICAgICAgIFB5ZGlvQXBpLmdldFJlc3RDbGllbnQoKS5nZXRJZG1BcGkoKS5yZW1vdmVVc2VyRnJvbVRlYW0odGVhbVswXS5pZCwgdGhpcy5wcm9wcy51c2VySWQsIGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHlkaW8uVUkuZGlzcGxheU1lc3NhZ2UoJ1NVQ0NFU1MnLCByZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5yZWxvYWRBY3Rpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgICAgICBlbGVtZW50cy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBrZXk6ICd0ZWFtcycgfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9hZGRyZXNzYm9va1VzZXJzTGlzdDJbJ2RlZmF1bHQnXSwgeyBzdWJIZWFkZXI6IGdldE1lc3NhZ2UoNTgxKS5yZXBsYWNlKCclcycsIGdyYXBoLnRlYW1zLmxlbmd0aCksIG9uSXRlbUNsaWNrZWQ6IGZ1bmN0aW9uICgpIHt9LCBpdGVtOiB7IGxlYWZzOiBncmFwaC50ZWFtcyB9LCBtb2RlOiAnaW5uZXInLCBvbkRlbGV0ZUFjdGlvbjogb25EZWxldGVBY3Rpb24gfSlcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChncmFwaC5jZWxscykge1xuICAgICAgICAgICAgdmFyIGNlbGxzID0gT2JqZWN0LnZhbHVlcyhncmFwaC5jZWxscykuZmlsdGVyKGZ1bmN0aW9uIChjZWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNlbGwuU2NvcGUgPT09IFwiUk9PTVwiO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoY2VsbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMubGVuZ3RoID8gUmVhY3QuY3JlYXRlRWxlbWVudChEaXZpZGVyLCBudWxsKSA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBTdWJoZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbHMubGVuZ3RoID09PSAxID8gZ2V0TWVzc2FnZSgnNjAxJykgOiBnZXRNZXNzYWdlKCc2MDInKS5yZXBsYWNlKCclMScsIGNlbGxzLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIExpc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbHMubWFwKGZ1bmN0aW9uIChjZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTGlzdEl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdEF2YXRhcjogUmVhY3QuY3JlYXRlRWxlbWVudChBdmF0YXIsIHsgaWNvbjogUmVhY3QuY3JlYXRlRWxlbWVudChGb250SWNvbiwgeyBjbGFzc05hbWU6ICdtZGkgbWRpLXNoYXJlLXZhcmlhbnQnIH0pLCBiYWNrZ3JvdW5kQ29sb3I6IFwiIzAwOTY4OFwiLCBzaXplOiAzNiB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6IGNlbGwuTGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5ZGlvLnRyaWdnZXJSZXBvc2l0b3J5Q2hhbmdlKGNlbGwuVVVJRCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBlbGVtZW50c1xuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gR3JhcGhQYW5lbDtcbn0pKENvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEdyYXBoUGFuZWwgPSBQeWRpb0NvbnRleHRDb25zdW1lcihHcmFwaFBhbmVsKTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEdyYXBoUGFuZWw7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhvYmosIGtleXMpIHsgdmFyIHRhcmdldCA9IHt9OyBmb3IgKHZhciBpIGluIG9iaikgeyBpZiAoa2V5cy5pbmRleE9mKGkpID49IDApIGNvbnRpbnVlOyBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGkpKSBjb250aW51ZTsgdGFyZ2V0W2ldID0gb2JqW2ldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfR3JhcGhQYW5lbCA9IHJlcXVpcmUoJy4vR3JhcGhQYW5lbCcpO1xuXG52YXIgX0dyYXBoUGFuZWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfR3JhcGhQYW5lbCk7XG5cbnZhciBfQWN0aW9uc1BhbmVsID0gcmVxdWlyZSgnLi9BY3Rpb25zUGFuZWwnKTtcblxudmFyIF9BY3Rpb25zUGFuZWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWN0aW9uc1BhbmVsKTtcblxudmFyIF9weWRpb0h0dHBBcGkgPSByZXF1aXJlKFwicHlkaW8vaHR0cC9hcGlcIik7XG5cbnZhciBfcHlkaW9IdHRwQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvSHR0cEFwaSk7XG5cbi8qKlxuICogR2VuZXJpYyBjb21wb25lbnQgZm9yIGRpc3BsYXkgYSB1c2VyIGFuZCBoZXIgYXZhdGFyIChmaXJzdCBsZXR0ZXJzIG9yIHBob3RvKVxuICovXG5cbnZhciBkZWJvdW5jZSA9IHJlcXVpcmUoJ2xvZGFzaC5kZWJvdW5jZScpO1xudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBDb2xvciA9IHJlcXVpcmUoJ2NvbG9yJyk7XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBGb250SWNvbiA9IF9yZXF1aXJlLkZvbnRJY29uO1xudmFyIFBvcG92ZXIgPSBfcmVxdWlyZS5Qb3BvdmVyO1xudmFyIFBhcGVyID0gX3JlcXVpcmUuUGFwZXI7XG52YXIgQXZhdGFyID0gX3JlcXVpcmUuQXZhdGFyO1xudmFyIENhcmRUaXRsZSA9IF9yZXF1aXJlLkNhcmRUaXRsZTtcbnZhciBEaXZpZGVyID0gX3JlcXVpcmUuRGl2aWRlcjtcblxudmFyIF9yZXF1aXJlMiA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpL3N0eWxlcycpO1xuXG52YXIgbXVpVGhlbWVhYmxlID0gX3JlcXVpcmUyLm11aVRoZW1lYWJsZTtcblxudmFyIE1ldGFDYWNoZVNlcnZpY2UgPSByZXF1aXJlKCdweWRpby9odHRwL21ldGEtY2FjaGUtc2VydmljZScpO1xuXG52YXIgX3JlcXVpcmUzID0gcmVxdWlyZSgncHlkaW8vaHR0cC91c2Vycy1hcGknKTtcblxudmFyIFVzZXJzQXBpID0gX3JlcXVpcmUzLlVzZXJzQXBpO1xuXG52YXIgVXNlckF2YXRhciA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhVc2VyQXZhdGFyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFVzZXJBdmF0YXIocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVzZXJBdmF0YXIpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICB1c2VyOiBudWxsLFxuICAgICAgICAgICAgYXZhdGFyOiBudWxsLFxuICAgICAgICAgICAgZ3JhcGg6IG51bGwsXG4gICAgICAgICAgICBsb2NhbDogZmFsc2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBVc2VyQXZhdGFyLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmxvYWRQdWJsaWNEYXRhKHRoaXMucHJvcHMudXNlcklkLCB0aGlzLnByb3BzLmlkbVVzZXIpO1xuICAgIH07XG5cbiAgICBVc2VyQXZhdGFyLnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnVzZXJJZCB8fCB0aGlzLnByb3BzLnVzZXJJZCAhPT0gbmV4dFByb3BzLnVzZXJJZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxhYmVsOiBuZXh0UHJvcHMudXNlcklkIH0pO1xuICAgICAgICAgICAgdGhpcy5sb2FkUHVibGljRGF0YShuZXh0UHJvcHMudXNlcklkLCBuZXh0UHJvcHMuaWRtVXNlcik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgVXNlckF2YXRhci5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3VzZXJMb2dnZWRPYnMpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucHlkaW8uc3RvcE9ic2VydmluZygndXNlcl9sb2dnZWQnLCB0aGlzLl91c2VyTG9nZ2VkT2JzKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VySWQgc3RyaW5nXG4gICAgICogQHBhcmFtIGlkbVVzZXIge0lkbVVzZXJ9XG4gICAgICovXG5cbiAgICBVc2VyQXZhdGFyLnByb3RvdHlwZS5sb2FkUHVibGljRGF0YSA9IGZ1bmN0aW9uIGxvYWRQdWJsaWNEYXRhKHVzZXJJZCwgaWRtVXNlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgdXNlclR5cGUgPSBfcHJvcHMudXNlclR5cGU7XG4gICAgICAgIHZhciByaWNoQ2FyZCA9IF9wcm9wcy5yaWNoQ2FyZDtcbiAgICAgICAgdmFyIHB5ZGlvID0gX3Byb3BzLnB5ZGlvO1xuXG4gICAgICAgIGlmICh1c2VyVHlwZSA9PT0gXCJncm91cFwiIHx8IHVzZXJUeXBlID09PSBcInRlYW1cIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFVzZXJzQXBpLmdldFVzZXJQcm9taXNlKHVzZXJJZCwgaWRtVXNlcikudGhlbihmdW5jdGlvbiAodXNlck9iamVjdCkge1xuICAgICAgICAgICAgaWYgKHVzZXJPYmplY3QuaXNMb2NhbCgpKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuX3VzZXJMb2dnZWRPYnMgPSBmdW5jdGlvbiAoZXZlbnRVc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLl91c2VyTG9nZ2VkT2JzID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50VXNlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMubG9hZFB1YmxpY0RhdGEodXNlcklkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcHlkaW8ub2JzZXJ2ZU9uY2UoJ3VzZXJfbG9nZ2VkJywgX3RoaXMuX3VzZXJMb2dnZWRPYnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIHVzZXI6IHVzZXJPYmplY3QsXG4gICAgICAgICAgICAgICAgYXZhdGFyOiB1c2VyT2JqZWN0LmdldEF2YXRhcigpLFxuICAgICAgICAgICAgICAgIGxvY2FsOiB1c2VyT2JqZWN0LmlzTG9jYWwoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBMb2FkIGdyYXBoXG4gICAgICAgICAgICBpZiAocmljaENhcmQgJiYgIXVzZXJPYmplY3QuaXNOb3RGb3VuZCgpKSB7XG4gICAgICAgICAgICAgICAgX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkubG9hZFVzZXJHcmFwaCh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBncmFwaCA9IHsgY2VsbHM6IHt9LCB0ZWFtczogW10gfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlNoYXJlZENlbGxzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5TaGFyZWRDZWxscy5mb3JFYWNoKGZ1bmN0aW9uICh3b3Jrc3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaC5jZWxscyA9IHJlc3BvbnNlLlNoYXJlZENlbGxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLkJlbG9uZ3NUb1RlYW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5CZWxvbmdzVG9UZWFtcy5mb3JFYWNoKGZ1bmN0aW9uIChyb2xlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGgudGVhbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiByb2xlLlV1aWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiByb2xlLkxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGVhbScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElkbVJvbGU6IHJvbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZ3JhcGg6IGdyYXBoIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgLy8gVXNlciBtYXkgaGF2ZSBiZWVuIGRlbGV0ZWRcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgbG9hZEVycm9yOiB0cnVlIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgVXNlckF2YXRhci5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdmFyIHVzZXIgPSBfc3RhdGUudXNlcjtcbiAgICAgICAgdmFyIGF2YXRhciA9IF9zdGF0ZS5hdmF0YXI7XG4gICAgICAgIHZhciBncmFwaCA9IF9zdGF0ZS5ncmFwaDtcbiAgICAgICAgdmFyIGxvY2FsID0gX3N0YXRlLmxvY2FsO1xuICAgICAgICB2YXIgbG9hZEVycm9yID0gX3N0YXRlLmxvYWRFcnJvcjtcbiAgICAgICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHMyLnB5ZGlvO1xuICAgICAgICB2YXIgdXNlcklkID0gX3Byb3BzMi51c2VySWQ7XG4gICAgICAgIHZhciB1c2VyVHlwZSA9IF9wcm9wczIudXNlclR5cGU7XG4gICAgICAgIHZhciBpY29uID0gX3Byb3BzMi5pY29uO1xuICAgICAgICB2YXIgc3R5bGUgPSBfcHJvcHMyLnN0eWxlO1xuICAgICAgICB2YXIgbGFiZWxTdHlsZSA9IF9wcm9wczIubGFiZWxTdHlsZTtcbiAgICAgICAgdmFyIGF2YXRhckxldHRlcnMgPSBfcHJvcHMyLmF2YXRhckxldHRlcnM7XG4gICAgICAgIHZhciBhdmF0YXJTdHlsZSA9IF9wcm9wczIuYXZhdGFyU3R5bGU7XG4gICAgICAgIHZhciBhdmF0YXJTaXplID0gX3Byb3BzMi5hdmF0YXJTaXplO1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gX3Byb3BzMi5jbGFzc05hbWU7XG4gICAgICAgIHZhciBsYWJlbENsYXNzTmFtZSA9IF9wcm9wczIubGFiZWxDbGFzc05hbWU7XG4gICAgICAgIHZhciBkaXNwbGF5TGFiZWwgPSBfcHJvcHMyLmRpc3BsYXlMYWJlbDtcbiAgICAgICAgdmFyIGRpc3BsYXlMb2NhbExhYmVsID0gX3Byb3BzMi5kaXNwbGF5TG9jYWxMYWJlbDtcbiAgICAgICAgdmFyIGRpc3BsYXlBdmF0YXIgPSBfcHJvcHMyLmRpc3BsYXlBdmF0YXI7XG4gICAgICAgIHZhciB1c2VEZWZhdWx0QXZhdGFyID0gX3Byb3BzMi51c2VEZWZhdWx0QXZhdGFyO1xuICAgICAgICB2YXIgcmljaENhcmQgPSBfcHJvcHMyLnJpY2hDYXJkO1xuICAgICAgICB2YXIgY2FyZFNpemUgPSBfcHJvcHMyLmNhcmRTaXplO1xuICAgICAgICB2YXIgbXVpVGhlbWUgPSBfcHJvcHMyLm11aVRoZW1lO1xuICAgICAgICB2YXIgbm9BY3Rpb25zUGFuZWwgPSBfcHJvcHMyLm5vQWN0aW9uc1BhbmVsO1xuICAgICAgICB2YXIgbGFiZWwgPSB0aGlzLnN0YXRlLmxhYmVsO1xuXG4gICAgICAgIHZhciB1c2VyVHlwZUxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgdXNlck5vdEZvdW5kID0gbG9hZEVycm9yO1xuICAgICAgICB2YXIgdXNlcklzUHVibGljID0gZmFsc2U7XG4gICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICBsYWJlbCA9IHVzZXIuZ2V0TGFiZWwoKTtcbiAgICAgICAgICAgIHVzZXJOb3RGb3VuZCA9IHVzZXIuaXNOb3RGb3VuZCgpO1xuICAgICAgICAgICAgdXNlcklzUHVibGljID0gdXNlci5pc1B1YmxpYygpO1xuICAgICAgICB9IGVsc2UgaWYgKCFsYWJlbCkge1xuICAgICAgICAgICAgbGFiZWwgPSB0aGlzLnByb3BzLnVzZXJMYWJlbCB8fCB0aGlzLnByb3BzLnVzZXJJZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWwgJiYgZGlzcGxheUxvY2FsTGFiZWwpIHtcbiAgICAgICAgICAgIGxhYmVsID0gcHlkaW8uTWVzc2FnZUhhc2hbJzYzNCddO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGF2YXRhckNvbnRlbnQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBhdmF0YXJDb2xvciA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGF2YXRhckljb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyaWNoQ2FyZCkge1xuICAgICAgICAgICAgZGlzcGxheUF2YXRhciA9IHRydWU7XG4gICAgICAgICAgICB1c2VEZWZhdWx0QXZhdGFyID0gdHJ1ZTtcbiAgICAgICAgICAgIGRpc3BsYXlMYWJlbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRpc3BsYXlBdmF0YXIgJiYgIWF2YXRhciAmJiBsYWJlbCAmJiAoIWRpc3BsYXlMYWJlbCB8fCB1c2VEZWZhdWx0QXZhdGFyKSkge1xuICAgICAgICAgICAgdmFyIGF2YXRhcnNDb2xvciA9IG11aVRoZW1lLnBhbGV0dGUuYXZhdGFyc0NvbG9yO1xuICAgICAgICAgICAgaWYgKHVzZXJUeXBlID09PSAnZ3JvdXAnIHx8IHVzZXJUeXBlID09PSAndGVhbScgfHwgdXNlcklkLmluZGV4T2YoJ1BZRElPX0dSUF8vJykgPT09IDAgfHwgdXNlcklkLmluZGV4T2YoJy9VU0VSX1RFQU0vJykgPT09IDApIHtcbiAgICAgICAgICAgICAgICBhdmF0YXJzQ29sb3IgPSBDb2xvcihhdmF0YXJzQ29sb3IpLmRhcmtlbigwLjIpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaWNvbkNsYXNzTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHN3aXRjaCAodXNlclR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdncm91cCc6XG4gICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSAnbWRpIG1kaS1hY2NvdW50LW11bHRpcGxlJztcbiAgICAgICAgICAgICAgICAgICAgdXNlclR5cGVMYWJlbCA9ICcyODknO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd0ZWFtJzpcbiAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZSA9ICdtZGkgbWRpLWFjY291bnQtbXVsdGlwbGUtb3V0bGluZSc7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJUeXBlTGFiZWwgPSAnNjAzJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAncmVtb3RlJzpcbiAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZSA9ICdtZGkgbWRpLWFjY291bnQtbmV0d29yayc7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJUeXBlTGFiZWwgPSAnNjA0JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZSA9ICdtZGkgbWRpLWFjY291bnQnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIuZ2V0RXh0ZXJuYWwoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJUeXBlTGFiZWwgPSAnNTg5JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlci5pc1B1YmxpYygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJUeXBlTGFiZWwgPSAnNTg5JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSBweWRpby5NZXNzYWdlSGFzaFtcInB1YmxpY19saW5rX3VzZXJcIl07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSAnbWRpIG1kaS1saW5rJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJUeXBlTGFiZWwgPSAnNTkwJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJUeXBlTGFiZWwgPSAnMjg4JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpY29uKSB7XG4gICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZSA9IGljb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodXNlclR5cGVMYWJlbCkge1xuICAgICAgICAgICAgICAgIHVzZXJUeXBlTGFiZWwgPSBweWRpby5NZXNzYWdlSGFzaFt1c2VyVHlwZUxhYmVsXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyaWNoQ2FyZCkge1xuICAgICAgICAgICAgICAgIGF2YXRhckljb24gPSBSZWFjdC5jcmVhdGVFbGVtZW50KEZvbnRJY29uLCB7IGNsYXNzTmFtZTogaWNvbkNsYXNzTmFtZSwgc3R5bGU6IHsgY29sb3I6IGF2YXRhcnNDb2xvciB9IH0pO1xuICAgICAgICAgICAgICAgIGF2YXRhckNvbG9yID0gJyNmNWY1ZjUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhdmF0YXJDb2xvciA9IGF2YXRhcnNDb2xvcjtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbkNsYXNzTmFtZSAmJiAhYXZhdGFyTGV0dGVycykge1xuICAgICAgICAgICAgICAgICAgICBhdmF0YXJJY29uID0gUmVhY3QuY3JlYXRlRWxlbWVudChGb250SWNvbiwgeyBjbGFzc05hbWU6IGljb25DbGFzc05hbWUgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyQ29udGVudCA9IGxhYmVsLnNwbGl0KCcgJykubWFwKGZ1bmN0aW9uICh3b3JkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd29yZFswXTtcbiAgICAgICAgICAgICAgICAgICAgfSkuam9pbignJykuc3Vic3RyaW5nKDAsIDIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXZhdGFyQ29udGVudC5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXJDb250ZW50ID0gbGFiZWwuc3Vic3RyaW5nKDAsIDIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciByZWxvYWRBY3Rpb24gPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBvbkVkaXRBY3Rpb24gPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBvbk1vdXNlT3ZlciA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9uTW91c2VPdXQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBvbkNsaWNrID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgcG9wb3ZlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHJpY2hDYXJkKSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheUF2YXRhciA9IHRydWU7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSBfZXh0ZW5kcyh7fSwgc3R5bGUsIHsgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgfSk7XG4gICAgICAgICAgICAgICAgLy9hdmF0YXJTaXplID0gY2FyZFNpemUgPyBjYXJkU2l6ZSA6ICcxMDAlJztcbiAgICAgICAgICAgICAgICAvL2F2YXRhclN0eWxlID0ge2JvcmRlclJhZGl1czogMH07XG4gICAgICAgICAgICAgICAgYXZhdGFyU2l6ZSA9IDEwMDtcbiAgICAgICAgICAgICAgICBhdmF0YXJTdHlsZSA9IHsgbWFyZ2luVG9wOiAyMCB9O1xuICAgICAgICAgICAgICAgIHZhciBsb2NhbFJlbG9hZCA9IGZ1bmN0aW9uIGxvY2FsUmVsb2FkKCkge1xuICAgICAgICAgICAgICAgICAgICBNZXRhQ2FjaGVTZXJ2aWNlLmdldEluc3RhbmNlKCkuZGVsZXRlS2V5KCd1c2VyX3B1YmxpY19kYXRhLWdyYXBoJywgX3RoaXMyLnByb3BzLnVzZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5sb2FkUHVibGljRGF0YShfdGhpczIucHJvcHMudXNlcklkLCBfdGhpczIucHJvcHMuaWRtVXNlcik7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZWxvYWRBY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsUmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpczIucHJvcHMucmVsb2FkQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIucHJvcHMucmVsb2FkQWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIG9uRWRpdEFjdGlvbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxSZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF90aGlzMi5wcm9wcy5vbkVkaXRBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5wcm9wcy5vbkVkaXRBY3Rpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9IGVsc2UgaWYgKCFsb2NhbCAmJiAhdXNlck5vdEZvdW5kICYmICF1c2VySXNQdWJsaWMgJiYgdGhpcy5wcm9wcy5yaWNoT25Ib3Zlcikge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgIG9uTW91c2VPdXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghX3RoaXMyLmxvY2tlZEJ5U3ViUG9wb3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd1BvcG92ZXI6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvbk1vdXNlT3V0ID0gZGVib3VuY2Uob25Nb3VzZU91dCwgMzUwKTtcbiAgICAgICAgICAgICAgICBvbk1vdXNlT3ZlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNob3dQb3BvdmVyOiB0cnVlLCBwb3BvdmVyQW5jaG9yOiBlLmN1cnJlbnRUYXJnZXQgfSk7XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VPdXQuY2FuY2VsKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB2YXIgb25Nb3VzZU92ZXJJbm5lciA9IGZ1bmN0aW9uIG9uTW91c2VPdmVySW5uZXIoZSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93UG9wb3ZlcjogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZU91dC5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgdmFyIGxvY2tPblN1YlBvcG92ZXJPcGVuID0gZnVuY3Rpb24gbG9ja09uU3ViUG9wb3Zlck9wZW4oc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5sb2NrZWRCeVN1YlBvcG92ZXIgPSBzdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VPdmVySW5uZXIoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHZhciBfcHJvcHMzID0gX3RoaXMyLnByb3BzO1xuICAgICAgICAgICAgICAgIHZhciBzdHlsZSA9IF9wcm9wczMuc3R5bGU7XG5cbiAgICAgICAgICAgICAgICB2YXIgcG9wb3ZlclByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9wcm9wczMsIFsnc3R5bGUnXSk7XG5cbiAgICAgICAgICAgICAgICBwb3BvdmVyID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgUG9wb3ZlcixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogX3RoaXMyLnN0YXRlLnNob3dQb3BvdmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IF90aGlzMi5zdGF0ZS5wb3BvdmVyQW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U6IGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVhc29uICE9PSAnY2xpY2tBd2F5JyB8fCAhX3RoaXMyLmxvY2tlZEJ5U3ViUG9wb3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93UG9wb3ZlcjogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbjogeyBob3Jpem9udGFsOiBcImxlZnRcIiwgdmVydGljYWw6IFwiY2VudGVyXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiBcInJpZ2h0XCIsIHZlcnRpY2FsOiBcImNlbnRlclwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VMYXllckZvckNsaWNrQXdheTogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIFBhcGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyB6RGVwdGg6IDIsIHN0eWxlOiB7IHdpZHRoOiAyMjAsIGhlaWdodDogMzIwLCBvdmVyZmxvd1k6ICdhdXRvJyB9LCBvbk1vdXNlT3Zlcjogb25Nb3VzZU92ZXJJbm5lciwgb25Nb3VzZU91dDogb25Nb3VzZU91dCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChVc2VyQXZhdGFyLCBfZXh0ZW5kcyh7fSwgcG9wb3ZlclByb3BzLCB7IHJpY2hDYXJkOiB0cnVlLCByaWNoT25Ib3ZlcjogZmFsc2UsIGNhcmRTaXplOiAyMjAsIGxvY2tPblN1YlBvcG92ZXJPcGVuOiBsb2NrT25TdWJQb3BvdmVyT3BlbiB9KSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9IGVsc2UgaWYgKCFsb2NhbCAmJiAhdXNlck5vdEZvdW5kICYmICF1c2VySXNQdWJsaWMgJiYgdGhpcy5wcm9wcy5yaWNoT25DbGljaykge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgIG9uTW91c2VPdXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghX3RoaXMyLmxvY2tlZEJ5U3ViUG9wb3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd1BvcG92ZXI6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvbk1vdXNlT3V0ID0gZGVib3VuY2Uob25Nb3VzZU91dCwgMzUwKTtcbiAgICAgICAgICAgICAgICBvbkNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd1BvcG92ZXI6IHRydWUsIHBvcG92ZXJBbmNob3I6IGUuY3VycmVudFRhcmdldCB9KTtcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZU91dC5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHZhciBvbk1vdXNlT3ZlcklubmVyID0gZnVuY3Rpb24gb25Nb3VzZU92ZXJJbm5lcihlKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNob3dQb3BvdmVyOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlT3V0LmNhbmNlbCgpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICB2YXIgbG9ja09uU3ViUG9wb3Zlck9wZW4gPSBmdW5jdGlvbiBsb2NrT25TdWJQb3BvdmVyT3BlbihzdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLmxvY2tlZEJ5U3ViUG9wb3ZlciA9IHN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZU92ZXJJbm5lcigpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdmFyIF9wcm9wczQgPSBfdGhpczIucHJvcHM7XG4gICAgICAgICAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzNC5zdHlsZTtcblxuICAgICAgICAgICAgICAgIHZhciBwb3BvdmVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3Byb3BzNCwgWydzdHlsZSddKTtcblxuICAgICAgICAgICAgICAgIHBvcG92ZXIgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBQb3BvdmVyLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuOiBfdGhpczIuc3RhdGUuc2hvd1BvcG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbDogX3RoaXMyLnN0YXRlLnBvcG92ZXJBbmNob3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZTogZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWFzb24gIT09ICdjbGlja0F3YXknIHx8ICFfdGhpczIubG9ja2VkQnlTdWJQb3BvdmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNob3dQb3BvdmVyOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6IFwibGVmdFwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0T3JpZ2luOiB7IGhvcml6b250YWw6IFwibGVmdFwiLCB2ZXJ0aWNhbDogXCJ0b3BcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlTGF5ZXJGb3JDbGlja0F3YXk6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBQYXBlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgekRlcHRoOiAyLCBzdHlsZTogeyB3aWR0aDogMjIwLCBoZWlnaHQ6IDMyMCwgb3ZlcmZsb3dZOiAnYXV0bycgfSwgb25Nb3VzZU92ZXI6IG9uTW91c2VPdmVySW5uZXIsIG9uTW91c2VPdXQ6IG9uTW91c2VPdXQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVXNlckF2YXRhciwgX2V4dGVuZHMoe30sIHBvcG92ZXJQcm9wcywgeyByaWNoQ2FyZDogdHJ1ZSwgcmljaE9uSG92ZXI6IGZhbHNlLCBjYXJkU2l6ZTogMjIwLCBsb2NrT25TdWJQb3BvdmVyT3BlbjogbG9ja09uU3ViUG9wb3Zlck9wZW4gfSkpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdmF0YXIpIHtcbiAgICAgICAgICAgIGF2YXRhckljb24gPSBSZWFjdC5jcmVhdGVFbGVtZW50KEZvbnRJY29uLCB7IHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogXCJ1cmwoXCIgKyBhdmF0YXIgKyBcIj9kaW09XCIgKyBhdmF0YXJTaXplICsgXCIpXCIsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRTaXplOiAnY292ZXInLFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kUG9zaXRpb246ICdjZW50ZXInXG4gICAgICAgICAgICAgICAgfSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBhdmF0YXJDb21wb25lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgQXZhdGFyLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGljb246IGF2YXRhckljb24sXG4gICAgICAgICAgICAgICAgc2l6ZTogYXZhdGFyU2l6ZSxcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhpcy5wcm9wcy5hdmF0YXJPbmx5ID8gdGhpcy5wcm9wcy5zdHlsZSA6IGF2YXRhclN0eWxlLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogYXZhdGFyQ29sb3JcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdmF0YXJDb250ZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuYXZhdGFyT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIGF2YXRhckNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyaWNoQ2FyZCkge1xuICAgICAgICAgICAgYXZhdGFyQ29tcG9uZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHRleHRBbGlnbjogJ2NlbnRlcicgfSB9LFxuICAgICAgICAgICAgICAgIGF2YXRhckNvbXBvbmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICh1c2VyTm90Rm91bmQpIHtcbiAgICAgICAgICAgIGxhYmVsU3R5bGUgPSBfZXh0ZW5kcyh7fSwgbGFiZWxTdHlsZSwgeyB0ZXh0RGVjb3JhdGlvbjogJ2xpbmUtdGhyb3VnaCcgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc3R5bGU6IHN0eWxlLCBvbk1vdXNlT3Zlcjogb25Nb3VzZU92ZXIsIG9uTW91c2VPdXQ6IG9uTW91c2VPdXQsIG9uQ2xpY2s6IG9uQ2xpY2sgfSxcbiAgICAgICAgICAgIGRpc3BsYXlBdmF0YXIgJiYgKGF2YXRhciB8fCBhdmF0YXJDb250ZW50IHx8IGF2YXRhckljb24pICYmIGF2YXRhckNvbXBvbmVudCxcbiAgICAgICAgICAgIGRpc3BsYXlMYWJlbCAmJiAhcmljaENhcmQgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiBsYWJlbFN0eWxlIH0sXG4gICAgICAgICAgICAgICAgbGFiZWxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBkaXNwbGF5TGFiZWwgJiYgcmljaENhcmQgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChDYXJkVGl0bGUsIHsgc3R5bGU6IHsgdGV4dEFsaWduOiAnY2VudGVyJyB9LCB0aXRsZTogbGFiZWwsIHN1YnRpdGxlOiB1c2VyVHlwZUxhYmVsIH0pLFxuICAgICAgICAgICAgcmljaENhcmQgJiYgdXNlciAmJiAhbm9BY3Rpb25zUGFuZWwgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChfQWN0aW9uc1BhbmVsMlsnZGVmYXVsdCddLCBfZXh0ZW5kcyh7fSwgdGhpcy5zdGF0ZSwgdGhpcy5wcm9wcywgeyByZWxvYWRBY3Rpb246IHJlbG9hZEFjdGlvbiwgb25FZGl0QWN0aW9uOiBvbkVkaXRBY3Rpb24gfSkpLFxuICAgICAgICAgICAgcmljaENhcmQgJiYgZ3JhcGggJiYgIW5vQWN0aW9uc1BhbmVsICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX0dyYXBoUGFuZWwyWydkZWZhdWx0J10sIF9leHRlbmRzKHsgZ3JhcGg6IGdyYXBoIH0sIHRoaXMucHJvcHMsIHsgdXNlckxhYmVsOiBsYWJlbCwgcmVsb2FkQWN0aW9uOiByZWxvYWRBY3Rpb24sIG9uRWRpdEFjdGlvbjogb25FZGl0QWN0aW9uIH0pKSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICBwb3BvdmVyXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBVc2VyQXZhdGFyO1xufSkoUmVhY3QuQ29tcG9uZW50KTtcblxuVXNlckF2YXRhci5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogSWQgb2YgdGhlIHVzZXIgdG8gYmUgbG9hZGVkXG4gICAgICovXG4gICAgdXNlcklkOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqXG4gICAgICogUHlkaW8gaW5zdGFuY2VcbiAgICAgKi9cbiAgICBweWRpbzogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW8pLFxuICAgIC8qKlxuICAgICAqIExhYmVsIG9mIHRoZSB1c2VyLCBpZiB3ZSBhbHJlYWR5IGhhdmUgaXQgKG90aGVyd2lzZSB3aWxsIGJlIGxvYWRlZClcbiAgICAgKi9cbiAgICB1c2VyTGFiZWw6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqXG4gICAgICogVHlwZSBvZiB1c2VyXG4gICAgICovXG4gICAgdXNlclR5cGU6IFJlYWN0LlByb3BUeXBlcy5vbmVPZihbJ3VzZXInLCAnZ3JvdXAnLCAncmVtb3RlJywgJ3RlYW0nXSksXG4gICAgLyoqXG4gICAgICogSWNvbiB0byBiZSBkaXNwbGF5ZWQgaW4gYXZhdGFyXG4gICAgICovXG4gICAgaWNvbjogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IGEgcmljaCBjYXJkIG9yIGEgc2ltcGxlIGF2YXRhcitsYWJlbCBjaGlwXG4gICAgICovXG4gICAgcmljaENhcmQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIC8qKlxuICAgICAqIElmIG5vdCByaWNoLCBkaXNwbGF5IGEgcmljaCBjYXJkIGFzIHBvcG92ZXIgb24gbW91c2VvdmVyXG4gICAgICovXG4gICAgcmljaE9uSG92ZXI6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIC8qKlxuICAgICAqIElmIG5vdCByaWNoLCBkaXNwbGF5IGEgcmljaCBjYXJkIGFzIHBvcG92ZXIgb24gY2xpY2tcbiAgICAgKi9cbiAgICByaWNoT25DbGljazogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAvKipcbiAgICAgKiBBZGQgZWRpdCBhY3Rpb24gdG8gdGhlIGNhcmRcbiAgICAgKi9cbiAgICB1c2VyRWRpdGFibGU6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJlZCBhZnRlciBzdWNjZXNzZnVsIGVkaXRpb25cbiAgICAgKi9cbiAgICBvbkVkaXRBY3Rpb246IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJlZCBhZnRlciBkZWxldGlvblxuICAgICAqL1xuICAgIG9uRGVsZXRlQWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyZWQgaWYgYSByZWxvYWQgaXMgcmVxdWlyZWRcbiAgICAgKi9cbiAgICByZWxvYWRBY3Rpb246IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuXG4gICAgLyoqXG4gICAgICogRGlzcGxheSBsYWJlbCBlbGVtZW50IG9yIG5vdFxuICAgICAqL1xuICAgIGRpc3BsYXlMYWJlbDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgLyoqXG4gICAgICogRGlzcGxheSBsYWJlbCBlbGVtZW50IG9yIG5vdFxuICAgICAqL1xuICAgIGRpc3BsYXlMb2NhbExhYmVsOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IGF2YXRhciBlbGVtZW50IG9yIG5vdFxuICAgICAqL1xuICAgIGRpc3BsYXlBdmF0YXI6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgb25seSBhdmF0YXJcbiAgICAgKi9cbiAgICBhdmF0YXJPbmx5OiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAvKipcbiAgICAgKiBVc2UgZGVmYXVsdCBhdmF0YXJcbiAgICAgKi9cbiAgICB1c2VEZWZhdWx0QXZhdGFyOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAvKipcbiAgICAgKiBBdmF0YXIgc2l6ZSwgNDBweCBieSBkZWZhdWx0XG4gICAgICovXG4gICAgYXZhdGFyU2l6ZTogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICAvKipcbiAgICAgKiBJZiBvbmx5IHRoZSBkZWZhdWx0IGljb24gaXMgYXZhaWxhYmxlLCB3aWxsIGRpc3BsYXlcbiAgICAgKiB0aGUgZmlyc3QgbGV0dGVycyBvZiB0aGUgbmFtZSBpbnN0ZWFkXG4gICAgICovXG4gICAgYXZhdGFyTGV0dGVyczogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgLyoqXG4gICAgICogRG8gbm90IGRpc3BsYXkgQWN0aW9uc1BhbmVsIGluIFJpY2hDYXJkIG1vZGVcbiAgICAgKi9cbiAgICBub0FjdGlvbnNQYW5lbDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAvKipcbiAgICAgKiBBZGQgY2xhc3MgbmFtZSB0byByb290IGVsZW1lbnRcbiAgICAgKi9cbiAgICBjbGFzc05hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqXG4gICAgICogQWRkIGNsYXNzIG5hbWUgdG8gbGFiZWwgZWxlbWVudFxuICAgICAqL1xuICAgIGxhYmVsQ2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIEFkZCBjbGFzcyBuYW1lIHRvIGF2YXRhciBlbGVtZW50XG4gICAgICovXG4gICAgYXZhdGFyQ2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIEFkZCBzdHlsZSB0byByb290IGVsZW1lbnRcbiAgICAgKi9cbiAgICBzdHlsZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBBZGQgc3R5bGUgdG8gbGFiZWwgZWxlbWVudFxuICAgICAqL1xuICAgIGxhYmVsU3R5bGU6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgLyoqXG4gICAgICogQWRkIHN0eWxlIHRvIGF2YXRhciBlbGVtZW50XG4gICAgICovXG4gICAgYXZhdGFyU3R5bGU6IFJlYWN0LlByb3BUeXBlcy5vYmplY3Rcbn07XG5cblVzZXJBdmF0YXIuZGVmYXVsdFByb3BzID0ge1xuICAgIGRpc3BsYXlMYWJlbDogdHJ1ZSxcbiAgICBkaXNwbGF5QXZhdGFyOiB0cnVlLFxuICAgIGF2YXRhclNpemU6IDQwLFxuICAgIHVzZXJUeXBlOiAndXNlcicsXG4gICAgY2xhc3NOYW1lOiAndXNlci1hdmF0YXItd2lkZ2V0JyxcbiAgICBhdmF0YXJDbGFzc05hbWU6ICd1c2VyLWF2YXRhcicsXG4gICAgbGFiZWxDbGFzc05hbWU6ICd1c2VyLWxhYmVsJ1xufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlckF2YXRhciA9IG11aVRoZW1lYWJsZSgpKFVzZXJBdmF0YXIpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVc2VyQXZhdGFyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9jb3JlTW9kZWxQeWRpb0RhdGFNb2RlbCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb3JlL21vZGVsL1B5ZGlvRGF0YU1vZGVsXCIpO1xuXG52YXIgX2NvcmVNb2RlbFB5ZGlvRGF0YU1vZGVsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NvcmVNb2RlbFB5ZGlvRGF0YU1vZGVsKTtcblxudmFyIEZ1bmNVdGlscyA9IHJlcXVpcmUoXCJweWRpby91dGlsL2Z1bmNcIik7XG52YXIgUmVzb3VyY2VzTWFuYWdlciA9IHJlcXVpcmUoXCJweWRpby9odHRwL3Jlc291cmNlcy1tYW5hZ2VyXCIpO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUkVBQ1QgRE5EIEdFTkVSSUMgQ09NUE9ORU5UU1xuIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG52YXIgVHlwZXMgPSB7XG4gICAgTk9ERV9QUk9WSURFUjogJ25vZGUnLFxuICAgIFNPUlRBQkxFX0xJU1RfSVRFTTogJ3NvcnRhYmxlLWxpc3QtaXRlbSdcbn07XG5cbi8qKlxuICogU3BlY2lmaWVzIHdoaWNoIHByb3BzIHRvIGluamVjdCBpbnRvIHlvdXIgY29tcG9uZW50LlxuICovXG5mdW5jdGlvbiBjb2xsZWN0KGNvbm5lY3QsIG1vbml0b3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb25uZWN0RHJhZ1NvdXJjZTogY29ubmVjdC5kcmFnU291cmNlKCksXG4gICAgICAgIGlzRHJhZ2dpbmc6IG1vbml0b3IuaXNEcmFnZ2luZygpXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gY29sbGVjdERyb3AoY29ubmVjdCwgbW9uaXRvcikge1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbm5lY3REcm9wVGFyZ2V0OiBjb25uZWN0LmRyb3BUYXJnZXQoKSxcbiAgICAgICAgY2FuRHJvcDogbW9uaXRvci5jYW5Ecm9wKCksXG4gICAgICAgIGlzT3ZlcjogbW9uaXRvci5pc092ZXIoKSxcbiAgICAgICAgaXNPdmVyQ3VycmVudDogbW9uaXRvci5pc092ZXIoeyBzaGFsbG93OiB0cnVlIH0pXG4gICAgfTtcbn1cblxudmFyIEROREFjdGlvblBhcmFtZXRlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRE5EQWN0aW9uUGFyYW1ldGVyKHNvdXJjZSwgdGFyZ2V0LCBzdGVwKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBETkRBY3Rpb25QYXJhbWV0ZXIpO1xuXG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IHNvdXJjZTtcbiAgICAgICAgdGhpcy5fdGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgICB0aGlzLl9zdGVwID0gc3RlcDtcbiAgICB9XG5cbiAgICBETkRBY3Rpb25QYXJhbWV0ZXIucHJvdG90eXBlLmdldFNvdXJjZSA9IGZ1bmN0aW9uIGdldFNvdXJjZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcbiAgICB9O1xuXG4gICAgRE5EQWN0aW9uUGFyYW1ldGVyLnByb3RvdHlwZS5nZXRUYXJnZXQgPSBmdW5jdGlvbiBnZXRUYXJnZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXJnZXQ7XG4gICAgfTtcblxuICAgIEROREFjdGlvblBhcmFtZXRlci5wcm90b3R5cGUuZ2V0U3RlcCA9IGZ1bmN0aW9uIGdldFN0ZXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwO1xuICAgIH07XG5cbiAgICByZXR1cm4gRE5EQWN0aW9uUGFyYW1ldGVyO1xufSkoKTtcblxuRE5EQWN0aW9uUGFyYW1ldGVyLlNURVBfQkVHSU5fRFJBRyA9ICdiZWdpbkRyYWcnO1xuRE5EQWN0aW9uUGFyYW1ldGVyLlNURVBfRU5EX0RSQUcgPSAnZW5kRHJhZyc7XG5ETkRBY3Rpb25QYXJhbWV0ZXIuU1RFUF9DQU5fRFJPUCA9ICdjYW5Ecm9wJztcbkROREFjdGlvblBhcmFtZXRlci5TVEVQX0hPVkVSX0RST1AgPSAnaG92ZXInO1xuXG52YXIgYXBwbHlETkRBY3Rpb24gPSBmdW5jdGlvbiBhcHBseUROREFjdGlvbihzb3VyY2UsIHRhcmdldCwgc3RlcCkge1xuICAgIHZhciBDb250cm9sbGVyID0gd2luZG93LnB5ZGlvLkNvbnRyb2xsZXI7XG5cbiAgICB2YXIgZG5kID0gQ29udHJvbGxlci5kZWZhdWx0QWN0aW9ucy5nZXQoXCJkcmFnbmRyb3BcIik7XG4gICAgaWYgKGRuZCkge1xuICAgICAgICB2YXIgZG5kQWN0aW9uID0gQ29udHJvbGxlci5nZXRBY3Rpb25CeU5hbWUoZG5kKTtcbiAgICAgICAgaWYgKGRuZEFjdGlvbi5kZW55KSB7XG4gICAgICAgICAgICAvLyBNYXliZSBpdCBoYXMgdG8gYmUgZW5hYmxlZCBieSBjdXJyZW50IHNlbGVjdGlvblxuICAgICAgICAgICAgdmFyIGRtID0gbmV3IF9jb3JlTW9kZWxQeWRpb0RhdGFNb2RlbDJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgICAgICBkbS5zZXRTZWxlY3RlZE5vZGVzKFtzb3VyY2VdKTtcbiAgICAgICAgICAgIGRuZEFjdGlvbi5maXJlU2VsZWN0aW9uQ2hhbmdlKGRtKTtcbiAgICAgICAgICAgIGlmIChkbmRBY3Rpb24uZGVueSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkRORCBhY3Rpb24gZGlzYWJsZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9kbmRBY3Rpb24uZW5hYmxlKCk7XG4gICAgICAgIHZhciBwYXJhbXMgPSBuZXcgRE5EQWN0aW9uUGFyYW1ldGVyKHNvdXJjZSwgdGFyZ2V0LCBzdGVwKTtcbiAgICAgICAgdmFyIGNoZWNrTW9kdWxlID0gZG5kQWN0aW9uLm9wdGlvbnMuZHJhZ25kcm9wQ2hlY2tNb2R1bGU7XG4gICAgICAgIGlmIChzdGVwID09PSBETkRBY3Rpb25QYXJhbWV0ZXIuU1RFUF9DQU5fRFJPUCAmJiBjaGVja01vZHVsZSkge1xuICAgICAgICAgICAgaWYgKCFGdW5jVXRpbHMuZ2V0RnVuY3Rpb25CeU5hbWUoY2hlY2tNb2R1bGUsIHdpbmRvdykpIHtcbiAgICAgICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmRldGVjdE1vZHVsZVRvTG9hZEFuZEFwcGx5KGNoZWNrTW9kdWxlLCBmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmluZCB0ZXN0IG1vZHVsZSwgdHJ5aW5nIHRvIGxvYWQgaXQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEZ1bmNVdGlscy5leGVjdXRlRnVuY3Rpb25CeU5hbWUoZG5kQWN0aW9uLm9wdGlvbnMuZHJhZ25kcm9wQ2hlY2tNb2R1bGUsIHdpbmRvdywgQ29udHJvbGxlciwgcGFyYW1zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRuZEFjdGlvbi5hcHBseShwYXJhbXMpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBETkQgQWN0aW9ucyBhdmFpbGFibGUnKTtcbiAgICB9XG59O1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFJFQUNUIERORCBEUkFHL0RST1AgTk9ERVNcbiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG52YXIgbm9kZURyYWdTb3VyY2UgPSB7XG4gICAgYmVnaW5EcmFnOiBmdW5jdGlvbiBiZWdpbkRyYWcocHJvcHMpIHtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSBkYXRhIGRlc2NyaWJpbmcgdGhlIGRyYWdnZWQgaXRlbVxuICAgICAgICByZXR1cm4geyBub2RlOiBwcm9wcy5ub2RlIH07XG4gICAgfSxcblxuICAgIGVuZERyYWc6IGZ1bmN0aW9uIGVuZERyYWcocHJvcHMsIG1vbml0b3IsIGNvbXBvbmVudCkge1xuICAgICAgICBpZiAoIW1vbml0b3IuZGlkRHJvcCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGl0ZW0gPSBtb25pdG9yLmdldEl0ZW0oKTtcbiAgICAgICAgdmFyIGRyb3BSZXN1bHQgPSBtb25pdG9yLmdldERyb3BSZXN1bHQoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGFwcGx5RE5EQWN0aW9uKGl0ZW0ubm9kZSwgZHJvcFJlc3VsdC5ub2RlLCBETkRBY3Rpb25QYXJhbWV0ZXIuU1RFUF9FTkRfRFJBRyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgfVxufTtcblxudmFyIG5vZGVEcm9wVGFyZ2V0ID0ge1xuXG4gICAgaG92ZXI6IGZ1bmN0aW9uIGhvdmVyKHByb3BzLCBtb25pdG9yKSB7fSxcblxuICAgIGNhbkRyb3A6IGZ1bmN0aW9uIGNhbkRyb3AocHJvcHMsIG1vbml0b3IpIHtcblxuICAgICAgICB2YXIgc291cmNlID0gbW9uaXRvci5nZXRJdGVtKCkubm9kZTtcbiAgICAgICAgdmFyIHRhcmdldCA9IHByb3BzLm5vZGU7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGFwcGx5RE5EQWN0aW9uKHNvdXJjZSwgdGFyZ2V0LCBETkRBY3Rpb25QYXJhbWV0ZXIuU1RFUF9DQU5fRFJPUCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuXG4gICAgZHJvcDogZnVuY3Rpb24gZHJvcChwcm9wcywgbW9uaXRvcikge1xuICAgICAgICB2YXIgaGFzRHJvcHBlZE9uQ2hpbGQgPSBtb25pdG9yLmRpZERyb3AoKTtcbiAgICAgICAgaWYgKGhhc0Ryb3BwZWRPbkNoaWxkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgbm9kZTogcHJvcHMubm9kZSB9O1xuICAgIH1cblxufTtcblxuZXhwb3J0cy5UeXBlcyA9IFR5cGVzO1xuZXhwb3J0cy5jb2xsZWN0ID0gY29sbGVjdDtcbmV4cG9ydHMuY29sbGVjdERyb3AgPSBjb2xsZWN0RHJvcDtcbmV4cG9ydHMubm9kZURyYWdTb3VyY2UgPSBub2RlRHJhZ1NvdXJjZTtcbmV4cG9ydHMubm9kZURyb3BUYXJnZXQgPSBub2RlRHJvcFRhcmdldDtcbmV4cG9ydHMuRE5EQWN0aW9uUGFyYW1ldGVyID0gRE5EQWN0aW9uUGFyYW1ldGVyO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0ge1xuICAgIGNvbnRleHRUeXBlczoge1xuICAgICAgICBtZXNzYWdlczogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgZ2V0TWVzc2FnZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbiAgICB9XG59O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIENvbXBvbmVudCA9IF9yZXF1aXJlLkNvbXBvbmVudDtcbnZhciBQcm9wVHlwZXMgPSBfcmVxdWlyZS5Qcm9wVHlwZXM7XG5cbnZhciBfcmVxdWlyZTIgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgRmxhdEJ1dHRvbiA9IF9yZXF1aXJlMi5GbGF0QnV0dG9uO1xudmFyIEZvbnRJY29uID0gX3JlcXVpcmUyLkZvbnRJY29uO1xuXG52YXIgX3JlcXVpcmUzID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWkvc3R5bGVzJyk7XG5cbnZhciBtdWlUaGVtZWFibGUgPSBfcmVxdWlyZTMubXVpVGhlbWVhYmxlO1xuXG52YXIgQ29sb3IgPSByZXF1aXJlKCdjb2xvcicpO1xudmFyIFB5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9QeWRpbyRyZXF1aXJlTGliID0gUHlkaW8ucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfUHlkaW8kcmVxdWlyZUxpYi5QeWRpb0NvbnRleHRDb25zdW1lcjtcblxudmFyIEVtcHR5U3RhdGVWaWV3ID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKEVtcHR5U3RhdGVWaWV3LCBfQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIEVtcHR5U3RhdGVWaWV3KHByb3BzLCBjb250ZXh0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbXB0eVN0YXRlVmlldyk7XG5cbiAgICAgICAgX0NvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICBFbXB0eVN0YXRlVmlldy5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzLnN0eWxlO1xuICAgICAgICB2YXIgaWNvbkNsYXNzTmFtZSA9IF9wcm9wcy5pY29uQ2xhc3NOYW1lO1xuICAgICAgICB2YXIgcHJpbWFyeVRleHRJZCA9IF9wcm9wcy5wcmltYXJ5VGV4dElkO1xuICAgICAgICB2YXIgc2Vjb25kYXJ5VGV4dElkID0gX3Byb3BzLnNlY29uZGFyeVRleHRJZDtcbiAgICAgICAgdmFyIGFjdGlvbkxhYmVsSWQgPSBfcHJvcHMuYWN0aW9uTGFiZWxJZDtcbiAgICAgICAgdmFyIGFjdGlvbkNhbGxiYWNrID0gX3Byb3BzLmFjdGlvbkNhbGxiYWNrO1xuICAgICAgICB2YXIgYWN0aW9uU3R5bGUgPSBfcHJvcHMuYWN0aW9uU3R5bGU7XG4gICAgICAgIHZhciBhY3Rpb25JY29uQ2xhc3NOYW1lID0gX3Byb3BzLmFjdGlvbkljb25DbGFzc05hbWU7XG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gX3Byb3BzLmdldE1lc3NhZ2U7XG4gICAgICAgIHZhciBpY29uU3R5bGUgPSBfcHJvcHMuaWNvblN0eWxlO1xuICAgICAgICB2YXIgbGVnZW5kU3R5bGUgPSBfcHJvcHMubGVnZW5kU3R5bGU7XG5cbiAgICAgICAgdmFyIG1haW5Db2xvciA9IENvbG9yKHRoaXMucHJvcHMubXVpVGhlbWUucGFsZXR0ZS5wcmltYXJ5MUNvbG9yKTtcblxuICAgICAgICB2YXIgc3R5bGVzID0ge1xuICAgICAgICAgICAgY29udGFpbmVyOiBfZXh0ZW5kcyh7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGZsZXg6IDEsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBtYWluQ29sb3IubGlnaHRuZXNzKDk3KS5yZ2IoKS50b1N0cmluZygpXG4gICAgICAgICAgICB9LCBzdHlsZSksXG4gICAgICAgICAgICBjZW50ZXJlZDoge1xuICAgICAgICAgICAgICAgIG1heFdpZHRoOiAyODAsXG4gICAgICAgICAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFpbkNvbG9yLmZhZGUoMC42KS50b1N0cmluZygpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaWNvbjogX2V4dGVuZHMoe1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxMDBcbiAgICAgICAgICAgIH0sIGljb25TdHlsZSksXG4gICAgICAgICAgICBwcmltYXJ5VGV4dDogX2V4dGVuZHMoe1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxNixcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiA1MDBcbiAgICAgICAgICAgIH0sIGxlZ2VuZFN0eWxlKSxcbiAgICAgICAgICAgIHNlY29uZGFyeVRleHQ6IHtcbiAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDIwLFxuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxM1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1dHRvbkNvbnRhaW5lcjoge1xuICAgICAgICAgICAgICAgIG1hcmdpblRvcDogMTAwLFxuICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidXR0b25TdHlsZToge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGlzLnByb3BzLm11aVRoZW1lLnBhbGV0dGUuYWNjZW50MkNvbG9yXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciBidXR0b25JY29uID0gYWN0aW9uSWNvbkNsYXNzTmFtZSA/IFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9udEljb24sIHsgY2xhc3NOYW1lOiBhY3Rpb25JY29uQ2xhc3NOYW1lIH0pIDogbnVsbDtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5jb250YWluZXIgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLmNlbnRlcmVkIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudCgnZGl2JywgeyBjbGFzc05hbWU6IGljb25DbGFzc05hbWUsIHN0eWxlOiBzdHlsZXMuaWNvbiB9KSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLnByaW1hcnlUZXh0IH0sXG4gICAgICAgICAgICAgICAgICAgIGdldE1lc3NhZ2UocHJpbWFyeVRleHRJZClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeVRleHRJZCAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLnNlY29uZGFyeVRleHQgfSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0TWVzc2FnZShzZWNvbmRhcnlUZXh0SWQpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBhY3Rpb25MYWJlbElkICYmIGFjdGlvbkNhbGxiYWNrICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiBfZXh0ZW5kcyh7fSwgc3R5bGVzLmJ1dHRvbkNvbnRhaW5lciwgYWN0aW9uU3R5bGUpIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRmxhdEJ1dHRvbiwgeyBzdHlsZTogc3R5bGVzLmJ1dHRvblN0eWxlLCBsYWJlbDogZ2V0TWVzc2FnZShhY3Rpb25MYWJlbElkKSwgb25Ub3VjaFRhcDogYWN0aW9uQ2FsbGJhY2ssIGljb246IGJ1dHRvbkljb24gfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBFbXB0eVN0YXRlVmlldztcbn0pKENvbXBvbmVudCk7XG5cbkVtcHR5U3RhdGVWaWV3LnByb3BUeXBlcyA9IHtcblxuICAgIHB5ZGlvOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpbykuaXNSZXF1aXJlZCxcbiAgICBpY29uQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgcHJpbWFyeVRleHRJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuXG4gICAgc2Vjb25kYXJ5VGV4dElkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGFjdGlvbkxhYmVsSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYWN0aW9uQ2FsbGJhY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgIGFjdGlvblN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gICAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaWNvblN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxlZ2VuZFN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGdldE1lc3NhZ2U6IFByb3BUeXBlcy5mdW5jXG5cbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVtcHR5U3RhdGVWaWV3ID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoRW1wdHlTdGF0ZVZpZXcpO1xuZXhwb3J0c1snZGVmYXVsdCddID0gRW1wdHlTdGF0ZVZpZXcgPSBtdWlUaGVtZWFibGUoKShFbXB0eVN0YXRlVmlldyk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVtcHR5U3RhdGVWaWV3O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMob2JqLCBrZXlzKSB7IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIgaSBpbiBvYmopIHsgaWYgKGtleXMuaW5kZXhPZihpKSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7IHRhcmdldFtpXSA9IG9ialtpXTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIE1vZGFsQXBwQmFyID0gZnVuY3Rpb24gTW9kYWxBcHBCYXIocHJvcHMpIHtcbiAgICB2YXIgc3R5bGUgPSBwcm9wcy5zdHlsZTtcbiAgICB2YXIgdGl0bGVTdHlsZSA9IHByb3BzLnRpdGxlU3R5bGU7XG4gICAgdmFyIGljb25TdHlsZVJpZ2h0ID0gcHJvcHMuaWNvblN0eWxlUmlnaHQ7XG4gICAgdmFyIGljb25TdHlsZUxlZnQgPSBwcm9wcy5pY29uU3R5bGVMZWZ0O1xuXG4gICAgdmFyIG90aGVyUHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIFsnc3R5bGUnLCAndGl0bGVTdHlsZScsICdpY29uU3R5bGVSaWdodCcsICdpY29uU3R5bGVMZWZ0J10pO1xuXG4gICAgdmFyIHN0eWxlcyA9IHtcbiAgICAgICAgc3R5bGU6IF9leHRlbmRzKHtcbiAgICAgICAgICAgIGZsZXhTaHJpbms6IDBcbiAgICAgICAgfSwgc3R5bGUpLFxuICAgICAgICB0aXRsZVN0eWxlOiBfZXh0ZW5kcyh7XG4gICAgICAgICAgICBsaW5lSGVpZ2h0OiAnNTZweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IDU2LFxuICAgICAgICAgICAgbWFyZ2luTGVmdDogLThcbiAgICAgICAgfSwgdGl0bGVTdHlsZSksXG4gICAgICAgIGljb25TdHlsZVJpZ2h0OiBfZXh0ZW5kcyh7XG4gICAgICAgICAgICBtYXJnaW5Ub3A6IDRcbiAgICAgICAgfSwgaWNvblN0eWxlUmlnaHQpLFxuICAgICAgICBpY29uU3R5bGVMZWZ0OiBfZXh0ZW5kcyh7XG4gICAgICAgICAgICBtYXJnaW5Ub3A6IDRcbiAgICAgICAgfSwgaWNvblN0eWxlTGVmdClcbiAgICB9O1xuXG4gICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkFwcEJhciwgX2V4dGVuZHMoe30sIG90aGVyUHJvcHMsIHN0eWxlcykpO1xufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTW9kYWxBcHBCYXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbi8qYm9yZGVyUmFkaXVzOiAnMnB4IDJweCAwIDAnLCovXG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbi8qKlxuICogR2V0IGluZm8gZnJvbSBQeWRpbyBjb250cm9sbGVyIGFuIGJ1aWxkIGFuXG4gKiBhY3Rpb24gYmFyIHdpdGggYWN0aXZlIGFjdGlvbnMuXG4gKiBUQkNcbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0c1snZGVmYXVsdCddID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnU2ltcGxlUmVhY3RBY3Rpb25CYXInLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGRhdGFNb2RlbDogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW9EYXRhTW9kZWwpLmlzUmVxdWlyZWQsXG4gICAgICAgIG5vZGU6IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKEFqeHBOb2RlKS5pc1JlcXVpcmVkLFxuICAgICAgICBhY3Rpb25zOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXlcbiAgICB9LFxuXG4gICAgY2xpY2tBY3Rpb246IGZ1bmN0aW9uIGNsaWNrQWN0aW9uKGV2ZW50KSB7XG4gICAgICAgIHZhciBhY3Rpb25OYW1lID0gZXZlbnQuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoXCJkYXRhLWFjdGlvblwiKTtcbiAgICAgICAgdGhpcy5wcm9wcy5kYXRhTW9kZWwuc2V0U2VsZWN0ZWROb2RlcyhbdGhpcy5wcm9wcy5ub2RlXSk7XG4gICAgICAgIHZhciBhID0gd2luZG93LnB5ZGlvLkNvbnRyb2xsZXIuZ2V0QWN0aW9uQnlOYW1lKGFjdGlvbk5hbWUpO1xuICAgICAgICBhLmZpcmVDb250ZXh0Q2hhbmdlKHRoaXMucHJvcHMuZGF0YU1vZGVsLCB0cnVlLCB3aW5kb3cucHlkaW8udXNlcik7XG4gICAgICAgIC8vYS5maXJlU2VsZWN0aW9uQ2hhbmdlKHRoaXMucHJvcHMuZGF0YU1vZGVsKTtcbiAgICAgICAgYS5hcHBseShbdGhpcy5wcm9wcy5kYXRhTW9kZWxdKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgYWN0aW9ucyA9IHRoaXMucHJvcHMuYWN0aW9ucy5tYXAoKGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudCgnZGl2Jywge1xuICAgICAgICAgICAgICAgIGtleTogYS5vcHRpb25zLm5hbWUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBhLm9wdGlvbnMuaWNvbl9jbGFzcyArICcgbWF0ZXJpYWwtbGlzdC1hY3Rpb24taW5saW5lJyB8fCAnJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogYS5vcHRpb25zLnRpdGxlLFxuICAgICAgICAgICAgICAgICdkYXRhLWFjdGlvbic6IGEub3B0aW9ucy5uYW1lLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuY2xpY2tBY3Rpb24gfSk7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBhY3Rpb25zXG4gICAgICAgICk7XG4gICAgfVxufSk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfdXRpbERORCA9IHJlcXVpcmUoJy4uL3V0aWwvRE5EJyk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX1B5ZGlvJHJlcXVpcmVMaWIgPSBfcHlkaW8yWydkZWZhdWx0J10ucmVxdWlyZUxpYignaG9jJyk7XG5cbnZhciB3aXRoQ29udGV4dE1lbnUgPSBfUHlkaW8kcmVxdWlyZUxpYi53aXRoQ29udGV4dE1lbnU7XG5cbnZhciBDb250ZXh0TWVudVdyYXBwZXIgPSBmdW5jdGlvbiBDb250ZXh0TWVudVdyYXBwZXIocHJvcHMpIHtcbiAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHByb3BzKTtcbn07XG5Db250ZXh0TWVudVdyYXBwZXIgPSB3aXRoQ29udGV4dE1lbnUoQ29udGV4dE1lbnVXcmFwcGVyKTtcblxuLyoqXG4gKiBUcmVlIE5vZGVcbiAqL1xudmFyIFNpbXBsZVRyZWVOb2RlID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1NpbXBsZVRyZWVOb2RlJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBjb2xsYXBzZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBmb3JjZUV4cGFuZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBjaGlsZHJlbk9ubHk6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgZGVwdGg6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICBvbk5vZGVTZWxlY3Q6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgbm9kZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKEFqeHBOb2RlKSxcbiAgICAgICAgZGF0YU1vZGVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW9EYXRhTW9kZWwpLFxuICAgICAgICBmb3JjZUxhYmVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgLy8gT3B0aW9uYWwgY3VycmVudGx5IHNlbGVjdGVkIGRldGVjdGlvblxuICAgICAgICBub2RlSXNTZWxlY3RlZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvLyBPcHRpb25hbCBjaGVja2JveGVzXG4gICAgICAgIGNoZWNrYm94ZXM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIGNoZWNrYm94ZXNWYWx1ZXM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICBjaGVja2JveGVzQ29tcHV0ZVN0YXR1czogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBvbkNoZWNrYm94Q2hlY2s6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcGFkZGluZ09mZnNldDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5udW1iZXJcbiAgICB9LFxuXG4gICAgZ2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbiBnZXREZWZhdWx0UHJvcHMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2xsYXBzZTogZmFsc2UsXG4gICAgICAgICAgICBjaGlsZHJlbk9ubHk6IGZhbHNlLFxuICAgICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgICAgICBwYWRkaW5nT2Zmc2V0OiAwLFxuICAgICAgICAgICAgb25Ob2RlU2VsZWN0OiBmdW5jdGlvbiBvbk5vZGVTZWxlY3Qobm9kZSkge31cbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgbGlzdGVuVG9Ob2RlOiBmdW5jdGlvbiBsaXN0ZW5Ub05vZGUobm9kZSkge1xuICAgICAgICB0aGlzLl9jaGlsZHJlbkxpc3RlbmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkcmVuOiB0aGlzLl9ub2RlVG9DaGlsZHJlbihub2RlKSB9KTtcbiAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5fbm9kZUxpc3RlbmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpO1xuICAgICAgICBub2RlLm9ic2VydmUoXCJjaGlsZF9hZGRlZFwiLCB0aGlzLl9jaGlsZHJlbkxpc3RlbmVyKTtcbiAgICAgICAgbm9kZS5vYnNlcnZlKFwiY2hpbGRfcmVtb3ZlZFwiLCB0aGlzLl9jaGlsZHJlbkxpc3RlbmVyKTtcbiAgICAgICAgbm9kZS5vYnNlcnZlKFwibG9hZGVkXCIsIHRoaXMuX2NoaWxkcmVuTGlzdGVuZXIpO1xuICAgICAgICBub2RlLm9ic2VydmUoXCJub2RlX3JlcGxhY2VkXCIsIHRoaXMuX25vZGVMaXN0ZW5lcik7XG4gICAgfSxcblxuICAgIHN0b3BMaXN0ZW5pbmc6IGZ1bmN0aW9uIHN0b3BMaXN0ZW5pbmcobm9kZSkge1xuICAgICAgICBub2RlLnN0b3BPYnNlcnZpbmcoXCJjaGlsZF9hZGRlZFwiLCB0aGlzLl9jaGlsZHJlbkxpc3RlbmVyKTtcbiAgICAgICAgbm9kZS5zdG9wT2JzZXJ2aW5nKFwiY2hpbGRfcmVtb3ZlZFwiLCB0aGlzLl9jaGlsZHJlbkxpc3RlbmVyKTtcbiAgICAgICAgbm9kZS5zdG9wT2JzZXJ2aW5nKFwibG9hZGVkXCIsIHRoaXMuX2NoaWxkcmVuTGlzdGVuZXIpO1xuICAgICAgICBub2RlLnN0b3BPYnNlcnZpbmcoXCJub2RlX3JlcGxhY2VkXCIsIHRoaXMuX25vZGVMaXN0ZW5lcik7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5saXN0ZW5Ub05vZGUodGhpcy5wcm9wcy5ub2RlKTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLnN0b3BMaXN0ZW5pbmcodGhpcy5wcm9wcy5ub2RlKTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgdmFyIG9sZE5vZGUgPSB0aGlzLnByb3BzLm5vZGU7XG4gICAgICAgIHZhciBuZXdOb2RlID0gbmV4dFByb3BzLm5vZGU7XG4gICAgICAgIGlmIChuZXdOb2RlID09IG9sZE5vZGUgJiYgbmV3Tm9kZS5nZXRNZXRhZGF0YSgpLmdldChcInBhZ2luYXRpb25EYXRhXCIpKSB7XG4gICAgICAgICAgICB2YXIgcmVtYXBlZENoaWxkcmVuID0gdGhpcy5zdGF0ZS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgICBjLnNldFBhcmVudChuZXdOb2RlKTtyZXR1cm4gYztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIHJlbWFwZWRQYXRoZXMgPSB0aGlzLnN0YXRlLmNoaWxkcmVuLm1hcChmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjLmdldFBhdGgoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIG5ld0NoaWxkcmVuID0gdGhpcy5fbm9kZVRvQ2hpbGRyZW4obmV3Tm9kZSk7XG4gICAgICAgICAgICBuZXdDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChuYykge1xuICAgICAgICAgICAgICAgIGlmIChyZW1hcGVkUGF0aGVzLmluZGV4T2YobmMuZ2V0UGF0aCgpKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtYXBlZENoaWxkcmVuLnB1c2gobmMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkcmVuOiByZW1hcGVkQ2hpbGRyZW4gfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgY2hpbGRyZW46IHRoaXMuX25vZGVUb0NoaWxkcmVuKG5ld05vZGUpIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdOb2RlICE9PSBvbGROb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BMaXN0ZW5pbmcob2xkTm9kZSk7XG4gICAgICAgICAgICB0aGlzLmxpc3RlblRvTm9kZShuZXdOb2RlKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNob3dDaGlsZHJlbjogIXRoaXMucHJvcHMuY29sbGFwc2UgfHwgdGhpcy5wcm9wcy5mb3JjZUV4cGFuZCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLl9ub2RlVG9DaGlsZHJlbih0aGlzLnByb3BzLm5vZGUpXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIF9ub2RlVG9DaGlsZHJlbjogZnVuY3Rpb24gX25vZGVUb0NoaWxkcmVuKCkge1xuICAgICAgICB2YXIgY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgdGhpcy5wcm9wcy5ub2RlLmdldENoaWxkcmVuKCkuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgaWYgKCFjLmlzTGVhZigpIHx8IGMuZ2V0QWp4cE1pbWUoKSA9PT0gJ2FqeHBfYnJvd3NhYmxlX2FyY2hpdmUnKSBjaGlsZHJlbi5wdXNoKGMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH0sXG5cbiAgICBvbk5vZGVTZWxlY3Q6IGZ1bmN0aW9uIG9uTm9kZVNlbGVjdChldikge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbk5vZGVTZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25Ob2RlU2VsZWN0KHRoaXMucHJvcHMubm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSxcbiAgICBvbkNoaWxkRGlzcGxheVRvZ2dsZTogZnVuY3Rpb24gb25DaGlsZERpc3BsYXlUb2dnbGUoZXYpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMubm9kZS5nZXRDaGlsZHJlbigpLnNpemUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93Q2hpbGRyZW46ICF0aGlzLnN0YXRlLnNob3dDaGlsZHJlbiB9KTtcbiAgICAgICAgfVxuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9LFxuICAgIG5vZGVJc1NlbGVjdGVkOiBmdW5jdGlvbiBub2RlSXNTZWxlY3RlZChuKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGVJc1NlbGVjdGVkKSByZXR1cm4gdGhpcy5wcm9wcy5ub2RlSXNTZWxlY3RlZChuKTtlbHNlIHJldHVybiB0aGlzLnByb3BzLmRhdGFNb2RlbC5nZXRTZWxlY3RlZE5vZGVzKCkuaW5kZXhPZihuKSAhPT0gLTE7XG4gICAgfSxcbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIG5vZGUgPSBfcHJvcHMubm9kZTtcbiAgICAgICAgdmFyIGNoaWxkcmVuT25seSA9IF9wcm9wcy5jaGlsZHJlbk9ubHk7XG4gICAgICAgIHZhciBjYW5Ecm9wID0gX3Byb3BzLmNhbkRyb3A7XG4gICAgICAgIHZhciBpc092ZXJDdXJyZW50ID0gX3Byb3BzLmlzT3ZlckN1cnJlbnQ7XG4gICAgICAgIHZhciBjaGVja2JveGVzID0gX3Byb3BzLmNoZWNrYm94ZXM7XG4gICAgICAgIHZhciBjaGVja2JveGVzQ29tcHV0ZVN0YXR1cyA9IF9wcm9wcy5jaGVja2JveGVzQ29tcHV0ZVN0YXR1cztcbiAgICAgICAgdmFyIGNoZWNrYm94ZXNWYWx1ZXMgPSBfcHJvcHMuY2hlY2tib3hlc1ZhbHVlcztcbiAgICAgICAgdmFyIG9uQ2hlY2tib3hDaGVjayA9IF9wcm9wcy5vbkNoZWNrYm94Q2hlY2s7XG4gICAgICAgIHZhciBkZXB0aCA9IF9wcm9wcy5kZXB0aDtcbiAgICAgICAgdmFyIHBhZGRpbmdPZmZzZXQgPSBfcHJvcHMucGFkZGluZ09mZnNldDtcbiAgICAgICAgdmFyIGZvcmNlRXhwYW5kID0gX3Byb3BzLmZvcmNlRXhwYW5kO1xuICAgICAgICB2YXIgc2VsZWN0ZWRJdGVtU3R5bGUgPSBfcHJvcHMuc2VsZWN0ZWRJdGVtU3R5bGU7XG4gICAgICAgIHZhciBnZXRJdGVtU3R5bGUgPSBfcHJvcHMuZ2V0SXRlbVN0eWxlO1xuICAgICAgICB2YXIgZm9yY2VMYWJlbCA9IF9wcm9wcy5mb3JjZUxhYmVsO1xuXG4gICAgICAgIHZhciBoYXNGb2xkZXJDaGlsZHJlbnMgPSB0aGlzLnN0YXRlLmNoaWxkcmVuLmxlbmd0aCA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdmFyIGhhc0NoaWxkcmVuO1xuICAgICAgICBpZiAoaGFzRm9sZGVyQ2hpbGRyZW5zKSB7XG4gICAgICAgICAgICBoYXNDaGlsZHJlbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICB7IG9uQ2xpY2s6IHRoaXMub25DaGlsZERpc3BsYXlUb2dnbGUgfSxcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLnNob3dDaGlsZHJlbiB8fCBmb3JjZUV4cGFuZCA/IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6ICd0cmVlLWljb24gaWNvbi1hbmdsZS1kb3duJyB9KSA6IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6ICd0cmVlLWljb24gaWNvbi1hbmdsZS1yaWdodCcgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgY25hbWUgPSBcInRyZWUtaWNvbiBpY29uLWFuZ2xlLXJpZ2h0XCI7XG4gICAgICAgICAgICBpZiAobm9kZS5pc0xvYWRlZCgpKSB7XG4gICAgICAgICAgICAgICAgY25hbWUgKz0gXCIgbm8tZm9sZGVyLWNoaWxkcmVuXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoYXNDaGlsZHJlbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6IGNuYW1lIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpc1NlbGVjdGVkID0gdGhpcy5ub2RlSXNTZWxlY3RlZChub2RlKSA/ICdtdWktbWVudS1pdGVtIG11aS1pcy1zZWxlY3RlZCcgOiAnbXVpLW1lbnUtaXRlbSc7XG4gICAgICAgIHZhciBzZWxmTGFiZWw7XG4gICAgICAgIGlmICghY2hpbGRyZW5Pbmx5KSB7XG4gICAgICAgICAgICBpZiAoY2FuRHJvcCAmJiBpc092ZXJDdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZCArPSAnIGRyb3BwYWJsZS1hY3RpdmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGJveGVzO1xuICAgICAgICAgICAgaWYgKGNoZWNrYm94ZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0ge30sXG4gICAgICAgICAgICAgICAgICAgIGluaGVyaXRlZCA9IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZCA9IHt9LFxuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsQ2xhc3NOYW1lID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrYm94ZXNDb21wdXRlU3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGF0dXMgPSBjaGVja2JveGVzQ29tcHV0ZVN0YXR1cyhub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gc3RhdHVzLlZBTFVFUztcbiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdGVkID0gc3RhdHVzLklOSEVSSVRFRDtcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQgPSBzdGF0dXMuRElTQUJMRUQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMuQ0xBU1NOQU1FKSBhZGRpdGlvbmFsQ2xhc3NOYW1lID0gJyAnICsgc3RhdHVzLkNMQVNTTkFNRTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrYm94ZXNWYWx1ZXMgJiYgY2hlY2tib3hlc1ZhbHVlc1tub2RlLmdldFBhdGgoKV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gY2hlY2tib3hlc1ZhbHVlc1tub2RlLmdldFBhdGgoKV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZUNsYXNzZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBib3hlcyA9IGNoZWNrYm94ZXMubWFwKChmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSB2YWx1ZXNbY10gIT09IHVuZGVmaW5lZCA/IHZhbHVlc1tjXSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2xpY2sgPSAoZnVuY3Rpb24gKGV2ZW50LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGVja2JveENoZWNrKG5vZGUsIGMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB2YWx1ZUNsYXNzZXMucHVzaChjKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFJlYWN0TVVJLkNoZWNrYm94LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBjLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBjICsgXCItXCIgKyAoc2VsZWN0ZWQgPyBcInRydWVcIiA6IFwiZmFsc2VcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hlY2s6IGNsaWNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkW2NdLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImNib3gtXCIgKyBjXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQgKz0gaW5oZXJpdGVkID8gXCIgaW5oZXJpdGVkIFwiIDogXCJcIjtcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGVkICs9IHZhbHVlQ2xhc3Nlcy5sZW5ndGggPyBcIiBjaGVja2JveC12YWx1ZXMtXCIgKyB2YWx1ZUNsYXNzZXMuam9pbignLScpIDogXCIgY2hlY2tib3gtdmFsdWVzLWVtcHR5XCI7XG4gICAgICAgICAgICAgICAgYm94ZXMgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInRyZWUtY2hlY2tib3hlc1wiICsgYWRkaXRpb25hbENsYXNzTmFtZSB9LFxuICAgICAgICAgICAgICAgICAgICBib3hlc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaXRlbVN0eWxlID0geyBwYWRkaW5nTGVmdDogcGFkZGluZ09mZnNldCArIGRlcHRoICogMjAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLm5vZGVJc1NlbGVjdGVkKG5vZGUpICYmIHNlbGVjdGVkSXRlbVN0eWxlKSB7XG4gICAgICAgICAgICAgICAgaXRlbVN0eWxlID0gX2V4dGVuZHMoe30sIGl0ZW1TdHlsZSwgc2VsZWN0ZWRJdGVtU3R5bGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGdldEl0ZW1TdHlsZSkge1xuICAgICAgICAgICAgICAgIGl0ZW1TdHlsZSA9IF9leHRlbmRzKHt9LCBpdGVtU3R5bGUsIGdldEl0ZW1TdHlsZShub2RlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaWNvbiA9ICdtZGkgbWRpLWZvbGRlcic7XG4gICAgICAgICAgICB2YXIgYWp4cE1pbWUgPSBub2RlLmdldEFqeHBNaW1lKCk7XG4gICAgICAgICAgICBpZiAoYWp4cE1pbWUgPT09ICdhanhwX2Jyb3dzYWJsZV9hcmNoaXZlJykge1xuICAgICAgICAgICAgICAgIGljb24gPSAnbWRpIG1kaS1hcmNoaXZlJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWp4cE1pbWUgPT09ICdhanhwX3JlY3ljbGUnKSB7XG4gICAgICAgICAgICAgICAgaWNvbiA9ICdtZGkgbWRpLWRlbGV0ZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxmTGFiZWwgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBDb250ZXh0TWVudVdyYXBwZXIsXG4gICAgICAgICAgICAgICAgeyBub2RlOiBub2RlLCBjbGFzc05hbWU6ICd0cmVlLWl0ZW0gJyArIGlzU2VsZWN0ZWQgKyAoYm94ZXMgPyAnIGhhcy1jaGVja2JveGVzJyA6ICcnKSwgc3R5bGU6IGl0ZW1TdHlsZSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICd0cmVlLWl0ZW0tbGFiZWwnLCBvbkNsaWNrOiB0aGlzLm9uTm9kZVNlbGVjdCwgdGl0bGU6IG5vZGUuZ2V0TGFiZWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWlkJzogbm9kZS5nZXRQYXRoKCkgfSxcbiAgICAgICAgICAgICAgICAgICAgaGFzQ2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6IFwidHJlZS1pY29uIFwiICsgaWNvbiB9KSxcbiAgICAgICAgICAgICAgICAgICAgZm9yY2VMYWJlbCA/IGZvcmNlTGFiZWwgOiBub2RlLmdldExhYmVsKClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGJveGVzXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNoaWxkcmVuID0gW107XG4gICAgICAgIHZhciBjb25uZWN0b3IgPSBmdW5jdGlvbiBjb25uZWN0b3IoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGRyYWdnYWJsZSA9IGZhbHNlO1xuICAgICAgICBpZiAod2luZG93LlJlYWN0RE5EICYmIHRoaXMucHJvcHMuY29ubmVjdERyb3BUYXJnZXQgJiYgdGhpcy5wcm9wcy5jb25uZWN0RHJhZ1NvdXJjZSkge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgY29ubmVjdERyYWdTb3VyY2UgPSBfdGhpcy5wcm9wcy5jb25uZWN0RHJhZ1NvdXJjZTtcbiAgICAgICAgICAgICAgICB2YXIgY29ubmVjdERyb3BUYXJnZXQgPSBfdGhpcy5wcm9wcy5jb25uZWN0RHJvcFRhcmdldDtcbiAgICAgICAgICAgICAgICBjb25uZWN0b3IgPSBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdERyYWdTb3VyY2UoUmVhY3RET00uZmluZERPTU5vZGUoaW5zdGFuY2UpKTtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdERyb3BUYXJnZXQoUmVhY3RET00uZmluZERPTU5vZGUoaW5zdGFuY2UpKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGRyYWdnYWJsZSA9IHRydWU7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2hvd0NoaWxkcmVuIHx8IGZvcmNlRXhwYW5kKSB7XG4gICAgICAgICAgICBjaGlsZHJlbiA9IHRoaXMuc3RhdGUuY2hpbGRyZW4ubWFwKChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywge1xuICAgICAgICAgICAgICAgICAgICBmb3JjZUxhYmVsOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbk9ubHk6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IGNoaWxkLmdldFBhdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogY2hpbGQsXG4gICAgICAgICAgICAgICAgICAgIGRlcHRoOiBkZXB0aCArIDFcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoZHJhZ2dhYmxlID8gRHJhZ0Ryb3BUcmVlTm9kZSA6IFNpbXBsZVRyZWVOb2RlLCBwcm9wcyk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnbGknLFxuICAgICAgICAgICAgeyByZWY6IGNvbm5lY3RvciwgY2xhc3NOYW1lOiBcInRyZWVub2RlXCIgKyBub2RlLmdldFBhdGgoKS5yZXBsYWNlKC9cXC8vZywgJ18nKSB9LFxuICAgICAgICAgICAgc2VsZkxhYmVsLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ3VsJyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufSk7XG5cbnZhciBEcmFnRHJvcFRyZWVOb2RlO1xuaWYgKHdpbmRvdy5SZWFjdERORCkge1xuICAgIERyYWdEcm9wVHJlZU5vZGUgPSBSZWFjdERORC5mbG93KFJlYWN0RE5ELkRyYWdTb3VyY2UoX3V0aWxETkQuVHlwZXMuTk9ERV9QUk9WSURFUiwgX3V0aWxETkQubm9kZURyYWdTb3VyY2UsIF91dGlsRE5ELmNvbGxlY3QpLCBSZWFjdERORC5Ecm9wVGFyZ2V0KF91dGlsRE5ELlR5cGVzLk5PREVfUFJPVklERVIsIF91dGlsRE5ELm5vZGVEcm9wVGFyZ2V0LCBfdXRpbERORC5jb2xsZWN0RHJvcCkpKFNpbXBsZVRyZWVOb2RlKTtcbn0gZWxzZSB7XG4gICAgRHJhZ0Ryb3BUcmVlTm9kZSA9IFNpbXBsZVRyZWVOb2RlO1xufVxuXG4vKipcbiAqIFNpbXBsZSBvcGVuYWJsZSAvIGxvYWRhYmxlIHRyZWUgdGFraW5nIEFqeHBOb2RlIGFzIGlucHV0c1xuICovXG52YXIgRE5EVHJlZVZpZXcgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnRE5EVHJlZVZpZXcnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIHNob3dSb290OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIHJvb3RMYWJlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIG9uTm9kZVNlbGVjdDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBub2RlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoQWp4cE5vZGUpLmlzUmVxdWlyZWQsXG4gICAgICAgIGRhdGFNb2RlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKFB5ZGlvRGF0YU1vZGVsKS5pc1JlcXVpcmVkLFxuICAgICAgICBzZWxlY3RhYmxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIHNlbGVjdGFibGVNdWx0aXBsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBpbml0aWFsU2VsZWN0aW9uTW9kZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGZvcmNlRXhwYW5kOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8vIE9wdGlvbmFsIGN1cnJlbnRseSBzZWxlY3RlZCBkZXRlY3Rpb25cbiAgICAgICAgbm9kZUlzU2VsZWN0ZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLy8gT3B0aW9uYWwgY2hlY2tib3hlc1xuICAgICAgICBjaGVja2JveGVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICBjaGVja2JveGVzVmFsdWVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgY2hlY2tib3hlc0NvbXB1dGVTdGF0dXM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgb25DaGVja2JveENoZWNrOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHBhZGRpbmdPZmZzZXQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMubnVtYmVyXG4gICAgfSxcblxuICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gZ2V0RGVmYXVsdFByb3BzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hvd1Jvb3Q6IHRydWUsXG4gICAgICAgICAgICBvbk5vZGVTZWxlY3Q6IHRoaXMub25Ob2RlU2VsZWN0XG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIG9uTm9kZVNlbGVjdDogZnVuY3Rpb24gb25Ob2RlU2VsZWN0KG5vZGUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Ob2RlU2VsZWN0KSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uTm9kZVNlbGVjdChub2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnNldFNlbGVjdGVkTm9kZXMoW25vZGVdKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ3VsJyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZSB9LFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoRHJhZ0Ryb3BUcmVlTm9kZSwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuT25seTogIXRoaXMucHJvcHMuc2hvd1Jvb3QsXG4gICAgICAgICAgICAgICAgZm9yY2VFeHBhbmQ6IHRoaXMucHJvcHMuZm9yY2VFeHBhbmQsXG4gICAgICAgICAgICAgICAgbm9kZTogdGhpcy5wcm9wcy5ub2RlID8gdGhpcy5wcm9wcy5ub2RlIDogdGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0Um9vdE5vZGUoKSxcbiAgICAgICAgICAgICAgICBkYXRhTW9kZWw6IHRoaXMucHJvcHMuZGF0YU1vZGVsLFxuICAgICAgICAgICAgICAgIG9uTm9kZVNlbGVjdDogdGhpcy5vbk5vZGVTZWxlY3QsXG4gICAgICAgICAgICAgICAgbm9kZUlzU2VsZWN0ZWQ6IHRoaXMucHJvcHMubm9kZUlzU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgZm9yY2VMYWJlbDogdGhpcy5wcm9wcy5yb290TGFiZWwsXG4gICAgICAgICAgICAgICAgY2hlY2tib3hlczogdGhpcy5wcm9wcy5jaGVja2JveGVzLFxuICAgICAgICAgICAgICAgIGNoZWNrYm94ZXNWYWx1ZXM6IHRoaXMucHJvcHMuY2hlY2tib3hlc1ZhbHVlcyxcbiAgICAgICAgICAgICAgICBjaGVja2JveGVzQ29tcHV0ZVN0YXR1czogdGhpcy5wcm9wcy5jaGVja2JveGVzQ29tcHV0ZVN0YXR1cyxcbiAgICAgICAgICAgICAgICBvbkNoZWNrYm94Q2hlY2s6IHRoaXMucHJvcHMub25DaGVja2JveENoZWNrLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbVN0eWxlOiB0aGlzLnByb3BzLnNlbGVjdGVkSXRlbVN0eWxlLFxuICAgICAgICAgICAgICAgIGdldEl0ZW1TdHlsZTogdGhpcy5wcm9wcy5nZXRJdGVtU3R5bGUsXG4gICAgICAgICAgICAgICAgcGFkZGluZ09mZnNldDogdGhpcy5wcm9wcy5wYWRkaW5nT2Zmc2V0XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn0pO1xuXG52YXIgVHJlZVZpZXcgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnVHJlZVZpZXcnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIHNob3dSb290OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIHJvb3RMYWJlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIG9uTm9kZVNlbGVjdDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBub2RlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoQWp4cE5vZGUpLmlzUmVxdWlyZWQsXG4gICAgICAgIGRhdGFNb2RlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKFB5ZGlvRGF0YU1vZGVsKS5pc1JlcXVpcmVkLFxuICAgICAgICBzZWxlY3RhYmxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIHNlbGVjdGFibGVNdWx0aXBsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBpbml0aWFsU2VsZWN0aW9uTW9kZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGZvcmNlRXhwYW5kOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8vIE9wdGlvbmFsIGN1cnJlbnRseSBzZWxlY3RlZCBkZXRlY3Rpb25cbiAgICAgICAgbm9kZUlzU2VsZWN0ZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLy8gT3B0aW9uYWwgY2hlY2tib3hlc1xuICAgICAgICBjaGVja2JveGVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICBjaGVja2JveGVzVmFsdWVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgY2hlY2tib3hlc0NvbXB1dGVTdGF0dXM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgb25DaGVja2JveENoZWNrOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHBhZGRpbmdPZmZzZXQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMubnVtYmVyXG4gICAgfSxcblxuICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gZ2V0RGVmYXVsdFByb3BzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hvd1Jvb3Q6IHRydWUsXG4gICAgICAgICAgICBvbk5vZGVTZWxlY3Q6IHRoaXMub25Ob2RlU2VsZWN0XG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIG9uTm9kZVNlbGVjdDogZnVuY3Rpb24gb25Ob2RlU2VsZWN0KG5vZGUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Ob2RlU2VsZWN0KSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uTm9kZVNlbGVjdChub2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnNldFNlbGVjdGVkTm9kZXMoW25vZGVdKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ3VsJyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZSB9LFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoU2ltcGxlVHJlZU5vZGUsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbk9ubHk6ICF0aGlzLnByb3BzLnNob3dSb290LFxuICAgICAgICAgICAgICAgIGZvcmNlRXhwYW5kOiB0aGlzLnByb3BzLmZvcmNlRXhwYW5kLFxuICAgICAgICAgICAgICAgIG5vZGU6IHRoaXMucHJvcHMubm9kZSA/IHRoaXMucHJvcHMubm9kZSA6IHRoaXMucHJvcHMuZGF0YU1vZGVsLmdldFJvb3ROb2RlKCksXG4gICAgICAgICAgICAgICAgZGF0YU1vZGVsOiB0aGlzLnByb3BzLmRhdGFNb2RlbCxcbiAgICAgICAgICAgICAgICBvbk5vZGVTZWxlY3Q6IHRoaXMub25Ob2RlU2VsZWN0LFxuICAgICAgICAgICAgICAgIG5vZGVJc1NlbGVjdGVkOiB0aGlzLnByb3BzLm5vZGVJc1NlbGVjdGVkLFxuICAgICAgICAgICAgICAgIGZvcmNlTGFiZWw6IHRoaXMucHJvcHMucm9vdExhYmVsLFxuICAgICAgICAgICAgICAgIGNoZWNrYm94ZXM6IHRoaXMucHJvcHMuY2hlY2tib3hlcyxcbiAgICAgICAgICAgICAgICBjaGVja2JveGVzVmFsdWVzOiB0aGlzLnByb3BzLmNoZWNrYm94ZXNWYWx1ZXMsXG4gICAgICAgICAgICAgICAgY2hlY2tib3hlc0NvbXB1dGVTdGF0dXM6IHRoaXMucHJvcHMuY2hlY2tib3hlc0NvbXB1dGVTdGF0dXMsXG4gICAgICAgICAgICAgICAgb25DaGVja2JveENoZWNrOiB0aGlzLnByb3BzLm9uQ2hlY2tib3hDaGVjayxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1TdHlsZTogdGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1TdHlsZSxcbiAgICAgICAgICAgICAgICBnZXRJdGVtU3R5bGU6IHRoaXMucHJvcHMuZ2V0SXRlbVN0eWxlLFxuICAgICAgICAgICAgICAgIHBhZGRpbmdPZmZzZXQ6IHRoaXMucHJvcHMucGFkZGluZ09mZnNldFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xuXG52YXIgRm9sZGVyc1RyZWUgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnRm9sZGVyc1RyZWUnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIHB5ZGlvOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoX3B5ZGlvMlsnZGVmYXVsdCddKS5pc1JlcXVpcmVkLFxuICAgICAgICBkYXRhTW9kZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpb0RhdGFNb2RlbCkuaXNSZXF1aXJlZCxcbiAgICAgICAgY2xhc3NOYW1lOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgb25Ob2RlU2VsZWN0ZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgZHJhZ2dhYmxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2xcbiAgICB9LFxuXG4gICAgbm9kZU9ic2VydmVyOiBmdW5jdGlvbiBub2RlT2JzZXJ2ZXIoKSB7XG4gICAgICAgIHZhciByID0gdGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0Um9vdE5vZGUoKTtcbiAgICAgICAgaWYgKCFyLmlzTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIHIub2JzZXJ2ZU9uY2UoXCJsb2FkZWRcIiwgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHZhciBkbSA9IHRoaXMucHJvcHMuZGF0YU1vZGVsO1xuICAgICAgICB0aGlzLl9kbU9icyA9IHRoaXMubm9kZU9ic2VydmVyO1xuICAgICAgICBkbS5vYnNlcnZlKFwiY29udGV4dF9jaGFuZ2VkXCIsIHRoaXMuX2RtT2JzKTtcbiAgICAgICAgZG0ub2JzZXJ2ZShcInJvb3Rfbm9kZV9jaGFuZ2VkXCIsIHRoaXMuX2RtT2JzKTtcbiAgICAgICAgdGhpcy5ub2RlT2JzZXJ2ZXIoKTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodGhpcy5fZG1PYnMpIHtcbiAgICAgICAgICAgIHZhciBkbSA9IHRoaXMucHJvcHMuZGF0YU1vZGVsO1xuICAgICAgICAgICAgZG0uc3RvcE9ic2VydmluZyhcImNvbnRleHRfY2hhbmdlZFwiLCB0aGlzLl9kbU9icyk7XG4gICAgICAgICAgICBkbS5zdG9wT2JzZXJ2aW5nKFwicm9vdF9ub2RlX2NoYW5nZWRcIiwgdGhpcy5fZG1PYnMpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIHRyZWVOb2RlU2VsZWN0ZWQ6IGZ1bmN0aW9uIHRyZWVOb2RlU2VsZWN0ZWQobikge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbk5vZGVTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbk5vZGVTZWxlY3RlZChuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnJlcXVpcmVDb250ZXh0Q2hhbmdlKG4pO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIG5vZGVJc1NlbGVjdGVkOiBmdW5jdGlvbiBub2RlSXNTZWxlY3RlZChuKSB7XG4gICAgICAgIHJldHVybiBuID09PSB0aGlzLnByb3BzLmRhdGFNb2RlbC5nZXRDb250ZXh0Tm9kZSgpO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZHJhZ2dhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoUHlkaW9Db21wb25lbnRzLkRORFRyZWVWaWV3LCB7XG4gICAgICAgICAgICAgICAgb25Ob2RlU2VsZWN0OiB0aGlzLnRyZWVOb2RlU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgbm9kZUlzU2VsZWN0ZWQ6IHRoaXMubm9kZUlzU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgZGF0YU1vZGVsOiB0aGlzLnByb3BzLmRhdGFNb2RlbCxcbiAgICAgICAgICAgICAgICBub2RlOiB0aGlzLnByb3BzLmRhdGFNb2RlbC5nZXRSb290Tm9kZSgpLFxuICAgICAgICAgICAgICAgIHNob3dSb290OiB0aGlzLnByb3BzLnNob3dSb290ID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbVN0eWxlOiB0aGlzLnByb3BzLnNlbGVjdGVkSXRlbVN0eWxlLFxuICAgICAgICAgICAgICAgIGdldEl0ZW1TdHlsZTogdGhpcy5wcm9wcy5nZXRJdGVtU3R5bGUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImZvbGRlcnMtdHJlZVwiICsgKHRoaXMucHJvcHMuY2xhc3NOYW1lID8gJyAnICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgOiAnJylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFB5ZGlvQ29tcG9uZW50cy5UcmVlVmlldywge1xuICAgICAgICAgICAgICAgIG9uTm9kZVNlbGVjdDogdGhpcy50cmVlTm9kZVNlbGVjdGVkLFxuICAgICAgICAgICAgICAgIG5vZGVJc1NlbGVjdGVkOiB0aGlzLm5vZGVJc1NlbGVjdGVkLFxuICAgICAgICAgICAgICAgIGRhdGFNb2RlbDogdGhpcy5wcm9wcy5kYXRhTW9kZWwsXG4gICAgICAgICAgICAgICAgbm9kZTogdGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0Um9vdE5vZGUoKSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1TdHlsZTogdGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1TdHlsZSxcbiAgICAgICAgICAgICAgICBnZXRJdGVtU3R5bGU6IHRoaXMucHJvcHMuZ2V0SXRlbVN0eWxlLFxuICAgICAgICAgICAgICAgIHNob3dSb290OiB0aGlzLnByb3BzLnNob3dSb290ID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJmb2xkZXJzLXRyZWVcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSA/ICcgJyArIHRoaXMucHJvcHMuY2xhc3NOYW1lIDogJycpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxufSk7XG5cbmV4cG9ydHMuVHJlZVZpZXcgPSBUcmVlVmlldztcbmV4cG9ydHMuRE5EVHJlZVZpZXcgPSBETkRUcmVlVmlldztcbmV4cG9ydHMuRm9sZGVyc1RyZWUgPSBGb2xkZXJzVHJlZTtcbiJdfQ== +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2FwaS5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2Jhc2UvYnVmZmVyLmpzIiwibm9kZV9tb2R1bGVzL2FzbjEuanMvbGliL2FzbjEvYmFzZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2Jhc2Uvbm9kZS5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2Jhc2UvcmVwb3J0ZXIuanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS9jb25zdGFudHMvZGVyLmpzIiwibm9kZV9tb2R1bGVzL2FzbjEuanMvbGliL2FzbjEvY29uc3RhbnRzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzbjEuanMvbGliL2FzbjEvZGVjb2RlcnMvZGVyLmpzIiwibm9kZV9tb2R1bGVzL2FzbjEuanMvbGliL2FzbjEvZGVjb2RlcnMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS9kZWNvZGVycy9wZW0uanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS9lbmNvZGVycy9kZXIuanMiLCJub2RlX21vZHVsZXMvYXNuMS5qcy9saWIvYXNuMS9lbmNvZGVycy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hc24xLmpzL2xpYi9hc24xL2VuY29kZXJzL3BlbS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYWNtLTIwMTUtMTItMDgubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2FjbS0yMDE1LTEyLTA4LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYWNtLTIwMTUtMTItMDgud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYXBpZ2F0ZXdheS0yMDE1LTA3LTA5Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9hcGlnYXRld2F5LTIwMTUtMDctMDkucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9hcHBsaWNhdGlvbi1hdXRvc2NhbGluZy0yMDE2LTAyLTA2Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9hcHBsaWNhdGlvbi1hdXRvc2NhbGluZy0yMDE2LTAyLTA2LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYXV0b3NjYWxpbmctMjAxMS0wMS0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvYXV0b3NjYWxpbmctMjAxMS0wMS0wMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Nsb3VkZm9ybWF0aW9uLTIwMTAtMDUtMTUubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Nsb3VkZm9ybWF0aW9uLTIwMTAtMDUtMTUucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jbG91ZGZvcm1hdGlvbi0yMDEwLTA1LTE1LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Nsb3VkZnJvbnQtMjAxNi0xMS0yNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWRmcm9udC0yMDE2LTExLTI1LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWRmcm9udC0yMDE2LTExLTI1LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Nsb3VkZnJvbnQtMjAxNy0wMy0yNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWRmcm9udC0yMDE3LTAzLTI1LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWRmcm9udC0yMDE3LTEwLTMwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jbG91ZGhzbS0yMDE0LTA1LTMwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jbG91ZGhzbS0yMDE0LTA1LTMwLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY2xvdWR0cmFpbC0yMDEzLTExLTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jbG91ZHRyYWlsLTIwMTMtMTEtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2RlYnVpbGQtMjAxNi0xMC0wNi5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY29kZWNvbW1pdC0yMDE1LTA0LTEzLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2RlY29tbWl0LTIwMTUtMDQtMTMucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2RlZGVwbG95LTIwMTQtMTAtMDYubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2NvZGVkZXBsb3ktMjAxNC0xMC0wNi5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2NvZGVkZXBsb3ktMjAxNC0xMC0wNi53YWl0ZXJzMi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2RlcGlwZWxpbmUtMjAxNS0wNy0wOS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY29nbml0by1pZGVudGl0eS0yMDE0LTA2LTMwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2duaXRvLWlkcC0yMDE2LTA0LTE4Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9jb2duaXRvLXN5bmMtMjAxNC0wNi0zMC5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY29uZmlnLTIwMTQtMTEtMTIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2NvbmZpZy0yMDE0LTExLTEyLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvY3VyLTIwMTctMDEtMDYubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2N1ci0yMDE3LTAxLTA2LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZGV2aWNlZmFybS0yMDE1LTA2LTIzLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9kZXZpY2VmYXJtLTIwMTUtMDYtMjMucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9kaXJlY3Rjb25uZWN0LTIwMTItMTAtMjUubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2RpcmVjdGNvbm5lY3QtMjAxMi0xMC0yNS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2R5bmFtb2RiLTIwMTEtMTItMDUubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2R5bmFtb2RiLTIwMTEtMTItMDUucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9keW5hbW9kYi0yMDExLTEyLTA1LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2R5bmFtb2RiLTIwMTItMDgtMTAubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VjMi0yMDE2LTExLTE1Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lYzItMjAxNi0xMS0xNS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VjMi0yMDE2LTExLTE1LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Vjci0yMDE1LTA5LTIxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lY3ItMjAxNS0wOS0yMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Vjcy0yMDE0LTExLTEzLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lY3MtMjAxNC0xMS0xMy5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2Vjcy0yMDE0LTExLTEzLndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWNhY2hlLTIwMTUtMDItMDIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWNhY2hlLTIwMTUtMDItMDIucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljYWNoZS0yMDE1LTAyLTAyLndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWNiZWFuc3RhbGstMjAxMC0xMi0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2JlYW5zdGFsay0yMDEwLTEyLTAxLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2ZpbGVzeXN0ZW0tMjAxNS0wMi0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmctMjAxMi0wNi0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmctMjAxMi0wNi0wMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWNsb2FkYmFsYW5jaW5nLTIwMTItMDYtMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi0yMDE1LTEyLTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZ3YyLTIwMTUtMTItMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZ3YyLTIwMTUtMTItMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY21hcHJlZHVjZS0yMDA5LTAzLTMxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljbWFwcmVkdWNlLTIwMDktMDMtMzEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9lbGFzdGljbWFwcmVkdWNlLTIwMDktMDMtMzEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY3RyYW5zY29kZXItMjAxMi0wOS0yNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZWxhc3RpY3RyYW5zY29kZXItMjAxMi0wOS0yNS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VsYXN0aWN0cmFuc2NvZGVyLTIwMTItMDktMjUud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZW1haWwtMjAxMC0xMi0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZW1haWwtMjAxMC0xMi0wMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2VtYWlsLTIwMTAtMTItMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvZXZlbnRzLTIwMTUtMTAtMDcubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2ZpcmVob3NlLTIwMTUtMDgtMDQubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2dhbWVsaWZ0LTIwMTUtMTAtMDEubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2luc3BlY3Rvci0yMDE2LTAyLTE2Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9pbnNwZWN0b3ItMjAxNi0wMi0xNi5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2lvdC0yMDE1LTA1LTI4Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9pb3QtZGF0YS0yMDE1LTA1LTI4Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9raW5lc2lzLTIwMTMtMTItMDIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2tpbmVzaXMtMjAxMy0xMi0wMi5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2tpbmVzaXMtMjAxMy0xMi0wMi53YWl0ZXJzMi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9rbXMtMjAxNC0xMS0wMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMva21zLTIwMTQtMTEtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9sYW1iZGEtMjAxNC0xMS0xMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbGFtYmRhLTIwMTQtMTEtMTEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9sYW1iZGEtMjAxNS0wMy0zMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbGFtYmRhLTIwMTUtMDMtMzEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9sZXgtbW9kZWxzLTIwMTctMDQtMTkubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2xleC1tb2RlbHMtMjAxNy0wNC0xOS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL2xvZ3MtMjAxNC0wMy0yOC5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbG9ncy0yMDE0LTAzLTI4LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbWFjaGluZWxlYXJuaW5nLTIwMTQtMTItMTIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL21hY2hpbmVsZWFybmluZy0yMDE0LTEyLTEyLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbWFjaGluZWxlYXJuaW5nLTIwMTQtMTItMTIud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbWFya2V0cGxhY2Vjb21tZXJjZWFuYWx5dGljcy0yMDE1LTA3LTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9tZXRhZGF0YS5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9tb2JpbGVhbmFseXRpY3MtMjAxNC0wNi0wNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbW9uaXRvcmluZy0yMDEwLTA4LTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9tb25pdG9yaW5nLTIwMTAtMDgtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9tb25pdG9yaW5nLTIwMTAtMDgtMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvbXR1cmstcmVxdWVzdGVyLTIwMTctMDEtMTcubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL210dXJrLXJlcXVlc3Rlci0yMDE3LTAxLTE3LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvb3Bzd29ya3MtMjAxMy0wMi0xOC5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvb3Bzd29ya3MtMjAxMy0wMi0xOC5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL29wc3dvcmtzLTIwMTMtMDItMTgud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcG9sbHktMjAxNi0wNi0xMC5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcmRzLTIwMTMtMDEtMTAubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDEzLTAxLTEwLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcmRzLTIwMTMtMDItMTIubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDEzLTAyLTEyLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcmRzLTIwMTMtMDktMDkubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDEzLTA5LTA5LndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDE0LTA5LTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZHMtMjAxNC0wOS0wMS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3Jkcy0yMDE0LTEwLTMxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZHMtMjAxNC0xMC0zMS53YWl0ZXJzMi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZWRzaGlmdC0yMDEyLTEyLTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZWRzaGlmdC0yMDEyLTEyLTAxLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcmVkc2hpZnQtMjAxMi0xMi0wMS53YWl0ZXJzMi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZWtvZ25pdGlvbi0yMDE2LTA2LTI3Lm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yZWtvZ25pdGlvbi0yMDE2LTA2LTI3LnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcm91dGU1My0yMDEzLTA0LTAxLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yb3V0ZTUzLTIwMTMtMDQtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9yb3V0ZTUzLTIwMTMtMDQtMDEud2FpdGVyczIuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcm91dGU1M2RvbWFpbnMtMjAxNC0wNS0xNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvcm91dGU1M2RvbWFpbnMtMjAxNC0wNS0xNS5wYWdpbmF0b3JzLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3J1bnRpbWUubGV4LTIwMTYtMTEtMjgubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3MzLTIwMDYtMDMtMDEubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3MzLTIwMDYtMDMtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zMy0yMDA2LTAzLTAxLndhaXRlcnMyLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3NlcnZpY2VjYXRhbG9nLTIwMTUtMTItMTAubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3NlcnZpY2VjYXRhbG9nLTIwMTUtMTItMTAucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zbnMtMjAxMC0wMy0zMS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvc25zLTIwMTAtMDMtMzEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zcXMtMjAxMi0xMS0wNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvc3FzLTIwMTItMTEtMDUucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zc20tMjAxNC0xMS0wNi5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvc3NtLTIwMTQtMTEtMDYucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zdG9yYWdlZ2F0ZXdheS0yMDEzLTA2LTMwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zdG9yYWdlZ2F0ZXdheS0yMDEzLTA2LTMwLnBhZ2luYXRvcnMuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvc3RyZWFtcy5keW5hbW9kYi0yMDEyLTA4LTEwLm1pbi5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvYXBpcy9zdHMtMjAxMS0wNi0xNS5taW4uanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2FwaXMvd2FmLTIwMTUtMDgtMjQubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3dvcmtkb2NzLTIwMTYtMDUtMDEubWluLmpzb24iLCJub2RlX21vZHVsZXMvYXdzLXNkay9hcGlzL3dvcmtkb2NzLTIwMTYtMDUtMDEucGFnaW5hdG9ycy5qc29uIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9hY20uanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2FwaWdhdGV3YXkuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2FwcGxpY2F0aW9uYXV0b3NjYWxpbmcuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2F1dG9zY2FsaW5nLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9icm93c2VyX2RlZmF1bHQuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2Nsb3VkZm9ybWF0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9jbG91ZGZyb250LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9jbG91ZGhzbS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY2xvdWR0cmFpbC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY2xvdWR3YXRjaC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY2xvdWR3YXRjaGV2ZW50cy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY2xvdWR3YXRjaGxvZ3MuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2NvZGVidWlsZC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY29kZWNvbW1pdC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY29kZWRlcGxveS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY29kZXBpcGVsaW5lLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9jb2duaXRvaWRlbnRpdHkuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2NvZ25pdG9pZGVudGl0eXNlcnZpY2Vwcm92aWRlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvY29nbml0b3N5bmMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2NvbmZpZ3NlcnZpY2UuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2N1ci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZGV2aWNlZmFybS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZGlyZWN0Y29ubmVjdC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZHluYW1vZGIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2R5bmFtb2Ric3RyZWFtcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWMyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9lY3IuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2Vjcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWZzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9lbGFzdGljYWNoZS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWxhc3RpY2JlYW5zdGFsay5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWxhc3RpY3RyYW5zY29kZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2VsYi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZWxidjIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2Vtci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvZmlyZWhvc2UuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2dhbWVsaWZ0LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9pbnNwZWN0b3IuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2lvdC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvaW90ZGF0YS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMva2luZXNpcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMva21zLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9sYW1iZGEuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL2xleG1vZGVsYnVpbGRpbmdzZXJ2aWNlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9sZXhydW50aW1lLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9tYWNoaW5lbGVhcm5pbmcuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL21hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3MuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL21vYmlsZWFuYWx5dGljcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvbXR1cmsuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL29wc3dvcmtzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9wb2xseS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvcmRzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9yZWRzaGlmdC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvcmVrb2duaXRpb24uanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3JvdXRlNTMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3JvdXRlNTNkb21haW5zLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9zMy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvc2VydmljZWNhdGFsb2cuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3Nlcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvc25zLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy9zcXMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3NzbS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvc3RvcmFnZWdhdGV3YXkuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9jbGllbnRzL3N0cy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2NsaWVudHMvd2FmLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvY2xpZW50cy93b3JrZG9jcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9hcGlfbG9hZGVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvYnJvd3NlckNyeXB0b0xpYi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9icm93c2VySGFzaFV0aWxzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2Jyb3dzZXJIbWFjLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2Jyb3dzZXJNZDUuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvYnJvd3NlclNoYTEuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvYnJvd3NlclNoYTI1Ni5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9icm93c2VyX2xvYWRlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jbG91ZGZyb250L3NpZ25lci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jb25maWcuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvY29yZS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jcmVkZW50aWFscy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jcmVkZW50aWFscy9jb2duaXRvX2lkZW50aXR5X2NyZWRlbnRpYWxzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2NyZWRlbnRpYWxzL2NyZWRlbnRpYWxfcHJvdmlkZXJfY2hhaW4uanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvY3JlZGVudGlhbHMvc2FtbF9jcmVkZW50aWFscy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9jcmVkZW50aWFscy90ZW1wb3JhcnlfY3JlZGVudGlhbHMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvY3JlZGVudGlhbHMvd2ViX2lkZW50aXR5X2NyZWRlbnRpYWxzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2R5bmFtb2RiL2NvbnZlcnRlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9keW5hbW9kYi9kb2N1bWVudF9jbGllbnQuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZHluYW1vZGIvbnVtYmVyVmFsdWUuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZHluYW1vZGIvc2V0LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2R5bmFtb2RiL3RyYW5zbGF0b3IuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZHluYW1vZGIvdHlwZXMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZXZlbnQtc3RyZWFtL2J1ZmZlcmVkLWNyZWF0ZS1ldmVudC1zdHJlYW0uanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZXZlbnQtc3RyZWFtL2V2ZW50LW1lc3NhZ2UtY2h1bmtlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9ldmVudC1zdHJlYW0vaW50NjQuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZXZlbnQtc3RyZWFtL3BhcnNlLWV2ZW50LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2V2ZW50LXN0cmVhbS9wYXJzZS1tZXNzYWdlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2V2ZW50LXN0cmVhbS9zcGxpdC1tZXNzYWdlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2V2ZW50LXN0cmVhbS90by1idWZmZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvZXZlbnRfbGlzdGVuZXJzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2h0dHAuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvaHR0cC94aHIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvanNvbi9idWlsZGVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL2pzb24vcGFyc2VyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL21vZGVsL2FwaS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9tb2RlbC9jb2xsZWN0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL21vZGVsL29wZXJhdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9tb2RlbC9wYWdpbmF0b3IuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvbW9kZWwvcmVzb3VyY2Vfd2FpdGVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL21vZGVsL3NoYXBlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3BhcmFtX3ZhbGlkYXRvci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9wb2xseS9wcmVzaWduZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcHJvdG9jb2wvanNvbi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9wcm90b2NvbC9xdWVyeS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9wcm90b2NvbC9yZXN0LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3Byb3RvY29sL3Jlc3RfanNvbi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9wcm90b2NvbC9yZXN0X3htbC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9xdWVyeS9xdWVyeV9wYXJhbV9zZXJpYWxpemVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3Jkcy9zaWduZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvcmVnaW9uX2NvbmZpZy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9yZWdpb25fY29uZmlnX2RhdGEuanNvbiIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9yZXF1ZXN0LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3Jlc291cmNlX3dhaXRlci5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9yZXNwb25zZS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zMy9tYW5hZ2VkX3VwbG9hZC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXF1ZW50aWFsX2V4ZWN1dG9yLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2UuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2VydmljZXMvYXBpZ2F0ZXdheS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9jbG91ZGZyb250LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL2NvZ25pdG9pZGVudGl0eS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9keW5hbW9kYi5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9lYzIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2VydmljZXMvaW90ZGF0YS5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9sYW1iZGEuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2VydmljZXMvbWFjaGluZWxlYXJuaW5nLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3BvbGx5LmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3Jkcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9yb3V0ZTUzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3MzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NlcnZpY2VzL3Nxcy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zZXJ2aWNlcy9zdHMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2lnbmVycy9wcmVzaWduLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NpZ25lcnMvcmVxdWVzdF9zaWduZXIuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2lnbmVycy9zMy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zaWduZXJzL3YyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NpZ25lcnMvdjMuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2lnbmVycy92M2h0dHBzLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3NpZ25lcnMvdjQuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIvc2lnbmVycy92NF9jcmVkZW50aWFscy5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi9zdGF0ZV9tYWNoaW5lLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3V0aWwuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIveG1sL2Jyb3dzZXJfcGFyc2VyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3htbC9idWlsZGVyLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3htbC9lc2NhcGUtYXR0cmlidXRlLmpzIiwibm9kZV9tb2R1bGVzL2F3cy1zZGsvbGliL3htbC9lc2NhcGUtZWxlbWVudC5qcyIsIm5vZGVfbW9kdWxlcy9hd3Mtc2RrL2xpYi94bWwveG1sLW5vZGUuanMiLCJub2RlX21vZHVsZXMvYXdzLXNkay9saWIveG1sL3htbC10ZXh0LmpzIiwibm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ibi5qcy9saWIvYm4uanMiLCJub2RlX21vZHVsZXMvYnJvcmFuZC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyLXJlc29sdmUvZW1wdHkuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvYWVzLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL2F1dGhDaXBoZXIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LWFlcy9kZWNyeXB0ZXIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvZW5jcnlwdGVyLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL2doYXNoLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL2luY3IzMi5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LWFlcy9tb2Rlcy9jYmMuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvbW9kZXMvY2ZiLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL21vZGVzL2NmYjEuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvbW9kZXMvY2ZiOC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LWFlcy9tb2Rlcy9jdHIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvbW9kZXMvZWNiLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL21vZGVzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktYWVzL21vZGVzL2xpc3QuanNvbiIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LWFlcy9tb2Rlcy9vZmIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1hZXMvc3RyZWFtQ2lwaGVyLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktY2lwaGVyL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1kZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1kZXMvbW9kZXMuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1yc2EvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS1zaWduL2FsZ29zLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktc2lnbi9icm93c2VyL2FsZ29yaXRobXMuanNvbiIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LXNpZ24vYnJvd3Nlci9jdXJ2ZXMuanNvbiIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LXNpZ24vYnJvd3Nlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5LXNpZ24vYnJvd3Nlci9zaWduLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktc2lnbi9icm93c2VyL3ZlcmlmeS5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9iYXNlNjQtanMvbGliL2I2NC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnVmZmVyL25vZGVfbW9kdWxlcy9pc2FycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2V2ZW50cy9ldmVudHMuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3N0cmluZ19kZWNvZGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2J1ZmZlci14b3IvaW5kZXguanMiLCJub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2NpcGhlci1iYXNlL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2NvbXBvbmVudC1lbWl0dGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2NvcmUtdXRpbC1pcy9saWIvdXRpbC5qcyIsIm5vZGVfbW9kdWxlcy9jcmVhdGUtZWNkaC9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2NyZWF0ZS1oYXNoL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvY3JlYXRlLWhhc2gvbWQ1LmpzIiwibm9kZV9tb2R1bGVzL2NyZWF0ZS1obWFjL2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvY3JlYXRlLWhtYWMvbGVnYWN5LmpzIiwibm9kZV9tb2R1bGVzL2NyeXB0by1icm93c2VyaWZ5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Rlcy5qcy9saWIvZGVzLmpzIiwibm9kZV9tb2R1bGVzL2Rlcy5qcy9saWIvZGVzL2NiYy5qcyIsIm5vZGVfbW9kdWxlcy9kZXMuanMvbGliL2Rlcy9jaXBoZXIuanMiLCJub2RlX21vZHVsZXMvZGVzLmpzL2xpYi9kZXMvZGVzLmpzIiwibm9kZV9tb2R1bGVzL2Rlcy5qcy9saWIvZGVzL2VkZS5qcyIsIm5vZGVfbW9kdWxlcy9kZXMuanMvbGliL2Rlcy91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9kaWZmaWUtaGVsbG1hbi9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2RpZmZpZS1oZWxsbWFuL2xpYi9kaC5qcyIsIm5vZGVfbW9kdWxlcy9kaWZmaWUtaGVsbG1hbi9saWIvZ2VuZXJhdGVQcmltZS5qcyIsIm5vZGVfbW9kdWxlcy9kaWZmaWUtaGVsbG1hbi9saWIvcHJpbWVzLmpzb24iLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljLmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9jdXJ2ZS9iYXNlLmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9jdXJ2ZS9lZHdhcmRzLmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9jdXJ2ZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvY3VydmUvbW9udC5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvY3VydmUvc2hvcnQuanMiLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljL2N1cnZlcy5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvZWMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljL2VjL2tleS5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvZWMvc2lnbmF0dXJlLmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9lZGRzYS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvZWRkc2Eva2V5LmpzIiwibm9kZV9tb2R1bGVzL2VsbGlwdGljL2xpYi9lbGxpcHRpYy9lZGRzYS9zaWduYXR1cmUuanMiLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljL3ByZWNvbXB1dGVkL3NlY3AyNTZrMS5qcyIsIm5vZGVfbW9kdWxlcy9lbGxpcHRpYy9saWIvZWxsaXB0aWMvdXRpbHMuanMiLCJub2RlX21vZHVsZXMvZWxsaXB0aWMvcGFja2FnZS5qc29uIiwibm9kZV9tb2R1bGVzL2V2cF9ieXRlc3Rva2V5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2hhc2gtYmFzZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoLmpzIiwibm9kZV9tb2R1bGVzL2hhc2guanMvbGliL2hhc2gvY29tbW9uLmpzIiwibm9kZV9tb2R1bGVzL2hhc2guanMvbGliL2hhc2gvaG1hYy5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3JpcGVtZC5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3NoYS5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3NoYS8xLmpzIiwibm9kZV9tb2R1bGVzL2hhc2guanMvbGliL2hhc2gvc2hhLzIyNC5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3NoYS8yNTYuanMiLCJub2RlX21vZHVsZXMvaGFzaC5qcy9saWIvaGFzaC9zaGEvMzg0LmpzIiwibm9kZV9tb2R1bGVzL2hhc2guanMvbGliL2hhc2gvc2hhLzUxMi5qcyIsIm5vZGVfbW9kdWxlcy9oYXNoLmpzL2xpYi9oYXNoL3NoYS9jb21tb24uanMiLCJub2RlX21vZHVsZXMvaGFzaC5qcy9saWIvaGFzaC91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9obWFjLWRyYmcvbGliL2htYWMtZHJiZy5qcyIsIm5vZGVfbW9kdWxlcy9pZWVlNzU0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2luZGV4b2YvaW5kZXguanMiLCJub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9pcy1idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvam1lc3BhdGgvam1lc3BhdGguanMiLCJub2RlX21vZHVsZXMvbWQ1LmpzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL21pbGxlci1yYWJpbi9saWIvbXIuanMiLCJub2RlX21vZHVsZXMvbWluaW1hbGlzdGljLWFzc2VydC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9taW5pbWFsaXN0aWMtY3J5cHRvLXV0aWxzL2xpYi91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9tb21lbnQvbW9tZW50LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWFzbjEvYWVzaWQuanNvbiIsIm5vZGVfbW9kdWxlcy9wYXJzZS1hc24xL2FzbjEuanMiLCJub2RlX21vZHVsZXMvcGFyc2UtYXNuMS9jZXJ0aWZpY2F0ZS5qcyIsIm5vZGVfbW9kdWxlcy9wYXJzZS1hc24xL2ZpeFByb2MuanMiLCJub2RlX21vZHVsZXMvcGFyc2UtYXNuMS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wYmtkZjIvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9wYmtkZjIvbGliL2FzeW5jLmpzIiwibm9kZV9tb2R1bGVzL3Bia2RmMi9saWIvZGVmYXVsdC1lbmNvZGluZy5qcyIsIm5vZGVfbW9kdWxlcy9wYmtkZjIvbGliL3ByZWNvbmRpdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9wYmtkZjIvbGliL3N5bmMtYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9wcm9jZXNzLW5leHRpY2stYXJncy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wdWJsaWMtZW5jcnlwdC9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3B1YmxpYy1lbmNyeXB0L21nZi5qcyIsIm5vZGVfbW9kdWxlcy9wdWJsaWMtZW5jcnlwdC9wcml2YXRlRGVjcnlwdC5qcyIsIm5vZGVfbW9kdWxlcy9wdWJsaWMtZW5jcnlwdC9wdWJsaWNFbmNyeXB0LmpzIiwibm9kZV9tb2R1bGVzL3B1YmxpYy1lbmNyeXB0L3dpdGhQdWJsaWMuanMiLCJub2RlX21vZHVsZXMvcHVibGljLWVuY3J5cHQveG9yLmpzIiwibm9kZV9tb2R1bGVzL3B1bnljb2RlL3B1bnljb2RlLmpzIiwibm9kZV9tb2R1bGVzL3F1ZXJ5c3RyaW5nLWVzMy9kZWNvZGUuanMiLCJub2RlX21vZHVsZXMvcXVlcnlzdHJpbmctZXMzL2VuY29kZS5qcyIsIm5vZGVfbW9kdWxlcy9xdWVyeXN0cmluZy1lczMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcXVlcnlzdHJpbmcvZGVjb2RlLmpzIiwibm9kZV9tb2R1bGVzL3F1ZXJ5c3RyaW5nL2VuY29kZS5qcyIsIm5vZGVfbW9kdWxlcy9yYW5kb21ieXRlcy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3JhbmRvbWZpbGwvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC1zY3JvbGxiYXIvZGlzdC9zY3JvbGxBcmVhLmpzIiwibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9kdXBsZXgtYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fZHVwbGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV9wYXNzdGhyb3VnaC5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fcmVhZGFibGUuanMiLCJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3RyYW5zZm9ybS5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fd3JpdGFibGUuanMiLCJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL0J1ZmZlckxpc3QuanMiLCJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL2Rlc3Ryb3kuanMiLCJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtL2xpYi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbS1icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9wYXNzdGhyb3VnaC5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vcmVhZGFibGUtYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9yZWFkYWJsZS1zdHJlYW0vdHJhbnNmb3JtLmpzIiwibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS93cml0YWJsZS1icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3JlY29ubmVjdGluZy13ZWJzb2NrZXQvZGlzdC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9yaXBlbWQxNjAvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc2FmZS1idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL2hhc2guanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3NoYS5qcy9zaGEuanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL3NoYTEuanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL3NoYTIyNC5qcyIsIm5vZGVfbW9kdWxlcy9zaGEuanMvc2hhMjU2LmpzIiwibm9kZV9tb2R1bGVzL3NoYS5qcy9zaGEzODQuanMiLCJub2RlX21vZHVsZXMvc2hhLmpzL3NoYTUxMi5qcyIsIm5vZGVfbW9kdWxlcy9zdHJlYW0tYnJvd3NlcmlmeS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9zdHJpbmdfZGVjb2Rlci9saWIvc3RyaW5nX2RlY29kZXIuanMiLCJub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvYWdlbnQtYmFzZS5qcyIsIm5vZGVfbW9kdWxlcy9zdXBlcmFnZW50L2xpYi9jbGllbnQuanMiLCJub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9saWIvaXMtb2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbGliL3JlcXVlc3QtYmFzZS5qcyIsIm5vZGVfbW9kdWxlcy9zdXBlcmFnZW50L2xpYi9yZXNwb25zZS1iYXNlLmpzIiwibm9kZV9tb2R1bGVzL3N1cGVyYWdlbnQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3VybC91cmwuanMiLCJub2RlX21vZHVsZXMvdXRpbC1kZXByZWNhdGUvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy91dGlsL3N1cHBvcnQvaXNCdWZmZXJCcm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3V0aWwvdXRpbC5qcyIsIm5vZGVfbW9kdWxlcy91dWlkL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3V1aWQvbGliL2J5dGVzVG9VdWlkLmpzIiwibm9kZV9tb2R1bGVzL3V1aWQvbGliL3JuZy1icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3V1aWQvdjEuanMiLCJub2RlX21vZHVsZXMvdXVpZC92NC5qcyIsIm5vZGVfbW9kdWxlcy91dWlkNC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy92bS1icm93c2VyaWZ5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3dpY2tlZC1nb29kLXhwYXRoL2Rpc3Qvd2d4cGF0aC5pbnN0YWxsLW5vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9QeWRpby5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvQ29ubmV4aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9JZG1BcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL01ldGFDYWNoZVNlcnZpY2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL1B5ZGlvQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9QeWRpb1dlYlNvY2tldC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvUmVzb3VyY2VzTWFuYWdlci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvUmVzdENsaWVudC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL0FwaUNsaWVudC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9BQ0xTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0FjdGl2aXR5U2VydmljZUFwaS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9BZG1pblRyZWVTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0NoYW5nZVNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvQ29uZmlnU2VydmljZUFwaS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9Gcm9udGVuZFNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvR3JhcGhTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0luc3RhbGxTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0pvYnNTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL0xvZ1NlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvTWFpbGVyU2VydmljZUFwaS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9NZXRhU2VydmljZUFwaS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL2FwaS9Qb2xpY3lTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1JvbGVTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1NlYXJjaFNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvU2hhcmVTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1RlbXBsYXRlc1NlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvVG9rZW5TZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1RyZWVTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1VwZGF0ZVNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9hcGkvVXNlck1ldGFTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1VzZXJTZXJ2aWNlQXBpLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vYXBpL1dvcmtzcGFjZVNlcnZpY2VBcGkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9pbmRleC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0FjdGl2aXR5T2JqZWN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQWN0aXZpdHlPYmplY3RUeXBlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQWN0aXZpdHlPd25lclR5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0FjdGl2aXR5U3RyZWFtQ29udGV4dC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0FjdGl2aXR5U3Vic2NyaXB0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9DdGxQZWVyLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQ3RsU2VydmljZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0N0bFNlcnZpY2VDb21tYW5kLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvQ3RsU2VydmljZVN0YXR1cy5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uRXhwb3J0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvRW5jcnlwdGlvbkltcG9ydC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0VuY3J5cHRpb25LZXkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9FbmNyeXB0aW9uS2V5SW5mby5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbUFDTC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbUFDTEFjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbUFDTFNpbmdsZVF1ZXJ5LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1Ob2RlVHlwZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVBvbGljeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVBvbGljeUNvbmRpdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVBvbGljeUVmZmVjdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVBvbGljeUdyb3VwLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtUG9saWN5UmVzb3VyY2VHcm91cC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVJvbGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1Sb2xlU2luZ2xlUXVlcnkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVVzZXIuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1Vc2VyTWV0YS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0lkbVVzZXJNZXRhTmFtZXNwYWNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtVXNlclNpbmdsZVF1ZXJ5LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtV29ya3NwYWNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSWRtV29ya3NwYWNlU2NvcGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0luc3RhbGxDaGVja1Jlc3VsdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSW5zdGFsbEluc3RhbGxDb25maWcuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JbnN0YWxsSW5zdGFsbFJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Kb2JzQWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0FjdGlvbkxvZy5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0pvYnNBY3Rpb25NZXNzYWdlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0FjdGlvbk91dHB1dC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0pvYnNDb21tYW5kLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0N0cmxDb21tYW5kLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Kb2JzSm9iLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic0xpc3RKb2JzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0pvYnNOb2Rlc1NlbGVjdG9yLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic1NjaGVkdWxlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic1NvdXJjZUZpbHRlci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0pvYnNUYXNrLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvSm9ic1Rhc2tTdGF0dXMuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Kb2JzVXNlcnNTZWxlY3Rvci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0xpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Mb2dMaXN0TG9nUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL0xvZ0xvZ01lc3NhZ2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9NYWlsZXJNYWlsLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvTWFpbGVyU2VuZE1haWxSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL01haWxlclVzZXIuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9PYmplY3REYXRhU291cmNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvT2JqZWN0RW5jcnlwdGlvbk1vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9PYmplY3RTdG9yYWdlVHlwZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1BhY2thZ2VQYWNrYWdlU3RhdHVzLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUHJvdG9idWZBbnkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdEFDTENvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdENlbGwuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0Q2VsbEFjbC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RDaGFuZ2VDb2xsZWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdENoYW5nZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0Q29uZmlndXJhdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RDb250cm9sU2VydmljZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REZWxldGVOb2Rlc1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REZWxldGVSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RFcnJvci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udEJpbmFyeVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RGcm9udFN0YXRlUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0R2V0QnVsa01ldGFSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RNZXRhQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RNZXRhZGF0YS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFBhZ2luYXRpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSZWxhdGlvblJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0UmV2b2tlUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSZXZva2VSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RSb2xlc0NvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTZWFyY2hSZXN1bHRzLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2VydmljZUNvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2V0dGluZ3NFbnRyeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTZXR0aW5nc01lbnVSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTZXR0aW5nc1NlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2hhcmVMaW5rLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlci5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RUZW1wbGF0ZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RUZW1wbGF0ZU5vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0VXNlckpvYlJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0VXNlckpvYlJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFVzZXJKb2JzQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvUmVzdFVzZXJzQ29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbi5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1Jlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvU2VydmljZU9wZXJhdGlvblR5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUXVlcnkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24uanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVDaGFuZ2VMb2cuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlR2VvUG9pbnQuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlR2VvUXVlcnkuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlTGlzdE5vZGVzUmVxdWVzdC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVOb2RlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVHJlZU5vZGVDaGFuZ2VFdmVudC5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVOb2RlVHlwZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVRdWVyeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVSZWFkTm9kZVJlcXVlc3QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVTZWFyY2hSZXF1ZXN0LmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVHJlZVN5bmNDaGFuZ2UuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlU3luY0NoYW5nZU5vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlU3luY0NoYW5nZVR5cGUuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QuanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9UcmVlVmVyc2lvbmluZ1BvbGljeS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGguanMiLCJyZXMvYnVpbGQvY29yZS9odHRwL2dlbi9tb2RlbC9VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVXBkYXRlUGFja2FnZS5qcyIsInJlcy9idWlsZC9jb3JlL2h0dHAvZ2VuL21vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wLmpzIiwicmVzL2J1aWxkL2NvcmUvaHR0cC9nZW4vbW9kZWwvVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcC5qcyIsInJlcy9idWlsZC9jb3JlL2xhbmcvTG9nZ2VyLmpzIiwicmVzL2J1aWxkL2NvcmUvbGFuZy9PYnNlcnZhYmxlLmpzIiwicmVzL2J1aWxkL2NvcmUvbW9kZWwvQWN0aW9uLmpzIiwicmVzL2J1aWxkL2NvcmUvbW9kZWwvQWp4cE5vZGUuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9DZWxsTW9kZWwuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9Db250cm9sbGVyLmpzIiwicmVzL2J1aWxkL2NvcmUvbW9kZWwvRW1wdHlOb2RlUHJvdmlkZXIuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9JZG1PYmplY3RIZWxwZXIuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9NZXRhTm9kZVByb3ZpZGVyLmpzIiwicmVzL2J1aWxkL2NvcmUvbW9kZWwvUHlkaW9EYXRhTW9kZWwuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9SZWdpc3RyeS5qcyIsInJlcy9idWlsZC9jb3JlL21vZGVsL1JlcG9zaXRvcnkuanMiLCJyZXMvYnVpbGQvY29yZS9tb2RlbC9Vc2VyLmpzIiwicmVzL2J1aWxkL2NvcmUvdXRpbC9BY3Rpdml0eU1vbml0b3IuanMiLCJyZXMvYnVpbGQvY29yZS91dGlsL0Z1bmNVdGlscy5qcyIsInJlcy9idWlsZC9jb3JlL3V0aWwvSGFzaGVyVXRpbHMuanMiLCJyZXMvYnVpbGQvY29yZS91dGlsL0xhbmdVdGlscy5qcyIsInJlcy9idWlsZC9jb3JlL3V0aWwvUGF0aFV0aWxzLmpzIiwicmVzL2J1aWxkL2NvcmUvdXRpbC9YTUxVdGlscy5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2NoYXQvQ2hhdC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2NoYXQvQ2hhdENsaWVudC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2NoYXQvQ2hhdEljb24uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9jaGF0L0NoYXRVc2Vycy5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2NoYXQvTWVzc2FnZS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2R5bmFtaWMtZ3JpZC9EeW5hbWljR3JpZC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2R5bmFtaWMtZ3JpZC9HcmlkQnVpbGRlci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2R5bmFtaWMtZ3JpZC9HcmlkSXRlbU1peGluLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvZHluYW1pYy1ncmlkL1N0b3JlLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvZHluYW1pYy1ncmlkL2FzR3JpZEl0ZW0uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lZGl0b3IvUGFwZXJFZGl0b3IuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lZGl0b3IvUmVhY3RFZGl0b3JPcGVuZXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lbGVtZW50cy9DbGlwYm9hcmRUZXh0RmllbGQuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lbGVtZW50cy9MYWJlbFdpdGhUaXAuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9lbGVtZW50cy9TaW1wbGVGaWd1cmVCYWRnZS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2luZGV4LmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvbGlzdC9Db25maWd1cmFibGVMaXN0RW50cnkuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9saXN0L0lubGluZUVkaXRvci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvTGlzdEVudHJ5LmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvbGlzdC9MaXN0RW50cnlOb2RlTGlzdGVuZXJNaXhpbi5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvTGlzdFBhZ2luYXRvci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvTWF0ZXJpYWxUYWJsZS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvTm9kZUxpc3RDdXN0b21Qcm92aWRlci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvU2ltcGxlTGlzdC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvU29ydENvbHVtbnMuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9saXN0L1NvcnRhYmxlTGlzdC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL2xpc3QvVGFibGVMaXN0RW50cnkuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9saXN0L1RhYmxlTGlzdEhlYWRlci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL21lbnUvQnV0dG9uQ29tcG9zZWQuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L0J1dHRvbk1lbnUuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L0NvbnRleHRNZW51LmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvbWVudS9JY29uQnV0dG9uTWVudS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL21lbnUvSWNvbkJ1dHRvblBvcG92ZXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L01lbnVJdGVtc0NvbnN1bWVyLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvbWVudS9Qb3B1cE1lbnUuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L1Rvb2xiYXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy9tZW51L1V0aWxzLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvcG9saWNpZXMvUmVzb3VyY2VQb2xpY2llc1BhbmVsLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvVGVhbUNyZWF0aW9uRm9ybS5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL1VzZXJDcmVhdGlvbkZvcm0uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9Vc2Vyc0NvbXBsZXRlci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL2FkZHJlc3Nib29rL0FkZHJlc3NCb29rLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvYWRkcmVzc2Jvb2svQWxwaGFQYWdpbmF0b3IuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hZGRyZXNzYm9vay9Mb2FkZXJzLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvYWRkcmVzc2Jvb2svTmVzdGVkTGlzdEl0ZW0uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hZGRyZXNzYm9vay9SaWdodFBhbmVsQ2FyZC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL2FkZHJlc3Nib29rL1NlYXJjaEZvcm0uanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hZGRyZXNzYm9vay9TZWFyY2hQYW5lbC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL2FkZHJlc3Nib29rL1RlYW1DYXJkLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvYWRkcmVzc2Jvb2svVXNlckNhcmQuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hZGRyZXNzYm9vay9Vc2Vyc0xpc3QuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hdmF0YXIvQWN0aW9uc1BhbmVsLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXNlcnMvYXZhdGFyL0NlbGxBY3Rpb25zUmVuZGVyZXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91c2Vycy9hdmF0YXIvR3JhcGhQYW5lbC5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3VzZXJzL2F2YXRhci9Vc2VyQXZhdGFyLmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdXRpbC9ETkQuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy91dGlsL01lc3NhZ2VzQ29uc3VtZXJNaXhpbi5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3ZpZXdzL0VtcHR5U3RhdGVWaWV3LmpzIiwicmVzL2J1aWxkL3VpL0NvbXBvbmVudHMvdmlld3MvTW9kYWxBcHBCYXIuanMiLCJyZXMvYnVpbGQvdWkvQ29tcG9uZW50cy92aWV3cy9TaW1wbGVSZWFjdEFjdGlvbkJhci5qcyIsInJlcy9idWlsZC91aS9Db21wb25lbnRzL3ZpZXdzL1RyZWVWaWV3LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdlNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcmFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6c0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwckRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3L0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3YzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaDVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDL0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDcnhGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2poQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN6dEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcm5DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDajZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN2eENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3hoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2wzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzF1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3NkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDemtFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN21DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4cEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDM3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsNmNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5bUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlrREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbHBEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2b0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDblpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6K0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbHRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxc0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsaUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMzVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNoZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDcGdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNwckVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzNkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3REQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUN6L0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcjBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdGFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1cUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbnREQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2wyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25sQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDcEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMza0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzV0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaHhDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ252RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDalNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3hQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4MkRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1K0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNwbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3ckVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDN2pJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3N0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbDZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcmhGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1d0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDak9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoMEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2g5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeG5CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2cEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeDVJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNyUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzFQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUM1bUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcDFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUMvT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDbkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNWhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6WEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbE9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNkQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbllBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDL0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNyeUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNubUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOWlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUM3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDNzZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuMkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqRUE7O0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcE9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUMvTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUMzQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDeENBO0FBQ0E7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDM0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDakpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQzVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzVnREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN1NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDN05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzd2REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ25LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUM1SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNoUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDMUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ3BLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDYkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdlhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaFBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNXdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDbm9EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDakpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxNUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDeEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDMUdBO0FBQ0E7QUFDQTs7O0FDRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNwR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDckdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzVDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQzlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2xoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDNUdBO0FBQ0E7O0FDREE7QUFDQTs7QUNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUM5Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQzEvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3JOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUM5cUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pFQTtBQUNBOztBQ0RBO0FBQ0E7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNQQTtBQUNBOztBQ0RBO0FBQ0E7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeDVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ25zQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ25FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUMxa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUMxSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOXNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdnZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNucEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN1NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNuVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDdmxCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekxBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZpQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Y0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6UEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvUEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1VUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbmhGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzaUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcFlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25MQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdk9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbk5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2owQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25qQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Y0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaGtCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzcyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbmJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcFZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaGNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcGFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMU5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDN01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUMxVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDeE1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNySkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQzlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDM0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdE1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDaEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQ2oxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDekhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDdEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUN4UEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUNwYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25KQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNySUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNobEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25LQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25FQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwidmFyIGFzbjEgPSBleHBvcnRzO1xuXG5hc24xLmJpZ251bSA9IHJlcXVpcmUoJ2JuLmpzJyk7XG5cbmFzbjEuZGVmaW5lID0gcmVxdWlyZSgnLi9hc24xL2FwaScpLmRlZmluZTtcbmFzbjEuYmFzZSA9IHJlcXVpcmUoJy4vYXNuMS9iYXNlJyk7XG5hc24xLmNvbnN0YW50cyA9IHJlcXVpcmUoJy4vYXNuMS9jb25zdGFudHMnKTtcbmFzbjEuZGVjb2RlcnMgPSByZXF1aXJlKCcuL2FzbjEvZGVjb2RlcnMnKTtcbmFzbjEuZW5jb2RlcnMgPSByZXF1aXJlKCcuL2FzbjEvZW5jb2RlcnMnKTtcbiIsInZhciBhc24xID0gcmVxdWlyZSgnLi4vYXNuMScpO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxudmFyIGFwaSA9IGV4cG9ydHM7XG5cbmFwaS5kZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUobmFtZSwgYm9keSkge1xuICByZXR1cm4gbmV3IEVudGl0eShuYW1lLCBib2R5KTtcbn07XG5cbmZ1bmN0aW9uIEVudGl0eShuYW1lLCBib2R5KSB7XG4gIHRoaXMubmFtZSA9IG5hbWU7XG4gIHRoaXMuYm9keSA9IGJvZHk7XG5cbiAgdGhpcy5kZWNvZGVycyA9IHt9O1xuICB0aGlzLmVuY29kZXJzID0ge307XG59O1xuXG5FbnRpdHkucHJvdG90eXBlLl9jcmVhdGVOYW1lZCA9IGZ1bmN0aW9uIGNyZWF0ZU5hbWVkKGJhc2UpIHtcbiAgdmFyIG5hbWVkO1xuICB0cnkge1xuICAgIG5hbWVkID0gcmVxdWlyZSgndm0nKS5ydW5JblRoaXNDb250ZXh0KFxuICAgICAgJyhmdW5jdGlvbiAnICsgdGhpcy5uYW1lICsgJyhlbnRpdHkpIHtcXG4nICtcbiAgICAgICcgIHRoaXMuX2luaXROYW1lZChlbnRpdHkpO1xcbicgK1xuICAgICAgJ30pJ1xuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBuYW1lZCA9IGZ1bmN0aW9uIChlbnRpdHkpIHtcbiAgICAgIHRoaXMuX2luaXROYW1lZChlbnRpdHkpO1xuICAgIH07XG4gIH1cbiAgaW5oZXJpdHMobmFtZWQsIGJhc2UpO1xuICBuYW1lZC5wcm90b3R5cGUuX2luaXROYW1lZCA9IGZ1bmN0aW9uIGluaXRuYW1lZChlbnRpdHkpIHtcbiAgICBiYXNlLmNhbGwodGhpcywgZW50aXR5KTtcbiAgfTtcblxuICByZXR1cm4gbmV3IG5hbWVkKHRoaXMpO1xufTtcblxuRW50aXR5LnByb3RvdHlwZS5fZ2V0RGVjb2RlciA9IGZ1bmN0aW9uIF9nZXREZWNvZGVyKGVuYykge1xuICBlbmMgPSBlbmMgfHwgJ2Rlcic7XG4gIC8vIExhemlseSBjcmVhdGUgZGVjb2RlclxuICBpZiAoIXRoaXMuZGVjb2RlcnMuaGFzT3duUHJvcGVydHkoZW5jKSlcbiAgICB0aGlzLmRlY29kZXJzW2VuY10gPSB0aGlzLl9jcmVhdGVOYW1lZChhc24xLmRlY29kZXJzW2VuY10pO1xuICByZXR1cm4gdGhpcy5kZWNvZGVyc1tlbmNdO1xufTtcblxuRW50aXR5LnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoZGF0YSwgZW5jLCBvcHRpb25zKSB7XG4gIHJldHVybiB0aGlzLl9nZXREZWNvZGVyKGVuYykuZGVjb2RlKGRhdGEsIG9wdGlvbnMpO1xufTtcblxuRW50aXR5LnByb3RvdHlwZS5fZ2V0RW5jb2RlciA9IGZ1bmN0aW9uIF9nZXRFbmNvZGVyKGVuYykge1xuICBlbmMgPSBlbmMgfHwgJ2Rlcic7XG4gIC8vIExhemlseSBjcmVhdGUgZW5jb2RlclxuICBpZiAoIXRoaXMuZW5jb2RlcnMuaGFzT3duUHJvcGVydHkoZW5jKSlcbiAgICB0aGlzLmVuY29kZXJzW2VuY10gPSB0aGlzLl9jcmVhdGVOYW1lZChhc24xLmVuY29kZXJzW2VuY10pO1xuICByZXR1cm4gdGhpcy5lbmNvZGVyc1tlbmNdO1xufTtcblxuRW50aXR5LnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUoZGF0YSwgZW5jLCAvKiBpbnRlcm5hbCAqLyByZXBvcnRlcikge1xuICByZXR1cm4gdGhpcy5fZ2V0RW5jb2RlcihlbmMpLmVuY29kZShkYXRhLCByZXBvcnRlcik7XG59O1xuIiwidmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcbnZhciBSZXBvcnRlciA9IHJlcXVpcmUoJy4uL2Jhc2UnKS5SZXBvcnRlcjtcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG5cbmZ1bmN0aW9uIERlY29kZXJCdWZmZXIoYmFzZSwgb3B0aW9ucykge1xuICBSZXBvcnRlci5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihiYXNlKSkge1xuICAgIHRoaXMuZXJyb3IoJ0lucHV0IG5vdCBCdWZmZXInKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB0aGlzLmJhc2UgPSBiYXNlO1xuICB0aGlzLm9mZnNldCA9IDA7XG4gIHRoaXMubGVuZ3RoID0gYmFzZS5sZW5ndGg7XG59XG5pbmhlcml0cyhEZWNvZGVyQnVmZmVyLCBSZXBvcnRlcik7XG5leHBvcnRzLkRlY29kZXJCdWZmZXIgPSBEZWNvZGVyQnVmZmVyO1xuXG5EZWNvZGVyQnVmZmVyLnByb3RvdHlwZS5zYXZlID0gZnVuY3Rpb24gc2F2ZSgpIHtcbiAgcmV0dXJuIHsgb2Zmc2V0OiB0aGlzLm9mZnNldCwgcmVwb3J0ZXI6IFJlcG9ydGVyLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcykgfTtcbn07XG5cbkRlY29kZXJCdWZmZXIucHJvdG90eXBlLnJlc3RvcmUgPSBmdW5jdGlvbiByZXN0b3JlKHNhdmUpIHtcbiAgLy8gUmV0dXJuIHNraXBwZWQgZGF0YVxuICB2YXIgcmVzID0gbmV3IERlY29kZXJCdWZmZXIodGhpcy5iYXNlKTtcbiAgcmVzLm9mZnNldCA9IHNhdmUub2Zmc2V0O1xuICByZXMubGVuZ3RoID0gdGhpcy5vZmZzZXQ7XG5cbiAgdGhpcy5vZmZzZXQgPSBzYXZlLm9mZnNldDtcbiAgUmVwb3J0ZXIucHJvdG90eXBlLnJlc3RvcmUuY2FsbCh0aGlzLCBzYXZlLnJlcG9ydGVyKTtcblxuICByZXR1cm4gcmVzO1xufTtcblxuRGVjb2RlckJ1ZmZlci5wcm90b3R5cGUuaXNFbXB0eSA9IGZ1bmN0aW9uIGlzRW1wdHkoKSB7XG4gIHJldHVybiB0aGlzLm9mZnNldCA9PT0gdGhpcy5sZW5ndGg7XG59O1xuXG5EZWNvZGVyQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDggPSBmdW5jdGlvbiByZWFkVUludDgoZmFpbCkge1xuICBpZiAodGhpcy5vZmZzZXQgKyAxIDw9IHRoaXMubGVuZ3RoKVxuICAgIHJldHVybiB0aGlzLmJhc2UucmVhZFVJbnQ4KHRoaXMub2Zmc2V0KyssIHRydWUpO1xuICBlbHNlXG4gICAgcmV0dXJuIHRoaXMuZXJyb3IoZmFpbCB8fCAnRGVjb2RlckJ1ZmZlciBvdmVycnVuJyk7XG59XG5cbkRlY29kZXJCdWZmZXIucHJvdG90eXBlLnNraXAgPSBmdW5jdGlvbiBza2lwKGJ5dGVzLCBmYWlsKSB7XG4gIGlmICghKHRoaXMub2Zmc2V0ICsgYnl0ZXMgPD0gdGhpcy5sZW5ndGgpKVxuICAgIHJldHVybiB0aGlzLmVycm9yKGZhaWwgfHwgJ0RlY29kZXJCdWZmZXIgb3ZlcnJ1bicpO1xuXG4gIHZhciByZXMgPSBuZXcgRGVjb2RlckJ1ZmZlcih0aGlzLmJhc2UpO1xuXG4gIC8vIFNoYXJlIHJlcG9ydGVyIHN0YXRlXG4gIHJlcy5fcmVwb3J0ZXJTdGF0ZSA9IHRoaXMuX3JlcG9ydGVyU3RhdGU7XG5cbiAgcmVzLm9mZnNldCA9IHRoaXMub2Zmc2V0O1xuICByZXMubGVuZ3RoID0gdGhpcy5vZmZzZXQgKyBieXRlcztcbiAgdGhpcy5vZmZzZXQgKz0gYnl0ZXM7XG4gIHJldHVybiByZXM7XG59XG5cbkRlY29kZXJCdWZmZXIucHJvdG90eXBlLnJhdyA9IGZ1bmN0aW9uIHJhdyhzYXZlKSB7XG4gIHJldHVybiB0aGlzLmJhc2Uuc2xpY2Uoc2F2ZSA/IHNhdmUub2Zmc2V0IDogdGhpcy5vZmZzZXQsIHRoaXMubGVuZ3RoKTtcbn1cblxuZnVuY3Rpb24gRW5jb2RlckJ1ZmZlcih2YWx1ZSwgcmVwb3J0ZXIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgdGhpcy5sZW5ndGggPSAwO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZS5tYXAoZnVuY3Rpb24oaXRlbSkge1xuICAgICAgaWYgKCEoaXRlbSBpbnN0YW5jZW9mIEVuY29kZXJCdWZmZXIpKVxuICAgICAgICBpdGVtID0gbmV3IEVuY29kZXJCdWZmZXIoaXRlbSwgcmVwb3J0ZXIpO1xuICAgICAgdGhpcy5sZW5ndGggKz0gaXRlbS5sZW5ndGg7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9LCB0aGlzKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgaWYgKCEoMCA8PSB2YWx1ZSAmJiB2YWx1ZSA8PSAweGZmKSlcbiAgICAgIHJldHVybiByZXBvcnRlci5lcnJvcignbm9uLWJ5dGUgRW5jb2RlckJ1ZmZlciB2YWx1ZScpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmxlbmd0aCA9IDE7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmxlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlKTtcbiAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMubGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiByZXBvcnRlci5lcnJvcignVW5zdXBwb3J0ZWQgdHlwZTogJyArIHR5cGVvZiB2YWx1ZSk7XG4gIH1cbn1cbmV4cG9ydHMuRW5jb2RlckJ1ZmZlciA9IEVuY29kZXJCdWZmZXI7XG5cbkVuY29kZXJCdWZmZXIucHJvdG90eXBlLmpvaW4gPSBmdW5jdGlvbiBqb2luKG91dCwgb2Zmc2V0KSB7XG4gIGlmICghb3V0KVxuICAgIG91dCA9IG5ldyBCdWZmZXIodGhpcy5sZW5ndGgpO1xuICBpZiAoIW9mZnNldClcbiAgICBvZmZzZXQgPSAwO1xuXG4gIGlmICh0aGlzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gb3V0O1xuXG4gIGlmIChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XG4gICAgdGhpcy52YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgIGl0ZW0uam9pbihvdXQsIG9mZnNldCk7XG4gICAgICBvZmZzZXQgKz0gaXRlbS5sZW5ndGg7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgIG91dFtvZmZzZXRdID0gdGhpcy52YWx1ZTtcbiAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycpXG4gICAgICBvdXQud3JpdGUodGhpcy52YWx1ZSwgb2Zmc2V0KTtcbiAgICBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodGhpcy52YWx1ZSkpXG4gICAgICB0aGlzLnZhbHVlLmNvcHkob3V0LCBvZmZzZXQpO1xuICAgIG9mZnNldCArPSB0aGlzLmxlbmd0aDtcbiAgfVxuXG4gIHJldHVybiBvdXQ7XG59O1xuIiwidmFyIGJhc2UgPSBleHBvcnRzO1xuXG5iYXNlLlJlcG9ydGVyID0gcmVxdWlyZSgnLi9yZXBvcnRlcicpLlJlcG9ydGVyO1xuYmFzZS5EZWNvZGVyQnVmZmVyID0gcmVxdWlyZSgnLi9idWZmZXInKS5EZWNvZGVyQnVmZmVyO1xuYmFzZS5FbmNvZGVyQnVmZmVyID0gcmVxdWlyZSgnLi9idWZmZXInKS5FbmNvZGVyQnVmZmVyO1xuYmFzZS5Ob2RlID0gcmVxdWlyZSgnLi9ub2RlJyk7XG4iLCJ2YXIgUmVwb3J0ZXIgPSByZXF1aXJlKCcuLi9iYXNlJykuUmVwb3J0ZXI7XG52YXIgRW5jb2RlckJ1ZmZlciA9IHJlcXVpcmUoJy4uL2Jhc2UnKS5FbmNvZGVyQnVmZmVyO1xudmFyIERlY29kZXJCdWZmZXIgPSByZXF1aXJlKCcuLi9iYXNlJykuRGVjb2RlckJ1ZmZlcjtcbnZhciBhc3NlcnQgPSByZXF1aXJlKCdtaW5pbWFsaXN0aWMtYXNzZXJ0Jyk7XG5cbi8vIFN1cHBvcnRlZCB0YWdzXG52YXIgdGFncyA9IFtcbiAgJ3NlcScsICdzZXFvZicsICdzZXQnLCAnc2V0b2YnLCAnb2JqaWQnLCAnYm9vbCcsXG4gICdnZW50aW1lJywgJ3V0Y3RpbWUnLCAnbnVsbF8nLCAnZW51bScsICdpbnQnLCAnb2JqRGVzYycsXG4gICdiaXRzdHInLCAnYm1wc3RyJywgJ2NoYXJzdHInLCAnZ2Vuc3RyJywgJ2dyYXBoc3RyJywgJ2lhNXN0cicsICdpc282NDZzdHInLFxuICAnbnVtc3RyJywgJ29jdHN0cicsICdwcmludHN0cicsICd0NjFzdHInLCAndW5pc3RyJywgJ3V0ZjhzdHInLCAndmlkZW9zdHInXG5dO1xuXG4vLyBQdWJsaWMgbWV0aG9kcyBsaXN0XG52YXIgbWV0aG9kcyA9IFtcbiAgJ2tleScsICdvYmonLCAndXNlJywgJ29wdGlvbmFsJywgJ2V4cGxpY2l0JywgJ2ltcGxpY2l0JywgJ2RlZicsICdjaG9pY2UnLFxuICAnYW55JywgJ2NvbnRhaW5zJ1xuXS5jb25jYXQodGFncyk7XG5cbi8vIE92ZXJyaWRlZCBtZXRob2RzIGxpc3RcbnZhciBvdmVycmlkZWQgPSBbXG4gICdfcGVla1RhZycsICdfZGVjb2RlVGFnJywgJ191c2UnLFxuICAnX2RlY29kZVN0cicsICdfZGVjb2RlT2JqaWQnLCAnX2RlY29kZVRpbWUnLFxuICAnX2RlY29kZU51bGwnLCAnX2RlY29kZUludCcsICdfZGVjb2RlQm9vbCcsICdfZGVjb2RlTGlzdCcsXG5cbiAgJ19lbmNvZGVDb21wb3NpdGUnLCAnX2VuY29kZVN0cicsICdfZW5jb2RlT2JqaWQnLCAnX2VuY29kZVRpbWUnLFxuICAnX2VuY29kZU51bGwnLCAnX2VuY29kZUludCcsICdfZW5jb2RlQm9vbCdcbl07XG5cbmZ1bmN0aW9uIE5vZGUoZW5jLCBwYXJlbnQpIHtcbiAgdmFyIHN0YXRlID0ge307XG4gIHRoaXMuX2Jhc2VTdGF0ZSA9IHN0YXRlO1xuXG4gIHN0YXRlLmVuYyA9IGVuYztcblxuICBzdGF0ZS5wYXJlbnQgPSBwYXJlbnQgfHwgbnVsbDtcbiAgc3RhdGUuY2hpbGRyZW4gPSBudWxsO1xuXG4gIC8vIFN0YXRlXG4gIHN0YXRlLnRhZyA9IG51bGw7XG4gIHN0YXRlLmFyZ3MgPSBudWxsO1xuICBzdGF0ZS5yZXZlcnNlQXJncyA9IG51bGw7XG4gIHN0YXRlLmNob2ljZSA9IG51bGw7XG4gIHN0YXRlLm9wdGlvbmFsID0gZmFsc2U7XG4gIHN0YXRlLmFueSA9IGZhbHNlO1xuICBzdGF0ZS5vYmogPSBmYWxzZTtcbiAgc3RhdGUudXNlID0gbnVsbDtcbiAgc3RhdGUudXNlRGVjb2RlciA9IG51bGw7XG4gIHN0YXRlLmtleSA9IG51bGw7XG4gIHN0YXRlWydkZWZhdWx0J10gPSBudWxsO1xuICBzdGF0ZS5leHBsaWNpdCA9IG51bGw7XG4gIHN0YXRlLmltcGxpY2l0ID0gbnVsbDtcbiAgc3RhdGUuY29udGFpbnMgPSBudWxsO1xuXG4gIC8vIFNob3VsZCBjcmVhdGUgbmV3IGluc3RhbmNlIG9uIGVhY2ggbWV0aG9kXG4gIGlmICghc3RhdGUucGFyZW50KSB7XG4gICAgc3RhdGUuY2hpbGRyZW4gPSBbXTtcbiAgICB0aGlzLl93cmFwKCk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gTm9kZTtcblxudmFyIHN0YXRlUHJvcHMgPSBbXG4gICdlbmMnLCAncGFyZW50JywgJ2NoaWxkcmVuJywgJ3RhZycsICdhcmdzJywgJ3JldmVyc2VBcmdzJywgJ2Nob2ljZScsXG4gICdvcHRpb25hbCcsICdhbnknLCAnb2JqJywgJ3VzZScsICdhbHRlcmVkVXNlJywgJ2tleScsICdkZWZhdWx0JywgJ2V4cGxpY2l0JyxcbiAgJ2ltcGxpY2l0JywgJ2NvbnRhaW5zJ1xuXTtcblxuTm9kZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiBjbG9uZSgpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuICB2YXIgY3N0YXRlID0ge307XG4gIHN0YXRlUHJvcHMuZm9yRWFjaChmdW5jdGlvbihwcm9wKSB7XG4gICAgY3N0YXRlW3Byb3BdID0gc3RhdGVbcHJvcF07XG4gIH0pO1xuICB2YXIgcmVzID0gbmV3IHRoaXMuY29uc3RydWN0b3IoY3N0YXRlLnBhcmVudCk7XG4gIHJlcy5fYmFzZVN0YXRlID0gY3N0YXRlO1xuICByZXR1cm4gcmVzO1xufTtcblxuTm9kZS5wcm90b3R5cGUuX3dyYXAgPSBmdW5jdGlvbiB3cmFwKCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG4gIG1ldGhvZHMuZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgICB0aGlzW21ldGhvZF0gPSBmdW5jdGlvbiBfd3JhcHBlZE1ldGhvZCgpIHtcbiAgICAgIHZhciBjbG9uZSA9IG5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpO1xuICAgICAgc3RhdGUuY2hpbGRyZW4ucHVzaChjbG9uZSk7XG4gICAgICByZXR1cm4gY2xvbmVbbWV0aG9kXS5hcHBseShjbG9uZSwgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9LCB0aGlzKTtcbn07XG5cbk5vZGUucHJvdG90eXBlLl9pbml0ID0gZnVuY3Rpb24gaW5pdChib2R5KSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBhc3NlcnQoc3RhdGUucGFyZW50ID09PSBudWxsKTtcbiAgYm9keS5jYWxsKHRoaXMpO1xuXG4gIC8vIEZpbHRlciBjaGlsZHJlblxuICBzdGF0ZS5jaGlsZHJlbiA9IHN0YXRlLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihjaGlsZCkge1xuICAgIHJldHVybiBjaGlsZC5fYmFzZVN0YXRlLnBhcmVudCA9PT0gdGhpcztcbiAgfSwgdGhpcyk7XG4gIGFzc2VydC5lcXVhbChzdGF0ZS5jaGlsZHJlbi5sZW5ndGgsIDEsICdSb290IG5vZGUgY2FuIGhhdmUgb25seSBvbmUgY2hpbGQnKTtcbn07XG5cbk5vZGUucHJvdG90eXBlLl91c2VBcmdzID0gZnVuY3Rpb24gdXNlQXJncyhhcmdzKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICAvLyBGaWx0ZXIgY2hpbGRyZW4gYW5kIGFyZ3NcbiAgdmFyIGNoaWxkcmVuID0gYXJncy5maWx0ZXIoZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGFyZyBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I7XG4gIH0sIHRoaXMpO1xuICBhcmdzID0gYXJncy5maWx0ZXIoZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuICEoYXJnIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcik7XG4gIH0sIHRoaXMpO1xuXG4gIGlmIChjaGlsZHJlbi5sZW5ndGggIT09IDApIHtcbiAgICBhc3NlcnQoc3RhdGUuY2hpbGRyZW4gPT09IG51bGwpO1xuICAgIHN0YXRlLmNoaWxkcmVuID0gY2hpbGRyZW47XG5cbiAgICAvLyBSZXBsYWNlIHBhcmVudCB0byBtYWludGFpbiBiYWNrd2FyZCBsaW5rXG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihjaGlsZCkge1xuICAgICAgY2hpbGQuX2Jhc2VTdGF0ZS5wYXJlbnQgPSB0aGlzO1xuICAgIH0sIHRoaXMpO1xuICB9XG4gIGlmIChhcmdzLmxlbmd0aCAhPT0gMCkge1xuICAgIGFzc2VydChzdGF0ZS5hcmdzID09PSBudWxsKTtcbiAgICBzdGF0ZS5hcmdzID0gYXJncztcbiAgICBzdGF0ZS5yZXZlcnNlQXJncyA9IGFyZ3MubWFwKGZ1bmN0aW9uKGFyZykge1xuICAgICAgaWYgKHR5cGVvZiBhcmcgIT09ICdvYmplY3QnIHx8IGFyZy5jb25zdHJ1Y3RvciAhPT0gT2JqZWN0KVxuICAgICAgICByZXR1cm4gYXJnO1xuXG4gICAgICB2YXIgcmVzID0ge307XG4gICAgICBPYmplY3Qua2V5cyhhcmcpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIGlmIChrZXkgPT0gKGtleSB8IDApKVxuICAgICAgICAgIGtleSB8PSAwO1xuICAgICAgICB2YXIgdmFsdWUgPSBhcmdba2V5XTtcbiAgICAgICAgcmVzW3ZhbHVlXSA9IGtleTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KTtcbiAgfVxufTtcblxuLy9cbi8vIE92ZXJyaWRlZCBtZXRob2RzXG4vL1xuXG5vdmVycmlkZWQuZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgTm9kZS5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIF9vdmVycmlkZWQoKSB7XG4gICAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuICAgIHRocm93IG5ldyBFcnJvcihtZXRob2QgKyAnIG5vdCBpbXBsZW1lbnRlZCBmb3IgZW5jb2Rpbmc6ICcgKyBzdGF0ZS5lbmMpO1xuICB9O1xufSk7XG5cbi8vXG4vLyBQdWJsaWMgbWV0aG9kc1xuLy9cblxudGFncy5mb3JFYWNoKGZ1bmN0aW9uKHRhZykge1xuICBOb2RlLnByb3RvdHlwZVt0YWddID0gZnVuY3Rpb24gX3RhZ01ldGhvZCgpIHtcbiAgICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG4gICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuXG4gICAgYXNzZXJ0KHN0YXRlLnRhZyA9PT0gbnVsbCk7XG4gICAgc3RhdGUudGFnID0gdGFnO1xuXG4gICAgdGhpcy5fdXNlQXJncyhhcmdzKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xufSk7XG5cbk5vZGUucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uIHVzZShpdGVtKSB7XG4gIGFzc2VydChpdGVtKTtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIGFzc2VydChzdGF0ZS51c2UgPT09IG51bGwpO1xuICBzdGF0ZS51c2UgPSBpdGVtO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTm9kZS5wcm90b3R5cGUub3B0aW9uYWwgPSBmdW5jdGlvbiBvcHRpb25hbCgpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIHN0YXRlLm9wdGlvbmFsID0gdHJ1ZTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk5vZGUucHJvdG90eXBlLmRlZiA9IGZ1bmN0aW9uIGRlZih2YWwpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIGFzc2VydChzdGF0ZVsnZGVmYXVsdCddID09PSBudWxsKTtcbiAgc3RhdGVbJ2RlZmF1bHQnXSA9IHZhbDtcbiAgc3RhdGUub3B0aW9uYWwgPSB0cnVlO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTm9kZS5wcm90b3R5cGUuZXhwbGljaXQgPSBmdW5jdGlvbiBleHBsaWNpdChudW0pIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIGFzc2VydChzdGF0ZS5leHBsaWNpdCA9PT0gbnVsbCAmJiBzdGF0ZS5pbXBsaWNpdCA9PT0gbnVsbCk7XG4gIHN0YXRlLmV4cGxpY2l0ID0gbnVtO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTm9kZS5wcm90b3R5cGUuaW1wbGljaXQgPSBmdW5jdGlvbiBpbXBsaWNpdChudW0pIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIGFzc2VydChzdGF0ZS5leHBsaWNpdCA9PT0gbnVsbCAmJiBzdGF0ZS5pbXBsaWNpdCA9PT0gbnVsbCk7XG4gIHN0YXRlLmltcGxpY2l0ID0gbnVtO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTm9kZS5wcm90b3R5cGUub2JqID0gZnVuY3Rpb24gb2JqKCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG4gIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblxuICBzdGF0ZS5vYmogPSB0cnVlO1xuXG4gIGlmIChhcmdzLmxlbmd0aCAhPT0gMClcbiAgICB0aGlzLl91c2VBcmdzKGFyZ3MpO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTm9kZS5wcm90b3R5cGUua2V5ID0gZnVuY3Rpb24ga2V5KG5ld0tleSkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG5cbiAgYXNzZXJ0KHN0YXRlLmtleSA9PT0gbnVsbCk7XG4gIHN0YXRlLmtleSA9IG5ld0tleTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbk5vZGUucHJvdG90eXBlLmFueSA9IGZ1bmN0aW9uIGFueSgpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIHN0YXRlLmFueSA9IHRydWU7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5jaG9pY2UgPSBmdW5jdGlvbiBjaG9pY2Uob2JqKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBhc3NlcnQoc3RhdGUuY2hvaWNlID09PSBudWxsKTtcbiAgc3RhdGUuY2hvaWNlID0gb2JqO1xuICB0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKG9iaikubWFwKGZ1bmN0aW9uKGtleSkge1xuICAgIHJldHVybiBvYmpba2V5XTtcbiAgfSkpO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTm9kZS5wcm90b3R5cGUuY29udGFpbnMgPSBmdW5jdGlvbiBjb250YWlucyhpdGVtKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICBhc3NlcnQoc3RhdGUudXNlID09PSBudWxsKTtcbiAgc3RhdGUuY29udGFpbnMgPSBpdGVtO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLy9cbi8vIERlY29kaW5nXG4vL1xuXG5Ob2RlLnByb3RvdHlwZS5fZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKGlucHV0LCBvcHRpb25zKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICAvLyBEZWNvZGUgcm9vdCBub2RlXG4gIGlmIChzdGF0ZS5wYXJlbnQgPT09IG51bGwpXG4gICAgcmV0dXJuIGlucHV0LndyYXBSZXN1bHQoc3RhdGUuY2hpbGRyZW5bMF0uX2RlY29kZShpbnB1dCwgb3B0aW9ucykpO1xuXG4gIHZhciByZXN1bHQgPSBzdGF0ZVsnZGVmYXVsdCddO1xuICB2YXIgcHJlc2VudCA9IHRydWU7XG5cbiAgdmFyIHByZXZLZXkgPSBudWxsO1xuICBpZiAoc3RhdGUua2V5ICE9PSBudWxsKVxuICAgIHByZXZLZXkgPSBpbnB1dC5lbnRlcktleShzdGF0ZS5rZXkpO1xuXG4gIC8vIENoZWNrIGlmIHRhZyBpcyB0aGVyZVxuICBpZiAoc3RhdGUub3B0aW9uYWwpIHtcbiAgICB2YXIgdGFnID0gbnVsbDtcbiAgICBpZiAoc3RhdGUuZXhwbGljaXQgIT09IG51bGwpXG4gICAgICB0YWcgPSBzdGF0ZS5leHBsaWNpdDtcbiAgICBlbHNlIGlmIChzdGF0ZS5pbXBsaWNpdCAhPT0gbnVsbClcbiAgICAgIHRhZyA9IHN0YXRlLmltcGxpY2l0O1xuICAgIGVsc2UgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbClcbiAgICAgIHRhZyA9IHN0YXRlLnRhZztcblxuICAgIGlmICh0YWcgPT09IG51bGwgJiYgIXN0YXRlLmFueSkge1xuICAgICAgLy8gVHJpYWwgYW5kIEVycm9yXG4gICAgICB2YXIgc2F2ZSA9IGlucHV0LnNhdmUoKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChzdGF0ZS5jaG9pY2UgPT09IG51bGwpXG4gICAgICAgICAgdGhpcy5fZGVjb2RlR2VuZXJpYyhzdGF0ZS50YWcsIGlucHV0LCBvcHRpb25zKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHRoaXMuX2RlY29kZUNob2ljZShpbnB1dCwgb3B0aW9ucyk7XG4gICAgICAgIHByZXNlbnQgPSB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBwcmVzZW50ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpbnB1dC5yZXN0b3JlKHNhdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmVzZW50ID0gdGhpcy5fcGVla1RhZyhpbnB1dCwgdGFnLCBzdGF0ZS5hbnkpO1xuXG4gICAgICBpZiAoaW5wdXQuaXNFcnJvcihwcmVzZW50KSlcbiAgICAgICAgcmV0dXJuIHByZXNlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUHVzaCBvYmplY3Qgb24gc3RhY2tcbiAgdmFyIHByZXZPYmo7XG4gIGlmIChzdGF0ZS5vYmogJiYgcHJlc2VudClcbiAgICBwcmV2T2JqID0gaW5wdXQuZW50ZXJPYmplY3QoKTtcblxuICBpZiAocHJlc2VudCkge1xuICAgIC8vIFVud3JhcCBleHBsaWNpdCB2YWx1ZXNcbiAgICBpZiAoc3RhdGUuZXhwbGljaXQgIT09IG51bGwpIHtcbiAgICAgIHZhciBleHBsaWNpdCA9IHRoaXMuX2RlY29kZVRhZyhpbnB1dCwgc3RhdGUuZXhwbGljaXQpO1xuICAgICAgaWYgKGlucHV0LmlzRXJyb3IoZXhwbGljaXQpKVxuICAgICAgICByZXR1cm4gZXhwbGljaXQ7XG4gICAgICBpbnB1dCA9IGV4cGxpY2l0O1xuICAgIH1cblxuICAgIHZhciBzdGFydCA9IGlucHV0Lm9mZnNldDtcblxuICAgIC8vIFVud3JhcCBpbXBsaWNpdCBhbmQgbm9ybWFsIHZhbHVlc1xuICAgIGlmIChzdGF0ZS51c2UgPT09IG51bGwgJiYgc3RhdGUuY2hvaWNlID09PSBudWxsKSB7XG4gICAgICBpZiAoc3RhdGUuYW55KVxuICAgICAgICB2YXIgc2F2ZSA9IGlucHV0LnNhdmUoKTtcbiAgICAgIHZhciBib2R5ID0gdGhpcy5fZGVjb2RlVGFnKFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgc3RhdGUuaW1wbGljaXQgIT09IG51bGwgPyBzdGF0ZS5pbXBsaWNpdCA6IHN0YXRlLnRhZyxcbiAgICAgICAgc3RhdGUuYW55XG4gICAgICApO1xuICAgICAgaWYgKGlucHV0LmlzRXJyb3IoYm9keSkpXG4gICAgICAgIHJldHVybiBib2R5O1xuXG4gICAgICBpZiAoc3RhdGUuYW55KVxuICAgICAgICByZXN1bHQgPSBpbnB1dC5yYXcoc2F2ZSk7XG4gICAgICBlbHNlXG4gICAgICAgIGlucHV0ID0gYm9keTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnRyYWNrICYmIHN0YXRlLnRhZyAhPT0gbnVsbClcbiAgICAgIG9wdGlvbnMudHJhY2soaW5wdXQucGF0aCgpLCBzdGFydCwgaW5wdXQubGVuZ3RoLCAndGFnZ2VkJyk7XG5cbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnRyYWNrICYmIHN0YXRlLnRhZyAhPT0gbnVsbClcbiAgICAgIG9wdGlvbnMudHJhY2soaW5wdXQucGF0aCgpLCBpbnB1dC5vZmZzZXQsIGlucHV0Lmxlbmd0aCwgJ2NvbnRlbnQnKTtcblxuICAgIC8vIFNlbGVjdCBwcm9wZXIgbWV0aG9kIGZvciB0YWdcbiAgICBpZiAoc3RhdGUuYW55KVxuICAgICAgcmVzdWx0ID0gcmVzdWx0O1xuICAgIGVsc2UgaWYgKHN0YXRlLmNob2ljZSA9PT0gbnVsbClcbiAgICAgIHJlc3VsdCA9IHRoaXMuX2RlY29kZUdlbmVyaWMoc3RhdGUudGFnLCBpbnB1dCwgb3B0aW9ucyk7XG4gICAgZWxzZVxuICAgICAgcmVzdWx0ID0gdGhpcy5fZGVjb2RlQ2hvaWNlKGlucHV0LCBvcHRpb25zKTtcblxuICAgIGlmIChpbnB1dC5pc0Vycm9yKHJlc3VsdCkpXG4gICAgICByZXR1cm4gcmVzdWx0O1xuXG4gICAgLy8gRGVjb2RlIGNoaWxkcmVuXG4gICAgaWYgKCFzdGF0ZS5hbnkgJiYgc3RhdGUuY2hvaWNlID09PSBudWxsICYmIHN0YXRlLmNoaWxkcmVuICE9PSBudWxsKSB7XG4gICAgICBzdGF0ZS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIGRlY29kZUNoaWxkcmVuKGNoaWxkKSB7XG4gICAgICAgIC8vIE5PVEU6IFdlIGFyZSBpZ25vcmluZyBlcnJvcnMgaGVyZSwgdG8gbGV0IHBhcnNlciBjb250aW51ZSB3aXRoIG90aGVyXG4gICAgICAgIC8vIHBhcnRzIG9mIGVuY29kZWQgZGF0YVxuICAgICAgICBjaGlsZC5fZGVjb2RlKGlucHV0LCBvcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIERlY29kZSBjb250YWluZWQvZW5jb2RlZCBieSBzY2hlbWEsIG9ubHkgaW4gYml0IG9yIG9jdGV0IHN0cmluZ3NcbiAgICBpZiAoc3RhdGUuY29udGFpbnMgJiYgKHN0YXRlLnRhZyA9PT0gJ29jdHN0cicgfHwgc3RhdGUudGFnID09PSAnYml0c3RyJykpIHtcbiAgICAgIHZhciBkYXRhID0gbmV3IERlY29kZXJCdWZmZXIocmVzdWx0KTtcbiAgICAgIHJlc3VsdCA9IHRoaXMuX2dldFVzZShzdGF0ZS5jb250YWlucywgaW5wdXQuX3JlcG9ydGVyU3RhdGUub2JqKVxuICAgICAgICAgIC5fZGVjb2RlKGRhdGEsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBvcCBvYmplY3RcbiAgaWYgKHN0YXRlLm9iaiAmJiBwcmVzZW50KVxuICAgIHJlc3VsdCA9IGlucHV0LmxlYXZlT2JqZWN0KHByZXZPYmopO1xuXG4gIC8vIFNldCBrZXlcbiAgaWYgKHN0YXRlLmtleSAhPT0gbnVsbCAmJiAocmVzdWx0ICE9PSBudWxsIHx8IHByZXNlbnQgPT09IHRydWUpKVxuICAgIGlucHV0LmxlYXZlS2V5KHByZXZLZXksIHN0YXRlLmtleSwgcmVzdWx0KTtcbiAgZWxzZSBpZiAocHJldktleSAhPT0gbnVsbClcbiAgICBpbnB1dC5leGl0S2V5KHByZXZLZXkpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5fZGVjb2RlR2VuZXJpYyA9IGZ1bmN0aW9uIGRlY29kZUdlbmVyaWModGFnLCBpbnB1dCwgb3B0aW9ucykge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9iYXNlU3RhdGU7XG5cbiAgaWYgKHRhZyA9PT0gJ3NlcScgfHwgdGFnID09PSAnc2V0JylcbiAgICByZXR1cm4gbnVsbDtcbiAgaWYgKHRhZyA9PT0gJ3NlcW9mJyB8fCB0YWcgPT09ICdzZXRvZicpXG4gICAgcmV0dXJuIHRoaXMuX2RlY29kZUxpc3QoaW5wdXQsIHRhZywgc3RhdGUuYXJnc1swXSwgb3B0aW9ucyk7XG4gIGVsc2UgaWYgKC9zdHIkLy50ZXN0KHRhZykpXG4gICAgcmV0dXJuIHRoaXMuX2RlY29kZVN0cihpbnB1dCwgdGFnLCBvcHRpb25zKTtcbiAgZWxzZSBpZiAodGFnID09PSAnb2JqaWQnICYmIHN0YXRlLmFyZ3MpXG4gICAgcmV0dXJuIHRoaXMuX2RlY29kZU9iamlkKGlucHV0LCBzdGF0ZS5hcmdzWzBdLCBzdGF0ZS5hcmdzWzFdLCBvcHRpb25zKTtcbiAgZWxzZSBpZiAodGFnID09PSAnb2JqaWQnKVxuICAgIHJldHVybiB0aGlzLl9kZWNvZGVPYmppZChpbnB1dCwgbnVsbCwgbnVsbCwgb3B0aW9ucyk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ2dlbnRpbWUnIHx8IHRhZyA9PT0gJ3V0Y3RpbWUnKVxuICAgIHJldHVybiB0aGlzLl9kZWNvZGVUaW1lKGlucHV0LCB0YWcsIG9wdGlvbnMpO1xuICBlbHNlIGlmICh0YWcgPT09ICdudWxsXycpXG4gICAgcmV0dXJuIHRoaXMuX2RlY29kZU51bGwoaW5wdXQsIG9wdGlvbnMpO1xuICBlbHNlIGlmICh0YWcgPT09ICdib29sJylcbiAgICByZXR1cm4gdGhpcy5fZGVjb2RlQm9vbChpbnB1dCwgb3B0aW9ucyk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ29iakRlc2MnKVxuICAgIHJldHVybiB0aGlzLl9kZWNvZGVTdHIoaW5wdXQsIHRhZywgb3B0aW9ucyk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ2ludCcgfHwgdGFnID09PSAnZW51bScpXG4gICAgcmV0dXJuIHRoaXMuX2RlY29kZUludChpbnB1dCwgc3RhdGUuYXJncyAmJiBzdGF0ZS5hcmdzWzBdLCBvcHRpb25zKTtcblxuICBpZiAoc3RhdGUudXNlICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFVzZShzdGF0ZS51c2UsIGlucHV0Ll9yZXBvcnRlclN0YXRlLm9iailcbiAgICAgICAgLl9kZWNvZGUoaW5wdXQsIG9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBpbnB1dC5lcnJvcigndW5rbm93biB0YWc6ICcgKyB0YWcpO1xuICB9XG59O1xuXG5Ob2RlLnByb3RvdHlwZS5fZ2V0VXNlID0gZnVuY3Rpb24gX2dldFVzZShlbnRpdHksIG9iaikge1xuXG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcbiAgLy8gQ3JlYXRlIGFsdGVyZWQgdXNlIGRlY29kZXIgaWYgaW1wbGljaXQgaXMgc2V0XG4gIHN0YXRlLnVzZURlY29kZXIgPSB0aGlzLl91c2UoZW50aXR5LCBvYmopO1xuICBhc3NlcnQoc3RhdGUudXNlRGVjb2Rlci5fYmFzZVN0YXRlLnBhcmVudCA9PT0gbnVsbCk7XG4gIHN0YXRlLnVzZURlY29kZXIgPSBzdGF0ZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuY2hpbGRyZW5bMF07XG4gIGlmIChzdGF0ZS5pbXBsaWNpdCAhPT0gc3RhdGUudXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0KSB7XG4gICAgc3RhdGUudXNlRGVjb2RlciA9IHN0YXRlLnVzZURlY29kZXIuY2xvbmUoKTtcbiAgICBzdGF0ZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUuaW1wbGljaXQgPSBzdGF0ZS5pbXBsaWNpdDtcbiAgfVxuICByZXR1cm4gc3RhdGUudXNlRGVjb2Rlcjtcbn07XG5cbk5vZGUucHJvdG90eXBlLl9kZWNvZGVDaG9pY2UgPSBmdW5jdGlvbiBkZWNvZGVDaG9pY2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuICB2YXIgcmVzdWx0ID0gbnVsbDtcbiAgdmFyIG1hdGNoID0gZmFsc2U7XG5cbiAgT2JqZWN0LmtleXMoc3RhdGUuY2hvaWNlKS5zb21lKGZ1bmN0aW9uKGtleSkge1xuICAgIHZhciBzYXZlID0gaW5wdXQuc2F2ZSgpO1xuICAgIHZhciBub2RlID0gc3RhdGUuY2hvaWNlW2tleV07XG4gICAgdHJ5IHtcbiAgICAgIHZhciB2YWx1ZSA9IG5vZGUuX2RlY29kZShpbnB1dCwgb3B0aW9ucyk7XG4gICAgICBpZiAoaW5wdXQuaXNFcnJvcih2YWx1ZSkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgcmVzdWx0ID0geyB0eXBlOiBrZXksIHZhbHVlOiB2YWx1ZSB9O1xuICAgICAgbWF0Y2ggPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlucHV0LnJlc3RvcmUoc2F2ZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9LCB0aGlzKTtcblxuICBpZiAoIW1hdGNoKVxuICAgIHJldHVybiBpbnB1dC5lcnJvcignQ2hvaWNlIG5vdCBtYXRjaGVkJyk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vXG4vLyBFbmNvZGluZ1xuLy9cblxuTm9kZS5wcm90b3R5cGUuX2NyZWF0ZUVuY29kZXJCdWZmZXIgPSBmdW5jdGlvbiBjcmVhdGVFbmNvZGVyQnVmZmVyKGRhdGEpIHtcbiAgcmV0dXJuIG5ldyBFbmNvZGVyQnVmZmVyKGRhdGEsIHRoaXMucmVwb3J0ZXIpO1xufTtcblxuTm9kZS5wcm90b3R5cGUuX2VuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShkYXRhLCByZXBvcnRlciwgcGFyZW50KSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcbiAgaWYgKHN0YXRlWydkZWZhdWx0J10gIT09IG51bGwgJiYgc3RhdGVbJ2RlZmF1bHQnXSA9PT0gZGF0YSlcbiAgICByZXR1cm47XG5cbiAgdmFyIHJlc3VsdCA9IHRoaXMuX2VuY29kZVZhbHVlKGRhdGEsIHJlcG9ydGVyLCBwYXJlbnQpO1xuICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuO1xuXG4gIGlmICh0aGlzLl9za2lwRGVmYXVsdChyZXN1bHQsIHJlcG9ydGVyLCBwYXJlbnQpKVxuICAgIHJldHVybjtcblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuTm9kZS5wcm90b3R5cGUuX2VuY29kZVZhbHVlID0gZnVuY3Rpb24gZW5jb2RlKGRhdGEsIHJlcG9ydGVyLCBwYXJlbnQpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIC8vIERlY29kZSByb290IG5vZGVcbiAgaWYgKHN0YXRlLnBhcmVudCA9PT0gbnVsbClcbiAgICByZXR1cm4gc3RhdGUuY2hpbGRyZW5bMF0uX2VuY29kZShkYXRhLCByZXBvcnRlciB8fCBuZXcgUmVwb3J0ZXIoKSk7XG5cbiAgdmFyIHJlc3VsdCA9IG51bGw7XG5cbiAgLy8gU2V0IHJlcG9ydGVyIHRvIHNoYXJlIGl0IHdpdGggYSBjaGlsZCBjbGFzc1xuICB0aGlzLnJlcG9ydGVyID0gcmVwb3J0ZXI7XG5cbiAgLy8gQ2hlY2sgaWYgZGF0YSBpcyB0aGVyZVxuICBpZiAoc3RhdGUub3B0aW9uYWwgJiYgZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHN0YXRlWydkZWZhdWx0J10gIT09IG51bGwpXG4gICAgICBkYXRhID0gc3RhdGVbJ2RlZmF1bHQnXVxuICAgIGVsc2VcbiAgICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIEVuY29kZSBjaGlsZHJlbiBmaXJzdFxuICB2YXIgY29udGVudCA9IG51bGw7XG4gIHZhciBwcmltaXRpdmUgPSBmYWxzZTtcbiAgaWYgKHN0YXRlLmFueSkge1xuICAgIC8vIEFueXRoaW5nIHRoYXQgd2FzIGdpdmVuIGlzIHRyYW5zbGF0ZWQgdG8gYnVmZmVyXG4gICAgcmVzdWx0ID0gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihkYXRhKTtcbiAgfSBlbHNlIGlmIChzdGF0ZS5jaG9pY2UpIHtcbiAgICByZXN1bHQgPSB0aGlzLl9lbmNvZGVDaG9pY2UoZGF0YSwgcmVwb3J0ZXIpO1xuICB9IGVsc2UgaWYgKHN0YXRlLmNvbnRhaW5zKSB7XG4gICAgY29udGVudCA9IHRoaXMuX2dldFVzZShzdGF0ZS5jb250YWlucywgcGFyZW50KS5fZW5jb2RlKGRhdGEsIHJlcG9ydGVyKTtcbiAgICBwcmltaXRpdmUgPSB0cnVlO1xuICB9IGVsc2UgaWYgKHN0YXRlLmNoaWxkcmVuKSB7XG4gICAgY29udGVudCA9IHN0YXRlLmNoaWxkcmVuLm1hcChmdW5jdGlvbihjaGlsZCkge1xuICAgICAgaWYgKGNoaWxkLl9iYXNlU3RhdGUudGFnID09PSAnbnVsbF8nKVxuICAgICAgICByZXR1cm4gY2hpbGQuX2VuY29kZShudWxsLCByZXBvcnRlciwgZGF0YSk7XG5cbiAgICAgIGlmIChjaGlsZC5fYmFzZVN0YXRlLmtleSA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuIHJlcG9ydGVyLmVycm9yKCdDaGlsZCBzaG91bGQgaGF2ZSBhIGtleScpO1xuICAgICAgdmFyIHByZXZLZXkgPSByZXBvcnRlci5lbnRlcktleShjaGlsZC5fYmFzZVN0YXRlLmtleSk7XG5cbiAgICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHJldHVybiByZXBvcnRlci5lcnJvcignQ2hpbGQgZXhwZWN0ZWQsIGJ1dCBpbnB1dCBpcyBub3Qgb2JqZWN0Jyk7XG5cbiAgICAgIHZhciByZXMgPSBjaGlsZC5fZW5jb2RlKGRhdGFbY2hpbGQuX2Jhc2VTdGF0ZS5rZXldLCByZXBvcnRlciwgZGF0YSk7XG4gICAgICByZXBvcnRlci5sZWF2ZUtleShwcmV2S2V5KTtcblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9LCB0aGlzKS5maWx0ZXIoZnVuY3Rpb24oY2hpbGQpIHtcbiAgICAgIHJldHVybiBjaGlsZDtcbiAgICB9KTtcbiAgICBjb250ZW50ID0gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihjb250ZW50KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoc3RhdGUudGFnID09PSAnc2Vxb2YnIHx8IHN0YXRlLnRhZyA9PT0gJ3NldG9mJykge1xuICAgICAgLy8gVE9ETyhpbmR1dG55KTogdGhpcyBzaG91bGQgYmUgdGhyb3duIG9uIERTTCBsZXZlbFxuICAgICAgaWYgKCEoc3RhdGUuYXJncyAmJiBzdGF0ZS5hcmdzLmxlbmd0aCA9PT0gMSkpXG4gICAgICAgIHJldHVybiByZXBvcnRlci5lcnJvcignVG9vIG1hbnkgYXJncyBmb3IgOiAnICsgc3RhdGUudGFnKTtcblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKVxuICAgICAgICByZXR1cm4gcmVwb3J0ZXIuZXJyb3IoJ3NlcW9mL3NldG9mLCBidXQgZGF0YSBpcyBub3QgQXJyYXknKTtcblxuICAgICAgdmFyIGNoaWxkID0gdGhpcy5jbG9uZSgpO1xuICAgICAgY2hpbGQuX2Jhc2VTdGF0ZS5pbXBsaWNpdCA9IG51bGw7XG4gICAgICBjb250ZW50ID0gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihkYXRhLm1hcChmdW5jdGlvbihpdGVtKSB7XG4gICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0VXNlKHN0YXRlLmFyZ3NbMF0sIGRhdGEpLl9lbmNvZGUoaXRlbSwgcmVwb3J0ZXIpO1xuICAgICAgfSwgY2hpbGQpKTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlLnVzZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0ID0gdGhpcy5fZ2V0VXNlKHN0YXRlLnVzZSwgcGFyZW50KS5fZW5jb2RlKGRhdGEsIHJlcG9ydGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCA9IHRoaXMuX2VuY29kZVByaW1pdGl2ZShzdGF0ZS50YWcsIGRhdGEpO1xuICAgICAgcHJpbWl0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBFbmNvZGUgZGF0YSBpdHNlbGZcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKCFzdGF0ZS5hbnkgJiYgc3RhdGUuY2hvaWNlID09PSBudWxsKSB7XG4gICAgdmFyIHRhZyA9IHN0YXRlLmltcGxpY2l0ICE9PSBudWxsID8gc3RhdGUuaW1wbGljaXQgOiBzdGF0ZS50YWc7XG4gICAgdmFyIGNscyA9IHN0YXRlLmltcGxpY2l0ID09PSBudWxsID8gJ3VuaXZlcnNhbCcgOiAnY29udGV4dCc7XG5cbiAgICBpZiAodGFnID09PSBudWxsKSB7XG4gICAgICBpZiAoc3RhdGUudXNlID09PSBudWxsKVxuICAgICAgICByZXBvcnRlci5lcnJvcignVGFnIGNvdWxkIGJlIG9taXR0ZWQgb25seSBmb3IgLnVzZSgpJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzdGF0ZS51c2UgPT09IG51bGwpXG4gICAgICAgIHJlc3VsdCA9IHRoaXMuX2VuY29kZUNvbXBvc2l0ZSh0YWcsIHByaW1pdGl2ZSwgY2xzLCBjb250ZW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBXcmFwIGluIGV4cGxpY2l0XG4gIGlmIChzdGF0ZS5leHBsaWNpdCAhPT0gbnVsbClcbiAgICByZXN1bHQgPSB0aGlzLl9lbmNvZGVDb21wb3NpdGUoc3RhdGUuZXhwbGljaXQsIGZhbHNlLCAnY29udGV4dCcsIHJlc3VsdCk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbk5vZGUucHJvdG90eXBlLl9lbmNvZGVDaG9pY2UgPSBmdW5jdGlvbiBlbmNvZGVDaG9pY2UoZGF0YSwgcmVwb3J0ZXIpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIHZhciBub2RlID0gc3RhdGUuY2hvaWNlW2RhdGEudHlwZV07XG4gIGlmICghbm9kZSkge1xuICAgIGFzc2VydChcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIGRhdGEudHlwZSArICcgbm90IGZvdW5kIGluICcgK1xuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXMoc3RhdGUuY2hvaWNlKSkpO1xuICB9XG4gIHJldHVybiBub2RlLl9lbmNvZGUoZGF0YS52YWx1ZSwgcmVwb3J0ZXIpO1xufTtcblxuTm9kZS5wcm90b3R5cGUuX2VuY29kZVByaW1pdGl2ZSA9IGZ1bmN0aW9uIGVuY29kZVByaW1pdGl2ZSh0YWcsIGRhdGEpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fYmFzZVN0YXRlO1xuXG4gIGlmICgvc3RyJC8udGVzdCh0YWcpKVxuICAgIHJldHVybiB0aGlzLl9lbmNvZGVTdHIoZGF0YSwgdGFnKTtcbiAgZWxzZSBpZiAodGFnID09PSAnb2JqaWQnICYmIHN0YXRlLmFyZ3MpXG4gICAgcmV0dXJuIHRoaXMuX2VuY29kZU9iamlkKGRhdGEsIHN0YXRlLnJldmVyc2VBcmdzWzBdLCBzdGF0ZS5hcmdzWzFdKTtcbiAgZWxzZSBpZiAodGFnID09PSAnb2JqaWQnKVxuICAgIHJldHVybiB0aGlzLl9lbmNvZGVPYmppZChkYXRhLCBudWxsLCBudWxsKTtcbiAgZWxzZSBpZiAodGFnID09PSAnZ2VudGltZScgfHwgdGFnID09PSAndXRjdGltZScpXG4gICAgcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUoZGF0YSwgdGFnKTtcbiAgZWxzZSBpZiAodGFnID09PSAnbnVsbF8nKVxuICAgIHJldHVybiB0aGlzLl9lbmNvZGVOdWxsKCk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ2ludCcgfHwgdGFnID09PSAnZW51bScpXG4gICAgcmV0dXJuIHRoaXMuX2VuY29kZUludChkYXRhLCBzdGF0ZS5hcmdzICYmIHN0YXRlLnJldmVyc2VBcmdzWzBdKTtcbiAgZWxzZSBpZiAodGFnID09PSAnYm9vbCcpXG4gICAgcmV0dXJuIHRoaXMuX2VuY29kZUJvb2woZGF0YSk7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ29iakRlc2MnKVxuICAgIHJldHVybiB0aGlzLl9lbmNvZGVTdHIoZGF0YSwgdGFnKTtcbiAgZWxzZVxuICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgdGFnOiAnICsgdGFnKTtcbn07XG5cbk5vZGUucHJvdG90eXBlLl9pc051bXN0ciA9IGZ1bmN0aW9uIGlzTnVtc3RyKHN0cikge1xuICByZXR1cm4gL15bMC05IF0qJC8udGVzdChzdHIpO1xufTtcblxuTm9kZS5wcm90b3R5cGUuX2lzUHJpbnRzdHIgPSBmdW5jdGlvbiBpc1ByaW50c3RyKHN0cikge1xuICByZXR1cm4gL15bQS1aYS16MC05ICdcXChcXClcXCssXFwtXFwuXFwvOj1cXD9dKiQvLnRlc3Qoc3RyKTtcbn07XG4iLCJ2YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuXG5mdW5jdGlvbiBSZXBvcnRlcihvcHRpb25zKSB7XG4gIHRoaXMuX3JlcG9ydGVyU3RhdGUgPSB7XG4gICAgb2JqOiBudWxsLFxuICAgIHBhdGg6IFtdLFxuICAgIG9wdGlvbnM6IG9wdGlvbnMgfHwge30sXG4gICAgZXJyb3JzOiBbXVxuICB9O1xufVxuZXhwb3J0cy5SZXBvcnRlciA9IFJlcG9ydGVyO1xuXG5SZXBvcnRlci5wcm90b3R5cGUuaXNFcnJvciA9IGZ1bmN0aW9uIGlzRXJyb3Iob2JqKSB7XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBSZXBvcnRlckVycm9yO1xufTtcblxuUmVwb3J0ZXIucHJvdG90eXBlLnNhdmUgPSBmdW5jdGlvbiBzYXZlKCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZXBvcnRlclN0YXRlO1xuXG4gIHJldHVybiB7IG9iajogc3RhdGUub2JqLCBwYXRoTGVuOiBzdGF0ZS5wYXRoLmxlbmd0aCB9O1xufTtcblxuUmVwb3J0ZXIucHJvdG90eXBlLnJlc3RvcmUgPSBmdW5jdGlvbiByZXN0b3JlKGRhdGEpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVwb3J0ZXJTdGF0ZTtcblxuICBzdGF0ZS5vYmogPSBkYXRhLm9iajtcbiAgc3RhdGUucGF0aCA9IHN0YXRlLnBhdGguc2xpY2UoMCwgZGF0YS5wYXRoTGVuKTtcbn07XG5cblJlcG9ydGVyLnByb3RvdHlwZS5lbnRlcktleSA9IGZ1bmN0aW9uIGVudGVyS2V5KGtleSkge1xuICByZXR1cm4gdGhpcy5fcmVwb3J0ZXJTdGF0ZS5wYXRoLnB1c2goa2V5KTtcbn07XG5cblJlcG9ydGVyLnByb3RvdHlwZS5leGl0S2V5ID0gZnVuY3Rpb24gZXhpdEtleShpbmRleCkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZXBvcnRlclN0YXRlO1xuXG4gIHN0YXRlLnBhdGggPSBzdGF0ZS5wYXRoLnNsaWNlKDAsIGluZGV4IC0gMSk7XG59O1xuXG5SZXBvcnRlci5wcm90b3R5cGUubGVhdmVLZXkgPSBmdW5jdGlvbiBsZWF2ZUtleShpbmRleCwga2V5LCB2YWx1ZSkge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZXBvcnRlclN0YXRlO1xuXG4gIHRoaXMuZXhpdEtleShpbmRleCk7XG4gIGlmIChzdGF0ZS5vYmogIT09IG51bGwpXG4gICAgc3RhdGUub2JqW2tleV0gPSB2YWx1ZTtcbn07XG5cblJlcG9ydGVyLnByb3RvdHlwZS5wYXRoID0gZnVuY3Rpb24gcGF0aCgpIHtcbiAgcmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5qb2luKCcvJyk7XG59O1xuXG5SZXBvcnRlci5wcm90b3R5cGUuZW50ZXJPYmplY3QgPSBmdW5jdGlvbiBlbnRlck9iamVjdCgpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVwb3J0ZXJTdGF0ZTtcblxuICB2YXIgcHJldiA9IHN0YXRlLm9iajtcbiAgc3RhdGUub2JqID0ge307XG4gIHJldHVybiBwcmV2O1xufTtcblxuUmVwb3J0ZXIucHJvdG90eXBlLmxlYXZlT2JqZWN0ID0gZnVuY3Rpb24gbGVhdmVPYmplY3QocHJldikge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9yZXBvcnRlclN0YXRlO1xuXG4gIHZhciBub3cgPSBzdGF0ZS5vYmo7XG4gIHN0YXRlLm9iaiA9IHByZXY7XG4gIHJldHVybiBub3c7XG59O1xuXG5SZXBvcnRlci5wcm90b3R5cGUuZXJyb3IgPSBmdW5jdGlvbiBlcnJvcihtc2cpIHtcbiAgdmFyIGVycjtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVwb3J0ZXJTdGF0ZTtcblxuICB2YXIgaW5oZXJpdGVkID0gbXNnIGluc3RhbmNlb2YgUmVwb3J0ZXJFcnJvcjtcbiAgaWYgKGluaGVyaXRlZCkge1xuICAgIGVyciA9IG1zZztcbiAgfSBlbHNlIHtcbiAgICBlcnIgPSBuZXcgUmVwb3J0ZXJFcnJvcihzdGF0ZS5wYXRoLm1hcChmdW5jdGlvbihlbGVtKSB7XG4gICAgICByZXR1cm4gJ1snICsgSlNPTi5zdHJpbmdpZnkoZWxlbSkgKyAnXSc7XG4gICAgfSkuam9pbignJyksIG1zZy5tZXNzYWdlIHx8IG1zZywgbXNnLnN0YWNrKTtcbiAgfVxuXG4gIGlmICghc3RhdGUub3B0aW9ucy5wYXJ0aWFsKVxuICAgIHRocm93IGVycjtcblxuICBpZiAoIWluaGVyaXRlZClcbiAgICBzdGF0ZS5lcnJvcnMucHVzaChlcnIpO1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG5SZXBvcnRlci5wcm90b3R5cGUud3JhcFJlc3VsdCA9IGZ1bmN0aW9uIHdyYXBSZXN1bHQocmVzdWx0KSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlcG9ydGVyU3RhdGU7XG4gIGlmICghc3RhdGUub3B0aW9ucy5wYXJ0aWFsKVxuICAgIHJldHVybiByZXN1bHQ7XG5cbiAgcmV0dXJuIHtcbiAgICByZXN1bHQ6IHRoaXMuaXNFcnJvcihyZXN1bHQpID8gbnVsbCA6IHJlc3VsdCxcbiAgICBlcnJvcnM6IHN0YXRlLmVycm9yc1xuICB9O1xufTtcblxuZnVuY3Rpb24gUmVwb3J0ZXJFcnJvcihwYXRoLCBtc2cpIHtcbiAgdGhpcy5wYXRoID0gcGF0aDtcbiAgdGhpcy5yZXRocm93KG1zZyk7XG59O1xuaW5oZXJpdHMoUmVwb3J0ZXJFcnJvciwgRXJyb3IpO1xuXG5SZXBvcnRlckVycm9yLnByb3RvdHlwZS5yZXRocm93ID0gZnVuY3Rpb24gcmV0aHJvdyhtc2cpIHtcbiAgdGhpcy5tZXNzYWdlID0gbXNnICsgJyBhdDogJyArICh0aGlzLnBhdGggfHwgJyhzaGFsbG93KScpO1xuICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpXG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgUmVwb3J0ZXJFcnJvcik7XG5cbiAgaWYgKCF0aGlzLnN0YWNrKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIElFIG9ubHkgYWRkcyBzdGFjayB3aGVuIHRocm93blxuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMubWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5zdGFjayA9IGUuc3RhY2s7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufTtcbiIsInZhciBjb25zdGFudHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMnKTtcblxuZXhwb3J0cy50YWdDbGFzcyA9IHtcbiAgMDogJ3VuaXZlcnNhbCcsXG4gIDE6ICdhcHBsaWNhdGlvbicsXG4gIDI6ICdjb250ZXh0JyxcbiAgMzogJ3ByaXZhdGUnXG59O1xuZXhwb3J0cy50YWdDbGFzc0J5TmFtZSA9IGNvbnN0YW50cy5fcmV2ZXJzZShleHBvcnRzLnRhZ0NsYXNzKTtcblxuZXhwb3J0cy50YWcgPSB7XG4gIDB4MDA6ICdlbmQnLFxuICAweDAxOiAnYm9vbCcsXG4gIDB4MDI6ICdpbnQnLFxuICAweDAzOiAnYml0c3RyJyxcbiAgMHgwNDogJ29jdHN0cicsXG4gIDB4MDU6ICdudWxsXycsXG4gIDB4MDY6ICdvYmppZCcsXG4gIDB4MDc6ICdvYmpEZXNjJyxcbiAgMHgwODogJ2V4dGVybmFsJyxcbiAgMHgwOTogJ3JlYWwnLFxuICAweDBhOiAnZW51bScsXG4gIDB4MGI6ICdlbWJlZCcsXG4gIDB4MGM6ICd1dGY4c3RyJyxcbiAgMHgwZDogJ3JlbGF0aXZlT2lkJyxcbiAgMHgxMDogJ3NlcScsXG4gIDB4MTE6ICdzZXQnLFxuICAweDEyOiAnbnVtc3RyJyxcbiAgMHgxMzogJ3ByaW50c3RyJyxcbiAgMHgxNDogJ3Q2MXN0cicsXG4gIDB4MTU6ICd2aWRlb3N0cicsXG4gIDB4MTY6ICdpYTVzdHInLFxuICAweDE3OiAndXRjdGltZScsXG4gIDB4MTg6ICdnZW50aW1lJyxcbiAgMHgxOTogJ2dyYXBoc3RyJyxcbiAgMHgxYTogJ2lzbzY0NnN0cicsXG4gIDB4MWI6ICdnZW5zdHInLFxuICAweDFjOiAndW5pc3RyJyxcbiAgMHgxZDogJ2NoYXJzdHInLFxuICAweDFlOiAnYm1wc3RyJ1xufTtcbmV4cG9ydHMudGFnQnlOYW1lID0gY29uc3RhbnRzLl9yZXZlcnNlKGV4cG9ydHMudGFnKTtcbiIsInZhciBjb25zdGFudHMgPSBleHBvcnRzO1xuXG4vLyBIZWxwZXJcbmNvbnN0YW50cy5fcmV2ZXJzZSA9IGZ1bmN0aW9uIHJldmVyc2UobWFwKSB7XG4gIHZhciByZXMgPSB7fTtcblxuICBPYmplY3Qua2V5cyhtYXApLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgLy8gQ29udmVydCBrZXkgdG8gaW50ZWdlciBpZiBpdCBpcyBzdHJpbmdpZmllZFxuICAgIGlmICgoa2V5IHwgMCkgPT0ga2V5KVxuICAgICAga2V5ID0ga2V5IHwgMDtcblxuICAgIHZhciB2YWx1ZSA9IG1hcFtrZXldO1xuICAgIHJlc1t2YWx1ZV0gPSBrZXk7XG4gIH0pO1xuXG4gIHJldHVybiByZXM7XG59O1xuXG5jb25zdGFudHMuZGVyID0gcmVxdWlyZSgnLi9kZXInKTtcbiIsInZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG5cbnZhciBhc24xID0gcmVxdWlyZSgnLi4vLi4vYXNuMScpO1xudmFyIGJhc2UgPSBhc24xLmJhc2U7XG52YXIgYmlnbnVtID0gYXNuMS5iaWdudW07XG5cbi8vIEltcG9ydCBERVIgY29uc3RhbnRzXG52YXIgZGVyID0gYXNuMS5jb25zdGFudHMuZGVyO1xuXG5mdW5jdGlvbiBERVJEZWNvZGVyKGVudGl0eSkge1xuICB0aGlzLmVuYyA9ICdkZXInO1xuICB0aGlzLm5hbWUgPSBlbnRpdHkubmFtZTtcbiAgdGhpcy5lbnRpdHkgPSBlbnRpdHk7XG5cbiAgLy8gQ29uc3RydWN0IGJhc2UgdHJlZVxuICB0aGlzLnRyZWUgPSBuZXcgREVSTm9kZSgpO1xuICB0aGlzLnRyZWUuX2luaXQoZW50aXR5LmJvZHkpO1xufTtcbm1vZHVsZS5leHBvcnRzID0gREVSRGVjb2RlcjtcblxuREVSRGVjb2Rlci5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKGRhdGEsIG9wdGlvbnMpIHtcbiAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIGJhc2UuRGVjb2RlckJ1ZmZlcikpXG4gICAgZGF0YSA9IG5ldyBiYXNlLkRlY29kZXJCdWZmZXIoZGF0YSwgb3B0aW9ucyk7XG5cbiAgcmV0dXJuIHRoaXMudHJlZS5fZGVjb2RlKGRhdGEsIG9wdGlvbnMpO1xufTtcblxuLy8gVHJlZSBtZXRob2RzXG5cbmZ1bmN0aW9uIERFUk5vZGUocGFyZW50KSB7XG4gIGJhc2UuTm9kZS5jYWxsKHRoaXMsICdkZXInLCBwYXJlbnQpO1xufVxuaW5oZXJpdHMoREVSTm9kZSwgYmFzZS5Ob2RlKTtcblxuREVSTm9kZS5wcm90b3R5cGUuX3BlZWtUYWcgPSBmdW5jdGlvbiBwZWVrVGFnKGJ1ZmZlciwgdGFnLCBhbnkpIHtcbiAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIHZhciBzdGF0ZSA9IGJ1ZmZlci5zYXZlKCk7XG4gIHZhciBkZWNvZGVkVGFnID0gZGVyRGVjb2RlVGFnKGJ1ZmZlciwgJ0ZhaWxlZCB0byBwZWVrIHRhZzogXCInICsgdGFnICsgJ1wiJyk7XG4gIGlmIChidWZmZXIuaXNFcnJvcihkZWNvZGVkVGFnKSlcbiAgICByZXR1cm4gZGVjb2RlZFRhZztcblxuICBidWZmZXIucmVzdG9yZShzdGF0ZSk7XG5cbiAgcmV0dXJuIGRlY29kZWRUYWcudGFnID09PSB0YWcgfHwgZGVjb2RlZFRhZy50YWdTdHIgPT09IHRhZyB8fFxuICAgIChkZWNvZGVkVGFnLnRhZ1N0ciArICdvZicpID09PSB0YWcgfHwgYW55O1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2RlY29kZVRhZyA9IGZ1bmN0aW9uIGRlY29kZVRhZyhidWZmZXIsIHRhZywgYW55KSB7XG4gIHZhciBkZWNvZGVkVGFnID0gZGVyRGVjb2RlVGFnKGJ1ZmZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBkZWNvZGUgdGFnIG9mIFwiJyArIHRhZyArICdcIicpO1xuICBpZiAoYnVmZmVyLmlzRXJyb3IoZGVjb2RlZFRhZykpXG4gICAgcmV0dXJuIGRlY29kZWRUYWc7XG5cbiAgdmFyIGxlbiA9IGRlckRlY29kZUxlbihidWZmZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZFRhZy5wcmltaXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mIFwiJyArIHRhZyArICdcIicpO1xuXG4gIC8vIEZhaWx1cmVcbiAgaWYgKGJ1ZmZlci5pc0Vycm9yKGxlbikpXG4gICAgcmV0dXJuIGxlbjtcblxuICBpZiAoIWFueSAmJlxuICAgICAgZGVjb2RlZFRhZy50YWcgIT09IHRhZyAmJlxuICAgICAgZGVjb2RlZFRhZy50YWdTdHIgIT09IHRhZyAmJlxuICAgICAgZGVjb2RlZFRhZy50YWdTdHIgKyAnb2YnICE9PSB0YWcpIHtcbiAgICByZXR1cm4gYnVmZmVyLmVycm9yKCdGYWlsZWQgdG8gbWF0Y2ggdGFnOiBcIicgKyB0YWcgKyAnXCInKTtcbiAgfVxuXG4gIGlmIChkZWNvZGVkVGFnLnByaW1pdGl2ZSB8fCBsZW4gIT09IG51bGwpXG4gICAgcmV0dXJuIGJ1ZmZlci5za2lwKGxlbiwgJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiBcIicgKyB0YWcgKyAnXCInKTtcblxuICAvLyBJbmRlZmluaXRlIGxlbmd0aC4uLiBmaW5kIEVORCB0YWdcbiAgdmFyIHN0YXRlID0gYnVmZmVyLnNhdmUoKTtcbiAgdmFyIHJlcyA9IHRoaXMuX3NraXBVbnRpbEVuZChcbiAgICAgIGJ1ZmZlcixcbiAgICAgICdGYWlsZWQgdG8gc2tpcCBpbmRlZmluaXRlIGxlbmd0aCBib2R5OiBcIicgKyB0aGlzLnRhZyArICdcIicpO1xuICBpZiAoYnVmZmVyLmlzRXJyb3IocmVzKSlcbiAgICByZXR1cm4gcmVzO1xuXG4gIGxlbiA9IGJ1ZmZlci5vZmZzZXQgLSBzdGF0ZS5vZmZzZXQ7XG4gIGJ1ZmZlci5yZXN0b3JlKHN0YXRlKTtcbiAgcmV0dXJuIGJ1ZmZlci5za2lwKGxlbiwgJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiBcIicgKyB0YWcgKyAnXCInKTtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9za2lwVW50aWxFbmQgPSBmdW5jdGlvbiBza2lwVW50aWxFbmQoYnVmZmVyLCBmYWlsKSB7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgdmFyIHRhZyA9IGRlckRlY29kZVRhZyhidWZmZXIsIGZhaWwpO1xuICAgIGlmIChidWZmZXIuaXNFcnJvcih0YWcpKVxuICAgICAgcmV0dXJuIHRhZztcbiAgICB2YXIgbGVuID0gZGVyRGVjb2RlTGVuKGJ1ZmZlciwgdGFnLnByaW1pdGl2ZSwgZmFpbCk7XG4gICAgaWYgKGJ1ZmZlci5pc0Vycm9yKGxlbikpXG4gICAgICByZXR1cm4gbGVuO1xuXG4gICAgdmFyIHJlcztcbiAgICBpZiAodGFnLnByaW1pdGl2ZSB8fCBsZW4gIT09IG51bGwpXG4gICAgICByZXMgPSBidWZmZXIuc2tpcChsZW4pXG4gICAgZWxzZVxuICAgICAgcmVzID0gdGhpcy5fc2tpcFVudGlsRW5kKGJ1ZmZlciwgZmFpbCk7XG5cbiAgICAvLyBGYWlsdXJlXG4gICAgaWYgKGJ1ZmZlci5pc0Vycm9yKHJlcykpXG4gICAgICByZXR1cm4gcmVzO1xuXG4gICAgaWYgKHRhZy50YWdTdHIgPT09ICdlbmQnKVxuICAgICAgYnJlYWs7XG4gIH1cbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVMaXN0ID0gZnVuY3Rpb24gZGVjb2RlTGlzdChidWZmZXIsIHRhZywgZGVjb2RlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zKSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgd2hpbGUgKCFidWZmZXIuaXNFbXB0eSgpKSB7XG4gICAgdmFyIHBvc3NpYmxlRW5kID0gdGhpcy5fcGVla1RhZyhidWZmZXIsICdlbmQnKTtcbiAgICBpZiAoYnVmZmVyLmlzRXJyb3IocG9zc2libGVFbmQpKVxuICAgICAgcmV0dXJuIHBvc3NpYmxlRW5kO1xuXG4gICAgdmFyIHJlcyA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlciwgJ2RlcicsIG9wdGlvbnMpO1xuICAgIGlmIChidWZmZXIuaXNFcnJvcihyZXMpICYmIHBvc3NpYmxlRW5kKVxuICAgICAgYnJlYWs7XG4gICAgcmVzdWx0LnB1c2gocmVzKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2RlY29kZVN0ciA9IGZ1bmN0aW9uIGRlY29kZVN0cihidWZmZXIsIHRhZykge1xuICBpZiAodGFnID09PSAnYml0c3RyJykge1xuICAgIHZhciB1bnVzZWQgPSBidWZmZXIucmVhZFVJbnQ4KCk7XG4gICAgaWYgKGJ1ZmZlci5pc0Vycm9yKHVudXNlZCkpXG4gICAgICByZXR1cm4gdW51c2VkO1xuICAgIHJldHVybiB7IHVudXNlZDogdW51c2VkLCBkYXRhOiBidWZmZXIucmF3KCkgfTtcbiAgfSBlbHNlIGlmICh0YWcgPT09ICdibXBzdHInKSB7XG4gICAgdmFyIHJhdyA9IGJ1ZmZlci5yYXcoKTtcbiAgICBpZiAocmF3Lmxlbmd0aCAlIDIgPT09IDEpXG4gICAgICByZXR1cm4gYnVmZmVyLmVycm9yKCdEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogYm1wc3RyIGxlbmd0aCBtaXNtYXRjaCcpO1xuXG4gICAgdmFyIHN0ciA9ICcnO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3Lmxlbmd0aCAvIDI7IGkrKykge1xuICAgICAgc3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUocmF3LnJlYWRVSW50MTZCRShpICogMikpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyO1xuICB9IGVsc2UgaWYgKHRhZyA9PT0gJ251bXN0cicpIHtcbiAgICB2YXIgbnVtc3RyID0gYnVmZmVyLnJhdygpLnRvU3RyaW5nKCdhc2NpaScpO1xuICAgIGlmICghdGhpcy5faXNOdW1zdHIobnVtc3RyKSkge1xuICAgICAgcmV0dXJuIGJ1ZmZlci5lcnJvcignRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVtc3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMnKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bXN0cjtcbiAgfSBlbHNlIGlmICh0YWcgPT09ICdvY3RzdHInKSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5yYXcoKTtcbiAgfSBlbHNlIGlmICh0YWcgPT09ICdvYmpEZXNjJykge1xuICAgIHJldHVybiBidWZmZXIucmF3KCk7XG4gIH0gZWxzZSBpZiAodGFnID09PSAncHJpbnRzdHInKSB7XG4gICAgdmFyIHByaW50c3RyID0gYnVmZmVyLnJhdygpLnRvU3RyaW5nKCdhc2NpaScpO1xuICAgIGlmICghdGhpcy5faXNQcmludHN0cihwcmludHN0cikpIHtcbiAgICAgIHJldHVybiBidWZmZXIuZXJyb3IoJ0RlY29kaW5nIG9mIHN0cmluZyB0eXBlOiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW50c3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHByaW50c3RyO1xuICB9IGVsc2UgaWYgKC9zdHIkLy50ZXN0KHRhZykpIHtcbiAgICByZXR1cm4gYnVmZmVyLnJhdygpLnRvU3RyaW5nKCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJ1ZmZlci5lcnJvcignRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICcgKyB0YWcgKyAnIHVuc3VwcG9ydGVkJyk7XG4gIH1cbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVPYmppZCA9IGZ1bmN0aW9uIGRlY29kZU9iamlkKGJ1ZmZlciwgdmFsdWVzLCByZWxhdGl2ZSkge1xuICB2YXIgcmVzdWx0O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcbiAgdmFyIGlkZW50ID0gMDtcbiAgd2hpbGUgKCFidWZmZXIuaXNFbXB0eSgpKSB7XG4gICAgdmFyIHN1YmlkZW50ID0gYnVmZmVyLnJlYWRVSW50OCgpO1xuICAgIGlkZW50IDw8PSA3O1xuICAgIGlkZW50IHw9IHN1YmlkZW50ICYgMHg3ZjtcbiAgICBpZiAoKHN1YmlkZW50ICYgMHg4MCkgPT09IDApIHtcbiAgICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnQpO1xuICAgICAgaWRlbnQgPSAwO1xuICAgIH1cbiAgfVxuICBpZiAoc3ViaWRlbnQgJiAweDgwKVxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnQpO1xuXG4gIHZhciBmaXJzdCA9IChpZGVudGlmaWVyc1swXSAvIDQwKSB8IDA7XG4gIHZhciBzZWNvbmQgPSBpZGVudGlmaWVyc1swXSAlIDQwO1xuXG4gIGlmIChyZWxhdGl2ZSlcbiAgICByZXN1bHQgPSBpZGVudGlmaWVycztcbiAgZWxzZVxuICAgIHJlc3VsdCA9IFtmaXJzdCwgc2Vjb25kXS5jb25jYXQoaWRlbnRpZmllcnMuc2xpY2UoMSkpO1xuXG4gIGlmICh2YWx1ZXMpIHtcbiAgICB2YXIgdG1wID0gdmFsdWVzW3Jlc3VsdC5qb2luKCcgJyldO1xuICAgIGlmICh0bXAgPT09IHVuZGVmaW5lZClcbiAgICAgIHRtcCA9IHZhbHVlc1tyZXN1bHQuam9pbignLicpXTtcbiAgICBpZiAodG1wICE9PSB1bmRlZmluZWQpXG4gICAgICByZXN1bHQgPSB0bXA7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2RlY29kZVRpbWUgPSBmdW5jdGlvbiBkZWNvZGVUaW1lKGJ1ZmZlciwgdGFnKSB7XG4gIHZhciBzdHIgPSBidWZmZXIucmF3KCkudG9TdHJpbmcoKTtcbiAgaWYgKHRhZyA9PT0gJ2dlbnRpbWUnKSB7XG4gICAgdmFyIHllYXIgPSBzdHIuc2xpY2UoMCwgNCkgfCAwO1xuICAgIHZhciBtb24gPSBzdHIuc2xpY2UoNCwgNikgfCAwO1xuICAgIHZhciBkYXkgPSBzdHIuc2xpY2UoNiwgOCkgfCAwO1xuICAgIHZhciBob3VyID0gc3RyLnNsaWNlKDgsIDEwKSB8IDA7XG4gICAgdmFyIG1pbiA9IHN0ci5zbGljZSgxMCwgMTIpIHwgMDtcbiAgICB2YXIgc2VjID0gc3RyLnNsaWNlKDEyLCAxNCkgfCAwO1xuICB9IGVsc2UgaWYgKHRhZyA9PT0gJ3V0Y3RpbWUnKSB7XG4gICAgdmFyIHllYXIgPSBzdHIuc2xpY2UoMCwgMikgfCAwO1xuICAgIHZhciBtb24gPSBzdHIuc2xpY2UoMiwgNCkgfCAwO1xuICAgIHZhciBkYXkgPSBzdHIuc2xpY2UoNCwgNikgfCAwO1xuICAgIHZhciBob3VyID0gc3RyLnNsaWNlKDYsIDgpIHwgMDtcbiAgICB2YXIgbWluID0gc3RyLnNsaWNlKDgsIDEwKSB8IDA7XG4gICAgdmFyIHNlYyA9IHN0ci5zbGljZSgxMCwgMTIpIHwgMDtcbiAgICBpZiAoeWVhciA8IDcwKVxuICAgICAgeWVhciA9IDIwMDAgKyB5ZWFyO1xuICAgIGVsc2VcbiAgICAgIHllYXIgPSAxOTAwICsgeWVhcjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYnVmZmVyLmVycm9yKCdEZWNvZGluZyAnICsgdGFnICsgJyB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Jyk7XG4gIH1cblxuICByZXR1cm4gRGF0ZS5VVEMoeWVhciwgbW9uIC0gMSwgZGF5LCBob3VyLCBtaW4sIHNlYywgMCk7XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fZGVjb2RlTnVsbCA9IGZ1bmN0aW9uIGRlY29kZU51bGwoYnVmZmVyKSB7XG4gIHJldHVybiBudWxsO1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2RlY29kZUJvb2wgPSBmdW5jdGlvbiBkZWNvZGVCb29sKGJ1ZmZlcikge1xuICB2YXIgcmVzID0gYnVmZmVyLnJlYWRVSW50OCgpO1xuICBpZiAoYnVmZmVyLmlzRXJyb3IocmVzKSlcbiAgICByZXR1cm4gcmVzO1xuICBlbHNlXG4gICAgcmV0dXJuIHJlcyAhPT0gMDtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9kZWNvZGVJbnQgPSBmdW5jdGlvbiBkZWNvZGVJbnQoYnVmZmVyLCB2YWx1ZXMpIHtcbiAgLy8gQmlnaW50LCByZXR1cm4gYXMgaXQgaXMgKGFzc3VtZSBiaWcgZW5kaWFuKVxuICB2YXIgcmF3ID0gYnVmZmVyLnJhdygpO1xuICB2YXIgcmVzID0gbmV3IGJpZ251bShyYXcpO1xuXG4gIGlmICh2YWx1ZXMpXG4gICAgcmVzID0gdmFsdWVzW3Jlcy50b1N0cmluZygxMCldIHx8IHJlcztcblxuICByZXR1cm4gcmVzO1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX3VzZSA9IGZ1bmN0aW9uIHVzZShlbnRpdHksIG9iaikge1xuICBpZiAodHlwZW9mIGVudGl0eSA9PT0gJ2Z1bmN0aW9uJylcbiAgICBlbnRpdHkgPSBlbnRpdHkob2JqKTtcbiAgcmV0dXJuIGVudGl0eS5fZ2V0RGVjb2RlcignZGVyJykudHJlZTtcbn07XG5cbi8vIFV0aWxpdHkgbWV0aG9kc1xuXG5mdW5jdGlvbiBkZXJEZWNvZGVUYWcoYnVmLCBmYWlsKSB7XG4gIHZhciB0YWcgPSBidWYucmVhZFVJbnQ4KGZhaWwpO1xuICBpZiAoYnVmLmlzRXJyb3IodGFnKSlcbiAgICByZXR1cm4gdGFnO1xuXG4gIHZhciBjbHMgPSBkZXIudGFnQ2xhc3NbdGFnID4+IDZdO1xuICB2YXIgcHJpbWl0aXZlID0gKHRhZyAmIDB4MjApID09PSAwO1xuXG4gIC8vIE11bHRpLW9jdGV0IHRhZyAtIGxvYWRcbiAgaWYgKCh0YWcgJiAweDFmKSA9PT0gMHgxZikge1xuICAgIHZhciBvY3QgPSB0YWc7XG4gICAgdGFnID0gMDtcbiAgICB3aGlsZSAoKG9jdCAmIDB4ODApID09PSAweDgwKSB7XG4gICAgICBvY3QgPSBidWYucmVhZFVJbnQ4KGZhaWwpO1xuICAgICAgaWYgKGJ1Zi5pc0Vycm9yKG9jdCkpXG4gICAgICAgIHJldHVybiBvY3Q7XG5cbiAgICAgIHRhZyA8PD0gNztcbiAgICAgIHRhZyB8PSBvY3QgJiAweDdmO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0YWcgJj0gMHgxZjtcbiAgfVxuICB2YXIgdGFnU3RyID0gZGVyLnRhZ1t0YWddO1xuXG4gIHJldHVybiB7XG4gICAgY2xzOiBjbHMsXG4gICAgcHJpbWl0aXZlOiBwcmltaXRpdmUsXG4gICAgdGFnOiB0YWcsXG4gICAgdGFnU3RyOiB0YWdTdHJcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVyRGVjb2RlTGVuKGJ1ZiwgcHJpbWl0aXZlLCBmYWlsKSB7XG4gIHZhciBsZW4gPSBidWYucmVhZFVJbnQ4KGZhaWwpO1xuICBpZiAoYnVmLmlzRXJyb3IobGVuKSlcbiAgICByZXR1cm4gbGVuO1xuXG4gIC8vIEluZGVmaW5pdGUgZm9ybVxuICBpZiAoIXByaW1pdGl2ZSAmJiBsZW4gPT09IDB4ODApXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgLy8gRGVmaW5pdGUgZm9ybVxuICBpZiAoKGxlbiAmIDB4ODApID09PSAwKSB7XG4gICAgLy8gU2hvcnQgZm9ybVxuICAgIHJldHVybiBsZW47XG4gIH1cblxuICAvLyBMb25nIGZvcm1cbiAgdmFyIG51bSA9IGxlbiAmIDB4N2Y7XG4gIGlmIChudW0gPiA0KVxuICAgIHJldHVybiBidWYuZXJyb3IoJ2xlbmd0aCBvY3RlY3QgaXMgdG9vIGxvbmcnKTtcblxuICBsZW4gPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG51bTsgaSsrKSB7XG4gICAgbGVuIDw8PSA4O1xuICAgIHZhciBqID0gYnVmLnJlYWRVSW50OChmYWlsKTtcbiAgICBpZiAoYnVmLmlzRXJyb3IoaikpXG4gICAgICByZXR1cm4gajtcbiAgICBsZW4gfD0gajtcbiAgfVxuXG4gIHJldHVybiBsZW47XG59XG4iLCJ2YXIgZGVjb2RlcnMgPSBleHBvcnRzO1xuXG5kZWNvZGVycy5kZXIgPSByZXF1aXJlKCcuL2RlcicpO1xuZGVjb2RlcnMucGVtID0gcmVxdWlyZSgnLi9wZW0nKTtcbiIsInZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG52YXIgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykuQnVmZmVyO1xuXG52YXIgREVSRGVjb2RlciA9IHJlcXVpcmUoJy4vZGVyJyk7XG5cbmZ1bmN0aW9uIFBFTURlY29kZXIoZW50aXR5KSB7XG4gIERFUkRlY29kZXIuY2FsbCh0aGlzLCBlbnRpdHkpO1xuICB0aGlzLmVuYyA9ICdwZW0nO1xufTtcbmluaGVyaXRzKFBFTURlY29kZXIsIERFUkRlY29kZXIpO1xubW9kdWxlLmV4cG9ydHMgPSBQRU1EZWNvZGVyO1xuXG5QRU1EZWNvZGVyLnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoZGF0YSwgb3B0aW9ucykge1xuICB2YXIgbGluZXMgPSBkYXRhLnRvU3RyaW5nKCkuc3BsaXQoL1tcXHJcXG5dKy9nKTtcblxuICB2YXIgbGFiZWwgPSBvcHRpb25zLmxhYmVsLnRvVXBwZXJDYXNlKCk7XG5cbiAgdmFyIHJlID0gL14tLS0tLShCRUdJTnxFTkQpIChbXi1dKyktLS0tLSQvO1xuICB2YXIgc3RhcnQgPSAtMTtcbiAgdmFyIGVuZCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG1hdGNoID0gbGluZXNbaV0ubWF0Y2gocmUpO1xuICAgIGlmIChtYXRjaCA9PT0gbnVsbClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgaWYgKG1hdGNoWzJdICE9PSBsYWJlbClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgaWYgKHN0YXJ0ID09PSAtMSkge1xuICAgICAgaWYgKG1hdGNoWzFdICE9PSAnQkVHSU4nKVxuICAgICAgICBicmVhaztcbiAgICAgIHN0YXJ0ID0gaTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG1hdGNoWzFdICE9PSAnRU5EJylcbiAgICAgICAgYnJlYWs7XG4gICAgICBlbmQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChzdGFydCA9PT0gLTEgfHwgZW5kID09PSAtMSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BFTSBzZWN0aW9uIG5vdCBmb3VuZCBmb3I6ICcgKyBsYWJlbCk7XG5cbiAgdmFyIGJhc2U2NCA9IGxpbmVzLnNsaWNlKHN0YXJ0ICsgMSwgZW5kKS5qb2luKCcnKTtcbiAgLy8gUmVtb3ZlIGV4Y2Vzc2l2ZSBzeW1ib2xzXG4gIGJhc2U2NC5yZXBsYWNlKC9bXmEtejAtOVxcK1xcLz1dKy9naSwgJycpO1xuXG4gIHZhciBpbnB1dCA9IG5ldyBCdWZmZXIoYmFzZTY0LCAnYmFzZTY0Jyk7XG4gIHJldHVybiBERVJEZWNvZGVyLnByb3RvdHlwZS5kZWNvZGUuY2FsbCh0aGlzLCBpbnB1dCwgb3B0aW9ucyk7XG59O1xuIiwidmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG5cbnZhciBhc24xID0gcmVxdWlyZSgnLi4vLi4vYXNuMScpO1xudmFyIGJhc2UgPSBhc24xLmJhc2U7XG5cbi8vIEltcG9ydCBERVIgY29uc3RhbnRzXG52YXIgZGVyID0gYXNuMS5jb25zdGFudHMuZGVyO1xuXG5mdW5jdGlvbiBERVJFbmNvZGVyKGVudGl0eSkge1xuICB0aGlzLmVuYyA9ICdkZXInO1xuICB0aGlzLm5hbWUgPSBlbnRpdHkubmFtZTtcbiAgdGhpcy5lbnRpdHkgPSBlbnRpdHk7XG5cbiAgLy8gQ29uc3RydWN0IGJhc2UgdHJlZVxuICB0aGlzLnRyZWUgPSBuZXcgREVSTm9kZSgpO1xuICB0aGlzLnRyZWUuX2luaXQoZW50aXR5LmJvZHkpO1xufTtcbm1vZHVsZS5leHBvcnRzID0gREVSRW5jb2RlcjtcblxuREVSRW5jb2Rlci5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKGRhdGEsIHJlcG9ydGVyKSB7XG4gIHJldHVybiB0aGlzLnRyZWUuX2VuY29kZShkYXRhLCByZXBvcnRlcikuam9pbigpO1xufTtcblxuLy8gVHJlZSBtZXRob2RzXG5cbmZ1bmN0aW9uIERFUk5vZGUocGFyZW50KSB7XG4gIGJhc2UuTm9kZS5jYWxsKHRoaXMsICdkZXInLCBwYXJlbnQpO1xufVxuaW5oZXJpdHMoREVSTm9kZSwgYmFzZS5Ob2RlKTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2VuY29kZUNvbXBvc2l0ZSA9IGZ1bmN0aW9uIGVuY29kZUNvbXBvc2l0ZSh0YWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1pdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50KSB7XG4gIHZhciBlbmNvZGVkVGFnID0gZW5jb2RlVGFnKHRhZywgcHJpbWl0aXZlLCBjbHMsIHRoaXMucmVwb3J0ZXIpO1xuXG4gIC8vIFNob3J0IGZvcm1cbiAgaWYgKGNvbnRlbnQubGVuZ3RoIDwgMHg4MCkge1xuICAgIHZhciBoZWFkZXIgPSBuZXcgQnVmZmVyKDIpO1xuICAgIGhlYWRlclswXSA9IGVuY29kZWRUYWc7XG4gICAgaGVhZGVyWzFdID0gY29udGVudC5sZW5ndGg7XG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWyBoZWFkZXIsIGNvbnRlbnQgXSk7XG4gIH1cblxuICAvLyBMb25nIGZvcm1cbiAgLy8gQ291bnQgb2N0ZXRzIHJlcXVpcmVkIHRvIHN0b3JlIGxlbmd0aFxuICB2YXIgbGVuT2N0ZXRzID0gMTtcbiAgZm9yICh2YXIgaSA9IGNvbnRlbnQubGVuZ3RoOyBpID49IDB4MTAwOyBpID4+PSA4KVxuICAgIGxlbk9jdGV0cysrO1xuXG4gIHZhciBoZWFkZXIgPSBuZXcgQnVmZmVyKDEgKyAxICsgbGVuT2N0ZXRzKTtcbiAgaGVhZGVyWzBdID0gZW5jb2RlZFRhZztcbiAgaGVhZGVyWzFdID0gMHg4MCB8IGxlbk9jdGV0cztcblxuICBmb3IgKHZhciBpID0gMSArIGxlbk9jdGV0cywgaiA9IGNvbnRlbnQubGVuZ3RoOyBqID4gMDsgaS0tLCBqID4+PSA4KVxuICAgIGhlYWRlcltpXSA9IGogJiAweGZmO1xuXG4gIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFsgaGVhZGVyLCBjb250ZW50IF0pO1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2VuY29kZVN0ciA9IGZ1bmN0aW9uIGVuY29kZVN0cihzdHIsIHRhZykge1xuICBpZiAodGFnID09PSAnYml0c3RyJykge1xuICAgIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFsgc3RyLnVudXNlZCB8IDAsIHN0ci5kYXRhIF0pO1xuICB9IGVsc2UgaWYgKHRhZyA9PT0gJ2JtcHN0cicpIHtcbiAgICB2YXIgYnVmID0gbmV3IEJ1ZmZlcihzdHIubGVuZ3RoICogMik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ1Zi53cml0ZVVJbnQxNkJFKHN0ci5jaGFyQ29kZUF0KGkpLCBpICogMik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKGJ1Zik7XG4gIH0gZWxzZSBpZiAodGFnID09PSAnbnVtc3RyJykge1xuICAgIGlmICghdGhpcy5faXNOdW1zdHIoc3RyKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoJ0VuY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgc3VwcG9ydHMgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25seSBkaWdpdHMgYW5kIHNwYWNlJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHN0cik7XG4gIH0gZWxzZSBpZiAodGFnID09PSAncHJpbnRzdHInKSB7XG4gICAgaWYgKCF0aGlzLl9pc1ByaW50c3RyKHN0cikpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCdFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgc3VwcG9ydHMgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25seSBsYXRpbiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaWdpdHMsIHNwYWNlLCBhcG9zdHJvcGhlLCBsZWZ0IGFuZCByaWd0aCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXJlbnRoZXNpcywgcGx1cyBzaWduLCBjb21tYSwgaHlwaGVuLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb3QsIHNsYXNoLCBjb2xvbiwgZXF1YWwgc2lnbiwgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncXVlc3Rpb24gbWFyaycpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzdHIpO1xuICB9IGVsc2UgaWYgKC9zdHIkLy50ZXN0KHRhZykpIHtcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihzdHIpO1xuICB9IGVsc2UgaWYgKHRhZyA9PT0gJ29iakRlc2MnKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoc3RyKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcignRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICcgKyB0YWcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgdW5zdXBwb3J0ZWQnKTtcbiAgfVxufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2VuY29kZU9iamlkID0gZnVuY3Rpb24gZW5jb2RlT2JqaWQoaWQsIHZhbHVlcywgcmVsYXRpdmUpIHtcbiAgaWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoIXZhbHVlcylcbiAgICAgIHJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCdzdHJpbmcgb2JqaWQgZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIGZvdW5kJyk7XG4gICAgaWYgKCF2YWx1ZXMuaGFzT3duUHJvcGVydHkoaWQpKVxuICAgICAgcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoJ29iamlkIG5vdCBmb3VuZCBpbiB2YWx1ZXMgbWFwJyk7XG4gICAgaWQgPSB2YWx1ZXNbaWRdLnNwbGl0KC9bXFxzXFwuXSsvZyk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZC5sZW5ndGg7IGkrKylcbiAgICAgIGlkW2ldIHw9IDA7XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpZCkpIHtcbiAgICBpZCA9IGlkLnNsaWNlKCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZC5sZW5ndGg7IGkrKylcbiAgICAgIGlkW2ldIHw9IDA7XG4gIH1cblxuICBpZiAoIUFycmF5LmlzQXJyYXkoaWQpKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoJ29iamlkKCkgc2hvdWxkIGJlIGVpdGhlciBhcnJheSBvciBzdHJpbmcsICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnb3Q6ICcgKyBKU09OLnN0cmluZ2lmeShpZCkpO1xuICB9XG5cbiAgaWYgKCFyZWxhdGl2ZSkge1xuICAgIGlmIChpZFsxXSA+PSA0MClcbiAgICAgIHJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCdTZWNvbmQgb2JqaWQgaWRlbnRpZmllciBPT0InKTtcbiAgICBpZC5zcGxpY2UoMCwgMiwgaWRbMF0gKiA0MCArIGlkWzFdKTtcbiAgfVxuXG4gIC8vIENvdW50IG51bWJlciBvZiBvY3RldHNcbiAgdmFyIHNpemUgPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGlkLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkZW50ID0gaWRbaV07XG4gICAgZm9yIChzaXplKys7IGlkZW50ID49IDB4ODA7IGlkZW50ID4+PSA3KVxuICAgICAgc2l6ZSsrO1xuICB9XG5cbiAgdmFyIG9iamlkID0gbmV3IEJ1ZmZlcihzaXplKTtcbiAgdmFyIG9mZnNldCA9IG9iamlkLmxlbmd0aCAtIDE7XG4gIGZvciAodmFyIGkgPSBpZC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIHZhciBpZGVudCA9IGlkW2ldO1xuICAgIG9iamlkW29mZnNldC0tXSA9IGlkZW50ICYgMHg3ZjtcbiAgICB3aGlsZSAoKGlkZW50ID4+PSA3KSA+IDApXG4gICAgICBvYmppZFtvZmZzZXQtLV0gPSAweDgwIHwgKGlkZW50ICYgMHg3Zik7XG4gIH1cblxuICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihvYmppZCk7XG59O1xuXG5mdW5jdGlvbiB0d28obnVtKSB7XG4gIGlmIChudW0gPCAxMClcbiAgICByZXR1cm4gJzAnICsgbnVtO1xuICBlbHNlXG4gICAgcmV0dXJuIG51bTtcbn1cblxuREVSTm9kZS5wcm90b3R5cGUuX2VuY29kZVRpbWUgPSBmdW5jdGlvbiBlbmNvZGVUaW1lKHRpbWUsIHRhZykge1xuICB2YXIgc3RyO1xuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWUpO1xuXG4gIGlmICh0YWcgPT09ICdnZW50aW1lJykge1xuICAgIHN0ciA9IFtcbiAgICAgIHR3byhkYXRlLmdldEZ1bGxZZWFyKCkpLFxuICAgICAgdHdvKGRhdGUuZ2V0VVRDTW9udGgoKSArIDEpLFxuICAgICAgdHdvKGRhdGUuZ2V0VVRDRGF0ZSgpKSxcbiAgICAgIHR3byhkYXRlLmdldFVUQ0hvdXJzKCkpLFxuICAgICAgdHdvKGRhdGUuZ2V0VVRDTWludXRlcygpKSxcbiAgICAgIHR3byhkYXRlLmdldFVUQ1NlY29uZHMoKSksXG4gICAgICAnWidcbiAgICBdLmpvaW4oJycpO1xuICB9IGVsc2UgaWYgKHRhZyA9PT0gJ3V0Y3RpbWUnKSB7XG4gICAgc3RyID0gW1xuICAgICAgdHdvKGRhdGUuZ2V0RnVsbFllYXIoKSAlIDEwMCksXG4gICAgICB0d28oZGF0ZS5nZXRVVENNb250aCgpICsgMSksXG4gICAgICB0d28oZGF0ZS5nZXRVVENEYXRlKCkpLFxuICAgICAgdHdvKGRhdGUuZ2V0VVRDSG91cnMoKSksXG4gICAgICB0d28oZGF0ZS5nZXRVVENNaW51dGVzKCkpLFxuICAgICAgdHdvKGRhdGUuZ2V0VVRDU2Vjb25kcygpKSxcbiAgICAgICdaJ1xuICAgIF0uam9pbignJyk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5yZXBvcnRlci5lcnJvcignRW5jb2RpbmcgJyArIHRhZyArICcgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCcpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX2VuY29kZVN0cihzdHIsICdvY3RzdHInKTtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVOdWxsID0gZnVuY3Rpb24gZW5jb2RlTnVsbCgpIHtcbiAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoJycpO1xufTtcblxuREVSTm9kZS5wcm90b3R5cGUuX2VuY29kZUludCA9IGZ1bmN0aW9uIGVuY29kZUludChudW0sIHZhbHVlcykge1xuICBpZiAodHlwZW9mIG51bSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoIXZhbHVlcylcbiAgICAgIHJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCdTdHJpbmcgaW50IG9yIGVudW0gZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwJyk7XG4gICAgaWYgKCF2YWx1ZXMuaGFzT3duUHJvcGVydHkobnVtKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoJ1ZhbHVlcyBtYXAgZG9lc25cXCd0IGNvbnRhaW46ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkobnVtKSk7XG4gICAgfVxuICAgIG51bSA9IHZhbHVlc1tudW1dO1xuICB9XG5cbiAgLy8gQmlnbnVtLCBhc3N1bWUgYmlnIGVuZGlhblxuICBpZiAodHlwZW9mIG51bSAhPT0gJ251bWJlcicgJiYgIUJ1ZmZlci5pc0J1ZmZlcihudW0pKSB7XG4gICAgdmFyIG51bUFycmF5ID0gbnVtLnRvQXJyYXkoKTtcbiAgICBpZiAoIW51bS5zaWduICYmIG51bUFycmF5WzBdICYgMHg4MCkge1xuICAgICAgbnVtQXJyYXkudW5zaGlmdCgwKTtcbiAgICB9XG4gICAgbnVtID0gbmV3IEJ1ZmZlcihudW1BcnJheSk7XG4gIH1cblxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKG51bSkpIHtcbiAgICB2YXIgc2l6ZSA9IG51bS5sZW5ndGg7XG4gICAgaWYgKG51bS5sZW5ndGggPT09IDApXG4gICAgICBzaXplKys7XG5cbiAgICB2YXIgb3V0ID0gbmV3IEJ1ZmZlcihzaXplKTtcbiAgICBudW0uY29weShvdXQpO1xuICAgIGlmIChudW0ubGVuZ3RoID09PSAwKVxuICAgICAgb3V0WzBdID0gMFxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKG91dCk7XG4gIH1cblxuICBpZiAobnVtIDwgMHg4MClcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihudW0pO1xuXG4gIGlmIChudW0gPCAweDEwMClcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMCwgbnVtXSk7XG5cbiAgdmFyIHNpemUgPSAxO1xuICBmb3IgKHZhciBpID0gbnVtOyBpID49IDB4MTAwOyBpID4+PSA4KVxuICAgIHNpemUrKztcblxuICB2YXIgb3V0ID0gbmV3IEFycmF5KHNpemUpO1xuICBmb3IgKHZhciBpID0gb3V0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgb3V0W2ldID0gbnVtICYgMHhmZjtcbiAgICBudW0gPj49IDg7XG4gIH1cbiAgaWYob3V0WzBdICYgMHg4MCkge1xuICAgIG91dC51bnNoaWZ0KDApO1xuICB9XG5cbiAgcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIobmV3IEJ1ZmZlcihvdXQpKTtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl9lbmNvZGVCb29sID0gZnVuY3Rpb24gZW5jb2RlQm9vbCh2YWx1ZSkge1xuICByZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcih2YWx1ZSA/IDB4ZmYgOiAwKTtcbn07XG5cbkRFUk5vZGUucHJvdG90eXBlLl91c2UgPSBmdW5jdGlvbiB1c2UoZW50aXR5LCBvYmopIHtcbiAgaWYgKHR5cGVvZiBlbnRpdHkgPT09ICdmdW5jdGlvbicpXG4gICAgZW50aXR5ID0gZW50aXR5KG9iaik7XG4gIHJldHVybiBlbnRpdHkuX2dldEVuY29kZXIoJ2RlcicpLnRyZWU7XG59O1xuXG5ERVJOb2RlLnByb3RvdHlwZS5fc2tpcERlZmF1bHQgPSBmdW5jdGlvbiBza2lwRGVmYXVsdChkYXRhQnVmZmVyLCByZXBvcnRlciwgcGFyZW50KSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX2Jhc2VTdGF0ZTtcbiAgdmFyIGk7XG4gIGlmIChzdGF0ZVsnZGVmYXVsdCddID09PSBudWxsKVxuICAgIHJldHVybiBmYWxzZTtcblxuICB2YXIgZGF0YSA9IGRhdGFCdWZmZXIuam9pbigpO1xuICBpZiAoc3RhdGUuZGVmYXVsdEJ1ZmZlciA9PT0gdW5kZWZpbmVkKVxuICAgIHN0YXRlLmRlZmF1bHRCdWZmZXIgPSB0aGlzLl9lbmNvZGVWYWx1ZShzdGF0ZVsnZGVmYXVsdCddLCByZXBvcnRlciwgcGFyZW50KS5qb2luKCk7XG5cbiAgaWYgKGRhdGEubGVuZ3RoICE9PSBzdGF0ZS5kZWZhdWx0QnVmZmVyLmxlbmd0aClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgZm9yIChpPTA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKVxuICAgIGlmIChkYXRhW2ldICE9PSBzdGF0ZS5kZWZhdWx0QnVmZmVyW2ldKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiB0cnVlO1xufTtcblxuLy8gVXRpbGl0eSBtZXRob2RzXG5cbmZ1bmN0aW9uIGVuY29kZVRhZyh0YWcsIHByaW1pdGl2ZSwgY2xzLCByZXBvcnRlcikge1xuICB2YXIgcmVzO1xuXG4gIGlmICh0YWcgPT09ICdzZXFvZicpXG4gICAgdGFnID0gJ3NlcSc7XG4gIGVsc2UgaWYgKHRhZyA9PT0gJ3NldG9mJylcbiAgICB0YWcgPSAnc2V0JztcblxuICBpZiAoZGVyLnRhZ0J5TmFtZS5oYXNPd25Qcm9wZXJ0eSh0YWcpKVxuICAgIHJlcyA9IGRlci50YWdCeU5hbWVbdGFnXTtcbiAgZWxzZSBpZiAodHlwZW9mIHRhZyA9PT0gJ251bWJlcicgJiYgKHRhZyB8IDApID09PSB0YWcpXG4gICAgcmVzID0gdGFnO1xuICBlbHNlXG4gICAgcmV0dXJuIHJlcG9ydGVyLmVycm9yKCdVbmtub3duIHRhZzogJyArIHRhZyk7XG5cbiAgaWYgKHJlcyA+PSAweDFmKVxuICAgIHJldHVybiByZXBvcnRlci5lcnJvcignTXVsdGktb2N0ZXQgdGFnIGVuY29kaW5nIHVuc3VwcG9ydGVkJyk7XG5cbiAgaWYgKCFwcmltaXRpdmUpXG4gICAgcmVzIHw9IDB4MjA7XG5cbiAgcmVzIHw9IChkZXIudGFnQ2xhc3NCeU5hbWVbY2xzIHx8ICd1bml2ZXJzYWwnXSA8PCA2KTtcblxuICByZXR1cm4gcmVzO1xufVxuIiwidmFyIGVuY29kZXJzID0gZXhwb3J0cztcblxuZW5jb2RlcnMuZGVyID0gcmVxdWlyZSgnLi9kZXInKTtcbmVuY29kZXJzLnBlbSA9IHJlcXVpcmUoJy4vcGVtJyk7XG4iLCJ2YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuXG52YXIgREVSRW5jb2RlciA9IHJlcXVpcmUoJy4vZGVyJyk7XG5cbmZ1bmN0aW9uIFBFTUVuY29kZXIoZW50aXR5KSB7XG4gIERFUkVuY29kZXIuY2FsbCh0aGlzLCBlbnRpdHkpO1xuICB0aGlzLmVuYyA9ICdwZW0nO1xufTtcbmluaGVyaXRzKFBFTUVuY29kZXIsIERFUkVuY29kZXIpO1xubW9kdWxlLmV4cG9ydHMgPSBQRU1FbmNvZGVyO1xuXG5QRU1FbmNvZGVyLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUoZGF0YSwgb3B0aW9ucykge1xuICB2YXIgYnVmID0gREVSRW5jb2Rlci5wcm90b3R5cGUuZW5jb2RlLmNhbGwodGhpcywgZGF0YSk7XG5cbiAgdmFyIHAgPSBidWYudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB2YXIgb3V0ID0gWyAnLS0tLS1CRUdJTiAnICsgb3B0aW9ucy5sYWJlbCArICctLS0tLScgXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwLmxlbmd0aDsgaSArPSA2NClcbiAgICBvdXQucHVzaChwLnNsaWNlKGksIGkgKyA2NCkpO1xuICBvdXQucHVzaCgnLS0tLS1FTkQgJyArIG9wdGlvbnMubGFiZWwgKyAnLS0tLS0nKTtcbiAgcmV0dXJuIG91dC5qb2luKCdcXG4nKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTEyLTA4XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImFjbVwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFDTVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIENlcnRpZmljYXRlIE1hbmFnZXJcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkFDTVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJDZXJ0aWZpY2F0ZU1hbmFnZXJcIixcbiAgICBcInVpZFwiOiBcImFjbS0yMDE1LTEyLTA4XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NUb0NlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdWJqZWN0QWx0ZXJuYXRpdmVOYW1lc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEb21haW5WYWxpZGF0aW9uT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZXJpYWxcIjoge30sXG4gICAgICAgICAgICAgIFwiU3ViamVjdFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJc3N1ZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklzc3VlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkltcG9ydGVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJldm9rZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXZvY2F0aW9uUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5vdEJlZm9yZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOb3RBZnRlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJLZXlBbGdvcml0aG1cIjoge30sXG4gICAgICAgICAgICAgIFwiU2lnbmF0dXJlQWxnb3JpdGhtXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluVXNlQnlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkZhaWx1cmVSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZW5ld2FsU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlJlbmV3YWxTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgIFwiRG9tYWluVmFsaWRhdGlvbk9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiUmVuZXdhbFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRG9tYWluVmFsaWRhdGlvbk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJLZXlVc2FnZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFeHRlbmRlZEtleVVzYWdlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk9JRFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDZXJ0aWZpY2F0ZUF1dGhvcml0eUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZW5ld2FsRWxpZ2liaWxpdHlcIjoge30sXG4gICAgICAgICAgICAgIFwiT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRXhwb3J0Q2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCIsXG4gICAgICAgICAgXCJQYXNzcGhyYXNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUGFzc3BocmFzZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCIsXG4gICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlXCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVDaGFpblwiOiB7fSxcbiAgICAgICAgICBcIlByaXZhdGVLZXlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlXCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVDaGFpblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkltcG9ydENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiLFxuICAgICAgICAgIFwiUHJpdmF0ZUtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YXRlS2V5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIixcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVDaGFpblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlU3RhdHVzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImV4dGVuZGVkS2V5VXNhZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImtleVVzYWdlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJrZXlUeXBlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlU3VtbWFyeUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbUNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVxdWVzdENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWYWxpZGF0aW9uTWV0aG9kXCI6IHt9LFxuICAgICAgICAgIFwiU3ViamVjdEFsdGVybmF0aXZlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkRvbWFpblZhbGlkYXRpb25PcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiVmFsaWRhdGlvbkRvbWFpblwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsaWRhdGlvbkRvbWFpblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXV0aG9yaXR5QXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNlbmRWYWxpZGF0aW9uRW1haWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlQXJuXCIsXG4gICAgICAgICAgXCJEb21haW5cIixcbiAgICAgICAgICBcIlZhbGlkYXRpb25Eb21haW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgXCJWYWxpZGF0aW9uRG9tYWluXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ2VydGlmaWNhdGVPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiLFxuICAgICAgICAgIFwiT3B0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsaWRhdGlvbkVtYWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZGF0aW9uRG9tYWluXCI6IHt9LFxuICAgICAgICAgIFwiVmFsaWRhdGlvblN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlUmVjb3JkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgICAgICBcIlR5cGVcIixcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRhdGlvbk1ldGhvZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2VydGlmaWNhdGVUcmFuc3BhcmVuY3lMb2dnaW5nUHJlZmVyZW5jZVwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNlcnRpZmljYXRlU3VtbWFyeUxpc3RcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJDZXJ0aWZpY2F0ZVZhbGlkYXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDYwLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDZXJ0aWZpY2F0ZVwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJTVUNDRVNTXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNlcnRpZmljYXRlLkRvbWFpblZhbGlkYXRpb25PcHRpb25zW10uVmFsaWRhdGlvblN0YXR1c1wiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUEVORElOR19WQUxJREFUSU9OXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNlcnRpZmljYXRlLkRvbWFpblZhbGlkYXRpb25PcHRpb25zW10uVmFsaWRhdGlvblN0YXR1c1wiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkZBSUxFRFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDZXJ0aWZpY2F0ZS5TdGF0dXNcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTA3LTA5XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImFwaWdhdGV3YXlcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gQVBJIEdhdGV3YXlcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkFQSSBHYXRld2F5XCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImFwaWdhdGV3YXktMjAxNS0wNy0wOVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVBcGlLZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaWtleXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiZW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2VuZXJhdGVEaXN0aW5jdElkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fSxcbiAgICAgICAgICBcInN0YWdlS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3VzdG9tZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vYXV0aG9yaXplcnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwidHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJwcm92aWRlckFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXV0aFR5cGVcIjoge30sXG4gICAgICAgICAgXCJhdXRob3JpemVyVXJpXCI6IHt9LFxuICAgICAgICAgIFwiYXV0aG9yaXplckNyZWRlbnRpYWxzXCI6IHt9LFxuICAgICAgICAgIFwiaWRlbnRpdHlTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJpZGVudGl0eVZhbGlkYXRpb25FeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiYXV0aG9yaXplclJlc3VsdFR0bEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUJhc2VQYXRoTWFwcGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZG9tYWlubmFtZXMve2RvbWFpbl9uYW1lfS9iYXNlcGF0aG1hcHBpbmdzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvbWFpbl9uYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYmFzZVBhdGhcIjoge30sXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge30sXG4gICAgICAgICAgXCJzdGFnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEZXBsb3ltZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZGVwbG95bWVudHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiY2FjaGVDbHVzdGVyRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2FjaGVDbHVzdGVyU2l6ZVwiOiB7fSxcbiAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjYW5hcnlTZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwicGVyY2VudFRyYWZmaWNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3RhZ2VWYXJpYWJsZU92ZXJyaWRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ1c2VTdGFnZUNhY2hlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRG9jdW1lbnRhdGlvblBhcnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kb2N1bWVudGF0aW9uL3BhcnRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImxvY2F0aW9uXCIsXG4gICAgICAgICAgXCJwcm9wZXJ0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURvY3VtZW50YXRpb25WZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi92ZXJzaW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uVmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEb21haW5OYW1lXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9kb21haW5uYW1lc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVQcml2YXRlS2V5XCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVDaGFpblwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwicmVnaW9uYWxDZXJ0aWZpY2F0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZWdpb25hbENlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiZW5kcG9pbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTW9kZWxcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9tb2RlbHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwiY29udGVudFR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInNjaGVtYVwiOiB7fSxcbiAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXF1ZXN0VmFsaWRhdG9yXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVxdWVzdHZhbGlkYXRvcnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInZhbGlkYXRlUmVxdWVzdEJvZHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZhbGlkYXRlUmVxdWVzdFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3BhcmVudF9pZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicGFyZW50SWRcIixcbiAgICAgICAgICBcInBhdGhQYXJ0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJlbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhcmVudF9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGhQYXJ0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXN0QXBpXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiY2xvbmVGcm9tXCI6IHt9LFxuICAgICAgICAgIFwiYmluYXJ5TWVkaWFUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtaW5pbXVtQ29tcHJlc3Npb25TaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhcGlLZXlTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJlbmRwb2ludENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9saWN5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdGFnZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3N0YWdlc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIixcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJjYWNoZUNsdXN0ZXJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjYWNoZUNsdXN0ZXJTaXplXCI6IHt9LFxuICAgICAgICAgIFwidmFyaWFibGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvY3VtZW50YXRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiY2FuYXJ5U2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVVc2FnZVBsYW5cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3VzYWdlcGxhbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiYXBpU3RhZ2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aHJvdHRsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicXVvdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVXNhZ2VQbGFuS2V5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zL3t1c2FnZXBsYW5JZH0va2V5c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIixcbiAgICAgICAgICBcImtleUlkXCIsXG4gICAgICAgICAgXCJrZXlUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNhZ2VwbGFuSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJrZXlJZFwiOiB7fSxcbiAgICAgICAgICBcImtleVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZwY0xpbmtcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3ZwY2xpbmtzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJ0YXJnZXRBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInRhcmdldEFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBcGlLZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaWtleXMve2FwaV9LZXl9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcGlLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBpS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXBpX0tleVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9hdXRob3JpemVycy97YXV0aG9yaXplcl9pZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiYXV0aG9yaXplcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRob3JpemVySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdXRob3JpemVyX2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQmFzZVBhdGhNYXBwaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9kb21haW5uYW1lcy97ZG9tYWluX25hbWV9L2Jhc2VwYXRobWFwcGluZ3Mve2Jhc2VfcGF0aH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIixcbiAgICAgICAgICBcImJhc2VQYXRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb21haW5fbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJhc2VQYXRoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmFzZV9wYXRoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2xpZW50Q2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NsaWVudGNlcnRpZmljYXRlcy97Y2xpZW50Y2VydGlmaWNhdGVfaWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjbGllbnRDZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsaWVudENlcnRpZmljYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRjZXJ0aWZpY2F0ZV9pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURlcGxveW1lbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kZXBsb3ltZW50cy97ZGVwbG95bWVudF9pZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiZGVwbG95bWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXBsb3ltZW50X2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRG9jdW1lbnRhdGlvblBhcnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kb2N1bWVudGF0aW9uL3BhcnRzL3twYXJ0X2lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uUGFydElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uUGFydElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFydF9pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURvY3VtZW50YXRpb25WZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi92ZXJzaW9ucy97ZG9jX3ZlcnNpb259XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImRvY3VtZW50YXRpb25WZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvY192ZXJzaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRG9tYWluTmFtZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZG9tYWlubmFtZXMve2RvbWFpbl9uYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkb21haW5OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG9tYWluX25hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVHYXRld2F5UmVzcG9uc2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9nYXRld2F5cmVzcG9uc2VzL3tyZXNwb25zZV90eXBlfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNwb25zZVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc3BvbnNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3BvbnNlX3R5cGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJbnRlZ3JhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfS9pbnRlZ3JhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJbnRlZ3JhdGlvblJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9L2ludGVncmF0aW9uL3Jlc3BvbnNlcy97c3RhdHVzX2NvZGV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIixcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNfY29kZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU1ldGhvZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNZXRob2RSZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfS9yZXNwb25zZXMve3N0YXR1c19jb2RlfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCIsXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzX2NvZGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNb2RlbFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L21vZGVscy97bW9kZWxfbmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwibW9kZWxOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtb2RlbE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtb2RlbF9uYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVxdWVzdFZhbGlkYXRvclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3JlcXVlc3R2YWxpZGF0b3JzL3tyZXF1ZXN0dmFsaWRhdG9yX2lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXF1ZXN0VmFsaWRhdG9ySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVlc3RWYWxpZGF0b3JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcXVlc3R2YWxpZGF0b3JfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJlc3RBcGlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdGFnZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3N0YWdlcy97c3RhZ2VfbmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFnZV9uYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVXNhZ2VQbGFuXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zL3t1c2FnZXBsYW5JZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNhZ2VwbGFuSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVVc2FnZVBsYW5LZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3VzYWdlcGxhbnMve3VzYWdlcGxhbklkfS9rZXlzL3trZXlJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCIsXG4gICAgICAgICAgXCJrZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzYWdlcGxhbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2V5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZwY0xpbmtcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3ZwY2xpbmtzL3t2cGNsaW5rX2lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidnBjTGlua0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZwY0xpbmtJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY2xpbmtfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJGbHVzaFN0YWdlQXV0aG9yaXplcnNDYWNoZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3N0YWdlcy97c3RhZ2VfbmFtZX0vY2FjaGUvYXV0aG9yaXplcnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFnZV9uYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRmx1c2hTdGFnZUNhY2hlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vc3RhZ2VzL3tzdGFnZV9uYW1lfS9jYWNoZS9kYXRhXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhZ2VfbmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdlbmVyYXRlQ2xpZW50Q2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NsaWVudGNlcnRpZmljYXRlc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QWNjb3VudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYWNjb3VudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBcGlLZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaWtleXMve2FwaV9LZXl9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBpS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwaUtleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFwaV9LZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbmNsdWRlVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluY2x1ZGVWYWx1ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBcGlLZXlzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGlrZXlzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lUXVlcnlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjdXN0b21lcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXN0b21lcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5jbHVkZVZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5jbHVkZVZhbHVlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIndhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9hdXRob3JpemVycy97YXV0aG9yaXplcl9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImF1dGhvcml6ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXV0aG9yaXplcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0aG9yaXplcl9pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBdXRob3JpemVyc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2F1dGhvcml6ZXJzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCYXNlUGF0aE1hcHBpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RvbWFpbm5hbWVzL3tkb21haW5fbmFtZX0vYmFzZXBhdGhtYXBwaW5ncy97YmFzZV9wYXRofVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIixcbiAgICAgICAgICBcImJhc2VQYXRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkb21haW5fbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJhc2VQYXRoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmFzZV9wYXRoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJhc2VQYXRoTWFwcGluZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RvbWFpbm5hbWVzL3tkb21haW5fbmFtZX0vYmFzZXBhdGhtYXBwaW5nc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvbWFpbl9uYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q2xpZW50Q2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NsaWVudGNlcnRpZmljYXRlcy97Y2xpZW50Y2VydGlmaWNhdGVfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2xpZW50Q2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbGllbnRDZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50Y2VydGlmaWNhdGVfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENsaWVudENlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2xpZW50Y2VydGlmaWNhdGVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGVwbG95bWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RlcGxveW1lbnRzL3tkZXBsb3ltZW50X2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiZGVwbG95bWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXBsb3ltZW50X2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW1iZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW1iZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGVwbG95bWVudHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kZXBsb3ltZW50c1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RG9jdW1lbnRhdGlvblBhcnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kb2N1bWVudGF0aW9uL3BhcnRzL3twYXJ0X2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblBhcnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblBhcnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhcnRfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RG9jdW1lbnRhdGlvblBhcnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi9wYXJ0c1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVRdWVyeVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhdGhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2NhdGlvblN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibG9jYXRpb25TdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb2N1bWVudGF0aW9uVmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RvY3VtZW50YXRpb24vdmVyc2lvbnMve2RvY192ZXJzaW9ufVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiZG9jdW1lbnRhdGlvblZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvY3VtZW50YXRpb25WZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG9jX3ZlcnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RG9jdW1lbnRhdGlvblZlcnNpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi92ZXJzaW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RG9tYWluTmFtZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZG9tYWlubmFtZXMve2RvbWFpbl9uYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvbWFpbl9uYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb21haW5OYW1lc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZG9tYWlubmFtZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRFeHBvcnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9zdGFnZXMve3N0YWdlX25hbWV9L2V4cG9ydHMve2V4cG9ydF90eXBlfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIixcbiAgICAgICAgICBcImV4cG9ydFR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YWdlX25hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleHBvcnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwb3J0X3R5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWNjZXB0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFjY2VwdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29udGVudERpc3Bvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1EaXNwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvZHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJib2R5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0R2F0ZXdheVJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZ2F0ZXdheXJlc3BvbnNlcy97cmVzcG9uc2VfdHlwZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc3BvbnNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzcG9uc2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzcG9uc2VfdHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzQyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0R2F0ZXdheVJlc3BvbnNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2dhdGV3YXlyZXNwb25zZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnRlZ3JhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfS9pbnRlZ3JhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnRlZ3JhdGlvblJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9L2ludGVncmF0aW9uL3Jlc3BvbnNlcy97c3RhdHVzX2NvZGV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCIsXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzX2NvZGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE1ldGhvZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNZXRob2RSZXNwb25zZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfS9yZXNwb25zZXMve3N0YXR1c19jb2RlfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiLFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c19jb2RlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNb2RlbFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L21vZGVscy97bW9kZWxfbmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcIm1vZGVsTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibW9kZWxOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9kZWxfbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZsYXR0ZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZsYXR0ZW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE1vZGVsVGVtcGxhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9tb2RlbHMve21vZGVsX25hbWV9L2RlZmF1bHRfdGVtcGxhdGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcIm1vZGVsTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibW9kZWxOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9kZWxfbmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TW9kZWxzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vbW9kZWxzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVxdWVzdFZhbGlkYXRvclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3JlcXVlc3R2YWxpZGF0b3JzL3tyZXF1ZXN0dmFsaWRhdG9yX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVxdWVzdFZhbGlkYXRvcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXF1ZXN0VmFsaWRhdG9ySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXF1ZXN0dmFsaWRhdG9yX2lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZXF1ZXN0VmFsaWRhdG9yc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3JlcXVlc3R2YWxpZGF0b3JzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW1iZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW1iZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlc291cmNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW1iZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW1iZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVzdEFwaVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlc3RBcGlzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNka1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3N0YWdlcy97c3RhZ2VfbmFtZX0vc2Rrcy97c2RrX3R5cGV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiLFxuICAgICAgICAgIFwic2RrVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhZ2VfbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNka1R5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZGtfdHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb250ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRlbnREaXNwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRGlzcG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib2R5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiYm9keVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNka1R5cGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nka3R5cGVzL3tzZGt0eXBlX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2RrdHlwZV9pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzR2XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U2RrVHlwZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nka3R5cGVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR2XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U3RhZ2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9zdGFnZXMve3N0YWdlX25hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YWdlX25hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFN0YWdlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3N0YWdlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXBsb3ltZW50SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpdGVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RhZ3Mve3Jlc291cmNlX2Fybn1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2FyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VXNhZ2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3VzYWdlcGxhbnMve3VzYWdlcGxhbklkfS91c2FnZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCIsXG4gICAgICAgICAgXCJzdGFydERhdGVcIixcbiAgICAgICAgICBcImVuZERhdGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2FnZXBsYW5JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtleUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXJ0RGF0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnREYXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW5kRGF0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5kRGF0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzU4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VXNhZ2VQbGFuXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi91c2FnZXBsYW5zL3t1c2FnZXBsYW5JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzYWdlcGxhbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRVc2FnZVBsYW5LZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3VzYWdlcGxhbnMve3VzYWdlcGxhbklkfS9rZXlzL3trZXlJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCIsXG4gICAgICAgICAgXCJrZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzYWdlcGxhbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2V5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VXNhZ2VQbGFuS2V5c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdXNhZ2VwbGFucy97dXNhZ2VwbGFuSWR9L2tleXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzYWdlcGxhbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZVF1ZXJ5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFVzYWdlUGxhbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3VzYWdlcGxhbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtleUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRWcGNMaW5rXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92cGNsaW5rcy97dnBjbGlua19pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ2cGNMaW5rSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidnBjTGlua0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjbGlua19pZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VnBjTGlua3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3ZwY2xpbmtzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb3NpdGlvblwiOiB7fSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW1wb3J0QXBpS2V5c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpa2V5cz9tb2RlPWltcG9ydFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYm9keVwiLFxuICAgICAgICAgIFwiZm9ybWF0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJvZHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvcm1hdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZm9ybWF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbE9uV2FybmluZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZhaWxvbndhcm5pbmdzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcImJvZHlcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwid2FybmluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW1wb3J0RG9jdW1lbnRhdGlvblBhcnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZG9jdW1lbnRhdGlvbi9wYXJ0c1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiYm9keVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibW9kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWxPbldhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmYWlsb253YXJuaW5nc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvZHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJib2R5XCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIndhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkltcG9ydFJlc3RBcGlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzP21vZGU9aW1wb3J0XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJib2R5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZhaWxPbldhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmYWlsb253YXJuaW5nc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib2R5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiYm9keVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0R2F0ZXdheVJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vZ2F0ZXdheXJlc3BvbnNlcy97cmVzcG9uc2VfdHlwZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzcG9uc2VUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNwb25zZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNwb25zZV90eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgICBcInJlc3BvbnNlUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNwb25zZVRlbXBsYXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0MlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEludGVncmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9L2ludGVncmF0aW9uXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIixcbiAgICAgICAgICBcInR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJpbnRlZ3JhdGlvbkh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwTWV0aG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXJpXCI6IHt9LFxuICAgICAgICAgIFwiY29ubmVjdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJjcmVkZW50aWFsc1wiOiB7fSxcbiAgICAgICAgICBcInJlcXVlc3RQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVlc3RUZW1wbGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGFzc3Rocm91Z2hCZWhhdmlvclwiOiB7fSxcbiAgICAgICAgICBcImNhY2hlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiY2FjaGVLZXlQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRlbnRIYW5kbGluZ1wiOiB7fSxcbiAgICAgICAgICBcInRpbWVvdXRJbk1pbGxpc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRJbnRlZ3JhdGlvblJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9L2ludGVncmF0aW9uL3Jlc3BvbnNlcy97c3RhdHVzX2NvZGV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIixcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNfY29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlbGVjdGlvblBhdHRlcm5cIjoge30sXG4gICAgICAgICAgXCJyZXNwb25zZVBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzcG9uc2VUZW1wbGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29udGVudEhhbmRsaW5nXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRNZXRob2RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiLFxuICAgICAgICAgIFwiYXV0aG9yaXphdGlvblR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dGhvcml6YXRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiYXV0aG9yaXplcklkXCI6IHt9LFxuICAgICAgICAgIFwiYXBpS2V5UmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9wZXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZXF1ZXN0UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVxdWVzdE1vZGVsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXF1ZXN0VmFsaWRhdG9ySWRcIjoge30sXG4gICAgICAgICAgXCJhdXRob3JpemF0aW9uU2NvcGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0TWV0aG9kUmVzcG9uc2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH0vcmVzcG9uc2VzL3tzdGF0dXNfY29kZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiLFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c19jb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzcG9uc2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNwb25zZU1vZGVsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFJlc3RBcGlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiYm9keVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibW9kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWxPbldhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmYWlsb253YXJuaW5nc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib2R5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiYm9keVwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGFnUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RhZ3Mve3Jlc291cmNlX2Fybn1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCIsXG4gICAgICAgICAgXCJ0YWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfYXJuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXN0SW52b2tlQXV0aG9yaXplclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2F1dGhvcml6ZXJzL3thdXRob3JpemVyX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiYXV0aG9yaXplcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRob3JpemVySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdXRob3JpemVyX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaGVhZGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0aFdpdGhRdWVyeVN0cmluZ1wiOiB7fSxcbiAgICAgICAgICBcImJvZHlcIjoge30sXG4gICAgICAgICAgXCJzdGFnZVZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhZGRpdGlvbmFsQ29udGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbGllbnRTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxvZ1wiOiB7fSxcbiAgICAgICAgICBcImxhdGVuY3lcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByaW5jaXBhbElkXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiYXV0aG9yaXphdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsYWltc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXN0SW52b2tlTWV0aG9kXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVzb3VyY2VzL3tyZXNvdXJjZV9pZH0vbWV0aG9kcy97aHR0cF9tZXRob2R9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwTWV0aG9kXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaHR0cF9tZXRob2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRoV2l0aFF1ZXJ5U3RyaW5nXCI6IHt9LFxuICAgICAgICAgIFwiYm9keVwiOiB7fSxcbiAgICAgICAgICBcImhlYWRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsaWVudENlcnRpZmljYXRlSWRcIjoge30sXG4gICAgICAgICAgXCJzdGFnZVZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvZHlcIjoge30sXG4gICAgICAgICAgXCJoZWFkZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2dcIjoge30sXG4gICAgICAgICAgXCJsYXRlbmN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbnRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90YWdzL3tyZXNvdXJjZV9hcm59XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwidGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2FyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnS2V5c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFjY291bnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYWNjb3VudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFwaUtleVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGlrZXlzL3thcGlfS2V5fVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwaUtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcGlLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcGlfS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQXV0aG9yaXplclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vYXV0aG9yaXplcnMve2F1dGhvcml6ZXJfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJhdXRob3JpemVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dGhvcml6ZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dGhvcml6ZXJfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVCYXNlUGF0aE1hcHBpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZG9tYWlubmFtZXMve2RvbWFpbl9uYW1lfS9iYXNlcGF0aG1hcHBpbmdzL3tiYXNlX3BhdGh9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiLFxuICAgICAgICAgIFwiYmFzZVBhdGhcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvbWFpbl9uYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYmFzZVBhdGhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJiYXNlX3BhdGhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDbGllbnRDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jbGllbnRjZXJ0aWZpY2F0ZXMve2NsaWVudGNlcnRpZmljYXRlX2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNsaWVudENlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2xpZW50Q2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudGNlcnRpZmljYXRlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURlcGxveW1lbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RlcGxveW1lbnRzL3tkZXBsb3ltZW50X2lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwiZGVwbG95bWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXBsb3ltZW50X2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRG9jdW1lbnRhdGlvblBhcnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L2RvY3VtZW50YXRpb24vcGFydHMve3BhcnRfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uUGFydElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uUGFydElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFydF9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURvY3VtZW50YXRpb25WZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9kb2N1bWVudGF0aW9uL3ZlcnNpb25zL3tkb2NfdmVyc2lvbn1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcImRvY3VtZW50YXRpb25WZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2N1bWVudGF0aW9uVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvY192ZXJzaW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRG9tYWluTmFtZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9kb21haW5uYW1lcy97ZG9tYWluX25hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkb21haW5OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG9tYWluX25hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlR2F0ZXdheVJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9nYXRld2F5cmVzcG9uc2VzL3tyZXNwb25zZV90eXBlfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzcG9uc2VUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNwb25zZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNwb25zZV90eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0MlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUludGVncmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH0vaW50ZWdyYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVJbnRlZ3JhdGlvblJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH0vaW50ZWdyYXRpb24vcmVzcG9uc2VzL3tzdGF0dXNfY29kZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIixcbiAgICAgICAgICBcImh0dHBNZXRob2RcIixcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBNZXRob2RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJodHRwX21ldGhvZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNfY29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNZXRob2RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9L21ldGhvZHMve2h0dHBfbWV0aG9kfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZU1ldGhvZFJlc3BvbnNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9yZXNvdXJjZXMve3Jlc291cmNlX2lkfS9tZXRob2RzL3todHRwX21ldGhvZH0vcmVzcG9uc2VzL3tzdGF0dXNfY29kZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiLFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXN0QXBpSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXN0YXBpX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlX2lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh0dHBfbWV0aG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzQ29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c19jb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZU1vZGVsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Jlc3RhcGlzL3tyZXN0YXBpX2lkfS9tb2RlbHMve21vZGVsX25hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJtb2RlbE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1vZGVsTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vZGVsX25hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUmVxdWVzdFZhbGlkYXRvclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vcmVxdWVzdHZhbGlkYXRvcnMve3JlcXVlc3R2YWxpZGF0b3JfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXF1ZXN0VmFsaWRhdG9ySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVlc3RWYWxpZGF0b3JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcXVlc3R2YWxpZGF0b3JfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcmVzdGFwaXMve3Jlc3RhcGlfaWR9L3Jlc291cmNlcy97cmVzb3VyY2VfaWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzdEFwaUlkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzE4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUmVzdEFwaVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXN0QXBpSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzdEFwaUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzdGFwaV9pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTdGFnZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZXN0YXBpcy97cmVzdGFwaV9pZH0vc3RhZ2VzL3tzdGFnZV9uYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiLFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc3RBcGlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3RhcGlfaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFnZV9uYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF0Y2hPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVVzYWdlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3VzYWdlcGxhbnMve3VzYWdlcGxhbklkfS9rZXlzL3trZXlJZH0vdXNhZ2VcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ1c2FnZVBsYW5JZFwiLFxuICAgICAgICAgIFwia2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidXNhZ2VQbGFuSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2FnZXBsYW5JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtleUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzU4XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVXNhZ2VQbGFuXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3VzYWdlcGxhbnMve3VzYWdlcGxhbklkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInVzYWdlUGxhbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNhZ2VwbGFuSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRjaE9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVnBjTGlua1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92cGNsaW5rcy97dnBjbGlua19pZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ2cGNMaW5rSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidnBjTGlua0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjbGlua19pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGNoT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICBcInZhbHVlXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwiY3VzdG9tZXJJZFwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJlbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhZ2VLZXlzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwicHJvdmlkZXJBUk5zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhUeXBlXCI6IHt9LFxuICAgICAgICBcImF1dGhvcml6ZXJVcmlcIjoge30sXG4gICAgICAgIFwiYXV0aG9yaXplckNyZWRlbnRpYWxzXCI6IHt9LFxuICAgICAgICBcImlkZW50aXR5U291cmNlXCI6IHt9LFxuICAgICAgICBcImlkZW50aXR5VmFsaWRhdGlvbkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgIFwiYXV0aG9yaXplclJlc3VsdFR0bEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImJhc2VQYXRoXCI6IHt9LFxuICAgICAgICBcInJlc3RBcGlJZFwiOiB7fSxcbiAgICAgICAgXCJzdGFnZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXBpU3VtbWFyeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXV0aG9yaXphdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhcGlLZXlSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwicGF0aFwiOiB7fSxcbiAgICAgICAgXCJtZXRob2RcIjoge30sXG4gICAgICAgIFwic3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcImNlcnRpZmljYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJjZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgXCJjZXJ0aWZpY2F0ZVVwbG9hZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVnaW9uYWxEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcInJlZ2lvbmFsSG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICBcInJlZ2lvbmFsQ2VydGlmaWNhdGVOYW1lXCI6IHt9LFxuICAgICAgICBcInJlZ2lvbmFsQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgIFwiZGlzdHJpYnV0aW9uRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJkaXN0cmlidXRpb25Ib3N0ZWRab25lSWRcIjoge30sXG4gICAgICAgIFwiZW5kcG9pbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJzY2hlbWFcIjoge30sXG4gICAgICAgIFwiY29udGVudFR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInZhbGlkYXRlUmVxdWVzdEJvZHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcInZhbGlkYXRlUmVxdWVzdFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwicGFyZW50SWRcIjoge30sXG4gICAgICAgIFwicGF0aFBhcnRcIjoge30sXG4gICAgICAgIFwicGF0aFwiOiB7fSxcbiAgICAgICAgXCJyZXNvdXJjZU1ldGhvZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaHR0cE1ldGhvZFwiOiB7fSxcbiAgICAgICAgXCJhdXRob3JpemF0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgXCJhdXRob3JpemVySWRcIjoge30sXG4gICAgICAgIFwiYXBpS2V5UmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcInJlcXVlc3RWYWxpZGF0b3JJZFwiOiB7fSxcbiAgICAgICAgXCJvcGVyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICBcInJlcXVlc3RQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXF1ZXN0TW9kZWxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGhvZFJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0aG9kSW50ZWdyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhvcml6YXRpb25TY29wZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwic3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgXCJyZXNwb25zZVBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlc3BvbnNlTW9kZWxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJodHRwTWV0aG9kXCI6IHt9LFxuICAgICAgICBcInVyaVwiOiB7fSxcbiAgICAgICAgXCJjb25uZWN0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgIFwiY3JlZGVudGlhbHNcIjoge30sXG4gICAgICAgIFwicmVxdWVzdFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVxdWVzdFRlbXBsYXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXNzdGhyb3VnaEJlaGF2aW9yXCI6IHt9LFxuICAgICAgICBcImNvbnRlbnRIYW5kbGluZ1wiOiB7fSxcbiAgICAgICAgXCJ0aW1lb3V0SW5NaWxsaXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImNhY2hlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICBcImNhY2hlS2V5UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnRlZ3JhdGlvblJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJzdGF0dXNDb2RlXCI6IHt9LFxuICAgICAgICBcInNlbGVjdGlvblBhdHRlcm5cIjoge30sXG4gICAgICAgIFwicmVzcG9uc2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlc3BvbnNlVGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbnRlbnRIYW5kbGluZ1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJ3YXJuaW5nc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJiaW5hcnlNZWRpYVR5cGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1Db21wcmVzc2lvblNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImFwaUtleVNvdXJjZVwiOiB7fSxcbiAgICAgICAgXCJlbmRwb2ludENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicG9saWN5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicGVyY2VudFRyYWZmaWNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICBcInN0YWdlVmFyaWFibGVPdmVycmlkZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXNlU3RhZ2VDYWNoZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgIFwiY2xpZW50Q2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgXCJzdGFnZU5hbWVcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiY2FjaGVDbHVzdGVyRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY2FjaGVDbHVzdGVyU2l6ZVwiOiB7fSxcbiAgICAgICAgXCJjYWNoZUNsdXN0ZXJTdGF0dXNcIjoge30sXG4gICAgICAgIFwibWV0aG9kU2V0dGluZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIm1ldHJpY3NFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJsb2dnaW5nTGV2ZWxcIjoge30sXG4gICAgICAgICAgICAgIFwiZGF0YVRyYWNlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidGhyb3R0bGluZ0J1cnN0TGltaXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInRocm90dGxpbmdSYXRlTGltaXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY2FjaGluZ0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNhY2hlVHRsSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjYWNoZURhdGFFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInJlcXVpcmVBdXRob3JpemF0aW9uRm9yQ2FjaGVDb250cm9sXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ1bmF1dGhvcml6ZWRDYWNoZUNvbnRyb2xIZWFkZXJTdHJhdGVneVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJ2YXJpYWJsZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZG9jdW1lbnRhdGlvblZlcnNpb25cIjoge30sXG4gICAgICAgIFwiYWNjZXNzTG9nU2V0dGluZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImZvcm1hdFwiOiB7fSxcbiAgICAgICAgICAgIFwiZGVzdGluYXRpb25Bcm5cIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY2FuYXJ5U2V0dGluZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXFcIlxuICAgICAgICB9LFxuICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBpSWRcIjoge30sXG4gICAgICAgICAgXCJzdGFnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYnVyc3RMaW1pdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmF0ZUxpbWl0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm9mZnNldFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGVyaW9kXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJhcGlTdGFnZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICB9LFxuICAgICAgICBcInRocm90dGxlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJxdW90YVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvZHVjdENvZGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInZhbHVlXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcInRhcmdldEFybnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInN0YXR1c01lc3NhZ2VcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJjbGllbnRDZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcInBlbUVuY29kZWRDZXJ0aWZpY2F0ZVwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleHBpcmF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImNsb3Vkd2F0Y2hSb2xlQXJuXCI6IHt9LFxuICAgICAgICBcInRocm90dGxlU2V0dGluZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjBcIlxuICAgICAgICB9LFxuICAgICAgICBcImZlYXR1cmVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcImFwaUtleVZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJyZXNwb25zZVR5cGVcIjoge30sXG4gICAgICAgIFwic3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgXCJyZXNwb25zZVBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVzcG9uc2VUZW1wbGF0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVmYXVsdFJlc3BvbnNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICBcImZyaWVuZGx5TmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJjb25maWd1cmF0aW9uUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcImZyaWVuZGx5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZGVmYXVsdFZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1OFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidXNhZ2VQbGFuSWRcIjoge30sXG4gICAgICAgIFwic3RhcnREYXRlXCI6IHt9LFxuICAgICAgICBcImVuZERhdGVcIjoge30sXG4gICAgICAgIFwicG9zaXRpb25cIjoge30sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsdWVzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2NFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTNmJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm9wXCI6IHt9LFxuICAgICAgICAgIFwicGF0aFwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiZnJvbVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiR2V0QXBpS2V5c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIml0ZW1zXCJcbiAgICB9LFxuICAgIFwiR2V0QmFzZVBhdGhNYXBwaW5nc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIml0ZW1zXCJcbiAgICB9LFxuICAgIFwiR2V0Q2xpZW50Q2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaXRlbXNcIlxuICAgIH0sXG4gICAgXCJHZXREZXBsb3ltZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIml0ZW1zXCJcbiAgICB9LFxuICAgIFwiR2V0RG9tYWluTmFtZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldE1vZGVsc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIml0ZW1zXCJcbiAgICB9LFxuICAgIFwiR2V0UmVzb3VyY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaXRlbXNcIlxuICAgIH0sXG4gICAgXCJHZXRSZXN0QXBpc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwicG9zaXRpb25cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIml0ZW1zXCJcbiAgICB9LFxuICAgIFwiR2V0VXNhZ2VcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldFVzYWdlUGxhbktleXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldFVzYWdlUGxhbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcInBvc2l0aW9uXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpdGVtc1wiXG4gICAgfSxcbiAgICBcIkdldFZwY0xpbmtzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJwb3NpdGlvblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaXRlbXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTYtMDItMDZcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiYXV0b3NjYWxpbmdcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZ1wiLFxuICAgIFwic2VydmljZUlkXCI6IFwiQXBwbGljYXRpb24gQXV0byBTY2FsaW5nXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInNpZ25pbmdOYW1lXCI6IFwiYXBwbGljYXRpb24tYXV0b3NjYWxpbmdcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFueVNjYWxlRnJvbnRlbmRTZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJhcHBsaWNhdGlvbi1hdXRvc2NhbGluZy0yMDE2LTAyLTA2XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkRlbGV0ZVNjYWxpbmdQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIixcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU2NoZWR1bGVkQWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3RlclNjYWxhYmxlVGFyZ2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2FsYWJsZVRhcmdldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2NhbGFibGVUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiLFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIixcbiAgICAgICAgICAgICAgICBcIk1pbkNhcGFjaXR5XCIsXG4gICAgICAgICAgICAgICAgXCJNYXhDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiLFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJNaW5DYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4Q2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2FsaW5nQWN0aXZpdGllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2NhbGluZ0FjdGl2aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJBY3Rpdml0eUlkXCIsXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCIsXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiLFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICBcIkNhdXNlXCIsXG4gICAgICAgICAgICAgICAgXCJTdGFydFRpbWVcIixcbiAgICAgICAgICAgICAgICBcIlN0YXR1c0NvZGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aXZpdHlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNhdXNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2FsaW5nUG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5TmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjYWxpbmdQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlBvbGljeUFSTlwiLFxuICAgICAgICAgICAgICAgIFwiUG9saWN5TmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiLFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIixcbiAgICAgICAgICAgICAgICBcIlBvbGljeVR5cGVcIixcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQb2xpY3lBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvbGljeVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWxhcm1zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2hlZHVsZWRBY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uQVJOXCIsXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCIsXG4gICAgICAgICAgICAgICAgXCJTY2hlZHVsZVwiLFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25BUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTY2FsYWJsZVRhcmdldEFjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFNjYWxpbmdQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIixcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNjYWxhYmxlRGltZW5zaW9uXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9saWN5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkFsYXJtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0U2NoZWR1bGVkQWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJTY2hlZHVsZVwiOiB7fSxcbiAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2FsYWJsZVRhcmdldEFjdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJTY2FsYWJsZVRhcmdldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiU2NhbGFibGVEaW1lbnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmljZU5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTY2FsYWJsZURpbWVuc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk1pbkNhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWRqdXN0bWVudFR5cGVcIjoge30sXG4gICAgICAgIFwiU3RlcEFkanVzdG1lbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJTY2FsaW5nQWRqdXN0bWVudFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNZXRyaWNJbnRlcnZhbExvd2VyQm91bmRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNjYWxpbmdBZGp1c3RtZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJNaW5BZGp1c3RtZW50TWFnbml0dWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb29sZG93blwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWV0cmljQWdncmVnYXRpb25UeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRhcmdldFZhbHVlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhcmdldFZhbHVlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUHJlZGVmaW5lZE1ldHJpY1R5cGVcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUHJlZGVmaW5lZE1ldHJpY1R5cGVcIjoge30sXG4gICAgICAgICAgICBcIlJlc291cmNlTGFiZWxcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJNZXRyaWNOYW1lXCIsXG4gICAgICAgICAgICBcIk5hbWVzcGFjZVwiLFxuICAgICAgICAgICAgXCJTdGF0aXN0aWNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0YXRpc3RpY1wiOiB7fSxcbiAgICAgICAgICAgIFwiVW5pdFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTY2FsZU91dENvb2xkb3duXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTY2FsZUluQ29vbGRvd25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRpc2FibGVTY2FsZUluXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGFybU5hbWVcIixcbiAgICAgICAgICBcIkFsYXJtQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsYXJtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFsYXJtQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNaW5DYXBhY2l0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWF4Q2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVTY2FsYWJsZVRhcmdldHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU2NhbGFibGVUYXJnZXRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2FsaW5nQWN0aXZpdGllc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTY2FsaW5nQWN0aXZpdGllc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2NhbGluZ1BvbGljaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlNjYWxpbmdQb2xpY2llc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMS0wMS0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJhdXRvc2NhbGluZ1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQXV0byBTY2FsaW5nXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImF1dG9zY2FsaW5nLTIwMTEtMDEtMDFcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9hdXRvc2NhbGluZy5hbWF6b25hd3MuY29tL2RvYy8yMDExLTAxLTAxL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBdHRhY2hJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXR0YWNoTG9hZEJhbGFuY2VyVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBUk5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBdHRhY2hMb2FkQmFsYW5jZXJUYXJnZXRHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdHRhY2hMb2FkQmFsYW5jZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXR0YWNoTG9hZEJhbGFuY2Vyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbXBsZXRlTGlmZWN5Y2xlQWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rTmFtZVwiLFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkxpZmVjeWNsZUFjdGlvblJlc3VsdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGlmZWN5Y2xlQWN0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJMaWZlY3ljbGVBY3Rpb25SZXN1bHRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvbXBsZXRlTGlmZWN5Y2xlQWN0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQXV0b1NjYWxpbmdHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIk1pblNpemVcIixcbiAgICAgICAgICBcIk1heFNpemVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJNaW5TaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNpcmVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRDb29sZG93blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrR3JhY2VQZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBsYWNlbWVudEdyb3VwXCI6IHt9LFxuICAgICAgICAgIFwiVlBDWm9uZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUZXJtaW5hdGlvblBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ld0luc3RhbmNlc1Byb3RlY3RlZEZyb21TY2FsZUluXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rU3BlY2lmaWNhdGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJMaWZlY3ljbGVIb29rTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiTGlmZWN5Y2xlVHJhbnNpdGlvblwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMaWZlY3ljbGVIb29rTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxpZmVjeWNsZVRyYW5zaXRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJOb3RpZmljYXRpb25NZXRhZGF0YVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkhlYXJ0YmVhdFRpbWVvdXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRSZXN1bHRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOb3RpZmljYXRpb25UYXJnZXRBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZUxpbmtlZFJvbGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkltYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsYXNzaWNMaW5rVlBDSWRcIjoge30sXG4gICAgICAgICAgXCJDbGFzc2ljTGlua1ZQQ1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyRGF0YVwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJLZXJuZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIlJhbWRpc2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlTW9uaXRvcmluZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdFByaWNlXCI6IHt9LFxuICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHt9LFxuICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBsYWNlbWVudFRlbmFuY3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVPclVwZGF0ZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXV0b1NjYWxpbmdHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGb3JjZURlbGV0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVMaWZlY3ljbGVIb29rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rTmFtZVwiLFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIjoge30sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVMaWZlY3ljbGVIb29rUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlRvcGljQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVG9waWNBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU2NoZWR1bGVkQWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWNjb3VudExpbWl0c1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQWNjb3VudExpbWl0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heE51bWJlck9mQXV0b1NjYWxpbmdHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heE51bWJlck9mTGF1bmNoQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk51bWJlck9mQXV0b1NjYWxpbmdHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk51bWJlck9mTGF1bmNoQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWRqdXN0bWVudFR5cGVzXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBZGp1c3RtZW50VHlwZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBZGp1c3RtZW50VHlwZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFkanVzdG1lbnRUeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBdXRvU2NhbGluZ0dyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUF1dG9TY2FsaW5nR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICAgICAgICBcIk1pblNpemVcIixcbiAgICAgICAgICAgICAgICBcIk1heFNpemVcIixcbiAgICAgICAgICAgICAgICBcIkRlc2lyZWRDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdENvb2xkb3duXCIsXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiLFxuICAgICAgICAgICAgICAgIFwiSGVhbHRoQ2hlY2tUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1pblNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heFNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlc2lyZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdENvb2xkb3duXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRHcm91cEFSTnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSGVhbHRoQ2hlY2tUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSGVhbHRoQ2hlY2tHcmFjZVBlcmlvZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiTGlmZWN5Y2xlU3RhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkhlYWx0aFN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiUHJvdGVjdGVkRnJvbVNjYWxlSW5cIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJMaWZlY3ljbGVTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkhlYWx0aFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiUHJvdGVjdGVkRnJvbVNjYWxlSW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1c3BlbmRlZFByb2Nlc3Nlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiUHJvY2Vzc05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJTdXNwZW5zaW9uUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGxhY2VtZW50R3JvdXBcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWUENab25lSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuYWJsZWRNZXRyaWNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJNZXRyaWNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJHcmFudWxhcml0eVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRlcm1pbmF0aW9uUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmV3SW5zdGFuY2VzUHJvdGVjdGVkRnJvbVNjYWxlSW5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VMaW5rZWRSb2xlQVJOXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBdXRvU2NhbGluZ0luc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBdXRvU2NhbGluZ0luc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIixcbiAgICAgICAgICAgICAgICBcIkxpZmVjeWNsZVN0YXRlXCIsXG4gICAgICAgICAgICAgICAgXCJIZWFsdGhTdGF0dXNcIixcbiAgICAgICAgICAgICAgICBcIlByb3RlY3RlZEZyb21TY2FsZUluXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMaWZlY3ljbGVTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkhlYWx0aFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvdGVjdGVkRnJvbVNjYWxlSW5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXV0b1NjYWxpbmdOb3RpZmljYXRpb25UeXBlc1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQXV0b1NjYWxpbmdOb3RpZmljYXRpb25UeXBlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nTm90aWZpY2F0aW9uVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhdW5jaENvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIixcbiAgICAgICAgICAgICAgICBcIkltYWdlSWRcIixcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiLFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktleU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2xhc3NpY0xpbmtWUENJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNsYXNzaWNMaW5rVlBDU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzZXJEYXRhXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS2VybmVsSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSYW1kaXNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZU1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNwb3RQcmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRlUHVibGljSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQbGFjZW1lbnRUZW5hbmN5XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMaWZlY3ljbGVIb29rVHlwZXNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxpZmVjeWNsZUhvb2tUeXBlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpZmVjeWNsZUhvb2tUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMaWZlY3ljbGVIb29rc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTGlmZWN5Y2xlSG9va3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaWZlY3ljbGVIb29rc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxpZmVjeWNsZVRyYW5zaXRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJOb3RpZmljYXRpb25UYXJnZXRBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTm90aWZpY2F0aW9uTWV0YWRhdGFcIjoge30sXG4gICAgICAgICAgICAgICAgXCJIZWFydGJlYXRUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJHbG9iYWxUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0UmVzdWx0XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJUYXJnZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyVGFyZ2V0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMb2FkQmFsYW5jZXJUYXJnZXRHcm91cEFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxvYWRCYWxhbmNlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1ldHJpY0NvbGxlY3Rpb25UeXBlc1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTWV0cmljQ29sbGVjdGlvblR5cGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTWV0cmljXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnVsYXJpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiR3JhbnVsYXJpdHlcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVG9waWNBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJOb3RpZmljYXRpb25UeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQb2xpY2llc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvbGljeVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVBvbGljaWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2NhbGluZ1BvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWRqdXN0bWVudFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNaW5BZGp1c3RtZW50U3RlcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWluQWRqdXN0bWVudE1hZ25pdHVkZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvb2xkb3duXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGVwQWRqdXN0bWVudHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzeFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1ldHJpY0FnZ3JlZ2F0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVzdGltYXRlZEluc3RhbmNlV2FybXVwXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBbGFybXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldFRyYWNraW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2FsaW5nQWN0aXZpdGllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3Rpdml0eUlkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVNjYWxpbmdBY3Rpdml0aWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjdGl2aXRpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aXZpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2FsaW5nUHJvY2Vzc1R5cGVzXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTY2FsaW5nUHJvY2Vzc1R5cGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvY2Vzc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUHJvY2Vzc05hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUHJvY2Vzc05hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNjaGVkdWxlZEFjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25OYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTY2hlZHVsZWRBY3Rpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2NoZWR1bGVkVXBkYXRlR3JvdXBBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY2hlZHVsZWRBY3Rpb25BUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlY3VycmVuY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNaW5TaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNpcmVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVRhZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRlcm1pbmF0aW9uUG9saWN5VHlwZXNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVRlcm1pbmF0aW9uUG9saWN5VHlwZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZXJtaW5hdGlvblBvbGljeVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlNob3VsZERlY3JlbWVudERlc2lyZWRDYXBhY2l0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNob3VsZERlY3JlbWVudERlc2lyZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRldGFjaEluc3RhbmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGl2aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaExvYWRCYWxhbmNlclRhcmdldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQVJOc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGV0YWNoTG9hZEJhbGFuY2VyVGFyZ2V0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0YWNoTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRldGFjaExvYWRCYWxhbmNlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlTWV0cmljc0NvbGxlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlTWV0cmljc0NvbGxlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJHcmFudWxhcml0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1OVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW51bGFyaXR5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW50ZXJTdGFuZGJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiU2hvdWxkRGVjcmVtZW50RGVzaXJlZENhcGFjaXR5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2hvdWxkRGVjcmVtZW50RGVzaXJlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRW50ZXJTdGFuZGJ5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aXZpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRXhlY3V0ZVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJIb25vckNvb2xkb3duXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRyaWNWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCcmVhY2hUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRXhpdFN0YW5kYnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkV4aXRTdGFuZGJ5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aXZpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0TGlmZWN5Y2xlSG9va1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIixcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpZmVjeWNsZUhvb2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaWZlY3ljbGVUcmFuc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblRhcmdldEFSTlwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbk1ldGFkYXRhXCI6IHt9LFxuICAgICAgICAgIFwiSGVhcnRiZWF0VGltZW91dFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVmYXVsdFJlc3VsdFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXRMaWZlY3ljbGVIb29rUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0Tm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlRvcGljQVJOXCIsXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25UeXBlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRvcGljQVJOXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFNjYWxpbmdQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBZGp1c3RtZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1pbkFkanVzdG1lbnRTdGVwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5BZGp1c3RtZW50TWFnbml0dWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2FsaW5nQWRqdXN0bWVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29vbGRvd25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldHJpY0FnZ3JlZ2F0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0ZXBBZGp1c3RtZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXN0aW1hdGVkSW5zdGFuY2VXYXJtdXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldFRyYWNraW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlB1dFNjYWxpbmdQb2xpY3lSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY3lBUk5cIjoge30sXG4gICAgICAgICAgXCJBbGFybXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFNjaGVkdWxlZFVwZGF0ZUdyb3VwQWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiU2NoZWR1bGVkQWN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNjaGVkdWxlZEFjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY3VycmVuY2VcIjoge30sXG4gICAgICAgICAgXCJNaW5TaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNpcmVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlY29yZExpZmVjeWNsZUFjdGlvbkhlYXJ0YmVhdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGlmZWN5Y2xlSG9va05hbWVcIixcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpZmVjeWNsZUhvb2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaWZlY3ljbGVBY3Rpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVjb3JkTGlmZWN5Y2xlQWN0aW9uSGVhcnRiZWF0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdW1lUHJvY2Vzc2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0RGVzaXJlZENhcGFjaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRGVzaXJlZENhcGFjaXR5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzaXJlZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb25vckNvb2xkb3duXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJbnN0YW5jZUhlYWx0aFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiSGVhbHRoU3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTaG91bGRSZXNwZWN0R3JhY2VQZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldEluc3RhbmNlUHJvdGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIixcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQcm90ZWN0ZWRGcm9tU2NhbGVJblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3RlY3RlZEZyb21TY2FsZUluXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0SW5zdGFuY2VQcm90ZWN0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3VzcGVuZFByb2Nlc3Nlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1cFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlcm1pbmF0ZUluc3RhbmNlSW5BdXRvU2NhbGluZ0dyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJTaG91bGREZWNyZW1lbnREZXNpcmVkQ2FwYWNpdHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNob3VsZERlY3JlbWVudERlc2lyZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlRlcm1pbmF0ZUluc3RhbmNlSW5BdXRvU2NhbGluZ0dyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWN0aXZpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUF1dG9TY2FsaW5nR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoQ29uZmlndXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5TaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNpcmVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRDb29sZG93blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tHcmFjZVBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGxhY2VtZW50R3JvdXBcIjoge30sXG4gICAgICAgICAgXCJWUENab25lSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRlcm1pbmF0aW9uUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV3SW5zdGFuY2VzUHJvdGVjdGVkRnJvbVNjYWxlSW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VMaW5rZWRSb2xlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUlkXCI6IHt9LFxuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJQcm9wYWdhdGVBdExhdW5jaFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZXZpY2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZpcnR1YWxOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGV2aWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVic1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWb2x1bWVTaXplXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm9EZXZpY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMyblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvcGFnYXRlQXRMYXVuY2hcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMydVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTM3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWV0cmljSW50ZXJ2YWxMb3dlckJvdW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldHJpY0ludGVydmFsVXBwZXJCb3VuZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2FsaW5nQWRqdXN0bWVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBbGFybUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0M1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRhcmdldFZhbHVlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUHJlZGVmaW5lZE1ldHJpY1R5cGVcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUHJlZGVmaW5lZE1ldHJpY1R5cGVcIjoge30sXG4gICAgICAgICAgICBcIlJlc291cmNlTGFiZWxcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJNZXRyaWNOYW1lXCIsXG4gICAgICAgICAgICBcIk5hbWVzcGFjZVwiLFxuICAgICAgICAgICAgXCJTdGF0aXN0aWNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0YXRpc3RpY1wiOiB7fSxcbiAgICAgICAgICAgIFwiVW5pdFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUYXJnZXRWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEaXNhYmxlU2NhbGVJblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0a1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkFjdGl2aXR5SWRcIixcbiAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3VwTmFtZVwiLFxuICAgICAgICBcIkNhdXNlXCIsXG4gICAgICAgIFwiU3RhcnRUaW1lXCIsXG4gICAgICAgIFwiU3RhdHVzQ29kZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBY3Rpdml0eUlkXCI6IHt9LFxuICAgICAgICBcIkF1dG9TY2FsaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkNhdXNlXCI6IHt9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGV0YWlsc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNTlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzVwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXV0b1NjYWxpbmdHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiU2NhbGluZ1Byb2Nlc3Nlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUF1dG9TY2FsaW5nR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkF1dG9TY2FsaW5nR3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBdXRvU2NhbGluZ0luc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBdXRvU2NhbGluZ0luc3RhbmNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiTGF1bmNoQ29uZmlndXJhdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQb2xpY2llc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTY2FsaW5nUG9saWNpZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNjYWxpbmdBY3Rpdml0aWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkFjdGl2aXRpZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNjaGVkdWxlZEFjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU2NoZWR1bGVkVXBkYXRlR3JvdXBBY3Rpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlRhZ3NcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTAtMDUtMTVcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY2xvdWRmb3JtYXRpb25cIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBDbG91ZEZvcm1hdGlvblwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiQ2xvdWRGb3JtYXRpb25cIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiY2xvdWRmb3JtYXRpb24tMjAxMC0wNS0xNVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL2Nsb3VkZm9ybWF0aW9uLmFtYXpvbmF3cy5jb20vZG9jLzIwMTAtMDUtMTUvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNhbmNlbFVwZGF0ZVN0YWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29udGludWVVcGRhdGVSb2xsYmFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZXNUb1NraXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvbnRpbnVlVXBkYXRlUm9sbGJhY2tSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDaGFuZ2VTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiLFxuICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZUJvZHlcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVVSTFwiOiB7fSxcbiAgICAgICAgICBcIlVzZVByZXZpb3VzVGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlJvbGxiYWNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25BUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VTZXRUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNoYW5nZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0YWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVVUkxcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRpc2FibGVSb2xsYmFja1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sbGJhY2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRpbWVvdXRJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIk9uRmFpbHVyZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrUG9saWN5Qm9keVwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrUG9saWN5VVJMXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJFbmFibGVUZXJtaW5hdGlvblByb3RlY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVTdGFja1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdGFja0luc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCIsXG4gICAgICAgICAgXCJBY2NvdW50c1wiLFxuICAgICAgICAgIFwiUmVnaW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJBY2NvdW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyT3ZlcnJpZGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wZXJhdGlvblByZWZlcmVuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlU3RhY2tJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0YWNrU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZUJvZHlcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZVVSTFwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRtaW5pc3RyYXRpb25Sb2xlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uUm9sZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVN0YWNrU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNoYW5nZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUNoYW5nZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN0YWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmV0YWluUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdGFja0luc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCIsXG4gICAgICAgICAgXCJBY2NvdW50c1wiLFxuICAgICAgICAgIFwiUmVnaW9uc1wiLFxuICAgICAgICAgIFwiUmV0YWluU3RhY2tzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFjY291bnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcGVyYXRpb25QcmVmZXJlbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0YWluU3RhY2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlU3RhY2tJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN0YWNrU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZVN0YWNrU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBY2NvdW50TGltaXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFjY291bnRMaW1pdHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NvdW50TGltaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2hhbmdlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaGFuZ2VTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDaGFuZ2VTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGVjdXRpb25TdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNSZWFzb25cIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25BUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGxiYWNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYXBhYmlsaXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VDaGFuZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQaHlzaWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlJlcGxhY2VtZW50XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlNjb3BlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRhcmdldFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSZXF1aXJlc1JlY3JlYXRpb25cIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXZhbHVhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFuZ2VTb3VyY2VcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2F1c2luZ0VudGl0eVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0YWNrRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVN0YWNrRXZlbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCIsXG4gICAgICAgICAgICAgICAgXCJFdmVudElkXCIsXG4gICAgICAgICAgICAgICAgXCJTdGFja05hbWVcIixcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGh5c2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VTdGF0dXNSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVByb3BlcnRpZXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0YWNrSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiLFxuICAgICAgICAgIFwiU3RhY2tJbnN0YW5jZUFjY291bnRcIixcbiAgICAgICAgICBcIlN0YWNrSW5zdGFuY2VSZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJbnN0YW5jZUFjY291bnRcIjoge30sXG4gICAgICAgICAgXCJTdGFja0luc3RhbmNlUmVnaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU3RhY2tJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YWNrU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFjY291bnRcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJPdmVycmlkZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1JlYXNvblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0YWNrUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiLFxuICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTdGFja1Jlc291cmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tSZXNvdXJjZURldGFpbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgICAgIFwiTGFzdFVwZGF0ZWRUaW1lc3RhbXBcIixcbiAgICAgICAgICAgICAgXCJSZXNvdXJjZVN0YXR1c1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQaHlzaWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlc291cmNlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJlc291cmNlU3RhdHVzUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1ldGFkYXRhXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tSZXNvdXJjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJQaHlzaWNhbFJlc291cmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTdGFja1Jlc291cmNlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIixcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiLFxuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCIsXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVN0YXR1c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTG9naWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQaHlzaWNhbFJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVN0YXR1c1JlYXNvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja1NldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVN0YWNrU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGFja1NldElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJUZW1wbGF0ZUJvZHlcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDYXBhYmlsaXRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGFja1NldEFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBZG1pbmlzdHJhdGlvblJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiRXhlY3V0aW9uUm9sZU5hbWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja1NldE9wZXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCIsXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVN0YWNrU2V0T3BlcmF0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXRPcGVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YWNrU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJPcGVyYXRpb25QcmVmZXJlbmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmV0YWluU3RhY2tzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBZG1pbmlzdHJhdGlvblJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiRXhlY3V0aW9uUm9sZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5kVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVN0YWNrc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlN0YWNrTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCIsXG4gICAgICAgICAgICAgICAgXCJTdGFja1N0YXR1c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2hhbmdlU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlbGV0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUm9sbGJhY2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tTdGF0dXNSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEaXNhYmxlUm9sbGJhY2tcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5vdGlmaWNhdGlvbkFSTnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGltZW91dEluTWludXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk91dHB1dHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIk91dHB1dEtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIk91dHB1dFZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFeHBvcnROYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5hYmxlVGVybWluYXRpb25Qcm90ZWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQYXJlbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJvb3RJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVzdGltYXRlVGVtcGxhdGVDb3N0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlVVJMXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRXN0aW1hdGVUZW1wbGF0ZUNvc3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVcmxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFeGVjdXRlQ2hhbmdlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaGFuZ2VTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRXhlY3V0ZUNoYW5nZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFN0YWNrUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFN0YWNrUG9saWN5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tQb2xpY3lCb2R5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlU3RhZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0VGVtcGxhdGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZUJvZHlcIjoge30sXG4gICAgICAgICAgXCJTdGFnZXNBdmFpbGFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VGVtcGxhdGVTdW1tYXJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlVVJMXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFRlbXBsYXRlU3VtbWFyeVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlcktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlclR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOb0VjaG9cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyQ29uc3RyYWludHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhcGFiaWxpdGllc1JlYXNvblwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHt9LFxuICAgICAgICAgIFwiRGVjbGFyZWRUcmFuc2Zvcm1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q2hhbmdlU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0Q2hhbmdlU2V0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNoYW5nZVNldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2hhbmdlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1JlYXNvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RFeHBvcnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0RXhwb3J0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV4cG9ydHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkV4cG9ydGluZ1N0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW1wb3J0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRXhwb3J0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeHBvcnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RJbXBvcnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1wb3J0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RhY2tJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFja0luc3RhbmNlQWNjb3VudFwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrSW5zdGFuY2VSZWdpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFN0YWNrSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VtbWFyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGFja1NldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWNjb3VudFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNSZWFzb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RhY2tSZXNvdXJjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFN0YWNrUmVzb3VyY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tSZXNvdXJjZVN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVkVGltZXN0YW1wXCIsXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVN0YXR1c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBoeXNpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VTdGF0dXNSZWFzb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RhY2tTZXRPcGVyYXRpb25SZXN1bHRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIixcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RTdGFja1NldE9wZXJhdGlvblJlc3VsdHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjY291bnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBY2NvdW50R2F0ZVJlc3VsdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1JlYXNvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RhY2tTZXRPcGVyYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RTdGFja1NldE9wZXJhdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5kVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdGFja1NldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RTdGFja1NldHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdGFja3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tTdGF0dXNGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RTdGFja3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja1N1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlN0YWNrTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCIsXG4gICAgICAgICAgICAgICAgXCJTdGFja1N0YXR1c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGVtcGxhdGVEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVsZXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tTdGF0dXNSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQYXJlbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJvb3RJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFN0YWNrUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tQb2xpY3lCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tQb2xpY3lVUkxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaWduYWxSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCIsXG4gICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiVW5pcXVlSWRcIixcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJMb2dpY2FsUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlVuaXF1ZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcFN0YWNrU2V0T3BlcmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja1NldE5hbWVcIixcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlN0b3BTdGFja1NldE9wZXJhdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVN0YWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVVUkxcIjoge30sXG4gICAgICAgICAgXCJVc2VQcmV2aW91c1RlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFja1BvbGljeUR1cmluZ1VwZGF0ZUJvZHlcIjoge30sXG4gICAgICAgICAgXCJTdGFja1BvbGljeUR1cmluZ1VwZGF0ZVVSTFwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlJvbGxiYWNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFja1BvbGljeUJvZHlcIjoge30sXG4gICAgICAgICAgXCJTdGFja1BvbGljeVVSTFwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlU3RhY2tSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU3RhY2tJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiLFxuICAgICAgICAgIFwiQWNjb3VudHNcIixcbiAgICAgICAgICBcIlJlZ2lvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWNjb3VudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlZ2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlck92ZXJyaWRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcGVyYXRpb25QcmVmZXJlbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlVwZGF0ZVN0YWNrSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTdGFja1NldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVVUkxcIjoge30sXG4gICAgICAgICAgXCJVc2VQcmV2aW91c1RlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wZXJhdGlvblByZWZlcmVuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZG1pbmlzdHJhdGlvblJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJFeGVjdXRpb25Sb2xlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY291bnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlU3RhY2tTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRlcm1pbmF0aW9uUHJvdGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5hYmxlVGVybWluYXRpb25Qcm90ZWN0aW9uXCIsXG4gICAgICAgICAgXCJTdGFja05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5hYmxlVGVybWluYXRpb25Qcm90ZWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFja05hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlVGVybWluYXRpb25Qcm90ZWN0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlZhbGlkYXRlVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVVUkxcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVmFsaWRhdGVUZW1wbGF0ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlcktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5vRWNob1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYXBhYmlsaXRpZXNSZWFzb25cIjoge30sXG4gICAgICAgICAgXCJEZWNsYXJlZFRyYW5zZm9ybXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0d1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyS2V5XCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJVc2VQcmV2aW91c1ZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvbHZlZFZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2xcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJvbGxiYWNrVHJpZ2dlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkFyblwiLFxuICAgICAgICAgICAgICBcIlR5cGVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTW9uaXRvcmluZ1RpbWVJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZWdpb25PcmRlclwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmFpbHVyZVRvbGVyYW5jZUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGYWlsdXJlVG9sZXJhbmNlUGVyY2VudGFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWF4Q29uY3VycmVudENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXhDb25jdXJyZW50UGVyY2VudGFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzR3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVTdGFja0V2ZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3RhY2tFdmVudHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0YWNrUmVzb3VyY2VzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0YWNrUmVzb3VyY2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0YWNrc1wiXG4gICAgfSxcbiAgICBcIkxpc3RFeHBvcnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFeHBvcnRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEltcG9ydHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkltcG9ydHNcIlxuICAgIH0sXG4gICAgXCJMaXN0U3RhY2tSZXNvdXJjZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0YWNrUmVzb3VyY2VTdW1tYXJpZXNcIlxuICAgIH0sXG4gICAgXCJMaXN0U3RhY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdGFja1N1bW1hcmllc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIlN0YWNrRXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTdGFja3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IDIwMCxcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJWYWxpZGF0aW9uRXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlN0YWNrQ3JlYXRlQ29tcGxldGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTdGFja3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTIwLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldhaXQgdW50aWwgc3RhY2sgc3RhdHVzIGlzIENSRUFURV9DT01QTEVURS5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDUkVBVEVfQ09NUExFVEVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkNSRUFURV9GQUlMRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkRFTEVURV9DT01QTEVURVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiREVMRVRFX0ZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUk9MTEJBQ0tfRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJST0xMQkFDS19DT01QTEVURVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiVmFsaWRhdGlvbkVycm9yXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiU3RhY2tEZWxldGVDb21wbGV0ZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVN0YWNrc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAxMjAsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2FpdCB1bnRpbCBzdGFjayBzdGF0dXMgaXMgREVMRVRFX0NPTVBMRVRFLlwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkRFTEVURV9DT01QTEVURVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiVmFsaWRhdGlvbkVycm9yXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiREVMRVRFX0ZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ1JFQVRFX0ZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUk9MTEJBQ0tfRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJVUERBVEVfUk9MTEJBQ0tfRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJVUERBVEVfUk9MTEJBQ0tfSU5fUFJPR1JFU1NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlN0YWNrVXBkYXRlQ29tcGxldGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTIwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVN0YWNrc1wiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldhaXQgdW50aWwgc3RhY2sgc3RhdHVzIGlzIFVQREFURV9DT01QTEVURS5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJVUERBVEVfQ09NUExFVEVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlVQREFURV9GQUlMRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RhY2tzW10uU3RhY2tTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YWNrc1tdLlN0YWNrU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlVQREFURV9ST0xMQkFDS19GQUlMRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlVQREFURV9ST0xMQkFDS19DT01QTEVURVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGFja3NbXS5TdGFja1N0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiVmFsaWRhdGlvbkVycm9yXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiQ2hhbmdlU2V0Q3JlYXRlQ29tcGxldGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDaGFuZ2VTZXRcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTIwLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldhaXQgdW50aWwgY2hhbmdlIHNldCBzdGF0dXMgaXMgQ1JFQVRFX0NPTVBMRVRFLlwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDUkVBVEVfQ09NUExFVEVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJGQUlMRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlZhbGlkYXRpb25FcnJvclwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE2LTExLTI1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNsb3VkZnJvbnRcIixcbiAgICBcImdsb2JhbEVuZHBvaW50XCI6IFwiY2xvdWRmcm9udC5hbWF6b25hd3MuY29tXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QteG1sXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ2xvdWRGcm9udFwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIENsb3VkRnJvbnRcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiY2xvdWRmcm9udC0yMDE2LTExLTI1XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNyZWF0ZUNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnRcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTYtMTEtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L2Rpc3RyaWJ1dGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGlzdHJpYnV0aW9uV2l0aFRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvZGlzdHJpYnV0aW9uP1dpdGhUYWdzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSW52YWxpZGF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L2Rpc3RyaWJ1dGlvbi97RGlzdHJpYnV0aW9uSWR9L2ludmFsaWRhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uSWRcIixcbiAgICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkludmFsaWRhdGlvbkJhdGNoXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uQmF0Y2hcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZGF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L3N0cmVhbWluZy1kaXN0cmlidXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE2LTExLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdHJlYW1pbmdEaXN0cmlidXRpb25XaXRoVGFnc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uP1dpdGhUYWdzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9kaXN0cmlidXRpb24ve0lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9kaXN0cmlidXRpb24ve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9kaXN0cmlidXRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEludmFsaWRhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9kaXN0cmlidXRpb24ve0Rpc3RyaWJ1dGlvbklkfS9pbnZhbGlkYXRpb24ve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludmFsaWRhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludmFsaWRhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdGllc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5U3VtbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIlMzQ2Fub25pY2FsVXNlcklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlMaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvZGlzdHJpYnV0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERpc3RyaWJ1dGlvbnNCeVdlYkFDTElkXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L2Rpc3RyaWJ1dGlvbnNCeVdlYkFDTElkL3tXZWJBQ0xJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldlYkFDTElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiV2ViQUNMSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJbnZhbGlkYXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L2Rpc3RyaWJ1dGlvbi97RGlzdHJpYnV0aW9uSWR9L2ludmFsaWRhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludmFsaWRhdGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkludmFsaWRhdGlvblN1bW1hcnlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZhbGlkYXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0cmVhbWluZ0Rpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQVJOXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJTM09yaWdpblwiLFxuICAgICAgICAgICAgICAgICAgICBcIkFsaWFzZXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTM09yaWdpblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQWxpYXNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlByaWNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkxpc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L3RhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnc1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE2LTExLTI1L3RhZ2dpbmc/T3BlcmF0aW9uPVRhZ1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ3NcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE2LTExLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJUYWdzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS90YWdnaW5nP09wZXJhdGlvbj1VbnRhZ1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ0tleXNcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE2LTExLTI1L1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnS2V5c1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTYtMTEtMjUvZGlzdHJpYnV0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTYtMTEtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0xMS0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE2LTExLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJDb21tZW50XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiOiB7fSxcbiAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJPcmlnaW5zXCIsXG4gICAgICAgIFwiRGVmYXVsdENhY2hlQmVoYXZpb3JcIixcbiAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiQWxpYXNlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0Um9vdE9iamVjdFwiOiB7fSxcbiAgICAgICAgXCJPcmlnaW5zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkNhY2hlQmVoYXZpb3JzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDdXN0b21FcnJvclJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgXCJMb2dnaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICAgICAgXCJJbmNsdWRlQ29va2llc1wiLFxuICAgICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICAgIFwiUHJlZml4XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkluY2x1ZGVDb29raWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgICAgICBcIlByZWZpeFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlZpZXdlckNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXN0cmljdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIldlYkFDTElkXCI6IHt9LFxuICAgICAgICBcIkh0dHBWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIklzSVBWNkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDTkFNRVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcmlnaW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiT3JpZ2luUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDdXN0b21IZWFkZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcmlnaW5DdXN0b21IZWFkZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJIZWFkZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJIZWFkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJIZWFkZXJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM09yaWdpbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkN1c3RvbU9yaWdpbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIkhUVFBQb3J0XCIsXG4gICAgICAgICAgICAgICAgICBcIkhUVFBTUG9ydFwiLFxuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5Qcm90b2NvbFBvbGljeVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJIVFRQUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSFRUUFNQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5Qcm90b2NvbFBvbGljeVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luU3NsUHJvdG9jb2xzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3NsUHJvdG9jb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRhcmdldE9yaWdpbklkXCIsXG4gICAgICAgIFwiRm9yd2FyZGVkVmFsdWVzXCIsXG4gICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgXCJWaWV3ZXJQcm90b2NvbFBvbGljeVwiLFxuICAgICAgICBcIk1pblRUTFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYXJnZXRPcmlnaW5JZFwiOiB7fSxcbiAgICAgICAgXCJGb3J3YXJkZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmlld2VyUHJvdG9jb2xQb2xpY3lcIjoge30sXG4gICAgICAgIFwiTWluVFRMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvd2VkTWV0aG9kc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU21vb3RoU3RyZWFtaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0VFRMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXhUVExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXByZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU29cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWVyeVN0cmluZ1wiLFxuICAgICAgICBcIkNvb2tpZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVlcnlTdHJpbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvb2tpZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJGb3J3YXJkXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkZvcndhcmRcIjoge30sXG4gICAgICAgICAgICBcIldoaXRlbGlzdGVkTmFtZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJIZWFkZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWVyeVN0cmluZ0NhY2hlS2V5c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJFbmFibGVkXCIsXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBd3NBY2NvdW50TnVtYmVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIixcbiAgICAgICAgXCJJdGVtc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNhY2hlZE1ldGhvZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiLFxuICAgICAgICAgICAgXCJJdGVtc1wiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZXRob2RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJMYW1iZGFGdW5jdGlvbkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFdmVudFR5cGVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZUJlaGF2aW9yXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlBhdGhQYXR0ZXJuXCIsXG4gICAgICAgICAgICAgIFwiVGFyZ2V0T3JpZ2luSWRcIixcbiAgICAgICAgICAgICAgXCJGb3J3YXJkZWRWYWx1ZXNcIixcbiAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICAgICAgICBcIlZpZXdlclByb3RvY29sUG9saWN5XCIsXG4gICAgICAgICAgICAgIFwiTWluVFRMXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlBhdGhQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIlRhcmdldE9yaWdpbklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkZvcndhcmRlZFZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWaWV3ZXJQcm90b2NvbFBvbGljeVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNaW5UVExcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFsbG93ZWRNZXRob2RzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTbW9vdGhTdHJlYW1pbmdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlZmF1bHRUVExcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1heFRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29tcHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkN1c3RvbUVycm9yUmVzcG9uc2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiRXJyb3JDb2RlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVzcG9uc2VQYWdlUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZXNwb25zZUNvZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiRXJyb3JDYWNoaW5nTWluVFRMXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNsb3VkRnJvbnREZWZhdWx0Q2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklBTUNlcnRpZmljYXRlSWRcIjoge30sXG4gICAgICAgIFwiQUNNQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgIFwiU1NMU3VwcG9ydE1ldGhvZFwiOiB7fSxcbiAgICAgICAgXCJNaW5pbXVtUHJvdG9jb2xWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIkNlcnRpZmljYXRlU291cmNlXCI6IHtcbiAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkdlb1Jlc3RyaWN0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkdlb1Jlc3RyaWN0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUmVzdHJpY3Rpb25UeXBlXCIsXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlJlc3RyaWN0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJBUk5cIixcbiAgICAgICAgXCJTdGF0dXNcIixcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCIsXG4gICAgICAgIFwiSW5Qcm9ncmVzc0ludmFsaWRhdGlvbkJhdGNoZXNcIixcbiAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgIFwiQWN0aXZlVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluUHJvZ3Jlc3NJbnZhbGlkYXRpb25CYXRjaGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2lnbmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQXdzQWNjb3VudE51bWJlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJLZXlQYWlySWRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlQYWlySWRcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJLZXlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlBhdGhzXCIsXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBhdGhzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYXRoXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJTdGF0dXNcIixcbiAgICAgICAgXCJDcmVhdGVUaW1lXCIsXG4gICAgICAgIFwiSW52YWxpZGF0aW9uQmF0Y2hcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW52YWxpZGF0aW9uQmF0Y2hcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjhcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiLFxuICAgICAgICBcIlMzT3JpZ2luXCIsXG4gICAgICAgIFwiQ29tbWVudFwiLFxuICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiUzNPcmlnaW5cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgXCJMb2dnaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICAgIFwiUHJlZml4XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByaWNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgIFwiT3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJBUk5cIixcbiAgICAgICAgXCJTdGF0dXNcIixcbiAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgIFwiQWN0aXZlVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgIFwiQWN0aXZlVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgIFwiQVJOXCIsXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICAgICAgXCJBbGlhc2VzXCIsXG4gICAgICAgICAgICAgIFwiT3JpZ2luc1wiLFxuICAgICAgICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCIsXG4gICAgICAgICAgICAgIFwiQ2FjaGVCZWhhdmlvcnNcIixcbiAgICAgICAgICAgICAgXCJDdXN0b21FcnJvclJlc3BvbnNlc1wiLFxuICAgICAgICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCIsXG4gICAgICAgICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICAgICAgICBcIlZpZXdlckNlcnRpZmljYXRlXCIsXG4gICAgICAgICAgICAgIFwiUmVzdHJpY3Rpb25zXCIsXG4gICAgICAgICAgICAgIFwiV2ViQUNMSWRcIixcbiAgICAgICAgICAgICAgXCJIdHRwVmVyc2lvblwiLFxuICAgICAgICAgICAgICBcIklzSVBWNkVuYWJsZWRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQWxpYXNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPcmlnaW5zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNhY2hlQmVoYXZpb3JzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDdXN0b21FcnJvclJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZpZXdlckNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXN0cmljdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIldlYkFDTElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkh0dHBWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIklzSVBWNkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdENsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0aWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdC5OZXh0TWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUxpc3QuSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUxpc3QuSXRlbXNcIlxuICAgIH0sXG4gICAgXCJMaXN0RGlzdHJpYnV0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkRpc3RyaWJ1dGlvbkxpc3QuTmV4dE1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJEaXN0cmlidXRpb25MaXN0LklzVHJ1bmNhdGVkXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEaXN0cmlidXRpb25MaXN0Lkl0ZW1zXCJcbiAgICB9LFxuICAgIFwiTGlzdEludmFsaWRhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJJbnZhbGlkYXRpb25MaXN0Lk5leHRNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiSW52YWxpZGF0aW9uTGlzdC5Jc1RydW5jYXRlZFwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSW52YWxpZGF0aW9uTGlzdC5JdGVtc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1pbmdEaXN0cmlidXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uTGlzdC5OZXh0TWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkxpc3QuSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkxpc3QuSXRlbXNcIlxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIkRpc3RyaWJ1dGlvbkRlcGxveWVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNjAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkdldERpc3RyaWJ1dGlvblwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAyNSxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIGEgZGlzdHJpYnV0aW9uIGlzIGRlcGxveWVkLlwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkRlcGxveWVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRpc3RyaWJ1dGlvbi5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkludmFsaWRhdGlvbkNvbXBsZXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDIwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJHZXRJbnZhbGlkYXRpb25cIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMzAsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2FpdCB1bnRpbCBhbiBpbnZhbGlkYXRpb24gaGFzIGNvbXBsZXRlZC5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDb21wbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW52YWxpZGF0aW9uLlN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uRGVwbG95ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiA2MCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiR2V0U3RyZWFtaW5nRGlzdHJpYnV0aW9uXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDI1LFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldhaXQgdW50aWwgYSBzdHJlYW1pbmcgZGlzdHJpYnV0aW9uIGlzIGRlcGxveWVkLlwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkRlcGxveWVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbi5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE3LTAzLTI1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNsb3VkZnJvbnRcIixcbiAgICBcImdsb2JhbEVuZHBvaW50XCI6IFwiY2xvdWRmcm9udC5hbWF6b25hd3MuY29tXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QteG1sXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ2xvdWRGcm9udFwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIENsb3VkRnJvbnRcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiY2xvdWRmcm9udC0yMDE3LTAzLTI1XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNyZWF0ZUNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnRcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMDMtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L2Rpc3RyaWJ1dGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGlzdHJpYnV0aW9uV2l0aFRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvZGlzdHJpYnV0aW9uP1dpdGhUYWdzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSW52YWxpZGF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L2Rpc3RyaWJ1dGlvbi97RGlzdHJpYnV0aW9uSWR9L2ludmFsaWRhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uSWRcIixcbiAgICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25CYXRjaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkludmFsaWRhdGlvbkJhdGNoXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uQmF0Y2hcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZGF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52YWxpZGF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L3N0cmVhbWluZy1kaXN0cmlidXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTAzLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdHJlYW1pbmdEaXN0cmlidXRpb25XaXRoVGFnc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uP1dpdGhUYWdzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9kaXN0cmlidXRpb24ve0lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNlcnZpY2VMaW5rZWRSb2xlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L3NlcnZpY2UtbGlua2VkLXJvbGUve1JvbGVOYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUm9sZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUm9sZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSb2xlTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9kaXN0cmlidXRpb24ve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9kaXN0cmlidXRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEludmFsaWRhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9kaXN0cmlidXRpb24ve0Rpc3RyaWJ1dGlvbklkfS9pbnZhbGlkYXRpb24ve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludmFsaWRhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludmFsaWRhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdGllc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5U3VtbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIlMzQ2Fub25pY2FsVXNlcklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlMaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvZGlzdHJpYnV0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERpc3RyaWJ1dGlvbnNCeVdlYkFDTElkXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L2Rpc3RyaWJ1dGlvbnNCeVdlYkFDTElkL3tXZWJBQ0xJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldlYkFDTElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiV2ViQUNMSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJbnZhbGlkYXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L2Rpc3RyaWJ1dGlvbi97RGlzdHJpYnV0aW9uSWR9L2ludmFsaWRhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludmFsaWRhdGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkludmFsaWRhdGlvblN1bW1hcnlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZhbGlkYXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0cmVhbWluZ0Rpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQVJOXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJTM09yaWdpblwiLFxuICAgICAgICAgICAgICAgICAgICBcIkFsaWFzZXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTM09yaWdpblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQWxpYXNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlByaWNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkxpc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L3RhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnc1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTI1L3RhZ2dpbmc/T3BlcmF0aW9uPVRhZ1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ3NcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTAzLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJUYWdzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS90YWdnaW5nP09wZXJhdGlvbj1VbnRhZ1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ0tleXNcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTAzLTI1L1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnS2V5c1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0wMy0yNS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMDMtMjUvZGlzdHJpYnV0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMDMtMjUvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0yNS9zdHJlYW1pbmctZGlzdHJpYnV0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTAzLTI1L1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJDb21tZW50XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiOiB7fSxcbiAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJPcmlnaW5zXCIsXG4gICAgICAgIFwiRGVmYXVsdENhY2hlQmVoYXZpb3JcIixcbiAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiQWxpYXNlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0Um9vdE9iamVjdFwiOiB7fSxcbiAgICAgICAgXCJPcmlnaW5zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkNhY2hlQmVoYXZpb3JzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDdXN0b21FcnJvclJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgXCJMb2dnaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICAgICAgXCJJbmNsdWRlQ29va2llc1wiLFxuICAgICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICAgIFwiUHJlZml4XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkluY2x1ZGVDb29raWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgICAgICBcIlByZWZpeFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlZpZXdlckNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXN0cmljdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICB9LFxuICAgICAgICBcIldlYkFDTElkXCI6IHt9LFxuICAgICAgICBcIkh0dHBWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIklzSVBWNkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDTkFNRVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcmlnaW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiT3JpZ2luUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDdXN0b21IZWFkZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcmlnaW5DdXN0b21IZWFkZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJIZWFkZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJIZWFkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJIZWFkZXJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM09yaWdpbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkN1c3RvbU9yaWdpbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIkhUVFBQb3J0XCIsXG4gICAgICAgICAgICAgICAgICBcIkhUVFBTUG9ydFwiLFxuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5Qcm90b2NvbFBvbGljeVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJIVFRQUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSFRUUFNQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5Qcm90b2NvbFBvbGljeVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luU3NsUHJvdG9jb2xzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3NsUHJvdG9jb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luUmVhZFRpbWVvdXRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpbktlZXBhbGl2ZVRpbWVvdXRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUYXJnZXRPcmlnaW5JZFwiLFxuICAgICAgICBcIkZvcndhcmRlZFZhbHVlc1wiLFxuICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiVmlld2VyUHJvdG9jb2xQb2xpY3lcIixcbiAgICAgICAgXCJNaW5UVExcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGFyZ2V0T3JpZ2luSWRcIjoge30sXG4gICAgICAgIFwiRm9yd2FyZGVkVmFsdWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICB9LFxuICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZpZXdlclByb3RvY29sUG9saWN5XCI6IHt9LFxuICAgICAgICBcIk1pblRUTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dlZE1ldGhvZHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNtb290aFN0cmVhbWluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdFRUTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWF4VFRMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wcmVzc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVlcnlTdHJpbmdcIixcbiAgICAgICAgXCJDb29raWVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1ZXJ5U3RyaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb29raWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRm9yd2FyZFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJGb3J3YXJkXCI6IHt9LFxuICAgICAgICAgICAgXCJXaGl0ZWxpc3RlZE5hbWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSGVhZGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVlcnlTdHJpbmdDYWNoZUtleXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXdzQWNjb3VudE51bWJlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCIsXG4gICAgICAgIFwiSXRlbXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZWRNZXRob2RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIixcbiAgICAgICAgICAgIFwiSXRlbXNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWV0aG9kXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTGFtYmRhRnVuY3Rpb25BUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiRXZlbnRUeXBlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVCZWhhdmlvclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJQYXRoUGF0dGVyblwiLFxuICAgICAgICAgICAgICBcIlRhcmdldE9yaWdpbklkXCIsXG4gICAgICAgICAgICAgIFwiRm9yd2FyZGVkVmFsdWVzXCIsXG4gICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgICAgICAgXCJWaWV3ZXJQcm90b2NvbFBvbGljeVwiLFxuICAgICAgICAgICAgICBcIk1pblRUTFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQYXRoUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRPcmlnaW5JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJGb3J3YXJkZWRWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVmlld2VyUHJvdG9jb2xQb2xpY3lcIjoge30sXG4gICAgICAgICAgICAgIFwiTWluVFRMXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBbGxvd2VkTWV0aG9kc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU21vb3RoU3RyZWFtaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZWZhdWx0VFRMXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJNYXhUVExcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbXByZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDdXN0b21FcnJvclJlc3BvbnNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlc3BvbnNlUGFnZVBhdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVzcG9uc2VDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVycm9yQ2FjaGluZ01pblRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDbG91ZEZyb250RGVmYXVsdENlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJQU1DZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICBcIkFDTUNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICBcIlNTTFN1cHBvcnRNZXRob2RcIjoge30sXG4gICAgICAgIFwiTWluaW11bVByb3RvY29sVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJDZXJ0aWZpY2F0ZVNvdXJjZVwiOiB7XG4gICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJHZW9SZXN0cmljdGlvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJHZW9SZXN0cmljdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlJlc3RyaWN0aW9uVHlwZVwiLFxuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJSZXN0cmljdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiQVJOXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICBcIkluUHJvZ3Jlc3NJbnZhbGlkYXRpb25CYXRjaGVzXCIsXG4gICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJblByb2dyZXNzSW52YWxpZGF0aW9uQmF0Y2hlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJBY3RpdmVUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNpZ25lclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkF3c0FjY291bnROdW1iZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5UGFpcklkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5UGFpcklkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJQYXRoc1wiLFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQYXRoc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGF0aFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiQ3JlYXRlVGltZVwiLFxuICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJTM09yaWdpblwiLFxuICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIlMzT3JpZ2luXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGlhc2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiTG9nZ2luZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgICBcIlByZWZpeFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgICAgICBcIlByZWZpeFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiQVJOXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uU3VtbWFyeVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICBcIkFSTlwiLFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgICAgIFwiQWxpYXNlc1wiLFxuICAgICAgICAgICAgICBcIk9yaWdpbnNcIixcbiAgICAgICAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiLFxuICAgICAgICAgICAgICBcIkNhY2hlQmVoYXZpb3JzXCIsXG4gICAgICAgICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIixcbiAgICAgICAgICAgICAgXCJDb21tZW50XCIsXG4gICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiLFxuICAgICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiLFxuICAgICAgICAgICAgICBcIlJlc3RyaWN0aW9uc1wiLFxuICAgICAgICAgICAgICBcIldlYkFDTElkXCIsXG4gICAgICAgICAgICAgIFwiSHR0cFZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJJc0lQVjZFbmFibGVkXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3JpZ2luc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDYWNoZUJlaGF2aW9yc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJpY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVzdHJpY3Rpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJIdHRwVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJc0lQVjZFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdGllc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUxpc3QuSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdC5OZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlMaXN0Lkl0ZW1zXCJcbiAgICB9LFxuICAgIFwiTGlzdERpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJEaXN0cmlidXRpb25MaXN0LklzVHJ1bmNhdGVkXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkRpc3RyaWJ1dGlvbkxpc3QuTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRGlzdHJpYnV0aW9uTGlzdC5JdGVtc1wiXG4gICAgfSxcbiAgICBcIkxpc3RJbnZhbGlkYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiSW52YWxpZGF0aW9uTGlzdC5Jc1RydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJJbnZhbGlkYXRpb25MaXN0Lk5leHRNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkludmFsaWRhdGlvbkxpc3QuSXRlbXNcIlxuICAgIH0sXG4gICAgXCJMaXN0U3RyZWFtaW5nRGlzdHJpYnV0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkxpc3QuSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uTGlzdC5OZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0Lkl0ZW1zXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE3LTEwLTMwXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNsb3VkZnJvbnRcIixcbiAgICBcImdsb2JhbEVuZHBvaW50XCI6IFwiY2xvdWRmcm9udC5hbWF6b25hd3MuY29tXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QteG1sXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ2xvdWRGcm9udFwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIENsb3VkRnJvbnRcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkNsb3VkRnJvbnRcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiY2xvdWRmcm9udC0yMDE3LTEwLTMwXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNyZWF0ZUNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnRcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGlzdHJpYnV0aW9uV2l0aFRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZGlzdHJpYnV0aW9uP1dpdGhUYWdzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1dpdGhUYWdzXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZmllbGQtbGV2ZWwtZW5jcnlwdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMya1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9maWVsZC1sZXZlbC1lbmNyeXB0aW9uLXByb2ZpbGVcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUNvbmZpZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVJbnZhbGlkYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZGlzdHJpYnV0aW9uL3tEaXN0cmlidXRpb25JZH0vaW52YWxpZGF0aW9uXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiLFxuICAgICAgICAgIFwiSW52YWxpZGF0aW9uQmF0Y2hcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW52YWxpZGF0aW9uQmF0Y2hcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZhbGlkYXRpb25CYXRjaFwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZhbGlkYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyelwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZhbGlkYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQdWJsaWNLZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvcHVibGljLWtleVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHVibGljS2V5Q29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlB1YmxpY0tleUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlB1YmxpY0tleUNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlB1YmxpY0tleUNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlB1YmxpY0tleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlB1YmxpY0tleVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9zdHJlYW1pbmctZGlzdHJpYnV0aW9uXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RyZWFtaW5nRGlzdHJpYnV0aW9uV2l0aFRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbj9XaXRoVGFnc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdXaXRoVGFnc1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM1XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnV2l0aFRhZ3NcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZGlzdHJpYnV0aW9uL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9maWVsZC1sZXZlbC1lbmNyeXB0aW9uL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZmllbGQtbGV2ZWwtZW5jcnlwdGlvbi1wcm9maWxlL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQdWJsaWNLZXlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvcHVibGljLWtleS97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3N0cmVhbWluZy1kaXN0cmlidXRpb24ve0lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL29yaWdpbi1hY2Nlc3MtaWRlbnRpdHkvY2xvdWRmcm9udC97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvbi97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RmllbGRMZXZlbEVuY3J5cHRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZmllbGQtbGV2ZWwtZW5jcnlwdGlvbi97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2ZpZWxkLWxldmVsLWVuY3J5cHRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2ZpZWxkLWxldmVsLWVuY3J5cHRpb24tcHJvZmlsZS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2ZpZWxkLWxldmVsLWVuY3J5cHRpb24tcHJvZmlsZS97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEludmFsaWRhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9kaXN0cmlidXRpb24ve0Rpc3RyaWJ1dGlvbklkfS9pbnZhbGlkYXRpb24ve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludmFsaWRhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludmFsaWRhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFB1YmxpY0tleVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9wdWJsaWMta2V5L3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHVibGljS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQdWJsaWNLZXlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQdWJsaWNLZXlDb25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvcHVibGljLWtleS97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQdWJsaWNLZXlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlB1YmxpY0tleUNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9zdHJlYW1pbmctZGlzdHJpYnV0aW9uL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdGllc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5TGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk1hcmtlclwiLFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5U3VtbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIlMzQ2Fub25pY2FsVXNlcklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTM0Nhbm9uaWNhbFVzZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlMaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZGlzdHJpYnV0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0Z1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERpc3RyaWJ1dGlvbnNCeVdlYkFDTElkXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvbnNCeVdlYkFDTElkL3tXZWJBQ0xJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldlYkFDTElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiV2ViQUNMSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGlzdHJpYnV0aW9uTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZmllbGQtbGV2ZWwtZW5jcnlwdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUXVlcnlBcmdQcm9maWxlQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50VHlwZVByb2ZpbGVDb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvbkxpc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9maWVsZC1sZXZlbC1lbmNyeXB0aW9uLXByb2ZpbGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVTdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uRW50aXRpZXNcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkVuY3J5cHRpb25FbnRpdGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlTGlzdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJbnZhbGlkYXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2Rpc3RyaWJ1dGlvbi97RGlzdHJpYnV0aW9uSWR9L2ludmFsaWRhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRpc3RyaWJ1dGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGlzdHJpYnV0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludmFsaWRhdGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgICAgICAgXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkludmFsaWRhdGlvblN1bW1hcnlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZhbGlkYXRpb25MaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFB1YmxpY0tleXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvcHVibGljLWtleVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQdWJsaWNLZXlMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlB1YmxpY0tleVN1bW1hcnlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJFbmNvZGVkS2V5XCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRW5jb2RlZEtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQdWJsaWNLZXlMaXN0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0cmVhbWluZ0Rpc3RyaWJ1dGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJlYW1pbmdEaXN0cmlidXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQVJOXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJTM09yaWdpblwiLFxuICAgICAgICAgICAgICAgICAgICBcIkFsaWFzZXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTM09yaWdpblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQWxpYXNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlByaWNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkxpc3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvclJlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3RhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnc1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL3RhZ2dpbmc/T3BlcmF0aW9uPVRhZ1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ3NcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJUYWdzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC90YWdnaW5nP09wZXJhdGlvbj1VbnRhZ1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ0tleXNcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnS2V5c1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9vcmlnaW4tYWNjZXNzLWlkZW50aXR5L2Nsb3VkZnJvbnQve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlDb25maWdcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvZGlzdHJpYnV0aW9uL3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaXN0cmlidXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkRpc3RyaWJ1dGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMwL2ZpZWxkLWxldmVsLWVuY3J5cHRpb24ve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9maWVsZC1sZXZlbC1lbmNyeXB0aW9uLXByb2ZpbGUve0lkfS9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJtXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZUNvbmZpZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9jbG91ZGZyb250LmFtYXpvbmF3cy5jb20vZG9jLzIwMTctMTAtMzAvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVDb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvblByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uUHJvZmlsZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVB1YmxpY0tleVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0xMC0zMC9wdWJsaWMta2V5L3tJZH0vY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHVibGljS2V5Q29uZmlnXCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQdWJsaWNLZXlDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQdWJsaWNLZXlDb25maWdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vY2xvdWRmcm9udC5hbWF6b25hd3MuY29tL2RvYy8yMDE3LTEwLTMwL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTWF0Y2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUHVibGljS2V5Q29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHVibGljS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQdWJsaWNLZXlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTdHJlYW1pbmdEaXN0cmlidXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTctMTAtMzAvc3RyZWFtaW5nLWRpc3RyaWJ1dGlvbi97SWR9L2NvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uQ29uZmlnXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxNy0xMC0zMC9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiU3RyZWFtaW5nRGlzdHJpYnV0aW9uXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiQ29tbWVudFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiUzNDYW5vbmljYWxVc2VySWRcIjoge30sXG4gICAgICAgIFwiQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiT3JpZ2luc1wiLFxuICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCIsXG4gICAgICAgIFwiQ29tbWVudFwiLFxuICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdFJvb3RPYmplY3RcIjoge30sXG4gICAgICAgIFwiT3JpZ2luc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0Q2FjaGVCZWhhdmlvclwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZUJlaGF2aW9yc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VzdG9tRXJyb3JSZXNwb25zZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiTG9nZ2luZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgICAgIFwiSW5jbHVkZUNvb2tpZXNcIixcbiAgICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgICBcIlByZWZpeFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJbmNsdWRlQ29va2llc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgXCJQcmVmaXhcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJpY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWaWV3ZXJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzdHJpY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fSxcbiAgICAgICAgXCJIdHRwVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJJc0lQVjZFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ05BTUVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JpZ2luXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9yaWdpblBhdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tSGVhZGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JpZ2luQ3VzdG9tSGVhZGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkhlYWRlck5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVhZGVyVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNPcmlnaW5Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5BY2Nlc3NJZGVudGl0eVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDdXN0b21PcmlnaW5Db25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJIVFRQUG9ydFwiLFxuICAgICAgICAgICAgICAgICAgXCJIVFRQU1BvcnRcIixcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luUHJvdG9jb2xQb2xpY3lcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiSFRUUFBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkhUVFBTUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiT3JpZ2luUHJvdG9jb2xQb2xpY3lcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpblNzbFByb3RvY29sc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNzbFByb3RvY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIk9yaWdpblJlYWRUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJPcmlnaW5LZWVwYWxpdmVUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiVGFyZ2V0T3JpZ2luSWRcIixcbiAgICAgICAgXCJGb3J3YXJkZWRWYWx1ZXNcIixcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiLFxuICAgICAgICBcIlZpZXdlclByb3RvY29sUG9saWN5XCIsXG4gICAgICAgIFwiTWluVFRMXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhcmdldE9yaWdpbklkXCI6IHt9LFxuICAgICAgICBcIkZvcndhcmRlZFZhbHVlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWaWV3ZXJQcm90b2NvbFBvbGljeVwiOiB7fSxcbiAgICAgICAgXCJNaW5UVExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93ZWRNZXRob2RzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbW9vdGhTdHJlYW1pbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlZmF1bHRUVExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1heFRUTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcHJlc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvbklkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVlcnlTdHJpbmdcIixcbiAgICAgICAgXCJDb29raWVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1ZXJ5U3RyaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb29raWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRm9yd2FyZFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJGb3J3YXJkXCI6IHt9LFxuICAgICAgICAgICAgXCJXaGl0ZWxpc3RlZE5hbWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSGVhZGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVlcnlTdHJpbmdDYWNoZUtleXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXdzQWNjb3VudE51bWJlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlF1YW50aXR5XCIsXG4gICAgICAgIFwiSXRlbXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZWRNZXRob2RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIixcbiAgICAgICAgICAgIFwiSXRlbXNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWV0aG9kXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQVJOXCIsXG4gICAgICAgICAgICAgIFwiRXZlbnRUeXBlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkxhbWJkYUZ1bmN0aW9uQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkV2ZW50VHlwZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlQmVoYXZpb3JcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUGF0aFBhdHRlcm5cIixcbiAgICAgICAgICAgICAgXCJUYXJnZXRPcmlnaW5JZFwiLFxuICAgICAgICAgICAgICBcIkZvcndhcmRlZFZhbHVlc1wiLFxuICAgICAgICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgICAgICAgIFwiVmlld2VyUHJvdG9jb2xQb2xpY3lcIixcbiAgICAgICAgICAgICAgXCJNaW5UVExcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUGF0aFBhdHRlcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiVGFyZ2V0T3JpZ2luSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRm9yd2FyZGVkVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZpZXdlclByb3RvY29sUG9saWN5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1pblRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQWxsb3dlZE1ldGhvZHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNtb290aFN0cmVhbWluZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVmYXVsdFRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTWF4VFRMXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb21wcmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uSWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDdXN0b21FcnJvclJlc3BvbnNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlc3BvbnNlUGFnZVBhdGhcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVzcG9uc2VDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVycm9yQ2FjaGluZ01pblRUTFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDbG91ZEZyb250RGVmYXVsdENlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJQU1DZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICBcIkFDTUNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICBcIlNTTFN1cHBvcnRNZXRob2RcIjoge30sXG4gICAgICAgIFwiTWluaW11bVByb3RvY29sVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJDZXJ0aWZpY2F0ZVNvdXJjZVwiOiB7XG4gICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJHZW9SZXN0cmljdGlvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJHZW9SZXN0cmljdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlJlc3RyaWN0aW9uVHlwZVwiLFxuICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJSZXN0cmljdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiQVJOXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICBcIkluUHJvZ3Jlc3NJbnZhbGlkYXRpb25CYXRjaGVzXCIsXG4gICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICBcIkFjdGl2ZVRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkFSTlwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJblByb2dyZXNzSW52YWxpZGF0aW9uQmF0Y2hlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJBY3RpdmVUcnVzdGVkU2lnbmVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGlzdHJpYnV0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNpZ25lclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkF3c0FjY291bnROdW1iZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5UGFpcklkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5UGFpcklkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiUXVlcnlBcmdQcm9maWxlQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb250ZW50VHlwZVByb2ZpbGVDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkZvcndhcmRXaGVuUXVlcnlBcmdQcm9maWxlSXNVbmtub3duXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZvcndhcmRXaGVuUXVlcnlBcmdQcm9maWxlSXNVbmtub3duXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWVyeUFyZ1Byb2ZpbGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJRdWVyeUFyZ1Byb2ZpbGVcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiUXVlcnlBcmdcIixcbiAgICAgICAgICAgICAgICAgIFwiUHJvZmlsZUlkXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlF1ZXJ5QXJnXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJQcm9maWxlSWRcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRm9yd2FyZFdoZW5Db250ZW50VHlwZUlzVW5rbm93blwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGb3J3YXJkV2hlbkNvbnRlbnRUeXBlSXNVbmtub3duXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb250ZW50VHlwZVByb2ZpbGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50VHlwZVByb2ZpbGVcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiRm9ybWF0XCIsXG4gICAgICAgICAgICAgICAgICBcIkNvbnRlbnRUeXBlXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkZvcm1hdFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiUHJvZmlsZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJDb250ZW50VHlwZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIixcbiAgICAgICAgXCJGaWVsZExldmVsRW5jcnlwdGlvbkNvbmZpZ1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZpZWxkTGV2ZWxFbmNyeXB0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzI5XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMm1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCIsXG4gICAgICAgIFwiRW5jcnlwdGlvbkVudGl0aWVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgIFwiRW5jcnlwdGlvbkVudGl0aWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMm5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVuY3J5cHRpb25FbnRpdHlcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUHVibGljS2V5SWRcIixcbiAgICAgICAgICAgICAgXCJQcm92aWRlcklkXCIsXG4gICAgICAgICAgICAgIFwiRmllbGRQYXR0ZXJuc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQdWJsaWNLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcm92aWRlcklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkZpZWxkUGF0dGVybnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpZWxkUGF0dGVyblwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCIsXG4gICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmllbGRMZXZlbEVuY3J5cHRpb25Qcm9maWxlQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJtXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJQYXRoc1wiLFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQYXRoc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGF0aFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiQ3JlYXRlVGltZVwiLFxuICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkludmFsaWRhdGlvbkJhdGNoXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIixcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiRW5jb2RlZEtleVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmNvZGVkS2V5XCI6IHt9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJDcmVhdGVkVGltZVwiLFxuICAgICAgICBcIlB1YmxpY0tleUNvbmZpZ1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQdWJsaWNLZXlDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiLFxuICAgICAgICBcIlMzT3JpZ2luXCIsXG4gICAgICAgIFwiQ29tbWVudFwiLFxuICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCIsXG4gICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiUzNPcmlnaW5cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgXCJMb2dnaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICAgIFwiUHJlZml4XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRydXN0ZWRTaWduZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByaWNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICBcIk9yaWdpbkFjY2Vzc0lkZW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgIFwiT3JpZ2luQWNjZXNzSWRlbnRpdHlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJBUk5cIixcbiAgICAgICAgXCJTdGF0dXNcIixcbiAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgIFwiQWN0aXZlVHJ1c3RlZFNpZ25lcnNcIixcbiAgICAgICAgXCJTdHJlYW1pbmdEaXN0cmlidXRpb25Db25maWdcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgIFwiQWN0aXZlVHJ1c3RlZFNpZ25lcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0cmVhbWluZ0Rpc3RyaWJ1dGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgIFwiTWF4SXRlbXNcIixcbiAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICBcIlF1YW50aXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUXVhbnRpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXN0cmlidXRpb25TdW1tYXJ5XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgIFwiQVJOXCIsXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVGltZVwiLFxuICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICAgICAgXCJBbGlhc2VzXCIsXG4gICAgICAgICAgICAgIFwiT3JpZ2luc1wiLFxuICAgICAgICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCIsXG4gICAgICAgICAgICAgIFwiQ2FjaGVCZWhhdmlvcnNcIixcbiAgICAgICAgICAgICAgXCJDdXN0b21FcnJvclJlc3BvbnNlc1wiLFxuICAgICAgICAgICAgICBcIkNvbW1lbnRcIixcbiAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCIsXG4gICAgICAgICAgICAgIFwiRW5hYmxlZFwiLFxuICAgICAgICAgICAgICBcIlZpZXdlckNlcnRpZmljYXRlXCIsXG4gICAgICAgICAgICAgIFwiUmVzdHJpY3Rpb25zXCIsXG4gICAgICAgICAgICAgIFwiV2ViQUNMSWRcIixcbiAgICAgICAgICAgICAgXCJIdHRwVmVyc2lvblwiLFxuICAgICAgICAgICAgICBcIklzSVBWNkVuYWJsZWRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQWxpYXNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPcmlnaW5zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlZmF1bHRDYWNoZUJlaGF2aW9yXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNhY2hlQmVoYXZpb3JzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDdXN0b21FcnJvclJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcmljZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZpZXdlckNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXN0cmljdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIldlYkFDTElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkh0dHBWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIklzSVBWNkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0wNS0zMFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjbG91ZGhzbVwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkNsb3VkSFNNXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gQ2xvdWRIU01cIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkNsb3VkSFNNXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkNsb3VkSHNtRnJvbnRlbmRTZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJjbG91ZGhzbS0yMDE0LTA1LTMwXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NUb1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwiVGFnTGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVIYXBnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMYWJlbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYWJlbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhhcGdBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVIc21cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1Ym5ldElkXCIsXG4gICAgICAgICAgXCJTc2hLZXlcIixcbiAgICAgICAgICBcIklhbVJvbGVBcm5cIixcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvblR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNzaEtleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNzaEtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuaUlwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRW5pSXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJYW1Sb2xlQXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWFtUm9sZUFyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4dGVybmFsSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeHRlcm5hbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1YnNjcmlwdGlvblR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsaWVudFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3lzbG9nSXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTeXNsb2dJcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNyZWF0ZUhzbVJlcXVlc3RcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMdW5hQ2xpZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50QXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSGFwZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGFwZ0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIYXBnQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVIc21cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhzbUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21Bcm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIc21Bcm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZWxldGVIc21SZXF1ZXN0XCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVMdW5hQ2xpZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50QXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUhhcGdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhhcGdBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGFwZ0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhhcGdBcm5cIjoge30sXG4gICAgICAgICAgXCJIYXBnU2VyaWFsXCI6IHt9LFxuICAgICAgICAgIFwiSHNtc0xhc3RBY3Rpb25GYWlsZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSHNtc1BlbmRpbmdEZWxldGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIc21zUGVuZGluZ1JlZ2lzdHJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVzdGFtcFwiOiB7fSxcbiAgICAgICAgICBcIlBhcnRpdGlvblNlcmlhbExpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXRlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIc21cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQXJuXCI6IHt9LFxuICAgICAgICAgIFwiSHNtU2VyaWFsTnVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJFbmlJZFwiOiB7fSxcbiAgICAgICAgICBcIkVuaUlwXCI6IHt9LFxuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvblN0YXJ0RGF0ZVwiOiB7fSxcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbkVuZERhdGVcIjoge30sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgIFwiSWFtUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlNlcmlhbE51bWJlclwiOiB7fSxcbiAgICAgICAgICBcIlZlbmRvck5hbWVcIjoge30sXG4gICAgICAgICAgXCJIc21UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU29mdHdhcmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3NoUHVibGljS2V5XCI6IHt9LFxuICAgICAgICAgIFwiU3NoS2V5TGFzdFVwZGF0ZWRcIjoge30sXG4gICAgICAgICAgXCJTZXJ2ZXJDZXJ0VXJpXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmVyQ2VydExhc3RVcGRhdGVkXCI6IHt9LFxuICAgICAgICAgIFwiUGFydGl0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUx1bmFDbGllbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50QXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVGaW5nZXJwcmludFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudEFyblwiOiB7fSxcbiAgICAgICAgICBcIkNlcnRpZmljYXRlXCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVGaW5nZXJwcmludFwiOiB7fSxcbiAgICAgICAgICBcIkxhc3RNb2RpZmllZFRpbWVzdGFtcFwiOiB7fSxcbiAgICAgICAgICBcIkxhYmVsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29uZmlnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRBcm5cIixcbiAgICAgICAgICBcIkNsaWVudFZlcnNpb25cIixcbiAgICAgICAgICBcIkhhcGdMaXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudEFyblwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJIYXBnTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlnVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ0ZpbGVcIjoge30sXG4gICAgICAgICAgXCJDb25maWdDcmVkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEF2YWlsYWJsZVpvbmVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFaTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SGFwZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhhcGdMaXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhhcGdMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SHNtc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RMdW5hQ2xpZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50TGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ0xpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlIYXBnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIYXBnQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhhcGdBcm5cIjoge30sXG4gICAgICAgICAgXCJMYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIlBhcnRpdGlvblNlcmlhbExpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhhcGdBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlIc21cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhzbUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21Bcm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIc21Bcm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5pSXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFbmlJcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklhbVJvbGVBcm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJYW1Sb2xlQXJuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXh0ZXJuYWxJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV4dGVybmFsSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTeXNsb2dJcFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN5c2xvZ0lwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTW9kaWZ5SHNtUmVxdWVzdFwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhzbUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUx1bmFDbGllbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsaWVudEFyblwiLFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50QXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbVJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwiVGFnS2V5TGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzExXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMy0xMS0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjbG91ZHRyYWlsXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ2xvdWRUcmFpbFwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIENsb3VkVHJhaWxcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiY29tLmFtYXpvbmF3cy5jbG91ZHRyYWlsLnYyMDEzMTEwMS5DbG91ZFRyYWlsXzIwMTMxMTAxXCIsXG4gICAgXCJ1aWRcIjogXCJjbG91ZHRyYWlsLTIwMTMtMTEtMDFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJDcmVhdGVUcmFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiUzNCdWNrZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTM0tleVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkluY2x1ZGVHbG9iYWxTZXJ2aWNlRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc011bHRpUmVnaW9uVHJhaWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZUxvZ0ZpbGVWYWxpZGF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0xvZ0dyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY05hbWVcIjoge1xuICAgICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25zVG9waWNBUk5cIjoge30sXG4gICAgICAgICAgXCJJbmNsdWRlR2xvYmFsU2VydmljZUV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXNNdWx0aVJlZ2lvblRyYWlsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFpbEFSTlwiOiB7fSxcbiAgICAgICAgICBcIkxvZ0ZpbGVWYWxpZGF0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NMb2dHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJEZWxldGVUcmFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRyYWlsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0cmFpbE5hbWVMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImluY2x1ZGVTaGFkb3dUcmFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRyYWlsTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlMzS2V5UHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU25zVG9waWNOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNuc1RvcGljQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5jbHVkZUdsb2JhbFNlcnZpY2VFdmVudHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIklzTXVsdGlSZWdpb25UcmFpbFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSG9tZVJlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRyYWlsQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTG9nRmlsZVZhbGlkYXRpb25FbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0xvZ0dyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJIYXNDdXN0b21FdmVudFNlbGVjdG9yc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJHZXRFdmVudFNlbGVjdG9yc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhaWxOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWlsTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWlsQVJOXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTZWxlY3RvcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJHZXRUcmFpbFN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXNMb2dnaW5nXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXRlc3REZWxpdmVyeUVycm9yXCI6IHt9LFxuICAgICAgICAgIFwiTGF0ZXN0Tm90aWZpY2F0aW9uRXJyb3JcIjoge30sXG4gICAgICAgICAgXCJMYXRlc3REZWxpdmVyeVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF0ZXN0Tm90aWZpY2F0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydExvZ2dpbmdUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3BMb2dnaW5nVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXRlc3RDbG91ZFdhdGNoTG9nc0RlbGl2ZXJ5RXJyb3JcIjoge30sXG4gICAgICAgICAgXCJMYXRlc3RDbG91ZFdhdGNoTG9nc0RlbGl2ZXJ5VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXRlc3REaWdlc3REZWxpdmVyeVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF0ZXN0RGlnZXN0RGVsaXZlcnlFcnJvclwiOiB7fSxcbiAgICAgICAgICBcIkxhdGVzdERlbGl2ZXJ5QXR0ZW1wdFRpbWVcIjoge30sXG4gICAgICAgICAgXCJMYXRlc3ROb3RpZmljYXRpb25BdHRlbXB0VGltZVwiOiB7fSxcbiAgICAgICAgICBcIkxhdGVzdE5vdGlmaWNhdGlvbkF0dGVtcHRTdWNjZWVkZWRcIjoge30sXG4gICAgICAgICAgXCJMYXRlc3REZWxpdmVyeUF0dGVtcHRTdWNjZWVkZWRcIjoge30sXG4gICAgICAgICAgXCJUaW1lTG9nZ2luZ1N0YXJ0ZWRcIjoge30sXG4gICAgICAgICAgXCJUaW1lTG9nZ2luZ1N0b3BwZWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RQdWJsaWNLZXlzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlB1YmxpY0tleUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWYWxpZGl0eVN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWYWxpZGl0eUVuZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmluZ2VycHJpbnRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkTGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWdzTGlzdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxvb2t1cEV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb29rdXBBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlS2V5XCIsXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVWYWx1ZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFdmVudFNvdXJjZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDbG91ZFRyYWlsRXZlbnRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlB1dEV2ZW50U2VsZWN0b3JzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFpbE5hbWVcIixcbiAgICAgICAgICBcIkV2ZW50U2VsZWN0b3JzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWlsTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50U2VsZWN0b3JzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWlsQVJOXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTZWxlY3RvcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJUYWdzTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN0YXJ0TG9nZ2luZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdG9wTG9nZ2luZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJVcGRhdGVUcmFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJJbmNsdWRlR2xvYmFsU2VydmljZUV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXNNdWx0aVJlZ2lvblRyYWlsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVMb2dGaWxlVmFsaWRhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ3NMb2dHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzS2V5UHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNOYW1lXCI6IHtcbiAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuc1RvcGljQVJOXCI6IHt9LFxuICAgICAgICAgIFwiSW5jbHVkZUdsb2JhbFNlcnZpY2VFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzTXVsdGlSZWdpb25UcmFpbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhaWxBUk5cIjoge30sXG4gICAgICAgICAgXCJMb2dGaWxlVmFsaWRhdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzTG9nR3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc1JvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlYWRXcml0ZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJJbmNsdWRlTWFuYWdlbWVudEV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YVJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlVHJhaWxzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInRyYWlsTGlzdFwiXG4gICAgfSxcbiAgICBcIkxvb2t1cEV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTYtMTAtMDZcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY29kZWJ1aWxkXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgQ29kZUJ1aWxkXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkNvZGVCdWlsZF8yMDE2MTAwNlwiLFxuICAgIFwidWlkXCI6IFwiY29kZWJ1aWxkLTIwMTYtMTAtMDZcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQmF0Y2hEZWxldGVCdWlsZHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYnVpbGRzRGVsZXRlZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJidWlsZHNOb3REZWxldGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaEdldEJ1aWxkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJidWlsZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJidWlsZHNOb3RGb3VuZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaEdldFByb2plY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJvamVjdHNOb3RGb3VuZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUHJvamVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwic291cmNlXCIsXG4gICAgICAgICAgXCJhcnRpZmFjdHNcIixcbiAgICAgICAgICBcImVudmlyb25tZW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNhY2hlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICAgIFwidGltZW91dEluTWludXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW5jcnlwdGlvbktleVwiOiB7fSxcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZwY0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYmFkZ2VFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVXZWJob29rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcm9qZWN0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImJyYW5jaEZpbHRlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIndlYmhvb2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVByb2plY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVdlYmhvb2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByb2plY3ROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3ROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW52YWxpZGF0ZVByb2plY3RDYWNoZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QnVpbGRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNvcnRPcmRlclwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QnVpbGRzRm9yUHJvamVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJzb3J0T3JkZXJcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEN1cmF0ZWRFbnZpcm9ubWVudEltYWdlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwbGF0Zm9ybXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInBsYXRmb3JtXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibGFuZ3VhZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcImltYWdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFByb2plY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNvcnRCeVwiOiB7fSxcbiAgICAgICAgICBcInNvcnRPcmRlclwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcInByb2plY3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydEJ1aWxkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcm9qZWN0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInNvdXJjZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJhcnRpZmFjdHNPdmVycmlkZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW52aXJvbm1lbnRWYXJpYWJsZXNPdmVycmlkZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzb3VyY2VUeXBlT3ZlcnJpZGVcIjoge30sXG4gICAgICAgICAgXCJzb3VyY2VMb2NhdGlvbk92ZXJyaWRlXCI6IHt9LFxuICAgICAgICAgIFwic291cmNlQXV0aE92ZXJyaWRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdpdENsb25lRGVwdGhPdmVycmlkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYnVpbGRzcGVjT3ZlcnJpZGVcIjoge30sXG4gICAgICAgICAgXCJpbnNlY3VyZVNzbE92ZXJyaWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbnZpcm9ubWVudFR5cGVPdmVycmlkZVwiOiB7fSxcbiAgICAgICAgICBcImltYWdlT3ZlcnJpZGVcIjoge30sXG4gICAgICAgICAgXCJjb21wdXRlVHlwZU92ZXJyaWRlXCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVPdmVycmlkZVwiOiB7fSxcbiAgICAgICAgICBcImNhY2hlT3ZlcnJpZGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VydmljZVJvbGVPdmVycmlkZVwiOiB7fSxcbiAgICAgICAgICBcInByaXZpbGVnZWRNb2RlT3ZlcnJpZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRpbWVvdXRJbk1pbnV0ZXNPdmVycmlkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJ1aWxkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BCdWlsZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJidWlsZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQcm9qZWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNhY2hlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICAgIFwidGltZW91dEluTWludXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZW5jcnlwdGlvbktleVwiOiB7fSxcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZwY0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYmFkZ2VFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVXZWJob29rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcm9qZWN0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImJyYW5jaEZpbHRlclwiOiB7fSxcbiAgICAgICAgICBcInJvdGF0ZVNlY3JldFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwid2ViaG9va1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwic3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImVuZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3VycmVudFBoYXNlXCI6IHt9LFxuICAgICAgICBcImJ1aWxkU3RhdHVzXCI6IHt9LFxuICAgICAgICBcInNvdXJjZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwicHJvamVjdE5hbWVcIjoge30sXG4gICAgICAgIFwicGhhc2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInBoYXNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJwaGFzZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJzdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZW5kVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJkdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY29udGV4dHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJzaGEyNTZzdW1cIjoge30sXG4gICAgICAgICAgICBcIm1kNXN1bVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJjYWNoZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgXCJsb2dzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJncm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICBcInN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgICBcImRlZXBMaW5rXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInRpbWVvdXRJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImJ1aWxkQ29tcGxldGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImluaXRpYXRvclwiOiB7fSxcbiAgICAgICAgXCJ2cGNDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5ldHdvcmtJbnRlcmZhY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgICAgXCJuZXR3b3JrSW50ZXJmYWNlSWRcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwibG9jYXRpb25cIjoge30sXG4gICAgICAgIFwiZ2l0Q2xvbmVEZXB0aFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYnVpbGRzcGVjXCI6IHt9LFxuICAgICAgICBcImF1dGhcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5zZWN1cmVTc2xcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInJlc291cmNlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcImxvY2F0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiLFxuICAgICAgICBcImltYWdlXCIsXG4gICAgICAgIFwiY29tcHV0ZVR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJpbWFnZVwiOiB7fSxcbiAgICAgICAgXCJjb21wdXRlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJlbnZpcm9ubWVudFZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwcml2aWxlZ2VkTW9kZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY2VydGlmaWNhdGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJ2YWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge30sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ2cGNJZFwiOiB7fSxcbiAgICAgICAgXCJzdWJuZXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJzZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjYWNoZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgXCJ0aW1lb3V0SW5NaW51dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbmNyeXB0aW9uS2V5XCI6IHt9LFxuICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICB9LFxuICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIndlYmhvb2tcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICB9LFxuICAgICAgICBcInZwY0NvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYmFkZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImJhZGdlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiYmFkZ2VSZXF1ZXN0VXJsXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7fSxcbiAgICAgICAgXCJwYXRoXCI6IHt9LFxuICAgICAgICBcIm5hbWVzcGFjZVR5cGVcIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJwYWNrYWdpbmdcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidXJsXCI6IHt9LFxuICAgICAgICBcInBheWxvYWRVcmxcIjoge30sXG4gICAgICAgIFwic2VjcmV0XCI6IHt9LFxuICAgICAgICBcImJyYW5jaEZpbHRlclwiOiB7fSxcbiAgICAgICAgXCJsYXN0TW9kaWZpZWRTZWNyZXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTA0LTEzXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNvZGVjb21taXRcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJDb2RlQ29tbWl0XCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgQ29kZUNvbW1pdFwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiQ29kZUNvbW1pdFwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJDb2RlQ29tbWl0XzIwMTUwNDEzXCIsXG4gICAgXCJ1aWRcIjogXCJjb2RlY29tbWl0LTIwMTUtMDQtMTNcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQmF0Y2hHZXRSZXBvc2l0b3JpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVwb3NpdG9yaWVzTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQnJhbmNoXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwiYnJhbmNoTmFtZVwiLFxuICAgICAgICAgIFwiY29tbWl0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJicmFuY2hOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY29tbWl0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQdWxsUmVxdWVzdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGl0bGVcIixcbiAgICAgICAgICBcInRhcmdldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGl0bGVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgICAgICAgIFwic291cmNlUmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic291cmNlUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzdGluYXRpb25SZWZlcmVuY2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGllbnRSZXF1ZXN0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlcG9zaXRvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeURlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJyYW5jaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImJyYW5jaE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJicmFuY2hOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVsZXRlZEJyYW5jaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29tbWVudENvbnRlbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb21tZW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb21tZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZXBvc2l0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUHVsbFJlcXVlc3RFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0RXZlbnRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiYWN0b3JBcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RFdmVudHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJldmVudERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicHVsbFJlcXVlc3RFdmVudFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhY3RvckFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInB1bGxSZXF1ZXN0U3RhdHVzQ2hhbmdlZEV2ZW50TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInB1bGxSZXF1ZXN0U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInB1bGxSZXF1ZXN0U291cmNlUmVmZXJlbmNlVXBkYXRlZEV2ZW50TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImJlZm9yZUNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImFmdGVyQ29tbWl0SWRcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicHVsbFJlcXVlc3RNZXJnZWRTdGF0ZUNoYW5nZWRFdmVudE1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJkZXN0aW5hdGlvblJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZXJnZU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJsb2JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJibG9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJibG9iSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29udGVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCcmFuY2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJicmFuY2hOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYnJhbmNoXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb21tZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb21tZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29tbWVudHNGb3JDb21wYXJlZENvbW1pdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImFmdGVyQ29tbWl0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJiZWZvcmVDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImFmdGVyQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb21tZW50c0ZvckNvbXBhcmVkQ29tbWl0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJiZWZvcmVDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFmdGVyQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJiZWZvcmVCbG9iSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhZnRlckJsb2JJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjb21tZW50c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29tbWVudHNGb3JQdWxsUmVxdWVzdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJiZWZvcmVDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImFmdGVyQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb21tZW50c0ZvclB1bGxSZXF1ZXN0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYmVmb3JlQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhZnRlckNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYmVmb3JlQmxvYklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWZ0ZXJCbG9iSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY29tbWVudHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbW1pdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImNvbW1pdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY29tbWl0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29tbWl0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY29tbWl0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwidHJlZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcInBhcmVudHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgIFwiYXV0aG9yXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjb21taXR0ZXJcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFkZGl0aW9uYWxEYXRhXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERpZmZlcmVuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwiYWZ0ZXJDb21taXRTcGVjaWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJiZWZvcmVDb21taXRTcGVjaWZpZXJcIjoge30sXG4gICAgICAgICAgXCJhZnRlckNvbW1pdFNwZWNpZmllclwiOiB7fSxcbiAgICAgICAgICBcImJlZm9yZVBhdGhcIjoge30sXG4gICAgICAgICAgXCJhZnRlclBhdGhcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaWZmZXJlbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYmVmb3JlQmxvYlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYWZ0ZXJCbG9iXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjaGFuZ2VUeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TWVyZ2VDb25mbGljdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbkNvbW1pdFNwZWNpZmllclwiLFxuICAgICAgICAgIFwic291cmNlQ29tbWl0U3BlY2lmaWVyXCIsXG4gICAgICAgICAgXCJtZXJnZU9wdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc3RpbmF0aW9uQ29tbWl0U3BlY2lmaWVyXCI6IHt9LFxuICAgICAgICAgIFwic291cmNlQ29tbWl0U3BlY2lmaWVyXCI6IHt9LFxuICAgICAgICAgIFwibWVyZ2VPcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibWVyZ2VhYmxlXCIsXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbkNvbW1pdElkXCIsXG4gICAgICAgICAgXCJzb3VyY2VDb21taXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJtZXJnZWFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc3RpbmF0aW9uQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJzb3VyY2VDb21taXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFB1bGxSZXF1ZXN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVwb3NpdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVwb3NpdG9yeVRyaWdnZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbmZpZ3VyYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcInRyaWdnZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QnJhbmNoZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYnJhbmNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQdWxsUmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYXV0aG9yQXJuXCI6IHt9LFxuICAgICAgICAgIFwicHVsbFJlcXVlc3RTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlcG9zaXRvcmllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJzb3J0QnlcIjoge30sXG4gICAgICAgICAgXCJvcmRlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5SWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNZXJnZVB1bGxSZXF1ZXN0QnlGYXN0Rm9yd2FyZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiLFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic291cmNlQ29tbWl0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwdWxsUmVxdWVzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQb3N0Q29tbWVudEZvckNvbXBhcmVkQ29tbWl0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwiYWZ0ZXJDb21taXRJZFwiLFxuICAgICAgICAgIFwiY29udGVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImJlZm9yZUNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwiYWZ0ZXJDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250ZW50XCI6IHt9LFxuICAgICAgICAgIFwiY2xpZW50UmVxdWVzdFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYmVmb3JlQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJhZnRlckNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwiYmVmb3JlQmxvYklkXCI6IHt9LFxuICAgICAgICAgIFwiYWZ0ZXJCbG9iSWRcIjoge30sXG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJQb3N0Q29tbWVudEZvclB1bGxSZXF1ZXN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCIsXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwiYmVmb3JlQ29tbWl0SWRcIixcbiAgICAgICAgICBcImFmdGVyQ29tbWl0SWRcIixcbiAgICAgICAgICBcImNvbnRlbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYmVmb3JlQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJhZnRlckNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwibG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRlbnRcIjoge30sXG4gICAgICAgICAgXCJjbGllbnRSZXF1ZXN0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICAgIFwiYmVmb3JlQ29tbWl0SWRcIjoge30sXG4gICAgICAgICAgXCJhZnRlckNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwiYmVmb3JlQmxvYklkXCI6IHt9LFxuICAgICAgICAgIFwiYWZ0ZXJCbG9iSWRcIjoge30sXG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJQb3N0Q29tbWVudFJlcGx5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpblJlcGx5VG9cIixcbiAgICAgICAgICBcImNvbnRlbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5SZXBseVRvXCI6IHt9LFxuICAgICAgICAgIFwiY2xpZW50UmVxdWVzdFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRlbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb21tZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlB1dEZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJicmFuY2hOYW1lXCIsXG4gICAgICAgICAgXCJmaWxlQ29udGVudFwiLFxuICAgICAgICAgIFwiZmlsZVBhdGhcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJicmFuY2hOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZmlsZUNvbnRlbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpbGVQYXRoXCI6IHt9LFxuICAgICAgICAgIFwiZmlsZU1vZGVcIjoge30sXG4gICAgICAgICAgXCJwYXJlbnRDb21taXRJZFwiOiB7fSxcbiAgICAgICAgICBcImNvbW1pdE1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZW1haWxcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29tbWl0SWRcIixcbiAgICAgICAgICBcImJsb2JJZFwiLFxuICAgICAgICAgIFwidHJlZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbW1pdElkXCI6IHt9LFxuICAgICAgICAgIFwiYmxvYklkXCI6IHt9LFxuICAgICAgICAgIFwidHJlZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UmVwb3NpdG9yeVRyaWdnZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwidHJpZ2dlcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0cmlnZ2Vyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29uZmlndXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVzdFJlcG9zaXRvcnlUcmlnZ2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcInRyaWdnZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidHJpZ2dlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN1Y2Nlc3NmdWxFeGVjdXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWxlZEV4ZWN1dGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInRyaWdnZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJmYWlsdXJlTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNvbW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbW1lbnRJZFwiLFxuICAgICAgICAgIFwiY29udGVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb21tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJjb250ZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGVmYXVsdEJyYW5jaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImRlZmF1bHRCcmFuY2hOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVmYXVsdEJyYW5jaE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQdWxsUmVxdWVzdERlc2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUHVsbFJlcXVlc3RTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIixcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0U3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdFN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwdWxsUmVxdWVzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQdWxsUmVxdWVzdFRpdGxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCIsXG4gICAgICAgICAgXCJ0aXRsZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwdWxsUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICAgIFwidGl0bGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHVsbFJlcXVlc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUmVwb3NpdG9yeURlc2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlcG9zaXRvcnlOYW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJvbGROYW1lXCIsXG4gICAgICAgICAgXCJuZXdOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm9sZE5hbWVcIjoge30sXG4gICAgICAgICAgXCJuZXdOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhY2NvdW50SWRcIjoge30sXG4gICAgICAgIFwicmVwb3NpdG9yeUlkXCI6IHt9LFxuICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICBcInJlcG9zaXRvcnlEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJkZWZhdWx0QnJhbmNoXCI6IHt9LFxuICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImNsb25lVXJsSHR0cFwiOiB7fSxcbiAgICAgICAgXCJjbG9uZVVybFNzaFwiOiB7fSxcbiAgICAgICAgXCJBcm5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInB1bGxSZXF1ZXN0SWRcIjoge30sXG4gICAgICAgIFwidGl0bGVcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwibGFzdEFjdGl2aXR5RGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHVsbFJlcXVlc3RTdGF0dXNcIjoge30sXG4gICAgICAgIFwiYXV0aG9yQXJuXCI6IHt9LFxuICAgICAgICBcInB1bGxSZXF1ZXN0VGFyZ2V0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJzb3VyY2VSZWZlcmVuY2VcIjoge30sXG4gICAgICAgICAgICAgIFwiZGVzdGluYXRpb25SZWZlcmVuY2VcIjoge30sXG4gICAgICAgICAgICAgIFwiZGVzdGluYXRpb25Db21taXRcIjoge30sXG4gICAgICAgICAgICAgIFwic291cmNlQ29tbWl0XCI6IHt9LFxuICAgICAgICAgICAgICBcIm1lcmdlTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY2xpZW50UmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpc01lcmdlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVyZ2VkQnlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJicmFuY2hOYW1lXCI6IHt9LFxuICAgICAgICBcImNvbW1pdElkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiY29tbWVudElkXCI6IHt9LFxuICAgICAgICBcImNvbnRlbnRcIjoge30sXG4gICAgICAgIFwiaW5SZXBseVRvXCI6IHt9LFxuICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhvckFyblwiOiB7fSxcbiAgICAgICAgXCJkZWxldGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjbGllbnRSZXF1ZXN0VG9rZW5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJmaWxlUGF0aFwiOiB7fSxcbiAgICAgICAgXCJmaWxlUG9zaXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlbGF0aXZlRmlsZVZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJlbWFpbFwiOiB7fSxcbiAgICAgICAgXCJkYXRlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYmxvYklkXCI6IHt9LFxuICAgICAgICBcInBhdGhcIjoge30sXG4gICAgICAgIFwibW9kZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbkFyblwiLFxuICAgICAgICAgIFwiZXZlbnRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbkFyblwiOiB7fSxcbiAgICAgICAgICBcImN1c3RvbURhdGFcIjoge30sXG4gICAgICAgICAgXCJicmFuY2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlUHVsbFJlcXVlc3RFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkdldENvbW1lbnRzRm9yQ29tcGFyZWRDb21taXRcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkdldENvbW1lbnRzRm9yUHVsbFJlcXVlc3RcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkdldERpZmZlcmVuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJMaXN0QnJhbmNoZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImJyYW5jaGVzXCJcbiAgICB9LFxuICAgIFwiTGlzdFB1bGxSZXF1ZXN0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiTGlzdFJlcG9zaXRvcmllc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwicmVwb3NpdG9yaWVzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTEwLTA2XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImNvZGVkZXBsb3lcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJDb2RlRGVwbG95XCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgQ29kZURlcGxveVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiQ29kZURlcGxveVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJDb2RlRGVwbG95XzIwMTQxMDA2XCIsXG4gICAgXCJ0aW1lc3RhbXBGb3JtYXRcIjogXCJ1bml4VGltZXN0YW1wXCIsXG4gICAgXCJ1aWRcIjogXCJjb2RlZGVwbG95LTIwMTQtMTAtMDZcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkVGFnc1RvT25QcmVtaXNlc0luc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFnc1wiLFxuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImluc3RhbmNlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQmF0Y2hHZXRBcHBsaWNhdGlvblJldmlzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJyZXZpc2lvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmV2aXNpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImVycm9yTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcInJldmlzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicmV2aXNpb25Mb2NhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJnZW5lcmljUmV2aXNpb25JbmZvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoR2V0QXBwbGljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25zSW5mb1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJCYXRjaEdldERlcGxveW1lbnRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiZGVwbG95bWVudEdyb3VwTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudEdyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudEdyb3Vwc0luZm9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQmF0Y2hHZXREZXBsb3ltZW50SW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIixcbiAgICAgICAgICBcImluc3RhbmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcImluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZXNTdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVycm9yTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoR2V0RGVwbG95bWVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudHNJbmZvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoR2V0T25QcmVtaXNlc0luc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlSW5mb3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNxXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29udGludWVEZXBsb3ltZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY29tcHV0ZVBsYXRmb3JtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURlcGxveW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmV2aXNpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ05hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImlnbm9yZUFwcGxpY2F0aW9uU3RvcEZhaWx1cmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YXJnZXRJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVwZGF0ZU91dGRhdGVkSW5zdGFuY2VzT25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmlsZUV4aXN0c0JlaGF2aW9yXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGVwbG95bWVudENvbmZpZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ05hbWVcIjoge30sXG4gICAgICAgICAgXCJtaW5pbXVtSGVhbHRoeUhvc3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0cmFmZmljUm91dGluZ0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tcHV0ZVBsYXRmb3JtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGVwbG95bWVudEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cE5hbWVcIixcbiAgICAgICAgICBcInNlcnZpY2VSb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImVjMlRhZ0ZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9uUHJlbWlzZXNJbnN0YW5jZVRhZ0ZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dG9TY2FsaW5nR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcInRyaWdnZXJDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWxhcm1Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXBsb3ltZW50U3R5bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJsdWVHcmVlbkRlcGxveW1lbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2FkQmFsYW5jZXJJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlYzJUYWdTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9uUHJlbWlzZXNUYWdTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXBwbGljYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEZXBsb3ltZW50Q29uZmlnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURlcGxveW1lbnRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJob29rc05vdENsZWFuZWRVcFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlR2l0SHViQWNjb3VudFRva2VuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRva2VuTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRva2VuTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJPblByZW1pc2VzSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImluc3RhbmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBcHBsaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBcHBsaWNhdGlvblJldmlzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcInJldmlzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJldmlzaW9uSW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREZXBsb3ltZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudEluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERlcGxveW1lbnRDb25maWdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudENvbmZpZ0luZm9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJtaW5pbXVtSGVhbHRoeUhvc3RzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNvbXB1dGVQbGF0Zm9ybVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ0cmFmZmljUm91dGluZ0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGVwbG95bWVudEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVwbG95bWVudEdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRHcm91cEluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERlcGxveW1lbnRJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCIsXG4gICAgICAgICAgXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcImluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZVN1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE9uUHJlbWlzZXNJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlSW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFwcGxpY2F0aW9uUmV2aXNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwic29ydEJ5XCI6IHt9LFxuICAgICAgICAgIFwic29ydE9yZGVyXCI6IHt9LFxuICAgICAgICAgIFwiczNCdWNrZXRcIjoge30sXG4gICAgICAgICAgXCJzM0tleVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcImRlcGxveWVkXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmV2aXNpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBcHBsaWNhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REZXBsb3ltZW50Q29uZmlnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERlcGxveW1lbnRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REZXBsb3ltZW50SW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiaW5zdGFuY2VTdGF0dXNGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5zdGFuY2VUeXBlRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REZXBsb3ltZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaW5jbHVkZU9ubHlTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVUaW1lUmFuZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInN0YXJ0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImVuZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEdpdEh1YkFjY291bnRUb2tlbk5hbWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRva2VuTmFtZUxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdE9uUHJlbWlzZXNJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cmF0aW9uU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwidGFnRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRMaWZlY3ljbGVFdmVudEhvb2tFeGVjdXRpb25TdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICAgIFwibGlmZWN5Y2xlRXZlbnRIb29rRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsaWZlY3ljbGVFdmVudEhvb2tFeGVjdXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyQXBwbGljYXRpb25SZXZpc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJyZXZpc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyT25QcmVtaXNlc0luc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpbnN0YW5jZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5zdGFuY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaWFtU2Vzc2lvbkFyblwiOiB7fSxcbiAgICAgICAgICBcImlhbVVzZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbU9uUHJlbWlzZXNJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhZ3NcIixcbiAgICAgICAgICBcImluc3RhbmNlTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbnN0YW5jZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNraXBXYWl0VGltZUZvckluc3RhbmNlVGVybWluYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVwbG95bWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcERlcGxveW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRlcGxveW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgICAgXCJhdXRvUm9sbGJhY2tFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNNZXNzYWdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQXBwbGljYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwibmV3QXBwbGljYXRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGVwbG95bWVudEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcImN1cnJlbnREZXBsb3ltZW50R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImN1cnJlbnREZXBsb3ltZW50R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibmV3RGVwbG95bWVudEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlcGxveW1lbnRDb25maWdOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZWMyVGFnRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwib25QcmVtaXNlc0luc3RhbmNlVGFnRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXV0b1NjYWxpbmdHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlcnZpY2VSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwidHJpZ2dlckNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhbGFybUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlcGxveW1lbnRTdHlsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYmx1ZUdyZWVuRGVwbG95bWVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxvYWRCYWxhbmNlckluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVjMlRhZ1NldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwib25QcmVtaXNlc1RhZ1NldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaG9va3NOb3RDbGVhbmVkVXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJyZXZpc2lvblR5cGVcIjoge30sXG4gICAgICAgIFwiczNMb2NhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiYnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcImJ1bmRsZVR5cGVcIjoge30sXG4gICAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgICBcImVUYWdcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2l0SHViTG9jYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInJlcG9zaXRvcnlcIjoge30sXG4gICAgICAgICAgICBcImNvbW1pdElkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInN0cmluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiY29udGVudFwiOiB7fSxcbiAgICAgICAgICAgIFwic2hhMjU2XCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICB9LFxuICAgICAgICBcImZpcnN0VXNlZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdFVzZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlZ2lzdGVyVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uSWRcIjoge30sXG4gICAgICAgIFwiYXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGlua2VkVG9HaXRIdWJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImdpdEh1YkFjY291bnROYW1lXCI6IHt9LFxuICAgICAgICBcImNvbXB1dGVQbGF0Zm9ybVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgXCJkZXBsb3ltZW50R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcImRlcGxveW1lbnRDb25maWdOYW1lXCI6IHt9LFxuICAgICAgICBcImVjMlRhZ0ZpbHRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm9uUHJlbWlzZXNJbnN0YW5jZVRhZ0ZpbHRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICB9LFxuICAgICAgICBcImF1dG9TY2FsaW5nR3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJ0YXJnZXRSZXZpc2lvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0cmlnZ2VyQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICB9LFxuICAgICAgICBcImFsYXJtQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwbG95bWVudFN0eWxlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJibHVlR3JlZW5EZXBsb3ltZW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibG9hZEJhbGFuY2VySW5mb1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdFN1Y2Nlc3NmdWxEZXBsb3ltZW50XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJqXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsYXN0QXR0ZW1wdGVkRGVwbG95bWVudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZWMyVGFnU2V0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvblByZW1pc2VzVGFnU2V0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb21wdXRlUGxhdGZvcm1cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImhvb2tcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRyaWdnZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidHJpZ2dlclRhcmdldEFyblwiOiB7fSxcbiAgICAgICAgICBcInRyaWdnZXJFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJlbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpZ25vcmVQb2xsQWxhcm1GYWlsdXJlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGFybXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImV2ZW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkZXBsb3ltZW50VHlwZVwiOiB7fSxcbiAgICAgICAgXCJkZXBsb3ltZW50T3B0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidGVybWluYXRlQmx1ZUluc3RhbmNlc09uRGVwbG95bWVudFN1Y2Nlc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgIFwidGVybWluYXRpb25XYWl0VGltZUluTWludXRlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXBsb3ltZW50UmVhZHlPcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImFjdGlvbk9uVGltZW91dFwiOiB7fSxcbiAgICAgICAgICAgIFwid2FpdFRpbWVJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ3JlZW5GbGVldFByb3Zpc2lvbmluZ09wdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiYWN0aW9uXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZWxiSW5mb0xpc3RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJ0YXJnZXRHcm91cEluZm9MaXN0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcImVuZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMm1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImVjMlRhZ1NldExpc3RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJvblByZW1pc2VzVGFnU2V0TGlzdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzJ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgIFwiaW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwibGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsaWZlY3ljbGVFdmVudHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibGlmZWN5Y2xlRXZlbnROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcImRpYWdub3N0aWNzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJlcnJvckNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcInNjcmlwdE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgICBcImxvZ1RhaWxcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImVuZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImluc3RhbmNlVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlnTmFtZVwiOiB7fSxcbiAgICAgICAgXCJkZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgIFwicHJldmlvdXNSZXZpc2lvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXZpc2lvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwiZXJyb3JJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiY29kZVwiOiB7fSxcbiAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJjcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb21wbGV0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwbG95bWVudE92ZXJ2aWV3XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQZW5kaW5nXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJblByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdWNjZWVkZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkZhaWxlZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU2tpcHBlZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVhZHlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiY3JlYXRvclwiOiB7fSxcbiAgICAgICAgXCJpZ25vcmVBcHBsaWNhdGlvblN0b3BGYWlsdXJlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXBkYXRlT3V0ZGF0ZWRJbnN0YW5jZXNPbmx5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyb2xsYmFja0luZm9cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInJvbGxiYWNrRGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICAgICAgXCJyb2xsYmFja1RyaWdnZXJpbmdEZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgICAgICBcInJvbGxiYWNrTWVzc2FnZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXBsb3ltZW50U3R5bGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICB9LFxuICAgICAgICBcInRhcmdldEluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5zdGFuY2VUZXJtaW5hdGlvbldhaXRUaW1lU3RhcnRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYmx1ZUdyZWVuRGVwbG95bWVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICB9LFxuICAgICAgICBcImxvYWRCYWxhbmNlckluZm9cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxEZXBsb3ltZW50U3RhdHVzSW5mb1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJmaWxlRXhpc3RzQmVoYXZpb3JcIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudFN0YXR1c01lc3NhZ2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJjb21wdXRlUGxhdGZvcm1cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0YWdGaWx0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXRvU2NhbGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzalwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZWMyVGFnU2V0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJtXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpbnN0YW5jZU5hbWVcIjoge30sXG4gICAgICAgIFwiaWFtU2Vzc2lvbkFyblwiOiB7fSxcbiAgICAgICAgXCJpYW1Vc2VyQXJuXCI6IHt9LFxuICAgICAgICBcImluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICBcInJlZ2lzdGVyVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXJlZ2lzdGVyVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0MFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInRpbWVCYXNlZENhbmFyeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiY2FuYXJ5UGVyY2VudGFnZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiY2FuYXJ5SW50ZXJ2YWxcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwidGltZUJhc2VkTGluZWFyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJsaW5lYXJQZXJjZW50YWdlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJsaW5lYXJJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RBcHBsaWNhdGlvblJldmlzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwicmV2aXNpb25zXCJcbiAgICB9LFxuICAgIFwiTGlzdEFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiYXBwbGljYXRpb25zXCJcbiAgICB9LFxuICAgIFwiTGlzdERlcGxveW1lbnRDb25maWdzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJkZXBsb3ltZW50Q29uZmlnc0xpc3RcIlxuICAgIH0sXG4gICAgXCJMaXN0RGVwbG95bWVudEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiZGVwbG95bWVudEdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkxpc3REZXBsb3ltZW50SW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpbnN0YW5jZXNMaXN0XCJcbiAgICB9LFxuICAgIFwiTGlzdERlcGxveW1lbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJkZXBsb3ltZW50c1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIkRlcGxveW1lbnRTdWNjZXNzZnVsXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkdldERlcGxveW1lbnRcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTIwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlN1Y2NlZWRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJkZXBsb3ltZW50SW5mby5zdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJkZXBsb3ltZW50SW5mby5zdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlN0b3BwZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiZGVwbG95bWVudEluZm8uc3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wNy0wOVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjb2RlcGlwZWxpbmVcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJDb2RlUGlwZWxpbmVcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBDb2RlUGlwZWxpbmVcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQ29kZVBpcGVsaW5lXzIwMTUwNzA5XCIsXG4gICAgXCJ1aWRcIjogXCJjb2RlcGlwZWxpbmUtMjAxNS0wNy0wOVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBY2tub3dsZWRnZUpvYlwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIixcbiAgICAgICAgICBcIm5vbmNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwibm9uY2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBY2tub3dsZWRnZVRoaXJkUGFydHlKb2JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCIsXG4gICAgICAgICAgXCJub25jZVwiLFxuICAgICAgICAgIFwiY2xpZW50VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iSWRcIjoge30sXG4gICAgICAgICAgXCJub25jZVwiOiB7fSxcbiAgICAgICAgICBcImNsaWVudFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ3VzdG9tQWN0aW9uVHlwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2F0ZWdvcnlcIixcbiAgICAgICAgICBcInByb3ZpZGVyXCIsXG4gICAgICAgICAgXCJ2ZXJzaW9uXCIsXG4gICAgICAgICAgXCJpbnB1dEFydGlmYWN0RGV0YWlsc1wiLFxuICAgICAgICAgIFwib3V0cHV0QXJ0aWZhY3REZXRhaWxzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNhdGVnb3J5XCI6IHt9LFxuICAgICAgICAgIFwicHJvdmlkZXJcIjoge30sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwic2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29uZmlndXJhdGlvblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5wdXRBcnRpZmFjdERldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwib3V0cHV0QXJ0aWZhY3REZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhY3Rpb25UeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFjdGlvblR5cGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUGlwZWxpbmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBpcGVsaW5lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUN1c3RvbUFjdGlvblR5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNhdGVnb3J5XCIsXG4gICAgICAgICAgXCJwcm92aWRlclwiLFxuICAgICAgICAgIFwidmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjYXRlZ29yeVwiOiB7fSxcbiAgICAgICAgICBcInByb3ZpZGVyXCI6IHt9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVXZWJob29rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyV2ViaG9va1dpdGhUaGlyZFBhcnR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIndlYmhvb2tOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZVN0YWdlVHJhbnNpdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCIsXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIixcbiAgICAgICAgICBcInRyYW5zaXRpb25UeXBlXCIsXG4gICAgICAgICAgXCJyZWFzb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidHJhbnNpdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJyZWFzb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVTdGFnZVRyYW5zaXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBpcGVsaW5lTmFtZVwiLFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCIsXG4gICAgICAgICAgXCJ0cmFuc2l0aW9uVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0cmFuc2l0aW9uVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEpvYkRldGFpbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9iRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYWNjb3VudElkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwicGlwZWxpbmVBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ1cGRhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBpcGVsaW5lRXhlY3V0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIixcbiAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicGlwZWxpbmVFeGVjdXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJwaXBlbGluZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwicGlwZWxpbmVWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJwaXBlbGluZUV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJhcnRpZmFjdFJldmlzaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInJldmlzaW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwicmV2aXNpb25DaGFuZ2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInJldmlzaW9uU3VtbWFyeVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcInJldmlzaW9uVXJsXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBpcGVsaW5lU3RhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBpcGVsaW5lVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhZ2VTdGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImluYm91bmRUcmFuc2l0aW9uU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImxhc3RDaGFuZ2VkQnlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwibGFzdENoYW5nZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJkaXNhYmxlZFJlYXNvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhY3Rpb25TdGF0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImFjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJjdXJyZW50UmV2aXNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcImxhdGVzdEV4ZWN1dGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInN1bW1hcnlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibGFzdFN0YXR1c0NoYW5nZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0b2tlblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZEJ5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4dGVybmFsRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXh0ZXJuYWxFeGVjdXRpb25VcmxcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwicGVyY2VudENvbXBsZXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlcnJvckRldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiZW50aXR5VXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwicmV2aXNpb25VcmxcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJsYXRlc3RFeGVjdXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJwaXBlbGluZUV4ZWN1dGlvbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXBkYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRUaGlyZFBhcnR5Sm9iRGV0YWlsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIixcbiAgICAgICAgICBcImNsaWVudFRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiY2xpZW50VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJhY3Rpb25UeXBlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiYWN0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwicGlwZWxpbmVDb250ZXh0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJpbnB1dEFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwib3V0cHV0QXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJhcnRpZmFjdENyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJjb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiZW5jcnlwdGlvbktleVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJub25jZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QWN0aW9uVHlwZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYWN0aW9uT3duZXJGaWx0ZXJcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYWN0aW9uVHlwZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYWN0aW9uVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UGlwZWxpbmVFeGVjdXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVFeGVjdXRpb25TdW1tYXJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibGFzdFVwZGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic291cmNlUmV2aXNpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWN0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwicmV2aXNpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJldmlzaW9uU3VtbWFyeVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJldmlzaW9uVXJsXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFBpcGVsaW5lc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInVwZGF0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFdlYmhvb2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIndlYmhvb2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlBvbGxGb3JKb2JzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhY3Rpb25UeXBlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYWN0aW9uVHlwZUlkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heEJhdGNoU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicXVlcnlQYXJhbVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm5vbmNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWNjb3VudElkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUG9sbEZvclRoaXJkUGFydHlKb2JzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhY3Rpb25UeXBlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYWN0aW9uVHlwZUlkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heEJhdGNoU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9ic1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiY2xpZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJqb2JJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEFjdGlvblJldmlzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiLFxuICAgICAgICAgIFwiYWN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiYWN0aW9uUmV2aXNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic3RhZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYWN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImFjdGlvblJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXdSZXZpc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGlwZWxpbmVFeGVjdXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEFwcHJvdmFsUmVzdWx0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiLFxuICAgICAgICAgIFwiYWN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwicmVzdWx0XCIsXG4gICAgICAgICAgXCJ0b2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJzdGFnZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJhY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmVzdWx0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwic3VtbWFyeVwiLFxuICAgICAgICAgICAgICBcInN0YXR1c1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJzdW1tYXJ5XCI6IHt9LFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0b2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFwcHJvdmVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0Sm9iRmFpbHVyZVJlc3VsdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIixcbiAgICAgICAgICBcImZhaWx1cmVEZXRhaWxzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiZmFpbHVyZURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1OFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEpvYlN1Y2Nlc3NSZXN1bHRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiY3VycmVudFJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICBcImV4ZWN1dGlvbkRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFRoaXJkUGFydHlKb2JGYWlsdXJlUmVzdWx0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiLFxuICAgICAgICAgIFwiY2xpZW50VG9rZW5cIixcbiAgICAgICAgICBcImZhaWx1cmVEZXRhaWxzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiY2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJmYWlsdXJlRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0VGhpcmRQYXJ0eUpvYlN1Y2Nlc3NSZXN1bHRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCIsXG4gICAgICAgICAgXCJjbGllbnRUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICBcImNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiY3VycmVudFJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICBcImV4ZWN1dGlvbkRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFdlYmhvb2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIndlYmhvb2tcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwid2ViaG9va1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwid2ViaG9va1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJXZWJob29rV2l0aFRoaXJkUGFydHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwid2ViaG9va05hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXRyeVN0YWdlRXhlY3V0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaXBlbGluZU5hbWVcIixcbiAgICAgICAgICBcInN0YWdlTmFtZVwiLFxuICAgICAgICAgIFwicGlwZWxpbmVFeGVjdXRpb25JZFwiLFxuICAgICAgICAgIFwicmV0cnlNb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBpcGVsaW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInN0YWdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBpcGVsaW5lRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJyZXRyeU1vZGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZUV4ZWN1dGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRQaXBlbGluZUV4ZWN1dGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGlwZWxpbmVFeGVjdXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaXBlbGluZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRoaXJkUGFydHlDb25maWd1cmF0aW9uVXJsXCI6IHt9LFxuICAgICAgICBcImVudGl0eVVybFRlbXBsYXRlXCI6IHt9LFxuICAgICAgICBcImV4ZWN1dGlvblVybFRlbXBsYXRlXCI6IHt9LFxuICAgICAgICBcInJldmlzaW9uVXJsVGVtcGxhdGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiLFxuICAgICAgICAgIFwia2V5XCIsXG4gICAgICAgICAgXCJzZWNyZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJrZXlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlY3JldFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicXVlcnlhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIm1pbmltdW1Db3VudFwiLFxuICAgICAgICBcIm1heGltdW1Db3VudFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJtaW5pbXVtQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heGltdW1Db3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJpZFwiLFxuICAgICAgICBcImlucHV0QXJ0aWZhY3REZXRhaWxzXCIsXG4gICAgICAgIFwib3V0cHV0QXJ0aWZhY3REZXRhaWxzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICB9LFxuICAgICAgICBcInNldHRpbmdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICB9LFxuICAgICAgICBcImFjdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICB9LFxuICAgICAgICBcImlucHV0QXJ0aWZhY3REZXRhaWxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICB9LFxuICAgICAgICBcIm91dHB1dEFydGlmYWN0RGV0YWlsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcImNhdGVnb3J5XCIsXG4gICAgICAgIFwib3duZXJcIixcbiAgICAgICAgXCJwcm92aWRlclwiLFxuICAgICAgICBcInZlcnNpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiY2F0ZWdvcnlcIjoge30sXG4gICAgICAgIFwib3duZXJcIjoge30sXG4gICAgICAgIFwicHJvdmlkZXJcIjoge30sXG4gICAgICAgIFwidmVyc2lvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgIFwiYXJ0aWZhY3RTdG9yZVwiLFxuICAgICAgICBcInN0YWdlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgIFwiYXJ0aWZhY3RTdG9yZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInR5cGVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjoge30sXG4gICAgICAgICAgICBcImVuY3J5cHRpb25LZXlcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhZ2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgIFwiYWN0aW9uc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcImJsb2NrZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYWN0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImFjdGlvblR5cGVJZFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImFjdGlvblR5cGVJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJydW5PcmRlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiY29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwib3V0cHV0QXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiaW5wdXRBcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcImlkXCIsXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgXCJ0eXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMjJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFjdGlvblR5cGVJZFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhY3Rpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwaXBlbGluZUNvbnRleHRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICB9LFxuICAgICAgICBcImlucHV0QXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvdXRwdXRBcnRpZmFjdHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICB9LFxuICAgICAgICBcImFydGlmYWN0Q3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbnRpbnVhdGlvblRva2VuXCI6IHt9LFxuICAgICAgICBcImVuY3J5cHRpb25LZXlcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiY29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJwaXBlbGluZU5hbWVcIjoge30sXG4gICAgICAgIFwic3RhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWN0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJuYW1lXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJldmlzaW9uXCI6IHt9LFxuICAgICAgICAgIFwibG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiczNMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICBcImJ1Y2tldE5hbWVcIixcbiAgICAgICAgICAgICAgICAgIFwib2JqZWN0S2V5XCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImJ1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIm9iamVjdEtleVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJhY2Nlc3NLZXlJZFwiLFxuICAgICAgICBcInNlY3JldEFjY2Vzc0tleVwiLFxuICAgICAgICBcInNlc3Npb25Ub2tlblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhY2Nlc3NLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJzZWNyZXRBY2Nlc3NLZXlcIjoge30sXG4gICAgICAgIFwic2Vzc2lvblRva2VuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJyZXZpc2lvbklkXCIsXG4gICAgICAgIFwicmV2aXNpb25DaGFuZ2VJZFwiLFxuICAgICAgICBcImNyZWF0ZWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicmV2aXNpb25JZFwiOiB7fSxcbiAgICAgICAgXCJyZXZpc2lvbkNoYW5nZUlkXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiZGVmaW5pdGlvblwiLFxuICAgICAgICBcInVybFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkZWZpbml0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1cmxcIjoge30sXG4gICAgICAgIFwiZXJyb3JNZXNzYWdlXCI6IHt9LFxuICAgICAgICBcImVycm9yQ29kZVwiOiB7fSxcbiAgICAgICAgXCJsYXN0VHJpZ2dlcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImFyblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgIFwidGFyZ2V0UGlwZWxpbmVcIixcbiAgICAgICAgXCJ0YXJnZXRBY3Rpb25cIixcbiAgICAgICAgXCJmaWx0ZXJzXCIsXG4gICAgICAgIFwiYXV0aGVudGljYXRpb25cIixcbiAgICAgICAgXCJhdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJ0YXJnZXRQaXBlbGluZVwiOiB7fSxcbiAgICAgICAgXCJ0YXJnZXRBY3Rpb25cIjoge30sXG4gICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwianNvblBhdGhcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwianNvblBhdGhcIjoge30sXG4gICAgICAgICAgICAgIFwibWF0Y2hFcXVhbHNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYXV0aGVudGljYXRpb25cIjoge30sXG4gICAgICAgIFwiYXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBbGxvd2VkSVBSYW5nZVwiOiB7fSxcbiAgICAgICAgICAgIFwiU2VjcmV0VG9rZW5cIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzU4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiLFxuICAgICAgICBcIm1lc3NhZ2VcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJtZXNzYWdlXCI6IHt9LFxuICAgICAgICBcImV4dGVybmFsRXhlY3V0aW9uSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzViXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwicmV2aXNpb25cIixcbiAgICAgICAgXCJjaGFuZ2VJZGVudGlmaWVyXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInJldmlzaW9uXCI6IHt9LFxuICAgICAgICBcImNoYW5nZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXZpc2lvblN1bW1hcnlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJzdW1tYXJ5XCI6IHt9LFxuICAgICAgICBcImV4dGVybmFsRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgIFwicGVyY2VudENvbXBsZXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMDYtMzBcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY29nbml0by1pZGVudGl0eVwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIENvZ25pdG8gSWRlbnRpdHlcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQVdTQ29nbml0b0lkZW50aXR5U2VydmljZVwiLFxuICAgIFwidWlkXCI6IFwiY29nbml0by1pZGVudGl0eS0yMDE0LTA2LTMwXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNyZWF0ZUlkZW50aXR5UG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sTmFtZVwiLFxuICAgICAgICAgIFwiQWxsb3dVbmF1dGhlbnRpY2F0ZWRJZGVudGl0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbE5hbWVcIjoge30sXG4gICAgICAgICAgXCJBbGxvd1VuYXV0aGVudGljYXRlZElkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1cHBvcnRlZExvZ2luUHJvdmlkZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmVsb3BlclByb3ZpZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wZW5JZENvbm5lY3RQcm92aWRlckFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29nbml0b0lkZW50aXR5UHJvdmlkZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNhbWxQcm92aWRlckFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUlkZW50aXRpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5SWRzVG9EZWxldGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZHNUb0RlbGV0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVbnByb2Nlc3NlZElkZW50aXR5SWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JDb2RlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSWRlbnRpdHlQb29sXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSWRlbnRpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUlkZW50aXR5UG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICAgIFwiTG9naW5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbVJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFjY2Vzc0tleUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNlY3JldEtleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTZXNzaW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgICAgIFwiRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJMb2dpbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldElkZW50aXR5UG9vbFJvbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0T3BlbklkVG9rZW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICBcIkxvZ2luc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICAgIFwiVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRPcGVuSWRUb2tlbkZvckRldmVsb3BlcklkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiLFxuICAgICAgICAgIFwiTG9naW5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICBcIkxvZ2luc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb2tlbkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHt9LFxuICAgICAgICAgIFwiVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SWRlbnRpdGllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJIaWRlRGlzYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiSWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJZGVudGl0eVBvb2xzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSWRlbnRpdHlQb29sTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxvb2t1cERldmVsb3BlcklkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgICAgXCJEZXZlbG9wZXJVc2VySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgICAgXCJEZXZlbG9wZXJVc2VySWRlbnRpZmllckxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTWVyZ2VEZXZlbG9wZXJJZGVudGl0aWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VVc2VySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiRGVzdGluYXRpb25Vc2VySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiRGV2ZWxvcGVyUHJvdmlkZXJOYW1lXCIsXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VVc2VySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uVXNlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEZXZlbG9wZXJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJZGVudGl0eVBvb2xSb2xlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIlJvbGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW5saW5rRGV2ZWxvcGVySWRlbnRpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIixcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJEZXZlbG9wZXJQcm92aWRlck5hbWVcIixcbiAgICAgICAgICBcIkRldmVsb3BlclVzZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkRldmVsb3BlclByb3ZpZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRldmVsb3BlclVzZXJJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW5saW5rSWRlbnRpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5SWRcIixcbiAgICAgICAgICBcIkxvZ2luc1wiLFxuICAgICAgICAgIFwiTG9naW5zVG9SZW1vdmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICBcIkxvZ2luc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2dpbnNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVJZGVudGl0eVBvb2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZVRva2VuQ2hlY2tcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgXCJJZGVudGl0eVBvb2xOYW1lXCIsXG4gICAgICAgIFwiQWxsb3dVbmF1dGhlbnRpY2F0ZWRJZGVudGl0aWVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICBcIklkZW50aXR5UG9vbE5hbWVcIjoge30sXG4gICAgICAgIFwiQWxsb3dVbmF1dGhlbnRpY2F0ZWRJZGVudGl0aWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdXBwb3J0ZWRMb2dpblByb3ZpZGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXZlbG9wZXJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgIFwiT3BlbklkQ29ubmVjdFByb3ZpZGVyQVJOc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb2duaXRvSWRlbnRpdHlQcm92aWRlcnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2FtbFByb3ZpZGVyQVJOc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgXCJMb2dpbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzE4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFtYmlndW91c1JvbGVSZXNvbHV0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZXNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUnVsZXNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkNsYWltXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTWF0Y2hUeXBlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJSb2xlQVJOXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNsYWltXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk1hdGNoVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNi0wNC0xOFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjb2duaXRvLWlkcFwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIENvZ25pdG8gSWRlbnRpdHkgUHJvdmlkZXJcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQVdTQ29nbml0b0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJjb2duaXRvLWlkcC0yMDE2LTA0LTE4XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZEN1c3RvbUF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkN1c3RvbUF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkFkZFVzZXJUb0dyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkNvbmZpcm1TaWduVXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkNyZWF0ZVVzZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZGF0aW9uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZW1wb3JhcnlQYXNzd29yZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb3JjZUFsaWFzQ3JlYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1lc3NhZ2VBY3Rpb25cIjoge30sXG4gICAgICAgICAgXCJEZXNpcmVkRGVsaXZlcnlNZWRpdW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5EZWxldGVVc2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5EZWxldGVVc2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIlVzZXJBdHRyaWJ1dGVOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluRGlzYWJsZVByb3ZpZGVyRm9yVXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5EaXNhYmxlVXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluRW5hYmxlVXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluRm9yZ2V0RGV2aWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiRGV2aWNlS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXZpY2VLZXlcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkdldERldmljZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGV2aWNlS2V5XCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VLZXlcIjoge30sXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRldmljZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluR2V0VXNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQ3JlYXRlRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiTUZBT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNZmFTZXR0aW5nXCI6IHt9LFxuICAgICAgICAgIFwiVXNlck1GQVNldHRpbmdMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkluaXRpYXRlQXV0aFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiQ2xpZW50SWRcIixcbiAgICAgICAgICBcIkF1dGhGbG93XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aEZsb3dcIjoge30sXG4gICAgICAgICAgXCJBdXRoUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50TWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFuYWx5dGljc01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZXh0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJDaGFsbGVuZ2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblJlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5MaW5rUHJvdmlkZXJGb3JVc2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblVzZXJcIixcbiAgICAgICAgICBcIlNvdXJjZVVzZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uVXNlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlVXNlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5MaXN0RGV2aWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdpbmF0aW9uVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdpbmF0aW9uVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pbkxpc3RHcm91cHNGb3JVc2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5MaXN0VXNlckF1dGhFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFdmVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50UmVzcG9uc2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudFJpc2tcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlJpc2tEZWNpc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJSaXNrTGV2ZWxcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2hhbGxlbmdlUmVzcG9uc2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJDaGFsbGVuZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbGxlbmdlUmVzcG9uc2VcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFdmVudENvbnRleHREYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJcEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRGV2aWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJUaW1lem9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDaXR5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkNvdW50cnlcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRGZWVkYmFja1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkZlZWRiYWNrVmFsdWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJQcm92aWRlclwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJGZWVkYmFja1ZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlByb3ZpZGVyXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkZlZWRiYWNrRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pblJlbW92ZVVzZXJGcm9tR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluUmVzZXRVc2VyUGFzc3dvcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pblJlc3BvbmRUb0F1dGhDaGFsbGVuZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkNsaWVudElkXCIsXG4gICAgICAgICAgXCJDaGFsbGVuZ2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYWxsZW5nZVJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2Vzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFuYWx5dGljc01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZXh0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJDaGFsbGVuZ2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblJlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5TZXRVc2VyTUZBUHJlZmVyZW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU01TTWZhU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvZnR3YXJlVG9rZW5NZmFTZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluU2V0VXNlclNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiTUZBT3B0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTUZBT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pblVwZGF0ZUF1dGhFdmVudEZlZWRiYWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiRXZlbnRJZFwiLFxuICAgICAgICAgIFwiRmVlZGJhY2tWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkZlZWRiYWNrVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZG1pblVwZGF0ZURldmljZVN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIkRldmljZUtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGV2aWNlS2V5XCI6IHt9LFxuICAgICAgICAgIFwiRGV2aWNlUmVtZW1iZXJlZFN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkbWluVXBkYXRlVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRtaW5Vc2VyR2xvYmFsU2lnbk91dFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZVNvZnR3YXJlVG9rZW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZWNyZXRDb2RlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXNzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2hhbmdlUGFzc3dvcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByZXZpb3VzUGFzc3dvcmRcIixcbiAgICAgICAgICBcIlByb3Bvc2VkUGFzc3dvcmRcIixcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByZXZpb3VzUGFzc3dvcmRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvcG9zZWRQYXNzd29yZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIkNvbmZpcm1EZXZpY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCIsXG4gICAgICAgICAgXCJEZXZpY2VLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZUtleVwiOiB7fSxcbiAgICAgICAgICBcIkRldmljZVNlY3JldFZlcmlmaWVyQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQYXNzd29yZFZlcmlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNhbHRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGV2aWNlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJDb25maXJtYXRpb25OZWNlc3NhcnlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbmZpcm1Gb3Jnb3RQYXNzd29yZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50SWRcIixcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJDb25maXJtYXRpb25Db2RlXCIsXG4gICAgICAgICAgXCJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjcmV0SGFzaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZmlybWF0aW9uQ29kZVwiOiB7fSxcbiAgICAgICAgICBcIlBhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFuYWx5dGljc01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQ29udGV4dERhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJDb25maXJtU2lnblVwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIkNvbmZpcm1hdGlvbkNvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3JldEhhc2hcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbmZpcm1hdGlvbkNvZGVcIjoge30sXG4gICAgICAgICAgXCJGb3JjZUFsaWFzQ3JlYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFuYWx5dGljc01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQ29udGV4dERhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJDcmVhdGVHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJQcmVjZWRlbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSWRlbnRpdHlQcm92aWRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiUHJvdmlkZXJOYW1lXCIsXG4gICAgICAgICAgXCJQcm92aWRlclR5cGVcIixcbiAgICAgICAgICBcIlByb3ZpZGVyRGV0YWlsc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVNYXBwaW5nXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZHBJZGVudGlmaWVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UHJvdmlkZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQcm92aWRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVzb3VyY2VTZXJ2ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2NvcGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VTZXJ2ZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VTZXJ2ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVVzZXJJbXBvcnRKb2JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkpvYk5hbWVcIixcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzUm9sZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzUm9sZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJJbXBvcnRKb2JcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVVzZXJQb29sXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb29sTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb29sTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYW1iZGFDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9WZXJpZmllZEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsaWFzQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcm5hbWVBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbXNWZXJpZmljYXRpb25NZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiRW1haWxWZXJpZmljYXRpb25NZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiRW1haWxWZXJpZmljYXRpb25TdWJqZWN0XCI6IHt9LFxuICAgICAgICAgIFwiVmVyaWZpY2F0aW9uTWVzc2FnZVRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbXNBdXRoZW50aWNhdGlvbk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJNZmFDb25maWd1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGV2aWNlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW1haWxDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbXNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyUG9vbFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkbWluQ3JlYXRlVXNlckNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NoZW1hXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyUG9vbEFkZE9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1bFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVVzZXJQb29sQ2xpZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJDbGllbnROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJDbGllbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR2VuZXJhdGVTZWNyZXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlZnJlc2hUb2tlblZhbGlkaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWFkQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV3JpdGVBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBsaWNpdEF1dGhGbG93c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1d1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhbGxiYWNrVVJMc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9nb3V0VVJMc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVmYXVsdFJlZGlyZWN0VVJJXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dlZE9BdXRoRmxvd3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93ZWRPQXV0aFNjb3Blc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzYyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxsb3dlZE9BdXRoRmxvd3NVc2VyUG9vbENsaWVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQW5hbHl0aWNzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xDbGllbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2N1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVVzZXJQb29sRG9tYWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5cIixcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluXCI6IHt9LFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUlkZW50aXR5UHJvdmlkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVzb3VyY2VTZXJ2ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVVc2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIkRlbGV0ZVVzZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlTmFtZXNcIixcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJBdHRyaWJ1dGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIkRlbGV0ZVVzZXJQb29sXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVVc2VyUG9vbENsaWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiQ2xpZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVVc2VyUG9vbERvbWFpblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluXCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpblwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUlkZW50aXR5UHJvdmlkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UHJvdmlkZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQcm92aWRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNvdXJjZVNlcnZlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVNlcnZlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVNlcnZlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSaXNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSaXNrQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSaXNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVVc2VySW1wb3J0Sm9iXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJKb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiSm9iSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VySW1wb3J0Sm9iXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVVzZXJQb29sXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVVc2VyUG9vbENsaWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiQ2xpZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbENsaWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVVc2VyUG9vbERvbWFpblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFXU0FjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgICAgIFwiUzNCdWNrZXRcIjoge30sXG4gICAgICAgICAgICAgIFwiQ2xvdWRGcm9udERpc3RyaWJ1dGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJGb3JnZXREZXZpY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRldmljZUtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGV2aWNlS2V5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRm9yZ290UGFzc3dvcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsaWVudElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjcmV0SGFzaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckNvbnRleHREYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbmFseXRpY3NNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29kZURlbGl2ZXJ5RGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIkdldENTVkhlYWRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNTVkhlYWRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREZXZpY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRldmljZUtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VLZXlcIjoge30sXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRldmljZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJZGVudGl0eVByb3ZpZGVyQnlJZGVudGlmaWVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJJZHBJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJJZHBJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UHJvdmlkZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQcm92aWRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U2lnbmluZ0NlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFVJQ3VzdG9taXphdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVSUN1c3RvbWl6YXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVUlDdXN0b21pemF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRVc2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNRkFPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1mYVNldHRpbmdcIjoge30sXG4gICAgICAgICAgXCJVc2VyTUZBU2V0dGluZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH0sXG4gICAgXCJHZXRVc2VyQXR0cmlidXRlVmVyaWZpY2F0aW9uQ29kZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb2RlRGVsaXZlcnlEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN3BcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYXV0aHR5cGVcIjogXCJub25lXCJcbiAgICB9LFxuICAgIFwiR2V0VXNlclBvb2xNZmFDb25maWdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNtc01mYUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4ZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvZnR3YXJlVG9rZW5NZmFDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZmFDb25maWd1cmF0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2xvYmFsU2lnbk91dFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkluaXRpYXRlQXV0aFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0aEZsb3dcIixcbiAgICAgICAgICBcIkNsaWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhGbG93XCI6IHt9LFxuICAgICAgICAgIFwiQXV0aFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudE1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQW5hbHl0aWNzTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJDb250ZXh0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJDaGFsbGVuZ2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblJlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERldmljZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnaW5hdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGV2aWNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnaW5hdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdElkZW50aXR5UHJvdmlkZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvdmlkZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb3ZpZGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUHJvdmlkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlkZXJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlc291cmNlU2VydmVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlU2VydmVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVNlcnZlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRmXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFVzZXJJbXBvcnRKb2JzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdpbmF0aW9uVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VySW1wb3J0Sm9ic1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGpcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdpbmF0aW9uVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VXNlclBvb2xDbGllbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbENsaWVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2xpZW50TmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RVc2VyUG9vbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYW1iZGFDb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RVc2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1RvR2V0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdpbmF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2Vyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzllXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnaW5hdGlvblRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFVzZXJzSW5Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc2VuZENvbmZpcm1hdGlvbkNvZGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsaWVudElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjcmV0SGFzaFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckNvbnRleHREYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbmFseXRpY3NNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29kZURlbGl2ZXJ5RGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIlJlc3BvbmRUb0F1dGhDaGFsbGVuZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsaWVudElkXCIsXG4gICAgICAgICAgXCJDaGFsbGVuZ2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFsbGVuZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2Vzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkNoYWxsZW5nZVJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQW5hbHl0aWNzTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJDb250ZXh0RGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbGxlbmdlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJDaGFsbGVuZ2VQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblJlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0Umlza0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21wcm9taXNlZENyZWRlbnRpYWxzUmlza0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY291bnRUYWtlb3ZlclJpc2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSaXNrRXhjZXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJpc2tDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJpc2tDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRVSUN1c3RvbWl6YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDU1NcIjoge30sXG4gICAgICAgICAgXCJJbWFnZUZpbGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVSUN1c3RvbWl6YXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVUlDdXN0b21pemF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRVc2VyTUZBUHJlZmVyZW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU01TTWZhU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvZnR3YXJlVG9rZW5NZmFTZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFVzZXJQb29sTWZhQ29uZmlnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJTbXNNZmFDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOGRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb2Z0d2FyZVRva2VuTWZhQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWZhQ29uZmlndXJhdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNtc01mYUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4ZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvZnR3YXJlVG9rZW5NZmFDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZmFDb25maWd1cmF0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0VXNlclNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiLFxuICAgICAgICAgIFwiTUZBT3B0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTUZBT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiYXV0aHR5cGVcIjogXCJub25lXCJcbiAgICB9LFxuICAgIFwiU2lnblVwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRJZFwiLFxuICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICBcIlBhc3N3b3JkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWNyZXRIYXNoXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXNzd29yZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZGF0aW9uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbmFseXRpY3NNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckNvbnRleHREYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlckNvbmZpcm1lZFwiLFxuICAgICAgICAgIFwiVXNlclN1YlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyQ29uZmlybWVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb2RlRGVsaXZlcnlEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyU3ViXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIlN0YXJ0VXNlckltcG9ydEpvYlwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiSm9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIkpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlckltcG9ydEpvYlwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcFVzZXJJbXBvcnRKb2JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIixcbiAgICAgICAgICBcIkpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJKb2JJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJJbXBvcnRKb2JcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUF1dGhFdmVudEZlZWRiYWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiRXZlbnRJZFwiLFxuICAgICAgICAgIFwiRmVlZGJhY2tUb2tlblwiLFxuICAgICAgICAgIFwiRmVlZGJhY2tWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkZlZWRiYWNrVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZlZWRiYWNrVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEZXZpY2VTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCIsXG4gICAgICAgICAgXCJEZXZpY2VLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZUtleVwiOiB7fSxcbiAgICAgICAgICBcIkRldmljZVJlbWVtYmVyZWRTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJQcmVjZWRlbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSWRlbnRpdHlQcm92aWRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiUHJvdmlkZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm92aWRlckRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU1hcHBpbmdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkcElkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQcm92aWRlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVByb3ZpZGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSZXNvdXJjZVNlcnZlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlclBvb2xJZFwiLFxuICAgICAgICAgIFwiSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTY29wZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVNlcnZlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVNlcnZlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29kZURlbGl2ZXJ5RGV0YWlsc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwibm9uZVwiXG4gICAgfSxcbiAgICBcIlVwZGF0ZVVzZXJQb29sXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFtYmRhQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvVmVyaWZpZWRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbXNWZXJpZmljYXRpb25NZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiRW1haWxWZXJpZmljYXRpb25NZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiRW1haWxWZXJpZmljYXRpb25TdWJqZWN0XCI6IHt9LFxuICAgICAgICAgIFwiVmVyaWZpY2F0aW9uTWVzc2FnZVRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbXNBdXRoZW50aWNhdGlvbk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJNZmFDb25maWd1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGV2aWNlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW1haWxDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbXNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyUG9vbFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkbWluQ3JlYXRlVXNlckNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlclBvb2xBZGRPbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1aVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVVzZXJQb29sQ2xpZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyUG9vbElkXCIsXG4gICAgICAgICAgXCJDbGllbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZWZyZXNoVG9rZW5WYWxpZGl0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVhZEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldyaXRlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwbGljaXRBdXRoRmxvd3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1dVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWxsYmFja1VSTHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1eFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvZ291dFVSTHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1elwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRSZWRpcmVjdFVSSVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93ZWRPQXV0aEZsb3dzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvd2VkT0F1dGhTY29wZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93ZWRPQXV0aEZsb3dzVXNlclBvb2xDbGllbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQb29sQ2xpZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJWZXJpZnlTb2Z0d2FyZVRva2VuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VyQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2Vzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJDb2RlXCI6IHt9LFxuICAgICAgICAgIFwiRnJpZW5kbHlEZXZpY2VOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU2Vzc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlZlcmlmeVVzZXJBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCIsXG4gICAgICAgICAgXCJDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ29kZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJhdXRodHlwZVwiOiBcIm5vbmVcIlxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiQXR0cmlidXRlRGF0YVR5cGVcIjoge30sXG4gICAgICAgIFwiRGV2ZWxvcGVyT25seUF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTXV0YWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVxdWlyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk51bWJlckF0dHJpYnV0ZUNvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNaW5WYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgIFwiTWF4VmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RyaW5nQXR0cmlidXRlQ29uc3RyYWludHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIk1pbkxlbmd0aFwiOiB7fSxcbiAgICAgICAgICAgIFwiTWF4TGVuZ3RoXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlVzZXJuYW1lXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXNlckNyZWF0ZURhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXNlckxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXNlclN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJNRkFPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeU1lZGl1bVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQcm92aWRlckF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgIFwiUHJvdmlkZXJBdHRyaWJ1dGVWYWx1ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRldmljZUtleVwiOiB7fSxcbiAgICAgICAgXCJEZXZpY2VBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRldmljZUNyZWF0ZURhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGV2aWNlTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXZpY2VMYXN0QXV0aGVudGljYXRlZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFuYWx5dGljc0VuZHBvaW50SWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSXBBZGRyZXNzXCIsXG4gICAgICAgIFwiU2VydmVyTmFtZVwiLFxuICAgICAgICBcIlNlcnZlclBhdGhcIixcbiAgICAgICAgXCJIdHRwSGVhZGVyc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJcEFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiU2VydmVyTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTZXJ2ZXJQYXRoXCI6IHt9LFxuICAgICAgICBcIkh0dHBIZWFkZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImhlYWRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiaGVhZGVyVmFsdWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5jb2RlZERhdGFcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWNjZXNzVG9rZW5cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4cGlyZXNJblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVG9rZW5UeXBlXCI6IHt9LFxuICAgICAgICBcIlJlZnJlc2hUb2tlblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWRUb2tlblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTmV3RGV2aWNlTWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRldmljZUtleVwiOiB7fSxcbiAgICAgICAgICAgIFwiRGV2aWNlR3JvdXBLZXlcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyOVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJQcmVjZWRlbmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzMwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRNZmFcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkTWZhXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3BcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMzclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5jb2RlZERhdGFcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlM0MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTNDNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzQ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQcm92aWRlclR5cGVcIjoge30sXG4gICAgICAgIFwiUHJvdmlkZXJEZXRhaWxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdHRyaWJ1dGVNYXBwaW5nXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzQxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJZHBJZGVudGlmaWVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2NvcGVOYW1lXCIsXG4gICAgICAgICAgXCJTY29wZURlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjb3BlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNjb3BlRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgIFwiSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlNjb3Blc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0YVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJKb2JOYW1lXCI6IHt9LFxuICAgICAgICBcIkpvYklkXCI6IHt9LFxuICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgIFwiUHJlU2lnbmVkVXJsXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGFydERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcGxldGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJJbXBvcnRlZFVzZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTa2lwcGVkVXNlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZhaWxlZFVzZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wbGV0aW9uTWVzc2FnZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBhc3N3b3JkUG9saWN5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNaW5pbXVtTGVuZ3RoXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJSZXF1aXJlVXBwZXJjYXNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJSZXF1aXJlTG93ZXJjYXNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJSZXF1aXJlTnVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUmVxdWlyZVN5bWJvbHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzR1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQcmVTaWduVXBcIjoge30sXG4gICAgICAgIFwiQ3VzdG9tTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJQb3N0Q29uZmlybWF0aW9uXCI6IHt9LFxuICAgICAgICBcIlByZUF1dGhlbnRpY2F0aW9uXCI6IHt9LFxuICAgICAgICBcIlBvc3RBdXRoZW50aWNhdGlvblwiOiB7fSxcbiAgICAgICAgXCJEZWZpbmVBdXRoQ2hhbGxlbmdlXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZUF1dGhDaGFsbGVuZ2VcIjoge30sXG4gICAgICAgIFwiVmVyaWZ5QXV0aENoYWxsZW5nZVJlc3BvbnNlXCI6IHt9LFxuICAgICAgICBcIlByZVRva2VuR2VuZXJhdGlvblwiOiB7fSxcbiAgICAgICAgXCJVc2VyTWlncmF0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0dlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNHhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzR6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM1NFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU21zTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJFbWFpbE1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiRW1haWxTdWJqZWN0XCI6IHt9LFxuICAgICAgICBcIkVtYWlsTWVzc2FnZUJ5TGlua1wiOiB7fSxcbiAgICAgICAgXCJFbWFpbFN1YmplY3RCeUxpbmtcIjoge30sXG4gICAgICAgIFwiRGVmYXVsdEVtYWlsT3B0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1OVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2hhbGxlbmdlUmVxdWlyZWRPbk5ld0RldmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGV2aWNlT25seVJlbWVtYmVyZWRPblVzZXJQcm9tcHRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1YVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU291cmNlQXJuXCI6IHt9LFxuICAgICAgICBcIlJlcGx5VG9FbWFpbEFkZHJlc3NcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiU25zQ2FsbGVyQXJuXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNuc0NhbGxlckFyblwiOiB7fSxcbiAgICAgICAgXCJFeHRlcm5hbElkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1ZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTNWVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFsbG93QWRtaW5DcmVhdGVVc2VyT25seVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVW51c2VkQWNjb3VudFZhbGlkaXR5RGF5c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW52aXRlTWVzc2FnZVRlbXBsYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJTTVNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgXCJFbWFpbE1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICBcIkVtYWlsU3ViamVjdFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJBZHZhbmNlZFNlY3VyaXR5TW9kZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBZHZhbmNlZFNlY3VyaXR5TW9kZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiUG9saWNpZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNHJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhbWJkYUNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNjaGVtYUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNWhcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF1dG9WZXJpZmllZEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNHZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsaWFzQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0eFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXNlcm5hbWVBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzR6XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbXNWZXJpZmljYXRpb25NZXNzYWdlXCI6IHt9LFxuICAgICAgICBcIkVtYWlsVmVyaWZpY2F0aW9uTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJFbWFpbFZlcmlmaWNhdGlvblN1YmplY3RcIjoge30sXG4gICAgICAgIFwiVmVyaWZpY2F0aW9uTWVzc2FnZVRlbXBsYXRlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzU0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTbXNBdXRoZW50aWNhdGlvbk1lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiTWZhQ29uZmlndXJhdGlvblwiOiB7fSxcbiAgICAgICAgXCJEZXZpY2VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzU5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFc3RpbWF0ZWROdW1iZXJPZlVzZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbWFpbENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNWFcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNtc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNWNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzZXJQb29sVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU21zQ29uZmlndXJhdGlvbkZhaWx1cmVcIjoge30sXG4gICAgICAgIFwiRW1haWxDb25maWd1cmF0aW9uRmFpbHVyZVwiOiB7fSxcbiAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgIFwiQWRtaW5DcmVhdGVVc2VyQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2VyUG9vbEFkZE9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1aVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXJuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNXVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzV3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM1eFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNXpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzYwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM2MlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJBcHBsaWNhdGlvbklkXCIsXG4gICAgICAgIFwiUm9sZUFyblwiLFxuICAgICAgICBcIkV4dGVybmFsSWRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXBwbGljYXRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJSb2xlQXJuXCI6IHt9LFxuICAgICAgICBcIkV4dGVybmFsSWRcIjoge30sXG4gICAgICAgIFwiVXNlckRhdGFTaGFyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2N1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVXNlclBvb2xJZFwiOiB7fSxcbiAgICAgICAgXCJDbGllbnROYW1lXCI6IHt9LFxuICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbGllbnRTZWNyZXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWZyZXNoVG9rZW5WYWxpZGl0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVhZEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIldyaXRlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXhwbGljaXRBdXRoRmxvd3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNXVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzV3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWxsYmFja1VSTHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNXhcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxvZ291dFVSTHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNXpcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlZmF1bHRSZWRpcmVjdFVSSVwiOiB7fSxcbiAgICAgICAgXCJBbGxvd2VkT0F1dGhGbG93c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dlZE9BdXRoU2NvcGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzYyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvd2VkT0F1dGhGbG93c1VzZXJQb29sQ2xpZW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbmFseXRpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzY0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlVzZXJQb29sSWRcIjoge30sXG4gICAgICAgIFwiQ2xpZW50SWRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXByb21pc2VkQ3JlZGVudGlhbHNSaXNrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWNjb3VudFRha2VvdmVyUmlza0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNnhcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJpc2tFeGNlcHRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzc2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkFjdGlvbnNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRXZlbnRGaWx0ZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIkFjdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJFdmVudEFjdGlvblwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJFdmVudEFjdGlvblwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJBY3Rpb25zXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5vdGlmeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJTb3VyY2VBcm5cIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRnJvbVwiOiB7fSxcbiAgICAgICAgICAgIFwiUmVwbHlUb1wiOiB7fSxcbiAgICAgICAgICAgIFwiU291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJCbG9ja0VtYWlsXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2elwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJOb0FjdGlvbkVtYWlsXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2elwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNZmFFbWFpbFwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnpcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJMb3dBY3Rpb25cIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzczXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk1lZGl1bUFjdGlvblwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzNcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSGlnaEFjdGlvblwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJTdWJqZWN0XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN1YmplY3RcIjoge30sXG4gICAgICAgIFwiSHRtbEJvZHlcIjoge30sXG4gICAgICAgIFwiVGV4dEJvZHlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzczXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTm90aWZ5XCIsXG4gICAgICAgIFwiRXZlbnRBY3Rpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTm90aWZ5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFdmVudEFjdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJsb2NrZWRJUFJhbmdlTGlzdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU2tpcHBlZElQUmFuZ2VMaXN0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN3BcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRlc3RpbmF0aW9uXCI6IHt9LFxuICAgICAgICBcIkRlbGl2ZXJ5TWVkaXVtXCI6IHt9LFxuICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzgzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJVc2VyUG9vbElkXCI6IHt9LFxuICAgICAgICBcIkNsaWVudElkXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbWFnZVVybFwiOiB7fSxcbiAgICAgICAgXCJDU1NcIjoge30sXG4gICAgICAgIFwiQ1NTVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOGRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNtc0F1dGhlbnRpY2F0aW9uTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJTbXNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVjXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOGVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5ZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0wNi0zMFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJjb2duaXRvLXN5bmNcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gQ29nbml0byBTeW5jXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJ1aWRcIjogXCJjb2duaXRvLXN5bmMtMjAxNC0wNi0zMFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJCdWxrUHVibGlzaFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2J1bGtwdWJsaXNoXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEYXRhc2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH0vaWRlbnRpdGllcy97SWRlbnRpdHlJZH0vZGF0YXNldHMve0RhdGFzZXROYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aXR5SWRcIixcbiAgICAgICAgICBcIkRhdGFzZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFzZXROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGF0YXNldE5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXRhc2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGF0YXNldFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2lkZW50aXRpZXMve0lkZW50aXR5SWR9L2RhdGFzZXRzL3tEYXRhc2V0TmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCIsXG4gICAgICAgICAgXCJEYXRhc2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhc2V0TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRhdGFzZXROYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YXNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUlkZW50aXR5UG9vbFVzYWdlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xVc2FnZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUlkZW50aXR5VXNhZ2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9pZGVudGl0aWVzL3tJZGVudGl0eUlkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aXR5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlVc2FnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRhdGFzZXRDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGF0YVN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1bGtQdWJsaXNoRGV0YWlsc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2dldEJ1bGtQdWJsaXNoRGV0YWlsc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHt9LFxuICAgICAgICAgIFwiQnVsa1B1Ymxpc2hTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVsa1B1Ymxpc2hDb21wbGV0ZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVsa1B1Ymxpc2hTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJGYWlsdXJlTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvZ25pdG9FdmVudHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9ldmVudHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SWRlbnRpdHlQb29sQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRlbnRpdHlQb29sSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcIlB1c2hTeW5jXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvZ25pdG9TdHJlYW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REYXRhc2V0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2lkZW50aXRpZXMve0lkZW50aXR5SWR9L2RhdGFzZXRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCIsXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXRhc2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SWRlbnRpdHlQb29sVXNhZ2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sVXNhZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZWNvcmRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pZGVudGl0eXBvb2xzL3tJZGVudGl0eVBvb2xJZH0vaWRlbnRpdGllcy97SWRlbnRpdHlJZH0vZGF0YXNldHMve0RhdGFzZXROYW1lfS9yZWNvcmRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiLFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiLFxuICAgICAgICAgIFwiRGF0YXNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YXNldE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEYXRhc2V0TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RTeW5jQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhc3RTeW5jQ291bnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTeW5jU2Vzc2lvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzeW5jU2Vzc2lvblRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFzZXRTeW5jQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RNb2RpZmllZEJ5XCI6IHt9LFxuICAgICAgICAgIFwiTWVyZ2VkRGF0YXNldE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFzZXRFeGlzdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFzZXREZWxldGVkQWZ0ZXJSZXF1ZXN0ZWRTeW5jQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN5bmNTZXNzaW9uVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckRldmljZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2lkZW50aXR5L3tJZGVudGl0eUlkfS9kZXZpY2VcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5UG9vbElkXCIsXG4gICAgICAgICAgXCJJZGVudGl0eUlkXCIsXG4gICAgICAgICAgXCJQbGF0Zm9ybVwiLFxuICAgICAgICAgIFwiVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGxhdGZvcm1cIjoge30sXG4gICAgICAgICAgXCJUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRldmljZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0Q29nbml0b0V2ZW50c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaWRlbnRpdHlwb29scy97SWRlbnRpdHlQb29sSWR9L2V2ZW50c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIkV2ZW50c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldElkZW50aXR5UG9vbENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9jb25maWd1cmF0aW9uXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVzaFN5bmNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29nbml0b1N0cmVhbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJQdXNoU3luY1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb2duaXRvU3RyZWFtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdWJzY3JpYmVUb0RhdGFzZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9pZGVudGl0aWVzL3tJZGVudGl0eUlkfS9kYXRhc2V0cy97RGF0YXNldE5hbWV9L3N1YnNjcmlwdGlvbnMve0RldmljZUlkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aXR5SWRcIixcbiAgICAgICAgICBcIkRhdGFzZXROYW1lXCIsXG4gICAgICAgICAgXCJEZXZpY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhc2V0TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRhdGFzZXROYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGV2aWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZXZpY2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVuc3Vic2NyaWJlRnJvbURhdGFzZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9pZGVudGl0aWVzL3tJZGVudGl0eUlkfS9kYXRhc2V0cy97RGF0YXNldE5hbWV9L3N1YnNjcmlwdGlvbnMve0RldmljZUlkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIixcbiAgICAgICAgICBcIklkZW50aXR5SWRcIixcbiAgICAgICAgICBcIkRhdGFzZXROYW1lXCIsXG4gICAgICAgICAgXCJEZXZpY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5UG9vbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkZW50aXR5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhc2V0TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRhdGFzZXROYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGV2aWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZXZpY2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlY29yZHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2lkZW50aXR5cG9vbHMve0lkZW50aXR5UG9vbElkfS9pZGVudGl0aWVzL3tJZGVudGl0eUlkfS9kYXRhc2V0cy97RGF0YXNldE5hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiLFxuICAgICAgICAgIFwiSWRlbnRpdHlJZFwiLFxuICAgICAgICAgIFwiRGF0YXNldE5hbWVcIixcbiAgICAgICAgICBcIlN5bmNTZXNzaW9uVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdHlQb29sSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eVBvb2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW50aXR5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZGVudGl0eUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YXNldE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEYXRhc2V0TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVjb3JkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIk9wXCIsXG4gICAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgICBcIlN5bmNDb3VudFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3luY0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXZpY2VMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN5bmNTZXNzaW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJDbGllbnRDb250ZXh0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotQ2xpZW50LUNvbnRleHRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkZW50aXR5SWRcIjoge30sXG4gICAgICAgIFwiRGF0YXNldE5hbWVcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkQnlcIjoge30sXG4gICAgICAgIFwiRGF0YVN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIk51bVJlY29yZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgXCJTeW5jU2Vzc2lvbnNDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGF0YVN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFwcGxpY2F0aW9uQXJuc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUm9sZUFyblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgXCJSb2xlQXJuXCI6IHt9LFxuICAgICAgICBcIlN0cmVhbWluZ1N0YXR1c1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiU3luY0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RNb2RpZmllZEJ5XCI6IHt9LFxuICAgICAgICAgIFwiRGV2aWNlTGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJleGFtcGxlc1wiOiB7fVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMTEtMTJcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY29uZmlnXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ29uZmlnIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBDb25maWdcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIkNvbmZpZyBTZXJ2aWNlXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIlN0YXJsaW5nRG92ZVNlcnZpY2VcIixcbiAgICBcInVpZFwiOiBcImNvbmZpZy0yMDE0LTExLTEyXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkJhdGNoR2V0UmVzb3VyY2VDb25maWdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUtleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYmFzZUNvbmZpZ3VyYXRpb25JdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ3VyYXRpb25JdGVtQ2FwdHVyZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY29uZmlndXJhdGlvbkl0ZW1TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjb25maWd1cmF0aW9uU3RhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhd3NSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJhdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY29uZmlndXJhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN1cHBsZW1lbnRhcnlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVucHJvY2Vzc2VkUmVzb3VyY2VLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFnZ3JlZ2F0aW9uQXV0aG9yaXphdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0aG9yaXplZEFjY291bnRJZFwiLFxuICAgICAgICAgIFwiQXV0aG9yaXplZEF3c1JlZ2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRob3JpemVkQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgIFwiQXV0aG9yaXplZEF3c1JlZ2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNvbmZpZ1J1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDb25maWd1cmF0aW9uUmVjb3JkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblJlY29yZGVyTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURlbGl2ZXJ5Q2hhbm5lbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlDaGFubmVsTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeUNoYW5uZWxOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRXZhbHVhdGlvblJlc3VsdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUGVuZGluZ0FnZ3JlZ2F0aW9uUmVxdWVzdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVxdWVzdGVyQWNjb3VudElkXCIsXG4gICAgICAgICAgXCJSZXF1ZXN0ZXJBd3NSZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVxdWVzdGVyQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyQXdzUmVnaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmV0ZW50aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmV0ZW50aW9uQ29uZmlndXJhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0ZW50aW9uQ29uZmlndXJhdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxpdmVyQ29uZmlnU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRlbGl2ZXJ5Q2hhbm5lbE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVsaXZlcnlDaGFubmVsTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbmZpZ1NuYXBzaG90SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFnZ3JlZ2F0ZUNvbXBsaWFuY2VCeUNvbmZpZ1J1bGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ29uZmlnUnVsZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkF3c1JlZ2lvblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWdncmVnYXRlQ29tcGxpYW5jZUJ5Q29uZmlnUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxpYW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXdzUmVnaW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBZ2dyZWdhdGlvbkF1dGhvcml6YXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBZ2dyZWdhdGlvbkF1dGhvcml6YXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29tcGxpYW5jZUJ5Q29uZmlnUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tcGxpYW5jZUJ5Q29uZmlnUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxpYW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb21wbGlhbmNlQnlSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tcGxpYW5jZUJ5UmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxpYW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25maWdSdWxlRXZhbHVhdGlvblN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWdSdWxlc0V2YWx1YXRpb25TdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29uZmlnUnVsZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ1J1bGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RTdWNjZXNzZnVsSW52b2NhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEZhaWxlZEludm9jYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RTdWNjZXNzZnVsRXZhbHVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEZhaWxlZEV2YWx1YXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpcnN0QWN0aXZhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0RXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEVycm9yTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZpcnN0RXZhbHVhdGlvblN0YXJ0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29uZmlnUnVsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlnUnVsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWdSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yU291cmNlc1N0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlVwZGF0ZVN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWdncmVnYXRlZFNvdXJjZVN0YXR1c0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF3c1JlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0RXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdEVycm9yTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25SZWNvcmRlclN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uUmVjb3JkZXJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblJlY29yZGVyc1N0YXR1c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxhc3RTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibGFzdFN0b3BUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJlY29yZGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibGFzdFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxhc3RFcnJvckNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJsYXN0RXJyb3JNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibGFzdFN0YXR1c0NoYW5nZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25maWd1cmF0aW9uUmVjb3JkZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uUmVjb3JkZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzY1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGVsaXZlcnlDaGFubmVsU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5Q2hhbm5lbE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeUNoYW5uZWxzU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY29uZmlnU25hcHNob3REZWxpdmVyeUluZm9cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ0hpc3RvcnlEZWxpdmVyeUluZm9cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ1N0cmVhbURlbGl2ZXJ5SW5mb1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibGFzdFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJsYXN0RXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImxhc3RFcnJvck1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwibGFzdFN0YXR1c0NoYW5nZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEZWxpdmVyeUNoYW5uZWxzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5Q2hhbm5lbE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeUNoYW5uZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGVuZGluZ0FnZ3JlZ2F0aW9uUmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBlbmRpbmdBZ2dyZWdhdGlvblJlcXVlc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXF1ZXN0ZXJBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXF1ZXN0ZXJBd3NSZWdpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJldGVudGlvbkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldGVudGlvbkNvbmZpZ3VyYXRpb25OYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXRlbnRpb25Db25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBZ2dyZWdhdGVDb21wbGlhbmNlRGV0YWlsc0J5Q29uZmlnUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCIsXG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiLFxuICAgICAgICAgIFwiQWNjb3VudElkXCIsXG4gICAgICAgICAgXCJBd3NSZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZmlnUnVsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgXCJBd3NSZWdpb25cIjoge30sXG4gICAgICAgICAgXCJDb21wbGlhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBZ2dyZWdhdGVFdmFsdWF0aW9uUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXZhbHVhdGlvblJlc3VsdElkZW50aWZpZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzdWx0UmVjb3JkZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ1J1bGVJbnZva2VkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBbm5vdGF0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXdzUmVnaW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QWdncmVnYXRlQ29uZmlnUnVsZUNvbXBsaWFuY2VTdW1tYXJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkF3c1JlZ2lvblwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cEJ5S2V5XCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwQnlLZXlcIjoge30sXG4gICAgICAgICAgXCJBZ2dyZWdhdGVDb21wbGlhbmNlQ291bnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wbGlhbmNlU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRoXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29tcGxpYW5jZURldGFpbHNCeUNvbmZpZ1J1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvblJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbXBsaWFuY2VEZXRhaWxzQnlSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJDb21wbGlhbmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb21wbGlhbmNlU3VtbWFyeUJ5Q29uZmlnUnVsZVwiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tcGxpYW5jZVN1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbXBsaWFuY2VTdW1tYXJ5QnlSZXNvdXJjZVR5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tcGxpYW5jZVN1bW1hcmllc0J5UmVzb3VyY2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wbGlhbmNlU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRoXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGlzY292ZXJlZFJlc291cmNlQ291bnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0b3RhbERpc2NvdmVyZWRSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlQ291bnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVzb3VyY2VDb25maWdIaXN0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcInJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcImxhdGVyVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlYXJsaWVyVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjaHJvbm9sb2dpY2FsT3JkZXJcIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29uZmlndXJhdGlvbkl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY29uZmlndXJhdGlvbkl0ZW1DYXB0dXJlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjb25maWd1cmF0aW9uSXRlbVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZ3VyYXRpb25TdGF0ZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY29uZmlndXJhdGlvbkl0ZW1NRDVIYXNoXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImF3c1JlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZUNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJlbGF0ZWRFdmVudHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmVsYXRpb25zaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwicmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJlbGF0aW9uc2hpcE5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjb25maWd1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3VwcGxlbWVudGFyeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERpc2NvdmVyZWRSZXNvdXJjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5jbHVkZURlbGV0ZWRSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlSWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZURlbGV0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRBZ2dyZWdhdGlvbkF1dGhvcml6YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dGhvcml6ZWRBY2NvdW50SWRcIixcbiAgICAgICAgICBcIkF1dGhvcml6ZWRBd3NSZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aG9yaXplZEFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkF1dGhvcml6ZWRBd3NSZWdpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBZ2dyZWdhdGlvbkF1dGhvcml6YXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dENvbmZpZ1J1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ1J1bGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlnUnVsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0Q29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25BZ2dyZWdhdG9yTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVcIjoge30sXG4gICAgICAgICAgXCJBY2NvdW50QWdncmVnYXRpb25Tb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcmdhbml6YXRpb25BZ2dyZWdhdGlvblNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dENvbmZpZ3VyYXRpb25SZWNvcmRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblJlY29yZGVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0RGVsaXZlcnlDaGFubmVsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxpdmVyeUNoYW5uZWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsaXZlcnlDaGFubmVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRFdmFsdWF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzdWx0VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1dFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3VsdFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVGVzdE1vZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZhaWxlZEV2YWx1YXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRSZXRlbnRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RJbkRheXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kSW5EYXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXRlbnRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydENvbmZpZ1J1bGVzRXZhbHVhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWdSdWxlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRDb25maWd1cmF0aW9uUmVjb3JkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblJlY29yZGVyTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BDb25maWd1cmF0aW9uUmVjb3JkZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25SZWNvcmRlck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblJlY29yZGVyTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlVHlwZVwiLFxuICAgICAgICAgIFwicmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJyZXNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb21wbGlhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJDb21wbGlhbmNlQ29udHJpYnV0b3JDb3VudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYXBwZWRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FwRXhjZWVkZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWdncmVnYXRpb25BdXRob3JpemF0aW9uQXJuXCI6IHt9LFxuICAgICAgICBcIkF1dGhvcml6ZWRBY2NvdW50SWRcIjoge30sXG4gICAgICAgIFwiQXV0aG9yaXplZEF3c1JlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMjdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJTb3VyY2VcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29uZmlnUnVsZU5hbWVcIjoge30sXG4gICAgICAgIFwiQ29uZmlnUnVsZUFyblwiOiB7fSxcbiAgICAgICAgXCJDb25maWdSdWxlSWRcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiU2NvcGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNvbXBsaWFuY2VSZXNvdXJjZVR5cGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVGFnS2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJUYWdWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgIFwiQ29tcGxpYW5jZVJlc291cmNlSWRcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU291cmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiT3duZXJcIixcbiAgICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJPd25lclwiOiB7fSxcbiAgICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgIFwiU291cmNlRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkV2ZW50U291cmNlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiTWF4aW11bUV4ZWN1dGlvbkZyZXF1ZW5jeVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnB1dFBhcmFtZXRlcnNcIjoge30sXG4gICAgICAgIFwiTWF4aW11bUV4ZWN1dGlvbkZyZXF1ZW5jeVwiOiB7fSxcbiAgICAgICAgXCJDb25maWdSdWxlU3RhdGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb25maWd1cmF0aW9uQWdncmVnYXRvck5hbWVcIjoge30sXG4gICAgICAgIFwiQ29uZmlndXJhdGlvbkFnZ3JlZ2F0b3JBcm5cIjoge30sXG4gICAgICAgIFwiQWNjb3VudEFnZ3JlZ2F0aW9uU291cmNlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3JnYW5pemF0aW9uQWdncmVnYXRpb25Tb3VyY2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMzJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0VXBkYXRlZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWNjb3VudElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NvdW50SWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbEF3c1JlZ2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF3c1JlZ2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSb2xlQXJuXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgIFwiQXdzUmVnaW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsQXdzUmVnaW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJyb2xlQVJOXCI6IHt9LFxuICAgICAgICBcInJlY29yZGluZ0dyb3VwXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJhbGxTdXBwb3J0ZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImluY2x1ZGVHbG9iYWxSZXNvdXJjZVR5cGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJyZXNvdXJjZVR5cGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzNtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJsYXN0U3RhdHVzXCI6IHt9LFxuICAgICAgICBcImxhc3RFcnJvckNvZGVcIjoge30sXG4gICAgICAgIFwibGFzdEVycm9yTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJsYXN0QXR0ZW1wdFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdFN1Y2Nlc3NmdWxUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5leHREZWxpdmVyeVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJzM0tleVByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJzbnNUb3BpY0FSTlwiOiB7fSxcbiAgICAgICAgXCJjb25maWdTbmFwc2hvdERlbGl2ZXJ5UHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiZGVsaXZlcnlGcmVxdWVuY3lcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIlJldGVudGlvblBlcmlvZEluRGF5c1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlJldGVudGlvblBlcmlvZEluRGF5c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFdmFsdWF0aW9uUmVzdWx0UXVhbGlmaWVyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDb25maWdSdWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk9yZGVyaW5nVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0aFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29tcGxpYW50UmVzb3VyY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTm9uQ29tcGxpYW50UmVzb3VyY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcGxpYW5jZVN1bW1hcnlUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmFsdWF0aW9uUmVzdWx0SWRlbnRpZmllclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJSZXN1bHRSZWNvcmRlZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZmlnUnVsZUludm9rZWRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFubm90YXRpb25cIjoge30sXG4gICAgICAgICAgXCJSZXN1bHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0cVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb21wbGlhbmNlUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJDb21wbGlhbmNlUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVcIixcbiAgICAgICAgICBcIk9yZGVyaW5nVGltZXN0YW1wXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbXBsaWFuY2VSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJDb21wbGlhbmNlUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQW5ub3RhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9yZGVyaW5nVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiR2V0UmVzb3VyY2VDb25maWdIaXN0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJjb25maWd1cmF0aW9uSXRlbXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTctMDEtMDZcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiY3VyXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgQ29zdCBhbmQgVXNhZ2UgUmVwb3J0IFNlcnZpY2VcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwic2lnbmluZ05hbWVcIjogXCJjdXJcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFXU09yaWdhbWlTZXJ2aWNlR2F0ZXdheVNlcnZpY2VcIixcbiAgICBcInVpZFwiOiBcImN1ci0yMDE3LTAxLTA2XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkRlbGV0ZVJlcG9ydERlZmluaXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwb3J0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3BvbnNlTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVwb3J0RGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwb3J0RGVmaW5pdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRSZXBvcnREZWZpbml0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXBvcnREZWZpbml0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcG9ydERlZmluaXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUmVwb3J0TmFtZVwiLFxuICAgICAgICBcIlRpbWVVbml0XCIsXG4gICAgICAgIFwiRm9ybWF0XCIsXG4gICAgICAgIFwiQ29tcHJlc3Npb25cIixcbiAgICAgICAgXCJBZGRpdGlvbmFsU2NoZW1hRWxlbWVudHNcIixcbiAgICAgICAgXCJTM0J1Y2tldFwiLFxuICAgICAgICBcIlMzUHJlZml4XCIsXG4gICAgICAgIFwiUzNSZWdpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVwb3J0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJUaW1lVW5pdFwiOiB7fSxcbiAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgIFwiQ29tcHJlc3Npb25cIjoge30sXG4gICAgICAgIFwiQWRkaXRpb25hbFNjaGVtYUVsZW1lbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJTM0J1Y2tldFwiOiB7fSxcbiAgICAgICAgXCJTM1ByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJTM1JlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJBZGRpdGlvbmFsQXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlUmVwb3J0RGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTA2LTIzXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImRldmljZWZhcm1cIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBEZXZpY2UgRmFybVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiRGV2aWNlIEZhcm1cIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiRGV2aWNlRmFybV8yMDE1MDYyM1wiLFxuICAgIFwidWlkXCI6IFwiZGV2aWNlZmFybS0yMDE1LTA2LTIzXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNyZWF0ZURldmljZVBvb2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByb2plY3RBcm5cIixcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInJ1bGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RBcm5cIjoge30sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXZpY2VQb29sXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJwYWNrYWdlQ2xlYW51cFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhjbHVkZUFwcFBhY2thZ2VzRnJvbUNsZWFudXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVib290QWZ0ZXJVc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVOZXR3b3JrUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJvamVjdEFyblwiLFxuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcm9qZWN0QXJuXCI6IHt9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICBcInVwbGlua0JhbmR3aWR0aEJpdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvd25saW5rQmFuZHdpZHRoQml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXBsaW5rRGVsYXlNc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG93bmxpbmtEZWxheU1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1cGxpbmtKaXR0ZXJNc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG93bmxpbmtKaXR0ZXJNc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXBsaW5rTG9zc1BlcmNlbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvd25saW5rTG9zc1BlcmNlbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5ldHdvcmtQcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVByb2plY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlZmF1bHRKb2JUaW1lb3V0TWludXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZW1vdGVBY2Nlc3NTZXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcm9qZWN0QXJuXCIsXG4gICAgICAgICAgXCJkZXZpY2VBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdEFyblwiOiB7fSxcbiAgICAgICAgICBcImRldmljZUFyblwiOiB7fSxcbiAgICAgICAgICBcImluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwic3NoUHVibGljS2V5XCI6IHt9LFxuICAgICAgICAgIFwicmVtb3RlRGVidWdFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZW1vdGVSZWNvcmRFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZW1vdGVSZWNvcmRBcHBBcm5cIjoge30sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY2xpZW50SWRcIjoge30sXG4gICAgICAgICAgXCJjb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJiaWxsaW5nTWV0aG9kXCI6IHt9LFxuICAgICAgICAgICAgICBcInZwY2VDb25maWd1cmF0aW9uQXJuc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbnRlcmFjdGlvbk1vZGVcIjoge30sXG4gICAgICAgICAgXCJza2lwQXBwUmVzaWduXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZW1vdGVBY2Nlc3NTZXNzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVVcGxvYWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByb2plY3RBcm5cIixcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdEFyblwiOiB7fSxcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwiY29udGVudFR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1cGxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZQQ0VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvbk5hbWVcIixcbiAgICAgICAgICBcInZwY2VTZXJ2aWNlTmFtZVwiLFxuICAgICAgICAgIFwic2VydmljZURuc05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwidnBjZVNlcnZpY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwic2VydmljZURuc05hbWVcIjoge30sXG4gICAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvbkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURldmljZVBvb2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVOZXR3b3JrUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVByb2plY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZW1vdGVBY2Nlc3NTZXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUnVuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVXBsb2FkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVlBDRUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBY2NvdW50U2V0dGluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYWNjb3VudFNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJhd3NBY2NvdW50TnVtYmVyXCI6IHt9LFxuICAgICAgICAgICAgICBcInVubWV0ZXJlZERldmljZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInVubWV0ZXJlZFJlbW90ZUFjY2Vzc0RldmljZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIm1heEpvYlRpbWVvdXRNaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ0cmlhbE1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInRvdGFsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcInJlbWFpbmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIm1heFNsb3RzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJkZWZhdWx0Sm9iVGltZW91dE1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInNraXBBcHBSZXNpZ25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERldmljZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRldmljZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGV2aWNlSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXZpY2VJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGV2aWNlUG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRldmljZVBvb2xcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGV2aWNlUG9vbENvbXBhdGliaWxpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRldmljZVBvb2xBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGV2aWNlUG9vbEFyblwiOiB7fSxcbiAgICAgICAgICBcImFwcEFyblwiOiB7fSxcbiAgICAgICAgICBcInRlc3RUeXBlXCI6IHt9LFxuICAgICAgICAgIFwidGVzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29tcGF0aWJsZURldmljZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImluY29tcGF0aWJsZURldmljZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRKb2JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE5ldHdvcmtQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV0d29ya1Byb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0T2ZmZXJpbmdTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY3VycmVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UHJvamVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVtb3RlQWNjZXNzU2Vzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlbW90ZUFjY2Vzc1Nlc3Npb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJ1blwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1blwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U3VpdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdWl0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VGVzdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRlc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFVwbG9hZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInVwbG9hZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VlBDRUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW5zdGFsbFRvUmVtb3RlQWNjZXNzU2Vzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVtb3RlQWNjZXNzU2Vzc2lvbkFyblwiLFxuICAgICAgICAgIFwiYXBwQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlbW90ZUFjY2Vzc1Nlc3Npb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJhcHBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcHBVcGxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBcnRpZmFjdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiLFxuICAgICAgICAgIFwidHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImV4dGVuc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInVybFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REZXZpY2VJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGV2aWNlSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGV2aWNlUG9vbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGV2aWNlUG9vbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGV2aWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXZpY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJbnN0YW5jZVByb2ZpbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluc3RhbmNlUHJvZmlsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Sm9ic1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdE5ldHdvcmtQcm9maWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXR3b3JrUHJvZmlsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0T2ZmZXJpbmdQcm9tb3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm9mZmVyaW5nUHJvbW90aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RPZmZlcmluZ1RyYW5zYWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvZmZlcmluZ1RyYW5zYWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNThcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0T2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm9mZmVyaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UHJvamVjdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVtb3RlQWNjZXNzU2Vzc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZW1vdGVBY2Nlc3NTZXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UnVuc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN6XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFNhbXBsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzYW1wbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidXJsXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN1aXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN1aXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGVzdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0ZXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VW5pcXVlUHJvYmxlbXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1bmlxdWVQcm9ibGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgICBcInByb2JsZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicnVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJqb2JcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN1aXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0ZXN0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2NFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXZpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VXBsb2Fkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInVwbG9hZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFZQQ0VDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF3XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVyY2hhc2VPZmZlcmluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwicXVhbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9mZmVyaW5nUHJvbW90aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvZmZlcmluZ1RyYW5zYWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNThcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW5ld09mZmVyaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm9mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJxdWFudGl0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib2ZmZXJpbmdUcmFuc2FjdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2NoZWR1bGVSdW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByb2plY3RBcm5cIixcbiAgICAgICAgICBcImRldmljZVBvb2xBcm5cIixcbiAgICAgICAgICBcInRlc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJvamVjdEFyblwiOiB7fSxcbiAgICAgICAgICBcImFwcEFyblwiOiB7fSxcbiAgICAgICAgICBcImRldmljZVBvb2xBcm5cIjoge30sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGVzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhlY3V0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiam9iVGltZW91dE1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFjY291bnRzQ2xlYW51cFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXBwUGFja2FnZXNDbGVhbnVwXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJza2lwQXBwUmVzaWduXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BSZW1vdGVBY2Nlc3NTZXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVtb3RlQWNjZXNzU2Vzc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcFJ1blwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1blwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGV2aWNlSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJwcm9maWxlQXJuXCI6IHt9LFxuICAgICAgICAgIFwibGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXZpY2VJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGV2aWNlUG9vbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRldmljZVBvb2xcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwicGFja2FnZUNsZWFudXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4Y2x1ZGVBcHBQYWNrYWdlc0Zyb21DbGVhbnVwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlYm9vdEFmdGVyVXNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTmV0d29ya1Byb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICAgIFwidXBsaW5rQmFuZHdpZHRoQml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG93bmxpbmtCYW5kd2lkdGhCaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1cGxpbmtEZWxheU1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb3dubGlua0RlbGF5TXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVwbGlua0ppdHRlck1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb3dubGlua0ppdHRlck1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1cGxpbmtMb3NzUGVyY2VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG93bmxpbmtMb3NzUGVyY2VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV0d29ya1Byb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUHJvamVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZWZhdWx0Sm9iVGltZW91dE1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVlBDRUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJ2cGNlU2VydmljZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJzZXJ2aWNlRG5zTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInZwY2VDb25maWd1cmF0aW9uRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2cGNlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdHRyaWJ1dGVcIjoge30sXG4gICAgICAgICAgXCJvcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwicnVsZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJwYWNrYWdlQ2xlYW51cFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXhjbHVkZUFwcFBhY2thZ2VzRnJvbUNsZWFudXBcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVib290QWZ0ZXJVc2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwidXBsaW5rQmFuZHdpZHRoQml0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZG93bmxpbmtCYW5kd2lkdGhCaXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1cGxpbmtEZWxheU1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkb3dubGlua0RlbGF5TXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInVwbGlua0ppdHRlck1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkb3dubGlua0ppdHRlck1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1cGxpbmtMb3NzUGVyY2VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZG93bmxpbmtMb3NzUGVyY2VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImRlZmF1bHRKb2JUaW1lb3V0TWludXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInJlc3VsdFwiOiB7fSxcbiAgICAgICAgXCJtZXNzYWdlXCI6IHt9LFxuICAgICAgICBcInN0YXJ0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RvcHBlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXZpY2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICB9LFxuICAgICAgICBcImluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICBcInJlbW90ZURlYnVnRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVtb3RlUmVjb3JkRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVtb3RlUmVjb3JkQXBwQXJuXCI6IHt9LFxuICAgICAgICBcImhvc3RBZGRyZXNzXCI6IHt9LFxuICAgICAgICBcImNsaWVudElkXCI6IHt9LFxuICAgICAgICBcImJpbGxpbmdNZXRob2RcIjoge30sXG4gICAgICAgIFwiZGV2aWNlTWludXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZW5kcG9pbnRcIjoge30sXG4gICAgICAgIFwiZGV2aWNlVWRpZFwiOiB7fSxcbiAgICAgICAgXCJpbnRlcmFjdGlvbk1vZGVcIjoge30sXG4gICAgICAgIFwic2tpcEFwcFJlc2lnblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJtYW51ZmFjdHVyZXJcIjoge30sXG4gICAgICAgIFwibW9kZWxcIjoge30sXG4gICAgICAgIFwibW9kZWxJZFwiOiB7fSxcbiAgICAgICAgXCJmb3JtRmFjdG9yXCI6IHt9LFxuICAgICAgICBcInBsYXRmb3JtXCI6IHt9LFxuICAgICAgICBcIm9zXCI6IHt9LFxuICAgICAgICBcImNwdVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiZnJlcXVlbmN5XCI6IHt9LFxuICAgICAgICAgICAgXCJhcmNoaXRlY3R1cmVcIjoge30sXG4gICAgICAgICAgICBcImNsb2NrXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicmVzb2x1dGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwid2lkdGhcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImhlaWdodFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJoZWFwU2l6ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVtb3J5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbWFnZVwiOiB7fSxcbiAgICAgICAgXCJjYXJyaWVyXCI6IHt9LFxuICAgICAgICBcInJhZGlvXCI6IHt9LFxuICAgICAgICBcInJlbW90ZUFjY2Vzc0VuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcInJlbW90ZURlYnVnRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmxlZXRUeXBlXCI6IHt9LFxuICAgICAgICBcImZsZWV0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJpbnN0YW5jZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJkZXZpY2VBcm5cIjoge30sXG4gICAgICAgIFwibGFiZWxzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwidWRpZFwiOiB7fSxcbiAgICAgICAgXCJpbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidG90YWxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0ZXJlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bm1ldGVyZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInVybFwiOiB7fSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7fSxcbiAgICAgICAgXCJjb250ZW50VHlwZVwiOiB7fSxcbiAgICAgICAgXCJtZXNzYWdlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICBcInZwY2VDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJ2cGNlU2VydmljZU5hbWVcIjoge30sXG4gICAgICAgIFwic2VydmljZURuc05hbWVcIjoge30sXG4gICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25EZXNjcmlwdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwidHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IHt9LFxuICAgICAgICBcInRlc3RQYWNrYWdlQXJuXCI6IHt9LFxuICAgICAgICBcImZpbHRlclwiOiB7fSxcbiAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJleHRyYURhdGFQYWNrYWdlQXJuXCI6IHt9LFxuICAgICAgICBcIm5ldHdvcmtQcm9maWxlQXJuXCI6IHt9LFxuICAgICAgICBcImxvY2FsZVwiOiB7fSxcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidnBjZUNvbmZpZ3VyYXRpb25Bcm5zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICB9LFxuICAgICAgICBcImN1c3RvbWVyQXJ0aWZhY3RQYXRoc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmFkaW9zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzMxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdXhpbGlhcnlBcHBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICB9LFxuICAgICAgICBcImJpbGxpbmdNZXRob2RcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibGF0aXR1ZGVcIixcbiAgICAgICAgXCJsb25naXR1ZGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibGF0aXR1ZGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibG9uZ2l0dWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiaW9zUGF0aHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcImFuZHJvaWRQYXRoc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGV2aWNlSG9zdFBhdGhzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIndpZmlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImJsdWV0b290aFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmZjXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJncHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGV2aWNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb21wYXRpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbmNvbXBhdGliaWxpdHlNZXNzYWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInR5cGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwicmVzdWx0XCI6IHt9LFxuICAgICAgICBcInN0YXJ0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RvcHBlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb3VudGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJkZXZpY2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICB9LFxuICAgICAgICBcImluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICBcImRldmljZU1pbnV0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwidG90YWxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhc3NlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmFpbGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3YXJuZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImVycm9yZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0b3BwZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInNraXBwZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwib2ZmZXJpbmdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICB9LFxuICAgICAgICBcInF1YW50aXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlZmZlY3RpdmVPblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwicGxhdGZvcm1cIjoge30sXG4gICAgICAgIFwicmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjb3N0XCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNxXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJmcmVxdWVuY3lcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhbW91bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3VycmVuY3lDb2RlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgXCJwbGF0Zm9ybVwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJyZXN1bHRcIjoge30sXG4gICAgICAgIFwic3RhcnRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdG9wcGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvdW50ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXNzYWdlXCI6IHt9LFxuICAgICAgICBcInRvdGFsSm9ic1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29tcGxldGVkSm9ic1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYmlsbGluZ01ldGhvZFwiOiB7fSxcbiAgICAgICAgXCJkZXZpY2VNaW51dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuZXR3b3JrUHJvZmlsZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXJzaW5nUmVzdWx0VXJsXCI6IHt9LFxuICAgICAgICBcInJlc3VsdENvZGVcIjoge30sXG4gICAgICAgIFwic2VlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXBwVXBsb2FkXCI6IHt9LFxuICAgICAgICBcImV2ZW50Q291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImpvYlRpbWVvdXRNaW51dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkZXZpY2VQb29sQXJuXCI6IHt9LFxuICAgICAgICBcImxvY2FsZVwiOiB7fSxcbiAgICAgICAgXCJyYWRpb3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMzFcIlxuICAgICAgICB9LFxuICAgICAgICBcImxvY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjdXN0b21lckFydGlmYWN0UGF0aHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMnhcIlxuICAgICAgICB9LFxuICAgICAgICBcIndlYlVybFwiOiB7fSxcbiAgICAgICAgXCJza2lwQXBwUmVzaWduXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwicmVzdWx0XCI6IHt9LFxuICAgICAgICBcInN0YXJ0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RvcHBlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb3VudGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJkZXZpY2VNaW51dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwiY3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwicmVzdWx0XCI6IHt9LFxuICAgICAgICBcInN0YXJ0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RvcHBlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb3VudGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJkZXZpY2VNaW51dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNThcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm9mZmVyaW5nU3RhdHVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0cmFuc2FjdGlvbklkXCI6IHt9LFxuICAgICAgICBcIm9mZmVyaW5nUHJvbW90aW9uSWRcIjoge30sXG4gICAgICAgIFwiY3JlYXRlZE9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM3FcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2NFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJHZXRPZmZlcmluZ1N0YXR1c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFtcbiAgICAgICAgXCJjdXJyZW50XCIsXG4gICAgICAgIFwibmV4dFBlcmlvZFwiXG4gICAgICBdXG4gICAgfSxcbiAgICBcIkxpc3RBcnRpZmFjdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImFydGlmYWN0c1wiXG4gICAgfSxcbiAgICBcIkxpc3REZXZpY2VQb29sc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiZGV2aWNlUG9vbHNcIlxuICAgIH0sXG4gICAgXCJMaXN0RGV2aWNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiZGV2aWNlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RKb2JzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJqb2JzXCJcbiAgICB9LFxuICAgIFwiTGlzdE9mZmVyaW5nVHJhbnNhY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJvZmZlcmluZ1RyYW5zYWN0aW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3RPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIm9mZmVyaW5nc1wiXG4gICAgfSxcbiAgICBcIkxpc3RQcm9qZWN0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwicHJvamVjdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0UnVuc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwicnVuc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTYW1wbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJzYW1wbGVzXCJcbiAgICB9LFxuICAgIFwiTGlzdFN1aXRlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwic3VpdGVzXCJcbiAgICB9LFxuICAgIFwiTGlzdFRlc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJ0ZXN0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RVbmlxdWVQcm9ibGVtc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwidW5pcXVlUHJvYmxlbXNcIlxuICAgIH0sXG4gICAgXCJMaXN0VXBsb2Fkc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwidXBsb2Fkc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMi0xMC0yNVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJkaXJlY3Rjb25uZWN0XCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgRGlyZWN0IENvbm5lY3RcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiT3ZlcnR1cmVTZXJ2aWNlXCIsXG4gICAgXCJ1aWRcIjogXCJkaXJlY3Rjb25uZWN0LTIwMTItMTAtMjVcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWxsb2NhdGVDb25uZWN0aW9uT25JbnRlcmNvbm5lY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImJhbmR3aWR0aFwiLFxuICAgICAgICAgIFwiY29ubmVjdGlvbk5hbWVcIixcbiAgICAgICAgICBcIm93bmVyQWNjb3VudFwiLFxuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIixcbiAgICAgICAgICBcInZsYW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYmFuZHdpZHRoXCI6IHt9LFxuICAgICAgICAgIFwiY29ubmVjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJvd25lckFjY291bnRcIjoge30sXG4gICAgICAgICAgXCJpbnRlcmNvbm5lY3RJZFwiOiB7fSxcbiAgICAgICAgICBcInZsYW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkFsbG9jYXRlSG9zdGVkQ29ubmVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCIsXG4gICAgICAgICAgXCJvd25lckFjY291bnRcIixcbiAgICAgICAgICBcImJhbmR3aWR0aFwiLFxuICAgICAgICAgIFwiY29ubmVjdGlvbk5hbWVcIixcbiAgICAgICAgICBcInZsYW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwib3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICAgIFwiYmFuZHdpZHRoXCI6IHt9LFxuICAgICAgICAgIFwiY29ubmVjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJ2bGFuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWxsb2NhdGVQcml2YXRlVmlydHVhbEludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCIsXG4gICAgICAgICAgXCJvd25lckFjY291bnRcIixcbiAgICAgICAgICBcIm5ld1ByaXZhdGVWaXJ0dWFsSW50ZXJmYWNlQWxsb2NhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJvd25lckFjY291bnRcIjoge30sXG4gICAgICAgICAgXCJuZXdQcml2YXRlVmlydHVhbEludGVyZmFjZUFsbG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlTmFtZVwiLFxuICAgICAgICAgICAgICBcInZsYW5cIixcbiAgICAgICAgICAgICAgXCJhc25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwidmxhblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXNuXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhdXRoS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcImFtYXpvbkFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiYWRkcmVzc0ZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJjdXN0b21lckFkZHJlc3NcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFsbG9jYXRlUHVibGljVmlydHVhbEludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCIsXG4gICAgICAgICAgXCJvd25lckFjY291bnRcIixcbiAgICAgICAgICBcIm5ld1B1YmxpY1ZpcnR1YWxJbnRlcmZhY2VBbGxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIm93bmVyQWNjb3VudFwiOiB7fSxcbiAgICAgICAgICBcIm5ld1B1YmxpY1ZpcnR1YWxJbnRlcmZhY2VBbGxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZU5hbWVcIixcbiAgICAgICAgICAgICAgXCJ2bGFuXCIsXG4gICAgICAgICAgICAgIFwiYXNuXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcInZsYW5cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFzblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXV0aEtleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJhbWF6b25BZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcImN1c3RvbWVyQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJhZGRyZXNzRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICBcInJvdXRlRmlsdGVyUHJlZml4ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZUNvbm5lY3Rpb25XaXRoTGFnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIixcbiAgICAgICAgICBcImxhZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcImxhZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZUhvc3RlZENvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiLFxuICAgICAgICAgIFwicGFyZW50Q29ubmVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcInBhcmVudENvbm5lY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVWaXJ0dWFsSW50ZXJmYWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIixcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29uZmlybUNvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uU3RhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb25maXJtUHJpdmF0ZVZpcnR1YWxJbnRlcmZhY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VTdGF0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbmZpcm1QdWJsaWNWaXJ0dWFsSW50ZXJmYWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZVN0YXRlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQkdQUGVlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgICAgXCJuZXdCR1BQZWVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJhc25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImF1dGhLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiYWRkcmVzc0ZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJhbWF6b25BZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcImN1c3RvbWVyQWRkcmVzc1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvY2F0aW9uXCIsXG4gICAgICAgICAgXCJiYW5kd2lkdGhcIixcbiAgICAgICAgICBcImNvbm5lY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiYmFuZHdpZHRoXCI6IHt9LFxuICAgICAgICAgIFwiY29ubmVjdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJsYWdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEaXJlY3RDb25uZWN0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImFtYXpvblNpZGVBc25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEaXJlY3RDb25uZWN0R2F0ZXdheUFzc29jaWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCIsXG4gICAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSW50ZXJjb25uZWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpbnRlcmNvbm5lY3ROYW1lXCIsXG4gICAgICAgICAgXCJiYW5kd2lkdGhcIixcbiAgICAgICAgICBcImxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImludGVyY29ubmVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJiYW5kd2lkdGhcIjoge30sXG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7fSxcbiAgICAgICAgICBcImxhZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMYWdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm51bWJlck9mQ29ubmVjdGlvbnNcIixcbiAgICAgICAgICBcImxvY2F0aW9uXCIsXG4gICAgICAgICAgXCJjb25uZWN0aW9uc0JhbmR3aWR0aFwiLFxuICAgICAgICAgIFwibGFnTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJudW1iZXJPZkNvbm5lY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2NhdGlvblwiOiB7fSxcbiAgICAgICAgICBcImNvbm5lY3Rpb25zQmFuZHdpZHRoXCI6IHt9LFxuICAgICAgICAgIFwibGFnTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUHJpdmF0ZVZpcnR1YWxJbnRlcmZhY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiLFxuICAgICAgICAgIFwibmV3UHJpdmF0ZVZpcnR1YWxJbnRlcmZhY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwibmV3UHJpdmF0ZVZpcnR1YWxJbnRlcmZhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlTmFtZVwiLFxuICAgICAgICAgICAgICBcInZsYW5cIixcbiAgICAgICAgICAgICAgXCJhc25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwidmxhblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXNuXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhdXRoS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcImFtYXpvbkFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiY3VzdG9tZXJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcImFkZHJlc3NGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQdWJsaWNWaXJ0dWFsSW50ZXJmYWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIixcbiAgICAgICAgICBcIm5ld1B1YmxpY1ZpcnR1YWxJbnRlcmZhY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwibmV3UHVibGljVmlydHVhbEludGVyZmFjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VOYW1lXCIsXG4gICAgICAgICAgICAgIFwidmxhblwiLFxuICAgICAgICAgICAgICBcImFzblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ2bGFuXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhc25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImF1dGhLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiYW1hem9uQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJjdXN0b21lckFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiYWRkcmVzc0ZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJyb3V0ZUZpbHRlclByZWZpeGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCR1BQZWVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VJZFwiOiB7fSxcbiAgICAgICAgICBcImFzblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3VzdG9tZXJBZGRyZXNzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDb25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURpcmVjdENvbm5lY3RHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGlyZWN0Q29ubmVjdEdhdGV3YXlBc3NvY2lhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiLFxuICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5QXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUludGVyY29ubmVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnRlcmNvbm5lY3RTdGF0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxhZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibGFnSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibGFnSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZpcnR1YWxJbnRlcmZhY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlU3RhdGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbm5lY3Rpb25Mb2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJwcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2FDb250ZW50VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvYVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb25uZWN0aW9uc09uSW50ZXJjb25uZWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpbnRlcmNvbm5lY3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnRlcmNvbm5lY3RJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURpcmVjdENvbm5lY3RHYXRld2F5QXNzb2NpYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEaXJlY3RDb25uZWN0R2F0ZXdheUF0dGFjaG1lbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUF0dGFjaG1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZVJlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VPd25lckFjY291bnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhdHRhY2htZW50U3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdGF0ZUNoYW5nZUVycm9yXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEaXJlY3RDb25uZWN0R2F0ZXdheXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUhvc3RlZENvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUludGVyY29ubmVjdExvYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIjoge30sXG4gICAgICAgICAgXCJwcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2FDb250ZW50VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvYVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUludGVyY29ubmVjdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZXJjb25uZWN0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnRlcmNvbm5lY3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsYWdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJwcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2FDb250ZW50VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzJwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2NhdGlvbnNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25Db2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlVGFnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZpcnR1YWxHYXRld2F5c1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmlydHVhbEdhdGV3YXlTdGF0ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVmlydHVhbEludGVyZmFjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidmlydHVhbEludGVyZmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVDb25uZWN0aW9uRnJvbUxhZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY29ubmVjdGlvbklkXCIsXG4gICAgICAgICAgXCJsYWdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJsYWdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcInRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbnRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwidGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcInRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTGFnXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsYWdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsYWdJZFwiOiB7fSxcbiAgICAgICAgICBcImxhZ05hbWVcIjoge30sXG4gICAgICAgICAgXCJtaW5pbXVtTGlua3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJvd25lckFjY291bnRcIjoge30sXG4gICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICBcImNvbm5lY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICBcImNvbm5lY3Rpb25TdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJyZWdpb25cIjoge30sXG4gICAgICAgIFwibG9jYXRpb25cIjoge30sXG4gICAgICAgIFwiYmFuZHdpZHRoXCI6IHt9LFxuICAgICAgICBcInZsYW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhcnRuZXJOYW1lXCI6IHt9LFxuICAgICAgICBcImxvYUlzc3VlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsYWdJZFwiOiB7fSxcbiAgICAgICAgXCJhd3NEZXZpY2VcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3BcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm93bmVyQWNjb3VudFwiOiB7fSxcbiAgICAgICAgXCJ2aXJ0dWFsSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgIFwibG9jYXRpb25cIjoge30sXG4gICAgICAgIFwiY29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VUeXBlXCI6IHt9LFxuICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VOYW1lXCI6IHt9LFxuICAgICAgICBcInZsYW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImFzblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYW1hem9uU2lkZUFzblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXV0aEtleVwiOiB7fSxcbiAgICAgICAgXCJhbWF6b25BZGRyZXNzXCI6IHt9LFxuICAgICAgICBcImN1c3RvbWVyQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgXCJhZGRyZXNzRmFtaWx5XCI6IHt9LFxuICAgICAgICBcInZpcnR1YWxJbnRlcmZhY2VTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJjdXN0b21lclJvdXRlckNvbmZpZ1wiOiB7fSxcbiAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5SWRcIjoge30sXG4gICAgICAgIFwicm91dGVGaWx0ZXJQcmVmaXhlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJiZ3BQZWVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJhc25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImF1dGhLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiYWRkcmVzc0ZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJhbWF6b25BZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcImN1c3RvbWVyQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJiZ3BQZWVyU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgIFwiYmdwU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjaWRyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJkaXJlY3RDb25uZWN0R2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICBcImRpcmVjdENvbm5lY3RHYXRld2F5TmFtZVwiOiB7fSxcbiAgICAgICAgXCJhbWF6b25TaWRlQXNuXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvd25lckFjY291bnRcIjoge30sXG4gICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJzdGF0ZUNoYW5nZUVycm9yXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGlyZWN0Q29ubmVjdEdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgXCJ2aXJ0dWFsR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICBcInZpcnR1YWxHYXRld2F5UmVnaW9uXCI6IHt9LFxuICAgICAgICBcInZpcnR1YWxHYXRld2F5T3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICBcImFzc29jaWF0aW9uU3RhdGVcIjoge30sXG4gICAgICAgIFwic3RhdGVDaGFuZ2VFcnJvclwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImludGVyY29ubmVjdElkXCI6IHt9LFxuICAgICAgICBcImludGVyY29ubmVjdE5hbWVcIjoge30sXG4gICAgICAgIFwiaW50ZXJjb25uZWN0U3RhdGVcIjoge30sXG4gICAgICAgIFwicmVnaW9uXCI6IHt9LFxuICAgICAgICBcImxvY2F0aW9uXCI6IHt9LFxuICAgICAgICBcImJhbmR3aWR0aFwiOiB7fSxcbiAgICAgICAgXCJsb2FJc3N1ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFnSWRcIjoge30sXG4gICAgICAgIFwiYXdzRGV2aWNlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiY29ubmVjdGlvbnNCYW5kd2lkdGhcIjoge30sXG4gICAgICAgIFwibnVtYmVyT2ZDb25uZWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFnSWRcIjoge30sXG4gICAgICAgIFwib3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICBcImxhZ05hbWVcIjoge30sXG4gICAgICAgIFwibGFnU3RhdGVcIjoge30sXG4gICAgICAgIFwibG9jYXRpb25cIjoge30sXG4gICAgICAgIFwicmVnaW9uXCI6IHt9LFxuICAgICAgICBcIm1pbmltdW1MaW5rc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiYXdzRGV2aWNlXCI6IHt9LFxuICAgICAgICBcImNvbm5lY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxvd3NIb3N0ZWRDb25uZWN0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJsb2FDb250ZW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsb2FDb250ZW50VHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImNvbm5lY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJrZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlQ29ubmVjdGlvbnNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiY29ubmVjdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbm5lY3Rpb25zT25JbnRlcmNvbm5lY3RcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiY29ubmVjdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUludGVyY29ubmVjdHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaW50ZXJjb25uZWN0c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9jYXRpb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImxvY2F0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVmlydHVhbEdhdGV3YXlzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInZpcnR1YWxHYXRld2F5c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVmlydHVhbEludGVyZmFjZXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwidmlydHVhbEludGVyZmFjZXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTEtMTItMDVcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZHluYW1vZGJcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4wXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJEeW5hbW9EQlwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIER5bmFtb0RCXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJEeW5hbW9EQlwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJEeW5hbW9EQl8yMDExMTIwNVwiLFxuICAgIFwidWlkXCI6IFwiZHluYW1vZGItMjAxMS0xMi0wNVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJCYXRjaEdldEl0ZW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlcXVlc3RJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXF1ZXN0SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzcG9uc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5wcm9jZXNzZWRLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoV3JpdGVJdGVtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXF1ZXN0SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVxdWVzdEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVucHJvY2Vzc2VkSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiS2V5U2NoZW1hXCIsXG4gICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5WYWx1ZXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNUb0dldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zaXN0ZW50UmVhZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXRlbVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhYmxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RFdmFsdWF0ZWRUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRJdGVtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIkl0ZW1cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSXRlbVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBlY3RlZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuVmFsdWVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUXVlcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiSGFzaEtleVZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNUb0dldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc2lzdGVudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIYXNoS2V5VmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmFuZ2VLZXlDb25kaXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjYW5JbmRleEZvcndhcmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY2FuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1RvR2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NhbkZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydEtleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2Nhbm5lZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVJdGVtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlVXBkYXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXR0cmlidXRlVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwZWN0ZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHVyblZhbHVlc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRhYmxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIixcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNUb0dldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zaXN0ZW50UmVhZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJIYXNoS2V5RWxlbWVudFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJIYXNoS2V5RWxlbWVudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSYW5nZUtleUVsZW1lbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNcIjoge30sXG4gICAgICAgIFwiTlwiOiB7fSxcbiAgICAgICAgXCJCXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTU1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTlNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIkJTXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2xcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlB1dFJlcXVlc3RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJdGVtXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkl0ZW1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRlbGV0ZVJlcXVlc3RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJIYXNoS2V5RWxlbWVudFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJIYXNoS2V5RWxlbWVudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSYW5nZUtleUVsZW1lbnRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCIsXG4gICAgICAgIFwiQXR0cmlidXRlVHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICBcIkF0dHJpYnV0ZVR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUmVhZENhcGFjaXR5VW5pdHNcIixcbiAgICAgICAgXCJXcml0ZUNhcGFjaXR5VW5pdHNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVhZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIldyaXRlQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhYmxlU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJMYXN0SW5jcmVhc2VEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJMYXN0RGVjcmVhc2VEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJOdW1iZXJPZkRlY3JlYXNlc1RvZGF5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJSZWFkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiV3JpdGVDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRhYmxlU2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhpc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXR0cmlidXRlVmFsdWVMaXN0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiQmF0Y2hHZXRJdGVtXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJSZXF1ZXN0SXRlbXNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiVW5wcm9jZXNzZWRLZXlzXCJcbiAgICB9LFxuICAgIFwiTGlzdFRhYmxlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiRXhjbHVzaXZlU3RhcnRUYWJsZU5hbWVcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTGFzdEV2YWx1YXRlZFRhYmxlTmFtZVwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVGFibGVOYW1lc1wiXG4gICAgfSxcbiAgICBcIlF1ZXJ5XCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJFeGNsdXNpdmVTdGFydEtleVwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJMYXN0RXZhbHVhdGVkS2V5XCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJdGVtc1wiXG4gICAgfSxcbiAgICBcIlNjYW5cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkxhc3RFdmFsdWF0ZWRLZXlcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkl0ZW1zXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiVGFibGVFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiAyMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVUYWJsZVwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAyNSxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJBQ1RJVkVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVGFibGUuVGFibGVTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlJlc291cmNlTm90Rm91bmRFeGNlcHRpb25cIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVGFibGVOb3RFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiAyMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVUYWJsZVwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAyNSxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTItMDgtMTBcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZHluYW1vZGJcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4wXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJEeW5hbW9EQlwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIER5bmFtb0RCXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJEeW5hbW9EQlwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJEeW5hbW9EQl8yMDEyMDgxMFwiLFxuICAgIFwidWlkXCI6IFwiZHluYW1vZGItMjAxMi0wOC0xMFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJCYXRjaEdldEl0ZW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlcXVlc3RJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXF1ZXN0SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuQ29uc3VtZWRDYXBhY2l0eVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVucHJvY2Vzc2VkS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoV3JpdGVJdGVtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXF1ZXN0SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVxdWVzdEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5Db25zdW1lZENhcGFjaXR5XCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuSXRlbUNvbGxlY3Rpb25NZXRyaWNzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVW5wcm9jZXNzZWRJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXRlbUNvbGxlY3Rpb25NZXRyaWNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVCYWNrdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiQmFja3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFja3VwRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlR2xvYmFsVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHbG9iYWxUYWJsZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0cmlidXRlRGVmaW5pdGlvbnNcIixcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiS2V5U2NoZW1hXCIsXG4gICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlRGVmaW5pdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYWxTZWNvbmRhcnlJbmRleGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJLZXlTY2hlbWFcIixcbiAgICAgICAgICAgICAgICBcIlByb2plY3Rpb25cIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm9qZWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHbG9iYWxTZWNvbmRhcnlJbmRleGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJLZXlTY2hlbWFcIixcbiAgICAgICAgICAgICAgICBcIlByb2plY3Rpb25cIixcbiAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJLZXlTY2hlbWFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb2plY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdHJlYW1TcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCYWNrdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhY2t1cEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYWNrdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYWNrdXBEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25kaXRpb25hbE9wZXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuQ29uc3VtZWRDYXBhY2l0eVwiOiB7fSxcbiAgICAgICAgICBcIlJldHVybkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiOiB7fSxcbiAgICAgICAgICBcIkNvbmRpdGlvbkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJFeHByZXNzaW9uQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUJhY2t1cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQmFja3VwQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhY2t1cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhY2t1cERlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbnRpbnVvdXNCYWNrdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udGludW91c0JhY2t1cHNEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVHbG9iYWxUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2xvYmFsVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlR2xvYmFsVGFibGVTZXR0aW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2xvYmFsVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2FTZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMaW1pdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjb3VudE1heFJlYWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NvdW50TWF4V3JpdGVDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWJsZU1heFJlYWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWJsZU1heFdyaXRlQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRpbWVUb0xpdmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUaW1lVG9MaXZlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEl0ZW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzVG9HZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc2lzdGVudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHVybkNvbnN1bWVkQ2FwYWNpdHlcIjoge30sXG4gICAgICAgICAgXCJQcm9qZWN0aW9uRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25BdHRyaWJ1dGVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJdGVtXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN1bWVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJhY2t1cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRpbWVSYW5nZUxvd2VyQm91bmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZVJhbmdlVXBwZXJCb3VuZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydEJhY2t1cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhY2t1cFN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFibGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhYmxlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmFja3VwQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmFja3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJhY2t1cENyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQmFja3VwU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmFja3VwU2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkQmFja3VwQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEdsb2JhbFRhYmxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydEdsb2JhbFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2xvYmFsVGFibGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXN0RXZhbHVhdGVkR2xvYmFsVGFibGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhYmxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RFdmFsdWF0ZWRUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc09mUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0SXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJJdGVtXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkl0ZW1cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5WYWx1ZXNcIjoge30sXG4gICAgICAgICAgXCJSZXR1cm5Db25zdW1lZENhcGFjaXR5XCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuSXRlbUNvbGxlY3Rpb25NZXRyaWNzXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uYWxPcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIkNvbmRpdGlvbkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJFeHByZXNzaW9uQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUXVlcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTZWxlY3RcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzVG9HZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnNpc3RlbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlDb25kaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1ZXJ5RmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25kaXRpb25hbE9wZXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiU2NhbkluZGV4Rm9yd2FyZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuQ29uc3VtZWRDYXBhY2l0eVwiOiB7fSxcbiAgICAgICAgICBcIlByb2plY3Rpb25FeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIktleUNvbmRpdGlvbkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJFeHByZXNzaW9uQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjYW5uZWRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdEV2YWx1YXRlZEtleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdW1lZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVUYWJsZUZyb21CYWNrdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldFRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiQmFja3VwQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVUYWJsZVRvUG9pbnRJblRpbWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZVRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiVGFyZ2V0VGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZUxhdGVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXN0b3JlRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2NhblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNUb0dldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VsZWN0XCI6IHt9LFxuICAgICAgICAgIFwiU2NhbkZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZGl0aW9uYWxPcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIkV4Y2x1c2l2ZVN0YXJ0S2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHVybkNvbnN1bWVkQ2FwYWNpdHlcIjoge30sXG4gICAgICAgICAgXCJUb3RhbFNlZ21lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWdtZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9qZWN0aW9uRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlckV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJFeHByZXNzaW9uQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc2lzdGVudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2FubmVkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RFdmFsdWF0ZWRLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbnRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ29udGludW91c0JhY2t1cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJQb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udGludW91c0JhY2t1cHNEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlR2xvYmFsVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiUmVwbGljYVVwZGF0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2xvYmFsVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVwbGljYVVwZGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIlJlZ2lvbk5hbWVcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiUmVnaW9uTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWxldGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpb25OYW1lXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlJlZ2lvbk5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2xvYmFsVGFibGVEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlR2xvYmFsVGFibGVTZXR0aW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2xvYmFsVGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlR2xvYmFsU2Vjb25kYXJ5SW5kZXhTZXR0aW5nc1VwZGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFdyaXRlQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGljYVNldHRpbmdzVXBkYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUmVnaW9uTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVwbGljYVByb3Zpc2lvbmVkUmVhZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzVXBkYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkUmVhZENhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdsb2JhbFRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2FTZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSXRlbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZVVwZGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25kaXRpb25hbE9wZXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuQ29uc3VtZWRDYXBhY2l0eVwiOiB7fSxcbiAgICAgICAgICBcIlJldHVybkl0ZW1Db2xsZWN0aW9uTWV0cmljc1wiOiB7fSxcbiAgICAgICAgICBcIlVwZGF0ZUV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJDb25kaXRpb25FeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uc3VtZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJdGVtQ29sbGVjdGlvbk1ldHJpY3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRhYmxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWJsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlRGVmaW5pdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJVcGRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvamVjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcm9qZWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmRcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlbGV0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RyZWFtU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFibGVEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVGltZVRvTGl2ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFibGVOYW1lXCIsXG4gICAgICAgICAgXCJUaW1lVG9MaXZlU3BlY2lmaWNhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUaW1lVG9MaXZlU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGltZVRvTGl2ZVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2cVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNUb0dldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zaXN0ZW50UmVhZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvamVjdGlvbkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJFeHByZXNzaW9uQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU1wiOiB7fSxcbiAgICAgICAgXCJOXCI6IHt9LFxuICAgICAgICBcIkJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNTXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJOU1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQlNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTlVMTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQk9PTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhYmxlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxvY2FsU2Vjb25kYXJ5SW5kZXhlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHbG9iYWxTZWNvbmRhcnlJbmRleGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUHV0UmVxdWVzdFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkl0ZW1cIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSXRlbVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRlbGV0ZVJlcXVlc3RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSXRlbUNvbGxlY3Rpb25LZXlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU2l6ZUVzdGltYXRlUmFuZ2VHQlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkJhY2t1cEFyblwiLFxuICAgICAgICBcIkJhY2t1cE5hbWVcIixcbiAgICAgICAgXCJCYWNrdXBTdGF0dXNcIixcbiAgICAgICAgXCJCYWNrdXBDcmVhdGlvbkRhdGVUaW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJhY2t1cEFyblwiOiB7fSxcbiAgICAgICAgXCJCYWNrdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkJhY2t1cFNpemVCeXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQmFja3VwU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkJhY2t1cENyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJlZ2lvbk5hbWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiR2xvYmFsVGFibGVBcm5cIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHbG9iYWxUYWJsZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJHbG9iYWxUYWJsZU5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIixcbiAgICAgICAgICBcIktleVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIktleVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlByb2plY3Rpb25UeXBlXCI6IHt9LFxuICAgICAgICBcIk5vbktleUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJlYWRDYXBhY2l0eVVuaXRzXCIsXG4gICAgICAgIFwiV3JpdGVDYXBhY2l0eVVuaXRzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlYWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXcml0ZUNhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3RyZWFtRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RyZWFtVmlld1R5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdHRyaWJ1dGVEZWZpbml0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFibGVTdGF0dXNcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhYmxlU2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJdGVtQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhYmxlQXJuXCI6IHt9LFxuICAgICAgICBcIlRhYmxlSWRcIjoge30sXG4gICAgICAgIFwiTG9jYWxTZWNvbmRhcnlJbmRleGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJLZXlTY2hlbWFcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb2plY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluZGV4U2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJdGVtQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluZGV4QXJuXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkdsb2JhbFNlY29uZGFyeUluZGV4ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJvamVjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5kZXhTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQmFja2ZpbGxpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5kZXhTaXplQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkl0ZW1Db3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5kZXhBcm5cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RyZWFtU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF0ZXN0U3RyZWFtTGFiZWxcIjoge30sXG4gICAgICAgIFwiTGF0ZXN0U3RyZWFtQXJuXCI6IHt9LFxuICAgICAgICBcIlJlc3RvcmVTdW1tYXJ5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUmVzdG9yZURhdGVUaW1lXCIsXG4gICAgICAgICAgICBcIlJlc3RvcmVJblByb2dyZXNzXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlNvdXJjZUJhY2t1cEFyblwiOiB7fSxcbiAgICAgICAgICAgIFwiU291cmNlVGFibGVBcm5cIjoge30sXG4gICAgICAgICAgICBcIlJlc3RvcmVEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJSZXN0b3JlSW5Qcm9ncmVzc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTU0VEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJMYXN0SW5jcmVhc2VEYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0RGVjcmVhc2VEYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOdW1iZXJPZkRlY3JlYXNlc1RvZGF5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWFkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiV3JpdGVDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTU0VUeXBlXCI6IHt9LFxuICAgICAgICBcIktNU01hc3RlcktleUFyblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJhY2t1cERldGFpbHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWhcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNvdXJjZVRhYmxlRGV0YWlsc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlRhYmxlTmFtZVwiLFxuICAgICAgICAgICAgXCJUYWJsZUlkXCIsXG4gICAgICAgICAgICBcIktleVNjaGVtYVwiLFxuICAgICAgICAgICAgXCJUYWJsZUNyZWF0aW9uRGF0ZVRpbWVcIixcbiAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiVGFibGVJZFwiOiB7fSxcbiAgICAgICAgICAgIFwiVGFibGVBcm5cIjoge30sXG4gICAgICAgICAgICBcIlRhYmxlU2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJLZXlTY2hlbWFcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlRhYmxlQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkl0ZW1Db3VudFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTb3VyY2VUYWJsZUZlYXR1cmVEZXRhaWxzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJMb2NhbFNlY29uZGFyeUluZGV4ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJJbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIktleVNjaGVtYVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiUHJvamVjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiR2xvYmFsU2Vjb25kYXJ5SW5kZXhlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJQcm9qZWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFRocm91Z2hwdXRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0cmVhbURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUaW1lVG9MaXZlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNnXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNTRURlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGltZVRvTGl2ZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMza1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhpc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVWYWx1ZUxpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkNvbnRpbnVvdXNCYWNrdXBzU3RhdHVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvbnRpbnVvdXNCYWNrdXBzU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlBvaW50SW5UaW1lUmVjb3ZlcnlEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUG9pbnRJblRpbWVSZWNvdmVyeVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgIFwiRWFybGllc3RSZXN0b3JhYmxlRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTGF0ZXN0UmVzdG9yYWJsZURhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVnaW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVwbGljYVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2FQcm92aXNpb25lZFJlYWRDYXBhY2l0eVVuaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXBsaWNhUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxpY2FHbG9iYWxTZWNvbmRhcnlJbmRleFNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluZGV4U3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRSZWFkQ2FwYWNpdHlVbml0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRXcml0ZUNhcGFjaXR5VW5pdHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1NlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXR0cmlidXRlVmFsdWVMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1ZlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2cVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkVuYWJsZWRcIixcbiAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE2LTExLTE1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImVjMlwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJlYzJcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gRUMyXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gRWxhc3RpYyBDb21wdXRlIENsb3VkXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJFQzJcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiZWMyLTIwMTYtMTEtMTVcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9lYzIuYW1hem9uYXdzLmNvbS9kb2MvMjAxNi0xMS0xNVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBY2NlcHRSZXNlcnZlZEluc3RhbmNlc0V4Y2hhbmdlUXVvdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZEluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFyZ2V0Q29uZmlndXJhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV4Y2hhbmdlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleGNoYW5nZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWNjZXB0VnBjRW5kcG9pbnRDb25uZWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZUlkXCIsXG4gICAgICAgICAgXCJWcGNFbmRwb2ludElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlZwY0VuZHBvaW50SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNFbmRwb2ludElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBY2NlcHRWcGNQZWVyaW5nQ29ubmVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNQZWVyaW5nQ29ubmVjdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFsbG9jYXRlQWRkcmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHVibGljSXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG9jYXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvbWFpblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRvbWFpblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFsbG9jYXRlSG9zdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIixcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiLFxuICAgICAgICAgIFwiUXVhbnRpdHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1BsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dG9QbGFjZW1lbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInF1YW50aXR5XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdElkU2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzaWduSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklwdjZBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc0NvdW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NpZ25lZElwdjZBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NpZ25lZElwdjZBZGRyZXNzZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NpZ25Qcml2YXRlSXBBZGRyZXNzZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGxvd1JlYXNzaWdubWVudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG93UmVhc3NpZ25tZW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZUFkZHJlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxsb2NhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dSZWFzc29jaWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb3dSZWFzc29jaWF0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc29jaWF0ZURoY3BPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaGNwT3B0aW9uc0lkXCIsXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEaGNwT3B0aW9uc0lkXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVJYW1JbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUluc3RhbmNlUHJvZmlsZUFzc29jaWF0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlUm91dGVUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVTdWJuZXRDaWRyQmxvY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklwdjZDaWRyQmxvY2tcIixcbiAgICAgICAgICBcIlN1Ym5ldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklwdjZDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklwdjZDaWRyQmxvY2tBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZDaWRyQmxvY2tBc3NvY2lhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVWcGNDaWRyQmxvY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFtYXpvblByb3ZpZGVkSXB2NkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFtYXpvblByb3ZpZGVkSXB2NkNpZHJCbG9ja1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNpZHJCbG9ja1wiOiB7fSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaWRyQmxvY2tBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja0Fzc29jaWF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF0dGFjaENsYXNzaWNMaW5rVnBjXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHcm91cHNcIixcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF0dGFjaEludGVybmV0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW50ZXJuZXRHYXRld2F5SWRcIixcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludGVybmV0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJuZXRHYXRld2F5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXR0YWNoTmV0d29ya0ludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGV2aWNlSW5kZXhcIixcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXZpY2VJbmRleFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRldmljZUluZGV4XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRhY2htZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdHRhY2hWb2x1bWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRldmljZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGV2aWNlXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdHRhY2hWcG5HYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNJZFwiLFxuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjQXR0YWNobWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdXRob3JpemVTZWN1cml0eUdyb3VwRWdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHcm91cElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUGVybWlzc2lvbnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaWRySXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRySXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGcm9tUG9ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZyb21Qb3J0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBQcm90b2NvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUHJvdG9jb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb1BvcnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b1BvcnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VTZWN1cml0eUdyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNvdXJjZVNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlU2VjdXJpdHlHcm91cE93bmVySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VTZWN1cml0eUdyb3VwT3duZXJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF1dGhvcml6ZVNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpZHJJcFwiOiB7fSxcbiAgICAgICAgICBcIkZyb21Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlU2VjdXJpdHlHcm91cE93bmVySWRcIjoge30sXG4gICAgICAgICAgXCJUb1BvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJ1bmRsZUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJTdG9yYWdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdW5kbGVUYXNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYnVuZGxlSW5zdGFuY2VUYXNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsQnVuZGxlVGFza1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVuZGxlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVuZGxlSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdW5kbGVUYXNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYnVuZGxlSW5zdGFuY2VUYXNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsQ29udmVyc2lvblRhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbnZlcnNpb25UYXNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udmVyc2lvblRhc2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbnZlcnNpb25UYXNrSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWFzb25NZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVhc29uTWVzc2FnZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNhbmNlbEV4cG9ydFRhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkV4cG9ydFRhc2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeHBvcnRUYXNrSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBvcnRUYXNrSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxJbXBvcnRUYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhbmNlbFJlYXNvblwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW1wb3J0VGFza0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1wb3J0VGFza0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1wb3J0VGFza0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJldmlvdXNTdGF0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZXZpb3VzU3RhdGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2FuY2VsUmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ3NTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxTcG90RmxlZXRSZXF1ZXN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkc1wiLFxuICAgICAgICAgIFwiVGVybWluYXRlSW5zdGFuY2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlcm1pbmF0ZUluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlcm1pbmF0ZUluc3RhbmNlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxGbGVldFJlcXVlc3RzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VjY2Vzc2Z1bEZsZWV0UmVxdWVzdFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQ3VycmVudFNwb3RGbGVldFJlcXVlc3RTdGF0ZVwiLFxuICAgICAgICAgICAgICAgIFwiUHJldmlvdXNTcG90RmxlZXRSZXF1ZXN0U3RhdGVcIixcbiAgICAgICAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDdXJyZW50U3BvdEZsZWV0UmVxdWVzdFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVudFNwb3RGbGVldFJlcXVlc3RTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByZXZpb3VzU3BvdEZsZWV0UmVxdWVzdFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJldmlvdXNTcG90RmxlZXRSZXF1ZXN0U3RhdGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxGbGVldFJlcXVlc3RzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5zdWNjZXNzZnVsRmxlZXRSZXF1ZXN0U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJFcnJvclwiLFxuICAgICAgICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVycm9yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiQ29kZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNhbmNlbFNwb3RJbnN0YW5jZVJlcXVlc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTcG90SW5zdGFuY2VSZXF1ZXN0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RJbnN0YW5jZVJlcXVlc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTcG90SW5zdGFuY2VSZXF1ZXN0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYW5jZWxsZWRTcG90SW5zdGFuY2VSZXF1ZXN0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RJbnN0YW5jZVJlcXVlc3RTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3BvdEluc3RhbmNlUmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEluc3RhbmNlUmVxdWVzdElkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbmZpcm1Qcm9kdWN0SW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIlByb2R1Y3RDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0Q29kZVwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weUZwZ2FJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlRnBnYUltYWdlSWRcIixcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZUZwZ2FJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlUmVnaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZwZ2FJbWFnZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weUltYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJTb3VyY2VJbWFnZUlkXCIsXG4gICAgICAgICAgXCJTb3VyY2VSZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuY3J5cHRlZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia21zS2V5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weVNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VSZWdpb25cIixcbiAgICAgICAgICBcIlNvdXJjZVNuYXBzaG90SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblJlZ2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uUmVnaW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5jcnlwdGVkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrbXNLZXlJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZXNpZ25lZFVybFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZXNpZ25lZFVybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUN1c3RvbWVyR2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQmdwQXNuXCIsXG4gICAgICAgICAgXCJQdWJsaWNJcFwiLFxuICAgICAgICAgIFwiVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCZ3BBc25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSXBBZGRyZXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkN1c3RvbWVyR2F0ZXdheVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1c3RvbWVyR2F0ZXdheVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURlZmF1bHRTdWJuZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VibmV0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGVmYXVsdFZwY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURoY3BPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEaGNwQ29uZmlndXJhdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGhjcENvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGhjcENvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRoY3BPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGhjcE9wdGlvbnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWdyZXNzT25seUludGVybmV0R2F0ZXdheVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRsXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVGbGVldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVDb25maWdzXCIsXG4gICAgICAgICAgXCJUYXJnZXRDYXBhY2l0eVNwZWNpZmljYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlNwb3RPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBbGxvY2F0aW9uU3RyYXRlZ3lcIjoge30sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvclwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNlc3NDYXBhY2l0eVRlcm1pbmF0aW9uUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVDb25maWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk92ZXJyaWRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIk1heFByaWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiV2VpZ2h0ZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRDYXBhY2l0eVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1MVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlcm1pbmF0ZUluc3RhbmNlc1dpdGhFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVmFsaWRGcm9tXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZhbGlkVW50aWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGFjZVVuaGVhbHRoeUluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1NFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdTcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZsZWV0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVGbG93TG9nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlckxvZ3NQZXJtaXNzaW9uQXJuXCIsXG4gICAgICAgICAgXCJMb2dHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRzXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcIlRyYWZmaWNUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRGVsaXZlckxvZ3NQZXJtaXNzaW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUcmFmZmljVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGbG93TG9nSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbG93TG9nSWRTZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUZwZ2FJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5wdXRTdG9yYWdlTG9jYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnB1dFN0b3JhZ2VMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9nc1N0b3JhZ2VMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZwZ2FJbWFnZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnBnYUltYWdlR2xvYmFsSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcGdhSW1hZ2VHbG9iYWxJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUltYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1aFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0RldmljZU1hcHBpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vUmVib290XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibm9SZWJvb3RcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUluc3RhbmNlRXhwb3J0VGFza1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwb3J0VG9TM1Rhc2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBvcnRUb1MzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ29udGFpbmVyRm9ybWF0XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbnRhaW5lckZvcm1hdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGlza0ltYWdlRm9ybWF0XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRpc2tJbWFnZUZvcm1hdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNCdWNrZXRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiczNCdWNrZXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzUHJlZml4XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInMzUHJlZml4XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldEVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0RW52aXJvbm1lbnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeHBvcnRUYXNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwb3J0VGFza1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUludGVybmV0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnRlcm5ldEdhdGV3YXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1eVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnRlcm5ldEdhdGV3YXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVLZXlQYWlyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlGaW5nZXJwcmludFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleUZpbmdlcnByaW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5TWF0ZXJpYWxcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlNYXRlcmlhbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTGF1bmNoVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiLFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVEYXRhXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZURhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2M1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMYXVuY2hUZW1wbGF0ZVZlcnNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlRGF0YVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZURhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2M1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlVmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU5hdEdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiLFxuICAgICAgICAgIFwiU3VibmV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxsb2NhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYXRHYXRld2F5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN2lcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmF0R2F0ZXdheVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU5ldHdvcmtBY2xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXR3b3JrQWNsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN3BcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0FjbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU5ldHdvcmtBY2xFbnRyeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRWdyZXNzXCIsXG4gICAgICAgICAgXCJOZXR3b3JrQWNsSWRcIixcbiAgICAgICAgICBcIlByb3RvY29sXCIsXG4gICAgICAgICAgXCJSdWxlQWN0aW9uXCIsXG4gICAgICAgICAgXCJSdWxlTnVtYmVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVncmVzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkljbXBUeXBlQ29kZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzd1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkljbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvcnRSYW5nZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzd2XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvcnRSYW5nZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvdG9jb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSdWxlQWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZUFjdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bGVOdW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlTnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTmV0d29ya0ludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3VibmV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwdjZBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2QWRkcmVzc0NvdW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXB2NkFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZkXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3Nlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODBcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIixcbiAgICAgICAgICBcIlBlcm1pc3Npb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQXdzQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgIFwiQXdzU2VydmljZVwiOiB7fSxcbiAgICAgICAgICBcIlBlcm1pc3Npb25cIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludGVyZmFjZVBlcm1pc3Npb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4ZVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnRlcmZhY2VQZXJtaXNzaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUGxhY2VtZW50R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiU3RyYXRlZ3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdHJhdGVneVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIixcbiAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICBcIlByaWNlU2NoZWR1bGVzXCIsXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VDb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaWNlU2NoZWR1bGVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpY2VTY2hlZHVsZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmljZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGVybVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlcm1cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdzU2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUm91dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXN0aW5hdGlvbkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uQ2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25JcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzdGluYXRpb25JcHY2Q2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYXRHYXRld2F5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYXRHYXRld2F5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJvdXRlVGFibGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSb3V0ZVRhYmxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOHJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm91dGVUYWJsZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgXCJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcm91cElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1NFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdTcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTOTNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTcG90RGF0YWZlZWRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJidWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTcG90RGF0YWZlZWRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5N1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RGF0YWZlZWRTdWJzY3JpcHRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdWJuZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNpZHJCbG9ja1wiLFxuICAgICAgICAgIFwiVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkNpZHJCbG9ja1wiOiB7fSxcbiAgICAgICAgICBcIklwdjZDaWRyQmxvY2tcIjoge30sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Ym5ldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlc1wiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5ZFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmNyeXB0ZWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1NFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdTcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTOWZcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWcGNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNpZHJCbG9ja1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaWRyQmxvY2tcIjoge30sXG4gICAgICAgICAgXCJBbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbWF6b25Qcm92aWRlZElwdjZDaWRyQmxvY2tcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZVRlbmFuY3lcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVRlbmFuY3lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWcGNFbmRwb2ludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjSWRcIixcbiAgICAgICAgICBcIlNlcnZpY2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjRW5kcG9pbnRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeURvY3VtZW50XCI6IHt9LFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUm91dGVUYWJsZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUHJpdmF0ZURuc0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0VuZHBvaW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOW5cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjRW5kcG9pbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVnBjRW5kcG9pbnRDb25uZWN0aW9uTm90aWZpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uQXJuXCIsXG4gICAgICAgICAgXCJDb25uZWN0aW9uRXZlbnRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVnBjRW5kcG9pbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJDb25uZWN0aW9uRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzl2XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbm5lY3Rpb25Ob3RpZmljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVnBjRW5kcG9pbnRTZXJ2aWNlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmV0d29ya0xvYWRCYWxhbmNlckFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NlcHRhbmNlUmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtMb2FkQmFsYW5jZXJBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOZXR3b3JrTG9hZEJhbGFuY2VyQXJuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2EwXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZwY1BlZXJpbmdDb25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBlZXJPd25lcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGVlck93bmVySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZWVyVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwZWVyVnBjSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVlclJlZ2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNQZWVyaW5nQ29ubmVjdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZwbkNvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkN1c3RvbWVyR2F0ZXdheUlkXCIsXG4gICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgXCJWcG5HYXRld2F5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3VzdG9tZXJHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9wdGlvbnNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0aWNSb3V0ZXNPbmx5XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRpY1JvdXRlc09ubHlcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUdW5uZWxPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiVHVubmVsSW5zaWRlQ2lkclwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcmVTaGFyZWRLZXlcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBuQ29ubmVjdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FjXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwbkNvbm5lY3Rpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWcG5Db25uZWN0aW9uUm91dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uQ2lkckJsb2NrXCIsXG4gICAgICAgICAgXCJWcG5Db25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzdGluYXRpb25DaWRyQmxvY2tcIjoge30sXG4gICAgICAgICAgXCJWcG5Db25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVWcG5HYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQW1hem9uU2lkZUFzblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBuR2F0ZXdheVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FvXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwbkdhdGV3YXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDdXN0b21lckdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkN1c3RvbWVyR2F0ZXdheUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkN1c3RvbWVyR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGhjcE9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRoY3BPcHRpb25zSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGhjcE9wdGlvbnNJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVybkNvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5Db2RlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRmxlZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkc1wiLFxuICAgICAgICAgIFwiVGVybWluYXRlSW5zdGFuY2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmxlZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGbGVldElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVybWluYXRlSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWNjZXNzZnVsRmxlZXREZWxldGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWNjZXNzZnVsRmxlZXREZWxldGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDdXJyZW50RmxlZXRTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbnRGbGVldFN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJldmlvdXNGbGVldFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJldmlvdXNGbGVldFN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmxlZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZsZWV0SWRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxGbGVldERlbGV0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bEZsZWV0RGVsZXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXJyb3JcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGbGVldElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmxlZXRJZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUZsb3dMb2dzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbG93TG9nSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsb3dMb2dJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZsb3dMb2dJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVuc3VjY2Vzc2Z1bFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5zdWNjZXNzZnVsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRnBnYUltYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZwZ2FJbWFnZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSW50ZXJuZXRHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnRlcm5ldEdhdGV3YXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnRlcm5ldEdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImludGVybmV0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlS2V5UGFpclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTGF1bmNoVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2dVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxhdW5jaFRlbXBsYXRlVmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZlcnNpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYmRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGF1bmNoVGVtcGxhdGVWZXJzaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VjY2Vzc2Z1bGx5RGVsZXRlZExhdW5jaFRlbXBsYXRlVmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWNjZXNzZnVsbHlEZWxldGVkTGF1bmNoVGVtcGxhdGVWZXJzaW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmVyc2lvbk51bWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25OdW1iZXJcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxseURlbGV0ZWRMYXVuY2hUZW1wbGF0ZVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5zdWNjZXNzZnVsbHlEZWxldGVkTGF1bmNoVGVtcGxhdGVWZXJzaW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmVyc2lvbk51bWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25OdW1iZXJcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNwb25zZUVycm9yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzcG9uc2VFcnJvclwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVOYXRHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYXRHYXRld2F5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmF0R2F0ZXdheUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmF0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmF0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTmV0d29ya0FjbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmV0d29ya0FjbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU5ldHdvcmtBY2xFbnRyeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRWdyZXNzXCIsXG4gICAgICAgICAgXCJOZXR3b3JrQWNsSWRcIixcbiAgICAgICAgICBcIlJ1bGVOdW1iZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWdyZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWdyZXNzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0FjbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0FjbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUnVsZU51bWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVOdW1iZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVOZXR3b3JrSW50ZXJmYWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTmV0d29ya0ludGVyZmFjZVBlcm1pc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZVBlcm1pc3Npb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBsYWNlbWVudEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUm91dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXN0aW5hdGlvbkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uQ2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25JcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzdGluYXRpb25JcHY2Q2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm91dGVUYWJsZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUm91dGVUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlVGFibGVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTcG90RGF0YWZlZWRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU3VibmV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJuZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5ZFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZwY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcGNFbmRwb2ludENvbm5lY3Rpb25Ob3RpZmljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcGNFbmRwb2ludFNlcnZpY2VDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VydmljZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlcnZpY2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVuc3VjY2Vzc2Z1bFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5zdWNjZXNzZnVsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVnBjRW5kcG9pbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNFbmRwb2ludElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0VuZHBvaW50SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNFbmRwb2ludElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcGNQZWVyaW5nQ29ubmVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZwbkNvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwbkNvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcG5Db25uZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcG5Db25uZWN0aW9uUm91dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uQ2lkckJsb2NrXCIsXG4gICAgICAgICAgXCJWcG5Db25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzdGluYXRpb25DaWRyQmxvY2tcIjoge30sXG4gICAgICAgICAgXCJWcG5Db25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVWcG5HYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcG5HYXRld2F5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBuR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3RlckltYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbWFnZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0cmlidXRlTmFtZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZU5hbWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NvdW50QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjY291bnRBdHRyaWJ1dGVTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZU5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRyaWJ1dGVWYWx1ZVNldFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBZGRyZXNzZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY0lwc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlB1YmxpY0lwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHVibGljSXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvY2F0aW9uSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWxsb2NhdGlvbklkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWxsb2NhdGlvbklkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWRkcmVzc2VzU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHVibGljSXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG9jYXRpb25JZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvbklkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRG9tYWluXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG9tYWluXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZU93bmVySWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlT3duZXJJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBZ2dyZWdhdGVJZEZvcm1hdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZUxvbmdJZHNBZ2dyZWdhdGVkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlTG9uZ0lkc0FnZ3JlZ2F0ZWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2N3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlpvbmVOYW1lc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlpvbmVOYW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiWm9uZU5hbWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVJbmZvXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiem9uZVN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlU2V0XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVnaW9uTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlZ2lvbk5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJab25lTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInpvbmVOYW1lXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVCdW5kbGVUYXNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdW5kbGVJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdW5kbGVJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1bmRsZUlkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1bmRsZVRhc2tzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYnVuZGxlSW5zdGFuY2VUYXNrc1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2xhc3NpY0xpbmtJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VzU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgzXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb252ZXJzaW9uVGFza3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udmVyc2lvblRhc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb252ZXJzaW9uVGFza0lkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnZlcnNpb25UYXNrc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbnZlcnNpb25UYXNrc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RqXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ3VzdG9tZXJHYXRld2F5c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDdXN0b21lckdhdGV3YXlJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDdXN0b21lckdhdGV3YXlJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkN1c3RvbWVyR2F0ZXdheUlkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkN1c3RvbWVyR2F0ZXdheXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXN0b21lckdhdGV3YXlTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzeFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURoY3BPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRoY3BPcHRpb25zSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGhjcE9wdGlvbnNJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRoY3BPcHRpb25zSWRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGhjcE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaGNwT3B0aW9uc1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRlXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRWdyZXNzT25seUludGVybmV0R2F0ZXdheXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5SWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWdyZXNzT25seUludGVybmV0R2F0ZXdheVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRsXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRWxhc3RpY0dwdXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWxhc3RpY0dwdUlkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVsYXN0aWNHcHVJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljR3B1U2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbGFzdGljR3B1SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbGFzdGljR3B1SWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVsYXN0aWNHcHVUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdVR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbGFzdGljR3B1SGVhbHRoXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdUhlYWx0aFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVsYXN0aWNHcHVTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVsYXN0aWNHcHVTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV4cG9ydFRhc2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV4cG9ydFRhc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBvcnRUYXNrSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeHBvcnRUYXNrSWRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeHBvcnRUYXNrc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4cG9ydFRhc2tTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1c1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZsZWV0SGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiLFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIaXN0b3J5UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhpc3RvcnlSZWNvcmRTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXZlbnRJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VsXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50SW5mb3JtYXRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFdmVudFR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJldmVudFR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aW1lc3RhbXBcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RFdmFsdWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGFzdEV2YWx1YXRlZFRpbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbGVldElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnRUaW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZsZWV0SW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3RpdmVJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlb1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY3RpdmVJbnN0YW5jZVNldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbGVldElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGbGVldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJGbGVldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F2XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZsZWV0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmxlZXRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmxlZXRTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aXZpdHlTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY3Rpdml0eVN0YXR1c1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcmVhdGVUaW1lXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGbGVldElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmxlZXRJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZsZWV0U3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbGVldFN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV4Y2Vzc0NhcGFjaXR5VGVybWluYXRpb25Qb2xpY3lcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleGNlc3NDYXBhY2l0eVRlcm1pbmF0aW9uUG9saWN5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRnVsZmlsbGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmdWxmaWxsZWRDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRnVsZmlsbGVkT25EZW1hbmRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZ1bGZpbGxlZE9uRGVtYW5kQ2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlQ29uZmlnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlQ29uZmlnc1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNleVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZVNwZWNpZmljYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJPdmVycmlkZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvdmVycmlkZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTWF4UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhQcmljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIldlaWdodGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ3ZWlnaHRlZENhcGFjaXR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRDYXBhY2l0eVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRDYXBhY2l0eVNwZWNpZmljYXRpb25cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJUb3RhbFRhcmdldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvdGFsVGFyZ2V0Q2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJPbkRlbWFuZFRhcmdldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9uRGVtYW5kVGFyZ2V0Q2FwYWNpdHlcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTcG90VGFyZ2V0Q2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdFRhcmdldENhcGFjaXR5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdFRhcmdldENhcGFjaXR5VHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWZhdWx0VGFyZ2V0Q2FwYWNpdHlUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUZXJtaW5hdGVJbnN0YW5jZXNXaXRoRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlcm1pbmF0ZUluc3RhbmNlc1dpdGhFeHBpcmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWYWxpZEZyb21cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWxpZEZyb21cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbGlkVW50aWxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWxpZFVudGlsXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXBsYWNlVW5oZWFsdGh5SW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVwbGFjZVVuaGVhbHRoeUluc3RhbmNlc1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNwb3RPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdE9wdGlvbnNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBbGxvY2F0aW9uU3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb2NhdGlvblN0cmF0ZWd5XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3JcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRmxvd0xvZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGbG93TG9nSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGbG93TG9nSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbG93TG9nc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZsb3dMb2dTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRpb25UaW1lXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWxpdmVyTG9nc0Vycm9yTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGl2ZXJMb2dzRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVsaXZlckxvZ3NQZXJtaXNzaW9uQXJuXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsaXZlckxvZ3NQZXJtaXNzaW9uQXJuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVsaXZlckxvZ3NTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxpdmVyTG9nc1N0YXR1c1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZsb3dMb2dJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZsb3dMb2dJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZsb3dMb2dTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmbG93TG9nU3RhdHVzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTG9nR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibG9nR3JvdXBOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUcmFmZmljVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRyYWZmaWNUeXBlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGcGdhSW1hZ2VBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZwZ2FJbWFnZUlkXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZwZ2FJbWFnZUF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZwZ2FJbWFnZUF0dHJpYnV0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRnBnYUltYWdlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZwZ2FJbWFnZUlkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZwZ2FJbWFnZUlkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk93bmVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk93bmVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZwZ2FJbWFnZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcGdhSW1hZ2VTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRnBnYUltYWdlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcGdhSW1hZ2VJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZwZ2FJbWFnZUdsb2JhbElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnBnYUltYWdlR2xvYmFsSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTaGVsbFZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzaGVsbFZlcnNpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQY2lJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBjaUlkXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRGV2aWNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVmVuZG9ySWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU3Vic3lzdGVtSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU3Vic3lzdGVtVmVuZG9ySWRcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlVGltZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXBkYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwZGF0ZVRpbWVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lcklkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3duZXJBbGlhc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm93bmVyQWxpYXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm9kdWN0Q29kZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmZVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9kdWN0Q29kZXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHVibGljXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVibGljXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIb3N0UmVzZXJ2YXRpb25PZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPZmZlcmluZ1NldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9mZmVyaW5nU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbmN5Q29kZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHVyYXRpb25cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIb3VybHlQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvdXJseVByaWNlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VGYW1pbHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUZhbWlseVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvZmZlcmluZ0lkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGF5bWVudE9wdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBheW1lbnRPcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVcGZyb250UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGZyb250UHJpY2VcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUhvc3RSZXNlcnZhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3N0UmVzZXJ2YXRpb25JZFNldFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RSZXNlcnZhdGlvblNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RSZXNlcnZhdGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvdW50XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkdXJhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVuZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuZFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSG9zdElkU2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZzJcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdElkU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSG9zdFJlc2VydmF0aW9uSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0UmVzZXJ2YXRpb25JZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhvdXJseVByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG91cmx5UHJpY2VcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUZhbWlseVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlRmFtaWx5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9mZmVyaW5nSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQYXltZW50T3B0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGF5bWVudE9wdGlvblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVcGZyb250UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGZyb250UHJpY2VcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUhvc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhvc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnNVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdXRvUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0b1BsYWNlbWVudFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmxlQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFibGVDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkF2YWlsYWJsZUluc3RhbmNlQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmxlSW5zdGFuY2VDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBdmFpbGFibGVDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFibGVDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRvdGFsQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG90YWxDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkF2YWlsYWJsZVZDcHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJsZVZDcHVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhvc3RJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhvc3RQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdFByb3BlcnRpZXNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb3Jlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb3Jlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlNvY2tldHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic29ja2V0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlRvdGFsVkNwdXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG90YWxWQ3B1c1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhvc3RSZXNlcnZhdGlvbklkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdFJlc2VydmF0aW9uSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZXNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWxsb2NhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvY2F0aW9uVGltZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVsZWFzZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWxlYXNlVGltZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBc3NvY2lhdGlvbklkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSWRGb3JtYXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2N3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSWRlbnRpdHlJZEZvcm1hdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJpbmNpcGFsQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByaW5jaXBhbEFyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaW5jaXBhbEFyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2N3XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW1hZ2VBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiLFxuICAgICAgICAgIFwiSW1hZ2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge30sXG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJsb2NrRGV2aWNlTWFwcGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnc1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hQZXJtaXNzaW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZHVjdENvZGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdENvZGVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktlcm5lbElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2VybmVsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmFtZGlza1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNyaW92TmV0U3VwcG9ydFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNyaW92TmV0U3VwcG9ydFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW1hZ2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV4ZWN1dGFibGVVc2Vyc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV4ZWN1dGFibGVCeVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV4ZWN1dGFibGVCeVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbWFnZUlkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkltYWdlSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbWFnZUlkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3duZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmpcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3duZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbWFnZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZXNTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXJjaGl0ZWN0dXJlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXJjaGl0ZWN0dXJlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRpb25EYXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbWFnZUxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VMb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkltYWdlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlB1YmxpY1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzUHVibGljXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiS2VybmVsSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXJuZWxJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZU93bmVySWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYXRmb3JtXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdENvZGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmVcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdENvZGVzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmFtZGlza0lkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZVN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dyXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJsb2NrRGV2aWNlTWFwcGluZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbmFTdXBwb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5hU3VwcG9ydFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkh5cGVydmlzb3JcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJoeXBlcnZpc29yXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW1hZ2VPd25lckFsaWFzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VPd25lckFsaWFzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSb290RGV2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvb3REZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUm9vdERldmljZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb290RGV2aWNlVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNyaW92TmV0U3VwcG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNyaW92TmV0U3VwcG9ydFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlUmVhc29uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaDVcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVSZWFzb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWaXJ0dWFsaXphdGlvblR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2aXJ0dWFsaXphdGlvblR5cGVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUltcG9ydEltYWdlVGFza3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbXBvcnRUYXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaDhcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW1wb3J0VGFza0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1wb3J0SW1hZ2VUYXNrc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydEltYWdlVGFza1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBcmNoaXRlY3R1cmVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcmNoaXRlY3R1cmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSHlwZXJ2aXNvclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh5cGVydmlzb3JcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbWFnZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkltcG9ydFRhc2tJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydFRhc2tJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxpY2Vuc2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGljZW5zZVR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYXRmb3JtXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9ncmVzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNuYXBzaG90RGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hjXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90RGV0YWlsU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUltcG9ydFNuYXBzaG90VGFza3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbXBvcnRUYXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaDhcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW1wb3J0VGFza0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1wb3J0U25hcHNob3RUYXNrc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydFNuYXBzaG90VGFza1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW1wb3J0VGFza0lkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1wb3J0VGFza0lkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU25hcHNob3RUYXNrRGV0YWlsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaGpcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RUYXNrRGV0YWlsXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0cmlidXRlXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBTZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaG5cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmxvY2tEZXZpY2VNYXBwaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGlzYWJsZUFwaVRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGlzYWJsZUFwaVRlcm1pbmF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hU3VwcG9ydFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuYVN1cHBvcnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlYnNPcHRpbWl6ZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktlcm5lbElkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2VybmVsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZHVjdENvZGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdENvZGVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmFtZGlza1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvb3REZXZpY2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm9vdERldmljZU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VEZXN0Q2hlY2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VEZXN0Q2hlY2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcmlvdk5ldFN1cHBvcnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcmlvdk5ldFN1cHBvcnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyRGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJEYXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZUNyZWRpdFNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlQ3JlZGl0U3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUNyZWRpdFNwZWNpZmljYXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcHVDcmVkaXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3B1Q3JlZGl0c1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluY2x1ZGVBbGxJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbmNsdWRlQWxsSW5zdGFuY2VzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlU3RhdHVzU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnRzU2V0XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIk5vdEFmdGVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibm90QWZ0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIk5vdEJlZm9yZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5vdEJlZm9yZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaTJcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VTdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaTRcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTeXN0ZW1TdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpNFwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzeXN0ZW1TdGF0dXNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZhdGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lkXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW50ZXJuZXRHYXRld2F5c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW50ZXJuZXRHYXRld2F5SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnRlcm5ldEdhdGV3YXlJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludGVybmV0R2F0ZXdheXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnRlcm5ldEdhdGV3YXlTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1eVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUtleVBhaXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlOYW1lc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleU5hbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlOYW1lXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5UGFpcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5RmluZ2VycHJpbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlGaW5nZXJwcmludFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIktleU5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlOYW1lXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMYXVuY2hUZW1wbGF0ZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYmRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGF1bmNoVGVtcGxhdGVWZXJzaW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk1heFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlVmVyc2lvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ4XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGF1bmNoVGVtcGxhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxhdW5jaFRlbXBsYXRlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGF1bmNoVGVtcGxhdGVOYW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2dVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1vdmluZ0FkZHJlc3Nlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNJcHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY0lwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTW92aW5nQWRkcmVzc1N0YXR1c2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW92aW5nQWRkcmVzc1N0YXR1c1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJNb3ZlU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW92ZVN0YXR1c1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVibGljSXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU5hdEdhdGV3YXlzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmF0R2F0ZXdheUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmF0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmF0R2F0ZXdheXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYXRHYXRld2F5U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN2lcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOZXR3b3JrQWNsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0FjbElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmV0d29ya0FjbElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV0d29ya0FjbHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrQWNsU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN3BcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOZXR3b3JrSW50ZXJmYWNlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0cmlidXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0YWNobWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBTZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VEZXN0Q2hlY2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VEZXN0Q2hlY2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbklkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbnNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4ZVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmV0d29ya0ludGVyZmFjZUlkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgwXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGxhY2VtZW50R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGFjZW1lbnRHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGFjZW1lbnRHcm91cFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cE5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdHJhdGVneVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUHJlZml4TGlzdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4TGlzdElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHJlZml4TGlzdElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZml4TGlzdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhMaXN0U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNpZHJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaWRyU2V0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJlZml4TGlzdElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4TGlzdElkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJlZml4TGlzdE5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhMaXN0TmFtZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUHJpbmNpcGFsSWRGb3JtYXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmluY2lwYWxzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpbmNpcGFsU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFyblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFyblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY3dcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzU2V0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZWdpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpb25OYW1lc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlZ2lvbk5hbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWdpb25OYW1lXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnaW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlZ2lvbkluZm9cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW5kcG9pbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWdpb25FbmRwb2ludFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlZ2lvbk5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWdpb25OYW1lXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa2dcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9mZmVyaW5nVHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImR1cmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5kXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5kXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZml4ZWRQcmljZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VDb3VudFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3REZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc0lkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2FnZVByaWNlXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbmN5Q29kZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVGVuYW5jeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVGVuYW5jeVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nQ2xhc3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvZmZlcmluZ0NsYXNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib2ZmZXJpbmdUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tvXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlY3VycmluZ0NoYXJnZXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTY29wZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNjb3BlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nc1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc01vZGlmaWNhdGlvbklkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkSW5zdGFuY2VzTW9kaWZpY2F0aW9uSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZEluc3RhbmNlc01vZGlmaWNhdGlvbklkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25zU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xpZW50VG9rZW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlRGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRWZmZWN0aXZlRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVmZmVjdGl2ZURhdGVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1vZGlmaWNhdGlvblJlc3VsdHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtb2RpZmljYXRpb25SZXN1bHRTZXRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzSWRcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJUYXJnZXRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbDFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0Q29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzSWRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNTZXRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc2VydmVkSW5zdGFuY2VzSWRcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc01vZGlmaWNhdGlvbklkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25JZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXBkYXRlRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwZGF0ZURhdGVcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlTWFya2V0cGxhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1heER1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5EdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzT2ZmZXJpbmdJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlVGVuYW5jeVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVGVuYW5jeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib2ZmZXJpbmdUeXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nc1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHVyYXRpb25cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZml4ZWRQcmljZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9kdWN0RGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNhZ2VQcmljZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW5jeUNvZGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVRlbmFuY3lcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVRlbmFuY3lcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXJrZXRwbGFjZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtldHBsYWNlXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdDbGFzc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9mZmVyaW5nQ2xhc3NcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvZmZlcmluZ1R5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcmljaW5nRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaWNpbmdEZXRhaWxzU2V0XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY291bnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaWNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa29cIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVjdXJyaW5nQ2hhcmdlc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNjb3BlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2NvcGVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJvdXRlVGFibGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSb3V0ZVRhYmxlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSb3V0ZVRhYmxlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlVGFibGVTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4clwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNjaGVkdWxlZEluc3RhbmNlQXZhaWxhYmlsaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaXJzdFNsb3RTdGFydFRpbWVSYW5nZVwiLFxuICAgICAgICAgIFwiUmVjdXJyZW5jZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaXJzdFNsb3RTdGFydFRpbWVSYW5nZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkVhcmxpZXN0VGltZVwiLFxuICAgICAgICAgICAgICBcIkxhdGVzdFRpbWVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRWFybGllc3RUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkxhdGVzdFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4U2xvdER1cmF0aW9uSW5Ib3Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluU2xvdER1cmF0aW9uSW5Ib3Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUmVjdXJyZW5jZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRnJlcXVlbmN5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkludGVydmFsXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPY2N1cnJlbmNlRGF5c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPY2N1cnJlbmNlRGF5XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT2NjdXJlbmNlRGF5XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT2NjdXJyZW5jZVJlbGF0aXZlVG9FbmRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk9jY3VycmVuY2VVbml0XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjaGVkdWxlZEluc3RhbmNlQXZhaWxhYmlsaXR5U2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2NoZWR1bGVkSW5zdGFuY2VBdmFpbGFiaWxpdHlTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFibGVJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmxlSW5zdGFuY2VDb3VudFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpcnN0U2xvdFN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZpcnN0U2xvdFN0YXJ0VGltZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSG91cmx5UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3VybHlQcmljZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heFRlcm1EdXJhdGlvbkluRGF5c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFRlcm1EdXJhdGlvbkluRGF5c1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1pblRlcm1EdXJhdGlvbkluRGF5c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1pblRlcm1EdXJhdGlvbkluRGF5c1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5ldHdvcmtQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtQbGF0Zm9ybVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBsYXRmb3JtXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhdGZvcm1cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQdXJjaGFzZVRva2VuXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVyY2hhc2VUb2tlblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlY3VycmVuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsbFwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWN1cnJlbmNlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2xvdER1cmF0aW9uSW5Ib3Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNsb3REdXJhdGlvbkluSG91cnNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUb3RhbFNjaGVkdWxlZEluc3RhbmNlSG91cnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b3RhbFNjaGVkdWxlZEluc3RhbmNlSG91cnNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNjaGVkdWxlZEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTY2hlZHVsZWRJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNjaGVkdWxlZEluc3RhbmNlSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTY2hlZHVsZWRJbnN0YW5jZUlkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2xvdFN0YXJ0VGltZVJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJFYXJsaWVzdFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGF0ZXN0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2hlZHVsZWRJbnN0YW5jZVNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNjaGVkdWxlZEluc3RhbmNlU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbHNcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTZWN1cml0eUdyb3VwUmVmZXJlbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR3JvdXBJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZWN1cml0eUdyb3VwUmVmZXJlbmNlU2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VjdXJpdHlHcm91cFJlZmVyZW5jZVNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiR3JvdXBJZFwiLFxuICAgICAgICAgICAgICAgIFwiUmVmZXJlbmNpbmdWcGNJZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJHcm91cElkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlZmVyZW5jaW5nVnBjSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWZlcmVuY2luZ1ZwY0lkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbHpcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiR3JvdXBOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZWN1cml0eUdyb3VwSW5mb1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cE5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJcFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBQZXJtaXNzaW9uc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lcklkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiR3JvdXBJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJcFBlcm1pc3Npb25zRWdyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBQZXJtaXNzaW9uc0VncmVzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNuYXBzaG90QXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIixcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNyZWF0ZVZvbHVtZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbTZcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlVm9sdW1lUGVybWlzc2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2R1Y3RDb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3RDb2Rlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzbmFwc2hvdElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk93bmVySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmpcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3duZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXN0b3JhYmxlQnlVc2VySWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzdG9yYWJsZUJ5XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdElkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNuYXBzaG90SWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTbmFwc2hvdElkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5M1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNwb3REYXRhZmVlZFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTcG90RGF0YWZlZWRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5N1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RGF0YWZlZWRTdWJzY3JpcHRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNwb3RGbGVldEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjdGl2ZUluc3RhbmNlc1wiLFxuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGl2ZUluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VvXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjdGl2ZUluc3RhbmNlU2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTcG90RmxlZXRSZXF1ZXN0SGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCIsXG4gICAgICAgICAgXCJTdGFydFRpbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnRUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydFRpbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIaXN0b3J5UmVjb3Jkc1wiLFxuICAgICAgICAgIFwiTGFzdEV2YWx1YXRlZFRpbWVcIixcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiLFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhpc3RvcnlSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaGlzdG9yeVJlY29yZFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRXZlbnRJbmZvcm1hdGlvblwiLFxuICAgICAgICAgICAgICAgIFwiRXZlbnRUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXZlbnRJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VsXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50SW5mb3JtYXRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFdmVudFR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJldmVudFR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aW1lc3RhbXBcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RFdmFsdWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGFzdEV2YWx1YXRlZFRpbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0VGltZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTcG90RmxlZXRSZXF1ZXN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0Q29uZmlnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0Q29uZmlnc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RDb25maWdTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZVRpbWVcIixcbiAgICAgICAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RDb25maWdcIixcbiAgICAgICAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiLFxuICAgICAgICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdFN0YXRlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGl2aXR5U3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWN0aXZpdHlTdGF0dXNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlVGltZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdENvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU21yXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RGbGVldFJlcXVlc3RDb25maWdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0U3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0U3RhdGVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNwb3RJbnN0YW5jZVJlcXVlc3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcG90SW5zdGFuY2VSZXF1ZXN0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2hcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3BvdEluc3RhbmNlUmVxdWVzdElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3BvdEluc3RhbmNlUmVxdWVzdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuZlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90SW5zdGFuY2VSZXF1ZXN0U2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTcG90UHJpY2VIaXN0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmRUaW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VUeXBlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQcm9kdWN0RGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0VGltZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdFByaWNlSGlzdG9yeVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RQcmljZUhpc3RvcnlTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9kdWN0RGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcG90UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90UHJpY2VcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aW1lc3RhbXBcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhbGVTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YWxlU2VjdXJpdHlHcm91cFNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YWxlU2VjdXJpdHlHcm91cFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiR3JvdXBJZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiR3JvdXBJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwSWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cE5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFsZUlwUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNudlwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFsZUlwUGVybWlzc2lvbnNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFsZUlwUGVybWlzc2lvbnNFZ3Jlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNudlwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFsZUlwUGVybWlzc2lvbnNFZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdWJuZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldElkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldFNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVm9sdW1lQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9FbmFibGVJT1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dG9FbmFibGVJT1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2R1Y3RDb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3RDb2Rlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZvbHVtZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZvbHVtZVN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVm9sdW1lSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVm9sdW1lSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWb2x1bWVTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZVN0YXR1c1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWN0aW9uc1NldFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFdmVudElkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkV2ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50VHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnRzU2V0XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFdmVudElkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkV2ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV2ZW50VHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIk5vdEFmdGVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibm90QWZ0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIk5vdEJlZm9yZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5vdEJlZm9yZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZVN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkRldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV0YWlsc1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVm9sdW1lc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVm9sdW1lSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5ZlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZvbHVtZXNNb2RpZmljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb2NcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVm9sdW1lSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lc01vZGlmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVNb2RpZmljYXRpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvdlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwY0F0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0cmlidXRlXCIsXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge30sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVEbnNIb3N0bmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmFibGVEbnNIb3N0bmFtZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVEbnNTdXBwb3J0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5hYmxlRG5zU3VwcG9ydFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjQ2xhc3NpY0xpbmtcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3AxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDbGFzc2ljTGlua0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGFzc2ljTGlua0VuYWJsZWRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNDbGFzc2ljTGlua0Ruc1N1cHBvcnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNsYXNzaWNMaW5rRG5zU3VwcG9ydGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2xhc3NpY0xpbmtEbnNTdXBwb3J0ZWRcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNFbmRwb2ludENvbm5lY3Rpb25Ob3RpZmljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25TZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb25uZWN0aW9uTm90aWZpY2F0aW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXZcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNFbmRwb2ludENvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY0VuZHBvaW50Q29ubmVjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNFbmRwb2ludENvbm5lY3Rpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU2VydmljZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VydmljZUlkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjRW5kcG9pbnRJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0VuZHBvaW50SWRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNFbmRwb2ludE93bmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjRW5kcG9pbnRPd25lclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY0VuZHBvaW50U3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNFbmRwb2ludFN0YXRlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcmVhdGlvblRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNFbmRwb2ludFNlcnZpY2VDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlcnZpY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlQ29uZmlndXJhdGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2EwXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjRW5kcG9pbnRTZXJ2aWNlUGVybWlzc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlcnZpY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGxvd2VkUHJpbmNpcGFsc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG93ZWRQcmluY2lwYWxzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlByaW5jaXBhbFR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmluY2lwYWxUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJpbmNpcGFsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpbmNpcGFsXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNFbmRwb2ludFNlcnZpY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZXJ2aWNlTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VOYW1lU2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlRGV0YWlsU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VydmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ExXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVTZXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm93bmVyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQmFzZUVuZHBvaW50RG5zTmFtZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJhc2VFbmRwb2ludERuc05hbWVTZXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcml2YXRlRG5zTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVEbnNOYW1lXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjRW5kcG9pbnRQb2xpY3lTdXBwb3J0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNFbmRwb2ludFBvbGljeVN1cHBvcnRlZFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFjY2VwdGFuY2VSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjY2VwdGFuY2VSZXF1aXJlZFwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBjRW5kcG9pbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjRW5kcG9pbnRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY0VuZHBvaW50SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjRW5kcG9pbnRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjRW5kcG9pbnRTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5blwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwY1BlZXJpbmdDb25uZWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY25cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNQZWVyaW5nQ29ubmVjdGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNJZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY0lkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1NldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ1XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVnBuQ29ubmVjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwbkNvbm5lY3Rpb25JZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcG5Db25uZWN0aW9uSWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcG5Db25uZWN0aW9uSWRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcG5Db25uZWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwbkNvbm5lY3Rpb25TZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhY1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwbkdhdGV3YXlzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcG5HYXRld2F5SWRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBuR2F0ZXdheUlkXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBuR2F0ZXdheUlkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBuR2F0ZXdheXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cG5HYXRld2F5U2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYW9cIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0YWNoQ2xhc3NpY0xpbmtWcGNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaEludGVybmV0R2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW50ZXJuZXRHYXRld2F5SWRcIixcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludGVybmV0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJuZXRHYXRld2F5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0YWNoTmV0d29ya0ludGVyZmFjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0YWNobWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dGFjaG1lbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZm9yY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hWb2x1bWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRldmljZVwiOiB7fSxcbiAgICAgICAgICBcIkZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaFZwbkdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCIsXG4gICAgICAgICAgXCJWcG5HYXRld2F5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJWcG5HYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlVmd3Um91dGVQcm9wYWdhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUlkXCIsXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZVZwY0NsYXNzaWNMaW5rXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZVZwY0NsYXNzaWNMaW5rRG5zU3VwcG9ydFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2Fzc29jaWF0ZUFkZHJlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYXNzb2NpYXRlSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUluc3RhbmNlUHJvZmlsZUFzc29jaWF0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYXNzb2NpYXRlUm91dGVUYWJsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2Fzc29jaWF0ZVN1Ym5ldENpZHJCbG9ja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklwdjZDaWRyQmxvY2tBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZDaWRyQmxvY2tBc3NvY2lhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVWcGNDaWRyQmxvY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaWRyQmxvY2tBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja0Fzc29jaWF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZVZnd1JvdXRlUHJvcGFnYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlJZFwiLFxuICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZVZvbHVtZUlPXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlVnBjQ2xhc3NpY0xpbmtcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVWcGNDbGFzc2ljTGlua0Ruc1N1cHBvcnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb25zb2xlT3V0cHV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXRlc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3V0cHV0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3V0cHV0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGltZXN0YW1wXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDb25zb2xlU2NyZWVuc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJXYWtlVXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkltYWdlRGF0YVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlRGF0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SG9zdFJlc2VydmF0aW9uUHVyY2hhc2VQcmV2aWV3XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0SWRTZXRcIixcbiAgICAgICAgICBcIk9mZmVyaW5nSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdElkU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcjRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPZmZlcmluZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVyY2hhc2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyNlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdXJjaGFzZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvdGFsSG91cmx5UHJpY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b3RhbEhvdXJseVByaWNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVG90YWxVcGZyb250UHJpY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b3RhbFVwZnJvbnRQcmljZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldExhdW5jaFRlbXBsYXRlRGF0YVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZURhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZURhdGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQYXNzd29yZERhdGFcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFzc3dvcmREYXRhXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFzc3dvcmREYXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGltZXN0YW1wXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZXNlcnZlZEluc3RhbmNlc0V4Y2hhbmdlUXVvdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZEluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFyZ2V0Q29uZmlndXJhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbmN5Q29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzVmFsaWRFeGNoYW5nZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzVmFsaWRFeGNoYW5nZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk91dHB1dFJlc2VydmVkSW5zdGFuY2VzV2lsbEV4cGlyZUF0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3V0cHV0UmVzZXJ2ZWRJbnN0YW5jZXNXaWxsRXhwaXJlQXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBheW1lbnREdWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXltZW50RHVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZVZhbHVlUm9sbHVwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcmVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZVZhbHVlUm9sbHVwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZVZhbHVlU2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZVZhbHVlU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlc2VydmF0aW9uVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZhdGlvblZhbHVlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0Q29uZmlndXJhdGlvblZhbHVlUm9sbHVwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcmVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0Q29uZmlndXJhdGlvblZhbHVlUm9sbHVwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0Q29uZmlndXJhdGlvblZhbHVlU2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0Q29uZmlndXJhdGlvblZhbHVlU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlc2VydmF0aW9uVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZhdGlvblZhbHVlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldENvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJPZmZlcmluZ0lkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9mZmVyaW5nSWRcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZhbGlkYXRpb25GYWlsdXJlUmVhc29uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRhdGlvbkZhaWx1cmVSZWFzb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbXBvcnRJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcmNoaXRlY3R1cmVcIjoge30sXG4gICAgICAgICAgXCJDbGllbnREYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcmxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGlza0NvbnRhaW5lcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaXNrQ29udGFpbmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGV2aWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZvcm1hdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJVcmxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJVc2VyQnVja2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcm9cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkh5cGVydmlzb3JcIjoge30sXG4gICAgICAgICAgXCJMaWNlbnNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYXRmb3JtXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcmNoaXRlY3R1cmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcmNoaXRlY3R1cmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSHlwZXJ2aXNvclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImh5cGVydmlzb3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbWFnZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltcG9ydFRhc2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydFRhc2tJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGljZW5zZVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYXRmb3JtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9ncmVzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90RGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hjXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNuYXBzaG90RGV0YWlsU2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbXBvcnRJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhdGZvcm1cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRpc2tJbWFnZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaXNrSW1hZ2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkltYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcnRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNydVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaFNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hTcGVjaWZpY2F0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQWRkaXRpb25hbEluZm9cIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWRkaXRpb25hbEluZm9cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFyY2hpdGVjdHVyZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcmNoaXRlY3R1cmVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZhXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHcm91cElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZtXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHcm91cE5hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9uaXRvcmluZ1wiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpaVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhY2VtZW50XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJVc2VyRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VyRGF0YVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRhdGFcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYXRmb3JtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udmVyc2lvblRhc2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkalwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb252ZXJzaW9uVGFza1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkltcG9ydEtleVBhaXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleU5hbWVcIixcbiAgICAgICAgICBcIlB1YmxpY0tleU1hdGVyaWFsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljS2V5TWF0ZXJpYWxcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNLZXlNYXRlcmlhbFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUZpbmdlcnByaW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5RmluZ2VycHJpbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5TmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkltcG9ydFNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsaWVudERhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJEaXNrQ29udGFpbmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgIFwiVXJsXCI6IHt9LFxuICAgICAgICAgICAgICBcIlVzZXJCdWNrZXRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcm9cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW1wb3J0VGFza0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1wb3J0VGFza0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RUYXNrRGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaGpcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RUYXNrRGV0YWlsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW1wb3J0Vm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCIsXG4gICAgICAgICAgXCJJbWFnZVwiLFxuICAgICAgICAgIFwiVm9sdW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltYWdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcnRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWb2x1bWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNydVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb252ZXJzaW9uVGFza1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbnZlcnNpb25UYXNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RmxlZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIixcbiAgICAgICAgICBcIlRhcmdldENhcGFjaXR5U3BlY2lmaWNhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4Y2Vzc0NhcGFjaXR5VGVybWluYXRpb25Qb2xpY3lcIjoge30sXG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0Q2FwYWNpdHlTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlGcGdhSW1hZ2VBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZwZ2FJbWFnZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnBnYUltYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIjoge30sXG4gICAgICAgICAgXCJPcGVyYXRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3M5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VyR3JvdXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9kdWN0Q29kZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQcm9kdWN0Q29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvYWRQZXJtaXNzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBZGRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc2RcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlbW92ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnBnYUltYWdlQXR0cmlidXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnBnYUltYWdlQXR0cmlidXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5SG9zdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9QbGFjZW1lbnRcIixcbiAgICAgICAgICBcIkhvc3RJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b1BsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF1dG9QbGFjZW1lbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3N0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZzVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VjY2Vzc2Z1bFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VjY2Vzc2Z1bFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVuc3VjY2Vzc2Z1bFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUlkRm9ybWF0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiVXNlTG9uZ0lkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZUxvbmdJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUlkZW50aXR5SWRGb3JtYXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByaW5jaXBhbEFyblwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAgICBcIlVzZUxvbmdJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJpbmNpcGFsQXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpbmNpcGFsQXJuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZUxvbmdJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VMb25nSWRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5SW1hZ2VBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkltYWdlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJMYXVuY2hQZXJtaXNzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBZGRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3NcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlbW92ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnc1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RDb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlByb2R1Y3RDb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJHcm91cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUluc3RhbmNlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURlc3RDaGVja1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0cmlidXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJsb2NrRGV2aWNlTWFwcGluZ1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXZpY2VOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVic1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlZvbHVtZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZUlkXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOb0RldmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5vRGV2aWNlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmlydHVhbE5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2aXJ0dWFsTmFtZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRpc2FibGVBcGlUZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRpc2FibGVBcGlUZXJtaW5hdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic09wdGltaXplZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYVN1cHBvcnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNocVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmFTdXBwb3J0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiR3JvdXBJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2VybmVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2VybmVsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmFtZGlza1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJhbWRpc2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcmlvdk5ldFN1cHBvcnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcmlvdk5ldFN1cHBvcnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VyRGF0YVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJEYXRhXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsdWVcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbHVlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5SW5zdGFuY2VDcmVkaXRTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUNyZWRpdFNwZWNpZmljYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUNyZWRpdFNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VDcmVkaXRTcGVjaWZpY2F0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcHVDcmVkaXRzXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VjY2Vzc2Z1bEluc3RhbmNlQ3JlZGl0U3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWNjZXNzZnVsSW5zdGFuY2VDcmVkaXRTcGVjaWZpY2F0aW9uU2V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5zdWNjZXNzZnVsSW5zdGFuY2VDcmVkaXRTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bEluc3RhbmNlQ3JlZGl0U3BlY2lmaWNhdGlvblNldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVycm9yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5SW5zdGFuY2VQbGFjZW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWZmaW5pdHlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhZmZpbml0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkhvc3RJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVuYW5jeVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlbmFuY3lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlMYXVuY2hUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2V0RGVmYXVsdFZlcnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5TmV0d29ya0ludGVyZmFjZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dGFjaG1lbnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQXR0YWNobWVudElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxldGVPblRlcm1pbmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZURlc3RDaGVja1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hxXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNvdXJjZURlc3RDaGVja1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVJlc2VydmVkSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkc1wiLFxuICAgICAgICAgIFwiVGFyZ2V0Q29uZmlndXJhdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRJbnN0YW5jZXNJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZEluc3RhbmNlc0lkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldENvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZXNDb25maWd1cmF0aW9uU2V0SXRlbVR5cGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsMVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc01vZGlmaWNhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVNuYXBzaG90QXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0ZVZvbHVtZVBlcm1pc3Npb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFkZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtNlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU202XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbHpcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXNlckdyb3VwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3BlcmF0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgXCJVc2VySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTczlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXNlcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5U3BvdEZsZWV0UmVxdWVzdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV4Y2Vzc0NhcGFjaXR5VGVybWluYXRpb25Qb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleGNlc3NDYXBhY2l0eVRlcm1pbmF0aW9uUG9saWN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdEZsZWV0UmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEZsZWV0UmVxdWVzdElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0Q2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRDYXBhY2l0eVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVN1Ym5ldEF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3VibmV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzaWduSXB2NkFkZHJlc3NPbkNyZWF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXBQdWJsaWNJcE9uTGF1bmNoXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5Vm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZU1vZGlmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU292XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZU1vZGlmaWNhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZvbHVtZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b0VuYWJsZUlPXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZwY0F0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5hYmxlRG5zSG9zdG5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVEbnNTdXBwb3J0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaHFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5VnBjRW5kcG9pbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZwY0VuZHBvaW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNFbmRwb2ludElkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvbGljeURvY3VtZW50XCI6IHt9LFxuICAgICAgICAgIFwiQWRkUm91dGVUYWJsZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWRkUm91dGVUYWJsZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVtb3ZlUm91dGVUYWJsZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVtb3ZlUm91dGVUYWJsZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRkU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBZGRTdWJuZXRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlbW92ZVN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVtb3ZlU3VibmV0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZGRTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBZGRTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZW1vdmVTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZW1vdmVTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YXRlRG5zRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5VnBjRW5kcG9pbnRDb25uZWN0aW9uTm90aWZpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ29ubmVjdGlvbkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5WYWx1ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZwY0VuZHBvaW50U2VydmljZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNlcnZpY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkFjY2VwdGFuY2VSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRkTmV0d29ya0xvYWRCYWxhbmNlckFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFkZE5ldHdvcmtMb2FkQmFsYW5jZXJBcm5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZW1vdmVOZXR3b3JrTG9hZEJhbGFuY2VyQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVtb3ZlTmV0d29ya0xvYWRCYWxhbmNlckFyblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZwY0VuZHBvaW50U2VydmljZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2aWNlSWRcIjoge30sXG4gICAgICAgICAgXCJBZGRBbGxvd2VkUHJpbmNpcGFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZW1vdmVBbGxvd2VkUHJpbmNpcGFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5WYWx1ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVZwY1BlZXJpbmdDb25uZWN0aW9uT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRlclBlZXJpbmdDb25uZWN0aW9uT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3R2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0ZXJQZWVyaW5nQ29ubmVjdGlvbk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0dlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRlclBlZXJpbmdDb25uZWN0aW9uT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3R4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjY2VwdGVyUGVlcmluZ0Nvbm5lY3Rpb25PcHRpb25zXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyUGVlcmluZ0Nvbm5lY3Rpb25PcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdHhcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVxdWVzdGVyUGVlcmluZ0Nvbm5lY3Rpb25PcHRpb25zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5VnBjVGVuYW5jeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVnBjSWRcIixcbiAgICAgICAgICBcIkluc3RhbmNlVGVuYW5jeVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlVGVuYW5jeVwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb25pdG9ySW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZU1vbml0b3JpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdTNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VzU2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW92ZUFkZHJlc3NUb1ZwY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHVibGljSXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljSXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG9jYXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1cmNoYXNlSG9zdFJlc2VydmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0SWRTZXRcIixcbiAgICAgICAgICBcIk9mZmVyaW5nSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge30sXG4gICAgICAgICAgXCJIb3N0SWRTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0UHJpY2VcIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1cnJlbmN5Q29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1cmNoYXNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcjZcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHVyY2hhc2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb3RhbEhvdXJseVByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG90YWxIb3VybHlQcmljZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvdGFsVXBmcm9udFByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG90YWxVcGZyb250UHJpY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VzT2ZmZXJpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzT2ZmZXJpbmdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRQcmljZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFtb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW5jeUNvZGVcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZlZEluc3RhbmNlc0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVyY2hhc2VTY2hlZHVsZWRJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlB1cmNoYXNlUmVxdWVzdHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdXJjaGFzZVJlcXVlc3RzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHVyY2hhc2VSZXF1ZXN0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHVyY2hhc2VSZXF1ZXN0XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICAgICAgICBcIlB1cmNoYXNlVG9rZW5cIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHVyY2hhc2VUb2tlblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjaGVkdWxlZEluc3RhbmNlU2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2NoZWR1bGVkSW5zdGFuY2VTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsc1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWJvb3RJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVySW1hZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VMb2NhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkFyY2hpdGVjdHVyZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFyY2hpdGVjdHVyZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJsb2NrRGV2aWNlTWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1aFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCbG9ja0RldmljZU1hcHBpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hU3VwcG9ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuYVN1cHBvcnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXJuZWxJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtlcm5lbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCaWxsaW5nUHJvZHVjdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCaWxsaW5nUHJvZHVjdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSYW1kaXNrSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyYW1kaXNrSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb290RGV2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvb3REZXZpY2VOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3Jpb3ZOZXRTdXBwb3J0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3Jpb3ZOZXRTdXBwb3J0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmlydHVhbGl6YXRpb25UeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmlydHVhbGl6YXRpb25UeXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWplY3RWcGNFbmRwb2ludENvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZXJ2aWNlSWRcIixcbiAgICAgICAgICBcIlZwY0VuZHBvaW50SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVnBjRW5kcG9pbnRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY0VuZHBvaW50SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVuc3VjY2Vzc2Z1bFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlamVjdFZwY1BlZXJpbmdDb25uZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNQZWVyaW5nQ29ubmVjdGlvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVsZWFzZUFkZHJlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxsb2NhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljSXBcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWxlYXNlSG9zdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2c1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1bnN1Y2Nlc3NmdWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXBsYWNlSWFtSW5zdGFuY2VQcm9maWxlQXNzb2NpYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiLFxuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVBc3NvY2lhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUluc3RhbmNlUHJvZmlsZUFzc29jaWF0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVwbGFjZU5ldHdvcmtBY2xBc3NvY2lhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiLFxuICAgICAgICAgIFwiTmV0d29ya0FjbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0FjbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0FjbElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV3QXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ld0Fzc29jaWF0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXBsYWNlTmV0d29ya0FjbEVudHJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFZ3Jlc3NcIixcbiAgICAgICAgICBcIk5ldHdvcmtBY2xJZFwiLFxuICAgICAgICAgIFwiUHJvdG9jb2xcIixcbiAgICAgICAgICBcIlJ1bGVBY3Rpb25cIixcbiAgICAgICAgICBcIlJ1bGVOdW1iZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWdyZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWdyZXNzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWNtcFR5cGVDb2RlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN3VcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWNtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwdjZDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0FjbElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0FjbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUG9ydFJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN3ZcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9ydFJhbmdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdG9jb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm90b2NvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bGVBY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlQWN0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUnVsZU51bWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVOdW1iZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXBsYWNlUm91dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXN0aW5hdGlvbkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uQ2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25JcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzdGluYXRpb25JcHY2Q2lkckJsb2NrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ2F0ZXdheUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYXRHYXRld2F5SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYXRHYXRld2F5SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlcGxhY2VSb3V0ZVRhYmxlQXNzb2NpYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIixcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvdXRlVGFibGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlVGFibGVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5ld0Fzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXdBc3NvY2lhdGlvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVwb3J0SW5zdGFuY2VTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlc1wiLFxuICAgICAgICAgIFwiUmVhc29uQ29kZXNcIixcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuZFRpbWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RiXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWFzb25Db2Rlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlYXNvbkNvZGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnRUaW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXF1ZXN0U3BvdEZsZWV0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0Q29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0Q29uZmlnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNwb3RGbGVldFJlcXVlc3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTcG90RmxlZXRSZXF1ZXN0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90RmxlZXRSZXF1ZXN0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXF1ZXN0U3BvdEluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lR3JvdXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCbG9ja0R1cmF0aW9uTWludXRlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJsb2NrRHVyYXRpb25NaW51dGVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUNvdW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hHcm91cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaFNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBZGRyZXNzaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhZGRyZXNzaW5nVHlwZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnclwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmxvY2tEZXZpY2VNYXBwaW5nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWJzT3B0aW1pemVkXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiS2VybmVsSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2VybmVsSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIktleU5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5TmFtZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTW9uaXRvcmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuaVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9uaXRvcmluZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbXhcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5ldHdvcmtJbnRlcmZhY2VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtelwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhY2VtZW50XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSYW1kaXNrSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmFtZGlza0lkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVXNlckRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlckRhdGFcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNwb3RQcmljZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RQcmljZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRGcm9tXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRGcm9tXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZFVudGlsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRVbnRpbFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNwb3RJbnN0YW5jZVJlcXVlc3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbmZcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEluc3RhbmNlUmVxdWVzdFNldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc2V0RnBnYUltYWdlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGcGdhSW1hZ2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZwZ2FJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmV0dXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmV0dXJuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXRJbWFnZUF0dHJpYnV0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXR0cmlidXRlXCIsXG4gICAgICAgICAgXCJJbWFnZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fSxcbiAgICAgICAgICBcIkltYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldEluc3RhbmNlQXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIixcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0cmlidXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldE5ldHdvcmtJbnRlcmZhY2VBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VEZXN0Q2hlY2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VEZXN0Q2hlY2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldFNuYXBzaG90QXR0cmlidXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdHRyaWJ1dGVcIixcbiAgICAgICAgICBcIlNuYXBzaG90SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVBZGRyZXNzVG9DbGFzc2ljXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQdWJsaWNJcFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNJcFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY0lwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHVibGljSXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwdWJsaWNJcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZVNlY3VyaXR5R3JvdXBFZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdyb3VwSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBQZXJtaXNzaW9uc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNpZHJJcFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJJcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZyb21Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnJvbVBvcnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcFByb3RvY29sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBQcm90b2NvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvUG9ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvUG9ydFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZVNlY3VyaXR5R3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic291cmNlU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNvdXJjZVNlY3VyaXR5R3JvdXBPd25lcklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV2b2tlU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2lkcklwXCI6IHt9LFxuICAgICAgICAgIFwiRnJvbVBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJJcFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcFByb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlRvUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUnVuSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNYXhDb3VudFwiLFxuICAgICAgICAgIFwiTWluQ291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVoXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJsb2NrRGV2aWNlTWFwcGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltYWdlSWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJJcHY2QWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSXB2NkFkZHJlc3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXJuZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIktleU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmFtZGlza0lkXCI6IHt9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlY3VyaXR5R3JvdXBJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNm1cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgIFwiVXNlckRhdGFcIjoge30sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsSW5mb1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFkZGl0aW9uYWxJbmZvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRpc2FibGVBcGlUZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRpc2FibGVBcGlUZXJtaW5hdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic09wdGltaXplZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklhbUluc3RhbmNlUHJvZmlsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUluc3RhbmNlUHJvZmlsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbXhcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWxhc3RpY0dwdVNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZsXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1NwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnU3BlY2lmaWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlTWFya2V0T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFya2V0VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTcG90T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiTWF4UHJpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlNwb3RJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkJsb2NrRHVyYXRpb25NaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJWYWxpZFVudGlsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3JcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3JlZGl0U3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3B1T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ29yZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUaHJlYWRzUGVyQ29yZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTaWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSdW5TY2hlZHVsZWRJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxhdW5jaFNwZWNpZmljYXRpb25cIixcbiAgICAgICAgICBcIlNjaGVkdWxlZEluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXVuY2hTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiSW1hZ2VJZFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJsb2NrRGV2aWNlTWFwcGluZ1wiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJsb2NrRGV2aWNlTWFwcGluZ1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkRldmljZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRWJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlNuYXBzaG90SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlZvbHVtZVNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTm9EZXZpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVmlydHVhbE5hbWVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJLZXJuZWxJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZXNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmV0d29ya0ludGVyZmFjZVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5ldHdvcmtJbnRlcmZhY2VcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkRldmljZUluZGV4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdzFcIixcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklwdjZBZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSXB2NkFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc1wiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzQ29uZmlnc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQcml2YXRlSXBBZGRyZXNzQ29uZmlnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHJpdmF0ZUlwQWRkcmVzc0NvbmZpZ1NldFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByaW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSYW1kaXNrSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3MVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJVc2VyRGF0YVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2hlZHVsZWRJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFNldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRTZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkZGl0aW9uYWxJbmZvXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWRkaXRpb25hbEluZm9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkcnlSdW5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFydGluZ0luc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3djXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlc1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRyeVJ1blwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZm9yY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdG9wcGluZ0luc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3djXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlc1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlcm1pbmF0ZUluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVybWluYXRpbmdJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3Y1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZXNTZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbmFzc2lnbklwdjZBZGRyZXNzZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklwdjZBZGRyZXNzZXNcIixcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkFkZHJlc3Nlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVuYXNzaWduZWRJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidW5hc3NpZ25lZElwdjZBZGRyZXNzZXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbmFzc2lnblByaXZhdGVJcEFkZHJlc3Nlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCIsXG4gICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVubW9uaXRvckluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkYlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZHJ5UnVuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VNb25pdG9yaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3UzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlc1NldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVNlY3VyaXR5R3JvdXBSdWxlRGVzY3JpcHRpb25zRWdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJcFBlcm1pc3Npb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRyeVJ1blwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIklwUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJldHVyblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJldHVyblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVNlY3VyaXR5R3JvdXBSdWxlRGVzY3JpcHRpb25zSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSXBQZXJtaXNzaW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJJcFBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXR1cm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXR1cm5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkSW5zdGFuY2VJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYXJnZXRDb25maWd1cmF0aW9uUmVxdWVzdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9mZmVyaW5nSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCIsXG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRXJyb3JcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRXJyb3JcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiQ29kZVwiLFxuICAgICAgICAgICAgXCJNZXNzYWdlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvZGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWVzc2FnZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb3VyY2VJZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFjY2VwdGVyVnBjSW5mb1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY2NlcHRlclZwY0luZm9cIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4cGlyYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4cGlyYXRpb25UaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXF1ZXN0ZXJWcGNJbmZvXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcXVlc3RlclZwY0luZm9cIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDb2RlXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb2RlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1lc3NhZ2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNQZWVyaW5nQ29ubmVjdGlvbklkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2lkckJsb2NrXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXB2NkNpZHJCbG9ja1NldFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklwdjZDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2lkckJsb2NrU2V0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1NldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkckJsb2NrXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJPd25lcklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm93bmVySWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBlZXJpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBlZXJpbmdPcHRpb25zXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQWxsb3dEbnNSZXNvbHV0aW9uRnJvbVJlbW90ZVZwY1wiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb3dEbnNSZXNvbHV0aW9uRnJvbVJlbW90ZVZwY1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkFsbG93RWdyZXNzRnJvbUxvY2FsQ2xhc3NpY0xpbmtUb1JlbW90ZVZwY1wiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb3dFZ3Jlc3NGcm9tTG9jYWxDbGFzc2ljTGlua1RvUmVtb3RlVnBjXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQWxsb3dFZ3Jlc3NGcm9tTG9jYWxWcGNUb1JlbW90ZUNsYXNzaWNMaW5rXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvd0VncmVzc0Zyb21Mb2NhbFZwY1RvUmVtb3RlQ2xhc3NpY0xpbmtcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWdpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVnaW9uXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsdWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXJuXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXNzb2NpYXRpb25JZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUluc3RhbmNlUHJvZmlsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aW1lc3RhbXBcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXJuXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFyblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvbklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZDaWRyQmxvY2tcIlxuICAgICAgICB9LFxuICAgICAgICBcIklwdjZDaWRyQmxvY2tTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrU3RhdGVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvbklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcHY2Q2lkckJsb2NrXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZDaWRyQmxvY2tcIlxuICAgICAgICB9LFxuICAgICAgICBcIklwdjZDaWRyQmxvY2tTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja1N0YXRlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvbklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDaWRyQmxvY2tcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkckJsb2NrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDaWRyQmxvY2tTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkckJsb2NrU3RhdGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXR0YWNoVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2hUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXZpY2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV2aWNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVm9sdW1lSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGcm9tUG9ydFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZyb21Qb3J0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBQcm90b2NvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUHJvdG9jb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcFJhbmdlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwUmFuZ2VzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNpZHJJcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJJcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcHY2UmFuZ2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NlJhbmdlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDaWRySXB2NlwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJJcHY2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZpeExpc3RJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhMaXN0SWRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcmVmaXhMaXN0SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhMaXN0SWRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUb1BvcnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b1BvcnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VySWRHcm91cFBhaXJzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmVcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR3JvdXBJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQZWVyaW5nU3RhdHVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBlZXJpbmdTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzZXJJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VySWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUzNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkFXU0FjY2Vzc0tleUlkXCI6IHt9LFxuICAgICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJ1Y2tldFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQcmVmaXhcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZWZpeFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJVcGxvYWRQb2xpY3lcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwbG9hZFBvbGljeVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlVwbG9hZFBvbGljeVNpZ25hdHVyZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBsb2FkUG9saWN5U2lnbmF0dXJlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCdW5kbGVJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJidW5kbGVJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQnVuZGxlVGFza0Vycm9yXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9ncmVzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0VGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0b3JhZ2VcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVwZGF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBkYXRlVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0ZURhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcmVhdGVEYXRlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlQ291bnRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUNvdW50XCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaWNlU2NoZWR1bGVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpY2VTY2hlZHVsZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aXZlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWN0aXZlXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VycmVuY3lDb2RlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmljZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGVybVwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlcm1cIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNlcnZlZEluc3RhbmNlc0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzZXJ2ZWRJbnN0YW5jZXNMaXN0aW5nSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwZGF0ZURhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGRhdGVEYXRlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNwb3RJbnN0YW5jZVJlcXVlc3RJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQmdwQXNuXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJncEFzblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VzdG9tZXJHYXRld2F5SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3VzdG9tZXJHYXRld2F5SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIklwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcEFkZHJlc3NcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmxlSXBBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmxlSXBBZGRyZXNzQ291bnRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDaWRyQmxvY2tcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkckJsb2NrXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0Rm9yQXpcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVmYXVsdEZvckF6XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFwUHVibGljSXBPbkxhdW5jaFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXBQdWJsaWNJcE9uTGF1bmNoXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXNzaWduSXB2NkFkZHJlc3NPbkNyZWF0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc2lnbklwdjZBZGRyZXNzT25DcmVhdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklwdjZDaWRyQmxvY2tBc3NvY2lhdGlvblNldFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25TZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0NVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2lkckJsb2NrXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNpZHJCbG9ja1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGhjcE9wdGlvbnNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaGNwT3B0aW9uc0lkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlVGVuYW5jeVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVRlbmFuY3lcIlxuICAgICAgICB9LFxuICAgICAgICBcIklwdjZDaWRyQmxvY2tBc3NvY2lhdGlvblNldFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpcHY2Q2lkckJsb2NrQXNzb2NpYXRpb25TZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2lkckJsb2NrQXNzb2NpYXRpb25TZXRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkckJsb2NrQXNzb2NpYXRpb25TZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNEZWZhdWx0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzRGVmYXVsdFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRoY3BDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaGNwQ29uZmlndXJhdGlvblNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsdWVTZXRcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRGhjcE9wdGlvbnNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaGNwT3B0aW9uc0lkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWx1ZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdHRhY2htZW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0bVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVncmVzc09ubHlJbnRlcm5ldEdhdGV3YXlJZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUb3RhbFRhcmdldENhcGFjaXR5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRvdGFsVGFyZ2V0Q2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9uRGVtYW5kVGFyZ2V0Q2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNwb3RUYXJnZXRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVmYXVsdFRhcmdldENhcGFjaXR5VHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNWVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgXCJLZXlcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1aVwiLFxuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJsb2NrRGV2aWNlTWFwcGluZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1aVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGV2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXZpY2VOYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWaXJ0dWFsTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2aXJ0dWFsTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRWJzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVic1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5jcnlwdGVkXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlvcHNcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RJZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJWb2x1bWVTaXplXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVTaXplXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lVHlwZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk5vRGV2aWNlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5vRGV2aWNlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFeHBvcnRUYXNrSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwb3J0VGFza0lkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFeHBvcnRUb1MzVGFza1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBvcnRUb1MzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29udGFpbmVyRm9ybWF0XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb250YWluZXJGb3JtYXRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRGlza0ltYWdlRm9ybWF0XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaXNrSW1hZ2VGb3JtYXRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUzNCdWNrZXRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInMzQnVja2V0XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlMzS2V5XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzM0tleVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlRXhwb3J0RGV0YWlsc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUV4cG9ydFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVGFyZ2V0RW52aXJvbm1lbnRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldEVudmlyb25tZW50XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzV5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdHRhY2htZW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0bVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW50ZXJuZXRHYXRld2F5SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJuZXRHYXRld2F5SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNjNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktlcm5lbElkXCI6IHt9LFxuICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCbG9ja0RldmljZU1hcHBpbmdcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCbG9ja0RldmljZU1hcHBpbmdcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEZXZpY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlZpcnR1YWxOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVic1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiVm9sdW1lU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOb0RldmljZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOZXR3b3JrSW50ZXJmYWNlXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW5zdGFuY2VOZXR3b3JrSW50ZXJmYWNlU3BlY2lmaWNhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiRGV2aWNlSW5kZXhcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnN0YW5jZUlwdjZBZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiSXB2NkFkZHJlc3NcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkltYWdlSWRcIjoge30sXG4gICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICBcIktleU5hbWVcIjoge30sXG4gICAgICAgIFwiTW9uaXRvcmluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQbGFjZW1lbnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICBcIkFmZmluaXR5XCI6IHt9LFxuICAgICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICBcIkhvc3RJZFwiOiB7fSxcbiAgICAgICAgICAgIFwiVGVuYW5jeVwiOiB7fSxcbiAgICAgICAgICAgIFwiU3ByZWFkRG9tYWluXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlJhbURpc2tJZFwiOiB7fSxcbiAgICAgICAgXCJEaXNhYmxlQXBpVGVybWluYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiOiB7fSxcbiAgICAgICAgXCJVc2VyRGF0YVwiOiB7fSxcbiAgICAgICAgXCJUYWdTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdTcGVjaWZpY2F0aW9uXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGF1bmNoVGVtcGxhdGVUYWdTcGVjaWZpY2F0aW9uUmVxdWVzdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRWxhc3RpY0dwdVNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVsYXN0aWNHcHVTcGVjaWZpY2F0aW9uXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmxcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRWxhc3RpY0dwdVNwZWNpZmljYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzZhXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzZtXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZU1hcmtldE9wdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIk1hcmtldFR5cGVcIjoge30sXG4gICAgICAgICAgICBcIlNwb3RPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJNYXhQcmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNwb3RJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCbG9ja0R1cmF0aW9uTWludXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsaWRVbnRpbFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlZGl0U3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2c1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNmRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmltYXJ5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpbWFyeVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiVHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2bVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkNwdUNyZWRpdHNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3B1Q3JlZGl0c1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF1bmNoVGVtcGxhdGVOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcmVhdGVUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGVkQnlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlZEJ5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0VmVyc2lvbk51bWJlclwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWZhdWx0VmVyc2lvbk51bWJlclwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVzdFZlcnNpb25OdW1iZXJcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF0ZXN0VmVyc2lvbk51bWJlclwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF1bmNoVGVtcGxhdGVOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFRlbXBsYXRlTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmVyc2lvbk51bWJlclwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uTnVtYmVyXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmVyc2lvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25EZXNjcmlwdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcmVhdGVUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcmVhdGVkQnlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlZEJ5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWZhdWx0VmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWZhdWx0VmVyc2lvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlRGF0YVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVEYXRhXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktlcm5lbElkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtlcm5lbElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWJzT3B0aW1pemVkXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUluc3RhbmNlUHJvZmlsZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkFyblwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXJuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJsb2NrRGV2aWNlTWFwcGluZ1NldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEZXZpY2VOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZpcnR1YWxOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZpcnR1YWxOYW1lXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFYnNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWJzXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmNyeXB0ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxldGVPblRlcm1pbmF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW9wc1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkttc0tleUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrbXNLZXlJZFwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzbmFwc2hvdElkXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlZvbHVtZVNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZVNpemVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVUeXBlXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTm9EZXZpY2VcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibm9EZXZpY2VcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQXNzb2NpYXRlUHVibGljSXBBZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlbGV0ZU9uVGVybWluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZXZpY2VJbmRleFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXZpY2VJbmRleFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBTZXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklwdjZBZGRyZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkFkZHJlc3NDb3VudFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklwdjZBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzVcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzZXNTZXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZkXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzZXNTZXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnRcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJLZXlOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleU5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9uaXRvcmluZ1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuYWJsZWRcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGFjZW1lbnRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkFmZmluaXR5XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhZmZpbml0eVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwTmFtZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJIb3N0SWRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RJZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUZW5hbmN5XCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZW5hbmN5XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlNwcmVhZERvbWFpblwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3ByZWFkRG9tYWluXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUmFtRGlza0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJhbURpc2tJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGlzYWJsZUFwaVRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRpc2FibGVBcGlUZXJtaW5hdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzZXJEYXRhXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJEYXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTcGVjaWZpY2F0aW9uU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZVR5cGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFbGFzdGljR3B1U3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdVNwZWNpZmljYXRpb25TZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0eXBlXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlY3VyaXR5R3JvdXBJZFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VjdXJpdHlHcm91cFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VNYXJrZXRPcHRpb25zXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlTWFya2V0T3B0aW9uc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIk1hcmtldFR5cGVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtldFR5cGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU3BvdE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RPcHRpb25zXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTWF4UHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhQcmljZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNwb3RJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90SW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQmxvY2tEdXJhdGlvbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0R1cmF0aW9uTWludXRlc1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZhbGlkVW50aWxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWxpZFVudGlsXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWRpdFNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlZGl0U3BlY2lmaWNhdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNwdUNyZWRpdHNcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNwdUNyZWRpdHNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJcHY2QWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNyZWF0ZVRpbWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlbGV0ZVRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmFpbHVyZUNvZGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmFpbHVyZUNvZGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZhaWx1cmVNZXNzYWdlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZhaWx1cmVNZXNzYWdlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOYXRHYXRld2F5QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hdEdhdGV3YXlBZGRyZXNzU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvY2F0aW9uSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVJcFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY0lwXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJOYXRHYXRld2F5SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmF0R2F0ZXdheUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm92aXNpb25lZEJhbmR3aWR0aFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm92aXNpb25lZEJhbmR3aWR0aFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlByb3Zpc2lvblRpbWVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb3Zpc2lvblRpbWVcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlByb3Zpc2lvbmVkXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm92aXNpb25lZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJSZXF1ZXN0VGltZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVxdWVzdFRpbWVcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlJlcXVlc3RlZFwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVxdWVzdGVkXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3cFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFzc29jaWF0aW9uU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5ldHdvcmtBY2xBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xBc3NvY2lhdGlvbklkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOZXR3b3JrQWNsSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0FjbElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRW50cmllc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbnRyeVNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2lkckJsb2NrXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFZ3Jlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWdyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSWNtcFR5cGVDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzd1XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpY21wVHlwZUNvZGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklwdjZDaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkNpZHJCbG9ja1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUG9ydFJhbmdlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzd2XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb3J0UmFuZ2VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb3RvY29sXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb3RvY29sXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSdWxlQWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVBY3Rpb25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJ1bGVOdW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZU51bWJlclwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklzRGVmYXVsdFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTmV0d29ya0FjbElkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtBY2xJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3dlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRnJvbVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmcm9tXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVG9cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG9cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTODBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFzc29jaWF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzgxXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXR0YWNobWVudFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM4MlwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiR3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzgzXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW50ZXJmYWNlVHlwZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnRlcmZhY2VUeXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzZXNTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSXB2NkFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkFkZHJlc3NcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk1hY0FkZHJlc3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFjQWRkcmVzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3duZXJJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcml2YXRlRG5zTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlRG5zTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzZXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc2VzU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzgxXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJpbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmltYXJ5XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJpdmF0ZURuc05hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZURuc05hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVxdWVzdGVySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVxdWVzdGVySWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlcXVlc3Rlck1hbmFnZWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVxdWVzdGVyTWFuYWdlZFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlNvdXJjZURlc3RDaGVja1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VEZXN0Q2hlY2tcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnU2V0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidnBjSWRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWxsb2NhdGlvbklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG9jYXRpb25JZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvbklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcE93bmVySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBPd25lcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQdWJsaWNEbnNOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY0Ruc05hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY0lwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTODJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF0dGFjaFRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNoVGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXR0YWNobWVudElkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dGFjaG1lbnRJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxldGVPblRlcm1pbmF0aW9uXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGV2aWNlSW5kZXhcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV2aWNlSW5kZXhcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlT3duZXJJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZU93bmVySWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM4M1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF3c0FjY291bnRJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhd3NBY2NvdW50SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF3c1NlcnZpY2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXdzU2VydmljZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGVybWlzc2lvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwZXJtaXNzaW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQZXJtaXNzaW9uU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGVybWlzc2lvblN0YXRlXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOHJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFzc29jaWF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvblNldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNYWluXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1haW5cIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSb3V0ZVRhYmxlQXNzb2NpYXRpb25JZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb3V0ZVRhYmxlQXNzb2NpYXRpb25JZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUm91dGVUYWJsZUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlVGFibGVJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlByb3BhZ2F0aW5nVmd3c1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9wYWdhdGluZ1Znd1NldFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJHYXRld2F5SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ2F0ZXdheUlkXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJSb3V0ZVRhYmxlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm91dGVUYWJsZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSb3V0ZXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm91dGVTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGVzdGluYXRpb25DaWRyQmxvY2tcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzdGluYXRpb25DaWRyQmxvY2tcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uSXB2NkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXN0aW5hdGlvbklwdjZDaWRyQmxvY2tcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uUHJlZml4TGlzdElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc3RpbmF0aW9uUHJlZml4TGlzdElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFZ3Jlc3NPbmx5SW50ZXJuZXRHYXRld2F5SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWdyZXNzT25seUludGVybmV0R2F0ZXdheUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJHYXRld2F5SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ2F0ZXdheUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlT3duZXJJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZU93bmVySWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5hdEdhdGV3YXlJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYXRHYXRld2F5SWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk9yaWdpblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvcmlnaW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzkzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEYXRhRW5jcnlwdGlvbktleUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRhdGFFbmNyeXB0aW9uS2V5SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5jcnlwdGVkXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia21zS2V5SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3duZXJJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZ3Jlc3NcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNuYXBzaG90SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0VGltZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZU1lc3NhZ2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVm9sdW1lSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZvbHVtZVNpemVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lU2l6ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk93bmVyQWxpYXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3duZXJBbGlhc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5N1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJ1Y2tldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmF1bHRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOThcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPd25lcklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm93bmVySWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZpeFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmVmaXhcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOThcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzlmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdHRhY2htZW50c1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50U2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcmVhdGVUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5jcnlwdGVkXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia21zS2V5SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2l6ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNuYXBzaG90SWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWb2x1bWVJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpb3BzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZvbHVtZVR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lVHlwZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzluXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJWcGNFbmRwb2ludElkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0VuZHBvaW50SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0VuZHBvaW50VHlwZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNFbmRwb2ludFR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTZXJ2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBvbGljeURvY3VtZW50XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeURvY3VtZW50XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSb3V0ZVRhYmxlSWRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlVGFibGVJZFNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiR3JvdXBJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQcml2YXRlRG5zRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlRG5zRW5hYmxlZFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEbnNFbnRyaWVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRuc0VudHJ5U2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRuc05hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG5zTmFtZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RlZFpvbmVJZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRpb25UaW1lc3RhbXBcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5dlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbm5lY3Rpb25Ob3RpZmljYXRpb25JZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VydmljZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjRW5kcG9pbnRJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNFbmRwb2ludElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb25uZWN0aW9uTm90aWZpY2F0aW9uVHlwZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb25uZWN0aW9uTm90aWZpY2F0aW9uVHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29ubmVjdGlvbk5vdGlmaWNhdGlvbkFyblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb25uZWN0aW9uTm90aWZpY2F0aW9uQXJuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb25uZWN0aW9uRXZlbnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbm5lY3Rpb25FdmVudHNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbm5lY3Rpb25Ob3RpZmljYXRpb25TdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb25uZWN0aW9uTm90aWZpY2F0aW9uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU2VydmljZVR5cGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYTFcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VUeXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTZXJ2aWNlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VydmljZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTZXJ2aWNlTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXJ2aWNlTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VydmljZVN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VTdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVNldFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWNjZXB0YW5jZVJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjY2VwdGFuY2VSZXF1aXJlZFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIk5ldHdvcmtMb2FkQmFsYW5jZXJBcm5zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtMb2FkQmFsYW5jZXJBcm5TZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJhc2VFbmRwb2ludERuc05hbWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJhc2VFbmRwb2ludERuc05hbWVTZXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByaXZhdGVEbnNOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVEbnNOYW1lXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2aWNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNlcnZpY2VUeXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2FjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDdXN0b21lckdhdGV3YXlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1c3RvbWVyR2F0ZXdheUNvbmZpZ3VyYXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1c3RvbWVyR2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImN1c3RvbWVyR2F0ZXdheUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYXRlZ29yeVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjYXRlZ29yeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBuQ29ubmVjdGlvbklkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwbkNvbm5lY3Rpb25JZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBuR2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwbkdhdGV3YXlJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvcHRpb25zXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiU3RhdGljUm91dGVzT25seVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGljUm91dGVzT25seVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUm91dGVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvdXRlc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEZXN0aW5hdGlvbkNpZHJCbG9ja1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXN0aW5hdGlvbkNpZHJCbG9ja1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU291cmNlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNvdXJjZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWZ3dUZWxlbWV0cnlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmd3VGVsZW1ldHJ5XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFjY2VwdGVkUm91dGVDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY2NlcHRlZFJvdXRlQ291bnRcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYXN0U3RhdHVzQ2hhbmdlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhc3RTdGF0dXNDaGFuZ2VcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk91dHNpZGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3V0c2lkZUlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjQXR0YWNobWVudHNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNobWVudHNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBuR2F0ZXdheUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwbkdhdGV3YXlJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQW1hem9uU2lkZUFzblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbWF6b25TaWRlQXNuXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTZXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTYmRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZhbHVlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2N3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVhZGxpbmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWFkbGluZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZUxvbmdJZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VMb25nSWRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJbnN0YW5jZUlkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb252ZXJzaW9uVGFza0lkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbnZlcnNpb25UYXNrSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4cGlyYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4cGlyYXRpb25UaW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbXBvcnRJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbXBvcnRJbnN0YW5jZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlBsYXRmb3JtXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGF0Zm9ybVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJWb2x1bWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVzXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCIsXG4gICAgICAgICAgICAgICAgICBcIkJ5dGVzQ29udmVydGVkXCIsXG4gICAgICAgICAgICAgICAgICBcIkltYWdlXCIsXG4gICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgXCJWb2x1bWVcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJCeXRlc0NvbnZlcnRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYnl0ZXNDb252ZXJ0ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSW1hZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RvXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJWb2x1bWVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidm9sdW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSW1wb3J0Vm9sdW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcG9ydFZvbHVtZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQnl0ZXNDb252ZXJ0ZWRcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJ5dGVzQ29udmVydGVkXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkltYWdlXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkb1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltYWdlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlZvbHVtZVwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZHBcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDaGVja3N1bVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjaGVja3N1bVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRm9ybWF0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcm1hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW1wb3J0TWFuaWZlc3RVcmxcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1wb3J0TWFuaWZlc3RVcmxcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2l6ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2l6ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRXZlbnREZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJldmVudERlc2NyaXB0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFdmVudFN1YlR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXZlbnRTdWJUeXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdEluc3RhbmNlUmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEluc3RhbmNlUmVxdWVzdElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VIZWFsdGhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZUhlYWx0aFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNleVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTGF1bmNoVGVtcGxhdGVJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hUZW1wbGF0ZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZU5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNmYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRnBnYUltYWdlSWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnBnYUltYWdlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcIkxvYWRQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsb2FkUGVybWlzc2lvbnNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVXNlcklkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiR3JvdXBcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlByb2R1Y3RDb2Rlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNmZVwiLFxuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdENvZGVzXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZmVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm9kdWN0Q29kZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdENvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9kdWN0Q29kZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0eXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2ZqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPd25lclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNWlcIixcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2dzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb2RlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNZXNzYWdlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1lc3NhZ2VcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW1wb3J0VGFza0lkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGlza0ltYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRpc2tJbWFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvcm1hdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcm1hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZ3Jlc3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic25hcHNob3RJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXJsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXJsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlckJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hlXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaGVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlMzQnVja2V0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInMzQnVja2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTM0tleVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzM0tleVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXNjcmlwdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGlza0ltYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkaXNrSW1hZ2VTaXplXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGb3JtYXRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZm9ybWF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcm9ncmVzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU25hcHNob3RJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzbmFwc2hvdElkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c01lc3NhZ2VcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVybFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cmxcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzZXJCdWNrZXRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTaGVcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJCdWNrZXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRldmljZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWJzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWJzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQXR0YWNoVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2hUaW1lXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZU9uVGVybWluYXRpb25cIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWb2x1bWVJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2b2x1bWVJZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWx1ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNpMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb2RlXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRldGFpbHNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGV0YWlsc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJbXBhaXJlZFNpbmNlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImltcGFpcmVkU2luY2VcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIixcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VzU2V0XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFtaUxhdW5jaEluZGV4XCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFtaUxhdW5jaEluZGV4XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIktlcm5lbElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtlcm5lbElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJLZXlOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleU5hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkxhdW5jaFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGltZVwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTW9uaXRvcmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpZ1wiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9uaXRvcmluZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lpXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGFjZW1lbnRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBsYXRmb3JtXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBsYXRmb3JtXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcml2YXRlRG5zTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlRG5zTmFtZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9kdWN0Q29kZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZmVcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByb2R1Y3RDb2Rlc1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHVibGljRG5zTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkbnNOYW1lXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQdWJsaWNJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBBZGRyZXNzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSYW1kaXNrSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmFtZGlza0lkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpMlwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VTdGF0ZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdGVUcmFuc2l0aW9uUmVhc29uXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlYXNvblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3VibmV0SWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZwY0lkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZwY0lkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBcmNoaXRlY3R1cmVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXJjaGl0ZWN0dXJlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2huXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0RldmljZU1hcHBpbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudFRva2VuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWJzT3B0aW1pemVkXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5hU3VwcG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmFTdXBwb3J0XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSHlwZXJ2aXNvclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJoeXBlcnZpc29yXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUluc3RhbmNlUHJvZmlsZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VMaWZlY3ljbGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VMaWZlY3ljbGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVsYXN0aWNHcHVBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWxhc3RpY0dwdUFzc29jaWF0aW9uU2V0XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkVsYXN0aWNHcHVJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbGFzdGljR3B1SWRcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkVsYXN0aWNHcHVBc3NvY2lhdGlvbklkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVsYXN0aWNHcHVBc3NvY2lhdGlvbklkXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJFbGFzdGljR3B1QXNzb2NpYXRpb25TdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbGFzdGljR3B1QXNzb2NpYXRpb25TdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRWxhc3RpY0dwdUFzc29jaWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbGFzdGljR3B1QXNzb2NpYXRpb25UaW1lXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrSW50ZXJmYWNlU2V0XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQXR0YWNobWVudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQXR0YWNoVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0YWNoVGltZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQXR0YWNobWVudElkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdHRhY2htZW50SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkRldmljZUluZGV4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZXZpY2VJbmRleFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4M1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBTZXRcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIklwdjZBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzZXNTZXRcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1hY0FkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFjQWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiT3duZXJJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lcklkXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcml2YXRlRG5zTmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlRG5zTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc2VzU2V0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJpbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmltYXJ5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJpdmF0ZURuc05hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZURuc05hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByaXZhdGVJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJpdmF0ZUlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU291cmNlRGVzdENoZWNrXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNvdXJjZURlc3RDaGVja1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2cGNJZFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUm9vdERldmljZU5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicm9vdERldmljZU5hbWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJvb3REZXZpY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvb3REZXZpY2VUeXBlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4M1wiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBTZXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNvdXJjZURlc3RDaGVja1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3VyY2VEZXN0Q2hlY2tcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTcG90SW5zdGFuY2VSZXF1ZXN0SWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEluc3RhbmNlUmVxdWVzdElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTcmlvdk5ldFN1cHBvcnRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3Jpb3ZOZXRTdXBwb3J0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdGF0ZVJlYXNvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoNVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdGVSZWFzb25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnU2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWaXJ0dWFsaXphdGlvblR5cGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmlydHVhbGl6YXRpb25UeXBlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDcHVPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNwdU9wdGlvbnNcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJDb3JlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvcmVDb3VudFwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlRocmVhZHNQZXJDb3JlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aHJlYWRzUGVyQ29yZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiT3duZXJJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvd25lcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXF1ZXN0ZXJJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXF1ZXN0ZXJJZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzZXJ2YXRpb25JZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNlcnZhdGlvbklkXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWZmaW5pdHlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWZmaW5pdHlcIlxuICAgICAgICB9LFxuICAgICAgICBcIkdyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJncm91cE5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkhvc3RJZFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0SWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRlbmFuY3lcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGVuYW5jeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3ByZWFkRG9tYWluXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwcmVhZERvbWFpblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJcE93bmVySWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBPd25lcklkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQdWJsaWNEbnNOYW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY0Ruc05hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlB1YmxpY0lwXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInB1YmxpY0lwXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTa2dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkSW5zdGFuY2VzSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTa29cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbW91bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbW91bnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZyZXF1ZW5jeVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZyZXF1ZW5jeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNsMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlQ291bnRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGF0Zm9ybVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2NvcGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2NvcGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNsbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRnJlcXVlbmN5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZyZXF1ZW5jeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW50ZXJ2YWxcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW50ZXJ2YWxcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPY2N1cnJlbmNlRGF5U2V0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9jY3VycmVuY2VEYXlTZXRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiT2NjdXJyZW5jZVJlbGF0aXZlVG9FbmRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib2NjdXJyZW5jZVJlbGF0aXZlVG9FbmRcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPY2N1cnJlbmNlVW5pdFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvY2N1cnJlbmNlVW5pdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2xzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0ZURhdGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY3JlYXRlRGF0ZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSG91cmx5UHJpY2VcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG91cmx5UHJpY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VDb3VudFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5ldHdvcmtQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXR3b3JrUGxhdGZvcm1cIlxuICAgICAgICB9LFxuICAgICAgICBcIk5leHRTbG90U3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRTbG90U3RhcnRUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGF0Zm9ybVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJldmlvdXNTbG90RW5kVGltZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmV2aW91c1Nsb3RFbmRUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWN1cnJlbmNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2xsXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWN1cnJlbmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTY2hlZHVsZWRJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNjaGVkdWxlZEluc3RhbmNlSWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNsb3REdXJhdGlvbkluSG91cnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2xvdER1cmF0aW9uSW5Ib3Vyc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRlcm1FbmREYXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlcm1FbmREYXRlXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUZXJtU3RhcnREYXRlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlcm1TdGFydERhdGVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRvdGFsU2NoZWR1bGVkSW5zdGFuY2VIb3Vyc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b3RhbFNjaGVkdWxlZEluc3RhbmNlSG91cnNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbHpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkdyb3VwTmFtZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNtNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VySWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJYW1GbGVldFJvbGVcIixcbiAgICAgICAgXCJUYXJnZXRDYXBhY2l0eVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBbGxvY2F0aW9uU3RyYXRlZ3lcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb2NhdGlvblN0cmF0ZWd5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGllbnRUb2tlblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXhjZXNzQ2FwYWNpdHlUZXJtaW5hdGlvblBvbGljeVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleGNlc3NDYXBhY2l0eVRlcm1pbmF0aW9uUG9saWN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGdWxmaWxsZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmdWxmaWxsZWRDYXBhY2l0eVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT25EZW1hbmRGdWxmaWxsZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvbkRlbWFuZEZ1bGZpbGxlZENhcGFjaXR5XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJYW1GbGVldFJvbGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWFtRmxlZXRSb2xlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXVuY2hTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsYXVuY2hTcGVjaWZpY2F0aW9uc1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4M1wiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBTZXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFkZHJlc3NpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFkZHJlc3NpbmdUeXBlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dyXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0RldmljZU1hcHBpbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVic09wdGltaXplZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlYnNPcHRpbWl6ZWRcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJYW1JbnN0YW5jZVByb2ZpbGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlhbUluc3RhbmNlUHJvZmlsZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbWFnZUlkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VUeXBlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJLZXJuZWxJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXJuZWxJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiS2V5TmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlOYW1lXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1vbml0b3JpbmdcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmFibGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNteFwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZVNldFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU216XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwbGFjZW1lbnRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJhbWRpc2tJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyYW1kaXNrSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNwb3RQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90UHJpY2VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJVc2VyRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VyRGF0YVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiV2VpZ2h0ZWRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ3ZWlnaHRlZENhcGFjaXR5XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYWdTcGVjaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YWdTcGVjaWZpY2F0aW9uU2V0XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNvdXJjZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFnXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXVuY2hUZW1wbGF0ZUNvbmZpZ3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVDb25maWdzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkxhdW5jaFRlbXBsYXRlU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNleVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoVGVtcGxhdGVTcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPdmVycmlkZXNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3ZlcnJpZGVzXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlNwb3RQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzcG90UHJpY2VcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN1Ym5ldElkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN1Ym5ldElkXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF2YWlsYWJpbGl0eVpvbmVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIldlaWdodGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwid2VpZ2h0ZWRDYXBhY2l0eVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3BvdFByaWNlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNwb3RQcmljZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFyZ2V0Q2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0Q2FwYWNpdHlcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPbkRlbWFuZFRhcmdldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9uRGVtYW5kVGFyZ2V0Q2FwYWNpdHlcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUZXJtaW5hdGVJbnN0YW5jZXNXaXRoRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0ZXJtaW5hdGVJbnN0YW5jZXNXaXRoRXhwaXJhdGlvblwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmFsaWRGcm9tXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZhbGlkRnJvbVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmFsaWRVbnRpbFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2YWxpZFVudGlsXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXBsYWNlVW5oZWFsdGh5SW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcGxhY2VVbmhlYWx0aHlJbnN0YW5jZXNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUludGVycnVwdGlvbkJlaGF2aW9yXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3JcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxvYWRCYWxhbmNlcnNDb25maWdcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibG9hZEJhbGFuY2Vyc0NvbmZpZ1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNsYXNzaWNMb2FkQmFsYW5jZXJzQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjbGFzc2ljTG9hZEJhbGFuY2Vyc0NvbmZpZ1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJDbGFzc2ljTG9hZEJhbGFuY2Vyc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDbGFzc2ljTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsYXNzaWNMb2FkQmFsYW5jZXJzXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlRhcmdldEdyb3Vwc0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0R3JvdXBzQ29uZmlnXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlRhcmdldEdyb3Vwc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUYXJnZXRHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRHcm91cHNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJBcm5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhcm5cIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbXhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3NcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWxldGVPblRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZXRlT25UZXJtaW5hdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXZpY2VJbmRleFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRldmljZUluZGV4XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXB2NkFkZHJlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlwdjZBZGRyZXNzQ291bnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcHY2QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXB2NkFkZHJlc3Nlc1NldFwiLFxuICAgICAgICAgICAgXCJxdWVyeU5hbWVcIjogXCJJcHY2QWRkcmVzc2VzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV0d29ya0ludGVyZmFjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmF0ZUlwQWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaXZhdGVJcEFkZHJlc3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcml2YXRlSXBBZGRyZXNzZXNTZXRcIixcbiAgICAgICAgICAgIFwicXVlcnlOYW1lXCI6IFwiUHJpdmF0ZUlwQWRkcmVzc2VzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNtelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHcm91cE5hbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZ3JvdXBOYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUZW5hbmN5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRlbmFuY3lcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNuZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdHVhbEJsb2NrSG91cmx5UHJpY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhY3R1YWxCbG9ja0hvdXJseVByaWNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXZhaWxhYmlsaXR5Wm9uZUdyb3VwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmxvY2tEdXJhdGlvbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJibG9ja0R1cmF0aW9uTWludXRlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjcmVhdGVUaW1lXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYXVsdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzk4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZhdWx0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMYXVuY2hHcm91cFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaEdyb3VwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoU3BlY2lmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxhdW5jaFNwZWNpZmljYXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJVc2VyRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VyRGF0YVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTODNcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3VwU2V0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBZGRyZXNzaW5nVHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhZGRyZXNzaW5nVHlwZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnclwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYmxvY2tEZXZpY2VNYXBwaW5nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZWJzT3B0aW1pemVkXCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpYW1JbnN0YW5jZVByb2ZpbGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkltYWdlSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1hZ2VJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlVHlwZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiS2VybmVsSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2VybmVsSWRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIktleU5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwia2V5TmFtZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbXhcIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5ldHdvcmtJbnRlcmZhY2VTZXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBsYWNlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtelwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGxhY2VtZW50XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSYW1kaXNrSWRcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmFtZGlza0lkXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdWJuZXRJZFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTW9uaXRvcmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuaVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibW9uaXRvcmluZ1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF1bmNoZWRBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGF1bmNoZWRBdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZHVjdERlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdEluc3RhbmNlUmVxdWVzdElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdEluc3RhbmNlUmVxdWVzdElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BvdFByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3BvdFByaWNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29kZVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJVcGRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwZGF0ZVRpbWVcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ1NldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmFsaWRGcm9tXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRGcm9tXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZFVudGlsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmFsaWRVbnRpbFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbmlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJFbmFibGVkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5hYmxlZFwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNudlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZyb21Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZnJvbVBvcnRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJcFByb3RvY29sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBQcm90b2NvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwUmFuZ2VzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXBSYW5nZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZml4TGlzdElkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZWZpeExpc3RJZHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpdGVtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVG9Qb3J0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidG9Qb3J0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcklkR3JvdXBQYWlyc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImdyb3Vwc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNvY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVm9sdW1lSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlZvbHVtZUlkXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZvbHVtZUlkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNb2RpZmljYXRpb25TdGF0ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtb2RpZmljYXRpb25TdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNNZXNzYWdlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYXJnZXRTaXplXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldFNpemVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYXJnZXRJb3BzXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldElvcHNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUYXJnZXRWb2x1bWVUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldFZvbHVtZVR5cGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9yaWdpbmFsU2l6ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvcmlnaW5hbFNpemVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcmlnaW5hbElvcHNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3JpZ2luYWxJb3BzXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3JpZ2luYWxWb2x1bWVUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9yaWdpbmFsVm9sdW1lVHlwZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJvZ3Jlc3NcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnRUaW1lXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuZFRpbWVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNwMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcjZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW5jeUNvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImR1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSG9zdElkU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdElkU2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSG9zdFJlc2VydmF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJob3N0UmVzZXJ2YXRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhvdXJseVByaWNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG91cmx5UHJpY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUZhbWlseVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluc3RhbmNlRmFtaWx5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGF5bWVudE9wdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBheW1lbnRPcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGZyb250UHJpY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGZyb250UHJpY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcmVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkhvdXJseVByaWNlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvdXJseVByaWNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZW1haW5pbmdUb3RhbFZhbHVlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlbWFpbmluZ1RvdGFsVmFsdWVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlbWFpbmluZ1VwZnJvbnRWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZW1haW5pbmdVcGZyb250VmFsdWVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNybFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgXCJVcGxvYWRFbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXBsb2FkU2l6ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVcGxvYWRTdGFydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcm9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlMzQnVja2V0XCI6IHt9LFxuICAgICAgICBcIlMzS2V5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNydFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkJ5dGVzXCIsXG4gICAgICAgIFwiRm9ybWF0XCIsXG4gICAgICAgIFwiSW1wb3J0TWFuaWZlc3RVcmxcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQnl0ZXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYnl0ZXNcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGb3JtYXRcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZm9ybWF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbXBvcnRNYW5pZmVzdFVybFwiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbXBvcnRNYW5pZmVzdFVybFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3J1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiU2l6ZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNpemVcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTczlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVXNlckdyb3VwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3NiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQcm9kdWN0Q29kZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNzZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3VwXCI6IHt9LFxuICAgICAgICAgIFwiVXNlcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3NpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCIsXG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXRlbVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0dlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWxsb3dEbnNSZXNvbHV0aW9uRnJvbVJlbW90ZVZwY1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dFZ3Jlc3NGcm9tTG9jYWxDbGFzc2ljTGlua1RvUmVtb3RlVnBjXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvd0VncmVzc0Zyb21Mb2NhbFZwY1RvUmVtb3RlQ2xhc3NpY0xpbmtcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0eFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWxsb3dEbnNSZXNvbHV0aW9uRnJvbVJlbW90ZVZwY1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvd0Ruc1Jlc29sdXRpb25Gcm9tUmVtb3RlVnBjXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dFZ3Jlc3NGcm9tTG9jYWxDbGFzc2ljTGlua1RvUmVtb3RlVnBjXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsbG93RWdyZXNzRnJvbUxvY2FsQ2xhc3NpY0xpbmtUb1JlbW90ZVZwY1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93RWdyZXNzRnJvbUxvY2FsVnBjVG9SZW1vdGVDbGFzc2ljTGlua1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhbGxvd0VncmVzc0Zyb21Mb2NhbFZwY1RvUmVtb3RlQ2xhc3NpY0xpbmtcIixcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdTNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtb25pdG9yaW5nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3cxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTd2NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIml0ZW1cIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDdXJyZW50U3RhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjdXJyZW50U3RhdGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5zdGFuY2VJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZXZpb3VzU3RhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwcmV2aW91c1N0YXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkFjY291bnRBdHRyaWJ1dGVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBZGRyZXNzZXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQWRkcmVzc2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBdmFpbGFiaWxpdHlab25lc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQnVuZGxlVGFza3NcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQnVuZGxlVGFza3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbnZlcnNpb25UYXNrc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDb252ZXJzaW9uVGFza3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUN1c3RvbWVyR2F0ZXdheXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ3VzdG9tZXJHYXRld2F5c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGhjcE9wdGlvbnNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRGhjcE9wdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV4cG9ydFRhc2tzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkV4cG9ydFRhc2tzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbWFnZXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSW1hZ2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZVN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbnN0YW5jZVN0YXR1c2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2YXRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnRlcm5ldEdhdGV3YXlzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkludGVybmV0R2F0ZXdheXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUtleVBhaXJzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIktleVBhaXJzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOYXRHYXRld2F5c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJOYXRHYXRld2F5c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTmV0d29ya0FjbHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiTmV0d29ya0FjbHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU5ldHdvcmtJbnRlcmZhY2VzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk5ldHdvcmtJbnRlcmZhY2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQbGFjZW1lbnRHcm91cHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGxhY2VtZW50R3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZWdpb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlZ2lvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc2VydmVkSW5zdGFuY2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0xpc3RpbmdzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc2VydmVkSW5zdGFuY2VzTGlzdGluZ3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzTW9kaWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWRJbnN0YW5jZXNNb2RpZmljYXRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZEluc3RhbmNlc09mZmVyaW5nc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUm91dGVUYWJsZXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUm91dGVUYWJsZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlNlY3VyaXR5R3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU25hcHNob3RzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTcG90RmxlZXRSZXF1ZXN0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTcG90RmxlZXRSZXF1ZXN0Q29uZmlnc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3BvdEluc3RhbmNlUmVxdWVzdHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3BvdEluc3RhbmNlUmVxdWVzdHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNwb3RQcmljZUhpc3RvcnlcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3BvdFByaWNlSGlzdG9yeVwiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3VibmV0c1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdWJuZXRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlRhZ3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZvbHVtZVN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWb2x1bWVTdGF0dXNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVm9sdW1lc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWb2x1bWVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNQZWVyaW5nQ29ubmVjdGlvbnNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlZwY3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwbkNvbm5lY3Rpb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlZwbkNvbm5lY3Rpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcG5HYXRld2F5c1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWcG5HYXRld2F5c1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIkluc3RhbmNlRXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNSxcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW5zdGFuY2VzXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJsZW5ndGgoUmVzZXJ2YXRpb25zW10pID4gYDBgXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZEluc3RhbmNlSUQuTm90Rm91bmRcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkJ1bmRsZVRhc2tDb21wbGV0ZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUJ1bmRsZVRhc2tzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImNvbXBsZXRlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkJ1bmRsZVRhc2tzW10uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJCdW5kbGVUYXNrc1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJDb252ZXJzaW9uVGFza0NhbmNlbGxlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUNvbnZlcnNpb25UYXNrc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjYW5jZWxsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ29udmVyc2lvblRhc2tzW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkNvbnZlcnNpb25UYXNrQ29tcGxldGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ29udmVyc2lvblRhc2tzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImNvbXBsZXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDb252ZXJzaW9uVGFza3NbXS5TdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY2FuY2VsbGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNvbnZlcnNpb25UYXNrc1tdLlN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjYW5jZWxsaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNvbnZlcnNpb25UYXNrc1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJDb252ZXJzaW9uVGFza0RlbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDb252ZXJzaW9uVGFza3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDb252ZXJzaW9uVGFza3NbXS5TdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiQ3VzdG9tZXJHYXRld2F5QXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlQ3VzdG9tZXJHYXRld2F5c1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhdmFpbGFibGVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ3VzdG9tZXJHYXRld2F5c1tdLlN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkN1c3RvbWVyR2F0ZXdheXNbXS5TdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ3VzdG9tZXJHYXRld2F5c1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJFeHBvcnRUYXNrQ2FuY2VsbGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlRXhwb3J0VGFza3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY2FuY2VsbGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkV4cG9ydFRhc2tzW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkV4cG9ydFRhc2tDb21wbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVFeHBvcnRUYXNrc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjb21wbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiRXhwb3J0VGFza3NbXS5TdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiSW1hZ2VFeGlzdHNcIjoge1xuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUltYWdlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJsZW5ndGgoSW1hZ2VzW10pID4gYDBgXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZEFNSUlELk5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJJbWFnZUF2YWlsYWJsZVwiOiB7XG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW1hZ2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbWFnZXNbXS5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhdmFpbGFibGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkltYWdlc1tdLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImZhaWxlZFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiSW5zdGFuY2VSdW5uaW5nXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJ1bm5pbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzZXJ2YXRpb25zW10uSW5zdGFuY2VzW10uU3RhdGUuTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic2h1dHRpbmctZG93blwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXNlcnZhdGlvbnNbXS5JbnN0YW5jZXNbXS5TdGF0ZS5OYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJ0ZXJtaW5hdGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc2VydmF0aW9uc1tdLkluc3RhbmNlc1tdLlN0YXRlLk5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN0b3BwaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc2VydmF0aW9uc1tdLkluc3RhbmNlc1tdLlN0YXRlLk5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZEluc3RhbmNlSUQuTm90Rm91bmRcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkluc3RhbmNlU3RhdHVzT2tcIjoge1xuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUluc3RhbmNlU3RhdHVzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZVN0YXR1c2VzW10uSW5zdGFuY2VTdGF0dXMuU3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIm9rXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRJbnN0YW5jZUlELk5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJJbnN0YW5jZVN0b3BwZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVJbnN0YW5jZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcHBlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXNlcnZhdGlvbnNbXS5JbnN0YW5jZXNbXS5TdGF0ZS5OYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJwZW5kaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc2VydmF0aW9uc1tdLkluc3RhbmNlc1tdLlN0YXRlLk5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInRlcm1pbmF0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzZXJ2YXRpb25zW10uSW5zdGFuY2VzW10uU3RhdGUuTmFtZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiSW5zdGFuY2VUZXJtaW5hdGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInRlcm1pbmF0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzZXJ2YXRpb25zW10uSW5zdGFuY2VzW10uU3RhdGUuTmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicGVuZGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXNlcnZhdGlvbnNbXS5JbnN0YW5jZXNbXS5TdGF0ZS5OYW1lXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdG9wcGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXNlcnZhdGlvbnNbXS5JbnN0YW5jZXNbXS5TdGF0ZS5OYW1lXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJLZXlQYWlyRXhpc3RzXCI6IHtcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVLZXlQYWlyc1wiLFxuICAgICAgXCJkZWxheVwiOiA1LFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2LFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiB0cnVlLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJsZW5ndGgoS2V5UGFpcnNbXS5LZXlOYW1lKSA+IGAwYFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZEtleVBhaXIuTm90Rm91bmRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiTmF0R2F0ZXdheUF2YWlsYWJsZVwiOiB7XG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlTmF0R2F0ZXdheXNcIixcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIk5hdEdhdGV3YXlzW10uU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYXZhaWxhYmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJOYXRHYXRld2F5c1tdLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImZhaWxlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiTmF0R2F0ZXdheXNbXS5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiTmF0R2F0ZXdheXNbXS5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIk5hdEdhdGV3YXlOb3RGb3VuZFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiTmV0d29ya0ludGVyZmFjZUF2YWlsYWJsZVwiOiB7XG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlTmV0d29ya0ludGVyZmFjZXNcIixcbiAgICAgIFwiZGVsYXlcIjogMjAsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDEwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJOZXR3b3JrSW50ZXJmYWNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZE5ldHdvcmtJbnRlcmZhY2VJRC5Ob3RGb3VuZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlBhc3N3b3JkRGF0YUF2YWlsYWJsZVwiOiB7XG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkdldFBhc3N3b3JkRGF0YVwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwibGVuZ3RoKFBhc3N3b3JkRGF0YSkgPiBgMGBcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IHRydWVcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTbmFwc2hvdENvbXBsZXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVNuYXBzaG90c1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjb21wbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU25hcHNob3RzW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlNwb3RJbnN0YW5jZVJlcXVlc3RGdWxmaWxsZWRcIjoge1xuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVNwb3RJbnN0YW5jZVJlcXVlc3RzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTcG90SW5zdGFuY2VSZXF1ZXN0c1tdLlN0YXR1cy5Db2RlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImZ1bGZpbGxlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3BvdEluc3RhbmNlUmVxdWVzdHNbXS5TdGF0dXMuQ29kZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJyZXF1ZXN0LWNhbmNlbGVkLWFuZC1pbnN0YW5jZS1ydW5uaW5nXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTcG90SW5zdGFuY2VSZXF1ZXN0c1tdLlN0YXR1cy5Db2RlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInNjaGVkdWxlLWV4cGlyZWRcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlNwb3RJbnN0YW5jZVJlcXVlc3RzW10uU3RhdHVzLkNvZGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY2FuY2VsZWQtYmVmb3JlLWZ1bGZpbGxtZW50XCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTcG90SW5zdGFuY2VSZXF1ZXN0c1tdLlN0YXR1cy5Db2RlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImJhZC1wYXJhbWV0ZXJzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTcG90SW5zdGFuY2VSZXF1ZXN0c1tdLlN0YXR1cy5Db2RlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN5c3RlbS1lcnJvclwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJJbnZhbGlkU3BvdEluc3RhbmNlUmVxdWVzdElELk5vdEZvdW5kXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTdWJuZXRBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTdWJuZXRzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdWJuZXRzW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlN5c3RlbVN0YXR1c09rXCI6IHtcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVJbnN0YW5jZVN0YXR1c1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VTdGF0dXNlc1tdLlN5c3RlbVN0YXR1cy5TdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwib2tcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlZvbHVtZUF2YWlsYWJsZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVZvbHVtZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZvbHVtZXNbXS5TdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJWb2x1bWVzW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlZvbHVtZURlbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVWb2x1bWVzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVm9sdW1lc1tdLlN0YXRlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRWb2x1bWUuTm90Rm91bmRcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVm9sdW1lSW5Vc2VcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVWb2x1bWVzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImluLXVzZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJWb2x1bWVzW10uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVm9sdW1lc1tdLlN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJWcGNBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVWcGNzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJWcGNzW10uU3RhdGVcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlZwY0V4aXN0c1wiOiB7XG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVnBjc1wiLFxuICAgICAgXCJkZWxheVwiOiAxLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA1LFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiAyMDAsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZFZwY0lELk5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJWcG5Db25uZWN0aW9uQXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVnBuQ29ubmVjdGlvbnNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZwbkNvbm5lY3Rpb25zW10uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZwbkNvbm5lY3Rpb25zW10uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVnBuQ29ubmVjdGlvbnNbXS5TdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVnBuQ29ubmVjdGlvbkRlbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVWcG5Db25uZWN0aW9uc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlZwbkNvbm5lY3Rpb25zW10uU3RhdGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInBlbmRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVnBuQ29ubmVjdGlvbnNbXS5TdGF0ZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25FeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVWcGNQZWVyaW5nQ29ubmVjdGlvbnNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IDIwMCxcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJJbnZhbGlkVnBjUGVlcmluZ0Nvbm5lY3Rpb25JRC5Ob3RGb3VuZFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25EZWxldGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVnBjUGVlcmluZ0Nvbm5lY3Rpb25zXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiVnBjUGVlcmluZ0Nvbm5lY3Rpb25zW10uU3RhdHVzLkNvZGVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZFZwY1BlZXJpbmdDb25uZWN0aW9uSUQuTm90Rm91bmRcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMDktMjFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZWNyXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIEVDUlwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEVDMiBDb250YWluZXIgUmVnaXN0cnlcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQW1hem9uRUMyQ29udGFpbmVyUmVnaXN0cnlfVjIwMTUwOTIxXCIsXG4gICAgXCJ1aWRcIjogXCJlY3ItMjAxNS0wOS0yMVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJCYXRjaENoZWNrTGF5ZXJBdmFpbGFiaWxpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJsYXllckRpZ2VzdHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGF5ZXJEaWdlc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxheWVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibGF5ZXJEaWdlc3RcIjoge30sXG4gICAgICAgICAgICAgICAgXCJsYXllckF2YWlsYWJpbGl0eVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImxheWVyU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibWVkaWFUeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxheWVyRGlnZXN0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZmFpbHVyZUNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJmYWlsdXJlUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQmF0Y2hEZWxldGVJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImltYWdlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImltYWdlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImltYWdlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWx1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkJhdGNoR2V0SW1hZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJpbWFnZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJpbWFnZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhY2NlcHRlZE1lZGlhVHlwZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW1hZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29tcGxldGVMYXllclVwbG9hZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcInVwbG9hZElkXCIsXG4gICAgICAgICAgXCJsYXllckRpZ2VzdHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidXBsb2FkSWRcIjoge30sXG4gICAgICAgICAgXCJsYXllckRpZ2VzdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidXBsb2FkSWRcIjoge30sXG4gICAgICAgICAgXCJsYXllckRpZ2VzdFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlcG9zaXRvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTGlmZWN5Y2xlUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJsaWZlY3ljbGVQb2xpY3lUZXh0XCI6IHt9LFxuICAgICAgICAgIFwibGFzdEV2YWx1YXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJlcG9zaXRvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZXBvc2l0b3J5UG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lUZXh0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbWFnZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImltYWdlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwidGFnU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImltYWdlRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiaW1hZ2VEaWdlc3RcIjoge30sXG4gICAgICAgICAgICAgICAgXCJpbWFnZVRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImltYWdlU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImltYWdlUHVzaGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXBvc2l0b3JpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXBvc2l0b3JpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QXV0aG9yaXphdGlvblRva2VuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6YXRpb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhdXRob3JpemF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJleHBpcmVzQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicHJveHlFbmRwb2ludFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvd25sb2FkVXJsRm9yTGF5ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJsYXllckRpZ2VzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJsYXllckRpZ2VzdFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvd25sb2FkVXJsXCI6IHt9LFxuICAgICAgICAgIFwibGF5ZXJEaWdlc3RcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRMaWZlY3ljbGVQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxpZmVjeWNsZVBvbGljeVRleHRcIjoge30sXG4gICAgICAgICAgXCJsYXN0RXZhbHVhdGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TGlmZWN5Y2xlUG9saWN5UHJldmlld1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaW1hZ2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0YWdTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGlmZWN5Y2xlUG9saWN5VGV4dFwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcInByZXZpZXdSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJpbWFnZVRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImltYWdlRGlnZXN0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiaW1hZ2VQdXNoZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXBwbGllZFJ1bGVQcmlvcml0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3VtbWFyeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiZXhwaXJpbmdJbWFnZVRvdGFsQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJlcG9zaXRvcnlQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeVRleHRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbml0aWF0ZUxheWVyVXBsb2FkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ1cGxvYWRJZFwiOiB7fSxcbiAgICAgICAgICBcInBhcnRTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW1hZ2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInRhZ1N0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbWFnZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIixcbiAgICAgICAgICBcImltYWdlTWFuaWZlc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaW1hZ2VNYW5pZmVzdFwiOiB7fSxcbiAgICAgICAgICBcImltYWdlVGFnXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0TGlmZWN5Y2xlUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICAgIFwibGlmZWN5Y2xlUG9saWN5VGV4dFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJsaWZlY3ljbGVQb2xpY3lUZXh0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGlmZWN5Y2xlUG9saWN5VGV4dFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFJlcG9zaXRvcnlQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJwb2xpY3lUZXh0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeVRleHRcIjoge30sXG4gICAgICAgICAgXCJmb3JjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5VGV4dFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0TGlmZWN5Y2xlUG9saWN5UHJldmlld1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGlmZWN5Y2xlUG9saWN5VGV4dFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxpZmVjeWNsZVBvbGljeVRleHRcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGxvYWRMYXllclBhcnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlcG9zaXRvcnlOYW1lXCIsXG4gICAgICAgICAgXCJ1cGxvYWRJZFwiLFxuICAgICAgICAgIFwicGFydEZpcnN0Qnl0ZVwiLFxuICAgICAgICAgIFwicGFydExhc3RCeXRlXCIsXG4gICAgICAgICAgXCJsYXllclBhcnRCbG9iXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInVwbG9hZElkXCI6IHt9LFxuICAgICAgICAgIFwicGFydEZpcnN0Qnl0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGFydExhc3RCeXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXllclBhcnRCbG9iXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUlkXCI6IHt9LFxuICAgICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ1cGxvYWRJZFwiOiB7fSxcbiAgICAgICAgICBcImxhc3RCeXRlUmVjZWl2ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJpbWFnZURpZ2VzdFwiOiB7fSxcbiAgICAgICAgXCJpbWFnZVRhZ1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW1hZ2VJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlQ29kZVwiOiB7fSxcbiAgICAgICAgICBcImZhaWx1cmVSZWFzb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwicmVnaXN0cnlJZFwiOiB7fSxcbiAgICAgICAgXCJyZXBvc2l0b3J5TmFtZVwiOiB7fSxcbiAgICAgICAgXCJpbWFnZUlkXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICB9LFxuICAgICAgICBcImltYWdlTWFuaWZlc3RcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJyZXBvc2l0b3J5QXJuXCI6IHt9LFxuICAgICAgICBcInJlZ2lzdHJ5SWRcIjoge30sXG4gICAgICAgIFwicmVwb3NpdG9yeU5hbWVcIjoge30sXG4gICAgICAgIFwicmVwb3NpdG9yeVVyaVwiOiB7fSxcbiAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVJbWFnZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiaW1hZ2VEZXRhaWxzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXBvc2l0b3JpZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwicmVwb3NpdG9yaWVzXCJcbiAgICB9LFxuICAgIFwiTGlzdEltYWdlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJpbWFnZUlkc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0xMS0xM1wiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJlY3NcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gRUNTXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gRUMyIENvbnRhaW5lciBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJFQ1NcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQW1hem9uRUMyQ29udGFpbmVyU2VydmljZVYyMDE0MTExM1wiLFxuICAgIFwidWlkXCI6IFwiZWNzLTIwMTQtMTEtMTNcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQ3JlYXRlQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU2VydmljZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwic2VydmljZU5hbWVcIixcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJzZXJ2aWNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHt9LFxuICAgICAgICAgIFwibG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlUmVnaXN0cmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXNpcmVkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibGF1bmNoVHlwZVwiOiB7fSxcbiAgICAgICAgICBcInBsYXRmb3JtVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcInJvbGVcIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwbGFjZW1lbnRDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwbGFjZW1lbnRTdHJhdGVneVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXR3b3JrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJoZWFsdGhDaGVja0dyYWNlUGVyaW9kU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2NoZWR1bGluZ1N0cmF0ZWd5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2VydmljZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2x1c3RlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTZXJ2aWNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzZXJ2aWNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJzZXJ2aWNlXCI6IHt9LFxuICAgICAgICAgIFwiZm9yY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNlcnZpY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3RlckNvbnRhaW5lckluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VcIjoge30sXG4gICAgICAgICAgXCJmb3JjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJUYXNrRGVmaW5pdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrRGVmaW5pdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbmNsdWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29udGFpbmVySW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWx1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNlcnZpY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzZXJ2aWNlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwic2VydmljZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2VydmljZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYXNrRGVmaW5pdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrRGVmaW5pdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYXNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFza3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcInRhc2tzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzY292ZXJQb2xsRW5kcG9pbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VcIjoge30sXG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgXCJ0ZWxlbWV0cnlFbmRwb2ludFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0YXJnZXRUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJ0YXJnZXRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiYXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImF0dHJpYnV0ZVZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlckFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENvbnRhaW5lckluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwiZmlsdGVyXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTZXJ2aWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGF1bmNoVHlwZVwiOiB7fSxcbiAgICAgICAgICBcInNjaGVkdWxpbmdTdHJhdGVneVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInNlcnZpY2VBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYXNrRGVmaW5pdGlvbkZhbWlsaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZhbWlseVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZhbWlsaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYXNrRGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZmFtaWx5UHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwic29ydFwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFza3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlXCI6IHt9LFxuICAgICAgICAgIFwiZmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhcnRlZEJ5XCI6IHt9LFxuICAgICAgICAgIFwic2VydmljZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNpcmVkU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwibGF1bmNoVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckNvbnRhaW5lckluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJpbnN0YW5jZUlkZW50aXR5RG9jdW1lbnRcIjoge30sXG4gICAgICAgICAgXCJpbnN0YW5jZUlkZW50aXR5RG9jdW1lbnRTaWduYXR1cmVcIjoge30sXG4gICAgICAgICAgXCJ0b3RhbFJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvbkluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJUYXNrRGVmaW5pdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZmFtaWx5XCIsXG4gICAgICAgICAgXCJjb250YWluZXJEZWZpbml0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJ0YXNrUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcImV4ZWN1dGlvblJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJuZXR3b3JrTW9kZVwiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lckRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2b2x1bWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwbGFjZW1lbnRDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVxdWlyZXNDb21wYXRpYmlsaXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMycFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNwdVwiOiB7fSxcbiAgICAgICAgICBcIm1lbW9yeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSdW5UYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0YXNrRGVmaW5pdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIjoge30sXG4gICAgICAgICAgXCJvdmVycmlkZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFydGVkQnlcIjoge30sXG4gICAgICAgICAgXCJncm91cFwiOiB7fSxcbiAgICAgICAgICBcInBsYWNlbWVudENvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBsYWNlbWVudFN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhdW5jaFR5cGVcIjoge30sXG4gICAgICAgICAgXCJwbGF0Zm9ybVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJuZXR3b3JrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0VGFza1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIixcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIjoge30sXG4gICAgICAgICAgXCJvdmVycmlkZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFydGVkQnlcIjoge30sXG4gICAgICAgICAgXCJncm91cFwiOiB7fSxcbiAgICAgICAgICBcIm5ldHdvcmtDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcFRhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhc2tcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2x1c3RlclwiOiB7fSxcbiAgICAgICAgICBcInRhc2tcIjoge30sXG4gICAgICAgICAgXCJyZWFzb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdWJtaXRDb250YWluZXJTdGF0ZUNoYW5nZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwidGFza1wiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lck5hbWVcIjoge30sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJleGl0Q29kZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwibmV0d29ya0JpbmRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhY2tub3dsZWRnbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN1Ym1pdFRhc2tTdGF0ZUNoYW5nZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwidGFza1wiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcInJlYXNvblwiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImNvbnRhaW5lck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJleGl0Q29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0JpbmRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2ZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdHRhY2htZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImF0dGFjaG1lbnRBcm5cIixcbiAgICAgICAgICAgICAgICBcInN0YXR1c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhdHRhY2htZW50QXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHVsbFN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwdWxsU3RvcHBlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4ZWN1dGlvblN0b3BwZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhY2tub3dsZWRnbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNvbnRhaW5lckFnZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ29udGFpbmVySW5zdGFuY2VzU3RhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNvbnRhaW5lckluc3RhbmNlc1wiLFxuICAgICAgICAgIFwic3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGFpbmVySW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU2VydmljZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwic2VydmljZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHt9LFxuICAgICAgICAgIFwic2VydmljZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2lyZWRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFza0RlZmluaXRpb25cIjoge30sXG4gICAgICAgICAgXCJkZXBsb3ltZW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXR3b3JrQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwbGF0Zm9ybVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJmb3JjZU5ld0RlcGxveW1lbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImhlYWx0aENoZWNrR3JhY2VQZXJpb2RTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzZXJ2aWNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiY2x1c3RlckFyblwiOiB7fSxcbiAgICAgICAgXCJjbHVzdGVyTmFtZVwiOiB7fSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwicmVnaXN0ZXJlZENvbnRhaW5lckluc3RhbmNlc0NvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJydW5uaW5nVGFza3NDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGVuZGluZ1Rhc2tzQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImFjdGl2ZVNlcnZpY2VzQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXRpc3RpY3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFyZ2V0R3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJsb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY29udGFpbmVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImNvbnRhaW5lclBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyeUFyblwiOiB7fSxcbiAgICAgICAgICBcInBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRhaW5lck5hbWVcIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibWF4aW11bVBlcmNlbnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1pbmltdW1IZWFsdGh5UGVyY2VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJleHByZXNzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJmaWVsZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhd3N2cGNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwic3VibmV0c1wiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJzdWJuZXRzXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImFzc2lnblB1YmxpY0lwXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJzZXJ2aWNlQXJuXCI6IHt9LFxuICAgICAgICBcInNlcnZpY2VOYW1lXCI6IHt9LFxuICAgICAgICBcImNsdXN0ZXJBcm5cIjoge30sXG4gICAgICAgIFwibG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXJ2aWNlUmVnaXN0cmllc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgIFwiZGVzaXJlZENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJydW5uaW5nQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInBlbmRpbmdDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGF1bmNoVHlwZVwiOiB7fSxcbiAgICAgICAgXCJwbGF0Zm9ybVZlcnNpb25cIjoge30sXG4gICAgICAgIFwidGFza0RlZmluaXRpb25cIjoge30sXG4gICAgICAgIFwiZGVwbG95bWVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwbG95bWVudHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcInRhc2tEZWZpbml0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcImRlc2lyZWRDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicGVuZGluZ0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJydW5uaW5nQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ1cGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibGF1bmNoVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJwbGF0Zm9ybVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwibmV0d29ya0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJldmVudHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInBsYWNlbWVudENvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9LFxuICAgICAgICBcInBsYWNlbWVudFN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5ldHdvcmtDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICB9LFxuICAgICAgICBcImhlYWx0aENoZWNrR3JhY2VQZXJpb2RTZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzY2hlZHVsaW5nU3RyYXRlZ3lcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwibmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICBcInZhbHVlXCI6IHt9LFxuICAgICAgICBcInRhcmdldFR5cGVcIjoge30sXG4gICAgICAgIFwidGFyZ2V0SWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgXCJlYzJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInZlcnNpb25JbmZvXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZW1haW5pbmdSZXNvdXJjZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlZ2lzdGVyZWRSZXNvdXJjZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJhZ2VudENvbm5lY3RlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicnVubmluZ1Rhc2tzQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInBlbmRpbmdUYXNrc0NvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhZ2VudFVwZGF0ZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlZ2lzdGVyZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJhdHRhY2htZW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJhZ2VudFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiYWdlbnRIYXNoXCI6IHt9LFxuICAgICAgICBcImRvY2tlclZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICBcImRvdWJsZVZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxvbmdWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW50ZWdlclZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdHJpbmdTZXRWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImlkXCI6IHt9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRhc2tEZWZpbml0aW9uQXJuXCI6IHt9LFxuICAgICAgICBcImNvbnRhaW5lckRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJmYW1pbHlcIjoge30sXG4gICAgICAgIFwidGFza1JvbGVBcm5cIjoge30sXG4gICAgICAgIFwiZXhlY3V0aW9uUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJuZXR3b3JrTW9kZVwiOiB7fSxcbiAgICAgICAgXCJyZXZpc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidm9sdW1lc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInJlcXVpcmVzQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwbGFjZW1lbnRDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMybVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29tcGF0aWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXF1aXJlc0NvbXBhdGliaWxpdGllc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMycFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY3B1XCI6IHt9LFxuICAgICAgICBcIm1lbW9yeVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJpbWFnZVwiOiB7fSxcbiAgICAgICAgICBcImNwdVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWVtb3J5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZW1vcnlSZXNlcnZhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGlua3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9ydE1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJjb250YWluZXJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJob3N0UG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicHJvdG9jb2xcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlc3NlbnRpYWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVudHJ5UG9pbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tbWFuZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibW91bnRQb2ludHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNvdXJjZVZvbHVtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNvbnRhaW5lclBhdGhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZWFkT25seVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidm9sdW1lc0Zyb21cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNvbnRhaW5lclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlYWRPbmx5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaW51eFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImNhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiYWRkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcImRyb3BcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJkZXZpY2VzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJob3N0UGF0aFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJob3N0UGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJjb250YWluZXJQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJpbml0UHJvY2Vzc0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInNoYXJlZE1lbW9yeVNpemVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInRtcGZzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJjb250YWluZXJQYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic2l6ZVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJjb250YWluZXJQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1vdW50T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJob3N0bmFtZVwiOiB7fSxcbiAgICAgICAgICBcInVzZXJcIjoge30sXG4gICAgICAgICAgXCJ3b3JraW5nRGlyZWN0b3J5XCI6IHt9LFxuICAgICAgICAgIFwiZGlzYWJsZU5ldHdvcmtpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByaXZpbGVnZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlYWRvbmx5Um9vdEZpbGVzeXN0ZW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRuc1NlcnZlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG5zU2VhcmNoRG9tYWluc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleHRyYUhvc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiaG9zdG5hbWVcIixcbiAgICAgICAgICAgICAgICBcImlwQWRkcmVzc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJob3N0bmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImlwQWRkcmVzc1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvY2tlclNlY3VyaXR5T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2NrZXJMYWJlbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidWxpbWl0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICBcInNvZnRMaW1pdFwiLFxuICAgICAgICAgICAgICAgIFwiaGFyZExpbWl0XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzb2Z0TGltaXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImhhcmRMaW1pdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcImxvZ0RyaXZlclwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2dEcml2ZXJcIjoge30sXG4gICAgICAgICAgICAgIFwib3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImhlYWx0aENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiY29tbWFuZFwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJjb21tYW5kXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImludGVydmFsXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ0aW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJyZXRyaWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJzdGFydFBlcmlvZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiaG9zdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwic291cmNlUGF0aFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMm1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgXCJleHByZXNzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMyd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgIFwicmVhc29uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMzlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRhc2tBcm5cIjoge30sXG4gICAgICAgIFwiY2x1c3RlckFyblwiOiB7fSxcbiAgICAgICAgXCJ0YXNrRGVmaW5pdGlvbkFyblwiOiB7fSxcbiAgICAgICAgXCJjb250YWluZXJJbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgXCJvdmVycmlkZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhc3RTdGF0dXNcIjoge30sXG4gICAgICAgIFwiZGVzaXJlZFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJjcHVcIjoge30sXG4gICAgICAgIFwibWVtb3J5XCI6IHt9LFxuICAgICAgICBcImNvbnRhaW5lcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY29udGFpbmVyQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcInRhc2tBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJsYXN0U3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcImV4aXRDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJyZWFzb25cIjoge30sXG4gICAgICAgICAgICAgIFwibmV0d29ya0JpbmRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNmXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJuZXR3b3JrSW50ZXJmYWNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJhdHRhY2htZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwicHJpdmF0ZUlwdjRBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImlwdjZBZGRyZXNzXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImhlYWx0aFN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGFydGVkQnlcIjoge30sXG4gICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RvcHBlZFJlYXNvblwiOiB7fSxcbiAgICAgICAgXCJjb25uZWN0aXZpdHlcIjoge30sXG4gICAgICAgIFwiY29ubmVjdGl2aXR5QXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHVsbFN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwdWxsU3RvcHBlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4ZWN1dGlvblN0b3BwZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0b3BwaW5nQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RvcHBlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImdyb3VwXCI6IHt9LFxuICAgICAgICBcImxhdW5jaFR5cGVcIjoge30sXG4gICAgICAgIFwicGxhdGZvcm1WZXJzaW9uXCI6IHt9LFxuICAgICAgICBcImF0dGFjaG1lbnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJoZWFsdGhTdGF0dXNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJjb250YWluZXJPdmVycmlkZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJjb21tYW5kXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjcHVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIm1lbW9yeVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibWVtb3J5UmVzZXJ2YXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInRhc2tSb2xlQXJuXCI6IHt9LFxuICAgICAgICBcImV4ZWN1dGlvblJvbGVBcm5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJiaW5kSVBcIjoge30sXG4gICAgICAgICAgXCJjb250YWluZXJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJob3N0UG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJvdG9jb2xcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJjbHVzdGVyQXJuc1wiXG4gICAgfSxcbiAgICBcIkxpc3RDb250YWluZXJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiY29udGFpbmVySW5zdGFuY2VBcm5zXCJcbiAgICB9LFxuICAgIFwiTGlzdFNlcnZpY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInNlcnZpY2VBcm5zXCJcbiAgICB9LFxuICAgIFwiTGlzdFRhc2tEZWZpbml0aW9uRmFtaWxpZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiZmFtaWxpZXNcIlxuICAgIH0sXG4gICAgXCJMaXN0VGFza0RlZmluaXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcInRhc2tEZWZpbml0aW9uQXJuc1wiXG4gICAgfSxcbiAgICBcIkxpc3RUYXNrc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJ0YXNrQXJuc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIlRhc2tzUnVubmluZ1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDYsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlVGFza3NcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTAwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlNUT1BQRURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwidGFza3NbXS5sYXN0U3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJNSVNTSU5HXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcImZhaWx1cmVzW10ucmVhc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJSVU5OSU5HXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcInRhc2tzW10ubGFzdFN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVGFza3NTdG9wcGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogNixcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVUYXNrc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAxMDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiU1RPUFBFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJ0YXNrc1tdLmxhc3RTdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlNlcnZpY2VzU3RhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlU2VydmljZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiTUlTU0lOR1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJmYWlsdXJlc1tdLnJlYXNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiRFJBSU5JTkdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwic2VydmljZXNbXS5zdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIklOQUNUSVZFXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcInNlcnZpY2VzW10uc3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwibGVuZ3RoKHNlcnZpY2VzWz8hKGxlbmd0aChkZXBsb3ltZW50cykgPT0gYDFgICYmIHJ1bm5pbmdDb3VudCA9PSBkZXNpcmVkQ291bnQpXSkgPT0gYDBgXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTZXJ2aWNlc0luYWN0aXZlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlU2VydmljZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiTUlTU0lOR1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJmYWlsdXJlc1tdLnJlYXNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSU5BQ1RJVkVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwic2VydmljZXNbXS5zdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTAyLTAyXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImVsYXN0aWNhY2hlXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gRWxhc3RpQ2FjaGVcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiZWxhc3RpY2FjaGUtMjAxNS0wMi0wMlwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL2VsYXN0aWNhY2hlLmFtYXpvbmF3cy5jb20vZG9jLzIwMTUtMDItMDIvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NUb1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFkZFRhZ3NUb1Jlc291cmNlUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXV0aG9yaXplQ2FjaGVTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkF1dGhvcml6ZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weVNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VTbmFwc2hvdE5hbWVcIixcbiAgICAgICAgICBcIlRhcmdldFNuYXBzaG90TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VTbmFwc2hvdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRTbmFwc2hvdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRCdWNrZXRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weVNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2FjaGVDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkFaTW9kZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZEF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOdW1DYWNoZU5vZGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RSZXRlbnRpb25MaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJBdXRoVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ2FjaGVDbHVzdGVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNhY2hlUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwRmFtaWx5XCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVDYWNoZVBhcmFtZXRlckdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ2FjaGVTZWN1cml0eUdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNhY2hlU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIixcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNhY2hlU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIixcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJQcmltYXJ5Q2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b21hdGljRmFpbG92ZXJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOdW1DYWNoZUNsdXN0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRDYWNoZUNsdXN0ZXJBWnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTnVtTm9kZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGljYXNQZXJOb2RlR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vZGVHcm91cENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOb2RlR3JvdXBDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90QXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTbmFwc2hvdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90UmV0ZW50aW9uTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNuYXBzaG90V2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiQXV0aFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVHJhbnNpdEVuY3J5cHRpb25FbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdFJlc3RFbmNyeXB0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVJlcGxpY2F0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU25hcHNob3ROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3ROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2FjaGVDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbmFsU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUNhY2hlQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDYWNoZVBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNhY2hlU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2FjaGVTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiUmV0YWluUHJpbWFyeUNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbmFsU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZVJlcGxpY2F0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU25hcHNob3ROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlNob3dDYWNoZU5vZGVJbmZvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTaG93Q2FjaGVDbHVzdGVyc05vdEluUmVwbGljYXRpb25Hcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNhY2hlQ2x1c3RlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVDbHVzdGVyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNhY2hlRW5naW5lVmVyc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJDYWNoZUVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZUVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNhY2hlRW5naW5lRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDYWNoZUVuZ2luZVZlcnNpb25EZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDYWNoZVBhcmFtZXRlckdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlUGFyYW1ldGVyR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNhY2hlUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWNoZU5vZGVUeXBlU3BlY2lmaWNQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNhY2hlU2VjdXJpdHlHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVTZWN1cml0eUdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNhY2hlU3VibmV0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVTdWJuZXRHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGVTdWJuZXRHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBGYW1pbHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lRGVmYXVsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmtcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNhY2hlTm9kZVR5cGVTcGVjaWZpY1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXBsaWNhdGlvbkdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlcGxpY2F0aW9uR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZENhY2hlTm9kZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2JcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZENhY2hlTm9kZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNhY2hlTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzY1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNuYXBzaG90c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90U291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2hvd05vZGVHcm91cENvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU25hcHNob3RzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU25hcHNob3RcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0QWxsb3dlZE5vZGVUeXBlTW9kaWZpY2F0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjYWxlVXBNb2RpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RUYWdzRm9yUmVzb3VyY2VSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlDYWNoZUNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlQ2x1c3RlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiTnVtQ2FjaGVOb2Rlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlSWRzVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQVpNb2RlXCI6IHt9LFxuICAgICAgICAgIFwiTmV3QXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25Ub3BpY1N0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5SW1tZWRpYXRlbHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RSZXRlbnRpb25MaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUNhY2hlQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNhY2hlQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlDYWNoZVBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiUGFyYW1ldGVyTmFtZVZhbHVlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzN1XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUNhY2hlUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlDYWNoZVN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNhY2hlU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUNhY2hlU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJpbWFyeUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90dGluZ0NsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9tYXRpY0ZhaWxvdmVyRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25Ub3BpY1N0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5SW1tZWRpYXRlbHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RSZXRlbnRpb25MaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZUdyb3VwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5UmVwbGljYXRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVJlcGxpY2F0aW9uR3JvdXBTaGFyZENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBJZFwiLFxuICAgICAgICAgIFwiTm9kZUdyb3VwQ291bnRcIixcbiAgICAgICAgICBcIkFwcGx5SW1tZWRpYXRlbHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZUdyb3VwQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcGx5SW1tZWRpYXRlbHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2hhcmRpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNoYXJkaW5nQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlByZWZlcnJlZEF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vZGVHcm91cHNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTm9kZUdyb3VwVG9SZW1vdmVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5UmVwbGljYXRpb25Hcm91cFNoYXJkQ29uZmlndXJhdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2RlSWRcIjoge30sXG4gICAgICAgICAgXCJDYWNoZU5vZGVDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlB1cmNoYXNlUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZENhY2hlTm9kZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVib290Q2FjaGVDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiLFxuICAgICAgICAgIFwiQ2FjaGVOb2RlSWRzVG9SZWJvb3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJDYWNoZU5vZGVJZHNUb1JlYm9vdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVib290Q2FjaGVDbHVzdGVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZVJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXNldEFsbFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzN1XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc2V0Q2FjaGVQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZUNhY2hlU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWNoZVNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXZva2VDYWNoZVNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlc3RGYWlsb3ZlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCIsXG4gICAgICAgICAgXCJOb2RlR3JvdXBJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJOb2RlR3JvdXBJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJUZXN0RmFpbG92ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk93bmVySWRcIjoge30sXG4gICAgICAgIFwiQ2FjaGVTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJFQzJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRUMyU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTbmFwc2hvdE5hbWVcIjoge30sXG4gICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdFNvdXJjZVwiOiB7fSxcbiAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIk51bUNhY2hlTm9kZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZEF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiQ2FjaGVDbHVzdGVyQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU25hcHNob3RSZXRlbnRpb25MaW1pdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU25hcHNob3RXaW5kb3dcIjoge30sXG4gICAgICAgIFwiTnVtTm9kZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXV0b21hdGljRmFpbG92ZXJcIjoge30sXG4gICAgICAgIFwiTm9kZVNuYXBzaG90c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTm9kZVNuYXBzaG90XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ2FjaGVDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgICAgIFwiTm9kZUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQ2FjaGVOb2RlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiTm9kZUdyb3VwQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDYWNoZVNpemVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ2FjaGVOb2RlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTbmFwc2hvdENyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTbG90c1wiOiB7fSxcbiAgICAgICAgXCJSZXBsaWNhQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByaW1hcnlBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIlJlcGxpY2FBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQcmVmZXJyZWRBdmFpbGFiaWxpdHlab25lXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3BcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VjdXJpdHlHcm91cElkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNuYXBzaG90QXJuXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNhY2hlQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICBcIkNvbmZpZ3VyYXRpb25FbmRwb2ludFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbGllbnREb3dubG9hZExhbmRpbmdQYWdlXCI6IHt9LFxuICAgICAgICBcIkNhY2hlTm9kZVR5cGVcIjoge30sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQ2FjaGVDbHVzdGVyU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIk51bUNhY2hlTm9kZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZEF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiQ2FjaGVDbHVzdGVyQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJQZW5kaW5nTW9kaWZpZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIk51bUNhY2hlTm9kZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNhY2hlTm9kZUlkc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICBcIkNhY2hlTm9kZVR5cGVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgICBcIlRvcGljU3RhdHVzXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNhY2hlU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNhY2hlUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJQYXJhbWV0ZXJBcHBseVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgIFwiQ2FjaGVOb2RlSWRzVG9SZWJvb3RcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDYWNoZU5vZGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZU5vZGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDYWNoZU5vZGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDYWNoZU5vZGVTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ2FjaGVOb2RlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbmRwb2ludFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJTb3VyY2VDYWNoZU5vZGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDdXN0b21lckF2YWlsYWJpbGl0eVpvbmVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVwbGljYXRpb25Hcm91cElkXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90UmV0ZW50aW9uTGltaXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNuYXBzaG90V2luZG93XCI6IHt9LFxuICAgICAgICBcIkF1dGhUb2tlbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlRyYW5zaXRFbmNyeXB0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXRSZXN0RW5jcnlwdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlTm9kZUlkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZGVudGlmaWVyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDYWNoZVN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3VibmV0SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXBsaWNhdGlvbkdyb3VwSWRcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlBlbmRpbmdNb2RpZmllZFZhbHVlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUHJpbWFyeUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICAgIFwiQXV0b21hdGljRmFpbG92ZXJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICBcIlJlc2hhcmRpbmdcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNsb3RNaWdyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlByb2dyZXNzUGVyY2VudGFnZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJNZW1iZXJDbHVzdGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2x1c3RlcklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTm9kZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTm9kZUdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTm9kZUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByaW1hcnlFbmRwb2ludFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTbG90c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJOb2RlR3JvdXBNZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOb2RlR3JvdXBNZW1iZXJcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDYWNoZUNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDYWNoZU5vZGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJSZWFkRW5kcG9pbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJlZmVycmVkQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDdXJyZW50Um9sZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTbmFwc2hvdHRpbmdDbHVzdGVySWRcIjoge30sXG4gICAgICAgIFwiQXV0b21hdGljRmFpbG92ZXJcIjoge30sXG4gICAgICAgIFwiQ29uZmlndXJhdGlvbkVuZHBvaW50XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNuYXBzaG90UmV0ZW50aW9uTGltaXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNuYXBzaG90V2luZG93XCI6IHt9LFxuICAgICAgICBcIkNsdXN0ZXJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICBcIkF1dGhUb2tlbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlRyYW5zaXRFbmNyeXB0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXRSZXN0RW5jcnlwdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzJrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYXJhbWV0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluaW11bUVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZU5vZGVUeXBlU3BlY2lmaWNQYXJhbWV0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJEYXRhVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbmltdW1FbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2FjaGVOb2RlVHlwZVNwZWNpZmljVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZU5vZGVUeXBlU3BlY2lmaWNWYWx1ZVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNhY2hlTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlc2VydmVkQ2FjaGVOb2RlSWRcIjoge30sXG4gICAgICAgIFwiUmVzZXJ2ZWRDYWNoZU5vZGVzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgXCJDYWNoZU5vZGVUeXBlXCI6IHt9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNhY2hlTm9kZUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2NcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzNjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWN1cnJpbmdDaGFyZ2VcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VBbW91bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlRnJlcXVlbmN5XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFyYW1ldGVyTmFtZVZhbHVlXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlclZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzN1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDYWNoZVBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlQ2FjaGVDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDYWNoZUNsdXN0ZXJzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZUVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNhY2hlRW5naW5lVmVyc2lvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNhY2hlUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNhY2hlUGFyYW1ldGVyR3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZVBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2FjaGVTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDYWNoZVNlY3VyaXR5R3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZVN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDYWNoZVN1Ym5ldEdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkVuZ2luZURlZmF1bHRzLk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRW5naW5lRGVmYXVsdHMuUGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkV2ZW50c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVwbGljYXRpb25Hcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZENhY2hlTm9kZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkQ2FjaGVOb2Rlc09mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZENhY2hlTm9kZXNPZmZlcmluZ3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNuYXBzaG90c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTbmFwc2hvdHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgICBcInZlcnNpb25cIjoyLFxuICAgIFwid2FpdGVyc1wiOntcbiAgICAgICAgXCJDYWNoZUNsdXN0ZXJBdmFpbGFibGVcIjp7XG4gICAgICAgICAgICBcImFjY2VwdG9yc1wiOltcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFsbFwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiQ2FjaGVDbHVzdGVyc1tdLkNhY2hlQ2x1c3RlclN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJkZWxldGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFueVwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJmYWlsdXJlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiQ2FjaGVDbHVzdGVyc1tdLkNhY2hlQ2x1c3RlclN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJkZWxldGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiaW5jb21wYXRpYmxlLW5ldHdvcmtcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcImZhaWx1cmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcInJlc3RvcmUtZmFpbGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFueVwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJmYWlsdXJlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJkZWxheVwiOjE1LFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOlwiV2FpdCB1bnRpbCBFbGFzdGlDYWNoZSBjbHVzdGVyIGlzIGF2YWlsYWJsZS5cIixcbiAgICAgICAgICAgIFwibWF4QXR0ZW1wdHNcIjo0MCxcbiAgICAgICAgICAgIFwib3BlcmF0aW9uXCI6XCJEZXNjcmliZUNhY2hlQ2x1c3RlcnNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNhY2hlQ2x1c3RlckRlbGV0ZWRcIjp7XG4gICAgICAgICAgICBcImFjY2VwdG9yc1wiOltcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiZGVsZXRlZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbGxcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcIkNhY2hlQ2x1c3Rlck5vdEZvdW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFueVwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJmYWlsdXJlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiQ2FjaGVDbHVzdGVyc1tdLkNhY2hlQ2x1c3RlclN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJjcmVhdGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiaW5jb21wYXRpYmxlLW5ldHdvcmtcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcImZhaWx1cmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcIm1vZGlmeWluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJndW1lbnRcIjpcIkNhY2hlQ2x1c3RlcnNbXS5DYWNoZUNsdXN0ZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwicmVzdG9yZS1mYWlsZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQW55XCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcImZhaWx1cmVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJDYWNoZUNsdXN0ZXJzW10uQ2FjaGVDbHVzdGVyU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcInNuYXBzaG90dGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVsYXlcIjoxNSxcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjpcIldhaXQgdW50aWwgRWxhc3RpQ2FjaGUgY2x1c3RlciBpcyBkZWxldGVkLlwiLFxuICAgICAgICAgICAgXCJtYXhBdHRlbXB0c1wiOjQwLFxuICAgICAgICAgICAgXCJvcGVyYXRpb25cIjpcIkRlc2NyaWJlQ2FjaGVDbHVzdGVyc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVwbGljYXRpb25Hcm91cEF2YWlsYWJsZVwiOntcbiAgICAgICAgICAgIFwiYWNjZXB0b3JzXCI6W1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiUmVwbGljYXRpb25Hcm91cHNbXS5TdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFsbFwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiUmVwbGljYXRpb25Hcm91cHNbXS5TdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiZGVsZXRlZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwiZmFpbHVyZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVsYXlcIjoxNSxcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjpcIldhaXQgdW50aWwgRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAgaXMgYXZhaWxhYmxlLlwiLFxuICAgICAgICAgICAgXCJtYXhBdHRlbXB0c1wiOjQwLFxuICAgICAgICAgICAgXCJvcGVyYXRpb25cIjpcIkRlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlcGxpY2F0aW9uR3JvdXBEZWxldGVkXCI6e1xuICAgICAgICAgICAgXCJhY2NlcHRvcnNcIjpbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJSZXBsaWNhdGlvbkdyb3Vwc1tdLlN0YXR1c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJkZWxldGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFsbFwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiUmVwbGljYXRpb25Hcm91cHNbXS5TdGF0dXNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFueVwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJmYWlsdXJlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOlwiUmVwbGljYXRpb25Hcm91cE5vdEZvdW5kRmF1bHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJkZWxheVwiOjE1LFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOlwiV2FpdCB1bnRpbCBFbGFzdGlDYWNoZSByZXBsaWNhdGlvbiBncm91cCBpcyBkZWxldGVkLlwiLFxuICAgICAgICAgICAgXCJtYXhBdHRlbXB0c1wiOjQwLFxuICAgICAgICAgICAgXCJvcGVyYXRpb25cIjpcIkRlc2NyaWJlUmVwbGljYXRpb25Hcm91cHNcIlxuICAgICAgICB9XG4gICAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMC0xMi0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJlbGFzdGljYmVhbnN0YWxrXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiRWxhc3RpYyBCZWFuc3RhbGtcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBFbGFzdGljIEJlYW5zdGFsa1wiLFxuICAgIFwic2VydmljZUlkXCI6IFwiRWxhc3RpYyBCZWFuc3RhbGtcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiZWxhc3RpY2JlYW5zdGFsay0yMDEwLTEyLTAxXCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vZWxhc3RpY2JlYW5zdGFsay5hbWF6b25hd3MuY29tL2RvY3MvMjAxMC0xMi0wMS9cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWJvcnRFbnZpcm9ubWVudFVwZGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXBwbHlFbnZpcm9ubWVudE1hbmFnZWRBY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFjdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJBY3Rpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBcHBseUVudmlyb25tZW50TWFuYWdlZEFjdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiQWN0aW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJBY3Rpb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2hlY2tETlNBdmFpbGFiaWxpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNOQU1FUHJlZml4XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNOQU1FUHJlZml4XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNoZWNrRE5TQXZhaWxhYmlsaXR5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGdWxseVF1YWxpZmllZENOQU1FXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29tcG9zZUVudmlyb25tZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uTGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2lcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29tcG9zZUVudmlyb25tZW50c1Jlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUxpZmVjeWNsZUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWRcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQXBwbGljYXRpb25SZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBcHBsaWNhdGlvblZlcnNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiVmVyc2lvbkxhYmVsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlQnVpbGRJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlQnVuZGxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCdWlsZENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJDb2RlQnVpbGRTZXJ2aWNlUm9sZVwiLFxuICAgICAgICAgICAgICBcIkltYWdlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFydGlmYWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDb2RlQnVpbGRTZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDb21wdXRlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJJbWFnZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUaW1lb3V0SW5NaW51dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvQ3JlYXRlQXBwbGljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2Nlc3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUFwcGxpY2F0aW9uVmVyc2lvblJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU29sdXRpb25TdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUVudmlyb25tZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJDTkFNRVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlRpZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbkxhYmVsXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU29sdXRpb25TdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25zVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlRW52aXJvbm1lbnRSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQbGF0Zm9ybVZlcnNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYXRmb3JtTmFtZVwiLFxuICAgICAgICAgIFwiUGxhdGZvcm1WZXJzaW9uXCIsXG4gICAgICAgICAgXCJQbGF0Zm9ybURlZmluaXRpb25CdW5kbGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxhdGZvcm1WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiUGxhdGZvcm1EZWZpbml0aW9uQnVuZGxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVBsYXRmb3JtVmVyc2lvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVpbGRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQVJOXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0b3JhZ2VMb2NhdGlvblwiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVN0b3JhZ2VMb2NhdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlMzQnVja2V0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXBwbGljYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUZXJtaW5hdGVFbnZCeUZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBcHBsaWNhdGlvblZlcnNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiVmVyc2lvbkxhYmVsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkRlbGV0ZVNvdXJjZUJ1bmRsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29uZmlndXJhdGlvblRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVFbnZpcm9ubWVudENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBsYXRmb3JtVmVyc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVQbGF0Zm9ybVZlcnNpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybVN1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMya1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWNjb3VudEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFjY291bnRBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VRdW90YXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFwcGxpY2F0aW9uUXVvdGFcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFwcGxpY2F0aW9uVmVyc2lvblF1b3RhXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbnZpcm9ubWVudFF1b3RhXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb25maWd1cmF0aW9uVGVtcGxhdGVRdW90YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tUGxhdGZvcm1RdW90YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBcHBsaWNhdGlvblZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFwcGxpY2F0aW9uVmVyc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvblZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXBwbGljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQXBwbGljYXRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29uZmlndXJhdGlvbk9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU29sdXRpb25TdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25PcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU29sdXRpb25TdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDaGFuZ2VTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlVzZXJEZWZpbmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWluVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heFZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhMZW5ndGhcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlZ2V4XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkxhYmVsXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29uZmlndXJhdGlvblNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ29uZmlndXJhdGlvblNldHRpbmdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW52aXJvbm1lbnRIZWFsdGhcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUVudmlyb25tZW50SGVhbHRoUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiQ29sb3JcIjoge30sXG4gICAgICAgICAgXCJDYXVzZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VzSGVhbHRoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOb0RhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlVua25vd25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBlbmRpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk9rXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbmZvXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJXYXJuaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEZWdyYWRlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2V2ZXJlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWZyZXNoZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVudmlyb25tZW50TWFuYWdlZEFjdGlvbkhpc3RvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbnZpcm9ubWVudE1hbmFnZWRBY3Rpb25IaXN0b3J5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFuYWdlZEFjdGlvbkhpc3RvcnlJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWN0aW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJGYWlsdXJlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZhaWx1cmVEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaW5pc2hlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbnZpcm9ubWVudE1hbmFnZWRBY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbnZpcm9ubWVudE1hbmFnZWRBY3Rpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFuYWdlZEFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWN0aW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiV2luZG93U3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW52aXJvbm1lbnRSZXNvdXJjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUVudmlyb25tZW50UmVzb3VyY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnRSZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYXVuY2hDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkxvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUcmlnZ2Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlF1ZXVlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlVSTFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVudmlyb25tZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluY2x1ZGVEZWxldGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlZERlbGV0ZWRCYWNrVG9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTaVwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUVudmlyb25tZW50c1Jlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fSxcbiAgICAgICAgICBcIlJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlNldmVyaXR5XCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFdmVudERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZlcnNpb25MYWJlbFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBsYXRmb3JtQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2V2ZXJpdHlcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlc0hlYWx0aFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlSW5zdGFuY2VzSGVhbHRoUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VIZWFsdGhMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSGVhbHRoU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29sb3JcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDYXVzZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhdW5jaGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXBwbGljYXRpb25NZXRyaWNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTeXN0ZW1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNQVVV0aWxpemF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJVc2VyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIk5pY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiU3lzdGVtXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklkbGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSU9XYWl0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIklSUVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTb2Z0SVJRXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTG9hZEF2ZXJhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXBsb3ltZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJWZXJzaW9uTGFiZWxcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRGVwbG95bWVudElkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRGVwbG95bWVudFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlZnJlc2hlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGxhdGZvcm1WZXJzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUGxhdGZvcm1WZXJzaW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiUGxhdGZvcm1Pd25lclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQbGF0Zm9ybU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGxhdGZvcm1WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBsYXRmb3JtU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGVDcmVhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRhdGVVcGRhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBsYXRmb3JtQ2F0ZWdvcnlcIjoge30sXG4gICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiTWFpbnRhaW5lclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiUHJvZ3JhbW1pbmdMYW5ndWFnZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkZyYW1ld29ya3NcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkN1c3RvbUFtaUxpc3RcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiVmlydHVhbGl6YXRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkltYWdlSWRcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VwcG9ydGVkVGllckxpc3RcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1cHBvcnRlZEFkZG9uTGlzdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEF2YWlsYWJsZVNvbHV0aW9uU3RhY2tzXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdEF2YWlsYWJsZVNvbHV0aW9uU3RhY2tzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU29sdXRpb25TdGFja3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU29sdXRpb25TdGFja0RldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvbHV0aW9uU3RhY2tOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGVybWl0dGVkRmlsZVR5cGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQbGF0Zm9ybVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJPcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFBsYXRmb3JtVmVyc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybVN1bW1hcnlMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMya1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RUYWdzRm9yUmVzb3VyY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVidWlsZEVudmlyb25tZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXF1ZXN0RW52aXJvbm1lbnRJbmZvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbmZvVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5mb1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0YXJ0QXBwU2VydmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudmlyb25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXRyaWV2ZUVudmlyb25tZW50SW5mb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5mb1R5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkluZm9UeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJldHJpZXZlRW52aXJvbm1lbnRJbmZvUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW52aXJvbm1lbnRJbmZvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbmZvVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVjMkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTYW1wbGVUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN3YXBFbnZpcm9ubWVudENOQU1Fc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25FbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25FbnZpcm9ubWVudE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXJtaW5hdGVFbnZpcm9ubWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVybWluYXRlUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb3JjZVRlcm1pbmF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTa1wiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJUZXJtaW5hdGVFbnZpcm9ubWVudFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJVcGRhdGVBcHBsaWNhdGlvblJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFwcGxpY2F0aW9uUmVzb3VyY2VMaWZlY3ljbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VMaWZlY3ljbGVDb25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VMaWZlY3ljbGVDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJVcGRhdGVBcHBsaWNhdGlvblJlc291cmNlTGlmZWN5Y2xlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VMaWZlY3ljbGVDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFwcGxpY2F0aW9uVmVyc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJWZXJzaW9uTGFiZWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvbkxhYmVsXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJVcGRhdGVBcHBsaWNhdGlvblZlcnNpb25SZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDb25maWd1cmF0aW9uVGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbnNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjdcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRW52aXJvbm1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGllclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbkxhYmVsXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU29sdXRpb25TdGFja05hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25zVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVXBkYXRlRW52aXJvbm1lbnRSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1RvQWRkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVmFsaWRhdGVDb25maWd1cmF0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJWYWxpZGF0ZUNvbmZpZ3VyYXRpb25TZXR0aW5nc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1lc3NhZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2V2ZXJpdHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbnZpcm9ubWVudHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVudmlyb25tZW50TmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbnZpcm9ubWVudElkXCI6IHt9LFxuICAgICAgICBcIkFwcGxpY2F0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uTGFiZWxcIjoge30sXG4gICAgICAgIFwiU29sdXRpb25TdGFja05hbWVcIjoge30sXG4gICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkVuZHBvaW50VVJMXCI6IHt9LFxuICAgICAgICBcIkNOQU1FXCI6IHt9LFxuICAgICAgICBcIkRhdGVDcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRhdGVVcGRhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJBYm9ydGFibGVPcGVyYXRpb25JblByb2dyZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJIZWFsdGhcIjoge30sXG4gICAgICAgIFwiSGVhbHRoU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlJlc291cmNlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9tYWluXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGlzdGVuZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRpZXJcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVudmlyb25tZW50TGlua3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTGlua05hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRW52aXJvbm1lbnROYW1lXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkVudmlyb25tZW50QXJuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIlZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uTGlmZWN5Y2xlQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNYXhDb3VudFJ1bGVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJFbmFibGVkXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heENvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWxldGVTb3VyY2VGcm9tUzNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNYXhBZ2VSdWxlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhBZ2VJbkRheXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlbGV0ZVNvdXJjZUZyb21TM1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBcHBsaWNhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBcHBsaWNhdGlvbkFyblwiOiB7fSxcbiAgICAgICAgXCJBcHBsaWNhdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiRGF0ZUNyZWF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGF0ZVVwZGF0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVmVyc2lvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIlJlc291cmNlTGlmZWN5Y2xlQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiU291cmNlVHlwZVwiLFxuICAgICAgICBcIlNvdXJjZVJlcG9zaXRvcnlcIixcbiAgICAgICAgXCJTb3VyY2VMb2NhdGlvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZVJlcG9zaXRvcnlcIjoge30sXG4gICAgICAgIFwiU291cmNlTG9jYXRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTM0J1Y2tldFwiOiB7fSxcbiAgICAgICAgXCJTM0tleVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFwcGxpY2F0aW9uVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBcHBsaWNhdGlvblZlcnNpb25Bcm5cIjoge30sXG4gICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlZlcnNpb25MYWJlbFwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VCdWlsZEluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJCdWlsZEFyblwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VCdW5kbGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkRhdGVDcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRhdGVVcGRhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU29sdXRpb25TdGFja05hbWVcIjoge30sXG4gICAgICAgIFwiUGxhdGZvcm1Bcm5cIjoge30sXG4gICAgICAgIFwiQXBwbGljYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJFbnZpcm9ubWVudE5hbWVcIjoge30sXG4gICAgICAgIFwiRGVwbG95bWVudFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJEYXRlQ3JlYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEYXRlVXBkYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQbGF0Zm9ybUFyblwiOiB7fSxcbiAgICAgICAgXCJQbGF0Zm9ybU93bmVyXCI6IHt9LFxuICAgICAgICBcIlBsYXRmb3JtU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlBsYXRmb3JtQ2F0ZWdvcnlcIjoge30sXG4gICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtTmFtZVwiOiB7fSxcbiAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1WZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIlN1cHBvcnRlZFRpZXJMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdXBwb3J0ZWRBZGRvbkxpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMycVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMnNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNYXhpbXVtXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzQ1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVxdWVzdENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNDb2Rlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiU3RhdHVzMnh4XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdGF0dXMzeHhcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0YXR1czR4eFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU3RhdHVzNXh4XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVuY3lcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlA5OTlcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUDk5XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlA5NVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQOTBcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUDg1XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlA3NVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJQNTBcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUDEwXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVBcHBsaWNhdGlvblZlcnNpb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkFwcGxpY2F0aW9uVmVyc2lvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBcHBsaWNhdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25PcHRpb25zXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk9wdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVudmlyb25tZW50c1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFbnZpcm9ubWVudHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudHNcIlxuICAgIH0sXG4gICAgXCJMaXN0QXZhaWxhYmxlU29sdXRpb25TdGFja3NcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU29sdXRpb25TdGFja3NcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMDItMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZWxhc3RpY2ZpbGVzeXN0ZW1cIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiRUZTXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gRWxhc3RpYyBGaWxlIFN5c3RlbVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJlbGFzdGljZmlsZXN5c3RlbS0yMDE1LTAyLTAxXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNyZWF0ZUZpbGVTeXN0ZW1cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvZmlsZS1zeXN0ZW1zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDcmVhdGlvblRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNyZWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZU1vZGVcIjoge30sXG4gICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU1vdW50VGFyZ2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAyLTAxL21vdW50LXRhcmdldHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiLFxuICAgICAgICAgIFwiU3VibmV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVN5c3RlbUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgXCJJcEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVGFnc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMi0wMS9jcmVhdGUtdGFncy97RmlsZVN5c3RlbUlkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVN5c3RlbUlkXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbGVTeXN0ZW1JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRmlsZVN5c3RlbVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMi0wMS9maWxlLXN5c3RlbXMve0ZpbGVTeXN0ZW1JZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU3lzdGVtSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWxlU3lzdGVtSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVNb3VudFRhcmdldFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMi0wMS9tb3VudC10YXJnZXRzL3tNb3VudFRhcmdldElkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTW91bnRUYXJnZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNb3VudFRhcmdldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTW91bnRUYXJnZXRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRhZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvZGVsZXRlLXRhZ3Mve0ZpbGVTeXN0ZW1JZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU3lzdGVtSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWxlU3lzdGVtSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRmlsZVN5c3RlbXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDItMDEvZmlsZS1zeXN0ZW1zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3JlYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3JlYXRpb25Ub2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsZVN5c3RlbUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsZVN5c3RlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNb3VudFRhcmdldFNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAyLTAxL21vdW50LXRhcmdldHMve01vdW50VGFyZ2V0SWR9L3NlY3VyaXR5LWdyb3Vwc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTW91bnRUYXJnZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNb3VudFRhcmdldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTW91bnRUYXJnZXRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1vdW50VGFyZ2V0c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMi0wMS9tb3VudC10YXJnZXRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsZVN5c3RlbUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWxlU3lzdGVtSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb3VudFRhcmdldElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNb3VudFRhcmdldElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTW91bnRUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMi0wMS90YWdzL3tGaWxlU3lzdGVtSWR9L1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVN5c3RlbUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsZVN5c3RlbUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsZVN5c3RlbUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5TW91bnRUYXJnZXRTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMi0wMS9tb3VudC10YXJnZXRzL3tNb3VudFRhcmdldElkfS9zZWN1cml0eS1ncm91cHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1vdW50VGFyZ2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTW91bnRUYXJnZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1vdW50VGFyZ2V0SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJPd25lcklkXCIsXG4gICAgICAgIFwiQ3JlYXRpb25Ub2tlblwiLFxuICAgICAgICBcIkZpbGVTeXN0ZW1JZFwiLFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiLFxuICAgICAgICBcIkxpZmVDeWNsZVN0YXRlXCIsXG4gICAgICAgIFwiTnVtYmVyT2ZNb3VudFRhcmdldHNcIixcbiAgICAgICAgXCJTaXplSW5CeXRlc1wiLFxuICAgICAgICBcIlBlcmZvcm1hbmNlTW9kZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPd25lcklkXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgIFwiRmlsZVN5c3RlbUlkXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMaWZlQ3ljbGVTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk51bWJlck9mTW91bnRUYXJnZXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJQZXJmb3JtYW5jZU1vZGVcIjoge30sXG4gICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJLbXNLZXlJZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk1vdW50VGFyZ2V0SWRcIixcbiAgICAgICAgXCJGaWxlU3lzdGVtSWRcIixcbiAgICAgICAgXCJTdWJuZXRJZFwiLFxuICAgICAgICBcIkxpZmVDeWNsZVN0YXRlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk93bmVySWRcIjoge30sXG4gICAgICAgIFwiTW91bnRUYXJnZXRJZFwiOiB7fSxcbiAgICAgICAgXCJGaWxlU3lzdGVtSWRcIjoge30sXG4gICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgIFwiTGlmZUN5Y2xlU3RhdGVcIjoge30sXG4gICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTItMDYtMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZWxhc3RpY2xvYWRiYWxhbmNpbmdcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkVsYXN0aWMgTG9hZCBCYWxhbmNpbmdcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwiZWxhc3RpY2xvYWRiYWxhbmNpbmctMjAxMi0wNi0wMVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL2VsYXN0aWNsb2FkYmFsYW5jaW5nLmFtYXpvbmF3cy5jb20vZG9jLzIwMTItMDYtMDEvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFkZFRhZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBcHBseVNlY3VyaXR5R3JvdXBzVG9Mb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXBwbHlTZWN1cml0eUdyb3Vwc1RvTG9hZEJhbGFuY2VyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXR0YWNoTG9hZEJhbGFuY2VyVG9TdWJuZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJTdWJuZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBdHRhY2hMb2FkQmFsYW5jZXJUb1N1Ym5ldHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbmZpZ3VyZUhlYWx0aENoZWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvbmZpZ3VyZUhlYWx0aENoZWNrUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQXBwQ29va2llU3RpY2tpbmVzc1BvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwiQ29va2llTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvb2tpZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQXBwQ29va2llU3RpY2tpbmVzc1BvbGljeVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUxCQ29va2llU3RpY2tpbmVzc1BvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNvb2tpZUV4cGlyYXRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVMQkNvb2tpZVN0aWNraW5lc3NQb2xpY3lSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIkxpc3RlbmVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGlzdGVuZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjaGVtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUxvYWRCYWxhbmNlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkROU05hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMb2FkQmFsYW5jZXJMaXN0ZW5lcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIkxpc3RlbmVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGlzdGVuZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVMb2FkQmFsYW5jZXJMaXN0ZW5lcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMb2FkQmFsYW5jZXJQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIixcbiAgICAgICAgICBcIlBvbGljeVR5cGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5VHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlTG9hZEJhbGFuY2VyUG9saWN5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlTG9hZEJhbGFuY2VyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTG9hZEJhbGFuY2VyTGlzdGVuZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJQb3J0c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyUG9ydHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUxvYWRCYWxhbmNlckxpc3RlbmVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxvYWRCYWxhbmNlclBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVMb2FkQmFsYW5jZXJQb2xpY3lSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVySW5zdGFuY2VzRnJvbUxvYWRCYWxhbmNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXJlZ2lzdGVySW5zdGFuY2VzRnJvbUxvYWRCYWxhbmNlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBY2NvdW50TGltaXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBY2NvdW50TGltaXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWF4XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VIZWFsdGhcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlSW5zdGFuY2VIZWFsdGhSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZVN0YXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVhc29uQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJQb2xpY2llc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxvYWRCYWxhbmNlclBvbGljaWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5RGVzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9saWN5VHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb2xpY3lBdHRyaWJ1dGVEZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyUG9saWN5VHlwZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5VHlwZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUxvYWRCYWxhbmNlclBvbGljeVR5cGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5VHlwZURlc2NyaXB0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUG9saWN5VHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvbGljeUF0dHJpYnV0ZVR5cGVEZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJDYXJkaW5hbGl0eVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckRlc2NyaXB0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkROU05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDYW5vbmljYWxIb3N0ZWRab25lTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNhbm9uaWNhbEhvc3RlZFpvbmVOYW1lSURcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMaXN0ZW5lckRlc2NyaXB0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiTGlzdGVuZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiUG9saWN5TmFtZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBcHBDb29raWVTdGlja2luZXNzUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb29raWVOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkxCQ29va2llU3RpY2tpbmVzc1BvbGljaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29va2llRXhwaXJhdGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiT3RoZXJQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQmFja2VuZFNlcnZlckRlc2NyaXB0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJQb2xpY3lOYW1lc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVlBDSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhlYWx0aENoZWNrXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIk93bmVyQWxpYXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNjaGVtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVRhZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdEZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaExvYWRCYWxhbmNlckZyb21TdWJuZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJTdWJuZXRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXRhY2hMb2FkQmFsYW5jZXJGcm9tU3VibmV0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZUF2YWlsYWJpbGl0eVpvbmVzRm9yTG9hZEJhbGFuY2VyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEaXNhYmxlQXZhaWxhYmlsaXR5Wm9uZXNGb3JMb2FkQmFsYW5jZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlQXZhaWxhYmlsaXR5Wm9uZXNGb3JMb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkVuYWJsZUF2YWlsYWJpbGl0eVpvbmVzRm9yTG9hZEJhbGFuY2VyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUxvYWRCYWxhbmNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIixcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVySW5zdGFuY2VzV2l0aExvYWRCYWxhbmNlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZWdpc3Rlckluc3RhbmNlc1dpdGhMb2FkQmFsYW5jZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZW1vdmVUYWdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0TG9hZEJhbGFuY2VyTGlzdGVuZXJTU0xDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiLFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyUG9ydFwiLFxuICAgICAgICAgIFwiU1NMQ2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NMQ2VydGlmaWNhdGVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRMb2FkQmFsYW5jZXJMaXN0ZW5lclNTTENlcnRpZmljYXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0TG9hZEJhbGFuY2VyUG9saWNpZXNGb3JCYWNrZW5kU2VydmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZVBvcnRcIixcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZVBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0TG9hZEJhbGFuY2VyUG9saWNpZXNGb3JCYWNrZW5kU2VydmVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0TG9hZEJhbGFuY2VyUG9saWNpZXNPZkxpc3RlbmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJQb3J0XCIsXG4gICAgICAgICAgXCJQb2xpY3lOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRMb2FkQmFsYW5jZXJQb2xpY2llc09mTGlzdGVuZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRhcmdldFwiLFxuICAgICAgICBcIkludGVydmFsXCIsXG4gICAgICAgIFwiVGltZW91dFwiLFxuICAgICAgICBcIlVuaGVhbHRoeVRocmVzaG9sZFwiLFxuICAgICAgICBcIkhlYWx0aHlUaHJlc2hvbGRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGFyZ2V0XCI6IHt9LFxuICAgICAgICBcIkludGVydmFsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUaW1lb3V0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVbmhlYWx0aHlUaHJlc2hvbGRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkhlYWx0aHlUaHJlc2hvbGRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJQcm90b2NvbFwiLFxuICAgICAgICBcIkxvYWRCYWxhbmNlclBvcnRcIixcbiAgICAgICAgXCJJbnN0YW5jZVBvcnRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUHJvdG9jb2xcIjoge30sXG4gICAgICAgIFwiTG9hZEJhbGFuY2VyUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgXCJJbnN0YW5jZVBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNTTENlcnRpZmljYXRlSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3Jvc3Nab25lTG9hZEJhbGFuY2luZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkVuYWJsZWRcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBY2Nlc3NMb2dcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJFbmFibGVkXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiRW1pdEludGVydmFsXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTM0J1Y2tldFByZWZpeFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDb25uZWN0aW9uRHJhaW5pbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJFbmFibGVkXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlRpbWVvdXRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29ubmVjdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiSWRsZVRpbWVvdXRcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiSWRsZVRpbWVvdXRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWRkaXRpb25hbEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VIZWFsdGhcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSW5zdGFuY2VTdGF0ZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvYWRCYWxhbmNlclBvbGljaWVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBvbGljeURlc2NyaXB0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyUG9saWN5VHlwZXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUG9saWN5VHlwZURlc2NyaXB0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkxvYWRCYWxhbmNlckRlc2NyaXB0aW9uc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICAgIFwidmVyc2lvblwiOjIsXG4gICAgXCJ3YWl0ZXJzXCI6e1xuICAgICAgICBcIkluc3RhbmNlRGVyZWdpc3RlcmVkXCI6IHtcbiAgICAgICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVJbnN0YW5jZUhlYWx0aFwiLFxuICAgICAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiT3V0T2ZTZXJ2aWNlXCIsXG4gICAgICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlU3RhdGVzW10uU3RhdGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRJbnN0YW5jZVwiLFxuICAgICAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcIkFueUluc3RhbmNlSW5TZXJ2aWNlXCI6e1xuICAgICAgICAgICAgXCJhY2NlcHRvcnNcIjpbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImFyZ3VtZW50XCI6XCJJbnN0YW5jZVN0YXRlc1tdLlN0YXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcIkluU2VydmljZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbnlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzdGF0ZVwiOlwic3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVsYXlcIjoxNSxcbiAgICAgICAgICAgIFwibWF4QXR0ZW1wdHNcIjo0MCxcbiAgICAgICAgICAgIFwib3BlcmF0aW9uXCI6XCJEZXNjcmliZUluc3RhbmNlSGVhbHRoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZUluU2VydmljZVwiOntcbiAgICAgICAgICAgIFwiYWNjZXB0b3JzXCI6W1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJhcmd1bWVudFwiOlwiSW5zdGFuY2VTdGF0ZXNbXS5TdGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6XCJJblNlcnZpY2VcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXRjaGVyXCI6XCJwYXRoQWxsXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjpcInN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZEluc3RhbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZGVsYXlcIjoxNSxcbiAgICAgICAgICAgIFwibWF4QXR0ZW1wdHNcIjo0MCxcbiAgICAgICAgICAgIFwib3BlcmF0aW9uXCI6XCJEZXNjcmliZUluc3RhbmNlSGVhbHRoXCJcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMTItMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZWxhc3RpY2xvYWRiYWxhbmNpbmdcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJFbGFzdGljIExvYWQgQmFsYW5jaW5nIHYyXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJFbGFzdGljIExvYWQgQmFsYW5jaW5nXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJFbGFzdGljIExvYWQgQmFsYW5jaW5nIHYyXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcImVsYXN0aWNsb2FkYmFsYW5jaW5ndjItMjAxNS0xMi0wMVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL2VsYXN0aWNsb2FkYmFsYW5jaW5nLmFtYXpvbmF3cy5jb20vZG9jLzIwMTUtMTItMDEvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZExpc3RlbmVyQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaXN0ZW5lckFyblwiLFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBZGRMaXN0ZW5lckNlcnRpZmljYXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNlcnRpZmljYXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFybnNcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFkZFRhZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMaXN0ZW5lclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCIsXG4gICAgICAgICAgXCJQcm90b2NvbFwiLFxuICAgICAgICAgIFwiUG9ydFwiLFxuICAgICAgICAgIFwiRGVmYXVsdEFjdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTc2xQb2xpY3lcIjoge30sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVmYXVsdEFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUxpc3RlbmVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlzdGVuZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1Ym5ldE1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NoZW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSXBBZGRyZXNzVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVMb2FkQmFsYW5jZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaXN0ZW5lckFyblwiLFxuICAgICAgICAgIFwiQ29uZGl0aW9uc1wiLFxuICAgICAgICAgIFwiUHJpb3JpdHlcIixcbiAgICAgICAgICBcIkFjdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlzdGVuZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJDb25kaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmlvcml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlUnVsZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUYXJnZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiUHJvdG9jb2xcIixcbiAgICAgICAgICBcIlBvcnRcIixcbiAgICAgICAgICBcIlZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrUG9ydFwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrUGF0aFwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrSW50ZXJ2YWxTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1RpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIZWFsdGh5VGhyZXNob2xkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVuaGVhbHRoeVRocmVzaG9sZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXRjaGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVRhcmdldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVMaXN0ZW5lclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGlzdGVuZXJBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlzdGVuZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlTGlzdGVuZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVMb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlTG9hZEJhbGFuY2VyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZVJ1bGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYXJnZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlVGFyZ2V0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyVGFyZ2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIixcbiAgICAgICAgICBcIlRhcmdldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVyZWdpc3RlclRhcmdldHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFjY291bnRMaW1pdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFjY291bnRMaW1pdHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaW1pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNYXhcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMaXN0ZW5lckNlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGlzdGVuZXJBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlzdGVuZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTGlzdGVuZXJDZXJ0aWZpY2F0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGlzdGVuZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTGlzdGVuZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlzdGVuZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTG9hZEJhbGFuY2VyQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJ1bGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZUFybnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJ1bGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVNTTFBvbGljaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTU0xQb2xpY2llc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNzbFBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTc2xQcm90b2NvbHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2lwaGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlByaW9yaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVUYWdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnRGVzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYXJnZXRHcm91cEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlVGFyZ2V0R3JvdXBBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYXJnZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVUYXJnZXRHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhcmdldEhlYWx0aFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVUYXJnZXRIZWFsdGhSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRIZWFsdGhEZXNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRhcmdldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSGVhbHRoQ2hlY2tQb3J0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0SGVhbHRoXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5TGlzdGVuZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgXCJTc2xQb2xpY3lcIjoge30sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVmYXVsdEFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUxpc3RlbmVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlzdGVuZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlMb2FkQmFsYW5jZXJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUxvYWRCYWxhbmNlckF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVBcm5cIjoge30sXG4gICAgICAgICAgXCJDb25kaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlSdWxlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeVRhcmdldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1BvcnRcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1BhdGhcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja0ludGVydmFsU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tUaW1lb3V0U2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGVhbHRoeVRocmVzaG9sZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbmhlYWx0aHlUaHJlc2hvbGRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF0Y2hlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeVRhcmdldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlUYXJnZXRHcm91cEF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEdyb3VwQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeVRhcmdldEdyb3VwQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyVGFyZ2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIixcbiAgICAgICAgICBcIlRhcmdldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0R3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVnaXN0ZXJUYXJnZXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlTGlzdGVuZXJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCIsXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGlzdGVuZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlbW92ZUxpc3RlbmVyQ2VydGlmaWNhdGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5zXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZW1vdmVUYWdzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0SXBBZGRyZXNzVHlwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCIsXG4gICAgICAgICAgXCJJcEFkZHJlc3NUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIklwQWRkcmVzc1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0SXBBZGRyZXNzVHlwZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklwQWRkcmVzc1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRSdWxlUHJpb3JpdGllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVByaW9yaXRpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVByaW9yaXRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJ1bGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcmlvcml0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNldFJ1bGVQcmlvcml0aWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIixcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0U2VjdXJpdHlHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRTdWJuZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3VibmV0TWFwcGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRTdWJuZXRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJJc0RlZmF1bHRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2xcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0ZU9pZGNDb25maWdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJJc3N1ZXJcIixcbiAgICAgICAgICAgICAgXCJBdXRob3JpemF0aW9uRW5kcG9pbnRcIixcbiAgICAgICAgICAgICAgXCJUb2tlbkVuZHBvaW50XCIsXG4gICAgICAgICAgICAgIFwiVXNlckluZm9FbmRwb2ludFwiLFxuICAgICAgICAgICAgICBcIkNsaWVudElkXCIsXG4gICAgICAgICAgICAgIFwiQ2xpZW50U2VjcmV0XCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklzc3VlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBdXRob3JpemF0aW9uRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiVG9rZW5FbmRwb2ludFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJVc2VySW5mb0VuZHBvaW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIkNsaWVudElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNsaWVudFNlY3JldFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTZXNzaW9uQ29va2llTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTY29wZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTZXNzaW9uVGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPblVuYXV0aGVudGljYXRlZFJlcXVlc3RcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRlQ29nbml0b0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlVzZXJQb29sQXJuXCIsXG4gICAgICAgICAgICAgIFwiVXNlclBvb2xDbGllbnRJZFwiLFxuICAgICAgICAgICAgICBcIlVzZXJQb29sRG9tYWluXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlVzZXJQb29sQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIlVzZXJQb29sQ2xpZW50SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiVXNlclBvb2xEb21haW5cIjoge30sXG4gICAgICAgICAgICAgIFwiU2Vzc2lvbkNvb2tpZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU2NvcGVcIjoge30sXG4gICAgICAgICAgICAgIFwiU2Vzc2lvblRpbWVvdXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uUmVxdWVzdEV4dHJhUGFyYW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yZGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpc3RlbmVyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdG9jb2xcIjoge30sXG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3NsUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdEFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzF2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJETlNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2Fub25pY2FsSG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9hZEJhbGFuY2VyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNjaGVtZVwiOiB7fSxcbiAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNvZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVhc29uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklwQWRkcmVzc1R5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlpvbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgXCJMb2FkQmFsYW5jZXJBZGRyZXNzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFsbG9jYXRpb25JZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmllbGRcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUHJpb3JpdHlcIjoge30sXG4gICAgICAgICAgXCJDb25kaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSHR0cENvZGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSHR0cENvZGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1Byb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tQb3J0XCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJbnRlcnZhbFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrVGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aHlUaHJlc2hvbGRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5oZWFsdGh5VGhyZXNob2xkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrUGF0aFwiOiB7fSxcbiAgICAgICAgICBcIk1hdGNoZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvYWRCYWxhbmNlckFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldFR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0a1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlTGlzdGVuZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiTGlzdGVuZXJzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiTG9hZEJhbGFuY2Vyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFyZ2V0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVGFyZ2V0R3JvdXBzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiTG9hZEJhbGFuY2VyRXhpc3RzXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlTG9hZEJhbGFuY2Vyc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInN0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogMjAwLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkxvYWRCYWxhbmNlck5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJMb2FkQmFsYW5jZXJBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkxvYWRCYWxhbmNlcnNbXS5TdGF0ZS5Db2RlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImFjdGl2ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkxvYWRCYWxhbmNlcnNbXS5TdGF0ZS5Db2RlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInByb3Zpc2lvbmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJMb2FkQmFsYW5jZXJOb3RGb3VuZFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiTG9hZEJhbGFuY2Vyc0RlbGV0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVMb2FkQmFsYW5jZXJzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJMb2FkQmFsYW5jZXJzW10uU3RhdGUuQ29kZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhY3RpdmVcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiTG9hZEJhbGFuY2VyTm90Rm91bmRcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVGFyZ2V0SW5TZXJ2aWNlXCI6e1xuICAgICAgXCJkZWxheVwiOjE1LFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOjQwLFxuICAgICAgXCJvcGVyYXRpb25cIjpcIkRlc2NyaWJlVGFyZ2V0SGVhbHRoXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOltcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjpcIlRhcmdldEhlYWx0aERlc2NyaXB0aW9uc1tdLlRhcmdldEhlYWx0aC5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcImhlYWx0aHlcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjpcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6XCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkludmFsaWRJbnN0YW5jZVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJyZXRyeVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiVGFyZ2V0RGVyZWdpc3RlcmVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVRhcmdldEhlYWx0aFwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSW52YWxpZFRhcmdldFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiYXJndW1lbnRcIjpcIlRhcmdldEhlYWx0aERlc2NyaXB0aW9uc1tdLlRhcmdldEhlYWx0aC5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjpcInVudXNlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOlwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjpcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDA5LTAzLTMxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImVsYXN0aWNtYXByZWR1Y2VcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gRU1SXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gRWxhc3RpYyBNYXBSZWR1Y2VcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiRWxhc3RpY01hcFJlZHVjZVwiLFxuICAgIFwidGltZXN0YW1wRm9ybWF0XCI6IFwidW5peFRpbWVzdGFtcFwiLFxuICAgIFwidWlkXCI6IFwiZWxhc3RpY21hcHJlZHVjZS0yMDA5LTAzLTMxXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZEluc3RhbmNlRmxlZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VGbGVldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUZsZWV0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlRmxlZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZEluc3RhbmNlR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUdyb3Vwc1wiLFxuICAgICAgICAgIFwiSm9iRmxvd0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkpvYkZsb3dJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYkZsb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkSm9iRmxvd1N0ZXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJKb2JGbG93SWRcIixcbiAgICAgICAgICBcIlN0ZXBzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYkZsb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0ZXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGVwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxTdGVwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJTdGVwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYW5jZWxTdGVwc0luZm9MaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGVwSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWFzb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTZWN1cml0eUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlNlY3VyaXR5Q29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VjdXJpdHlDb25maWd1cmF0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU2VjdXJpdHlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWMySW5zdGFuY2VBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJFYzJLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJFYzJTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiUmVxdWVzdGVkRWMyU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJFYzJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJSZXF1ZXN0ZWRFYzJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSWFtSW5zdGFuY2VQcm9maWxlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJFbXJNYW5hZ2VkTWFzdGVyU2VjdXJpdHlHcm91cFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRW1yTWFuYWdlZFNsYXZlU2VjdXJpdHlHcm91cFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiU2VydmljZUFjY2Vzc1NlY3VyaXR5R3JvdXBcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkFkZGl0aW9uYWxNYXN0ZXJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiQWRkaXRpb25hbFNsYXZlU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VDb2xsZWN0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJMb2dVcmlcIjoge30sXG4gICAgICAgICAgICAgIFwiUmVxdWVzdGVkQW1pVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSdW5uaW5nQW1pVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZWxlYXNlTGFiZWxcIjoge30sXG4gICAgICAgICAgICAgIFwiQXV0b1Rlcm1pbmF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGVybWluYXRpb25Qcm90ZWN0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZpc2libGVUb0FsbFVzZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBcHBsaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5vcm1hbGl6ZWRJbnN0YW5jZUhvdXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJNYXN0ZXJQdWJsaWNEbnNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNlY3VyaXR5Q29uZmlndXJhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ1JvbGVcIjoge30sXG4gICAgICAgICAgICAgIFwiU2NhbGVEb3duQmVoYXZpb3JcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3VzdG9tQW1pSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRWJzUm9vdFZvbHVtZVNpemVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlcG9VcGdyYWRlT25Cb290XCI6IHt9LFxuICAgICAgICAgICAgICBcIktlcmJlcm9zQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVKb2JGbG93c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDcmVhdGVkQWZ0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3JlYXRlZEJlZm9yZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJKb2JGbG93SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJKb2JGbG93U3RhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYkZsb3dzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSm9iRmxvd0lkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25TdGF0dXNEZXRhaWxcIixcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJKb2JGbG93SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTG9nVXJpXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQW1pVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN0YXR1c0RldGFpbFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIlN0YXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGlvbkRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXJ0RGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUmVhZHlEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJFbmREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJMYXN0U3RhdGVDaGFuZ2VSZWFzb25cIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiTWFzdGVySW5zdGFuY2VUeXBlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU2xhdmVJbnN0YW5jZVR5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIk1hc3Rlckluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJNYXN0ZXJQdWJsaWNEbnNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk1hc3Rlckluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU2xhdmVJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1hcmtldFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlUm9sZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlUmVxdWVzdENvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VSdW5uaW5nQ291bnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTWFya2V0XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJCaWRQcmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VSZXF1ZXN0Q291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlUnVubmluZ0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMYXN0U3RhdGVDaGFuZ2VSZWFzb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGFydERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlJlYWR5RGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRW5kRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTm9ybWFsaXplZEluc3RhbmNlSG91cnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkVjMktleU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiRWMyU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJLZWVwSm9iRmxvd0FsaXZlV2hlbk5vU3RlcHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlRlcm1pbmF0aW9uUHJvdGVjdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJIYWRvb3BWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0ZXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiU3RlcENvbmZpZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiRXhlY3V0aW9uU3RhdHVzRGV0YWlsXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlN0ZXBDb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN0YXR1c0RldGFpbFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN0YXRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGlvbkRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN0YXJ0RGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRW5kRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGFzdFN0YXRlQ2hhbmdlUmVhc29uXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkJvb3RzdHJhcEFjdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkJvb3RzdHJhcEFjdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydGVkUHJvZHVjdHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZpc2libGVUb0FsbFVzZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJKb2JGbG93Um9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdSb2xlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NhbGVEb3duQmVoYXZpb3JcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2VjdXJpdHlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VjdXJpdHlDb25maWd1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0ZXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiLFxuICAgICAgICAgIFwiU3RlcElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0ZXBJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0ZXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJBY3Rpb25PbkZhaWx1cmVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Qm9vdHN0cmFwQWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJvb3RzdHJhcEFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY3JpcHRQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXJnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENsdXN0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNyZWF0ZWRBZnRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDcmVhdGVkQmVmb3JlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsdXN0ZXJTdGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTm9ybWFsaXplZEluc3RhbmNlSG91cnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJbnN0YW5jZUZsZWV0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlRmxlZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXRlQ2hhbmdlUmVhc29uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlRpbWVsaW5lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJDcmVhdGlvbkRhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJlYWR5RGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRW5kRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUZsZWV0VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldE9uRGVtYW5kQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldFNwb3RDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRPbkRlbWFuZENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm92aXNpb25lZFNwb3RDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIldlaWdodGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkJpZFByaWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQmlkUHJpY2VBc1BlcmNlbnRhZ2VPZk9uRGVtYW5kUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRWJzQmxvY2tEZXZpY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhdW5jaFNwZWNpZmljYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RJbnN0YW5jZUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNYXJrZXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUdyb3VwVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJpZFByaWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVxdWVzdGVkSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUnVubmluZ0luc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdGVDaGFuZ2VSZWFzb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiVGltZWxpbmVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUmVhZHlEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJFbmREYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVic0Jsb2NrRGV2aWNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTaHJpbmtQb2xpY3lcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF1dG9TY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VHcm91cFR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlRmxlZXRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VTdGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVjMkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQdWJsaWNEbnNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHVibGljSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJpdmF0ZURuc05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcml2YXRlSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdGF0ZUNoYW5nZVJlYXNvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJUaW1lbGluZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWFkeURhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkVuZERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VGbGVldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWFya2V0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRWJzVm9sdW1lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiRGV2aWNlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiVm9sdW1lSWRcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U2VjdXJpdHlDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZWN1cml0eUNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RlcHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJTdGVwU3RhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0ZXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0ZXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFjdGlvbk9uRmFpbHVyZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5SW5zdGFuY2VGbGVldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUZsZWV0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlRmxlZXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZUZsZWV0SWRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VGbGVldElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlRhcmdldE9uRGVtYW5kQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlRhcmdldFNwb3RDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5SW5zdGFuY2VHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUdyb3VwSWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRUMySW5zdGFuY2VJZHNUb1Rlcm1pbmF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTaHJpbmtQb2xpY3lcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEF1dG9TY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRcIixcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZFwiLFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdQb2xpY3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0aVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZUF1dG9TY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRcIixcbiAgICAgICAgICBcIkluc3RhbmNlR3JvdXBJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUdyb3VwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSdW5Kb2JGbG93XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkxvZ1VyaVwiOiB7fSxcbiAgICAgICAgICBcIkFkZGl0aW9uYWxJbmZvXCI6IHt9LFxuICAgICAgICAgIFwiQW1pVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlJlbGVhc2VMYWJlbFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWFzdGVySW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNsYXZlSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlR3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlRmxlZXRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRWMyS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIktlZXBKb2JGbG93QWxpdmVXaGVuTm9TdGVwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGVybWluYXRpb25Qcm90ZWN0ZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkhhZG9vcFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiRWMyU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRWMyU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbXJNYW5hZ2VkTWFzdGVyU2VjdXJpdHlHcm91cFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFbXJNYW5hZ2VkU2xhdmVTZWN1cml0eUdyb3VwXCI6IHt9LFxuICAgICAgICAgICAgICBcIlNlcnZpY2VBY2Nlc3NTZWN1cml0eUdyb3VwXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFkZGl0aW9uYWxNYXN0ZXJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1b1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQWRkaXRpb25hbFNsYXZlU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNW9cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0ZXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCb290c3RyYXBBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1cHBvcnRlZFByb2R1Y3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXdTdXBwb3J0ZWRQcm9kdWN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFyZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmlzaWJsZVRvQWxsVXNlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkpvYkZsb3dSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZVJvbGVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWN1cml0eUNvbmZpZ3VyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ1JvbGVcIjoge30sXG4gICAgICAgICAgXCJTY2FsZURvd25CZWhhdmlvclwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbUFtaUlkXCI6IHt9LFxuICAgICAgICAgIFwiRWJzUm9vdFZvbHVtZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcG9VcGdyYWRlT25Cb290XCI6IHt9LFxuICAgICAgICAgIFwiS2VyYmVyb3NBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JGbG93SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRUZXJtaW5hdGlvblByb3RlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkpvYkZsb3dJZHNcIixcbiAgICAgICAgICBcIlRlcm1pbmF0aW9uUHJvdGVjdGVkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYkZsb3dJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlcm1pbmF0aW9uUHJvdGVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRWaXNpYmxlVG9BbGxVc2Vyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iRmxvd0lkc1wiLFxuICAgICAgICAgIFwiVmlzaWJsZVRvQWxsVXNlcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iRmxvd0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmlzaWJsZVRvQWxsVXNlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlcm1pbmF0ZUpvYkZsb3dzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJKb2JGbG93SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYkZsb3dJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkluc3RhbmNlRmxlZXRUeXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiSW5zdGFuY2VGbGVldFR5cGVcIjoge30sXG4gICAgICAgIFwiVGFyZ2V0T25EZW1hbmRDYXBhY2l0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFyZ2V0U3BvdENhcGFjaXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YW5jZVR5cGVDb25maWdzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIldlaWdodGVkQ2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkJpZFByaWNlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkJpZFByaWNlQXNQZXJjZW50YWdlT2ZPbkRlbWFuZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVic0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF1bmNoU3BlY2lmaWNhdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVic0Jsb2NrRGV2aWNlQ29uZmlnc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiVm9sdW1lU3BlY2lmaWNhdGlvblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJWb2x1bWVTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZvbHVtZXNQZXJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlZvbHVtZVR5cGVcIixcbiAgICAgICAgXCJTaXplSW5HQlwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNpemVJbkdCXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xhc3NpZmljYXRpb25cIjoge30sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiU3BvdFNwZWNpZmljYXRpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3BvdFNwZWNpZmljYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJUaW1lb3V0RHVyYXRpb25NaW51dGVzXCIsXG4gICAgICAgICAgICBcIlRpbWVvdXRBY3Rpb25cIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiVGltZW91dER1cmF0aW9uTWludXRlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVGltZW91dEFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgIFwiQmxvY2tEdXJhdGlvbk1pbnV0ZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZVJvbGVcIixcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VDb3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2V0XCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiQmlkUHJpY2VcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFYnNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQ29uc3RyYWludHNcIixcbiAgICAgICAgXCJSdWxlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk1pbkNhcGFjaXR5XCIsXG4gICAgICAgIFwiTWF4Q2FwYWNpdHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTWluQ2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1heENhcGFjaXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgIFwiVHJpZ2dlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJBY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJTaW1wbGVTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJNYXJrZXRcIjoge30sXG4gICAgICAgICAgICAgIFwiU2ltcGxlU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJTY2FsaW5nQWRqdXN0bWVudFwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJBZGp1c3RtZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkNvb2xEb3duXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyaWdnZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoQWxhcm1EZWZpbml0aW9uXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hBbGFybURlZmluaXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJDb21wYXJpc29uT3BlcmF0b3JcIixcbiAgICAgICAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgXCJQZXJpb2RcIixcbiAgICAgICAgICAgICAgICAgIFwiVGhyZXNob2xkXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRXZhbHVhdGlvblBlcmlvZHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiUGVyaW9kXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJTdGF0aXN0aWNcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJVbml0XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFjXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIkhhZG9vcEphclN0ZXBcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJBY3Rpb25PbkZhaWx1cmVcIjoge30sXG4gICAgICAgIFwiSGFkb29wSmFyU3RlcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkphclwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiSmFyXCI6IHt9LFxuICAgICAgICAgICAgXCJNYWluQ2xhc3NcIjoge30sXG4gICAgICAgICAgICBcIkFyZ3NcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJTdGF0ZUNoYW5nZVJlYXNvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29kZVwiOiB7fSxcbiAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUaW1lbGluZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJSZWFkeURhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVuZERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMyY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMmZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQXJnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbEluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUmVhbG1cIixcbiAgICAgICAgXCJLZGNBZG1pblBhc3N3b3JkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlYWxtXCI6IHt9LFxuICAgICAgICBcIktkY0FkbWluUGFzc3dvcmRcIjoge30sXG4gICAgICAgIFwiQ3Jvc3NSZWFsbVRydXN0UHJpbmNpcGFsUGFzc3dvcmRcIjoge30sXG4gICAgICAgIFwiQUREb21haW5Kb2luVXNlclwiOiB7fSxcbiAgICAgICAgXCJBRERvbWFpbkpvaW5QYXNzd29yZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgXCJTY3JpcHRCb290c3RyYXBBY3Rpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTY3JpcHRCb290c3RyYXBBY3Rpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJQYXRoXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlBhdGhcIjoge30sXG4gICAgICAgICAgICBcIkFyZ3NcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSmFyXCI6IHt9LFxuICAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFpbkNsYXNzXCI6IHt9LFxuICAgICAgICBcIkFyZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiU3RhdGVDaGFuZ2VSZWFzb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkNvZGVcIjoge30sXG4gICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRmFpbHVyZURldGFpbHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlJlYXNvblwiOiB7fSxcbiAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgIFwiTG9nRmlsZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJUaW1lbGluZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTdGFydERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVuZERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVTcGVjaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRldmljZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0ZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGVjb21taXNzaW9uVGltZW91dFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VSZXNpemVQb2xpY3lcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkluc3RhbmNlc1RvVGVybWluYXRlXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0Z1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJJbnN0YW5jZXNUb1Byb3RlY3RcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRnXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkluc3RhbmNlVGVybWluYXRpb25UaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0Z1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNGlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICBcIlN0YXRlQ2hhbmdlUmVhc29uXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3dcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1b1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlSm9iRmxvd3NcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSm9iRmxvd3NcIlxuICAgIH0sXG4gICAgXCJMaXN0Qm9vdHN0cmFwQWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQm9vdHN0cmFwQWN0aW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3RDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ2x1c3RlcnNcIlxuICAgIH0sXG4gICAgXCJMaXN0SW5zdGFuY2VGbGVldHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkluc3RhbmNlRmxlZXRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEluc3RhbmNlR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbnN0YW5jZUdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkxpc3RJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkluc3RhbmNlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTdGVwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3RlcHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJDbHVzdGVyUnVubmluZ1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUNsdXN0ZXJcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ2x1c3Rlci5TdGF0dXMuU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUlVOTklOR1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ2x1c3Rlci5TdGF0dXMuU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiV0FJVElOR1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ2x1c3Rlci5TdGF0dXMuU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiVEVSTUlOQVRJTkdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXIuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlRFUk1JTkFURURcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXIuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlRFUk1JTkFURURfV0lUSF9FUlJPUlNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIlN0ZXBDb21wbGV0ZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVN0ZXBcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RlcC5TdGF0dXMuU3RhdGVcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ09NUExFVEVEXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aFwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTdGVwLlN0YXR1cy5TdGF0ZVwiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJGQUlMRURcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlN0ZXAuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkNBTkNFTExFRFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiQ2x1c3RlclRlcm1pbmF0ZWRcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDbHVzdGVyXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXIuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlRFUk1JTkFURURcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXIuU3RhdHVzLlN0YXRlXCIsXG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIlRFUk1JTkFURURfV0lUSF9FUlJPUlNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcInVpZFwiOiBcImVsYXN0aWN0cmFuc2NvZGVyLTIwMTItMDktMjVcIixcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEyLTA5LTI1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImVsYXN0aWN0cmFuc2NvZGVyXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEVsYXN0aWMgVHJhbnNjb2RlclwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNhbmNlbEpvYlwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9qb2JzL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVKb2JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvam9ic1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGlwZWxpbmVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQaXBlbGluZUlkXCI6IHt9LFxuICAgICAgICAgIFwiSW5wdXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5wdXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk91dHB1dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3V0cHV0S2V5UHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiUGxheWxpc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3V0cHV0S2V5c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSGxzQ29udGVudFByb3RlY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBsYXlSZWFkeURybVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFxXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlck1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L3BpcGVsaW5lc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiSW5wdXRCdWNrZXRcIixcbiAgICAgICAgICBcIlJvbGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIklucHV0QnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiT3V0cHV0QnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIkF3c0ttc0tleUFyblwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRodW1ibmFpbENvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGlwZWxpbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMybFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldhcm5pbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQcmVzZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcHJlc2V0c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ29udGFpbmVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkNvbnRhaW5lclwiOiB7fSxcbiAgICAgICAgICBcIlZpZGVvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdWRpb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGh1bWJuYWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJlc2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXYXJuaW5nXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUGlwZWxpbmVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcGlwZWxpbmVzL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQcmVzZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcHJlc2V0cy97SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEpvYnNCeVBpcGVsaW5lXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L2pvYnNCeVBpcGVsaW5lL3tQaXBlbGluZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBpcGVsaW5lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGlwZWxpbmVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBpcGVsaW5lSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc2NlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFzY2VuZGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFnZVRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9ic1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RKb2JzQnlTdGF0dXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvam9ic0J5U3RhdHVzL3tTdGF0dXN9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN0YXR1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzY2VuZGluZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXNjZW5kaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYWdlVG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFBpcGVsaW5lc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9waXBlbGluZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzY2VuZGluZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXNjZW5kaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYWdlVG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQaXBlbGluZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQcmVzZXRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L3ByZXNldHNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzY2VuZGluZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXNjZW5kaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYWdlVG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmVzZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWFkSm9iXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEyLTA5LTI1L2pvYnMve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlYWRQaXBlbGluZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9waXBlbGluZXMve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2FybmluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlYWRQcmVzZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcHJlc2V0cy97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByZXNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVzdFJvbGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcm9sZVRlc3RzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSb2xlXCIsXG4gICAgICAgICAgXCJJbnB1dEJ1Y2tldFwiLFxuICAgICAgICAgIFwiT3V0cHV0QnVja2V0XCIsXG4gICAgICAgICAgXCJUb3BpY3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIklucHV0QnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiT3V0cHV0QnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiVG9waWNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWNjZXNzXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiVXBkYXRlUGlwZWxpbmVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTItMDktMjUvcGlwZWxpbmVzL3tJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5wdXRCdWNrZXRcIjoge30sXG4gICAgICAgICAgXCJSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiQXdzS21zS2V5QXJuXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudENvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGh1bWJuYWlsQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2FybmluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVBpcGVsaW5lTm90aWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9waXBlbGluZXMve0lkfS9ub3RpZmljYXRpb25zXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBpcGVsaW5lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQaXBlbGluZVN0YXR1c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMi0wOS0yNS9waXBlbGluZXMve0lkfS9zdGF0dXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgIFwiU3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQaXBlbGluZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiRnJhbWVSYXRlXCI6IHt9LFxuICAgICAgICBcIlJlc29sdXRpb25cIjoge30sXG4gICAgICAgIFwiQXNwZWN0UmF0aW9cIjoge30sXG4gICAgICAgIFwiSW50ZXJsYWNlZFwiOiB7fSxcbiAgICAgICAgXCJDb250YWluZXJcIjoge30sXG4gICAgICAgIFwiRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUaW1lU3BhblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnB1dENhcHRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNZXJnZVBvbGljeVwiOiB7fSxcbiAgICAgICAgICAgIFwiQ2FwdGlvblNvdXJjZXNcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJEZXRlY3RlZFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIldpZHRoXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJIZWlnaHRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkZyYW1lUmF0ZVwiOiB7fSxcbiAgICAgICAgICAgIFwiRmlsZVNpemVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkR1cmF0aW9uTWlsbGlzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNb2RlXCI6IHt9LFxuICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgXCJLZXlNZDVcIjoge30sXG4gICAgICAgIFwiSW5pdGlhbGl6YXRpb25WZWN0b3JcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7fSxcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiTGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJUaW1lT2Zmc2V0XCI6IHt9LFxuICAgICAgICAgIFwiTGFiZWxcIjoge30sXG4gICAgICAgICAgXCJFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgXCJUaHVtYm5haWxQYXR0ZXJuXCI6IHt9LFxuICAgICAgICBcIlRodW1ibmFpbEVuY3J5cHRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUm90YXRlXCI6IHt9LFxuICAgICAgICBcIlByZXNldElkXCI6IHt9LFxuICAgICAgICBcIlNlZ21lbnREdXJhdGlvblwiOiB7fSxcbiAgICAgICAgXCJXYXRlcm1hcmtzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsYnVtQXJ0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wb3NpdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FwdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuY3J5cHRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByZXNldFdhdGVybWFya0lkXCI6IHt9LFxuICAgICAgICAgIFwiSW5wdXRLZXlcIjoge30sXG4gICAgICAgICAgXCJFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTWVyZ2VQb2xpY3lcIjoge30sXG4gICAgICAgIFwiQXJ0d29ya1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJbnB1dEtleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhXaWR0aFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhIZWlnaHRcIjoge30sXG4gICAgICAgICAgICAgIFwiU2l6aW5nUG9saWN5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhZGRpbmdQb2xpY3lcIjoge30sXG4gICAgICAgICAgICAgIFwiQWxidW1BcnRGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgIFwiRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRpbWVTcGFuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTWVyZ2VQb2xpY3lcIjoge1xuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FwdGlvblNvdXJjZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiLFxuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FwdGlvbkZvcm1hdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhdHRlcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFtXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNZXRob2RcIjoge30sXG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIktleU1kNVwiOiB7fSxcbiAgICAgICAgXCJJbml0aWFsaXphdGlvblZlY3RvclwiOiB7fSxcbiAgICAgICAgXCJMaWNlbnNlQWNxdWlzaXRpb25VcmxcIjoge30sXG4gICAgICAgIFwiS2V5U3RvcmFnZVBvbGljeVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZvcm1hdFwiOiB7fSxcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiS2V5TWQ1XCI6IHt9LFxuICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICBcIkluaXRpYWxpemF0aW9uVmVjdG9yXCI6IHt9LFxuICAgICAgICBcIkxpY2Vuc2VBY3F1aXNpdGlvblVybFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzF5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgIFwiUGlwZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgXCJJbnB1dFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnB1dHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3V0cHV0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF6XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPdXRwdXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxelwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk91dHB1dEtleVByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJQbGF5bGlzdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgIFwiT3V0cHV0S2V5c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSGxzQ29udGVudFByb3RlY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBsYXlSZWFkeURybVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c0RldGFpbFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiVXNlck1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUaW1pbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlN1Ym1pdFRpbWVNaWxsaXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlN0YXJ0VGltZU1pbGxpc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRmluaXNoVGltZU1pbGxpc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgXCJUaHVtYm5haWxQYXR0ZXJuXCI6IHt9LFxuICAgICAgICBcIlRodW1ibmFpbEVuY3J5cHRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUm90YXRlXCI6IHt9LFxuICAgICAgICBcIlByZXNldElkXCI6IHt9LFxuICAgICAgICBcIlNlZ21lbnREdXJhdGlvblwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3RhdHVzRGV0YWlsXCI6IHt9LFxuICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXaWR0aFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSGVpZ2h0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGcmFtZVJhdGVcIjoge30sXG4gICAgICAgIFwiRmlsZVNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkR1cmF0aW9uTWlsbGlzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXYXRlcm1hcmtzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFsYnVtQXJ0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wb3NpdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2FwdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuY3J5cHRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXBwbGllZENvbG9yU3BhY2VDb252ZXJzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUHJvZ3Jlc3NpbmdcIjoge30sXG4gICAgICAgIFwiQ29tcGxldGVkXCI6IHt9LFxuICAgICAgICBcIldhcm5pbmdcIjoge30sXG4gICAgICAgIFwiRXJyb3JcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIlBlcm1pc3Npb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkdyYW50ZWVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkdyYW50ZWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQWNjZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJJbnB1dEJ1Y2tldFwiOiB7fSxcbiAgICAgICAgXCJPdXRwdXRCdWNrZXRcIjoge30sXG4gICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgXCJBd3NLbXNLZXlBcm5cIjoge30sXG4gICAgICAgIFwiTm90aWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29udGVudENvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGh1bWJuYWlsQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMm5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvZGVcIjoge30sXG4gICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb2RlY1wiOiB7fSxcbiAgICAgICAgXCJDb2RlY09wdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJLZXlmcmFtZXNNYXhEaXN0XCI6IHt9LFxuICAgICAgICBcIkZpeGVkR09QXCI6IHt9LFxuICAgICAgICBcIkJpdFJhdGVcIjoge30sXG4gICAgICAgIFwiRnJhbWVSYXRlXCI6IHt9LFxuICAgICAgICBcIk1heEZyYW1lUmF0ZVwiOiB7fSxcbiAgICAgICAgXCJSZXNvbHV0aW9uXCI6IHt9LFxuICAgICAgICBcIkFzcGVjdFJhdGlvXCI6IHt9LFxuICAgICAgICBcIk1heFdpZHRoXCI6IHt9LFxuICAgICAgICBcIk1heEhlaWdodFwiOiB7fSxcbiAgICAgICAgXCJEaXNwbGF5QXNwZWN0UmF0aW9cIjoge30sXG4gICAgICAgIFwiU2l6aW5nUG9saWN5XCI6IHt9LFxuICAgICAgICBcIlBhZGRpbmdQb2xpY3lcIjoge30sXG4gICAgICAgIFwiV2F0ZXJtYXJrc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhXaWR0aFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNYXhIZWlnaHRcIjoge30sXG4gICAgICAgICAgICAgIFwiU2l6aW5nUG9saWN5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkhvcml6b250YWxBbGlnblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJIb3Jpem9udGFsT2Zmc2V0XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZlcnRpY2FsQWxpZ25cIjoge30sXG4gICAgICAgICAgICAgIFwiVmVydGljYWxPZmZzZXRcIjoge30sXG4gICAgICAgICAgICAgIFwiT3BhY2l0eVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb2RlY1wiOiB7fSxcbiAgICAgICAgXCJTYW1wbGVSYXRlXCI6IHt9LFxuICAgICAgICBcIkJpdFJhdGVcIjoge30sXG4gICAgICAgIFwiQ2hhbm5lbHNcIjoge30sXG4gICAgICAgIFwiQXVkaW9QYWNraW5nTW9kZVwiOiB7fSxcbiAgICAgICAgXCJDb2RlY09wdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlByb2ZpbGVcIjoge30sXG4gICAgICAgICAgICBcIkJpdERlcHRoXCI6IHt9LFxuICAgICAgICAgICAgXCJCaXRPcmRlclwiOiB7fSxcbiAgICAgICAgICAgIFwiU2lnbmVkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRm9ybWF0XCI6IHt9LFxuICAgICAgICBcIkludGVydmFsXCI6IHt9LFxuICAgICAgICBcIlJlc29sdXRpb25cIjoge30sXG4gICAgICAgIFwiQXNwZWN0UmF0aW9cIjoge30sXG4gICAgICAgIFwiTWF4V2lkdGhcIjoge30sXG4gICAgICAgIFwiTWF4SGVpZ2h0XCI6IHt9LFxuICAgICAgICBcIlNpemluZ1BvbGljeVwiOiB7fSxcbiAgICAgICAgXCJQYWRkaW5nUG9saWN5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiQ29udGFpbmVyXCI6IHt9LFxuICAgICAgICBcIkF1ZGlvXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWaWRlb1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGh1bWJuYWlsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0Sm9ic0J5UGlwZWxpbmVcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFnZVRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJKb2JzXCJcbiAgICB9LFxuICAgIFwiTGlzdEpvYnNCeVN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkpvYnNcIlxuICAgIH0sXG4gICAgXCJMaXN0UGlwZWxpbmVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGlwZWxpbmVzXCJcbiAgICB9LFxuICAgIFwiTGlzdFByZXNldHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFnZVRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJQcmVzZXRzXCJcbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJKb2JDb21wbGV0ZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJSZWFkSm9iXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDEyMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDb21wbGV0ZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJKb2IuU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDYW5jZWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJKb2IuU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJFcnJvclwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJKb2IuU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMC0xMi0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJlbWFpbFwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBTRVNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBTaW1wbGUgRW1haWwgU2VydmljZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiU0VTXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInNpZ25pbmdOYW1lXCI6IFwic2VzXCIsXG4gICAgXCJ1aWRcIjogXCJlbWFpbC0yMDEwLTEyLTAxXCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vc2VzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTAtMTItMDEvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNsb25lUmVjZWlwdFJ1bGVTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCIsXG4gICAgICAgICAgXCJPcmlnaW5hbFJ1bGVTZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3JpZ2luYWxSdWxlU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDbG9uZVJlY2VpcHRSdWxlU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ29uZmlndXJhdGlvblNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVDb25maWd1cmF0aW9uU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCIsXG4gICAgICAgICAgXCJFdmVudERlc3RpbmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnREZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDb25maWd1cmF0aW9uU2V0VHJhY2tpbmdPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiLFxuICAgICAgICAgIFwiVHJhY2tpbmdPcHRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVHJhY2tpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVDb25maWd1cmF0aW9uU2V0VHJhY2tpbmdPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ3VzdG9tVmVyaWZpY2F0aW9uRW1haWxUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCIsXG4gICAgICAgICAgXCJGcm9tRW1haWxBZGRyZXNzXCIsXG4gICAgICAgICAgXCJUZW1wbGF0ZVN1YmplY3RcIixcbiAgICAgICAgICBcIlRlbXBsYXRlQ29udGVudFwiLFxuICAgICAgICAgIFwiU3VjY2Vzc1JlZGlyZWN0aW9uVVJMXCIsXG4gICAgICAgICAgXCJGYWlsdXJlUmVkaXJlY3Rpb25VUkxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRnJvbUVtYWlsQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlU3ViamVjdFwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlQ29udGVudFwiOiB7fSxcbiAgICAgICAgICBcIlN1Y2Nlc3NSZWRpcmVjdGlvblVSTFwiOiB7fSxcbiAgICAgICAgICBcIkZhaWx1cmVSZWRpcmVjdGlvblVSTFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlY2VpcHRGaWx0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZpbHRlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVSZWNlaXB0RmlsdGVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVjZWlwdFJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCIsXG4gICAgICAgICAgXCJSdWxlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWZ0ZXJcIjoge30sXG4gICAgICAgICAgXCJSdWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlUmVjZWlwdFJ1bGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZWNlaXB0UnVsZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlUmVjZWlwdFJ1bGVTZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVUZW1wbGF0ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNvbmZpZ3VyYXRpb25TZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUNvbmZpZ3VyYXRpb25TZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIixcbiAgICAgICAgICBcIkV2ZW50RGVzdGluYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnREZXN0aW5hdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDb25maWd1cmF0aW9uU2V0VHJhY2tpbmdPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVDb25maWd1cmF0aW9uU2V0VHJhY2tpbmdPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ3VzdG9tVmVyaWZpY2F0aW9uRW1haWxUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUlkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVJZGVudGl0eVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUlkZW50aXR5UG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlSWRlbnRpdHlQb2xpY3lSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZWNlaXB0RmlsdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWx0ZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlUmVjZWlwdEZpbHRlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJlY2VpcHRSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiLFxuICAgICAgICAgIFwiUnVsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSdWxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVSZWNlaXB0UnVsZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVJlY2VpcHRSdWxlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVSZWNlaXB0UnVsZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZVRlbXBsYXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVmVyaWZpZWRFbWFpbEFkZHJlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVtYWlsQWRkcmVzc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbWFpbEFkZHJlc3NcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFjdGl2ZVJlY2VpcHRSdWxlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFjdGl2ZVJlY2VpcHRSdWxlU2V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25TZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldEF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNvbmZpZ3VyYXRpb25TZXRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50RGVzdGluYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhY2tpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcHV0YXRpb25PcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTZW5kaW5nRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVwdXRhdGlvbk1ldHJpY3NFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYXN0RnJlc2hTdGFydFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlY2VpcHRSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiLFxuICAgICAgICAgIFwiUnVsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSdWxlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlY2VpcHRSdWxlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZWNlaXB0UnVsZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZWNlaXB0UnVsZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QWNjb3VudFNlbmRpbmdFbmFibGVkXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0QWNjb3VudFNlbmRpbmdFbmFibGVkUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q3VzdG9tVmVyaWZpY2F0aW9uRW1haWxUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRDdXN0b21WZXJpZmljYXRpb25FbWFpbFRlbXBsYXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRnJvbUVtYWlsQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlU3ViamVjdFwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlQ29udGVudFwiOiB7fSxcbiAgICAgICAgICBcIlN1Y2Nlc3NSZWRpcmVjdGlvblVSTFwiOiB7fSxcbiAgICAgICAgICBcIkZhaWx1cmVSZWRpcmVjdGlvblVSTFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldElkZW50aXR5RGtpbUF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXRpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldElkZW50aXR5RGtpbUF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGtpbUF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGtpbUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJEa2ltRW5hYmxlZFwiLFxuICAgICAgICAgICAgICAgIFwiRGtpbVZlcmlmaWNhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEa2ltRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGtpbVZlcmlmaWNhdGlvblN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRraW1Ub2tlbnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldElkZW50aXR5TWFpbEZyb21Eb21haW5BdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRJZGVudGl0eU1haWxGcm9tRG9tYWluQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNYWlsRnJvbURvbWFpbkF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFpbEZyb21Eb21haW5BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiTWFpbEZyb21Eb21haW5cIixcbiAgICAgICAgICAgICAgICBcIk1haWxGcm9tRG9tYWluU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgXCJCZWhhdmlvck9uTVhGYWlsdXJlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk1haWxGcm9tRG9tYWluXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWFpbEZyb21Eb21haW5TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCZWhhdmlvck9uTVhGYWlsdXJlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SWRlbnRpdHlOb3RpZmljYXRpb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRJZGVudGl0eU5vdGlmaWNhdGlvbkF0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOb3RpZmljYXRpb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQm91bmNlVG9waWNcIixcbiAgICAgICAgICAgICAgICBcIkNvbXBsYWludFRvcGljXCIsXG4gICAgICAgICAgICAgICAgXCJEZWxpdmVyeVRvcGljXCIsXG4gICAgICAgICAgICAgICAgXCJGb3J3YXJkaW5nRW5hYmxlZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJCb3VuY2VUb3BpY1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbXBsYWludFRvcGljXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVsaXZlcnlUb3BpY1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZvcndhcmRpbmdFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJIZWFkZXJzSW5Cb3VuY2VOb3RpZmljYXRpb25zRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSGVhZGVyc0luQ29tcGxhaW50Tm90aWZpY2F0aW9uc0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhlYWRlcnNJbkRlbGl2ZXJ5Tm90aWZpY2F0aW9uc0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldElkZW50aXR5UG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5XCIsXG4gICAgICAgICAgXCJQb2xpY3lOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0SWRlbnRpdHlQb2xpY2llc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb2xpY2llc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJZGVudGl0eVZlcmlmaWNhdGlvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXRpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldElkZW50aXR5VmVyaWZpY2F0aW9uQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWZXJpZmljYXRpb25BdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZlcmlmaWNhdGlvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJWZXJpZmljYXRpb25TdGF0dXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVmVyaWZpY2F0aW9uU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmVyaWZpY2F0aW9uVG9rZW5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTZW5kUXVvdGFcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRTZW5kUXVvdGFSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXgyNEhvdXJTZW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFNlbmRSYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlbnRMYXN0MjRIb3Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTZW5kU3RhdGlzdGljc1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFNlbmRTdGF0aXN0aWNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VuZERhdGFQb2ludHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWxpdmVyeUF0dGVtcHRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJCb3VuY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDb21wbGFpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWplY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRUZW1wbGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRUZW1wbGF0ZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q29uZmlndXJhdGlvblNldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0Q29uZmlndXJhdGlvblNldHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDdXN0b21WZXJpZmljYXRpb25FbWFpbFRlbXBsYXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdEN1c3RvbVZlcmlmaWNhdGlvbkVtYWlsVGVtcGxhdGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3VzdG9tVmVyaWZpY2F0aW9uRW1haWxUZW1wbGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRlbXBsYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZyb21FbWFpbEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUZW1wbGF0ZVN1YmplY3RcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdWNjZXNzUmVkaXJlY3Rpb25VUkxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGYWlsdXJlUmVkaXJlY3Rpb25VUkxcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SWRlbnRpdGllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVR5cGVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RJZGVudGl0aWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXRpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdElkZW50aXR5UG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RJZGVudGl0eVBvbGljaWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVjZWlwdEZpbHRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3RSZWNlaXB0RmlsdGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlY2VpcHRSdWxlU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFJlY2VpcHRSdWxlU2V0c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUZW1wbGF0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0VGVtcGxhdGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVzTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RWZXJpZmllZEVtYWlsQWRkcmVzc2VzXCI6IHtcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFZlcmlmaWVkRW1haWxBZGRyZXNzZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWZXJpZmllZEVtYWlsQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRJZGVudGl0eVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIixcbiAgICAgICAgICBcIlBvbGljeVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHV0SWRlbnRpdHlQb2xpY3lSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW9yZGVyUmVjZWlwdFJ1bGVTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCIsXG4gICAgICAgICAgXCJSdWxlTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSdWxlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlb3JkZXJSZWNlaXB0UnVsZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRCb3VuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9yaWdpbmFsTWVzc2FnZUlkXCIsXG4gICAgICAgICAgXCJCb3VuY2VTZW5kZXJcIixcbiAgICAgICAgICBcIkJvdW5jZWRSZWNpcGllbnRJbmZvTGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcmlnaW5hbE1lc3NhZ2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkJvdW5jZVNlbmRlclwiOiB7fSxcbiAgICAgICAgICBcIkV4cGxhbmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZURzblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlJlcG9ydGluZ010YVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSZXBvcnRpbmdNdGFcIjoge30sXG4gICAgICAgICAgICAgIFwiQXJyaXZhbERhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRXh0ZW5zaW9uRmllbGRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVmXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCb3VuY2VkUmVjaXBpZW50SW5mb0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJSZWNpcGllbnRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVjaXBpZW50XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVjaXBpZW50QXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQm91bmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlY2lwaWVudERzbkZpZWxkc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJGaW5hbFJlY2lwaWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUmVtb3RlTXRhXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJEaWFnbm9zdGljQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJMYXN0QXR0ZW1wdERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRXh0ZW5zaW9uRmllbGRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVmXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCb3VuY2VTZW5kZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2VuZEJvdW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRCdWxrVGVtcGxhdGVkRW1haWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZVwiLFxuICAgICAgICAgIFwiVGVtcGxhdGVcIixcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJSZXBseVRvQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5QYXRoXCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuUGF0aEFyblwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1dVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRlbXBsYXRlXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0VGVtcGxhdGVEYXRhXCI6IHt9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRGVzdGluYXRpb25cIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGVzdGluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlcGxhY2VtZW50VGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVwbGFjZW1lbnRUZW1wbGF0ZURhdGFcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2VuZEJ1bGtUZW1wbGF0ZWRFbWFpbFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRDdXN0b21WZXJpZmljYXRpb25FbWFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW1haWxBZGRyZXNzXCIsXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW1haWxBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2VuZEN1c3RvbVZlcmlmaWNhdGlvbkVtYWlsUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWVzc2FnZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VuZEVtYWlsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VcIixcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uXCIsXG4gICAgICAgICAgXCJNZXNzYWdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiU3ViamVjdFwiLFxuICAgICAgICAgICAgICBcIkJvZHlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3ViamVjdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2YlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQm9keVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiVGV4dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiSHRtbFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmJcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXBseVRvQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5QYXRoXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUmV0dXJuUGF0aEFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1dVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNlbmRFbWFpbFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNZXNzYWdlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWVzc2FnZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VuZFJhd0VtYWlsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSYXdNZXNzYWdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmF3TWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkRhdGFcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnJvbUFyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlJldHVyblBhdGhBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZW5kUmF3RW1haWxSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWVzc2FnZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRUZW1wbGF0ZWRFbWFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlXCIsXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblwiLFxuICAgICAgICAgIFwiVGVtcGxhdGVcIixcbiAgICAgICAgICBcIlRlbXBsYXRlRGF0YVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzYxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbHlUb0FkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0dXJuUGF0aFwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlJldHVyblBhdGhBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlXCI6IHt9LFxuICAgICAgICAgIFwiVGVtcGxhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZURhdGFcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2VuZFRlbXBsYXRlZEVtYWlsUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1lc3NhZ2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXNzYWdlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRBY3RpdmVSZWNlaXB0UnVsZVNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRBY3RpdmVSZWNlaXB0UnVsZVNldFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldElkZW50aXR5RGtpbUVuYWJsZWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5XCIsXG4gICAgICAgICAgXCJEa2ltRW5hYmxlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fSxcbiAgICAgICAgICBcIkRraW1FbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0SWRlbnRpdHlEa2ltRW5hYmxlZFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldElkZW50aXR5RmVlZGJhY2tGb3J3YXJkaW5nRW5hYmxlZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRlbnRpdHlcIixcbiAgICAgICAgICBcIkZvcndhcmRpbmdFbmFibGVkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5XCI6IHt9LFxuICAgICAgICAgIFwiRm9yd2FyZGluZ0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRJZGVudGl0eUZlZWRiYWNrRm9yd2FyZGluZ0VuYWJsZWRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJZGVudGl0eUhlYWRlcnNJbk5vdGlmaWNhdGlvbnNFbmFibGVkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVHlwZVwiLFxuICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2V0SWRlbnRpdHlIZWFkZXJzSW5Ob3RpZmljYXRpb25zRW5hYmxlZFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldElkZW50aXR5TWFpbEZyb21Eb21haW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkZW50aXR5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkZW50aXR5XCI6IHt9LFxuICAgICAgICAgIFwiTWFpbEZyb21Eb21haW5cIjoge30sXG4gICAgICAgICAgXCJCZWhhdmlvck9uTVhGYWlsdXJlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNldElkZW50aXR5TWFpbEZyb21Eb21haW5SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRJZGVudGl0eU5vdGlmaWNhdGlvblRvcGljXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZGVudGl0eVwiLFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZGVudGl0eVwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRJZGVudGl0eU5vdGlmaWNhdGlvblRvcGljUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0UmVjZWlwdFJ1bGVQb3NpdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIixcbiAgICAgICAgICBcIlJ1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBZnRlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRSZWNlaXB0UnVsZVBvc2l0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVzdFJlbmRlclRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIixcbiAgICAgICAgICBcIlRlbXBsYXRlRGF0YVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUZW1wbGF0ZURhdGFcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVGVzdFJlbmRlclRlbXBsYXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVuZGVyZWRUZW1wbGF0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFjY291bnRTZW5kaW5nRW5hYmxlZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIixcbiAgICAgICAgICBcIkV2ZW50RGVzdGluYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFdmVudERlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJVcGRhdGVDb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNvbmZpZ3VyYXRpb25TZXRSZXB1dGF0aW9uTWV0cmljc0VuYWJsZWRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCIsXG4gICAgICAgICAgXCJFbmFibGVkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQ29uZmlndXJhdGlvblNldFNlbmRpbmdFbmFibGVkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiLFxuICAgICAgICAgIFwiRW5hYmxlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUNvbmZpZ3VyYXRpb25TZXRUcmFja2luZ09wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25TZXROYW1lXCIsXG4gICAgICAgICAgXCJUcmFja2luZ09wdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJUcmFja2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlVwZGF0ZUNvbmZpZ3VyYXRpb25TZXRUcmFja2luZ09wdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDdXN0b21WZXJpZmljYXRpb25FbWFpbFRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRnJvbUVtYWlsQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlU3ViamVjdFwiOiB7fSxcbiAgICAgICAgICBcIlRlbXBsYXRlQ29udGVudFwiOiB7fSxcbiAgICAgICAgICBcIlN1Y2Nlc3NSZWRpcmVjdGlvblVSTFwiOiB7fSxcbiAgICAgICAgICBcIkZhaWx1cmVSZWRpcmVjdGlvblVSTFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJlY2VpcHRSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiLFxuICAgICAgICAgIFwiUnVsZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJ1bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJVcGRhdGVSZWNlaXB0UnVsZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUZW1wbGF0ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlVwZGF0ZVRlbXBsYXRlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVmVyaWZ5RG9tYWluRGtpbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJWZXJpZnlEb21haW5Ea2ltUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRraW1Ub2tlbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGtpbVRva2Vuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVmVyaWZ5RG9tYWluSWRlbnRpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiVmVyaWZ5RG9tYWluSWRlbnRpdHlSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVmVyaWZpY2F0aW9uVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmVyaWZpY2F0aW9uVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJWZXJpZnlFbWFpbEFkZHJlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVtYWlsQWRkcmVzc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbWFpbEFkZHJlc3NcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJWZXJpZnlFbWFpbElkZW50aXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbWFpbEFkZHJlc3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW1haWxBZGRyZXNzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlZlcmlmeUVtYWlsSWRlbnRpdHlSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOYW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiTWF0Y2hpbmdFdmVudFR5cGVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWF0Y2hpbmdFdmVudFR5cGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJLaW5lc2lzRmlyZWhvc2VEZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIklBTVJvbGVBUk5cIixcbiAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1BUk5cIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiSUFNUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1BUk5cIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2xvdWRXYXRjaERlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRGltZW5zaW9uQ29uZmlndXJhdGlvbnNcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRGltZW5zaW9uQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiRGltZW5zaW9uTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgXCJEaW1lbnNpb25WYWx1ZVNvdXJjZVwiLFxuICAgICAgICAgICAgICAgICAgXCJEZWZhdWx0RGltZW5zaW9uVmFsdWVcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiRGltZW5zaW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRGltZW5zaW9uVmFsdWVTb3VyY2VcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkRlZmF1bHREaW1lbnNpb25WYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJTTlNEZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlRvcGljQVJOXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlRvcGljQVJOXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDdXN0b21SZWRpcmVjdERvbWFpblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiSXBGaWx0ZXJcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJJcEZpbHRlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIlBvbGljeVwiLFxuICAgICAgICAgICAgXCJDaWRyXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlBvbGljeVwiOiB7fSxcbiAgICAgICAgICAgIFwiQ2lkclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMThcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOYW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGxzUG9saWN5XCI6IHt9LFxuICAgICAgICBcIlJlY2lwaWVudHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIkFjdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUzNBY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJCdWNrZXROYW1lXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJPYmplY3RLZXlQcmVmaXhcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkttc0tleUFyblwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJCb3VuY2VBY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJTbXRwUmVwbHlDb2RlXCIsXG4gICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIixcbiAgICAgICAgICAgICAgICAgIFwiU2VuZGVyXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJTbXRwUmVwbHlDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJTdGF0dXNDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJTZW5kZXJcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiV29ya21haWxBY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJPcmdhbml6YXRpb25Bcm5cIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgICBcIk9yZ2FuaXphdGlvbkFyblwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYW1iZGFBY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJGdW5jdGlvbkFyblwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRnVuY3Rpb25Bcm5cIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkludm9jYXRpb25UeXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0b3BBY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJTY29wZVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJTY29wZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiVG9waWNBcm5cIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQWRkSGVhZGVyQWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiSGVhZGVyTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgXCJIZWFkZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJIZWFkZXJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJIZWFkZXJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTTlNBY3Rpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJUb3BpY0FyblwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiRW5jb2RpbmdcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU2NhbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRlbXBsYXRlTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUZW1wbGF0ZU5hbWVcIjoge30sXG4gICAgICAgIFwiU3ViamVjdFBhcnRcIjoge30sXG4gICAgICAgIFwiVGV4dFBhcnRcIjoge30sXG4gICAgICAgIFwiSHRtbFBhcnRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTM2dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM1M1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNWZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNXVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRvQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzUzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDY0FkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1M1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQmNjQWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzUzXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNmJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJEYXRhXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRhdGFcIjoge30sXG4gICAgICAgIFwiQ2hhcnNldFwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RDdXN0b21WZXJpZmljYXRpb25FbWFpbFRlbXBsYXRlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiTGlzdElkZW50aXRpZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIklkZW50aXRpZXNcIlxuICAgIH0sXG4gICAgXCJMaXN0VmVyaWZpZWRFbWFpbEFkZHJlc3Nlc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWZXJpZmllZEVtYWlsQWRkcmVzc2VzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiSWRlbnRpdHlFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiAzLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJHZXRJZGVudGl0eVZlcmlmaWNhdGlvbkF0dHJpYnV0ZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiU3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJWZXJpZmljYXRpb25BdHRyaWJ1dGVzLiouVmVyaWZpY2F0aW9uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0xMC0wN1wiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJldmVudHNcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBDbG91ZFdhdGNoIEV2ZW50c1wiLFxuICAgIFwic2VydmljZUlkXCI6IFwiQ2xvdWRXYXRjaCBFdmVudHNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQVdTRXZlbnRzXCIsXG4gICAgXCJ1aWRcIjogXCJldmVudHMtMjAxNS0xMC0wN1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJEZWxldGVSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50QnVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgICAgXCJFdmVudFBhdHRlcm5cIjoge30sXG4gICAgICAgICAgXCJTY2hlZHVsZUV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UnVsZU5hbWVzQnlUYXJnZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRBcm5cIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSdWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjaGVkdWxlRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJvbGVBcm5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFyZ2V0c0J5UnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0RXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbnRyaWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVudHJpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRldGFpbFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXRhaWxcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGYWlsZWRFbnRyeUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbnRyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFdmVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXJyb3JNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UGVybWlzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgXCJQcmluY2lwYWxcIixcbiAgICAgICAgICBcIlN0YXRlbWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByaW5jaXBhbFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRlbWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0VGFyZ2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVwiLFxuICAgICAgICAgIFwiVGFyZ2V0c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGYWlsZWRFbnRyeUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWlsZWRFbnRyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUYXJnZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVycm9yTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVBlcm1pc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YXRlbWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXRlbWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFyZ2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVwiLFxuICAgICAgICAgIFwiSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVcIjoge30sXG4gICAgICAgICAgXCJJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmFpbGVkRW50cnlDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFpbGVkRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGFyZ2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvck1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUZXN0RXZlbnRQYXR0ZXJuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFdmVudFBhdHRlcm5cIixcbiAgICAgICAgICBcIkV2ZW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50UGF0dGVyblwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzdWx0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgIFwiQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIklucHV0XCI6IHt9LFxuICAgICAgICAgIFwiSW5wdXRQYXRoXCI6IHt9LFxuICAgICAgICAgIFwiSW5wdXRUcmFuc2Zvcm1lclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIklucHV0VGVtcGxhdGVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSW5wdXRQYXRoc01hcFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIklucHV0VGVtcGxhdGVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2luZXNpc1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJQYXJ0aXRpb25LZXlQYXRoXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlBhcnRpdGlvbktleVBhdGhcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUnVuQ29tbWFuZFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJSdW5Db21tYW5kVGFyZ2V0c1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSdW5Db21tYW5kVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVjc1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJUYXNrRGVmaW5pdGlvbkFyblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJUYXNrRGVmaW5pdGlvbkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXNrQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJhdGNoUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkpvYkRlZmluaXRpb25cIixcbiAgICAgICAgICAgICAgXCJKb2JOYW1lXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkpvYkRlZmluaXRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiSm9iTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBcnJheVByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmV0cnlTdHJhdGVneVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiQXR0ZW1wdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3FzUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTWVzc2FnZUdyb3VwSWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE1LTA4LTA0XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImZpcmVob3NlXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiRmlyZWhvc2VcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBLaW5lc2lzIEZpcmVob3NlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJGaXJlaG9zZVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJGaXJlaG9zZV8yMDE1MDgwNFwiLFxuICAgIFwidWlkXCI6IFwiZmlyZWhvc2UtMjAxNS0wOC0wNFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVEZWxpdmVyeVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIktpbmVzaXNTdHJlYW1Tb3VyY2VDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiS2luZXNpc1N0cmVhbUFSTlwiLFxuICAgICAgICAgICAgICBcIlJvbGVBUk5cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2luZXNpc1N0cmVhbUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlMzRGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiLFxuICAgICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXh0ZW5kZWRTM0Rlc3RpbmF0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlJvbGVBUk5cIixcbiAgICAgICAgICAgICAgXCJCdWNrZXRBUk5cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJCdWNrZXRBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICBcIkJ1ZmZlcmluZ0hpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbXByZXNzaW9uRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUzNCYWNrdXBDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRhdGFGb3JtYXRDb252ZXJzaW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWRzaGlmdERlc3RpbmF0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlJvbGVBUk5cIixcbiAgICAgICAgICAgICAgXCJDbHVzdGVySkRCQ1VSTFwiLFxuICAgICAgICAgICAgICBcIkNvcHlDb21tYW5kXCIsXG4gICAgICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICAgICAgXCJQYXNzd29yZFwiLFxuICAgICAgICAgICAgICBcIlMzQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNsdXN0ZXJKREJDVVJMXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNvcHlDb21tYW5kXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGFzc3dvcmRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJldHJ5T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb2Nlc3NpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzQmFja3VwTW9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTM0JhY2t1cENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVsYXN0aWNzZWFyY2hEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJSb2xlQVJOXCIsXG4gICAgICAgICAgICAgIFwiRG9tYWluQVJOXCIsXG4gICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCIsXG4gICAgICAgICAgICAgIFwiVHlwZU5hbWVcIixcbiAgICAgICAgICAgICAgXCJTM0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEb21haW5BUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluZGV4Um90YXRpb25QZXJpb2RcIjoge30sXG4gICAgICAgICAgICAgIFwiQnVmZmVyaW5nSGludHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJldHJ5T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNCYWNrdXBNb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlMzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3BsdW5rRGVzdGluYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiSEVDRW5kcG9pbnRcIixcbiAgICAgICAgICAgICAgXCJIRUNFbmRwb2ludFR5cGVcIixcbiAgICAgICAgICAgICAgXCJIRUNUb2tlblwiLFxuICAgICAgICAgICAgICBcIlMzQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJIRUNFbmRwb2ludFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJIRUNFbmRwb2ludFR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiSEVDVG9rZW5cIjoge30sXG4gICAgICAgICAgICAgIFwiSEVDQWNrbm93bGVkZ21lbnRUaW1lb3V0SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXRyeU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzQmFja3VwTW9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTM0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJvY2Vzc2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRGVsaXZlcnlTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURlbGl2ZXJ5U3RyZWFtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4Y2x1c2l2ZVN0YXJ0RGVzdGluYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbURlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIixcbiAgICAgICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbUFSTlwiLFxuICAgICAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtU3RhdHVzXCIsXG4gICAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1UeXBlXCIsXG4gICAgICAgICAgICAgIFwiVmVyc2lvbklkXCIsXG4gICAgICAgICAgICAgIFwiRGVzdGluYXRpb25zXCIsXG4gICAgICAgICAgICAgIFwiSGFzTW9yZURlc3RpbmF0aW9uc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1BUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDcmVhdGVUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTGFzdFVwZGF0ZVRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTb3VyY2VcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIktpbmVzaXNTdHJlYW1Tb3VyY2VEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiS2luZXNpc1N0cmVhbUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJEZWxpdmVyeVN0YXJ0VGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiRGVzdGluYXRpb25JZFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJEZXN0aW5hdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlMzRGVzdGluYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRXh0ZW5kZWRTM0Rlc3RpbmF0aW9uRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJSb2xlQVJOXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkJ1Y2tldEFSTlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJCdWZmZXJpbmdIaW50c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJDb21wcmVzc2lvbkZvcm1hdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJCdWNrZXRBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQnVmZmVyaW5nSGludHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29tcHJlc3Npb25Gb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlMzQmFja3VwRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkRhdGFGb3JtYXRDb252ZXJzaW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlJlZHNoaWZ0RGVzdGluYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJvbGVBUk5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2x1c3RlckpEQkNVUkxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29weUNvbW1hbmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiVXNlcm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUzNEZXN0aW5hdGlvbkRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNsdXN0ZXJKREJDVVJMXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJDb3B5Q29tbWFuZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiVXNlcm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlJldHJ5T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUzNEZXN0aW5hdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlMzQmFja3VwRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkVsYXN0aWNzZWFyY2hEZXN0aW5hdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJEb21haW5BUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkluZGV4Um90YXRpb25QZXJpb2RcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkJ1ZmZlcmluZ0hpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJSZXRyeU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlMzQmFja3VwTW9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUzNEZXN0aW5hdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTcGx1bmtEZXN0aW5hdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJIRUNFbmRwb2ludFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSEVDRW5kcG9pbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJIRUNUb2tlblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiSEVDQWNrbm93bGVkZ21lbnRUaW1lb3V0SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJSZXRyeU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlMzQmFja3VwTW9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiUzNEZXN0aW5hdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJIYXNNb3JlRGVzdGluYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RGVsaXZlcnlTdHJlYW1zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydERlbGl2ZXJ5U3RyZWFtTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVzXCIsXG4gICAgICAgICAgXCJIYXNNb3JlRGVsaXZlcnlTdHJlYW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGFzTW9yZURlbGl2ZXJ5U3RyZWFtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JEZWxpdmVyeVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkV4Y2x1c2l2ZVN0YXJ0VGFnS2V5XCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdzXCIsXG4gICAgICAgICAgXCJIYXNNb3JlVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzYVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhhc01vcmVUYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRSZWNvcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiUmVjb3JkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlY29yZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlY29yZElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UmVjb3JkQmF0Y2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiUmVjb3Jkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGYWlsZWRQdXRDb3VudFwiLFxuICAgICAgICAgIFwiUmVxdWVzdFJlc3BvbnNlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGYWlsZWRQdXRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFJlc3BvbnNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVjb3JkSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvck1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdEZWxpdmVyeVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdEZWxpdmVyeVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsaXZlcnlTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGVzdGluYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiQ3VycmVudERlbGl2ZXJ5U3RyZWFtVmVyc2lvbklkXCIsXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGl2ZXJ5U3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkN1cnJlbnREZWxpdmVyeVN0cmVhbVZlcnNpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJTM0Rlc3RpbmF0aW9uVXBkYXRlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIixcbiAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4dGVuZGVkUzNEZXN0aW5hdGlvblVwZGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJCdWNrZXRBUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICBcIkJ1ZmZlcmluZ0hpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbXByZXNzaW9uRm9ybWF0XCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQcm9jZXNzaW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUzNCYWNrdXBVcGRhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRhdGFGb3JtYXRDb252ZXJzaW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWRzaGlmdERlc3RpbmF0aW9uVXBkYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNsdXN0ZXJKREJDVVJMXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNvcHlDb21tYW5kXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJVc2VybmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGFzc3dvcmRcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJldHJ5T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNVcGRhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb2Nlc3NpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlMzQmFja3VwTW9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTM0JhY2t1cFVwZGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVsYXN0aWNzZWFyY2hEZXN0aW5hdGlvblVwZGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEb21haW5BUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiSW5kZXhOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluZGV4Um90YXRpb25QZXJpb2RcIjoge30sXG4gICAgICAgICAgICAgIFwiQnVmZmVyaW5nSGludHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJldHJ5T3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNVcGRhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb2Nlc3NpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTcGx1bmtEZXN0aW5hdGlvblVwZGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSEVDRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiSEVDRW5kcG9pbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkhFQ1Rva2VuXCI6IHt9LFxuICAgICAgICAgICAgICBcIkhFQ0Fja25vd2xlZGdtZW50VGltZW91dEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmV0cnlPcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJjXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM0JhY2t1cE1vZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUzNVcGRhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3ZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlByb2Nlc3NpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSb2xlQVJOXCIsXG4gICAgICAgIFwiQnVja2V0QVJOXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgIFwiQnVja2V0QVJOXCI6IHt9LFxuICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJCdWZmZXJpbmdIaW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wcmVzc2lvbkZvcm1hdFwiOiB7fSxcbiAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNpemVJbk1Cc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW50ZXJ2YWxJblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOb0VuY3J5cHRpb25Db25maWdcIjoge30sXG4gICAgICAgIFwiS01TRW5jcnlwdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcIkFXU0tNU0tleUFSTlwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBV1NLTVNLZXlBUk5cIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJMb2dTdHJlYW1OYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9jZXNzb3JzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIlBhcmFtZXRlclZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNjaGVtYUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICBcIkNhdGFsb2dJZFwiOiB7fSxcbiAgICAgICAgICAgIFwiRGF0YWJhc2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklucHV0Rm9ybWF0Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRGVzZXJpYWxpemVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcGVuWEpzb25TZXJEZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udmVydERvdHNJbkpzb25LZXlzVG9VbmRlcnNjb3Jlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ2FzZUluc2Vuc2l0aXZlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb2x1bW5Ub0pzb25LZXlNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkhpdmVKc29uU2VyRGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcEZvcm1hdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk91dHB1dEZvcm1hdENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlNlcmlhbGl6ZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBhcnF1ZXRTZXJEZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQmxvY2tTaXplQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlBhZ2VTaXplQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkNvbXByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkVuYWJsZURpY3Rpb25hcnlDb21wcmVzc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTWF4UGFkZGluZ0J5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJXcml0ZXJWZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9yY1NlckRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdHJpcGVTaXplQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkJsb2NrU2l6ZUJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJSb3dJbmRleFN0cmlkZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRW5hYmxlUGFkZGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUGFkZGluZ1RvbGVyYW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21wcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJCbG9vbUZpbHRlckNvbHVtbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkJsb29tRmlsdGVyRmFsc2VQb3NpdGl2ZVByb2JhYmlsaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkRpY3Rpb25hcnlLZXlUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiRm9ybWF0VmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJEYXRhVGFibGVOYW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRhdGFUYWJsZU5hbWVcIjoge30sXG4gICAgICAgIFwiRGF0YVRhYmxlQ29sdW1uc1wiOiB7fSxcbiAgICAgICAgXCJDb3B5T3B0aW9uc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzF0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJbnRlcnZhbEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2l6ZUluTUJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkR1cmF0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkR1cmF0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMndcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSb2xlQVJOXCIsXG4gICAgICAgIFwiQnVja2V0QVJOXCIsXG4gICAgICAgIFwiQnVmZmVyaW5nSGludHNcIixcbiAgICAgICAgXCJDb21wcmVzc2lvbkZvcm1hdFwiLFxuICAgICAgICBcIkVuY3J5cHRpb25Db25maWd1cmF0aW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgIFwiQnVja2V0QVJOXCI6IHt9LFxuICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJCdWZmZXJpbmdIaW50c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wcmVzc2lvbkZvcm1hdFwiOiB7fSxcbiAgICAgICAgXCJFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbG91ZFdhdGNoTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiS2V5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJEYXRhXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRhdGFcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUm9sZUFSTlwiOiB7fSxcbiAgICAgICAgXCJCdWNrZXRBUk5cIjoge30sXG4gICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICBcIkJ1ZmZlcmluZ0hpbnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXByZXNzaW9uRm9ybWF0XCI6IHt9LFxuICAgICAgICBcIkVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNsb3VkV2F0Y2hMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMTAtMDFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiZ2FtZWxpZnRcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBHYW1lTGlmdFwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJHYW1lTGlmdFwiLFxuICAgIFwidWlkXCI6IFwiZ2FtZWxpZnQtMjAxNS0xMC0wMVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBY2NlcHRNYXRjaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGlja2V0SWRcIixcbiAgICAgICAgICBcIlBsYXllcklkc1wiLFxuICAgICAgICAgIFwiQWNjZXB0YW5jZVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGlja2V0SWRcIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXB0YW5jZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBbGlhc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiUm91dGluZ1N0cmF0ZWd5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJvdXRpbmdTdHJhdGVneVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVCdWlsZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlN0b3JhZ2VMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWlsZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGxvYWRDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRmxlZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkJ1aWxkSWRcIixcbiAgICAgICAgICBcIkVDMkluc3RhbmNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJCdWlsZElkXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmVyTGF1bmNoUGF0aFwiOiB7fSxcbiAgICAgICAgICBcIlNlcnZlckxhdW5jaFBhcmFtZXRlcnNcIjoge30sXG4gICAgICAgICAgXCJMb2dQYXRoc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFQzJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFQzJJbmJvdW5kUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV3R2FtZVNlc3Npb25Qcm90ZWN0aW9uUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiUnVudGltZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWV0cmljR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZWVyVnBjQXdzQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgIFwiUGVlclZwY0lkXCI6IHt9LFxuICAgICAgICAgIFwiRmxlZXRUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVHYW1lU2Vzc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWF4aW11bVBsYXllclNlc3Npb25Db3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiQWxpYXNJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heGltdW1QbGF5ZXJTZXNzaW9uQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJHYW1lUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3JlYXRvcklkXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25JZFwiOiB7fSxcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbkRhdGFcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlR2FtZVNlc3Npb25RdWV1ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGltZW91dEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGxheWVyTGF0ZW5jeVBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uUXVldWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU1hdGNobWFraW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25RdWV1ZUFybnNcIixcbiAgICAgICAgICBcIlJlcXVlc3RUaW1lb3V0U2Vjb25kc1wiLFxuICAgICAgICAgIFwiQWNjZXB0YW5jZVJlcXVpcmVkXCIsXG4gICAgICAgICAgXCJSdWxlU2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvblF1ZXVlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NlcHRhbmNlVGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2VwdGFuY2VSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25UYXJnZXRcIjoge30sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsUGxheWVyQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbUV2ZW50RGF0YVwiOiB7fSxcbiAgICAgICAgICBcIkdhbWVQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbkRhdGFcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVNYXRjaG1ha2luZ1J1bGVTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlJ1bGVTZXRCb2R5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJSdWxlU2V0Qm9keVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBsYXllclNlc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIixcbiAgICAgICAgICBcIlBsYXllcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlBsYXllckRhdGFcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF5ZXJTZXNzaW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQbGF5ZXJTZXNzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25JZFwiLFxuICAgICAgICAgIFwiUGxheWVySWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGxheWVyRGF0YU1hcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF5ZXJTZXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVnBjUGVlcmluZ0F1dGhvcml6YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhbWVMaWZ0QXdzQWNjb3VudElkXCIsXG4gICAgICAgICAgXCJQZWVyVnBjSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZUxpZnRBd3NBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgXCJQZWVyVnBjSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNQZWVyaW5nQXV0aG9yaXphdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVnBjUGVlcmluZ0Nvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIixcbiAgICAgICAgICBcIlBlZXJWcGNBd3NBY2NvdW50SWRcIixcbiAgICAgICAgICBcIlBlZXJWcGNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiUGVlclZwY0F3c0FjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICBcIlBlZXJWcGNJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFsaWFzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGlhc0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsaWFzSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCdWlsZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVpbGRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWlsZElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRmxlZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUdhbWVTZXNzaW9uUXVldWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU1hdGNobWFraW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU2NhbGluZ1BvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiRmxlZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZwY1BlZXJpbmdBdXRob3JpemF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYW1lTGlmdEF3c0FjY291bnRJZFwiLFxuICAgICAgICAgIFwiUGVlclZwY0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVMaWZ0QXdzQWNjb3VudElkXCI6IHt9LFxuICAgICAgICAgIFwiUGVlclZwY0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVnBjUGVlcmluZ0Nvbm5lY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIixcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFsaWFzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGlhc0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsaWFzSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUJ1aWxkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWlsZElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1aWxkSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWlsZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVDMkluc3RhbmNlTGltaXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVDMkluc3RhbmNlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVDMkluc3RhbmNlTGltaXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFQzJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDdXJyZW50SW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUxpbWl0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZsZWV0QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZsZWV0Q2FwYWNpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldENhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VDb3VudHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkRFU0lSRURcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1JTklNVU1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk1BWElNVU1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlBFTkRJTkdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkFDVElWRVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiSURMRVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiVEVSTUlOQVRJTkdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRmxlZXRFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkV2ZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcmVTaWduZWRMb2dVcmxcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZsZWV0UG9ydFNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbmJvdW5kUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVGbGVldFV0aWxpemF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRVdGlsaXphdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFjdGl2ZVNlcnZlclByb2Nlc3NDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWN0aXZlR2FtZVNlc3Npb25Db3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVudFBsYXllclNlc3Npb25Db3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4aW11bVBsYXllclNlc3Npb25Db3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVHYW1lU2Vzc2lvbkRldGFpbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJBbGlhc0lkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzRmlsdGVyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiR2FtZVNlc3Npb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlByb3RlY3Rpb25Qb2xpY3lcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUdhbWVTZXNzaW9uUGxhY2VtZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGFjZW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGFjZW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUdhbWVTZXNzaW9uUXVldWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvblF1ZXVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUdhbWVTZXNzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkFsaWFzSWRcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNGaWx0ZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1hdGNobWFraW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUaWNrZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGlja2V0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUaWNrZXRMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWF0Y2htYWtpbmdDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUnVsZVNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNYXRjaG1ha2luZ1J1bGVTZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZVNldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZVNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQbGF5ZXJTZXNzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVySWRcIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJTZXNzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJTZXNzaW9uU3RhdHVzRmlsdGVyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXllclNlc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJ1bnRpbWVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdW50aW1lQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTY2FsaW5nUG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c0ZpbHRlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTY2FsaW5nUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNjYWxpbmdBZGp1c3RtZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFdmFsdWF0aW9uUGVyaW9kc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvbGljeVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZwY1BlZXJpbmdBdXRob3JpemF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNQZWVyaW5nQXV0aG9yaXphdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWcGNQZWVyaW5nQ29ubmVjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY1BlZXJpbmdDb25uZWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklwVjRDaWRyQmxvY2tcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWcGNQZWVyaW5nQ29ubmVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVlclZwY0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR2FtZUxpZnRWcGNJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEdhbWVTZXNzaW9uTG9nVXJsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmVTaWduZWRVcmxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnN0YW5jZUFjY2Vzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlQWNjZXNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiVXNlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIlNlY3JldFwiOiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBbGlhc2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJvdXRpbmdTdHJhdGVneVR5cGVcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QnVpbGRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWlsZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RmxlZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1aWxkSWRcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFNjYWxpbmdQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkZsZWV0SWRcIixcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJTY2FsaW5nQWRqdXN0bWVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NhbGluZ0FkanVzdG1lbnRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIkV2YWx1YXRpb25QZXJpb2RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1dFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXF1ZXN0VXBsb2FkQ3JlZGVudGlhbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1aWxkSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVpbGRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVwbG9hZENyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VMb2NhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNvbHZlQWxpYXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFsaWFzSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxpYXNJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWFyY2hHYW1lU2Vzc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkFsaWFzSWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiU29ydEV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydEZsZWV0QWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiLFxuICAgICAgICAgIFwiQWN0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRHYW1lU2Vzc2lvblBsYWNlbWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhY2VtZW50SWRcIixcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uUXVldWVOYW1lXCIsXG4gICAgICAgICAgXCJNYXhpbXVtUGxheWVyU2Vzc2lvbkNvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYWNlbWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25RdWV1ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJHYW1lUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4aW11bVBsYXllclNlc3Npb25Db3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVyTGF0ZW5jaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNpcmVkUGxheWVyU2Vzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBsYXllcklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGxheWVyRGF0YVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uRGF0YVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uUGxhY2VtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydE1hdGNoQmFja2ZpbGxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25OYW1lXCIsXG4gICAgICAgICAgXCJHYW1lU2Vzc2lvbkFyblwiLFxuICAgICAgICAgIFwiUGxheWVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUaWNrZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXRjaG1ha2luZ1RpY2tldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRNYXRjaG1ha2luZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlBsYXllcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGlja2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYXllcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0d1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hdGNobWFraW5nVGlja2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wRmxlZXRBY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCIsXG4gICAgICAgICAgXCJBY3Rpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wR2FtZVNlc3Npb25QbGFjZW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYWNlbWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYWNlbWVudElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25QbGFjZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BNYXRjaG1ha2luZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGlja2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGlja2V0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVBbGlhc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxpYXNJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc0lkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUm91dGluZ1N0cmF0ZWd5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsaWFzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUJ1aWxkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWlsZElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1aWxkSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1aWxkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUZsZWV0QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmxlZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiTmV3R2FtZVNlc3Npb25Qcm90ZWN0aW9uUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXRyaWNHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVGbGVldENhcGFjaXR5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGbGVldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJEZXNpcmVkSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5TaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRmxlZXRQb3J0U2V0dGluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkluYm91bmRQZXJtaXNzaW9uQXV0aG9yaXphdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5ib3VuZFBlcm1pc3Npb25SZXZvY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGbGVldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlR2FtZVNlc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25JZFwiOiB7fSxcbiAgICAgICAgICBcIk1heGltdW1QbGF5ZXJTZXNzaW9uQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGF5ZXJTZXNzaW9uQ3JlYXRpb25Qb2xpY3lcIjoge30sXG4gICAgICAgICAgXCJQcm90ZWN0aW9uUG9saWN5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2FtZVNlc3Npb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUdhbWVTZXNzaW9uUXVldWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRpbWVvdXRJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBsYXllckxhdGVuY3lQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzdGluYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYW1lU2Vzc2lvblF1ZXVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNYXRjaG1ha2luZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25RdWV1ZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RUaW1lb3V0U2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXB0YW5jZVRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NlcHRhbmNlUmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bGVTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uVGFyZ2V0XCI6IHt9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbFBsYXllckNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21FdmVudERhdGFcIjoge30sXG4gICAgICAgICAgXCJHYW1lUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2FtZVNlc3Npb25EYXRhXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUnVudGltZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZsZWV0SWRcIixcbiAgICAgICAgICBcIlJ1bnRpbWVDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgICAgXCJSdW50aW1lQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVudGltZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlZhbGlkYXRlTWF0Y2htYWtpbmdSdWxlU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlU2V0Qm9keVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlU2V0Qm9keVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZhbGlkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBbGlhc0lkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiQWxpYXNBcm5cIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiUm91dGluZ1N0cmF0ZWd5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0VXBkYXRlZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiUm9sZUFyblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQnVpbGRJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlZlcnNpb25cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlNpemVPbkRpc2tcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFjY2Vzc0tleUlkXCI6IHt9LFxuICAgICAgICBcIlNlY3JldEFjY2Vzc0tleVwiOiB7fSxcbiAgICAgICAgXCJTZXNzaW9uVG9rZW5cIjoge31cbiAgICAgIH0sXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnJvbVBvcnRcIixcbiAgICAgICAgICBcIlRvUG9ydFwiLFxuICAgICAgICAgIFwiSXBSYW5nZVwiLFxuICAgICAgICAgIFwiUHJvdG9jb2xcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnJvbVBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXBSYW5nZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTZXJ2ZXJQcm9jZXNzZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkxhdW5jaFBhdGhcIixcbiAgICAgICAgICAgICAgXCJDb25jdXJyZW50RXhlY3V0aW9uc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJMYXVuY2hQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ29uY3VycmVudEV4ZWN1dGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk1heENvbmN1cnJlbnRHYW1lU2Vzc2lvbkFjdGl2YXRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvbkFjdGl2YXRpb25UaW1lb3V0U2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOZXdHYW1lU2Vzc2lvbnNQZXJDcmVhdG9yXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQb2xpY3lQZXJpb2RJbk1pbnV0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgIFwiRmxlZXRBcm5cIjoge30sXG4gICAgICAgIFwiRmxlZXRUeXBlXCI6IHt9LFxuICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUZXJtaW5hdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkJ1aWxkSWRcIjoge30sXG4gICAgICAgIFwiU2VydmVyTGF1bmNoUGF0aFwiOiB7fSxcbiAgICAgICAgXCJTZXJ2ZXJMYXVuY2hQYXJhbWV0ZXJzXCI6IHt9LFxuICAgICAgICBcIkxvZ1BhdGhzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5ld0dhbWVTZXNzaW9uUHJvdGVjdGlvblBvbGljeVwiOiB7fSxcbiAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge30sXG4gICAgICAgIFwiUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNZXRyaWNHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMThcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0b3BwZWRBY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiR2FtZVNlc3Npb25JZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkZsZWV0SWRcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRlcm1pbmF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDdXJyZW50UGxheWVyU2Vzc2lvbkNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXhpbXVtUGxheWVyU2Vzc2lvbkNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3RhdHVzUmVhc29uXCI6IHt9LFxuICAgICAgICBcIkdhbWVQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJcEFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGxheWVyU2Vzc2lvbkNyZWF0aW9uUG9saWN5XCI6IHt9LFxuICAgICAgICBcIkNyZWF0b3JJZFwiOiB7fSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvbkRhdGFcIjoge30sXG4gICAgICAgIFwiTWF0Y2htYWtlckRhdGFcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXhpbXVtSW5kaXZpZHVhbFBsYXllckxhdGVuY3lNaWxsaXNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvbGljeUR1cmF0aW9uU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXN0aW5hdGlvbkFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvblF1ZXVlQXJuXCI6IHt9LFxuICAgICAgICBcIlRpbWVvdXRJblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBsYXllckxhdGVuY3lQb2xpY2llc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVzdGluYXRpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzJhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkdhbWVTZXNzaW9uUXVldWVBcm5zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzIzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXF1ZXN0VGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFjY2VwdGFuY2VUaW1lb3V0U2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWNjZXB0YW5jZVJlcXVpcmVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSdWxlU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJOb3RpZmljYXRpb25UYXJnZXRcIjoge30sXG4gICAgICAgIFwiQWRkaXRpb25hbFBsYXllckNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDdXN0b21FdmVudERhdGFcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkdhbWVQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvbkRhdGFcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUnVsZVNldEJvZHlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUnVsZVNldE5hbWVcIjoge30sXG4gICAgICAgIFwiUnVsZVNldEJvZHlcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUGxheWVyU2Vzc2lvbklkXCI6IHt9LFxuICAgICAgICBcIlBsYXllcklkXCI6IHt9LFxuICAgICAgICBcIkdhbWVTZXNzaW9uSWRcIjoge30sXG4gICAgICAgIFwiRmxlZXRJZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGVybWluYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJJcEFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGxheWVyRGF0YVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJHYW1lTGlmdEF3c0FjY291bnRJZFwiOiB7fSxcbiAgICAgICAgXCJQZWVyVnBjQXdzQWNjb3VudElkXCI6IHt9LFxuICAgICAgICBcIlBlZXJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXhwaXJhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM0NVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUGxhY2VtZW50SWRcIjoge30sXG4gICAgICAgIFwiR2FtZVNlc3Npb25RdWV1ZU5hbWVcIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkdhbWVQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXhpbXVtUGxheWVyU2Vzc2lvbkNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvbk5hbWVcIjoge30sXG4gICAgICAgIFwiR2FtZVNlc3Npb25JZFwiOiB7fSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvbkFyblwiOiB7fSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvblJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJQbGF5ZXJMYXRlbmNpZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNDdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIklwQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQbGFjZWRQbGF5ZXJTZXNzaW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQbGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQbGF5ZXJTZXNzaW9uSWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiR2FtZVNlc3Npb25EYXRhXCI6IHt9LFxuICAgICAgICBcIk1hdGNobWFrZXJEYXRhXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0N1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxheWVySWRcIjoge30sXG4gICAgICAgICAgXCJSZWdpb25JZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTGF0ZW5jeUluTWlsbGlzZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0cVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNHRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRpY2tldElkXCI6IHt9LFxuICAgICAgICBcIkNvbmZpZ3VyYXRpb25OYW1lXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNSZWFzb25cIjoge30sXG4gICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQbGF5ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzR3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJHYW1lU2Vzc2lvbkNvbm5lY3Rpb25JbmZvXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJHYW1lU2Vzc2lvbkFyblwiOiB7fSxcbiAgICAgICAgICAgIFwiSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNYXRjaGVkUGxheWVyU2Vzc2lvbnNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJQbGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiUGxheWVyU2Vzc2lvbklkXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkVzdGltYXRlZFdhaXRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXllcklkXCI6IHt9LFxuICAgICAgICAgIFwiUGxheWVyQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU0xcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU0RNXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVhbVwiOiB7fSxcbiAgICAgICAgICBcIkxhdGVuY3lJbk1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1dFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRhcmdldFZhbHVlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhcmdldFZhbHVlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNi0wMi0xNlwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJpbnNwZWN0b3JcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBJbnNwZWN0b3JcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiSW5zcGVjdG9yU2VydmljZVwiLFxuICAgIFwidWlkXCI6IFwiaW5zcGVjdG9yLTIwMTYtMDItMTZcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkQXR0cmlidXRlc1RvRmluZGluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImZpbmRpbmdBcm5zXCIsXG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZpbmRpbmdBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFzc2Vzc21lbnRUYXJnZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmVzb3VyY2VHcm91cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBc3Nlc3NtZW50VGVtcGxhdGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5cIixcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZU5hbWVcIixcbiAgICAgICAgICBcImR1cmF0aW9uSW5TZWNvbmRzXCIsXG4gICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5cIjoge30sXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZHVyYXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJ1bGVzUGFja2FnZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXNlckF0dHJpYnV0ZXNGb3JGaW5kaW5nc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUV4Y2x1c2lvbnNQcmV2aWV3XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByZXZpZXdUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcmV2aWV3VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXNvdXJjZUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUdyb3VwVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUdyb3VwVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VHcm91cEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUdyb3VwQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXNzZXNzbWVudFJ1blwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXNzZXNzbWVudFRhcmdldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQXNzZXNzbWVudFRlbXBsYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBc3Nlc3NtZW50UnVuc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5zXCIsXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImFyblwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCIsXG4gICAgICAgICAgICAgICAgXCJzdGF0ZVwiLFxuICAgICAgICAgICAgICAgIFwiZHVyYXRpb25JblNlY29uZHNcIixcbiAgICAgICAgICAgICAgICBcInJ1bGVzUGFja2FnZUFybnNcIixcbiAgICAgICAgICAgICAgICBcInVzZXJBdHRyaWJ1dGVzRm9yRmluZGluZ3NcIixcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiLFxuICAgICAgICAgICAgICAgIFwic3RhdGVDaGFuZ2VkQXRcIixcbiAgICAgICAgICAgICAgICBcImRhdGFDb2xsZWN0ZWRcIixcbiAgICAgICAgICAgICAgICBcInN0YXRlQ2hhbmdlc1wiLFxuICAgICAgICAgICAgICAgIFwibm90aWZpY2F0aW9uc1wiLFxuICAgICAgICAgICAgICAgIFwiZmluZGluZ0NvdW50c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJkdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ1c2VyQXR0cmlidXRlc0ZvckZpbmRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzdGFydGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY29tcGxldGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic3RhdGVDaGFuZ2VkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZGF0YUNvbGxlY3RlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic3RhdGVDaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwic3RhdGVDaGFuZ2VkQXRcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInN0YXRlQ2hhbmdlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcInN0YXRlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibm90aWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcImRhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcImV2ZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJlcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcImV2ZW50XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcImVycm9yXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJzbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInNuc1B1Ymxpc2hTdGF0dXNDb2RlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZmluZGluZ0NvdW50c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFzc2Vzc21lbnRUYXJnZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldHNcIixcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiYXJuXCIsXG4gICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIixcbiAgICAgICAgICAgICAgICBcInVwZGF0ZWRBdFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzb3VyY2VHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ1cGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbGVkSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBc3Nlc3NtZW50VGVtcGxhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZXNcIixcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJhcm5cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXRBcm5cIixcbiAgICAgICAgICAgICAgICBcImR1cmF0aW9uSW5TZWNvbmRzXCIsXG4gICAgICAgICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCIsXG4gICAgICAgICAgICAgICAgXCJ1c2VyQXR0cmlidXRlc0ZvckZpbmRpbmdzXCIsXG4gICAgICAgICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQ291bnRcIixcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImR1cmF0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInVzZXJBdHRyaWJ1dGVzRm9yRmluZGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibGFzdEFzc2Vzc21lbnRSdW5Bcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNyb3NzQWNjb3VudEFjY2Vzc1JvbGVcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgICAgXCJ2YWxpZFwiLFxuICAgICAgICAgIFwicmVnaXN0ZXJlZEF0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJ2YWxpZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVnaXN0ZXJlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXhjbHVzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZXhjbHVzaW9uQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJleGNsdXNpb25Bcm5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxvY2FsZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJleGNsdXNpb25zXCIsXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJleGNsdXNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiYXJuXCIsXG4gICAgICAgICAgICAgICAgXCJ0aXRsZVwiLFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICBcInJlY29tbWVuZGF0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJzY29wZXNcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGl0bGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlY29tbWVuZGF0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic2NvcGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXhcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZpbmRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJmaW5kaW5nQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmaW5kaW5nQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2NhbGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZmluZGluZ3NcIixcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZpbmRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiYXJuXCIsXG4gICAgICAgICAgICAgICAgXCJhdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgICAgICAgXCJ1c2VyQXR0cmlidXRlc1wiLFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCIsXG4gICAgICAgICAgICAgICAgXCJ1cGRhdGVkQXRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic2NoZW1hVmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2VydmljZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInNlcnZpY2VBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwic2NoZW1hVmVyc2lvblwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzY2hlbWFWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInJ1bGVzUGFja2FnZUFyblwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhc3NldFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhc3NldEF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJzY2hlbWFWZXJzaW9uXCJcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNjaGVtYVZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImFnZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiYXV0b1NjYWxpbmdHcm91cFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJhbWlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJob3N0bmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJpcHY0QWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRpdGxlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZWNvbW1lbmRhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInNldmVyaXR5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibnVtZXJpY1NldmVyaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImluZGljYXRvck9mQ29tcHJvbWlzZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidXNlckF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsZWRJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc291cmNlR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJyZXNvdXJjZUdyb3VwQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUdyb3VwQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VHcm91cHNcIixcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiYXJuXCIsXG4gICAgICAgICAgICAgICAgXCJ0YWdzXCIsXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmFpbGVkSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSdWxlc1BhY2thZ2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVzUGFja2FnZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9jYWxlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJ1bGVzUGFja2FnZXNcIixcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVzUGFja2FnZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJhcm5cIixcbiAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICBcInZlcnNpb25cIixcbiAgICAgICAgICAgICAgICBcInByb3ZpZGVyXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicHJvdmlkZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEFzc2Vzc21lbnRSZXBvcnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIixcbiAgICAgICAgICBcInJlcG9ydEZpbGVGb3JtYXRcIixcbiAgICAgICAgICBcInJlcG9ydFR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiOiB7fSxcbiAgICAgICAgICBcInJlcG9ydEZpbGVGb3JtYXRcIjoge30sXG4gICAgICAgICAgXCJyZXBvcnRUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJ1cmxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRFeGNsdXNpb25zUHJldmlld1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCIsXG4gICAgICAgICAgXCJwcmV2aWV3VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwicHJldmlld1Rva2VuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibG9jYWxlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInByZXZpZXdTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJldmlld1N0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImV4Y2x1c2lvblByZXZpZXdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwidGl0bGVcIixcbiAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJyZWNvbW1lbmRhdGlvblwiLFxuICAgICAgICAgICAgICAgIFwic2NvcGVzXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInRpdGxlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJyZWNvbW1lbmRhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF4XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VGVsZW1ldHJ5TWV0YWRhdGFcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0ZWxlbWV0cnlNZXRhZGF0YVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0ZWxlbWV0cnlNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFzc2Vzc21lbnRSdW5BZ2VudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiOiB7fSxcbiAgICAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcImFnZW50SGVhbHRoc1wiLFxuICAgICAgICAgICAgICBcImFnZW50SGVhbHRoQ29kZXNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiYWdlbnRIZWFsdGhzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhZ2VudEhlYWx0aENvZGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFnZW50c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQWdlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiYWdlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiLFxuICAgICAgICAgICAgICAgIFwiYWdlbnRIZWFsdGhcIixcbiAgICAgICAgICAgICAgICBcImFnZW50SGVhbHRoQ29kZVwiLFxuICAgICAgICAgICAgICAgIFwidGVsZW1ldHJ5TWV0YWRhdGFcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYWdlbnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJhZ2VudEhlYWx0aFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFnZW50SGVhbHRoQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFnZW50SGVhbHRoRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcImF1dG9TY2FsaW5nR3JvdXBcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0ZWxlbWV0cnlNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFzc2Vzc21lbnRSdW5zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVBhdHRlcm5cIjoge30sXG4gICAgICAgICAgICAgIFwic3RhdGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJkdXJhdGlvblJhbmdlXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNzXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJzdGFydFRpbWVSYW5nZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY29tcGxldGlvblRpbWVSYW5nZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3RhdGVDaGFuZ2VUaW1lUmFuZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3VcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFzc2Vzc21lbnRUYXJnZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldE5hbWVQYXR0ZXJuXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGFyZ2V0QXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFzc2Vzc21lbnRUZW1wbGF0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzb1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwibmFtZVBhdHRlcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiZHVyYXRpb25SYW5nZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzc1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzdFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRlbXBsYXRlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzdWJzY3JpcHRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZUFyblwiLFxuICAgICAgICAgICAgICAgIFwidG9waWNBcm5cIixcbiAgICAgICAgICAgICAgICBcImV2ZW50U3Vic2NyaXB0aW9uc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJyZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRvcGljQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZXZlbnRTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiZXZlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInN1YnNjcmliZWRBdFwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJldmVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcInN1YnNjcmliZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RXhjbHVzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImV4Y2x1c2lvbkFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXhjbHVzaW9uQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEZpbmRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImFnZW50SWRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhdXRvU2NhbGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicnVsZU5hbWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJzZXZlcml0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJydWxlc1BhY2thZ2VBcm5zXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ1c2VyQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY3JlYXRpb25UaW1lUmFuZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3VcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJmaW5kaW5nQXJuc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmaW5kaW5nQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJ1bGVzUGFja2FnZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJ1bGVzUGFja2FnZUFybnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicnVsZXNQYWNrYWdlQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNG9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQcmV2aWV3QWdlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcmV2aWV3QWdlbnRzQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByZXZpZXdBZ2VudHNBcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYWdlbnRQcmV2aWV3c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhZ2VudFByZXZpZXdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiYWdlbnRJZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJob3N0bmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImFnZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhdXRvU2NhbGluZ0dyb3VwXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYWdlbnRIZWFsdGhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJhZ2VudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJvcGVyYXRpbmdTeXN0ZW1cIjoge30sXG4gICAgICAgICAgICAgICAgXCJrZXJuZWxWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiaXB2NEFkZHJlc3NcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckNyb3NzQWNjb3VudEFjY2Vzc1JvbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicm9sZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZUF0dHJpYnV0ZXNGcm9tRmluZGluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImZpbmRpbmdBcm5zXCIsXG4gICAgICAgICAgXCJhdHRyaWJ1dGVLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZpbmRpbmdBcm5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF0dHJpYnV0ZUtleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImZhaWxlZEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNG9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydEFzc2Vzc21lbnRSdW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImFzc2Vzc21lbnRUZW1wbGF0ZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50VGVtcGxhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImFzc2Vzc21lbnRSdW5Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wQXNzZXNzbWVudFJ1blwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFJ1bkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhc3Nlc3NtZW50UnVuQXJuXCI6IHt9LFxuICAgICAgICAgIFwic3RvcEFjdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN1YnNjcmliZVRvRXZlbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCIsXG4gICAgICAgICAgXCJldmVudFwiLFxuICAgICAgICAgIFwidG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJldmVudFwiOiB7fSxcbiAgICAgICAgICBcInRvcGljQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW5zdWJzY3JpYmVGcm9tRXZlbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJlc291cmNlQXJuXCIsXG4gICAgICAgICAgXCJldmVudFwiLFxuICAgICAgICAgIFwidG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJldmVudFwiOiB7fSxcbiAgICAgICAgICBcInRvcGljQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQXNzZXNzbWVudFRhcmdldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFyblwiLFxuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXNzZXNzbWVudFRhcmdldEFyblwiOiB7fSxcbiAgICAgICAgICBcImFzc2Vzc21lbnRUYXJnZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmVzb3VyY2VHcm91cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwia2V5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImZhaWx1cmVDb2RlXCIsXG4gICAgICAgICAgXCJyZXRyeWFibGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZmFpbHVyZUNvZGVcIjoge30sXG4gICAgICAgICAgXCJyZXRyeWFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwia2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzF4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm1lc3NhZ2VUeXBlXCIsXG4gICAgICAgICAgXCJjb3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJtZXNzYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcImNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkYXRhU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwibWluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4U2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYmVnaW5EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImVuZERhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM0b1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImtleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiR2V0RXhjbHVzaW9uc1ByZXZpZXdcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RBc3Nlc3NtZW50UnVuQWdlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0QXNzZXNzbWVudFJ1bnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RBc3Nlc3NtZW50VGFyZ2V0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEFzc2Vzc21lbnRUZW1wbGF0ZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RFdmVudFN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RFeGNsdXNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0RmluZGluZ3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RSdWxlc1BhY2thZ2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJQcmV2aWV3QWdlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wNS0yOFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJpb3RcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgSW9UXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJJb1RcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwic2lnbmluZ05hbWVcIjogXCJleGVjdXRlLWFwaVwiLFxuICAgIFwidWlkXCI6IFwiaW90LTIwMTUtMDUtMjhcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWNjZXB0Q2VydGlmaWNhdGVUcmFuc2ZlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hY2NlcHQtY2VydGlmaWNhdGUtdHJhbnNmZXIve2NlcnRpZmljYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNldEFzQWN0aXZlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXRBc0FjdGl2ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZFRoaW5nVG9UaGluZ0dyb3VwXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1ncm91cHMvYWRkVGhpbmdUb1RoaW5nR3JvdXBcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlVGFyZ2V0c1dpdGhKb2JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2pvYnMve2pvYklkfS90YXJnZXRzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFyZ2V0c1wiLFxuICAgICAgICAgIFwiam9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYkFyblwiOiB7fSxcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdHRhY2hQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RhcmdldC1wb2xpY2llcy97cG9saWN5TmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJ0YXJnZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YXJnZXRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdHRhY2hQcmluY2lwYWxQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3ByaW5jaXBhbC1wb2xpY2llcy97cG9saWN5TmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJwcmluY2lwYWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmluY2lwYWxcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtem4taW90LXByaW5jaXBhbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiQXR0YWNoVGhpbmdQcmluY2lwYWxcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfS9wcmluY2lwYWxzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdOYW1lXCIsXG4gICAgICAgICAgXCJwcmluY2lwYWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJpbmNpcGFsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXpuLXByaW5jaXBhbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNhbmNlbENlcnRpZmljYXRlVHJhbnNmZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2FuY2VsLWNlcnRpZmljYXRlLXRyYW5zZmVyL3tjZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxKb2JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2pvYnMve2pvYklkfS9jYW5jZWxcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tbWVudFwiOiB7fSxcbiAgICAgICAgICBcImZvcmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmb3JjZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYkFyblwiOiB7fSxcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxKb2JFeGVjdXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfS9qb2JzL3tqb2JJZH0vY2FuY2VsXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIixcbiAgICAgICAgICBcInRoaW5nTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZm9yY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhwZWN0ZWRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNsZWFyRGVmYXVsdEF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2RlZmF1bHQtYXV0aG9yaXplclwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQXV0aG9yaXplclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXV0aG9yaXplci97YXV0aG9yaXplck5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXV0aG9yaXplck5hbWVcIixcbiAgICAgICAgICBcImF1dGhvcml6ZXJGdW5jdGlvbkFyblwiLFxuICAgICAgICAgIFwidG9rZW5LZXlOYW1lXCIsXG4gICAgICAgICAgXCJ0b2tlblNpZ25pbmdQdWJsaWNLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0aG9yaXplck5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRob3JpemVyRnVuY3Rpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJ0b2tlbktleU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0b2tlblNpZ25pbmdQdWJsaWNLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImF1dGhvcml6ZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDZXJ0aWZpY2F0ZUZyb21Dc3JcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NlcnRpZmljYXRlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVTaWduaW5nUmVxdWVzdFwiOiB7fSxcbiAgICAgICAgICBcInNldEFzQWN0aXZlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXRBc0FjdGl2ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlUGVtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSm9iXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9qb2JzL3tqb2JJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiLFxuICAgICAgICAgIFwidGFyZ2V0c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2N1bWVudFNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcImRvY3VtZW50XCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJwcmVzaWduZWRVcmxDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhcmdldFNlbGVjdGlvblwiOiB7fSxcbiAgICAgICAgICBcImpvYkV4ZWN1dGlvbnNSb2xsb3V0Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2N1bWVudFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYkFyblwiOiB7fSxcbiAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVLZXlzQW5kQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2tleXMtYW5kLWNlcnRpZmljYXRlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzZXRBc0FjdGl2ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2V0QXNBY3RpdmVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge30sXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZVBlbVwiOiB7fSxcbiAgICAgICAgICBcImtleVBhaXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlB1YmxpY0tleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcml2YXRlS2V5XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlT1RBVXBkYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9vdGFVcGRhdGVzL3tvdGFVcGRhdGVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJvdGFVcGRhdGVJZFwiLFxuICAgICAgICAgIFwidGFyZ2V0c1wiLFxuICAgICAgICAgIFwiZmlsZXNcIixcbiAgICAgICAgICBcInJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib3RhVXBkYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvdGFVcGRhdGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwidGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0U2VsZWN0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiZmlsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJhZGRpdGlvbmFsUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib3RhVXBkYXRlSWRcIjoge30sXG4gICAgICAgICAgXCJhd3NJb3RKb2JJZFwiOiB7fSxcbiAgICAgICAgICBcIm90YVVwZGF0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcImF3c0lvdEpvYkFyblwiOiB7fSxcbiAgICAgICAgICBcIm90YVVwZGF0ZVN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWNpZXMve3BvbGljeU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb2xpY3lEb2N1bWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lBcm5cIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lEb2N1bWVudFwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeVZlcnNpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBvbGljeVZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3BvbGljaWVzL3twb2xpY3lOYW1lfS92ZXJzaW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiLFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb2xpY3lEb2N1bWVudFwiOiB7fSxcbiAgICAgICAgICBcInNldEFzRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2V0QXNEZWZhdWx0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5QXJuXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJpc0RlZmF1bHRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSb2xlQWxpYXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3JvbGUtYWxpYXNlcy97cm9sZUFsaWFzfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJvbGVBbGlhc1wiLFxuICAgICAgICAgIFwicm9sZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyb2xlQWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb2xlQWxpYXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiY3JlZGVudGlhbER1cmF0aW9uU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicm9sZUFsaWFzXCI6IHt9LFxuICAgICAgICAgIFwicm9sZUFsaWFzQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RyZWFtXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zdHJlYW1zL3tzdHJlYW1JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzdHJlYW1JZFwiLFxuICAgICAgICAgIFwiZmlsZXNcIixcbiAgICAgICAgICBcInJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RyZWFtSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdHJlYW1JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiZmlsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdHJlYW1JZFwiOiB7fSxcbiAgICAgICAgICBcInN0cmVhbUFyblwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwic3RyZWFtVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVGhpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ05hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiYXR0cmlidXRlUGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdBcm5cIjoge30sXG4gICAgICAgICAgXCJ0aGluZ0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVGhpbmdHcm91cFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctZ3JvdXBzL3t0aGluZ0dyb3VwTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGFyZW50R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdHcm91cFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRoaW5nVHlwZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctdHlwZXMve3RoaW5nVHlwZU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdUeXBlTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nVHlwZVByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVBcm5cIjoge30sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRvcGljUnVsZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcnVsZXMve3J1bGVOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJ1bGVOYW1lXCIsXG4gICAgICAgICAgXCJ0b3BpY1J1bGVQYXlsb2FkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0b3BpY1J1bGVQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwidG9waWNSdWxlUGF5bG9hZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2F1dGhvcml6ZXIve2F1dGhvcml6ZXJOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0aG9yaXplck5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDQUNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jYWNlcnRpZmljYXRlL3tjYUNlcnRpZmljYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2FDZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NlcnRpZmljYXRlcy97Y2VydGlmaWNhdGVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZm9yY2VEZWxldGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcmNlRGVsZXRlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSm9iXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9qb2JzL3tqb2JJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZm9yY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSm9iRXhlY3V0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX0vam9icy97am9iSWR9L2V4ZWN1dGlvbk51bWJlci97ZXhlY3V0aW9uTnVtYmVyfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCIsXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIixcbiAgICAgICAgICBcImV4ZWN1dGlvbk51bWJlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhlY3V0aW9uTnVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhlY3V0aW9uTnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZm9yY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZvcmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlT1RBVXBkYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9vdGFVcGRhdGVzL3tvdGFVcGRhdGVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJvdGFVcGRhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvdGFVcGRhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm90YVVwZGF0ZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wb2xpY2llcy97cG9saWN5TmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUG9saWN5VmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWNpZXMve3BvbGljeU5hbWV9L3ZlcnNpb24ve3BvbGljeVZlcnNpb25JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lWZXJzaW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZWdpc3RyYXRpb25Db2RlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZWdpc3RyYXRpb25jb2RlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSb2xlQWxpYXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3JvbGUtYWxpYXNlcy97cm9sZUFsaWFzfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJvbGVBbGlhc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyb2xlQWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb2xlQWxpYXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTdHJlYW1cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3N0cmVhbXMve3N0cmVhbUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInN0cmVhbUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN0cmVhbUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RyZWFtSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUaGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4cGVjdGVkVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZXhwZWN0ZWRWZXJzaW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGhpbmdHcm91cFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctZ3JvdXBzL3t0aGluZ0dyb3VwTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhwZWN0ZWRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleHBlY3RlZFZlcnNpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUaGluZ1R5cGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXR5cGVzL3t0aGluZ1R5cGVOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nVHlwZU5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUb3BpY1J1bGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3J1bGVzL3tydWxlTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJydWxlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydWxlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJ1bGVOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVjJMb2dnaW5nTGV2ZWxcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3YyTG9nZ2luZ0xldmVsXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFyZ2V0VHlwZVwiLFxuICAgICAgICAgIFwidGFyZ2V0TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXJnZXRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0TmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcHJlY2F0ZVRoaW5nVHlwZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctdHlwZXMve3RoaW5nVHlwZU5hbWV9L2RlcHJlY2F0ZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nVHlwZU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1bmRvRGVwcmVjYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2F1dGhvcml6ZXIve2F1dGhvcml6ZXJOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0aG9yaXplck5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2b1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ0FDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2FjZXJ0aWZpY2F0ZS97Y2FDZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNhQ2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImNlcnRpZmljYXRlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcImNlcnRpZmljYXRlUGVtXCI6IHt9LFxuICAgICAgICAgICAgICBcIm93bmVkQnlcIjoge30sXG4gICAgICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImF1dG9SZWdpc3RyYXRpb25TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwibGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjdXN0b21lclZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImdlbmVyYXRpb25JZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWdpc3RyYXRpb25Db25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2VydGlmaWNhdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NlcnRpZmljYXRlcy97Y2VydGlmaWNhdGVJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiY2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJjYUNlcnRpZmljYXRlSWRcIjoge30sXG4gICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcImNlcnRpZmljYXRlUGVtXCI6IHt9LFxuICAgICAgICAgICAgICBcIm93bmVkQnlcIjoge30sXG4gICAgICAgICAgICAgIFwicHJldmlvdXNPd25lZEJ5XCI6IHt9LFxuICAgICAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJsYXN0TW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImN1c3RvbWVyVmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidHJhbnNmZXJEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0cmFuc2Zlck1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgICBcInJlamVjdFJlYXNvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwidHJhbnNmZXJEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcImFjY2VwdERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwicmVqZWN0RGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImdlbmVyYXRpb25JZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURlZmF1bHRBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9kZWZhdWx0LWF1dGhvcml6ZXJcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6ZXJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZvXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbmRwb2ludFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZW5kcG9pbnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImVuZHBvaW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5kcG9pbnRUeXBlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZW5kcG9pbnRBZGRyZXNzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudENvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ldmVudC1jb25maWd1cmF0aW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXZlbnRDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbmRleFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW5kaWNlcy97aW5kZXhOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImluZGV4TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbmRleE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbmRleE5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbmRleE5hbWVcIjoge30sXG4gICAgICAgICAgXCJpbmRleFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcInNjaGVtYVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSm9iXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9qb2JzL3tqb2JJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9jdW1lbnRTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJqb2JcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImpvYkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJqb2JJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ0YXJnZXRTZWxlY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcImZvcmNlQ2FuY2VsZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNvbW1lbnRcIjoge30sXG4gICAgICAgICAgICAgIFwidGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJwcmVzaWduZWRVcmxDb25maWdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImpvYkV4ZWN1dGlvbnNSb2xsb3V0Q29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFtXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJjb21wbGV0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJqb2JQcm9jZXNzRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwicHJvY2Vzc2luZ1RhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJudW1iZXJPZkNhbmNlbGVkVGhpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJudW1iZXJPZlN1Y2NlZWRlZFRoaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwibnVtYmVyT2ZGYWlsZWRUaGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIm51bWJlck9mUmVqZWN0ZWRUaGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIm51bWJlck9mUXVldWVkVGhpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJudW1iZXJPZkluUHJvZ3Jlc3NUaGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIm51bWJlck9mUmVtb3ZlZFRoaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJkb2N1bWVudFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSm9iRXhlY3V0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX0vam9icy97am9iSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiam9iSWRcIixcbiAgICAgICAgICBcInRoaW5nTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhlY3V0aW9uTnVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJleGVjdXRpb25OdW1iZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJleGVjdXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImpvYklkXCI6IHt9LFxuICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJmb3JjZUNhbmNlbGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJzdGF0dXNEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJkZXRhaWxzTWFwXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidGhpbmdBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwicXVldWVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZXhlY3V0aW9uTnVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uTnVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJvbGVBbGlhc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcm9sZS1hbGlhc2VzL3tyb2xlQWxpYXN9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicm9sZUFsaWFzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBbGlhc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJvbGVBbGlhc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBbGlhc0Rlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJyb2xlQWxpYXNcIjoge30sXG4gICAgICAgICAgICAgIFwicm9sZUFsaWFzQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwib3duZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiY3JlZGVudGlhbER1cmF0aW9uU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdHJlYW1cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3N0cmVhbXMve3N0cmVhbUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInN0cmVhbUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN0cmVhbUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RyZWFtSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdHJlYW1JbmZvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJzdHJlYW1JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJzdHJlYW1Bcm5cIjoge30sXG4gICAgICAgICAgICAgIFwic3RyZWFtVmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiZmlsZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzhcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJsYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInJvbGVBcm5cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUaGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlZmF1bHRDbGllbnRJZFwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ0FyblwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRoaW5nR3JvdXBcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLWdyb3Vwcy97dGhpbmdHcm91cE5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ0dyb3VwTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdHcm91cEFyblwiOiB7fSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInBhcmVudEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJyb290VG9QYXJlbnRUaGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4blwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGhpbmdSZWdpc3RyYXRpb25UYXNrXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1yZWdpc3RyYXRpb24tdGFza3Mve3Rhc2tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0YXNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFza0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza0lkXCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiaW5wdXRGaWxlQnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiaW5wdXRGaWxlS2V5XCI6IHt9LFxuICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIm1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJzdWNjZXNzQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZhaWx1cmVDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGVyY2VudGFnZVByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRoaW5nVHlwZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctdHlwZXMve3RoaW5nVHlwZU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdUeXBlTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nVHlwZUFyblwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nVHlwZVByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nVHlwZU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOTBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RhcmdldC1wb2xpY2llcy97cG9saWN5TmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJ0YXJnZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YXJnZXRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRhY2hQcmluY2lwYWxQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3ByaW5jaXBhbC1wb2xpY2llcy97cG9saWN5TmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJwcmluY2lwYWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmluY2lwYWxcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtem4taW90LXByaW5jaXBhbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGV0YWNoVGhpbmdQcmluY2lwYWxcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfS9wcmluY2lwYWxzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdOYW1lXCIsXG4gICAgICAgICAgXCJwcmluY2lwYWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJpbmNpcGFsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXpuLXByaW5jaXBhbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVUb3BpY1J1bGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3J1bGVzL3tydWxlTmFtZX0vZGlzYWJsZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJ1bGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZU5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVUb3BpY1J1bGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3J1bGVzL3tydWxlTmFtZX0vZW5hYmxlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicnVsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicnVsZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEVmZmVjdGl2ZVBvbGljaWVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9lZmZlY3RpdmUtcG9saWNpZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByaW5jaXBhbFwiOiB7fSxcbiAgICAgICAgICBcImNvZ25pdG9JZGVudGl0eVBvb2xJZFwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZWZmZWN0aXZlUG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJwb2xpY3lBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJwb2xpY3lEb2N1bWVudFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEluZGV4aW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW5kZXhpbmcvY29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0luZGV4aW5nQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Sm9iRG9jdW1lbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2pvYnMve2pvYklkfS9qb2ItZG9jdW1lbnRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJqb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJqb2JJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImpvYklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9jdW1lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvbG9nZ2luZ09wdGlvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJsb2dMZXZlbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE9UQVVwZGF0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvb3RhVXBkYXRlcy97b3RhVXBkYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwib3RhVXBkYXRlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwib3RhVXBkYXRlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvdGFVcGRhdGVJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm90YVVwZGF0ZUluZm9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIm90YVVwZGF0ZUlkXCI6IHt9LFxuICAgICAgICAgICAgICBcIm90YVVwZGF0ZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwibGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ0YXJnZXRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIwXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ0YXJnZXRTZWxlY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgIFwib3RhVXBkYXRlRmlsZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIm90YVVwZGF0ZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJhd3NJb3RKb2JJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJhd3NJb3RKb2JBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiZXJyb3JJbmZvXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJjb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJtZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJtXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3BvbGljaWVzL3twb2xpY3lOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5QXJuXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIjoge30sXG4gICAgICAgICAgXCJkZWZhdWx0VmVyc2lvbklkXCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2VuZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UG9saWN5VmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWNpZXMve3BvbGljeU5hbWV9L3ZlcnNpb24ve3BvbGljeVZlcnNpb25JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCIsXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lWZXJzaW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lBcm5cIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lWZXJzaW9uSWRcIjoge30sXG4gICAgICAgICAgXCJpc0RlZmF1bHRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJnZW5lcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZWdpc3RyYXRpb25Db2RlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZWdpc3RyYXRpb25jb2RlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZWdpc3RyYXRpb25Db2RlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VG9waWNSdWxlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ydWxlcy97cnVsZU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicnVsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicnVsZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVBcm5cIjoge30sXG4gICAgICAgICAgXCJydWxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJydWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJzcWxcIjoge30sXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImFjdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInJ1bGVEaXNhYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiYXdzSW90U3FsVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJlcnJvckFjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VjJMb2dnaW5nT3B0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdjJMb2dnaW5nT3B0aW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcImRlZmF1bHRMb2dMZXZlbFwiOiB7fSxcbiAgICAgICAgICBcImRpc2FibGVBbGxMb2dzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QXR0YWNoZWRQb2xpY2llc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXR0YWNoZWQtcG9saWNpZXMve3RhcmdldH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0YXJnZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFyZ2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFyZ2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVjdXJzaXZlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWN1cnNpdmVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEF1dGhvcml6ZXJzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hdXRob3JpemVycy9cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXNjZW5kaW5nT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzQXNjZW5kaW5nT3JkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImF1dGhvcml6ZXJBcm5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENBQ2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jYWNlcnRpZmljYXRlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhZ2VTaXplXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhc2NlbmRpbmdPcmRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXNBc2NlbmRpbmdPcmRlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiY2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jZXJ0aWZpY2F0ZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXNjZW5kaW5nT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzQXNjZW5kaW5nT3JkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q2VydGlmaWNhdGVzQnlDQVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2VydGlmaWNhdGVzLWJ5LWNhL3tjYUNlcnRpZmljYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2FDZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNhQ2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNhQ2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXNjZW5kaW5nT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzQXNjZW5kaW5nT3JkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW5kaWNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW5kaWNlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW5kZXhOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Sm9iRXhlY3V0aW9uc0ZvckpvYlwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvam9icy97am9iSWR9L3RoaW5nc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImpvYklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImpvYklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiam9iSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImV4ZWN1dGlvblN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidGhpbmdBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJqb2JFeGVjdXRpb25TdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYjRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Sm9iRXhlY3V0aW9uc0ZvclRoaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX0vam9ic1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ05hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImV4ZWN1dGlvblN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiam9iSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJqb2JFeGVjdXRpb25TdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYjRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Sm9ic1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvam9ic1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGF0dXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YXJnZXRTZWxlY3Rpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldFNlbGVjdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ0dyb3VwTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdHcm91cElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiam9ic1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiam9iQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiam9iSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0aGluZ0dyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRTZWxlY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjb21wbGV0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0T1RBVXBkYXRlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvb3RhVXBkYXRlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwib3RhVXBkYXRlU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJvdGFVcGRhdGVTdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvdGFVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJvdGFVcGRhdGVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIm90YVVwZGF0ZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0T3V0Z29pbmdDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2NlcnRpZmljYXRlcy1vdXQtZ29pbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXNjZW5kaW5nT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzQXNjZW5kaW5nT3JkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJvdXRnb2luZ0NlcnRpZmljYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiY2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidHJhbnNmZXJyZWRUb1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRyYW5zZmVyRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0cmFuc2Zlck1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQb2xpY2llc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWNpZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhZ2VTaXplXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXNjZW5kaW5nT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlzQXNjZW5kaW5nT3JkZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQb2xpY3lQcmluY2lwYWxzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wb2xpY3ktcHJpbmNpcGFsc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16bi1pb3QtcG9saWN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhc2NlbmRpbmdPcmRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXNBc2NlbmRpbmdPcmRlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInByaW5jaXBhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNicVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RQb2xpY3lWZXJzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWNpZXMve3BvbGljeU5hbWV9L3ZlcnNpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwb2xpY3lOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5VmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInZlcnNpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImlzRGVmYXVsdFZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNyZWF0ZURhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFByaW5jaXBhbFBvbGljaWVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wcmluY2lwYWwtcG9saWNpZXNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwcmluY2lwYWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJpbmNpcGFsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXpuLWlvdC1wcmluY2lwYWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYWdlU2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFzY2VuZGluZ09yZGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc0FzY2VuZGluZ09yZGVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWNpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RQcmluY2lwYWxUaGluZ3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3ByaW5jaXBhbHMvdGhpbmdzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicHJpbmNpcGFsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByaW5jaXBhbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16bi1wcmluY2lwYWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSb2xlQWxpYXNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcm9sZS1hbGlhc2VzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFnZVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFzY2VuZGluZ09yZGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpc0FzY2VuZGluZ09yZGVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicm9sZUFsaWFzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zdHJlYW1zXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhc2NlbmRpbmdPcmRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaXNBc2NlbmRpbmdPcmRlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN0cmVhbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInN0cmVhbUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RyZWFtQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic3RyZWFtVmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFyZ2V0c0ZvclBvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcG9saWN5LXRhcmdldHMve3BvbGljeU5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9saWN5TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhZ2VTaXplXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0TWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRoaW5nR3JvdXBzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1ncm91cHNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmVudEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXJlbnRHcm91cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVQcmVmaXhGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVQcmVmaXhGaWx0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWN1cnNpdmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlY3Vyc2l2ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOG5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGhpbmdHcm91cHNGb3JUaGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9L3RoaW5nLWdyb3Vwc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ05hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRoaW5nUHJpbmNpcGFsc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9L3ByaW5jaXBhbHNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicHJpbmNpcGFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRoaW5nUmVnaXN0cmF0aW9uVGFza1JlcG9ydHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXJlZ2lzdHJhdGlvbi10YXNrcy97dGFza0lkfS9yZXBvcnRzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGFza0lkXCIsXG4gICAgICAgICAgXCJyZXBvcnRUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhc2tJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcG9ydFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlcG9ydFR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyZXNvdXJjZUxpbmtzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcG9ydFR5cGVcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGhpbmdSZWdpc3RyYXRpb25UYXNrc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmctcmVnaXN0cmF0aW9uLXRhc2tzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRoaW5nVHlwZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXR5cGVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ1R5cGVOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRoaW5nVHlwZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRoaW5nVHlwZVByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInRoaW5nVHlwZU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOTBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGhpbmdzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF0dHJpYnV0ZU5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImF0dHJpYnV0ZU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXR0cmlidXRlVmFsdWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ1R5cGVOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0aGluZ05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0aGluZ1R5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGhpbmdBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGhpbmdzSW5UaGluZ0dyb3VwXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1ncm91cHMve3RoaW5nR3JvdXBOYW1lfS90aGluZ3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRoaW5nR3JvdXBOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVjdXJzaXZlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWN1cnNpdmVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUb3BpY1J1bGVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ydWxlc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidG9waWNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRvcGljXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicnVsZURpc2FibGVkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJydWxlRGlzYWJsZWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwicnVsZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJ1bGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidG9waWNQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJ1bGVEaXNhYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFYyTG9nZ2luZ0xldmVsc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdjJMb2dnaW5nTGV2ZWxcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhcmdldFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhcmdldFR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dUYXJnZXRDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9nVGFyZ2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJsb2dMZXZlbFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyQ0FDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2FjZXJ0aWZpY2F0ZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNhQ2VydGlmaWNhdGVcIixcbiAgICAgICAgICBcInZlcmlmaWNhdGlvbkNlcnRpZmljYXRlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNhQ2VydGlmaWNhdGVcIjoge30sXG4gICAgICAgICAgXCJ2ZXJpZmljYXRpb25DZXJ0aWZpY2F0ZVwiOiB7fSxcbiAgICAgICAgICBcInNldEFzQWN0aXZlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzZXRBc0FjdGl2ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFsbG93QXV0b1JlZ2lzdHJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxsb3dBdXRvUmVnaXN0cmF0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVnaXN0cmF0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUFyblwiOiB7fSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jZXJ0aWZpY2F0ZS9yZWdpc3RlclwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlUGVtXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImNlcnRpZmljYXRlUGVtXCI6IHt9LFxuICAgICAgICAgIFwiY2FDZXJ0aWZpY2F0ZVBlbVwiOiB7fSxcbiAgICAgICAgICBcInNldEFzQWN0aXZlXCI6IHtcbiAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNldEFzQWN0aXZlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJUaGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGVtcGxhdGVCb2R5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgICBcInBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVQZW1cIjoge30sXG4gICAgICAgICAgXCJyZXNvdXJjZUFybnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVqZWN0Q2VydGlmaWNhdGVUcmFuc2ZlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9yZWplY3QtY2VydGlmaWNhdGUtdHJhbnNmZXIve2NlcnRpZmljYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlamVjdFJlYXNvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRoaW5nRnJvbVRoaW5nR3JvdXBcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLWdyb3Vwcy9yZW1vdmVUaGluZ0Zyb21UaGluZ0dyb3VwXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInRoaW5nR3JvdXBBcm5cIjoge30sXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge30sXG4gICAgICAgICAgXCJ0aGluZ0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlcGxhY2VUb3BpY1J1bGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvcnVsZXMve3J1bGVOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJ1bGVOYW1lXCIsXG4gICAgICAgICAgXCJ0b3BpY1J1bGVQYXlsb2FkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJ1bGVOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicnVsZU5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0b3BpY1J1bGVQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwidG9waWNSdWxlUGF5bG9hZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlYXJjaEluZGV4XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pbmRpY2VzL3NlYXJjaFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInF1ZXJ5U3RyaW5nXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImluZGV4TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInF1ZXJ5U3RyaW5nXCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicXVlcnlWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0aGluZ05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ0aGluZ0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzaGFkb3dcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXREZWZhdWx0QXV0aG9yaXplclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvZGVmYXVsdC1hdXRob3JpemVyXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXV0aG9yaXplck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXV0aG9yaXplck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImF1dGhvcml6ZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXREZWZhdWx0UG9saWN5VmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9wb2xpY2llcy97cG9saWN5TmFtZX0vdmVyc2lvbi97cG9saWN5VmVyc2lvbklkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIixcbiAgICAgICAgICBcInBvbGljeVZlcnNpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicG9saWN5TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvbGljeVZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBvbGljeVZlcnNpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldExvZ2dpbmdPcHRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9sb2dnaW5nT3B0aW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ2dpbmdPcHRpb25zUGF5bG9hZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dnaW5nT3B0aW9uc1BheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJyb2xlQXJuXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICAgIFwibG9nTGV2ZWxcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcImxvZ2dpbmdPcHRpb25zUGF5bG9hZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFYyTG9nZ2luZ0xldmVsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92MkxvZ2dpbmdMZXZlbFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ1RhcmdldFwiLFxuICAgICAgICAgIFwibG9nTGV2ZWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nVGFyZ2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZGNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsb2dMZXZlbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFYyTG9nZ2luZ09wdGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3YyTG9nZ2luZ09wdGlvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJkZWZhdWx0TG9nTGV2ZWxcIjoge30sXG4gICAgICAgICAgXCJkaXNhYmxlQWxsTG9nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRUaGluZ1JlZ2lzdHJhdGlvblRhc2tcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXJlZ2lzdHJhdGlvbi10YXNrc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRlbXBsYXRlQm9keVwiLFxuICAgICAgICAgIFwiaW5wdXRGaWxlQnVja2V0XCIsXG4gICAgICAgICAgXCJpbnB1dEZpbGVLZXlcIixcbiAgICAgICAgICBcInJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGVtcGxhdGVCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiaW5wdXRGaWxlQnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiaW5wdXRGaWxlS2V5XCI6IHt9LFxuICAgICAgICAgIFwicm9sZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0b3BUaGluZ1JlZ2lzdHJhdGlvblRhc2tcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLXJlZ2lzdHJhdGlvbi10YXNrcy97dGFza0lkfS9jYW5jZWxcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0YXNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGFza0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGFza0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVzdEF1dGhvcml6YXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Rlc3QtYXV0aG9yaXphdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF1dGhJbmZvc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwcmluY2lwYWxcIjoge30sXG4gICAgICAgICAgXCJjb2duaXRvSWRlbnRpdHlQb29sSWRcIjoge30sXG4gICAgICAgICAgXCJhdXRoSW5mb3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VmXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2xpZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNsaWVudElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9saWN5TmFtZXNUb0FkZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9saWN5TmFtZXNUb1NraXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhdXRoSW5mb1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VmXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYWxsb3dlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwicG9saWNpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYWRcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImRlbmllZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiaW1wbGljaXREZW55XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwb2xpY2llc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJleHBsaWNpdERlbnlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInBvbGljaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImF1dGhEZWNpc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIm1pc3NpbmdDb250ZXh0VmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlc3RJbnZva2VBdXRob3JpemVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hdXRob3JpemVyL3thdXRob3JpemVyTmFtZX0vdGVzdFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCIsXG4gICAgICAgICAgXCJ0b2tlblwiLFxuICAgICAgICAgIFwidG9rZW5TaWduYXR1cmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYXV0aG9yaXplck5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJhdXRob3JpemVyTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRva2VuXCI6IHt9LFxuICAgICAgICAgIFwidG9rZW5TaWduYXR1cmVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpc0F1dGhlbnRpY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByaW5jaXBhbElkXCI6IHt9LFxuICAgICAgICAgIFwicG9saWN5RG9jdW1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlZnJlc2hBZnRlckluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGlzY29ubmVjdEFmdGVySW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUcmFuc2ZlckNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RyYW5zZmVyLWNlcnRpZmljYXRlL3tjZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIixcbiAgICAgICAgICBcInRhcmdldEF3c0FjY291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNlcnRpZmljYXRlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YXJnZXRBd3NBY2NvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0YXJnZXRBd3NBY2NvdW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHJhbnNmZXJNZXNzYWdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidHJhbnNmZXJyZWRDZXJ0aWZpY2F0ZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUF1dGhvcml6ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2F1dGhvcml6ZXIve2F1dGhvcml6ZXJOYW1lfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF1dGhvcml6ZXJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYXV0aG9yaXplck5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdXRob3JpemVyRnVuY3Rpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJ0b2tlbktleU5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0b2tlblNpZ25pbmdQdWJsaWNLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JpemVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImF1dGhvcml6ZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDQUNlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9jYWNlcnRpZmljYXRlL3tjYUNlcnRpZmljYXRlSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2FDZXJ0aWZpY2F0ZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV3U3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXdTdGF0dXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXdBdXRvUmVnaXN0cmF0aW9uU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXdBdXRvUmVnaXN0cmF0aW9uU3RhdHVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVnaXN0cmF0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZW1vdmVBdXRvUmVnaXN0cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvY2VydGlmaWNhdGVzL3tjZXJ0aWZpY2F0ZUlkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImNlcnRpZmljYXRlSWRcIixcbiAgICAgICAgICBcIm5ld1N0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY2VydGlmaWNhdGVJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5ld1N0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV3U3RhdHVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRXZlbnRDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ldmVudC1jb25maWd1cmF0aW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXZlbnRDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSW5kZXhpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pbmRleGluZy9jb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nSW5kZXhpbmdDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSb2xlQWxpYXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3JvbGUtYWxpYXNlcy97cm9sZUFsaWFzfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInJvbGVBbGlhc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJyb2xlQWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyb2xlQWxpYXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiY3JlZGVudGlhbER1cmF0aW9uU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicm9sZUFsaWFzXCI6IHt9LFxuICAgICAgICAgIFwicm9sZUFsaWFzQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU3RyZWFtXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9zdHJlYW1zL3tzdHJlYW1JZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzdHJlYW1JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzdHJlYW1JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0cmVhbUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJmaWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicm9sZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN0cmVhbUlkXCI6IHt9LFxuICAgICAgICAgIFwic3RyZWFtQXJuXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJzdHJlYW1WZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUaGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBBVENIXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZ3Mve3RoaW5nTmFtZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImF0dHJpYnV0ZVBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4cGVjdGVkVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVtb3ZlVGhpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUaGluZ0dyb3VwXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5nLWdyb3Vwcy97dGhpbmdHcm91cE5hbWV9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidGhpbmdHcm91cE5hbWVcIixcbiAgICAgICAgICBcInRoaW5nR3JvdXBQcm9wZXJ0aWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRoaW5nR3JvdXBOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdHcm91cE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aGluZ0dyb3VwUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhwZWN0ZWRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUaGluZ0dyb3Vwc0ZvclRoaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi90aGluZy1ncm91cHMvdXBkYXRlVGhpbmdHcm91cHNGb3JUaGluZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGhpbmdHcm91cHNUb0FkZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGhpbmdHcm91cHNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgIFwiZXhwaXJlc0luU2VjXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm1heGltdW1QZXJNaW51dGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMjBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzIyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmaWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZpbGVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiZmlsZVNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29kZVNpZ25pbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcImF3c1NpZ25lckpvYklkXCI6IHt9LFxuICAgICAgICAgICAgICBcImN1c3RvbUNvZGVTaWduaW5nXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaWduYXR1cmVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInN0cmVhbVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI2XCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiaW5saW5lRG9jdW1lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJjZXJ0aWZpY2F0ZUNoYWluXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzdHJlYW1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNlwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcImNlcnRpZmljYXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcImlubGluZURvY3VtZW50XCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcImhhc2hBbGdvcml0aG1cIjoge30sXG4gICAgICAgICAgICAgICAgICBcInNpZ25hdHVyZUFsZ29yaXRobVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwic3RyZWFtSWRcIjoge30sXG4gICAgICAgIFwiZmlsZUlkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMm1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJmaWxlSWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInMzTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJidWNrZXRcIixcbiAgICAgICAgICAgICAgXCJrZXlcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiYnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMza1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVyZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMza1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTM3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRoaW5nR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJhdHRyaWJ1dGVQYXlsb2FkXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNqXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRoaW5nVHlwZURlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcInNlYXJjaGFibGVBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJzcWxcIixcbiAgICAgICAgXCJhY3Rpb25zXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInNxbFwiOiB7fSxcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJhY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ3XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJydWxlRGlzYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImF3c0lvdFNxbFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiZXJyb3JBY3Rpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNDhcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0N1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNDhcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImR5bmFtb0RCXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwidGFibGVOYW1lXCIsXG4gICAgICAgICAgICBcInJvbGVBcm5cIixcbiAgICAgICAgICAgIFwiaGFzaEtleUZpZWxkXCIsXG4gICAgICAgICAgICBcImhhc2hLZXlWYWx1ZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJ0YWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICBcIm9wZXJhdGlvblwiOiB7fSxcbiAgICAgICAgICAgIFwiaGFzaEtleUZpZWxkXCI6IHt9LFxuICAgICAgICAgICAgXCJoYXNoS2V5VmFsdWVcIjoge30sXG4gICAgICAgICAgICBcImhhc2hLZXlUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJyYW5nZUtleUZpZWxkXCI6IHt9LFxuICAgICAgICAgICAgXCJyYW5nZUtleVZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgXCJyYW5nZUtleVR5cGVcIjoge30sXG4gICAgICAgICAgICBcInBheWxvYWRGaWVsZFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkeW5hbW9EQnYyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJwdXRJdGVtXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwidGFibGVOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInRhYmxlTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImxhbWJkYVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcImZ1bmN0aW9uQXJuXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImZ1bmN0aW9uQXJuXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInNuc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInRhcmdldEFyblwiLFxuICAgICAgICAgICAgXCJyb2xlQXJuXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInRhcmdldEFyblwiOiB7fSxcbiAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwibWVzc2FnZUZvcm1hdFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzcXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgICAgICBcInF1ZXVlVXJsXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICBcInF1ZXVlVXJsXCI6IHt9LFxuICAgICAgICAgICAgXCJ1c2VCYXNlNjRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZXNpc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInJvbGVBcm5cIixcbiAgICAgICAgICAgIFwic3RyZWFtTmFtZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJzdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJwYXJ0aXRpb25LZXlcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicmVwdWJsaXNoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwicm9sZUFyblwiLFxuICAgICAgICAgICAgXCJ0b3BpY1wiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJ0b3BpY1wiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJzM1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInJvbGVBcm5cIixcbiAgICAgICAgICAgIFwiYnVja2V0TmFtZVwiLFxuICAgICAgICAgICAgXCJrZXlcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwiYnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJjYW5uZWRBY2xcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZmlyZWhvc2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgICAgICBcImRlbGl2ZXJ5U3RyZWFtTmFtZVwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJkZWxpdmVyeVN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgICBcInNlcGFyYXRvclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJjbG91ZHdhdGNoTWV0cmljXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwicm9sZUFyblwiLFxuICAgICAgICAgICAgXCJtZXRyaWNOYW1lc3BhY2VcIixcbiAgICAgICAgICAgIFwibWV0cmljTmFtZVwiLFxuICAgICAgICAgICAgXCJtZXRyaWNWYWx1ZVwiLFxuICAgICAgICAgICAgXCJtZXRyaWNVbml0XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICBcIm1ldHJpY05hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICAgIFwibWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwibWV0cmljVmFsdWVcIjoge30sXG4gICAgICAgICAgICBcIm1ldHJpY1VuaXRcIjoge30sXG4gICAgICAgICAgICBcIm1ldHJpY1RpbWVzdGFtcFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJjbG91ZHdhdGNoQWxhcm1cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJyb2xlQXJuXCIsXG4gICAgICAgICAgICBcImFsYXJtTmFtZVwiLFxuICAgICAgICAgICAgXCJzdGF0ZVJlYXNvblwiLFxuICAgICAgICAgICAgXCJzdGF0ZVZhbHVlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcInJvbGVBcm5cIjoge30sXG4gICAgICAgICAgICBcImFsYXJtTmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwic3RhdGVSZWFzb25cIjoge30sXG4gICAgICAgICAgICBcInN0YXRlVmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZWxhc3RpY3NlYXJjaFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICBcInJvbGVBcm5cIixcbiAgICAgICAgICAgIFwiZW5kcG9pbnRcIixcbiAgICAgICAgICAgIFwiaW5kZXhcIixcbiAgICAgICAgICAgIFwidHlwZVwiLFxuICAgICAgICAgICAgXCJpZFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgXCJlbmRwb2ludFwiOiB7fSxcbiAgICAgICAgICAgIFwiaW5kZXhcIjoge30sXG4gICAgICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgICAgICBcImlkXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInNhbGVzZm9yY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJ0b2tlblwiLFxuICAgICAgICAgICAgXCJ1cmxcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwidG9rZW5cIjoge30sXG4gICAgICAgICAgICBcInVybFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpb3RBbmFseXRpY3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcImNoYW5uZWxBcm5cIjoge30sXG4gICAgICAgICAgICBcImNoYW5uZWxOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2b1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiYXV0aG9yaXplck5hbWVcIjoge30sXG4gICAgICAgIFwiYXV0aG9yaXplckFyblwiOiB7fSxcbiAgICAgICAgXCJhdXRob3JpemVyRnVuY3Rpb25Bcm5cIjoge30sXG4gICAgICAgIFwidG9rZW5LZXlOYW1lXCI6IHt9LFxuICAgICAgICBcInRva2VuU2lnbmluZ1B1YmxpY0tleXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJjcmVhdGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdE1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRlbXBsYXRlQm9keVwiOiB7fSxcbiAgICAgICAgXCJyb2xlQXJuXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3ZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJncm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJncm91cEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5MFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiZGVwcmVjYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwcmVjYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRoaW5nSW5kZXhpbmdNb2RlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicG9saWN5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcInBvbGljeUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY2VydGlmaWNhdGVBcm5cIjoge30sXG4gICAgICAgICAgXCJjZXJ0aWZpY2F0ZUlkXCI6IHt9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICBcInF1ZXVlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4ZWN1dGlvbk51bWJlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNjMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTZGNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0YXJnZXRUeXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInRhcmdldFR5cGVcIjoge30sXG4gICAgICAgIFwidGFyZ2V0TmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImFjdGlvblR5cGVcIjoge30sXG4gICAgICAgIFwicmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2ZuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJ1aWRcIjogXCJpb3QtZGF0YS0yMDE1LTA1LTI4XCIsXG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wNS0yOFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJkYXRhLmlvdFwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LWpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBJb1QgRGF0YSBQbGFuZVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJzaWduaW5nTmFtZVwiOiBcImlvdGRhdGFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiRGVsZXRlVGhpbmdTaGFkb3dcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RoaW5ncy97dGhpbmdOYW1lfS9zaGFkb3dcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJ0aGluZ05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidGhpbmdOYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidGhpbmdOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInBheWxvYWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcInBheWxvYWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRUaGluZ1NoYWRvd1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9L3NoYWRvd1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ05hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwicGF5bG9hZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1Ymxpc2hcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3RvcGljcy97dG9waWN9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwidG9waWNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwidG9waWNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0b3BpY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInFvc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicW9zXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcInBheWxvYWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVUaGluZ1NoYWRvd1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdGhpbmdzL3t0aGluZ05hbWV9L3NoYWRvd1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRoaW5nTmFtZVwiLFxuICAgICAgICAgIFwicGF5bG9hZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0aGluZ05hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0aGluZ05hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwicGF5bG9hZFwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJwYXlsb2FkXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHt9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMy0xMi0wMlwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJraW5lc2lzXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiS2luZXNpc1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIEtpbmVzaXNcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIktpbmVzaXNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiS2luZXNpc18yMDEzMTIwMlwiLFxuICAgIFwidWlkXCI6IFwia2luZXNpcy0yMDEzLTEyLTAyXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFRhZ3NUb1N0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlNoYXJkQ291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNoYXJkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RIb3Vyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kSG91cnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMaW1pdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNoYXJkTGltaXRcIixcbiAgICAgICAgICBcIk9wZW5TaGFyZENvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNoYXJkTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wZW5TaGFyZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4Y2x1c2l2ZVN0YXJ0U2hhcmRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1EZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICAgICAgXCJTdHJlYW1BUk5cIixcbiAgICAgICAgICAgICAgXCJTdHJlYW1TdGF0dXNcIixcbiAgICAgICAgICAgICAgXCJTaGFyZHNcIixcbiAgICAgICAgICAgICAgXCJIYXNNb3JlU2hhcmRzXCIsXG4gICAgICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kSG91cnNcIixcbiAgICAgICAgICAgICAgXCJTdHJlYW1DcmVhdGlvblRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgICBcIkVuaGFuY2VkTW9uaXRvcmluZ1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0cmVhbUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdHJlYW1TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiU2hhcmRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkhhc01vcmVTaGFyZHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJldGVudGlvblBlcmlvZEhvdXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdHJlYW1DcmVhdGlvblRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbmhhbmNlZE1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5jcnlwdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdHJlYW1TdW1tYXJ5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtRGVzY3JpcHRpb25TdW1tYXJ5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbURlc2NyaXB0aW9uU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICAgICAgXCJTdHJlYW1BUk5cIixcbiAgICAgICAgICAgICAgXCJTdHJlYW1TdGF0dXNcIixcbiAgICAgICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RIb3Vyc1wiLFxuICAgICAgICAgICAgICBcIlN0cmVhbUNyZWF0aW9uVGltZXN0YW1wXCIsXG4gICAgICAgICAgICAgIFwiRW5oYW5jZWRNb25pdG9yaW5nXCIsXG4gICAgICAgICAgICAgIFwiT3BlblNoYXJkQ291bnRcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdHJlYW1BUk5cIjoge30sXG4gICAgICAgICAgICAgIFwiU3RyZWFtU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJldGVudGlvblBlcmlvZEhvdXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdHJlYW1DcmVhdGlvblRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbmhhbmNlZE1vbml0b3JpbmdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5jcnlwdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiT3BlblNoYXJkQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlNoYXJkTGV2ZWxNZXRyaWNzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTaGFyZExldmVsTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiU2hhcmRMZXZlbE1ldHJpY3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNoYXJkTGV2ZWxNZXRyaWNzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVjb3Jkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2hhcmRJdGVyYXRvclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZEl0ZXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWNvcmRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclwiLFxuICAgICAgICAgICAgICAgIFwiRGF0YVwiLFxuICAgICAgICAgICAgICAgIFwiUGFydGl0aW9uS2V5XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNlcXVlbmNlTnVtYmVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXBwcm94aW1hdGVBcnJpdmFsVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBhcnRpdGlvbktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFNoYXJkSXRlcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJNaWxsaXNCZWhpbmRMYXRlc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNoYXJkSXRlcmF0b3JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlNoYXJkSWRcIixcbiAgICAgICAgICBcIlNoYXJkSXRlcmF0b3JUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTaGFyZElkXCI6IHt9LFxuICAgICAgICAgIFwiU2hhcmRJdGVyYXRvclR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydGluZ1NlcXVlbmNlTnVtYmVyXCI6IHt9LFxuICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNoYXJkSXRlcmF0b3JcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiUmV0ZW50aW9uUGVyaW9kSG91cnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJldGVudGlvblBlcmlvZEhvdXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U2hhcmRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydFNoYXJkSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdHJlYW1DcmVhdGlvblRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0cmVhbXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4Y2x1c2l2ZVN0YXJ0U3RyZWFtTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lc1wiLFxuICAgICAgICAgIFwiSGFzTW9yZVN0cmVhbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGFzTW9yZVN0cmVhbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yU3RyZWFtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydFRhZ0tleVwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnc1wiLFxuICAgICAgICAgIFwiSGFzTW9yZVRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIktleVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhhc01vcmVUYWdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNZXJnZVNoYXJkc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiU2hhcmRUb01lcmdlXCIsXG4gICAgICAgICAgXCJBZGphY2VudFNoYXJkVG9NZXJnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2hhcmRUb01lcmdlXCI6IHt9LFxuICAgICAgICAgIFwiQWRqYWNlbnRTaGFyZFRvTWVyZ2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRSZWNvcmRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIkRhdGFcIixcbiAgICAgICAgICBcIlBhcnRpdGlvbktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFydGl0aW9uS2V5XCI6IHt9LFxuICAgICAgICAgIFwiRXhwbGljaXRIYXNoS2V5XCI6IHt9LFxuICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJGb3JPcmRlcmluZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTaGFyZElkXCIsXG4gICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZElkXCI6IHt9LFxuICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJcIjoge30sXG4gICAgICAgICAgXCJFbmNyeXB0aW9uVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFJlY29yZHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlY29yZHNcIixcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkRhdGFcIixcbiAgICAgICAgICAgICAgICBcIlBhcnRpdGlvbktleVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFeHBsaWNpdEhhc2hLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQYXJ0aXRpb25LZXlcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlY29yZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmFpbGVkUmVjb3JkQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNlcXVlbmNlTnVtYmVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2hhcmRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVycm9yTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc0Zyb21TdHJlYW1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3BsaXRTaGFyZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiU2hhcmRUb1NwbGl0XCIsXG4gICAgICAgICAgXCJOZXdTdGFydGluZ0hhc2hLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNoYXJkVG9TcGxpdFwiOiB7fSxcbiAgICAgICAgICBcIk5ld1N0YXJ0aW5nSGFzaEtleVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0U3RyZWFtRW5jcnlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtTmFtZVwiLFxuICAgICAgICAgIFwiRW5jcnlwdGlvblR5cGVcIixcbiAgICAgICAgICBcIktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmNyeXB0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcFN0cmVhbUVuY3J5cHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCIsXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvblR5cGVcIjoge30sXG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVNoYXJkQ291bnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIixcbiAgICAgICAgICBcIlRhcmdldFNoYXJkQ291bnRcIixcbiAgICAgICAgICBcIlNjYWxpbmdUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRTaGFyZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2FsaW5nVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJDdXJyZW50U2hhcmRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0U2hhcmRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2hhcmRJZFwiLFxuICAgICAgICAgIFwiSGFzaEtleVJhbmdlXCIsXG4gICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclJhbmdlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNoYXJkSWRcIjoge30sXG4gICAgICAgICAgXCJQYXJlbnRTaGFyZElkXCI6IHt9LFxuICAgICAgICAgIFwiQWRqYWNlbnRQYXJlbnRTaGFyZElkXCI6IHt9LFxuICAgICAgICAgIFwiSGFzaEtleVJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiU3RhcnRpbmdIYXNoS2V5XCIsXG4gICAgICAgICAgICAgIFwiRW5kaW5nSGFzaEtleVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGFydGluZ0hhc2hLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiRW5kaW5nSGFzaEtleVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiU3RhcnRpbmdTZXF1ZW5jZU51bWJlclwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGFydGluZ1NlcXVlbmNlTnVtYmVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuZGluZ1NlcXVlbmNlTnVtYmVyXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZExldmVsTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0cmVhbU5hbWVcIjoge30sXG4gICAgICAgIFwiQ3VycmVudFNoYXJkTGV2ZWxNZXRyaWNzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlc2lyZWRTaGFyZExldmVsTWV0cmljc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlU3RyZWFtXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJFeGNsdXNpdmVTdGFydFNoYXJkSWRcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiU3RyZWFtRGVzY3JpcHRpb24uSGFzTW9yZVNoYXJkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJTdHJlYW1EZXNjcmlwdGlvbi5TaGFyZHNbLTFdLlNoYXJkSWRcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0cmVhbURlc2NyaXB0aW9uLlNoYXJkc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTdHJlYW1zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJFeGNsdXNpdmVTdGFydFN0cmVhbU5hbWVcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiSGFzTW9yZVN0cmVhbXNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiU3RyZWFtTmFtZXNbLTFdXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdHJlYW1OYW1lc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIlN0cmVhbUV4aXN0c1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDEwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZVN0cmVhbVwiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAxOCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJBQ1RJVkVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU3RyZWFtRGVzY3JpcHRpb24uU3RyZWFtU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJTdHJlYW1Ob3RFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiAxMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVTdHJlYW1cIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMTgsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTExLTAxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImttc1wiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIktNU1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIEtleSBNYW5hZ2VtZW50IFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIktNU1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJUcmVudFNlcnZpY2VcIixcbiAgICBcInVpZFwiOiBcImttcy0yMDE0LTExLTAxXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkNhbmNlbEtleURlbGV0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQWxpYXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFsaWFzTmFtZVwiLFxuICAgICAgICAgIFwiVGFyZ2V0S2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxpYXNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0S2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVHcmFudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIixcbiAgICAgICAgICBcIkdyYW50ZWVQcmluY2lwYWxcIixcbiAgICAgICAgICBcIk9wZXJhdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJHcmFudGVlUHJpbmNpcGFsXCI6IHt9LFxuICAgICAgICAgIFwiUmV0aXJpbmdQcmluY2lwYWxcIjoge30sXG4gICAgICAgICAgXCJPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50VG9rZW5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHcmFudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiR3JhbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUtleVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb2xpY3lcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIktleVVzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiT3JpZ2luXCI6IHt9LFxuICAgICAgICAgIFwiQnlwYXNzUG9saWN5TG9ja291dFNhZmV0eUNoZWNrXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlY3J5cHRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNpcGhlcnRleHRCbG9iXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpcGhlcnRleHRCbG9iXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNyeXB0aW9uQ29udGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFRva2Vuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlBsYWludGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQWxpYXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFsaWFzTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGlhc05hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJbXBvcnRlZEtleU1hdGVyaWFsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlS2V5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkdyYW50VG9rZW5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2FibGVLZXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZUtleVJvdGF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZUtleVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVLZXlSb3RhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmNyeXB0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiLFxuICAgICAgICAgIFwiUGxhaW50ZXh0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGxhaW50ZXh0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNyeXB0aW9uQ29udGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFRva2Vuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaXBoZXJ0ZXh0QmxvYlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZW5lcmF0ZURhdGFLZXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiRW5jcnlwdGlvbkNvbnRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTnVtYmVyT2ZCeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5U3BlY1wiOiB7fSxcbiAgICAgICAgICBcIkdyYW50VG9rZW5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpcGhlcnRleHRCbG9iXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQbGFpbnRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJFbmNyeXB0aW9uQ29udGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlTcGVjXCI6IHt9LFxuICAgICAgICAgIFwiTnVtYmVyT2ZCeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRUb2tlbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2lwaGVydGV4dEJsb2JcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2VuZXJhdGVSYW5kb21cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTnVtYmVyT2ZCeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhaW50ZXh0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRLZXlQb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCIsXG4gICAgICAgICAgXCJQb2xpY3lOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEtleVJvdGF0aW9uU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVJvdGF0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UGFyYW1ldGVyc0ZvckltcG9ydFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIixcbiAgICAgICAgICBcIldyYXBwaW5nQWxnb3JpdGhtXCIsXG4gICAgICAgICAgXCJXcmFwcGluZ0tleVNwZWNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJXcmFwcGluZ0FsZ29yaXRobVwiOiB7fSxcbiAgICAgICAgICBcIldyYXBwaW5nS2V5U3BlY1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiSW1wb3J0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY0tleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1ZhbGlkVG9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW1wb3J0S2V5TWF0ZXJpYWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCIsXG4gICAgICAgICAgXCJJbXBvcnRUb2tlblwiLFxuICAgICAgICAgIFwiRW5jcnlwdGVkS2V5TWF0ZXJpYWxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJJbXBvcnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jcnlwdGVkS2V5TWF0ZXJpYWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZhbGlkVG9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwaXJhdGlvbk1vZGVsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFsaWFzZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFsaWFzTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFsaWFzQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0S2V5SWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0R3JhbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiS2V5SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RLZXlQb2xpY2llc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5TmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEtleXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS2V5QXJuXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlc291cmNlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmV0aXJhYmxlR3JhbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXRpcmluZ1ByaW5jaXBhbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmV0aXJpbmdQcmluY2lwYWxcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEtleVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIixcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIixcbiAgICAgICAgICBcIlBvbGljeVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lcIjoge30sXG4gICAgICAgICAgXCJCeXBhc3NQb2xpY3lMb2Nrb3V0U2FmZXR5Q2hlY2tcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlRW5jcnlwdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2lwaGVydGV4dEJsb2JcIixcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uS2V5SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2lwaGVydGV4dEJsb2JcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZUVuY3J5cHRpb25Db250ZXh0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvbkVuY3J5cHRpb25Db250ZXh0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50VG9rZW5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNpcGhlcnRleHRCbG9iXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIktleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV0aXJlR3JhbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR3JhbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiR3JhbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZUdyYW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiLFxuICAgICAgICAgIFwiR3JhbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkdyYW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY2hlZHVsZUtleURlbGV0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlBlbmRpbmdXaW5kb3dJbkRheXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGVsZXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlJZFwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5SWRcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFsaWFzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGlhc05hbWVcIixcbiAgICAgICAgICBcIlRhcmdldEtleUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsaWFzTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEtleUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlS2V5RGVzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleUlkXCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFbmNyeXB0aW9uQ29udGV4dFN1YnNldFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmNyeXB0aW9uQ29udGV4dEVxdWFsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ0tleVwiLFxuICAgICAgICAgIFwiVGFnVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVGFnVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIktleUlkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFXU0FjY291bnRJZFwiOiB7fSxcbiAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIktleVVzYWdlXCI6IHt9LFxuICAgICAgICBcIktleVN0YXRlXCI6IHt9LFxuICAgICAgICBcIkRlbGV0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWYWxpZFRvXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9yaWdpblwiOiB7fSxcbiAgICAgICAgXCJFeHBpcmF0aW9uTW9kZWxcIjoge30sXG4gICAgICAgIFwiS2V5TWFuYWdlclwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMjVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkdyYW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJHcmFudElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkdyYW50ZWVQcmluY2lwYWxcIjoge30sXG4gICAgICAgICAgICAgIFwiUmV0aXJpbmdQcmluY2lwYWxcIjoge30sXG4gICAgICAgICAgICAgIFwiSXNzdWluZ0FjY291bnRcIjoge30sXG4gICAgICAgICAgICAgIFwiT3BlcmF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb25zdHJhaW50c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICBcIlRydW5jYXRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0QWxpYXNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIlRydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBbGlhc2VzXCJcbiAgICB9LFxuICAgIFwiTGlzdEdyYW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIlRydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJHcmFudHNcIlxuICAgIH0sXG4gICAgXCJMaXN0S2V5UG9saWNpZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dE1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUG9saWN5TmFtZXNcIlxuICAgIH0sXG4gICAgXCJMaXN0S2V5c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIlRydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJLZXlzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMTEtMTFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwibGFtYmRhXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgTGFtYmRhXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZEV2ZW50U291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTExLTEzL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy9cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFdmVudFNvdXJjZVwiLFxuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJSb2xlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIkJhdGNoU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRnVuY3Rpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RXZlbnRTb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZXZlbnQtc291cmNlLW1hcHBpbmdzL3tVVUlEfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVVVJRFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVVUlEXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVVVJRFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRGdW5jdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNC0xMS0xMy9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJlcG9zaXRvcnlUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkxvY2F0aW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNC0xMS0xMy9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uZmlndXJhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJJbnZva2VBc3luY1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNC0xMS0xMy9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vaW52b2tlLWFzeW5jL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJJbnZva2VBcmdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludm9rZUFyZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkludm9rZUFyZ3NcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInN0YXR1c0NvZGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RXZlbnRTb3VyY2VzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTExLTEzL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTb3VyY2VBcm5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50U291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudFNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RnVuY3Rpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE0LTExLTEzL2Z1bmN0aW9ucy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRnVuY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlRXZlbnRTb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZXZlbnQtc291cmNlLW1hcHBpbmdzL3tVVUlEfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVVVJRFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVVUlEXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVVVJRFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNC0xMS0xMy9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uZmlndXJhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJvbGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIYW5kbGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIYW5kbGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZW91dFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGltZW91dFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1lbW9yeVNpemVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1lbW9yeVNpemVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNlXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBsb2FkRnVuY3Rpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIixcbiAgICAgICAgICBcIkZ1bmN0aW9uWmlwXCIsXG4gICAgICAgICAgXCJSdW50aW1lXCIsXG4gICAgICAgICAgXCJSb2xlXCIsXG4gICAgICAgICAgXCJIYW5kbGVyXCIsXG4gICAgICAgICAgXCJNb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZ1bmN0aW9uWmlwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJ1bnRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJ1bnRpbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSb2xlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSGFuZGxlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSGFuZGxlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1vZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVzY3JpcHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUaW1lb3V0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWVtb3J5U2l6ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWVtb3J5U2l6ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJGdW5jdGlvblppcFwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlVVSURcIjoge30sXG4gICAgICAgIFwiQmF0Y2hTaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFdmVudFNvdXJjZVwiOiB7fSxcbiAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSb2xlXCI6IHt9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJc0FjdGl2ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge30sXG4gICAgICAgIFwiRnVuY3Rpb25BUk5cIjoge30sXG4gICAgICAgIFwiQ29uZmlndXJhdGlvbklkXCI6IHt9LFxuICAgICAgICBcIlJ1bnRpbWVcIjoge30sXG4gICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgXCJIYW5kbGVyXCI6IHt9LFxuICAgICAgICBcIk1vZGVcIjoge30sXG4gICAgICAgIFwiQ29kZVNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlRpbWVvdXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1lbW9yeVNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJibG9iXCIsXG4gICAgICBcInN0cmVhbWluZ1wiOiB0cnVlXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdEV2ZW50U291cmNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkV2ZW50U291cmNlc1wiXG4gICAgfSxcbiAgICBcIkxpc3RGdW5jdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJGdW5jdGlvbnNcIlxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wMy0zMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJsYW1iZGFcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgTGFtYmRhXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJMYW1iZGFcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwibGFtYmRhLTIwMTUtMDMtMzFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkUGVybWlzc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vcG9saWN5XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlN0YXRlbWVudElkXCIsXG4gICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICBcIlByaW5jaXBhbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGF0ZW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByaW5jaXBhbFwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUFjY291bnRcIjoge30sXG4gICAgICAgICAgXCJFdmVudFNvdXJjZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUXVhbGlmaWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJRdWFsaWZpZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXZpc2lvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdGVtZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQWxpYXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2FsaWFzZXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiRnVuY3Rpb25WZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJGdW5jdGlvblZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlJvdXRpbmdDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUV2ZW50U291cmNlTWFwcGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9ldmVudC1zb3VyY2UtbWFwcGluZ3MvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFdmVudFNvdXJjZUFyblwiLFxuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U291cmNlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmF0Y2hTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydGluZ1Bvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRnVuY3Rpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlJ1bnRpbWVcIixcbiAgICAgICAgICBcIlJvbGVcIixcbiAgICAgICAgICBcIkhhbmRsZXJcIixcbiAgICAgICAgICBcIkNvZGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUnVudGltZVwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgXCJIYW5kbGVyXCI6IHt9LFxuICAgICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiWmlwRmlsZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTM0J1Y2tldFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTM0tleVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTM09iamVjdFZlcnNpb25cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZW1vcnlTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaXNoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlYWRMZXR0ZXJDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLTVNLZXlBcm5cIjoge30sXG4gICAgICAgICAgXCJUcmFjaW5nQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFsaWFzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzL3tOYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRXZlbnRTb3VyY2VNYXBwaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy97VVVJRH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVVSURcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVVVJRFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVVSURcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRnVuY3Rpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUXVhbGlmaWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJRdWFsaWZpZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVGdW5jdGlvbkNvbmN1cnJlbmN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb25jdXJyZW5jeVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEFjY291bnRTZXR0aW5nc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNi0wOC0xOS9hY2NvdW50LXNldHRpbmdzL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NvdW50TGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlRvdGFsQ29kZVNpemVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvZGVTaXplVW56aXBwZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvZGVTaXplWmlwcGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb25jdXJyZW50RXhlY3V0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVW5yZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2NvdW50VXNhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlRvdGFsQ29kZVNpemVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkZ1bmN0aW9uQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEFsaWFzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzL3tOYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEV2ZW50U291cmNlTWFwcGluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9ldmVudC1zb3VyY2UtbWFwcGluZ3Mve1VVSUR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVVUlEXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVVSURcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVVUlEXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZ1bmN0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1YWxpZmllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVhbGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29kZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUmVwb3NpdG9yeVR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiTG9jYXRpb25cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uY3VycmVuY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uZmlndXJhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1YWxpZmllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVhbGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L3BvbGljeVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1YWxpZmllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVhbGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiUmV2aXNpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkludm9rZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vaW52b2NhdGlvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52b2NhdGlvblR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJYLUFtei1JbnZvY2F0aW9uLVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMb2dUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiWC1BbXotTG9nLVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRDb250ZXh0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiWC1BbXotQ2xpZW50LUNvbnRleHRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXlsb2FkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1YWxpZmllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVhbGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlBheWxvYWRcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJzdGF0dXNDb2RlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnVuY3Rpb25FcnJvclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlgtQW16LUZ1bmN0aW9uLUVycm9yXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9nUmVzdWx0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiWC1BbXotTG9nLVJlc3VsdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhlY3V0ZWRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiWC1BbXotRXhlY3V0ZWQtVmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQYXlsb2FkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW52b2tlQXN5bmNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMTEtMTMvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2ludm9rZS1hc3luYy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiSW52b2tlQXJnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZva2VBcmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIixcbiAgICAgICAgICAgIFwic3RyZWFtaW5nXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlLFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZva2VBcmdzXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJzdGF0dXNDb2RlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdEFsaWFzZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2FsaWFzZXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGdW5jdGlvblZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uVmVyc2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkFsaWFzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RXZlbnRTb3VyY2VNYXBwaW5nc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9ldmVudC1zb3VyY2UtbWFwcGluZ3MvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U291cmNlQXJuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFNvdXJjZUFyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTb3VyY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RGdW5jdGlvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXN0ZXJSZWdpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1hc3RlclJlZ2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZ1bmN0aW9uVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25WZXJzaW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWF4SXRlbXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRnVuY3Rpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0zMS90YWdzL3tBUk59XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBUk5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VmVyc2lvbnNCeUZ1bmN0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS92ZXJzaW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdWJsaXNoVmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vdmVyc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb2RlU2hhMjU2XCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSZXZpc2lvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRGdW5jdGlvbkNvbmN1cnJlbmN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTEwLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9jb25jdXJyZW5jeVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJSZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlUGVybWlzc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vcG9saWN5L3tTdGF0ZW1lbnRJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU3RhdGVtZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdGVtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdGF0ZW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1YWxpZmllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVhbGlmaWVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV2aXNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmV2aXNpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE3LTAzLTMxL3RhZ3Mve0FSTn1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQVJOXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVW50YWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNy0wMy0zMS90YWdzL3tBUk59XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFSTlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRhZ0tleXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFsaWFzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2Z1bmN0aW9ucy97RnVuY3Rpb25OYW1lfS9hbGlhc2VzL3tOYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCIsXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRnVuY3Rpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJSb3V0aW5nQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldmlzaW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDE1LTAzLTMxL2V2ZW50LXNvdXJjZS1tYXBwaW5ncy97VVVJRH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAyXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVVSURcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVVVJRFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVVSURcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCYXRjaFNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVGdW5jdGlvbkNvZGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTUtMDMtMzEvZnVuY3Rpb25zL3tGdW5jdGlvbk5hbWV9L2NvZGVcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGdW5jdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGdW5jdGlvbk5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJaaXBGaWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlMzQnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiUzNLZXlcIjoge30sXG4gICAgICAgICAgXCJTM09iamVjdFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJQdWJsaXNoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEcnlSdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldmlzaW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUZ1bmN0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxNS0wMy0zMS9mdW5jdGlvbnMve0Z1bmN0aW9uTmFtZX0vY29uZmlndXJhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRnVuY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZ1bmN0aW9uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgXCJIYW5kbGVyXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZW1vcnlTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSdW50aW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVhZExldHRlckNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5QXJuXCI6IHt9LFxuICAgICAgICAgIFwiVHJhY2luZ0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV2aXNpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBZGRpdGlvbmFsVmVyc2lvbldlaWdodHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkFsaWFzQXJuXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiRnVuY3Rpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlJvdXRpbmdDb25maWdcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmV2aXNpb25JZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVVVJRFwiOiB7fSxcbiAgICAgICAgXCJCYXRjaFNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV2ZW50U291cmNlQXJuXCI6IHt9LFxuICAgICAgICBcIkZ1bmN0aW9uQXJuXCI6IHt9LFxuICAgICAgICBcIkxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0UHJvY2Vzc2luZ1Jlc3VsdFwiOiB7fSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJTdGF0ZVRyYW5zaXRpb25SZWFzb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhcmdldEFyblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJNb2RlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZ1bmN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJGdW5jdGlvbkFyblwiOiB7fSxcbiAgICAgICAgXCJSdW50aW1lXCI6IHt9LFxuICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgIFwiSGFuZGxlclwiOiB7fSxcbiAgICAgICAgXCJDb2RlU2l6ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVGltZW91dFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWVtb3J5U2l6ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHt9LFxuICAgICAgICBcIkNvZGVTaGEyNTZcIjoge30sXG4gICAgICAgIFwiVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJWcGNDb25maWdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVnBjSWRcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVhZExldHRlckNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW52aXJvbm1lbnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRXJyb3JcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIktNU0tleUFyblwiOiB7fSxcbiAgICAgICAgXCJUcmFjaW5nQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJNb2RlXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk1hc3RlckFyblwiOiB7fSxcbiAgICAgICAgXCJSZXZpc2lvbklkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdEV2ZW50U291cmNlTWFwcGluZ3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudFNvdXJjZU1hcHBpbmdzXCJcbiAgICB9LFxuICAgIFwiTGlzdEZ1bmN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkZ1bmN0aW9uc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNy0wNC0xOVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJtb2RlbHMubGV4XCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LWpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBMZXggTW9kZWwgQnVpbGRpbmcgU2VydmljZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiTGV4IE1vZGVsIEJ1aWxkaW5nIFNlcnZpY2VcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwic2lnbmluZ05hbWVcIjogXCJsZXhcIixcbiAgICBcInVpZFwiOiBcImxleC1tb2RlbHMtMjAxNy0wNC0xOVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVCb3RWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3RzL3tuYW1lfS92ZXJzaW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaW50ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGFyaWZpY2F0aW9uUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFib3J0U3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImZhaWx1cmVSZWFzb25cIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaWRsZVNlc3Npb25UVExJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZvaWNlSWRcIjoge30sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJsb2NhbGVcIjoge30sXG4gICAgICAgICAgXCJjaGlsZERpcmVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVJbnRlbnRWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pbnRlbnRzL3tuYW1lfS92ZXJzaW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwic2xvdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2FtcGxlVXR0ZXJhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25maXJtYXRpb25Qcm9tcHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVqZWN0aW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvbGxvd1VwUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbmNsdXNpb25TdGF0ZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGlhbG9nQ29kZUhvb2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZ1bGZpbGxtZW50QWN0aXZpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmVudEludGVudFNpZ25hdHVyZVwiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTbG90VHlwZVZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nsb3R0eXBlcy97bmFtZX0vdmVyc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImVudW1lcmF0aW9uVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVTZWxlY3Rpb25TdHJhdGVneVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJvdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97bmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCb3RBbGlhc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97Ym90TmFtZX0vYWxpYXNlcy97bmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcImJvdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib3ROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90TmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJvdENoYW5uZWxBc3NvY2lhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97Ym90TmFtZX0vYWxpYXNlcy97YWxpYXNOYW1lfS9jaGFubmVscy97bmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcImJvdE5hbWVcIixcbiAgICAgICAgICBcImJvdEFsaWFzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJvdE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib3RBbGlhc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsaWFzTmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJvdFZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve25hbWV9L3ZlcnNpb25zL3t2ZXJzaW9ufVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwidmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSW50ZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pbnRlbnRzL3tuYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUludGVudFZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2ludGVudHMve25hbWV9L3ZlcnNpb25zL3t2ZXJzaW9ufVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwidmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU2xvdFR5cGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nsb3R0eXBlcy97bmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTbG90VHlwZVZlcnNpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nsb3R0eXBlcy97bmFtZX0vdmVyc2lvbi97dmVyc2lvbn1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVV0dGVyYW5jZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve2JvdE5hbWV9L3V0dGVyYW5jZXMve3VzZXJJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImJvdE5hbWVcIixcbiAgICAgICAgICBcInVzZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJib3ROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJvdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97bmFtZX0vdmVyc2lvbnMve3ZlcnNpb25vcmFsaWFzfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwidmVyc2lvbk9yQWxpYXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uT3JBbGlhc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25vcmFsaWFzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaW50ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGFyaWZpY2F0aW9uUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFib3J0U3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImZhaWx1cmVSZWFzb25cIjoge30sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaWRsZVNlc3Npb25UVExJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZvaWNlSWRcIjoge30sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJsb2NhbGVcIjoge30sXG4gICAgICAgICAgXCJjaGlsZERpcmVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCb3RBbGlhc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97Ym90TmFtZX0vYWxpYXNlcy97bmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcImJvdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib3ROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90TmFtZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImJvdFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJib3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Qm90QWxpYXNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97Ym90TmFtZX0vYWxpYXNlcy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImJvdE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYm90TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJvdE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lQ29udGFpbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVDb250YWluc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJvdEFsaWFzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImJvdFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJib3ROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Qm90Q2hhbm5lbEFzc29jaWF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3RzL3tib3ROYW1lfS9hbGlhc2VzL3thbGlhc05hbWV9L2NoYW5uZWxzL3tuYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwiYm90TmFtZVwiLFxuICAgICAgICAgIFwiYm90QWxpYXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib3ROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYm90TmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImJvdEFsaWFzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiYWxpYXNOYW1lXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiYm90QWxpYXNcIjoge30sXG4gICAgICAgICAgXCJib3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICBcImJvdENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImZhaWx1cmVSZWFzb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCb3RDaGFubmVsQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3RzL3tib3ROYW1lfS9hbGlhc2VzL3thbGlhc05hbWV9L2NoYW5uZWxzL1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYm90TmFtZVwiLFxuICAgICAgICAgIFwiYm90QWxpYXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYm90TmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJvdE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJib3RBbGlhc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFsaWFzTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmV4dFRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4UmVzdWx0c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVDb250YWluc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZUNvbnRhaW5zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYm90Q2hhbm5lbEFzc29jaWF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYm90QWxpYXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJib3ROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImJvdENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcImZhaWx1cmVSZWFzb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCb3RWZXJzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy97bmFtZX0vdmVyc2lvbnMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiYm90c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Qm90c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYm90cy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZUNvbnRhaW5zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lQ29udGFpbnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJib3RzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWlsdGluSW50ZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9idWlsdGlucy9pbnRlbnRzL3tzaWduYXR1cmV9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJzaWduYXR1cmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2lnbmF0dXJlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2lnbmF0dXJlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2lnbmF0dXJlXCI6IHt9LFxuICAgICAgICAgIFwic3VwcG9ydGVkTG9jYWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2xvdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWlsdGluSW50ZW50c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYnVpbHRpbnMvaW50ZW50cy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9jYWxlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsb2NhbGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzaWduYXR1cmVDb250YWluc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2lnbmF0dXJlQ29udGFpbnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHRUb2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heFJlc3VsdHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnRlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaWduYXR1cmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdXBwb3J0ZWRMb2NhbGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWlsdGluU2xvdFR5cGVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9idWlsdGlucy9zbG90dHlwZXMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvY2FsZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibG9jYWxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2lnbmF0dXJlQ29udGFpbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInNpZ25hdHVyZUNvbnRhaW5zXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2xvdFR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaWduYXR1cmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdXBwb3J0ZWRMb2NhbGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmpcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRFeHBvcnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2V4cG9ydHMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJ2ZXJzaW9uXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcImV4cG9ydFR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc291cmNlVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4cG9ydFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImV4cG9ydFR5cGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcInJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcImV4cG9ydFR5cGVcIjoge30sXG4gICAgICAgICAgXCJleHBvcnRTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJmYWlsdXJlUmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwidXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SW1wb3J0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9pbXBvcnRzL3tpbXBvcnRJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImltcG9ydElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImltcG9ydElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW1wb3J0SWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwibWVyZ2VTdHJhdGVneVwiOiB7fSxcbiAgICAgICAgICBcImltcG9ydElkXCI6IHt9LFxuICAgICAgICAgIFwiaW1wb3J0U3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiZmFpbHVyZVJlYXNvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnRlbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2ludGVudHMve25hbWV9L3ZlcnNpb25zL3t2ZXJzaW9ufVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwidmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwic2xvdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2FtcGxlVXR0ZXJhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25maXJtYXRpb25Qcm9tcHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVqZWN0aW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvbGxvd1VwUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbmNsdXNpb25TdGF0ZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGlhbG9nQ29kZUhvb2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZ1bGZpbGxtZW50QWN0aXZpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmVudEludGVudFNpZ25hdHVyZVwiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRJbnRlbnRWZXJzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW50ZW50cy97bmFtZX0vdmVyc2lvbnMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiaW50ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SW50ZW50c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW50ZW50cy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZUNvbnRhaW5zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lQ29udGFpbnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnRlbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTbG90VHlwZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvc2xvdHR5cGVzL3tuYW1lfS92ZXJzaW9ucy97dmVyc2lvbn1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcInZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImVudW1lcmF0aW9uVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXN0VXBkYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVTZWxlY3Rpb25TdHJhdGVneVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNsb3RUeXBlVmVyc2lvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nsb3R0eXBlcy97bmFtZX0vdmVyc2lvbnMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwic2xvdFR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTbG90VHlwZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3Nsb3R0eXBlcy9cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0VG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhSZXN1bHRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZUNvbnRhaW5zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lQ29udGFpbnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJzbG90VHlwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFV0dGVyYW5jZXNWaWV3XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3RzL3tib3RuYW1lfS91dHRlcmFuY2VzP3ZpZXc9YWdncmVnYXRpb25cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImJvdE5hbWVcIixcbiAgICAgICAgICBcImJvdFZlcnNpb25zXCIsXG4gICAgICAgICAgXCJzdGF0dXNUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJvdE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3RuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90VmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImJvdF92ZXJzaW9uc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhdHVzX3R5cGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJib3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwidXR0ZXJhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiYm90VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInV0dGVyYW5jZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInV0dGVyYW5jZVN0cmluZ1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcImNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJkaXN0aW5jdFVzZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJmaXJzdFV0dGVyZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcImxhc3RVdHRlcmVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCb3RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2JvdHMve25hbWV9L3ZlcnNpb25zLyRMQVRFU1RcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICBcImxvY2FsZVwiLFxuICAgICAgICAgIFwiY2hpbGREaXJlY3RlZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiaW50ZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGFyaWZpY2F0aW9uUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFib3J0U3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImlkbGVTZXNzaW9uVFRMSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2b2ljZUlkXCI6IHt9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge30sXG4gICAgICAgICAgXCJwcm9jZXNzQmVoYXZpb3JcIjoge30sXG4gICAgICAgICAgXCJsb2NhbGVcIjoge30sXG4gICAgICAgICAgXCJjaGlsZERpcmVjdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJpbnRlbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsYXJpZmljYXRpb25Qcm9tcHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWJvcnRTdGF0ZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiZmFpbHVyZVJlYXNvblwiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpZGxlU2Vzc2lvblRUTEluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidm9pY2VJZFwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9LFxuICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImxvY2FsZVwiOiB7fSxcbiAgICAgICAgICBcImNoaWxkRGlyZWN0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0ZVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJvdEFsaWFzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3RzL3tib3ROYW1lfS9hbGlhc2VzL3tuYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgIFwiYm90VmVyc2lvblwiLFxuICAgICAgICAgIFwiYm90TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiYm90VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcImJvdE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3ROYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJib3RWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiYm90TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjaGVja3N1bVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEludGVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvaW50ZW50cy97bmFtZX0vdmVyc2lvbnMvJExBVEVTVFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwic2xvdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2FtcGxlVXR0ZXJhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25maXJtYXRpb25Qcm9tcHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVqZWN0aW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvbGxvd1VwUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbmNsdXNpb25TdGF0ZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGlhbG9nQ29kZUhvb2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZ1bGZpbGxtZW50QWN0aXZpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmVudEludGVudFNpZ25hdHVyZVwiOiB7fSxcbiAgICAgICAgICBcImNoZWNrc3VtXCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRlVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwic2xvdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2FtcGxlVXR0ZXJhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25maXJtYXRpb25Qcm9tcHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVqZWN0aW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvbGxvd1VwUHJvbXB0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbmNsdXNpb25TdGF0ZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGlhbG9nQ29kZUhvb2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZ1bGZpbGxtZW50QWN0aXZpdHlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcmVudEludGVudFNpZ25hdHVyZVwiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge30sXG4gICAgICAgICAgXCJjcmVhdGVWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRTbG90VHlwZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvc2xvdHR5cGVzL3tuYW1lfS92ZXJzaW9ucy8kTEFURVNUXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJlbnVtZXJhdGlvblZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVNlbGVjdGlvblN0cmF0ZWd5XCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRlVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiZW51bWVyYXRpb25WYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiY2hlY2tzdW1cIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVNlbGVjdGlvblN0cmF0ZWd5XCI6IHt9LFxuICAgICAgICAgIFwiY3JlYXRlVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRJbXBvcnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2ltcG9ydHMvXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwYXlsb2FkXCIsXG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcIm1lcmdlU3RyYXRlZ3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGF5bG9hZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwibWVyZ2VTdHJhdGVneVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJyZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJtZXJnZVN0cmF0ZWd5XCI6IHt9LFxuICAgICAgICAgIFwiaW1wb3J0SWRcIjoge30sXG4gICAgICAgICAgXCJpbXBvcnRTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJpbnRlbnROYW1lXCIsXG4gICAgICAgICAgXCJpbnRlbnRWZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImludGVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJpbnRlbnRWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJtZXNzYWdlc1wiLFxuICAgICAgICBcIm1heEF0dGVtcHRzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIm1lc3NhZ2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1heEF0dGVtcHRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXNwb25zZUNhcmRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJjb250ZW50VHlwZVwiLFxuICAgICAgICAgIFwiY29udGVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJjb250ZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcImNvbnRlbnRcIjoge30sXG4gICAgICAgICAgXCJncm91cE51bWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJtZXNzYWdlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJtZXNzYWdlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXNwb25zZUNhcmRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgXCJzbG90Q29uc3RyYWludFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJzbG90Q29uc3RyYWludFwiOiB7fSxcbiAgICAgICAgICBcInNsb3RUeXBlXCI6IHt9LFxuICAgICAgICAgIFwic2xvdFR5cGVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVFbGljaXRhdGlvblByb21wdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmlvcml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2FtcGxlVXR0ZXJhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNwb25zZUNhcmRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInByb21wdFwiLFxuICAgICAgICBcInJlamVjdGlvblN0YXRlbWVudFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJwcm9tcHRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVqZWN0aW9uU3RhdGVtZW50XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcInVyaVwiLFxuICAgICAgICBcIm1lc3NhZ2VWZXJzaW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInVyaVwiOiB7fSxcbiAgICAgICAgXCJtZXNzYWdlVmVyc2lvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJ0eXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcInR5cGVcIjoge30sXG4gICAgICAgIFwiY29kZUhvb2tcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwic3lub255bXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9LFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMmRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJqXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwibGFzdFVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge30sXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcImxhc3RVcGRhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJHZXRCb3RBbGlhc2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJHZXRCb3RDaGFubmVsQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJHZXRCb3RWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiR2V0Qm90c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJtYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiR2V0QnVpbHRpbkludGVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkdldEJ1aWx0aW5TbG90VHlwZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkdldEludGVudFZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJHZXRJbnRlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJHZXRTbG90VHlwZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIm1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJHZXRTbG90VHlwZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwibWF4UmVzdWx0c1wiXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTAzLTI4XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcImxvZ3NcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBDbG91ZFdhdGNoIExvZ3NcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiTG9nc18yMDE0MDMyOFwiLFxuICAgIFwidWlkXCI6IFwibG9ncy0yMDE0LTAzLTI4XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFzc29jaWF0ZUttc0tleVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJrbXNLZXlJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJrbXNLZXlJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNhbmNlbEV4cG9ydFRhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInRhc2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFeHBvcnRUYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIixcbiAgICAgICAgICBcImZyb21cIixcbiAgICAgICAgICBcInRvXCIsXG4gICAgICAgICAgXCJkZXN0aW5hdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YXNrTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJmcm9tXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0b1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVzdGluYXRpb25cIjoge30sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvblByZWZpeFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUxvZ0dyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwia21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUxvZ1N0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEZXN0aW5hdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGVzdGluYXRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlc3RpbmF0aW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUxvZ0dyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTG9nU3RyZWFtXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIixcbiAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibG9nU3RyZWFtTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU1ldHJpY0ZpbHRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJmaWx0ZXJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZpbHRlck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZXNvdXJjZVBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmV0ZW50aW9uUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU3Vic2NyaXB0aW9uRmlsdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIixcbiAgICAgICAgICBcImZpbHRlck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZmlsdGVyTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGVzdGluYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc3RpbmF0aW9uTmFtZVByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXN0aW5hdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV4cG9ydFRhc2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInRhc2tJZFwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c0NvZGVcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXhwb3J0VGFza3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInRhc2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRhc2tOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZnJvbVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidG9cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImRlc3RpbmF0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzdGluYXRpb25QcmVmaXhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJleGVjdXRpb25JbmZvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJjcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImNvbXBsZXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvZ0dyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJldGVudGlvbkluRGF5c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibWV0cmljRmlsdGVyQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInN0b3JlZEJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJrbXNLZXlJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9nU3RyZWFtc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJvcmRlckJ5XCI6IHt9LFxuICAgICAgICAgIFwiZGVzY2VuZGluZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ1N0cmVhbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImZpcnN0RXZlbnRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImxhc3RFdmVudFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibGFzdEluZ2VzdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInVwbG9hZFNlcXVlbmNlVG9rZW5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJhcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJzdG9yZWRCeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNZXRyaWNGaWx0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZpbHRlck5hbWVQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIm1ldHJpY05hbWVzcGFjZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIm1ldHJpY0ZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImZpbHRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJmaWx0ZXJQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwibWV0cmljVHJhbnNmb3JtYXRpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJjcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzb3VyY2VQb2xpY2llc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicmVzb3VyY2VQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN1YnNjcmlwdGlvbkZpbHRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJmaWx0ZXJOYW1lUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwibmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwibGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInN1YnNjcmlwdGlvbkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImZpbHRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJmaWx0ZXJQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGVzdGluYXRpb25Bcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZGlzdHJpYnV0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiY3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVLbXNLZXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJGaWx0ZXJMb2dFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpbHRlclBhdHRlcm5cIjoge30sXG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJsaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW50ZXJsZWF2ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwibG9nU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImluZ2VzdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWFyY2hlZExvZ1N0cmVhbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJzZWFyY2hlZENvbXBsZXRlbHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldExvZ0V2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxvZ1N0cmVhbU5hbWVcIjoge30sXG4gICAgICAgICAgXCJzdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcImxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFydEZyb21IZWFkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJldmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImluZ2VzdGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRGb3J3YXJkVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJuZXh0QmFja3dhcmRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzTG9nR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dERlc3RpbmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbk5hbWVcIixcbiAgICAgICAgICBcInRhcmdldEFyblwiLFxuICAgICAgICAgIFwicm9sZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkZXN0aW5hdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0YXJnZXRBcm5cIjoge30sXG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZGVzdGluYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0RGVzdGluYXRpb25Qb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImRlc3RpbmF0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiYWNjZXNzUG9saWN5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRlc3RpbmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImFjY2Vzc1BvbGljeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dExvZ0V2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJsb2dTdHJlYW1OYW1lXCIsXG4gICAgICAgICAgXCJsb2dFdmVudHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibG9nU3RyZWFtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImxvZ0V2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiLFxuICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXF1ZW5jZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibmV4dFNlcXVlbmNlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJyZWplY3RlZExvZ0V2ZW50c0luZm9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInRvb05ld0xvZ0V2ZW50U3RhcnRJbmRleFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwidG9vT2xkTG9nRXZlbnRFbmRJbmRleFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZXhwaXJlZExvZ0V2ZW50RW5kSW5kZXhcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dE1ldHJpY0ZpbHRlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJmaWx0ZXJOYW1lXCIsXG4gICAgICAgICAgXCJmaWx0ZXJQYXR0ZXJuXCIsXG4gICAgICAgICAgXCJtZXRyaWNUcmFuc2Zvcm1hdGlvbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiZmlsdGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZpbHRlclBhdHRlcm5cIjoge30sXG4gICAgICAgICAgXCJtZXRyaWNUcmFuc2Zvcm1hdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dFJlc291cmNlUG9saWN5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInBvbGljeU5hbWVcIjoge30sXG4gICAgICAgICAgXCJwb2xpY3lEb2N1bWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRSZXRlbnRpb25Qb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwicmV0ZW50aW9uSW5EYXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInJldGVudGlvbkluRGF5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0U3Vic2NyaXB0aW9uRmlsdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIixcbiAgICAgICAgICBcImZpbHRlck5hbWVcIixcbiAgICAgICAgICBcImZpbHRlclBhdHRlcm5cIixcbiAgICAgICAgICBcImRlc3RpbmF0aW9uQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcImZpbHRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJmaWx0ZXJQYXR0ZXJuXCI6IHt9LFxuICAgICAgICAgIFwiZGVzdGluYXRpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJyb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiZGlzdHJpYnV0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGFnTG9nR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImxvZ0dyb3VwTmFtZVwiLFxuICAgICAgICAgIFwidGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlc3RNZXRyaWNGaWx0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcImZpbHRlclBhdHRlcm5cIixcbiAgICAgICAgICBcImxvZ0V2ZW50TWVzc2FnZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZmlsdGVyUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICBcImxvZ0V2ZW50TWVzc2FnZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibWF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiZXZlbnROdW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImV2ZW50TWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RlZFZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbnRhZ0xvZ0dyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJsb2dHcm91cE5hbWVcIixcbiAgICAgICAgICBcInRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwibG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiU3hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcImRlc3RpbmF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJ0YXJnZXRBcm5cIjoge30sXG4gICAgICAgIFwicm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJhY2Nlc3NQb2xpY3lcIjoge30sXG4gICAgICAgIFwiYXJuXCI6IHt9LFxuICAgICAgICBcImNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwibWV0cmljTmFtZVwiLFxuICAgICAgICAgIFwibWV0cmljTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJtZXRyaWNWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJtZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwibWV0cmljTmFtZXNwYWNlXCI6IHt9LFxuICAgICAgICAgIFwibWV0cmljVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJkZWZhdWx0VmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzIyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJwb2xpY3lOYW1lXCI6IHt9LFxuICAgICAgICBcInBvbGljeURvY3VtZW50XCI6IHt9LFxuICAgICAgICBcImxhc3RVcGRhdGVkVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZURlc3RpbmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiZGVzdGluYXRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2dHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcImxvZ0dyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9nU3RyZWFtc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwibG9nU3RyZWFtc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWV0cmljRmlsdGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwibWV0cmljRmlsdGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3Vic2NyaXB0aW9uRmlsdGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwic3Vic2NyaXB0aW9uRmlsdGVyc1wiXG4gICAgfSxcbiAgICBcIkZpbHRlckxvZ0V2ZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwibmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcImxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFtcbiAgICAgICAgXCJldmVudHNcIixcbiAgICAgICAgXCJzZWFyY2hlZExvZ1N0cmVhbXNcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJHZXRMb2dFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIm5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJsaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJuZXh0Rm9yd2FyZFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJldmVudHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwidWlkXCI6IFwibWFjaGluZWxlYXJuaW5nLTIwMTQtMTItMTJcIixcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTEyLTEyXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcIm1hY2hpbmVsZWFybmluZ1wiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBNYWNoaW5lIExlYXJuaW5nXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFtYXpvbk1MXzIwMTQxMjEyXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnc1wiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVCYXRjaFByZWRpY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCIsXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIixcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbkRhdGFTb3VyY2VJZFwiLFxuICAgICAgICAgIFwiT3V0cHV0VXJpXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiQmF0Y2hQcmVkaWN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIk91dHB1dFVyaVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGF0YVNvdXJjZUZyb21SRFNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiLFxuICAgICAgICAgIFwiUkRTRGF0YVwiLFxuICAgICAgICAgIFwiUm9sZUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEYXRhU291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJEU0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJEYXRhYmFzZUluZm9ybWF0aW9uXCIsXG4gICAgICAgICAgICAgIFwiU2VsZWN0U3FsUXVlcnlcIixcbiAgICAgICAgICAgICAgXCJEYXRhYmFzZUNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgICAgIFwiUzNTdGFnaW5nTG9jYXRpb25cIixcbiAgICAgICAgICAgICAgXCJSZXNvdXJjZVJvbGVcIixcbiAgICAgICAgICAgICAgXCJTZXJ2aWNlUm9sZVwiLFxuICAgICAgICAgICAgICBcIlN1Ym5ldElkXCIsXG4gICAgICAgICAgICAgIFwiU2VjdXJpdHlHcm91cElkc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEYXRhYmFzZUluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNlbGVjdFNxbFF1ZXJ5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGFiYXNlQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgXCJQYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiUGFzc3dvcmRcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNTdGFnaW5nTG9jYXRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVJlYXJyYW5nZW1lbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVNjaGVtYVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEYXRhU2NoZW1hVXJpXCI6IHt9LFxuICAgICAgICAgICAgICBcIlJlc291cmNlUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTZXJ2aWNlUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSb2xlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiQ29tcHV0ZVN0YXRpc3RpY3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURhdGFTb3VyY2VGcm9tUmVkc2hpZnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiLFxuICAgICAgICAgIFwiRGF0YVNwZWNcIixcbiAgICAgICAgICBcIlJvbGVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEYXRhU3BlY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkRhdGFiYXNlSW5mb3JtYXRpb25cIixcbiAgICAgICAgICAgICAgXCJTZWxlY3RTcWxRdWVyeVwiLFxuICAgICAgICAgICAgICBcIkRhdGFiYXNlQ3JlZGVudGlhbHNcIixcbiAgICAgICAgICAgICAgXCJTM1N0YWdpbmdMb2NhdGlvblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEYXRhYmFzZUluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlNlbGVjdFNxbFF1ZXJ5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkRhdGFiYXNlQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgICAgICAgICAgXCJQYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiUGFzc3dvcmRcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUzNTdGFnaW5nTG9jYXRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVJlYXJyYW5nZW1lbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVNjaGVtYVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEYXRhU2NoZW1hVXJpXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJDb21wdXRlU3RhdGlzdGljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRGF0YVNvdXJjZUZyb21TM1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJEYXRhU3BlY1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEYXRhU291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFTcGVjXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiRGF0YUxvY2F0aW9uUzNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVJlYXJyYW5nZW1lbnRcIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0YVNjaGVtYVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEYXRhU2NoZW1hTG9jYXRpb25TM1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21wdXRlU3RhdGlzdGljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRXZhbHVhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCIsXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIixcbiAgICAgICAgICBcIkV2YWx1YXRpb25EYXRhU291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiRXZhbHVhdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge30sXG4gICAgICAgICAgXCJFdmFsdWF0aW9uRGF0YVNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTUxNb2RlbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTUxNb2RlbElkXCIsXG4gICAgICAgICAgXCJNTE1vZGVsVHlwZVwiLFxuICAgICAgICAgIFwiVHJhaW5pbmdEYXRhU291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgIFwiTUxNb2RlbE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNTE1vZGVsVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWluaW5nRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVjaXBlXCI6IHt9LFxuICAgICAgICAgIFwiUmVjaXBlVXJpXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUmVhbHRpbWVFbmRwb2ludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTUxNb2RlbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlYWx0aW1lRW5kcG9pbnRJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCYXRjaFByZWRpY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmF0Y2hQcmVkaWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEYXRhU291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRXZhbHVhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU1MTW9kZWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNTE1vZGVsSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZWFsdGltZUVuZHBvaW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgIFwiUmVhbHRpbWVFbmRwb2ludEluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ0tleXNcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVCYXRjaFByZWRpY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclZhcmlhYmxlXCI6IHt9LFxuICAgICAgICAgIFwiRVFcIjoge30sXG4gICAgICAgICAgXCJHVFwiOiB7fSxcbiAgICAgICAgICBcIkxUXCI6IHt9LFxuICAgICAgICAgIFwiR0VcIjoge30sXG4gICAgICAgICAgXCJMRVwiOiB7fSxcbiAgICAgICAgICBcIk5FXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiU29ydE9yZGVyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmF0Y2hQcmVkaWN0aW9uRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5wdXREYXRhTG9jYXRpb25TM1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRCeUlhbVVzZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3V0cHV0VXJpXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbXB1dGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaW5pc2hlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUb3RhbFJlY29yZENvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJbnZhbGlkUmVjb3JkQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRGF0YVNvdXJjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyVmFyaWFibGVcIjoge30sXG4gICAgICAgICAgXCJFUVwiOiB7fSxcbiAgICAgICAgICBcIkdUXCI6IHt9LFxuICAgICAgICAgIFwiTFRcIjoge30sXG4gICAgICAgICAgXCJHRVwiOiB7fSxcbiAgICAgICAgICBcIkxFXCI6IHt9LFxuICAgICAgICAgIFwiTkVcIjoge30sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJTb3J0T3JkZXJcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYXRhUmVhcnJhbmdlbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRCeUlhbVVzZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEYXRhU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk51bWJlck9mRmlsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVkc2hpZnRNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUkRTTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wdXRlU3RhdGlzdGljc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ29tcHV0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpbmlzaGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZhbHVhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyVmFyaWFibGVcIjoge30sXG4gICAgICAgICAgXCJFUVwiOiB7fSxcbiAgICAgICAgICBcIkdUXCI6IHt9LFxuICAgICAgICAgIFwiTFRcIjoge30sXG4gICAgICAgICAgXCJHRVwiOiB7fSxcbiAgICAgICAgICBcIkxFXCI6IHt9LFxuICAgICAgICAgIFwiTkVcIjoge30sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJTb3J0T3JkZXJcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZhbHVhdGlvbkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklucHV0RGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQnlJYW1Vc2VyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBlcmZvcm1hbmNlTWV0cmljc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJxXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbXB1dGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaW5pc2hlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1MTW9kZWxzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlclZhcmlhYmxlXCI6IHt9LFxuICAgICAgICAgIFwiRVFcIjoge30sXG4gICAgICAgICAgXCJHVFwiOiB7fSxcbiAgICAgICAgICBcIkxUXCI6IHt9LFxuICAgICAgICAgIFwiR0VcIjoge30sXG4gICAgICAgICAgXCJMRVwiOiB7fSxcbiAgICAgICAgICBcIk5FXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiU29ydE9yZGVyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRyYWluaW5nRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEJ5SWFtVXNlclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5kcG9pbnRJbmZvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWpcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUcmFpbmluZ1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIklucHV0RGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBbGdvcml0aG1cIjoge30sXG4gICAgICAgICAgICAgICAgXCJNTE1vZGVsVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjb3JlVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2NvcmVUaHJlc2hvbGRMYXN0VXBkYXRlZEF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wdXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmluaXNoZWRBdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGFydGVkQXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJhdGNoUHJlZGljdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQmF0Y2hQcmVkaWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmF0Y2hQcmVkaWN0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIklucHV0RGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgXCJDcmVhdGVkQnlJYW1Vc2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIk91dHB1dFVyaVwiOiB7fSxcbiAgICAgICAgICBcIkxvZ1VyaVwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJDb21wdXRlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluaXNoZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVG90YWxSZWNvcmRDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZFJlY29yZENvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREYXRhU291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVmVyYm9zZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgXCJEYXRhUmVhcnJhbmdlbWVudFwiOiB7fSxcbiAgICAgICAgICBcIkNyZWF0ZWRCeUlhbVVzZXJcIjoge30sXG4gICAgICAgICAgXCJDcmVhdGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdFVwZGF0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk51bWJlck9mRmlsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJMb2dVcmlcIjoge30sXG4gICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiUmVkc2hpZnRNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUkRTTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBUk5cIjoge30sXG4gICAgICAgICAgXCJDb21wdXRlU3RhdGlzdGljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tcHV0ZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbmlzaGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFTb3VyY2VTY2hlbWFcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRFdmFsdWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFdmFsdWF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgIFwiRXZhbHVhdGlvbkRhdGFTb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIklucHV0RGF0YUxvY2F0aW9uUzNcIjoge30sXG4gICAgICAgICAgXCJDcmVhdGVkQnlJYW1Vc2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlBlcmZvcm1hbmNlTWV0cmljc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9nVXJpXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIkNvbXB1dGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5pc2hlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNTE1vZGVsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgIFwiVmVyYm9zZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgIFwiVHJhaW5pbmdEYXRhU291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJDcmVhdGVkQnlJYW1Vc2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRwb2ludEluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWluaW5nUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5wdXREYXRhTG9jYXRpb25TM1wiOiB7fSxcbiAgICAgICAgICBcIk1MTW9kZWxUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU2NvcmVUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY29yZVRocmVzaG9sZExhc3RVcGRhdGVkQXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9nVXJpXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIkNvbXB1dGVUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5pc2hlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWNpcGVcIjoge30sXG4gICAgICAgICAgXCJTY2hlbWFcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQcmVkaWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIixcbiAgICAgICAgICBcIlJlY29yZFwiLFxuICAgICAgICAgIFwiUHJlZGljdEVuZHBvaW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlY29yZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVkaWN0RW5kcG9pbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmVkaWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJwcmVkaWN0ZWRMYWJlbFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJwcmVkaWN0ZWRWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInByZWRpY3RlZFNjb3Jlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcImRldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVCYXRjaFByZWRpY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCIsXG4gICAgICAgICAgXCJCYXRjaFByZWRpY3Rpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiQmF0Y2hQcmVkaWN0aW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhdGNoUHJlZGljdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRGF0YVNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGF0YVNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJEYXRhU291cmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXRhU291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEYXRhU291cmNlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhdGFTb3VyY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUV2YWx1YXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkV2YWx1YXRpb25JZFwiLFxuICAgICAgICAgIFwiRXZhbHVhdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZhbHVhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiRXZhbHVhdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmFsdWF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNTE1vZGVsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNTE1vZGVsSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTUxNb2RlbElkXCI6IHt9LFxuICAgICAgICAgIFwiTUxNb2RlbE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTY29yZVRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1MTW9kZWxJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICBcIkRhdGFiYXNlTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiRGF0YWJhc2VOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRGF0YWJhc2VOYW1lXCIsXG4gICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGF0YWJhc2VOYW1lXCI6IHt9LFxuICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBlYWtSZXF1ZXN0c1BlclNlY29uZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZHBvaW50VXJsXCI6IHt9LFxuICAgICAgICBcIkVuZHBvaW50U3RhdHVzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVkc2hpZnREYXRhYmFzZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEYXRhYmFzZVVzZXJOYW1lXCI6IHt9LFxuICAgICAgICBcIlNlbGVjdFNxbFF1ZXJ5XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGF0YWJhc2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGF0YWJhc2VVc2VyTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTZWxlY3RTcWxRdWVyeVwiOiB7fSxcbiAgICAgICAgXCJSZXNvdXJjZVJvbGVcIjoge30sXG4gICAgICAgIFwiU2VydmljZVJvbGVcIjoge30sXG4gICAgICAgIFwiRGF0YVBpcGVsaW5lSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwiZXhhbXBsZXNcIjoge31cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUJhdGNoUHJlZGljdGlvbnNcIjoge1xuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURhdGFTb3VyY2VzXCI6IHtcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmFsdWF0aW9uc1wiOiB7XG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTUxNb2RlbHNcIjoge1xuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc3VsdHNcIlxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIkRhdGFTb3VyY2VBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVEYXRhU291cmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDT01QTEVURURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzdWx0c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc3VsdHNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIk1MTW9kZWxBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVNTE1vZGVsc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDT01QTEVURURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzdWx0c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc3VsdHNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkV2YWx1YXRpb25BdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAzMCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVFdmFsdWF0aW9uc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA2MCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJDT01QTEVURURcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiUmVzdWx0c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiRkFJTEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc3VsdHNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkJhdGNoUHJlZGljdGlvbkF2YWlsYWJsZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUJhdGNoUHJlZGljdGlvbnNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiQ09NUExFVEVEXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIlJlc3VsdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkZBSUxFRFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJSZXN1bHRzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNS0wNy0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJtYXJrZXRwbGFjZWNvbW1lcmNlYW5hbHl0aWNzXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgTWFya2V0cGxhY2UgQ29tbWVyY2UgQW5hbHl0aWNzXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInNpZ25pbmdOYW1lXCI6IFwibWFya2V0cGxhY2Vjb21tZXJjZWFuYWx5dGljc1wiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiTWFya2V0cGxhY2VDb21tZXJjZUFuYWx5dGljczIwMTUwNzAxXCIsXG4gICAgXCJ1aWRcIjogXCJtYXJrZXRwbGFjZWNvbW1lcmNlYW5hbHl0aWNzLTIwMTUtMDctMDFcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiR2VuZXJhdGVEYXRhU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJkYXRhU2V0VHlwZVwiLFxuICAgICAgICAgIFwiZGF0YVNldFB1YmxpY2F0aW9uRGF0ZVwiLFxuICAgICAgICAgIFwicm9sZU5hbWVBcm5cIixcbiAgICAgICAgICBcImRlc3RpbmF0aW9uUzNCdWNrZXROYW1lXCIsXG4gICAgICAgICAgXCJzbnNUb3BpY0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkYXRhU2V0VHlwZVwiOiB7fSxcbiAgICAgICAgICBcImRhdGFTZXRQdWJsaWNhdGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicm9sZU5hbWVBcm5cIjoge30sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvblMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc3RpbmF0aW9uUzNQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJzbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcImN1c3RvbWVyRGVmaW5lZFZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkYXRhU2V0UmVxdWVzdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRTdXBwb3J0RGF0YUV4cG9ydFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiZGF0YVNldFR5cGVcIixcbiAgICAgICAgICBcImZyb21EYXRlXCIsXG4gICAgICAgICAgXCJyb2xlTmFtZUFyblwiLFxuICAgICAgICAgIFwiZGVzdGluYXRpb25TM0J1Y2tldE5hbWVcIixcbiAgICAgICAgICBcInNuc1RvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRhdGFTZXRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiZnJvbURhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicm9sZU5hbWVBcm5cIjoge30sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvblMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcImRlc3RpbmF0aW9uUzNQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJzbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcImN1c3RvbWVyRGVmaW5lZFZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkYXRhU2V0UmVxdWVzdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcImFjbVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQUNNXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJhcGlnYXRld2F5XCI6IHtcbiAgICBcIm5hbWVcIjogXCJBUElHYXRld2F5XCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJhcHBsaWNhdGlvbmF1dG9zY2FsaW5nXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImFwcGxpY2F0aW9uLWF1dG9zY2FsaW5nXCIsXG4gICAgXCJuYW1lXCI6IFwiQXBwbGljYXRpb25BdXRvU2NhbGluZ1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiYXBwc3RyZWFtXCI6IHtcbiAgICBcIm5hbWVcIjogXCJBcHBTdHJlYW1cIlxuICB9LFxuICBcImF1dG9zY2FsaW5nXCI6IHtcbiAgICBcIm5hbWVcIjogXCJBdXRvU2NhbGluZ1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiYmF0Y2hcIjoge1xuICAgIFwibmFtZVwiOiBcIkJhdGNoXCJcbiAgfSxcbiAgXCJidWRnZXRzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJCdWRnZXRzXCJcbiAgfSxcbiAgXCJjbG91ZGRpcmVjdG9yeVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ2xvdWREaXJlY3RvcnlcIixcbiAgICBcInZlcnNpb25zXCI6IFtcbiAgICAgIFwiMjAxNi0wNS0xMCpcIlxuICAgIF1cbiAgfSxcbiAgXCJjbG91ZGZvcm1hdGlvblwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ2xvdWRGb3JtYXRpb25cIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImNsb3VkZnJvbnRcIjoge1xuICAgIFwibmFtZVwiOiBcIkNsb3VkRnJvbnRcIixcbiAgICBcInZlcnNpb25zXCI6IFtcbiAgICAgIFwiMjAxMy0wNS0xMipcIixcbiAgICAgIFwiMjAxMy0xMS0xMSpcIixcbiAgICAgIFwiMjAxNC0wNS0zMSpcIixcbiAgICAgIFwiMjAxNC0xMC0yMSpcIixcbiAgICAgIFwiMjAxNC0xMS0wNipcIixcbiAgICAgIFwiMjAxNS0wNC0xNypcIixcbiAgICAgIFwiMjAxNS0wNy0yNypcIixcbiAgICAgIFwiMjAxNS0wOS0xNypcIixcbiAgICAgIFwiMjAxNi0wMS0xMypcIixcbiAgICAgIFwiMjAxNi0wMS0yOCpcIixcbiAgICAgIFwiMjAxNi0wOC0wMSpcIixcbiAgICAgIFwiMjAxNi0wOC0yMCpcIixcbiAgICAgIFwiMjAxNi0wOS0wNypcIixcbiAgICAgIFwiMjAxNi0wOS0yOSpcIixcbiAgICAgIFwiMjAxNi0xMS0yNSpcIixcbiAgICAgIFwiMjAxNy0wMy0yNSpcIlxuICAgIF0sXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjbG91ZGhzbVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ2xvdWRIU01cIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImNsb3Vkc2VhcmNoXCI6IHtcbiAgICBcIm5hbWVcIjogXCJDbG91ZFNlYXJjaFwiXG4gIH0sXG4gIFwiY2xvdWRzZWFyY2hkb21haW5cIjoge1xuICAgIFwibmFtZVwiOiBcIkNsb3VkU2VhcmNoRG9tYWluXCJcbiAgfSxcbiAgXCJjbG91ZHRyYWlsXCI6IHtcbiAgICBcIm5hbWVcIjogXCJDbG91ZFRyYWlsXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjbG91ZHdhdGNoXCI6IHtcbiAgICBcInByZWZpeFwiOiBcIm1vbml0b3JpbmdcIixcbiAgICBcIm5hbWVcIjogXCJDbG91ZFdhdGNoXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjbG91ZHdhdGNoZXZlbnRzXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImV2ZW50c1wiLFxuICAgIFwibmFtZVwiOiBcIkNsb3VkV2F0Y2hFdmVudHNcIixcbiAgICBcInZlcnNpb25zXCI6IFtcbiAgICAgIFwiMjAxNC0wMi0wMypcIlxuICAgIF0sXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjbG91ZHdhdGNobG9nc1wiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJsb2dzXCIsXG4gICAgXCJuYW1lXCI6IFwiQ2xvdWRXYXRjaExvZ3NcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImNvZGVidWlsZFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiQ29kZUJ1aWxkXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjb2RlY29tbWl0XCI6IHtcbiAgICBcIm5hbWVcIjogXCJDb2RlQ29tbWl0XCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjb2RlZGVwbG95XCI6IHtcbiAgICBcIm5hbWVcIjogXCJDb2RlRGVwbG95XCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJjb2RlcGlwZWxpbmVcIjoge1xuICAgIFwibmFtZVwiOiBcIkNvZGVQaXBlbGluZVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY29nbml0b2lkZW50aXR5XCI6IHtcbiAgICBcInByZWZpeFwiOiBcImNvZ25pdG8taWRlbnRpdHlcIixcbiAgICBcIm5hbWVcIjogXCJDb2duaXRvSWRlbnRpdHlcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImNvZ25pdG9pZGVudGl0eXNlcnZpY2Vwcm92aWRlclwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJjb2duaXRvLWlkcFwiLFxuICAgIFwibmFtZVwiOiBcIkNvZ25pdG9JZGVudGl0eVNlcnZpY2VQcm92aWRlclwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY29nbml0b3N5bmNcIjoge1xuICAgIFwicHJlZml4XCI6IFwiY29nbml0by1zeW5jXCIsXG4gICAgXCJuYW1lXCI6IFwiQ29nbml0b1N5bmNcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImNvbmZpZ3NlcnZpY2VcIjoge1xuICAgIFwicHJlZml4XCI6IFwiY29uZmlnXCIsXG4gICAgXCJuYW1lXCI6IFwiQ29uZmlnU2VydmljZVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiY3VyXCI6IHtcbiAgICBcIm5hbWVcIjogXCJDVVJcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImRhdGFwaXBlbGluZVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRGF0YVBpcGVsaW5lXCJcbiAgfSxcbiAgXCJkZXZpY2VmYXJtXCI6IHtcbiAgICBcIm5hbWVcIjogXCJEZXZpY2VGYXJtXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJkaXJlY3Rjb25uZWN0XCI6IHtcbiAgICBcIm5hbWVcIjogXCJEaXJlY3RDb25uZWN0XCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJkaXJlY3RvcnlzZXJ2aWNlXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImRzXCIsXG4gICAgXCJuYW1lXCI6IFwiRGlyZWN0b3J5U2VydmljZVwiXG4gIH0sXG4gIFwiZGlzY292ZXJ5XCI6IHtcbiAgICBcIm5hbWVcIjogXCJEaXNjb3ZlcnlcIlxuICB9LFxuICBcImRtc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiRE1TXCJcbiAgfSxcbiAgXCJkeW5hbW9kYlwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRHluYW1vREJcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImR5bmFtb2Ric3RyZWFtc1wiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJzdHJlYW1zLmR5bmFtb2RiXCIsXG4gICAgXCJuYW1lXCI6IFwiRHluYW1vREJTdHJlYW1zXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJlYzJcIjoge1xuICAgIFwibmFtZVwiOiBcIkVDMlwiLFxuICAgIFwidmVyc2lvbnNcIjogW1xuICAgICAgXCIyMDEzLTA2LTE1KlwiLFxuICAgICAgXCIyMDEzLTEwLTE1KlwiLFxuICAgICAgXCIyMDE0LTAyLTAxKlwiLFxuICAgICAgXCIyMDE0LTA1LTAxKlwiLFxuICAgICAgXCIyMDE0LTA2LTE1KlwiLFxuICAgICAgXCIyMDE0LTA5LTAxKlwiLFxuICAgICAgXCIyMDE0LTEwLTAxKlwiLFxuICAgICAgXCIyMDE1LTAzLTAxKlwiLFxuICAgICAgXCIyMDE1LTA0LTE1KlwiLFxuICAgICAgXCIyMDE1LTEwLTAxKlwiLFxuICAgICAgXCIyMDE2LTA0LTAxKlwiLFxuICAgICAgXCIyMDE2LTA5LTE1KlwiXG4gICAgXSxcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImVjclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRUNSXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJlY3NcIjoge1xuICAgIFwibmFtZVwiOiBcIkVDU1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZWZzXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImVsYXN0aWNmaWxlc3lzdGVtXCIsXG4gICAgXCJuYW1lXCI6IFwiRUZTXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJlbGFzdGljYWNoZVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRWxhc3RpQ2FjaGVcIixcbiAgICBcInZlcnNpb25zXCI6IFtcbiAgICAgIFwiMjAxMi0xMS0xNSpcIixcbiAgICAgIFwiMjAxNC0wMy0yNCpcIixcbiAgICAgIFwiMjAxNC0wNy0xNSpcIixcbiAgICAgIFwiMjAxNC0wOS0zMCpcIlxuICAgIF0sXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJlbGFzdGljYmVhbnN0YWxrXCI6IHtcbiAgICBcIm5hbWVcIjogXCJFbGFzdGljQmVhbnN0YWxrXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJlbGJcIjoge1xuICAgIFwicHJlZml4XCI6IFwiZWxhc3RpY2xvYWRiYWxhbmNpbmdcIixcbiAgICBcIm5hbWVcIjogXCJFTEJcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImVsYnYyXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIixcbiAgICBcIm5hbWVcIjogXCJFTEJ2MlwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZW1yXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImVsYXN0aWNtYXByZWR1Y2VcIixcbiAgICBcIm5hbWVcIjogXCJFTVJcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImVzXCI6IHtcbiAgICBcIm5hbWVcIjogXCJFU1wiXG4gIH0sXG4gIFwiZWxhc3RpY3RyYW5zY29kZXJcIjoge1xuICAgIFwibmFtZVwiOiBcIkVsYXN0aWNUcmFuc2NvZGVyXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJmaXJlaG9zZVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRmlyZWhvc2VcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImdhbWVsaWZ0XCI6IHtcbiAgICBcIm5hbWVcIjogXCJHYW1lTGlmdFwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiZ2xhY2llclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiR2xhY2llclwiXG4gIH0sXG4gIFwiaGVhbHRoXCI6IHtcbiAgICBcIm5hbWVcIjogXCJIZWFsdGhcIlxuICB9LFxuICBcImlhbVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiSUFNXCJcbiAgfSxcbiAgXCJpbXBvcnRleHBvcnRcIjoge1xuICAgIFwibmFtZVwiOiBcIkltcG9ydEV4cG9ydFwiXG4gIH0sXG4gIFwiaW5zcGVjdG9yXCI6IHtcbiAgICBcIm5hbWVcIjogXCJJbnNwZWN0b3JcIixcbiAgICBcInZlcnNpb25zXCI6IFtcbiAgICAgIFwiMjAxNS0wOC0xOCpcIlxuICAgIF0sXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJpb3RcIjoge1xuICAgIFwibmFtZVwiOiBcIklvdFwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwiaW90ZGF0YVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJpb3QtZGF0YVwiLFxuICAgIFwibmFtZVwiOiBcIklvdERhdGFcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImtpbmVzaXNcIjoge1xuICAgIFwibmFtZVwiOiBcIktpbmVzaXNcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImtpbmVzaXNhbmFseXRpY3NcIjoge1xuICAgIFwibmFtZVwiOiBcIktpbmVzaXNBbmFseXRpY3NcIlxuICB9LFxuICBcImttc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiS01TXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJsYW1iZGFcIjoge1xuICAgIFwibmFtZVwiOiBcIkxhbWJkYVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwibGV4cnVudGltZVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJydW50aW1lLmxleFwiLFxuICAgIFwibmFtZVwiOiBcIkxleFJ1bnRpbWVcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcImxpZ2h0c2FpbFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiTGlnaHRzYWlsXCJcbiAgfSxcbiAgXCJtYWNoaW5lbGVhcm5pbmdcIjoge1xuICAgIFwibmFtZVwiOiBcIk1hY2hpbmVMZWFybmluZ1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwibWFya2V0cGxhY2Vjb21tZXJjZWFuYWx5dGljc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiTWFya2V0cGxhY2VDb21tZXJjZUFuYWx5dGljc1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwibWFya2V0cGxhY2VtZXRlcmluZ1wiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJtZXRlcmluZ21hcmtldHBsYWNlXCIsXG4gICAgXCJuYW1lXCI6IFwiTWFya2V0cGxhY2VNZXRlcmluZ1wiXG4gIH0sXG4gIFwibXR1cmtcIjoge1xuICAgIFwicHJlZml4XCI6IFwibXR1cmstcmVxdWVzdGVyXCIsXG4gICAgXCJuYW1lXCI6IFwiTVR1cmtcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcIm1vYmlsZWFuYWx5dGljc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiTW9iaWxlQW5hbHl0aWNzXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJvcHN3b3Jrc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiT3BzV29ya3NcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcIm9wc3dvcmtzY21cIjoge1xuICAgIFwibmFtZVwiOiBcIk9wc1dvcmtzQ01cIlxuICB9LFxuICBcIm9yZ2FuaXphdGlvbnNcIjoge1xuICAgIFwibmFtZVwiOiBcIk9yZ2FuaXphdGlvbnNcIlxuICB9LFxuICBcInBpbnBvaW50XCI6IHtcbiAgICBcIm5hbWVcIjogXCJQaW5wb2ludFwiXG4gIH0sXG4gIFwicG9sbHlcIjoge1xuICAgIFwibmFtZVwiOiBcIlBvbGx5XCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJyZHNcIjoge1xuICAgIFwibmFtZVwiOiBcIlJEU1wiLFxuICAgIFwidmVyc2lvbnNcIjogW1xuICAgICAgXCIyMDE0LTA5LTAxKlwiXG4gICAgXSxcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcInJlZHNoaWZ0XCI6IHtcbiAgICBcIm5hbWVcIjogXCJSZWRzaGlmdFwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwicmVrb2duaXRpb25cIjoge1xuICAgIFwibmFtZVwiOiBcIlJla29nbml0aW9uXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJyZXNvdXJjZWdyb3Vwc3RhZ2dpbmdhcGlcIjoge1xuICAgIFwibmFtZVwiOiBcIlJlc291cmNlR3JvdXBzVGFnZ2luZ0FQSVwiXG4gIH0sXG4gIFwicm91dGU1M1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiUm91dGU1M1wiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwicm91dGU1M2RvbWFpbnNcIjoge1xuICAgIFwibmFtZVwiOiBcIlJvdXRlNTNEb21haW5zXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJzM1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiUzNcIixcbiAgICBcImR1YWxzdGFja0F2YWlsYWJsZVwiOiB0cnVlLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwic2VydmljZWNhdGFsb2dcIjoge1xuICAgIFwibmFtZVwiOiBcIlNlcnZpY2VDYXRhbG9nXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJzZXNcIjoge1xuICAgIFwicHJlZml4XCI6IFwiZW1haWxcIixcbiAgICBcIm5hbWVcIjogXCJTRVNcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcInNoaWVsZFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiU2hpZWxkXCJcbiAgfSxcbiAgXCJzaW1wbGVkYlwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJzZGJcIixcbiAgICBcIm5hbWVcIjogXCJTaW1wbGVEQlwiXG4gIH0sXG4gIFwic21zXCI6IHtcbiAgICBcIm5hbWVcIjogXCJTTVNcIlxuICB9LFxuICBcInNub3diYWxsXCI6IHtcbiAgICBcIm5hbWVcIjogXCJTbm93YmFsbFwiXG4gIH0sXG4gIFwic25zXCI6IHtcbiAgICBcIm5hbWVcIjogXCJTTlNcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcInNxc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiU1FTXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJzc21cIjoge1xuICAgIFwibmFtZVwiOiBcIlNTTVwiLFxuICAgIFwiY29yc1wiOiB0cnVlXG4gIH0sXG4gIFwic3RvcmFnZWdhdGV3YXlcIjoge1xuICAgIFwibmFtZVwiOiBcIlN0b3JhZ2VHYXRld2F5XCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJzdGVwZnVuY3Rpb25zXCI6IHtcbiAgICBcInByZWZpeFwiOiBcInN0YXRlc1wiLFxuICAgIFwibmFtZVwiOiBcIlN0ZXBGdW5jdGlvbnNcIlxuICB9LFxuICBcInN0c1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiU1RTXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJzdXBwb3J0XCI6IHtcbiAgICBcIm5hbWVcIjogXCJTdXBwb3J0XCJcbiAgfSxcbiAgXCJzd2ZcIjoge1xuICAgIFwibmFtZVwiOiBcIlNXRlwiXG4gIH0sXG4gIFwieHJheVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiWFJheVwiXG4gIH0sXG4gIFwid2FmXCI6IHtcbiAgICBcIm5hbWVcIjogXCJXQUZcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcIndhZnJlZ2lvbmFsXCI6IHtcbiAgICBcInByZWZpeFwiOiBcIndhZi1yZWdpb25hbFwiLFxuICAgIFwibmFtZVwiOiBcIldBRlJlZ2lvbmFsXCJcbiAgfSxcbiAgXCJ3b3JrZG9jc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiV29ya0RvY3NcIixcbiAgICBcImNvcnNcIjogdHJ1ZVxuICB9LFxuICBcIndvcmtzcGFjZXNcIjoge1xuICAgIFwibmFtZVwiOiBcIldvcmtTcGFjZXNcIlxuICB9LFxuICBcImNvZGVzdGFyXCI6IHtcbiAgICBcIm5hbWVcIjogXCJDb2RlU3RhclwiXG4gIH0sXG4gIFwibGV4bW9kZWxidWlsZGluZ3NlcnZpY2VcIjoge1xuICAgIFwicHJlZml4XCI6IFwibGV4LW1vZGVsc1wiLFxuICAgIFwibmFtZVwiOiBcIkxleE1vZGVsQnVpbGRpbmdTZXJ2aWNlXCIsXG4gICAgXCJjb3JzXCI6IHRydWVcbiAgfSxcbiAgXCJtYXJrZXRwbGFjZWVudGl0bGVtZW50c2VydmljZVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJlbnRpdGxlbWVudC5tYXJrZXRwbGFjZVwiLFxuICAgIFwibmFtZVwiOiBcIk1hcmtldHBsYWNlRW50aXRsZW1lbnRTZXJ2aWNlXCJcbiAgfSxcbiAgXCJhdGhlbmFcIjoge1xuICAgIFwibmFtZVwiOiBcIkF0aGVuYVwiXG4gIH0sXG4gIFwiZ3JlZW5ncmFzc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiR3JlZW5ncmFzc1wiXG4gIH0sXG4gIFwiZGF4XCI6IHtcbiAgICBcIm5hbWVcIjogXCJEQVhcIlxuICB9LFxuICBcIm1pZ3JhdGlvbmh1YlwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJBV1NNaWdyYXRpb25IdWJcIixcbiAgICBcIm5hbWVcIjogXCJNaWdyYXRpb25IdWJcIlxuICB9LFxuICBcImNsb3VkaHNtdjJcIjoge1xuICAgIFwibmFtZVwiOiBcIkNsb3VkSFNNVjJcIlxuICB9LFxuICBcImdsdWVcIjoge1xuICAgIFwibmFtZVwiOiBcIkdsdWVcIlxuICB9LFxuICBcIm1vYmlsZVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiTW9iaWxlXCJcbiAgfSxcbiAgXCJwcmljaW5nXCI6IHtcbiAgICBcIm5hbWVcIjogXCJQcmljaW5nXCJcbiAgfSxcbiAgXCJjb3N0ZXhwbG9yZXJcIjoge1xuICAgIFwicHJlZml4XCI6IFwiY2VcIixcbiAgICBcIm5hbWVcIjogXCJDb3N0RXhwbG9yZXJcIlxuICB9LFxuICBcIm1lZGlhY29udmVydFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiTWVkaWFDb252ZXJ0XCJcbiAgfSxcbiAgXCJtZWRpYWxpdmVcIjoge1xuICAgIFwibmFtZVwiOiBcIk1lZGlhTGl2ZVwiXG4gIH0sXG4gIFwibWVkaWFwYWNrYWdlXCI6IHtcbiAgICBcIm5hbWVcIjogXCJNZWRpYVBhY2thZ2VcIlxuICB9LFxuICBcIm1lZGlhc3RvcmVcIjoge1xuICAgIFwibmFtZVwiOiBcIk1lZGlhU3RvcmVcIlxuICB9LFxuICBcIm1lZGlhc3RvcmVkYXRhXCI6IHtcbiAgICBcInByZWZpeFwiOiBcIm1lZGlhc3RvcmUtZGF0YVwiLFxuICAgIFwibmFtZVwiOiBcIk1lZGlhU3RvcmVEYXRhXCJcbiAgfSxcbiAgXCJhcHBzeW5jXCI6IHtcbiAgICBcIm5hbWVcIjogXCJBcHBTeW5jXCJcbiAgfSxcbiAgXCJndWFyZGR1dHlcIjoge1xuICAgIFwibmFtZVwiOiBcIkd1YXJkRHV0eVwiXG4gIH0sXG4gIFwibXFcIjoge1xuICAgIFwibmFtZVwiOiBcIk1RXCJcbiAgfSxcbiAgXCJjb21wcmVoZW5kXCI6IHtcbiAgICBcIm5hbWVcIjogXCJDb21wcmVoZW5kXCJcbiAgfSxcbiAgXCJpb3Rqb2JzZGF0YXBsYW5lXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImlvdC1qb2JzLWRhdGFcIixcbiAgICBcIm5hbWVcIjogXCJJb1RKb2JzRGF0YVBsYW5lXCJcbiAgfSxcbiAgXCJraW5lc2lzdmlkZW9hcmNoaXZlZG1lZGlhXCI6IHtcbiAgICBcInByZWZpeFwiOiBcImtpbmVzaXMtdmlkZW8tYXJjaGl2ZWQtbWVkaWFcIixcbiAgICBcIm5hbWVcIjogXCJLaW5lc2lzVmlkZW9BcmNoaXZlZE1lZGlhXCJcbiAgfSxcbiAgXCJraW5lc2lzdmlkZW9tZWRpYVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJraW5lc2lzLXZpZGVvLW1lZGlhXCIsXG4gICAgXCJuYW1lXCI6IFwiS2luZXNpc1ZpZGVvTWVkaWFcIlxuICB9LFxuICBcImtpbmVzaXN2aWRlb1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiS2luZXNpc1ZpZGVvXCJcbiAgfSxcbiAgXCJzYWdlbWFrZXJydW50aW1lXCI6IHtcbiAgICBcInByZWZpeFwiOiBcInJ1bnRpbWUuc2FnZW1ha2VyXCIsXG4gICAgXCJuYW1lXCI6IFwiU2FnZU1ha2VyUnVudGltZVwiXG4gIH0sXG4gIFwic2FnZW1ha2VyXCI6IHtcbiAgICBcIm5hbWVcIjogXCJTYWdlTWFrZXJcIlxuICB9LFxuICBcInRyYW5zbGF0ZVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiVHJhbnNsYXRlXCJcbiAgfSxcbiAgXCJyZXNvdXJjZWdyb3Vwc1wiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJyZXNvdXJjZS1ncm91cHNcIixcbiAgICBcIm5hbWVcIjogXCJSZXNvdXJjZUdyb3Vwc1wiXG4gIH0sXG4gIFwiYWxleGFmb3JidXNpbmVzc1wiOiB7XG4gICAgXCJuYW1lXCI6IFwiQWxleGFGb3JCdXNpbmVzc1wiXG4gIH0sXG4gIFwiY2xvdWQ5XCI6IHtcbiAgICBcIm5hbWVcIjogXCJDbG91ZDlcIlxuICB9LFxuICBcInNlcnZlcmxlc3NhcHBsaWNhdGlvbnJlcG9zaXRvcnlcIjoge1xuICAgIFwicHJlZml4XCI6IFwic2VydmVybGVzc3JlcG9cIixcbiAgICBcIm5hbWVcIjogXCJTZXJ2ZXJsZXNzQXBwbGljYXRpb25SZXBvc2l0b3J5XCJcbiAgfSxcbiAgXCJzZXJ2aWNlZGlzY292ZXJ5XCI6IHtcbiAgICBcIm5hbWVcIjogXCJTZXJ2aWNlRGlzY292ZXJ5XCJcbiAgfSxcbiAgXCJ3b3JrbWFpbFwiOiB7XG4gICAgXCJuYW1lXCI6IFwiV29ya01haWxcIlxuICB9LFxuICBcImF1dG9zY2FsaW5ncGxhbnNcIjoge1xuICAgIFwicHJlZml4XCI6IFwiYXV0b3NjYWxpbmctcGxhbnNcIixcbiAgICBcIm5hbWVcIjogXCJBdXRvU2NhbGluZ1BsYW5zXCJcbiAgfSxcbiAgXCJ0cmFuc2NyaWJlc2VydmljZVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJ0cmFuc2NyaWJlXCIsXG4gICAgXCJuYW1lXCI6IFwiVHJhbnNjcmliZVNlcnZpY2VcIlxuICB9LFxuICBcImNvbm5lY3RcIjoge1xuICAgIFwibmFtZVwiOiBcIkNvbm5lY3RcIlxuICB9LFxuICBcImFjbXBjYVwiOiB7XG4gICAgXCJwcmVmaXhcIjogXCJhY20tcGNhXCIsXG4gICAgXCJuYW1lXCI6IFwiQUNNUENBXCJcbiAgfSxcbiAgXCJmbXNcIjoge1xuICAgIFwibmFtZVwiOiBcIkZNU1wiXG4gIH0sXG4gIFwic2VjcmV0c21hbmFnZXJcIjoge1xuICAgIFwibmFtZVwiOiBcIlNlY3JldHNNYW5hZ2VyXCJcbiAgfSxcbiAgXCJpb3RhbmFseXRpY3NcIjoge1xuICAgIFwibmFtZVwiOiBcIklvVEFuYWx5dGljc1wiXG4gIH0sXG4gIFwiaW90MWNsaWNrZGV2aWNlc3NlcnZpY2VcIjoge1xuICAgIFwicHJlZml4XCI6IFwiaW90MWNsaWNrLWRldmljZXNcIixcbiAgICBcIm5hbWVcIjogXCJJb1QxQ2xpY2tEZXZpY2VzU2VydmljZVwiXG4gIH0sXG4gIFwiaW90MWNsaWNrcHJvamVjdHNcIjoge1xuICAgIFwicHJlZml4XCI6IFwiaW90MWNsaWNrLXByb2plY3RzXCIsXG4gICAgXCJuYW1lXCI6IFwiSW9UMUNsaWNrUHJvamVjdHNcIlxuICB9LFxuICBcInBpXCI6IHtcbiAgICBcIm5hbWVcIjogXCJQSVwiXG4gIH0sXG4gIFwibmVwdHVuZVwiOiB7XG4gICAgXCJuYW1lXCI6IFwiTmVwdHVuZVwiXG4gIH0sXG4gIFwibWVkaWF0YWlsb3JcIjoge1xuICAgIFwibmFtZVwiOiBcIk1lZGlhVGFpbG9yXCJcbiAgfSxcbiAgXCJla3NcIjoge1xuICAgIFwibmFtZVwiOiBcIkVLU1wiXG4gIH0sXG4gIFwibWFjaWVcIjoge1xuICAgIFwibmFtZVwiOiBcIk1hY2llXCJcbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMDYtMDVcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwibW9iaWxlYW5hbHl0aWNzXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gTW9iaWxlIEFuYWx5dGljc1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJQdXRFdmVudHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTQtMDYtMDUvZXZlbnRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJldmVudHNcIixcbiAgICAgICAgICBcImNsaWVudENvbnRleHRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiZXZlbnRUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiZXZlbnRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwic2Vzc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiaWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiZHVyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcInN0YXJ0VGltZXN0YW1wXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInN0b3BUaW1lc3RhbXBcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibWV0cmljc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsaWVudENvbnRleHRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1DbGllbnQtQ29udGV4dFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsaWVudENvbnRleHRFbmNvZGluZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LUNsaWVudC1Db250ZXh0LUVuY29kaW5nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHt9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMC0wOC0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJtb25pdG9yaW5nXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQ2xvdWRXYXRjaFwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIENsb3VkV2F0Y2hcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwibW9uaXRvcmluZy0yMDEwLTA4LTAxXCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vbW9uaXRvcmluZy5hbWF6b25hd3MuY29tL2RvYy8yMDEwLTA4LTAxL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJEZWxldGVBbGFybXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFsYXJtTmFtZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxhcm1OYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEYXNoYm9hcmRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEYXNoYm9hcmROYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXNoYm9hcmROYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlRGFzaGJvYXJkc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWxhcm1IaXN0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsYXJtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkhpc3RvcnlJdGVtVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0RGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFsYXJtSGlzdG9yeVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsYXJtSGlzdG9yeUl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBbGFybU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSGlzdG9yeUl0ZW1UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSGlzdG9yeVN1bW1hcnlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJIaXN0b3J5RGF0YVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWxhcm1zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsYXJtTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxhcm1OYW1lUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIkFjdGlvblByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFsYXJtc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldHJpY0FsYXJtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgIFwiTmFtZXNwYWNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJTdGF0aXN0aWNcIjoge30sXG4gICAgICAgICAgXCJFeHRlbmRlZFN0YXRpc3RpY1wiOiB7fSxcbiAgICAgICAgICBcIkRpbWVuc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5pdFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUFsYXJtc0Zvck1ldHJpY1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldHJpY0FsYXJtc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlQWxhcm1BY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGFybU5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsYXJtTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlQWxhcm1BY3Rpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGFybU5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsYXJtTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGFzaGJvYXJkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEYXNoYm9hcmROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhc2hib2FyZE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0RGFzaGJvYXJkUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGFzaGJvYXJkQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGFzaGJvYXJkQm9keVwiOiB7fSxcbiAgICAgICAgICBcIkRhc2hib2FyZE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNZXRyaWNEYXRhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJNZXRyaWNEYXRhUXVlcmllc1wiLFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCIsXG4gICAgICAgICAgXCJFbmRUaW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldHJpY0RhdGFRdWVyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSWRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXRyaWNTdGF0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiTWV0cmljXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiUGVyaW9kXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJNZXRyaWNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlBlcmlvZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RhdFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJVbml0XCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV4cHJlc3Npb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYWJlbFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJldHVybkRhdGFcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlNjYW5CeVwiOiB7fSxcbiAgICAgICAgICBcIk1heERhdGFwb2ludHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRNZXRyaWNEYXRhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWV0cmljRGF0YVJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFiZWxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNZXRyaWNTdGF0aXN0aWNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lc3BhY2VcIixcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiLFxuICAgICAgICAgIFwiRW5kVGltZVwiLFxuICAgICAgICAgIFwiUGVyaW9kXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXRpc3RpY3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXh0ZW5kZWRTdGF0aXN0aWNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVuaXRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0TWV0cmljU3RhdGlzdGljc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhYmVsXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YXBvaW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNhbXBsZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF2ZXJhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VtXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1pbmltdW1cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4aW11bVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVbml0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXh0ZW5kZWRTdGF0aXN0aWNzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwieG1sT3JkZXJcIjogW1xuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCIsXG4gICAgICAgICAgICAgICAgXCJTYW1wbGVDb3VudFwiLFxuICAgICAgICAgICAgICAgIFwiQXZlcmFnZVwiLFxuICAgICAgICAgICAgICAgIFwiU3VtXCIsXG4gICAgICAgICAgICAgICAgXCJNaW5pbXVtXCIsXG4gICAgICAgICAgICAgICAgXCJNYXhpbXVtXCIsXG4gICAgICAgICAgICAgICAgXCJVbml0XCIsXG4gICAgICAgICAgICAgICAgXCJFeHRlbmRlZFN0YXRpc3RpY3NcIlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REYXNoYm9hcmRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhc2hib2FyZE5hbWVQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdERhc2hib2FyZHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYXNoYm9hcmRFbnRyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEYXNoYm9hcmROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGFzaGJvYXJkQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RNZXRyaWNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdE1ldHJpY3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRyaWNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcInhtbE9yZGVyXCI6IFtcbiAgICAgICAgICBcIk1ldHJpY3NcIixcbiAgICAgICAgICBcIk5leHRUb2tlblwiXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0RGFzaGJvYXJkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEYXNoYm9hcmROYW1lXCIsXG4gICAgICAgICAgXCJEYXNoYm9hcmRCb2R5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhc2hib2FyZE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEYXNoYm9hcmRCb2R5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlB1dERhc2hib2FyZFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRhc2hib2FyZFZhbGlkYXRpb25NZXNzYWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGF0YVBhdGhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0TWV0cmljQWxhcm1cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFsYXJtTmFtZVwiLFxuICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgIFwiTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJQZXJpb2RcIixcbiAgICAgICAgICBcIkV2YWx1YXRpb25QZXJpb2RzXCIsXG4gICAgICAgICAgXCJUaHJlc2hvbGRcIixcbiAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBbGFybURlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiQWN0aW9uc0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9LQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGFybUFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdWZmaWNpZW50RGF0YUFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRpc3RpY1wiOiB7fSxcbiAgICAgICAgICBcIkV4dGVuZGVkU3RhdGlzdGljXCI6IHt9LFxuICAgICAgICAgIFwiRGltZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbml0XCI6IHt9LFxuICAgICAgICAgIFwiRXZhbHVhdGlvblBlcmlvZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRhdGFwb2ludHNUb0FsYXJtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCI6IHt9LFxuICAgICAgICAgIFwiVHJlYXRNaXNzaW5nRGF0YVwiOiB7fSxcbiAgICAgICAgICBcIkV2YWx1YXRlTG93U2FtcGxlQ291bnRQZXJjZW50aWxlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0TWV0cmljRGF0YVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJNZXRyaWNEYXRhXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICBcIk1ldHJpY0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJNZXRyaWNOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGlzdGljVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiU2FtcGxlQ291bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJTdW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJNaW5pbXVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiTWF4aW11bVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTYW1wbGVDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdW1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiTWluaW11bVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJNYXhpbXVtXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVuaXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdG9yYWdlUmVzb2x1dGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0QWxhcm1TdGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWxhcm1OYW1lXCIsXG4gICAgICAgICAgXCJTdGF0ZVZhbHVlXCIsXG4gICAgICAgICAgXCJTdGF0ZVJlYXNvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBbGFybU5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0ZVZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVSZWFzb25cIjoge30sXG4gICAgICAgICAgXCJTdGF0ZVJlYXNvbkRhdGFcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFsYXJtTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFsYXJtQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQWxhcm1EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkFsYXJtQ29uZmlndXJhdGlvblVwZGF0ZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWN0aW9uc0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9LQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGFybUFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdWZmaWNpZW50RGF0YUFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdGVWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXRlUmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVSZWFzb25EYXRhXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdGVVcGRhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgICAgXCJTdGF0aXN0aWNcIjoge30sXG4gICAgICAgICAgXCJFeHRlbmRlZFN0YXRpc3RpY1wiOiB7fSxcbiAgICAgICAgICBcIkRpbWVuc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVW5pdFwiOiB7fSxcbiAgICAgICAgICBcIkV2YWx1YXRpb25QZXJpb2RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEYXRhcG9pbnRzVG9BbGFybVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiOiB7fSxcbiAgICAgICAgICBcIlRyZWF0TWlzc2luZ0RhdGFcIjoge30sXG4gICAgICAgICAgXCJFdmFsdWF0ZUxvd1NhbXBsZUNvdW50UGVyY2VudGlsZVwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcInhtbE9yZGVyXCI6IFtcbiAgICAgICAgICBcIkFsYXJtTmFtZVwiLFxuICAgICAgICAgIFwiQWxhcm1Bcm5cIixcbiAgICAgICAgICBcIkFsYXJtRGVzY3JpcHRpb25cIixcbiAgICAgICAgICBcIkFsYXJtQ29uZmlndXJhdGlvblVwZGF0ZWRUaW1lc3RhbXBcIixcbiAgICAgICAgICBcIkFjdGlvbnNFbmFibGVkXCIsXG4gICAgICAgICAgXCJPS0FjdGlvbnNcIixcbiAgICAgICAgICBcIkFsYXJtQWN0aW9uc1wiLFxuICAgICAgICAgIFwiSW5zdWZmaWNpZW50RGF0YUFjdGlvbnNcIixcbiAgICAgICAgICBcIlN0YXRlVmFsdWVcIixcbiAgICAgICAgICBcIlN0YXRlUmVhc29uXCIsXG4gICAgICAgICAgXCJTdGF0ZVJlYXNvbkRhdGFcIixcbiAgICAgICAgICBcIlN0YXRlVXBkYXRlZFRpbWVzdGFtcFwiLFxuICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgIFwiTmFtZXNwYWNlXCIsXG4gICAgICAgICAgXCJTdGF0aXN0aWNcIixcbiAgICAgICAgICBcIkRpbWVuc2lvbnNcIixcbiAgICAgICAgICBcIlBlcmlvZFwiLFxuICAgICAgICAgIFwiVW5pdFwiLFxuICAgICAgICAgIFwiRXZhbHVhdGlvblBlcmlvZHNcIixcbiAgICAgICAgICBcIlRocmVzaG9sZFwiLFxuICAgICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCIsXG4gICAgICAgICAgXCJFeHRlbmRlZFN0YXRpc3RpY1wiLFxuICAgICAgICAgIFwiVHJlYXRNaXNzaW5nRGF0YVwiLFxuICAgICAgICAgIFwiRXZhbHVhdGVMb3dTYW1wbGVDb3VudFBlcmNlbnRpbGVcIixcbiAgICAgICAgICBcIkRhdGFwb2ludHNUb0FsYXJtXCJcbiAgICAgICAgXVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJ4bWxPcmRlclwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lc3BhY2VcIjoge30sXG4gICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwieG1sT3JkZXJcIjogW1xuICAgICAgICBcIk5hbWVzcGFjZVwiLFxuICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgXCJEaW1lbnNpb25zXCJcbiAgICAgIF1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUFsYXJtSGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBbGFybUhpc3RvcnlJdGVtc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWxhcm1zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk1ldHJpY0FsYXJtc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWxhcm1zRm9yTWV0cmljXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIk1ldHJpY0FsYXJtc1wiXG4gICAgfSxcbiAgICBcIkxpc3RNZXRyaWNzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJNZXRyaWNzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiQWxhcm1FeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiA1LFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVBbGFybXNcIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IHRydWUsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcImxlbmd0aChNZXRyaWNBbGFybXNbXSkgPiBgMGBcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTctMDEtMTdcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwibXR1cmstcmVxdWVzdGVyXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIE1UdXJrXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gTWVjaGFuaWNhbCBUdXJrXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJNVHVya1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJNVHVya1JlcXVlc3RlclNlcnZpY2VWMjAxNzAxMTdcIixcbiAgICBcInVpZFwiOiBcIm10dXJrLXJlcXVlc3Rlci0yMDE3LTAxLTE3XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFjY2VwdFF1YWxpZmljYXRpb25SZXF1ZXN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uUmVxdWVzdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25SZXF1ZXN0SWRcIjoge30sXG4gICAgICAgICAgXCJJbnRlZ2VyVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFwcHJvdmVBc3NpZ25tZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NpZ25tZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzaWdubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyRmVlZGJhY2tcIjoge30sXG4gICAgICAgICAgXCJPdmVycmlkZVJlamVjdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVRdWFsaWZpY2F0aW9uV2l0aFdvcmtlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiLFxuICAgICAgICAgIFwiV29ya2VySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIldvcmtlcklkXCI6IHt9LFxuICAgICAgICAgIFwiSW50ZWdlclZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZW5kTm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBZGRpdGlvbmFsQXNzaWdubWVudHNGb3JISVRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhJVElkXCIsXG4gICAgICAgICAgXCJOdW1iZXJPZkFkZGl0aW9uYWxBc3NpZ25tZW50c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRJZFwiOiB7fSxcbiAgICAgICAgICBcIk51bWJlck9mQWRkaXRpb25hbEFzc2lnbm1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbmlxdWVSZXF1ZXN0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVISVRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpZmV0aW1lSW5TZWNvbmRzXCIsXG4gICAgICAgICAgXCJBc3NpZ25tZW50RHVyYXRpb25JblNlY29uZHNcIixcbiAgICAgICAgICBcIlJld2FyZFwiLFxuICAgICAgICAgIFwiVGl0bGVcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heEFzc2lnbm1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvQXBwcm92YWxEZWxheUluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlmZXRpbWVJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzc2lnbm1lbnREdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV3YXJkXCI6IHt9LFxuICAgICAgICAgIFwiVGl0bGVcIjoge30sXG4gICAgICAgICAgXCJLZXl3b3Jkc1wiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUXVlc3Rpb25cIjoge30sXG4gICAgICAgICAgXCJSZXF1ZXN0ZXJBbm5vdGF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblJlcXVpcmVtZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbmlxdWVSZXF1ZXN0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJBc3NpZ25tZW50UmV2aWV3UG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhJVFJldmlld1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJISVRMYXlvdXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkhJVExheW91dFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUhJVFR5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc2lnbm1lbnREdXJhdGlvbkluU2Vjb25kc1wiLFxuICAgICAgICAgIFwiUmV3YXJkXCIsXG4gICAgICAgICAgXCJUaXRsZVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b0FwcHJvdmFsRGVsYXlJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzc2lnbm1lbnREdXJhdGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV3YXJkXCI6IHt9LFxuICAgICAgICAgIFwiVGl0bGVcIjoge30sXG4gICAgICAgICAgXCJLZXl3b3Jkc1wiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblJlcXVpcmVtZW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRUeXBlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkNyZWF0ZUhJVFdpdGhISVRUeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRUeXBlSWRcIixcbiAgICAgICAgICBcIkxpZmV0aW1lSW5TZWNvbmRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVFR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heEFzc2lnbm1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWZldGltZUluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUXVlc3Rpb25cIjoge30sXG4gICAgICAgICAgXCJSZXF1ZXN0ZXJBbm5vdGF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVW5pcXVlUmVxdWVzdFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQXNzaWdubWVudFJldmlld1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJISVRSZXZpZXdQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSElUTGF5b3V0SWRcIjoge30sXG4gICAgICAgICAgXCJISVRMYXlvdXRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVRdWFsaWZpY2F0aW9uVHlwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIixcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlU3RhdHVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJLZXl3b3Jkc1wiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJSZXRyeURlbGF5SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZXN0XCI6IHt9LFxuICAgICAgICAgIFwiQW5zd2VyS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVGVzdER1cmF0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvR3JhbnRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0dyYW50ZWRWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVdvcmtlckJsb2NrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXb3JrZXJJZFwiLFxuICAgICAgICAgIFwiUmVhc29uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldvcmtlcklkXCI6IHt9LFxuICAgICAgICAgIFwiUmVhc29uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSElUXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGVsZXRlUXVhbGlmaWNhdGlvblR5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiRGVsZXRlV29ya2VyQmxvY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldvcmtlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldvcmtlcklkXCI6IHt9LFxuICAgICAgICAgIFwiUmVhc29uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVRdWFsaWZpY2F0aW9uRnJvbVdvcmtlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV29ya2VySWRcIixcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV29ya2VySWRcIjoge30sXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVhc29uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QWNjb3VudEJhbGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmxlQmFsYW5jZVwiOiB7fSxcbiAgICAgICAgICBcIk9uSG9sZEJhbGFuY2VcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkdldEFzc2lnbm1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc2lnbm1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NpZ25tZW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NpZ25tZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJISVRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJHZXRGaWxlVXBsb2FkVVJMXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBc3NpZ25tZW50SWRcIixcbiAgICAgICAgICBcIlF1ZXN0aW9uSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NpZ25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJRdWVzdGlvbklkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlVXBsb2FkVVJMXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJHZXRISVRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhJVElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiR2V0UXVhbGlmaWNhdGlvblNjb3JlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCIsXG4gICAgICAgICAgXCJXb3JrZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCI6IHt9LFxuICAgICAgICAgIFwiV29ya2VySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkdldFF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0QXNzaWdubWVudHNGb3JISVRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhJVElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVElkXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXNzaWdubWVudFN0YXR1c2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk51bVJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzc2lnbm1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdEJvbnVzUGF5bWVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUSWRcIjoge30sXG4gICAgICAgICAgXCJBc3NpZ25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOdW1SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJCb251c1BheW1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJXb3JrZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJvbnVzQW1vdW50XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXNzaWdubWVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVhc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR3JhbnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdEhJVHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTnVtUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSElUc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0SElUc0ZvclF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOdW1SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJISVRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RRdWFsaWZpY2F0aW9uUmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk51bVJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25SZXF1ZXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJXb3JrZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRlc3RcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBbnN3ZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdWJtaXRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdFF1YWxpZmljYXRpb25UeXBlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTXVzdEJlUmVxdWVzdGFibGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVlcnlcIjoge30sXG4gICAgICAgICAgXCJNdXN0QmVSZXF1ZXN0YWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTXVzdEJlT3duZWRCeUNhbGxlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTnVtUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiTGlzdFJldmlld1BvbGljeVJlc3VsdHNGb3JISVRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhJVElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhJVElkXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5TGV2ZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJldHJpZXZlQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV0cmlldmVSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRJZFwiOiB7fSxcbiAgICAgICAgICBcIkFzc2lnbm1lbnRSZXZpZXdQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSElUUmV2aWV3UG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzc2lnbm1lbnRSZXZpZXdSZXBvcnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhJVFJldmlld1JlcG9ydFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0UmV2aWV3YWJsZUhJVHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUVHlwZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTnVtUmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSElUc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJMaXN0V29ya2VyQmxvY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk51bVJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldvcmtlckJsb2Nrc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiV29ya2VySWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWFzb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkxpc3RXb3JrZXJzV2l0aFF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOdW1SZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJRdWFsaWZpY2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXhcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIk5vdGlmeVdvcmtlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YmplY3RcIixcbiAgICAgICAgICBcIk1lc3NhZ2VUZXh0XCIsXG4gICAgICAgICAgXCJXb3JrZXJJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3ViamVjdFwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VUZXh0XCI6IHt9LFxuICAgICAgICAgIFwiV29ya2VySWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5vdGlmeVdvcmtlcnNGYWlsdXJlU3RhdHVzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5vdGlmeVdvcmtlcnNGYWlsdXJlQ29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5vdGlmeVdvcmtlcnNGYWlsdXJlTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIldvcmtlcklkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVqZWN0QXNzaWdubWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXNzaWdubWVudElkXCIsXG4gICAgICAgICAgXCJSZXF1ZXN0ZXJGZWVkYmFja1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NpZ25tZW50SWRcIjoge30sXG4gICAgICAgICAgXCJSZXF1ZXN0ZXJGZWVkYmFja1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiUmVqZWN0UXVhbGlmaWNhdGlvblJlcXVlc3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25SZXF1ZXN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlYXNvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRCb251c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV29ya2VySWRcIixcbiAgICAgICAgICBcIkJvbnVzQW1vdW50XCIsXG4gICAgICAgICAgXCJBc3NpZ25tZW50SWRcIixcbiAgICAgICAgICBcIlJlYXNvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXb3JrZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkJvbnVzQW1vdW50XCI6IHt9LFxuICAgICAgICAgIFwiQXNzaWdubWVudElkXCI6IHt9LFxuICAgICAgICAgIFwiUmVhc29uXCI6IHt9LFxuICAgICAgICAgIFwiVW5pcXVlUmVxdWVzdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VuZFRlc3RFdmVudE5vdGlmaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTm90aWZpY2F0aW9uXCIsXG4gICAgICAgICAgXCJUZXN0RXZlbnRUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVzdEV2ZW50VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUV4cGlyYXRpb25Gb3JISVRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhJVElkXCIsXG4gICAgICAgICAgXCJFeHBpcmVBdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRJZFwiOiB7fSxcbiAgICAgICAgICBcIkV4cGlyZUF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiVXBkYXRlSElUUmV2aWV3U3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJISVRJZFwiOiB7fSxcbiAgICAgICAgICBcIlJldmVydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJVcGRhdGVISVRUeXBlT2ZISVRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhJVElkXCIsXG4gICAgICAgICAgXCJISVRUeXBlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUSWRcIjoge30sXG4gICAgICAgICAgXCJISVRUeXBlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlVwZGF0ZU5vdGlmaWNhdGlvblNldHRpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJISVRUeXBlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSElUVHlwZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY3RpdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJpZGVtcG90ZW50XCI6IHRydWVcbiAgICB9LFxuICAgIFwiVXBkYXRlUXVhbGlmaWNhdGlvblR5cGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJUZXN0XCI6IHt9LFxuICAgICAgICAgIFwiQW5zd2VyS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVGVzdER1cmF0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXRyeURlbGF5SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvR3JhbnRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0dyYW50ZWRWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIixcbiAgICAgICAgICBcIkNvbXBhcmF0b3JcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkNvbXBhcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJJbnRlZ2VyVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2FsZVZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVpcmVkVG9QcmV2aWV3XCI6IHtcbiAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjdGlvbnNHdWFyZGVkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDb3VudHJ5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvdW50cnlcIjoge30sXG4gICAgICAgIFwiU3ViZGl2aXNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJQb2xpY3lOYW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBvbGljeU5hbWVcIjoge30sXG4gICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1hcEVudHJpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJISVRJZFwiOiB7fSxcbiAgICAgICAgXCJISVRUeXBlSWRcIjoge30sXG4gICAgICAgIFwiSElUR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgXCJISVRMYXlvdXRJZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGl0bGVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiUXVlc3Rpb25cIjoge30sXG4gICAgICAgIFwiS2V5d29yZHNcIjoge30sXG4gICAgICAgIFwiSElUU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIk1heEFzc2lnbm1lbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXdhcmRcIjoge30sXG4gICAgICAgIFwiQXV0b0FwcHJvdmFsRGVsYXlJblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4cGlyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXNzaWdubWVudER1cmF0aW9uSW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXF1ZXN0ZXJBbm5vdGF0aW9uXCI6IHt9LFxuICAgICAgICBcIlF1YWxpZmljYXRpb25SZXF1aXJlbWVudHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSElUUmV2aWV3U3RhdHVzXCI6IHt9LFxuICAgICAgICBcIk51bWJlck9mQXNzaWdubWVudHNQZW5kaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOdW1iZXJPZkFzc2lnbm1lbnRzQXZhaWxhYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOdW1iZXJPZkFzc2lnbm1lbnRzQ29tcGxldGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlF1YWxpZmljYXRpb25UeXBlSWRcIjoge30sXG4gICAgICAgIFwiQ3JlYXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiS2V5d29yZHNcIjoge30sXG4gICAgICAgIFwiUXVhbGlmaWNhdGlvblR5cGVTdGF0dXNcIjoge30sXG4gICAgICAgIFwiVGVzdFwiOiB7fSxcbiAgICAgICAgXCJUZXN0RHVyYXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFuc3dlcktleVwiOiB7fSxcbiAgICAgICAgXCJSZXRyeURlbGF5SW5TZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJc1JlcXVlc3RhYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdXRvR3JhbnRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXV0b0dyYW50ZWRWYWx1ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBc3NpZ25tZW50SWRcIjoge30sXG4gICAgICAgIFwiV29ya2VySWRcIjoge30sXG4gICAgICAgIFwiSElUSWRcIjoge30sXG4gICAgICAgIFwiQXNzaWdubWVudFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJBdXRvQXBwcm92YWxUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFjY2VwdFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VibWl0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBcHByb3ZhbFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVqZWN0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEZWFkbGluZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBbnN3ZXJcIjoge30sXG4gICAgICAgIFwiUmVxdWVzdGVyRmVlZGJhY2tcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJRdWFsaWZpY2F0aW9uVHlwZUlkXCI6IHt9LFxuICAgICAgICBcIldvcmtlcklkXCI6IHt9LFxuICAgICAgICBcIkdyYW50VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnRlZ2VyVmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxvY2FsZVZhbHVlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJldmlld1Jlc3VsdHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiU3ViamVjdElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN1YmplY3RUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlF1ZXN0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlJldmlld0FjdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQWN0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJDb21wbGV0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVzdWx0XCI6IHt9LFxuICAgICAgICAgICAgICBcIkVycm9yQ29kZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJEZXN0aW5hdGlvblwiLFxuICAgICAgICBcIlRyYW5zcG9ydFwiLFxuICAgICAgICBcIlZlcnNpb25cIixcbiAgICAgICAgXCJFdmVudFR5cGVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRlc3RpbmF0aW9uXCI6IHt9LFxuICAgICAgICBcIlRyYW5zcG9ydFwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkV2ZW50VHlwZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdEFzc2lnbm1lbnRzRm9ySElUXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0Qm9udXNQYXltZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEhJVHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RISVRzRm9yUXVhbGlmaWNhdGlvblR5cGVcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RRdWFsaWZpY2F0aW9uUmVxdWVzdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RRdWFsaWZpY2F0aW9uVHlwZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RSZXZpZXdQb2xpY3lSZXN1bHRzRm9ySElUXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH0sXG4gICAgXCJMaXN0UmV2aWV3YWJsZUhJVHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RXb3JrZXJCbG9ja3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RXb3JrZXJzV2l0aFF1YWxpZmljYXRpb25UeXBlXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIlxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMy0wMi0xOFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJvcHN3b3Jrc1wiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIE9wc1dvcmtzXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJPcHNXb3Jrc1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJPcHNXb3Jrc18yMDEzMDIxOFwiLFxuICAgIFwidWlkXCI6IFwib3Bzd29ya3MtMjAxMy0wMi0xOFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBc3NpZ25JbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiTGF5ZXJJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkxheWVySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFzc2lnblZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlRWxhc3RpY0lwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbGFzdGljSXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWxhc3RpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF0dGFjaEVsYXN0aWNMb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVsYXN0aWNMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJMYXllcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVsYXN0aWNMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNsb25lU3RhY2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZVN0YWNrSWRcIixcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdEluc3RhbmNlUHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRPc1wiOiB7fSxcbiAgICAgICAgICBcIkhvc3RuYW1lVGhlbWVcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0QXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRTdWJuZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbUpzb25cIjoge30sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uTWFuYWdlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGVmQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VDdXN0b21Db29rYm9va3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZU9wc3dvcmtzU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbUNvb2tib29rc1NvdXJjZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWZhdWx0U3NoS2V5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNsb25lUGVybWlzc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsb25lQXBwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRSb290RGV2aWNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFnZW50VmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVBcHBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIixcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlNob3J0bmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFTb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJBcHBTb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9tYWluc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVTc2xcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNzbENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURlcGxveW1lbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIixcbiAgICAgICAgICBcIkNvbW1hbmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkFwcElkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGF5ZXJJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbWFuZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgIFwiQ3VzdG9tSnNvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlcGxveW1lbnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCIsXG4gICAgICAgICAgXCJMYXllcklkc1wiLFxuICAgICAgICAgIFwiSW5zdGFuY2VUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJMYXllcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBdXRvU2NhbGluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJIb3N0bmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9zXCI6IHt9LFxuICAgICAgICAgIFwiQW1pSWRcIjoge30sXG4gICAgICAgICAgXCJTc2hLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIlZpcnR1YWxpemF0aW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgIFwiQXJjaGl0ZWN0dXJlXCI6IHt9LFxuICAgICAgICAgIFwiUm9vdERldmljZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJCbG9ja0RldmljZU1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbGxVcGRhdGVzT25Cb290XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFnZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlRlbmFuY3lcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTGF5ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIixcbiAgICAgICAgICBcIlR5cGVcIixcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlNob3J0bmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTaG9ydG5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbUluc3RhbmNlUHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbUpzb25cIjoge30sXG4gICAgICAgICAgXCJDdXN0b21TZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhY2thZ2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZvbHVtZUNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVBdXRvSGVhbGluZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0Fzc2lnbkVsYXN0aWNJcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9Bc3NpZ25QdWJsaWNJcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbVJlY2lwZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbGxVcGRhdGVzT25Cb290XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VFYnNPcHRpbWl6ZWRJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpZmVjeWNsZUV2ZW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVN0YWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJSZWdpb25cIixcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlQXJuXCIsXG4gICAgICAgICAgXCJEZWZhdWx0SW5zdGFuY2VQcm9maWxlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0SW5zdGFuY2VQcm9maWxlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdE9zXCI6IHt9LFxuICAgICAgICAgIFwiSG9zdG5hbWVUaGVtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ3VzdG9tSnNvblwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25NYW5hZ2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoZWZDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZUN1c3RvbUNvb2tib29rc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlT3Bzd29ya3NTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3VzdG9tQ29va2Jvb2tzU291cmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRTc2hLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFJvb3REZXZpY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQWdlbnRWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVVzZXJQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJYW1Vc2VyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklhbVVzZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJTc2hVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNzaFB1YmxpY0tleVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93U2VsZk1hbmFnZW1lbnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklhbVVzZXJBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVBcHBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFwcElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRlbGV0ZUVsYXN0aWNJcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZXRlVm9sdW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTGF5ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxheWVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN0YWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVVc2VyUHJvZmlsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWFtVXNlckFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJYW1Vc2VyQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVyZWdpc3RlckVjc0NsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVjc0NsdXN0ZXJBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWNzQ2x1c3RlckFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJFbGFzdGljSXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVsYXN0aWNJcFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljSXBcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVySW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJSZHNEYkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZHNEYkluc3RhbmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJkc0RiSW5zdGFuY2VBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWdlbnRWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiQ29uZmlndXJhdGlvbk1hbmFnZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWdlbnRWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25NYW5hZ2VyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXBwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiQXBwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFwcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFwcElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNob3J0bmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRhdGFTb3VyY2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBcHBTb3VyY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRG9tYWluc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbmFibGVTc2xcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNzbENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbW1hbmRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlcGxveW1lbnRJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJDb21tYW5kSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbW1hbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb21tYW5kSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVwbG95bWVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWNrbm93bGVkZ2VkQXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wbGV0ZWRBdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4aXRDb2RlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMb2dVcmxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEZXBsb3ltZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiQXBwSWRcIjoge30sXG4gICAgICAgICAgXCJEZXBsb3ltZW50SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlcGxveW1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEZXBsb3ltZW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXBwSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wbGV0ZWRBdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJYW1Vc2VyQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbW1hbmRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3VzdG9tSnNvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRWNzQ2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWNzQ2x1c3RlckFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVjc0NsdXN0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFY3NDbHVzdGVyQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRWNzQ2x1c3Rlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnaXN0ZXJlZEF0XCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbGFzdGljSXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiSXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVsYXN0aWNJcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklwXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvbWFpblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVsYXN0aWNMb2FkQmFsYW5jZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJMYXllcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRWxhc3RpY0xvYWRCYWxhbmNlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEbnNOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxheWVySWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFYzJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWdlbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQW1pSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBcmNoaXRlY3R1cmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdXRvU2NhbGluZ1R5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmxvY2tEZXZpY2VNYXBwaW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFYnNPcHRpbWl6ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVjMkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFY3NDbHVzdGVyQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRWNzQ29udGFpbmVySW5zdGFuY2VBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbGFzdGljSXBcIjoge30sXG4gICAgICAgICAgICAgICAgXCJIb3N0bmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluZnJhc3RydWN0dXJlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YWxsVXBkYXRlc09uQm9vdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlUHJvZmlsZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RTZXJ2aWNlRXJyb3JJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxheWVySWRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9zXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGxhdGZvcm1cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcml2YXRlRG5zXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJpdmF0ZUlwXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHVibGljRG5zXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHVibGljSXBcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWdpc3RlcmVkQnlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXBvcnRlZEFnZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlcG9ydGVkT3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlZlcnNpb25cIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUm9vdERldmljZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb290RGV2aWNlVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNzaEhvc3REc2FLZXlGaW5nZXJwcmludFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNzaEhvc3RSc2FLZXlGaW5nZXJwcmludFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNzaEtleU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3VibmV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUZW5hbmN5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmlydHVhbGl6YXRpb25UeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMYXllcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkxheWVySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxheWVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxheWVySWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNob3J0bmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VzdG9tSW5zdGFuY2VQcm9maWxlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3VzdG9tSnNvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkN1c3RvbVNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFNlY3VyaXR5R3JvdXBOYW1lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQYWNrYWdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5hYmxlQXV0b0hlYWxpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF1dG9Bc3NpZ25FbGFzdGljSXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdXRvQXNzaWduUHVibGljSXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0UmVjaXBlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VzdG9tUmVjaXBlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZEF0XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFsbFVwZGF0ZXNPbkJvb3RcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzZUVic09wdGltaXplZEluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGlmZWN5Y2xlRXZlbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUxvYWRCYXNlZEF1dG9TY2FsaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMYXllcklkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXllcklkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2FkQmFzZWRBdXRvU2NhbGluZ0NvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMYXllcklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5hYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVcFNjYWxpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRvd25TY2FsaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU15VXNlclByb2ZpbGVcIjoge1xuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJQcm9maWxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJYW1Vc2VyQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3NoVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3NoUHVibGljS2V5XCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3BlcmF0aW5nU3lzdGVtc1wiOiB7XG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25NYW5hZ2Vyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlZlcnNpb25cIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXBvcnRlZE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXBvcnRlZFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGVybWlzc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtVXNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQZXJtaXNzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklhbVVzZXJBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBbGxvd1NzaFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWxsb3dTdWRvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMZXZlbFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmFpZEFycmF5c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlJhaWRBcnJheUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSYWlkQXJyYXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSYWlkQXJyYXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmFpZExldmVsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOdW1iZXJPZkRpc2tzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXZpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNb3VudFBvaW50XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZHNEYkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiUmRzRGJJbnN0YW5jZUFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmRzRGJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJkc0RiSW5zdGFuY2VBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRiVXNlclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRiUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1pc3NpbmdPblJkc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTZXJ2aWNlRXJyb3JzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZUVycm9ySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNlcnZpY2VFcnJvcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VFcnJvcklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRBdFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RhY2tQcm92aXNpb25pbmdQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBZ2VudEluc3RhbGxlclVybFwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja1N1bW1hcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJMYXllcnNDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQXBwc0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJJbnN0YW5jZXNDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiQXNzaWduaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJCb290aW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJDb25uZWN0aW9uTG9zdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiRGVyZWdpc3RlcmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiT25saW5lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJQZW5kaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJSZWJvb3RpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlJlZ2lzdGVyZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlJlZ2lzdGVyaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJSZXF1ZXN0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlJ1bm5pbmdTZXR1cFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiU2V0dXBGYWlsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlNodXR0aW5nRG93blwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiU3RhcnRGYWlsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlN0b3BGYWlsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlN0b3BwZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIlN0b3BwaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJUZXJtaW5hdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJUZXJtaW5hdGluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwiVW5hc3NpZ25pbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRJbnN0YW5jZVByb2ZpbGVBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0T3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJIb3N0bmFtZVRoZW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdEF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0U3VibmV0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDdXN0b21Kc29uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29uZmlndXJhdGlvbk1hbmFnZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2hlZkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXNlQ3VzdG9tQ29va2Jvb2tzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJVc2VPcHN3b3Jrc1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDdXN0b21Db29rYm9va3NTb3VyY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFNzaEtleU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkQXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0Um9vdERldmljZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBZ2VudFZlcnNpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRpbWVCYXNlZEF1dG9TY2FsaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUaW1lQmFzZWRBdXRvU2NhbGluZ0NvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXV0b1NjYWxpbmdTY2hlZHVsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRiXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVVc2VyUHJvZmlsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtVXNlckFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclByb2ZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJYW1Vc2VyQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNzaFVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3NoUHVibGljS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWxsb3dTZWxmTWFuYWdlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWb2x1bWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiUmFpZEFycmF5SWRcIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFYzJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSYWlkQXJyYXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXZpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNb3VudFBvaW50XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRldGFjaEVsYXN0aWNMb2FkQmFsYW5jZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVsYXN0aWNMb2FkQmFsYW5jZXJOYW1lXCIsXG4gICAgICAgICAgXCJMYXllcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVsYXN0aWNMb2FkQmFsYW5jZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2Fzc29jaWF0ZUVsYXN0aWNJcFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRWxhc3RpY0lwXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVsYXN0aWNJcFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEhvc3RuYW1lU3VnZ2VzdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGF5ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXllcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF5ZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIkhvc3RuYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR3JhbnRBY2Nlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlZhbGlkRm9ySW5NaW51dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUZW1wb3JhcnlDcmVkZW50aWFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWxpZEZvckluTWludXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWJvb3RJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJFY3NDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFY3NDbHVzdGVyQXJuXCIsXG4gICAgICAgICAgXCJTdGFja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVjc0NsdXN0ZXJBcm5cIjoge30sXG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWNzQ2x1c3RlckFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVyRWxhc3RpY0lwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbGFzdGljSXBcIixcbiAgICAgICAgICBcIlN0YWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWxhc3RpY0lwXCI6IHt9LFxuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVsYXN0aWNJcFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlZ2lzdGVySW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkhvc3RuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljSXBcIjoge30sXG4gICAgICAgICAgXCJQcml2YXRlSXBcIjoge30sXG4gICAgICAgICAgXCJSc2FQdWJsaWNLZXlcIjoge30sXG4gICAgICAgICAgXCJSc2FQdWJsaWNLZXlGaW5nZXJwcmludFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRlbnRpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRvY3VtZW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIlNpZ25hdHVyZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJSZHNEYkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCIsXG4gICAgICAgICAgXCJSZHNEYkluc3RhbmNlQXJuXCIsXG4gICAgICAgICAgXCJEYlVzZXJcIixcbiAgICAgICAgICBcIkRiUGFzc3dvcmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhY2tJZFwiOiB7fSxcbiAgICAgICAgICBcIlJkc0RiSW5zdGFuY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJEYlVzZXJcIjoge30sXG4gICAgICAgICAgXCJEYlBhc3N3b3JkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJWb2x1bWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRWMyVm9sdW1lSWRcIjoge30sXG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRMb2FkQmFzZWRBdXRvU2NhbGluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGF5ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXllcklkXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcFNjYWxpbmdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvd25TY2FsaW5nXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCIsXG4gICAgICAgICAgXCJJYW1Vc2VyQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge30sXG4gICAgICAgICAgXCJJYW1Vc2VyQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dTc2hcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93U3Vkb1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGV2ZWxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRUaW1lQmFzZWRBdXRvU2NhbGluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQXV0b1NjYWxpbmdTY2hlZHVsZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcEluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJGb3JjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcFN0YWNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdGFja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YWNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJUYWdSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbmFzc2lnbkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbmFzc2lnblZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbnRhZ1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQXBwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBcHBJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBcHBJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFTb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJBcHBTb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9tYWluc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVTc2xcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNzbENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVFbGFzdGljSXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVsYXN0aWNJcFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbGFzdGljSXBcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkxheWVySWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluc3RhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9TY2FsaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkhvc3RuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3NcIjoge30sXG4gICAgICAgICAgXCJBbWlJZFwiOiB7fSxcbiAgICAgICAgICBcIlNzaEtleU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBcmNoaXRlY3R1cmVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YWxsVXBkYXRlc09uQm9vdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRWJzT3B0aW1pemVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZ2VudFZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVMYXllclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGF5ZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYXllcklkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNob3J0bmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3VzdG9tSW5zdGFuY2VQcm9maWxlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQ3VzdG9tSnNvblwiOiB7fSxcbiAgICAgICAgICBcIkN1c3RvbVNlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFja2FnZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZUF1dG9IZWFsaW5nXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvQXNzaWduRWxhc3RpY0lwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0Fzc2lnblB1YmxpY0lwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3VzdG9tUmVjaXBlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFsbFVwZGF0ZXNPbkJvb3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZUVic09wdGltaXplZEluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlmZWN5Y2xlRXZlbnRDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNeVVzZXJQcm9maWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNzaFB1YmxpY0tleVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJkc0RiSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJkc0RiSW5zdGFuY2VBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmRzRGJJbnN0YW5jZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkRiVXNlclwiOiB7fSxcbiAgICAgICAgICBcIkRiUGFzc3dvcmRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVTdGFja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RhY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGFja0lkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0SW5zdGFuY2VQcm9maWxlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdE9zXCI6IHt9LFxuICAgICAgICAgIFwiSG9zdG5hbWVUaGVtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFN1Ym5ldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ3VzdG9tSnNvblwiOiB7fSxcbiAgICAgICAgICBcIkNvbmZpZ3VyYXRpb25NYW5hZ2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoZWZDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZUN1c3RvbUNvb2tib29rc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3VzdG9tQ29va2Jvb2tzU291cmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlZmF1bHRTc2hLZXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFJvb3REZXZpY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVXNlT3Bzd29ya3NTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWdlbnRWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVXNlclByb2ZpbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklhbVVzZXJBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWFtVXNlckFyblwiOiB7fSxcbiAgICAgICAgICBcIlNzaFVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3NoUHVibGljS2V5XCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dTZWxmTWFuYWdlbWVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVm9sdW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNb3VudFBvaW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlMzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlZlcnNpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk1hbmFnZUJlcmtzaGVsZlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQmVya3NoZWxmVmVyc2lvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJVcmxcIjoge30sXG4gICAgICAgIFwiVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiUGFzc3dvcmRcIjoge30sXG4gICAgICAgIFwiU3NoS2V5XCI6IHt9LFxuICAgICAgICBcIlJldmlzaW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YWJhc2VOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2xcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJDZXJ0aWZpY2F0ZVwiLFxuICAgICAgICBcIlByaXZhdGVLZXlcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2VydGlmaWNhdGVcIjoge30sXG4gICAgICAgIFwiUHJpdmF0ZUtleVwiOiB7fSxcbiAgICAgICAgXCJDaGFpblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJTZWN1cmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkFyZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRldmljZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJOb0RldmljZVwiOiB7fSxcbiAgICAgICAgICBcIlZpcnR1YWxOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRWJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZvbHVtZVNpemVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiRGVsZXRlT25UZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTG9nU3RyZWFtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJMb2dHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRGF0ZXRpbWVGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgIFwiVGltZVpvbmVcIjoge30sXG4gICAgICAgICAgICAgIFwiRmlsZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJGaWxlRmluZ2VycHJpbnRMaW5lc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJNdWx0aUxpbmVTdGFydFBhdHRlcm5cIjoge30sXG4gICAgICAgICAgICAgIFwiSW5pdGlhbFBvc2l0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVuY29kaW5nXCI6IHt9LFxuICAgICAgICAgICAgICBcIkJ1ZmZlckR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJCYXRjaENvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJCYXRjaFNpemVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk1vdW50UG9pbnRcIixcbiAgICAgICAgICBcIk51bWJlck9mRGlza3NcIixcbiAgICAgICAgICBcIlNpemVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTW91bnRQb2ludFwiOiB7fSxcbiAgICAgICAgICBcIlJhaWRMZXZlbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTnVtYmVyT2ZEaXNrc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTZXR1cFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb25maWd1cmVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGVwbG95XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVuZGVwbG95XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNodXRkb3duXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU2h1dGRvd25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkV4ZWN1dGlvblRpbWVvdXRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRlbGF5VW50aWxFbGJDb25uZWN0aW9uc0RyYWluZWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUaHJlc2hvbGRzV2FpdFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIklnbm9yZU1ldHJpY3NUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDcHVUaHJlc2hvbGRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWVtb3J5VGhyZXNob2xkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxvYWRUaHJlc2hvbGRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxhcm1zXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0YlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTW9uZGF5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUdWVzZGF5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJXZWRuZXNkYXlcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNGNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRodXJzZGF5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGcmlkYXlcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNGNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNhdHVyZGF5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdW5kYXlcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNGNcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0Y1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTNTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZUFwcHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQXBwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ29tbWFuZHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ29tbWFuZHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURlcGxveW1lbnRzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRlcGxveW1lbnRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFY3NDbHVzdGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFY3NDbHVzdGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRWxhc3RpY0lwc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFbGFzdGljSXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbGFzdGljTG9hZEJhbGFuY2Vyc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFbGFzdGljTG9hZEJhbGFuY2Vyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkluc3RhbmNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTGF5ZXJzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkxheWVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTG9hZEJhc2VkQXV0b1NjYWxpbmdcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiTG9hZEJhc2VkQXV0b1NjYWxpbmdDb25maWd1cmF0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGVybWlzc2lvbnNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGVybWlzc2lvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJhaWRBcnJheXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmFpZEFycmF5c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU2VydmljZUVycm9yc1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTZXJ2aWNlRXJyb3JzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdGFja3NcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiU3RhY2tzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUaW1lQmFzZWRBdXRvU2NhbGluZ1wiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJUaW1lQmFzZWRBdXRvU2NhbGluZ0NvbmZpZ3VyYXRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVVc2VyUHJvZmlsZXNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVXNlclByb2ZpbGVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWb2x1bWVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlZvbHVtZXNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJBcHBFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiAxLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUFwcHNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNDAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IDIwMCxcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IDQwMCxcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiRGVwbG95bWVudFN1Y2Nlc3NmdWxcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVEZXBsb3ltZW50c1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIGEgZGVwbG95bWVudCBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdWNjZXNzZnVsXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRlcGxveW1lbnRzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJmYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiRGVwbG95bWVudHNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkluc3RhbmNlT25saW5lXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldhaXQgdW50aWwgT3BzV29ya3MgaW5zdGFuY2UgaXMgb25saW5lLlwiLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIm9ubGluZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInNldHVwX2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInNodXR0aW5nX2Rvd25cIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdGFydF9mYWlsZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdG9wcGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcHBpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJ0ZXJtaW5hdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInRlcm1pbmF0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdG9wX2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkluc3RhbmNlUmVnaXN0ZXJlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIE9wc1dvcmtzIGluc3RhbmNlIGlzIHJlZ2lzdGVyZWQuXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicmVnaXN0ZXJlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInNldHVwX2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInNodXR0aW5nX2Rvd25cIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdG9wcGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcHBpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJ0ZXJtaW5hdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInRlcm1pbmF0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJzdG9wX2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkluc3RhbmNlU3RvcHBlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDE1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUluc3RhbmNlc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiA0MCxcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXYWl0IHVudGlsIE9wc1dvcmtzIGluc3RhbmNlIGlzIHN0b3BwZWQuXCIsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwic3RvcHBlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImJvb3RpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJwZW5kaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicmVib290aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicmVxdWVzdGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicnVubmluZ19zZXR1cFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInNldHVwX2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN0YXJ0X2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN0b3BfZmFpbGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiSW5zdGFuY2VUZXJtaW5hdGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMTUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDQwLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldhaXQgdW50aWwgT3BzV29ya3MgaW5zdGFuY2UgaXMgdGVybWluYXRlZC5cIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJ0ZXJtaW5hdGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvblwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImJvb3RpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJvbmxpbmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiSW5zdGFuY2VzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJwZW5kaW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicmVib290aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicmVxdWVzdGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkluc3RhbmNlc1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicnVubmluZ19zZXR1cFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInNldHVwX2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInN0YXJ0X2ZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJJbnN0YW5jZXNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE2LTA2LTEwXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInBvbGx5XCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInJlc3QtanNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFBvbGx5XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJQb2xseVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJwb2xseS0yMDE2LTA2LTEwXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkRlbGV0ZUxleGljb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3YxL2xleGljb25zL3tMZXhpY29uTmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGV4aWNvbk5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVZvaWNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdjEvdm9pY2VzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxhbmd1YWdlQ29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGFuZ3VhZ2VDb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOZXh0VG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2ljZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkdlbmRlclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFuZ3VhZ2VDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFuZ3VhZ2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldExleGljb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3YxL2xleGljb25zL3tMZXhpY29uTmFtZX1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGV4aWNvbk5hbWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMZXhpY29uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDb250ZW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIk5hbWVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGV4aWNvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdExleGljb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92MS9sZXhpY29uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5leHRUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxleGljb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNpXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0TGV4aWNvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvdjEvbGV4aWNvbnMve0xleGljb25OYW1lfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ29udGVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMZXhpY29uTmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeW50aGVzaXplU3BlZWNoXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi92MS9zcGVlY2hcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk91dHB1dEZvcm1hdFwiLFxuICAgICAgICAgIFwiVGV4dFwiLFxuICAgICAgICAgIFwiVm9pY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMZXhpY29uTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRGb3JtYXRcIjoge30sXG4gICAgICAgICAgXCJTYW1wbGVSYXRlXCI6IHt9LFxuICAgICAgICAgIFwiU3BlZWNoTWFya1R5cGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRleHRcIjoge30sXG4gICAgICAgICAgXCJUZXh0VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlZvaWNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdWRpb1N0cmVhbVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCIsXG4gICAgICAgICAgICBcInN0cmVhbWluZ1wiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJhY3RlcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtem4tUmVxdWVzdENoYXJhY3RlcnNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQXVkaW9TdHJlYW1cIlxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBbHBoYWJldFwiOiB7fSxcbiAgICAgICAgXCJMYW5ndWFnZUNvZGVcIjoge30sXG4gICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxleGljb25Bcm5cIjoge30sXG4gICAgICAgIFwiTGV4ZW1lc0NvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTMtMDEtMTBcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwicmRzXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIFJEU1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFJlbGF0aW9uYWwgRGF0YWJhc2UgU2VydmljZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiUkRTXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcInJkcy0yMDEzLTAxLTEwXCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vcmRzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDEtMTAvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRUYWdzVG9SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlEQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5REJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIixcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiLFxuICAgICAgICAgIFwiRW5naW5lXCIsXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCU2VjdXJpdHlHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU9wdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIixcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIixcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiLFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVPcHRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNraXBGaW5hbFNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5hbERCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaXN0U3VwcG9ydGVkQ2hhcmFjdGVyU2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJFbmdpbmVWZXJzaW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCRW5naW5lVmVyc2lvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJFbmdpbmVEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCRW5naW5lVmVyc2lvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdENoYXJhY3RlclNldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydGVkQ2hhcmFjdGVyU2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDaGFyYWN0ZXJTZXRcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCSW5zdGFuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlBhcmFtZXRlckdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU25hcHNob3RzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNuYXBzaG90XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU3VibmV0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTdWJuZXRHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lRGVmYXVsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc01hcExpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50Q2F0ZWdvcmllc01hcFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvbnNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRTdWJzY3JpcHRpb25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwT3B0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1pbmltdW1SZXF1aXJlZE1pbm9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvcnRSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvbnNEZXBlbmRlZE9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25OYW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcHRpb25Hcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9wdGlvbkdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3Vwc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFvXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmdpbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTXVsdGlBWkNhcGFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlYWRSZXBsaWNhQ2FwYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkREJJbnN0YW5jZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpeGVkUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXNhZ2VQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM29cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0VGFnc0ZvclJlc291cmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dNYWpvclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV3REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMzelwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeU9wdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uc1RvSW5jbHVkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcGx5SW1tZWRpYXRlbHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlPcHRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQcm9tb3RlUmVhZFJlcGxpY2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHJvbW90ZVJlYWRSZXBsaWNhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWJvb3REQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZvcmNlRmFpbG92ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZWJvb3REQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc2V0REJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXNldEFsbFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzN6XCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc2V0REJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJSZXN0b3JlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiQ3VzdG9tZXJBd3NJZFwiOiB7fSxcbiAgICAgICAgXCJDdXN0U3Vic2NyaXB0aW9uSWRcIjoge30sXG4gICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1YnNjcmlwdGlvbkNyZWF0aW9uVGltZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZUlkc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzTGlzdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTb3VyY2VJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudENhdGVnb3J5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk93bmVySWRcIjoge30sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJFQzJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRUMyU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSVBSYW5nZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklQUmFuZ2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ0lEUklQXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90Q3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiSW5zdGFuY2VDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1NlY3VyaXR5R3JvdXBJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZHBvaW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlBhcmFtZXRlckdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyQXBwbHlTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJQZW5kaW5nTW9kaWZpZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiUmVhZFJlcGxpY2FEQkluc3RhbmNlSWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBNZW1iZXJzaGlwXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIlNlY29uZGFyeUF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzExXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiU3VibmV0R3JvdXBTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3VibmV0SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMTRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiUHJvdmlzaW9uZWRJb3BzQ2FwYWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldElkZW50aWZpZXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiT3B0aW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG93c1ZwY0FuZE5vblZwY0luc3RhbmNlTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzI1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIkNoYXJhY3RlclNldERlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFyYW1ldGVyXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlclZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJBcHBseVR5cGVcIjoge30sXG4gICAgICAgICAgXCJEYXRhVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbmltdW1FbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlNZXRob2RcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZpeGVkUHJpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVXNhZ2VQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXRlXCI6IHt9LFxuICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM29cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzNvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWN1cnJpbmdDaGFyZ2VcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VBbW91bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlRnJlcXVlbmN5XCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiREJFbmdpbmVWZXJzaW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiREJJbnN0YW5jZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCUGFyYW1ldGVyR3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEQlNlY3VyaXR5R3JvdXBzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNuYXBzaG90c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEQlNuYXBzaG90c1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiREJTdWJuZXRHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJFbmdpbmVEZWZhdWx0cy5NYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkVuZ2luZURlZmF1bHRzLlBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudFN1YnNjcmlwdGlvbnNMaXN0XCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXZlbnRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiT3B0aW9uR3JvdXBPcHRpb25zXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcHRpb25Hcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiT3B0aW9uR3JvdXBzTGlzdFwiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWREQkluc3RhbmNlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCJcbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJUYWdMaXN0XCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEzLTAyLTEyXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInJkc1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBSRFNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBSZWxhdGlvbmFsIERhdGFiYXNlIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlJEU1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJyZHMtMjAxMy0wMi0xMlwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL3Jkcy5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTAyLTEyL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkVGFnc1RvUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5REJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIixcbiAgICAgICAgICBcIkVuZ2luZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIixcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNlY3VyaXR5R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWpcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJTdWJuZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCIsXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCIsXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlT3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTa2lwRmluYWxTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluYWxEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlT3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0T25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlzdFN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCRW5naW5lRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRDaGFyYWN0ZXJTZXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2hhcmFjdGVyU2V0XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkluc3RhbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkxvZ0ZpbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZpbGVuYW1lQ29udGFpbnNcIjoge30sXG4gICAgICAgICAgXCJGaWxlTGFzdFdyaXR0ZW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbGVTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkxvZ0ZpbGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpYmVEQkxvZ0ZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZXNjcmliZURCTG9nRmlsZXNEZXRhaWxzXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9nRmlsZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0V3JpdHRlblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFkXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJQYXJhbWV0ZXJHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCUGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTZWN1cml0eUdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNuYXBzaG90c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTbmFwc2hvdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU3VibmV0R3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZURlZmF1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNNYXBMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudENhdGVnb3JpZXNNYXBcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25zTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50U3Vic2NyaXB0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE9wdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJNaW5pbXVtUmVxdWlyZWRNaW5vckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb3J0UmVxdWlyZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25zRGVwZW5kZWRPblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBlcnNpc3RlbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvbkdyb3VwT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwT3B0aW9uU2V0dGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlNldHRpbmdOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU2V0dGluZ0Rlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcHRpb25Hcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9wdGlvbkdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3Vwc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmdpbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTXVsdGlBWkNhcGFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlYWRSZXBsaWNhQ2FwYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzd1wiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkREJJbnN0YW5jZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpeGVkUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVXNhZ2VQcmljZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDdXJyZW5jeUNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3lcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiTG9nRmlsZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJMb2dGaWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk51bWJlck9mTGluZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEb3dubG9hZERCTG9nRmlsZVBvcnRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2dGaWxlRGF0YVwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkFkZGl0aW9uYWxEYXRhUGVuZGluZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0VGFnc0ZvclJlc291cmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dNYWpvclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV3REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0YlwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeU9wdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uc1RvSW5jbHVkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3BcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbnNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5T3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHJvbW90ZVJlYWRSZXBsaWNhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlByb21vdGVSZWFkUmVwbGljYVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzN3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVib290REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGb3JjZUZhaWxvdmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVib290REJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbVJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldERCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRBbGxQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0YlwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXNldERCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzdG9yZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXN0b3JlREJJbnN0YW5jZVRvUG9pbnRJblRpbWVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkN1c3RvbWVyQXdzSWRcIjoge30sXG4gICAgICAgIFwiQ3VzdFN1YnNjcmlwdGlvbklkXCI6IHt9LFxuICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJzY3JpcHRpb25DcmVhdGlvblRpbWVcIjoge30sXG4gICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VJZHNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU291cmNlSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRDYXRlZ29yeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPd25lcklkXCI6IHt9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVDMlNlY3VyaXR5R3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklQUmFuZ2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJUFJhbmdlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNJRFJJUFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNrXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdENyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIkluc3RhbmNlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3BcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTcVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjU2VjdXJpdHlHcm91cElkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgIFwiRW5kcG9pbnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCUGFyYW1ldGVyR3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJBcHBseVN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIkRCU3VibmV0R3JvdXBcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICBcIlBlbmRpbmdNb2RpZmllZFZhbHVlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVhZFJlcGxpY2FTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJSZWFkUmVwbGljYURCSW5zdGFuY2VJZGVudGlmaWVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVhZFJlcGxpY2FEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcHRpb25Hcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgIFwiU2Vjb25kYXJ5QXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJTdWJuZXRHcm91cFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldFN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQcm92aXNpb25lZElvcHNDYXBhYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0SWRlbnRpZmllclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJPcHRpb25EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQZXJzaXN0ZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIixcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvd3NWcGNBbmROb25WcGNJbnN0YW5jZU1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICBcIkRhdGFUeXBlXCI6IHt9LFxuICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJc0NvbGxlY3Rpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXREZXNjcmlwdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMm5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhcmFtZXRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5pbXVtRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5TWV0aG9kXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzN5XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMzeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVjdXJyaW5nQ2hhcmdlXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlQW1vdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUZyZXF1ZW5jeVwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCRW5naW5lVmVyc2lvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCSW5zdGFuY2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkxvZ0ZpbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRlc2NyaWJlREJMb2dGaWxlc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiREJQYXJhbWV0ZXJHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJQYXJhbWV0ZXJzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCU2VjdXJpdHlHcm91cHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRCU25hcHNob3RzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJEQlN1Ym5ldEdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIkVuZ2luZURlZmF1bHRzLk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRW5naW5lRGVmYXVsdHMuUGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkV2ZW50U3Vic2NyaXB0aW9uc0xpc3RcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJPcHRpb25Hcm91cE9wdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9wdGlvbkdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJPcHRpb25Hcm91cHNMaXN0XCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIlxuICAgIH0sXG4gICAgXCJEb3dubG9hZERCTG9nRmlsZVBvcnRpb25cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJOdW1iZXJPZkxpbmVzXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIkFkZGl0aW9uYWxEYXRhUGVuZGluZ1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkxvZ0ZpbGVEYXRhXCJcbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJUYWdMaXN0XCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEzLTA5LTA5XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInJkc1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBSRFNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBSZWxhdGlvbmFsIERhdGFiYXNlIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlJEU1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJyZHMtMjAxMy0wOS0wOVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL3Jkcy5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA5LTA5L1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkVGFnc1RvUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQXV0aG9yaXplREJTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5REJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5REJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIixcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiLFxuICAgICAgICAgIFwiRW5naW5lXCIsXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlBhcmFtZXRlckdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNlY3VyaXR5R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCIsXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVPcHRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNraXBGaW5hbFNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5hbERCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaXN0U3VwcG9ydGVkQ2hhcmFjdGVyU2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJFbmdpbmVWZXJzaW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCRW5naW5lVmVyc2lvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJFbmdpbmVEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCRW5naW5lVmVyc2lvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdENoYXJhY3RlclNldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydGVkQ2hhcmFjdGVyU2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDaGFyYWN0ZXJTZXRcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCSW5zdGFuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCTG9nRmlsZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsZW5hbWVDb250YWluc1wiOiB7fSxcbiAgICAgICAgICBcIkZpbGVMYXN0V3JpdHRlblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCTG9nRmlsZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXNjcmliZURCTG9nRmlsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRlc2NyaWJlREJMb2dGaWxlc0RldGFpbHNcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMb2dGaWxlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RXcml0dGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlBhcmFtZXRlckdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU25hcHNob3RzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNuYXBzaG90XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU3VibmV0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTdWJuZXRHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lRGVmYXVsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc01hcExpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50Q2F0ZWdvcmllc01hcFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvbnNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRTdWJzY3JpcHRpb25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwT3B0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1pbmltdW1SZXF1aXJlZE1pbm9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvcnRSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvbnNEZXBlbmRlZE9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25OYW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVyc2lzdGVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVybWFuZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25Hcm91cE9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE9wdGlvblNldHRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJTZXR0aW5nTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlNldHRpbmdEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cHNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk11bHRpQVpDYXBhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWFkUmVwbGljYUNhcGFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDFcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQzXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRvd25sb2FkREJMb2dGaWxlUG9ydGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTG9nRmlsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJOdW1iZXJPZkxpbmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9nRmlsZURhdGFcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsRGF0YVBlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93TWFqb3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5ld0RCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNGdcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbnNUb0luY2x1ZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNwXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblNldHRpbmdcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25zVG9SZW1vdmVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwbHlJbW1lZGlhdGVseVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeU9wdGlvbkdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlByb21vdGVSZWFkUmVwbGljYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQcm9tb3RlUmVhZFJlcGxpY2FSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVib290REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGb3JjZUZhaWxvdmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVib290REJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVtb3ZlU291cmNlSWRlbnRpZmllckZyb21TdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVUYWdzRnJvbVJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldERCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRBbGxQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0Z1wiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXNldERCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJSZXN0b3JlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDSURSSVBcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJldm9rZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDdXN0b21lckF3c0lkXCI6IHt9LFxuICAgICAgICBcIkN1c3RTdWJzY3JpcHRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3Vic2NyaXB0aW9uQ3JlYXRpb25UaW1lXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgIFwiU291cmNlSWRzTGlzdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFdmVudENhdGVnb3JpZXNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNvdXJjZUlkXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50Q2F0ZWdvcnlcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiT3duZXJJZFwiOiB7fSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFQzJTZWN1cml0eUdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJUFJhbmdlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSVBSYW5nZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJDSURSSVBcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTa1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJJbnN0YW5jZUNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RUeXBlXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQZXJjZW50UHJvZ3Jlc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1NlY3VyaXR5R3JvdXBJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZHBvaW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlBhcmFtZXRlckdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyQXBwbHlTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJQZW5kaW5nTW9kaWZpZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiUmVhZFJlcGxpY2FEQkluc3RhbmNlSWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIlNlY29uZGFyeUF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNJbmZvc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJJbnN0YW5jZVN0YXR1c0luZm9cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5vcm1hbFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTZWN1cml0eUdyb3VwXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldEdyb3VwU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN1Ym5ldElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiU3VibmV0QXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzE0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlByb3Zpc2lvbmVkSW9wc0NhcGFibGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzFsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRJZGVudGlmaWVyXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wdGlvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBlcnNpc3RlbnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBlcm1hbmVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblNldHRpbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN2XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dzVnBjQW5kTm9uVnBjSW5zdGFuY2VNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMXZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgXCJEYXRhVHlwZVwiOiB7fSxcbiAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNDb2xsZWN0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmFsdWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0RGVzY3JpcHRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYXJhbWV0ZXJcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRhdGFUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluaW11bUVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBcHBseU1ldGhvZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0M1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNDNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlY3VycmluZ0NoYXJnZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUFtb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VGcmVxdWVuY3lcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJEQkluc3RhbmNlQXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlREJJbnN0YW5jZXNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZmFpbGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiaW5jb21wYXRpYmxlLXJlc3RvcmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJpbmNvbXBhdGlibGUtcGFyYW1ldGVyc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImluY29tcGF0aWJsZS1wYXJhbWV0ZXJzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiaW5jb21wYXRpYmxlLXJlc3RvcmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJEQkluc3RhbmNlRGVsZXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZURCSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjcmVhdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIm1vZGlmeWluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlYm9vdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlc2V0dGluZy1tYXN0ZXItY3JlZGVudGlhbHNcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0wOS0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJyZHNcIixcbiAgICBcInByb3RvY29sXCI6IFwicXVlcnlcIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gUkRTXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gUmVsYXRpb25hbCBEYXRhYmFzZSBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJSRFNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwicmRzLTIwMTQtMDktMDFcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHA6Ly9yZHMuYW1hem9uYXdzLmNvbS9kb2MvMjAxNC0wOS0wMS9cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkU291cmNlSWRlbnRpZmllclRvU3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCIsXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZFRhZ3NUb1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDSURSSVBcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCUGFyYW1ldGVyR3JvdXBJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQlBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJQYXJhbWV0ZXJHcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCUGFyYW1ldGVyR3JvdXBJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJQYXJhbWV0ZXJHcm91cElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQlBhcmFtZXRlckdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5REJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weURCU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlT3B0aW9uR3JvdXBJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXRPcHRpb25Hcm91cElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldE9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlT3B0aW9uR3JvdXBJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0T3B0aW9uR3JvdXBJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0T3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvcHlPcHRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIixcbiAgICAgICAgICBcIkVuZ2luZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIixcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGRlQ3JlZGVudGlhbEFyblwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxQYXNzd29yZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNlY3VyaXR5R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCIsXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVPcHRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU2tpcEZpbmFsU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbmFsREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJFbmdpbmVWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaXN0U3VwcG9ydGVkQ2hhcmFjdGVyU2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJFbmdpbmVWZXJzaW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCRW5naW5lVmVyc2lvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJFbmdpbmVEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCRW5naW5lVmVyc2lvbkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdENoYXJhY3RlclNldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydGVkQ2hhcmFjdGVyU2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDaGFyYWN0ZXJTZXRcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCSW5zdGFuY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJJbnN0YW5jZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkluc3RhbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkxvZ0ZpbGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZpbGVuYW1lQ29udGFpbnNcIjoge30sXG4gICAgICAgICAgXCJGaWxlTGFzdFdyaXR0ZW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbGVTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkxvZ0ZpbGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpYmVEQkxvZ0ZpbGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZXNjcmliZURCTG9nRmlsZXNEZXRhaWxzXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTG9nRmlsZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0V3JpdHRlblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCUGFyYW1ldGVyR3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2tcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlBhcmFtZXRlckdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNlY3VyaXR5R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU25hcHNob3RzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU25cIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNuYXBzaG90XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU3VibmV0R3JvdXBzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTdWJuZXRHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRW5naW5lRGVmYXVsdFBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lRGVmYXVsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc01hcExpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50Q2F0ZWdvcmllc01hcFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvbnNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRTdWJzY3JpcHRpb25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmdpbmVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwT3B0aW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1pbmltdW1SZXF1aXJlZE1pbm9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBvcnRSZXF1aXJlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFBvcnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvbnNEZXBlbmRlZE9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25OYW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVyc2lzdGVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVybWFuZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25Hcm91cE9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25Hcm91cE9wdGlvblNldHRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJTZXR0aW5nTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlNldHRpbmdEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cHNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmdpbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTXVsdGlBWkNhcGFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlYWRSZXBsaWNhQ2FwYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVnBjXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRzSW9wc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDVcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ3XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRvd25sb2FkREJMb2dGaWxlUG9ydGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTG9nRmlsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJOdW1iZXJPZkxpbmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9nRmlsZURhdGFcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsRGF0YVBlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ0xpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dNYWpvclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV3REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsUGFzc3dvcmRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNGtcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdWJuZXRJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbnNUb0luY2x1ZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiT3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcGx5SW1tZWRpYXRlbHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlPcHRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlByb21vdGVSZWFkUmVwbGljYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQcm9tb3RlUmVhZFJlcGxpY2FSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXJjaGFzZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlYm9vdERCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRm9yY2VGYWlsb3ZlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlYm9vdERCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc2V0REJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXNldEFsbFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyd1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzRrXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc2V0REJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsUGFzc3dvcmRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJSZXN0b3JlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsUGFzc3dvcmRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3VzdG9tZXJBd3NJZFwiOiB7fSxcbiAgICAgICAgXCJDdXN0U3Vic2NyaXB0aW9uSWRcIjoge30sXG4gICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1YnNjcmlwdGlvbkNyZWF0aW9uVGltZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZUlkc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzTGlzdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM2XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTb3VyY2VJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudENhdGVnb3J5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk93bmVySWRcIjoge30sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJFQzJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRUMyU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSVBSYW5nZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklQUmFuZ2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ0lEUklQXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJJbnN0YW5jZUNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RUeXBlXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQZXJjZW50UHJvZ3Jlc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJUZGVDcmVkZW50aWFsQXJuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiT3B0aW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiUGVyc2lzdGVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGVybWFuZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPcHRpb25TZXR0aW5nc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cE1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJBbGxvd3NWcGNBbmROb25WcGNJbnN0YW5jZU1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICBcIkRlZmF1bHRWYWx1ZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJBcHBseVR5cGVcIjoge30sXG4gICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIklzQ29sbGVjdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzEzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgIFwiREJJbnN0YW5jZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgIFwiRW5kcG9pbnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTeVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlBhcmFtZXRlckdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyQXBwbHlTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJQZW5kaW5nTW9kaWZpZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWFkUmVwbGljYVNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWFkUmVwbGljYURCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk9wdGlvbkdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwTWVtYmVyc2hpcFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJTZWNvbmRhcnlBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzSW5mb3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCSW5zdGFuY2VTdGF0dXNJbmZvXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJOb3JtYWxcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9LFxuICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJTdWJuZXRHcm91cFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJuZXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJuZXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdWJuZXRJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldEF2YWlsYWJpbGl0eVpvbmVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN1Ym5ldFN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0SWRlbnRpZmllclwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRmlsdGVyXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlZhbHVlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWYWx1ZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXREZXNjcmlwdGlvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMndcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhcmFtZXRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5pbXVtRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5TWV0aG9kXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ3XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM0N1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVjdXJyaW5nQ2hhcmdlXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlQW1vdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUZyZXF1ZW5jeVwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjp7XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTQtMTAtMzFcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwicmRzXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcInF1ZXJ5XCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiQW1hem9uIFJEU1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFJlbGF0aW9uYWwgRGF0YWJhc2UgU2VydmljZVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiUkRTXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcInJkcy0yMDE0LTEwLTMxXCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vcmRzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTQtMTAtMzEvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFJvbGVUb0RCQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiUm9sZUFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZUFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZFNvdXJjZUlkZW50aWZpZXJUb1N1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBZGRTb3VyY2VJZGVudGlmaWVyVG9TdWJzY3JpcHRpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRUYWdzVG9SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCIsXG4gICAgICAgICAgXCJUYWdzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXBwbHlQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiQXBwbHlBY3Rpb25cIixcbiAgICAgICAgICBcIk9wdEluVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBcHBseUFjdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9wdEluVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBcHBseVBlbmRpbmdNYWludGVuYW5jZUFjdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdXRob3JpemVEQlNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDSURSSVBcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkF1dGhvcml6ZURCU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQmFja3RyYWNrREJDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJCYWNrdHJhY2tUb1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3RyYWNrVG9cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRm9yY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZUVhcmxpZXN0VGltZU9uUG9pbnRJblRpbWVVbmF2YWlsYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTclwiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJCYWNrdHJhY2tEQkNsdXN0ZXJSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXREQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCQ2x1c3RlclBhcmFtZXRlckdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5REJDbHVzdGVyU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNvdXJjZURCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiUHJlU2lnbmVkVXJsXCI6IHt9LFxuICAgICAgICAgIFwiQ29weVRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlUmVnaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvcHlEQkNsdXN0ZXJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VEQlBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiVGFyZ2V0REJQYXJhbWV0ZXJHcm91cElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCUGFyYW1ldGVyR3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VEQlBhcmFtZXRlckdyb3VwSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERCUGFyYW1ldGVyR3JvdXBJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJQYXJhbWV0ZXJHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ29weURCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5REJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZVNpZ25lZFVybFwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5REJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvcHlPcHRpb25Hcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlT3B0aW9uR3JvdXBJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXRPcHRpb25Hcm91cElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldE9wdGlvbkdyb3VwRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlT3B0aW9uR3JvdXBJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0T3B0aW9uR3JvdXBJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0T3B0aW9uR3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNvcHlPcHRpb25Hcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQkNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkVuZ2luZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEYXRhYmFzZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRCYWNrdXBXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZUVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQcmVTaWduZWRVcmxcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCYWNrdHJhY2tXaW5kb3dcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZUNsb3Vkd2F0Y2hMb2dzRXhwb3J0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlUmVnaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZURCQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQkNsdXN0ZXJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIixcbiAgICAgICAgICBcIkVuZ2luZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkF1dG9NaW5vclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJJb3BzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJTdG9yYWdlRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkRvbWFpblwiOiB7fSxcbiAgICAgICAgICBcIkNvcHlUYWdzVG9TbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9uaXRvcmluZ0ludGVydmFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb25pdG9yaW5nUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIkRvbWFpbklBTVJvbGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvbW90aW9uVGllclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGltZXpvbmVcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVQZXJmb3JtYW5jZUluc2lnaHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzS01TS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVDbG91ZHdhdGNoTG9nc0V4cG9ydHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlREJJbnN0YW5jZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURCSW5zdGFuY2VSZWFkUmVwbGljYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiQ29weVRhZ3NUb1NuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb25pdG9yaW5nSW50ZXJ2YWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vbml0b3JpbmdSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQcmVTaWduZWRVcmxcIjoge30sXG4gICAgICAgICAgXCJFbmFibGVJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVQZXJmb3JtYW5jZUluc2lnaHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzS01TS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVDbG91ZHdhdGNoTG9nc0V4cG9ydHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VEZWZhdWx0UHJvY2Vzc29yRmVhdHVyZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQkluc3RhbmNlUmVhZFJlcGxpY2FSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlBhcmFtZXRlckdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNlY3VyaXR5R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU3VibmV0SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVEQlN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIixcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTbnNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlT3B0aW9uR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiRW5naW5lTmFtZVwiLFxuICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCIsXG4gICAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlT3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTa2lwRmluYWxTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmluYWxEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVEQkNsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCQ2x1c3RlclBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJDbHVzdGVyU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJDbHVzdGVyU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNraXBGaW5hbFNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5hbERCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlbGV0ZURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlREJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURCU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU9wdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVBY2NvdW50QXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY291bnRRdW90YXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFjY291bnRRdW90YVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjY291bnRRdW90YU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJVc2VkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXhcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNlcnRpZmljYXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDZXJ0aWZpY2F0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNlcnRpZmljYXRlXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ2VydGlmaWNhdGVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2VydGlmaWNhdGVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGh1bWJwcmludFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbGlkRnJvbVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWYWxpZFRpbGxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ2VydGlmaWNhdGVBcm5cIjoge31cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkNsdXN0ZXJCYWNrdHJhY2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJCYWNrdHJhY2tJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJDbHVzdGVyQmFja3RyYWNrc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCQ2x1c3RlckJhY2t0cmFja3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkNsdXN0ZXJCYWNrdHJhY2tcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJDbHVzdGVyUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCQ2x1c3RlclBhcmFtZXRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90QXR0cmlidXRlc1Jlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkNsdXN0ZXJTbmFwc2hvdHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkluY2x1ZGVTaGFyZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluY2x1ZGVQdWJsaWNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCQ2x1c3RlclNuYXBzaG90c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTeFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCQ2x1c3RlclNuYXBzaG90XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkNsdXN0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQkNsdXN0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJDbHVzdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkNsdXN0ZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0T25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGlzdFN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpc3RTdXBwb3J0ZWRUaW1lem9uZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCRW5naW5lVmVyc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkVuZ2luZVZlcnNpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCRW5naW5lRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEQkVuZ2luZVZlcnNpb25EZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRDaGFyYWN0ZXJTZXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0alwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRlZENoYXJhY3RlclNldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRqXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2hhcmFjdGVyU2V0XCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsaWRVcGdyYWRlVGFyZ2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVcGdyYWRlVGFyZ2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXV0b1VwZ3JhZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIklzTWFqb3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydGVkVGltZXpvbmVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUaW1lem9uZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlRpbWV6b25lTmFtZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV4cG9ydGFibGVMb2dUeXBlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydHNMb2dFeHBvcnRzVG9DbG91ZHdhdGNoTG9nc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydHNSZWFkUmVwbGljYVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJJbnN0YW5jZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJMb2dGaWxlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGaWxlbmFtZUNvbnRhaW5zXCI6IHt9LFxuICAgICAgICAgIFwiRmlsZUxhc3RXcml0dGVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWxlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJMb2dGaWxlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlc2NyaWJlREJMb2dGaWxlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRGVzY3JpYmVEQkxvZ0ZpbGVzRGV0YWlsc1wiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFdyaXR0ZW5cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlREJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlBhcmFtZXRlckdyb3Vwc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCUGFyYW1ldGVyR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlBhcmFtZXRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZURCU2VjdXJpdHlHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNrXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTZWN1cml0eUdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEQlNuYXBzaG90QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNuYXBzaG90QXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RBdHRyaWJ1dGVzUmVzdWx0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU25hcHNob3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJJbmNsdWRlU2hhcmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlUHVibGljXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEQlNuYXBzaG90c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU25hcHNob3RcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURCU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlREJTdWJuZXRHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjhcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlN1Ym5ldEdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUVuZ2luZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZURlZmF1bHRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVuZ2luZURlZmF1bHRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFbmdpbmVEZWZhdWx0UGFyYW1ldGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZURlZmF1bHRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzTWFwTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRDYXRlZ29yaWVzTWFwXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudFN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFN1YnNjcmlwdGlvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlQXJuXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcHRpb25Hcm91cE9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5naW5lTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ham9yRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9wdGlvbkdyb3VwT3B0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBPcHRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWluaW11bVJlcXVpcmVkTWlub3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUG9ydFJlcXVpcmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0UG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uc0RlcGVuZGVkT25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbk5hbWVcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25zQ29uZmxpY3RzV2l0aFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uQ29uZmxpY3ROYW1lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVyc2lzdGVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGVybWFuZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXF1aXJlc0F1dG9NaW5vckVuZ2luZVZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWcGNPbmx5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0c09wdGlvblZlcnNpb25Eb3duZ3JhZGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9wdGlvbkdyb3VwT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwT3B0aW9uU2V0dGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlNldHRpbmdOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU2V0dGluZ0Rlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQWxsb3dlZFZhbHVlc1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uR3JvdXBPcHRpb25WZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uVmVyc2lvblwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIlZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJJc0RlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3B0aW9uR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYWpvckVuZ2luZVZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVPcHRpb25Hcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cHNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvbkdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVPcmRlcmFibGVEQkluc3RhbmNlT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5naW5lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZ2luZVwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgXCJWcGNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3JkZXJhYmxlREJJbnN0YW5jZU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZGVyYWJsZURCSW5zdGFuY2VPcHRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk11bHRpQVpDYXBhYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWFkUmVwbGljYUNhcGFibGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3VwcG9ydHNTdG9yYWdlRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0c0lvcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRzRW5oYW5jZWRNb25pdG9yaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdXBwb3J0c0lBTURhdGFiYXNlQXV0aGVudGljYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN1cHBvcnRzUGVyZm9ybWFuY2VJbnNpZ2h0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWluU3RvcmFnZVNpemVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1heFN0b3JhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNaW5Jb3BzUGVyRGJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4SW9wc1BlckRiSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1pbklvcHNQZXJHaWJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4SW9wc1BlckdpYlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFibGVQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZmXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVQZW5kaW5nTWFpbnRlbmFuY2VBY3Rpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJPZmZlcmluZ1R5cGVcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM21cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZERCSW5zdGFuY2VzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNm5cIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3REZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRCSW5zdGFuY2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVjdXJyaW5nQ2hhcmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZwXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU291cmNlUmVnaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlU291cmNlUmVnaW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVJlZ2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNvdXJjZVJlZ2lvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlZ2lvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmRwb2ludFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVWYWxpZERCSW5zdGFuY2VNb2RpZmljYXRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmFsaWREQkluc3RhbmNlTW9kaWZpY2F0aW9uc01lc3NhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZhbGlkU3RvcmFnZU9wdGlvbnNcIixcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJTdG9yYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3NFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uZWRJb3BzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc0XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJJb3BzVG9TdG9yYWdlUmF0aW9cIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRvdWJsZVJhbmdlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRnJvbVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUb1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJWYWxpZFByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZmXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRvd25sb2FkREJMb2dGaWxlUG9ydGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkxvZ0ZpbGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTG9nRmlsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJOdW1iZXJPZkxpbmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRG93bmxvYWREQkxvZ0ZpbGVQb3J0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9nRmlsZURhdGFcIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsRGF0YVBlbmRpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkZhaWxvdmVyREJDbHVzdGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXREQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJGYWlsb3ZlckRCQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ3NGb3JSZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0VGFnc0ZvclJlc291cmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQkNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk5ld0RCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmFja3RyYWNrV2luZG93XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG91ZHdhdGNoTG9nc0V4cG9ydENvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3ZlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJDbHVzdGVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdpXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCQ2x1c3RlclBhcmFtZXRlckdyb3VwUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVzVG9BZGRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0OFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZhbHVlc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZXNSZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dNYWpvclZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV3REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJDQUNlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRvbWFpblwiOiB7fSxcbiAgICAgICAgICBcIkNvcHlUYWdzVG9TbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9uaXRvcmluZ0ludGVydmFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQlBvcnROdW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9uaXRvcmluZ1JvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJEb21haW5JQU1Sb2xlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb21vdGlvblRpZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZUlBTURhdGFiYXNlQXV0aGVudGljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZVBlcmZvcm1hbmNlSW5zaWdodHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBlcmZvcm1hbmNlSW5zaWdodHNLTVNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlBlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsb3Vkd2F0Y2hMb2dzRXhwb3J0Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvY2Vzc29yRmVhdHVyZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZURlZmF1bHRQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQlBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdvXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEQlNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5REJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1RvQWRkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWx1ZXNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCU25hcHNob3RBdHRyaWJ1dGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNuYXBzaG90QXR0cmlidXRlc1Jlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5REJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeURCU3VibmV0R3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeU9wdGlvbkdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcHRpb25Hcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uc1RvSW5jbHVkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJPcHRpb25OYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPcHRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3B0aW9uU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFmXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uU2V0dGluZ1wiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9wdGlvbnNUb1JlbW92ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHBseUltbWVkaWF0ZWx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5T3B0aW9uR3JvdXBSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcHRpb25Hcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHJvbW90ZVJlYWRSZXBsaWNhXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkJhY2t1cFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlByb21vdGVSZWFkUmVwbGljYVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlByb21vdGVSZWFkUmVwbGljYURCQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVyY2hhc2VSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkREJJbnN0YW5jZXNPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlB1cmNoYXNlUmVzZXJ2ZWREQkluc3RhbmNlc09mZmVyaW5nUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWREQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNm5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWJvb3REQkluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkZvcmNlRmFpbG92ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZWJvb3REQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlUm9sZUZyb21EQkNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZW1vdmVTb3VyY2VJZGVudGlmaWVyRnJvbVN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVRhZ3NGcm9tUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnS2V5c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJSZXNldEFsbFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzdpXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlc2V0REJDbHVzdGVyUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldERCUGFyYW1ldGVyR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRBbGxQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM3b1wiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXNldERCUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJDbHVzdGVyRnJvbVMzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJFbmdpbmVcIixcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCIsXG4gICAgICAgICAgXCJNYXN0ZXJVc2VyUGFzc3dvcmRcIixcbiAgICAgICAgICBcIlNvdXJjZUVuZ2luZVwiLFxuICAgICAgICAgIFwiU291cmNlRW5naW5lVmVyc2lvblwiLFxuICAgICAgICAgIFwiUzNCdWNrZXROYW1lXCIsXG4gICAgICAgICAgXCJTM0luZ2VzdGlvblJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YWJhc2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkQmFja3VwV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU291cmNlRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlMzUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiUzNJbmdlc3Rpb25Sb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiQmFja3RyYWNrV2luZG93XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVDbG91ZHdhdGNoTG9nc0V4cG9ydHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXN0b3JlREJDbHVzdGVyRnJvbVMzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlREJDbHVzdGVyRnJvbVNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkVuZ2luZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YWJhc2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZUlBTURhdGFiYXNlQXV0aGVudGljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJhY2t0cmFja1dpbmRvd1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCQ2x1c3RlckZyb21TbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzdG9yZURCQ2x1c3RlclRvUG9pbnRJblRpbWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlJlc3RvcmVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlJlc3RvcmVUb1RpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZUlBTURhdGFiYXNlQXV0aGVudGljYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJhY2t0cmFja1dpbmRvd1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCQ2x1c3RlclRvUG9pbnRJblRpbWVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgICAgXCJUZGVDcmVkZW50aWFsUGFzc3dvcmRcIjoge30sXG4gICAgICAgICAgXCJEb21haW5cIjoge30sXG4gICAgICAgICAgXCJDb3B5VGFnc1RvU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvbWFpbklBTVJvbGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlRGVmYXVsdFByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCSW5zdGFuY2VGcm9tREJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkluc3RhbmNlRnJvbVMzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCIsXG4gICAgICAgICAgXCJFbmdpbmVcIixcbiAgICAgICAgICBcIlNvdXJjZUVuZ2luZVwiLFxuICAgICAgICAgIFwiU291cmNlRW5naW5lVmVyc2lvblwiLFxuICAgICAgICAgIFwiUzNCdWNrZXROYW1lXCIsXG4gICAgICAgICAgXCJTM0luZ2VzdGlvblJvbGVBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJEQlN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93XCI6IHt9LFxuICAgICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiU3RvcmFnZUVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJDb3B5VGFnc1RvU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vbml0b3JpbmdJbnRlcnZhbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9uaXRvcmluZ1JvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJFbmFibGVJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3VyY2VFbmdpbmVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiUzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJTM0luZ2VzdGlvblJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJFbmFibGVQZXJmb3JtYW5jZUluc2lnaHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzS01TS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVDbG91ZHdhdGNoTG9nc0V4cG9ydHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VEZWZhdWx0UHJvY2Vzc29yRmVhdHVyZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXN0b3JlREJJbnN0YW5jZUZyb21TM1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlc3RvcmVEQkluc3RhbmNlVG9Qb2ludEluVGltZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlRhcmdldERCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0REJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJSZXN0b3JlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VMYXRlc3RSZXN0b3JhYmxlVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiREJJbnN0YW5jZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvTWlub3JWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGljZW5zZU1vZGVsXCI6IHt9LFxuICAgICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ29weVRhZ3NUb1NuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGRlQ3JlZGVudGlhbEFyblwiOiB7fSxcbiAgICAgICAgICBcIlRkZUNyZWRlbnRpYWxQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkRvbWFpblwiOiB7fSxcbiAgICAgICAgICBcIkRvbWFpbklBTVJvbGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlRGVmYXVsdFByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV2b2tlREJTZWN1cml0eUdyb3VwSW5ncmVzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXZva2VEQlNlY3VyaXR5R3JvdXBJbmdyZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0REJJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU3RhcnREQkluc3RhbmNlUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiREJJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcERCSW5zdGFuY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiREJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU3RvcERCSW5zdGFuY2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEQkluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkN1c3RvbWVyQXdzSWRcIjoge30sXG4gICAgICAgIFwiQ3VzdFN1YnNjcmlwdGlvbklkXCI6IHt9LFxuICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJTdWJzY3JpcHRpb25DcmVhdGlvblRpbWVcIjoge30sXG4gICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VJZHNMaXN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzZcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25Bcm5cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU291cmNlSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRDYXRlZ29yeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uRGV0YWlsc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGVuZGluZ01haW50ZW5hbmNlQWN0aW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkF1dG9BcHBsaWVkQWZ0ZXJEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkZvcmNlZEFwcGx5RGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPcHRJblN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJDdXJyZW50QXBwbHlEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk93bmVySWRcIjoge30sXG4gICAgICAgIFwiREJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEQlNlY3VyaXR5R3JvdXBEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJFQzJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRUMyU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE93bmVySWRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSVBSYW5nZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklQUmFuZ2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ0lEUklQXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cEFyblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkJhY2t0cmFja0lkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiQmFja3RyYWNrVG9cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQmFja3RyYWNrZWRGcm9tXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJhY2t0cmFja1JlcXVlc3RDcmVhdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cEFyblwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdENyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJDbHVzdGVyQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgIFwiUGVyY2VudFByb2dyZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdG9yYWdlRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdEFyblwiOiB7fSxcbiAgICAgICAgXCJTb3VyY2VEQkNsdXN0ZXJTbmFwc2hvdEFyblwiOiB7fSxcbiAgICAgICAgXCJJQU1EYXRhYmFzZUF1dGhlbnRpY2F0aW9uRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmlsaXR5Wm9uZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwQXJuXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzE1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdENyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIkluc3RhbmNlQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiOiB7fSxcbiAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkxpY2Vuc2VNb2RlbFwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdFR5cGVcIjoge30sXG4gICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIlBlcmNlbnRQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU291cmNlUmVnaW9uXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZURCU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9LFxuICAgICAgICBcIlRkZUNyZWRlbnRpYWxBcm5cIjoge30sXG4gICAgICAgIFwiRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJEQlNuYXBzaG90QXJuXCI6IHt9LFxuICAgICAgICBcIlRpbWV6b25lXCI6IHt9LFxuICAgICAgICBcIklBTURhdGFiYXNlQXV0aGVudGljYXRpb25FbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQcm9jZXNzb3JGZWF0dXJlc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlByb2Nlc3NvckZlYXR1cmVcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk9wdGlvbkdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJPcHRpb25Hcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZU5hbWVcIjoge30sXG4gICAgICAgIFwiTWFqb3JFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIk9wdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9wdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk9wdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiT3B0aW9uRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiUGVyc2lzdGVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUGVybWFuZW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPcHRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIk9wdGlvblNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJPcHRpb25TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiREJTZWN1cml0eUdyb3VwTWVtYmVyc2hpcHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb3dzVnBjQW5kTm9uVnBjSW5zdGFuY2VNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBBcm5cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMWZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkFwcGx5VHlwZVwiOiB7fSxcbiAgICAgICAgXCJEYXRhVHlwZVwiOiB7fSxcbiAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICBcIklzTW9kaWZpYWJsZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSXNDb2xsZWN0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRCU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZwY1NlY3VyaXR5R3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVnBjU2VjdXJpdHlHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzFwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBbGxvY2F0ZWRTdG9yYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgIFwiRGF0YWJhc2VOYW1lXCI6IHt9LFxuICAgICAgICBcIkRCQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBcIjoge30sXG4gICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiUGVyY2VudFByb2dyZXNzXCI6IHt9LFxuICAgICAgICBcIkVhcmxpZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5kcG9pbnRcIjoge30sXG4gICAgICAgIFwiUmVhZGVyRW5kcG9pbnRcIjoge30sXG4gICAgICAgIFwiTXVsdGlBWlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiTGF0ZXN0UmVzdG9yYWJsZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiREJDbHVzdGVyT3B0aW9uR3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJDbHVzdGVyT3B0aW9uR3JvdXBcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJEQkNsdXN0ZXJPcHRpb25Hcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJSZXBsaWNhdGlvblNvdXJjZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiUmVhZFJlcGxpY2FJZGVudGlmaWVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVhZFJlcGxpY2FJZGVudGlmaWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiREJDbHVzdGVyTWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJDbHVzdGVyTWVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiSXNDbHVzdGVyV3JpdGVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcm9tb3Rpb25UaWVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge30sXG4gICAgICAgIFwiU3RvcmFnZUVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgIFwiRGJDbHVzdGVyUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgXCJEQkNsdXN0ZXJBcm5cIjoge30sXG4gICAgICAgIFwiQXNzb2NpYXRlZFJvbGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkNsdXN0ZXJSb2xlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvbkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkNsb25lR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgXCJDbHVzdGVyQ3JlYXRlVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFYXJsaWVzdEJhY2t0cmFja1RpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQmFja3RyYWNrV2luZG93XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJCYWNrdHJhY2tDb25zdW1lZENoYW5nZVJlY29yZHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuYWJsZWRDbG91ZHdhdGNoTG9nc0V4cG9ydHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzIyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQlNlY3VyaXR5R3JvdXBOYW1lXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQkluc3RhbmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiRW5naW5lXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZHBvaW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxsb2NhdGVkU3RvcmFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFuY2VDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByZWZlcnJlZEJhY2t1cFdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJCYWNrdXBSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJQYXJhbWV0ZXJHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRCUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlckFwcGx5U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiREJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgIFwiUGVuZGluZ01vZGlmaWVkVmFsdWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICBcIkFsbG9jYXRlZFN0b3JhZ2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQmFja3VwUmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJFbmdpbmVWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgICAgICBcIklvcHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkRCSW5zdGFuY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgXCJTdG9yYWdlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgIFwiQ0FDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICBcIkRCU3VibmV0R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJQZW5kaW5nQ2xvdWR3YXRjaExvZ3NFeHBvcnRzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJMb2dUeXBlc1RvRW5hYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMb2dUeXBlc1RvRGlzYWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVzdFJlc3RvcmFibGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk11bHRpQVpcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZ2luZVZlcnNpb25cIjoge30sXG4gICAgICAgIFwiQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlYWRSZXBsaWNhU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiUmVhZFJlcGxpY2FEQkluc3RhbmNlSWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJSZWFkUmVwbGljYURCQ2x1c3RlcklkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZWFkUmVwbGljYURCQ2x1c3RlcklkZW50aWZpZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMaWNlbnNlTW9kZWxcIjoge30sXG4gICAgICAgIFwiSW9wc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3B0aW9uR3JvdXBNZW1iZXJzaGlwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3B0aW9uR3JvdXBNZW1iZXJzaGlwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiT3B0aW9uR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDaGFyYWN0ZXJTZXROYW1lXCI6IHt9LFxuICAgICAgICBcIlNlY29uZGFyeUF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiUHVibGljbHlBY2Nlc3NpYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNJbmZvc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJJbnN0YW5jZVN0YXR1c0luZm9cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5vcm1hbFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RvcmFnZVR5cGVcIjoge30sXG4gICAgICAgIFwiVGRlQ3JlZGVudGlhbEFyblwiOiB7fSxcbiAgICAgICAgXCJEYkluc3RhbmNlUG9ydFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiREJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJTdG9yYWdlRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgXCJEYmlSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICBcIkNBQ2VydGlmaWNhdGVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICBcIkRvbWFpbk1lbWJlcnNoaXBzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb21haW5NZW1iZXJzaGlwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRG9tYWluXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJGUUROXCI6IHt9LFxuICAgICAgICAgICAgICBcIklBTVJvbGVOYW1lXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNvcHlUYWdzVG9TbmFwc2hvdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTW9uaXRvcmluZ0ludGVydmFsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmhhbmNlZE1vbml0b3JpbmdSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgXCJNb25pdG9yaW5nUm9sZUFyblwiOiB7fSxcbiAgICAgICAgXCJQcm9tb3Rpb25UaWVyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEQkluc3RhbmNlQXJuXCI6IHt9LFxuICAgICAgICBcIlRpbWV6b25lXCI6IHt9LFxuICAgICAgICBcIklBTURhdGFiYXNlQXV0aGVudGljYXRpb25FbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQZXJmb3JtYW5jZUluc2lnaHRzRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlkXCI6IHt9LFxuICAgICAgICBcIlBlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuYWJsZWRDbG91ZHdhdGNoTG9nc0V4cG9ydHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb2Nlc3NvckZlYXR1cmVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiREJTdWJuZXRHcm91cERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlZwY0lkXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldEdyb3VwU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1Ym5ldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN1Ym5ldElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgIFwiU3VibmV0QXZhaWxhYmlsaXR5Wm9uZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3VibmV0U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkRCU3VibmV0R3JvdXBBcm5cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMmJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMnZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldElkZW50aWZpZXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmFsdWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNDBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlBhcmFtZXRlclwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlXCI6IHt9LFxuICAgICAgICAgIFwiQXBwbHlUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9LFxuICAgICAgICAgIFwiSXNNb2RpZmlhYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaW5pbXVtRW5naW5lVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFwcGx5TWV0aG9kXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQ1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQkNsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiREJDbHVzdGVyU25hcHNob3RBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEQkNsdXN0ZXJTbmFwc2hvdEF0dHJpYnV0ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ4XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM0OFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXR0cmlidXRlVmFsdWVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNoYXJhY3RlclNldE5hbWVcIjoge30sXG4gICAgICAgIFwiQ2hhcmFjdGVyU2V0RGVzY3JpcHRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzU2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEQlNuYXBzaG90QXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiREJTbmFwc2hvdEF0dHJpYnV0ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ4XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzVoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEQlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM2ZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXZhaWxhYmxlUHJvY2Vzc29yRmVhdHVyZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0VmFsdWVcIjoge30sXG4gICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VzT2ZmZXJpbmdJZFwiOiB7fSxcbiAgICAgICAgXCJEQkluc3RhbmNlQ2xhc3NcIjoge30sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICBcIkRCSW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvZHVjdERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgXCJNdWx0aUFaXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzZwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXNlcnZlZERCSW5zdGFuY2VBcm5cIjoge31cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNnBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlY3VycmluZ0NoYXJnZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUFtb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VGcmVxdWVuY3lcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzc0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSYW5nZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZyb21cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGVwXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN2ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkVuYWJsZUxvZ1R5cGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEaXNhYmxlTG9nVHlwZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3aVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3b1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiREJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiAyLFxuICBcIndhaXRlcnNcIjoge1xuICAgIFwiREJJbnN0YW5jZUF2YWlsYWJsZVwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZURCSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImluY29tcGF0aWJsZS1yZXN0b3JlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCSW5zdGFuY2VzW10uREJJbnN0YW5jZVN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiaW5jb21wYXRpYmxlLXBhcmFtZXRlcnNcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJEQkluc3RhbmNlRGVsZXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDMwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZURCSW5zdGFuY2VzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJEQkluc3RhbmNlTm90Rm91bmRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJlcnJvclwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjcmVhdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIm1vZGlmeWluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlYm9vdGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQkluc3RhbmNlc1tdLkRCSW5zdGFuY2VTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcInJlc2V0dGluZy1tYXN0ZXItY3JlZGVudGlhbHNcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJJbnN0YW5jZXNbXS5EQkluc3RhbmNlU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJEQlNuYXBzaG90QXZhaWxhYmxlXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlREJTbmFwc2hvdHNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiYXZhaWxhYmxlXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFsbFwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZmFpbGVkXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJpbmNvbXBhdGlibGUtcmVzdG9yZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiaW5jb21wYXRpYmxlLXBhcmFtZXRlcnNcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJTbmFwc2hvdHNbXS5TdGF0dXNcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIkRCU25hcHNob3REZWxldGVkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkRlc2NyaWJlREJTbmFwc2hvdHNcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiZGVsZXRlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiREJTbmFwc2hvdE5vdEZvdW5kXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwiZXJyb3JcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiY3JlYXRpbmdcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiREJTbmFwc2hvdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIm1vZGlmeWluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJEQlNuYXBzaG90c1tdLlN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwicmVib290aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJyZXNldHRpbmctbWFzdGVyLWNyZWRlbnRpYWxzXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkRCU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMi0xMi0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJyZWRzaGlmdFwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFJlZHNoaWZ0XCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJSZWRzaGlmdFwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJyZWRzaGlmdC0yMDEyLTEyLTAxXCIsXG4gICAgXCJ4bWxOYW1lc3BhY2VcIjogXCJodHRwOi8vcmVkc2hpZnQuYW1hem9uYXdzLmNvbS9kb2MvMjAxMi0xMi0wMS9cIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWNjZXB0UmVzZXJ2ZWROb2RlRXhjaGFuZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc2VydmVkTm9kZUlkXCIsXG4gICAgICAgICAgXCJUYXJnZXRSZXNlcnZlZE5vZGVPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkTm9kZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0UmVzZXJ2ZWROb2RlT2ZmZXJpbmdJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBY2NlcHRSZXNlcnZlZE5vZGVFeGNoYW5nZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV4Y2hhbmdlZFJlc2VydmVkTm9kZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBdXRob3JpemVDbHVzdGVyU2VjdXJpdHlHcm91cEluZ3Jlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJDSURSSVBcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkVDMlNlY3VyaXR5R3JvdXBPd25lcklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkF1dGhvcml6ZUNsdXN0ZXJTZWN1cml0eUdyb3VwSW5ncmVzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkF1dGhvcml6ZVNuYXBzaG90QWNjZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkFjY291bnRXaXRoUmVzdG9yZUFjY2Vzc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdENsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQWNjb3VudFdpdGhSZXN0b3JlQWNjZXNzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkF1dGhvcml6ZVNuYXBzaG90QWNjZXNzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weUNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJUYXJnZXRTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlU25hcHNob3RDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldFNuYXBzaG90SWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb3B5Q2x1c3RlclNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2x1c3RlclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIk5vZGVUeXBlXCIsXG4gICAgICAgICAgXCJNYXN0ZXJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclR5cGVcIjoge30sXG4gICAgICAgICAgXCJOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWFzdGVyVXNlclBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2x1c3RlclN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdXRvbWF0ZWRTbmFwc2hvdFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2x1c3RlclZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJBbGxvd1ZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOdW1iZXJPZk5vZGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiSHNtQ29uZmlndXJhdGlvbklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJFbGFzdGljSXBcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICAgIFwiRW5oYW5jZWRWcGNSb3V0aW5nXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZGRpdGlvbmFsSW5mb1wiOiB7fSxcbiAgICAgICAgICBcIklhbVJvbGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVDbHVzdGVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2x1c3RlclBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cE5hbWVcIixcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwRmFtaWx5XCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cEZhbWlseVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ2x1c3RlclBhcmFtZXRlckdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclBhcmFtZXRlckdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDbHVzdGVyU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUNsdXN0ZXJTZWN1cml0eUdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2x1c3RlclNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ2x1c3RlclNuYXBzaG90UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2x1c3RlclN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlQ2x1c3RlclN1Ym5ldEdyb3VwUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclN1Ym5ldEdyb3VwXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVFdmVudFN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiLFxuICAgICAgICAgIFwiU25zVG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUhzbUNsaWVudENlcnRpZmljYXRlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIc21DbGllbnRDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlSHNtQ2xpZW50Q2VydGlmaWNhdGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21DbGllbnRDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSHNtQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSHNtQ29uZmlndXJhdGlvbklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgXCJIc21JcEFkZHJlc3NcIixcbiAgICAgICAgICBcIkhzbVBhcnRpdGlvbk5hbWVcIixcbiAgICAgICAgICBcIkhzbVBhcnRpdGlvblBhc3N3b3JkXCIsXG4gICAgICAgICAgXCJIc21TZXJ2ZXJQdWJsaWNDZXJ0aWZpY2F0ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21Db25maWd1cmF0aW9uSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiSHNtSXBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgIFwiSHNtUGFydGl0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkhzbVBhcnRpdGlvblBhc3N3b3JkXCI6IHt9LFxuICAgICAgICAgIFwiSHNtU2VydmVyUHVibGljQ2VydGlmaWNhdGVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDcmVhdGVIc21Db25maWd1cmF0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSHNtQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU25hcHNob3RDb3B5R3JhbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNuYXBzaG90Q29weUdyYW50TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdENvcHlHcmFudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJLbXNLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVNuYXBzaG90Q29weUdyYW50UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RDb3B5R3JhbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRhZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU2tpcEZpbmFsQ2x1c3RlclNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaW5hbENsdXN0ZXJTbmFwc2hvdElkZW50aWZpZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVsZXRlQ2x1c3RlclJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNsdXN0ZXJTZWN1cml0eUdyb3VwXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ2x1c3RlclNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVDbHVzdGVyU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDbHVzdGVyU3VibmV0R3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclN1Ym5ldEdyb3VwTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVIc21DbGllbnRDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUhzbUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhzbUNvbmZpZ3VyYXRpb25JZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhzbUNvbmZpZ3VyYXRpb25JZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlU25hcHNob3RDb3B5R3JhbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNuYXBzaG90Q29weUdyYW50TmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTbmFwc2hvdENvcHlHcmFudE5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZU5hbWVcIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDbHVzdGVyRGJSZXZpc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDbHVzdGVyRGJSZXZpc2lvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVyRGJSZXZpc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJEYlJldmlzaW9uXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDdXJyZW50RGF0YWJhc2VSZXZpc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRhdGFiYXNlUmV2aXNpb25SZWxlYXNlRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXZpc2lvblRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJldmlzaW9uVGFyZ2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiRGF0YWJhc2VSZXZpc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGF0YWJhc2VSZXZpc2lvblJlbGVhc2VEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2x1c3RlclBhcmFtZXRlckdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDbHVzdGVyUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNsdXN0ZXJQYXJhbWV0ZXJzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDbHVzdGVyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDbHVzdGVyU2VjdXJpdHlHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbHVzdGVyU2VjdXJpdHlHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclNuYXBzaG90c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk93bmVyQWNjb3VudFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2x1c3RlckV4aXN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2x1c3RlclNuYXBzaG90c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNuYXBzaG90XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDbHVzdGVyU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUNsdXN0ZXJTdWJuZXRHcm91cHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVyU3VibmV0R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJTdWJuZXRHcm91cFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlQ2x1c3RlclZlcnNpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDbHVzdGVyVmVyc2lvblwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNsdXN0ZXJWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ2x1c3RlclBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVDbHVzdGVyc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBGYW1pbHlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBGYW1pbHlcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWZhdWx0Q2x1c3RlclBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM1XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudENhdGVnb3JpZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFdmVudENhdGVnb3JpZXNNYXBMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudENhdGVnb3JpZXNNYXBcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudEluZm9NYXBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJFdmVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFdmVudERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU2V2ZXJpdHlcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRXZlbnRTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uc0xpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRTdWJzY3JpcHRpb25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTb3VyY2VJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVFdmVudHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJFdmVudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU291cmNlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXZlbnRJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSHNtQ2xpZW50Q2VydGlmaWNhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlSHNtQ2xpZW50Q2VydGlmaWNhdGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkhzbUNsaWVudENlcnRpZmljYXRlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIc21Db25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIc21Db25maWd1cmF0aW9uSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlSHNtQ29uZmlndXJhdGlvbnNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJIc21Db25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmJcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIc21Db25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVMb2dnaW5nU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzRjXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlTG9nZ2luZ1N0YXR1c1Jlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3JkZXJhYmxlQ2x1c3Rlck9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZU9yZGVyYWJsZUNsdXN0ZXJPcHRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3JkZXJhYmxlQ2x1c3Rlck9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9yZGVyYWJsZUNsdXN0ZXJPcHRpb25cIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDbHVzdGVyVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNsdXN0ZXJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdmFpbGFiaWxpdHlab25lXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWROb2RlT2ZmZXJpbmdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkTm9kZU9mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVSZXNlcnZlZE5vZGVPZmZlcmluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVPZmZlcmluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVzZXJ2ZWROb2Rlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVJlc2VydmVkTm9kZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWROb2RlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNpemVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlUmVzaXplUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0Tm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXROdW1iZXJPZk5vZGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXRDbHVzdGVyVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIkltcG9ydFRhYmxlc0NvbXBsZXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbXBvcnRUYWJsZXNJblByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkltcG9ydFRhYmxlc05vdFN0YXJ0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZnUmVzaXplUmF0ZUluTWVnYUJ5dGVzUGVyU2Vjb25kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvdGFsUmVzaXplRGF0YUluTWVnYUJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9ncmVzc0luTWVnYUJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbGFwc2VkVGltZUluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXN0aW1hdGVkVGltZVRvQ29tcGxldGlvbkluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTbmFwc2hvdENvcHlHcmFudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RDb3B5R3JhbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGVzY3JpYmVTbmFwc2hvdENvcHlHcmFudHNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdENvcHlHcmFudHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJlXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU25hcHNob3RDb3B5R3JhbnRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhYmxlUmVzdG9yZVN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlRhYmxlUmVzdG9yZVJlcXVlc3RJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZXNjcmliZVRhYmxlUmVzdG9yZVN0YXR1c1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlUmVzdG9yZVN0YXR1c0RldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUyXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFibGVSZXN0b3JlU3RhdHVzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVUYWdzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRhZ0tleXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ1ZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzMwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkRlc2NyaWJlVGFnc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ2dlZFJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnZ2VkUmVzb3VyY2VcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUYWdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGlzYWJsZUxvZ2dpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNGNcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiRGlzYWJsZUxvZ2dpbmdSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlU25hcHNob3RDb3B5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEaXNhYmxlU25hcHNob3RDb3B5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzExXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlTG9nZ2luZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIkJ1Y2tldE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNLZXlQcmVmaXhcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM0Y1wiLFxuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJFbmFibGVMb2dnaW5nUmVzdWx0XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRW5hYmxlU25hcHNob3RDb3B5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiRGVzdGluYXRpb25SZWdpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJEZXN0aW5hdGlvblJlZ2lvblwiOiB7fSxcbiAgICAgICAgICBcIlJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RDb3B5R3JhbnROYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkVuYWJsZVNuYXBzaG90Q29weVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENsdXN0ZXJDcmVkZW50aWFsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGJVc2VyXCIsXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEYlVzZXJcIjoge30sXG4gICAgICAgICAgXCJEYk5hbWVcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b0NyZWF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGJHcm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRiR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0Q2x1c3RlckNyZWRlbnRpYWxzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGJVc2VyXCI6IHt9LFxuICAgICAgICAgIFwiRGJQYXNzd29yZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZXNlcnZlZE5vZGVFeGNoYW5nZU9mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0UmVzZXJ2ZWROb2RlRXhjaGFuZ2VPZmZlcmluZ3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVPZmZlcmluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0a1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUNsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclR5cGVcIjoge30sXG4gICAgICAgICAgXCJOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk51bWJlck9mTm9kZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWcGNTZWN1cml0eUdyb3VwSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTd1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICBcIkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdXRvbWF0ZWRTbmFwc2hvdFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVyVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93VmVyc2lvblVwZ3JhZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkhzbUNvbmZpZ3VyYXRpb25JZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiTmV3Q2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVsYXN0aWNJcFwiOiB7fSxcbiAgICAgICAgICBcIkVuaGFuY2VkVnBjUm91dGluZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUNsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlDbHVzdGVyRGJSZXZpc2lvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlJldmlzaW9uVGFyZ2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiUmV2aXNpb25UYXJnZXRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTW9kaWZ5Q2x1c3RlckRiUmV2aXNpb25SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlDbHVzdGVySWFtUm9sZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiQWRkSWFtUm9sZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVtb3ZlSWFtUm9sZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUNsdXN0ZXJJYW1Sb2xlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUNsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCIsXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVyXCIsXG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUNsdXN0ZXJQYXJhbWV0ZXJHcm91cFJlc3VsdFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIk1vZGlmeUNsdXN0ZXJTdWJuZXRHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlclN1Ym5ldEdyb3VwTmFtZVwiLFxuICAgICAgICAgIFwiU3VibmV0SWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym5ldElkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIk1vZGlmeUNsdXN0ZXJTdWJuZXRHcm91cFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTW9kaWZ5RXZlbnRTdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNuc1RvcGljQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXZlbnRDYXRlZ29yaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlFdmVudFN1YnNjcmlwdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkV2ZW50U3Vic2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlTbmFwc2hvdENvcHlSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJNb2RpZnlTbmFwc2hvdENvcHlSZXRlbnRpb25QZXJpb2RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXJjaGFzZVJlc2VydmVkTm9kZU9mZmVyaW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVPZmZlcmluZ0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc2VydmVkTm9kZU9mZmVyaW5nSWRcIjoge30sXG4gICAgICAgICAgXCJOb2RlQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJQdXJjaGFzZVJlc2VydmVkTm9kZU9mZmVyaW5nUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlYm9vdENsdXN0ZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJlYm9vdENsdXN0ZXJSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNldENsdXN0ZXJQYXJhbWV0ZXJHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlckdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc2V0QWxsUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNXJcIixcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzZXRDbHVzdGVyUGFyYW1ldGVyR3JvdXBSZXN1bHRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlRnJvbUNsdXN0ZXJTbmFwc2hvdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIixcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIlNuYXBzaG90Q2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlab25lXCI6IHt9LFxuICAgICAgICAgIFwiQWxsb3dWZXJzaW9uVXBncmFkZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2x1c3RlclN1Ym5ldEdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlB1YmxpY2x5QWNjZXNzaWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICAgIFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiSHNtQ29uZmlndXJhdGlvbklkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJFbGFzdGljSXBcIjoge30sXG4gICAgICAgICAgXCJDbHVzdGVyUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dcIjoge30sXG4gICAgICAgICAgXCJBdXRvbWF0ZWRTbmFwc2hvdFJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgICAgXCJOb2RlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkVuaGFuY2VkVnBjUm91dGluZ1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRkaXRpb25hbEluZm9cIjoge30sXG4gICAgICAgICAgXCJJYW1Sb2xlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZUZyb21DbHVzdGVyU25hcHNob3RSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlVGFibGVGcm9tQ2x1c3RlclNuYXBzaG90XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiLFxuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJTb3VyY2VEYXRhYmFzZU5hbWVcIixcbiAgICAgICAgICBcIlNvdXJjZVRhYmxlTmFtZVwiLFxuICAgICAgICAgIFwiTmV3VGFibGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlRGF0YWJhc2VOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlU2NoZW1hTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVRhYmxlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldERhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldFNjaGVtYU5hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXdUYWJsZU5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUmVzdG9yZVRhYmxlRnJvbUNsdXN0ZXJTbmFwc2hvdFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhYmxlUmVzdG9yZVN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV2b2tlQ2x1c3RlclNlY3VyaXR5R3JvdXBJbmdyZXNzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ0lEUklQXCI6IHt9LFxuICAgICAgICAgIFwiRUMyU2VjdXJpdHlHcm91cE5hbWVcIjoge30sXG4gICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXZva2VDbHVzdGVyU2VjdXJpdHlHcm91cEluZ3Jlc3NSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXZva2VTbmFwc2hvdEFjY2Vzc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCIsXG4gICAgICAgICAgXCJBY2NvdW50V2l0aFJlc3RvcmVBY2Nlc3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICBcIkFjY291bnRXaXRoUmVzdG9yZUFjY2Vzc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZXZva2VTbmFwc2hvdEFjY2Vzc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNuYXBzaG90XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJvdGF0ZUVuY3J5cHRpb25LZXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlJvdGF0ZUVuY3J5cHRpb25LZXlSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlc2VydmVkTm9kZUlkXCI6IHt9LFxuICAgICAgICBcIlJlc2VydmVkTm9kZU9mZmVyaW5nSWRcIjoge30sXG4gICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGaXhlZFByaWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVzYWdlUHJpY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VycmVuY3lDb2RlXCI6IHt9LFxuICAgICAgICBcIk5vZGVDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiT2ZmZXJpbmdUeXBlXCI6IHt9LFxuICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzZXJ2ZWROb2RlT2ZmZXJpbmdUeXBlXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlY3VycmluZ0NoYXJnZVwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZUFtb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWN1cnJpbmdDaGFyZ2VGcmVxdWVuY3lcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJFQzJTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRUMyU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFQzJTZWN1cml0eUdyb3VwT3duZXJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklQUmFuZ2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJUFJhbmdlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNJRFJJUFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTaFwiLFxuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNuYXBzaG90SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdENyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF2YWlsYWJpbGl0eVpvbmVcIjoge30sXG4gICAgICAgIFwiQ2x1c3RlckNyZWF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiQ2x1c3RlclZlcnNpb25cIjoge30sXG4gICAgICAgIFwiU25hcHNob3RUeXBlXCI6IHt9LFxuICAgICAgICBcIk5vZGVUeXBlXCI6IHt9LFxuICAgICAgICBcIk51bWJlck9mTm9kZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRCTmFtZVwiOiB7fSxcbiAgICAgICAgXCJWcGNJZFwiOiB7fSxcbiAgICAgICAgXCJFbmNyeXB0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkttc0tleUlkXCI6IHt9LFxuICAgICAgICBcIkVuY3J5cHRlZFdpdGhIU01cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkFjY291bnRzV2l0aFJlc3RvcmVBY2Nlc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFjY291bnRXaXRoUmVzdG9yZUFjY2Vzc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBY2NvdW50QWxpYXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiT3duZXJBY2NvdW50XCI6IHt9LFxuICAgICAgICBcIlRvdGFsQmFja3VwU2l6ZUluTWVnYUJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFjdHVhbEluY3JlbWVudGFsQmFja3VwU2l6ZUluTWVnYUJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJhY2t1cFByb2dyZXNzSW5NZWdhQnl0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3VycmVudEJhY2t1cFJhdGVJbk1lZ2FCeXRlc1BlclNlY29uZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFc3RpbWF0ZWRTZWNvbmRzVG9Db21wbGV0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJFbGFwc2VkVGltZUluU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU291cmNlUmVnaW9uXCI6IHt9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzdG9yYWJsZU5vZGVUeXBlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTm9kZVR5cGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFbmhhbmNlZFZwY1JvdXRpbmdcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwTmFtZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWcGNTZWN1cml0eUdyb3VwSWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTelwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWFtUm9sZUFyblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ2x1c3RlcklkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgIFwiQ2x1c3RlclN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJNb2RpZnlTdGF0dXNcIjoge30sXG4gICAgICAgIFwiTWFzdGVyVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiREJOYW1lXCI6IHt9LFxuICAgICAgICBcIkVuZHBvaW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgXCJQb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNsdXN0ZXJDcmVhdGVUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkF1dG9tYXRlZFNuYXBzaG90UmV0ZW50aW9uUGVyaW9kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbHVzdGVyU2VjdXJpdHlHcm91cHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsdXN0ZXJTZWN1cml0eUdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQ2x1c3RlclNlY3VyaXR5R3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJWcGNTZWN1cml0eUdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVnBjU2VjdXJpdHlHcm91cFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlZwY1NlY3VyaXR5R3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2x1c3RlclBhcmFtZXRlckdyb3Vwc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2x1c3RlclBhcmFtZXRlckdyb3VwXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmFtZXRlckFwcGx5U3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICBcIkNsdXN0ZXJQYXJhbWV0ZXJTdGF0dXNMaXN0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyQXBwbHlTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyQXBwbHlFcnJvckRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiQXZhaWxhYmlsaXR5Wm9uZVwiOiB7fSxcbiAgICAgICAgXCJQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1wiOiB7fSxcbiAgICAgICAgXCJQZW5kaW5nTW9kaWZpZWRWYWx1ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIk1hc3RlclVzZXJQYXNzd29yZFwiOiB7fSxcbiAgICAgICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgICBcIk51bWJlck9mTm9kZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNsdXN0ZXJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgXCJDbHVzdGVyVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgIFwiQXV0b21hdGVkU25hcHNob3RSZXRlbnRpb25QZXJpb2RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNsdXN0ZXJJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVuaGFuY2VkVnBjUm91dGluZ1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDbHVzdGVyVmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJBbGxvd1ZlcnNpb25VcGdyYWRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOdW1iZXJPZk5vZGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQdWJsaWNseUFjY2Vzc2libGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzdG9yZVN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgXCJDdXJyZW50UmVzdG9yZVJhdGVJbk1lZ2FCeXRlc1BlclNlY29uZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTbmFwc2hvdFNpemVJbk1lZ2FCeXRlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiUHJvZ3Jlc3NJbk1lZ2FCeXRlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRWxhcHNlZFRpbWVJblNlY29uZHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkVzdGltYXRlZFRpbWVUb0NvbXBsZXRpb25JblNlY29uZHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSHNtU3RhdHVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJIc21DbGllbnRDZXJ0aWZpY2F0ZUlkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgICBcIkhzbUNvbmZpZ3VyYXRpb25JZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2x1c3RlclNuYXBzaG90Q29weVN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRGVzdGluYXRpb25SZWdpb25cIjoge30sXG4gICAgICAgICAgICBcIlJldGVudGlvblBlcmlvZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU25hcHNob3RDb3B5R3JhbnROYW1lXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkNsdXN0ZXJQdWJsaWNLZXlcIjoge30sXG4gICAgICAgIFwiQ2x1c3Rlck5vZGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5vZGVSb2xlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByaXZhdGVJUEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgIFwiUHVibGljSVBBZGRyZXNzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkVsYXN0aWNJcFN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRWxhc3RpY0lwXCI6IHt9LFxuICAgICAgICAgICAgXCJTdGF0dXNcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2x1c3RlclJldmlzaW9uTnVtYmVyXCI6IHt9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgIFwiRW5oYW5jZWRWcGNSb3V0aW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJYW1Sb2xlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2x1c3RlcklhbVJvbGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJYW1Sb2xlQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFwcGx5U3RhdHVzXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlBlbmRpbmdBY3Rpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIlBhcmFtZXRlckdyb3VwRmFtaWx5XCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1Ym5ldElkZW50aWZpZXJcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNsdXN0ZXJTdWJuZXRHcm91cE5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiVnBjSWRcIjoge30sXG4gICAgICAgIFwiU3VibmV0R3JvdXBTdGF0dXNcIjoge30sXG4gICAgICAgIFwiU3VibmV0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU3VibmV0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3VibmV0SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRBdmFpbGFiaWxpdHlab25lXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJTdWJuZXRTdGF0dXNcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTdXBwb3J0ZWRQbGF0Zm9ybXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlN1cHBvcnRlZFBsYXRmb3JtXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzIyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTb3VyY2VJZFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRDYXRlZ29yeVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ3VzdG9tZXJBd3NJZFwiOiB7fSxcbiAgICAgICAgXCJDdXN0U3Vic2NyaXB0aW9uSWRcIjoge30sXG4gICAgICAgIFwiU25zVG9waWNBcm5cIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1YnNjcmlwdGlvbkNyZWF0aW9uVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZUlkc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV2ZW50Q2F0ZWdvcmllc0xpc3RcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjNcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNldmVyaXR5XCI6IHt9LFxuICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIndyYXBwZXJcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMjhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkhzbUNsaWVudENlcnRpZmljYXRlSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJIc21DbGllbnRDZXJ0aWZpY2F0ZVB1YmxpY0tleVwiOiB7fSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzJiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJIc21Db25maWd1cmF0aW9uSWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJIc21JcEFkZHJlc3NcIjoge30sXG4gICAgICAgIFwiSHNtUGFydGl0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2dcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJ3cmFwcGVyXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzJlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTbmFwc2hvdENvcHlHcmFudE5hbWVcIjoge30sXG4gICAgICAgIFwiS21zS2V5SWRcIjoge30sXG4gICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnS2V5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzMwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdWYWx1ZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUGFyYW1ldGVyXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlclZhbHVlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VcIjoge30sXG4gICAgICAgICAgXCJEYXRhVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFsbG93ZWRWYWx1ZXNcIjoge30sXG4gICAgICAgICAgXCJBcHBseVR5cGVcIjoge30sXG4gICAgICAgICAgXCJJc01vZGlmaWFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbmltdW1FbmdpbmVWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJMb2dnaW5nRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJTM0tleVByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJMYXN0U3VjY2Vzc2Z1bERlbGl2ZXJ5VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0RmFpbHVyZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdEZhaWx1cmVNZXNzYWdlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0a1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXJ2ZWROb2RlT2ZmZXJpbmdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNlcnZlZE5vZGVPZmZlcmluZ0lkXCI6IHt9LFxuICAgICAgICAgIFwiTm9kZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRml4ZWRQcmljZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2FnZVByaWNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1cnJlbmN5Q29kZVwiOiB7fSxcbiAgICAgICAgICBcIk9mZmVyaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlJlY3VycmluZ0NoYXJnZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzZXJ2ZWROb2RlT2ZmZXJpbmdUeXBlXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1MlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVGFibGVSZXN0b3JlUmVxdWVzdElkXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJNZXNzYWdlXCI6IHt9LFxuICAgICAgICBcIlJlcXVlc3RUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb2dyZXNzSW5NZWdhQnl0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRvdGFsRGF0YUluTWVnYUJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbHVzdGVySWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJTbmFwc2hvdElkZW50aWZpZXJcIjoge30sXG4gICAgICAgIFwiU291cmNlRGF0YWJhc2VOYW1lXCI6IHt9LFxuICAgICAgICBcIlNvdXJjZVNjaGVtYU5hbWVcIjoge30sXG4gICAgICAgIFwiU291cmNlVGFibGVOYW1lXCI6IHt9LFxuICAgICAgICBcIlRhcmdldERhdGFiYXNlTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUYXJnZXRTY2hlbWFOYW1lXCI6IHt9LFxuICAgICAgICBcIk5ld1RhYmxlTmFtZVwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwid3JhcHBlclwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM1clwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUGFyYW1ldGVyR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIlBhcmFtZXRlckdyb3VwU3RhdHVzXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVDbHVzdGVyUGFyYW1ldGVyR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlBhcmFtZXRlckdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGFyYW1ldGVyc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclNlY3VyaXR5R3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNsdXN0ZXJTZWN1cml0eUdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclNuYXBzaG90c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTbmFwc2hvdHNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNsdXN0ZXJTdWJuZXRHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ2x1c3RlclN1Ym5ldEdyb3Vwc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlclZlcnNpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVjb3Jkc1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNsdXN0ZXJWZXJzaW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2x1c3RlcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQ2x1c3RlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZURlZmF1bHRDbHVzdGVyUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzLk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRGVmYXVsdENsdXN0ZXJQYXJhbWV0ZXJzLlBhcmFtZXRlcnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUV2ZW50U3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJFdmVudFN1YnNjcmlwdGlvbnNMaXN0XCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVFdmVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRXZlbnRzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIc21DbGllbnRDZXJ0aWZpY2F0ZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiSHNtQ2xpZW50Q2VydGlmaWNhdGVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVIc21Db25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJIc21Db25maWd1cmF0aW9uc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlT3JkZXJhYmxlQ2x1c3Rlck9wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiT3JkZXJhYmxlQ2x1c3Rlck9wdGlvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkTm9kZU9mZmVyaW5nc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlY29yZHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNlcnZlZE5vZGVPZmZlcmluZ3NcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJlc2VydmVkTm9kZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZWNvcmRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUmVzZXJ2ZWROb2Rlc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogMixcbiAgXCJ3YWl0ZXJzXCI6IHtcbiAgICBcIkNsdXN0ZXJBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiA2MCxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDbHVzdGVyc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAzMCxcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJhdmFpbGFibGVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQWxsXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ2x1c3RlcnNbXS5DbHVzdGVyU3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGluZ1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJDbHVzdGVyc1tdLkNsdXN0ZXJTdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkNsdXN0ZXJOb3RGb3VuZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJDbHVzdGVyRGVsZXRlZFwiOiB7XG4gICAgICBcImRlbGF5XCI6IDYwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJEZXNjcmliZUNsdXN0ZXJzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDMwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcIkNsdXN0ZXJOb3RGb3VuZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcImVycm9yXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImNyZWF0aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXJzW10uQ2x1c3RlclN0YXR1c1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwibW9kaWZ5aW5nXCIsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwicGF0aEFueVwiLFxuICAgICAgICAgIFwic3RhdGVcIjogXCJmYWlsdXJlXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXJzW10uQ2x1c3RlclN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiQ2x1c3RlclJlc3RvcmVkXCI6IHtcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDbHVzdGVyc1wiLFxuICAgICAgXCJtYXhBdHRlbXB0c1wiOiAzMCxcbiAgICAgIFwiZGVsYXlcIjogNjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiQ2x1c3RlcnNbXS5SZXN0b3JlU3RhdHVzLlN0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJjb21wbGV0ZWRcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNsdXN0ZXJzW10uQ2x1c3RlclN0YXR1c1wiLFxuICAgICAgICAgIFwiZXhwZWN0ZWRcIjogXCJkZWxldGluZ1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIFwiU25hcHNob3RBdmFpbGFibGVcIjoge1xuICAgICAgXCJkZWxheVwiOiAxNSxcbiAgICAgIFwib3BlcmF0aW9uXCI6IFwiRGVzY3JpYmVDbHVzdGVyU25hcHNob3RzXCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDIwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImF2YWlsYWJsZVwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbGxcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTbmFwc2hvdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImZhaWxlZFwiLFxuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhBbnlcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwiZmFpbHVyZVwiLFxuICAgICAgICAgIFwiYXJndW1lbnRcIjogXCJTbmFwc2hvdHNbXS5TdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiBcImRlbGV0ZWRcIixcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJwYXRoQW55XCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcImZhaWx1cmVcIixcbiAgICAgICAgICBcImFyZ3VtZW50XCI6IFwiU25hcHNob3RzW10uU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNi0wNi0yN1wiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJyZWtvZ25pdGlvblwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFJla29nbml0aW9uXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJSZWtvZ25pdGlvblwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJSZWtvZ25pdGlvblNlcnZpY2VcIixcbiAgICBcInVpZFwiOiBcInJla29nbml0aW9uLTIwMTYtMDYtMjdcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQ29tcGFyZUZhY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTb3VyY2VJbWFnZVwiLFxuICAgICAgICAgIFwiVGFyZ2V0SW1hZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU291cmNlSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0SW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2ltaWxhcml0eVRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNvdXJjZUltYWdlRmFjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiQm91bmRpbmdCb3hcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhY2VNYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTaW1pbGFyaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmFjZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbm1hdGNoZWRGYWNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvdXJjZUltYWdlT3JpZW50YXRpb25Db3JyZWN0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0SW1hZ2VPcmllbnRhdGlvbkNvcnJlY3Rpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDb2xsZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzQ29kZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29sbGVjdGlvbkFyblwiOiB7fSxcbiAgICAgICAgICBcIkZhY2VNb2RlbFZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTdHJlYW1Qcm9jZXNzb3JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklucHV0XCIsXG4gICAgICAgICAgXCJPdXRwdXRcIixcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlNldHRpbmdzXCIsXG4gICAgICAgICAgXCJSb2xlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklucHV0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk91dHB1dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2V0dGluZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1Qcm9jZXNzb3JBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVDb2xsZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhdHVzQ29kZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRmFjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZFwiLFxuICAgICAgICAgIFwiRmFjZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJGYWNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxldGVkRmFjZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVN0cmVhbVByb2Nlc3NvclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTdHJlYW1Qcm9jZXNzb3JcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdHJlYW1Qcm9jZXNzb3JBcm5cIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdFVwZGF0ZVRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnB1dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPdXRwdXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlNldHRpbmdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXRlY3RGYWNlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW1hZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmFjZURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3JpZW50YXRpb25Db3JyZWN0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0ZWN0TGFiZWxzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbWFnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbWFnZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhMYWJlbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMYWJlbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3JpZW50YXRpb25Db3JyZWN0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0ZWN0TW9kZXJhdGlvbkxhYmVsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW1hZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1vZGVyYXRpb25MYWJlbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGV0ZWN0VGV4dFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW1hZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGV4dERldGVjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRldGVjdGVkVGV4dFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUGFyZW50SWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJHZW9tZXRyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQm91bmRpbmdCb3hcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYlwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUG9seWdvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJYXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiWVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENlbGVicml0eUluZm9cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXJsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENlbGVicml0eVJlY29nbml0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJKb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlNvcnRCeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJWaWRlb01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJDZWxlYnJpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDZWxlYnJpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlVybHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkJvdW5kaW5nQm94XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkZhY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENvbnRlbnRNb2RlcmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJKb2JJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlNvcnRCeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJWaWRlb01ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb2RlcmF0aW9uTGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1vZGVyYXRpb25MYWJlbFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI5XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RmFjZURldGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiVmlkZW9NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRmFjZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RmFjZVNlYXJjaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTb3J0QnlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVmlkZW9NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGVyc29uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQZXJzb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZlwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZhY2VNYXRjaGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2hcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRMYWJlbERldGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTb3J0QnlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiVmlkZW9NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhYmVsXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQZXJzb25UcmFja2luZ1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSm9iSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJTb3J0QnlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJKb2JTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHt9LFxuICAgICAgICAgIFwiVmlkZW9NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUGVyc29uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQZXJzb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkluZGV4RmFjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZFwiLFxuICAgICAgICAgIFwiSW1hZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXh0ZXJuYWxJbWFnZUlkXCI6IHt9LFxuICAgICAgICAgIFwiRGV0ZWN0aW9uQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmFjZVJlY29yZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZhY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzalwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZhY2VEZXRhaWxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yaWVudGF0aW9uQ29ycmVjdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkZhY2VNb2RlbFZlcnNpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q29sbGVjdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJGYWNlTW9kZWxWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RmFjZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGYWNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2pcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJGYWNlTW9kZWxWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFN0cmVhbVByb2Nlc3NvcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiU3RyZWFtUHJvY2Vzc29yc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlY29nbml6ZUNlbGVicml0aWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbWFnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbWFnZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDZWxlYnJpdHlGYWNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVXJsc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmFjZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNYXRjaENvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVbnJlY29nbml6ZWRGYWNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZlwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yaWVudGF0aW9uQ29ycmVjdGlvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlYXJjaEZhY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIixcbiAgICAgICAgICBcIkZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJGYWNlSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhGYWNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFjZU1hdGNoVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VhcmNoZWRGYWNlSWRcIjoge30sXG4gICAgICAgICAgXCJGYWNlTWF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFjZU1vZGVsVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlYXJjaEZhY2VzQnlJbWFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29sbGVjdGlvbklkXCIsXG4gICAgICAgICAgXCJJbWFnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJJbWFnZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhGYWNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmFjZU1hdGNoVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VhcmNoZWRGYWNlQm91bmRpbmdCb3hcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VhcmNoZWRGYWNlQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhY2VNYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWNlTW9kZWxWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRDZWxlYnJpdHlSZWNvZ25pdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVmlkZW9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmlkZW9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0blwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFJlcXVlc3RUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNoYW5uZWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkpvYlRhZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdGFydENvbnRlbnRNb2RlcmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWaWRlb1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWaWRlb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWluQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFJlcXVlc3RUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNoYW5uZWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkpvYlRhZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdGFydEZhY2VEZXRlY3Rpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZpZGVvXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZpZGVvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNG5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRSZXF1ZXN0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25DaGFubmVsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWNlQXR0cmlidXRlc1wiOiB7fSxcbiAgICAgICAgICBcIkpvYlRhZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdGFydEZhY2VTZWFyY2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZpZGVvXCIsXG4gICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmlkZW9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0blwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFJlcXVlc3RUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkZhY2VNYXRjaFRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbGxlY3Rpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNoYW5uZWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkpvYlRhZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdGFydExhYmVsRGV0ZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWaWRlb1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWaWRlb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWluQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNoYW5uZWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkpvYlRhZ1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkpvYklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImlkZW1wb3RlbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdGFydFBlcnNvblRyYWNraW5nXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWaWRlb1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWaWRlb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50UmVxdWVzdFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ2hhbm5lbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSm9iVGFnXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSm9iSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiaWRlbXBvdGVudFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlN0YXJ0U3RyZWFtUHJvY2Vzc29yXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdG9wU3RyZWFtUHJvY2Vzc29yXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ5dGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTM09iamVjdFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiVmVyc2lvblwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiV2lkdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJIZWlnaHRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMZWZ0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVG9wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJvdW5kaW5nQm94XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYW5kbWFya3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUG9zZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJRdWFsaXR5XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2xcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiWFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIllcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUm9sbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIllhd1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlBpdGNoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2xcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJyaWdodG5lc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTaGFycG5lc3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2luZXNpc1ZpZGVvU3RyZWFtXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBcm5cIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktpbmVzaXNEYXRhU3RyZWFtXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJBcm5cIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzExXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGYWNlU2VhcmNoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDb2xsZWN0aW9uSWRcIjoge30sXG4gICAgICAgICAgICBcIkZhY2VNYXRjaFRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJvdW5kaW5nQm94XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFnZVJhbmdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJMb3dcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkhpZ2hcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU21pbGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFeWVnbGFzc2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VuZ2xhc3Nlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkdlbmRlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkJlYXJkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTXVzdGFjaGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJFeWVzT3BlblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIk1vdXRoT3BlblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkVtb3Rpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkxhbmRtYXJrc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQb3NlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICB9LFxuICAgICAgICBcIlF1YWxpdHlcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTbFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29uZmlkZW5jZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiZmxvYXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzI5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb25maWRlbmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQYXJlbnROYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMybFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMnZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvZGVjXCI6IHt9LFxuICAgICAgICBcIkR1cmF0aW9uTWlsbGlzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgIFwiRnJhbWVSYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRnJhbWVIZWlnaHRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZyYW1lV2lkdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSW5kZXhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIkJvdW5kaW5nQm94XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZhY2VcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2ltaWxhcml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJmbG9hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhY2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRmFjZUlkXCI6IHt9LFxuICAgICAgICBcIkJvdW5kaW5nQm94XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIkltYWdlSWRcIjoge30sXG4gICAgICAgIFwiRXh0ZXJuYWxJbWFnZUlkXCI6IHt9LFxuICAgICAgICBcIkNvbmZpZGVuY2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImZsb2F0XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNG5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlMzT2JqZWN0XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0cFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlNOU1RvcGljQXJuXCIsXG4gICAgICAgIFwiUm9sZUFyblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTTlNUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgXCJSb2xlQXJuXCI6IHt9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiR2V0Q2VsZWJyaXR5UmVjb2duaXRpb25cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkdldENvbnRlbnRNb2RlcmF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJHZXRGYWNlRGV0ZWN0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJHZXRGYWNlU2VhcmNoXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIlxuICAgIH0sXG4gICAgXCJHZXRMYWJlbERldGVjdGlvblwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiR2V0UGVyc29uVHJhY2tpbmdcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiXG4gICAgfSxcbiAgICBcIkxpc3RDb2xsZWN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDb2xsZWN0aW9uSWRzXCJcbiAgICB9LFxuICAgIFwiTGlzdEZhY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkZhY2VzXCJcbiAgICB9LFxuICAgIFwiTGlzdFN0cmVhbVByb2Nlc3NvcnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMy0wNC0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJyb3V0ZTUzXCIsXG4gICAgXCJnbG9iYWxFbmRwb2ludFwiOiBcInJvdXRlNTMuYW1hem9uYXdzLmNvbVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LXhtbFwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIlJvdXRlIDUzXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gUm91dGUgNTNcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlJvdXRlIDUzXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInVpZFwiOiBcInJvdXRlNTMtMjAxMy0wNC0wMVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBc3NvY2lhdGVWUENXaXRoSG9zdGVkWm9uZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH0vYXNzb2NpYXRldnBjXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBc3NvY2lhdGVWUENXaXRoSG9zdGVkWm9uZVJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCIsXG4gICAgICAgICAgXCJWUENcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWUENcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDaGFuZ2VJbmZvXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2hhbmdlUmVzb3VyY2VSZWNvcmRTZXRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hvc3RlZHpvbmUve0lkfS9ycnNldC9cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1JlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VCYXRjaFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZUJhdGNoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiQ2hhbmdlc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgICAgICBcIkNoYW5nZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNoYW5nZVwiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgXCJSZXNvdXJjZVJlY29yZFNldFwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VSZWNvcmRTZXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlSW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDaGFuZ2VUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdGFncy97UmVzb3VyY2VUeXBlfS97UmVzb3VyY2VJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNoYW5nZVRhZ3NGb3JSZXNvdXJjZVJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRkVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVtb3ZlVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlSGVhbHRoQ2hlY2tcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaGVhbHRoY2hlY2tcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3JlYXRlSGVhbHRoQ2hlY2tSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiLFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tDb25maWdcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja1wiLFxuICAgICAgICAgIFwiTG9jYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVIb3N0ZWRab25lXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hvc3RlZHpvbmVcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ3JlYXRlSG9zdGVkWm9uZVJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJWUENcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FsbGVyUmVmZXJlbmNlXCI6IHt9LFxuICAgICAgICAgIFwiSG9zdGVkWm9uZUNvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZWdhdGlvblNldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVcIixcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIixcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRcIixcbiAgICAgICAgICBcIkxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZWdhdGlvblNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVlBDXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVRdWVyeUxvZ2dpbmdDb25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvcXVlcnlsb2dnaW5nY29uZmlnXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNyZWF0ZVF1ZXJ5TG9nZ2luZ0NvbmZpZ1JlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCIsXG4gICAgICAgICAgXCJDbG91ZFdhdGNoTG9nc0xvZ0dyb3VwQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzTG9nR3JvdXBBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVlcnlMb2dnaW5nQ29uZmlnXCIsXG4gICAgICAgICAgXCJMb2NhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWVyeUxvZ2dpbmdDb25maWdcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMycVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZXVzYWJsZURlbGVnYXRpb25TZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvZGVsZWdhdGlvbnNldFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDcmVhdGVSZXVzYWJsZURlbGVnYXRpb25TZXRSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsZWdhdGlvblNldFwiLFxuICAgICAgICAgIFwiTG9jYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZWdhdGlvblNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRyYWZmaWNQb2xpY3lcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdHJhZmZpY3BvbGljeVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDcmVhdGVUcmFmZmljUG9saWN5UmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJEb2N1bWVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRcIjoge30sXG4gICAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lcIixcbiAgICAgICAgICBcIkxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVUcmFmZmljUG9saWN5SW5zdGFuY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdHJhZmZpY3BvbGljeWluc3RhbmNlXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNyZWF0ZVRyYWZmaWNQb2xpY3lJbnN0YW5jZVJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCIsXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJUVExcIixcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJZFwiLFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRUTFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUlkXCI6IHt9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VcIixcbiAgICAgICAgICBcIkxvY2F0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRyYWZmaWNQb2xpY3lWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3kve0lkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDcmVhdGVUcmFmZmljUG9saWN5VmVyc2lvblJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIkRvY3VtZW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudFwiOiB7fSxcbiAgICAgICAgICBcIkNvbW1lbnRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVwiLFxuICAgICAgICAgIFwiTG9jYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMb2NhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVZQQ0Fzc29jaWF0aW9uQXV0aG9yaXphdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH0vYXV0aG9yaXpldnBjYXNzb2NpYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNyZWF0ZVZQQ0Fzc29jaWF0aW9uQXV0aG9yaXphdGlvblJlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCIsXG4gICAgICAgICAgXCJWUENcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWUENcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiVlBDXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIlZQQ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVIZWFsdGhDaGVja1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9oZWFsdGhjaGVjay97SGVhbHRoQ2hlY2tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIZWFsdGhDaGVja0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSG9zdGVkWm9uZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlSW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVRdWVyeUxvZ2dpbmdDb25maWdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvcXVlcnlsb2dnaW5nY29uZmlnL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmV1c2FibGVEZWxlZ2F0aW9uU2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2RlbGVnYXRpb25zZXQve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUcmFmZmljUG9saWN5XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3kve0lkfS97VmVyc2lvbn1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgIFwiVmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZlcnNpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUcmFmZmljUG9saWN5SW5zdGFuY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdHJhZmZpY3BvbGljeWluc3RhbmNlL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVlBDQXNzb2NpYXRpb25BdXRob3JpemF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hvc3RlZHpvbmUve0lkfS9kZWF1dGhvcml6ZXZwY2Fzc29jaWF0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZWxldGVWUENBc3NvY2lhdGlvbkF1dGhvcml6YXRpb25SZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiVlBDXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVlBDXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2Fzc29jaWF0ZVZQQ0Zyb21Ib3N0ZWRab25lXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hvc3RlZHpvbmUve0lkfS9kaXNhc3NvY2lhdGV2cGNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRpc2Fzc29jaWF0ZVZQQ0Zyb21Ib3N0ZWRab25lUmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgICBcIlZQQ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZQQ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlSW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRBY2NvdW50TGltaXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvYWNjb3VudGxpbWl0L3tUeXBlfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlR5cGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTGltaXRcIixcbiAgICAgICAgICBcIkNvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiVHlwZVwiLFxuICAgICAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDaGFuZ2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvY2hhbmdlL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNoYW5nZUluZm9cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlSW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRDaGVja2VySXBSYW5nZXNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvY2hlY2tlcmlwcmFuZ2VzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ2hlY2tlcklwUmFuZ2VzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoZWNrZXJJcFJhbmdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRHZW9Mb2NhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9nZW9sb2NhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29udGluZW50Q29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiY29udGluZW50Y29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvdW50cnlDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb3VudHJ5Y29kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1YmRpdmlzaW9uQ29kZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3ViZGl2aXNpb25jb2RlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdlb0xvY2F0aW9uRGV0YWlsc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHZW9Mb2NhdGlvbkRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEhlYWx0aENoZWNrXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hlYWx0aGNoZWNrL3tIZWFsdGhDaGVja0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkhlYWx0aENoZWNrSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEhlYWx0aENoZWNrQ291bnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaGVhbHRoY2hlY2tjb3VudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrQ291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SGVhbHRoQ2hlY2tMYXN0RmFpbHVyZVJlYXNvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9oZWFsdGhjaGVjay97SGVhbHRoQ2hlY2tJZH0vbGFzdGZhaWx1cmVyZWFzb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIZWFsdGhDaGVja0lkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrT2JzZXJ2YXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrT2JzZXJ2YXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRIZWFsdGhDaGVja1N0YXR1c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9oZWFsdGhjaGVjay97SGVhbHRoQ2hlY2tJZH0vc3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIZWFsdGhDaGVja0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSGVhbHRoQ2hlY2tJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIZWFsdGhDaGVja09ic2VydmF0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIZWFsdGhDaGVja09ic2VydmF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SG9zdGVkWm9uZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZWdhdGlvblNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVlBDc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SG9zdGVkWm9uZUNvdW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hvc3RlZHpvbmVjb3VudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVDb3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEhvc3RlZFpvbmVMaW1pdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lbGltaXQve0lkfS97VHlwZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJMaW1pdFwiLFxuICAgICAgICAgIFwiQ291bnRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFF1ZXJ5TG9nZ2luZ0NvbmZpZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9xdWVyeWxvZ2dpbmdjb25maWcve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVlcnlMb2dnaW5nQ29uZmlnXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXJ5TG9nZ2luZ0NvbmZpZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmV1c2FibGVEZWxlZ2F0aW9uU2V0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2RlbGVnYXRpb25zZXQve0lkfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGVsZWdhdGlvblNldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxlZ2F0aW9uU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZXVzYWJsZURlbGVnYXRpb25TZXRMaW1pdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9yZXVzYWJsZWRlbGVnYXRpb25zZXRsaW1pdC97SWR9L3tUeXBlfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlR5cGVcIixcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkxpbWl0XCIsXG4gICAgICAgICAgXCJDb3VudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlR5cGVcIixcbiAgICAgICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VHJhZmZpY1BvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5L3tJZH0ve1ZlcnNpb259XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIlZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWZXJzaW9uXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0VHJhZmZpY1BvbGljeUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3lpbnN0YW5jZS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRUcmFmZmljUG9saWN5SW5zdGFuY2VDb3VudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5aW5zdGFuY2Vjb3VudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZUNvdW50XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0R2VvTG9jYXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2dlb2xvY2F0aW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhcnRDb250aW5lbnRDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydGNvbnRpbmVudGNvZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydENvdW50cnlDb2RlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzdGFydGNvdW50cnljb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRTdWJkaXZpc2lvbkNvZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0c3ViZGl2aXNpb25jb2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdlb0xvY2F0aW9uRGV0YWlsc0xpc3RcIixcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgXCJNYXhJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHZW9Mb2NhdGlvbkRldGFpbHNMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkdlb0xvY2F0aW9uRGV0YWlsc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0Q29udGluZW50Q29kZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRDb3VudHJ5Q29kZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRTdWJkaXZpc2lvbkNvZGVcIjoge30sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RIZWFsdGhDaGVja3NcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaGVhbHRoY2hlY2tcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrc1wiLFxuICAgICAgICAgIFwiTWFya2VyXCIsXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkhlYWx0aENoZWNrXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RIb3N0ZWRab25lc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhpdGVtc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsZWdhdGlvbnNldGlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVzXCIsXG4gICAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgXCJNYXhJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lc2J5bmFtZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRE5TTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZG5zbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdGVkem9uZWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVzXCIsXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1blwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkROU05hbWVcIjoge30sXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge30sXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dEROU05hbWVcIjoge30sXG4gICAgICAgICAgXCJOZXh0SG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UXVlcnlMb2dnaW5nQ29uZmlnc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9xdWVyeWxvZ2dpbmdjb25maWdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdGVkem9uZWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJuZXh0dG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhyZXN1bHRzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXJ5TG9nZ2luZ0NvbmZpZ3NcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVlcnlMb2dnaW5nQ29uZmlnc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnFcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJRdWVyeUxvZ2dpbmdDb25maWdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVzb3VyY2VSZWNvcmRTZXRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2hvc3RlZHpvbmUve0lkfS9ycnNldFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0UmVjb3JkTmFtZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0UmVjb3JkVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXJ0UmVjb3JkSWRlbnRpZmllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRlbnRpZmllclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXhpdGVtc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVJlY29yZFNldHNcIixcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgXCJNYXhJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVJlY29yZFNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZVJlY29yZFNldFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UmVjb3JkTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRSZWNvcmRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFJlY29yZElkZW50aWZpZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZXVzYWJsZURlbGVnYXRpb25TZXRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL2RlbGVnYXRpb25zZXRcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRlbGVnYXRpb25TZXRzXCIsXG4gICAgICAgICAgXCJNYXJrZXJcIixcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgXCJNYXhJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxlZ2F0aW9uU2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmxcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZWxlZ2F0aW9uU2V0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdGFncy97UmVzb3VyY2VUeXBlfS97UmVzb3VyY2VJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VUeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VUYWdTZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VUYWdTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2M1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RhZ3Mve1Jlc291cmNlVHlwZX1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkxpc3RUYWdzRm9yUmVzb3VyY2VzUmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcIlJlc291cmNlSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlVGFnU2V0c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVRhZ1NldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzYzXCIsXG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VUYWdTZXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VHJhZmZpY1BvbGljaWVzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY2llc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUlkTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0cmFmZmljcG9saWN5aWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4aXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVN1bW1hcmllc1wiLFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJZE1hcmtlclwiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVHJhZmZpY1BvbGljeVN1bW1hcnlcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICAgICAgICBcIlR5cGVcIixcbiAgICAgICAgICAgICAgICBcIkxhdGVzdFZlcnNpb25cIixcbiAgICAgICAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lDb3VudFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGF0ZXN0VmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUlkTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VHJhZmZpY1BvbGljeUluc3RhbmNlc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5aW5zdGFuY2VzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RlZHpvbmVpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZU5hbWVNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRyYWZmaWNwb2xpY3lpbnN0YW5jZW5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VUeXBlTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0cmFmZmljcG9saWN5aW5zdGFuY2V0eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heGl0ZW1zXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZXNcIixcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICAgICAgXCJNYXhJdGVtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VOYW1lTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlVHlwZU1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUcmFmZmljUG9saWN5SW5zdGFuY2VzQnlIb3N0ZWRab25lXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3lpbnN0YW5jZXMvaG9zdGVkem9uZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlTmFtZU1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHJhZmZpY3BvbGljeWluc3RhbmNlbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZVR5cGVNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRyYWZmaWNwb2xpY3lpbnN0YW5jZXR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4aXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlc1wiLFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICBcIk1heEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZU5hbWVNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VUeXBlTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRyYWZmaWNQb2xpY3lJbnN0YW5jZXNCeVBvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWN5aW5zdGFuY2VzL3RyYWZmaWNwb2xpY3lcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SWRcIixcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lWZXJzaW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5VmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZE1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaG9zdGVkem9uZWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlTmFtZU1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHJhZmZpY3BvbGljeWluc3RhbmNlbmFtZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZVR5cGVNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInRyYWZmaWNwb2xpY3lpbnN0YW5jZXR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4aXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlc1wiLFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgICAgICBcIk1heEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJbnN0YW5jZU5hbWVNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VUeXBlTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRyYWZmaWNQb2xpY3lWZXJzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS90cmFmZmljcG9saWNpZXMve0lkfS92ZXJzaW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5VmVyc2lvbk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHJhZmZpY3BvbGljeXZlcnNpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4aXRlbXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljaWVzXCIsXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiLFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25NYXJrZXJcIixcbiAgICAgICAgICBcIk1heEl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY2llc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnpcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUcmFmZmljUG9saWN5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lWZXJzaW9uTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VlBDQXNzb2NpYXRpb25BdXRob3JpemF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH0vYXV0aG9yaXpldnBjYXNzb2NpYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm5leHR0b2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1heHJlc3VsdHNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSG9zdGVkWm9uZUlkXCIsXG4gICAgICAgICAgXCJWUENzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlZQQ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRlc3RETlNBbnN3ZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvdGVzdGRuc2Fuc3dlclwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICAgIFwiUmVjb3JkTmFtZVwiLFxuICAgICAgICAgIFwiUmVjb3JkVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImhvc3RlZHpvbmVpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlY29yZE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlY29yZG5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWNvcmRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZWNvcmR0eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb2x2ZXJJUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzb2x2ZXJpcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVETlMwQ2xpZW50U3VibmV0SVBcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVkbnMwY2xpZW50c3VibmV0aXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFRE5TMENsaWVudFN1Ym5ldE1hc2tcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVkbnMwY2xpZW50c3VibmV0bWFza1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lc2VydmVyXCIsXG4gICAgICAgICAgXCJSZWNvcmROYW1lXCIsXG4gICAgICAgICAgXCJSZWNvcmRUeXBlXCIsXG4gICAgICAgICAgXCJSZWNvcmREYXRhXCIsXG4gICAgICAgICAgXCJSZXNwb25zZUNvZGVcIixcbiAgICAgICAgICBcIlByb3RvY29sXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVzZXJ2ZXJcIjoge30sXG4gICAgICAgICAgXCJSZWNvcmROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUmVjb3JkVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlJlY29yZERhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlY29yZERhdGFFbnRyeVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3BvbnNlQ29kZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSGVhbHRoQ2hlY2tcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiLzIwMTMtMDQtMDEvaGVhbHRoY2hlY2sve0hlYWx0aENoZWNrSWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVcGRhdGVIZWFsdGhDaGVja1JlcXVlc3RcIixcbiAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgIFwidXJpXCI6IFwiaHR0cHM6Ly9yb3V0ZTUzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTMtMDQtMDEvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSGVhbHRoQ2hlY2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJIZWFsdGhDaGVja0lkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSGVhbHRoQ2hlY2tJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aENoZWNrVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSVBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VQYXRoXCI6IHt9LFxuICAgICAgICAgIFwiRnVsbHlRdWFsaWZpZWREb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VhcmNoU3RyaW5nXCI6IHt9LFxuICAgICAgICAgIFwiRmFpbHVyZVRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52ZXJ0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkhlYWx0aFRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hpbGRIZWFsdGhDaGVja3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZVNOSVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxhcm1JZGVudGlmaWVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN1ZmZpY2llbnREYXRhSGVhbHRoU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiUmVzZXRFbGVtZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzZXR0YWJsZUVsZW1lbnROYW1lXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhlYWx0aENoZWNrXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVIb3N0ZWRab25lQ29tbWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvMjAxMy0wNC0wMS9ob3N0ZWR6b25lL3tJZH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVwZGF0ZUhvc3RlZFpvbmVDb21tZW50UmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJIb3N0ZWRab25lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkhvc3RlZFpvbmVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRyYWZmaWNQb2xpY3lDb21tZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3kve0lkfS97VmVyc2lvbn1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVwZGF0ZVRyYWZmaWNQb2xpY3lDb21tZW50UmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwczovL3JvdXRlNTMuYW1hem9uYXdzLmNvbS9kb2MvMjAxMy0wNC0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgIFwiVmVyc2lvblwiLFxuICAgICAgICAgIFwiQ29tbWVudFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZlcnNpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21tZW50XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVHJhZmZpY1BvbGljeUluc3RhbmNlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi8yMDEzLTA0LTAxL3RyYWZmaWNwb2xpY3lpbnN0YW5jZS97SWR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVcGRhdGVUcmFmZmljUG9saWN5SW5zdGFuY2VSZXF1ZXN0XCIsXG4gICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInVyaVwiOiBcImh0dHBzOi8vcm91dGU1My5hbWF6b25hd3MuY29tL2RvYy8yMDEzLTA0LTAxL1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgXCJUVExcIixcbiAgICAgICAgICBcIlRyYWZmaWNQb2xpY3lJZFwiLFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRUTFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUlkXCI6IHt9LFxuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUcmFmZmljUG9saWN5SW5zdGFuY2VcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiUzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlZQQ1JlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJWUENJZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgIFwiU3VibWl0dGVkQXRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN1Ym1pdHRlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbW1lbnRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiVHlwZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiU2V0SWRlbnRpZmllclwiOiB7fSxcbiAgICAgICAgXCJXZWlnaHRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJHZW9Mb2NhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29udGluZW50Q29kZVwiOiB7fSxcbiAgICAgICAgICAgIFwiQ291bnRyeUNvZGVcIjoge30sXG4gICAgICAgICAgICBcIlN1YmRpdmlzaW9uQ29kZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJGYWlsb3ZlclwiOiB7fSxcbiAgICAgICAgXCJNdWx0aVZhbHVlQW5zd2VyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUVExcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlc291cmNlUmVjb3Jkc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVzb3VyY2VSZWNvcmRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiVmFsdWVcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxpYXNUYXJnZXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgICAgIFwiRE5TTmFtZVwiLFxuICAgICAgICAgICAgXCJFdmFsdWF0ZVRhcmdldEhlYWx0aFwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJIb3N0ZWRab25lSWRcIjoge30sXG4gICAgICAgICAgICBcIkROU05hbWVcIjoge30sXG4gICAgICAgICAgICBcIkV2YWx1YXRlVGFyZ2V0SGVhbHRoXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIkhlYWx0aENoZWNrSWRcIjoge30sXG4gICAgICAgIFwiVHJhZmZpY1BvbGljeUluc3RhbmNlSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSVBBZGRyZXNzXCI6IHt9LFxuICAgICAgICBcIlBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiUmVzb3VyY2VQYXRoXCI6IHt9LFxuICAgICAgICBcIkZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTZWFyY2hTdHJpbmdcIjoge30sXG4gICAgICAgIFwiUmVxdWVzdEludGVydmFsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGYWlsdXJlVGhyZXNob2xkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNZWFzdXJlTGF0ZW5jeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW52ZXJ0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkhlYWx0aFRocmVzaG9sZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2hpbGRIZWFsdGhDaGVja3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuYWJsZVNOSVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVnaW9uc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWxhcm1JZGVudGlmaWVyXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN1ZmZpY2llbnREYXRhSGVhbHRoU3RhdHVzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxcFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2hpbGRIZWFsdGhDaGVja1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVnaW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUmVnaW9uXCIsXG4gICAgICAgIFwiTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZWdpb25cIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiLFxuICAgICAgICBcIkhlYWx0aENoZWNrQ29uZmlnXCIsXG4gICAgICAgIFwiSGVhbHRoQ2hlY2tWZXJzaW9uXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkNhbGxlclJlZmVyZW5jZVwiOiB7fSxcbiAgICAgICAgXCJMaW5rZWRTZXJ2aWNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF6XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJIZWFsdGhDaGVja0NvbmZpZ1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSGVhbHRoQ2hlY2tWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbG91ZFdhdGNoQWxhcm1Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRXZhbHVhdGlvblBlcmlvZHNcIixcbiAgICAgICAgICAgIFwiVGhyZXNob2xkXCIsXG4gICAgICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiLFxuICAgICAgICAgICAgXCJQZXJpb2RcIixcbiAgICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgICAgXCJOYW1lc3BhY2VcIixcbiAgICAgICAgICAgIFwiU3RhdGlzdGljXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkV2YWx1YXRpb25QZXJpb2RzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUaHJlc2hvbGRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCI6IHt9LFxuICAgICAgICAgICAgXCJQZXJpb2RcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgICBcIk5hbWVzcGFjZVwiOiB7fSxcbiAgICAgICAgICAgIFwiU3RhdGlzdGljXCI6IHt9LFxuICAgICAgICAgICAgXCJEaW1lbnNpb25zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEaW1lbnNpb25cIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNlcnZpY2VQcmluY2lwYWxcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJnXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICBcIlByaXZhdGVab25lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZXNvdXJjZVJlY29yZFNldENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMaW5rZWRTZXJ2aWNlXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzF6XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMmxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJOYW1lU2VydmVyc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJDYWxsZXJSZWZlcmVuY2VcIjoge30sXG4gICAgICAgIFwiTmFtZVNlcnZlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5hbWVTZXJ2ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzTG9nR3JvdXBBcm5cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiSG9zdGVkWm9uZUlkXCI6IHt9LFxuICAgICAgICBcIkNsb3VkV2F0Y2hMb2dzTG9nR3JvdXBBcm5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJWZXJzaW9uXCIsXG4gICAgICAgIFwiTmFtZVwiLFxuICAgICAgICBcIlR5cGVcIixcbiAgICAgICAgXCJEb2N1bWVudFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiRG9jdW1lbnRcIjoge30sXG4gICAgICAgIFwiQ29tbWVudFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJZFwiLFxuICAgICAgICBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgXCJUVExcIixcbiAgICAgICAgXCJTdGF0ZVwiLFxuICAgICAgICBcIk1lc3NhZ2VcIixcbiAgICAgICAgXCJUcmFmZmljUG9saWN5SWRcIixcbiAgICAgICAgXCJUcmFmZmljUG9saWN5VmVyc2lvblwiLFxuICAgICAgICBcIlRyYWZmaWNQb2xpY3lUeXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkhvc3RlZFpvbmVJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlRUTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJUcmFmZmljUG9saWN5SWRcIjoge30sXG4gICAgICAgIFwiVHJhZmZpY1BvbGljeVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRyYWZmaWNQb2xpY3lUeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0NlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29udGluZW50Q29kZVwiOiB7fSxcbiAgICAgICAgXCJDb250aW5lbnROYW1lXCI6IHt9LFxuICAgICAgICBcIkNvdW50cnlDb2RlXCI6IHt9LFxuICAgICAgICBcIkNvdW50cnlOYW1lXCI6IHt9LFxuICAgICAgICBcIlN1YmRpdmlzaW9uQ29kZVwiOiB7fSxcbiAgICAgICAgXCJTdWJkaXZpc2lvbk5hbWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJIZWFsdGhDaGVja09ic2VydmF0aW9uXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnaW9uXCI6IHt9LFxuICAgICAgICAgIFwiSVBBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzUmVwb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiQ2hlY2tlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzRwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMzXCIsXG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVlBDXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzVuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyalwiLFxuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkhvc3RlZFpvbmVcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNjNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2ZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMzRcIixcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUcmFmZmljUG9saWN5SW5zdGFuY2VcIlxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3RIZWFsdGhDaGVja3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJJc1RydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJIZWFsdGhDaGVja3NcIlxuICAgIH0sXG4gICAgXCJMaXN0SG9zdGVkWm9uZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhJdGVtc1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJJc1RydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0TWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJIb3N0ZWRab25lc1wiXG4gICAgfSxcbiAgICBcIkxpc3RSZXNvdXJjZVJlY29yZFNldHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBbXG4gICAgICAgIFwiU3RhcnRSZWNvcmROYW1lXCIsXG4gICAgICAgIFwiU3RhcnRSZWNvcmRUeXBlXCIsXG4gICAgICAgIFwiU3RhcnRSZWNvcmRJZGVudGlmaWVyXCJcbiAgICAgIF0sXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBbXG4gICAgICAgIFwiTmV4dFJlY29yZE5hbWVcIixcbiAgICAgICAgXCJOZXh0UmVjb3JkVHlwZVwiLFxuICAgICAgICBcIk5leHRSZWNvcmRJZGVudGlmaWVyXCJcbiAgICAgIF0sXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJSZXNvdXJjZVJlY29yZFNldHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJSZXNvdXJjZVJlY29yZFNldHNDaGFuZ2VkXCI6IHtcbiAgICAgIFwiZGVsYXlcIjogMzAsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDYwLFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJHZXRDaGFuZ2VcIixcbiAgICAgIFwiYWNjZXB0b3JzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwibWF0Y2hlclwiOiBcInBhdGhcIixcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IFwiSU5TWU5DXCIsXG4gICAgICAgICAgXCJhcmd1bWVudFwiOiBcIkNoYW5nZUluZm8uU3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE0LTA1LTE1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInJvdXRlNTNkb21haW5zXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gUm91dGUgNTMgRG9tYWluc1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJSb3V0ZTUzRG9tYWluc192MjAxNDA1MTVcIixcbiAgICBcInVpZFwiOiBcInJvdXRlNTNkb21haW5zLTIwMTQtMDUtMTVcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQ2hlY2tEb21haW5BdmFpbGFiaWxpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIklkbkxhbmdDb2RlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF2YWlsYWJpbGl0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdmFpbGFiaWxpdHlcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDaGVja0RvbWFpblRyYW5zZmVyYWJpbGl0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXV0aENvZGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRyYW5zZmVyYWJpbGl0eVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUcmFuc2ZlcmFiaWxpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlRyYW5zZmVyYWJsZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYWdzRm9yRG9tYWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJUYWdzVG9EZWxldGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NUb0RlbGV0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlRG9tYWluQXV0b1JlbmV3XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlRG9tYWluVHJhbnNmZXJMb2NrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJFbmFibGVEb21haW5BdXRvUmVuZXdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkVuYWJsZURvbWFpblRyYW5zZmVyTG9ja1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29udGFjdFJlYWNoYWJpbGl0eVN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJkb21haW5OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvbWFpbkRldGFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICBcIk5hbWVzZXJ2ZXJzXCIsXG4gICAgICAgICAgXCJBZG1pbkNvbnRhY3RcIixcbiAgICAgICAgICBcIlJlZ2lzdHJhbnRDb250YWN0XCIsXG4gICAgICAgICAgXCJUZWNoQ29udGFjdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZXNlcnZlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b1JlbmV3XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZG1pbkNvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaXN0cmFudENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVjaENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWRtaW5Qcml2YWN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpc3RyYW50UHJpdmFjeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVjaFByaXZhY3lcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlZ2lzdHJhck5hbWVcIjoge30sXG4gICAgICAgICAgXCJXaG9Jc1NlcnZlclwiOiB7fSxcbiAgICAgICAgICBcIlJlZ2lzdHJhclVybFwiOiB7fSxcbiAgICAgICAgICBcIkFidXNlQ29udGFjdEVtYWlsXCI6IHt9LFxuICAgICAgICAgIFwiQWJ1c2VDb250YWN0UGhvbmVcIjoge30sXG4gICAgICAgICAgXCJSZWdpc3RyeURvbWFpbklkXCI6IHt9LFxuICAgICAgICAgIFwiQ3JlYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwZGF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc2VsbGVyXCI6IHt9LFxuICAgICAgICAgIFwiRG5zU2VjXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb21haW5TdWdnZXN0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiLFxuICAgICAgICAgIFwiU3VnZ2VzdGlvbkNvdW50XCIsXG4gICAgICAgICAgXCJPbmx5QXZhaWxhYmxlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdWdnZXN0aW9uQ291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9ubHlBdmFpbGFibGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Z2dlc3Rpb25zTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkF2YWlsYWJpbGl0eVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE9wZXJhdGlvbkRldGFpbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN1Ym1pdHRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERvbWFpbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdXRvUmVuZXdcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRyYW5zZmVyTG9ja1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRXhwaXJ5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdE9wZXJhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3VibWl0dGVkU2luY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcGVyYXRpb25zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJPcGVyYXRpb25JZFwiLFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJTdWJtaXR0ZWREYXRlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN1Ym1pdHRlZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFnc0ZvckRvbWFpblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ0xpc3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJEb21haW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICBcIkR1cmF0aW9uSW5ZZWFyc1wiLFxuICAgICAgICAgIFwiQWRtaW5Db250YWN0XCIsXG4gICAgICAgICAgXCJSZWdpc3RyYW50Q29udGFjdFwiLFxuICAgICAgICAgIFwiVGVjaENvbnRhY3RcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIklkbkxhbmdDb2RlXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25JblllYXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRvUmVuZXdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFkbWluQ29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpc3RyYW50Q29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZWNoQ29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcml2YWN5UHJvdGVjdEFkbWluQ29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmFjeVByb3RlY3RSZWdpc3RyYW50Q29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmFjeVByb3RlY3RUZWNoQ29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVuZXdEb21haW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICBcIkN1cnJlbnRFeHBpcnlZZWFyXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvbkluWWVhcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1cnJlbnRFeHBpcnlZZWFyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXNlbmRDb250YWN0UmVhY2hhYmlsaXR5RW1haWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiZG9tYWluTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJlbWFpbEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgXCJpc0FscmVhZHlWZXJpZmllZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV0cmlldmVEb21haW5BdXRoQ29kZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dGhDb2RlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhDb2RlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRyYW5zZmVyRG9tYWluXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJEdXJhdGlvbkluWWVhcnNcIixcbiAgICAgICAgICBcIkFkbWluQ29udGFjdFwiLFxuICAgICAgICAgIFwiUmVnaXN0cmFudENvbnRhY3RcIixcbiAgICAgICAgICBcIlRlY2hDb250YWN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJJZG5MYW5nQ29kZVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uSW5ZZWFyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZXNlcnZlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aENvZGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0b1JlbmV3XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBZG1pbkNvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVnaXN0cmFudENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVjaENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpdmFjeVByb3RlY3RBZG1pbkNvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhY3lQcm90ZWN0UmVnaXN0cmFudENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaXZhY3lQcm90ZWN0VGVjaENvbnRhY3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURvbWFpbkNvbnRhY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFkbWluQ29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpc3RyYW50Q29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUZWNoQ29udGFjdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3BlcmF0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEb21haW5Db250YWN0UHJpdmFjeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWRtaW5Qcml2YWN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWdpc3RyYW50UHJpdmFjeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGVjaFByaXZhY3lcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURvbWFpbk5hbWVzZXJ2ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb21haW5OYW1lXCIsXG4gICAgICAgICAgXCJOYW1lc2VydmVyc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRklBdXRoS2V5XCI6IHtcbiAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVzZXJ2ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRhZ3NGb3JEb21haW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NUb1VwZGF0ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVmlld0JpbGxpbmdcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RhcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk1heEl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0UGFnZU1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkJpbGxpbmdSZWNvcmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3BlcmF0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW52b2ljZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmlsbERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJpY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkdsdWVJcHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkZpcnN0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJMYXN0TmFtZVwiOiB7fSxcbiAgICAgICAgXCJDb250YWN0VHlwZVwiOiB7fSxcbiAgICAgICAgXCJPcmdhbml6YXRpb25OYW1lXCI6IHt9LFxuICAgICAgICBcIkFkZHJlc3NMaW5lMVwiOiB7fSxcbiAgICAgICAgXCJBZGRyZXNzTGluZTJcIjoge30sXG4gICAgICAgIFwiQ2l0eVwiOiB7fSxcbiAgICAgICAgXCJTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJDb3VudHJ5Q29kZVwiOiB7fSxcbiAgICAgICAgXCJaaXBDb2RlXCI6IHt9LFxuICAgICAgICBcIlBob25lTnVtYmVyXCI6IHt9LFxuICAgICAgICBcIkVtYWlsXCI6IHt9LFxuICAgICAgICBcIkZheFwiOiB7fSxcbiAgICAgICAgXCJFeHRyYVBhcmFtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkxpc3REb21haW5zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4SXRlbXNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRvbWFpbnNcIlxuICAgIH0sXG4gICAgXCJMaXN0T3BlcmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heEl0ZW1zXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJPcGVyYXRpb25zXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDE2LTExLTI4XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInJ1bnRpbWUubGV4XCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LWpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBMZXggUnVudGltZSBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJMZXggUnVudGltZSBTZXJ2aWNlXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInNpZ25pbmdOYW1lXCI6IFwibGV4XCIsXG4gICAgXCJ1aWRcIjogXCJydW50aW1lLmxleC0yMDE2LTExLTI4XCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIlBvc3RDb250ZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3Qve2JvdE5hbWV9L2FsaWFzL3tib3RBbGlhc30vdXNlci97dXNlcklkfS9jb250ZW50XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYm90TmFtZVwiLFxuICAgICAgICAgIFwiYm90QWxpYXNcIixcbiAgICAgICAgICBcInVzZXJJZFwiLFxuICAgICAgICAgIFwiY29udGVudFR5cGVcIixcbiAgICAgICAgICBcImlucHV0U3RyZWFtXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJvdE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3ROYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90QWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3RBbGlhc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlc3Npb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiLFxuICAgICAgICAgICAgXCJqc29udmFsdWVcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbGV4LXNlc3Npb24tYXR0cmlidXRlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVlc3RBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiLFxuICAgICAgICAgICAgXCJqc29udmFsdWVcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbGV4LXJlcXVlc3QtYXR0cmlidXRlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWNjZXB0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWNjZXB0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5wdXRTdHJlYW1cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcImlucHV0U3RyZWFtXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiY29udGVudFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbnRlbnROYW1lXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbGV4LWludGVudC1uYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2xvdHNcIjoge1xuICAgICAgICAgICAgXCJqc29udmFsdWVcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbGV4LXNsb3RzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2Vzc2lvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJqc29udmFsdWVcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbGV4LXNlc3Npb24tYXR0cmlidXRlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1tZXNzYWdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWVzc2FnZUZvcm1hdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1tZXNzYWdlLWZvcm1hdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRpYWxvZ1N0YXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbGV4LWRpYWxvZy1zdGF0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNsb3RUb0VsaWNpdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1zbG90LXRvLWVsaWNpdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImlucHV0VHJhbnNjcmlwdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWxleC1pbnB1dC10cmFuc2NyaXB0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYXVkaW9TdHJlYW1cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcImF1ZGlvU3RyZWFtXCJcbiAgICAgIH0sXG4gICAgICBcImF1dGh0eXBlXCI6IFwidjQtdW5zaWduZWQtYm9keVwiXG4gICAgfSxcbiAgICBcIlBvc3RUZXh0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9ib3Qve2JvdE5hbWV9L2FsaWFzL3tib3RBbGlhc30vdXNlci97dXNlcklkfS90ZXh0XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYm90TmFtZVwiLFxuICAgICAgICAgIFwiYm90QWxpYXNcIixcbiAgICAgICAgICBcInVzZXJJZFwiLFxuICAgICAgICAgIFwiaW5wdXRUZXh0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImJvdE5hbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3ROYW1lXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYm90QWxpYXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJib3RBbGlhc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVzZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlc3Npb25BdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVlc3RBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImlucHV0VGV4dFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJpbnRlbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwic2xvdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2Vzc2lvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXNzYWdlRm9ybWF0XCI6IHt9LFxuICAgICAgICAgIFwiZGlhbG9nU3RhdGVcIjoge30sXG4gICAgICAgICAgXCJzbG90VG9FbGljaXRcIjoge30sXG4gICAgICAgICAgXCJyZXNwb25zZUNhcmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcInZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiY29udGVudFR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiZ2VuZXJpY0F0dGFjaG1lbnRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInRpdGxlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcInN1YlRpdGxlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImF0dGFjaG1lbnRMaW5rVXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImltYWdlVXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcImJ1dHRvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0ZXh0XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiLFxuICAgICAgXCJzdHJlYW1pbmdcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU2dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge30sXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAwNi0wMy0wMVwiLFxuICAgIFwiY2hlY2tzdW1Gb3JtYXRcIjogXCJtZDVcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwiczNcIixcbiAgICBcImdsb2JhbEVuZHBvaW50XCI6IFwiczMuYW1hem9uYXdzLmNvbVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJyZXN0LXhtbFwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBTM1wiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQW1hem9uIFNpbXBsZSBTdG9yYWdlIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlMzXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwiczNcIixcbiAgICBcInRpbWVzdGFtcEZvcm1hdFwiOiBcInJmYzgyMlwiLFxuICAgIFwidWlkXCI6IFwiczMtMjAwNi0wMy0wMVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBYm9ydE11bHRpcGFydFVwbG9hZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlVwbG9hZElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwbG9hZElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGxvYWRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiVXBsb2FkSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTXVsdGlwYXJ0VXBsb2FkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29tcGxldGVNdWx0aXBhcnRVcGxvYWRcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQYXJ0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYXJ0XCIsXG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJFVGFnXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlBhcnROdW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBsb2FkSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwbG9hZElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJNdWx0aXBhcnRVcGxvYWRcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJMb2NhdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIkV4cGlyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1leHBpcmF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7fSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXZlcnNpb24taWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1hd3Mta21zLWtleS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ29weU9iamVjdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJDb3B5U291cmNlXCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQUNMXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGUtQ29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnREaXNwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRGlzcG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50RW5jb2RpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUVuY29kaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudExhbmd1YWdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1MYW5ndWFnZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZUlmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi1tYXRjaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VJZk1vZGlmaWVkU2luY2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi1tb2RpZmllZC1zaW5jZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZUlmTm9uZU1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2UtaWYtbm9uZS1tYXRjaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VJZlVubW9kaWZpZWRTaW5jZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLWlmLXVubW9kaWZpZWQtc2luY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeHBpcmVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudEZ1bGxDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtZnVsbC1jb250cm9sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtcmVhZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZEFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWQtYWNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRXcml0ZUFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXdyaXRlLWFjcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1ldGEtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWV0YWRhdGFEaXJlY3RpdmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1tZXRhZGF0YS1kaXJlY3RpdmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdnaW5nRGlyZWN0aXZlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotdGFnZ2luZy1kaXJlY3RpdmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zdG9yYWdlLWNsYXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2Vic2l0ZVJlZGlyZWN0TG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei13ZWJzaXRlLXJlZGlyZWN0LWxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUtNU0tleUlkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWF3cy1rbXMta2V5LWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZVNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2Utc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxY1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdnaW5nXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotdGFnZ2luZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvcHlPYmplY3RSZXN1bHRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkVUYWdcIjoge30sXG4gICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1leHBpcmF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZVZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLXZlcnNpb24taWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDb3B5T2JqZWN0UmVzdWx0XCJcbiAgICAgIH0sXG4gICAgICBcImFsaWFzXCI6IFwiUHV0T2JqZWN0Q29weVwiXG4gICAgfSxcbiAgICBcIkNyZWF0ZUJ1Y2tldFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH1cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQUNMXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJMb2NhdGlvbkNvbnN0cmFpbnRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRGdWxsQ29udHJvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LWZ1bGwtY29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFJlYWRBQ1BcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1yZWFkLWFjcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50V3JpdGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC13cml0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50V3JpdGVBQ1BcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC13cml0ZS1hY3BcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ3JlYXRlQnVja2V0Q29uZmlndXJhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTG9jYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWxpYXNcIjogXCJQdXRCdWNrZXRcIlxuICAgIH0sXG4gICAgXCJDcmVhdGVNdWx0aXBhcnRVcGxvYWRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfT91cGxvYWRzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQUNMXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2FjaGUtQ29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnREaXNwb3NpdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRGlzcG9zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50RW5jb2RpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUVuY29kaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudExhbmd1YWdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1MYW5ndWFnZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwaXJlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV4cGlyZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50RnVsbENvbnRyb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1mdWxsLWNvbnRyb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1yZWFkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRSZWFkQUNQXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtcmVhZC1hY3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFdyaXRlQUNQXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtd3JpdGUtYWNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlcnNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbWV0YS1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zdG9yYWdlLWNsYXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2Vic2l0ZVJlZGlyZWN0TG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei13ZWJzaXRlLXJlZGlyZWN0LWxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUtNU0tleUlkXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWF3cy1rbXMta2V5LWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ2dpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei10YWdnaW5nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWJvcnREYXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWJvcnQtZGF0ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWJvcnRSdWxlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1hYm9ydC1ydWxlLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVXBsb2FkSWRcIjoge30sXG4gICAgICAgICAgXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1hd3Mta21zLWtleS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFsaWFzXCI6IFwiSW5pdGlhdGVNdWx0aXBhcnRVcGxvYWRcIlxuICAgIH0sXG4gICAgXCJEZWxldGVCdWNrZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2FuYWx5dGljc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQnVja2V0Q29yc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/Y29yc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCdWNrZXRFbmNyeXB0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9lbmNyeXB0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2ludmVudG9yeVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQnVja2V0TGlmZWN5Y2xlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9saWZlY3ljbGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P21ldHJpY3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ1Y2tldFBvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/cG9saWN5XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ1Y2tldFJlcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9yZXBsaWNhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVCdWNrZXRUYWdnaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT90YWdnaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUJ1Y2tldFdlYnNpdGVcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3dlYnNpdGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlT2JqZWN0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNRkFcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1tZmFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxldGVNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1kZWxldGUtbWFya2VyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotdmVyc2lvbi1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlT2JqZWN0VGFnZ2luZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9P3RhZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXZlcnNpb24taWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVPYmplY3RzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9kZWxldGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIkRlbGV0ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWxldGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZWxldGVcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiT2JqZWN0c1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJPYmplY3RzXCI6IHtcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICBcIktleVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUXVpZXRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1GQVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1mYVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiRGVsZXRlXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVsZXRlTWFya2VyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZWxldGVNYXJrZXJWZXJzaW9uSWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFcnJvcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFcnJvclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhbGlhc1wiOiBcIkRlbGV0ZU11bHRpcGxlT2JqZWN0c1wiXG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldEFjY2VsZXJhdGVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9hY2NlbGVyYXRlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldEFjbFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/YWNsXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk93bmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY2Nlc3NDb250cm9sTGlzdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2FuYWx5dGljc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQW5hbHl0aWNzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRDb3JzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9jb3JzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNPUlNSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNuXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNPUlNSdWxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0RW5jcnlwdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/ZW5jcnlwdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9pbnZlbnRvcnlcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0NlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJJbnZlbnRvcnlDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0TGlmZWN5Y2xlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9saWZlY3ljbGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0bVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSdWxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9saWZlY3ljbGVcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1MVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSdWxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0TG9jYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2xvY2F0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkxvY2F0aW9uQ29uc3RyYWludFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldExvZ2dpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2xvZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTG9nZ2luZ0VuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1YlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldE1ldHJpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9tZXRyaWNzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRyaWNzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIk1ldHJpY3NDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0Tm90aWZpY2F0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9ub3RpZmljYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiUzVtXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNW5cIlxuICAgICAgfSxcbiAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldE5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P25vdGlmaWNhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTNW1cIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlM1eVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEJ1Y2tldFBvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/cG9saWN5XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvbGljeVwiOiB7fVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJQb2xpY3lcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRSZXBsaWNhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/cmVwbGljYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0UmVxdWVzdFBheW1lbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3JlcXVlc3RQYXltZW50XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBheWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0VGFnZ2luZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/dGFnZ2luZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFnU2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ1NldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QnVja2V0VmVyc2lvbmluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/dmVyc2lvbmluZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJNRkFEZWxldGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZmFEZWxldGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCdWNrZXRXZWJzaXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT93ZWJzaXRlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZGlyZWN0QWxsUmVxdWVzdHNUb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5kZXhEb2N1bWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXJyb3JEb2N1bWVudFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUm91dGluZ1J1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN2JcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRPYmplY3RcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJJZi1NYXRjaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTW9kaWZpZWRTaW5jZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1vZGlmaWVkLVNpbmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZk5vbmVNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU5vbmUtTWF0Y2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZlVubW9kaWZpZWRTaW5jZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLVVubW9kaWZpZWQtU2luY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmFuZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNwb25zZUNhY2hlQ29udHJvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzcG9uc2UtY2FjaGUtY29udHJvbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3BvbnNlQ29udGVudERpc3Bvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJyZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzcG9uc2VDb250ZW50RW5jb2RpbmdcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3BvbnNlLWNvbnRlbnQtZW5jb2RpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNwb25zZUNvbnRlbnRMYW5ndWFnZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzcG9uc2UtY29udGVudC1sYW5ndWFnZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3BvbnNlQ29udGVudFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInJlc3BvbnNlLWNvbnRlbnQtdHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3BvbnNlRXhwaXJlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicmVzcG9uc2UtZXhwaXJlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcnROdW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhcnROdW1iZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCb2R5XCI6IHtcbiAgICAgICAgICAgIFwic3RyZWFtaW5nXCI6IHRydWUsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZXRlTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZGVsZXRlLW1hcmtlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2VwdFJhbmdlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjY2VwdC1yYW5nZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZXhwaXJhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3RvcmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXN0b3JlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGFzdC1Nb2RpZmllZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudExlbmd0aFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTGVuZ3RoXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaXNzaW5nTWV0YVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1pc3NpbmctbWV0YVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXZlcnNpb24taWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWNoZUNvbnRyb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZS1Db250cm9sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudERpc3Bvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1EaXNwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRFbmNvZGluZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRW5jb2RpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TGFuZ3VhZ2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUxhbmd1YWdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudFJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1SYW5nZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1UeXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwaXJlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV4cGlyZXNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldlYnNpdGVSZWRpcmVjdExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotd2Vic2l0ZS1yZWRpcmVjdC1sb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1ldGEtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zdG9yYWdlLWNsYXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXBsaWNhdGlvblN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcGxpY2F0aW9uLXN0YXR1c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcnRzQ291bnRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1tcC1wYXJ0cy1jb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotdGFnZ2luZy1jb3VudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJCb2R5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0T2JqZWN0QWNsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K30/YWNsXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiT3duZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMydlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFjY2Vzc0NvbnRyb2xMaXN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRPYmplY3RUYWdnaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K30/dGFnZ2luZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhZ1NldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei12ZXJzaW9uLWlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRPYmplY3RUb3JyZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K30/dG9ycmVudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCb2R5XCI6IHtcbiAgICAgICAgICAgIFwic3RyZWFtaW5nXCI6IHRydWUsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQm9keVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIkhlYWRCdWNrZXRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJIRUFEXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJIZWFkT2JqZWN0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiSEVBRFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIklmLU1hdGNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWZNb2RpZmllZFNpbmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTW9kaWZpZWQtU2luY2VcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmTm9uZU1hdGNoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtTm9uZS1NYXRjaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklmVW5tb2RpZmllZFNpbmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSWYtVW5tb2RpZmllZC1TaW5jZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiS2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmFuZ2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSYW5nZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJ0TnVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXJ0TnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZXRlTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZGVsZXRlLW1hcmtlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2VwdFJhbmdlc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImFjY2VwdC1yYW5nZXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZXhwaXJhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3RvcmVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXN0b3JlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTGFzdC1Nb2RpZmllZFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudExlbmd0aFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTGVuZ3RoXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNaXNzaW5nTWV0YVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1pc3NpbmctbWV0YVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXZlcnNpb24taWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWNoZUNvbnRyb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDYWNoZS1Db250cm9sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudERpc3Bvc2l0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1EaXNwb3NpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRFbmNvZGluZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtRW5jb2RpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TGFuZ3VhZ2VcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUxhbmd1YWdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudFR5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LVR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHBpcmVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXhwaXJlc1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2Vic2l0ZVJlZGlyZWN0TG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei13ZWJzaXRlLXJlZGlyZWN0LWxvY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlcnNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbWV0YS1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1hd3Mta21zLWtleS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0b3JhZ2VDbGFzc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXN0b3JhZ2UtY2xhc3NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxpY2F0aW9uU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVwbGljYXRpb24tc3RhdHVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFydHNDb3VudFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1wLXBhcnRzLWNvdW50XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEJ1Y2tldEFuYWx5dGljc0NvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9hbmFseXRpY3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGludWF0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbnRpbnVhdGlvbi10b2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICBcIk5leHRDb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQW5hbHl0aWNzQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RCdWNrZXRJbnZlbnRvcnlDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/aW52ZW50b3J5XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRpbnVhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb250aW51YXRpb24tdG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25MaXN0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiSW52ZW50b3J5Q29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ2XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0Q29udGludWF0aW9uVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QnVja2V0TWV0cmljc0NvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9tZXRyaWNzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRpbnVhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJjb250aW51YXRpb24tdG9rZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJOZXh0Q29udGludWF0aW9uVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNzQ29uZmlndXJhdGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZXRyaWNzQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVqXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RCdWNrZXRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFsaWFzXCI6IFwiR2V0U2VydmljZVwiXG4gICAgfSxcbiAgICBcIkxpc3RNdWx0aXBhcnRVcGxvYWRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT91cGxvYWRzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGltaXRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsaW1pdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jb2RpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmNvZGluZy10eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2V5TWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXktbWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4VXBsb2Fkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4LXVwbG9hZHNcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByZWZpeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwbG9hZElkTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1cGxvYWQtaWQtbWFya2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICAgIFwiS2V5TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVXBsb2FkSWRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJOZXh0S2V5TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiRGVsaW1pdGVyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFVwbG9hZElkTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4VXBsb2Fkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVwbG9hZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVcGxvYWRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJVcGxvYWRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluaXRpYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW5pdGlhdG9yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOTdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbW9uUHJlZml4ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5OFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY29kaW5nVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RPYmplY3RWZXJzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/dmVyc2lvbnNcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsaW1pdGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxpbWl0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNvZGluZ1R5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuY29kaW5nLXR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImtleS1tYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhLZXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXgta2V5c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uLWlkLW1hcmtlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJWZXJzaW9uSWRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJOZXh0S2V5TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dFZlcnNpb25JZE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlZlcnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmVyc2lvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkVUYWdcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWZXJzaW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJc0xhdGVzdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk93bmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZXRlTWFya2Vyc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRlbGV0ZU1hcmtlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk93bmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWZXJzaW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJc0xhdGVzdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiRGVsaW1pdGVyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4S2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbW9uUHJlZml4ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5OFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY29kaW5nVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhbGlhc1wiOiBcIkdldEJ1Y2tldE9iamVjdFZlcnNpb25zXCJcbiAgICB9LFxuICAgIFwiTGlzdE9iamVjdHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlbGltaXRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZGVsaW1pdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jb2RpbmdUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJlbmNvZGluZy10eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhLZXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXgta2V5c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklzVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiQ29udGVudHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5cVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJEZWxpbWl0ZXJcIjoge30sXG4gICAgICAgICAgXCJNYXhLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb21tb25QcmVmaXhlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzk4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5jb2RpbmdUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFsaWFzXCI6IFwiR2V0QnVja2V0XCJcbiAgICB9LFxuICAgIFwiTGlzdE9iamVjdHNWMlwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bGlzdC10eXBlPTJcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsaW1pdGVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxpbWl0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmNvZGluZ1R5cGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImVuY29kaW5nLXR5cGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhLZXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXgta2V5c1wiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicHJlZml4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGludWF0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImNvbnRpbnVhdGlvbi10b2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZldGNoT3duZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZldGNoLW93bmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhcnRBZnRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic3RhcnQtYWZ0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSXNUcnVuY2F0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiRGVsaW1pdGVyXCI6IHt9LFxuICAgICAgICAgIFwiTWF4S2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29tbW9uUHJlZml4ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5OFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuY29kaW5nVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIktleUNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICBcIk5leHRDb250aW51YXRpb25Ub2tlblwiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0QWZ0ZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UGFydHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJHRVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJVcGxvYWRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhQYXJ0c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWF4LXBhcnRzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFydE51bWJlck1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwicGFydC1udW1iZXItbWFya2VyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBsb2FkSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwbG9hZElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFib3J0RGF0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWFib3J0LWRhdGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFib3J0UnVsZUlkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWJvcnQtcnVsZS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7fSxcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlVwbG9hZElkXCI6IHt9LFxuICAgICAgICAgIFwiUGFydE51bWJlck1hcmtlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhcnROdW1iZXJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFBhcnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJc1RydW5jYXRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFydHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJQYXJ0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUGFydE51bWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkVUYWdcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5pdGlhdG9yXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOTdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRBY2NlbGVyYXRlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/YWNjZWxlcmF0ZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiQWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY2NlbGVyYXRlQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQWNjZWxlcmF0ZUNvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRBY2xcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2FjbFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBQ0xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1hY2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBY2Nlc3NDb250cm9sUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYThcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQWNjZXNzQ29udHJvbFBvbGljeVwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50RnVsbENvbnRyb2xcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1mdWxsLWNvbnRyb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFJlYWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1ncmFudC1yZWFkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRSZWFkQUNQXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtcmVhZC1hY3BcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFdyaXRlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtd3JpdGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudFdyaXRlQUNQXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtd3JpdGUtYWNwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkFjY2Vzc0NvbnRyb2xQb2xpY3lcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRBbmFseXRpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9hbmFseXRpY3NcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgXCJBbmFseXRpY3NDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzN1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBbmFseXRpY3NDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkFuYWx5dGljc0NvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRDb3JzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9jb3JzXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJDT1JTQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDT1JTQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNPUlNDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkNPUlNSdWxlc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDT1JTUnVsZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM25cIixcbiAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNPUlNSdWxlXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiQ09SU0NvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRFbmNyeXB0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9lbmNyeXB0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNDBcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU2VydmVyU2lkZUVuY3J5cHRpb25Db25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldEludmVudG9yeUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2ludmVudG9yeVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52ZW50b3J5Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQ2XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkludmVudG9yeUNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiSW52ZW50b3J5Q29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldExpZmVjeWNsZVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bGlmZWN5Y2xlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpZmVjeWNsZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMaWZlY3ljbGVDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlJ1bGVzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRtXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSdWxlXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiTGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUHV0QnVja2V0TGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bGlmZWN5Y2xlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpZmVjeWNsZUNvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJMaWZlY3ljbGVDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlJ1bGVzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzUxXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSdWxlXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiTGlmZWN5Y2xlQ29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldExvZ2dpbmdcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P2xvZ2dpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIkJ1Y2tldExvZ2dpbmdTdGF0dXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQnVja2V0TG9nZ2luZ1N0YXR1c1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldExvZ2dpbmdTdGF0dXNcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJMb2dnaW5nRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1YlwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIkJ1Y2tldExvZ2dpbmdTdGF0dXNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRNZXRyaWNzQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/bWV0cmljc1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICBcIk1ldHJpY3NDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldHJpY3NDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNWpcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWV0cmljc0NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiTWV0cmljc0NvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXROb3RpZmljYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P25vdGlmaWNhdGlvblwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNW5cIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJOb3RpZmljYXRpb25Db25maWd1cmF0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXROb3RpZmljYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9ub3RpZmljYXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk5vdGlmaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiTm90aWZpY2F0aW9uQ29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldFBvbGljeVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/cG9saWN5XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJQb2xpY3lcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29uZmlybVJlbW92ZVNlbGZCdWNrZXRBY2Nlc3NcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb25maXJtLXJlbW92ZS1zZWxmLWJ1Y2tldC1hY2Nlc3NcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQb2xpY3lcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUG9saWN5XCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0UmVwbGljYXRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9P3JlcGxpY2F0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmhcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dEJ1Y2tldFJlcXVlc3RQYXltZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT9yZXF1ZXN0UGF5bWVudFwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiUmVxdWVzdFBheW1lbnRDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXltZW50Q29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlcXVlc3RQYXltZW50Q29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJQYXllclwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJQYXllclwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUmVxdWVzdFBheW1lbnRDb25maWd1cmF0aW9uXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0VGFnZ2luZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/dGFnZ2luZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiVGFnZ2luZ1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdnaW5nXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXVcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnZ2luZ1wiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJUYWdnaW5nXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0QnVja2V0VmVyc2lvbmluZ1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0/dmVyc2lvbmluZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQnVja2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTUZBXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotbWZhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWZXJzaW9uaW5nQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk1GQURlbGV0ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZmFEZWxldGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVmVyc2lvbmluZ0NvbmZpZ3VyYXRpb25cIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRCdWNrZXRXZWJzaXRlXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fT93ZWJzaXRlXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJXZWJzaXRlQ29uZmlndXJhdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXZWJzaXRlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIldlYnNpdGVDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICAgIFwidXJpXCI6IFwiaHR0cDovL3MzLmFtYXpvbmF3cy5jb20vZG9jLzIwMDYtMDMtMDEvXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRXJyb3JEb2N1bWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3YVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiSW5kZXhEb2N1bWVudFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3OFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUmVkaXJlY3RBbGxSZXF1ZXN0c1RvXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSb3V0aW5nUnVsZXNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN2JcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJXZWJzaXRlQ29uZmlndXJhdGlvblwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1dE9iamVjdFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9XCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQUNMXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQm9keVwiOiB7XG4gICAgICAgICAgICBcInN0cmVhbWluZ1wiOiB0cnVlLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlQ29udHJvbFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNhY2hlLUNvbnRyb2xcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50RGlzcG9zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LURpc3Bvc2l0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudEVuY29kaW5nXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1FbmNvZGluZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRMYW5ndWFnZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTGFuZ3VhZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TGVuZ3RoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1MZW5ndGhcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50VHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtVHlwZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyZXNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFeHBpcmVzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudEZ1bGxDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtZnVsbC1jb250cm9sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtcmVhZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZEFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWQtYWNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRXcml0ZUFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXdyaXRlLWFjcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTFcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJzXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LW1ldGEtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc3RvcmFnZS1jbGFzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldlYnNpdGVSZWRpcmVjdExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotd2Vic2l0ZS1yZWRpcmVjdC1sb2NhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyQWxnb3JpdGhtXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1hbGdvcml0aG1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE5XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1hd3Mta21zLWtleS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdnaW5nXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotdGFnZ2luZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJCb2R5XCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhwaXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWV4cGlyYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFVGFnXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRVRhZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcnZlclNpZGVFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXZlcnNpb24taWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1hd3Mta21zLWtleS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0T2JqZWN0QWNsXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K30/YWNsXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnVja2V0XCIsXG4gICAgICAgICAgXCJLZXlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQUNMXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotYWNsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjZXNzQ29udHJvbFBvbGljeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2E4XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFjY2Vzc0NvbnRyb2xQb2xpY3lcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb250ZW50TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ29udGVudC1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHcmFudEZ1bGxDb250cm9sXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtZnVsbC1jb250cm9sXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRSZWFkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotZ3JhbnQtcmVhZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkdyYW50UmVhZEFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXJlYWQtYWNwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRXcml0ZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXdyaXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR3JhbnRXcml0ZUFDUFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWdyYW50LXdyaXRlLWFjcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25JZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJBY2Nlc3NDb250cm9sUG9saWN5XCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVxdWVzdENoYXJnZWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LWNoYXJnZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRPYmplY3RUYWdnaW5nXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K30/dGFnZ2luZ1wiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJUYWdnaW5nXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbnRlbnQtTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnZ2luZ1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F1XCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ2dpbmdcIixcbiAgICAgICAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiVGFnZ2luZ1wiXG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXZlcnNpb24taWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZXN0b3JlT2JqZWN0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K30/cmVzdG9yZVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzdG9yZVJlcXVlc3RcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXN0b3JlUmVxdWVzdFwiLFxuICAgICAgICAgICAgXCJ4bWxOYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICBcInVyaVwiOiBcImh0dHA6Ly9zMy5hbWF6b25hd3MuY29tL2RvYy8yMDA2LTAzLTAxL1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkRheXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkdsYWNpZXJKb2JQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiVGllclwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJUaWVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiVGllclwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTZWxlY3RQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiSW5wdXRTZXJpYWxpemF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICBcIkV4cHJlc3Npb25UeXBlXCIsXG4gICAgICAgICAgICAgICAgICBcIkV4cHJlc3Npb25cIixcbiAgICAgICAgICAgICAgICAgIFwiT3V0cHV0U2VyaWFsaXphdGlvblwiXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJJbnB1dFNlcmlhbGl6YXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JkXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkV4cHJlc3Npb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJPdXRwdXRTZXJpYWxpemF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk91dHB1dExvY2F0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJTM1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIkJ1Y2tldE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIlByZWZpeFwiXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiRW5jcnlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkVuY3J5cHRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIktNU0tleUlkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIktNU0NvbnRleHRcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ2FubmVkQUNMXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQWNjZXNzQ29udHJvbExpc3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlRhZ2dpbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlVzZXJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTWV0YWRhdGFFbnRyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlN0b3JhZ2VDbGFzc1wiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RQYXllclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtcGF5ZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXlsb2FkXCI6IFwiUmVzdG9yZVJlcXVlc3RcIlxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3RvcmVPdXRwdXRQYXRoXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVzdG9yZS1vdXRwdXQtcGF0aFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhbGlhc1wiOiBcIlBvc3RPYmplY3RSZXN0b3JlXCJcbiAgICB9LFxuICAgIFwiU2VsZWN0T2JqZWN0Q29udGVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIve0J1Y2tldH0ve0tleSt9P3NlbGVjdCZzZWxlY3QtdHlwZT0yXCJcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZWxlY3RPYmplY3RDb250ZW50UmVxdWVzdFwiLFxuICAgICAgICBcInhtbE5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vczMuYW1hem9uYXdzLmNvbS9kb2MvMjAwNi0wMy0wMS9cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiRXhwcmVzc2lvblwiLFxuICAgICAgICAgIFwiRXhwcmVzc2lvblR5cGVcIixcbiAgICAgICAgICBcIklucHV0U2VyaWFsaXphdGlvblwiLFxuICAgICAgICAgIFwiT3V0cHV0U2VyaWFsaXphdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkV4cHJlc3Npb25UeXBlXCI6IHt9LFxuICAgICAgICAgIFwiUmVxdWVzdFByb2dyZXNzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnB1dFNlcmlhbGl6YXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk91dHB1dFNlcmlhbGl6YXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlJlY29yZHNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlBheWxvYWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImV2ZW50cGF5bG9hZFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZXZlbnRcIjogdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0YXRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJldmVudHBheWxvYWRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJCeXRlc1NjYW5uZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkJ5dGVzUHJvY2Vzc2VkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJCeXRlc1JldHVybmVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJldmVudFwiOiB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIkRldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImV2ZW50cGF5bG9hZFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIkJ5dGVzU2Nhbm5lZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQnl0ZXNQcm9jZXNzZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkJ5dGVzUmV0dXJuZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImV2ZW50XCI6IHRydWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJDb250XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJldmVudFwiOiB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRW5kXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJldmVudFwiOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImV2ZW50c3RyZWFtXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGF5bG9hZFwiOiBcIlBheWxvYWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGxvYWRQYXJ0XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUFVUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi97QnVja2V0fS97S2V5K31cIlxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgIFwiUGFydE51bWJlclwiLFxuICAgICAgICAgIFwiVXBsb2FkSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQm9keVwiOiB7XG4gICAgICAgICAgICBcInN0cmVhbWluZ1wiOiB0cnVlLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYmxvYlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkJ1Y2tldFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJ1Y2tldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRMZW5ndGhcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LUxlbmd0aFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDb250ZW50LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIktleVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIktleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhcnROdW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInBhcnROdW1iZXJcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGxvYWRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXBsb2FkSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxOVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdFBheWVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1wYXllclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJCb2R5XCJcbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRVRhZ1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkVUYWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VLTVNLZXlJZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1hd3Mta21zLWtleS1pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcXVlc3RDaGFyZ2VkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotcmVxdWVzdC1jaGFyZ2VkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBsb2FkUGFydENvcHlcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL3tCdWNrZXR9L3tLZXkrfVwiXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ1Y2tldFwiLFxuICAgICAgICAgIFwiQ29weVNvdXJjZVwiLFxuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJQYXJ0TnVtYmVyXCIsXG4gICAgICAgICAgXCJVcGxvYWRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCdWNrZXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlSWZNYXRjaFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLWlmLW1hdGNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZUlmTW9kaWZpZWRTaW5jZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLWlmLW1vZGlmaWVkLXNpbmNlXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlSWZOb25lTWF0Y2hcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1pZi1ub25lLW1hdGNoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZUlmVW5tb2RpZmllZFNpbmNlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2UtaWYtdW5tb2RpZmllZC1zaW5jZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZVJhbmdlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2UtcmFuZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXJ0TnVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJwYXJ0TnVtYmVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBsb2FkSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInVwbG9hZElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTU0VDdXN0b21lcktleU1ENVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXIta2V5LU1ENVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvcHlTb3VyY2VTU0VDdXN0b21lckFsZ29yaXRobVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLXNlcnZlci1zaWRlLWVuY3J5cHRpb24tY3VzdG9tZXItYWxnb3JpdGhtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weVNvdXJjZVNTRUN1c3RvbWVyS2V5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWNcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotY29weS1zb3VyY2Utc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlNRDVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1jb3B5LXNvdXJjZS1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0UGF5ZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1yZXF1ZXN0LXBheWVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29weVNvdXJjZVZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LWNvcHktc291cmNlLXZlcnNpb24taWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb3B5UGFydFJlc3VsdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRVRhZ1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJMYXN0TW9kaWZpZWRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2VydmVyU2lkZUVuY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFQ3VzdG9tZXJBbGdvcml0aG1cIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWFsZ29yaXRobVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNTRUN1c3RvbWVyS2V5TUQ1XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwieC1hbXotc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU1NFS01TS2V5SWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb24tYXdzLWttcy1rZXktaWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0Q2hhcmdlZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIngtYW16LXJlcXVlc3QtY2hhcmdlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInBheWxvYWRcIjogXCJDb3B5UGFydFJlc3VsdFwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzExXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlMxOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJibG9iXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJibG9iXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMydlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGlzcGxheU5hbWVcIjoge30sXG4gICAgICAgIFwiSURcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHcmFudFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyYW50ZWVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBlcm1pc3Npb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUeXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRpc3BsYXlOYW1lXCI6IHt9LFxuICAgICAgICBcIkVtYWlsQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgXCJJRFwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInhzaTp0eXBlXCIsXG4gICAgICAgICAgXCJ4bWxBdHRyaWJ1dGVcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIlVSSVwiOiB7fVxuICAgICAgfSxcbiAgICAgIFwieG1sTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgXCJwcmVmaXhcIjogXCJ4c2lcIixcbiAgICAgICAgXCJ1cmlcIjogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCIsXG4gICAgICAgIFwiU3RvcmFnZUNsYXNzQW5hbHlzaXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgICBcIlRhZ1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQW5kXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2RcIixcbiAgICAgICAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0b3JhZ2VDbGFzc0FuYWx5c2lzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJEYXRhRXhwb3J0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiT3V0cHV0U2NoZW1hVmVyc2lvblwiLFxuICAgICAgICAgICAgICAgIFwiRGVzdGluYXRpb25cIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiT3V0cHV0U2NoZW1hVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgIFwiUzNCdWNrZXREZXN0aW5hdGlvblwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTM0J1Y2tldERlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRm9ybWF0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkJ1Y2tldFwiXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIkJ1Y2tldEFjY291bnRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJQcmVmaXhcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzNhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiS2V5XCIsXG4gICAgICAgIFwiVmFsdWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTM2FcIixcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBbGxvd2VkTWV0aG9kc1wiLFxuICAgICAgICAgIFwiQWxsb3dlZE9yaWdpbnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWxsb3dlZEhlYWRlcnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBbGxvd2VkSGVhZGVyXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxsb3dlZE1ldGhvZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBbGxvd2VkTWV0aG9kXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxsb3dlZE9yaWdpbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBbGxvd2VkT3JpZ2luXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhwb3NlSGVhZGVyc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV4cG9zZUhlYWRlclwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge30sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heEFnZVNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNDBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJSdWxlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSdWxlc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSdWxlXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJBcHBseVNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgIFwiU1NFQWxnb3JpdGhtXCJcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlNTRUFsZ29yaXRobVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiS01TTWFzdGVyS2V5SURcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0NlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkRlc3RpbmF0aW9uXCIsXG4gICAgICAgIFwiSXNFbmFibGVkXCIsXG4gICAgICAgIFwiSWRcIixcbiAgICAgICAgXCJJbmNsdWRlZE9iamVjdFZlcnNpb25zXCIsXG4gICAgICAgIFwiU2NoZWR1bGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGVzdGluYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJTM0J1Y2tldERlc3RpbmF0aW9uXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlMzQnVja2V0RGVzdGluYXRpb25cIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJCdWNrZXRcIixcbiAgICAgICAgICAgICAgICBcIkZvcm1hdFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY2NvdW50SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJCdWNrZXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcmVmaXhcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFbmNyeXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJTU0VTM1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTU0UtUzNcIixcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJTU0VLTVNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiU1NFLUtNU1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJLZXlJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJLZXlJZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIklzRW5hYmxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiUHJlZml4XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlByZWZpeFwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJJbmNsdWRlZE9iamVjdFZlcnNpb25zXCI6IHt9LFxuICAgICAgICBcIk9wdGlvbmFsRmllbGRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJGaWVsZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlNjaGVkdWxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgIFwiRnJlcXVlbmN5XCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIkZyZXF1ZW5jeVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNG1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcmVmaXhcIixcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNG9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJRFwiOiB7fSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlRyYW5zaXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vbmN1cnJlbnRWZXJzaW9uVHJhbnNpdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm9uY3VycmVudFZlcnNpb25FeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0eFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTNG9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRhdGVcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTNHBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRheXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4cGlyZWRPYmplY3REZWxldGVNYXJrZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0cFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIixcbiAgICAgIFwidGltZXN0YW1wRm9ybWF0XCI6IFwiaXNvODYwMVwiXG4gICAgfSxcbiAgICBcIlM0dFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiRGF0ZVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlM0cFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiRGF5c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RvcmFnZUNsYXNzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM0dlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTm9uY3VycmVudERheXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0b3JhZ2VDbGFzc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5vbmN1cnJlbnREYXlzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNHhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkRheXNBZnRlckluaXRpYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNG9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJRFwiOiB7fSxcbiAgICAgICAgICBcIlByZWZpeFwiOiB7XG4gICAgICAgICAgICBcImRlcHJlY2F0ZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYWdcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkFuZFwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlRhZ1wiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlRyYW5zaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVHJhbnNpdGlvblwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR0XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5vbmN1cnJlbnRWZXJzaW9uVHJhbnNpdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOb25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0dlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0d1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFib3J0SW5jb21wbGV0ZU11bHRpcGFydFVwbG9hZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzR4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM1YlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRhcmdldEJ1Y2tldFwiLFxuICAgICAgICBcIlRhcmdldFByZWZpeFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYXJnZXRCdWNrZXRcIjoge30sXG4gICAgICAgIFwiVGFyZ2V0R3JhbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJHcmFudFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkdyYW50ZWVcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlBlcm1pc3Npb25cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFyZ2V0UHJlZml4XCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1alwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgXCJUYWdcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkFuZFwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUHJlZml4XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNkXCIsXG4gICAgICAgICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNW1cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQnVja2V0XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJCdWNrZXRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM1blwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVG9waWNDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1cVwiLFxuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkV2ZW50XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkV2ZW50XCI6IHtcbiAgICAgICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlRvcGljXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlF1ZXVlQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICBcIkV2ZW50XCI6IHtcbiAgICAgICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXFcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJRdWV1ZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDbG91ZEZ1bmN0aW9uQ29uZmlndXJhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICBcIkV2ZW50XCI6IHtcbiAgICAgICAgICAgICAgXCJkZXByZWNhdGVkXCI6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXFcIixcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJDbG91ZEZ1bmN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJJbnZvY2F0aW9uUm9sZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNXFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge30sXG4gICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM1eVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVG9waWNDb25maWd1cmF0aW9uc1wiOiB7XG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUb3BpY0NvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgXCJUb3BpY0FyblwiLFxuICAgICAgICAgICAgICBcIkV2ZW50c1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJUb3BpY0FyblwiOiB7XG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUb3BpY1wiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVxXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzYxXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIlF1ZXVlQ29uZmlndXJhdGlvbnNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVldWVDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiUXVldWVBcm5cIixcbiAgICAgICAgICAgICAgXCJFdmVudHNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUXVldWVBcm5cIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUXVldWVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkV2ZW50c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1cVwiLFxuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRXZlbnRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkZpbHRlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2MVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYW1iZGFGdW5jdGlvbkNvbmZpZ3VyYXRpb25zXCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNsb3VkRnVuY3Rpb25Db25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgIFwiTGFtYmRhRnVuY3Rpb25Bcm5cIixcbiAgICAgICAgICAgICAgXCJFdmVudHNcIlxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiTGFtYmRhRnVuY3Rpb25Bcm5cIjoge1xuICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQ2xvdWRGdW5jdGlvblwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRXZlbnRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVxXCIsXG4gICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJFdmVudFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRmlsdGVyXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzYxXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2MVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2V5XCI6IHtcbiAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlMzS2V5XCIsXG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRmlsdGVyUnVsZXNcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZpbHRlclJ1bGVcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzZoXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiUm9sZVwiLFxuICAgICAgICBcIlJ1bGVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiUnVsZVwiLFxuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlByZWZpeFwiLFxuICAgICAgICAgICAgICBcIlN0YXR1c1wiLFxuICAgICAgICAgICAgICBcIkRlc3RpbmF0aW9uXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklEXCI6IHt9LFxuICAgICAgICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiU291cmNlU2VsZWN0aW9uQ3JpdGVyaWFcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlNzZUttc0VuY3J5cHRlZE9iamVjdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgXCJTdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiRGVzdGluYXRpb25cIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgXCJCdWNrZXRcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiQnVja2V0XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJBY2NvdW50XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgICBcIkFjY2Vzc0NvbnRyb2xUcmFuc2xhdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICBcIk93bmVyXCJcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcIk93bmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcIkVuY3J5cHRpb25Db25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJSZXBsaWNhS21zS2V5SURcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3NVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkhvc3ROYW1lXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkhvc3ROYW1lXCI6IHt9LFxuICAgICAgICBcIlByb3RvY29sXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3OFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlN1ZmZpeFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTdWZmaXhcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzdhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiS2V5XCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIktleVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN2JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJvdXRpbmdSdWxlXCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlZGlyZWN0XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbmRpdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSHR0cEVycm9yQ29kZVJldHVybmVkRXF1YWxzXCI6IHt9LFxuICAgICAgICAgICAgICBcIktleVByZWZpeEVxdWFsc1wiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWRpcmVjdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiSG9zdE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiSHR0cFJlZGlyZWN0Q29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcm90b2NvbFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZXBsYWNlS2V5UHJlZml4V2l0aFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJSZXBsYWNlS2V5V2l0aFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTOTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklEXCI6IHt9LFxuICAgICAgICBcIkRpc3BsYXlOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM5OFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJlZml4XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlM5cVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiTGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVUYWdcIjoge30sXG4gICAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdG9yYWdlQ2xhc3NcIjoge30sXG4gICAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNhOFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiR3JhbnRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCIsXG4gICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBY2Nlc3NDb250cm9sTGlzdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3duZXJcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMnZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNhdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlRhZ1NldFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUYWdTZXRcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTM2RcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ1NWXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJGaWxlSGVhZGVySW5mb1wiOiB7fSxcbiAgICAgICAgICAgIFwiQ29tbWVudHNcIjoge30sXG4gICAgICAgICAgICBcIlF1b3RlRXNjYXBlQ2hhcmFjdGVyXCI6IHt9LFxuICAgICAgICAgICAgXCJSZWNvcmREZWxpbWl0ZXJcIjoge30sXG4gICAgICAgICAgICBcIkZpZWxkRGVsaW1pdGVyXCI6IHt9LFxuICAgICAgICAgICAgXCJRdW90ZUNoYXJhY3RlclwiOiB7fSxcbiAgICAgICAgICAgIFwiQWxsb3dRdW90ZWRSZWNvcmREZWxpbWl0ZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcHJlc3Npb25UeXBlXCI6IHt9LFxuICAgICAgICBcIkpTT05cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDU1ZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlF1b3RlRmllbGRzXCI6IHt9LFxuICAgICAgICAgICAgXCJRdW90ZUVzY2FwZUNoYXJhY3RlclwiOiB7fSxcbiAgICAgICAgICAgIFwiUmVjb3JkRGVsaW1pdGVyXCI6IHt9LFxuICAgICAgICAgICAgXCJGaWVsZERlbGltaXRlclwiOiB7fSxcbiAgICAgICAgICAgIFwiUXVvdGVDaGFyYWN0ZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiSlNPTlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiUmVjb3JkRGVsaW1pdGVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdEJ1Y2tldHNcIjoge1xuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiQnVja2V0c1wiXG4gICAgfSxcbiAgICBcIkxpc3RNdWx0aXBhcnRVcGxvYWRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogW1xuICAgICAgICBcIktleU1hcmtlclwiLFxuICAgICAgICBcIlVwbG9hZElkTWFya2VyXCJcbiAgICAgIF0sXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFVwbG9hZHNcIixcbiAgICAgIFwibW9yZV9yZXN1bHRzXCI6IFwiSXNUcnVuY2F0ZWRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFtcbiAgICAgICAgXCJOZXh0S2V5TWFya2VyXCIsXG4gICAgICAgIFwiTmV4dFVwbG9hZElkTWFya2VyXCJcbiAgICAgIF0sXG4gICAgICBcInJlc3VsdF9rZXlcIjogW1xuICAgICAgICBcIlVwbG9hZHNcIixcbiAgICAgICAgXCJDb21tb25QcmVmaXhlc1wiXG4gICAgICBdXG4gICAgfSxcbiAgICBcIkxpc3RPYmplY3RWZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFtcbiAgICAgICAgXCJLZXlNYXJrZXJcIixcbiAgICAgICAgXCJWZXJzaW9uSWRNYXJrZXJcIlxuICAgICAgXSxcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4S2V5c1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJJc1RydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogW1xuICAgICAgICBcIk5leHRLZXlNYXJrZXJcIixcbiAgICAgICAgXCJOZXh0VmVyc2lvbklkTWFya2VyXCJcbiAgICAgIF0sXG4gICAgICBcInJlc3VsdF9rZXlcIjogW1xuICAgICAgICBcIlZlcnNpb25zXCIsXG4gICAgICAgIFwiRGVsZXRlTWFya2Vyc1wiLFxuICAgICAgICBcIkNvbW1vblByZWZpeGVzXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwiTGlzdE9iamVjdHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhLZXlzXCIsXG4gICAgICBcIm1vcmVfcmVzdWx0c1wiOiBcIklzVHJ1bmNhdGVkXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRNYXJrZXIgfHwgQ29udGVudHNbLTFdLktleVwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFtcbiAgICAgICAgXCJDb250ZW50c1wiLFxuICAgICAgICBcIkNvbW1vblByZWZpeGVzXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwiTGlzdE9iamVjdHNWMlwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiQ29udGludWF0aW9uVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4S2V5c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0Q29udGludWF0aW9uVG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBbXG4gICAgICAgIFwiQ29udGVudHNcIixcbiAgICAgICAgXCJDb21tb25QcmVmaXhlc1wiXG4gICAgICBdXG4gICAgfSxcbiAgICBcIkxpc3RQYXJ0c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFydE51bWJlck1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhQYXJ0c1wiLFxuICAgICAgXCJtb3JlX3Jlc3VsdHNcIjogXCJJc1RydW5jYXRlZFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFydE51bWJlck1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiUGFydHNcIlxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IDIsXG4gIFwid2FpdGVyc1wiOiB7XG4gICAgXCJCdWNrZXRFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiA1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJIZWFkQnVja2V0XCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDIwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiAyMDAsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiAzMDEsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiA0MDMsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiA0MDQsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInJldHJ5XCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAgXCJCdWNrZXROb3RFeGlzdHNcIjoge1xuICAgICAgXCJkZWxheVwiOiA1LFxuICAgICAgXCJvcGVyYXRpb25cIjogXCJIZWFkQnVja2V0XCIsXG4gICAgICBcIm1heEF0dGVtcHRzXCI6IDIwLFxuICAgICAgXCJhY2NlcHRvcnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJleHBlY3RlZFwiOiA0MDQsXG4gICAgICAgICAgXCJtYXRjaGVyXCI6IFwic3RhdHVzXCIsXG4gICAgICAgICAgXCJzdGF0ZVwiOiBcInN1Y2Nlc3NcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIk9iamVjdEV4aXN0c1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkhlYWRPYmplY3RcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IDIwMCxcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IDQwNCxcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwicmV0cnlcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICBcIk9iamVjdE5vdEV4aXN0c1wiOiB7XG4gICAgICBcImRlbGF5XCI6IDUsXG4gICAgICBcIm9wZXJhdGlvblwiOiBcIkhlYWRPYmplY3RcIixcbiAgICAgIFwibWF4QXR0ZW1wdHNcIjogMjAsXG4gICAgICBcImFjY2VwdG9yc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImV4cGVjdGVkXCI6IDQwNCxcbiAgICAgICAgICBcIm1hdGNoZXJcIjogXCJzdGF0dXNcIixcbiAgICAgICAgICBcInN0YXRlXCI6IFwic3VjY2Vzc1wiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMTItMTBcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwic2VydmljZWNhdGFsb2dcIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBTZXJ2aWNlIENhdGFsb2dcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlNlcnZpY2UgQ2F0YWxvZ1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJBV1MyNDJTZXJ2aWNlQ2F0YWxvZ1NlcnZpY2VcIixcbiAgICBcInVpZFwiOiBcInNlcnZpY2VjYXRhbG9nLTIwMTUtMTItMTBcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWNjZXB0UG9ydGZvbGlvU2hhcmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBc3NvY2lhdGVQcmluY2lwYWxXaXRoUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiLFxuICAgICAgICAgIFwiUHJpbmNpcGFsQVJOXCIsXG4gICAgICAgICAgXCJQcmluY2lwYWxUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge30sXG4gICAgICAgICAgXCJQcmluY2lwYWxBUk5cIjoge30sXG4gICAgICAgICAgXCJQcmluY2lwYWxUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlUHJvZHVjdFdpdGhQb3J0Zm9saW9cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiLFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVBvcnRmb2xpb0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzb2NpYXRlVGFnT3B0aW9uV2l0aFJlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJUYWdPcHRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnT3B0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDb3B5UHJvZHVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU291cmNlUHJvZHVjdEFyblwiLFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVByb2R1Y3RBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRQcm9kdWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlNvdXJjZVByb3Zpc2lvbmluZ0FydGlmYWN0SWRlbnRpZmllcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29weU9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb3B5UHJvZHVjdFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ29uc3RyYWludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIixcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiLFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiLFxuICAgICAgICAgIFwiVHlwZVwiLFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7fSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uc3RyYWludERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdHJhaW50UGFyYW1ldGVyc1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGlzcGxheU5hbWVcIixcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiLFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIkRpc3BsYXlOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJQcm92aWRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvcnRmb2xpb0RldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUG9ydGZvbGlvU2hhcmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCIsXG4gICAgICAgICAgXCJBY2NvdW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiOiB7fSxcbiAgICAgICAgICBcIkFjY291bnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVByb2R1Y3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIk93bmVyXCIsXG4gICAgICAgICAgXCJQcm9kdWN0VHlwZVwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RQYXJhbWV0ZXJzXCIsXG4gICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk93bmVyXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJEaXN0cmlidXRvclwiOiB7fSxcbiAgICAgICAgICBcIlN1cHBvcnREZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlN1cHBvcnRFbWFpbFwiOiB7fSxcbiAgICAgICAgICBcIlN1cHBvcnRVcmxcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm9kdWN0Vmlld0RldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3REZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVByb3Zpc2lvbmVkUHJvZHVjdFBsYW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYW5OYW1lXCIsXG4gICAgICAgICAgXCJQbGFuVHlwZVwiLFxuICAgICAgICAgIFwiUHJvZHVjdElkXCIsXG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3ROYW1lXCIsXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCIsXG4gICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUGxhbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQbGFuVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbkFybnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhdGhJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGFuTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYW5JZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvblByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdE5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUHJvdmlzaW9uaW5nQXJ0aWZhY3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiLFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiLFxuICAgICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3REZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRhZ09wdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ09wdGlvbkRldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29uc3RyYWludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBvcnRmb2xpb1NoYXJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiLFxuICAgICAgICAgIFwiQWNjb3VudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge30sXG4gICAgICAgICAgXCJBY2NvdW50SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQcm9kdWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUHJvdmlzaW9uZWRQcm9kdWN0UGxhblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUGxhbklkXCI6IHt9LFxuICAgICAgICAgIFwiSWdub3JlRXJyb3JzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQcm92aXNpb25pbmdBcnRpZmFjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvZHVjdElkXCIsXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRhZ09wdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbnN0cmFpbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25zdHJhaW50RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN0cmFpbnRQYXJhbWV0ZXJzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDb3B5UHJvZHVjdFN0YXR1c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29weVByb2R1Y3RUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIkNvcHlQcm9kdWN0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb3B5UHJvZHVjdFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldFByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlN0YXR1c0RldGFpbFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9ydGZvbGlvRGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVByb2R1Y3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm9kdWN0Vmlld1N1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQcm9kdWN0QXNBZG1pblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb2R1Y3RWaWV3RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdFN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdE1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYWdPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVByb2R1Y3RWaWV3XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvZHVjdFZpZXdTdW1tYXJ5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzOVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUHJvdmlzaW9uZWRQcm9kdWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoRGFzaGJvYXJkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUHJvdmlzaW9uZWRQcm9kdWN0UGxhblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUGxhbklkXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdFBsYW5EZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQYXRoSWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBsYW5OYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBsYW5JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJQcm92aXNpb25Qcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJvdmlzaW9uUHJvZHVjdE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiUGxhblR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiVXBkYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiTm90aWZpY2F0aW9uQXJuc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyMlwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiUHJvdmlzaW9uaW5nUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXNvdXJjZUNoYW5nZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxvZ2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGh5c2ljYWxSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVwbGFjZW1lbnRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY29wZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJUYXJnZXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkF0dHJpYnV0ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlJlcXVpcmVzUmVjcmVhdGlvblwiOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJFdmFsdWF0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ2F1c2luZ0VudGl0eVwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVByb3Zpc2lvbmluZ0FydGlmYWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCIsXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiVmVyYm9zZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3REZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUHJvdmlzaW9uaW5nUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvZHVjdElkXCIsXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhdGhJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ0FydGlmYWN0UGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklzTm9FY2hvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBhcmFtZXRlckNvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBbGxvd2VkVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25zdHJhaW50U3VtbWFyaWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2FnZUluc3RydWN0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnT3B0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUmVjb3JkXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjb3JkT3V0cHV0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiT3V0cHV0S2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3V0cHV0VmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhZ09wdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdPcHRpb25EZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2Fzc29jaWF0ZVByaW5jaXBhbEZyb21Qb3J0Zm9saW9cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCIsXG4gICAgICAgICAgXCJQcmluY2lwYWxBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiOiB7fSxcbiAgICAgICAgICBcIlByaW5jaXBhbEFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRpc2Fzc29jaWF0ZVByb2R1Y3RGcm9tUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIixcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhc3NvY2lhdGVUYWdPcHRpb25Gcm9tUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlRhZ09wdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJUYWdPcHRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkV4ZWN1dGVQcm92aXNpb25lZFByb2R1Y3RQbGFuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGFuSWRcIixcbiAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQbGFuSWRcIjoge30sXG4gICAgICAgICAgXCJJZGVtcG90ZW5jeVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwiaWRlbXBvdGVuY3lUb2tlblwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlY29yZERldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzU3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEFjY2VwdGVkUG9ydGZvbGlvU2hhcmVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvcnRmb2xpb1NoYXJlVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvcnRmb2xpb0RldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1elwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q29uc3RyYWludHNGb3JQb3J0Zm9saW9cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29uc3RyYWludERldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3ZcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdExhdW5jaFBhdGhzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTGF1bmNoUGF0aFN1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb25zdHJhaW50U3VtbWFyaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNHdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQb3J0Zm9saW9BY2Nlc3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NvdW50SWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UG9ydGZvbGlvc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQb3J0Zm9saW9EZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNXpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFBvcnRmb2xpb3NGb3JQcm9kdWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJQYWdlU2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9ydGZvbGlvRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzV6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQcmluY2lwYWxzRm9yUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIlBvcnRmb2xpb0lkXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlByaW5jaXBhbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlByaW5jaXBhbEFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlByaW5jaXBhbFR5cGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFByb3Zpc2lvbmVkUHJvZHVjdFBsYW5zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkFjY2Vzc0xldmVsRmlsdGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3RQbGFuc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUGxhbk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQbGFuSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcm92aXNpb25Qcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcm92aXNpb25Qcm9kdWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBsYW5UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UHJvdmlzaW9uaW5nQXJ0aWZhY3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdERldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZWNvcmRIaXN0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiQWNjZXNzTGV2ZWxGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2a1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlYXJjaEZpbHRlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWNvcmREZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM1N1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVzb3VyY2VzRm9yVGFnT3B0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYWdPcHRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWdPcHRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZURldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRhZ09wdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkFjdGl2ZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFnZVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ09wdGlvbkRldGFpbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlByb3Zpc2lvblByb2R1Y3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlByb2R1Y3RJZFwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0TmFtZVwiLFxuICAgICAgICAgIFwiUHJvdmlzaW9uVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUGF0aElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlByb3Zpc2lvbmluZ1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQXJuc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjb3JkRGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWplY3RQb3J0Zm9saW9TaGFyZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUG9ydGZvbGlvSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjYW5Qcm92aXNpb25lZFByb2R1Y3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiQWNjZXNzTGV2ZWxGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2a1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMza1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWFyY2hQcm9kdWN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3bVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3J0QnlcIjoge30sXG4gICAgICAgICAgXCJTb3J0T3JkZXJcIjoge30sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm9kdWN0Vmlld1N1bW1hcmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9kdWN0Vmlld0FnZ3JlZ2F0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJBcHByb3hpbWF0ZUNvdW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWFyY2hQcm9kdWN0c0FzQWRtaW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQb3J0Zm9saW9JZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM3bVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvcnRCeVwiOiB7fSxcbiAgICAgICAgICBcIlNvcnRPcmRlclwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcm9kdWN0U291cmNlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvZHVjdFZpZXdEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZWFyY2hQcm92aXNpb25lZFByb2R1Y3RzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiQWNjZXNzTGV2ZWxGaWx0ZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2a1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNvcnRCeVwiOiB7fSxcbiAgICAgICAgICBcIlNvcnRPcmRlclwiOiB7fSxcbiAgICAgICAgICBcIlBhZ2VTaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYWdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIklkZW1wb3RlbmN5VG9rZW5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0UmVjb3JkSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQaHlzaWNhbElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlVzZXJBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJVc2VyQXJuU2Vzc2lvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRvdGFsUmVzdWx0c0NvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0UGFnZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVGVybWluYXRlUHJvdmlzaW9uZWRQcm9kdWN0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUZXJtaW5hdGVUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJUZXJtaW5hdGVUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJZ25vcmVFcnJvcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjb3JkRGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDb25zdHJhaW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb25zdHJhaW50RGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnN0cmFpbnRQYXJhbWV0ZXJzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NlcHRMYW5ndWFnZVwiOiB7fSxcbiAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgIFwiRGlzcGxheU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlByb3ZpZGVyTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFkZFRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlbW92ZVRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4blwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBvcnRmb2xpb0RldGFpbFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUHJvZHVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJPd25lclwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRGlzdHJpYnV0b3JcIjoge30sXG4gICAgICAgICAgXCJTdXBwb3J0RGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTdXBwb3J0RW1haWxcIjoge30sXG4gICAgICAgICAgXCJTdXBwb3J0VXJsXCI6IHt9LFxuICAgICAgICAgIFwiQWRkVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzEyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVtb3ZlVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvZHVjdFZpZXdEZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVByb3Zpc2lvbmVkUHJvZHVjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXBkYXRlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQWNjZXB0TGFuZ3VhZ2VcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3ROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uZWRQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUGF0aElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBkYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjb3JkRGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVQcm92aXNpb25pbmdBcnRpZmFjdFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUHJvZHVjdElkXCIsXG4gICAgICAgICAgXCJQcm92aXNpb25pbmdBcnRpZmFjdElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjY2VwdExhbmd1YWdlXCI6IHt9LFxuICAgICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkFjdGl2ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3REZXRhaWxcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0YXR1c1wiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVRhZ09wdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIkFjdGl2ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnT3B0aW9uRGV0YWlsXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU3ZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkNvbnN0cmFpbnRJZFwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIk93bmVyXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJLZXlcIixcbiAgICAgICAgXCJWYWx1ZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJBUk5cIjoge30sXG4gICAgICAgIFwiRGlzcGxheU5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUHJvdmlkZXJOYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJJbmZvXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiSW5mb1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzFzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQcm9kdWN0Vmlld1N1bW1hcnlcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMXRcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJQcm9kdWN0QVJOXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiUHJvZHVjdElkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiT3duZXJcIjoge30sXG4gICAgICAgIFwiU2hvcnREZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIkRpc3RyaWJ1dG9yXCI6IHt9LFxuICAgICAgICBcIkhhc0RlZmF1bHRQYXRoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdXBwb3J0RW1haWxcIjoge30sXG4gICAgICAgIFwiU3VwcG9ydERlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlN1cHBvcnRVcmxcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzF4XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQWN0aXZlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzI1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZVByZXZpb3VzVmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICBcIkFjdGl2ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzOVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiQXJuXCI6IHt9LFxuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c01lc3NhZ2VcIjoge30sXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSWRlbXBvdGVuY3lUb2tlblwiOiB7fSxcbiAgICAgICAgXCJMYXN0UmVjb3JkSWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzR3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJlY29yZElkXCI6IHt9LFxuICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdE5hbWVcIjoge30sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlVwZGF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlByb3Zpc2lvbmVkUHJvZHVjdFR5cGVcIjoge30sXG4gICAgICAgIFwiUmVjb3JkVHlwZVwiOiB7fSxcbiAgICAgICAgXCJQcm92aXNpb25lZFByb2R1Y3RJZFwiOiB7fSxcbiAgICAgICAgXCJQcm9kdWN0SWRcIjoge30sXG4gICAgICAgIFwiUHJvdmlzaW9uaW5nQXJ0aWZhY3RJZFwiOiB7fSxcbiAgICAgICAgXCJQYXRoSWRcIjoge30sXG4gICAgICAgIFwiUmVjb3JkRXJyb3JzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkNvZGVcIjoge30sXG4gICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVjb3JkVGFnc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzV6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM2a1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlM3bVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdEFjY2VwdGVkUG9ydGZvbGlvU2hhcmVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJQYWdlU2l6ZVwiXG4gICAgfSxcbiAgICBcIkxpc3RDb25zdHJhaW50c0ZvclBvcnRmb2xpb1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH0sXG4gICAgXCJMaXN0TGF1bmNoUGF0aHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFnZVRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIlBhZ2VTaXplXCJcbiAgICB9LFxuICAgIFwiTGlzdFBvcnRmb2xpb3NcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0UGFnZVRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIlBhZ2VTaXplXCJcbiAgICB9LFxuICAgIFwiTGlzdFBvcnRmb2xpb3NGb3JQcm9kdWN0XCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJQYWdlU2l6ZVwiXG4gICAgfSxcbiAgICBcIkxpc3RQcmluY2lwYWxzRm9yUG9ydGZvbGlvXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJQYWdlU2l6ZVwiXG4gICAgfSxcbiAgICBcIkxpc3RSZXNvdXJjZXNGb3JUYWdPcHRpb25cIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH0sXG4gICAgXCJMaXN0VGFnT3B0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIlBhZ2VUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJQYWdlU2l6ZVwiXG4gICAgfSxcbiAgICBcIlNlYXJjaFByb2R1Y3RzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJQYWdlU2l6ZVwiXG4gICAgfSxcbiAgICBcIlNlYXJjaFByb2R1Y3RzQXNBZG1pblwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiUGFnZVRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRQYWdlVG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiUGFnZVNpemVcIlxuICAgIH0sXG4gICAgXCJTZWFyY2hQcm92aXNpb25lZFByb2R1Y3RzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJQYWdlVG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFBhZ2VUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJQYWdlU2l6ZVwiXG4gICAgfVxuICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEwLTAzLTMxXCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInNuc1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBTTlNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBTaW1wbGUgTm90aWZpY2F0aW9uIFNlcnZpY2VcIixcbiAgICBcInNlcnZpY2VJZFwiOiBcIlNOU1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJzbnMtMjAxMC0wMy0zMVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL3Nucy5hbWF6b25hd3MuY29tL2RvYy8yMDEwLTAzLTMxL1wiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBZGRQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUb3BpY0FyblwiLFxuICAgICAgICAgIFwiTGFiZWxcIixcbiAgICAgICAgICBcIkFXU0FjY291bnRJZFwiLFxuICAgICAgICAgIFwiQWN0aW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIkxhYmVsXCI6IHt9LFxuICAgICAgICAgIFwiQVdTQWNjb3VudElkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjdGlvbk5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2hlY2tJZlBob25lTnVtYmVySXNPcHRlZE91dFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwicGhvbmVOdW1iZXJcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGhvbmVOdW1iZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ2hlY2tJZlBob25lTnVtYmVySXNPcHRlZE91dFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImlzT3B0ZWRPdXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNvbmZpcm1TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRvcGljQXJuXCIsXG4gICAgICAgICAgXCJUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRlT25VbnN1YnNjcmliZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJDb25maXJtU3Vic2NyaXB0aW9uUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUGxhdGZvcm1BcHBsaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiUGxhdGZvcm1cIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBsYXRmb3JtXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlUGxhdGZvcm1BcHBsaWNhdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQbGF0Zm9ybUVuZHBvaW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCIsXG4gICAgICAgICAgXCJUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCI6IHt9LFxuICAgICAgICAgIFwiVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJDdXN0b21Vc2VyRGF0YVwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNyZWF0ZVBsYXRmb3JtRW5kcG9pbnRSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmRwb2ludEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRvcGljXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlVG9waWNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUb3BpY0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUVuZHBvaW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmRwb2ludEFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmRwb2ludEFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVBsYXRmb3JtQXBwbGljYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25Bcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1BcHBsaWNhdGlvbkFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVRvcGljXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUb3BpY0FyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUb3BpY0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEVuZHBvaW50QXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRW5kcG9pbnRBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW5kcG9pbnRBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0RW5kcG9pbnRBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGxhdGZvcm1BcHBsaWNhdGlvbkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTTVNBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFNNU0F0dHJpYnV0ZXNSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbkFyblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0U3Vic2NyaXB0aW9uQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFRvcGljQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0VG9waWNBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RW5kcG9pbnRzQnlQbGF0Zm9ybUFwcGxpY2F0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQbGF0Zm9ybUFwcGxpY2F0aW9uQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdEVuZHBvaW50c0J5UGxhdGZvcm1BcHBsaWNhdGlvblJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVuZHBvaW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW5kcG9pbnRBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQaG9uZU51bWJlcnNPcHRlZE91dFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJuZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFBob25lTnVtYmVyc09wdGVkT3V0UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwicGhvbmVOdW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RQbGF0Zm9ybUFwcGxpY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFBsYXRmb3JtQXBwbGljYXRpb25zUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1BcHBsaWNhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25Bcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0U3Vic2NyaXB0aW9uc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RTdWJzY3JpcHRpb25zQnlUb3BpY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVG9waWNBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFN1YnNjcmlwdGlvbnNCeVRvcGljUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFRvcGljc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFRvcGljc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRvcGljc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVG9waWNBcm5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJPcHRJblBob25lTnVtYmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJwaG9uZU51bWJlclwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJwaG9uZU51bWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJPcHRJblBob25lTnVtYmVyUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHVibGlzaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTWVzc2FnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldEFyblwiOiB7fSxcbiAgICAgICAgICBcIlBob25lTnVtYmVyXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICBcIlN1YmplY3RcIjoge30sXG4gICAgICAgICAgXCJNZXNzYWdlU3RydWN0dXJlXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICBcImtleVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmFsdWVcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiRGF0YVR5cGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRGF0YVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdHJpbmdWYWx1ZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJpbmFyeVZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiUHVibGlzaFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVBlcm1pc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRvcGljQXJuXCIsXG4gICAgICAgICAgXCJMYWJlbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIkxhYmVsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0RW5kcG9pbnRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmRwb2ludEFyblwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmRwb2ludEFyblwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0UGxhdGZvcm1BcHBsaWNhdGlvbkF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBsYXRmb3JtQXBwbGljYXRpb25Bcm5cIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGxhdGZvcm1BcHBsaWNhdGlvbkFyblwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0U01TQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiYXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJhdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTZXRTTVNBdHRyaWJ1dGVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0U3Vic2NyaXB0aW9uQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uQXJuXCIsXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbkFyblwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFRvcGljQXR0cmlidXRlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVG9waWNBcm5cIixcbiAgICAgICAgICBcIkF0dHJpYnV0ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVG9waWNBcm5cIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdWJzY3JpYmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRvcGljQXJuXCIsXG4gICAgICAgICAgXCJQcm90b2NvbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUb3BpY0FyblwiOiB7fSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXR1cm5TdWJzY3JpcHRpb25Bcm5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJTdWJzY3JpYmVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVbnN1YnNjcmliZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbkFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgIH0sXG4gICAgXCJTMTJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25Bcm5cIjoge30sXG4gICAgICAgICAgXCJPd25lclwiOiB7fSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiRW5kcG9pbnRcIjoge30sXG4gICAgICAgICAgXCJUb3BpY0FyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiTGlzdEVuZHBvaW50c0J5UGxhdGZvcm1BcHBsaWNhdGlvblwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRW5kcG9pbnRzXCJcbiAgICB9LFxuICAgIFwiTGlzdFBsYXRmb3JtQXBwbGljYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJQbGF0Zm9ybUFwcGxpY2F0aW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3RTdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdWJzY3JpcHRpb25zXCJcbiAgICB9LFxuICAgIFwiTGlzdFN1YnNjcmlwdGlvbnNCeVRvcGljXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJTdWJzY3JpcHRpb25zXCJcbiAgICB9LFxuICAgIFwiTGlzdFRvcGljc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVG9waWNzXCJcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDEyLTExLTA1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInNxc1wiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFtYXpvbiBTUVNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFtYXpvbiBTaW1wbGUgUXVldWUgU2VydmljZVwiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJ1aWRcIjogXCJzcXMtMjAxMi0xMS0wNVwiLFxuICAgIFwieG1sTmFtZXNwYWNlXCI6IFwiaHR0cDovL3F1ZXVlLmFtYXpvbmF3cy5jb20vZG9jLzIwMTItMTEtMDUvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFkZFBlcm1pc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJMYWJlbFwiLFxuICAgICAgICAgIFwiQVdTQWNjb3VudElkc1wiLFxuICAgICAgICAgIFwiQWN0aW9uc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIkxhYmVsXCI6IHt9LFxuICAgICAgICAgIFwiQVdTQWNjb3VudElkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQVdTQWNjb3VudElkXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFjdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkFjdGlvbk5hbWVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2hhbmdlTWVzc2FnZVZpc2liaWxpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJSZWNlaXB0SGFuZGxlXCIsXG4gICAgICAgICAgXCJWaXNpYmlsaXR5VGltZW91dFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIlJlY2VpcHRIYW5kbGVcIjoge30sXG4gICAgICAgICAgXCJWaXNpYmlsaXR5VGltZW91dFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ2hhbmdlTWVzc2FnZVZpc2liaWxpdHlCYXRjaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVldWVVcmxcIixcbiAgICAgICAgICBcIkVudHJpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJFbnRyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJDaGFuZ2VNZXNzYWdlVmlzaWJpbGl0eUJhdGNoUmVxdWVzdEVudHJ5XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgXCJSZWNlaXB0SGFuZGxlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVjZWlwdEhhbmRsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZpc2liaWxpdHlUaW1lb3V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkNoYW5nZU1lc3NhZ2VWaXNpYmlsaXR5QmF0Y2hSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3VjY2Vzc2Z1bFwiLFxuICAgICAgICAgIFwiRmFpbGVkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNoYW5nZU1lc3NhZ2VWaXNpYmlsaXR5QmF0Y2hSZXN1bHRFbnRyeVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJZFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWlsZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlUXVldWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTaFwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdHRyaWJ1dGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiQ3JlYXRlUXVldWVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU1lc3NhZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJSZWNlaXB0SGFuZGxlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9LFxuICAgICAgICAgIFwiUmVjZWlwdEhhbmRsZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU1lc3NhZ2VCYXRjaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVldWVVcmxcIixcbiAgICAgICAgICBcIkVudHJpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJFbnRyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEZWxldGVNZXNzYWdlQmF0Y2hSZXF1ZXN0RW50cnlcIixcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiSWRcIixcbiAgICAgICAgICAgICAgICBcIlJlY2VpcHRIYW5kbGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWNlaXB0SGFuZGxlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWxldGVNZXNzYWdlQmF0Y2hSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3VjY2Vzc2Z1bFwiLFxuICAgICAgICAgIFwiRmFpbGVkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRlbGV0ZU1lc3NhZ2VCYXRjaFJlc3VsdEVudHJ5XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIklkXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhaWxlZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVRdWV1ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVldWVVcmxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRRdWV1ZUF0dHJpYnV0ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldFF1ZXVlQXR0cmlidXRlc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF0dHJpYnV0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFF1ZXVlVXJsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUXVldWVPd25lckFXU0FjY291bnRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRRdWV1ZVVybFJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERlYWRMZXR0ZXJTb3VyY2VRdWV1ZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkxpc3REZWFkTGV0dGVyU291cmNlUXVldWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcInF1ZXVlVXJsc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJxdWV1ZVVybHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFF1ZXVlVGFnc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVldWVVcmxcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiTGlzdFF1ZXVlVGFnc1Jlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UXVldWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlTmFtZVByZWZpeFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJMaXN0UXVldWVzUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlB1cmdlUXVldWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVjZWl2ZU1lc3NhZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9LFxuICAgICAgICAgIFwiQXR0cmlidXRlTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWVzc2FnZUF0dHJpYnV0ZU5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZXNzYWdlQXR0cmlidXRlTmFtZVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhOdW1iZXJPZk1lc3NhZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWaXNpYmlsaXR5VGltZW91dFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2FpdFRpbWVTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWNlaXZlUmVxdWVzdEF0dGVtcHRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJSZWNlaXZlTWVzc2FnZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1lc3NhZ2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZXNzYWdlXCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTWVzc2FnZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVjZWlwdEhhbmRsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1ENU9mQm9keVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkJvZHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXR0cmlidXRlXCIsXG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNRDVPZk1lc3NhZ2VBdHRyaWJ1dGVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiLFxuICAgICAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJNZXNzYWdlQXR0cmlidXRlXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZVBlcm1pc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJMYWJlbFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIkxhYmVsXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VuZE1lc3NhZ2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJNZXNzYWdlQm9keVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiRGVsYXlTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXNzYWdlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1lc3NhZ2VBdHRyaWJ1dGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNZXNzYWdlRGVkdXBsaWNhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZUdyb3VwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiU2VuZE1lc3NhZ2VSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNRDVPZk1lc3NhZ2VCb2R5XCI6IHt9LFxuICAgICAgICAgIFwiTUQ1T2ZNZXNzYWdlQXR0cmlidXRlc1wiOiB7fSxcbiAgICAgICAgICBcIk1lc3NhZ2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlNlcXVlbmNlTnVtYmVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2VuZE1lc3NhZ2VCYXRjaFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUXVldWVVcmxcIixcbiAgICAgICAgICBcIkVudHJpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUXVldWVVcmxcIjoge30sXG4gICAgICAgICAgXCJFbnRyaWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTZW5kTWVzc2FnZUJhdGNoUmVxdWVzdEVudHJ5XCIsXG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlQm9keVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VCb2R5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVsYXlTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCIsXG4gICAgICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIk1lc3NhZ2VBdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJNZXNzYWdlRGVkdXBsaWNhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZUdyb3VwSWRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIlNlbmRNZXNzYWdlQmF0Y2hSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3VjY2Vzc2Z1bFwiLFxuICAgICAgICAgIFwiRmFpbGVkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1Y2Nlc3NmdWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlNlbmRNZXNzYWdlQmF0Y2hSZXN1bHRFbnRyeVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJZFwiLFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZUlkXCIsXG4gICAgICAgICAgICAgICAgXCJNRDVPZk1lc3NhZ2VCb2R5XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWVzc2FnZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTUQ1T2ZNZXNzYWdlQm9keVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1ENU9mTWVzc2FnZUF0dHJpYnV0ZXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGYWlsZWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0UXVldWVBdHRyaWJ1dGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiLFxuICAgICAgICAgIFwiQXR0cmlidXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIkF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF0dHJpYnV0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlRhZ1F1ZXVlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJRdWV1ZVVybFwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJRdWV1ZVVybFwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVudGFnUXVldWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlF1ZXVlVXJsXCI6IHt9LFxuICAgICAgICAgIFwiVGFnS2V5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVGFnS2V5XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTZFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQmF0Y2hSZXN1bHRFcnJvckVudHJ5XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgXCJTZW5kZXJGYXVsdFwiLFxuICAgICAgICAgIFwiQ29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICBcIlNlbmRlckZhdWx0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb2RlXCI6IHt9LFxuICAgICAgICAgIFwiTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJOYW1lXCJcbiAgICAgIH0sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWYWx1ZVwiXG4gICAgICB9LFxuICAgICAgXCJmbGF0dGVuZWRcIjogdHJ1ZSxcbiAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXR0cmlidXRlXCJcbiAgICB9LFxuICAgIFwiU3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF0dHJpYnV0ZU5hbWVcIlxuICAgICAgfSxcbiAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICB9LFxuICAgIFwiU3pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlF1ZXVlVXJsXCJcbiAgICAgIH0sXG4gICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHtcbiAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJLZXlcIlxuICAgICAgfSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZhbHVlXCJcbiAgICAgIH0sXG4gICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlLFxuICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJUYWdcIlxuICAgIH0sXG4gICAgXCJTMWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiTmFtZVwiXG4gICAgICB9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmFsdWVcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRGF0YVR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3RyaW5nVmFsdWVcIjoge30sXG4gICAgICAgICAgXCJCaW5hcnlWYWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RyaW5nTGlzdFZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcImZsYXR0ZW5lZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJpbmdMaXN0VmFsdWVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdHJpbmdMaXN0VmFsdWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJCaW5hcnlMaXN0VmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJpbmFyeUxpc3RWYWx1ZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkJpbmFyeUxpc3RWYWx1ZVwiLFxuICAgICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF0YVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZmxhdHRlbmVkXCI6IHRydWVcbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJMaXN0UXVldWVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlF1ZXVlVXJsc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNC0xMS0wNlwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJzc21cIixcbiAgICBcImpzb25WZXJzaW9uXCI6IFwiMS4xXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImpzb25cIixcbiAgICBcInNlcnZpY2VBYmJyZXZpYXRpb25cIjogXCJBbWF6b24gU1NNXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gU2ltcGxlIFN5c3RlbXMgTWFuYWdlciAoU1NNKVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiU1NNXCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIkFtYXpvblNTTVwiLFxuICAgIFwidWlkXCI6IFwic3NtLTIwMTQtMTEtMDZcIlxuICB9LFxuICBcIm9wZXJhdGlvbnNcIjoge1xuICAgIFwiQWRkVGFnc1RvUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxDb21tYW5kXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb21tYW5kSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tbWFuZElkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQWN0aXZhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSWFtUm9sZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7fSxcbiAgICAgICAgICBcIkRlZmF1bHRJbnN0YW5jZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJJYW1Sb2xlXCI6IHt9LFxuICAgICAgICAgIFwiUmVnaXN0cmF0aW9uTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkV4cGlyYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGl2YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkFjdGl2YXRpb25Db2RlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQXNzb2NpYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiT3V0cHV0TG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzc29jaWF0aW9uTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUFzc29jaWF0aW9uQmF0Y2hcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkVudHJpZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdWNjZXNzZnVsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZhaWxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRW50cnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGYXVsdFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZURvY3VtZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDb250ZW50XCIsXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbnRlbnRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRGb3JtYXRcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9jdW1lbnREZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTWFpbnRlbmFuY2VXaW5kb3dcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlNjaGVkdWxlXCIsXG4gICAgICAgICAgXCJEdXJhdGlvblwiLFxuICAgICAgICAgIFwiQ3V0b2ZmXCIsXG4gICAgICAgICAgXCJBbGxvd1VuYXNzb2NpYXRlZFRhcmdldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2hlZHVsZVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXRvZmZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93VW5hc3NvY2lhdGVkVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVQYXRjaEJhc2VsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJHbG9iYWxGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHByb3ZhbFJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHByb3ZlZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc0NvbXBsaWFuY2VMZXZlbFwiOiB7fSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc0VuYWJsZU5vblNlY3VyaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZWplY3RlZFBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlc291cmNlRGF0YVN5bmNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlN5bmNOYW1lXCIsXG4gICAgICAgICAgXCJTM0Rlc3RpbmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN5bmNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUzNEZXN0aW5hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQWN0aXZhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWN0aXZhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFjdGl2YXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUFzc29jaWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURvY3VtZW50XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVJbnZlbnRvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlR5cGVOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZW1hRGVsZXRlT3B0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiRHJ5UnVuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7XG4gICAgICAgICAgICBcImlkZW1wb3RlbmN5VG9rZW5cIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEZWxldGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZWxldGlvblN1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZU1haW50ZW5hbmNlV2luZG93XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUGFyYW1ldGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVsZXRlZFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkludmFsaWRQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVQYXRjaEJhc2VsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYXNlbGluZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUmVzb3VyY2VEYXRhU3luY1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3luY05hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3luY05hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyTWFuYWdlZEluc3RhbmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXJlZ2lzdGVyUGF0Y2hCYXNlbGluZUZvclBhdGNoR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIixcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJUYXJnZXRGcm9tTWFpbnRlbmFuY2VXaW5kb3dcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0lkXCIsXG4gICAgICAgICAgXCJXaW5kb3dUYXJnZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIldpbmRvd1RhcmdldElkXCI6IHt9LFxuICAgICAgICAgIFwiU2FmZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJXaW5kb3dUYXJnZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlcmVnaXN0ZXJUYXNrRnJvbU1haW50ZW5hbmNlV2luZG93XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiLFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJXaW5kb3dUYXNrSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUFjdGl2YXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkZpbHRlcktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZpbHRlclZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3RpdmF0aW9uTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aXZhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZWZhdWx0SW5zdGFuY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSWFtUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlZ2lzdHJhdGlvbkxpbWl0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb25zQ291bnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV4cGlyYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV4cGlyZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQXNzb2NpYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiQXNzb2NpYXRpb25WZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBc3NvY2lhdGlvbkV4ZWN1dGlvblRhcmdldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIixcbiAgICAgICAgICBcIkV4ZWN1dGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25FeGVjdXRpb25UYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGV0YWlsZWRTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0RXhlY3V0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPdXRwdXRTb3VyY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIk91dHB1dFNvdXJjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk91dHB1dFNvdXJjZVR5cGVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBc3NvY2lhdGlvbkV4ZWN1dGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCIsXG4gICAgICAgICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uRXhlY3V0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGV0YWlsZWRTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0RXhlY3V0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZUNvdW50QnlTdGF0dXNcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUF1dG9tYXRpb25FeGVjdXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvbk1ldGFkYXRhTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvblN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25FbmRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGVkQnlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMb2dGaWxlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3V0cHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY5XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTW9kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBhcmVudEF1dG9tYXRpb25FeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbnRTdGVwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkN1cnJlbnRBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJGYWlsdXJlTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldFBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc29sdmVkVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTWF4Q29uY3VycmVuY3lcIjoge30sXG4gICAgICAgICAgICAgICAgXCJNYXhFcnJvcnNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUF1dG9tYXRpb25TdGVwRXhlY3V0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmV2ZXJzZU9yZGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdGVwRXhlY3V0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzZwXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVBdmFpbGFibGVQYXRjaGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzc1XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVEb2N1bWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9jdW1lbnRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRG9jdW1lbnRQZXJtaXNzaW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJQZXJtaXNzaW9uVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGVybWlzc2lvblR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY2NvdW50SWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUVmZmVjdGl2ZUluc3RhbmNlQXNzb2NpYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29udGVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRWZmZWN0aXZlUGF0Y2hlc0ZvclBhdGNoQmFzZWxpbmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkVmZmVjdGl2ZVBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlBhdGNoXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNzVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQYXRjaFN0YXR1c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRGVwbG95bWVudFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJDb21wbGlhbmNlTGV2ZWxcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiQXBwcm92YWxEYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VBc3NvY2lhdGlvbnNTdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlQXNzb2NpYXRpb25TdGF0dXNJbmZvc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvblZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRXhlY3V0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXRhaWxlZFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN1bW1hcnlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFcnJvckNvZGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJPdXRwdXRVcmxcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlMzT3V0cHV0VXJsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJPdXRwdXRVcmxcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25OYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZUluZm9ybWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSW5mb3JtYXRpb25GaWx0ZXJMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwia2V5XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVNldFwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVNldFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhjXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhjXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJbmZvcm1hdGlvbkxpc3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQaW5nU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFBpbmdEYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBZ2VudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJJc0xhdGVzdFZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlBsYXRmb3JtVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBsYXRmb3JtTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlBsYXRmb3JtVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFjdGl2YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklhbVJvbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb25EYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJUEFkZHJlc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDb21wdXRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvblN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RBc3NvY2lhdGlvbkV4ZWN1dGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFN1Y2Nlc3NmdWxBc3NvY2lhdGlvbkV4ZWN1dGlvbkRhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25PdmVydmlld1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiRGV0YWlsZWRTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VBc3NvY2lhdGlvblN0YXR1c0FnZ3JlZ2F0ZWRDb3VudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZVBhdGNoU3RhdGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZVBhdGNoU3RhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4d1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VQYXRjaFN0YXRlc0ZvclBhdGNoR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiLFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlUGF0Y2hTdGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzh3XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVJbnN0YW5jZVBhdGNoZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhdGNoZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJUaXRsZVwiLFxuICAgICAgICAgICAgICAgIFwiS0JJZFwiLFxuICAgICAgICAgICAgICAgIFwiQ2xhc3NpZmljYXRpb25cIixcbiAgICAgICAgICAgICAgICBcIlNldmVyaXR5XCIsXG4gICAgICAgICAgICAgICAgXCJTdGF0ZVwiLFxuICAgICAgICAgICAgICAgIFwiSW5zdGFsbGVkVGltZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUaXRsZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktCSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDbGFzc2lmaWNhdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNldmVyaXR5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YWxsZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW52ZW50b3J5RGVsZXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlbGV0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnZlbnRvcnlEZWxldGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkRlbGV0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlbGV0aW9uU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMYXN0U3RhdHVzTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlbGV0aW9uU3VtbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQwXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFN0YXR1c1VwZGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNYWludGVuYW5jZVdpbmRvd0V4ZWN1dGlvblRhc2tJbnZvY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIixcbiAgICAgICAgICBcIlRhc2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tJZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5dlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvblRhc2tJbnZvY2F0aW9uSWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXNrRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnZvY2F0aW9uSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhc2tUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2E3XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk93bmVySW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4eVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIldpbmRvd1RhcmdldElkXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNYWludGVuYW5jZVdpbmRvd0V4ZWN1dGlvblRhc2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5dlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvblRhc2tJZGVudGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhc2tFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXNrQXJuXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFza1R5cGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1haW50ZW5hbmNlV2luZG93RXhlY3V0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhdHVzRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWFpbnRlbmFuY2VXaW5kb3dUYXJnZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5dlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiV2luZG93VGFyZ2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk93bmVySW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4eVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVNYWludGVuYW5jZVdpbmRvd1Rhc2tzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM5dlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhc2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIldpbmRvd1Rhc2tJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhc2tBcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXNrUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxvZ2dpbmdJbmZvXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXpcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWF4RXJyb3JzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZU1haW50ZW5hbmNlV2luZG93c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOXZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZGVudGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkN1dG9mZlwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVQYXJhbWV0ZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVXNlclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWxsb3dlZFBhdHRlcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBhdGNoQmFzZWxpbmVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYnRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBhdGNoR3JvdXBTdGF0ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXRjaEdyb3VwXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZXNXaXRoSW5zdGFsbGVkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VzV2l0aEluc3RhbGxlZE90aGVyUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VzV2l0aE1pc3NpbmdQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnN0YW5jZXNXaXRoRmFpbGVkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5zdGFuY2VzV2l0aE5vdEFwcGxpY2FibGVQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVBhdGNoR3JvdXBzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2eFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcHBpbmdzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJQYXRjaEdyb3VwXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQmFzZWxpbmVJZGVudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2J0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0QXV0b21hdGlvbkV4ZWN1dGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJEb2N1bWVudE5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFeGVjdXRpb25FbmRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25TdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgIFwiU3RlcEV4ZWN1dGlvbnNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNnBcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlN0ZXBFeGVjdXRpb25zVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY5XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJPdXRwdXRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzY5XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJGYWlsdXJlTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJNb2RlXCI6IHt9LFxuICAgICAgICAgICAgICBcIlBhcmVudEF1dG9tYXRpb25FeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJFeGVjdXRlZEJ5XCI6IHt9LFxuICAgICAgICAgICAgICBcIkN1cnJlbnRTdGVwTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDdXJyZW50QWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICBcIlRhcmdldFBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJSZXNvbHZlZFRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICAgICAgICBcIk1heEVycm9yc1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJUYXJnZXRcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q29tbWFuZEludm9jYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNvbW1hbmRJZFwiLFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21tYW5kSWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGx1Z2luTmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbW1hbmRJZFwiOiB7fSxcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiUGx1Z2luTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc3BvbnNlQ29kZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uU3RhcnREYXRlVGltZVwiOiB7fSxcbiAgICAgICAgICBcIkV4ZWN1dGlvbkVsYXBzZWRUaW1lXCI6IHt9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uRW5kRGF0ZVRpbWVcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNEZXRhaWxzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhbmRhcmRPdXRwdXRDb250ZW50XCI6IHt9LFxuICAgICAgICAgIFwiU3RhbmRhcmRPdXRwdXRVcmxcIjoge30sXG4gICAgICAgICAgXCJTdGFuZGFyZEVycm9yQ29udGVudFwiOiB7fSxcbiAgICAgICAgICBcIlN0YW5kYXJkRXJyb3JVcmxcIjoge30sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoT3V0cHV0Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREZWZhdWx0UGF0Y2hCYXNlbGluZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0RGVwbG95YWJsZVBhdGNoU25hcHNob3RGb3JJbnN0YW5jZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3REb3dubG9hZFVybFwiOiB7fSxcbiAgICAgICAgICBcIlByb2R1Y3RcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXREb2N1bWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRGb3JtYXRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiQ29udGVudFwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50Rm9ybWF0XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SW52ZW50b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFnZ3JlZ2F0b3JzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXN1bHRBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICBcIlNjaGVtYVZlcnNpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJTY2hlbWFWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ2FwdHVyZVRpbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50SGFzaFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNkYVwiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEludmVudG9yeVNjaGVtYVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFnZ3JlZ2F0b3JcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN1YlR5cGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNjaGVtYXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJUeXBlTmFtZVwiLFxuICAgICAgICAgICAgICAgIFwiQXR0cmlidXRlc1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiRGF0YVR5cGVcIlxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRhdGFUeXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGlzcGxheU5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNYWludGVuYW5jZVdpbmRvd1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU2NoZWR1bGVcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3V0b2ZmXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBbGxvd1VuYXNzb2NpYXRlZFRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuYWJsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1vZGlmaWVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRNYWludGVuYW5jZVdpbmRvd0V4ZWN1dGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldE1haW50ZW5hbmNlV2luZG93RXhlY3V0aW9uVGFza1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIixcbiAgICAgICAgICBcIlRhc2tJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXaW5kb3dFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiVGFza0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiVGFza0FyblwiOiB7fSxcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmlvcml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4Q29uY3VycmVuY3lcIjoge30sXG4gICAgICAgICAgXCJNYXhFcnJvcnNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgXCJTdGF0dXNEZXRhaWxzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TWFpbnRlbmFuY2VXaW5kb3dFeGVjdXRpb25UYXNrSW52b2NhdGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIixcbiAgICAgICAgICBcIlRhc2tJZFwiLFxuICAgICAgICAgIFwiSW52b2NhdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0V4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiVGFza0lkXCI6IHt9LFxuICAgICAgICAgIFwiSW52b2NhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93RXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJUYXNrRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJJbnZvY2F0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2E3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiU3RhdHVzRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICBcIlN0YXJ0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRUaW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk93bmVySW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIldpbmRvd1RhcmdldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0TWFpbnRlbmFuY2VXaW5kb3dUYXNrXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXaW5kb3dJZFwiLFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJXaW5kb3dUYXNrSWRcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhc2tBcm5cIjoge30sXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGFza1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhc2tJbnZvY2F0aW9uUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2UzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4RXJyb3JzXCI6IHt9LFxuICAgICAgICAgIFwiTG9nZ2luZ0luZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UGFyYW1ldGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJXaXRoRGVjcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQYXJhbWV0ZXJIaXN0b3J5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJXaXRoRGVjcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxhc3RNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdE1vZGlmaWVkVXNlclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBbGxvd2VkUGF0dGVyblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZlcnNpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBhcmFtZXRlcnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNGRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJXaXRoRGVjcnlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW52YWxpZFBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0ZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBhcmFtZXRlcnNCeVBhdGhcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhdGhcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGF0aFwiOiB7fSxcbiAgICAgICAgICBcIlJlY3Vyc2l2ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyYW1ldGVyRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2JjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV2l0aERlY3J5cHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNldFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBhdGNoQmFzZWxpbmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtXCI6IHt9LFxuICAgICAgICAgIFwiR2xvYmFsRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwcm92YWxSdWxlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwcm92ZWRQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBcHByb3ZlZFBhdGNoZXNDb21wbGlhbmNlTGV2ZWxcIjoge30sXG4gICAgICAgICAgXCJBcHByb3ZlZFBhdGNoZXNFbmFibGVOb25TZWN1cml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVqZWN0ZWRQYXRjaGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQYXRjaEdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNb2RpZmllZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRQYXRjaEJhc2VsaW5lRm9yUGF0Y2hHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQYXRjaEdyb3VwXCI6IHt9LFxuICAgICAgICAgIFwiT3BlcmF0aW5nU3lzdGVtXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiOiB7fSxcbiAgICAgICAgICBcIlBhdGNoR3JvdXBcIjoge30sXG4gICAgICAgICAgXCJPcGVyYXRpbmdTeXN0ZW1cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QXNzb2NpYXRpb25WZXJzaW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25WZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3V0cHV0TG9jYXRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkFzc29jaWF0aW9uTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RBc3NvY2lhdGlvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25GaWx0ZXJMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwia2V5XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0RXhlY3V0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJPdmVydmlld1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQXNzb2NpYXRpb25OYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdENvbW1hbmRJbnZvY2F0aW9uc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21tYW5kSWRcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2ZnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tbWFuZEludm9jYXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJDb21tYW5kSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5zdGFuY2VOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tbWVudFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvY3VtZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlcXVlc3RlZERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUcmFjZU91dHB1dFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YW5kYXJkT3V0cHV0VXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3RhbmRhcmRFcnJvclVybFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbW1hbmRQbHVnaW5zXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU3RhdHVzRGV0YWlsc1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlJlc3BvbnNlQ29kZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiUmVzcG9uc2VTdGFydERhdGVUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlJlc3BvbnNlRmluaXNoRGF0ZVRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiT3V0cHV0XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiU3RhbmRhcmRPdXRwdXRVcmxcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJTdGFuZGFyZEVycm9yVXJsXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIFwiT3V0cHV0UzNSZWdpb25cIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJPdXRwdXRTM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgXCJPdXRwdXRTM0tleVByZWZpeFwiOiB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlNlcnZpY2VSb2xlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZTVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJDbG91ZFdhdGNoT3V0cHV0Q29uZmlnXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY2VcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Q29tbWFuZHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ29tbWFuZElkXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbW1hbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmd1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDb21wbGlhbmNlSXRlbXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2czXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21wbGlhbmNlSXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGl0bGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnbFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkRldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnb1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RDb21wbGlhbmNlU3VtbWFyaWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbXBsaWFuY2VTdW1tYXJ5SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxpYW50U3VtbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2d0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTm9uQ29tcGxpYW50U3VtbWFyeVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2d3XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdERvY3VtZW50VmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJJc0RlZmF1bHRWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEb2N1bWVudEZvcm1hdFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3REb2N1bWVudHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9jdW1lbnRGaWx0ZXJMaXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwia2V5XCIsXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEb2N1bWVudElkZW50aWZpZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiT3duZXJcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQbGF0Zm9ybVR5cGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJEb2N1bWVudFR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTY2hlbWFWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRG9jdW1lbnRGb3JtYXRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXJnZXRUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0SW52ZW50b3J5RW50cmllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiLFxuICAgICAgICAgIFwiVHlwZU5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRmlsdGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTWF4UmVzdWx0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVHlwZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZW1hVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkNhcHR1cmVUaW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW50cmllc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmV4dFRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJlc291cmNlQ29tcGxpYW5jZVN1bW1hcmllc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWx0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZzNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOZXh0VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJNYXhSZXN1bHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUNvbXBsaWFuY2VTdW1tYXJ5SXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk92ZXJhbGxTZXZlcml0eVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkV4ZWN1dGlvblN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnbFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbXBsaWFudFN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNndFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk5vbkNvbXBsaWFudFN1bW1hcnlcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnd1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZXNvdXJjZURhdGFTeW5jXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk1heFJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlRGF0YVN5bmNJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3luY05hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTM0Rlc3RpbmF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2hcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0U3luY1RpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiTGFzdFN1Y2Nlc3NmdWxTeW5jVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJMYXN0U3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU3luY0NyZWF0ZWRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkxhc3RTeW5jU3RhdHVzTWVzc2FnZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiLFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFnTGlzdFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJNb2RpZnlEb2N1bWVudFBlcm1pc3Npb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlBlcm1pc3Npb25UeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQZXJtaXNzaW9uVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkFjY291bnRJZHNUb0FkZFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzdtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWNjb3VudElkc1RvUmVtb3ZlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTN21cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRDb21wbGlhbmNlSXRlbXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiLFxuICAgICAgICAgIFwiQ29tcGxpYW5jZVR5cGVcIixcbiAgICAgICAgICBcIkV4ZWN1dGlvblN1bW1hcnlcIixcbiAgICAgICAgICBcIkl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJDb21wbGlhbmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIkV4ZWN1dGlvblN1bW1hcnlcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNnbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkl0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiU2V2ZXJpdHlcIixcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRpdGxlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiU2V2ZXJpdHlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEZXRhaWxzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZ29cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJdGVtQ29udGVudEhhc2hcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJQdXRJbnZlbnRvcnlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgICBcIkl0ZW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlR5cGVOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJTY2hlbWFWZXJzaW9uXCIsXG4gICAgICAgICAgICAgICAgXCJDYXB0dXJlVGltZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUeXBlTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNjaGVtYVZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJDYXB0dXJlVGltZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkNvbnRlbnRIYXNoXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQ29udGVudFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2RhXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ29udGV4dFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICAgICAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXNzYWdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UGFyYW1ldGVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJWYWx1ZVwiLFxuICAgICAgICAgIFwiVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fSxcbiAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgXCJLZXlJZFwiOiB7fSxcbiAgICAgICAgICBcIk92ZXJ3cml0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxsb3dlZFBhdHRlcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlckRlZmF1bHRQYXRjaEJhc2VsaW5lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCYXNlbGluZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJQYXRjaEJhc2VsaW5lRm9yUGF0Y2hHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiLFxuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICAgIFwiUGF0Y2hHcm91cFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJhc2VsaW5lSWRcIjoge30sXG4gICAgICAgICAgXCJQYXRjaEdyb3VwXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVnaXN0ZXJUYXJnZXRXaXRoTWFpbnRlbmFuY2VXaW5kb3dcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0lkXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIixcbiAgICAgICAgICBcIlRhcmdldHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk93bmVySW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93VGFyZ2V0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZWdpc3RlclRhc2tXaXRoTWFpbnRlbmFuY2VXaW5kb3dcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0lkXCIsXG4gICAgICAgICAgXCJUYXJnZXRzXCIsXG4gICAgICAgICAgXCJUYXNrQXJuXCIsXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiLFxuICAgICAgICAgIFwiVGFza1R5cGVcIixcbiAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCIsXG4gICAgICAgICAgXCJNYXhFcnJvcnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhc2tBcm5cIjoge30sXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGFza1BhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhc2tJbnZvY2F0aW9uUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2UzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpb3JpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4RXJyb3JzXCI6IHt9LFxuICAgICAgICAgIFwiTG9nZ2luZ0luZm9cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhelwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge1xuICAgICAgICAgICAgXCJpZGVtcG90ZW5jeVRva2VuXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93VGFza0lkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VUeXBlXCIsXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCIsXG4gICAgICAgICAgXCJUYWdLZXlzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRBdXRvbWF0aW9uU2lnbmFsXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBdXRvbWF0aW9uRXhlY3V0aW9uSWRcIixcbiAgICAgICAgICBcIlNpZ25hbFR5cGVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICAgIFwiU2lnbmFsVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlBheWxvYWRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2OVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbmRDb21tYW5kXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb2N1bWVudE5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSW5zdGFuY2VJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudE5hbWVcIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudEhhc2hcIjoge30sXG4gICAgICAgICAgXCJEb2N1bWVudEhhc2hUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiVGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbW1lbnRcIjoge30sXG4gICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk91dHB1dFMzUmVnaW9uXCI6IHt9LFxuICAgICAgICAgIFwiT3V0cHV0UzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiT3V0cHV0UzNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiOiB7fSxcbiAgICAgICAgICBcIk1heEVycm9yc1wiOiB7fSxcbiAgICAgICAgICBcIlNlcnZpY2VSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZTVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbG91ZFdhdGNoT3V0cHV0Q29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21tYW5kXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZndcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdGFydEFzc29jaWF0aW9uc09uY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0YXJ0QXV0b21hdGlvbkV4ZWN1dGlvblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnROYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvY3VtZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2OVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiTW9kZVwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldFBhcmFtZXRlck5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICAgIFwiTWF4RXJyb3JzXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0b21hdGlvbkV4ZWN1dGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RvcEF1dG9tYXRpb25FeGVjdXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dG9tYXRpb25FeGVjdXRpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRvbWF0aW9uRXhlY3V0aW9uSWRcIjoge30sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQXNzb2NpYXRpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXNzb2NpYXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICAgIFwiT3V0cHV0TG9jYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFzc29jaWF0aW9uTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkFzc29jaWF0aW9uVmVyc2lvblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkFzc29jaWF0aW9uRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUFzc29jaWF0aW9uU3RhdHVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJBc3NvY2lhdGlvblN0YXR1c1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgICBcIkFzc29jaWF0aW9uU3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBc3NvY2lhdGlvbkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVEb2N1bWVudFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQ29udGVudFwiLFxuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb250ZW50XCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkRvY3VtZW50Rm9ybWF0XCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0VHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRvY3VtZW50RGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURvY3VtZW50RGVmYXVsdFZlcnNpb25cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiRGVmYXVsdFZlcnNpb25cIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTWFpbnRlbmFuY2VXaW5kb3dcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0lkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTY2hlZHVsZVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXRvZmZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFsbG93VW5hc3NvY2lhdGVkVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGFjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNjaGVkdWxlXCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1dG9mZlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQWxsb3dVbmFzc29jaWF0ZWRUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNYWludGVuYW5jZVdpbmRvd1RhcmdldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2luZG93SWRcIixcbiAgICAgICAgICBcIldpbmRvd1RhcmdldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFyZ2V0SWRcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk93bmVySW5mb3JtYXRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJoXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVwbGFjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJXaW5kb3dUYXJnZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3duZXJJbmZvcm1hdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzh5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNYWludGVuYW5jZVdpbmRvd1Rhc2tcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldpbmRvd0lkXCIsXG4gICAgICAgICAgXCJXaW5kb3dUYXNrSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2luZG93SWRcIjoge30sXG4gICAgICAgICAgXCJXaW5kb3dUYXNrSWRcIjoge30sXG4gICAgICAgICAgXCJUYXJnZXRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhc2tBcm5cIjoge30sXG4gICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlRhc2tQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXNrSW52b2NhdGlvblBhcmFtZXRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNlM1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlByaW9yaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhDb25jdXJyZW5jeVwiOiB7fSxcbiAgICAgICAgICBcIk1heEVycm9yc1wiOiB7fSxcbiAgICAgICAgICBcIkxvZ2dpbmdJbmZvXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTYXpcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlcGxhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldpbmRvd0lkXCI6IHt9LFxuICAgICAgICAgIFwiV2luZG93VGFza0lkXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXNrQXJuXCI6IHt9LFxuICAgICAgICAgIFwiU2VydmljZVJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJUYXNrUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVGFza0ludm9jYXRpb25QYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZTNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmlvcml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWF4Q29uY3VycmVuY3lcIjoge30sXG4gICAgICAgICAgXCJNYXhFcnJvcnNcIjoge30sXG4gICAgICAgICAgXCJMb2dnaW5nSW5mb1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2F6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVNYW5hZ2VkSW5zdGFuY2VSb2xlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJJbnN0YW5jZUlkXCIsXG4gICAgICAgICAgXCJJYW1Sb2xlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgICAgXCJJYW1Sb2xlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUGF0Y2hCYXNlbGluZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQmFzZWxpbmVJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkdsb2JhbEZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmFsUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwcm92ZWRQYXRjaGVzQ29tcGxpYW5jZUxldmVsXCI6IHt9LFxuICAgICAgICAgIFwiQXBwcm92ZWRQYXRjaGVzRW5hYmxlTm9uU2VjdXJpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlamVjdGVkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXBsYWNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJCYXNlbGluZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fSxcbiAgICAgICAgICBcIkdsb2JhbEZpbHRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmFsUnVsZXNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkFwcHJvdmVkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXBwcm92ZWRQYXRjaGVzQ29tcGxpYW5jZUxldmVsXCI6IHt9LFxuICAgICAgICAgIFwiQXBwcm92ZWRQYXRjaGVzRW5hYmxlTm9uU2VjdXJpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlamVjdGVkUGF0Y2hlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTW9kaWZpZWREYXRlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiU291cmNlc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIFwic2hhcGVzXCI6IHtcbiAgICBcIlM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCIsXG4gICAgICAgICAgXCJWYWx1ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNiXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlNxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiS2V5XCI6IHt9LFxuICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUzNMb2NhdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiT3V0cHV0UzNSZWdpb25cIjoge30sXG4gICAgICAgICAgICBcIk91dHB1dFMzQnVja2V0TmFtZVwiOiB7fSxcbiAgICAgICAgICAgIFwiT3V0cHV0UzNLZXlQcmVmaXhcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgIFwiQXNzb2NpYXRpb25WZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFzdFVwZGF0ZUFzc29jaWF0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICB9LFxuICAgICAgICBcIk92ZXJ2aWV3XCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzFlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJBc3NvY2lhdGlvbklkXCI6IHt9LFxuICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2NoZWR1bGVFeHByZXNzaW9uXCI6IHt9LFxuICAgICAgICBcIk91dHB1dExvY2F0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzEwXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0RXhlY3V0aW9uRGF0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMYXN0U3VjY2Vzc2Z1bEV4ZWN1dGlvbkRhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQXNzb2NpYXRpb25OYW1lXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkRhdGVcIixcbiAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgIFwiTWVzc2FnZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJEYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiTWVzc2FnZVwiOiB7fSxcbiAgICAgICAgXCJBZGRpdGlvbmFsSW5mb1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJEZXRhaWxlZFN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJBc3NvY2lhdGlvblN0YXR1c0FnZ3JlZ2F0ZWRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiTmFtZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkluc3RhbmNlSWRcIjoge30sXG4gICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiVGFyZ2V0c1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlN1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTY2hlZHVsZUV4cHJlc3Npb25cIjoge30sXG4gICAgICAgIFwiT3V0cHV0TG9jYXRpb25cIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMTBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkFzc29jaWF0aW9uTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNoYTFcIjoge30sXG4gICAgICAgIFwiSGFzaFwiOiB7fSxcbiAgICAgICAgXCJIYXNoVHlwZVwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk93bmVyXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJEb2N1bWVudFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiRGVmYXVsdFZhbHVlXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlBsYXRmb3JtVHlwZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRvY3VtZW50VHlwZVwiOiB7fSxcbiAgICAgICAgXCJTY2hlbWFWZXJzaW9uXCI6IHt9LFxuICAgICAgICBcIkxhdGVzdFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiRGVmYXVsdFZlcnNpb25cIjoge30sXG4gICAgICAgIFwiRG9jdW1lbnRGb3JtYXRcIjoge30sXG4gICAgICAgIFwiVGFyZ2V0VHlwZVwiOiB7fSxcbiAgICAgICAgXCJUYWdzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMmhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMyc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlBhdGNoRmlsdGVyc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQYXRjaEZpbHRlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIktleVwiLFxuICAgICAgICAgICAgICBcIlZhbHVlc1wiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJQYXRjaFJ1bGVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBhdGNoUnVsZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIlBhdGNoRmlsdGVyR3JvdXBcIixcbiAgICAgICAgICAgICAgXCJBcHByb3ZlQWZ0ZXJEYXlzXCJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlBhdGNoRmlsdGVyR3JvdXBcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkNvbXBsaWFuY2VMZXZlbFwiOiB7fSxcbiAgICAgICAgICAgICAgXCJBcHByb3ZlQWZ0ZXJEYXlzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJFbmFibGVOb25TZWN1cml0eVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzM0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMzN1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIlByb2R1Y3RzXCIsXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQcm9kdWN0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDb25maWd1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTM2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJCdWNrZXROYW1lXCIsXG4gICAgICAgIFwiU3luY0Zvcm1hdFwiLFxuICAgICAgICBcIlJlZ2lvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICBcIlByZWZpeFwiOiB7fSxcbiAgICAgICAgXCJTeW5jRm9ybWF0XCI6IHt9LFxuICAgICAgICBcIlJlZ2lvblwiOiB7fSxcbiAgICAgICAgXCJBV1NLTVNLZXlBUk5cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzQwXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUb3RhbENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZW1haW5pbmdDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3VtbWFyeUl0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlZlcnNpb25cIjoge30sXG4gICAgICAgICAgICAgIFwiQ291bnRcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIlJlbWFpbmluZ0NvdW50XCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNGRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzY5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNmVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlBhcmFtZXRlclZhbHVlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVHJ1bmNhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0ZXBOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9uRmFpbHVyZVwiOiB7fSxcbiAgICAgICAgICBcIk1heEF0dGVtcHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGVjdXRpb25TdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhlY3V0aW9uRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGVwU3RhdHVzXCI6IHt9LFxuICAgICAgICAgIFwiUmVzcG9uc2VDb2RlXCI6IHt9LFxuICAgICAgICAgIFwiSW5wdXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk91dHB1dHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2OVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc3BvbnNlXCI6IHt9LFxuICAgICAgICAgIFwiRmFpbHVyZU1lc3NhZ2VcIjoge30sXG4gICAgICAgICAgXCJGYWlsdXJlRGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiRmFpbHVyZVN0YWdlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkZhaWx1cmVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICBcIkRldGFpbHNcIjoge1xuICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjlcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlN0ZXBFeGVjdXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIk92ZXJyaWRkZW5QYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNjlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNnhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNzVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlJlbGVhc2VEYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRpdGxlXCI6IHt9LFxuICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkNvbnRlbnRVcmxcIjoge30sXG4gICAgICAgIFwiVmVuZG9yXCI6IHt9LFxuICAgICAgICBcIlByb2R1Y3RGYW1pbHlcIjoge30sXG4gICAgICAgIFwiUHJvZHVjdFwiOiB7fSxcbiAgICAgICAgXCJDbGFzc2lmaWNhdGlvblwiOiB7fSxcbiAgICAgICAgXCJNc3JjU2V2ZXJpdHlcIjoge30sXG4gICAgICAgIFwiS2JOdW1iZXJcIjoge30sXG4gICAgICAgIFwiTXNyY051bWJlclwiOiB7fSxcbiAgICAgICAgXCJMYW5ndWFnZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTN21cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzhjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlM4d1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkluc3RhbmNlSWRcIixcbiAgICAgICAgXCJQYXRjaEdyb3VwXCIsXG4gICAgICAgIFwiQmFzZWxpbmVJZFwiLFxuICAgICAgICBcIk9wZXJhdGlvblN0YXJ0VGltZVwiLFxuICAgICAgICBcIk9wZXJhdGlvbkVuZFRpbWVcIixcbiAgICAgICAgXCJPcGVyYXRpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSW5zdGFuY2VJZFwiOiB7fSxcbiAgICAgICAgXCJQYXRjaEdyb3VwXCI6IHt9LFxuICAgICAgICBcIkJhc2VsaW5lSWRcIjoge30sXG4gICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgXCJPd25lckluZm9ybWF0aW9uXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiUzh5XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJJbnN0YWxsZWRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5zdGFsbGVkT3RoZXJDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTWlzc2luZ0NvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJGYWlsZWRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTm90QXBwbGljYWJsZUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcGVyYXRpb25TdGFydFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3BlcmF0aW9uRW5kVGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJPcGVyYXRpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzh5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTOXZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlNhdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgIFwia2V5XCI6IHt9LFxuICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVmFsdWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICB9LFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTYXpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJTM0J1Y2tldE5hbWVcIixcbiAgICAgICAgXCJTM1JlZ2lvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJTM0J1Y2tldE5hbWVcIjoge30sXG4gICAgICAgIFwiUzNLZXlQcmVmaXhcIjoge30sXG4gICAgICAgIFwiUzNSZWdpb25cIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2JjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiS2V5XCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIk9wdGlvblwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTYnRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJhc2VsaW5lSWRcIjoge30sXG4gICAgICAgIFwiQmFzZWxpbmVOYW1lXCI6IHt9LFxuICAgICAgICBcIk9wZXJhdGluZ1N5c3RlbVwiOiB7fSxcbiAgICAgICAgXCJCYXNlbGluZURlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICBcIkRlZmF1bHRCYXNlbGluZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2NlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDbG91ZFdhdGNoTG9nR3JvdXBOYW1lXCI6IHt9LFxuICAgICAgICBcIkNsb3VkV2F0Y2hPdXRwdXRFbmFibGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTY3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlZhbHVlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJLZXlcIjoge30sXG4gICAgICAgICAgXCJWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNjd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRXhwcmVzc2lvblwiOiB7fSxcbiAgICAgICAgICBcIkFnZ3JlZ2F0b3JzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY3dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZGFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgIFwidmFsdWVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2UzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSdW5Db21tYW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICAgICAgXCJEb2N1bWVudEhhc2hcIjoge30sXG4gICAgICAgICAgICBcIkRvY3VtZW50SGFzaFR5cGVcIjoge30sXG4gICAgICAgICAgICBcIk5vdGlmaWNhdGlvbkNvbmZpZ1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTZTVcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiT3V0cHV0UzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICAgICAgXCJPdXRwdXRTM0tleVByZWZpeFwiOiB7fSxcbiAgICAgICAgICAgIFwiUGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTcVwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJTZXJ2aWNlUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICAgIFwiVGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQXV0b21hdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uXCI6IHt9LFxuICAgICAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM2OVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIlN0ZXBGdW5jdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIklucHV0XCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTGFtYmRhXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgXCJDbGllbnRDb250ZXh0XCI6IHt9LFxuICAgICAgICAgICAgXCJRdWFsaWZpZXJcIjoge30sXG4gICAgICAgICAgICBcIlBheWxvYWRcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCIsXG4gICAgICAgICAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2U1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJOb3RpZmljYXRpb25Bcm5cIjoge30sXG4gICAgICAgIFwiTm90aWZpY2F0aW9uRXZlbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJOb3RpZmljYXRpb25UeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNlbFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIlZhbHVlXCI6IHt9LFxuICAgICAgICBcIlZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNldFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTZWxcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZmdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJrZXlcIixcbiAgICAgICAgICBcInZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2Z3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb21tYW5kSWRcIjoge30sXG4gICAgICAgIFwiRG9jdW1lbnROYW1lXCI6IHt9LFxuICAgICAgICBcIkRvY3VtZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgXCJDb21tZW50XCI6IHt9LFxuICAgICAgICBcIkV4cGlyZXNBZnRlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJQYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3FcIlxuICAgICAgICB9LFxuICAgICAgICBcIkluc3RhbmNlSWRzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIlRhcmdldHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTdVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVxdWVzdGVkRGF0ZVRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU3RhdHVzXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c0RldGFpbHNcIjoge30sXG4gICAgICAgIFwiT3V0cHV0UzNSZWdpb25cIjoge30sXG4gICAgICAgIFwiT3V0cHV0UzNCdWNrZXROYW1lXCI6IHt9LFxuICAgICAgICBcIk91dHB1dFMzS2V5UHJlZml4XCI6IHt9LFxuICAgICAgICBcIk1heENvbmN1cnJlbmN5XCI6IHt9LFxuICAgICAgICBcIk1heEVycm9yc1wiOiB7fSxcbiAgICAgICAgXCJUYXJnZXRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcGxldGVkQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVycm9yQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkRlbGl2ZXJ5VGltZWRPdXRDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2VydmljZVJvbGVcIjoge30sXG4gICAgICAgIFwiTm90aWZpY2F0aW9uQ29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2U1XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDbG91ZFdhdGNoT3V0cHV0Q29uZmlnXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU2NlXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZzNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2dsXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRXhlY3V0aW9uVGltZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJFeGVjdXRpb25UaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkV4ZWN1dGlvbklkXCI6IHt9LFxuICAgICAgICBcIkV4ZWN1dGlvblR5cGVcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2dvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm1hcFwiLFxuICAgICAgXCJrZXlcIjoge30sXG4gICAgICBcInZhbHVlXCI6IHt9XG4gICAgfSxcbiAgICBcIlNndFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQ29tcGxpYW50Q291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNldmVyaXR5U3VtbWFyeVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlNndlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2d2XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDcml0aWNhbENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJIaWdoQ291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1lZGl1bUNvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJMb3dDb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiSW5mb3JtYXRpb25hbENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJVbnNwZWNpZmllZENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZ3dcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5vbkNvbXBsaWFudENvdW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTZXZlcml0eVN1bW1hcnlcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTZ3ZcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInBhZ2luYXRpb25cIjoge1xuICAgIFwiRGVzY3JpYmVBY3RpdmF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBY3RpdmF0aW9uTGlzdFwiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlSW5zdGFuY2VJbmZvcm1hdGlvblwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJJbnN0YW5jZUluZm9ybWF0aW9uTGlzdFwiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlUGFyYW1ldGVyc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiR2V0UGFyYW1ldGVySGlzdG9yeVwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiR2V0UGFyYW1ldGVyc0J5UGF0aFwiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCJcbiAgICB9LFxuICAgIFwiTGlzdEFzc29jaWF0aW9uc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJBc3NvY2lhdGlvbnNcIlxuICAgIH0sXG4gICAgXCJMaXN0Q29tbWFuZEludm9jYXRpb25zXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTWF4UmVzdWx0c1wiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJOZXh0VG9rZW5cIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNvbW1hbmRJbnZvY2F0aW9uc1wiXG4gICAgfSxcbiAgICBcIkxpc3RDb21tYW5kc1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIk1heFJlc3VsdHNcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTmV4dFRva2VuXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJDb21tYW5kc1wiXG4gICAgfSxcbiAgICBcIkxpc3REb2N1bWVudHNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJNYXhSZXN1bHRzXCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk5leHRUb2tlblwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiRG9jdW1lbnRJZGVudGlmaWVyc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMy0wNi0zMFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJzdG9yYWdlZ2F0ZXdheVwiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwianNvblwiLFxuICAgIFwic2VydmljZUZ1bGxOYW1lXCI6IFwiQVdTIFN0b3JhZ2UgR2F0ZXdheVwiLFxuICAgIFwic2VydmljZUlkXCI6IFwiU3RvcmFnZSBHYXRld2F5XCIsXG4gICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjRcIixcbiAgICBcInRhcmdldFByZWZpeFwiOiBcIlN0b3JhZ2VHYXRld2F5XzIwMTMwNjMwXCIsXG4gICAgXCJ1aWRcIjogXCJzdG9yYWdlZ2F0ZXdheS0yMDEzLTA2LTMwXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFjdGl2YXRlR2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQWN0aXZhdGlvbktleVwiLFxuICAgICAgICAgIFwiR2F0ZXdheU5hbWVcIixcbiAgICAgICAgICBcIkdhdGV3YXlUaW1lem9uZVwiLFxuICAgICAgICAgIFwiR2F0ZXdheVJlZ2lvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3RpdmF0aW9uS2V5XCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheU5hbWVcIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5VGltZXpvbmVcIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5UmVnaW9uXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheVR5cGVcIjoge30sXG4gICAgICAgICAgXCJUYXBlRHJpdmVUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiTWVkaXVtQ2hhbmdlclR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWRkQ2FjaGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIkRpc2tJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRpc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZFRhZ3NUb1Jlc291cmNlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUFSTlwiLFxuICAgICAgICAgIFwiVGFnc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlRhZ3NcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRVcGxvYWRCdWZmZXJcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIkRpc2tJZHNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRpc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkFkZFdvcmtpbmdTdG9yYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJEaXNrSWRzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJEaXNrSWRzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTY1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxBcmNoaXZhbFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiVGFwZUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDYW5jZWxSZXRyaWV2YWxcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIlRhcGVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlQ2FjaGVkaVNDU0lWb2x1bWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIlZvbHVtZVNpemVJbkJ5dGVzXCIsXG4gICAgICAgICAgXCJUYXJnZXROYW1lXCIsXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIixcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJWb2x1bWVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlRhcmdldE5hbWVcIjoge30sXG4gICAgICAgICAgXCJTb3VyY2VWb2x1bWVBUk5cIjoge30sXG4gICAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgIFwiVGFyZ2V0QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlTkZTRmlsZVNoYXJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiLFxuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiUm9sZVwiLFxuICAgICAgICAgIFwiTG9jYXRpb25BUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJORlNGaWxlU2hhcmVEZWZhdWx0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5XCI6IHt9LFxuICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICBcIkxvY2F0aW9uQVJOXCI6IHt9LFxuICAgICAgICAgIFwiRGVmYXVsdFN0b3JhZ2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIk9iamVjdEFDTFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudExpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNxdWFzaFwiOiB7fSxcbiAgICAgICAgICBcIlJlYWRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHdWVzc01JTUVUeXBlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyUGF5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU01CRmlsZVNoYXJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiLFxuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiUm9sZVwiLFxuICAgICAgICAgIFwiTG9jYXRpb25BUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2xpZW50VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiS01TRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLTVNLZXlcIjoge30sXG4gICAgICAgICAgXCJSb2xlXCI6IHt9LFxuICAgICAgICAgIFwiTG9jYXRpb25BUk5cIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0U3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiT2JqZWN0QUNMXCI6IHt9LFxuICAgICAgICAgIFwiUmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkd1ZXNzTUlNRVR5cGVFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0ZXJQYXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZFVzZXJMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZhbGlkVXNlckxpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU25hcHNob3RcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiLFxuICAgICAgICAgIFwiU25hcHNob3REZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVBUk5cIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdERlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVNuYXBzaG90RnJvbVZvbHVtZVJlY292ZXJ5UG9pbnRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiLFxuICAgICAgICAgIFwiU25hcHNob3REZXNjcmlwdGlvblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVBUk5cIjoge30sXG4gICAgICAgICAgXCJTbmFwc2hvdERlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZVJlY292ZXJ5UG9pbnRUaW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3RvcmVkaVNDU0lWb2x1bWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIkRpc2tJZFwiLFxuICAgICAgICAgIFwiUHJlc2VydmVFeGlzdGluZ0RhdGFcIixcbiAgICAgICAgICBcIlRhcmdldE5hbWVcIixcbiAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiRGlza0lkXCI6IHt9LFxuICAgICAgICAgIFwiU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICBcIlByZXNlcnZlRXhpc3RpbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXJnZXROYW1lXCI6IHt9LFxuICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgIFwiVm9sdW1lU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcmdldEFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRhcGVXaXRoQmFyY29kZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiVGFwZVNpemVJbkJ5dGVzXCIsXG4gICAgICAgICAgXCJUYXBlQmFyY29kZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVGFwZVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUYXBlQmFyY29kZVwiOiB7fSxcbiAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS01TS2V5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVRhcGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJUYXBlU2l6ZUluQnl0ZXNcIixcbiAgICAgICAgICBcIkNsaWVudFRva2VuXCIsXG4gICAgICAgICAgXCJOdW1UYXBlc1RvQ3JlYXRlXCIsXG4gICAgICAgICAgXCJUYXBlQmFyY29kZVByZWZpeFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVGFwZVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDbGllbnRUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIk51bVRhcGVzVG9DcmVhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRhcGVCYXJjb2RlUHJlZml4XCI6IHt9LFxuICAgICAgICAgIFwiS01TRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLTVNLZXlcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQmFuZHdpZHRoUmF0ZUxpbWl0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJCYW5kd2lkdGhUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJCYW5kd2lkdGhUeXBlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUNoYXBDcmVkZW50aWFsc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFyZ2V0QVJOXCIsXG4gICAgICAgICAgXCJJbml0aWF0b3JOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcmdldEFSTlwiOiB7fSxcbiAgICAgICAgICBcIkluaXRpYXRvck5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRBUk5cIjoge30sXG4gICAgICAgICAgXCJJbml0aWF0b3JOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRmlsZVNoYXJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiRm9yY2VEZWxldGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUdhdGV3YXlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTbmFwc2hvdFNjaGVkdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlVGFwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiVGFwZUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVUYXBlQXJjaGl2ZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFwZUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZVZvbHVtZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQmFuZHdpZHRoUmF0ZUxpbWl0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiQXZlcmFnZVVwbG9hZFJhdGVMaW1pdEluQml0c1BlclNlY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXZlcmFnZURvd25sb2FkUmF0ZUxpbWl0SW5CaXRzUGVyU2VjXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNhY2hlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiRGlza0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDYWNoZUFsbG9jYXRlZEluQnl0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlVXNlZFBlcmNlbnRhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVEaXJ0eVBlcmNlbnRhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2FjaGVIaXRQZXJjZW50YWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImRvdWJsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNhY2hlTWlzc1BlcmNlbnRhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVDYWNoZWRpU0NTSVZvbHVtZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUFSTnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2FjaGVkaVNDU0lWb2x1bWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJWb2x1bWVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lUHJvZ3Jlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiZG91YmxlXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiU291cmNlU25hcHNob3RJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZWlTQ1NJQXR0cmlidXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ3JlYXRlZERhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lVXNlZEluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIktNU0tleVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQ2hhcENyZWRlbnRpYWxzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJUYXJnZXRBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhcENyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUYXJnZXRBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZWNyZXRUb0F1dGhlbnRpY2F0ZUluaXRpYXRvclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkluaXRpYXRvck5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTZWNyZXRUb0F1dGhlbnRpY2F0ZVRhcmdldFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlR2F0ZXdheUluZm9ybWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheUlkXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheU5hbWVcIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5VGltZXpvbmVcIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5U3RhdGVcIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5TmV0d29ya0ludGVyZmFjZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklwdjRBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTWFjQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIklwdjZBZGRyZXNzXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiR2F0ZXdheVR5cGVcIjoge30sXG4gICAgICAgICAgXCJOZXh0VXBkYXRlQXZhaWxhYmlsaXR5RGF0ZVwiOiB7fSxcbiAgICAgICAgICBcIkxhc3RTb2Z0d2FyZVVwZGF0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTWFpbnRlbmFuY2VTdGFydFRpbWVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJIb3VyT2ZEYXlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbnV0ZU9mSG91clwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF5T2ZXZWVrXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaW1lem9uZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlTkZTRmlsZVNoYXJlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOTGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJORlNGaWxlU2hhcmVJbmZvTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiTkZTRmlsZVNoYXJlRGVmYXVsdHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxN1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmlsZVNoYXJlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIktNU0VuY3J5cHRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiS01TS2V5XCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJvbGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJMb2NhdGlvbkFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRlZmF1bHRTdG9yYWdlQ2xhc3NcIjoge30sXG4gICAgICAgICAgICAgICAgXCJPYmplY3RBQ0xcIjoge30sXG4gICAgICAgICAgICAgICAgXCJDbGllbnRMaXN0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJTcXVhc2hcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSZWFkT25seVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiR3Vlc3NNSU1FVHlwZUVuYWJsZWRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlJlcXVlc3RlclBheXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU01CRmlsZVNoYXJlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOTGlzdFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5MaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTTUJGaWxlU2hhcmVJbmZvTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmlsZVNoYXJlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJGaWxlU2hhcmVTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiS01TRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJLTVNLZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQYXRoXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkxvY2F0aW9uQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGVmYXVsdFN0b3JhZ2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk9iamVjdEFDTFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJlYWRPbmx5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJHdWVzc01JTUVUeXBlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVxdWVzdGVyUGF5c1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVmFsaWRVc2VyTGlzdFwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFrXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiSW52YWxpZFVzZXJMaXN0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJBdXRoZW50aWNhdGlvblwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU01CU2V0dGluZ3NcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJEb21haW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU01CR3Vlc3RQYXNzd29yZFNldFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVTbmFwc2hvdFNjaGVkdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJWb2x1bWVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjdXJyZW5jZUluSG91cnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9LFxuICAgICAgICAgIFwiVGltZXpvbmVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVN0b3JlZGlTQ1NJVm9sdW1lc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lQVJOc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWb2x1bWVBUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMndcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdG9yZWRpU0NTSVZvbHVtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVNpemVJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVEaXNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTb3VyY2VTbmFwc2hvdElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUHJlc2VydmVkRXhpc3RpbmdEYXRhXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVpU0NTSUF0dHJpYnV0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlZvbHVtZVVzZWRJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhcGVBcmNoaXZlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzI1XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVBcmNoaXZlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcGVCYXJjb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFwZUNyZWF0ZWREYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcGVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQ29tcGxldGlvblRpbWVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmV0cmlldmVkVG9cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXBlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFwZVVzZWRJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJLTVNLZXlcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhcGVSZWNvdmVyeVBvaW50c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJUYXBlUmVjb3ZlcnlQb2ludEluZm9zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUYXBlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGFwZVJlY292ZXJ5UG9pbnRUaW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcGVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFwZVN0YXR1c1wiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFwZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlRhcGVBUk5zXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRhcGVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXBlQmFyY29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcGVDcmVhdGVkRGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXBlU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIlRhcGVTdGF0dXNcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWVExEZXZpY2VcIjoge30sXG4gICAgICAgICAgICAgICAgXCJQcm9ncmVzc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJkb3VibGVcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUYXBlVXNlZEluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIktNU0tleVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVXBsb2FkQnVmZmVyXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiRGlza0lkc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2NcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVcGxvYWRCdWZmZXJVc2VkSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBsb2FkQnVmZmVyQWxsb2NhdGVkSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWVExEZXZpY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJWVExEZXZpY2VBUk5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVlRMRGV2aWNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiVlRMRGV2aWNlQVJOXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVlRMRGV2aWNlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZUTERldmljZVZlbmRvclwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlZUTERldmljZVByb2R1Y3RJZGVudGlmaWVyXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGV2aWNlaVNDU0lBdHRyaWJ1dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJUYXJnZXRBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiTmV0d29ya0ludGVyZmFjZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VQb3J0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJDaGFwRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVXb3JraW5nU3RvcmFnZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRpc2tJZHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV29ya2luZ1N0b3JhZ2VVc2VkSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiV29ya2luZ1N0b3JhZ2VBbGxvY2F0ZWRJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEaXNhYmxlR2F0ZXdheVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkpvaW5Eb21haW5cIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIixcbiAgICAgICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgICAgICBcIlVzZXJOYW1lXCIsXG4gICAgICAgICAgXCJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiRG9tYWluTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFzc3dvcmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0RmlsZVNoYXJlc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJGaWxlU2hhcmVJbmZvTGlzdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiRmlsZVNoYXJlVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkZpbGVTaGFyZUlkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRmlsZVNoYXJlU3RhdHVzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RHYXRld2F5c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkdhdGV3YXlJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJHYXRld2F5VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdhdGV3YXlPcGVyYXRpb25hbFN0YXRlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR2F0ZXdheU5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0TG9jYWxEaXNrc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRpc2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJEaXNrSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJEaXNrUGF0aFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRpc2tOb2RlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGlza1N0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkRpc2tTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiRGlza0FsbG9jYXRpb25UeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiRGlza0FsbG9jYXRpb25SZXNvdXJjZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RUYWdzRm9yUmVzb3VyY2VcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiVGFnc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0VGFwZXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyNVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlSW5mb3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlRhcGVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYXBlQmFyY29kZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlRhcGVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVGFwZVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Vm9sdW1lSW5pdGlhdG9yc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkluaXRpYXRvcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFZvbHVtZVJlY292ZXJ5UG9pbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9LFxuICAgICAgICAgIFwiVm9sdW1lUmVjb3ZlcnlQb2ludEluZm9zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJWb2x1bWVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lVXNhZ2VJbkJ5dGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVSZWNvdmVyeVBvaW50VGltZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RWb2x1bWVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlZvbHVtZUluZm9zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJWb2x1bWVBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJHYXRld2F5SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJWb2x1bWVUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVm9sdW1lU2l6ZUluQnl0ZXNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIk5vdGlmeVdoZW5VcGxvYWRlZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIk5vdGlmaWNhdGlvbklkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVmcmVzaENhY2hlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVtb3ZlVGFnc0Zyb21SZXNvdXJjZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBUk5cIixcbiAgICAgICAgICBcIlRhZ0tleXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBUk5cIjoge30sXG4gICAgICAgICAgXCJUYWdLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmVzZXRDYWNoZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJldHJpZXZlVGFwZUFyY2hpdmVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcGVBUk5cIixcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFwZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUmV0cmlldmVUYXBlUmVjb3ZlcnlQb2ludFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVGFwZUFSTlwiLFxuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXBlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlRhcGVBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXRMb2NhbENvbnNvbGVQYXNzd29yZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiTG9jYWxDb25zb2xlUGFzc3dvcmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkxvY2FsQ29uc29sZVBhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2V0U01CR3Vlc3RQYXNzd29yZFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiLFxuICAgICAgICAgIFwiUGFzc3dvcmRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fSxcbiAgICAgICAgICBcIlBhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2h1dGRvd25HYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3RhcnRHYXRld2F5XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlQmFuZHdpZHRoUmF0ZUxpbWl0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJBdmVyYWdlVXBsb2FkUmF0ZUxpbWl0SW5CaXRzUGVyU2VjXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdmVyYWdlRG93bmxvYWRSYXRlTGltaXRJbkJpdHNQZXJTZWNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVDaGFwQ3JlZGVudGlhbHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlRhcmdldEFSTlwiLFxuICAgICAgICAgIFwiU2VjcmV0VG9BdXRoZW50aWNhdGVJbml0aWF0b3JcIixcbiAgICAgICAgICBcIkluaXRpYXRvck5hbWVcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVGFyZ2V0QVJOXCI6IHt9LFxuICAgICAgICAgIFwiU2VjcmV0VG9BdXRoZW50aWNhdGVJbml0aWF0b3JcIjoge30sXG4gICAgICAgICAgXCJJbml0aWF0b3JOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU2VjcmV0VG9BdXRoZW50aWNhdGVUYXJnZXRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYXJnZXRBUk5cIjoge30sXG4gICAgICAgICAgXCJJbml0aWF0b3JOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlR2F0ZXdheUluZm9ybWF0aW9uXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5TmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkdhdGV3YXlUaW1lem9uZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJHYXRld2F5TmFtZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUdhdGV3YXlTb2Z0d2FyZU5vd1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2F0ZXdheUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZU1haW50ZW5hbmNlU3RhcnRUaW1lXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHYXRld2F5QVJOXCIsXG4gICAgICAgICAgXCJIb3VyT2ZEYXlcIixcbiAgICAgICAgICBcIk1pbnV0ZU9mSG91clwiLFxuICAgICAgICAgIFwiRGF5T2ZXZWVrXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdhdGV3YXlBUk5cIjoge30sXG4gICAgICAgICAgXCJIb3VyT2ZEYXlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1pbnV0ZU9mSG91clwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGF5T2ZXZWVrXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHYXRld2F5QVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlTkZTRmlsZVNoYXJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiS01TRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLTVNLZXlcIjoge30sXG4gICAgICAgICAgXCJORlNGaWxlU2hhcmVEZWZhdWx0c1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE3XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVmYXVsdFN0b3JhZ2VDbGFzc1wiOiB7fSxcbiAgICAgICAgICBcIk9iamVjdEFDTFwiOiB7fSxcbiAgICAgICAgICBcIkNsaWVudExpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNxdWFzaFwiOiB7fSxcbiAgICAgICAgICBcIlJlYWRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHdWVzc01JTUVUeXBlRW5hYmxlZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVxdWVzdGVyUGF5c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU01CRmlsZVNoYXJlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGaWxlU2hhcmVBUk5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRmlsZVNoYXJlQVJOXCI6IHt9LFxuICAgICAgICAgIFwiS01TRW5jcnlwdGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLTVNLZXlcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0U3RvcmFnZUNsYXNzXCI6IHt9LFxuICAgICAgICAgIFwiT2JqZWN0QUNMXCI6IHt9LFxuICAgICAgICAgIFwiUmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkd1ZXNzTUlNRVR5cGVFbmFibGVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSZXF1ZXN0ZXJQYXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWYWxpZFVzZXJMaXN0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbnZhbGlkVXNlckxpc3RcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxa1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZpbGVTaGFyZUFSTlwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVNuYXBzaG90U2NoZWR1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlZvbHVtZUFSTlwiLFxuICAgICAgICAgIFwiU3RhcnRBdFwiLFxuICAgICAgICAgIFwiUmVjdXJyZW5jZUluSG91cnNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9LFxuICAgICAgICAgIFwiU3RhcnRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVjdXJyZW5jZUluSG91cnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRlc2NyaXB0aW9uXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVm9sdW1lQVJOXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlVlRMRGV2aWNlVHlwZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVlRMRGV2aWNlQVJOXCIsXG4gICAgICAgICAgXCJEZXZpY2VUeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlZUTERldmljZUFSTlwiOiB7fSxcbiAgICAgICAgICBcIkRldmljZVR5cGVcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJWVExEZXZpY2VBUk5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiU2hcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJLZXlcIixcbiAgICAgICAgICBcIlZhbHVlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIktleVwiOiB7fSxcbiAgICAgICAgICBcIlZhbHVlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzE3XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGaWxlTW9kZVwiOiB7fSxcbiAgICAgICAgXCJEaXJlY3RvcnlNb2RlXCI6IHt9LFxuICAgICAgICBcIkdyb3VwSWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIk93bmVySWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMWtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge31cbiAgICB9LFxuICAgIFwiUzI1XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgfSxcbiAgICBcIlMyd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMzRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlRhcmdldEFSTlwiOiB7fSxcbiAgICAgICAgXCJOZXR3b3JrSW50ZXJmYWNlSWRcIjoge30sXG4gICAgICAgIFwiTmV0d29ya0ludGVyZmFjZVBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIkx1bk51bWJlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ2hhcEVuYWJsZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJwYWdpbmF0aW9uXCI6IHtcbiAgICBcIkRlc2NyaWJlQ2FjaGVkaVNDU0lWb2x1bWVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkNhY2hlZGlTQ1NJVm9sdW1lc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlU3RvcmVkaVNDU0lWb2x1bWVzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlN0b3JlZGlTQ1NJVm9sdW1lc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFwZUFyY2hpdmVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJUYXBlQXJjaGl2ZXNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZVRhcGVSZWNvdmVyeVBvaW50c1wiOiB7XG4gICAgICBcImlucHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcImxpbWl0X2tleVwiOiBcIkxpbWl0XCIsXG4gICAgICBcIm91dHB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJyZXN1bHRfa2V5XCI6IFwiVGFwZVJlY292ZXJ5UG9pbnRJbmZvc1wiXG4gICAgfSxcbiAgICBcIkRlc2NyaWJlVGFwZXNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlRhcGVzXCJcbiAgICB9LFxuICAgIFwiRGVzY3JpYmVWVExEZXZpY2VzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWVExEZXZpY2VzXCJcbiAgICB9LFxuICAgIFwiTGlzdEdhdGV3YXlzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJHYXRld2F5c1wiXG4gICAgfSxcbiAgICBcIkxpc3RMb2NhbERpc2tzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRpc2tzXCJcbiAgICB9LFxuICAgIFwiTGlzdFZvbHVtZVJlY292ZXJ5UG9pbnRzXCI6IHtcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIlZvbHVtZVJlY292ZXJ5UG9pbnRJbmZvc1wiXG4gICAgfSxcbiAgICBcIkxpc3RWb2x1bWVzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJWb2x1bWVJbmZvc1wiXG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxMi0wOC0xMFwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJzdHJlYW1zLmR5bmFtb2RiXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMFwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gRHluYW1vREIgU3RyZWFtc1wiLFxuICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInY0XCIsXG4gICAgXCJzaWduaW5nTmFtZVwiOiBcImR5bmFtb2RiXCIsXG4gICAgXCJ0YXJnZXRQcmVmaXhcIjogXCJEeW5hbW9EQlN0cmVhbXNfMjAxMjA4MTBcIixcbiAgICBcInVpZFwiOiBcInN0cmVhbXMtZHluYW1vZGItMjAxMi0wOC0xMFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJEZXNjcmliZVN0cmVhbVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN0cmVhbUFyblwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeGNsdXNpdmVTdGFydFNoYXJkSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1EZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgIFwiU3RyZWFtQXJuXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0cmVhbUxhYmVsXCI6IHt9LFxuICAgICAgICAgICAgICBcIlN0cmVhbVN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgXCJTdHJlYW1WaWV3VHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgXCJDcmVhdGlvblJlcXVlc3REYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgIFwiS2V5U2NoZW1hXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiS2V5VHlwZVwiXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGVOYW1lXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIktleVR5cGVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2hhcmRzXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlNoYXJkSWRcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiU2VxdWVuY2VOdW1iZXJSYW5nZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiU3RhcnRpbmdTZXF1ZW5jZU51bWJlclwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiRW5kaW5nU2VxdWVuY2VOdW1iZXJcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiUGFyZW50U2hhcmRJZFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXCJMYXN0RXZhbHVhdGVkU2hhcmRJZFwiOiB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZWNvcmRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTaGFyZEl0ZXJhdG9yXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNoYXJkSXRlcmF0b3JcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVjb3Jkc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiZXZlbnRJRFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImV2ZW50TmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImV2ZW50VmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcImV2ZW50U291cmNlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiYXdzUmVnaW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiZHluYW1vZGJcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkFwcHJveGltYXRlQ3JlYXRpb25EYXRlVGltZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJLZXlzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk5ld0ltYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIk9sZEltYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU3JcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIlNlcXVlbmNlTnVtYmVyXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIlNpemVCeXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiU3RyZWFtVmlld1R5cGVcIjoge31cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidXNlcklkZW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJQcmluY2lwYWxJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRTaGFyZEl0ZXJhdG9yXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0U2hhcmRJdGVyYXRvclwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3RyZWFtQXJuXCIsXG4gICAgICAgICAgXCJTaGFyZElkXCIsXG4gICAgICAgICAgXCJTaGFyZEl0ZXJhdG9yVHlwZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1Bcm5cIjoge30sXG4gICAgICAgICAgXCJTaGFyZElkXCI6IHt9LFxuICAgICAgICAgIFwiU2hhcmRJdGVyYXRvclR5cGVcIjoge30sXG4gICAgICAgICAgXCJTZXF1ZW5jZU51bWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNoYXJkSXRlcmF0b3JcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3RyZWFtc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRXhjbHVzaXZlU3RhcnRTdHJlYW1Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTdHJlYW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJTdHJlYW1Bcm5cIjoge30sXG4gICAgICAgICAgICAgICAgXCJUYWJsZU5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdHJlYW1MYWJlbFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhc3RFdmFsdWF0ZWRTdHJlYW1Bcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU3JcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU1wiOiB7fSxcbiAgICAgICAgXCJOXCI6IHt9LFxuICAgICAgICBcIkJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJsb2JcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNTXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge31cbiAgICAgICAgfSxcbiAgICAgICAgXCJOU1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQlNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJMXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiTlVMTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQk9PTFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwidmVyc2lvblwiOiBcIjIuMFwiLFxuICBcIm1ldGFkYXRhXCI6IHtcbiAgICBcImFwaVZlcnNpb25cIjogXCIyMDExLTA2LTE1XCIsXG4gICAgXCJlbmRwb2ludFByZWZpeFwiOiBcInN0c1wiLFxuICAgIFwiZ2xvYmFsRW5kcG9pbnRcIjogXCJzdHMuYW1hem9uYXdzLmNvbVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJxdWVyeVwiLFxuICAgIFwic2VydmljZUFiYnJldmlhdGlvblwiOiBcIkFXUyBTVFNcIixcbiAgICBcInNlcnZpY2VGdWxsTmFtZVwiOiBcIkFXUyBTZWN1cml0eSBUb2tlbiBTZXJ2aWNlXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJTVFNcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwic3RzLTIwMTEtMDYtMTVcIixcbiAgICBcInhtbE5hbWVzcGFjZVwiOiBcImh0dHBzOi8vc3RzLmFtYXpvbmF3cy5jb20vZG9jLzIwMTEtMDYtMTUvXCJcbiAgfSxcbiAgXCJvcGVyYXRpb25zXCI6IHtcbiAgICBcIkFzc3VtZVJvbGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJvbGVBcm5cIixcbiAgICAgICAgICBcIlJvbGVTZXNzaW9uTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSb2xlQXJuXCI6IHt9LFxuICAgICAgICAgIFwiUm9sZVNlc3Npb25OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFeHRlcm5hbElkXCI6IHt9LFxuICAgICAgICAgIFwiU2VyaWFsTnVtYmVyXCI6IHt9LFxuICAgICAgICAgIFwiVG9rZW5Db2RlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFzc3VtZVJvbGVSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3N1bWVkUm9sZVVzZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFja2VkUG9saWN5U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzdW1lUm9sZVdpdGhTQU1MXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSb2xlQXJuXCIsXG4gICAgICAgICAgXCJQcmluY2lwYWxBcm5cIixcbiAgICAgICAgICBcIlNBTUxBc3NlcnRpb25cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUm9sZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlByaW5jaXBhbEFyblwiOiB7fSxcbiAgICAgICAgICBcIlNBTUxBc3NlcnRpb25cIjoge30sXG4gICAgICAgICAgXCJQb2xpY3lcIjoge30sXG4gICAgICAgICAgXCJEdXJhdGlvblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJBc3N1bWVSb2xlV2l0aFNBTUxSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBc3N1bWVkUm9sZVVzZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFja2VkUG9saWN5U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3ViamVjdFwiOiB7fSxcbiAgICAgICAgICBcIlN1YmplY3RUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiSXNzdWVyXCI6IHt9LFxuICAgICAgICAgIFwiQXVkaWVuY2VcIjoge30sXG4gICAgICAgICAgXCJOYW1lUXVhbGlmaWVyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUm9sZUFyblwiLFxuICAgICAgICAgIFwiUm9sZVNlc3Npb25OYW1lXCIsXG4gICAgICAgICAgXCJXZWJJZGVudGl0eVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJvbGVBcm5cIjoge30sXG4gICAgICAgICAgXCJSb2xlU2Vzc2lvbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJXZWJJZGVudGl0eVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiUHJvdmlkZXJJZFwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeVwiOiB7fSxcbiAgICAgICAgICBcIkR1cmF0aW9uU2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlSZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdWJqZWN0RnJvbVdlYklkZW50aXR5VG9rZW5cIjoge30sXG4gICAgICAgICAgXCJBc3N1bWVkUm9sZVVzZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFja2VkUG9saWN5U2l6ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJvdmlkZXJcIjoge30sXG4gICAgICAgICAgXCJBdWRpZW5jZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlY29kZUF1dGhvcml6YXRpb25NZXNzYWdlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJFbmNvZGVkTWVzc2FnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJFbmNvZGVkTWVzc2FnZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJEZWNvZGVBdXRob3JpemF0aW9uTWVzc2FnZVJlc3VsdFwiLFxuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkRlY29kZWRNZXNzYWdlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q2FsbGVySWRlbnRpdHlcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge31cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwicmVzdWx0V3JhcHBlclwiOiBcIkdldENhbGxlcklkZW50aXR5UmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlcklkXCI6IHt9LFxuICAgICAgICAgIFwiQWNjb3VudFwiOiB7fSxcbiAgICAgICAgICBcIkFyblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEZlZGVyYXRpb25Ub2tlblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUG9saWN5XCI6IHt9LFxuICAgICAgICAgIFwiRHVyYXRpb25TZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJyZXN1bHRXcmFwcGVyXCI6IFwiR2V0RmVkZXJhdGlvblRva2VuUmVzdWx0XCIsXG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ3JlZGVudGlhbHNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmVkZXJhdGVkVXNlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICBcIkZlZGVyYXRlZFVzZXJJZFwiLFxuICAgICAgICAgICAgICBcIkFyblwiXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJGZWRlcmF0ZWRVc2VySWRcIjoge30sXG4gICAgICAgICAgICAgIFwiQXJuXCI6IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBhY2tlZFBvbGljeVNpemVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNlc3Npb25Ub2tlblwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJEdXJhdGlvblNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlNlcmlhbE51bWJlclwiOiB7fSxcbiAgICAgICAgICBcIlRva2VuQ29kZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInJlc3VsdFdyYXBwZXJcIjogXCJHZXRTZXNzaW9uVG9rZW5SZXN1bHRcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDcmVkZW50aWFsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2FcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgXCJzaGFwZXNcIjoge1xuICAgIFwiU2FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJBY2Nlc3NLZXlJZFwiLFxuICAgICAgICBcIlNlY3JldEFjY2Vzc0tleVwiLFxuICAgICAgICBcIlNlc3Npb25Ub2tlblwiLFxuICAgICAgICBcIkV4cGlyYXRpb25cIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiQWNjZXNzS2V5SWRcIjoge30sXG4gICAgICAgIFwiU2VjcmV0QWNjZXNzS2V5XCI6IHt9LFxuICAgICAgICBcIlNlc3Npb25Ub2tlblwiOiB7fSxcbiAgICAgICAgXCJFeHBpcmF0aW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlNmXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiQXNzdW1lZFJvbGVJZFwiLFxuICAgICAgICBcIkFyblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJBc3N1bWVkUm9sZUlkXCI6IHt9LFxuICAgICAgICBcIkFyblwiOiB7fVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wXCIsXG4gIFwibWV0YWRhdGFcIjoge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcIjIwMTUtMDgtMjRcIixcbiAgICBcImVuZHBvaW50UHJlZml4XCI6IFwid2FmXCIsXG4gICAgXCJqc29uVmVyc2lvblwiOiBcIjEuMVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJqc29uXCIsXG4gICAgXCJzZXJ2aWNlQWJicmV2aWF0aW9uXCI6IFwiV0FGXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBV1MgV0FGXCIsXG4gICAgXCJzZXJ2aWNlSWRcIjogXCJXQUZcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidGFyZ2V0UHJlZml4XCI6IFwiQVdTV0FGXzIwMTUwODI0XCIsXG4gICAgXCJ1aWRcIjogXCJ3YWYtMjAxNS0wOC0yNFwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJDcmVhdGVCeXRlTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ5dGVNYXRjaFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUdlb01hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHZW9NYXRjaFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU2hcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUlQU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJJUFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiU29cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJhdGVCYXNlZFJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIlJhdGVLZXlcIixcbiAgICAgICAgICBcIlJhdGVMaW1pdFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJSYXRlS2V5XCI6IHt9LFxuICAgICAgICAgIFwiUmF0ZUxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVSZWdleE1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdleE1hdGNoU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJlZ2V4UGF0dGVyblNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJNZXRyaWNOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWZcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVJ1bGVHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVHcm91cFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVTaXplQ29uc3RyYWludFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlU3FsSW5qZWN0aW9uTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk5hbWVcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZVdlYkFDTFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiTWV0cmljTmFtZVwiLFxuICAgICAgICAgIFwiRGVmYXVsdEFjdGlvblwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgICAgXCJEZWZhdWx0QWN0aW9uXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMXdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldlYkFDTFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF6XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVYc3NNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiTmFtZVwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiWHNzTWF0Y2hTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyOFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQnl0ZU1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJCeXRlTWF0Y2hTZXRJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnl0ZU1hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlR2VvTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkdlb01hdGNoU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdlb01hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlSVBTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklQU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklQU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlUGVybWlzc2lvblBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSYXRlQmFzZWRSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlSWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZWdleE1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWdleE1hdGNoU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZ2V4TWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSZWdleFBhdHRlcm5TZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlZ2V4UGF0dGVyblNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlSWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVSdWxlR3JvdXBcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVHcm91cElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTaXplQ29uc3RyYWludFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRTZXRJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRTZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVTcWxJbmplY3Rpb25NYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVXZWJBQ0xcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIldlYkFDTElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVYc3NNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiWHNzTWF0Y2hTZXRJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiWHNzTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRCeXRlTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQnl0ZU1hdGNoU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldENoYW5nZVRva2VuXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Q2hhbmdlVG9rZW5TdGF0dXNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5TdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRHZW9NYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiR2VvTWF0Y2hTZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHZW9NYXRjaFNldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiR2VvTWF0Y2hTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNoXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0SVBTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklQU2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSVBTZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklQU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFBlcm1pc3Npb25Qb2xpY3lcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlQXJuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUG9saWN5XCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmF0ZUJhc2VkUnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmF0ZUJhc2VkUnVsZU1hbmFnZWRLZXlzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUlkXCI6IHt9LFxuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1hbmFnZWRLZXlzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHt9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRSZWdleE1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWdleE1hdGNoU2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnZXhNYXRjaFNldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnZXhNYXRjaFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE1XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UmVnZXhQYXR0ZXJuU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlZ2V4UGF0dGVyblNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0UnVsZVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFJ1bGVHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUdyb3VwSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUdyb3VwSWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlR3JvdXBcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxaVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNhbXBsZWRSZXF1ZXN0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiV2ViQWNsSWRcIixcbiAgICAgICAgICBcIlJ1bGVJZFwiLFxuICAgICAgICAgIFwiVGltZVdpbmRvd1wiLFxuICAgICAgICAgIFwiTWF4SXRlbXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2ViQWNsSWRcIjoge30sXG4gICAgICAgICAgXCJSdWxlSWRcIjoge30sXG4gICAgICAgICAgXCJUaW1lV2luZG93XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXhJdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2FtcGxlZFJlcXVlc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUmVxdWVzdFwiLFxuICAgICAgICAgICAgICAgIFwiV2VpZ2h0XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJlcXVlc3RcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkNsaWVudElQXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkNvdW50cnlcIjoge30sXG4gICAgICAgICAgICAgICAgICAgIFwiVVJJXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIk1ldGhvZFwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJIVFRQVmVyc2lvblwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJIZWFkZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVmFsdWVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiV2VpZ2h0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUnVsZVdpdGhpblJ1bGVHcm91cFwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlBvcHVsYXRpb25TaXplXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaW1lV2luZG93XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM3dcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJHZXRTaXplQ29uc3RyYWludFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRTZXRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaXplQ29uc3RyYWludFNldElkXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRTZXRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxbFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldFNxbEluamVjdGlvbk1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoU2V0SWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0V2ViQUNMXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIldlYkFDTFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF6XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0WHNzTWF0Y2hTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlhzc01hdGNoU2V0SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiWHNzTWF0Y2hTZXRJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlhzc01hdGNoU2V0XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0QWN0aXZhdGVkUnVsZXNJblJ1bGVHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSdWxlR3JvdXBJZFwiOiB7fSxcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkFjdGl2YXRlZFJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjBcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0Qnl0ZU1hdGNoU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJCeXRlTWF0Y2hTZXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQnl0ZU1hdGNoU2V0SWRcIixcbiAgICAgICAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQnl0ZU1hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdEdlb01hdGNoU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJHZW9NYXRjaFNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJHZW9NYXRjaFNldElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkdlb01hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdElQU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJJUFNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJJUFNldElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklQU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJhdGVCYXNlZFJ1bGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UmVnZXhNYXRjaFNldHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUmVnZXhNYXRjaFNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJSZWdleE1hdGNoU2V0SWRcIixcbiAgICAgICAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUmVnZXhNYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkxpc3RSZWdleFBhdHRlcm5TZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJlZ2V4UGF0dGVyblNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiLFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0UnVsZUdyb3Vwc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJSdWxlR3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiUnVsZUdyb3VwSWRcIixcbiAgICAgICAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiUnVsZUdyb3VwSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFJ1bGVzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNTRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U2l6ZUNvbnN0cmFpbnRTZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0SWRcIixcbiAgICAgICAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRTZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3FsSW5qZWN0aW9uTWF0Y2hTZXRzXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoU2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoU2V0SWRcIixcbiAgICAgICAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0U3Vic2NyaWJlZFJ1bGVHcm91cHNcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiTmV4dE1hcmtlclwiOiB7fSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiUnVsZUdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIlJ1bGVHcm91cElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCIsXG4gICAgICAgICAgICAgICAgXCJNZXRyaWNOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlJ1bGVHcm91cElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIk1ldHJpY05hbWVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJMaXN0V2ViQUNMc1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJXZWJBQ0xzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiV2ViQUNMSWRcIixcbiAgICAgICAgICAgICAgICBcIk5hbWVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiV2ViQUNMSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiTGlzdFhzc01hdGNoU2V0c1wiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJOZXh0TWFya2VyXCI6IHt9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk5leHRNYXJrZXJcIjoge30sXG4gICAgICAgICAgXCJYc3NNYXRjaFNldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJYc3NNYXRjaFNldElkXCIsXG4gICAgICAgICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlhzc01hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUHV0UGVybWlzc2lvblBvbGljeVwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VBcm5cIixcbiAgICAgICAgICBcIlBvbGljeVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZXNvdXJjZUFyblwiOiB7fSxcbiAgICAgICAgICBcIlBvbGljeVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUJ5dGVNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQnl0ZU1hdGNoU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCIsXG4gICAgICAgICAgXCJVcGRhdGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJCeXRlTWF0Y2hUdXBsZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJCeXRlTWF0Y2hUdXBsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZUdlb01hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJHZW9NYXRjaFNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiLFxuICAgICAgICAgIFwiVXBkYXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJHZW9NYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJHZW9NYXRjaENvbnN0cmFpbnRcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiR2VvTWF0Y2hDb25zdHJhaW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlSVBTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIklQU2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCIsXG4gICAgICAgICAgXCJVcGRhdGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIklQU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlVwZGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICBcIklQU2V0RGVzY3JpcHRvclwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJJUFNldERlc2NyaXB0b3JcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVSYXRlQmFzZWRSdWxlXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSdWxlSWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCIsXG4gICAgICAgICAgXCJVcGRhdGVzXCIsXG4gICAgICAgICAgXCJSYXRlTGltaXRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmtcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJSYXRlTGltaXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUmVnZXhNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVnZXhNYXRjaFNldElkXCIsXG4gICAgICAgICAgXCJVcGRhdGVzXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJSZWdleE1hdGNoU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJSZWdleE1hdGNoVHVwbGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnZXhNYXRjaFR1cGxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlUmVnZXhQYXR0ZXJuU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiLFxuICAgICAgICAgIFwiVXBkYXRlc1wiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU2V0SWRcIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJSZWdleFBhdHRlcm5TdHJpbmdcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUmVnZXhQYXR0ZXJuU3RyaW5nXCI6IHt9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJ1bGVcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJ1bGVJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIixcbiAgICAgICAgICBcIlVwZGF0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUnVsZUlkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTNmtcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVJ1bGVHcm91cFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUdyb3VwSWRcIixcbiAgICAgICAgICBcIlVwZGF0ZXNcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVHcm91cElkXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgIFwiQWN0aXZhdGVkUnVsZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJBY3RpdmF0ZWRSdWxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlU2l6ZUNvbnN0cmFpbnRTZXRcIjoge1xuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0SWRcIixcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCIsXG4gICAgICAgICAgXCJVcGRhdGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0SWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlVwZGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICBcIlNpemVDb25zdHJhaW50XCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNpemVDb25zdHJhaW50XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMW5cIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVNxbEluamVjdGlvbk1hdGNoU2V0XCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldElkXCIsXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiLFxuICAgICAgICAgIFwiVXBkYXRlc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldElkXCI6IHt9LFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge30sXG4gICAgICAgICAgXCJVcGRhdGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFR1cGxlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoVHVwbGVcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlV2ViQUNMXCI6IHtcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJXZWJBQ0xJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiV2ViQUNMSWRcIjoge30sXG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fSxcbiAgICAgICAgICBcIlVwZGF0ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICBcIkFjdGl2YXRlZFJ1bGVcIlxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgIFwiQWN0aW9uXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiQWN0aXZhdGVkUnVsZVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzIxXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVmYXVsdEFjdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzF3XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVYc3NNYXRjaFNldFwiOiB7XG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiWHNzTWF0Y2hTZXRJZFwiLFxuICAgICAgICAgIFwiQ2hhbmdlVG9rZW5cIixcbiAgICAgICAgICBcIlVwZGF0ZXNcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiWHNzTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgICBcIkNoYW5nZVRva2VuXCI6IHt9LFxuICAgICAgICAgIFwiVXBkYXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgIFwiWHNzTWF0Y2hUdXBsZVwiXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgICAgICAgXCJYc3NNYXRjaFR1cGxlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmFcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDaGFuZ2VUb2tlblwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCIsXG4gICAgICAgIFwiQnl0ZU1hdGNoVHVwbGVzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkJ5dGVNYXRjaFNldElkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiQnl0ZU1hdGNoVHVwbGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIixcbiAgICAgICAgXCJUYXJnZXRTdHJpbmdcIixcbiAgICAgICAgXCJUZXh0VHJhbnNmb3JtYXRpb25cIixcbiAgICAgICAgXCJQb3NpdGlvbmFsQ29uc3RyYWludFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGFyZ2V0U3RyaW5nXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJibG9iXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJUZXh0VHJhbnNmb3JtYXRpb25cIjoge30sXG4gICAgICAgIFwiUG9zaXRpb25hbENvbnN0cmFpbnRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUeXBlXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiRGF0YVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTaFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkdlb01hdGNoU2V0SWRcIixcbiAgICAgICAgXCJHZW9NYXRjaENvbnN0cmFpbnRzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIkdlb01hdGNoU2V0SWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJHZW9NYXRjaENvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU2pcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgIFwiVmFsdWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTb1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIklQU2V0SWRcIixcbiAgICAgICAgXCJJUFNldERlc2NyaXB0b3JzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklQU2V0SWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJJUFNldERlc2NyaXB0b3JzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiU3FcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgIFwiVmFsdWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgXCJWYWx1ZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTeVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJ1bGVJZFwiLFxuICAgICAgICBcIk1hdGNoUHJlZGljYXRlc1wiLFxuICAgICAgICBcIlJhdGVLZXlcIixcbiAgICAgICAgXCJSYXRlTGltaXRcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUnVsZUlkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgXCJNYXRjaFByZWRpY2F0ZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTelwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmF0ZUtleVwiOiB7fSxcbiAgICAgICAgXCJSYXRlTGltaXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN6XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIk5lZ2F0ZWRcIixcbiAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgIFwiRGF0YUlkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIk5lZ2F0ZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICB9LFxuICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgIFwiRGF0YUlkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxNVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUmVnZXhNYXRjaFNldElkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiUmVnZXhNYXRjaFR1cGxlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIixcbiAgICAgICAgXCJUZXh0VHJhbnNmb3JtYXRpb25cIixcbiAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGV4dFRyYW5zZm9ybWF0aW9uXCI6IHt9LFxuICAgICAgICBcIlJlZ2V4UGF0dGVyblNldElkXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJlZ2V4UGF0dGVyblNldElkXCIsXG4gICAgICAgIFwiUmVnZXhQYXR0ZXJuU3RyaW5nc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJSZWdleFBhdHRlcm5TZXRJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlJlZ2V4UGF0dGVyblN0cmluZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJ1bGVJZFwiLFxuICAgICAgICBcIlByZWRpY2F0ZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiUnVsZUlkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fSxcbiAgICAgICAgXCJQcmVkaWNhdGVzXCI6IHtcbiAgICAgICAgICBcInNoYXBlXCI6IFwiU3pcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxaVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlJ1bGVHcm91cElkXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlJ1bGVHcm91cElkXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiTWV0cmljTmFtZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMWxcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJTaXplQ29uc3RyYWludFNldElkXCIsXG4gICAgICAgIFwiU2l6ZUNvbnN0cmFpbnRzXCJcbiAgICAgIF0sXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlNpemVDb25zdHJhaW50U2V0SWRcIjoge30sXG4gICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgXCJTaXplQ29uc3RyYWludHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzFuXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgIFwiRmllbGRUb01hdGNoXCIsXG4gICAgICAgIFwiVGV4dFRyYW5zZm9ybWF0aW9uXCIsXG4gICAgICAgIFwiQ29tcGFyaXNvbk9wZXJhdG9yXCIsXG4gICAgICAgIFwiU2l6ZVwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGV4dFRyYW5zZm9ybWF0aW9uXCI6IHt9LFxuICAgICAgICBcIkNvbXBhcmlzb25PcGVyYXRvclwiOiB7fSxcbiAgICAgICAgXCJTaXplXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJTcWxJbmplY3Rpb25NYXRjaFNldElkXCIsXG4gICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hUdXBsZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3FsSW5qZWN0aW9uTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlNxbEluamVjdGlvbk1hdGNoVHVwbGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxdVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxdVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkZpZWxkVG9NYXRjaFwiLFxuICAgICAgICBcIlRleHRUcmFuc2Zvcm1hdGlvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGV4dFRyYW5zZm9ybWF0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlR5cGVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMXpcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJXZWJBQ0xJZFwiLFxuICAgICAgICBcIkRlZmF1bHRBY3Rpb25cIixcbiAgICAgICAgXCJSdWxlc1wiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJXZWJBQ0xJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIk1ldHJpY05hbWVcIjoge30sXG4gICAgICAgIFwiRGVmYXVsdEFjdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUnVsZXNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMjBcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyMFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMjFcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJQcmlvcml0eVwiLFxuICAgICAgICBcIlJ1bGVJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJQcmlvcml0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUnVsZUlkXCI6IHt9LFxuICAgICAgICBcIkFjdGlvblwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxd1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiT3ZlcnJpZGVBY3Rpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgXCJUeXBlXCJcbiAgICAgICAgICBdLFxuICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiVHlwZVwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMjhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgXCJYc3NNYXRjaFNldElkXCIsXG4gICAgICAgIFwiWHNzTWF0Y2hUdXBsZXNcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiWHNzTWF0Y2hTZXRJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIlhzc01hdGNoVHVwbGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyYVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkZpZWxkVG9NYXRjaFwiLFxuICAgICAgICBcIlRleHRUcmFuc2Zvcm1hdGlvblwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJGaWVsZFRvTWF0Y2hcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGV4dFRyYW5zZm9ybWF0aW9uXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzd1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIlN0YXJ0VGltZVwiLFxuICAgICAgICBcIkVuZFRpbWVcIlxuICAgICAgXSxcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkVuZFRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzU0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUnVsZUlkXCIsXG4gICAgICAgICAgXCJOYW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJ1bGVJZFwiOiB7fSxcbiAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTNmtcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICBcIlByZWRpY2F0ZVwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBY3Rpb25cIjoge30sXG4gICAgICAgICAgXCJQcmVkaWNhdGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInZlcnNpb25cIjogXCIyLjBcIixcbiAgXCJtZXRhZGF0YVwiOiB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiMjAxNi0wNS0wMVwiLFxuICAgIFwiZW5kcG9pbnRQcmVmaXhcIjogXCJ3b3JrZG9jc1wiLFxuICAgIFwianNvblZlcnNpb25cIjogXCIxLjFcIixcbiAgICBcInByb3RvY29sXCI6IFwicmVzdC1qc29uXCIsXG4gICAgXCJzZXJ2aWNlRnVsbE5hbWVcIjogXCJBbWF6b24gV29ya0RvY3NcIixcbiAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2NFwiLFxuICAgIFwidWlkXCI6IFwid29ya2RvY3MtMjAxNi0wNS0wMVwiXG4gIH0sXG4gIFwib3BlcmF0aW9uc1wiOiB7XG4gICAgXCJBYm9ydERvY3VtZW50VmVyc2lvblVwbG9hZFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2RvY3VtZW50cy97RG9jdW1lbnRJZH0vdmVyc2lvbnMve1ZlcnNpb25JZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIixcbiAgICAgICAgICBcIlZlcnNpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb2N1bWVudElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmVyc2lvbklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQWN0aXZhdGVVc2VyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvdXNlcnMve1VzZXJJZH0vYWN0aXZhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiVXNlclwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRSZXNvdXJjZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvcmVzb3VyY2VzL3tSZXNvdXJjZUlkfS9wZXJtaXNzaW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDFcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiUHJpbmNpcGFsc1wiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpbmNpcGFsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcIklkXCIsXG4gICAgICAgICAgICAgICAgXCJUeXBlXCIsXG4gICAgICAgICAgICAgICAgXCJSb2xlXCJcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlJvbGVcIjoge31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOb3RpZmljYXRpb25PcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgXCJTZW5kRW1haWxcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcIkVtYWlsTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlN0XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJTaGFyZVJlc3VsdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgICAgICBcIlByaW5jaXBhbElkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlNoYXJlSWRcIjoge30sXG4gICAgICAgICAgICAgICAgXCJTdGF0dXNNZXNzYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTdFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZUNvbW1lbnRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHMve0RvY3VtZW50SWR9L3ZlcnNpb25zL3tWZXJzaW9uSWR9L2NvbW1lbnRcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIixcbiAgICAgICAgICBcIlZlcnNpb25JZFwiLFxuICAgICAgICAgIFwiVGV4dFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb2N1bWVudElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyZW50SWRcIjoge30sXG4gICAgICAgICAgXCJUaHJlYWRJZFwiOiB7fSxcbiAgICAgICAgICBcIlRleHRcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZpc2liaWxpdHlcIjoge30sXG4gICAgICAgICAgXCJOb3RpZnlDb2xsYWJvcmF0b3JzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJDb21tZW50XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVDdXN0b21NZXRhZGF0YVwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIlBVVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3Jlc291cmNlcy97UmVzb3VyY2VJZH0vY3VzdG9tTWV0YWRhdGFcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIkN1c3RvbU1ldGFkYXRhXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInZlcnNpb25pZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkN1c3RvbU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMTZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVGb2xkZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9mb2xkZXJzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJQYXJlbnRGb2xkZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgICAgXCJQYXJlbnRGb2xkZXJJZFwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJDcmVhdGVMYWJlbHNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQVVRcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9yZXNvdXJjZXMve1Jlc291cmNlSWR9L2xhYmVsc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiLFxuICAgICAgICAgIFwiTGFiZWxzXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGFiZWxzXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkNyZWF0ZU5vdGlmaWNhdGlvblN1YnNjcmlwdGlvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL29yZ2FuaXphdGlvbnMve09yZ2FuaXphdGlvbklkfS9zdWJzY3JpcHRpb25zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiLFxuICAgICAgICAgIFwiRW5kcG9pbnRcIixcbiAgICAgICAgICBcIlByb3RvY29sXCIsXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25UeXBlXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9yZ2FuaXphdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JnYW5pemF0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJFbmRwb2ludFwiOiB7fSxcbiAgICAgICAgICBcIlByb3RvY29sXCI6IHt9LFxuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uVHlwZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiQ3JlYXRlVXNlclwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3VzZXJzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMVxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VybmFtZVwiLFxuICAgICAgICAgIFwiR2l2ZW5OYW1lXCIsXG4gICAgICAgICAgXCJTdXJuYW1lXCIsXG4gICAgICAgICAgXCJQYXNzd29yZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiOiB7fSxcbiAgICAgICAgICBcIlVzZXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiRW1haWxBZGRyZXNzXCI6IHt9LFxuICAgICAgICAgIFwiR2l2ZW5OYW1lXCI6IHt9LFxuICAgICAgICAgIFwiU3VybmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUaW1lWm9uZUlkXCI6IHt9LFxuICAgICAgICAgIFwiU3RvcmFnZVJ1bGVcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlNqXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlYWN0aXZhdGVVc2VyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvdXNlcnMve1VzZXJJZH0vYWN0aXZhdGlvblwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiVXNlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlQ29tbWVudFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2RvY3VtZW50cy97RG9jdW1lbnRJZH0vdmVyc2lvbnMve1ZlcnNpb25JZH0vY29tbWVudC97Q29tbWVudElkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiLFxuICAgICAgICAgIFwiVmVyc2lvbklkXCIsXG4gICAgICAgICAgXCJDb21tZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZlcnNpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbW1lbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkNvbW1lbnRJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZUN1c3RvbU1ldGFkYXRhXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvcmVzb3VyY2VzL3tSZXNvdXJjZUlkfS9jdXN0b21NZXRhZGF0YVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ2ZXJzaW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJLZXlzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJrZXlzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7fVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEZWxldGVBbGxcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImRlbGV0ZUFsbFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlbGV0ZURvY3VtZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZG9jdW1lbnRzL3tEb2N1bWVudElkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb2N1bWVudElkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlRm9sZGVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZm9sZGVycy97Rm9sZGVySWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGb2xkZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvbGRlcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRm9sZGVySWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVGb2xkZXJDb250ZW50c1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkRFTEVURVwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2ZvbGRlcnMve0ZvbGRlcklkfS9jb250ZW50c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDRcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRm9sZGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb2xkZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZvbGRlcklkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVsZXRlTGFiZWxzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvcmVzb3VyY2VzL3tSZXNvdXJjZUlkfS9sYWJlbHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxhYmVsc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFnXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGFiZWxzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRGVsZXRlQWxsXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJkZWxldGVBbGxcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVOb3RpZmljYXRpb25TdWJzY3JpcHRpb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9vcmdhbml6YXRpb25zL3tPcmdhbml6YXRpb25JZH0vc3Vic2NyaXB0aW9ucy97U3Vic2NyaXB0aW9uSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJTdWJzY3JpcHRpb25JZFwiLFxuICAgICAgICAgIFwiT3JnYW5pemF0aW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiU3Vic2NyaXB0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJTdWJzY3JpcHRpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk9yZ2FuaXphdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JnYW5pemF0aW9uSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZWxldGVVc2VyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiREVMRVRFXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvdXNlcnMve1VzZXJJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlVzZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlVzZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlVzZXJJZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlQWN0aXZpdGllc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2FjdGl2aXRpZXNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInN0YXJ0VGltZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRW5kVGltZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZW5kVGltZVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3JnYW5pemF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9yZ2FuaXphdGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ1c2VySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJBY3Rpdml0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiVGltZVN0YW1wXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIk9yZ2FuaXphdGlvbklkXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwiSW5pdGlhdG9yXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMmNcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJQYXJ0aWNpcGFudHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIlVzZXJzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyZlwiXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiUmVzb3VyY2VNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJpXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiT3JpZ2luYWxQYXJlbnRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyaVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIkNvbW1lbnRNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudElkXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICBcIkNvbnRyaWJ1dG9yXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzhcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIkNyZWF0ZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiQ29tbWVudFN0YXR1c1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgXCJSZWNpcGllbnRJZFwiOiB7fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUNvbW1lbnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZG9jdW1lbnRzL3tEb2N1bWVudElkfS92ZXJzaW9ucy97VmVyc2lvbklkfS9jb21tZW50c1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiLFxuICAgICAgICAgIFwiVmVyc2lvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRvY3VtZW50SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJWZXJzaW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkNvbW1lbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxM1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkRlc2NyaWJlRG9jdW1lbnRWZXJzaW9uc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2RvY3VtZW50cy97RG9jdW1lbnRJZH0vdmVyc2lvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5jbHVkZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZpZWxkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiZmllbGRzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRG9jdW1lbnRWZXJzaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZvbGRlckNvbnRlbnRzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZm9sZGVycy97Rm9sZGVySWR9L2NvbnRlbnRzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGb2xkZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvbGRlcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRm9sZGVySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3J0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3J0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3JkZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9yZGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJUeXBlXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJ0eXBlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiaW5jbHVkZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkZvbGRlcnNcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMzNlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMzhcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZUdyb3Vwc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2dyb3Vwc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiU2VhcmNoUXVlcnlcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTZWFyY2hRdWVyeVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzNhXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwic2VhcmNoUXVlcnlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3JnYW5pemF0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVOb3RpZmljYXRpb25TdWJzY3JpcHRpb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvb3JnYW5pemF0aW9ucy97T3JnYW5pemF0aW9uSWR9L3N1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIk9yZ2FuaXphdGlvbklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk9yZ2FuaXphdGlvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiT3JnYW5pemF0aW9uSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlN1YnNjcmlwdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxuICAgICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiUzFwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVSZXNvdXJjZVBlcm1pc3Npb25zXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvcmVzb3VyY2VzL3tSZXNvdXJjZUlkfS9wZXJtaXNzaW9uc1wiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlJlc291cmNlSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpbmNpcGFsSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcInByaW5jaXBhbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJQcmluY2lwYWxzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgICAgICAgICBcIlR5cGVcIjoge30sXG4gICAgICAgICAgICAgICAgXCJSb2xlc1wiOiB7XG4gICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgICAgICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiUm9sZVwiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlR5cGVcIjoge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVJvb3RGb2xkZXJzXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvbWUvcm9vdFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkxpbWl0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJsaW1pdFwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiRm9sZGVyc1wiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM2XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiRGVzY3JpYmVVc2Vyc1wiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3VzZXJzXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiT3JnYW5pemF0aW9uSWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm9yZ2FuaXphdGlvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXNlcklkc1wiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidXNlcklkc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlF1ZXJ5XCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTM2FcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJxdWVyeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkluY2x1ZGVcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluY2x1ZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJPcmRlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwib3JkZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJTb3J0XCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJzb3J0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTWFya2VyXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJtYXJrZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWVsZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZpZWxkc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlVzZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcbiAgICAgICAgICAgIFwibWVtYmVyXCI6IHtcbiAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM4XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVG90YWxOdW1iZXJPZlVzZXJzXCI6IHtcbiAgICAgICAgICAgIFwiZGVwcmVjYXRlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldEN1cnJlbnRVc2VyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvbWVcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvY3VtZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZG9jdW1lbnRzL3tEb2N1bWVudElkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb2N1bWVudElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSW5jbHVkZUN1c3RvbU1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJpbmNsdWRlQ3VzdG9tTWV0YWRhdGFcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ3VzdG9tTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMxNlwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvY3VtZW50UGF0aFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2RvY3VtZW50cy97RG9jdW1lbnRJZH0vcGF0aFwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb2N1bWVudElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTGltaXRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImxpbWl0XCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmllbGRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmaWVsZHNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJNYXJrZXJcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIm1hcmtlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIlBhdGhcIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlM0MVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIkdldERvY3VtZW50VmVyc2lvblwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2RvY3VtZW50cy97RG9jdW1lbnRJZH0vdmVyc2lvbnMve1ZlcnNpb25JZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAwXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIixcbiAgICAgICAgICBcIlZlcnNpb25JZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkRvY3VtZW50SWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJEb2N1bWVudElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVmVyc2lvbklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiVmVyc2lvbklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRmllbGRzXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJxdWVyeXN0cmluZ1wiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJmaWVsZHNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlQ3VzdG9tTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluY2x1ZGVDdXN0b21NZXRhZGF0YVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Rm9sZGVyXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiR0VUXCIsXG4gICAgICAgIFwicmVxdWVzdFVyaVwiOiBcIi9hcGkvdjEvZm9sZGVycy97Rm9sZGVySWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGb2xkZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvbGRlcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRm9sZGVySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJJbmNsdWRlQ3VzdG9tTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImluY2x1ZGVDdXN0b21NZXRhZGF0YVwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIk1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJDdXN0b21NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzE2XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiR2V0Rm9sZGVyUGF0aFwiOiB7XG4gICAgICBcImh0dHBcIjoge1xuICAgICAgICBcIm1ldGhvZFwiOiBcIkdFVFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2ZvbGRlcnMve0ZvbGRlcklkfS9wYXRoXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJGb2xkZXJJZFwiXG4gICAgICAgIF0sXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJBdXRoZW50aWNhdGlvblRva2VuXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMlwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcImhlYWRlclwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJBdXRoZW50aWNhdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvbGRlcklkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRm9sZGVySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJMaW1pdFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibGltaXRcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGaWVsZHNcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInF1ZXJ5c3RyaW5nXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcImZpZWxkc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIk1hcmtlclwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwibWFya2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiUGF0aFwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzQxXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiSW5pdGlhdGVEb2N1bWVudFZlcnNpb25VcGxvYWRcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHNcIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjAxXG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlBhcmVudEZvbGRlcklkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiQ29udGVudENyZWF0ZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiQ29udGVudE1vZGlmaWVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkNvbnRlbnRUeXBlXCI6IHt9LFxuICAgICAgICAgIFwiRG9jdW1lbnRTaXplSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJsb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUGFyZW50Rm9sZGVySWRcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJNZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzM4XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiVXBsb2FkTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIlVwbG9hZFVybFwiOiB7XG4gICAgICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyeVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwiU2lnbmVkSGVhZGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlJlbW92ZUFsbFJlc291cmNlUGVybWlzc2lvbnNcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9yZXNvdXJjZXMve1Jlc291cmNlSWR9L3Blcm1pc3Npb25zXCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwNFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJSZXNvdXJjZUlkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlSWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJSZW1vdmVSZXNvdXJjZVBlcm1pc3Npb25cIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJERUxFVEVcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9yZXNvdXJjZXMve1Jlc291cmNlSWR9L3Blcm1pc3Npb25zL3tQcmluY2lwYWxJZH1cIixcbiAgICAgICAgXCJyZXNwb25zZUNvZGVcIjogMjA0XG4gICAgICB9LFxuICAgICAgXCJpbnB1dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICBcIlJlc291cmNlSWRcIixcbiAgICAgICAgICBcIlByaW5jaXBhbElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUmVzb3VyY2VJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlJlc291cmNlSWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJQcmluY2lwYWxJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlByaW5jaXBhbElkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiUHJpbmNpcGFsVHlwZVwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwicXVlcnlzdHJpbmdcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwidHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZURvY3VtZW50XCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHMve0RvY3VtZW50SWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb2N1bWVudElkXCJcbiAgICAgICAgXSxcbiAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICBcIkF1dGhlbnRpY2F0aW9uVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJzaGFwZVwiOiBcIlMyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwiaGVhZGVyXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkF1dGhlbnRpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkRvY3VtZW50SWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICAgIFwiUGFyZW50Rm9sZGVySWRcIjoge30sXG4gICAgICAgICAgXCJSZXNvdXJjZVN0YXRlXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiVXBkYXRlRG9jdW1lbnRWZXJzaW9uXCI6IHtcbiAgICAgIFwiaHR0cFwiOiB7XG4gICAgICAgIFwibWV0aG9kXCI6IFwiUEFUQ0hcIixcbiAgICAgICAgXCJyZXF1ZXN0VXJpXCI6IFwiL2FwaS92MS9kb2N1bWVudHMve0RvY3VtZW50SWR9L3ZlcnNpb25zL3tWZXJzaW9uSWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJEb2N1bWVudElkXCIsXG4gICAgICAgICAgXCJWZXJzaW9uSWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJEb2N1bWVudElkXCI6IHtcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJ1cmlcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiRG9jdW1lbnRJZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25JZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIlZlcnNpb25JZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlZlcnNpb25TdGF0dXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJVcGRhdGVGb2xkZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL2ZvbGRlcnMve0ZvbGRlcklkfVwiLFxuICAgICAgICBcInJlc3BvbnNlQ29kZVwiOiAyMDBcbiAgICAgIH0sXG4gICAgICBcImlucHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgIFwiRm9sZGVySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb2xkZXJJZFwiOiB7XG4gICAgICAgICAgICBcImxvY2F0aW9uXCI6IFwidXJpXCIsXG4gICAgICAgICAgICBcImxvY2F0aW9uTmFtZVwiOiBcIkZvbGRlcklkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiTmFtZVwiOiB7fSxcbiAgICAgICAgICBcIlBhcmVudEZvbGRlcklkXCI6IHt9LFxuICAgICAgICAgIFwiUmVzb3VyY2VTdGF0ZVwiOiB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlVwZGF0ZVVzZXJcIjoge1xuICAgICAgXCJodHRwXCI6IHtcbiAgICAgICAgXCJtZXRob2RcIjogXCJQQVRDSFwiLFxuICAgICAgICBcInJlcXVlc3RVcmlcIjogXCIvYXBpL3YxL3VzZXJzL3tVc2VySWR9XCIsXG4gICAgICAgIFwicmVzcG9uc2VDb2RlXCI6IDIwMFxuICAgICAgfSxcbiAgICAgIFwiaW5wdXRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgXCJVc2VySWRcIlxuICAgICAgICBdLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiQXV0aGVudGljYXRpb25Ub2tlblwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25cIjogXCJoZWFkZXJcIixcbiAgICAgICAgICAgIFwibG9jYXRpb25OYW1lXCI6IFwiQXV0aGVudGljYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJVc2VySWRcIjoge1xuICAgICAgICAgICAgXCJsb2NhdGlvblwiOiBcInVyaVwiLFxuICAgICAgICAgICAgXCJsb2NhdGlvbk5hbWVcIjogXCJVc2VySWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJHaXZlbk5hbWVcIjoge30sXG4gICAgICAgICAgXCJTdXJuYW1lXCI6IHt9LFxuICAgICAgICAgIFwiVHlwZVwiOiB7fSxcbiAgICAgICAgICBcIlN0b3JhZ2VSdWxlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTalwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIlRpbWVab25lSWRcIjoge30sXG4gICAgICAgICAgXCJMb2NhbGVcIjoge30sXG4gICAgICAgICAgXCJHcmFudFBvd2VydXNlclByaXZpbGVnZXNcIjoge31cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgICAgXCJVc2VyXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBcInNoYXBlc1wiOiB7XG4gICAgXCJTMlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlVzZXJuYW1lXCI6IHt9LFxuICAgICAgICBcIkVtYWlsQWRkcmVzc1wiOiB7fSxcbiAgICAgICAgXCJHaXZlbk5hbWVcIjoge30sXG4gICAgICAgIFwiU3VybmFtZVwiOiB7fSxcbiAgICAgICAgXCJPcmdhbml6YXRpb25JZFwiOiB7fSxcbiAgICAgICAgXCJSb290Rm9sZGVySWRcIjoge30sXG4gICAgICAgIFwiUmVjeWNsZUJpbkZvbGRlcklkXCI6IHt9LFxuICAgICAgICBcIlN0YXR1c1wiOiB7fSxcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIkNyZWF0ZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTW9kaWZpZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiVGltZVpvbmVJZFwiOiB7fSxcbiAgICAgICAgXCJMb2NhbGVcIjoge30sXG4gICAgICAgIFwiU3RvcmFnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgICAgIFwiU3RvcmFnZVV0aWxpemVkSW5CeXRlc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiU3RvcmFnZVJ1bGVcIjoge1xuICAgICAgICAgICAgICBcInNoYXBlXCI6IFwiU2pcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTalwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiU3RvcmFnZUFsbG9jYXRlZEluQnl0ZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlN0b3JhZ2VUeXBlXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgXCJzZW5zaXRpdmVcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCJTMTBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMxM1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICBcIkNvbW1lbnRJZFwiXG4gICAgICBdLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb21tZW50SWRcIjoge30sXG4gICAgICAgIFwiUGFyZW50SWRcIjoge30sXG4gICAgICAgIFwiVGhyZWFkSWRcIjoge30sXG4gICAgICAgIFwiVGV4dFwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxMFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29udHJpYnV0b3JcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTOFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiVmlzaWJpbGl0eVwiOiB7fSxcbiAgICAgICAgXCJSZWNpcGllbnRJZFwiOiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMTZcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICBcImtleVwiOiB7fSxcbiAgICAgIFwidmFsdWVcIjoge31cbiAgICB9LFxuICAgIFwiUzFkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkNyZWF0b3JJZFwiOiB7fSxcbiAgICAgICAgXCJQYXJlbnRGb2xkZXJJZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1vZGlmaWVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIlJlc291cmNlU3RhdGVcIjoge30sXG4gICAgICAgIFwiU2lnbmF0dXJlXCI6IHt9LFxuICAgICAgICBcIkxhYmVsc1wiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMxZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiU2l6ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiTGF0ZXN0VmVyc2lvblNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMxZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7fVxuICAgIH0sXG4gICAgXCJTMXBcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIlN1YnNjcmlwdGlvbklkXCI6IHt9LFxuICAgICAgICBcIkVuZFBvaW50XCI6IHt9LFxuICAgICAgICBcIlByb3RvY29sXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJ1Y3R1cmVcIixcbiAgICAgIFwibWVtYmVyc1wiOiB7XG4gICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgIFwiVXNlcm5hbWVcIjoge30sXG4gICAgICAgIFwiR2l2ZW5OYW1lXCI6IHt9LFxuICAgICAgICBcIlN1cm5hbWVcIjoge30sXG4gICAgICAgIFwiRW1haWxBZGRyZXNzXCI6IHt9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMyZlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgIFwiSWRcIjoge30sXG4gICAgICAgICAgXCJOYW1lXCI6IHt9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJpXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJUeXBlXCI6IHt9LFxuICAgICAgICBcIk5hbWVcIjoge30sXG4gICAgICAgIFwiT3JpZ2luYWxOYW1lXCI6IHt9LFxuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIlZlcnNpb25JZFwiOiB7fSxcbiAgICAgICAgXCJPd25lclwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMyY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUGFyZW50SWRcIjoge31cbiAgICAgIH1cbiAgICB9LFxuICAgIFwiUzJ0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJJZFwiOiB7fSxcbiAgICAgICAgXCJOYW1lXCI6IHt9LFxuICAgICAgICBcIkNvbnRlbnRUeXBlXCI6IHt9LFxuICAgICAgICBcIlNpemVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcIlNpZ25hdHVyZVwiOiB7fSxcbiAgICAgICAgXCJTdGF0dXNcIjoge30sXG4gICAgICAgIFwiQ3JlYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJNb2RpZmllZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb250ZW50Q3JlYXRlZFRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGltZXN0YW1wXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJDb250ZW50TW9kaWZpZWRUaW1lc3RhbXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInRpbWVzdGFtcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiQ3JlYXRvcklkXCI6IHt9LFxuICAgICAgICBcIlRodW1ibmFpbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwibWFwXCIsXG4gICAgICAgICAgXCJrZXlcIjoge30sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInNoYXBlXCI6IFwiUzJ5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiU291cmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJtYXBcIixcbiAgICAgICAgICBcImtleVwiOiB7fSxcbiAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwic2hhcGVcIjogXCJTMnlcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMnlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICBcInNlbnNpdGl2ZVwiOiB0cnVlXG4gICAgfSxcbiAgICBcIlMzNlwiOiB7XG4gICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICBcIm1lbWJlclwiOiB7XG4gICAgICAgIFwic2hhcGVcIjogXCJTMWRcIlxuICAgICAgfVxuICAgIH0sXG4gICAgXCJTMzhcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICBcIkNyZWF0b3JJZFwiOiB7fSxcbiAgICAgICAgXCJQYXJlbnRGb2xkZXJJZFwiOiB7fSxcbiAgICAgICAgXCJDcmVhdGVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIk1vZGlmaWVkVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJ0aW1lc3RhbXBcIlxuICAgICAgICB9LFxuICAgICAgICBcIkxhdGVzdFZlcnNpb25NZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCJzaGFwZVwiOiBcIlMydFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiUmVzb3VyY2VTdGF0ZVwiOiB7fSxcbiAgICAgICAgXCJMYWJlbHNcIjoge1xuICAgICAgICAgIFwic2hhcGVcIjogXCJTMWdcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcIlMzYVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgIFwic2Vuc2l0aXZlXCI6IHRydWVcbiAgICB9LFxuICAgIFwiUzQxXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcInN0cnVjdHVyZVwiLFxuICAgICAgXCJtZW1iZXJzXCI6IHtcbiAgICAgICAgXCJDb21wb25lbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXG4gICAgICAgICAgXCJtZW1iZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RydWN0dXJlXCIsXG4gICAgICAgICAgICBcIm1lbWJlcnNcIjoge1xuICAgICAgICAgICAgICBcIklkXCI6IHt9LFxuICAgICAgICAgICAgICBcIk5hbWVcIjoge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJtb2R1bGUuZXhwb3J0cz17XG4gIFwicGFnaW5hdGlvblwiOiB7XG4gICAgXCJEZXNjcmliZURvY3VtZW50VmVyc2lvbnNcIjoge1xuICAgICAgXCJpbnB1dF90b2tlblwiOiBcIk1hcmtlclwiLFxuICAgICAgXCJsaW1pdF9rZXlcIjogXCJMaW1pdFwiLFxuICAgICAgXCJvdXRwdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwicmVzdWx0X2tleVwiOiBcIkRvY3VtZW50VmVyc2lvbnNcIlxuICAgIH0sXG4gICAgXCJEZXNjcmliZUZvbGRlckNvbnRlbnRzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogW1xuICAgICAgICBcIkZvbGRlcnNcIixcbiAgICAgICAgXCJEb2N1bWVudHNcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJEZXNjcmliZVVzZXJzXCI6IHtcbiAgICAgIFwiaW5wdXRfdG9rZW5cIjogXCJNYXJrZXJcIixcbiAgICAgIFwibGltaXRfa2V5XCI6IFwiTGltaXRcIixcbiAgICAgIFwib3V0cHV0X3Rva2VuXCI6IFwiTWFya2VyXCIsXG4gICAgICBcInJlc3VsdF9rZXlcIjogXCJVc2Vyc1wiXG4gICAgfVxuICB9XG59IiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydhY20nXSA9IHt9O1xuQVdTLkFDTSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnYWNtJywgWycyMDE1LTEyLTA4J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snYWNtJ10sICcyMDE1LTEyLTA4Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2FjbS0yMDE1LTEyLTA4Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvYWNtLTIwMTUtMTItMDgucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9hY20tMjAxNS0xMi0wOC53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkFDTTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snYXBpZ2F0ZXdheSddID0ge307XG5BV1MuQVBJR2F0ZXdheSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnYXBpZ2F0ZXdheScsIFsnMjAxNS0wNy0wOSddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9hcGlnYXRld2F5Jyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydhcGlnYXRld2F5J10sICcyMDE1LTA3LTA5Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2FwaWdhdGV3YXktMjAxNS0wNy0wOS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2FwaWdhdGV3YXktMjAxNS0wNy0wOS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQVBJR2F0ZXdheTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snYXBwbGljYXRpb25hdXRvc2NhbGluZyddID0ge307XG5BV1MuQXBwbGljYXRpb25BdXRvU2NhbGluZyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnYXBwbGljYXRpb25hdXRvc2NhbGluZycsIFsnMjAxNi0wMi0wNiddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2FwcGxpY2F0aW9uYXV0b3NjYWxpbmcnXSwgJzIwMTYtMDItMDYnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvYXBwbGljYXRpb24tYXV0b3NjYWxpbmctMjAxNi0wMi0wNi5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2FwcGxpY2F0aW9uLWF1dG9zY2FsaW5nLTIwMTYtMDItMDYucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2F1dG9zY2FsaW5nJ10gPSB7fTtcbkFXUy5BdXRvU2NhbGluZyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnYXV0b3NjYWxpbmcnLCBbJzIwMTEtMDEtMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydhdXRvc2NhbGluZyddLCAnMjAxMS0wMS0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9hdXRvc2NhbGluZy0yMDExLTAxLTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvYXV0b3NjYWxpbmctMjAxMS0wMS0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQXV0b1NjYWxpbmc7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbm1vZHVsZS5leHBvcnRzID0ge1xuICBBQ006IHJlcXVpcmUoJy4vYWNtJyksXG4gIEFQSUdhdGV3YXk6IHJlcXVpcmUoJy4vYXBpZ2F0ZXdheScpLFxuICBBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOiByZXF1aXJlKCcuL2FwcGxpY2F0aW9uYXV0b3NjYWxpbmcnKSxcbiAgQXV0b1NjYWxpbmc6IHJlcXVpcmUoJy4vYXV0b3NjYWxpbmcnKSxcbiAgQ2xvdWRGb3JtYXRpb246IHJlcXVpcmUoJy4vY2xvdWRmb3JtYXRpb24nKSxcbiAgQ2xvdWRGcm9udDogcmVxdWlyZSgnLi9jbG91ZGZyb250JyksXG4gIENsb3VkSFNNOiByZXF1aXJlKCcuL2Nsb3VkaHNtJyksXG4gIENsb3VkVHJhaWw6IHJlcXVpcmUoJy4vY2xvdWR0cmFpbCcpLFxuICBDbG91ZFdhdGNoOiByZXF1aXJlKCcuL2Nsb3Vkd2F0Y2gnKSxcbiAgQ2xvdWRXYXRjaEV2ZW50czogcmVxdWlyZSgnLi9jbG91ZHdhdGNoZXZlbnRzJyksXG4gIENsb3VkV2F0Y2hMb2dzOiByZXF1aXJlKCcuL2Nsb3Vkd2F0Y2hsb2dzJyksXG4gIENvZGVCdWlsZDogcmVxdWlyZSgnLi9jb2RlYnVpbGQnKSxcbiAgQ29kZUNvbW1pdDogcmVxdWlyZSgnLi9jb2RlY29tbWl0JyksXG4gIENvZGVEZXBsb3k6IHJlcXVpcmUoJy4vY29kZWRlcGxveScpLFxuICBDb2RlUGlwZWxpbmU6IHJlcXVpcmUoJy4vY29kZXBpcGVsaW5lJyksXG4gIENvZ25pdG9JZGVudGl0eTogcmVxdWlyZSgnLi9jb2duaXRvaWRlbnRpdHknKSxcbiAgQ29nbml0b0lkZW50aXR5U2VydmljZVByb3ZpZGVyOiByZXF1aXJlKCcuL2NvZ25pdG9pZGVudGl0eXNlcnZpY2Vwcm92aWRlcicpLFxuICBDb2duaXRvU3luYzogcmVxdWlyZSgnLi9jb2duaXRvc3luYycpLFxuICBDb25maWdTZXJ2aWNlOiByZXF1aXJlKCcuL2NvbmZpZ3NlcnZpY2UnKSxcbiAgQ1VSOiByZXF1aXJlKCcuL2N1cicpLFxuICBEZXZpY2VGYXJtOiByZXF1aXJlKCcuL2RldmljZWZhcm0nKSxcbiAgRGlyZWN0Q29ubmVjdDogcmVxdWlyZSgnLi9kaXJlY3Rjb25uZWN0JyksXG4gIER5bmFtb0RCOiByZXF1aXJlKCcuL2R5bmFtb2RiJyksXG4gIER5bmFtb0RCU3RyZWFtczogcmVxdWlyZSgnLi9keW5hbW9kYnN0cmVhbXMnKSxcbiAgRUMyOiByZXF1aXJlKCcuL2VjMicpLFxuICBFQ1I6IHJlcXVpcmUoJy4vZWNyJyksXG4gIEVDUzogcmVxdWlyZSgnLi9lY3MnKSxcbiAgRUZTOiByZXF1aXJlKCcuL2VmcycpLFxuICBFbGFzdGlDYWNoZTogcmVxdWlyZSgnLi9lbGFzdGljYWNoZScpLFxuICBFbGFzdGljQmVhbnN0YWxrOiByZXF1aXJlKCcuL2VsYXN0aWNiZWFuc3RhbGsnKSxcbiAgRUxCOiByZXF1aXJlKCcuL2VsYicpLFxuICBFTEJ2MjogcmVxdWlyZSgnLi9lbGJ2MicpLFxuICBFTVI6IHJlcXVpcmUoJy4vZW1yJyksXG4gIEVsYXN0aWNUcmFuc2NvZGVyOiByZXF1aXJlKCcuL2VsYXN0aWN0cmFuc2NvZGVyJyksXG4gIEZpcmVob3NlOiByZXF1aXJlKCcuL2ZpcmVob3NlJyksXG4gIEdhbWVMaWZ0OiByZXF1aXJlKCcuL2dhbWVsaWZ0JyksXG4gIEluc3BlY3RvcjogcmVxdWlyZSgnLi9pbnNwZWN0b3InKSxcbiAgSW90OiByZXF1aXJlKCcuL2lvdCcpLFxuICBJb3REYXRhOiByZXF1aXJlKCcuL2lvdGRhdGEnKSxcbiAgS2luZXNpczogcmVxdWlyZSgnLi9raW5lc2lzJyksXG4gIEtNUzogcmVxdWlyZSgnLi9rbXMnKSxcbiAgTGFtYmRhOiByZXF1aXJlKCcuL2xhbWJkYScpLFxuICBMZXhSdW50aW1lOiByZXF1aXJlKCcuL2xleHJ1bnRpbWUnKSxcbiAgTWFjaGluZUxlYXJuaW5nOiByZXF1aXJlKCcuL21hY2hpbmVsZWFybmluZycpLFxuICBNYXJrZXRwbGFjZUNvbW1lcmNlQW5hbHl0aWNzOiByZXF1aXJlKCcuL21hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3MnKSxcbiAgTVR1cms6IHJlcXVpcmUoJy4vbXR1cmsnKSxcbiAgTW9iaWxlQW5hbHl0aWNzOiByZXF1aXJlKCcuL21vYmlsZWFuYWx5dGljcycpLFxuICBPcHNXb3JrczogcmVxdWlyZSgnLi9vcHN3b3JrcycpLFxuICBQb2xseTogcmVxdWlyZSgnLi9wb2xseScpLFxuICBSRFM6IHJlcXVpcmUoJy4vcmRzJyksXG4gIFJlZHNoaWZ0OiByZXF1aXJlKCcuL3JlZHNoaWZ0JyksXG4gIFJla29nbml0aW9uOiByZXF1aXJlKCcuL3Jla29nbml0aW9uJyksXG4gIFJvdXRlNTM6IHJlcXVpcmUoJy4vcm91dGU1MycpLFxuICBSb3V0ZTUzRG9tYWluczogcmVxdWlyZSgnLi9yb3V0ZTUzZG9tYWlucycpLFxuICBTMzogcmVxdWlyZSgnLi9zMycpLFxuICBTZXJ2aWNlQ2F0YWxvZzogcmVxdWlyZSgnLi9zZXJ2aWNlY2F0YWxvZycpLFxuICBTRVM6IHJlcXVpcmUoJy4vc2VzJyksXG4gIFNOUzogcmVxdWlyZSgnLi9zbnMnKSxcbiAgU1FTOiByZXF1aXJlKCcuL3NxcycpLFxuICBTU006IHJlcXVpcmUoJy4vc3NtJyksXG4gIFN0b3JhZ2VHYXRld2F5OiByZXF1aXJlKCcuL3N0b3JhZ2VnYXRld2F5JyksXG4gIFNUUzogcmVxdWlyZSgnLi9zdHMnKSxcbiAgV0FGOiByZXF1aXJlKCcuL3dhZicpLFxuICBXb3JrRG9jczogcmVxdWlyZSgnLi93b3JrZG9jcycpLFxuICBMZXhNb2RlbEJ1aWxkaW5nU2VydmljZTogcmVxdWlyZSgnLi9sZXhtb2RlbGJ1aWxkaW5nc2VydmljZScpXG59OyIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWRmb3JtYXRpb24nXSA9IHt9O1xuQVdTLkNsb3VkRm9ybWF0aW9uID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjbG91ZGZvcm1hdGlvbicsIFsnMjAxMC0wNS0xNSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3VkZm9ybWF0aW9uJ10sICcyMDEwLTA1LTE1Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZm9ybWF0aW9uLTIwMTAtMDUtMTUubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGZvcm1hdGlvbi0yMDEwLTA1LTE1LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvY2xvdWRmb3JtYXRpb24tMjAxMC0wNS0xNS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNsb3VkRm9ybWF0aW9uO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZGZyb250J10gPSB7fTtcbkFXUy5DbG91ZEZyb250ID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjbG91ZGZyb250JywgWycyMDEzLTA1LTEyKicsICcyMDEzLTExLTExKicsICcyMDE0LTA1LTMxKicsICcyMDE0LTEwLTIxKicsICcyMDE0LTExLTA2KicsICcyMDE1LTA0LTE3KicsICcyMDE1LTA3LTI3KicsICcyMDE1LTA5LTE3KicsICcyMDE2LTAxLTEzKicsICcyMDE2LTAxLTI4KicsICcyMDE2LTA4LTAxKicsICcyMDE2LTA4LTIwKicsICcyMDE2LTA5LTA3KicsICcyMDE2LTA5LTI5KicsICcyMDE2LTExLTI1JywgJzIwMTYtMTEtMjUqJywgJzIwMTctMDMtMjUnLCAnMjAxNy0wMy0yNSonLCAnMjAxNy0xMC0zMCddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9jbG91ZGZyb250Jyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZGZyb250J10sICcyMDE2LTExLTI1Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNi0xMS0yNS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNi0xMS0yNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNi0xMS0yNS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZGZyb250J10sICcyMDE3LTAzLTI1Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNy0wMy0yNS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNy0wMy0yNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNy0wMy0yNS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZGZyb250J10sICcyMDE3LTEwLTMwJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNy0xMC0zMC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNy0xMC0zMC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkZnJvbnQtMjAxNy0xMC0zMC53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNsb3VkRnJvbnQ7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3VkaHNtJ10gPSB7fTtcbkFXUy5DbG91ZEhTTSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY2xvdWRoc20nLCBbJzIwMTQtMDUtMzAnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZGhzbSddLCAnMjAxNC0wNS0zMCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jbG91ZGhzbS0yMDE0LTA1LTMwLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvY2xvdWRoc20tMjAxNC0wNS0zMC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ2xvdWRIU007XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3VkdHJhaWwnXSA9IHt9O1xuQVdTLkNsb3VkVHJhaWwgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2Nsb3VkdHJhaWwnLCBbJzIwMTMtMTEtMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjbG91ZHRyYWlsJ10sICcyMDEzLTExLTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkdHJhaWwtMjAxMy0xMS0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Nsb3VkdHJhaWwtMjAxMy0xMS0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ2xvdWRUcmFpbDtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWR3YXRjaCddID0ge307XG5BV1MuQ2xvdWRXYXRjaCA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY2xvdWR3YXRjaCcsIFsnMjAxMC0wOC0wMSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3Vkd2F0Y2gnXSwgJzIwMTAtMDgtMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvbW9uaXRvcmluZy0yMDEwLTA4LTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvbW9uaXRvcmluZy0yMDEwLTA4LTAxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvbW9uaXRvcmluZy0yMDEwLTA4LTAxLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ2xvdWRXYXRjaDtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWR3YXRjaGV2ZW50cyddID0ge307XG5BV1MuQ2xvdWRXYXRjaEV2ZW50cyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY2xvdWR3YXRjaGV2ZW50cycsIFsnMjAxNC0wMi0wMyonLCAnMjAxNS0xMC0wNyddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3Vkd2F0Y2hldmVudHMnXSwgJzIwMTUtMTAtMDcnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZXZlbnRzLTIwMTUtMTAtMDcubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9ldmVudHMtMjAxNS0xMC0wNy5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ2xvdWRXYXRjaEV2ZW50cztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snY2xvdWR3YXRjaGxvZ3MnXSA9IHt9O1xuQVdTLkNsb3VkV2F0Y2hMb2dzID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjbG91ZHdhdGNobG9ncycsIFsnMjAxNC0wMy0yOCddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2Nsb3Vkd2F0Y2hsb2dzJ10sICcyMDE0LTAzLTI4Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2xvZ3MtMjAxNC0wMy0yOC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2xvZ3MtMjAxNC0wMy0yOC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ2xvdWRXYXRjaExvZ3M7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2NvZGVidWlsZCddID0ge307XG5BV1MuQ29kZUJ1aWxkID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjb2RlYnVpbGQnLCBbJzIwMTYtMTAtMDYnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjb2RlYnVpbGQnXSwgJzIwMTYtMTAtMDYnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvY29kZWJ1aWxkLTIwMTYtMTAtMDYubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jb2RlYnVpbGQtMjAxNi0xMC0wNi5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ29kZUJ1aWxkO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjb2RlY29tbWl0J10gPSB7fTtcbkFXUy5Db2RlQ29tbWl0ID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjb2RlY29tbWl0JywgWycyMDE1LTA0LTEzJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY29kZWNvbW1pdCddLCAnMjAxNS0wNC0xMycsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jb2RlY29tbWl0LTIwMTUtMDQtMTMubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jb2RlY29tbWl0LTIwMTUtMDQtMTMucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNvZGVDb21taXQ7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2NvZGVkZXBsb3knXSA9IHt9O1xuQVdTLkNvZGVEZXBsb3kgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2NvZGVkZXBsb3knLCBbJzIwMTQtMTAtMDYnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjb2RlZGVwbG95J10sICcyMDE0LTEwLTA2Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2NvZGVkZXBsb3ktMjAxNC0xMC0wNi5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2NvZGVkZXBsb3ktMjAxNC0xMC0wNi5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2NvZGVkZXBsb3ktMjAxNC0xMC0wNi53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNvZGVEZXBsb3k7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2NvZGVwaXBlbGluZSddID0ge307XG5BV1MuQ29kZVBpcGVsaW5lID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjb2RlcGlwZWxpbmUnLCBbJzIwMTUtMDctMDknXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjb2RlcGlwZWxpbmUnXSwgJzIwMTUtMDctMDknLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvY29kZXBpcGVsaW5lLTIwMTUtMDctMDkubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jb2RlcGlwZWxpbmUtMjAxNS0wNy0wOS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ29kZVBpcGVsaW5lO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjb2duaXRvaWRlbnRpdHknXSA9IHt9O1xuQVdTLkNvZ25pdG9JZGVudGl0eSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY29nbml0b2lkZW50aXR5JywgWycyMDE0LTA2LTMwJ10pO1xucmVxdWlyZSgnLi4vbGliL3NlcnZpY2VzL2NvZ25pdG9pZGVudGl0eScpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY29nbml0b2lkZW50aXR5J10sICcyMDE0LTA2LTMwJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2NvZ25pdG8taWRlbnRpdHktMjAxNC0wNi0zMC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2NvZ25pdG8taWRlbnRpdHktMjAxNC0wNi0zMC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ29nbml0b0lkZW50aXR5O1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydjb2duaXRvaWRlbnRpdHlzZXJ2aWNlcHJvdmlkZXInXSA9IHt9O1xuQVdTLkNvZ25pdG9JZGVudGl0eVNlcnZpY2VQcm92aWRlciA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY29nbml0b2lkZW50aXR5c2VydmljZXByb3ZpZGVyJywgWycyMDE2LTA0LTE4J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snY29nbml0b2lkZW50aXR5c2VydmljZXByb3ZpZGVyJ10sICcyMDE2LTA0LTE4Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2NvZ25pdG8taWRwLTIwMTYtMDQtMTgubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jb2duaXRvLWlkcC0yMDE2LTA0LTE4LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5Db2duaXRvSWRlbnRpdHlTZXJ2aWNlUHJvdmlkZXI7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2NvZ25pdG9zeW5jJ10gPSB7fTtcbkFXUy5Db2duaXRvU3luYyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnY29nbml0b3N5bmMnLCBbJzIwMTQtMDYtMzAnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjb2duaXRvc3luYyddLCAnMjAxNC0wNi0zMCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9jb2duaXRvLXN5bmMtMjAxNC0wNi0zMC5taW4uanNvbicpO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ29nbml0b1N5bmM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2NvbmZpZ3NlcnZpY2UnXSA9IHt9O1xuQVdTLkNvbmZpZ1NlcnZpY2UgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2NvbmZpZ3NlcnZpY2UnLCBbJzIwMTQtMTEtMTInXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjb25maWdzZXJ2aWNlJ10sICcyMDE0LTExLTEyJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2NvbmZpZy0yMDE0LTExLTEyLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvY29uZmlnLTIwMTQtMTEtMTIucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNvbmZpZ1NlcnZpY2U7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2N1ciddID0ge307XG5BV1MuQ1VSID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdjdXInLCBbJzIwMTctMDEtMDYnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydjdXInXSwgJzIwMTctMDEtMDYnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvY3VyLTIwMTctMDEtMDYubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9jdXItMjAxNy0wMS0wNi5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuQ1VSO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydkZXZpY2VmYXJtJ10gPSB7fTtcbkFXUy5EZXZpY2VGYXJtID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdkZXZpY2VmYXJtJywgWycyMDE1LTA2LTIzJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZGV2aWNlZmFybSddLCAnMjAxNS0wNi0yMycsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9kZXZpY2VmYXJtLTIwMTUtMDYtMjMubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9kZXZpY2VmYXJtLTIwMTUtMDYtMjMucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkRldmljZUZhcm07XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2RpcmVjdGNvbm5lY3QnXSA9IHt9O1xuQVdTLkRpcmVjdENvbm5lY3QgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2RpcmVjdGNvbm5lY3QnLCBbJzIwMTItMTAtMjUnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydkaXJlY3Rjb25uZWN0J10sICcyMDEyLTEwLTI1Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2RpcmVjdGNvbm5lY3QtMjAxMi0xMC0yNS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2RpcmVjdGNvbm5lY3QtMjAxMi0xMC0yNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRGlyZWN0Q29ubmVjdDtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snZHluYW1vZGInXSA9IHt9O1xuQVdTLkR5bmFtb0RCID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdkeW5hbW9kYicsIFsnMjAxMS0xMi0wNScsICcyMDEyLTA4LTEwJ10pO1xucmVxdWlyZSgnLi4vbGliL3NlcnZpY2VzL2R5bmFtb2RiJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydkeW5hbW9kYiddLCAnMjAxMS0xMi0wNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9keW5hbW9kYi0yMDExLTEyLTA1Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZHluYW1vZGItMjAxMS0xMi0wNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2R5bmFtb2RiLTIwMTEtMTItMDUud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZHluYW1vZGInXSwgJzIwMTItMDgtMTAnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZHluYW1vZGItMjAxMi0wOC0xMC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2R5bmFtb2RiLTIwMTItMDgtMTAucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9keW5hbW9kYi0yMDEyLTA4LTEwLndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRHluYW1vREI7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2R5bmFtb2Ric3RyZWFtcyddID0ge307XG5BV1MuRHluYW1vREJTdHJlYW1zID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdkeW5hbW9kYnN0cmVhbXMnLCBbJzIwMTItMDgtMTAnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydkeW5hbW9kYnN0cmVhbXMnXSwgJzIwMTItMDgtMTAnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvc3RyZWFtcy5keW5hbW9kYi0yMDEyLTA4LTEwLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvc3RyZWFtcy5keW5hbW9kYi0yMDEyLTA4LTEwLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5EeW5hbW9EQlN0cmVhbXM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2VjMiddID0ge307XG5BV1MuRUMyID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdlYzInLCBbJzIwMTMtMDYtMTUqJywgJzIwMTMtMTAtMTUqJywgJzIwMTQtMDItMDEqJywgJzIwMTQtMDUtMDEqJywgJzIwMTQtMDYtMTUqJywgJzIwMTQtMDktMDEqJywgJzIwMTQtMTAtMDEqJywgJzIwMTUtMDMtMDEqJywgJzIwMTUtMDQtMTUqJywgJzIwMTUtMTAtMDEqJywgJzIwMTYtMDQtMDEqJywgJzIwMTYtMDktMTUqJywgJzIwMTYtMTEtMTUnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvZWMyJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydlYzInXSwgJzIwMTYtMTEtMTUnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZWMyLTIwMTYtMTEtMTUubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9lYzItMjAxNi0xMS0xNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2VjMi0yMDE2LTExLTE1LndhaXRlcnMyLmpzb24nKS53YWl0ZXJzO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRUMyO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydlY3InXSA9IHt9O1xuQVdTLkVDUiA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZWNyJywgWycyMDE1LTA5LTIxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZWNyJ10sICcyMDE1LTA5LTIxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2Vjci0yMDE1LTA5LTIxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWNyLTIwMTUtMDktMjEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkVDUjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snZWNzJ10gPSB7fTtcbkFXUy5FQ1MgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2VjcycsIFsnMjAxNC0xMS0xMyddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2VjcyddLCAnMjAxNC0xMS0xMycsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lY3MtMjAxNC0xMS0xMy5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2Vjcy0yMDE0LTExLTEzLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWNzLTIwMTQtMTEtMTMud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FQ1M7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2VmcyddID0ge307XG5BV1MuRUZTID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdlZnMnLCBbJzIwMTUtMDItMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydlZnMnXSwgJzIwMTUtMDItMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2ZpbGVzeXN0ZW0tMjAxNS0wMi0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2VsYXN0aWNmaWxlc3lzdGVtLTIwMTUtMDItMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkVGUztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snZWxhc3RpY2FjaGUnXSA9IHt9O1xuQVdTLkVsYXN0aUNhY2hlID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdlbGFzdGljYWNoZScsIFsnMjAxMi0xMS0xNSonLCAnMjAxNC0wMy0yNConLCAnMjAxNC0wNy0xNSonLCAnMjAxNC0wOS0zMConLCAnMjAxNS0wMi0wMiddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2VsYXN0aWNhY2hlJ10sICcyMDE1LTAyLTAyJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2VsYXN0aWNhY2hlLTIwMTUtMDItMDIubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljYWNoZS0yMDE1LTAyLTAyLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2FjaGUtMjAxNS0wMi0wMi53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkVsYXN0aUNhY2hlO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydlbGFzdGljYmVhbnN0YWxrJ10gPSB7fTtcbkFXUy5FbGFzdGljQmVhbnN0YWxrID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdlbGFzdGljYmVhbnN0YWxrJywgWycyMDEwLTEyLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snZWxhc3RpY2JlYW5zdGFsayddLCAnMjAxMC0xMi0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljYmVhbnN0YWxrLTIwMTAtMTItMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljYmVhbnN0YWxrLTIwMTAtMTItMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkVsYXN0aWNCZWFuc3RhbGs7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2VsYXN0aWN0cmFuc2NvZGVyJ10gPSB7fTtcbkFXUy5FbGFzdGljVHJhbnNjb2RlciA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZWxhc3RpY3RyYW5zY29kZXInLCBbJzIwMTItMDktMjUnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydlbGFzdGljdHJhbnNjb2RlciddLCAnMjAxMi0wOS0yNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljdHJhbnNjb2Rlci0yMDEyLTA5LTI1Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY3RyYW5zY29kZXItMjAxMi0wOS0yNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2VsYXN0aWN0cmFuc2NvZGVyLTIwMTItMDktMjUud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FbGFzdGljVHJhbnNjb2RlcjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snZWxiJ10gPSB7fTtcbkFXUy5FTEIgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2VsYicsIFsnMjAxMi0wNi0wMSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2VsYiddLCAnMjAxMi0wNi0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZy0yMDEyLTA2LTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZWxhc3RpY2xvYWRiYWxhbmNpbmctMjAxMi0wNi0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2VsYXN0aWNsb2FkYmFsYW5jaW5nLTIwMTItMDYtMDEud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FTEI7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2VsYnYyJ10gPSB7fTtcbkFXUy5FTEJ2MiA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZWxidjInLCBbJzIwMTUtMTItMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydlbGJ2MiddLCAnMjAxNS0xMi0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZ3YyLTIwMTUtMTItMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZ3YyLTIwMTUtMTItMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljbG9hZGJhbGFuY2luZ3YyLTIwMTUtMTItMDEud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FTEJ2MjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snZW1yJ10gPSB7fTtcbkFXUy5FTVIgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2VtcicsIFsnMjAwOS0wMy0zMSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2VtciddLCAnMjAwOS0wMy0zMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljbWFwcmVkdWNlLTIwMDktMDMtMzEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljbWFwcmVkdWNlLTIwMDktMDMtMzEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9lbGFzdGljbWFwcmVkdWNlLTIwMDktMDMtMzEud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5FTVI7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2ZpcmVob3NlJ10gPSB7fTtcbkFXUy5GaXJlaG9zZSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZmlyZWhvc2UnLCBbJzIwMTUtMDgtMDQnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydmaXJlaG9zZSddLCAnMjAxNS0wOC0wNCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9maXJlaG9zZS0yMDE1LTA4LTA0Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZmlyZWhvc2UtMjAxNS0wOC0wNC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuRmlyZWhvc2U7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2dhbWVsaWZ0J10gPSB7fTtcbkFXUy5HYW1lTGlmdCA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnZ2FtZWxpZnQnLCBbJzIwMTUtMTAtMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydnYW1lbGlmdCddLCAnMjAxNS0xMC0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9nYW1lbGlmdC0yMDE1LTEwLTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvZ2FtZWxpZnQtMjAxNS0xMC0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuR2FtZUxpZnQ7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2luc3BlY3RvciddID0ge307XG5BV1MuSW5zcGVjdG9yID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdpbnNwZWN0b3InLCBbJzIwMTUtMDgtMTgqJywgJzIwMTYtMDItMTYnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydpbnNwZWN0b3InXSwgJzIwMTYtMDItMTYnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvaW5zcGVjdG9yLTIwMTYtMDItMTYubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9pbnNwZWN0b3ItMjAxNi0wMi0xNi5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuSW5zcGVjdG9yO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydpb3QnXSA9IHt9O1xuQVdTLklvdCA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnaW90JywgWycyMDE1LTA1LTI4J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snaW90J10sICcyMDE1LTA1LTI4Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2lvdC0yMDE1LTA1LTI4Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvaW90LTIwMTUtMDUtMjgucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLklvdDtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snaW90ZGF0YSddID0ge307XG5BV1MuSW90RGF0YSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnaW90ZGF0YScsIFsnMjAxNS0wNS0yOCddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9pb3RkYXRhJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydpb3RkYXRhJ10sICcyMDE1LTA1LTI4Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2lvdC1kYXRhLTIwMTUtMDUtMjgubWluLmpzb24nKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLklvdERhdGE7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2tpbmVzaXMnXSA9IHt9O1xuQVdTLktpbmVzaXMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ2tpbmVzaXMnLCBbJzIwMTMtMTItMDInXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydraW5lc2lzJ10sICcyMDEzLTEyLTAyJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2tpbmVzaXMtMjAxMy0xMi0wMi5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2tpbmVzaXMtMjAxMy0xMi0wMi5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL2tpbmVzaXMtMjAxMy0xMi0wMi53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLktpbmVzaXM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2ttcyddID0ge307XG5BV1MuS01TID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdrbXMnLCBbJzIwMTQtMTEtMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydrbXMnXSwgJzIwMTQtMTEtMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMva21zLTIwMTQtMTEtMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9rbXMtMjAxNC0xMS0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuS01TO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydsYW1iZGEnXSA9IHt9O1xuQVdTLkxhbWJkYSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnbGFtYmRhJywgWycyMDE0LTExLTExJywgJzIwMTUtMDMtMzEnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvbGFtYmRhJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydsYW1iZGEnXSwgJzIwMTQtMTEtMTEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvbGFtYmRhLTIwMTQtMTEtMTEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9sYW1iZGEtMjAxNC0xMS0xMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ2xhbWJkYSddLCAnMjAxNS0wMy0zMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9sYW1iZGEtMjAxNS0wMy0zMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL2xhbWJkYS0yMDE1LTAzLTMxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5MYW1iZGE7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ2xleG1vZGVsYnVpbGRpbmdzZXJ2aWNlJ10gPSB7fTtcbkFXUy5MZXhNb2RlbEJ1aWxkaW5nU2VydmljZSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnbGV4bW9kZWxidWlsZGluZ3NlcnZpY2UnLCBbJzIwMTctMDQtMTknXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydsZXhtb2RlbGJ1aWxkaW5nc2VydmljZSddLCAnMjAxNy0wNC0xOScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9sZXgtbW9kZWxzLTIwMTctMDQtMTkubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9sZXgtbW9kZWxzLTIwMTctMDQtMTkucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLkxleE1vZGVsQnVpbGRpbmdTZXJ2aWNlO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydsZXhydW50aW1lJ10gPSB7fTtcbkFXUy5MZXhSdW50aW1lID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdsZXhydW50aW1lJywgWycyMDE2LTExLTI4J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snbGV4cnVudGltZSddLCAnMjAxNi0xMS0yOCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9ydW50aW1lLmxleC0yMDE2LTExLTI4Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvcnVudGltZS5sZXgtMjAxNi0xMS0yOC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuTGV4UnVudGltZTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snbWFjaGluZWxlYXJuaW5nJ10gPSB7fTtcbkFXUy5NYWNoaW5lTGVhcm5pbmcgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ21hY2hpbmVsZWFybmluZycsIFsnMjAxNC0xMi0xMiddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9tYWNoaW5lbGVhcm5pbmcnKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ21hY2hpbmVsZWFybmluZyddLCAnMjAxNC0xMi0xMicsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9tYWNoaW5lbGVhcm5pbmctMjAxNC0xMi0xMi5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL21hY2hpbmVsZWFybmluZy0yMDE0LTEyLTEyLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvbWFjaGluZWxlYXJuaW5nLTIwMTQtMTItMTIud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5NYWNoaW5lTGVhcm5pbmc7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ21hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3MnXSA9IHt9O1xuQVdTLk1hcmtldHBsYWNlQ29tbWVyY2VBbmFseXRpY3MgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ21hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3MnLCBbJzIwMTUtMDctMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydtYXJrZXRwbGFjZWNvbW1lcmNlYW5hbHl0aWNzJ10sICcyMDE1LTA3LTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL21hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3MtMjAxNS0wNy0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL21hcmtldHBsYWNlY29tbWVyY2VhbmFseXRpY3MtMjAxNS0wNy0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuTWFya2V0cGxhY2VDb21tZXJjZUFuYWx5dGljcztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snbW9iaWxlYW5hbHl0aWNzJ10gPSB7fTtcbkFXUy5Nb2JpbGVBbmFseXRpY3MgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ21vYmlsZWFuYWx5dGljcycsIFsnMjAxNC0wNi0wNSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ21vYmlsZWFuYWx5dGljcyddLCAnMjAxNC0wNi0wNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9tb2JpbGVhbmFseXRpY3MtMjAxNC0wNi0wNS5taW4uanNvbicpO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuTW9iaWxlQW5hbHl0aWNzO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydtdHVyayddID0ge307XG5BV1MuTVR1cmsgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ210dXJrJywgWycyMDE3LTAxLTE3J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snbXR1cmsnXSwgJzIwMTctMDEtMTcnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvbXR1cmstcmVxdWVzdGVyLTIwMTctMDEtMTcubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9tdHVyay1yZXF1ZXN0ZXItMjAxNy0wMS0xNy5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuTVR1cms7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ29wc3dvcmtzJ10gPSB7fTtcbkFXUy5PcHNXb3JrcyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnb3Bzd29ya3MnLCBbJzIwMTMtMDItMTgnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydvcHN3b3JrcyddLCAnMjAxMy0wMi0xOCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9vcHN3b3Jrcy0yMDEzLTAyLTE4Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvb3Bzd29ya3MtMjAxMy0wMi0xOC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL29wc3dvcmtzLTIwMTMtMDItMTgud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5PcHNXb3JrcztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1sncG9sbHknXSA9IHt9O1xuQVdTLlBvbGx5ID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdwb2xseScsIFsnMjAxNi0wNi0xMCddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9wb2xseScpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sncG9sbHknXSwgJzIwMTYtMDYtMTAnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvcG9sbHktMjAxNi0wNi0xMC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3BvbGx5LTIwMTYtMDYtMTAucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLlBvbGx5O1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydyZHMnXSA9IHt9O1xuQVdTLlJEUyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgncmRzJywgWycyMDEzLTAxLTEwJywgJzIwMTMtMDItMTInLCAnMjAxMy0wOS0wOScsICcyMDE0LTA5LTAxJywgJzIwMTQtMDktMDEqJywgJzIwMTQtMTAtMzEnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvcmRzJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydyZHMnXSwgJzIwMTMtMDEtMTAnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTMtMDEtMTAubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9yZHMtMjAxMy0wMS0xMC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3JkcyddLCAnMjAxMy0wMi0xMicsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9yZHMtMjAxMy0wMi0xMi5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3Jkcy0yMDEzLTAyLTEyLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1sncmRzJ10sICcyMDEzLTA5LTA5Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3Jkcy0yMDEzLTA5LTA5Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTMtMDktMDkucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICBtb2RlbC53YWl0ZXJzID0gcmVxdWlyZSgnLi4vYXBpcy9yZHMtMjAxMy0wOS0wOS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydyZHMnXSwgJzIwMTQtMDktMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTQtMDktMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9yZHMtMjAxNC0wOS0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3JkcyddLCAnMjAxNC0xMC0zMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9yZHMtMjAxNC0xMC0zMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3Jkcy0yMDE0LTEwLTMxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvcmRzLTIwMTQtMTAtMzEud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5SRFM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3JlZHNoaWZ0J10gPSB7fTtcbkFXUy5SZWRzaGlmdCA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgncmVkc2hpZnQnLCBbJzIwMTItMTItMDEnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydyZWRzaGlmdCddLCAnMjAxMi0xMi0wMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9yZWRzaGlmdC0yMDEyLTEyLTAxLm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvcmVkc2hpZnQtMjAxMi0xMi0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL3JlZHNoaWZ0LTIwMTItMTItMDEud2FpdGVyczIuanNvbicpLndhaXRlcnM7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5SZWRzaGlmdDtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1sncmVrb2duaXRpb24nXSA9IHt9O1xuQVdTLlJla29nbml0aW9uID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdyZWtvZ25pdGlvbicsIFsnMjAxNi0wNi0yNyddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3Jla29nbml0aW9uJ10sICcyMDE2LTA2LTI3Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3Jla29nbml0aW9uLTIwMTYtMDYtMjcubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9yZWtvZ25pdGlvbi0yMDE2LTA2LTI3LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5SZWtvZ25pdGlvbjtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1sncm91dGU1MyddID0ge307XG5BV1MuUm91dGU1MyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgncm91dGU1MycsIFsnMjAxMy0wNC0wMSddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9yb3V0ZTUzJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydyb3V0ZTUzJ10sICcyMDEzLTA0LTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3JvdXRlNTMtMjAxMy0wNC0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3JvdXRlNTMtMjAxMy0wNC0wMS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIG1vZGVsLndhaXRlcnMgPSByZXF1aXJlKCcuLi9hcGlzL3JvdXRlNTMtMjAxMy0wNC0wMS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLlJvdXRlNTM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3JvdXRlNTNkb21haW5zJ10gPSB7fTtcbkFXUy5Sb3V0ZTUzRG9tYWlucyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgncm91dGU1M2RvbWFpbnMnLCBbJzIwMTQtMDUtMTUnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydyb3V0ZTUzZG9tYWlucyddLCAnMjAxNC0wNS0xNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9yb3V0ZTUzZG9tYWlucy0yMDE0LTA1LTE1Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvcm91dGU1M2RvbWFpbnMtMjAxNC0wNS0xNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuUm91dGU1M0RvbWFpbnM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3MzJ10gPSB7fTtcbkFXUy5TMyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnczMnLCBbJzIwMDYtMDMtMDEnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvczMnKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3MzJ10sICcyMDA2LTAzLTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3MzLTIwMDYtMDMtMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9zMy0yMDA2LTAzLTAxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvczMtMjAwNi0wMy0wMS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLlMzO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydzZXJ2aWNlY2F0YWxvZyddID0ge307XG5BV1MuU2VydmljZUNhdGFsb2cgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3NlcnZpY2VjYXRhbG9nJywgWycyMDE1LTEyLTEwJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snc2VydmljZWNhdGFsb2cnXSwgJzIwMTUtMTItMTAnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvc2VydmljZWNhdGFsb2ctMjAxNS0xMi0xMC5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3NlcnZpY2VjYXRhbG9nLTIwMTUtMTItMTAucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNlcnZpY2VDYXRhbG9nO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydzZXMnXSA9IHt9O1xuQVdTLlNFUyA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnc2VzJywgWycyMDEwLTEyLTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snc2VzJ10sICcyMDEwLTEyLTAxJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL2VtYWlsLTIwMTAtMTItMDEubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9lbWFpbC0yMDEwLTEyLTAxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgbW9kZWwud2FpdGVycyA9IHJlcXVpcmUoJy4uL2FwaXMvZW1haWwtMjAxMC0xMi0wMS53YWl0ZXJzMi5qc29uJykud2FpdGVycztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNFUztcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snc25zJ10gPSB7fTtcbkFXUy5TTlMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3NucycsIFsnMjAxMC0wMy0zMSddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3NucyddLCAnMjAxMC0wMy0zMScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9zbnMtMjAxMC0wMy0zMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3Nucy0yMDEwLTAzLTMxLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TTlM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3NxcyddID0ge307XG5BV1MuU1FTID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdzcXMnLCBbJzIwMTItMTEtMDUnXSk7XG5yZXF1aXJlKCcuLi9saWIvc2VydmljZXMvc3FzJyk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWydzcXMnXSwgJzIwMTItMTEtMDUnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvc3FzLTIwMTItMTEtMDUubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9zcXMtMjAxMi0xMS0wNS5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuU1FTO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWydzc20nXSA9IHt9O1xuQVdTLlNTTSA9IFNlcnZpY2UuZGVmaW5lU2VydmljZSgnc3NtJywgWycyMDE0LTExLTA2J10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snc3NtJ10sICcyMDE0LTExLTA2Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3NzbS0yMDE0LTExLTA2Lm1pbi5qc29uJyk7XG4gICAgbW9kZWwucGFnaW5hdG9ycyA9IHJlcXVpcmUoJy4uL2FwaXMvc3NtLTIwMTQtMTEtMDYucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNTTTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snc3RvcmFnZWdhdGV3YXknXSA9IHt9O1xuQVdTLlN0b3JhZ2VHYXRld2F5ID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCdzdG9yYWdlZ2F0ZXdheScsIFsnMjAxMy0wNi0zMCddKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3N0b3JhZ2VnYXRld2F5J10sICcyMDEzLTA2LTMwJywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICB2YXIgbW9kZWwgPSByZXF1aXJlKCcuLi9hcGlzL3N0b3JhZ2VnYXRld2F5LTIwMTMtMDYtMzAubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy9zdG9yYWdlZ2F0ZXdheS0yMDEzLTA2LTMwLnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TdG9yYWdlR2F0ZXdheTtcbiIsInJlcXVpcmUoJy4uL2xpYi9ub2RlX2xvYWRlcicpO1xudmFyIEFXUyA9IHJlcXVpcmUoJy4uL2xpYi9jb3JlJyk7XG52YXIgU2VydmljZSA9IEFXUy5TZXJ2aWNlO1xudmFyIGFwaUxvYWRlciA9IEFXUy5hcGlMb2FkZXI7XG5cbmFwaUxvYWRlci5zZXJ2aWNlc1snc3RzJ10gPSB7fTtcbkFXUy5TVFMgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3N0cycsIFsnMjAxMS0wNi0xNSddKTtcbnJlcXVpcmUoJy4uL2xpYi9zZXJ2aWNlcy9zdHMnKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcGlMb2FkZXIuc2VydmljZXNbJ3N0cyddLCAnMjAxMS0wNi0xNScsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgdmFyIG1vZGVsID0gcmVxdWlyZSgnLi4vYXBpcy9zdHMtMjAxMS0wNi0xNS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3N0cy0yMDExLTA2LTE1LnBhZ2luYXRvcnMuanNvbicpLnBhZ2luYXRpb247XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9LFxuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TVFM7XG4iLCJyZXF1aXJlKCcuLi9saWIvbm9kZV9sb2FkZXInKTtcbnZhciBBV1MgPSByZXF1aXJlKCcuLi9saWIvY29yZScpO1xudmFyIFNlcnZpY2UgPSBBV1MuU2VydmljZTtcbnZhciBhcGlMb2FkZXIgPSBBV1MuYXBpTG9hZGVyO1xuXG5hcGlMb2FkZXIuc2VydmljZXNbJ3dhZiddID0ge307XG5BV1MuV0FGID0gU2VydmljZS5kZWZpbmVTZXJ2aWNlKCd3YWYnLCBbJzIwMTUtMDgtMjQnXSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoYXBpTG9hZGVyLnNlcnZpY2VzWyd3YWYnXSwgJzIwMTUtMDgtMjQnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvd2FmLTIwMTUtMDgtMjQubWluLmpzb24nKTtcbiAgICBtb2RlbC5wYWdpbmF0b3JzID0gcmVxdWlyZSgnLi4vYXBpcy93YWYtMjAxNS0wOC0yNC5wYWdpbmF0b3JzLmpzb24nKS5wYWdpbmF0aW9uO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfSxcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBBV1MuV0FGO1xuIiwicmVxdWlyZSgnLi4vbGliL25vZGVfbG9hZGVyJyk7XG52YXIgQVdTID0gcmVxdWlyZSgnLi4vbGliL2NvcmUnKTtcbnZhciBTZXJ2aWNlID0gQVdTLlNlcnZpY2U7XG52YXIgYXBpTG9hZGVyID0gQVdTLmFwaUxvYWRlcjtcblxuYXBpTG9hZGVyLnNlcnZpY2VzWyd3b3JrZG9jcyddID0ge307XG5BV1MuV29ya0RvY3MgPSBTZXJ2aWNlLmRlZmluZVNlcnZpY2UoJ3dvcmtkb2NzJywgWycyMDE2LTA1LTAxJ10pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGFwaUxvYWRlci5zZXJ2aWNlc1snd29ya2RvY3MnXSwgJzIwMTYtMDUtMDEnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHZhciBtb2RlbCA9IHJlcXVpcmUoJy4uL2FwaXMvd29ya2RvY3MtMjAxNi0wNS0wMS5taW4uanNvbicpO1xuICAgIG1vZGVsLnBhZ2luYXRvcnMgPSByZXF1aXJlKCcuLi9hcGlzL3dvcmtkb2NzLTIwMTYtMDUtMDEucGFnaW5hdG9ycy5qc29uJykucGFnaW5hdGlvbjtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH0sXG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQVdTLldvcmtEb2NzO1xuIiwiZnVuY3Rpb24gYXBpTG9hZGVyKHN2YywgdmVyc2lvbikge1xuICBpZiAoIWFwaUxvYWRlci5zZXJ2aWNlcy5oYXNPd25Qcm9wZXJ0eShzdmMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkU2VydmljZTogRmFpbGVkIHRvIGxvYWQgYXBpIGZvciAnICsgc3ZjKTtcbiAgfVxuICByZXR1cm4gYXBpTG9hZGVyLnNlcnZpY2VzW3N2Y11bdmVyc2lvbl07XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKlxuICogVGhpcyBtZW1iZXIgb2YgQVdTLmFwaUxvYWRlciBpcyBwcml2YXRlLCBidXQgY2hhbmdpbmcgaXQgd2lsbCBuZWNlc3NpdGF0ZSBhXG4gKiBjaGFuZ2UgdG8gLi4vc2NyaXB0cy9zZXJ2aWNlcy10YWJsZS1nZW5lcmF0b3IudHNcbiAqL1xuYXBpTG9hZGVyLnNlcnZpY2VzID0ge307XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gYXBpTG9hZGVyO1xuIiwiLy8gQVdTIFNESyBmb3IgSmF2YVNjcmlwdCB2Mi4yNjguMVxuLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBMaWNlbnNlIGF0IGh0dHBzOi8vc2RrLmFtYXpvbmF3cy5jb20vanMvQlVORExFX0xJQ0VOU0UudHh0XG5yZXF1aXJlKCcuL2Jyb3dzZXJfbG9hZGVyJyk7XG5cbnZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcblxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB3aW5kb3cuQVdTID0gQVdTO1xuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgLyoqXG4gICAgICogQGFwaSBwcml2YXRlXG4gICAgICovXG4gICAgbW9kdWxlLmV4cG9ydHMgPSBBV1M7XG59XG5pZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSBzZWxmLkFXUyA9IEFXUztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICogRE8gTk9UIFJFTU9WRVxuICogYnJvd3NlciBidWlsZGVyIHdpbGwgc3RyaXAgb3V0IHRoaXMgbGluZSBpZiBzZXJ2aWNlcyBhcmUgc3VwcGxpZWQgb24gdGhlIGNvbW1hbmQgbGluZS5cbiAqL1xucmVxdWlyZSgnLi4vY2xpZW50cy9icm93c2VyX2RlZmF1bHQnKTsiLCJ2YXIgSG1hYyA9IHJlcXVpcmUoJy4vYnJvd3NlckhtYWMnKTtcbnZhciBNZDUgPSByZXF1aXJlKCcuL2Jyb3dzZXJNZDUnKTtcbnZhciBTaGExID0gcmVxdWlyZSgnLi9icm93c2VyU2hhMScpO1xudmFyIFNoYTI1NiA9IHJlcXVpcmUoJy4vYnJvd3NlclNoYTI1NicpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSB7XG4gICAgY3JlYXRlSGFzaDogZnVuY3Rpb24gY3JlYXRlSGFzaChhbGcpIHtcbiAgICAgIGFsZyA9IGFsZy50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKGFsZyA9PT0gJ21kNScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNZDUoKTtcbiAgICAgIH0gZWxzZSBpZiAoYWxnID09PSAnc2hhMjU2Jykge1xuICAgICAgICByZXR1cm4gbmV3IFNoYTI1NigpO1xuICAgICAgfSBlbHNlIGlmIChhbGcgPT09ICdzaGExJykge1xuICAgICAgICByZXR1cm4gbmV3IFNoYTEoKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdIYXNoIGFsZ29yaXRobSAnICsgYWxnICsgJyBpcyBub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIFNESycpO1xuICAgIH0sXG4gICAgY3JlYXRlSG1hYzogZnVuY3Rpb24gY3JlYXRlSG1hYyhhbGcsIGtleSkge1xuICAgICAgYWxnID0gYWxnLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoYWxnID09PSAnbWQ1Jykge1xuICAgICAgICByZXR1cm4gbmV3IEhtYWMoTWQ1LCBrZXkpO1xuICAgICAgfSBlbHNlIGlmIChhbGcgPT09ICdzaGEyNTYnKSB7XG4gICAgICAgIHJldHVybiBuZXcgSG1hYyhTaGEyNTYsIGtleSk7XG4gICAgICB9IGVsc2UgaWYgKGFsZyA9PT0gJ3NoYTEnKSB7XG4gICAgICAgIHJldHVybiBuZXcgSG1hYyhTaGExLCBrZXkpO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0hNQUMgYWxnb3JpdGhtICcgKyBhbGcgKyAnIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgU0RLJyk7XG4gICAgfSxcbiAgICBjcmVhdGVTaWduOiBmdW5jdGlvbigpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY3JlYXRlU2lnbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJyb3dzZXInKTtcbiAgICB9XG4gIH1cbiIsInZhciBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXIvJykuQnVmZmVyO1xuXG4vKipcbiAqIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIHN0YXRpYyBtZXRob2QgYGlzVmlld2Agb2YgYEFycmF5QnVmZmVyYCwgd2hpY2ggaXNcbiAqIGUuZy4gbWlzc2luZyBpbiBJRSAxMC5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuaWYgKFxuICAgIHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3ID09PSAndW5kZWZpbmVkJ1xuKSB7XG4gICAgQXJyYXlCdWZmZXIuaXNWaWV3ID0gZnVuY3Rpb24oYXJnKSB7XG4gICAgICAgIHJldHVybiB2aWV3U3RyaW5ncy5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmcpKSA+IC0xO1xuICAgIH07XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciB2aWV3U3RyaW5ncyA9IFtcbiAgICAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDMyQXJyYXldJyxcbiAgICAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICAnW29iamVjdCBEYXRhVmlld10nLFxuXTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gaXNFbXB0eURhdGEoZGF0YSkge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YS5ieXRlTGVuZ3RoID09PSAwO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBjb252ZXJ0VG9CdWZmZXIoZGF0YSkge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZGF0YSA9IG5ldyBCdWZmZXIoZGF0YSwgJ3V0ZjgnKTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhLmJ1ZmZlciwgZGF0YS5ieXRlT2Zmc2V0LCBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZGF0YSk7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IHtcbiAgICBpc0VtcHR5RGF0YTogaXNFbXB0eURhdGEsXG4gICAgY29udmVydFRvQnVmZmVyOiBjb252ZXJ0VG9CdWZmZXIsXG59XG4iLCJ2YXIgaGFzaFV0aWxzID0gcmVxdWlyZSgnLi9icm93c2VySGFzaFV0aWxzJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIEhtYWMoaGFzaEN0b3IsIHNlY3JldCkge1xuICAgIHRoaXMuaGFzaCA9IG5ldyBoYXNoQ3RvcigpO1xuICAgIHRoaXMub3V0ZXIgPSBuZXcgaGFzaEN0b3IoKTtcblxuICAgIHZhciBpbm5lciA9IGJ1ZmZlckZyb21TZWNyZXQoaGFzaEN0b3IsIHNlY3JldCk7XG4gICAgdmFyIG91dGVyID0gbmV3IFVpbnQ4QXJyYXkoaGFzaEN0b3IuQkxPQ0tfU0laRSk7XG4gICAgb3V0ZXIuc2V0KGlubmVyKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGFzaEN0b3IuQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICAgIGlubmVyW2ldIF49IDB4MzY7XG4gICAgICAgIG91dGVyW2ldIF49IDB4NWM7XG4gICAgfVxuXG4gICAgdGhpcy5oYXNoLnVwZGF0ZShpbm5lcik7XG4gICAgdGhpcy5vdXRlci51cGRhdGUob3V0ZXIpO1xuXG4gICAgLy8gWmVybyBvdXQgdGhlIGNvcGllZCBrZXkgYnVmZmVyLlxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5uZXIuYnl0ZUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlubmVyW2ldID0gMDtcbiAgICB9XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IEhtYWM7XG5cbkhtYWMucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uICh0b0hhc2gpIHtcbiAgICBpZiAoaGFzaFV0aWxzLmlzRW1wdHlEYXRhKHRvSGFzaCkgfHwgdGhpcy5lcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgICB0aGlzLmhhc2gudXBkYXRlKGhhc2hVdGlscy5jb252ZXJ0VG9CdWZmZXIodG9IYXNoKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmVycm9yID0gZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbn07XG5cbkhtYWMucHJvdG90eXBlLmRpZ2VzdCA9IGZ1bmN0aW9uIChlbmNvZGluZykge1xuICAgIGlmICghdGhpcy5vdXRlci5maW5pc2hlZCkge1xuICAgICAgICB0aGlzLm91dGVyLnVwZGF0ZSh0aGlzLmhhc2guZGlnZXN0KCkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm91dGVyLmRpZ2VzdChlbmNvZGluZyk7XG59XG5cbmZ1bmN0aW9uIGJ1ZmZlckZyb21TZWNyZXQoaGFzaEN0b3IsIHNlY3JldCkge1xuICAgIHZhciBpbnB1dCA9IGhhc2hVdGlscy5jb252ZXJ0VG9CdWZmZXIoc2VjcmV0KTtcbiAgICBpZiAoaW5wdXQuYnl0ZUxlbmd0aCA+IGhhc2hDdG9yLkJMT0NLX1NJWkUpIHtcbiAgICAgICAgdmFyIGJ1ZmZlckhhc2ggPSBuZXcgaGFzaEN0b3I7XG4gICAgICAgIGJ1ZmZlckhhc2gudXBkYXRlKGlucHV0KTtcbiAgICAgICAgaW5wdXQgPSBidWZmZXJIYXNoLmRpZ2VzdCgpO1xuICAgIH1cbiAgICB2YXIgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoaGFzaEN0b3IuQkxPQ0tfU0laRSk7XG4gICAgYnVmZmVyLnNldChpbnB1dCk7XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiIsInZhciBoYXNoVXRpbHMgPSByZXF1aXJlKCcuL2Jyb3dzZXJIYXNoVXRpbHMnKTtcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXIvJykuQnVmZmVyO1xuXG52YXIgQkxPQ0tfU0laRSA9IDY0O1xuXG52YXIgRElHRVNUX0xFTkdUSCA9IDE2O1xuXG52YXIgSU5JVCA9IFtcbiAgICAweDY3NDUyMzAxLFxuICAgIDB4ZWZjZGFiODksXG4gICAgMHg5OGJhZGNmZSxcbiAgICAweDEwMzI1NDc2LFxuXTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gTWQ1KCkge1xuICAgIHRoaXMuc3RhdGUgPSBbXG4gICAgICAgIDB4Njc0NTIzMDEsXG4gICAgICAgIDB4ZWZjZGFiODksXG4gICAgICAgIDB4OThiYWRjZmUsXG4gICAgICAgIDB4MTAzMjU0NzYsXG4gICAgXTtcbiAgICB0aGlzLmJ1ZmZlciA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoQkxPQ0tfU0laRSkpO1xuICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICB0aGlzLmJ5dGVzSGFzaGVkID0gMDtcbiAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IE1kNTtcblxuTWQ1LkJMT0NLX1NJWkUgPSBCTE9DS19TSVpFO1xuXG5NZDUucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChzb3VyY2VEYXRhKSB7XG4gICAgaWYgKGhhc2hVdGlscy5pc0VtcHR5RGF0YShzb3VyY2VEYXRhKSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmluaXNoZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0ZWQgdG8gdXBkYXRlIGFuIGFscmVhZHkgZmluaXNoZWQgaGFzaC4nKTtcbiAgICB9XG5cbiAgICB2YXIgZGF0YSA9IGhhc2hVdGlscy5jb252ZXJ0VG9CdWZmZXIoc291cmNlRGF0YSk7XG4gICAgdmFyIHBvc2l0aW9uID0gMDtcbiAgICB2YXIgYnl0ZUxlbmd0aCA9IGRhdGEuYnl0ZUxlbmd0aDtcbiAgICB0aGlzLmJ5dGVzSGFzaGVkICs9IGJ5dGVMZW5ndGg7XG4gICAgd2hpbGUgKGJ5dGVMZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyLnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIGRhdGFbcG9zaXRpb24rK10pO1xuICAgICAgICBieXRlTGVuZ3RoLS07XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA9PT0gQkxPQ0tfU0laRSkge1xuICAgICAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbn07XG5cbk1kNS5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKGVuY29kaW5nKSB7XG4gICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICAgIHZhciBfYSA9IHRoaXMsIGJ1ZmZlciA9IF9hLmJ1ZmZlciwgdW5kZWNvcmF0ZWRMZW5ndGggPSBfYS5idWZmZXJMZW5ndGgsIGJ5dGVzSGFzaGVkID0gX2EuYnl0ZXNIYXNoZWQ7XG4gICAgICAgIHZhciBiaXRzSGFzaGVkID0gYnl0ZXNIYXNoZWQgKiA4O1xuICAgICAgICBidWZmZXIuc2V0VWludDgodGhpcy5idWZmZXJMZW5ndGgrKywgMTI4KTtcbiAgICAgICAgLy8gRW5zdXJlIHRoZSBmaW5hbCBibG9jayBoYXMgZW5vdWdoIHJvb20gZm9yIHRoZSBoYXNoZWQgbGVuZ3RoXG4gICAgICAgIGlmICh1bmRlY29yYXRlZExlbmd0aCAlIEJMT0NLX1NJWkUgPj0gQkxPQ0tfU0laRSAtIDgpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLmJ1ZmZlckxlbmd0aDsgaSA8IEJMT0NLX1NJWkU7IGkrKykge1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGFzaEJ1ZmZlcigpO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGkgPSB0aGlzLmJ1ZmZlckxlbmd0aDsgaSA8IEJMT0NLX1NJWkUgLSA4OyBpKyspIHtcbiAgICAgICAgICAgIGJ1ZmZlci5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICBidWZmZXIuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA4LCBiaXRzSGFzaGVkID4+PiAwLCB0cnVlKTtcbiAgICAgICAgYnVmZmVyLnNldFVpbnQzMihCTE9DS19TSVpFIC0gNCwgTWF0aC5mbG9vcihiaXRzSGFzaGVkIC8gMHgxMDAwMDAwMDApLCB0cnVlKTtcbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cbiAgICB2YXIgb3V0ID0gbmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcihESUdFU1RfTEVOR1RIKSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcbiAgICAgICAgb3V0LnNldFVpbnQzMihpICogNCwgdGhpcy5zdGF0ZVtpXSwgdHJ1ZSk7XG4gICAgfVxuICAgIHZhciBidWZmID0gbmV3IEJ1ZmZlcihvdXQuYnVmZmVyLCBvdXQuYnl0ZU9mZnNldCwgb3V0LmJ5dGVMZW5ndGgpO1xuICAgIHJldHVybiBlbmNvZGluZyA/IGJ1ZmYudG9TdHJpbmcoZW5jb2RpbmcpIDogYnVmZjtcbn07XG5cbk1kNS5wcm90b3R5cGUuaGFzaEJ1ZmZlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX2EgPSB0aGlzLCBidWZmZXIgPSBfYS5idWZmZXIsIHN0YXRlID0gX2Euc3RhdGU7XG4gICAgdmFyIGEgPSBzdGF0ZVswXSwgYiA9IHN0YXRlWzFdLCBjID0gc3RhdGVbMl0sIGQgPSBzdGF0ZVszXTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigwLCB0cnVlKSwgNywgMHhkNzZhYTQ3OCk7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNCwgdHJ1ZSksIDEyLCAweGU4YzdiNzU2KTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgMTcsIDB4MjQyMDcwZGIpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDEyLCB0cnVlKSwgMjIsIDB4YzFiZGNlZWUpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDE2LCB0cnVlKSwgNywgMHhmNTdjMGZhZik7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMjAsIHRydWUpLCAxMiwgMHg0Nzg3YzYyYSk7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCAxNywgMHhhODMwNDYxMyk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMjgsIHRydWUpLCAyMiwgMHhmZDQ2OTUwMSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMzIsIHRydWUpLCA3LCAweDY5ODA5OGQ4KTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigzNiwgdHJ1ZSksIDEyLCAweDhiNDRmN2FmKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig0MCwgdHJ1ZSksIDE3LCAweGZmZmY1YmIxKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig0NCwgdHJ1ZSksIDIyLCAweDg5NWNkN2JlKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig0OCwgdHJ1ZSksIDcsIDB4NmI5MDExMjIpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDUyLCB0cnVlKSwgMTIsIDB4ZmQ5ODcxOTMpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgMTcsIDB4YTY3OTQzOGUpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDYwLCB0cnVlKSwgMjIsIDB4NDliNDA4MjEpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQsIHRydWUpLCA1LCAweGY2MWUyNTYyKTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigyNCwgdHJ1ZSksIDksIDB4YzA0MGIzNDApO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMTQsIDB4MjY1ZTVhNTEpO1xuICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCAyMCwgMHhlOWI2YzdhYSk7XG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMjAsIHRydWUpLCA1LCAweGQ2MmYxMDVkKTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0MCwgdHJ1ZSksIDksIDB4MDI0NDE0NTMpO1xuICAgIGMgPSBnZyhjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDYwLCB0cnVlKSwgMTQsIDB4ZDhhMWU2ODEpO1xuICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDE2LCB0cnVlKSwgMjAsIDB4ZTdkM2ZiYzgpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDM2LCB0cnVlKSwgNSwgMHgyMWUxY2RlNik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNTYsIHRydWUpLCA5LCAweGMzMzcwN2Q2KTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigxMiwgdHJ1ZSksIDE0LCAweGY0ZDUwZDg3KTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigzMiwgdHJ1ZSksIDIwLCAweDQ1NWExNGVkKTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig1MiwgdHJ1ZSksIDUsIDB4YTllM2U5MDUpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDgsIHRydWUpLCA5LCAweGZjZWZhM2Y4KTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDE0LCAweDY3NmYwMmQ5KTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig0OCwgdHJ1ZSksIDIwLCAweDhkMmE0YzhhKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigyMCwgdHJ1ZSksIDQsIDB4ZmZmYTM5NDIpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDMyLCB0cnVlKSwgMTEsIDB4ODc3MWY2ODEpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMTYsIDB4NmQ5ZDYxMjIpO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgMjMsIDB4ZmRlNTM4MGMpO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQsIHRydWUpLCA0LCAweGE0YmVlYTQ0KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDExLCAweDRiZGVjZmE5KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDE2LCAweGY2YmI0YjYwKTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig0MCwgdHJ1ZSksIDIzLCAweGJlYmZiYzcwKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig1MiwgdHJ1ZSksIDQsIDB4Mjg5YjdlYzYpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCAxMSwgMHhlYWExMjdmYSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxNiwgMHhkNGVmMzA4NSk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCAyMywgMHgwNDg4MWQwNSk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMzYsIHRydWUpLCA0LCAweGQ5ZDRkMDM5KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0OCwgdHJ1ZSksIDExLCAweGU2ZGI5OWU1KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDE2LCAweDFmYTI3Y2Y4KTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgMjMsIDB4YzRhYzU2NjUpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCA2LCAweGY0MjkyMjQ0KTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDEwLCAweDQzMmFmZjk3KTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig1NiwgdHJ1ZSksIDE1LCAweGFiOTQyM2E3KTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigyMCwgdHJ1ZSksIDIxLCAweGZjOTNhMDM5KTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig0OCwgdHJ1ZSksIDYsIDB4NjU1YjU5YzMpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDEyLCB0cnVlKSwgMTAsIDB4OGYwY2NjOTIpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQwLCB0cnVlKSwgMTUsIDB4ZmZlZmY0N2QpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDQsIHRydWUpLCAyMSwgMHg4NTg0NWRkMSk7XG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMzIsIHRydWUpLCA2LCAweDZmYTg3ZTRmKTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDEwLCAweGZlMmNlNmUwKTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyNCwgdHJ1ZSksIDE1LCAweGEzMDE0MzE0KTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig1MiwgdHJ1ZSksIDIxLCAweDRlMDgxMWExKTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDYsIDB4Zjc1MzdlODIpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMTAsIDB4YmQzYWYyMzUpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDgsIHRydWUpLCAxNSwgMHgyYWQ3ZDJiYik7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMzYsIHRydWUpLCAyMSwgMHhlYjg2ZDM5MSk7XG4gICAgc3RhdGVbMF0gPSAoYSArIHN0YXRlWzBdKSAmIDB4RkZGRkZGRkY7XG4gICAgc3RhdGVbMV0gPSAoYiArIHN0YXRlWzFdKSAmIDB4RkZGRkZGRkY7XG4gICAgc3RhdGVbMl0gPSAoYyArIHN0YXRlWzJdKSAmIDB4RkZGRkZGRkY7XG4gICAgc3RhdGVbM10gPSAoZCArIHN0YXRlWzNdKSAmIDB4RkZGRkZGRkY7XG59O1xuXG5mdW5jdGlvbiBjbW4ocSwgYSwgYiwgeCwgcywgdCkge1xuICAgIGEgPSAoKChhICsgcSkgJiAweEZGRkZGRkZGKSArICgoeCArIHQpICYgMHhGRkZGRkZGRikpICYgMHhGRkZGRkZGRjtcbiAgICByZXR1cm4gKCgoYSA8PCBzKSB8IChhID4+PiAoMzIgLSBzKSkpICsgYikgJiAweEZGRkZGRkZGO1xufVxuXG5mdW5jdGlvbiBmZihhLCBiLCBjLCBkLCB4LCBzLCB0KSB7XG4gICAgcmV0dXJuIGNtbigoYiAmIGMpIHwgKCh+YikgJiBkKSwgYSwgYiwgeCwgcywgdCk7XG59XG5cbmZ1bmN0aW9uIGdnKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICByZXR1cm4gY21uKChiICYgZCkgfCAoYyAmICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaGgoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgIHJldHVybiBjbW4oYiBeIGMgXiBkLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaWkoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgIHJldHVybiBjbW4oYyBeIChiIHwgKH5kKSksIGEsIGIsIHgsIHMsIHQpO1xufVxuIiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlci8nKS5CdWZmZXI7XG52YXIgaGFzaFV0aWxzID0gcmVxdWlyZSgnLi9icm93c2VySGFzaFV0aWxzJyk7XG5cbnZhciBCTE9DS19TSVpFID0gNjQ7XG5cbnZhciBESUdFU1RfTEVOR1RIID0gMjA7XG5cbnZhciBLRVkgPSBuZXcgVWludDMyQXJyYXkoW1xuICAgIDB4NWE4Mjc5OTksXG4gICAgMHg2ZWQ5ZWJhMSxcbiAgICAweDhmMWJiY2RjIHwgMCxcbiAgICAweGNhNjJjMWQ2IHwgMFxuXSk7XG5cbnZhciBJTklUID0gW1xuICAgIDB4NmEwOWU2NjcsXG4gICAgMHhiYjY3YWU4NSxcbiAgICAweDNjNmVmMzcyLFxuICAgIDB4YTU0ZmY1M2EsXG4gICAgMHg1MTBlNTI3ZixcbiAgICAweDliMDU2ODhjLFxuICAgIDB4MWY4M2Q5YWIsXG4gICAgMHg1YmUwY2QxOSxcbl07XG5cbnZhciBNQVhfSEFTSEFCTEVfTEVOR1RIID0gTWF0aC5wb3coMiwgNTMpIC0gMTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gU2hhMSgpIHtcbiAgICB0aGlzLmgwID0gMHg2NzQ1MjMwMTtcbiAgICB0aGlzLmgxID0gMHhFRkNEQUI4OTtcbiAgICB0aGlzLmgyID0gMHg5OEJBRENGRTtcbiAgICB0aGlzLmgzID0gMHgxMDMyNTQ3NjtcbiAgICB0aGlzLmg0ID0gMHhDM0QyRTFGMDtcbiAgICAvLyBUaGUgZmlyc3QgNjQgYnl0ZXMgKDE2IHdvcmRzKSBpcyB0aGUgZGF0YSBjaHVua1xuICAgIHRoaXMuYmxvY2sgPSBuZXcgVWludDMyQXJyYXkoODApO1xuICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICB0aGlzLnNoaWZ0ID0gMjQ7XG4gICAgdGhpcy50b3RhbExlbmd0aCA9IDA7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IFNoYTE7XG5cblNoYTEuQkxPQ0tfU0laRSA9IEJMT0NLX1NJWkU7XG5cblNoYTEucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgaWYgKHRoaXMuZmluaXNoZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0ZWQgdG8gdXBkYXRlIGFuIGFscmVhZHkgZmluaXNoZWQgaGFzaC4nKTtcbiAgICB9XG5cbiAgICBpZiAoaGFzaFV0aWxzLmlzRW1wdHlEYXRhKGRhdGEpKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGRhdGEgPSBoYXNoVXRpbHMuY29udmVydFRvQnVmZmVyKGRhdGEpO1xuXG4gICAgdmFyIGxlbmd0aCA9IGRhdGEubGVuZ3RoO1xuICAgIHRoaXMudG90YWxMZW5ndGggKz0gbGVuZ3RoICogODtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMud3JpdGUoZGF0YVtpXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG59O1xuXG5TaGExLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlKGJ5dGUpIHtcbiAgICB0aGlzLmJsb2NrW3RoaXMub2Zmc2V0XSB8PSAoYnl0ZSAmIDB4ZmYpIDw8IHRoaXMuc2hpZnQ7XG4gICAgaWYgKHRoaXMuc2hpZnQpIHtcbiAgICAgICAgdGhpcy5zaGlmdCAtPSA4O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub2Zmc2V0Kys7XG4gICAgICAgIHRoaXMuc2hpZnQgPSAyNDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vZmZzZXQgPT09IDE2KSB0aGlzLnByb2Nlc3NCbG9jaygpO1xufTtcblxuU2hhMS5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKGVuY29kaW5nKSB7XG4gICAgLy8gUGFkXG4gICAgdGhpcy53cml0ZSgweDgwKTtcbiAgICBpZiAodGhpcy5vZmZzZXQgPiAxNCB8fCAodGhpcy5vZmZzZXQgPT09IDE0ICYmIHRoaXMuc2hpZnQgPCAyNCkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0Jsb2NrKCk7XG4gICAgfVxuICAgIHRoaXMub2Zmc2V0ID0gMTQ7XG4gICAgdGhpcy5zaGlmdCA9IDI0O1xuXG4gICAgLy8gNjQtYml0IGxlbmd0aCBiaWctZW5kaWFuXG4gICAgdGhpcy53cml0ZSgweDAwKTsgLy8gbnVtYmVycyB0aGlzIGJpZyBhcmVuJ3QgYWNjdXJhdGUgaW4gamF2YXNjcmlwdCBhbnl3YXlcbiAgICB0aGlzLndyaXRlKDB4MDApOyAvLyAuLlNvIGp1c3QgaGFyZC1jb2RlIHRvIHplcm8uXG4gICAgdGhpcy53cml0ZSh0aGlzLnRvdGFsTGVuZ3RoID4gMHhmZmZmZmZmZmZmID8gdGhpcy50b3RhbExlbmd0aCAvIDB4MTAwMDAwMDAwMDAgOiAweDAwKTtcbiAgICB0aGlzLndyaXRlKHRoaXMudG90YWxMZW5ndGggPiAweGZmZmZmZmZmID8gdGhpcy50b3RhbExlbmd0aCAvIDB4MTAwMDAwMDAwIDogMHgwMCk7XG4gICAgZm9yICh2YXIgcyA9IDI0OyBzID49IDA7IHMgLT0gOCkge1xuICAgICAgICB0aGlzLndyaXRlKHRoaXMudG90YWxMZW5ndGggPj4gcyk7XG4gICAgfVxuICAgIC8vIFRoZSB2YWx1ZSBpbiBzdGF0ZSBpcyBsaXR0bGUtZW5kaWFuIHJhdGhlciB0aGFuIGJpZy1lbmRpYW4sIHNvIGZsaXBcbiAgICAvLyBlYWNoIHdvcmQgaW50byBhIG5ldyBVaW50OEFycmF5XG4gICAgdmFyIG91dCA9IG5ldyBCdWZmZXIoRElHRVNUX0xFTkdUSCk7XG4gICAgdmFyIG91dFZpZXcgPSBuZXcgRGF0YVZpZXcob3V0LmJ1ZmZlcik7XG4gICAgb3V0Vmlldy5zZXRVaW50MzIoMCwgdGhpcy5oMCwgZmFsc2UpO1xuICAgIG91dFZpZXcuc2V0VWludDMyKDQsIHRoaXMuaDEsIGZhbHNlKTtcbiAgICBvdXRWaWV3LnNldFVpbnQzMig4LCB0aGlzLmgyLCBmYWxzZSk7XG4gICAgb3V0Vmlldy5zZXRVaW50MzIoMTIsIHRoaXMuaDMsIGZhbHNlKTtcbiAgICBvdXRWaWV3LnNldFVpbnQzMigxNiwgdGhpcy5oNCwgZmFsc2UpO1xuXG4gICAgcmV0dXJuIGVuY29kaW5nID8gb3V0LnRvU3RyaW5nKGVuY29kaW5nKSA6IG91dDtcbn07XG5cblNoYTEucHJvdG90eXBlLnByb2Nlc3NCbG9jayA9IGZ1bmN0aW9uIHByb2Nlc3NCbG9jaygpIHtcbiAgICAvLyBFeHRlbmQgdGhlIHNpeHRlZW4gMzItYml0IHdvcmRzIGludG8gZWlnaHR5IDMyLWJpdCB3b3JkczpcbiAgICBmb3IgKHZhciBpID0gMTY7IGkgPCA4MDsgaSsrKSB7XG4gICAgICB2YXIgdyA9IHRoaXMuYmxvY2tbaSAtIDNdIF4gdGhpcy5ibG9ja1tpIC0gOF0gXiB0aGlzLmJsb2NrW2kgLSAxNF0gXiB0aGlzLmJsb2NrW2kgLSAxNl07XG4gICAgICB0aGlzLmJsb2NrW2ldID0gKHcgPDwgMSkgfCAodyA+Pj4gMzEpO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgaGFzaCB2YWx1ZSBmb3IgdGhpcyBjaHVuazpcbiAgICB2YXIgYSA9IHRoaXMuaDA7XG4gICAgdmFyIGIgPSB0aGlzLmgxO1xuICAgIHZhciBjID0gdGhpcy5oMjtcbiAgICB2YXIgZCA9IHRoaXMuaDM7XG4gICAgdmFyIGUgPSB0aGlzLmg0O1xuICAgIHZhciBmLCBrO1xuXG4gICAgLy8gTWFpbiBsb29wOlxuICAgIGZvciAoaSA9IDA7IGkgPCA4MDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDIwKSB7XG4gICAgICAgIGYgPSBkIF4gKGIgJiAoYyBeIGQpKTtcbiAgICAgICAgayA9IDB4NUE4Mjc5OTk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChpIDwgNDApIHtcbiAgICAgICAgZiA9IGIgXiBjIF4gZDtcbiAgICAgICAgayA9IDB4NkVEOUVCQTE7XG4gICAgICB9XG4gICAgICBlbHNlIGlmIChpIDwgNjApIHtcbiAgICAgICAgZiA9IChiICYgYykgfCAoZCAmIChiIHwgYykpO1xuICAgICAgICBrID0gMHg4RjFCQkNEQztcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBmID0gYiBeIGMgXiBkO1xuICAgICAgICBrID0gMHhDQTYyQzFENjtcbiAgICAgIH1cbiAgICAgIHZhciB0ZW1wID0gKGEgPDwgNSB8IGEgPj4+IDI3KSArIGYgKyBlICsgayArICh0aGlzLmJsb2NrW2ldfDApO1xuICAgICAgZSA9IGQ7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSAoYiA8PCAzMCB8IGIgPj4+IDIpO1xuICAgICAgYiA9IGE7XG4gICAgICBhID0gdGVtcDtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhpcyBjaHVuaydzIGhhc2ggdG8gcmVzdWx0IHNvIGZhcjpcbiAgICB0aGlzLmgwID0gKHRoaXMuaDAgKyBhKSB8IDA7XG4gICAgdGhpcy5oMSA9ICh0aGlzLmgxICsgYikgfCAwO1xuICAgIHRoaXMuaDIgPSAodGhpcy5oMiArIGMpIHwgMDtcbiAgICB0aGlzLmgzID0gKHRoaXMuaDMgKyBkKSB8IDA7XG4gICAgdGhpcy5oNCA9ICh0aGlzLmg0ICsgZSkgfCAwO1xuXG4gICAgLy8gVGhlIGJsb2NrIGlzIG5vdyByZXVzYWJsZS5cbiAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHtcbiAgICAgICAgdGhpcy5ibG9ja1tpXSA9IDA7XG4gICAgfVxufVxuIiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlci8nKS5CdWZmZXI7XG52YXIgaGFzaFV0aWxzID0gcmVxdWlyZSgnLi9icm93c2VySGFzaFV0aWxzJyk7XG5cbnZhciBCTE9DS19TSVpFID0gNjQ7XG5cbnZhciBESUdFU1RfTEVOR1RIID0gMzI7XG5cbnZhciBLRVkgPSBuZXcgVWludDMyQXJyYXkoW1xuICAgIDB4NDI4YTJmOTgsXG4gICAgMHg3MTM3NDQ5MSxcbiAgICAweGI1YzBmYmNmLFxuICAgIDB4ZTliNWRiYTUsXG4gICAgMHgzOTU2YzI1YixcbiAgICAweDU5ZjExMWYxLFxuICAgIDB4OTIzZjgyYTQsXG4gICAgMHhhYjFjNWVkNSxcbiAgICAweGQ4MDdhYTk4LFxuICAgIDB4MTI4MzViMDEsXG4gICAgMHgyNDMxODViZSxcbiAgICAweDU1MGM3ZGMzLFxuICAgIDB4NzJiZTVkNzQsXG4gICAgMHg4MGRlYjFmZSxcbiAgICAweDliZGMwNmE3LFxuICAgIDB4YzE5YmYxNzQsXG4gICAgMHhlNDliNjljMSxcbiAgICAweGVmYmU0Nzg2LFxuICAgIDB4MGZjMTlkYzYsXG4gICAgMHgyNDBjYTFjYyxcbiAgICAweDJkZTkyYzZmLFxuICAgIDB4NGE3NDg0YWEsXG4gICAgMHg1Y2IwYTlkYyxcbiAgICAweDc2Zjk4OGRhLFxuICAgIDB4OTgzZTUxNTIsXG4gICAgMHhhODMxYzY2ZCxcbiAgICAweGIwMDMyN2M4LFxuICAgIDB4YmY1OTdmYzcsXG4gICAgMHhjNmUwMGJmMyxcbiAgICAweGQ1YTc5MTQ3LFxuICAgIDB4MDZjYTYzNTEsXG4gICAgMHgxNDI5Mjk2NyxcbiAgICAweDI3YjcwYTg1LFxuICAgIDB4MmUxYjIxMzgsXG4gICAgMHg0ZDJjNmRmYyxcbiAgICAweDUzMzgwZDEzLFxuICAgIDB4NjUwYTczNTQsXG4gICAgMHg3NjZhMGFiYixcbiAgICAweDgxYzJjOTJlLFxuICAgIDB4OTI3MjJjODUsXG4gICAgMHhhMmJmZThhMSxcbiAgICAweGE4MWE2NjRiLFxuICAgIDB4YzI0YjhiNzAsXG4gICAgMHhjNzZjNTFhMyxcbiAgICAweGQxOTJlODE5LFxuICAgIDB4ZDY5OTA2MjQsXG4gICAgMHhmNDBlMzU4NSxcbiAgICAweDEwNmFhMDcwLFxuICAgIDB4MTlhNGMxMTYsXG4gICAgMHgxZTM3NmMwOCxcbiAgICAweDI3NDg3NzRjLFxuICAgIDB4MzRiMGJjYjUsXG4gICAgMHgzOTFjMGNiMyxcbiAgICAweDRlZDhhYTRhLFxuICAgIDB4NWI5Y2NhNGYsXG4gICAgMHg2ODJlNmZmMyxcbiAgICAweDc0OGY4MmVlLFxuICAgIDB4NzhhNTYzNmYsXG4gICAgMHg4NGM4NzgxNCxcbiAgICAweDhjYzcwMjA4LFxuICAgIDB4OTBiZWZmZmEsXG4gICAgMHhhNDUwNmNlYixcbiAgICAweGJlZjlhM2Y3LFxuICAgIDB4YzY3MTc4ZjJcbl0pO1xuXG52YXIgSU5JVCA9IFtcbiAgICAweDZhMDllNjY3LFxuICAgIDB4YmI2N2FlODUsXG4gICAgMHgzYzZlZjM3MixcbiAgICAweGE1NGZmNTNhLFxuICAgIDB4NTEwZTUyN2YsXG4gICAgMHg5YjA1Njg4YyxcbiAgICAweDFmODNkOWFiLFxuICAgIDB4NWJlMGNkMTksXG5dO1xuXG52YXIgTUFYX0hBU0hBQkxFX0xFTkdUSCA9IE1hdGgucG93KDIsIDUzKSAtIDE7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gU2hhMjU2KCkge1xuICAgIHRoaXMuc3RhdGUgPSBbXG4gICAgICAgIDB4NmEwOWU2NjcsXG4gICAgICAgIDB4YmI2N2FlODUsXG4gICAgICAgIDB4M2M2ZWYzNzIsXG4gICAgICAgIDB4YTU0ZmY1M2EsXG4gICAgICAgIDB4NTEwZTUyN2YsXG4gICAgICAgIDB4OWIwNTY4OGMsXG4gICAgICAgIDB4MWY4M2Q5YWIsXG4gICAgICAgIDB4NWJlMGNkMTksXG4gICAgXTtcbiAgICB0aGlzLnRlbXAgPSBuZXcgSW50MzJBcnJheSg2NCk7XG4gICAgdGhpcy5idWZmZXIgPSBuZXcgVWludDhBcnJheSg2NCk7XG4gICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgPSAwO1xuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBTaGEyNTY7XG5cblNoYTI1Ni5CTE9DS19TSVpFID0gQkxPQ0tfU0laRTtcblxuU2hhMjU2LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZW1wdGVkIHRvIHVwZGF0ZSBhbiBhbHJlYWR5IGZpbmlzaGVkIGhhc2guJyk7XG4gICAgfVxuXG4gICAgaWYgKGhhc2hVdGlscy5pc0VtcHR5RGF0YShkYXRhKSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBkYXRhID0gaGFzaFV0aWxzLmNvbnZlcnRUb0J1ZmZlcihkYXRhKTtcblxuICAgIHZhciBwb3NpdGlvbiA9IDA7XG4gICAgdmFyIGJ5dGVMZW5ndGggPSBkYXRhLmJ5dGVMZW5ndGg7XG4gICAgdGhpcy5ieXRlc0hhc2hlZCArPSBieXRlTGVuZ3RoO1xuICAgIGlmICh0aGlzLmJ5dGVzSGFzaGVkICogOCA+IE1BWF9IQVNIQUJMRV9MRU5HVEgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgaGFzaCBtb3JlIHRoYW4gMl41MyAtIDEgYml0cycpO1xuICAgIH1cblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlckxlbmd0aCsrXSA9IGRhdGFbcG9zaXRpb24rK107XG4gICAgICAgIGJ5dGVMZW5ndGgtLTtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVyTGVuZ3RoID09PSBCTE9DS19TSVpFKSB7XG4gICAgICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xufTtcblxuU2hhMjU2LnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoZW5jb2RpbmcpIHtcbiAgICBpZiAoIXRoaXMuZmluaXNoZWQpIHtcbiAgICAgICAgdmFyIGJpdHNIYXNoZWQgPSB0aGlzLmJ5dGVzSGFzaGVkICogODtcbiAgICAgICAgdmFyIGJ1ZmZlclZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWZmZXIuYnVmZmVyLCB0aGlzLmJ1ZmZlci5ieXRlT2Zmc2V0LCB0aGlzLmJ1ZmZlci5ieXRlTGVuZ3RoKTtcbiAgICAgICAgdmFyIHVuZGVjb3JhdGVkTGVuZ3RoID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDgodGhpcy5idWZmZXJMZW5ndGgrKywgMHg4MCk7XG4gICAgICAgIC8vIEVuc3VyZSB0aGUgZmluYWwgYmxvY2sgaGFzIGVub3VnaCByb29tIGZvciB0aGUgaGFzaGVkIGxlbmd0aFxuICAgICAgICBpZiAodW5kZWNvcmF0ZWRMZW5ndGggJSBCTE9DS19TSVpFID49IEJMT0NLX1NJWkUgLSA4KSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgICAgICAgICBidWZmZXJWaWV3LnNldFVpbnQ4KGksIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRSAtIDg7IGkrKykge1xuICAgICAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICBidWZmZXJWaWV3LnNldFVpbnQzMihCTE9DS19TSVpFIC0gOCwgTWF0aC5mbG9vcihiaXRzSGFzaGVkIC8gMHgxMDAwMDAwMDApLCB0cnVlKTtcbiAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50MzIoQkxPQ0tfU0laRSAtIDQsIGJpdHNIYXNoZWQpO1xuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5maW5pc2hlZCA9IHRydWU7XG4gICAgfVxuICAgIC8vIFRoZSB2YWx1ZSBpbiBzdGF0ZSBpcyBsaXR0bGUtZW5kaWFuIHJhdGhlciB0aGFuIGJpZy1lbmRpYW4sIHNvIGZsaXBcbiAgICAvLyBlYWNoIHdvcmQgaW50byBhIG5ldyBVaW50OEFycmF5XG4gICAgdmFyIG91dCA9IG5ldyBCdWZmZXIoRElHRVNUX0xFTkdUSCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgICAgb3V0W2kgKiA0XSA9ICh0aGlzLnN0YXRlW2ldID4+PiAyNCkgJiAweGZmO1xuICAgICAgICBvdXRbaSAqIDQgKyAxXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAxNikgJiAweGZmO1xuICAgICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgIG91dFtpICogNCArIDNdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDApICYgMHhmZjtcbiAgICB9XG4gICAgcmV0dXJuIGVuY29kaW5nID8gb3V0LnRvU3RyaW5nKGVuY29kaW5nKSA6IG91dDtcbn07XG5cblNoYTI1Ni5wcm90b3R5cGUuaGFzaEJ1ZmZlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX2EgPSB0aGlzLFxuICAgICAgICBidWZmZXIgPSBfYS5idWZmZXIsXG4gICAgICAgIHN0YXRlID0gX2Euc3RhdGU7XG4gICAgdmFyIHN0YXRlMCA9IHN0YXRlWzBdLFxuICAgICAgICBzdGF0ZTEgPSBzdGF0ZVsxXSxcbiAgICAgICAgc3RhdGUyID0gc3RhdGVbMl0sXG4gICAgICAgIHN0YXRlMyA9IHN0YXRlWzNdLFxuICAgICAgICBzdGF0ZTQgPSBzdGF0ZVs0XSxcbiAgICAgICAgc3RhdGU1ID0gc3RhdGVbNV0sXG4gICAgICAgIHN0YXRlNiA9IHN0YXRlWzZdLFxuICAgICAgICBzdGF0ZTcgPSBzdGF0ZVs3XTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IEJMT0NLX1NJWkU7IGkrKykge1xuICAgICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgICAgICB0aGlzLnRlbXBbaV0gPSAoKChidWZmZXJbaSAqIDRdICYgMHhmZikgPDwgMjQpIHxcbiAgICAgICAgICAgICAgICAoKGJ1ZmZlclsoaSAqIDQpICsgMV0gJiAweGZmKSA8PCAxNikgfFxuICAgICAgICAgICAgICAgICgoYnVmZmVyWyhpICogNCkgKyAyXSAmIDB4ZmYpIDw8IDgpIHxcbiAgICAgICAgICAgICAgICAoYnVmZmVyWyhpICogNCkgKyAzXSAmIDB4ZmYpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciB1ID0gdGhpcy50ZW1wW2kgLSAyXTtcbiAgICAgICAgICAgIHZhciB0MV8xID0gKHUgPj4+IDE3IHwgdSA8PCAxNSkgXlxuICAgICAgICAgICAgICAgICh1ID4+PiAxOSB8IHUgPDwgMTMpIF5cbiAgICAgICAgICAgICAgICAodSA+Pj4gMTApO1xuICAgICAgICAgICAgdSA9IHRoaXMudGVtcFtpIC0gMTVdO1xuICAgICAgICAgICAgdmFyIHQyXzEgPSAodSA+Pj4gNyB8IHUgPDwgMjUpIF5cbiAgICAgICAgICAgICAgICAodSA+Pj4gMTggfCB1IDw8IDE0KSBeXG4gICAgICAgICAgICAgICAgKHUgPj4+IDMpO1xuICAgICAgICAgICAgdGhpcy50ZW1wW2ldID0gKHQxXzEgKyB0aGlzLnRlbXBbaSAtIDddIHwgMCkgK1xuICAgICAgICAgICAgICAgICh0Ml8xICsgdGhpcy50ZW1wW2kgLSAxNl0gfCAwKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdDEgPSAoKCgoKHN0YXRlNCA+Pj4gNiB8IHN0YXRlNCA8PCAyNikgXlxuICAgICAgICAgICAgKHN0YXRlNCA+Pj4gMTEgfCBzdGF0ZTQgPDwgMjEpIF5cbiAgICAgICAgICAgIChzdGF0ZTQgPj4+IDI1IHwgc3RhdGU0IDw8IDcpKVxuICAgICAgICAgICAgKyAoKHN0YXRlNCAmIHN0YXRlNSkgXiAofnN0YXRlNCAmIHN0YXRlNikpKSB8IDApXG4gICAgICAgICAgICArICgoc3RhdGU3ICsgKChLRVlbaV0gKyB0aGlzLnRlbXBbaV0pIHwgMCkpIHwgMCkpIHwgMDtcbiAgICAgICAgdmFyIHQyID0gKCgoc3RhdGUwID4+PiAyIHwgc3RhdGUwIDw8IDMwKSBeXG4gICAgICAgICAgICAoc3RhdGUwID4+PiAxMyB8IHN0YXRlMCA8PCAxOSkgXlxuICAgICAgICAgICAgKHN0YXRlMCA+Pj4gMjIgfCBzdGF0ZTAgPDwgMTApKSArICgoc3RhdGUwICYgc3RhdGUxKSBeIChzdGF0ZTAgJiBzdGF0ZTIpIF4gKHN0YXRlMSAmIHN0YXRlMikpKSB8IDA7XG4gICAgICAgIHN0YXRlNyA9IHN0YXRlNjtcbiAgICAgICAgc3RhdGU2ID0gc3RhdGU1O1xuICAgICAgICBzdGF0ZTUgPSBzdGF0ZTQ7XG4gICAgICAgIHN0YXRlNCA9IChzdGF0ZTMgKyB0MSkgfCAwO1xuICAgICAgICBzdGF0ZTMgPSBzdGF0ZTI7XG4gICAgICAgIHN0YXRlMiA9IHN0YXRlMTtcbiAgICAgICAgc3RhdGUxID0gc3RhdGUwO1xuICAgICAgICBzdGF0ZTAgPSAodDEgKyB0MikgfCAwO1xuICAgIH1cbiAgICBzdGF0ZVswXSArPSBzdGF0ZTA7XG4gICAgc3RhdGVbMV0gKz0gc3RhdGUxO1xuICAgIHN0YXRlWzJdICs9IHN0YXRlMjtcbiAgICBzdGF0ZVszXSArPSBzdGF0ZTM7XG4gICAgc3RhdGVbNF0gKz0gc3RhdGU0O1xuICAgIHN0YXRlWzVdICs9IHN0YXRlNTtcbiAgICBzdGF0ZVs2XSArPSBzdGF0ZTY7XG4gICAgc3RhdGVbN10gKz0gc3RhdGU3O1xufTtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8vIGJyb3dzZXIgc3BlY2lmaWMgbW9kdWxlc1xudXRpbC5jcnlwdG8ubGliID0gcmVxdWlyZSgnLi9icm93c2VyQ3J5cHRvTGliJyk7XG51dGlsLkJ1ZmZlciA9IHJlcXVpcmUoJ2J1ZmZlci8nKS5CdWZmZXI7XG51dGlsLnVybCA9IHJlcXVpcmUoJ3VybC8nKTtcbnV0aWwucXVlcnlzdHJpbmcgPSByZXF1aXJlKCdxdWVyeXN0cmluZy8nKTtcbnV0aWwuZW52aXJvbm1lbnQgPSAnanMnO1xudXRpbC5jcmVhdGVFdmVudFN0cmVhbSA9IHJlcXVpcmUoJy4vZXZlbnQtc3RyZWFtL2J1ZmZlcmVkLWNyZWF0ZS1ldmVudC1zdHJlYW0nKS5jcmVhdGVFdmVudFN0cmVhbTtcblxudmFyIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEFXUztcblxucmVxdWlyZSgnLi9jcmVkZW50aWFscycpO1xucmVxdWlyZSgnLi9jcmVkZW50aWFscy9jcmVkZW50aWFsX3Byb3ZpZGVyX2NoYWluJyk7XG5yZXF1aXJlKCcuL2NyZWRlbnRpYWxzL3RlbXBvcmFyeV9jcmVkZW50aWFscycpO1xucmVxdWlyZSgnLi9jcmVkZW50aWFscy93ZWJfaWRlbnRpdHlfY3JlZGVudGlhbHMnKTtcbnJlcXVpcmUoJy4vY3JlZGVudGlhbHMvY29nbml0b19pZGVudGl0eV9jcmVkZW50aWFscycpO1xucmVxdWlyZSgnLi9jcmVkZW50aWFscy9zYW1sX2NyZWRlbnRpYWxzJyk7XG5cbi8vIExvYWQgdGhlIERPTVBhcnNlciBYTUwgcGFyc2VyXG5BV1MuWE1MLlBhcnNlciA9IHJlcXVpcmUoJy4veG1sL2Jyb3dzZXJfcGFyc2VyJyk7XG5cbi8vIExvYWQgdGhlIFhIUiBIdHRwQ2xpZW50XG5yZXF1aXJlKCcuL2h0dHAveGhyJyk7XG5cbmlmICh0eXBlb2YgcHJvY2VzcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgcHJvY2VzcyA9IHtcbiAgICBicm93c2VyOiB0cnVlXG4gIH07XG59XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpLFxuICAgIHVybCA9IEFXUy51dGlsLnVybCxcbiAgICBjcnlwdG8gPSBBV1MudXRpbC5jcnlwdG8ubGliLFxuICAgIGJhc2U2NEVuY29kZSA9IEFXUy51dGlsLmJhc2U2NC5lbmNvZGUsXG4gICAgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG5cbnZhciBxdWVyeUVuY29kZSA9IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICB2YXIgcmVwbGFjZW1lbnRzID0ge1xuICAgICAgICAnKyc6ICctJyxcbiAgICAgICAgJz0nOiAnXycsXG4gICAgICAgICcvJzogJ34nXG4gICAgfTtcbiAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1tcXCs9XFwvXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50c1ttYXRjaF07XG4gICAgfSk7XG59O1xuXG52YXIgc2lnblBvbGljeSA9IGZ1bmN0aW9uIChwb2xpY3ksIHByaXZhdGVLZXkpIHtcbiAgICB2YXIgc2lnbiA9IGNyeXB0by5jcmVhdGVTaWduKCdSU0EtU0hBMScpO1xuICAgIHNpZ24ud3JpdGUocG9saWN5KTtcbiAgICByZXR1cm4gcXVlcnlFbmNvZGUoc2lnbi5zaWduKHByaXZhdGVLZXksICdiYXNlNjQnKSlcbn07XG5cbnZhciBzaWduV2l0aENhbm5lZFBvbGljeSA9IGZ1bmN0aW9uICh1cmwsIGV4cGlyZXMsIGtleVBhaXJJZCwgcHJpdmF0ZUtleSkge1xuICAgIHZhciBwb2xpY3kgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFJlc291cmNlOiB1cmwsXG4gICAgICAgICAgICAgICAgQ29uZGl0aW9uOiB7IERhdGVMZXNzVGhhbjogeyAnQVdTOkVwb2NoVGltZSc6IGV4cGlyZXMgfSB9XG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIEV4cGlyZXM6IGV4cGlyZXMsXG4gICAgICAgICdLZXktUGFpci1JZCc6IGtleVBhaXJJZCxcbiAgICAgICAgU2lnbmF0dXJlOiBzaWduUG9saWN5KHBvbGljeS50b1N0cmluZygpLCBwcml2YXRlS2V5KVxuICAgIH07XG59O1xuXG52YXIgc2lnbldpdGhDdXN0b21Qb2xpY3kgPSBmdW5jdGlvbiAocG9saWN5LCBrZXlQYWlySWQsIHByaXZhdGVLZXkpIHtcbiAgICBwb2xpY3kgPSBwb2xpY3kucmVwbGFjZSgvXFxzL21nLCBwb2xpY3kpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgUG9saWN5OiBxdWVyeUVuY29kZShiYXNlNjRFbmNvZGUocG9saWN5KSksXG4gICAgICAgICdLZXktUGFpci1JZCc6IGtleVBhaXJJZCxcbiAgICAgICAgU2lnbmF0dXJlOiBzaWduUG9saWN5KHBvbGljeSwgcHJpdmF0ZUtleSlcbiAgICB9XG59O1xuXG52YXIgZGV0ZXJtaW5lU2NoZW1lID0gZnVuY3Rpb24gKHVybCkge1xuICAgIHZhciBwYXJ0cyA9IHVybC5zcGxpdCgnOi8vJyk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFVSTC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFydHNbMF0ucmVwbGFjZSgnKicsICcnKTtcbn07XG5cbnZhciBnZXRSdG1wVXJsID0gZnVuY3Rpb24gKHJ0bXBVcmwpIHtcbiAgICB2YXIgcGFyc2VkID0gdXJsLnBhcnNlKHJ0bXBVcmwpO1xuICAgIHJldHVybiBwYXJzZWQucGF0aC5yZXBsYWNlKC9eXFwvLywgJycpICsgKHBhcnNlZC5oYXNoIHx8ICcnKTtcbn07XG5cbnZhciBnZXRSZXNvdXJjZSA9IGZ1bmN0aW9uICh1cmwpIHtcbiAgICBzd2l0Y2ggKGRldGVybWluZVNjaGVtZSh1cmwpKSB7XG4gICAgICAgIGNhc2UgJ2h0dHAnOlxuICAgICAgICBjYXNlICdodHRwcyc6XG4gICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICBjYXNlICdydG1wJzpcbiAgICAgICAgICAgIHJldHVybiBnZXRSdG1wVXJsKHVybCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgVVJJIHNjaGVtZS4gU2NoZW1lIG11c3QgYmUgb25lIG9mJ1xuICAgICAgICAgICAgICAgICsgJyBodHRwLCBodHRwcywgb3IgcnRtcCcpO1xuICAgIH1cbn07XG5cbnZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uIChlcnIsIGNhbGxiYWNrKSB7XG4gICAgaWYgKCFjYWxsYmFjayB8fCB0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKGVycik7XG59O1xuXG52YXIgaGFuZGxlU3VjY2VzcyA9IGZ1bmN0aW9uIChyZXN1bHQsIGNhbGxiYWNrKSB7XG4gICAgaWYgKCFjYWxsYmFjayB8fCB0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjYWxsYmFjayhudWxsLCByZXN1bHQpO1xufTtcblxuQVdTLkNsb3VkRnJvbnQuU2lnbmVyID0gaW5oZXJpdCh7XG4gICAgLyoqXG4gICAgICogQSBzaWduZXIgb2JqZWN0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIHNpZ25lZCBVUkxzIGFuZCBjb29raWVzIGZvciBncmFudGluZ1xuICAgICAqIGFjY2VzcyB0byBjb250ZW50IG9uIHJlc3RyaWN0ZWQgQ2xvdWRGcm9udCBkaXN0cmlidXRpb25zLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZEZyb250L2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9Qcml2YXRlQ29udGVudC5odG1sXG4gICAgICpcbiAgICAgKiBAcGFyYW0ga2V5UGFpcklkIFtTdHJpbmddICAgIChSZXF1aXJlZCkgVGhlIElEIG9mIHRoZSBDbG91ZEZyb250IGtleSBwYWlyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWluZyB1c2VkLlxuICAgICAqIEBwYXJhbSBwcml2YXRlS2V5IFtTdHJpbmddICAgKFJlcXVpcmVkKSBBIHByaXZhdGUga2V5IGluIFJTQSBmb3JtYXQuXG4gICAgICovXG4gICAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIFNpZ25lcihrZXlQYWlySWQsIHByaXZhdGVLZXkpIHtcbiAgICAgICAgaWYgKGtleVBhaXJJZCA9PT0gdm9pZCAwIHx8IHByaXZhdGVLZXkgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIGtleSBwYWlyIElEIGFuZCBwcml2YXRlIGtleSBhcmUgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMua2V5UGFpcklkID0ga2V5UGFpcklkO1xuICAgICAgICB0aGlzLnByaXZhdGVLZXkgPSBwcml2YXRlS2V5O1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBzaWduZWQgQW1hem9uIENsb3VkRnJvbnQgQ29va2llLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgW09iamVjdF0gICAgICAgICAgICBUaGUgb3B0aW9ucyB0byBjcmVhdGUgYSBzaWduZWQgY29va2llLlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyB1cmwgW1N0cmluZ10gICAgIFRoZSBVUkwgdG8gd2hpY2ggdGhlIHNpZ25hdHVyZSB3aWxsIGdyYW50XG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzLiBSZXF1aXJlZCB1bmxlc3MgeW91IHBhc3MgaW4gYSBmdWxsXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5LlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyBleHBpcmVzIFtOdW1iZXJdIEEgVW5peCBVVEMgdGltZXN0YW1wIGluZGljYXRpbmcgd2hlbiB0aGVcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUgc2hvdWxkIGV4cGlyZS4gUmVxdWlyZWQgdW5sZXNzIHlvdVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MgaW4gYSBmdWxsIHBvbGljeS5cbiAgICAgKiBAb3B0aW9uIG9wdGlvbnMgcG9saWN5IFtTdHJpbmddICBBIENsb3VkRnJvbnQgSlNPTiBwb2xpY3kuIFJlcXVpcmVkIHVubGVzc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSBwYXNzIGluIGEgdXJsIGFuZCBhbiBleHBpcnkgdGltZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYiBbRnVuY3Rpb25dIGlmIGEgY2FsbGJhY2sgaXMgcHJvdmlkZWQsIHRoaXMgZnVuY3Rpb24gd2lsbFxuICAgICAqICAgcGFzcyB0aGUgaGFzaCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlciAoYWZ0ZXIgdGhlIGVycm9yIHBhcmFtZXRlcikgdG9cbiAgICAgKiAgIHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEByZXR1cm4gW09iamVjdF0gaWYgY2FsbGVkIHN5bmNocm9ub3VzbHkgKHdpdGggbm8gY2FsbGJhY2spLCByZXR1cm5zIHRoZVxuICAgICAqICAgc2lnbmVkIGNvb2tpZSBwYXJhbWV0ZXJzLlxuICAgICAqIEByZXR1cm4gW251bGxdIG5vdGhpbmcgaXMgcmV0dXJuZWQgaWYgYSBjYWxsYmFjayBpcyBwcm92aWRlZC5cbiAgICAgKi9cbiAgICBnZXRTaWduZWRDb29raWU6IGZ1bmN0aW9uIChvcHRpb25zLCBjYikge1xuICAgICAgICB2YXIgc2lnbmF0dXJlSGFzaCA9ICdwb2xpY3knIGluIG9wdGlvbnNcbiAgICAgICAgICAgID8gc2lnbldpdGhDdXN0b21Qb2xpY3kob3B0aW9ucy5wb2xpY3ksIHRoaXMua2V5UGFpcklkLCB0aGlzLnByaXZhdGVLZXkpXG4gICAgICAgICAgICA6IHNpZ25XaXRoQ2FubmVkUG9saWN5KG9wdGlvbnMudXJsLCBvcHRpb25zLmV4cGlyZXMsIHRoaXMua2V5UGFpcklkLCB0aGlzLnByaXZhdGVLZXkpO1xuXG4gICAgICAgIHZhciBjb29raWVIYXNoID0ge307XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzaWduYXR1cmVIYXNoKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNpZ25hdHVyZUhhc2gsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBjb29raWVIYXNoWydDbG91ZEZyb250LScgKyBrZXldID0gc2lnbmF0dXJlSGFzaFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhbmRsZVN1Y2Nlc3MoY29va2llSGFzaCwgY2IpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBzaWduZWQgQW1hem9uIENsb3VkRnJvbnQgVVJMLlxuICAgICAqXG4gICAgICogS2VlcCBpbiBtaW5kIHRoYXQgVVJMcyBtZWFudCBmb3IgdXNlIGluIG1lZGlhL2ZsYXNoIHBsYXllcnMgbWF5IGhhdmVcbiAgICAgKiBkaWZmZXJlbnQgcmVxdWlyZW1lbnRzIGZvciBVUkwgZm9ybWF0cyAoZS5nLiBzb21lIHJlcXVpcmUgdGhhdCB0aGVcbiAgICAgKiBleHRlbnNpb24gYmUgcmVtb3ZlZCwgc29tZSByZXF1aXJlIHRoZSBmaWxlIG5hbWUgdG8gYmUgcHJlZml4ZWRcbiAgICAgKiAtIG1wNDo8cGF0aD4sIHNvbWUgcmVxdWlyZSB5b3UgdG8gYWRkIFwiL2NmeC9zdFwiIGludG8geW91ciBVUkwpLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgW09iamVjdF0gICAgICAgICAgVGhlIG9wdGlvbnMgdG8gY3JlYXRlIGEgc2lnbmVkIFVSTC5cbiAgICAgKiBAb3B0aW9uIG9wdGlvbnMgdXJsIFtTdHJpbmddICAgICBUaGUgVVJMIHRvIHdoaWNoIHRoZSBzaWduYXR1cmUgd2lsbCBncmFudFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzcy4gUmVxdWlyZWQuXG4gICAgICogQG9wdGlvbiBvcHRpb25zIGV4cGlyZXMgW051bWJlcl0gQSBVbml4IFVUQyB0aW1lc3RhbXAgaW5kaWNhdGluZyB3aGVuIHRoZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSBzaG91bGQgZXhwaXJlLiBSZXF1aXJlZCB1bmxlc3MgeW91XG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzcyBpbiBhIGZ1bGwgcG9saWN5LlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyBwb2xpY3kgW1N0cmluZ10gIEEgQ2xvdWRGcm9udCBKU09OIHBvbGljeS4gUmVxdWlyZWQgdW5sZXNzXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91IHBhc3MgaW4gYSB1cmwgYW5kIGFuIGV4cGlyeSB0aW1lLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNiIFtGdW5jdGlvbl0gaWYgYSBjYWxsYmFjayBpcyBwcm92aWRlZCwgdGhpcyBmdW5jdGlvbiB3aWxsXG4gICAgICogICBwYXNzIHRoZSBVUkwgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIgKGFmdGVyIHRoZSBlcnJvciBwYXJhbWV0ZXIpIHRvXG4gICAgICogICB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIFtTdHJpbmddIGlmIGNhbGxlZCBzeW5jaHJvbm91c2x5ICh3aXRoIG5vIGNhbGxiYWNrKSwgcmV0dXJucyB0aGVcbiAgICAgKiAgIHNpZ25lZCBVUkwuXG4gICAgICogQHJldHVybiBbbnVsbF0gbm90aGluZyBpcyByZXR1cm5lZCBpZiBhIGNhbGxiYWNrIGlzIHByb3ZpZGVkLlxuICAgICAqL1xuICAgIGdldFNpZ25lZFVybDogZnVuY3Rpb24gKG9wdGlvbnMsIGNiKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBnZXRSZXNvdXJjZShvcHRpb25zLnVybCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKGVyciwgY2IpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHBhcnNlZFVybCA9IHVybC5wYXJzZShvcHRpb25zLnVybCwgdHJ1ZSksXG4gICAgICAgICAgICBzaWduYXR1cmVIYXNoID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsICdwb2xpY3knKVxuICAgICAgICAgICAgICAgID8gc2lnbldpdGhDdXN0b21Qb2xpY3kob3B0aW9ucy5wb2xpY3ksIHRoaXMua2V5UGFpcklkLCB0aGlzLnByaXZhdGVLZXkpXG4gICAgICAgICAgICAgICAgOiBzaWduV2l0aENhbm5lZFBvbGljeShyZXNvdXJjZSwgb3B0aW9ucy5leHBpcmVzLCB0aGlzLmtleVBhaXJJZCwgdGhpcy5wcml2YXRlS2V5KTtcblxuICAgICAgICBwYXJzZWRVcmwuc2VhcmNoID0gbnVsbDtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNpZ25hdHVyZUhhc2gpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2lnbmF0dXJlSGFzaCwga2V5KSkge1xuICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeVtrZXldID0gc2lnbmF0dXJlSGFzaFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciBzaWduZWRVcmwgPSBkZXRlcm1pbmVTY2hlbWUob3B0aW9ucy51cmwpID09PSAncnRtcCdcbiAgICAgICAgICAgICAgICAgICAgPyBnZXRSdG1wVXJsKHVybC5mb3JtYXQocGFyc2VkVXJsKSlcbiAgICAgICAgICAgICAgICAgICAgOiB1cmwuZm9ybWF0KHBhcnNlZFVybCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKGVyciwgY2IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhbmRsZVN1Y2Nlc3Moc2lnbmVkVXJsLCBjYik7XG4gICAgfVxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLkNsb3VkRnJvbnQuU2lnbmVyO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xucmVxdWlyZSgnLi9jcmVkZW50aWFscycpO1xucmVxdWlyZSgnLi9jcmVkZW50aWFscy9jcmVkZW50aWFsX3Byb3ZpZGVyX2NoYWluJyk7XG52YXIgUHJvbWlzZXNEZXBlbmRlbmN5O1xuXG4vKipcbiAqIFRoZSBtYWluIGNvbmZpZ3VyYXRpb24gY2xhc3MgdXNlZCBieSBhbGwgc2VydmljZSBvYmplY3RzIHRvIHNldFxuICogdGhlIHJlZ2lvbiwgY3JlZGVudGlhbHMsIGFuZCBvdGhlciBvcHRpb25zIGZvciByZXF1ZXN0cy5cbiAqXG4gKiBCeSBkZWZhdWx0LCBjcmVkZW50aWFscyBhbmQgcmVnaW9uIHNldHRpbmdzIGFyZSBsZWZ0IHVuY29uZmlndXJlZC5cbiAqIFRoaXMgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGJlZm9yZSB1c2luZyBhbnlcbiAqIEFXUyBzZXJ2aWNlIEFQSXMuXG4gKlxuICogSW4gb3JkZXIgdG8gc2V0IGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHByb3BlcnRpZXMgc2hvdWxkXG4gKiBiZSBhc3NpZ25lZCB0byB0aGUgZ2xvYmFsIHtBV1MuY29uZmlnfSBvYmplY3QuXG4gKlxuICogQHNlZSBBV1MuY29uZmlnXG4gKlxuICogQCFncm91cCBHZW5lcmFsIENvbmZpZ3VyYXRpb24gT3B0aW9uc1xuICpcbiAqIEAhYXR0cmlidXRlIGNyZWRlbnRpYWxzXG4gKiAgIEByZXR1cm4gW0FXUy5DcmVkZW50aWFsc10gdGhlIEFXUyBjcmVkZW50aWFscyB0byBzaWduIHJlcXVlc3RzIHdpdGguXG4gKlxuICogQCFhdHRyaWJ1dGUgcmVnaW9uXG4gKiAgIEBleGFtcGxlIFNldCB0aGUgZ2xvYmFsIHJlZ2lvbiBzZXR0aW5nIHRvIHVzLXdlc3QtMlxuICogICAgIEFXUy5jb25maWcudXBkYXRlKHtyZWdpb246ICd1cy13ZXN0LTInfSk7XG4gKiAgIEByZXR1cm4gW0FXUy5DcmVkZW50aWFsc10gVGhlIHJlZ2lvbiB0byBzZW5kIHNlcnZpY2UgcmVxdWVzdHMgdG8uXG4gKiAgIEBzZWUgaHR0cDovL2RvY3MuYW1hem9ud2Vic2VydmljZXMuY29tL2dlbmVyYWwvbGF0ZXN0L2dyL3JhbmRlLmh0bWxcbiAqICAgICBBIGxpc3Qgb2YgYXZhaWxhYmxlIGVuZHBvaW50cyBmb3IgZWFjaCBBV1Mgc2VydmljZVxuICpcbiAqIEAhYXR0cmlidXRlIG1heFJldHJpZXNcbiAqICAgQHJldHVybiBbSW50ZWdlcl0gdGhlIG1heGltdW0gYW1vdW50IG9mIHJldHJpZXMgdG8gcGVyZm9ybSBmb3IgYVxuICogICAgIHNlcnZpY2UgcmVxdWVzdC4gQnkgZGVmYXVsdCB0aGlzIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYnkgdGhlIHNwZWNpZmljXG4gKiAgICAgc2VydmljZSBvYmplY3QgdGhhdCB0aGUgcmVxdWVzdCBpcyBiZWluZyBtYWRlIHRvLlxuICpcbiAqIEAhYXR0cmlidXRlIG1heFJlZGlyZWN0c1xuICogICBAcmV0dXJuIFtJbnRlZ2VyXSB0aGUgbWF4aW11bSBhbW91bnQgb2YgcmVkaXJlY3RzIHRvIGZvbGxvdyBmb3IgYVxuICogICAgIHNlcnZpY2UgcmVxdWVzdC4gRGVmYXVsdHMgdG8gMTAuXG4gKlxuICogQCFhdHRyaWJ1dGUgcGFyYW1WYWxpZGF0aW9uXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW58bWFwXSB3aGV0aGVyIGlucHV0IHBhcmFtZXRlcnMgc2hvdWxkIGJlIHZhbGlkYXRlZCBhZ2FpbnN0XG4gKiAgICAgdGhlIG9wZXJhdGlvbiBkZXNjcmlwdGlvbiBiZWZvcmUgc2VuZGluZyB0aGUgcmVxdWVzdC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAqICAgICBQYXNzIGEgbWFwIHRvIGVuYWJsZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBzcGVjaWZpYyB2YWxpZGF0aW9uIGZlYXR1cmVzOlxuICpcbiAqICAgICAqICoqbWluKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSB2YWx1ZSBtZWV0cyB0aGUgbWluXG4gKiAgICAgICBjb25zdHJhaW50LiBUaGlzIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCB3aGVuIHBhcmFtVmFsaWRhdGlvbiBpcyBzZXRcbiAqICAgICAgIHRvIGB0cnVlYC5cbiAqICAgICAqICoqbWF4KiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSB2YWx1ZSBtZWV0cyB0aGUgbWF4XG4gKiAgICAgICBjb25zdHJhaW50LlxuICogICAgICogKipwYXR0ZXJuKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSBzdHJpbmcgdmFsdWUgbWF0Y2hlcyBhXG4gKiAgICAgICByZWd1bGFyIGV4cHJlc3Npb24uXG4gKiAgICAgKiAqKmVudW0qKiBbQm9vbGVhbl0gJm1kYXNoOyBWYWxpZGF0ZXMgdGhhdCBhIHN0cmluZyB2YWx1ZSBtYXRjaGVzIG9uZVxuICogICAgICAgb2YgdGhlIGFsbG93YWJsZSBlbnVtIHZhbHVlcy5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBjb21wdXRlQ2hlY2tzdW1zXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdG8gY29tcHV0ZSBjaGVja3N1bXMgZm9yIHBheWxvYWQgYm9kaWVzIHdoZW5cbiAqICAgICB0aGUgc2VydmljZSBhY2NlcHRzIGl0IChjdXJyZW50bHkgc3VwcG9ydGVkIGluIFMzIG9ubHkpLlxuICpcbiAqIEAhYXR0cmlidXRlIGNvbnZlcnRSZXNwb25zZVR5cGVzXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdHlwZXMgYXJlIGNvbnZlcnRlZCB3aGVuIHBhcnNpbmcgcmVzcG9uc2UgZGF0YS5cbiAqICAgICBDdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgZm9yIEpTT04gYmFzZWQgc2VydmljZXMuIFR1cm5pbmcgdGhpcyBvZmYgbWF5XG4gKiAgICAgaW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBsYXJnZSByZXNwb25zZSBwYXlsb2Fkcy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICpcbiAqIEAhYXR0cmlidXRlIGNvcnJlY3RDbG9ja1NrZXdcbiAqICAgQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0byBhcHBseSBhIGNsb2NrIHNrZXcgY29ycmVjdGlvbiBhbmQgcmV0cnlcbiAqICAgICByZXF1ZXN0cyB0aGF0IGZhaWwgYmVjYXVzZSBvZiBhbiBza2V3ZWQgY2xpZW50IGNsb2NrLiBEZWZhdWx0cyB0b1xuICogICAgIGBmYWxzZWAuXG4gKlxuICogQCFhdHRyaWJ1dGUgc3NsRW5hYmxlZFxuICogICBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIFNTTCBpcyBlbmFibGVkIGZvciByZXF1ZXN0c1xuICpcbiAqIEAhYXR0cmlidXRlIHMzRm9yY2VQYXRoU3R5bGVcbiAqICAgQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0byBmb3JjZSBwYXRoIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHNcbiAqXG4gKiBAIWF0dHJpYnV0ZSBzM0J1Y2tldEVuZHBvaW50XG4gKiAgIEBub3RlIFNldHRpbmcgdGhpcyBjb25maWd1cmF0aW9uIG9wdGlvbiByZXF1aXJlcyBhbiBgZW5kcG9pbnRgIHRvIGJlXG4gKiAgICAgcHJvdmlkZWQgZXhwbGljaXRseSB0byB0aGUgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiAqICAgQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWxcbiAqICAgICBidWNrZXQgKGZhbHNlIGlmIGl0IGFkZHJlc3NlcyB0aGUgcm9vdCBBUEkgZW5kcG9pbnQpLlxuICpcbiAqIEAhYXR0cmlidXRlIHMzRGlzYWJsZUJvZHlTaWduaW5nXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdG8gZGlzYWJsZSBTMyBib2R5IHNpZ25pbmcgd2hlbiB1c2luZyBzaWduYXR1cmUgdmVyc2lvbiBgdjRgLlxuICogICAgIEJvZHkgc2lnbmluZyBjYW4gb25seSBiZSBkaXNhYmxlZCB3aGVuIHVzaW5nIGh0dHBzLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gKlxuICogQCFhdHRyaWJ1dGUgdXNlQWNjZWxlcmF0ZUVuZHBvaW50XG4gKiAgIEBub3RlIFRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgb25seSBjb21wYXRpYmxlIHdpdGggUzMgd2hpbGUgYWNjZXNzaW5nXG4gKiAgICAgZG5zLWNvbXBhdGlibGUgYnVja2V0cy5cbiAqICAgQHJldHVybiBbQm9vbGVhbl0gV2hldGhlciB0byB1c2UgdGhlIEFjY2VsZXJhdGUgZW5kcG9pbnQgd2l0aCB0aGUgUzMgc2VydmljZS5cbiAqICAgICBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICpcbiAqIEAhYXR0cmlidXRlIHJldHJ5RGVsYXlPcHRpb25zXG4gKiAgIEBleGFtcGxlIFNldCB0aGUgYmFzZSByZXRyeSBkZWxheSBmb3IgYWxsIHNlcnZpY2VzIHRvIDMwMCBtc1xuICogICAgIEFXUy5jb25maWcudXBkYXRlKHtyZXRyeURlbGF5T3B0aW9uczoge2Jhc2U6IDMwMH19KTtcbiAqICAgICAvLyBEZWxheXMgd2l0aCBtYXhSZXRyaWVzID0gMzogMzAwLCA2MDAsIDEyMDBcbiAqICAgQGV4YW1wbGUgU2V0IGEgY3VzdG9tIGJhY2tvZmYgZnVuY3Rpb24gdG8gcHJvdmlkZSBkZWxheSB2YWx1ZXMgb24gcmV0cmllc1xuICogICAgIEFXUy5jb25maWcudXBkYXRlKHtyZXRyeURlbGF5T3B0aW9uczoge2N1c3RvbUJhY2tvZmY6IGZ1bmN0aW9uKHJldHJ5Q291bnQpIHtcbiAqICAgICAgIC8vIHJldHVybnMgZGVsYXkgaW4gbXNcbiAqICAgICB9fX0pO1xuICogICBAcmV0dXJuIFttYXBdIEEgc2V0IG9mIG9wdGlvbnMgdG8gY29uZmlndXJlIHRoZSByZXRyeSBkZWxheSBvbiByZXRyeWFibGUgZXJyb3JzLlxuICogICAgIEN1cnJlbnRseSBzdXBwb3J0ZWQgb3B0aW9ucyBhcmU6XG4gKlxuICogICAgICogKipiYXNlKiogW0ludGVnZXJdICZtZGFzaDsgVGhlIGJhc2UgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB1c2UgaW4gdGhlXG4gKiAgICAgICBleHBvbmVudGlhbCBiYWNrb2ZmIGZvciBvcGVyYXRpb24gcmV0cmllcy4gRGVmYXVsdHMgdG8gMTAwIG1zIGZvciBhbGwgc2VydmljZXMgZXhjZXB0XG4gKiAgICAgICBEeW5hbW9EQiwgd2hlcmUgaXQgZGVmYXVsdHMgdG8gNTBtcy5cbiAqICAgICAqICoqY3VzdG9tQmFja29mZiAqKiBbZnVuY3Rpb25dICZtZGFzaDsgQSBjdXN0b20gZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGEgcmV0cnkgY291bnRcbiAqICAgICAgIGFuZCByZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSB0byBkZWxheSBpbiBtaWxsaXNlY29uZHMuIFRoZSBgYmFzZWAgb3B0aW9uIHdpbGwgYmVcbiAqICAgICAgIGlnbm9yZWQgaWYgdGhpcyBvcHRpb24gaXMgc3VwcGxpZWQuXG4gKlxuICogQCFhdHRyaWJ1dGUgaHR0cE9wdGlvbnNcbiAqICAgQHJldHVybiBbbWFwXSBBIHNldCBvZiBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGxvdy1sZXZlbCBIVFRQIHJlcXVlc3QuXG4gKiAgICAgQ3VycmVudGx5IHN1cHBvcnRlZCBvcHRpb25zIGFyZTpcbiAqXG4gKiAgICAgKiAqKnByb3h5KiogW1N0cmluZ10gJm1kYXNoOyB0aGUgVVJMIHRvIHByb3h5IHJlcXVlc3RzIHRocm91Z2hcbiAqICAgICAqICoqYWdlbnQqKiBbaHR0cC5BZ2VudCwgaHR0cHMuQWdlbnRdICZtZGFzaDsgdGhlIEFnZW50IG9iamVjdCB0byBwZXJmb3JtXG4gKiAgICAgICBIVFRQIHJlcXVlc3RzIHdpdGguIFVzZWQgZm9yIGNvbm5lY3Rpb24gcG9vbGluZy4gRGVmYXVsdHMgdG8gdGhlIGdsb2JhbFxuICogICAgICAgYWdlbnQgKGBodHRwLmdsb2JhbEFnZW50YCkgZm9yIG5vbi1TU0wgY29ubmVjdGlvbnMuIE5vdGUgdGhhdCBmb3JcbiAqICAgICAgIFNTTCBjb25uZWN0aW9ucywgYSBzcGVjaWFsIEFnZW50IG9iamVjdCBpcyB1c2VkIGluIG9yZGVyIHRvIGVuYWJsZVxuICogICAgICAgcGVlciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24uIFRoaXMgZmVhdHVyZSBpcyBvbmx5IHN1cHBvcnRlZCBpbiB0aGVcbiAqICAgICAgIE5vZGUuanMgZW52aXJvbm1lbnQuXG4gKiAgICAgKiAqKmNvbm5lY3RUaW1lb3V0KiogW0ludGVnZXJdICZtZGFzaDsgU2V0cyB0aGUgc29ja2V0IHRvIHRpbWVvdXQgYWZ0ZXJcbiAqICAgICAgIGZhaWxpbmcgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB3aXRoIHRoZSBzZXJ2ZXIgYWZ0ZXJcbiAqICAgICAgIGBjb25uZWN0VGltZW91dGAgbWlsbGlzZWNvbmRzLiBUaGlzIHRpbWVvdXQgaGFzIG5vIGVmZmVjdCBvbmNlIGEgc29ja2V0XG4gKiAgICAgICBjb25uZWN0aW9uIGhhcyBiZWVuIGVzdGFibGlzaGVkLlxuICogICAgICogKip0aW1lb3V0KiogW0ludGVnZXJdICZtZGFzaDsgU2V0cyB0aGUgc29ja2V0IHRvIHRpbWVvdXQgYWZ0ZXIgdGltZW91dFxuICogICAgICAgbWlsbGlzZWNvbmRzIG9mIGluYWN0aXZpdHkgb24gdGhlIHNvY2tldC4gRGVmYXVsdHMgdG8gdHdvIG1pbnV0ZXNcbiAqICAgICAgICgxMjAwMDApXG4gKiAgICAgKiAqKnhockFzeW5jKiogW0Jvb2xlYW5dICZtZGFzaDsgV2hldGhlciB0aGUgU0RLIHdpbGwgc2VuZCBhc3luY2hyb25vdXNcbiAqICAgICAgIEhUVFAgcmVxdWVzdHMuIFVzZWQgaW4gdGhlIGJyb3dzZXIgZW52aXJvbm1lbnQgb25seS4gU2V0IHRvIGZhbHNlIHRvXG4gKiAgICAgICBzZW5kIHJlcXVlc3RzIHN5bmNocm9ub3VzbHkuIERlZmF1bHRzIHRvIHRydWUgKGFzeW5jIG9uKS5cbiAqICAgICAqICoqeGhyV2l0aENyZWRlbnRpYWxzKiogW0Jvb2xlYW5dICZtZGFzaDsgU2V0cyB0aGUgXCJ3aXRoQ3JlZGVudGlhbHNcIlxuICogICAgICAgcHJvcGVydHkgb2YgYW4gWE1MSHR0cFJlcXVlc3Qgb2JqZWN0LiBVc2VkIGluIHRoZSBicm93c2VyIGVudmlyb25tZW50XG4gKiAgICAgICBvbmx5LiBEZWZhdWx0cyB0byBmYWxzZS5cbiAqIEAhYXR0cmlidXRlIGxvZ2dlclxuICogICBAcmV0dXJuIFsjd3JpdGUsI2xvZ10gYW4gb2JqZWN0IHRoYXQgcmVzcG9uZHMgdG8gLndyaXRlKCkgKGxpa2UgYSBzdHJlYW0pXG4gKiAgICAgb3IgLmxvZygpIChsaWtlIHRoZSBjb25zb2xlIG9iamVjdCkgaW4gb3JkZXIgdG8gbG9nIGluZm9ybWF0aW9uIGFib3V0XG4gKiAgICAgcmVxdWVzdHNcbiAqXG4gKiBAIWF0dHJpYnV0ZSBzeXN0ZW1DbG9ja09mZnNldFxuICogICBAcmV0dXJuIFtOdW1iZXJdIGFuIG9mZnNldCB2YWx1ZSBpbiBtaWxsaXNlY29uZHMgdG8gYXBwbHkgdG8gYWxsIHNpZ25pbmdcbiAqICAgICB0aW1lcy4gVXNlIHRoaXMgdG8gY29tcGVuc2F0ZSBmb3IgY2xvY2sgc2tldyB3aGVuIHlvdXIgc3lzdGVtIG1heSBiZVxuICogICAgIG91dCBvZiBzeW5jIHdpdGggdGhlIHNlcnZpY2UgdGltZS4gTm90ZSB0aGF0IHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb25cbiAqICAgICBjYW4gb25seSBiZSBhcHBsaWVkIHRvIHRoZSBnbG9iYWwgYEFXUy5jb25maWdgIG9iamVjdCBhbmQgY2Fubm90IGJlXG4gKiAgICAgb3ZlcnJpZGRlbiBpbiBzZXJ2aWNlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24uIERlZmF1bHRzIHRvIDAgbWlsbGlzZWNvbmRzLlxuICpcbiAqIEAhYXR0cmlidXRlIHNpZ25hdHVyZVZlcnNpb25cbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgc2lnbmF0dXJlIHZlcnNpb24gdG8gc2lnbiByZXF1ZXN0cyB3aXRoIChvdmVycmlkaW5nXG4gKiAgICAgdGhlIEFQSSBjb25maWd1cmF0aW9uKS4gUG9zc2libGUgdmFsdWVzIGFyZTogJ3YyJywgJ3YzJywgJ3Y0Jy5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBzaWduYXR1cmVDYWNoZVxuICogICBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHRoZSBzaWduYXR1cmUgdG8gc2lnbiByZXF1ZXN0cyB3aXRoIChvdmVycmlkaW5nXG4gKiAgICAgdGhlIEFQSSBjb25maWd1cmF0aW9uKSBpcyBjYWNoZWQuIE9ubHkgYXBwbGllcyB0byB0aGUgc2lnbmF0dXJlIHZlcnNpb24gJ3Y0Jy5cbiAqICAgICBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gKi9cbkFXUy5Db25maWcgPSBBV1MudXRpbC5pbmhlcml0KHtcbiAgLyoqXG4gICAqIEAhZW5kZ3JvdXBcbiAgICovXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29uZmlndXJhdGlvbiBvYmplY3QuIFRoaXMgaXMgdGhlIG9iamVjdCB0aGF0IHBhc3Nlc1xuICAgKiBvcHRpb24gZGF0YSBhbG9uZyB0byBzZXJ2aWNlIHJlcXVlc3RzLCBpbmNsdWRpbmcgY3JlZGVudGlhbHMsIHNlY3VyaXR5LFxuICAgKiByZWdpb24gaW5mb3JtYXRpb24sIGFuZCBzb21lIHNlcnZpY2Ugc3BlY2lmaWMgc2V0dGluZ3MuXG4gICAqXG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGEgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0IHdpdGggY3JlZGVudGlhbHMgYW5kIHJlZ2lvblxuICAgKiAgIHZhciBjb25maWcgPSBuZXcgQVdTLkNvbmZpZyh7XG4gICAqICAgICBhY2Nlc3NLZXlJZDogJ0FLSUQnLCBzZWNyZXRBY2Nlc3NLZXk6ICdTRUNSRVQnLCByZWdpb246ICd1cy13ZXN0LTInXG4gICAqICAgfSk7XG4gICAqIEBvcHRpb24gb3B0aW9ucyBhY2Nlc3NLZXlJZCBbU3RyaW5nXSB5b3VyIEFXUyBhY2Nlc3Mga2V5IElELlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgc2VjcmV0QWNjZXNzS2V5IFtTdHJpbmddIHlvdXIgQVdTIHNlY3JldCBhY2Nlc3Mga2V5LlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgc2Vzc2lvblRva2VuIFtBV1MuQ3JlZGVudGlhbHNdIHRoZSBvcHRpb25hbCBBV1NcbiAgICogICBzZXNzaW9uIHRva2VuIHRvIHNpZ24gcmVxdWVzdHMgd2l0aC5cbiAgICogQG9wdGlvbiBvcHRpb25zIGNyZWRlbnRpYWxzIFtBV1MuQ3JlZGVudGlhbHNdIHRoZSBBV1MgY3JlZGVudGlhbHNcbiAgICogICB0byBzaWduIHJlcXVlc3RzIHdpdGguIFlvdSBjYW4gZWl0aGVyIHNwZWNpZnkgdGhpcyBvYmplY3QsIG9yXG4gICAqICAgc3BlY2lmeSB0aGUgYWNjZXNzS2V5SWQgYW5kIHNlY3JldEFjY2Vzc0tleSBvcHRpb25zIGRpcmVjdGx5LlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgY3JlZGVudGlhbFByb3ZpZGVyIFtBV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW5dIHRoZVxuICAgKiAgIHByb3ZpZGVyIGNoYWluIHVzZWQgdG8gcmVzb2x2ZSBjcmVkZW50aWFscyBpZiBubyBzdGF0aWMgYGNyZWRlbnRpYWxzYFxuICAgKiAgIHByb3BlcnR5IGlzIHNldC5cbiAgICogQG9wdGlvbiBvcHRpb25zIHJlZ2lvbiBbU3RyaW5nXSB0aGUgcmVnaW9uIHRvIHNlbmQgc2VydmljZSByZXF1ZXN0cyB0by5cbiAgICogICBTZWUge3JlZ2lvbn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqIEBvcHRpb24gb3B0aW9ucyBtYXhSZXRyaWVzIFtJbnRlZ2VyXSB0aGUgbWF4aW11bSBhbW91bnQgb2YgcmV0cmllcyB0b1xuICAgKiAgIGF0dGVtcHQgd2l0aCBhIHJlcXVlc3QuIFNlZSB7bWF4UmV0cmllc30gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gICAqIEBvcHRpb24gb3B0aW9ucyBtYXhSZWRpcmVjdHMgW0ludGVnZXJdIHRoZSBtYXhpbXVtIGFtb3VudCBvZiByZWRpcmVjdHMgdG9cbiAgICogICBmb2xsb3cgd2l0aCBhIHJlcXVlc3QuIFNlZSB7bWF4UmVkaXJlY3RzfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICogQG9wdGlvbiBvcHRpb25zIHNzbEVuYWJsZWQgW0Jvb2xlYW5dIHdoZXRoZXIgdG8gZW5hYmxlIFNTTCBmb3JcbiAgICogICByZXF1ZXN0cy5cbiAgICogQG9wdGlvbiBvcHRpb25zIHBhcmFtVmFsaWRhdGlvbiBbQm9vbGVhbnxtYXBdIHdoZXRoZXIgaW5wdXQgcGFyYW1ldGVyc1xuICAgKiAgIHNob3VsZCBiZSB2YWxpZGF0ZWQgYWdhaW5zdCB0aGUgb3BlcmF0aW9uIGRlc2NyaXB0aW9uIGJlZm9yZSBzZW5kaW5nXG4gICAqICAgdGhlIHJlcXVlc3QuIERlZmF1bHRzIHRvIHRydWUuIFBhc3MgYSBtYXAgdG8gZW5hYmxlIGFueSBvZiB0aGVcbiAgICogICBmb2xsb3dpbmcgc3BlY2lmaWMgdmFsaWRhdGlvbiBmZWF0dXJlczpcbiAgICpcbiAgICogICAqICoqbWluKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSB2YWx1ZSBtZWV0cyB0aGUgbWluXG4gICAqICAgICBjb25zdHJhaW50LiBUaGlzIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCB3aGVuIHBhcmFtVmFsaWRhdGlvbiBpcyBzZXRcbiAgICogICAgIHRvIGB0cnVlYC5cbiAgICogICAqICoqbWF4KiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSB2YWx1ZSBtZWV0cyB0aGUgbWF4XG4gICAqICAgICBjb25zdHJhaW50LlxuICAgKiAgICogKipwYXR0ZXJuKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSBzdHJpbmcgdmFsdWUgbWF0Y2hlcyBhXG4gICAqICAgICByZWd1bGFyIGV4cHJlc3Npb24uXG4gICAqICAgKiAqKmVudW0qKiBbQm9vbGVhbl0gJm1kYXNoOyBWYWxpZGF0ZXMgdGhhdCBhIHN0cmluZyB2YWx1ZSBtYXRjaGVzIG9uZVxuICAgKiAgICAgb2YgdGhlIGFsbG93YWJsZSBlbnVtIHZhbHVlcy5cbiAgICogQG9wdGlvbiBvcHRpb25zIGNvbXB1dGVDaGVja3N1bXMgW0Jvb2xlYW5dIHdoZXRoZXIgdG8gY29tcHV0ZSBjaGVja3N1bXNcbiAgICogICBmb3IgcGF5bG9hZCBib2RpZXMgd2hlbiB0aGUgc2VydmljZSBhY2NlcHRzIGl0IChjdXJyZW50bHkgc3VwcG9ydGVkXG4gICAqICAgaW4gUzMgb25seSlcbiAgICogQG9wdGlvbiBvcHRpb25zIGNvbnZlcnRSZXNwb25zZVR5cGVzIFtCb29sZWFuXSB3aGV0aGVyIHR5cGVzIGFyZSBjb252ZXJ0ZWRcbiAgICogICAgIHdoZW4gcGFyc2luZyByZXNwb25zZSBkYXRhLiBDdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgZm9yIEpTT04gYmFzZWRcbiAgICogICAgIHNlcnZpY2VzLiBUdXJuaW5nIHRoaXMgb2ZmIG1heSBpbXByb3ZlIHBlcmZvcm1hbmNlIG9uIGxhcmdlIHJlc3BvbnNlXG4gICAqICAgICBwYXlsb2Fkcy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgY29ycmVjdENsb2NrU2tldyBbQm9vbGVhbl0gd2hldGhlciB0byBhcHBseSBhIGNsb2NrIHNrZXdcbiAgICogICAgIGNvcnJlY3Rpb24gYW5kIHJldHJ5IHJlcXVlc3RzIHRoYXQgZmFpbCBiZWNhdXNlIG9mIGFuIHNrZXdlZCBjbGllbnRcbiAgICogICAgIGNsb2NrLiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgczNGb3JjZVBhdGhTdHlsZSBbQm9vbGVhbl0gd2hldGhlciB0byBmb3JjZSBwYXRoXG4gICAqICAgc3R5bGUgVVJMcyBmb3IgUzMgb2JqZWN0cy5cbiAgICogQG9wdGlvbiBvcHRpb25zIHMzQnVja2V0RW5kcG9pbnQgW0Jvb2xlYW5dIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGVuZHBvaW50XG4gICAqICAgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWwgYnVja2V0IChmYWxzZSBpZiBpdCBhZGRyZXNzZXMgdGhlIHJvb3QgQVBJXG4gICAqICAgZW5kcG9pbnQpLiBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHJlcXVpcmVzIGFuXG4gICAqICAgYGVuZHBvaW50YCB0byBiZSBwcm92aWRlZCBleHBsaWNpdGx5IHRvIHRoZSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgczNEaXNhYmxlQm9keVNpZ25pbmcgW0Jvb2xlYW5dIHdoZXRoZXIgUzMgYm9keSBzaWduaW5nXG4gICAqICAgc2hvdWxkIGJlIGRpc2FibGVkIHdoZW4gdXNpbmcgc2lnbmF0dXJlIHZlcnNpb24gYHY0YC4gQm9keSBzaWduaW5nXG4gICAqICAgY2FuIG9ubHkgYmUgZGlzYWJsZWQgd2hlbiB1c2luZyBodHRwcy4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgcmV0cnlEZWxheU9wdGlvbnMgW21hcF0gQSBzZXQgb2Ygb3B0aW9ucyB0byBjb25maWd1cmVcbiAgICogICB0aGUgcmV0cnkgZGVsYXkgb24gcmV0cnlhYmxlIGVycm9ycy4gQ3VycmVudGx5IHN1cHBvcnRlZCBvcHRpb25zIGFyZTpcbiAgICpcbiAgICogICAqICoqYmFzZSoqIFtJbnRlZ2VyXSAmbWRhc2g7IFRoZSBiYXNlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdXNlIGluIHRoZVxuICAgKiAgICAgZXhwb25lbnRpYWwgYmFja29mZiBmb3Igb3BlcmF0aW9uIHJldHJpZXMuIERlZmF1bHRzIHRvIDEwMCBtcyBmb3IgYWxsXG4gICAqICAgICBzZXJ2aWNlcyBleGNlcHQgRHluYW1vREIsIHdoZXJlIGl0IGRlZmF1bHRzIHRvIDUwbXMuXG4gICAqICAgKiAqKmN1c3RvbUJhY2tvZmYgKiogW2Z1bmN0aW9uXSAmbWRhc2g7IEEgY3VzdG9tIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIHJldHJ5IGNvdW50XG4gICAqICAgICBhbmQgcmV0dXJucyB0aGUgYW1vdW50IG9mIHRpbWUgdG8gZGVsYXkgaW4gbWlsbGlzZWNvbmRzLiBUaGUgYGJhc2VgIG9wdGlvbiB3aWxsIGJlXG4gICAqICAgICBpZ25vcmVkIGlmIHRoaXMgb3B0aW9uIGlzIHN1cHBsaWVkLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgaHR0cE9wdGlvbnMgW21hcF0gQSBzZXQgb2Ygb3B0aW9ucyB0byBwYXNzIHRvIHRoZSBsb3ctbGV2ZWxcbiAgICogICBIVFRQIHJlcXVlc3QuIEN1cnJlbnRseSBzdXBwb3J0ZWQgb3B0aW9ucyBhcmU6XG4gICAqXG4gICAqICAgKiAqKnByb3h5KiogW1N0cmluZ10gJm1kYXNoOyB0aGUgVVJMIHRvIHByb3h5IHJlcXVlc3RzIHRocm91Z2hcbiAgICogICAqICoqYWdlbnQqKiBbaHR0cC5BZ2VudCwgaHR0cHMuQWdlbnRdICZtZGFzaDsgdGhlIEFnZW50IG9iamVjdCB0byBwZXJmb3JtXG4gICAqICAgICBIVFRQIHJlcXVlc3RzIHdpdGguIFVzZWQgZm9yIGNvbm5lY3Rpb24gcG9vbGluZy4gRGVmYXVsdHMgdG8gdGhlIGdsb2JhbFxuICAgKiAgICAgYWdlbnQgKGBodHRwLmdsb2JhbEFnZW50YCkgZm9yIG5vbi1TU0wgY29ubmVjdGlvbnMuIE5vdGUgdGhhdCBmb3JcbiAgICogICAgIFNTTCBjb25uZWN0aW9ucywgYSBzcGVjaWFsIEFnZW50IG9iamVjdCBpcyB1c2VkIGluIG9yZGVyIHRvIGVuYWJsZVxuICAgKiAgICAgcGVlciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24uIFRoaXMgZmVhdHVyZSBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0aGVcbiAgICogICAgIE5vZGUuanMgZW52aXJvbm1lbnQuXG4gICAqICAgKiAqKmNvbm5lY3RUaW1lb3V0KiogW0ludGVnZXJdICZtZGFzaDsgU2V0cyB0aGUgc29ja2V0IHRvIHRpbWVvdXQgYWZ0ZXJcbiAgICogICAgIGZhaWxpbmcgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB3aXRoIHRoZSBzZXJ2ZXIgYWZ0ZXJcbiAgICogICAgIGBjb25uZWN0VGltZW91dGAgbWlsbGlzZWNvbmRzLiBUaGlzIHRpbWVvdXQgaGFzIG5vIGVmZmVjdCBvbmNlIGEgc29ja2V0XG4gICAqICAgICBjb25uZWN0aW9uIGhhcyBiZWVuIGVzdGFibGlzaGVkLlxuICAgKiAgICogKip0aW1lb3V0KiogW0ludGVnZXJdICZtZGFzaDsgU2V0cyB0aGUgc29ja2V0IHRvIHRpbWVvdXQgYWZ0ZXIgdGltZW91dFxuICAgKiAgICAgbWlsbGlzZWNvbmRzIG9mIGluYWN0aXZpdHkgb24gdGhlIHNvY2tldC4gRGVmYXVsdHMgdG8gdHdvIG1pbnV0ZXNcbiAgICogICAgICgxMjAwMDApLlxuICAgKiAgICogKip4aHJBc3luYyoqIFtCb29sZWFuXSAmbWRhc2g7IFdoZXRoZXIgdGhlIFNESyB3aWxsIHNlbmQgYXN5bmNocm9ub3VzXG4gICAqICAgICBIVFRQIHJlcXVlc3RzLiBVc2VkIGluIHRoZSBicm93c2VyIGVudmlyb25tZW50IG9ubHkuIFNldCB0byBmYWxzZSB0b1xuICAgKiAgICAgc2VuZCByZXF1ZXN0cyBzeW5jaHJvbm91c2x5LiBEZWZhdWx0cyB0byB0cnVlIChhc3luYyBvbikuXG4gICAqICAgKiAqKnhocldpdGhDcmVkZW50aWFscyoqIFtCb29sZWFuXSAmbWRhc2g7IFNldHMgdGhlIFwid2l0aENyZWRlbnRpYWxzXCJcbiAgICogICAgIHByb3BlcnR5IG9mIGFuIFhNTEh0dHBSZXF1ZXN0IG9iamVjdC4gVXNlZCBpbiB0aGUgYnJvd3NlciBlbnZpcm9ubWVudFxuICAgKiAgICAgb25seS4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBhcGlWZXJzaW9uIFtTdHJpbmcsIERhdGVdIGEgU3RyaW5nIGluIFlZWVktTU0tREQgZm9ybWF0XG4gICAqICAgKG9yIGEgZGF0ZSkgdGhhdCByZXByZXNlbnRzIHRoZSBsYXRlc3QgcG9zc2libGUgQVBJIHZlcnNpb24gdGhhdCBjYW4gYmVcbiAgICogICB1c2VkIGluIGFsbCBzZXJ2aWNlcyAodW5sZXNzIG92ZXJyaWRkZW4gYnkgYGFwaVZlcnNpb25zYCkuIFNwZWNpZnlcbiAgICogICAnbGF0ZXN0JyB0byB1c2UgdGhlIGxhdGVzdCBwb3NzaWJsZSB2ZXJzaW9uLlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgYXBpVmVyc2lvbnMgW21hcDxTdHJpbmcsIFN0cmluZ3xEYXRlPl0gYSBtYXAgb2Ygc2VydmljZVxuICAgKiAgIGlkZW50aWZpZXJzICh0aGUgbG93ZXJjYXNlIHNlcnZpY2UgY2xhc3MgbmFtZSkgd2l0aCB0aGUgQVBJIHZlcnNpb24gdG9cbiAgICogICB1c2Ugd2hlbiBpbnN0YW50aWF0aW5nIGEgc2VydmljZS4gU3BlY2lmeSAnbGF0ZXN0JyBmb3IgZWFjaCBpbmRpdmlkdWFsXG4gICAqICAgdGhhdCBjYW4gdXNlIHRoZSBsYXRlc3QgYXZhaWxhYmxlIHZlcnNpb24uXG4gICAqIEBvcHRpb24gb3B0aW9ucyBsb2dnZXIgWyN3cml0ZSwjbG9nXSBhbiBvYmplY3QgdGhhdCByZXNwb25kcyB0byAud3JpdGUoKVxuICAgKiAgIChsaWtlIGEgc3RyZWFtKSBvciAubG9nKCkgKGxpa2UgdGhlIGNvbnNvbGUgb2JqZWN0KSBpbiBvcmRlciB0byBsb2dcbiAgICogICBpbmZvcm1hdGlvbiBhYm91dCByZXF1ZXN0c1xuICAgKiBAb3B0aW9uIG9wdGlvbnMgc3lzdGVtQ2xvY2tPZmZzZXQgW051bWJlcl0gYW4gb2Zmc2V0IHZhbHVlIGluIG1pbGxpc2Vjb25kc1xuICAgKiAgIHRvIGFwcGx5IHRvIGFsbCBzaWduaW5nIHRpbWVzLiBVc2UgdGhpcyB0byBjb21wZW5zYXRlIGZvciBjbG9jayBza2V3XG4gICAqICAgd2hlbiB5b3VyIHN5c3RlbSBtYXkgYmUgb3V0IG9mIHN5bmMgd2l0aCB0aGUgc2VydmljZSB0aW1lLiBOb3RlIHRoYXRcbiAgICogICB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gdGhlIGdsb2JhbCBgQVdTLmNvbmZpZ2BcbiAgICogICBvYmplY3QgYW5kIGNhbm5vdCBiZSBvdmVycmlkZGVuIGluIHNlcnZpY2Utc3BlY2lmaWMgY29uZmlndXJhdGlvbi5cbiAgICogICBEZWZhdWx0cyB0byAwIG1pbGxpc2Vjb25kcy5cbiAgICogQG9wdGlvbiBvcHRpb25zIHNpZ25hdHVyZVZlcnNpb24gW1N0cmluZ10gdGhlIHNpZ25hdHVyZSB2ZXJzaW9uIHRvIHNpZ25cbiAgICogICByZXF1ZXN0cyB3aXRoIChvdmVycmlkaW5nIHRoZSBBUEkgY29uZmlndXJhdGlvbikuIFBvc3NpYmxlIHZhbHVlcyBhcmU6XG4gICAqICAgJ3YyJywgJ3YzJywgJ3Y0Jy5cbiAgICogQG9wdGlvbiBvcHRpb25zIHNpZ25hdHVyZUNhY2hlIFtCb29sZWFuXSB3aGV0aGVyIHRoZSBzaWduYXR1cmUgdG8gc2lnblxuICAgKiAgIHJlcXVlc3RzIHdpdGggKG92ZXJyaWRpbmcgdGhlIEFQSSBjb25maWd1cmF0aW9uKSBpcyBjYWNoZWQuIE9ubHkgYXBwbGllc1xuICAgKiAgIHRvIHRoZSBzaWduYXR1cmUgdmVyc2lvbiAndjQnLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBkeW5hbW9EYkNyYzMyIFtCb29sZWFuXSB3aGV0aGVyIHRvIHZhbGlkYXRlIHRoZSBDUkMzMlxuICAgKiAgIGNoZWNrc3VtIG9mIEhUVFAgcmVzcG9uc2UgYm9kaWVzIHJldHVybmVkIGJ5IER5bmFtb0RCLiBEZWZhdWx0OiBgdHJ1ZWAuXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gQ29uZmlnKG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSBvcHRpb25zID0ge307XG4gICAgb3B0aW9ucyA9IHRoaXMuZXh0cmFjdENyZWRlbnRpYWxzKG9wdGlvbnMpO1xuXG4gICAgQVdTLnV0aWwuZWFjaC5jYWxsKHRoaXMsIHRoaXMua2V5cywgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0KGtleSwgb3B0aW9uc1trZXldLCB2YWx1ZSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEAhZ3JvdXAgTWFuYWdpbmcgQ3JlZGVudGlhbHNcbiAgICovXG5cbiAgLyoqXG4gICAqIExvYWRzIGNyZWRlbnRpYWxzIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseVxuICAgKiBieSB0aGUgU0RLIHRvIGVuc3VyZSB0aGF0IHJlZnJlc2hhYmxlIHtDcmVkZW50aWFsc30gb2JqZWN0cyBhcmUgcHJvcGVybHlcbiAgICogcmVmcmVzaGVkIGFuZCBsb2FkZWQgd2hlbiBzZW5kaW5nIGEgcmVxdWVzdC4gSWYgeW91IHdhbnQgdG8gZW5zdXJlIHRoYXRcbiAgICogeW91ciBjcmVkZW50aWFscyBhcmUgbG9hZGVkIHByaW9yIHRvIGEgcmVxdWVzdCwgeW91IGNhbiB1c2UgdGhpcyBtZXRob2RcbiAgICogZGlyZWN0bHkgdG8gcHJvdmlkZSBhY2N1cmF0ZSBjcmVkZW50aWFsIGRhdGEgc3RvcmVkIGluIHRoZSBvYmplY3QuXG4gICAqXG4gICAqIEBub3RlIElmIHlvdSBjb25maWd1cmUgdGhlIFNESyB3aXRoIHN0YXRpYyBvciBlbnZpcm9ubWVudCBjcmVkZW50aWFscyxcbiAgICogICB0aGUgY3JlZGVudGlhbCBkYXRhIHNob3VsZCBhbHJlYWR5IGJlIHByZXNlbnQgaW4ge2NyZWRlbnRpYWxzfSBhdHRyaWJ1dGUuXG4gICAqICAgVGhpcyBtZXRob2QgaXMgcHJpbWFyaWx5IG5lY2Vzc2FyeSB0byBsb2FkIGNyZWRlbnRpYWxzIGZyb20gYXN5bmNocm9ub3VzXG4gICAqICAgc291cmNlcywgb3Igc291cmNlcyB0aGF0IGNhbiByZWZyZXNoIGNyZWRlbnRpYWxzIHBlcmlvZGljYWxseS5cbiAgICogQGV4YW1wbGUgR2V0dGluZyB5b3VyIGFjY2VzcyBrZXlcbiAgICogICBBV1MuY29uZmlnLmdldENyZWRlbnRpYWxzKGZ1bmN0aW9uKGVycikge1xuICAgKiAgICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyLnN0YWNrKTsgLy8gY3JlZGVudGlhbHMgbm90IGxvYWRlZFxuICAgKiAgICAgZWxzZSBjb25zb2xlLmxvZyhcIkFjY2VzcyBLZXk6XCIsIEFXUy5jb25maWcuY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQpO1xuICAgKiAgIH0pXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIpXG4gICAqICAgQ2FsbGVkIHdoZW4gdGhlIHtjcmVkZW50aWFsc30gaGF2ZSBiZWVuIHByb3Blcmx5IHNldCBvbiB0aGUgY29uZmlndXJhdGlvblxuICAgKiAgIG9iamVjdC5cbiAgICpcbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gaWYgdGhpcyBpcyBzZXQsIGNyZWRlbnRpYWxzIHdlcmUgbm90IHN1Y2Nlc3NmdWxseVxuICAgKiAgICAgbG9hZGVkIGFuZCB0aGlzIGVycm9yIHByb3ZpZGVzIGluZm9ybWF0aW9uIHdoeS5cbiAgICogQHNlZSBjcmVkZW50aWFsc1xuICAgKiBAc2VlIENyZWRlbnRpYWxzXG4gICAqL1xuICBnZXRDcmVkZW50aWFsczogZnVuY3Rpb24gZ2V0Q3JlZGVudGlhbHMoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBmaW5pc2goZXJyKSB7XG4gICAgICBjYWxsYmFjayhlcnIsIGVyciA/IG51bGwgOiBzZWxmLmNyZWRlbnRpYWxzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVkRXJyb3IobXNnLCBlcnIpIHtcbiAgICAgIHJldHVybiBuZXcgQVdTLnV0aWwuZXJyb3IoZXJyIHx8IG5ldyBFcnJvcigpLCB7XG4gICAgICAgIGNvZGU6ICdDcmVkZW50aWFsc0Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogbXNnLFxuICAgICAgICBuYW1lOiAnQ3JlZGVudGlhbHNFcnJvcidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEFzeW5jQ3JlZGVudGlhbHMoKSB7XG4gICAgICBzZWxmLmNyZWRlbnRpYWxzLmdldChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHZhciBtc2cgPSAnQ291bGQgbm90IGxvYWQgY3JlZGVudGlhbHMgZnJvbSAnICtcbiAgICAgICAgICAgIHNlbGYuY3JlZGVudGlhbHMuY29uc3RydWN0b3IubmFtZTtcbiAgICAgICAgICBlcnIgPSBjcmVkRXJyb3IobXNnLCBlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmlzaChlcnIpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U3RhdGljQ3JlZGVudGlhbHMoKSB7XG4gICAgICB2YXIgZXJyID0gbnVsbDtcbiAgICAgIGlmICghc2VsZi5jcmVkZW50aWFscy5hY2Nlc3NLZXlJZCB8fCAhc2VsZi5jcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgICAgZXJyID0gY3JlZEVycm9yKCdNaXNzaW5nIGNyZWRlbnRpYWxzJyk7XG4gICAgICB9XG4gICAgICBmaW5pc2goZXJyKTtcbiAgICB9XG5cbiAgICBpZiAoc2VsZi5jcmVkZW50aWFscykge1xuICAgICAgaWYgKHR5cGVvZiBzZWxmLmNyZWRlbnRpYWxzLmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBnZXRBc3luY0NyZWRlbnRpYWxzKCk7XG4gICAgICB9IGVsc2UgeyAvLyBzdGF0aWMgY3JlZGVudGlhbHNcbiAgICAgICAgZ2V0U3RhdGljQ3JlZGVudGlhbHMoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNlbGYuY3JlZGVudGlhbFByb3ZpZGVyKSB7XG4gICAgICBzZWxmLmNyZWRlbnRpYWxQcm92aWRlci5yZXNvbHZlKGZ1bmN0aW9uKGVyciwgY3JlZHMpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGVyciA9IGNyZWRFcnJvcignQ291bGQgbm90IGxvYWQgY3JlZGVudGlhbHMgZnJvbSBhbnkgcHJvdmlkZXJzJywgZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBzZWxmLmNyZWRlbnRpYWxzID0gY3JlZHM7XG4gICAgICAgIGZpbmlzaChlcnIpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbmlzaChjcmVkRXJyb3IoJ05vIGNyZWRlbnRpYWxzIHRvIGxvYWQnKSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAIWdyb3VwIExvYWRpbmcgYW5kIFNldHRpbmcgQ29uZmlndXJhdGlvbiBPcHRpb25zXG4gICAqL1xuXG4gIC8qKlxuICAgKiBAb3ZlcmxvYWQgdXBkYXRlKG9wdGlvbnMsIGFsbG93VW5rbm93bktleXMgPSBmYWxzZSlcbiAgICogICBVcGRhdGVzIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2JqZWN0IHdpdGggbmV3IG9wdGlvbnMuXG4gICAqXG4gICAqICAgQGV4YW1wbGUgVXBkYXRlIG1heFJldHJpZXMgcHJvcGVydHkgb2YgYSBjb25maWd1cmF0aW9uIG9iamVjdFxuICAgKiAgICAgY29uZmlnLnVwZGF0ZSh7bWF4UmV0cmllczogMTB9KTtcbiAgICogICBAcGFyYW0gW09iamVjdF0gb3B0aW9ucyBhIG1hcCBvZiBvcHRpb24ga2V5cyBhbmQgdmFsdWVzLlxuICAgKiAgIEBwYXJhbSBbQm9vbGVhbl0gYWxsb3dVbmtub3duS2V5cyB3aGV0aGVyIHVua25vd24ga2V5cyBjYW4gYmUgc2V0IG9uXG4gICAqICAgICB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICAqICAgQHNlZSBjb25zdHJ1Y3RvclxuICAgKi9cbiAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob3B0aW9ucywgYWxsb3dVbmtub3duS2V5cykge1xuICAgIGFsbG93VW5rbm93bktleXMgPSBhbGxvd1Vua25vd25LZXlzIHx8IGZhbHNlO1xuICAgIG9wdGlvbnMgPSB0aGlzLmV4dHJhY3RDcmVkZW50aWFscyhvcHRpb25zKTtcbiAgICBBV1MudXRpbC5lYWNoLmNhbGwodGhpcywgb3B0aW9ucywgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChhbGxvd1Vua25vd25LZXlzIHx8IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmtleXMsIGtleSkgfHxcbiAgICAgICAgICBBV1MuU2VydmljZS5oYXNTZXJ2aWNlKGtleSkpIHtcbiAgICAgICAgdGhpcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIExvYWRzIGNvbmZpZ3VyYXRpb24gZGF0YSBmcm9tIGEgSlNPTiBmaWxlIGludG8gdGhpcyBjb25maWcgb2JqZWN0LlxuICAgKiBAbm90ZSBMb2FkaW5nIGNvbmZpZ3VyYXRpb24gd2lsbCByZXNldCBhbGwgZXhpc3RpbmcgY29uZmlndXJhdGlvblxuICAgKiAgIG9uIHRoZSBvYmplY3QuXG4gICAqIEAhbWFjcm8gbm9icm93c2VyXG4gICAqIEBwYXJhbSBwYXRoIFtTdHJpbmddIHRoZSBwYXRoIHJlbGF0aXZlIHRvIHlvdXIgcHJvY2VzcydzIGN1cnJlbnRcbiAgICogICAgd29ya2luZyBkaXJlY3RvcnkgdG8gbG9hZCBjb25maWd1cmF0aW9uIGZyb20uXG4gICAqIEByZXR1cm4gW0FXUy5Db25maWddIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqL1xuICBsb2FkRnJvbVBhdGg6IGZ1bmN0aW9uIGxvYWRGcm9tUGF0aChwYXRoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuXG4gICAgdmFyIG9wdGlvbnMgPSBKU09OLnBhcnNlKEFXUy51dGlsLnJlYWRGaWxlU3luYyhwYXRoKSk7XG4gICAgdmFyIGZpbGVTeXN0ZW1DcmVkcyA9IG5ldyBBV1MuRmlsZVN5c3RlbUNyZWRlbnRpYWxzKHBhdGgpO1xuICAgIHZhciBjaGFpbiA9IG5ldyBBV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4oKTtcbiAgICBjaGFpbi5wcm92aWRlcnMudW5zaGlmdChmaWxlU3lzdGVtQ3JlZHMpO1xuICAgIGNoYWluLnJlc29sdmUoZnVuY3Rpb24gKGVyciwgY3JlZHMpIHtcbiAgICAgIGlmIChlcnIpIHRocm93IGVycjtcbiAgICAgIGVsc2Ugb3B0aW9ucy5jcmVkZW50aWFscyA9IGNyZWRzO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25zdHJ1Y3RvcihvcHRpb25zKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDbGVhcnMgY29uZmlndXJhdGlvbiBkYXRhIG9uIHRoaXMgb2JqZWN0XG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY2xlYXI6IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgIC8qanNoaW50IGZvcmluOmZhbHNlICovXG4gICAgQVdTLnV0aWwuZWFjaC5jYWxsKHRoaXMsIHRoaXMua2V5cywgZnVuY3Rpb24gKGtleSkge1xuICAgICAgZGVsZXRlIHRoaXNba2V5XTtcbiAgICB9KTtcblxuICAgIC8vIHJlc2V0IGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICB0aGlzLnNldCgnY3JlZGVudGlhbHMnLCB1bmRlZmluZWQpO1xuICAgIHRoaXMuc2V0KCdjcmVkZW50aWFsUHJvdmlkZXInLCB1bmRlZmluZWQpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTZXRzIGEgcHJvcGVydHkgb24gdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LCBhbGxvd2luZyBmb3IgYVxuICAgKiBkZWZhdWx0IHZhbHVlXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0OiBmdW5jdGlvbiBzZXQocHJvcGVydHksIHZhbHVlLCBkZWZhdWx0VmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRoaXMua2V5c1twcm9wZXJ0eV07XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRlZmF1bHRWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzW3Byb3BlcnR5XSA9IGRlZmF1bHRWYWx1ZS5jYWxsKHRoaXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpc1twcm9wZXJ0eV0gPSBkZWZhdWx0VmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PT0gJ2h0dHBPcHRpb25zJyAmJiB0aGlzW3Byb3BlcnR5XSkge1xuICAgICAgLy8gZGVlcCBtZXJnZSBodHRwT3B0aW9uc1xuICAgICAgdGhpc1twcm9wZXJ0eV0gPSBBV1MudXRpbC5tZXJnZSh0aGlzW3Byb3BlcnR5XSwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzW3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQWxsIG9mIHRoZSBrZXlzIHdpdGggdGhlaXIgZGVmYXVsdCB2YWx1ZXMuXG4gICAqXG4gICAqIEBjb25zdGFudFxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGtleXM6IHtcbiAgICBjcmVkZW50aWFsczogbnVsbCxcbiAgICBjcmVkZW50aWFsUHJvdmlkZXI6IG51bGwsXG4gICAgcmVnaW9uOiBudWxsLFxuICAgIGxvZ2dlcjogbnVsbCxcbiAgICBhcGlWZXJzaW9uczoge30sXG4gICAgYXBpVmVyc2lvbjogbnVsbCxcbiAgICBlbmRwb2ludDogdW5kZWZpbmVkLFxuICAgIGh0dHBPcHRpb25zOiB7XG4gICAgICB0aW1lb3V0OiAxMjAwMDBcbiAgICB9LFxuICAgIG1heFJldHJpZXM6IHVuZGVmaW5lZCxcbiAgICBtYXhSZWRpcmVjdHM6IDEwLFxuICAgIHBhcmFtVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICBzc2xFbmFibGVkOiB0cnVlLFxuICAgIHMzRm9yY2VQYXRoU3R5bGU6IGZhbHNlLFxuICAgIHMzQnVja2V0RW5kcG9pbnQ6IGZhbHNlLFxuICAgIHMzRGlzYWJsZUJvZHlTaWduaW5nOiB0cnVlLFxuICAgIGNvbXB1dGVDaGVja3N1bXM6IHRydWUsXG4gICAgY29udmVydFJlc3BvbnNlVHlwZXM6IHRydWUsXG4gICAgY29ycmVjdENsb2NrU2tldzogZmFsc2UsXG4gICAgY3VzdG9tVXNlckFnZW50OiBudWxsLFxuICAgIGR5bmFtb0RiQ3JjMzI6IHRydWUsXG4gICAgc3lzdGVtQ2xvY2tPZmZzZXQ6IDAsXG4gICAgc2lnbmF0dXJlVmVyc2lvbjogbnVsbCxcbiAgICBzaWduYXR1cmVDYWNoZTogdHJ1ZSxcbiAgICByZXRyeURlbGF5T3B0aW9uczoge30sXG4gICAgdXNlQWNjZWxlcmF0ZUVuZHBvaW50OiBmYWxzZVxuICB9LFxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhY2Nlc3NLZXlJZCwgc2VjcmV0QWNjZXNzS2V5IGFuZCBzZXNzaW9uVG9rZW5cbiAgICogZnJvbSBhIGNvbmZpZ3VyYXRpb24gaGFzaC5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBleHRyYWN0Q3JlZGVudGlhbHM6IGZ1bmN0aW9uIGV4dHJhY3RDcmVkZW50aWFscyhvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMuYWNjZXNzS2V5SWQgJiYgb3B0aW9ucy5zZWNyZXRBY2Nlc3NLZXkpIHtcbiAgICAgIG9wdGlvbnMgPSBBV1MudXRpbC5jb3B5KG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IG5ldyBBV1MuQ3JlZGVudGlhbHMob3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwcm9taXNlIGRlcGVuZGVuY3kgdGhlIFNESyB3aWxsIHVzZSB3aGVyZXZlciBQcm9taXNlcyBhcmUgcmV0dXJuZWQuXG4gICAqIFBhc3NpbmcgYG51bGxgIHdpbGwgZm9yY2UgdGhlIFNESyB0byB1c2UgbmF0aXZlIFByb21pc2VzIGlmIHRoZXkgYXJlIGF2YWlsYWJsZS5cbiAgICogSWYgbmF0aXZlIFByb21pc2VzIGFyZSBub3QgYXZhaWxhYmxlLCBwYXNzaW5nIGBudWxsYCB3aWxsIGhhdmUgbm8gZWZmZWN0LlxuICAgKiBAcGFyYW0gW0NvbnN0cnVjdG9yXSBkZXAgQSByZWZlcmVuY2UgdG8gYSBQcm9taXNlIGNvbnN0cnVjdG9yXG4gICAqL1xuICBzZXRQcm9taXNlc0RlcGVuZGVuY3k6IGZ1bmN0aW9uIHNldFByb21pc2VzRGVwZW5kZW5jeShkZXApIHtcbiAgICBQcm9taXNlc0RlcGVuZGVuY3kgPSBkZXA7XG4gICAgLy8gaWYgbnVsbCB3YXMgcGFzc2VkIGluLCB3ZSBzaG91bGQgdHJ5IHRvIHVzZSBuYXRpdmUgcHJvbWlzZXNcbiAgICBpZiAoZGVwID09PSBudWxsICYmIHR5cGVvZiBQcm9taXNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBQcm9taXNlc0RlcGVuZGVuY3kgPSBQcm9taXNlO1xuICAgIH1cbiAgICB2YXIgY29uc3RydWN0b3JzID0gW0FXUy5SZXF1ZXN0LCBBV1MuQ3JlZGVudGlhbHMsIEFXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbl07XG4gICAgaWYgKEFXUy5TMyAmJiBBV1MuUzMuTWFuYWdlZFVwbG9hZCkgY29uc3RydWN0b3JzLnB1c2goQVdTLlMzLk1hbmFnZWRVcGxvYWQpO1xuICAgIEFXUy51dGlsLmFkZFByb21pc2VzKGNvbnN0cnVjdG9ycywgUHJvbWlzZXNEZXBlbmRlbmN5KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0cyB0aGUgcHJvbWlzZSBkZXBlbmRlbmN5IHNldCBieSBgQVdTLmNvbmZpZy5zZXRQcm9taXNlc0RlcGVuZGVuY3lgLlxuICAgKi9cbiAgZ2V0UHJvbWlzZXNEZXBlbmRlbmN5OiBmdW5jdGlvbiBnZXRQcm9taXNlc0RlcGVuZGVuY3koKSB7XG4gICAgcmV0dXJuIFByb21pc2VzRGVwZW5kZW5jeTtcbiAgfVxufSk7XG5cbi8qKlxuICogQHJldHVybiBbQVdTLkNvbmZpZ10gVGhlIGdsb2JhbCBjb25maWd1cmF0aW9uIG9iamVjdCBzaW5nbGV0b24gaW5zdGFuY2VcbiAqIEByZWFkb25seVxuICogQHNlZSBBV1MuQ29uZmlnXG4gKi9cbkFXUy5jb25maWcgPSBuZXcgQVdTLkNvbmZpZygpO1xuIiwiLyoqXG4gKiBUaGUgbWFpbiBBV1MgbmFtZXNwYWNlXG4gKi9cbnZhciBBV1MgPSB7IHV0aWw6IHJlcXVpcmUoJy4vdXRpbCcpIH07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKiBAIW1hY3JvIFtuZXddIG5vYnJvd3NlclxuICogICBAbm90ZSBUaGlzIGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgYnJvd3NlciBlbnZpcm9ubWVudCBvZiB0aGUgU0RLLlxuICovXG52YXIgX2hpZGRlbiA9IHt9OyBfaGlkZGVuLnRvU3RyaW5nKCk7IC8vIGhhY2sgdG8gcGFyc2UgbWFjcm9cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1M7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MsIHtcblxuICAvKipcbiAgICogQGNvbnN0YW50XG4gICAqL1xuICBWRVJTSU9OOiAnMi4yNjguMScsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgU2lnbmVyczoge30sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgUHJvdG9jb2w6IHtcbiAgICBKc29uOiByZXF1aXJlKCcuL3Byb3RvY29sL2pzb24nKSxcbiAgICBRdWVyeTogcmVxdWlyZSgnLi9wcm90b2NvbC9xdWVyeScpLFxuICAgIFJlc3Q6IHJlcXVpcmUoJy4vcHJvdG9jb2wvcmVzdCcpLFxuICAgIFJlc3RKc29uOiByZXF1aXJlKCcuL3Byb3RvY29sL3Jlc3RfanNvbicpLFxuICAgIFJlc3RYbWw6IHJlcXVpcmUoJy4vcHJvdG9jb2wvcmVzdF94bWwnKVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIFhNTDoge1xuICAgIEJ1aWxkZXI6IHJlcXVpcmUoJy4veG1sL2J1aWxkZXInKSxcbiAgICBQYXJzZXI6IG51bGwgLy8gY29uZGl0aW9uYWxseSBzZXQgYmFzZWQgb24gZW52aXJvbm1lbnRcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBKU09OOiB7XG4gICAgQnVpbGRlcjogcmVxdWlyZSgnLi9qc29uL2J1aWxkZXInKSxcbiAgICBQYXJzZXI6IHJlcXVpcmUoJy4vanNvbi9wYXJzZXInKVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIE1vZGVsOiB7XG4gICAgQXBpOiByZXF1aXJlKCcuL21vZGVsL2FwaScpLFxuICAgIE9wZXJhdGlvbjogcmVxdWlyZSgnLi9tb2RlbC9vcGVyYXRpb24nKSxcbiAgICBTaGFwZTogcmVxdWlyZSgnLi9tb2RlbC9zaGFwZScpLFxuICAgIFBhZ2luYXRvcjogcmVxdWlyZSgnLi9tb2RlbC9wYWdpbmF0b3InKSxcbiAgICBSZXNvdXJjZVdhaXRlcjogcmVxdWlyZSgnLi9tb2RlbC9yZXNvdXJjZV93YWl0ZXInKVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFwaUxvYWRlcjogcmVxdWlyZSgnLi9hcGlfbG9hZGVyJylcbn0pO1xuXG5yZXF1aXJlKCcuL3NlcnZpY2UnKTtcbnJlcXVpcmUoJy4vY29uZmlnJyk7XG5cbnJlcXVpcmUoJy4vaHR0cCcpO1xucmVxdWlyZSgnLi9zZXF1ZW50aWFsX2V4ZWN1dG9yJyk7XG5yZXF1aXJlKCcuL2V2ZW50X2xpc3RlbmVycycpO1xucmVxdWlyZSgnLi9yZXF1ZXN0Jyk7XG5yZXF1aXJlKCcuL3Jlc3BvbnNlJyk7XG5yZXF1aXJlKCcuL3Jlc291cmNlX3dhaXRlcicpO1xucmVxdWlyZSgnLi9zaWduZXJzL3JlcXVlc3Rfc2lnbmVyJyk7XG5yZXF1aXJlKCcuL3BhcmFtX3ZhbGlkYXRvcicpO1xuXG4vKipcbiAqIEByZWFkb25seVxuICogQHJldHVybiBbQVdTLlNlcXVlbnRpYWxFeGVjdXRvcl0gYSBjb2xsZWN0aW9uIG9mIGdsb2JhbCBldmVudCBsaXN0ZW5lcnMgdGhhdFxuICogICBhcmUgYXR0YWNoZWQgdG8gZXZlcnkgc2VudCByZXF1ZXN0LlxuICogQHNlZSBBV1MuUmVxdWVzdCBBV1MuUmVxdWVzdCBmb3IgYSBsaXN0IG9mIGV2ZW50cyB0byBsaXN0ZW4gZm9yXG4gKiBAZXhhbXBsZSBMb2dnaW5nIHRoZSB0aW1lIHRha2VuIHRvIHNlbmQgYSByZXF1ZXN0XG4gKiAgIEFXUy5ldmVudHMub24oJ3NlbmQnLCBmdW5jdGlvbiBzdGFydFNlbmQocmVzcCkge1xuICogICAgIHJlc3Auc3RhcnRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gKiAgIH0pLm9uKCdjb21wbGV0ZScsIGZ1bmN0aW9uIGNhbGN1bGF0ZVRpbWUocmVzcCkge1xuICogICAgIHZhciB0aW1lID0gKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gcmVzcC5zdGFydFRpbWUpIC8gMTAwMDtcbiAqICAgICBjb25zb2xlLmxvZygnUmVxdWVzdCB0b29rICcgKyB0aW1lICsgJyBzZWNvbmRzJyk7XG4gKiAgIH0pO1xuICpcbiAqICAgbmV3IEFXUy5TMygpLmxpc3RCdWNrZXRzKCk7IC8vIHByaW50cyAnUmVxdWVzdCB0b29rIDAuMjg1IHNlY29uZHMnXG4gKi9cbkFXUy5ldmVudHMgPSBuZXcgQVdTLlNlcXVlbnRpYWxFeGVjdXRvcigpO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgeW91ciBBV1Mgc2VjdXJpdHkgY3JlZGVudGlhbHMsIHNwZWNpZmljYWxseSB0aGVcbiAqIHthY2Nlc3NLZXlJZH0sIHtzZWNyZXRBY2Nlc3NLZXl9LCBhbmQgb3B0aW9uYWwge3Nlc3Npb25Ub2tlbn0uXG4gKiBDcmVhdGluZyBhIGBDcmVkZW50aWFsc2Agb2JqZWN0IGFsbG93cyB5b3UgdG8gcGFzcyBhcm91bmQgeW91clxuICogc2VjdXJpdHkgaW5mb3JtYXRpb24gdG8gY29uZmlndXJhdGlvbiBhbmQgc2VydmljZSBvYmplY3RzLlxuICpcbiAqIE5vdGUgdGhhdCB0aGlzIGNsYXNzIHR5cGljYWxseSBkb2VzIG5vdCBuZWVkIHRvIGJlIGNvbnN0cnVjdGVkIG1hbnVhbGx5LFxuICogYXMgdGhlIHtBV1MuQ29uZmlnfSBhbmQge0FXUy5TZXJ2aWNlfSBjbGFzc2VzIGJvdGggYWNjZXB0IHNpbXBsZVxuICogb3B0aW9ucyBoYXNoZXMgd2l0aCB0aGUgdGhyZWUga2V5cy4gVGhlc2Ugc3RydWN0dXJlcyB3aWxsIGJlIGNvbnZlcnRlZFxuICogaW50byBDcmVkZW50aWFscyBvYmplY3RzIGF1dG9tYXRpY2FsbHkuXG4gKlxuICogIyMgRXhwaXJpbmcgYW5kIFJlZnJlc2hpbmcgQ3JlZGVudGlhbHNcbiAqXG4gKiBPY2Nhc2lvbmFsbHkgY3JlZGVudGlhbHMgY2FuIGV4cGlyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbG9uZy1ydW5uaW5nXG4gKiBhcHBsaWNhdGlvbi4gSW4gdGhpcyBjYXNlLCB0aGUgU0RLIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvXG4gKiByZWZyZXNoIHRoZSBjcmVkZW50aWFscyBmcm9tIHRoZSBzdG9yYWdlIGxvY2F0aW9uIGlmIHRoZSBDcmVkZW50aWFsc1xuICogY2xhc3MgaW1wbGVtZW50cyB0aGUge3JlZnJlc2h9IG1ldGhvZC5cbiAqXG4gKiBJZiB5b3UgYXJlIGltcGxlbWVudGluZyBhIGNyZWRlbnRpYWwgc3RvcmFnZSBsb2NhdGlvbiwgeW91XG4gKiB3aWxsIHdhbnQgdG8gY3JlYXRlIGEgc3ViY2xhc3Mgb2YgdGhlIGBDcmVkZW50aWFsc2AgY2xhc3MgYW5kXG4gKiBvdmVycmlkZSB0aGUge3JlZnJlc2h9IG1ldGhvZC4gVGhpcyBtZXRob2QgYWxsb3dzIGNyZWRlbnRpYWxzIHRvIGJlXG4gKiByZXRyaWV2ZWQgZnJvbSB0aGUgYmFja2luZyBzdG9yZSwgYmUgaXQgYSBmaWxlIHN5c3RlbSwgZGF0YWJhc2UsIG9yXG4gKiBzb21lIG5ldHdvcmsgc3RvcmFnZS4gVGhlIG1ldGhvZCBzaG91bGQgcmVzZXQgdGhlIGNyZWRlbnRpYWwgYXR0cmlidXRlc1xuICogb24gdGhlIG9iamVjdC5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBleHBpcmVkXG4gKiAgIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdGhlIGNyZWRlbnRpYWxzIGhhdmUgYmVlbiBleHBpcmVkIGFuZFxuICogICAgIHJlcXVpcmUgYSByZWZyZXNoLiBVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGgge2V4cGlyZVRpbWV9LlxuICogQCFhdHRyaWJ1dGUgZXhwaXJlVGltZVxuICogICBAcmV0dXJuIFtEYXRlXSBhIHRpbWUgd2hlbiBjcmVkZW50aWFscyBzaG91bGQgYmUgY29uc2lkZXJlZCBleHBpcmVkLiBVc2VkXG4gKiAgICAgaW4gY29uanVuY3Rpb24gd2l0aCB7ZXhwaXJlZH0uXG4gKiBAIWF0dHJpYnV0ZSBhY2Nlc3NLZXlJZFxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSBBV1MgYWNjZXNzIGtleSBJRFxuICogQCFhdHRyaWJ1dGUgc2VjcmV0QWNjZXNzS2V5XG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIEFXUyBzZWNyZXQgYWNjZXNzIGtleVxuICogQCFhdHRyaWJ1dGUgc2Vzc2lvblRva2VuXG4gKiAgIEByZXR1cm4gW1N0cmluZ10gYW4gb3B0aW9uYWwgQVdTIHNlc3Npb24gdG9rZW5cbiAqL1xuQVdTLkNyZWRlbnRpYWxzID0gQVdTLnV0aWwuaW5oZXJpdCh7XG4gIC8qKlxuICAgKiBBIGNyZWRlbnRpYWxzIG9iamVjdCBjYW4gYmUgY3JlYXRlZCB1c2luZyBwb3NpdGlvbmFsIGFyZ3VtZW50cyBvciBhbiBvcHRpb25zXG4gICAqIGhhc2guXG4gICAqXG4gICAqIEBvdmVybG9hZCBBV1MuQ3JlZGVudGlhbHMoYWNjZXNzS2V5SWQsIHNlY3JldEFjY2Vzc0tleSwgc2Vzc2lvblRva2VuPW51bGwpXG4gICAqICAgQ3JlYXRlcyBhIENyZWRlbnRpYWxzIG9iamVjdCB3aXRoIGEgZ2l2ZW4gc2V0IG9mIGNyZWRlbnRpYWwgaW5mb3JtYXRpb25cbiAgICogICBhcyBwb3NpdGlvbmFsIGFyZ3VtZW50cy5cbiAgICogICBAcGFyYW0gYWNjZXNzS2V5SWQgW1N0cmluZ10gdGhlIEFXUyBhY2Nlc3Mga2V5IElEXG4gICAqICAgQHBhcmFtIHNlY3JldEFjY2Vzc0tleSBbU3RyaW5nXSB0aGUgQVdTIHNlY3JldCBhY2Nlc3Mga2V5XG4gICAqICAgQHBhcmFtIHNlc3Npb25Ub2tlbiBbU3RyaW5nXSB0aGUgb3B0aW9uYWwgQVdTIHNlc3Npb24gdG9rZW5cbiAgICogICBAZXhhbXBsZSBDcmVhdGUgYSBjcmVkZW50aWFscyBvYmplY3Qgd2l0aCBBV1MgY3JlZGVudGlhbHNcbiAgICogICAgIHZhciBjcmVkcyA9IG5ldyBBV1MuQ3JlZGVudGlhbHMoJ2FraWQnLCAnc2VjcmV0JywgJ3Nlc3Npb24nKTtcbiAgICogQG92ZXJsb2FkIEFXUy5DcmVkZW50aWFscyhvcHRpb25zKVxuICAgKiAgIENyZWF0ZXMgYSBDcmVkZW50aWFscyBvYmplY3Qgd2l0aCBhIGdpdmVuIHNldCBvZiBjcmVkZW50aWFsIGluZm9ybWF0aW9uXG4gICAqICAgYXMgYW4gb3B0aW9ucyBoYXNoLlxuICAgKiAgIEBvcHRpb24gb3B0aW9ucyBhY2Nlc3NLZXlJZCBbU3RyaW5nXSB0aGUgQVdTIGFjY2VzcyBrZXkgSURcbiAgICogICBAb3B0aW9uIG9wdGlvbnMgc2VjcmV0QWNjZXNzS2V5IFtTdHJpbmddIHRoZSBBV1Mgc2VjcmV0IGFjY2VzcyBrZXlcbiAgICogICBAb3B0aW9uIG9wdGlvbnMgc2Vzc2lvblRva2VuIFtTdHJpbmddIHRoZSBvcHRpb25hbCBBV1Mgc2Vzc2lvbiB0b2tlblxuICAgKiAgIEBleGFtcGxlIENyZWF0ZSBhIGNyZWRlbnRpYWxzIG9iamVjdCB3aXRoIEFXUyBjcmVkZW50aWFsc1xuICAgKiAgICAgdmFyIGNyZWRzID0gbmV3IEFXUy5DcmVkZW50aWFscyh7XG4gICAqICAgICAgIGFjY2Vzc0tleUlkOiAnYWtpZCcsIHNlY3JldEFjY2Vzc0tleTogJ3NlY3JldCcsIHNlc3Npb25Ub2tlbjogJ3Nlc3Npb24nXG4gICAqICAgICB9KTtcbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBDcmVkZW50aWFscygpIHtcbiAgICAvLyBoaWRlIHNlY3JldEFjY2Vzc0tleSBmcm9tIGJlaW5nIGRpc3BsYXllZCB3aXRoIHV0aWwuaW5zcGVjdFxuICAgIEFXUy51dGlsLmhpZGVQcm9wZXJ0aWVzKHRoaXMsIFsnc2VjcmV0QWNjZXNzS2V5J10pO1xuXG4gICAgdGhpcy5leHBpcmVkID0gZmFsc2U7XG4gICAgdGhpcy5leHBpcmVUaW1lID0gbnVsbDtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgYXJndW1lbnRzWzBdID09PSAnb2JqZWN0Jykge1xuICAgICAgdmFyIGNyZWRzID0gYXJndW1lbnRzWzBdLmNyZWRlbnRpYWxzIHx8IGFyZ3VtZW50c1swXTtcbiAgICAgIHRoaXMuYWNjZXNzS2V5SWQgPSBjcmVkcy5hY2Nlc3NLZXlJZDtcbiAgICAgIHRoaXMuc2VjcmV0QWNjZXNzS2V5ID0gY3JlZHMuc2VjcmV0QWNjZXNzS2V5O1xuICAgICAgdGhpcy5zZXNzaW9uVG9rZW4gPSBjcmVkcy5zZXNzaW9uVG9rZW47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWNjZXNzS2V5SWQgPSBhcmd1bWVudHNbMF07XG4gICAgICB0aGlzLnNlY3JldEFjY2Vzc0tleSA9IGFyZ3VtZW50c1sxXTtcbiAgICAgIHRoaXMuc2Vzc2lvblRva2VuID0gYXJndW1lbnRzWzJdO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQHJldHVybiBbSW50ZWdlcl0gdGhlIG51bWJlciBvZiBzZWNvbmRzIGJlZm9yZSB7ZXhwaXJlVGltZX0gZHVyaW5nIHdoaWNoXG4gICAqICAgdGhlIGNyZWRlbnRpYWxzIHdpbGwgYmUgY29uc2lkZXJlZCBleHBpcmVkLlxuICAgKi9cbiAgZXhwaXJ5V2luZG93OiAxNSxcblxuICAvKipcbiAgICogQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0aGUgY3JlZGVudGlhbHMgb2JqZWN0IHNob3VsZCBjYWxsIHtyZWZyZXNofVxuICAgKiBAbm90ZSBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBwcm92aWRlIGN1c3RvbSByZWZyZXNoXG4gICAqICAgbG9naWMuXG4gICAqL1xuICBuZWVkc1JlZnJlc2g6IGZ1bmN0aW9uIG5lZWRzUmVmcmVzaCgpIHtcbiAgICB2YXIgY3VycmVudFRpbWUgPSBBV1MudXRpbC5kYXRlLmdldERhdGUoKS5nZXRUaW1lKCk7XG4gICAgdmFyIGFkanVzdGVkVGltZSA9IG5ldyBEYXRlKGN1cnJlbnRUaW1lICsgdGhpcy5leHBpcnlXaW5kb3cgKiAxMDAwKTtcblxuICAgIGlmICh0aGlzLmV4cGlyZVRpbWUgJiYgYWRqdXN0ZWRUaW1lID4gdGhpcy5leHBpcmVUaW1lKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZXhwaXJlZCB8fCAhdGhpcy5hY2Nlc3NLZXlJZCB8fCAhdGhpcy5zZWNyZXRBY2Nlc3NLZXk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBleGlzdGluZyBjcmVkZW50aWFscywgcmVmcmVzaGluZyB0aGVtIGlmIHRoZXkgYXJlIG5vdCB5ZXQgbG9hZGVkXG4gICAqIG9yIGhhdmUgZXhwaXJlZC4gVXNlcnMgc2hvdWxkIGNhbGwgdGhpcyBtZXRob2QgYmVmb3JlIHVzaW5nIHtyZWZyZXNofSxcbiAgICogYXMgdGhpcyB3aWxsIG5vdCBhdHRlbXB0IHRvIHJlbG9hZCBjcmVkZW50aWFscyB3aGVuIHRoZXkgYXJlIGFscmVhZHlcbiAgICogbG9hZGVkIGludG8gdGhlIG9iamVjdC5cbiAgICpcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVycilcbiAgICogICBXaGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggbm8gZXJyb3IsIGl0IG1lYW5zIGVpdGhlciBjcmVkZW50aWFsc1xuICAgKiAgIGRvIG5vdCBuZWVkIHRvIGJlIHJlZnJlc2hlZCBvciByZWZyZXNoZWQgY3JlZGVudGlhbHMgaW5mb3JtYXRpb24gaGFzXG4gICAqICAgYmVlbiBsb2FkZWQgaW50byB0aGUgb2JqZWN0IChhcyB0aGUgYGFjY2Vzc0tleUlkYCwgYHNlY3JldEFjY2Vzc0tleWAsXG4gICAqICAgYW5kIGBzZXNzaW9uVG9rZW5gIHByb3BlcnRpZXMpLlxuICAgKiAgIEBwYXJhbSBlcnIgW0Vycm9yXSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIGZpbGxlZFxuICAgKi9cbiAgZ2V0OiBmdW5jdGlvbiBnZXQoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHRoaXMubmVlZHNSZWZyZXNoKCkpIHtcbiAgICAgIHRoaXMucmVmcmVzaChmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKCFlcnIpIHNlbGYuZXhwaXJlZCA9IGZhbHNlOyAvLyByZXNldCBleHBpcmVkIGZsYWdcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjayhlcnIpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEAhbWV0aG9kICBnZXRQcm9taXNlKClcbiAgICogICBSZXR1cm5zIGEgJ3RoZW5hYmxlJyBwcm9taXNlLlxuICAgKiAgIEdldHMgdGhlIGV4aXN0aW5nIGNyZWRlbnRpYWxzLCByZWZyZXNoaW5nIHRoZW0gaWYgdGhleSBhcmUgbm90IHlldCBsb2FkZWRcbiAgICogICBvciBoYXZlIGV4cGlyZWQuIFVzZXJzIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIGJlZm9yZSB1c2luZyB7cmVmcmVzaH0sXG4gICAqICAgYXMgdGhpcyB3aWxsIG5vdCBhdHRlbXB0IHRvIHJlbG9hZCBjcmVkZW50aWFscyB3aGVuIHRoZXkgYXJlIGFscmVhZHlcbiAgICogICBsb2FkZWQgaW50byB0aGUgb2JqZWN0LlxuICAgKlxuICAgKiAgIFR3byBjYWxsYmFja3MgY2FuIGJlIHByb3ZpZGVkIHRvIHRoZSBgdGhlbmAgbWV0aG9kIG9uIHRoZSByZXR1cm5lZCBwcm9taXNlLlxuICAgKiAgIFRoZSBmaXJzdCBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQsIGFuZCB0aGUgc2Vjb25kXG4gICAqICAgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAqICAgQGNhbGxiYWNrIGZ1bGZpbGxlZENhbGxiYWNrIGZ1bmN0aW9uKClcbiAgICogICAgIENhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQuIFdoZW4gdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQsIGl0XG4gICAqICAgICBtZWFucyBlaXRoZXIgY3JlZGVudGlhbHMgZG8gbm90IG5lZWQgdG8gYmUgcmVmcmVzaGVkIG9yIHJlZnJlc2hlZFxuICAgKiAgICAgY3JlZGVudGlhbHMgaW5mb3JtYXRpb24gaGFzIGJlZW4gbG9hZGVkIGludG8gdGhlIG9iamVjdCAoYXMgdGhlXG4gICAqICAgICBgYWNjZXNzS2V5SWRgLCBgc2VjcmV0QWNjZXNzS2V5YCwgYW5kIGBzZXNzaW9uVG9rZW5gIHByb3BlcnRpZXMpLlxuICAgKiAgIEBjYWxsYmFjayByZWplY3RlZENhbGxiYWNrIGZ1bmN0aW9uKGVycilcbiAgICogICAgIENhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICogICAgIEBwYXJhbSBlcnIgW0Vycm9yXSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIGZpbGxlZFxuICAgKiAgIEByZXR1cm4gW1Byb21pc2VdIEEgcHJvbWlzZSB0aGF0IHJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSBgZ2V0YCBjYWxsLlxuICAgKiAgIEBleGFtcGxlIENhbGxpbmcgdGhlIGBnZXRQcm9taXNlYCBtZXRob2QuXG4gICAqICAgICB2YXIgcHJvbWlzZSA9IGNyZWRQcm92aWRlci5nZXRQcm9taXNlKCk7XG4gICAqICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7IC4uLiB9LCBmdW5jdGlvbihlcnIpIHsgLi4uIH0pO1xuICAgKi9cblxuICAvKipcbiAgICogQCFtZXRob2QgIHJlZnJlc2hQcm9taXNlKClcbiAgICogICBSZXR1cm5zIGEgJ3RoZW5hYmxlJyBwcm9taXNlLlxuICAgKiAgIFJlZnJlc2hlcyB0aGUgY3JlZGVudGlhbHMuIFVzZXJzIHNob3VsZCBjYWxsIHtnZXR9IGJlZm9yZSBhdHRlbXB0aW5nXG4gICAqICAgdG8gZm9yY2libHkgcmVmcmVzaCBjcmVkZW50aWFscy5cbiAgICpcbiAgICogICBUd28gY2FsbGJhY2tzIGNhbiBiZSBwcm92aWRlZCB0byB0aGUgYHRoZW5gIG1ldGhvZCBvbiB0aGUgcmV0dXJuZWQgcHJvbWlzZS5cbiAgICogICBUaGUgZmlyc3QgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLCBhbmQgdGhlIHNlY29uZFxuICAgKiAgIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKiAgIEBjYWxsYmFjayBmdWxmaWxsZWRDYWxsYmFjayBmdW5jdGlvbigpXG4gICAqICAgICBDYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLiBXaGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLCBpdFxuICAgKiAgICAgbWVhbnMgcmVmcmVzaGVkIGNyZWRlbnRpYWxzIGluZm9ybWF0aW9uIGhhcyBiZWVuIGxvYWRlZCBpbnRvIHRoZSBvYmplY3RcbiAgICogICAgIChhcyB0aGUgYGFjY2Vzc0tleUlkYCwgYHNlY3JldEFjY2Vzc0tleWAsIGFuZCBgc2Vzc2lvblRva2VuYCBwcm9wZXJ0aWVzKS5cbiAgICogICBAY2FsbGJhY2sgcmVqZWN0ZWRDYWxsYmFjayBmdW5jdGlvbihlcnIpXG4gICAqICAgICBDYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAqICAgICBAcGFyYW0gZXJyIFtFcnJvcl0gaWYgYW4gZXJyb3Igb2NjdXJyZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBmaWxsZWRcbiAgICogICBAcmV0dXJuIFtQcm9taXNlXSBBIHByb21pc2UgdGhhdCByZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiB0aGUgYHJlZnJlc2hgIGNhbGwuXG4gICAqICAgQGV4YW1wbGUgQ2FsbGluZyB0aGUgYHJlZnJlc2hQcm9taXNlYCBtZXRob2QuXG4gICAqICAgICB2YXIgcHJvbWlzZSA9IGNyZWRQcm92aWRlci5yZWZyZXNoUHJvbWlzZSgpO1xuICAgKiAgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeyAuLi4gfSwgZnVuY3Rpb24oZXJyKSB7IC4uLiB9KTtcbiAgICovXG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgY3JlZGVudGlhbHMuIFVzZXJzIHNob3VsZCBjYWxsIHtnZXR9IGJlZm9yZSBhdHRlbXB0aW5nXG4gICAqIHRvIGZvcmNpYmx5IHJlZnJlc2ggY3JlZGVudGlhbHMuXG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIpXG4gICAqICAgV2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIG5vIGVycm9yLCBpdCBtZWFucyByZWZyZXNoZWRcbiAgICogICBjcmVkZW50aWFscyBpbmZvcm1hdGlvbiBoYXMgYmVlbiBsb2FkZWQgaW50byB0aGUgb2JqZWN0IChhcyB0aGVcbiAgICogICBgYWNjZXNzS2V5SWRgLCBgc2VjcmV0QWNjZXNzS2V5YCwgYW5kIGBzZXNzaW9uVG9rZW5gIHByb3BlcnRpZXMpLlxuICAgKiAgIEBwYXJhbSBlcnIgW0Vycm9yXSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIGZpbGxlZFxuICAgKiBAbm90ZSBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIGNsYXNzIHRvIHJlc2V0IHRoZVxuICAgKiAgIHthY2Nlc3NLZXlJZH0sIHtzZWNyZXRBY2Nlc3NLZXl9IGFuZCBvcHRpb25hbCB7c2Vzc2lvblRva2VufVxuICAgKiAgIG9uIHRoZSBjcmVkZW50aWFscyBvYmplY3QgYW5kIHRoZW4gY2FsbCB0aGUgY2FsbGJhY2sgd2l0aFxuICAgKiAgIGFueSBlcnJvciBpbmZvcm1hdGlvbi5cbiAgICogQHNlZSBnZXRcbiAgICovXG4gIHJlZnJlc2g6IGZ1bmN0aW9uIHJlZnJlc2goY2FsbGJhY2spIHtcbiAgICB0aGlzLmV4cGlyZWQgPSBmYWxzZTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLkNyZWRlbnRpYWxzLmFkZFByb21pc2VzVG9DbGFzcyA9IGZ1bmN0aW9uIGFkZFByb21pc2VzVG9DbGFzcyhQcm9taXNlRGVwZW5kZW5jeSkge1xuICB0aGlzLnByb3RvdHlwZS5nZXRQcm9taXNlID0gQVdTLnV0aWwucHJvbWlzaWZ5TWV0aG9kKCdnZXQnLCBQcm9taXNlRGVwZW5kZW5jeSk7XG4gIHRoaXMucHJvdG90eXBlLnJlZnJlc2hQcm9taXNlID0gQVdTLnV0aWwucHJvbWlzaWZ5TWV0aG9kKCdyZWZyZXNoJywgUHJvbWlzZURlcGVuZGVuY3kpO1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLkNyZWRlbnRpYWxzLmRlbGV0ZVByb21pc2VzRnJvbUNsYXNzID0gZnVuY3Rpb24gZGVsZXRlUHJvbWlzZXNGcm9tQ2xhc3MoKSB7XG4gIGRlbGV0ZSB0aGlzLnByb3RvdHlwZS5nZXRQcm9taXNlO1xuICBkZWxldGUgdGhpcy5wcm90b3R5cGUucmVmcmVzaFByb21pc2U7XG59O1xuXG5BV1MudXRpbC5hZGRQcm9taXNlcyhBV1MuQ3JlZGVudGlhbHMpO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciBDb2duaXRvSWRlbnRpdHkgPSByZXF1aXJlKCcuLi8uLi9jbGllbnRzL2NvZ25pdG9pZGVudGl0eScpO1xudmFyIFNUUyA9IHJlcXVpcmUoJy4uLy4uL2NsaWVudHMvc3RzJyk7XG5cbi8qKlxuICogUmVwcmVzZW50cyBjcmVkZW50aWFscyByZXRyaWV2ZWQgZnJvbSBTVFMgV2ViIElkZW50aXR5IEZlZGVyYXRpb24gdXNpbmdcbiAqIHRoZSBBbWF6b24gQ29nbml0byBJZGVudGl0eSBzZXJ2aWNlLlxuICpcbiAqIEJ5IGRlZmF1bHQgdGhpcyBwcm92aWRlciBnZXRzIGNyZWRlbnRpYWxzIHVzaW5nIHRoZVxuICoge0FXUy5Db2duaXRvSWRlbnRpdHkuZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eX0gc2VydmljZSBvcGVyYXRpb24sIHdoaWNoXG4gKiByZXF1aXJlcyBlaXRoZXIgYW4gYElkZW50aXR5SWRgIG9yIGFuIGBJZGVudGl0eVBvb2xJZGAgKEFtYXpvbiBDb2duaXRvXG4gKiBJZGVudGl0eSBQb29sIElEKSwgd2hpY2ggaXMgdXNlZCB0byBjYWxsIHtBV1MuQ29nbml0b0lkZW50aXR5LmdldElkfSB0b1xuICogb2J0YWluIGFuIGBJZGVudGl0eUlkYC4gSWYgdGhlIGlkZW50aXR5IG9yIGlkZW50aXR5IHBvb2wgaXMgbm90IGNvbmZpZ3VyZWQgaW5cbiAqIHRoZSBBbWF6b24gQ29nbml0byBDb25zb2xlIHRvIHVzZSBJQU0gcm9sZXMgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbnMsXG4gKiB0aGVuIGFkZGl0aW9uYWxseSBhIGBSb2xlQXJuYCBpcyByZXF1aXJlZCBjb250YWluaW5nIHRoZSBBUk4gb2YgdGhlIElBTSB0cnVzdFxuICogcG9saWN5IGZvciB0aGUgQW1hem9uIENvZ25pdG8gcm9sZSB0aGF0IHRoZSB1c2VyIHdpbGwgbG9nIGludG8uIElmIGEgYFJvbGVBcm5gXG4gKiBpcyBwcm92aWRlZCwgdGhlbiB0aGlzIHByb3ZpZGVyIGdldHMgY3JlZGVudGlhbHMgdXNpbmcgdGhlXG4gKiB7QVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5fSBzZXJ2aWNlIG9wZXJhdGlvbiwgYWZ0ZXIgZmlyc3QgZ2V0dGluZyBhblxuICogT3BlbiBJRCB0b2tlbiBmcm9tIHtBV1MuQ29nbml0b0lkZW50aXR5LmdldE9wZW5JZFRva2VufS5cbiAqXG4gKiBJbiBhZGRpdGlvbiwgaWYgdGhpcyBjcmVkZW50aWFsIHByb3ZpZGVyIGlzIHVzZWQgdG8gcHJvdmlkZSBhdXRoZW50aWNhdGVkXG4gKiBsb2dpbiwgdGhlIGBMb2dpbnNgIG1hcCBtYXkgYmUgc2V0IHRvIHRoZSB0b2tlbnMgcHJvdmlkZWQgYnkgdGhlIHJlc3BlY3RpdmVcbiAqIGlkZW50aXR5IHByb3ZpZGVycy4gU2VlIHtjb25zdHJ1Y3Rvcn0gZm9yIGFuIGV4YW1wbGUgb24gY3JlYXRpbmcgYSBjcmVkZW50aWFsc1xuICogb2JqZWN0IHdpdGggcHJvcGVyIHByb3BlcnR5IHZhbHVlcy5cbiAqXG4gKiAjIyBSZWZyZXNoaW5nIENyZWRlbnRpYWxzIGZyb20gSWRlbnRpdHkgU2VydmljZVxuICpcbiAqIEluIGFkZGl0aW9uIHRvIEFXUyBjcmVkZW50aWFscyBleHBpcmluZyBhZnRlciBhIGdpdmVuIGFtb3VudCBvZiB0aW1lLCB0aGVcbiAqIGxvZ2luIHRva2VuIGZyb20gdGhlIGlkZW50aXR5IHByb3ZpZGVyIHdpbGwgYWxzbyBleHBpcmUuIE9uY2UgdGhpcyB0b2tlblxuICogZXhwaXJlcywgaXQgd2lsbCBub3QgYmUgdXNhYmxlIHRvIHJlZnJlc2ggQVdTIGNyZWRlbnRpYWxzLCBhbmQgYW5vdGhlclxuICogdG9rZW4gd2lsbCBiZSBuZWVkZWQuIFRoZSBTREsgZG9lcyBub3QgbWFuYWdlIHJlZnJlc2hpbmcgb2YgdGhlIHRva2VuIHZhbHVlLFxuICogYnV0IHRoaXMgY2FuIGJlIGRvbmUgdGhyb3VnaCBhIFwicmVmcmVzaCB0b2tlblwiIHN1cHBvcnRlZCBieSBtb3N0IGlkZW50aXR5XG4gKiBwcm92aWRlcnMuIENvbnN1bHQgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBpZGVudGl0eSBwcm92aWRlciBmb3IgcmVmcmVzaGluZ1xuICogdG9rZW5zLiBPbmNlIHRoZSByZWZyZXNoZWQgdG9rZW4gaXMgYWNxdWlyZWQsIHlvdSBzaG91bGQgbWFrZSBzdXJlIHRvIHVwZGF0ZVxuICogdGhpcyBuZXcgdG9rZW4gaW4gdGhlIGNyZWRlbnRpYWxzIG9iamVjdCdzIHtwYXJhbXN9IHByb3BlcnR5LiBUaGUgZm9sbG93aW5nXG4gKiBjb2RlIHdpbGwgdXBkYXRlIHRoZSBXZWJJZGVudGl0eVRva2VuLCBhc3N1bWluZyB5b3UgaGF2ZSByZXRyaWV2ZWQgYW4gdXBkYXRlZFxuICogdG9rZW4gZnJvbSB0aGUgaWRlbnRpdHkgcHJvdmlkZXI6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogQVdTLmNvbmZpZy5jcmVkZW50aWFscy5wYXJhbXMuTG9naW5zWydncmFwaC5mYWNlYm9vay5jb20nXSA9IHVwZGF0ZWRUb2tlbjtcbiAqIGBgYFxuICpcbiAqIEZ1dHVyZSBjYWxscyB0byBgY3JlZGVudGlhbHMucmVmcmVzaCgpYCB3aWxsIG5vdyB1c2UgdGhlIG5ldyB0b2tlbi5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBwYXJhbXNcbiAqICAgQHJldHVybiBbbWFwXSB0aGUgbWFwIG9mIHBhcmFtcyBwYXNzZWQgdG9cbiAqICAgICB7QVdTLkNvZ25pdG9JZGVudGl0eS5nZXRJZH0sXG4gKiAgICAge0FXUy5Db2duaXRvSWRlbnRpdHkuZ2V0T3BlbklkVG9rZW59LCBhbmRcbiAqICAgICB7QVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5fS4gVG8gdXBkYXRlIHRoZSB0b2tlbiwgc2V0IHRoZVxuICogICAgIGBwYXJhbXMuV2ViSWRlbnRpdHlUb2tlbmAgcHJvcGVydHkuXG4gKiBAIWF0dHJpYnV0ZSBkYXRhXG4gKiAgIEByZXR1cm4gW21hcF0gdGhlIHJhdyBkYXRhIHJlc3BvbnNlIGZyb20gdGhlIGNhbGwgdG9cbiAqICAgICB7QVdTLkNvZ25pdG9JZGVudGl0eS5nZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5fSwgb3JcbiAqICAgICB7QVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5fS4gVXNlIHRoaXMgaWYgeW91IHdhbnQgdG8gZ2V0XG4gKiAgICAgYWNjZXNzIHRvIG90aGVyIHByb3BlcnRpZXMgZnJvbSB0aGUgcmVzcG9uc2UuXG4gKiBAIWF0dHJpYnV0ZSBpZGVudGl0eUlkXG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIENvZ25pdG8gSUQgcmV0dXJuZWQgYnkgdGhlIGxhc3QgY2FsbCB0b1xuICogICAgIHtBV1MuQ29nbml0b0lkZW50aXR5LmdldE9wZW5JZFRva2VufS4gVGhpcyBJRCByZXByZXNlbnRzIHRoZSBhY3R1YWxcbiAqICAgICBmaW5hbCByZXNvbHZlZCBpZGVudGl0eSBJRCBmcm9tIEFtYXpvbiBDb2duaXRvLlxuICovXG5BV1MuQ29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHMgPSBBV1MudXRpbC5pbmhlcml0KEFXUy5DcmVkZW50aWFscywge1xuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBsb2NhbFN0b3JhZ2VLZXk6IHtcbiAgICBpZDogJ2F3cy5jb2duaXRvLmlkZW50aXR5LWlkLicsXG4gICAgcHJvdmlkZXJzOiAnYXdzLmNvZ25pdG8uaWRlbnRpdHktcHJvdmlkZXJzLidcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBjcmVkZW50aWFscyBvYmplY3QuXG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWxzIG9iamVjdFxuICAgKiAgIEFXUy5jb25maWcuY3JlZGVudGlhbHMgPSBuZXcgQVdTLkNvZ25pdG9JZGVudGl0eUNyZWRlbnRpYWxzKHtcbiAgICpcbiAgICogICAgIC8vIGVpdGhlciBJZGVudGl0eVBvb2xJZCBvciBJZGVudGl0eUlkIGlzIHJlcXVpcmVkXG4gICAqICAgICAvLyBTZWUgdGhlIElkZW50aXR5UG9vbElkIHBhcmFtIGZvciBBV1MuQ29nbml0b0lkZW50aXR5LmdldElEIChsaW5rZWQgYmVsb3cpXG4gICAqICAgICAvLyBTZWUgdGhlIElkZW50aXR5SWQgcGFyYW0gZm9yIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eVxuICAgKiAgICAgLy8gb3IgQVdTLkNvZ25pdG9JZGVudGl0eS5nZXRPcGVuSWRUb2tlbiAobGlua2VkIGJlbG93KVxuICAgKiAgICAgSWRlbnRpdHlQb29sSWQ6ICd1cy1lYXN0LTE6MTY5OWViYzAtNzkwMC00MDk5LWI5MTAtMmRmOTRmNTJhMDMwJyxcbiAgICogICAgIElkZW50aXR5SWQ6ICd1cy1lYXN0LTE6MTI4ZDBhNzQtYzgyZi00NTUzLTkxNmQtOTAwNTNlNGE4YjBmJ1xuICAgKlxuICAgKiAgICAgLy8gb3B0aW9uYWwsIG9ubHkgbmVjZXNzYXJ5IHdoZW4gdGhlIGlkZW50aXR5IHBvb2wgaXMgbm90IGNvbmZpZ3VyZWRcbiAgICogICAgIC8vIHRvIHVzZSBJQU0gcm9sZXMgaW4gdGhlIEFtYXpvbiBDb2duaXRvIENvbnNvbGVcbiAgICogICAgIC8vIFNlZSB0aGUgUm9sZUFybiBwYXJhbSBmb3IgQVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5IChsaW5rZWQgYmVsb3cpXG4gICAqICAgICBSb2xlQXJuOiAnYXJuOmF3czppYW06OjEyMzQ1Njc4OTA6cm9sZS9NWUFQUC1Db2duaXRvSWRlbnRpdHknLFxuICAgKlxuICAgKiAgICAgLy8gb3B0aW9uYWwgdG9rZW5zLCB1c2VkIGZvciBhdXRoZW50aWNhdGVkIGxvZ2luXG4gICAqICAgICAvLyBTZWUgdGhlIExvZ2lucyBwYXJhbSBmb3IgQVdTLkNvZ25pdG9JZGVudGl0eS5nZXRJRCAobGlua2VkIGJlbG93KVxuICAgKiAgICAgTG9naW5zOiB7XG4gICAqICAgICAgICdncmFwaC5mYWNlYm9vay5jb20nOiAnRkJUT0tFTicsXG4gICAqICAgICAgICd3d3cuYW1hem9uLmNvbSc6ICdBTUFaT05UT0tFTicsXG4gICAqICAgICAgICdhY2NvdW50cy5nb29nbGUuY29tJzogJ0dPT0dMRVRPS0VOJyxcbiAgICogICAgICAgJ2FwaS50d2l0dGVyLmNvbSc6ICdUV0lUVEVSVE9LRU4nLFxuICAgKiAgICAgICAnd3d3LmRpZ2l0cy5jb20nOiAnRElHSVRTVE9LRU4nXG4gICAqICAgICB9LFxuICAgKlxuICAgKiAgICAgLy8gb3B0aW9uYWwgbmFtZSwgZGVmYXVsdHMgdG8gd2ViLWlkZW50aXR5XG4gICAqICAgICAvLyBTZWUgdGhlIFJvbGVTZXNzaW9uTmFtZSBwYXJhbSBmb3IgQVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5IChsaW5rZWQgYmVsb3cpXG4gICAqICAgICBSb2xlU2Vzc2lvbk5hbWU6ICd3ZWInLFxuICAgKlxuICAgKiAgICAgLy8gb3B0aW9uYWwsIG9ubHkgbmVjZXNzYXJ5IHdoZW4gYXBwbGljYXRpb24gcnVucyBpbiBhIGJyb3dzZXJcbiAgICogICAgIC8vIGFuZCBtdWx0aXBsZSB1c2VycyBhcmUgc2lnbmVkIGluIGF0IG9uY2UsIHVzZWQgZm9yIGNhY2hpbmdcbiAgICogICAgIExvZ2luSWQ6ICdleGFtcGxlQGdtYWlsLmNvbSdcbiAgICpcbiAgICogICB9LCB7XG4gICAqICAgICAgLy8gb3B0aW9uYWxseSBwcm92aWRlIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkgdG8gdGhlIHVuZGVybHlpbmcgc2VydmljZSBjbGllbnRzXG4gICAqICAgICAgLy8gaWYgY29uZmlndXJhdGlvbiBpcyBub3QgcHJvdmlkZWQsIHRoZW4gY29uZmlndXJhdGlvbiB3aWxsIGJlIHB1bGxlZCBmcm9tIEFXUy5jb25maWdcbiAgICpcbiAgICogICAgICAvLyByZWdpb24gc2hvdWxkIG1hdGNoIHRoZSByZWdpb24geW91ciBpZGVudGl0eSBwb29sIGlzIGxvY2F0ZWQgaW5cbiAgICogICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgKlxuICAgKiAgICAgIC8vIHNwZWNpZnkgdGltZW91dCBvcHRpb25zXG4gICAqICAgICAgaHR0cE9wdGlvbnM6IHtcbiAgICogICAgICAgIHRpbWVvdXQ6IDEwMFxuICAgKiAgICAgIH1cbiAgICogICB9KTtcbiAgICogQHNlZSBBV1MuQ29nbml0b0lkZW50aXR5LmdldElkXG4gICAqIEBzZWUgQVdTLkNvZ25pdG9JZGVudGl0eS5nZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5XG4gICAqIEBzZWUgQVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5XG4gICAqIEBzZWUgQVdTLkNvZ25pdG9JZGVudGl0eS5nZXRPcGVuSWRUb2tlblxuICAgKiBAc2VlIEFXUy5Db25maWdcbiAgICogQG5vdGUgSWYgYSByZWdpb24gaXMgbm90IHByb3ZpZGVkIGluIHRoZSBnbG9iYWwgQVdTLmNvbmZpZywgb3JcbiAgICogICBzcGVjaWZpZWQgaW4gdGhlIGBjbGllbnRDb25maWdgIHRvIHRoZSBDb2duaXRvSWRlbnRpdHlDcmVkZW50aWFsc1xuICAgKiAgIGNvbnN0cnVjdG9yLCB5b3UgbWF5IGVuY291bnRlciBhICdNaXNzaW5nIGNyZWRlbnRpYWxzIGluIGNvbmZpZycgZXJyb3JcbiAgICogICB3aGVuIGNhbGxpbmcgbWFraW5nIGEgc2VydmljZSBjYWxsLlxuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIENvZ25pdG9JZGVudGl0eUNyZWRlbnRpYWxzKHBhcmFtcywgY2xpZW50Q29uZmlnKSB7XG4gICAgQVdTLkNyZWRlbnRpYWxzLmNhbGwodGhpcyk7XG4gICAgdGhpcy5leHBpcmVkID0gdHJ1ZTtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgIHRoaXMuX2lkZW50aXR5SWQgPSBudWxsO1xuICAgIHRoaXMuX2NsaWVudENvbmZpZyA9IEFXUy51dGlsLmNvcHkoY2xpZW50Q29uZmlnIHx8IHt9KTtcbiAgICB0aGlzLmxvYWRDYWNoZWRJZCgpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2lkZW50aXR5SWQnLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLmxvYWRDYWNoZWRJZCgpO1xuICAgICAgICByZXR1cm4gc2VsZi5faWRlbnRpdHlJZCB8fCBzZWxmLnBhcmFtcy5JZGVudGl0eUlkO1xuICAgICAgfSxcbiAgICAgIHNldDogZnVuY3Rpb24oaWRlbnRpdHlJZCkge1xuICAgICAgICBzZWxmLl9pZGVudGl0eUlkID0gaWRlbnRpdHlJZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogUmVmcmVzaGVzIGNyZWRlbnRpYWxzIHVzaW5nIHtBV1MuQ29nbml0b0lkZW50aXR5LmdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHl9LFxuICAgKiBvciB7QVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5fS5cbiAgICpcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVycilcbiAgICogICBDYWxsZWQgd2hlbiB0aGUgU1RTIHNlcnZpY2UgcmVzcG9uZHMgKG9yIGZhaWxzKS4gV2hlblxuICAgKiAgIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggbm8gZXJyb3IsIGl0IG1lYW5zIHRoYXQgdGhlIGNyZWRlbnRpYWxzXG4gICAqICAgaW5mb3JtYXRpb24gaGFzIGJlZW4gbG9hZGVkIGludG8gdGhlIG9iamVjdCAoYXMgdGhlIGBhY2Nlc3NLZXlJZGAsXG4gICAqICAgYHNlY3JldEFjY2Vzc0tleWAsIGFuZCBgc2Vzc2lvblRva2VuYCBwcm9wZXJ0aWVzKS5cbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gaWYgYW4gZXJyb3Igb2NjdXJyZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBmaWxsZWRcbiAgICogQHNlZSBBV1MuQ3JlZGVudGlhbHMuZ2V0XG4gICAqL1xuICByZWZyZXNoOiBmdW5jdGlvbiByZWZyZXNoKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuY3JlYXRlQ2xpZW50cygpO1xuICAgIHNlbGYuZGF0YSA9IG51bGw7XG4gICAgc2VsZi5faWRlbnRpdHlJZCA9IG51bGw7XG4gICAgc2VsZi5nZXRJZChmdW5jdGlvbihlcnIpIHtcbiAgICAgIGlmICghZXJyKSB7XG4gICAgICAgIGlmICghc2VsZi5wYXJhbXMuUm9sZUFybikge1xuICAgICAgICAgIHNlbGYuZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eShjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VsZi5nZXRDcmVkZW50aWFsc0Zyb21TVFMoY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxmLmNsZWFySWRPbk5vdEF1dGhvcml6ZWQoZXJyKTtcbiAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBjYWNoZWQgQ29nbml0byBJRCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnRseSBjb25maWd1cmVkXG4gICAqIGlkZW50aXR5IHBvb2wgSUQuIFVzZSB0aGlzIHRvIG1hbnVhbGx5IGludmFsaWRhdGUgeW91ciBjYWNoZSBpZlxuICAgKiB0aGUgaWRlbnRpdHkgcG9vbCBJRCB3YXMgZGVsZXRlZC5cbiAgICovXG4gIGNsZWFyQ2FjaGVkSWQ6IGZ1bmN0aW9uIGNsZWFyQ2FjaGUoKSB7XG4gICAgdGhpcy5faWRlbnRpdHlJZCA9IG51bGw7XG4gICAgZGVsZXRlIHRoaXMucGFyYW1zLklkZW50aXR5SWQ7XG5cbiAgICB2YXIgcG9vbElkID0gdGhpcy5wYXJhbXMuSWRlbnRpdHlQb29sSWQ7XG4gICAgdmFyIGxvZ2luSWQgPSB0aGlzLnBhcmFtcy5Mb2dpbklkIHx8ICcnO1xuICAgIGRlbGV0ZSB0aGlzLnN0b3JhZ2VbdGhpcy5sb2NhbFN0b3JhZ2VLZXkuaWQgKyBwb29sSWQgKyBsb2dpbklkXTtcbiAgICBkZWxldGUgdGhpcy5zdG9yYWdlW3RoaXMubG9jYWxTdG9yYWdlS2V5LnByb3ZpZGVycyArIHBvb2xJZCArIGxvZ2luSWRdO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNsZWFySWRPbk5vdEF1dGhvcml6ZWQ6IGZ1bmN0aW9uIGNsZWFySWRPbk5vdEF1dGhvcml6ZWQoZXJyKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmIChlcnIuY29kZSA9PSAnTm90QXV0aG9yaXplZEV4Y2VwdGlvbicpIHtcbiAgICAgIHNlbGYuY2xlYXJDYWNoZWRJZCgpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgQ29nbml0byBJRCwgbG9hZGluZyBmcm9tIGNhY2hlIGlmIGl0IHdhcyBhbHJlYWR5IHJldHJpZXZlZFxuICAgKiBvbiB0aGlzIGRldmljZS5cbiAgICpcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVyciwgaWRlbnRpdHlJZClcbiAgICogICBAcGFyYW0gZXJyIFtFcnJvciwgbnVsbF0gYW4gZXJyb3Igb2JqZWN0IGlmIHRoZSBjYWxsIGZhaWxlZCBvciBudWxsIGlmXG4gICAqICAgICBpdCBzdWNjZWVkZWQuXG4gICAqICAgQHBhcmFtIGlkZW50aXR5SWQgW1N0cmluZywgbnVsbF0gaWYgc3VjY2Vzc2Z1bCwgdGhlIGNhbGxiYWNrIHdpbGwgcmV0dXJuXG4gICAqICAgICB0aGUgQ29nbml0byBJRC5cbiAgICogQG5vdGUgSWYgbm90IGxvYWRlZCBleHBsaWNpdGx5LCB0aGUgQ29nbml0byBJRCBpcyBsb2FkZWQgYW5kIHN0b3JlZCBpblxuICAgKiAgIGxvY2FsU3RvcmFnZSBpbiB0aGUgYnJvd3NlciBlbnZpcm9ubWVudCBvZiBhIGRldmljZS5cbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRJZDogZnVuY3Rpb24gZ2V0SWQoY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHR5cGVvZiBzZWxmLnBhcmFtcy5JZGVudGl0eUlkID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIHNlbGYucGFyYW1zLklkZW50aXR5SWQpO1xuICAgIH1cblxuICAgIHNlbGYuY29nbml0by5nZXRJZChmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmICghZXJyICYmIGRhdGEuSWRlbnRpdHlJZCkge1xuICAgICAgICBzZWxmLnBhcmFtcy5JZGVudGl0eUlkID0gZGF0YS5JZGVudGl0eUlkO1xuICAgICAgICBjYWxsYmFjayhudWxsLCBkYXRhLklkZW50aXR5SWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGxvYWRDcmVkZW50aWFsczogZnVuY3Rpb24gbG9hZENyZWRlbnRpYWxzKGRhdGEsIGNyZWRlbnRpYWxzKSB7XG4gICAgaWYgKCFkYXRhIHx8ICFjcmVkZW50aWFscykgcmV0dXJuO1xuICAgIGNyZWRlbnRpYWxzLmV4cGlyZWQgPSBmYWxzZTtcbiAgICBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCA9IGRhdGEuQ3JlZGVudGlhbHMuQWNjZXNzS2V5SWQ7XG4gICAgY3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5ID0gZGF0YS5DcmVkZW50aWFscy5TZWNyZXRLZXk7XG4gICAgY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuID0gZGF0YS5DcmVkZW50aWFscy5TZXNzaW9uVG9rZW47XG4gICAgY3JlZGVudGlhbHMuZXhwaXJlVGltZSA9IGRhdGEuQ3JlZGVudGlhbHMuRXhwaXJhdGlvbjtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5OiBmdW5jdGlvbiBnZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5KGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuY29nbml0by5nZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5KGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICAgaWYgKCFlcnIpIHtcbiAgICAgICAgc2VsZi5jYWNoZUlkKGRhdGEpO1xuICAgICAgICBzZWxmLmRhdGEgPSBkYXRhO1xuICAgICAgICBzZWxmLmxvYWRDcmVkZW50aWFscyhzZWxmLmRhdGEsIHNlbGYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZi5jbGVhcklkT25Ob3RBdXRob3JpemVkKGVycik7XG4gICAgICB9XG4gICAgICBjYWxsYmFjayhlcnIpO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGdldENyZWRlbnRpYWxzRnJvbVNUUzogZnVuY3Rpb24gZ2V0Q3JlZGVudGlhbHNGcm9tU1RTKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuY29nbml0by5nZXRPcGVuSWRUb2tlbihmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmICghZXJyKSB7XG4gICAgICAgIHNlbGYuY2FjaGVJZChkYXRhKTtcbiAgICAgICAgc2VsZi5wYXJhbXMuV2ViSWRlbnRpdHlUb2tlbiA9IGRhdGEuVG9rZW47XG4gICAgICAgIHNlbGYud2ViSWRlbnRpdHlDcmVkZW50aWFscy5yZWZyZXNoKGZ1bmN0aW9uKHdlYkVycikge1xuICAgICAgICAgIGlmICghd2ViRXJyKSB7XG4gICAgICAgICAgICBzZWxmLmRhdGEgPSBzZWxmLndlYklkZW50aXR5Q3JlZGVudGlhbHMuZGF0YTtcbiAgICAgICAgICAgIHNlbGYuc3RzLmNyZWRlbnRpYWxzRnJvbShzZWxmLmRhdGEsIHNlbGYpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYWxsYmFjayh3ZWJFcnIpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGYuY2xlYXJJZE9uTm90QXV0aG9yaXplZChlcnIpO1xuICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGxvYWRDYWNoZWRJZDogZnVuY3Rpb24gbG9hZENhY2hlZElkKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIC8vIGluIHRoZSBicm93c2VyIHdlIHNvdXJjZSBkZWZhdWx0IElkZW50aXR5SWQgZnJvbSBsb2NhbFN0b3JhZ2VcbiAgICBpZiAoQVdTLnV0aWwuaXNCcm93c2VyKCkgJiYgIXNlbGYucGFyYW1zLklkZW50aXR5SWQpIHtcbiAgICAgIHZhciBpZCA9IHNlbGYuZ2V0U3RvcmFnZSgnaWQnKTtcbiAgICAgIGlmIChpZCAmJiBzZWxmLnBhcmFtcy5Mb2dpbnMpIHtcbiAgICAgICAgdmFyIGFjdHVhbFByb3ZpZGVycyA9IE9iamVjdC5rZXlzKHNlbGYucGFyYW1zLkxvZ2lucyk7XG4gICAgICAgIHZhciBjYWNoZWRQcm92aWRlcnMgPVxuICAgICAgICAgIChzZWxmLmdldFN0b3JhZ2UoJ3Byb3ZpZGVycycpIHx8ICcnKS5zcGxpdCgnLCcpO1xuXG4gICAgICAgIC8vIG9ubHkgbG9hZCBJRCBpZiBhdCBsZWFzdCBvbmUgcHJvdmlkZXIgdXNlZCB0aGlzIElEIGJlZm9yZVxuICAgICAgICB2YXIgaW50ZXJzZWN0ID0gY2FjaGVkUHJvdmlkZXJzLmZpbHRlcihmdW5jdGlvbihuKSB7XG4gICAgICAgICAgcmV0dXJuIGFjdHVhbFByb3ZpZGVycy5pbmRleE9mKG4pICE9PSAtMTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpbnRlcnNlY3QubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgc2VsZi5wYXJhbXMuSWRlbnRpdHlJZCA9IGlkO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlkKSB7XG4gICAgICAgIHNlbGYucGFyYW1zLklkZW50aXR5SWQgPSBpZDtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY3JlYXRlQ2xpZW50czogZnVuY3Rpb24oKSB7XG4gICAgdmFyIGNsaWVudENvbmZpZyA9IHRoaXMuX2NsaWVudENvbmZpZztcbiAgICB0aGlzLndlYklkZW50aXR5Q3JlZGVudGlhbHMgPSB0aGlzLndlYklkZW50aXR5Q3JlZGVudGlhbHMgfHxcbiAgICAgIG5ldyBBV1MuV2ViSWRlbnRpdHlDcmVkZW50aWFscyh0aGlzLnBhcmFtcywgY2xpZW50Q29uZmlnKTtcbiAgICBpZiAoIXRoaXMuY29nbml0bykge1xuICAgICAgdmFyIGNvZ25pdG9Db25maWcgPSBBV1MudXRpbC5tZXJnZSh7fSwgY2xpZW50Q29uZmlnKTtcbiAgICAgIGNvZ25pdG9Db25maWcucGFyYW1zID0gdGhpcy5wYXJhbXM7XG4gICAgICB0aGlzLmNvZ25pdG8gPSBuZXcgQ29nbml0b0lkZW50aXR5KGNvZ25pdG9Db25maWcpO1xuICAgIH1cbiAgICB0aGlzLnN0cyA9IHRoaXMuc3RzIHx8IG5ldyBTVFMoY2xpZW50Q29uZmlnKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjYWNoZUlkOiBmdW5jdGlvbiBjYWNoZUlkKGRhdGEpIHtcbiAgICB0aGlzLl9pZGVudGl0eUlkID0gZGF0YS5JZGVudGl0eUlkO1xuICAgIHRoaXMucGFyYW1zLklkZW50aXR5SWQgPSB0aGlzLl9pZGVudGl0eUlkO1xuXG4gICAgLy8gY2FjaGUgdGhpcyBJZGVudGl0eUlkIGluIGJyb3dzZXIgbG9jYWxTdG9yYWdlIGlmIHBvc3NpYmxlXG4gICAgaWYgKEFXUy51dGlsLmlzQnJvd3NlcigpKSB7XG4gICAgICB0aGlzLnNldFN0b3JhZ2UoJ2lkJywgZGF0YS5JZGVudGl0eUlkKTtcblxuICAgICAgaWYgKHRoaXMucGFyYW1zLkxvZ2lucykge1xuICAgICAgICB0aGlzLnNldFN0b3JhZ2UoJ3Byb3ZpZGVycycsIE9iamVjdC5rZXlzKHRoaXMucGFyYW1zLkxvZ2lucykuam9pbignLCcpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0U3RvcmFnZTogZnVuY3Rpb24gZ2V0U3RvcmFnZShrZXkpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlW3RoaXMubG9jYWxTdG9yYWdlS2V5W2tleV0gKyB0aGlzLnBhcmFtcy5JZGVudGl0eVBvb2xJZCArICh0aGlzLnBhcmFtcy5Mb2dpbklkIHx8ICcnKV07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0U3RvcmFnZTogZnVuY3Rpb24gc2V0U3RvcmFnZShrZXksIHZhbCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnN0b3JhZ2VbdGhpcy5sb2NhbFN0b3JhZ2VLZXlba2V5XSArIHRoaXMucGFyYW1zLklkZW50aXR5UG9vbElkICsgKHRoaXMucGFyYW1zLkxvZ2luSWQgfHwgJycpXSA9IHZhbDtcbiAgICB9IGNhdGNoIChfKSB7fVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHN0b3JhZ2U6IChmdW5jdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIHN0b3JhZ2UgPSBBV1MudXRpbC5pc0Jyb3dzZXIoKSAmJiB3aW5kb3cubG9jYWxTdG9yYWdlICE9PSBudWxsICYmIHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAnb2JqZWN0JyA/XG4gICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZSA6IHt9O1xuXG4gICAgICAvLyBUZXN0IHNldC9yZW1vdmUgd2hpY2ggd291bGQgdGhyb3cgYW4gZXJyb3IgaW4gU2FmYXJpJ3MgcHJpdmF0ZSBicm93c2luZ1xuICAgICAgc3RvcmFnZVsnYXdzLnRlc3Qtc3RvcmFnZSddID0gJ2Zvb2Jhcic7XG4gICAgICBkZWxldGUgc3RvcmFnZVsnYXdzLnRlc3Qtc3RvcmFnZSddO1xuXG4gICAgICByZXR1cm4gc3RvcmFnZTtcbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9KSgpXG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNyZWRlbnRpYWwgcHJvdmlkZXIgY2hhaW4gdGhhdCBzZWFyY2hlcyBmb3IgQVdTIGNyZWRlbnRpYWxzXG4gKiBpbiBhIGxpc3Qgb2YgY3JlZGVudGlhbCBwcm92aWRlcnMgc3BlY2lmaWVkIGJ5IHRoZSB7cHJvdmlkZXJzfSBwcm9wZXJ0eS5cbiAqXG4gKiBCeSBkZWZhdWx0LCB0aGUgY2hhaW4gd2lsbCB1c2UgdGhlIHtkZWZhdWx0UHJvdmlkZXJzfSB0byByZXNvbHZlIGNyZWRlbnRpYWxzLlxuICogVGhlc2UgcHJvdmlkZXJzIHdpbGwgbG9vayBpbiB0aGUgZW52aXJvbm1lbnQgdXNpbmcgdGhlXG4gKiB7QVdTLkVudmlyb25tZW50Q3JlZGVudGlhbHN9IGNsYXNzIHdpdGggdGhlICdBV1MnIGFuZCAnQU1BWk9OJyBwcmVmaXhlcy5cbiAqXG4gKiAjIyBTZXR0aW5nIFByb3ZpZGVyc1xuICpcbiAqIEVhY2ggcHJvdmlkZXIgaW4gdGhlIHtwcm92aWRlcnN9IGxpc3Qgc2hvdWxkIGJlIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zXG4gKiBhIHtBV1MuQ3JlZGVudGlhbHN9IG9iamVjdCwgb3IgYSBoYXJkY29kZWQgY3JlZGVudGlhbHMgb2JqZWN0LiBUaGUgZnVuY3Rpb25cbiAqIGZvcm0gYWxsb3dzIGZvciBkZWxheWVkIGV4ZWN1dGlvbiBvZiB0aGUgY3JlZGVudGlhbCBjb25zdHJ1Y3Rpb24uXG4gKlxuICogIyMgUmVzb2x2aW5nIENyZWRlbnRpYWxzIGZyb20gYSBDaGFpblxuICpcbiAqIENhbGwge3Jlc29sdmV9IHRvIHJldHVybiB0aGUgZmlyc3QgdmFsaWQgY3JlZGVudGlhbCBvYmplY3QgdGhhdCBjYW4gYmVcbiAqIGxvYWRlZCBieSB0aGUgcHJvdmlkZXIgY2hhaW4uXG4gKlxuICogRm9yIGV4YW1wbGUsIHRvIHJlc29sdmUgYSBjaGFpbiB3aXRoIGEgY3VzdG9tIHByb3ZpZGVyIHRoYXQgY2hlY2tzIGEgZmlsZVxuICogb24gZGlzayBhZnRlciB0aGUgc2V0IG9mIHtkZWZhdWx0UHJvdmlkZXJzfTpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiB2YXIgZGlza1Byb3ZpZGVyID0gbmV3IEFXUy5GaWxlU3lzdGVtQ3JlZGVudGlhbHMoJy4vY3JlZHMuanNvbicpO1xuICogdmFyIGNoYWluID0gbmV3IEFXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbigpO1xuICogY2hhaW4ucHJvdmlkZXJzLnB1c2goZGlza1Byb3ZpZGVyKTtcbiAqIGNoYWluLnJlc29sdmUoKTtcbiAqIGBgYFxuICpcbiAqIFRoZSBhYm92ZSBjb2RlIHdpbGwgcmV0dXJuIHRoZSBgZGlza1Byb3ZpZGVyYCBvYmplY3QgaWYgdGhlXG4gKiBmaWxlIGNvbnRhaW5zIGNyZWRlbnRpYWxzIGFuZCB0aGUgYGRlZmF1bHRQcm92aWRlcnNgIGRvIG5vdCBjb250YWluXG4gKiBhbnkgY3JlZGVudGlhbCBzZXR0aW5ncy5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBwcm92aWRlcnNcbiAqICAgQHJldHVybiBbQXJyYXk8QVdTLkNyZWRlbnRpYWxzLCBGdW5jdGlvbj5dXG4gKiAgICAgYSBsaXN0IG9mIGNyZWRlbnRpYWxzIG9iamVjdHMgb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGNyZWRlbnRpYWxzXG4gKiAgICAgb2JqZWN0cy4gSWYgdGhlIHByb3ZpZGVyIGlzIGEgZnVuY3Rpb24sIHRoZSBmdW5jdGlvbiB3aWxsIGJlXG4gKiAgICAgZXhlY3V0ZWQgbGF6aWx5IHdoZW4gdGhlIHByb3ZpZGVyIG5lZWRzIHRvIGJlIGNoZWNrZWQgZm9yIHZhbGlkXG4gKiAgICAgY3JlZGVudGlhbHMuIEJ5IGRlZmF1bHQsIHRoaXMgb2JqZWN0IHdpbGwgYmUgc2V0IHRvIHRoZVxuICogICAgIHtkZWZhdWx0UHJvdmlkZXJzfS5cbiAqICAgQHNlZSBkZWZhdWx0UHJvdmlkZXJzXG4gKi9cbkFXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbiA9IEFXUy51dGlsLmluaGVyaXQoQVdTLkNyZWRlbnRpYWxzLCB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4gd2l0aCBhIGRlZmF1bHQgc2V0IG9mIHByb3ZpZGVyc1xuICAgKiBzcGVjaWZpZWQgYnkge2RlZmF1bHRQcm92aWRlcnN9LlxuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIENyZWRlbnRpYWxQcm92aWRlckNoYWluKHByb3ZpZGVycykge1xuICAgIGlmIChwcm92aWRlcnMpIHtcbiAgICAgIHRoaXMucHJvdmlkZXJzID0gcHJvdmlkZXJzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb3ZpZGVycyA9IEFXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbi5kZWZhdWx0UHJvdmlkZXJzLnNsaWNlKDApO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQCFtZXRob2QgIHJlc29sdmVQcm9taXNlKClcbiAgICogICBSZXR1cm5zIGEgJ3RoZW5hYmxlJyBwcm9taXNlLlxuICAgKiAgIFJlc29sdmVzIHRoZSBwcm92aWRlciBjaGFpbiBieSBzZWFyY2hpbmcgZm9yIHRoZSBmaXJzdCBzZXQgb2ZcbiAgICogICBjcmVkZW50aWFscyBpbiB7cHJvdmlkZXJzfS5cbiAgICpcbiAgICogICBUd28gY2FsbGJhY2tzIGNhbiBiZSBwcm92aWRlZCB0byB0aGUgYHRoZW5gIG1ldGhvZCBvbiB0aGUgcmV0dXJuZWQgcHJvbWlzZS5cbiAgICogICBUaGUgZmlyc3QgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLCBhbmQgdGhlIHNlY29uZFxuICAgKiAgIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKiAgIEBjYWxsYmFjayBmdWxmaWxsZWRDYWxsYmFjayBmdW5jdGlvbihjcmVkZW50aWFscylcbiAgICogICAgIENhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQgYW5kIHRoZSBwcm92aWRlciByZXNvbHZlcyB0aGUgY2hhaW5cbiAgICogICAgIHRvIGEgY3JlZGVudGlhbHMgb2JqZWN0XG4gICAqICAgICBAcGFyYW0gY3JlZGVudGlhbHMgW0FXUy5DcmVkZW50aWFsc10gdGhlIGNyZWRlbnRpYWxzIG9iamVjdCByZXNvbHZlZFxuICAgKiAgICAgICBieSB0aGUgcHJvdmlkZXIgY2hhaW4uXG4gICAqICAgQGNhbGxiYWNrIHJlamVjdGVkQ2FsbGJhY2sgZnVuY3Rpb24oZXJyb3IpXG4gICAqICAgICBDYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAqICAgICBAcGFyYW0gZXJyIFtFcnJvcl0gdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBpZiBubyBjcmVkZW50aWFscyBhcmUgZm91bmQuXG4gICAqICAgQHJldHVybiBbUHJvbWlzZV0gQSBwcm9taXNlIHRoYXQgcmVwcmVzZW50cyB0aGUgc3RhdGUgb2YgdGhlIGByZXNvbHZlYCBtZXRob2QgY2FsbC5cbiAgICogICBAZXhhbXBsZSBDYWxsaW5nIHRoZSBgcmVzb2x2ZVByb21pc2VgIG1ldGhvZC5cbiAgICogICAgIHZhciBwcm9taXNlID0gY2hhaW4ucmVzb2x2ZVByb21pc2UoKTtcbiAgICogICAgIHByb21pc2UudGhlbihmdW5jdGlvbihjcmVkZW50aWFscykgeyAuLi4gfSwgZnVuY3Rpb24oZXJyKSB7IC4uLiB9KTtcbiAgICovXG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBwcm92aWRlciBjaGFpbiBieSBzZWFyY2hpbmcgZm9yIHRoZSBmaXJzdCBzZXQgb2ZcbiAgICogY3JlZGVudGlhbHMgaW4ge3Byb3ZpZGVyc30uXG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIsIGNyZWRlbnRpYWxzKVxuICAgKiAgIENhbGxlZCB3aGVuIHRoZSBwcm92aWRlciByZXNvbHZlcyB0aGUgY2hhaW4gdG8gYSBjcmVkZW50aWFscyBvYmplY3RcbiAgICogICBvciBudWxsIGlmIG5vIGNyZWRlbnRpYWxzIGNhbiBiZSBmb3VuZC5cbiAgICpcbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBpZiBubyBjcmVkZW50aWFscyBhcmVcbiAgICogICAgIGZvdW5kLlxuICAgKiAgIEBwYXJhbSBjcmVkZW50aWFscyBbQVdTLkNyZWRlbnRpYWxzXSB0aGUgY3JlZGVudGlhbHMgb2JqZWN0IHJlc29sdmVkXG4gICAqICAgICBieSB0aGUgcHJvdmlkZXIgY2hhaW4uXG4gICAqIEByZXR1cm4gW0FXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbl0gdGhlIHByb3ZpZGVyLCBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICByZXNvbHZlOiBmdW5jdGlvbiByZXNvbHZlKGNhbGxiYWNrKSB7XG4gICAgaWYgKHRoaXMucHJvdmlkZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCdObyBwcm92aWRlcnMnKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBwcm92aWRlcnMgPSB0aGlzLnByb3ZpZGVycy5zbGljZSgwKTtcblxuICAgIGZ1bmN0aW9uIHJlc29sdmVOZXh0KGVyciwgY3JlZHMpIHtcbiAgICAgIGlmICgoIWVyciAmJiBjcmVkcykgfHwgaW5kZXggPT09IHByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICAgICAgY2FsbGJhY2soZXJyLCBjcmVkcyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIHByb3ZpZGVyID0gcHJvdmlkZXJzW2luZGV4KytdO1xuICAgICAgaWYgKHR5cGVvZiBwcm92aWRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjcmVkcyA9IHByb3ZpZGVyLmNhbGwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNyZWRzID0gcHJvdmlkZXI7XG4gICAgICB9XG5cbiAgICAgIGlmIChjcmVkcy5nZXQpIHtcbiAgICAgICAgY3JlZHMuZ2V0KGZ1bmN0aW9uKGdldEVycikge1xuICAgICAgICAgIHJlc29sdmVOZXh0KGdldEVyciwgZ2V0RXJyID8gbnVsbCA6IGNyZWRzKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlTmV4dChudWxsLCBjcmVkcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVzb2x2ZU5leHQoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufSk7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgc2V0IG9mIHByb3ZpZGVycyB1c2VkIGJ5IGEgdmFuaWxsYSBDcmVkZW50aWFsUHJvdmlkZXJDaGFpbi5cbiAqXG4gKiBJbiB0aGUgYnJvd3NlcjpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiBBV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4uZGVmYXVsdFByb3ZpZGVycyA9IFtdXG4gKiBgYGBcbiAqXG4gKiBJbiBOb2RlLmpzOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIEFXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbi5kZWZhdWx0UHJvdmlkZXJzID0gW1xuICogICBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgQVdTLkVudmlyb25tZW50Q3JlZGVudGlhbHMoJ0FXUycpOyB9LFxuICogICBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgQVdTLkVudmlyb25tZW50Q3JlZGVudGlhbHMoJ0FNQVpPTicpOyB9LFxuICogICBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgQVdTLlNoYXJlZEluaUZpbGVDcmVkZW50aWFscygpOyB9LFxuICogICBmdW5jdGlvbiAoKSB7XG4gKiAgICAgLy8gaWYgQVdTX0NPTlRBSU5FUl9DUkVERU5USUFMU19SRUxBVElWRV9VUkkgaXMgc2V0XG4gKiAgICAgICByZXR1cm4gbmV3IEFXUy5FQ1NDcmVkZW50aWFscygpO1xuICogICAgIC8vIGVsc2VcbiAqICAgICAgIHJldHVybiBuZXcgQVdTLkVDMk1ldGFkYXRhQ3JlZGVudGlhbHMoKTtcbiAqICAgfVxuICogXVxuICogYGBgXG4gKi9cbkFXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbi5kZWZhdWx0UHJvdmlkZXJzID0gW107XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5DcmVkZW50aWFsUHJvdmlkZXJDaGFpbi5hZGRQcm9taXNlc1RvQ2xhc3MgPSBmdW5jdGlvbiBhZGRQcm9taXNlc1RvQ2xhc3MoUHJvbWlzZURlcGVuZGVuY3kpIHtcbiAgdGhpcy5wcm90b3R5cGUucmVzb2x2ZVByb21pc2UgPSBBV1MudXRpbC5wcm9taXNpZnlNZXRob2QoJ3Jlc29sdmUnLCBQcm9taXNlRGVwZW5kZW5jeSk7XG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuQ3JlZGVudGlhbFByb3ZpZGVyQ2hhaW4uZGVsZXRlUHJvbWlzZXNGcm9tQ2xhc3MgPSBmdW5jdGlvbiBkZWxldGVQcm9taXNlc0Zyb21DbGFzcygpIHtcbiAgZGVsZXRlIHRoaXMucHJvdG90eXBlLnJlc29sdmVQcm9taXNlO1xufTtcblxuQVdTLnV0aWwuYWRkUHJvbWlzZXMoQVdTLkNyZWRlbnRpYWxQcm92aWRlckNoYWluKTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgU1RTID0gcmVxdWlyZSgnLi4vLi4vY2xpZW50cy9zdHMnKTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGNyZWRlbnRpYWxzIHJldHJpZXZlZCBmcm9tIFNUUyBTQU1MIHN1cHBvcnQuXG4gKlxuICogQnkgZGVmYXVsdCB0aGlzIHByb3ZpZGVyIGdldHMgY3JlZGVudGlhbHMgdXNpbmcgdGhlXG4gKiB7QVdTLlNUUy5hc3N1bWVSb2xlV2l0aFNBTUx9IHNlcnZpY2Ugb3BlcmF0aW9uLiBUaGlzIG9wZXJhdGlvblxuICogcmVxdWlyZXMgYSBgUm9sZUFybmAgY29udGFpbmluZyB0aGUgQVJOIG9mIHRoZSBJQU0gdHJ1c3QgcG9saWN5IGZvciB0aGVcbiAqIGFwcGxpY2F0aW9uIGZvciB3aGljaCBjcmVkZW50aWFscyB3aWxsIGJlIGdpdmVuLCBhcyB3ZWxsIGFzIGEgYFByaW5jaXBhbEFybmBcbiAqIHJlcHJlc2VudGluZyB0aGUgQVJOIGZvciB0aGUgU0FNTCBpZGVudGl0eSBwcm92aWRlci4gSW4gYWRkaXRpb24sIHRoZVxuICogYFNBTUxBc3NlcnRpb25gIG11c3QgYmUgc2V0IHRvIHRoZSB0b2tlbiBwcm92aWRlZCBieSB0aGUgaWRlbnRpdHlcbiAqIHByb3ZpZGVyLiBTZWUge2NvbnN0cnVjdG9yfSBmb3IgYW4gZXhhbXBsZSBvbiBjcmVhdGluZyBhIGNyZWRlbnRpYWxzXG4gKiBvYmplY3Qgd2l0aCBwcm9wZXIgYFJvbGVBcm5gLCBgUHJpbmNpcGFsQXJuYCwgYW5kIGBTQU1MQXNzZXJ0aW9uYCB2YWx1ZXMuXG4gKlxuICogIyMgUmVmcmVzaGluZyBDcmVkZW50aWFscyBmcm9tIElkZW50aXR5IFNlcnZpY2VcbiAqXG4gKiBJbiBhZGRpdGlvbiB0byBBV1MgY3JlZGVudGlhbHMgZXhwaXJpbmcgYWZ0ZXIgYSBnaXZlbiBhbW91bnQgb2YgdGltZSwgdGhlXG4gKiBsb2dpbiB0b2tlbiBmcm9tIHRoZSBpZGVudGl0eSBwcm92aWRlciB3aWxsIGFsc28gZXhwaXJlLiBPbmNlIHRoaXMgdG9rZW5cbiAqIGV4cGlyZXMsIGl0IHdpbGwgbm90IGJlIHVzYWJsZSB0byByZWZyZXNoIEFXUyBjcmVkZW50aWFscywgYW5kIGFub3RoZXJcbiAqIHRva2VuIHdpbGwgYmUgbmVlZGVkLiBUaGUgU0RLIGRvZXMgbm90IG1hbmFnZSByZWZyZXNoaW5nIG9mIHRoZSB0b2tlbiB2YWx1ZSxcbiAqIGJ1dCB0aGlzIGNhbiBiZSBkb25lIHRocm91Z2ggYSBcInJlZnJlc2ggdG9rZW5cIiBzdXBwb3J0ZWQgYnkgbW9zdCBpZGVudGl0eVxuICogcHJvdmlkZXJzLiBDb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaWRlbnRpdHkgcHJvdmlkZXIgZm9yIHJlZnJlc2hpbmdcbiAqIHRva2Vucy4gT25jZSB0aGUgcmVmcmVzaGVkIHRva2VuIGlzIGFjcXVpcmVkLCB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSB0byB1cGRhdGVcbiAqIHRoaXMgbmV3IHRva2VuIGluIHRoZSBjcmVkZW50aWFscyBvYmplY3QncyB7cGFyYW1zfSBwcm9wZXJ0eS4gVGhlIGZvbGxvd2luZ1xuICogY29kZSB3aWxsIHVwZGF0ZSB0aGUgU0FNTEFzc2VydGlvbiwgYXNzdW1pbmcgeW91IGhhdmUgcmV0cmlldmVkIGFuIHVwZGF0ZWRcbiAqIHRva2VuIGZyb20gdGhlIGlkZW50aXR5IHByb3ZpZGVyOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIEFXUy5jb25maWcuY3JlZGVudGlhbHMucGFyYW1zLlNBTUxBc3NlcnRpb24gPSB1cGRhdGVkVG9rZW47XG4gKiBgYGBcbiAqXG4gKiBGdXR1cmUgY2FsbHMgdG8gYGNyZWRlbnRpYWxzLnJlZnJlc2goKWAgd2lsbCBub3cgdXNlIHRoZSBuZXcgdG9rZW4uXG4gKlxuICogQCFhdHRyaWJ1dGUgcGFyYW1zXG4gKiAgIEByZXR1cm4gW21hcF0gdGhlIG1hcCBvZiBwYXJhbXMgcGFzc2VkIHRvXG4gKiAgICAge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhTQU1MfS4gVG8gdXBkYXRlIHRoZSB0b2tlbiwgc2V0IHRoZVxuICogICAgIGBwYXJhbXMuU0FNTEFzc2VydGlvbmAgcHJvcGVydHkuXG4gKi9cbkFXUy5TQU1MQ3JlZGVudGlhbHMgPSBBV1MudXRpbC5pbmhlcml0KEFXUy5DcmVkZW50aWFscywge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBjcmVkZW50aWFscyBvYmplY3QuXG4gICAqIEBwYXJhbSAoc2VlIEFXUy5TVFMuYXNzdW1lUm9sZVdpdGhTQU1MKVxuICAgKiBAZXhhbXBsZSBDcmVhdGluZyBhIG5ldyBjcmVkZW50aWFscyBvYmplY3RcbiAgICogICBBV1MuY29uZmlnLmNyZWRlbnRpYWxzID0gbmV3IEFXUy5TQU1MQ3JlZGVudGlhbHMoe1xuICAgKiAgICAgUm9sZUFybjogJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwOnJvbGUvU0FNTFJvbGUnLFxuICAgKiAgICAgUHJpbmNpcGFsQXJuOiAnYXJuOmF3czppYW06OjEyMzQ1Njc4OTA6cm9sZS9TQU1MUHJpbmNpcGFsJyxcbiAgICogICAgIFNBTUxBc3NlcnRpb246ICdiYXNlNjQtdG9rZW4nLCAvLyBiYXNlNjQtZW5jb2RlZCB0b2tlbiBmcm9tIElkUFxuICAgKiAgIH0pO1xuICAgKiBAc2VlIEFXUy5TVFMuYXNzdW1lUm9sZVdpdGhTQU1MXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gU0FNTENyZWRlbnRpYWxzKHBhcmFtcykge1xuICAgIEFXUy5DcmVkZW50aWFscy5jYWxsKHRoaXMpO1xuICAgIHRoaXMuZXhwaXJlZCA9IHRydWU7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyBjcmVkZW50aWFscyB1c2luZyB7QVdTLlNUUy5hc3N1bWVSb2xlV2l0aFNBTUx9XG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIpXG4gICAqICAgQ2FsbGVkIHdoZW4gdGhlIFNUUyBzZXJ2aWNlIHJlc3BvbmRzIChvciBmYWlscykuIFdoZW5cbiAgICogICB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIG5vIGVycm9yLCBpdCBtZWFucyB0aGF0IHRoZSBjcmVkZW50aWFsc1xuICAgKiAgIGluZm9ybWF0aW9uIGhhcyBiZWVuIGxvYWRlZCBpbnRvIHRoZSBvYmplY3QgKGFzIHRoZSBgYWNjZXNzS2V5SWRgLFxuICAgKiAgIGBzZWNyZXRBY2Nlc3NLZXlgLCBhbmQgYHNlc3Npb25Ub2tlbmAgcHJvcGVydGllcykuXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIGlmIGFuIGVycm9yIG9jY3VycmVkLCB0aGlzIHZhbHVlIHdpbGwgYmUgZmlsbGVkXG4gICAqIEBzZWUgZ2V0XG4gICAqL1xuICByZWZyZXNoOiBmdW5jdGlvbiByZWZyZXNoKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuY3JlYXRlQ2xpZW50cygpO1xuICAgIGlmICghY2FsbGJhY2spIGNhbGxiYWNrID0gZnVuY3Rpb24oZXJyKSB7IGlmIChlcnIpIHRocm93IGVycjsgfTtcblxuICAgIHNlbGYuc2VydmljZS5hc3N1bWVSb2xlV2l0aFNBTUwoZnVuY3Rpb24gKGVyciwgZGF0YSkge1xuICAgICAgaWYgKCFlcnIpIHtcbiAgICAgICAgc2VsZi5zZXJ2aWNlLmNyZWRlbnRpYWxzRnJvbShkYXRhLCBzZWxmKTtcbiAgICAgIH1cbiAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY3JlYXRlQ2xpZW50czogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zZXJ2aWNlID0gdGhpcy5zZXJ2aWNlIHx8IG5ldyBTVFMoe3BhcmFtczogdGhpcy5wYXJhbXN9KTtcbiAgfVxuXG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgU1RTID0gcmVxdWlyZSgnLi4vLi4vY2xpZW50cy9zdHMnKTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRlbXBvcmFyeSBjcmVkZW50aWFscyByZXRyaWV2ZWQgZnJvbSB7QVdTLlNUU30uIFdpdGhvdXQgYW55XG4gKiBleHRyYSBwYXJhbWV0ZXJzLCBjcmVkZW50aWFscyB3aWxsIGJlIGZldGNoZWQgZnJvbSB0aGVcbiAqIHtBV1MuU1RTLmdldFNlc3Npb25Ub2tlbn0gb3BlcmF0aW9uLiBJZiBhbiBJQU0gcm9sZSBpcyBwcm92aWRlZCwgdGhlXG4gKiB7QVdTLlNUUy5hc3N1bWVSb2xlfSBvcGVyYXRpb24gd2lsbCBiZSB1c2VkIHRvIGZldGNoIGNyZWRlbnRpYWxzIGZvciB0aGVcbiAqIHJvbGUgaW5zdGVhZC5cbiAqXG4gKiBUbyBzZXR1cCB0ZW1wb3JhcnkgY3JlZGVudGlhbHMsIGNvbmZpZ3VyZSBhIHNldCBvZiBtYXN0ZXIgY3JlZGVudGlhbHNcbiAqIHVzaW5nIHRoZSBzdGFuZGFyZCBjcmVkZW50aWFscyBwcm92aWRlcnMgKGVudmlyb25tZW50LCBFQzIgaW5zdGFuY2UgbWV0YWRhdGEsXG4gKiBvciBmcm9tIHRoZSBmaWxlc3lzdGVtKSwgdGhlbiBzZXQgdGhlIGdsb2JhbCBjcmVkZW50aWFscyB0byBhIG5ld1xuICogdGVtcG9yYXJ5IGNyZWRlbnRpYWxzIG9iamVjdDpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiAvLyBOb3RlIHRoYXQgZW52aXJvbm1lbnQgY3JlZGVudGlhbHMgYXJlIGxvYWRlZCBieSBkZWZhdWx0LFxuICogLy8gdGhlIGZvbGxvd2luZyBsaW5lIGlzIHNob3duIGZvciBjbGFyaXR5OlxuICogQVdTLmNvbmZpZy5jcmVkZW50aWFscyA9IG5ldyBBV1MuRW52aXJvbm1lbnRDcmVkZW50aWFscygnQVdTJyk7XG4gKlxuICogLy8gTm93IHNldCB0ZW1wb3JhcnkgY3JlZGVudGlhbHMgc2VlZGVkIGZyb20gdGhlIG1hc3RlciBjcmVkZW50aWFsc1xuICogQVdTLmNvbmZpZy5jcmVkZW50aWFscyA9IG5ldyBBV1MuVGVtcG9yYXJ5Q3JlZGVudGlhbHMoKTtcbiAqXG4gKiAvLyBzdWJzZXF1ZW50IHJlcXVlc3RzIHdpbGwgbm93IHVzZSB0ZW1wb3JhcnkgY3JlZGVudGlhbHMgZnJvbSBBV1MgU1RTLlxuICogbmV3IEFXUy5TMygpLmxpc3RCdWNrZXQoZnVuY3Rpb24oZXJyLCBkYXRhKSB7IC4uLiB9KTtcbiAqIGBgYFxuICpcbiAqIEAhYXR0cmlidXRlIG1hc3RlckNyZWRlbnRpYWxzXG4gKiAgIEByZXR1cm4gW0FXUy5DcmVkZW50aWFsc10gdGhlIG1hc3RlciAobm9uLXRlbXBvcmFyeSkgY3JlZGVudGlhbHMgdXNlZCB0b1xuICogICAgIGdldCBhbmQgcmVmcmVzaCB0ZW1wb3JhcnkgY3JlZGVudGlhbHMgZnJvbSBBV1MgU1RTLlxuICogQG5vdGUgKHNlZSBjb25zdHJ1Y3RvcilcbiAqL1xuQVdTLlRlbXBvcmFyeUNyZWRlbnRpYWxzID0gQVdTLnV0aWwuaW5oZXJpdChBV1MuQ3JlZGVudGlhbHMsIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdGVtcG9yYXJ5IGNyZWRlbnRpYWxzIG9iamVjdC5cbiAgICpcbiAgICogQG5vdGUgSW4gb3JkZXIgdG8gY3JlYXRlIHRlbXBvcmFyeSBjcmVkZW50aWFscywgeW91IGZpcnN0IG5lZWQgdG8gaGF2ZVxuICAgKiAgIFwibWFzdGVyXCIgY3JlZGVudGlhbHMgY29uZmlndXJlZCBpbiB7QVdTLkNvbmZpZy5jcmVkZW50aWFsc30uIFRoZXNlXG4gICAqICAgbWFzdGVyIGNyZWRlbnRpYWxzIGFyZSBuZWNlc3NhcnkgdG8gcmV0cmlldmUgdGhlIHRlbXBvcmFyeSBjcmVkZW50aWFscyxcbiAgICogICBhcyB3ZWxsIGFzIHJlZnJlc2ggdGhlIGNyZWRlbnRpYWxzIHdoZW4gdGhleSBleHBpcmUuXG4gICAqIEBwYXJhbSBwYXJhbXMgW21hcF0gYSBtYXAgb2Ygb3B0aW9ucyB0aGF0IGFyZSBwYXNzZWQgdG8gdGhlXG4gICAqICAge0FXUy5TVFMuYXNzdW1lUm9sZX0gb3Ige0FXUy5TVFMuZ2V0U2Vzc2lvblRva2VufSBvcGVyYXRpb25zLlxuICAgKiAgIElmIGEgYFJvbGVBcm5gIHBhcmFtZXRlciBpcyBwYXNzZWQgaW4sIGNyZWRlbnRpYWxzIHdpbGwgYmUgYmFzZWQgb24gdGhlXG4gICAqICAgSUFNIHJvbGUuXG4gICAqIEBwYXJhbSBtYXN0ZXJDcmVkZW50aWFscyBbQVdTLkNyZWRlbnRpYWxzXSB0aGUgbWFzdGVyIChub24tdGVtcG9yYXJ5KSBjcmVkZW50aWFsc1xuICAgKiAgdXNlZCB0byBnZXQgYW5kIHJlZnJlc2ggdGVtcG9yYXJ5IGNyZWRlbnRpYWxzIGZyb20gQVdTIFNUUy5cbiAgICogQGV4YW1wbGUgQ3JlYXRpbmcgYSBuZXcgY3JlZGVudGlhbHMgb2JqZWN0IGZvciBnZW5lcmljIHRlbXBvcmFyeSBjcmVkZW50aWFsc1xuICAgKiAgIEFXUy5jb25maWcuY3JlZGVudGlhbHMgPSBuZXcgQVdTLlRlbXBvcmFyeUNyZWRlbnRpYWxzKCk7XG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWxzIG9iamVjdCBmb3IgYW4gSUFNIHJvbGVcbiAgICogICBBV1MuY29uZmlnLmNyZWRlbnRpYWxzID0gbmV3IEFXUy5UZW1wb3JhcnlDcmVkZW50aWFscyh7XG4gICAqICAgICBSb2xlQXJuOiAnYXJuOmF3czppYW06OjEyMzQ1Njc4OTA6cm9sZS9UZW1wb3JhcnlDcmVkZW50aWFscycsXG4gICAqICAgfSk7XG4gICAqIEBzZWUgQVdTLlNUUy5hc3N1bWVSb2xlXG4gICAqIEBzZWUgQVdTLlNUUy5nZXRTZXNzaW9uVG9rZW5cbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBUZW1wb3JhcnlDcmVkZW50aWFscyhwYXJhbXMsIG1hc3RlckNyZWRlbnRpYWxzKSB7XG4gICAgQVdTLkNyZWRlbnRpYWxzLmNhbGwodGhpcyk7XG4gICAgdGhpcy5sb2FkTWFzdGVyQ3JlZGVudGlhbHMobWFzdGVyQ3JlZGVudGlhbHMpO1xuICAgIHRoaXMuZXhwaXJlZCA9IHRydWU7XG5cbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcbiAgICBpZiAodGhpcy5wYXJhbXMuUm9sZUFybikge1xuICAgICAgdGhpcy5wYXJhbXMuUm9sZVNlc3Npb25OYW1lID1cbiAgICAgICAgdGhpcy5wYXJhbXMuUm9sZVNlc3Npb25OYW1lIHx8ICd0ZW1wb3JhcnktY3JlZGVudGlhbHMnO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogUmVmcmVzaGVzIGNyZWRlbnRpYWxzIHVzaW5nIHtBV1MuU1RTLmFzc3VtZVJvbGV9IG9yXG4gICAqIHtBV1MuU1RTLmdldFNlc3Npb25Ub2tlbn0sIGRlcGVuZGluZyBvbiB3aGV0aGVyIGFuIElBTSByb2xlIEFSTiB3YXMgcGFzc2VkXG4gICAqIHRvIHRoZSBjcmVkZW50aWFscyB7Y29uc3RydWN0b3J9LlxuICAgKlxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyKVxuICAgKiAgIENhbGxlZCB3aGVuIHRoZSBTVFMgc2VydmljZSByZXNwb25kcyAob3IgZmFpbHMpLiBXaGVuXG4gICAqICAgdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCBubyBlcnJvciwgaXQgbWVhbnMgdGhhdCB0aGUgY3JlZGVudGlhbHNcbiAgICogICBpbmZvcm1hdGlvbiBoYXMgYmVlbiBsb2FkZWQgaW50byB0aGUgb2JqZWN0IChhcyB0aGUgYGFjY2Vzc0tleUlkYCxcbiAgICogICBgc2VjcmV0QWNjZXNzS2V5YCwgYW5kIGBzZXNzaW9uVG9rZW5gIHByb3BlcnRpZXMpLlxuICAgKiAgIEBwYXJhbSBlcnIgW0Vycm9yXSBpZiBhbiBlcnJvciBvY2N1cnJlZCwgdGhpcyB2YWx1ZSB3aWxsIGJlIGZpbGxlZFxuICAgKiBAc2VlIGdldFxuICAgKi9cbiAgcmVmcmVzaDogZnVuY3Rpb24gcmVmcmVzaChjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLmNyZWF0ZUNsaWVudHMoKTtcbiAgICBpZiAoIWNhbGxiYWNrKSBjYWxsYmFjayA9IGZ1bmN0aW9uKGVycikgeyBpZiAoZXJyKSB0aHJvdyBlcnI7IH07XG5cbiAgICBzZWxmLm1hc3RlckNyZWRlbnRpYWxzLmdldChmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYuc2VydmljZS5jb25maWcuY3JlZGVudGlhbHMgPSBzZWxmLm1hc3RlckNyZWRlbnRpYWxzO1xuICAgICAgdmFyIG9wZXJhdGlvbiA9IHNlbGYucGFyYW1zLlJvbGVBcm4gP1xuICAgICAgICBzZWxmLnNlcnZpY2UuYXNzdW1lUm9sZSA6IHNlbGYuc2VydmljZS5nZXRTZXNzaW9uVG9rZW47XG4gICAgICBvcGVyYXRpb24uY2FsbChzZWxmLnNlcnZpY2UsIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgICAgaWYgKCFlcnIpIHtcbiAgICAgICAgICBzZWxmLnNlcnZpY2UuY3JlZGVudGlhbHNGcm9tKGRhdGEsIHNlbGYpO1xuICAgICAgICB9XG4gICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBsb2FkTWFzdGVyQ3JlZGVudGlhbHM6IGZ1bmN0aW9uIGxvYWRNYXN0ZXJDcmVkZW50aWFscyhtYXN0ZXJDcmVkZW50aWFscykge1xuICAgIHRoaXMubWFzdGVyQ3JlZGVudGlhbHMgPSBtYXN0ZXJDcmVkZW50aWFscyB8fCBBV1MuY29uZmlnLmNyZWRlbnRpYWxzO1xuICAgIHdoaWxlICh0aGlzLm1hc3RlckNyZWRlbnRpYWxzLm1hc3RlckNyZWRlbnRpYWxzKSB7XG4gICAgICB0aGlzLm1hc3RlckNyZWRlbnRpYWxzID0gdGhpcy5tYXN0ZXJDcmVkZW50aWFscy5tYXN0ZXJDcmVkZW50aWFscztcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMubWFzdGVyQ3JlZGVudGlhbHMuZ2V0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLm1hc3RlckNyZWRlbnRpYWxzID0gbmV3IEFXUy5DcmVkZW50aWFscyh0aGlzLm1hc3RlckNyZWRlbnRpYWxzKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY3JlYXRlQ2xpZW50czogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zZXJ2aWNlID0gdGhpcy5zZXJ2aWNlIHx8IG5ldyBTVFMoe3BhcmFtczogdGhpcy5wYXJhbXN9KTtcbiAgfVxuXG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgU1RTID0gcmVxdWlyZSgnLi4vLi4vY2xpZW50cy9zdHMnKTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGNyZWRlbnRpYWxzIHJldHJpZXZlZCBmcm9tIFNUUyBXZWIgSWRlbnRpdHkgRmVkZXJhdGlvbiBzdXBwb3J0LlxuICpcbiAqIEJ5IGRlZmF1bHQgdGhpcyBwcm92aWRlciBnZXRzIGNyZWRlbnRpYWxzIHVzaW5nIHRoZVxuICoge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX0gc2VydmljZSBvcGVyYXRpb24uIFRoaXMgb3BlcmF0aW9uXG4gKiByZXF1aXJlcyBhIGBSb2xlQXJuYCBjb250YWluaW5nIHRoZSBBUk4gb2YgdGhlIElBTSB0cnVzdCBwb2xpY3kgZm9yIHRoZVxuICogYXBwbGljYXRpb24gZm9yIHdoaWNoIGNyZWRlbnRpYWxzIHdpbGwgYmUgZ2l2ZW4uIEluIGFkZGl0aW9uLCB0aGVcbiAqIGBXZWJJZGVudGl0eVRva2VuYCBtdXN0IGJlIHNldCB0byB0aGUgdG9rZW4gcHJvdmlkZWQgYnkgdGhlIGlkZW50aXR5XG4gKiBwcm92aWRlci4gU2VlIHtjb25zdHJ1Y3Rvcn0gZm9yIGFuIGV4YW1wbGUgb24gY3JlYXRpbmcgYSBjcmVkZW50aWFsc1xuICogb2JqZWN0IHdpdGggcHJvcGVyIGBSb2xlQXJuYCBhbmQgYFdlYklkZW50aXR5VG9rZW5gIHZhbHVlcy5cbiAqXG4gKiAjIyBSZWZyZXNoaW5nIENyZWRlbnRpYWxzIGZyb20gSWRlbnRpdHkgU2VydmljZVxuICpcbiAqIEluIGFkZGl0aW9uIHRvIEFXUyBjcmVkZW50aWFscyBleHBpcmluZyBhZnRlciBhIGdpdmVuIGFtb3VudCBvZiB0aW1lLCB0aGVcbiAqIGxvZ2luIHRva2VuIGZyb20gdGhlIGlkZW50aXR5IHByb3ZpZGVyIHdpbGwgYWxzbyBleHBpcmUuIE9uY2UgdGhpcyB0b2tlblxuICogZXhwaXJlcywgaXQgd2lsbCBub3QgYmUgdXNhYmxlIHRvIHJlZnJlc2ggQVdTIGNyZWRlbnRpYWxzLCBhbmQgYW5vdGhlclxuICogdG9rZW4gd2lsbCBiZSBuZWVkZWQuIFRoZSBTREsgZG9lcyBub3QgbWFuYWdlIHJlZnJlc2hpbmcgb2YgdGhlIHRva2VuIHZhbHVlLFxuICogYnV0IHRoaXMgY2FuIGJlIGRvbmUgdGhyb3VnaCBhIFwicmVmcmVzaCB0b2tlblwiIHN1cHBvcnRlZCBieSBtb3N0IGlkZW50aXR5XG4gKiBwcm92aWRlcnMuIENvbnN1bHQgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBpZGVudGl0eSBwcm92aWRlciBmb3IgcmVmcmVzaGluZ1xuICogdG9rZW5zLiBPbmNlIHRoZSByZWZyZXNoZWQgdG9rZW4gaXMgYWNxdWlyZWQsIHlvdSBzaG91bGQgbWFrZSBzdXJlIHRvIHVwZGF0ZVxuICogdGhpcyBuZXcgdG9rZW4gaW4gdGhlIGNyZWRlbnRpYWxzIG9iamVjdCdzIHtwYXJhbXN9IHByb3BlcnR5LiBUaGUgZm9sbG93aW5nXG4gKiBjb2RlIHdpbGwgdXBkYXRlIHRoZSBXZWJJZGVudGl0eVRva2VuLCBhc3N1bWluZyB5b3UgaGF2ZSByZXRyaWV2ZWQgYW4gdXBkYXRlZFxuICogdG9rZW4gZnJvbSB0aGUgaWRlbnRpdHkgcHJvdmlkZXI6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogQVdTLmNvbmZpZy5jcmVkZW50aWFscy5wYXJhbXMuV2ViSWRlbnRpdHlUb2tlbiA9IHVwZGF0ZWRUb2tlbjtcbiAqIGBgYFxuICpcbiAqIEZ1dHVyZSBjYWxscyB0byBgY3JlZGVudGlhbHMucmVmcmVzaCgpYCB3aWxsIG5vdyB1c2UgdGhlIG5ldyB0b2tlbi5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBwYXJhbXNcbiAqICAgQHJldHVybiBbbWFwXSB0aGUgbWFwIG9mIHBhcmFtcyBwYXNzZWQgdG9cbiAqICAgICB7QVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5fS4gVG8gdXBkYXRlIHRoZSB0b2tlbiwgc2V0IHRoZVxuICogICAgIGBwYXJhbXMuV2ViSWRlbnRpdHlUb2tlbmAgcHJvcGVydHkuXG4gKiBAIWF0dHJpYnV0ZSBkYXRhXG4gKiAgIEByZXR1cm4gW21hcF0gdGhlIHJhdyBkYXRhIHJlc3BvbnNlIGZyb20gdGhlIGNhbGwgdG9cbiAqICAgICB7QVdTLlNUUy5hc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5fS4gVXNlIHRoaXMgaWYgeW91IHdhbnQgdG8gZ2V0XG4gKiAgICAgYWNjZXNzIHRvIG90aGVyIHByb3BlcnRpZXMgZnJvbSB0aGUgcmVzcG9uc2UuXG4gKi9cbkFXUy5XZWJJZGVudGl0eUNyZWRlbnRpYWxzID0gQVdTLnV0aWwuaW5oZXJpdChBV1MuQ3JlZGVudGlhbHMsIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY3JlZGVudGlhbHMgb2JqZWN0LlxuICAgKiBAcGFyYW0gKHNlZSBBV1MuU1RTLmFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkpXG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGEgbmV3IGNyZWRlbnRpYWxzIG9iamVjdFxuICAgKiAgIEFXUy5jb25maWcuY3JlZGVudGlhbHMgPSBuZXcgQVdTLldlYklkZW50aXR5Q3JlZGVudGlhbHMoe1xuICAgKiAgICAgUm9sZUFybjogJ2Fybjphd3M6aWFtOjoxMjM0NTY3ODkwOnJvbGUvV2ViSWRlbnRpdHknLFxuICAgKiAgICAgV2ViSWRlbnRpdHlUb2tlbjogJ0FCQ0RFRkdISUpLTE1OT1AnLCAvLyB0b2tlbiBmcm9tIGlkZW50aXR5IHNlcnZpY2VcbiAgICogICAgIFJvbGVTZXNzaW9uTmFtZTogJ3dlYicgLy8gb3B0aW9uYWwgbmFtZSwgZGVmYXVsdHMgdG8gd2ViLWlkZW50aXR5XG4gICAqICAgfSwge1xuICAgKiAgICAgLy8gb3B0aW9uYWxseSBwcm92aWRlIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkgdG8gdGhlIHVuZGVybHlpbmcgQVdTLlNUUyBzZXJ2aWNlIGNsaWVudFxuICAgKiAgICAgLy8gaWYgY29uZmlndXJhdGlvbiBpcyBub3QgcHJvdmlkZWQsIHRoZW4gY29uZmlndXJhdGlvbiB3aWxsIGJlIHB1bGxlZCBmcm9tIEFXUy5jb25maWdcbiAgICpcbiAgICogICAgIC8vIHNwZWNpZnkgdGltZW91dCBvcHRpb25zXG4gICAqICAgICBodHRwT3B0aW9uczoge1xuICAgKiAgICAgICB0aW1lb3V0OiAxMDBcbiAgICogICAgIH1cbiAgICogICB9KTtcbiAgICogQHNlZSBBV1MuU1RTLmFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlcbiAgICogQHNlZSBBV1MuQ29uZmlnXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gV2ViSWRlbnRpdHlDcmVkZW50aWFscyhwYXJhbXMsIGNsaWVudENvbmZpZykge1xuICAgIEFXUy5DcmVkZW50aWFscy5jYWxsKHRoaXMpO1xuICAgIHRoaXMuZXhwaXJlZCA9IHRydWU7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5wYXJhbXMuUm9sZVNlc3Npb25OYW1lID0gdGhpcy5wYXJhbXMuUm9sZVNlc3Npb25OYW1lIHx8ICd3ZWItaWRlbnRpdHknO1xuICAgIHRoaXMuZGF0YSA9IG51bGw7XG4gICAgdGhpcy5fY2xpZW50Q29uZmlnID0gQVdTLnV0aWwuY29weShjbGllbnRDb25maWcgfHwge30pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgY3JlZGVudGlhbHMgdXNpbmcge0FXUy5TVFMuYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eX1cbiAgICpcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVycilcbiAgICogICBDYWxsZWQgd2hlbiB0aGUgU1RTIHNlcnZpY2UgcmVzcG9uZHMgKG9yIGZhaWxzKS4gV2hlblxuICAgKiAgIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggbm8gZXJyb3IsIGl0IG1lYW5zIHRoYXQgdGhlIGNyZWRlbnRpYWxzXG4gICAqICAgaW5mb3JtYXRpb24gaGFzIGJlZW4gbG9hZGVkIGludG8gdGhlIG9iamVjdCAoYXMgdGhlIGBhY2Nlc3NLZXlJZGAsXG4gICAqICAgYHNlY3JldEFjY2Vzc0tleWAsIGFuZCBgc2Vzc2lvblRva2VuYCBwcm9wZXJ0aWVzKS5cbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gaWYgYW4gZXJyb3Igb2NjdXJyZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBmaWxsZWRcbiAgICogQHNlZSBnZXRcbiAgICovXG4gIHJlZnJlc2g6IGZ1bmN0aW9uIHJlZnJlc2goY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5jcmVhdGVDbGllbnRzKCk7XG4gICAgaWYgKCFjYWxsYmFjaykgY2FsbGJhY2sgPSBmdW5jdGlvbihlcnIpIHsgaWYgKGVycikgdGhyb3cgZXJyOyB9O1xuXG4gICAgc2VsZi5zZXJ2aWNlLmFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkoZnVuY3Rpb24gKGVyciwgZGF0YSkge1xuICAgICAgc2VsZi5kYXRhID0gbnVsbDtcbiAgICAgIGlmICghZXJyKSB7XG4gICAgICAgIHNlbGYuZGF0YSA9IGRhdGE7XG4gICAgICAgIHNlbGYuc2VydmljZS5jcmVkZW50aWFsc0Zyb20oZGF0YSwgc2VsZik7XG4gICAgICB9XG4gICAgICBjYWxsYmFjayhlcnIpO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNyZWF0ZUNsaWVudHM6IGZ1bmN0aW9uKCkge1xuICAgIGlmICghdGhpcy5zZXJ2aWNlKSB7XG4gICAgICB2YXIgc3RzQ29uZmlnID0gQVdTLnV0aWwubWVyZ2Uoe30sIHRoaXMuX2NsaWVudENvbmZpZyk7XG4gICAgICBzdHNDb25maWcucGFyYW1zID0gdGhpcy5wYXJhbXM7XG4gICAgICB0aGlzLnNlcnZpY2UgPSBuZXcgU1RTKHN0c0NvbmZpZyk7XG4gICAgfVxuICB9XG5cbn0pO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciB1dGlsID0gQVdTLnV0aWw7XG52YXIgdHlwZU9mID0gcmVxdWlyZSgnLi90eXBlcycpLnR5cGVPZjtcbnZhciBEeW5hbW9EQlNldCA9IHJlcXVpcmUoJy4vc2V0Jyk7XG52YXIgTnVtYmVyVmFsdWUgPSByZXF1aXJlKCcuL251bWJlclZhbHVlJyk7XG5cbkFXUy5EeW5hbW9EQi5Db252ZXJ0ZXIgPSB7XG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgSmF2YVNjcmlwdCB2YWx1ZSB0byBpdHMgZXF1aXZhbGVudCBEeW5hbW9EQiBBdHRyaWJ1dGVWYWx1ZSB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIFthbnldIFRoZSBkYXRhIHRvIGNvbnZlcnQgdG8gYSBEeW5hbW9EQiBBdHRyaWJ1dGVWYWx1ZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBbbWFwXVxuICAgKiBAb3B0aW9uIG9wdGlvbnMgY29udmVydEVtcHR5VmFsdWVzIFtCb29sZWFuXSBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHlcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydCBlbXB0eSBzdHJpbmdzLCBibG9icyxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHNldHMgdG8gYG51bGxgXG4gICAqIEBvcHRpb24gb3B0aW9ucyB3cmFwTnVtYmVycyBbQm9vbGVhbl0gIFdoZXRoZXIgdG8gcmV0dXJuIG51bWJlcnMgYXMgYVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJWYWx1ZSBvYmplY3QgaW5zdGVhZCBvZlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0aW5nIHRoZW0gdG8gbmF0aXZlIEphdmFTY3JpcHRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVycy4gVGhpcyBhbGxvd3MgZm9yIHRoZSBzYWZlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kLXRyaXAgdHJhbnNwb3J0IG9mIG51bWJlcnMgb2ZcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJiaXRyYXJ5IHNpemUuXG4gICAqIEByZXR1cm4gW21hcF0gQW4gb2JqZWN0IGluIHRoZSBBbWF6b24gRHluYW1vREIgQXR0cmlidXRlVmFsdWUgZm9ybWF0XG4gICAqXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLkNvbnZlcnRlci5tYXJzaGFsbCBBV1MuRHluYW1vREIuQ29udmVydGVyLm1hcnNoYWxsIHRvXG4gICAqICAgIGNvbnZlcnQgZW50aXJlIHJlY29yZHMgKHJhdGhlciB0aGFuIGluZGl2aWR1YWwgYXR0cmlidXRlcylcbiAgICovXG4gIGlucHV0OiBmdW5jdGlvbiBjb252ZXJ0SW5wdXQoZGF0YSwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHZhciB0eXBlID0gdHlwZU9mKGRhdGEpO1xuICAgIGlmICh0eXBlID09PSAnT2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGZvcm1hdE1hcChkYXRhLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdBcnJheScpIHtcbiAgICAgIHJldHVybiBmb3JtYXRMaXN0KGRhdGEsIG9wdGlvbnMpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1NldCcpIHtcbiAgICAgIHJldHVybiBmb3JtYXRTZXQoZGF0YSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnU3RyaW5nJykge1xuICAgICAgaWYgKGRhdGEubGVuZ3RoID09PSAwICYmIG9wdGlvbnMuY29udmVydEVtcHR5VmFsdWVzKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0SW5wdXQobnVsbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyBTOiBkYXRhIH07XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnTnVtYmVyJyB8fCB0eXBlID09PSAnTnVtYmVyVmFsdWUnKSB7XG4gICAgICByZXR1cm4geyBOOiBkYXRhLnRvU3RyaW5nKCkgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdCaW5hcnknKSB7XG4gICAgICBpZiAoZGF0YS5sZW5ndGggPT09IDAgJiYgb3B0aW9ucy5jb252ZXJ0RW1wdHlWYWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRJbnB1dChudWxsKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IEI6IGRhdGEgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdCb29sZWFuJykge1xuICAgICAgcmV0dXJuIHsgQk9PTDogZGF0YSB9O1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ251bGwnKSB7XG4gICAgICByZXR1cm4geyBOVUxMOiB0cnVlIH07XG4gICAgfSBlbHNlIGlmICh0eXBlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlICE9PSAnRnVuY3Rpb24nKSB7XG4gICAgICAvLyB0aGlzIHZhbHVlIGhhcyBhIGN1c3RvbSBjb25zdHJ1Y3RvclxuICAgICAgcmV0dXJuIGZvcm1hdE1hcChkYXRhLCBvcHRpb25zKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBKYXZhU2NyaXB0IG9iamVjdCBpbnRvIGEgRHluYW1vREIgcmVjb3JkLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSBbYW55XSBUaGUgZGF0YSB0byBjb252ZXJ0IHRvIGEgRHluYW1vREIgcmVjb3JkXG4gICAqIEBwYXJhbSBvcHRpb25zIFttYXBdXG4gICAqIEBvcHRpb24gb3B0aW9ucyBjb252ZXJ0RW1wdHlWYWx1ZXMgW0Jvb2xlYW5dIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0IGVtcHR5IHN0cmluZ3MsIGJsb2JzLFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgc2V0cyB0byBgbnVsbGBcbiAgICogQG9wdGlvbiBvcHRpb25zIHdyYXBOdW1iZXJzIFtCb29sZWFuXSAgV2hldGhlciB0byByZXR1cm4gbnVtYmVycyBhcyBhXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlclZhbHVlIG9iamVjdCBpbnN0ZWFkIG9mXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRpbmcgdGhlbSB0byBuYXRpdmUgSmF2YVNjcmlwdFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJzLiBUaGlzIGFsbG93cyBmb3IgdGhlIHNhZmVcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQtdHJpcCB0cmFuc3BvcnQgb2YgbnVtYmVycyBvZlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmJpdHJhcnkgc2l6ZS5cbiAgICpcbiAgICogQHJldHVybiBbbWFwXSBBbiBvYmplY3QgaW4gdGhlIER5bmFtb0RCIHJlY29yZCBmb3JtYXQuXG4gICAqXG4gICAqIEBleGFtcGxlIENvbnZlcnQgYSBKYXZhU2NyaXB0IG9iamVjdCBpbnRvIGEgRHluYW1vREIgcmVjb3JkXG4gICAqICB2YXIgbWFyc2hhbGxlZCA9IEFXUy5EeW5hbW9EQi5Db252ZXJ0ZXIubWFyc2hhbGwoe1xuICAgKiAgICBzdHJpbmc6ICdmb28nLFxuICAgKiAgICBsaXN0OiBbJ2ZpenonLCAnYnV6eicsICdwb3AnXSxcbiAgICogICAgbWFwOiB7XG4gICAqICAgICAgbmVzdGVkTWFwOiB7XG4gICAqICAgICAgICBrZXk6ICd2YWx1ZScsXG4gICAqICAgICAgfVxuICAgKiAgICB9LFxuICAgKiAgICBudW1iZXI6IDEyMyxcbiAgICogICAgbnVsbFZhbHVlOiBudWxsLFxuICAgKiAgICBib29sVmFsdWU6IHRydWUsXG4gICAqICAgIHN0cmluZ1NldDogbmV3IER5bmFtb0RCU2V0KFsnZm9vJywgJ2JhcicsICdiYXonXSlcbiAgICogIH0pO1xuICAgKi9cbiAgbWFyc2hhbGw6IGZ1bmN0aW9uIG1hcnNoYWxsSXRlbShkYXRhLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIEFXUy5EeW5hbW9EQi5Db252ZXJ0ZXIuaW5wdXQoZGF0YSwgb3B0aW9ucykuTTtcbiAgfSxcblxuICAvKipcbiAgICogQ29udmVydCBhIER5bmFtb0RCIEF0dHJpYnV0ZVZhbHVlIG9iamVjdCB0byBpdHMgZXF1aXZhbGVudCBKYXZhU2NyaXB0IHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIFttYXBdIEFuIG9iamVjdCBpbiB0aGUgQW1hem9uIER5bmFtb0RCIEF0dHJpYnV0ZVZhbHVlIGZvcm1hdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBbbWFwXVxuICAgKiBAb3B0aW9uIG9wdGlvbnMgY29udmVydEVtcHR5VmFsdWVzIFtCb29sZWFuXSBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHlcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydCBlbXB0eSBzdHJpbmdzLCBibG9icyxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHNldHMgdG8gYG51bGxgXG4gICAqIEBvcHRpb24gb3B0aW9ucyB3cmFwTnVtYmVycyBbQm9vbGVhbl0gIFdoZXRoZXIgdG8gcmV0dXJuIG51bWJlcnMgYXMgYVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJWYWx1ZSBvYmplY3QgaW5zdGVhZCBvZlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0aW5nIHRoZW0gdG8gbmF0aXZlIEphdmFTY3JpcHRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVycy4gVGhpcyBhbGxvd3MgZm9yIHRoZSBzYWZlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kLXRyaXAgdHJhbnNwb3J0IG9mIG51bWJlcnMgb2ZcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJiaXRyYXJ5IHNpemUuXG4gICAqXG4gICAqIEByZXR1cm4gW09iamVjdHxBcnJheXxTdHJpbmd8TnVtYmVyfEJvb2xlYW58bnVsbF1cbiAgICpcbiAgICogQHNlZSBBV1MuRHluYW1vREIuQ29udmVydGVyLnVubWFyc2hhbGwgQVdTLkR5bmFtb0RCLkNvbnZlcnRlci51bm1hcnNoYWxsIHRvXG4gICAqICAgIGNvbnZlcnQgZW50aXJlIHJlY29yZHMgKHJhdGhlciB0aGFuIGluZGl2aWR1YWwgYXR0cmlidXRlcylcbiAgICovXG4gIG91dHB1dDogZnVuY3Rpb24gY29udmVydE91dHB1dChkYXRhLCBvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgdmFyIGxpc3QsIG1hcCwgaTtcbiAgICBmb3IgKHZhciB0eXBlIGluIGRhdGEpIHtcbiAgICAgIHZhciB2YWx1ZXMgPSBkYXRhW3R5cGVdO1xuICAgICAgaWYgKHR5cGUgPT09ICdNJykge1xuICAgICAgICBtYXAgPSB7fTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlcykge1xuICAgICAgICAgIG1hcFtrZXldID0gY29udmVydE91dHB1dCh2YWx1ZXNba2V5XSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ0wnKSB7XG4gICAgICAgIGxpc3QgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxpc3QucHVzaChjb252ZXJ0T3V0cHV0KHZhbHVlc1tpXSwgb3B0aW9ucykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnU1MnKSB7XG4gICAgICAgIGxpc3QgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxpc3QucHVzaCh2YWx1ZXNbaV0gKyAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBEeW5hbW9EQlNldChsaXN0KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ05TJykge1xuICAgICAgICBsaXN0ID0gW107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBsaXN0LnB1c2goY29udmVydE51bWJlcih2YWx1ZXNbaV0sIG9wdGlvbnMud3JhcE51bWJlcnMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IER5bmFtb0RCU2V0KGxpc3QpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnQlMnKSB7XG4gICAgICAgIGxpc3QgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxpc3QucHVzaChuZXcgdXRpbC5CdWZmZXIodmFsdWVzW2ldKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBEeW5hbW9EQlNldChsaXN0KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1MnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXMgKyAnJztcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ04nKSB7XG4gICAgICAgIHJldHVybiBjb252ZXJ0TnVtYmVyKHZhbHVlcywgb3B0aW9ucy53cmFwTnVtYmVycyk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdCJykge1xuICAgICAgICByZXR1cm4gbmV3IHV0aWwuQnVmZmVyKHZhbHVlcyk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdCT09MJykge1xuICAgICAgICByZXR1cm4gKHZhbHVlcyA9PT0gJ3RydWUnIHx8IHZhbHVlcyA9PT0gJ1RSVUUnIHx8IHZhbHVlcyA9PT0gdHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdOVUxMJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBEeW5hbW9EQiByZWNvcmQgaW50byBhIEphdmFTY3JpcHQgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSBbYW55XSBUaGUgRHluYW1vREIgcmVjb3JkXG4gICAqIEBwYXJhbSBvcHRpb25zIFttYXBdXG4gICAqIEBvcHRpb24gb3B0aW9ucyBjb252ZXJ0RW1wdHlWYWx1ZXMgW0Jvb2xlYW5dIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0IGVtcHR5IHN0cmluZ3MsIGJsb2JzLFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgc2V0cyB0byBgbnVsbGBcbiAgICogQG9wdGlvbiBvcHRpb25zIHdyYXBOdW1iZXJzIFtCb29sZWFuXSAgV2hldGhlciB0byByZXR1cm4gbnVtYmVycyBhcyBhXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlclZhbHVlIG9iamVjdCBpbnN0ZWFkIG9mXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRpbmcgdGhlbSB0byBuYXRpdmUgSmF2YVNjcmlwdFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJzLiBUaGlzIGFsbG93cyBmb3IgdGhlIHNhZmVcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQtdHJpcCB0cmFuc3BvcnQgb2YgbnVtYmVycyBvZlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmJpdHJhcnkgc2l6ZS5cbiAgICpcbiAgICogQHJldHVybiBbbWFwXSBBbiBvYmplY3Qgd2hvc2UgcHJvcGVydGllcyBoYXZlIGJlZW4gY29udmVydGVkIGZyb21cbiAgICogICAgRHluYW1vREIncyBBdHRyaWJ1dGVWYWx1ZSBmb3JtYXQgaW50byB0aGVpciBjb3JyZXNwb25kaW5nIG5hdGl2ZVxuICAgKiAgICBKYXZhU2NyaXB0IHR5cGVzLlxuICAgKlxuICAgKiBAZXhhbXBsZSBDb252ZXJ0IGEgcmVjb3JkIHJlY2VpdmVkIGZyb20gYSBEeW5hbW9EQiBzdHJlYW1cbiAgICogIHZhciB1bm1hcnNoYWxsZWQgPSBBV1MuRHluYW1vREIuQ29udmVydGVyLnVubWFyc2hhbGwoe1xuICAgKiAgICBzdHJpbmc6IHtTOiAnZm9vJ30sXG4gICAqICAgIGxpc3Q6IHtMOiBbe1M6ICdmaXp6J30sIHtTOiAnYnV6eid9LCB7UzogJ3BvcCd9XX0sXG4gICAqICAgIG1hcDoge1xuICAgKiAgICAgIE06IHtcbiAgICogICAgICAgIG5lc3RlZE1hcDoge1xuICAgKiAgICAgICAgICBNOiB7XG4gICAqICAgICAgICAgICAga2V5OiB7UzogJ3ZhbHVlJ31cbiAgICogICAgICAgICAgfVxuICAgKiAgICAgICAgfVxuICAgKiAgICAgIH1cbiAgICogICAgfSxcbiAgICogICAgbnVtYmVyOiB7TjogJzEyMyd9LFxuICAgKiAgICBudWxsVmFsdWU6IHtOVUxMOiB0cnVlfSxcbiAgICogICAgYm9vbFZhbHVlOiB7Qk9PTDogdHJ1ZX1cbiAgICogIH0pO1xuICAgKi9cbiAgdW5tYXJzaGFsbDogZnVuY3Rpb24gdW5tYXJzaGFsbChkYXRhLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIEFXUy5EeW5hbW9EQi5Db252ZXJ0ZXIub3V0cHV0KHtNOiBkYXRhfSwgb3B0aW9ucyk7XG4gIH1cbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKiBAcGFyYW0gZGF0YSBbQXJyYXldXG4gKiBAcGFyYW0gb3B0aW9ucyBbbWFwXVxuICovXG5mdW5jdGlvbiBmb3JtYXRMaXN0KGRhdGEsIG9wdGlvbnMpIHtcbiAgdmFyIGxpc3QgPSB7TDogW119O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICBsaXN0WydMJ10ucHVzaChBV1MuRHluYW1vREIuQ29udmVydGVyLmlucHV0KGRhdGFbaV0sIG9wdGlvbnMpKTtcbiAgfVxuICByZXR1cm4gbGlzdDtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqIEBwYXJhbSB2YWx1ZSBbU3RyaW5nXVxuICogQHBhcmFtIHdyYXBOdW1iZXJzIFtCb29sZWFuXVxuICovXG5mdW5jdGlvbiBjb252ZXJ0TnVtYmVyKHZhbHVlLCB3cmFwTnVtYmVycykge1xuICByZXR1cm4gd3JhcE51bWJlcnMgPyBuZXcgTnVtYmVyVmFsdWUodmFsdWUpIDogTnVtYmVyKHZhbHVlKTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqIEBwYXJhbSBkYXRhIFttYXBdXG4gKiBAcGFyYW0gb3B0aW9ucyBbbWFwXVxuICovXG5mdW5jdGlvbiBmb3JtYXRNYXAoZGF0YSwgb3B0aW9ucykge1xuICB2YXIgbWFwID0ge006IHt9fTtcbiAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICB2YXIgZm9ybWF0dGVkID0gQVdTLkR5bmFtb0RCLkNvbnZlcnRlci5pbnB1dChkYXRhW2tleV0sIG9wdGlvbnMpO1xuICAgIGlmIChmb3JtYXR0ZWQgIT09IHZvaWQgMCkge1xuICAgICAgbWFwWydNJ11ba2V5XSA9IGZvcm1hdHRlZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1hcDtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZm9ybWF0U2V0KGRhdGEsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHZhciB2YWx1ZXMgPSBkYXRhLnZhbHVlcztcbiAgaWYgKG9wdGlvbnMuY29udmVydEVtcHR5VmFsdWVzKSB7XG4gICAgdmFsdWVzID0gZmlsdGVyRW1wdHlTZXRWYWx1ZXMoZGF0YSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBBV1MuRHluYW1vREIuQ29udmVydGVyLmlucHV0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBtYXAgPSB7fTtcbiAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICBjYXNlICdTdHJpbmcnOiBtYXBbJ1NTJ10gPSB2YWx1ZXM7IGJyZWFrO1xuICAgIGNhc2UgJ0JpbmFyeSc6IG1hcFsnQlMnXSA9IHZhbHVlczsgYnJlYWs7XG4gICAgY2FzZSAnTnVtYmVyJzogbWFwWydOUyddID0gdmFsdWVzLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBtYXA7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGZpbHRlckVtcHR5U2V0VmFsdWVzKHNldCkge1xuICAgIHZhciBub25FbXB0eVZhbHVlcyA9IFtdO1xuICAgIHZhciBwb3RlbnRpYWxseUVtcHR5VHlwZXMgPSB7XG4gICAgICAgIFN0cmluZzogdHJ1ZSxcbiAgICAgICAgQmluYXJ5OiB0cnVlLFxuICAgICAgICBOdW1iZXI6IGZhbHNlXG4gICAgfTtcbiAgICBpZiAocG90ZW50aWFsbHlFbXB0eVR5cGVzW3NldC50eXBlXSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNldC52YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChzZXQudmFsdWVzW2ldLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbm9uRW1wdHlWYWx1ZXMucHVzaChzZXQudmFsdWVzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub25FbXB0eVZhbHVlcztcbiAgICB9XG5cbiAgICByZXR1cm4gc2V0LnZhbHVlcztcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuRHluYW1vREIuQ29udmVydGVyO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciBUcmFuc2xhdG9yID0gcmVxdWlyZSgnLi90cmFuc2xhdG9yJyk7XG52YXIgRHluYW1vREJTZXQgPSByZXF1aXJlKCcuL3NldCcpO1xuXG4vKipcbiAqIFRoZSBkb2N1bWVudCBjbGllbnQgc2ltcGxpZmllcyB3b3JraW5nIHdpdGggaXRlbXMgaW4gQW1hem9uIER5bmFtb0RCXG4gKiBieSBhYnN0cmFjdGluZyBhd2F5IHRoZSBub3Rpb24gb2YgYXR0cmlidXRlIHZhbHVlcy4gVGhpcyBhYnN0cmFjdGlvblxuICogYW5ub3RhdGVzIG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzIHN1cHBsaWVkIGFzIGlucHV0IHBhcmFtZXRlcnMsIGFzIHdlbGxcbiAqIGFzIGNvbnZlcnRzIGFubm90YXRlZCByZXNwb25zZSBkYXRhIHRvIG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzLlxuICpcbiAqICMjIE1hcnNoYWxsaW5nIElucHV0IGFuZCBVbm1hcnNoYWxsaW5nIFJlc3BvbnNlIERhdGFcbiAqXG4gKiBUaGUgZG9jdW1lbnQgY2xpZW50IGFmZm9yZHMgZGV2ZWxvcGVycyB0aGUgdXNlIG9mIG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzXG4gKiBpbnN0ZWFkIG9mIGBBdHRyaWJ1dGVWYWx1ZWBzIHRvIHNpbXBsaWZ5IHRoZSBKYXZhU2NyaXB0IGRldmVsb3BtZW50XG4gKiBleHBlcmllbmNlIHdpdGggQW1hem9uIER5bmFtb0RCLiBKYXZhU2NyaXB0IG9iamVjdHMgcGFzc2VkIGluIGFzIHBhcmFtZXRlcnNcbiAqIGFyZSBtYXJzaGFsbGVkIGludG8gYEF0dHJpYnV0ZVZhbHVlYCBzaGFwZXMgcmVxdWlyZWQgYnkgQW1hem9uIER5bmFtb0RCLlxuICogUmVzcG9uc2VzIGZyb20gRHluYW1vREIgYXJlIHVubWFyc2hhbGxlZCBpbnRvIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0c1xuICogYnkgdGhlIGBEb2N1bWVudENsaWVudGAuIFRoZSBgRG9jdW1lbnRDbGllbnRgLCBkb2VzIG5vdCBhY2NlcHRcbiAqIGBBdHRyaWJ1dGVWYWx1ZWBzIGluIGZhdm9yIG9mIG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzLlxuICpcbiAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IER5bmFtb0RCIEF0dHJpYnV0ZVZhbHVlIHxcbiAqIHw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFMgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgTnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE4gICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgQm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJPT0wgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgbnVsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5VTEwgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgQXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEwgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE0gICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgQnVmZmVyLCBGaWxlLCBCbG9iLCBBcnJheUJ1ZmZlciwgRGF0YVZpZXcsIGFuZCBKYXZhU2NyaXB0IHR5cGVkIGFycmF5cyB8IEIgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqXG4gKiAjIyBTdXBwb3J0IGZvciBTZXRzXG4gKlxuICogVGhlIGBEb2N1bWVudENsaWVudGAgb2ZmZXJzIGEgY29udmVuaWVudCB3YXkgdG8gY3JlYXRlIHNldHMgZnJvbVxuICogSmF2YVNjcmlwdCBBcnJheXMuIFRoZSB0eXBlIG9mIHNldCBpcyBpbmZlcnJlZCBmcm9tIHRoZSBmaXJzdCBlbGVtZW50XG4gKiBpbiB0aGUgYXJyYXkuIER5bmFtb0RCIHN1cHBvcnRzIHN0cmluZywgbnVtYmVyLCBhbmQgYmluYXJ5IHNldHMuIFRvXG4gKiBsZWFybiBtb3JlIGFib3V0IHN1cHBvcnRlZCB0eXBlcyBzZWUgdGhlXG4gKiBbQW1hem9uIER5bmFtb0RCIERhdGEgTW9kZWwgRG9jdW1lbnRhdGlvbl0oaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0RhdGFNb2RlbC5odG1sKVxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIHtBV1MuRHluYW1vREIuRG9jdW1lbnRDbGllbnQuY3JlYXRlU2V0fVxuICpcbiAqL1xuQVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50ID0gQVdTLnV0aWwuaW5oZXJpdCh7XG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgb3BlcmF0aW9uczoge1xuICAgIGJhdGNoR2V0SXRlbTogJ2JhdGNoR2V0JyxcbiAgICBiYXRjaFdyaXRlSXRlbTogJ2JhdGNoV3JpdGUnLFxuICAgIHB1dEl0ZW06ICdwdXQnLFxuICAgIGdldEl0ZW06ICdnZXQnLFxuICAgIGRlbGV0ZUl0ZW06ICdkZWxldGUnLFxuICAgIHVwZGF0ZUl0ZW06ICd1cGRhdGUnLFxuICAgIHNjYW46ICdzY2FuJyxcbiAgICBxdWVyeTogJ3F1ZXJ5J1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgRHluYW1vREIgZG9jdW1lbnQgY2xpZW50IHdpdGggYSBzZXQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgcGFyYW1zIFttYXBdIEFuIG9wdGlvbmFsIG1hcCBvZiBwYXJhbWV0ZXJzIHRvIGJpbmQgdG8gZXZlcnlcbiAgICogICByZXF1ZXN0IHNlbnQgYnkgdGhpcyBzZXJ2aWNlIG9iamVjdC5cbiAgICogQG9wdGlvbiBvcHRpb25zIHNlcnZpY2UgW0FXUy5EeW5hbW9EQl0gQW4gb3B0aW9uYWwgcHJlLWNvbmZpZ3VyZWQgaW5zdGFuY2VcbiAgICogIG9mIHRoZSBBV1MuRHluYW1vREIgc2VydmljZSBvYmplY3QgdG8gdXNlIGZvciByZXF1ZXN0cy4gVGhlIG9iamVjdCBtYXlcbiAgICogIGJvdW5kIHBhcmFtZXRlcnMgdXNlZCBieSB0aGUgZG9jdW1lbnQgY2xpZW50LlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgY29udmVydEVtcHR5VmFsdWVzIFtCb29sZWFuXSBzZXQgdG8gdHJ1ZSBpZiB5b3Ugd291bGQgbGlrZVxuICAgKiAgdGhlIGRvY3VtZW50IGNsaWVudCB0byBjb252ZXJ0IGVtcHR5IHZhbHVlcyAoMC1sZW5ndGggc3RyaW5ncywgYmluYXJ5XG4gICAqICBidWZmZXJzLCBhbmQgc2V0cykgdG8gYmUgY29udmVydGVkIHRvIE5VTEwgdHlwZXMgd2hlbiBwZXJzaXN0aW5nIHRvXG4gICAqICBEeW5hbW9EQi5cbiAgICogQHNlZSBBV1MuRHluYW1vREIuY29uc3RydWN0b3JcbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBEb2N1bWVudENsaWVudChvcHRpb25zKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgc2VsZi5jb25maWd1cmUoc2VsZi5vcHRpb25zKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb25maWd1cmU6IGZ1bmN0aW9uIGNvbmZpZ3VyZShvcHRpb25zKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuc2VydmljZSA9IG9wdGlvbnMuc2VydmljZTtcbiAgICBzZWxmLmJpbmRTZXJ2aWNlT2JqZWN0KG9wdGlvbnMpO1xuICAgIHNlbGYuYXR0clZhbHVlID0gb3B0aW9ucy5hdHRyVmFsdWUgPVxuICAgICAgc2VsZi5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zLnB1dEl0ZW0uaW5wdXQubWVtYmVycy5JdGVtLnZhbHVlLnNoYXBlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGJpbmRTZXJ2aWNlT2JqZWN0OiBmdW5jdGlvbiBiaW5kU2VydmljZU9iamVjdChvcHRpb25zKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgaWYgKCFzZWxmLnNlcnZpY2UpIHtcbiAgICAgIHNlbGYuc2VydmljZSA9IG5ldyBBV1MuRHluYW1vREIob3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjb25maWcgPSBBV1MudXRpbC5jb3B5KHNlbGYuc2VydmljZS5jb25maWcpO1xuICAgICAgc2VsZi5zZXJ2aWNlID0gbmV3IHNlbGYuc2VydmljZS5jb25zdHJ1Y3Rvci5fX3N1cGVyX18oY29uZmlnKTtcbiAgICAgIHNlbGYuc2VydmljZS5jb25maWcucGFyYW1zID1cbiAgICAgICAgQVdTLnV0aWwubWVyZ2Uoc2VsZi5zZXJ2aWNlLmNvbmZpZy5wYXJhbXMgfHwge30sIG9wdGlvbnMucGFyYW1zKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGF0dHJpYnV0ZXMgb2Ygb25lIG9yIG1vcmUgaXRlbXMgZnJvbSBvbmUgb3IgbW9yZSB0YWJsZXNcbiAgICogYnkgZGVsZWdhdGluZyB0byBgQVdTLkR5bmFtb0RCLmJhdGNoR2V0SXRlbSgpYC5cbiAgICpcbiAgICogU3VwcGx5IHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMge0FXUy5EeW5hbW9EQi5iYXRjaEdldEl0ZW19IHdpdGhcbiAgICogYEF0dHJpYnV0ZVZhbHVlYHMgc3Vic3RpdHV0ZWQgYnkgbmF0aXZlIEphdmFTY3JpcHQgdHlwZXMuXG4gICAqXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLmJhdGNoR2V0SXRlbVxuICAgKiBAZXhhbXBsZSBHZXQgaXRlbXMgZnJvbSBtdWx0aXBsZSB0YWJsZXNcbiAgICogIHZhciBwYXJhbXMgPSB7XG4gICAqICAgIFJlcXVlc3RJdGVtczoge1xuICAgKiAgICAgICdUYWJsZS0xJzoge1xuICAgKiAgICAgICAgS2V5czogW1xuICAgKiAgICAgICAgICB7XG4gICAqICAgICAgICAgICAgIEhhc2hLZXk6ICdoYXNrZXknLFxuICAgKiAgICAgICAgICAgICBOdW1iZXJSYW5nZUtleTogMVxuICAgKiAgICAgICAgICB9XG4gICAqICAgICAgICBdXG4gICAqICAgICAgfSxcbiAgICogICAgICAnVGFibGUtMic6IHtcbiAgICogICAgICAgIEtleXM6IFtcbiAgICogICAgICAgICAgeyBmb286ICdiYXInIH0sXG4gICAqICAgICAgICBdXG4gICAqICAgICAgfVxuICAgKiAgICB9XG4gICAqICB9O1xuICAgKlxuICAgKiAgdmFyIGRvY3VtZW50Q2xpZW50ID0gbmV3IEFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCgpO1xuICAgKlxuICAgKiAgZG9jdW1lbnRDbGllbnQuYmF0Y2hHZXQocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTtcbiAgICogICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogIH0pO1xuICAgKlxuICAgKi9cbiAgYmF0Y2hHZXQ6IGZ1bmN0aW9uKHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHJlcXVlc3QgPSBzZWxmLnNlcnZpY2UuYmF0Y2hHZXRJdGVtKHBhcmFtcyk7XG4gICAgc2VsZi5zZXR1cFJlcXVlc3QocmVxdWVzdCk7XG4gICAgc2VsZi5zZXR1cFJlc3BvbnNlKHJlcXVlc3QpO1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlcXVlc3Quc2VuZChjYWxsYmFjayk7XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBQdXRzIG9yIGRlbGV0ZXMgbXVsdGlwbGUgaXRlbXMgaW4gb25lIG9yIG1vcmUgdGFibGVzIGJ5IGRlbGVnYXRpbmdcbiAgICogdG8gYEFXUy5EeW5hbW9EQi5iYXRjaFdyaXRlSXRlbSgpYC5cbiAgICpcbiAgICogU3VwcGx5IHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMge0FXUy5EeW5hbW9EQi5iYXRjaFdyaXRlSXRlbX0gd2l0aFxuICAgKiBgQXR0cmlidXRlVmFsdWVgcyBzdWJzdGl0dXRlZCBieSBuYXRpdmUgSmF2YVNjcmlwdCB0eXBlcy5cbiAgICpcbiAgICogQHNlZSBBV1MuRHluYW1vREIuYmF0Y2hXcml0ZUl0ZW1cbiAgICogQGV4YW1wbGUgV3JpdGUgdG8gYW5kIGRlbGV0ZSBmcm9tIGEgdGFibGVcbiAgICogIHZhciBwYXJhbXMgPSB7XG4gICAqICAgIFJlcXVlc3RJdGVtczoge1xuICAgKiAgICAgICdUYWJsZS0xJzogW1xuICAgKiAgICAgICAge1xuICAgKiAgICAgICAgICBEZWxldGVSZXF1ZXN0OiB7XG4gICAqICAgICAgICAgICAgS2V5OiB7IEhhc2hLZXk6ICdzb21lS2V5JyB9XG4gICAqICAgICAgICAgIH1cbiAgICogICAgICAgIH0sXG4gICAqICAgICAgICB7XG4gICAqICAgICAgICAgIFB1dFJlcXVlc3Q6IHtcbiAgICogICAgICAgICAgICBJdGVtOiB7XG4gICAqICAgICAgICAgICAgICBIYXNoS2V5OiAnYW5vdGhlcktleScsXG4gICAqICAgICAgICAgICAgICBOdW1BdHRyaWJ1dGU6IDEsXG4gICAqICAgICAgICAgICAgICBCb29sQXR0cmlidXRlOiB0cnVlLFxuICAgKiAgICAgICAgICAgICAgTGlzdEF0dHJpYnV0ZTogWzEsICd0d28nLCBmYWxzZV0sXG4gICAqICAgICAgICAgICAgICBNYXBBdHRyaWJ1dGU6IHsgZm9vOiAnYmFyJyB9XG4gICAqICAgICAgICAgICAgfVxuICAgKiAgICAgICAgICB9XG4gICAqICAgICAgICB9XG4gICAqICAgICAgXVxuICAgKiAgICB9XG4gICAqICB9O1xuICAgKlxuICAgKiAgdmFyIGRvY3VtZW50Q2xpZW50ID0gbmV3IEFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCgpO1xuICAgKlxuICAgKiAgZG9jdW1lbnRDbGllbnQuYmF0Y2hXcml0ZShwYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgKiAgICBpZiAoZXJyKSBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgICBlbHNlIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgKiAgfSk7XG4gICAqXG4gICAqL1xuICBiYXRjaFdyaXRlOiBmdW5jdGlvbihwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciByZXF1ZXN0ID0gc2VsZi5zZXJ2aWNlLmJhdGNoV3JpdGVJdGVtKHBhcmFtcyk7XG4gICAgc2VsZi5zZXR1cFJlcXVlc3QocmVxdWVzdCk7XG4gICAgc2VsZi5zZXR1cFJlc3BvbnNlKHJlcXVlc3QpO1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlcXVlc3Quc2VuZChjYWxsYmFjayk7XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgc2luZ2xlIGl0ZW0gaW4gYSB0YWJsZSBieSBwcmltYXJ5IGtleSBieSBkZWxlZ2F0aW5nIHRvXG4gICAqIGBBV1MuRHluYW1vREIuZGVsZXRlSXRlbSgpYFxuICAgKlxuICAgKiBTdXBwbHkgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB7QVdTLkR5bmFtb0RCLmRlbGV0ZUl0ZW19IHdpdGhcbiAgICogYEF0dHJpYnV0ZVZhbHVlYHMgc3Vic3RpdHV0ZWQgYnkgbmF0aXZlIEphdmFTY3JpcHQgdHlwZXMuXG4gICAqXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLmRlbGV0ZUl0ZW1cbiAgICogQGV4YW1wbGUgRGVsZXRlIGFuIGl0ZW0gZnJvbSBhIHRhYmxlXG4gICAqICB2YXIgcGFyYW1zID0ge1xuICAgKiAgICBUYWJsZU5hbWUgOiAnVGFibGUnLFxuICAgKiAgICBLZXk6IHtcbiAgICogICAgICBIYXNoS2V5OiAnaGFzaGtleScsXG4gICAqICAgICAgTnVtYmVyUmFuZ2VLZXk6IDFcbiAgICogICAgfVxuICAgKiAgfTtcbiAgICpcbiAgICogIHZhciBkb2N1bWVudENsaWVudCA9IG5ldyBBV1MuRHluYW1vREIuRG9jdW1lbnRDbGllbnQoKTtcbiAgICpcbiAgICogIGRvY3VtZW50Q2xpZW50LmRlbGV0ZShwYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgKiAgICBpZiAoZXJyKSBjb25zb2xlLmxvZyhlcnIpO1xuICAgKiAgICBlbHNlIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgKiAgfSk7XG4gICAqXG4gICAqL1xuICBkZWxldGU6IGZ1bmN0aW9uKHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHJlcXVlc3QgPSBzZWxmLnNlcnZpY2UuZGVsZXRlSXRlbShwYXJhbXMpO1xuICAgIHNlbGYuc2V0dXBSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIHNlbGYuc2V0dXBSZXNwb25zZShyZXF1ZXN0KTtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LnNlbmQoY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBhIHNldCBvZiBhdHRyaWJ1dGVzIGZvciB0aGUgaXRlbSB3aXRoIHRoZSBnaXZlbiBwcmltYXJ5IGtleVxuICAgKiBieSBkZWxlZ2F0aW5nIHRvIGBBV1MuRHluYW1vREIuZ2V0SXRlbSgpYC5cbiAgICpcbiAgICogU3VwcGx5IHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMge0FXUy5EeW5hbW9EQi5nZXRJdGVtfSB3aXRoXG4gICAqIGBBdHRyaWJ1dGVWYWx1ZWBzIHN1YnN0aXR1dGVkIGJ5IG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzLlxuICAgKlxuICAgKiBAc2VlIEFXUy5EeW5hbW9EQi5nZXRJdGVtXG4gICAqIEBleGFtcGxlIEdldCBhbiBpdGVtIGZyb20gYSB0YWJsZVxuICAgKiAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgVGFibGVOYW1lIDogJ1RhYmxlJyxcbiAgICogICAgS2V5OiB7XG4gICAqICAgICAgSGFzaEtleTogJ2hhc2hrZXknXG4gICAqICAgIH1cbiAgICogIH07XG4gICAqXG4gICAqICB2YXIgZG9jdW1lbnRDbGllbnQgPSBuZXcgQVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50KCk7XG4gICAqXG4gICAqICBkb2N1bWVudENsaWVudC5nZXQocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTtcbiAgICogICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogIH0pO1xuICAgKlxuICAgKi9cbiAgZ2V0OiBmdW5jdGlvbihwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciByZXF1ZXN0ID0gc2VsZi5zZXJ2aWNlLmdldEl0ZW0ocGFyYW1zKTtcbiAgICBzZWxmLnNldHVwUmVxdWVzdChyZXF1ZXN0KTtcbiAgICBzZWxmLnNldHVwUmVzcG9uc2UocmVxdWVzdCk7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmVxdWVzdC5zZW5kKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaXRlbSwgb3IgcmVwbGFjZXMgYW4gb2xkIGl0ZW0gd2l0aCBhIG5ldyBpdGVtIGJ5XG4gICAqIGRlbGVnYXRpbmcgdG8gYEFXUy5EeW5hbW9EQi5wdXRJdGVtKClgLlxuICAgKlxuICAgKiBTdXBwbHkgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB7QVdTLkR5bmFtb0RCLnB1dEl0ZW19IHdpdGhcbiAgICogYEF0dHJpYnV0ZVZhbHVlYHMgc3Vic3RpdHV0ZWQgYnkgbmF0aXZlIEphdmFTY3JpcHQgdHlwZXMuXG4gICAqXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLnB1dEl0ZW1cbiAgICogQGV4YW1wbGUgQ3JlYXRlIGEgbmV3IGl0ZW0gaW4gYSB0YWJsZVxuICAgKiAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgVGFibGVOYW1lIDogJ1RhYmxlJyxcbiAgICogICAgSXRlbToge1xuICAgKiAgICAgICBIYXNoS2V5OiAnaGFza2V5JyxcbiAgICogICAgICAgTnVtQXR0cmlidXRlOiAxLFxuICAgKiAgICAgICBCb29sQXR0cmlidXRlOiB0cnVlLFxuICAgKiAgICAgICBMaXN0QXR0cmlidXRlOiBbMSwgJ3R3bycsIGZhbHNlXSxcbiAgICogICAgICAgTWFwQXR0cmlidXRlOiB7IGZvbzogJ2Jhcid9LFxuICAgKiAgICAgICBOdWxsQXR0cmlidXRlOiBudWxsXG4gICAqICAgIH1cbiAgICogIH07XG4gICAqXG4gICAqICB2YXIgZG9jdW1lbnRDbGllbnQgPSBuZXcgQVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50KCk7XG4gICAqXG4gICAqICBkb2N1bWVudENsaWVudC5wdXQocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTtcbiAgICogICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogIH0pO1xuICAgKlxuICAgKi9cbiAgcHV0OiBmdW5jdGlvbiBwdXQocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcmVxdWVzdCA9IHNlbGYuc2VydmljZS5wdXRJdGVtKHBhcmFtcyk7XG4gICAgc2VsZi5zZXR1cFJlcXVlc3QocmVxdWVzdCk7XG4gICAgc2VsZi5zZXR1cFJlc3BvbnNlKHJlcXVlc3QpO1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlcXVlc3Quc2VuZChjYWxsYmFjayk7XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBFZGl0cyBhbiBleGlzdGluZyBpdGVtJ3MgYXR0cmlidXRlcywgb3IgYWRkcyBhIG5ldyBpdGVtIHRvIHRoZSB0YWJsZSBpZlxuICAgKiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0IGJ5IGRlbGVnYXRpbmcgdG8gYEFXUy5EeW5hbW9EQi51cGRhdGVJdGVtKClgLlxuICAgKlxuICAgKiBTdXBwbHkgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyB7QVdTLkR5bmFtb0RCLnVwZGF0ZUl0ZW19IHdpdGhcbiAgICogYEF0dHJpYnV0ZVZhbHVlYHMgc3Vic3RpdHV0ZWQgYnkgbmF0aXZlIEphdmFTY3JpcHQgdHlwZXMuXG4gICAqXG4gICAqIEBzZWUgQVdTLkR5bmFtb0RCLnVwZGF0ZUl0ZW1cbiAgICogQGV4YW1wbGUgVXBkYXRlIGFuIGl0ZW0gd2l0aCBleHByZXNzaW9uc1xuICAgKiAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgVGFibGVOYW1lOiAnVGFibGUnLFxuICAgKiAgICBLZXk6IHsgSGFzaEtleSA6ICdoYXNoa2V5JyB9LFxuICAgKiAgICBVcGRhdGVFeHByZXNzaW9uOiAnc2V0ICNhID0gOnggKyA6eScsXG4gICAqICAgIENvbmRpdGlvbkV4cHJlc3Npb246ICcjYSA8IDpNQVgnLFxuICAgKiAgICBFeHByZXNzaW9uQXR0cmlidXRlTmFtZXM6IHsnI2EnIDogJ1N1bSd9LFxuICAgKiAgICBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzOiB7XG4gICAqICAgICAgJzp4JyA6IDIwLFxuICAgKiAgICAgICc6eScgOiA0NSxcbiAgICogICAgICAnOk1BWCcgOiAxMDAsXG4gICAqICAgIH1cbiAgICogIH07XG4gICAqXG4gICAqICB2YXIgZG9jdW1lbnRDbGllbnQgPSBuZXcgQVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50KCk7XG4gICAqXG4gICAqICBkb2N1bWVudENsaWVudC51cGRhdGUocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVycik7XG4gICAqICAgICBlbHNlIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgKiAgfSk7XG4gICAqXG4gICAqL1xuICB1cGRhdGU6IGZ1bmN0aW9uKHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHJlcXVlc3QgPSBzZWxmLnNlcnZpY2UudXBkYXRlSXRlbShwYXJhbXMpO1xuICAgIHNlbGYuc2V0dXBSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIHNlbGYuc2V0dXBSZXNwb25zZShyZXF1ZXN0KTtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LnNlbmQoY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyBvbmUgb3IgbW9yZSBpdGVtcyBhbmQgaXRlbSBhdHRyaWJ1dGVzIGJ5IGFjY2Vzc2luZyBldmVyeSBpdGVtXG4gICAqIGluIGEgdGFibGUgb3IgYSBzZWNvbmRhcnkgaW5kZXguXG4gICAqXG4gICAqIFN1cHBseSB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIHtBV1MuRHluYW1vREIuc2Nhbn0gd2l0aFxuICAgKiBgQXR0cmlidXRlVmFsdWVgcyBzdWJzdGl0dXRlZCBieSBuYXRpdmUgSmF2YVNjcmlwdCB0eXBlcy5cbiAgICpcbiAgICogQHNlZSBBV1MuRHluYW1vREIuc2NhblxuICAgKiBAZXhhbXBsZSBTY2FuIHRoZSB0YWJsZSB3aXRoIGEgZmlsdGVyIGV4cHJlc3Npb25cbiAgICogIHZhciBwYXJhbXMgPSB7XG4gICAqICAgIFRhYmxlTmFtZSA6ICdUYWJsZScsXG4gICAqICAgIEZpbHRlckV4cHJlc3Npb24gOiAnWWVhciA9IDp0aGlzX3llYXInLFxuICAgKiAgICBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzIDogeyc6dGhpc195ZWFyJyA6IDIwMTV9XG4gICAqICB9O1xuICAgKlxuICAgKiAgdmFyIGRvY3VtZW50Q2xpZW50ID0gbmV3IEFXUy5EeW5hbW9EQi5Eb2N1bWVudENsaWVudCgpO1xuICAgKlxuICAgKiAgZG9jdW1lbnRDbGllbnQuc2NhbihwYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgKiAgICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTtcbiAgICogICAgIGVsc2UgY29uc29sZS5sb2coZGF0YSk7XG4gICAqICB9KTtcbiAgICpcbiAgICovXG4gIHNjYW46IGZ1bmN0aW9uKHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHJlcXVlc3QgPSBzZWxmLnNlcnZpY2Uuc2NhbihwYXJhbXMpO1xuICAgIHNlbGYuc2V0dXBSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIHNlbGYuc2V0dXBSZXNwb25zZShyZXF1ZXN0KTtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LnNlbmQoY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICAgLyoqXG4gICAgKiBEaXJlY3RseSBhY2Nlc3MgaXRlbXMgZnJvbSBhIHRhYmxlIGJ5IHByaW1hcnkga2V5IG9yIGEgc2Vjb25kYXJ5IGluZGV4LlxuICAgICpcbiAgICAqIFN1cHBseSB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIHtBV1MuRHluYW1vREIucXVlcnl9IHdpdGhcbiAgICAqIGBBdHRyaWJ1dGVWYWx1ZWBzIHN1YnN0aXR1dGVkIGJ5IG5hdGl2ZSBKYXZhU2NyaXB0IHR5cGVzLlxuICAgICpcbiAgICAqIEBzZWUgQVdTLkR5bmFtb0RCLnF1ZXJ5XG4gICAgKiBAZXhhbXBsZSBRdWVyeSBhbiBpbmRleFxuICAgICogIHZhciBwYXJhbXMgPSB7XG4gICAgKiAgICBUYWJsZU5hbWU6ICdUYWJsZScsXG4gICAgKiAgICBJbmRleE5hbWU6ICdJbmRleCcsXG4gICAgKiAgICBLZXlDb25kaXRpb25FeHByZXNzaW9uOiAnSGFzaEtleSA9IDpoa2V5IGFuZCBSYW5nZUtleSA+IDpya2V5JyxcbiAgICAqICAgIEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXM6IHtcbiAgICAqICAgICAgJzpoa2V5JzogJ2tleScsXG4gICAgKiAgICAgICc6cmtleSc6IDIwMTVcbiAgICAqICAgIH1cbiAgICAqICB9O1xuICAgICpcbiAgICAqICB2YXIgZG9jdW1lbnRDbGllbnQgPSBuZXcgQVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50KCk7XG4gICAgKlxuICAgICogIGRvY3VtZW50Q2xpZW50LnF1ZXJ5KHBhcmFtcywgZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAgKiAgICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTtcbiAgICAqICAgICBlbHNlIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgICogIH0pO1xuICAgICpcbiAgICAqL1xuICBxdWVyeTogZnVuY3Rpb24ocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgcmVxdWVzdCA9IHNlbGYuc2VydmljZS5xdWVyeShwYXJhbXMpO1xuICAgIHNlbGYuc2V0dXBSZXF1ZXN0KHJlcXVlc3QpO1xuICAgIHNlbGYuc2V0dXBSZXNwb25zZShyZXF1ZXN0KTtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0LnNlbmQoY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHNldCBvZiBlbGVtZW50cyBpbmZlcnJpbmcgdGhlIHR5cGUgb2Ygc2V0IGZyb21cbiAgICogdGhlIHR5cGUgb2YgdGhlIGZpcnN0IGVsZW1lbnQuIEFtYXpvbiBEeW5hbW9EQiBjdXJyZW50bHkgc3VwcG9ydHNcbiAgICogdGhlIG51bWJlciBzZXRzLCBzdHJpbmcgc2V0cywgYW5kIGJpbmFyeSBzZXRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiBhYm91dCBEeW5hbW9EQiBkYXRhIHR5cGVzIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvbiB0aGVcbiAgICogW0FtYXpvbiBEeW5hbW9EQiBEYXRhIE1vZGVsXShodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvRGF0YU1vZGVsLmh0bWwjRGF0YU1vZGVsLkRhdGFUeXBlcykuXG4gICAqXG4gICAqIEBwYXJhbSBsaXN0IFtBcnJheV0gQ29sbGVjdGlvbiB0byByZXByZXNlbnQgeW91ciBEeW5hbW9EQiBTZXRcbiAgICogQHBhcmFtIG9wdGlvbnMgW21hcF1cbiAgICogICogKip2YWxpZGF0ZSoqIFtCb29sZWFuXSBzZXQgdG8gdHJ1ZSBpZiB5b3Ugd2FudCB0byB2YWxpZGF0ZSB0aGUgdHlwZVxuICAgKiAgICBvZiBlYWNoIGVsZW1lbnQgaW4gdGhlIHNldC4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICogQGV4YW1wbGUgQ3JlYXRpbmcgYSBudW1iZXIgc2V0XG4gICAqICB2YXIgZG9jdW1lbnRDbGllbnQgPSBuZXcgQVdTLkR5bmFtb0RCLkRvY3VtZW50Q2xpZW50KCk7XG4gICAqXG4gICAqICB2YXIgcGFyYW1zID0ge1xuICAgKiAgICBJdGVtOiB7XG4gICAqICAgICAgaGFzaGtleTogJ2hhc2hrZXknXG4gICAqICAgICAgbnVtYmVyczogZG9jdW1lbnRDbGllbnQuY3JlYXRlU2V0KFsxLCAyLCAzXSk7XG4gICAqICAgIH1cbiAgICogIH07XG4gICAqXG4gICAqICBkb2N1bWVudENsaWVudC5wdXQocGFyYW1zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgaWYgKGVycikgY29uc29sZS5sb2coZXJyKTtcbiAgICogICAgZWxzZSBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICogIH0pO1xuICAgKlxuICAgKi9cbiAgY3JlYXRlU2V0OiBmdW5jdGlvbihsaXN0LCBvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgcmV0dXJuIG5ldyBEeW5hbW9EQlNldChsaXN0LCBvcHRpb25zKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRUcmFuc2xhdG9yOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zbGF0b3IodGhpcy5vcHRpb25zKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXR1cFJlcXVlc3Q6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdChyZXF1ZXN0KSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciB0cmFuc2xhdG9yID0gc2VsZi5nZXRUcmFuc2xhdG9yKCk7XG4gICAgdmFyIG9wZXJhdGlvbiA9IHJlcXVlc3Qub3BlcmF0aW9uO1xuICAgIHZhciBpbnB1dFNoYXBlID0gcmVxdWVzdC5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW29wZXJhdGlvbl0uaW5wdXQ7XG4gICAgcmVxdWVzdC5fZXZlbnRzLnZhbGlkYXRlLnVuc2hpZnQoZnVuY3Rpb24ocmVxKSB7XG4gICAgICByZXEucmF3UGFyYW1zID0gQVdTLnV0aWwuY29weShyZXEucGFyYW1zKTtcbiAgICAgIHJlcS5wYXJhbXMgPSB0cmFuc2xhdG9yLnRyYW5zbGF0ZUlucHV0KHJlcS5yYXdQYXJhbXMsIGlucHV0U2hhcGUpO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldHVwUmVzcG9uc2U6IGZ1bmN0aW9uIHNldHVwUmVzcG9uc2UocmVxdWVzdCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgdHJhbnNsYXRvciA9IHNlbGYuZ2V0VHJhbnNsYXRvcigpO1xuICAgIHZhciBvdXRwdXRTaGFwZSA9IHNlbGYuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXF1ZXN0Lm9wZXJhdGlvbl0ub3V0cHV0O1xuICAgIHJlcXVlc3Qub24oJ2V4dHJhY3REYXRhJywgZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgIHJlc3BvbnNlLmRhdGEgPSB0cmFuc2xhdG9yLnRyYW5zbGF0ZU91dHB1dChyZXNwb25zZS5kYXRhLCBvdXRwdXRTaGFwZSk7XG4gICAgfSk7XG5cbiAgICB2YXIgcmVzcG9uc2UgPSByZXF1ZXN0LnJlc3BvbnNlO1xuICAgIHJlc3BvbnNlLm5leHRQYWdlID0gZnVuY3Rpb24oY2IpIHtcbiAgICAgIHZhciByZXNwID0gdGhpcztcbiAgICAgIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gICAgICB2YXIgY29uZmlnO1xuICAgICAgdmFyIHNlcnZpY2UgPSByZXEuc2VydmljZTtcbiAgICAgIHZhciBvcGVyYXRpb24gPSByZXEub3BlcmF0aW9uO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uZmlnID0gc2VydmljZS5wYWdpbmF0aW9uQ29uZmlnKG9wZXJhdGlvbiwgdHJ1ZSk7XG4gICAgICB9IGNhdGNoIChlKSB7IHJlc3AuZXJyb3IgPSBlOyB9XG5cbiAgICAgIGlmICghcmVzcC5oYXNOZXh0UGFnZSgpKSB7XG4gICAgICAgIGlmIChjYikgY2IocmVzcC5lcnJvciwgbnVsbCk7XG4gICAgICAgIGVsc2UgaWYgKHJlc3AuZXJyb3IpIHRocm93IHJlc3AuZXJyb3I7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgcGFyYW1zID0gQVdTLnV0aWwuY29weShyZXEucmF3UGFyYW1zKTtcbiAgICAgIGlmICghcmVzcC5uZXh0UGFnZVRva2Vucykge1xuICAgICAgICByZXR1cm4gY2IgPyBjYihudWxsLCBudWxsKSA6IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgaW5wdXRUb2tlbnMgPSBjb25maWcuaW5wdXRUb2tlbjtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dFRva2VucyA9PT0gJ3N0cmluZycpIGlucHV0VG9rZW5zID0gW2lucHV0VG9rZW5zXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dFRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHBhcmFtc1tpbnB1dFRva2Vuc1tpXV0gPSByZXNwLm5leHRQYWdlVG9rZW5zW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxmW29wZXJhdGlvbl0ocGFyYW1zLCBjYik7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuRHluYW1vREIuRG9jdW1lbnRDbGllbnQ7XG4iLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4uL2NvcmUnKS51dGlsO1xuXG4vKipcbiAqIEFuIG9iamVjdCByZWNvZ25pemFibGUgYXMgYSBudW1lcmljIHZhbHVlIHRoYXQgc3RvcmVzIHRoZSB1bmRlcmx5aW5nIG51bWJlclxuICogYXMgYSBzdHJpbmcuXG4gKlxuICogSW50ZW5kZWQgdG8gYmUgYSBkZXNlcmlhbGl6YXRpb24gdGFyZ2V0IGZvciB0aGUgRHluYW1vREIgRG9jdW1lbnQgQ2xpZW50IHdoZW5cbiAqIHRoZSBgd3JhcE51bWJlcnNgIGZsYWcgaXMgc2V0LiBUaGlzIGFsbG93cyBmb3IgbnVtZXJpYyB2YWx1ZXMgdGhhdCBsb3NlXG4gKiBwcmVjaXNpb24gd2hlbiBjb252ZXJ0ZWQgdG8gSmF2YVNjcmlwdCdzIGBudW1iZXJgIHR5cGUuXG4gKi9cbnZhciBEeW5hbW9EQk51bWJlclZhbHVlID0gdXRpbC5pbmhlcml0KHtcbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIE51bWJlclZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy53cmFwcGVyTmFtZSA9ICdOdW1iZXJWYWx1ZSc7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgdW5kZXJseWluZyB2YWx1ZSBhcyBhIG51bWJlciB3aGVuIGNvbnZlcnRpbmcgdG8gSlNPTi5cbiAgICovXG4gIHRvSlNPTjogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnRvTnVtYmVyKCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhlIHVuZGVybHlpbmcgdmFsdWUgdG8gYSBKYXZhU2NyaXB0IG51bWJlci5cbiAgICovXG4gIHRvTnVtYmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIE51bWJlcih0aGlzLnZhbHVlKTtcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdW5hbHRlcmVkIHZhbHVlIHByb3ZpZGVkIHRvIHRoZVxuICAgKiBjb25zdHJ1Y3Rvci5cbiAgICovXG4gIHRvU3RyaW5nOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cbn0pO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IER5bmFtb0RCTnVtYmVyVmFsdWU7IiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi9jb3JlJykudXRpbDtcbnZhciB0eXBlT2YgPSByZXF1aXJlKCcuL3R5cGVzJykudHlwZU9mO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgbWVtYmVyVHlwZVRvU2V0VHlwZSA9IHtcbiAgJ1N0cmluZyc6ICdTdHJpbmcnLFxuICAnTnVtYmVyJzogJ051bWJlcicsXG4gICdOdW1iZXJWYWx1ZSc6ICdOdW1iZXInLFxuICAnQmluYXJ5JzogJ0JpbmFyeSdcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBEeW5hbW9EQlNldCA9IHV0aWwuaW5oZXJpdCh7XG5cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIFNldChsaXN0LCBvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgdGhpcy53cmFwcGVyTmFtZSA9ICdTZXQnO1xuICAgIHRoaXMuaW5pdGlhbGl6ZShsaXN0LCBvcHRpb25zLnZhbGlkYXRlKTtcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbihsaXN0LCB2YWxpZGF0ZSkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZWxmLnZhbHVlcyA9IFtdLmNvbmNhdChsaXN0KTtcbiAgICBzZWxmLmRldGVjdFR5cGUoKTtcbiAgICBpZiAodmFsaWRhdGUpIHtcbiAgICAgIHNlbGYudmFsaWRhdGUoKTtcbiAgICB9XG4gIH0sXG5cbiAgZGV0ZWN0VHlwZTogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy50eXBlID0gbWVtYmVyVHlwZVRvU2V0VHlwZVt0eXBlT2YodGhpcy52YWx1ZXNbMF0pXTtcbiAgICBpZiAoIXRoaXMudHlwZSkge1xuICAgICAgdGhyb3cgdXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgICBjb2RlOiAnSW52YWxpZFNldFR5cGUnLFxuICAgICAgICBtZXNzYWdlOiAnU2V0cyBjYW4gY29udGFpbiBzdHJpbmcsIG51bWJlciwgb3IgYmluYXJ5IHZhbHVlcydcbiAgICAgIH0pO1xuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBsZW5ndGggPSBzZWxmLnZhbHVlcy5sZW5ndGg7XG4gICAgdmFyIHZhbHVlcyA9IHNlbGYudmFsdWVzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChtZW1iZXJUeXBlVG9TZXRUeXBlW3R5cGVPZih2YWx1ZXNbaV0pXSAhPT0gc2VsZi50eXBlKSB7XG4gICAgICAgIHRocm93IHV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgICAgICBjb2RlOiAnSW52YWxpZFR5cGUnLFxuICAgICAgICAgIG1lc3NhZ2U6IHNlbGYudHlwZSArICcgU2V0IGNvbnRhaW5zICcgKyB0eXBlT2YodmFsdWVzW2ldKSArICcgdmFsdWUnXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBEeW5hbW9EQlNldDtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vY29yZScpLnV0aWw7XG52YXIgY29udmVydCA9IHJlcXVpcmUoJy4vY29udmVydGVyJyk7XG5cbnZhciBUcmFuc2xhdG9yID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdGhpcy5hdHRyVmFsdWUgPSBvcHRpb25zLmF0dHJWYWx1ZTtcbiAgdGhpcy5jb252ZXJ0RW1wdHlWYWx1ZXMgPSBCb29sZWFuKG9wdGlvbnMuY29udmVydEVtcHR5VmFsdWVzKTtcbiAgdGhpcy53cmFwTnVtYmVycyA9IEJvb2xlYW4ob3B0aW9ucy53cmFwTnVtYmVycyk7XG59O1xuXG5UcmFuc2xhdG9yLnByb3RvdHlwZS50cmFuc2xhdGVJbnB1dCA9IGZ1bmN0aW9uKHZhbHVlLCBzaGFwZSkge1xuICB0aGlzLm1vZGUgPSAnaW5wdXQnO1xuICByZXR1cm4gdGhpcy50cmFuc2xhdGUodmFsdWUsIHNoYXBlKTtcbn07XG5cblRyYW5zbGF0b3IucHJvdG90eXBlLnRyYW5zbGF0ZU91dHB1dCA9IGZ1bmN0aW9uKHZhbHVlLCBzaGFwZSkge1xuICB0aGlzLm1vZGUgPSAnb3V0cHV0JztcbiAgcmV0dXJuIHRoaXMudHJhbnNsYXRlKHZhbHVlLCBzaGFwZSk7XG59O1xuXG5UcmFuc2xhdG9yLnByb3RvdHlwZS50cmFuc2xhdGUgPSBmdW5jdGlvbih2YWx1ZSwgc2hhcGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBpZiAoIXNoYXBlIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgaWYgKHNoYXBlLnNoYXBlID09PSBzZWxmLmF0dHJWYWx1ZSkge1xuICAgIHJldHVybiBjb252ZXJ0W3NlbGYubW9kZV0odmFsdWUsIHtcbiAgICAgIGNvbnZlcnRFbXB0eVZhbHVlczogc2VsZi5jb252ZXJ0RW1wdHlWYWx1ZXMsXG4gICAgICB3cmFwTnVtYmVyczogc2VsZi53cmFwTnVtYmVycyxcbiAgICB9KTtcbiAgfVxuICBzd2l0Y2ggKHNoYXBlLnR5cGUpIHtcbiAgICBjYXNlICdzdHJ1Y3R1cmUnOiByZXR1cm4gc2VsZi50cmFuc2xhdGVTdHJ1Y3R1cmUodmFsdWUsIHNoYXBlKTtcbiAgICBjYXNlICdtYXAnOiByZXR1cm4gc2VsZi50cmFuc2xhdGVNYXAodmFsdWUsIHNoYXBlKTtcbiAgICBjYXNlICdsaXN0JzogcmV0dXJuIHNlbGYudHJhbnNsYXRlTGlzdCh2YWx1ZSwgc2hhcGUpO1xuICAgIGRlZmF1bHQ6IHJldHVybiBzZWxmLnRyYW5zbGF0ZVNjYWxhcih2YWx1ZSwgc2hhcGUpO1xuICB9XG59O1xuXG5UcmFuc2xhdG9yLnByb3RvdHlwZS50cmFuc2xhdGVTdHJ1Y3R1cmUgPSBmdW5jdGlvbihzdHJ1Y3R1cmUsIHNoYXBlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgaWYgKHN0cnVjdHVyZSA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIHZhciBzdHJ1Y3QgPSB7fTtcbiAgdXRpbC5lYWNoKHN0cnVjdHVyZSwgZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgICB2YXIgbWVtYmVyU2hhcGUgPSBzaGFwZS5tZW1iZXJzW25hbWVdO1xuICAgIGlmIChtZW1iZXJTaGFwZSkge1xuICAgICAgdmFyIHJlc3VsdCA9IHNlbGYudHJhbnNsYXRlKHZhbHVlLCBtZW1iZXJTaGFwZSk7XG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHN0cnVjdFtuYW1lXSA9IHJlc3VsdDtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc3RydWN0O1xufTtcblxuVHJhbnNsYXRvci5wcm90b3R5cGUudHJhbnNsYXRlTGlzdCA9IGZ1bmN0aW9uKGxpc3QsIHNoYXBlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgaWYgKGxpc3QgPT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICB2YXIgb3V0ID0gW107XG4gIHV0aWwuYXJyYXlFYWNoKGxpc3QsIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFyIHJlc3VsdCA9IHNlbGYudHJhbnNsYXRlKHZhbHVlLCBzaGFwZS5tZW1iZXIpO1xuICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgb3V0LnB1c2gobnVsbCk7XG4gICAgZWxzZSBvdXQucHVzaChyZXN1bHQpO1xuICB9KTtcbiAgcmV0dXJuIG91dDtcbn07XG5cblRyYW5zbGF0b3IucHJvdG90eXBlLnRyYW5zbGF0ZU1hcCA9IGZ1bmN0aW9uKG1hcCwgc2hhcGUpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBpZiAobWFwID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgdmFyIG91dCA9IHt9O1xuICB1dGlsLmVhY2gobWFwLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgdmFyIHJlc3VsdCA9IHNlbGYudHJhbnNsYXRlKHZhbHVlLCBzaGFwZS52YWx1ZSk7XG4gICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBvdXRba2V5XSA9IG51bGw7XG4gICAgZWxzZSBvdXRba2V5XSA9IHJlc3VsdDtcbiAgfSk7XG4gIHJldHVybiBvdXQ7XG59O1xuXG5UcmFuc2xhdG9yLnByb3RvdHlwZS50cmFuc2xhdGVTY2FsYXIgPSBmdW5jdGlvbih2YWx1ZSwgc2hhcGUpIHtcbiAgcmV0dXJuIHNoYXBlLnRvVHlwZSh2YWx1ZSk7XG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IFRyYW5zbGF0b3I7XG4iLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4uL2NvcmUnKS51dGlsO1xuXG5mdW5jdGlvbiB0eXBlT2YoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gJ251bGwnO1xuICB9IGVsc2UgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCAmJiBpc0JpbmFyeShkYXRhKSkge1xuICAgIHJldHVybiAnQmluYXJ5JztcbiAgfSBlbHNlIGlmIChkYXRhICE9PSB1bmRlZmluZWQgJiYgZGF0YS5jb25zdHJ1Y3Rvcikge1xuICAgIHJldHVybiBkYXRhLndyYXBwZXJOYW1lIHx8IHV0aWwudHlwZU5hbWUoZGF0YS5jb25zdHJ1Y3Rvcik7XG4gIH0gZWxzZSBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgIC8vIHRoaXMgb2JqZWN0IGlzIHRoZSByZXN1bHQgb2YgT2JqZWN0LmNyZWF0ZShudWxsKSwgaGVuY2UgdGhlIGFic2VuY2Ugb2YgYVxuICAgIC8vIGRlZmluZWQgY29uc3RydWN0b3JcbiAgICByZXR1cm4gJ09iamVjdCc7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICd1bmRlZmluZWQnO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQmluYXJ5KGRhdGEpIHtcbiAgdmFyIHR5cGVzID0gW1xuICAgICdCdWZmZXInLCAnRmlsZScsICdCbG9iJywgJ0FycmF5QnVmZmVyJywgJ0RhdGFWaWV3JyxcbiAgICAnSW50OEFycmF5JywgJ1VpbnQ4QXJyYXknLCAnVWludDhDbGFtcGVkQXJyYXknLFxuICAgICdJbnQxNkFycmF5JywgJ1VpbnQxNkFycmF5JywgJ0ludDMyQXJyYXknLCAnVWludDMyQXJyYXknLFxuICAgICdGbG9hdDMyQXJyYXknLCAnRmxvYXQ2NEFycmF5J1xuICBdO1xuICBpZiAodXRpbC5pc05vZGUoKSkge1xuICAgIHZhciBTdHJlYW0gPSB1dGlsLnN0cmVhbS5TdHJlYW07XG4gICAgaWYgKHV0aWwuQnVmZmVyLmlzQnVmZmVyKGRhdGEpIHx8IGRhdGEgaW5zdGFuY2VvZiBTdHJlYW0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkICYmIGRhdGEuY29uc3RydWN0b3IpIHtcbiAgICAgIGlmICh1dGlsLmlzVHlwZShkYXRhLCB0eXBlc1tpXSkpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKHV0aWwudHlwZU5hbWUoZGF0YS5jb25zdHJ1Y3RvcikgPT09IHR5cGVzW2ldKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICB0eXBlT2Y6IHR5cGVPZixcbiAgaXNCaW5hcnk6IGlzQmluYXJ5XG59O1xuIiwidmFyIGV2ZW50TWVzc2FnZUNodW5rZXIgPSByZXF1aXJlKCcuLi9ldmVudC1zdHJlYW0vZXZlbnQtbWVzc2FnZS1jaHVua2VyJykuZXZlbnRNZXNzYWdlQ2h1bmtlcjtcbnZhciBwYXJzZUV2ZW50ID0gcmVxdWlyZSgnLi9wYXJzZS1ldmVudCcpLnBhcnNlRXZlbnQ7XG5cbmZ1bmN0aW9uIGNyZWF0ZUV2ZW50U3RyZWFtKGJvZHksIHBhcnNlciwgbW9kZWwpIHtcbiAgICB2YXIgZXZlbnRNZXNzYWdlcyA9IGV2ZW50TWVzc2FnZUNodW5rZXIoYm9keSk7XG5cbiAgICB2YXIgZXZlbnRzID0gW107XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50TWVzc2FnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZXZlbnRzLnB1c2gocGFyc2VFdmVudChwYXJzZXIsIGV2ZW50TWVzc2FnZXNbaV0sIG1vZGVsKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50cztcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlRXZlbnRTdHJlYW06IGNyZWF0ZUV2ZW50U3RyZWFtXG59OyIsIi8qKlxuICogVGFrZXMgaW4gYSBidWZmZXIgb2YgZXZlbnQgbWVzc2FnZXMgYW5kIHNwbGl0cyB0aGVtIGludG8gaW5kaXZpZHVhbCBtZXNzYWdlcy5cbiAqIEBwYXJhbSB7QnVmZmVyfSBidWZmZXJcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBldmVudE1lc3NhZ2VDaHVua2VyKGJ1ZmZlcikge1xuICAgIC8qKiBAdHlwZSBCdWZmZXJbXSAqL1xuICAgIHZhciBtZXNzYWdlcyA9IFtdO1xuICAgIHZhciBvZmZzZXQgPSAwO1xuXG4gICAgd2hpbGUgKG9mZnNldCA8IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgdmFyIHRvdGFsTGVuZ3RoID0gYnVmZmVyLnJlYWRJbnQzMkJFKG9mZnNldCk7XG5cbiAgICAgICAgLy8gY3JlYXRlIG5ldyBidWZmZXIgZm9yIGluZGl2aWR1YWwgbWVzc2FnZSAoc2hhcmVzIG1lbW9yeSB3aXRoIG9yaWdpbmFsKVxuICAgICAgICB2YXIgbWVzc2FnZSA9IGJ1ZmZlci5zbGljZShvZmZzZXQsIHRvdGFsTGVuZ3RoICsgb2Zmc2V0KTtcbiAgICAgICAgLy8gaW5jcmVtZW50IG9mZnNldCB0byBpdCBzdGFydHMgYXQgdGhlIG5leHQgbWVzc2FnZVxuICAgICAgICBvZmZzZXQgKz0gdG90YWxMZW5ndGg7XG5cbiAgICAgICAgbWVzc2FnZXMucHVzaChtZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVzc2FnZXM7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGV2ZW50TWVzc2FnZUNodW5rZXI6IGV2ZW50TWVzc2FnZUNodW5rZXJcbn07IiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi9jb3JlJykudXRpbDtcbnZhciB0b0J1ZmZlciA9IHJlcXVpcmUoJy4vdG8tYnVmZmVyJykudG9CdWZmZXI7XG5cbi8qKlxuICogQSBsb3NzbGVzcyByZXByZXNlbnRhdGlvbiBvZiBhIHNpZ25lZCwgNjQtYml0IGludGVnZXIuIEluc3RhbmNlcyBvZiB0aGlzXG4gKiBjbGFzcyBtYXkgYmUgdXNlZCBpbiBhcml0aG1ldGljIGV4cHJlc3Npb25zIGFzIGlmIHRoZXkgd2VyZSBudW1lcmljXG4gKiBwcmltaXRpdmVzLCBidXQgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHByZXNlcnZlZCB1bmNoYW5nZWQgYXMgdGhlXG4gKiBgYnl0ZXNgIHByb3BlcnR5IG9mIHRoZSBvYmplY3QuIFRoZSBieXRlcyBzaG91bGQgYmUgZW5jb2RlZCBhcyBiaWctZW5kaWFuLFxuICogdHdvJ3MgY29tcGxlbWVudCBpbnRlZ2Vycy5cbiAqIEBwYXJhbSB7QnVmZmVyfSBieXRlc1xuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBJbnQ2NChieXRlcykge1xuICAgIGlmIChieXRlcy5sZW5ndGggIT09IDgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnQ2NCBidWZmZXJzIG11c3QgYmUgZXhhY3RseSA4IGJ5dGVzJyk7XG4gICAgfVxuICAgIGlmICghdXRpbC5CdWZmZXIuaXNCdWZmZXIoYnl0ZXMpKSBieXRlcyA9IHRvQnVmZmVyKGJ5dGVzKTtcblxuICAgIHRoaXMuYnl0ZXMgPSBieXRlcztcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyXG4gKiBAcmV0dXJucyB7SW50NjR9XG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkludDY0LmZyb21OdW1iZXIgPSBmdW5jdGlvbihudW1iZXIpIHtcbiAgICBpZiAobnVtYmVyID4gOTIyMzM3MjAzNjg1NDc3NTgwNyB8fCBudW1iZXIgPCAtOTIyMzM3MjAzNjg1NDc3NTgwOCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBudW1iZXIgKyAnIGlzIHRvbyBsYXJnZSAob3IsIGlmIG5lZ2F0aXZlLCB0b28gc21hbGwpIHRvIHJlcHJlc2VudCBhcyBhbiBJbnQ2NCdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheSg4KVxuICAgIGZvciAoXG4gICAgICAgIHZhciBpID0gNywgcmVtYWluaW5nID0gTWF0aC5hYnMoTWF0aC5yb3VuZChudW1iZXIpKTtcbiAgICAgICAgaSA+IC0xICYmIHJlbWFpbmluZyA+IDA7XG4gICAgICAgIGktLSwgcmVtYWluaW5nIC89IDI1NlxuICAgICkge1xuICAgICAgICBieXRlc1tpXSA9IHJlbWFpbmluZztcbiAgICB9XG5cbiAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICBuZWdhdGUoYnl0ZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW50NjQoYnl0ZXMpO1xufTtcblxuLyoqXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5JbnQ2NC5wcm90b3R5cGUudmFsdWVPZiA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBieXRlcyA9IHRoaXMuYnl0ZXMuc2xpY2UoMCk7XG4gICAgdmFyIG5lZ2F0aXZlID0gYnl0ZXNbMF0gJiAxMjg7XG4gICAgaWYgKG5lZ2F0aXZlKSB7XG4gICAgICAgIG5lZ2F0ZShieXRlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlSW50KGJ5dGVzLnRvU3RyaW5nKCdoZXgnKSwgMTYpICogKG5lZ2F0aXZlID8gLTEgOiAxKTtcbn07XG5cbkludDY0LnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBTdHJpbmcodGhpcy52YWx1ZU9mKCkpO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnl0ZXNcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gbmVnYXRlKGJ5dGVzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgICAgYnl0ZXNbaV0gXj0gMHhGRjtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDc7IGkgPiAtMTsgaS0tKSB7XG4gICAgICAgIGJ5dGVzW2ldKys7XG4gICAgICAgIGlmIChieXRlc1tpXSAhPT0gMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIEludDY0OiBJbnQ2NFxufTsiLCJ2YXIgcGFyc2VNZXNzYWdlID0gcmVxdWlyZSgnLi9wYXJzZS1tZXNzYWdlJykucGFyc2VNZXNzYWdlO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0geyp9IHBhcnNlclxuICogQHBhcmFtIHtCdWZmZXJ9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7Kn0gc2hhcGVcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBwYXJzZUV2ZW50KHBhcnNlciwgbWVzc2FnZSwgc2hhcGUpIHtcbiAgICB2YXIgcGFyc2VkTWVzc2FnZSA9IHBhcnNlTWVzc2FnZShtZXNzYWdlKTtcblxuICAgIC8vIGNoZWNrIGlmIG1lc3NhZ2UgaXMgYW4gZXZlbnQgb3IgZXJyb3JcbiAgICB2YXIgbWVzc2FnZVR5cGUgPSBwYXJzZWRNZXNzYWdlLmhlYWRlcnNbJzptZXNzYWdlLXR5cGUnXTtcbiAgICBpZiAobWVzc2FnZVR5cGUpIHtcbiAgICAgICAgaWYgKG1lc3NhZ2VUeXBlLnZhbHVlID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICB0aHJvdyBwYXJzZUVycm9yKHBhcnNlZE1lc3NhZ2UpO1xuICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2VUeXBlLnZhbHVlICE9PSAnZXZlbnQnKSB7XG4gICAgICAgICAgICAvLyBub3Qgc3VyZSBob3cgdG8gcGFyc2Ugbm9uLWV2ZW50cy9ub24tZXJyb3JzLCBpZ25vcmUgZm9yIG5vd1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGV0ZXJtaW5lIGV2ZW50IHR5cGVcbiAgICB2YXIgZXZlbnRUeXBlID0gcGFyc2VkTWVzc2FnZS5oZWFkZXJzWyc6ZXZlbnQtdHlwZSddO1xuICAgIC8vIGNoZWNrIHRoYXQgdGhlIGV2ZW50IHR5cGUgaXMgbW9kZWxlZFxuICAgIHZhciBldmVudE1vZGVsID0gc2hhcGUubWVtYmVyc1tldmVudFR5cGUudmFsdWVdO1xuICAgIGlmICghZXZlbnRNb2RlbCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIC8vIGNoZWNrIGlmIGFuIGV2ZW50IHBheWxvYWQgZXhpc3RzXG4gICAgdmFyIGV2ZW50UGF5bG9hZE1lbWJlck5hbWUgPSBldmVudE1vZGVsLmV2ZW50UGF5bG9hZE1lbWJlck5hbWU7XG4gICAgaWYgKGV2ZW50UGF5bG9hZE1lbWJlck5hbWUpIHtcbiAgICAgICAgdmFyIHBheWxvYWRTaGFwZSA9IGV2ZW50TW9kZWwubWVtYmVyc1tldmVudFBheWxvYWRNZW1iZXJOYW1lXTtcbiAgICAgICAgLy8gaWYgdGhlIHNoYXBlIGlzIGJpbmFyeSwgcmV0dXJuIHRoZSBieXRlIGFycmF5XG4gICAgICAgIGlmIChwYXlsb2FkU2hhcGUudHlwZSA9PT0gJ2JpbmFyeScpIHtcbiAgICAgICAgICAgIHJlc3VsdFtldmVudFBheWxvYWRNZW1iZXJOYW1lXSA9IHBhcnNlZE1lc3NhZ2UuYm9keTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFtldmVudFBheWxvYWRNZW1iZXJOYW1lXSA9IHBhcnNlci5wYXJzZShwYXJzZWRNZXNzYWdlLmJvZHkudG9TdHJpbmcoKSwgcGF5bG9hZFNoYXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHJlYWQgZXZlbnQgaGVhZGVyc1xuICAgIHZhciBldmVudEhlYWRlck5hbWVzID0gZXZlbnRNb2RlbC5ldmVudEhlYWRlck1lbWJlck5hbWVzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRIZWFkZXJOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbmFtZSA9IGV2ZW50SGVhZGVyTmFtZXNbaV07XG4gICAgICAgIGlmIChwYXJzZWRNZXNzYWdlLmhlYWRlcnNbbmFtZV0pIHtcbiAgICAgICAgICAgIC8vIHBhcnNlIHRoZSBoZWFkZXIhXG4gICAgICAgICAgICByZXN1bHRbbmFtZV0gPSBldmVudE1vZGVsLm1lbWJlcnNbbmFtZV0udG9UeXBlKHBhcnNlZE1lc3NhZ2UuaGVhZGVyc1tuYW1lXS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgb3V0cHV0ID0ge307XG4gICAgb3V0cHV0W2V2ZW50VHlwZS52YWx1ZV0gPSByZXN1bHQ7XG4gICAgcmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gcGFyc2VFcnJvcihtZXNzYWdlKSB7XG4gICAgdmFyIGVycm9yQ29kZSA9IG1lc3NhZ2UuaGVhZGVyc1snOmVycm9yLWNvZGUnXTtcbiAgICB2YXIgZXJyb3JNZXNzYWdlID0gbWVzc2FnZS5oZWFkZXJzWyc6ZXJyb3ItbWVzc2FnZSddO1xuICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UudmFsdWUgfHwgZXJyb3JNZXNzYWdlKTtcbiAgICBlcnJvci5jb2RlID0gZXJyb3IubmFtZSA9IGVycm9yQ29kZS52YWx1ZSB8fCBlcnJvckNvZGU7XG4gICAgcmV0dXJuIGVycm9yO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBwYXJzZUV2ZW50OiBwYXJzZUV2ZW50XG59OyIsInZhciBJbnQ2NCA9IHJlcXVpcmUoJy4vaW50NjQnKS5JbnQ2NDtcblxudmFyIHNwbGl0TWVzc2FnZSA9IHJlcXVpcmUoJy4vc3BsaXQtbWVzc2FnZScpLnNwbGl0TWVzc2FnZTtcblxudmFyIEJPT0xFQU5fVEFHID0gJ2Jvb2xlYW4nO1xudmFyIEJZVEVfVEFHID0gJ2J5dGUnO1xudmFyIFNIT1JUX1RBRyA9ICdzaG9ydCc7XG52YXIgSU5UX1RBRyA9ICdpbnRlZ2VyJztcbnZhciBMT05HX1RBRyA9ICdsb25nJztcbnZhciBCSU5BUllfVEFHID0gJ2JpbmFyeSc7XG52YXIgU1RSSU5HX1RBRyA9ICdzdHJpbmcnO1xudmFyIFRJTUVTVEFNUF9UQUcgPSAndGltZXN0YW1wJztcbnZhciBVVUlEX1RBRyA9ICd1dWlkJztcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqXG4gKiBAcGFyYW0ge0J1ZmZlcn0gaGVhZGVyc1xuICovXG5mdW5jdGlvbiBwYXJzZUhlYWRlcnMoaGVhZGVycykge1xuICAgIHZhciBvdXQgPSB7fTtcbiAgICB2YXIgcG9zaXRpb24gPSAwO1xuICAgIHdoaWxlIChwb3NpdGlvbiA8IGhlYWRlcnMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBuYW1lTGVuZ3RoID0gaGVhZGVycy5yZWFkVUludDgocG9zaXRpb24rKyk7XG4gICAgICAgIHZhciBuYW1lID0gaGVhZGVycy5zbGljZShwb3NpdGlvbiwgcG9zaXRpb24gKyBuYW1lTGVuZ3RoKS50b1N0cmluZygpO1xuICAgICAgICBwb3NpdGlvbiArPSBuYW1lTGVuZ3RoO1xuICAgICAgICBzd2l0Y2ggKGhlYWRlcnMucmVhZFVJbnQ4KHBvc2l0aW9uKyspKSB7XG4gICAgICAgICAgICBjYXNlIDAgLyogYm9vbFRydWUgKi86XG4gICAgICAgICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBCT09MRUFOX1RBRyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxIC8qIGJvb2xGYWxzZSAqLzpcbiAgICAgICAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEJPT0xFQU5fVEFHLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAyIC8qIGJ5dGUgKi86XG4gICAgICAgICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBCWVRFX1RBRyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGhlYWRlcnMucmVhZEludDgocG9zaXRpb24rKylcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAzIC8qIHNob3J0ICovOlxuICAgICAgICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogU0hPUlRfVEFHLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5yZWFkSW50MTZCRShwb3NpdGlvbilcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IDI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDQgLyogaW50ZWdlciAqLzpcbiAgICAgICAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IElOVF9UQUcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBoZWFkZXJzLnJlYWRJbnQzMkJFKHBvc2l0aW9uKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcG9zaXRpb24gKz0gNDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNSAvKiBsb25nICovOlxuICAgICAgICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogTE9OR19UQUcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXcgSW50NjQoaGVhZGVycy5zbGljZShwb3NpdGlvbiwgcG9zaXRpb24gKyA4KSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IDg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDYgLyogYnl0ZUFycmF5ICovOlxuICAgICAgICAgICAgICAgIHZhciBiaW5hcnlMZW5ndGggPSBoZWFkZXJzLnJlYWRVSW50MTZCRShwb3NpdGlvbik7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24gKz0gMjtcbiAgICAgICAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEJJTkFSWV9UQUcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBoZWFkZXJzLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIGJpbmFyeUxlbmd0aClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IGJpbmFyeUxlbmd0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNyAvKiBzdHJpbmcgKi86XG4gICAgICAgICAgICAgICAgdmFyIHN0cmluZ0xlbmd0aCA9IGhlYWRlcnMucmVhZFVJbnQxNkJFKHBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbiArPSAyO1xuICAgICAgICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogU1RSSU5HX1RBRyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGhlYWRlcnMuc2xpY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICsgc3RyaW5nTGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICkudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcG9zaXRpb24gKz0gc3RyaW5nTGVuZ3RoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA4IC8qIHRpbWVzdGFtcCAqLzpcbiAgICAgICAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFRJTUVTVEFNUF9UQUcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXcgRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnQ2NChoZWFkZXJzLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIDgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZU9mKClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcG9zaXRpb24gKz0gODtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgOSAvKiB1dWlkICovOlxuICAgICAgICAgICAgICAgIHZhciB1dWlkQ2hhcnMgPSBoZWFkZXJzLnNsaWNlKHBvc2l0aW9uLCBwb3NpdGlvbiArIDE2KVxuICAgICAgICAgICAgICAgICAgICAudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uICs9IDE2O1xuICAgICAgICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogVVVJRF9UQUcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB1dWlkQ2hhcnMuc3Vic3RyKDAsIDgpICsgJy0nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHV1aWRDaGFycy5zdWJzdHIoOCwgNCkgKyAnLScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgdXVpZENoYXJzLnN1YnN0cigxMiwgNCkgKyAnLScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgdXVpZENoYXJzLnN1YnN0cigxNiwgNCkgKyAnLScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgdXVpZENoYXJzLnN1YnN0cigyMClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBoZWFkZXIgdHlwZSB0YWcnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiBwYXJzZU1lc3NhZ2UobWVzc2FnZSkge1xuICAgIHZhciBwYXJzZWQgPSBzcGxpdE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgcmV0dXJuIHsgaGVhZGVyczogcGFyc2VIZWFkZXJzKHBhcnNlZC5oZWFkZXJzKSwgYm9keTogcGFyc2VkLmJvZHkgfTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgcGFyc2VNZXNzYWdlOiBwYXJzZU1lc3NhZ2Vcbn07IiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi9jb3JlJykudXRpbDtcbnZhciB0b0J1ZmZlciA9IHJlcXVpcmUoJy4vdG8tYnVmZmVyJykudG9CdWZmZXI7XG5cbi8vIEFsbCBwcmVsdWRlIGNvbXBvbmVudHMgYXJlIHVuc2lnbmVkLCAzMi1iaXQgaW50ZWdlcnNcbnZhciBQUkVMVURFX01FTUJFUl9MRU5HVEggPSA0O1xuLy8gVGhlIHByZWx1ZGUgY29uc2lzdHMgb2YgdHdvIGNvbXBvbmVudHNcbnZhciBQUkVMVURFX0xFTkdUSCA9IFBSRUxVREVfTUVNQkVSX0xFTkdUSCAqIDI7XG4vLyBDaGVja3N1bXMgYXJlIGFsd2F5cyBDUkMzMiBoYXNoZXMuXG52YXIgQ0hFQ0tTVU1fTEVOR1RIID0gNDtcbi8vIE1lc3NhZ2VzIG11c3QgaW5jbHVkZSBhIGZ1bGwgcHJlbHVkZSwgYSBwcmVsdWRlIGNoZWNrc3VtLCBhbmQgYSBtZXNzYWdlIGNoZWNrc3VtXG52YXIgTUlOSU1VTV9NRVNTQUdFX0xFTkdUSCA9IFBSRUxVREVfTEVOR1RIICsgQ0hFQ0tTVU1fTEVOR1RIICogMjtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqXG4gKiBAcGFyYW0ge0J1ZmZlcn0gbWVzc2FnZVxuICovXG5mdW5jdGlvbiBzcGxpdE1lc3NhZ2UobWVzc2FnZSkge1xuICAgIGlmICghdXRpbC5CdWZmZXIuaXNCdWZmZXIobWVzc2FnZSkpIG1lc3NhZ2UgPSB0b0J1ZmZlcihtZXNzYWdlKTtcblxuICAgIGlmIChtZXNzYWdlLmxlbmd0aCA8IE1JTklNVU1fTUVTU0FHRV9MRU5HVEgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm92aWRlZCBtZXNzYWdlIHRvbyBzaG9ydCB0byBhY2NvbW1vZGF0ZSBldmVudCBzdHJlYW0gbWVzc2FnZSBvdmVyaGVhZCcpO1xuICAgIH1cblxuICAgIGlmIChtZXNzYWdlLmxlbmd0aCAhPT0gbWVzc2FnZS5yZWFkVUludDMyQkUoMCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXBvcnRlZCBtZXNzYWdlIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCByZWNlaXZlZCBtZXNzYWdlIGxlbmd0aCcpO1xuICAgIH1cblxuICAgIHZhciBleHBlY3RlZFByZWx1ZGVDaGVja3N1bSA9IG1lc3NhZ2UucmVhZFVJbnQzMkJFKFBSRUxVREVfTEVOR1RIKTtcblxuICAgIGlmIChcbiAgICAgICAgZXhwZWN0ZWRQcmVsdWRlQ2hlY2tzdW0gIT09IHV0aWwuY3J5cHRvLmNyYzMyKFxuICAgICAgICAgICAgbWVzc2FnZS5zbGljZSgwLCBQUkVMVURFX0xFTkdUSClcbiAgICAgICAgKVxuICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnVGhlIHByZWx1ZGUgY2hlY2tzdW0gc3BlY2lmaWVkIGluIHRoZSBtZXNzYWdlICgnICtcbiAgICAgICAgICAgIGV4cGVjdGVkUHJlbHVkZUNoZWNrc3VtICtcbiAgICAgICAgICAgICcpIGRvZXMgbm90IG1hdGNoIHRoZSBjYWxjdWxhdGVkIENSQzMyIGNoZWNrc3VtLidcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgZXhwZWN0ZWRNZXNzYWdlQ2hlY2tzdW0gPSBtZXNzYWdlLnJlYWRVSW50MzJCRShtZXNzYWdlLmxlbmd0aCAtIENIRUNLU1VNX0xFTkdUSCk7XG5cbiAgICBpZiAoXG4gICAgICAgIGV4cGVjdGVkTWVzc2FnZUNoZWNrc3VtICE9PSB1dGlsLmNyeXB0by5jcmMzMihcbiAgICAgICAgICAgIG1lc3NhZ2Uuc2xpY2UoMCwgbWVzc2FnZS5sZW5ndGggLSBDSEVDS1NVTV9MRU5HVEgpXG4gICAgICAgIClcbiAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ1RoZSBtZXNzYWdlIGNoZWNrc3VtIGRpZCBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIHZhbHVlIG9mICcgK1xuICAgICAgICAgICAgICAgIGV4cGVjdGVkTWVzc2FnZUNoZWNrc3VtXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIGhlYWRlcnNTdGFydCA9IFBSRUxVREVfTEVOR1RIICsgQ0hFQ0tTVU1fTEVOR1RIO1xuICAgIHZhciBoZWFkZXJzRW5kID0gaGVhZGVyc1N0YXJ0ICsgbWVzc2FnZS5yZWFkVUludDMyQkUoUFJFTFVERV9NRU1CRVJfTEVOR1RIKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGhlYWRlcnM6IG1lc3NhZ2Uuc2xpY2UoaGVhZGVyc1N0YXJ0LCBoZWFkZXJzRW5kKSxcbiAgICAgICAgYm9keTogbWVzc2FnZS5zbGljZShoZWFkZXJzRW5kLCBtZXNzYWdlLmxlbmd0aCAtIENIRUNLU1VNX0xFTkdUSCksXG4gICAgfTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgc3BsaXRNZXNzYWdlOiBzcGxpdE1lc3NhZ2Vcbn07IiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJy4uL2NvcmUnKS51dGlsLkJ1ZmZlcjtcbi8qKlxuICogQ29udmVydHMgZGF0YSBpbnRvIEJ1ZmZlci5cbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ8c3RyaW5nfG51bWJlcltdfEJ1ZmZlcn0gZGF0YSBEYXRhIHRvIGNvbnZlcnQgdG8gYSBCdWZmZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbZW5jb2RpbmddIFN0cmluZyBlbmNvZGluZ1xuICogQHJldHVybnMge0J1ZmZlcn1cbiAqL1xuZnVuY3Rpb24gdG9CdWZmZXIoZGF0YSwgZW5jb2RpbmcpIHtcbiAgICByZXR1cm4gKHR5cGVvZiBCdWZmZXIuZnJvbSA9PT0gJ2Z1bmN0aW9uJyAmJiBCdWZmZXIuZnJvbSAhPT0gVWludDhBcnJheS5mcm9tKSA/XG4gICAgICAgIEJ1ZmZlci5mcm9tKGRhdGEsIGVuY29kaW5nKSA6IG5ldyBCdWZmZXIoZGF0YSwgZW5jb2RpbmcpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB0b0J1ZmZlcjogdG9CdWZmZXJcbn07IiwidmFyIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xudmFyIFNlcXVlbnRpYWxFeGVjdXRvciA9IHJlcXVpcmUoJy4vc2VxdWVudGlhbF9leGVjdXRvcicpO1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIHVzZWQgdG8gcmVnaXN0ZXIgZ2xvYmFsIGV2ZW50IGxpc3RlbmVycyBmb3IgcmVxdWVzdCBidWlsZGluZ1xuICogYW5kIHNlbmRpbmcuXG4gKi9cbkFXUy5FdmVudExpc3RlbmVycyA9IHtcbiAgLyoqXG4gICAqIEAhYXR0cmlidXRlIFZBTElEQVRFX0NSRURFTlRJQUxTXG4gICAqICAgQSByZXF1ZXN0IGxpc3RlbmVyIHRoYXQgdmFsaWRhdGVzIHdoZXRoZXIgdGhlIHJlcXVlc3QgaXMgYmVpbmdcbiAgICogICBzZW50IHdpdGggY3JlZGVudGlhbHMuXG4gICAqICAgSGFuZGxlcyB0aGUge0FXUy5SZXF1ZXN0fnZhbGlkYXRlICd2YWxpZGF0ZScgUmVxdWVzdCBldmVudH1cbiAgICogICBAZXhhbXBsZSBTZW5kaW5nIGEgcmVxdWVzdCB3aXRob3V0IHZhbGlkYXRpbmcgY3JlZGVudGlhbHNcbiAgICogICAgIHZhciBsaXN0ZW5lciA9IEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlZBTElEQVRFX0NSRURFTlRJQUxTO1xuICAgKiAgICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcigndmFsaWRhdGUnLCBsaXN0ZW5lcik7XG4gICAqICAgQHJlYWRvbmx5XG4gICAqICAgQHJldHVybiBbRnVuY3Rpb25dXG4gICAqIEAhYXR0cmlidXRlIFZBTElEQVRFX1JFR0lPTlxuICAgKiAgIEEgcmVxdWVzdCBsaXN0ZW5lciB0aGF0IHZhbGlkYXRlcyB3aGV0aGVyIHRoZSByZWdpb24gaXMgc2V0XG4gICAqICAgZm9yIGEgcmVxdWVzdC5cbiAgICogICBIYW5kbGVzIHRoZSB7QVdTLlJlcXVlc3R+dmFsaWRhdGUgJ3ZhbGlkYXRlJyBSZXF1ZXN0IGV2ZW50fVxuICAgKiAgIEBleGFtcGxlIFNlbmRpbmcgYSByZXF1ZXN0IHdpdGhvdXQgdmFsaWRhdGluZyByZWdpb24gY29uZmlndXJhdGlvblxuICAgKiAgICAgdmFyIGxpc3RlbmVyID0gQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuVkFMSURBVEVfUkVHSU9OO1xuICAgKiAgICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcigndmFsaWRhdGUnLCBsaXN0ZW5lcik7XG4gICAqICAgQHJlYWRvbmx5XG4gICAqICAgQHJldHVybiBbRnVuY3Rpb25dXG4gICAqIEAhYXR0cmlidXRlIFZBTElEQVRFX1BBUkFNRVRFUlNcbiAgICogICBBIHJlcXVlc3QgbGlzdGVuZXIgdGhhdCB2YWxpZGF0ZXMgaW5wdXQgcGFyYW1ldGVycyBpbiBhIHJlcXVlc3QuXG4gICAqICAgSGFuZGxlcyB0aGUge0FXUy5SZXF1ZXN0fnZhbGlkYXRlICd2YWxpZGF0ZScgUmVxdWVzdCBldmVudH1cbiAgICogICBAZXhhbXBsZSBTZW5kaW5nIGEgcmVxdWVzdCB3aXRob3V0IHZhbGlkYXRpbmcgcGFyYW1ldGVyc1xuICAgKiAgICAgdmFyIGxpc3RlbmVyID0gQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuVkFMSURBVEVfUEFSQU1FVEVSUztcbiAgICogICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ3ZhbGlkYXRlJywgbGlzdGVuZXIpO1xuICAgKiAgIEBleGFtcGxlIERpc2FibGUgcGFyYW1ldGVyIHZhbGlkYXRpb24gZ2xvYmFsbHlcbiAgICogICAgIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLnJlbW92ZUxpc3RlbmVyKCd2YWxpZGF0ZScsXG4gICAqICAgICAgIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlZBTElEQVRFX1JFR0lPTik7XG4gICAqICAgQHJlYWRvbmx5XG4gICAqICAgQHJldHVybiBbRnVuY3Rpb25dXG4gICAqIEAhYXR0cmlidXRlIFNFTkRcbiAgICogICBBIHJlcXVlc3QgbGlzdGVuZXIgdGhhdCBpbml0aWF0ZXMgdGhlIEhUVFAgY29ubmVjdGlvbiBmb3IgYVxuICAgKiAgIHJlcXVlc3QgYmVpbmcgc2VudC4gSGFuZGxlcyB0aGUge0FXUy5SZXF1ZXN0fnNlbmQgJ3NlbmQnIFJlcXVlc3QgZXZlbnR9XG4gICAqICAgQGV4YW1wbGUgUmVwbGFjaW5nIHRoZSBIVFRQIGhhbmRsZXJcbiAgICogICAgIHZhciBsaXN0ZW5lciA9IEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlNFTkQ7XG4gICAqICAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdzZW5kJywgbGlzdGVuZXIpO1xuICAgKiAgICAgcmVxdWVzdC5vbignc2VuZCcsIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAqICAgICAgIGN1c3RvbUhhbmRsZXIuc2VuZChyZXNwb25zZSk7XG4gICAqICAgICB9KTtcbiAgICogICBAcmV0dXJuIFtGdW5jdGlvbl1cbiAgICogICBAcmVhZG9ubHlcbiAgICogQCFhdHRyaWJ1dGUgSFRUUF9EQVRBXG4gICAqICAgQSByZXF1ZXN0IGxpc3RlbmVyIHRoYXQgcmVhZHMgZGF0YSBmcm9tIHRoZSBIVFRQIGNvbm5lY3Rpb24gaW4gb3JkZXJcbiAgICogICB0byBidWlsZCB0aGUgcmVzcG9uc2UgZGF0YS5cbiAgICogICBIYW5kbGVzIHRoZSB7QVdTLlJlcXVlc3R+aHR0cERhdGEgJ2h0dHBEYXRhJyBSZXF1ZXN0IGV2ZW50fS5cbiAgICogICBSZW1vdmUgdGhpcyBoYW5kbGVyIGlmIHlvdSBhcmUgb3ZlcnJpZGluZyB0aGUgJ2h0dHBEYXRhJyBldmVudCBhbmRcbiAgICogICBkbyBub3Qgd2FudCBleHRyYSBkYXRhIHByb2Nlc3NpbmcgYW5kIGJ1ZmZlcmluZyBvdmVyaGVhZC5cbiAgICogICBAZXhhbXBsZSBEaXNhYmxpbmcgZGVmYXVsdCBkYXRhIHByb2Nlc3NpbmdcbiAgICogICAgIHZhciBsaXN0ZW5lciA9IEFXUy5FdmVudExpc3RlbmVycy5Db3JlLkhUVFBfREFUQTtcbiAgICogICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ2h0dHBEYXRhJywgbGlzdGVuZXIpO1xuICAgKiAgIEByZXR1cm4gW0Z1bmN0aW9uXVxuICAgKiAgIEByZWFkb25seVxuICAgKi9cbiAgQ29yZToge30gLyogZG9jIGhhY2sgKi9cbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGdldE9wZXJhdGlvbkF1dGh0eXBlKHJlcSkge1xuICBpZiAoIXJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHZhciBvcGVyYXRpb24gPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXTtcbiAgcmV0dXJuIG9wZXJhdGlvbiA/IG9wZXJhdGlvbi5hdXRodHlwZSA6ICcnO1xufVxuXG5BV1MuRXZlbnRMaXN0ZW5lcnMgPSB7XG4gIENvcmU6IG5ldyBTZXF1ZW50aWFsRXhlY3V0b3IoKS5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQsIGFkZEFzeW5jKSB7XG4gICAgYWRkQXN5bmMoJ1ZBTElEQVRFX0NSRURFTlRJQUxTJywgJ3ZhbGlkYXRlJyxcbiAgICAgICAgZnVuY3Rpb24gVkFMSURBVEVfQ1JFREVOVElBTFMocmVxLCBkb25lKSB7XG4gICAgICBpZiAoIXJlcS5zZXJ2aWNlLmFwaS5zaWduYXR1cmVWZXJzaW9uKSByZXR1cm4gZG9uZSgpOyAvLyBub25lXG4gICAgICByZXEuc2VydmljZS5jb25maWcuZ2V0Q3JlZGVudGlhbHMoZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXEucmVzcG9uc2UuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihlcnIsXG4gICAgICAgICAgICB7Y29kZTogJ0NyZWRlbnRpYWxzRXJyb3InLCBtZXNzYWdlOiAnTWlzc2luZyBjcmVkZW50aWFscyBpbiBjb25maWcnfSk7XG4gICAgICAgIH1cbiAgICAgICAgZG9uZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBhZGQoJ1ZBTElEQVRFX1JFR0lPTicsICd2YWxpZGF0ZScsIGZ1bmN0aW9uIFZBTElEQVRFX1JFR0lPTihyZXEpIHtcbiAgICAgIGlmICghcmVxLnNlcnZpY2UuY29uZmlnLnJlZ2lvbiAmJiAhcmVxLnNlcnZpY2UuaXNHbG9iYWxFbmRwb2ludCkge1xuICAgICAgICByZXEucmVzcG9uc2UuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSxcbiAgICAgICAgICB7Y29kZTogJ0NvbmZpZ0Vycm9yJywgbWVzc2FnZTogJ01pc3NpbmcgcmVnaW9uIGluIGNvbmZpZyd9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnQlVJTERfSURFTVBPVEVOQ1lfVE9LRU5TJywgJ3ZhbGlkYXRlJywgZnVuY3Rpb24gQlVJTERfSURFTVBPVEVOQ1lfVE9LRU5TKHJlcSkge1xuICAgICAgaWYgKCFyZXEuc2VydmljZS5hcGkub3BlcmF0aW9ucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgb3BlcmF0aW9uID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl07XG4gICAgICBpZiAoIW9wZXJhdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgaWRlbXBvdGVudE1lbWJlcnMgPSBvcGVyYXRpb24uaWRlbXBvdGVudE1lbWJlcnM7XG4gICAgICBpZiAoIWlkZW1wb3RlbnRNZW1iZXJzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyBjcmVhdGVzIGEgY29weSBvZiBwYXJhbXMgc28gdXNlcidzIHBhcmFtIG9iamVjdCBpc24ndCBtdXRhdGVkXG4gICAgICB2YXIgcGFyYW1zID0gQVdTLnV0aWwuY29weShyZXEucGFyYW1zKTtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBpTGVuID0gaWRlbXBvdGVudE1lbWJlcnMubGVuZ3RoOyBpIDwgaUxlbjsgaSsrKSB7XG4gICAgICAgIGlmICghcGFyYW1zW2lkZW1wb3RlbnRNZW1iZXJzW2ldXSkge1xuICAgICAgICAgIC8vIGFkZCB0aGUgbWVtYmVyXG4gICAgICAgICAgcGFyYW1zW2lkZW1wb3RlbnRNZW1iZXJzW2ldXSA9IEFXUy51dGlsLnV1aWQudjQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVxLnBhcmFtcyA9IHBhcmFtcztcbiAgICB9KTtcblxuICAgIGFkZCgnVkFMSURBVEVfUEFSQU1FVEVSUycsICd2YWxpZGF0ZScsIGZ1bmN0aW9uIFZBTElEQVRFX1BBUkFNRVRFUlMocmVxKSB7XG4gICAgICBpZiAoIXJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBydWxlcyA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dLmlucHV0O1xuICAgICAgdmFyIHZhbGlkYXRpb24gPSByZXEuc2VydmljZS5jb25maWcucGFyYW1WYWxpZGF0aW9uO1xuICAgICAgbmV3IEFXUy5QYXJhbVZhbGlkYXRvcih2YWxpZGF0aW9uKS52YWxpZGF0ZShydWxlcywgcmVxLnBhcmFtcyk7XG4gICAgfSk7XG5cbiAgICBhZGRBc3luYygnQ09NUFVURV9TSEEyNTYnLCAnYWZ0ZXJCdWlsZCcsIGZ1bmN0aW9uIENPTVBVVEVfU0hBMjU2KHJlcSwgZG9uZSkge1xuICAgICAgcmVxLmhhbHRIYW5kbGVyc09uRXJyb3IoKTtcbiAgICAgIGlmICghcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICAgICAgdmFyIGF1dGh0eXBlID0gb3BlcmF0aW9uID8gb3BlcmF0aW9uLmF1dGh0eXBlIDogJyc7XG4gICAgICBpZiAoIXJlcS5zZXJ2aWNlLmFwaS5zaWduYXR1cmVWZXJzaW9uICYmICFhdXRodHlwZSkgcmV0dXJuIGRvbmUoKTsgLy8gbm9uZVxuICAgICAgaWYgKHJlcS5zZXJ2aWNlLmdldFNpZ25lckNsYXNzKHJlcSkgPT09IEFXUy5TaWduZXJzLlY0KSB7XG4gICAgICAgIHZhciBib2R5ID0gcmVxLmh0dHBSZXF1ZXN0LmJvZHkgfHwgJyc7XG4gICAgICAgIGlmIChhdXRodHlwZS5pbmRleE9mKCd1bnNpZ25lZC1ib2R5JykgPj0gMCkge1xuICAgICAgICAgIHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydYLUFtei1Db250ZW50LVNoYTI1NiddID0gJ1VOU0lHTkVELVBBWUxPQUQnO1xuICAgICAgICAgIHJldHVybiBkb25lKCk7XG4gICAgICAgIH1cbiAgICAgICAgQVdTLnV0aWwuY29tcHV0ZVNoYTI1Nihib2R5LCBmdW5jdGlvbihlcnIsIHNoYSkge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGRvbmUoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snWC1BbXotQ29udGVudC1TaGEyNTYnXSA9IHNoYTtcbiAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkKCdTRVRfQ09OVEVOVF9MRU5HVEgnLCAnYWZ0ZXJCdWlsZCcsIGZ1bmN0aW9uIFNFVF9DT05URU5UX0xFTkdUSChyZXEpIHtcbiAgICAgIHZhciBhdXRodHlwZSA9IGdldE9wZXJhdGlvbkF1dGh0eXBlKHJlcSk7XG4gICAgICBpZiAocmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBsZW5ndGggPSBBV1MudXRpbC5zdHJpbmcuYnl0ZUxlbmd0aChyZXEuaHR0cFJlcXVlc3QuYm9keSk7XG4gICAgICAgICAgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ10gPSBsZW5ndGg7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChhdXRodHlwZS5pbmRleE9mKCd1bnNpZ25lZC1ib2R5JykgPT09IC0xKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEJvZHkgaXNuJ3Qgc2lnbmVkIGFuZCBtYXkgbm90IG5lZWQgY29udGVudCBsZW5ndGggKGxleClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnU0VUX0hUVFBfSE9TVCcsICdhZnRlckJ1aWxkJywgZnVuY3Rpb24gU0VUX0hUVFBfSE9TVChyZXEpIHtcbiAgICAgIHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydIb3N0J10gPSByZXEuaHR0cFJlcXVlc3QuZW5kcG9pbnQuaG9zdDtcbiAgICB9KTtcblxuICAgIGFkZCgnUkVTVEFSVCcsICdyZXN0YXJ0JywgZnVuY3Rpb24gUkVTVEFSVCgpIHtcbiAgICAgIHZhciBlcnIgPSB0aGlzLnJlc3BvbnNlLmVycm9yO1xuICAgICAgaWYgKCFlcnIgfHwgIWVyci5yZXRyeWFibGUpIHJldHVybjtcblxuICAgICAgdGhpcy5odHRwUmVxdWVzdCA9IG5ldyBBV1MuSHR0cFJlcXVlc3QoXG4gICAgICAgIHRoaXMuc2VydmljZS5lbmRwb2ludCxcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnJlZ2lvblxuICAgICAgKTtcblxuICAgICAgaWYgKHRoaXMucmVzcG9uc2UucmV0cnlDb3VudCA8IHRoaXMuc2VydmljZS5jb25maWcubWF4UmV0cmllcykge1xuICAgICAgICB0aGlzLnJlc3BvbnNlLnJldHJ5Q291bnQrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVzcG9uc2UuZXJyb3IgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkQXN5bmMoJ1NJR04nLCAnc2lnbicsIGZ1bmN0aW9uIFNJR04ocmVxLCBkb25lKSB7XG4gICAgICB2YXIgc2VydmljZSA9IHJlcS5zZXJ2aWNlO1xuICAgICAgdmFyIG9wZXJhdGlvbnMgPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9ucyB8fCB7fTtcbiAgICAgIHZhciBvcGVyYXRpb24gPSBvcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICAgICAgdmFyIGF1dGh0eXBlID0gb3BlcmF0aW9uID8gb3BlcmF0aW9uLmF1dGh0eXBlIDogJyc7XG4gICAgICBpZiAoIXNlcnZpY2UuYXBpLnNpZ25hdHVyZVZlcnNpb24gJiYgIWF1dGh0eXBlKSByZXR1cm4gZG9uZSgpOyAvLyBub25lXG5cbiAgICAgIHNlcnZpY2UuY29uZmlnLmdldENyZWRlbnRpYWxzKGZ1bmN0aW9uIChlcnIsIGNyZWRlbnRpYWxzKSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXEucmVzcG9uc2UuZXJyb3IgPSBlcnI7XG4gICAgICAgICAgcmV0dXJuIGRvbmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIGRhdGUgPSBzZXJ2aWNlLmdldFNrZXdDb3JyZWN0ZWREYXRlKCk7XG4gICAgICAgICAgdmFyIFNpZ25lckNsYXNzID0gc2VydmljZS5nZXRTaWduZXJDbGFzcyhyZXEpO1xuICAgICAgICAgIHZhciBzaWduZXIgPSBuZXcgU2lnbmVyQ2xhc3MocmVxLmh0dHBSZXF1ZXN0LFxuICAgICAgICAgICAgc2VydmljZS5hcGkuc2lnbmluZ05hbWUgfHwgc2VydmljZS5hcGkuZW5kcG9pbnRQcmVmaXgsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNpZ25hdHVyZUNhY2hlOiBzZXJ2aWNlLmNvbmZpZy5zaWduYXR1cmVDYWNoZSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiBvcGVyYXRpb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIHNpZ25lci5zZXRTZXJ2aWNlQ2xpZW50SWQoc2VydmljZS5fY2xpZW50SWQpO1xuXG4gICAgICAgICAgLy8gY2xlYXIgb2xkIGF1dGhvcml6YXRpb24gaGVhZGVyc1xuICAgICAgICAgIGRlbGV0ZSByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snQXV0aG9yaXphdGlvbiddO1xuICAgICAgICAgIGRlbGV0ZSByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snRGF0ZSddO1xuICAgICAgICAgIGRlbGV0ZSByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snWC1BbXotRGF0ZSddO1xuXG4gICAgICAgICAgLy8gYWRkIG5ldyBhdXRob3JpemF0aW9uXG4gICAgICAgICAgc2lnbmVyLmFkZEF1dGhvcml6YXRpb24oY3JlZGVudGlhbHMsIGRhdGUpO1xuICAgICAgICAgIHJlcS5zaWduZWRBdCA9IGRhdGU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICByZXEucmVzcG9uc2UuZXJyb3IgPSBlO1xuICAgICAgICB9XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYWRkKCdWQUxJREFURV9SRVNQT05TRScsICd2YWxpZGF0ZVJlc3BvbnNlJywgZnVuY3Rpb24gVkFMSURBVEVfUkVTUE9OU0UocmVzcCkge1xuICAgICAgaWYgKHRoaXMuc2VydmljZS5zdWNjZXNzZnVsUmVzcG9uc2UocmVzcCwgdGhpcykpIHtcbiAgICAgICAgcmVzcC5kYXRhID0ge307XG4gICAgICAgIHJlc3AuZXJyb3IgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcC5kYXRhID0gbnVsbDtcbiAgICAgICAgcmVzcC5lcnJvciA9IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLFxuICAgICAgICAgIHtjb2RlOiAnVW5rbm93bkVycm9yJywgbWVzc2FnZTogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuJ30pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkQXN5bmMoJ1NFTkQnLCAnc2VuZCcsIGZ1bmN0aW9uIFNFTkQocmVzcCwgZG9uZSkge1xuICAgICAgcmVzcC5odHRwUmVzcG9uc2UuX2Fib3J0Q2FsbGJhY2sgPSBkb25lO1xuICAgICAgcmVzcC5lcnJvciA9IG51bGw7XG4gICAgICByZXNwLmRhdGEgPSBudWxsO1xuXG4gICAgICBmdW5jdGlvbiBjYWxsYmFjayhodHRwUmVzcCkge1xuICAgICAgICByZXNwLmh0dHBSZXNwb25zZS5zdHJlYW0gPSBodHRwUmVzcDtcbiAgICAgICAgdmFyIHN0cmVhbSA9IHJlc3AucmVxdWVzdC5odHRwUmVxdWVzdC5zdHJlYW07XG4gICAgICAgIHZhciBzZXJ2aWNlID0gcmVzcC5yZXF1ZXN0LnNlcnZpY2U7XG4gICAgICAgIHZhciBhcGkgPSBzZXJ2aWNlLmFwaTtcbiAgICAgICAgdmFyIG9wZXJhdGlvbk5hbWUgPSByZXNwLnJlcXVlc3Qub3BlcmF0aW9uO1xuICAgICAgICB2YXIgb3BlcmF0aW9uID0gYXBpLm9wZXJhdGlvbnNbb3BlcmF0aW9uTmFtZV0gfHwge307XG5cbiAgICAgICAgaHR0cFJlc3Aub24oJ2hlYWRlcnMnLCBmdW5jdGlvbiBvbkhlYWRlcnMoc3RhdHVzQ29kZSwgaGVhZGVycywgc3RhdHVzTWVzc2FnZSkge1xuICAgICAgICAgIHJlc3AucmVxdWVzdC5lbWl0KFxuICAgICAgICAgICAgJ2h0dHBIZWFkZXJzJyxcbiAgICAgICAgICAgIFtzdGF0dXNDb2RlLCBoZWFkZXJzLCByZXNwLCBzdGF0dXNNZXNzYWdlXVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIXJlc3AuaHR0cFJlc3BvbnNlLnN0cmVhbWluZykge1xuICAgICAgICAgICAgaWYgKEFXUy5IdHRwQ2xpZW50LnN0cmVhbXNBcGlWZXJzaW9uID09PSAyKSB7IC8vIHN0cmVhbXMyIEFQSSBjaGVja1xuICAgICAgICAgICAgICAvLyBpZiB3ZSBkZXRlY3QgZXZlbnQgc3RyZWFtcywgd2UncmUgZ29pbmcgdG8gaGF2ZSB0b1xuICAgICAgICAgICAgICAvLyByZXR1cm4gdGhlIHN0cmVhbSBpbW1lZGlhdGVseVxuICAgICAgICAgICAgICBpZiAob3BlcmF0aW9uLmhhc0V2ZW50T3V0cHV0ICYmIHNlcnZpY2Uuc3VjY2Vzc2Z1bFJlc3BvbnNlKHJlc3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gc2tpcCByZWFkaW5nIHRoZSBJbmNvbWluZ1N0cmVhbVxuICAgICAgICAgICAgICAgIHJlc3AucmVxdWVzdC5lbWl0KCdodHRwRG9uZScpO1xuICAgICAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBodHRwUmVzcC5vbigncmVhZGFibGUnLCBmdW5jdGlvbiBvblJlYWRhYmxlKCkge1xuICAgICAgICAgICAgICAgIHZhciBkYXRhID0gaHR0cFJlc3AucmVhZCgpO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICByZXNwLnJlcXVlc3QuZW1pdCgnaHR0cERhdGEnLCBbZGF0YSwgcmVzcF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyBsZWdhY3kgc3RyZWFtcyBBUElcbiAgICAgICAgICAgICAgaHR0cFJlc3Aub24oJ2RhdGEnLCBmdW5jdGlvbiBvbkRhdGEoZGF0YSkge1xuICAgICAgICAgICAgICAgIHJlc3AucmVxdWVzdC5lbWl0KCdodHRwRGF0YScsIFtkYXRhLCByZXNwXSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaHR0cFJlc3Aub24oJ2VuZCcsIGZ1bmN0aW9uIG9uRW5kKCkge1xuICAgICAgICAgIGlmICghc3RyZWFtIHx8ICFzdHJlYW0uZGlkQ2FsbGJhY2spIHtcbiAgICAgICAgICAgIGlmIChBV1MuSHR0cENsaWVudC5zdHJlYW1zQXBpVmVyc2lvbiA9PT0gMiAmJiAob3BlcmF0aW9uLmhhc0V2ZW50T3V0cHV0ICYmIHNlcnZpY2Uuc3VjY2Vzc2Z1bFJlc3BvbnNlKHJlc3ApKSkge1xuICAgICAgICAgICAgICAvLyBkb24ndCBjb25jYXRlbmF0ZSByZXNwb25zZSBjaHVua3Mgd2hlbiBzdHJlYW1pbmcgZXZlbnQgc3RyZWFtIGRhdGEgd2hlbiByZXNwb25zZSBpcyBzdWNjZXNzZnVsXG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3AucmVxdWVzdC5lbWl0KCdodHRwRG9uZScpO1xuICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHByb2dyZXNzKGh0dHBSZXNwKSB7XG4gICAgICAgIGh0dHBSZXNwLm9uKCdzZW5kUHJvZ3Jlc3MnLCBmdW5jdGlvbiBvblNlbmRQcm9ncmVzcyh2YWx1ZSkge1xuICAgICAgICAgIHJlc3AucmVxdWVzdC5lbWl0KCdodHRwVXBsb2FkUHJvZ3Jlc3MnLCBbdmFsdWUsIHJlc3BdKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaHR0cFJlc3Aub24oJ3JlY2VpdmVQcm9ncmVzcycsIGZ1bmN0aW9uIG9uUmVjZWl2ZVByb2dyZXNzKHZhbHVlKSB7XG4gICAgICAgICAgcmVzcC5yZXF1ZXN0LmVtaXQoJ2h0dHBEb3dubG9hZFByb2dyZXNzJywgW3ZhbHVlLCByZXNwXSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBlcnJvcihlcnIpIHtcbiAgICAgICAgaWYgKGVyci5jb2RlICE9PSAnUmVxdWVzdEFib3J0ZWRFcnJvcicpIHtcbiAgICAgICAgICB2YXIgZXJyQ29kZSA9IGVyci5jb2RlID09PSAnVGltZW91dEVycm9yJyA/IGVyci5jb2RlIDogJ05ldHdvcmtpbmdFcnJvcic7XG4gICAgICAgICAgZXJyID0gQVdTLnV0aWwuZXJyb3IoZXJyLCB7XG4gICAgICAgICAgICBjb2RlOiBlcnJDb2RlLFxuICAgICAgICAgICAgcmVnaW9uOiByZXNwLnJlcXVlc3QuaHR0cFJlcXVlc3QucmVnaW9uLFxuICAgICAgICAgICAgaG9zdG5hbWU6IHJlc3AucmVxdWVzdC5odHRwUmVxdWVzdC5lbmRwb2ludC5ob3N0bmFtZSxcbiAgICAgICAgICAgIHJldHJ5YWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJlc3AuZXJyb3IgPSBlcnI7XG4gICAgICAgIHJlc3AucmVxdWVzdC5lbWl0KCdodHRwRXJyb3InLCBbcmVzcC5lcnJvciwgcmVzcF0sIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGV4ZWN1dGVTZW5kKCkge1xuICAgICAgICB2YXIgaHR0cCA9IEFXUy5IdHRwQ2xpZW50LmdldEluc3RhbmNlKCk7XG4gICAgICAgIHZhciBodHRwT3B0aW9ucyA9IHJlc3AucmVxdWVzdC5zZXJ2aWNlLmNvbmZpZy5odHRwT3B0aW9ucyB8fCB7fTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgc3RyZWFtID0gaHR0cC5oYW5kbGVSZXF1ZXN0KHJlc3AucmVxdWVzdC5odHRwUmVxdWVzdCwgaHR0cE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgZXJyb3IpO1xuICAgICAgICAgIHByb2dyZXNzKHN0cmVhbSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciB0aW1lRGlmZiA9IChyZXNwLnJlcXVlc3Quc2VydmljZS5nZXRTa2V3Q29ycmVjdGVkRGF0ZSgpIC0gdGhpcy5zaWduZWRBdCkgLyAxMDAwO1xuICAgICAgaWYgKHRpbWVEaWZmID49IDYwICogMTApIHsgLy8gaWYgd2Ugc2lnbmVkIDEwbWluIGFnbywgcmUtc2lnblxuICAgICAgICB0aGlzLmVtaXQoJ3NpZ24nLCBbdGhpc10sIGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgIGlmIChlcnIpIGRvbmUoZXJyKTtcbiAgICAgICAgICBlbHNlIGV4ZWN1dGVTZW5kKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhlY3V0ZVNlbmQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnSFRUUF9IRUFERVJTJywgJ2h0dHBIZWFkZXJzJyxcbiAgICAgICAgZnVuY3Rpb24gSFRUUF9IRUFERVJTKHN0YXR1c0NvZGUsIGhlYWRlcnMsIHJlc3AsIHN0YXR1c01lc3NhZ2UpIHtcbiAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgICAgcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzTWVzc2FnZSA9IHN0YXR1c01lc3NhZ2U7XG4gICAgICByZXNwLmh0dHBSZXNwb25zZS5oZWFkZXJzID0gaGVhZGVycztcbiAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLmJvZHkgPSBuZXcgQVdTLnV0aWwuQnVmZmVyKCcnKTtcbiAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLmJ1ZmZlcnMgPSBbXTtcbiAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLm51bUJ5dGVzID0gMDtcbiAgICAgIHZhciBkYXRlSGVhZGVyID0gaGVhZGVycy5kYXRlIHx8IGhlYWRlcnMuRGF0ZTtcbiAgICAgIHZhciBzZXJ2aWNlID0gcmVzcC5yZXF1ZXN0LnNlcnZpY2U7XG4gICAgICBpZiAoZGF0ZUhlYWRlcikge1xuICAgICAgICB2YXIgc2VydmVyVGltZSA9IERhdGUucGFyc2UoZGF0ZUhlYWRlcik7XG4gICAgICAgIGlmIChzZXJ2aWNlLmNvbmZpZy5jb3JyZWN0Q2xvY2tTa2V3XG4gICAgICAgICAgICAmJiBzZXJ2aWNlLmlzQ2xvY2tTa2V3ZWQoc2VydmVyVGltZSkpIHtcbiAgICAgICAgICBzZXJ2aWNlLmFwcGx5Q2xvY2tPZmZzZXQoc2VydmVyVGltZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnSFRUUF9EQVRBJywgJ2h0dHBEYXRhJywgZnVuY3Rpb24gSFRUUF9EQVRBKGNodW5rLCByZXNwKSB7XG4gICAgICBpZiAoY2h1bmspIHtcbiAgICAgICAgaWYgKEFXUy51dGlsLmlzTm9kZSgpKSB7XG4gICAgICAgICAgcmVzcC5odHRwUmVzcG9uc2UubnVtQnl0ZXMgKz0gY2h1bmsubGVuZ3RoO1xuXG4gICAgICAgICAgdmFyIHRvdGFsID0gcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVyc1snY29udGVudC1sZW5ndGgnXTtcbiAgICAgICAgICB2YXIgcHJvZ3Jlc3MgPSB7IGxvYWRlZDogcmVzcC5odHRwUmVzcG9uc2UubnVtQnl0ZXMsIHRvdGFsOiB0b3RhbCB9O1xuICAgICAgICAgIHJlc3AucmVxdWVzdC5lbWl0KCdodHRwRG93bmxvYWRQcm9ncmVzcycsIFtwcm9ncmVzcywgcmVzcF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzcC5odHRwUmVzcG9uc2UuYnVmZmVycy5wdXNoKG5ldyBBV1MudXRpbC5CdWZmZXIoY2h1bmspKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnSFRUUF9ET05FJywgJ2h0dHBEb25lJywgZnVuY3Rpb24gSFRUUF9ET05FKHJlc3ApIHtcbiAgICAgIC8vIGNvbnZlcnQgYnVmZmVycyBhcnJheSBpbnRvIHNpbmdsZSBidWZmZXJcbiAgICAgIGlmIChyZXNwLmh0dHBSZXNwb25zZS5idWZmZXJzICYmIHJlc3AuaHR0cFJlc3BvbnNlLmJ1ZmZlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB2YXIgYm9keSA9IEFXUy51dGlsLmJ1ZmZlci5jb25jYXQocmVzcC5odHRwUmVzcG9uc2UuYnVmZmVycyk7XG4gICAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLmJvZHkgPSBib2R5O1xuICAgICAgfVxuICAgICAgZGVsZXRlIHJlc3AuaHR0cFJlc3BvbnNlLm51bUJ5dGVzO1xuICAgICAgZGVsZXRlIHJlc3AuaHR0cFJlc3BvbnNlLmJ1ZmZlcnM7XG4gICAgfSk7XG5cbiAgICBhZGQoJ0ZJTkFMSVpFX0VSUk9SJywgJ3JldHJ5JywgZnVuY3Rpb24gRklOQUxJWkVfRVJST1IocmVzcCkge1xuICAgICAgaWYgKHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUpIHtcbiAgICAgICAgcmVzcC5lcnJvci5zdGF0dXNDb2RlID0gcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICAgICAgaWYgKHJlc3AuZXJyb3IucmV0cnlhYmxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXNwLmVycm9yLnJldHJ5YWJsZSA9IHRoaXMuc2VydmljZS5yZXRyeWFibGVFcnJvcihyZXNwLmVycm9yLCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkKCdJTlZBTElEQVRFX0NSRURFTlRJQUxTJywgJ3JldHJ5JywgZnVuY3Rpb24gSU5WQUxJREFURV9DUkVERU5USUFMUyhyZXNwKSB7XG4gICAgICBpZiAoIXJlc3AuZXJyb3IpIHJldHVybjtcbiAgICAgIHN3aXRjaCAocmVzcC5lcnJvci5jb2RlKSB7XG4gICAgICAgIGNhc2UgJ1JlcXVlc3RFeHBpcmVkJzogLy8gRUMyIG9ubHlcbiAgICAgICAgY2FzZSAnRXhwaXJlZFRva2VuRXhjZXB0aW9uJzpcbiAgICAgICAgY2FzZSAnRXhwaXJlZFRva2VuJzpcbiAgICAgICAgICByZXNwLmVycm9yLnJldHJ5YWJsZSA9IHRydWU7XG4gICAgICAgICAgcmVzcC5yZXF1ZXN0LnNlcnZpY2UuY29uZmlnLmNyZWRlbnRpYWxzLmV4cGlyZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkKCdFWFBJUkVEX1NJR05BVFVSRScsICdyZXRyeScsIGZ1bmN0aW9uIEVYUElSRURfU0lHTkFUVVJFKHJlc3ApIHtcbiAgICAgIHZhciBlcnIgPSByZXNwLmVycm9yO1xuICAgICAgaWYgKCFlcnIpIHJldHVybjtcbiAgICAgIGlmICh0eXBlb2YgZXJyLmNvZGUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBlcnIubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKGVyci5jb2RlLm1hdGNoKC9TaWduYXR1cmUvKSAmJiBlcnIubWVzc2FnZS5tYXRjaCgvZXhwaXJlZC8pKSB7XG4gICAgICAgICAgcmVzcC5lcnJvci5yZXRyeWFibGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGQoJ0NMT0NLX1NLRVdFRCcsICdyZXRyeScsIGZ1bmN0aW9uIENMT0NLX1NLRVdFRChyZXNwKSB7XG4gICAgICBpZiAoIXJlc3AuZXJyb3IpIHJldHVybjtcbiAgICAgIGlmICh0aGlzLnNlcnZpY2UuY2xvY2tTa2V3RXJyb3IocmVzcC5lcnJvcilcbiAgICAgICAgICAmJiB0aGlzLnNlcnZpY2UuY29uZmlnLmNvcnJlY3RDbG9ja1NrZXcpIHtcbiAgICAgICAgcmVzcC5lcnJvci5yZXRyeWFibGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkKCdSRURJUkVDVCcsICdyZXRyeScsIGZ1bmN0aW9uIFJFRElSRUNUKHJlc3ApIHtcbiAgICAgIGlmIChyZXNwLmVycm9yICYmIHJlc3AuZXJyb3Iuc3RhdHVzQ29kZSA+PSAzMDAgJiZcbiAgICAgICAgICByZXNwLmVycm9yLnN0YXR1c0NvZGUgPCA0MDAgJiYgcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVyc1snbG9jYXRpb24nXSkge1xuICAgICAgICB0aGlzLmh0dHBSZXF1ZXN0LmVuZHBvaW50ID1cbiAgICAgICAgICBuZXcgQVdTLkVuZHBvaW50KHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnNbJ2xvY2F0aW9uJ10pO1xuICAgICAgICB0aGlzLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0hvc3QnXSA9IHRoaXMuaHR0cFJlcXVlc3QuZW5kcG9pbnQuaG9zdDtcbiAgICAgICAgcmVzcC5lcnJvci5yZWRpcmVjdCA9IHRydWU7XG4gICAgICAgIHJlc3AuZXJyb3IucmV0cnlhYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZCgnUkVUUllfQ0hFQ0snLCAncmV0cnknLCBmdW5jdGlvbiBSRVRSWV9DSEVDSyhyZXNwKSB7XG4gICAgICBpZiAocmVzcC5lcnJvcikge1xuICAgICAgICBpZiAocmVzcC5lcnJvci5yZWRpcmVjdCAmJiByZXNwLnJlZGlyZWN0Q291bnQgPCByZXNwLm1heFJlZGlyZWN0cykge1xuICAgICAgICAgIHJlc3AuZXJyb3IucmV0cnlEZWxheSA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzcC5yZXRyeUNvdW50IDwgcmVzcC5tYXhSZXRyaWVzKSB7XG4gICAgICAgICAgcmVzcC5lcnJvci5yZXRyeURlbGF5ID0gdGhpcy5zZXJ2aWNlLnJldHJ5RGVsYXlzKHJlc3AucmV0cnlDb3VudCkgfHwgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkQXN5bmMoJ1JFU0VUX1JFVFJZX1NUQVRFJywgJ2FmdGVyUmV0cnknLCBmdW5jdGlvbiBSRVNFVF9SRVRSWV9TVEFURShyZXNwLCBkb25lKSB7XG4gICAgICB2YXIgZGVsYXksIHdpbGxSZXRyeSA9IGZhbHNlO1xuXG4gICAgICBpZiAocmVzcC5lcnJvcikge1xuICAgICAgICBkZWxheSA9IHJlc3AuZXJyb3IucmV0cnlEZWxheSB8fCAwO1xuICAgICAgICBpZiAocmVzcC5lcnJvci5yZXRyeWFibGUgJiYgcmVzcC5yZXRyeUNvdW50IDwgcmVzcC5tYXhSZXRyaWVzKSB7XG4gICAgICAgICAgcmVzcC5yZXRyeUNvdW50Kys7XG4gICAgICAgICAgd2lsbFJldHJ5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXNwLmVycm9yLnJlZGlyZWN0ICYmIHJlc3AucmVkaXJlY3RDb3VudCA8IHJlc3AubWF4UmVkaXJlY3RzKSB7XG4gICAgICAgICAgcmVzcC5yZWRpcmVjdENvdW50Kys7XG4gICAgICAgICAgd2lsbFJldHJ5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAod2lsbFJldHJ5KSB7XG4gICAgICAgIHJlc3AuZXJyb3IgPSBudWxsO1xuICAgICAgICBzZXRUaW1lb3V0KGRvbmUsIGRlbGF5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSksXG5cbiAgQ29yZVBvc3Q6IG5ldyBTZXF1ZW50aWFsRXhlY3V0b3IoKS5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQpIHtcbiAgICBhZGQoJ0VYVFJBQ1RfUkVRVUVTVF9JRCcsICdleHRyYWN0RGF0YScsIEFXUy51dGlsLmV4dHJhY3RSZXF1ZXN0SWQpO1xuICAgIGFkZCgnRVhUUkFDVF9SRVFVRVNUX0lEJywgJ2V4dHJhY3RFcnJvcicsIEFXUy51dGlsLmV4dHJhY3RSZXF1ZXN0SWQpO1xuXG4gICAgYWRkKCdFTk9URk9VTkRfRVJST1InLCAnaHR0cEVycm9yJywgZnVuY3Rpb24gRU5PVEZPVU5EX0VSUk9SKGVycikge1xuICAgICAgaWYgKGVyci5jb2RlID09PSAnTmV0d29ya2luZ0Vycm9yJyAmJiBlcnIuZXJybm8gPT09ICdFTk9URk9VTkQnKSB7XG4gICAgICAgIHZhciBtZXNzYWdlID0gJ0luYWNjZXNzaWJsZSBob3N0OiBgJyArIGVyci5ob3N0bmFtZSArXG4gICAgICAgICAgJ1xcJy4gVGhpcyBzZXJ2aWNlIG1heSBub3QgYmUgYXZhaWxhYmxlIGluIHRoZSBgJyArIGVyci5yZWdpb24gK1xuICAgICAgICAgICdcXCcgcmVnaW9uLic7XG4gICAgICAgIHRoaXMucmVzcG9uc2UuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IobWVzc2FnZSksIHtcbiAgICAgICAgICBjb2RlOiAnVW5rbm93bkVuZHBvaW50JyxcbiAgICAgICAgICByZWdpb246IGVyci5yZWdpb24sXG4gICAgICAgICAgaG9zdG5hbWU6IGVyci5ob3N0bmFtZSxcbiAgICAgICAgICByZXRyeWFibGU6IHRydWUsXG4gICAgICAgICAgb3JpZ2luYWxFcnJvcjogZXJyXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9KSxcblxuICBMb2dnZXI6IG5ldyBTZXF1ZW50aWFsRXhlY3V0b3IoKS5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQpIHtcbiAgICBhZGQoJ0xPR19SRVFVRVNUJywgJ2NvbXBsZXRlJywgZnVuY3Rpb24gTE9HX1JFUVVFU1QocmVzcCkge1xuICAgICAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgICAgIHZhciBsb2dnZXIgPSByZXEuc2VydmljZS5jb25maWcubG9nZ2VyO1xuICAgICAgaWYgKCFsb2dnZXIpIHJldHVybjtcbiAgICAgIGZ1bmN0aW9uIGZpbHRlclNlbnNpdGl2ZUxvZyhpbnB1dFNoYXBlLCBzaGFwZSkge1xuICAgICAgICBpZiAoIXNoYXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoaW5wdXRTaGFwZS50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnc3RydWN0dXJlJzpcbiAgICAgICAgICAgIHZhciBzdHJ1Y3QgPSB7fTtcbiAgICAgICAgICAgIEFXUy51dGlsLmVhY2goc2hhcGUsIGZ1bmN0aW9uKHN1YlNoYXBlTmFtZSwgc3ViU2hhcGUpIHtcbiAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpbnB1dFNoYXBlLm1lbWJlcnMsIHN1YlNoYXBlTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBzdHJ1Y3Rbc3ViU2hhcGVOYW1lXSA9IGZpbHRlclNlbnNpdGl2ZUxvZyhpbnB1dFNoYXBlLm1lbWJlcnNbc3ViU2hhcGVOYW1lXSwgc3ViU2hhcGUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0cnVjdFtzdWJTaGFwZU5hbWVdID0gc3ViU2hhcGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICByZXR1cm4gc3RydWN0XG4gICAgICAgICAgY2FzZSAnbGlzdCc6XG4gICAgICAgICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgICAgICAgQVdTLnV0aWwuYXJyYXlFYWNoKHNoYXBlLCBmdW5jdGlvbihzdWJTaGFwZSwgaW5kZXgpIHtcbiAgICAgICAgICAgICAgbGlzdC5wdXNoKGZpbHRlclNlbnNpdGl2ZUxvZyhpbnB1dFNoYXBlLm1lbWJlciwgc3ViU2hhcGUpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICByZXR1cm4gbGlzdDtcbiAgICAgICAgICBjYXNlICdtYXAnOlxuICAgICAgICAgICAgdmFyIG1hcCA9IHt9O1xuICAgICAgICAgICAgQVdTLnV0aWwuZWFjaChzaGFwZSwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgICBtYXBba2V5XSA9IGZpbHRlclNlbnNpdGl2ZUxvZyhpbnB1dFNoYXBlLnZhbHVlLCB2YWx1ZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKGlucHV0U2hhcGUuaXNTZW5zaXRpdmUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICcqKipTZW5zaXRpdmVJbmZvcm1hdGlvbioqKidcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBzaGFwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBidWlsZE1lc3NhZ2UoKSB7XG4gICAgICAgIHZhciB0aW1lID0gcmVzcC5yZXF1ZXN0LnNlcnZpY2UuZ2V0U2tld0NvcnJlY3RlZERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIHZhciBkZWx0YSA9ICh0aW1lIC0gcmVxLnN0YXJ0VGltZS5nZXRUaW1lKCkpIC8gMTAwMDtcbiAgICAgICAgdmFyIGFuc2kgPSBsb2dnZXIuaXNUVFkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHZhciBzdGF0dXMgPSByZXNwLmh0dHBSZXNwb25zZS5zdGF0dXNDb2RlO1xuICAgICAgICB2YXIgY2Vuc29yZWRQYXJhbXMgPSByZXEucGFyYW1zO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnMgJiZcbiAgICAgICAgICAgICAgcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl0gJiZcbiAgICAgICAgICAgICAgcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl0uaW5wdXRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGlucHV0U2hhcGUgPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXS5pbnB1dDtcbiAgICAgICAgICBjZW5zb3JlZFBhcmFtcyA9IGZpbHRlclNlbnNpdGl2ZUxvZyhpbnB1dFNoYXBlLCByZXEucGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFyYW1zID0gcmVxdWlyZSgndXRpbCcpLmluc3BlY3QoY2Vuc29yZWRQYXJhbXMsIHRydWUsIG51bGwpO1xuICAgICAgICB2YXIgbWVzc2FnZSA9ICcnO1xuICAgICAgICBpZiAoYW5zaSkgbWVzc2FnZSArPSAnXFx4MUJbMzNtJztcbiAgICAgICAgbWVzc2FnZSArPSAnW0FXUyAnICsgcmVxLnNlcnZpY2Uuc2VydmljZUlkZW50aWZpZXIgKyAnICcgKyBzdGF0dXM7XG4gICAgICAgIG1lc3NhZ2UgKz0gJyAnICsgZGVsdGEudG9TdHJpbmcoKSArICdzICcgKyByZXNwLnJldHJ5Q291bnQgKyAnIHJldHJpZXNdJztcbiAgICAgICAgaWYgKGFuc2kpIG1lc3NhZ2UgKz0gJ1xceDFCWzA7MW0nO1xuICAgICAgICBtZXNzYWdlICs9ICcgJyArIEFXUy51dGlsLnN0cmluZy5sb3dlckZpcnN0KHJlcS5vcGVyYXRpb24pO1xuICAgICAgICBtZXNzYWdlICs9ICcoJyArIHBhcmFtcyArICcpJztcbiAgICAgICAgaWYgKGFuc2kpIG1lc3NhZ2UgKz0gJ1xceDFCWzBtJztcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICB9XG5cbiAgICAgIHZhciBsaW5lID0gYnVpbGRNZXNzYWdlKCk7XG4gICAgICBpZiAodHlwZW9mIGxvZ2dlci5sb2cgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhsaW5lKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGxvZ2dlci53cml0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBsb2dnZXIud3JpdGUobGluZSArICdcXG4nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSksXG5cbiAgSnNvbjogbmV3IFNlcXVlbnRpYWxFeGVjdXRvcigpLmFkZE5hbWVkTGlzdGVuZXJzKGZ1bmN0aW9uKGFkZCkge1xuICAgIHZhciBzdmMgPSByZXF1aXJlKCcuL3Byb3RvY29sL2pzb24nKTtcbiAgICBhZGQoJ0JVSUxEJywgJ2J1aWxkJywgc3ZjLmJ1aWxkUmVxdWVzdCk7XG4gICAgYWRkKCdFWFRSQUNUX0RBVEEnLCAnZXh0cmFjdERhdGEnLCBzdmMuZXh0cmFjdERhdGEpO1xuICAgIGFkZCgnRVhUUkFDVF9FUlJPUicsICdleHRyYWN0RXJyb3InLCBzdmMuZXh0cmFjdEVycm9yKTtcbiAgfSksXG5cbiAgUmVzdDogbmV3IFNlcXVlbnRpYWxFeGVjdXRvcigpLmFkZE5hbWVkTGlzdGVuZXJzKGZ1bmN0aW9uKGFkZCkge1xuICAgIHZhciBzdmMgPSByZXF1aXJlKCcuL3Byb3RvY29sL3Jlc3QnKTtcbiAgICBhZGQoJ0JVSUxEJywgJ2J1aWxkJywgc3ZjLmJ1aWxkUmVxdWVzdCk7XG4gICAgYWRkKCdFWFRSQUNUX0RBVEEnLCAnZXh0cmFjdERhdGEnLCBzdmMuZXh0cmFjdERhdGEpO1xuICAgIGFkZCgnRVhUUkFDVF9FUlJPUicsICdleHRyYWN0RXJyb3InLCBzdmMuZXh0cmFjdEVycm9yKTtcbiAgfSksXG5cbiAgUmVzdEpzb246IG5ldyBTZXF1ZW50aWFsRXhlY3V0b3IoKS5hZGROYW1lZExpc3RlbmVycyhmdW5jdGlvbihhZGQpIHtcbiAgICB2YXIgc3ZjID0gcmVxdWlyZSgnLi9wcm90b2NvbC9yZXN0X2pzb24nKTtcbiAgICBhZGQoJ0JVSUxEJywgJ2J1aWxkJywgc3ZjLmJ1aWxkUmVxdWVzdCk7XG4gICAgYWRkKCdFWFRSQUNUX0RBVEEnLCAnZXh0cmFjdERhdGEnLCBzdmMuZXh0cmFjdERhdGEpO1xuICAgIGFkZCgnRVhUUkFDVF9FUlJPUicsICdleHRyYWN0RXJyb3InLCBzdmMuZXh0cmFjdEVycm9yKTtcbiAgfSksXG5cbiAgUmVzdFhtbDogbmV3IFNlcXVlbnRpYWxFeGVjdXRvcigpLmFkZE5hbWVkTGlzdGVuZXJzKGZ1bmN0aW9uKGFkZCkge1xuICAgIHZhciBzdmMgPSByZXF1aXJlKCcuL3Byb3RvY29sL3Jlc3RfeG1sJyk7XG4gICAgYWRkKCdCVUlMRCcsICdidWlsZCcsIHN2Yy5idWlsZFJlcXVlc3QpO1xuICAgIGFkZCgnRVhUUkFDVF9EQVRBJywgJ2V4dHJhY3REYXRhJywgc3ZjLmV4dHJhY3REYXRhKTtcbiAgICBhZGQoJ0VYVFJBQ1RfRVJST1InLCAnZXh0cmFjdEVycm9yJywgc3ZjLmV4dHJhY3RFcnJvcik7XG4gIH0pLFxuXG4gIFF1ZXJ5OiBuZXcgU2VxdWVudGlhbEV4ZWN1dG9yKCkuYWRkTmFtZWRMaXN0ZW5lcnMoZnVuY3Rpb24oYWRkKSB7XG4gICAgdmFyIHN2YyA9IHJlcXVpcmUoJy4vcHJvdG9jb2wvcXVlcnknKTtcbiAgICBhZGQoJ0JVSUxEJywgJ2J1aWxkJywgc3ZjLmJ1aWxkUmVxdWVzdCk7XG4gICAgYWRkKCdFWFRSQUNUX0RBVEEnLCAnZXh0cmFjdERhdGEnLCBzdmMuZXh0cmFjdERhdGEpO1xuICAgIGFkZCgnRVhUUkFDVF9FUlJPUicsICdleHRyYWN0RXJyb3InLCBzdmMuZXh0cmFjdEVycm9yKTtcbiAgfSlcbn07XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi9jb3JlJyk7XG52YXIgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG5cbi8qKlxuICogVGhlIGVuZHBvaW50IHRoYXQgYSBzZXJ2aWNlIHdpbGwgdGFsayB0bywgZm9yIGV4YW1wbGUsXG4gKiBgJ2h0dHBzOi8vZWMyLmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20nYC4gSWZcbiAqIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGFuIGVuZHBvaW50IGZvciBhIHNlcnZpY2UsIHlvdSBjYW5cbiAqIHNldCB0aGUgZW5kcG9pbnQgb24gYSBzZXJ2aWNlIGJ5IHBhc3NpbmcgdGhlIGVuZHBvaW50XG4gKiBvYmplY3Qgd2l0aCB0aGUgYGVuZHBvaW50YCBvcHRpb24ga2V5OlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIHZhciBlcCA9IG5ldyBBV1MuRW5kcG9pbnQoJ2F3c3Byb3h5LmV4YW1wbGUuY29tJyk7XG4gKiB2YXIgczMgPSBuZXcgQVdTLlMzKHtlbmRwb2ludDogZXB9KTtcbiAqIHMzLnNlcnZpY2UuZW5kcG9pbnQuaG9zdG5hbWUgPT0gJ2F3c3Byb3h5LmV4YW1wbGUuY29tJ1xuICogYGBgXG4gKlxuICogTm90ZSB0aGF0IGlmIHlvdSBkbyBub3Qgc3BlY2lmeSBhIHByb3RvY29sLCB0aGUgcHJvdG9jb2wgd2lsbFxuICogYmUgc2VsZWN0ZWQgYmFzZWQgb24geW91ciBjdXJyZW50IHtBV1MuY29uZmlnfSBjb25maWd1cmF0aW9uLlxuICpcbiAqIEAhYXR0cmlidXRlIHByb3RvY29sXG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIHByb3RvY29sIChodHRwIG9yIGh0dHBzKSBvZiB0aGUgZW5kcG9pbnRcbiAqICAgICBVUkxcbiAqIEAhYXR0cmlidXRlIGhvc3RuYW1lXG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIGhvc3QgcG9ydGlvbiBvZiB0aGUgZW5kcG9pbnQsIGUuZy4sXG4gKiAgICAgZXhhbXBsZS5jb21cbiAqIEAhYXR0cmlidXRlIGhvc3RcbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgaG9zdCBwb3J0aW9uIG9mIHRoZSBlbmRwb2ludCBpbmNsdWRpbmdcbiAqICAgICB0aGUgcG9ydCwgZS5nLiwgZXhhbXBsZS5jb206ODBcbiAqIEAhYXR0cmlidXRlIHBvcnRcbiAqICAgQHJldHVybiBbSW50ZWdlcl0gdGhlIHBvcnQgb2YgdGhlIGVuZHBvaW50XG4gKiBAIWF0dHJpYnV0ZSBocmVmXG4gKiAgIEByZXR1cm4gW1N0cmluZ10gdGhlIGZ1bGwgVVJMIG9mIHRoZSBlbmRwb2ludFxuICovXG5BV1MuRW5kcG9pbnQgPSBpbmhlcml0KHtcblxuICAvKipcbiAgICogQG92ZXJsb2FkIEVuZHBvaW50KGVuZHBvaW50KVxuICAgKiAgIENvbnN0cnVjdHMgYSBuZXcgZW5kcG9pbnQgZ2l2ZW4gYW4gZW5kcG9pbnQgVVJMLiBJZiB0aGVcbiAgICogICBVUkwgb21pdHMgYSBwcm90b2NvbCAoaHR0cCBvciBodHRwcyksIHRoZSBkZWZhdWx0IHByb3RvY29sXG4gICAqICAgc2V0IGluIHRoZSBnbG9iYWwge0FXUy5jb25maWd9IHdpbGwgYmUgdXNlZC5cbiAgICogICBAcGFyYW0gZW5kcG9pbnQgW1N0cmluZ10gdGhlIFVSTCB0byBjb25zdHJ1Y3QgYW4gZW5kcG9pbnQgZnJvbVxuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIEVuZHBvaW50KGVuZHBvaW50LCBjb25maWcpIHtcbiAgICBBV1MudXRpbC5oaWRlUHJvcGVydGllcyh0aGlzLCBbJ3NsYXNoZXMnLCAnYXV0aCcsICdoYXNoJywgJ3NlYXJjaCcsICdxdWVyeSddKTtcblxuICAgIGlmICh0eXBlb2YgZW5kcG9pbnQgPT09ICd1bmRlZmluZWQnIHx8IGVuZHBvaW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZW5kcG9pbnQ6ICcgKyBlbmRwb2ludCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZW5kcG9pbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gQVdTLnV0aWwuY29weShlbmRwb2ludCk7XG4gICAgfVxuXG4gICAgaWYgKCFlbmRwb2ludC5tYXRjaCgvXmh0dHAvKSkge1xuICAgICAgdmFyIHVzZVNTTCA9IGNvbmZpZyAmJiBjb25maWcuc3NsRW5hYmxlZCAhPT0gdW5kZWZpbmVkID9cbiAgICAgICAgY29uZmlnLnNzbEVuYWJsZWQgOiBBV1MuY29uZmlnLnNzbEVuYWJsZWQ7XG4gICAgICBlbmRwb2ludCA9ICh1c2VTU0wgPyAnaHR0cHMnIDogJ2h0dHAnKSArICc6Ly8nICsgZW5kcG9pbnQ7XG4gICAgfVxuXG4gICAgQVdTLnV0aWwudXBkYXRlKHRoaXMsIEFXUy51dGlsLnVybFBhcnNlKGVuZHBvaW50KSk7XG5cbiAgICAvLyBFbnN1cmUgdGhlIHBvcnQgcHJvcGVydHkgaXMgc2V0IGFzIGFuIGludGVnZXJcbiAgICBpZiAodGhpcy5wb3J0KSB7XG4gICAgICB0aGlzLnBvcnQgPSBwYXJzZUludCh0aGlzLnBvcnQsIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3J0ID0gdGhpcy5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyA0NDMgOiA4MDtcbiAgICB9XG4gIH1cblxufSk7XG5cbi8qKlxuICogVGhlIGxvdyBsZXZlbCBIVFRQIHJlcXVlc3Qgb2JqZWN0LCBlbmNhcHN1bGF0aW5nIGFsbCBIVFRQIGhlYWRlclxuICogYW5kIGJvZHkgZGF0YSBzZW50IGJ5IGEgc2VydmljZSByZXF1ZXN0LlxuICpcbiAqIEAhYXR0cmlidXRlIG1ldGhvZFxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgcmVxdWVzdFxuICogQCFhdHRyaWJ1dGUgcGF0aFxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSBwYXRoIHBvcnRpb24gb2YgdGhlIFVSSSwgZS5nLixcbiAqICAgICBcIi9saXN0Lz9zdGFydD01Jm51bT0xMFwiXG4gKiBAIWF0dHJpYnV0ZSBoZWFkZXJzXG4gKiAgIEByZXR1cm4gW21hcDxTdHJpbmcsU3RyaW5nPl1cbiAqICAgICBhIG1hcCBvZiBoZWFkZXIga2V5cyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSB2YWx1ZXNcbiAqIEAhYXR0cmlidXRlIGJvZHlcbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgcmVxdWVzdCBib2R5IHBheWxvYWRcbiAqIEAhYXR0cmlidXRlIGVuZHBvaW50XG4gKiAgIEByZXR1cm4gW0FXUy5FbmRwb2ludF0gdGhlIGVuZHBvaW50IGZvciB0aGUgcmVxdWVzdFxuICogQCFhdHRyaWJ1dGUgcmVnaW9uXG4gKiAgIEBhcGkgcHJpdmF0ZVxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSByZWdpb24sIGZvciBzaWduaW5nIHB1cnBvc2VzIG9ubHkuXG4gKi9cbkFXUy5IdHRwUmVxdWVzdCA9IGluaGVyaXQoe1xuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBIdHRwUmVxdWVzdChlbmRwb2ludCwgcmVnaW9uKSB7XG4gICAgZW5kcG9pbnQgPSBuZXcgQVdTLkVuZHBvaW50KGVuZHBvaW50KTtcbiAgICB0aGlzLm1ldGhvZCA9ICdQT1NUJztcbiAgICB0aGlzLnBhdGggPSBlbmRwb2ludC5wYXRoIHx8ICcvJztcbiAgICB0aGlzLmhlYWRlcnMgPSB7fTtcbiAgICB0aGlzLmJvZHkgPSAnJztcbiAgICB0aGlzLmVuZHBvaW50ID0gZW5kcG9pbnQ7XG4gICAgdGhpcy5yZWdpb24gPSByZWdpb247XG4gICAgdGhpcy5fdXNlckFnZW50ID0gJyc7XG4gICAgdGhpcy5zZXRVc2VyQWdlbnQoKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXRVc2VyQWdlbnQ6IGZ1bmN0aW9uIHNldFVzZXJBZ2VudCgpIHtcbiAgICB0aGlzLl91c2VyQWdlbnQgPSB0aGlzLmhlYWRlcnNbdGhpcy5nZXRVc2VyQWdlbnRIZWFkZXJOYW1lKCldID0gQVdTLnV0aWwudXNlckFnZW50KCk7XG4gIH0sXG5cbiAgZ2V0VXNlckFnZW50SGVhZGVyTmFtZTogZnVuY3Rpb24gZ2V0VXNlckFnZW50SGVhZGVyTmFtZSgpIHtcbiAgICB2YXIgcHJlZml4ID0gQVdTLnV0aWwuaXNCcm93c2VyKCkgPyAnWC1BbXotJyA6ICcnO1xuICAgIHJldHVybiBwcmVmaXggKyAnVXNlci1BZ2VudCc7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYXBwZW5kVG9Vc2VyQWdlbnQ6IGZ1bmN0aW9uIGFwcGVuZFRvVXNlckFnZW50KGFnZW50UGFydGlhbCkge1xuICAgIGlmICh0eXBlb2YgYWdlbnRQYXJ0aWFsID09PSAnc3RyaW5nJyAmJiBhZ2VudFBhcnRpYWwpIHtcbiAgICAgIHRoaXMuX3VzZXJBZ2VudCArPSAnICcgKyBhZ2VudFBhcnRpYWw7XG4gICAgfVxuICAgIHRoaXMuaGVhZGVyc1t0aGlzLmdldFVzZXJBZ2VudEhlYWRlck5hbWUoKV0gPSB0aGlzLl91c2VyQWdlbnQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0VXNlckFnZW50OiBmdW5jdGlvbiBnZXRVc2VyQWdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXJBZ2VudDtcbiAgfSxcblxuICAvKipcbiAgICogQHJldHVybiBbU3RyaW5nXSB0aGUgcGFydCBvZiB0aGUge3BhdGh9IGV4Y2x1ZGluZyB0aGVcbiAgICogICBxdWVyeSBzdHJpbmdcbiAgICovXG4gIHBhdGhuYW1lOiBmdW5jdGlvbiBwYXRobmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXRoLnNwbGl0KCc/JywgMSlbMF07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW1N0cmluZ10gdGhlIHF1ZXJ5IHN0cmluZyBwb3J0aW9uIG9mIHRoZSB7cGF0aH1cbiAgICovXG4gIHNlYXJjaDogZnVuY3Rpb24gc2VhcmNoKCkge1xuICAgIHZhciBxdWVyeSA9IHRoaXMucGF0aC5zcGxpdCgnPycsIDIpWzFdO1xuICAgIGlmIChxdWVyeSkge1xuICAgICAgcXVlcnkgPSBBV1MudXRpbC5xdWVyeVN0cmluZ1BhcnNlKHF1ZXJ5KTtcbiAgICAgIHJldHVybiBBV1MudXRpbC5xdWVyeVBhcmFtc1RvU3RyaW5nKHF1ZXJ5KTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbn0pO1xuXG4vKipcbiAqIFRoZSBsb3cgbGV2ZWwgSFRUUCByZXNwb25zZSBvYmplY3QsIGVuY2Fwc3VsYXRpbmcgYWxsIEhUVFAgaGVhZGVyXG4gKiBhbmQgYm9keSBkYXRhIHJldHVybmVkIGZyb20gdGhlIHJlcXVlc3QuXG4gKlxuICogQCFhdHRyaWJ1dGUgc3RhdHVzQ29kZVxuICogICBAcmV0dXJuIFtJbnRlZ2VyXSB0aGUgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UgKGUuZy4sIDIwMCwgNDA0KVxuICogQCFhdHRyaWJ1dGUgaGVhZGVyc1xuICogICBAcmV0dXJuIFttYXA8U3RyaW5nLFN0cmluZz5dXG4gKiAgICAgIGEgbWFwIG9mIHJlc3BvbnNlIGhlYWRlciBrZXlzIGFuZCB0aGVpciByZXNwZWN0aXZlIHZhbHVlc1xuICogQCFhdHRyaWJ1dGUgYm9keVxuICogICBAcmV0dXJuIFtTdHJpbmddIHRoZSByZXNwb25zZSBib2R5IHBheWxvYWRcbiAqIEAhYXR0cmlidXRlIFtyXSBzdHJlYW1pbmdcbiAqICAgQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0aGlzIHJlc3BvbnNlIGlzIGJlaW5nIHN0cmVhbWVkIGF0IGEgbG93LWxldmVsLlxuICogICAgIERlZmF1bHRzIHRvIGBmYWxzZWAgKGJ1ZmZlcmVkIHJlYWRzKS4gRG8gbm90IG1vZGlmeSB0aGlzIG1hbnVhbGx5LCB1c2VcbiAqICAgICB7Y3JlYXRlVW5idWZmZXJlZFN0cmVhbX0gdG8gY29udmVydCB0aGUgc3RyZWFtIHRvIHVuYnVmZmVyZWQgbW9kZVxuICogICAgIGluc3RlYWQuXG4gKi9cbkFXUy5IdHRwUmVzcG9uc2UgPSBpbmhlcml0KHtcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gSHR0cFJlc3BvbnNlKCkge1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmhlYWRlcnMgPSB7fTtcbiAgICB0aGlzLmJvZHkgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zdHJlYW1pbmcgPSBmYWxzZTtcbiAgICB0aGlzLnN0cmVhbSA9IG51bGw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERpc2FibGVzIGJ1ZmZlcmluZyBvbiB0aGUgSFRUUCByZXNwb25zZSBhbmQgcmV0dXJucyB0aGUgc3RyZWFtIGZvciByZWFkaW5nLlxuICAgKiBAcmV0dXJuIFtTdHJlYW0sIFhNTEh0dHBSZXF1ZXN0LCBudWxsXSB0aGUgdW5kZXJseWluZyBzdHJlYW0gb2JqZWN0LlxuICAgKiAgIFVzZSB0aGlzIG9iamVjdCB0byBkaXJlY3RseSByZWFkIGRhdGEgb2ZmIG9mIHRoZSBzdHJlYW0uXG4gICAqIEBub3RlIFRoaXMgb2JqZWN0IGlzIG9ubHkgYXZhaWxhYmxlIGFmdGVyIHRoZSB7QVdTLlJlcXVlc3R+aHR0cEhlYWRlcnN9XG4gICAqICAgZXZlbnQgaGFzIGZpcmVkLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBwcmlvciB0b1xuICAgKiAgIHtBV1MuUmVxdWVzdH5odHRwRGF0YX0uXG4gICAqIEBleGFtcGxlIFRha2luZyBjb250cm9sIG9mIGEgc3RyZWFtXG4gICAqICAgcmVxdWVzdC5vbignaHR0cEhlYWRlcnMnLCBmdW5jdGlvbihzdGF0dXNDb2RlLCBoZWFkZXJzKSB7XG4gICAqICAgICBpZiAoc3RhdHVzQ29kZSA8IDMwMCkge1xuICAgKiAgICAgICBpZiAoaGVhZGVycy5ldGFnID09PSAneHl6Jykge1xuICAgKiAgICAgICAgIC8vIHBpcGUgdGhlIHN0cmVhbSwgZGlzYWJsaW5nIGJ1ZmZlcmluZ1xuICAgKiAgICAgICAgIHZhciBzdHJlYW0gPSB0aGlzLnJlc3BvbnNlLmh0dHBSZXNwb25zZS5jcmVhdGVVbmJ1ZmZlcmVkU3RyZWFtKCk7XG4gICAqICAgICAgICAgc3RyZWFtLnBpcGUocHJvY2Vzcy5zdGRvdXQpO1xuICAgKiAgICAgICB9IGVsc2UgeyAvLyBhYm9ydCB0aGlzIHJlcXVlc3QgYW5kIHNldCBhIGJldHRlciBlcnJvciBtZXNzYWdlXG4gICAqICAgICAgICAgdGhpcy5hYm9ydCgpO1xuICAgKiAgICAgICAgIHRoaXMucmVzcG9uc2UuZXJyb3IgPSBuZXcgRXJyb3IoJ0ludmFsaWQgRVRhZycpO1xuICAgKiAgICAgICB9XG4gICAqICAgICB9XG4gICAqICAgfSkuc2VuZChjb25zb2xlLmxvZyk7XG4gICAqL1xuICBjcmVhdGVVbmJ1ZmZlcmVkU3RyZWFtOiBmdW5jdGlvbiBjcmVhdGVVbmJ1ZmZlcmVkU3RyZWFtKCkge1xuICAgIHRoaXMuc3RyZWFtaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5zdHJlYW07XG4gIH1cbn0pO1xuXG5cbkFXUy5IdHRwQ2xpZW50ID0gaW5oZXJpdCh7fSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5IdHRwQ2xpZW50LmdldEluc3RhbmNlID0gZnVuY3Rpb24gZ2V0SW5zdGFuY2UoKSB7XG4gIGlmICh0aGlzLnNpbmdsZXRvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zaW5nbGV0b24gPSBuZXcgdGhpcygpO1xuICB9XG4gIHJldHVybiB0aGlzLnNpbmdsZXRvbjtcbn07XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJ2V2ZW50cycpLkV2ZW50RW1pdHRlcjtcbnJlcXVpcmUoJy4uL2h0dHAnKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlhIUkNsaWVudCA9IEFXUy51dGlsLmluaGVyaXQoe1xuICBoYW5kbGVSZXF1ZXN0OiBmdW5jdGlvbiBoYW5kbGVSZXF1ZXN0KGh0dHBSZXF1ZXN0LCBodHRwT3B0aW9ucywgY2FsbGJhY2ssIGVyckNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBlbmRwb2ludCA9IGh0dHBSZXF1ZXN0LmVuZHBvaW50O1xuICAgIHZhciBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHZhciBocmVmID0gZW5kcG9pbnQucHJvdG9jb2wgKyAnLy8nICsgZW5kcG9pbnQuaG9zdG5hbWU7XG4gICAgaWYgKGVuZHBvaW50LnBvcnQgIT09IDgwICYmIGVuZHBvaW50LnBvcnQgIT09IDQ0Mykge1xuICAgICAgaHJlZiArPSAnOicgKyBlbmRwb2ludC5wb3J0O1xuICAgIH1cbiAgICBocmVmICs9IGh0dHBSZXF1ZXN0LnBhdGg7XG5cbiAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCksIGhlYWRlcnNFbWl0dGVkID0gZmFsc2U7XG4gICAgaHR0cFJlcXVlc3Quc3RyZWFtID0geGhyO1xuXG4gICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoJ3JlYWR5c3RhdGVjaGFuZ2UnLCBmdW5jdGlvbigpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAwKSByZXR1cm47IC8vIDAgY29kZSBpcyBpbnZhbGlkXG4gICAgICB9IGNhdGNoIChlKSB7IHJldHVybjsgfVxuXG4gICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID49IHRoaXMuSEVBREVSU19SRUNFSVZFRCAmJiAhaGVhZGVyc0VtaXR0ZWQpIHtcbiAgICAgICAgZW1pdHRlci5zdGF0dXNDb2RlID0geGhyLnN0YXR1cztcbiAgICAgICAgZW1pdHRlci5oZWFkZXJzID0gc2VsZi5wYXJzZUhlYWRlcnMoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTtcbiAgICAgICAgZW1pdHRlci5lbWl0KFxuICAgICAgICAgICdoZWFkZXJzJyxcbiAgICAgICAgICBlbWl0dGVyLnN0YXR1c0NvZGUsXG4gICAgICAgICAgZW1pdHRlci5oZWFkZXJzLFxuICAgICAgICAgIHhoci5zdGF0dXNUZXh0XG4gICAgICAgICk7XG4gICAgICAgIGhlYWRlcnNFbWl0dGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT09IHRoaXMuRE9ORSkge1xuICAgICAgICBzZWxmLmZpbmlzaFJlcXVlc3QoeGhyLCBlbWl0dGVyKTtcbiAgICAgIH1cbiAgICB9LCBmYWxzZSk7XG4gICAgeGhyLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgIGVtaXR0ZXIuZW1pdCgnc2VuZFByb2dyZXNzJywgZXZ0KTtcbiAgICB9KTtcbiAgICB4aHIuYWRkRXZlbnRMaXN0ZW5lcigncHJvZ3Jlc3MnLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBlbWl0dGVyLmVtaXQoJ3JlY2VpdmVQcm9ncmVzcycsIGV2dCk7XG4gICAgfSwgZmFsc2UpO1xuICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCd0aW1lb3V0JywgZnVuY3Rpb24gKCkge1xuICAgICAgZXJyQ2FsbGJhY2soQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCdUaW1lb3V0JyksIHtjb2RlOiAnVGltZW91dEVycm9yJ30pKTtcbiAgICB9LCBmYWxzZSk7XG4gICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24gKCkge1xuICAgICAgZXJyQ2FsbGJhY2soQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCdOZXR3b3JrIEZhaWx1cmUnKSwge1xuICAgICAgICBjb2RlOiAnTmV0d29ya2luZ0Vycm9yJ1xuICAgICAgfSkpO1xuICAgIH0sIGZhbHNlKTtcbiAgICB4aHIuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBlcnJDYWxsYmFjayhBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoJ1JlcXVlc3QgYWJvcnRlZCcpLCB7XG4gICAgICAgIGNvZGU6ICdSZXF1ZXN0QWJvcnRlZEVycm9yJ1xuICAgICAgfSkpO1xuICAgIH0sIGZhbHNlKTtcblxuICAgIGNhbGxiYWNrKGVtaXR0ZXIpO1xuICAgIHhoci5vcGVuKGh0dHBSZXF1ZXN0Lm1ldGhvZCwgaHJlZiwgaHR0cE9wdGlvbnMueGhyQXN5bmMgIT09IGZhbHNlKTtcbiAgICBBV1MudXRpbC5lYWNoKGh0dHBSZXF1ZXN0LmhlYWRlcnMsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoa2V5ICE9PSAnQ29udGVudC1MZW5ndGgnICYmIGtleSAhPT0gJ1VzZXItQWdlbnQnICYmIGtleSAhPT0gJ0hvc3QnKSB7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGh0dHBPcHRpb25zLnRpbWVvdXQgJiYgaHR0cE9wdGlvbnMueGhyQXN5bmMgIT09IGZhbHNlKSB7XG4gICAgICB4aHIudGltZW91dCA9IGh0dHBPcHRpb25zLnRpbWVvdXQ7XG4gICAgfVxuXG4gICAgaWYgKGh0dHBPcHRpb25zLnhocldpdGhDcmVkZW50aWFscykge1xuICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWU7XG4gICAgfVxuICAgIHRyeSB7IHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOyB9IGNhdGNoIChlKSB7fVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChodHRwUmVxdWVzdC5ib2R5KSB7XG4gICAgICAgIHhoci5zZW5kKGh0dHBSZXF1ZXN0LmJvZHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgeGhyLnNlbmQoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChodHRwUmVxdWVzdC5ib2R5ICYmIHR5cGVvZiBodHRwUmVxdWVzdC5ib2R5LmJ1ZmZlciA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgeGhyLnNlbmQoaHR0cFJlcXVlc3QuYm9keS5idWZmZXIpOyAvLyBzZW5kIEFycmF5QnVmZmVyIGRpcmVjdGx5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVtaXR0ZXI7XG4gIH0sXG5cbiAgcGFyc2VIZWFkZXJzOiBmdW5jdGlvbiBwYXJzZUhlYWRlcnMocmF3SGVhZGVycykge1xuICAgIHZhciBoZWFkZXJzID0ge307XG4gICAgQVdTLnV0aWwuYXJyYXlFYWNoKHJhd0hlYWRlcnMuc3BsaXQoL1xccj9cXG4vKSwgZnVuY3Rpb24gKGxpbmUpIHtcbiAgICAgIHZhciBrZXkgPSBsaW5lLnNwbGl0KCc6JywgMSlbMF07XG4gICAgICB2YXIgdmFsdWUgPSBsaW5lLnN1YnN0cmluZyhrZXkubGVuZ3RoICsgMik7XG4gICAgICBpZiAoa2V5Lmxlbmd0aCA+IDApIGhlYWRlcnNba2V5LnRvTG93ZXJDYXNlKCldID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH0sXG5cbiAgZmluaXNoUmVxdWVzdDogZnVuY3Rpb24gZmluaXNoUmVxdWVzdCh4aHIsIGVtaXR0ZXIpIHtcbiAgICB2YXIgYnVmZmVyO1xuICAgIGlmICh4aHIucmVzcG9uc2VUeXBlID09PSAnYXJyYXlidWZmZXInICYmIHhoci5yZXNwb25zZSkge1xuICAgICAgdmFyIGFiID0geGhyLnJlc3BvbnNlO1xuICAgICAgYnVmZmVyID0gbmV3IEFXUy51dGlsLkJ1ZmZlcihhYi5ieXRlTGVuZ3RoKTtcbiAgICAgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWZmZXIubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgYnVmZmVyW2ldID0gdmlld1tpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgaWYgKCFidWZmZXIgJiYgdHlwZW9mIHhoci5yZXNwb25zZVRleHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGJ1ZmZlciA9IG5ldyBBV1MudXRpbC5CdWZmZXIoeGhyLnJlc3BvbnNlVGV4dCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge31cblxuICAgIGlmIChidWZmZXIpIGVtaXR0ZXIuZW1pdCgnZGF0YScsIGJ1ZmZlcik7XG4gICAgZW1pdHRlci5lbWl0KCdlbmQnKTtcbiAgfVxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5IdHRwQ2xpZW50LnByb3RvdHlwZSA9IEFXUy5YSFJDbGllbnQucHJvdG90eXBlO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuSHR0cENsaWVudC5zdHJlYW1zQXBpVmVyc2lvbiA9IDE7XG4iLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcblxuZnVuY3Rpb24gSnNvbkJ1aWxkZXIoKSB7IH1cblxuSnNvbkJ1aWxkZXIucHJvdG90eXBlLmJ1aWxkID0gZnVuY3Rpb24odmFsdWUsIHNoYXBlKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh0cmFuc2xhdGUodmFsdWUsIHNoYXBlKSk7XG59O1xuXG5mdW5jdGlvbiB0cmFuc2xhdGUodmFsdWUsIHNoYXBlKSB7XG4gIGlmICghc2hhcGUgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBzd2l0Y2ggKHNoYXBlLnR5cGUpIHtcbiAgICBjYXNlICdzdHJ1Y3R1cmUnOiByZXR1cm4gdHJhbnNsYXRlU3RydWN0dXJlKHZhbHVlLCBzaGFwZSk7XG4gICAgY2FzZSAnbWFwJzogcmV0dXJuIHRyYW5zbGF0ZU1hcCh2YWx1ZSwgc2hhcGUpO1xuICAgIGNhc2UgJ2xpc3QnOiByZXR1cm4gdHJhbnNsYXRlTGlzdCh2YWx1ZSwgc2hhcGUpO1xuICAgIGRlZmF1bHQ6IHJldHVybiB0cmFuc2xhdGVTY2FsYXIodmFsdWUsIHNoYXBlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVTdHJ1Y3R1cmUoc3RydWN0dXJlLCBzaGFwZSkge1xuICB2YXIgc3RydWN0ID0ge307XG4gIHV0aWwuZWFjaChzdHJ1Y3R1cmUsIGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7XG4gICAgdmFyIG1lbWJlclNoYXBlID0gc2hhcGUubWVtYmVyc1tuYW1lXTtcbiAgICBpZiAobWVtYmVyU2hhcGUpIHtcbiAgICAgIGlmIChtZW1iZXJTaGFwZS5sb2NhdGlvbiAhPT0gJ2JvZHknKSByZXR1cm47XG4gICAgICB2YXIgbG9jYXRpb25OYW1lID0gbWVtYmVyU2hhcGUuaXNMb2NhdGlvbk5hbWUgPyBtZW1iZXJTaGFwZS5uYW1lIDogbmFtZTtcbiAgICAgIHZhciByZXN1bHQgPSB0cmFuc2xhdGUodmFsdWUsIG1lbWJlclNoYXBlKTtcbiAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkgc3RydWN0W2xvY2F0aW9uTmFtZV0gPSByZXN1bHQ7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHN0cnVjdDtcbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlTGlzdChsaXN0LCBzaGFwZSkge1xuICB2YXIgb3V0ID0gW107XG4gIHV0aWwuYXJyYXlFYWNoKGxpc3QsIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgdmFyIHJlc3VsdCA9IHRyYW5zbGF0ZSh2YWx1ZSwgc2hhcGUubWVtYmVyKTtcbiAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIG91dC5wdXNoKHJlc3VsdCk7XG4gIH0pO1xuICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVNYXAobWFwLCBzaGFwZSkge1xuICB2YXIgb3V0ID0ge307XG4gIHV0aWwuZWFjaChtYXAsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICB2YXIgcmVzdWx0ID0gdHJhbnNsYXRlKHZhbHVlLCBzaGFwZS52YWx1ZSk7XG4gICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSBvdXRba2V5XSA9IHJlc3VsdDtcbiAgfSk7XG4gIHJldHVybiBvdXQ7XG59XG5cbmZ1bmN0aW9uIHRyYW5zbGF0ZVNjYWxhcih2YWx1ZSwgc2hhcGUpIHtcbiAgcmV0dXJuIHNoYXBlLnRvV2lyZUZvcm1hdCh2YWx1ZSk7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gSnNvbkJ1aWxkZXI7XG4iLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcblxuZnVuY3Rpb24gSnNvblBhcnNlcigpIHsgfVxuXG5Kc29uUGFyc2VyLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uKHZhbHVlLCBzaGFwZSkge1xuICByZXR1cm4gdHJhbnNsYXRlKEpTT04ucGFyc2UodmFsdWUpLCBzaGFwZSk7XG59O1xuXG5mdW5jdGlvbiB0cmFuc2xhdGUodmFsdWUsIHNoYXBlKSB7XG4gIGlmICghc2hhcGUgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBzd2l0Y2ggKHNoYXBlLnR5cGUpIHtcbiAgICBjYXNlICdzdHJ1Y3R1cmUnOiByZXR1cm4gdHJhbnNsYXRlU3RydWN0dXJlKHZhbHVlLCBzaGFwZSk7XG4gICAgY2FzZSAnbWFwJzogcmV0dXJuIHRyYW5zbGF0ZU1hcCh2YWx1ZSwgc2hhcGUpO1xuICAgIGNhc2UgJ2xpc3QnOiByZXR1cm4gdHJhbnNsYXRlTGlzdCh2YWx1ZSwgc2hhcGUpO1xuICAgIGRlZmF1bHQ6IHJldHVybiB0cmFuc2xhdGVTY2FsYXIodmFsdWUsIHNoYXBlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVTdHJ1Y3R1cmUoc3RydWN0dXJlLCBzaGFwZSkge1xuICBpZiAoc3RydWN0dXJlID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgdmFyIHN0cnVjdCA9IHt9O1xuICB2YXIgc2hhcGVNZW1iZXJzID0gc2hhcGUubWVtYmVycztcbiAgdXRpbC5lYWNoKHNoYXBlTWVtYmVycywgZnVuY3Rpb24obmFtZSwgbWVtYmVyU2hhcGUpIHtcbiAgICB2YXIgbG9jYXRpb25OYW1lID0gbWVtYmVyU2hhcGUuaXNMb2NhdGlvbk5hbWUgPyBtZW1iZXJTaGFwZS5uYW1lIDogbmFtZTtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0cnVjdHVyZSwgbG9jYXRpb25OYW1lKSkge1xuICAgICAgdmFyIHZhbHVlID0gc3RydWN0dXJlW2xvY2F0aW9uTmFtZV07XG4gICAgICB2YXIgcmVzdWx0ID0gdHJhbnNsYXRlKHZhbHVlLCBtZW1iZXJTaGFwZSk7XG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHN0cnVjdFtuYW1lXSA9IHJlc3VsdDtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc3RydWN0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVMaXN0KGxpc3QsIHNoYXBlKSB7XG4gIGlmIChsaXN0ID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgdmFyIG91dCA9IFtdO1xuICB1dGlsLmFycmF5RWFjaChsaXN0LCBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHZhciByZXN1bHQgPSB0cmFuc2xhdGUodmFsdWUsIHNoYXBlLm1lbWJlcik7XG4gICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBvdXQucHVzaChudWxsKTtcbiAgICBlbHNlIG91dC5wdXNoKHJlc3VsdCk7XG4gIH0pO1xuICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVNYXAobWFwLCBzaGFwZSkge1xuICBpZiAobWFwID09IG51bGwpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgdmFyIG91dCA9IHt9O1xuICB1dGlsLmVhY2gobWFwLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgdmFyIHJlc3VsdCA9IHRyYW5zbGF0ZSh2YWx1ZSwgc2hhcGUudmFsdWUpO1xuICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgb3V0W2tleV0gPSBudWxsO1xuICAgIGVsc2Ugb3V0W2tleV0gPSByZXN1bHQ7XG4gIH0pO1xuICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVTY2FsYXIodmFsdWUsIHNoYXBlKSB7XG4gIHJldHVybiBzaGFwZS50b1R5cGUodmFsdWUpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEpzb25QYXJzZXI7XG4iLCJ2YXIgQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4vY29sbGVjdGlvbicpO1xudmFyIE9wZXJhdGlvbiA9IHJlcXVpcmUoJy4vb3BlcmF0aW9uJyk7XG52YXIgU2hhcGUgPSByZXF1aXJlKCcuL3NoYXBlJyk7XG52YXIgUGFnaW5hdG9yID0gcmVxdWlyZSgnLi9wYWdpbmF0b3InKTtcbnZhciBSZXNvdXJjZVdhaXRlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2Vfd2FpdGVyJyk7XG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIHByb3BlcnR5ID0gdXRpbC5wcm9wZXJ0eTtcbnZhciBtZW1vaXplZFByb3BlcnR5ID0gdXRpbC5tZW1vaXplZFByb3BlcnR5O1xuXG5mdW5jdGlvbiBBcGkoYXBpLCBvcHRpb25zKSB7XG4gIGFwaSA9IGFwaSB8fCB7fTtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIG9wdGlvbnMuYXBpID0gdGhpcztcblxuICBhcGkubWV0YWRhdGEgPSBhcGkubWV0YWRhdGEgfHwge307XG5cbiAgcHJvcGVydHkodGhpcywgJ2lzQXBpJywgdHJ1ZSwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnYXBpVmVyc2lvbicsIGFwaS5tZXRhZGF0YS5hcGlWZXJzaW9uKTtcbiAgcHJvcGVydHkodGhpcywgJ2VuZHBvaW50UHJlZml4JywgYXBpLm1ldGFkYXRhLmVuZHBvaW50UHJlZml4KTtcbiAgcHJvcGVydHkodGhpcywgJ3NpZ25pbmdOYW1lJywgYXBpLm1ldGFkYXRhLnNpZ25pbmdOYW1lKTtcbiAgcHJvcGVydHkodGhpcywgJ2dsb2JhbEVuZHBvaW50JywgYXBpLm1ldGFkYXRhLmdsb2JhbEVuZHBvaW50KTtcbiAgcHJvcGVydHkodGhpcywgJ3NpZ25hdHVyZVZlcnNpb24nLCBhcGkubWV0YWRhdGEuc2lnbmF0dXJlVmVyc2lvbik7XG4gIHByb3BlcnR5KHRoaXMsICdqc29uVmVyc2lvbicsIGFwaS5tZXRhZGF0YS5qc29uVmVyc2lvbik7XG4gIHByb3BlcnR5KHRoaXMsICd0YXJnZXRQcmVmaXgnLCBhcGkubWV0YWRhdGEudGFyZ2V0UHJlZml4KTtcbiAgcHJvcGVydHkodGhpcywgJ3Byb3RvY29sJywgYXBpLm1ldGFkYXRhLnByb3RvY29sKTtcbiAgcHJvcGVydHkodGhpcywgJ3RpbWVzdGFtcEZvcm1hdCcsIGFwaS5tZXRhZGF0YS50aW1lc3RhbXBGb3JtYXQpO1xuICBwcm9wZXJ0eSh0aGlzLCAneG1sTmFtZXNwYWNlVXJpJywgYXBpLm1ldGFkYXRhLnhtbE5hbWVzcGFjZSk7XG4gIHByb3BlcnR5KHRoaXMsICdhYmJyZXZpYXRpb24nLCBhcGkubWV0YWRhdGEuc2VydmljZUFiYnJldmlhdGlvbik7XG4gIHByb3BlcnR5KHRoaXMsICdmdWxsTmFtZScsIGFwaS5tZXRhZGF0YS5zZXJ2aWNlRnVsbE5hbWUpO1xuXG4gIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ2NsYXNzTmFtZScsIGZ1bmN0aW9uKCkge1xuICAgIHZhciBuYW1lID0gYXBpLm1ldGFkYXRhLnNlcnZpY2VBYmJyZXZpYXRpb24gfHwgYXBpLm1ldGFkYXRhLnNlcnZpY2VGdWxsTmFtZTtcbiAgICBpZiAoIW5hbWUpIHJldHVybiBudWxsO1xuXG4gICAgbmFtZSA9IG5hbWUucmVwbGFjZSgvXkFtYXpvbnxBV1NcXHMqfFxcKC4qfFxccyt8XFxXKy9nLCAnJyk7XG4gICAgaWYgKG5hbWUgPT09ICdFbGFzdGljTG9hZEJhbGFuY2luZycpIG5hbWUgPSAnRUxCJztcbiAgICByZXR1cm4gbmFtZTtcbiAgfSk7XG5cbiAgcHJvcGVydHkodGhpcywgJ29wZXJhdGlvbnMnLCBuZXcgQ29sbGVjdGlvbihhcGkub3BlcmF0aW9ucywgb3B0aW9ucywgZnVuY3Rpb24obmFtZSwgb3BlcmF0aW9uKSB7XG4gICAgcmV0dXJuIG5ldyBPcGVyYXRpb24obmFtZSwgb3BlcmF0aW9uLCBvcHRpb25zKTtcbiAgfSwgdXRpbC5zdHJpbmcubG93ZXJGaXJzdCkpO1xuXG4gIHByb3BlcnR5KHRoaXMsICdzaGFwZXMnLCBuZXcgQ29sbGVjdGlvbihhcGkuc2hhcGVzLCBvcHRpb25zLCBmdW5jdGlvbihuYW1lLCBzaGFwZSkge1xuICAgIHJldHVybiBTaGFwZS5jcmVhdGUoc2hhcGUsIG9wdGlvbnMpO1xuICB9KSk7XG5cbiAgcHJvcGVydHkodGhpcywgJ3BhZ2luYXRvcnMnLCBuZXcgQ29sbGVjdGlvbihhcGkucGFnaW5hdG9ycywgb3B0aW9ucywgZnVuY3Rpb24obmFtZSwgcGFnaW5hdG9yKSB7XG4gICAgcmV0dXJuIG5ldyBQYWdpbmF0b3IobmFtZSwgcGFnaW5hdG9yLCBvcHRpb25zKTtcbiAgfSkpO1xuXG4gIHByb3BlcnR5KHRoaXMsICd3YWl0ZXJzJywgbmV3IENvbGxlY3Rpb24oYXBpLndhaXRlcnMsIG9wdGlvbnMsIGZ1bmN0aW9uKG5hbWUsIHdhaXRlcikge1xuICAgIHJldHVybiBuZXcgUmVzb3VyY2VXYWl0ZXIobmFtZSwgd2FpdGVyLCBvcHRpb25zKTtcbiAgfSwgdXRpbC5zdHJpbmcubG93ZXJGaXJzdCkpO1xuXG4gIGlmIChvcHRpb25zLmRvY3VtZW50YXRpb24pIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnZG9jdW1lbnRhdGlvbicsIGFwaS5kb2N1bWVudGF0aW9uKTtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnZG9jdW1lbnRhdGlvblVybCcsIGFwaS5kb2N1bWVudGF0aW9uVXJsKTtcbiAgfVxufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEFwaTtcbiIsInZhciBtZW1vaXplZFByb3BlcnR5ID0gcmVxdWlyZSgnLi4vdXRpbCcpLm1lbW9pemVkUHJvcGVydHk7XG5cbmZ1bmN0aW9uIG1lbW9pemUobmFtZSwgdmFsdWUsIGZuLCBuYW1lVHIpIHtcbiAgbWVtb2l6ZWRQcm9wZXJ0eSh0aGlzLCBuYW1lVHIobmFtZSksIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBmbihuYW1lLCB2YWx1ZSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBDb2xsZWN0aW9uKGl0ZXJhYmxlLCBvcHRpb25zLCBmbiwgbmFtZVRyKSB7XG4gIG5hbWVUciA9IG5hbWVUciB8fCBTdHJpbmc7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICBmb3IgKHZhciBpZCBpbiBpdGVyYWJsZSkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlcmFibGUsIGlkKSkge1xuICAgICAgbWVtb2l6ZS5jYWxsKHNlbGYsIGlkLCBpdGVyYWJsZVtpZF0sIGZuLCBuYW1lVHIpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IENvbGxlY3Rpb247XG4iLCJ2YXIgU2hhcGUgPSByZXF1aXJlKCcuL3NoYXBlJyk7XG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIHByb3BlcnR5ID0gdXRpbC5wcm9wZXJ0eTtcbnZhciBtZW1vaXplZFByb3BlcnR5ID0gdXRpbC5tZW1vaXplZFByb3BlcnR5O1xuXG5mdW5jdGlvbiBPcGVyYXRpb24obmFtZSwgb3BlcmF0aW9uLCBvcHRpb25zKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgcHJvcGVydHkodGhpcywgJ25hbWUnLCBvcGVyYXRpb24ubmFtZSB8fCBuYW1lKTtcbiAgcHJvcGVydHkodGhpcywgJ2FwaScsIG9wdGlvbnMuYXBpLCBmYWxzZSk7XG5cbiAgb3BlcmF0aW9uLmh0dHAgPSBvcGVyYXRpb24uaHR0cCB8fCB7fTtcbiAgcHJvcGVydHkodGhpcywgJ2h0dHBNZXRob2QnLCBvcGVyYXRpb24uaHR0cC5tZXRob2QgfHwgJ1BPU1QnKTtcbiAgcHJvcGVydHkodGhpcywgJ2h0dHBQYXRoJywgb3BlcmF0aW9uLmh0dHAucmVxdWVzdFVyaSB8fCAnLycpO1xuICBwcm9wZXJ0eSh0aGlzLCAnYXV0aHR5cGUnLCBvcGVyYXRpb24uYXV0aHR5cGUgfHwgJycpO1xuXG4gIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ2lucHV0JywgZnVuY3Rpb24oKSB7XG4gICAgaWYgKCFvcGVyYXRpb24uaW5wdXQpIHtcbiAgICAgIHJldHVybiBuZXcgU2hhcGUuY3JlYXRlKHt0eXBlOiAnc3RydWN0dXJlJ30sIG9wdGlvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gU2hhcGUuY3JlYXRlKG9wZXJhdGlvbi5pbnB1dCwgb3B0aW9ucyk7XG4gIH0pO1xuXG4gIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ291dHB1dCcsIGZ1bmN0aW9uKCkge1xuICAgIGlmICghb3BlcmF0aW9uLm91dHB1dCkge1xuICAgICAgcmV0dXJuIG5ldyBTaGFwZS5jcmVhdGUoe3R5cGU6ICdzdHJ1Y3R1cmUnfSwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiBTaGFwZS5jcmVhdGUob3BlcmF0aW9uLm91dHB1dCwgb3B0aW9ucyk7XG4gIH0pO1xuXG4gIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ2Vycm9ycycsIGZ1bmN0aW9uKCkge1xuICAgIHZhciBsaXN0ID0gW107XG4gICAgaWYgKCFvcGVyYXRpb24uZXJyb3JzKSByZXR1cm4gbnVsbDtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3BlcmF0aW9uLmVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgbGlzdC5wdXNoKFNoYXBlLmNyZWF0ZShvcGVyYXRpb24uZXJyb3JzW2ldLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3Q7XG4gIH0pO1xuXG4gIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ3BhZ2luYXRvcicsIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBvcHRpb25zLmFwaS5wYWdpbmF0b3JzW25hbWVdO1xuICB9KTtcblxuICBpZiAob3B0aW9ucy5kb2N1bWVudGF0aW9uKSB7XG4gICAgcHJvcGVydHkodGhpcywgJ2RvY3VtZW50YXRpb24nLCBvcGVyYXRpb24uZG9jdW1lbnRhdGlvbik7XG4gICAgcHJvcGVydHkodGhpcywgJ2RvY3VtZW50YXRpb25VcmwnLCBvcGVyYXRpb24uZG9jdW1lbnRhdGlvblVybCk7XG4gIH1cblxuICAvLyBpZGVtcG90ZW50TWVtYmVycyBvbmx5IHRyYWNrcyB0b3AtbGV2ZWwgaW5wdXQgc2hhcGVzXG4gIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ2lkZW1wb3RlbnRNZW1iZXJzJywgZnVuY3Rpb24oKSB7XG4gICAgdmFyIGlkZW1wb3RlbnRNZW1iZXJzID0gW107XG4gICAgdmFyIGlucHV0ID0gc2VsZi5pbnB1dDtcbiAgICB2YXIgbWVtYmVycyA9IGlucHV0Lm1lbWJlcnM7XG4gICAgaWYgKCFpbnB1dC5tZW1iZXJzKSB7XG4gICAgICByZXR1cm4gaWRlbXBvdGVudE1lbWJlcnM7XG4gICAgfVxuICAgIGZvciAodmFyIG5hbWUgaW4gbWVtYmVycykge1xuICAgICAgaWYgKCFtZW1iZXJzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKG1lbWJlcnNbbmFtZV0uaXNJZGVtcG90ZW50ID09PSB0cnVlKSB7XG4gICAgICAgIGlkZW1wb3RlbnRNZW1iZXJzLnB1c2gobmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZGVtcG90ZW50TWVtYmVycztcbiAgfSk7XG5cbiAgbWVtb2l6ZWRQcm9wZXJ0eSh0aGlzLCAnaGFzRXZlbnRPdXRwdXQnLCBmdW5jdGlvbigpIHtcbiAgICB2YXIgb3V0cHV0ID0gc2VsZi5vdXRwdXQ7XG4gICAgcmV0dXJuIGhhc0V2ZW50U3RyZWFtKG91dHB1dCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBoYXNFdmVudFN0cmVhbSh0b3BMZXZlbFNoYXBlKSB7XG4gIHZhciBtZW1iZXJzID0gdG9wTGV2ZWxTaGFwZS5tZW1iZXJzO1xuICB2YXIgcGF5bG9hZCA9IHRvcExldmVsU2hhcGUucGF5bG9hZDtcblxuICBpZiAoIXRvcExldmVsU2hhcGUubWVtYmVycykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChwYXlsb2FkKSB7XG4gICAgdmFyIHBheWxvYWRNZW1iZXIgPSBtZW1iZXJzW3BheWxvYWRdO1xuICAgIHJldHVybiBwYXlsb2FkTWVtYmVyLmlzRXZlbnRTdHJlYW07XG4gIH1cblxuICAvLyBjaGVjayBpZiBhbnkgbWVtYmVyIGlzIGFuIGV2ZW50IHN0cmVhbVxuICBmb3IgKHZhciBuYW1lIGluIG1lbWJlcnMpIHtcbiAgICBpZiAoIW1lbWJlcnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIGlmIChtZW1iZXJzW25hbWVdLmlzRXZlbnRTdHJlYW0gPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBPcGVyYXRpb247XG4iLCJ2YXIgcHJvcGVydHkgPSByZXF1aXJlKCcuLi91dGlsJykucHJvcGVydHk7XG5cbmZ1bmN0aW9uIFBhZ2luYXRvcihuYW1lLCBwYWdpbmF0b3IpIHtcbiAgcHJvcGVydHkodGhpcywgJ2lucHV0VG9rZW4nLCBwYWdpbmF0b3IuaW5wdXRfdG9rZW4pO1xuICBwcm9wZXJ0eSh0aGlzLCAnbGltaXRLZXknLCBwYWdpbmF0b3IubGltaXRfa2V5KTtcbiAgcHJvcGVydHkodGhpcywgJ21vcmVSZXN1bHRzJywgcGFnaW5hdG9yLm1vcmVfcmVzdWx0cyk7XG4gIHByb3BlcnR5KHRoaXMsICdvdXRwdXRUb2tlbicsIHBhZ2luYXRvci5vdXRwdXRfdG9rZW4pO1xuICBwcm9wZXJ0eSh0aGlzLCAncmVzdWx0S2V5JywgcGFnaW5hdG9yLnJlc3VsdF9rZXkpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IFBhZ2luYXRvcjtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIHByb3BlcnR5ID0gdXRpbC5wcm9wZXJ0eTtcblxuZnVuY3Rpb24gUmVzb3VyY2VXYWl0ZXIobmFtZSwgd2FpdGVyLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBwcm9wZXJ0eSh0aGlzLCAnbmFtZScsIG5hbWUpO1xuICBwcm9wZXJ0eSh0aGlzLCAnYXBpJywgb3B0aW9ucy5hcGksIGZhbHNlKTtcblxuICBpZiAod2FpdGVyLm9wZXJhdGlvbikge1xuICAgIHByb3BlcnR5KHRoaXMsICdvcGVyYXRpb24nLCB1dGlsLnN0cmluZy5sb3dlckZpcnN0KHdhaXRlci5vcGVyYXRpb24pKTtcbiAgfVxuXG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGtleXMgPSBbXG4gICAgJ3R5cGUnLFxuICAgICdkZXNjcmlwdGlvbicsXG4gICAgJ2RlbGF5JyxcbiAgICAnbWF4QXR0ZW1wdHMnLFxuICAgICdhY2NlcHRvcnMnXG4gIF07XG5cbiAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIHZhciB2YWx1ZSA9IHdhaXRlcltrZXldO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgcHJvcGVydHkoc2VsZiwga2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBSZXNvdXJjZVdhaXRlcjtcbiIsInZhciBDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9jb2xsZWN0aW9uJyk7XG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xuXG5mdW5jdGlvbiBwcm9wZXJ0eShvYmosIG5hbWUsIHZhbHVlKSB7XG4gIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdXRpbC5wcm9wZXJ0eS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1lbW9pemVkUHJvcGVydHkob2JqLCBuYW1lKSB7XG4gIGlmICghb2JqLmNvbnN0cnVjdG9yLnByb3RvdHlwZVtuYW1lXSkge1xuICAgIHV0aWwubWVtb2l6ZWRQcm9wZXJ0eS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIFNoYXBlKHNoYXBlLCBvcHRpb25zLCBtZW1iZXJOYW1lKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIHByb3BlcnR5KHRoaXMsICdzaGFwZScsIHNoYXBlLnNoYXBlKTtcbiAgcHJvcGVydHkodGhpcywgJ2FwaScsIG9wdGlvbnMuYXBpLCBmYWxzZSk7XG4gIHByb3BlcnR5KHRoaXMsICd0eXBlJywgc2hhcGUudHlwZSk7XG4gIHByb3BlcnR5KHRoaXMsICdlbnVtJywgc2hhcGUuZW51bSk7XG4gIHByb3BlcnR5KHRoaXMsICdtaW4nLCBzaGFwZS5taW4pO1xuICBwcm9wZXJ0eSh0aGlzLCAnbWF4Jywgc2hhcGUubWF4KTtcbiAgcHJvcGVydHkodGhpcywgJ3BhdHRlcm4nLCBzaGFwZS5wYXR0ZXJuKTtcbiAgcHJvcGVydHkodGhpcywgJ2xvY2F0aW9uJywgc2hhcGUubG9jYXRpb24gfHwgdGhpcy5sb2NhdGlvbiB8fCAnYm9keScpO1xuICBwcm9wZXJ0eSh0aGlzLCAnbmFtZScsIHRoaXMubmFtZSB8fCBzaGFwZS54bWxOYW1lIHx8IHNoYXBlLnF1ZXJ5TmFtZSB8fFxuICAgIHNoYXBlLmxvY2F0aW9uTmFtZSB8fCBtZW1iZXJOYW1lKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzU3RyZWFtaW5nJywgc2hhcGUuc3RyZWFtaW5nIHx8IHRoaXMuaXNTdHJlYW1pbmcgfHwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnaXNDb21wb3NpdGUnLCBzaGFwZS5pc0NvbXBvc2l0ZSB8fCBmYWxzZSk7XG4gIHByb3BlcnR5KHRoaXMsICdpc1NoYXBlJywgdHJ1ZSwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnaXNRdWVyeU5hbWUnLCBCb29sZWFuKHNoYXBlLnF1ZXJ5TmFtZSksIGZhbHNlKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzTG9jYXRpb25OYW1lJywgQm9vbGVhbihzaGFwZS5sb2NhdGlvbk5hbWUpLCBmYWxzZSk7XG4gIHByb3BlcnR5KHRoaXMsICdpc0lkZW1wb3RlbnQnLCBzaGFwZS5pZGVtcG90ZW5jeVRva2VuID09PSB0cnVlKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzSnNvblZhbHVlJywgc2hhcGUuanNvbnZhbHVlID09PSB0cnVlKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzU2Vuc2l0aXZlJywgc2hhcGUuc2Vuc2l0aXZlID09PSB0cnVlIHx8IHNoYXBlLnByb3RvdHlwZSAmJiBzaGFwZS5wcm90b3R5cGUuc2Vuc2l0aXZlID09PSB0cnVlKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzRXZlbnRTdHJlYW0nLCBCb29sZWFuKHNoYXBlLmV2ZW50c3RyZWFtKSwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnaXNFdmVudCcsIEJvb2xlYW4oc2hhcGUuZXZlbnQpLCBmYWxzZSk7XG4gIHByb3BlcnR5KHRoaXMsICdpc0V2ZW50UGF5bG9hZCcsIEJvb2xlYW4oc2hhcGUuZXZlbnRwYXlsb2FkKSwgZmFsc2UpO1xuICBwcm9wZXJ0eSh0aGlzLCAnaXNFdmVudEhlYWRlcicsIEJvb2xlYW4oc2hhcGUuZXZlbnRoZWFkZXIpLCBmYWxzZSk7XG5cbiAgaWYgKG9wdGlvbnMuZG9jdW1lbnRhdGlvbikge1xuICAgIHByb3BlcnR5KHRoaXMsICdkb2N1bWVudGF0aW9uJywgc2hhcGUuZG9jdW1lbnRhdGlvbik7XG4gICAgcHJvcGVydHkodGhpcywgJ2RvY3VtZW50YXRpb25VcmwnLCBzaGFwZS5kb2N1bWVudGF0aW9uVXJsKTtcbiAgfVxuXG4gIGlmIChzaGFwZS54bWxBdHRyaWJ1dGUpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnaXNYbWxBdHRyaWJ1dGUnLCBzaGFwZS54bWxBdHRyaWJ1dGUgfHwgZmFsc2UpO1xuICB9XG5cbiAgLy8gdHlwZSBjb252ZXJzaW9uIGFuZCBwYXJzaW5nXG4gIHByb3BlcnR5KHRoaXMsICdkZWZhdWx0VmFsdWUnLCBudWxsKTtcbiAgdGhpcy50b1dpcmVGb3JtYXQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xuICB0aGlzLnRvVHlwZSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuU2hhcGUubm9ybWFsaXplZFR5cGVzID0ge1xuICBjaGFyYWN0ZXI6ICdzdHJpbmcnLFxuICBkb3VibGU6ICdmbG9hdCcsXG4gIGxvbmc6ICdpbnRlZ2VyJyxcbiAgc2hvcnQ6ICdpbnRlZ2VyJyxcbiAgYmlnaW50ZWdlcjogJ2ludGVnZXInLFxuICBiaWdkZWNpbWFsOiAnZmxvYXQnLFxuICBibG9iOiAnYmluYXJ5J1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuU2hhcGUudHlwZXMgPSB7XG4gICdzdHJ1Y3R1cmUnOiBTdHJ1Y3R1cmVTaGFwZSxcbiAgJ2xpc3QnOiBMaXN0U2hhcGUsXG4gICdtYXAnOiBNYXBTaGFwZSxcbiAgJ2Jvb2xlYW4nOiBCb29sZWFuU2hhcGUsXG4gICd0aW1lc3RhbXAnOiBUaW1lc3RhbXBTaGFwZSxcbiAgJ2Zsb2F0JzogRmxvYXRTaGFwZSxcbiAgJ2ludGVnZXInOiBJbnRlZ2VyU2hhcGUsXG4gICdzdHJpbmcnOiBTdHJpbmdTaGFwZSxcbiAgJ2Jhc2U2NCc6IEJhc2U2NFNoYXBlLFxuICAnYmluYXJ5JzogQmluYXJ5U2hhcGVcbn07XG5cblNoYXBlLnJlc29sdmUgPSBmdW5jdGlvbiByZXNvbHZlKHNoYXBlLCBvcHRpb25zKSB7XG4gIGlmIChzaGFwZS5zaGFwZSkge1xuICAgIHZhciByZWZTaGFwZSA9IG9wdGlvbnMuYXBpLnNoYXBlc1tzaGFwZS5zaGFwZV07XG4gICAgaWYgKCFyZWZTaGFwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmluZCBzaGFwZSByZWZlcmVuY2U6ICcgKyBzaGFwZS5zaGFwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZlNoYXBlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5TaGFwZS5jcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUoc2hhcGUsIG9wdGlvbnMsIG1lbWJlck5hbWUpIHtcbiAgaWYgKHNoYXBlLmlzU2hhcGUpIHJldHVybiBzaGFwZTtcblxuICB2YXIgcmVmU2hhcGUgPSBTaGFwZS5yZXNvbHZlKHNoYXBlLCBvcHRpb25zKTtcbiAgaWYgKHJlZlNoYXBlKSB7XG4gICAgdmFyIGZpbHRlcmVkS2V5cyA9IE9iamVjdC5rZXlzKHNoYXBlKTtcbiAgICBpZiAoIW9wdGlvbnMuZG9jdW1lbnRhdGlvbikge1xuICAgICAgZmlsdGVyZWRLZXlzID0gZmlsdGVyZWRLZXlzLmZpbHRlcihmdW5jdGlvbihuYW1lKSB7XG4gICAgICAgIHJldHVybiAhbmFtZS5tYXRjaCgvZG9jdW1lbnRhdGlvbi8pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIGFuIGlubGluZSBzaGFwZSB3aXRoIGV4dHJhIG1lbWJlcnNcbiAgICB2YXIgSW5saW5lU2hhcGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJlZlNoYXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgc2hhcGUsIG9wdGlvbnMsIG1lbWJlck5hbWUpO1xuICAgIH07XG4gICAgSW5saW5lU2hhcGUucHJvdG90eXBlID0gcmVmU2hhcGU7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVTaGFwZSgpO1xuICB9IGVsc2Uge1xuICAgIC8vIHNldCB0eXBlIGlmIG5vdCBzZXRcbiAgICBpZiAoIXNoYXBlLnR5cGUpIHtcbiAgICAgIGlmIChzaGFwZS5tZW1iZXJzKSBzaGFwZS50eXBlID0gJ3N0cnVjdHVyZSc7XG4gICAgICBlbHNlIGlmIChzaGFwZS5tZW1iZXIpIHNoYXBlLnR5cGUgPSAnbGlzdCc7XG4gICAgICBlbHNlIGlmIChzaGFwZS5rZXkpIHNoYXBlLnR5cGUgPSAnbWFwJztcbiAgICAgIGVsc2Ugc2hhcGUudHlwZSA9ICdzdHJpbmcnO1xuICAgIH1cblxuICAgIC8vIG5vcm1hbGl6ZSB0eXBlc1xuICAgIHZhciBvcmlnVHlwZSA9IHNoYXBlLnR5cGU7XG4gICAgaWYgKFNoYXBlLm5vcm1hbGl6ZWRUeXBlc1tzaGFwZS50eXBlXSkge1xuICAgICAgc2hhcGUudHlwZSA9IFNoYXBlLm5vcm1hbGl6ZWRUeXBlc1tzaGFwZS50eXBlXTtcbiAgICB9XG5cbiAgICBpZiAoU2hhcGUudHlwZXNbc2hhcGUudHlwZV0pIHtcbiAgICAgIHJldHVybiBuZXcgU2hhcGUudHlwZXNbc2hhcGUudHlwZV0oc2hhcGUsIG9wdGlvbnMsIG1lbWJlck5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VucmVjb2duaXplZCBzaGFwZSB0eXBlOiAnICsgb3JpZ1R5cGUpO1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gQ29tcG9zaXRlU2hhcGUoc2hhcGUpIHtcbiAgU2hhcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgcHJvcGVydHkodGhpcywgJ2lzQ29tcG9zaXRlJywgdHJ1ZSk7XG5cbiAgaWYgKHNoYXBlLmZsYXR0ZW5lZCkge1xuICAgIHByb3BlcnR5KHRoaXMsICdmbGF0dGVuZWQnLCBzaGFwZS5mbGF0dGVuZWQgfHwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIFN0cnVjdHVyZVNoYXBlKHNoYXBlLCBvcHRpb25zKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHJlcXVpcmVkTWFwID0gbnVsbCwgZmlyc3RJbml0ID0gIXRoaXMuaXNTaGFwZTtcblxuICBDb21wb3NpdGVTaGFwZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gIGlmIChmaXJzdEluaXQpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnZGVmYXVsdFZhbHVlJywgZnVuY3Rpb24oKSB7IHJldHVybiB7fTsgfSk7XG4gICAgcHJvcGVydHkodGhpcywgJ21lbWJlcnMnLCB7fSk7XG4gICAgcHJvcGVydHkodGhpcywgJ21lbWJlck5hbWVzJywgW10pO1xuICAgIHByb3BlcnR5KHRoaXMsICdyZXF1aXJlZCcsIFtdKTtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnaXNSZXF1aXJlZCcsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0pO1xuICB9XG5cbiAgaWYgKHNoYXBlLm1lbWJlcnMpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnbWVtYmVycycsIG5ldyBDb2xsZWN0aW9uKHNoYXBlLm1lbWJlcnMsIG9wdGlvbnMsIGZ1bmN0aW9uKG5hbWUsIG1lbWJlcikge1xuICAgICAgcmV0dXJuIFNoYXBlLmNyZWF0ZShtZW1iZXIsIG9wdGlvbnMsIG5hbWUpO1xuICAgIH0pKTtcbiAgICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdtZW1iZXJOYW1lcycsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHNoYXBlLnhtbE9yZGVyIHx8IE9iamVjdC5rZXlzKHNoYXBlLm1lbWJlcnMpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNoYXBlLmV2ZW50KSB7XG4gICAgICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdldmVudFBheWxvYWRNZW1iZXJOYW1lJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBtZW1iZXJzID0gc2VsZi5tZW1iZXJzO1xuICAgICAgICB2YXIgbWVtYmVyTmFtZXMgPSBzZWxmLm1lbWJlck5hbWVzO1xuICAgICAgICAvLyBpdGVyYXRlIG92ZXIgbWVtYmVycyB0byBmaW5kIG9uZXMgdGhhdCBhcmUgZXZlbnQgcGF5bG9hZHNcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGlMZW4gPSBtZW1iZXJOYW1lcy5sZW5ndGg7IGkgPCBpTGVuOyBpKyspIHtcbiAgICAgICAgICBpZiAobWVtYmVyc1ttZW1iZXJOYW1lc1tpXV0uaXNFdmVudFBheWxvYWQpIHtcbiAgICAgICAgICAgIHJldHVybiBtZW1iZXJOYW1lc1tpXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBtZW1vaXplZFByb3BlcnR5KHRoaXMsICdldmVudEhlYWRlck1lbWJlck5hbWVzJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBtZW1iZXJzID0gc2VsZi5tZW1iZXJzO1xuICAgICAgICB2YXIgbWVtYmVyTmFtZXMgPSBzZWxmLm1lbWJlck5hbWVzO1xuICAgICAgICB2YXIgZXZlbnRIZWFkZXJNZW1iZXJOYW1lcyA9IFtdO1xuICAgICAgICAvLyBpdGVyYXRlIG92ZXIgbWVtYmVycyB0byBmaW5kIG9uZXMgdGhhdCBhcmUgZXZlbnQgaGVhZGVyc1xuICAgICAgICBmb3IgKHZhciBpID0gMCwgaUxlbiA9IG1lbWJlck5hbWVzLmxlbmd0aDsgaSA8IGlMZW47IGkrKykge1xuICAgICAgICAgIGlmIChtZW1iZXJzW21lbWJlck5hbWVzW2ldXS5pc0V2ZW50SGVhZGVyKSB7XG4gICAgICAgICAgICBldmVudEhlYWRlck1lbWJlck5hbWVzLnB1c2gobWVtYmVyTmFtZXNbaV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXZlbnRIZWFkZXJNZW1iZXJOYW1lcztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzaGFwZS5yZXF1aXJlZCkge1xuICAgIHByb3BlcnR5KHRoaXMsICdyZXF1aXJlZCcsIHNoYXBlLnJlcXVpcmVkKTtcbiAgICBwcm9wZXJ0eSh0aGlzLCAnaXNSZXF1aXJlZCcsIGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgIGlmICghcmVxdWlyZWRNYXApIHtcbiAgICAgICAgcmVxdWlyZWRNYXAgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaGFwZS5yZXF1aXJlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHJlcXVpcmVkTWFwW3NoYXBlLnJlcXVpcmVkW2ldXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlcXVpcmVkTWFwW25hbWVdO1xuICAgIH0sIGZhbHNlLCB0cnVlKTtcbiAgfVxuXG4gIHByb3BlcnR5KHRoaXMsICdyZXN1bHRXcmFwcGVyJywgc2hhcGUucmVzdWx0V3JhcHBlciB8fCBudWxsKTtcblxuICBpZiAoc2hhcGUucGF5bG9hZCkge1xuICAgIHByb3BlcnR5KHRoaXMsICdwYXlsb2FkJywgc2hhcGUucGF5bG9hZCk7XG4gIH1cblxuICBpZiAodHlwZW9mIHNoYXBlLnhtbE5hbWVzcGFjZSA9PT0gJ3N0cmluZycpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAneG1sTmFtZXNwYWNlVXJpJywgc2hhcGUueG1sTmFtZXNwYWNlKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygc2hhcGUueG1sTmFtZXNwYWNlID09PSAnb2JqZWN0Jykge1xuICAgIHByb3BlcnR5KHRoaXMsICd4bWxOYW1lc3BhY2VQcmVmaXgnLCBzaGFwZS54bWxOYW1lc3BhY2UucHJlZml4KTtcbiAgICBwcm9wZXJ0eSh0aGlzLCAneG1sTmFtZXNwYWNlVXJpJywgc2hhcGUueG1sTmFtZXNwYWNlLnVyaSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gTGlzdFNoYXBlKHNoYXBlLCBvcHRpb25zKSB7XG4gIHZhciBzZWxmID0gdGhpcywgZmlyc3RJbml0ID0gIXRoaXMuaXNTaGFwZTtcbiAgQ29tcG9zaXRlU2hhcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICBpZiAoZmlyc3RJbml0KSB7XG4gICAgcHJvcGVydHkodGhpcywgJ2RlZmF1bHRWYWx1ZScsIGZ1bmN0aW9uKCkgeyByZXR1cm4gW107IH0pO1xuICB9XG5cbiAgaWYgKHNoYXBlLm1lbWJlcikge1xuICAgIG1lbW9pemVkUHJvcGVydHkodGhpcywgJ21lbWJlcicsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFNoYXBlLmNyZWF0ZShzaGFwZS5tZW1iZXIsIG9wdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKHRoaXMuZmxhdHRlbmVkKSB7XG4gICAgdmFyIG9sZE5hbWUgPSB0aGlzLm5hbWU7XG4gICAgbWVtb2l6ZWRQcm9wZXJ0eSh0aGlzLCAnbmFtZScsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHNlbGYubWVtYmVyLm5hbWUgfHwgb2xkTmFtZTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBNYXBTaGFwZShzaGFwZSwgb3B0aW9ucykge1xuICB2YXIgZmlyc3RJbml0ID0gIXRoaXMuaXNTaGFwZTtcbiAgQ29tcG9zaXRlU2hhcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICBpZiAoZmlyc3RJbml0KSB7XG4gICAgcHJvcGVydHkodGhpcywgJ2RlZmF1bHRWYWx1ZScsIGZ1bmN0aW9uKCkgeyByZXR1cm4ge307IH0pO1xuICAgIHByb3BlcnR5KHRoaXMsICdrZXknLCBTaGFwZS5jcmVhdGUoe3R5cGU6ICdzdHJpbmcnfSwgb3B0aW9ucykpO1xuICAgIHByb3BlcnR5KHRoaXMsICd2YWx1ZScsIFNoYXBlLmNyZWF0ZSh7dHlwZTogJ3N0cmluZyd9LCBvcHRpb25zKSk7XG4gIH1cblxuICBpZiAoc2hhcGUua2V5KSB7XG4gICAgbWVtb2l6ZWRQcm9wZXJ0eSh0aGlzLCAna2V5JywgZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gU2hhcGUuY3JlYXRlKHNoYXBlLmtleSwgb3B0aW9ucyk7XG4gICAgfSk7XG4gIH1cbiAgaWYgKHNoYXBlLnZhbHVlKSB7XG4gICAgbWVtb2l6ZWRQcm9wZXJ0eSh0aGlzLCAndmFsdWUnLCBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBTaGFwZS5jcmVhdGUoc2hhcGUudmFsdWUsIG9wdGlvbnMpO1xuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIFRpbWVzdGFtcFNoYXBlKHNoYXBlKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgU2hhcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICBpZiAodGhpcy5sb2NhdGlvbiA9PT0gJ2hlYWRlcicpIHtcbiAgICBwcm9wZXJ0eSh0aGlzLCAndGltZXN0YW1wRm9ybWF0JywgJ3JmYzgyMicpO1xuICB9IGVsc2UgaWYgKHNoYXBlLnRpbWVzdGFtcEZvcm1hdCkge1xuICAgIHByb3BlcnR5KHRoaXMsICd0aW1lc3RhbXBGb3JtYXQnLCBzaGFwZS50aW1lc3RhbXBGb3JtYXQpO1xuICB9IGVsc2UgaWYgKCF0aGlzLnRpbWVzdGFtcEZvcm1hdCAmJiB0aGlzLmFwaSkge1xuICAgIGlmICh0aGlzLmFwaS50aW1lc3RhbXBGb3JtYXQpIHtcbiAgICAgIHByb3BlcnR5KHRoaXMsICd0aW1lc3RhbXBGb3JtYXQnLCB0aGlzLmFwaS50aW1lc3RhbXBGb3JtYXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYXBpLnByb3RvY29sKSB7XG4gICAgICAgIGNhc2UgJ2pzb24nOlxuICAgICAgICBjYXNlICdyZXN0LWpzb24nOlxuICAgICAgICAgIHByb3BlcnR5KHRoaXMsICd0aW1lc3RhbXBGb3JtYXQnLCAndW5peFRpbWVzdGFtcCcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZXN0LXhtbCc6XG4gICAgICAgIGNhc2UgJ3F1ZXJ5JzpcbiAgICAgICAgY2FzZSAnZWMyJzpcbiAgICAgICAgICBwcm9wZXJ0eSh0aGlzLCAndGltZXN0YW1wRm9ybWF0JywgJ2lzbzg2MDEnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0aGlzLnRvVHlwZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgdmFsdWUudG9VVENTdHJpbmcgPT09ICdmdW5jdGlvbicpIHJldHVybiB2YWx1ZTtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID9cbiAgICAgICAgICAgdXRpbC5kYXRlLnBhcnNlVGltZXN0YW1wKHZhbHVlKSA6IG51bGw7XG4gIH07XG5cbiAgdGhpcy50b1dpcmVGb3JtYXQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiB1dGlsLmRhdGUuZm9ybWF0KHZhbHVlLCBzZWxmLnRpbWVzdGFtcEZvcm1hdCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFN0cmluZ1NoYXBlKCkge1xuICBTaGFwZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gIHZhciBudWxsTGVzc1Byb3RvY29scyA9IFsncmVzdC14bWwnLCAncXVlcnknLCAnZWMyJ107XG4gIHRoaXMudG9UeXBlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YWx1ZSA9IHRoaXMuYXBpICYmIG51bGxMZXNzUHJvdG9jb2xzLmluZGV4T2YodGhpcy5hcGkucHJvdG9jb2wpID4gLTEgP1xuICAgICAgdmFsdWUgfHwgJycgOiB2YWx1ZTtcbiAgICBpZiAodGhpcy5pc0pzb25WYWx1ZSkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUudG9TdHJpbmcgPT09ICdmdW5jdGlvbicgP1xuICAgICAgdmFsdWUudG9TdHJpbmcoKSA6IHZhbHVlO1xuICB9O1xuXG4gIHRoaXMudG9XaXJlRm9ybWF0ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5pc0pzb25WYWx1ZSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IHZhbHVlO1xuICB9O1xufVxuXG5mdW5jdGlvbiBGbG9hdFNoYXBlKCkge1xuICBTaGFwZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gIHRoaXMudG9UeXBlID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUpO1xuICB9O1xuICB0aGlzLnRvV2lyZUZvcm1hdCA9IHRoaXMudG9UeXBlO1xufVxuXG5mdW5jdGlvbiBJbnRlZ2VyU2hhcGUoKSB7XG4gIFNoYXBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgdGhpcy50b1R5cGUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgfTtcbiAgdGhpcy50b1dpcmVGb3JtYXQgPSB0aGlzLnRvVHlwZTtcbn1cblxuZnVuY3Rpb24gQmluYXJ5U2hhcGUoKSB7XG4gIFNoYXBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIHRoaXMudG9UeXBlID0gdXRpbC5iYXNlNjQuZGVjb2RlO1xuICB0aGlzLnRvV2lyZUZvcm1hdCA9IHV0aWwuYmFzZTY0LmVuY29kZTtcbn1cblxuZnVuY3Rpb24gQmFzZTY0U2hhcGUoKSB7XG4gIEJpbmFyeVNoYXBlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbmZ1bmN0aW9uIEJvb2xlYW5TaGFwZSgpIHtcbiAgU2hhcGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICB0aGlzLnRvVHlwZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gdmFsdWU7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICB9O1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5TaGFwZS5zaGFwZXMgPSB7XG4gIFN0cnVjdHVyZVNoYXBlOiBTdHJ1Y3R1cmVTaGFwZSxcbiAgTGlzdFNoYXBlOiBMaXN0U2hhcGUsXG4gIE1hcFNoYXBlOiBNYXBTaGFwZSxcbiAgU3RyaW5nU2hhcGU6IFN0cmluZ1NoYXBlLFxuICBCb29sZWFuU2hhcGU6IEJvb2xlYW5TaGFwZSxcbiAgQmFzZTY0U2hhcGU6IEJhc2U2NFNoYXBlXG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IFNoYXBlO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuUGFyYW1WYWxpZGF0b3IgPSBBV1MudXRpbC5pbmhlcml0KHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB2YWxpZGF0b3Igb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbiBbQm9vbGVhbnxtYXBdIHdoZXRoZXIgaW5wdXQgcGFyYW1ldGVycyBzaG91bGQgYmVcbiAgICogICAgIHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSBvcGVyYXRpb24gZGVzY3JpcHRpb24gYmVmb3JlIHNlbmRpbmcgdGhlXG4gICAqICAgICByZXF1ZXN0LiBQYXNzIGEgbWFwIHRvIGVuYWJsZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBzcGVjaWZpY1xuICAgKiAgICAgdmFsaWRhdGlvbiBmZWF0dXJlczpcbiAgICpcbiAgICogICAgICogKiptaW4qKiBbQm9vbGVhbl0gJm1kYXNoOyBWYWxpZGF0ZXMgdGhhdCBhIHZhbHVlIG1lZXRzIHRoZSBtaW5cbiAgICogICAgICAgY29uc3RyYWludC4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgd2hlbiBwYXJhbVZhbGlkYXRpb24gaXMgc2V0XG4gICAqICAgICAgIHRvIGB0cnVlYC5cbiAgICogICAgICogKiptYXgqKiBbQm9vbGVhbl0gJm1kYXNoOyBWYWxpZGF0ZXMgdGhhdCBhIHZhbHVlIG1lZXRzIHRoZSBtYXhcbiAgICogICAgICAgY29uc3RyYWludC5cbiAgICogICAgICogKipwYXR0ZXJuKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSBzdHJpbmcgdmFsdWUgbWF0Y2hlcyBhXG4gICAqICAgICAgIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICogICAgICogKiplbnVtKiogW0Jvb2xlYW5dICZtZGFzaDsgVmFsaWRhdGVzIHRoYXQgYSBzdHJpbmcgdmFsdWUgbWF0Y2hlcyBvbmVcbiAgICogICAgICAgb2YgdGhlIGFsbG93YWJsZSBlbnVtIHZhbHVlcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBQYXJhbVZhbGlkYXRvcih2YWxpZGF0aW9uKSB7XG4gICAgaWYgKHZhbGlkYXRpb24gPT09IHRydWUgfHwgdmFsaWRhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YWxpZGF0aW9uID0geydtaW4nOiB0cnVlfTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0aW9uID0gdmFsaWRhdGlvbjtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoc2hhcGUsIHBhcmFtcywgY29udGV4dCkge1xuICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgdGhpcy52YWxpZGF0ZU1lbWJlcihzaGFwZSwgcGFyYW1zIHx8IHt9LCBjb250ZXh0IHx8ICdwYXJhbXMnKTtcblxuICAgIGlmICh0aGlzLmVycm9ycy5sZW5ndGggPiAxKSB7XG4gICAgICB2YXIgbXNnID0gdGhpcy5lcnJvcnMuam9pbignXFxuKiAnKTtcbiAgICAgIG1zZyA9ICdUaGVyZSB3ZXJlICcgKyB0aGlzLmVycm9ycy5sZW5ndGggK1xuICAgICAgICAnIHZhbGlkYXRpb24gZXJyb3JzOlxcbiogJyArIG1zZztcbiAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcihtc2cpLFxuICAgICAgICB7Y29kZTogJ011bHRpcGxlVmFsaWRhdGlvbkVycm9ycycsIGVycm9yczogdGhpcy5lcnJvcnN9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhyb3cgdGhpcy5lcnJvcnNbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSxcblxuICBmYWlsOiBmdW5jdGlvbiBmYWlsKGNvZGUsIG1lc3NhZ2UpIHtcbiAgICB0aGlzLmVycm9ycy5wdXNoKEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSwge2NvZGU6IGNvZGV9KSk7XG4gIH0sXG5cbiAgdmFsaWRhdGVTdHJ1Y3R1cmU6IGZ1bmN0aW9uIHZhbGlkYXRlU3RydWN0dXJlKHNoYXBlLCBwYXJhbXMsIGNvbnRleHQpIHtcbiAgICB0aGlzLnZhbGlkYXRlVHlwZShwYXJhbXMsIGNvbnRleHQsIFsnb2JqZWN0J10sICdzdHJ1Y3R1cmUnKTtcblxuICAgIHZhciBwYXJhbU5hbWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IHNoYXBlLnJlcXVpcmVkICYmIGkgPCBzaGFwZS5yZXF1aXJlZC5sZW5ndGg7IGkrKykge1xuICAgICAgcGFyYW1OYW1lID0gc2hhcGUucmVxdWlyZWRbaV07XG4gICAgICB2YXIgdmFsdWUgPSBwYXJhbXNbcGFyYW1OYW1lXTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMuZmFpbCgnTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyJyxcbiAgICAgICAgICAnTWlzc2luZyByZXF1aXJlZCBrZXkgXFwnJyArIHBhcmFtTmFtZSArICdcXCcgaW4gJyArIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHZhbGlkYXRlIGhhc2ggbWVtYmVyc1xuICAgIGZvciAocGFyYW1OYW1lIGluIHBhcmFtcykge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyYW1zLCBwYXJhbU5hbWUpKSBjb250aW51ZTtcblxuICAgICAgdmFyIHBhcmFtVmFsdWUgPSBwYXJhbXNbcGFyYW1OYW1lXSxcbiAgICAgICAgICBtZW1iZXJTaGFwZSA9IHNoYXBlLm1lbWJlcnNbcGFyYW1OYW1lXTtcblxuICAgICAgaWYgKG1lbWJlclNoYXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFyIG1lbWJlckNvbnRleHQgPSBbY29udGV4dCwgcGFyYW1OYW1lXS5qb2luKCcuJyk7XG4gICAgICAgIHRoaXMudmFsaWRhdGVNZW1iZXIobWVtYmVyU2hhcGUsIHBhcmFtVmFsdWUsIG1lbWJlckNvbnRleHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mYWlsKCdVbmV4cGVjdGVkUGFyYW1ldGVyJyxcbiAgICAgICAgICAnVW5leHBlY3RlZCBrZXkgXFwnJyArIHBhcmFtTmFtZSArICdcXCcgZm91bmQgaW4gJyArIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuXG4gIHZhbGlkYXRlTWVtYmVyOiBmdW5jdGlvbiB2YWxpZGF0ZU1lbWJlcihzaGFwZSwgcGFyYW0sIGNvbnRleHQpIHtcbiAgICBzd2l0Y2ggKHNoYXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cnVjdHVyZSc6XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlU3RydWN0dXJlKHNoYXBlLCBwYXJhbSwgY29udGV4dCk7XG4gICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVMaXN0KHNoYXBlLCBwYXJhbSwgY29udGV4dCk7XG4gICAgICBjYXNlICdtYXAnOlxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZU1hcChzaGFwZSwgcGFyYW0sIGNvbnRleHQpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVTY2FsYXIoc2hhcGUsIHBhcmFtLCBjb250ZXh0KTtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGVMaXN0OiBmdW5jdGlvbiB2YWxpZGF0ZUxpc3Qoc2hhcGUsIHBhcmFtcywgY29udGV4dCkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRlVHlwZShwYXJhbXMsIGNvbnRleHQsIFtBcnJheV0pKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlUmFuZ2Uoc2hhcGUsIHBhcmFtcy5sZW5ndGgsIGNvbnRleHQsICdsaXN0IG1lbWJlciBjb3VudCcpO1xuICAgICAgLy8gdmFsaWRhdGUgYXJyYXkgbWVtYmVyc1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZU1lbWJlcihzaGFwZS5tZW1iZXIsIHBhcmFtc1tpXSwgY29udGV4dCArICdbJyArIGkgKyAnXScpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZU1hcDogZnVuY3Rpb24gdmFsaWRhdGVNYXAoc2hhcGUsIHBhcmFtcywgY29udGV4dCkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRlVHlwZShwYXJhbXMsIGNvbnRleHQsIFsnb2JqZWN0J10sICdtYXAnKSkge1xuICAgICAgLy8gQnVpbGQgdXAgYSBjb3VudCBvZiBtYXAgbWVtYmVycyB0byB2YWxpZGF0ZSByYW5nZSB0cmFpdHMuXG4gICAgICB2YXIgbWFwQ291bnQgPSAwO1xuICAgICAgZm9yICh2YXIgcGFyYW0gaW4gcGFyYW1zKSB7XG4gICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmFtcywgcGFyYW0pKSBjb250aW51ZTtcbiAgICAgICAgLy8gVmFsaWRhdGUgYW55IG1hcCBrZXkgdHJhaXQgY29uc3RyYWludHNcbiAgICAgICAgdGhpcy52YWxpZGF0ZU1lbWJlcihzaGFwZS5rZXksIHBhcmFtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQgKyAnW2tleT1cXCcnICsgcGFyYW0gKyAnXFwnXScpXG4gICAgICAgIHRoaXMudmFsaWRhdGVNZW1iZXIoc2hhcGUudmFsdWUsIHBhcmFtc1twYXJhbV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCArICdbXFwnJyArIHBhcmFtICsgJ1xcJ10nKTtcbiAgICAgICAgbWFwQ291bnQrKztcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsaWRhdGVSYW5nZShzaGFwZSwgbWFwQ291bnQsIGNvbnRleHQsICdtYXAgbWVtYmVyIGNvdW50Jyk7XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlU2NhbGFyOiBmdW5jdGlvbiB2YWxpZGF0ZVNjYWxhcihzaGFwZSwgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBzd2l0Y2ggKHNoYXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVTdHJpbmcoc2hhcGUsIHZhbHVlLCBjb250ZXh0KTtcbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVBheWxvYWQodmFsdWUsIGNvbnRleHQpO1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICBjYXNlICdmbG9hdCc6XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlTnVtYmVyKHNoYXBlLCB2YWx1ZSwgY29udGV4dCk7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVUeXBlKHZhbHVlLCBjb250ZXh0LCBbJ2Jvb2xlYW4nXSk7XG4gICAgICBjYXNlICd0aW1lc3RhbXAnOlxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVR5cGUodmFsdWUsIGNvbnRleHQsIFtEYXRlLFxuICAgICAgICAgIC9eXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn0oXFwuXFxkKyk/WiQvLCAnbnVtYmVyJ10sXG4gICAgICAgICAgJ0RhdGUgb2JqZWN0LCBJU08tODYwMSBzdHJpbmcsIG9yIGEgVU5JWCB0aW1lc3RhbXAnKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLmZhaWwoJ1Vua293blR5cGUnLCAnVW5oYW5kbGVkIHR5cGUgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUudHlwZSArICcgZm9yICcgKyBjb250ZXh0KTtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGVTdHJpbmc6IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nKHNoYXBlLCB2YWx1ZSwgY29udGV4dCkge1xuICAgIHZhciB2YWxpZFR5cGVzID0gWydzdHJpbmcnXTtcbiAgICBpZiAoc2hhcGUuaXNKc29uVmFsdWUpIHtcbiAgICAgIHZhbGlkVHlwZXMgPSB2YWxpZFR5cGVzLmNvbmNhdChbJ251bWJlcicsICdvYmplY3QnLCAnYm9vbGVhbiddKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsaWRhdGVUeXBlKHZhbHVlLCBjb250ZXh0LCB2YWxpZFR5cGVzKSkge1xuICAgICAgdGhpcy52YWxpZGF0ZUVudW0oc2hhcGUsIHZhbHVlLCBjb250ZXh0KTtcbiAgICAgIHRoaXMudmFsaWRhdGVSYW5nZShzaGFwZSwgdmFsdWUubGVuZ3RoLCBjb250ZXh0LCAnc3RyaW5nIGxlbmd0aCcpO1xuICAgICAgdGhpcy52YWxpZGF0ZVBhdHRlcm4oc2hhcGUsIHZhbHVlLCBjb250ZXh0KTtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGVQYXR0ZXJuOiBmdW5jdGlvbiB2YWxpZGF0ZVBhdHRlcm4oc2hhcGUsIHZhbHVlLCBjb250ZXh0KSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvblsncGF0dGVybiddICYmIHNoYXBlWydwYXR0ZXJuJ10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCEobmV3IFJlZ0V4cChzaGFwZVsncGF0dGVybiddKSkudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5mYWlsKCdQYXR0ZXJuTWF0Y2hFcnJvcicsICdQcm92aWRlZCB2YWx1ZSBcIicgKyB2YWx1ZSArICdcIiAnXG4gICAgICAgICAgKyAnZG9lcyBub3QgbWF0Y2ggcmVnZXggcGF0dGVybiAvJyArIHNoYXBlWydwYXR0ZXJuJ10gKyAnLyBmb3IgJ1xuICAgICAgICAgICsgY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlUmFuZ2U6IGZ1bmN0aW9uIHZhbGlkYXRlUmFuZ2Uoc2hhcGUsIHZhbHVlLCBjb250ZXh0LCBkZXNjcmlwdG9yKSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvblsnbWluJ10pIHtcbiAgICAgIGlmIChzaGFwZVsnbWluJ10gIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSA8IHNoYXBlWydtaW4nXSkge1xuICAgICAgICB0aGlzLmZhaWwoJ01pblJhbmdlRXJyb3InLCAnRXhwZWN0ZWQgJyArIGRlc2NyaXB0b3IgKyAnID49ICdcbiAgICAgICAgICArIHNoYXBlWydtaW4nXSArICcsIGJ1dCBmb3VuZCAnICsgdmFsdWUgKyAnIGZvciAnICsgY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbGlkYXRpb25bJ21heCddKSB7XG4gICAgICBpZiAoc2hhcGVbJ21heCddICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgPiBzaGFwZVsnbWF4J10pIHtcbiAgICAgICAgdGhpcy5mYWlsKCdNYXhSYW5nZUVycm9yJywgJ0V4cGVjdGVkICcgKyBkZXNjcmlwdG9yICsgJyA8PSAnXG4gICAgICAgICAgKyBzaGFwZVsnbWF4J10gKyAnLCBidXQgZm91bmQgJyArIHZhbHVlICsgJyBmb3IgJyArIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZUVudW06IGZ1bmN0aW9uIHZhbGlkYXRlUmFuZ2Uoc2hhcGUsIHZhbHVlLCBjb250ZXh0KSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvblsnZW51bSddICYmIHNoYXBlWydlbnVtJ10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRmFpbCBpZiB0aGUgc3RyaW5nIHZhbHVlIGlzIG5vdCBwcmVzZW50IGluIHRoZSBlbnVtIGxpc3RcbiAgICAgIGlmIChzaGFwZVsnZW51bSddLmluZGV4T2YodmFsdWUpID09PSAtMSkge1xuICAgICAgICB0aGlzLmZhaWwoJ0VudW1FcnJvcicsICdGb3VuZCBzdHJpbmcgdmFsdWUgb2YgJyArIHZhbHVlICsgJywgYnV0ICdcbiAgICAgICAgICArICdleHBlY3RlZCAnICsgc2hhcGVbJ2VudW0nXS5qb2luKCd8JykgKyAnIGZvciAnICsgY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlVHlwZTogZnVuY3Rpb24gdmFsaWRhdGVUeXBlKHZhbHVlLCBjb250ZXh0LCBhY2NlcHRlZFR5cGVzLCB0eXBlKSB7XG4gICAgLy8gV2Ugd2lsbCBub3QgbG9nIGFuIGVycm9yIGZvciBudWxsIG9yIHVuZGVmaW5lZCwgYnV0IHdlIHdpbGwgcmV0dXJuXG4gICAgLy8gZmFsc2Ugc28gdGhhdCBjYWxsZXJzIGtub3cgdGhhdCB0aGUgZXhwZWN0ZWQgdHlwZSB3YXMgbm90IHN0cmljdGx5IG1ldC5cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgdmFyIGZvdW5kSW52YWxpZFR5cGUgPSBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFjY2VwdGVkVHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0eXBlb2YgYWNjZXB0ZWRUeXBlc1tpXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gYWNjZXB0ZWRUeXBlc1tpXSkgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGFjY2VwdGVkVHlwZXNbaV0gaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgaWYgKCh2YWx1ZSB8fCAnJykudG9TdHJpbmcoKS5tYXRjaChhY2NlcHRlZFR5cGVzW2ldKSkgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBhY2NlcHRlZFR5cGVzW2ldKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKEFXUy51dGlsLmlzVHlwZSh2YWx1ZSwgYWNjZXB0ZWRUeXBlc1tpXSkpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAoIXR5cGUgJiYgIWZvdW5kSW52YWxpZFR5cGUpIGFjY2VwdGVkVHlwZXMgPSBhY2NlcHRlZFR5cGVzLnNsaWNlKCk7XG4gICAgICAgIGFjY2VwdGVkVHlwZXNbaV0gPSBBV1MudXRpbC50eXBlTmFtZShhY2NlcHRlZFR5cGVzW2ldKTtcbiAgICAgIH1cbiAgICAgIGZvdW5kSW52YWxpZFR5cGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHZhciBhY2NlcHRlZFR5cGUgPSB0eXBlO1xuICAgIGlmICghYWNjZXB0ZWRUeXBlKSB7XG4gICAgICBhY2NlcHRlZFR5cGUgPSBhY2NlcHRlZFR5cGVzLmpvaW4oJywgJykucmVwbGFjZSgvLChbXixdKykkLywgJywgb3IkMScpO1xuICAgIH1cblxuICAgIHZhciB2b3dlbCA9IGFjY2VwdGVkVHlwZS5tYXRjaCgvXlthZWlvdV0vaSkgPyAnbicgOiAnJztcbiAgICB0aGlzLmZhaWwoJ0ludmFsaWRQYXJhbWV0ZXJUeXBlJywgJ0V4cGVjdGVkICcgKyBjb250ZXh0ICsgJyB0byBiZSBhJyArXG4gICAgICAgICAgICAgIHZvd2VsICsgJyAnICsgYWNjZXB0ZWRUeXBlKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG5cbiAgdmFsaWRhdGVOdW1iZXI6IGZ1bmN0aW9uIHZhbGlkYXRlTnVtYmVyKHNoYXBlLCB2YWx1ZSwgY29udGV4dCkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBjYXN0ZWRWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgaWYgKGNhc3RlZFZhbHVlLnRvU3RyaW5nKCkgPT09IHZhbHVlKSB2YWx1ZSA9IGNhc3RlZFZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy52YWxpZGF0ZVR5cGUodmFsdWUsIGNvbnRleHQsIFsnbnVtYmVyJ10pKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlUmFuZ2Uoc2hhcGUsIHZhbHVlLCBjb250ZXh0LCAnbnVtZXJpYyB2YWx1ZScpO1xuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZVBheWxvYWQ6IGZ1bmN0aW9uIHZhbGlkYXRlUGF5bG9hZCh2YWx1ZSwgY29udGV4dCkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybjtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlLmJ5dGVMZW5ndGggPT09ICdudW1iZXInKSByZXR1cm47IC8vIHR5cGVkIGFycmF5c1xuICAgIGlmIChBV1MudXRpbC5pc05vZGUoKSkgeyAvLyBzcGVjaWFsIGNoZWNrIGZvciBidWZmZXIvc3RyZWFtIGluIE5vZGUuanNcbiAgICAgIHZhciBTdHJlYW0gPSBBV1MudXRpbC5zdHJlYW0uU3RyZWFtO1xuICAgICAgaWYgKEFXUy51dGlsLkJ1ZmZlci5pc0J1ZmZlcih2YWx1ZSkgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJlYW0pIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgdHlwZXMgPSBbJ0J1ZmZlcicsICdTdHJlYW0nLCAnRmlsZScsICdCbG9iJywgJ0FycmF5QnVmZmVyJywgJ0RhdGFWaWV3J107XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChBV1MudXRpbC5pc1R5cGUodmFsdWUsIHR5cGVzW2ldKSkgcmV0dXJuO1xuICAgICAgICBpZiAoQVdTLnV0aWwudHlwZU5hbWUodmFsdWUuY29uc3RydWN0b3IpID09PSB0eXBlc1tpXSkgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZmFpbCgnSW52YWxpZFBhcmFtZXRlclR5cGUnLCAnRXhwZWN0ZWQgJyArIGNvbnRleHQgKyAnIHRvIGJlIGEgJyArXG4gICAgICAnc3RyaW5nLCBCdWZmZXIsIFN0cmVhbSwgQmxvYiwgb3IgdHlwZWQgYXJyYXkgb2JqZWN0Jyk7XG4gIH1cbn0pO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciByZXN0ID0gQVdTLlByb3RvY29sLlJlc3Q7XG5cbi8qKlxuICogQSBwcmVzaWduZXIgb2JqZWN0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIHByZXNpZ25lZCB1cmxzIGZvciB0aGUgUG9sbHkgc2VydmljZS5cbiAqL1xuQVdTLlBvbGx5LlByZXNpZ25lciA9IEFXUy51dGlsLmluaGVyaXQoe1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBwcmVzaWduZXIgb2JqZWN0IHdpdGggYSBzZXQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqXG4gICAgICogQG9wdGlvbiBvcHRpb25zIHBhcmFtcyBbbWFwXSBBbiBvcHRpb25hbCBtYXAgb2YgcGFyYW1ldGVycyB0byBiaW5kIHRvIGV2ZXJ5XG4gICAgICogICByZXF1ZXN0IHNlbnQgYnkgdGhpcyBzZXJ2aWNlIG9iamVjdC5cbiAgICAgKiBAb3B0aW9uIG9wdGlvbnMgc2VydmljZSBbQVdTLlBvbGx5XSBBbiBvcHRpb25hbCBwcmUtY29uZmlndXJlZCBpbnN0YW5jZVxuICAgICAqICBvZiB0aGUgQVdTLlBvbGx5IHNlcnZpY2Ugb2JqZWN0IHRvIHVzZSBmb3IgcmVxdWVzdHMuIFRoZSBvYmplY3QgbWF5XG4gICAgICogIGJvdW5kIHBhcmFtZXRlcnMgdXNlZCBieSB0aGUgcHJlc2lnbmVyLlxuICAgICAqIEBzZWUgQVdTLlBvbGx5LmNvbnN0cnVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIFNpZ25lcihvcHRpb25zKSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnNlcnZpY2UgPSBvcHRpb25zLnNlcnZpY2U7XG4gICAgICAgIHRoaXMuYmluZFNlcnZpY2VPYmplY3Qob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuX29wZXJhdGlvbnMgPSB7fTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQGFwaSBwcml2YXRlXG4gICAgICovXG4gICAgYmluZFNlcnZpY2VPYmplY3Q6IGZ1bmN0aW9uIGJpbmRTZXJ2aWNlT2JqZWN0KG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIGlmICghdGhpcy5zZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UgPSBuZXcgQVdTLlBvbGx5KG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGNvbmZpZyA9IEFXUy51dGlsLmNvcHkodGhpcy5zZXJ2aWNlLmNvbmZpZyk7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UgPSBuZXcgdGhpcy5zZXJ2aWNlLmNvbnN0cnVjdG9yLl9fc3VwZXJfXyhjb25maWcpO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNvbmZpZy5wYXJhbXMgPSBBV1MudXRpbC5tZXJnZSh0aGlzLnNlcnZpY2UuY29uZmlnLnBhcmFtcyB8fCB7fSwgb3B0aW9ucy5wYXJhbXMpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICAqL1xuICAgIG1vZGlmeUlucHV0TWVtYmVyczogZnVuY3Rpb24gbW9kaWZ5SW5wdXRNZW1iZXJzKGlucHV0KSB7XG4gICAgICAgIC8vIG1ha2UgY29waWVzIG9mIHRoZSBpbnB1dCBzbyB3ZSBkb24ndCBvdmVyd3JpdGUgdGhlIGFwaVxuICAgICAgICAvLyBuZWVkIHRvIGJlIGNhcmVmdWwgdG8gY29weSBhbnl0aGluZyB3ZSBhY2Nlc3MvbW9kaWZ5XG4gICAgICAgIHZhciBtb2RpZmllZElucHV0ID0gQVdTLnV0aWwuY29weShpbnB1dCk7XG4gICAgICAgIG1vZGlmaWVkSW5wdXQubWVtYmVycyA9IEFXUy51dGlsLmNvcHkoaW5wdXQubWVtYmVycyk7XG4gICAgICAgIEFXUy51dGlsLmVhY2goaW5wdXQubWVtYmVycywgZnVuY3Rpb24obmFtZSwgbWVtYmVyKSB7XG4gICAgICAgICAgICBtb2RpZmllZElucHV0Lm1lbWJlcnNbbmFtZV0gPSBBV1MudXRpbC5jb3B5KG1lbWJlcik7XG4gICAgICAgICAgICAvLyB1cGRhdGUgbG9jYXRpb24gYW5kIGxvY2F0aW9uTmFtZVxuICAgICAgICAgICAgaWYgKCFtZW1iZXIubG9jYXRpb24gfHwgbWVtYmVyLmxvY2F0aW9uID09PSAnYm9keScpIHtcbiAgICAgICAgICAgICAgICBtb2RpZmllZElucHV0Lm1lbWJlcnNbbmFtZV0ubG9jYXRpb24gPSAncXVlcnlzdHJpbmcnO1xuICAgICAgICAgICAgICAgIG1vZGlmaWVkSW5wdXQubWVtYmVyc1tuYW1lXS5sb2NhdGlvbk5hbWUgPSBuYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG1vZGlmaWVkSW5wdXQ7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEBhcGkgcHJpdmF0ZVxuICAgICAqL1xuICAgIGNvbnZlcnRQb3N0VG9HZXQ6IGZ1bmN0aW9uIGNvbnZlcnRQb3N0VG9HZXQocmVxKSB7XG4gICAgICAgIC8vIGNvbnZlcnQgbWV0aG9kXG4gICAgICAgIHJlcS5odHRwUmVxdWVzdC5tZXRob2QgPSAnR0VUJztcblxuICAgICAgICB2YXIgb3BlcmF0aW9uID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl07XG4gICAgICAgIC8vIGdldCBjYWNoZWQgb3BlcmF0aW9uIGlucHV0IGZpcnN0XG4gICAgICAgIHZhciBpbnB1dCA9IHRoaXMuX29wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl07XG4gICAgICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgICAgIC8vIG1vZGlmeSB0aGUgb3JpZ2luYWwgaW5wdXRcbiAgICAgICAgICAgIHRoaXMuX29wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl0gPSBpbnB1dCA9IHRoaXMubW9kaWZ5SW5wdXRNZW1iZXJzKG9wZXJhdGlvbi5pbnB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdXJpID0gcmVzdC5nZW5lcmF0ZVVSSShyZXEuaHR0cFJlcXVlc3QuZW5kcG9pbnQucGF0aCwgb3BlcmF0aW9uLmh0dHBQYXRoLCBpbnB1dCwgcmVxLnBhcmFtcyk7XG5cbiAgICAgICAgcmVxLmh0dHBSZXF1ZXN0LnBhdGggPSB1cmk7XG4gICAgICAgIHJlcS5odHRwUmVxdWVzdC5ib2R5ID0gJyc7XG5cbiAgICAgICAgLy8gZG9uJ3QgbmVlZCB0aGVzZSBoZWFkZXJzIG9uIGEgR0VUIHJlcXVlc3RcbiAgICAgICAgZGVsZXRlIHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LUxlbmd0aCddO1xuICAgICAgICBkZWxldGUgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcmxvYWQgZ2V0U3ludGhlc2l6ZVNwZWVjaFVybChwYXJhbXMgPSB7fSwgW2V4cGlyZXMgPSAzNjAwXSwgW2NhbGxiYWNrXSlcbiAgICAgKiAgIEdlbmVyYXRlIGEgcHJlc2lnbmVkIHVybCBmb3Ige0FXUy5Qb2xseS5zeW50aGVzaXplU3BlZWNofS5cbiAgICAgKiAgIEBub3RlIFlvdSBtdXN0IGVuc3VyZSB0aGF0IHlvdSBoYXZlIHN0YXRpYyBvciBwcmV2aW91c2x5IHJlc29sdmVkXG4gICAgICogICAgIGNyZWRlbnRpYWxzIGlmIHlvdSBjYWxsIHRoaXMgbWV0aG9kIHN5bmNocm9ub3VzbHkgKHdpdGggbm8gY2FsbGJhY2spLFxuICAgICAqICAgICBvdGhlcndpc2UgaXQgbWF5IG5vdCBwcm9wZXJseSBzaWduIHRoZSByZXF1ZXN0LiBJZiB5b3UgY2Fubm90IGd1YXJhbnRlZVxuICAgICAqICAgICB0aGlzICh5b3UgYXJlIHVzaW5nIGFuIGFzeW5jaHJvbm91cyBjcmVkZW50aWFsIHByb3ZpZGVyLCBpLmUuLCBFQzJcbiAgICAgKiAgICAgSUFNIHJvbGVzKSwgeW91IHNob3VsZCBhbHdheXMgY2FsbCB0aGlzIG1ldGhvZCB3aXRoIGFuIGFzeW5jaHJvbm91c1xuICAgICAqICAgICBjYWxsYmFjay5cbiAgICAgKiAgIEBwYXJhbSBwYXJhbXMgW21hcF0gcGFyYW1ldGVycyB0byBwYXNzIHRvIHRoZSBvcGVyYXRpb24uIFNlZSB0aGUge0FXUy5Qb2xseS5zeW50aGVzaXplU3BlZWNofVxuICAgICAqICAgICBvcGVyYXRpb24gZm9yIHRoZSBleHBlY3RlZCBvcGVyYXRpb24gcGFyYW1ldGVycy5cbiAgICAgKiAgIEBwYXJhbSBleHBpcmVzIFtJbnRlZ2VyXSAoMzYwMCkgdGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIGV4cGlyZSB0aGUgcHJlLXNpZ25lZCBVUkwgb3BlcmF0aW9uIGluLlxuICAgICAqICAgICBEZWZhdWx0cyB0byAxIGhvdXIuXG4gICAgICogICBAcmV0dXJuIFtzdHJpbmddIGlmIGNhbGxlZCBzeW5jaHJvbm91c2x5ICh3aXRoIG5vIGNhbGxiYWNrKSwgcmV0dXJucyB0aGUgc2lnbmVkIFVSTC5cbiAgICAgKiAgIEByZXR1cm4gW251bGxdIG5vdGhpbmcgaXMgcmV0dXJuZWQgaWYgYSBjYWxsYmFjayBpcyBwcm92aWRlZC5cbiAgICAgKiAgIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbiAoZXJyLCB1cmwpXG4gICAgICogICAgIElmIGEgY2FsbGJhY2sgaXMgc3VwcGxpZWQsIGl0IGlzIGNhbGxlZCB3aGVuIGEgc2lnbmVkIFVSTCBoYXMgYmVlbiBnZW5lcmF0ZWQuXG4gICAgICogICAgIEBwYXJhbSBlcnIgW0Vycm9yXSB0aGUgZXJyb3Igb2JqZWN0IHJldHVybmVkIGZyb20gdGhlIHByZXNpZ25lci5cbiAgICAgKiAgICAgQHBhcmFtIHVybCBbU3RyaW5nXSB0aGUgc2lnbmVkIFVSTC5cbiAgICAgKiAgIEBzZWUgQVdTLlBvbGx5LnN5bnRoZXNpemVTcGVlY2hcbiAgICAgKi9cbiAgICBnZXRTeW50aGVzaXplU3BlZWNoVXJsOiBmdW5jdGlvbiBnZXRTeW50aGVzaXplU3BlZWNoVXJsKHBhcmFtcywgZXhwaXJlcywgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IHRoaXMuc2VydmljZS5tYWtlUmVxdWVzdCgnc3ludGhlc2l6ZVNwZWVjaCcsIHBhcmFtcyk7XG4gICAgICAgIC8vIHJlbW92ZSBleGlzdGluZyBidWlsZCBsaXN0ZW5lcnNcbiAgICAgICAgcmVxdWVzdC5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2J1aWxkJyk7XG4gICAgICAgIHJlcXVlc3Qub24oJ2J1aWxkJywgZnVuY3Rpb24ocmVxKSB7XG4gICAgICAgICAgICBzZWxmLmNvbnZlcnRQb3N0VG9HZXQocmVxKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXF1ZXN0LnByZXNpZ24oZXhwaXJlcywgY2FsbGJhY2spO1xuICAgIH1cbn0pO1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG52YXIgSnNvbkJ1aWxkZXIgPSByZXF1aXJlKCcuLi9qc29uL2J1aWxkZXInKTtcbnZhciBKc29uUGFyc2VyID0gcmVxdWlyZSgnLi4vanNvbi9wYXJzZXInKTtcblxuZnVuY3Rpb24gYnVpbGRSZXF1ZXN0KHJlcSkge1xuICB2YXIgaHR0cFJlcXVlc3QgPSByZXEuaHR0cFJlcXVlc3Q7XG4gIHZhciBhcGkgPSByZXEuc2VydmljZS5hcGk7XG4gIHZhciB0YXJnZXQgPSBhcGkudGFyZ2V0UHJlZml4ICsgJy4nICsgYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl0ubmFtZTtcbiAgdmFyIHZlcnNpb24gPSBhcGkuanNvblZlcnNpb24gfHwgJzEuMCc7XG4gIHZhciBpbnB1dCA9IGFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dLmlucHV0O1xuICB2YXIgYnVpbGRlciA9IG5ldyBKc29uQnVpbGRlcigpO1xuXG4gIGlmICh2ZXJzaW9uID09PSAxKSB2ZXJzaW9uID0gJzEuMCc7XG4gIGh0dHBSZXF1ZXN0LmJvZHkgPSBidWlsZGVyLmJ1aWxkKHJlcS5wYXJhbXMgfHwge30sIGlucHV0KTtcbiAgaHR0cFJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24veC1hbXotanNvbi0nICsgdmVyc2lvbjtcbiAgaHR0cFJlcXVlc3QuaGVhZGVyc1snWC1BbXotVGFyZ2V0J10gPSB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RFcnJvcihyZXNwKSB7XG4gIHZhciBlcnJvciA9IHt9O1xuICB2YXIgaHR0cFJlc3BvbnNlID0gcmVzcC5odHRwUmVzcG9uc2U7XG5cbiAgZXJyb3IuY29kZSA9IGh0dHBSZXNwb25zZS5oZWFkZXJzWyd4LWFtem4tZXJyb3J0eXBlJ10gfHwgJ1Vua25vd25FcnJvcic7XG4gIGlmICh0eXBlb2YgZXJyb3IuY29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICBlcnJvci5jb2RlID0gZXJyb3IuY29kZS5zcGxpdCgnOicpWzBdO1xuICB9XG5cbiAgaWYgKGh0dHBSZXNwb25zZS5ib2R5Lmxlbmd0aCA+IDApIHtcbiAgICB0cnkge1xuICAgICAgdmFyIGUgPSBKU09OLnBhcnNlKGh0dHBSZXNwb25zZS5ib2R5LnRvU3RyaW5nKCkpO1xuICAgICAgaWYgKGUuX190eXBlIHx8IGUuY29kZSkge1xuICAgICAgICBlcnJvci5jb2RlID0gKGUuX190eXBlIHx8IGUuY29kZSkuc3BsaXQoJyMnKS5wb3AoKTtcbiAgICAgIH1cbiAgICAgIGlmIChlcnJvci5jb2RlID09PSAnUmVxdWVzdEVudGl0eVRvb0xhcmdlJykge1xuICAgICAgICBlcnJvci5tZXNzYWdlID0gJ1JlcXVlc3QgYm9keSBtdXN0IGJlIGxlc3MgdGhhbiAxIE1CJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSAoZS5tZXNzYWdlIHx8IGUuTWVzc2FnZSB8fCBudWxsKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBlcnJvci5zdGF0dXNDb2RlID0gaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGU7XG4gICAgICBlcnJvci5tZXNzYWdlID0gaHR0cFJlc3BvbnNlLnN0YXR1c01lc3NhZ2U7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGVycm9yLnN0YXR1c0NvZGUgPSBodHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICBlcnJvci5tZXNzYWdlID0gaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHJlc3AuZXJyb3IgPSB1dGlsLmVycm9yKG5ldyBFcnJvcigpLCBlcnJvcik7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3REYXRhKHJlc3ApIHtcbiAgdmFyIGJvZHkgPSByZXNwLmh0dHBSZXNwb25zZS5ib2R5LnRvU3RyaW5nKCkgfHwgJ3t9JztcbiAgaWYgKHJlc3AucmVxdWVzdC5zZXJ2aWNlLmNvbmZpZy5jb252ZXJ0UmVzcG9uc2VUeXBlcyA9PT0gZmFsc2UpIHtcbiAgICByZXNwLmRhdGEgPSBKU09OLnBhcnNlKGJvZHkpO1xuICB9IGVsc2Uge1xuICAgIHZhciBvcGVyYXRpb24gPSByZXNwLnJlcXVlc3Quc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXNwLnJlcXVlc3Qub3BlcmF0aW9uXTtcbiAgICB2YXIgc2hhcGUgPSBvcGVyYXRpb24ub3V0cHV0IHx8IHt9O1xuICAgIHZhciBwYXJzZXIgPSBuZXcgSnNvblBhcnNlcigpO1xuICAgIHJlc3AuZGF0YSA9IHBhcnNlci5wYXJzZShib2R5LCBzaGFwZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGJ1aWxkUmVxdWVzdDogYnVpbGRSZXF1ZXN0LFxuICBleHRyYWN0RXJyb3I6IGV4dHJhY3RFcnJvcixcbiAgZXh0cmFjdERhdGE6IGV4dHJhY3REYXRhXG59O1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIFF1ZXJ5UGFyYW1TZXJpYWxpemVyID0gcmVxdWlyZSgnLi4vcXVlcnkvcXVlcnlfcGFyYW1fc2VyaWFsaXplcicpO1xudmFyIFNoYXBlID0gcmVxdWlyZSgnLi4vbW9kZWwvc2hhcGUnKTtcblxuZnVuY3Rpb24gYnVpbGRSZXF1ZXN0KHJlcSkge1xuICB2YXIgb3BlcmF0aW9uID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl07XG4gIHZhciBodHRwUmVxdWVzdCA9IHJlcS5odHRwUmVxdWVzdDtcbiAgaHR0cFJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPVxuICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTgnO1xuICBodHRwUmVxdWVzdC5wYXJhbXMgPSB7XG4gICAgVmVyc2lvbjogcmVxLnNlcnZpY2UuYXBpLmFwaVZlcnNpb24sXG4gICAgQWN0aW9uOiBvcGVyYXRpb24ubmFtZVxuICB9O1xuXG4gIC8vIGNvbnZlcnQgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBpbnRvIGEgbGlzdCBvZiBxdWVyeSBwYXJhbXMsXG4gIC8vIGUuZy4gRGVlcGx5Lk5lc3RlZFBhcmFtLjAuTmFtZT12YWx1ZVxuICB2YXIgYnVpbGRlciA9IG5ldyBRdWVyeVBhcmFtU2VyaWFsaXplcigpO1xuICBidWlsZGVyLnNlcmlhbGl6ZShyZXEucGFyYW1zLCBvcGVyYXRpb24uaW5wdXQsIGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7XG4gICAgaHR0cFJlcXVlc3QucGFyYW1zW25hbWVdID0gdmFsdWU7XG4gIH0pO1xuICBodHRwUmVxdWVzdC5ib2R5ID0gdXRpbC5xdWVyeVBhcmFtc1RvU3RyaW5nKGh0dHBSZXF1ZXN0LnBhcmFtcyk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RFcnJvcihyZXNwKSB7XG4gIHZhciBkYXRhLCBib2R5ID0gcmVzcC5odHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpO1xuICBpZiAoYm9keS5tYXRjaCgnPFVua25vd25PcGVyYXRpb25FeGNlcHRpb24nKSkge1xuICAgIGRhdGEgPSB7XG4gICAgICBDb2RlOiAnVW5rbm93bk9wZXJhdGlvbicsXG4gICAgICBNZXNzYWdlOiAnVW5rbm93biBvcGVyYXRpb24gJyArIHJlc3AucmVxdWVzdC5vcGVyYXRpb25cbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBkYXRhID0gbmV3IEFXUy5YTUwuUGFyc2VyKCkucGFyc2UoYm9keSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZGF0YSA9IHtcbiAgICAgICAgQ29kZTogcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzQ29kZSxcbiAgICAgICAgTWVzc2FnZTogcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzTWVzc2FnZVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpZiAoZGF0YS5yZXF1ZXN0SWQgJiYgIXJlc3AucmVxdWVzdElkKSByZXNwLnJlcXVlc3RJZCA9IGRhdGEucmVxdWVzdElkO1xuICBpZiAoZGF0YS5FcnJvcnMpIGRhdGEgPSBkYXRhLkVycm9ycztcbiAgaWYgKGRhdGEuRXJyb3IpIGRhdGEgPSBkYXRhLkVycm9yO1xuICBpZiAoZGF0YS5Db2RlKSB7XG4gICAgcmVzcC5lcnJvciA9IHV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgIGNvZGU6IGRhdGEuQ29kZSxcbiAgICAgIG1lc3NhZ2U6IGRhdGEuTWVzc2FnZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHJlc3AuZXJyb3IgPSB1dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICBjb2RlOiByZXNwLmh0dHBSZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgbWVzc2FnZTogbnVsbFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3REYXRhKHJlc3ApIHtcbiAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICB2YXIgc2hhcGUgPSBvcGVyYXRpb24ub3V0cHV0IHx8IHt9O1xuICB2YXIgb3JpZ1J1bGVzID0gc2hhcGU7XG5cbiAgaWYgKG9yaWdSdWxlcy5yZXN1bHRXcmFwcGVyKSB7XG4gICAgdmFyIHRtcCA9IFNoYXBlLmNyZWF0ZSh7dHlwZTogJ3N0cnVjdHVyZSd9KTtcbiAgICB0bXAubWVtYmVyc1tvcmlnUnVsZXMucmVzdWx0V3JhcHBlcl0gPSBzaGFwZTtcbiAgICB0bXAubWVtYmVyTmFtZXMgPSBbb3JpZ1J1bGVzLnJlc3VsdFdyYXBwZXJdO1xuICAgIHV0aWwucHJvcGVydHkoc2hhcGUsICduYW1lJywgc2hhcGUucmVzdWx0V3JhcHBlcik7XG4gICAgc2hhcGUgPSB0bXA7XG4gIH1cblxuICB2YXIgcGFyc2VyID0gbmV3IEFXUy5YTUwuUGFyc2VyKCk7XG5cbiAgLy8gVE9ETzogUmVmYWN0b3IgWE1MIFBhcnNlciB0byBwYXJzZSBSZXF1ZXN0SWQgZnJvbSByZXNwb25zZS5cbiAgaWYgKHNoYXBlICYmIHNoYXBlLm1lbWJlcnMgJiYgIXNoYXBlLm1lbWJlcnMuX1hBTVpSZXF1ZXN0SWQpIHtcbiAgICB2YXIgcmVxdWVzdElkU2hhcGUgPSBTaGFwZS5jcmVhdGUoXG4gICAgICB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB7IGFwaTogeyBwcm90b2NvbDogJ3F1ZXJ5JyB9IH0sXG4gICAgICAncmVxdWVzdElkJ1xuICAgICk7XG4gICAgc2hhcGUubWVtYmVycy5fWEFNWlJlcXVlc3RJZCA9IHJlcXVlc3RJZFNoYXBlO1xuICB9XG5cbiAgdmFyIGRhdGEgPSBwYXJzZXIucGFyc2UocmVzcC5odHRwUmVzcG9uc2UuYm9keS50b1N0cmluZygpLCBzaGFwZSk7XG4gIHJlc3AucmVxdWVzdElkID0gZGF0YS5fWEFNWlJlcXVlc3RJZCB8fCBkYXRhLnJlcXVlc3RJZDtcblxuICBpZiAoZGF0YS5fWEFNWlJlcXVlc3RJZCkgZGVsZXRlIGRhdGEuX1hBTVpSZXF1ZXN0SWQ7XG5cbiAgaWYgKG9yaWdSdWxlcy5yZXN1bHRXcmFwcGVyKSB7XG4gICAgaWYgKGRhdGFbb3JpZ1J1bGVzLnJlc3VsdFdyYXBwZXJdKSB7XG4gICAgICB1dGlsLnVwZGF0ZShkYXRhLCBkYXRhW29yaWdSdWxlcy5yZXN1bHRXcmFwcGVyXSk7XG4gICAgICBkZWxldGUgZGF0YVtvcmlnUnVsZXMucmVzdWx0V3JhcHBlcl07XG4gICAgfVxuICB9XG5cbiAgcmVzcC5kYXRhID0gZGF0YTtcbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGJ1aWxkUmVxdWVzdDogYnVpbGRSZXF1ZXN0LFxuICBleHRyYWN0RXJyb3I6IGV4dHJhY3RFcnJvcixcbiAgZXh0cmFjdERhdGE6IGV4dHJhY3REYXRhXG59O1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG5cbmZ1bmN0aW9uIHBvcHVsYXRlTWV0aG9kKHJlcSkge1xuICByZXEuaHR0cFJlcXVlc3QubWV0aG9kID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl0uaHR0cE1ldGhvZDtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVVUkkoZW5kcG9pbnRQYXRoLCBvcGVyYXRpb25QYXRoLCBpbnB1dCwgcGFyYW1zKSB7XG4gIHZhciB1cmkgPSBbZW5kcG9pbnRQYXRoLCBvcGVyYXRpb25QYXRoXS5qb2luKCcvJyk7XG4gIHVyaSA9IHVyaS5yZXBsYWNlKC9cXC8rL2csICcvJyk7XG5cbiAgdmFyIHF1ZXJ5U3RyaW5nID0ge30sIHF1ZXJ5U3RyaW5nU2V0ID0gZmFsc2U7XG4gIHV0aWwuZWFjaChpbnB1dC5tZW1iZXJzLCBmdW5jdGlvbiAobmFtZSwgbWVtYmVyKSB7XG4gICAgdmFyIHBhcmFtVmFsdWUgPSBwYXJhbXNbbmFtZV07XG4gICAgaWYgKHBhcmFtVmFsdWUgPT09IG51bGwgfHwgcGFyYW1WYWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgaWYgKG1lbWJlci5sb2NhdGlvbiA9PT0gJ3VyaScpIHtcbiAgICAgIHZhciByZWdleCA9IG5ldyBSZWdFeHAoJ1xcXFx7JyArIG1lbWJlci5uYW1lICsgJyhcXFxcKyk/XFxcXH0nKTtcbiAgICAgIHVyaSA9IHVyaS5yZXBsYWNlKHJlZ2V4LCBmdW5jdGlvbihfLCBwbHVzKSB7XG4gICAgICAgIHZhciBmbiA9IHBsdXMgPyB1dGlsLnVyaUVzY2FwZVBhdGggOiB1dGlsLnVyaUVzY2FwZTtcbiAgICAgICAgcmV0dXJuIGZuKFN0cmluZyhwYXJhbVZhbHVlKSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1lbWJlci5sb2NhdGlvbiA9PT0gJ3F1ZXJ5c3RyaW5nJykge1xuICAgICAgcXVlcnlTdHJpbmdTZXQgPSB0cnVlO1xuXG4gICAgICBpZiAobWVtYmVyLnR5cGUgPT09ICdsaXN0Jykge1xuICAgICAgICBxdWVyeVN0cmluZ1ttZW1iZXIubmFtZV0gPSBwYXJhbVZhbHVlLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICAgICAgICByZXR1cm4gdXRpbC51cmlFc2NhcGUoU3RyaW5nKHZhbCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAobWVtYmVyLnR5cGUgPT09ICdtYXAnKSB7XG4gICAgICAgIHV0aWwuZWFjaChwYXJhbVZhbHVlLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBxdWVyeVN0cmluZ1trZXldID0gdmFsdWUubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgICAgICAgICAgICByZXR1cm4gdXRpbC51cmlFc2NhcGUoU3RyaW5nKHZhbCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nW2tleV0gPSB1dGlsLnVyaUVzY2FwZShTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcXVlcnlTdHJpbmdbbWVtYmVyLm5hbWVdID0gdXRpbC51cmlFc2NhcGUoU3RyaW5nKHBhcmFtVmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGlmIChxdWVyeVN0cmluZ1NldCkge1xuICAgIHVyaSArPSAodXJpLmluZGV4T2YoJz8nKSA+PSAwID8gJyYnIDogJz8nKTtcbiAgICB2YXIgcGFydHMgPSBbXTtcbiAgICB1dGlsLmFycmF5RWFjaChPYmplY3Qua2V5cyhxdWVyeVN0cmluZykuc29ydCgpLCBmdW5jdGlvbihrZXkpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShxdWVyeVN0cmluZ1trZXldKSkge1xuICAgICAgICBxdWVyeVN0cmluZ1trZXldID0gW3F1ZXJ5U3RyaW5nW2tleV1dO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVyeVN0cmluZ1trZXldLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHBhcnRzLnB1c2godXRpbC51cmlFc2NhcGUoU3RyaW5nKGtleSkpICsgJz0nICsgcXVlcnlTdHJpbmdba2V5XVtpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdXJpICs9IHBhcnRzLmpvaW4oJyYnKTtcbiAgfVxuXG4gIHJldHVybiB1cmk7XG59XG5cbmZ1bmN0aW9uIHBvcHVsYXRlVVJJKHJlcSkge1xuICB2YXIgb3BlcmF0aW9uID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl07XG4gIHZhciBpbnB1dCA9IG9wZXJhdGlvbi5pbnB1dDtcblxuICB2YXIgdXJpID0gZ2VuZXJhdGVVUkkocmVxLmh0dHBSZXF1ZXN0LmVuZHBvaW50LnBhdGgsIG9wZXJhdGlvbi5odHRwUGF0aCwgaW5wdXQsIHJlcS5wYXJhbXMpO1xuICByZXEuaHR0cFJlcXVlc3QucGF0aCA9IHVyaTtcbn1cblxuZnVuY3Rpb24gcG9wdWxhdGVIZWFkZXJzKHJlcSkge1xuICB2YXIgb3BlcmF0aW9uID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl07XG4gIHV0aWwuZWFjaChvcGVyYXRpb24uaW5wdXQubWVtYmVycywgZnVuY3Rpb24gKG5hbWUsIG1lbWJlcikge1xuICAgIHZhciB2YWx1ZSA9IHJlcS5wYXJhbXNbbmFtZV07XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgIGlmIChtZW1iZXIubG9jYXRpb24gPT09ICdoZWFkZXJzJyAmJiBtZW1iZXIudHlwZSA9PT0gJ21hcCcpIHtcbiAgICAgIHV0aWwuZWFjaCh2YWx1ZSwgZnVuY3Rpb24oa2V5LCBtZW1iZXJWYWx1ZSkge1xuICAgICAgICByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1ttZW1iZXIubmFtZSArIGtleV0gPSBtZW1iZXJWYWx1ZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAobWVtYmVyLmxvY2F0aW9uID09PSAnaGVhZGVyJykge1xuICAgICAgdmFsdWUgPSBtZW1iZXIudG9XaXJlRm9ybWF0KHZhbHVlKS50b1N0cmluZygpO1xuICAgICAgaWYgKG1lbWJlci5pc0pzb25WYWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IHV0aWwuYmFzZTY0LmVuY29kZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1ttZW1iZXIubmFtZV0gPSB2YWx1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBidWlsZFJlcXVlc3QocmVxKSB7XG4gIHBvcHVsYXRlTWV0aG9kKHJlcSk7XG4gIHBvcHVsYXRlVVJJKHJlcSk7XG4gIHBvcHVsYXRlSGVhZGVycyhyZXEpO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RXJyb3IoKSB7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3REYXRhKHJlc3ApIHtcbiAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgdmFyIGRhdGEgPSB7fTtcbiAgdmFyIHIgPSByZXNwLmh0dHBSZXNwb25zZTtcbiAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICB2YXIgb3V0cHV0ID0gb3BlcmF0aW9uLm91dHB1dDtcblxuICAvLyBub3JtYWxpemUgaGVhZGVycyBuYW1lcyB0byBsb3dlci1jYXNlZCBrZXlzIGZvciBtYXRjaGluZ1xuICB2YXIgaGVhZGVycyA9IHt9O1xuICB1dGlsLmVhY2goci5oZWFkZXJzLCBmdW5jdGlvbiAoaywgdikge1xuICAgIGhlYWRlcnNbay50b0xvd2VyQ2FzZSgpXSA9IHY7XG4gIH0pO1xuXG4gIHV0aWwuZWFjaChvdXRwdXQubWVtYmVycywgZnVuY3Rpb24obmFtZSwgbWVtYmVyKSB7XG4gICAgdmFyIGhlYWRlciA9IChtZW1iZXIubmFtZSB8fCBuYW1lKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChtZW1iZXIubG9jYXRpb24gPT09ICdoZWFkZXJzJyAmJiBtZW1iZXIudHlwZSA9PT0gJ21hcCcpIHtcbiAgICAgIGRhdGFbbmFtZV0gPSB7fTtcbiAgICAgIHZhciBsb2NhdGlvbiA9IG1lbWJlci5pc0xvY2F0aW9uTmFtZSA/IG1lbWJlci5uYW1lIDogJyc7XG4gICAgICB2YXIgcGF0dGVybiA9IG5ldyBSZWdFeHAoJ14nICsgbG9jYXRpb24gKyAnKC4rKScsICdpJyk7XG4gICAgICB1dGlsLmVhY2goci5oZWFkZXJzLCBmdW5jdGlvbiAoaywgdikge1xuICAgICAgICB2YXIgcmVzdWx0ID0gay5tYXRjaChwYXR0ZXJuKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICAgIGRhdGFbbmFtZV1bcmVzdWx0WzFdXSA9IHY7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAobWVtYmVyLmxvY2F0aW9uID09PSAnaGVhZGVyJykge1xuICAgICAgaWYgKGhlYWRlcnNbaGVhZGVyXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IG1lbWJlci5pc0pzb25WYWx1ZSA/XG4gICAgICAgICAgdXRpbC5iYXNlNjQuZGVjb2RlKGhlYWRlcnNbaGVhZGVyXSkgOlxuICAgICAgICAgIGhlYWRlcnNbaGVhZGVyXTtcbiAgICAgICAgZGF0YVtuYW1lXSA9IG1lbWJlci50b1R5cGUodmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobWVtYmVyLmxvY2F0aW9uID09PSAnc3RhdHVzQ29kZScpIHtcbiAgICAgIGRhdGFbbmFtZV0gPSBwYXJzZUludChyLnN0YXR1c0NvZGUsIDEwKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJlc3AuZGF0YSA9IGRhdGE7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICBidWlsZFJlcXVlc3Q6IGJ1aWxkUmVxdWVzdCxcbiAgZXh0cmFjdEVycm9yOiBleHRyYWN0RXJyb3IsXG4gIGV4dHJhY3REYXRhOiBleHRyYWN0RGF0YSxcbiAgZ2VuZXJhdGVVUkk6IGdlbmVyYXRlVVJJXG59O1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG52YXIgUmVzdCA9IHJlcXVpcmUoJy4vcmVzdCcpO1xudmFyIEpzb24gPSByZXF1aXJlKCcuL2pzb24nKTtcbnZhciBKc29uQnVpbGRlciA9IHJlcXVpcmUoJy4uL2pzb24vYnVpbGRlcicpO1xudmFyIEpzb25QYXJzZXIgPSByZXF1aXJlKCcuLi9qc29uL3BhcnNlcicpO1xuXG5mdW5jdGlvbiBwb3B1bGF0ZUJvZHkocmVxKSB7XG4gIHZhciBidWlsZGVyID0gbmV3IEpzb25CdWlsZGVyKCk7XG4gIHZhciBpbnB1dCA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dLmlucHV0O1xuXG4gIGlmIChpbnB1dC5wYXlsb2FkKSB7XG4gICAgdmFyIHBhcmFtcyA9IHt9O1xuICAgIHZhciBwYXlsb2FkU2hhcGUgPSBpbnB1dC5tZW1iZXJzW2lucHV0LnBheWxvYWRdO1xuICAgIHBhcmFtcyA9IHJlcS5wYXJhbXNbaW5wdXQucGF5bG9hZF07XG4gICAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICBpZiAocGF5bG9hZFNoYXBlLnR5cGUgPT09ICdzdHJ1Y3R1cmUnKSB7XG4gICAgICByZXEuaHR0cFJlcXVlc3QuYm9keSA9IGJ1aWxkZXIuYnVpbGQocGFyYW1zLCBwYXlsb2FkU2hhcGUpO1xuICAgICAgYXBwbHlDb250ZW50VHlwZUhlYWRlcihyZXEpO1xuICAgIH0gZWxzZSB7IC8vIG5vbi1KU09OIHBheWxvYWRcbiAgICAgIHJlcS5odHRwUmVxdWVzdC5ib2R5ID0gcGFyYW1zO1xuICAgICAgaWYgKHBheWxvYWRTaGFwZS50eXBlID09PSAnYmluYXJ5JyB8fCBwYXlsb2FkU2hhcGUuaXNTdHJlYW1pbmcpIHtcbiAgICAgICAgYXBwbHlDb250ZW50VHlwZUhlYWRlcihyZXEsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXEuaHR0cFJlcXVlc3QuYm9keSA9IGJ1aWxkZXIuYnVpbGQocmVxLnBhcmFtcywgaW5wdXQpO1xuICAgIGFwcGx5Q29udGVudFR5cGVIZWFkZXIocmVxKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBseUNvbnRlbnRUeXBlSGVhZGVyKHJlcSwgaXNCaW5hcnkpIHtcbiAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICB2YXIgaW5wdXQgPSBvcGVyYXRpb24uaW5wdXQ7XG5cbiAgaWYgKCFyZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1UeXBlJ10pIHtcbiAgICB2YXIgdHlwZSA9IGlzQmluYXJ5ID8gJ2JpbmFyeS9vY3RldC1zdHJlYW0nIDogJ2FwcGxpY2F0aW9uL2pzb24nO1xuICAgIHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IHR5cGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRSZXF1ZXN0KHJlcSkge1xuICBSZXN0LmJ1aWxkUmVxdWVzdChyZXEpO1xuXG4gIC8vIG5ldmVyIHNlbmQgYm9keSBwYXlsb2FkIG9uIEdFVC9IRUFEL0RFTEVURVxuICBpZiAoWydHRVQnLCAnSEVBRCcsICdERUxFVEUnXS5pbmRleE9mKHJlcS5odHRwUmVxdWVzdC5tZXRob2QpIDwgMCkge1xuICAgIHBvcHVsYXRlQm9keShyZXEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RFcnJvcihyZXNwKSB7XG4gIEpzb24uZXh0cmFjdEVycm9yKHJlc3ApO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RGF0YShyZXNwKSB7XG4gIFJlc3QuZXh0cmFjdERhdGEocmVzcCk7XG5cbiAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICB2YXIgcnVsZXMgPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tyZXEub3BlcmF0aW9uXS5vdXRwdXQgfHwge307XG4gIHZhciBwYXJzZXI7XG4gIHZhciBoYXNFdmVudE91dHB1dCA9IG9wZXJhdGlvbi5oYXNFdmVudE91dHB1dDtcblxuICBpZiAocnVsZXMucGF5bG9hZCkge1xuICAgIHZhciBwYXlsb2FkTWVtYmVyID0gcnVsZXMubWVtYmVyc1tydWxlcy5wYXlsb2FkXTtcbiAgICB2YXIgYm9keSA9IHJlc3AuaHR0cFJlc3BvbnNlLmJvZHk7XG4gICAgaWYgKHBheWxvYWRNZW1iZXIuaXNFdmVudFN0cmVhbSkge1xuICAgICAgcGFyc2VyID0gbmV3IEpzb25QYXJzZXIoKTtcbiAgICAgIHJlc3AuZGF0YVtwYXlsb2FkXSA9IHV0aWwuY3JlYXRlRXZlbnRTdHJlYW0oXG4gICAgICAgIEFXUy5IdHRwQ2xpZW50LnN0cmVhbXNBcGlWZXJzaW9uID09PSAyID8gcmVzcC5odHRwUmVzcG9uc2Uuc3RyZWFtIDogYm9keSxcbiAgICAgICAgcGFyc2VyLFxuICAgICAgICBwYXlsb2FkTWVtYmVyXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAocGF5bG9hZE1lbWJlci50eXBlID09PSAnc3RydWN0dXJlJyB8fCBwYXlsb2FkTWVtYmVyLnR5cGUgPT09ICdsaXN0Jykge1xuICAgICAgdmFyIHBhcnNlciA9IG5ldyBKc29uUGFyc2VyKCk7XG4gICAgICByZXNwLmRhdGFbcnVsZXMucGF5bG9hZF0gPSBwYXJzZXIucGFyc2UoYm9keSwgcGF5bG9hZE1lbWJlcik7XG4gICAgfSBlbHNlIGlmIChwYXlsb2FkTWVtYmVyLnR5cGUgPT09ICdiaW5hcnknIHx8IHBheWxvYWRNZW1iZXIuaXNTdHJlYW1pbmcpIHtcbiAgICAgIHJlc3AuZGF0YVtydWxlcy5wYXlsb2FkXSA9IGJvZHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3AuZGF0YVtydWxlcy5wYXlsb2FkXSA9IHBheWxvYWRNZW1iZXIudG9UeXBlKGJvZHkpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgZGF0YSA9IHJlc3AuZGF0YTtcbiAgICBKc29uLmV4dHJhY3REYXRhKHJlc3ApO1xuICAgIHJlc3AuZGF0YSA9IHV0aWwubWVyZ2UoZGF0YSwgcmVzcC5kYXRhKTtcbiAgfVxufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYnVpbGRSZXF1ZXN0OiBidWlsZFJlcXVlc3QsXG4gIGV4dHJhY3RFcnJvcjogZXh0cmFjdEVycm9yLFxuICBleHRyYWN0RGF0YTogZXh0cmFjdERhdGFcbn07XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG52YXIgUmVzdCA9IHJlcXVpcmUoJy4vcmVzdCcpO1xuXG5mdW5jdGlvbiBwb3B1bGF0ZUJvZHkocmVxKSB7XG4gIHZhciBpbnB1dCA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dLmlucHV0O1xuICB2YXIgYnVpbGRlciA9IG5ldyBBV1MuWE1MLkJ1aWxkZXIoKTtcbiAgdmFyIHBhcmFtcyA9IHJlcS5wYXJhbXM7XG5cbiAgdmFyIHBheWxvYWQgPSBpbnB1dC5wYXlsb2FkO1xuICBpZiAocGF5bG9hZCkge1xuICAgIHZhciBwYXlsb2FkTWVtYmVyID0gaW5wdXQubWVtYmVyc1twYXlsb2FkXTtcbiAgICBwYXJhbXMgPSBwYXJhbXNbcGF5bG9hZF07XG4gICAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICBpZiAocGF5bG9hZE1lbWJlci50eXBlID09PSAnc3RydWN0dXJlJykge1xuICAgICAgdmFyIHJvb3RFbGVtZW50ID0gcGF5bG9hZE1lbWJlci5uYW1lO1xuICAgICAgcmVxLmh0dHBSZXF1ZXN0LmJvZHkgPSBidWlsZGVyLnRvWE1MKHBhcmFtcywgcGF5bG9hZE1lbWJlciwgcm9vdEVsZW1lbnQsIHRydWUpO1xuICAgIH0gZWxzZSB7IC8vIG5vbi14bWwgcGF5bG9hZFxuICAgICAgcmVxLmh0dHBSZXF1ZXN0LmJvZHkgPSBwYXJhbXM7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJlcS5odHRwUmVxdWVzdC5ib2R5ID0gYnVpbGRlci50b1hNTChwYXJhbXMsIGlucHV0LCBpbnB1dC5uYW1lIHx8XG4gICAgICBpbnB1dC5zaGFwZSB8fCB1dGlsLnN0cmluZy51cHBlckZpcnN0KHJlcS5vcGVyYXRpb24pICsgJ1JlcXVlc3QnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZFJlcXVlc3QocmVxKSB7XG4gIFJlc3QuYnVpbGRSZXF1ZXN0KHJlcSk7XG5cbiAgLy8gbmV2ZXIgc2VuZCBib2R5IHBheWxvYWQgb24gR0VUL0hFQURcbiAgaWYgKFsnR0VUJywgJ0hFQUQnXS5pbmRleE9mKHJlcS5odHRwUmVxdWVzdC5tZXRob2QpIDwgMCkge1xuICAgIHBvcHVsYXRlQm9keShyZXEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RFcnJvcihyZXNwKSB7XG4gIFJlc3QuZXh0cmFjdEVycm9yKHJlc3ApO1xuXG4gIHZhciBkYXRhO1xuICB0cnkge1xuICAgIGRhdGEgPSBuZXcgQVdTLlhNTC5QYXJzZXIoKS5wYXJzZShyZXNwLmh0dHBSZXNwb25zZS5ib2R5LnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZGF0YSA9IHtcbiAgICAgIENvZGU6IHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICBNZXNzYWdlOiByZXNwLmh0dHBSZXNwb25zZS5zdGF0dXNNZXNzYWdlXG4gICAgfTtcbiAgfVxuXG4gIGlmIChkYXRhLkVycm9ycykgZGF0YSA9IGRhdGEuRXJyb3JzO1xuICBpZiAoZGF0YS5FcnJvcikgZGF0YSA9IGRhdGEuRXJyb3I7XG4gIGlmIChkYXRhLkNvZGUpIHtcbiAgICByZXNwLmVycm9yID0gdXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgY29kZTogZGF0YS5Db2RlLFxuICAgICAgbWVzc2FnZTogZGF0YS5NZXNzYWdlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgcmVzcC5lcnJvciA9IHV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgIGNvZGU6IHJlc3AuaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICBtZXNzYWdlOiBudWxsXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXh0cmFjdERhdGEocmVzcCkge1xuICBSZXN0LmV4dHJhY3REYXRhKHJlc3ApO1xuXG4gIHZhciBwYXJzZXI7XG4gIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gIHZhciBib2R5ID0gcmVzcC5odHRwUmVzcG9uc2UuYm9keTtcbiAgdmFyIG9wZXJhdGlvbiA9IHJlcS5zZXJ2aWNlLmFwaS5vcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dO1xuICB2YXIgb3V0cHV0ID0gb3BlcmF0aW9uLm91dHB1dDtcblxuICB2YXIgaGFzRXZlbnRPdXRwdXQgPSBvcGVyYXRpb24uaGFzRXZlbnRPdXRwdXQ7XG5cbiAgdmFyIHBheWxvYWQgPSBvdXRwdXQucGF5bG9hZDtcbiAgaWYgKHBheWxvYWQpIHtcbiAgICB2YXIgcGF5bG9hZE1lbWJlciA9IG91dHB1dC5tZW1iZXJzW3BheWxvYWRdO1xuICAgIGlmIChwYXlsb2FkTWVtYmVyLmlzRXZlbnRTdHJlYW0pIHtcbiAgICAgIHBhcnNlciA9IG5ldyBBV1MuWE1MLlBhcnNlcigpO1xuICAgICAgcmVzcC5kYXRhW3BheWxvYWRdID0gdXRpbC5jcmVhdGVFdmVudFN0cmVhbShcbiAgICAgICAgQVdTLkh0dHBDbGllbnQuc3RyZWFtc0FwaVZlcnNpb24gPT09IDIgPyByZXNwLmh0dHBSZXNwb25zZS5zdHJlYW0gOiByZXNwLmh0dHBSZXNwb25zZS5ib2R5LFxuICAgICAgICBwYXJzZXIsXG4gICAgICAgIHBheWxvYWRNZW1iZXJcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChwYXlsb2FkTWVtYmVyLnR5cGUgPT09ICdzdHJ1Y3R1cmUnKSB7XG4gICAgICBwYXJzZXIgPSBuZXcgQVdTLlhNTC5QYXJzZXIoKTtcbiAgICAgIHJlc3AuZGF0YVtwYXlsb2FkXSA9IHBhcnNlci5wYXJzZShib2R5LnRvU3RyaW5nKCksIHBheWxvYWRNZW1iZXIpO1xuICAgIH0gZWxzZSBpZiAocGF5bG9hZE1lbWJlci50eXBlID09PSAnYmluYXJ5JyB8fCBwYXlsb2FkTWVtYmVyLmlzU3RyZWFtaW5nKSB7XG4gICAgICByZXNwLmRhdGFbcGF5bG9hZF0gPSBib2R5O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwLmRhdGFbcGF5bG9hZF0gPSBwYXlsb2FkTWVtYmVyLnRvVHlwZShib2R5KTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoYm9keS5sZW5ndGggPiAwKSB7XG4gICAgcGFyc2VyID0gbmV3IEFXUy5YTUwuUGFyc2VyKCk7XG4gICAgdmFyIGRhdGEgPSBwYXJzZXIucGFyc2UoYm9keS50b1N0cmluZygpLCBvdXRwdXQpO1xuICAgIHV0aWwudXBkYXRlKHJlc3AuZGF0YSwgZGF0YSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGJ1aWxkUmVxdWVzdDogYnVpbGRSZXF1ZXN0LFxuICBleHRyYWN0RXJyb3I6IGV4dHJhY3RFcnJvcixcbiAgZXh0cmFjdERhdGE6IGV4dHJhY3REYXRhXG59O1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG5cbmZ1bmN0aW9uIFF1ZXJ5UGFyYW1TZXJpYWxpemVyKCkge1xufVxuXG5RdWVyeVBhcmFtU2VyaWFsaXplci5wcm90b3R5cGUuc2VyaWFsaXplID0gZnVuY3Rpb24ocGFyYW1zLCBzaGFwZSwgZm4pIHtcbiAgc2VyaWFsaXplU3RydWN0dXJlKCcnLCBwYXJhbXMsIHNoYXBlLCBmbik7XG59O1xuXG5mdW5jdGlvbiB1Y2ZpcnN0KHNoYXBlKSB7XG4gIGlmIChzaGFwZS5pc1F1ZXJ5TmFtZSB8fCBzaGFwZS5hcGkucHJvdG9jb2wgIT09ICdlYzInKSB7XG4gICAgcmV0dXJuIHNoYXBlLm5hbWU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHNoYXBlLm5hbWVbMF0udG9VcHBlckNhc2UoKSArIHNoYXBlLm5hbWUuc3Vic3RyKDEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVN0cnVjdHVyZShwcmVmaXgsIHN0cnVjdCwgcnVsZXMsIGZuKSB7XG4gIHV0aWwuZWFjaChydWxlcy5tZW1iZXJzLCBmdW5jdGlvbihuYW1lLCBtZW1iZXIpIHtcbiAgICB2YXIgdmFsdWUgPSBzdHJ1Y3RbbmFtZV07XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgIHZhciBtZW1iZXJOYW1lID0gdWNmaXJzdChtZW1iZXIpO1xuICAgIG1lbWJlck5hbWUgPSBwcmVmaXggPyBwcmVmaXggKyAnLicgKyBtZW1iZXJOYW1lIDogbWVtYmVyTmFtZTtcbiAgICBzZXJpYWxpemVNZW1iZXIobWVtYmVyTmFtZSwgdmFsdWUsIG1lbWJlciwgZm4pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2VyaWFsaXplTWFwKG5hbWUsIG1hcCwgcnVsZXMsIGZuKSB7XG4gIHZhciBpID0gMTtcbiAgdXRpbC5lYWNoKG1hcCwgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICB2YXIgcHJlZml4ID0gcnVsZXMuZmxhdHRlbmVkID8gJy4nIDogJy5lbnRyeS4nO1xuICAgIHZhciBwb3NpdGlvbiA9IHByZWZpeCArIChpKyspICsgJy4nO1xuICAgIHZhciBrZXlOYW1lID0gcG9zaXRpb24gKyAocnVsZXMua2V5Lm5hbWUgfHwgJ2tleScpO1xuICAgIHZhciB2YWx1ZU5hbWUgPSBwb3NpdGlvbiArIChydWxlcy52YWx1ZS5uYW1lIHx8ICd2YWx1ZScpO1xuICAgIHNlcmlhbGl6ZU1lbWJlcihuYW1lICsga2V5TmFtZSwga2V5LCBydWxlcy5rZXksIGZuKTtcbiAgICBzZXJpYWxpemVNZW1iZXIobmFtZSArIHZhbHVlTmFtZSwgdmFsdWUsIHJ1bGVzLnZhbHVlLCBmbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVMaXN0KG5hbWUsIGxpc3QsIHJ1bGVzLCBmbikge1xuICB2YXIgbWVtYmVyUnVsZXMgPSBydWxlcy5tZW1iZXIgfHwge307XG5cbiAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgZm4uY2FsbCh0aGlzLCBuYW1lLCBudWxsKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB1dGlsLmFycmF5RWFjaChsaXN0LCBmdW5jdGlvbiAodiwgbikge1xuICAgIHZhciBzdWZmaXggPSAnLicgKyAobiArIDEpO1xuICAgIGlmIChydWxlcy5hcGkucHJvdG9jb2wgPT09ICdlYzInKSB7XG4gICAgICAvLyBEbyBub3RoaW5nIGZvciBFQzJcbiAgICAgIHN1ZmZpeCA9IHN1ZmZpeCArICcnOyAvLyBtYWtlIGxpbnRlciBoYXBweVxuICAgIH0gZWxzZSBpZiAocnVsZXMuZmxhdHRlbmVkKSB7XG4gICAgICBpZiAobWVtYmVyUnVsZXMubmFtZSkge1xuICAgICAgICB2YXIgcGFydHMgPSBuYW1lLnNwbGl0KCcuJyk7XG4gICAgICAgIHBhcnRzLnBvcCgpO1xuICAgICAgICBwYXJ0cy5wdXNoKHVjZmlyc3QobWVtYmVyUnVsZXMpKTtcbiAgICAgICAgbmFtZSA9IHBhcnRzLmpvaW4oJy4nKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3VmZml4ID0gJy4nICsgKG1lbWJlclJ1bGVzLm5hbWUgPyBtZW1iZXJSdWxlcy5uYW1lIDogJ21lbWJlcicpICsgc3VmZml4O1xuICAgIH1cbiAgICBzZXJpYWxpemVNZW1iZXIobmFtZSArIHN1ZmZpeCwgdiwgbWVtYmVyUnVsZXMsIGZuKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZU1lbWJlcihuYW1lLCB2YWx1ZSwgcnVsZXMsIGZuKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIGlmIChydWxlcy50eXBlID09PSAnc3RydWN0dXJlJykge1xuICAgIHNlcmlhbGl6ZVN0cnVjdHVyZShuYW1lLCB2YWx1ZSwgcnVsZXMsIGZuKTtcbiAgfSBlbHNlIGlmIChydWxlcy50eXBlID09PSAnbGlzdCcpIHtcbiAgICBzZXJpYWxpemVMaXN0KG5hbWUsIHZhbHVlLCBydWxlcywgZm4pO1xuICB9IGVsc2UgaWYgKHJ1bGVzLnR5cGUgPT09ICdtYXAnKSB7XG4gICAgc2VyaWFsaXplTWFwKG5hbWUsIHZhbHVlLCBydWxlcywgZm4pO1xuICB9IGVsc2Uge1xuICAgIGZuKG5hbWUsIHJ1bGVzLnRvV2lyZUZvcm1hdCh2YWx1ZSkudG9TdHJpbmcoKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBRdWVyeVBhcmFtU2VyaWFsaXplcjtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBzZXJ2aWNlID0gbnVsbDtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIGFwaSA9IHtcbiAgICBzaWduYXR1cmVWZXJzaW9uOiAndjQnLFxuICAgIHNpZ25pbmdOYW1lOiAncmRzLWRiJ1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIHJlcXVpcmVkQXV0aFRva2VuT3B0aW9ucyA9IHtcbiAgICByZWdpb246ICdzdHJpbmcnLFxuICAgIGhvc3RuYW1lOiAnc3RyaW5nJyxcbiAgICBwb3J0OiAnbnVtYmVyJyxcbiAgICB1c2VybmFtZTogJ3N0cmluZydcbn07XG5cbi8qKlxuICogQSBzaWduZXIgb2JqZWN0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIGFuIGF1dGggdG9rZW4gdG8gYSBkYXRhYmFzZS5cbiAqL1xuQVdTLlJEUy5TaWduZXIgPSBBV1MudXRpbC5pbmhlcml0KHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgc2lnbmVyIG9iamVjdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBhbiBhdXRoIHRva2VuLlxuICAgICAqXG4gICAgICogQG9wdGlvbiBvcHRpb25zIGNyZWRlbnRpYWxzIFtBV1MuQ3JlZGVudGlhbHNdIHRoZSBBV1MgY3JlZGVudGlhbHNcbiAgICAgKiAgIHRvIHNpZ24gcmVxdWVzdHMgd2l0aC4gVXNlcyB0aGUgZGVmYXVsdCBjcmVkZW50aWFsIHByb3ZpZGVyIGNoYWluXG4gICAgICogICBpZiBub3Qgc3BlY2lmaWVkLlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyBob3N0bmFtZSBbU3RyaW5nXSB0aGUgaG9zdG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIGNvbm5lY3QgdG8uXG4gICAgICogQG9wdGlvbiBvcHRpb25zIHBvcnQgW051bWJlcl0gdGhlIHBvcnQgbnVtYmVyIHRoZSBkYXRhYmFzZSBpcyBsaXN0ZW5pbmcgb24uXG4gICAgICogQG9wdGlvbiBvcHRpb25zIHJlZ2lvbiBbU3RyaW5nXSB0aGUgcmVnaW9uIHRoZSBkYXRhYmFzZSBpcyBsb2NhdGVkIGluLlxuICAgICAqIEBvcHRpb24gb3B0aW9ucyB1c2VybmFtZSBbU3RyaW5nXSB0aGUgdXNlcm5hbWUgdG8gbG9naW4gYXMuXG4gICAgICogQGV4YW1wbGUgUGFzc2luZyBpbiBvcHRpb25zIHRvIGNvbnN0cnVjdG9yXG4gICAgICogICB2YXIgc2lnbmVyID0gbmV3IEFXUy5SRFMuU2lnbmVyKHtcbiAgICAgKiAgICAgY3JlZGVudGlhbHM6IG5ldyBBV1MuU2hhcmVkSW5pRmlsZUNyZWRlbnRpYWxzKHtwcm9maWxlOiAnZGVmYXVsdCd9KSxcbiAgICAgKiAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICAgKiAgICAgaG9zdG5hbWU6ICdkYi51cy1lYXN0LTEucmRzLmFtYXpvbmF3cy5jb20nLFxuICAgICAqICAgICBwb3J0OiA4MDAwLFxuICAgICAqICAgICB1c2VybmFtZTogJ25hbWUnXG4gICAgICogICB9KTtcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gU2lnbmVyKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQGFwaSBwcml2YXRlXG4gICAgICogU3RyaXBzIHRoZSBwcm90b2NvbCBmcm9tIGEgdXJsLlxuICAgICAqL1xuICAgIGNvbnZlcnRVcmxUb0F1dGhUb2tlbjogZnVuY3Rpb24gY29udmVydFVybFRvQXV0aFRva2VuKHVybCkge1xuICAgICAgICAvLyB3ZSBhcmUgYWx3YXlzIHVzaW5nIGh0dHBzIGFzIHRoZSBwcm90b2NvbFxuICAgICAgICB2YXIgcHJvdG9jb2wgPSAnaHR0cHM6Ly8nO1xuICAgICAgICBpZiAodXJsLmluZGV4T2YocHJvdG9jb2wpID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdXJsLnN1YnN0cmluZyhwcm90b2NvbC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEBvdmVybG9hZCBnZXRBdXRoVG9rZW4ob3B0aW9ucyA9IHt9LCBbY2FsbGJhY2tdKVxuICAgICAqICAgR2VuZXJhdGUgYW4gYXV0aCB0b2tlbiB0byBhIGRhdGFiYXNlLlxuICAgICAqICAgQG5vdGUgWW91IG11c3QgZW5zdXJlIHRoYXQgeW91IGhhdmUgc3RhdGljIG9yIHByZXZpb3VzbHkgcmVzb2x2ZWRcbiAgICAgKiAgICAgY3JlZGVudGlhbHMgaWYgeW91IGNhbGwgdGhpcyBtZXRob2Qgc3luY2hyb25vdXNseSAod2l0aCBubyBjYWxsYmFjayksXG4gICAgICogICAgIG90aGVyd2lzZSBpdCBtYXkgbm90IHByb3Blcmx5IHNpZ24gdGhlIHJlcXVlc3QuIElmIHlvdSBjYW5ub3QgZ3VhcmFudGVlXG4gICAgICogICAgIHRoaXMgKHlvdSBhcmUgdXNpbmcgYW4gYXN5bmNocm9ub3VzIGNyZWRlbnRpYWwgcHJvdmlkZXIsIGkuZS4sIEVDMlxuICAgICAqICAgICBJQU0gcm9sZXMpLCB5b3Ugc2hvdWxkIGFsd2F5cyBjYWxsIHRoaXMgbWV0aG9kIHdpdGggYW4gYXN5bmNocm9ub3VzXG4gICAgICogICAgIGNhbGxiYWNrLlxuICAgICAqXG4gICAgICogICBAcGFyYW0gb3B0aW9ucyBbbWFwXSBUaGUgZmllbGRzIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgYW4gYXV0aCB0b2tlbi5cbiAgICAgKiAgICAgQW55IG9wdGlvbnMgc3BlY2lmaWVkIGhlcmUgd2lsbCBiZSBtZXJnZWQgb24gdG9wIG9mIGFueSBvcHRpb25zIHBhc3NlZFxuICAgICAqICAgICB0byBBV1MuUkRTLlNpZ25lcjpcbiAgICAgKlxuICAgICAqICAgICAqICoqY3JlZGVudGlhbHMqKiAoQVdTLkNyZWRlbnRpYWxzKSAmbWRhc2g7IHRoZSBBV1MgY3JlZGVudGlhbHNcbiAgICAgKiAgICAgICAgIHRvIHNpZ24gcmVxdWVzdHMgd2l0aC4gVXNlcyB0aGUgZGVmYXVsdCBjcmVkZW50aWFsIHByb3ZpZGVyIGNoYWluXG4gICAgICogICAgICAgICBpZiBub3Qgc3BlY2lmaWVkLlxuICAgICAqICAgICAqICoqaG9zdG5hbWUqKiAoU3RyaW5nKSAmbWRhc2g7IHRoZSBob3N0bmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY29ubmVjdCB0by5cbiAgICAgKiAgICAgKiAqKnBvcnQqKiAoTnVtYmVyKSAmbWRhc2g7IHRoZSBwb3J0IG51bWJlciB0aGUgZGF0YWJhc2UgaXMgbGlzdGVuaW5nIG9uLlxuICAgICAqICAgICAqICoqcmVnaW9uKiogKFN0cmluZykgJm1kYXNoOyB0aGUgcmVnaW9uIHRoZSBkYXRhYmFzZSBpcyBsb2NhdGVkIGluLlxuICAgICAqICAgICAqICoqdXNlcm5hbWUqKiAoU3RyaW5nKSAmbWRhc2g7IHRoZSB1c2VybmFtZSB0byBsb2dpbiBhcy5cbiAgICAgKiAgIEByZXR1cm4gW1N0cmluZ10gaWYgY2FsbGVkIHN5bmNocm9ub3VzbHkgKHdpdGggbm8gY2FsbGJhY2spLCByZXR1cm5zIHRoZVxuICAgICAqICAgICBhdXRoIHRva2VuLlxuICAgICAqICAgQHJldHVybiBbbnVsbF0gbm90aGluZyBpcyByZXR1cm5lZCBpZiBhIGNhbGxiYWNrIGlzIHByb3ZpZGVkLlxuICAgICAqICAgQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uIChlcnIsIHRva2VuKVxuICAgICAqICAgICBJZiBhIGNhbGxiYWNrIGlzIHN1cHBsaWVkLCBpdCBpcyBjYWxsZWQgd2hlbiBhbiBhdXRoIHRva2VuIGhhcyBiZWVuIGdlbmVyYXRlZC5cbiAgICAgKiAgICAgQHBhcmFtIGVyciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgc2lnbmVyLlxuICAgICAqICAgICBAcGFyYW0gdG9rZW4gW1N0cmluZ10gdGhlIGF1dGggdG9rZW4uXG4gICAgICpcbiAgICAgKiAgIEBleGFtcGxlIEdlbmVyYXRpbmcgYW4gYXV0aCB0b2tlbiBzeW5jaHJvbm91c2x5XG4gICAgICogICAgIHZhciBzaWduZXIgPSBuZXcgQVdTLlJEUy5TaWduZXIoe1xuICAgICAqICAgICAgIC8vIGNvbmZpZ3VyZSBvcHRpb25zXG4gICAgICogICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICAgKiAgICAgICB1c2VybmFtZTogJ2RlZmF1bHQnLFxuICAgICAqICAgICAgIGhvc3RuYW1lOiAnZGIudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20nLFxuICAgICAqICAgICAgIHBvcnQ6IDgwMDBcbiAgICAgKiAgICAgfSk7XG4gICAgICogICAgIHZhciB0b2tlbiA9IHNpZ25lci5nZXRBdXRoVG9rZW4oe1xuICAgICAqICAgICAgIC8vIHRoZXNlIG9wdGlvbnMgYXJlIG1lcmdlZCB3aXRoIHRob3NlIGRlZmluZWQgd2hlbiBjcmVhdGluZyB0aGUgc2lnbmVyLCBvdmVycmlkaW5nIGluIHRoZSBjYXNlIG9mIGEgZHVwbGljYXRlIG9wdGlvblxuICAgICAqICAgICAgIC8vIGNyZWRlbnRpYWxzIGFyZSBub3Qgc3BlY2lmaWVkIGhlcmUgb3Igd2hlbiBjcmVhdGluZyB0aGUgc2lnbmVyLCBzbyBkZWZhdWx0IGNyZWRlbnRpYWwgcHJvdmlkZXIgd2lsbCBiZSB1c2VkXG4gICAgICogICAgICAgdXNlcm5hbWU6ICd0ZXN0JyAvLyBvdmVycmlkaW5nIHVzZXJuYW1lXG4gICAgICogICAgIH0pO1xuICAgICAqICAgQGV4YW1wbGUgR2VuZXJhdGluZyBhbiBhdXRoIHRva2VuIGFzeW5jaHJvbm91c2x5XG4gICAgICogICAgIHZhciBzaWduZXIgPSBuZXcgQVdTLlJEUy5TaWduZXIoe1xuICAgICAqICAgICAgIC8vIGNvbmZpZ3VyZSBvcHRpb25zXG4gICAgICogICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICAgKiAgICAgICB1c2VybmFtZTogJ2RlZmF1bHQnLFxuICAgICAqICAgICAgIGhvc3RuYW1lOiAnZGIudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20nLFxuICAgICAqICAgICAgIHBvcnQ6IDgwMDBcbiAgICAgKiAgICAgfSk7XG4gICAgICogICAgIHNpZ25lci5nZXRBdXRoVG9rZW4oe1xuICAgICAqICAgICAgIC8vIHRoZXNlIG9wdGlvbnMgYXJlIG1lcmdlZCB3aXRoIHRob3NlIGRlZmluZWQgd2hlbiBjcmVhdGluZyB0aGUgc2lnbmVyLCBvdmVycmlkaW5nIGluIHRoZSBjYXNlIG9mIGEgZHVwbGljYXRlIG9wdGlvblxuICAgICAqICAgICAgIC8vIGNyZWRlbnRpYWxzIGFyZSBub3Qgc3BlY2lmaWVkIGhlcmUgb3Igd2hlbiBjcmVhdGluZyB0aGUgc2lnbmVyLCBzbyBkZWZhdWx0IGNyZWRlbnRpYWwgcHJvdmlkZXIgd2lsbCBiZSB1c2VkXG4gICAgICogICAgICAgdXNlcm5hbWU6ICd0ZXN0JyAvLyBvdmVycmlkaW5nIHVzZXJuYW1lXG4gICAgICogICAgIH0sIGZ1bmN0aW9uKGVyciwgdG9rZW4pIHtcbiAgICAgKiAgICAgICBpZiAoZXJyKSB7XG4gICAgICogICAgICAgICAvLyBoYW5kbGUgZXJyb3JcbiAgICAgKiAgICAgICB9IGVsc2Uge1xuICAgICAqICAgICAgICAgLy8gdXNlIHRva2VuXG4gICAgICogICAgICAgfVxuICAgICAqICAgICB9KTtcbiAgICAgKlxuICAgICAqL1xuICAgIGdldEF1dGhUb2tlbjogZnVuY3Rpb24gZ2V0QXV0aFRva2VuKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJyAmJiBjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgICB2YXIgaGFzQ2FsbGJhY2sgPSB0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbic7XG4gICAgICAgIC8vIG1lcmdlIG9wdGlvbnMgd2l0aCBleGlzdGluZyBvcHRpb25zXG4gICAgICAgIG9wdGlvbnMgPSBBV1MudXRpbC5tZXJnZSh0aGlzLm9wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICAvLyB2YWxpZGF0ZSBvcHRpb25zXG4gICAgICAgIHZhciBvcHRpb25zVmFsaWRhdGlvbiA9IHRoaXMudmFsaWRhdGVBdXRoVG9rZW5PcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9uc1ZhbGlkYXRpb24gIT09IHRydWUpIHtcbiAgICAgICAgICAgIGlmIChoYXNDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhvcHRpb25zVmFsaWRhdGlvbiwgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBvcHRpb25zVmFsaWRhdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDE1IG1pbnV0ZXNcbiAgICAgICAgdmFyIGV4cGlyZXMgPSA5MDA7XG4gICAgICAgIC8vIGNyZWF0ZSBzZXJ2aWNlIHRvIGdlbmVyYXRlIGEgcmVxdWVzdCBmcm9tXG4gICAgICAgIHZhciBzZXJ2aWNlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHJlZ2lvbjogb3B0aW9ucy5yZWdpb24sXG4gICAgICAgICAgICBlbmRwb2ludDogbmV3IEFXUy5FbmRwb2ludChvcHRpb25zLmhvc3RuYW1lICsgJzonICsgb3B0aW9ucy5wb3J0KSxcbiAgICAgICAgICAgIHBhcmFtVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBzaWduYXR1cmVWZXJzaW9uOiAndjQnXG4gICAgICAgIH07XG4gICAgICAgIGlmIChvcHRpb25zLmNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICBzZXJ2aWNlT3B0aW9ucy5jcmVkZW50aWFscyA9IG9wdGlvbnMuY3JlZGVudGlhbHM7XG4gICAgICAgIH1cbiAgICAgICAgc2VydmljZSA9IG5ldyBBV1MuU2VydmljZShzZXJ2aWNlT3B0aW9ucyk7XG4gICAgICAgIC8vIGVuc3VyZSB0aGUgU0RLIGlzIHVzaW5nIHNpZ3Y0IHNpZ25pbmcgKGNvbmZpZyBpcyBub3QgZW5vdWdoKVxuICAgICAgICBzZXJ2aWNlLmFwaSA9IGFwaTtcblxuICAgICAgICB2YXIgcmVxdWVzdCA9IHNlcnZpY2UubWFrZVJlcXVlc3QoKTtcbiAgICAgICAgLy8gYWRkIGxpc3RlbmVycyB0byByZXF1ZXN0IHRvIHByb3Blcmx5IGJ1aWxkIGF1dGggdG9rZW5cbiAgICAgICAgdGhpcy5tb2RpZnlSZXF1ZXN0Rm9yQXV0aFRva2VuKHJlcXVlc3QsIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChoYXNDYWxsYmFjaykge1xuICAgICAgICAgICAgcmVxdWVzdC5wcmVzaWduKGV4cGlyZXMsIGZ1bmN0aW9uKGVyciwgdXJsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAgICAgICAgICB1cmwgPSBzZWxmLmNvbnZlcnRVcmxUb0F1dGhUb2tlbih1cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIHVybCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciB1cmwgPSByZXF1ZXN0LnByZXNpZ24oZXhwaXJlcyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VXJsVG9BdXRoVG9rZW4odXJsKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAYXBpIHByaXZhdGVcbiAgICAgKiBNb2RpZmllcyBhIHJlcXVlc3QgdG8gYWxsb3cgdGhlIHByZXNpZ25lciB0byBnZW5lcmF0ZSBhbiBhdXRoIHRva2VuLlxuICAgICAqL1xuICAgIG1vZGlmeVJlcXVlc3RGb3JBdXRoVG9rZW46IGZ1bmN0aW9uIG1vZGlmeVJlcXVlc3RGb3JBdXRoVG9rZW4ocmVxdWVzdCwgb3B0aW9ucykge1xuICAgICAgICByZXF1ZXN0Lm9uKCdidWlsZCcsIHJlcXVlc3QuYnVpbGRBc0dldCk7XG4gICAgICAgIHZhciBodHRwUmVxdWVzdCA9IHJlcXVlc3QuaHR0cFJlcXVlc3Q7XG4gICAgICAgIGh0dHBSZXF1ZXN0LmJvZHkgPSBBV1MudXRpbC5xdWVyeVBhcmFtc1RvU3RyaW5nKHtcbiAgICAgICAgICAgIEFjdGlvbjogJ2Nvbm5lY3QnLFxuICAgICAgICAgICAgREJVc2VyOiBvcHRpb25zLnVzZXJuYW1lXG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAYXBpIHByaXZhdGVcbiAgICAgKiBWYWxpZGF0ZXMgdGhhdCB0aGUgb3B0aW9ucyBwYXNzZWQgaW4gY29udGFpbiBhbGwgdGhlIGtleXMgd2l0aCB2YWx1ZXMgb2YgdGhlIGNvcnJlY3QgdHlwZSB0aGF0XG4gICAgICogICBhcmUgbmVlZGVkIHRvIGdlbmVyYXRlIGFuIGF1dGggdG9rZW4uXG4gICAgICovXG4gICAgdmFsaWRhdGVBdXRoVG9rZW5PcHRpb25zOiBmdW5jdGlvbiB2YWxpZGF0ZUF1dGhUb2tlbk9wdGlvbnMob3B0aW9ucykge1xuICAgICAgICAvLyBpdGVyYXRlIG92ZXIgYWxsIGtleXMgaW4gb3B0aW9uc1xuICAgICAgICB2YXIgbWVzc2FnZSA9ICcnO1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHJlcXVpcmVkQXV0aFRva2VuT3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVxdWlyZWRBdXRoVG9rZW5PcHRpb25zLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNba2V5XSAhPT0gcmVxdWlyZWRBdXRoVG9rZW5PcHRpb25zW2tleV0pIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICdvcHRpb24gXFwnJyArIGtleSArICdcXCcgc2hvdWxkIGhhdmUgYmVlbiB0eXBlIFxcJycgKyByZXF1aXJlZEF1dGhUb2tlbk9wdGlvbnNba2V5XSArICdcXCcsIHdhcyBcXCcnICsgdHlwZW9mIG9wdGlvbnNba2V5XSArICdcXCcuXFxuJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWVzc2FnZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgICAgICAgICAgIGNvZGU6ICdJbnZhbGlkUGFyYW1ldGVyJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59KTsiLCJ2YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIHJlZ2lvbkNvbmZpZyA9IHJlcXVpcmUoJy4vcmVnaW9uX2NvbmZpZ19kYXRhLmpzb24nKTtcblxuZnVuY3Rpb24gZ2VuZXJhdGVSZWdpb25QcmVmaXgocmVnaW9uKSB7XG4gIGlmICghcmVnaW9uKSByZXR1cm4gbnVsbDtcblxuICB2YXIgcGFydHMgPSByZWdpb24uc3BsaXQoJy0nKTtcbiAgaWYgKHBhcnRzLmxlbmd0aCA8IDMpIHJldHVybiBudWxsO1xuICByZXR1cm4gcGFydHMuc2xpY2UoMCwgcGFydHMubGVuZ3RoIC0gMikuam9pbignLScpICsgJy0qJztcbn1cblxuZnVuY3Rpb24gZGVyaXZlZEtleXMoc2VydmljZSkge1xuICB2YXIgcmVnaW9uID0gc2VydmljZS5jb25maWcucmVnaW9uO1xuICB2YXIgcmVnaW9uUHJlZml4ID0gZ2VuZXJhdGVSZWdpb25QcmVmaXgocmVnaW9uKTtcbiAgdmFyIGVuZHBvaW50UHJlZml4ID0gc2VydmljZS5hcGkuZW5kcG9pbnRQcmVmaXg7XG5cbiAgcmV0dXJuIFtcbiAgICBbcmVnaW9uLCBlbmRwb2ludFByZWZpeF0sXG4gICAgW3JlZ2lvblByZWZpeCwgZW5kcG9pbnRQcmVmaXhdLFxuICAgIFtyZWdpb24sICcqJ10sXG4gICAgW3JlZ2lvblByZWZpeCwgJyonXSxcbiAgICBbJyonLCBlbmRwb2ludFByZWZpeF0sXG4gICAgWycqJywgJyonXVxuICBdLm1hcChmdW5jdGlvbihpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW1bMF0gJiYgaXRlbVsxXSA/IGl0ZW0uam9pbignLycpIDogbnVsbDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFwcGx5Q29uZmlnKHNlcnZpY2UsIGNvbmZpZykge1xuICB1dGlsLmVhY2goY29uZmlnLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgaWYgKGtleSA9PT0gJ2dsb2JhbEVuZHBvaW50JykgcmV0dXJuO1xuICAgIGlmIChzZXJ2aWNlLmNvbmZpZ1trZXldID09PSB1bmRlZmluZWQgfHwgc2VydmljZS5jb25maWdba2V5XSA9PT0gbnVsbCkge1xuICAgICAgc2VydmljZS5jb25maWdba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbmZpZ3VyZUVuZHBvaW50KHNlcnZpY2UpIHtcbiAgdmFyIGtleXMgPSBkZXJpdmVkS2V5cyhzZXJ2aWNlKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgaWYgKCFrZXkpIGNvbnRpbnVlO1xuXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWdpb25Db25maWcucnVsZXMsIGtleSkpIHtcbiAgICAgIHZhciBjb25maWcgPSByZWdpb25Db25maWcucnVsZXNba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25maWcgPSByZWdpb25Db25maWcucGF0dGVybnNbY29uZmlnXTtcbiAgICAgIH1cblxuICAgICAgLy8gc2V0IGR1YWxzdGFjayBlbmRwb2ludFxuICAgICAgaWYgKHNlcnZpY2UuY29uZmlnLnVzZUR1YWxzdGFjayAmJiB1dGlsLmlzRHVhbHN0YWNrQXZhaWxhYmxlKHNlcnZpY2UpKSB7XG4gICAgICAgIGNvbmZpZyA9IHV0aWwuY29weShjb25maWcpO1xuICAgICAgICBjb25maWcuZW5kcG9pbnQgPSAne3NlcnZpY2V9LmR1YWxzdGFjay57cmVnaW9ufS5hbWF6b25hd3MuY29tJztcbiAgICAgIH1cblxuICAgICAgLy8gc2V0IGdsb2JhbCBlbmRwb2ludFxuICAgICAgc2VydmljZS5pc0dsb2JhbEVuZHBvaW50ID0gISFjb25maWcuZ2xvYmFsRW5kcG9pbnQ7XG5cbiAgICAgIC8vIHNpZ25hdHVyZSB2ZXJzaW9uXG4gICAgICBpZiAoIWNvbmZpZy5zaWduYXR1cmVWZXJzaW9uKSBjb25maWcuc2lnbmF0dXJlVmVyc2lvbiA9ICd2NCc7XG5cbiAgICAgIC8vIG1lcmdlIGNvbmZpZ1xuICAgICAgYXBwbHlDb25maWcoc2VydmljZSwgY29uZmlnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBjb25maWd1cmVFbmRwb2ludDtcbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJydWxlc1wiOiB7XG4gICAgXCIqLypcIjoge1xuICAgICAgXCJlbmRwb2ludFwiOiBcIntzZXJ2aWNlfS57cmVnaW9ufS5hbWF6b25hd3MuY29tXCJcbiAgICB9LFxuICAgIFwiY24tKi8qXCI6IHtcbiAgICAgIFwiZW5kcG9pbnRcIjogXCJ7c2VydmljZX0ue3JlZ2lvbn0uYW1hem9uYXdzLmNvbS5jblwiXG4gICAgfSxcbiAgICBcIiovYnVkZ2V0c1wiOiBcImdsb2JhbFNTTFwiLFxuICAgIFwiKi9jbG91ZGZyb250XCI6IFwiZ2xvYmFsU1NMXCIsXG4gICAgXCIqL2lhbVwiOiBcImdsb2JhbFNTTFwiLFxuICAgIFwiKi9zdHNcIjogXCJnbG9iYWxTU0xcIixcbiAgICBcIiovaW1wb3J0ZXhwb3J0XCI6IHtcbiAgICAgIFwiZW5kcG9pbnRcIjogXCJ7c2VydmljZX0uYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjJcIixcbiAgICAgIFwiZ2xvYmFsRW5kcG9pbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCIqL3JvdXRlNTNcIjoge1xuICAgICAgXCJlbmRwb2ludFwiOiBcImh0dHBzOi8ve3NlcnZpY2V9LmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInYzaHR0cHNcIixcbiAgICAgIFwiZ2xvYmFsRW5kcG9pbnRcIjogdHJ1ZVxuICAgIH0sXG4gICAgXCIqL3dhZlwiOiBcImdsb2JhbFNTTFwiLFxuICAgIFwidXMtZ292LSovaWFtXCI6IFwiZ2xvYmFsR292Q2xvdWRcIixcbiAgICBcInVzLWdvdi0qL3N0c1wiOiB7XG4gICAgICBcImVuZHBvaW50XCI6IFwie3NlcnZpY2V9LntyZWdpb259LmFtYXpvbmF3cy5jb21cIlxuICAgIH0sXG4gICAgXCJ1cy1nb3Ytd2VzdC0xL3MzXCI6IFwiczNzaWduYXR1cmVcIixcbiAgICBcInVzLXdlc3QtMS9zM1wiOiBcInMzc2lnbmF0dXJlXCIsXG4gICAgXCJ1cy13ZXN0LTIvczNcIjogXCJzM3NpZ25hdHVyZVwiLFxuICAgIFwiZXUtd2VzdC0xL3MzXCI6IFwiczNzaWduYXR1cmVcIixcbiAgICBcImFwLXNvdXRoZWFzdC0xL3MzXCI6IFwiczNzaWduYXR1cmVcIixcbiAgICBcImFwLXNvdXRoZWFzdC0yL3MzXCI6IFwiczNzaWduYXR1cmVcIixcbiAgICBcImFwLW5vcnRoZWFzdC0xL3MzXCI6IFwiczNzaWduYXR1cmVcIixcbiAgICBcInNhLWVhc3QtMS9zM1wiOiBcInMzc2lnbmF0dXJlXCIsXG4gICAgXCJ1cy1lYXN0LTEvczNcIjoge1xuICAgICAgXCJlbmRwb2ludFwiOiBcIntzZXJ2aWNlfS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJzM1wiXG4gICAgfSxcbiAgICBcInVzLWVhc3QtMS9zZGJcIjoge1xuICAgICAgXCJlbmRwb2ludFwiOiBcIntzZXJ2aWNlfS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBcInNpZ25hdHVyZVZlcnNpb25cIjogXCJ2MlwiXG4gICAgfSxcbiAgICBcIiovc2RiXCI6IHtcbiAgICAgIFwiZW5kcG9pbnRcIjogXCJ7c2VydmljZX0ue3JlZ2lvbn0uYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJzaWduYXR1cmVWZXJzaW9uXCI6IFwidjJcIlxuICAgIH1cbiAgfSxcblxuICBcInBhdHRlcm5zXCI6IHtcbiAgICBcImdsb2JhbFNTTFwiOiB7XG4gICAgICBcImVuZHBvaW50XCI6IFwiaHR0cHM6Ly97c2VydmljZX0uYW1hem9uYXdzLmNvbVwiLFxuICAgICAgXCJnbG9iYWxFbmRwb2ludFwiOiB0cnVlXG4gICAgfSxcbiAgICBcImdsb2JhbEdvdkNsb3VkXCI6IHtcbiAgICAgIFwiZW5kcG9pbnRcIjogXCJ7c2VydmljZX0udXMtZ292LmFtYXpvbmF3cy5jb21cIlxuICAgIH0sXG4gICAgXCJzM3NpZ25hdHVyZVwiOiB7XG4gICAgICBcImVuZHBvaW50XCI6IFwie3NlcnZpY2V9LntyZWdpb259LmFtYXpvbmF3cy5jb21cIixcbiAgICAgIFwic2lnbmF0dXJlVmVyc2lvblwiOiBcInMzXCJcbiAgICB9XG4gIH1cbn1cbiIsInZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcbnZhciBBY2NlcHRvclN0YXRlTWFjaGluZSA9IHJlcXVpcmUoJy4vc3RhdGVfbWFjaGluZScpO1xudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xudmFyIGRvbWFpbiA9IEFXUy51dGlsLmRvbWFpbjtcbnZhciBqbWVzcGF0aCA9IHJlcXVpcmUoJ2ptZXNwYXRoJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBoYXJkRXJyb3JTdGF0ZXMgPSB7c3VjY2VzczogMSwgZXJyb3I6IDEsIGNvbXBsZXRlOiAxfTtcblxuZnVuY3Rpb24gaXNUZXJtaW5hbFN0YXRlKG1hY2hpbmUpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoYXJkRXJyb3JTdGF0ZXMsIG1hY2hpbmUuX2FzbS5jdXJyZW50U3RhdGUpO1xufVxuXG52YXIgZnNtID0gbmV3IEFjY2VwdG9yU3RhdGVNYWNoaW5lKCk7XG5mc20uc2V0dXBTdGF0ZXMgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHRyYW5zaXRpb24gPSBmdW5jdGlvbihfLCBkb25lKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYuX2hhbHRIYW5kbGVyc09uRXJyb3IgPSBmYWxzZTtcblxuICAgIHNlbGYuZW1pdChzZWxmLl9hc20uY3VycmVudFN0YXRlLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgaWYgKGlzVGVybWluYWxTdGF0ZShzZWxmKSkge1xuICAgICAgICAgIGlmIChkb21haW4gJiYgc2VsZi5kb21haW4gaW5zdGFuY2VvZiBkb21haW4uRG9tYWluKSB7XG4gICAgICAgICAgICBlcnIuZG9tYWluRW1pdHRlciA9IHNlbGY7XG4gICAgICAgICAgICBlcnIuZG9tYWluID0gc2VsZi5kb21haW47XG4gICAgICAgICAgICBlcnIuZG9tYWluVGhyb3duID0gZmFsc2U7XG4gICAgICAgICAgICBzZWxmLmRvbWFpbi5lbWl0KCdlcnJvcicsIGVycik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VsZi5yZXNwb25zZS5lcnJvciA9IGVycjtcbiAgICAgICAgICBkb25lKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvbmUoc2VsZi5yZXNwb25zZS5lcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgfTtcblxuICB0aGlzLmFkZFN0YXRlKCd2YWxpZGF0ZScsICdidWlsZCcsICdlcnJvcicsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCdidWlsZCcsICdhZnRlckJ1aWxkJywgJ3Jlc3RhcnQnLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnYWZ0ZXJCdWlsZCcsICdzaWduJywgJ3Jlc3RhcnQnLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnc2lnbicsICdzZW5kJywgJ3JldHJ5JywgdHJhbnNpdGlvbik7XG4gIHRoaXMuYWRkU3RhdGUoJ3JldHJ5JywgJ2FmdGVyUmV0cnknLCAnYWZ0ZXJSZXRyeScsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCdhZnRlclJldHJ5JywgJ3NpZ24nLCAnZXJyb3InLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnc2VuZCcsICd2YWxpZGF0ZVJlc3BvbnNlJywgJ3JldHJ5JywgdHJhbnNpdGlvbik7XG4gIHRoaXMuYWRkU3RhdGUoJ3ZhbGlkYXRlUmVzcG9uc2UnLCAnZXh0cmFjdERhdGEnLCAnZXh0cmFjdEVycm9yJywgdHJhbnNpdGlvbik7XG4gIHRoaXMuYWRkU3RhdGUoJ2V4dHJhY3RFcnJvcicsICdleHRyYWN0RGF0YScsICdyZXRyeScsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCdleHRyYWN0RGF0YScsICdzdWNjZXNzJywgJ3JldHJ5JywgdHJhbnNpdGlvbik7XG4gIHRoaXMuYWRkU3RhdGUoJ3Jlc3RhcnQnLCAnYnVpbGQnLCAnZXJyb3InLCB0cmFuc2l0aW9uKTtcbiAgdGhpcy5hZGRTdGF0ZSgnc3VjY2VzcycsICdjb21wbGV0ZScsICdjb21wbGV0ZScsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCdlcnJvcicsICdjb21wbGV0ZScsICdjb21wbGV0ZScsIHRyYW5zaXRpb24pO1xuICB0aGlzLmFkZFN0YXRlKCdjb21wbGV0ZScsIG51bGwsIG51bGwsIHRyYW5zaXRpb24pO1xufTtcbmZzbS5zZXR1cFN0YXRlcygpO1xuXG4vKipcbiAqICMjIEFzeW5jaHJvbm91cyBSZXF1ZXN0c1xuICpcbiAqIEFsbCByZXF1ZXN0cyBtYWRlIHRocm91Z2ggdGhlIFNESyBhcmUgYXN5bmNocm9ub3VzIGFuZCB1c2UgYVxuICogY2FsbGJhY2sgaW50ZXJmYWNlLiBFYWNoIHNlcnZpY2UgbWV0aG9kIHRoYXQga2lja3Mgb2ZmIGEgcmVxdWVzdFxuICogcmV0dXJucyBhbiBgQVdTLlJlcXVlc3RgIG9iamVjdCB0aGF0IHlvdSBjYW4gdXNlIHRvIHJlZ2lzdGVyXG4gKiBjYWxsYmFja3MuXG4gKlxuICogRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgc2VydmljZSBtZXRob2QgcmV0dXJucyB0aGUgcmVxdWVzdFxuICogb2JqZWN0IGFzIFwicmVxdWVzdFwiLCB3aGljaCBjYW4gYmUgdXNlZCB0byByZWdpc3RlciBjYWxsYmFja3M6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogLy8gcmVxdWVzdCBpcyBhbiBBV1MuUmVxdWVzdCBvYmplY3RcbiAqIHZhciByZXF1ZXN0ID0gZWMyLmRlc2NyaWJlSW5zdGFuY2VzKCk7XG4gKlxuICogLy8gcmVnaXN0ZXIgY2FsbGJhY2tzIG9uIHJlcXVlc3QgdG8gcmV0cmlldmUgcmVzcG9uc2UgZGF0YVxuICogcmVxdWVzdC5vbignc3VjY2VzcycsIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gKiAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLmRhdGEpO1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBXaGVuIGEgcmVxdWVzdCBpcyByZWFkeSB0byBiZSBzZW50LCB0aGUge3NlbmR9IG1ldGhvZCBzaG91bGRcbiAqIGJlIGNhbGxlZDpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiByZXF1ZXN0LnNlbmQoKTtcbiAqIGBgYFxuICpcbiAqIFNpbmNlIHJlZ2lzdGVyZWQgY2FsbGJhY2tzIG1heSBvciBtYXkgbm90IGJlIGlkZW1wb3RlbnQsIHJlcXVlc3RzIHNob3VsZCBvbmx5XG4gKiBiZSBzZW50IG9uY2UuIFRvIHBlcmZvcm0gdGhlIHNhbWUgb3BlcmF0aW9uIG11bHRpcGxlIHRpbWVzLCB5b3Ugd2lsbCBuZWVkIHRvXG4gKiBjcmVhdGUgbXVsdGlwbGUgcmVxdWVzdCBvYmplY3RzLCBlYWNoIHdpdGggaXRzIG93biByZWdpc3RlcmVkIGNhbGxiYWNrcy5cbiAqXG4gKiAjIyBSZW1vdmluZyBEZWZhdWx0IExpc3RlbmVycyBmb3IgRXZlbnRzXG4gKlxuICogUmVxdWVzdCBvYmplY3RzIGFyZSBidWlsdCB3aXRoIGRlZmF1bHQgbGlzdGVuZXJzIGZvciB0aGUgdmFyaW91cyBldmVudHMsXG4gKiBkZXBlbmRpbmcgb24gdGhlIHNlcnZpY2UgdHlwZS4gSW4gc29tZSBjYXNlcywgeW91IG1heSB3YW50IHRvIHJlbW92ZVxuICogc29tZSBidWlsdC1pbiBsaXN0ZW5lcnMgdG8gY3VzdG9taXplIGJlaGF2aW91ci4gRG9pbmcgdGhpcyByZXF1aXJlc1xuICogYWNjZXNzIHRvIHRoZSBidWlsdC1pbiBsaXN0ZW5lciBmdW5jdGlvbnMsIHdoaWNoIGFyZSBleHBvc2VkIHRocm91Z2hcbiAqIHRoZSB7QVdTLkV2ZW50TGlzdGVuZXJzLkNvcmV9IG5hbWVzcGFjZS4gRm9yIGluc3RhbmNlLCB5b3UgbWF5XG4gKiB3YW50IHRvIGN1c3RvbWl6ZSB0aGUgSFRUUCBoYW5kbGVyIHVzZWQgd2hlbiBzZW5kaW5nIGEgcmVxdWVzdC4gSW4gdGhpc1xuICogY2FzZSwgeW91IGNhbiByZW1vdmUgdGhlIGJ1aWx0LWluIGxpc3RlbmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgJ3NlbmQnXG4gKiBldmVudCwgdGhlIHtBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5TRU5EfSBsaXN0ZW5lciBhbmQgYWRkIHlvdXIgb3duLlxuICpcbiAqICMjIE11bHRpcGxlIENhbGxiYWNrcyBhbmQgQ2hhaW5pbmdcbiAqXG4gKiBZb3UgY2FuIHJlZ2lzdGVyIG11bHRpcGxlIGNhbGxiYWNrcyBvbiBhbnkgcmVxdWVzdCBvYmplY3QuIFRoZVxuICogY2FsbGJhY2tzIGNhbiBiZSByZWdpc3RlcmVkIGZvciBkaWZmZXJlbnQgZXZlbnRzLCBvciBhbGwgZm9yIHRoZVxuICogc2FtZSBldmVudC4gSW4gYWRkaXRpb24sIHlvdSBjYW4gY2hhaW4gY2FsbGJhY2sgcmVnaXN0cmF0aW9uLCBmb3JcbiAqIGV4YW1wbGU6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogcmVxdWVzdC5cbiAqICAgb24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbihyZXNwb25zZSkge1xuICogICAgIGNvbnNvbGUubG9nKFwiU3VjY2VzcyFcIik7XG4gKiAgIH0pLlxuICogICBvbignZXJyb3InLCBmdW5jdGlvbihyZXNwb25zZSkge1xuICogICAgIGNvbnNvbGUubG9nKFwiRXJyb3IhXCIpO1xuICogICB9KS5cbiAqICAgb24oJ2NvbXBsZXRlJywgZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAqICAgICBjb25zb2xlLmxvZyhcIkFsd2F5cyFcIik7XG4gKiAgIH0pLlxuICogICBzZW5kKCk7XG4gKiBgYGBcbiAqXG4gKiBUaGUgYWJvdmUgZXhhbXBsZSB3aWxsIHByaW50IGVpdGhlciBcIlN1Y2Nlc3MhIEFsd2F5cyFcIiwgb3IgXCJFcnJvciEgQWx3YXlzIVwiLFxuICogZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHJlcXVlc3Qgc3VjY2VlZGVkIG9yIG5vdC5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBodHRwUmVxdWVzdFxuICogICBAcmVhZG9ubHlcbiAqICAgQCFncm91cCBIVFRQIFByb3BlcnRpZXNcbiAqICAgQHJldHVybiBbQVdTLkh0dHBSZXF1ZXN0XSB0aGUgcmF3IEhUVFAgcmVxdWVzdCBvYmplY3RcbiAqICAgICBjb250YWluaW5nIHJlcXVlc3QgaGVhZGVycyBhbmQgYm9keSBpbmZvcm1hdGlvblxuICogICAgIHNlbnQgYnkgdGhlIHNlcnZpY2UuXG4gKlxuICogQCFhdHRyaWJ1dGUgc3RhcnRUaW1lXG4gKiAgIEByZWFkb25seVxuICogICBAIWdyb3VwIE9wZXJhdGlvbiBQcm9wZXJ0aWVzXG4gKiAgIEByZXR1cm4gW0RhdGVdIHRoZSB0aW1lIHRoYXQgdGhlIHJlcXVlc3Qgc3RhcnRlZFxuICpcbiAqIEAhZ3JvdXAgUmVxdWVzdCBCdWlsZGluZyBFdmVudHNcbiAqXG4gKiBAIWV2ZW50IHZhbGlkYXRlKHJlcXVlc3QpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIGEgcmVxdWVzdCBpcyBiZWluZyB2YWxpZGF0ZWQuIExpc3RlbmVyc1xuICogICBzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHJlcXVlc3Qgc2hvdWxkIG5vdCBiZSBzZW50LlxuICogICBAcGFyYW0gcmVxdWVzdCBbUmVxdWVzdF0gdGhlIHJlcXVlc3Qgb2JqZWN0IGJlaW5nIHNlbnRcbiAqICAgQHNlZSBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9DUkVERU5USUFMU1xuICogICBAc2VlIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlZBTElEQVRFX1JFR0lPTlxuICogICBAZXhhbXBsZSBFbnN1cmluZyB0aGF0IGEgY2VydGFpbiBwYXJhbWV0ZXIgaXMgc2V0IGJlZm9yZSBzZW5kaW5nIGEgcmVxdWVzdFxuICogICAgIHZhciByZXEgPSBzMy5wdXRPYmplY3QocGFyYW1zKTtcbiAqICAgICByZXEub24oJ3ZhbGlkYXRlJywgZnVuY3Rpb24oKSB7XG4gKiAgICAgICBpZiAoIXJlcS5wYXJhbXMuQm9keS5tYXRjaCgvXkhlbGxvXFxzLykpIHtcbiAqICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCb2R5IG11c3Qgc3RhcnQgd2l0aCBcIkhlbGxvIFwiJyk7XG4gKiAgICAgICB9XG4gKiAgICAgfSk7XG4gKiAgICAgcmVxLnNlbmQoZnVuY3Rpb24oZXJyLCBkYXRhKSB7IC4uLiB9KTtcbiAqXG4gKiBAIWV2ZW50IGJ1aWxkKHJlcXVlc3QpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIHRoZSByZXF1ZXN0IHBheWxvYWQgaXMgYmVpbmcgYnVpbHQuIExpc3RlbmVyc1xuICogICBzaG91bGQgZmlsbCB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHNlbmQgdGhlIHJlcXVlc3RcbiAqICAgb3ZlciBIVFRQLlxuICogICBAcGFyYW0gKHNlZSBBV1MuUmVxdWVzdH52YWxpZGF0ZSlcbiAqICAgQGV4YW1wbGUgQWRkIGEgY3VzdG9tIEhUVFAgaGVhZGVyIHRvIGEgcmVxdWVzdFxuICogICAgIHZhciByZXEgPSBzMy5wdXRPYmplY3QocGFyYW1zKTtcbiAqICAgICByZXEub24oJ2J1aWxkJywgZnVuY3Rpb24oKSB7XG4gKiAgICAgICByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1snQ3VzdG9tLUhlYWRlciddID0gJ3ZhbHVlJztcbiAqICAgICB9KTtcbiAqICAgICByZXEuc2VuZChmdW5jdGlvbihlcnIsIGRhdGEpIHsgLi4uIH0pO1xuICpcbiAqIEAhZXZlbnQgc2lnbihyZXF1ZXN0KVxuICogICBUcmlnZ2VyZWQgd2hlbiB0aGUgcmVxdWVzdCBpcyBiZWluZyBzaWduZWQuIExpc3RlbmVycyBzaG91bGRcbiAqICAgYWRkIHRoZSBjb3JyZWN0IGF1dGhlbnRpY2F0aW9uIGhlYWRlcnMgYW5kL29yIGFkanVzdCB0aGUgYm9keSxcbiAqICAgZGVwZW5kaW5nIG9uIHRoZSBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc20gYmVpbmcgdXNlZC5cbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+dmFsaWRhdGUpXG4gKlxuICogQCFncm91cCBSZXF1ZXN0IFNlbmRpbmcgRXZlbnRzXG4gKlxuICogQCFldmVudCBzZW5kKHJlc3BvbnNlKVxuICogICBUcmlnZ2VyZWQgd2hlbiB0aGUgcmVxdWVzdCBpcyByZWFkeSB0byBiZSBzZW50LiBMaXN0ZW5lcnNcbiAqICAgc2hvdWxkIGNhbGwgdGhlIHVuZGVybHlpbmcgdHJhbnNwb3J0IGxheWVyIHRvIGluaXRpYXRlXG4gKiAgIHRoZSBzZW5kaW5nIG9mIHRoZSByZXF1ZXN0LlxuICogICBAcGFyYW0gcmVzcG9uc2UgW1Jlc3BvbnNlXSB0aGUgcmVzcG9uc2Ugb2JqZWN0XG4gKiAgIEBjb250ZXh0IFtSZXF1ZXN0XSB0aGUgcmVxdWVzdCBvYmplY3QgdGhhdCB3YXMgc2VudFxuICogICBAc2VlIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlNFTkRcbiAqXG4gKiBAIWV2ZW50IHJldHJ5KHJlc3BvbnNlKVxuICogICBUcmlnZ2VyZWQgd2hlbiBhIHJlcXVlc3QgZmFpbGVkIGFuZCBtaWdodCBuZWVkIHRvIGJlIHJldHJpZWQgb3IgcmVkaXJlY3RlZC5cbiAqICAgSWYgdGhlIHJlc3BvbnNlIGlzIHJldHJ5YWJsZSwgdGhlIGxpc3RlbmVyIHNob3VsZCBzZXQgdGhlXG4gKiAgIGByZXNwb25zZS5lcnJvci5yZXRyeWFibGVgIHByb3BlcnR5IHRvIGB0cnVlYCwgYW5kIG9wdGlvbmFsbHkgc2V0XG4gKiAgIGByZXNwb25zZS5lcnJvci5yZXRyeURlbGF5YCB0byB0aGUgbWlsbGlzZWNvbmQgZGVsYXkgZm9yIHRoZSBuZXh0IGF0dGVtcHQuXG4gKiAgIEluIHRoZSBjYXNlIG9mIGEgcmVkaXJlY3QsIGByZXNwb25zZS5lcnJvci5yZWRpcmVjdGAgc2hvdWxkIGJlIHNldCB0b1xuICogICBgdHJ1ZWAgd2l0aCBgcmV0cnlEZWxheWAgc2V0IHRvIGFuIG9wdGlvbmFsIGRlbGF5IG9uIHRoZSBuZXh0IHJlcXVlc3QuXG4gKlxuICogICBJZiBhIGxpc3RlbmVyIGRlY2lkZXMgdGhhdCBhIHJlcXVlc3Qgc2hvdWxkIG5vdCBiZSByZXRyaWVkLFxuICogICBpdCBzaG91bGQgc2V0IGJvdGggYHJldHJ5YWJsZWAgYW5kIGByZWRpcmVjdGAgdG8gZmFsc2UuXG4gKlxuICogICBOb3RlIHRoYXQgYSByZXRyeWFibGUgZXJyb3Igd2lsbCBiZSByZXRyaWVkIGF0IG1vc3RcbiAqICAge0FXUy5Db25maWcubWF4UmV0cmllc30gdGltZXMgKGJhc2VkIG9uIHRoZSBzZXJ2aWNlIG9iamVjdCdzIGNvbmZpZykuXG4gKiAgIFNpbWlsYXJseSwgYSByZXF1ZXN0IHRoYXQgaXMgcmVkaXJlY3RlZCB3aWxsIG9ubHkgcmVkaXJlY3QgYXQgbW9zdFxuICogICB7QVdTLkNvbmZpZy5tYXhSZWRpcmVjdHN9IHRpbWVzLlxuICpcbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQGNvbnRleHQgKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAZXhhbXBsZSBBZGRpbmcgYSBjdXN0b20gcmV0cnkgZm9yIGEgNDA0IHJlc3BvbnNlXG4gKiAgICAgcmVxdWVzdC5vbigncmV0cnknLCBmdW5jdGlvbihyZXNwb25zZSkge1xuICogICAgICAgLy8gdGhpcyByZXNvdXJjZSBpcyBub3QgeWV0IGF2YWlsYWJsZSwgd2FpdCAxMCBzZWNvbmRzIHRvIGdldCBpdCBhZ2FpblxuICogICAgICAgaWYgKHJlc3BvbnNlLmh0dHBSZXNwb25zZS5zdGF0dXNDb2RlID09PSA0MDQgJiYgcmVzcG9uc2UuZXJyb3IpIHtcbiAqICAgICAgICAgcmVzcG9uc2UuZXJyb3IucmV0cnlhYmxlID0gdHJ1ZTsgICAvLyByZXRyeSB0aGlzIGVycm9yXG4gKiAgICAgICAgIHJlc3BvbnNlLmVycm9yLnJldHJ5RGVsYXkgPSAxMDAwMDsgLy8gd2FpdCAxMCBzZWNvbmRzXG4gKiAgICAgICB9XG4gKiAgICAgfSk7XG4gKlxuICogQCFncm91cCBEYXRhIFBhcnNpbmcgRXZlbnRzXG4gKlxuICogQCFldmVudCBleHRyYWN0RXJyb3IocmVzcG9uc2UpXG4gKiAgIFRyaWdnZXJlZCBvbiBhbGwgbm9uLTJ4eCByZXF1ZXN0cyBzbyB0aGF0IGxpc3RlbmVycyBjYW4gZXh0cmFjdFxuICogICBlcnJvciBkZXRhaWxzIGZyb20gdGhlIHJlc3BvbnNlIGJvZHkuIExpc3RlbmVycyB0byB0aGlzIGV2ZW50XG4gKiAgIHNob3VsZCBzZXQgdGhlIGByZXNwb25zZS5lcnJvcmAgcHJvcGVydHkuXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqXG4gKiBAIWV2ZW50IGV4dHJhY3REYXRhKHJlc3BvbnNlKVxuICogICBUcmlnZ2VyZWQgaW4gc3VjY2Vzc2Z1bCByZXF1ZXN0cyB0byBhbGxvdyBsaXN0ZW5lcnMgdG9cbiAqICAgZGUtc2VyaWFsaXplIHRoZSByZXNwb25zZSBib2R5IGludG8gYHJlc3BvbnNlLmRhdGFgLlxuICogICBAcGFyYW0gKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAY29udGV4dCAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKlxuICogQCFncm91cCBDb21wbGV0aW9uIEV2ZW50c1xuICpcbiAqIEAhZXZlbnQgc3VjY2VzcyhyZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW4gdGhlIHJlcXVlc3QgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS5cbiAqICAgYHJlc3BvbnNlLmRhdGFgIHdpbGwgY29udGFpbiB0aGUgcmVzcG9uc2UgZGF0YSBhbmRcbiAqICAgYHJlc3BvbnNlLmVycm9yYCB3aWxsIGJlIG51bGwuXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqXG4gKiBAIWV2ZW50IGVycm9yKGVycm9yLCByZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzIGF0IGFueSBwb2ludCBkdXJpbmcgdGhlXG4gKiAgIHJlcXVlc3QuIGByZXNwb25zZS5lcnJvcmAgd2lsbCBjb250YWluIGRldGFpbHMgYWJvdXQgdGhlIGVycm9yXG4gKiAgIHRoYXQgb2NjdXJyZWQuIGByZXNwb25zZS5kYXRhYCB3aWxsIGJlIG51bGwuXG4gKiAgIEBwYXJhbSBlcnJvciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGFib3V0XG4gKiAgICAgdGhlIGVycm9yIHRoYXQgb2NjdXJyZWQuXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqXG4gKiBAIWV2ZW50IGNvbXBsZXRlKHJlc3BvbnNlKVxuICogICBUcmlnZ2VyZWQgd2hlbmV2ZXIgYSByZXF1ZXN0IGN5Y2xlIGNvbXBsZXRlcy4gYHJlc3BvbnNlLmVycm9yYFxuICogICBzaG91bGQgYmUgY2hlY2tlZCwgc2luY2UgdGhlIHJlcXVlc3QgbWF5IGhhdmUgZmFpbGVkLlxuICogICBAcGFyYW0gKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAY29udGV4dCAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKlxuICogQCFncm91cCBIVFRQIEV2ZW50c1xuICpcbiAqIEAhZXZlbnQgaHR0cEhlYWRlcnMoc3RhdHVzQ29kZSwgaGVhZGVycywgcmVzcG9uc2UsIHN0YXR1c01lc3NhZ2UpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIGhlYWRlcnMgYXJlIHNlbnQgYnkgdGhlIHJlbW90ZSBzZXJ2ZXJcbiAqICAgQHBhcmFtIHN0YXR1c0NvZGUgW0ludGVnZXJdIHRoZSBIVFRQIHJlc3BvbnNlIGNvZGVcbiAqICAgQHBhcmFtIGhlYWRlcnMgW21hcDxTdHJpbmcsU3RyaW5nPl0gdGhlIHJlc3BvbnNlIGhlYWRlcnNcbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQHBhcmFtIHN0YXR1c01lc3NhZ2UgW1N0cmluZ10gQSBzdGF0dXMgbWVzc2FnZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBIVFRQXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlIGNvZGVcbiAqICAgQGNvbnRleHQgKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICpcbiAqIEAhZXZlbnQgaHR0cERhdGEoY2h1bmssIHJlc3BvbnNlKVxuICogICBUcmlnZ2VyZWQgd2hlbiBkYXRhIGlzIHNlbnQgYnkgdGhlIHJlbW90ZSBzZXJ2ZXJcbiAqICAgQHBhcmFtIGNodW5rIFtCdWZmZXJdIHRoZSBidWZmZXIgZGF0YSBjb250YWluaW5nIHRoZSBuZXh0IGRhdGEgY2h1bmtcbiAqICAgICBmcm9tIHRoZSBzZXJ2ZXJcbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQGNvbnRleHQgKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAc2VlIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLkhUVFBfREFUQVxuICpcbiAqIEAhZXZlbnQgaHR0cFVwbG9hZFByb2dyZXNzKHByb2dyZXNzLCByZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW4gdGhlIEhUVFAgcmVxdWVzdCBoYXMgdXBsb2FkZWQgbW9yZSBkYXRhXG4gKiAgIEBwYXJhbSBwcm9ncmVzcyBbbWFwXSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYGxvYWRlZGAgYW5kIGB0b3RhbGAgYnl0ZXNcbiAqICAgICBvZiB0aGUgcmVxdWVzdC5cbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQGNvbnRleHQgKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAbm90ZSBUaGlzIGV2ZW50IHdpbGwgbm90IGJlIGVtaXR0ZWQgaW4gTm9kZS5qcyAwLjgueC5cbiAqXG4gKiBAIWV2ZW50IGh0dHBEb3dubG9hZFByb2dyZXNzKHByb2dyZXNzLCByZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW4gdGhlIEhUVFAgcmVxdWVzdCBoYXMgZG93bmxvYWRlZCBtb3JlIGRhdGFcbiAqICAgQHBhcmFtIHByb2dyZXNzIFttYXBdIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBgbG9hZGVkYCBhbmQgYHRvdGFsYCBieXRlc1xuICogICAgIG9mIHRoZSByZXF1ZXN0LlxuICogICBAcGFyYW0gKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICogICBAY29udGV4dCAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBub3RlIFRoaXMgZXZlbnQgd2lsbCBub3QgYmUgZW1pdHRlZCBpbiBOb2RlLmpzIDAuOC54LlxuICpcbiAqIEAhZXZlbnQgaHR0cEVycm9yKGVycm9yLCByZXNwb25zZSlcbiAqICAgVHJpZ2dlcmVkIHdoZW4gdGhlIEhUVFAgcmVxdWVzdCBmYWlsZWRcbiAqICAgQHBhcmFtIGVycm9yIFtFcnJvcl0gdGhlIGVycm9yIG9iamVjdCB0aGF0IHdhcyB0aHJvd25cbiAqICAgQHBhcmFtIChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqICAgQGNvbnRleHQgKHNlZSBBV1MuUmVxdWVzdH5zZW5kKVxuICpcbiAqIEAhZXZlbnQgaHR0cERvbmUocmVzcG9uc2UpXG4gKiAgIFRyaWdnZXJlZCB3aGVuIHRoZSBzZXJ2ZXIgaXMgZmluaXNoZWQgc2VuZGluZyBkYXRhXG4gKiAgIEBwYXJhbSAoc2VlIEFXUy5SZXF1ZXN0fnNlbmQpXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqXG4gKiBAc2VlIEFXUy5SZXNwb25zZVxuICovXG5BV1MuUmVxdWVzdCA9IGluaGVyaXQoe1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcmVxdWVzdCBmb3IgYW4gb3BlcmF0aW9uIG9uIGEgZ2l2ZW4gc2VydmljZSB3aXRoXG4gICAqIGEgc2V0IG9mIGlucHV0IHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlIFtBV1MuU2VydmljZV0gdGhlIHNlcnZpY2UgdG8gcGVyZm9ybSB0aGUgb3BlcmF0aW9uIG9uXG4gICAqIEBwYXJhbSBvcGVyYXRpb24gW1N0cmluZ10gdGhlIG9wZXJhdGlvbiB0byBwZXJmb3JtIG9uIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSBwYXJhbXMgW09iamVjdF0gcGFyYW1ldGVycyB0byBzZW5kIHRvIHRoZSBvcGVyYXRpb24uXG4gICAqICAgU2VlIHRoZSBvcGVyYXRpb24ncyBkb2N1bWVudGF0aW9uIGZvciB0aGUgZm9ybWF0IG9mIHRoZVxuICAgKiAgIHBhcmFtZXRlcnMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gUmVxdWVzdChzZXJ2aWNlLCBvcGVyYXRpb24sIHBhcmFtcykge1xuICAgIHZhciBlbmRwb2ludCA9IHNlcnZpY2UuZW5kcG9pbnQ7XG4gICAgdmFyIHJlZ2lvbiA9IHNlcnZpY2UuY29uZmlnLnJlZ2lvbjtcbiAgICB2YXIgY3VzdG9tVXNlckFnZW50ID0gc2VydmljZS5jb25maWcuY3VzdG9tVXNlckFnZW50O1xuXG4gICAgLy8gZ2xvYmFsIGVuZHBvaW50cyBzaWduIGFzIHVzLWVhc3QtMVxuICAgIGlmIChzZXJ2aWNlLmlzR2xvYmFsRW5kcG9pbnQpIHJlZ2lvbiA9ICd1cy1lYXN0LTEnO1xuXG4gICAgdGhpcy5kb21haW4gPSBkb21haW4gJiYgZG9tYWluLmFjdGl2ZTtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMub3BlcmF0aW9uID0gb3BlcmF0aW9uO1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zIHx8IHt9O1xuICAgIHRoaXMuaHR0cFJlcXVlc3QgPSBuZXcgQVdTLkh0dHBSZXF1ZXN0KGVuZHBvaW50LCByZWdpb24pO1xuICAgIHRoaXMuaHR0cFJlcXVlc3QuYXBwZW5kVG9Vc2VyQWdlbnQoY3VzdG9tVXNlckFnZW50KTtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IHNlcnZpY2UuZ2V0U2tld0NvcnJlY3RlZERhdGUoKTtcblxuICAgIHRoaXMucmVzcG9uc2UgPSBuZXcgQVdTLlJlc3BvbnNlKHRoaXMpO1xuICAgIHRoaXMuX2FzbSA9IG5ldyBBY2NlcHRvclN0YXRlTWFjaGluZShmc20uc3RhdGVzLCAndmFsaWRhdGUnKTtcbiAgICB0aGlzLl9oYWx0SGFuZGxlcnNPbkVycm9yID0gZmFsc2U7XG5cbiAgICBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yLmNhbGwodGhpcyk7XG4gICAgdGhpcy5lbWl0ID0gdGhpcy5lbWl0RXZlbnQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEAhZ3JvdXAgU2VuZGluZyBhIFJlcXVlc3RcbiAgICovXG5cbiAgLyoqXG4gICAqIEBvdmVybG9hZCBzZW5kKGNhbGxiYWNrID0gbnVsbClcbiAgICogICBTZW5kcyB0aGUgcmVxdWVzdCBvYmplY3QuXG4gICAqXG4gICAqICAgQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVyciwgZGF0YSlcbiAgICogICAgIElmIGEgY2FsbGJhY2sgaXMgc3VwcGxpZWQsIGl0IGlzIGNhbGxlZCB3aGVuIGEgcmVzcG9uc2UgaXMgcmV0dXJuZWRcbiAgICogICAgIGZyb20gdGhlIHNlcnZpY2UuXG4gICAqICAgICBAY29udGV4dCBbQVdTLlJlcXVlc3RdIHRoZSByZXF1ZXN0IG9iamVjdCBiZWluZyBzZW50LlxuICAgKiAgICAgQHBhcmFtIGVyciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgcmVxdWVzdC5cbiAgICogICAgICAgU2V0IHRvIGBudWxsYCBpZiB0aGUgcmVxdWVzdCBpcyBzdWNjZXNzZnVsLlxuICAgKiAgICAgQHBhcmFtIGRhdGEgW09iamVjdF0gdGhlIGRlLXNlcmlhbGl6ZWQgZGF0YSByZXR1cm5lZCBmcm9tXG4gICAqICAgICAgIHRoZSByZXF1ZXN0LiBTZXQgdG8gYG51bGxgIGlmIGEgcmVxdWVzdCBlcnJvciBvY2N1cnMuXG4gICAqICAgQGV4YW1wbGUgU2VuZGluZyBhIHJlcXVlc3Qgd2l0aCBhIGNhbGxiYWNrXG4gICAqICAgICByZXF1ZXN0ID0gczMucHV0T2JqZWN0KHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknfSk7XG4gICAqICAgICByZXF1ZXN0LnNlbmQoZnVuY3Rpb24oZXJyLCBkYXRhKSB7IGNvbnNvbGUubG9nKGVyciwgZGF0YSk7IH0pO1xuICAgKiAgIEBleGFtcGxlIFNlbmRpbmcgYSByZXF1ZXN0IHdpdGggbm8gY2FsbGJhY2sgKHVzaW5nIGV2ZW50IGhhbmRsZXJzKVxuICAgKiAgICAgcmVxdWVzdCA9IHMzLnB1dE9iamVjdCh7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5J30pO1xuICAgKiAgICAgcmVxdWVzdC5vbignY29tcGxldGUnLCBmdW5jdGlvbihyZXNwb25zZSkgeyAuLi4gfSk7IC8vIHJlZ2lzdGVyIGEgY2FsbGJhY2tcbiAgICogICAgIHJlcXVlc3Quc2VuZCgpO1xuICAgKi9cbiAgc2VuZDogZnVuY3Rpb24gc2VuZChjYWxsYmFjaykge1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgLy8gYXBwZW5kIHRvIHVzZXIgYWdlbnRcbiAgICAgIHRoaXMuaHR0cFJlcXVlc3QuYXBwZW5kVG9Vc2VyQWdlbnQoJ2NhbGxiYWNrJyk7XG4gICAgICB0aGlzLm9uKCdjb21wbGV0ZScsIGZ1bmN0aW9uIChyZXNwKSB7XG4gICAgICAgIGNhbGxiYWNrLmNhbGwocmVzcCwgcmVzcC5lcnJvciwgcmVzcC5kYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnJ1blRvKCk7XG5cbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgfSxcblxuICAvKipcbiAgICogQCFtZXRob2QgIHByb21pc2UoKVxuICAgKiAgIFNlbmRzIHRoZSByZXF1ZXN0IGFuZCByZXR1cm5zIGEgJ3RoZW5hYmxlJyBwcm9taXNlLlxuICAgKlxuICAgKiAgIFR3byBjYWxsYmFja3MgY2FuIGJlIHByb3ZpZGVkIHRvIHRoZSBgdGhlbmAgbWV0aG9kIG9uIHRoZSByZXR1cm5lZCBwcm9taXNlLlxuICAgKiAgIFRoZSBmaXJzdCBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQsIGFuZCB0aGUgc2Vjb25kXG4gICAqICAgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAqICAgQGNhbGxiYWNrIGZ1bGZpbGxlZENhbGxiYWNrIGZ1bmN0aW9uKGRhdGEpXG4gICAqICAgICBDYWxsZWQgaWYgdGhlIHByb21pc2UgaXMgZnVsZmlsbGVkLlxuICAgKiAgICAgQHBhcmFtIGRhdGEgW09iamVjdF0gdGhlIGRlLXNlcmlhbGl6ZWQgZGF0YSByZXR1cm5lZCBmcm9tIHRoZSByZXF1ZXN0LlxuICAgKiAgIEBjYWxsYmFjayByZWplY3RlZENhbGxiYWNrIGZ1bmN0aW9uKGVycm9yKVxuICAgKiAgICAgQ2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKiAgICAgQHBhcmFtIGVycm9yIFtFcnJvcl0gdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBmcm9tIHRoZSByZXF1ZXN0LlxuICAgKiAgIEByZXR1cm4gW1Byb21pc2VdIEEgcHJvbWlzZSB0aGF0IHJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHRoZSByZXF1ZXN0LlxuICAgKiAgIEBleGFtcGxlIFNlbmRpbmcgYSByZXF1ZXN0IHVzaW5nIHByb21pc2VzLlxuICAgKiAgICAgdmFyIHJlcXVlc3QgPSBzMy5wdXRPYmplY3Qoe0J1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleSd9KTtcbiAgICogICAgIHZhciByZXN1bHQgPSByZXF1ZXN0LnByb21pc2UoKTtcbiAgICogICAgIHJlc3VsdC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsgLi4uIH0sIGZ1bmN0aW9uKGVycm9yKSB7IC4uLiB9KTtcbiAgICovXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYnVpbGQ6IGZ1bmN0aW9uIGJ1aWxkKGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMucnVuVG8oJ3NlbmQnLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcnVuVG86IGZ1bmN0aW9uIHJ1blRvKHN0YXRlLCBkb25lKSB7XG4gICAgdGhpcy5fYXNtLnJ1blRvKHN0YXRlLCBkb25lLCB0aGlzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICAvKipcbiAgICogQWJvcnRzIGEgcmVxdWVzdCwgZW1pdHRpbmcgdGhlIGVycm9yIGFuZCBjb21wbGV0ZSBldmVudHMuXG4gICAqXG4gICAqIEAhbWFjcm8gbm9icm93c2VyXG4gICAqIEBleGFtcGxlIEFib3J0aW5nIGEgcmVxdWVzdCBhZnRlciBzZW5kaW5nXG4gICAqICAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgIEJ1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleScsXG4gICAqICAgICBCb2R5OiBuZXcgQnVmZmVyKDEwMjQgKiAxMDI0ICogNSkgLy8gNU1CIHBheWxvYWRcbiAgICogICB9O1xuICAgKiAgIHZhciByZXF1ZXN0ID0gczMucHV0T2JqZWN0KHBhcmFtcyk7XG4gICAqICAgcmVxdWVzdC5zZW5kKGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICogICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKFwiRXJyb3I6XCIsIGVyci5jb2RlLCBlcnIubWVzc2FnZSk7XG4gICAqICAgICBlbHNlIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgKiAgIH0pO1xuICAgKlxuICAgKiAgIC8vIGFib3J0IHJlcXVlc3QgaW4gMSBzZWNvbmRcbiAgICogICBzZXRUaW1lb3V0KHJlcXVlc3QuYWJvcnQuYmluZChyZXF1ZXN0KSwgMTAwMCk7XG4gICAqXG4gICAqICAgLy8gcHJpbnRzIFwiRXJyb3I6IFJlcXVlc3RBYm9ydGVkRXJyb3IgUmVxdWVzdCBhYm9ydGVkIGJ5IHVzZXJcIlxuICAgKiBAcmV0dXJuIFtBV1MuUmVxdWVzdF0gdGhlIHNhbWUgcmVxdWVzdCBvYmplY3QsIGZvciBjaGFpbmluZy5cbiAgICogQHNpbmNlIHYxLjQuMFxuICAgKi9cbiAgYWJvcnQ6IGZ1bmN0aW9uIGFib3J0KCkge1xuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCd2YWxpZGF0ZVJlc3BvbnNlJyk7XG4gICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2V4dHJhY3RFcnJvcicpO1xuICAgIHRoaXMub24oJ3ZhbGlkYXRlUmVzcG9uc2UnLCBmdW5jdGlvbiBhZGRBYm9ydGVkRXJyb3IocmVzcCkge1xuICAgICAgcmVzcC5lcnJvciA9IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcignUmVxdWVzdCBhYm9ydGVkIGJ5IHVzZXInKSwge1xuICAgICAgICAgY29kZTogJ1JlcXVlc3RBYm9ydGVkRXJyb3InLCByZXRyeWFibGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmh0dHBSZXF1ZXN0LnN0cmVhbSAmJiAhdGhpcy5odHRwUmVxdWVzdC5zdHJlYW0uZGlkQ2FsbGJhY2spIHsgLy8gYWJvcnQgSFRUUCBzdHJlYW1cbiAgICAgIHRoaXMuaHR0cFJlcXVlc3Quc3RyZWFtLmFib3J0KCk7XG4gICAgICBpZiAodGhpcy5odHRwUmVxdWVzdC5fYWJvcnRDYWxsYmFjaykge1xuICAgICAgICAgdGhpcy5odHRwUmVxdWVzdC5fYWJvcnRDYWxsYmFjaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3NlbmQnKTsgLy8gaGF2ZW4ndCBzZW50IHlldCwgc28gbGV0J3Mgbm90XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEl0ZXJhdGVzIG92ZXIgZWFjaCBwYWdlIG9mIHJlc3VsdHMgZ2l2ZW4gYSBwYWdlYWJsZSByZXF1ZXN0LCBjYWxsaW5nXG4gICAqIHRoZSBwcm92aWRlZCBjYWxsYmFjayB3aXRoIGVhY2ggcGFnZSBvZiBkYXRhLiBBZnRlciBhbGwgcGFnZXMgaGF2ZSBiZWVuXG4gICAqIHJldHJpZXZlZCwgdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIGBudWxsYCBkYXRhLlxuICAgKlxuICAgKiBAbm90ZSBUaGlzIG9wZXJhdGlvbiBjYW4gZ2VuZXJhdGUgbXVsdGlwbGUgcmVxdWVzdHMgdG8gYSBzZXJ2aWNlLlxuICAgKiBAZXhhbXBsZSBJdGVyYXRpbmcgb3ZlciBtdWx0aXBsZSBwYWdlcyBvZiBvYmplY3RzIGluIGFuIFMzIGJ1Y2tldFxuICAgKiAgIHZhciBwYWdlcyA9IDE7XG4gICAqICAgczMubGlzdE9iamVjdHMoKS5lYWNoUGFnZShmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgIGlmIChlcnIpIHJldHVybjtcbiAgICogICAgIGNvbnNvbGUubG9nKFwiUGFnZVwiLCBwYWdlcysrKTtcbiAgICogICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgKiAgIH0pO1xuICAgKiBAZXhhbXBsZSBJdGVyYXRpbmcgb3ZlciBtdWx0aXBsZSBwYWdlcyB3aXRoIGFuIGFzeW5jaHJvbm91cyBjYWxsYmFja1xuICAgKiAgIHMzLmxpc3RPYmplY3RzKHBhcmFtcykuZWFjaFBhZ2UoZnVuY3Rpb24oZXJyLCBkYXRhLCBkb25lKSB7XG4gICAqICAgICBkb1NvbWV0aGluZ0FzeW5jQW5kT3JFeHBlbnNpdmUoZnVuY3Rpb24oKSB7XG4gICAqICAgICAgIC8vIFRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cyBpc24ndCBmZXRjaGVkIHVudGlsIGRvbmUgaXMgY2FsbGVkXG4gICAqICAgICAgIGRvbmUoKTtcbiAgICogICAgIH0pO1xuICAgKiAgIH0pO1xuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyLCBkYXRhLCBbZG9uZUNhbGxiYWNrXSlcbiAgICogICBDYWxsZWQgd2l0aCBlYWNoIHBhZ2Ugb2YgcmVzdWx0aW5nIGRhdGEgZnJvbSB0aGUgcmVxdWVzdC4gSWYgdGhlXG4gICAqICAgb3B0aW9uYWwgYGRvbmVDYWxsYmFja2AgaXMgcHJvdmlkZWQgaW4gdGhlIGZ1bmN0aW9uLCBpdCBtdXN0IGJlIGNhbGxlZFxuICAgKiAgIHdoZW4gdGhlIGNhbGxiYWNrIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiAgIEBwYXJhbSBlcnIgW0Vycm9yXSBhbiBlcnJvciBvYmplY3QsIGlmIGFuIGVycm9yIG9jY3VycmVkLlxuICAgKiAgIEBwYXJhbSBkYXRhIFtPYmplY3RdIGEgc2luZ2xlIHBhZ2Ugb2YgcmVzcG9uc2UgZGF0YS4gSWYgdGhlcmUgaXMgbm9cbiAgICogICAgIG1vcmUgZGF0YSwgdGhpcyBvYmplY3Qgd2lsbCBiZSBgbnVsbGAuXG4gICAqICAgQHBhcmFtIGRvbmVDYWxsYmFjayBbRnVuY3Rpb25dIGFuIG9wdGlvbmFsIGRvbmUgY2FsbGJhY2suIElmIHRoaXNcbiAgICogICAgIGFyZ3VtZW50IGlzIGRlZmluZWQgaW4gdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLCBpdCBzaG91bGQgYmUgY2FsbGVkXG4gICAqICAgICB3aGVuIHRoZSBuZXh0IHBhZ2UgaXMgcmVhZHkgdG8gYmUgcmV0cmlldmVkLiBUaGlzIGlzIHVzZWZ1bCBmb3JcbiAgICogICAgIGNvbnRyb2xsaW5nIHNlcmlhbCBwYWdpbmF0aW9uIGFjcm9zcyBhc3luY2hyb25vdXMgb3BlcmF0aW9ucy5cbiAgICogICBAcmV0dXJuIFtCb29sZWFuXSBpZiB0aGUgY2FsbGJhY2sgcmV0dXJucyBgZmFsc2VgLCBwYWdpbmF0aW9uIHdpbGxcbiAgICogICAgIHN0b3AuXG4gICAqXG4gICAqIEBzZWUgQVdTLlJlcXVlc3QuZWFjaEl0ZW1cbiAgICogQHNlZSBBV1MuUmVzcG9uc2UubmV4dFBhZ2VcbiAgICogQHNpbmNlIHYxLjQuMFxuICAgKi9cbiAgZWFjaFBhZ2U6IGZ1bmN0aW9uIGVhY2hQYWdlKGNhbGxiYWNrKSB7XG4gICAgLy8gTWFrZSBhbGwgY2FsbGJhY2tzIGFzeW5jLWlzaFxuICAgIGNhbGxiYWNrID0gQVdTLnV0aWwuZm4ubWFrZUFzeW5jKGNhbGxiYWNrLCAzKTtcblxuICAgIGZ1bmN0aW9uIHdyYXBwZWRDYWxsYmFjayhyZXNwb25zZSkge1xuICAgICAgY2FsbGJhY2suY2FsbChyZXNwb25zZSwgcmVzcG9uc2UuZXJyb3IsIHJlc3BvbnNlLmRhdGEsIGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHJldHVybjtcblxuICAgICAgICBpZiAocmVzcG9uc2UuaGFzTmV4dFBhZ2UoKSkge1xuICAgICAgICAgIHJlc3BvbnNlLm5leHRQYWdlKCkub24oJ2NvbXBsZXRlJywgd3JhcHBlZENhbGxiYWNrKS5zZW5kKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2FsbGJhY2suY2FsbChyZXNwb25zZSwgbnVsbCwgbnVsbCwgQVdTLnV0aWwuZm4ubm9vcCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMub24oJ2NvbXBsZXRlJywgd3JhcHBlZENhbGxiYWNrKS5zZW5kKCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEVudW1lcmF0ZXMgb3ZlciBpbmRpdmlkdWFsIGl0ZW1zIG9mIGEgcmVxdWVzdCwgcGFnaW5nIHRoZSByZXNwb25zZXMgaWZcbiAgICogbmVjZXNzYXJ5LlxuICAgKlxuICAgKiBAYXBpIGV4cGVyaW1lbnRhbFxuICAgKiBAc2luY2UgdjEuNC4wXG4gICAqL1xuICBlYWNoSXRlbTogZnVuY3Rpb24gZWFjaEl0ZW0oY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgZnVuY3Rpb24gd3JhcHBlZENhbGxiYWNrKGVyciwgZGF0YSkge1xuICAgICAgaWYgKGVycikgcmV0dXJuIGNhbGxiYWNrKGVyciwgbnVsbCk7XG4gICAgICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGNhbGxiYWNrKG51bGwsIG51bGwpO1xuXG4gICAgICB2YXIgY29uZmlnID0gc2VsZi5zZXJ2aWNlLnBhZ2luYXRpb25Db25maWcoc2VsZi5vcGVyYXRpb24pO1xuICAgICAgdmFyIHJlc3VsdEtleSA9IGNvbmZpZy5yZXN1bHRLZXk7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHRLZXkpKSByZXN1bHRLZXkgPSByZXN1bHRLZXlbMF07XG4gICAgICB2YXIgaXRlbXMgPSBqbWVzcGF0aC5zZWFyY2goZGF0YSwgcmVzdWx0S2V5KTtcbiAgICAgIHZhciBjb250aW51ZUl0ZXJhdGlvbiA9IHRydWU7XG4gICAgICBBV1MudXRpbC5hcnJheUVhY2goaXRlbXMsIGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgY29udGludWVJdGVyYXRpb24gPSBjYWxsYmFjayhudWxsLCBpdGVtKTtcbiAgICAgICAgaWYgKGNvbnRpbnVlSXRlcmF0aW9uID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybiBBV1MudXRpbC5hYm9ydDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gY29udGludWVJdGVyYXRpb247XG4gICAgfVxuXG4gICAgdGhpcy5lYWNoUGFnZSh3cmFwcGVkQ2FsbGJhY2spO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gY2FuIHJldHVybiBtdWx0aXBsZSBwYWdlcyBvZlxuICAgKiAgIHJlc3BvbnNlIGRhdGEuXG4gICAqIEBzZWUgQVdTLlJlc3BvbnNlLmVhY2hQYWdlXG4gICAqIEBzaW5jZSB2MS40LjBcbiAgICovXG4gIGlzUGFnZWFibGU6IGZ1bmN0aW9uIGlzUGFnZWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5wYWdpbmF0aW9uQ29uZmlnKHRoaXMub3BlcmF0aW9uKSA/IHRydWUgOiBmYWxzZTtcbiAgfSxcblxuICAvKipcbiAgICogU2VuZHMgdGhlIHJlcXVlc3QgYW5kIGNvbnZlcnRzIHRoZSByZXF1ZXN0IG9iamVjdCBpbnRvIGEgcmVhZGFibGUgc3RyZWFtXG4gICAqIHRoYXQgY2FuIGJlIHJlYWQgZnJvbSBvciBwaXBlZCBpbnRvIGEgd3JpdGFibGUgc3RyZWFtLlxuICAgKlxuICAgKiBAbm90ZSBUaGUgZGF0YSByZWFkIGZyb20gYSByZWFkYWJsZSBzdHJlYW0gY29udGFpbnMgb25seVxuICAgKiAgIHRoZSByYXcgSFRUUCBib2R5IGNvbnRlbnRzLlxuICAgKiBAZXhhbXBsZSBNYW51YWxseSByZWFkaW5nIGZyb20gYSBzdHJlYW1cbiAgICogICByZXF1ZXN0LmNyZWF0ZVJlYWRTdHJlYW0oKS5vbignZGF0YScsIGZ1bmN0aW9uKGRhdGEpIHtcbiAgICogICAgIGNvbnNvbGUubG9nKFwiR290IGRhdGE6XCIsIGRhdGEudG9TdHJpbmcoKSk7XG4gICAqICAgfSk7XG4gICAqIEBleGFtcGxlIFBpcGluZyBhIHJlcXVlc3QgYm9keSBpbnRvIGEgZmlsZVxuICAgKiAgIHZhciBvdXQgPSBmcy5jcmVhdGVXcml0ZVN0cmVhbSgnL3BhdGgvdG8vb3V0ZmlsZS5qcGcnKTtcbiAgICogICBzMy5zZXJ2aWNlLmdldE9iamVjdChwYXJhbXMpLmNyZWF0ZVJlYWRTdHJlYW0oKS5waXBlKG91dCk7XG4gICAqIEByZXR1cm4gW1N0cmVhbV0gdGhlIHJlYWRhYmxlIHN0cmVhbSBvYmplY3QgdGhhdCBjYW4gYmUgcGlwZWRcbiAgICogICBvciByZWFkIGZyb20gKGJ5IHJlZ2lzdGVyaW5nICdkYXRhJyBldmVudCBsaXN0ZW5lcnMpLlxuICAgKiBAIW1hY3JvIG5vYnJvd3NlclxuICAgKi9cbiAgY3JlYXRlUmVhZFN0cmVhbTogZnVuY3Rpb24gY3JlYXRlUmVhZFN0cmVhbSgpIHtcbiAgICB2YXIgc3RyZWFtcyA9IEFXUy51dGlsLnN0cmVhbTtcbiAgICB2YXIgcmVxID0gdGhpcztcbiAgICB2YXIgc3RyZWFtID0gbnVsbDtcblxuICAgIGlmIChBV1MuSHR0cENsaWVudC5zdHJlYW1zQXBpVmVyc2lvbiA9PT0gMikge1xuICAgICAgc3RyZWFtID0gbmV3IHN0cmVhbXMuUGFzc1Rocm91Z2goKTtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKSB7IHJlcS5zZW5kKCk7IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHJlYW0gPSBuZXcgc3RyZWFtcy5TdHJlYW0oKTtcbiAgICAgIHN0cmVhbS5yZWFkYWJsZSA9IHRydWU7XG5cbiAgICAgIHN0cmVhbS5zZW50ID0gZmFsc2U7XG4gICAgICBzdHJlYW0ub24oJ25ld0xpc3RlbmVyJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgaWYgKCFzdHJlYW0uc2VudCAmJiBldmVudCA9PT0gJ2RhdGEnKSB7XG4gICAgICAgICAgc3RyZWFtLnNlbnQgPSB0cnVlO1xuICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKSB7IHJlcS5zZW5kKCk7IH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLm9uKCdlcnJvcicsIGZ1bmN0aW9uKGVycikge1xuICAgICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICB9KTtcblxuICAgIHRoaXMub24oJ2h0dHBIZWFkZXJzJywgZnVuY3Rpb24gc3RyZWFtSGVhZGVycyhzdGF0dXNDb2RlLCBoZWFkZXJzLCByZXNwKSB7XG4gICAgICBpZiAoc3RhdHVzQ29kZSA8IDMwMCkge1xuICAgICAgICByZXEucmVtb3ZlTGlzdGVuZXIoJ2h0dHBEYXRhJywgQVdTLkV2ZW50TGlzdGVuZXJzLkNvcmUuSFRUUF9EQVRBKTtcbiAgICAgICAgcmVxLnJlbW92ZUxpc3RlbmVyKCdodHRwRXJyb3InLCBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5IVFRQX0VSUk9SKTtcbiAgICAgICAgcmVxLm9uKCdodHRwRXJyb3InLCBmdW5jdGlvbiBzdHJlYW1IdHRwRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgICByZXNwLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgcmVzcC5lcnJvci5yZXRyeWFibGUgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIHNob3VsZENoZWNrQ29udGVudExlbmd0aCA9IGZhbHNlO1xuICAgICAgICB2YXIgZXhwZWN0ZWRMZW47XG4gICAgICAgIGlmIChyZXEuaHR0cFJlcXVlc3QubWV0aG9kICE9PSAnSEVBRCcpIHtcbiAgICAgICAgICBleHBlY3RlZExlbiA9IHBhcnNlSW50KGhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10sIDEwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXhwZWN0ZWRMZW4gIT09IHVuZGVmaW5lZCAmJiAhaXNOYU4oZXhwZWN0ZWRMZW4pICYmIGV4cGVjdGVkTGVuID49IDApIHtcbiAgICAgICAgICBzaG91bGRDaGVja0NvbnRlbnRMZW5ndGggPSB0cnVlO1xuICAgICAgICAgIHZhciByZWNlaXZlZExlbiA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2hlY2tDb250ZW50TGVuZ3RoQW5kRW1pdCA9IGZ1bmN0aW9uIGNoZWNrQ29udGVudExlbmd0aEFuZEVtaXQoKSB7XG4gICAgICAgICAgaWYgKHNob3VsZENoZWNrQ29udGVudExlbmd0aCAmJiByZWNlaXZlZExlbiAhPT0gZXhwZWN0ZWRMZW4pIHtcbiAgICAgICAgICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIEFXUy51dGlsLmVycm9yKFxuICAgICAgICAgICAgICBuZXcgRXJyb3IoJ1N0cmVhbSBjb250ZW50IGxlbmd0aCBtaXNtYXRjaC4gUmVjZWl2ZWQgJyArXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWRMZW4gKyAnIG9mICcgKyBleHBlY3RlZExlbiArICcgYnl0ZXMuJyksXG4gICAgICAgICAgICAgIHsgY29kZTogJ1N0cmVhbUNvbnRlbnRMZW5ndGhNaXNtYXRjaCcgfVxuICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChBV1MuSHR0cENsaWVudC5zdHJlYW1zQXBpVmVyc2lvbiA9PT0gMikge1xuICAgICAgICAgICAgc3RyZWFtLmVuZCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdHJlYW0uZW1pdCgnZW5kJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBodHRwU3RyZWFtID0gcmVzcC5odHRwUmVzcG9uc2UuY3JlYXRlVW5idWZmZXJlZFN0cmVhbSgpO1xuXG4gICAgICAgIGlmIChBV1MuSHR0cENsaWVudC5zdHJlYW1zQXBpVmVyc2lvbiA9PT0gMikge1xuICAgICAgICAgIGlmIChzaG91bGRDaGVja0NvbnRlbnRMZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBsZW5ndGhBY2N1bXVsYXRvciA9IG5ldyBzdHJlYW1zLlBhc3NUaHJvdWdoKCk7XG4gICAgICAgICAgICBsZW5ndGhBY2N1bXVsYXRvci5fd3JpdGUgPSBmdW5jdGlvbihjaHVuaykge1xuICAgICAgICAgICAgICBpZiAoY2h1bmsgJiYgY2h1bmsubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWRMZW4gKz0gY2h1bmsubGVuZ3RoO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBzdHJlYW1zLlBhc3NUaHJvdWdoLnByb3RvdHlwZS5fd3JpdGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxlbmd0aEFjY3VtdWxhdG9yLm9uKCdlbmQnLCBjaGVja0NvbnRlbnRMZW5ndGhBbmRFbWl0KTtcbiAgICAgICAgICAgIHN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgc2hvdWxkQ2hlY2tDb250ZW50TGVuZ3RoID0gZmFsc2U7XG4gICAgICAgICAgICAgIGh0dHBTdHJlYW0udW5waXBlKGxlbmd0aEFjY3VtdWxhdG9yKTtcbiAgICAgICAgICAgICAgbGVuZ3RoQWNjdW11bGF0b3IuZW1pdCgnZW5kJyk7XG4gICAgICAgICAgICAgIGxlbmd0aEFjY3VtdWxhdG9yLmVuZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBodHRwU3RyZWFtLnBpcGUobGVuZ3RoQWNjdW11bGF0b3IpLnBpcGUoc3RyZWFtLCB7IGVuZDogZmFsc2UgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGh0dHBTdHJlYW0ucGlwZShzdHJlYW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgIGlmIChzaG91bGRDaGVja0NvbnRlbnRMZW5ndGgpIHtcbiAgICAgICAgICAgIGh0dHBTdHJlYW0ub24oJ2RhdGEnLCBmdW5jdGlvbihhcmcpIHtcbiAgICAgICAgICAgICAgaWYgKGFyZyAmJiBhcmcubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZWRMZW4gKz0gYXJnLmxlbmd0aDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaHR0cFN0cmVhbS5vbignZGF0YScsIGZ1bmN0aW9uKGFyZykge1xuICAgICAgICAgICAgc3RyZWFtLmVtaXQoJ2RhdGEnLCBhcmcpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGh0dHBTdHJlYW0ub24oJ2VuZCcsIGNoZWNrQ29udGVudExlbmd0aEFuZEVtaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaHR0cFN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICBzaG91bGRDaGVja0NvbnRlbnRMZW5ndGggPSBmYWxzZTtcbiAgICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdHJlYW07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwYXJhbSBbQXJyYXksUmVzcG9uc2VdIGFyZ3MgVGhpcyBzaG91bGQgYmUgdGhlIHJlc3BvbnNlIG9iamVjdCxcbiAgICogICBvciBhbiBhcnJheSBvZiBhcmdzIHRvIHNlbmQgdG8gdGhlIGV2ZW50LlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGVtaXRFdmVudDogZnVuY3Rpb24gZW1pdChldmVudE5hbWUsIGFyZ3MsIGRvbmUpIHtcbiAgICBpZiAodHlwZW9mIGFyZ3MgPT09ICdmdW5jdGlvbicpIHsgZG9uZSA9IGFyZ3M7IGFyZ3MgPSBudWxsOyB9XG4gICAgaWYgKCFkb25lKSBkb25lID0gZnVuY3Rpb24oKSB7IH07XG4gICAgaWYgKCFhcmdzKSBhcmdzID0gdGhpcy5ldmVudFBhcmFtZXRlcnMoZXZlbnROYW1lLCB0aGlzLnJlc3BvbnNlKTtcblxuICAgIHZhciBvcmlnRW1pdCA9IEFXUy5TZXF1ZW50aWFsRXhlY3V0b3IucHJvdG90eXBlLmVtaXQ7XG4gICAgb3JpZ0VtaXQuY2FsbCh0aGlzLCBldmVudE5hbWUsIGFyZ3MsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIGlmIChlcnIpIHRoaXMucmVzcG9uc2UuZXJyb3IgPSBlcnI7XG4gICAgICBkb25lLmNhbGwodGhpcywgZXJyKTtcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBldmVudFBhcmFtZXRlcnM6IGZ1bmN0aW9uIGV2ZW50UGFyYW1ldGVycyhldmVudE5hbWUpIHtcbiAgICBzd2l0Y2ggKGV2ZW50TmFtZSkge1xuICAgICAgY2FzZSAncmVzdGFydCc6XG4gICAgICBjYXNlICd2YWxpZGF0ZSc6XG4gICAgICBjYXNlICdzaWduJzpcbiAgICAgIGNhc2UgJ2J1aWxkJzpcbiAgICAgIGNhc2UgJ2FmdGVyVmFsaWRhdGUnOlxuICAgICAgY2FzZSAnYWZ0ZXJCdWlsZCc6XG4gICAgICAgIHJldHVybiBbdGhpc107XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiBbdGhpcy5yZXNwb25zZS5lcnJvciwgdGhpcy5yZXNwb25zZV07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gW3RoaXMucmVzcG9uc2VdO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwcmVzaWduOiBmdW5jdGlvbiBwcmVzaWduKGV4cGlyZXMsIGNhbGxiYWNrKSB7XG4gICAgaWYgKCFjYWxsYmFjayAmJiB0eXBlb2YgZXhwaXJlcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBleHBpcmVzO1xuICAgICAgZXhwaXJlcyA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQVdTLlNpZ25lcnMuUHJlc2lnbigpLnNpZ24odGhpcy50b0dldCgpLCBleHBpcmVzLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaXNQcmVzaWduZWQ6IGZ1bmN0aW9uIGlzUHJlc2lnbmVkKCkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5odHRwUmVxdWVzdC5oZWFkZXJzLCAncHJlc2lnbmVkLWV4cGlyZXMnKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB0b1VuYXV0aGVudGljYXRlZDogZnVuY3Rpb24gdG9VbmF1dGhlbnRpY2F0ZWQoKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcigndmFsaWRhdGUnLCBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9DUkVERU5USUFMUyk7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcignc2lnbicsIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlNJR04pO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHRvR2V0OiBmdW5jdGlvbiB0b0dldCgpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFwaS5wcm90b2NvbCA9PT0gJ3F1ZXJ5JyB8fFxuICAgICAgICB0aGlzLnNlcnZpY2UuYXBpLnByb3RvY29sID09PSAnZWMyJykge1xuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcignYnVpbGQnLCB0aGlzLmJ1aWxkQXNHZXQpO1xuICAgICAgdGhpcy5hZGRMaXN0ZW5lcignYnVpbGQnLCB0aGlzLmJ1aWxkQXNHZXQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBidWlsZEFzR2V0OiBmdW5jdGlvbiBidWlsZEFzR2V0KHJlcXVlc3QpIHtcbiAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0Lm1ldGhvZCA9ICdHRVQnO1xuICAgIHJlcXVlc3QuaHR0cFJlcXVlc3QucGF0aCA9IHJlcXVlc3Quc2VydmljZS5lbmRwb2ludC5wYXRoICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPycgKyByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmJvZHk7XG4gICAgcmVxdWVzdC5odHRwUmVxdWVzdC5ib2R5ID0gJyc7XG5cbiAgICAvLyBkb24ndCBuZWVkIHRoZXNlIGhlYWRlcnMgb24gYSBHRVQgcmVxdWVzdFxuICAgIGRlbGV0ZSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ107XG4gICAgZGVsZXRlIHJlcXVlc3QuaHR0cFJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1UeXBlJ107XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaGFsdEhhbmRsZXJzT25FcnJvcjogZnVuY3Rpb24gaGFsdEhhbmRsZXJzT25FcnJvcigpIHtcbiAgICB0aGlzLl9oYWx0SGFuZGxlcnNPbkVycm9yID0gdHJ1ZTtcbiAgfVxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5SZXF1ZXN0LmFkZFByb21pc2VzVG9DbGFzcyA9IGZ1bmN0aW9uIGFkZFByb21pc2VzVG9DbGFzcyhQcm9taXNlRGVwZW5kZW5jeSkge1xuICB0aGlzLnByb3RvdHlwZS5wcm9taXNlID0gZnVuY3Rpb24gcHJvbWlzZSgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgLy8gYXBwZW5kIHRvIHVzZXIgYWdlbnRcbiAgICB0aGlzLmh0dHBSZXF1ZXN0LmFwcGVuZFRvVXNlckFnZW50KCdwcm9taXNlJyk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlRGVwZW5kZW5jeShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHNlbGYub24oJ2NvbXBsZXRlJywgZnVuY3Rpb24ocmVzcCkge1xuICAgICAgICBpZiAocmVzcC5lcnJvcikge1xuICAgICAgICAgIHJlamVjdChyZXNwLmVycm9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBkZWZpbmUgJHJlc3BvbnNlIHByb3BlcnR5IHNvIHRoYXQgaXQgaXMgbm90IGVudW1iZXJhYmxlXG4gICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBjaXJjdWxhciByZWZlcmVuY2UgZXJyb3JzIHdoZW4gc3RyaW5naWZ5aW5nIHRoZSBKU09OIG9iamVjdFxuICAgICAgICAgIHJlc29sdmUoT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgICAgICAgICAgcmVzcC5kYXRhIHx8IHt9LFxuICAgICAgICAgICAgJyRyZXNwb25zZScsXG4gICAgICAgICAgICB7dmFsdWU6IHJlc3B9XG4gICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgc2VsZi5ydW5UbygpO1xuICAgIH0pO1xuICB9O1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlJlcXVlc3QuZGVsZXRlUHJvbWlzZXNGcm9tQ2xhc3MgPSBmdW5jdGlvbiBkZWxldGVQcm9taXNlc0Zyb21DbGFzcygpIHtcbiAgZGVsZXRlIHRoaXMucHJvdG90eXBlLnByb21pc2U7XG59O1xuXG5BV1MudXRpbC5hZGRQcm9taXNlcyhBV1MuUmVxdWVzdCk7XG5cbkFXUy51dGlsLm1peGluKEFXUy5SZXF1ZXN0LCBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yKTtcbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTItMjAxMyBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdVxuICogbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZlxuICogdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICBodHRwOi8vYXdzLmFtYXpvbi5jb20vYXBhY2hlMi4wL1xuICpcbiAqIG9yIGluIHRoZSBcImxpY2Vuc2VcIiBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpc1xuICogZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRlxuICogQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljXG4gKiBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbnZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcbnZhciBpbmhlcml0ID0gQVdTLnV0aWwuaW5oZXJpdDtcbnZhciBqbWVzcGF0aCA9IHJlcXVpcmUoJ2ptZXNwYXRoJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIENIRUNLX0FDQ0VQVE9SUyhyZXNwKSB7XG4gIHZhciB3YWl0ZXIgPSByZXNwLnJlcXVlc3QuX3dhaXRlcjtcbiAgdmFyIGFjY2VwdG9ycyA9IHdhaXRlci5jb25maWcuYWNjZXB0b3JzO1xuICB2YXIgYWNjZXB0b3JNYXRjaGVkID0gZmFsc2U7XG4gIHZhciBzdGF0ZSA9ICdyZXRyeSc7XG5cbiAgYWNjZXB0b3JzLmZvckVhY2goZnVuY3Rpb24oYWNjZXB0b3IpIHtcbiAgICBpZiAoIWFjY2VwdG9yTWF0Y2hlZCkge1xuICAgICAgdmFyIG1hdGNoZXIgPSB3YWl0ZXIubWF0Y2hlcnNbYWNjZXB0b3IubWF0Y2hlcl07XG4gICAgICBpZiAobWF0Y2hlciAmJiBtYXRjaGVyKHJlc3AsIGFjY2VwdG9yLmV4cGVjdGVkLCBhY2NlcHRvci5hcmd1bWVudCkpIHtcbiAgICAgICAgYWNjZXB0b3JNYXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUgPSBhY2NlcHRvci5zdGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIGlmICghYWNjZXB0b3JNYXRjaGVkICYmIHJlc3AuZXJyb3IpIHN0YXRlID0gJ2ZhaWx1cmUnO1xuXG4gIGlmIChzdGF0ZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgd2FpdGVyLnNldFN1Y2Nlc3MocmVzcCk7XG4gIH0gZWxzZSB7XG4gICAgd2FpdGVyLnNldEVycm9yKHJlc3AsIHN0YXRlID09PSAncmV0cnknKTtcbiAgfVxufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuUmVzb3VyY2VXYWl0ZXIgPSBpbmhlcml0KHtcbiAgLyoqXG4gICAqIFdhaXRzIGZvciBhIGdpdmVuIHN0YXRlIG9uIGEgc2VydmljZSBvYmplY3RcbiAgICogQHBhcmFtIHNlcnZpY2UgW1NlcnZpY2VdIHRoZSBzZXJ2aWNlIG9iamVjdCB0byB3YWl0IG9uXG4gICAqIEBwYXJhbSBzdGF0ZSBbU3RyaW5nXSB0aGUgc3RhdGUgKGRlZmluZWQgaW4gd2FpdGVyIGNvbmZpZ3VyYXRpb24pIHRvIHdhaXRcbiAgICogICBmb3IuXG4gICAqIEBleGFtcGxlIENyZWF0ZSBhIHdhaXRlciBmb3IgcnVubmluZyBFQzIgaW5zdGFuY2VzXG4gICAqICAgdmFyIGVjMiA9IG5ldyBBV1MuRUMyO1xuICAgKiAgIHZhciB3YWl0ZXIgPSBuZXcgQVdTLlJlc291cmNlV2FpdGVyKGVjMiwgJ2luc3RhbmNlUnVubmluZycpO1xuICAgKi9cbiAgY29uc3RydWN0b3I6IGZ1bmN0aW9uIGNvbnN0cnVjdG9yKHNlcnZpY2UsIHN0YXRlKSB7XG4gICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5sb2FkV2FpdGVyQ29uZmlnKHRoaXMuc3RhdGUpO1xuICB9LFxuXG4gIHNlcnZpY2U6IG51bGwsXG5cbiAgc3RhdGU6IG51bGwsXG5cbiAgY29uZmlnOiBudWxsLFxuXG4gIG1hdGNoZXJzOiB7XG4gICAgcGF0aDogZnVuY3Rpb24ocmVzcCwgZXhwZWN0ZWQsIGFyZ3VtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gam1lc3BhdGguc2VhcmNoKHJlc3AuZGF0YSwgYXJndW1lbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGptZXNwYXRoLnN0cmljdERlZXBFcXVhbChyZXN1bHQsZXhwZWN0ZWQpO1xuICAgIH0sXG5cbiAgICBwYXRoQWxsOiBmdW5jdGlvbihyZXNwLCBleHBlY3RlZCwgYXJndW1lbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciByZXN1bHRzID0gam1lc3BhdGguc2VhcmNoKHJlc3AuZGF0YSwgYXJndW1lbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJlc3VsdHMpKSByZXN1bHRzID0gW3Jlc3VsdHNdO1xuICAgICAgdmFyIG51bVJlc3VsdHMgPSByZXN1bHRzLmxlbmd0aDtcbiAgICAgIGlmICghbnVtUmVzdWx0cykgcmV0dXJuIGZhbHNlO1xuICAgICAgZm9yICh2YXIgaW5kID0gMCA7IGluZCA8IG51bVJlc3VsdHM7IGluZCsrKSB7XG4gICAgICAgIGlmICgham1lc3BhdGguc3RyaWN0RGVlcEVxdWFsKHJlc3VsdHNbaW5kXSwgZXhwZWN0ZWQpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuXG4gICAgcGF0aEFueTogZnVuY3Rpb24ocmVzcCwgZXhwZWN0ZWQsIGFyZ3VtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgcmVzdWx0cyA9IGptZXNwYXRoLnNlYXJjaChyZXNwLmRhdGEsIGFyZ3VtZW50KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHRzKSkgcmVzdWx0cyA9IFtyZXN1bHRzXTtcbiAgICAgIHZhciBudW1SZXN1bHRzID0gcmVzdWx0cy5sZW5ndGg7XG4gICAgICBmb3IgKHZhciBpbmQgPSAwIDsgaW5kIDwgbnVtUmVzdWx0czsgaW5kKyspIHtcbiAgICAgICAgaWYgKGptZXNwYXRoLnN0cmljdERlZXBFcXVhbChyZXN1bHRzW2luZF0sIGV4cGVjdGVkKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcblxuICAgIHN0YXR1czogZnVuY3Rpb24ocmVzcCwgZXhwZWN0ZWQpIHtcbiAgICAgIHZhciBzdGF0dXNDb2RlID0gcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICAgIHJldHVybiAodHlwZW9mIHN0YXR1c0NvZGUgPT09ICdudW1iZXInKSAmJiAoc3RhdHVzQ29kZSA9PT0gZXhwZWN0ZWQpO1xuICAgIH0sXG5cbiAgICBlcnJvcjogZnVuY3Rpb24ocmVzcCwgZXhwZWN0ZWQpIHtcbiAgICAgIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT09ICdzdHJpbmcnICYmIHJlc3AuZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGV4cGVjdGVkID09PSByZXNwLmVycm9yLmNvZGU7XG4gICAgICB9XG4gICAgICAvLyBpZiBleHBlY3RlZCBpcyBub3Qgc3RyaW5nLCBjYW4gYmUgYm9vbGVhbiBpbmRpY2F0aW5nIHByZXNlbmNlIG9mIGVycm9yXG4gICAgICByZXR1cm4gZXhwZWN0ZWQgPT09ICEhcmVzcC5lcnJvcjtcbiAgICB9XG4gIH0sXG5cbiAgbGlzdGVuZXJzOiBuZXcgQVdTLlNlcXVlbnRpYWxFeGVjdXRvcigpLmFkZE5hbWVkTGlzdGVuZXJzKGZ1bmN0aW9uKGFkZCkge1xuICAgIGFkZCgnUkVUUllfQ0hFQ0snLCAncmV0cnknLCBmdW5jdGlvbihyZXNwKSB7XG4gICAgICB2YXIgd2FpdGVyID0gcmVzcC5yZXF1ZXN0Ll93YWl0ZXI7XG4gICAgICBpZiAocmVzcC5lcnJvciAmJiByZXNwLmVycm9yLmNvZGUgPT09ICdSZXNvdXJjZU5vdFJlYWR5Jykge1xuICAgICAgICByZXNwLmVycm9yLnJldHJ5RGVsYXkgPSAod2FpdGVyLmNvbmZpZy5kZWxheSB8fCAwKSAqIDEwMDA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGQoJ0NIRUNLX09VVFBVVCcsICdleHRyYWN0RGF0YScsIENIRUNLX0FDQ0VQVE9SUyk7XG5cbiAgICBhZGQoJ0NIRUNLX0VSUk9SJywgJ2V4dHJhY3RFcnJvcicsIENIRUNLX0FDQ0VQVE9SUyk7XG4gIH0pLFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFtBV1MuUmVxdWVzdF1cbiAgICovXG4gIHdhaXQ6IGZ1bmN0aW9uIHdhaXQocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgcGFyYW1zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IHBhcmFtczsgcGFyYW1zID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLiR3YWl0ZXIpIHtcbiAgICAgIHBhcmFtcyA9IEFXUy51dGlsLmNvcHkocGFyYW1zKTtcbiAgICAgIGlmICh0eXBlb2YgcGFyYW1zLiR3YWl0ZXIuZGVsYXkgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLmRlbGF5ID0gcGFyYW1zLiR3YWl0ZXIuZGVsYXk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHBhcmFtcy4kd2FpdGVyLm1heEF0dGVtcHRzID09PSAnbnVtYmVyJykge1xuICAgICAgICB0aGlzLmNvbmZpZy5tYXhBdHRlbXB0cyA9IHBhcmFtcy4kd2FpdGVyLm1heEF0dGVtcHRzO1xuICAgICAgfVxuICAgICAgZGVsZXRlIHBhcmFtcy4kd2FpdGVyO1xuICAgIH1cblxuICAgIHZhciByZXF1ZXN0ID0gdGhpcy5zZXJ2aWNlLm1ha2VSZXF1ZXN0KHRoaXMuY29uZmlnLm9wZXJhdGlvbiwgcGFyYW1zKTtcbiAgICByZXF1ZXN0Ll93YWl0ZXIgPSB0aGlzO1xuICAgIHJlcXVlc3QucmVzcG9uc2UubWF4UmV0cmllcyA9IHRoaXMuY29uZmlnLm1heEF0dGVtcHRzO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXJzKHRoaXMubGlzdGVuZXJzKTtcblxuICAgIGlmIChjYWxsYmFjaykgcmVxdWVzdC5zZW5kKGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICBzZXRTdWNjZXNzOiBmdW5jdGlvbiBzZXRTdWNjZXNzKHJlc3ApIHtcbiAgICByZXNwLmVycm9yID0gbnVsbDtcbiAgICByZXNwLmRhdGEgPSByZXNwLmRhdGEgfHwge307XG4gICAgcmVzcC5yZXF1ZXN0LnJlbW92ZUFsbExpc3RlbmVycygnZXh0cmFjdERhdGEnKTtcbiAgfSxcblxuICBzZXRFcnJvcjogZnVuY3Rpb24gc2V0RXJyb3IocmVzcCwgcmV0cnlhYmxlKSB7XG4gICAgcmVzcC5kYXRhID0gbnVsbDtcbiAgICByZXNwLmVycm9yID0gQVdTLnV0aWwuZXJyb3IocmVzcC5lcnJvciB8fCBuZXcgRXJyb3IoKSwge1xuICAgICAgY29kZTogJ1Jlc291cmNlTm90UmVhZHknLFxuICAgICAgbWVzc2FnZTogJ1Jlc291cmNlIGlzIG5vdCBpbiB0aGUgc3RhdGUgJyArIHRoaXMuc3RhdGUsXG4gICAgICByZXRyeWFibGU6IHJldHJ5YWJsZVxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBMb2FkcyB3YWl0ZXIgY29uZmlndXJhdGlvbiBmcm9tIEFQSSBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbG9hZFdhaXRlckNvbmZpZzogZnVuY3Rpb24gbG9hZFdhaXRlckNvbmZpZyhzdGF0ZSkge1xuICAgIGlmICghdGhpcy5zZXJ2aWNlLmFwaS53YWl0ZXJzW3N0YXRlXSkge1xuICAgICAgdGhyb3cgbmV3IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICAgIGNvZGU6ICdTdGF0ZU5vdEZvdW5kRXJyb3InLFxuICAgICAgICBtZXNzYWdlOiAnU3RhdGUgJyArIHN0YXRlICsgJyBub3QgZm91bmQuJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcgPSBBV1MudXRpbC5jb3B5KHRoaXMuc2VydmljZS5hcGkud2FpdGVyc1tzdGF0ZV0pO1xuICB9XG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuL2NvcmUnKTtcbnZhciBpbmhlcml0ID0gQVdTLnV0aWwuaW5oZXJpdDtcbnZhciBqbWVzcGF0aCA9IHJlcXVpcmUoJ2ptZXNwYXRoJyk7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBlbmNhcHN1bGF0ZXMgdGhlIHJlc3BvbnNlIGluZm9ybWF0aW9uXG4gKiBmcm9tIGEgc2VydmljZSByZXF1ZXN0IG9wZXJhdGlvbiBzZW50IHRocm91Z2gge0FXUy5SZXF1ZXN0fS5cbiAqIFRoZSByZXNwb25zZSBvYmplY3QgaGFzIHR3byBtYWluIHByb3BlcnRpZXMgZm9yIGdldHRpbmcgaW5mb3JtYXRpb25cbiAqIGJhY2sgZnJvbSBhIHJlcXVlc3Q6XG4gKlxuICogIyMgVGhlIGBkYXRhYCBwcm9wZXJ0eVxuICpcbiAqIFRoZSBgcmVzcG9uc2UuZGF0YWAgcHJvcGVydHkgY29udGFpbnMgdGhlIHNlcmlhbGl6ZWQgb2JqZWN0IGRhdGFcbiAqIHJldHJpZXZlZCBmcm9tIHRoZSBzZXJ2aWNlIHJlcXVlc3QuIEZvciBpbnN0YW5jZSwgZm9yIGFuXG4gKiBBbWF6b24gRHluYW1vREIgYGxpc3RUYWJsZXNgIG1ldGhvZCBjYWxsLCB0aGUgcmVzcG9uc2UgZGF0YSBtaWdodFxuICogbG9vayBsaWtlOlxuICpcbiAqIGBgYFxuICogPiByZXNwLmRhdGFcbiAqIHsgVGFibGVOYW1lczpcbiAqICAgIFsgJ3RhYmxlMScsICd0YWJsZTInLCAuLi4gXSB9XG4gKiBgYGBcbiAqXG4gKiBUaGUgYGRhdGFgIHByb3BlcnR5IGNhbiBiZSBudWxsIGlmIGFuIGVycm9yIG9jY3VycyAoc2VlIGJlbG93KS5cbiAqXG4gKiAjIyBUaGUgYGVycm9yYCBwcm9wZXJ0eVxuICpcbiAqIEluIHRoZSBldmVudCBvZiBhIHNlcnZpY2UgZXJyb3IgKG9yIHRyYW5zZmVyIGVycm9yKSwgdGhlXG4gKiBgcmVzcG9uc2UuZXJyb3JgIHByb3BlcnR5IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIGdpdmVuXG4gKiBlcnJvciBkYXRhIGluIHRoZSBmb3JtOlxuICpcbiAqIGBgYFxuICogeyBjb2RlOiAnU0hPUlRfVU5JUVVFX0VSUk9SX0NPREUnLFxuICogICBtZXNzYWdlOiAnU29tZSBodW1hbiByZWFkYWJsZSBlcnJvciBtZXNzYWdlJyB9XG4gKiBgYGBcbiAqXG4gKiBJbiB0aGUgY2FzZSBvZiBhbiBlcnJvciwgdGhlIGBkYXRhYCBwcm9wZXJ0eSB3aWxsIGJlIGBudWxsYC5cbiAqIE5vdGUgdGhhdCBpZiB5b3UgaGFuZGxlIGV2ZW50cyB0aGF0IGNhbiBiZSBpbiBhIGZhaWx1cmUgc3RhdGUsXG4gKiB5b3Ugc2hvdWxkIGFsd2F5cyBjaGVjayB3aGV0aGVyIGByZXNwb25zZS5lcnJvcmAgaXMgc2V0XG4gKiBiZWZvcmUgYXR0ZW1wdGluZyB0byBhY2Nlc3MgdGhlIGByZXNwb25zZS5kYXRhYCBwcm9wZXJ0eS5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBkYXRhXG4gKiAgIEByZWFkb25seVxuICogICBAIWdyb3VwIERhdGEgUHJvcGVydGllc1xuICogICBAbm90ZSBJbnNpZGUgb2YgYSB7QVdTLlJlcXVlc3R+aHR0cERhdGF9IGV2ZW50LCB0aGlzXG4gKiAgICAgcHJvcGVydHkgY29udGFpbnMgYSBzaW5nbGUgcmF3IHBhY2tldCBpbnN0ZWFkIG9mIHRoZVxuICogICAgIGZ1bGwgZGUtc2VyaWFsaXplZCBzZXJ2aWNlIHJlc3BvbnNlLlxuICogICBAcmV0dXJuIFtPYmplY3RdIHRoZSBkZS1zZXJpYWxpemVkIHJlc3BvbnNlIGRhdGFcbiAqICAgICBmcm9tIHRoZSBzZXJ2aWNlLlxuICpcbiAqIEAhYXR0cmlidXRlIGVycm9yXG4gKiAgIEFuIHN0cnVjdHVyZSBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc2VydmljZVxuICogICBvciBuZXR3b3JraW5nIGVycm9yLlxuICogICBAcmVhZG9ubHlcbiAqICAgQCFncm91cCBEYXRhIFByb3BlcnRpZXNcbiAqICAgQG5vdGUgVGhpcyBhdHRyaWJ1dGUgaXMgb25seSBmaWxsZWQgaWYgYSBzZXJ2aWNlIG9yXG4gKiAgICAgbmV0d29ya2luZyBlcnJvciBvY2N1cnMuXG4gKiAgIEByZXR1cm4gW0Vycm9yXVxuICogICAgICogY29kZSBbU3RyaW5nXSBhIHVuaXF1ZSBzaG9ydCBjb2RlIHJlcHJlc2VudGluZyB0aGVcbiAqICAgICAgIGVycm9yIHRoYXQgd2FzIGVtaXR0ZWQuXG4gKiAgICAgKiBtZXNzYWdlIFtTdHJpbmddIGEgbG9uZ2VyIGh1bWFuIHJlYWRhYmxlIGVycm9yIG1lc3NhZ2VcbiAqICAgICAqIHJldHJ5YWJsZSBbQm9vbGVhbl0gd2hldGhlciB0aGUgZXJyb3IgbWVzc2FnZSBpc1xuICogICAgICAgcmV0cnlhYmxlLlxuICogICAgICogc3RhdHVzQ29kZSBbTnVtZXJpY10gaW4gdGhlIGNhc2Ugb2YgYSByZXF1ZXN0IHRoYXQgcmVhY2hlZCB0aGUgc2VydmljZSxcbiAqICAgICAgIHRoaXMgdmFsdWUgY29udGFpbnMgdGhlIHJlc3BvbnNlIHN0YXR1cyBjb2RlLlxuICogICAgICogdGltZSBbRGF0ZV0gdGhlIGRhdGUgdGltZSBvYmplY3Qgd2hlbiB0aGUgZXJyb3Igb2NjdXJyZWQuXG4gKiAgICAgKiBob3N0bmFtZSBbU3RyaW5nXSBzZXQgd2hlbiBhIG5ldHdvcmtpbmcgZXJyb3Igb2NjdXJzIHRvIGVhc2lseVxuICogICAgICAgaWRlbnRpZnkgdGhlIGVuZHBvaW50IG9mIHRoZSByZXF1ZXN0LlxuICogICAgICogcmVnaW9uIFtTdHJpbmddIHNldCB3aGVuIGEgbmV0d29ya2luZyBlcnJvciBvY2N1cnMgdG8gZWFzaWx5XG4gKiAgICAgICBpZGVudGlmeSB0aGUgcmVnaW9uIG9mIHRoZSByZXF1ZXN0LlxuICpcbiAqIEAhYXR0cmlidXRlIHJlcXVlc3RJZFxuICogICBAcmVhZG9ubHlcbiAqICAgQCFncm91cCBEYXRhIFByb3BlcnRpZXNcbiAqICAgQHJldHVybiBbU3RyaW5nXSB0aGUgdW5pcXVlIHJlcXVlc3QgSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNwb25zZS5cbiAqICAgICBMb2cgdGhpcyB2YWx1ZSB3aGVuIGRlYnVnZ2luZyByZXF1ZXN0cyBmb3IgQVdTIHN1cHBvcnQuXG4gKlxuICogQCFhdHRyaWJ1dGUgcmV0cnlDb3VudFxuICogICBAcmVhZG9ubHlcbiAqICAgQCFncm91cCBPcGVyYXRpb24gUHJvcGVydGllc1xuICogICBAcmV0dXJuIFtJbnRlZ2VyXSB0aGUgbnVtYmVyIG9mIHJldHJpZXMgdGhhdCB3ZXJlXG4gKiAgICAgYXR0ZW1wdGVkIGJlZm9yZSB0aGUgcmVxdWVzdCB3YXMgY29tcGxldGVkLlxuICpcbiAqIEAhYXR0cmlidXRlIHJlZGlyZWN0Q291bnRcbiAqICAgQHJlYWRvbmx5XG4gKiAgIEAhZ3JvdXAgT3BlcmF0aW9uIFByb3BlcnRpZXNcbiAqICAgQHJldHVybiBbSW50ZWdlcl0gdGhlIG51bWJlciBvZiByZWRpcmVjdHMgdGhhdCB3ZXJlXG4gKiAgICAgZm9sbG93ZWQgYmVmb3JlIHRoZSByZXF1ZXN0IHdhcyBjb21wbGV0ZWQuXG4gKlxuICogQCFhdHRyaWJ1dGUgaHR0cFJlc3BvbnNlXG4gKiAgIEByZWFkb25seVxuICogICBAIWdyb3VwIEhUVFAgUHJvcGVydGllc1xuICogICBAcmV0dXJuIFtBV1MuSHR0cFJlc3BvbnNlXSB0aGUgcmF3IEhUVFAgcmVzcG9uc2Ugb2JqZWN0XG4gKiAgICAgY29udGFpbmluZyB0aGUgcmVzcG9uc2UgaGVhZGVycyBhbmQgYm9keSBpbmZvcm1hdGlvblxuICogICAgIGZyb20gdGhlIHNlcnZlci5cbiAqXG4gKiBAc2VlIEFXUy5SZXF1ZXN0XG4gKi9cbkFXUy5SZXNwb25zZSA9IGluaGVyaXQoe1xuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBSZXNwb25zZShyZXF1ZXN0KSB7XG4gICAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdDtcbiAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgIHRoaXMuZXJyb3IgPSBudWxsO1xuICAgIHRoaXMucmV0cnlDb3VudCA9IDA7XG4gICAgdGhpcy5yZWRpcmVjdENvdW50ID0gMDtcbiAgICB0aGlzLmh0dHBSZXNwb25zZSA9IG5ldyBBV1MuSHR0cFJlc3BvbnNlKCk7XG4gICAgaWYgKHJlcXVlc3QpIHtcbiAgICAgIHRoaXMubWF4UmV0cmllcyA9IHJlcXVlc3Quc2VydmljZS5udW1SZXRyaWVzKCk7XG4gICAgICB0aGlzLm1heFJlZGlyZWN0cyA9IHJlcXVlc3Quc2VydmljZS5jb25maWcubWF4UmVkaXJlY3RzO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyByZXF1ZXN0IGZvciB0aGUgbmV4dCBwYWdlIG9mIHJlc3BvbnNlIGRhdGEsIGNhbGxpbmcgdGhlXG4gICAqIGNhbGxiYWNrIHdpdGggdGhlIHBhZ2UgZGF0YSBpZiBhIGNhbGxiYWNrIGlzIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyLCBkYXRhKVxuICAgKiAgIENhbGxlZCB3aGVuIGEgcGFnZSBvZiBkYXRhIGlzIHJldHVybmVkIGZyb20gdGhlIG5leHQgcmVxdWVzdC5cbiAgICpcbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gYW4gZXJyb3Igb2JqZWN0LCBpZiBhbiBlcnJvciBvY2N1cnJlZCBpbiB0aGUgcmVxdWVzdFxuICAgKiAgIEBwYXJhbSBkYXRhIFtPYmplY3RdIHRoZSBuZXh0IHBhZ2Ugb2YgZGF0YSwgb3IgbnVsbCwgaWYgdGhlcmUgYXJlIG5vXG4gICAqICAgICBtb3JlIHBhZ2VzIGxlZnQuXG4gICAqIEByZXR1cm4gW0FXUy5SZXF1ZXN0XSB0aGUgcmVxdWVzdCBvYmplY3QgZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgZGF0YVxuICAgKiBAcmV0dXJuIFtudWxsXSBpZiBubyBjYWxsYmFjayBpcyBwcm92aWRlZCBhbmQgdGhlcmUgYXJlIG5vIHBhZ2VzIGxlZnRcbiAgICogICB0byByZXRyaWV2ZS5cbiAgICogQHNpbmNlIHYxLjQuMFxuICAgKi9cbiAgbmV4dFBhZ2U6IGZ1bmN0aW9uIG5leHRQYWdlKGNhbGxiYWNrKSB7XG4gICAgdmFyIGNvbmZpZztcbiAgICB2YXIgc2VydmljZSA9IHRoaXMucmVxdWVzdC5zZXJ2aWNlO1xuICAgIHZhciBvcGVyYXRpb24gPSB0aGlzLnJlcXVlc3Qub3BlcmF0aW9uO1xuICAgIHRyeSB7XG4gICAgICBjb25maWcgPSBzZXJ2aWNlLnBhZ2luYXRpb25Db25maWcob3BlcmF0aW9uLCB0cnVlKTtcbiAgICB9IGNhdGNoIChlKSB7IHRoaXMuZXJyb3IgPSBlOyB9XG5cbiAgICBpZiAoIXRoaXMuaGFzTmV4dFBhZ2UoKSkge1xuICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjayh0aGlzLmVycm9yLCBudWxsKTtcbiAgICAgIGVsc2UgaWYgKHRoaXMuZXJyb3IpIHRocm93IHRoaXMuZXJyb3I7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB2YXIgcGFyYW1zID0gQVdTLnV0aWwuY29weSh0aGlzLnJlcXVlc3QucGFyYW1zKTtcbiAgICBpZiAoIXRoaXMubmV4dFBhZ2VUb2tlbnMpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayA/IGNhbGxiYWNrKG51bGwsIG51bGwpIDogbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGlucHV0VG9rZW5zID0gY29uZmlnLmlucHV0VG9rZW47XG4gICAgICBpZiAodHlwZW9mIGlucHV0VG9rZW5zID09PSAnc3RyaW5nJykgaW5wdXRUb2tlbnMgPSBbaW5wdXRUb2tlbnNdO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dFRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXJhbXNbaW5wdXRUb2tlbnNbaV1dID0gdGhpcy5uZXh0UGFnZVRva2Vuc1tpXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzZXJ2aWNlLm1ha2VSZXF1ZXN0KHRoaXMucmVxdWVzdC5vcGVyYXRpb24sIHBhcmFtcywgY2FsbGJhY2spO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciBtb3JlIHBhZ2VzIG9mIGRhdGEgY2FuIGJlIHJldHVybmVkIGJ5IGZ1cnRoZXJcbiAgICogICByZXF1ZXN0c1xuICAgKiBAc2luY2UgdjEuNC4wXG4gICAqL1xuICBoYXNOZXh0UGFnZTogZnVuY3Rpb24gaGFzTmV4dFBhZ2UoKSB7XG4gICAgdGhpcy5jYWNoZU5leHRQYWdlVG9rZW5zKCk7XG4gICAgaWYgKHRoaXMubmV4dFBhZ2VUb2tlbnMpIHJldHVybiB0cnVlO1xuICAgIGlmICh0aGlzLm5leHRQYWdlVG9rZW5zID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY2FjaGVOZXh0UGFnZVRva2VuczogZnVuY3Rpb24gY2FjaGVOZXh0UGFnZVRva2VucygpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsICduZXh0UGFnZVRva2VucycpKSByZXR1cm4gdGhpcy5uZXh0UGFnZVRva2VucztcbiAgICB0aGlzLm5leHRQYWdlVG9rZW5zID0gdW5kZWZpbmVkO1xuXG4gICAgdmFyIGNvbmZpZyA9IHRoaXMucmVxdWVzdC5zZXJ2aWNlLnBhZ2luYXRpb25Db25maWcodGhpcy5yZXF1ZXN0Lm9wZXJhdGlvbik7XG4gICAgaWYgKCFjb25maWcpIHJldHVybiB0aGlzLm5leHRQYWdlVG9rZW5zO1xuXG4gICAgdGhpcy5uZXh0UGFnZVRva2VucyA9IG51bGw7XG4gICAgaWYgKGNvbmZpZy5tb3JlUmVzdWx0cykge1xuICAgICAgaWYgKCFqbWVzcGF0aC5zZWFyY2godGhpcy5kYXRhLCBjb25maWcubW9yZVJlc3VsdHMpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5leHRQYWdlVG9rZW5zO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBleHBycyA9IGNvbmZpZy5vdXRwdXRUb2tlbjtcbiAgICBpZiAodHlwZW9mIGV4cHJzID09PSAnc3RyaW5nJykgZXhwcnMgPSBbZXhwcnNdO1xuICAgIEFXUy51dGlsLmFycmF5RWFjaC5jYWxsKHRoaXMsIGV4cHJzLCBmdW5jdGlvbiAoZXhwcikge1xuICAgICAgdmFyIG91dHB1dCA9IGptZXNwYXRoLnNlYXJjaCh0aGlzLmRhdGEsIGV4cHIpO1xuICAgICAgaWYgKG91dHB1dCkge1xuICAgICAgICB0aGlzLm5leHRQYWdlVG9rZW5zID0gdGhpcy5uZXh0UGFnZVRva2VucyB8fCBbXTtcbiAgICAgICAgdGhpcy5uZXh0UGFnZVRva2Vucy5wdXNoKG91dHB1dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5uZXh0UGFnZVRva2VucztcbiAgfVxuXG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgYnl0ZUxlbmd0aCA9IEFXUy51dGlsLnN0cmluZy5ieXRlTGVuZ3RoO1xudmFyIEJ1ZmZlciA9IEFXUy51dGlsLkJ1ZmZlcjtcblxuLyoqXG4gKiBUaGUgbWFuYWdlZCB1cGxvYWRlciBhbGxvd3MgZm9yIGVhc3kgYW5kIGVmZmljaWVudCB1cGxvYWRpbmcgb2YgYnVmZmVycyxcbiAqIGJsb2JzLCBvciBzdHJlYW1zLCB1c2luZyBhIGNvbmZpZ3VyYWJsZSBhbW91bnQgb2YgY29uY3VycmVuY3kgdG8gcGVyZm9ybVxuICogbXVsdGlwYXJ0IHVwbG9hZHMgd2hlcmUgcG9zc2libGUuIFRoaXMgYWJzdHJhY3Rpb24gYWxzbyBlbmFibGVzIHVwbG9hZGluZ1xuICogc3RyZWFtcyBvZiB1bmtub3duIHNpemUgZHVlIHRvIHRoZSB1c2Ugb2YgbXVsdGlwYXJ0IHVwbG9hZHMuXG4gKlxuICogVG8gY29uc3RydWN0IGEgbWFuYWdlZCB1cGxvYWQgb2JqZWN0LCBzZWUgdGhlIHtjb25zdHJ1Y3Rvcn0gZnVuY3Rpb24uXG4gKlxuICogIyMgVHJhY2tpbmcgdXBsb2FkIHByb2dyZXNzXG4gKlxuICogVGhlIG1hbmFnZWQgdXBsb2FkIG9iamVjdCBjYW4gYWxzbyB0cmFjayBwcm9ncmVzcyBieSBhdHRhY2hpbmcgYW5cbiAqICdodHRwVXBsb2FkUHJvZ3Jlc3MnIGxpc3RlbmVyIHRvIHRoZSB1cGxvYWQgbWFuYWdlci4gVGhpcyBldmVudCBpcyBzaW1pbGFyXG4gKiB0byB7QVdTLlJlcXVlc3R+aHR0cFVwbG9hZFByb2dyZXNzfSBidXQgZ3JvdXBzIGFsbCBjb25jdXJyZW50IHVwbG9hZCBwcm9ncmVzc1xuICogaW50byBhIHNpbmdsZSBldmVudC4gU2VlIHtBV1MuUzMuTWFuYWdlZFVwbG9hZH5odHRwVXBsb2FkUHJvZ3Jlc3N9IGZvciBtb3JlXG4gKiBpbmZvcm1hdGlvbi5cbiAqXG4gKiAjIyBIYW5kbGluZyBNdWx0aXBhcnQgQ2xlYW51cFxuICpcbiAqIEJ5IGRlZmF1bHQsIHRoaXMgY2xhc3Mgd2lsbCBhdXRvbWF0aWNhbGx5IGNsZWFuIHVwIGFueSBtdWx0aXBhcnQgdXBsb2Fkc1xuICogd2hlbiBhbiBpbmRpdmlkdWFsIHBhcnQgdXBsb2FkIGZhaWxzLiBUaGlzIGJlaGF2aW9yIGNhbiBiZSBkaXNhYmxlZCBpbiBvcmRlclxuICogdG8gbWFudWFsbHkgaGFuZGxlIGZhaWx1cmVzIGJ5IHNldHRpbmcgdGhlIGBsZWF2ZVBhcnRzT25FcnJvcmAgY29uZmlndXJhdGlvblxuICogb3B0aW9uIHRvIGB0cnVlYCB3aGVuIGluaXRpYWxpemluZyB0aGUgdXBsb2FkIG9iamVjdC5cbiAqXG4gKiBAIWV2ZW50IGh0dHBVcGxvYWRQcm9ncmVzcyhwcm9ncmVzcylcbiAqICAgVHJpZ2dlcmVkIHdoZW4gdGhlIHVwbG9hZGVyIGhhcyB1cGxvYWRlZCBtb3JlIGRhdGEuXG4gKiAgIEBub3RlIFRoZSBgdG90YWxgIHByb3BlcnR5IG1heSBub3QgYmUgc2V0IGlmIHRoZSBzdHJlYW0gYmVpbmcgdXBsb2FkZWQgaGFzXG4gKiAgICAgbm90IHlldCBmaW5pc2hlZCBjaHVua2luZy4gSW4gdGhpcyBjYXNlIHRoZSBgdG90YWxgIHdpbGwgYmUgdW5kZWZpbmVkXG4gKiAgICAgdW50aWwgdGhlIHRvdGFsIHN0cmVhbSBzaXplIGlzIGtub3duLlxuICogICBAbm90ZSBUaGlzIGV2ZW50IHdpbGwgbm90IGJlIGVtaXR0ZWQgaW4gTm9kZS5qcyAwLjgueC5cbiAqICAgQHBhcmFtIHByb2dyZXNzIFttYXBdIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBgbG9hZGVkYCBhbmQgYHRvdGFsYCBieXRlc1xuICogICAgIG9mIHRoZSByZXF1ZXN0IGFuZCB0aGUgYGtleWAgb2YgdGhlIFMzIG9iamVjdC4gTm90ZSB0aGF0IGB0b3RhbGAgbWF5IGJlIHVuZGVmaW5lZCB1bnRpbCB0aGUgcGF5bG9hZFxuICogICAgIHNpemUgaXMga25vd24uXG4gKiAgIEBjb250ZXh0IChzZWUgQVdTLlJlcXVlc3R+c2VuZClcbiAqL1xuQVdTLlMzLk1hbmFnZWRVcGxvYWQgPSBBV1MudXRpbC5pbmhlcml0KHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBtYW5hZ2VkIHVwbG9hZCBvYmplY3Qgd2l0aCBhIHNldCBvZiBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqXG4gICAqIEBub3RlIEEgXCJCb2R5XCIgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIGJlIHNldCBwcmlvciB0byBjYWxsaW5nIHtzZW5kfS5cbiAgICogQG9wdGlvbiBvcHRpb25zIHBhcmFtcyBbbWFwXSBhIG1hcCBvZiBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHVwbG9hZFxuICAgKiAgIHJlcXVlc3RzLiBUaGUgXCJCb2R5XCIgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIGJlIHNwZWNpZmllZCBlaXRoZXIgb25cbiAgICogICB0aGUgc2VydmljZSBvciBpbiB0aGUgcGFyYW1zIG9wdGlvbi5cbiAgICogQG5vdGUgQ29udGVudE1ENSBzaG91bGQgbm90IGJlIHByb3ZpZGVkIHdoZW4gdXNpbmcgdGhlIG1hbmFnZWQgdXBsb2FkIG9iamVjdC5cbiAgICogICBJbnN0ZWFkLCBzZXR0aW5nIFwiY29tcHV0ZUNoZWNrc3Vtc1wiIHRvIHRydWUgd2lsbCBlbmFibGUgYXV0b21hdGljIENvbnRlbnRNRDUgZ2VuZXJhdGlvblxuICAgKiAgIGJ5IHRoZSBtYW5hZ2VkIHVwbG9hZCBvYmplY3QuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBxdWV1ZVNpemUgW051bWJlcl0gKDQpIHRoZSBzaXplIG9mIHRoZSBjb25jdXJyZW50IHF1ZXVlXG4gICAqICAgbWFuYWdlciB0byB1cGxvYWQgcGFydHMgaW4gcGFyYWxsZWwuIFNldCB0byAxIGZvciBzeW5jaHJvbm91cyB1cGxvYWRpbmdcbiAgICogICBvZiBwYXJ0cy4gTm90ZSB0aGF0IHRoZSB1cGxvYWRlciB3aWxsIGJ1ZmZlciBhdCBtb3N0IHF1ZXVlU2l6ZSAqIHBhcnRTaXplXG4gICAqICAgYnl0ZXMgaW50byBtZW1vcnkgYXQgYW55IGdpdmVuIHRpbWUuXG4gICAqIEBvcHRpb24gb3B0aW9ucyBwYXJ0U2l6ZSBbTnVtYmVyXSAoNW1iKSB0aGUgc2l6ZSBpbiBieXRlcyBmb3IgZWFjaFxuICAgKiAgIGluZGl2aWR1YWwgcGFydCB0byBiZSB1cGxvYWRlZC4gQWRqdXN0IHRoZSBwYXJ0IHNpemUgdG8gZW5zdXJlIHRoZSBudW1iZXJcbiAgICogICBvZiBwYXJ0cyBkb2VzIG5vdCBleGNlZWQge21heFRvdGFsUGFydHN9LiBTZWUge21pblBhcnRTaXplfSBmb3IgdGhlXG4gICAqICAgbWluaW11bSBhbGxvd2VkIHBhcnQgc2l6ZS5cbiAgICogQG9wdGlvbiBvcHRpb25zIGxlYXZlUGFydHNPbkVycm9yIFtCb29sZWFuXSAoZmFsc2UpIHdoZXRoZXIgdG8gYWJvcnQgdGhlXG4gICAqICAgbXVsdGlwYXJ0IHVwbG9hZCBpZiBhbiBlcnJvciBvY2N1cnMuIFNldCB0byB0cnVlIGlmIHlvdSB3YW50IHRvIGhhbmRsZVxuICAgKiAgIGZhaWx1cmVzIG1hbnVhbGx5LlxuICAgKiBAb3B0aW9uIG9wdGlvbnMgc2VydmljZSBbQVdTLlMzXSBhbiBvcHRpb25hbCBTMyBzZXJ2aWNlIG9iamVjdCB0byB1c2UgZm9yXG4gICAqICAgcmVxdWVzdHMuIFRoaXMgb2JqZWN0IG1pZ2h0IGhhdmUgYm91bmQgcGFyYW1ldGVycyB1c2VkIGJ5IHRoZSB1cGxvYWRlci5cbiAgICogQG9wdGlvbiBvcHRpb25zIHRhZ3MgW0FycmF5PG1hcD5dIFRoZSB0YWdzIHRvIGFwcGx5IHRvIHRoZSB1cGxvYWRlZCBvYmplY3QuXG4gICAqICAgRWFjaCB0YWcgc2hvdWxkIGhhdmUgYSBgS2V5YCBhbmQgYFZhbHVlYCBrZXlzLlxuICAgKiBAZXhhbXBsZSBDcmVhdGluZyBhIGRlZmF1bHQgdXBsb2FkZXIgZm9yIGEgc3RyZWFtIG9iamVjdFxuICAgKiAgIHZhciB1cGxvYWQgPSBuZXcgQVdTLlMzLk1hbmFnZWRVcGxvYWQoe1xuICAgKiAgICAgcGFyYW1zOiB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgQm9keTogc3RyZWFtfVxuICAgKiAgIH0pO1xuICAgKiBAZXhhbXBsZSBDcmVhdGluZyBhbiB1cGxvYWRlciB3aXRoIGNvbmN1cnJlbmN5IG9mIDEgYW5kIHBhcnRTaXplIG9mIDEwbWJcbiAgICogICB2YXIgdXBsb2FkID0gbmV3IEFXUy5TMy5NYW5hZ2VkVXBsb2FkKHtcbiAgICogICAgIHBhcnRTaXplOiAxMCAqIDEwMjQgKiAxMDI0LCBxdWV1ZVNpemU6IDEsXG4gICAqICAgICBwYXJhbXM6IHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknLCBCb2R5OiBzdHJlYW19XG4gICAqICAgfSk7XG4gICAqIEBleGFtcGxlIENyZWF0aW5nIGFuIHVwbG9hZGVyIHdpdGggdGFnc1xuICAgKiAgIHZhciB1cGxvYWQgPSBuZXcgQVdTLlMzLk1hbmFnZWRVcGxvYWQoe1xuICAgKiAgICAgcGFyYW1zOiB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgQm9keTogc3RyZWFtfSxcbiAgICogICAgIHRhZ3M6IFt7S2V5OiAndGFnMScsIFZhbHVlOiAndmFsdWUxJ30sIHtLZXk6ICd0YWcyJywgVmFsdWU6ICd2YWx1ZTInfV1cbiAgICogICB9KTtcbiAgICogQHNlZSBzZW5kXG4gICAqL1xuICBjb25zdHJ1Y3RvcjogZnVuY3Rpb24gTWFuYWdlZFVwbG9hZChvcHRpb25zKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIEFXUy5TZXF1ZW50aWFsRXhlY3V0b3IuY2FsbChzZWxmKTtcbiAgICBzZWxmLmJvZHkgPSBudWxsO1xuICAgIHNlbGYuc2xpY2VGbiA9IG51bGw7XG4gICAgc2VsZi5jYWxsYmFjayA9IG51bGw7XG4gICAgc2VsZi5wYXJ0cyA9IHt9O1xuICAgIHNlbGYuY29tcGxldGVJbmZvID0gW107XG4gICAgc2VsZi5maWxsUXVldWUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHNlbGYuY2FsbGJhY2sobmV3IEVycm9yKCdVbnN1cHBvcnRlZCBib2R5IHBheWxvYWQgJyArIHR5cGVvZiBzZWxmLmJvZHkpKTtcbiAgICB9O1xuXG4gICAgc2VsZi5jb25maWd1cmUob3B0aW9ucyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY29uZmlndXJlOiBmdW5jdGlvbiBjb25maWd1cmUob3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHRoaXMucGFydFNpemUgPSB0aGlzLm1pblBhcnRTaXplO1xuXG4gICAgaWYgKG9wdGlvbnMucXVldWVTaXplKSB0aGlzLnF1ZXVlU2l6ZSA9IG9wdGlvbnMucXVldWVTaXplO1xuICAgIGlmIChvcHRpb25zLnBhcnRTaXplKSB0aGlzLnBhcnRTaXplID0gb3B0aW9ucy5wYXJ0U2l6ZTtcbiAgICBpZiAob3B0aW9ucy5sZWF2ZVBhcnRzT25FcnJvcikgdGhpcy5sZWF2ZVBhcnRzT25FcnJvciA9IHRydWU7XG4gICAgaWYgKG9wdGlvbnMudGFncykge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMudGFncykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUYWdzIG11c3QgYmUgc3BlY2lmaWVkIGFzIGFuIGFycmF5OyAnICtcbiAgICAgICAgICB0eXBlb2Ygb3B0aW9ucy50YWdzICsgJyBwcm92aWRlZC4nKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudGFncyA9IG9wdGlvbnMudGFncztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYXJ0U2l6ZSA8IHRoaXMubWluUGFydFNpemUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncGFydFNpemUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5QYXJ0U2l6ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXJ2aWNlID0gb3B0aW9ucy5zZXJ2aWNlO1xuICAgIHRoaXMuYmluZFNlcnZpY2VPYmplY3Qob3B0aW9ucy5wYXJhbXMpO1xuICAgIHRoaXMudmFsaWRhdGVCb2R5KCk7XG4gICAgdGhpcy5hZGp1c3RUb3RhbEJ5dGVzKCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbGVhdmVQYXJ0c09uRXJyb3I6IGZhbHNlLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHF1ZXVlU2l6ZTogNCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwYXJ0U2l6ZTogbnVsbCxcblxuICAvKipcbiAgICogQHJlYWRvbmx5XG4gICAqIEByZXR1cm4gW051bWJlcl0gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIGZvciBhbiBpbmRpdmlkdWFsIHBhcnRcbiAgICogICB1cGxvYWQuXG4gICAqL1xuICBtaW5QYXJ0U2l6ZTogMTAyNCAqIDEwMjQgKiA1LFxuXG4gIC8qKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQHJldHVybiBbTnVtYmVyXSB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBwYXJ0cyBpbiBhIG11bHRpcGFydCB1cGxvYWQuXG4gICAqL1xuICBtYXhUb3RhbFBhcnRzOiAxMDAwMCxcblxuICAvKipcbiAgICogSW5pdGlhdGVzIHRoZSBtYW5hZ2VkIHVwbG9hZCBmb3IgdGhlIHBheWxvYWQuXG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbihlcnIsIGRhdGEpXG4gICAqICAgQHBhcmFtIGVyciBbRXJyb3JdIGFuIGVycm9yIG9yIG51bGwgaWYgbm8gZXJyb3Igb2NjdXJyZWQuXG4gICAqICAgQHBhcmFtIGRhdGEgW21hcF0gVGhlIHJlc3BvbnNlIGRhdGEgZnJvbSB0aGUgc3VjY2Vzc2Z1bCB1cGxvYWQ6XG4gICAqICAgICAqIGBMb2NhdGlvbmAgKFN0cmluZykgdGhlIFVSTCBvZiB0aGUgdXBsb2FkZWQgb2JqZWN0XG4gICAqICAgICAqIGBFVGFnYCAoU3RyaW5nKSB0aGUgRVRhZyBvZiB0aGUgdXBsb2FkZWQgb2JqZWN0XG4gICAqICAgICAqIGBCdWNrZXRgIChTdHJpbmcpIHRoZSBidWNrZXQgdG8gd2hpY2ggdGhlIG9iamVjdCB3YXMgdXBsb2FkZWRcbiAgICogICAgICogYEtleWAgKFN0cmluZykgdGhlIGtleSB0byB3aGljaCB0aGUgb2JqZWN0IHdhcyB1cGxvYWRlZFxuICAgKiBAZXhhbXBsZSBTZW5kaW5nIGEgbWFuYWdlZCB1cGxvYWQgb2JqZWN0XG4gICAqICAgdmFyIHBhcmFtcyA9IHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknLCBCb2R5OiBzdHJlYW19O1xuICAgKiAgIHZhciB1cGxvYWQgPSBuZXcgQVdTLlMzLk1hbmFnZWRVcGxvYWQoe3BhcmFtczogcGFyYW1zfSk7XG4gICAqICAgdXBsb2FkLnNlbmQoZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAqICAgICBjb25zb2xlLmxvZyhlcnIsIGRhdGEpO1xuICAgKiAgIH0pO1xuICAgKi9cbiAgc2VuZDogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5mYWlsZWQgPSBmYWxzZTtcbiAgICBzZWxmLmNhbGxiYWNrID0gY2FsbGJhY2sgfHwgZnVuY3Rpb24oZXJyKSB7IGlmIChlcnIpIHRocm93IGVycjsgfTtcblxuICAgIHZhciBydW5GaWxsID0gdHJ1ZTtcbiAgICBpZiAoc2VsZi5zbGljZUZuKSB7XG4gICAgICBzZWxmLmZpbGxRdWV1ZSA9IHNlbGYuZmlsbEJ1ZmZlcjtcbiAgICB9IGVsc2UgaWYgKEFXUy51dGlsLmlzTm9kZSgpKSB7XG4gICAgICB2YXIgU3RyZWFtID0gQVdTLnV0aWwuc3RyZWFtLlN0cmVhbTtcbiAgICAgIGlmIChzZWxmLmJvZHkgaW5zdGFuY2VvZiBTdHJlYW0pIHtcbiAgICAgICAgcnVuRmlsbCA9IGZhbHNlO1xuICAgICAgICBzZWxmLmZpbGxRdWV1ZSA9IHNlbGYuZmlsbFN0cmVhbTtcbiAgICAgICAgc2VsZi5wYXJ0QnVmZmVycyA9IFtdO1xuICAgICAgICBzZWxmLmJvZHkuXG4gICAgICAgICAgb24oJ2Vycm9yJywgZnVuY3Rpb24oZXJyKSB7IHNlbGYuY2xlYW51cChlcnIpOyB9KS5cbiAgICAgICAgICBvbigncmVhZGFibGUnLCBmdW5jdGlvbigpIHsgc2VsZi5maWxsUXVldWUoKTsgfSkuXG4gICAgICAgICAgb24oJ2VuZCcsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgc2VsZi5pc0RvbmVDaHVua2luZyA9IHRydWU7XG4gICAgICAgICAgICBzZWxmLm51bVBhcnRzID0gc2VsZi50b3RhbFBhcnROdW1iZXJzO1xuICAgICAgICAgICAgc2VsZi5maWxsUXVldWUuY2FsbChzZWxmKTtcblxuICAgICAgICAgICAgaWYgKHNlbGYuaXNEb25lQ2h1bmtpbmcgJiYgc2VsZi50b3RhbFBhcnROdW1iZXJzID49IDEgJiYgc2VsZi5kb25lUGFydHMgPT09IHNlbGYubnVtUGFydHMpIHtcbiAgICAgICAgICAgICAgc2VsZi5maW5pc2hNdWx0aVBhcnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocnVuRmlsbCkgc2VsZi5maWxsUXVldWUuY2FsbChzZWxmKTtcbiAgfSxcblxuICAvKipcbiAgICogQCFtZXRob2QgIHByb21pc2UoKVxuICAgKiAgIFJldHVybnMgYSAndGhlbmFibGUnIHByb21pc2UuXG4gICAqXG4gICAqICAgVHdvIGNhbGxiYWNrcyBjYW4gYmUgcHJvdmlkZWQgdG8gdGhlIGB0aGVuYCBtZXRob2Qgb24gdGhlIHJldHVybmVkIHByb21pc2UuXG4gICAqICAgVGhlIGZpcnN0IGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIGZ1bGZpbGxlZCwgYW5kIHRoZSBzZWNvbmRcbiAgICogICBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICogICBAY2FsbGJhY2sgZnVsZmlsbGVkQ2FsbGJhY2sgZnVuY3Rpb24oZGF0YSlcbiAgICogICAgIENhbGxlZCBpZiB0aGUgcHJvbWlzZSBpcyBmdWxmaWxsZWQuXG4gICAqICAgICBAcGFyYW0gZGF0YSBbbWFwXSBUaGUgcmVzcG9uc2UgZGF0YSBmcm9tIHRoZSBzdWNjZXNzZnVsIHVwbG9hZDpcbiAgICogICAgICAgYExvY2F0aW9uYCAoU3RyaW5nKSB0aGUgVVJMIG9mIHRoZSB1cGxvYWRlZCBvYmplY3RcbiAgICogICAgICAgYEVUYWdgIChTdHJpbmcpIHRoZSBFVGFnIG9mIHRoZSB1cGxvYWRlZCBvYmplY3RcbiAgICogICAgICAgYEJ1Y2tldGAgKFN0cmluZykgdGhlIGJ1Y2tldCB0byB3aGljaCB0aGUgb2JqZWN0IHdhcyB1cGxvYWRlZFxuICAgKiAgICAgICBgS2V5YCAoU3RyaW5nKSB0aGUga2V5IHRvIHdoaWNoIHRoZSBvYmplY3Qgd2FzIHVwbG9hZGVkXG4gICAqICAgQGNhbGxiYWNrIHJlamVjdGVkQ2FsbGJhY2sgZnVuY3Rpb24oZXJyKVxuICAgKiAgICAgQ2FsbGVkIGlmIHRoZSBwcm9taXNlIGlzIHJlamVjdGVkLlxuICAgKiAgICAgQHBhcmFtIGVyciBbRXJyb3JdIGFuIGVycm9yIG9yIG51bGwgaWYgbm8gZXJyb3Igb2NjdXJyZWQuXG4gICAqICAgQHJldHVybiBbUHJvbWlzZV0gQSBwcm9taXNlIHRoYXQgcmVwcmVzZW50cyB0aGUgc3RhdGUgb2YgdGhlIHVwbG9hZCByZXF1ZXN0LlxuICAgKiAgIEBleGFtcGxlIFNlbmRpbmcgYW4gdXBsb2FkIHJlcXVlc3QgdXNpbmcgcHJvbWlzZXMuXG4gICAqICAgICB2YXIgdXBsb2FkID0gczMudXBsb2FkKHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknLCBCb2R5OiBzdHJlYW19KTtcbiAgICogICAgIHZhciBwcm9taXNlID0gdXBsb2FkLnByb21pc2UoKTtcbiAgICogICAgIHByb21pc2UudGhlbihmdW5jdGlvbihkYXRhKSB7IC4uLiB9LCBmdW5jdGlvbihlcnIpIHsgLi4uIH0pO1xuICAgKi9cblxuICAvKipcbiAgICogQWJvcnRzIGEgbWFuYWdlZCB1cGxvYWQsIGluY2x1ZGluZyBhbGwgY29uY3VycmVudCB1cGxvYWQgcmVxdWVzdHMuXG4gICAqIEBub3RlIEJ5IGRlZmF1bHQsIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aWxsIGNsZWFudXAgYSBtdWx0aXBhcnQgdXBsb2FkXG4gICAqICAgaWYgb25lIHdhcyBjcmVhdGVkLiBUbyBsZWF2ZSB0aGUgbXVsdGlwYXJ0IHVwbG9hZCBhcm91bmQgYWZ0ZXIgYWJvcnRpbmdcbiAgICogICBhIHJlcXVlc3QsIGNvbmZpZ3VyZSBgbGVhdmVQYXJ0c09uRXJyb3JgIHRvIGB0cnVlYCBpbiB0aGUge2NvbnN0cnVjdG9yfS5cbiAgICogQG5vdGUgQ2FsbGluZyB7YWJvcnR9IGluIHRoZSBicm93c2VyIGVudmlyb25tZW50IHdpbGwgbm90IGFib3J0IGFueSByZXF1ZXN0c1xuICAgKiAgIHRoYXQgYXJlIGFscmVhZHkgaW4gZmxpZ2h0LiBJZiBhIG11bHRpcGFydCB1cGxvYWQgd2FzIGNyZWF0ZWQsIGFueSBwYXJ0c1xuICAgKiAgIG5vdCB5ZXQgdXBsb2FkZWQgd2lsbCBub3QgYmUgc2VudCwgYW5kIHRoZSBtdWx0aXBhcnQgdXBsb2FkIHdpbGwgYmUgY2xlYW5lZCB1cC5cbiAgICogQGV4YW1wbGUgQWJvcnRpbmcgYW4gdXBsb2FkXG4gICAqICAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgIEJ1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleScsXG4gICAqICAgICBCb2R5OiBuZXcgQnVmZmVyKDEwMjQgKiAxMDI0ICogMjUpIC8vIDI1TUIgcGF5bG9hZFxuICAgKiAgIH07XG4gICAqICAgdmFyIHVwbG9hZCA9IHMzLnVwbG9hZChwYXJhbXMpO1xuICAgKiAgIHVwbG9hZC5zZW5kKGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICogICAgIGlmIChlcnIpIGNvbnNvbGUubG9nKFwiRXJyb3I6XCIsIGVyci5jb2RlLCBlcnIubWVzc2FnZSk7XG4gICAqICAgICBlbHNlIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgKiAgIH0pO1xuICAgKlxuICAgKiAgIC8vIGFib3J0IHJlcXVlc3QgaW4gMSBzZWNvbmRcbiAgICogICBzZXRUaW1lb3V0KHVwbG9hZC5hYm9ydC5iaW5kKHVwbG9hZCksIDEwMDApO1xuICAgKi9cbiAgYWJvcnQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuY2xlYW51cChBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoJ1JlcXVlc3QgYWJvcnRlZCBieSB1c2VyJyksIHtcbiAgICAgIGNvZGU6ICdSZXF1ZXN0QWJvcnRlZEVycm9yJywgcmV0cnlhYmxlOiBmYWxzZVxuICAgIH0pKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB2YWxpZGF0ZUJvZHk6IGZ1bmN0aW9uIHZhbGlkYXRlQm9keSgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc2VsZi5ib2R5ID0gc2VsZi5zZXJ2aWNlLmNvbmZpZy5wYXJhbXMuQm9keTtcbiAgICBpZiAodHlwZW9mIHNlbGYuYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHNlbGYuYm9keSA9IG5ldyBBV1MudXRpbC5CdWZmZXIoc2VsZi5ib2R5KTtcbiAgICB9IGVsc2UgaWYgKCFzZWxmLmJvZHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncGFyYW1zLkJvZHkgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgc2VsZi5zbGljZUZuID0gQVdTLnV0aWwuYXJyYXlTbGljZUZuKHNlbGYuYm9keSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYmluZFNlcnZpY2VPYmplY3Q6IGZ1bmN0aW9uIGJpbmRTZXJ2aWNlT2JqZWN0KHBhcmFtcykge1xuICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgLy8gYmluZCBwYXJhbWV0ZXJzIHRvIG5ldyBzZXJ2aWNlIG9iamVjdFxuICAgIGlmICghc2VsZi5zZXJ2aWNlKSB7XG4gICAgICBzZWxmLnNlcnZpY2UgPSBuZXcgQVdTLlMzKHtwYXJhbXM6IHBhcmFtc30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgc2VydmljZSA9IHNlbGYuc2VydmljZTtcbiAgICAgIHZhciBjb25maWcgPSBBV1MudXRpbC5jb3B5KHNlcnZpY2UuY29uZmlnKTtcbiAgICAgIGNvbmZpZy5zaWduYXR1cmVWZXJzaW9uID0gc2VydmljZS5nZXRTaWduYXR1cmVWZXJzaW9uKCk7XG4gICAgICBzZWxmLnNlcnZpY2UgPSBuZXcgc2VydmljZS5jb25zdHJ1Y3Rvci5fX3N1cGVyX18oY29uZmlnKTtcbiAgICAgIHNlbGYuc2VydmljZS5jb25maWcucGFyYW1zID1cbiAgICAgICAgQVdTLnV0aWwubWVyZ2Uoc2VsZi5zZXJ2aWNlLmNvbmZpZy5wYXJhbXMgfHwge30sIHBhcmFtcyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFkanVzdFRvdGFsQnl0ZXM6IGZ1bmN0aW9uIGFkanVzdFRvdGFsQnl0ZXMoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHRyeSB7IC8vIHRyeSB0byBnZXQgdG90YWxCeXRlc1xuICAgICAgc2VsZi50b3RhbEJ5dGVzID0gYnl0ZUxlbmd0aChzZWxmLmJvZHkpO1xuICAgIH0gY2F0Y2ggKGUpIHsgfVxuXG4gICAgLy8gdHJ5IHRvIGFkanVzdCBwYXJ0U2l6ZSBpZiB3ZSBrbm93IHBheWxvYWQgbGVuZ3RoXG4gICAgaWYgKHNlbGYudG90YWxCeXRlcykge1xuICAgICAgdmFyIG5ld1BhcnRTaXplID0gTWF0aC5jZWlsKHNlbGYudG90YWxCeXRlcyAvIHNlbGYubWF4VG90YWxQYXJ0cyk7XG4gICAgICBpZiAobmV3UGFydFNpemUgPiBzZWxmLnBhcnRTaXplKSBzZWxmLnBhcnRTaXplID0gbmV3UGFydFNpemU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGYudG90YWxCeXRlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaXNEb25lQ2h1bmtpbmc6IGZhbHNlLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHBhcnRQb3M6IDAsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdG90YWxDaHVua2VkQnl0ZXM6IDAsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdG90YWxVcGxvYWRlZEJ5dGVzOiAwLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHRvdGFsQnl0ZXM6IHVuZGVmaW5lZCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBudW1QYXJ0czogMCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB0b3RhbFBhcnROdW1iZXJzOiAwLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFjdGl2ZVBhcnRzOiAwLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGRvbmVQYXJ0czogMCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwYXJ0czogbnVsbCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb21wbGV0ZUluZm86IG51bGwsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZmFpbGVkOiBmYWxzZSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBtdWx0aXBhcnRSZXE6IG51bGwsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcGFydEJ1ZmZlcnM6IG51bGwsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcGFydEJ1ZmZlckxlbmd0aDogMCxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBmaWxsQnVmZmVyOiBmdW5jdGlvbiBmaWxsQnVmZmVyKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgYm9keUxlbiA9IGJ5dGVMZW5ndGgoc2VsZi5ib2R5KTtcblxuICAgIGlmIChib2R5TGVuID09PSAwKSB7XG4gICAgICBzZWxmLmlzRG9uZUNodW5raW5nID0gdHJ1ZTtcbiAgICAgIHNlbGYubnVtUGFydHMgPSAxO1xuICAgICAgc2VsZi5uZXh0Q2h1bmsoc2VsZi5ib2R5KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAoc2VsZi5hY3RpdmVQYXJ0cyA8IHNlbGYucXVldWVTaXplICYmIHNlbGYucGFydFBvcyA8IGJvZHlMZW4pIHtcbiAgICAgIHZhciBlbmRQb3MgPSBNYXRoLm1pbihzZWxmLnBhcnRQb3MgKyBzZWxmLnBhcnRTaXplLCBib2R5TGVuKTtcbiAgICAgIHZhciBidWYgPSBzZWxmLnNsaWNlRm4uY2FsbChzZWxmLmJvZHksIHNlbGYucGFydFBvcywgZW5kUG9zKTtcbiAgICAgIHNlbGYucGFydFBvcyArPSBzZWxmLnBhcnRTaXplO1xuXG4gICAgICBpZiAoYnl0ZUxlbmd0aChidWYpIDwgc2VsZi5wYXJ0U2l6ZSB8fCBzZWxmLnBhcnRQb3MgPT09IGJvZHlMZW4pIHtcbiAgICAgICAgc2VsZi5pc0RvbmVDaHVua2luZyA9IHRydWU7XG4gICAgICAgIHNlbGYubnVtUGFydHMgPSBzZWxmLnRvdGFsUGFydE51bWJlcnMgKyAxO1xuICAgICAgfVxuICAgICAgc2VsZi5uZXh0Q2h1bmsoYnVmKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZmlsbFN0cmVhbTogZnVuY3Rpb24gZmlsbFN0cmVhbSgpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHNlbGYuYWN0aXZlUGFydHMgPj0gc2VsZi5xdWV1ZVNpemUpIHJldHVybjtcblxuICAgIHZhciBidWYgPSBzZWxmLmJvZHkucmVhZChzZWxmLnBhcnRTaXplIC0gc2VsZi5wYXJ0QnVmZmVyTGVuZ3RoKSB8fFxuICAgICAgICAgICAgICBzZWxmLmJvZHkucmVhZCgpO1xuICAgIGlmIChidWYpIHtcbiAgICAgIHNlbGYucGFydEJ1ZmZlcnMucHVzaChidWYpO1xuICAgICAgc2VsZi5wYXJ0QnVmZmVyTGVuZ3RoICs9IGJ1Zi5sZW5ndGg7XG4gICAgICBzZWxmLnRvdGFsQ2h1bmtlZEJ5dGVzICs9IGJ1Zi5sZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKHNlbGYucGFydEJ1ZmZlckxlbmd0aCA+PSBzZWxmLnBhcnRTaXplKSB7XG4gICAgICAvLyBpZiB3ZSBoYXZlIHNpbmdsZSBidWZmZXIgd2UgYXZvaWQgY29weWZ1bGwgY29uY2F0XG4gICAgICB2YXIgcGJ1ZiA9IHNlbGYucGFydEJ1ZmZlcnMubGVuZ3RoID09PSAxID9cbiAgICAgICAgc2VsZi5wYXJ0QnVmZmVyc1swXSA6IEJ1ZmZlci5jb25jYXQoc2VsZi5wYXJ0QnVmZmVycyk7XG4gICAgICBzZWxmLnBhcnRCdWZmZXJzID0gW107XG4gICAgICBzZWxmLnBhcnRCdWZmZXJMZW5ndGggPSAwO1xuXG4gICAgICAvLyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBwYXJ0U2l6ZSwgcHVzaCB0aGUgcmVzdCBiYWNrIG9uIHRoZSBxdWV1ZVxuICAgICAgaWYgKHBidWYubGVuZ3RoID4gc2VsZi5wYXJ0U2l6ZSkge1xuICAgICAgICB2YXIgcmVzdCA9IHBidWYuc2xpY2Uoc2VsZi5wYXJ0U2l6ZSk7XG4gICAgICAgIHNlbGYucGFydEJ1ZmZlcnMucHVzaChyZXN0KTtcbiAgICAgICAgc2VsZi5wYXJ0QnVmZmVyTGVuZ3RoICs9IHJlc3QubGVuZ3RoO1xuICAgICAgICBwYnVmID0gcGJ1Zi5zbGljZSgwLCBzZWxmLnBhcnRTaXplKTtcbiAgICAgIH1cblxuICAgICAgc2VsZi5uZXh0Q2h1bmsocGJ1Zik7XG4gICAgfVxuXG4gICAgaWYgKHNlbGYuaXNEb25lQ2h1bmtpbmcgJiYgIXNlbGYuaXNEb25lU2VuZGluZykge1xuICAgICAgLy8gaWYgd2UgaGF2ZSBzaW5nbGUgYnVmZmVyIHdlIGF2b2lkIGNvcHlmdWxsIGNvbmNhdFxuICAgICAgcGJ1ZiA9IHNlbGYucGFydEJ1ZmZlcnMubGVuZ3RoID09PSAxID9cbiAgICAgICAgICBzZWxmLnBhcnRCdWZmZXJzWzBdIDogQnVmZmVyLmNvbmNhdChzZWxmLnBhcnRCdWZmZXJzKTtcbiAgICAgIHNlbGYucGFydEJ1ZmZlcnMgPSBbXTtcbiAgICAgIHNlbGYucGFydEJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgICBzZWxmLnRvdGFsQnl0ZXMgPSBzZWxmLnRvdGFsQ2h1bmtlZEJ5dGVzO1xuICAgICAgc2VsZi5pc0RvbmVTZW5kaW5nID0gdHJ1ZTtcblxuICAgICAgaWYgKHNlbGYubnVtUGFydHMgPT09IDAgfHwgcGJ1Zi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHNlbGYubnVtUGFydHMrKztcbiAgICAgICAgc2VsZi5uZXh0Q2h1bmsocGJ1Zik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2VsZi5ib2R5LnJlYWQoMCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbmV4dENodW5rOiBmdW5jdGlvbiBuZXh0Q2h1bmsoY2h1bmspIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgaWYgKHNlbGYuZmFpbGVkKSByZXR1cm4gbnVsbDtcblxuICAgIHZhciBwYXJ0TnVtYmVyID0gKytzZWxmLnRvdGFsUGFydE51bWJlcnM7XG4gICAgaWYgKHNlbGYuaXNEb25lQ2h1bmtpbmcgJiYgcGFydE51bWJlciA9PT0gMSkge1xuICAgICAgdmFyIHBhcmFtcyA9IHtCb2R5OiBjaHVua307XG4gICAgICBpZiAodGhpcy50YWdzKSB7XG4gICAgICAgIHBhcmFtcy5UYWdnaW5nID0gdGhpcy5nZXRUYWdnaW5nSGVhZGVyKCk7XG4gICAgICB9XG4gICAgICB2YXIgcmVxID0gc2VsZi5zZXJ2aWNlLnB1dE9iamVjdChwYXJhbXMpO1xuICAgICAgcmVxLl9tYW5hZ2VkVXBsb2FkID0gc2VsZjtcbiAgICAgIHJlcS5vbignaHR0cFVwbG9hZFByb2dyZXNzJywgc2VsZi5wcm9ncmVzcykuc2VuZChzZWxmLmZpbmlzaFNpbmdsZVBhcnQpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIGlmIChzZWxmLnNlcnZpY2UuY29uZmlnLnBhcmFtcy5Db250ZW50TUQ1KSB7XG4gICAgICB2YXIgZXJyID0gQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCdUaGUgQ29udGVudC1NRDUgeW91IHNwZWNpZmllZCBpcyBpbnZhbGlkIGZvciBtdWx0aS1wYXJ0IHVwbG9hZHMuJyksIHtcbiAgICAgICAgY29kZTogJ0ludmFsaWREaWdlc3QnLCByZXRyeWFibGU6IGZhbHNlXG4gICAgICB9KTtcblxuICAgICAgc2VsZi5jbGVhbnVwKGVycik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoc2VsZi5jb21wbGV0ZUluZm9bcGFydE51bWJlcl0gJiYgc2VsZi5jb21wbGV0ZUluZm9bcGFydE51bWJlcl0uRVRhZyAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7IC8vIEFscmVhZHkgdXBsb2FkZWQgdGhpcyBwYXJ0LlxuICAgIH1cblxuICAgIHNlbGYuYWN0aXZlUGFydHMrKztcbiAgICBpZiAoIXNlbGYuc2VydmljZS5jb25maWcucGFyYW1zLlVwbG9hZElkKSB7XG5cbiAgICAgIGlmICghc2VsZi5tdWx0aXBhcnRSZXEpIHsgLy8gY3JlYXRlIG11bHRpcGFydFxuICAgICAgICBzZWxmLm11bHRpcGFydFJlcSA9IHNlbGYuc2VydmljZS5jcmVhdGVNdWx0aXBhcnRVcGxvYWQoKTtcbiAgICAgICAgc2VsZi5tdWx0aXBhcnRSZXEub24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbihyZXNwKSB7XG4gICAgICAgICAgc2VsZi5zZXJ2aWNlLmNvbmZpZy5wYXJhbXMuVXBsb2FkSWQgPSByZXNwLmRhdGEuVXBsb2FkSWQ7XG4gICAgICAgICAgc2VsZi5tdWx0aXBhcnRSZXEgPSBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgc2VsZi5xdWV1ZUNodW5rcyhjaHVuaywgcGFydE51bWJlcik7XG4gICAgICAgIHNlbGYubXVsdGlwYXJ0UmVxLm9uKCdlcnJvcicsIGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgIHNlbGYuY2xlYW51cChlcnIpO1xuICAgICAgICB9KTtcbiAgICAgICAgc2VsZi5tdWx0aXBhcnRSZXEuc2VuZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZi5xdWV1ZUNodW5rcyhjaHVuaywgcGFydE51bWJlcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHsgLy8gbXVsdGlwYXJ0IGlzIGNyZWF0ZWQsIGp1c3Qgc2VuZFxuICAgICAgc2VsZi51cGxvYWRQYXJ0KGNodW5rLCBwYXJ0TnVtYmVyKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0VGFnZ2luZ0hlYWRlcjogZnVuY3Rpb24gZ2V0VGFnZ2luZ0hlYWRlcigpIHtcbiAgICB2YXIga3ZQYWlyU3RyaW5ncyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YWdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBrdlBhaXJTdHJpbmdzLnB1c2goQVdTLnV0aWwudXJpRXNjYXBlKHRoaXMudGFnc1tpXS5LZXkpICsgJz0nICtcbiAgICAgICAgQVdTLnV0aWwudXJpRXNjYXBlKHRoaXMudGFnc1tpXS5WYWx1ZSkpO1xuICAgIH1cblxuICAgIHJldHVybiBrdlBhaXJTdHJpbmdzLmpvaW4oJyYnKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB1cGxvYWRQYXJ0OiBmdW5jdGlvbiB1cGxvYWRQYXJ0KGNodW5rLCBwYXJ0TnVtYmVyKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgdmFyIHBhcnRQYXJhbXMgPSB7XG4gICAgICBCb2R5OiBjaHVuayxcbiAgICAgIENvbnRlbnRMZW5ndGg6IEFXUy51dGlsLnN0cmluZy5ieXRlTGVuZ3RoKGNodW5rKSxcbiAgICAgIFBhcnROdW1iZXI6IHBhcnROdW1iZXJcbiAgICB9O1xuXG4gICAgdmFyIHBhcnRJbmZvID0ge0VUYWc6IG51bGwsIFBhcnROdW1iZXI6IHBhcnROdW1iZXJ9O1xuICAgIHNlbGYuY29tcGxldGVJbmZvW3BhcnROdW1iZXJdID0gcGFydEluZm87XG5cbiAgICB2YXIgcmVxID0gc2VsZi5zZXJ2aWNlLnVwbG9hZFBhcnQocGFydFBhcmFtcyk7XG4gICAgc2VsZi5wYXJ0c1twYXJ0TnVtYmVyXSA9IHJlcTtcbiAgICByZXEuX2xhc3RVcGxvYWRlZEJ5dGVzID0gMDtcbiAgICByZXEuX21hbmFnZWRVcGxvYWQgPSBzZWxmO1xuICAgIHJlcS5vbignaHR0cFVwbG9hZFByb2dyZXNzJywgc2VsZi5wcm9ncmVzcyk7XG4gICAgcmVxLnNlbmQoZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAgICBkZWxldGUgc2VsZi5wYXJ0c1twYXJ0UGFyYW1zLlBhcnROdW1iZXJdO1xuICAgICAgc2VsZi5hY3RpdmVQYXJ0cy0tO1xuXG4gICAgICBpZiAoIWVyciAmJiAoIWRhdGEgfHwgIWRhdGEuRVRhZykpIHtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSAnTm8gYWNjZXNzIHRvIEVUYWcgcHJvcGVydHkgb24gcmVzcG9uc2UuJztcbiAgICAgICAgaWYgKEFXUy51dGlsLmlzQnJvd3NlcigpKSB7XG4gICAgICAgICAgbWVzc2FnZSArPSAnIENoZWNrIENPUlMgY29uZmlndXJhdGlvbiB0byBleHBvc2UgRVRhZyBoZWFkZXIuJztcbiAgICAgICAgfVxuXG4gICAgICAgIGVyciA9IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcihtZXNzYWdlKSwge1xuICAgICAgICAgIGNvZGU6ICdFVGFnTWlzc2luZycsIHJldHJ5YWJsZTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoZXJyKSByZXR1cm4gc2VsZi5jbGVhbnVwKGVycik7XG5cbiAgICAgIHBhcnRJbmZvLkVUYWcgPSBkYXRhLkVUYWc7XG4gICAgICBzZWxmLmRvbmVQYXJ0cysrO1xuICAgICAgaWYgKHNlbGYuaXNEb25lQ2h1bmtpbmcgJiYgc2VsZi5kb25lUGFydHMgPT09IHNlbGYubnVtUGFydHMpIHtcbiAgICAgICAgc2VsZi5maW5pc2hNdWx0aVBhcnQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGYuZmlsbFF1ZXVlLmNhbGwoc2VsZik7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcXVldWVDaHVua3M6IGZ1bmN0aW9uIHF1ZXVlQ2h1bmtzKGNodW5rLCBwYXJ0TnVtYmVyKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHNlbGYubXVsdGlwYXJ0UmVxLm9uKCdzdWNjZXNzJywgZnVuY3Rpb24oKSB7XG4gICAgICBzZWxmLnVwbG9hZFBhcnQoY2h1bmssIHBhcnROdW1iZXIpO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNsZWFudXA6IGZ1bmN0aW9uIGNsZWFudXAoZXJyKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmIChzZWxmLmZhaWxlZCkgcmV0dXJuO1xuXG4gICAgLy8gY2xlYW4gdXAgc3RyZWFtXG4gICAgaWYgKHR5cGVvZiBzZWxmLmJvZHkucmVtb3ZlQWxsTGlzdGVuZXJzID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiBzZWxmLmJvZHkucmVzdW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBzZWxmLmJvZHkucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZWFkYWJsZScpO1xuICAgICAgc2VsZi5ib2R5LnJlbW92ZUFsbExpc3RlbmVycygnZW5kJyk7XG4gICAgICBzZWxmLmJvZHkucmVzdW1lKCk7XG4gICAgfVxuXG4gICAgLy8gY2xlYW51cCBtdWx0aXBhcnRSZXEgbGlzdGVuZXJzXG4gICAgaWYgKHNlbGYubXVsdGlwYXJ0UmVxKSB7XG4gICAgICBzZWxmLm11bHRpcGFydFJlcS5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3N1Y2Nlc3MnKTtcbiAgICAgIHNlbGYubXVsdGlwYXJ0UmVxLnJlbW92ZUFsbExpc3RlbmVycygnZXJyb3InKTtcbiAgICAgIHNlbGYubXVsdGlwYXJ0UmVxLnJlbW92ZUFsbExpc3RlbmVycygnY29tcGxldGUnKTtcbiAgICAgIGRlbGV0ZSBzZWxmLm11bHRpcGFydFJlcTtcbiAgICB9XG5cbiAgICBpZiAoc2VsZi5zZXJ2aWNlLmNvbmZpZy5wYXJhbXMuVXBsb2FkSWQgJiYgIXNlbGYubGVhdmVQYXJ0c09uRXJyb3IpIHtcbiAgICAgIHNlbGYuc2VydmljZS5hYm9ydE11bHRpcGFydFVwbG9hZCgpLnNlbmQoKTtcbiAgICB9IGVsc2UgaWYgKHNlbGYubGVhdmVQYXJ0c09uRXJyb3IpIHtcbiAgICAgIHNlbGYuaXNEb25lQ2h1bmtpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBBV1MudXRpbC5lYWNoKHNlbGYucGFydHMsIGZ1bmN0aW9uKHBhcnROdW1iZXIsIHBhcnQpIHtcbiAgICAgIHBhcnQucmVtb3ZlQWxsTGlzdGVuZXJzKCdjb21wbGV0ZScpO1xuICAgICAgcGFydC5hYm9ydCgpO1xuICAgIH0pO1xuXG4gICAgc2VsZi5hY3RpdmVQYXJ0cyA9IDA7XG4gICAgc2VsZi5wYXJ0UG9zID0gMDtcbiAgICBzZWxmLm51bVBhcnRzID0gMDtcbiAgICBzZWxmLnRvdGFsUGFydE51bWJlcnMgPSAwO1xuICAgIHNlbGYucGFydHMgPSB7fTtcbiAgICBzZWxmLmZhaWxlZCA9IHRydWU7XG4gICAgc2VsZi5jYWxsYmFjayhlcnIpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGZpbmlzaE11bHRpUGFydDogZnVuY3Rpb24gZmluaXNoTXVsdGlQYXJ0KCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB2YXIgY29tcGxldGVQYXJhbXMgPSB7IE11bHRpcGFydFVwbG9hZDogeyBQYXJ0czogc2VsZi5jb21wbGV0ZUluZm8uc2xpY2UoMSkgfSB9O1xuICAgIHNlbGYuc2VydmljZS5jb21wbGV0ZU11bHRpcGFydFVwbG9hZChjb21wbGV0ZVBhcmFtcywgZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBzZWxmLmNsZWFudXAoZXJyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEuTG9jYXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGRhdGEuTG9jYXRpb24gPSBkYXRhLkxvY2F0aW9uLnJlcGxhY2UoLyUyRi9nLCAnLycpO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxmLnRhZ3MpKSB7XG4gICAgICAgIHNlbGYuc2VydmljZS5wdXRPYmplY3RUYWdnaW5nKFxuICAgICAgICAgIHtUYWdnaW5nOiB7VGFnU2V0OiBzZWxmLnRhZ3N9fSxcbiAgICAgICAgICBmdW5jdGlvbihlLCBkKSB7XG4gICAgICAgICAgICBpZiAoZSkge1xuICAgICAgICAgICAgICBzZWxmLmNhbGxiYWNrKGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2VsZi5jYWxsYmFjayhlLCBkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxmLmNhbGxiYWNrKGVyciwgZGF0YSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZmluaXNoU2luZ2xlUGFydDogZnVuY3Rpb24gZmluaXNoU2luZ2xlUGFydChlcnIsIGRhdGEpIHtcbiAgICB2YXIgdXBsb2FkID0gdGhpcy5yZXF1ZXN0Ll9tYW5hZ2VkVXBsb2FkO1xuICAgIHZhciBodHRwUmVxID0gdGhpcy5yZXF1ZXN0Lmh0dHBSZXF1ZXN0O1xuICAgIHZhciBlbmRwb2ludCA9IGh0dHBSZXEuZW5kcG9pbnQ7XG4gICAgaWYgKGVycikgcmV0dXJuIHVwbG9hZC5jYWxsYmFjayhlcnIpO1xuICAgIGRhdGEuTG9jYXRpb24gPVxuICAgICAgW2VuZHBvaW50LnByb3RvY29sLCAnLy8nLCBlbmRwb2ludC5ob3N0LCBodHRwUmVxLnBhdGhdLmpvaW4oJycpO1xuICAgIGRhdGEua2V5ID0gdGhpcy5yZXF1ZXN0LnBhcmFtcy5LZXk7IC8vIHdpbGwgc3RheSB1bmRvY3VtZW50ZWRcbiAgICBkYXRhLktleSA9IHRoaXMucmVxdWVzdC5wYXJhbXMuS2V5O1xuICAgIGRhdGEuQnVja2V0ID0gdGhpcy5yZXF1ZXN0LnBhcmFtcy5CdWNrZXQ7XG4gICAgdXBsb2FkLmNhbGxiYWNrKGVyciwgZGF0YSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcHJvZ3Jlc3M6IGZ1bmN0aW9uIHByb2dyZXNzKGluZm8pIHtcbiAgICB2YXIgdXBsb2FkID0gdGhpcy5fbWFuYWdlZFVwbG9hZDtcbiAgICBpZiAodGhpcy5vcGVyYXRpb24gPT09ICdwdXRPYmplY3QnKSB7XG4gICAgICBpbmZvLnBhcnQgPSAxO1xuICAgICAgaW5mby5rZXkgPSB0aGlzLnBhcmFtcy5LZXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVwbG9hZC50b3RhbFVwbG9hZGVkQnl0ZXMgKz0gaW5mby5sb2FkZWQgLSB0aGlzLl9sYXN0VXBsb2FkZWRCeXRlcztcbiAgICAgIHRoaXMuX2xhc3RVcGxvYWRlZEJ5dGVzID0gaW5mby5sb2FkZWQ7XG4gICAgICBpbmZvID0ge1xuICAgICAgICBsb2FkZWQ6IHVwbG9hZC50b3RhbFVwbG9hZGVkQnl0ZXMsXG4gICAgICAgIHRvdGFsOiB1cGxvYWQudG90YWxCeXRlcyxcbiAgICAgICAgcGFydDogdGhpcy5wYXJhbXMuUGFydE51bWJlcixcbiAgICAgICAga2V5OiB0aGlzLnBhcmFtcy5LZXlcbiAgICAgIH07XG4gICAgfVxuICAgIHVwbG9hZC5lbWl0KCdodHRwVXBsb2FkUHJvZ3Jlc3MnLCBbaW5mb10pO1xuICB9XG59KTtcblxuQVdTLnV0aWwubWl4aW4oQVdTLlMzLk1hbmFnZWRVcGxvYWQsIEFXUy5TZXF1ZW50aWFsRXhlY3V0b3IpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuUzMuTWFuYWdlZFVwbG9hZC5hZGRQcm9taXNlc1RvQ2xhc3MgPSBmdW5jdGlvbiBhZGRQcm9taXNlc1RvQ2xhc3MoUHJvbWlzZURlcGVuZGVuY3kpIHtcbiAgdGhpcy5wcm90b3R5cGUucHJvbWlzZSA9IEFXUy51dGlsLnByb21pc2lmeU1ldGhvZCgnc2VuZCcsIFByb21pc2VEZXBlbmRlbmN5KTtcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5TMy5NYW5hZ2VkVXBsb2FkLmRlbGV0ZVByb21pc2VzRnJvbUNsYXNzID0gZnVuY3Rpb24gZGVsZXRlUHJvbWlzZXNGcm9tQ2xhc3MoKSB7XG4gIGRlbGV0ZSB0aGlzLnByb3RvdHlwZS5wcm9taXNlO1xufTtcblxuQVdTLnV0aWwuYWRkUHJvbWlzZXMoQVdTLlMzLk1hbmFnZWRVcGxvYWQpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TMy5NYW5hZ2VkVXBsb2FkO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4vY29yZScpO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICogQCFtZXRob2Qgb24oZXZlbnROYW1lLCBjYWxsYmFjaylcbiAqICAgUmVnaXN0ZXJzIGFuIGV2ZW50IGxpc3RlbmVyIGNhbGxiYWNrIGZvciB0aGUgZXZlbnQgZ2l2ZW4gYnkgYGV2ZW50TmFtZWAuXG4gKiAgIFBhcmFtZXRlcnMgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBkZXBlbmQgb24gdGhlIGluZGl2aWR1YWwgZXZlbnRcbiAqICAgYmVpbmcgdHJpZ2dlcmVkLiBTZWUgdGhlIGV2ZW50IGRvY3VtZW50YXRpb24gZm9yIHRob3NlIHBhcmFtZXRlcnMuXG4gKlxuICogICBAcGFyYW0gZXZlbnROYW1lIFtTdHJpbmddIHRoZSBldmVudCBuYW1lIHRvIHJlZ2lzdGVyIHRoZSBsaXN0ZW5lciBmb3JcbiAqICAgQHBhcmFtIGNhbGxiYWNrIFtGdW5jdGlvbl0gdGhlIGxpc3RlbmVyIGNhbGxiYWNrIGZ1bmN0aW9uXG4gKiAgIEByZXR1cm4gW0FXUy5TZXF1ZW50aWFsRXhlY3V0b3JdIHRoZSBzYW1lIG9iamVjdCBmb3IgY2hhaW5pbmdcbiAqL1xuQVdTLlNlcXVlbnRpYWxFeGVjdXRvciA9IEFXUy51dGlsLmluaGVyaXQoe1xuXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBTZXF1ZW50aWFsRXhlY3V0b3IoKSB7XG4gICAgdGhpcy5fZXZlbnRzID0ge307XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbGlzdGVuZXJzOiBmdW5jdGlvbiBsaXN0ZW5lcnMoZXZlbnROYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50c1tldmVudE5hbWVdID8gdGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0uc2xpY2UoMCkgOiBbXTtcbiAgfSxcblxuICBvbjogZnVuY3Rpb24gb24oZXZlbnROYW1lLCBsaXN0ZW5lcikge1xuICAgIGlmICh0aGlzLl9ldmVudHNbZXZlbnROYW1lXSkge1xuICAgICAgdGhpcy5fZXZlbnRzW2V2ZW50TmFtZV0ucHVzaChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2V2ZW50c1tldmVudE5hbWVdID0gW2xpc3RlbmVyXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgb25Bc3luYzogZnVuY3Rpb24gb25Bc3luYyhldmVudE5hbWUsIGxpc3RlbmVyKSB7XG4gICAgbGlzdGVuZXIuX2lzQXN5bmMgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLm9uKGV2ZW50TmFtZSwgbGlzdGVuZXIpO1xuICB9LFxuXG4gIHJlbW92ZUxpc3RlbmVyOiBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihldmVudE5hbWUsIGxpc3RlbmVyKSB7XG4gICAgdmFyIGxpc3RlbmVycyA9IHRoaXMuX2V2ZW50c1tldmVudE5hbWVdO1xuICAgIGlmIChsaXN0ZW5lcnMpIHtcbiAgICAgIHZhciBsZW5ndGggPSBsaXN0ZW5lcnMubGVuZ3RoO1xuICAgICAgdmFyIHBvc2l0aW9uID0gLTE7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgIGlmIChsaXN0ZW5lcnNbaV0gPT09IGxpc3RlbmVyKSB7XG4gICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocG9zaXRpb24gPiAtMSkge1xuICAgICAgICBsaXN0ZW5lcnMuc3BsaWNlKHBvc2l0aW9uLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgcmVtb3ZlQWxsTGlzdGVuZXJzOiBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnMoZXZlbnROYW1lKSB7XG4gICAgaWYgKGV2ZW50TmFtZSkge1xuICAgICAgZGVsZXRlIHRoaXMuX2V2ZW50c1tldmVudE5hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9ldmVudHMgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZW1pdDogZnVuY3Rpb24gZW1pdChldmVudE5hbWUsIGV2ZW50QXJncywgZG9uZUNhbGxiYWNrKSB7XG4gICAgaWYgKCFkb25lQ2FsbGJhY2spIGRvbmVDYWxsYmFjayA9IGZ1bmN0aW9uKCkgeyB9O1xuICAgIHZhciBsaXN0ZW5lcnMgPSB0aGlzLmxpc3RlbmVycyhldmVudE5hbWUpO1xuICAgIHZhciBjb3VudCA9IGxpc3RlbmVycy5sZW5ndGg7XG4gICAgdGhpcy5jYWxsTGlzdGVuZXJzKGxpc3RlbmVycywgZXZlbnRBcmdzLCBkb25lQ2FsbGJhY2spO1xuICAgIHJldHVybiBjb3VudCA+IDA7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY2FsbExpc3RlbmVyczogZnVuY3Rpb24gY2FsbExpc3RlbmVycyhsaXN0ZW5lcnMsIGFyZ3MsIGRvbmVDYWxsYmFjaywgcHJldkVycm9yKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBlcnJvciA9IHByZXZFcnJvciB8fCBudWxsO1xuXG4gICAgZnVuY3Rpb24gY2FsbE5leHRMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgZXJyb3IgPSBBV1MudXRpbC5lcnJvcihlcnJvciB8fCBuZXcgRXJyb3IoKSwgZXJyKTtcbiAgICAgICAgaWYgKHNlbGYuX2hhbHRIYW5kbGVyc09uRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZG9uZUNhbGxiYWNrLmNhbGwoc2VsZiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzZWxmLmNhbGxMaXN0ZW5lcnMobGlzdGVuZXJzLCBhcmdzLCBkb25lQ2FsbGJhY2ssIGVycm9yKTtcbiAgICB9XG5cbiAgICB3aGlsZSAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVycy5zaGlmdCgpO1xuICAgICAgaWYgKGxpc3RlbmVyLl9pc0FzeW5jKSB7IC8vIGFzeW5jaHJvbm91cyBsaXN0ZW5lclxuICAgICAgICBsaXN0ZW5lci5hcHBseShzZWxmLCBhcmdzLmNvbmNhdChbY2FsbE5leHRMaXN0ZW5lcl0pKTtcbiAgICAgICAgcmV0dXJuOyAvLyBzdG9wIGhlcmUsIGNhbGxOZXh0TGlzdGVuZXIgd2lsbCBjb250aW51ZVxuICAgICAgfSBlbHNlIHsgLy8gc3luY2hyb25vdXMgbGlzdGVuZXJcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsaXN0ZW5lci5hcHBseShzZWxmLCBhcmdzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgZXJyb3IgPSBBV1MudXRpbC5lcnJvcihlcnJvciB8fCBuZXcgRXJyb3IoKSwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3IgJiYgc2VsZi5faGFsdEhhbmRsZXJzT25FcnJvcikge1xuICAgICAgICAgIGRvbmVDYWxsYmFjay5jYWxsKHNlbGYsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZG9uZUNhbGxiYWNrLmNhbGwoc2VsZiwgZXJyb3IpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBZGRzIG9yIGNvcGllcyBhIHNldCBvZiBsaXN0ZW5lcnMgZnJvbSBhbm90aGVyIGxpc3Qgb2ZcbiAgICogbGlzdGVuZXJzIG9yIFNlcXVlbnRpYWxFeGVjdXRvciBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBsaXN0ZW5lcnMgW21hcDxTdHJpbmcsQXJyYXk8RnVuY3Rpb24+PiwgQVdTLlNlcXVlbnRpYWxFeGVjdXRvcl1cbiAgICogICBhIGxpc3Qgb2YgZXZlbnRzIGFuZCBjYWxsYmFja3MsIG9yIGFuIGV2ZW50IGVtaXR0ZXIgb2JqZWN0XG4gICAqICAgY29udGFpbmluZyBsaXN0ZW5lcnMgdG8gYWRkIHRvIHRoaXMgZW1pdHRlciBvYmplY3QuXG4gICAqIEByZXR1cm4gW0FXUy5TZXF1ZW50aWFsRXhlY3V0b3JdIHRoZSBlbWl0dGVyIG9iamVjdCwgZm9yIGNoYWluaW5nLlxuICAgKiBAZXhhbXBsZSBBZGRpbmcgbGlzdGVuZXJzIGZyb20gYSBtYXAgb2YgbGlzdGVuZXJzXG4gICAqICAgZW1pdHRlci5hZGRMaXN0ZW5lcnMoe1xuICAgKiAgICAgZXZlbnQxOiBbZnVuY3Rpb24oKSB7IC4uLiB9LCBmdW5jdGlvbigpIHsgLi4uIH1dLFxuICAgKiAgICAgZXZlbnQyOiBbZnVuY3Rpb24oKSB7IC4uLiB9XVxuICAgKiAgIH0pO1xuICAgKiAgIGVtaXR0ZXIuZW1pdCgnZXZlbnQxJyk7IC8vIGVtaXR0ZXIgaGFzIGV2ZW50MVxuICAgKiAgIGVtaXR0ZXIuZW1pdCgnZXZlbnQyJyk7IC8vIGVtaXR0ZXIgaGFzIGV2ZW50MlxuICAgKiBAZXhhbXBsZSBBZGRpbmcgbGlzdGVuZXJzIGZyb20gYW5vdGhlciBlbWl0dGVyIG9iamVjdFxuICAgKiAgIHZhciBlbWl0dGVyMSA9IG5ldyBBV1MuU2VxdWVudGlhbEV4ZWN1dG9yKCk7XG4gICAqICAgZW1pdHRlcjEub24oJ2V2ZW50MScsIGZ1bmN0aW9uKCkgeyAuLi4gfSk7XG4gICAqICAgZW1pdHRlcjEub24oJ2V2ZW50MicsIGZ1bmN0aW9uKCkgeyAuLi4gfSk7XG4gICAqICAgdmFyIGVtaXR0ZXIyID0gbmV3IEFXUy5TZXF1ZW50aWFsRXhlY3V0b3IoKTtcbiAgICogICBlbWl0dGVyMi5hZGRMaXN0ZW5lcnMoZW1pdHRlcjEpO1xuICAgKiAgIGVtaXR0ZXIyLmVtaXQoJ2V2ZW50MScpOyAvLyBlbWl0dGVyMiBoYXMgZXZlbnQxXG4gICAqICAgZW1pdHRlcjIuZW1pdCgnZXZlbnQyJyk7IC8vIGVtaXR0ZXIyIGhhcyBldmVudDJcbiAgICovXG4gIGFkZExpc3RlbmVyczogZnVuY3Rpb24gYWRkTGlzdGVuZXJzKGxpc3RlbmVycykge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIC8vIGV4dHJhY3QgbGlzdGVuZXJzIGlmIHBhcmFtZXRlciBpcyBhbiBTZXF1ZW50aWFsRXhlY3V0b3Igb2JqZWN0XG4gICAgaWYgKGxpc3RlbmVycy5fZXZlbnRzKSBsaXN0ZW5lcnMgPSBsaXN0ZW5lcnMuX2V2ZW50cztcblxuICAgIEFXUy51dGlsLmVhY2gobGlzdGVuZXJzLCBmdW5jdGlvbihldmVudCwgY2FsbGJhY2tzKSB7XG4gICAgICBpZiAodHlwZW9mIGNhbGxiYWNrcyA9PT0gJ2Z1bmN0aW9uJykgY2FsbGJhY2tzID0gW2NhbGxiYWNrc107XG4gICAgICBBV1MudXRpbC5hcnJheUVhY2goY2FsbGJhY2tzLCBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAgICBzZWxmLm9uKGV2ZW50LCBjYWxsYmFjayk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzZWxmO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYW4gZXZlbnQgd2l0aCB7b259IGFuZCBzYXZlcyB0aGUgY2FsbGJhY2sgaGFuZGxlIGZ1bmN0aW9uXG4gICAqIGFzIGEgcHJvcGVydHkgb24gdGhlIGVtaXR0ZXIgb2JqZWN0IHVzaW5nIGEgZ2l2ZW4gYG5hbWVgLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBbU3RyaW5nXSB0aGUgcHJvcGVydHkgbmFtZSB0byBzZXQgb24gdGhpcyBvYmplY3QgY29udGFpbmluZ1xuICAgKiAgIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBoYW5kbGUgc28gdGhhdCB0aGUgbGlzdGVuZXIgY2FuIGJlIHJlbW92ZWQgaW5cbiAgICogICB0aGUgZnV0dXJlLlxuICAgKiBAcGFyYW0gKHNlZSBvbilcbiAgICogQHJldHVybiAoc2VlIG9uKVxuICAgKiBAZXhhbXBsZSBBZGRpbmcgYSBuYW1lZCBsaXN0ZW5lciBEQVRBX0NBTExCQUNLXG4gICAqICAgdmFyIGxpc3RlbmVyID0gZnVuY3Rpb24oKSB7IGRvU29tZXRoaW5nKCk7IH07XG4gICAqICAgZW1pdHRlci5hZGROYW1lZExpc3RlbmVyKCdEQVRBX0NBTExCQUNLJywgJ2RhdGEnLCBsaXN0ZW5lcik7XG4gICAqXG4gICAqICAgLy8gdGhlIGZvbGxvd2luZyBwcmludHM6IHRydWVcbiAgICogICBjb25zb2xlLmxvZyhlbWl0dGVyLkRBVEFfQ0FMTEJBQ0sgPT0gbGlzdGVuZXIpO1xuICAgKi9cbiAgYWRkTmFtZWRMaXN0ZW5lcjogZnVuY3Rpb24gYWRkTmFtZWRMaXN0ZW5lcihuYW1lLCBldmVudE5hbWUsIGNhbGxiYWNrKSB7XG4gICAgdGhpc1tuYW1lXSA9IGNhbGxiYWNrO1xuICAgIHRoaXMuYWRkTGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjayk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYWRkTmFtZWRBc3luY0xpc3RlbmVyOiBmdW5jdGlvbiBhZGROYW1lZEFzeW5jTGlzdGVuZXIobmFtZSwgZXZlbnROYW1lLCBjYWxsYmFjaykge1xuICAgIGNhbGxiYWNrLl9pc0FzeW5jID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5hZGROYW1lZExpc3RlbmVyKG5hbWUsIGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuICB9LFxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGFkZCBhIHNldCBvZiBuYW1lZCBsaXN0ZW5lcnMgdXNpbmdcbiAgICoge2FkZE5hbWVkTGlzdGVuZXJ9LiBUaGUgY2FsbGJhY2sgY29udGFpbnMgYSBwYXJhbWV0ZXJcbiAgICogd2l0aCBhIGhhbmRsZSB0byB0aGUgYGFkZE5hbWVkTGlzdGVuZXJgIG1ldGhvZC5cbiAgICpcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGFkZClcbiAgICogICBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgY2FsbGVkIGltbWVkaWF0ZWx5IGluIG9yZGVyIHRvIHByb3ZpZGVcbiAgICogICB0aGUgYGFkZGAgZnVuY3Rpb24gdG8gdGhlIGJsb2NrLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGFkZGl0aW9uIG9mXG4gICAqICAgYSBsYXJnZSBncm91cCBvZiBuYW1lZCBsaXN0ZW5lcnMuXG4gICAqICAgQHBhcmFtIGFkZCBbRnVuY3Rpb25dIHRoZSB7YWRkTmFtZWRMaXN0ZW5lcn0gZnVuY3Rpb24gdG8gY2FsbFxuICAgKiAgICAgd2hlbiByZWdpc3RlcmluZyBsaXN0ZW5lcnMuXG4gICAqIEBleGFtcGxlIEFkZGluZyBhIHNldCBvZiBuYW1lZCBsaXN0ZW5lcnNcbiAgICogICBlbWl0dGVyLmFkZE5hbWVkTGlzdGVuZXJzKGZ1bmN0aW9uKGFkZCkge1xuICAgKiAgICAgYWRkKCdEQVRBX0NBTExCQUNLJywgJ2RhdGEnLCBmdW5jdGlvbigpIHsgLi4uIH0pO1xuICAgKiAgICAgYWRkKCdPVEhFUicsICdvdGhlckV2ZW50JywgZnVuY3Rpb24oKSB7IC4uLiB9KTtcbiAgICogICAgIGFkZCgnTEFTVCcsICdsYXN0RXZlbnQnLCBmdW5jdGlvbigpIHsgLi4uIH0pO1xuICAgKiAgIH0pO1xuICAgKlxuICAgKiAgIC8vIHRoZXNlIHByb3BlcnRpZXMgYXJlIG5vdyBzZXQ6XG4gICAqICAgZW1pdHRlci5EQVRBX0NBTExCQUNLO1xuICAgKiAgIGVtaXR0ZXIuT1RIRVI7XG4gICAqICAgZW1pdHRlci5MQVNUO1xuICAgKi9cbiAgYWRkTmFtZWRMaXN0ZW5lcnM6IGZ1bmN0aW9uIGFkZE5hbWVkTGlzdGVuZXJzKGNhbGxiYWNrKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGNhbGxiYWNrKFxuICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYuYWRkTmFtZWRMaXN0ZW5lci5hcHBseShzZWxmLCBhcmd1bWVudHMpO1xuICAgICAgfSxcbiAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICBzZWxmLmFkZE5hbWVkQXN5bmNMaXN0ZW5lci5hcHBseShzZWxmLCBhcmd1bWVudHMpO1xuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn0pO1xuXG4vKipcbiAqIHtvbn0gaXMgdGhlIHByZWZlcmVkIG1ldGhvZC5cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuU2VxdWVudGlhbEV4ZWN1dG9yLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IEFXUy5TZXF1ZW50aWFsRXhlY3V0b3IucHJvdG90eXBlLm9uO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IEFXUy5TZXF1ZW50aWFsRXhlY3V0b3I7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi9jb3JlJyk7XG52YXIgQXBpID0gcmVxdWlyZSgnLi9tb2RlbC9hcGknKTtcbnZhciByZWdpb25Db25maWcgPSByZXF1aXJlKCcuL3JlZ2lvbl9jb25maWcnKTtcbnZhciBpbmhlcml0ID0gQVdTLnV0aWwuaW5oZXJpdDtcbnZhciBjbGllbnRDb3VudCA9IDA7XG5cbi8qKlxuICogVGhlIHNlcnZpY2UgY2xhc3MgcmVwcmVzZW50aW5nIGFuIEFXUyBzZXJ2aWNlLlxuICpcbiAqIEBhYnN0cmFjdFxuICpcbiAqIEAhYXR0cmlidXRlIGFwaVZlcnNpb25zXG4gKiAgIEByZXR1cm4gW0FycmF5PFN0cmluZz5dIHRoZSBsaXN0IG9mIEFQSSB2ZXJzaW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzZXJ2aWNlLlxuICogICBAcmVhZG9ubHlcbiAqL1xuQVdTLlNlcnZpY2UgPSBpbmhlcml0KHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBzZXJ2aWNlIG9iamVjdCB3aXRoIGEgY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyBbbWFwXSBhIG1hcCBvZiBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBTZXJ2aWNlKGNvbmZpZykge1xuICAgIGlmICghdGhpcy5sb2FkU2VydmljZUNsYXNzKSB7XG4gICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSxcbiAgICAgICAgJ1NlcnZpY2UgbXVzdCBiZSBjb25zdHJ1Y3RlZCB3aXRoIGBuZXdcXCcgb3BlcmF0b3InKTtcbiAgICB9XG4gICAgdmFyIFNlcnZpY2VDbGFzcyA9IHRoaXMubG9hZFNlcnZpY2VDbGFzcyhjb25maWcgfHwge30pO1xuICAgIGlmIChTZXJ2aWNlQ2xhc3MpIHtcbiAgICAgIHZhciBvcmlnaW5hbENvbmZpZyA9IEFXUy51dGlsLmNvcHkoY29uZmlnKTtcbiAgICAgIHZhciBzdmMgPSBuZXcgU2VydmljZUNsYXNzKGNvbmZpZyk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3ZjLCAnX29yaWdpbmFsQ29uZmlnJywge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gb3JpZ2luYWxDb25maWc7IH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH0pO1xuICAgICAgc3ZjLl9jbGllbnRJZCA9ICsrY2xpZW50Q291bnQ7XG4gICAgICByZXR1cm4gc3ZjO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxpemUoY29uZmlnKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBpbml0aWFsaXplOiBmdW5jdGlvbiBpbml0aWFsaXplKGNvbmZpZykge1xuICAgIHZhciBzdmNDb25maWcgPSBBV1MuY29uZmlnW3RoaXMuc2VydmljZUlkZW50aWZpZXJdO1xuXG4gICAgdGhpcy5jb25maWcgPSBuZXcgQVdTLkNvbmZpZyhBV1MuY29uZmlnKTtcbiAgICBpZiAoc3ZjQ29uZmlnKSB0aGlzLmNvbmZpZy51cGRhdGUoc3ZjQ29uZmlnLCB0cnVlKTtcbiAgICBpZiAoY29uZmlnKSB0aGlzLmNvbmZpZy51cGRhdGUoY29uZmlnLCB0cnVlKTtcblxuICAgIHRoaXMudmFsaWRhdGVTZXJ2aWNlKCk7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5lbmRwb2ludCkgcmVnaW9uQ29uZmlnKHRoaXMpO1xuXG4gICAgdGhpcy5jb25maWcuZW5kcG9pbnQgPSB0aGlzLmVuZHBvaW50RnJvbVRlbXBsYXRlKHRoaXMuY29uZmlnLmVuZHBvaW50KTtcbiAgICB0aGlzLnNldEVuZHBvaW50KHRoaXMuY29uZmlnLmVuZHBvaW50KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB2YWxpZGF0ZVNlcnZpY2U6IGZ1bmN0aW9uIHZhbGlkYXRlU2VydmljZSgpIHtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBsb2FkU2VydmljZUNsYXNzOiBmdW5jdGlvbiBsb2FkU2VydmljZUNsYXNzKHNlcnZpY2VDb25maWcpIHtcbiAgICB2YXIgY29uZmlnID0gc2VydmljZUNvbmZpZztcbiAgICBpZiAoIUFXUy51dGlsLmlzRW1wdHkodGhpcy5hcGkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKGNvbmZpZy5hcGlDb25maWcpIHtcbiAgICAgIHJldHVybiBBV1MuU2VydmljZS5kZWZpbmVTZXJ2aWNlQXBpKHRoaXMuY29uc3RydWN0b3IsIGNvbmZpZy5hcGlDb25maWcpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuY29uc3RydWN0b3Iuc2VydmljZXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcgPSBuZXcgQVdTLkNvbmZpZyhBV1MuY29uZmlnKTtcbiAgICAgIGNvbmZpZy51cGRhdGUoc2VydmljZUNvbmZpZywgdHJ1ZSk7XG4gICAgICB2YXIgdmVyc2lvbiA9IGNvbmZpZy5hcGlWZXJzaW9uc1t0aGlzLmNvbnN0cnVjdG9yLnNlcnZpY2VJZGVudGlmaWVyXTtcbiAgICAgIHZlcnNpb24gPSB2ZXJzaW9uIHx8IGNvbmZpZy5hcGlWZXJzaW9uO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TGF0ZXN0U2VydmljZUNsYXNzKHZlcnNpb24pO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRMYXRlc3RTZXJ2aWNlQ2xhc3M6IGZ1bmN0aW9uIGdldExhdGVzdFNlcnZpY2VDbGFzcyh2ZXJzaW9uKSB7XG4gICAgdmVyc2lvbiA9IHRoaXMuZ2V0TGF0ZXN0U2VydmljZVZlcnNpb24odmVyc2lvbik7XG4gICAgaWYgKHRoaXMuY29uc3RydWN0b3Iuc2VydmljZXNbdmVyc2lvbl0gPT09IG51bGwpIHtcbiAgICAgIEFXUy5TZXJ2aWNlLmRlZmluZVNlcnZpY2VBcGkodGhpcy5jb25zdHJ1Y3RvciwgdmVyc2lvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3Iuc2VydmljZXNbdmVyc2lvbl07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZ2V0TGF0ZXN0U2VydmljZVZlcnNpb246IGZ1bmN0aW9uIGdldExhdGVzdFNlcnZpY2VWZXJzaW9uKHZlcnNpb24pIHtcbiAgICBpZiAoIXRoaXMuY29uc3RydWN0b3Iuc2VydmljZXMgfHwgdGhpcy5jb25zdHJ1Y3Rvci5zZXJ2aWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc2VydmljZXMgZGVmaW5lZCBvbiAnICtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yLnNlcnZpY2VJZGVudGlmaWVyKTtcbiAgICB9XG5cbiAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgIHZlcnNpb24gPSAnbGF0ZXN0JztcbiAgICB9IGVsc2UgaWYgKEFXUy51dGlsLmlzVHlwZSh2ZXJzaW9uLCBEYXRlKSkge1xuICAgICAgdmVyc2lvbiA9IEFXUy51dGlsLmRhdGUuaXNvODYwMSh2ZXJzaW9uKS5zcGxpdCgnVCcpWzBdO1xuICAgIH1cblxuICAgIGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkodGhpcy5jb25zdHJ1Y3Rvci5zZXJ2aWNlcywgdmVyc2lvbikpIHtcbiAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgIH1cblxuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXModGhpcy5jb25zdHJ1Y3Rvci5zZXJ2aWNlcykuc29ydCgpO1xuICAgIHZhciBzZWxlY3RlZFZlcnNpb24gPSBudWxsO1xuICAgIGZvciAodmFyIGkgPSBrZXlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAvLyB2ZXJzaW9ucyB0aGF0IGVuZCBpbiBcIipcIiBhcmUgbm90IGF2YWlsYWJsZSBvbiBkaXNrIGFuZCBjYW4gYmVcbiAgICAgIC8vIHNraXBwZWQsIHNvIGRvIG5vdCBjaG9vc2UgdGhlc2UgYXMgc2VsZWN0ZWRWZXJzaW9uc1xuICAgICAgaWYgKGtleXNbaV1ba2V5c1tpXS5sZW5ndGggLSAxXSAhPT0gJyonKSB7XG4gICAgICAgIHNlbGVjdGVkVmVyc2lvbiA9IGtleXNbaV07XG4gICAgICB9XG4gICAgICBpZiAoa2V5c1tpXS5zdWJzdHIoMCwgMTApIDw9IHZlcnNpb24pIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkVmVyc2lvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kICcgKyB0aGlzLmNvbnN0cnVjdG9yLnNlcnZpY2VJZGVudGlmaWVyICtcbiAgICAgICAgICAgICAgICAgICAgJyBBUEkgdG8gc2F0aXNmeSB2ZXJzaW9uIGNvbnN0cmFpbnQgYCcgKyB2ZXJzaW9uICsgJ1xcJycpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFwaToge30sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZGVmYXVsdFJldHJ5Q291bnQ6IDMsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY3VzdG9taXplUmVxdWVzdHM6IGZ1bmN0aW9uIGN1c3RvbWl6ZVJlcXVlc3RzKGNhbGxiYWNrKSB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgdGhpcy5jdXN0b21SZXF1ZXN0SGFuZGxlciA9IG51bGw7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuY3VzdG9tUmVxdWVzdEhhbmRsZXIgPSBjYWxsYmFjaztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNhbGxiYWNrIHR5cGUgXFwnJyArIHR5cGVvZiBjYWxsYmFjayArICdcXCcgcHJvdmlkZWQgaW4gY3VzdG9taXplUmVxdWVzdHMnKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIENhbGxzIGFuIG9wZXJhdGlvbiBvbiBhIHNlcnZpY2Ugd2l0aCB0aGUgZ2l2ZW4gaW5wdXQgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIG9wZXJhdGlvbiBbU3RyaW5nXSB0aGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uIHRvIGNhbGwgb24gdGhlIHNlcnZpY2UuXG4gICAqIEBwYXJhbSBwYXJhbXMgW21hcF0gYSBtYXAgb2YgaW5wdXQgb3B0aW9ucyBmb3IgdGhlIG9wZXJhdGlvblxuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyLCBkYXRhKVxuICAgKiAgIElmIGEgY2FsbGJhY2sgaXMgc3VwcGxpZWQsIGl0IGlzIGNhbGxlZCB3aGVuIGEgcmVzcG9uc2UgaXMgcmV0dXJuZWRcbiAgICogICBmcm9tIHRoZSBzZXJ2aWNlLlxuICAgKiAgIEBwYXJhbSBlcnIgW0Vycm9yXSB0aGUgZXJyb3Igb2JqZWN0IHJldHVybmVkIGZyb20gdGhlIHJlcXVlc3QuXG4gICAqICAgICBTZXQgdG8gYG51bGxgIGlmIHRoZSByZXF1ZXN0IGlzIHN1Y2Nlc3NmdWwuXG4gICAqICAgQHBhcmFtIGRhdGEgW09iamVjdF0gdGhlIGRlLXNlcmlhbGl6ZWQgZGF0YSByZXR1cm5lZCBmcm9tXG4gICAqICAgICB0aGUgcmVxdWVzdC4gU2V0IHRvIGBudWxsYCBpZiBhIHJlcXVlc3QgZXJyb3Igb2NjdXJzLlxuICAgKi9cbiAgbWFrZVJlcXVlc3Q6IGZ1bmN0aW9uIG1ha2VSZXF1ZXN0KG9wZXJhdGlvbiwgcGFyYW1zLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgcGFyYW1zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IHBhcmFtcztcbiAgICAgIHBhcmFtcyA9IG51bGw7XG4gICAgfVxuXG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IHt9O1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYXJhbXMpIHsgLy8gY29weSBvbmx5IHRvcGxldmVsIGJvdW5kIHBhcmFtc1xuICAgICAgdmFyIHJ1bGVzID0gdGhpcy5hcGkub3BlcmF0aW9uc1tvcGVyYXRpb25dO1xuICAgICAgaWYgKHJ1bGVzKSB7XG4gICAgICAgIHBhcmFtcyA9IEFXUy51dGlsLmNvcHkocGFyYW1zKTtcbiAgICAgICAgQVdTLnV0aWwuZWFjaCh0aGlzLmNvbmZpZy5wYXJhbXMsIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAgICAgICAgICBpZiAocnVsZXMuaW5wdXQubWVtYmVyc1trZXldKSB7XG4gICAgICAgICAgICBpZiAocGFyYW1zW2tleV0gPT09IHVuZGVmaW5lZCB8fCBwYXJhbXNba2V5XSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBwYXJhbXNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgQVdTLlJlcXVlc3QodGhpcywgb3BlcmF0aW9uLCBwYXJhbXMpO1xuICAgIHRoaXMuYWRkQWxsUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KTtcblxuICAgIGlmIChjYWxsYmFjaykgcmVxdWVzdC5zZW5kKGNhbGxiYWNrKTtcbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfSxcblxuICAvKipcbiAgICogQ2FsbHMgYW4gb3BlcmF0aW9uIG9uIGEgc2VydmljZSB3aXRoIHRoZSBnaXZlbiBpbnB1dCBwYXJhbWV0ZXJzLCB3aXRob3V0XG4gICAqIGFueSBhdXRoZW50aWNhdGlvbiBkYXRhLiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIFwicHVibGljXCIgQVBJIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYXRpb24gW1N0cmluZ10gdGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvbiB0byBjYWxsIG9uIHRoZSBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gcGFyYW1zIFttYXBdIGEgbWFwIG9mIGlucHV0IG9wdGlvbnMgZm9yIHRoZSBvcGVyYXRpb25cbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVyciwgZGF0YSlcbiAgICogICBJZiBhIGNhbGxiYWNrIGlzIHN1cHBsaWVkLCBpdCBpcyBjYWxsZWQgd2hlbiBhIHJlc3BvbnNlIGlzIHJldHVybmVkXG4gICAqICAgZnJvbSB0aGUgc2VydmljZS5cbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBmcm9tIHRoZSByZXF1ZXN0LlxuICAgKiAgICAgU2V0IHRvIGBudWxsYCBpZiB0aGUgcmVxdWVzdCBpcyBzdWNjZXNzZnVsLlxuICAgKiAgIEBwYXJhbSBkYXRhIFtPYmplY3RdIHRoZSBkZS1zZXJpYWxpemVkIGRhdGEgcmV0dXJuZWQgZnJvbVxuICAgKiAgICAgdGhlIHJlcXVlc3QuIFNldCB0byBgbnVsbGAgaWYgYSByZXF1ZXN0IGVycm9yIG9jY3Vycy5cbiAgICovXG4gIG1ha2VVbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0OiBmdW5jdGlvbiBtYWtlVW5hdXRoZW50aWNhdGVkUmVxdWVzdChvcGVyYXRpb24sIHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIHBhcmFtcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBwYXJhbXM7XG4gICAgICBwYXJhbXMgPSB7fTtcbiAgICB9XG5cbiAgICB2YXIgcmVxdWVzdCA9IHRoaXMubWFrZVJlcXVlc3Qob3BlcmF0aW9uLCBwYXJhbXMpLnRvVW5hdXRoZW50aWNhdGVkKCk7XG4gICAgcmV0dXJuIGNhbGxiYWNrID8gcmVxdWVzdC5zZW5kKGNhbGxiYWNrKSA6IHJlcXVlc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFdhaXRzIGZvciBhIGdpdmVuIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZSBbU3RyaW5nXSB0aGUgc3RhdGUgb24gdGhlIHNlcnZpY2UgdG8gd2FpdCBmb3JcbiAgICogQHBhcmFtIHBhcmFtcyBbbWFwXSBhIG1hcCBvZiBwYXJhbWV0ZXJzIHRvIHBhc3Mgd2l0aCBlYWNoIHJlcXVlc3RcbiAgICogQG9wdGlvbiBwYXJhbXMgJHdhaXRlciBbbWFwXSBhIG1hcCBvZiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSB3YWl0ZXJcbiAgICogQG9wdGlvbiBwYXJhbXMgJHdhaXRlci5kZWxheSBbTnVtYmVyXSBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdHNcbiAgICogQG9wdGlvbiBwYXJhbXMgJHdhaXRlci5tYXhBdHRlbXB0cyBbTnVtYmVyXSBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVxdWVzdHNcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBzZW5kIHdoaWxlIHdhaXRpbmdcbiAgICogQGNhbGxiYWNrIGNhbGxiYWNrIGZ1bmN0aW9uKGVyciwgZGF0YSlcbiAgICogICBJZiBhIGNhbGxiYWNrIGlzIHN1cHBsaWVkLCBpdCBpcyBjYWxsZWQgd2hlbiBhIHJlc3BvbnNlIGlzIHJldHVybmVkXG4gICAqICAgZnJvbSB0aGUgc2VydmljZS5cbiAgICogICBAcGFyYW0gZXJyIFtFcnJvcl0gdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBmcm9tIHRoZSByZXF1ZXN0LlxuICAgKiAgICAgU2V0IHRvIGBudWxsYCBpZiB0aGUgcmVxdWVzdCBpcyBzdWNjZXNzZnVsLlxuICAgKiAgIEBwYXJhbSBkYXRhIFtPYmplY3RdIHRoZSBkZS1zZXJpYWxpemVkIGRhdGEgcmV0dXJuZWQgZnJvbVxuICAgKiAgICAgdGhlIHJlcXVlc3QuIFNldCB0byBgbnVsbGAgaWYgYSByZXF1ZXN0IGVycm9yIG9jY3Vycy5cbiAgICovXG4gIHdhaXRGb3I6IGZ1bmN0aW9uIHdhaXRGb3Ioc3RhdGUsIHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICB2YXIgd2FpdGVyID0gbmV3IEFXUy5SZXNvdXJjZVdhaXRlcih0aGlzLCBzdGF0ZSk7XG4gICAgcmV0dXJuIHdhaXRlci53YWl0KHBhcmFtcywgY2FsbGJhY2spO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFkZEFsbFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIGFkZEFsbFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCkge1xuICAgIHZhciBsaXN0ID0gW0FXUy5ldmVudHMsIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLCB0aGlzLnNlcnZpY2VJbnRlcmZhY2UoKSxcbiAgICAgICAgICAgICAgICBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZVBvc3RdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGxpc3RbaV0pIHJlcXVlc3QuYWRkTGlzdGVuZXJzKGxpc3RbaV0pO1xuICAgIH1cblxuICAgIC8vIGRpc2FibGUgcGFyYW1ldGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIXRoaXMuY29uZmlnLnBhcmFtVmFsaWRhdGlvbikge1xuICAgICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcigndmFsaWRhdGUnLFxuICAgICAgICBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9QQVJBTUVURVJTKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcubG9nZ2VyKSB7IC8vIGFkZCBsb2dnaW5nIGV2ZW50c1xuICAgICAgcmVxdWVzdC5hZGRMaXN0ZW5lcnMoQVdTLkV2ZW50TGlzdGVuZXJzLkxvZ2dlcik7XG4gICAgfVxuXG4gICAgdGhpcy5zZXR1cFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCk7XG4gICAgLy8gY2FsbCBwcm90b3R5cGUncyBjdXN0b21SZXF1ZXN0SGFuZGxlclxuICAgIGlmICh0eXBlb2YgdGhpcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuY3VzdG9tUmVxdWVzdEhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlLmN1c3RvbVJlcXVlc3RIYW5kbGVyKHJlcXVlc3QpO1xuICAgIH1cbiAgICAvLyBjYWxsIGluc3RhbmNlJ3MgY3VzdG9tUmVxdWVzdEhhbmRsZXJcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsICdjdXN0b21SZXF1ZXN0SGFuZGxlcicpICYmIHR5cGVvZiB0aGlzLmN1c3RvbVJlcXVlc3RIYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmN1c3RvbVJlcXVlc3RIYW5kbGVyKHJlcXVlc3QpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gc2V0dXAgYW55IGN1c3RvbSByZXF1ZXN0IGxpc3RlbmVycyBmb3IgZWFjaFxuICAgKiBuZXcgcmVxdWVzdCB0byB0aGUgc2VydmljZS5cbiAgICpcbiAgICogQGFic3RyYWN0XG4gICAqL1xuICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycygpIHtcbiAgfSxcblxuICAvKipcbiAgICogR2V0cyB0aGUgc2lnbmVyIGNsYXNzIGZvciBhIGdpdmVuIHJlcXVlc3RcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRTaWduZXJDbGFzczogZnVuY3Rpb24gZ2V0U2lnbmVyQ2xhc3MocmVxdWVzdCkge1xuICAgIHZhciB2ZXJzaW9uO1xuICAgIC8vIGdldCBvcGVyYXRpb24gYXV0aHR5cGUgaWYgcHJlc2VudFxuICAgIHZhciBvcGVyYXRpb24gPSBudWxsO1xuICAgIHZhciBhdXRodHlwZSA9ICcnO1xuICAgIGlmIChyZXF1ZXN0KSB7XG4gICAgICB2YXIgb3BlcmF0aW9ucyA9IHJlcXVlc3Quc2VydmljZS5hcGkub3BlcmF0aW9ucyB8fCB7fTtcbiAgICAgIG9wZXJhdGlvbiA9IG9wZXJhdGlvbnNbcmVxdWVzdC5vcGVyYXRpb25dIHx8IG51bGw7XG4gICAgICBhdXRodHlwZSA9IG9wZXJhdGlvbiA/IG9wZXJhdGlvbi5hdXRodHlwZSA6ICcnO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcuc2lnbmF0dXJlVmVyc2lvbikge1xuICAgICAgdmVyc2lvbiA9IHRoaXMuY29uZmlnLnNpZ25hdHVyZVZlcnNpb247XG4gICAgfSBlbHNlIGlmIChhdXRodHlwZSA9PT0gJ3Y0JyB8fCBhdXRodHlwZSA9PT0gJ3Y0LXVuc2lnbmVkLWJvZHknKSB7XG4gICAgICB2ZXJzaW9uID0gJ3Y0JztcbiAgICB9IGVsc2Uge1xuICAgICAgdmVyc2lvbiA9IHRoaXMuYXBpLnNpZ25hdHVyZVZlcnNpb247XG4gICAgfVxuICAgIHJldHVybiBBV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyLmdldFZlcnNpb24odmVyc2lvbik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2VydmljZUludGVyZmFjZTogZnVuY3Rpb24gc2VydmljZUludGVyZmFjZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuYXBpLnByb3RvY29sKSB7XG4gICAgICBjYXNlICdlYzInOiByZXR1cm4gQVdTLkV2ZW50TGlzdGVuZXJzLlF1ZXJ5O1xuICAgICAgY2FzZSAncXVlcnknOiByZXR1cm4gQVdTLkV2ZW50TGlzdGVuZXJzLlF1ZXJ5O1xuICAgICAgY2FzZSAnanNvbic6IHJldHVybiBBV1MuRXZlbnRMaXN0ZW5lcnMuSnNvbjtcbiAgICAgIGNhc2UgJ3Jlc3QtanNvbic6IHJldHVybiBBV1MuRXZlbnRMaXN0ZW5lcnMuUmVzdEpzb247XG4gICAgICBjYXNlICdyZXN0LXhtbCc6IHJldHVybiBBV1MuRXZlbnRMaXN0ZW5lcnMuUmVzdFhtbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuYXBpLnByb3RvY29sKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2VydmljZSBgcHJvdG9jb2xcXCcgJyArXG4gICAgICAgIHRoaXMuYXBpLnByb3RvY29sICsgJyBpbiBBUEkgY29uZmlnJyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHN1Y2Nlc3NmdWxSZXNwb25zZTogZnVuY3Rpb24gc3VjY2Vzc2Z1bFJlc3BvbnNlKHJlc3ApIHtcbiAgICByZXR1cm4gcmVzcC5odHRwUmVzcG9uc2Uuc3RhdHVzQ29kZSA8IDMwMDtcbiAgfSxcblxuICAvKipcbiAgICogSG93IG1hbnkgdGltZXMgYSBmYWlsZWQgcmVxdWVzdCBzaG91bGQgYmUgcmV0cmllZCBiZWZvcmUgZ2l2aW5nIHVwLlxuICAgKiB0aGUgZGVmYXVsdFJldHJ5Q291bnQgY2FuIGJlIG92ZXJyaWRlbiBieSBzZXJ2aWNlIGNsYXNzZXMuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbnVtUmV0cmllczogZnVuY3Rpb24gbnVtUmV0cmllcygpIHtcbiAgICBpZiAodGhpcy5jb25maWcubWF4UmV0cmllcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcubWF4UmV0cmllcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFJldHJ5Q291bnQ7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJldHJ5RGVsYXlzOiBmdW5jdGlvbiByZXRyeURlbGF5cyhyZXRyeUNvdW50KSB7XG4gICAgcmV0dXJuIEFXUy51dGlsLmNhbGN1bGF0ZVJldHJ5RGVsYXkocmV0cnlDb3VudCwgdGhpcy5jb25maWcucmV0cnlEZWxheU9wdGlvbnMpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJldHJ5YWJsZUVycm9yOiBmdW5jdGlvbiByZXRyeWFibGVFcnJvcihlcnJvcikge1xuICAgIGlmICh0aGlzLnRpbWVvdXRFcnJvcihlcnJvcikpIHJldHVybiB0cnVlO1xuICAgIGlmICh0aGlzLm5ldHdvcmtpbmdFcnJvcihlcnJvcikpIHJldHVybiB0cnVlO1xuICAgIGlmICh0aGlzLmV4cGlyZWRDcmVkZW50aWFsc0Vycm9yKGVycm9yKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKHRoaXMudGhyb3R0bGVkRXJyb3IoZXJyb3IpKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZXJyb3Iuc3RhdHVzQ29kZSA+PSA1MDApIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBuZXR3b3JraW5nRXJyb3I6IGZ1bmN0aW9uIG5ldHdvcmtpbmdFcnJvcihlcnJvcikge1xuICAgIHJldHVybiBlcnJvci5jb2RlID09PSAnTmV0d29ya2luZ0Vycm9yJztcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB0aW1lb3V0RXJyb3I6IGZ1bmN0aW9uIHRpbWVvdXRFcnJvcihlcnJvcikge1xuICAgIHJldHVybiBlcnJvci5jb2RlID09PSAnVGltZW91dEVycm9yJztcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBleHBpcmVkQ3JlZGVudGlhbHNFcnJvcjogZnVuY3Rpb24gZXhwaXJlZENyZWRlbnRpYWxzRXJyb3IoZXJyb3IpIHtcbiAgICAvLyBUT0RPIDogdGhpcyBvbmx5IGhhbmRsZXMgKm9uZSogb2YgdGhlIGV4cGlyZWQgY3JlZGVudGlhbCBjb2Rlc1xuICAgIHJldHVybiAoZXJyb3IuY29kZSA9PT0gJ0V4cGlyZWRUb2tlbkV4Y2VwdGlvbicpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNsb2NrU2tld0Vycm9yOiBmdW5jdGlvbiBjbG9ja1NrZXdFcnJvcihlcnJvcikge1xuICAgIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgICAgY2FzZSAnUmVxdWVzdFRpbWVUb29Ta2V3ZWQnOlxuICAgICAgY2FzZSAnUmVxdWVzdEV4cGlyZWQnOlxuICAgICAgY2FzZSAnSW52YWxpZFNpZ25hdHVyZUV4Y2VwdGlvbic6XG4gICAgICBjYXNlICdTaWduYXR1cmVEb2VzTm90TWF0Y2gnOlxuICAgICAgY2FzZSAnQXV0aEZhaWx1cmUnOlxuICAgICAgY2FzZSAnUmVxdWVzdEluVGhlRnV0dXJlJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OiByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGdldFNrZXdDb3JyZWN0ZWREYXRlOiBmdW5jdGlvbiBnZXRTa2V3Q29ycmVjdGVkRGF0ZSgpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSArIHRoaXMuY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhcHBseUNsb2NrT2Zmc2V0OiBmdW5jdGlvbiBhcHBseUNsb2NrT2Zmc2V0KG5ld1NlcnZlclRpbWUpIHtcbiAgICBpZiAobmV3U2VydmVyVGltZSkge1xuICAgICAgdGhpcy5jb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgPSBuZXdTZXJ2ZXJUaW1lIC0gRGF0ZS5ub3coKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaXNDbG9ja1NrZXdlZDogZnVuY3Rpb24gaXNDbG9ja1NrZXdlZChuZXdTZXJ2ZXJUaW1lKSB7XG4gICAgaWYgKG5ld1NlcnZlclRpbWUpIHtcbiAgICAgIHJldHVybiBNYXRoLmFicyh0aGlzLmdldFNrZXdDb3JyZWN0ZWREYXRlKCkuZ2V0VGltZSgpIC0gbmV3U2VydmVyVGltZSkgPj0gMzAwMDA7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHRocm90dGxlZEVycm9yOiBmdW5jdGlvbiB0aHJvdHRsZWRFcnJvcihlcnJvcikge1xuICAgIC8vIHRoaXMgbG9naWMgdmFyaWVzIGJldHdlZW4gc2VydmljZXNcbiAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgIGNhc2UgJ1Byb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uJzpcbiAgICAgIGNhc2UgJ1Rocm90dGxpbmcnOlxuICAgICAgY2FzZSAnVGhyb3R0bGluZ0V4Y2VwdGlvbic6XG4gICAgICBjYXNlICdSZXF1ZXN0TGltaXRFeGNlZWRlZCc6XG4gICAgICBjYXNlICdSZXF1ZXN0VGhyb3R0bGVkJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGVuZHBvaW50RnJvbVRlbXBsYXRlOiBmdW5jdGlvbiBlbmRwb2ludEZyb21UZW1wbGF0ZShlbmRwb2ludCkge1xuICAgIGlmICh0eXBlb2YgZW5kcG9pbnQgIT09ICdzdHJpbmcnKSByZXR1cm4gZW5kcG9pbnQ7XG5cbiAgICB2YXIgZSA9IGVuZHBvaW50O1xuICAgIGUgPSBlLnJlcGxhY2UoL1xce3NlcnZpY2VcXH0vZywgdGhpcy5hcGkuZW5kcG9pbnRQcmVmaXgpO1xuICAgIGUgPSBlLnJlcGxhY2UoL1xce3JlZ2lvblxcfS9nLCB0aGlzLmNvbmZpZy5yZWdpb24pO1xuICAgIGUgPSBlLnJlcGxhY2UoL1xce3NjaGVtZVxcfS9nLCB0aGlzLmNvbmZpZy5zc2xFbmFibGVkID8gJ2h0dHBzJyA6ICdodHRwJyk7XG4gICAgcmV0dXJuIGU7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0RW5kcG9pbnQ6IGZ1bmN0aW9uIHNldEVuZHBvaW50KGVuZHBvaW50KSB7XG4gICAgdGhpcy5lbmRwb2ludCA9IG5ldyBBV1MuRW5kcG9pbnQoZW5kcG9pbnQsIHRoaXMuY29uZmlnKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwYWdpbmF0aW9uQ29uZmlnOiBmdW5jdGlvbiBwYWdpbmF0aW9uQ29uZmlnKG9wZXJhdGlvbiwgdGhyb3dFeGNlcHRpb24pIHtcbiAgICB2YXIgcGFnaW5hdG9yID0gdGhpcy5hcGkub3BlcmF0aW9uc1tvcGVyYXRpb25dLnBhZ2luYXRvcjtcbiAgICBpZiAoIXBhZ2luYXRvcikge1xuICAgICAgaWYgKHRocm93RXhjZXB0aW9uKSB7XG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKCk7XG4gICAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKGUsICdObyBwYWdpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yICcgKyBvcGVyYXRpb24pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhZ2luYXRvcjtcbiAgfVxufSk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuU2VydmljZSwge1xuXG4gIC8qKlxuICAgKiBBZGRzIG9uZSBtZXRob2QgZm9yIGVhY2ggb3BlcmF0aW9uIGRlc2NyaWJlZCBpbiB0aGUgYXBpIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBkZWZpbmVNZXRob2RzOiBmdW5jdGlvbiBkZWZpbmVNZXRob2RzKHN2Yykge1xuICAgIEFXUy51dGlsLmVhY2goc3ZjLnByb3RvdHlwZS5hcGkub3BlcmF0aW9ucywgZnVuY3Rpb24gaXRlcmF0b3IobWV0aG9kKSB7XG4gICAgICBpZiAoc3ZjLnByb3RvdHlwZVttZXRob2RdKSByZXR1cm47XG4gICAgICB2YXIgb3BlcmF0aW9uID0gc3ZjLnByb3RvdHlwZS5hcGkub3BlcmF0aW9uc1ttZXRob2RdO1xuICAgICAgaWYgKG9wZXJhdGlvbi5hdXRodHlwZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgIHN2Yy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubWFrZVVuYXV0aGVudGljYXRlZFJlcXVlc3QobWV0aG9kLCBwYXJhbXMsIGNhbGxiYWNrKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN2Yy5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uIChwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubWFrZVJlcXVlc3QobWV0aG9kLCBwYXJhbXMsIGNhbGxiYWNrKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogRGVmaW5lcyBhIG5ldyBTZXJ2aWNlIGNsYXNzIHVzaW5nIGEgc2VydmljZSBpZGVudGlmaWVyIGFuZCBsaXN0IG9mIHZlcnNpb25zXG4gICAqIGluY2x1ZGluZyBhbiBvcHRpb25hbCBzZXQgb2YgZmVhdHVyZXMgKGZ1bmN0aW9ucykgdG8gYXBwbHkgdG8gdGhlIGNsYXNzXG4gICAqIHByb3RvdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIHNlcnZpY2VJZGVudGlmaWVyIFtTdHJpbmddIHRoZSBpZGVudGlmaWVyIGZvciB0aGUgc2VydmljZVxuICAgKiBAcGFyYW0gdmVyc2lvbnMgW0FycmF5PFN0cmluZz5dIGEgbGlzdCBvZiB2ZXJzaW9ucyB0aGF0IHdvcmsgd2l0aCB0aGlzXG4gICAqICAgc2VydmljZVxuICAgKiBAcGFyYW0gZmVhdHVyZXMgW09iamVjdF0gYW4gb2JqZWN0IHRvIGF0dGFjaCB0byB0aGUgcHJvdG90eXBlXG4gICAqIEByZXR1cm4gW0NsYXNzPFNlcnZpY2U+XSB0aGUgc2VydmljZSBjbGFzcyBkZWZpbmVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gICAqL1xuICBkZWZpbmVTZXJ2aWNlOiBmdW5jdGlvbiBkZWZpbmVTZXJ2aWNlKHNlcnZpY2VJZGVudGlmaWVyLCB2ZXJzaW9ucywgZmVhdHVyZXMpIHtcbiAgICBBV1MuU2VydmljZS5fc2VydmljZU1hcFtzZXJ2aWNlSWRlbnRpZmllcl0gPSB0cnVlO1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2ZXJzaW9ucykpIHtcbiAgICAgIGZlYXR1cmVzID0gdmVyc2lvbnM7XG4gICAgICB2ZXJzaW9ucyA9IFtdO1xuICAgIH1cblxuICAgIHZhciBzdmMgPSBpbmhlcml0KEFXUy5TZXJ2aWNlLCBmZWF0dXJlcyB8fCB7fSk7XG5cbiAgICBpZiAodHlwZW9mIHNlcnZpY2VJZGVudGlmaWVyID09PSAnc3RyaW5nJykge1xuICAgICAgQVdTLlNlcnZpY2UuYWRkVmVyc2lvbnMoc3ZjLCB2ZXJzaW9ucyk7XG5cbiAgICAgIHZhciBpZGVudGlmaWVyID0gc3ZjLnNlcnZpY2VJZGVudGlmaWVyIHx8IHNlcnZpY2VJZGVudGlmaWVyO1xuICAgICAgc3ZjLnNlcnZpY2VJZGVudGlmaWVyID0gaWRlbnRpZmllcjtcbiAgICB9IGVsc2UgeyAvLyBkZWZpbmVTZXJ2aWNlIGNhbGxlZCB3aXRoIGFuIEFQSVxuICAgICAgc3ZjLnByb3RvdHlwZS5hcGkgPSBzZXJ2aWNlSWRlbnRpZmllcjtcbiAgICAgIEFXUy5TZXJ2aWNlLmRlZmluZU1ldGhvZHMoc3ZjKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3ZjO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFkZFZlcnNpb25zOiBmdW5jdGlvbiBhZGRWZXJzaW9ucyhzdmMsIHZlcnNpb25zKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZlcnNpb25zKSkgdmVyc2lvbnMgPSBbdmVyc2lvbnNdO1xuXG4gICAgc3ZjLnNlcnZpY2VzID0gc3ZjLnNlcnZpY2VzIHx8IHt9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmVyc2lvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChzdmMuc2VydmljZXNbdmVyc2lvbnNbaV1dID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3ZjLnNlcnZpY2VzW3ZlcnNpb25zW2ldXSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3ZjLmFwaVZlcnNpb25zID0gT2JqZWN0LmtleXMoc3ZjLnNlcnZpY2VzKS5zb3J0KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZGVmaW5lU2VydmljZUFwaTogZnVuY3Rpb24gZGVmaW5lU2VydmljZUFwaShzdXBlcmNsYXNzLCB2ZXJzaW9uLCBhcGlDb25maWcpIHtcbiAgICB2YXIgc3ZjID0gaW5oZXJpdChzdXBlcmNsYXNzLCB7XG4gICAgICBzZXJ2aWNlSWRlbnRpZmllcjogc3VwZXJjbGFzcy5zZXJ2aWNlSWRlbnRpZmllclxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2V0QXBpKGFwaSkge1xuICAgICAgaWYgKGFwaS5pc0FwaSkge1xuICAgICAgICBzdmMucHJvdG90eXBlLmFwaSA9IGFwaTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN2Yy5wcm90b3R5cGUuYXBpID0gbmV3IEFwaShhcGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmVyc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChhcGlDb25maWcpIHtcbiAgICAgICAgc2V0QXBpKGFwaUNvbmZpZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHNldEFwaShBV1MuYXBpTG9hZGVyKHN1cGVyY2xhc3Muc2VydmljZUlkZW50aWZpZXIsIHZlcnNpb24pKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgdGhyb3cgQVdTLnV0aWwuZXJyb3IoZXJyLCB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnQ291bGQgbm90IGZpbmQgQVBJIGNvbmZpZ3VyYXRpb24gJyArXG4gICAgICAgICAgICAgIHN1cGVyY2xhc3Muc2VydmljZUlkZW50aWZpZXIgKyAnLScgKyB2ZXJzaW9uXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN1cGVyY2xhc3Muc2VydmljZXMsIHZlcnNpb24pKSB7XG4gICAgICAgIHN1cGVyY2xhc3MuYXBpVmVyc2lvbnMgPSBzdXBlcmNsYXNzLmFwaVZlcnNpb25zLmNvbmNhdCh2ZXJzaW9uKS5zb3J0KCk7XG4gICAgICB9XG4gICAgICBzdXBlcmNsYXNzLnNlcnZpY2VzW3ZlcnNpb25dID0gc3ZjO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBcGkodmVyc2lvbik7XG4gICAgfVxuXG4gICAgQVdTLlNlcnZpY2UuZGVmaW5lTWV0aG9kcyhzdmMpO1xuICAgIHJldHVybiBzdmM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaGFzU2VydmljZTogZnVuY3Rpb24oaWRlbnRpZmllcikge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQVdTLlNlcnZpY2UuX3NlcnZpY2VNYXAsIGlkZW50aWZpZXIpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIF9zZXJ2aWNlTWFwOiB7fVxufSk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQVdTLlNlcnZpY2U7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xuXG5BV1MudXRpbC51cGRhdGUoQVdTLkFQSUdhdGV3YXkucHJvdG90eXBlLCB7XG4vKipcbiAqIFNldHMgdGhlIEFjY2VwdCBoZWFkZXIgdG8gYXBwbGljYXRpb24vanNvbi5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuICBzZXRBY2NlcHRIZWFkZXI6IGZ1bmN0aW9uIHNldEFjY2VwdEhlYWRlcihyZXEpIHtcbiAgICB2YXIgaHR0cFJlcXVlc3QgPSByZXEuaHR0cFJlcXVlc3Q7XG4gICAgaWYgKCFodHRwUmVxdWVzdC5oZWFkZXJzLkFjY2VwdCkge1xuICAgICAgaHR0cFJlcXVlc3QuaGVhZGVyc1snQWNjZXB0J10gPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldHVwUmVxdWVzdExpc3RlbmVyczogZnVuY3Rpb24gc2V0dXBSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpIHtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdidWlsZCcsIHRoaXMuc2V0QWNjZXB0SGVhZGVyKTtcbiAgICBpZiAocmVxdWVzdC5vcGVyYXRpb24gPT09ICdnZXRFeHBvcnQnKSB7XG4gICAgICB2YXIgcGFyYW1zID0gcmVxdWVzdC5wYXJhbXMgfHwge307XG4gICAgICBpZiAocGFyYW1zLmV4cG9ydFR5cGUgPT09ICdzd2FnZ2VyJykge1xuICAgICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIEFXUy51dGlsLmNvbnZlcnRQYXlsb2FkVG9TdHJpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbi8vIHB1bGwgaW4gQ2xvdWRGcm9udCBzaWduZXJcbnJlcXVpcmUoJy4uL2Nsb3VkZnJvbnQvc2lnbmVyJyk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuQ2xvdWRGcm9udC5wcm90b3R5cGUsIHtcblxuICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KSB7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignZXh0cmFjdERhdGEnLCBBV1MudXRpbC5ob2lzdFBheWxvYWRNZW1iZXIpO1xuICB9XG5cbn0pO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxuQVdTLnV0aWwudXBkYXRlKEFXUy5Db2duaXRvSWRlbnRpdHkucHJvdG90eXBlLCB7XG4gIGdldE9wZW5JZFRva2VuOiBmdW5jdGlvbiBnZXRPcGVuSWRUb2tlbihwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHRoaXMubWFrZVVuYXV0aGVudGljYXRlZFJlcXVlc3QoJ2dldE9wZW5JZFRva2VuJywgcGFyYW1zLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgZ2V0SWQ6IGZ1bmN0aW9uIGdldElkKHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5tYWtlVW5hdXRoZW50aWNhdGVkUmVxdWVzdCgnZ2V0SWQnLCBwYXJhbXMsIGNhbGxiYWNrKTtcbiAgfSxcblxuICBnZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5OiBmdW5jdGlvbiBnZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5KHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5tYWtlVW5hdXRoZW50aWNhdGVkUmVxdWVzdCgnZ2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eScsIHBhcmFtcywgY2FsbGJhY2spO1xuICB9XG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5yZXF1aXJlKCcuLi9keW5hbW9kYi9kb2N1bWVudF9jbGllbnQnKTtcblxuQVdTLnV0aWwudXBkYXRlKEFXUy5EeW5hbW9EQi5wcm90b3R5cGUsIHtcbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0dXBSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBzZXR1cFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCkge1xuICAgIGlmIChyZXF1ZXN0LnNlcnZpY2UuY29uZmlnLmR5bmFtb0RiQ3JjMzIpIHtcbiAgICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgQVdTLkV2ZW50TGlzdGVuZXJzLkpzb24uRVhUUkFDVF9EQVRBKTtcbiAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgdGhpcy5jaGVja0NyYzMyKTtcbiAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgQVdTLkV2ZW50TGlzdGVuZXJzLkpzb24uRVhUUkFDVF9EQVRBKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY2hlY2tDcmMzMjogZnVuY3Rpb24gY2hlY2tDcmMzMihyZXNwKSB7XG4gICAgaWYgKCFyZXNwLmh0dHBSZXNwb25zZS5zdHJlYW1pbmcgJiYgIXJlc3AucmVxdWVzdC5zZXJ2aWNlLmNyYzMySXNWYWxpZChyZXNwKSkge1xuICAgICAgcmVzcC5kYXRhID0gbnVsbDtcbiAgICAgIHJlc3AuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgICBjb2RlOiAnQ1JDMzJDaGVja0ZhaWxlZCcsXG4gICAgICAgIG1lc3NhZ2U6ICdDUkMzMiBpbnRlZ3JpdHkgY2hlY2sgZmFpbGVkJyxcbiAgICAgICAgcmV0cnlhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJlc3AucmVxdWVzdC5oYWx0SGFuZGxlcnNPbkVycm9yKCk7XG4gICAgICB0aHJvdyAocmVzcC5lcnJvcik7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNyYzMySXNWYWxpZDogZnVuY3Rpb24gY3JjMzJJc1ZhbGlkKHJlc3ApIHtcbiAgICB2YXIgY3JjID0gcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVyc1sneC1hbXotY3JjMzInXTtcbiAgICBpZiAoIWNyYykgcmV0dXJuIHRydWU7IC8vIG5vICh2YWxpZCkgQ1JDMzIgaGVhZGVyXG4gICAgcmV0dXJuIHBhcnNlSW50KGNyYywgMTApID09PSBBV1MudXRpbC5jcnlwdG8uY3JjMzIocmVzcC5odHRwUmVzcG9uc2UuYm9keSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZGVmYXVsdFJldHJ5Q291bnQ6IDEwLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJldHJ5RGVsYXlzOiBmdW5jdGlvbiByZXRyeURlbGF5cyhyZXRyeUNvdW50KSB7XG4gICAgdmFyIHJldHJ5RGVsYXlPcHRpb25zID0gQVdTLnV0aWwuY29weSh0aGlzLmNvbmZpZy5yZXRyeURlbGF5T3B0aW9ucyk7XG5cbiAgICBpZiAodHlwZW9mIHJldHJ5RGVsYXlPcHRpb25zLmJhc2UgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHJ5RGVsYXlPcHRpb25zLmJhc2UgPSA1MDsgLy8gZGVmYXVsdCBmb3IgZHluYW1vZGJcbiAgICB9XG4gICAgdmFyIGRlbGF5ID0gQVdTLnV0aWwuY2FsY3VsYXRlUmV0cnlEZWxheShyZXRyeUNvdW50LCByZXRyeURlbGF5T3B0aW9ucyk7XG4gICAgcmV0dXJuIGRlbGF5O1xuICB9XG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuRUMyLnByb3RvdHlwZSwge1xuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KSB7XG4gICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcignZXh0cmFjdEVycm9yJywgQVdTLkV2ZW50TGlzdGVuZXJzLlF1ZXJ5LkVYVFJBQ1RfRVJST1IpO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3RFcnJvcicsIHRoaXMuZXh0cmFjdEVycm9yKTtcblxuICAgIGlmIChyZXF1ZXN0Lm9wZXJhdGlvbiA9PT0gJ2NvcHlTbmFwc2hvdCcpIHtcbiAgICAgIHJlcXVlc3Qub25Bc3luYygndmFsaWRhdGUnLCB0aGlzLmJ1aWxkQ29weVNuYXBzaG90UHJlc2lnbmVkVXJsKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYnVpbGRDb3B5U25hcHNob3RQcmVzaWduZWRVcmw6IGZ1bmN0aW9uIGJ1aWxkQ29weVNuYXBzaG90UHJlc2lnbmVkVXJsKHJlcSwgZG9uZSkge1xuICAgIGlmIChyZXEucGFyYW1zLlByZXNpZ25lZFVybCB8fCByZXEuX3N1YlJlcXVlc3QpIHtcbiAgICAgIHJldHVybiBkb25lKCk7XG4gICAgfVxuXG4gICAgcmVxLnBhcmFtcyA9IEFXUy51dGlsLmNvcHkocmVxLnBhcmFtcyk7XG4gICAgcmVxLnBhcmFtcy5EZXN0aW5hdGlvblJlZ2lvbiA9IHJlcS5zZXJ2aWNlLmNvbmZpZy5yZWdpb247XG5cbiAgICB2YXIgY29uZmlnID0gQVdTLnV0aWwuY29weShyZXEuc2VydmljZS5jb25maWcpO1xuICAgIGRlbGV0ZSBjb25maWcuZW5kcG9pbnQ7XG4gICAgY29uZmlnLnJlZ2lvbiA9IHJlcS5wYXJhbXMuU291cmNlUmVnaW9uO1xuICAgIHZhciBzdmMgPSBuZXcgcmVxLnNlcnZpY2UuY29uc3RydWN0b3IoY29uZmlnKTtcbiAgICB2YXIgbmV3UmVxID0gc3ZjW3JlcS5vcGVyYXRpb25dKHJlcS5wYXJhbXMpO1xuICAgIG5ld1JlcS5fc3ViUmVxdWVzdCA9IHRydWU7XG4gICAgbmV3UmVxLnByZXNpZ24oZnVuY3Rpb24oZXJyLCB1cmwpIHtcbiAgICAgIGlmIChlcnIpIGRvbmUoZXJyKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICByZXEucGFyYW1zLlByZXNpZ25lZFVybCA9IHVybDtcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGV4dHJhY3RFcnJvcjogZnVuY3Rpb24gZXh0cmFjdEVycm9yKHJlc3ApIHtcbiAgICAvLyBFQzIgbmVzdHMgdGhlIGVycm9yIGNvZGUgYW5kIG1lc3NhZ2UgZGVlcGVyIHRoYW4gb3RoZXIgQVdTIFF1ZXJ5IHNlcnZpY2VzLlxuICAgIHZhciBodHRwUmVzcG9uc2UgPSByZXNwLmh0dHBSZXNwb25zZTtcbiAgICB2YXIgZGF0YSA9IG5ldyBBV1MuWE1MLlBhcnNlcigpLnBhcnNlKGh0dHBSZXNwb25zZS5ib2R5LnRvU3RyaW5nKCkgfHwgJycpO1xuICAgIGlmIChkYXRhLkVycm9ycykge1xuICAgICAgcmVzcC5lcnJvciA9IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICAgIGNvZGU6IGRhdGEuRXJyb3JzLkVycm9yLkNvZGUsXG4gICAgICAgIG1lc3NhZ2U6IGRhdGEuRXJyb3JzLkVycm9yLk1lc3NhZ2VcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwLmVycm9yID0gQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgICAgY29kZTogaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgICAgIG1lc3NhZ2U6IG51bGxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXNwLmVycm9yLnJlcXVlc3RJZCA9IGRhdGEuUmVxdWVzdElEIHx8IG51bGw7XG4gIH1cbn0pO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIGJsb2JQYXlsb2FkT3V0cHV0T3BzID0gW1xuICAnZGVsZXRlVGhpbmdTaGFkb3cnLFxuICAnZ2V0VGhpbmdTaGFkb3cnLFxuICAndXBkYXRlVGhpbmdTaGFkb3cnXG5dO1xuXG4vKipcbiAqIENvbnN0cnVjdHMgYSBzZXJ2aWNlIGludGVyZmFjZSBvYmplY3QuIEVhY2ggQVBJIG9wZXJhdGlvbiBpcyBleHBvc2VkIGFzIGFcbiAqIGZ1bmN0aW9uIG9uIHNlcnZpY2UuXG4gKlxuICogIyMjIFNlbmRpbmcgYSBSZXF1ZXN0IFVzaW5nIElvdERhdGFcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiB2YXIgaW90ZGF0YSA9IG5ldyBBV1MuSW90RGF0YSh7ZW5kcG9pbnQ6ICdteS5ob3N0LnRsZCd9KTtcbiAqIGlvdGRhdGEuZ2V0VGhpbmdTaGFkb3cocGFyYW1zLCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gKiAgIGlmIChlcnIpIGNvbnNvbGUubG9nKGVyciwgZXJyLnN0YWNrKTsgLy8gYW4gZXJyb3Igb2NjdXJyZWRcbiAqICAgZWxzZSAgICAgY29uc29sZS5sb2coZGF0YSk7ICAgICAgICAgICAvLyBzdWNjZXNzZnVsIHJlc3BvbnNlXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICMjIyBMb2NraW5nIHRoZSBBUEkgVmVyc2lvblxuICpcbiAqIEluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBJb3REYXRhIG9iamVjdCB1c2VzIHRoaXMgc3BlY2lmaWMgQVBJLFxuICogeW91IGNhbiBjb25zdHJ1Y3QgdGhlIG9iamVjdCBieSBwYXNzaW5nIHRoZSBgYXBpVmVyc2lvbmAgb3B0aW9uIHRvIHRoZVxuICogY29uc3RydWN0b3I6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogdmFyIGlvdGRhdGEgPSBuZXcgQVdTLklvdERhdGEoe1xuICogICBlbmRwb2ludDogJ215Lmhvc3QudGxkJyxcbiAqICAgYXBpVmVyc2lvbjogJzIwMTUtMDUtMjgnXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIFlvdSBjYW4gYWxzbyBzZXQgdGhlIEFQSSB2ZXJzaW9uIGdsb2JhbGx5IGluIGBBV1MuY29uZmlnLmFwaVZlcnNpb25zYCB1c2luZ1xuICogdGhlICoqaW90ZGF0YSoqIHNlcnZpY2UgaWRlbnRpZmllcjpcbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiBBV1MuY29uZmlnLmFwaVZlcnNpb25zID0ge1xuICogICBpb3RkYXRhOiAnMjAxNS0wNS0yOCcsXG4gKiAgIC8vIG90aGVyIHNlcnZpY2UgQVBJIHZlcnNpb25zXG4gKiB9O1xuICpcbiAqIHZhciBpb3RkYXRhID0gbmV3IEFXUy5Jb3REYXRhKHtlbmRwb2ludDogJ215Lmhvc3QudGxkJ30pO1xuICogYGBgXG4gKlxuICogQG5vdGUgWW91ICptdXN0KiBwcm92aWRlIGFuIGBlbmRwb2ludGAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgd2hlblxuICogICBjb25zdHJ1Y3RpbmcgdGhpcyBzZXJ2aWNlLiBTZWUge2NvbnN0cnVjdG9yfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAIW1ldGhvZCBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pXG4gKiAgIENvbnN0cnVjdHMgYSBzZXJ2aWNlIG9iamVjdC4gVGhpcyBvYmplY3QgaGFzIG9uZSBtZXRob2QgZm9yIGVhY2hcbiAqICAgQVBJIG9wZXJhdGlvbi5cbiAqXG4gKiAgIEBleGFtcGxlIENvbnN0cnVjdGluZyBhIElvdERhdGEgb2JqZWN0XG4gKiAgICAgdmFyIGlvdGRhdGEgPSBuZXcgQVdTLklvdERhdGEoe2VuZHBvaW50OiAnbXkuaG9zdC50bGQnfSk7XG4gKiAgIEBub3RlIFlvdSAqbXVzdCogcHJvdmlkZSBhbiBgZW5kcG9pbnRgIHdoZW4gY29uc3RydWN0aW5nIHRoaXMgc2VydmljZS5cbiAqICAgQG9wdGlvbiAoc2VlIEFXUy5Db25maWcuY29uc3RydWN0b3IpXG4gKlxuICogQHNlcnZpY2UgaW90ZGF0YVxuICogQHZlcnNpb24gMjAxNS0wNS0yOFxuICovXG5BV1MudXRpbC51cGRhdGUoQVdTLklvdERhdGEucHJvdG90eXBlLCB7XG4gICAgLyoqXG4gICAgICogQGFwaSBwcml2YXRlXG4gICAgICovXG4gICAgdmFsaWRhdGVTZXJ2aWNlOiBmdW5jdGlvbiB2YWxpZGF0ZVNlcnZpY2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcuZW5kcG9pbnQgfHwgdGhpcy5jb25maWcuZW5kcG9pbnQuaW5kZXhPZigneycpID49IDApIHtcbiAgICAgICAgICAgIHZhciBtc2cgPSAnQVdTLklvdERhdGEgcmVxdWlyZXMgYW4gZXhwbGljaXQgJyArXG4gICAgICAgICAgICAgICAgJ2BlbmRwb2ludFxcJyBjb25maWd1cmF0aW9uIG9wdGlvbi4nO1xuICAgICAgICAgICAgdGhyb3cgQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksXG4gICAgICAgICAgICAgICAge25hbWU6ICdJbnZhbGlkRW5kcG9pbnQnLCBtZXNzYWdlOiBtc2d9KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAYXBpIHByaXZhdGVcbiAgICAgKi9cbiAgICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KSB7XG4gICAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ3ZhbGlkYXRlUmVzcG9uc2UnLCB0aGlzLnZhbGlkYXRlUmVzcG9uc2VCb2R5KTtcbiAgICAgICAgaWYgKGJsb2JQYXlsb2FkT3V0cHV0T3BzLmluZGV4T2YocmVxdWVzdC5vcGVyYXRpb24pID4gLTEpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgQVdTLnV0aWwuY29udmVydFBheWxvYWRUb1N0cmluZyk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQGFwaSBwcml2YXRlXG4gICAgICovXG4gICAgdmFsaWRhdGVSZXNwb25zZUJvZHk6IGZ1bmN0aW9uIHZhbGlkYXRlUmVzcG9uc2VCb2R5KHJlc3ApIHtcbiAgICAgICAgdmFyIGJvZHkgPSByZXNwLmh0dHBSZXNwb25zZS5ib2R5LnRvU3RyaW5nKCkgfHwgJ3t9JztcbiAgICAgICAgdmFyIGJvZHlDaGVjayA9IGJvZHkudHJpbSgpO1xuICAgICAgICBpZiAoIWJvZHlDaGVjayB8fCBib2R5Q2hlY2suY2hhckF0KDApICE9PSAneycpIHtcbiAgICAgICAgICAgIHJlc3AuaHR0cFJlc3BvbnNlLmJvZHkgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xuXG5BV1MudXRpbC51cGRhdGUoQVdTLkxhbWJkYS5wcm90b3R5cGUsIHtcbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2V0dXBSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBzZXR1cFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCkge1xuICAgIGlmIChyZXF1ZXN0Lm9wZXJhdGlvbiA9PT0gJ2ludm9rZScpIHtcbiAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgQVdTLnV0aWwuY29udmVydFBheWxvYWRUb1N0cmluZyk7XG4gICAgfVxuICB9XG59KTtcblxuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxuQVdTLnV0aWwudXBkYXRlKEFXUy5NYWNoaW5lTGVhcm5pbmcucHJvdG90eXBlLCB7XG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldHVwUmVxdWVzdExpc3RlbmVyczogZnVuY3Rpb24gc2V0dXBSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpIHtcbiAgICBpZiAocmVxdWVzdC5vcGVyYXRpb24gPT09ICdwcmVkaWN0Jykge1xuICAgICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYnVpbGQnLCB0aGlzLmJ1aWxkRW5kcG9pbnQpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlcyByZXF1ZXN0IGVuZHBvaW50IGZyb20gUHJlZGljdEVuZHBvaW50XG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgYnVpbGRFbmRwb2ludDogZnVuY3Rpb24gYnVpbGRFbmRwb2ludChyZXF1ZXN0KSB7XG4gICAgdmFyIHVybCA9IHJlcXVlc3QucGFyYW1zLlByZWRpY3RFbmRwb2ludDtcbiAgICBpZiAodXJsKSB7XG4gICAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmVuZHBvaW50ID0gbmV3IEFXUy5FbmRwb2ludCh1cmwpO1xuICAgIH1cbiAgfVxuXG59KTtcbiIsInJlcXVpcmUoJy4uL3BvbGx5L3ByZXNpZ25lcicpOyIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5yZXF1aXJlKCcuLi9yZHMvc2lnbmVyJyk7XG4gLyoqXG4gICogQGFwaSBwcml2YXRlXG4gICovXG4gdmFyIGNyb3NzUmVnaW9uT3BlcmF0aW9ucyA9IFsnY29weURCU25hcHNob3QnLCAnY3JlYXRlREJJbnN0YW5jZVJlYWRSZXBsaWNhJywgJ2NyZWF0ZURCQ2x1c3RlcicsICdjb3B5REJDbHVzdGVyU25hcHNob3QnXTtcblxuIEFXUy51dGlsLnVwZGF0ZShBV1MuUkRTLnByb3RvdHlwZSwge1xuICAgLyoqXG4gICAgKiBAYXBpIHByaXZhdGVcbiAgICAqL1xuICAgc2V0dXBSZXF1ZXN0TGlzdGVuZXJzOiBmdW5jdGlvbiBzZXR1cFJlcXVlc3RMaXN0ZW5lcnMocmVxdWVzdCkge1xuICAgICBpZiAoY3Jvc3NSZWdpb25PcGVyYXRpb25zLmluZGV4T2YocmVxdWVzdC5vcGVyYXRpb24pICE9PSAtMSAmJlxuICAgICAgICAgcmVxdWVzdC5wYXJhbXMuU291cmNlUmVnaW9uKSB7XG4gICAgICAgcmVxdWVzdC5wYXJhbXMgPSBBV1MudXRpbC5jb3B5KHJlcXVlc3QucGFyYW1zKTtcbiAgICAgICBpZiAocmVxdWVzdC5wYXJhbXMuUHJlU2lnbmVkVXJsIHx8XG4gICAgICAgICAgIHJlcXVlc3QucGFyYW1zLlNvdXJjZVJlZ2lvbiA9PT0gdGhpcy5jb25maWcucmVnaW9uKSB7XG4gICAgICAgICBkZWxldGUgcmVxdWVzdC5wYXJhbXMuU291cmNlUmVnaW9uO1xuICAgICAgIH0gZWxzZSB7XG4gICAgICAgICB2YXIgZG9lc1BhcmFtVmFsaWRhdGlvbiA9ICEhdGhpcy5jb25maWcucGFyYW1WYWxpZGF0aW9uO1xuICAgICAgICAgLy8gcmVtb3ZlIHRoZSB2YWxpZGF0ZSBwYXJhbWV0ZXJzIGxpc3RlbmVyIHNvIHdlIGNhbiByZS1hZGQgaXQgYWZ0ZXIgd2UgYnVpbGQgdGhlIFVSTFxuICAgICAgICAgaWYgKGRvZXNQYXJhbVZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcigndmFsaWRhdGUnLCBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9QQVJBTUVURVJTKTtcbiAgICAgICAgIH1cbiAgICAgICAgIHJlcXVlc3Qub25Bc3luYygndmFsaWRhdGUnLCB0aGlzLmJ1aWxkQ3Jvc3NSZWdpb25QcmVzaWduZWRVcmwpO1xuICAgICAgICAgaWYgKGRvZXNQYXJhbVZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgcmVxdWVzdC5hZGRMaXN0ZW5lcigndmFsaWRhdGUnLCBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5WQUxJREFURV9QQVJBTUVURVJTKTtcbiAgICAgICAgIH1cbiAgICAgICB9XG4gICAgIH1cbiAgIH0sXG5cbiAgIC8qKlxuICAgICogQGFwaSBwcml2YXRlXG4gICAgKi9cbiAgIGJ1aWxkQ3Jvc3NSZWdpb25QcmVzaWduZWRVcmw6IGZ1bmN0aW9uIGJ1aWxkQ3Jvc3NSZWdpb25QcmVzaWduZWRVcmwocmVxLCBkb25lKSB7XG4gICAgIHZhciBjb25maWcgPSBBV1MudXRpbC5jb3B5KHJlcS5zZXJ2aWNlLmNvbmZpZyk7XG4gICAgIGNvbmZpZy5yZWdpb24gPSByZXEucGFyYW1zLlNvdXJjZVJlZ2lvbjtcbiAgICAgZGVsZXRlIHJlcS5wYXJhbXMuU291cmNlUmVnaW9uO1xuICAgICBkZWxldGUgY29uZmlnLmVuZHBvaW50O1xuICAgICAvLyByZWxldmFudCBwYXJhbXMgZm9yIHRoZSBvcGVyYXRpb24gd2lsbCBhbHJlYWR5IGJlIGluIHJlcS5wYXJhbXNcbiAgICAgZGVsZXRlIGNvbmZpZy5wYXJhbXM7XG4gICAgIGNvbmZpZy5zaWduYXR1cmVWZXJzaW9uID0gJ3Y0JztcbiAgICAgdmFyIGRlc3RpbmF0aW9uUmVnaW9uID0gcmVxLnNlcnZpY2UuY29uZmlnLnJlZ2lvbjtcblxuICAgICB2YXIgc3ZjID0gbmV3IHJlcS5zZXJ2aWNlLmNvbnN0cnVjdG9yKGNvbmZpZyk7XG4gICAgIHZhciBuZXdSZXEgPSBzdmNbcmVxLm9wZXJhdGlvbl0oQVdTLnV0aWwuY29weShyZXEucGFyYW1zKSk7XG4gICAgIG5ld1JlcS5vbignYnVpbGQnLCBmdW5jdGlvbiBhZGREZXN0aW5hdGlvblJlZ2lvblBhcmFtKHJlcXVlc3QpIHtcbiAgICAgICB2YXIgaHR0cFJlcXVlc3QgPSByZXF1ZXN0Lmh0dHBSZXF1ZXN0O1xuICAgICAgIGh0dHBSZXF1ZXN0LnBhcmFtcy5EZXN0aW5hdGlvblJlZ2lvbiA9IGRlc3RpbmF0aW9uUmVnaW9uO1xuICAgICAgIGh0dHBSZXF1ZXN0LmJvZHkgPSBBV1MudXRpbC5xdWVyeVBhcmFtc1RvU3RyaW5nKGh0dHBSZXF1ZXN0LnBhcmFtcyk7XG4gICAgIH0pO1xuICAgICBuZXdSZXEucHJlc2lnbihmdW5jdGlvbihlcnIsIHVybCkge1xuICAgICAgIGlmIChlcnIpIGRvbmUoZXJyKTtcbiAgICAgICBlbHNlIHtcbiAgICAgICAgIHJlcS5wYXJhbXMuUHJlU2lnbmVkVXJsID0gdXJsO1xuICAgICAgICAgZG9uZSgpO1xuICAgICAgIH1cbiAgICAgfSk7XG4gICB9XG4gfSk7IiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxuQVdTLnV0aWwudXBkYXRlKEFXUy5Sb3V0ZTUzLnByb3RvdHlwZSwge1xuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzZXR1cFJlcXVlc3RMaXN0ZW5lcnM6IGZ1bmN0aW9uIHNldHVwUmVxdWVzdExpc3RlbmVycyhyZXF1ZXN0KSB7XG4gICAgcmVxdWVzdC5vbignYnVpbGQnLCB0aGlzLnNhbml0aXplVXJsKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzYW5pdGl6ZVVybDogZnVuY3Rpb24gc2FuaXRpemVVcmwocmVxdWVzdCkge1xuICAgIHZhciBwYXRoID0gcmVxdWVzdC5odHRwUmVxdWVzdC5wYXRoO1xuICAgIHJlcXVlc3QuaHR0cFJlcXVlc3QucGF0aCA9IHBhdGgucmVwbGFjZSgvXFwvJTJGXFx3KyUyRi8sICcvJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgdGhlIGVycm9yIGNhbiBiZSByZXRyaWVkXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcmV0cnlhYmxlRXJyb3I6IGZ1bmN0aW9uIHJldHJ5YWJsZUVycm9yKGVycm9yKSB7XG4gICAgaWYgKGVycm9yLmNvZGUgPT09ICdQcmlvclJlcXVlc3ROb3RDb21wbGV0ZScgJiZcbiAgICAgICAgZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIF9zdXBlciA9IEFXUy5TZXJ2aWNlLnByb3RvdHlwZS5yZXRyeWFibGVFcnJvcjtcbiAgICAgIHJldHVybiBfc3VwZXIuY2FsbCh0aGlzLCBlcnJvcik7XG4gICAgfVxuICB9XG59KTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgdjRDcmVkZW50aWFscyA9IHJlcXVpcmUoJy4uL3NpZ25lcnMvdjRfY3JlZGVudGlhbHMnKTtcblxuLy8gUHVsbCBpbiBtYW5hZ2VkIHVwbG9hZCBleHRlbnNpb25cbnJlcXVpcmUoJy4uL3MzL21hbmFnZWRfdXBsb2FkJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBvcGVyYXRpb25zV2l0aDIwMFN0YXR1c0NvZGVFcnJvciA9IHtcbiAgJ2NvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkJzogdHJ1ZSxcbiAgJ2NvcHlPYmplY3QnOiB0cnVlLFxuICAndXBsb2FkUGFydENvcHknOiB0cnVlXG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG4gdmFyIHJlZ2lvblJlZGlyZWN0RXJyb3JDb2RlcyA9IFtcbiAgJ0F1dGhvcml6YXRpb25IZWFkZXJNYWxmb3JtZWQnLCAvLyBub24taGVhZCBvcGVyYXRpb25zIG9uIHZpcnR1YWwtaG9zdGVkIGdsb2JhbCBidWNrZXQgZW5kcG9pbnRzXG4gICdCYWRSZXF1ZXN0JywgLy8gaGVhZCBvcGVyYXRpb25zIG9uIHZpcnR1YWwtaG9zdGVkIGdsb2JhbCBidWNrZXQgZW5kcG9pbnRzXG4gICdQZXJtYW5lbnRSZWRpcmVjdCcsIC8vIG5vbi1oZWFkIG9wZXJhdGlvbnMgb24gcGF0aC1zdHlsZSBvciByZWdpb25hbCBlbmRwb2ludHNcbiAgMzAxIC8vIGhlYWQgb3BlcmF0aW9ucyBvbiBwYXRoLXN0eWxlIG9yIHJlZ2lvbmFsIGVuZHBvaW50c1xuIF07XG5cbkFXUy51dGlsLnVwZGF0ZShBV1MuUzMucHJvdG90eXBlLCB7XG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGdldFNpZ25hdHVyZVZlcnNpb246IGZ1bmN0aW9uIGdldFNpZ25hdHVyZVZlcnNpb24ocmVxdWVzdCkge1xuICAgIHZhciBkZWZhdWx0QXBpVmVyc2lvbiA9IHRoaXMuYXBpLnNpZ25hdHVyZVZlcnNpb247XG4gICAgdmFyIHVzZXJEZWZpbmVkVmVyc2lvbiA9IHRoaXMuX29yaWdpbmFsQ29uZmlnID8gdGhpcy5fb3JpZ2luYWxDb25maWcuc2lnbmF0dXJlVmVyc2lvbiA6IG51bGw7XG4gICAgdmFyIHJlZ2lvbkRlZmluZWRWZXJzaW9uID0gdGhpcy5jb25maWcuc2lnbmF0dXJlVmVyc2lvbjtcbiAgICB2YXIgaXNQcmVzaWduZWQgPSByZXF1ZXN0ID8gcmVxdWVzdC5pc1ByZXNpZ25lZCgpIDogZmFsc2U7XG4gICAgLypcbiAgICAgIDEpIFVzZXIgZGVmaW5lZCB2ZXJzaW9uIHNwZWNpZmllZDpcbiAgICAgICAgYSkgYWx3YXlzIHJldHVybiB1c2VyIGRlZmluZWQgdmVyc2lvblxuICAgICAgMikgTm8gdXNlciBkZWZpbmVkIHZlcnNpb24gc3BlY2lmaWVkOlxuICAgICAgICBhKSBkZWZhdWx0IHRvIGxvd2VzdCB2ZXJzaW9uIHRoZSByZWdpb24gc3VwcG9ydHNcbiAgICAgICAgYikgSWYgdXNpbmcgcHJlc2lnbmVkIHVybHMsIGRlZmF1bHQgdG8gbG93ZXN0IHZlcnNpb24gdGhlIHJlZ2lvbiBzdXBwb3J0c1xuICAgICovXG4gICAgaWYgKHVzZXJEZWZpbmVkVmVyc2lvbikge1xuICAgICAgdXNlckRlZmluZWRWZXJzaW9uID0gdXNlckRlZmluZWRWZXJzaW9uID09PSAndjInID8gJ3MzJyA6IHVzZXJEZWZpbmVkVmVyc2lvbjtcbiAgICAgIHJldHVybiB1c2VyRGVmaW5lZFZlcnNpb247XG4gICAgfVxuICAgIGlmIChpc1ByZXNpZ25lZCAhPT0gdHJ1ZSkge1xuICAgICAgZGVmYXVsdEFwaVZlcnNpb24gPSAndjQnO1xuICAgIH0gZWxzZSBpZiAocmVnaW9uRGVmaW5lZFZlcnNpb24pIHtcbiAgICAgIGRlZmF1bHRBcGlWZXJzaW9uID0gcmVnaW9uRGVmaW5lZFZlcnNpb247XG4gICAgfVxuICAgIHJldHVybiBkZWZhdWx0QXBpVmVyc2lvbjtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBnZXRTaWduZXJDbGFzczogZnVuY3Rpb24gZ2V0U2lnbmVyQ2xhc3MocmVxdWVzdCkge1xuICAgIHZhciBzaWduYXR1cmVWZXJzaW9uID0gdGhpcy5nZXRTaWduYXR1cmVWZXJzaW9uKHJlcXVlc3QpO1xuICAgIHJldHVybiBBV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyLmdldFZlcnNpb24oc2lnbmF0dXJlVmVyc2lvbik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdmFsaWRhdGVTZXJ2aWNlOiBmdW5jdGlvbiB2YWxpZGF0ZVNlcnZpY2UoKSB7XG4gICAgdmFyIG1zZztcbiAgICB2YXIgbWVzc2FnZXMgPSBbXTtcblxuICAgIC8vIGRlZmF1bHQgdG8gdXMtZWFzdC0xIHdoZW4gbm8gcmVnaW9uIGlzIHByb3ZpZGVkXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5yZWdpb24pIHRoaXMuY29uZmlnLnJlZ2lvbiA9ICd1cy1lYXN0LTEnO1xuXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5lbmRwb2ludCAmJiB0aGlzLmNvbmZpZy5zM0J1Y2tldEVuZHBvaW50KSB7XG4gICAgICBtZXNzYWdlcy5wdXNoKCdBbiBlbmRwb2ludCBtdXN0IGJlIHByb3ZpZGVkIHdoZW4gY29uZmlndXJpbmcgJyArXG4gICAgICAgICAgICAgICAgICAgICdgczNCdWNrZXRFbmRwb2ludGAgdG8gdHJ1ZS4nKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgbXNnID0gbWVzc2FnZXNbMF07XG4gICAgfSBlbHNlIGlmIChtZXNzYWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICBtc2cgPSAnTXVsdGlwbGUgY29uZmlndXJhdGlvbiBlcnJvcnM6XFxuJyArIG1lc3NhZ2VzLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgICBpZiAobXNnKSB7XG4gICAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSxcbiAgICAgICAge25hbWU6ICdJbnZhbGlkRW5kcG9pbnQnLCBtZXNzYWdlOiBtc2d9KTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2hvdWxkRGlzYWJsZUJvZHlTaWduaW5nOiBmdW5jdGlvbiBzaG91bGREaXNhYmxlQm9keVNpZ25pbmcocmVxdWVzdCkge1xuICAgIHZhciBzaWduZXJDbGFzcyA9IHRoaXMuZ2V0U2lnbmVyQ2xhc3MoKTtcbiAgICBpZiAodGhpcy5jb25maWcuczNEaXNhYmxlQm9keVNpZ25pbmcgPT09IHRydWUgJiYgc2lnbmVyQ2xhc3MgPT09IEFXUy5TaWduZXJzLlY0XG4gICAgICAgICYmIHJlcXVlc3QuaHR0cFJlcXVlc3QuZW5kcG9pbnQucHJvdG9jb2wgPT09ICdodHRwczonKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldHVwUmVxdWVzdExpc3RlbmVyczogZnVuY3Rpb24gc2V0dXBSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpIHtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCd2YWxpZGF0ZScsIHRoaXMudmFsaWRhdGVTY2hlbWUpO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ3ZhbGlkYXRlJywgdGhpcy52YWxpZGF0ZUJ1Y2tldEVuZHBvaW50KTtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCd2YWxpZGF0ZScsIHRoaXMuY29ycmVjdEJ1Y2tldFJlZ2lvbkZyb21DYWNoZSk7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcigndmFsaWRhdGUnLCB0aGlzLnZhbGlkYXRlQnVja2V0TmFtZSk7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYnVpbGQnLCB0aGlzLmFkZENvbnRlbnRUeXBlKTtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdidWlsZCcsIHRoaXMucG9wdWxhdGVVUkkpO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2J1aWxkJywgdGhpcy5jb21wdXRlQ29udGVudE1kNSk7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYnVpbGQnLCB0aGlzLmNvbXB1dGVTc2VDdXN0b21lcktleU1kNSk7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYWZ0ZXJCdWlsZCcsIHRoaXMuYWRkRXhwZWN0MTAwQ29udGludWUpO1xuICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ3ZhbGlkYXRlJyxcbiAgICAgIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlZBTElEQVRFX1JFR0lPTik7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignZXh0cmFjdEVycm9yJywgdGhpcy5leHRyYWN0RXJyb3IpO1xuICAgIHJlcXVlc3Qub25Bc3luYygnZXh0cmFjdEVycm9yJywgdGhpcy5yZXF1ZXN0QnVja2V0UmVnaW9uKTtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIHRoaXMuZXh0cmFjdERhdGEpO1xuICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgQVdTLnV0aWwuaG9pc3RQYXlsb2FkTWVtYmVyKTtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdiZWZvcmVQcmVzaWduJywgdGhpcy5wcmVwYXJlU2lnbmVkVXJsKTtcbiAgICBpZiAoQVdTLnV0aWwuaXNCcm93c2VyKCkpIHtcbiAgICAgIHJlcXVlc3Qub25Bc3luYygncmV0cnknLCB0aGlzLnJlcVJlZ2lvbkZvck5ldHdvcmtpbmdFcnJvcik7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3VsZERpc2FibGVCb2R5U2lnbmluZyhyZXF1ZXN0KSkgIHtcbiAgICAgIHJlcXVlc3QucmVtb3ZlTGlzdGVuZXIoJ2FmdGVyQnVpbGQnLCBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5DT01QVVRFX1NIQTI1Nik7XG4gICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdhZnRlckJ1aWxkJywgdGhpcy5kaXNhYmxlQm9keVNpZ25pbmcpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB2YWxpZGF0ZVNjaGVtZTogZnVuY3Rpb24ocmVxKSB7XG4gICAgdmFyIHBhcmFtcyA9IHJlcS5wYXJhbXMsXG4gICAgICAgIHNjaGVtZSA9IHJlcS5odHRwUmVxdWVzdC5lbmRwb2ludC5wcm90b2NvbCxcbiAgICAgICAgc2Vuc2l0aXZlID0gcGFyYW1zLlNTRUN1c3RvbWVyS2V5IHx8IHBhcmFtcy5Db3B5U291cmNlU1NFQ3VzdG9tZXJLZXk7XG4gICAgaWYgKHNlbnNpdGl2ZSAmJiBzY2hlbWUgIT09ICdodHRwczonKSB7XG4gICAgICB2YXIgbXNnID0gJ0Nhbm5vdCBzZW5kIFNTRSBrZXlzIG92ZXIgSFRUUC4gU2V0IFxcJ3NzbEVuYWJsZWRcXCcnICtcbiAgICAgICAgJ3RvIFxcJ3RydWVcXCcgaW4geW91ciBjb25maWd1cmF0aW9uJztcbiAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLFxuICAgICAgICB7IGNvZGU6ICdDb25maWdFcnJvcicsIG1lc3NhZ2U6IG1zZyB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdmFsaWRhdGVCdWNrZXRFbmRwb2ludDogZnVuY3Rpb24ocmVxKSB7XG4gICAgaWYgKCFyZXEucGFyYW1zLkJ1Y2tldCAmJiByZXEuc2VydmljZS5jb25maWcuczNCdWNrZXRFbmRwb2ludCkge1xuICAgICAgdmFyIG1zZyA9ICdDYW5ub3Qgc2VuZCByZXF1ZXN0cyB0byByb290IEFQSSB3aXRoIGBzM0J1Y2tldEVuZHBvaW50YCBzZXQuJztcbiAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLFxuICAgICAgICB7IGNvZGU6ICdDb25maWdFcnJvcicsIG1lc3NhZ2U6IG1zZyB9KTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdmFsaWRhdGVCdWNrZXROYW1lOiBmdW5jdGlvbiB2YWxpZGF0ZUJ1Y2tldE5hbWUocmVxKSB7XG4gICAgdmFyIHNlcnZpY2UgPSByZXEuc2VydmljZTtcbiAgICB2YXIgc2lnbmF0dXJlVmVyc2lvbiA9IHNlcnZpY2UuZ2V0U2lnbmF0dXJlVmVyc2lvbihyZXEpO1xuICAgIC8vIE9ubHkgdmFsaWRhdGUgYnVja2V0cyB3aGVuIHVzaW5nIHNpZ3Y0XG4gICAgaWYgKHNpZ25hdHVyZVZlcnNpb24gIT09ICd2NCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGJ1Y2tldCA9IHJlcS5wYXJhbXMgJiYgcmVxLnBhcmFtcy5CdWNrZXQ7XG4gICAgdmFyIGtleSA9IHJlcS5wYXJhbXMgJiYgcmVxLnBhcmFtcy5LZXk7XG4gICAgdmFyIHNsYXNoSW5kZXggPSBidWNrZXQgJiYgYnVja2V0LmluZGV4T2YoJy8nKTtcbiAgICBpZiAoYnVja2V0ICYmIHNsYXNoSW5kZXggPj0gMCkge1xuICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlcS5wYXJhbXMgPSBBV1MudXRpbC5jb3B5KHJlcS5wYXJhbXMpO1xuICAgICAgICAvLyBOZWVkIHRvIGluY2x1ZGUgdHJhaWxpbmcgc2xhc2ggdG8gbWF0Y2ggc2lndjIgYmVoYXZpb3JcbiAgICAgICAgdmFyIHByZWZpeCA9IGJ1Y2tldC5zdWJzdHIoc2xhc2hJbmRleCArIDEpIHx8ICcnO1xuICAgICAgICByZXEucGFyYW1zLktleSA9IHByZWZpeCArICcvJyArIGtleTtcbiAgICAgICAgcmVxLnBhcmFtcy5CdWNrZXQgPSBidWNrZXQuc3Vic3RyKDAsIHNsYXNoSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIG1zZyA9ICdCdWNrZXQgbmFtZXMgY2Fubm90IGNvbnRhaW4gZm9yd2FyZCBzbGFzaGVzLiBCdWNrZXQ6ICcgKyBidWNrZXQ7XG4gICAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLFxuICAgICAgICAgIHsgY29kZTogJ0ludmFsaWRCdWNrZXQnLCBtZXNzYWdlOiBtc2cgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGlzVmFsaWRBY2NlbGVyYXRlT3BlcmF0aW9uOiBmdW5jdGlvbiBpc1ZhbGlkQWNjZWxlcmF0ZU9wZXJhdGlvbihvcGVyYXRpb24pIHtcbiAgICB2YXIgaW52YWxpZE9wZXJhdGlvbnMgPSBbXG4gICAgICAnY3JlYXRlQnVja2V0JyxcbiAgICAgICdkZWxldGVCdWNrZXQnLFxuICAgICAgJ2xpc3RCdWNrZXRzJ1xuICAgIF07XG4gICAgcmV0dXJuIGludmFsaWRPcGVyYXRpb25zLmluZGV4T2Yob3BlcmF0aW9uKSA9PT0gLTE7XG4gIH0sXG5cblxuICAvKipcbiAgICogUzMgcHJlZmVycyBkbnMtY29tcGF0aWJsZSBidWNrZXQgbmFtZXMgdG8gYmUgbW92ZWQgZnJvbSB0aGUgdXJpIHBhdGhcbiAgICogdG8gdGhlIGhvc3RuYW1lIGFzIGEgc3ViLWRvbWFpbi4gIFRoaXMgaXMgbm90IHBvc3NpYmxlLCBldmVuIGZvciBkbnMtY29tcGF0XG4gICAqIGJ1Y2tldHMgd2hlbiB1c2luZyBTU0wgYW5kIHRoZSBidWNrZXQgbmFtZSBjb250YWlucyBhIGRvdCAoJy4nKS4gIFRoZVxuICAgKiBzc2wgd2lsZGNhcmQgY2VydGlmaWNhdGUgaXMgb25seSAxLWxldmVsIGRlZXAuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcG9wdWxhdGVVUkk6IGZ1bmN0aW9uIHBvcHVsYXRlVVJJKHJlcSkge1xuICAgIHZhciBodHRwUmVxdWVzdCA9IHJlcS5odHRwUmVxdWVzdDtcbiAgICB2YXIgYiA9IHJlcS5wYXJhbXMuQnVja2V0O1xuICAgIHZhciBzZXJ2aWNlID0gcmVxLnNlcnZpY2U7XG4gICAgdmFyIGVuZHBvaW50ID0gaHR0cFJlcXVlc3QuZW5kcG9pbnQ7XG4gICAgaWYgKGIpIHtcbiAgICAgIGlmICghc2VydmljZS5wYXRoU3R5bGVCdWNrZXROYW1lKGIpKSB7XG4gICAgICAgIGlmIChzZXJ2aWNlLmNvbmZpZy51c2VBY2NlbGVyYXRlRW5kcG9pbnQgJiYgc2VydmljZS5pc1ZhbGlkQWNjZWxlcmF0ZU9wZXJhdGlvbihyZXEub3BlcmF0aW9uKSkge1xuICAgICAgICAgIGlmIChzZXJ2aWNlLmNvbmZpZy51c2VEdWFsc3RhY2spIHtcbiAgICAgICAgICAgIGVuZHBvaW50Lmhvc3RuYW1lID0gYiArICcuczMtYWNjZWxlcmF0ZS5kdWFsc3RhY2suYW1hem9uYXdzLmNvbSc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVuZHBvaW50Lmhvc3RuYW1lID0gYiArICcuczMtYWNjZWxlcmF0ZS5hbWF6b25hd3MuY29tJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIXNlcnZpY2UuY29uZmlnLnMzQnVja2V0RW5kcG9pbnQpIHtcbiAgICAgICAgICBlbmRwb2ludC5ob3N0bmFtZSA9XG4gICAgICAgICAgICBiICsgJy4nICsgZW5kcG9pbnQuaG9zdG5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcG9ydCA9IGVuZHBvaW50LnBvcnQ7XG4gICAgICAgIGlmIChwb3J0ICE9PSA4MCAmJiBwb3J0ICE9PSA0NDMpIHtcbiAgICAgICAgICBlbmRwb2ludC5ob3N0ID0gZW5kcG9pbnQuaG9zdG5hbWUgKyAnOicgK1xuICAgICAgICAgICAgZW5kcG9pbnQucG9ydDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbmRwb2ludC5ob3N0ID0gZW5kcG9pbnQuaG9zdG5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICBodHRwUmVxdWVzdC52aXJ0dWFsSG9zdGVkQnVja2V0ID0gYjsgLy8gbmVlZGVkIGZvciBzaWduaW5nIHRoZSByZXF1ZXN0XG4gICAgICAgIHNlcnZpY2UucmVtb3ZlVmlydHVhbEhvc3RlZEJ1Y2tldEZyb21QYXRoKHJlcSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBUYWtlcyB0aGUgYnVja2V0IG5hbWUgb3V0IG9mIHRoZSBwYXRoIGlmIGJ1Y2tldCBpcyB2aXJ0dWFsLWhvc3RlZFxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJlbW92ZVZpcnR1YWxIb3N0ZWRCdWNrZXRGcm9tUGF0aDogZnVuY3Rpb24gcmVtb3ZlVmlydHVhbEhvc3RlZEJ1Y2tldEZyb21QYXRoKHJlcSkge1xuICAgIHZhciBodHRwUmVxdWVzdCA9IHJlcS5odHRwUmVxdWVzdDtcbiAgICB2YXIgYnVja2V0ID0gaHR0cFJlcXVlc3QudmlydHVhbEhvc3RlZEJ1Y2tldDtcbiAgICBpZiAoYnVja2V0ICYmIGh0dHBSZXF1ZXN0LnBhdGgpIHtcbiAgICAgIGh0dHBSZXF1ZXN0LnBhdGggPSBodHRwUmVxdWVzdC5wYXRoLnJlcGxhY2UobmV3IFJlZ0V4cCgnLycgKyBidWNrZXQpLCAnJyk7XG4gICAgICBpZiAoaHR0cFJlcXVlc3QucGF0aFswXSAhPT0gJy8nKSB7XG4gICAgICAgIGh0dHBSZXF1ZXN0LnBhdGggPSAnLycgKyBodHRwUmVxdWVzdC5wYXRoO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQWRkcyBFeHBlY3Q6IDEwMC1jb250aW51ZSBoZWFkZXIgaWYgcGF5bG9hZCBpcyBncmVhdGVyLW9yLWVxdWFsIDFNQlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGFkZEV4cGVjdDEwMENvbnRpbnVlOiBmdW5jdGlvbiBhZGRFeHBlY3QxMDBDb250aW51ZShyZXEpIHtcbiAgICB2YXIgbGVuID0gcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ107XG4gICAgaWYgKEFXUy51dGlsLmlzTm9kZSgpICYmIGxlbiA+PSAxMDI0ICogMTAyNCkge1xuICAgICAgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0V4cGVjdCddID0gJzEwMC1jb250aW51ZSc7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBBZGRzIGEgZGVmYXVsdCBjb250ZW50IHR5cGUgaWYgbm9uZSBpcyBzdXBwbGllZC5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhZGRDb250ZW50VHlwZTogZnVuY3Rpb24gYWRkQ29udGVudFR5cGUocmVxKSB7XG4gICAgdmFyIGh0dHBSZXF1ZXN0ID0gcmVxLmh0dHBSZXF1ZXN0O1xuICAgIGlmIChodHRwUmVxdWVzdC5tZXRob2QgPT09ICdHRVQnIHx8IGh0dHBSZXF1ZXN0Lm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgICAvLyBDb250ZW50LVR5cGUgaXMgbm90IHNldCBpbiBHRVQvSEVBRCByZXF1ZXN0c1xuICAgICAgZGVsZXRlIGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghaHR0cFJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1UeXBlJ10pIHsgLy8gYWx3YXlzIGhhdmUgYSBDb250ZW50LVR5cGVcbiAgICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7XG4gICAgfVxuXG4gICAgdmFyIGNvbnRlbnRUeXBlID0gaHR0cFJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1UeXBlJ107XG4gICAgaWYgKEFXUy51dGlsLmlzQnJvd3NlcigpKSB7XG4gICAgICBpZiAodHlwZW9mIGh0dHBSZXF1ZXN0LmJvZHkgPT09ICdzdHJpbmcnICYmICFjb250ZW50VHlwZS5tYXRjaCgvO1xccypjaGFyc2V0PS8pKSB7XG4gICAgICAgIHZhciBjaGFyc2V0ID0gJzsgY2hhcnNldD1VVEYtOCc7XG4gICAgICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddICs9IGNoYXJzZXQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgcmVwbGFjZUZuID0gZnVuY3Rpb24oXywgcHJlZml4LCBjaGFyc2V0TmFtZSkge1xuICAgICAgICAgIHJldHVybiBwcmVmaXggKyBjaGFyc2V0TmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID1cbiAgICAgICAgICBjb250ZW50VHlwZS5yZXBsYWNlKC8oO1xccypjaGFyc2V0PSkoLispJC8sIHJlcGxhY2VGbik7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNvbXB1dGFibGVDaGVja3N1bU9wZXJhdGlvbnM6IHtcbiAgICBwdXRCdWNrZXRDb3JzOiB0cnVlLFxuICAgIHB1dEJ1Y2tldExpZmVjeWNsZTogdHJ1ZSxcbiAgICBwdXRCdWNrZXRMaWZlY3ljbGVDb25maWd1cmF0aW9uOiB0cnVlLFxuICAgIHB1dEJ1Y2tldFRhZ2dpbmc6IHRydWUsXG4gICAgZGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICBwdXRCdWNrZXRSZXBsaWNhdGlvbjogdHJ1ZVxuICB9LFxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBjaGVja3N1bXMgc2hvdWxkIGJlIGNvbXB1dGVkIGZvciB0aGUgcmVxdWVzdC5cbiAgICogSWYgdGhlIHJlcXVlc3QgcmVxdWlyZXMgY2hlY2tzdW1zIHRvIGJlIGNvbXB1dGVkLCB0aGlzIHdpbGwgYWx3YXlzXG4gICAqIHJldHVybiB0cnVlLCBvdGhlcndpc2UgaXQgZGVwZW5kcyBvbiB3aGV0aGVyIHtBV1MuQ29uZmlnLmNvbXB1dGVDaGVja3N1bXN9XG4gICAqIGlzIHNldC5cbiAgICpcbiAgICogQHBhcmFtIHJlcSBbQVdTLlJlcXVlc3RdIHRoZSByZXF1ZXN0IHRvIGNoZWNrIGFnYWluc3RcbiAgICogQHJldHVybiBbQm9vbGVhbl0gd2hldGhlciB0byBjb21wdXRlIGNoZWNrc3VtcyBmb3IgYSByZXF1ZXN0LlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHdpbGxDb21wdXRlQ2hlY2tzdW1zOiBmdW5jdGlvbiB3aWxsQ29tcHV0ZUNoZWNrc3VtcyhyZXEpIHtcbiAgICBpZiAodGhpcy5jb21wdXRhYmxlQ2hlY2tzdW1PcGVyYXRpb25zW3JlcS5vcGVyYXRpb25dKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmNvbXB1dGVDaGVja3N1bXMpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIFRPRE86IGNvbXB1dGUgY2hlY2tzdW1zIGZvciBTdHJlYW0gb2JqZWN0c1xuICAgIGlmICghQVdTLnV0aWwuQnVmZmVyLmlzQnVmZmVyKHJlcS5odHRwUmVxdWVzdC5ib2R5KSAmJlxuICAgICAgICB0eXBlb2YgcmVxLmh0dHBSZXF1ZXN0LmJvZHkgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdmFyIHJ1bGVzID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbcmVxLm9wZXJhdGlvbl0uaW5wdXQubWVtYmVycztcblxuICAgIC8vIFNoYTI1NiBzaWduaW5nIGRpc2FibGVkLCBhbmQgbm90IGEgcHJlc2lnbmVkIHVybFxuICAgIGlmIChyZXEuc2VydmljZS5zaG91bGREaXNhYmxlQm9keVNpZ25pbmcocmVxKSAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcS5odHRwUmVxdWVzdC5oZWFkZXJzLCAncHJlc2lnbmVkLWV4cGlyZXMnKSkge1xuICAgICAgaWYgKHJ1bGVzLkNvbnRlbnRNRDUgJiYgIXJlcS5wYXJhbXMuQ29udGVudE1ENSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWNCBzaWduZXIgdXNlcyBTSEEyNTYgc2lnbmF0dXJlcyBzbyBvbmx5IGNvbXB1dGUgTUQ1IGlmIGl0IGlzIHJlcXVpcmVkXG4gICAgaWYgKHJlcS5zZXJ2aWNlLmdldFNpZ25lckNsYXNzKHJlcSkgPT09IEFXUy5TaWduZXJzLlY0KSB7XG4gICAgICBpZiAocnVsZXMuQ29udGVudE1ENSAmJiAhcnVsZXMuQ29udGVudE1ENS5yZXF1aXJlZCkgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChydWxlcy5Db250ZW50TUQ1ICYmICFyZXEucGFyYW1zLkNvbnRlbnRNRDUpIHJldHVybiB0cnVlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBIGxpc3RlbmVyIHRoYXQgY29tcHV0ZXMgdGhlIENvbnRlbnQtTUQ1IGFuZCBzZXRzIGl0IGluIHRoZSBoZWFkZXIuXG4gICAqIEBzZWUgQVdTLlMzLndpbGxDb21wdXRlQ2hlY2tzdW1zXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY29tcHV0ZUNvbnRlbnRNZDU6IGZ1bmN0aW9uIGNvbXB1dGVDb250ZW50TWQ1KHJlcSkge1xuICAgIGlmIChyZXEuc2VydmljZS53aWxsQ29tcHV0ZUNoZWNrc3VtcyhyZXEpKSB7XG4gICAgICB2YXIgbWQ1ID0gQVdTLnV0aWwuY3J5cHRvLm1kNShyZXEuaHR0cFJlcXVlc3QuYm9keSwgJ2Jhc2U2NCcpO1xuICAgICAgcmVxLmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtTUQ1J10gPSBtZDU7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNvbXB1dGVTc2VDdXN0b21lcktleU1kNTogZnVuY3Rpb24gY29tcHV0ZVNzZUN1c3RvbWVyS2V5TWQ1KHJlcSkge1xuICAgIHZhciBrZXlzID0ge1xuICAgICAgU1NFQ3VzdG9tZXJLZXk6ICd4LWFtei1zZXJ2ZXItc2lkZS1lbmNyeXB0aW9uLWN1c3RvbWVyLWtleS1NRDUnLFxuICAgICAgQ29weVNvdXJjZVNTRUN1c3RvbWVyS2V5OiAneC1hbXotY29weS1zb3VyY2Utc2VydmVyLXNpZGUtZW5jcnlwdGlvbi1jdXN0b21lci1rZXktTUQ1J1xuICAgIH07XG4gICAgQVdTLnV0aWwuZWFjaChrZXlzLCBmdW5jdGlvbihrZXksIGhlYWRlcikge1xuICAgICAgaWYgKHJlcS5wYXJhbXNba2V5XSkge1xuICAgICAgICB2YXIgdmFsdWUgPSBBV1MudXRpbC5jcnlwdG8ubWQ1KHJlcS5wYXJhbXNba2V5XSwgJ2Jhc2U2NCcpO1xuICAgICAgICByZXEuaHR0cFJlcXVlc3QuaGVhZGVyc1toZWFkZXJdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYnVja2V0IG5hbWUgc2hvdWxkIGJlIGxlZnQgaW4gdGhlIFVSSSBwYXRoIGZvclxuICAgKiBhIHJlcXVlc3QgdG8gUzMuICBUaGlzIGZ1bmN0aW9uIHRha2VzIGludG8gYWNjb3VudCB0aGUgY3VycmVudFxuICAgKiBlbmRwb2ludCBwcm90b2NvbCAoZS5nLiBodHRwIG9yIGh0dHBzKS5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwYXRoU3R5bGVCdWNrZXROYW1lOiBmdW5jdGlvbiBwYXRoU3R5bGVCdWNrZXROYW1lKGJ1Y2tldE5hbWUpIHtcbiAgICAvLyB1c2VyIGNhbiBmb3JjZSBwYXRoIHN0eWxlIHJlcXVlc3RzIHZpYSB0aGUgY29uZmlndXJhdGlvblxuICAgIGlmICh0aGlzLmNvbmZpZy5zM0ZvcmNlUGF0aFN0eWxlKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodGhpcy5jb25maWcuczNCdWNrZXRFbmRwb2ludCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuZG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZSkpIHtcbiAgICAgIHJldHVybiAodGhpcy5jb25maWcuc3NsRW5hYmxlZCAmJiBidWNrZXROYW1lLm1hdGNoKC9cXC4vKSkgPyB0cnVlIDogZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlOyAvLyBub3QgZG5zIGNvbXBhdGlibGUgbmFtZXMgbXVzdCBhbHdheXMgdXNlIHBhdGggc3R5bGVcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgYnVja2V0IG5hbWUgaXMgRE5TIGNvbXBhdGlibGUuICBCdWNrZXRzIGNyZWF0ZWRcbiAgICogb3V0c2lkZSBvZiB0aGUgY2xhc3NpYyByZWdpb24gTVVTVCBiZSBETlMgY29tcGF0aWJsZS5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBkbnNDb21wYXRpYmxlQnVja2V0TmFtZTogZnVuY3Rpb24gZG5zQ29tcGF0aWJsZUJ1Y2tldE5hbWUoYnVja2V0TmFtZSkge1xuICAgIHZhciBiID0gYnVja2V0TmFtZTtcbiAgICB2YXIgZG9tYWluID0gbmV3IFJlZ0V4cCgvXlthLXowLTldW2EtejAtOVxcLlxcLV17MSw2MX1bYS16MC05XSQvKTtcbiAgICB2YXIgaXBBZGRyZXNzID0gbmV3IFJlZ0V4cCgvKFxcZCtcXC4pezN9XFxkKy8pO1xuICAgIHZhciBkb3RzID0gbmV3IFJlZ0V4cCgvXFwuXFwuLyk7XG4gICAgcmV0dXJuIChiLm1hdGNoKGRvbWFpbikgJiYgIWIubWF0Y2goaXBBZGRyZXNzKSAmJiAhYi5tYXRjaChkb3RzKSkgPyB0cnVlIDogZmFsc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4gW0Jvb2xlYW5dIHdoZXRoZXIgcmVzcG9uc2UgY29udGFpbnMgYW4gZXJyb3JcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzdWNjZXNzZnVsUmVzcG9uc2U6IGZ1bmN0aW9uIHN1Y2Nlc3NmdWxSZXNwb25zZShyZXNwKSB7XG4gICAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgICB2YXIgaHR0cFJlc3BvbnNlID0gcmVzcC5odHRwUmVzcG9uc2U7XG4gICAgaWYgKG9wZXJhdGlvbnNXaXRoMjAwU3RhdHVzQ29kZUVycm9yW3JlcS5vcGVyYXRpb25dICYmXG4gICAgICAgIGh0dHBSZXNwb25zZS5ib2R5LnRvU3RyaW5nKCkubWF0Y2goJzxFcnJvcj4nKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHR0cFJlc3BvbnNlLnN0YXR1c0NvZGUgPCAzMDA7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFtCb29sZWFuXSB3aGV0aGVyIHRoZSBlcnJvciBjYW4gYmUgcmV0cmllZFxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHJldHJ5YWJsZUVycm9yOiBmdW5jdGlvbiByZXRyeWFibGVFcnJvcihlcnJvciwgcmVxdWVzdCkge1xuICAgIGlmIChvcGVyYXRpb25zV2l0aDIwMFN0YXR1c0NvZGVFcnJvcltyZXF1ZXN0Lm9wZXJhdGlvbl0gJiZcbiAgICAgICAgZXJyb3Iuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3QuX3JlcXVlc3RSZWdpb25Gb3JCdWNrZXQgJiZcbiAgICAgICAgcmVxdWVzdC5zZXJ2aWNlLmJ1Y2tldFJlZ2lvbkNhY2hlW3JlcXVlc3QuX3JlcXVlc3RSZWdpb25Gb3JCdWNrZXRdKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChlcnJvciAmJiBlcnJvci5jb2RlID09PSAnUmVxdWVzdFRpbWVvdXQnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGVycm9yICYmXG4gICAgICAgIHJlZ2lvblJlZGlyZWN0RXJyb3JDb2Rlcy5pbmRleE9mKGVycm9yLmNvZGUpICE9IC0xICYmXG4gICAgICAgIGVycm9yLnJlZ2lvbiAmJiBlcnJvci5yZWdpb24gIT0gcmVxdWVzdC5odHRwUmVxdWVzdC5yZWdpb24pIHtcbiAgICAgIHJlcXVlc3QuaHR0cFJlcXVlc3QucmVnaW9uID0gZXJyb3IucmVnaW9uO1xuICAgICAgaWYgKGVycm9yLnN0YXR1c0NvZGUgPT09IDMwMSkge1xuICAgICAgICByZXF1ZXN0LnNlcnZpY2UudXBkYXRlUmVxQnVja2V0UmVnaW9uKHJlcXVlc3QpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfc3VwZXIgPSBBV1MuU2VydmljZS5wcm90b3R5cGUucmV0cnlhYmxlRXJyb3I7XG4gICAgICByZXR1cm4gX3N1cGVyLmNhbGwodGhpcywgZXJyb3IsIHJlcXVlc3QpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlcyBodHRwUmVxdWVzdCB3aXRoIHJlZ2lvbi4gSWYgcmVnaW9uIGlzIG5vdCBwcm92aWRlZCwgdGhlblxuICAgKiB0aGUgaHR0cFJlcXVlc3Qgd2lsbCBiZSB1cGRhdGVkIGJhc2VkIG9uIGh0dHBSZXF1ZXN0LnJlZ2lvblxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHVwZGF0ZVJlcUJ1Y2tldFJlZ2lvbjogZnVuY3Rpb24gdXBkYXRlUmVxQnVja2V0UmVnaW9uKHJlcXVlc3QsIHJlZ2lvbikge1xuICAgIHZhciBodHRwUmVxdWVzdCA9IHJlcXVlc3QuaHR0cFJlcXVlc3Q7XG4gICAgaWYgKHR5cGVvZiByZWdpb24gPT09ICdzdHJpbmcnICYmIHJlZ2lvbi5sZW5ndGgpIHtcbiAgICAgIGh0dHBSZXF1ZXN0LnJlZ2lvbiA9IHJlZ2lvbjtcbiAgICB9XG4gICAgaWYgKCFodHRwUmVxdWVzdC5lbmRwb2ludC5ob3N0Lm1hdGNoKC9zMyg/IS1hY2NlbGVyYXRlKS4qXFwuYW1hem9uYXdzXFwuY29tJC8pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBzZXJ2aWNlID0gcmVxdWVzdC5zZXJ2aWNlO1xuICAgIHZhciBzM0NvbmZpZyA9IHNlcnZpY2UuY29uZmlnO1xuICAgIHZhciBzM0J1Y2tldEVuZHBvaW50ID0gczNDb25maWcuczNCdWNrZXRFbmRwb2ludDtcbiAgICBpZiAoczNCdWNrZXRFbmRwb2ludCkge1xuICAgICAgZGVsZXRlIHMzQ29uZmlnLnMzQnVja2V0RW5kcG9pbnQ7XG4gICAgfVxuICAgIHZhciBuZXdDb25maWcgPSBBV1MudXRpbC5jb3B5KHMzQ29uZmlnKTtcbiAgICBkZWxldGUgbmV3Q29uZmlnLmVuZHBvaW50O1xuICAgIG5ld0NvbmZpZy5yZWdpb24gPSBodHRwUmVxdWVzdC5yZWdpb247XG5cbiAgICBodHRwUmVxdWVzdC5lbmRwb2ludCA9IChuZXcgQVdTLlMzKG5ld0NvbmZpZykpLmVuZHBvaW50O1xuICAgIHNlcnZpY2UucG9wdWxhdGVVUkkocmVxdWVzdCk7XG4gICAgczNDb25maWcuczNCdWNrZXRFbmRwb2ludCA9IHMzQnVja2V0RW5kcG9pbnQ7XG4gICAgaHR0cFJlcXVlc3QuaGVhZGVycy5Ib3N0ID0gaHR0cFJlcXVlc3QuZW5kcG9pbnQuaG9zdDtcblxuICAgIGlmIChyZXF1ZXN0Ll9hc20uY3VycmVudFN0YXRlID09PSAndmFsaWRhdGUnKSB7XG4gICAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdidWlsZCcsIHNlcnZpY2UucG9wdWxhdGVVUkkpO1xuICAgICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignYnVpbGQnLCBzZXJ2aWNlLnJlbW92ZVZpcnR1YWxIb3N0ZWRCdWNrZXRGcm9tUGF0aCk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhIHNwZWNpYWxpemVkIHBhcnNlciBmb3IgZ2V0QnVja2V0TG9jYXRpb24gLS0gYWxsIG90aGVyXG4gICAqIG9wZXJhdGlvbnMgYXJlIHBhcnNlZCBieSB0aGUgc3VwZXIgY2xhc3MuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZXh0cmFjdERhdGE6IGZ1bmN0aW9uIGV4dHJhY3REYXRhKHJlc3ApIHtcbiAgICB2YXIgcmVxID0gcmVzcC5yZXF1ZXN0O1xuICAgIGlmIChyZXEub3BlcmF0aW9uID09PSAnZ2V0QnVja2V0TG9jYXRpb24nKSB7XG4gICAgICB2YXIgbWF0Y2ggPSByZXNwLmh0dHBSZXNwb25zZS5ib2R5LnRvU3RyaW5nKCkubWF0Y2goLz4oLispPFxcL0xvY2F0aW9uLyk7XG4gICAgICBkZWxldGUgcmVzcC5kYXRhWydfJ107XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgcmVzcC5kYXRhLkxvY2F0aW9uQ29uc3RyYWludCA9IG1hdGNoWzFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcC5kYXRhLkxvY2F0aW9uQ29uc3RyYWludCA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgYnVja2V0ID0gcmVxLnBhcmFtcy5CdWNrZXQgfHwgbnVsbDtcbiAgICBpZiAocmVxLm9wZXJhdGlvbiA9PT0gJ2RlbGV0ZUJ1Y2tldCcgJiYgdHlwZW9mIGJ1Y2tldCA9PT0gJ3N0cmluZycgJiYgIXJlc3AuZXJyb3IpIHtcbiAgICAgIHJlcS5zZXJ2aWNlLmNsZWFyQnVja2V0UmVnaW9uQ2FjaGUoYnVja2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGhlYWRlcnMgPSByZXNwLmh0dHBSZXNwb25zZS5oZWFkZXJzIHx8IHt9O1xuICAgICAgdmFyIHJlZ2lvbiA9IGhlYWRlcnNbJ3gtYW16LWJ1Y2tldC1yZWdpb24nXSB8fCBudWxsO1xuICAgICAgaWYgKCFyZWdpb24gJiYgcmVxLm9wZXJhdGlvbiA9PT0gJ2NyZWF0ZUJ1Y2tldCcgJiYgIXJlc3AuZXJyb3IpIHtcbiAgICAgICAgdmFyIGNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24gPSByZXEucGFyYW1zLkNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb247XG4gICAgICAgIGlmICghY3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbikge1xuICAgICAgICAgIHJlZ2lvbiA9ICd1cy1lYXN0LTEnO1xuICAgICAgICB9IGVsc2UgaWYgKGNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24uTG9jYXRpb25Db25zdHJhaW50ID09PSAnRVUnKSB7XG4gICAgICAgICAgcmVnaW9uID0gJ2V1LXdlc3QtMSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVnaW9uID0gY3JlYXRlQnVja2V0Q29uZmlndXJhdGlvbi5Mb2NhdGlvbkNvbnN0cmFpbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChyZWdpb24pIHtcbiAgICAgICAgICBpZiAoYnVja2V0ICYmIHJlZ2lvbiAhPT0gcmVxLnNlcnZpY2UuYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSkge1xuICAgICAgICAgICAgcmVxLnNlcnZpY2UuYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSA9IHJlZ2lvbjtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJlcS5zZXJ2aWNlLmV4dHJhY3RSZXF1ZXN0SWRzKHJlc3ApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBhbiBlcnJvciBvYmplY3QgZnJvbSB0aGUgaHR0cCByZXNwb25zZS5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBleHRyYWN0RXJyb3I6IGZ1bmN0aW9uIGV4dHJhY3RFcnJvcihyZXNwKSB7XG4gICAgdmFyIGNvZGVzID0ge1xuICAgICAgMzA0OiAnTm90TW9kaWZpZWQnLFxuICAgICAgNDAzOiAnRm9yYmlkZGVuJyxcbiAgICAgIDQwMDogJ0JhZFJlcXVlc3QnLFxuICAgICAgNDA0OiAnTm90Rm91bmQnXG4gICAgfTtcblxuICAgIHZhciByZXEgPSByZXNwLnJlcXVlc3Q7XG4gICAgdmFyIGNvZGUgPSByZXNwLmh0dHBSZXNwb25zZS5zdGF0dXNDb2RlO1xuICAgIHZhciBib2R5ID0gcmVzcC5odHRwUmVzcG9uc2UuYm9keSB8fCAnJztcblxuICAgIHZhciBoZWFkZXJzID0gcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVycyB8fCB7fTtcbiAgICB2YXIgcmVnaW9uID0gaGVhZGVyc1sneC1hbXotYnVja2V0LXJlZ2lvbiddIHx8IG51bGw7XG4gICAgdmFyIGJ1Y2tldCA9IHJlcS5wYXJhbXMuQnVja2V0IHx8IG51bGw7XG4gICAgdmFyIGJ1Y2tldFJlZ2lvbkNhY2hlID0gcmVxLnNlcnZpY2UuYnVja2V0UmVnaW9uQ2FjaGU7XG4gICAgaWYgKHJlZ2lvbiAmJiBidWNrZXQgJiYgcmVnaW9uICE9PSBidWNrZXRSZWdpb25DYWNoZVtidWNrZXRdKSB7XG4gICAgICBidWNrZXRSZWdpb25DYWNoZVtidWNrZXRdID0gcmVnaW9uO1xuICAgIH1cblxuICAgIHZhciBjYWNoZWRSZWdpb247XG4gICAgaWYgKGNvZGVzW2NvZGVdICYmIGJvZHkubGVuZ3RoID09PSAwKSB7XG4gICAgICBpZiAoYnVja2V0ICYmICFyZWdpb24pIHtcbiAgICAgICAgY2FjaGVkUmVnaW9uID0gYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSB8fCBudWxsO1xuICAgICAgICBpZiAoY2FjaGVkUmVnaW9uICE9PSByZXEuaHR0cFJlcXVlc3QucmVnaW9uKSB7XG4gICAgICAgICAgcmVnaW9uID0gY2FjaGVkUmVnaW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXNwLmVycm9yID0gQVdTLnV0aWwuZXJyb3IobmV3IEVycm9yKCksIHtcbiAgICAgICAgY29kZTogY29kZXNbY29kZV0sXG4gICAgICAgIG1lc3NhZ2U6IG51bGwsXG4gICAgICAgIHJlZ2lvbjogcmVnaW9uXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGRhdGEgPSBuZXcgQVdTLlhNTC5QYXJzZXIoKS5wYXJzZShib2R5LnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAoZGF0YS5SZWdpb24gJiYgIXJlZ2lvbikge1xuICAgICAgICByZWdpb24gPSBkYXRhLlJlZ2lvbjtcbiAgICAgICAgaWYgKGJ1Y2tldCAmJiByZWdpb24gIT09IGJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF0pIHtcbiAgICAgICAgICBidWNrZXRSZWdpb25DYWNoZVtidWNrZXRdID0gcmVnaW9uO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGJ1Y2tldCAmJiAhcmVnaW9uICYmICFkYXRhLlJlZ2lvbikge1xuICAgICAgICBjYWNoZWRSZWdpb24gPSBidWNrZXRSZWdpb25DYWNoZVtidWNrZXRdIHx8IG51bGw7XG4gICAgICAgIGlmIChjYWNoZWRSZWdpb24gIT09IHJlcS5odHRwUmVxdWVzdC5yZWdpb24pIHtcbiAgICAgICAgICByZWdpb24gPSBjYWNoZWRSZWdpb247XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmVzcC5lcnJvciA9IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICAgIGNvZGU6IGRhdGEuQ29kZSB8fCBjb2RlLFxuICAgICAgICBtZXNzYWdlOiBkYXRhLk1lc3NhZ2UgfHwgbnVsbCxcbiAgICAgICAgcmVnaW9uOiByZWdpb25cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXEuc2VydmljZS5leHRyYWN0UmVxdWVzdElkcyhyZXNwKTtcbiAgfSxcblxuICAvKipcbiAgICogSWYgcmVnaW9uIHdhcyBub3Qgb2J0YWluZWQgc3luY2hyb25vdXNseSwgdGhlbiBzZW5kIGFzeW5jIHJlcXVlc3RcbiAgICogdG8gZ2V0IGJ1Y2tldCByZWdpb24gZm9yIGVycm9ycyByZXN1bHRpbmcgZnJvbSB3cm9uZyByZWdpb24uXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcmVxdWVzdEJ1Y2tldFJlZ2lvbjogZnVuY3Rpb24gcmVxdWVzdEJ1Y2tldFJlZ2lvbihyZXNwLCBkb25lKSB7XG4gICAgdmFyIGVycm9yID0gcmVzcC5lcnJvcjtcbiAgICB2YXIgcmVxID0gcmVzcC5yZXF1ZXN0O1xuICAgIHZhciBidWNrZXQgPSByZXEucGFyYW1zLkJ1Y2tldCB8fCBudWxsO1xuXG4gICAgaWYgKCFlcnJvciB8fCAhYnVja2V0IHx8IGVycm9yLnJlZ2lvbiB8fCByZXEub3BlcmF0aW9uID09PSAnbGlzdE9iamVjdHMnIHx8XG4gICAgICAgIChBV1MudXRpbC5pc05vZGUoKSAmJiByZXEub3BlcmF0aW9uID09PSAnaGVhZEJ1Y2tldCcpIHx8XG4gICAgICAgIChlcnJvci5zdGF0dXNDb2RlID09PSA0MDAgJiYgcmVxLm9wZXJhdGlvbiAhPT0gJ2hlYWRPYmplY3QnKSB8fFxuICAgICAgICByZWdpb25SZWRpcmVjdEVycm9yQ29kZXMuaW5kZXhPZihlcnJvci5jb2RlKSA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBkb25lKCk7XG4gICAgfVxuICAgIHZhciByZXFPcGVyYXRpb24gPSBBV1MudXRpbC5pc05vZGUoKSA/ICdoZWFkQnVja2V0JyA6ICdsaXN0T2JqZWN0cyc7XG4gICAgdmFyIHJlcVBhcmFtcyA9IHtCdWNrZXQ6IGJ1Y2tldH07XG4gICAgaWYgKHJlcU9wZXJhdGlvbiA9PT0gJ2xpc3RPYmplY3RzJykgcmVxUGFyYW1zLk1heEtleXMgPSAwO1xuICAgIHZhciByZWdpb25SZXEgPSByZXEuc2VydmljZVtyZXFPcGVyYXRpb25dKHJlcVBhcmFtcyk7XG4gICAgcmVnaW9uUmVxLl9yZXF1ZXN0UmVnaW9uRm9yQnVja2V0ID0gYnVja2V0O1xuICAgIHJlZ2lvblJlcS5zZW5kKGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlZ2lvbiA9IHJlcS5zZXJ2aWNlLmJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldF0gfHwgbnVsbDtcbiAgICAgIGVycm9yLnJlZ2lvbiA9IHJlZ2lvbjtcbiAgICAgIGRvbmUoKTtcbiAgICB9KTtcbiAgfSxcblxuICAgLyoqXG4gICAqIEZvciBicm93c2VyIG9ubHkuIElmIE5ldHdvcmtpbmdFcnJvciByZWNlaXZlZCwgd2lsbCBhdHRlbXB0IHRvIG9idGFpblxuICAgKiB0aGUgYnVja2V0IHJlZ2lvbi5cbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICAgcmVxUmVnaW9uRm9yTmV0d29ya2luZ0Vycm9yOiBmdW5jdGlvbiByZXFSZWdpb25Gb3JOZXR3b3JraW5nRXJyb3IocmVzcCwgZG9uZSkge1xuICAgIGlmICghQVdTLnV0aWwuaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybiBkb25lKCk7XG4gICAgfVxuICAgIHZhciBlcnJvciA9IHJlc3AuZXJyb3I7XG4gICAgdmFyIHJlcXVlc3QgPSByZXNwLnJlcXVlc3Q7XG4gICAgdmFyIGJ1Y2tldCA9IHJlcXVlc3QucGFyYW1zLkJ1Y2tldDtcbiAgICBpZiAoIWVycm9yIHx8IGVycm9yLmNvZGUgIT09ICdOZXR3b3JraW5nRXJyb3InIHx8ICFidWNrZXQgfHxcbiAgICAgICAgcmVxdWVzdC5odHRwUmVxdWVzdC5yZWdpb24gPT09ICd1cy1lYXN0LTEnKSB7XG4gICAgICByZXR1cm4gZG9uZSgpO1xuICAgIH1cbiAgICB2YXIgc2VydmljZSA9IHJlcXVlc3Quc2VydmljZTtcbiAgICB2YXIgYnVja2V0UmVnaW9uQ2FjaGUgPSBzZXJ2aWNlLmJ1Y2tldFJlZ2lvbkNhY2hlO1xuICAgIHZhciBjYWNoZWRSZWdpb24gPSBidWNrZXRSZWdpb25DYWNoZVtidWNrZXRdIHx8IG51bGw7XG5cbiAgICBpZiAoY2FjaGVkUmVnaW9uICYmIGNhY2hlZFJlZ2lvbiAhPT0gcmVxdWVzdC5odHRwUmVxdWVzdC5yZWdpb24pIHtcbiAgICAgIHNlcnZpY2UudXBkYXRlUmVxQnVja2V0UmVnaW9uKHJlcXVlc3QsIGNhY2hlZFJlZ2lvbik7XG4gICAgICBkb25lKCk7XG4gICAgfSBlbHNlIGlmICghc2VydmljZS5kbnNDb21wYXRpYmxlQnVja2V0TmFtZShidWNrZXQpKSB7XG4gICAgICBzZXJ2aWNlLnVwZGF0ZVJlcUJ1Y2tldFJlZ2lvbihyZXF1ZXN0LCAndXMtZWFzdC0xJyk7XG4gICAgICBpZiAoYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSAhPT0gJ3VzLWVhc3QtMScpIHtcbiAgICAgICAgYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSA9ICd1cy1lYXN0LTEnO1xuICAgICAgfVxuICAgICAgZG9uZSgpO1xuICAgIH0gZWxzZSBpZiAocmVxdWVzdC5odHRwUmVxdWVzdC52aXJ0dWFsSG9zdGVkQnVja2V0KSB7XG4gICAgICB2YXIgZ2V0UmVnaW9uUmVxID0gc2VydmljZS5saXN0T2JqZWN0cyh7QnVja2V0OiBidWNrZXQsIE1heEtleXM6IDB9KTtcbiAgICAgIHNlcnZpY2UudXBkYXRlUmVxQnVja2V0UmVnaW9uKGdldFJlZ2lvblJlcSwgJ3VzLWVhc3QtMScpO1xuICAgICAgZ2V0UmVnaW9uUmVxLl9yZXF1ZXN0UmVnaW9uRm9yQnVja2V0ID0gYnVja2V0O1xuXG4gICAgICBnZXRSZWdpb25SZXEuc2VuZChmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHJlZ2lvbiA9IHNlcnZpY2UuYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XSB8fCBudWxsO1xuICAgICAgICBpZiAocmVnaW9uICYmIHJlZ2lvbiAhPT0gcmVxdWVzdC5odHRwUmVxdWVzdC5yZWdpb24pIHtcbiAgICAgICAgICBzZXJ2aWNlLnVwZGF0ZVJlcUJ1Y2tldFJlZ2lvbihyZXF1ZXN0LCByZWdpb24pO1xuICAgICAgICB9XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBETlMtY29tcGF0aWJsZSBwYXRoLXN0eWxlXG4gICAgICAvLyAoczNGb3JjZVBhdGhTdHlsZSBvciBidWNrZXQgbmFtZSB3aXRoIGRvdCBvdmVyIGh0dHBzKVxuICAgICAgLy8gQ2Fubm90IG9idGFpbiByZWdpb24gaW5mb3JtYXRpb24gZm9yIHRoaXMgY2FzZVxuICAgICAgZG9uZSgpO1xuICAgIH1cbiAgIH0sXG5cbiAgLyoqXG4gICAqIENhY2hlIGZvciBidWNrZXQgcmVnaW9uLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gICBidWNrZXRSZWdpb25DYWNoZToge30sXG5cbiAgLyoqXG4gICAqIENsZWFycyBidWNrZXQgcmVnaW9uIGNhY2hlLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gICBjbGVhckJ1Y2tldFJlZ2lvbkNhY2hlOiBmdW5jdGlvbihidWNrZXRzKSB7XG4gICAgdmFyIGJ1Y2tldFJlZ2lvbkNhY2hlID0gdGhpcy5idWNrZXRSZWdpb25DYWNoZTtcbiAgICBpZiAoIWJ1Y2tldHMpIHtcbiAgICAgIGJ1Y2tldHMgPSBPYmplY3Qua2V5cyhidWNrZXRSZWdpb25DYWNoZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYnVja2V0cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJ1Y2tldHMgPSBbYnVja2V0c107XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVja2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgZGVsZXRlIGJ1Y2tldFJlZ2lvbkNhY2hlW2J1Y2tldHNbaV1dO1xuICAgIH1cbiAgICByZXR1cm4gYnVja2V0UmVnaW9uQ2FjaGU7XG4gICB9LFxuXG4gICAvKipcbiAgICAqIENvcnJlY3RzIHJlcXVlc3QgcmVnaW9uIGlmIGJ1Y2tldCdzIGNhY2hlZCByZWdpb24gaXMgZGlmZmVyZW50XG4gICAgKlxuICAgICogQGFwaSBwcml2YXRlXG4gICAgKi9cbiAgY29ycmVjdEJ1Y2tldFJlZ2lvbkZyb21DYWNoZTogZnVuY3Rpb24gY29ycmVjdEJ1Y2tldFJlZ2lvbkZyb21DYWNoZShyZXEpIHtcbiAgICB2YXIgYnVja2V0ID0gcmVxLnBhcmFtcy5CdWNrZXQgfHwgbnVsbDtcbiAgICBpZiAoYnVja2V0KSB7XG4gICAgICB2YXIgc2VydmljZSA9IHJlcS5zZXJ2aWNlO1xuICAgICAgdmFyIHJlcXVlc3RSZWdpb24gPSByZXEuaHR0cFJlcXVlc3QucmVnaW9uO1xuICAgICAgdmFyIGNhY2hlZFJlZ2lvbiA9IHNlcnZpY2UuYnVja2V0UmVnaW9uQ2FjaGVbYnVja2V0XTtcbiAgICAgIGlmIChjYWNoZWRSZWdpb24gJiYgY2FjaGVkUmVnaW9uICE9PSByZXF1ZXN0UmVnaW9uKSB7XG4gICAgICAgIHNlcnZpY2UudXBkYXRlUmVxQnVja2V0UmVnaW9uKHJlcSwgY2FjaGVkUmVnaW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIFMzIHNwZWNpZmljIHJlcXVlc3QgaWRzIGZyb20gdGhlIGh0dHAgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZXh0cmFjdFJlcXVlc3RJZHM6IGZ1bmN0aW9uIGV4dHJhY3RSZXF1ZXN0SWRzKHJlc3ApIHtcbiAgICB2YXIgZXh0ZW5kZWRSZXF1ZXN0SWQgPSByZXNwLmh0dHBSZXNwb25zZS5oZWFkZXJzID8gcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVyc1sneC1hbXotaWQtMiddIDogbnVsbDtcbiAgICB2YXIgY2ZJZCA9IHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnMgPyByZXNwLmh0dHBSZXNwb25zZS5oZWFkZXJzWyd4LWFtei1jZi1pZCddIDogbnVsbDtcbiAgICByZXNwLmV4dGVuZGVkUmVxdWVzdElkID0gZXh0ZW5kZWRSZXF1ZXN0SWQ7XG4gICAgcmVzcC5jZklkID0gY2ZJZDtcblxuICAgIGlmIChyZXNwLmVycm9yKSB7XG4gICAgICByZXNwLmVycm9yLnJlcXVlc3RJZCA9IHJlc3AucmVxdWVzdElkIHx8IG51bGw7XG4gICAgICByZXNwLmVycm9yLmV4dGVuZGVkUmVxdWVzdElkID0gZXh0ZW5kZWRSZXF1ZXN0SWQ7XG4gICAgICByZXNwLmVycm9yLmNmSWQgPSBjZklkO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogR2V0IGEgcHJlLXNpZ25lZCBVUkwgZm9yIGEgZ2l2ZW4gb3BlcmF0aW9uIG5hbWUuXG4gICAqXG4gICAqIEBub3RlIFlvdSBtdXN0IGVuc3VyZSB0aGF0IHlvdSBoYXZlIHN0YXRpYyBvciBwcmV2aW91c2x5IHJlc29sdmVkXG4gICAqICAgY3JlZGVudGlhbHMgaWYgeW91IGNhbGwgdGhpcyBtZXRob2Qgc3luY2hyb25vdXNseSAod2l0aCBubyBjYWxsYmFjayksXG4gICAqICAgb3RoZXJ3aXNlIGl0IG1heSBub3QgcHJvcGVybHkgc2lnbiB0aGUgcmVxdWVzdC4gSWYgeW91IGNhbm5vdCBndWFyYW50ZWVcbiAgICogICB0aGlzICh5b3UgYXJlIHVzaW5nIGFuIGFzeW5jaHJvbm91cyBjcmVkZW50aWFsIHByb3ZpZGVyLCBpLmUuLCBFQzJcbiAgICogICBJQU0gcm9sZXMpLCB5b3Ugc2hvdWxkIGFsd2F5cyBjYWxsIHRoaXMgbWV0aG9kIHdpdGggYW4gYXN5bmNocm9ub3VzXG4gICAqICAgY2FsbGJhY2suXG4gICAqIEBub3RlIE5vdCBhbGwgb3BlcmF0aW9uIHBhcmFtZXRlcnMgYXJlIHN1cHBvcnRlZCB3aGVuIHVzaW5nIHByZS1zaWduZWRcbiAgICogICBVUkxzLiBDZXJ0YWluIHBhcmFtZXRlcnMsIHN1Y2ggYXMgYFNTRUN1c3RvbWVyS2V5YCwgYEFDTGAsIGBFeHBpcmVzYCxcbiAgICogICBgQ29udGVudExlbmd0aGAsIG9yIGBUYWdnaW5nYCBtdXN0IGJlIHByb3ZpZGVkIGFzIGhlYWRlcnMgd2hlbiBzZW5kaW5nIGFcbiAgICogICByZXF1ZXN0LiBJZiB5b3UgYXJlIHVzaW5nIHByZS1zaWduZWQgVVJMcyB0byB1cGxvYWQgZnJvbSBhIGJyb3dzZXIgYW5kXG4gICAqICAgbmVlZCB0byB1c2UgdGhlc2UgZmllbGRzLCBzZWUge2NyZWF0ZVByZXNpZ25lZFBvc3R9LlxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIFtTdHJpbmddIHRoZSBuYW1lIG9mIHRoZSBvcGVyYXRpb24gdG8gY2FsbFxuICAgKiBAcGFyYW0gcGFyYW1zIFttYXBdIHBhcmFtZXRlcnMgdG8gcGFzcyB0byB0aGUgb3BlcmF0aW9uLiBTZWUgdGhlIGdpdmVuXG4gICAqICAgb3BlcmF0aW9uIGZvciB0aGUgZXhwZWN0ZWQgb3BlcmF0aW9uIHBhcmFtZXRlcnMuIEluIGFkZGl0aW9uLCB5b3UgY2FuXG4gICAqICAgYWxzbyBwYXNzIHRoZSBcIkV4cGlyZXNcIiBwYXJhbWV0ZXIgdG8gaW5mb3JtIFMzIGhvdyBsb25nIHRoZSBVUkwgc2hvdWxkXG4gICAqICAgd29yayBmb3IuXG4gICAqIEBvcHRpb24gcGFyYW1zIEV4cGlyZXMgW0ludGVnZXJdICg5MDApIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byBleHBpcmVcbiAgICogICB0aGUgcHJlLXNpZ25lZCBVUkwgb3BlcmF0aW9uIGluLiBEZWZhdWx0cyB0byAxNSBtaW51dGVzLlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgW0Z1bmN0aW9uXSBpZiBhIGNhbGxiYWNrIGlzIHByb3ZpZGVkLCB0aGlzIGZ1bmN0aW9uIHdpbGxcbiAgICogICBwYXNzIHRoZSBVUkwgYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIgKGFmdGVyIHRoZSBlcnJvciBwYXJhbWV0ZXIpIHRvXG4gICAqICAgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJuIFtTdHJpbmddIGlmIGNhbGxlZCBzeW5jaHJvbm91c2x5ICh3aXRoIG5vIGNhbGxiYWNrKSwgcmV0dXJucyB0aGVcbiAgICogICBzaWduZWQgVVJMLlxuICAgKiBAcmV0dXJuIFtudWxsXSBub3RoaW5nIGlzIHJldHVybmVkIGlmIGEgY2FsbGJhY2sgaXMgcHJvdmlkZWQuXG4gICAqIEBleGFtcGxlIFByZS1zaWduaW5nIGEgZ2V0T2JqZWN0IG9wZXJhdGlvbiAoc3luY2hyb25vdXNseSlcbiAgICogICB2YXIgcGFyYW1zID0ge0J1Y2tldDogJ2J1Y2tldCcsIEtleTogJ2tleSd9O1xuICAgKiAgIHZhciB1cmwgPSBzMy5nZXRTaWduZWRVcmwoJ2dldE9iamVjdCcsIHBhcmFtcyk7XG4gICAqICAgY29uc29sZS5sb2coJ1RoZSBVUkwgaXMnLCB1cmwpO1xuICAgKiBAZXhhbXBsZSBQcmUtc2lnbmluZyBhIHB1dE9iamVjdCAoYXN5bmNocm9ub3VzbHkpXG4gICAqICAgdmFyIHBhcmFtcyA9IHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknfTtcbiAgICogICBzMy5nZXRTaWduZWRVcmwoJ3B1dE9iamVjdCcsIHBhcmFtcywgZnVuY3Rpb24gKGVyciwgdXJsKSB7XG4gICAqICAgICBjb25zb2xlLmxvZygnVGhlIFVSTCBpcycsIHVybCk7XG4gICAqICAgfSk7XG4gICAqIEBleGFtcGxlIFByZS1zaWduaW5nIGEgcHV0T2JqZWN0IG9wZXJhdGlvbiB3aXRoIGEgc3BlY2lmaWMgcGF5bG9hZFxuICAgKiAgIHZhciBwYXJhbXMgPSB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgQm9keTogJ2JvZHknfTtcbiAgICogICB2YXIgdXJsID0gczMuZ2V0U2lnbmVkVXJsKCdwdXRPYmplY3QnLCBwYXJhbXMpO1xuICAgKiAgIGNvbnNvbGUubG9nKCdUaGUgVVJMIGlzJywgdXJsKTtcbiAgICogQGV4YW1wbGUgUGFzc2luZyBpbiBhIDEtbWludXRlIGV4cGlyeSB0aW1lIGZvciBhIHByZS1zaWduZWQgVVJMXG4gICAqICAgdmFyIHBhcmFtcyA9IHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknLCBFeHBpcmVzOiA2MH07XG4gICAqICAgdmFyIHVybCA9IHMzLmdldFNpZ25lZFVybCgnZ2V0T2JqZWN0JywgcGFyYW1zKTtcbiAgICogICBjb25zb2xlLmxvZygnVGhlIFVSTCBpcycsIHVybCk7IC8vIGV4cGlyZXMgaW4gNjAgc2Vjb25kc1xuICAgKi9cbiAgZ2V0U2lnbmVkVXJsOiBmdW5jdGlvbiBnZXRTaWduZWRVcmwob3BlcmF0aW9uLCBwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgcGFyYW1zID0gQVdTLnV0aWwuY29weShwYXJhbXMgfHwge30pO1xuICAgIHZhciBleHBpcmVzID0gcGFyYW1zLkV4cGlyZXMgfHwgOTAwO1xuICAgIGRlbGV0ZSBwYXJhbXMuRXhwaXJlczsgLy8gd2UgY2FuJ3QgdmFsaWRhdGUgdGhpc1xuICAgIHZhciByZXF1ZXN0ID0gdGhpcy5tYWtlUmVxdWVzdChvcGVyYXRpb24sIHBhcmFtcyk7XG5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIEFXUy51dGlsLmRlZmVyKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXF1ZXN0LnByZXNpZ24oZXhwaXJlcywgY2FsbGJhY2spO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXF1ZXN0LnByZXNpZ24oZXhwaXJlcywgY2FsbGJhY2spO1xuICAgIH1cbiAgfSxcblxuXG4gIC8qKlxuICAgKiBHZXQgYSBwcmUtc2lnbmVkIFBPU1QgcG9saWN5IHRvIHN1cHBvcnQgdXBsb2FkaW5nIHRvIFMzIGRpcmVjdGx5IGZyb20gYW5cbiAgICogSFRNTCBmb3JtLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIFttYXBdXG4gICAqIEBvcHRpb24gcGFyYW1zIEJ1Y2tldCBbU3RyaW5nXSAgICAgVGhlIGJ1Y2tldCB0byB3aGljaCB0aGUgcG9zdCBzaG91bGQgYmVcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRlZFxuICAgKiBAb3B0aW9uIHBhcmFtcyBFeHBpcmVzIFtJbnRlZ2VyXSAgICgzNjAwKSBUaGUgbnVtYmVyIG9mIHNlY29uZHMgZm9yIHdoaWNoXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHByZXNpZ25lZCBwb2xpY3kgc2hvdWxkIGJlIHZhbGlkLlxuICAgKiBAb3B0aW9uIHBhcmFtcyBDb25kaXRpb25zIFtBcnJheV0gIEFuIGFycmF5IG9mIGNvbmRpdGlvbnMgdGhhdCBtdXN0IGJlIG1ldFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgcHJlc2lnbmVkIHBvbGljeSB0byBhbGxvdyB0aGVcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWQuIFRoaXMgY2FuIGluY2x1ZGUgcmVxdWlyZWQgdGFncyxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYWNjZXB0ZWQgcmFuZ2UgZm9yIGNvbnRlbnQgbGVuZ3RocyxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldGMuXG4gICAqIEBzZWUgaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L0FQSS9zaWd2NC1IVFRQUE9TVENvbnN0cnVjdFBvbGljeS5odG1sXG4gICAqIEBvcHRpb24gcGFyYW1zIEZpZWxkcyBbbWFwXSAgICAgICAgRmllbGRzIHRvIGluY2x1ZGUgaW4gdGhlIGZvcm0uIEFsbFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyBwYXNzZWQgaW4gYXMgZmllbGRzIHdpbGwgYmVcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgYXMgZXhhY3QgbWF0Y2ggY29uZGl0aW9ucy5cbiAgICogQHBhcmFtIGNhbGxiYWNrIFtGdW5jdGlvbl1cbiAgICpcbiAgICogQG5vdGUgQWxsIGZpZWxkcyBwYXNzZWQgaW4gd2hlbiBjcmVhdGluZyBwcmVzaWduZWQgcG9zdCBkYXRhIHdpbGwgYmUgc2lnbmVkXG4gICAqICAgYXMgZXhhY3QgbWF0Y2ggY29uZGl0aW9ucy4gQW55IGZpZWxkcyB0aGF0IHdpbGwgYmUgaW50ZXJwb2xhdGVkIGJ5IFMzXG4gICAqICAgbXVzdCBiZSBhZGRlZCB0byB0aGUgZmllbGRzIGhhc2ggYWZ0ZXIgc2lnbmluZywgYW5kIGFuIGFwcHJvcHJpYXRlXG4gICAqICAgY29uZGl0aW9uIGZvciBzdWNoIGZpZWxkcyBtdXN0IGJlIGV4cGxpY2l0bHkgYWRkZWQgdG8gdGhlIENvbmRpdGlvbnNcbiAgICogICBhcnJheSBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBiZWZvcmUgc2lnbmluZy5cbiAgICpcbiAgICogQGV4YW1wbGUgUHJlc2lnaW5nIHBvc3QgZGF0YSB3aXRoIGEga25vd24ga2V5XG4gICAqICAgdmFyIHBhcmFtcyA9IHtcbiAgICogICAgIEJ1Y2tldDogJ2J1Y2tldCcsXG4gICAqICAgICBGaWVsZHM6IHtcbiAgICogICAgICAga2V5OiAna2V5J1xuICAgKiAgICAgfVxuICAgKiAgIH07XG4gICAqICAgczMuY3JlYXRlUHJlc2lnbmVkUG9zdChwYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgKiAgICAgaWYgKGVycikge1xuICAgKiAgICAgICBjb25zb2xlLmVycm9yKCdQcmVzaWduaW5nIHBvc3QgZGF0YSBlbmNvdW50ZXJlZCBhbiBlcnJvcicsIGVycik7XG4gICAqICAgICB9IGVsc2Uge1xuICAgKiAgICAgICBjb25zb2xlLmxvZygnVGhlIHBvc3QgZGF0YSBpcycsIGRhdGEpO1xuICAgKiAgICAgfVxuICAgKiAgIH0pO1xuICAgKlxuICAgKiBAZXhhbXBsZSBQcmVzaWduaW5nIHBvc3QgZGF0YSB3aXRoIGFuIGludGVycG9sYXRlZCBrZXlcbiAgICogICB2YXIgcGFyYW1zID0ge1xuICAgKiAgICAgQnVja2V0OiAnYnVja2V0JyxcbiAgICogICAgIENvbmRpdGlvbnM6IFtcbiAgICogICAgICAgWydzdGFydHMtd2l0aCcsICcka2V5JywgJ3BhdGgvdG8vdXBsb2Fkcy8nXVxuICAgKiAgICAgXVxuICAgKiAgIH07XG4gICAqICAgczMuY3JlYXRlUHJlc2lnbmVkUG9zdChwYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgKiAgICAgaWYgKGVycikge1xuICAgKiAgICAgICBjb25zb2xlLmVycm9yKCdQcmVzaWduaW5nIHBvc3QgZGF0YSBlbmNvdW50ZXJlZCBhbiBlcnJvcicsIGVycik7XG4gICAqICAgICB9IGVsc2Uge1xuICAgKiAgICAgICBkYXRhLkZpZWxkcy5rZXkgPSAncGF0aC90by91cGxvYWRzLyR7ZmlsZW5hbWV9JztcbiAgICogICAgICAgY29uc29sZS5sb2coJ1RoZSBwb3N0IGRhdGEgaXMnLCBkYXRhKTtcbiAgICogICAgIH1cbiAgICogICB9KTtcbiAgICpcbiAgICogQG5vdGUgWW91IG11c3QgZW5zdXJlIHRoYXQgeW91IGhhdmUgc3RhdGljIG9yIHByZXZpb3VzbHkgcmVzb2x2ZWRcbiAgICogICBjcmVkZW50aWFscyBpZiB5b3UgY2FsbCB0aGlzIG1ldGhvZCBzeW5jaHJvbm91c2x5ICh3aXRoIG5vIGNhbGxiYWNrKSxcbiAgICogICBvdGhlcndpc2UgaXQgbWF5IG5vdCBwcm9wZXJseSBzaWduIHRoZSByZXF1ZXN0LiBJZiB5b3UgY2Fubm90IGd1YXJhbnRlZVxuICAgKiAgIHRoaXMgKHlvdSBhcmUgdXNpbmcgYW4gYXN5bmNocm9ub3VzIGNyZWRlbnRpYWwgcHJvdmlkZXIsIGkuZS4sIEVDMlxuICAgKiAgIElBTSByb2xlcyksIHlvdSBzaG91bGQgYWx3YXlzIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBhbiBhc3luY2hyb25vdXNcbiAgICogICBjYWxsYmFjay5cbiAgICpcbiAgICogQHJldHVybiBbbWFwXSAgSWYgY2FsbGVkIHN5bmNocm9ub3VzbHkgKHdpdGggbm8gY2FsbGJhY2spLCByZXR1cm5zIGEgaGFzaFxuICAgKiAgICAgICAgICAgICAgICB3aXRoIHRoZSB1cmwgdG8gc2V0IGFzIHRoZSBmb3JtIGFjdGlvbiBhbmQgYSBoYXNoIG9mIGZpZWxkc1xuICAgKiAgICAgICAgICAgICAgICB0byBpbmNsdWRlIGluIHRoZSBmb3JtLlxuICAgKiBAcmV0dXJuIFtudWxsXSBOb3RoaW5nIGlzIHJldHVybmVkIGlmIGEgY2FsbGJhY2sgaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBjYWxsYmFjayBjYWxsYmFjayBmdW5jdGlvbiAoZXJyLCBkYXRhKVxuICAgKiAgQHBhcmFtIGVyciBbRXJyb3JdIHRoZSBlcnJvciBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgcG9saWN5IHNpZ25lclxuICAgKiAgQHBhcmFtIGRhdGEgW21hcF0gVGhlIGRhdGEgbmVjZXNzYXJ5IHRvIGNvbnN0cnVjdCBhbiBIVE1MIGZvcm1cbiAgICogIEBwYXJhbSBkYXRhLnVybCBbU3RyaW5nXSBUaGUgVVJMIHRvIHVzZSBhcyB0aGUgYWN0aW9uIG9mIHRoZSBmb3JtXG4gICAqICBAcGFyYW0gZGF0YS5maWVsZHMgW21hcF0gQSBoYXNoIG9mIGZpZWxkcyB0aGF0IG11c3QgYmUgaW5jbHVkZWQgaW4gdGhlXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybSBmb3IgdGhlIHVwbG9hZCB0byBzdWNjZWVkLiBUaGlzIGhhc2ggd2lsbFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgdGhlIHNpZ25lZCBQT1NUIHBvbGljeSwgeW91ciBhY2Nlc3Mga2V5XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgSUQgYW5kIHNlY3VyaXR5IHRva2VuIChpZiBwcmVzZW50KSwgZXRjLiBUaGVzZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heSBiZSBzYWZlbHkgaW5jbHVkZWQgYXMgaW5wdXQgZWxlbWVudHMgb2YgdHlwZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICdoaWRkZW4uJ1xuICAgKi9cbiAgY3JlYXRlUHJlc2lnbmVkUG9zdDogZnVuY3Rpb24gY3JlYXRlUHJlc2lnbmVkUG9zdChwYXJhbXMsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbXMgPT09ICdmdW5jdGlvbicgJiYgY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY2FsbGJhY2sgPSBwYXJhbXM7XG4gICAgICBwYXJhbXMgPSBudWxsO1xuICAgIH1cblxuICAgIHBhcmFtcyA9IEFXUy51dGlsLmNvcHkocGFyYW1zIHx8IHt9KTtcbiAgICB2YXIgYm91bmRQYXJhbXMgPSB0aGlzLmNvbmZpZy5wYXJhbXMgfHwge307XG4gICAgdmFyIGJ1Y2tldCA9IHBhcmFtcy5CdWNrZXQgfHwgYm91bmRQYXJhbXMuQnVja2V0LFxuICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICBjb25maWcgPSB0aGlzLmNvbmZpZyxcbiAgICAgIGVuZHBvaW50ID0gQVdTLnV0aWwuY29weSh0aGlzLmVuZHBvaW50KTtcbiAgICBpZiAoIWNvbmZpZy5zM0J1Y2tldEVuZHBvaW50KSB7XG4gICAgICBlbmRwb2ludC5wYXRobmFtZSA9ICcvJyArIGJ1Y2tldDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmaW5hbGl6ZVBvc3QoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1cmw6IEFXUy51dGlsLnVybEZvcm1hdChlbmRwb2ludCksXG4gICAgICAgIGZpZWxkczogc2VsZi5wcmVwYXJlUG9zdEZpZWxkcyhcbiAgICAgICAgICBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgY29uZmlnLnJlZ2lvbixcbiAgICAgICAgICBidWNrZXQsXG4gICAgICAgICAgcGFyYW1zLkZpZWxkcyxcbiAgICAgICAgICBwYXJhbXMuQ29uZGl0aW9ucyxcbiAgICAgICAgICBwYXJhbXMuRXhwaXJlc1xuICAgICAgICApXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY29uZmlnLmdldENyZWRlbnRpYWxzKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBjYWxsYmFjayhudWxsLCBmaW5hbGl6ZVBvc3QoKSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpbmFsaXplUG9zdCgpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwcmVwYXJlUG9zdEZpZWxkczogZnVuY3Rpb24gcHJlcGFyZVBvc3RGaWVsZHMoXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIGJ1Y2tldCxcbiAgICBmaWVsZHMsXG4gICAgY29uZGl0aW9ucyxcbiAgICBleHBpcmVzSW5TZWNvbmRzXG4gICkge1xuICAgIHZhciBub3cgPSB0aGlzLmdldFNrZXdDb3JyZWN0ZWREYXRlKCk7XG4gICAgaWYgKCFjcmVkZW50aWFscyB8fCAhcmVnaW9uIHx8ICFidWNrZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGNyZWF0ZSBhIFBPU1Qgb2JqZWN0IHBvbGljeSB3aXRob3V0IGEgYnVja2V0LCdcbiAgICAgICAgKyAnIHJlZ2lvbiwgYW5kIGNyZWRlbnRpYWxzJyk7XG4gICAgfVxuICAgIGZpZWxkcyA9IEFXUy51dGlsLmNvcHkoZmllbGRzIHx8IHt9KTtcbiAgICBjb25kaXRpb25zID0gKGNvbmRpdGlvbnMgfHwgW10pLnNsaWNlKDApO1xuICAgIGV4cGlyZXNJblNlY29uZHMgPSBleHBpcmVzSW5TZWNvbmRzIHx8IDM2MDA7XG5cbiAgICB2YXIgc2lnbmluZ0RhdGUgPSBBV1MudXRpbC5kYXRlLmlzbzg2MDEobm93KS5yZXBsYWNlKC9bOlxcLV18XFwuXFxkezN9L2csICcnKTtcbiAgICB2YXIgc2hvcnREYXRlID0gc2lnbmluZ0RhdGUuc3Vic3RyKDAsIDgpO1xuICAgIHZhciBzY29wZSA9IHY0Q3JlZGVudGlhbHMuY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sICdzMycpO1xuICAgIHZhciBjcmVkZW50aWFsID0gY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgKyAnLycgKyBzY29wZTtcblxuICAgIGZpZWxkc1snYnVja2V0J10gPSBidWNrZXQ7XG4gICAgZmllbGRzWydYLUFtei1BbGdvcml0aG0nXSA9ICdBV1M0LUhNQUMtU0hBMjU2JztcbiAgICBmaWVsZHNbJ1gtQW16LUNyZWRlbnRpYWwnXSA9IGNyZWRlbnRpYWw7XG4gICAgZmllbGRzWydYLUFtei1EYXRlJ10gPSBzaWduaW5nRGF0ZTtcbiAgICBpZiAoY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuKSB7XG4gICAgICBmaWVsZHNbJ1gtQW16LVNlY3VyaXR5LVRva2VuJ10gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuICAgIGZvciAodmFyIGZpZWxkIGluIGZpZWxkcykge1xuICAgICAgaWYgKGZpZWxkcy5oYXNPd25Qcm9wZXJ0eShmaWVsZCkpIHtcbiAgICAgICAgdmFyIGNvbmRpdGlvbiA9IHt9O1xuICAgICAgICBjb25kaXRpb25bZmllbGRdID0gZmllbGRzW2ZpZWxkXTtcbiAgICAgICAgY29uZGl0aW9ucy5wdXNoKGNvbmRpdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmllbGRzLlBvbGljeSA9IHRoaXMucHJlcGFyZVBvc3RQb2xpY3koXG4gICAgICBuZXcgRGF0ZShub3cudmFsdWVPZigpICsgZXhwaXJlc0luU2Vjb25kcyAqIDEwMDApLFxuICAgICAgY29uZGl0aW9uc1xuICAgICk7XG4gICAgZmllbGRzWydYLUFtei1TaWduYXR1cmUnXSA9IEFXUy51dGlsLmNyeXB0by5obWFjKFxuICAgICAgdjRDcmVkZW50aWFscy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCBzaG9ydERhdGUsIHJlZ2lvbiwgJ3MzJywgdHJ1ZSksXG4gICAgICBmaWVsZHMuUG9saWN5LFxuICAgICAgJ2hleCdcbiAgICApO1xuXG4gICAgcmV0dXJuIGZpZWxkcztcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwcmVwYXJlUG9zdFBvbGljeTogZnVuY3Rpb24gcHJlcGFyZVBvc3RQb2xpY3koZXhwaXJhdGlvbiwgY29uZGl0aW9ucykge1xuICAgIHJldHVybiBBV1MudXRpbC5iYXNlNjQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGV4cGlyYXRpb246IEFXUy51dGlsLmRhdGUuaXNvODYwMShleHBpcmF0aW9uKSxcbiAgICAgIGNvbmRpdGlvbnM6IGNvbmRpdGlvbnNcbiAgICB9KSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcHJlcGFyZVNpZ25lZFVybDogZnVuY3Rpb24gcHJlcGFyZVNpZ25lZFVybChyZXF1ZXN0KSB7XG4gICAgcmVxdWVzdC5hZGRMaXN0ZW5lcigndmFsaWRhdGUnLCByZXF1ZXN0LnNlcnZpY2Uubm9QcmVzaWduZWRDb250ZW50TGVuZ3RoKTtcbiAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdidWlsZCcsIHJlcXVlc3Quc2VydmljZS5hZGRDb250ZW50VHlwZSk7XG4gICAgaWYgKCFyZXF1ZXN0LnBhcmFtcy5Cb2R5KSB7XG4gICAgICAvLyBubyBDb250ZW50LU1ENS9TSEEtMjU2IGlmIGJvZHkgaXMgbm90IHByb3ZpZGVkXG4gICAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdidWlsZCcsIHJlcXVlc3Quc2VydmljZS5jb21wdXRlQ29udGVudE1kNSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2FmdGVyQnVpbGQnLCBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5DT01QVVRFX1NIQTI1Nik7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICogQHBhcmFtIHJlcXVlc3RcbiAgICovXG4gIGRpc2FibGVCb2R5U2lnbmluZzogZnVuY3Rpb24gZGlzYWJsZUJvZHlTaWduaW5nKHJlcXVlc3QpIHtcbiAgICB2YXIgaGVhZGVycyA9IHJlcXVlc3QuaHR0cFJlcXVlc3QuaGVhZGVycztcbiAgICAvLyBBZGQgdGhlIGhlYWRlciB0byBhbnl0aGluZyB0aGF0IGlzbid0IGEgcHJlc2lnbmVkIHVybCwgdW5sZXNzIHRoYXQgcHJlc2lnbmVkIHVybCBoYWQgYSBib2R5IGRlZmluZWRcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoZWFkZXJzLCAncHJlc2lnbmVkLWV4cGlyZXMnKSkge1xuICAgICAgaGVhZGVyc1snWC1BbXotQ29udGVudC1TaGEyNTYnXSA9ICdVTlNJR05FRC1QQVlMT0FEJztcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbm9QcmVzaWduZWRDb250ZW50TGVuZ3RoOiBmdW5jdGlvbiBub1ByZXNpZ25lZENvbnRlbnRMZW5ndGgocmVxdWVzdCkge1xuICAgIGlmIChyZXF1ZXN0LnBhcmFtcy5Db250ZW50TGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7Y29kZTogJ1VuZXhwZWN0ZWRQYXJhbWV0ZXInLFxuICAgICAgICBtZXNzYWdlOiAnQ29udGVudExlbmd0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHByZS1zaWduZWQgVVJMcy4nfSk7XG4gICAgfVxuICB9LFxuXG4gIGNyZWF0ZUJ1Y2tldDogZnVuY3Rpb24gY3JlYXRlQnVja2V0KHBhcmFtcywgY2FsbGJhY2spIHtcbiAgICAvLyBXaGVuIGNyZWF0aW5nIGEgYnVja2V0ICpvdXRzaWRlKiB0aGUgY2xhc3NpYyByZWdpb24sIHRoZSBsb2NhdGlvblxuICAgIC8vIGNvbnN0cmFpbnQgbXVzdCBiZSBzZXQgZm9yIHRoZSBidWNrZXQgYW5kIGl0IG11c3QgbWF0Y2ggdGhlIGVuZHBvaW50LlxuICAgIC8vIFRoaXMgY2h1bmsgb2YgY29kZSB3aWxsIHNldCB0aGUgbG9jYXRpb24gY29uc3RyYWludCBwYXJhbSBiYXNlZFxuICAgIC8vIG9uIHRoZSByZWdpb24gKHdoZW4gcG9zc2libGUpLCBidXQgaXQgd2lsbCBub3Qgb3ZlcnJpZGUgYSBwYXNzZWQtaW5cbiAgICAvLyBsb2NhdGlvbiBjb25zdHJhaW50LlxuICAgIGlmICh0eXBlb2YgcGFyYW1zID09PSAnZnVuY3Rpb24nIHx8ICFwYXJhbXMpIHtcbiAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgcGFyYW1zO1xuICAgICAgcGFyYW1zID0ge307XG4gICAgfVxuICAgIHZhciBob3N0bmFtZSA9IHRoaXMuZW5kcG9pbnQuaG9zdG5hbWU7XG4gICAgaWYgKGhvc3RuYW1lICE9PSB0aGlzLmFwaS5nbG9iYWxFbmRwb2ludCAmJiAhcGFyYW1zLkNyZWF0ZUJ1Y2tldENvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHBhcmFtcy5DcmVhdGVCdWNrZXRDb25maWd1cmF0aW9uID0geyBMb2NhdGlvbkNvbnN0cmFpbnQ6IHRoaXMuY29uZmlnLnJlZ2lvbiB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdCgnY3JlYXRlQnVja2V0JywgcGFyYW1zLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBzZWUgQVdTLlMzLk1hbmFnZWRVcGxvYWRcbiAgICogQG92ZXJsb2FkIHVwbG9hZChwYXJhbXMgPSB7fSwgW29wdGlvbnNdLCBbY2FsbGJhY2tdKVxuICAgKiAgIFVwbG9hZHMgYW4gYXJiaXRyYXJpbHkgc2l6ZWQgYnVmZmVyLCBibG9iLCBvciBzdHJlYW0sIHVzaW5nIGludGVsbGlnZW50XG4gICAqICAgY29uY3VycmVudCBoYW5kbGluZyBvZiBwYXJ0cyBpZiB0aGUgcGF5bG9hZCBpcyBsYXJnZSBlbm91Z2guIFlvdSBjYW5cbiAgICogICBjb25maWd1cmUgdGhlIGNvbmN1cnJlbnQgcXVldWUgc2l6ZSBieSBzZXR0aW5nIGBvcHRpb25zYC4gTm90ZSB0aGF0IHRoaXNcbiAgICogICBpcyB0aGUgb25seSBvcGVyYXRpb24gZm9yIHdoaWNoIHRoZSBTREsgY2FuIHJldHJ5IHJlcXVlc3RzIHdpdGggc3RyZWFtXG4gICAqICAgYm9kaWVzLlxuICAgKlxuICAgKiAgIEBwYXJhbSAoc2VlIEFXUy5TMy5wdXRPYmplY3QpXG4gICAqICAgQG9wdGlvbiAoc2VlIEFXUy5TMy5NYW5hZ2VkVXBsb2FkLmNvbnN0cnVjdG9yKVxuICAgKiAgIEByZXR1cm4gW0FXUy5TMy5NYW5hZ2VkVXBsb2FkXSB0aGUgbWFuYWdlZCB1cGxvYWQgb2JqZWN0IHRoYXQgY2FuIGNhbGxcbiAgICogICAgIGBzZW5kKClgIG9yIHRyYWNrIHByb2dyZXNzLlxuICAgKiAgIEBleGFtcGxlIFVwbG9hZGluZyBhIHN0cmVhbSBvYmplY3RcbiAgICogICAgIHZhciBwYXJhbXMgPSB7QnVja2V0OiAnYnVja2V0JywgS2V5OiAna2V5JywgQm9keTogc3RyZWFtfTtcbiAgICogICAgIHMzLnVwbG9hZChwYXJhbXMsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgKiAgICAgICBjb25zb2xlLmxvZyhlcnIsIGRhdGEpO1xuICAgKiAgICAgfSk7XG4gICAqICAgQGV4YW1wbGUgVXBsb2FkaW5nIGEgc3RyZWFtIHdpdGggY29uY3VycmVuY3kgb2YgMSBhbmQgcGFydFNpemUgb2YgMTBtYlxuICAgKiAgICAgdmFyIHBhcmFtcyA9IHtCdWNrZXQ6ICdidWNrZXQnLCBLZXk6ICdrZXknLCBCb2R5OiBzdHJlYW19O1xuICAgKiAgICAgdmFyIG9wdGlvbnMgPSB7cGFydFNpemU6IDEwICogMTAyNCAqIDEwMjQsIHF1ZXVlU2l6ZTogMX07XG4gICAqICAgICBzMy51cGxvYWQocGFyYW1zLCBvcHRpb25zLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICogICAgICAgY29uc29sZS5sb2coZXJyLCBkYXRhKTtcbiAgICogICAgIH0pO1xuICAgKiBAY2FsbGJhY2sgY2FsbGJhY2sgZnVuY3Rpb24oZXJyLCBkYXRhKVxuICAgKiAgIEBwYXJhbSBlcnIgW0Vycm9yXSBhbiBlcnJvciBvciBudWxsIGlmIG5vIGVycm9yIG9jY3VycmVkLlxuICAgKiAgIEBwYXJhbSBkYXRhIFttYXBdIFRoZSByZXNwb25zZSBkYXRhIGZyb20gdGhlIHN1Y2Nlc3NmdWwgdXBsb2FkOlxuICAgKiAgIEBwYXJhbSBkYXRhLkxvY2F0aW9uIFtTdHJpbmddIHRoZSBVUkwgb2YgdGhlIHVwbG9hZGVkIG9iamVjdFxuICAgKiAgIEBwYXJhbSBkYXRhLkVUYWcgW1N0cmluZ10gdGhlIEVUYWcgb2YgdGhlIHVwbG9hZGVkIG9iamVjdFxuICAgKiAgIEBwYXJhbSBkYXRhLkJ1Y2tldCBbU3RyaW5nXSAgdGhlIGJ1Y2tldCB0byB3aGljaCB0aGUgb2JqZWN0IHdhcyB1cGxvYWRlZFxuICAgKiAgIEBwYXJhbSBkYXRhLktleSBbU3RyaW5nXSB0aGUga2V5IHRvIHdoaWNoIHRoZSBvYmplY3Qgd2FzIHVwbG9hZGVkXG4gICAqL1xuICB1cGxvYWQ6IGZ1bmN0aW9uIHVwbG9hZChwYXJhbXMsIG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nICYmIGNhbGxiYWNrID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgIG9wdGlvbnMgPSBudWxsO1xuICAgIH1cblxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIG9wdGlvbnMgPSBBV1MudXRpbC5tZXJnZShvcHRpb25zIHx8IHt9LCB7c2VydmljZTogdGhpcywgcGFyYW1zOiBwYXJhbXN9KTtcblxuICAgIHZhciB1cGxvYWRlciA9IG5ldyBBV1MuUzMuTWFuYWdlZFVwbG9hZChvcHRpb25zKTtcbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB1cGxvYWRlci5zZW5kKGNhbGxiYWNrKTtcbiAgICByZXR1cm4gdXBsb2FkZXI7XG4gIH1cbn0pO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxuQVdTLnV0aWwudXBkYXRlKEFXUy5TUVMucHJvdG90eXBlLCB7XG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNldHVwUmVxdWVzdExpc3RlbmVyczogZnVuY3Rpb24gc2V0dXBSZXF1ZXN0TGlzdGVuZXJzKHJlcXVlc3QpIHtcbiAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdidWlsZCcsIHRoaXMuYnVpbGRFbmRwb2ludCk7XG5cbiAgICBpZiAocmVxdWVzdC5zZXJ2aWNlLmNvbmZpZy5jb21wdXRlQ2hlY2tzdW1zKSB7XG4gICAgICBpZiAocmVxdWVzdC5vcGVyYXRpb24gPT09ICdzZW5kTWVzc2FnZScpIHtcbiAgICAgICAgcmVxdWVzdC5hZGRMaXN0ZW5lcignZXh0cmFjdERhdGEnLCB0aGlzLnZlcmlmeVNlbmRNZXNzYWdlQ2hlY2tzdW0pO1xuICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0Lm9wZXJhdGlvbiA9PT0gJ3NlbmRNZXNzYWdlQmF0Y2gnKSB7XG4gICAgICAgIHJlcXVlc3QuYWRkTGlzdGVuZXIoJ2V4dHJhY3REYXRhJywgdGhpcy52ZXJpZnlTZW5kTWVzc2FnZUJhdGNoQ2hlY2tzdW0pO1xuICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0Lm9wZXJhdGlvbiA9PT0gJ3JlY2VpdmVNZXNzYWdlJykge1xuICAgICAgICByZXF1ZXN0LmFkZExpc3RlbmVyKCdleHRyYWN0RGF0YScsIHRoaXMudmVyaWZ5UmVjZWl2ZU1lc3NhZ2VDaGVja3N1bSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHZlcmlmeVNlbmRNZXNzYWdlQ2hlY2tzdW06IGZ1bmN0aW9uIHZlcmlmeVNlbmRNZXNzYWdlQ2hlY2tzdW0ocmVzcG9uc2UpIHtcbiAgICBpZiAoIXJlc3BvbnNlLmRhdGEpIHJldHVybjtcblxuICAgIHZhciBtZDUgPSByZXNwb25zZS5kYXRhLk1ENU9mTWVzc2FnZUJvZHk7XG4gICAgdmFyIGJvZHkgPSB0aGlzLnBhcmFtcy5NZXNzYWdlQm9keTtcbiAgICB2YXIgY2FsY3VsYXRlZE1kNSA9IHRoaXMuc2VydmljZS5jYWxjdWxhdGVDaGVja3N1bShib2R5KTtcbiAgICBpZiAoY2FsY3VsYXRlZE1kNSAhPT0gbWQ1KSB7XG4gICAgICB2YXIgbXNnID0gJ0dvdCBcIicgKyByZXNwb25zZS5kYXRhLk1ENU9mTWVzc2FnZUJvZHkgK1xuICAgICAgICAnXCIsIGV4cGVjdGluZyBcIicgKyBjYWxjdWxhdGVkTWQ1ICsgJ1wiLic7XG4gICAgICB0aGlzLnNlcnZpY2UudGhyb3dJbnZhbGlkQ2hlY2tzdW1FcnJvcihyZXNwb25zZSxcbiAgICAgICAgW3Jlc3BvbnNlLmRhdGEuTWVzc2FnZUlkXSwgbXNnKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdmVyaWZ5U2VuZE1lc3NhZ2VCYXRjaENoZWNrc3VtOiBmdW5jdGlvbiB2ZXJpZnlTZW5kTWVzc2FnZUJhdGNoQ2hlY2tzdW0ocmVzcG9uc2UpIHtcbiAgICBpZiAoIXJlc3BvbnNlLmRhdGEpIHJldHVybjtcblxuICAgIHZhciBzZXJ2aWNlID0gdGhpcy5zZXJ2aWNlO1xuICAgIHZhciBlbnRyaWVzID0ge307XG4gICAgdmFyIGVycm9ycyA9IFtdO1xuICAgIHZhciBtZXNzYWdlSWRzID0gW107XG4gICAgQVdTLnV0aWwuYXJyYXlFYWNoKHJlc3BvbnNlLmRhdGEuU3VjY2Vzc2Z1bCwgZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgICBlbnRyaWVzW2VudHJ5LklkXSA9IGVudHJ5O1xuICAgIH0pO1xuICAgIEFXUy51dGlsLmFycmF5RWFjaCh0aGlzLnBhcmFtcy5FbnRyaWVzLCBmdW5jdGlvbiAoZW50cnkpIHtcbiAgICAgIGlmIChlbnRyaWVzW2VudHJ5LklkXSkge1xuICAgICAgICB2YXIgbWQ1ID0gZW50cmllc1tlbnRyeS5JZF0uTUQ1T2ZNZXNzYWdlQm9keTtcbiAgICAgICAgdmFyIGJvZHkgPSBlbnRyeS5NZXNzYWdlQm9keTtcbiAgICAgICAgaWYgKCFzZXJ2aWNlLmlzQ2hlY2tzdW1WYWxpZChtZDUsIGJvZHkpKSB7XG4gICAgICAgICAgZXJyb3JzLnB1c2goZW50cnkuSWQpO1xuICAgICAgICAgIG1lc3NhZ2VJZHMucHVzaChlbnRyaWVzW2VudHJ5LklkXS5NZXNzYWdlSWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHNlcnZpY2UudGhyb3dJbnZhbGlkQ2hlY2tzdW1FcnJvcihyZXNwb25zZSwgbWVzc2FnZUlkcyxcbiAgICAgICAgJ0ludmFsaWQgbWVzc2FnZXM6ICcgKyBlcnJvcnMuam9pbignLCAnKSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHZlcmlmeVJlY2VpdmVNZXNzYWdlQ2hlY2tzdW06IGZ1bmN0aW9uIHZlcmlmeVJlY2VpdmVNZXNzYWdlQ2hlY2tzdW0ocmVzcG9uc2UpIHtcbiAgICBpZiAoIXJlc3BvbnNlLmRhdGEpIHJldHVybjtcblxuICAgIHZhciBzZXJ2aWNlID0gdGhpcy5zZXJ2aWNlO1xuICAgIHZhciBtZXNzYWdlSWRzID0gW107XG4gICAgQVdTLnV0aWwuYXJyYXlFYWNoKHJlc3BvbnNlLmRhdGEuTWVzc2FnZXMsIGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICAgIHZhciBtZDUgPSBtZXNzYWdlLk1ENU9mQm9keTtcbiAgICAgIHZhciBib2R5ID0gbWVzc2FnZS5Cb2R5O1xuICAgICAgaWYgKCFzZXJ2aWNlLmlzQ2hlY2tzdW1WYWxpZChtZDUsIGJvZHkpKSB7XG4gICAgICAgIG1lc3NhZ2VJZHMucHVzaChtZXNzYWdlLk1lc3NhZ2VJZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobWVzc2FnZUlkcy5sZW5ndGggPiAwKSB7XG4gICAgICBzZXJ2aWNlLnRocm93SW52YWxpZENoZWNrc3VtRXJyb3IocmVzcG9uc2UsIG1lc3NhZ2VJZHMsXG4gICAgICAgICdJbnZhbGlkIG1lc3NhZ2VzOiAnICsgbWVzc2FnZUlkcy5qb2luKCcsICcpKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgdGhyb3dJbnZhbGlkQ2hlY2tzdW1FcnJvcjogZnVuY3Rpb24gdGhyb3dJbnZhbGlkQ2hlY2tzdW1FcnJvcihyZXNwb25zZSwgaWRzLCBtZXNzYWdlKSB7XG4gICAgcmVzcG9uc2UuZXJyb3IgPSBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgcmV0cnlhYmxlOiB0cnVlLFxuICAgICAgY29kZTogJ0ludmFsaWRDaGVja3N1bScsXG4gICAgICBtZXNzYWdlSWRzOiBpZHMsXG4gICAgICBtZXNzYWdlOiByZXNwb25zZS5yZXF1ZXN0Lm9wZXJhdGlvbiArXG4gICAgICAgICAgICAgICAnIHJldHVybmVkIGFuIGludmFsaWQgTUQ1IHJlc3BvbnNlLiAnICsgbWVzc2FnZVxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGlzQ2hlY2tzdW1WYWxpZDogZnVuY3Rpb24gaXNDaGVja3N1bVZhbGlkKGNoZWNrc3VtLCBkYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlQ2hlY2tzdW0oZGF0YSkgPT09IGNoZWNrc3VtO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNhbGN1bGF0ZUNoZWNrc3VtOiBmdW5jdGlvbiBjYWxjdWxhdGVDaGVja3N1bShkYXRhKSB7XG4gICAgcmV0dXJuIEFXUy51dGlsLmNyeXB0by5tZDUoZGF0YSwgJ2hleCcpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGJ1aWxkRW5kcG9pbnQ6IGZ1bmN0aW9uIGJ1aWxkRW5kcG9pbnQocmVxdWVzdCkge1xuICAgIHZhciB1cmwgPSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LnBhcmFtcy5RdWV1ZVVybDtcbiAgICBpZiAodXJsKSB7XG4gICAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmVuZHBvaW50ID0gbmV3IEFXUy5FbmRwb2ludCh1cmwpO1xuXG4gICAgICAvLyBzaWduYXR1cmUgdmVyc2lvbiA0IHJlcXVpcmVzIHRoZSByZWdpb24gbmFtZSB0byBiZSBzZXQsXG4gICAgICAvLyBzcXMgcXVldWUgdXJscyBjb250YWluIHRoZSByZWdpb24gbmFtZVxuICAgICAgdmFyIG1hdGNoZXMgPSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmVuZHBvaW50Lmhvc3QubWF0Y2goL15zcXNcXC4oLis/KVxcLi8pO1xuICAgICAgaWYgKG1hdGNoZXMpIHJlcXVlc3QuaHR0cFJlcXVlc3QucmVnaW9uID0gbWF0Y2hlc1sxXTtcbiAgICB9XG4gIH1cbn0pO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxuQVdTLnV0aWwudXBkYXRlKEFXUy5TVFMucHJvdG90eXBlLCB7XG4gIC8qKlxuICAgKiBAb3ZlcmxvYWQgY3JlZGVudGlhbHNGcm9tKGRhdGEsIGNyZWRlbnRpYWxzID0gbnVsbClcbiAgICogICBDcmVhdGVzIGEgY3JlZGVudGlhbHMgb2JqZWN0IGZyb20gU1RTIHJlc3BvbnNlIGRhdGEgY29udGFpbmluZ1xuICAgKiAgIGNyZWRlbnRpYWxzIGluZm9ybWF0aW9uLiBVc2VmdWwgZm9yIHF1aWNrbHkgc2V0dGluZyBBV1MgY3JlZGVudGlhbHMuXG4gICAqXG4gICAqICAgQG5vdGUgVGhpcyBpcyBhIGxvdy1sZXZlbCB1dGlsaXR5IGZ1bmN0aW9uLiBJZiB5b3Ugd2FudCB0byBsb2FkIHRlbXBvcmFyeVxuICAgKiAgICAgY3JlZGVudGlhbHMgaW50byB5b3VyIHByb2Nlc3MgZm9yIHN1YnNlcXVlbnQgcmVxdWVzdHMgdG8gQVdTIHJlc291cmNlcyxcbiAgICogICAgIHlvdSBzaG91bGQgdXNlIHtBV1MuVGVtcG9yYXJ5Q3JlZGVudGlhbHN9IGluc3RlYWQuXG4gICAqICAgQHBhcmFtIGRhdGEgW21hcF0gZGF0YSByZXRyaWV2ZWQgZnJvbSBhIGNhbGwgdG8ge2dldEZlZGVyYXRlZFRva2VufSxcbiAgICogICAgIHtnZXRTZXNzaW9uVG9rZW59LCB7YXNzdW1lUm9sZX0sIG9yIHthc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5fS5cbiAgICogICBAcGFyYW0gY3JlZGVudGlhbHMgW0FXUy5DcmVkZW50aWFsc10gYW4gb3B0aW9uYWwgY3JlZGVudGlhbHMgb2JqZWN0IHRvXG4gICAqICAgICBmaWxsIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb2JqZWN0LiBVc2VmdWwgd2hlbiBtb2RpZnlpbmcgYW5cbiAgICogICAgIGV4aXN0aW5nIGNyZWRlbnRpYWxzIG9iamVjdCBmcm9tIGEgcmVmcmVzaCBjYWxsLlxuICAgKiAgIEByZXR1cm4gW0FXUy5UZW1wb3JhcnlDcmVkZW50aWFsc10gdGhlIHNldCBvZiB0ZW1wb3JhcnkgY3JlZGVudGlhbHNcbiAgICogICAgIGxvYWRlZCBmcm9tIGEgcmF3IFNUUyBvcGVyYXRpb24gcmVzcG9uc2UuXG4gICAqICAgQGV4YW1wbGUgVXNpbmcgY3JlZGVudGlhbHNGcm9tIHRvIGxvYWQgZ2xvYmFsIEFXUyBjcmVkZW50aWFsc1xuICAgKiAgICAgdmFyIHN0cyA9IG5ldyBBV1MuU1RTKCk7XG4gICAqICAgICBzdHMuZ2V0U2Vzc2lvblRva2VuKGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICogICAgICAgaWYgKGVycikgY29uc29sZS5sb2coXCJFcnJvciBnZXR0aW5nIGNyZWRlbnRpYWxzXCIpO1xuICAgKiAgICAgICBlbHNlIHtcbiAgICogICAgICAgICBBV1MuY29uZmlnLmNyZWRlbnRpYWxzID0gc3RzLmNyZWRlbnRpYWxzRnJvbShkYXRhKTtcbiAgICogICAgICAgfVxuICAgKiAgICAgfSk7XG4gICAqICAgQHNlZSBBV1MuVGVtcG9yYXJ5Q3JlZGVudGlhbHNcbiAgICovXG4gIGNyZWRlbnRpYWxzRnJvbTogZnVuY3Rpb24gY3JlZGVudGlhbHNGcm9tKGRhdGEsIGNyZWRlbnRpYWxzKSB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIWNyZWRlbnRpYWxzKSBjcmVkZW50aWFscyA9IG5ldyBBV1MuVGVtcG9yYXJ5Q3JlZGVudGlhbHMoKTtcbiAgICBjcmVkZW50aWFscy5leHBpcmVkID0gZmFsc2U7XG4gICAgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgPSBkYXRhLkNyZWRlbnRpYWxzLkFjY2Vzc0tleUlkO1xuICAgIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSA9IGRhdGEuQ3JlZGVudGlhbHMuU2VjcmV0QWNjZXNzS2V5O1xuICAgIGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbiA9IGRhdGEuQ3JlZGVudGlhbHMuU2Vzc2lvblRva2VuO1xuICAgIGNyZWRlbnRpYWxzLmV4cGlyZVRpbWUgPSBkYXRhLkNyZWRlbnRpYWxzLkV4cGlyYXRpb247XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICB9LFxuXG4gIGFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHk6IGZ1bmN0aW9uIGFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHkocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLm1ha2VVbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0KCdhc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5JywgcGFyYW1zLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgYXNzdW1lUm9sZVdpdGhTQU1MOiBmdW5jdGlvbiBhc3N1bWVSb2xlV2l0aFNBTUwocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLm1ha2VVbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0KCdhc3N1bWVSb2xlV2l0aFNBTUwnLCBwYXJhbXMsIGNhbGxiYWNrKTtcbiAgfVxufSk7XG4iLCJ2YXIgQVdTID0gcmVxdWlyZSgnLi4vY29yZScpO1xudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgZXhwaXJlc0hlYWRlciA9ICdwcmVzaWduZWQtZXhwaXJlcyc7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNpZ25lZFVybEJ1aWxkZXIocmVxdWVzdCkge1xuICB2YXIgZXhwaXJlcyA9IHJlcXVlc3QuaHR0cFJlcXVlc3QuaGVhZGVyc1tleHBpcmVzSGVhZGVyXTtcbiAgdmFyIHNpZ25lckNsYXNzID0gcmVxdWVzdC5zZXJ2aWNlLmdldFNpZ25lckNsYXNzKHJlcXVlc3QpO1xuXG4gIGRlbGV0ZSByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnNbJ1VzZXItQWdlbnQnXTtcbiAgZGVsZXRlIHJlcXVlc3QuaHR0cFJlcXVlc3QuaGVhZGVyc1snWC1BbXotVXNlci1BZ2VudCddO1xuXG4gIGlmIChzaWduZXJDbGFzcyA9PT0gQVdTLlNpZ25lcnMuVjQpIHtcbiAgICBpZiAoZXhwaXJlcyA+IDYwNDgwMCkgeyAvLyBvbmUgd2VlayBleHBpcnkgaXMgaW52YWxpZFxuICAgICAgdmFyIG1lc3NhZ2UgPSAnUHJlc2lnbmluZyBkb2VzIG5vdCBzdXBwb3J0IGV4cGlyeSB0aW1lIGdyZWF0ZXIgJyArXG4gICAgICAgICAgICAgICAgICAgICd0aGFuIGEgd2VlayB3aXRoIFNpZ1Y0IHNpZ25pbmcuJztcbiAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcigpLCB7XG4gICAgICAgIGNvZGU6ICdJbnZhbGlkRXhwaXJ5VGltZScsIG1lc3NhZ2U6IG1lc3NhZ2UsIHJldHJ5YWJsZTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnNbZXhwaXJlc0hlYWRlcl0gPSBleHBpcmVzO1xuICB9IGVsc2UgaWYgKHNpZ25lckNsYXNzID09PSBBV1MuU2lnbmVycy5TMykge1xuICAgIHZhciBub3cgPSByZXF1ZXN0LnNlcnZpY2UgPyByZXF1ZXN0LnNlcnZpY2UuZ2V0U2tld0NvcnJlY3RlZERhdGUoKSA6IEFXUy51dGlsLmRhdGUuZ2V0RGF0ZSgpO1xuICAgIHJlcXVlc3QuaHR0cFJlcXVlc3QuaGVhZGVyc1tleHBpcmVzSGVhZGVyXSA9IHBhcnNlSW50KFxuICAgICAgQVdTLnV0aWwuZGF0ZS51bml4VGltZXN0YW1wKG5vdykgKyBleHBpcmVzLCAxMCkudG9TdHJpbmcoKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBBV1MudXRpbC5lcnJvcihuZXcgRXJyb3IoKSwge1xuICAgICAgbWVzc2FnZTogJ1ByZXNpZ25pbmcgb25seSBzdXBwb3J0cyBTMyBvciBTaWdWNCBzaWduaW5nLicsXG4gICAgICBjb2RlOiAnVW5zdXBwb3J0ZWRTaWduZXInLCByZXRyeWFibGU6IGZhbHNlXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gc2lnbmVkVXJsU2lnbmVyKHJlcXVlc3QpIHtcbiAgdmFyIGVuZHBvaW50ID0gcmVxdWVzdC5odHRwUmVxdWVzdC5lbmRwb2ludDtcbiAgdmFyIHBhcnNlZFVybCA9IEFXUy51dGlsLnVybFBhcnNlKHJlcXVlc3QuaHR0cFJlcXVlc3QucGF0aCk7XG4gIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuXG4gIGlmIChwYXJzZWRVcmwuc2VhcmNoKSB7XG4gICAgcXVlcnlQYXJhbXMgPSBBV1MudXRpbC5xdWVyeVN0cmluZ1BhcnNlKHBhcnNlZFVybC5zZWFyY2guc3Vic3RyKDEpKTtcbiAgfVxuXG4gIHZhciBhdXRoID0gcmVxdWVzdC5odHRwUmVxdWVzdC5oZWFkZXJzWydBdXRob3JpemF0aW9uJ10uc3BsaXQoJyAnKTtcbiAgaWYgKGF1dGhbMF0gPT09ICdBV1MnKSB7XG4gICAgYXV0aCA9IGF1dGhbMV0uc3BsaXQoJzonKTtcbiAgICBxdWVyeVBhcmFtc1snQVdTQWNjZXNzS2V5SWQnXSA9IGF1dGhbMF07XG4gICAgcXVlcnlQYXJhbXNbJ1NpZ25hdHVyZSddID0gYXV0aFsxXTtcblxuICAgIEFXUy51dGlsLmVhY2gocmVxdWVzdC5odHRwUmVxdWVzdC5oZWFkZXJzLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKGtleSA9PT0gZXhwaXJlc0hlYWRlcikga2V5ID0gJ0V4cGlyZXMnO1xuICAgICAgaWYgKGtleS5pbmRleE9mKCd4LWFtei1tZXRhLScpID09PSAwKSB7XG4gICAgICAgIC8vIERlbGV0ZSBleGlzdGluZywgcG90ZW50aWFsbHkgbm90IG5vcm1hbGl6ZWQga2V5XG4gICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1trZXldO1xuICAgICAgICBrZXkgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cbiAgICAgIHF1ZXJ5UGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICBkZWxldGUgcmVxdWVzdC5odHRwUmVxdWVzdC5oZWFkZXJzW2V4cGlyZXNIZWFkZXJdO1xuICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1snQXV0aG9yaXphdGlvbiddO1xuICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1snSG9zdCddO1xuICB9IGVsc2UgaWYgKGF1dGhbMF0gPT09ICdBV1M0LUhNQUMtU0hBMjU2JykgeyAvLyBTaWdWNCBzaWduaW5nXG4gICAgYXV0aC5zaGlmdCgpO1xuICAgIHZhciByZXN0ID0gYXV0aC5qb2luKCcgJyk7XG4gICAgdmFyIHNpZ25hdHVyZSA9IHJlc3QubWF0Y2goL1NpZ25hdHVyZT0oLio/KSg/Oix8XFxzfFxccj9cXG58JCkvKVsxXTtcbiAgICBxdWVyeVBhcmFtc1snWC1BbXotU2lnbmF0dXJlJ10gPSBzaWduYXR1cmU7XG4gICAgZGVsZXRlIHF1ZXJ5UGFyYW1zWydFeHBpcmVzJ107XG4gIH1cblxuICAvLyBidWlsZCBVUkxcbiAgZW5kcG9pbnQucGF0aG5hbWUgPSBwYXJzZWRVcmwucGF0aG5hbWU7XG4gIGVuZHBvaW50LnNlYXJjaCA9IEFXUy51dGlsLnF1ZXJ5UGFyYW1zVG9TdHJpbmcocXVlcnlQYXJhbXMpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuU2lnbmVycy5QcmVzaWduID0gaW5oZXJpdCh7XG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIHNpZ246IGZ1bmN0aW9uIHNpZ24ocmVxdWVzdCwgZXhwaXJlVGltZSwgY2FsbGJhY2spIHtcbiAgICByZXF1ZXN0Lmh0dHBSZXF1ZXN0LmhlYWRlcnNbZXhwaXJlc0hlYWRlcl0gPSBleHBpcmVUaW1lIHx8IDM2MDA7XG4gICAgcmVxdWVzdC5vbignYnVpbGQnLCBzaWduZWRVcmxCdWlsZGVyKTtcbiAgICByZXF1ZXN0Lm9uKCdzaWduJywgc2lnbmVkVXJsU2lnbmVyKTtcbiAgICByZXF1ZXN0LnJlbW92ZUxpc3RlbmVyKCdhZnRlckJ1aWxkJyxcbiAgICAgIEFXUy5FdmVudExpc3RlbmVycy5Db3JlLlNFVF9DT05URU5UX0xFTkdUSCk7XG4gICAgcmVxdWVzdC5yZW1vdmVMaXN0ZW5lcignYWZ0ZXJCdWlsZCcsXG4gICAgICBBV1MuRXZlbnRMaXN0ZW5lcnMuQ29yZS5DT01QVVRFX1NIQTI1Nik7XG5cbiAgICByZXF1ZXN0LmVtaXQoJ2JlZm9yZVByZXNpZ24nLCBbcmVxdWVzdF0pO1xuXG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICByZXF1ZXN0LmJ1aWxkKGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZS5lcnJvcikgY2FsbGJhY2sodGhpcy5yZXNwb25zZS5lcnJvcik7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGNhbGxiYWNrKG51bGwsIEFXUy51dGlsLnVybEZvcm1hdChyZXF1ZXN0Lmh0dHBSZXF1ZXN0LmVuZHBvaW50KSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0LmJ1aWxkKCk7XG4gICAgICBpZiAocmVxdWVzdC5yZXNwb25zZS5lcnJvcikgdGhyb3cgcmVxdWVzdC5yZXNwb25zZS5lcnJvcjtcbiAgICAgIHJldHVybiBBV1MudXRpbC51cmxGb3JtYXQocmVxdWVzdC5odHRwUmVxdWVzdC5lbmRwb2ludCk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuU2lnbmVycy5QcmVzaWduO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcblxudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5BV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyID0gaW5oZXJpdCh7XG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBSZXF1ZXN0U2lnbmVyKHJlcXVlc3QpIHtcbiAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0O1xuICB9LFxuXG4gIHNldFNlcnZpY2VDbGllbnRJZDogZnVuY3Rpb24gc2V0U2VydmljZUNsaWVudElkKGlkKSB7XG4gICAgdGhpcy5zZXJ2aWNlQ2xpZW50SWQgPSBpZDtcbiAgfSxcblxuICBnZXRTZXJ2aWNlQ2xpZW50SWQ6IGZ1bmN0aW9uIGdldFNlcnZpY2VDbGllbnRJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlQ2xpZW50SWQ7XG4gIH1cbn0pO1xuXG5BV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyLmdldFZlcnNpb24gPSBmdW5jdGlvbiBnZXRWZXJzaW9uKHZlcnNpb24pIHtcbiAgc3dpdGNoICh2ZXJzaW9uKSB7XG4gICAgY2FzZSAndjInOiByZXR1cm4gQVdTLlNpZ25lcnMuVjI7XG4gICAgY2FzZSAndjMnOiByZXR1cm4gQVdTLlNpZ25lcnMuVjM7XG4gICAgY2FzZSAndjQnOiByZXR1cm4gQVdTLlNpZ25lcnMuVjQ7XG4gICAgY2FzZSAnczMnOiByZXR1cm4gQVdTLlNpZ25lcnMuUzM7XG4gICAgY2FzZSAndjNodHRwcyc6IHJldHVybiBBV1MuU2lnbmVycy5WM0h0dHBzO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignVW5rbm93biBzaWduaW5nIHZlcnNpb24gJyArIHZlcnNpb24pO1xufTtcblxucmVxdWlyZSgnLi92MicpO1xucmVxdWlyZSgnLi92MycpO1xucmVxdWlyZSgnLi92M2h0dHBzJyk7XG5yZXF1aXJlKCcuL3Y0Jyk7XG5yZXF1aXJlKCcuL3MzJyk7XG5yZXF1aXJlKCcuL3ByZXNpZ24nKTtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5TaWduZXJzLlMzID0gaW5oZXJpdChBV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyLCB7XG4gIC8qKlxuICAgKiBXaGVuIGJ1aWxkaW5nIHRoZSBzdHJpbmdUb1NpZ24sIHRoZXNlIHN1YiByZXNvdXJjZSBwYXJhbXMgc2hvdWxkIGJlXG4gICAqIHBhcnQgb2YgdGhlIGNhbm9uaWNhbCByZXNvdXJjZSBzdHJpbmcgd2l0aCB0aGVpciBOT04tZGVjb2RlZCB2YWx1ZXNcbiAgICovXG4gIHN1YlJlc291cmNlczoge1xuICAgICdhY2wnOiAxLFxuICAgICdhY2NlbGVyYXRlJzogMSxcbiAgICAnYW5hbHl0aWNzJzogMSxcbiAgICAnY29ycyc6IDEsXG4gICAgJ2xpZmVjeWNsZSc6IDEsXG4gICAgJ2RlbGV0ZSc6IDEsXG4gICAgJ2ludmVudG9yeSc6IDEsXG4gICAgJ2xvY2F0aW9uJzogMSxcbiAgICAnbG9nZ2luZyc6IDEsXG4gICAgJ21ldHJpY3MnOiAxLFxuICAgICdub3RpZmljYXRpb24nOiAxLFxuICAgICdwYXJ0TnVtYmVyJzogMSxcbiAgICAncG9saWN5JzogMSxcbiAgICAncmVxdWVzdFBheW1lbnQnOiAxLFxuICAgICdyZXBsaWNhdGlvbic6IDEsXG4gICAgJ3Jlc3RvcmUnOiAxLFxuICAgICd0YWdnaW5nJzogMSxcbiAgICAndG9ycmVudCc6IDEsXG4gICAgJ3VwbG9hZElkJzogMSxcbiAgICAndXBsb2Fkcyc6IDEsXG4gICAgJ3ZlcnNpb25JZCc6IDEsXG4gICAgJ3ZlcnNpb25pbmcnOiAxLFxuICAgICd2ZXJzaW9ucyc6IDEsXG4gICAgJ3dlYnNpdGUnOiAxXG4gIH0sXG5cbiAgLy8gd2hlbiBidWlsZGluZyB0aGUgc3RyaW5nVG9TaWduLCB0aGVzZSBxdWVyeXN0cmluZyBwYXJhbXMgc2hvdWxkIGJlXG4gIC8vIHBhcnQgb2YgdGhlIGNhbm9uaWNhbCByZXNvdXJjZSBzdHJpbmcgd2l0aCB0aGVpciBOT04tZW5jb2RlZCB2YWx1ZXNcbiAgcmVzcG9uc2VIZWFkZXJzOiB7XG4gICAgJ3Jlc3BvbnNlLWNvbnRlbnQtdHlwZSc6IDEsXG4gICAgJ3Jlc3BvbnNlLWNvbnRlbnQtbGFuZ3VhZ2UnOiAxLFxuICAgICdyZXNwb25zZS1leHBpcmVzJzogMSxcbiAgICAncmVzcG9uc2UtY2FjaGUtY29udHJvbCc6IDEsXG4gICAgJ3Jlc3BvbnNlLWNvbnRlbnQtZGlzcG9zaXRpb24nOiAxLFxuICAgICdyZXNwb25zZS1jb250ZW50LWVuY29kaW5nJzogMVxuICB9LFxuXG4gIGFkZEF1dGhvcml6YXRpb246IGZ1bmN0aW9uIGFkZEF1dGhvcml6YXRpb24oY3JlZGVudGlhbHMsIGRhdGUpIHtcbiAgICBpZiAoIXRoaXMucmVxdWVzdC5oZWFkZXJzWydwcmVzaWduZWQtZXhwaXJlcyddKSB7XG4gICAgICB0aGlzLnJlcXVlc3QuaGVhZGVyc1snWC1BbXotRGF0ZSddID0gQVdTLnV0aWwuZGF0ZS5yZmM4MjIoZGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgLy8gcHJlc2lnbmVkIFVSTHMgcmVxdWlyZSB0aGlzIGhlYWRlciB0byBiZSBsb3dlcmNhc2VkXG4gICAgICB0aGlzLnJlcXVlc3QuaGVhZGVyc1sneC1hbXotc2VjdXJpdHktdG9rZW4nXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICB9XG5cbiAgICB2YXIgc2lnbmF0dXJlID0gdGhpcy5zaWduKGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgdGhpcy5zdHJpbmdUb1NpZ24oKSk7XG4gICAgdmFyIGF1dGggPSAnQVdTICcgKyBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCArICc6JyArIHNpZ25hdHVyZTtcblxuICAgIHRoaXMucmVxdWVzdC5oZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSBhdXRoO1xuICB9LFxuXG4gIHN0cmluZ1RvU2lnbjogZnVuY3Rpb24gc3RyaW5nVG9TaWduKCkge1xuICAgIHZhciByID0gdGhpcy5yZXF1ZXN0O1xuXG4gICAgdmFyIHBhcnRzID0gW107XG4gICAgcGFydHMucHVzaChyLm1ldGhvZCk7XG4gICAgcGFydHMucHVzaChyLmhlYWRlcnNbJ0NvbnRlbnQtTUQ1J10gfHwgJycpO1xuICAgIHBhcnRzLnB1c2goci5oZWFkZXJzWydDb250ZW50LVR5cGUnXSB8fCAnJyk7XG5cbiAgICAvLyBUaGlzIGlzIHRoZSBcIkRhdGVcIiBoZWFkZXIsIGJ1dCB3ZSB1c2UgWC1BbXotRGF0ZS5cbiAgICAvLyBUaGUgUzMgc2lnbmluZyBtZWNoYW5pc20gcmVxdWlyZXMgdXMgdG8gcGFzcyBhbiBlbXB0eVxuICAgIC8vIHN0cmluZyBmb3IgdGhpcyBEYXRlIGhlYWRlciByZWdhcmRsZXNzLlxuICAgIHBhcnRzLnB1c2goci5oZWFkZXJzWydwcmVzaWduZWQtZXhwaXJlcyddIHx8ICcnKTtcblxuICAgIHZhciBoZWFkZXJzID0gdGhpcy5jYW5vbmljYWxpemVkQW16SGVhZGVycygpO1xuICAgIGlmIChoZWFkZXJzKSBwYXJ0cy5wdXNoKGhlYWRlcnMpO1xuICAgIHBhcnRzLnB1c2godGhpcy5jYW5vbmljYWxpemVkUmVzb3VyY2UoKSk7XG5cbiAgICByZXR1cm4gcGFydHMuam9pbignXFxuJyk7XG5cbiAgfSxcblxuICBjYW5vbmljYWxpemVkQW16SGVhZGVyczogZnVuY3Rpb24gY2Fub25pY2FsaXplZEFtekhlYWRlcnMoKSB7XG5cbiAgICB2YXIgYW16SGVhZGVycyA9IFtdO1xuXG4gICAgQVdTLnV0aWwuZWFjaCh0aGlzLnJlcXVlc3QuaGVhZGVycywgZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIGlmIChuYW1lLm1hdGNoKC9eeC1hbXotL2kpKVxuICAgICAgICBhbXpIZWFkZXJzLnB1c2gobmFtZSk7XG4gICAgfSk7XG5cbiAgICBhbXpIZWFkZXJzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBhLnRvTG93ZXJDYXNlKCkgPCBiLnRvTG93ZXJDYXNlKCkgPyAtMSA6IDE7XG4gICAgfSk7XG5cbiAgICB2YXIgcGFydHMgPSBbXTtcbiAgICBBV1MudXRpbC5hcnJheUVhY2guY2FsbCh0aGlzLCBhbXpIZWFkZXJzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgcGFydHMucHVzaChuYW1lLnRvTG93ZXJDYXNlKCkgKyAnOicgKyBTdHJpbmcodGhpcy5yZXF1ZXN0LmhlYWRlcnNbbmFtZV0pKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBwYXJ0cy5qb2luKCdcXG4nKTtcblxuICB9LFxuXG4gIGNhbm9uaWNhbGl6ZWRSZXNvdXJjZTogZnVuY3Rpb24gY2Fub25pY2FsaXplZFJlc291cmNlKCkge1xuXG4gICAgdmFyIHIgPSB0aGlzLnJlcXVlc3Q7XG5cbiAgICB2YXIgcGFydHMgPSByLnBhdGguc3BsaXQoJz8nKTtcbiAgICB2YXIgcGF0aCA9IHBhcnRzWzBdO1xuICAgIHZhciBxdWVyeXN0cmluZyA9IHBhcnRzWzFdO1xuXG4gICAgdmFyIHJlc291cmNlID0gJyc7XG5cbiAgICBpZiAoci52aXJ0dWFsSG9zdGVkQnVja2V0KVxuICAgICAgcmVzb3VyY2UgKz0gJy8nICsgci52aXJ0dWFsSG9zdGVkQnVja2V0O1xuXG4gICAgcmVzb3VyY2UgKz0gcGF0aDtcblxuICAgIGlmIChxdWVyeXN0cmluZykge1xuXG4gICAgICAvLyBjb2xsZWN0IGEgbGlzdCBvZiBzdWIgcmVzb3VyY2VzIGFuZCBxdWVyeSBwYXJhbXMgdGhhdCBuZWVkIHRvIGJlIHNpZ25lZFxuICAgICAgdmFyIHJlc291cmNlcyA9IFtdO1xuXG4gICAgICBBV1MudXRpbC5hcnJheUVhY2guY2FsbCh0aGlzLCBxdWVyeXN0cmluZy5zcGxpdCgnJicpLCBmdW5jdGlvbiAocGFyYW0pIHtcbiAgICAgICAgdmFyIG5hbWUgPSBwYXJhbS5zcGxpdCgnPScpWzBdO1xuICAgICAgICB2YXIgdmFsdWUgPSBwYXJhbS5zcGxpdCgnPScpWzFdO1xuICAgICAgICBpZiAodGhpcy5zdWJSZXNvdXJjZXNbbmFtZV0gfHwgdGhpcy5yZXNwb25zZUhlYWRlcnNbbmFtZV0pIHtcbiAgICAgICAgICB2YXIgc3VicmVzb3VyY2UgPSB7IG5hbWU6IG5hbWUgfTtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3ViUmVzb3VyY2VzW25hbWVdKSB7XG4gICAgICAgICAgICAgIHN1YnJlc291cmNlLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzdWJyZXNvdXJjZS52YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc291cmNlcy5wdXNoKHN1YnJlc291cmNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc291cmNlcy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLm5hbWUgPCBiLm5hbWUgPyAtMSA6IDE7IH0pO1xuXG4gICAgICBpZiAocmVzb3VyY2VzLmxlbmd0aCkge1xuXG4gICAgICAgIHF1ZXJ5c3RyaW5nID0gW107XG4gICAgICAgIEFXUy51dGlsLmFycmF5RWFjaChyZXNvdXJjZXMsIGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICBpZiAocmVzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHF1ZXJ5c3RyaW5nLnB1c2gocmVzLm5hbWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeXN0cmluZy5wdXNoKHJlcy5uYW1lICsgJz0nICsgcmVzLnZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlc291cmNlICs9ICc/JyArIHF1ZXJ5c3RyaW5nLmpvaW4oJyYnKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiByZXNvdXJjZTtcblxuICB9LFxuXG4gIHNpZ246IGZ1bmN0aW9uIHNpZ24oc2VjcmV0LCBzdHJpbmcpIHtcbiAgICByZXR1cm4gQVdTLnV0aWwuY3J5cHRvLmhtYWMoc2VjcmV0LCBzdHJpbmcsICdiYXNlNjQnLCAnc2hhMScpO1xuICB9XG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuU2lnbmVycy5TMztcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5TaWduZXJzLlYyID0gaW5oZXJpdChBV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyLCB7XG4gIGFkZEF1dGhvcml6YXRpb246IGZ1bmN0aW9uIGFkZEF1dGhvcml6YXRpb24oY3JlZGVudGlhbHMsIGRhdGUpIHtcblxuICAgIGlmICghZGF0ZSkgZGF0ZSA9IEFXUy51dGlsLmRhdGUuZ2V0RGF0ZSgpO1xuXG4gICAgdmFyIHIgPSB0aGlzLnJlcXVlc3Q7XG5cbiAgICByLnBhcmFtcy5UaW1lc3RhbXAgPSBBV1MudXRpbC5kYXRlLmlzbzg2MDEoZGF0ZSk7XG4gICAgci5wYXJhbXMuU2lnbmF0dXJlVmVyc2lvbiA9ICcyJztcbiAgICByLnBhcmFtcy5TaWduYXR1cmVNZXRob2QgPSAnSG1hY1NIQTI1Nic7XG4gICAgci5wYXJhbXMuQVdTQWNjZXNzS2V5SWQgPSBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZDtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHIucGFyYW1zLlNlY3VyaXR5VG9rZW4gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgZGVsZXRlIHIucGFyYW1zLlNpZ25hdHVyZTsgLy8gZGVsZXRlIG9sZCBTaWduYXR1cmUgZm9yIHJlLXNpZ25pbmdcbiAgICByLnBhcmFtcy5TaWduYXR1cmUgPSB0aGlzLnNpZ25hdHVyZShjcmVkZW50aWFscyk7XG5cbiAgICByLmJvZHkgPSBBV1MudXRpbC5xdWVyeVBhcmFtc1RvU3RyaW5nKHIucGFyYW1zKTtcbiAgICByLmhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ10gPSByLmJvZHkubGVuZ3RoO1xuICB9LFxuXG4gIHNpZ25hdHVyZTogZnVuY3Rpb24gc2lnbmF0dXJlKGNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIEFXUy51dGlsLmNyeXB0by5obWFjKGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgdGhpcy5zdHJpbmdUb1NpZ24oKSwgJ2Jhc2U2NCcpO1xuICB9LFxuXG4gIHN0cmluZ1RvU2lnbjogZnVuY3Rpb24gc3RyaW5nVG9TaWduKCkge1xuICAgIHZhciBwYXJ0cyA9IFtdO1xuICAgIHBhcnRzLnB1c2godGhpcy5yZXF1ZXN0Lm1ldGhvZCk7XG4gICAgcGFydHMucHVzaCh0aGlzLnJlcXVlc3QuZW5kcG9pbnQuaG9zdC50b0xvd2VyQ2FzZSgpKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMucmVxdWVzdC5wYXRobmFtZSgpKTtcbiAgICBwYXJ0cy5wdXNoKEFXUy51dGlsLnF1ZXJ5UGFyYW1zVG9TdHJpbmcodGhpcy5yZXF1ZXN0LnBhcmFtcykpO1xuICAgIHJldHVybiBwYXJ0cy5qb2luKCdcXG4nKTtcbiAgfVxuXG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuU2lnbmVycy5WMjtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5TaWduZXJzLlYzID0gaW5oZXJpdChBV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyLCB7XG4gIGFkZEF1dGhvcml6YXRpb246IGZ1bmN0aW9uIGFkZEF1dGhvcml6YXRpb24oY3JlZGVudGlhbHMsIGRhdGUpIHtcblxuICAgIHZhciBkYXRldGltZSA9IEFXUy51dGlsLmRhdGUucmZjODIyKGRhdGUpO1xuXG4gICAgdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LURhdGUnXSA9IGRhdGV0aW1lO1xuXG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ3gtYW16LXNlY3VyaXR5LXRva2VuJ10gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ1gtQW16bi1BdXRob3JpemF0aW9uJ10gPVxuICAgICAgdGhpcy5hdXRob3JpemF0aW9uKGNyZWRlbnRpYWxzLCBkYXRldGltZSk7XG5cbiAgfSxcblxuICBhdXRob3JpemF0aW9uOiBmdW5jdGlvbiBhdXRob3JpemF0aW9uKGNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuICdBV1MzICcgK1xuICAgICAgJ0FXU0FjY2Vzc0tleUlkPScgKyBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCArICcsJyArXG4gICAgICAnQWxnb3JpdGhtPUhtYWNTSEEyNTYsJyArXG4gICAgICAnU2lnbmVkSGVhZGVycz0nICsgdGhpcy5zaWduZWRIZWFkZXJzKCkgKyAnLCcgK1xuICAgICAgJ1NpZ25hdHVyZT0nICsgdGhpcy5zaWduYXR1cmUoY3JlZGVudGlhbHMpO1xuICB9LFxuXG4gIHNpZ25lZEhlYWRlcnM6IGZ1bmN0aW9uIHNpZ25lZEhlYWRlcnMoKSB7XG4gICAgdmFyIGhlYWRlcnMgPSBbXTtcbiAgICBBV1MudXRpbC5hcnJheUVhY2godGhpcy5oZWFkZXJzVG9TaWduKCksIGZ1bmN0aW9uIGl0ZXJhdG9yKGgpIHtcbiAgICAgIGhlYWRlcnMucHVzaChoLnRvTG93ZXJDYXNlKCkpO1xuICAgIH0pO1xuICAgIHJldHVybiBoZWFkZXJzLnNvcnQoKS5qb2luKCc7Jyk7XG4gIH0sXG5cbiAgY2Fub25pY2FsSGVhZGVyczogZnVuY3Rpb24gY2Fub25pY2FsSGVhZGVycygpIHtcbiAgICB2YXIgaGVhZGVycyA9IHRoaXMucmVxdWVzdC5oZWFkZXJzO1xuICAgIHZhciBwYXJ0cyA9IFtdO1xuICAgIEFXUy51dGlsLmFycmF5RWFjaCh0aGlzLmhlYWRlcnNUb1NpZ24oKSwgZnVuY3Rpb24gaXRlcmF0b3IoaCkge1xuICAgICAgcGFydHMucHVzaChoLnRvTG93ZXJDYXNlKCkudHJpbSgpICsgJzonICsgU3RyaW5nKGhlYWRlcnNbaF0pLnRyaW0oKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcnRzLnNvcnQoKS5qb2luKCdcXG4nKSArICdcXG4nO1xuICB9LFxuXG4gIGhlYWRlcnNUb1NpZ246IGZ1bmN0aW9uIGhlYWRlcnNUb1NpZ24oKSB7XG4gICAgdmFyIGhlYWRlcnMgPSBbXTtcbiAgICBBV1MudXRpbC5lYWNoKHRoaXMucmVxdWVzdC5oZWFkZXJzLCBmdW5jdGlvbiBpdGVyYXRvcihrKSB7XG4gICAgICBpZiAoayA9PT0gJ0hvc3QnIHx8IGsgPT09ICdDb250ZW50LUVuY29kaW5nJyB8fCBrLm1hdGNoKC9eWC1BbXovaSkpIHtcbiAgICAgICAgaGVhZGVycy5wdXNoKGspO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9LFxuXG4gIHNpZ25hdHVyZTogZnVuY3Rpb24gc2lnbmF0dXJlKGNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIEFXUy51dGlsLmNyeXB0by5obWFjKGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgdGhpcy5zdHJpbmdUb1NpZ24oKSwgJ2Jhc2U2NCcpO1xuICB9LFxuXG4gIHN0cmluZ1RvU2lnbjogZnVuY3Rpb24gc3RyaW5nVG9TaWduKCkge1xuICAgIHZhciBwYXJ0cyA9IFtdO1xuICAgIHBhcnRzLnB1c2godGhpcy5yZXF1ZXN0Lm1ldGhvZCk7XG4gICAgcGFydHMucHVzaCgnLycpO1xuICAgIHBhcnRzLnB1c2goJycpO1xuICAgIHBhcnRzLnB1c2godGhpcy5jYW5vbmljYWxIZWFkZXJzKCkpO1xuICAgIHBhcnRzLnB1c2godGhpcy5yZXF1ZXN0LmJvZHkpO1xuICAgIHJldHVybiBBV1MudXRpbC5jcnlwdG8uc2hhMjU2KHBhcnRzLmpvaW4oJ1xcbicpKTtcbiAgfVxuXG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuU2lnbmVycy5WMztcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG52YXIgaW5oZXJpdCA9IEFXUy51dGlsLmluaGVyaXQ7XG5cbnJlcXVpcmUoJy4vdjMnKTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuQVdTLlNpZ25lcnMuVjNIdHRwcyA9IGluaGVyaXQoQVdTLlNpZ25lcnMuVjMsIHtcbiAgYXV0aG9yaXphdGlvbjogZnVuY3Rpb24gYXV0aG9yaXphdGlvbihjcmVkZW50aWFscykge1xuICAgIHJldHVybiAnQVdTMy1IVFRQUyAnICtcbiAgICAgICdBV1NBY2Nlc3NLZXlJZD0nICsgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgKyAnLCcgK1xuICAgICAgJ0FsZ29yaXRobT1IbWFjU0hBMjU2LCcgK1xuICAgICAgJ1NpZ25hdHVyZT0nICsgdGhpcy5zaWduYXR1cmUoY3JlZGVudGlhbHMpO1xuICB9LFxuXG4gIHN0cmluZ1RvU2lnbjogZnVuY3Rpb24gc3RyaW5nVG9TaWduKCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QuaGVhZGVyc1snWC1BbXotRGF0ZSddO1xuICB9XG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuU2lnbmVycy5WM0h0dHBzO1xuIiwidmFyIEFXUyA9IHJlcXVpcmUoJy4uL2NvcmUnKTtcbnZhciB2NENyZWRlbnRpYWxzID0gcmVxdWlyZSgnLi92NF9jcmVkZW50aWFscycpO1xudmFyIGluaGVyaXQgPSBBV1MudXRpbC5pbmhlcml0O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgZXhwaXJlc0hlYWRlciA9ICdwcmVzaWduZWQtZXhwaXJlcyc7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbkFXUy5TaWduZXJzLlY0ID0gaW5oZXJpdChBV1MuU2lnbmVycy5SZXF1ZXN0U2lnbmVyLCB7XG4gIGNvbnN0cnVjdG9yOiBmdW5jdGlvbiBWNChyZXF1ZXN0LCBzZXJ2aWNlTmFtZSwgb3B0aW9ucykge1xuICAgIEFXUy5TaWduZXJzLlJlcXVlc3RTaWduZXIuY2FsbCh0aGlzLCByZXF1ZXN0KTtcbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gc2VydmljZU5hbWU7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgdGhpcy5zaWduYXR1cmVDYWNoZSA9IHR5cGVvZiBvcHRpb25zLnNpZ25hdHVyZUNhY2hlID09PSAnYm9vbGVhbicgPyBvcHRpb25zLnNpZ25hdHVyZUNhY2hlIDogdHJ1ZTtcbiAgICB0aGlzLm9wZXJhdGlvbiA9IG9wdGlvbnMub3BlcmF0aW9uO1xuICB9LFxuXG4gIGFsZ29yaXRobTogJ0FXUzQtSE1BQy1TSEEyNTYnLFxuXG4gIGFkZEF1dGhvcml6YXRpb246IGZ1bmN0aW9uIGFkZEF1dGhvcml6YXRpb24oY3JlZGVudGlhbHMsIGRhdGUpIHtcbiAgICB2YXIgZGF0ZXRpbWUgPSBBV1MudXRpbC5kYXRlLmlzbzg2MDEoZGF0ZSkucmVwbGFjZSgvWzpcXC1dfFxcLlxcZHszfS9nLCAnJyk7XG5cbiAgICBpZiAodGhpcy5pc1ByZXNpZ25lZCgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZvclByZXNpZ25lZChjcmVkZW50aWFscywgZGF0ZXRpbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZEhlYWRlcnMoY3JlZGVudGlhbHMsIGRhdGV0aW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3QuaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID1cbiAgICAgIHRoaXMuYXV0aG9yaXphdGlvbihjcmVkZW50aWFscywgZGF0ZXRpbWUpO1xuICB9LFxuXG4gIGFkZEhlYWRlcnM6IGZ1bmN0aW9uIGFkZEhlYWRlcnMoY3JlZGVudGlhbHMsIGRhdGV0aW1lKSB7XG4gICAgdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ1gtQW16LURhdGUnXSA9IGRhdGV0aW1lO1xuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHRoaXMucmVxdWVzdC5oZWFkZXJzWyd4LWFtei1zZWN1cml0eS10b2tlbiddID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgfSxcblxuICB1cGRhdGVGb3JQcmVzaWduZWQ6IGZ1bmN0aW9uIHVwZGF0ZUZvclByZXNpZ25lZChjcmVkZW50aWFscywgZGF0ZXRpbWUpIHtcbiAgICB2YXIgY3JlZFN0cmluZyA9IHRoaXMuY3JlZGVudGlhbFN0cmluZyhkYXRldGltZSk7XG4gICAgdmFyIHFzID0ge1xuICAgICAgJ1gtQW16LURhdGUnOiBkYXRldGltZSxcbiAgICAgICdYLUFtei1BbGdvcml0aG0nOiB0aGlzLmFsZ29yaXRobSxcbiAgICAgICdYLUFtei1DcmVkZW50aWFsJzogY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgKyAnLycgKyBjcmVkU3RyaW5nLFxuICAgICAgJ1gtQW16LUV4cGlyZXMnOiB0aGlzLnJlcXVlc3QuaGVhZGVyc1tleHBpcmVzSGVhZGVyXSxcbiAgICAgICdYLUFtei1TaWduZWRIZWFkZXJzJzogdGhpcy5zaWduZWRIZWFkZXJzKClcbiAgICB9O1xuXG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcXNbJ1gtQW16LVNlY3VyaXR5LVRva2VuJ10gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVxdWVzdC5oZWFkZXJzWydDb250ZW50LVR5cGUnXSkge1xuICAgICAgcXNbJ0NvbnRlbnQtVHlwZSddID0gdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtTUQ1J10pIHtcbiAgICAgIHFzWydDb250ZW50LU1ENSddID0gdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ0NvbnRlbnQtTUQ1J107XG4gICAgfVxuICAgIGlmICh0aGlzLnJlcXVlc3QuaGVhZGVyc1snQ2FjaGUtQ29udHJvbCddKSB7XG4gICAgICBxc1snQ2FjaGUtQ29udHJvbCddID0gdGhpcy5yZXF1ZXN0LmhlYWRlcnNbJ0NhY2hlLUNvbnRyb2wnXTtcbiAgICB9XG5cbiAgICAvLyBuZWVkIHRvIHB1bGwgaW4gYW55IG90aGVyIFgtQW16LSogaGVhZGVyc1xuICAgIEFXUy51dGlsLmVhY2guY2FsbCh0aGlzLCB0aGlzLnJlcXVlc3QuaGVhZGVycywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKGtleSA9PT0gZXhwaXJlc0hlYWRlcikgcmV0dXJuO1xuICAgICAgaWYgKHRoaXMuaXNTaWduYWJsZUhlYWRlcihrZXkpKSB7XG4gICAgICAgIHZhciBsb3dlcktleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAvLyBNZXRhZGF0YSBzaG91bGQgYmUgbm9ybWFsaXplZFxuICAgICAgICBpZiAobG93ZXJLZXkuaW5kZXhPZigneC1hbXotbWV0YS0nKSA9PT0gMCkge1xuICAgICAgICAgIHFzW2xvd2VyS2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKGxvd2VyS2V5LmluZGV4T2YoJ3gtYW16LScpID09PSAwKSB7XG4gICAgICAgICAgcXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YXIgc2VwID0gdGhpcy5yZXF1ZXN0LnBhdGguaW5kZXhPZignPycpID49IDAgPyAnJicgOiAnPyc7XG4gICAgdGhpcy5yZXF1ZXN0LnBhdGggKz0gc2VwICsgQVdTLnV0aWwucXVlcnlQYXJhbXNUb1N0cmluZyhxcyk7XG4gIH0sXG5cbiAgYXV0aG9yaXphdGlvbjogZnVuY3Rpb24gYXV0aG9yaXphdGlvbihjcmVkZW50aWFscywgZGF0ZXRpbWUpIHtcbiAgICB2YXIgcGFydHMgPSBbXTtcbiAgICB2YXIgY3JlZFN0cmluZyA9IHRoaXMuY3JlZGVudGlhbFN0cmluZyhkYXRldGltZSk7XG4gICAgcGFydHMucHVzaCh0aGlzLmFsZ29yaXRobSArICcgQ3JlZGVudGlhbD0nICtcbiAgICAgIGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkICsgJy8nICsgY3JlZFN0cmluZyk7XG4gICAgcGFydHMucHVzaCgnU2lnbmVkSGVhZGVycz0nICsgdGhpcy5zaWduZWRIZWFkZXJzKCkpO1xuICAgIHBhcnRzLnB1c2goJ1NpZ25hdHVyZT0nICsgdGhpcy5zaWduYXR1cmUoY3JlZGVudGlhbHMsIGRhdGV0aW1lKSk7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJywgJyk7XG4gIH0sXG5cbiAgc2lnbmF0dXJlOiBmdW5jdGlvbiBzaWduYXR1cmUoY3JlZGVudGlhbHMsIGRhdGV0aW1lKSB7XG4gICAgdmFyIHNpZ25pbmdLZXkgPSB2NENyZWRlbnRpYWxzLmdldFNpZ25pbmdLZXkoXG4gICAgICBjcmVkZW50aWFscyxcbiAgICAgIGRhdGV0aW1lLnN1YnN0cigwLCA4KSxcbiAgICAgIHRoaXMucmVxdWVzdC5yZWdpb24sXG4gICAgICB0aGlzLnNlcnZpY2VOYW1lLFxuICAgICAgdGhpcy5zaWduYXR1cmVDYWNoZVxuICAgICk7XG4gICAgcmV0dXJuIEFXUy51dGlsLmNyeXB0by5obWFjKHNpZ25pbmdLZXksIHRoaXMuc3RyaW5nVG9TaWduKGRhdGV0aW1lKSwgJ2hleCcpO1xuICB9LFxuXG4gIHN0cmluZ1RvU2lnbjogZnVuY3Rpb24gc3RyaW5nVG9TaWduKGRhdGV0aW1lKSB7XG4gICAgdmFyIHBhcnRzID0gW107XG4gICAgcGFydHMucHVzaCgnQVdTNC1ITUFDLVNIQTI1NicpO1xuICAgIHBhcnRzLnB1c2goZGF0ZXRpbWUpO1xuICAgIHBhcnRzLnB1c2godGhpcy5jcmVkZW50aWFsU3RyaW5nKGRhdGV0aW1lKSk7XG4gICAgcGFydHMucHVzaCh0aGlzLmhleEVuY29kZWRIYXNoKHRoaXMuY2Fub25pY2FsU3RyaW5nKCkpKTtcbiAgICByZXR1cm4gcGFydHMuam9pbignXFxuJyk7XG4gIH0sXG5cbiAgY2Fub25pY2FsU3RyaW5nOiBmdW5jdGlvbiBjYW5vbmljYWxTdHJpbmcoKSB7XG4gICAgdmFyIHBhcnRzID0gW10sIHBhdGhuYW1lID0gdGhpcy5yZXF1ZXN0LnBhdGhuYW1lKCk7XG4gICAgaWYgKHRoaXMuc2VydmljZU5hbWUgIT09ICdzMycpIHBhdGhuYW1lID0gQVdTLnV0aWwudXJpRXNjYXBlUGF0aChwYXRobmFtZSk7XG5cbiAgICBwYXJ0cy5wdXNoKHRoaXMucmVxdWVzdC5tZXRob2QpO1xuICAgIHBhcnRzLnB1c2gocGF0aG5hbWUpO1xuICAgIHBhcnRzLnB1c2godGhpcy5yZXF1ZXN0LnNlYXJjaCgpKTtcbiAgICBwYXJ0cy5wdXNoKHRoaXMuY2Fub25pY2FsSGVhZGVycygpICsgJ1xcbicpO1xuICAgIHBhcnRzLnB1c2godGhpcy5zaWduZWRIZWFkZXJzKCkpO1xuICAgIHBhcnRzLnB1c2godGhpcy5oZXhFbmNvZGVkQm9keUhhc2goKSk7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJ1xcbicpO1xuICB9LFxuXG4gIGNhbm9uaWNhbEhlYWRlcnM6IGZ1bmN0aW9uIGNhbm9uaWNhbEhlYWRlcnMoKSB7XG4gICAgdmFyIGhlYWRlcnMgPSBbXTtcbiAgICBBV1MudXRpbC5lYWNoLmNhbGwodGhpcywgdGhpcy5yZXF1ZXN0LmhlYWRlcnMsIGZ1bmN0aW9uIChrZXksIGl0ZW0pIHtcbiAgICAgIGhlYWRlcnMucHVzaChba2V5LCBpdGVtXSk7XG4gICAgfSk7XG4gICAgaGVhZGVycy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gYVswXS50b0xvd2VyQ2FzZSgpIDwgYlswXS50b0xvd2VyQ2FzZSgpID8gLTEgOiAxO1xuICAgIH0pO1xuICAgIHZhciBwYXJ0cyA9IFtdO1xuICAgIEFXUy51dGlsLmFycmF5RWFjaC5jYWxsKHRoaXMsIGhlYWRlcnMsIGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIga2V5ID0gaXRlbVswXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHRoaXMuaXNTaWduYWJsZUhlYWRlcihrZXkpKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW1bMV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IEFXUy51dGlsLmVycm9yKG5ldyBFcnJvcignSGVhZGVyICcgKyBrZXkgKyAnIGNvbnRhaW5zIGludmFsaWQgdmFsdWUnKSwge1xuICAgICAgICAgICAgY29kZTogJ0ludmFsaWRIZWFkZXInXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcGFydHMucHVzaChrZXkgKyAnOicgK1xuICAgICAgICAgIHRoaXMuY2Fub25pY2FsSGVhZGVyVmFsdWVzKHZhbHVlLnRvU3RyaW5nKCkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcGFydHMuam9pbignXFxuJyk7XG4gIH0sXG5cbiAgY2Fub25pY2FsSGVhZGVyVmFsdWVzOiBmdW5jdGlvbiBjYW5vbmljYWxIZWFkZXJWYWx1ZXModmFsdWVzKSB7XG4gICAgcmV0dXJuIHZhbHVlcy5yZXBsYWNlKC9cXHMrL2csICcgJykucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpO1xuICB9LFxuXG4gIHNpZ25lZEhlYWRlcnM6IGZ1bmN0aW9uIHNpZ25lZEhlYWRlcnMoKSB7XG4gICAgdmFyIGtleXMgPSBbXTtcbiAgICBBV1MudXRpbC5lYWNoLmNhbGwodGhpcywgdGhpcy5yZXF1ZXN0LmhlYWRlcnMsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIGtleSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHRoaXMuaXNTaWduYWJsZUhlYWRlcihrZXkpKSBrZXlzLnB1c2goa2V5KTtcbiAgICB9KTtcbiAgICByZXR1cm4ga2V5cy5zb3J0KCkuam9pbignOycpO1xuICB9LFxuXG4gIGNyZWRlbnRpYWxTdHJpbmc6IGZ1bmN0aW9uIGNyZWRlbnRpYWxTdHJpbmcoZGF0ZXRpbWUpIHtcbiAgICByZXR1cm4gdjRDcmVkZW50aWFscy5jcmVhdGVTY29wZShcbiAgICAgIGRhdGV0aW1lLnN1YnN0cigwLCA4KSxcbiAgICAgIHRoaXMucmVxdWVzdC5yZWdpb24sXG4gICAgICB0aGlzLnNlcnZpY2VOYW1lXG4gICAgKTtcbiAgfSxcblxuICBoZXhFbmNvZGVkSGFzaDogZnVuY3Rpb24gaGFzaChzdHJpbmcpIHtcbiAgICByZXR1cm4gQVdTLnV0aWwuY3J5cHRvLnNoYTI1NihzdHJpbmcsICdoZXgnKTtcbiAgfSxcblxuICBoZXhFbmNvZGVkQm9keUhhc2g6IGZ1bmN0aW9uIGhleEVuY29kZWRCb2R5SGFzaCgpIHtcbiAgICB2YXIgcmVxdWVzdCA9IHRoaXMucmVxdWVzdDtcbiAgICBpZiAodGhpcy5pc1ByZXNpZ25lZCgpICYmIHRoaXMuc2VydmljZU5hbWUgPT09ICdzMycgJiYgIXJlcXVlc3QuYm9keSkge1xuICAgICAgcmV0dXJuICdVTlNJR05FRC1QQVlMT0FEJztcbiAgICB9IGVsc2UgaWYgKHJlcXVlc3QuaGVhZGVyc1snWC1BbXotQ29udGVudC1TaGEyNTYnXSkge1xuICAgICAgcmV0dXJuIHJlcXVlc3QuaGVhZGVyc1snWC1BbXotQ29udGVudC1TaGEyNTYnXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaGV4RW5jb2RlZEhhc2godGhpcy5yZXF1ZXN0LmJvZHkgfHwgJycpO1xuICAgIH1cbiAgfSxcblxuICB1bnNpZ25hYmxlSGVhZGVyczogW1xuICAgICdhdXRob3JpemF0aW9uJyxcbiAgICAnY29udGVudC10eXBlJyxcbiAgICAnY29udGVudC1sZW5ndGgnLFxuICAgICd1c2VyLWFnZW50JyxcbiAgICBleHBpcmVzSGVhZGVyLFxuICAgICdleHBlY3QnLFxuICAgICd4LWFtem4tdHJhY2UtaWQnXG4gIF0sXG5cbiAgaXNTaWduYWJsZUhlYWRlcjogZnVuY3Rpb24gaXNTaWduYWJsZUhlYWRlcihrZXkpIHtcbiAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigneC1hbXotJykgPT09IDApIHJldHVybiB0cnVlO1xuICAgIHJldHVybiB0aGlzLnVuc2lnbmFibGVIZWFkZXJzLmluZGV4T2Yoa2V5KSA8IDA7XG4gIH0sXG5cbiAgaXNQcmVzaWduZWQ6IGZ1bmN0aW9uIGlzUHJlc2lnbmVkKCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QuaGVhZGVyc1tleHBpcmVzSGVhZGVyXSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG59KTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBBV1MuU2lnbmVycy5WNDtcbiIsInZhciBBV1MgPSByZXF1aXJlKCcuLi9jb3JlJyk7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciBjYWNoZWRTZWNyZXQgPSB7fTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIGNhY2hlUXVldWUgPSBbXTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xudmFyIG1heENhY2hlRW50cmllcyA9IDUwO1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG52YXIgdjRJZGVudGlmaWVyID0gJ2F3czRfcmVxdWVzdCc7XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqXG4gICAqIEBwYXJhbSBkYXRlIFtTdHJpbmddXG4gICAqIEBwYXJhbSByZWdpb24gW1N0cmluZ11cbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIFtTdHJpbmddXG4gICAqIEByZXR1cm4gW1N0cmluZ11cbiAgICovXG4gIGNyZWF0ZVNjb3BlOiBmdW5jdGlvbiBjcmVhdGVTY29wZShkYXRlLCByZWdpb24sIHNlcnZpY2VOYW1lKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGRhdGUuc3Vic3RyKDAsIDgpLFxuICAgICAgcmVnaW9uLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICB2NElkZW50aWZpZXJcbiAgICBdLmpvaW4oJy8nKTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqXG4gICAqIEBwYXJhbSBjcmVkZW50aWFscyBbQ3JlZGVudGlhbHNdXG4gICAqIEBwYXJhbSBkYXRlIFtTdHJpbmddXG4gICAqIEBwYXJhbSByZWdpb24gW1N0cmluZ11cbiAgICogQHBhcmFtIHNlcnZpY2UgW1N0cmluZ11cbiAgICogQHBhcmFtIHNob3VsZENhY2hlIFtCb29sZWFuXVxuICAgKiBAcmV0dXJuIFtTdHJpbmddXG4gICAqL1xuICBnZXRTaWduaW5nS2V5OiBmdW5jdGlvbiBnZXRTaWduaW5nS2V5KFxuICAgIGNyZWRlbnRpYWxzLFxuICAgIGRhdGUsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hvdWxkQ2FjaGVcbiAgKSB7XG4gICAgdmFyIGNyZWRzSWRlbnRpZmllciA9IEFXUy51dGlsLmNyeXB0b1xuICAgICAgLmhtYWMoY3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5LCBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCwgJ2Jhc2U2NCcpO1xuICAgIHZhciBjYWNoZUtleSA9IFtjcmVkc0lkZW50aWZpZXIsIGRhdGUsIHJlZ2lvbiwgc2VydmljZV0uam9pbignXycpO1xuICAgIHNob3VsZENhY2hlID0gc2hvdWxkQ2FjaGUgIT09IGZhbHNlO1xuICAgIGlmIChzaG91bGRDYWNoZSAmJiAoY2FjaGVLZXkgaW4gY2FjaGVkU2VjcmV0KSkge1xuICAgICAgcmV0dXJuIGNhY2hlZFNlY3JldFtjYWNoZUtleV07XG4gICAgfVxuXG4gICAgdmFyIGtEYXRlID0gQVdTLnV0aWwuY3J5cHRvLmhtYWMoXG4gICAgICAnQVdTNCcgKyBjcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXksXG4gICAgICBkYXRlLFxuICAgICAgJ2J1ZmZlcidcbiAgICApO1xuICAgIHZhciBrUmVnaW9uID0gQVdTLnV0aWwuY3J5cHRvLmhtYWMoa0RhdGUsIHJlZ2lvbiwgJ2J1ZmZlcicpO1xuICAgIHZhciBrU2VydmljZSA9IEFXUy51dGlsLmNyeXB0by5obWFjKGtSZWdpb24sIHNlcnZpY2UsICdidWZmZXInKTtcblxuICAgIHZhciBzaWduaW5nS2V5ID0gQVdTLnV0aWwuY3J5cHRvLmhtYWMoa1NlcnZpY2UsIHY0SWRlbnRpZmllciwgJ2J1ZmZlcicpO1xuICAgIGlmIChzaG91bGRDYWNoZSkge1xuICAgICAgY2FjaGVkU2VjcmV0W2NhY2hlS2V5XSA9IHNpZ25pbmdLZXk7XG4gICAgICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICAgICAgaWYgKGNhY2hlUXVldWUubGVuZ3RoID4gbWF4Q2FjaGVFbnRyaWVzKSB7XG4gICAgICAgIC8vIHJlbW92ZSB0aGUgb2xkZXN0IGVudHJ5IChub3QgdGhlIGxlYXN0IHJlY2VudGx5IHVzZWQpXG4gICAgICAgIGRlbGV0ZSBjYWNoZWRTZWNyZXRbY2FjaGVRdWV1ZS5zaGlmdCgpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmluZ0tleTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqXG4gICAqIEVtcHRpZXMgdGhlIGRlcml2ZWQgc2lnbmluZyBrZXkgY2FjaGUuIE1hZGUgYXZhaWxhYmxlIGZvciB0ZXN0aW5nIHB1cnBvc2VzXG4gICAqIG9ubHkuXG4gICAqL1xuICBlbXB0eUNhY2hlOiBmdW5jdGlvbiBlbXB0eUNhY2hlKCkge1xuICAgIGNhY2hlZFNlY3JldCA9IHt9O1xuICAgIGNhY2hlUXVldWUgPSBbXTtcbiAgfVxufTtcbiIsImZ1bmN0aW9uIEFjY2VwdG9yU3RhdGVNYWNoaW5lKHN0YXRlcywgc3RhdGUpIHtcbiAgdGhpcy5jdXJyZW50U3RhdGUgPSBzdGF0ZSB8fCBudWxsO1xuICB0aGlzLnN0YXRlcyA9IHN0YXRlcyB8fCB7fTtcbn1cblxuQWNjZXB0b3JTdGF0ZU1hY2hpbmUucHJvdG90eXBlLnJ1blRvID0gZnVuY3Rpb24gcnVuVG8oZmluYWxTdGF0ZSwgZG9uZSwgYmluZE9iamVjdCwgaW5wdXRFcnJvcikge1xuICBpZiAodHlwZW9mIGZpbmFsU3RhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnB1dEVycm9yID0gYmluZE9iamVjdDsgYmluZE9iamVjdCA9IGRvbmU7XG4gICAgZG9uZSA9IGZpbmFsU3RhdGU7IGZpbmFsU3RhdGUgPSBudWxsO1xuICB9XG5cbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgc3RhdGUgPSBzZWxmLnN0YXRlc1tzZWxmLmN1cnJlbnRTdGF0ZV07XG4gIHN0YXRlLmZuLmNhbGwoYmluZE9iamVjdCB8fCBzZWxmLCBpbnB1dEVycm9yLCBmdW5jdGlvbihlcnIpIHtcbiAgICBpZiAoZXJyKSB7XG4gICAgICBpZiAoc3RhdGUuZmFpbCkgc2VsZi5jdXJyZW50U3RhdGUgPSBzdGF0ZS5mYWlsO1xuICAgICAgZWxzZSByZXR1cm4gZG9uZSA/IGRvbmUuY2FsbChiaW5kT2JqZWN0LCBlcnIpIDogbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlLmFjY2VwdCkgc2VsZi5jdXJyZW50U3RhdGUgPSBzdGF0ZS5hY2NlcHQ7XG4gICAgICBlbHNlIHJldHVybiBkb25lID8gZG9uZS5jYWxsKGJpbmRPYmplY3QpIDogbnVsbDtcbiAgICB9XG4gICAgaWYgKHNlbGYuY3VycmVudFN0YXRlID09PSBmaW5hbFN0YXRlKSB7XG4gICAgICByZXR1cm4gZG9uZSA/IGRvbmUuY2FsbChiaW5kT2JqZWN0LCBlcnIpIDogbnVsbDtcbiAgICB9XG5cbiAgICBzZWxmLnJ1blRvKGZpbmFsU3RhdGUsIGRvbmUsIGJpbmRPYmplY3QsIGVycik7XG4gIH0pO1xufTtcblxuQWNjZXB0b3JTdGF0ZU1hY2hpbmUucHJvdG90eXBlLmFkZFN0YXRlID0gZnVuY3Rpb24gYWRkU3RhdGUobmFtZSwgYWNjZXB0U3RhdGUsIGZhaWxTdGF0ZSwgZm4pIHtcbiAgaWYgKHR5cGVvZiBhY2NlcHRTdGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZuID0gYWNjZXB0U3RhdGU7IGFjY2VwdFN0YXRlID0gbnVsbDsgZmFpbFN0YXRlID0gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZmFpbFN0YXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm4gPSBmYWlsU3RhdGU7IGZhaWxTdGF0ZSA9IG51bGw7XG4gIH1cblxuICBpZiAoIXRoaXMuY3VycmVudFN0YXRlKSB0aGlzLmN1cnJlbnRTdGF0ZSA9IG5hbWU7XG4gIHRoaXMuc3RhdGVzW25hbWVdID0geyBhY2NlcHQ6IGFjY2VwdFN0YXRlLCBmYWlsOiBmYWlsU3RhdGUsIGZuOiBmbiB9O1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gQWNjZXB0b3JTdGF0ZU1hY2hpbmU7XG4iLCIvKiBlc2xpbnQgZ3VhcmQtZm9yLWluOjAgKi9cbnZhciBBV1M7XG5cbi8qKlxuICogQSBzZXQgb2YgdXRpbGl0eSBtZXRob2RzIGZvciB1c2Ugd2l0aCB0aGUgQVdTIFNESy5cbiAqXG4gKiBAIWF0dHJpYnV0ZSBhYm9ydFxuICogICBSZXR1cm4gdGhpcyB2YWx1ZSBmcm9tIGFuIGl0ZXJhdG9yIGZ1bmN0aW9uIHtlYWNofSBvciB7YXJyYXlFYWNofVxuICogICB0byBicmVhayBvdXQgb2YgdGhlIGl0ZXJhdGlvbi5cbiAqICAgQGV4YW1wbGUgQnJlYWtpbmcgb3V0IG9mIGFuIGl0ZXJhdG9yIGZ1bmN0aW9uXG4gKiAgICAgQVdTLnV0aWwuZWFjaCh7YTogMSwgYjogMiwgYzogM30sIGZ1bmN0aW9uKGtleSwgdmFsdWUpIHtcbiAqICAgICAgIGlmIChrZXkgPT0gJ2InKSByZXR1cm4gQVdTLnV0aWwuYWJvcnQ7XG4gKiAgICAgfSk7XG4gKiAgIEBzZWUgZWFjaFxuICogICBAc2VlIGFycmF5RWFjaFxuICogQGFwaSBwcml2YXRlXG4gKi9cbnZhciB1dGlsID0ge1xuICBlbnZpcm9ubWVudDogJ25vZGVqcycsXG4gIGVuZ2luZTogZnVuY3Rpb24gZW5naW5lKCkge1xuICAgIGlmICh1dGlsLmlzQnJvd3NlcigpICYmIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGVuZ2luZSA9IHByb2Nlc3MucGxhdGZvcm0gKyAnLycgKyBwcm9jZXNzLnZlcnNpb247XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuQVdTX0VYRUNVVElPTl9FTlYpIHtcbiAgICAgICAgZW5naW5lICs9ICcgZXhlYy1lbnYvJyArIHByb2Nlc3MuZW52LkFXU19FWEVDVVRJT05fRU5WO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVuZ2luZTtcbiAgICB9XG4gIH0sXG5cbiAgdXNlckFnZW50OiBmdW5jdGlvbiB1c2VyQWdlbnQoKSB7XG4gICAgdmFyIG5hbWUgPSB1dGlsLmVudmlyb25tZW50O1xuICAgIHZhciBhZ2VudCA9ICdhd3Mtc2RrLScgKyBuYW1lICsgJy8nICsgcmVxdWlyZSgnLi9jb3JlJykuVkVSU0lPTjtcbiAgICBpZiAobmFtZSA9PT0gJ25vZGVqcycpIGFnZW50ICs9ICcgJyArIHV0aWwuZW5naW5lKCk7XG4gICAgcmV0dXJuIGFnZW50O1xuICB9LFxuXG4gIGlzQnJvd3NlcjogZnVuY3Rpb24gaXNCcm93c2VyKCkgeyByZXR1cm4gcHJvY2VzcyAmJiBwcm9jZXNzLmJyb3dzZXI7IH0sXG4gIGlzTm9kZTogZnVuY3Rpb24gaXNOb2RlKCkgeyByZXR1cm4gIXV0aWwuaXNCcm93c2VyKCk7IH0sXG4gIHVyaUVzY2FwZTogZnVuY3Rpb24gdXJpRXNjYXBlKHN0cmluZykge1xuICAgIHZhciBvdXRwdXQgPSBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5nKTtcbiAgICBvdXRwdXQgPSBvdXRwdXQucmVwbGFjZSgvW15BLVphLXowLTlfLn5cXC0lXSsvZywgZXNjYXBlKTtcblxuICAgIC8vIEFXUyBwZXJjZW50LWVuY29kZXMgc29tZSBleHRyYSBub24tc3RhbmRhcmQgY2hhcmFjdGVycyBpbiBhIFVSSVxuICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9bKl0vZywgZnVuY3Rpb24oY2gpIHtcbiAgICAgIHJldHVybiAnJScgKyBjaC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfSxcblxuICB1cmlFc2NhcGVQYXRoOiBmdW5jdGlvbiB1cmlFc2NhcGVQYXRoKHN0cmluZykge1xuICAgIHZhciBwYXJ0cyA9IFtdO1xuICAgIHV0aWwuYXJyYXlFYWNoKHN0cmluZy5zcGxpdCgnLycpLCBmdW5jdGlvbiAocGFydCkge1xuICAgICAgcGFydHMucHVzaCh1dGlsLnVyaUVzY2FwZShwYXJ0KSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJy8nKTtcbiAgfSxcblxuICB1cmxQYXJzZTogZnVuY3Rpb24gdXJsUGFyc2UodXJsKSB7XG4gICAgcmV0dXJuIHV0aWwudXJsLnBhcnNlKHVybCk7XG4gIH0sXG5cbiAgdXJsRm9ybWF0OiBmdW5jdGlvbiB1cmxGb3JtYXQodXJsKSB7XG4gICAgcmV0dXJuIHV0aWwudXJsLmZvcm1hdCh1cmwpO1xuICB9LFxuXG4gIHF1ZXJ5U3RyaW5nUGFyc2U6IGZ1bmN0aW9uIHF1ZXJ5U3RyaW5nUGFyc2UocXMpIHtcbiAgICByZXR1cm4gdXRpbC5xdWVyeXN0cmluZy5wYXJzZShxcyk7XG4gIH0sXG5cbiAgcXVlcnlQYXJhbXNUb1N0cmluZzogZnVuY3Rpb24gcXVlcnlQYXJhbXNUb1N0cmluZyhwYXJhbXMpIHtcbiAgICB2YXIgaXRlbXMgPSBbXTtcbiAgICB2YXIgZXNjYXBlID0gdXRpbC51cmlFc2NhcGU7XG4gICAgdmFyIHNvcnRlZEtleXMgPSBPYmplY3Qua2V5cyhwYXJhbXMpLnNvcnQoKTtcblxuICAgIHV0aWwuYXJyYXlFYWNoKHNvcnRlZEtleXMsIGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHBhcmFtc1tuYW1lXTtcbiAgICAgIHZhciBlbmFtZSA9IGVzY2FwZShuYW1lKTtcbiAgICAgIHZhciByZXN1bHQgPSBlbmFtZSArICc9JztcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICB2YXIgdmFscyA9IFtdO1xuICAgICAgICB1dGlsLmFycmF5RWFjaCh2YWx1ZSwgZnVuY3Rpb24oaXRlbSkgeyB2YWxzLnB1c2goZXNjYXBlKGl0ZW0pKTsgfSk7XG4gICAgICAgIHJlc3VsdCA9IGVuYW1lICsgJz0nICsgdmFscy5zb3J0KCkuam9pbignJicgKyBlbmFtZSArICc9Jyk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmVzdWx0ID0gZW5hbWUgKyAnPScgKyBlc2NhcGUodmFsdWUpO1xuICAgICAgfVxuICAgICAgaXRlbXMucHVzaChyZXN1bHQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0ZW1zLmpvaW4oJyYnKTtcbiAgfSxcblxuICByZWFkRmlsZVN5bmM6IGZ1bmN0aW9uIHJlYWRGaWxlU3luYyhwYXRoKSB7XG4gICAgaWYgKHV0aWwuaXNCcm93c2VyKCkpIHJldHVybiBudWxsO1xuICAgIHJldHVybiByZXF1aXJlKCdmcycpLnJlYWRGaWxlU3luYyhwYXRoLCAndXRmLTgnKTtcbiAgfSxcblxuICBiYXNlNjQ6IHtcbiAgICBlbmNvZGU6IGZ1bmN0aW9uIGVuY29kZTY0KHN0cmluZykge1xuICAgICAgaWYgKHR5cGVvZiBzdHJpbmcgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IHV0aWwuZXJyb3IobmV3IEVycm9yKCdDYW5ub3QgYmFzZTY0IGVuY29kZSBudW1iZXIgJyArIHN0cmluZykpO1xuICAgICAgfVxuICAgICAgaWYgKHN0cmluZyA9PT0gbnVsbCB8fCB0eXBlb2Ygc3RyaW5nID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgfVxuICAgICAgdmFyIGJ1ZiA9ICh0eXBlb2YgdXRpbC5CdWZmZXIuZnJvbSA9PT0gJ2Z1bmN0aW9uJyAmJiB1dGlsLkJ1ZmZlci5mcm9tICE9PSBVaW50OEFycmF5LmZyb20pID8gdXRpbC5CdWZmZXIuZnJvbShzdHJpbmcpIDogbmV3IHV0aWwuQnVmZmVyKHN0cmluZyk7XG4gICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICB9LFxuXG4gICAgZGVjb2RlOiBmdW5jdGlvbiBkZWNvZGU2NChzdHJpbmcpIHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyaW5nID09PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyB1dGlsLmVycm9yKG5ldyBFcnJvcignQ2Fubm90IGJhc2U2NCBkZWNvZGUgbnVtYmVyICcgKyBzdHJpbmcpKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdHJpbmcgPT09IG51bGwgfHwgdHlwZW9mIHN0cmluZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgIH1cbiAgICAgIHJldHVybiAodHlwZW9mIHV0aWwuQnVmZmVyLmZyb20gPT09ICdmdW5jdGlvbicgJiYgdXRpbC5CdWZmZXIuZnJvbSAhPT0gVWludDhBcnJheS5mcm9tKSA/IHV0aWwuQnVmZmVyLmZyb20oc3RyaW5nLCAnYmFzZTY0JykgOiBuZXcgdXRpbC5CdWZmZXIoc3RyaW5nLCAnYmFzZTY0Jyk7XG4gICAgfVxuXG4gIH0sXG5cbiAgYnVmZmVyOiB7XG4gICAgdG9TdHJlYW06IGZ1bmN0aW9uIHRvU3RyZWFtKGJ1ZmZlcikge1xuICAgICAgaWYgKCF1dGlsLkJ1ZmZlci5pc0J1ZmZlcihidWZmZXIpKSBidWZmZXIgPSBuZXcgdXRpbC5CdWZmZXIoYnVmZmVyKTtcblxuICAgICAgdmFyIHJlYWRhYmxlID0gbmV3ICh1dGlsLnN0cmVhbS5SZWFkYWJsZSkoKTtcbiAgICAgIHZhciBwb3MgPSAwO1xuICAgICAgcmVhZGFibGUuX3JlYWQgPSBmdW5jdGlvbihzaXplKSB7XG4gICAgICAgIGlmIChwb3MgPj0gYnVmZmVyLmxlbmd0aCkgcmV0dXJuIHJlYWRhYmxlLnB1c2gobnVsbCk7XG5cbiAgICAgICAgdmFyIGVuZCA9IHBvcyArIHNpemU7XG4gICAgICAgIGlmIChlbmQgPiBidWZmZXIubGVuZ3RoKSBlbmQgPSBidWZmZXIubGVuZ3RoO1xuICAgICAgICByZWFkYWJsZS5wdXNoKGJ1ZmZlci5zbGljZShwb3MsIGVuZCkpO1xuICAgICAgICBwb3MgPSBlbmQ7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gcmVhZGFibGU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENvbmNhdGVuYXRlcyBhIGxpc3Qgb2YgQnVmZmVyIG9iamVjdHMuXG4gICAgICovXG4gICAgY29uY2F0OiBmdW5jdGlvbihidWZmZXJzKSB7XG4gICAgICB2YXIgbGVuZ3RoID0gMCxcbiAgICAgICAgICBvZmZzZXQgPSAwLFxuICAgICAgICAgIGJ1ZmZlciA9IG51bGwsIGk7XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBidWZmZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxlbmd0aCArPSBidWZmZXJzW2ldLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgYnVmZmVyID0gbmV3IHV0aWwuQnVmZmVyKGxlbmd0aCk7XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBidWZmZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGJ1ZmZlcnNbaV0uY29weShidWZmZXIsIG9mZnNldCk7XG4gICAgICAgIG9mZnNldCArPSBidWZmZXJzW2ldLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9XG4gIH0sXG5cbiAgc3RyaW5nOiB7XG4gICAgYnl0ZUxlbmd0aDogZnVuY3Rpb24gYnl0ZUxlbmd0aChzdHJpbmcpIHtcbiAgICAgIGlmIChzdHJpbmcgPT09IG51bGwgfHwgc3RyaW5nID09PSB1bmRlZmluZWQpIHJldHVybiAwO1xuICAgICAgaWYgKHR5cGVvZiBzdHJpbmcgPT09ICdzdHJpbmcnKSBzdHJpbmcgPSBuZXcgdXRpbC5CdWZmZXIoc3RyaW5nKTtcblxuICAgICAgaWYgKHR5cGVvZiBzdHJpbmcuYnl0ZUxlbmd0aCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5ieXRlTGVuZ3RoO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RyaW5nLmxlbmd0aCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5sZW5ndGg7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdHJpbmcuc2l6ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZy5zaXplO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RyaW5nLnBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKCdmcycpLmxzdGF0U3luYyhzdHJpbmcucGF0aCkuc2l6ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IHV0aWwuZXJyb3IobmV3IEVycm9yKCdDYW5ub3QgZGV0ZXJtaW5lIGxlbmd0aCBvZiAnICsgc3RyaW5nKSxcbiAgICAgICAgICB7IG9iamVjdDogc3RyaW5nIH0pO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICB1cHBlckZpcnN0OiBmdW5jdGlvbiB1cHBlckZpcnN0KHN0cmluZykge1xuICAgICAgcmV0dXJuIHN0cmluZ1swXS50b1VwcGVyQ2FzZSgpICsgc3RyaW5nLnN1YnN0cigxKTtcbiAgICB9LFxuXG4gICAgbG93ZXJGaXJzdDogZnVuY3Rpb24gbG93ZXJGaXJzdChzdHJpbmcpIHtcbiAgICAgIHJldHVybiBzdHJpbmdbMF0udG9Mb3dlckNhc2UoKSArIHN0cmluZy5zdWJzdHIoMSk7XG4gICAgfVxuICB9LFxuXG4gIGluaToge1xuICAgIHBhcnNlOiBmdW5jdGlvbiBzdHJpbmcoaW5pKSB7XG4gICAgICB2YXIgY3VycmVudFNlY3Rpb24sIG1hcCA9IHt9O1xuICAgICAgdXRpbC5hcnJheUVhY2goaW5pLnNwbGl0KC9cXHI/XFxuLyksIGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgbGluZSA9IGxpbmUuc3BsaXQoLyhefFxccylbOyNdLylbMF07IC8vIHJlbW92ZSBjb21tZW50c1xuICAgICAgICB2YXIgc2VjdGlvbiA9IGxpbmUubWF0Y2goL15cXHMqXFxbKFteXFxbXFxdXSspXFxdXFxzKiQvKTtcbiAgICAgICAgaWYgKHNlY3Rpb24pIHtcbiAgICAgICAgICBjdXJyZW50U2VjdGlvbiA9IHNlY3Rpb25bMV07XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFNlY3Rpb24pIHtcbiAgICAgICAgICB2YXIgaXRlbSA9IGxpbmUubWF0Y2goL15cXHMqKC4rPylcXHMqPVxccyooLis/KVxccyokLyk7XG4gICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIG1hcFtjdXJyZW50U2VjdGlvbl0gPSBtYXBbY3VycmVudFNlY3Rpb25dIHx8IHt9O1xuICAgICAgICAgICAgbWFwW2N1cnJlbnRTZWN0aW9uXVtpdGVtWzFdXSA9IGl0ZW1bMl07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG4gIH0sXG5cbiAgZm46IHtcbiAgICBub29wOiBmdW5jdGlvbigpIHt9LFxuXG4gICAgLyoqXG4gICAgICogVHVybiBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uIGludG8gYXMgXCJhc3luY1wiIGZ1bmN0aW9uIGJ5IG1ha2luZyBpdCBjYWxsXG4gICAgICogYSBjYWxsYmFjay4gVGhlIHVuZGVybHlpbmcgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggYWxsIGJ1dCB0aGUgbGFzdCBhcmd1bWVudCxcbiAgICAgKiB3aGljaCBpcyB0cmVhdGVkIGFzIHRoZSBjYWxsYmFjay4gVGhlIGNhbGxiYWNrIGlzIHBhc3NlZCBwYXNzZWQgYSBmaXJzdCBhcmd1bWVudFxuICAgICAqIG9mIG51bGwgb24gc3VjY2VzcyB0byBtaW1pY2sgc3RhbmRhcmQgbm9kZSBjYWxsYmFja3MuXG4gICAgICovXG4gICAgbWFrZUFzeW5jOiBmdW5jdGlvbiBtYWtlQXN5bmMoZm4sIGV4cGVjdGVkQXJncykge1xuICAgICAgaWYgKGV4cGVjdGVkQXJncyAmJiBleHBlY3RlZEFyZ3MgPD0gZm4ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmbjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG4gICAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3MucG9wKCk7XG4gICAgICAgIHZhciByZXN1bHQgPSBmbi5hcHBseShudWxsLCBhcmdzKTtcbiAgICAgICAgY2FsbGJhY2socmVzdWx0KTtcbiAgICAgIH07XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBEYXRlIGFuZCB0aW1lIHV0aWxpdHkgZnVuY3Rpb25zLlxuICAgKi9cbiAgZGF0ZToge1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybiBbRGF0ZV0gdGhlIGN1cnJlbnQgSmF2YVNjcmlwdCBkYXRlIG9iamVjdC4gU2luY2UgYWxsXG4gICAgICogICBBV1Mgc2VydmljZXMgcmVseSBvbiB0aGlzIGRhdGUgb2JqZWN0LCB5b3UgY2FuIG92ZXJyaWRlXG4gICAgICogICB0aGlzIGZ1bmN0aW9uIHRvIHByb3ZpZGUgYSBzcGVjaWFsIHRpbWUgdmFsdWUgdG8gQVdTIHNlcnZpY2VcbiAgICAgKiAgIHJlcXVlc3RzLlxuICAgICAqL1xuICAgIGdldERhdGU6IGZ1bmN0aW9uIGdldERhdGUoKSB7XG4gICAgICBpZiAoIUFXUykgQVdTID0gcmVxdWlyZSgnLi9jb3JlJyk7XG4gICAgICBpZiAoQVdTLmNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCkgeyAvLyB1c2Ugb2Zmc2V0IHdoZW4gbm9uLXplcm9cbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgQVdTLmNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQHJldHVybiBbU3RyaW5nXSB0aGUgZGF0ZSBpbiBJU08tODYwMSBmb3JtYXRcbiAgICAgKi9cbiAgICBpc284NjAxOiBmdW5jdGlvbiBpc284NjAxKGRhdGUpIHtcbiAgICAgIGlmIChkYXRlID09PSB1bmRlZmluZWQpIHsgZGF0ZSA9IHV0aWwuZGF0ZS5nZXREYXRlKCk7IH1cbiAgICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvXFwuXFxkezN9WiQvLCAnWicpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIFtTdHJpbmddIHRoZSBkYXRlIGluIFJGQyA4MjIgZm9ybWF0XG4gICAgICovXG4gICAgcmZjODIyOiBmdW5jdGlvbiByZmM4MjIoZGF0ZSkge1xuICAgICAgaWYgKGRhdGUgPT09IHVuZGVmaW5lZCkgeyBkYXRlID0gdXRpbC5kYXRlLmdldERhdGUoKTsgfVxuICAgICAgcmV0dXJuIGRhdGUudG9VVENTdHJpbmcoKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQHJldHVybiBbSW50ZWdlcl0gdGhlIFVOSVggdGltZXN0YW1wIHZhbHVlIGZvciB0aGUgY3VycmVudCB0aW1lXG4gICAgICovXG4gICAgdW5peFRpbWVzdGFtcDogZnVuY3Rpb24gdW5peFRpbWVzdGFtcChkYXRlKSB7XG4gICAgICBpZiAoZGF0ZSA9PT0gdW5kZWZpbmVkKSB7IGRhdGUgPSB1dGlsLmRhdGUuZ2V0RGF0ZSgpOyB9XG4gICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCkgLyAxMDAwO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gW1N0cmluZyxudW1iZXIsRGF0ZV0gZGF0ZVxuICAgICAqIEByZXR1cm4gW0RhdGVdXG4gICAgICovXG4gICAgZnJvbTogZnVuY3Rpb24gZm9ybWF0KGRhdGUpIHtcbiAgICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUgKiAxMDAwKTsgLy8gdW5peCB0aW1lc3RhbXBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBEYXRlIG9yIGRhdGUtbGlrZSB2YWx1ZSwgdGhpcyBmdW5jdGlvbiBmb3JtYXRzIHRoZVxuICAgICAqIGRhdGUgaW50byBhIHN0cmluZyBvZiB0aGUgcmVxdWVzdGVkIHZhbHVlLlxuICAgICAqIEBwYXJhbSBbU3RyaW5nLG51bWJlcixEYXRlXSBkYXRlXG4gICAgICogQHBhcmFtIFtTdHJpbmddIGZvcm1hdHRlciBWYWxpZCBmb3JtYXRzIGFyZTpcbiAgICAgIyAgICogJ2lzbzg2MDEnXG4gICAgICMgICAqICdyZmM4MjInXG4gICAgICMgICAqICd1bml4VGltZXN0YW1wJ1xuICAgICAqIEByZXR1cm4gW1N0cmluZ11cbiAgICAgKi9cbiAgICBmb3JtYXQ6IGZ1bmN0aW9uIGZvcm1hdChkYXRlLCBmb3JtYXR0ZXIpIHtcbiAgICAgIGlmICghZm9ybWF0dGVyKSBmb3JtYXR0ZXIgPSAnaXNvODYwMSc7XG4gICAgICByZXR1cm4gdXRpbC5kYXRlW2Zvcm1hdHRlcl0odXRpbC5kYXRlLmZyb20oZGF0ZSkpO1xuICAgIH0sXG5cbiAgICBwYXJzZVRpbWVzdGFtcDogZnVuY3Rpb24gcGFyc2VUaW1lc3RhbXAodmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7IC8vIHVuaXggdGltZXN0YW1wIChudW1iZXIpXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSAqIDEwMDApO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZS5tYXRjaCgvXlxcZCskLykpIHsgLy8gdW5peCB0aW1lc3RhbXBcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlICogMTAwMCk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLm1hdGNoKC9eXFxkezR9LykpIHsgLy8gaXNvODYwMVxuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh2YWx1ZS5tYXRjaCgvXlxcd3szfSwvKSkgeyAvLyByZmM4MjJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IHV0aWwuZXJyb3IoXG4gICAgICAgICAgbmV3IEVycm9yKCd1bmhhbmRsZWQgdGltZXN0YW1wIGZvcm1hdDogJyArIHZhbHVlKSxcbiAgICAgICAgICB7Y29kZTogJ1RpbWVzdGFtcFBhcnNlckVycm9yJ30pO1xuICAgICAgfVxuICAgIH1cblxuICB9LFxuXG4gIGNyeXB0bzoge1xuICAgIGNyYzMyVGFibGU6IFtcbiAgICAgMHgwMDAwMDAwMCwgMHg3NzA3MzA5NiwgMHhFRTBFNjEyQywgMHg5OTA5NTFCQSwgMHgwNzZEQzQxOSxcbiAgICAgMHg3MDZBRjQ4RiwgMHhFOTYzQTUzNSwgMHg5RTY0OTVBMywgMHgwRURCODgzMiwgMHg3OURDQjhBNCxcbiAgICAgMHhFMEQ1RTkxRSwgMHg5N0QyRDk4OCwgMHgwOUI2NEMyQiwgMHg3RUIxN0NCRCwgMHhFN0I4MkQwNyxcbiAgICAgMHg5MEJGMUQ5MSwgMHgxREI3MTA2NCwgMHg2QUIwMjBGMiwgMHhGM0I5NzE0OCwgMHg4NEJFNDFERSxcbiAgICAgMHgxQURBRDQ3RCwgMHg2RERERTRFQiwgMHhGNEQ0QjU1MSwgMHg4M0QzODVDNywgMHgxMzZDOTg1NixcbiAgICAgMHg2NDZCQThDMCwgMHhGRDYyRjk3QSwgMHg4QTY1QzlFQywgMHgxNDAxNUM0RiwgMHg2MzA2NkNEOSxcbiAgICAgMHhGQTBGM0Q2MywgMHg4RDA4MERGNSwgMHgzQjZFMjBDOCwgMHg0QzY5MTA1RSwgMHhENTYwNDFFNCxcbiAgICAgMHhBMjY3NzE3MiwgMHgzQzAzRTREMSwgMHg0QjA0RDQ0NywgMHhEMjBEODVGRCwgMHhBNTBBQjU2QixcbiAgICAgMHgzNUI1QThGQSwgMHg0MkIyOTg2QywgMHhEQkJCQzlENiwgMHhBQ0JDRjk0MCwgMHgzMkQ4NkNFMyxcbiAgICAgMHg0NURGNUM3NSwgMHhEQ0Q2MERDRiwgMHhBQkQxM0Q1OSwgMHgyNkQ5MzBBQywgMHg1MURFMDAzQSxcbiAgICAgMHhDOEQ3NTE4MCwgMHhCRkQwNjExNiwgMHgyMUI0RjRCNSwgMHg1NkIzQzQyMywgMHhDRkJBOTU5OSxcbiAgICAgMHhCOEJEQTUwRiwgMHgyODAyQjg5RSwgMHg1RjA1ODgwOCwgMHhDNjBDRDlCMiwgMHhCMTBCRTkyNCxcbiAgICAgMHgyRjZGN0M4NywgMHg1ODY4NEMxMSwgMHhDMTYxMURBQiwgMHhCNjY2MkQzRCwgMHg3NkRDNDE5MCxcbiAgICAgMHgwMURCNzEwNiwgMHg5OEQyMjBCQywgMHhFRkQ1MTAyQSwgMHg3MUIxODU4OSwgMHgwNkI2QjUxRixcbiAgICAgMHg5RkJGRTRBNSwgMHhFOEI4RDQzMywgMHg3ODA3QzlBMiwgMHgwRjAwRjkzNCwgMHg5NjA5QTg4RSxcbiAgICAgMHhFMTBFOTgxOCwgMHg3RjZBMERCQiwgMHgwODZEM0QyRCwgMHg5MTY0NkM5NywgMHhFNjYzNUMwMSxcbiAgICAgMHg2QjZCNTFGNCwgMHgxQzZDNjE2MiwgMHg4NTY1MzBEOCwgMHhGMjYyMDA0RSwgMHg2QzA2OTVFRCxcbiAgICAgMHgxQjAxQTU3QiwgMHg4MjA4RjRDMSwgMHhGNTBGQzQ1NywgMHg2NUIwRDlDNiwgMHgxMkI3RTk1MCxcbiAgICAgMHg4QkJFQjhFQSwgMHhGQ0I5ODg3QywgMHg2MkREMURERiwgMHgxNURBMkQ0OSwgMHg4Q0QzN0NGMyxcbiAgICAgMHhGQkQ0NEM2NSwgMHg0REIyNjE1OCwgMHgzQUI1NTFDRSwgMHhBM0JDMDA3NCwgMHhENEJCMzBFMixcbiAgICAgMHg0QURGQTU0MSwgMHgzREQ4OTVENywgMHhBNEQxQzQ2RCwgMHhEM0Q2RjRGQiwgMHg0MzY5RTk2QSxcbiAgICAgMHgzNDZFRDlGQywgMHhBRDY3ODg0NiwgMHhEQTYwQjhEMCwgMHg0NDA0MkQ3MywgMHgzMzAzMURFNSxcbiAgICAgMHhBQTBBNEM1RiwgMHhERDBEN0NDOSwgMHg1MDA1NzEzQywgMHgyNzAyNDFBQSwgMHhCRTBCMTAxMCxcbiAgICAgMHhDOTBDMjA4NiwgMHg1NzY4QjUyNSwgMHgyMDZGODVCMywgMHhCOTY2RDQwOSwgMHhDRTYxRTQ5RixcbiAgICAgMHg1RURFRjkwRSwgMHgyOUQ5Qzk5OCwgMHhCMEQwOTgyMiwgMHhDN0Q3QThCNCwgMHg1OUIzM0QxNyxcbiAgICAgMHgyRUI0MEQ4MSwgMHhCN0JENUMzQiwgMHhDMEJBNkNBRCwgMHhFREI4ODMyMCwgMHg5QUJGQjNCNixcbiAgICAgMHgwM0I2RTIwQywgMHg3NEIxRDI5QSwgMHhFQUQ1NDczOSwgMHg5REQyNzdBRiwgMHgwNERCMjYxNSxcbiAgICAgMHg3M0RDMTY4MywgMHhFMzYzMEIxMiwgMHg5NDY0M0I4NCwgMHgwRDZENkEzRSwgMHg3QTZBNUFBOCxcbiAgICAgMHhFNDBFQ0YwQiwgMHg5MzA5RkY5RCwgMHgwQTAwQUUyNywgMHg3RDA3OUVCMSwgMHhGMDBGOTM0NCxcbiAgICAgMHg4NzA4QTNEMiwgMHgxRTAxRjI2OCwgMHg2OTA2QzJGRSwgMHhGNzYyNTc1RCwgMHg4MDY1NjdDQixcbiAgICAgMHgxOTZDMzY3MSwgMHg2RTZCMDZFNywgMHhGRUQ0MUI3NiwgMHg4OUQzMkJFMCwgMHgxMERBN0E1QSxcbiAgICAgMHg2N0RENEFDQywgMHhGOUI5REY2RiwgMHg4RUJFRUZGOSwgMHgxN0I3QkU0MywgMHg2MEIwOEVENSxcbiAgICAgMHhENkQ2QTNFOCwgMHhBMUQxOTM3RSwgMHgzOEQ4QzJDNCwgMHg0RkRGRjI1MiwgMHhEMUJCNjdGMSxcbiAgICAgMHhBNkJDNTc2NywgMHgzRkI1MDZERCwgMHg0OEIyMzY0QiwgMHhEODBEMkJEQSwgMHhBRjBBMUI0QyxcbiAgICAgMHgzNjAzNEFGNiwgMHg0MTA0N0E2MCwgMHhERjYwRUZDMywgMHhBODY3REY1NSwgMHgzMTZFOEVFRixcbiAgICAgMHg0NjY5QkU3OSwgMHhDQjYxQjM4QywgMHhCQzY2ODMxQSwgMHgyNTZGRDJBMCwgMHg1MjY4RTIzNixcbiAgICAgMHhDQzBDNzc5NSwgMHhCQjBCNDcwMywgMHgyMjAyMTZCOSwgMHg1NTA1MjYyRiwgMHhDNUJBM0JCRSxcbiAgICAgMHhCMkJEMEIyOCwgMHgyQkI0NUE5MiwgMHg1Q0IzNkEwNCwgMHhDMkQ3RkZBNywgMHhCNUQwQ0YzMSxcbiAgICAgMHgyQ0Q5OUU4QiwgMHg1QkRFQUUxRCwgMHg5QjY0QzJCMCwgMHhFQzYzRjIyNiwgMHg3NTZBQTM5QyxcbiAgICAgMHgwMjZEOTMwQSwgMHg5QzA5MDZBOSwgMHhFQjBFMzYzRiwgMHg3MjA3Njc4NSwgMHgwNTAwNTcxMyxcbiAgICAgMHg5NUJGNEE4MiwgMHhFMkI4N0ExNCwgMHg3QkIxMkJBRSwgMHgwQ0I2MUIzOCwgMHg5MkQyOEU5QixcbiAgICAgMHhFNUQ1QkUwRCwgMHg3Q0RDRUZCNywgMHgwQkRCREYyMSwgMHg4NkQzRDJENCwgMHhGMUQ0RTI0MixcbiAgICAgMHg2OEREQjNGOCwgMHgxRkRBODM2RSwgMHg4MUJFMTZDRCwgMHhGNkI5MjY1QiwgMHg2RkIwNzdFMSxcbiAgICAgMHgxOEI3NDc3NywgMHg4ODA4NUFFNiwgMHhGRjBGNkE3MCwgMHg2NjA2M0JDQSwgMHgxMTAxMEI1QyxcbiAgICAgMHg4RjY1OUVGRiwgMHhGODYyQUU2OSwgMHg2MTZCRkZEMywgMHgxNjZDQ0Y0NSwgMHhBMDBBRTI3OCxcbiAgICAgMHhENzBERDJFRSwgMHg0RTA0ODM1NCwgMHgzOTAzQjNDMiwgMHhBNzY3MjY2MSwgMHhEMDYwMTZGNyxcbiAgICAgMHg0OTY5NDc0RCwgMHgzRTZFNzdEQiwgMHhBRUQxNkE0QSwgMHhEOUQ2NUFEQywgMHg0MERGMEI2NixcbiAgICAgMHgzN0Q4M0JGMCwgMHhBOUJDQUU1MywgMHhERUJCOUVDNSwgMHg0N0IyQ0Y3RiwgMHgzMEI1RkZFOSxcbiAgICAgMHhCREJERjIxQywgMHhDQUJBQzI4QSwgMHg1M0IzOTMzMCwgMHgyNEI0QTNBNiwgMHhCQUQwMzYwNSxcbiAgICAgMHhDREQ3MDY5MywgMHg1NERFNTcyOSwgMHgyM0Q5NjdCRiwgMHhCMzY2N0EyRSwgMHhDNDYxNEFCOCxcbiAgICAgMHg1RDY4MUIwMiwgMHgyQTZGMkI5NCwgMHhCNDBCQkUzNywgMHhDMzBDOEVBMSwgMHg1QTA1REYxQixcbiAgICAgMHgyRDAyRUY4RF0sXG5cbiAgICBjcmMzMjogZnVuY3Rpb24gY3JjMzIoZGF0YSkge1xuICAgICAgdmFyIHRibCA9IHV0aWwuY3J5cHRvLmNyYzMyVGFibGU7XG4gICAgICB2YXIgY3JjID0gMCBeIC0xO1xuXG4gICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGRhdGEgPSBuZXcgdXRpbC5CdWZmZXIoZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY29kZSA9IGRhdGEucmVhZFVJbnQ4KGkpO1xuICAgICAgICBjcmMgPSAoY3JjID4+PiA4KSBeIHRibFsoY3JjIF4gY29kZSkgJiAweEZGXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoY3JjIF4gLTEpID4+PiAwO1xuICAgIH0sXG5cbiAgICBobWFjOiBmdW5jdGlvbiBobWFjKGtleSwgc3RyaW5nLCBkaWdlc3QsIGZuKSB7XG4gICAgICBpZiAoIWRpZ2VzdCkgZGlnZXN0ID0gJ2JpbmFyeSc7XG4gICAgICBpZiAoZGlnZXN0ID09PSAnYnVmZmVyJykgeyBkaWdlc3QgPSB1bmRlZmluZWQ7IH1cbiAgICAgIGlmICghZm4pIGZuID0gJ3NoYTI1Nic7XG4gICAgICBpZiAodHlwZW9mIHN0cmluZyA9PT0gJ3N0cmluZycpIHN0cmluZyA9IG5ldyB1dGlsLkJ1ZmZlcihzdHJpbmcpO1xuICAgICAgcmV0dXJuIHV0aWwuY3J5cHRvLmxpYi5jcmVhdGVIbWFjKGZuLCBrZXkpLnVwZGF0ZShzdHJpbmcpLmRpZ2VzdChkaWdlc3QpO1xuICAgIH0sXG5cbiAgICBtZDU6IGZ1bmN0aW9uIG1kNShkYXRhLCBkaWdlc3QsIGNhbGxiYWNrKSB7XG4gICAgICByZXR1cm4gdXRpbC5jcnlwdG8uaGFzaCgnbWQ1JywgZGF0YSwgZGlnZXN0LCBjYWxsYmFjayk7XG4gICAgfSxcblxuICAgIHNoYTI1NjogZnVuY3Rpb24gc2hhMjU2KGRhdGEsIGRpZ2VzdCwgY2FsbGJhY2spIHtcbiAgICAgIHJldHVybiB1dGlsLmNyeXB0by5oYXNoKCdzaGEyNTYnLCBkYXRhLCBkaWdlc3QsIGNhbGxiYWNrKTtcbiAgICB9LFxuXG4gICAgaGFzaDogZnVuY3Rpb24oYWxnb3JpdGhtLCBkYXRhLCBkaWdlc3QsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgaGFzaCA9IHV0aWwuY3J5cHRvLmNyZWF0ZUhhc2goYWxnb3JpdGhtKTtcbiAgICAgIGlmICghZGlnZXN0KSB7IGRpZ2VzdCA9ICdiaW5hcnknOyB9XG4gICAgICBpZiAoZGlnZXN0ID09PSAnYnVmZmVyJykgeyBkaWdlc3QgPSB1bmRlZmluZWQ7IH1cbiAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIGRhdGEgPSBuZXcgdXRpbC5CdWZmZXIoZGF0YSk7XG4gICAgICB2YXIgc2xpY2VGbiA9IHV0aWwuYXJyYXlTbGljZUZuKGRhdGEpO1xuICAgICAgdmFyIGlzQnVmZmVyID0gdXRpbC5CdWZmZXIuaXNCdWZmZXIoZGF0YSk7XG4gICAgICAvL0lkZW50aWZ5aW5nIG9iamVjdHMgd2l0aCBhbiBBcnJheUJ1ZmZlciBhcyBidWZmZXJzXG4gICAgICBpZiAodXRpbC5pc0Jyb3dzZXIoKSAmJiB0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIGRhdGEgJiYgZGF0YS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgaXNCdWZmZXIgPSB0cnVlO1xuXG4gICAgICBpZiAoY2FsbGJhY2sgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgdHlwZW9mIGRhdGEub24gPT09ICdmdW5jdGlvbicgJiYgIWlzQnVmZmVyKSB7XG4gICAgICAgIGRhdGEub24oJ2RhdGEnLCBmdW5jdGlvbihjaHVuaykgeyBoYXNoLnVwZGF0ZShjaHVuayk7IH0pO1xuICAgICAgICBkYXRhLm9uKCdlcnJvcicsIGZ1bmN0aW9uKGVycikgeyBjYWxsYmFjayhlcnIpOyB9KTtcbiAgICAgICAgZGF0YS5vbignZW5kJywgZnVuY3Rpb24oKSB7IGNhbGxiYWNrKG51bGwsIGhhc2guZGlnZXN0KGRpZ2VzdCkpOyB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY2FsbGJhY2sgJiYgc2xpY2VGbiAmJiAhaXNCdWZmZXIgJiZcbiAgICAgICAgICAgICAgICAgdHlwZW9mIEZpbGVSZWFkZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIC8vIHRoaXMgbWlnaHQgYmUgYSBGaWxlL0Jsb2JcbiAgICAgICAgdmFyIGluZGV4ID0gMCwgc2l6ZSA9IDEwMjQgKiA1MTI7XG4gICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcignRmFpbGVkIHRvIHJlYWQgZGF0YS4nKSk7XG4gICAgICAgIH07XG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgYnVmID0gbmV3IHV0aWwuQnVmZmVyKG5ldyBVaW50OEFycmF5KHJlYWRlci5yZXN1bHQpKTtcbiAgICAgICAgICBoYXNoLnVwZGF0ZShidWYpO1xuICAgICAgICAgIGluZGV4ICs9IGJ1Zi5sZW5ndGg7XG4gICAgICAgICAgcmVhZGVyLl9jb250aW51ZVJlYWRpbmcoKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLl9jb250aW51ZVJlYWRpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICBpZiAoaW5kZXggPj0gZGF0YS5zaXplKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLCBoYXNoLmRpZ2VzdChkaWdlc3QpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgYmFjayA9IGluZGV4ICsgc2l6ZTtcbiAgICAgICAgICBpZiAoYmFjayA+IGRhdGEuc2l6ZSkgYmFjayA9IGRhdGEuc2l6ZTtcbiAgICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoc2xpY2VGbi5jYWxsKGRhdGEsIGluZGV4LCBiYWNrKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVhZGVyLl9jb250aW51ZVJlYWRpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh1dGlsLmlzQnJvd3NlcigpICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiAhaXNCdWZmZXIpIHtcbiAgICAgICAgICBkYXRhID0gbmV3IHV0aWwuQnVmZmVyKG5ldyBVaW50OEFycmF5KGRhdGEpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb3V0ID0gaGFzaC51cGRhdGUoZGF0YSkuZGlnZXN0KGRpZ2VzdCk7XG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2sobnVsbCwgb3V0KTtcbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgdG9IZXg6IGZ1bmN0aW9uIHRvSGV4KGRhdGEpIHtcbiAgICAgIHZhciBvdXQgPSBbXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICBvdXQucHVzaCgoJzAnICsgZGF0YS5jaGFyQ29kZUF0KGkpLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC0yLCAyKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3V0LmpvaW4oJycpO1xuICAgIH0sXG5cbiAgICBjcmVhdGVIYXNoOiBmdW5jdGlvbiBjcmVhdGVIYXNoKGFsZ29yaXRobSkge1xuICAgICAgcmV0dXJuIHV0aWwuY3J5cHRvLmxpYi5jcmVhdGVIYXNoKGFsZ29yaXRobSk7XG4gICAgfVxuXG4gIH0sXG5cbiAgLyoqIEAhaWdub3JlICovXG5cbiAgLyogQWJvcnQgY29uc3RhbnQgKi9cbiAgYWJvcnQ6IHt9LFxuXG4gIGVhY2g6IGZ1bmN0aW9uIGVhY2gob2JqZWN0LCBpdGVyRnVuY3Rpb24pIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgICB2YXIgcmV0ID0gaXRlckZ1bmN0aW9uLmNhbGwodGhpcywga2V5LCBvYmplY3Rba2V5XSk7XG4gICAgICAgIGlmIChyZXQgPT09IHV0aWwuYWJvcnQpIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBhcnJheUVhY2g6IGZ1bmN0aW9uIGFycmF5RWFjaChhcnJheSwgaXRlckZ1bmN0aW9uKSB7XG4gICAgZm9yICh2YXIgaWR4IGluIGFycmF5KSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFycmF5LCBpZHgpKSB7XG4gICAgICAgIHZhciByZXQgPSBpdGVyRnVuY3Rpb24uY2FsbCh0aGlzLCBhcnJheVtpZHhdLCBwYXJzZUludChpZHgsIDEwKSk7XG4gICAgICAgIGlmIChyZXQgPT09IHV0aWwuYWJvcnQpIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShvYmoxLCBvYmoyKSB7XG4gICAgdXRpbC5lYWNoKG9iajIsIGZ1bmN0aW9uIGl0ZXJhdG9yKGtleSwgaXRlbSkge1xuICAgICAgb2JqMVtrZXldID0gaXRlbTtcbiAgICB9KTtcbiAgICByZXR1cm4gb2JqMTtcbiAgfSxcblxuICBtZXJnZTogZnVuY3Rpb24gbWVyZ2Uob2JqMSwgb2JqMikge1xuICAgIHJldHVybiB1dGlsLnVwZGF0ZSh1dGlsLmNvcHkob2JqMSksIG9iajIpO1xuICB9LFxuXG4gIGNvcHk6IGZ1bmN0aW9uIGNvcHkob2JqZWN0KSB7XG4gICAgaWYgKG9iamVjdCA9PT0gbnVsbCB8fCBvYmplY3QgPT09IHVuZGVmaW5lZCkgcmV0dXJuIG9iamVjdDtcbiAgICB2YXIgZHVwZSA9IHt9O1xuICAgIC8vIGpzaGludCBmb3JpbjpmYWxzZVxuICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGR1cGVba2V5XSA9IG9iamVjdFtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gZHVwZTtcbiAgfSxcblxuICBpc0VtcHR5OiBmdW5jdGlvbiBpc0VtcHR5KG9iaikge1xuICAgIGZvciAodmFyIHByb3AgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcblxuICBhcnJheVNsaWNlRm46IGZ1bmN0aW9uIGFycmF5U2xpY2VGbihvYmopIHtcbiAgICB2YXIgZm4gPSBvYmouc2xpY2UgfHwgb2JqLndlYmtpdFNsaWNlIHx8IG9iai5tb3pTbGljZTtcbiAgICByZXR1cm4gdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gZm4gOiBudWxsO1xuICB9LFxuXG4gIGlzVHlwZTogZnVuY3Rpb24gaXNUeXBlKG9iaiwgdHlwZSkge1xuICAgIC8vIGhhbmRsZSBjcm9zcy1cImZyYW1lXCIgb2JqZWN0c1xuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykgdHlwZSA9IHV0aWwudHlwZU5hbWUodHlwZSk7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCAnICsgdHlwZSArICddJztcbiAgfSxcblxuICB0eXBlTmFtZTogZnVuY3Rpb24gdHlwZU5hbWUodHlwZSkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodHlwZSwgJ25hbWUnKSkgcmV0dXJuIHR5cGUubmFtZTtcbiAgICB2YXIgc3RyID0gdHlwZS50b1N0cmluZygpO1xuICAgIHZhciBtYXRjaCA9IHN0ci5tYXRjaCgvXlxccypmdW5jdGlvbiAoLispXFwoLyk7XG4gICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBzdHI7XG4gIH0sXG5cbiAgZXJyb3I6IGZ1bmN0aW9uIGVycm9yKGVyciwgb3B0aW9ucykge1xuICAgIHZhciBvcmlnaW5hbEVycm9yID0gbnVsbDtcbiAgICBpZiAodHlwZW9mIGVyci5tZXNzYWdlID09PSAnc3RyaW5nJyAmJiBlcnIubWVzc2FnZSAhPT0gJycpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgfHwgKG9wdGlvbnMgJiYgb3B0aW9ucy5tZXNzYWdlKSkge1xuICAgICAgICBvcmlnaW5hbEVycm9yID0gdXRpbC5jb3B5KGVycik7XG4gICAgICAgIG9yaWdpbmFsRXJyb3IubWVzc2FnZSA9IGVyci5tZXNzYWdlO1xuICAgICAgfVxuICAgIH1cbiAgICBlcnIubWVzc2FnZSA9IGVyci5tZXNzYWdlIHx8IG51bGw7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnIubWVzc2FnZSA9IG9wdGlvbnM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcgJiYgb3B0aW9ucyAhPT0gbnVsbCkge1xuICAgICAgdXRpbC51cGRhdGUoZXJyLCBvcHRpb25zKTtcbiAgICAgIGlmIChvcHRpb25zLm1lc3NhZ2UpXG4gICAgICAgIGVyci5tZXNzYWdlID0gb3B0aW9ucy5tZXNzYWdlO1xuICAgICAgaWYgKG9wdGlvbnMuY29kZSB8fCBvcHRpb25zLm5hbWUpXG4gICAgICAgIGVyci5jb2RlID0gb3B0aW9ucy5jb2RlIHx8IG9wdGlvbnMubmFtZTtcbiAgICAgIGlmIChvcHRpb25zLnN0YWNrKVxuICAgICAgICBlcnIuc3RhY2sgPSBvcHRpb25zLnN0YWNrO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyLCAnbmFtZScsIHt3cml0YWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2V9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIsICdtZXNzYWdlJywge2VudW1lcmFibGU6IHRydWV9KTtcbiAgICB9XG5cbiAgICBlcnIubmFtZSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5uYW1lIHx8IGVyci5uYW1lIHx8IGVyci5jb2RlIHx8ICdFcnJvcic7XG4gICAgZXJyLnRpbWUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgaWYgKG9yaWdpbmFsRXJyb3IpIGVyci5vcmlnaW5hbEVycm9yID0gb3JpZ2luYWxFcnJvcjtcblxuICAgIHJldHVybiBlcnI7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgaW5oZXJpdDogZnVuY3Rpb24gaW5oZXJpdChrbGFzcywgZmVhdHVyZXMpIHtcbiAgICB2YXIgbmV3T2JqZWN0ID0gbnVsbDtcbiAgICBpZiAoZmVhdHVyZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZmVhdHVyZXMgPSBrbGFzcztcbiAgICAgIGtsYXNzID0gT2JqZWN0O1xuICAgICAgbmV3T2JqZWN0ID0ge307XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjdG9yID0gZnVuY3Rpb24gQ29uc3RydWN0b3JXcmFwcGVyKCkge307XG4gICAgICBjdG9yLnByb3RvdHlwZSA9IGtsYXNzLnByb3RvdHlwZTtcbiAgICAgIG5ld09iamVjdCA9IG5ldyBjdG9yKCk7XG4gICAgfVxuXG4gICAgLy8gY29uc3RydWN0b3Igbm90IHN1cHBsaWVkLCBjcmVhdGUgcGFzcy10aHJvdWdoIGN0b3JcbiAgICBpZiAoZmVhdHVyZXMuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgICAgZmVhdHVyZXMuY29uc3RydWN0b3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKGtsYXNzICE9PSBPYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4ga2xhc3MuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBmZWF0dXJlcy5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBuZXdPYmplY3Q7XG4gICAgdXRpbC51cGRhdGUoZmVhdHVyZXMuY29uc3RydWN0b3IucHJvdG90eXBlLCBmZWF0dXJlcyk7XG4gICAgZmVhdHVyZXMuY29uc3RydWN0b3IuX19zdXBlcl9fID0ga2xhc3M7XG4gICAgcmV0dXJuIGZlYXR1cmVzLmNvbnN0cnVjdG9yO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIG1peGluOiBmdW5jdGlvbiBtaXhpbigpIHtcbiAgICB2YXIga2xhc3MgPSBhcmd1bWVudHNbMF07XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIGpzaGludCBmb3JpbjpmYWxzZVxuICAgICAgZm9yICh2YXIgcHJvcCBpbiBhcmd1bWVudHNbaV0ucHJvdG90eXBlKSB7XG4gICAgICAgIHZhciBmbiA9IGFyZ3VtZW50c1tpXS5wcm90b3R5cGVbcHJvcF07XG4gICAgICAgIGlmIChwcm9wICE9PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgICAga2xhc3MucHJvdG90eXBlW3Byb3BdID0gZm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtsYXNzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGhpZGVQcm9wZXJ0aWVzOiBmdW5jdGlvbiBoaWRlUHJvcGVydGllcyhvYmosIHByb3BzKSB7XG4gICAgaWYgKHR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydHkgIT09ICdmdW5jdGlvbicpIHJldHVybjtcblxuICAgIHV0aWwuYXJyYXlFYWNoKHByb3BzLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgcHJvcGVydHk6IGZ1bmN0aW9uIHByb3BlcnR5KG9iaiwgbmFtZSwgdmFsdWUsIGVudW1lcmFibGUsIGlzVmFsdWUpIHtcbiAgICB2YXIgb3B0cyA9IHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IGVudW1lcmFibGUgIT09IHVuZGVmaW5lZCA/IGVudW1lcmFibGUgOiB0cnVlXG4gICAgfTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nICYmICFpc1ZhbHVlKSB7XG4gICAgICBvcHRzLmdldCA9IHZhbHVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIG9wdHMudmFsdWUgPSB2YWx1ZTsgb3B0cy53cml0YWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgbmFtZSwgb3B0cyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgbWVtb2l6ZWRQcm9wZXJ0eTogZnVuY3Rpb24gbWVtb2l6ZWRQcm9wZXJ0eShvYmosIG5hbWUsIGdldCwgZW51bWVyYWJsZSkge1xuICAgIHZhciBjYWNoZWRWYWx1ZSA9IG51bGw7XG5cbiAgICAvLyBidWlsZCBlbnVtZXJhYmxlIGF0dHJpYnV0ZSBmb3IgZWFjaCB2YWx1ZSB3aXRoIGxhenkgYWNjZXNzb3IuXG4gICAgdXRpbC5wcm9wZXJ0eShvYmosIG5hbWUsIGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKGNhY2hlZFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIGNhY2hlZFZhbHVlID0gZ2V0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2FjaGVkVmFsdWU7XG4gICAgfSwgZW51bWVyYWJsZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFRPRE8gUmVtb3ZlIGluIG1ham9yIHZlcnNpb24gcmV2aXNpb25cbiAgICogVGhpcyBiYWNrZmlsbCBwb3B1bGF0ZXMgcmVzcG9uc2UgZGF0YSB3aXRob3V0IHRoZVxuICAgKiB0b3AtbGV2ZWwgcGF5bG9hZCBuYW1lLlxuICAgKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGhvaXN0UGF5bG9hZE1lbWJlcjogZnVuY3Rpb24gaG9pc3RQYXlsb2FkTWVtYmVyKHJlc3ApIHtcbiAgICB2YXIgcmVxID0gcmVzcC5yZXF1ZXN0O1xuICAgIHZhciBvcGVyYXRpb25OYW1lID0gcmVxLm9wZXJhdGlvbjtcbiAgICB2YXIgb3BlcmF0aW9uID0gcmVxLnNlcnZpY2UuYXBpLm9wZXJhdGlvbnNbb3BlcmF0aW9uTmFtZV07XG4gICAgdmFyIG91dHB1dCA9IG9wZXJhdGlvbi5vdXRwdXQ7XG4gICAgaWYgKG91dHB1dC5wYXlsb2FkICYmICFvcGVyYXRpb24uaGFzRXZlbnRPdXRwdXQpIHtcbiAgICAgIHZhciBwYXlsb2FkTWVtYmVyID0gb3V0cHV0Lm1lbWJlcnNbb3V0cHV0LnBheWxvYWRdO1xuICAgICAgdmFyIHJlc3BvbnNlUGF5bG9hZCA9IHJlc3AuZGF0YVtvdXRwdXQucGF5bG9hZF07XG4gICAgICBpZiAocGF5bG9hZE1lbWJlci50eXBlID09PSAnc3RydWN0dXJlJykge1xuICAgICAgICB1dGlsLmVhY2gocmVzcG9uc2VQYXlsb2FkLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgdXRpbC5wcm9wZXJ0eShyZXNwLmRhdGEsIGtleSwgdmFsdWUsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIFNIQS0yNTYgY2hlY2tzdW1zIG9mIHN0cmVhbXNcbiAgICpcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBjb21wdXRlU2hhMjU2OiBmdW5jdGlvbiBjb21wdXRlU2hhMjU2KGJvZHksIGRvbmUpIHtcbiAgICBpZiAodXRpbC5pc05vZGUoKSkge1xuICAgICAgdmFyIFN0cmVhbSA9IHV0aWwuc3RyZWFtLlN0cmVhbTtcbiAgICAgIHZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gICAgICBpZiAoYm9keSBpbnN0YW5jZW9mIFN0cmVhbSkge1xuICAgICAgICBpZiAodHlwZW9mIGJvZHkucGF0aCA9PT0gJ3N0cmluZycpIHsgLy8gYXNzdW1lIGZpbGUgb2JqZWN0XG4gICAgICAgICAgdmFyIHNldHRpbmdzID0ge307XG4gICAgICAgICAgaWYgKHR5cGVvZiBib2R5LnN0YXJ0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2V0dGluZ3Muc3RhcnQgPSBib2R5LnN0YXJ0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGJvZHkuZW5kID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2V0dGluZ3MuZW5kID0gYm9keS5lbmQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJvZHkgPSBmcy5jcmVhdGVSZWFkU3RyZWFtKGJvZHkucGF0aCwgc2V0dGluZ3MpO1xuICAgICAgICB9IGVsc2UgeyAvLyBUT0RPIHN1cHBvcnQgb3RoZXIgc3RyZWFtIHR5cGVzXG4gICAgICAgICAgcmV0dXJuIGRvbmUobmV3IEVycm9yKCdOb24tZmlsZSBzdHJlYW0gb2JqZWN0cyBhcmUgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3Qgc3VwcG9ydGVkIHdpdGggU2lnVjQnKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB1dGlsLmNyeXB0by5zaGEyNTYoYm9keSwgJ2hleCcsIGZ1bmN0aW9uKGVyciwgc2hhKSB7XG4gICAgICBpZiAoZXJyKSBkb25lKGVycik7XG4gICAgICBlbHNlIGRvbmUobnVsbCwgc2hhKTtcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBpc0Nsb2NrU2tld2VkOiBmdW5jdGlvbiBpc0Nsb2NrU2tld2VkKHNlcnZlclRpbWUpIHtcbiAgICBpZiAoc2VydmVyVGltZSkge1xuICAgICAgdXRpbC5wcm9wZXJ0eShBV1MuY29uZmlnLCAnaXNDbG9ja1NrZXdlZCcsXG4gICAgICAgIE1hdGguYWJzKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc2VydmVyVGltZSkgPj0gMzAwMDAwLCBmYWxzZSk7XG4gICAgICByZXR1cm4gQVdTLmNvbmZpZy5pc0Nsb2NrU2tld2VkO1xuICAgIH1cbiAgfSxcblxuICBhcHBseUNsb2NrT2Zmc2V0OiBmdW5jdGlvbiBhcHBseUNsb2NrT2Zmc2V0KHNlcnZlclRpbWUpIHtcbiAgICBpZiAoc2VydmVyVGltZSlcbiAgICAgIEFXUy5jb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQgPSBzZXJ2ZXJUaW1lIC0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgZXh0cmFjdFJlcXVlc3RJZDogZnVuY3Rpb24gZXh0cmFjdFJlcXVlc3RJZChyZXNwKSB7XG4gICAgdmFyIHJlcXVlc3RJZCA9IHJlc3AuaHR0cFJlc3BvbnNlLmhlYWRlcnNbJ3gtYW16LXJlcXVlc3QtaWQnXSB8fFxuICAgICAgICAgICAgICAgICAgICAgcmVzcC5odHRwUmVzcG9uc2UuaGVhZGVyc1sneC1hbXpuLXJlcXVlc3RpZCddO1xuXG4gICAgaWYgKCFyZXF1ZXN0SWQgJiYgcmVzcC5kYXRhICYmIHJlc3AuZGF0YS5SZXNwb25zZU1ldGFkYXRhKSB7XG4gICAgICByZXF1ZXN0SWQgPSByZXNwLmRhdGEuUmVzcG9uc2VNZXRhZGF0YS5SZXF1ZXN0SWQ7XG4gICAgfVxuXG4gICAgaWYgKHJlcXVlc3RJZCkge1xuICAgICAgcmVzcC5yZXF1ZXN0SWQgPSByZXF1ZXN0SWQ7XG4gICAgfVxuXG4gICAgaWYgKHJlc3AuZXJyb3IpIHtcbiAgICAgIHJlc3AuZXJyb3IucmVxdWVzdElkID0gcmVxdWVzdElkO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBhZGRQcm9taXNlczogZnVuY3Rpb24gYWRkUHJvbWlzZXMoY29uc3RydWN0b3JzLCBQcm9taXNlRGVwZW5kZW5jeSkge1xuICAgIGlmIChQcm9taXNlRGVwZW5kZW5jeSA9PT0gdW5kZWZpbmVkICYmIEFXUyAmJiBBV1MuY29uZmlnKSB7XG4gICAgICBQcm9taXNlRGVwZW5kZW5jeSA9IEFXUy5jb25maWcuZ2V0UHJvbWlzZXNEZXBlbmRlbmN5KCk7XG4gICAgfVxuICAgIGlmIChQcm9taXNlRGVwZW5kZW5jeSA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBQcm9taXNlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgUHJvbWlzZURlcGVuZGVuY3kgPSBQcm9taXNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIFByb21pc2VEZXBlbmRlbmN5ICE9PSAnZnVuY3Rpb24nKSB2YXIgZGVsZXRlUHJvbWlzZXMgPSB0cnVlO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShjb25zdHJ1Y3RvcnMpKSBjb25zdHJ1Y3RvcnMgPSBbY29uc3RydWN0b3JzXTtcblxuICAgIGZvciAodmFyIGluZCA9IDA7IGluZCA8IGNvbnN0cnVjdG9ycy5sZW5ndGg7IGluZCsrKSB7XG4gICAgICB2YXIgY29uc3RydWN0b3IgPSBjb25zdHJ1Y3RvcnNbaW5kXTtcbiAgICAgIGlmIChkZWxldGVQcm9taXNlcykge1xuICAgICAgICBpZiAoY29uc3RydWN0b3IuZGVsZXRlUHJvbWlzZXNGcm9tQ2xhc3MpIHtcbiAgICAgICAgICBjb25zdHJ1Y3Rvci5kZWxldGVQcm9taXNlc0Zyb21DbGFzcygpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNvbnN0cnVjdG9yLmFkZFByb21pc2VzVG9DbGFzcykge1xuICAgICAgICBjb25zdHJ1Y3Rvci5hZGRQcm9taXNlc1RvQ2xhc3MoUHJvbWlzZURlcGVuZGVuY3kpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBwcm9taXNpZnlNZXRob2Q6IGZ1bmN0aW9uIHByb21pc2lmeU1ldGhvZChtZXRob2ROYW1lLCBQcm9taXNlRGVwZW5kZW5jeSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBwcm9taXNlKCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlRGVwZW5kZW5jeShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgc2VsZlttZXRob2ROYW1lXShmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBpc0R1YWxzdGFja0F2YWlsYWJsZTogZnVuY3Rpb24gaXNEdWFsc3RhY2tBdmFpbGFibGUoc2VydmljZSkge1xuICAgIGlmICghc2VydmljZSkgcmV0dXJuIGZhbHNlO1xuICAgIHZhciBtZXRhZGF0YSA9IHJlcXVpcmUoJy4uL2FwaXMvbWV0YWRhdGEuanNvbicpO1xuICAgIGlmICh0eXBlb2Ygc2VydmljZSAhPT0gJ3N0cmluZycpIHNlcnZpY2UgPSBzZXJ2aWNlLnNlcnZpY2VJZGVudGlmaWVyO1xuICAgIGlmICh0eXBlb2Ygc2VydmljZSAhPT0gJ3N0cmluZycgfHwgIW1ldGFkYXRhLmhhc093blByb3BlcnR5KHNlcnZpY2UpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICEhbWV0YWRhdGFbc2VydmljZV0uZHVhbHN0YWNrQXZhaWxhYmxlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNhbGN1bGF0ZVJldHJ5RGVsYXk6IGZ1bmN0aW9uIGNhbGN1bGF0ZVJldHJ5RGVsYXkocmV0cnlDb3VudCwgcmV0cnlEZWxheU9wdGlvbnMpIHtcbiAgICBpZiAoIXJldHJ5RGVsYXlPcHRpb25zKSByZXRyeURlbGF5T3B0aW9ucyA9IHt9O1xuICAgIHZhciBjdXN0b21CYWNrb2ZmID0gcmV0cnlEZWxheU9wdGlvbnMuY3VzdG9tQmFja29mZiB8fCBudWxsO1xuICAgIGlmICh0eXBlb2YgY3VzdG9tQmFja29mZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGN1c3RvbUJhY2tvZmYocmV0cnlDb3VudCk7XG4gICAgfVxuICAgIHZhciBiYXNlID0gdHlwZW9mIHJldHJ5RGVsYXlPcHRpb25zLmJhc2UgPT09ICdudW1iZXInID8gcmV0cnlEZWxheU9wdGlvbnMuYmFzZSA6IDEwMDtcbiAgICB2YXIgZGVsYXkgPSBNYXRoLnJhbmRvbSgpICogKE1hdGgucG93KDIsIHJldHJ5Q291bnQpICogYmFzZSk7XG4gICAgcmV0dXJuIGRlbGF5O1xuICB9LFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGhhbmRsZVJlcXVlc3RXaXRoUmV0cmllczogZnVuY3Rpb24gaGFuZGxlUmVxdWVzdFdpdGhSZXRyaWVzKGh0dHBSZXF1ZXN0LCBvcHRpb25zLCBjYikge1xuICAgIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICAgIHZhciBodHRwID0gQVdTLkh0dHBDbGllbnQuZ2V0SW5zdGFuY2UoKTtcbiAgICB2YXIgaHR0cE9wdGlvbnMgPSBvcHRpb25zLmh0dHBPcHRpb25zIHx8IHt9O1xuICAgIHZhciByZXRyeUNvdW50ID0gMDtcblxuICAgIHZhciBlcnJDYWxsYmFjayA9IGZ1bmN0aW9uKGVycikge1xuICAgICAgdmFyIG1heFJldHJpZXMgPSBvcHRpb25zLm1heFJldHJpZXMgfHwgMDtcbiAgICAgIGlmIChlcnIgJiYgZXJyLmNvZGUgPT09ICdUaW1lb3V0RXJyb3InKSBlcnIucmV0cnlhYmxlID0gdHJ1ZTtcbiAgICAgIGlmIChlcnIgJiYgZXJyLnJldHJ5YWJsZSAmJiByZXRyeUNvdW50IDwgbWF4UmV0cmllcykge1xuICAgICAgICByZXRyeUNvdW50Kys7XG4gICAgICAgIHZhciBkZWxheSA9IHV0aWwuY2FsY3VsYXRlUmV0cnlEZWxheShyZXRyeUNvdW50LCBvcHRpb25zLnJldHJ5RGVsYXlPcHRpb25zKTtcbiAgICAgICAgc2V0VGltZW91dChzZW5kUmVxdWVzdCwgZGVsYXkgKyAoZXJyLnJldHJ5QWZ0ZXIgfHwgMCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2IoZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIHNlbmRSZXF1ZXN0ID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZGF0YSA9ICcnO1xuICAgICAgaHR0cC5oYW5kbGVSZXF1ZXN0KGh0dHBSZXF1ZXN0LCBodHRwT3B0aW9ucywgZnVuY3Rpb24oaHR0cFJlc3BvbnNlKSB7XG4gICAgICAgIGh0dHBSZXNwb25zZS5vbignZGF0YScsIGZ1bmN0aW9uKGNodW5rKSB7IGRhdGEgKz0gY2h1bmsudG9TdHJpbmcoKTsgfSk7XG4gICAgICAgIGh0dHBSZXNwb25zZS5vbignZW5kJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIHN0YXR1c0NvZGUgPSBodHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICAgICAgICBpZiAoc3RhdHVzQ29kZSA8IDMwMCkge1xuICAgICAgICAgICAgY2IobnVsbCwgZGF0YSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciByZXRyeUFmdGVyID0gcGFyc2VJbnQoaHR0cFJlc3BvbnNlLmhlYWRlcnNbJ3JldHJ5LWFmdGVyJ10sIDEwKSAqIDEwMDAgfHwgMDtcbiAgICAgICAgICAgIHZhciBlcnIgPSB1dGlsLmVycm9yKG5ldyBFcnJvcigpLFxuICAgICAgICAgICAgICB7IHJldHJ5YWJsZTogc3RhdHVzQ29kZSA+PSA1MDAgfHwgc3RhdHVzQ29kZSA9PT0gNDI5IH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAocmV0cnlBZnRlciAmJiBlcnIucmV0cnlhYmxlKSBlcnIucmV0cnlBZnRlciA9IHJldHJ5QWZ0ZXI7XG4gICAgICAgICAgICBlcnJDYWxsYmFjayhlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LCBlcnJDYWxsYmFjayk7XG4gICAgfTtcblxuICAgIEFXUy51dGlsLmRlZmVyKHNlbmRSZXF1ZXN0KTtcbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICB1dWlkOiB7XG4gICAgdjQ6IGZ1bmN0aW9uIHV1aWRWNCgpIHtcbiAgICAgIHJldHVybiByZXF1aXJlKCd1dWlkJykudjQoKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgY29udmVydFBheWxvYWRUb1N0cmluZzogZnVuY3Rpb24gY29udmVydFBheWxvYWRUb1N0cmluZyhyZXNwKSB7XG4gICAgdmFyIHJlcSA9IHJlc3AucmVxdWVzdDtcbiAgICB2YXIgb3BlcmF0aW9uID0gcmVxLm9wZXJhdGlvbjtcbiAgICB2YXIgcnVsZXMgPSByZXEuc2VydmljZS5hcGkub3BlcmF0aW9uc1tvcGVyYXRpb25dLm91dHB1dCB8fCB7fTtcbiAgICBpZiAocnVsZXMucGF5bG9hZCAmJiByZXNwLmRhdGFbcnVsZXMucGF5bG9hZF0pIHtcbiAgICAgIHJlc3AuZGF0YVtydWxlcy5wYXlsb2FkXSA9IHJlc3AuZGF0YVtydWxlcy5wYXlsb2FkXS50b1N0cmluZygpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBkZWZlcjogZnVuY3Rpb24gZGVmZXIoY2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIHByb2Nlc3MgPT09ICdvYmplY3QnICYmIHR5cGVvZiBwcm9jZXNzLm5leHRUaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLm5leHRUaWNrKGNhbGxiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzZXRJbW1lZGlhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHNldEltbWVkaWF0ZShjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRpbWVvdXQoY2FsbGJhY2ssIDApO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBkZWZhdWx0UHJvZmlsZTogJ2RlZmF1bHQnLFxuXG4gIC8qKlxuICAgKiBAYXBpIHByaXZhdGVcbiAgICovXG4gIGNvbmZpZ09wdEluRW52OiAnQVdTX1NES19MT0FEX0NPTkZJRycsXG5cbiAgLyoqXG4gICAqIEBhcGkgcHJpdmF0ZVxuICAgKi9cbiAgc2hhcmVkQ3JlZGVudGlhbHNGaWxlRW52OiAnQVdTX1NIQVJFRF9DUkVERU5USUFMU19GSUxFJyxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBzaGFyZWRDb25maWdGaWxlRW52OiAnQVdTX0NPTkZJR19GSUxFJyxcblxuICAvKipcbiAgICogQGFwaSBwcml2YXRlXG4gICAqL1xuICBpbWRzRGlzYWJsZWRFbnY6ICdBV1NfRUMyX01FVEFEQVRBX0RJU0FCTEVEJ1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB1dGlsO1xuIiwidmFyIHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG52YXIgU2hhcGUgPSByZXF1aXJlKCcuLi9tb2RlbC9zaGFwZScpO1xuXG5mdW5jdGlvbiBEb21YbWxQYXJzZXIoKSB7IH1cblxuRG9tWG1sUGFyc2VyLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uKHhtbCwgc2hhcGUpIHtcbiAgaWYgKHhtbC5yZXBsYWNlKC9eXFxzKy8sICcnKSA9PT0gJycpIHJldHVybiB7fTtcblxuICB2YXIgcmVzdWx0LCBlcnJvcjtcbiAgdHJ5IHtcbiAgICBpZiAod2luZG93LkRPTVBhcnNlcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgICAgICAgcmVzdWx0ID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyh4bWwsICd0ZXh0L3htbCcpO1xuICAgICAgfSBjYXRjaCAoc3ludGF4RXJyb3IpIHtcbiAgICAgICAgdGhyb3cgdXRpbC5lcnJvcihuZXcgRXJyb3IoJ1BhcnNlIGVycm9yIGluIGRvY3VtZW50JyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luYWxFcnJvcjogc3ludGF4RXJyb3IsXG4gICAgICAgICAgICBjb2RlOiAnWE1MUGFyc2VyRXJyb3InLFxuICAgICAgICAgICAgcmV0cnlhYmxlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXN1bHQuZG9jdW1lbnRFbGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IHV0aWwuZXJyb3IobmV3IEVycm9yKCdDYW5ub3QgcGFyc2UgZW1wdHkgZG9jdW1lbnQuJyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJ1hNTFBhcnNlckVycm9yJyxcbiAgICAgICAgICAgIHJldHJ5YWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB2YXIgaXNFcnJvciA9IHJlc3VsdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncGFyc2VyZXJyb3InKVswXTtcbiAgICAgIGlmIChpc0Vycm9yICYmIChpc0Vycm9yLnBhcmVudE5vZGUgPT09IHJlc3VsdCB8fFxuICAgICAgICAgIGlzRXJyb3IucGFyZW50Tm9kZS5ub2RlTmFtZSA9PT0gJ2JvZHknIHx8XG4gICAgICAgICAgaXNFcnJvci5wYXJlbnROb2RlLnBhcmVudE5vZGUgPT09IHJlc3VsdCB8fFxuICAgICAgICAgIGlzRXJyb3IucGFyZW50Tm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lID09PSAnYm9keScpKSB7XG4gICAgICAgIHZhciBlcnJvckVsZW1lbnQgPSBpc0Vycm9yLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKVswXSB8fCBpc0Vycm9yO1xuICAgICAgICB0aHJvdyB1dGlsLmVycm9yKG5ldyBFcnJvcihlcnJvckVsZW1lbnQudGV4dENvbnRlbnQgfHwgJ1BhcnNlciBlcnJvciBpbiBkb2N1bWVudCcpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvZGU6ICdYTUxQYXJzZXJFcnJvcicsXG4gICAgICAgICAgICByZXRyeWFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHdpbmRvdy5BY3RpdmVYT2JqZWN0KSB7XG4gICAgICByZXN1bHQgPSBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxET00nKTtcbiAgICAgIHJlc3VsdC5hc3luYyA9IGZhbHNlO1xuXG4gICAgICBpZiAoIXJlc3VsdC5sb2FkWE1MKHhtbCkpIHtcbiAgICAgICAgdGhyb3cgdXRpbC5lcnJvcihuZXcgRXJyb3IoJ1BhcnNlIGVycm9yIGluIGRvY3VtZW50JyksXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29kZTogJ1hNTFBhcnNlckVycm9yJyxcbiAgICAgICAgICAgIHJldHJ5YWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBsb2FkIFhNTCBwYXJzZXInKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBlcnJvciA9IGU7XG4gIH1cblxuICBpZiAocmVzdWx0ICYmIHJlc3VsdC5kb2N1bWVudEVsZW1lbnQgJiYgIWVycm9yKSB7XG4gICAgdmFyIGRhdGEgPSBwYXJzZVhtbChyZXN1bHQuZG9jdW1lbnRFbGVtZW50LCBzaGFwZSk7XG4gICAgdmFyIG1ldGFkYXRhID0gcmVzdWx0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdSZXNwb25zZU1ldGFkYXRhJylbMF07XG4gICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICBkYXRhLlJlc3BvbnNlTWV0YWRhdGEgPSBwYXJzZVhtbChtZXRhZGF0YSwge30pO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfSBlbHNlIGlmIChlcnJvcikge1xuICAgIHRocm93IHV0aWwuZXJyb3IoZXJyb3IgfHwgbmV3IEVycm9yKCksIHtjb2RlOiAnWE1MUGFyc2VyRXJyb3InLCByZXRyeWFibGU6IHRydWV9KTtcbiAgfSBlbHNlIHsgLy8gZW1wdHkgeG1sIGRvY3VtZW50XG4gICAgcmV0dXJuIHt9O1xuICB9XG59O1xuXG5mdW5jdGlvbiBwYXJzZVhtbCh4bWwsIHNoYXBlKSB7XG4gIGlmICghc2hhcGUpIHNoYXBlID0ge307XG4gIHN3aXRjaCAoc2hhcGUudHlwZSkge1xuICAgIGNhc2UgJ3N0cnVjdHVyZSc6IHJldHVybiBwYXJzZVN0cnVjdHVyZSh4bWwsIHNoYXBlKTtcbiAgICBjYXNlICdtYXAnOiByZXR1cm4gcGFyc2VNYXAoeG1sLCBzaGFwZSk7XG4gICAgY2FzZSAnbGlzdCc6IHJldHVybiBwYXJzZUxpc3QoeG1sLCBzaGFwZSk7XG4gICAgY2FzZSB1bmRlZmluZWQ6IGNhc2UgbnVsbDogcmV0dXJuIHBhcnNlVW5rbm93bih4bWwpO1xuICAgIGRlZmF1bHQ6IHJldHVybiBwYXJzZVNjYWxhcih4bWwsIHNoYXBlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVN0cnVjdHVyZSh4bWwsIHNoYXBlKSB7XG4gIHZhciBkYXRhID0ge307XG4gIGlmICh4bWwgPT09IG51bGwpIHJldHVybiBkYXRhO1xuXG4gIHV0aWwuZWFjaChzaGFwZS5tZW1iZXJzLCBmdW5jdGlvbihtZW1iZXJOYW1lLCBtZW1iZXJTaGFwZSkge1xuICAgIGlmIChtZW1iZXJTaGFwZS5pc1htbEF0dHJpYnV0ZSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh4bWwuYXR0cmlidXRlcywgbWVtYmVyU2hhcGUubmFtZSkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0geG1sLmF0dHJpYnV0ZXNbbWVtYmVyU2hhcGUubmFtZV0udmFsdWU7XG4gICAgICAgIGRhdGFbbWVtYmVyTmFtZV0gPSBwYXJzZVhtbCh7dGV4dENvbnRlbnQ6IHZhbHVlfSwgbWVtYmVyU2hhcGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgeG1sQ2hpbGQgPSBtZW1iZXJTaGFwZS5mbGF0dGVuZWQgPyB4bWwgOlxuICAgICAgICB4bWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUobWVtYmVyU2hhcGUubmFtZSlbMF07XG4gICAgICBpZiAoeG1sQ2hpbGQpIHtcbiAgICAgICAgZGF0YVttZW1iZXJOYW1lXSA9IHBhcnNlWG1sKHhtbENoaWxkLCBtZW1iZXJTaGFwZSk7XG4gICAgICB9IGVsc2UgaWYgKCFtZW1iZXJTaGFwZS5mbGF0dGVuZWQgJiYgbWVtYmVyU2hhcGUudHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICAgIGRhdGFbbWVtYmVyTmFtZV0gPSBtZW1iZXJTaGFwZS5kZWZhdWx0VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gcGFyc2VNYXAoeG1sLCBzaGFwZSkge1xuICB2YXIgZGF0YSA9IHt9O1xuICB2YXIgeG1sS2V5ID0gc2hhcGUua2V5Lm5hbWUgfHwgJ2tleSc7XG4gIHZhciB4bWxWYWx1ZSA9IHNoYXBlLnZhbHVlLm5hbWUgfHwgJ3ZhbHVlJztcbiAgdmFyIHRhZ05hbWUgPSBzaGFwZS5mbGF0dGVuZWQgPyBzaGFwZS5uYW1lIDogJ2VudHJ5JztcblxuICB2YXIgY2hpbGQgPSB4bWwuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gIHdoaWxlIChjaGlsZCkge1xuICAgIGlmIChjaGlsZC5ub2RlTmFtZSA9PT0gdGFnTmFtZSkge1xuICAgICAgdmFyIGtleSA9IGNoaWxkLmdldEVsZW1lbnRzQnlUYWdOYW1lKHhtbEtleSlbMF0udGV4dENvbnRlbnQ7XG4gICAgICB2YXIgdmFsdWUgPSBjaGlsZC5nZXRFbGVtZW50c0J5VGFnTmFtZSh4bWxWYWx1ZSlbMF07XG4gICAgICBkYXRhW2tleV0gPSBwYXJzZVhtbCh2YWx1ZSwgc2hhcGUudmFsdWUpO1xuICAgIH1cbiAgICBjaGlsZCA9IGNoaWxkLm5leHRFbGVtZW50U2libGluZztcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gcGFyc2VMaXN0KHhtbCwgc2hhcGUpIHtcbiAgdmFyIGRhdGEgPSBbXTtcbiAgdmFyIHRhZ05hbWUgPSBzaGFwZS5mbGF0dGVuZWQgPyBzaGFwZS5uYW1lIDogKHNoYXBlLm1lbWJlci5uYW1lIHx8ICdtZW1iZXInKTtcblxuICB2YXIgY2hpbGQgPSB4bWwuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gIHdoaWxlIChjaGlsZCkge1xuICAgIGlmIChjaGlsZC5ub2RlTmFtZSA9PT0gdGFnTmFtZSkge1xuICAgICAgZGF0YS5wdXNoKHBhcnNlWG1sKGNoaWxkLCBzaGFwZS5tZW1iZXIpKTtcbiAgICB9XG4gICAgY2hpbGQgPSBjaGlsZC5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIHBhcnNlU2NhbGFyKHhtbCwgc2hhcGUpIHtcbiAgaWYgKHhtbC5nZXRBdHRyaWJ1dGUpIHtcbiAgICB2YXIgZW5jb2RpbmcgPSB4bWwuZ2V0QXR0cmlidXRlKCdlbmNvZGluZycpO1xuICAgIGlmIChlbmNvZGluZyA9PT0gJ2Jhc2U2NCcpIHtcbiAgICAgIHNoYXBlID0gbmV3IFNoYXBlLmNyZWF0ZSh7dHlwZTogZW5jb2Rpbmd9KTtcbiAgICB9XG4gIH1cblxuICB2YXIgdGV4dCA9IHhtbC50ZXh0Q29udGVudDtcbiAgaWYgKHRleHQgPT09ICcnKSB0ZXh0ID0gbnVsbDtcbiAgaWYgKHR5cGVvZiBzaGFwZS50b1R5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gc2hhcGUudG9UeXBlKHRleHQpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0ZXh0O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlVW5rbm93bih4bWwpIHtcbiAgaWYgKHhtbCA9PT0gdW5kZWZpbmVkIHx8IHhtbCA9PT0gbnVsbCkgcmV0dXJuICcnO1xuXG4gIC8vIGVtcHR5IG9iamVjdFxuICBpZiAoIXhtbC5maXJzdEVsZW1lbnRDaGlsZCkge1xuICAgIGlmICh4bWwucGFyZW50Tm9kZS5wYXJlbnROb2RlID09PSBudWxsKSByZXR1cm4ge307XG4gICAgaWYgKHhtbC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuICAgIGVsc2UgcmV0dXJuIHhtbC50ZXh0Q29udGVudDtcbiAgfVxuXG4gIC8vIG9iamVjdCwgcGFyc2UgYXMgc3RydWN0dXJlXG4gIHZhciBzaGFwZSA9IHt0eXBlOiAnc3RydWN0dXJlJywgbWVtYmVyczoge319O1xuICB2YXIgY2hpbGQgPSB4bWwuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gIHdoaWxlIChjaGlsZCkge1xuICAgIHZhciB0YWcgPSBjaGlsZC5ub2RlTmFtZTtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNoYXBlLm1lbWJlcnMsIHRhZykpIHtcbiAgICAgIC8vIG11bHRpcGxlIHRhZ3Mgb2YgdGhlIHNhbWUgbmFtZSBtYWtlcyBpdCBhIGxpc3RcbiAgICAgIHNoYXBlLm1lbWJlcnNbdGFnXS50eXBlID0gJ2xpc3QnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaGFwZS5tZW1iZXJzW3RhZ10gPSB7bmFtZTogdGFnfTtcbiAgICB9XG4gICAgY2hpbGQgPSBjaGlsZC5uZXh0RWxlbWVudFNpYmxpbmc7XG4gIH1cbiAgcmV0dXJuIHBhcnNlU3RydWN0dXJlKHhtbCwgc2hhcGUpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IERvbVhtbFBhcnNlcjtcbiIsInZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xudmFyIFhtbE5vZGUgPSByZXF1aXJlKCcuL3htbC1ub2RlJykuWG1sTm9kZTtcbnZhciBYbWxUZXh0ID0gcmVxdWlyZSgnLi94bWwtdGV4dCcpLlhtbFRleHQ7XG5cbmZ1bmN0aW9uIFhtbEJ1aWxkZXIoKSB7IH1cblxuWG1sQnVpbGRlci5wcm90b3R5cGUudG9YTUwgPSBmdW5jdGlvbihwYXJhbXMsIHNoYXBlLCByb290RWxlbWVudCwgbm9FbXB0eSkge1xuICB2YXIgeG1sID0gbmV3IFhtbE5vZGUocm9vdEVsZW1lbnQpO1xuICBhcHBseU5hbWVzcGFjZXMoeG1sLCBzaGFwZSwgdHJ1ZSk7XG4gIHNlcmlhbGl6ZSh4bWwsIHBhcmFtcywgc2hhcGUpO1xuICByZXR1cm4geG1sLmNoaWxkcmVuLmxlbmd0aCA+IDAgfHwgbm9FbXB0eSA/IHhtbC50b1N0cmluZygpIDogJyc7XG59O1xuXG5mdW5jdGlvbiBzZXJpYWxpemUoeG1sLCB2YWx1ZSwgc2hhcGUpIHtcbiAgc3dpdGNoIChzaGFwZS50eXBlKSB7XG4gICAgY2FzZSAnc3RydWN0dXJlJzogcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZSh4bWwsIHZhbHVlLCBzaGFwZSk7XG4gICAgY2FzZSAnbWFwJzogcmV0dXJuIHNlcmlhbGl6ZU1hcCh4bWwsIHZhbHVlLCBzaGFwZSk7XG4gICAgY2FzZSAnbGlzdCc6IHJldHVybiBzZXJpYWxpemVMaXN0KHhtbCwgdmFsdWUsIHNoYXBlKTtcbiAgICBkZWZhdWx0OiByZXR1cm4gc2VyaWFsaXplU2NhbGFyKHhtbCwgdmFsdWUsIHNoYXBlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVTdHJ1Y3R1cmUoeG1sLCBwYXJhbXMsIHNoYXBlKSB7XG4gIHV0aWwuYXJyYXlFYWNoKHNoYXBlLm1lbWJlck5hbWVzLCBmdW5jdGlvbihtZW1iZXJOYW1lKSB7XG4gICAgdmFyIG1lbWJlclNoYXBlID0gc2hhcGUubWVtYmVyc1ttZW1iZXJOYW1lXTtcbiAgICBpZiAobWVtYmVyU2hhcGUubG9jYXRpb24gIT09ICdib2R5JykgcmV0dXJuO1xuXG4gICAgdmFyIHZhbHVlID0gcGFyYW1zW21lbWJlck5hbWVdO1xuICAgIHZhciBuYW1lID0gbWVtYmVyU2hhcGUubmFtZTtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG1lbWJlclNoYXBlLmlzWG1sQXR0cmlidXRlKSB7XG4gICAgICAgIHhtbC5hZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChtZW1iZXJTaGFwZS5mbGF0dGVuZWQpIHtcbiAgICAgICAgc2VyaWFsaXplKHhtbCwgdmFsdWUsIG1lbWJlclNoYXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBlbGVtZW50ID0gbmV3IFhtbE5vZGUobmFtZSk7XG4gICAgICAgIHhtbC5hZGRDaGlsZE5vZGUoZWxlbWVudCk7XG4gICAgICAgIGFwcGx5TmFtZXNwYWNlcyhlbGVtZW50LCBtZW1iZXJTaGFwZSk7XG4gICAgICAgIHNlcmlhbGl6ZShlbGVtZW50LCB2YWx1ZSwgbWVtYmVyU2hhcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZU1hcCh4bWwsIG1hcCwgc2hhcGUpIHtcbiAgdmFyIHhtbEtleSA9IHNoYXBlLmtleS5uYW1lIHx8ICdrZXknO1xuICB2YXIgeG1sVmFsdWUgPSBzaGFwZS52YWx1ZS5uYW1lIHx8ICd2YWx1ZSc7XG5cbiAgdXRpbC5lYWNoKG1hcCwgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgIHZhciBlbnRyeSA9IG5ldyBYbWxOb2RlKHNoYXBlLmZsYXR0ZW5lZCA/IHNoYXBlLm5hbWUgOiAnZW50cnknKTtcbiAgICB4bWwuYWRkQ2hpbGROb2RlKGVudHJ5KTtcblxuICAgIHZhciBlbnRyeUtleSA9IG5ldyBYbWxOb2RlKHhtbEtleSk7XG4gICAgdmFyIGVudHJ5VmFsdWUgPSBuZXcgWG1sTm9kZSh4bWxWYWx1ZSk7XG4gICAgZW50cnkuYWRkQ2hpbGROb2RlKGVudHJ5S2V5KVxuICAgIGVudHJ5LmFkZENoaWxkTm9kZShlbnRyeVZhbHVlKVxuXG4gICAgc2VyaWFsaXplKGVudHJ5S2V5LCBrZXksIHNoYXBlLmtleSk7XG4gICAgc2VyaWFsaXplKGVudHJ5VmFsdWUsIHZhbHVlLCBzaGFwZS52YWx1ZSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemVMaXN0KHhtbCwgbGlzdCwgc2hhcGUpIHtcbiAgaWYgKHNoYXBlLmZsYXR0ZW5lZCkge1xuICAgIHV0aWwuYXJyYXlFYWNoKGxpc3QsIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICB2YXIgbmFtZSA9IHNoYXBlLm1lbWJlci5uYW1lIHx8IHNoYXBlLm5hbWU7XG4gICAgICB2YXIgZWxlbWVudCA9IG5ldyBYbWxOb2RlKG5hbWUpO1xuICAgICAgeG1sLmFkZENoaWxkTm9kZShlbGVtZW50KTtcbiAgICAgIHNlcmlhbGl6ZShlbGVtZW50LCB2YWx1ZSwgc2hhcGUubWVtYmVyKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB1dGlsLmFycmF5RWFjaChsaXN0LCBmdW5jdGlvbih2YWx1ZSkge1xuICAgICAgdmFyIG5hbWUgPSBzaGFwZS5tZW1iZXIubmFtZSB8fCAnbWVtYmVyJztcbiAgICAgIHZhciBlbGVtZW50ID0gbmV3IFhtbE5vZGUobmFtZSk7XG4gICAgICB4bWwuYWRkQ2hpbGROb2RlKGVsZW1lbnQpO1xuICAgICAgc2VyaWFsaXplKGVsZW1lbnQsIHZhbHVlLCBzaGFwZS5tZW1iZXIpO1xuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNlcmlhbGl6ZVNjYWxhcih4bWwsIHZhbHVlLCBzaGFwZSkge1xuICB4bWwuYWRkQ2hpbGROb2RlKFxuICAgIG5ldyBYbWxUZXh0KHNoYXBlLnRvV2lyZUZvcm1hdCh2YWx1ZSkpXG4gICk7XG59XG5cbmZ1bmN0aW9uIGFwcGx5TmFtZXNwYWNlcyh4bWwsIHNoYXBlLCBpc1Jvb3QpIHtcbiAgdmFyIHVyaSwgcHJlZml4ID0gJ3htbG5zJztcbiAgaWYgKHNoYXBlLnhtbE5hbWVzcGFjZVVyaSkge1xuICAgIHVyaSA9IHNoYXBlLnhtbE5hbWVzcGFjZVVyaTtcbiAgICBpZiAoc2hhcGUueG1sTmFtZXNwYWNlUHJlZml4KSBwcmVmaXggKz0gJzonICsgc2hhcGUueG1sTmFtZXNwYWNlUHJlZml4O1xuICB9IGVsc2UgaWYgKGlzUm9vdCAmJiBzaGFwZS5hcGkueG1sTmFtZXNwYWNlVXJpKSB7XG4gICAgdXJpID0gc2hhcGUuYXBpLnhtbE5hbWVzcGFjZVVyaTtcbiAgfVxuXG4gIGlmICh1cmkpIHhtbC5hZGRBdHRyaWJ1dGUocHJlZml4LCB1cmkpO1xufVxuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IFhtbEJ1aWxkZXI7XG4iLCIvKipcbiAqIEVzY2FwZXMgY2hhcmFjdGVycyB0aGF0IGNhbiBub3QgYmUgaW4gYW4gWE1MIGF0dHJpYnV0ZS5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgJyZhbXA7JykucmVwbGFjZSgvJy9nLCAnJmFwb3M7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKS5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7Jyk7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGVzY2FwZUF0dHJpYnV0ZTogZXNjYXBlQXR0cmlidXRlXG59OyIsIi8qKlxuICogRXNjYXBlcyBjaGFyYWN0ZXJzIHRoYXQgY2FuIG5vdCBiZSBpbiBhbiBYTUwgZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlRWxlbWVudCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7Jyk7XG59XG5cbi8qKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGVzY2FwZUVsZW1lbnQ6IGVzY2FwZUVsZW1lbnRcbn07IiwidmFyIGVzY2FwZUF0dHJpYnV0ZSA9IHJlcXVpcmUoJy4vZXNjYXBlLWF0dHJpYnV0ZScpLmVzY2FwZUF0dHJpYnV0ZTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFhNTCBub2RlLlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIFhtbE5vZGUobmFtZSwgY2hpbGRyZW4pIHtcbiAgICBpZiAoY2hpbGRyZW4gPT09IHZvaWQgMCkgeyBjaGlsZHJlbiA9IFtdOyB9XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0ge307XG59XG5YbWxOb2RlLnByb3RvdHlwZS5hZGRBdHRyaWJ1dGUgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbn07XG5YbWxOb2RlLnByb3RvdHlwZS5hZGRDaGlsZE5vZGUgPSBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgIHJldHVybiB0aGlzO1xufTtcblhtbE5vZGUucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZSA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuYXR0cmlidXRlc1tuYW1lXTtcbiAgICByZXR1cm4gdGhpcztcbn07XG5YbWxOb2RlLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgaGFzQ2hpbGRyZW4gPSBCb29sZWFuKHRoaXMuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICB2YXIgeG1sVGV4dCA9ICc8JyArIHRoaXMubmFtZTtcbiAgICAvLyBhZGQgYXR0cmlidXRlc1xuICAgIHZhciBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzO1xuICAgIGZvciAodmFyIGkgPSAwLCBhdHRyaWJ1dGVOYW1lcyA9IE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpOyBpIDwgYXR0cmlidXRlTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGVOYW1lc1tpXTtcbiAgICAgICAgdmFyIGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXNbYXR0cmlidXRlTmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgYXR0cmlidXRlICE9PSAndW5kZWZpbmVkJyAmJiBhdHRyaWJ1dGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHhtbFRleHQgKz0gJyAnICsgYXR0cmlidXRlTmFtZSArICc9XFxcIicgKyBlc2NhcGVBdHRyaWJ1dGUoJycgKyBhdHRyaWJ1dGUpICsgJ1xcXCInO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB4bWxUZXh0ICs9ICFoYXNDaGlsZHJlbiA/ICcvPicgOiAnPicgKyB0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbiAoYykgeyByZXR1cm4gYy50b1N0cmluZygpOyB9KS5qb2luKCcnKSArICc8LycgKyB0aGlzLm5hbWUgKyAnPic7XG59O1xuXG4vKipcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBYbWxOb2RlOiBYbWxOb2RlXG59OyIsInZhciBlc2NhcGVFbGVtZW50ID0gcmVxdWlyZSgnLi9lc2NhcGUtZWxlbWVudCcpLmVzY2FwZUVsZW1lbnQ7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBYTUwgdGV4dCB2YWx1ZS5cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBYbWxUZXh0KHZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xufVxuXG5YbWxUZXh0LnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZXNjYXBlRWxlbWVudCgnJyArIHRoaXMudmFsdWUpO1xufTtcblxuLyoqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgWG1sVGV4dDogWG1sVGV4dFxufTsiLCIndXNlIHN0cmljdCdcblxuZXhwb3J0cy5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aFxuZXhwb3J0cy50b0J5dGVBcnJheSA9IHRvQnl0ZUFycmF5XG5leHBvcnRzLmZyb21CeXRlQXJyYXkgPSBmcm9tQnl0ZUFycmF5XG5cbnZhciBsb29rdXAgPSBbXVxudmFyIHJldkxvb2t1cCA9IFtdXG52YXIgQXJyID0gdHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnID8gVWludDhBcnJheSA6IEFycmF5XG5cbnZhciBjb2RlID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nXG5mb3IgKHZhciBpID0gMCwgbGVuID0gY29kZS5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICBsb29rdXBbaV0gPSBjb2RlW2ldXG4gIHJldkxvb2t1cFtjb2RlLmNoYXJDb2RlQXQoaSldID0gaVxufVxuXG4vLyBTdXBwb3J0IGRlY29kaW5nIFVSTC1zYWZlIGJhc2U2NCBzdHJpbmdzLCBhcyBOb2RlLmpzIGRvZXMuXG4vLyBTZWU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Jhc2U2NCNVUkxfYXBwbGljYXRpb25zXG5yZXZMb29rdXBbJy0nLmNoYXJDb2RlQXQoMCldID0gNjJcbnJldkxvb2t1cFsnXycuY2hhckNvZGVBdCgwKV0gPSA2M1xuXG5mdW5jdGlvbiBnZXRMZW5zIChiNjQpIHtcbiAgdmFyIGxlbiA9IGI2NC5sZW5ndGhcblxuICBpZiAobGVuICUgNCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKVxuICB9XG5cbiAgLy8gVHJpbSBvZmYgZXh0cmEgYnl0ZXMgYWZ0ZXIgcGxhY2Vob2xkZXIgYnl0ZXMgYXJlIGZvdW5kXG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2JlYXRnYW1taXQvYmFzZTY0LWpzL2lzc3Vlcy80MlxuICB2YXIgdmFsaWRMZW4gPSBiNjQuaW5kZXhPZignPScpXG4gIGlmICh2YWxpZExlbiA9PT0gLTEpIHZhbGlkTGVuID0gbGVuXG5cbiAgdmFyIHBsYWNlSG9sZGVyc0xlbiA9IHZhbGlkTGVuID09PSBsZW5cbiAgICA/IDBcbiAgICA6IDQgLSAodmFsaWRMZW4gJSA0KVxuXG4gIHJldHVybiBbdmFsaWRMZW4sIHBsYWNlSG9sZGVyc0xlbl1cbn1cblxuLy8gYmFzZTY0IGlzIDQvMyArIHVwIHRvIHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBvcmlnaW5hbCBkYXRhXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChiNjQpIHtcbiAgdmFyIGxlbnMgPSBnZXRMZW5zKGI2NClcbiAgdmFyIHZhbGlkTGVuID0gbGVuc1swXVxuICB2YXIgcGxhY2VIb2xkZXJzTGVuID0gbGVuc1sxXVxuICByZXR1cm4gKCh2YWxpZExlbiArIHBsYWNlSG9sZGVyc0xlbikgKiAzIC8gNCkgLSBwbGFjZUhvbGRlcnNMZW5cbn1cblxuZnVuY3Rpb24gX2J5dGVMZW5ndGggKGI2NCwgdmFsaWRMZW4sIHBsYWNlSG9sZGVyc0xlbikge1xuICByZXR1cm4gKCh2YWxpZExlbiArIHBsYWNlSG9sZGVyc0xlbikgKiAzIC8gNCkgLSBwbGFjZUhvbGRlcnNMZW5cbn1cblxuZnVuY3Rpb24gdG9CeXRlQXJyYXkgKGI2NCkge1xuICB2YXIgdG1wXG4gIHZhciBsZW5zID0gZ2V0TGVucyhiNjQpXG4gIHZhciB2YWxpZExlbiA9IGxlbnNbMF1cbiAgdmFyIHBsYWNlSG9sZGVyc0xlbiA9IGxlbnNbMV1cblxuICB2YXIgYXJyID0gbmV3IEFycihfYnl0ZUxlbmd0aChiNjQsIHZhbGlkTGVuLCBwbGFjZUhvbGRlcnNMZW4pKVxuXG4gIHZhciBjdXJCeXRlID0gMFxuXG4gIC8vIGlmIHRoZXJlIGFyZSBwbGFjZWhvbGRlcnMsIG9ubHkgZ2V0IHVwIHRvIHRoZSBsYXN0IGNvbXBsZXRlIDQgY2hhcnNcbiAgdmFyIGxlbiA9IHBsYWNlSG9sZGVyc0xlbiA+IDBcbiAgICA/IHZhbGlkTGVuIC0gNFxuICAgIDogdmFsaWRMZW5cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSA0KSB7XG4gICAgdG1wID1cbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSldIDw8IDE4KSB8XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAxKV0gPDwgMTIpIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDIpXSA8PCA2KSB8XG4gICAgICByZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDMpXVxuICAgIGFycltjdXJCeXRlKytdID0gKHRtcCA+PiAxNikgJiAweEZGXG4gICAgYXJyW2N1ckJ5dGUrK10gPSAodG1wID4+IDgpICYgMHhGRlxuICAgIGFycltjdXJCeXRlKytdID0gdG1wICYgMHhGRlxuICB9XG5cbiAgaWYgKHBsYWNlSG9sZGVyc0xlbiA9PT0gMikge1xuICAgIHRtcCA9XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAyKSB8XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAxKV0gPj4gNClcbiAgICBhcnJbY3VyQnl0ZSsrXSA9IHRtcCAmIDB4RkZcbiAgfVxuXG4gIGlmIChwbGFjZUhvbGRlcnNMZW4gPT09IDEpIHtcbiAgICB0bXAgPVxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpKV0gPDwgMTApIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA8PCA0KSB8XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAyKV0gPj4gMilcbiAgICBhcnJbY3VyQnl0ZSsrXSA9ICh0bXAgPj4gOCkgJiAweEZGXG4gICAgYXJyW2N1ckJ5dGUrK10gPSB0bXAgJiAweEZGXG4gIH1cblxuICByZXR1cm4gYXJyXG59XG5cbmZ1bmN0aW9uIHRyaXBsZXRUb0Jhc2U2NCAobnVtKSB7XG4gIHJldHVybiBsb29rdXBbbnVtID4+IDE4ICYgMHgzRl0gK1xuICAgIGxvb2t1cFtudW0gPj4gMTIgJiAweDNGXSArXG4gICAgbG9va3VwW251bSA+PiA2ICYgMHgzRl0gK1xuICAgIGxvb2t1cFtudW0gJiAweDNGXVxufVxuXG5mdW5jdGlvbiBlbmNvZGVDaHVuayAodWludDgsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHRtcFxuICB2YXIgb3V0cHV0ID0gW11cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpICs9IDMpIHtcbiAgICB0bXAgPVxuICAgICAgKCh1aW50OFtpXSA8PCAxNikgJiAweEZGMDAwMCkgK1xuICAgICAgKCh1aW50OFtpICsgMV0gPDwgOCkgJiAweEZGMDApICtcbiAgICAgICh1aW50OFtpICsgMl0gJiAweEZGKVxuICAgIG91dHB1dC5wdXNoKHRyaXBsZXRUb0Jhc2U2NCh0bXApKVxuICB9XG4gIHJldHVybiBvdXRwdXQuam9pbignJylcbn1cblxuZnVuY3Rpb24gZnJvbUJ5dGVBcnJheSAodWludDgpIHtcbiAgdmFyIHRtcFxuICB2YXIgbGVuID0gdWludDgubGVuZ3RoXG4gIHZhciBleHRyYUJ5dGVzID0gbGVuICUgMyAvLyBpZiB3ZSBoYXZlIDEgYnl0ZSBsZWZ0LCBwYWQgMiBieXRlc1xuICB2YXIgcGFydHMgPSBbXVxuICB2YXIgbWF4Q2h1bmtMZW5ndGggPSAxNjM4MyAvLyBtdXN0IGJlIG11bHRpcGxlIG9mIDNcblxuICAvLyBnbyB0aHJvdWdoIHRoZSBhcnJheSBldmVyeSB0aHJlZSBieXRlcywgd2UnbGwgZGVhbCB3aXRoIHRyYWlsaW5nIHN0dWZmIGxhdGVyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4yID0gbGVuIC0gZXh0cmFCeXRlczsgaSA8IGxlbjI7IGkgKz0gbWF4Q2h1bmtMZW5ndGgpIHtcbiAgICBwYXJ0cy5wdXNoKGVuY29kZUNodW5rKFxuICAgICAgdWludDgsIGksIChpICsgbWF4Q2h1bmtMZW5ndGgpID4gbGVuMiA/IGxlbjIgOiAoaSArIG1heENodW5rTGVuZ3RoKVxuICAgICkpXG4gIH1cblxuICAvLyBwYWQgdGhlIGVuZCB3aXRoIHplcm9zLCBidXQgbWFrZSBzdXJlIHRvIG5vdCBmb3JnZXQgdGhlIGV4dHJhIGJ5dGVzXG4gIGlmIChleHRyYUJ5dGVzID09PSAxKSB7XG4gICAgdG1wID0gdWludDhbbGVuIC0gMV1cbiAgICBwYXJ0cy5wdXNoKFxuICAgICAgbG9va3VwW3RtcCA+PiAyXSArXG4gICAgICBsb29rdXBbKHRtcCA8PCA0KSAmIDB4M0ZdICtcbiAgICAgICc9PSdcbiAgICApXG4gIH0gZWxzZSBpZiAoZXh0cmFCeXRlcyA9PT0gMikge1xuICAgIHRtcCA9ICh1aW50OFtsZW4gLSAyXSA8PCA4KSArIHVpbnQ4W2xlbiAtIDFdXG4gICAgcGFydHMucHVzaChcbiAgICAgIGxvb2t1cFt0bXAgPj4gMTBdICtcbiAgICAgIGxvb2t1cFsodG1wID4+IDQpICYgMHgzRl0gK1xuICAgICAgbG9va3VwWyh0bXAgPDwgMikgJiAweDNGXSArXG4gICAgICAnPSdcbiAgICApXG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignJylcbn1cbiIsIihmdW5jdGlvbiAobW9kdWxlLCBleHBvcnRzKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICAvLyBVdGlsc1xuICBmdW5jdGlvbiBhc3NlcnQgKHZhbCwgbXNnKSB7XG4gICAgaWYgKCF2YWwpIHRocm93IG5ldyBFcnJvcihtc2cgfHwgJ0Fzc2VydGlvbiBmYWlsZWQnKTtcbiAgfVxuXG4gIC8vIENvdWxkIHVzZSBgaW5oZXJpdHNgIG1vZHVsZSwgYnV0IGRvbid0IHdhbnQgdG8gbW92ZSBmcm9tIHNpbmdsZSBmaWxlXG4gIC8vIGFyY2hpdGVjdHVyZSB5ZXQuXG4gIGZ1bmN0aW9uIGluaGVyaXRzIChjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvcjtcbiAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fTtcbiAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlO1xuICAgIGN0b3IucHJvdG90eXBlID0gbmV3IFRlbXBDdG9yKCk7XG4gICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yO1xuICB9XG5cbiAgLy8gQk5cblxuICBmdW5jdGlvbiBCTiAobnVtYmVyLCBiYXNlLCBlbmRpYW4pIHtcbiAgICBpZiAoQk4uaXNCTihudW1iZXIpKSB7XG4gICAgICByZXR1cm4gbnVtYmVyO1xuICAgIH1cblxuICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgIHRoaXMud29yZHMgPSBudWxsO1xuICAgIHRoaXMubGVuZ3RoID0gMDtcblxuICAgIC8vIFJlZHVjdGlvbiBjb250ZXh0XG4gICAgdGhpcy5yZWQgPSBudWxsO1xuXG4gICAgaWYgKG51bWJlciAhPT0gbnVsbCkge1xuICAgICAgaWYgKGJhc2UgPT09ICdsZScgfHwgYmFzZSA9PT0gJ2JlJykge1xuICAgICAgICBlbmRpYW4gPSBiYXNlO1xuICAgICAgICBiYXNlID0gMTA7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2luaXQobnVtYmVyIHx8IDAsIGJhc2UgfHwgMTAsIGVuZGlhbiB8fCAnYmUnKTtcbiAgICB9XG4gIH1cbiAgaWYgKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBCTjtcbiAgfSBlbHNlIHtcbiAgICBleHBvcnRzLkJOID0gQk47XG4gIH1cblxuICBCTi5CTiA9IEJOO1xuICBCTi53b3JkU2l6ZSA9IDI2O1xuXG4gIHZhciBCdWZmZXI7XG4gIHRyeSB7XG4gICAgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykuQnVmZmVyO1xuICB9IGNhdGNoIChlKSB7XG4gIH1cblxuICBCTi5pc0JOID0gZnVuY3Rpb24gaXNCTiAobnVtKSB7XG4gICAgaWYgKG51bSBpbnN0YW5jZW9mIEJOKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVtICE9PSBudWxsICYmIHR5cGVvZiBudW0gPT09ICdvYmplY3QnICYmXG4gICAgICBudW0uY29uc3RydWN0b3Iud29yZFNpemUgPT09IEJOLndvcmRTaXplICYmIEFycmF5LmlzQXJyYXkobnVtLndvcmRzKTtcbiAgfTtcblxuICBCTi5tYXggPSBmdW5jdGlvbiBtYXggKGxlZnQsIHJpZ2h0KSB7XG4gICAgaWYgKGxlZnQuY21wKHJpZ2h0KSA+IDApIHJldHVybiBsZWZ0O1xuICAgIHJldHVybiByaWdodDtcbiAgfTtcblxuICBCTi5taW4gPSBmdW5jdGlvbiBtaW4gKGxlZnQsIHJpZ2h0KSB7XG4gICAgaWYgKGxlZnQuY21wKHJpZ2h0KSA8IDApIHJldHVybiBsZWZ0O1xuICAgIHJldHVybiByaWdodDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX2luaXQgPSBmdW5jdGlvbiBpbml0IChudW1iZXIsIGJhc2UsIGVuZGlhbikge1xuICAgIGlmICh0eXBlb2YgbnVtYmVyID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRoaXMuX2luaXROdW1iZXIobnVtYmVyLCBiYXNlLCBlbmRpYW4pO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbnVtYmVyID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHRoaXMuX2luaXRBcnJheShudW1iZXIsIGJhc2UsIGVuZGlhbik7XG4gICAgfVxuXG4gICAgaWYgKGJhc2UgPT09ICdoZXgnKSB7XG4gICAgICBiYXNlID0gMTY7XG4gICAgfVxuICAgIGFzc2VydChiYXNlID09PSAoYmFzZSB8IDApICYmIGJhc2UgPj0gMiAmJiBiYXNlIDw9IDM2KTtcblxuICAgIG51bWJlciA9IG51bWJlci50b1N0cmluZygpLnJlcGxhY2UoL1xccysvZywgJycpO1xuICAgIHZhciBzdGFydCA9IDA7XG4gICAgaWYgKG51bWJlclswXSA9PT0gJy0nKSB7XG4gICAgICBzdGFydCsrO1xuICAgIH1cblxuICAgIGlmIChiYXNlID09PSAxNikge1xuICAgICAgdGhpcy5fcGFyc2VIZXgobnVtYmVyLCBzdGFydCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3BhcnNlQmFzZShudW1iZXIsIGJhc2UsIHN0YXJ0KTtcbiAgICB9XG5cbiAgICBpZiAobnVtYmVyWzBdID09PSAnLScpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuICAgIH1cblxuICAgIHRoaXMuc3RyaXAoKTtcblxuICAgIGlmIChlbmRpYW4gIT09ICdsZScpIHJldHVybjtcblxuICAgIHRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSwgYmFzZSwgZW5kaWFuKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX2luaXROdW1iZXIgPSBmdW5jdGlvbiBfaW5pdE51bWJlciAobnVtYmVyLCBiYXNlLCBlbmRpYW4pIHtcbiAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG4gICAgICBudW1iZXIgPSAtbnVtYmVyO1xuICAgIH1cbiAgICBpZiAobnVtYmVyIDwgMHg0MDAwMDAwKSB7XG4gICAgICB0aGlzLndvcmRzID0gWyBudW1iZXIgJiAweDNmZmZmZmYgXTtcbiAgICAgIHRoaXMubGVuZ3RoID0gMTtcbiAgICB9IGVsc2UgaWYgKG51bWJlciA8IDB4MTAwMDAwMDAwMDAwMDApIHtcbiAgICAgIHRoaXMud29yZHMgPSBbXG4gICAgICAgIG51bWJlciAmIDB4M2ZmZmZmZixcbiAgICAgICAgKG51bWJlciAvIDB4NDAwMDAwMCkgJiAweDNmZmZmZmZcbiAgICAgIF07XG4gICAgICB0aGlzLmxlbmd0aCA9IDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2VydChudW1iZXIgPCAweDIwMDAwMDAwMDAwMDAwKTsgLy8gMiBeIDUzICh1bnNhZmUpXG4gICAgICB0aGlzLndvcmRzID0gW1xuICAgICAgICBudW1iZXIgJiAweDNmZmZmZmYsXG4gICAgICAgIChudW1iZXIgLyAweDQwMDAwMDApICYgMHgzZmZmZmZmLFxuICAgICAgICAxXG4gICAgICBdO1xuICAgICAgdGhpcy5sZW5ndGggPSAzO1xuICAgIH1cblxuICAgIGlmIChlbmRpYW4gIT09ICdsZScpIHJldHVybjtcblxuICAgIC8vIFJldmVyc2UgdGhlIGJ5dGVzXG4gICAgdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLCBiYXNlLCBlbmRpYW4pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5faW5pdEFycmF5ID0gZnVuY3Rpb24gX2luaXRBcnJheSAobnVtYmVyLCBiYXNlLCBlbmRpYW4pIHtcbiAgICAvLyBQZXJoYXBzIGEgVWludDhBcnJheVxuICAgIGFzc2VydCh0eXBlb2YgbnVtYmVyLmxlbmd0aCA9PT0gJ251bWJlcicpO1xuICAgIGlmIChudW1iZXIubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMud29yZHMgPSBbIDAgXTtcbiAgICAgIHRoaXMubGVuZ3RoID0gMTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMubGVuZ3RoID0gTWF0aC5jZWlsKG51bWJlci5sZW5ndGggLyAzKTtcbiAgICB0aGlzLndvcmRzID0gbmV3IEFycmF5KHRoaXMubGVuZ3RoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSAwO1xuICAgIH1cblxuICAgIHZhciBqLCB3O1xuICAgIHZhciBvZmYgPSAwO1xuICAgIGlmIChlbmRpYW4gPT09ICdiZScpIHtcbiAgICAgIGZvciAoaSA9IG51bWJlci5sZW5ndGggLSAxLCBqID0gMDsgaSA+PSAwOyBpIC09IDMpIHtcbiAgICAgICAgdyA9IG51bWJlcltpXSB8IChudW1iZXJbaSAtIDFdIDw8IDgpIHwgKG51bWJlcltpIC0gMl0gPDwgMTYpO1xuICAgICAgICB0aGlzLndvcmRzW2pdIHw9ICh3IDw8IG9mZikgJiAweDNmZmZmZmY7XG4gICAgICAgIHRoaXMud29yZHNbaiArIDFdID0gKHcgPj4+ICgyNiAtIG9mZikpICYgMHgzZmZmZmZmO1xuICAgICAgICBvZmYgKz0gMjQ7XG4gICAgICAgIGlmIChvZmYgPj0gMjYpIHtcbiAgICAgICAgICBvZmYgLT0gMjY7XG4gICAgICAgICAgaisrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlbmRpYW4gPT09ICdsZScpIHtcbiAgICAgIGZvciAoaSA9IDAsIGogPSAwOyBpIDwgbnVtYmVyLmxlbmd0aDsgaSArPSAzKSB7XG4gICAgICAgIHcgPSBudW1iZXJbaV0gfCAobnVtYmVyW2kgKyAxXSA8PCA4KSB8IChudW1iZXJbaSArIDJdIDw8IDE2KTtcbiAgICAgICAgdGhpcy53b3Jkc1tqXSB8PSAodyA8PCBvZmYpICYgMHgzZmZmZmZmO1xuICAgICAgICB0aGlzLndvcmRzW2ogKyAxXSA9ICh3ID4+PiAoMjYgLSBvZmYpKSAmIDB4M2ZmZmZmZjtcbiAgICAgICAgb2ZmICs9IDI0O1xuICAgICAgICBpZiAob2ZmID49IDI2KSB7XG4gICAgICAgICAgb2ZmIC09IDI2O1xuICAgICAgICAgIGorKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIGZ1bmN0aW9uIHBhcnNlSGV4IChzdHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgciA9IDA7XG4gICAgdmFyIGxlbiA9IE1hdGgubWluKHN0ci5sZW5ndGgsIGVuZCk7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHZhciBjID0gc3RyLmNoYXJDb2RlQXQoaSkgLSA0ODtcblxuICAgICAgciA8PD0gNDtcblxuICAgICAgLy8gJ2EnIC0gJ2YnXG4gICAgICBpZiAoYyA+PSA0OSAmJiBjIDw9IDU0KSB7XG4gICAgICAgIHIgfD0gYyAtIDQ5ICsgMHhhO1xuXG4gICAgICAvLyAnQScgLSAnRidcbiAgICAgIH0gZWxzZSBpZiAoYyA+PSAxNyAmJiBjIDw9IDIyKSB7XG4gICAgICAgIHIgfD0gYyAtIDE3ICsgMHhhO1xuXG4gICAgICAvLyAnMCcgLSAnOSdcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHIgfD0gYyAmIDB4ZjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH1cblxuICBCTi5wcm90b3R5cGUuX3BhcnNlSGV4ID0gZnVuY3Rpb24gX3BhcnNlSGV4IChudW1iZXIsIHN0YXJ0KSB7XG4gICAgLy8gQ3JlYXRlIHBvc3NpYmx5IGJpZ2dlciBhcnJheSB0byBlbnN1cmUgdGhhdCBpdCBmaXRzIHRoZSBudW1iZXJcbiAgICB0aGlzLmxlbmd0aCA9IE1hdGguY2VpbCgobnVtYmVyLmxlbmd0aCAtIHN0YXJ0KSAvIDYpO1xuICAgIHRoaXMud29yZHMgPSBuZXcgQXJyYXkodGhpcy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IDA7XG4gICAgfVxuXG4gICAgdmFyIGosIHc7XG4gICAgLy8gU2NhbiAyNC1iaXQgY2h1bmtzIGFuZCBhZGQgdGhlbSB0byB0aGUgbnVtYmVyXG4gICAgdmFyIG9mZiA9IDA7XG4gICAgZm9yIChpID0gbnVtYmVyLmxlbmd0aCAtIDYsIGogPSAwOyBpID49IHN0YXJ0OyBpIC09IDYpIHtcbiAgICAgIHcgPSBwYXJzZUhleChudW1iZXIsIGksIGkgKyA2KTtcbiAgICAgIHRoaXMud29yZHNbal0gfD0gKHcgPDwgb2ZmKSAmIDB4M2ZmZmZmZjtcbiAgICAgIC8vIE5PVEU6IGAweDNmZmZmZmAgaXMgaW50ZW50aW9uYWwgaGVyZSwgMjZiaXRzIG1heCBzaGlmdCArIDI0Yml0IGhleCBsaW1iXG4gICAgICB0aGlzLndvcmRzW2ogKyAxXSB8PSB3ID4+PiAoMjYgLSBvZmYpICYgMHgzZmZmZmY7XG4gICAgICBvZmYgKz0gMjQ7XG4gICAgICBpZiAob2ZmID49IDI2KSB7XG4gICAgICAgIG9mZiAtPSAyNjtcbiAgICAgICAgaisrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaSArIDYgIT09IHN0YXJ0KSB7XG4gICAgICB3ID0gcGFyc2VIZXgobnVtYmVyLCBzdGFydCwgaSArIDYpO1xuICAgICAgdGhpcy53b3Jkc1tqXSB8PSAodyA8PCBvZmYpICYgMHgzZmZmZmZmO1xuICAgICAgdGhpcy53b3Jkc1tqICsgMV0gfD0gdyA+Pj4gKDI2IC0gb2ZmKSAmIDB4M2ZmZmZmO1xuICAgIH1cbiAgICB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgZnVuY3Rpb24gcGFyc2VCYXNlIChzdHIsIHN0YXJ0LCBlbmQsIG11bCkge1xuICAgIHZhciByID0gMDtcbiAgICB2YXIgbGVuID0gTWF0aC5taW4oc3RyLmxlbmd0aCwgZW5kKTtcbiAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBsZW47IGkrKykge1xuICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKSAtIDQ4O1xuXG4gICAgICByICo9IG11bDtcblxuICAgICAgLy8gJ2EnXG4gICAgICBpZiAoYyA+PSA0OSkge1xuICAgICAgICByICs9IGMgLSA0OSArIDB4YTtcblxuICAgICAgLy8gJ0EnXG4gICAgICB9IGVsc2UgaWYgKGMgPj0gMTcpIHtcbiAgICAgICAgciArPSBjIC0gMTcgKyAweGE7XG5cbiAgICAgIC8vICcwJyAtICc5J1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgciArPSBjO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfVxuXG4gIEJOLnByb3RvdHlwZS5fcGFyc2VCYXNlID0gZnVuY3Rpb24gX3BhcnNlQmFzZSAobnVtYmVyLCBiYXNlLCBzdGFydCkge1xuICAgIC8vIEluaXRpYWxpemUgYXMgemVyb1xuICAgIHRoaXMud29yZHMgPSBbIDAgXTtcbiAgICB0aGlzLmxlbmd0aCA9IDE7XG5cbiAgICAvLyBGaW5kIGxlbmd0aCBvZiBsaW1iIGluIGJhc2VcbiAgICBmb3IgKHZhciBsaW1iTGVuID0gMCwgbGltYlBvdyA9IDE7IGxpbWJQb3cgPD0gMHgzZmZmZmZmOyBsaW1iUG93ICo9IGJhc2UpIHtcbiAgICAgIGxpbWJMZW4rKztcbiAgICB9XG4gICAgbGltYkxlbi0tO1xuICAgIGxpbWJQb3cgPSAobGltYlBvdyAvIGJhc2UpIHwgMDtcblxuICAgIHZhciB0b3RhbCA9IG51bWJlci5sZW5ndGggLSBzdGFydDtcbiAgICB2YXIgbW9kID0gdG90YWwgJSBsaW1iTGVuO1xuICAgIHZhciBlbmQgPSBNYXRoLm1pbih0b3RhbCwgdG90YWwgLSBtb2QpICsgc3RhcnQ7XG5cbiAgICB2YXIgd29yZCA9IDA7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpICs9IGxpbWJMZW4pIHtcbiAgICAgIHdvcmQgPSBwYXJzZUJhc2UobnVtYmVyLCBpLCBpICsgbGltYkxlbiwgYmFzZSk7XG5cbiAgICAgIHRoaXMuaW11bG4obGltYlBvdyk7XG4gICAgICBpZiAodGhpcy53b3Jkc1swXSArIHdvcmQgPCAweDQwMDAwMDApIHtcbiAgICAgICAgdGhpcy53b3Jkc1swXSArPSB3b3JkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5faWFkZG4od29yZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZCAhPT0gMCkge1xuICAgICAgdmFyIHBvdyA9IDE7XG4gICAgICB3b3JkID0gcGFyc2VCYXNlKG51bWJlciwgaSwgbnVtYmVyLmxlbmd0aCwgYmFzZSk7XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBtb2Q7IGkrKykge1xuICAgICAgICBwb3cgKj0gYmFzZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pbXVsbihwb3cpO1xuICAgICAgaWYgKHRoaXMud29yZHNbMF0gKyB3b3JkIDwgMHg0MDAwMDAwKSB7XG4gICAgICAgIHRoaXMud29yZHNbMF0gKz0gd29yZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2lhZGRuKHdvcmQpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBCTi5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uIGNvcHkgKGRlc3QpIHtcbiAgICBkZXN0LndvcmRzID0gbmV3IEFycmF5KHRoaXMubGVuZ3RoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGRlc3Qud29yZHNbaV0gPSB0aGlzLndvcmRzW2ldO1xuICAgIH1cbiAgICBkZXN0Lmxlbmd0aCA9IHRoaXMubGVuZ3RoO1xuICAgIGRlc3QubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlO1xuICAgIGRlc3QucmVkID0gdGhpcy5yZWQ7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gY2xvbmUgKCkge1xuICAgIHZhciByID0gbmV3IEJOKG51bGwpO1xuICAgIHRoaXMuY29weShyKTtcbiAgICByZXR1cm4gcjtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX2V4cGFuZCA9IGZ1bmN0aW9uIF9leHBhbmQgKHNpemUpIHtcbiAgICB3aGlsZSAodGhpcy5sZW5ndGggPCBzaXplKSB7XG4gICAgICB0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gUmVtb3ZlIGxlYWRpbmcgYDBgIGZyb20gYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5zdHJpcCA9IGZ1bmN0aW9uIHN0cmlwICgpIHtcbiAgICB3aGlsZSAodGhpcy5sZW5ndGggPiAxICYmIHRoaXMud29yZHNbdGhpcy5sZW5ndGggLSAxXSA9PT0gMCkge1xuICAgICAgdGhpcy5sZW5ndGgtLTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX25vcm1TaWduKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl9ub3JtU2lnbiA9IGZ1bmN0aW9uIF9ub3JtU2lnbiAoKSB7XG4gICAgLy8gLTAgPSAwXG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXMud29yZHNbMF0gPT09IDApIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICAgIHJldHVybiAodGhpcy5yZWQgPyAnPEJOLVI6ICcgOiAnPEJOOiAnKSArIHRoaXMudG9TdHJpbmcoMTYpICsgJz4nO1xuICB9O1xuXG4gIC8qXG5cbiAgdmFyIHplcm9zID0gW107XG4gIHZhciBncm91cFNpemVzID0gW107XG4gIHZhciBncm91cEJhc2VzID0gW107XG5cbiAgdmFyIHMgPSAnJztcbiAgdmFyIGkgPSAtMTtcbiAgd2hpbGUgKCsraSA8IEJOLndvcmRTaXplKSB7XG4gICAgemVyb3NbaV0gPSBzO1xuICAgIHMgKz0gJzAnO1xuICB9XG4gIGdyb3VwU2l6ZXNbMF0gPSAwO1xuICBncm91cFNpemVzWzFdID0gMDtcbiAgZ3JvdXBCYXNlc1swXSA9IDA7XG4gIGdyb3VwQmFzZXNbMV0gPSAwO1xuICB2YXIgYmFzZSA9IDIgLSAxO1xuICB3aGlsZSAoKytiYXNlIDwgMzYgKyAxKSB7XG4gICAgdmFyIGdyb3VwU2l6ZSA9IDA7XG4gICAgdmFyIGdyb3VwQmFzZSA9IDE7XG4gICAgd2hpbGUgKGdyb3VwQmFzZSA8ICgxIDw8IEJOLndvcmRTaXplKSAvIGJhc2UpIHtcbiAgICAgIGdyb3VwQmFzZSAqPSBiYXNlO1xuICAgICAgZ3JvdXBTaXplICs9IDE7XG4gICAgfVxuICAgIGdyb3VwU2l6ZXNbYmFzZV0gPSBncm91cFNpemU7XG4gICAgZ3JvdXBCYXNlc1tiYXNlXSA9IGdyb3VwQmFzZTtcbiAgfVxuXG4gICovXG5cbiAgdmFyIHplcm9zID0gW1xuICAgICcnLFxuICAgICcwJyxcbiAgICAnMDAnLFxuICAgICcwMDAnLFxuICAgICcwMDAwJyxcbiAgICAnMDAwMDAnLFxuICAgICcwMDAwMDAnLFxuICAgICcwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJ1xuICBdO1xuXG4gIHZhciBncm91cFNpemVzID0gW1xuICAgIDAsIDAsXG4gICAgMjUsIDE2LCAxMiwgMTEsIDEwLCA5LCA4LFxuICAgIDgsIDcsIDcsIDcsIDcsIDYsIDYsXG4gICAgNiwgNiwgNiwgNiwgNiwgNSwgNSxcbiAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LFxuICAgIDUsIDUsIDUsIDUsIDUsIDUsIDVcbiAgXTtcblxuICB2YXIgZ3JvdXBCYXNlcyA9IFtcbiAgICAwLCAwLFxuICAgIDMzNTU0NDMyLCA0MzA0NjcyMSwgMTY3NzcyMTYsIDQ4ODI4MTI1LCA2MDQ2NjE3NiwgNDAzNTM2MDcsIDE2Nzc3MjE2LFxuICAgIDQzMDQ2NzIxLCAxMDAwMDAwMCwgMTk0ODcxNzEsIDM1ODMxODA4LCA2Mjc0ODUxNywgNzUyOTUzNiwgMTEzOTA2MjUsXG4gICAgMTY3NzcyMTYsIDI0MTM3NTY5LCAzNDAxMjIyNCwgNDcwNDU4ODEsIDY0MDAwMDAwLCA0MDg0MTAxLCA1MTUzNjMyLFxuICAgIDY0MzYzNDMsIDc5NjI2MjQsIDk3NjU2MjUsIDExODgxMzc2LCAxNDM0ODkwNywgMTcyMTAzNjgsIDIwNTExMTQ5LFxuICAgIDI0MzAwMDAwLCAyODYyOTE1MSwgMzM1NTQ0MzIsIDM5MTM1MzkzLCA0NTQzNTQyNCwgNTI1MjE4NzUsIDYwNDY2MTc2XG4gIF07XG5cbiAgQk4ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcgKGJhc2UsIHBhZGRpbmcpIHtcbiAgICBiYXNlID0gYmFzZSB8fCAxMDtcbiAgICBwYWRkaW5nID0gcGFkZGluZyB8IDAgfHwgMTtcblxuICAgIHZhciBvdXQ7XG4gICAgaWYgKGJhc2UgPT09IDE2IHx8IGJhc2UgPT09ICdoZXgnKSB7XG4gICAgICBvdXQgPSAnJztcbiAgICAgIHZhciBvZmYgPSAwO1xuICAgICAgdmFyIGNhcnJ5ID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgdyA9IHRoaXMud29yZHNbaV07XG4gICAgICAgIHZhciB3b3JkID0gKCgodyA8PCBvZmYpIHwgY2FycnkpICYgMHhmZmZmZmYpLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgY2FycnkgPSAodyA+Pj4gKDI0IC0gb2ZmKSkgJiAweGZmZmZmZjtcbiAgICAgICAgaWYgKGNhcnJ5ICE9PSAwIHx8IGkgIT09IHRoaXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIG91dCA9IHplcm9zWzYgLSB3b3JkLmxlbmd0aF0gKyB3b3JkICsgb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCA9IHdvcmQgKyBvdXQ7XG4gICAgICAgIH1cbiAgICAgICAgb2ZmICs9IDI7XG4gICAgICAgIGlmIChvZmYgPj0gMjYpIHtcbiAgICAgICAgICBvZmYgLT0gMjY7XG4gICAgICAgICAgaS0tO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2FycnkgIT09IDApIHtcbiAgICAgICAgb3V0ID0gY2FycnkudG9TdHJpbmcoMTYpICsgb3V0O1xuICAgICAgfVxuICAgICAgd2hpbGUgKG91dC5sZW5ndGggJSBwYWRkaW5nICE9PSAwKSB7XG4gICAgICAgIG91dCA9ICcwJyArIG91dDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICAgIG91dCA9ICctJyArIG91dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuXG4gICAgaWYgKGJhc2UgPT09IChiYXNlIHwgMCkgJiYgYmFzZSA+PSAyICYmIGJhc2UgPD0gMzYpIHtcbiAgICAgIC8vIHZhciBncm91cFNpemUgPSBNYXRoLmZsb29yKEJOLndvcmRTaXplICogTWF0aC5MTjIgLyBNYXRoLmxvZyhiYXNlKSk7XG4gICAgICB2YXIgZ3JvdXBTaXplID0gZ3JvdXBTaXplc1tiYXNlXTtcbiAgICAgIC8vIHZhciBncm91cEJhc2UgPSBNYXRoLnBvdyhiYXNlLCBncm91cFNpemUpO1xuICAgICAgdmFyIGdyb3VwQmFzZSA9IGdyb3VwQmFzZXNbYmFzZV07XG4gICAgICBvdXQgPSAnJztcbiAgICAgIHZhciBjID0gdGhpcy5jbG9uZSgpO1xuICAgICAgYy5uZWdhdGl2ZSA9IDA7XG4gICAgICB3aGlsZSAoIWMuaXNaZXJvKCkpIHtcbiAgICAgICAgdmFyIHIgPSBjLm1vZG4oZ3JvdXBCYXNlKS50b1N0cmluZyhiYXNlKTtcbiAgICAgICAgYyA9IGMuaWRpdm4oZ3JvdXBCYXNlKTtcblxuICAgICAgICBpZiAoIWMuaXNaZXJvKCkpIHtcbiAgICAgICAgICBvdXQgPSB6ZXJvc1tncm91cFNpemUgLSByLmxlbmd0aF0gKyByICsgb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG91dCA9IHIgKyBvdXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzWmVybygpKSB7XG4gICAgICAgIG91dCA9ICcwJyArIG91dDtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChvdXQubGVuZ3RoICUgcGFkZGluZyAhPT0gMCkge1xuICAgICAgICBvdXQgPSAnMCcgKyBvdXQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgICBvdXQgPSAnLScgKyBvdXQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3V0O1xuICAgIH1cblxuICAgIGFzc2VydChmYWxzZSwgJ0Jhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYnKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudG9OdW1iZXIgPSBmdW5jdGlvbiB0b051bWJlciAoKSB7XG4gICAgdmFyIHJldCA9IHRoaXMud29yZHNbMF07XG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAyKSB7XG4gICAgICByZXQgKz0gdGhpcy53b3Jkc1sxXSAqIDB4NDAwMDAwMDtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGVuZ3RoID09PSAzICYmIHRoaXMud29yZHNbMl0gPT09IDB4MDEpIHtcbiAgICAgIC8vIE5PVEU6IGF0IHRoaXMgc3RhZ2UgaXQgaXMga25vd24gdGhhdCB0aGUgdG9wIGJpdCBpcyBzZXRcbiAgICAgIHJldCArPSAweDEwMDAwMDAwMDAwMDAwICsgKHRoaXMud29yZHNbMV0gKiAweDQwMDAwMDApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGggPiAyKSB7XG4gICAgICBhc3NlcnQoZmFsc2UsICdOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMnKTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLm5lZ2F0aXZlICE9PSAwKSA/IC1yZXQgOiByZXQ7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTiAoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS50b0J1ZmZlciA9IGZ1bmN0aW9uIHRvQnVmZmVyIChlbmRpYW4sIGxlbmd0aCkge1xuICAgIGFzc2VydCh0eXBlb2YgQnVmZmVyICE9PSAndW5kZWZpbmVkJyk7XG4gICAgcmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQnVmZmVyLCBlbmRpYW4sIGxlbmd0aCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiB0b0FycmF5IChlbmRpYW4sIGxlbmd0aCkge1xuICAgIHJldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LCBlbmRpYW4sIGxlbmd0aCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnRvQXJyYXlMaWtlID0gZnVuY3Rpb24gdG9BcnJheUxpa2UgKEFycmF5VHlwZSwgZW5kaWFuLCBsZW5ndGgpIHtcbiAgICB2YXIgYnl0ZUxlbmd0aCA9IHRoaXMuYnl0ZUxlbmd0aCgpO1xuICAgIHZhciByZXFMZW5ndGggPSBsZW5ndGggfHwgTWF0aC5tYXgoMSwgYnl0ZUxlbmd0aCk7XG4gICAgYXNzZXJ0KGJ5dGVMZW5ndGggPD0gcmVxTGVuZ3RoLCAnYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCcpO1xuICAgIGFzc2VydChyZXFMZW5ndGggPiAwLCAnUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwJyk7XG5cbiAgICB0aGlzLnN0cmlwKCk7XG4gICAgdmFyIGxpdHRsZUVuZGlhbiA9IGVuZGlhbiA9PT0gJ2xlJztcbiAgICB2YXIgcmVzID0gbmV3IEFycmF5VHlwZShyZXFMZW5ndGgpO1xuXG4gICAgdmFyIGIsIGk7XG4gICAgdmFyIHEgPSB0aGlzLmNsb25lKCk7XG4gICAgaWYgKCFsaXR0bGVFbmRpYW4pIHtcbiAgICAgIC8vIEFzc3VtZSBiaWctZW5kaWFuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgcmVxTGVuZ3RoIC0gYnl0ZUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc1tpXSA9IDA7XG4gICAgICB9XG5cbiAgICAgIGZvciAoaSA9IDA7ICFxLmlzWmVybygpOyBpKyspIHtcbiAgICAgICAgYiA9IHEuYW5kbG4oMHhmZik7XG4gICAgICAgIHEuaXVzaHJuKDgpO1xuXG4gICAgICAgIHJlc1tyZXFMZW5ndGggLSBpIC0gMV0gPSBiO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGkgPSAwOyAhcS5pc1plcm8oKTsgaSsrKSB7XG4gICAgICAgIGIgPSBxLmFuZGxuKDB4ZmYpO1xuICAgICAgICBxLml1c2hybig4KTtcblxuICAgICAgICByZXNbaV0gPSBiO1xuICAgICAgfVxuXG4gICAgICBmb3IgKDsgaSA8IHJlcUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc1tpXSA9IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICBpZiAoTWF0aC5jbHozMikge1xuICAgIEJOLnByb3RvdHlwZS5fY291bnRCaXRzID0gZnVuY3Rpb24gX2NvdW50Qml0cyAodykge1xuICAgICAgcmV0dXJuIDMyIC0gTWF0aC5jbHozMih3KTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIEJOLnByb3RvdHlwZS5fY291bnRCaXRzID0gZnVuY3Rpb24gX2NvdW50Qml0cyAodykge1xuICAgICAgdmFyIHQgPSB3O1xuICAgICAgdmFyIHIgPSAwO1xuICAgICAgaWYgKHQgPj0gMHgxMDAwKSB7XG4gICAgICAgIHIgKz0gMTM7XG4gICAgICAgIHQgPj4+PSAxMztcbiAgICAgIH1cbiAgICAgIGlmICh0ID49IDB4NDApIHtcbiAgICAgICAgciArPSA3O1xuICAgICAgICB0ID4+Pj0gNztcbiAgICAgIH1cbiAgICAgIGlmICh0ID49IDB4OCkge1xuICAgICAgICByICs9IDQ7XG4gICAgICAgIHQgPj4+PSA0O1xuICAgICAgfVxuICAgICAgaWYgKHQgPj0gMHgwMikge1xuICAgICAgICByICs9IDI7XG4gICAgICAgIHQgPj4+PSAyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHIgKyB0O1xuICAgIH07XG4gIH1cblxuICBCTi5wcm90b3R5cGUuX3plcm9CaXRzID0gZnVuY3Rpb24gX3plcm9CaXRzICh3KSB7XG4gICAgLy8gU2hvcnQtY3V0XG4gICAgaWYgKHcgPT09IDApIHJldHVybiAyNjtcblxuICAgIHZhciB0ID0gdztcbiAgICB2YXIgciA9IDA7XG4gICAgaWYgKCh0ICYgMHgxZmZmKSA9PT0gMCkge1xuICAgICAgciArPSAxMztcbiAgICAgIHQgPj4+PSAxMztcbiAgICB9XG4gICAgaWYgKCh0ICYgMHg3ZikgPT09IDApIHtcbiAgICAgIHIgKz0gNztcbiAgICAgIHQgPj4+PSA3O1xuICAgIH1cbiAgICBpZiAoKHQgJiAweGYpID09PSAwKSB7XG4gICAgICByICs9IDQ7XG4gICAgICB0ID4+Pj0gNDtcbiAgICB9XG4gICAgaWYgKCh0ICYgMHgzKSA9PT0gMCkge1xuICAgICAgciArPSAyO1xuICAgICAgdCA+Pj49IDI7XG4gICAgfVxuICAgIGlmICgodCAmIDB4MSkgPT09IDApIHtcbiAgICAgIHIrKztcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH07XG5cbiAgLy8gUmV0dXJuIG51bWJlciBvZiB1c2VkIGJpdHMgaW4gYSBCTlxuICBCTi5wcm90b3R5cGUuYml0TGVuZ3RoID0gZnVuY3Rpb24gYml0TGVuZ3RoICgpIHtcbiAgICB2YXIgdyA9IHRoaXMud29yZHNbdGhpcy5sZW5ndGggLSAxXTtcbiAgICB2YXIgaGkgPSB0aGlzLl9jb3VudEJpdHModyk7XG4gICAgcmV0dXJuICh0aGlzLmxlbmd0aCAtIDEpICogMjYgKyBoaTtcbiAgfTtcblxuICBmdW5jdGlvbiB0b0JpdEFycmF5IChudW0pIHtcbiAgICB2YXIgdyA9IG5ldyBBcnJheShudW0uYml0TGVuZ3RoKCkpO1xuXG4gICAgZm9yICh2YXIgYml0ID0gMDsgYml0IDwgdy5sZW5ndGg7IGJpdCsrKSB7XG4gICAgICB2YXIgb2ZmID0gKGJpdCAvIDI2KSB8IDA7XG4gICAgICB2YXIgd2JpdCA9IGJpdCAlIDI2O1xuXG4gICAgICB3W2JpdF0gPSAobnVtLndvcmRzW29mZl0gJiAoMSA8PCB3Yml0KSkgPj4+IHdiaXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHc7XG4gIH1cblxuICAvLyBOdW1iZXIgb2YgdHJhaWxpbmcgemVybyBiaXRzXG4gIEJOLnByb3RvdHlwZS56ZXJvQml0cyA9IGZ1bmN0aW9uIHplcm9CaXRzICgpIHtcbiAgICBpZiAodGhpcy5pc1plcm8oKSkgcmV0dXJuIDA7XG5cbiAgICB2YXIgciA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgYiA9IHRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbaV0pO1xuICAgICAgciArPSBiO1xuICAgICAgaWYgKGIgIT09IDI2KSBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmJ5dGVMZW5ndGggPSBmdW5jdGlvbiBieXRlTGVuZ3RoICgpIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkgLyA4KTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudG9Ud29zID0gZnVuY3Rpb24gdG9Ud29zICh3aWR0aCkge1xuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5hYnMoKS5pbm90bih3aWR0aCkuaWFkZG4oMSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNsb25lKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmZyb21Ud29zID0gZnVuY3Rpb24gZnJvbVR3b3MgKHdpZHRoKSB7XG4gICAgaWYgKHRoaXMudGVzdG4od2lkdGggLSAxKSkge1xuICAgICAgcmV0dXJuIHRoaXMubm90bih3aWR0aCkuaWFkZG4oMSkuaW5lZygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pc05lZyA9IGZ1bmN0aW9uIGlzTmVnICgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGl2ZSAhPT0gMDtcbiAgfTtcblxuICAvLyBSZXR1cm4gbmVnYXRpdmUgY2xvbmUgb2YgYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5uZWcgPSBmdW5jdGlvbiBuZWcgKCkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaW5lZygpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pbmVnID0gZnVuY3Rpb24gaW5lZyAoKSB7XG4gICAgaWYgKCF0aGlzLmlzWmVybygpKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlIF49IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gT3IgYG51bWAgd2l0aCBgdGhpc2AgaW4tcGxhY2VcbiAgQk4ucHJvdG90eXBlLml1b3IgPSBmdW5jdGlvbiBpdW9yIChudW0pIHtcbiAgICB3aGlsZSAodGhpcy5sZW5ndGggPCBudW0ubGVuZ3RoKSB7XG4gICAgICB0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdID0gMDtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bS5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IHRoaXMud29yZHNbaV0gfCBudW0ud29yZHNbaV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaW9yID0gZnVuY3Rpb24gaW9yIChudW0pIHtcbiAgICBhc3NlcnQoKHRoaXMubmVnYXRpdmUgfCBudW0ubmVnYXRpdmUpID09PSAwKTtcbiAgICByZXR1cm4gdGhpcy5pdW9yKG51bSk7XG4gIH07XG5cbiAgLy8gT3IgYG51bWAgd2l0aCBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLm9yID0gZnVuY3Rpb24gb3IgKG51bSkge1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHJldHVybiB0aGlzLmNsb25lKCkuaW9yKG51bSk7XG4gICAgcmV0dXJuIG51bS5jbG9uZSgpLmlvcih0aGlzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudW9yID0gZnVuY3Rpb24gdW9yIChudW0pIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSByZXR1cm4gdGhpcy5jbG9uZSgpLml1b3IobnVtKTtcbiAgICByZXR1cm4gbnVtLmNsb25lKCkuaXVvcih0aGlzKTtcbiAgfTtcblxuICAvLyBBbmQgYG51bWAgd2l0aCBgdGhpc2AgaW4tcGxhY2VcbiAgQk4ucHJvdG90eXBlLml1YW5kID0gZnVuY3Rpb24gaXVhbmQgKG51bSkge1xuICAgIC8vIGIgPSBtaW4tbGVuZ3RoKG51bSwgdGhpcylcbiAgICB2YXIgYjtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSB7XG4gICAgICBiID0gbnVtO1xuICAgIH0gZWxzZSB7XG4gICAgICBiID0gdGhpcztcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGIubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSB0aGlzLndvcmRzW2ldICYgbnVtLndvcmRzW2ldO1xuICAgIH1cblxuICAgIHRoaXMubGVuZ3RoID0gYi5sZW5ndGg7XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pYW5kID0gZnVuY3Rpb24gaWFuZCAobnVtKSB7XG4gICAgYXNzZXJ0KCh0aGlzLm5lZ2F0aXZlIHwgbnVtLm5lZ2F0aXZlKSA9PT0gMCk7XG4gICAgcmV0dXJuIHRoaXMuaXVhbmQobnVtKTtcbiAgfTtcblxuICAvLyBBbmQgYG51bWAgd2l0aCBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLmFuZCA9IGZ1bmN0aW9uIGFuZCAobnVtKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkgcmV0dXJuIHRoaXMuY2xvbmUoKS5pYW5kKG51bSk7XG4gICAgcmV0dXJuIG51bS5jbG9uZSgpLmlhbmQodGhpcyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnVhbmQgPSBmdW5jdGlvbiB1YW5kIChudW0pIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSByZXR1cm4gdGhpcy5jbG9uZSgpLml1YW5kKG51bSk7XG4gICAgcmV0dXJuIG51bS5jbG9uZSgpLml1YW5kKHRoaXMpO1xuICB9O1xuXG4gIC8vIFhvciBgbnVtYCB3aXRoIGB0aGlzYCBpbi1wbGFjZVxuICBCTi5wcm90b3R5cGUuaXV4b3IgPSBmdW5jdGlvbiBpdXhvciAobnVtKSB7XG4gICAgLy8gYS5sZW5ndGggPiBiLmxlbmd0aFxuICAgIHZhciBhO1xuICAgIHZhciBiO1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHtcbiAgICAgIGEgPSB0aGlzO1xuICAgICAgYiA9IG51bTtcbiAgICB9IGVsc2Uge1xuICAgICAgYSA9IG51bTtcbiAgICAgIGIgPSB0aGlzO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYi5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IGEud29yZHNbaV0gXiBiLndvcmRzW2ldO1xuICAgIH1cblxuICAgIGlmICh0aGlzICE9PSBhKSB7XG4gICAgICBmb3IgKDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpXSA9IGEud29yZHNbaV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sZW5ndGggPSBhLmxlbmd0aDtcblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLml4b3IgPSBmdW5jdGlvbiBpeG9yIChudW0pIHtcbiAgICBhc3NlcnQoKHRoaXMubmVnYXRpdmUgfCBudW0ubmVnYXRpdmUpID09PSAwKTtcbiAgICByZXR1cm4gdGhpcy5pdXhvcihudW0pO1xuICB9O1xuXG4gIC8vIFhvciBgbnVtYCB3aXRoIGB0aGlzYFxuICBCTi5wcm90b3R5cGUueG9yID0gZnVuY3Rpb24geG9yIChudW0pIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSByZXR1cm4gdGhpcy5jbG9uZSgpLml4b3IobnVtKTtcbiAgICByZXR1cm4gbnVtLmNsb25lKCkuaXhvcih0aGlzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudXhvciA9IGZ1bmN0aW9uIHV4b3IgKG51bSkge1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHJldHVybiB0aGlzLmNsb25lKCkuaXV4b3IobnVtKTtcbiAgICByZXR1cm4gbnVtLmNsb25lKCkuaXV4b3IodGhpcyk7XG4gIH07XG5cbiAgLy8gTm90IGBgdGhpc2BgIHdpdGggYGB3aWR0aGBgIGJpdHdpZHRoXG4gIEJOLnByb3RvdHlwZS5pbm90biA9IGZ1bmN0aW9uIGlub3RuICh3aWR0aCkge1xuICAgIGFzc2VydCh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInICYmIHdpZHRoID49IDApO1xuXG4gICAgdmFyIGJ5dGVzTmVlZGVkID0gTWF0aC5jZWlsKHdpZHRoIC8gMjYpIHwgMDtcbiAgICB2YXIgYml0c0xlZnQgPSB3aWR0aCAlIDI2O1xuXG4gICAgLy8gRXh0ZW5kIHRoZSBidWZmZXIgd2l0aCBsZWFkaW5nIHplcm9lc1xuICAgIHRoaXMuX2V4cGFuZChieXRlc05lZWRlZCk7XG5cbiAgICBpZiAoYml0c0xlZnQgPiAwKSB7XG4gICAgICBieXRlc05lZWRlZC0tO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBjb21wbGV0ZSB3b3Jkc1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXNOZWVkZWQ7IGkrKykge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IH50aGlzLndvcmRzW2ldICYgMHgzZmZmZmZmO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0aGUgcmVzaWR1ZVxuICAgIGlmIChiaXRzTGVmdCA+IDApIHtcbiAgICAgIHRoaXMud29yZHNbaV0gPSB+dGhpcy53b3Jkc1tpXSAmICgweDNmZmZmZmYgPj4gKDI2IC0gYml0c0xlZnQpKTtcbiAgICB9XG5cbiAgICAvLyBBbmQgcmVtb3ZlIGxlYWRpbmcgemVyb2VzXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUubm90biA9IGZ1bmN0aW9uIG5vdG4gKHdpZHRoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih3aWR0aCk7XG4gIH07XG5cbiAgLy8gU2V0IGBiaXRgIG9mIGB0aGlzYFxuICBCTi5wcm90b3R5cGUuc2V0biA9IGZ1bmN0aW9uIHNldG4gKGJpdCwgdmFsKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBiaXQgPT09ICdudW1iZXInICYmIGJpdCA+PSAwKTtcblxuICAgIHZhciBvZmYgPSAoYml0IC8gMjYpIHwgMDtcbiAgICB2YXIgd2JpdCA9IGJpdCAlIDI2O1xuXG4gICAgdGhpcy5fZXhwYW5kKG9mZiArIDEpO1xuXG4gICAgaWYgKHZhbCkge1xuICAgICAgdGhpcy53b3Jkc1tvZmZdID0gdGhpcy53b3Jkc1tvZmZdIHwgKDEgPDwgd2JpdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud29yZHNbb2ZmXSA9IHRoaXMud29yZHNbb2ZmXSAmIH4oMSA8PCB3Yml0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIC8vIEFkZCBgbnVtYCB0byBgdGhpc2AgaW4tcGxhY2VcbiAgQk4ucHJvdG90eXBlLmlhZGQgPSBmdW5jdGlvbiBpYWRkIChudW0pIHtcbiAgICB2YXIgcjtcblxuICAgIC8vIG5lZ2F0aXZlICsgcG9zaXRpdmVcbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCAmJiBudW0ubmVnYXRpdmUgPT09IDApIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgICAgciA9IHRoaXMuaXN1YihudW0pO1xuICAgICAgdGhpcy5uZWdhdGl2ZSBePSAxO1xuICAgICAgcmV0dXJuIHRoaXMuX25vcm1TaWduKCk7XG5cbiAgICAvLyBwb3NpdGl2ZSArIG5lZ2F0aXZlXG4gICAgfSBlbHNlIGlmICh0aGlzLm5lZ2F0aXZlID09PSAwICYmIG51bS5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgbnVtLm5lZ2F0aXZlID0gMDtcbiAgICAgIHIgPSB0aGlzLmlzdWIobnVtKTtcbiAgICAgIG51bS5uZWdhdGl2ZSA9IDE7XG4gICAgICByZXR1cm4gci5fbm9ybVNpZ24oKTtcbiAgICB9XG5cbiAgICAvLyBhLmxlbmd0aCA+IGIubGVuZ3RoXG4gICAgdmFyIGEsIGI7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkge1xuICAgICAgYSA9IHRoaXM7XG4gICAgICBiID0gbnVtO1xuICAgIH0gZWxzZSB7XG4gICAgICBhID0gbnVtO1xuICAgICAgYiA9IHRoaXM7XG4gICAgfVxuXG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGIubGVuZ3RoOyBpKyspIHtcbiAgICAgIHIgPSAoYS53b3Jkc1tpXSB8IDApICsgKGIud29yZHNbaV0gfCAwKSArIGNhcnJ5O1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IHIgJiAweDNmZmZmZmY7XG4gICAgICBjYXJyeSA9IHIgPj4+IDI2O1xuICAgIH1cbiAgICBmb3IgKDsgY2FycnkgIT09IDAgJiYgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIHIgPSAoYS53b3Jkc1tpXSB8IDApICsgY2Fycnk7XG4gICAgICB0aGlzLndvcmRzW2ldID0gciAmIDB4M2ZmZmZmZjtcbiAgICAgIGNhcnJ5ID0gciA+Pj4gMjY7XG4gICAgfVxuXG4gICAgdGhpcy5sZW5ndGggPSBhLmxlbmd0aDtcbiAgICBpZiAoY2FycnkgIT09IDApIHtcbiAgICAgIHRoaXMud29yZHNbdGhpcy5sZW5ndGhdID0gY2Fycnk7XG4gICAgICB0aGlzLmxlbmd0aCsrO1xuICAgIC8vIENvcHkgdGhlIHJlc3Qgb2YgdGhlIHdvcmRzXG4gICAgfSBlbHNlIGlmIChhICE9PSB0aGlzKSB7XG4gICAgICBmb3IgKDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpXSA9IGEud29yZHNbaV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLy8gQWRkIGBudW1gIHRvIGB0aGlzYFxuICBCTi5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gYWRkIChudW0pIHtcbiAgICB2YXIgcmVzO1xuICAgIGlmIChudW0ubmVnYXRpdmUgIT09IDAgJiYgdGhpcy5uZWdhdGl2ZSA9PT0gMCkge1xuICAgICAgbnVtLm5lZ2F0aXZlID0gMDtcbiAgICAgIHJlcyA9IHRoaXMuc3ViKG51bSk7XG4gICAgICBudW0ubmVnYXRpdmUgXj0gMTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBlbHNlIGlmIChudW0ubmVnYXRpdmUgPT09IDAgJiYgdGhpcy5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgICByZXMgPSBudW0uc3ViKHRoaXMpO1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHJldHVybiB0aGlzLmNsb25lKCkuaWFkZChudW0pO1xuXG4gICAgcmV0dXJuIG51bS5jbG9uZSgpLmlhZGQodGhpcyk7XG4gIH07XG5cbiAgLy8gU3VidHJhY3QgYG51bWAgZnJvbSBgdGhpc2AgaW4tcGxhY2VcbiAgQk4ucHJvdG90eXBlLmlzdWIgPSBmdW5jdGlvbiBpc3ViIChudW0pIHtcbiAgICAvLyB0aGlzIC0gKC1udW0pID0gdGhpcyArIG51bVxuICAgIGlmIChudW0ubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIG51bS5uZWdhdGl2ZSA9IDA7XG4gICAgICB2YXIgciA9IHRoaXMuaWFkZChudW0pO1xuICAgICAgbnVtLm5lZ2F0aXZlID0gMTtcbiAgICAgIHJldHVybiByLl9ub3JtU2lnbigpO1xuXG4gICAgLy8gLXRoaXMgLSBudW0gPSAtKHRoaXMgKyBudW0pXG4gICAgfSBlbHNlIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICAgIHRoaXMuaWFkZChudW0pO1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG4gICAgICByZXR1cm4gdGhpcy5fbm9ybVNpZ24oKTtcbiAgICB9XG5cbiAgICAvLyBBdCB0aGlzIHBvaW50IGJvdGggbnVtYmVycyBhcmUgcG9zaXRpdmVcbiAgICB2YXIgY21wID0gdGhpcy5jbXAobnVtKTtcblxuICAgIC8vIE9wdGltaXphdGlvbiAtIHplcm9pZnlcbiAgICBpZiAoY21wID09PSAwKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICAgIHRoaXMubGVuZ3RoID0gMTtcbiAgICAgIHRoaXMud29yZHNbMF0gPSAwO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gYSA+IGJcbiAgICB2YXIgYSwgYjtcbiAgICBpZiAoY21wID4gMCkge1xuICAgICAgYSA9IHRoaXM7XG4gICAgICBiID0gbnVtO1xuICAgIH0gZWxzZSB7XG4gICAgICBhID0gbnVtO1xuICAgICAgYiA9IHRoaXM7XG4gICAgfVxuXG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGIubGVuZ3RoOyBpKyspIHtcbiAgICAgIHIgPSAoYS53b3Jkc1tpXSB8IDApIC0gKGIud29yZHNbaV0gfCAwKSArIGNhcnJ5O1xuICAgICAgY2FycnkgPSByID4+IDI2O1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IHIgJiAweDNmZmZmZmY7XG4gICAgfVxuICAgIGZvciAoOyBjYXJyeSAhPT0gMCAmJiBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgciA9IChhLndvcmRzW2ldIHwgMCkgKyBjYXJyeTtcbiAgICAgIGNhcnJ5ID0gciA+PiAyNjtcbiAgICAgIHRoaXMud29yZHNbaV0gPSByICYgMHgzZmZmZmZmO1xuICAgIH1cblxuICAgIC8vIENvcHkgcmVzdCBvZiB0aGUgd29yZHNcbiAgICBpZiAoY2FycnkgPT09IDAgJiYgaSA8IGEubGVuZ3RoICYmIGEgIT09IHRoaXMpIHtcbiAgICAgIGZvciAoOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLndvcmRzW2ldID0gYS53b3Jkc1tpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxlbmd0aCA9IE1hdGgubWF4KHRoaXMubGVuZ3RoLCBpKTtcblxuICAgIGlmIChhICE9PSB0aGlzKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIC8vIFN1YnRyYWN0IGBudW1gIGZyb20gYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5zdWIgPSBmdW5jdGlvbiBzdWIgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaXN1YihudW0pO1xuICB9O1xuXG4gIGZ1bmN0aW9uIHNtYWxsTXVsVG8gKHNlbGYsIG51bSwgb3V0KSB7XG4gICAgb3V0Lm5lZ2F0aXZlID0gbnVtLm5lZ2F0aXZlIF4gc2VsZi5uZWdhdGl2ZTtcbiAgICB2YXIgbGVuID0gKHNlbGYubGVuZ3RoICsgbnVtLmxlbmd0aCkgfCAwO1xuICAgIG91dC5sZW5ndGggPSBsZW47XG4gICAgbGVuID0gKGxlbiAtIDEpIHwgMDtcblxuICAgIC8vIFBlZWwgb25lIGl0ZXJhdGlvbiAoY29tcGlsZXIgY2FuJ3QgZG8gaXQsIGJlY2F1c2Ugb2YgY29kZSBjb21wbGV4aXR5KVxuICAgIHZhciBhID0gc2VsZi53b3Jkc1swXSB8IDA7XG4gICAgdmFyIGIgPSBudW0ud29yZHNbMF0gfCAwO1xuICAgIHZhciByID0gYSAqIGI7XG5cbiAgICB2YXIgbG8gPSByICYgMHgzZmZmZmZmO1xuICAgIHZhciBjYXJyeSA9IChyIC8gMHg0MDAwMDAwKSB8IDA7XG4gICAgb3V0LndvcmRzWzBdID0gbG87XG5cbiAgICBmb3IgKHZhciBrID0gMTsgayA8IGxlbjsgaysrKSB7XG4gICAgICAvLyBTdW0gYWxsIHdvcmRzIHdpdGggdGhlIHNhbWUgYGkgKyBqID0ga2AgYW5kIGFjY3VtdWxhdGUgYG5jYXJyeWAsXG4gICAgICAvLyBub3RlIHRoYXQgbmNhcnJ5IGNvdWxkIGJlID49IDB4M2ZmZmZmZlxuICAgICAgdmFyIG5jYXJyeSA9IGNhcnJ5ID4+PiAyNjtcbiAgICAgIHZhciByd29yZCA9IGNhcnJ5ICYgMHgzZmZmZmZmO1xuICAgICAgdmFyIG1heEogPSBNYXRoLm1pbihrLCBudW0ubGVuZ3RoIC0gMSk7XG4gICAgICBmb3IgKHZhciBqID0gTWF0aC5tYXgoMCwgayAtIHNlbGYubGVuZ3RoICsgMSk7IGogPD0gbWF4SjsgaisrKSB7XG4gICAgICAgIHZhciBpID0gKGsgLSBqKSB8IDA7XG4gICAgICAgIGEgPSBzZWxmLndvcmRzW2ldIHwgMDtcbiAgICAgICAgYiA9IG51bS53b3Jkc1tqXSB8IDA7XG4gICAgICAgIHIgPSBhICogYiArIHJ3b3JkO1xuICAgICAgICBuY2FycnkgKz0gKHIgLyAweDQwMDAwMDApIHwgMDtcbiAgICAgICAgcndvcmQgPSByICYgMHgzZmZmZmZmO1xuICAgICAgfVxuICAgICAgb3V0LndvcmRzW2tdID0gcndvcmQgfCAwO1xuICAgICAgY2FycnkgPSBuY2FycnkgfCAwO1xuICAgIH1cbiAgICBpZiAoY2FycnkgIT09IDApIHtcbiAgICAgIG91dC53b3Jkc1trXSA9IGNhcnJ5IHwgMDtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0Lmxlbmd0aC0tO1xuICAgIH1cblxuICAgIHJldHVybiBvdXQuc3RyaXAoKTtcbiAgfVxuXG4gIC8vIFRPRE8oaW5kdXRueSk6IGl0IG1heSBiZSByZWFzb25hYmxlIHRvIG9taXQgaXQgZm9yIHVzZXJzIHdobyBkb24ndCBuZWVkXG4gIC8vIHRvIHdvcmsgd2l0aCAyNTYtYml0IG51bWJlcnMsIG90aGVyd2lzZSBpdCBnaXZlcyAyMCUgaW1wcm92ZW1lbnQgZm9yIDI1Ni1iaXRcbiAgLy8gbXVsdGlwbGljYXRpb24gKGxpa2UgZWxsaXB0aWMgc2VjcDI1NmsxKS5cbiAgdmFyIGNvbWIxME11bFRvID0gZnVuY3Rpb24gY29tYjEwTXVsVG8gKHNlbGYsIG51bSwgb3V0KSB7XG4gICAgdmFyIGEgPSBzZWxmLndvcmRzO1xuICAgIHZhciBiID0gbnVtLndvcmRzO1xuICAgIHZhciBvID0gb3V0LndvcmRzO1xuICAgIHZhciBjID0gMDtcbiAgICB2YXIgbG87XG4gICAgdmFyIG1pZDtcbiAgICB2YXIgaGk7XG4gICAgdmFyIGEwID0gYVswXSB8IDA7XG4gICAgdmFyIGFsMCA9IGEwICYgMHgxZmZmO1xuICAgIHZhciBhaDAgPSBhMCA+Pj4gMTM7XG4gICAgdmFyIGExID0gYVsxXSB8IDA7XG4gICAgdmFyIGFsMSA9IGExICYgMHgxZmZmO1xuICAgIHZhciBhaDEgPSBhMSA+Pj4gMTM7XG4gICAgdmFyIGEyID0gYVsyXSB8IDA7XG4gICAgdmFyIGFsMiA9IGEyICYgMHgxZmZmO1xuICAgIHZhciBhaDIgPSBhMiA+Pj4gMTM7XG4gICAgdmFyIGEzID0gYVszXSB8IDA7XG4gICAgdmFyIGFsMyA9IGEzICYgMHgxZmZmO1xuICAgIHZhciBhaDMgPSBhMyA+Pj4gMTM7XG4gICAgdmFyIGE0ID0gYVs0XSB8IDA7XG4gICAgdmFyIGFsNCA9IGE0ICYgMHgxZmZmO1xuICAgIHZhciBhaDQgPSBhNCA+Pj4gMTM7XG4gICAgdmFyIGE1ID0gYVs1XSB8IDA7XG4gICAgdmFyIGFsNSA9IGE1ICYgMHgxZmZmO1xuICAgIHZhciBhaDUgPSBhNSA+Pj4gMTM7XG4gICAgdmFyIGE2ID0gYVs2XSB8IDA7XG4gICAgdmFyIGFsNiA9IGE2ICYgMHgxZmZmO1xuICAgIHZhciBhaDYgPSBhNiA+Pj4gMTM7XG4gICAgdmFyIGE3ID0gYVs3XSB8IDA7XG4gICAgdmFyIGFsNyA9IGE3ICYgMHgxZmZmO1xuICAgIHZhciBhaDcgPSBhNyA+Pj4gMTM7XG4gICAgdmFyIGE4ID0gYVs4XSB8IDA7XG4gICAgdmFyIGFsOCA9IGE4ICYgMHgxZmZmO1xuICAgIHZhciBhaDggPSBhOCA+Pj4gMTM7XG4gICAgdmFyIGE5ID0gYVs5XSB8IDA7XG4gICAgdmFyIGFsOSA9IGE5ICYgMHgxZmZmO1xuICAgIHZhciBhaDkgPSBhOSA+Pj4gMTM7XG4gICAgdmFyIGIwID0gYlswXSB8IDA7XG4gICAgdmFyIGJsMCA9IGIwICYgMHgxZmZmO1xuICAgIHZhciBiaDAgPSBiMCA+Pj4gMTM7XG4gICAgdmFyIGIxID0gYlsxXSB8IDA7XG4gICAgdmFyIGJsMSA9IGIxICYgMHgxZmZmO1xuICAgIHZhciBiaDEgPSBiMSA+Pj4gMTM7XG4gICAgdmFyIGIyID0gYlsyXSB8IDA7XG4gICAgdmFyIGJsMiA9IGIyICYgMHgxZmZmO1xuICAgIHZhciBiaDIgPSBiMiA+Pj4gMTM7XG4gICAgdmFyIGIzID0gYlszXSB8IDA7XG4gICAgdmFyIGJsMyA9IGIzICYgMHgxZmZmO1xuICAgIHZhciBiaDMgPSBiMyA+Pj4gMTM7XG4gICAgdmFyIGI0ID0gYls0XSB8IDA7XG4gICAgdmFyIGJsNCA9IGI0ICYgMHgxZmZmO1xuICAgIHZhciBiaDQgPSBiNCA+Pj4gMTM7XG4gICAgdmFyIGI1ID0gYls1XSB8IDA7XG4gICAgdmFyIGJsNSA9IGI1ICYgMHgxZmZmO1xuICAgIHZhciBiaDUgPSBiNSA+Pj4gMTM7XG4gICAgdmFyIGI2ID0gYls2XSB8IDA7XG4gICAgdmFyIGJsNiA9IGI2ICYgMHgxZmZmO1xuICAgIHZhciBiaDYgPSBiNiA+Pj4gMTM7XG4gICAgdmFyIGI3ID0gYls3XSB8IDA7XG4gICAgdmFyIGJsNyA9IGI3ICYgMHgxZmZmO1xuICAgIHZhciBiaDcgPSBiNyA+Pj4gMTM7XG4gICAgdmFyIGI4ID0gYls4XSB8IDA7XG4gICAgdmFyIGJsOCA9IGI4ICYgMHgxZmZmO1xuICAgIHZhciBiaDggPSBiOCA+Pj4gMTM7XG4gICAgdmFyIGI5ID0gYls5XSB8IDA7XG4gICAgdmFyIGJsOSA9IGI5ICYgMHgxZmZmO1xuICAgIHZhciBiaDkgPSBiOSA+Pj4gMTM7XG5cbiAgICBvdXQubmVnYXRpdmUgPSBzZWxmLm5lZ2F0aXZlIF4gbnVtLm5lZ2F0aXZlO1xuICAgIG91dC5sZW5ndGggPSAxOTtcbiAgICAvKiBrID0gMCAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsMCwgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWwwLCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWgwLCBiaDApO1xuICAgIHZhciB3MCA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzAgPj4+IDI2KSkgfCAwO1xuICAgIHcwICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMSAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsMSwgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWwxLCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWgxLCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoMSkpIHwgMDtcbiAgICB2YXIgdzEgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxID4+PiAyNikpIHwgMDtcbiAgICB3MSAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDIgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDIsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsMiwgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoMiwgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDEpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmgyKSkgfCAwO1xuICAgIHZhciB3MiA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzIgPj4+IDI2KSkgfCAwO1xuICAgIHcyICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMyAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsMywgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWwzLCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWgzLCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoMSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDIpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmgzKSkgfCAwO1xuICAgIHZhciB3MyA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzMgPj4+IDI2KSkgfCAwO1xuICAgIHczICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gNCAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsNCwgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw0LCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg0LCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoMSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDIpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmgzKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoNCkpIHwgMDtcbiAgICB2YXIgdzQgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHc0ID4+PiAyNikpIHwgMDtcbiAgICB3NCAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDUgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDUsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsNSwgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoNSwgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDEpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmgyKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoMykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDQpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmg1KSkgfCAwO1xuICAgIHZhciB3NSA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzUgPj4+IDI2KSkgfCAwO1xuICAgIHc1ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gNiAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsNiwgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw2LCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg2LCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoMSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDIpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmgzKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoNCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDUpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmg2KSkgfCAwO1xuICAgIHZhciB3NiA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzYgPj4+IDI2KSkgfCAwO1xuICAgIHc2ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gNyAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsNywgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw3LCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg3LCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoMSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDIpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmgzKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoNCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDUpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmg2KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMCwgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwwLCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDAsIGJoNykpIHwgMDtcbiAgICB2YXIgdzcgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHc3ID4+PiAyNikpIHwgMDtcbiAgICB3NyAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDggKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDgsIGJsMCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOCwgYmgwKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmwwKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOCwgYmgwKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmgxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDEpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDEpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmwyKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmgyKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoMykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDQpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmg1KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoNikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDcpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmg4KSkgfCAwO1xuICAgIHZhciB3OCA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzggPj4+IDI2KSkgfCAwO1xuICAgIHc4ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gOSAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoMSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDIpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmgzKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoNCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDUpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmg2KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoNykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDgpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmg5KSkgfCAwO1xuICAgIHZhciB3OSA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzkgPj4+IDI2KSkgfCAwO1xuICAgIHc5ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTAgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsMSk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmgxKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmwxKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmgxKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDIpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmgzKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoNCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDUpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmg2KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoNykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDgpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwxLCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDEsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMSwgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMSwgYmg5KSkgfCAwO1xuICAgIHZhciB3MTAgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxMCA+Pj4gMjYpKSB8IDA7XG4gICAgdzEwICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTEgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsMik7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmgyKTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmwyKSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmgyKTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDMpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmg0KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoNSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDYpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmg3KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMywgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwzLCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDMsIGJoOCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDIsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMiwgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgyLCBiaDkpKSB8IDA7XG4gICAgdmFyIHcxMSA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzExID4+PiAyNikpIHwgMDtcbiAgICB3MTEgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxMiAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmwzKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDMpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDMpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDMpO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoNCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDUpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmg2KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoNykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDgpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmg5KSkgfCAwO1xuICAgIHZhciB3MTIgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxMiA+Pj4gMjYpKSB8IDA7XG4gICAgdzEyICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTMgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsNCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmg0KTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmw0KSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmg0KTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDUpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmg2KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoNykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDgpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw0LCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDQsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNCwgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNCwgYmg5KSkgfCAwO1xuICAgIHZhciB3MTMgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxMyA+Pj4gMjYpKSB8IDA7XG4gICAgdzEzICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTQgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsNSk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmg1KTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmw1KSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmg1KTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDYpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmg3KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNiwgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw2LCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDYsIGJoOCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDUsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNSwgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg1LCBiaDkpKSB8IDA7XG4gICAgdmFyIHcxNCA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzE0ID4+PiAyNikpIHwgMDtcbiAgICB3MTQgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxNSAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmw2KTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDYpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDYpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDYpO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoNykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDgpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmg5KSkgfCAwO1xuICAgIHZhciB3MTUgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxNSA+Pj4gMjYpKSB8IDA7XG4gICAgdzE1ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTYgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsNyk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmg3KTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmw3KSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmg3KTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDgpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw3LCBibDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDcsIGJoOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNywgYmw5KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNywgYmg5KSkgfCAwO1xuICAgIHZhciB3MTYgPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxNiA+Pj4gMjYpKSB8IDA7XG4gICAgdzE2ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMTcgKi9cbiAgICBsbyA9IE1hdGguaW11bChhbDksIGJsOCk7XG4gICAgbWlkID0gTWF0aC5pbXVsKGFsOSwgYmg4KTtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOSwgYmw4KSkgfCAwO1xuICAgIGhpID0gTWF0aC5pbXVsKGFoOSwgYmg4KTtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDgsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsOCwgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg4LCBiaDkpKSB8IDA7XG4gICAgdmFyIHcxNyA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzE3ID4+PiAyNikpIHwgMDtcbiAgICB3MTcgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxOCAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmw5KTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDkpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDkpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDkpO1xuICAgIHZhciB3MTggPSAoKChjICsgbG8pIHwgMCkgKyAoKG1pZCAmIDB4MWZmZikgPDwgMTMpKSB8IDA7XG4gICAgYyA9ICgoKGhpICsgKG1pZCA+Pj4gMTMpKSB8IDApICsgKHcxOCA+Pj4gMjYpKSB8IDA7XG4gICAgdzE4ICY9IDB4M2ZmZmZmZjtcbiAgICBvWzBdID0gdzA7XG4gICAgb1sxXSA9IHcxO1xuICAgIG9bMl0gPSB3MjtcbiAgICBvWzNdID0gdzM7XG4gICAgb1s0XSA9IHc0O1xuICAgIG9bNV0gPSB3NTtcbiAgICBvWzZdID0gdzY7XG4gICAgb1s3XSA9IHc3O1xuICAgIG9bOF0gPSB3ODtcbiAgICBvWzldID0gdzk7XG4gICAgb1sxMF0gPSB3MTA7XG4gICAgb1sxMV0gPSB3MTE7XG4gICAgb1sxMl0gPSB3MTI7XG4gICAgb1sxM10gPSB3MTM7XG4gICAgb1sxNF0gPSB3MTQ7XG4gICAgb1sxNV0gPSB3MTU7XG4gICAgb1sxNl0gPSB3MTY7XG4gICAgb1sxN10gPSB3MTc7XG4gICAgb1sxOF0gPSB3MTg7XG4gICAgaWYgKGMgIT09IDApIHtcbiAgICAgIG9bMTldID0gYztcbiAgICAgIG91dC5sZW5ndGgrKztcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfTtcblxuICAvLyBQb2x5ZmlsbCBjb21iXG4gIGlmICghTWF0aC5pbXVsKSB7XG4gICAgY29tYjEwTXVsVG8gPSBzbWFsbE11bFRvO1xuICB9XG5cbiAgZnVuY3Rpb24gYmlnTXVsVG8gKHNlbGYsIG51bSwgb3V0KSB7XG4gICAgb3V0Lm5lZ2F0aXZlID0gbnVtLm5lZ2F0aXZlIF4gc2VsZi5uZWdhdGl2ZTtcbiAgICBvdXQubGVuZ3RoID0gc2VsZi5sZW5ndGggKyBudW0ubGVuZ3RoO1xuXG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICB2YXIgaG5jYXJyeSA9IDA7XG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBvdXQubGVuZ3RoIC0gMTsgaysrKSB7XG4gICAgICAvLyBTdW0gYWxsIHdvcmRzIHdpdGggdGhlIHNhbWUgYGkgKyBqID0ga2AgYW5kIGFjY3VtdWxhdGUgYG5jYXJyeWAsXG4gICAgICAvLyBub3RlIHRoYXQgbmNhcnJ5IGNvdWxkIGJlID49IDB4M2ZmZmZmZlxuICAgICAgdmFyIG5jYXJyeSA9IGhuY2Fycnk7XG4gICAgICBobmNhcnJ5ID0gMDtcbiAgICAgIHZhciByd29yZCA9IGNhcnJ5ICYgMHgzZmZmZmZmO1xuICAgICAgdmFyIG1heEogPSBNYXRoLm1pbihrLCBudW0ubGVuZ3RoIC0gMSk7XG4gICAgICBmb3IgKHZhciBqID0gTWF0aC5tYXgoMCwgayAtIHNlbGYubGVuZ3RoICsgMSk7IGogPD0gbWF4SjsgaisrKSB7XG4gICAgICAgIHZhciBpID0gayAtIGo7XG4gICAgICAgIHZhciBhID0gc2VsZi53b3Jkc1tpXSB8IDA7XG4gICAgICAgIHZhciBiID0gbnVtLndvcmRzW2pdIHwgMDtcbiAgICAgICAgdmFyIHIgPSBhICogYjtcblxuICAgICAgICB2YXIgbG8gPSByICYgMHgzZmZmZmZmO1xuICAgICAgICBuY2FycnkgPSAobmNhcnJ5ICsgKChyIC8gMHg0MDAwMDAwKSB8IDApKSB8IDA7XG4gICAgICAgIGxvID0gKGxvICsgcndvcmQpIHwgMDtcbiAgICAgICAgcndvcmQgPSBsbyAmIDB4M2ZmZmZmZjtcbiAgICAgICAgbmNhcnJ5ID0gKG5jYXJyeSArIChsbyA+Pj4gMjYpKSB8IDA7XG5cbiAgICAgICAgaG5jYXJyeSArPSBuY2FycnkgPj4+IDI2O1xuICAgICAgICBuY2FycnkgJj0gMHgzZmZmZmZmO1xuICAgICAgfVxuICAgICAgb3V0LndvcmRzW2tdID0gcndvcmQ7XG4gICAgICBjYXJyeSA9IG5jYXJyeTtcbiAgICAgIG5jYXJyeSA9IGhuY2Fycnk7XG4gICAgfVxuICAgIGlmIChjYXJyeSAhPT0gMCkge1xuICAgICAgb3V0LndvcmRzW2tdID0gY2Fycnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dC5sZW5ndGgtLTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0LnN0cmlwKCk7XG4gIH1cblxuICBmdW5jdGlvbiBqdW1ib011bFRvIChzZWxmLCBudW0sIG91dCkge1xuICAgIHZhciBmZnRtID0gbmV3IEZGVE0oKTtcbiAgICByZXR1cm4gZmZ0bS5tdWxwKHNlbGYsIG51bSwgb3V0KTtcbiAgfVxuXG4gIEJOLnByb3RvdHlwZS5tdWxUbyA9IGZ1bmN0aW9uIG11bFRvIChudW0sIG91dCkge1xuICAgIHZhciByZXM7XG4gICAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoICsgbnVtLmxlbmd0aDtcbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDEwICYmIG51bS5sZW5ndGggPT09IDEwKSB7XG4gICAgICByZXMgPSBjb21iMTBNdWxUbyh0aGlzLCBudW0sIG91dCk7XG4gICAgfSBlbHNlIGlmIChsZW4gPCA2Mykge1xuICAgICAgcmVzID0gc21hbGxNdWxUbyh0aGlzLCBudW0sIG91dCk7XG4gICAgfSBlbHNlIGlmIChsZW4gPCAxMDI0KSB7XG4gICAgICByZXMgPSBiaWdNdWxUbyh0aGlzLCBudW0sIG91dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IGp1bWJvTXVsVG8odGhpcywgbnVtLCBvdXQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgLy8gQ29vbGV5LVR1a2V5IGFsZ29yaXRobSBmb3IgRkZUXG4gIC8vIHNsaWdodGx5IHJldmlzaXRlZCB0byByZWx5IG9uIGxvb3BpbmcgaW5zdGVhZCBvZiByZWN1cnNpb25cblxuICBmdW5jdGlvbiBGRlRNICh4LCB5KSB7XG4gICAgdGhpcy54ID0geDtcbiAgICB0aGlzLnkgPSB5O1xuICB9XG5cbiAgRkZUTS5wcm90b3R5cGUubWFrZVJCVCA9IGZ1bmN0aW9uIG1ha2VSQlQgKE4pIHtcbiAgICB2YXIgdCA9IG5ldyBBcnJheShOKTtcbiAgICB2YXIgbCA9IEJOLnByb3RvdHlwZS5fY291bnRCaXRzKE4pIC0gMTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IE47IGkrKykge1xuICAgICAgdFtpXSA9IHRoaXMucmV2QmluKGksIGwsIE4pO1xuICAgIH1cblxuICAgIHJldHVybiB0O1xuICB9O1xuXG4gIC8vIFJldHVybnMgYmluYXJ5LXJldmVyc2VkIHJlcHJlc2VudGF0aW9uIG9mIGB4YFxuICBGRlRNLnByb3RvdHlwZS5yZXZCaW4gPSBmdW5jdGlvbiByZXZCaW4gKHgsIGwsIE4pIHtcbiAgICBpZiAoeCA9PT0gMCB8fCB4ID09PSBOIC0gMSkgcmV0dXJuIHg7XG5cbiAgICB2YXIgcmIgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICByYiB8PSAoeCAmIDEpIDw8IChsIC0gaSAtIDEpO1xuICAgICAgeCA+Pj0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmI7XG4gIH07XG5cbiAgLy8gUGVyZm9ybXMgXCJ0d2VlZGxpbmdcIiBwaGFzZSwgdGhlcmVmb3JlICdlbXVsYXRpbmcnXG4gIC8vIGJlaGF2aW91ciBvZiB0aGUgcmVjdXJzaXZlIGFsZ29yaXRobVxuICBGRlRNLnByb3RvdHlwZS5wZXJtdXRlID0gZnVuY3Rpb24gcGVybXV0ZSAocmJ0LCByd3MsIGl3cywgcnR3cywgaXR3cywgTikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTjsgaSsrKSB7XG4gICAgICBydHdzW2ldID0gcndzW3JidFtpXV07XG4gICAgICBpdHdzW2ldID0gaXdzW3JidFtpXV07XG4gICAgfVxuICB9O1xuXG4gIEZGVE0ucHJvdG90eXBlLnRyYW5zZm9ybSA9IGZ1bmN0aW9uIHRyYW5zZm9ybSAocndzLCBpd3MsIHJ0d3MsIGl0d3MsIE4sIHJidCkge1xuICAgIHRoaXMucGVybXV0ZShyYnQsIHJ3cywgaXdzLCBydHdzLCBpdHdzLCBOKTtcblxuICAgIGZvciAodmFyIHMgPSAxOyBzIDwgTjsgcyA8PD0gMSkge1xuICAgICAgdmFyIGwgPSBzIDw8IDE7XG5cbiAgICAgIHZhciBydHdkZiA9IE1hdGguY29zKDIgKiBNYXRoLlBJIC8gbCk7XG4gICAgICB2YXIgaXR3ZGYgPSBNYXRoLnNpbigyICogTWF0aC5QSSAvIGwpO1xuXG4gICAgICBmb3IgKHZhciBwID0gMDsgcCA8IE47IHAgKz0gbCkge1xuICAgICAgICB2YXIgcnR3ZGZfID0gcnR3ZGY7XG4gICAgICAgIHZhciBpdHdkZl8gPSBpdHdkZjtcblxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHM7IGorKykge1xuICAgICAgICAgIHZhciByZSA9IHJ0d3NbcCArIGpdO1xuICAgICAgICAgIHZhciBpZSA9IGl0d3NbcCArIGpdO1xuXG4gICAgICAgICAgdmFyIHJvID0gcnR3c1twICsgaiArIHNdO1xuICAgICAgICAgIHZhciBpbyA9IGl0d3NbcCArIGogKyBzXTtcblxuICAgICAgICAgIHZhciByeCA9IHJ0d2RmXyAqIHJvIC0gaXR3ZGZfICogaW87XG5cbiAgICAgICAgICBpbyA9IHJ0d2RmXyAqIGlvICsgaXR3ZGZfICogcm87XG4gICAgICAgICAgcm8gPSByeDtcblxuICAgICAgICAgIHJ0d3NbcCArIGpdID0gcmUgKyBybztcbiAgICAgICAgICBpdHdzW3AgKyBqXSA9IGllICsgaW87XG5cbiAgICAgICAgICBydHdzW3AgKyBqICsgc10gPSByZSAtIHJvO1xuICAgICAgICAgIGl0d3NbcCArIGogKyBzXSA9IGllIC0gaW87XG5cbiAgICAgICAgICAvKiBqc2hpbnQgbWF4ZGVwdGggOiBmYWxzZSAqL1xuICAgICAgICAgIGlmIChqICE9PSBsKSB7XG4gICAgICAgICAgICByeCA9IHJ0d2RmICogcnR3ZGZfIC0gaXR3ZGYgKiBpdHdkZl87XG5cbiAgICAgICAgICAgIGl0d2RmXyA9IHJ0d2RmICogaXR3ZGZfICsgaXR3ZGYgKiBydHdkZl87XG4gICAgICAgICAgICBydHdkZl8gPSByeDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgRkZUTS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2IgPSBmdW5jdGlvbiBndWVzc0xlbjEzYiAobiwgbSkge1xuICAgIHZhciBOID0gTWF0aC5tYXgobSwgbikgfCAxO1xuICAgIHZhciBvZGQgPSBOICYgMTtcbiAgICB2YXIgaSA9IDA7XG4gICAgZm9yIChOID0gTiAvIDIgfCAwOyBOOyBOID0gTiA+Pj4gMSkge1xuICAgICAgaSsrO1xuICAgIH1cblxuICAgIHJldHVybiAxIDw8IGkgKyAxICsgb2RkO1xuICB9O1xuXG4gIEZGVE0ucHJvdG90eXBlLmNvbmp1Z2F0ZSA9IGZ1bmN0aW9uIGNvbmp1Z2F0ZSAocndzLCBpd3MsIE4pIHtcbiAgICBpZiAoTiA8PSAxKSByZXR1cm47XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IE4gLyAyOyBpKyspIHtcbiAgICAgIHZhciB0ID0gcndzW2ldO1xuXG4gICAgICByd3NbaV0gPSByd3NbTiAtIGkgLSAxXTtcbiAgICAgIHJ3c1tOIC0gaSAtIDFdID0gdDtcblxuICAgICAgdCA9IGl3c1tpXTtcblxuICAgICAgaXdzW2ldID0gLWl3c1tOIC0gaSAtIDFdO1xuICAgICAgaXdzW04gLSBpIC0gMV0gPSAtdDtcbiAgICB9XG4gIH07XG5cbiAgRkZUTS5wcm90b3R5cGUubm9ybWFsaXplMTNiID0gZnVuY3Rpb24gbm9ybWFsaXplMTNiICh3cywgTikge1xuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBOIC8gMjsgaSsrKSB7XG4gICAgICB2YXIgdyA9IE1hdGgucm91bmQod3NbMiAqIGkgKyAxXSAvIE4pICogMHgyMDAwICtcbiAgICAgICAgTWF0aC5yb3VuZCh3c1syICogaV0gLyBOKSArXG4gICAgICAgIGNhcnJ5O1xuXG4gICAgICB3c1tpXSA9IHcgJiAweDNmZmZmZmY7XG5cbiAgICAgIGlmICh3IDwgMHg0MDAwMDAwKSB7XG4gICAgICAgIGNhcnJ5ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNhcnJ5ID0gdyAvIDB4NDAwMDAwMCB8IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHdzO1xuICB9O1xuXG4gIEZGVE0ucHJvdG90eXBlLmNvbnZlcnQxM2IgPSBmdW5jdGlvbiBjb252ZXJ0MTNiICh3cywgbGVuLCByd3MsIE4pIHtcbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNhcnJ5ID0gY2FycnkgKyAod3NbaV0gfCAwKTtcblxuICAgICAgcndzWzIgKiBpXSA9IGNhcnJ5ICYgMHgxZmZmOyBjYXJyeSA9IGNhcnJ5ID4+PiAxMztcbiAgICAgIHJ3c1syICogaSArIDFdID0gY2FycnkgJiAweDFmZmY7IGNhcnJ5ID0gY2FycnkgPj4+IDEzO1xuICAgIH1cblxuICAgIC8vIFBhZCB3aXRoIHplcm9lc1xuICAgIGZvciAoaSA9IDIgKiBsZW47IGkgPCBOOyArK2kpIHtcbiAgICAgIHJ3c1tpXSA9IDA7XG4gICAgfVxuXG4gICAgYXNzZXJ0KGNhcnJ5ID09PSAwKTtcbiAgICBhc3NlcnQoKGNhcnJ5ICYgfjB4MWZmZikgPT09IDApO1xuICB9O1xuXG4gIEZGVE0ucHJvdG90eXBlLnN0dWIgPSBmdW5jdGlvbiBzdHViIChOKSB7XG4gICAgdmFyIHBoID0gbmV3IEFycmF5KE4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTjsgaSsrKSB7XG4gICAgICBwaFtpXSA9IDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBoO1xuICB9O1xuXG4gIEZGVE0ucHJvdG90eXBlLm11bHAgPSBmdW5jdGlvbiBtdWxwICh4LCB5LCBvdXQpIHtcbiAgICB2YXIgTiA9IDIgKiB0aGlzLmd1ZXNzTGVuMTNiKHgubGVuZ3RoLCB5Lmxlbmd0aCk7XG5cbiAgICB2YXIgcmJ0ID0gdGhpcy5tYWtlUkJUKE4pO1xuXG4gICAgdmFyIF8gPSB0aGlzLnN0dWIoTik7XG5cbiAgICB2YXIgcndzID0gbmV3IEFycmF5KE4pO1xuICAgIHZhciByd3N0ID0gbmV3IEFycmF5KE4pO1xuICAgIHZhciBpd3N0ID0gbmV3IEFycmF5KE4pO1xuXG4gICAgdmFyIG5yd3MgPSBuZXcgQXJyYXkoTik7XG4gICAgdmFyIG5yd3N0ID0gbmV3IEFycmF5KE4pO1xuICAgIHZhciBuaXdzdCA9IG5ldyBBcnJheShOKTtcblxuICAgIHZhciBybXdzID0gb3V0LndvcmRzO1xuICAgIHJtd3MubGVuZ3RoID0gTjtcblxuICAgIHRoaXMuY29udmVydDEzYih4LndvcmRzLCB4Lmxlbmd0aCwgcndzLCBOKTtcbiAgICB0aGlzLmNvbnZlcnQxM2IoeS53b3JkcywgeS5sZW5ndGgsIG5yd3MsIE4pO1xuXG4gICAgdGhpcy50cmFuc2Zvcm0ocndzLCBfLCByd3N0LCBpd3N0LCBOLCByYnQpO1xuICAgIHRoaXMudHJhbnNmb3JtKG5yd3MsIF8sIG5yd3N0LCBuaXdzdCwgTiwgcmJ0KTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTjsgaSsrKSB7XG4gICAgICB2YXIgcnggPSByd3N0W2ldICogbnJ3c3RbaV0gLSBpd3N0W2ldICogbml3c3RbaV07XG4gICAgICBpd3N0W2ldID0gcndzdFtpXSAqIG5pd3N0W2ldICsgaXdzdFtpXSAqIG5yd3N0W2ldO1xuICAgICAgcndzdFtpXSA9IHJ4O1xuICAgIH1cblxuICAgIHRoaXMuY29uanVnYXRlKHJ3c3QsIGl3c3QsIE4pO1xuICAgIHRoaXMudHJhbnNmb3JtKHJ3c3QsIGl3c3QsIHJtd3MsIF8sIE4sIHJidCk7XG4gICAgdGhpcy5jb25qdWdhdGUocm13cywgXywgTik7XG4gICAgdGhpcy5ub3JtYWxpemUxM2Iocm13cywgTik7XG5cbiAgICBvdXQubmVnYXRpdmUgPSB4Lm5lZ2F0aXZlIF4geS5uZWdhdGl2ZTtcbiAgICBvdXQubGVuZ3RoID0geC5sZW5ndGggKyB5Lmxlbmd0aDtcbiAgICByZXR1cm4gb3V0LnN0cmlwKCk7XG4gIH07XG5cbiAgLy8gTXVsdGlwbHkgYHRoaXNgIGJ5IGBudW1gXG4gIEJOLnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiBtdWwgKG51bSkge1xuICAgIHZhciBvdXQgPSBuZXcgQk4obnVsbCk7XG4gICAgb3V0LndvcmRzID0gbmV3IEFycmF5KHRoaXMubGVuZ3RoICsgbnVtLmxlbmd0aCk7XG4gICAgcmV0dXJuIHRoaXMubXVsVG8obnVtLCBvdXQpO1xuICB9O1xuXG4gIC8vIE11bHRpcGx5IGVtcGxveWluZyBGRlRcbiAgQk4ucHJvdG90eXBlLm11bGYgPSBmdW5jdGlvbiBtdWxmIChudW0pIHtcbiAgICB2YXIgb3V0ID0gbmV3IEJOKG51bGwpO1xuICAgIG91dC53b3JkcyA9IG5ldyBBcnJheSh0aGlzLmxlbmd0aCArIG51bS5sZW5ndGgpO1xuICAgIHJldHVybiBqdW1ib011bFRvKHRoaXMsIG51bSwgb3V0KTtcbiAgfTtcblxuICAvLyBJbi1wbGFjZSBNdWx0aXBsaWNhdGlvblxuICBCTi5wcm90b3R5cGUuaW11bCA9IGZ1bmN0aW9uIGltdWwgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkubXVsVG8obnVtLCB0aGlzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaW11bG4gPSBmdW5jdGlvbiBpbXVsbiAobnVtKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBudW0gPT09ICdudW1iZXInKTtcbiAgICBhc3NlcnQobnVtIDwgMHg0MDAwMDAwKTtcblxuICAgIC8vIENhcnJ5XG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB3ID0gKHRoaXMud29yZHNbaV0gfCAwKSAqIG51bTtcbiAgICAgIHZhciBsbyA9ICh3ICYgMHgzZmZmZmZmKSArIChjYXJyeSAmIDB4M2ZmZmZmZik7XG4gICAgICBjYXJyeSA+Pj0gMjY7XG4gICAgICBjYXJyeSArPSAodyAvIDB4NDAwMDAwMCkgfCAwO1xuICAgICAgLy8gTk9URTogbG8gaXMgMjdiaXQgbWF4aW11bVxuICAgICAgY2FycnkgKz0gbG8gPj4+IDI2O1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IGxvICYgMHgzZmZmZmZmO1xuICAgIH1cblxuICAgIGlmIChjYXJyeSAhPT0gMCkge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IGNhcnJ5O1xuICAgICAgdGhpcy5sZW5ndGgrKztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBCTi5wcm90b3R5cGUubXVsbiA9IGZ1bmN0aW9uIG11bG4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaW11bG4obnVtKTtcbiAgfTtcblxuICAvLyBgdGhpc2AgKiBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLnNxciA9IGZ1bmN0aW9uIHNxciAoKSB7XG4gICAgcmV0dXJuIHRoaXMubXVsKHRoaXMpO1xuICB9O1xuXG4gIC8vIGB0aGlzYCAqIGB0aGlzYCBpbi1wbGFjZVxuICBCTi5wcm90b3R5cGUuaXNxciA9IGZ1bmN0aW9uIGlzcXIgKCkge1xuICAgIHJldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKTtcbiAgfTtcblxuICAvLyBNYXRoLnBvdyhgdGhpc2AsIGBudW1gKVxuICBCTi5wcm90b3R5cGUucG93ID0gZnVuY3Rpb24gcG93IChudW0pIHtcbiAgICB2YXIgdyA9IHRvQml0QXJyYXkobnVtKTtcbiAgICBpZiAody5sZW5ndGggPT09IDApIHJldHVybiBuZXcgQk4oMSk7XG5cbiAgICAvLyBTa2lwIGxlYWRpbmcgemVyb2VzXG4gICAgdmFyIHJlcyA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3Lmxlbmd0aDsgaSsrLCByZXMgPSByZXMuc3FyKCkpIHtcbiAgICAgIGlmICh3W2ldICE9PSAwKSBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoKytpIDwgdy5sZW5ndGgpIHtcbiAgICAgIGZvciAodmFyIHEgPSByZXMuc3FyKCk7IGkgPCB3Lmxlbmd0aDsgaSsrLCBxID0gcS5zcXIoKSkge1xuICAgICAgICBpZiAod1tpXSA9PT0gMCkgY29udGludWU7XG5cbiAgICAgICAgcmVzID0gcmVzLm11bChxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIC8vIFNoaWZ0LWxlZnQgaW4tcGxhY2VcbiAgQk4ucHJvdG90eXBlLml1c2hsbiA9IGZ1bmN0aW9uIGl1c2hsbiAoYml0cykge1xuICAgIGFzc2VydCh0eXBlb2YgYml0cyA9PT0gJ251bWJlcicgJiYgYml0cyA+PSAwKTtcbiAgICB2YXIgciA9IGJpdHMgJSAyNjtcbiAgICB2YXIgcyA9IChiaXRzIC0gcikgLyAyNjtcbiAgICB2YXIgY2FycnlNYXNrID0gKDB4M2ZmZmZmZiA+Pj4gKDI2IC0gcikpIDw8ICgyNiAtIHIpO1xuICAgIHZhciBpO1xuXG4gICAgaWYgKHIgIT09IDApIHtcbiAgICAgIHZhciBjYXJyeSA9IDA7XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBuZXdDYXJyeSA9IHRoaXMud29yZHNbaV0gJiBjYXJyeU1hc2s7XG4gICAgICAgIHZhciBjID0gKCh0aGlzLndvcmRzW2ldIHwgMCkgLSBuZXdDYXJyeSkgPDwgcjtcbiAgICAgICAgdGhpcy53b3Jkc1tpXSA9IGMgfCBjYXJyeTtcbiAgICAgICAgY2FycnkgPSBuZXdDYXJyeSA+Pj4gKDI2IC0gcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChjYXJyeSkge1xuICAgICAgICB0aGlzLndvcmRzW2ldID0gY2Fycnk7XG4gICAgICAgIHRoaXMubGVuZ3RoKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHMgIT09IDApIHtcbiAgICAgIGZvciAoaSA9IHRoaXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpICsgc10gPSB0aGlzLndvcmRzW2ldO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgICAgIHRoaXMud29yZHNbaV0gPSAwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxlbmd0aCArPSBzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlzaGxuID0gZnVuY3Rpb24gaXNobG4gKGJpdHMpIHtcbiAgICAvLyBUT0RPKGluZHV0bnkpOiBpbXBsZW1lbnQgbWVcbiAgICBhc3NlcnQodGhpcy5uZWdhdGl2ZSA9PT0gMCk7XG4gICAgcmV0dXJuIHRoaXMuaXVzaGxuKGJpdHMpO1xuICB9O1xuXG4gIC8vIFNoaWZ0LXJpZ2h0IGluLXBsYWNlXG4gIC8vIE5PVEU6IGBoaW50YCBpcyBhIGxvd2VzdCBiaXQgYmVmb3JlIHRyYWlsaW5nIHplcm9lc1xuICAvLyBOT1RFOiBpZiBgZXh0ZW5kZWRgIGlzIHByZXNlbnQgLSBpdCB3aWxsIGJlIGZpbGxlZCB3aXRoIGRlc3Ryb3llZCBiaXRzXG4gIEJOLnByb3RvdHlwZS5pdXNocm4gPSBmdW5jdGlvbiBpdXNocm4gKGJpdHMsIGhpbnQsIGV4dGVuZGVkKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBiaXRzID09PSAnbnVtYmVyJyAmJiBiaXRzID49IDApO1xuICAgIHZhciBoO1xuICAgIGlmIChoaW50KSB7XG4gICAgICBoID0gKGhpbnQgLSAoaGludCAlIDI2KSkgLyAyNjtcbiAgICB9IGVsc2Uge1xuICAgICAgaCA9IDA7XG4gICAgfVxuXG4gICAgdmFyIHIgPSBiaXRzICUgMjY7XG4gICAgdmFyIHMgPSBNYXRoLm1pbigoYml0cyAtIHIpIC8gMjYsIHRoaXMubGVuZ3RoKTtcbiAgICB2YXIgbWFzayA9IDB4M2ZmZmZmZiBeICgoMHgzZmZmZmZmID4+PiByKSA8PCByKTtcbiAgICB2YXIgbWFza2VkV29yZHMgPSBleHRlbmRlZDtcblxuICAgIGggLT0gcztcbiAgICBoID0gTWF0aC5tYXgoMCwgaCk7XG5cbiAgICAvLyBFeHRlbmRlZCBtb2RlLCBjb3B5IG1hc2tlZCBwYXJ0XG4gICAgaWYgKG1hc2tlZFdvcmRzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHM7IGkrKykge1xuICAgICAgICBtYXNrZWRXb3Jkcy53b3Jkc1tpXSA9IHRoaXMud29yZHNbaV07XG4gICAgICB9XG4gICAgICBtYXNrZWRXb3Jkcy5sZW5ndGggPSBzO1xuICAgIH1cblxuICAgIGlmIChzID09PSAwKSB7XG4gICAgICAvLyBOby1vcCwgd2Ugc2hvdWxkIG5vdCBtb3ZlIGFueXRoaW5nIGF0IGFsbFxuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGggPiBzKSB7XG4gICAgICB0aGlzLmxlbmd0aCAtPSBzO1xuICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpXSA9IHRoaXMud29yZHNbaSArIHNdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndvcmRzWzBdID0gMDtcbiAgICAgIHRoaXMubGVuZ3RoID0gMTtcbiAgICB9XG5cbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAoaSA9IHRoaXMubGVuZ3RoIC0gMTsgaSA+PSAwICYmIChjYXJyeSAhPT0gMCB8fCBpID49IGgpOyBpLS0pIHtcbiAgICAgIHZhciB3b3JkID0gdGhpcy53b3Jkc1tpXSB8IDA7XG4gICAgICB0aGlzLndvcmRzW2ldID0gKGNhcnJ5IDw8ICgyNiAtIHIpKSB8ICh3b3JkID4+PiByKTtcbiAgICAgIGNhcnJ5ID0gd29yZCAmIG1hc2s7XG4gICAgfVxuXG4gICAgLy8gUHVzaCBjYXJyaWVkIGJpdHMgYXMgYSBtYXNrXG4gICAgaWYgKG1hc2tlZFdvcmRzICYmIGNhcnJ5ICE9PSAwKSB7XG4gICAgICBtYXNrZWRXb3Jkcy53b3Jkc1ttYXNrZWRXb3Jkcy5sZW5ndGgrK10gPSBjYXJyeTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMud29yZHNbMF0gPSAwO1xuICAgICAgdGhpcy5sZW5ndGggPSAxO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlzaHJuID0gZnVuY3Rpb24gaXNocm4gKGJpdHMsIGhpbnQsIGV4dGVuZGVkKSB7XG4gICAgLy8gVE9ETyhpbmR1dG55KTogaW1wbGVtZW50IG1lXG4gICAgYXNzZXJ0KHRoaXMubmVnYXRpdmUgPT09IDApO1xuICAgIHJldHVybiB0aGlzLml1c2hybihiaXRzLCBoaW50LCBleHRlbmRlZCk7XG4gIH07XG5cbiAgLy8gU2hpZnQtbGVmdFxuICBCTi5wcm90b3R5cGUuc2hsbiA9IGZ1bmN0aW9uIHNobG4gKGJpdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGJpdHMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS51c2hsbiA9IGZ1bmN0aW9uIHVzaGxuIChiaXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oYml0cyk7XG4gIH07XG5cbiAgLy8gU2hpZnQtcmlnaHRcbiAgQk4ucHJvdG90eXBlLnNocm4gPSBmdW5jdGlvbiBzaHJuIChiaXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihiaXRzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudXNocm4gPSBmdW5jdGlvbiB1c2hybiAoYml0cykge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGJpdHMpO1xuICB9O1xuXG4gIC8vIFRlc3QgaWYgbiBiaXQgaXMgc2V0XG4gIEJOLnByb3RvdHlwZS50ZXN0biA9IGZ1bmN0aW9uIHRlc3RuIChiaXQpIHtcbiAgICBhc3NlcnQodHlwZW9mIGJpdCA9PT0gJ251bWJlcicgJiYgYml0ID49IDApO1xuICAgIHZhciByID0gYml0ICUgMjY7XG4gICAgdmFyIHMgPSAoYml0IC0gcikgLyAyNjtcbiAgICB2YXIgcSA9IDEgPDwgcjtcblxuICAgIC8vIEZhc3QgY2FzZTogYml0IGlzIG11Y2ggaGlnaGVyIHRoYW4gYWxsIGV4aXN0aW5nIHdvcmRzXG4gICAgaWYgKHRoaXMubGVuZ3RoIDw9IHMpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIENoZWNrIGJpdCBhbmQgcmV0dXJuXG4gICAgdmFyIHcgPSB0aGlzLndvcmRzW3NdO1xuXG4gICAgcmV0dXJuICEhKHcgJiBxKTtcbiAgfTtcblxuICAvLyBSZXR1cm4gb25seSBsb3dlcnMgYml0cyBvZiBudW1iZXIgKGluLXBsYWNlKVxuICBCTi5wcm90b3R5cGUuaW1hc2tuID0gZnVuY3Rpb24gaW1hc2tuIChiaXRzKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBiaXRzID09PSAnbnVtYmVyJyAmJiBiaXRzID49IDApO1xuICAgIHZhciByID0gYml0cyAlIDI2O1xuICAgIHZhciBzID0gKGJpdHMgLSByKSAvIDI2O1xuXG4gICAgYXNzZXJ0KHRoaXMubmVnYXRpdmUgPT09IDAsICdpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMnKTtcblxuICAgIGlmICh0aGlzLmxlbmd0aCA8PSBzKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpZiAociAhPT0gMCkge1xuICAgICAgcysrO1xuICAgIH1cbiAgICB0aGlzLmxlbmd0aCA9IE1hdGgubWluKHMsIHRoaXMubGVuZ3RoKTtcblxuICAgIGlmIChyICE9PSAwKSB7XG4gICAgICB2YXIgbWFzayA9IDB4M2ZmZmZmZiBeICgoMHgzZmZmZmZmID4+PiByKSA8PCByKTtcbiAgICAgIHRoaXMud29yZHNbdGhpcy5sZW5ndGggLSAxXSAmPSBtYXNrO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgLy8gUmV0dXJuIG9ubHkgbG93ZXJzIGJpdHMgb2YgbnVtYmVyXG4gIEJOLnByb3RvdHlwZS5tYXNrbiA9IGZ1bmN0aW9uIG1hc2tuIChiaXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oYml0cyk7XG4gIH07XG5cbiAgLy8gQWRkIHBsYWluIG51bWJlciBgbnVtYCB0byBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLmlhZGRuID0gZnVuY3Rpb24gaWFkZG4gKG51bSkge1xuICAgIGFzc2VydCh0eXBlb2YgbnVtID09PSAnbnVtYmVyJyk7XG4gICAgYXNzZXJ0KG51bSA8IDB4NDAwMDAwMCk7XG4gICAgaWYgKG51bSA8IDApIHJldHVybiB0aGlzLmlzdWJuKC1udW0pO1xuXG4gICAgLy8gUG9zc2libGUgc2lnbiBjaGFuZ2VcbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgaWYgKHRoaXMubGVuZ3RoID09PSAxICYmICh0aGlzLndvcmRzWzBdIHwgMCkgPCBudW0pIHtcbiAgICAgICAgdGhpcy53b3Jkc1swXSA9IG51bSAtICh0aGlzLndvcmRzWzBdIHwgMCk7XG4gICAgICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgICB0aGlzLmlzdWJuKG51bSk7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEFkZCB3aXRob3V0IGNoZWNrc1xuICAgIHJldHVybiB0aGlzLl9pYWRkbihudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5faWFkZG4gPSBmdW5jdGlvbiBfaWFkZG4gKG51bSkge1xuICAgIHRoaXMud29yZHNbMF0gKz0gbnVtO1xuXG4gICAgLy8gQ2FycnlcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoICYmIHRoaXMud29yZHNbaV0gPj0gMHg0MDAwMDAwOyBpKyspIHtcbiAgICAgIHRoaXMud29yZHNbaV0gLT0gMHg0MDAwMDAwO1xuICAgICAgaWYgKGkgPT09IHRoaXMubGVuZ3RoIC0gMSkge1xuICAgICAgICB0aGlzLndvcmRzW2kgKyAxXSA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLndvcmRzW2kgKyAxXSsrO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmxlbmd0aCA9IE1hdGgubWF4KHRoaXMubGVuZ3RoLCBpICsgMSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBTdWJ0cmFjdCBwbGFpbiBudW1iZXIgYG51bWAgZnJvbSBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLmlzdWJuID0gZnVuY3Rpb24gaXN1Ym4gKG51bSkge1xuICAgIGFzc2VydCh0eXBlb2YgbnVtID09PSAnbnVtYmVyJyk7XG4gICAgYXNzZXJ0KG51bSA8IDB4NDAwMDAwMCk7XG4gICAgaWYgKG51bSA8IDApIHJldHVybiB0aGlzLmlhZGRuKC1udW0pO1xuXG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgICAgdGhpcy5pYWRkbihudW0pO1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0aGlzLndvcmRzWzBdIC09IG51bTtcblxuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLndvcmRzWzBdIDwgMCkge1xuICAgICAgdGhpcy53b3Jkc1swXSA9IC10aGlzLndvcmRzWzBdO1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENhcnJ5XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoICYmIHRoaXMud29yZHNbaV0gPCAwOyBpKyspIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpXSArPSAweDQwMDAwMDA7XG4gICAgICAgIHRoaXMud29yZHNbaSArIDFdIC09IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuYWRkbiA9IGZ1bmN0aW9uIGFkZG4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaWFkZG4obnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuc3VibiA9IGZ1bmN0aW9uIHN1Ym4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4obnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaWFicyA9IGZ1bmN0aW9uIGlhYnMgKCkge1xuICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmFicyA9IGZ1bmN0aW9uIGFicyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bCA9IGZ1bmN0aW9uIF9pc2hsbnN1Ym11bCAobnVtLCBtdWwsIHNoaWZ0KSB7XG4gICAgdmFyIGxlbiA9IG51bS5sZW5ndGggKyBzaGlmdDtcbiAgICB2YXIgaTtcblxuICAgIHRoaXMuX2V4cGFuZChsZW4pO1xuXG4gICAgdmFyIHc7XG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbnVtLmxlbmd0aDsgaSsrKSB7XG4gICAgICB3ID0gKHRoaXMud29yZHNbaSArIHNoaWZ0XSB8IDApICsgY2Fycnk7XG4gICAgICB2YXIgcmlnaHQgPSAobnVtLndvcmRzW2ldIHwgMCkgKiBtdWw7XG4gICAgICB3IC09IHJpZ2h0ICYgMHgzZmZmZmZmO1xuICAgICAgY2FycnkgPSAodyA+PiAyNikgLSAoKHJpZ2h0IC8gMHg0MDAwMDAwKSB8IDApO1xuICAgICAgdGhpcy53b3Jkc1tpICsgc2hpZnRdID0gdyAmIDB4M2ZmZmZmZjtcbiAgICB9XG4gICAgZm9yICg7IGkgPCB0aGlzLmxlbmd0aCAtIHNoaWZ0OyBpKyspIHtcbiAgICAgIHcgPSAodGhpcy53b3Jkc1tpICsgc2hpZnRdIHwgMCkgKyBjYXJyeTtcbiAgICAgIGNhcnJ5ID0gdyA+PiAyNjtcbiAgICAgIHRoaXMud29yZHNbaSArIHNoaWZ0XSA9IHcgJiAweDNmZmZmZmY7XG4gICAgfVxuXG4gICAgaWYgKGNhcnJ5ID09PSAwKSByZXR1cm4gdGhpcy5zdHJpcCgpO1xuXG4gICAgLy8gU3VidHJhY3Rpb24gb3ZlcmZsb3dcbiAgICBhc3NlcnQoY2FycnkgPT09IC0xKTtcbiAgICBjYXJyeSA9IDA7XG4gICAgZm9yIChpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHcgPSAtKHRoaXMud29yZHNbaV0gfCAwKSArIGNhcnJ5O1xuICAgICAgY2FycnkgPSB3ID4+IDI2O1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IHcgJiAweDNmZmZmZmY7XG4gICAgfVxuICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX3dvcmREaXYgPSBmdW5jdGlvbiBfd29yZERpdiAobnVtLCBtb2RlKSB7XG4gICAgdmFyIHNoaWZ0ID0gdGhpcy5sZW5ndGggLSBudW0ubGVuZ3RoO1xuXG4gICAgdmFyIGEgPSB0aGlzLmNsb25lKCk7XG4gICAgdmFyIGIgPSBudW07XG5cbiAgICAvLyBOb3JtYWxpemVcbiAgICB2YXIgYmhpID0gYi53b3Jkc1tiLmxlbmd0aCAtIDFdIHwgMDtcbiAgICB2YXIgYmhpQml0cyA9IHRoaXMuX2NvdW50Qml0cyhiaGkpO1xuICAgIHNoaWZ0ID0gMjYgLSBiaGlCaXRzO1xuICAgIGlmIChzaGlmdCAhPT0gMCkge1xuICAgICAgYiA9IGIudXNobG4oc2hpZnQpO1xuICAgICAgYS5pdXNobG4oc2hpZnQpO1xuICAgICAgYmhpID0gYi53b3Jkc1tiLmxlbmd0aCAtIDFdIHwgMDtcbiAgICB9XG5cbiAgICAvLyBJbml0aWFsaXplIHF1b3RpZW50XG4gICAgdmFyIG0gPSBhLmxlbmd0aCAtIGIubGVuZ3RoO1xuICAgIHZhciBxO1xuXG4gICAgaWYgKG1vZGUgIT09ICdtb2QnKSB7XG4gICAgICBxID0gbmV3IEJOKG51bGwpO1xuICAgICAgcS5sZW5ndGggPSBtICsgMTtcbiAgICAgIHEud29yZHMgPSBuZXcgQXJyYXkocS5sZW5ndGgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHEud29yZHNbaV0gPSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkaWZmID0gYS5jbG9uZSgpLl9pc2hsbnN1Ym11bChiLCAxLCBtKTtcbiAgICBpZiAoZGlmZi5uZWdhdGl2ZSA9PT0gMCkge1xuICAgICAgYSA9IGRpZmY7XG4gICAgICBpZiAocSkge1xuICAgICAgICBxLndvcmRzW21dID0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBqID0gbSAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgICB2YXIgcWogPSAoYS53b3Jkc1tiLmxlbmd0aCArIGpdIHwgMCkgKiAweDQwMDAwMDAgK1xuICAgICAgICAoYS53b3Jkc1tiLmxlbmd0aCArIGogLSAxXSB8IDApO1xuXG4gICAgICAvLyBOT1RFOiAocWogLyBiaGkpIGlzICgweDNmZmZmZmYgKiAweDQwMDAwMDAgKyAweDNmZmZmZmYpIC8gMHgyMDAwMDAwIG1heFxuICAgICAgLy8gKDB4N2ZmZmZmZilcbiAgICAgIHFqID0gTWF0aC5taW4oKHFqIC8gYmhpKSB8IDAsIDB4M2ZmZmZmZik7XG5cbiAgICAgIGEuX2lzaGxuc3VibXVsKGIsIHFqLCBqKTtcbiAgICAgIHdoaWxlIChhLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICAgIHFqLS07XG4gICAgICAgIGEubmVnYXRpdmUgPSAwO1xuICAgICAgICBhLl9pc2hsbnN1Ym11bChiLCAxLCBqKTtcbiAgICAgICAgaWYgKCFhLmlzWmVybygpKSB7XG4gICAgICAgICAgYS5uZWdhdGl2ZSBePSAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocSkge1xuICAgICAgICBxLndvcmRzW2pdID0gcWo7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChxKSB7XG4gICAgICBxLnN0cmlwKCk7XG4gICAgfVxuICAgIGEuc3RyaXAoKTtcblxuICAgIC8vIERlbm9ybWFsaXplXG4gICAgaWYgKG1vZGUgIT09ICdkaXYnICYmIHNoaWZ0ICE9PSAwKSB7XG4gICAgICBhLml1c2hybihzaGlmdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpdjogcSB8fCBudWxsLFxuICAgICAgbW9kOiBhXG4gICAgfTtcbiAgfTtcblxuICAvLyBOT1RFOiAxKSBgbW9kZWAgY2FuIGJlIHNldCB0byBgbW9kYCB0byByZXF1ZXN0IG1vZCBvbmx5LFxuICAvLyAgICAgICB0byBgZGl2YCB0byByZXF1ZXN0IGRpdiBvbmx5LCBvciBiZSBhYnNlbnQgdG9cbiAgLy8gICAgICAgcmVxdWVzdCBib3RoIGRpdiAmIG1vZFxuICAvLyAgICAgICAyKSBgcG9zaXRpdmVgIGlzIHRydWUgaWYgdW5zaWduZWQgbW9kIGlzIHJlcXVlc3RlZFxuICBCTi5wcm90b3R5cGUuZGl2bW9kID0gZnVuY3Rpb24gZGl2bW9kIChudW0sIG1vZGUsIHBvc2l0aXZlKSB7XG4gICAgYXNzZXJ0KCFudW0uaXNaZXJvKCkpO1xuXG4gICAgaWYgKHRoaXMuaXNaZXJvKCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRpdjogbmV3IEJOKDApLFxuICAgICAgICBtb2Q6IG5ldyBCTigwKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgZGl2LCBtb2QsIHJlcztcbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCAmJiBudW0ubmVnYXRpdmUgPT09IDApIHtcbiAgICAgIHJlcyA9IHRoaXMubmVnKCkuZGl2bW9kKG51bSwgbW9kZSk7XG5cbiAgICAgIGlmIChtb2RlICE9PSAnbW9kJykge1xuICAgICAgICBkaXYgPSByZXMuZGl2Lm5lZygpO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kZSAhPT0gJ2RpdicpIHtcbiAgICAgICAgbW9kID0gcmVzLm1vZC5uZWcoKTtcbiAgICAgICAgaWYgKHBvc2l0aXZlICYmIG1vZC5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgICAgIG1vZC5pYWRkKG51bSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiBkaXYsXG4gICAgICAgIG1vZDogbW9kXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5lZ2F0aXZlID09PSAwICYmIG51bS5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgcmVzID0gdGhpcy5kaXZtb2QobnVtLm5lZygpLCBtb2RlKTtcblxuICAgICAgaWYgKG1vZGUgIT09ICdtb2QnKSB7XG4gICAgICAgIGRpdiA9IHJlcy5kaXYubmVnKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRpdjogZGl2LFxuICAgICAgICBtb2Q6IHJlcy5tb2RcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLm5lZ2F0aXZlICYgbnVtLm5lZ2F0aXZlKSAhPT0gMCkge1xuICAgICAgcmVzID0gdGhpcy5uZWcoKS5kaXZtb2QobnVtLm5lZygpLCBtb2RlKTtcblxuICAgICAgaWYgKG1vZGUgIT09ICdkaXYnKSB7XG4gICAgICAgIG1vZCA9IHJlcy5tb2QubmVnKCk7XG4gICAgICAgIGlmIChwb3NpdGl2ZSAmJiBtb2QubmVnYXRpdmUgIT09IDApIHtcbiAgICAgICAgICBtb2QuaXN1YihudW0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRpdjogcmVzLmRpdixcbiAgICAgICAgbW9kOiBtb2RcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQm90aCBudW1iZXJzIGFyZSBwb3NpdGl2ZSBhdCB0aGlzIHBvaW50XG5cbiAgICAvLyBTdHJpcCBib3RoIG51bWJlcnMgdG8gYXBwcm94aW1hdGUgc2hpZnQgdmFsdWVcbiAgICBpZiAobnVtLmxlbmd0aCA+IHRoaXMubGVuZ3RoIHx8IHRoaXMuY21wKG51bSkgPCAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkaXY6IG5ldyBCTigwKSxcbiAgICAgICAgbW9kOiB0aGlzXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFZlcnkgc2hvcnQgcmVkdWN0aW9uXG4gICAgaWYgKG51bS5sZW5ndGggPT09IDEpIHtcbiAgICAgIGlmIChtb2RlID09PSAnZGl2Jykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRpdjogdGhpcy5kaXZuKG51bS53b3Jkc1swXSksXG4gICAgICAgICAgbW9kOiBudWxsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2RlID09PSAnbW9kJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRpdjogbnVsbCxcbiAgICAgICAgICBtb2Q6IG5ldyBCTih0aGlzLm1vZG4obnVtLndvcmRzWzBdKSlcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiB0aGlzLmRpdm4obnVtLndvcmRzWzBdKSxcbiAgICAgICAgbW9kOiBuZXcgQk4odGhpcy5tb2RuKG51bS53b3Jkc1swXSkpXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl93b3JkRGl2KG51bSwgbW9kZSk7XG4gIH07XG5cbiAgLy8gRmluZCBgdGhpc2AgLyBgbnVtYFxuICBCTi5wcm90b3R5cGUuZGl2ID0gZnVuY3Rpb24gZGl2IChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5kaXZtb2QobnVtLCAnZGl2JywgZmFsc2UpLmRpdjtcbiAgfTtcblxuICAvLyBGaW5kIGB0aGlzYCAlIGBudW1gXG4gIEJOLnByb3RvdHlwZS5tb2QgPSBmdW5jdGlvbiBtb2QgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmRpdm1vZChudW0sICdtb2QnLCBmYWxzZSkubW9kO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS51bW9kID0gZnVuY3Rpb24gdW1vZCAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuZGl2bW9kKG51bSwgJ21vZCcsIHRydWUpLm1vZDtcbiAgfTtcblxuICAvLyBGaW5kIFJvdW5kKGB0aGlzYCAvIGBudW1gKVxuICBCTi5wcm90b3R5cGUuZGl2Um91bmQgPSBmdW5jdGlvbiBkaXZSb3VuZCAobnVtKSB7XG4gICAgdmFyIGRtID0gdGhpcy5kaXZtb2QobnVtKTtcblxuICAgIC8vIEZhc3QgY2FzZSAtIGV4YWN0IGRpdmlzaW9uXG4gICAgaWYgKGRtLm1vZC5pc1plcm8oKSkgcmV0dXJuIGRtLmRpdjtcblxuICAgIHZhciBtb2QgPSBkbS5kaXYubmVnYXRpdmUgIT09IDAgPyBkbS5tb2QuaXN1YihudW0pIDogZG0ubW9kO1xuXG4gICAgdmFyIGhhbGYgPSBudW0udXNocm4oMSk7XG4gICAgdmFyIHIyID0gbnVtLmFuZGxuKDEpO1xuICAgIHZhciBjbXAgPSBtb2QuY21wKGhhbGYpO1xuXG4gICAgLy8gUm91bmQgZG93blxuICAgIGlmIChjbXAgPCAwIHx8IHIyID09PSAxICYmIGNtcCA9PT0gMCkgcmV0dXJuIGRtLmRpdjtcblxuICAgIC8vIFJvdW5kIHVwXG4gICAgcmV0dXJuIGRtLmRpdi5uZWdhdGl2ZSAhPT0gMCA/IGRtLmRpdi5pc3VibigxKSA6IGRtLmRpdi5pYWRkbigxKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUubW9kbiA9IGZ1bmN0aW9uIG1vZG4gKG51bSkge1xuICAgIGFzc2VydChudW0gPD0gMHgzZmZmZmZmKTtcbiAgICB2YXIgcCA9ICgxIDw8IDI2KSAlIG51bTtcblxuICAgIHZhciBhY2MgPSAwO1xuICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBhY2MgPSAocCAqIGFjYyArICh0aGlzLndvcmRzW2ldIHwgMCkpICUgbnVtO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH07XG5cbiAgLy8gSW4tcGxhY2UgZGl2aXNpb24gYnkgbnVtYmVyXG4gIEJOLnByb3RvdHlwZS5pZGl2biA9IGZ1bmN0aW9uIGlkaXZuIChudW0pIHtcbiAgICBhc3NlcnQobnVtIDw9IDB4M2ZmZmZmZik7XG5cbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgdyA9ICh0aGlzLndvcmRzW2ldIHwgMCkgKyBjYXJyeSAqIDB4NDAwMDAwMDtcbiAgICAgIHRoaXMud29yZHNbaV0gPSAodyAvIG51bSkgfCAwO1xuICAgICAgY2FycnkgPSB3ICUgbnVtO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmRpdm4gPSBmdW5jdGlvbiBkaXZuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmVnY2QgPSBmdW5jdGlvbiBlZ2NkIChwKSB7XG4gICAgYXNzZXJ0KHAubmVnYXRpdmUgPT09IDApO1xuICAgIGFzc2VydCghcC5pc1plcm8oKSk7XG5cbiAgICB2YXIgeCA9IHRoaXM7XG4gICAgdmFyIHkgPSBwLmNsb25lKCk7XG5cbiAgICBpZiAoeC5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgeCA9IHgudW1vZChwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgeCA9IHguY2xvbmUoKTtcbiAgICB9XG5cbiAgICAvLyBBICogeCArIEIgKiB5ID0geFxuICAgIHZhciBBID0gbmV3IEJOKDEpO1xuICAgIHZhciBCID0gbmV3IEJOKDApO1xuXG4gICAgLy8gQyAqIHggKyBEICogeSA9IHlcbiAgICB2YXIgQyA9IG5ldyBCTigwKTtcbiAgICB2YXIgRCA9IG5ldyBCTigxKTtcblxuICAgIHZhciBnID0gMDtcblxuICAgIHdoaWxlICh4LmlzRXZlbigpICYmIHkuaXNFdmVuKCkpIHtcbiAgICAgIHguaXVzaHJuKDEpO1xuICAgICAgeS5pdXNocm4oMSk7XG4gICAgICArK2c7XG4gICAgfVxuXG4gICAgdmFyIHlwID0geS5jbG9uZSgpO1xuICAgIHZhciB4cCA9IHguY2xvbmUoKTtcblxuICAgIHdoaWxlICgheC5pc1plcm8oKSkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGltID0gMTsgKHgud29yZHNbMF0gJiBpbSkgPT09IDAgJiYgaSA8IDI2OyArK2ksIGltIDw8PSAxKTtcbiAgICAgIGlmIChpID4gMCkge1xuICAgICAgICB4Lml1c2hybihpKTtcbiAgICAgICAgd2hpbGUgKGktLSA+IDApIHtcbiAgICAgICAgICBpZiAoQS5pc09kZCgpIHx8IEIuaXNPZGQoKSkge1xuICAgICAgICAgICAgQS5pYWRkKHlwKTtcbiAgICAgICAgICAgIEIuaXN1Yih4cCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQS5pdXNocm4oMSk7XG4gICAgICAgICAgQi5pdXNocm4oMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaiA9IDAsIGptID0gMTsgKHkud29yZHNbMF0gJiBqbSkgPT09IDAgJiYgaiA8IDI2OyArK2osIGptIDw8PSAxKTtcbiAgICAgIGlmIChqID4gMCkge1xuICAgICAgICB5Lml1c2hybihqKTtcbiAgICAgICAgd2hpbGUgKGotLSA+IDApIHtcbiAgICAgICAgICBpZiAoQy5pc09kZCgpIHx8IEQuaXNPZGQoKSkge1xuICAgICAgICAgICAgQy5pYWRkKHlwKTtcbiAgICAgICAgICAgIEQuaXN1Yih4cCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQy5pdXNocm4oMSk7XG4gICAgICAgICAgRC5pdXNocm4oMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHguY21wKHkpID49IDApIHtcbiAgICAgICAgeC5pc3ViKHkpO1xuICAgICAgICBBLmlzdWIoQyk7XG4gICAgICAgIEIuaXN1YihEKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHkuaXN1Yih4KTtcbiAgICAgICAgQy5pc3ViKEEpO1xuICAgICAgICBELmlzdWIoQik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGE6IEMsXG4gICAgICBiOiBELFxuICAgICAgZ2NkOiB5Lml1c2hsbihnKVxuICAgIH07XG4gIH07XG5cbiAgLy8gVGhpcyBpcyByZWR1Y2VkIGluY2FybmF0aW9uIG9mIHRoZSBiaW5hcnkgRUVBXG4gIC8vIGFib3ZlLCBkZXNpZ25hdGVkIHRvIGludmVydCBtZW1iZXJzIG9mIHRoZVxuICAvLyBfcHJpbWVfIGZpZWxkcyBGKHApIGF0IGEgbWF4aW1hbCBzcGVlZFxuICBCTi5wcm90b3R5cGUuX2ludm1wID0gZnVuY3Rpb24gX2ludm1wIChwKSB7XG4gICAgYXNzZXJ0KHAubmVnYXRpdmUgPT09IDApO1xuICAgIGFzc2VydCghcC5pc1plcm8oKSk7XG5cbiAgICB2YXIgYSA9IHRoaXM7XG4gICAgdmFyIGIgPSBwLmNsb25lKCk7XG5cbiAgICBpZiAoYS5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgYSA9IGEudW1vZChwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYSA9IGEuY2xvbmUoKTtcbiAgICB9XG5cbiAgICB2YXIgeDEgPSBuZXcgQk4oMSk7XG4gICAgdmFyIHgyID0gbmV3IEJOKDApO1xuXG4gICAgdmFyIGRlbHRhID0gYi5jbG9uZSgpO1xuXG4gICAgd2hpbGUgKGEuY21wbigxKSA+IDAgJiYgYi5jbXBuKDEpID4gMCkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGltID0gMTsgKGEud29yZHNbMF0gJiBpbSkgPT09IDAgJiYgaSA8IDI2OyArK2ksIGltIDw8PSAxKTtcbiAgICAgIGlmIChpID4gMCkge1xuICAgICAgICBhLml1c2hybihpKTtcbiAgICAgICAgd2hpbGUgKGktLSA+IDApIHtcbiAgICAgICAgICBpZiAoeDEuaXNPZGQoKSkge1xuICAgICAgICAgICAgeDEuaWFkZChkZWx0YSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgeDEuaXVzaHJuKDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAodmFyIGogPSAwLCBqbSA9IDE7IChiLndvcmRzWzBdICYgam0pID09PSAwICYmIGogPCAyNjsgKytqLCBqbSA8PD0gMSk7XG4gICAgICBpZiAoaiA+IDApIHtcbiAgICAgICAgYi5pdXNocm4oaik7XG4gICAgICAgIHdoaWxlIChqLS0gPiAwKSB7XG4gICAgICAgICAgaWYgKHgyLmlzT2RkKCkpIHtcbiAgICAgICAgICAgIHgyLmlhZGQoZGVsdGEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHgyLml1c2hybigxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYS5jbXAoYikgPj0gMCkge1xuICAgICAgICBhLmlzdWIoYik7XG4gICAgICAgIHgxLmlzdWIoeDIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYi5pc3ViKGEpO1xuICAgICAgICB4Mi5pc3ViKHgxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcmVzO1xuICAgIGlmIChhLmNtcG4oMSkgPT09IDApIHtcbiAgICAgIHJlcyA9IHgxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSB4MjtcbiAgICB9XG5cbiAgICBpZiAocmVzLmNtcG4oMCkgPCAwKSB7XG4gICAgICByZXMuaWFkZChwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5nY2QgPSBmdW5jdGlvbiBnY2QgKG51bSkge1xuICAgIGlmICh0aGlzLmlzWmVybygpKSByZXR1cm4gbnVtLmFicygpO1xuICAgIGlmIChudW0uaXNaZXJvKCkpIHJldHVybiB0aGlzLmFicygpO1xuXG4gICAgdmFyIGEgPSB0aGlzLmNsb25lKCk7XG4gICAgdmFyIGIgPSBudW0uY2xvbmUoKTtcbiAgICBhLm5lZ2F0aXZlID0gMDtcbiAgICBiLm5lZ2F0aXZlID0gMDtcblxuICAgIC8vIFJlbW92ZSBjb21tb24gZmFjdG9yIG9mIHR3b1xuICAgIGZvciAodmFyIHNoaWZ0ID0gMDsgYS5pc0V2ZW4oKSAmJiBiLmlzRXZlbigpOyBzaGlmdCsrKSB7XG4gICAgICBhLml1c2hybigxKTtcbiAgICAgIGIuaXVzaHJuKDEpO1xuICAgIH1cblxuICAgIGRvIHtcbiAgICAgIHdoaWxlIChhLmlzRXZlbigpKSB7XG4gICAgICAgIGEuaXVzaHJuKDEpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKGIuaXNFdmVuKCkpIHtcbiAgICAgICAgYi5pdXNocm4oMSk7XG4gICAgICB9XG5cbiAgICAgIHZhciByID0gYS5jbXAoYik7XG4gICAgICBpZiAociA8IDApIHtcbiAgICAgICAgLy8gU3dhcCBgYWAgYW5kIGBiYCB0byBtYWtlIGBhYCBhbHdheXMgYmlnZ2VyIHRoYW4gYGJgXG4gICAgICAgIHZhciB0ID0gYTtcbiAgICAgICAgYSA9IGI7XG4gICAgICAgIGIgPSB0O1xuICAgICAgfSBlbHNlIGlmIChyID09PSAwIHx8IGIuY21wbigxKSA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgYS5pc3ViKGIpO1xuICAgIH0gd2hpbGUgKHRydWUpO1xuXG4gICAgcmV0dXJuIGIuaXVzaGxuKHNoaWZ0KTtcbiAgfTtcblxuICAvLyBJbnZlcnQgbnVtYmVyIGluIHRoZSBmaWVsZCBGKG51bSlcbiAgQk4ucHJvdG90eXBlLmludm0gPSBmdW5jdGlvbiBpbnZtIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5lZ2NkKG51bSkuYS51bW9kKG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlzRXZlbiA9IGZ1bmN0aW9uIGlzRXZlbiAoKSB7XG4gICAgcmV0dXJuICh0aGlzLndvcmRzWzBdICYgMSkgPT09IDA7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlzT2RkID0gZnVuY3Rpb24gaXNPZGQgKCkge1xuICAgIHJldHVybiAodGhpcy53b3Jkc1swXSAmIDEpID09PSAxO1xuICB9O1xuXG4gIC8vIEFuZCBmaXJzdCB3b3JkIGFuZCBudW1cbiAgQk4ucHJvdG90eXBlLmFuZGxuID0gZnVuY3Rpb24gYW5kbG4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLndvcmRzWzBdICYgbnVtO1xuICB9O1xuXG4gIC8vIEluY3JlbWVudCBhdCB0aGUgYml0IHBvc2l0aW9uIGluLWxpbmVcbiAgQk4ucHJvdG90eXBlLmJpbmNuID0gZnVuY3Rpb24gYmluY24gKGJpdCkge1xuICAgIGFzc2VydCh0eXBlb2YgYml0ID09PSAnbnVtYmVyJyk7XG4gICAgdmFyIHIgPSBiaXQgJSAyNjtcbiAgICB2YXIgcyA9IChiaXQgLSByKSAvIDI2O1xuICAgIHZhciBxID0gMSA8PCByO1xuXG4gICAgLy8gRmFzdCBjYXNlOiBiaXQgaXMgbXVjaCBoaWdoZXIgdGhhbiBhbGwgZXhpc3Rpbmcgd29yZHNcbiAgICBpZiAodGhpcy5sZW5ndGggPD0gcykge1xuICAgICAgdGhpcy5fZXhwYW5kKHMgKyAxKTtcbiAgICAgIHRoaXMud29yZHNbc10gfD0gcTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIEFkZCBiaXQgYW5kIHByb3BhZ2F0ZSwgaWYgbmVlZGVkXG4gICAgdmFyIGNhcnJ5ID0gcTtcbiAgICBmb3IgKHZhciBpID0gczsgY2FycnkgIT09IDAgJiYgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB3ID0gdGhpcy53b3Jkc1tpXSB8IDA7XG4gICAgICB3ICs9IGNhcnJ5O1xuICAgICAgY2FycnkgPSB3ID4+PiAyNjtcbiAgICAgIHcgJj0gMHgzZmZmZmZmO1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IHc7XG4gICAgfVxuICAgIGlmIChjYXJyeSAhPT0gMCkge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IGNhcnJ5O1xuICAgICAgdGhpcy5sZW5ndGgrKztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlzWmVybyA9IGZ1bmN0aW9uIGlzWmVybyAoKSB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXMud29yZHNbMF0gPT09IDA7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmNtcG4gPSBmdW5jdGlvbiBjbXBuIChudW0pIHtcbiAgICB2YXIgbmVnYXRpdmUgPSBudW0gPCAwO1xuXG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDAgJiYgIW5lZ2F0aXZlKSByZXR1cm4gLTE7XG4gICAgaWYgKHRoaXMubmVnYXRpdmUgPT09IDAgJiYgbmVnYXRpdmUpIHJldHVybiAxO1xuXG4gICAgdGhpcy5zdHJpcCgpO1xuXG4gICAgdmFyIHJlcztcbiAgICBpZiAodGhpcy5sZW5ndGggPiAxKSB7XG4gICAgICByZXMgPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmVnYXRpdmUpIHtcbiAgICAgICAgbnVtID0gLW51bTtcbiAgICAgIH1cblxuICAgICAgYXNzZXJ0KG51bSA8PSAweDNmZmZmZmYsICdOdW1iZXIgaXMgdG9vIGJpZycpO1xuXG4gICAgICB2YXIgdyA9IHRoaXMud29yZHNbMF0gfCAwO1xuICAgICAgcmVzID0gdyA9PT0gbnVtID8gMCA6IHcgPCBudW0gPyAtMSA6IDE7XG4gICAgfVxuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwKSByZXR1cm4gLXJlcyB8IDA7XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICAvLyBDb21wYXJlIHR3byBudW1iZXJzIGFuZCByZXR1cm46XG4gIC8vIDEgLSBpZiBgdGhpc2AgPiBgbnVtYFxuICAvLyAwIC0gaWYgYHRoaXNgID09IGBudW1gXG4gIC8vIC0xIC0gaWYgYHRoaXNgIDwgYG51bWBcbiAgQk4ucHJvdG90eXBlLmNtcCA9IGZ1bmN0aW9uIGNtcCAobnVtKSB7XG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDAgJiYgbnVtLm5lZ2F0aXZlID09PSAwKSByZXR1cm4gLTE7XG4gICAgaWYgKHRoaXMubmVnYXRpdmUgPT09IDAgJiYgbnVtLm5lZ2F0aXZlICE9PSAwKSByZXR1cm4gMTtcblxuICAgIHZhciByZXMgPSB0aGlzLnVjbXAobnVtKTtcbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkgcmV0dXJuIC1yZXMgfCAwO1xuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgLy8gVW5zaWduZWQgY29tcGFyaXNvblxuICBCTi5wcm90b3R5cGUudWNtcCA9IGZ1bmN0aW9uIHVjbXAgKG51bSkge1xuICAgIC8vIEF0IHRoaXMgcG9pbnQgYm90aCBudW1iZXJzIGhhdmUgdGhlIHNhbWUgc2lnblxuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHJldHVybiAxO1xuICAgIGlmICh0aGlzLmxlbmd0aCA8IG51bS5sZW5ndGgpIHJldHVybiAtMTtcblxuICAgIHZhciByZXMgPSAwO1xuICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgYSA9IHRoaXMud29yZHNbaV0gfCAwO1xuICAgICAgdmFyIGIgPSBudW0ud29yZHNbaV0gfCAwO1xuXG4gICAgICBpZiAoYSA9PT0gYikgY29udGludWU7XG4gICAgICBpZiAoYSA8IGIpIHtcbiAgICAgICAgcmVzID0gLTE7XG4gICAgICB9IGVsc2UgaWYgKGEgPiBiKSB7XG4gICAgICAgIHJlcyA9IDE7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZ3RuID0gZnVuY3Rpb24gZ3RuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXBuKG51bSkgPT09IDE7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmd0ID0gZnVuY3Rpb24gZ3QgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcChudW0pID09PSAxO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5ndGVuID0gZnVuY3Rpb24gZ3RlbiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wbihudW0pID49IDA7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmd0ZSA9IGZ1bmN0aW9uIGd0ZSAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wKG51bSkgPj0gMDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUubHRuID0gZnVuY3Rpb24gbHRuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXBuKG51bSkgPT09IC0xO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5sdCA9IGZ1bmN0aW9uIGx0IChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXAobnVtKSA9PT0gLTE7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmx0ZW4gPSBmdW5jdGlvbiBsdGVuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXBuKG51bSkgPD0gMDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUubHRlID0gZnVuY3Rpb24gbHRlIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXAobnVtKSA8PSAwO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5lcW4gPSBmdW5jdGlvbiBlcW4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcG4obnVtKSA9PT0gMDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZXEgPSBmdW5jdGlvbiBlcSAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wKG51bSkgPT09IDA7XG4gIH07XG5cbiAgLy9cbiAgLy8gQSByZWR1Y2UgY29udGV4dCwgY291bGQgYmUgdXNpbmcgbW9udGdvbWVyeSBvciBzb21ldGhpbmcgYmV0dGVyLCBkZXBlbmRpbmdcbiAgLy8gb24gdGhlIGBtYCBpdHNlbGYuXG4gIC8vXG4gIEJOLnJlZCA9IGZ1bmN0aW9uIHJlZCAobnVtKSB7XG4gICAgcmV0dXJuIG5ldyBSZWQobnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudG9SZWQgPSBmdW5jdGlvbiB0b1JlZCAoY3R4KSB7XG4gICAgYXNzZXJ0KCF0aGlzLnJlZCwgJ0FscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQnKTtcbiAgICBhc3NlcnQodGhpcy5uZWdhdGl2ZSA9PT0gMCwgJ3JlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzJyk7XG4gICAgcmV0dXJuIGN0eC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGN0eCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmZyb21SZWQgPSBmdW5jdGlvbiBmcm9tUmVkICgpIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0Jyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5fZm9yY2VSZWQgPSBmdW5jdGlvbiBfZm9yY2VSZWQgKGN0eCkge1xuICAgIHRoaXMucmVkID0gY3R4O1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5mb3JjZVJlZCA9IGZ1bmN0aW9uIGZvcmNlUmVkIChjdHgpIHtcbiAgICBhc3NlcnQoIXRoaXMucmVkLCAnQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCcpO1xuICAgIHJldHVybiB0aGlzLl9mb3JjZVJlZChjdHgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRBZGQgPSBmdW5jdGlvbiByZWRBZGQgKG51bSkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuYWRkKHRoaXMsIG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZElBZGQgPSBmdW5jdGlvbiByZWRJQWRkIChudW0pIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHJldHVybiB0aGlzLnJlZC5pYWRkKHRoaXMsIG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZFN1YiA9IGZ1bmN0aW9uIHJlZFN1YiAobnVtKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHJldHVybiB0aGlzLnJlZC5zdWIodGhpcywgbnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkSVN1YiA9IGZ1bmN0aW9uIHJlZElTdWIgKG51bSkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLmlzdWIodGhpcywgbnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkU2hsID0gZnVuY3Rpb24gcmVkU2hsIChudW0pIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLnNobCh0aGlzLCBudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRNdWwgPSBmdW5jdGlvbiByZWRNdWwgKG51bSkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICB0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLCBudW0pO1xuICAgIHJldHVybiB0aGlzLnJlZC5tdWwodGhpcywgbnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkSU11bCA9IGZ1bmN0aW9uIHJlZElNdWwgKG51bSkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICB0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLCBudW0pO1xuICAgIHJldHVybiB0aGlzLnJlZC5pbXVsKHRoaXMsIG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZFNxciA9IGZ1bmN0aW9uIHJlZFNxciAoKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnJlZC5zcXIodGhpcyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZElTcXIgPSBmdW5jdGlvbiByZWRJU3FyICgpIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnJlZC5pc3FyKHRoaXMpO1xuICB9O1xuXG4gIC8vIFNxdWFyZSByb290IG92ZXIgcFxuICBCTi5wcm90b3R5cGUucmVkU3FydCA9IGZ1bmN0aW9uIHJlZFNxcnQgKCkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLnNxcnQodGhpcyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZEludm0gPSBmdW5jdGlvbiByZWRJbnZtICgpIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnJlZC5pbnZtKHRoaXMpO1xuICB9O1xuXG4gIC8vIFJldHVybiBuZWdhdGl2ZSBjbG9uZSBvZiBgdGhpc2AgJSBgcmVkIG1vZHVsb2BcbiAgQk4ucHJvdG90eXBlLnJlZE5lZyA9IGZ1bmN0aW9uIHJlZE5lZyAoKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnJlZC5uZWcodGhpcyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZFBvdyA9IGZ1bmN0aW9uIHJlZFBvdyAobnVtKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkICYmICFudW0ucmVkLCAncmVkUG93KG5vcm1hbE51bSknKTtcbiAgICB0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5yZWQucG93KHRoaXMsIG51bSk7XG4gIH07XG5cbiAgLy8gUHJpbWUgbnVtYmVycyB3aXRoIGVmZmljaWVudCByZWR1Y3Rpb25cbiAgdmFyIHByaW1lcyA9IHtcbiAgICBrMjU2OiBudWxsLFxuICAgIHAyMjQ6IG51bGwsXG4gICAgcDE5MjogbnVsbCxcbiAgICBwMjU1MTk6IG51bGxcbiAgfTtcblxuICAvLyBQc2V1ZG8tTWVyc2VubmUgcHJpbWVcbiAgZnVuY3Rpb24gTVByaW1lIChuYW1lLCBwKSB7XG4gICAgLy8gUCA9IDIgXiBOIC0gS1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5wID0gbmV3IEJOKHAsIDE2KTtcbiAgICB0aGlzLm4gPSB0aGlzLnAuYml0TGVuZ3RoKCk7XG4gICAgdGhpcy5rID0gbmV3IEJOKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKTtcblxuICAgIHRoaXMudG1wID0gdGhpcy5fdG1wKCk7XG4gIH1cblxuICBNUHJpbWUucHJvdG90eXBlLl90bXAgPSBmdW5jdGlvbiBfdG1wICgpIHtcbiAgICB2YXIgdG1wID0gbmV3IEJOKG51bGwpO1xuICAgIHRtcC53b3JkcyA9IG5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uIC8gMTMpKTtcbiAgICByZXR1cm4gdG1wO1xuICB9O1xuXG4gIE1QcmltZS5wcm90b3R5cGUuaXJlZHVjZSA9IGZ1bmN0aW9uIGlyZWR1Y2UgKG51bSkge1xuICAgIC8vIEFzc3VtZXMgdGhhdCBgbnVtYCBpcyBsZXNzIHRoYW4gYFBeMmBcbiAgICAvLyBudW0gPSBISSAqICgyIF4gTiAtIEspICsgSEkgKiBLICsgTE8gPSBISSAqIEsgKyBMTyAobW9kIFApXG4gICAgdmFyIHIgPSBudW07XG4gICAgdmFyIHJsZW47XG5cbiAgICBkbyB7XG4gICAgICB0aGlzLnNwbGl0KHIsIHRoaXMudG1wKTtcbiAgICAgIHIgPSB0aGlzLmltdWxLKHIpO1xuICAgICAgciA9IHIuaWFkZCh0aGlzLnRtcCk7XG4gICAgICBybGVuID0gci5iaXRMZW5ndGgoKTtcbiAgICB9IHdoaWxlIChybGVuID4gdGhpcy5uKTtcblxuICAgIHZhciBjbXAgPSBybGVuIDwgdGhpcy5uID8gLTEgOiByLnVjbXAodGhpcy5wKTtcbiAgICBpZiAoY21wID09PSAwKSB7XG4gICAgICByLndvcmRzWzBdID0gMDtcbiAgICAgIHIubGVuZ3RoID0gMTtcbiAgICB9IGVsc2UgaWYgKGNtcCA+IDApIHtcbiAgICAgIHIuaXN1Yih0aGlzLnApO1xuICAgIH0gZWxzZSB7XG4gICAgICByLnN0cmlwKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHI7XG4gIH07XG5cbiAgTVByaW1lLnByb3RvdHlwZS5zcGxpdCA9IGZ1bmN0aW9uIHNwbGl0IChpbnB1dCwgb3V0KSB7XG4gICAgaW5wdXQuaXVzaHJuKHRoaXMubiwgMCwgb3V0KTtcbiAgfTtcblxuICBNUHJpbWUucHJvdG90eXBlLmltdWxLID0gZnVuY3Rpb24gaW11bEsgKG51bSkge1xuICAgIHJldHVybiBudW0uaW11bCh0aGlzLmspO1xuICB9O1xuXG4gIGZ1bmN0aW9uIEsyNTYgKCkge1xuICAgIE1QcmltZS5jYWxsKFxuICAgICAgdGhpcyxcbiAgICAgICdrMjU2JyxcbiAgICAgICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZicpO1xuICB9XG4gIGluaGVyaXRzKEsyNTYsIE1QcmltZSk7XG5cbiAgSzI1Ni5wcm90b3R5cGUuc3BsaXQgPSBmdW5jdGlvbiBzcGxpdCAoaW5wdXQsIG91dHB1dCkge1xuICAgIC8vIDI1NiA9IDkgKiAyNiArIDIyXG4gICAgdmFyIG1hc2sgPSAweDNmZmZmZjtcblxuICAgIHZhciBvdXRMZW4gPSBNYXRoLm1pbihpbnB1dC5sZW5ndGgsIDkpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3V0TGVuOyBpKyspIHtcbiAgICAgIG91dHB1dC53b3Jkc1tpXSA9IGlucHV0LndvcmRzW2ldO1xuICAgIH1cbiAgICBvdXRwdXQubGVuZ3RoID0gb3V0TGVuO1xuXG4gICAgaWYgKGlucHV0Lmxlbmd0aCA8PSA5KSB7XG4gICAgICBpbnB1dC53b3Jkc1swXSA9IDA7XG4gICAgICBpbnB1dC5sZW5ndGggPSAxO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNoaWZ0IGJ5IDkgbGltYnNcbiAgICB2YXIgcHJldiA9IGlucHV0LndvcmRzWzldO1xuICAgIG91dHB1dC53b3Jkc1tvdXRwdXQubGVuZ3RoKytdID0gcHJldiAmIG1hc2s7XG5cbiAgICBmb3IgKGkgPSAxMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbmV4dCA9IGlucHV0LndvcmRzW2ldIHwgMDtcbiAgICAgIGlucHV0LndvcmRzW2kgLSAxMF0gPSAoKG5leHQgJiBtYXNrKSA8PCA0KSB8IChwcmV2ID4+PiAyMik7XG4gICAgICBwcmV2ID0gbmV4dDtcbiAgICB9XG4gICAgcHJldiA+Pj49IDIyO1xuICAgIGlucHV0LndvcmRzW2kgLSAxMF0gPSBwcmV2O1xuICAgIGlmIChwcmV2ID09PSAwICYmIGlucHV0Lmxlbmd0aCA+IDEwKSB7XG4gICAgICBpbnB1dC5sZW5ndGggLT0gMTA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0Lmxlbmd0aCAtPSA5O1xuICAgIH1cbiAgfTtcblxuICBLMjU2LnByb3RvdHlwZS5pbXVsSyA9IGZ1bmN0aW9uIGltdWxLIChudW0pIHtcbiAgICAvLyBLID0gMHgxMDAwMDAzZDEgPSBbIDB4NDAsIDB4M2QxIF1cbiAgICBudW0ud29yZHNbbnVtLmxlbmd0aF0gPSAwO1xuICAgIG51bS53b3Jkc1tudW0ubGVuZ3RoICsgMV0gPSAwO1xuICAgIG51bS5sZW5ndGggKz0gMjtcblxuICAgIC8vIGJvdW5kZWQgYXQ6IDB4NDAgKiAweDNmZmZmZmYgKyAweDNkMCA9IDB4MTAwMDAwMzkwXG4gICAgdmFyIGxvID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHcgPSBudW0ud29yZHNbaV0gfCAwO1xuICAgICAgbG8gKz0gdyAqIDB4M2QxO1xuICAgICAgbnVtLndvcmRzW2ldID0gbG8gJiAweDNmZmZmZmY7XG4gICAgICBsbyA9IHcgKiAweDQwICsgKChsbyAvIDB4NDAwMDAwMCkgfCAwKTtcbiAgICB9XG5cbiAgICAvLyBGYXN0IGxlbmd0aCByZWR1Y3Rpb25cbiAgICBpZiAobnVtLndvcmRzW251bS5sZW5ndGggLSAxXSA9PT0gMCkge1xuICAgICAgbnVtLmxlbmd0aC0tO1xuICAgICAgaWYgKG51bS53b3Jkc1tudW0ubGVuZ3RoIC0gMV0gPT09IDApIHtcbiAgICAgICAgbnVtLmxlbmd0aC0tO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVtO1xuICB9O1xuXG4gIGZ1bmN0aW9uIFAyMjQgKCkge1xuICAgIE1QcmltZS5jYWxsKFxuICAgICAgdGhpcyxcbiAgICAgICdwMjI0JyxcbiAgICAgICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMScpO1xuICB9XG4gIGluaGVyaXRzKFAyMjQsIE1QcmltZSk7XG5cbiAgZnVuY3Rpb24gUDE5MiAoKSB7XG4gICAgTVByaW1lLmNhbGwoXG4gICAgICB0aGlzLFxuICAgICAgJ3AxOTInLFxuICAgICAgJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmJyk7XG4gIH1cbiAgaW5oZXJpdHMoUDE5MiwgTVByaW1lKTtcblxuICBmdW5jdGlvbiBQMjU1MTkgKCkge1xuICAgIC8vIDIgXiAyNTUgLSAxOVxuICAgIE1QcmltZS5jYWxsKFxuICAgICAgdGhpcyxcbiAgICAgICcyNTUxOScsXG4gICAgICAnN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCcpO1xuICB9XG4gIGluaGVyaXRzKFAyNTUxOSwgTVByaW1lKTtcblxuICBQMjU1MTkucHJvdG90eXBlLmltdWxLID0gZnVuY3Rpb24gaW11bEsgKG51bSkge1xuICAgIC8vIEsgPSAweDEzXG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGhpID0gKG51bS53b3Jkc1tpXSB8IDApICogMHgxMyArIGNhcnJ5O1xuICAgICAgdmFyIGxvID0gaGkgJiAweDNmZmZmZmY7XG4gICAgICBoaSA+Pj49IDI2O1xuXG4gICAgICBudW0ud29yZHNbaV0gPSBsbztcbiAgICAgIGNhcnJ5ID0gaGk7XG4gICAgfVxuICAgIGlmIChjYXJyeSAhPT0gMCkge1xuICAgICAgbnVtLndvcmRzW251bS5sZW5ndGgrK10gPSBjYXJyeTtcbiAgICB9XG4gICAgcmV0dXJuIG51bTtcbiAgfTtcblxuICAvLyBFeHBvcnRlZCBtb3N0bHkgZm9yIHRlc3RpbmcgcHVycG9zZXMsIHVzZSBwbGFpbiBuYW1lIGluc3RlYWRcbiAgQk4uX3ByaW1lID0gZnVuY3Rpb24gcHJpbWUgKG5hbWUpIHtcbiAgICAvLyBDYWNoZWQgdmVyc2lvbiBvZiBwcmltZVxuICAgIGlmIChwcmltZXNbbmFtZV0pIHJldHVybiBwcmltZXNbbmFtZV07XG5cbiAgICB2YXIgcHJpbWU7XG4gICAgaWYgKG5hbWUgPT09ICdrMjU2Jykge1xuICAgICAgcHJpbWUgPSBuZXcgSzI1NigpO1xuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3AyMjQnKSB7XG4gICAgICBwcmltZSA9IG5ldyBQMjI0KCk7XG4gICAgfSBlbHNlIGlmIChuYW1lID09PSAncDE5MicpIHtcbiAgICAgIHByaW1lID0gbmV3IFAxOTIoKTtcbiAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdwMjU1MTknKSB7XG4gICAgICBwcmltZSA9IG5ldyBQMjU1MTkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHByaW1lICcgKyBuYW1lKTtcbiAgICB9XG4gICAgcHJpbWVzW25hbWVdID0gcHJpbWU7XG5cbiAgICByZXR1cm4gcHJpbWU7XG4gIH07XG5cbiAgLy9cbiAgLy8gQmFzZSByZWR1Y3Rpb24gZW5naW5lXG4gIC8vXG4gIGZ1bmN0aW9uIFJlZCAobSkge1xuICAgIGlmICh0eXBlb2YgbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBwcmltZSA9IEJOLl9wcmltZShtKTtcbiAgICAgIHRoaXMubSA9IHByaW1lLnA7XG4gICAgICB0aGlzLnByaW1lID0gcHJpbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2VydChtLmd0bigxKSwgJ21vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMScpO1xuICAgICAgdGhpcy5tID0gbTtcbiAgICAgIHRoaXMucHJpbWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIFJlZC5wcm90b3R5cGUuX3ZlcmlmeTEgPSBmdW5jdGlvbiBfdmVyaWZ5MSAoYSkge1xuICAgIGFzc2VydChhLm5lZ2F0aXZlID09PSAwLCAncmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMnKTtcbiAgICBhc3NlcnQoYS5yZWQsICdyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5fdmVyaWZ5MiA9IGZ1bmN0aW9uIF92ZXJpZnkyIChhLCBiKSB7XG4gICAgYXNzZXJ0KChhLm5lZ2F0aXZlIHwgYi5uZWdhdGl2ZSkgPT09IDAsICdyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcycpO1xuICAgIGFzc2VydChhLnJlZCAmJiBhLnJlZCA9PT0gYi5yZWQsXG4gICAgICAncmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuaW1vZCA9IGZ1bmN0aW9uIGltb2QgKGEpIHtcbiAgICBpZiAodGhpcy5wcmltZSkgcmV0dXJuIHRoaXMucHJpbWUuaXJlZHVjZShhKS5fZm9yY2VSZWQodGhpcyk7XG4gICAgcmV0dXJuIGEudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLm5lZyA9IGZ1bmN0aW9uIG5lZyAoYSkge1xuICAgIGlmIChhLmlzWmVybygpKSB7XG4gICAgICByZXR1cm4gYS5jbG9uZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm0uc3ViKGEpLl9mb3JjZVJlZCh0aGlzKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIGFkZCAoYSwgYikge1xuICAgIHRoaXMuX3ZlcmlmeTIoYSwgYik7XG5cbiAgICB2YXIgcmVzID0gYS5hZGQoYik7XG4gICAgaWYgKHJlcy5jbXAodGhpcy5tKSA+PSAwKSB7XG4gICAgICByZXMuaXN1Yih0aGlzLm0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLl9mb3JjZVJlZCh0aGlzKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmlhZGQgPSBmdW5jdGlvbiBpYWRkIChhLCBiKSB7XG4gICAgdGhpcy5fdmVyaWZ5MihhLCBiKTtcblxuICAgIHZhciByZXMgPSBhLmlhZGQoYik7XG4gICAgaWYgKHJlcy5jbXAodGhpcy5tKSA+PSAwKSB7XG4gICAgICByZXMuaXN1Yih0aGlzLm0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuc3ViID0gZnVuY3Rpb24gc3ViIChhLCBiKSB7XG4gICAgdGhpcy5fdmVyaWZ5MihhLCBiKTtcblxuICAgIHZhciByZXMgPSBhLnN1YihiKTtcbiAgICBpZiAocmVzLmNtcG4oMCkgPCAwKSB7XG4gICAgICByZXMuaWFkZCh0aGlzLm0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLl9mb3JjZVJlZCh0aGlzKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmlzdWIgPSBmdW5jdGlvbiBpc3ViIChhLCBiKSB7XG4gICAgdGhpcy5fdmVyaWZ5MihhLCBiKTtcblxuICAgIHZhciByZXMgPSBhLmlzdWIoYik7XG4gICAgaWYgKHJlcy5jbXBuKDApIDwgMCkge1xuICAgICAgcmVzLmlhZGQodGhpcy5tKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLnNobCA9IGZ1bmN0aW9uIHNobCAoYSwgbnVtKSB7XG4gICAgdGhpcy5fdmVyaWZ5MShhKTtcbiAgICByZXR1cm4gdGhpcy5pbW9kKGEudXNobG4obnVtKSk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5pbXVsID0gZnVuY3Rpb24gaW11bCAoYSwgYikge1xuICAgIHRoaXMuX3ZlcmlmeTIoYSwgYik7XG4gICAgcmV0dXJuIHRoaXMuaW1vZChhLmltdWwoYikpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUubXVsID0gZnVuY3Rpb24gbXVsIChhLCBiKSB7XG4gICAgdGhpcy5fdmVyaWZ5MihhLCBiKTtcbiAgICByZXR1cm4gdGhpcy5pbW9kKGEubXVsKGIpKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmlzcXIgPSBmdW5jdGlvbiBpc3FyIChhKSB7XG4gICAgcmV0dXJuIHRoaXMuaW11bChhLCBhLmNsb25lKCkpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuc3FyID0gZnVuY3Rpb24gc3FyIChhKSB7XG4gICAgcmV0dXJuIHRoaXMubXVsKGEsIGEpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuc3FydCA9IGZ1bmN0aW9uIHNxcnQgKGEpIHtcbiAgICBpZiAoYS5pc1plcm8oKSkgcmV0dXJuIGEuY2xvbmUoKTtcblxuICAgIHZhciBtb2QzID0gdGhpcy5tLmFuZGxuKDMpO1xuICAgIGFzc2VydChtb2QzICUgMiA9PT0gMSk7XG5cbiAgICAvLyBGYXN0IGNhc2VcbiAgICBpZiAobW9kMyA9PT0gMykge1xuICAgICAgdmFyIHBvdyA9IHRoaXMubS5hZGQobmV3IEJOKDEpKS5pdXNocm4oMik7XG4gICAgICByZXR1cm4gdGhpcy5wb3coYSwgcG93KTtcbiAgICB9XG5cbiAgICAvLyBUb25lbGxpLVNoYW5rcyBhbGdvcml0aG0gKFRvdGFsbHkgdW5vcHRpbWl6ZWQgYW5kIHNsb3cpXG4gICAgLy9cbiAgICAvLyBGaW5kIFEgYW5kIFMsIHRoYXQgUSAqIDIgXiBTID0gKFAgLSAxKVxuICAgIHZhciBxID0gdGhpcy5tLnN1Ym4oMSk7XG4gICAgdmFyIHMgPSAwO1xuICAgIHdoaWxlICghcS5pc1plcm8oKSAmJiBxLmFuZGxuKDEpID09PSAwKSB7XG4gICAgICBzKys7XG4gICAgICBxLml1c2hybigxKTtcbiAgICB9XG4gICAgYXNzZXJ0KCFxLmlzWmVybygpKTtcblxuICAgIHZhciBvbmUgPSBuZXcgQk4oMSkudG9SZWQodGhpcyk7XG4gICAgdmFyIG5PbmUgPSBvbmUucmVkTmVnKCk7XG5cbiAgICAvLyBGaW5kIHF1YWRyYXRpYyBub24tcmVzaWR1ZVxuICAgIC8vIE5PVEU6IE1heCBpcyBzdWNoIGJlY2F1c2Ugb2YgZ2VuZXJhbGl6ZWQgUmllbWFubiBoeXBvdGhlc2lzLlxuICAgIHZhciBscG93ID0gdGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpO1xuICAgIHZhciB6ID0gdGhpcy5tLmJpdExlbmd0aCgpO1xuICAgIHogPSBuZXcgQk4oMiAqIHogKiB6KS50b1JlZCh0aGlzKTtcblxuICAgIHdoaWxlICh0aGlzLnBvdyh6LCBscG93KS5jbXAobk9uZSkgIT09IDApIHtcbiAgICAgIHoucmVkSUFkZChuT25lKTtcbiAgICB9XG5cbiAgICB2YXIgYyA9IHRoaXMucG93KHosIHEpO1xuICAgIHZhciByID0gdGhpcy5wb3coYSwgcS5hZGRuKDEpLml1c2hybigxKSk7XG4gICAgdmFyIHQgPSB0aGlzLnBvdyhhLCBxKTtcbiAgICB2YXIgbSA9IHM7XG4gICAgd2hpbGUgKHQuY21wKG9uZSkgIT09IDApIHtcbiAgICAgIHZhciB0bXAgPSB0O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IHRtcC5jbXAob25lKSAhPT0gMDsgaSsrKSB7XG4gICAgICAgIHRtcCA9IHRtcC5yZWRTcXIoKTtcbiAgICAgIH1cbiAgICAgIGFzc2VydChpIDwgbSk7XG4gICAgICB2YXIgYiA9IHRoaXMucG93KGMsIG5ldyBCTigxKS5pdXNobG4obSAtIGkgLSAxKSk7XG5cbiAgICAgIHIgPSByLnJlZE11bChiKTtcbiAgICAgIGMgPSBiLnJlZFNxcigpO1xuICAgICAgdCA9IHQucmVkTXVsKGMpO1xuICAgICAgbSA9IGk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHI7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5pbnZtID0gZnVuY3Rpb24gaW52bSAoYSkge1xuICAgIHZhciBpbnYgPSBhLl9pbnZtcCh0aGlzLm0pO1xuICAgIGlmIChpbnYubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIGludi5uZWdhdGl2ZSA9IDA7XG4gICAgICByZXR1cm4gdGhpcy5pbW9kKGludikucmVkTmVnKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmltb2QoaW52KTtcbiAgICB9XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5wb3cgPSBmdW5jdGlvbiBwb3cgKGEsIG51bSkge1xuICAgIGlmIChudW0uaXNaZXJvKCkpIHJldHVybiBuZXcgQk4oMSkudG9SZWQodGhpcyk7XG4gICAgaWYgKG51bS5jbXBuKDEpID09PSAwKSByZXR1cm4gYS5jbG9uZSgpO1xuXG4gICAgdmFyIHdpbmRvd1NpemUgPSA0O1xuICAgIHZhciB3bmQgPSBuZXcgQXJyYXkoMSA8PCB3aW5kb3dTaXplKTtcbiAgICB3bmRbMF0gPSBuZXcgQk4oMSkudG9SZWQodGhpcyk7XG4gICAgd25kWzFdID0gYTtcbiAgICBmb3IgKHZhciBpID0gMjsgaSA8IHduZC5sZW5ndGg7IGkrKykge1xuICAgICAgd25kW2ldID0gdGhpcy5tdWwod25kW2kgLSAxXSwgYSk7XG4gICAgfVxuXG4gICAgdmFyIHJlcyA9IHduZFswXTtcbiAgICB2YXIgY3VycmVudCA9IDA7XG4gICAgdmFyIGN1cnJlbnRMZW4gPSAwO1xuICAgIHZhciBzdGFydCA9IG51bS5iaXRMZW5ndGgoKSAlIDI2O1xuICAgIGlmIChzdGFydCA9PT0gMCkge1xuICAgICAgc3RhcnQgPSAyNjtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSBudW0ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciB3b3JkID0gbnVtLndvcmRzW2ldO1xuICAgICAgZm9yICh2YXIgaiA9IHN0YXJ0IC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgdmFyIGJpdCA9ICh3b3JkID4+IGopICYgMTtcbiAgICAgICAgaWYgKHJlcyAhPT0gd25kWzBdKSB7XG4gICAgICAgICAgcmVzID0gdGhpcy5zcXIocmVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChiaXQgPT09IDAgJiYgY3VycmVudCA9PT0gMCkge1xuICAgICAgICAgIGN1cnJlbnRMZW4gPSAwO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudCA8PD0gMTtcbiAgICAgICAgY3VycmVudCB8PSBiaXQ7XG4gICAgICAgIGN1cnJlbnRMZW4rKztcbiAgICAgICAgaWYgKGN1cnJlbnRMZW4gIT09IHdpbmRvd1NpemUgJiYgKGkgIT09IDAgfHwgaiAhPT0gMCkpIGNvbnRpbnVlO1xuXG4gICAgICAgIHJlcyA9IHRoaXMubXVsKHJlcywgd25kW2N1cnJlbnRdKTtcbiAgICAgICAgY3VycmVudExlbiA9IDA7XG4gICAgICAgIGN1cnJlbnQgPSAwO1xuICAgICAgfVxuICAgICAgc3RhcnQgPSAyNjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuY29udmVydFRvID0gZnVuY3Rpb24gY29udmVydFRvIChudW0pIHtcbiAgICB2YXIgciA9IG51bS51bW9kKHRoaXMubSk7XG5cbiAgICByZXR1cm4gciA9PT0gbnVtID8gci5jbG9uZSgpIDogcjtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmNvbnZlcnRGcm9tID0gZnVuY3Rpb24gY29udmVydEZyb20gKG51bSkge1xuICAgIHZhciByZXMgPSBudW0uY2xvbmUoKTtcbiAgICByZXMucmVkID0gbnVsbDtcbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIC8vXG4gIC8vIE1vbnRnb21lcnkgbWV0aG9kIGVuZ2luZVxuICAvL1xuXG4gIEJOLm1vbnQgPSBmdW5jdGlvbiBtb250IChudW0pIHtcbiAgICByZXR1cm4gbmV3IE1vbnQobnVtKTtcbiAgfTtcblxuICBmdW5jdGlvbiBNb250IChtKSB7XG4gICAgUmVkLmNhbGwodGhpcywgbSk7XG5cbiAgICB0aGlzLnNoaWZ0ID0gdGhpcy5tLmJpdExlbmd0aCgpO1xuICAgIGlmICh0aGlzLnNoaWZ0ICUgMjYgIT09IDApIHtcbiAgICAgIHRoaXMuc2hpZnQgKz0gMjYgLSAodGhpcy5zaGlmdCAlIDI2KTtcbiAgICB9XG5cbiAgICB0aGlzLnIgPSBuZXcgQk4oMSkuaXVzaGxuKHRoaXMuc2hpZnQpO1xuICAgIHRoaXMucjIgPSB0aGlzLmltb2QodGhpcy5yLnNxcigpKTtcbiAgICB0aGlzLnJpbnYgPSB0aGlzLnIuX2ludm1wKHRoaXMubSk7XG5cbiAgICB0aGlzLm1pbnYgPSB0aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSk7XG4gICAgdGhpcy5taW52ID0gdGhpcy5taW52LnVtb2QodGhpcy5yKTtcbiAgICB0aGlzLm1pbnYgPSB0aGlzLnIuc3ViKHRoaXMubWludik7XG4gIH1cbiAgaW5oZXJpdHMoTW9udCwgUmVkKTtcblxuICBNb250LnByb3RvdHlwZS5jb252ZXJ0VG8gPSBmdW5jdGlvbiBjb252ZXJ0VG8gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmltb2QobnVtLnVzaGxuKHRoaXMuc2hpZnQpKTtcbiAgfTtcblxuICBNb250LnByb3RvdHlwZS5jb252ZXJ0RnJvbSA9IGZ1bmN0aW9uIGNvbnZlcnRGcm9tIChudW0pIHtcbiAgICB2YXIgciA9IHRoaXMuaW1vZChudW0ubXVsKHRoaXMucmludikpO1xuICAgIHIucmVkID0gbnVsbDtcbiAgICByZXR1cm4gcjtcbiAgfTtcblxuICBNb250LnByb3RvdHlwZS5pbXVsID0gZnVuY3Rpb24gaW11bCAoYSwgYikge1xuICAgIGlmIChhLmlzWmVybygpIHx8IGIuaXNaZXJvKCkpIHtcbiAgICAgIGEud29yZHNbMF0gPSAwO1xuICAgICAgYS5sZW5ndGggPSAxO1xuICAgICAgcmV0dXJuIGE7XG4gICAgfVxuXG4gICAgdmFyIHQgPSBhLmltdWwoYik7XG4gICAgdmFyIGMgPSB0Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKTtcbiAgICB2YXIgdSA9IHQuaXN1YihjKS5pdXNocm4odGhpcy5zaGlmdCk7XG4gICAgdmFyIHJlcyA9IHU7XG5cbiAgICBpZiAodS5jbXAodGhpcy5tKSA+PSAwKSB7XG4gICAgICByZXMgPSB1LmlzdWIodGhpcy5tKTtcbiAgICB9IGVsc2UgaWYgKHUuY21wbigwKSA8IDApIHtcbiAgICAgIHJlcyA9IHUuaWFkZCh0aGlzLm0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXMuX2ZvcmNlUmVkKHRoaXMpO1xuICB9O1xuXG4gIE1vbnQucHJvdG90eXBlLm11bCA9IGZ1bmN0aW9uIG11bCAoYSwgYikge1xuICAgIGlmIChhLmlzWmVybygpIHx8IGIuaXNaZXJvKCkpIHJldHVybiBuZXcgQk4oMCkuX2ZvcmNlUmVkKHRoaXMpO1xuXG4gICAgdmFyIHQgPSBhLm11bChiKTtcbiAgICB2YXIgYyA9IHQubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pO1xuICAgIHZhciB1ID0gdC5pc3ViKGMpLml1c2hybih0aGlzLnNoaWZ0KTtcbiAgICB2YXIgcmVzID0gdTtcbiAgICBpZiAodS5jbXAodGhpcy5tKSA+PSAwKSB7XG4gICAgICByZXMgPSB1LmlzdWIodGhpcy5tKTtcbiAgICB9IGVsc2UgaWYgKHUuY21wbigwKSA8IDApIHtcbiAgICAgIHJlcyA9IHUuaWFkZCh0aGlzLm0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXMuX2ZvcmNlUmVkKHRoaXMpO1xuICB9O1xuXG4gIE1vbnQucHJvdG90eXBlLmludm0gPSBmdW5jdGlvbiBpbnZtIChhKSB7XG4gICAgLy8gKEFSKV4tMSAqIFJeMiA9IChBXi0xICogUl4tMSkgKiBSXjIgPSBBXi0xICogUlxuICAgIHZhciByZXMgPSB0aGlzLmltb2QoYS5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpO1xuICAgIHJldHVybiByZXMuX2ZvcmNlUmVkKHRoaXMpO1xuICB9O1xufSkodHlwZW9mIG1vZHVsZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbW9kdWxlLCB0aGlzKTtcbiIsInZhciByO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHJhbmQobGVuKSB7XG4gIGlmICghcilcbiAgICByID0gbmV3IFJhbmQobnVsbCk7XG5cbiAgcmV0dXJuIHIuZ2VuZXJhdGUobGVuKTtcbn07XG5cbmZ1bmN0aW9uIFJhbmQocmFuZCkge1xuICB0aGlzLnJhbmQgPSByYW5kO1xufVxubW9kdWxlLmV4cG9ydHMuUmFuZCA9IFJhbmQ7XG5cblJhbmQucHJvdG90eXBlLmdlbmVyYXRlID0gZnVuY3Rpb24gZ2VuZXJhdGUobGVuKSB7XG4gIHJldHVybiB0aGlzLl9yYW5kKGxlbik7XG59O1xuXG4vLyBFbXVsYXRlIGNyeXB0byBBUEkgdXNpbmcgcmFuZHlcblJhbmQucHJvdG90eXBlLl9yYW5kID0gZnVuY3Rpb24gX3JhbmQobikge1xuICBpZiAodGhpcy5yYW5kLmdldEJ5dGVzKVxuICAgIHJldHVybiB0aGlzLnJhbmQuZ2V0Qnl0ZXMobik7XG5cbiAgdmFyIHJlcyA9IG5ldyBVaW50OEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcy5sZW5ndGg7IGkrKylcbiAgICByZXNbaV0gPSB0aGlzLnJhbmQuZ2V0Qnl0ZSgpO1xuICByZXR1cm4gcmVzO1xufTtcblxuaWYgKHR5cGVvZiBzZWxmID09PSAnb2JqZWN0Jykge1xuICBpZiAoc2VsZi5jcnlwdG8gJiYgc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKSB7XG4gICAgLy8gTW9kZXJuIGJyb3dzZXJzXG4gICAgUmFuZC5wcm90b3R5cGUuX3JhbmQgPSBmdW5jdGlvbiBfcmFuZChuKSB7XG4gICAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkobik7XG4gICAgICBzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYXJyKTtcbiAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcbiAgfSBlbHNlIGlmIChzZWxmLm1zQ3J5cHRvICYmIHNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKSB7XG4gICAgLy8gSUVcbiAgICBSYW5kLnByb3RvdHlwZS5fcmFuZCA9IGZ1bmN0aW9uIF9yYW5kKG4pIHtcbiAgICAgIHZhciBhcnIgPSBuZXcgVWludDhBcnJheShuKTtcbiAgICAgIHNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycik7XG4gICAgICByZXR1cm4gYXJyO1xuICAgIH07XG5cbiAgLy8gU2FmYXJpJ3MgV2ViV29ya2VycyBkbyBub3QgaGF2ZSBgY3J5cHRvYFxuICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSB7XG4gICAgLy8gT2xkIGp1bmtcbiAgICBSYW5kLnByb3RvdHlwZS5fcmFuZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0Jyk7XG4gICAgfTtcbiAgfVxufSBlbHNlIHtcbiAgLy8gTm9kZS5qcyBvciBXZWIgd29ya2VyIHdpdGggbm8gY3J5cHRvIHN1cHBvcnRcbiAgdHJ5IHtcbiAgICB2YXIgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyk7XG4gICAgaWYgKHR5cGVvZiBjcnlwdG8ucmFuZG9tQnl0ZXMgIT09ICdmdW5jdGlvbicpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQnKTtcblxuICAgIFJhbmQucHJvdG90eXBlLl9yYW5kID0gZnVuY3Rpb24gX3JhbmQobikge1xuICAgICAgcmV0dXJuIGNyeXB0by5yYW5kb21CeXRlcyhuKTtcbiAgICB9O1xuICB9IGNhdGNoIChlKSB7XG4gIH1cbn1cbiIsbnVsbCwiLy8gYmFzZWQgb24gdGhlIGFlcyBpbXBsaW1lbnRhdGlvbiBpbiB0cmlwbGUgc2VjXG4vLyBodHRwczovL2dpdGh1Yi5jb20va2V5YmFzZS90cmlwbGVzZWNcbi8vIHdoaWNoIGlzIGluIHR1cm4gYmFzZWQgb24gdGhlIG9uZSBmcm9tIGNyeXB0by1qc1xuLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jcnlwdG8tanMvXG5cbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG5mdW5jdGlvbiBhc1VJbnQzMkFycmF5IChidWYpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkgYnVmID0gQnVmZmVyLmZyb20oYnVmKVxuXG4gIHZhciBsZW4gPSAoYnVmLmxlbmd0aCAvIDQpIHwgMFxuICB2YXIgb3V0ID0gbmV3IEFycmF5KGxlbilcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgb3V0W2ldID0gYnVmLnJlYWRVSW50MzJCRShpICogNClcbiAgfVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gc2NydWJWZWMgKHYpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgdisrKSB7XG4gICAgdltpXSA9IDBcbiAgfVxufVxuXG5mdW5jdGlvbiBjcnlwdEJsb2NrIChNLCBrZXlTY2hlZHVsZSwgU1VCX01JWCwgU0JPWCwgblJvdW5kcykge1xuICB2YXIgU1VCX01JWDAgPSBTVUJfTUlYWzBdXG4gIHZhciBTVUJfTUlYMSA9IFNVQl9NSVhbMV1cbiAgdmFyIFNVQl9NSVgyID0gU1VCX01JWFsyXVxuICB2YXIgU1VCX01JWDMgPSBTVUJfTUlYWzNdXG5cbiAgdmFyIHMwID0gTVswXSBeIGtleVNjaGVkdWxlWzBdXG4gIHZhciBzMSA9IE1bMV0gXiBrZXlTY2hlZHVsZVsxXVxuICB2YXIgczIgPSBNWzJdIF4ga2V5U2NoZWR1bGVbMl1cbiAgdmFyIHMzID0gTVszXSBeIGtleVNjaGVkdWxlWzNdXG4gIHZhciB0MCwgdDEsIHQyLCB0M1xuICB2YXIga3NSb3cgPSA0XG5cbiAgZm9yICh2YXIgcm91bmQgPSAxOyByb3VuZCA8IG5Sb3VuZHM7IHJvdW5kKyspIHtcbiAgICB0MCA9IFNVQl9NSVgwW3MwID4+PiAyNF0gXiBTVUJfTUlYMVsoczEgPj4+IDE2KSAmIDB4ZmZdIF4gU1VCX01JWDJbKHMyID4+PiA4KSAmIDB4ZmZdIF4gU1VCX01JWDNbczMgJiAweGZmXSBeIGtleVNjaGVkdWxlW2tzUm93KytdXG4gICAgdDEgPSBTVUJfTUlYMFtzMSA+Pj4gMjRdIF4gU1VCX01JWDFbKHMyID4+PiAxNikgJiAweGZmXSBeIFNVQl9NSVgyWyhzMyA+Pj4gOCkgJiAweGZmXSBeIFNVQl9NSVgzW3MwICYgMHhmZl0gXiBrZXlTY2hlZHVsZVtrc1JvdysrXVxuICAgIHQyID0gU1VCX01JWDBbczIgPj4+IDI0XSBeIFNVQl9NSVgxWyhzMyA+Pj4gMTYpICYgMHhmZl0gXiBTVUJfTUlYMlsoczAgPj4+IDgpICYgMHhmZl0gXiBTVUJfTUlYM1tzMSAmIDB4ZmZdIF4ga2V5U2NoZWR1bGVba3NSb3crK11cbiAgICB0MyA9IFNVQl9NSVgwW3MzID4+PiAyNF0gXiBTVUJfTUlYMVsoczAgPj4+IDE2KSAmIDB4ZmZdIF4gU1VCX01JWDJbKHMxID4+PiA4KSAmIDB4ZmZdIF4gU1VCX01JWDNbczIgJiAweGZmXSBeIGtleVNjaGVkdWxlW2tzUm93KytdXG4gICAgczAgPSB0MFxuICAgIHMxID0gdDFcbiAgICBzMiA9IHQyXG4gICAgczMgPSB0M1xuICB9XG5cbiAgdDAgPSAoKFNCT1hbczAgPj4+IDI0XSA8PCAyNCkgfCAoU0JPWFsoczEgPj4+IDE2KSAmIDB4ZmZdIDw8IDE2KSB8IChTQk9YWyhzMiA+Pj4gOCkgJiAweGZmXSA8PCA4KSB8IFNCT1hbczMgJiAweGZmXSkgXiBrZXlTY2hlZHVsZVtrc1JvdysrXVxuICB0MSA9ICgoU0JPWFtzMSA+Pj4gMjRdIDw8IDI0KSB8IChTQk9YWyhzMiA+Pj4gMTYpICYgMHhmZl0gPDwgMTYpIHwgKFNCT1hbKHMzID4+PiA4KSAmIDB4ZmZdIDw8IDgpIHwgU0JPWFtzMCAmIDB4ZmZdKSBeIGtleVNjaGVkdWxlW2tzUm93KytdXG4gIHQyID0gKChTQk9YW3MyID4+PiAyNF0gPDwgMjQpIHwgKFNCT1hbKHMzID4+PiAxNikgJiAweGZmXSA8PCAxNikgfCAoU0JPWFsoczAgPj4+IDgpICYgMHhmZl0gPDwgOCkgfCBTQk9YW3MxICYgMHhmZl0pIF4ga2V5U2NoZWR1bGVba3NSb3crK11cbiAgdDMgPSAoKFNCT1hbczMgPj4+IDI0XSA8PCAyNCkgfCAoU0JPWFsoczAgPj4+IDE2KSAmIDB4ZmZdIDw8IDE2KSB8IChTQk9YWyhzMSA+Pj4gOCkgJiAweGZmXSA8PCA4KSB8IFNCT1hbczIgJiAweGZmXSkgXiBrZXlTY2hlZHVsZVtrc1JvdysrXVxuICB0MCA9IHQwID4+PiAwXG4gIHQxID0gdDEgPj4+IDBcbiAgdDIgPSB0MiA+Pj4gMFxuICB0MyA9IHQzID4+PiAwXG5cbiAgcmV0dXJuIFt0MCwgdDEsIHQyLCB0M11cbn1cblxuLy8gQUVTIGNvbnN0YW50c1xudmFyIFJDT04gPSBbMHgwMCwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHgxYiwgMHgzNl1cbnZhciBHID0gKGZ1bmN0aW9uICgpIHtcbiAgLy8gQ29tcHV0ZSBkb3VibGUgdGFibGVcbiAgdmFyIGQgPSBuZXcgQXJyYXkoMjU2KVxuICBmb3IgKHZhciBqID0gMDsgaiA8IDI1NjsgaisrKSB7XG4gICAgaWYgKGogPCAxMjgpIHtcbiAgICAgIGRbal0gPSBqIDw8IDFcbiAgICB9IGVsc2Uge1xuICAgICAgZFtqXSA9IChqIDw8IDEpIF4gMHgxMWJcbiAgICB9XG4gIH1cblxuICB2YXIgU0JPWCA9IFtdXG4gIHZhciBJTlZfU0JPWCA9IFtdXG4gIHZhciBTVUJfTUlYID0gW1tdLCBbXSwgW10sIFtdXVxuICB2YXIgSU5WX1NVQl9NSVggPSBbW10sIFtdLCBbXSwgW11dXG5cbiAgLy8gV2FsayBHRigyXjgpXG4gIHZhciB4ID0gMFxuICB2YXIgeGkgPSAwXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyArK2kpIHtcbiAgICAvLyBDb21wdXRlIHNib3hcbiAgICB2YXIgc3ggPSB4aSBeICh4aSA8PCAxKSBeICh4aSA8PCAyKSBeICh4aSA8PCAzKSBeICh4aSA8PCA0KVxuICAgIHN4ID0gKHN4ID4+PiA4KSBeIChzeCAmIDB4ZmYpIF4gMHg2M1xuICAgIFNCT1hbeF0gPSBzeFxuICAgIElOVl9TQk9YW3N4XSA9IHhcblxuICAgIC8vIENvbXB1dGUgbXVsdGlwbGljYXRpb25cbiAgICB2YXIgeDIgPSBkW3hdXG4gICAgdmFyIHg0ID0gZFt4Ml1cbiAgICB2YXIgeDggPSBkW3g0XVxuXG4gICAgLy8gQ29tcHV0ZSBzdWIgYnl0ZXMsIG1peCBjb2x1bW5zIHRhYmxlc1xuICAgIHZhciB0ID0gKGRbc3hdICogMHgxMDEpIF4gKHN4ICogMHgxMDEwMTAwKVxuICAgIFNVQl9NSVhbMF1beF0gPSAodCA8PCAyNCkgfCAodCA+Pj4gOClcbiAgICBTVUJfTUlYWzFdW3hdID0gKHQgPDwgMTYpIHwgKHQgPj4+IDE2KVxuICAgIFNVQl9NSVhbMl1beF0gPSAodCA8PCA4KSB8ICh0ID4+PiAyNClcbiAgICBTVUJfTUlYWzNdW3hdID0gdFxuXG4gICAgLy8gQ29tcHV0ZSBpbnYgc3ViIGJ5dGVzLCBpbnYgbWl4IGNvbHVtbnMgdGFibGVzXG4gICAgdCA9ICh4OCAqIDB4MTAxMDEwMSkgXiAoeDQgKiAweDEwMDAxKSBeICh4MiAqIDB4MTAxKSBeICh4ICogMHgxMDEwMTAwKVxuICAgIElOVl9TVUJfTUlYWzBdW3N4XSA9ICh0IDw8IDI0KSB8ICh0ID4+PiA4KVxuICAgIElOVl9TVUJfTUlYWzFdW3N4XSA9ICh0IDw8IDE2KSB8ICh0ID4+PiAxNilcbiAgICBJTlZfU1VCX01JWFsyXVtzeF0gPSAodCA8PCA4KSB8ICh0ID4+PiAyNClcbiAgICBJTlZfU1VCX01JWFszXVtzeF0gPSB0XG5cbiAgICBpZiAoeCA9PT0gMCkge1xuICAgICAgeCA9IHhpID0gMVxuICAgIH0gZWxzZSB7XG4gICAgICB4ID0geDIgXiBkW2RbZFt4OCBeIHgyXV1dXG4gICAgICB4aSBePSBkW2RbeGldXVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgU0JPWDogU0JPWCxcbiAgICBJTlZfU0JPWDogSU5WX1NCT1gsXG4gICAgU1VCX01JWDogU1VCX01JWCxcbiAgICBJTlZfU1VCX01JWDogSU5WX1NVQl9NSVhcbiAgfVxufSkoKVxuXG5mdW5jdGlvbiBBRVMgKGtleSkge1xuICB0aGlzLl9rZXkgPSBhc1VJbnQzMkFycmF5KGtleSlcbiAgdGhpcy5fcmVzZXQoKVxufVxuXG5BRVMuYmxvY2tTaXplID0gNCAqIDRcbkFFUy5rZXlTaXplID0gMjU2IC8gOFxuQUVTLnByb3RvdHlwZS5ibG9ja1NpemUgPSBBRVMuYmxvY2tTaXplXG5BRVMucHJvdG90eXBlLmtleVNpemUgPSBBRVMua2V5U2l6ZVxuQUVTLnByb3RvdHlwZS5fcmVzZXQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBrZXlXb3JkcyA9IHRoaXMuX2tleVxuICB2YXIga2V5U2l6ZSA9IGtleVdvcmRzLmxlbmd0aFxuICB2YXIgblJvdW5kcyA9IGtleVNpemUgKyA2XG4gIHZhciBrc1Jvd3MgPSAoblJvdW5kcyArIDEpICogNFxuXG4gIHZhciBrZXlTY2hlZHVsZSA9IFtdXG4gIGZvciAodmFyIGsgPSAwOyBrIDwga2V5U2l6ZTsgaysrKSB7XG4gICAga2V5U2NoZWR1bGVba10gPSBrZXlXb3Jkc1trXVxuICB9XG5cbiAgZm9yIChrID0ga2V5U2l6ZTsgayA8IGtzUm93czsgaysrKSB7XG4gICAgdmFyIHQgPSBrZXlTY2hlZHVsZVtrIC0gMV1cblxuICAgIGlmIChrICUga2V5U2l6ZSA9PT0gMCkge1xuICAgICAgdCA9ICh0IDw8IDgpIHwgKHQgPj4+IDI0KVxuICAgICAgdCA9XG4gICAgICAgIChHLlNCT1hbdCA+Pj4gMjRdIDw8IDI0KSB8XG4gICAgICAgIChHLlNCT1hbKHQgPj4+IDE2KSAmIDB4ZmZdIDw8IDE2KSB8XG4gICAgICAgIChHLlNCT1hbKHQgPj4+IDgpICYgMHhmZl0gPDwgOCkgfFxuICAgICAgICAoRy5TQk9YW3QgJiAweGZmXSlcblxuICAgICAgdCBePSBSQ09OWyhrIC8ga2V5U2l6ZSkgfCAwXSA8PCAyNFxuICAgIH0gZWxzZSBpZiAoa2V5U2l6ZSA+IDYgJiYgayAlIGtleVNpemUgPT09IDQpIHtcbiAgICAgIHQgPVxuICAgICAgICAoRy5TQk9YW3QgPj4+IDI0XSA8PCAyNCkgfFxuICAgICAgICAoRy5TQk9YWyh0ID4+PiAxNikgJiAweGZmXSA8PCAxNikgfFxuICAgICAgICAoRy5TQk9YWyh0ID4+PiA4KSAmIDB4ZmZdIDw8IDgpIHxcbiAgICAgICAgKEcuU0JPWFt0ICYgMHhmZl0pXG4gICAgfVxuXG4gICAga2V5U2NoZWR1bGVba10gPSBrZXlTY2hlZHVsZVtrIC0ga2V5U2l6ZV0gXiB0XG4gIH1cblxuICB2YXIgaW52S2V5U2NoZWR1bGUgPSBbXVxuICBmb3IgKHZhciBpayA9IDA7IGlrIDwga3NSb3dzOyBpaysrKSB7XG4gICAgdmFyIGtzUiA9IGtzUm93cyAtIGlrXG4gICAgdmFyIHR0ID0ga2V5U2NoZWR1bGVba3NSIC0gKGlrICUgNCA/IDAgOiA0KV1cblxuICAgIGlmIChpayA8IDQgfHwga3NSIDw9IDQpIHtcbiAgICAgIGludktleVNjaGVkdWxlW2lrXSA9IHR0XG4gICAgfSBlbHNlIHtcbiAgICAgIGludktleVNjaGVkdWxlW2lrXSA9XG4gICAgICAgIEcuSU5WX1NVQl9NSVhbMF1bRy5TQk9YW3R0ID4+PiAyNF1dIF5cbiAgICAgICAgRy5JTlZfU1VCX01JWFsxXVtHLlNCT1hbKHR0ID4+PiAxNikgJiAweGZmXV0gXlxuICAgICAgICBHLklOVl9TVUJfTUlYWzJdW0cuU0JPWFsodHQgPj4+IDgpICYgMHhmZl1dIF5cbiAgICAgICAgRy5JTlZfU1VCX01JWFszXVtHLlNCT1hbdHQgJiAweGZmXV1cbiAgICB9XG4gIH1cblxuICB0aGlzLl9uUm91bmRzID0gblJvdW5kc1xuICB0aGlzLl9rZXlTY2hlZHVsZSA9IGtleVNjaGVkdWxlXG4gIHRoaXMuX2ludktleVNjaGVkdWxlID0gaW52S2V5U2NoZWR1bGVcbn1cblxuQUVTLnByb3RvdHlwZS5lbmNyeXB0QmxvY2tSYXcgPSBmdW5jdGlvbiAoTSkge1xuICBNID0gYXNVSW50MzJBcnJheShNKVxuICByZXR1cm4gY3J5cHRCbG9jayhNLCB0aGlzLl9rZXlTY2hlZHVsZSwgRy5TVUJfTUlYLCBHLlNCT1gsIHRoaXMuX25Sb3VuZHMpXG59XG5cbkFFUy5wcm90b3R5cGUuZW5jcnlwdEJsb2NrID0gZnVuY3Rpb24gKE0pIHtcbiAgdmFyIG91dCA9IHRoaXMuZW5jcnlwdEJsb2NrUmF3KE0pXG4gIHZhciBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMTYpXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFswXSwgMClcbiAgYnVmLndyaXRlVUludDMyQkUob3V0WzFdLCA0KVxuICBidWYud3JpdGVVSW50MzJCRShvdXRbMl0sIDgpXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFszXSwgMTIpXG4gIHJldHVybiBidWZcbn1cblxuQUVTLnByb3RvdHlwZS5kZWNyeXB0QmxvY2sgPSBmdW5jdGlvbiAoTSkge1xuICBNID0gYXNVSW50MzJBcnJheShNKVxuXG4gIC8vIHN3YXBcbiAgdmFyIG0xID0gTVsxXVxuICBNWzFdID0gTVszXVxuICBNWzNdID0gbTFcblxuICB2YXIgb3V0ID0gY3J5cHRCbG9jayhNLCB0aGlzLl9pbnZLZXlTY2hlZHVsZSwgRy5JTlZfU1VCX01JWCwgRy5JTlZfU0JPWCwgdGhpcy5fblJvdW5kcylcbiAgdmFyIGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgxNilcbiAgYnVmLndyaXRlVUludDMyQkUob3V0WzBdLCAwKVxuICBidWYud3JpdGVVSW50MzJCRShvdXRbM10sIDQpXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFsyXSwgOClcbiAgYnVmLndyaXRlVUludDMyQkUob3V0WzFdLCAxMilcbiAgcmV0dXJuIGJ1ZlxufVxuXG5BRVMucHJvdG90eXBlLnNjcnViID0gZnVuY3Rpb24gKCkge1xuICBzY3J1YlZlYyh0aGlzLl9rZXlTY2hlZHVsZSlcbiAgc2NydWJWZWModGhpcy5faW52S2V5U2NoZWR1bGUpXG4gIHNjcnViVmVjKHRoaXMuX2tleSlcbn1cblxubW9kdWxlLmV4cG9ydHMuQUVTID0gQUVTXG4iLCJ2YXIgYWVzID0gcmVxdWlyZSgnLi9hZXMnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgVHJhbnNmb3JtID0gcmVxdWlyZSgnY2lwaGVyLWJhc2UnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEdIQVNIID0gcmVxdWlyZSgnLi9naGFzaCcpXG52YXIgeG9yID0gcmVxdWlyZSgnYnVmZmVyLXhvcicpXG52YXIgaW5jcjMyID0gcmVxdWlyZSgnLi9pbmNyMzInKVxuXG5mdW5jdGlvbiB4b3JUZXN0IChhLCBiKSB7XG4gIHZhciBvdXQgPSAwXG4gIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIG91dCsrXG5cbiAgdmFyIGxlbiA9IE1hdGgubWluKGEubGVuZ3RoLCBiLmxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgIG91dCArPSAoYVtpXSBeIGJbaV0pXG4gIH1cblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIGNhbGNJdiAoc2VsZiwgaXYsIGNrKSB7XG4gIGlmIChpdi5sZW5ndGggPT09IDEyKSB7XG4gICAgc2VsZi5fZmluSUQgPSBCdWZmZXIuY29uY2F0KFtpdiwgQnVmZmVyLmZyb20oWzAsIDAsIDAsIDFdKV0pXG4gICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW2l2LCBCdWZmZXIuZnJvbShbMCwgMCwgMCwgMl0pXSlcbiAgfVxuICB2YXIgZ2hhc2ggPSBuZXcgR0hBU0goY2spXG4gIHZhciBsZW4gPSBpdi5sZW5ndGhcbiAgdmFyIHRvUGFkID0gbGVuICUgMTZcbiAgZ2hhc2gudXBkYXRlKGl2KVxuICBpZiAodG9QYWQpIHtcbiAgICB0b1BhZCA9IDE2IC0gdG9QYWRcbiAgICBnaGFzaC51cGRhdGUoQnVmZmVyLmFsbG9jKHRvUGFkLCAwKSlcbiAgfVxuICBnaGFzaC51cGRhdGUoQnVmZmVyLmFsbG9jKDgsIDApKVxuICB2YXIgaXZCaXRzID0gbGVuICogOFxuICB2YXIgdGFpbCA9IEJ1ZmZlci5hbGxvYyg4KVxuICB0YWlsLndyaXRlVUludEJFKGl2Qml0cywgMCwgOClcbiAgZ2hhc2gudXBkYXRlKHRhaWwpXG4gIHNlbGYuX2ZpbklEID0gZ2hhc2guc3RhdGVcbiAgdmFyIG91dCA9IEJ1ZmZlci5mcm9tKHNlbGYuX2ZpbklEKVxuICBpbmNyMzIob3V0KVxuICByZXR1cm4gb3V0XG59XG5mdW5jdGlvbiBTdHJlYW1DaXBoZXIgKG1vZGUsIGtleSwgaXYsIGRlY3J5cHQpIHtcbiAgVHJhbnNmb3JtLmNhbGwodGhpcylcblxuICB2YXIgaCA9IEJ1ZmZlci5hbGxvYyg0LCAwKVxuXG4gIHRoaXMuX2NpcGhlciA9IG5ldyBhZXMuQUVTKGtleSlcbiAgdmFyIGNrID0gdGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayhoKVxuICB0aGlzLl9naGFzaCA9IG5ldyBHSEFTSChjaylcbiAgaXYgPSBjYWxjSXYodGhpcywgaXYsIGNrKVxuXG4gIHRoaXMuX3ByZXYgPSBCdWZmZXIuZnJvbShpdilcbiAgdGhpcy5fY2FjaGUgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMClcbiAgdGhpcy5fc2VjQ2FjaGUgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMClcbiAgdGhpcy5fZGVjcnlwdCA9IGRlY3J5cHRcbiAgdGhpcy5fYWxlbiA9IDBcbiAgdGhpcy5fbGVuID0gMFxuICB0aGlzLl9tb2RlID0gbW9kZVxuXG4gIHRoaXMuX2F1dGhUYWcgPSBudWxsXG4gIHRoaXMuX2NhbGxlZCA9IGZhbHNlXG59XG5cbmluaGVyaXRzKFN0cmVhbUNpcGhlciwgVHJhbnNmb3JtKVxuXG5TdHJlYW1DaXBoZXIucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoY2h1bmspIHtcbiAgaWYgKCF0aGlzLl9jYWxsZWQgJiYgdGhpcy5fYWxlbikge1xuICAgIHZhciBydW1wID0gMTYgLSAodGhpcy5fYWxlbiAlIDE2KVxuICAgIGlmIChydW1wIDwgMTYpIHtcbiAgICAgIHJ1bXAgPSBCdWZmZXIuYWxsb2MocnVtcCwgMClcbiAgICAgIHRoaXMuX2doYXNoLnVwZGF0ZShydW1wKVxuICAgIH1cbiAgfVxuXG4gIHRoaXMuX2NhbGxlZCA9IHRydWVcbiAgdmFyIG91dCA9IHRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLCBjaHVuaylcbiAgaWYgKHRoaXMuX2RlY3J5cHQpIHtcbiAgICB0aGlzLl9naGFzaC51cGRhdGUoY2h1bmspXG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fZ2hhc2gudXBkYXRlKG91dClcbiAgfVxuICB0aGlzLl9sZW4gKz0gY2h1bmsubGVuZ3RoXG4gIHJldHVybiBvdXRcbn1cblxuU3RyZWFtQ2lwaGVyLnByb3RvdHlwZS5fZmluYWwgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLl9kZWNyeXB0ICYmICF0aGlzLl9hdXRoVGFnKSB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YScpXG5cbiAgdmFyIHRhZyA9IHhvcih0aGlzLl9naGFzaC5maW5hbCh0aGlzLl9hbGVuICogOCwgdGhpcy5fbGVuICogOCksIHRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodGhpcy5fZmluSUQpKVxuICBpZiAodGhpcy5fZGVjcnlwdCAmJiB4b3JUZXN0KHRhZywgdGhpcy5fYXV0aFRhZykpIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhJylcblxuICB0aGlzLl9hdXRoVGFnID0gdGFnXG4gIHRoaXMuX2NpcGhlci5zY3J1YigpXG59XG5cblN0cmVhbUNpcGhlci5wcm90b3R5cGUuZ2V0QXV0aFRhZyA9IGZ1bmN0aW9uIGdldEF1dGhUYWcgKCkge1xuICBpZiAodGhpcy5fZGVjcnlwdCB8fCAhQnVmZmVyLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKSB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlJylcblxuICByZXR1cm4gdGhpcy5fYXV0aFRhZ1xufVxuXG5TdHJlYW1DaXBoZXIucHJvdG90eXBlLnNldEF1dGhUYWcgPSBmdW5jdGlvbiBzZXRBdXRoVGFnICh0YWcpIHtcbiAgaWYgKCF0aGlzLl9kZWNyeXB0KSB0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlJylcblxuICB0aGlzLl9hdXRoVGFnID0gdGFnXG59XG5cblN0cmVhbUNpcGhlci5wcm90b3R5cGUuc2V0QUFEID0gZnVuY3Rpb24gc2V0QUFEIChidWYpIHtcbiAgaWYgKHRoaXMuX2NhbGxlZCkgdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0aW5nIHRvIHNldCBBQUQgaW4gdW5zdXBwb3J0ZWQgc3RhdGUnKVxuXG4gIHRoaXMuX2doYXNoLnVwZGF0ZShidWYpXG4gIHRoaXMuX2FsZW4gKz0gYnVmLmxlbmd0aFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmVhbUNpcGhlclxuIiwidmFyIGNpcGhlcnMgPSByZXF1aXJlKCcuL2VuY3J5cHRlcicpXG52YXIgZGVjaXBoZXJzID0gcmVxdWlyZSgnLi9kZWNyeXB0ZXInKVxudmFyIG1vZGVzID0gcmVxdWlyZSgnLi9tb2Rlcy9saXN0Lmpzb24nKVxuXG5mdW5jdGlvbiBnZXRDaXBoZXJzICgpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1vZGVzKVxufVxuXG5leHBvcnRzLmNyZWF0ZUNpcGhlciA9IGV4cG9ydHMuQ2lwaGVyID0gY2lwaGVycy5jcmVhdGVDaXBoZXJcbmV4cG9ydHMuY3JlYXRlQ2lwaGVyaXYgPSBleHBvcnRzLkNpcGhlcml2ID0gY2lwaGVycy5jcmVhdGVDaXBoZXJpdlxuZXhwb3J0cy5jcmVhdGVEZWNpcGhlciA9IGV4cG9ydHMuRGVjaXBoZXIgPSBkZWNpcGhlcnMuY3JlYXRlRGVjaXBoZXJcbmV4cG9ydHMuY3JlYXRlRGVjaXBoZXJpdiA9IGV4cG9ydHMuRGVjaXBoZXJpdiA9IGRlY2lwaGVycy5jcmVhdGVEZWNpcGhlcml2XG5leHBvcnRzLmxpc3RDaXBoZXJzID0gZXhwb3J0cy5nZXRDaXBoZXJzID0gZ2V0Q2lwaGVyc1xuIiwidmFyIEF1dGhDaXBoZXIgPSByZXF1aXJlKCcuL2F1dGhDaXBoZXInKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgTU9ERVMgPSByZXF1aXJlKCcuL21vZGVzJylcbnZhciBTdHJlYW1DaXBoZXIgPSByZXF1aXJlKCcuL3N0cmVhbUNpcGhlcicpXG52YXIgVHJhbnNmb3JtID0gcmVxdWlyZSgnY2lwaGVyLWJhc2UnKVxudmFyIGFlcyA9IHJlcXVpcmUoJy4vYWVzJylcbnZhciBlYnRrID0gcmVxdWlyZSgnZXZwX2J5dGVzdG9rZXknKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxuXG5mdW5jdGlvbiBEZWNpcGhlciAobW9kZSwga2V5LCBpdikge1xuICBUcmFuc2Zvcm0uY2FsbCh0aGlzKVxuXG4gIHRoaXMuX2NhY2hlID0gbmV3IFNwbGl0dGVyKClcbiAgdGhpcy5fbGFzdCA9IHZvaWQgMFxuICB0aGlzLl9jaXBoZXIgPSBuZXcgYWVzLkFFUyhrZXkpXG4gIHRoaXMuX3ByZXYgPSBCdWZmZXIuZnJvbShpdilcbiAgdGhpcy5fbW9kZSA9IG1vZGVcbiAgdGhpcy5fYXV0b3BhZGRpbmcgPSB0cnVlXG59XG5cbmluaGVyaXRzKERlY2lwaGVyLCBUcmFuc2Zvcm0pXG5cbkRlY2lwaGVyLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgdGhpcy5fY2FjaGUuYWRkKGRhdGEpXG4gIHZhciBjaHVua1xuICB2YXIgdGhpbmdcbiAgdmFyIG91dCA9IFtdXG4gIHdoaWxlICgoY2h1bmsgPSB0aGlzLl9jYWNoZS5nZXQodGhpcy5fYXV0b3BhZGRpbmcpKSkge1xuICAgIHRoaW5nID0gdGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsIGNodW5rKVxuICAgIG91dC5wdXNoKHRoaW5nKVxuICB9XG4gIHJldHVybiBCdWZmZXIuY29uY2F0KG91dClcbn1cblxuRGVjaXBoZXIucHJvdG90eXBlLl9maW5hbCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGNodW5rID0gdGhpcy5fY2FjaGUuZmx1c2goKVxuICBpZiAodGhpcy5fYXV0b3BhZGRpbmcpIHtcbiAgICByZXR1cm4gdW5wYWQodGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsIGNodW5rKSlcbiAgfSBlbHNlIGlmIChjaHVuaykge1xuICAgIHRocm93IG5ldyBFcnJvcignZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoJylcbiAgfVxufVxuXG5EZWNpcGhlci5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmcgPSBmdW5jdGlvbiAoc2V0VG8pIHtcbiAgdGhpcy5fYXV0b3BhZGRpbmcgPSAhIXNldFRvXG4gIHJldHVybiB0aGlzXG59XG5cbmZ1bmN0aW9uIFNwbGl0dGVyICgpIHtcbiAgdGhpcy5jYWNoZSA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgwKVxufVxuXG5TcGxpdHRlci5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgdGhpcy5jYWNoZSA9IEJ1ZmZlci5jb25jYXQoW3RoaXMuY2FjaGUsIGRhdGFdKVxufVxuXG5TcGxpdHRlci5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGF1dG9QYWRkaW5nKSB7XG4gIHZhciBvdXRcbiAgaWYgKGF1dG9QYWRkaW5nKSB7XG4gICAgaWYgKHRoaXMuY2FjaGUubGVuZ3RoID4gMTYpIHtcbiAgICAgIG91dCA9IHRoaXMuY2FjaGUuc2xpY2UoMCwgMTYpXG4gICAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5zbGljZSgxNilcbiAgICAgIHJldHVybiBvdXRcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHRoaXMuY2FjaGUubGVuZ3RoID49IDE2KSB7XG4gICAgICBvdXQgPSB0aGlzLmNhY2hlLnNsaWNlKDAsIDE2KVxuICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuc2xpY2UoMTYpXG4gICAgICByZXR1cm4gb3V0XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuU3BsaXR0ZXIucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5jYWNoZS5sZW5ndGgpIHJldHVybiB0aGlzLmNhY2hlXG59XG5cbmZ1bmN0aW9uIHVucGFkIChsYXN0KSB7XG4gIHZhciBwYWRkZWQgPSBsYXN0WzE1XVxuICBpZiAocGFkZGVkIDwgMSB8fCBwYWRkZWQgPiAxNikge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5hYmxlIHRvIGRlY3J5cHQgZGF0YScpXG4gIH1cbiAgdmFyIGkgPSAtMVxuICB3aGlsZSAoKytpIDwgcGFkZGVkKSB7XG4gICAgaWYgKGxhc3RbKGkgKyAoMTYgLSBwYWRkZWQpKV0gIT09IHBhZGRlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmFibGUgdG8gZGVjcnlwdCBkYXRhJylcbiAgICB9XG4gIH1cbiAgaWYgKHBhZGRlZCA9PT0gMTYpIHJldHVyblxuXG4gIHJldHVybiBsYXN0LnNsaWNlKDAsIDE2IC0gcGFkZGVkKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVEZWNpcGhlcml2IChzdWl0ZSwgcGFzc3dvcmQsIGl2KSB7XG4gIHZhciBjb25maWcgPSBNT0RFU1tzdWl0ZS50b0xvd2VyQ2FzZSgpXVxuICBpZiAoIWNvbmZpZykgdGhyb3cgbmV3IFR5cGVFcnJvcignaW52YWxpZCBzdWl0ZSB0eXBlJylcblxuICBpZiAodHlwZW9mIGl2ID09PSAnc3RyaW5nJykgaXYgPSBCdWZmZXIuZnJvbShpdilcbiAgaWYgKGNvbmZpZy5tb2RlICE9PSAnR0NNJyAmJiBpdi5sZW5ndGggIT09IGNvbmZpZy5pdikgdGhyb3cgbmV3IFR5cGVFcnJvcignaW52YWxpZCBpdiBsZW5ndGggJyArIGl2Lmxlbmd0aClcblxuICBpZiAodHlwZW9mIHBhc3N3b3JkID09PSAnc3RyaW5nJykgcGFzc3dvcmQgPSBCdWZmZXIuZnJvbShwYXNzd29yZClcbiAgaWYgKHBhc3N3b3JkLmxlbmd0aCAhPT0gY29uZmlnLmtleSAvIDgpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQga2V5IGxlbmd0aCAnICsgcGFzc3dvcmQubGVuZ3RoKVxuXG4gIGlmIChjb25maWcudHlwZSA9PT0gJ3N0cmVhbScpIHtcbiAgICByZXR1cm4gbmV3IFN0cmVhbUNpcGhlcihjb25maWcubW9kdWxlLCBwYXNzd29yZCwgaXYsIHRydWUpXG4gIH0gZWxzZSBpZiAoY29uZmlnLnR5cGUgPT09ICdhdXRoJykge1xuICAgIHJldHVybiBuZXcgQXV0aENpcGhlcihjb25maWcubW9kdWxlLCBwYXNzd29yZCwgaXYsIHRydWUpXG4gIH1cblxuICByZXR1cm4gbmV3IERlY2lwaGVyKGNvbmZpZy5tb2R1bGUsIHBhc3N3b3JkLCBpdilcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVjaXBoZXIgKHN1aXRlLCBwYXNzd29yZCkge1xuICB2YXIgY29uZmlnID0gTU9ERVNbc3VpdGUudG9Mb3dlckNhc2UoKV1cbiAgaWYgKCFjb25maWcpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQgc3VpdGUgdHlwZScpXG5cbiAgdmFyIGtleXMgPSBlYnRrKHBhc3N3b3JkLCBmYWxzZSwgY29uZmlnLmtleSwgY29uZmlnLml2KVxuICByZXR1cm4gY3JlYXRlRGVjaXBoZXJpdihzdWl0ZSwga2V5cy5rZXksIGtleXMuaXYpXG59XG5cbmV4cG9ydHMuY3JlYXRlRGVjaXBoZXIgPSBjcmVhdGVEZWNpcGhlclxuZXhwb3J0cy5jcmVhdGVEZWNpcGhlcml2ID0gY3JlYXRlRGVjaXBoZXJpdlxuIiwidmFyIE1PREVTID0gcmVxdWlyZSgnLi9tb2RlcycpXG52YXIgQXV0aENpcGhlciA9IHJlcXVpcmUoJy4vYXV0aENpcGhlcicpXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciBTdHJlYW1DaXBoZXIgPSByZXF1aXJlKCcuL3N0cmVhbUNpcGhlcicpXG52YXIgVHJhbnNmb3JtID0gcmVxdWlyZSgnY2lwaGVyLWJhc2UnKVxudmFyIGFlcyA9IHJlcXVpcmUoJy4vYWVzJylcbnZhciBlYnRrID0gcmVxdWlyZSgnZXZwX2J5dGVzdG9rZXknKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxuXG5mdW5jdGlvbiBDaXBoZXIgKG1vZGUsIGtleSwgaXYpIHtcbiAgVHJhbnNmb3JtLmNhbGwodGhpcylcblxuICB0aGlzLl9jYWNoZSA9IG5ldyBTcGxpdHRlcigpXG4gIHRoaXMuX2NpcGhlciA9IG5ldyBhZXMuQUVTKGtleSlcbiAgdGhpcy5fcHJldiA9IEJ1ZmZlci5mcm9tKGl2KVxuICB0aGlzLl9tb2RlID0gbW9kZVxuICB0aGlzLl9hdXRvcGFkZGluZyA9IHRydWVcbn1cblxuaW5oZXJpdHMoQ2lwaGVyLCBUcmFuc2Zvcm0pXG5cbkNpcGhlci5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHRoaXMuX2NhY2hlLmFkZChkYXRhKVxuICB2YXIgY2h1bmtcbiAgdmFyIHRoaW5nXG4gIHZhciBvdXQgPSBbXVxuXG4gIHdoaWxlICgoY2h1bmsgPSB0aGlzLl9jYWNoZS5nZXQoKSkpIHtcbiAgICB0aGluZyA9IHRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLCBjaHVuaylcbiAgICBvdXQucHVzaCh0aGluZylcbiAgfVxuXG4gIHJldHVybiBCdWZmZXIuY29uY2F0KG91dClcbn1cblxudmFyIFBBRERJTkcgPSBCdWZmZXIuYWxsb2MoMTYsIDB4MTApXG5cbkNpcGhlci5wcm90b3R5cGUuX2ZpbmFsID0gZnVuY3Rpb24gKCkge1xuICB2YXIgY2h1bmsgPSB0aGlzLl9jYWNoZS5mbHVzaCgpXG4gIGlmICh0aGlzLl9hdXRvcGFkZGluZykge1xuICAgIGNodW5rID0gdGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsIGNodW5rKVxuICAgIHRoaXMuX2NpcGhlci5zY3J1YigpXG4gICAgcmV0dXJuIGNodW5rXG4gIH1cblxuICBpZiAoIWNodW5rLmVxdWFscyhQQURESU5HKSkge1xuICAgIHRoaXMuX2NpcGhlci5zY3J1YigpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgnKVxuICB9XG59XG5cbkNpcGhlci5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmcgPSBmdW5jdGlvbiAoc2V0VG8pIHtcbiAgdGhpcy5fYXV0b3BhZGRpbmcgPSAhIXNldFRvXG4gIHJldHVybiB0aGlzXG59XG5cbmZ1bmN0aW9uIFNwbGl0dGVyICgpIHtcbiAgdGhpcy5jYWNoZSA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgwKVxufVxuXG5TcGxpdHRlci5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgdGhpcy5jYWNoZSA9IEJ1ZmZlci5jb25jYXQoW3RoaXMuY2FjaGUsIGRhdGFdKVxufVxuXG5TcGxpdHRlci5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5jYWNoZS5sZW5ndGggPiAxNSkge1xuICAgIHZhciBvdXQgPSB0aGlzLmNhY2hlLnNsaWNlKDAsIDE2KVxuICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLnNsaWNlKDE2KVxuICAgIHJldHVybiBvdXRcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5TcGxpdHRlci5wcm90b3R5cGUuZmx1c2ggPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBsZW4gPSAxNiAtIHRoaXMuY2FjaGUubGVuZ3RoXG4gIHZhciBwYWRCdWZmID0gQnVmZmVyLmFsbG9jVW5zYWZlKGxlbilcblxuICB2YXIgaSA9IC0xXG4gIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICBwYWRCdWZmLndyaXRlVUludDgobGVuLCBpKVxuICB9XG5cbiAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW3RoaXMuY2FjaGUsIHBhZEJ1ZmZdKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDaXBoZXJpdiAoc3VpdGUsIHBhc3N3b3JkLCBpdikge1xuICB2YXIgY29uZmlnID0gTU9ERVNbc3VpdGUudG9Mb3dlckNhc2UoKV1cbiAgaWYgKCFjb25maWcpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQgc3VpdGUgdHlwZScpXG5cbiAgaWYgKHR5cGVvZiBwYXNzd29yZCA9PT0gJ3N0cmluZycpIHBhc3N3b3JkID0gQnVmZmVyLmZyb20ocGFzc3dvcmQpXG4gIGlmIChwYXNzd29yZC5sZW5ndGggIT09IGNvbmZpZy5rZXkgLyA4KSB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIGtleSBsZW5ndGggJyArIHBhc3N3b3JkLmxlbmd0aClcblxuICBpZiAodHlwZW9mIGl2ID09PSAnc3RyaW5nJykgaXYgPSBCdWZmZXIuZnJvbShpdilcbiAgaWYgKGNvbmZpZy5tb2RlICE9PSAnR0NNJyAmJiBpdi5sZW5ndGggIT09IGNvbmZpZy5pdikgdGhyb3cgbmV3IFR5cGVFcnJvcignaW52YWxpZCBpdiBsZW5ndGggJyArIGl2Lmxlbmd0aClcblxuICBpZiAoY29uZmlnLnR5cGUgPT09ICdzdHJlYW0nKSB7XG4gICAgcmV0dXJuIG5ldyBTdHJlYW1DaXBoZXIoY29uZmlnLm1vZHVsZSwgcGFzc3dvcmQsIGl2KVxuICB9IGVsc2UgaWYgKGNvbmZpZy50eXBlID09PSAnYXV0aCcpIHtcbiAgICByZXR1cm4gbmV3IEF1dGhDaXBoZXIoY29uZmlnLm1vZHVsZSwgcGFzc3dvcmQsIGl2KVxuICB9XG5cbiAgcmV0dXJuIG5ldyBDaXBoZXIoY29uZmlnLm1vZHVsZSwgcGFzc3dvcmQsIGl2KVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDaXBoZXIgKHN1aXRlLCBwYXNzd29yZCkge1xuICB2YXIgY29uZmlnID0gTU9ERVNbc3VpdGUudG9Mb3dlckNhc2UoKV1cbiAgaWYgKCFjb25maWcpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQgc3VpdGUgdHlwZScpXG5cbiAgdmFyIGtleXMgPSBlYnRrKHBhc3N3b3JkLCBmYWxzZSwgY29uZmlnLmtleSwgY29uZmlnLml2KVxuICByZXR1cm4gY3JlYXRlQ2lwaGVyaXYoc3VpdGUsIGtleXMua2V5LCBrZXlzLml2KVxufVxuXG5leHBvcnRzLmNyZWF0ZUNpcGhlcml2ID0gY3JlYXRlQ2lwaGVyaXZcbmV4cG9ydHMuY3JlYXRlQ2lwaGVyID0gY3JlYXRlQ2lwaGVyXG4iLCJ2YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciBaRVJPRVMgPSBCdWZmZXIuYWxsb2MoMTYsIDApXG5cbmZ1bmN0aW9uIHRvQXJyYXkgKGJ1Zikge1xuICByZXR1cm4gW1xuICAgIGJ1Zi5yZWFkVUludDMyQkUoMCksXG4gICAgYnVmLnJlYWRVSW50MzJCRSg0KSxcbiAgICBidWYucmVhZFVJbnQzMkJFKDgpLFxuICAgIGJ1Zi5yZWFkVUludDMyQkUoMTIpXG4gIF1cbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5IChvdXQpIHtcbiAgdmFyIGJ1ZiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgxNilcbiAgYnVmLndyaXRlVUludDMyQkUob3V0WzBdID4+PiAwLCAwKVxuICBidWYud3JpdGVVSW50MzJCRShvdXRbMV0gPj4+IDAsIDQpXG4gIGJ1Zi53cml0ZVVJbnQzMkJFKG91dFsyXSA+Pj4gMCwgOClcbiAgYnVmLndyaXRlVUludDMyQkUob3V0WzNdID4+PiAwLCAxMilcbiAgcmV0dXJuIGJ1ZlxufVxuXG5mdW5jdGlvbiBHSEFTSCAoa2V5KSB7XG4gIHRoaXMuaCA9IGtleVxuICB0aGlzLnN0YXRlID0gQnVmZmVyLmFsbG9jKDE2LCAwKVxuICB0aGlzLmNhY2hlID0gQnVmZmVyLmFsbG9jVW5zYWZlKDApXG59XG5cbi8vIGZyb20gaHR0cDovL2JpdHdpc2VzaGlmdGxlZnQuZ2l0aHViLmlvL3NqY2wvZG9jL3N5bWJvbHMvc3JjL2NvcmVfZ2NtLmpzLmh0bWxcbi8vIGJ5IEp1aG8gVsOkaMOkLUhlcnR0dWFcbkdIQVNILnByb3RvdHlwZS5naGFzaCA9IGZ1bmN0aW9uIChibG9jaykge1xuICB2YXIgaSA9IC0xXG4gIHdoaWxlICgrK2kgPCBibG9jay5sZW5ndGgpIHtcbiAgICB0aGlzLnN0YXRlW2ldIF49IGJsb2NrW2ldXG4gIH1cbiAgdGhpcy5fbXVsdGlwbHkoKVxufVxuXG5HSEFTSC5wcm90b3R5cGUuX211bHRpcGx5ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgVmkgPSB0b0FycmF5KHRoaXMuaClcbiAgdmFyIFppID0gWzAsIDAsIDAsIDBdXG4gIHZhciBqLCB4aSwgbHNiVmlcbiAgdmFyIGkgPSAtMVxuICB3aGlsZSAoKytpIDwgMTI4KSB7XG4gICAgeGkgPSAodGhpcy5zdGF0ZVt+fihpIC8gOCldICYgKDEgPDwgKDcgLSAoaSAlIDgpKSkpICE9PSAwXG4gICAgaWYgKHhpKSB7XG4gICAgICAvLyBaX2krMSA9IFpfaSBeIFZfaVxuICAgICAgWmlbMF0gXj0gVmlbMF1cbiAgICAgIFppWzFdIF49IFZpWzFdXG4gICAgICBaaVsyXSBePSBWaVsyXVxuICAgICAgWmlbM10gXj0gVmlbM11cbiAgICB9XG5cbiAgICAvLyBTdG9yZSB0aGUgdmFsdWUgb2YgTFNCKFZfaSlcbiAgICBsc2JWaSA9IChWaVszXSAmIDEpICE9PSAwXG5cbiAgICAvLyBWX2krMSA9IFZfaSA+PiAxXG4gICAgZm9yIChqID0gMzsgaiA+IDA7IGotLSkge1xuICAgICAgVmlbal0gPSAoVmlbal0gPj4+IDEpIHwgKChWaVtqIC0gMV0gJiAxKSA8PCAzMSlcbiAgICB9XG4gICAgVmlbMF0gPSBWaVswXSA+Pj4gMVxuXG4gICAgLy8gSWYgTFNCKFZfaSkgaXMgMSwgVl9pKzEgPSAoVl9pID4+IDEpIF4gUlxuICAgIGlmIChsc2JWaSkge1xuICAgICAgVmlbMF0gPSBWaVswXSBeICgweGUxIDw8IDI0KVxuICAgIH1cbiAgfVxuICB0aGlzLnN0YXRlID0gZnJvbUFycmF5KFppKVxufVxuXG5HSEFTSC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGJ1Zikge1xuICB0aGlzLmNhY2hlID0gQnVmZmVyLmNvbmNhdChbdGhpcy5jYWNoZSwgYnVmXSlcbiAgdmFyIGNodW5rXG4gIHdoaWxlICh0aGlzLmNhY2hlLmxlbmd0aCA+PSAxNikge1xuICAgIGNodW5rID0gdGhpcy5jYWNoZS5zbGljZSgwLCAxNilcbiAgICB0aGlzLmNhY2hlID0gdGhpcy5jYWNoZS5zbGljZSgxNilcbiAgICB0aGlzLmdoYXNoKGNodW5rKVxuICB9XG59XG5cbkdIQVNILnByb3RvdHlwZS5maW5hbCA9IGZ1bmN0aW9uIChhYmwsIGJsKSB7XG4gIGlmICh0aGlzLmNhY2hlLmxlbmd0aCkge1xuICAgIHRoaXMuZ2hhc2goQnVmZmVyLmNvbmNhdChbdGhpcy5jYWNoZSwgWkVST0VTXSwgMTYpKVxuICB9XG5cbiAgdGhpcy5naGFzaChmcm9tQXJyYXkoWzAsIGFibCwgMCwgYmxdKSlcbiAgcmV0dXJuIHRoaXMuc3RhdGVcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBHSEFTSFxuIiwiZnVuY3Rpb24gaW5jcjMyIChpdikge1xuICB2YXIgbGVuID0gaXYubGVuZ3RoXG4gIHZhciBpdGVtXG4gIHdoaWxlIChsZW4tLSkge1xuICAgIGl0ZW0gPSBpdi5yZWFkVUludDgobGVuKVxuICAgIGlmIChpdGVtID09PSAyNTUpIHtcbiAgICAgIGl2LndyaXRlVUludDgoMCwgbGVuKVxuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtKytcbiAgICAgIGl2LndyaXRlVUludDgoaXRlbSwgbGVuKVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gaW5jcjMyXG4iLCJ2YXIgeG9yID0gcmVxdWlyZSgnYnVmZmVyLXhvcicpXG5cbmV4cG9ydHMuZW5jcnlwdCA9IGZ1bmN0aW9uIChzZWxmLCBibG9jaykge1xuICB2YXIgZGF0YSA9IHhvcihibG9jaywgc2VsZi5fcHJldilcblxuICBzZWxmLl9wcmV2ID0gc2VsZi5fY2lwaGVyLmVuY3J5cHRCbG9jayhkYXRhKVxuICByZXR1cm4gc2VsZi5fcHJldlxufVxuXG5leHBvcnRzLmRlY3J5cHQgPSBmdW5jdGlvbiAoc2VsZiwgYmxvY2spIHtcbiAgdmFyIHBhZCA9IHNlbGYuX3ByZXZcblxuICBzZWxmLl9wcmV2ID0gYmxvY2tcbiAgdmFyIG91dCA9IHNlbGYuX2NpcGhlci5kZWNyeXB0QmxvY2soYmxvY2spXG5cbiAgcmV0dXJuIHhvcihvdXQsIHBhZClcbn1cbiIsInZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxudmFyIHhvciA9IHJlcXVpcmUoJ2J1ZmZlci14b3InKVxuXG5mdW5jdGlvbiBlbmNyeXB0U3RhcnQgKHNlbGYsIGRhdGEsIGRlY3J5cHQpIHtcbiAgdmFyIGxlbiA9IGRhdGEubGVuZ3RoXG4gIHZhciBvdXQgPSB4b3IoZGF0YSwgc2VsZi5fY2FjaGUpXG4gIHNlbGYuX2NhY2hlID0gc2VsZi5fY2FjaGUuc2xpY2UobGVuKVxuICBzZWxmLl9wcmV2ID0gQnVmZmVyLmNvbmNhdChbc2VsZi5fcHJldiwgZGVjcnlwdCA/IGRhdGEgOiBvdXRdKVxuICByZXR1cm4gb3V0XG59XG5cbmV4cG9ydHMuZW5jcnlwdCA9IGZ1bmN0aW9uIChzZWxmLCBkYXRhLCBkZWNyeXB0KSB7XG4gIHZhciBvdXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMClcbiAgdmFyIGxlblxuXG4gIHdoaWxlIChkYXRhLmxlbmd0aCkge1xuICAgIGlmIChzZWxmLl9jYWNoZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHNlbGYuX2NhY2hlID0gc2VsZi5fY2lwaGVyLmVuY3J5cHRCbG9jayhzZWxmLl9wcmV2KVxuICAgICAgc2VsZi5fcHJldiA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgwKVxuICAgIH1cblxuICAgIGlmIChzZWxmLl9jYWNoZS5sZW5ndGggPD0gZGF0YS5sZW5ndGgpIHtcbiAgICAgIGxlbiA9IHNlbGYuX2NhY2hlLmxlbmd0aFxuICAgICAgb3V0ID0gQnVmZmVyLmNvbmNhdChbb3V0LCBlbmNyeXB0U3RhcnQoc2VsZiwgZGF0YS5zbGljZSgwLCBsZW4pLCBkZWNyeXB0KV0pXG4gICAgICBkYXRhID0gZGF0YS5zbGljZShsZW4pXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dCA9IEJ1ZmZlci5jb25jYXQoW291dCwgZW5jcnlwdFN0YXJ0KHNlbGYsIGRhdGEsIGRlY3J5cHQpXSlcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dFxufVxuIiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbmZ1bmN0aW9uIGVuY3J5cHRCeXRlIChzZWxmLCBieXRlUGFyYW0sIGRlY3J5cHQpIHtcbiAgdmFyIHBhZFxuICB2YXIgaSA9IC0xXG4gIHZhciBsZW4gPSA4XG4gIHZhciBvdXQgPSAwXG4gIHZhciBiaXQsIHZhbHVlXG4gIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICBwYWQgPSBzZWxmLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHNlbGYuX3ByZXYpXG4gICAgYml0ID0gKGJ5dGVQYXJhbSAmICgxIDw8ICg3IC0gaSkpKSA/IDB4ODAgOiAwXG4gICAgdmFsdWUgPSBwYWRbMF0gXiBiaXRcbiAgICBvdXQgKz0gKCh2YWx1ZSAmIDB4ODApID4+IChpICUgOCkpXG4gICAgc2VsZi5fcHJldiA9IHNoaWZ0SW4oc2VsZi5fcHJldiwgZGVjcnlwdCA/IGJpdCA6IHZhbHVlKVxuICB9XG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gc2hpZnRJbiAoYnVmZmVyLCB2YWx1ZSkge1xuICB2YXIgbGVuID0gYnVmZmVyLmxlbmd0aFxuICB2YXIgaSA9IC0xXG4gIHZhciBvdXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoYnVmZmVyLmxlbmd0aClcbiAgYnVmZmVyID0gQnVmZmVyLmNvbmNhdChbYnVmZmVyLCBCdWZmZXIuZnJvbShbdmFsdWVdKV0pXG5cbiAgd2hpbGUgKCsraSA8IGxlbikge1xuICAgIG91dFtpXSA9IGJ1ZmZlcltpXSA8PCAxIHwgYnVmZmVyW2kgKyAxXSA+PiAoNylcbiAgfVxuXG4gIHJldHVybiBvdXRcbn1cblxuZXhwb3J0cy5lbmNyeXB0ID0gZnVuY3Rpb24gKHNlbGYsIGNodW5rLCBkZWNyeXB0KSB7XG4gIHZhciBsZW4gPSBjaHVuay5sZW5ndGhcbiAgdmFyIG91dCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShsZW4pXG4gIHZhciBpID0gLTFcblxuICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgb3V0W2ldID0gZW5jcnlwdEJ5dGUoc2VsZiwgY2h1bmtbaV0sIGRlY3J5cHQpXG4gIH1cblxuICByZXR1cm4gb3V0XG59XG4iLCJ2YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcblxuZnVuY3Rpb24gZW5jcnlwdEJ5dGUgKHNlbGYsIGJ5dGVQYXJhbSwgZGVjcnlwdCkge1xuICB2YXIgcGFkID0gc2VsZi5fY2lwaGVyLmVuY3J5cHRCbG9jayhzZWxmLl9wcmV2KVxuICB2YXIgb3V0ID0gcGFkWzBdIF4gYnl0ZVBhcmFtXG5cbiAgc2VsZi5fcHJldiA9IEJ1ZmZlci5jb25jYXQoW1xuICAgIHNlbGYuX3ByZXYuc2xpY2UoMSksXG4gICAgQnVmZmVyLmZyb20oW2RlY3J5cHQgPyBieXRlUGFyYW0gOiBvdXRdKVxuICBdKVxuXG4gIHJldHVybiBvdXRcbn1cblxuZXhwb3J0cy5lbmNyeXB0ID0gZnVuY3Rpb24gKHNlbGYsIGNodW5rLCBkZWNyeXB0KSB7XG4gIHZhciBsZW4gPSBjaHVuay5sZW5ndGhcbiAgdmFyIG91dCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShsZW4pXG4gIHZhciBpID0gLTFcblxuICB3aGlsZSAoKytpIDwgbGVuKSB7XG4gICAgb3V0W2ldID0gZW5jcnlwdEJ5dGUoc2VsZiwgY2h1bmtbaV0sIGRlY3J5cHQpXG4gIH1cblxuICByZXR1cm4gb3V0XG59XG4iLCJ2YXIgeG9yID0gcmVxdWlyZSgnYnVmZmVyLXhvcicpXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciBpbmNyMzIgPSByZXF1aXJlKCcuLi9pbmNyMzInKVxuXG5mdW5jdGlvbiBnZXRCbG9jayAoc2VsZikge1xuICB2YXIgb3V0ID0gc2VsZi5fY2lwaGVyLmVuY3J5cHRCbG9ja1JhdyhzZWxmLl9wcmV2KVxuICBpbmNyMzIoc2VsZi5fcHJldilcbiAgcmV0dXJuIG91dFxufVxuXG52YXIgYmxvY2tTaXplID0gMTZcbmV4cG9ydHMuZW5jcnlwdCA9IGZ1bmN0aW9uIChzZWxmLCBjaHVuaykge1xuICB2YXIgY2h1bmtOdW0gPSBNYXRoLmNlaWwoY2h1bmsubGVuZ3RoIC8gYmxvY2tTaXplKVxuICB2YXIgc3RhcnQgPSBzZWxmLl9jYWNoZS5sZW5ndGhcbiAgc2VsZi5fY2FjaGUgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBzZWxmLl9jYWNoZSxcbiAgICBCdWZmZXIuYWxsb2NVbnNhZmUoY2h1bmtOdW0gKiBibG9ja1NpemUpXG4gIF0pXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2h1bmtOdW07IGkrKykge1xuICAgIHZhciBvdXQgPSBnZXRCbG9jayhzZWxmKVxuICAgIHZhciBvZmZzZXQgPSBzdGFydCArIGkgKiBibG9ja1NpemVcbiAgICBzZWxmLl9jYWNoZS53cml0ZVVJbnQzMkJFKG91dFswXSwgb2Zmc2V0ICsgMClcbiAgICBzZWxmLl9jYWNoZS53cml0ZVVJbnQzMkJFKG91dFsxXSwgb2Zmc2V0ICsgNClcbiAgICBzZWxmLl9jYWNoZS53cml0ZVVJbnQzMkJFKG91dFsyXSwgb2Zmc2V0ICsgOClcbiAgICBzZWxmLl9jYWNoZS53cml0ZVVJbnQzMkJFKG91dFszXSwgb2Zmc2V0ICsgMTIpXG4gIH1cbiAgdmFyIHBhZCA9IHNlbGYuX2NhY2hlLnNsaWNlKDAsIGNodW5rLmxlbmd0aClcbiAgc2VsZi5fY2FjaGUgPSBzZWxmLl9jYWNoZS5zbGljZShjaHVuay5sZW5ndGgpXG4gIHJldHVybiB4b3IoY2h1bmssIHBhZClcbn1cbiIsImV4cG9ydHMuZW5jcnlwdCA9IGZ1bmN0aW9uIChzZWxmLCBibG9jaykge1xuICByZXR1cm4gc2VsZi5fY2lwaGVyLmVuY3J5cHRCbG9jayhibG9jaylcbn1cblxuZXhwb3J0cy5kZWNyeXB0ID0gZnVuY3Rpb24gKHNlbGYsIGJsb2NrKSB7XG4gIHJldHVybiBzZWxmLl9jaXBoZXIuZGVjcnlwdEJsb2NrKGJsb2NrKVxufVxuIiwidmFyIG1vZGVNb2R1bGVzID0ge1xuICBFQ0I6IHJlcXVpcmUoJy4vZWNiJyksXG4gIENCQzogcmVxdWlyZSgnLi9jYmMnKSxcbiAgQ0ZCOiByZXF1aXJlKCcuL2NmYicpLFxuICBDRkI4OiByZXF1aXJlKCcuL2NmYjgnKSxcbiAgQ0ZCMTogcmVxdWlyZSgnLi9jZmIxJyksXG4gIE9GQjogcmVxdWlyZSgnLi9vZmInKSxcbiAgQ1RSOiByZXF1aXJlKCcuL2N0cicpLFxuICBHQ006IHJlcXVpcmUoJy4vY3RyJylcbn1cblxudmFyIG1vZGVzID0gcmVxdWlyZSgnLi9saXN0Lmpzb24nKVxuXG5mb3IgKHZhciBrZXkgaW4gbW9kZXMpIHtcbiAgbW9kZXNba2V5XS5tb2R1bGUgPSBtb2RlTW9kdWxlc1ttb2Rlc1trZXldLm1vZGVdXG59XG5cbm1vZHVsZS5leHBvcnRzID0gbW9kZXNcbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJhZXMtMTI4LWVjYlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxMjgsXG4gICAgXCJpdlwiOiAwLFxuICAgIFwibW9kZVwiOiBcIkVDQlwiLFxuICAgIFwidHlwZVwiOiBcImJsb2NrXCJcbiAgfSxcbiAgXCJhZXMtMTkyLWVjYlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxOTIsXG4gICAgXCJpdlwiOiAwLFxuICAgIFwibW9kZVwiOiBcIkVDQlwiLFxuICAgIFwidHlwZVwiOiBcImJsb2NrXCJcbiAgfSxcbiAgXCJhZXMtMjU2LWVjYlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAyNTYsXG4gICAgXCJpdlwiOiAwLFxuICAgIFwibW9kZVwiOiBcIkVDQlwiLFxuICAgIFwidHlwZVwiOiBcImJsb2NrXCJcbiAgfSxcbiAgXCJhZXMtMTI4LWNiY1wiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxMjgsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDQkNcIixcbiAgICBcInR5cGVcIjogXCJibG9ja1wiXG4gIH0sXG4gIFwiYWVzLTE5Mi1jYmNcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTkyLFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0JDXCIsXG4gICAgXCJ0eXBlXCI6IFwiYmxvY2tcIlxuICB9LFxuICBcImFlcy0yNTYtY2JjXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDI1NixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNCQ1wiLFxuICAgIFwidHlwZVwiOiBcImJsb2NrXCJcbiAgfSxcbiAgXCJhZXMxMjhcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0JDXCIsXG4gICAgXCJ0eXBlXCI6IFwiYmxvY2tcIlxuICB9LFxuICBcImFlczE5MlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxOTIsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDQkNcIixcbiAgICBcInR5cGVcIjogXCJibG9ja1wiXG4gIH0sXG4gIFwiYWVzMjU2XCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDI1NixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNCQ1wiLFxuICAgIFwidHlwZVwiOiBcImJsb2NrXCJcbiAgfSxcbiAgXCJhZXMtMTI4LWNmYlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxMjgsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDRkJcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0xOTItY2ZiXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDE5MixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNGQlwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTI1Ni1jZmJcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMjU2LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0ZCXCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMTI4LWNmYjhcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0ZCOFwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTE5Mi1jZmI4XCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDE5MixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNGQjhcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0yNTYtY2ZiOFwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAyNTYsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDRkI4XCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMTI4LWNmYjFcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMTI4LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ0ZCMVwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTE5Mi1jZmIxXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDE5MixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNGQjFcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0yNTYtY2ZiMVwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAyNTYsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDRkIxXCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMTI4LW9mYlwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxMjgsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJPRkJcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0xOTItb2ZiXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDE5MixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIk9GQlwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTI1Ni1vZmJcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMjU2LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiT0ZCXCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMTI4LWN0clwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxMjgsXG4gICAgXCJpdlwiOiAxNixcbiAgICBcIm1vZGVcIjogXCJDVFJcIixcbiAgICBcInR5cGVcIjogXCJzdHJlYW1cIlxuICB9LFxuICBcImFlcy0xOTItY3RyXCI6IHtcbiAgICBcImNpcGhlclwiOiBcIkFFU1wiLFxuICAgIFwia2V5XCI6IDE5MixcbiAgICBcIml2XCI6IDE2LFxuICAgIFwibW9kZVwiOiBcIkNUUlwiLFxuICAgIFwidHlwZVwiOiBcInN0cmVhbVwiXG4gIH0sXG4gIFwiYWVzLTI1Ni1jdHJcIjoge1xuICAgIFwiY2lwaGVyXCI6IFwiQUVTXCIsXG4gICAgXCJrZXlcIjogMjU2LFxuICAgIFwiaXZcIjogMTYsXG4gICAgXCJtb2RlXCI6IFwiQ1RSXCIsXG4gICAgXCJ0eXBlXCI6IFwic3RyZWFtXCJcbiAgfSxcbiAgXCJhZXMtMTI4LWdjbVwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxMjgsXG4gICAgXCJpdlwiOiAxMixcbiAgICBcIm1vZGVcIjogXCJHQ01cIixcbiAgICBcInR5cGVcIjogXCJhdXRoXCJcbiAgfSxcbiAgXCJhZXMtMTkyLWdjbVwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAxOTIsXG4gICAgXCJpdlwiOiAxMixcbiAgICBcIm1vZGVcIjogXCJHQ01cIixcbiAgICBcInR5cGVcIjogXCJhdXRoXCJcbiAgfSxcbiAgXCJhZXMtMjU2LWdjbVwiOiB7XG4gICAgXCJjaXBoZXJcIjogXCJBRVNcIixcbiAgICBcImtleVwiOiAyNTYsXG4gICAgXCJpdlwiOiAxMixcbiAgICBcIm1vZGVcIjogXCJHQ01cIixcbiAgICBcInR5cGVcIjogXCJhdXRoXCJcbiAgfVxufVxuIiwidmFyIHhvciA9IHJlcXVpcmUoJ2J1ZmZlci14b3InKVxuXG5mdW5jdGlvbiBnZXRCbG9jayAoc2VsZikge1xuICBzZWxmLl9wcmV2ID0gc2VsZi5fY2lwaGVyLmVuY3J5cHRCbG9jayhzZWxmLl9wcmV2KVxuICByZXR1cm4gc2VsZi5fcHJldlxufVxuXG5leHBvcnRzLmVuY3J5cHQgPSBmdW5jdGlvbiAoc2VsZiwgY2h1bmspIHtcbiAgd2hpbGUgKHNlbGYuX2NhY2hlLmxlbmd0aCA8IGNodW5rLmxlbmd0aCkge1xuICAgIHNlbGYuX2NhY2hlID0gQnVmZmVyLmNvbmNhdChbc2VsZi5fY2FjaGUsIGdldEJsb2NrKHNlbGYpXSlcbiAgfVxuXG4gIHZhciBwYWQgPSBzZWxmLl9jYWNoZS5zbGljZSgwLCBjaHVuay5sZW5ndGgpXG4gIHNlbGYuX2NhY2hlID0gc2VsZi5fY2FjaGUuc2xpY2UoY2h1bmsubGVuZ3RoKVxuICByZXR1cm4geG9yKGNodW5rLCBwYWQpXG59XG4iLCJ2YXIgYWVzID0gcmVxdWlyZSgnLi9hZXMnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgVHJhbnNmb3JtID0gcmVxdWlyZSgnY2lwaGVyLWJhc2UnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxuXG5mdW5jdGlvbiBTdHJlYW1DaXBoZXIgKG1vZGUsIGtleSwgaXYsIGRlY3J5cHQpIHtcbiAgVHJhbnNmb3JtLmNhbGwodGhpcylcblxuICB0aGlzLl9jaXBoZXIgPSBuZXcgYWVzLkFFUyhrZXkpXG4gIHRoaXMuX3ByZXYgPSBCdWZmZXIuZnJvbShpdilcbiAgdGhpcy5fY2FjaGUgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMClcbiAgdGhpcy5fc2VjQ2FjaGUgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMClcbiAgdGhpcy5fZGVjcnlwdCA9IGRlY3J5cHRcbiAgdGhpcy5fbW9kZSA9IG1vZGVcbn1cblxuaW5oZXJpdHMoU3RyZWFtQ2lwaGVyLCBUcmFuc2Zvcm0pXG5cblN0cmVhbUNpcGhlci5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChjaHVuaykge1xuICByZXR1cm4gdGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsIGNodW5rLCB0aGlzLl9kZWNyeXB0KVxufVxuXG5TdHJlYW1DaXBoZXIucHJvdG90eXBlLl9maW5hbCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5fY2lwaGVyLnNjcnViKClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTdHJlYW1DaXBoZXJcbiIsInZhciBERVMgPSByZXF1aXJlKCdicm93c2VyaWZ5LWRlcycpXG52YXIgYWVzID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1hZXMvYnJvd3NlcicpXG52YXIgYWVzTW9kZXMgPSByZXF1aXJlKCdicm93c2VyaWZ5LWFlcy9tb2RlcycpXG52YXIgZGVzTW9kZXMgPSByZXF1aXJlKCdicm93c2VyaWZ5LWRlcy9tb2RlcycpXG52YXIgZWJ0ayA9IHJlcXVpcmUoJ2V2cF9ieXRlc3Rva2V5JylcblxuZnVuY3Rpb24gY3JlYXRlQ2lwaGVyIChzdWl0ZSwgcGFzc3dvcmQpIHtcbiAgc3VpdGUgPSBzdWl0ZS50b0xvd2VyQ2FzZSgpXG5cbiAgdmFyIGtleUxlbiwgaXZMZW5cbiAgaWYgKGFlc01vZGVzW3N1aXRlXSkge1xuICAgIGtleUxlbiA9IGFlc01vZGVzW3N1aXRlXS5rZXlcbiAgICBpdkxlbiA9IGFlc01vZGVzW3N1aXRlXS5pdlxuICB9IGVsc2UgaWYgKGRlc01vZGVzW3N1aXRlXSkge1xuICAgIGtleUxlbiA9IGRlc01vZGVzW3N1aXRlXS5rZXkgKiA4XG4gICAgaXZMZW4gPSBkZXNNb2Rlc1tzdWl0ZV0uaXZcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIHN1aXRlIHR5cGUnKVxuICB9XG5cbiAgdmFyIGtleXMgPSBlYnRrKHBhc3N3b3JkLCBmYWxzZSwga2V5TGVuLCBpdkxlbilcbiAgcmV0dXJuIGNyZWF0ZUNpcGhlcml2KHN1aXRlLCBrZXlzLmtleSwga2V5cy5pdilcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVjaXBoZXIgKHN1aXRlLCBwYXNzd29yZCkge1xuICBzdWl0ZSA9IHN1aXRlLnRvTG93ZXJDYXNlKClcblxuICB2YXIga2V5TGVuLCBpdkxlblxuICBpZiAoYWVzTW9kZXNbc3VpdGVdKSB7XG4gICAga2V5TGVuID0gYWVzTW9kZXNbc3VpdGVdLmtleVxuICAgIGl2TGVuID0gYWVzTW9kZXNbc3VpdGVdLml2XG4gIH0gZWxzZSBpZiAoZGVzTW9kZXNbc3VpdGVdKSB7XG4gICAga2V5TGVuID0gZGVzTW9kZXNbc3VpdGVdLmtleSAqIDhcbiAgICBpdkxlbiA9IGRlc01vZGVzW3N1aXRlXS5pdlxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQgc3VpdGUgdHlwZScpXG4gIH1cblxuICB2YXIga2V5cyA9IGVidGsocGFzc3dvcmQsIGZhbHNlLCBrZXlMZW4sIGl2TGVuKVxuICByZXR1cm4gY3JlYXRlRGVjaXBoZXJpdihzdWl0ZSwga2V5cy5rZXksIGtleXMuaXYpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNpcGhlcml2IChzdWl0ZSwga2V5LCBpdikge1xuICBzdWl0ZSA9IHN1aXRlLnRvTG93ZXJDYXNlKClcbiAgaWYgKGFlc01vZGVzW3N1aXRlXSkgcmV0dXJuIGFlcy5jcmVhdGVDaXBoZXJpdihzdWl0ZSwga2V5LCBpdilcbiAgaWYgKGRlc01vZGVzW3N1aXRlXSkgcmV0dXJuIG5ldyBERVMoeyBrZXk6IGtleSwgaXY6IGl2LCBtb2RlOiBzdWl0ZSB9KVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IoJ2ludmFsaWQgc3VpdGUgdHlwZScpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURlY2lwaGVyaXYgKHN1aXRlLCBrZXksIGl2KSB7XG4gIHN1aXRlID0gc3VpdGUudG9Mb3dlckNhc2UoKVxuICBpZiAoYWVzTW9kZXNbc3VpdGVdKSByZXR1cm4gYWVzLmNyZWF0ZURlY2lwaGVyaXYoc3VpdGUsIGtleSwgaXYpXG4gIGlmIChkZXNNb2Rlc1tzdWl0ZV0pIHJldHVybiBuZXcgREVTKHsga2V5OiBrZXksIGl2OiBpdiwgbW9kZTogc3VpdGUsIGRlY3J5cHQ6IHRydWUgfSlcblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIHN1aXRlIHR5cGUnKVxufVxuXG5mdW5jdGlvbiBnZXRDaXBoZXJzICgpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKGRlc01vZGVzKS5jb25jYXQoYWVzLmdldENpcGhlcnMoKSlcbn1cblxuZXhwb3J0cy5jcmVhdGVDaXBoZXIgPSBleHBvcnRzLkNpcGhlciA9IGNyZWF0ZUNpcGhlclxuZXhwb3J0cy5jcmVhdGVDaXBoZXJpdiA9IGV4cG9ydHMuQ2lwaGVyaXYgPSBjcmVhdGVDaXBoZXJpdlxuZXhwb3J0cy5jcmVhdGVEZWNpcGhlciA9IGV4cG9ydHMuRGVjaXBoZXIgPSBjcmVhdGVEZWNpcGhlclxuZXhwb3J0cy5jcmVhdGVEZWNpcGhlcml2ID0gZXhwb3J0cy5EZWNpcGhlcml2ID0gY3JlYXRlRGVjaXBoZXJpdlxuZXhwb3J0cy5saXN0Q2lwaGVycyA9IGV4cG9ydHMuZ2V0Q2lwaGVycyA9IGdldENpcGhlcnNcbiIsInZhciBDaXBoZXJCYXNlID0gcmVxdWlyZSgnY2lwaGVyLWJhc2UnKVxudmFyIGRlcyA9IHJlcXVpcmUoJ2Rlcy5qcycpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG5cbnZhciBtb2RlcyA9IHtcbiAgJ2Rlcy1lZGUzLWNiYyc6IGRlcy5DQkMuaW5zdGFudGlhdGUoZGVzLkVERSksXG4gICdkZXMtZWRlMyc6IGRlcy5FREUsXG4gICdkZXMtZWRlLWNiYyc6IGRlcy5DQkMuaW5zdGFudGlhdGUoZGVzLkVERSksXG4gICdkZXMtZWRlJzogZGVzLkVERSxcbiAgJ2Rlcy1jYmMnOiBkZXMuQ0JDLmluc3RhbnRpYXRlKGRlcy5ERVMpLFxuICAnZGVzLWVjYic6IGRlcy5ERVNcbn1cbm1vZGVzLmRlcyA9IG1vZGVzWydkZXMtY2JjJ11cbm1vZGVzLmRlczMgPSBtb2Rlc1snZGVzLWVkZTMtY2JjJ11cbm1vZHVsZS5leHBvcnRzID0gREVTXG5pbmhlcml0cyhERVMsIENpcGhlckJhc2UpXG5mdW5jdGlvbiBERVMgKG9wdHMpIHtcbiAgQ2lwaGVyQmFzZS5jYWxsKHRoaXMpXG4gIHZhciBtb2RlTmFtZSA9IG9wdHMubW9kZS50b0xvd2VyQ2FzZSgpXG4gIHZhciBtb2RlID0gbW9kZXNbbW9kZU5hbWVdXG4gIHZhciB0eXBlXG4gIGlmIChvcHRzLmRlY3J5cHQpIHtcbiAgICB0eXBlID0gJ2RlY3J5cHQnXG4gIH0gZWxzZSB7XG4gICAgdHlwZSA9ICdlbmNyeXB0J1xuICB9XG4gIHZhciBrZXkgPSBvcHRzLmtleVxuICBpZiAobW9kZU5hbWUgPT09ICdkZXMtZWRlJyB8fCBtb2RlTmFtZSA9PT0gJ2Rlcy1lZGUtY2JjJykge1xuICAgIGtleSA9IEJ1ZmZlci5jb25jYXQoW2tleSwga2V5LnNsaWNlKDAsIDgpXSlcbiAgfVxuICB2YXIgaXYgPSBvcHRzLml2XG4gIHRoaXMuX2RlcyA9IG1vZGUuY3JlYXRlKHtcbiAgICBrZXk6IGtleSxcbiAgICBpdjogaXYsXG4gICAgdHlwZTogdHlwZVxuICB9KVxufVxuREVTLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgcmV0dXJuIG5ldyBCdWZmZXIodGhpcy5fZGVzLnVwZGF0ZShkYXRhKSlcbn1cbkRFUy5wcm90b3R5cGUuX2ZpbmFsID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IEJ1ZmZlcih0aGlzLl9kZXMuZmluYWwoKSlcbn1cbiIsImV4cG9ydHNbJ2Rlcy1lY2InXSA9IHtcbiAga2V5OiA4LFxuICBpdjogMFxufVxuZXhwb3J0c1snZGVzLWNiYyddID0gZXhwb3J0cy5kZXMgPSB7XG4gIGtleTogOCxcbiAgaXY6IDhcbn1cbmV4cG9ydHNbJ2Rlcy1lZGUzLWNiYyddID0gZXhwb3J0cy5kZXMzID0ge1xuICBrZXk6IDI0LFxuICBpdjogOFxufVxuZXhwb3J0c1snZGVzLWVkZTMnXSA9IHtcbiAga2V5OiAyNCxcbiAgaXY6IDBcbn1cbmV4cG9ydHNbJ2Rlcy1lZGUtY2JjJ10gPSB7XG4gIGtleTogMTYsXG4gIGl2OiA4XG59XG5leHBvcnRzWydkZXMtZWRlJ10gPSB7XG4gIGtleTogMTYsXG4gIGl2OiAwXG59XG4iLCJ2YXIgYm4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIHJhbmRvbUJ5dGVzID0gcmVxdWlyZSgncmFuZG9tYnl0ZXMnKTtcbm1vZHVsZS5leHBvcnRzID0gY3J0O1xuZnVuY3Rpb24gYmxpbmQocHJpdikge1xuICB2YXIgciA9IGdldHIocHJpdik7XG4gIHZhciBibGluZGVyID0gci50b1JlZChibi5tb250KHByaXYubW9kdWx1cykpXG4gIC5yZWRQb3cobmV3IGJuKHByaXYucHVibGljRXhwb25lbnQpKS5mcm9tUmVkKCk7XG4gIHJldHVybiB7XG4gICAgYmxpbmRlcjogYmxpbmRlcixcbiAgICB1bmJsaW5kZXI6ci5pbnZtKHByaXYubW9kdWx1cylcbiAgfTtcbn1cbmZ1bmN0aW9uIGNydChtc2csIHByaXYpIHtcbiAgdmFyIGJsaW5kcyA9IGJsaW5kKHByaXYpO1xuICB2YXIgbGVuID0gcHJpdi5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtcbiAgdmFyIG1vZCA9IGJuLm1vbnQocHJpdi5tb2R1bHVzKTtcbiAgdmFyIGJsaW5kZWQgPSBuZXcgYm4obXNnKS5tdWwoYmxpbmRzLmJsaW5kZXIpLnVtb2QocHJpdi5tb2R1bHVzKTtcbiAgdmFyIGMxID0gYmxpbmRlZC50b1JlZChibi5tb250KHByaXYucHJpbWUxKSk7XG4gIHZhciBjMiA9IGJsaW5kZWQudG9SZWQoYm4ubW9udChwcml2LnByaW1lMikpO1xuICB2YXIgcWludiA9IHByaXYuY29lZmZpY2llbnQ7XG4gIHZhciBwID0gcHJpdi5wcmltZTE7XG4gIHZhciBxID0gcHJpdi5wcmltZTI7XG4gIHZhciBtMSA9IGMxLnJlZFBvdyhwcml2LmV4cG9uZW50MSk7XG4gIHZhciBtMiA9IGMyLnJlZFBvdyhwcml2LmV4cG9uZW50Mik7XG4gIG0xID0gbTEuZnJvbVJlZCgpO1xuICBtMiA9IG0yLmZyb21SZWQoKTtcbiAgdmFyIGggPSBtMS5pc3ViKG0yKS5pbXVsKHFpbnYpLnVtb2QocCk7XG4gIGguaW11bChxKTtcbiAgbTIuaWFkZChoKTtcbiAgcmV0dXJuIG5ldyBCdWZmZXIobTIuaW11bChibGluZHMudW5ibGluZGVyKS51bW9kKHByaXYubW9kdWx1cykudG9BcnJheShmYWxzZSwgbGVuKSk7XG59XG5jcnQuZ2V0ciA9IGdldHI7XG5mdW5jdGlvbiBnZXRyKHByaXYpIHtcbiAgdmFyIGxlbiA9IHByaXYubW9kdWx1cy5ieXRlTGVuZ3RoKCk7XG4gIHZhciByID0gbmV3IGJuKHJhbmRvbUJ5dGVzKGxlbikpO1xuICB3aGlsZSAoci5jbXAocHJpdi5tb2R1bHVzKSA+PSAgMCB8fCAhci51bW9kKHByaXYucHJpbWUxKSB8fCAhci51bW9kKHByaXYucHJpbWUyKSkge1xuICAgIHIgPSBuZXcgYm4ocmFuZG9tQnl0ZXMobGVuKSk7XG4gIH1cbiAgcmV0dXJuIHI7XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vYnJvd3Nlci9hbGdvcml0aG1zLmpzb24nKVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcInNoYTIyNFdpdGhSU0FFbmNyeXB0aW9uXCI6IHtcbiAgICBcInNpZ25cIjogXCJyc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEyMjRcIixcbiAgICBcImlkXCI6IFwiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWNcIlxuICB9LFxuICBcIlJTQS1TSEEyMjRcIjoge1xuICAgIFwic2lnblwiOiBcImVjZHNhL3JzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTIyNFwiLFxuICAgIFwiaWRcIjogXCIzMDJkMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDQwNTAwMDQxY1wiXG4gIH0sXG4gIFwic2hhMjU2V2l0aFJTQUVuY3J5cHRpb25cIjoge1xuICAgIFwic2lnblwiOiBcInJzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTI1NlwiLFxuICAgIFwiaWRcIjogXCIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMFwiXG4gIH0sXG4gIFwiUlNBLVNIQTI1NlwiOiB7XG4gICAgXCJzaWduXCI6IFwiZWNkc2EvcnNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMjU2XCIsXG4gICAgXCJpZFwiOiBcIjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwXCJcbiAgfSxcbiAgXCJzaGEzODRXaXRoUlNBRW5jcnlwdGlvblwiOiB7XG4gICAgXCJzaWduXCI6IFwicnNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMzg0XCIsXG4gICAgXCJpZFwiOiBcIjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwXCJcbiAgfSxcbiAgXCJSU0EtU0hBMzg0XCI6IHtcbiAgICBcInNpZ25cIjogXCJlY2RzYS9yc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEzODRcIixcbiAgICBcImlkXCI6IFwiMzA0MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAyMDUwMDA0MzBcIlxuICB9LFxuICBcInNoYTUxMldpdGhSU0FFbmNyeXB0aW9uXCI6IHtcbiAgICBcInNpZ25cIjogXCJyc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGE1MTJcIixcbiAgICBcImlkXCI6IFwiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDBcIlxuICB9LFxuICBcIlJTQS1TSEE1MTJcIjoge1xuICAgIFwic2lnblwiOiBcImVjZHNhL3JzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTUxMlwiLFxuICAgIFwiaWRcIjogXCIzMDUxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDMwNTAwMDQ0MFwiXG4gIH0sXG4gIFwiUlNBLVNIQTFcIjoge1xuICAgIFwic2lnblwiOiBcInJzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTFcIixcbiAgICBcImlkXCI6IFwiMzAyMTMwMDkwNjA1MmIwZTAzMDIxYTA1MDAwNDE0XCJcbiAgfSxcbiAgXCJlY2RzYS13aXRoLVNIQTFcIjoge1xuICAgIFwic2lnblwiOiBcImVjZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMVwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcInNoYTI1NlwiOiB7XG4gICAgXCJzaWduXCI6IFwiZWNkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEyNTZcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJzaGEyMjRcIjoge1xuICAgIFwic2lnblwiOiBcImVjZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMjI0XCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwic2hhMzg0XCI6IHtcbiAgICBcInNpZ25cIjogXCJlY2RzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTM4NFwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcInNoYTUxMlwiOiB7XG4gICAgXCJzaWduXCI6IFwiZWNkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGE1MTJcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0EtU0hBXCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGExXCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwiRFNBLVNIQTFcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTFcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0FcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTFcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0EtV0lUSC1TSEEyMjRcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTIyNFwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcIkRTQS1TSEEyMjRcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTIyNFwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcIkRTQS1XSVRILVNIQTI1NlwiOiB7XG4gICAgXCJzaWduXCI6IFwiZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMjU2XCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwiRFNBLVNIQTI1NlwiOiB7XG4gICAgXCJzaWduXCI6IFwiZHNhXCIsXG4gICAgXCJoYXNoXCI6IFwic2hhMjU2XCIsXG4gICAgXCJpZFwiOiBcIlwiXG4gIH0sXG4gIFwiRFNBLVdJVEgtU0hBMzg0XCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEzODRcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0EtU0hBMzg0XCI6IHtcbiAgICBcInNpZ25cIjogXCJkc2FcIixcbiAgICBcImhhc2hcIjogXCJzaGEzODRcIixcbiAgICBcImlkXCI6IFwiXCJcbiAgfSxcbiAgXCJEU0EtV0lUSC1TSEE1MTJcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTUxMlwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcIkRTQS1TSEE1MTJcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInNoYTUxMlwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcIkRTQS1SSVBFTUQxNjBcIjoge1xuICAgIFwic2lnblwiOiBcImRzYVwiLFxuICAgIFwiaGFzaFwiOiBcInJtZDE2MFwiLFxuICAgIFwiaWRcIjogXCJcIlxuICB9LFxuICBcInJpcGVtZDE2MFdpdGhSU0FcIjoge1xuICAgIFwic2lnblwiOiBcInJzYVwiLFxuICAgIFwiaGFzaFwiOiBcInJtZDE2MFwiLFxuICAgIFwiaWRcIjogXCIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTRcIlxuICB9LFxuICBcIlJTQS1SSVBFTUQxNjBcIjoge1xuICAgIFwic2lnblwiOiBcInJzYVwiLFxuICAgIFwiaGFzaFwiOiBcInJtZDE2MFwiLFxuICAgIFwiaWRcIjogXCIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTRcIlxuICB9LFxuICBcIm1kNVdpdGhSU0FFbmNyeXB0aW9uXCI6IHtcbiAgICBcInNpZ25cIjogXCJyc2FcIixcbiAgICBcImhhc2hcIjogXCJtZDVcIixcbiAgICBcImlkXCI6IFwiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwXCJcbiAgfSxcbiAgXCJSU0EtTUQ1XCI6IHtcbiAgICBcInNpZ25cIjogXCJyc2FcIixcbiAgICBcImhhc2hcIjogXCJtZDVcIixcbiAgICBcImlkXCI6IFwiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwXCJcbiAgfVxufVxuIiwibW9kdWxlLmV4cG9ydHM9e1xuICBcIjEuMy4xMzIuMC4xMFwiOiBcInNlY3AyNTZrMVwiLFxuICBcIjEuMy4xMzIuMC4zM1wiOiBcInAyMjRcIixcbiAgXCIxLjIuODQwLjEwMDQ1LjMuMS4xXCI6IFwicDE5MlwiLFxuICBcIjEuMi44NDAuMTAwNDUuMy4xLjdcIjogXCJwMjU2XCIsXG4gIFwiMS4zLjEzMi4wLjM0XCI6IFwicDM4NFwiLFxuICBcIjEuMy4xMzIuMC4zNVwiOiBcInA1MjFcIlxufVxuIiwidmFyIGNyZWF0ZUhhc2ggPSByZXF1aXJlKCdjcmVhdGUtaGFzaCcpXG52YXIgc3RyZWFtID0gcmVxdWlyZSgnc3RyZWFtJylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBzaWduID0gcmVxdWlyZSgnLi9zaWduJylcbnZhciB2ZXJpZnkgPSByZXF1aXJlKCcuL3ZlcmlmeScpXG5cbnZhciBhbGdvcml0aG1zID0gcmVxdWlyZSgnLi9hbGdvcml0aG1zLmpzb24nKVxuT2JqZWN0LmtleXMoYWxnb3JpdGhtcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gIGFsZ29yaXRobXNba2V5XS5pZCA9IG5ldyBCdWZmZXIoYWxnb3JpdGhtc1trZXldLmlkLCAnaGV4JylcbiAgYWxnb3JpdGhtc1trZXkudG9Mb3dlckNhc2UoKV0gPSBhbGdvcml0aG1zW2tleV1cbn0pXG5cbmZ1bmN0aW9uIFNpZ24gKGFsZ29yaXRobSkge1xuICBzdHJlYW0uV3JpdGFibGUuY2FsbCh0aGlzKVxuXG4gIHZhciBkYXRhID0gYWxnb3JpdGhtc1thbGdvcml0aG1dXG4gIGlmICghZGF0YSkgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIG1lc3NhZ2UgZGlnZXN0JylcblxuICB0aGlzLl9oYXNoVHlwZSA9IGRhdGEuaGFzaFxuICB0aGlzLl9oYXNoID0gY3JlYXRlSGFzaChkYXRhLmhhc2gpXG4gIHRoaXMuX3RhZyA9IGRhdGEuaWRcbiAgdGhpcy5fc2lnblR5cGUgPSBkYXRhLnNpZ25cbn1cbmluaGVyaXRzKFNpZ24sIHN0cmVhbS5Xcml0YWJsZSlcblxuU2lnbi5wcm90b3R5cGUuX3dyaXRlID0gZnVuY3Rpb24gX3dyaXRlIChkYXRhLCBfLCBkb25lKSB7XG4gIHRoaXMuX2hhc2gudXBkYXRlKGRhdGEpXG4gIGRvbmUoKVxufVxuXG5TaWduLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiB1cGRhdGUgKGRhdGEsIGVuYykge1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSBkYXRhID0gbmV3IEJ1ZmZlcihkYXRhLCBlbmMpXG5cbiAgdGhpcy5faGFzaC51cGRhdGUoZGF0YSlcbiAgcmV0dXJuIHRoaXNcbn1cblxuU2lnbi5wcm90b3R5cGUuc2lnbiA9IGZ1bmN0aW9uIHNpZ25NZXRob2QgKGtleSwgZW5jKSB7XG4gIHRoaXMuZW5kKClcbiAgdmFyIGhhc2ggPSB0aGlzLl9oYXNoLmRpZ2VzdCgpXG4gIHZhciBzaWcgPSBzaWduKGhhc2gsIGtleSwgdGhpcy5faGFzaFR5cGUsIHRoaXMuX3NpZ25UeXBlLCB0aGlzLl90YWcpXG5cbiAgcmV0dXJuIGVuYyA/IHNpZy50b1N0cmluZyhlbmMpIDogc2lnXG59XG5cbmZ1bmN0aW9uIFZlcmlmeSAoYWxnb3JpdGhtKSB7XG4gIHN0cmVhbS5Xcml0YWJsZS5jYWxsKHRoaXMpXG5cbiAgdmFyIGRhdGEgPSBhbGdvcml0aG1zW2FsZ29yaXRobV1cbiAgaWYgKCFkYXRhKSB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbWVzc2FnZSBkaWdlc3QnKVxuXG4gIHRoaXMuX2hhc2ggPSBjcmVhdGVIYXNoKGRhdGEuaGFzaClcbiAgdGhpcy5fdGFnID0gZGF0YS5pZFxuICB0aGlzLl9zaWduVHlwZSA9IGRhdGEuc2lnblxufVxuaW5oZXJpdHMoVmVyaWZ5LCBzdHJlYW0uV3JpdGFibGUpXG5cblZlcmlmeS5wcm90b3R5cGUuX3dyaXRlID0gZnVuY3Rpb24gX3dyaXRlIChkYXRhLCBfLCBkb25lKSB7XG4gIHRoaXMuX2hhc2gudXBkYXRlKGRhdGEpXG4gIGRvbmUoKVxufVxuXG5WZXJpZnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIHVwZGF0ZSAoZGF0YSwgZW5jKSB7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIGRhdGEgPSBuZXcgQnVmZmVyKGRhdGEsIGVuYylcblxuICB0aGlzLl9oYXNoLnVwZGF0ZShkYXRhKVxuICByZXR1cm4gdGhpc1xufVxuXG5WZXJpZnkucHJvdG90eXBlLnZlcmlmeSA9IGZ1bmN0aW9uIHZlcmlmeU1ldGhvZCAoa2V5LCBzaWcsIGVuYykge1xuICBpZiAodHlwZW9mIHNpZyA9PT0gJ3N0cmluZycpIHNpZyA9IG5ldyBCdWZmZXIoc2lnLCBlbmMpXG5cbiAgdGhpcy5lbmQoKVxuICB2YXIgaGFzaCA9IHRoaXMuX2hhc2guZGlnZXN0KClcbiAgcmV0dXJuIHZlcmlmeShzaWcsIGhhc2gsIGtleSwgdGhpcy5fc2lnblR5cGUsIHRoaXMuX3RhZylcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2lnbiAoYWxnb3JpdGhtKSB7XG4gIHJldHVybiBuZXcgU2lnbihhbGdvcml0aG0pXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVZlcmlmeSAoYWxnb3JpdGhtKSB7XG4gIHJldHVybiBuZXcgVmVyaWZ5KGFsZ29yaXRobSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIFNpZ246IGNyZWF0ZVNpZ24sXG4gIFZlcmlmeTogY3JlYXRlVmVyaWZ5LFxuICBjcmVhdGVTaWduOiBjcmVhdGVTaWduLFxuICBjcmVhdGVWZXJpZnk6IGNyZWF0ZVZlcmlmeVxufVxuIiwiLy8gbXVjaCBvZiB0aGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmR1dG55L3NlbGYtc2lnbmVkL2Jsb2IvZ2gtcGFnZXMvbGliL3JzYS5qc1xudmFyIGNyZWF0ZUhtYWMgPSByZXF1aXJlKCdjcmVhdGUtaG1hYycpXG52YXIgY3J0ID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1yc2EnKVxudmFyIEVDID0gcmVxdWlyZSgnZWxsaXB0aWMnKS5lY1xudmFyIEJOID0gcmVxdWlyZSgnYm4uanMnKVxudmFyIHBhcnNlS2V5cyA9IHJlcXVpcmUoJ3BhcnNlLWFzbjEnKVxudmFyIGN1cnZlcyA9IHJlcXVpcmUoJy4vY3VydmVzLmpzb24nKVxuXG5mdW5jdGlvbiBzaWduIChoYXNoLCBrZXksIGhhc2hUeXBlLCBzaWduVHlwZSwgdGFnKSB7XG4gIHZhciBwcml2ID0gcGFyc2VLZXlzKGtleSlcbiAgaWYgKHByaXYuY3VydmUpIHtcbiAgICAvLyByc2Ega2V5cyBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgZWNkc2Egb25lcyBpbiBvcGVuc3NsXG4gICAgaWYgKHNpZ25UeXBlICE9PSAnZWNkc2EnICYmIHNpZ25UeXBlICE9PSAnZWNkc2EvcnNhJykgdGhyb3cgbmV3IEVycm9yKCd3cm9uZyBwcml2YXRlIGtleSB0eXBlJylcbiAgICByZXR1cm4gZWNTaWduKGhhc2gsIHByaXYpXG4gIH0gZWxzZSBpZiAocHJpdi50eXBlID09PSAnZHNhJykge1xuICAgIGlmIChzaWduVHlwZSAhPT0gJ2RzYScpIHRocm93IG5ldyBFcnJvcignd3JvbmcgcHJpdmF0ZSBrZXkgdHlwZScpXG4gICAgcmV0dXJuIGRzYVNpZ24oaGFzaCwgcHJpdiwgaGFzaFR5cGUpXG4gIH0gZWxzZSB7XG4gICAgaWYgKHNpZ25UeXBlICE9PSAncnNhJyAmJiBzaWduVHlwZSAhPT0gJ2VjZHNhL3JzYScpIHRocm93IG5ldyBFcnJvcignd3JvbmcgcHJpdmF0ZSBrZXkgdHlwZScpXG4gIH1cbiAgaGFzaCA9IEJ1ZmZlci5jb25jYXQoW3RhZywgaGFzaF0pXG4gIHZhciBsZW4gPSBwcml2Lm1vZHVsdXMuYnl0ZUxlbmd0aCgpXG4gIHZhciBwYWQgPSBbIDAsIDEgXVxuICB3aGlsZSAoaGFzaC5sZW5ndGggKyBwYWQubGVuZ3RoICsgMSA8IGxlbikgcGFkLnB1c2goMHhmZilcbiAgcGFkLnB1c2goMHgwMClcbiAgdmFyIGkgPSAtMVxuICB3aGlsZSAoKytpIDwgaGFzaC5sZW5ndGgpIHBhZC5wdXNoKGhhc2hbaV0pXG5cbiAgdmFyIG91dCA9IGNydChwYWQsIHByaXYpXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gZWNTaWduIChoYXNoLCBwcml2KSB7XG4gIHZhciBjdXJ2ZUlkID0gY3VydmVzW3ByaXYuY3VydmUuam9pbignLicpXVxuICBpZiAoIWN1cnZlSWQpIHRocm93IG5ldyBFcnJvcigndW5rbm93biBjdXJ2ZSAnICsgcHJpdi5jdXJ2ZS5qb2luKCcuJykpXG5cbiAgdmFyIGN1cnZlID0gbmV3IEVDKGN1cnZlSWQpXG4gIHZhciBrZXkgPSBjdXJ2ZS5rZXlGcm9tUHJpdmF0ZShwcml2LnByaXZhdGVLZXkpXG4gIHZhciBvdXQgPSBrZXkuc2lnbihoYXNoKVxuXG4gIHJldHVybiBuZXcgQnVmZmVyKG91dC50b0RFUigpKVxufVxuXG5mdW5jdGlvbiBkc2FTaWduIChoYXNoLCBwcml2LCBhbGdvKSB7XG4gIHZhciB4ID0gcHJpdi5wYXJhbXMucHJpdl9rZXlcbiAgdmFyIHAgPSBwcml2LnBhcmFtcy5wXG4gIHZhciBxID0gcHJpdi5wYXJhbXMucVxuICB2YXIgZyA9IHByaXYucGFyYW1zLmdcbiAgdmFyIHIgPSBuZXcgQk4oMClcbiAgdmFyIGtcbiAgdmFyIEggPSBiaXRzMmludChoYXNoLCBxKS5tb2QocSlcbiAgdmFyIHMgPSBmYWxzZVxuICB2YXIga3YgPSBnZXRLZXkoeCwgcSwgaGFzaCwgYWxnbylcbiAgd2hpbGUgKHMgPT09IGZhbHNlKSB7XG4gICAgayA9IG1ha2VLZXkocSwga3YsIGFsZ28pXG4gICAgciA9IG1ha2VSKGcsIGssIHAsIHEpXG4gICAgcyA9IGsuaW52bShxKS5pbXVsKEguYWRkKHgubXVsKHIpKSkubW9kKHEpXG4gICAgaWYgKHMuY21wbigwKSA9PT0gMCkge1xuICAgICAgcyA9IGZhbHNlXG4gICAgICByID0gbmV3IEJOKDApXG4gICAgfVxuICB9XG4gIHJldHVybiB0b0RFUihyLCBzKVxufVxuXG5mdW5jdGlvbiB0b0RFUiAociwgcykge1xuICByID0gci50b0FycmF5KClcbiAgcyA9IHMudG9BcnJheSgpXG5cbiAgLy8gUGFkIHZhbHVlc1xuICBpZiAoclswXSAmIDB4ODApIHIgPSBbIDAgXS5jb25jYXQocilcbiAgaWYgKHNbMF0gJiAweDgwKSBzID0gWyAwIF0uY29uY2F0KHMpXG5cbiAgdmFyIHRvdGFsID0gci5sZW5ndGggKyBzLmxlbmd0aCArIDRcbiAgdmFyIHJlcyA9IFsgMHgzMCwgdG90YWwsIDB4MDIsIHIubGVuZ3RoIF1cbiAgcmVzID0gcmVzLmNvbmNhdChyLCBbIDB4MDIsIHMubGVuZ3RoIF0sIHMpXG4gIHJldHVybiBuZXcgQnVmZmVyKHJlcylcbn1cblxuZnVuY3Rpb24gZ2V0S2V5ICh4LCBxLCBoYXNoLCBhbGdvKSB7XG4gIHggPSBuZXcgQnVmZmVyKHgudG9BcnJheSgpKVxuICBpZiAoeC5sZW5ndGggPCBxLmJ5dGVMZW5ndGgoKSkge1xuICAgIHZhciB6ZXJvcyA9IG5ldyBCdWZmZXIocS5ieXRlTGVuZ3RoKCkgLSB4Lmxlbmd0aClcbiAgICB6ZXJvcy5maWxsKDApXG4gICAgeCA9IEJ1ZmZlci5jb25jYXQoWyB6ZXJvcywgeCBdKVxuICB9XG4gIHZhciBobGVuID0gaGFzaC5sZW5ndGhcbiAgdmFyIGhiaXRzID0gYml0czJvY3RldHMoaGFzaCwgcSlcbiAgdmFyIHYgPSBuZXcgQnVmZmVyKGhsZW4pXG4gIHYuZmlsbCgxKVxuICB2YXIgayA9IG5ldyBCdWZmZXIoaGxlbilcbiAgay5maWxsKDApXG4gIGsgPSBjcmVhdGVIbWFjKGFsZ28sIGspLnVwZGF0ZSh2KS51cGRhdGUobmV3IEJ1ZmZlcihbIDAgXSkpLnVwZGF0ZSh4KS51cGRhdGUoaGJpdHMpLmRpZ2VzdCgpXG4gIHYgPSBjcmVhdGVIbWFjKGFsZ28sIGspLnVwZGF0ZSh2KS5kaWdlc3QoKVxuICBrID0gY3JlYXRlSG1hYyhhbGdvLCBrKS51cGRhdGUodikudXBkYXRlKG5ldyBCdWZmZXIoWyAxIF0pKS51cGRhdGUoeCkudXBkYXRlKGhiaXRzKS5kaWdlc3QoKVxuICB2ID0gY3JlYXRlSG1hYyhhbGdvLCBrKS51cGRhdGUodikuZGlnZXN0KClcbiAgcmV0dXJuIHsgazogaywgdjogdiB9XG59XG5cbmZ1bmN0aW9uIGJpdHMyaW50IChvYml0cywgcSkge1xuICB2YXIgYml0cyA9IG5ldyBCTihvYml0cylcbiAgdmFyIHNoaWZ0ID0gKG9iaXRzLmxlbmd0aCA8PCAzKSAtIHEuYml0TGVuZ3RoKClcbiAgaWYgKHNoaWZ0ID4gMCkgYml0cy5pc2hybihzaGlmdClcbiAgcmV0dXJuIGJpdHNcbn1cblxuZnVuY3Rpb24gYml0czJvY3RldHMgKGJpdHMsIHEpIHtcbiAgYml0cyA9IGJpdHMyaW50KGJpdHMsIHEpXG4gIGJpdHMgPSBiaXRzLm1vZChxKVxuICB2YXIgb3V0ID0gbmV3IEJ1ZmZlcihiaXRzLnRvQXJyYXkoKSlcbiAgaWYgKG91dC5sZW5ndGggPCBxLmJ5dGVMZW5ndGgoKSkge1xuICAgIHZhciB6ZXJvcyA9IG5ldyBCdWZmZXIocS5ieXRlTGVuZ3RoKCkgLSBvdXQubGVuZ3RoKVxuICAgIHplcm9zLmZpbGwoMClcbiAgICBvdXQgPSBCdWZmZXIuY29uY2F0KFsgemVyb3MsIG91dCBdKVxuICB9XG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gbWFrZUtleSAocSwga3YsIGFsZ28pIHtcbiAgdmFyIHRcbiAgdmFyIGtcblxuICBkbyB7XG4gICAgdCA9IG5ldyBCdWZmZXIoMClcblxuICAgIHdoaWxlICh0Lmxlbmd0aCAqIDggPCBxLmJpdExlbmd0aCgpKSB7XG4gICAgICBrdi52ID0gY3JlYXRlSG1hYyhhbGdvLCBrdi5rKS51cGRhdGUoa3YudikuZGlnZXN0KClcbiAgICAgIHQgPSBCdWZmZXIuY29uY2F0KFsgdCwga3YudiBdKVxuICAgIH1cblxuICAgIGsgPSBiaXRzMmludCh0LCBxKVxuICAgIGt2LmsgPSBjcmVhdGVIbWFjKGFsZ28sIGt2LmspLnVwZGF0ZShrdi52KS51cGRhdGUobmV3IEJ1ZmZlcihbIDAgXSkpLmRpZ2VzdCgpXG4gICAga3YudiA9IGNyZWF0ZUhtYWMoYWxnbywga3YuaykudXBkYXRlKGt2LnYpLmRpZ2VzdCgpXG4gIH0gd2hpbGUgKGsuY21wKHEpICE9PSAtMSlcblxuICByZXR1cm4ga1xufVxuXG5mdW5jdGlvbiBtYWtlUiAoZywgaywgcCwgcSkge1xuICByZXR1cm4gZy50b1JlZChCTi5tb250KHApKS5yZWRQb3coaykuZnJvbVJlZCgpLm1vZChxKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNpZ25cbm1vZHVsZS5leHBvcnRzLmdldEtleSA9IGdldEtleVxubW9kdWxlLmV4cG9ydHMubWFrZUtleSA9IG1ha2VLZXlcbiIsIi8vIG11Y2ggb2YgdGhpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vaW5kdXRueS9zZWxmLXNpZ25lZC9ibG9iL2doLXBhZ2VzL2xpYi9yc2EuanNcbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJylcbnZhciBFQyA9IHJlcXVpcmUoJ2VsbGlwdGljJykuZWNcbnZhciBwYXJzZUtleXMgPSByZXF1aXJlKCdwYXJzZS1hc24xJylcbnZhciBjdXJ2ZXMgPSByZXF1aXJlKCcuL2N1cnZlcy5qc29uJylcblxuZnVuY3Rpb24gdmVyaWZ5IChzaWcsIGhhc2gsIGtleSwgc2lnblR5cGUsIHRhZykge1xuICB2YXIgcHViID0gcGFyc2VLZXlzKGtleSlcbiAgaWYgKHB1Yi50eXBlID09PSAnZWMnKSB7XG4gICAgLy8gcnNhIGtleXMgY2FuIGJlIGludGVycHJldGVkIGFzIGVjZHNhIG9uZXMgaW4gb3BlbnNzbFxuICAgIGlmIChzaWduVHlwZSAhPT0gJ2VjZHNhJyAmJiBzaWduVHlwZSAhPT0gJ2VjZHNhL3JzYScpIHRocm93IG5ldyBFcnJvcignd3JvbmcgcHVibGljIGtleSB0eXBlJylcbiAgICByZXR1cm4gZWNWZXJpZnkoc2lnLCBoYXNoLCBwdWIpXG4gIH0gZWxzZSBpZiAocHViLnR5cGUgPT09ICdkc2EnKSB7XG4gICAgaWYgKHNpZ25UeXBlICE9PSAnZHNhJykgdGhyb3cgbmV3IEVycm9yKCd3cm9uZyBwdWJsaWMga2V5IHR5cGUnKVxuICAgIHJldHVybiBkc2FWZXJpZnkoc2lnLCBoYXNoLCBwdWIpXG4gIH0gZWxzZSB7XG4gICAgaWYgKHNpZ25UeXBlICE9PSAncnNhJyAmJiBzaWduVHlwZSAhPT0gJ2VjZHNhL3JzYScpIHRocm93IG5ldyBFcnJvcignd3JvbmcgcHVibGljIGtleSB0eXBlJylcbiAgfVxuICBoYXNoID0gQnVmZmVyLmNvbmNhdChbdGFnLCBoYXNoXSlcbiAgdmFyIGxlbiA9IHB1Yi5tb2R1bHVzLmJ5dGVMZW5ndGgoKVxuICB2YXIgcGFkID0gWyAxIF1cbiAgdmFyIHBhZE51bSA9IDBcbiAgd2hpbGUgKGhhc2gubGVuZ3RoICsgcGFkLmxlbmd0aCArIDIgPCBsZW4pIHtcbiAgICBwYWQucHVzaCgweGZmKVxuICAgIHBhZE51bSsrXG4gIH1cbiAgcGFkLnB1c2goMHgwMClcbiAgdmFyIGkgPSAtMVxuICB3aGlsZSAoKytpIDwgaGFzaC5sZW5ndGgpIHtcbiAgICBwYWQucHVzaChoYXNoW2ldKVxuICB9XG4gIHBhZCA9IG5ldyBCdWZmZXIocGFkKVxuICB2YXIgcmVkID0gQk4ubW9udChwdWIubW9kdWx1cylcbiAgc2lnID0gbmV3IEJOKHNpZykudG9SZWQocmVkKVxuXG4gIHNpZyA9IHNpZy5yZWRQb3cobmV3IEJOKHB1Yi5wdWJsaWNFeHBvbmVudCkpXG4gIHNpZyA9IG5ldyBCdWZmZXIoc2lnLmZyb21SZWQoKS50b0FycmF5KCkpXG4gIHZhciBvdXQgPSBwYWROdW0gPCA4ID8gMSA6IDBcbiAgbGVuID0gTWF0aC5taW4oc2lnLmxlbmd0aCwgcGFkLmxlbmd0aClcbiAgaWYgKHNpZy5sZW5ndGggIT09IHBhZC5sZW5ndGgpIG91dCA9IDFcblxuICBpID0gLTFcbiAgd2hpbGUgKCsraSA8IGxlbikgb3V0IHw9IHNpZ1tpXSBeIHBhZFtpXVxuICByZXR1cm4gb3V0ID09PSAwXG59XG5cbmZ1bmN0aW9uIGVjVmVyaWZ5IChzaWcsIGhhc2gsIHB1Yikge1xuICB2YXIgY3VydmVJZCA9IGN1cnZlc1twdWIuZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbignLicpXVxuICBpZiAoIWN1cnZlSWQpIHRocm93IG5ldyBFcnJvcigndW5rbm93biBjdXJ2ZSAnICsgcHViLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oJy4nKSlcblxuICB2YXIgY3VydmUgPSBuZXcgRUMoY3VydmVJZClcbiAgdmFyIHB1YmtleSA9IHB1Yi5kYXRhLnN1YmplY3RQcml2YXRlS2V5LmRhdGFcblxuICByZXR1cm4gY3VydmUudmVyaWZ5KGhhc2gsIHNpZywgcHVia2V5KVxufVxuXG5mdW5jdGlvbiBkc2FWZXJpZnkgKHNpZywgaGFzaCwgcHViKSB7XG4gIHZhciBwID0gcHViLmRhdGEucFxuICB2YXIgcSA9IHB1Yi5kYXRhLnFcbiAgdmFyIGcgPSBwdWIuZGF0YS5nXG4gIHZhciB5ID0gcHViLmRhdGEucHViX2tleVxuICB2YXIgdW5wYWNrZWQgPSBwYXJzZUtleXMuc2lnbmF0dXJlLmRlY29kZShzaWcsICdkZXInKVxuICB2YXIgcyA9IHVucGFja2VkLnNcbiAgdmFyIHIgPSB1bnBhY2tlZC5yXG4gIGNoZWNrVmFsdWUocywgcSlcbiAgY2hlY2tWYWx1ZShyLCBxKVxuICB2YXIgbW9udHAgPSBCTi5tb250KHApXG4gIHZhciB3ID0gcy5pbnZtKHEpXG4gIHZhciB2ID0gZy50b1JlZChtb250cClcbiAgICAucmVkUG93KG5ldyBCTihoYXNoKS5tdWwodykubW9kKHEpKVxuICAgIC5mcm9tUmVkKClcbiAgICAubXVsKHkudG9SZWQobW9udHApLnJlZFBvdyhyLm11bCh3KS5tb2QocSkpLmZyb21SZWQoKSlcbiAgICAubW9kKHApXG4gICAgLm1vZChxKVxuICByZXR1cm4gdi5jbXAocikgPT09IDBcbn1cblxuZnVuY3Rpb24gY2hlY2tWYWx1ZSAoYiwgcSkge1xuICBpZiAoYi5jbXBuKDApIDw9IDApIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzaWcnKVxuICBpZiAoYi5jbXAocSkgPj0gcSkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHNpZycpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmVyaWZ5XG4iLCJ2YXIgbG9va3VwID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuXG47KGZ1bmN0aW9uIChleHBvcnRzKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuICB2YXIgQXJyID0gKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJylcbiAgICA/IFVpbnQ4QXJyYXlcbiAgICA6IEFycmF5XG5cblx0dmFyIFBMVVMgICA9ICcrJy5jaGFyQ29kZUF0KDApXG5cdHZhciBTTEFTSCAgPSAnLycuY2hhckNvZGVBdCgwKVxuXHR2YXIgTlVNQkVSID0gJzAnLmNoYXJDb2RlQXQoMClcblx0dmFyIExPV0VSICA9ICdhJy5jaGFyQ29kZUF0KDApXG5cdHZhciBVUFBFUiAgPSAnQScuY2hhckNvZGVBdCgwKVxuXHR2YXIgUExVU19VUkxfU0FGRSA9ICctJy5jaGFyQ29kZUF0KDApXG5cdHZhciBTTEFTSF9VUkxfU0FGRSA9ICdfJy5jaGFyQ29kZUF0KDApXG5cblx0ZnVuY3Rpb24gZGVjb2RlIChlbHQpIHtcblx0XHR2YXIgY29kZSA9IGVsdC5jaGFyQ29kZUF0KDApXG5cdFx0aWYgKGNvZGUgPT09IFBMVVMgfHxcblx0XHQgICAgY29kZSA9PT0gUExVU19VUkxfU0FGRSlcblx0XHRcdHJldHVybiA2MiAvLyAnKydcblx0XHRpZiAoY29kZSA9PT0gU0xBU0ggfHxcblx0XHQgICAgY29kZSA9PT0gU0xBU0hfVVJMX1NBRkUpXG5cdFx0XHRyZXR1cm4gNjMgLy8gJy8nXG5cdFx0aWYgKGNvZGUgPCBOVU1CRVIpXG5cdFx0XHRyZXR1cm4gLTEgLy9ubyBtYXRjaFxuXHRcdGlmIChjb2RlIDwgTlVNQkVSICsgMTApXG5cdFx0XHRyZXR1cm4gY29kZSAtIE5VTUJFUiArIDI2ICsgMjZcblx0XHRpZiAoY29kZSA8IFVQUEVSICsgMjYpXG5cdFx0XHRyZXR1cm4gY29kZSAtIFVQUEVSXG5cdFx0aWYgKGNvZGUgPCBMT1dFUiArIDI2KVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBMT1dFUiArIDI2XG5cdH1cblxuXHRmdW5jdGlvbiBiNjRUb0J5dGVBcnJheSAoYjY0KSB7XG5cdFx0dmFyIGksIGosIGwsIHRtcCwgcGxhY2VIb2xkZXJzLCBhcnJcblxuXHRcdGlmIChiNjQubGVuZ3RoICUgNCA+IDApIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCcpXG5cdFx0fVxuXG5cdFx0Ly8gdGhlIG51bWJlciBvZiBlcXVhbCBzaWducyAocGxhY2UgaG9sZGVycylcblx0XHQvLyBpZiB0aGVyZSBhcmUgdHdvIHBsYWNlaG9sZGVycywgdGhhbiB0aGUgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIGl0XG5cdFx0Ly8gcmVwcmVzZW50IG9uZSBieXRlXG5cdFx0Ly8gaWYgdGhlcmUgaXMgb25seSBvbmUsIHRoZW4gdGhlIHRocmVlIGNoYXJhY3RlcnMgYmVmb3JlIGl0IHJlcHJlc2VudCAyIGJ5dGVzXG5cdFx0Ly8gdGhpcyBpcyBqdXN0IGEgY2hlYXAgaGFjayB0byBub3QgZG8gaW5kZXhPZiB0d2ljZVxuXHRcdHZhciBsZW4gPSBiNjQubGVuZ3RoXG5cdFx0cGxhY2VIb2xkZXJzID0gJz0nID09PSBiNjQuY2hhckF0KGxlbiAtIDIpID8gMiA6ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAxKSA/IDEgOiAwXG5cblx0XHQvLyBiYXNlNjQgaXMgNC8zICsgdXAgdG8gdHdvIGNoYXJhY3RlcnMgb2YgdGhlIG9yaWdpbmFsIGRhdGFcblx0XHRhcnIgPSBuZXcgQXJyKGI2NC5sZW5ndGggKiAzIC8gNCAtIHBsYWNlSG9sZGVycylcblxuXHRcdC8vIGlmIHRoZXJlIGFyZSBwbGFjZWhvbGRlcnMsIG9ubHkgZ2V0IHVwIHRvIHRoZSBsYXN0IGNvbXBsZXRlIDQgY2hhcnNcblx0XHRsID0gcGxhY2VIb2xkZXJzID4gMCA/IGI2NC5sZW5ndGggLSA0IDogYjY0Lmxlbmd0aFxuXG5cdFx0dmFyIEwgPSAwXG5cblx0XHRmdW5jdGlvbiBwdXNoICh2KSB7XG5cdFx0XHRhcnJbTCsrXSA9IHZcblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGw7IGkgKz0gNCwgaiArPSAzKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDE4KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpIDw8IDEyKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpIDw8IDYpIHwgZGVjb2RlKGI2NC5jaGFyQXQoaSArIDMpKVxuXHRcdFx0cHVzaCgodG1wICYgMHhGRjAwMDApID4+IDE2KVxuXHRcdFx0cHVzaCgodG1wICYgMHhGRjAwKSA+PiA4KVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH1cblxuXHRcdGlmIChwbGFjZUhvbGRlcnMgPT09IDIpIHtcblx0XHRcdHRtcCA9IChkZWNvZGUoYjY0LmNoYXJBdChpKSkgPDwgMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA+PiA0KVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH0gZWxzZSBpZiAocGxhY2VIb2xkZXJzID09PSAxKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDEwKSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMSkpIDw8IDQpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAyKSkgPj4gMilcblx0XHRcdHB1c2goKHRtcCA+PiA4KSAmIDB4RkYpXG5cdFx0XHRwdXNoKHRtcCAmIDB4RkYpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFyclxuXHR9XG5cblx0ZnVuY3Rpb24gdWludDhUb0Jhc2U2NCAodWludDgpIHtcblx0XHR2YXIgaSxcblx0XHRcdGV4dHJhQnl0ZXMgPSB1aW50OC5sZW5ndGggJSAzLCAvLyBpZiB3ZSBoYXZlIDEgYnl0ZSBsZWZ0LCBwYWQgMiBieXRlc1xuXHRcdFx0b3V0cHV0ID0gXCJcIixcblx0XHRcdHRlbXAsIGxlbmd0aFxuXG5cdFx0ZnVuY3Rpb24gZW5jb2RlIChudW0pIHtcblx0XHRcdHJldHVybiBsb29rdXAuY2hhckF0KG51bSlcblx0XHR9XG5cblx0XHRmdW5jdGlvbiB0cmlwbGV0VG9CYXNlNjQgKG51bSkge1xuXHRcdFx0cmV0dXJuIGVuY29kZShudW0gPj4gMTggJiAweDNGKSArIGVuY29kZShudW0gPj4gMTIgJiAweDNGKSArIGVuY29kZShudW0gPj4gNiAmIDB4M0YpICsgZW5jb2RlKG51bSAmIDB4M0YpXG5cdFx0fVxuXG5cdFx0Ly8gZ28gdGhyb3VnaCB0aGUgYXJyYXkgZXZlcnkgdGhyZWUgYnl0ZXMsIHdlJ2xsIGRlYWwgd2l0aCB0cmFpbGluZyBzdHVmZiBsYXRlclxuXHRcdGZvciAoaSA9IDAsIGxlbmd0aCA9IHVpbnQ4Lmxlbmd0aCAtIGV4dHJhQnl0ZXM7IGkgPCBsZW5ndGg7IGkgKz0gMykge1xuXHRcdFx0dGVtcCA9ICh1aW50OFtpXSA8PCAxNikgKyAodWludDhbaSArIDFdIDw8IDgpICsgKHVpbnQ4W2kgKyAyXSlcblx0XHRcdG91dHB1dCArPSB0cmlwbGV0VG9CYXNlNjQodGVtcClcblx0XHR9XG5cblx0XHQvLyBwYWQgdGhlIGVuZCB3aXRoIHplcm9zLCBidXQgbWFrZSBzdXJlIHRvIG5vdCBmb3JnZXQgdGhlIGV4dHJhIGJ5dGVzXG5cdFx0c3dpdGNoIChleHRyYUJ5dGVzKSB7XG5cdFx0XHRjYXNlIDE6XG5cdFx0XHRcdHRlbXAgPSB1aW50OFt1aW50OC5sZW5ndGggLSAxXVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKHRlbXAgPj4gMilcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA8PCA0KSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSAnPT0nXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHRjYXNlIDI6XG5cdFx0XHRcdHRlbXAgPSAodWludDhbdWludDgubGVuZ3RoIC0gMl0gPDwgOCkgKyAodWludDhbdWludDgubGVuZ3RoIC0gMV0pXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUodGVtcCA+PiAxMClcblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSgodGVtcCA+PiA0KSAmIDB4M0YpXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPDwgMikgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gJz0nXG5cdFx0XHRcdGJyZWFrXG5cdFx0fVxuXG5cdFx0cmV0dXJuIG91dHB1dFxuXHR9XG5cblx0ZXhwb3J0cy50b0J5dGVBcnJheSA9IGI2NFRvQnl0ZUFycmF5XG5cdGV4cG9ydHMuZnJvbUJ5dGVBcnJheSA9IHVpbnQ4VG9CYXNlNjRcbn0odHlwZW9mIGV4cG9ydHMgPT09ICd1bmRlZmluZWQnID8gKHRoaXMuYmFzZTY0anMgPSB7fSkgOiBleHBvcnRzKSlcbiIsIi8qIVxuICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGZlcm9zc0BmZXJvc3Mub3JnPiA8aHR0cDovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG5cbid1c2Ugc3RyaWN0J1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzYXJyYXknKVxuXG5leHBvcnRzLkJ1ZmZlciA9IEJ1ZmZlclxuZXhwb3J0cy5TbG93QnVmZmVyID0gU2xvd0J1ZmZlclxuZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFUyA9IDUwXG5CdWZmZXIucG9vbFNpemUgPSA4MTkyIC8vIG5vdCB1c2VkIGJ5IHRoaXMgaW1wbGVtZW50YXRpb25cblxudmFyIHJvb3RQYXJlbnQgPSB7fVxuXG4vKipcbiAqIElmIGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGA6XG4gKiAgID09PSB0cnVlICAgIFVzZSBVaW50OEFycmF5IGltcGxlbWVudGF0aW9uIChmYXN0ZXN0KVxuICogICA9PT0gZmFsc2UgICBVc2UgT2JqZWN0IGltcGxlbWVudGF0aW9uIChtb3N0IGNvbXBhdGlibGUsIGV2ZW4gSUU2KVxuICpcbiAqIEJyb3dzZXJzIHRoYXQgc3VwcG9ydCB0eXBlZCBhcnJheXMgYXJlIElFIDEwKywgRmlyZWZveCA0KywgQ2hyb21lIDcrLCBTYWZhcmkgNS4xKyxcbiAqIE9wZXJhIDExLjYrLCBpT1MgNC4yKy5cbiAqXG4gKiBEdWUgdG8gdmFyaW91cyBicm93c2VyIGJ1Z3MsIHNvbWV0aW1lcyB0aGUgT2JqZWN0IGltcGxlbWVudGF0aW9uIHdpbGwgYmUgdXNlZCBldmVuXG4gKiB3aGVuIHRoZSBicm93c2VyIHN1cHBvcnRzIHR5cGVkIGFycmF5cy5cbiAqXG4gKiBOb3RlOlxuICpcbiAqICAgLSBGaXJlZm94IDQtMjkgbGFja3Mgc3VwcG9ydCBmb3IgYWRkaW5nIG5ldyBwcm9wZXJ0aWVzIHRvIGBVaW50OEFycmF5YCBpbnN0YW5jZXMsXG4gKiAgICAgU2VlOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU0MzguXG4gKlxuICogICAtIFNhZmFyaSA1LTcgbGFja3Mgc3VwcG9ydCBmb3IgY2hhbmdpbmcgdGhlIGBPYmplY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yYCBwcm9wZXJ0eVxuICogICAgIG9uIG9iamVjdHMuXG4gKlxuICogICAtIENocm9tZSA5LTEwIGlzIG1pc3NpbmcgdGhlIGBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheWAgZnVuY3Rpb24uXG4gKlxuICogICAtIElFMTAgaGFzIGEgYnJva2VuIGBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheWAgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhcnJheXMgb2ZcbiAqICAgICBpbmNvcnJlY3QgbGVuZ3RoIGluIHNvbWUgc2l0dWF0aW9ucy5cblxuICogV2UgZGV0ZWN0IHRoZXNlIGJ1Z2d5IGJyb3dzZXJzIGFuZCBzZXQgYEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUYCB0byBgZmFsc2VgIHNvIHRoZXlcbiAqIGdldCB0aGUgT2JqZWN0IGltcGxlbWVudGF0aW9uLCB3aGljaCBpcyBzbG93ZXIgYnV0IGJlaGF2ZXMgY29ycmVjdGx5LlxuICovXG5CdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCA9IGdsb2JhbC5UWVBFRF9BUlJBWV9TVVBQT1JUICE9PSB1bmRlZmluZWRcbiAgPyBnbG9iYWwuVFlQRURfQVJSQVlfU1VQUE9SVFxuICA6IHR5cGVkQXJyYXlTdXBwb3J0KClcblxuZnVuY3Rpb24gdHlwZWRBcnJheVN1cHBvcnQgKCkge1xuICBmdW5jdGlvbiBCYXIgKCkge31cbiAgdHJ5IHtcbiAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkoMSlcbiAgICBhcnIuZm9vID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNDIgfVxuICAgIGFyci5jb25zdHJ1Y3RvciA9IEJhclxuICAgIHJldHVybiBhcnIuZm9vKCkgPT09IDQyICYmIC8vIHR5cGVkIGFycmF5IGluc3RhbmNlcyBjYW4gYmUgYXVnbWVudGVkXG4gICAgICAgIGFyci5jb25zdHJ1Y3RvciA9PT0gQmFyICYmIC8vIGNvbnN0cnVjdG9yIGNhbiBiZSBzZXRcbiAgICAgICAgdHlwZW9mIGFyci5zdWJhcnJheSA9PT0gJ2Z1bmN0aW9uJyAmJiAvLyBjaHJvbWUgOS0xMCBsYWNrIGBzdWJhcnJheWBcbiAgICAgICAgYXJyLnN1YmFycmF5KDEsIDEpLmJ5dGVMZW5ndGggPT09IDAgLy8gaWUxMCBoYXMgYnJva2VuIGBzdWJhcnJheWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmZ1bmN0aW9uIGtNYXhMZW5ndGggKCkge1xuICByZXR1cm4gQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRcbiAgICA/IDB4N2ZmZmZmZmZcbiAgICA6IDB4M2ZmZmZmZmZcbn1cblxuLyoqXG4gKiBDbGFzczogQnVmZmVyXG4gKiA9PT09PT09PT09PT09XG4gKlxuICogVGhlIEJ1ZmZlciBjb25zdHJ1Y3RvciByZXR1cm5zIGluc3RhbmNlcyBvZiBgVWludDhBcnJheWAgdGhhdCBhcmUgYXVnbWVudGVkXG4gKiB3aXRoIGZ1bmN0aW9uIHByb3BlcnRpZXMgZm9yIGFsbCB0aGUgbm9kZSBgQnVmZmVyYCBBUEkgZnVuY3Rpb25zLiBXZSB1c2VcbiAqIGBVaW50OEFycmF5YCBzbyB0aGF0IHNxdWFyZSBicmFja2V0IG5vdGF0aW9uIHdvcmtzIGFzIGV4cGVjdGVkIC0tIGl0IHJldHVybnNcbiAqIGEgc2luZ2xlIG9jdGV0LlxuICpcbiAqIEJ5IGF1Z21lbnRpbmcgdGhlIGluc3RhbmNlcywgd2UgY2FuIGF2b2lkIG1vZGlmeWluZyB0aGUgYFVpbnQ4QXJyYXlgXG4gKiBwcm90b3R5cGUuXG4gKi9cbmZ1bmN0aW9uIEJ1ZmZlciAoYXJnKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBCdWZmZXIpKSB7XG4gICAgLy8gQXZvaWQgZ29pbmcgdGhyb3VnaCBhbiBBcmd1bWVudHNBZGFwdG9yVHJhbXBvbGluZSBpbiB0aGUgY29tbW9uIGNhc2UuXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSByZXR1cm4gbmV3IEJ1ZmZlcihhcmcsIGFyZ3VtZW50c1sxXSlcbiAgICByZXR1cm4gbmV3IEJ1ZmZlcihhcmcpXG4gIH1cblxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpcy5sZW5ndGggPSAwXG4gICAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8vIENvbW1vbiBjYXNlLlxuICBpZiAodHlwZW9mIGFyZyA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZnJvbU51bWJlcih0aGlzLCBhcmcpXG4gIH1cblxuICAvLyBTbGlnaHRseSBsZXNzIGNvbW1vbiBjYXNlLlxuICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZnJvbVN0cmluZyh0aGlzLCBhcmcsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogJ3V0ZjgnKVxuICB9XG5cbiAgLy8gVW51c3VhbC5cbiAgcmV0dXJuIGZyb21PYmplY3QodGhpcywgYXJnKVxufVxuXG5mdW5jdGlvbiBmcm9tTnVtYmVyICh0aGF0LCBsZW5ndGgpIHtcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aCA8IDAgPyAwIDogY2hlY2tlZChsZW5ndGgpIHwgMClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoYXRbaV0gPSAwXG4gICAgfVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21TdHJpbmcgKHRoYXQsIHN0cmluZywgZW5jb2RpbmcpIHtcbiAgaWYgKHR5cGVvZiBlbmNvZGluZyAhPT0gJ3N0cmluZycgfHwgZW5jb2RpbmcgPT09ICcnKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIC8vIEFzc3VtcHRpb246IGJ5dGVMZW5ndGgoKSByZXR1cm4gdmFsdWUgaXMgYWx3YXlzIDwga01heExlbmd0aC5cbiAgdmFyIGxlbmd0aCA9IGJ5dGVMZW5ndGgoc3RyaW5nLCBlbmNvZGluZykgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG5cbiAgdGhhdC53cml0ZShzdHJpbmcsIGVuY29kaW5nKVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tT2JqZWN0ICh0aGF0LCBvYmplY3QpIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmplY3QpKSByZXR1cm4gZnJvbUJ1ZmZlcih0aGF0LCBvYmplY3QpXG5cbiAgaWYgKGlzQXJyYXkob2JqZWN0KSkgcmV0dXJuIGZyb21BcnJheSh0aGF0LCBvYmplY3QpXG5cbiAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzdGFydCB3aXRoIG51bWJlciwgYnVmZmVyLCBhcnJheSBvciBzdHJpbmcnKVxuICB9XG5cbiAgaWYgKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAob2JqZWN0LmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICByZXR1cm4gZnJvbVR5cGVkQXJyYXkodGhhdCwgb2JqZWN0KVxuICAgIH1cbiAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgIHJldHVybiBmcm9tQXJyYXlCdWZmZXIodGhhdCwgb2JqZWN0KVxuICAgIH1cbiAgfVxuXG4gIGlmIChvYmplY3QubGVuZ3RoKSByZXR1cm4gZnJvbUFycmF5TGlrZSh0aGF0LCBvYmplY3QpXG5cbiAgcmV0dXJuIGZyb21Kc29uT2JqZWN0KHRoYXQsIG9iamVjdClcbn1cblxuZnVuY3Rpb24gZnJvbUJ1ZmZlciAodGhhdCwgYnVmZmVyKSB7XG4gIHZhciBsZW5ndGggPSBjaGVja2VkKGJ1ZmZlci5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICBidWZmZXIuY29weSh0aGF0LCAwLCAwLCBsZW5ndGgpXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8vIER1cGxpY2F0ZSBvZiBmcm9tQXJyYXkoKSB0byBrZWVwIGZyb21BcnJheSgpIG1vbm9tb3JwaGljLlxuZnVuY3Rpb24gZnJvbVR5cGVkQXJyYXkgKHRoYXQsIGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBjaGVja2VkKGFycmF5Lmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIC8vIFRydW5jYXRpbmcgdGhlIGVsZW1lbnRzIGlzIHByb2JhYmx5IG5vdCB3aGF0IHBlb3BsZSBleHBlY3QgZnJvbSB0eXBlZFxuICAvLyBhcnJheXMgd2l0aCBCWVRFU19QRVJfRUxFTUVOVCA+IDEgYnV0IGl0J3MgY29tcGF0aWJsZSB3aXRoIHRoZSBiZWhhdmlvclxuICAvLyBvZiB0aGUgb2xkIEJ1ZmZlciBjb25zdHJ1Y3Rvci5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUJ1ZmZlciAodGhhdCwgYXJyYXkpIHtcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gUmV0dXJuIGFuIGF1Z21lbnRlZCBgVWludDhBcnJheWAgaW5zdGFuY2UsIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgYXJyYXkuYnl0ZUxlbmd0aFxuICAgIHRoYXQgPSBCdWZmZXIuX2F1Z21lbnQobmV3IFVpbnQ4QXJyYXkoYXJyYXkpKVxuICB9IGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrOiBSZXR1cm4gYW4gb2JqZWN0IGluc3RhbmNlIG9mIHRoZSBCdWZmZXIgY2xhc3NcbiAgICB0aGF0ID0gZnJvbVR5cGVkQXJyYXkodGhhdCwgbmV3IFVpbnQ4QXJyYXkoYXJyYXkpKVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUxpa2UgKHRoYXQsIGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBjaGVja2VkKGFycmF5Lmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG4vLyBEZXNlcmlhbGl6ZSB7IHR5cGU6ICdCdWZmZXInLCBkYXRhOiBbMSwyLDMsLi4uXSB9IGludG8gYSBCdWZmZXIgb2JqZWN0LlxuLy8gUmV0dXJucyBhIHplcm8tbGVuZ3RoIGJ1ZmZlciBmb3IgaW5wdXRzIHRoYXQgZG9uJ3QgY29uZm9ybSB0byB0aGUgc3BlYy5cbmZ1bmN0aW9uIGZyb21Kc29uT2JqZWN0ICh0aGF0LCBvYmplY3QpIHtcbiAgdmFyIGFycmF5XG4gIHZhciBsZW5ndGggPSAwXG5cbiAgaWYgKG9iamVjdC50eXBlID09PSAnQnVmZmVyJyAmJiBpc0FycmF5KG9iamVjdC5kYXRhKSkge1xuICAgIGFycmF5ID0gb2JqZWN0LmRhdGFcbiAgICBsZW5ndGggPSBjaGVja2VkKGFycmF5Lmxlbmd0aCkgfCAwXG4gIH1cbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gIEJ1ZmZlci5wcm90b3R5cGUuX19wcm90b19fID0gVWludDhBcnJheS5wcm90b3R5cGVcbiAgQnVmZmVyLl9fcHJvdG9fXyA9IFVpbnQ4QXJyYXlcbn0gZWxzZSB7XG4gIC8vIHByZS1zZXQgZm9yIHZhbHVlcyB0aGF0IG1heSBleGlzdCBpbiB0aGUgZnV0dXJlXG4gIEJ1ZmZlci5wcm90b3R5cGUubGVuZ3RoID0gdW5kZWZpbmVkXG4gIEJ1ZmZlci5wcm90b3R5cGUucGFyZW50ID0gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGFsbG9jYXRlICh0aGF0LCBsZW5ndGgpIHtcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gUmV0dXJuIGFuIGF1Z21lbnRlZCBgVWludDhBcnJheWAgaW5zdGFuY2UsIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgdGhhdCA9IEJ1ZmZlci5fYXVnbWVudChuZXcgVWludDhBcnJheShsZW5ndGgpKVxuICAgIHRoYXQuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICB9IGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrOiBSZXR1cm4gYW4gb2JqZWN0IGluc3RhbmNlIG9mIHRoZSBCdWZmZXIgY2xhc3NcbiAgICB0aGF0Lmxlbmd0aCA9IGxlbmd0aFxuICAgIHRoYXQuX2lzQnVmZmVyID0gdHJ1ZVxuICB9XG5cbiAgdmFyIGZyb21Qb29sID0gbGVuZ3RoICE9PSAwICYmIGxlbmd0aCA8PSBCdWZmZXIucG9vbFNpemUgPj4+IDFcbiAgaWYgKGZyb21Qb29sKSB0aGF0LnBhcmVudCA9IHJvb3RQYXJlbnRcblxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBjaGVja2VkIChsZW5ndGgpIHtcbiAgLy8gTm90ZTogY2Fubm90IHVzZSBgbGVuZ3RoIDwga01heExlbmd0aGAgaGVyZSBiZWNhdXNlIHRoYXQgZmFpbHMgd2hlblxuICAvLyBsZW5ndGggaXMgTmFOICh3aGljaCBpcyBvdGhlcndpc2UgY29lcmNlZCB0byB6ZXJvLilcbiAgaWYgKGxlbmd0aCA+PSBrTWF4TGVuZ3RoKCkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAnc2l6ZTogMHgnICsga01heExlbmd0aCgpLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnKVxuICB9XG4gIHJldHVybiBsZW5ndGggfCAwXG59XG5cbmZ1bmN0aW9uIFNsb3dCdWZmZXIgKHN1YmplY3QsIGVuY29kaW5nKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTbG93QnVmZmVyKSkgcmV0dXJuIG5ldyBTbG93QnVmZmVyKHN1YmplY3QsIGVuY29kaW5nKVxuXG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKHN1YmplY3QsIGVuY29kaW5nKVxuICBkZWxldGUgYnVmLnBhcmVudFxuICByZXR1cm4gYnVmXG59XG5cbkJ1ZmZlci5pc0J1ZmZlciA9IGZ1bmN0aW9uIGlzQnVmZmVyIChiKSB7XG4gIHJldHVybiAhIShiICE9IG51bGwgJiYgYi5faXNCdWZmZXIpXG59XG5cbkJ1ZmZlci5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAoYSwgYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihhKSB8fCAhQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIG11c3QgYmUgQnVmZmVycycpXG4gIH1cblxuICBpZiAoYSA9PT0gYikgcmV0dXJuIDBcblxuICB2YXIgeCA9IGEubGVuZ3RoXG4gIHZhciB5ID0gYi5sZW5ndGhcblxuICB2YXIgaSA9IDBcbiAgdmFyIGxlbiA9IE1hdGgubWluKHgsIHkpXG4gIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgaWYgKGFbaV0gIT09IGJbaV0pIGJyZWFrXG5cbiAgICArK2lcbiAgfVxuXG4gIGlmIChpICE9PSBsZW4pIHtcbiAgICB4ID0gYVtpXVxuICAgIHkgPSBiW2ldXG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbkJ1ZmZlci5pc0VuY29kaW5nID0gZnVuY3Rpb24gaXNFbmNvZGluZyAoZW5jb2RpbmcpIHtcbiAgc3dpdGNoIChTdHJpbmcoZW5jb2RpbmcpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlICdoZXgnOlxuICAgIGNhc2UgJ3V0ZjgnOlxuICAgIGNhc2UgJ3V0Zi04JzpcbiAgICBjYXNlICdhc2NpaSc6XG4gICAgY2FzZSAnYmluYXJ5JzpcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgIGNhc2UgJ3Jhdyc6XG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndWNzLTInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgIHJldHVybiB0cnVlXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbkJ1ZmZlci5jb25jYXQgPSBmdW5jdGlvbiBjb25jYXQgKGxpc3QsIGxlbmd0aCkge1xuICBpZiAoIWlzQXJyYXkobGlzdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2xpc3QgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzLicpXG5cbiAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoMClcbiAgfVxuXG4gIHZhciBpXG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGxlbmd0aCA9IDBcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgbGVuZ3RoICs9IGxpc3RbaV0ubGVuZ3RoXG4gICAgfVxuICB9XG5cbiAgdmFyIGJ1ZiA9IG5ldyBCdWZmZXIobGVuZ3RoKVxuICB2YXIgcG9zID0gMFxuICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gbGlzdFtpXVxuICAgIGl0ZW0uY29weShidWYsIHBvcylcbiAgICBwb3MgKz0gaXRlbS5sZW5ndGhcbiAgfVxuICByZXR1cm4gYnVmXG59XG5cbmZ1bmN0aW9uIGJ5dGVMZW5ndGggKHN0cmluZywgZW5jb2RpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSBzdHJpbmcgPSAnJyArIHN0cmluZ1xuXG4gIHZhciBsZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChsZW4gPT09IDApIHJldHVybiAwXG5cbiAgLy8gVXNlIGEgZm9yIGxvb3AgdG8gYXZvaWQgcmVjdXJzaW9uXG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgLy8gRGVwcmVjYXRlZFxuICAgICAgY2FzZSAncmF3JzpcbiAgICAgIGNhc2UgJ3Jhd3MnOlxuICAgICAgICByZXR1cm4gbGVuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gbGVuICogMlxuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGxlbiA+Pj4gMVxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoIC8vIGFzc3VtZSB1dGY4XG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5CdWZmZXIuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGhcblxuZnVuY3Rpb24gc2xvd1RvU3RyaW5nIChlbmNvZGluZywgc3RhcnQsIGVuZCkge1xuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuXG4gIHN0YXJ0ID0gc3RhcnQgfCAwXG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA9PT0gSW5maW5pdHkgPyB0aGlzLmxlbmd0aCA6IGVuZCB8IDBcblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAoZW5kIDw9IHN0YXJ0KSByZXR1cm4gJydcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBiaW5hcnlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoZW5jb2RpbmcgKyAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nICgpIHtcbiAgdmFyIGxlbmd0aCA9IHRoaXMubGVuZ3RoIHwgMFxuICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gJydcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHJldHVybiB1dGY4U2xpY2UodGhpcywgMCwgbGVuZ3RoKVxuICByZXR1cm4gc2xvd1RvU3RyaW5nLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIHRydWVcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpID09PSAwXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICB2YXIgc3RyID0gJydcbiAgdmFyIG1heCA9IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVNcbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIHN0ciA9IHRoaXMudG9TdHJpbmcoJ2hleCcsIDAsIG1heCkubWF0Y2goLy57Mn0vZykuam9pbignICcpXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbWF4KSBzdHIgKz0gJyAuLi4gJ1xuICB9XG4gIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIDBcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIGluZGV4T2YgKHZhbCwgYnl0ZU9mZnNldCkge1xuICBpZiAoYnl0ZU9mZnNldCA+IDB4N2ZmZmZmZmYpIGJ5dGVPZmZzZXQgPSAweDdmZmZmZmZmXG4gIGVsc2UgaWYgKGJ5dGVPZmZzZXQgPCAtMHg4MDAwMDAwMCkgYnl0ZU9mZnNldCA9IC0weDgwMDAwMDAwXG4gIGJ5dGVPZmZzZXQgPj49IDBcblxuICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybiAtMVxuICBpZiAoYnl0ZU9mZnNldCA+PSB0aGlzLmxlbmd0aCkgcmV0dXJuIC0xXG5cbiAgLy8gTmVnYXRpdmUgb2Zmc2V0cyBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlclxuICBpZiAoYnl0ZU9mZnNldCA8IDApIGJ5dGVPZmZzZXQgPSBNYXRoLm1heCh0aGlzLmxlbmd0aCArIGJ5dGVPZmZzZXQsIDApXG5cbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDApIHJldHVybiAtMSAvLyBzcGVjaWFsIGNhc2U6IGxvb2tpbmcgZm9yIGVtcHR5IHN0cmluZyBhbHdheXMgZmFpbHNcbiAgICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mLmNhbGwodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICB9XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsKSkge1xuICAgIHJldHVybiBhcnJheUluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0KVxuICB9XG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZih0aGlzLCBbIHZhbCBdLCBieXRlT2Zmc2V0KVxuICB9XG5cbiAgZnVuY3Rpb24gYXJyYXlJbmRleE9mIChhcnIsIHZhbCwgYnl0ZU9mZnNldCkge1xuICAgIHZhciBmb3VuZEluZGV4ID0gLTFcbiAgICBmb3IgKHZhciBpID0gMDsgYnl0ZU9mZnNldCArIGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJbYnl0ZU9mZnNldCArIGldID09PSB2YWxbZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXhdKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsLmxlbmd0aCkgcmV0dXJuIGJ5dGVPZmZzZXQgKyBmb3VuZEluZGV4XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3VuZEluZGV4ID0gLTFcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG4vLyBgZ2V0YCBpcyBkZXByZWNhdGVkXG5CdWZmZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIGdldCAob2Zmc2V0KSB7XG4gIGNvbnNvbGUubG9nKCcuZ2V0KCkgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHVzaW5nIGFycmF5IGluZGV4ZXMgaW5zdGVhZC4nKVxuICByZXR1cm4gdGhpcy5yZWFkVUludDgob2Zmc2V0KVxufVxuXG4vLyBgc2V0YCBpcyBkZXByZWNhdGVkXG5CdWZmZXIucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIHNldCAodiwgb2Zmc2V0KSB7XG4gIGNvbnNvbGUubG9nKCcuc2V0KCkgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHVzaW5nIGFycmF5IGluZGV4ZXMgaW5zdGVhZC4nKVxuICByZXR1cm4gdGhpcy53cml0ZVVJbnQ4KHYsIG9mZnNldClcbn1cblxuZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICBvZmZzZXQgPSBOdW1iZXIob2Zmc2V0KSB8fCAwXG4gIHZhciByZW1haW5pbmcgPSBidWYubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aClcbiAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7XG4gICAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgICB9XG4gIH1cblxuICAvLyBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGRpZ2l0c1xuICB2YXIgc3RyTGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAoc3RyTGVuICUgMiAhPT0gMCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhleCBzdHJpbmcnKVxuXG4gIGlmIChsZW5ndGggPiBzdHJMZW4gLyAyKSB7XG4gICAgbGVuZ3RoID0gc3RyTGVuIC8gMlxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyc2VkID0gcGFyc2VJbnQoc3RyaW5nLnN1YnN0cihpICogMiwgMiksIDE2KVxuICAgIGlmIChpc05hTihwYXJzZWQpKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGV4IHN0cmluZycpXG4gICAgYnVmW29mZnNldCArIGldID0gcGFyc2VkXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gdXRmOFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmOFRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYXNjaWlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGFzY2lpVG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiaW5hcnlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBhc2NpaVdyaXRlKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYmFzZTY0V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcihiYXNlNjRUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIHVjczJXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKHV0ZjE2bGVUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiB3cml0ZSAoc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCwgZW5jb2RpbmcpIHtcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZylcbiAgaWYgKG9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5jb2RpbmcgPSAndXRmOCdcbiAgICBsZW5ndGggPSB0aGlzLmxlbmd0aFxuICAgIG9mZnNldCA9IDBcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIH0gZWxzZSBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmNvZGluZyA9IG9mZnNldFxuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBvZmZzZXRbLCBsZW5ndGhdWywgZW5jb2RpbmddKVxuICB9IGVsc2UgaWYgKGlzRmluaXRlKG9mZnNldCkpIHtcbiAgICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gICAgaWYgKGlzRmluaXRlKGxlbmd0aCkpIHtcbiAgICAgIGxlbmd0aCA9IGxlbmd0aCB8IDBcbiAgICAgIGlmIChlbmNvZGluZyA9PT0gdW5kZWZpbmVkKSBlbmNvZGluZyA9ICd1dGY4J1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGluZyA9IGxlbmd0aFxuICAgICAgbGVuZ3RoID0gdW5kZWZpbmVkXG4gICAgfVxuICAvLyBsZWdhY3kgd3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0LCBsZW5ndGgpIC0gcmVtb3ZlIGluIHYwLjEzXG4gIH0gZWxzZSB7XG4gICAgdmFyIHN3YXAgPSBlbmNvZGluZ1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgb2Zmc2V0ID0gbGVuZ3RoIHwgMFxuICAgIGxlbmd0aCA9IHN3YXBcbiAgfVxuXG4gIHZhciByZW1haW5pbmcgPSB0aGlzLmxlbmd0aCAtIG9mZnNldFxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgfHwgbGVuZ3RoID4gcmVtYWluaW5nKSBsZW5ndGggPSByZW1haW5pbmdcblxuICBpZiAoKHN0cmluZy5sZW5ndGggPiAwICYmIChsZW5ndGggPCAwIHx8IG9mZnNldCA8IDApKSB8fCBvZmZzZXQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdhdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcycpXG4gIH1cblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gYmluYXJ5V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgLy8gV2FybmluZzogbWF4TGVuZ3RoIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4gYmFzZTY0V3JpdGVcbiAgICAgICAgcmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1Y3MyV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQnVmZmVyJyxcbiAgICBkYXRhOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnIgfHwgdGhpcywgMClcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGlmIChzdGFydCA9PT0gMCAmJiBlbmQgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYuc2xpY2Uoc3RhcnQsIGVuZCkpXG4gIH1cbn1cblxuZnVuY3Rpb24gdXRmOFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuICB2YXIgcmVzID0gW11cblxuICB2YXIgaSA9IHN0YXJ0XG4gIHdoaWxlIChpIDwgZW5kKSB7XG4gICAgdmFyIGZpcnN0Qnl0ZSA9IGJ1ZltpXVxuICAgIHZhciBjb2RlUG9pbnQgPSBudWxsXG4gICAgdmFyIGJ5dGVzUGVyU2VxdWVuY2UgPSAoZmlyc3RCeXRlID4gMHhFRikgPyA0XG4gICAgICA6IChmaXJzdEJ5dGUgPiAweERGKSA/IDNcbiAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4QkYpID8gMlxuICAgICAgOiAxXG5cbiAgICBpZiAoaSArIGJ5dGVzUGVyU2VxdWVuY2UgPD0gZW5kKSB7XG4gICAgICB2YXIgc2Vjb25kQnl0ZSwgdGhpcmRCeXRlLCBmb3VydGhCeXRlLCB0ZW1wQ29kZVBvaW50XG5cbiAgICAgIHN3aXRjaCAoYnl0ZXNQZXJTZXF1ZW5jZSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDB4ODApIHtcbiAgICAgICAgICAgIGNvZGVQb2ludCA9IGZpcnN0Qnl0ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweDFGKSA8PCAweDYgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4N0YpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4RikgPDwgMHhDIHwgKHNlY29uZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAodGhpcmRCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3RkYgJiYgKHRlbXBDb2RlUG9pbnQgPCAweEQ4MDAgfHwgdGVtcENvZGVQb2ludCA+IDB4REZGRikpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgZm91cnRoQnl0ZSA9IGJ1ZltpICsgM11cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAodGhpcmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKGZvdXJ0aEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweEYpIDw8IDB4MTIgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4QyB8ICh0aGlyZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAoZm91cnRoQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4RkZGRiAmJiB0ZW1wQ29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29kZVBvaW50ID09PSBudWxsKSB7XG4gICAgICAvLyB3ZSBkaWQgbm90IGdlbmVyYXRlIGEgdmFsaWQgY29kZVBvaW50IHNvIGluc2VydCBhXG4gICAgICAvLyByZXBsYWNlbWVudCBjaGFyIChVK0ZGRkQpIGFuZCBhZHZhbmNlIG9ubHkgMSBieXRlXG4gICAgICBjb2RlUG9pbnQgPSAweEZGRkRcbiAgICAgIGJ5dGVzUGVyU2VxdWVuY2UgPSAxXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPiAweEZGRkYpIHtcbiAgICAgIC8vIGVuY29kZSB0byB1dGYxNiAoc3Vycm9nYXRlIHBhaXIgZGFuY2UpXG4gICAgICBjb2RlUG9pbnQgLT0gMHgxMDAwMFxuICAgICAgcmVzLnB1c2goY29kZVBvaW50ID4+PiAxMCAmIDB4M0ZGIHwgMHhEODAwKVxuICAgICAgY29kZVBvaW50ID0gMHhEQzAwIHwgY29kZVBvaW50ICYgMHgzRkZcbiAgICB9XG5cbiAgICByZXMucHVzaChjb2RlUG9pbnQpXG4gICAgaSArPSBieXRlc1BlclNlcXVlbmNlXG4gIH1cblxuICByZXR1cm4gZGVjb2RlQ29kZVBvaW50c0FycmF5KHJlcylcbn1cblxuLy8gQmFzZWQgb24gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjI3NDcyNzIvNjgwNzQyLCB0aGUgYnJvd3NlciB3aXRoXG4vLyB0aGUgbG93ZXN0IGxpbWl0IGlzIENocm9tZSwgd2l0aCAweDEwMDAwIGFyZ3MuXG4vLyBXZSBnbyAxIG1hZ25pdHVkZSBsZXNzLCBmb3Igc2FmZXR5XG52YXIgTUFYX0FSR1VNRU5UU19MRU5HVEggPSAweDEwMDBcblxuZnVuY3Rpb24gZGVjb2RlQ29kZVBvaW50c0FycmF5IChjb2RlUG9pbnRzKSB7XG4gIHZhciBsZW4gPSBjb2RlUG9pbnRzLmxlbmd0aFxuICBpZiAobGVuIDw9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBjb2RlUG9pbnRzKSAvLyBhdm9pZCBleHRyYSBzbGljZSgpXG4gIH1cblxuICAvLyBEZWNvZGUgaW4gY2h1bmtzIHRvIGF2b2lkIFwiY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkXCIuXG4gIHZhciByZXMgPSAnJ1xuICB2YXIgaSA9IDBcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShcbiAgICAgIFN0cmluZyxcbiAgICAgIGNvZGVQb2ludHMuc2xpY2UoaSwgaSArPSBNQVhfQVJHVU1FTlRTX0xFTkdUSClcbiAgICApXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSAmIDB4N0YpXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBiaW5hcnlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBoZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG5cbiAgaWYgKCFzdGFydCB8fCBzdGFydCA8IDApIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCB8fCBlbmQgPCAwIHx8IGVuZCA+IGxlbikgZW5kID0gbGVuXG5cbiAgdmFyIG91dCA9ICcnXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgb3V0ICs9IHRvSGV4KGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBieXRlcyA9IGJ1Zi5zbGljZShzdGFydCwgZW5kKVxuICB2YXIgcmVzID0gJydcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldICsgYnl0ZXNbaSArIDFdICogMjU2KVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uIHNsaWNlIChzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBzdGFydCA9IH5+c3RhcnRcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiB+fmVuZFxuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCArPSBsZW5cbiAgICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgfSBlbHNlIGlmIChzdGFydCA+IGxlbikge1xuICAgIHN0YXJ0ID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5cbiAgICBpZiAoZW5kIDwgMCkgZW5kID0gMFxuICB9IGVsc2UgaWYgKGVuZCA+IGxlbikge1xuICAgIGVuZCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIHZhciBuZXdCdWZcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgbmV3QnVmID0gQnVmZmVyLl9hdWdtZW50KHRoaXMuc3ViYXJyYXkoc3RhcnQsIGVuZCkpXG4gIH0gZWxzZSB7XG4gICAgdmFyIHNsaWNlTGVuID0gZW5kIC0gc3RhcnRcbiAgICBuZXdCdWYgPSBuZXcgQnVmZmVyKHNsaWNlTGVuLCB1bmRlZmluZWQpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUxlbjsgaSsrKSB7XG4gICAgICBuZXdCdWZbaV0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH1cblxuICBpZiAobmV3QnVmLmxlbmd0aCkgbmV3QnVmLnBhcmVudCA9IHRoaXMucGFyZW50IHx8IHRoaXNcblxuICByZXR1cm4gbmV3QnVmXG59XG5cbi8qXG4gKiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGJ1ZmZlciBpc24ndCB0cnlpbmcgdG8gd3JpdGUgb3V0IG9mIGJvdW5kcy5cbiAqL1xuZnVuY3Rpb24gY2hlY2tPZmZzZXQgKG9mZnNldCwgZXh0LCBsZW5ndGgpIHtcbiAgaWYgKChvZmZzZXQgJSAxKSAhPT0gMCB8fCBvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb2Zmc2V0IGlzIG5vdCB1aW50JylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEUgPSBmdW5jdGlvbiByZWFkVUludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50QkUgPSBmdW5jdGlvbiByZWFkVUludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuICB9XG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXVxuICB2YXIgbXVsID0gMVxuICB3aGlsZSAoYnl0ZUxlbmd0aCA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4ID0gZnVuY3Rpb24gcmVhZFVJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEUgPSBmdW5jdGlvbiByZWFkVUludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkJFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDgpIHwgdGhpc1tvZmZzZXQgKyAxXVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAoKHRoaXNbb2Zmc2V0XSkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpKSArXG4gICAgICAodGhpc1tvZmZzZXQgKyAzXSAqIDB4MTAwMDAwMClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyQkUgPSBmdW5jdGlvbiByZWFkVUludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSAqIDB4MTAwMDAwMCkgK1xuICAgICgodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICB0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRMRSA9IGZ1bmN0aW9uIHJlYWRJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRCRSA9IGZ1bmN0aW9uIHJlYWRJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aFxuICB2YXIgbXVsID0gMVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWldXG4gIHdoaWxlIChpID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0taV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQ4ID0gZnVuY3Rpb24gcmVhZEludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgaWYgKCEodGhpc1tvZmZzZXRdICYgMHg4MCkpIHJldHVybiAodGhpc1tvZmZzZXRdKVxuICByZXR1cm4gKCgweGZmIC0gdGhpc1tvZmZzZXRdICsgMSkgKiAtMSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2QkUgPSBmdW5jdGlvbiByZWFkSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAxXSB8ICh0aGlzW29mZnNldF0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFID0gZnVuY3Rpb24gcmVhZEludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDNdIDw8IDI0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFID0gZnVuY3Rpb24gcmVhZEludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCAyNCkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdExFID0gZnVuY3Rpb24gcmVhZEZsb2F0TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFID0gZnVuY3Rpb24gcmVhZEZsb2F0QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlTEUgPSBmdW5jdGlvbiByZWFkRG91YmxlTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDUyLCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDUyLCA4KVxufVxuXG5mdW5jdGlvbiBjaGVja0ludCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2J1ZmZlciBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJylcbiAgaWYgKHZhbHVlID4gbWF4IHx8IHZhbHVlIDwgbWluKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndmFsdWUgaXMgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignaW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlVUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCksIDApXG5cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlVUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCksIDApXG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMVxuICB2YXIgbXVsID0gMVxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVVSW50OCAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAxLCAweGZmLCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbmZ1bmN0aW9uIG9iamVjdFdyaXRlVUludDE2IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbikge1xuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDIpOyBpIDwgajsgaSsrKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlICYgKDB4ZmYgPDwgKDggKiAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSkpKSA+Pj5cbiAgICAgIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpICogOFxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbmZ1bmN0aW9uIG9iamVjdFdyaXRlVUludDMyIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbikge1xuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCA0KTsgaSA8IGo7IGkrKykge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSA+Pj4gKGxpdHRsZUVuZGlhbiA/IGkgOiAzIC0gaSkgKiA4KSAmIDB4ZmZcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgdmFyIGkgPSAwXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSB2YWx1ZSA8IDAgPyAxIDogMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50QkUgPSBmdW5jdGlvbiB3cml0ZUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IHZhbHVlIDwgMCA/IDEgOiAwXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDggPSBmdW5jdGlvbiB3cml0ZUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHg3ZiwgLTB4ODApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmICsgdmFsdWUgKyAxXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbmZ1bmN0aW9uIGNoZWNrSUVFRTc1NCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3ZhbHVlIGlzIG91dCBvZiBib3VuZHMnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2luZGV4IG91dCBvZiByYW5nZScpXG4gIGlmIChvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignaW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuZnVuY3Rpb24gd3JpdGVGbG9hdCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA0LCAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LCAtMy40MDI4MjM0NjYzODUyODg2ZSszOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCAyMywgNClcbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0TEUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRCRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiB3cml0ZURvdWJsZSAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA4LCAxLjc5NzY5MzEzNDg2MjMxNTdFKzMwOCwgLTEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDUyLCA4KVxuICByZXR1cm4gb2Zmc2V0ICsgOFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlTEUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVCRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbi8vIGNvcHkodGFyZ2V0QnVmZmVyLCB0YXJnZXRTdGFydD0wLCBzb3VyY2VTdGFydD0wLCBzb3VyY2VFbmQ9YnVmZmVyLmxlbmd0aClcbkJ1ZmZlci5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uIGNvcHkgKHRhcmdldCwgdGFyZ2V0U3RhcnQsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCFzdGFydCkgc3RhcnQgPSAwXG4gIGlmICghZW5kICYmIGVuZCAhPT0gMCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldFN0YXJ0ID49IHRhcmdldC5sZW5ndGgpIHRhcmdldFN0YXJ0ID0gdGFyZ2V0Lmxlbmd0aFxuICBpZiAoIXRhcmdldFN0YXJ0KSB0YXJnZXRTdGFydCA9IDBcbiAgaWYgKGVuZCA+IDAgJiYgZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0XG5cbiAgLy8gQ29weSAwIGJ5dGVzOyB3ZSdyZSBkb25lXG4gIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm4gMFxuICBpZiAodGFyZ2V0Lmxlbmd0aCA9PT0gMCB8fCB0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBGYXRhbCBlcnJvciBjb25kaXRpb25zXG4gIGlmICh0YXJnZXRTdGFydCA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIH1cbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+PSB0aGlzLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZVN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICBpZiAoZW5kIDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZUVuZCBvdXQgb2YgYm91bmRzJylcblxuICAvLyBBcmUgd2Ugb29iP1xuICBpZiAoZW5kID4gdGhpcy5sZW5ndGgpIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgPCBlbmQgLSBzdGFydCkge1xuICAgIGVuZCA9IHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCArIHN0YXJ0XG4gIH1cblxuICB2YXIgbGVuID0gZW5kIC0gc3RhcnRcbiAgdmFyIGlcblxuICBpZiAodGhpcyA9PT0gdGFyZ2V0ICYmIHN0YXJ0IDwgdGFyZ2V0U3RhcnQgJiYgdGFyZ2V0U3RhcnQgPCBlbmQpIHtcbiAgICAvLyBkZXNjZW5kaW5nIGNvcHkgZnJvbSBlbmRcbiAgICBmb3IgKGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSBpZiAobGVuIDwgMTAwMCB8fCAhQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAvLyBhc2NlbmRpbmcgY29weSBmcm9tIHN0YXJ0XG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQuX3NldCh0aGlzLnN1YmFycmF5KHN0YXJ0LCBzdGFydCArIGxlbiksIHRhcmdldFN0YXJ0KVxuICB9XG5cbiAgcmV0dXJuIGxlblxufVxuXG4vLyBmaWxsKHZhbHVlLCBzdGFydD0wLCBlbmQ9YnVmZmVyLmxlbmd0aClcbkJ1ZmZlci5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uIGZpbGwgKHZhbHVlLCBzdGFydCwgZW5kKSB7XG4gIGlmICghdmFsdWUpIHZhbHVlID0gMFxuICBpZiAoIXN0YXJ0KSBzdGFydCA9IDBcbiAgaWYgKCFlbmQpIGVuZCA9IHRoaXMubGVuZ3RoXG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZW5kIDwgc3RhcnQnKVxuXG4gIC8vIEZpbGwgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuXG4gIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+PSB0aGlzLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3N0YXJ0IG91dCBvZiBib3VuZHMnKVxuICBpZiAoZW5kIDwgMCB8fCBlbmQgPiB0aGlzLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2VuZCBvdXQgb2YgYm91bmRzJylcblxuICB2YXIgaVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICAgIHRoaXNbaV0gPSB2YWx1ZVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgYnl0ZXMgPSB1dGY4VG9CeXRlcyh2YWx1ZS50b1N0cmluZygpKVxuICAgIHZhciBsZW4gPSBieXRlcy5sZW5ndGhcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICB0aGlzW2ldID0gYnl0ZXNbaSAlIGxlbl1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpc1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgYEFycmF5QnVmZmVyYCB3aXRoIHRoZSAqY29waWVkKiBtZW1vcnkgb2YgdGhlIGJ1ZmZlciBpbnN0YW5jZS5cbiAqIEFkZGVkIGluIE5vZGUgMC4xMi4gT25seSBhdmFpbGFibGUgaW4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IEFycmF5QnVmZmVyLlxuICovXG5CdWZmZXIucHJvdG90eXBlLnRvQXJyYXlCdWZmZXIgPSBmdW5jdGlvbiB0b0FycmF5QnVmZmVyICgpIHtcbiAgaWYgKHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgICAgcmV0dXJuIChuZXcgQnVmZmVyKHRoaXMpKS5idWZmZXJcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHRoaXMubGVuZ3RoKVxuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGJ1Zi5sZW5ndGg7IGkgPCBsZW47IGkgKz0gMSkge1xuICAgICAgICBidWZbaV0gPSB0aGlzW2ldXG4gICAgICB9XG4gICAgICByZXR1cm4gYnVmLmJ1ZmZlclxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdCdWZmZXIudG9BcnJheUJ1ZmZlciBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlcicpXG4gIH1cbn1cblxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PVxuXG52YXIgQlAgPSBCdWZmZXIucHJvdG90eXBlXG5cbi8qKlxuICogQXVnbWVudCBhIFVpbnQ4QXJyYXkgKmluc3RhbmNlKiAobm90IHRoZSBVaW50OEFycmF5IGNsYXNzISkgd2l0aCBCdWZmZXIgbWV0aG9kc1xuICovXG5CdWZmZXIuX2F1Z21lbnQgPSBmdW5jdGlvbiBfYXVnbWVudCAoYXJyKSB7XG4gIGFyci5jb25zdHJ1Y3RvciA9IEJ1ZmZlclxuICBhcnIuX2lzQnVmZmVyID0gdHJ1ZVxuXG4gIC8vIHNhdmUgcmVmZXJlbmNlIHRvIG9yaWdpbmFsIFVpbnQ4QXJyYXkgc2V0IG1ldGhvZCBiZWZvcmUgb3ZlcndyaXRpbmdcbiAgYXJyLl9zZXQgPSBhcnIuc2V0XG5cbiAgLy8gZGVwcmVjYXRlZFxuICBhcnIuZ2V0ID0gQlAuZ2V0XG4gIGFyci5zZXQgPSBCUC5zZXRcblxuICBhcnIud3JpdGUgPSBCUC53cml0ZVxuICBhcnIudG9TdHJpbmcgPSBCUC50b1N0cmluZ1xuICBhcnIudG9Mb2NhbGVTdHJpbmcgPSBCUC50b1N0cmluZ1xuICBhcnIudG9KU09OID0gQlAudG9KU09OXG4gIGFyci5lcXVhbHMgPSBCUC5lcXVhbHNcbiAgYXJyLmNvbXBhcmUgPSBCUC5jb21wYXJlXG4gIGFyci5pbmRleE9mID0gQlAuaW5kZXhPZlxuICBhcnIuY29weSA9IEJQLmNvcHlcbiAgYXJyLnNsaWNlID0gQlAuc2xpY2VcbiAgYXJyLnJlYWRVSW50TEUgPSBCUC5yZWFkVUludExFXG4gIGFyci5yZWFkVUludEJFID0gQlAucmVhZFVJbnRCRVxuICBhcnIucmVhZFVJbnQ4ID0gQlAucmVhZFVJbnQ4XG4gIGFyci5yZWFkVUludDE2TEUgPSBCUC5yZWFkVUludDE2TEVcbiAgYXJyLnJlYWRVSW50MTZCRSA9IEJQLnJlYWRVSW50MTZCRVxuICBhcnIucmVhZFVJbnQzMkxFID0gQlAucmVhZFVJbnQzMkxFXG4gIGFyci5yZWFkVUludDMyQkUgPSBCUC5yZWFkVUludDMyQkVcbiAgYXJyLnJlYWRJbnRMRSA9IEJQLnJlYWRJbnRMRVxuICBhcnIucmVhZEludEJFID0gQlAucmVhZEludEJFXG4gIGFyci5yZWFkSW50OCA9IEJQLnJlYWRJbnQ4XG4gIGFyci5yZWFkSW50MTZMRSA9IEJQLnJlYWRJbnQxNkxFXG4gIGFyci5yZWFkSW50MTZCRSA9IEJQLnJlYWRJbnQxNkJFXG4gIGFyci5yZWFkSW50MzJMRSA9IEJQLnJlYWRJbnQzMkxFXG4gIGFyci5yZWFkSW50MzJCRSA9IEJQLnJlYWRJbnQzMkJFXG4gIGFyci5yZWFkRmxvYXRMRSA9IEJQLnJlYWRGbG9hdExFXG4gIGFyci5yZWFkRmxvYXRCRSA9IEJQLnJlYWRGbG9hdEJFXG4gIGFyci5yZWFkRG91YmxlTEUgPSBCUC5yZWFkRG91YmxlTEVcbiAgYXJyLnJlYWREb3VibGVCRSA9IEJQLnJlYWREb3VibGVCRVxuICBhcnIud3JpdGVVSW50OCA9IEJQLndyaXRlVUludDhcbiAgYXJyLndyaXRlVUludExFID0gQlAud3JpdGVVSW50TEVcbiAgYXJyLndyaXRlVUludEJFID0gQlAud3JpdGVVSW50QkVcbiAgYXJyLndyaXRlVUludDE2TEUgPSBCUC53cml0ZVVJbnQxNkxFXG4gIGFyci53cml0ZVVJbnQxNkJFID0gQlAud3JpdGVVSW50MTZCRVxuICBhcnIud3JpdGVVSW50MzJMRSA9IEJQLndyaXRlVUludDMyTEVcbiAgYXJyLndyaXRlVUludDMyQkUgPSBCUC53cml0ZVVJbnQzMkJFXG4gIGFyci53cml0ZUludExFID0gQlAud3JpdGVJbnRMRVxuICBhcnIud3JpdGVJbnRCRSA9IEJQLndyaXRlSW50QkVcbiAgYXJyLndyaXRlSW50OCA9IEJQLndyaXRlSW50OFxuICBhcnIud3JpdGVJbnQxNkxFID0gQlAud3JpdGVJbnQxNkxFXG4gIGFyci53cml0ZUludDE2QkUgPSBCUC53cml0ZUludDE2QkVcbiAgYXJyLndyaXRlSW50MzJMRSA9IEJQLndyaXRlSW50MzJMRVxuICBhcnIud3JpdGVJbnQzMkJFID0gQlAud3JpdGVJbnQzMkJFXG4gIGFyci53cml0ZUZsb2F0TEUgPSBCUC53cml0ZUZsb2F0TEVcbiAgYXJyLndyaXRlRmxvYXRCRSA9IEJQLndyaXRlRmxvYXRCRVxuICBhcnIud3JpdGVEb3VibGVMRSA9IEJQLndyaXRlRG91YmxlTEVcbiAgYXJyLndyaXRlRG91YmxlQkUgPSBCUC53cml0ZURvdWJsZUJFXG4gIGFyci5maWxsID0gQlAuZmlsbFxuICBhcnIuaW5zcGVjdCA9IEJQLmluc3BlY3RcbiAgYXJyLnRvQXJyYXlCdWZmZXIgPSBCUC50b0FycmF5QnVmZmVyXG5cbiAgcmV0dXJuIGFyclxufVxuXG52YXIgSU5WQUxJRF9CQVNFNjRfUkUgPSAvW14rXFwvMC05QS1aYS16LV9dL2dcblxuZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikge1xuICAvLyBOb2RlIHN0cmlwcyBvdXQgaW52YWxpZCBjaGFyYWN0ZXJzIGxpa2UgXFxuIGFuZCBcXHQgZnJvbSB0aGUgc3RyaW5nLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgc3RyID0gc3RyaW5ndHJpbShzdHIpLnJlcGxhY2UoSU5WQUxJRF9CQVNFNjRfUkUsICcnKVxuICAvLyBOb2RlIGNvbnZlcnRzIHN0cmluZ3Mgd2l0aCBsZW5ndGggPCAyIHRvICcnXG4gIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnXG4gIC8vIE5vZGUgYWxsb3dzIGZvciBub24tcGFkZGVkIGJhc2U2NCBzdHJpbmdzIChtaXNzaW5nIHRyYWlsaW5nID09PSksIGJhc2U2NC1qcyBkb2VzIG5vdFxuICB3aGlsZSAoc3RyLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICBzdHIgPSBzdHIgKyAnPSdcbiAgfVxuICByZXR1cm4gc3RyXG59XG5cbmZ1bmN0aW9uIHN0cmluZ3RyaW0gKHN0cikge1xuICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpXG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG59XG5cbmZ1bmN0aW9uIHRvSGV4IChuKSB7XG4gIGlmIChuIDwgMTYpIHJldHVybiAnMCcgKyBuLnRvU3RyaW5nKDE2KVxuICByZXR1cm4gbi50b1N0cmluZygxNilcbn1cblxuZnVuY3Rpb24gdXRmOFRvQnl0ZXMgKHN0cmluZywgdW5pdHMpIHtcbiAgdW5pdHMgPSB1bml0cyB8fCBJbmZpbml0eVxuICB2YXIgY29kZVBvaW50XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoXG4gIHZhciBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICB2YXIgYnl0ZXMgPSBbXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBjb2RlUG9pbnQgPSBzdHJpbmcuY2hhckNvZGVBdChpKVxuXG4gICAgLy8gaXMgc3Vycm9nYXRlIGNvbXBvbmVudFxuICAgIGlmIChjb2RlUG9pbnQgPiAweEQ3RkYgJiYgY29kZVBvaW50IDwgMHhFMDAwKSB7XG4gICAgICAvLyBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKCFsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAgIC8vIG5vIGxlYWQgeWV0XG4gICAgICAgIGlmIChjb2RlUG9pbnQgPiAweERCRkYpIHtcbiAgICAgICAgICAvLyB1bmV4cGVjdGVkIHRyYWlsXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIGlmIChpICsgMSA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgLy8gdW5wYWlyZWQgbGVhZFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cblxuICAgICAgICAvLyB2YWxpZCBsZWFkXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyAyIGxlYWRzIGluIGEgcm93XG4gICAgICBpZiAoY29kZVBvaW50IDwgMHhEQzAwKSB7XG4gICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICBjb2RlUG9pbnQgPSAobGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCA8PCAxMCB8IGNvZGVQb2ludCAtIDB4REMwMCkgKyAweDEwMDAwXG4gICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAvLyB2YWxpZCBibXAgY2hhciwgYnV0IGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICB9XG5cbiAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuXG4gICAgLy8gZW5jb2RlIHV0ZjhcbiAgICBpZiAoY29kZVBvaW50IDwgMHg4MCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAxKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKGNvZGVQb2ludClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4ODAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgfCAweEMwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAzKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDIHwgMHhFMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gNCkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4MTIgfCAweEYwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVRvQnl0ZXMgKHN0cikge1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBOb2RlJ3MgY29kZSBzZWVtcyB0byBiZSBkb2luZyB0aGlzIGFuZCBub3QgJiAweDdGLi5cbiAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSAmIDB4RkYpXG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyAoc3RyLCB1bml0cykge1xuICB2YXIgYywgaGksIGxvXG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuXG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSlcbn1cblxuZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoKGkgKyBvZmZzZXQgPj0gZHN0Lmxlbmd0aCkgfHwgKGkgPj0gc3JjLmxlbmd0aCkpIGJyZWFrXG4gICAgZHN0W2kgKyBvZmZzZXRdID0gc3JjW2ldXG4gIH1cbiAgcmV0dXJuIGlcbn1cbiIsInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gKGFycikge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChhcnIpID09ICdbb2JqZWN0IEFycmF5XSc7XG59O1xuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgdGhpcy5fZXZlbnRzID0gdGhpcy5fZXZlbnRzIHx8IHt9O1xuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5cbi8vIEJhY2t3YXJkcy1jb21wYXQgd2l0aCBub2RlIDAuMTAueFxuRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlciA9IEV2ZW50RW1pdHRlcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzID0gdW5kZWZpbmVkO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzID0gdW5kZWZpbmVkO1xuXG4vLyBCeSBkZWZhdWx0IEV2ZW50RW1pdHRlcnMgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgbW9yZSB0aGFuIDEwIGxpc3RlbmVycyBhcmVcbi8vIGFkZGVkIHRvIGl0LiBUaGlzIGlzIGEgdXNlZnVsIGRlZmF1bHQgd2hpY2ggaGVscHMgZmluZGluZyBtZW1vcnkgbGVha3MuXG5FdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycyA9IDEwO1xuXG4vLyBPYnZpb3VzbHkgbm90IGFsbCBFbWl0dGVycyBzaG91bGQgYmUgbGltaXRlZCB0byAxMC4gVGhpcyBmdW5jdGlvbiBhbGxvd3Ncbi8vIHRoYXQgdG8gYmUgaW5jcmVhc2VkLiBTZXQgdG8gemVybyBmb3IgdW5saW1pdGVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbihuKSB7XG4gIGlmICghaXNOdW1iZXIobikgfHwgbiA8IDAgfHwgaXNOYU4obikpXG4gICAgdGhyb3cgVHlwZUVycm9yKCduIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXInKTtcbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbih0eXBlKSB7XG4gIHZhciBlciwgaGFuZGxlciwgbGVuLCBhcmdzLCBpLCBsaXN0ZW5lcnM7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHMpXG4gICAgdGhpcy5fZXZlbnRzID0ge307XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAodHlwZSA9PT0gJ2Vycm9yJykge1xuICAgIGlmICghdGhpcy5fZXZlbnRzLmVycm9yIHx8XG4gICAgICAgIChpc09iamVjdCh0aGlzLl9ldmVudHMuZXJyb3IpICYmICF0aGlzLl9ldmVudHMuZXJyb3IubGVuZ3RoKSkge1xuICAgICAgZXIgPSBhcmd1bWVudHNbMV07XG4gICAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICAgIH1cbiAgICAgIHRocm93IFR5cGVFcnJvcignVW5jYXVnaHQsIHVuc3BlY2lmaWVkIFwiZXJyb3JcIiBldmVudC4nKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVyID0gdGhpcy5fZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChpc1VuZGVmaW5lZChoYW5kbGVyKSlcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKGlzRnVuY3Rpb24oaGFuZGxlcikpIHtcbiAgICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgIC8vIGZhc3QgY2FzZXNcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMsIGFyZ3VtZW50c1sxXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICBoYW5kbGVyLmNhbGwodGhpcywgYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIHNsb3dlclxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICAgICAgYXJncyA9IG5ldyBBcnJheShsZW4gLSAxKTtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IGxlbjsgaSsrKVxuICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICBoYW5kbGVyLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc09iamVjdChoYW5kbGVyKSkge1xuICAgIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgYXJncyA9IG5ldyBBcnJheShsZW4gLSAxKTtcbiAgICBmb3IgKGkgPSAxOyBpIDwgbGVuOyBpKyspXG4gICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcblxuICAgIGxpc3RlbmVycyA9IGhhbmRsZXIuc2xpY2UoKTtcbiAgICBsZW4gPSBsaXN0ZW5lcnMubGVuZ3RoO1xuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKylcbiAgICAgIGxpc3RlbmVyc1tpXS5hcHBseSh0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBtO1xuXG4gIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpXG4gICAgdGhyb3cgVHlwZUVycm9yKCdsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICBpZiAoIXRoaXMuX2V2ZW50cylcbiAgICB0aGlzLl9ldmVudHMgPSB7fTtcblxuICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAvLyBhZGRpbmcgaXQgdG8gdGhlIGxpc3RlbmVycywgZmlyc3QgZW1pdCBcIm5ld0xpc3RlbmVyXCIuXG4gIGlmICh0aGlzLl9ldmVudHMubmV3TGlzdGVuZXIpXG4gICAgdGhpcy5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgIGlzRnVuY3Rpb24obGlzdGVuZXIubGlzdGVuZXIpID9cbiAgICAgICAgICAgICAgbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHNbdHlwZV0pXG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgdGhpcy5fZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gIGVsc2UgaWYgKGlzT2JqZWN0KHRoaXMuX2V2ZW50c1t0eXBlXSkpXG4gICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIHRoaXMuX2V2ZW50c1t0eXBlXS5wdXNoKGxpc3RlbmVyKTtcbiAgZWxzZVxuICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgIHRoaXMuX2V2ZW50c1t0eXBlXSA9IFt0aGlzLl9ldmVudHNbdHlwZV0sIGxpc3RlbmVyXTtcblxuICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICBpZiAoaXNPYmplY3QodGhpcy5fZXZlbnRzW3R5cGVdKSAmJiAhdGhpcy5fZXZlbnRzW3R5cGVdLndhcm5lZCkge1xuICAgIHZhciBtO1xuICAgIGlmICghaXNVbmRlZmluZWQodGhpcy5fbWF4TGlzdGVuZXJzKSkge1xuICAgICAgbSA9IHRoaXMuX21heExpc3RlbmVycztcbiAgICB9IGVsc2Uge1xuICAgICAgbSA9IEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICAgIH1cblxuICAgIGlmIChtICYmIG0gPiAwICYmIHRoaXMuX2V2ZW50c1t0eXBlXS5sZW5ndGggPiBtKSB7XG4gICAgICB0aGlzLl9ldmVudHNbdHlwZV0ud2FybmVkID0gdHJ1ZTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJyhub2RlKSB3YXJuaW5nOiBwb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5ICcgK1xuICAgICAgICAgICAgICAgICAgICAnbGVhayBkZXRlY3RlZC4gJWQgbGlzdGVuZXJzIGFkZGVkLiAnICtcbiAgICAgICAgICAgICAgICAgICAgJ1VzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0LicsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2V2ZW50c1t0eXBlXS5sZW5ndGgpO1xuICAgICAgaWYgKHR5cGVvZiBjb25zb2xlLnRyYWNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIG5vdCBzdXBwb3J0ZWQgaW4gSUUgMTBcbiAgICAgICAgY29uc29sZS50cmFjZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XG4gIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpXG4gICAgdGhyb3cgVHlwZUVycm9yKCdsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICB2YXIgZmlyZWQgPSBmYWxzZTtcblxuICBmdW5jdGlvbiBnKCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgZyk7XG5cbiAgICBpZiAoIWZpcmVkKSB7XG4gICAgICBmaXJlZCA9IHRydWU7XG4gICAgICBsaXN0ZW5lci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfVxuXG4gIGcubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgdGhpcy5vbih0eXBlLCBnKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIGVtaXRzIGEgJ3JlbW92ZUxpc3RlbmVyJyBldmVudCBpZmYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIGxpc3QsIHBvc2l0aW9uLCBsZW5ndGgsIGk7XG5cbiAgaWYgKCFpc0Z1bmN0aW9uKGxpc3RlbmVyKSlcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ2xpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuXG4gIGlmICghdGhpcy5fZXZlbnRzIHx8ICF0aGlzLl9ldmVudHNbdHlwZV0pXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgbGlzdCA9IHRoaXMuX2V2ZW50c1t0eXBlXTtcbiAgbGVuZ3RoID0gbGlzdC5sZW5ndGg7XG4gIHBvc2l0aW9uID0gLTE7XG5cbiAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8XG4gICAgICAoaXNGdW5jdGlvbihsaXN0Lmxpc3RlbmVyKSAmJiBsaXN0Lmxpc3RlbmVyID09PSBsaXN0ZW5lcikpIHtcbiAgICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuICAgIGlmICh0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXIpXG4gICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgbGlzdGVuZXIpO1xuXG4gIH0gZWxzZSBpZiAoaXNPYmplY3QobGlzdCkpIHtcbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSA+IDA7KSB7XG4gICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHxcbiAgICAgICAgICAobGlzdFtpXS5saXN0ZW5lciAmJiBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikpIHtcbiAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgIGxpc3QubGVuZ3RoID0gMDtcbiAgICAgIGRlbGV0ZSB0aGlzLl9ldmVudHNbdHlwZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3Quc3BsaWNlKHBvc2l0aW9uLCAxKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBmdW5jdGlvbih0eXBlKSB7XG4gIHZhciBrZXksIGxpc3RlbmVycztcblxuICBpZiAoIXRoaXMuX2V2ZW50cylcbiAgICByZXR1cm4gdGhpcztcblxuICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gIGlmICghdGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICB0aGlzLl9ldmVudHMgPSB7fTtcbiAgICBlbHNlIGlmICh0aGlzLl9ldmVudHNbdHlwZV0pXG4gICAgICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgZm9yIChrZXkgaW4gdGhpcy5fZXZlbnRzKSB7XG4gICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgIHRoaXMuX2V2ZW50cyA9IHt9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbGlzdGVuZXJzID0gdGhpcy5fZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChpc0Z1bmN0aW9uKGxpc3RlbmVycykpIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVycyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gTElGTyBvcmRlclxuICAgIHdoaWxlIChsaXN0ZW5lcnMubGVuZ3RoKVxuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbbGlzdGVuZXJzLmxlbmd0aCAtIDFdKTtcbiAgfVxuICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbih0eXBlKSB7XG4gIHZhciByZXQ7XG4gIGlmICghdGhpcy5fZXZlbnRzIHx8ICF0aGlzLl9ldmVudHNbdHlwZV0pXG4gICAgcmV0ID0gW107XG4gIGVsc2UgaWYgKGlzRnVuY3Rpb24odGhpcy5fZXZlbnRzW3R5cGVdKSlcbiAgICByZXQgPSBbdGhpcy5fZXZlbnRzW3R5cGVdXTtcbiAgZWxzZVxuICAgIHJldCA9IHRoaXMuX2V2ZW50c1t0eXBlXS5zbGljZSgpO1xuICByZXR1cm4gcmV0O1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIHZhciByZXQ7XG4gIGlmICghZW1pdHRlci5fZXZlbnRzIHx8ICFlbWl0dGVyLl9ldmVudHNbdHlwZV0pXG4gICAgcmV0ID0gMDtcbiAgZWxzZSBpZiAoaXNGdW5jdGlvbihlbWl0dGVyLl9ldmVudHNbdHlwZV0pKVxuICAgIHJldCA9IDE7XG4gIGVsc2VcbiAgICByZXQgPSBlbWl0dGVyLl9ldmVudHNbdHlwZV0ubGVuZ3RoO1xuICByZXR1cm4gcmV0O1xufTtcblxuZnVuY3Rpb24gaXNGdW5jdGlvbihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbic7XG59XG5cbmZ1bmN0aW9uIGlzTnVtYmVyKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ251bWJlcic7XG59XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsO1xufVxuXG5mdW5jdGlvbiBpc1VuZGVmaW5lZChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gdm9pZCAwO1xufVxuIiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDtcblxucHJvY2Vzcy5saXN0ZW5lcnMgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gW10gfVxuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykuQnVmZmVyO1xuXG52YXIgaXNCdWZmZXJFbmNvZGluZyA9IEJ1ZmZlci5pc0VuY29kaW5nXG4gIHx8IGZ1bmN0aW9uKGVuY29kaW5nKSB7XG4gICAgICAgc3dpdGNoIChlbmNvZGluZyAmJiBlbmNvZGluZy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICBjYXNlICdoZXgnOiBjYXNlICd1dGY4JzogY2FzZSAndXRmLTgnOiBjYXNlICdhc2NpaSc6IGNhc2UgJ2JpbmFyeSc6IGNhc2UgJ2Jhc2U2NCc6IGNhc2UgJ3VjczInOiBjYXNlICd1Y3MtMic6IGNhc2UgJ3V0ZjE2bGUnOiBjYXNlICd1dGYtMTZsZSc6IGNhc2UgJ3Jhdyc6IHJldHVybiB0cnVlO1xuICAgICAgICAgZGVmYXVsdDogcmV0dXJuIGZhbHNlO1xuICAgICAgIH1cbiAgICAgfVxuXG5cbmZ1bmN0aW9uIGFzc2VydEVuY29kaW5nKGVuY29kaW5nKSB7XG4gIGlmIChlbmNvZGluZyAmJiAhaXNCdWZmZXJFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZyk7XG4gIH1cbn1cblxuLy8gU3RyaW5nRGVjb2RlciBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIGVmZmljaWVudGx5IHNwbGl0dGluZyBhIHNlcmllcyBvZlxuLy8gYnVmZmVycyBpbnRvIGEgc2VyaWVzIG9mIEpTIHN0cmluZ3Mgd2l0aG91dCBicmVha2luZyBhcGFydCBtdWx0aS1ieXRlXG4vLyBjaGFyYWN0ZXJzLiBDRVNVLTggaXMgaGFuZGxlZCBhcyBwYXJ0IG9mIHRoZSBVVEYtOCBlbmNvZGluZy5cbi8vXG4vLyBAVE9ETyBIYW5kbGluZyBhbGwgZW5jb2RpbmdzIGluc2lkZSBhIHNpbmdsZSBvYmplY3QgbWFrZXMgaXQgdmVyeSBkaWZmaWN1bHRcbi8vIHRvIHJlYXNvbiBhYm91dCB0aGlzIGNvZGUsIHNvIGl0IHNob3VsZCBiZSBzcGxpdCB1cCBpbiB0aGUgZnV0dXJlLlxuLy8gQFRPRE8gVGhlcmUgc2hvdWxkIGJlIGEgdXRmOC1zdHJpY3QgZW5jb2RpbmcgdGhhdCByZWplY3RzIGludmFsaWQgVVRGLTggY29kZVxuLy8gcG9pbnRzIGFzIHVzZWQgYnkgQ0VTVS04LlxudmFyIFN0cmluZ0RlY29kZXIgPSBleHBvcnRzLlN0cmluZ0RlY29kZXIgPSBmdW5jdGlvbihlbmNvZGluZykge1xuICB0aGlzLmVuY29kaW5nID0gKGVuY29kaW5nIHx8ICd1dGY4JykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9dLywgJycpO1xuICBhc3NlcnRFbmNvZGluZyhlbmNvZGluZyk7XG4gIHN3aXRjaCAodGhpcy5lbmNvZGluZykge1xuICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgLy8gQ0VTVS04IHJlcHJlc2VudHMgZWFjaCBvZiBTdXJyb2dhdGUgUGFpciBieSAzLWJ5dGVzXG4gICAgICB0aGlzLnN1cnJvZ2F0ZVNpemUgPSAzO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICAvLyBVVEYtMTYgcmVwcmVzZW50cyBlYWNoIG9mIFN1cnJvZ2F0ZSBQYWlyIGJ5IDItYnl0ZXNcbiAgICAgIHRoaXMuc3Vycm9nYXRlU2l6ZSA9IDI7XG4gICAgICB0aGlzLmRldGVjdEluY29tcGxldGVDaGFyID0gdXRmMTZEZXRlY3RJbmNvbXBsZXRlQ2hhcjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAvLyBCYXNlLTY0IHN0b3JlcyAzIGJ5dGVzIGluIDQgY2hhcnMsIGFuZCBwYWRzIHRoZSByZW1haW5kZXIuXG4gICAgICB0aGlzLnN1cnJvZ2F0ZVNpemUgPSAzO1xuICAgICAgdGhpcy5kZXRlY3RJbmNvbXBsZXRlQ2hhciA9IGJhc2U2NERldGVjdEluY29tcGxldGVDaGFyO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRoaXMud3JpdGUgPSBwYXNzVGhyb3VnaFdyaXRlO1xuICAgICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gRW5vdWdoIHNwYWNlIHRvIHN0b3JlIGFsbCBieXRlcyBvZiBhIHNpbmdsZSBjaGFyYWN0ZXIuIFVURi04IG5lZWRzIDRcbiAgLy8gYnl0ZXMsIGJ1dCBDRVNVLTggbWF5IHJlcXVpcmUgdXAgdG8gNiAoMyBieXRlcyBwZXIgc3Vycm9nYXRlKS5cbiAgdGhpcy5jaGFyQnVmZmVyID0gbmV3IEJ1ZmZlcig2KTtcbiAgLy8gTnVtYmVyIG9mIGJ5dGVzIHJlY2VpdmVkIGZvciB0aGUgY3VycmVudCBpbmNvbXBsZXRlIG11bHRpLWJ5dGUgY2hhcmFjdGVyLlxuICB0aGlzLmNoYXJSZWNlaXZlZCA9IDA7XG4gIC8vIE51bWJlciBvZiBieXRlcyBleHBlY3RlZCBmb3IgdGhlIGN1cnJlbnQgaW5jb21wbGV0ZSBtdWx0aS1ieXRlIGNoYXJhY3Rlci5cbiAgdGhpcy5jaGFyTGVuZ3RoID0gMDtcbn07XG5cblxuLy8gd3JpdGUgZGVjb2RlcyB0aGUgZ2l2ZW4gYnVmZmVyIGFuZCByZXR1cm5zIGl0IGFzIEpTIHN0cmluZyB0aGF0IGlzXG4vLyBndWFyYW50ZWVkIHRvIG5vdCBjb250YWluIGFueSBwYXJ0aWFsIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gQW55IHBhcnRpYWxcbi8vIGNoYXJhY3RlciBmb3VuZCBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgaXMgYnVmZmVyZWQgdXAsIGFuZCB3aWxsIGJlXG4vLyByZXR1cm5lZCB3aGVuIGNhbGxpbmcgd3JpdGUgYWdhaW4gd2l0aCB0aGUgcmVtYWluaW5nIGJ5dGVzLlxuLy9cbi8vIE5vdGU6IENvbnZlcnRpbmcgYSBCdWZmZXIgY29udGFpbmluZyBhbiBvcnBoYW4gc3Vycm9nYXRlIHRvIGEgU3RyaW5nXG4vLyBjdXJyZW50bHkgd29ya3MsIGJ1dCBjb252ZXJ0aW5nIGEgU3RyaW5nIHRvIGEgQnVmZmVyICh2aWEgYG5ldyBCdWZmZXJgLCBvclxuLy8gQnVmZmVyI3dyaXRlKSB3aWxsIHJlcGxhY2UgaW5jb21wbGV0ZSBzdXJyb2dhdGVzIHdpdGggdGhlIHVuaWNvZGVcbi8vIHJlcGxhY2VtZW50IGNoYXJhY3Rlci4gU2VlIGh0dHBzOi8vY29kZXJldmlldy5jaHJvbWl1bS5vcmcvMTIxMTczMDA5LyAuXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1ZmZlcikge1xuICB2YXIgY2hhclN0ciA9ICcnO1xuICAvLyBpZiBvdXIgbGFzdCB3cml0ZSBlbmRlZCB3aXRoIGFuIGluY29tcGxldGUgbXVsdGlieXRlIGNoYXJhY3RlclxuICB3aGlsZSAodGhpcy5jaGFyTGVuZ3RoKSB7XG4gICAgLy8gZGV0ZXJtaW5lIGhvdyBtYW55IHJlbWFpbmluZyBieXRlcyB0aGlzIGJ1ZmZlciBoYXMgdG8gb2ZmZXIgZm9yIHRoaXMgY2hhclxuICAgIHZhciBhdmFpbGFibGUgPSAoYnVmZmVyLmxlbmd0aCA+PSB0aGlzLmNoYXJMZW5ndGggLSB0aGlzLmNoYXJSZWNlaXZlZCkgP1xuICAgICAgICB0aGlzLmNoYXJMZW5ndGggLSB0aGlzLmNoYXJSZWNlaXZlZCA6XG4gICAgICAgIGJ1ZmZlci5sZW5ndGg7XG5cbiAgICAvLyBhZGQgdGhlIG5ldyBieXRlcyB0byB0aGUgY2hhciBidWZmZXJcbiAgICBidWZmZXIuY29weSh0aGlzLmNoYXJCdWZmZXIsIHRoaXMuY2hhclJlY2VpdmVkLCAwLCBhdmFpbGFibGUpO1xuICAgIHRoaXMuY2hhclJlY2VpdmVkICs9IGF2YWlsYWJsZTtcblxuICAgIGlmICh0aGlzLmNoYXJSZWNlaXZlZCA8IHRoaXMuY2hhckxlbmd0aCkge1xuICAgICAgLy8gc3RpbGwgbm90IGVub3VnaCBjaGFycyBpbiB0aGlzIGJ1ZmZlcj8gd2FpdCBmb3IgbW9yZSAuLi5cbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvLyByZW1vdmUgYnl0ZXMgYmVsb25naW5nIHRvIHRoZSBjdXJyZW50IGNoYXJhY3RlciBmcm9tIHRoZSBidWZmZXJcbiAgICBidWZmZXIgPSBidWZmZXIuc2xpY2UoYXZhaWxhYmxlLCBidWZmZXIubGVuZ3RoKTtcblxuICAgIC8vIGdldCB0aGUgY2hhcmFjdGVyIHRoYXQgd2FzIHNwbGl0XG4gICAgY2hhclN0ciA9IHRoaXMuY2hhckJ1ZmZlci5zbGljZSgwLCB0aGlzLmNoYXJMZW5ndGgpLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcpO1xuXG4gICAgLy8gQ0VTVS04OiBsZWFkIHN1cnJvZ2F0ZSAoRDgwMC1EQkZGKSBpcyBhbHNvIHRoZSBpbmNvbXBsZXRlIGNoYXJhY3RlclxuICAgIHZhciBjaGFyQ29kZSA9IGNoYXJTdHIuY2hhckNvZGVBdChjaGFyU3RyLmxlbmd0aCAtIDEpO1xuICAgIGlmIChjaGFyQ29kZSA+PSAweEQ4MDAgJiYgY2hhckNvZGUgPD0gMHhEQkZGKSB7XG4gICAgICB0aGlzLmNoYXJMZW5ndGggKz0gdGhpcy5zdXJyb2dhdGVTaXplO1xuICAgICAgY2hhclN0ciA9ICcnO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHRoaXMuY2hhclJlY2VpdmVkID0gdGhpcy5jaGFyTGVuZ3RoID0gMDtcblxuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBtb3JlIGJ5dGVzIGluIHRoaXMgYnVmZmVyLCBqdXN0IGVtaXQgb3VyIGNoYXJcbiAgICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGNoYXJTdHI7XG4gICAgfVxuICAgIGJyZWFrO1xuICB9XG5cbiAgLy8gZGV0ZXJtaW5lIGFuZCBzZXQgY2hhckxlbmd0aCAvIGNoYXJSZWNlaXZlZFxuICB0aGlzLmRldGVjdEluY29tcGxldGVDaGFyKGJ1ZmZlcik7XG5cbiAgdmFyIGVuZCA9IGJ1ZmZlci5sZW5ndGg7XG4gIGlmICh0aGlzLmNoYXJMZW5ndGgpIHtcbiAgICAvLyBidWZmZXIgdGhlIGluY29tcGxldGUgY2hhcmFjdGVyIGJ5dGVzIHdlIGdvdFxuICAgIGJ1ZmZlci5jb3B5KHRoaXMuY2hhckJ1ZmZlciwgMCwgYnVmZmVyLmxlbmd0aCAtIHRoaXMuY2hhclJlY2VpdmVkLCBlbmQpO1xuICAgIGVuZCAtPSB0aGlzLmNoYXJSZWNlaXZlZDtcbiAgfVxuXG4gIGNoYXJTdHIgKz0gYnVmZmVyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsIDAsIGVuZCk7XG5cbiAgdmFyIGVuZCA9IGNoYXJTdHIubGVuZ3RoIC0gMTtcbiAgdmFyIGNoYXJDb2RlID0gY2hhclN0ci5jaGFyQ29kZUF0KGVuZCk7XG4gIC8vIENFU1UtODogbGVhZCBzdXJyb2dhdGUgKEQ4MDAtREJGRikgaXMgYWxzbyB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXJcbiAgaWYgKGNoYXJDb2RlID49IDB4RDgwMCAmJiBjaGFyQ29kZSA8PSAweERCRkYpIHtcbiAgICB2YXIgc2l6ZSA9IHRoaXMuc3Vycm9nYXRlU2l6ZTtcbiAgICB0aGlzLmNoYXJMZW5ndGggKz0gc2l6ZTtcbiAgICB0aGlzLmNoYXJSZWNlaXZlZCArPSBzaXplO1xuICAgIHRoaXMuY2hhckJ1ZmZlci5jb3B5KHRoaXMuY2hhckJ1ZmZlciwgc2l6ZSwgMCwgc2l6ZSk7XG4gICAgYnVmZmVyLmNvcHkodGhpcy5jaGFyQnVmZmVyLCAwLCAwLCBzaXplKTtcbiAgICByZXR1cm4gY2hhclN0ci5zdWJzdHJpbmcoMCwgZW5kKTtcbiAgfVxuXG4gIC8vIG9yIGp1c3QgZW1pdCB0aGUgY2hhclN0clxuICByZXR1cm4gY2hhclN0cjtcbn07XG5cbi8vIGRldGVjdEluY29tcGxldGVDaGFyIGRldGVybWluZXMgaWYgdGhlcmUgaXMgYW4gaW5jb21wbGV0ZSBVVEYtOCBjaGFyYWN0ZXIgYXRcbi8vIHRoZSBlbmQgb2YgdGhlIGdpdmVuIGJ1ZmZlci4gSWYgc28sIGl0IHNldHMgdGhpcy5jaGFyTGVuZ3RoIHRvIHRoZSBieXRlXG4vLyBsZW5ndGggdGhhdCBjaGFyYWN0ZXIsIGFuZCBzZXRzIHRoaXMuY2hhclJlY2VpdmVkIHRvIHRoZSBudW1iZXIgb2YgYnl0ZXNcbi8vIHRoYXQgYXJlIGF2YWlsYWJsZSBmb3IgdGhpcyBjaGFyYWN0ZXIuXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5kZXRlY3RJbmNvbXBsZXRlQ2hhciA9IGZ1bmN0aW9uKGJ1ZmZlcikge1xuICAvLyBkZXRlcm1pbmUgaG93IG1hbnkgYnl0ZXMgd2UgaGF2ZSB0byBjaGVjayBhdCB0aGUgZW5kIG9mIHRoaXMgYnVmZmVyXG4gIHZhciBpID0gKGJ1ZmZlci5sZW5ndGggPj0gMykgPyAzIDogYnVmZmVyLmxlbmd0aDtcblxuICAvLyBGaWd1cmUgb3V0IGlmIG9uZSBvZiB0aGUgbGFzdCBpIGJ5dGVzIG9mIG91ciBidWZmZXIgYW5ub3VuY2VzIGFuXG4gIC8vIGluY29tcGxldGUgY2hhci5cbiAgZm9yICg7IGkgPiAwOyBpLS0pIHtcbiAgICB2YXIgYyA9IGJ1ZmZlcltidWZmZXIubGVuZ3RoIC0gaV07XG5cbiAgICAvLyBTZWUgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtOCNEZXNjcmlwdGlvblxuXG4gICAgLy8gMTEwWFhYWFhcbiAgICBpZiAoaSA9PSAxICYmIGMgPj4gNSA9PSAweDA2KSB7XG4gICAgICB0aGlzLmNoYXJMZW5ndGggPSAyO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gMTExMFhYWFhcbiAgICBpZiAoaSA8PSAyICYmIGMgPj4gNCA9PSAweDBFKSB7XG4gICAgICB0aGlzLmNoYXJMZW5ndGggPSAzO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gMTExMTBYWFhcbiAgICBpZiAoaSA8PSAzICYmIGMgPj4gMyA9PSAweDFFKSB7XG4gICAgICB0aGlzLmNoYXJMZW5ndGggPSA0O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHRoaXMuY2hhclJlY2VpdmVkID0gaTtcbn07XG5cblN0cmluZ0RlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKGJ1ZmZlcikge1xuICB2YXIgcmVzID0gJyc7XG4gIGlmIChidWZmZXIgJiYgYnVmZmVyLmxlbmd0aClcbiAgICByZXMgPSB0aGlzLndyaXRlKGJ1ZmZlcik7XG5cbiAgaWYgKHRoaXMuY2hhclJlY2VpdmVkKSB7XG4gICAgdmFyIGNyID0gdGhpcy5jaGFyUmVjZWl2ZWQ7XG4gICAgdmFyIGJ1ZiA9IHRoaXMuY2hhckJ1ZmZlcjtcbiAgICB2YXIgZW5jID0gdGhpcy5lbmNvZGluZztcbiAgICByZXMgKz0gYnVmLnNsaWNlKDAsIGNyKS50b1N0cmluZyhlbmMpO1xuICB9XG5cbiAgcmV0dXJuIHJlcztcbn07XG5cbmZ1bmN0aW9uIHBhc3NUaHJvdWdoV3JpdGUoYnVmZmVyKSB7XG4gIHJldHVybiBidWZmZXIudG9TdHJpbmcodGhpcy5lbmNvZGluZyk7XG59XG5cbmZ1bmN0aW9uIHV0ZjE2RGV0ZWN0SW5jb21wbGV0ZUNoYXIoYnVmZmVyKSB7XG4gIHRoaXMuY2hhclJlY2VpdmVkID0gYnVmZmVyLmxlbmd0aCAlIDI7XG4gIHRoaXMuY2hhckxlbmd0aCA9IHRoaXMuY2hhclJlY2VpdmVkID8gMiA6IDA7XG59XG5cbmZ1bmN0aW9uIGJhc2U2NERldGVjdEluY29tcGxldGVDaGFyKGJ1ZmZlcikge1xuICB0aGlzLmNoYXJSZWNlaXZlZCA9IGJ1ZmZlci5sZW5ndGggJSAzO1xuICB0aGlzLmNoYXJMZW5ndGggPSB0aGlzLmNoYXJSZWNlaXZlZCA/IDMgOiAwO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB4b3IgKGEsIGIpIHtcbiAgdmFyIGxlbmd0aCA9IE1hdGgubWluKGEubGVuZ3RoLCBiLmxlbmd0aClcbiAgdmFyIGJ1ZmZlciA9IG5ldyBCdWZmZXIobGVuZ3RoKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBidWZmZXJbaV0gPSBhW2ldIF4gYltpXVxuICB9XG5cbiAgcmV0dXJuIGJ1ZmZlclxufVxuIiwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8ZmVyb3NzQGZlcm9zcy5vcmc+IDxodHRwOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbnZhciBiYXNlNjQgPSByZXF1aXJlKCdiYXNlNjQtanMnKVxudmFyIGllZWU3NTQgPSByZXF1aXJlKCdpZWVlNzU0JylcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnaXNhcnJheScpXG5cbmV4cG9ydHMuQnVmZmVyID0gQnVmZmVyXG5leHBvcnRzLlNsb3dCdWZmZXIgPSBTbG93QnVmZmVyXG5leHBvcnRzLklOU1BFQ1RfTUFYX0JZVEVTID0gNTBcblxuLyoqXG4gKiBJZiBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgOlxuICogICA9PT0gdHJ1ZSAgICBVc2UgVWludDhBcnJheSBpbXBsZW1lbnRhdGlvbiAoZmFzdGVzdClcbiAqICAgPT09IGZhbHNlICAgVXNlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiAobW9zdCBjb21wYXRpYmxlLCBldmVuIElFNilcbiAqXG4gKiBCcm93c2VycyB0aGF0IHN1cHBvcnQgdHlwZWQgYXJyYXlzIGFyZSBJRSAxMCssIEZpcmVmb3ggNCssIENocm9tZSA3KywgU2FmYXJpIDUuMSssXG4gKiBPcGVyYSAxMS42KywgaU9TIDQuMisuXG4gKlxuICogRHVlIHRvIHZhcmlvdXMgYnJvd3NlciBidWdzLCBzb21ldGltZXMgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHVzZWQgZXZlblxuICogd2hlbiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0eXBlZCBhcnJheXMuXG4gKlxuICogTm90ZTpcbiAqXG4gKiAgIC0gRmlyZWZveCA0LTI5IGxhY2tzIHN1cHBvcnQgZm9yIGFkZGluZyBuZXcgcHJvcGVydGllcyB0byBgVWludDhBcnJheWAgaW5zdGFuY2VzLFxuICogICAgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NDM4LlxuICpcbiAqICAgLSBDaHJvbWUgOS0xMCBpcyBtaXNzaW5nIHRoZSBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uLlxuICpcbiAqICAgLSBJRTEwIGhhcyBhIGJyb2tlbiBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYXJyYXlzIG9mXG4gKiAgICAgaW5jb3JyZWN0IGxlbmd0aCBpbiBzb21lIHNpdHVhdGlvbnMuXG5cbiAqIFdlIGRldGVjdCB0aGVzZSBidWdneSBicm93c2VycyBhbmQgc2V0IGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGAgdG8gYGZhbHNlYCBzbyB0aGV5XG4gKiBnZXQgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgc2xvd2VyIGJ1dCBiZWhhdmVzIGNvcnJlY3RseS5cbiAqL1xuQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgPSBnbG9iYWwuVFlQRURfQVJSQVlfU1VQUE9SVCAhPT0gdW5kZWZpbmVkXG4gID8gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlRcbiAgOiB0eXBlZEFycmF5U3VwcG9ydCgpXG5cbi8qXG4gKiBFeHBvcnQga01heExlbmd0aCBhZnRlciB0eXBlZCBhcnJheSBzdXBwb3J0IGlzIGRldGVybWluZWQuXG4gKi9cbmV4cG9ydHMua01heExlbmd0aCA9IGtNYXhMZW5ndGgoKVxuXG5mdW5jdGlvbiB0eXBlZEFycmF5U3VwcG9ydCAoKSB7XG4gIHRyeSB7XG4gICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KDEpXG4gICAgYXJyLl9fcHJvdG9fXyA9IHtfX3Byb3RvX186IFVpbnQ4QXJyYXkucHJvdG90eXBlLCBmb286IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDQyIH19XG4gICAgcmV0dXJuIGFyci5mb28oKSA9PT0gNDIgJiYgLy8gdHlwZWQgYXJyYXkgaW5zdGFuY2VzIGNhbiBiZSBhdWdtZW50ZWRcbiAgICAgICAgdHlwZW9mIGFyci5zdWJhcnJheSA9PT0gJ2Z1bmN0aW9uJyAmJiAvLyBjaHJvbWUgOS0xMCBsYWNrIGBzdWJhcnJheWBcbiAgICAgICAgYXJyLnN1YmFycmF5KDEsIDEpLmJ5dGVMZW5ndGggPT09IDAgLy8gaWUxMCBoYXMgYnJva2VuIGBzdWJhcnJheWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmZ1bmN0aW9uIGtNYXhMZW5ndGggKCkge1xuICByZXR1cm4gQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRcbiAgICA/IDB4N2ZmZmZmZmZcbiAgICA6IDB4M2ZmZmZmZmZcbn1cblxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyICh0aGF0LCBsZW5ndGgpIHtcbiAgaWYgKGtNYXhMZW5ndGgoKSA8IGxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHR5cGVkIGFycmF5IGxlbmd0aCcpXG4gIH1cbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gUmV0dXJuIGFuIGF1Z21lbnRlZCBgVWludDhBcnJheWAgaW5zdGFuY2UsIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgdGhhdCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aClcbiAgICB0aGF0Ll9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgaWYgKHRoYXQgPT09IG51bGwpIHtcbiAgICAgIHRoYXQgPSBuZXcgQnVmZmVyKGxlbmd0aClcbiAgICB9XG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgfVxuXG4gIHJldHVybiB0aGF0XG59XG5cbi8qKlxuICogVGhlIEJ1ZmZlciBjb25zdHJ1Y3RvciByZXR1cm5zIGluc3RhbmNlcyBvZiBgVWludDhBcnJheWAgdGhhdCBoYXZlIHRoZWlyXG4gKiBwcm90b3R5cGUgY2hhbmdlZCB0byBgQnVmZmVyLnByb3RvdHlwZWAuIEZ1cnRoZXJtb3JlLCBgQnVmZmVyYCBpcyBhIHN1YmNsYXNzIG9mXG4gKiBgVWludDhBcnJheWAsIHNvIHRoZSByZXR1cm5lZCBpbnN0YW5jZXMgd2lsbCBoYXZlIGFsbCB0aGUgbm9kZSBgQnVmZmVyYCBtZXRob2RzXG4gKiBhbmQgdGhlIGBVaW50OEFycmF5YCBtZXRob2RzLiBTcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdFxuICogcmV0dXJucyBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBUaGUgYFVpbnQ4QXJyYXlgIHByb3RvdHlwZSByZW1haW5zIHVubW9kaWZpZWQuXG4gKi9cblxuZnVuY3Rpb24gQnVmZmVyIChhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUICYmICEodGhpcyBpbnN0YW5jZW9mIEJ1ZmZlcikpIHtcbiAgICByZXR1cm4gbmV3IEJ1ZmZlcihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIC8vIENvbW1vbiBjYXNlLlxuICBpZiAodHlwZW9mIGFyZyA9PT0gJ251bWJlcicpIHtcbiAgICBpZiAodHlwZW9mIGVuY29kaW5nT3JPZmZzZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdJZiBlbmNvZGluZyBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZydcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIGFsbG9jVW5zYWZlKHRoaXMsIGFyZylcbiAgfVxuICByZXR1cm4gZnJvbSh0aGlzLCBhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbi8vIFRPRE86IExlZ2FjeSwgbm90IG5lZWRlZCBhbnltb3JlLiBSZW1vdmUgaW4gbmV4dCBtYWpvciB2ZXJzaW9uLlxuQnVmZmVyLl9hdWdtZW50ID0gZnVuY3Rpb24gKGFycikge1xuICBhcnIuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICByZXR1cm4gYXJyXG59XG5cbmZ1bmN0aW9uIGZyb20gKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcInZhbHVlXCIgYXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKVxuICB9XG5cbiAgaWYgKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgIHJldHVybiBmcm9tQXJyYXlCdWZmZXIodGhhdCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZyb21TdHJpbmcodGhhdCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQpXG4gIH1cblxuICByZXR1cm4gZnJvbU9iamVjdCh0aGF0LCB2YWx1ZSlcbn1cblxuLyoqXG4gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0byBCdWZmZXIoYXJnLCBlbmNvZGluZykgYnV0IHRocm93cyBhIFR5cGVFcnJvclxuICogaWYgdmFsdWUgaXMgYSBudW1iZXIuXG4gKiBCdWZmZXIuZnJvbShzdHJbLCBlbmNvZGluZ10pXG4gKiBCdWZmZXIuZnJvbShhcnJheSlcbiAqIEJ1ZmZlci5mcm9tKGJ1ZmZlcilcbiAqIEJ1ZmZlci5mcm9tKGFycmF5QnVmZmVyWywgYnl0ZU9mZnNldFssIGxlbmd0aF1dKVxuICoqL1xuQnVmZmVyLmZyb20gPSBmdW5jdGlvbiAodmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gZnJvbShudWxsLCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKVxufVxuXG5pZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgQnVmZmVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBVaW50OEFycmF5LnByb3RvdHlwZVxuICBCdWZmZXIuX19wcm90b19fID0gVWludDhBcnJheVxuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnNwZWNpZXMgJiZcbiAgICAgIEJ1ZmZlcltTeW1ib2wuc3BlY2llc10gPT09IEJ1ZmZlcikge1xuICAgIC8vIEZpeCBzdWJhcnJheSgpIGluIEVTMjAxNi4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlci9wdWxsLzk3XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJ1ZmZlciwgU3ltYm9sLnNwZWNpZXMsIHtcbiAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRTaXplIChzaXplKSB7XG4gIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcInNpemVcIiBhcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJylcbiAgfSBlbHNlIGlmIChzaXplIDwgMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdcInNpemVcIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBuZWdhdGl2ZScpXG4gIH1cbn1cblxuZnVuY3Rpb24gYWxsb2MgKHRoYXQsIHNpemUsIGZpbGwsIGVuY29kaW5nKSB7XG4gIGFzc2VydFNpemUoc2l6ZSlcbiAgaWYgKHNpemUgPD0gMCkge1xuICAgIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSlcbiAgfVxuICBpZiAoZmlsbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT25seSBwYXkgYXR0ZW50aW9uIHRvIGVuY29kaW5nIGlmIGl0J3MgYSBzdHJpbmcuIFRoaXNcbiAgICAvLyBwcmV2ZW50cyBhY2NpZGVudGFsbHkgc2VuZGluZyBpbiBhIG51bWJlciB0aGF0IHdvdWxkXG4gICAgLy8gYmUgaW50ZXJwcmV0dGVkIGFzIGEgc3RhcnQgb2Zmc2V0LlxuICAgIHJldHVybiB0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnXG4gICAgICA/IGNyZWF0ZUJ1ZmZlcih0aGF0LCBzaXplKS5maWxsKGZpbGwsIGVuY29kaW5nKVxuICAgICAgOiBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSkuZmlsbChmaWxsKVxuICB9XG4gIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSlcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKiBhbGxvYyhzaXplWywgZmlsbFssIGVuY29kaW5nXV0pXG4gKiovXG5CdWZmZXIuYWxsb2MgPSBmdW5jdGlvbiAoc2l6ZSwgZmlsbCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIGFsbG9jKG51bGwsIHNpemUsIGZpbGwsIGVuY29kaW5nKVxufVxuXG5mdW5jdGlvbiBhbGxvY1Vuc2FmZSAodGhhdCwgc2l6ZSkge1xuICBhc3NlcnRTaXplKHNpemUpXG4gIHRoYXQgPSBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSA8IDAgPyAwIDogY2hlY2tlZChzaXplKSB8IDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7ICsraSkge1xuICAgICAgdGhhdFtpXSA9IDBcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLyoqXG4gKiBFcXVpdmFsZW50IHRvIEJ1ZmZlcihudW0pLCBieSBkZWZhdWx0IGNyZWF0ZXMgYSBub24temVyby1maWxsZWQgQnVmZmVyIGluc3RhbmNlLlxuICogKi9cbkJ1ZmZlci5hbGxvY1Vuc2FmZSA9IGZ1bmN0aW9uIChzaXplKSB7XG4gIHJldHVybiBhbGxvY1Vuc2FmZShudWxsLCBzaXplKVxufVxuLyoqXG4gKiBFcXVpdmFsZW50IHRvIFNsb3dCdWZmZXIobnVtKSwgYnkgZGVmYXVsdCBjcmVhdGVzIGEgbm9uLXplcm8tZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS5cbiAqL1xuQnVmZmVyLmFsbG9jVW5zYWZlU2xvdyA9IGZ1bmN0aW9uIChzaXplKSB7XG4gIHJldHVybiBhbGxvY1Vuc2FmZShudWxsLCBzaXplKVxufVxuXG5mdW5jdGlvbiBmcm9tU3RyaW5nICh0aGF0LCBzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmICh0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnIHx8IGVuY29kaW5nID09PSAnJykge1xuICAgIGVuY29kaW5nID0gJ3V0ZjgnXG4gIH1cblxuICBpZiAoIUJ1ZmZlci5pc0VuY29kaW5nKGVuY29kaW5nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiZW5jb2RpbmdcIiBtdXN0IGJlIGEgdmFsaWQgc3RyaW5nIGVuY29kaW5nJylcbiAgfVxuXG4gIHZhciBsZW5ndGggPSBieXRlTGVuZ3RoKHN0cmluZywgZW5jb2RpbmcpIHwgMFxuICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIGxlbmd0aClcblxuICB2YXIgYWN0dWFsID0gdGhhdC53cml0ZShzdHJpbmcsIGVuY29kaW5nKVxuXG4gIGlmIChhY3R1YWwgIT09IGxlbmd0aCkge1xuICAgIC8vIFdyaXRpbmcgYSBoZXggc3RyaW5nLCBmb3IgZXhhbXBsZSwgdGhhdCBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMgd2lsbFxuICAgIC8vIGNhdXNlIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IGludmFsaWQgY2hhcmFjdGVyIHRvIGJlIGlnbm9yZWQuIChlLmcuXG4gICAgLy8gJ2FieHhjZCcgd2lsbCBiZSB0cmVhdGVkIGFzICdhYicpXG4gICAgdGhhdCA9IHRoYXQuc2xpY2UoMCwgYWN0dWFsKVxuICB9XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5TGlrZSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCA8IDAgPyAwIDogY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIGxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUJ1ZmZlciAodGhhdCwgYXJyYXksIGJ5dGVPZmZzZXQsIGxlbmd0aCkge1xuICBhcnJheS5ieXRlTGVuZ3RoIC8vIHRoaXMgdGhyb3dzIGlmIGBhcnJheWAgaXMgbm90IGEgdmFsaWQgQXJyYXlCdWZmZXJcblxuICBpZiAoYnl0ZU9mZnNldCA8IDAgfHwgYXJyYXkuYnl0ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXFwnb2Zmc2V0XFwnIGlzIG91dCBvZiBib3VuZHMnKVxuICB9XG5cbiAgaWYgKGFycmF5LmJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0ICsgKGxlbmd0aCB8fCAwKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdcXCdsZW5ndGhcXCcgaXMgb3V0IG9mIGJvdW5kcycpXG4gIH1cblxuICBpZiAoYnl0ZU9mZnNldCA9PT0gdW5kZWZpbmVkICYmIGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheSlcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXksIGJ5dGVPZmZzZXQpXG4gIH0gZWxzZSB7XG4gICAgYXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheSwgYnl0ZU9mZnNldCwgbGVuZ3RoKVxuICB9XG5cbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gUmV0dXJuIGFuIGF1Z21lbnRlZCBgVWludDhBcnJheWAgaW5zdGFuY2UsIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgdGhhdCA9IGFycmF5XG4gICAgdGhhdC5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgLy8gRmFsbGJhY2s6IFJldHVybiBhbiBvYmplY3QgaW5zdGFuY2Ugb2YgdGhlIEJ1ZmZlciBjbGFzc1xuICAgIHRoYXQgPSBmcm9tQXJyYXlMaWtlKHRoYXQsIGFycmF5KVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21PYmplY3QgKHRoYXQsIG9iaikge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKG9iaikpIHtcbiAgICB2YXIgbGVuID0gY2hlY2tlZChvYmoubGVuZ3RoKSB8IDBcbiAgICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIGxlbilcblxuICAgIGlmICh0aGF0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoYXRcbiAgICB9XG5cbiAgICBvYmouY29weSh0aGF0LCAwLCAwLCBsZW4pXG4gICAgcmV0dXJuIHRoYXRcbiAgfVxuXG4gIGlmIChvYmopIHtcbiAgICBpZiAoKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgb2JqLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB8fCAnbGVuZ3RoJyBpbiBvYmopIHtcbiAgICAgIGlmICh0eXBlb2Ygb2JqLmxlbmd0aCAhPT0gJ251bWJlcicgfHwgaXNuYW4ob2JqLmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1ZmZlcih0aGF0LCAwKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZyb21BcnJheUxpa2UodGhhdCwgb2JqKVxuICAgIH1cblxuICAgIGlmIChvYmoudHlwZSA9PT0gJ0J1ZmZlcicgJiYgaXNBcnJheShvYmouZGF0YSkpIHtcbiAgICAgIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iai5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBhcnJheS1saWtlIG9iamVjdC4nKVxufVxuXG5mdW5jdGlvbiBjaGVja2VkIChsZW5ndGgpIHtcbiAgLy8gTm90ZTogY2Fubm90IHVzZSBgbGVuZ3RoIDwga01heExlbmd0aCgpYCBoZXJlIGJlY2F1c2UgdGhhdCBmYWlscyB3aGVuXG4gIC8vIGxlbmd0aCBpcyBOYU4gKHdoaWNoIGlzIG90aGVyd2lzZSBjb2VyY2VkIHRvIHplcm8uKVxuICBpZiAobGVuZ3RoID49IGtNYXhMZW5ndGgoKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICdzaXplOiAweCcgKyBrTWF4TGVuZ3RoKCkudG9TdHJpbmcoMTYpICsgJyBieXRlcycpXG4gIH1cbiAgcmV0dXJuIGxlbmd0aCB8IDBcbn1cblxuZnVuY3Rpb24gU2xvd0J1ZmZlciAobGVuZ3RoKSB7XG4gIGlmICgrbGVuZ3RoICE9IGxlbmd0aCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGVxZXFlcVxuICAgIGxlbmd0aCA9IDBcbiAgfVxuICByZXR1cm4gQnVmZmVyLmFsbG9jKCtsZW5ndGgpXG59XG5cbkJ1ZmZlci5pc0J1ZmZlciA9IGZ1bmN0aW9uIGlzQnVmZmVyIChiKSB7XG4gIHJldHVybiAhIShiICE9IG51bGwgJiYgYi5faXNCdWZmZXIpXG59XG5cbkJ1ZmZlci5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAoYSwgYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihhKSB8fCAhQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIG11c3QgYmUgQnVmZmVycycpXG4gIH1cblxuICBpZiAoYSA9PT0gYikgcmV0dXJuIDBcblxuICB2YXIgeCA9IGEubGVuZ3RoXG4gIHZhciB5ID0gYi5sZW5ndGhcblxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gTWF0aC5taW4oeCwgeSk7IGkgPCBsZW47ICsraSkge1xuICAgIGlmIChhW2ldICE9PSBiW2ldKSB7XG4gICAgICB4ID0gYVtpXVxuICAgICAgeSA9IGJbaV1cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG5CdWZmZXIuaXNFbmNvZGluZyA9IGZ1bmN0aW9uIGlzRW5jb2RpbmcgKGVuY29kaW5nKSB7XG4gIHN3aXRjaCAoU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnaGV4JzpcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgY2FzZSAnYXNjaWknOlxuICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgY2FzZSAnYmluYXJ5JzpcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5CdWZmZXIuY29uY2F0ID0gZnVuY3Rpb24gY29uY2F0IChsaXN0LCBsZW5ndGgpIHtcbiAgaWYgKCFpc0FycmF5KGxpc3QpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJsaXN0XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJylcbiAgfVxuXG4gIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBCdWZmZXIuYWxsb2MoMClcbiAgfVxuXG4gIHZhciBpXG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGxlbmd0aCA9IDBcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkge1xuICAgICAgbGVuZ3RoICs9IGxpc3RbaV0ubGVuZ3RoXG4gICAgfVxuICB9XG5cbiAgdmFyIGJ1ZmZlciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShsZW5ndGgpXG4gIHZhciBwb3MgPSAwXG4gIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgdmFyIGJ1ZiA9IGxpc3RbaV1cbiAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImxpc3RcIiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKVxuICAgIH1cbiAgICBidWYuY29weShidWZmZXIsIHBvcylcbiAgICBwb3MgKz0gYnVmLmxlbmd0aFxuICB9XG4gIHJldHVybiBidWZmZXJcbn1cblxuZnVuY3Rpb24gYnl0ZUxlbmd0aCAoc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHN0cmluZykpIHtcbiAgICByZXR1cm4gc3RyaW5nLmxlbmd0aFxuICB9XG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXcgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIChBcnJheUJ1ZmZlci5pc1ZpZXcoc3RyaW5nKSB8fCBzdHJpbmcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHtcbiAgICByZXR1cm4gc3RyaW5nLmJ5dGVMZW5ndGhcbiAgfVxuICBpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHtcbiAgICBzdHJpbmcgPSAnJyArIHN0cmluZ1xuICB9XG5cbiAgdmFyIGxlbiA9IHN0cmluZy5sZW5ndGhcbiAgaWYgKGxlbiA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBVc2UgYSBmb3IgbG9vcCB0byBhdm9pZCByZWN1cnNpb25cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGVuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiBsZW4gKiAyXG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gbGVuID4+PiAxXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGggLy8gYXNzdW1lIHV0ZjhcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cbkJ1ZmZlci5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aFxuXG5mdW5jdGlvbiBzbG93VG9TdHJpbmcgKGVuY29kaW5nLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG5cbiAgLy8gTm8gbmVlZCB0byB2ZXJpZnkgdGhhdCBcInRoaXMubGVuZ3RoIDw9IE1BWF9VSU5UMzJcIiBzaW5jZSBpdCdzIGEgcmVhZC1vbmx5XG4gIC8vIHByb3BlcnR5IG9mIGEgdHlwZWQgYXJyYXkuXG5cbiAgLy8gVGhpcyBiZWhhdmVzIG5laXRoZXIgbGlrZSBTdHJpbmcgbm9yIFVpbnQ4QXJyYXkgaW4gdGhhdCB3ZSBzZXQgc3RhcnQvZW5kXG4gIC8vIHRvIHRoZWlyIHVwcGVyL2xvd2VyIGJvdW5kcyBpZiB0aGUgdmFsdWUgcGFzc2VkIGlzIG91dCBvZiByYW5nZS5cbiAgLy8gdW5kZWZpbmVkIGlzIGhhbmRsZWQgc3BlY2lhbGx5IGFzIHBlciBFQ01BLTI2MiA2dGggRWRpdGlvbixcbiAgLy8gU2VjdGlvbiAxMy4zLjMuNyBSdW50aW1lIFNlbWFudGljczogS2V5ZWRCaW5kaW5nSW5pdGlhbGl6YXRpb24uXG4gIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkIHx8IHN0YXJ0IDwgMCkge1xuICAgIHN0YXJ0ID0gMFxuICB9XG4gIC8vIFJldHVybiBlYXJseSBpZiBzdGFydCA+IHRoaXMubGVuZ3RoLiBEb25lIGhlcmUgdG8gcHJldmVudCBwb3RlbnRpYWwgdWludDMyXG4gIC8vIGNvZXJjaW9uIGZhaWwgYmVsb3cuXG4gIGlmIChzdGFydCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBpZiAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gdGhpcy5sZW5ndGgpIHtcbiAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICB9XG5cbiAgaWYgKGVuZCA8PSAwKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICAvLyBGb3JjZSBjb2Vyc2lvbiB0byB1aW50MzIuIFRoaXMgd2lsbCBhbHNvIGNvZXJjZSBmYWxzZXkvTmFOIHZhbHVlcyB0byAwLlxuICBlbmQgPj4+PSAwXG4gIHN0YXJ0ID4+Pj0gMFxuXG4gIGlmIChlbmQgPD0gc3RhcnQpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdsYXRpbjEnOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGxhdGluMVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIHJldHVybiBiYXNlNjRTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gdXRmMTZsZVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgICAgICBlbmNvZGluZyA9IChlbmNvZGluZyArICcnKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgcHJvcGVydHkgaXMgdXNlZCBieSBgQnVmZmVyLmlzQnVmZmVyYCBhbmQgYGlzLWJ1ZmZlcmAgKGluIFNhZmFyaSA1LTcpIHRvIGRldGVjdFxuLy8gQnVmZmVyIGluc3RhbmNlcy5cbkJ1ZmZlci5wcm90b3R5cGUuX2lzQnVmZmVyID0gdHJ1ZVxuXG5mdW5jdGlvbiBzd2FwIChiLCBuLCBtKSB7XG4gIHZhciBpID0gYltuXVxuICBiW25dID0gYlttXVxuICBiW21dID0gaVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnN3YXAxNiA9IGZ1bmN0aW9uIHN3YXAxNiAoKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgMiAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cycpXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gMikge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDEpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwMzIgPSBmdW5jdGlvbiBzd2FwMzIgKCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgaWYgKGxlbiAlIDQgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMnKVxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDQpIHtcbiAgICBzd2FwKHRoaXMsIGksIGkgKyAzKVxuICAgIHN3YXAodGhpcywgaSArIDEsIGkgKyAyKVxuICB9XG4gIHJldHVybiB0aGlzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc3dhcDY0ID0gZnVuY3Rpb24gc3dhcDY0ICgpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIGlmIChsZW4gJSA4ICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzJylcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSA4KSB7XG4gICAgc3dhcCh0aGlzLCBpLCBpICsgNylcbiAgICBzd2FwKHRoaXMsIGkgKyAxLCBpICsgNilcbiAgICBzd2FwKHRoaXMsIGkgKyAyLCBpICsgNSlcbiAgICBzd2FwKHRoaXMsIGkgKyAzLCBpICsgNClcbiAgfVxuICByZXR1cm4gdGhpc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcgKCkge1xuICB2YXIgbGVuZ3RoID0gdGhpcy5sZW5ndGggfCAwXG4gIGlmIChsZW5ndGggPT09IDApIHJldHVybiAnJ1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCAwLCBsZW5ndGgpXG4gIHJldHVybiBzbG93VG9TdHJpbmcuYXBwbHkodGhpcywgYXJndW1lbnRzKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uIGVxdWFscyAoYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlcicpXG4gIGlmICh0aGlzID09PSBiKSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gQnVmZmVyLmNvbXBhcmUodGhpcywgYikgPT09IDBcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbnNwZWN0ID0gZnVuY3Rpb24gaW5zcGVjdCAoKSB7XG4gIHZhciBzdHIgPSAnJ1xuICB2YXIgbWF4ID0gZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFU1xuICBpZiAodGhpcy5sZW5ndGggPiAwKSB7XG4gICAgc3RyID0gdGhpcy50b1N0cmluZygnaGV4JywgMCwgbWF4KS5tYXRjaCgvLnsyfS9nKS5qb2luKCcgJylcbiAgICBpZiAodGhpcy5sZW5ndGggPiBtYXgpIHN0ciArPSAnIC4uLiAnXG4gIH1cbiAgcmV0dXJuICc8QnVmZmVyICcgKyBzdHIgKyAnPidcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAodGFyZ2V0LCBzdGFydCwgZW5kLCB0aGlzU3RhcnQsIHRoaXNFbmQpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodGFyZ2V0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICB9XG5cbiAgaWYgKHN0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICBzdGFydCA9IDBcbiAgfVxuICBpZiAoZW5kID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmQgPSB0YXJnZXQgPyB0YXJnZXQubGVuZ3RoIDogMFxuICB9XG4gIGlmICh0aGlzU3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXNTdGFydCA9IDBcbiAgfVxuICBpZiAodGhpc0VuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpc0VuZCA9IHRoaXMubGVuZ3RoXG4gIH1cblxuICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRhcmdldC5sZW5ndGggfHwgdGhpc1N0YXJ0IDwgMCB8fCB0aGlzRW5kID4gdGhpcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb3V0IG9mIHJhbmdlIGluZGV4JylcbiAgfVxuXG4gIGlmICh0aGlzU3RhcnQgPj0gdGhpc0VuZCAmJiBzdGFydCA+PSBlbmQpIHtcbiAgICByZXR1cm4gMFxuICB9XG4gIGlmICh0aGlzU3RhcnQgPj0gdGhpc0VuZCkge1xuICAgIHJldHVybiAtMVxuICB9XG4gIGlmIChzdGFydCA+PSBlbmQpIHtcbiAgICByZXR1cm4gMVxuICB9XG5cbiAgc3RhcnQgPj4+PSAwXG4gIGVuZCA+Pj49IDBcbiAgdGhpc1N0YXJ0ID4+Pj0gMFxuICB0aGlzRW5kID4+Pj0gMFxuXG4gIGlmICh0aGlzID09PSB0YXJnZXQpIHJldHVybiAwXG5cbiAgdmFyIHggPSB0aGlzRW5kIC0gdGhpc1N0YXJ0XG4gIHZhciB5ID0gZW5kIC0gc3RhcnRcbiAgdmFyIGxlbiA9IE1hdGgubWluKHgsIHkpXG5cbiAgdmFyIHRoaXNDb3B5ID0gdGhpcy5zbGljZSh0aGlzU3RhcnQsIHRoaXNFbmQpXG4gIHZhciB0YXJnZXRDb3B5ID0gdGFyZ2V0LnNsaWNlKHN0YXJ0LCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgIGlmICh0aGlzQ29weVtpXSAhPT0gdGFyZ2V0Q29weVtpXSkge1xuICAgICAgeCA9IHRoaXNDb3B5W2ldXG4gICAgICB5ID0gdGFyZ2V0Q29weVtpXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbi8vIEZpbmRzIGVpdGhlciB0aGUgZmlyc3QgaW5kZXggb2YgYHZhbGAgaW4gYGJ1ZmZlcmAgYXQgb2Zmc2V0ID49IGBieXRlT2Zmc2V0YCxcbi8vIE9SIHRoZSBsYXN0IGluZGV4IG9mIGB2YWxgIGluIGBidWZmZXJgIGF0IG9mZnNldCA8PSBgYnl0ZU9mZnNldGAuXG4vL1xuLy8gQXJndW1lbnRzOlxuLy8gLSBidWZmZXIgLSBhIEJ1ZmZlciB0byBzZWFyY2hcbi8vIC0gdmFsIC0gYSBzdHJpbmcsIEJ1ZmZlciwgb3IgbnVtYmVyXG4vLyAtIGJ5dGVPZmZzZXQgLSBhbiBpbmRleCBpbnRvIGBidWZmZXJgOyB3aWxsIGJlIGNsYW1wZWQgdG8gYW4gaW50MzJcbi8vIC0gZW5jb2RpbmcgLSBhbiBvcHRpb25hbCBlbmNvZGluZywgcmVsZXZhbnQgaXMgdmFsIGlzIGEgc3RyaW5nXG4vLyAtIGRpciAtIHRydWUgZm9yIGluZGV4T2YsIGZhbHNlIGZvciBsYXN0SW5kZXhPZlxuZnVuY3Rpb24gYmlkaXJlY3Rpb25hbEluZGV4T2YgKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKSB7XG4gIC8vIEVtcHR5IGJ1ZmZlciBtZWFucyBubyBtYXRjaFxuICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIC0xXG5cbiAgLy8gTm9ybWFsaXplIGJ5dGVPZmZzZXRcbiAgaWYgKHR5cGVvZiBieXRlT2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gYnl0ZU9mZnNldFxuICAgIGJ5dGVPZmZzZXQgPSAwXG4gIH0gZWxzZSBpZiAoYnl0ZU9mZnNldCA+IDB4N2ZmZmZmZmYpIHtcbiAgICBieXRlT2Zmc2V0ID0gMHg3ZmZmZmZmZlxuICB9IGVsc2UgaWYgKGJ5dGVPZmZzZXQgPCAtMHg4MDAwMDAwMCkge1xuICAgIGJ5dGVPZmZzZXQgPSAtMHg4MDAwMDAwMFxuICB9XG4gIGJ5dGVPZmZzZXQgPSArYnl0ZU9mZnNldCAgLy8gQ29lcmNlIHRvIE51bWJlci5cbiAgaWYgKGlzTmFOKGJ5dGVPZmZzZXQpKSB7XG4gICAgLy8gYnl0ZU9mZnNldDogaXQgaXQncyB1bmRlZmluZWQsIG51bGwsIE5hTiwgXCJmb29cIiwgZXRjLCBzZWFyY2ggd2hvbGUgYnVmZmVyXG4gICAgYnl0ZU9mZnNldCA9IGRpciA/IDAgOiAoYnVmZmVyLmxlbmd0aCAtIDEpXG4gIH1cblxuICAvLyBOb3JtYWxpemUgYnl0ZU9mZnNldDogbmVnYXRpdmUgb2Zmc2V0cyBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlclxuICBpZiAoYnl0ZU9mZnNldCA8IDApIGJ5dGVPZmZzZXQgPSBidWZmZXIubGVuZ3RoICsgYnl0ZU9mZnNldFxuICBpZiAoYnl0ZU9mZnNldCA+PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgaWYgKGRpcikgcmV0dXJuIC0xXG4gICAgZWxzZSBieXRlT2Zmc2V0ID0gYnVmZmVyLmxlbmd0aCAtIDFcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgMCkge1xuICAgIGlmIChkaXIpIGJ5dGVPZmZzZXQgPSAwXG4gICAgZWxzZSByZXR1cm4gLTFcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSB2YWxcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsID0gQnVmZmVyLmZyb20odmFsLCBlbmNvZGluZylcbiAgfVxuXG4gIC8vIEZpbmFsbHksIHNlYXJjaCBlaXRoZXIgaW5kZXhPZiAoaWYgZGlyIGlzIHRydWUpIG9yIGxhc3RJbmRleE9mXG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsKSkge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogbG9va2luZyBmb3IgZW1wdHkgc3RyaW5nL2J1ZmZlciBhbHdheXMgZmFpbHNcbiAgICBpZiAodmFsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIC0xXG4gICAgfVxuICAgIHJldHVybiBhcnJheUluZGV4T2YoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICB2YWwgPSB2YWwgJiAweEZGIC8vIFNlYXJjaCBmb3IgYSBieXRlIHZhbHVlIFswLTI1NV1cbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgJiZcbiAgICAgICAgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChkaXIpIHtcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0KVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKGJ1ZmZlciwgWyB2YWwgXSwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcilcbiAgfVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlcicpXG59XG5cbmZ1bmN0aW9uIGFycmF5SW5kZXhPZiAoYXJyLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpIHtcbiAgdmFyIGluZGV4U2l6ZSA9IDFcbiAgdmFyIGFyckxlbmd0aCA9IGFyci5sZW5ndGhcbiAgdmFyIHZhbExlbmd0aCA9IHZhbC5sZW5ndGhcblxuICBpZiAoZW5jb2RpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgIGVuY29kaW5nID0gU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKGVuY29kaW5nID09PSAndWNzMicgfHwgZW5jb2RpbmcgPT09ICd1Y3MtMicgfHxcbiAgICAgICAgZW5jb2RpbmcgPT09ICd1dGYxNmxlJyB8fCBlbmNvZGluZyA9PT0gJ3V0Zi0xNmxlJykge1xuICAgICAgaWYgKGFyci5sZW5ndGggPCAyIHx8IHZhbC5sZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiAtMVxuICAgICAgfVxuICAgICAgaW5kZXhTaXplID0gMlxuICAgICAgYXJyTGVuZ3RoIC89IDJcbiAgICAgIHZhbExlbmd0aCAvPSAyXG4gICAgICBieXRlT2Zmc2V0IC89IDJcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZWFkIChidWYsIGkpIHtcbiAgICBpZiAoaW5kZXhTaXplID09PSAxKSB7XG4gICAgICByZXR1cm4gYnVmW2ldXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBidWYucmVhZFVJbnQxNkJFKGkgKiBpbmRleFNpemUpXG4gICAgfVxuICB9XG5cbiAgdmFyIGlcbiAgaWYgKGRpcikge1xuICAgIHZhciBmb3VuZEluZGV4ID0gLTFcbiAgICBmb3IgKGkgPSBieXRlT2Zmc2V0OyBpIDwgYXJyTGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChyZWFkKGFyciwgaSkgPT09IHJlYWQodmFsLCBmb3VuZEluZGV4ID09PSAtMSA/IDAgOiBpIC0gZm91bmRJbmRleCkpIHtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggPT09IC0xKSBmb3VuZEluZGV4ID0gaVxuICAgICAgICBpZiAoaSAtIGZvdW5kSW5kZXggKyAxID09PSB2YWxMZW5ndGgpIHJldHVybiBmb3VuZEluZGV4ICogaW5kZXhTaXplXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZm91bmRJbmRleCAhPT0gLTEpIGkgLT0gaSAtIGZvdW5kSW5kZXhcbiAgICAgICAgZm91bmRJbmRleCA9IC0xXG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChieXRlT2Zmc2V0ICsgdmFsTGVuZ3RoID4gYXJyTGVuZ3RoKSBieXRlT2Zmc2V0ID0gYXJyTGVuZ3RoIC0gdmFsTGVuZ3RoXG4gICAgZm9yIChpID0gYnl0ZU9mZnNldDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBmb3VuZCA9IHRydWVcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdmFsTGVuZ3RoOyBqKyspIHtcbiAgICAgICAgaWYgKHJlYWQoYXJyLCBpICsgaikgIT09IHJlYWQodmFsLCBqKSkge1xuICAgICAgICAgIGZvdW5kID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZm91bmQpIHJldHVybiBpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC0xXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5jbHVkZXMgPSBmdW5jdGlvbiBpbmNsdWRlcyAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykge1xuICByZXR1cm4gdGhpcy5pbmRleE9mKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpICE9PSAtMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbiBpbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7XG4gIHJldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCB0cnVlKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmxhc3RJbmRleE9mID0gZnVuY3Rpb24gbGFzdEluZGV4T2YgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGZhbHNlKVxufVxuXG5mdW5jdGlvbiBoZXhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIG9mZnNldCA9IE51bWJlcihvZmZzZXQpIHx8IDBcbiAgdmFyIHJlbWFpbmluZyA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSBOdW1iZXIobGVuZ3RoKVxuICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHtcbiAgICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICAgIH1cbiAgfVxuXG4gIC8vIG11c3QgYmUgYW4gZXZlbiBudW1iZXIgb2YgZGlnaXRzXG4gIHZhciBzdHJMZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChzdHJMZW4gJSAyICE9PSAwKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGhleCBzdHJpbmcnKVxuXG4gIGlmIChsZW5ndGggPiBzdHJMZW4gLyAyKSB7XG4gICAgbGVuZ3RoID0gc3RyTGVuIC8gMlxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICB2YXIgcGFyc2VkID0gcGFyc2VJbnQoc3RyaW5nLnN1YnN0cihpICogMiwgMiksIDE2KVxuICAgIGlmIChpc05hTihwYXJzZWQpKSByZXR1cm4gaVxuICAgIGJ1ZltvZmZzZXQgKyBpXSA9IHBhcnNlZFxuICB9XG4gIHJldHVybiBpXG59XG5cbmZ1bmN0aW9uIHV0ZjhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKHV0ZjhUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGFzY2lpV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcihhc2NpaVRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gbGF0aW4xV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYXNjaWlXcml0ZShidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGJhc2U2NFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYmFzZTY0VG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiB1Y3MyV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGYxNmxlVG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gd3JpdGUgKHN0cmluZywgb2Zmc2V0LCBsZW5ndGgsIGVuY29kaW5nKSB7XG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcpXG4gIGlmIChvZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIGVuY29kaW5nKVxuICB9IGVsc2UgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvZmZzZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZW5jb2RpbmcgPSBvZmZzZXRcbiAgICBsZW5ndGggPSB0aGlzLmxlbmd0aFxuICAgIG9mZnNldCA9IDBcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgb2Zmc2V0WywgbGVuZ3RoXVssIGVuY29kaW5nXSlcbiAgfSBlbHNlIGlmIChpc0Zpbml0ZShvZmZzZXQpKSB7XG4gICAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICAgIGlmIChpc0Zpbml0ZShsZW5ndGgpKSB7XG4gICAgICBsZW5ndGggPSBsZW5ndGggfCAwXG4gICAgICBpZiAoZW5jb2RpbmcgPT09IHVuZGVmaW5lZCkgZW5jb2RpbmcgPSAndXRmOCdcbiAgICB9IGVsc2Uge1xuICAgICAgZW5jb2RpbmcgPSBsZW5ndGhcbiAgICAgIGxlbmd0aCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgLy8gbGVnYWN5IHdyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldCwgbGVuZ3RoKSAtIHJlbW92ZSBpbiB2MC4xM1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCdcbiAgICApXG4gIH1cblxuICB2YXIgcmVtYWluaW5nID0gdGhpcy5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkIHx8IGxlbmd0aCA+IHJlbWFpbmluZykgbGVuZ3RoID0gcmVtYWluaW5nXG5cbiAgaWYgKChzdHJpbmcubGVuZ3RoID4gMCAmJiAobGVuZ3RoIDwgMCB8fCBvZmZzZXQgPCAwKSkgfHwgb2Zmc2V0ID4gdGhpcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMnKVxuICB9XG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcblxuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuICBmb3IgKDs7KSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGhleFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgICAgcmV0dXJuIGFzY2lpV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBsYXRpbjFXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICAvLyBXYXJuaW5nOiBtYXhMZW5ndGggbm90IHRha2VuIGludG8gYWNjb3VudCBpbiBiYXNlNjRXcml0ZVxuICAgICAgICByZXR1cm4gYmFzZTY0V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHVjczJXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiB0b0pTT04gKCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCdWZmZXInLFxuICAgIGRhdGE6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2FyciB8fCB0aGlzLCAwKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKHN0YXJ0ID09PSAwICYmIGVuZCA9PT0gYnVmLmxlbmd0aCkge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1Zi5zbGljZShzdGFydCwgZW5kKSlcbiAgfVxufVxuXG5mdW5jdGlvbiB1dGY4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG4gIHZhciByZXMgPSBbXVxuXG4gIHZhciBpID0gc3RhcnRcbiAgd2hpbGUgKGkgPCBlbmQpIHtcbiAgICB2YXIgZmlyc3RCeXRlID0gYnVmW2ldXG4gICAgdmFyIGNvZGVQb2ludCA9IG51bGxcbiAgICB2YXIgYnl0ZXNQZXJTZXF1ZW5jZSA9IChmaXJzdEJ5dGUgPiAweEVGKSA/IDRcbiAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4REYpID8gM1xuICAgICAgOiAoZmlyc3RCeXRlID4gMHhCRikgPyAyXG4gICAgICA6IDFcblxuICAgIGlmIChpICsgYnl0ZXNQZXJTZXF1ZW5jZSA8PSBlbmQpIHtcbiAgICAgIHZhciBzZWNvbmRCeXRlLCB0aGlyZEJ5dGUsIGZvdXJ0aEJ5dGUsIHRlbXBDb2RlUG9pbnRcblxuICAgICAgc3dpdGNoIChieXRlc1BlclNlcXVlbmNlKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMHg4MCkge1xuICAgICAgICAgICAgY29kZVBvaW50ID0gZmlyc3RCeXRlXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4MUYpIDw8IDB4NiB8IChzZWNvbmRCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3Rikge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIHRoaXJkQnl0ZSA9IGJ1ZltpICsgMl1cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAodGhpcmRCeXRlICYgMHhDMCkgPT09IDB4ODApIHtcbiAgICAgICAgICAgIHRlbXBDb2RlUG9pbnQgPSAoZmlyc3RCeXRlICYgMHhGKSA8PCAweEMgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4NiB8ICh0aGlyZEJ5dGUgJiAweDNGKVxuICAgICAgICAgICAgaWYgKHRlbXBDb2RlUG9pbnQgPiAweDdGRiAmJiAodGVtcENvZGVQb2ludCA8IDB4RDgwMCB8fCB0ZW1wQ29kZVBvaW50ID4gMHhERkZGKSkge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIHRoaXJkQnl0ZSA9IGJ1ZltpICsgMl1cbiAgICAgICAgICBmb3VydGhCeXRlID0gYnVmW2kgKyAzXVxuICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSAmIDB4QzApID09PSAweDgwICYmICh0aGlyZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAoZm91cnRoQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4RikgPDwgMHgxMiB8IChzZWNvbmRCeXRlICYgMHgzRikgPDwgMHhDIHwgKHRoaXJkQnl0ZSAmIDB4M0YpIDw8IDB4NiB8IChmb3VydGhCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHhGRkZGICYmIHRlbXBDb2RlUG9pbnQgPCAweDExMDAwMCkge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb2RlUG9pbnQgPT09IG51bGwpIHtcbiAgICAgIC8vIHdlIGRpZCBub3QgZ2VuZXJhdGUgYSB2YWxpZCBjb2RlUG9pbnQgc28gaW5zZXJ0IGFcbiAgICAgIC8vIHJlcGxhY2VtZW50IGNoYXIgKFUrRkZGRCkgYW5kIGFkdmFuY2Ugb25seSAxIGJ5dGVcbiAgICAgIGNvZGVQb2ludCA9IDB4RkZGRFxuICAgICAgYnl0ZXNQZXJTZXF1ZW5jZSA9IDFcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA+IDB4RkZGRikge1xuICAgICAgLy8gZW5jb2RlIHRvIHV0ZjE2IChzdXJyb2dhdGUgcGFpciBkYW5jZSlcbiAgICAgIGNvZGVQb2ludCAtPSAweDEwMDAwXG4gICAgICByZXMucHVzaChjb2RlUG9pbnQgPj4+IDEwICYgMHgzRkYgfCAweEQ4MDApXG4gICAgICBjb2RlUG9pbnQgPSAweERDMDAgfCBjb2RlUG9pbnQgJiAweDNGRlxuICAgIH1cblxuICAgIHJlcy5wdXNoKGNvZGVQb2ludClcbiAgICBpICs9IGJ5dGVzUGVyU2VxdWVuY2VcbiAgfVxuXG4gIHJldHVybiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkocmVzKVxufVxuXG4vLyBCYXNlZCBvbiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMjc0NzI3Mi82ODA3NDIsIHRoZSBicm93c2VyIHdpdGhcbi8vIHRoZSBsb3dlc3QgbGltaXQgaXMgQ2hyb21lLCB3aXRoIDB4MTAwMDAgYXJncy5cbi8vIFdlIGdvIDEgbWFnbml0dWRlIGxlc3MsIGZvciBzYWZldHlcbnZhciBNQVhfQVJHVU1FTlRTX0xFTkdUSCA9IDB4MTAwMFxuXG5mdW5jdGlvbiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkgKGNvZGVQb2ludHMpIHtcbiAgdmFyIGxlbiA9IGNvZGVQb2ludHMubGVuZ3RoXG4gIGlmIChsZW4gPD0gTUFYX0FSR1VNRU5UU19MRU5HVEgpIHtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsIGNvZGVQb2ludHMpIC8vIGF2b2lkIGV4dHJhIHNsaWNlKClcbiAgfVxuXG4gIC8vIERlY29kZSBpbiBjaHVua3MgdG8gYXZvaWQgXCJjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWRcIi5cbiAgdmFyIHJlcyA9ICcnXG4gIHZhciBpID0gMFxuICB3aGlsZSAoaSA8IGxlbikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFxuICAgICAgU3RyaW5nLFxuICAgICAgY29kZVBvaW50cy5zbGljZShpLCBpICs9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKVxuICAgIClcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGFzY2lpU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldICYgMHg3RilcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGxhdGluMVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGhleFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IGJ1Zi5sZW5ndGhcblxuICBpZiAoIXN0YXJ0IHx8IHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIGlmICghZW5kIHx8IGVuZCA8IDAgfHwgZW5kID4gbGVuKSBlbmQgPSBsZW5cblxuICB2YXIgb3V0ID0gJydcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICBvdXQgKz0gdG9IZXgoYnVmW2ldKVxuICB9XG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGJ5dGVzID0gYnVmLnNsaWNlKHN0YXJ0LCBlbmQpXG4gIHZhciByZXMgPSAnJ1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0gKyBieXRlc1tpICsgMV0gKiAyNTYpXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gc2xpY2UgKHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIHN0YXJ0ID0gfn5zdGFydFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbiA6IH5+ZW5kXG5cbiAgaWYgKHN0YXJ0IDwgMCkge1xuICAgIHN0YXJ0ICs9IGxlblxuICAgIGlmIChzdGFydCA8IDApIHN0YXJ0ID0gMFxuICB9IGVsc2UgaWYgKHN0YXJ0ID4gbGVuKSB7XG4gICAgc3RhcnQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kICs9IGxlblxuICAgIGlmIChlbmQgPCAwKSBlbmQgPSAwXG4gIH0gZWxzZSBpZiAoZW5kID4gbGVuKSB7XG4gICAgZW5kID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0XG5cbiAgdmFyIG5ld0J1ZlxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBuZXdCdWYgPSB0aGlzLnN1YmFycmF5KHN0YXJ0LCBlbmQpXG4gICAgbmV3QnVmLl9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgfSBlbHNlIHtcbiAgICB2YXIgc2xpY2VMZW4gPSBlbmQgLSBzdGFydFxuICAgIG5ld0J1ZiA9IG5ldyBCdWZmZXIoc2xpY2VMZW4sIHVuZGVmaW5lZClcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlTGVuOyArK2kpIHtcbiAgICAgIG5ld0J1ZltpXSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdCdWZcbn1cblxuLypcbiAqIE5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYnVmZmVyIGlzbid0IHRyeWluZyB0byB3cml0ZSBvdXQgb2YgYm91bmRzLlxuICovXG5mdW5jdGlvbiBjaGVja09mZnNldCAob2Zmc2V0LCBleHQsIGxlbmd0aCkge1xuICBpZiAoKG9mZnNldCAlIDEpICE9PSAwIHx8IG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdvZmZzZXQgaXMgbm90IHVpbnQnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gbGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRMRSA9IGZ1bmN0aW9uIHJlYWRVSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRCRSA9IGZ1bmN0aW9uIHJlYWRVSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG4gIH1cblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdXG4gIHZhciBtdWwgPSAxXG4gIHdoaWxlIChieXRlTGVuZ3RoID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDggPSBmdW5jdGlvbiByZWFkVUludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2QkUgPSBmdW5jdGlvbiByZWFkVUludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgOCkgfCB0aGlzW29mZnNldCArIDFdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICgodGhpc1tvZmZzZXRdKSB8XG4gICAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikpICtcbiAgICAgICh0aGlzW29mZnNldCArIDNdICogMHgxMDAwMDAwKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdICogMHgxMDAwMDAwKSArXG4gICAgKCh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgIHRoaXNbb2Zmc2V0ICsgM10pXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludExFID0gZnVuY3Rpb24gcmVhZEludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG4gIG11bCAqPSAweDgwXG5cbiAgaWYgKHZhbCA+PSBtdWwpIHZhbCAtPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aClcblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludEJFID0gZnVuY3Rpb24gcmVhZEludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoXG4gIHZhciBtdWwgPSAxXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0taV1cbiAgd2hpbGUgKGkgPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1pXSAqIG11bFxuICB9XG4gIG11bCAqPSAweDgwXG5cbiAgaWYgKHZhbCA+PSBtdWwpIHZhbCAtPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aClcblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDggPSBmdW5jdGlvbiByZWFkSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICBpZiAoISh0aGlzW29mZnNldF0gJiAweDgwKSkgcmV0dXJuICh0aGlzW29mZnNldF0pXG4gIHJldHVybiAoKDB4ZmYgLSB0aGlzW29mZnNldF0gKyAxKSAqIC0xKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFID0gZnVuY3Rpb24gcmVhZEludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIDFdIHwgKHRoaXNbb2Zmc2V0XSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyTEUgPSBmdW5jdGlvbiByZWFkSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdKSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgM10gPDwgMjQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyQkUgPSBmdW5jdGlvbiByZWFkSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDI0KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgM10pXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0TEUgPSBmdW5jdGlvbiByZWFkRmxvYXRMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0QkUgPSBmdW5jdGlvbiByZWFkRmxvYXRCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVMRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgNTIsIDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUJFID0gZnVuY3Rpb24gcmVhZERvdWJsZUJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgNTIsIDgpXG59XG5cbmZ1bmN0aW9uIGNoZWNrSW50IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJidWZmZXJcIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJylcbiAgaWYgKHZhbHVlID4gbWF4IHx8IHZhbHVlIDwgbWluKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJ2YWx1ZVwiIGFyZ3VtZW50IGlzIG91dCBvZiBib3VuZHMnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBtYXhCeXRlcyA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSAtIDFcbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBtYXhCeXRlcywgMClcbiAgfVxuXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBtYXhCeXRlcyA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSAtIDFcbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBtYXhCeXRlcywgMClcbiAgfVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50OCA9IGZ1bmN0aW9uIHdyaXRlVUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHhmZiwgMClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQxNiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCAyKTsgaSA8IGo7ICsraSkge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSAmICgweGZmIDw8ICg4ICogKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkpKSkgPj4+XG4gICAgICAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSAqIDhcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQzMiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgNCk7IGkgPCBqOyArK2kpIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgPj4+IChsaXR0bGVFbmRpYW4gPyBpIDogMyAtIGkpICogOCkgJiAweGZmXG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50TEUgPSBmdW5jdGlvbiB3cml0ZUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gMFxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICBpZiAodmFsdWUgPCAwICYmIHN1YiA9PT0gMCAmJiB0aGlzW29mZnNldCArIGkgLSAxXSAhPT0gMCkge1xuICAgICAgc3ViID0gMVxuICAgIH1cbiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50QkUgPSBmdW5jdGlvbiB3cml0ZUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IDBcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICBpZiAodmFsdWUgPCAwICYmIHN1YiA9PT0gMCAmJiB0aGlzW29mZnNldCArIGkgKyAxXSAhPT0gMCkge1xuICAgICAgc3ViID0gMVxuICAgIH1cbiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50OCA9IGZ1bmN0aW9uIHdyaXRlSW50OCAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAxLCAweDdmLCAtMHg4MClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmYgKyB2YWx1ZSArIDFcbiAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuZnVuY3Rpb24gY2hlY2tJRUVFNzU0IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHtcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxuICBpZiAob2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvYXQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgNCwgMy40MDI4MjM0NjYzODUyODg2ZSszOCwgLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgMjMsIDQpXG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdExFID0gZnVuY3Rpb24gd3JpdGVGbG9hdExFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuZnVuY3Rpb24gd3JpdGVEb3VibGUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgOCwgMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgsIC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCA1MiwgOClcbiAgcmV0dXJuIG9mZnNldCArIDhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG4vLyBjb3B5KHRhcmdldEJ1ZmZlciwgdGFyZ2V0U3RhcnQ9MCwgc291cmNlU3RhcnQ9MCwgc291cmNlRW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiBjb3B5ICh0YXJnZXQsIHRhcmdldFN0YXJ0LCBzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCAmJiBlbmQgIT09IDApIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXRTdGFydCA+PSB0YXJnZXQubGVuZ3RoKSB0YXJnZXRTdGFydCA9IHRhcmdldC5sZW5ndGhcbiAgaWYgKCF0YXJnZXRTdGFydCkgdGFyZ2V0U3RhcnQgPSAwXG4gIGlmIChlbmQgPiAwICYmIGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIC8vIENvcHkgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuIDBcbiAgaWYgKHRhcmdldC5sZW5ndGggPT09IDAgfHwgdGhpcy5sZW5ndGggPT09IDApIHJldHVybiAwXG5cbiAgLy8gRmF0YWwgZXJyb3IgY29uZGl0aW9uc1xuICBpZiAodGFyZ2V0U3RhcnQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3RhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICB9XG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgLy8gQXJlIHdlIG9vYj9cbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0IDwgZW5kIC0gc3RhcnQpIHtcbiAgICBlbmQgPSB0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgKyBzdGFydFxuICB9XG5cbiAgdmFyIGxlbiA9IGVuZCAtIHN0YXJ0XG4gIHZhciBpXG5cbiAgaWYgKHRoaXMgPT09IHRhcmdldCAmJiBzdGFydCA8IHRhcmdldFN0YXJ0ICYmIHRhcmdldFN0YXJ0IDwgZW5kKSB7XG4gICAgLy8gZGVzY2VuZGluZyBjb3B5IGZyb20gZW5kXG4gICAgZm9yIChpID0gbGVuIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0U3RhcnRdID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9IGVsc2UgaWYgKGxlbiA8IDEwMDAgfHwgIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gYXNjZW5kaW5nIGNvcHkgZnJvbSBzdGFydFxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgVWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoXG4gICAgICB0YXJnZXQsXG4gICAgICB0aGlzLnN1YmFycmF5KHN0YXJ0LCBzdGFydCArIGxlbiksXG4gICAgICB0YXJnZXRTdGFydFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBsZW5cbn1cblxuLy8gVXNhZ2U6XG4vLyAgICBidWZmZXIuZmlsbChudW1iZXJbLCBvZmZzZXRbLCBlbmRdXSlcbi8vICAgIGJ1ZmZlci5maWxsKGJ1ZmZlclssIG9mZnNldFssIGVuZF1dKVxuLy8gICAgYnVmZmVyLmZpbGwoc3RyaW5nWywgb2Zmc2V0WywgZW5kXV1bLCBlbmNvZGluZ10pXG5CdWZmZXIucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiBmaWxsICh2YWwsIHN0YXJ0LCBlbmQsIGVuY29kaW5nKSB7XG4gIC8vIEhhbmRsZSBzdHJpbmcgY2FzZXM6XG4gIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygc3RhcnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlbmNvZGluZyA9IHN0YXJ0XG4gICAgICBzdGFydCA9IDBcbiAgICAgIGVuZCA9IHRoaXMubGVuZ3RoXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZW5kID09PSAnc3RyaW5nJykge1xuICAgICAgZW5jb2RpbmcgPSBlbmRcbiAgICAgIGVuZCA9IHRoaXMubGVuZ3RoXG4gICAgfVxuICAgIGlmICh2YWwubGVuZ3RoID09PSAxKSB7XG4gICAgICB2YXIgY29kZSA9IHZhbC5jaGFyQ29kZUF0KDApXG4gICAgICBpZiAoY29kZSA8IDI1Nikge1xuICAgICAgICB2YWwgPSBjb2RlXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbmNvZGluZyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBlbmNvZGluZyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2VuY29kaW5nIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnc3RyaW5nJyAmJiAhQnVmZmVyLmlzRW5jb2RpbmcoZW5jb2RpbmcpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgdmFsID0gdmFsICYgMjU1XG4gIH1cblxuICAvLyBJbnZhbGlkIHJhbmdlcyBhcmUgbm90IHNldCB0byBhIGRlZmF1bHQsIHNvIGNhbiByYW5nZSBjaGVjayBlYXJseS5cbiAgaWYgKHN0YXJ0IDwgMCB8fCB0aGlzLmxlbmd0aCA8IHN0YXJ0IHx8IHRoaXMubGVuZ3RoIDwgZW5kKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ091dCBvZiByYW5nZSBpbmRleCcpXG4gIH1cblxuICBpZiAoZW5kIDw9IHN0YXJ0KSB7XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHN0YXJ0ID0gc3RhcnQgPj4+IDBcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyB0aGlzLmxlbmd0aCA6IGVuZCA+Pj4gMFxuXG4gIGlmICghdmFsKSB2YWwgPSAwXG5cbiAgdmFyIGlcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgICAgdGhpc1tpXSA9IHZhbFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgYnl0ZXMgPSBCdWZmZXIuaXNCdWZmZXIodmFsKVxuICAgICAgPyB2YWxcbiAgICAgIDogdXRmOFRvQnl0ZXMobmV3IEJ1ZmZlcih2YWwsIGVuY29kaW5nKS50b1N0cmluZygpKVxuICAgIHZhciBsZW4gPSBieXRlcy5sZW5ndGhcbiAgICBmb3IgKGkgPSAwOyBpIDwgZW5kIC0gc3RhcnQ7ICsraSkge1xuICAgICAgdGhpc1tpICsgc3RhcnRdID0gYnl0ZXNbaSAlIGxlbl1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpc1xufVxuXG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09XG5cbnZhciBJTlZBTElEX0JBU0U2NF9SRSA9IC9bXitcXC8wLTlBLVphLXotX10vZ1xuXG5mdW5jdGlvbiBiYXNlNjRjbGVhbiAoc3RyKSB7XG4gIC8vIE5vZGUgc3RyaXBzIG91dCBpbnZhbGlkIGNoYXJhY3RlcnMgbGlrZSBcXG4gYW5kIFxcdCBmcm9tIHRoZSBzdHJpbmcsIGJhc2U2NC1qcyBkb2VzIG5vdFxuICBzdHIgPSBzdHJpbmd0cmltKHN0cikucmVwbGFjZShJTlZBTElEX0JBU0U2NF9SRSwgJycpXG4gIC8vIE5vZGUgY29udmVydHMgc3RyaW5ncyB3aXRoIGxlbmd0aCA8IDIgdG8gJydcbiAgaWYgKHN0ci5sZW5ndGggPCAyKSByZXR1cm4gJydcbiAgLy8gTm9kZSBhbGxvd3MgZm9yIG5vbi1wYWRkZWQgYmFzZTY0IHN0cmluZ3MgKG1pc3NpbmcgdHJhaWxpbmcgPT09KSwgYmFzZTY0LWpzIGRvZXMgbm90XG4gIHdoaWxlIChzdHIubGVuZ3RoICUgNCAhPT0gMCkge1xuICAgIHN0ciA9IHN0ciArICc9J1xuICB9XG4gIHJldHVybiBzdHJcbn1cblxuZnVuY3Rpb24gc3RyaW5ndHJpbSAoc3RyKSB7XG4gIGlmIChzdHIudHJpbSkgcmV0dXJuIHN0ci50cmltKClcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJylcbn1cblxuZnVuY3Rpb24gdG9IZXggKG4pIHtcbiAgaWYgKG4gPCAxNikgcmV0dXJuICcwJyArIG4udG9TdHJpbmcoMTYpXG4gIHJldHVybiBuLnRvU3RyaW5nKDE2KVxufVxuXG5mdW5jdGlvbiB1dGY4VG9CeXRlcyAoc3RyaW5nLCB1bml0cykge1xuICB1bml0cyA9IHVuaXRzIHx8IEluZmluaXR5XG4gIHZhciBjb2RlUG9pbnRcbiAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGhcbiAgdmFyIGxlYWRTdXJyb2dhdGUgPSBudWxsXG4gIHZhciBieXRlcyA9IFtdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgIGNvZGVQb2ludCA9IHN0cmluZy5jaGFyQ29kZUF0KGkpXG5cbiAgICAvLyBpcyBzdXJyb2dhdGUgY29tcG9uZW50XG4gICAgaWYgKGNvZGVQb2ludCA+IDB4RDdGRiAmJiBjb2RlUG9pbnQgPCAweEUwMDApIHtcbiAgICAgIC8vIGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoIWxlYWRTdXJyb2dhdGUpIHtcbiAgICAgICAgLy8gbm8gbGVhZCB5ZXRcbiAgICAgICAgaWYgKGNvZGVQb2ludCA+IDB4REJGRikge1xuICAgICAgICAgIC8vIHVuZXhwZWN0ZWQgdHJhaWxcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2UgaWYgKGkgKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICAvLyB1bnBhaXJlZCBsZWFkXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHZhbGlkIGxlYWRcbiAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludFxuXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIDIgbGVhZHMgaW4gYSByb3dcbiAgICAgIGlmIChjb2RlUG9pbnQgPCAweERDMDApIHtcbiAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgLy8gdmFsaWQgc3Vycm9nYXRlIHBhaXJcbiAgICAgIGNvZGVQb2ludCA9IChsZWFkU3Vycm9nYXRlIC0gMHhEODAwIDw8IDEwIHwgY29kZVBvaW50IC0gMHhEQzAwKSArIDB4MTAwMDBcbiAgICB9IGVsc2UgaWYgKGxlYWRTdXJyb2dhdGUpIHtcbiAgICAgIC8vIHZhbGlkIGJtcCBjaGFyLCBidXQgbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgIH1cblxuICAgIGxlYWRTdXJyb2dhdGUgPSBudWxsXG5cbiAgICAvLyBlbmNvZGUgdXRmOFxuICAgIGlmIChjb2RlUG9pbnQgPCAweDgwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDEpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goY29kZVBvaW50KVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHg4MDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiB8IDB4QzAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDEwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDMpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgfCAweEUwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDExMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSA0KSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHgxMiB8IDB4RjAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29kZSBwb2ludCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzXG59XG5cbmZ1bmN0aW9uIGFzY2lpVG9CeXRlcyAoc3RyKSB7XG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkge1xuICAgIC8vIE5vZGUncyBjb2RlIHNlZW1zIHRvIGJlIGRvaW5nIHRoaXMgYW5kIG5vdCAmIDB4N0YuLlxuICAgIGJ5dGVBcnJheS5wdXNoKHN0ci5jaGFyQ29kZUF0KGkpICYgMHhGRilcbiAgfVxuICByZXR1cm4gYnl0ZUFycmF5XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVUb0J5dGVzIChzdHIsIHVuaXRzKSB7XG4gIHZhciBjLCBoaSwgbG9cbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKCh1bml0cyAtPSAyKSA8IDApIGJyZWFrXG5cbiAgICBjID0gc3RyLmNoYXJDb2RlQXQoaSlcbiAgICBoaSA9IGMgPj4gOFxuICAgIGxvID0gYyAlIDI1NlxuICAgIGJ5dGVBcnJheS5wdXNoKGxvKVxuICAgIGJ5dGVBcnJheS5wdXNoKGhpKVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiBiYXNlNjRUb0J5dGVzIChzdHIpIHtcbiAgcmV0dXJuIGJhc2U2NC50b0J5dGVBcnJheShiYXNlNjRjbGVhbihzdHIpKVxufVxuXG5mdW5jdGlvbiBibGl0QnVmZmVyIChzcmMsIGRzdCwgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgIGlmICgoaSArIG9mZnNldCA+PSBkc3QubGVuZ3RoKSB8fCAoaSA+PSBzcmMubGVuZ3RoKSkgYnJlYWtcbiAgICBkc3RbaSArIG9mZnNldF0gPSBzcmNbaV1cbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiBpc25hbiAodmFsKSB7XG4gIHJldHVybiB2YWwgIT09IHZhbCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNlbGYtY29tcGFyZVxufVxuIiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgVHJhbnNmb3JtID0gcmVxdWlyZSgnc3RyZWFtJykuVHJhbnNmb3JtXG52YXIgU3RyaW5nRGVjb2RlciA9IHJlcXVpcmUoJ3N0cmluZ19kZWNvZGVyJykuU3RyaW5nRGVjb2RlclxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxuXG5mdW5jdGlvbiBDaXBoZXJCYXNlIChoYXNoTW9kZSkge1xuICBUcmFuc2Zvcm0uY2FsbCh0aGlzKVxuICB0aGlzLmhhc2hNb2RlID0gdHlwZW9mIGhhc2hNb2RlID09PSAnc3RyaW5nJ1xuICBpZiAodGhpcy5oYXNoTW9kZSkge1xuICAgIHRoaXNbaGFzaE1vZGVdID0gdGhpcy5fZmluYWxPckRpZ2VzdFxuICB9IGVsc2Uge1xuICAgIHRoaXMuZmluYWwgPSB0aGlzLl9maW5hbE9yRGlnZXN0XG4gIH1cbiAgaWYgKHRoaXMuX2ZpbmFsKSB7XG4gICAgdGhpcy5fX2ZpbmFsID0gdGhpcy5fZmluYWxcbiAgICB0aGlzLl9maW5hbCA9IG51bGxcbiAgfVxuICB0aGlzLl9kZWNvZGVyID0gbnVsbFxuICB0aGlzLl9lbmNvZGluZyA9IG51bGxcbn1cbmluaGVyaXRzKENpcGhlckJhc2UsIFRyYW5zZm9ybSlcblxuQ2lwaGVyQmFzZS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEsIGlucHV0RW5jLCBvdXRwdXRFbmMpIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgIGRhdGEgPSBCdWZmZXIuZnJvbShkYXRhLCBpbnB1dEVuYylcbiAgfVxuXG4gIHZhciBvdXREYXRhID0gdGhpcy5fdXBkYXRlKGRhdGEpXG4gIGlmICh0aGlzLmhhc2hNb2RlKSByZXR1cm4gdGhpc1xuXG4gIGlmIChvdXRwdXRFbmMpIHtcbiAgICBvdXREYXRhID0gdGhpcy5fdG9TdHJpbmcob3V0RGF0YSwgb3V0cHV0RW5jKVxuICB9XG5cbiAgcmV0dXJuIG91dERhdGFcbn1cblxuQ2lwaGVyQmFzZS5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmcgPSBmdW5jdGlvbiAoKSB7fVxuQ2lwaGVyQmFzZS5wcm90b3R5cGUuZ2V0QXV0aFRhZyA9IGZ1bmN0aW9uICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCd0cnlpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlJylcbn1cblxuQ2lwaGVyQmFzZS5wcm90b3R5cGUuc2V0QXV0aFRhZyA9IGZ1bmN0aW9uICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCd0cnlpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlJylcbn1cblxuQ2lwaGVyQmFzZS5wcm90b3R5cGUuc2V0QUFEID0gZnVuY3Rpb24gKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ3RyeWluZyB0byBzZXQgYWFkIGluIHVuc3VwcG9ydGVkIHN0YXRlJylcbn1cblxuQ2lwaGVyQmFzZS5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uIChkYXRhLCBfLCBuZXh0KSB7XG4gIHZhciBlcnJcbiAgdHJ5IHtcbiAgICBpZiAodGhpcy5oYXNoTW9kZSkge1xuICAgICAgdGhpcy5fdXBkYXRlKGRhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHVzaCh0aGlzLl91cGRhdGUoZGF0YSkpXG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgZXJyID0gZVxuICB9IGZpbmFsbHkge1xuICAgIG5leHQoZXJyKVxuICB9XG59XG5DaXBoZXJCYXNlLnByb3RvdHlwZS5fZmx1c2ggPSBmdW5jdGlvbiAoZG9uZSkge1xuICB2YXIgZXJyXG4gIHRyeSB7XG4gICAgdGhpcy5wdXNoKHRoaXMuX19maW5hbCgpKVxuICB9IGNhdGNoIChlKSB7XG4gICAgZXJyID0gZVxuICB9XG5cbiAgZG9uZShlcnIpXG59XG5DaXBoZXJCYXNlLnByb3RvdHlwZS5fZmluYWxPckRpZ2VzdCA9IGZ1bmN0aW9uIChvdXRwdXRFbmMpIHtcbiAgdmFyIG91dERhdGEgPSB0aGlzLl9fZmluYWwoKSB8fCBCdWZmZXIuYWxsb2MoMClcbiAgaWYgKG91dHB1dEVuYykge1xuICAgIG91dERhdGEgPSB0aGlzLl90b1N0cmluZyhvdXREYXRhLCBvdXRwdXRFbmMsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG91dERhdGFcbn1cblxuQ2lwaGVyQmFzZS5wcm90b3R5cGUuX3RvU3RyaW5nID0gZnVuY3Rpb24gKHZhbHVlLCBlbmMsIGZpbikge1xuICBpZiAoIXRoaXMuX2RlY29kZXIpIHtcbiAgICB0aGlzLl9kZWNvZGVyID0gbmV3IFN0cmluZ0RlY29kZXIoZW5jKVxuICAgIHRoaXMuX2VuY29kaW5nID0gZW5jXG4gIH1cblxuICBpZiAodGhpcy5fZW5jb2RpbmcgIT09IGVuYykgdGhyb3cgbmV3IEVycm9yKCdjYW5cXCd0IHN3aXRjaCBlbmNvZGluZ3MnKVxuXG4gIHZhciBvdXQgPSB0aGlzLl9kZWNvZGVyLndyaXRlKHZhbHVlKVxuICBpZiAoZmluKSB7XG4gICAgb3V0ICs9IHRoaXMuX2RlY29kZXIuZW5kKClcbiAgfVxuXG4gIHJldHVybiBvdXRcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDaXBoZXJCYXNlXG4iLCJcclxuLyoqXHJcbiAqIEV4cG9zZSBgRW1pdHRlcmAuXHJcbiAqL1xyXG5cclxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSBFbWl0dGVyO1xyXG59XHJcblxyXG4vKipcclxuICogSW5pdGlhbGl6ZSBhIG5ldyBgRW1pdHRlcmAuXHJcbiAqXHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gRW1pdHRlcihvYmopIHtcclxuICBpZiAob2JqKSByZXR1cm4gbWl4aW4ob2JqKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBNaXhpbiB0aGUgZW1pdHRlciBwcm9wZXJ0aWVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXHJcbiAqIEByZXR1cm4ge09iamVjdH1cclxuICogQGFwaSBwcml2YXRlXHJcbiAqL1xyXG5cclxuZnVuY3Rpb24gbWl4aW4ob2JqKSB7XHJcbiAgZm9yICh2YXIga2V5IGluIEVtaXR0ZXIucHJvdG90eXBlKSB7XHJcbiAgICBvYmpba2V5XSA9IEVtaXR0ZXIucHJvdG90eXBlW2tleV07XHJcbiAgfVxyXG4gIHJldHVybiBvYmo7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBMaXN0ZW4gb24gdGhlIGdpdmVuIGBldmVudGAgd2l0aCBgZm5gLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cclxuICogQHJldHVybiB7RW1pdHRlcn1cclxuICogQGFwaSBwdWJsaWNcclxuICovXHJcblxyXG5FbWl0dGVyLnByb3RvdHlwZS5vbiA9XHJcbkVtaXR0ZXIucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbihldmVudCwgZm4pe1xyXG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcclxuICAodGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XSA9IHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF0gfHwgW10pXHJcbiAgICAucHVzaChmbik7XHJcbiAgcmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogQWRkcyBhbiBgZXZlbnRgIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBpbnZva2VkIGEgc2luZ2xlXHJcbiAqIHRpbWUgdGhlbiBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxyXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbkVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbihldmVudCwgZm4pe1xyXG4gIGZ1bmN0aW9uIG9uKCkge1xyXG4gICAgdGhpcy5vZmYoZXZlbnQsIG9uKTtcclxuICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgfVxyXG5cclxuICBvbi5mbiA9IGZuO1xyXG4gIHRoaXMub24oZXZlbnQsIG9uKTtcclxuICByZXR1cm4gdGhpcztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGdpdmVuIGNhbGxiYWNrIGZvciBgZXZlbnRgIG9yIGFsbFxyXG4gKiByZWdpc3RlcmVkIGNhbGxiYWNrcy5cclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXHJcbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUub2ZmID1cclxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxyXG5FbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPVxyXG5FbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcclxuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XHJcblxyXG4gIC8vIGFsbFxyXG4gIGlmICgwID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgIHRoaXMuX2NhbGxiYWNrcyA9IHt9O1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyBzcGVjaWZpYyBldmVudFxyXG4gIHZhciBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xyXG4gIGlmICghY2FsbGJhY2tzKSByZXR1cm4gdGhpcztcclxuXHJcbiAgLy8gcmVtb3ZlIGFsbCBoYW5kbGVyc1xyXG4gIGlmICgxID09IGFyZ3VtZW50cy5sZW5ndGgpIHtcclxuICAgIGRlbGV0ZSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvLyByZW1vdmUgc3BlY2lmaWMgaGFuZGxlclxyXG4gIHZhciBjYjtcclxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xyXG4gICAgY2IgPSBjYWxsYmFja3NbaV07XHJcbiAgICBpZiAoY2IgPT09IGZuIHx8IGNiLmZuID09PSBmbikge1xyXG4gICAgICBjYWxsYmFja3Muc3BsaWNlKGksIDEpO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogRW1pdCBgZXZlbnRgIHdpdGggdGhlIGdpdmVuIGFyZ3MuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcGFyYW0ge01peGVkfSAuLi5cclxuICogQHJldHVybiB7RW1pdHRlcn1cclxuICovXHJcblxyXG5FbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24oZXZlbnQpe1xyXG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcclxuICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKVxyXG4gICAgLCBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdO1xyXG5cclxuICBpZiAoY2FsbGJhY2tzKSB7XHJcbiAgICBjYWxsYmFja3MgPSBjYWxsYmFja3Muc2xpY2UoMCk7XHJcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gY2FsbGJhY2tzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgIGNhbGxiYWNrc1tpXS5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiB0aGlzO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJldHVybiBhcnJheSBvZiBjYWxsYmFja3MgZm9yIGBldmVudGAuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcmV0dXJuIHtBcnJheX1cclxuICogQGFwaSBwdWJsaWNcclxuICovXHJcblxyXG5FbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbihldmVudCl7XHJcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xyXG4gIHJldHVybiB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdIHx8IFtdO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIHRoaXMgZW1pdHRlciBoYXMgYGV2ZW50YCBoYW5kbGVycy5cclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XHJcbiAqIEByZXR1cm4ge0Jvb2xlYW59XHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUuaGFzTGlzdGVuZXJzID0gZnVuY3Rpb24oZXZlbnQpe1xyXG4gIHJldHVybiAhISB0aGlzLmxpc3RlbmVycyhldmVudCkubGVuZ3RoO1xyXG59O1xyXG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuLy8gTk9URTogVGhlc2UgdHlwZSBjaGVja2luZyBmdW5jdGlvbnMgaW50ZW50aW9uYWxseSBkb24ndCB1c2UgYGluc3RhbmNlb2ZgXG4vLyBiZWNhdXNlIGl0IGlzIGZyYWdpbGUgYW5kIGNhbiBiZSBlYXNpbHkgZmFrZWQgd2l0aCBgT2JqZWN0LmNyZWF0ZSgpYC5cblxuZnVuY3Rpb24gaXNBcnJheShhcmcpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShhcmcpO1xuICB9XG4gIHJldHVybiBvYmplY3RUb1N0cmluZyhhcmcpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuZXhwb3J0cy5pc0FycmF5ID0gaXNBcnJheTtcblxuZnVuY3Rpb24gaXNCb29sZWFuKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ2Jvb2xlYW4nO1xufVxuZXhwb3J0cy5pc0Jvb2xlYW4gPSBpc0Jvb2xlYW47XG5cbmZ1bmN0aW9uIGlzTnVsbChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gbnVsbDtcbn1cbmV4cG9ydHMuaXNOdWxsID0gaXNOdWxsO1xuXG5mdW5jdGlvbiBpc051bGxPclVuZGVmaW5lZChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PSBudWxsO1xufVxuZXhwb3J0cy5pc051bGxPclVuZGVmaW5lZCA9IGlzTnVsbE9yVW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBpc051bWJlcihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdudW1iZXInO1xufVxuZXhwb3J0cy5pc051bWJlciA9IGlzTnVtYmVyO1xuXG5mdW5jdGlvbiBpc1N0cmluZyhhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnO1xufVxuZXhwb3J0cy5pc1N0cmluZyA9IGlzU3RyaW5nO1xuXG5mdW5jdGlvbiBpc1N5bWJvbChhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdzeW1ib2wnO1xufVxuZXhwb3J0cy5pc1N5bWJvbCA9IGlzU3ltYm9sO1xuXG5mdW5jdGlvbiBpc1VuZGVmaW5lZChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gdm9pZCAwO1xufVxuZXhwb3J0cy5pc1VuZGVmaW5lZCA9IGlzVW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBpc1JlZ0V4cChyZSkge1xuICByZXR1cm4gb2JqZWN0VG9TdHJpbmcocmUpID09PSAnW29iamVjdCBSZWdFeHBdJztcbn1cbmV4cG9ydHMuaXNSZWdFeHAgPSBpc1JlZ0V4cDtcblxuZnVuY3Rpb24gaXNPYmplY3QoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiBhcmcgIT09IG51bGw7XG59XG5leHBvcnRzLmlzT2JqZWN0ID0gaXNPYmplY3Q7XG5cbmZ1bmN0aW9uIGlzRGF0ZShkKSB7XG4gIHJldHVybiBvYmplY3RUb1N0cmluZyhkKSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xufVxuZXhwb3J0cy5pc0RhdGUgPSBpc0RhdGU7XG5cbmZ1bmN0aW9uIGlzRXJyb3IoZSkge1xuICByZXR1cm4gKG9iamVjdFRvU3RyaW5nKGUpID09PSAnW29iamVjdCBFcnJvcl0nIHx8IGUgaW5zdGFuY2VvZiBFcnJvcik7XG59XG5leHBvcnRzLmlzRXJyb3IgPSBpc0Vycm9yO1xuXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJztcbn1cbmV4cG9ydHMuaXNGdW5jdGlvbiA9IGlzRnVuY3Rpb247XG5cbmZ1bmN0aW9uIGlzUHJpbWl0aXZlKGFyZykge1xuICByZXR1cm4gYXJnID09PSBudWxsIHx8XG4gICAgICAgICB0eXBlb2YgYXJnID09PSAnYm9vbGVhbicgfHxcbiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdudW1iZXInIHx8XG4gICAgICAgICB0eXBlb2YgYXJnID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ3N5bWJvbCcgfHwgIC8vIEVTNiBzeW1ib2xcbiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICd1bmRlZmluZWQnO1xufVxuZXhwb3J0cy5pc1ByaW1pdGl2ZSA9IGlzUHJpbWl0aXZlO1xuXG5leHBvcnRzLmlzQnVmZmVyID0gQnVmZmVyLmlzQnVmZmVyO1xuXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyhvKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobyk7XG59XG4iLCJ2YXIgZWxsaXB0aWMgPSByZXF1aXJlKCdlbGxpcHRpYycpXG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlRUNESCAoY3VydmUpIHtcbiAgcmV0dXJuIG5ldyBFQ0RIKGN1cnZlKVxufVxuXG52YXIgYWxpYXNlcyA9IHtcbiAgc2VjcDI1NmsxOiB7XG4gICAgbmFtZTogJ3NlY3AyNTZrMScsXG4gICAgYnl0ZUxlbmd0aDogMzJcbiAgfSxcbiAgc2VjcDIyNHIxOiB7XG4gICAgbmFtZTogJ3AyMjQnLFxuICAgIGJ5dGVMZW5ndGg6IDI4XG4gIH0sXG4gIHByaW1lMjU2djE6IHtcbiAgICBuYW1lOiAncDI1NicsXG4gICAgYnl0ZUxlbmd0aDogMzJcbiAgfSxcbiAgcHJpbWUxOTJ2MToge1xuICAgIG5hbWU6ICdwMTkyJyxcbiAgICBieXRlTGVuZ3RoOiAyNFxuICB9LFxuICBlZDI1NTE5OiB7XG4gICAgbmFtZTogJ2VkMjU1MTknLFxuICAgIGJ5dGVMZW5ndGg6IDMyXG4gIH0sXG4gIHNlY3AzODRyMToge1xuICAgIG5hbWU6ICdwMzg0JyxcbiAgICBieXRlTGVuZ3RoOiA0OFxuICB9LFxuICBzZWNwNTIxcjE6IHtcbiAgICBuYW1lOiAncDUyMScsXG4gICAgYnl0ZUxlbmd0aDogNjZcbiAgfVxufVxuXG5hbGlhc2VzLnAyMjQgPSBhbGlhc2VzLnNlY3AyMjRyMVxuYWxpYXNlcy5wMjU2ID0gYWxpYXNlcy5zZWNwMjU2cjEgPSBhbGlhc2VzLnByaW1lMjU2djFcbmFsaWFzZXMucDE5MiA9IGFsaWFzZXMuc2VjcDE5MnIxID0gYWxpYXNlcy5wcmltZTE5MnYxXG5hbGlhc2VzLnAzODQgPSBhbGlhc2VzLnNlY3AzODRyMVxuYWxpYXNlcy5wNTIxID0gYWxpYXNlcy5zZWNwNTIxcjFcblxuZnVuY3Rpb24gRUNESCAoY3VydmUpIHtcbiAgdGhpcy5jdXJ2ZVR5cGUgPSBhbGlhc2VzW2N1cnZlXVxuICBpZiAoIXRoaXMuY3VydmVUeXBlKSB7XG4gICAgdGhpcy5jdXJ2ZVR5cGUgPSB7XG4gICAgICBuYW1lOiBjdXJ2ZVxuICAgIH1cbiAgfVxuICB0aGlzLmN1cnZlID0gbmV3IGVsbGlwdGljLmVjKHRoaXMuY3VydmVUeXBlLm5hbWUpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbmV3LWNhcFxuICB0aGlzLmtleXMgPSB2b2lkIDBcbn1cblxuRUNESC5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzID0gZnVuY3Rpb24gKGVuYywgZm9ybWF0KSB7XG4gIHRoaXMua2V5cyA9IHRoaXMuY3VydmUuZ2VuS2V5UGFpcigpXG4gIHJldHVybiB0aGlzLmdldFB1YmxpY0tleShlbmMsIGZvcm1hdClcbn1cblxuRUNESC5wcm90b3R5cGUuY29tcHV0ZVNlY3JldCA9IGZ1bmN0aW9uIChvdGhlciwgaW5lbmMsIGVuYykge1xuICBpbmVuYyA9IGluZW5jIHx8ICd1dGY4J1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihvdGhlcikpIHtcbiAgICBvdGhlciA9IG5ldyBCdWZmZXIob3RoZXIsIGluZW5jKVxuICB9XG4gIHZhciBvdGhlclB1YiA9IHRoaXMuY3VydmUua2V5RnJvbVB1YmxpYyhvdGhlcikuZ2V0UHVibGljKClcbiAgdmFyIG91dCA9IG90aGVyUHViLm11bCh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpKS5nZXRYKClcbiAgcmV0dXJuIGZvcm1hdFJldHVyblZhbHVlKG91dCwgZW5jLCB0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKVxufVxuXG5FQ0RILnByb3RvdHlwZS5nZXRQdWJsaWNLZXkgPSBmdW5jdGlvbiAoZW5jLCBmb3JtYXQpIHtcbiAgdmFyIGtleSA9IHRoaXMua2V5cy5nZXRQdWJsaWMoZm9ybWF0ID09PSAnY29tcHJlc3NlZCcsIHRydWUpXG4gIGlmIChmb3JtYXQgPT09ICdoeWJyaWQnKSB7XG4gICAgaWYgKGtleVtrZXkubGVuZ3RoIC0gMV0gJSAyKSB7XG4gICAgICBrZXlbMF0gPSA3XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleVswXSA9IDZcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZvcm1hdFJldHVyblZhbHVlKGtleSwgZW5jKVxufVxuXG5FQ0RILnByb3RvdHlwZS5nZXRQcml2YXRlS2V5ID0gZnVuY3Rpb24gKGVuYykge1xuICByZXR1cm4gZm9ybWF0UmV0dXJuVmFsdWUodGhpcy5rZXlzLmdldFByaXZhdGUoKSwgZW5jKVxufVxuXG5FQ0RILnByb3RvdHlwZS5zZXRQdWJsaWNLZXkgPSBmdW5jdGlvbiAocHViLCBlbmMpIHtcbiAgZW5jID0gZW5jIHx8ICd1dGY4J1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwdWIpKSB7XG4gICAgcHViID0gbmV3IEJ1ZmZlcihwdWIsIGVuYylcbiAgfVxuICB0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyhwdWIpXG4gIHJldHVybiB0aGlzXG59XG5cbkVDREgucHJvdG90eXBlLnNldFByaXZhdGVLZXkgPSBmdW5jdGlvbiAocHJpdiwgZW5jKSB7XG4gIGVuYyA9IGVuYyB8fCAndXRmOCdcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocHJpdikpIHtcbiAgICBwcml2ID0gbmV3IEJ1ZmZlcihwcml2LCBlbmMpXG4gIH1cblxuICB2YXIgX3ByaXYgPSBuZXcgQk4ocHJpdilcbiAgX3ByaXYgPSBfcHJpdi50b1N0cmluZygxNilcbiAgdGhpcy5rZXlzID0gdGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKClcbiAgdGhpcy5rZXlzLl9pbXBvcnRQcml2YXRlKF9wcml2KVxuICByZXR1cm4gdGhpc1xufVxuXG5mdW5jdGlvbiBmb3JtYXRSZXR1cm5WYWx1ZSAoYm4sIGVuYywgbGVuKSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShibikpIHtcbiAgICBibiA9IGJuLnRvQXJyYXkoKVxuICB9XG4gIHZhciBidWYgPSBuZXcgQnVmZmVyKGJuKVxuICBpZiAobGVuICYmIGJ1Zi5sZW5ndGggPCBsZW4pIHtcbiAgICB2YXIgemVyb3MgPSBuZXcgQnVmZmVyKGxlbiAtIGJ1Zi5sZW5ndGgpXG4gICAgemVyb3MuZmlsbCgwKVxuICAgIGJ1ZiA9IEJ1ZmZlci5jb25jYXQoW3plcm9zLCBidWZdKVxuICB9XG4gIGlmICghZW5jKSB7XG4gICAgcmV0dXJuIGJ1ZlxuICB9IGVsc2Uge1xuICAgIHJldHVybiBidWYudG9TdHJpbmcoZW5jKVxuICB9XG59XG4iLCIndXNlIHN0cmljdCdcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBNRDUgPSByZXF1aXJlKCdtZDUuanMnKVxudmFyIFJJUEVNRDE2MCA9IHJlcXVpcmUoJ3JpcGVtZDE2MCcpXG52YXIgc2hhID0gcmVxdWlyZSgnc2hhLmpzJylcbnZhciBCYXNlID0gcmVxdWlyZSgnY2lwaGVyLWJhc2UnKVxuXG5mdW5jdGlvbiBIYXNoIChoYXNoKSB7XG4gIEJhc2UuY2FsbCh0aGlzLCAnZGlnZXN0JylcblxuICB0aGlzLl9oYXNoID0gaGFzaFxufVxuXG5pbmhlcml0cyhIYXNoLCBCYXNlKVxuXG5IYXNoLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgdGhpcy5faGFzaC51cGRhdGUoZGF0YSlcbn1cblxuSGFzaC5wcm90b3R5cGUuX2ZpbmFsID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5faGFzaC5kaWdlc3QoKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUhhc2ggKGFsZykge1xuICBhbGcgPSBhbGcudG9Mb3dlckNhc2UoKVxuICBpZiAoYWxnID09PSAnbWQ1JykgcmV0dXJuIG5ldyBNRDUoKVxuICBpZiAoYWxnID09PSAncm1kMTYwJyB8fCBhbGcgPT09ICdyaXBlbWQxNjAnKSByZXR1cm4gbmV3IFJJUEVNRDE2MCgpXG5cbiAgcmV0dXJuIG5ldyBIYXNoKHNoYShhbGcpKVxufVxuIiwidmFyIE1ENSA9IHJlcXVpcmUoJ21kNS5qcycpXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJ1ZmZlcikge1xuICByZXR1cm4gbmV3IE1ENSgpLnVwZGF0ZShidWZmZXIpLmRpZ2VzdCgpXG59XG4iLCIndXNlIHN0cmljdCdcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBMZWdhY3kgPSByZXF1aXJlKCcuL2xlZ2FjeScpXG52YXIgQmFzZSA9IHJlcXVpcmUoJ2NpcGhlci1iYXNlJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxudmFyIG1kNSA9IHJlcXVpcmUoJ2NyZWF0ZS1oYXNoL21kNScpXG52YXIgUklQRU1EMTYwID0gcmVxdWlyZSgncmlwZW1kMTYwJylcblxudmFyIHNoYSA9IHJlcXVpcmUoJ3NoYS5qcycpXG5cbnZhciBaRVJPUyA9IEJ1ZmZlci5hbGxvYygxMjgpXG5cbmZ1bmN0aW9uIEhtYWMgKGFsZywga2V5KSB7XG4gIEJhc2UuY2FsbCh0aGlzLCAnZGlnZXN0JylcbiAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKSB7XG4gICAga2V5ID0gQnVmZmVyLmZyb20oa2V5KVxuICB9XG5cbiAgdmFyIGJsb2Nrc2l6ZSA9IChhbGcgPT09ICdzaGE1MTInIHx8IGFsZyA9PT0gJ3NoYTM4NCcpID8gMTI4IDogNjRcblxuICB0aGlzLl9hbGcgPSBhbGdcbiAgdGhpcy5fa2V5ID0ga2V5XG4gIGlmIChrZXkubGVuZ3RoID4gYmxvY2tzaXplKSB7XG4gICAgdmFyIGhhc2ggPSBhbGcgPT09ICdybWQxNjAnID8gbmV3IFJJUEVNRDE2MCgpIDogc2hhKGFsZylcbiAgICBrZXkgPSBoYXNoLnVwZGF0ZShrZXkpLmRpZ2VzdCgpXG4gIH0gZWxzZSBpZiAoa2V5Lmxlbmd0aCA8IGJsb2Nrc2l6ZSkge1xuICAgIGtleSA9IEJ1ZmZlci5jb25jYXQoW2tleSwgWkVST1NdLCBibG9ja3NpemUpXG4gIH1cblxuICB2YXIgaXBhZCA9IHRoaXMuX2lwYWQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoYmxvY2tzaXplKVxuICB2YXIgb3BhZCA9IHRoaXMuX29wYWQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoYmxvY2tzaXplKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYmxvY2tzaXplOyBpKyspIHtcbiAgICBpcGFkW2ldID0ga2V5W2ldIF4gMHgzNlxuICAgIG9wYWRbaV0gPSBrZXlbaV0gXiAweDVDXG4gIH1cbiAgdGhpcy5faGFzaCA9IGFsZyA9PT0gJ3JtZDE2MCcgPyBuZXcgUklQRU1EMTYwKCkgOiBzaGEoYWxnKVxuICB0aGlzLl9oYXNoLnVwZGF0ZShpcGFkKVxufVxuXG5pbmhlcml0cyhIbWFjLCBCYXNlKVxuXG5IbWFjLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgdGhpcy5faGFzaC51cGRhdGUoZGF0YSlcbn1cblxuSG1hYy5wcm90b3R5cGUuX2ZpbmFsID0gZnVuY3Rpb24gKCkge1xuICB2YXIgaCA9IHRoaXMuX2hhc2guZGlnZXN0KClcbiAgdmFyIGhhc2ggPSB0aGlzLl9hbGcgPT09ICdybWQxNjAnID8gbmV3IFJJUEVNRDE2MCgpIDogc2hhKHRoaXMuX2FsZylcbiAgcmV0dXJuIGhhc2gudXBkYXRlKHRoaXMuX29wYWQpLnVwZGF0ZShoKS5kaWdlc3QoKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUhtYWMgKGFsZywga2V5KSB7XG4gIGFsZyA9IGFsZy50b0xvd2VyQ2FzZSgpXG4gIGlmIChhbGcgPT09ICdybWQxNjAnIHx8IGFsZyA9PT0gJ3JpcGVtZDE2MCcpIHtcbiAgICByZXR1cm4gbmV3IEhtYWMoJ3JtZDE2MCcsIGtleSlcbiAgfVxuICBpZiAoYWxnID09PSAnbWQ1Jykge1xuICAgIHJldHVybiBuZXcgTGVnYWN5KG1kNSwga2V5KVxuICB9XG4gIHJldHVybiBuZXcgSG1hYyhhbGcsIGtleSlcbn1cbiIsIid1c2Ugc3RyaWN0J1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBCYXNlID0gcmVxdWlyZSgnY2lwaGVyLWJhc2UnKVxuXG52YXIgWkVST1MgPSBCdWZmZXIuYWxsb2MoMTI4KVxudmFyIGJsb2Nrc2l6ZSA9IDY0XG5cbmZ1bmN0aW9uIEhtYWMgKGFsZywga2V5KSB7XG4gIEJhc2UuY2FsbCh0aGlzLCAnZGlnZXN0JylcbiAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKSB7XG4gICAga2V5ID0gQnVmZmVyLmZyb20oa2V5KVxuICB9XG5cbiAgdGhpcy5fYWxnID0gYWxnXG4gIHRoaXMuX2tleSA9IGtleVxuXG4gIGlmIChrZXkubGVuZ3RoID4gYmxvY2tzaXplKSB7XG4gICAga2V5ID0gYWxnKGtleSlcbiAgfSBlbHNlIGlmIChrZXkubGVuZ3RoIDwgYmxvY2tzaXplKSB7XG4gICAga2V5ID0gQnVmZmVyLmNvbmNhdChba2V5LCBaRVJPU10sIGJsb2Nrc2l6ZSlcbiAgfVxuXG4gIHZhciBpcGFkID0gdGhpcy5faXBhZCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShibG9ja3NpemUpXG4gIHZhciBvcGFkID0gdGhpcy5fb3BhZCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShibG9ja3NpemUpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBibG9ja3NpemU7IGkrKykge1xuICAgIGlwYWRbaV0gPSBrZXlbaV0gXiAweDM2XG4gICAgb3BhZFtpXSA9IGtleVtpXSBeIDB4NUNcbiAgfVxuXG4gIHRoaXMuX2hhc2ggPSBbaXBhZF1cbn1cblxuaW5oZXJpdHMoSG1hYywgQmFzZSlcblxuSG1hYy5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHRoaXMuX2hhc2gucHVzaChkYXRhKVxufVxuXG5IbWFjLnByb3RvdHlwZS5fZmluYWwgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBoID0gdGhpcy5fYWxnKEJ1ZmZlci5jb25jYXQodGhpcy5faGFzaCkpXG4gIHJldHVybiB0aGlzLl9hbGcoQnVmZmVyLmNvbmNhdChbdGhpcy5fb3BhZCwgaF0pKVxufVxubW9kdWxlLmV4cG9ydHMgPSBIbWFjXG4iLCIndXNlIHN0cmljdCdcblxuZXhwb3J0cy5yYW5kb21CeXRlcyA9IGV4cG9ydHMucm5nID0gZXhwb3J0cy5wc2V1ZG9SYW5kb21CeXRlcyA9IGV4cG9ydHMucHJuZyA9IHJlcXVpcmUoJ3JhbmRvbWJ5dGVzJylcbmV4cG9ydHMuY3JlYXRlSGFzaCA9IGV4cG9ydHMuSGFzaCA9IHJlcXVpcmUoJ2NyZWF0ZS1oYXNoJylcbmV4cG9ydHMuY3JlYXRlSG1hYyA9IGV4cG9ydHMuSG1hYyA9IHJlcXVpcmUoJ2NyZWF0ZS1obWFjJylcblxudmFyIGFsZ29zID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1zaWduL2FsZ29zJylcbnZhciBhbGdvS2V5cyA9IE9iamVjdC5rZXlzKGFsZ29zKVxudmFyIGhhc2hlcyA9IFsnc2hhMScsICdzaGEyMjQnLCAnc2hhMjU2JywgJ3NoYTM4NCcsICdzaGE1MTInLCAnbWQ1JywgJ3JtZDE2MCddLmNvbmNhdChhbGdvS2V5cylcbmV4cG9ydHMuZ2V0SGFzaGVzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gaGFzaGVzXG59XG5cbnZhciBwID0gcmVxdWlyZSgncGJrZGYyJylcbmV4cG9ydHMucGJrZGYyID0gcC5wYmtkZjJcbmV4cG9ydHMucGJrZGYyU3luYyA9IHAucGJrZGYyU3luY1xuXG52YXIgYWVzID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1jaXBoZXInKVxuXG5leHBvcnRzLkNpcGhlciA9IGFlcy5DaXBoZXJcbmV4cG9ydHMuY3JlYXRlQ2lwaGVyID0gYWVzLmNyZWF0ZUNpcGhlclxuZXhwb3J0cy5DaXBoZXJpdiA9IGFlcy5DaXBoZXJpdlxuZXhwb3J0cy5jcmVhdGVDaXBoZXJpdiA9IGFlcy5jcmVhdGVDaXBoZXJpdlxuZXhwb3J0cy5EZWNpcGhlciA9IGFlcy5EZWNpcGhlclxuZXhwb3J0cy5jcmVhdGVEZWNpcGhlciA9IGFlcy5jcmVhdGVEZWNpcGhlclxuZXhwb3J0cy5EZWNpcGhlcml2ID0gYWVzLkRlY2lwaGVyaXZcbmV4cG9ydHMuY3JlYXRlRGVjaXBoZXJpdiA9IGFlcy5jcmVhdGVEZWNpcGhlcml2XG5leHBvcnRzLmdldENpcGhlcnMgPSBhZXMuZ2V0Q2lwaGVyc1xuZXhwb3J0cy5saXN0Q2lwaGVycyA9IGFlcy5saXN0Q2lwaGVyc1xuXG52YXIgZGggPSByZXF1aXJlKCdkaWZmaWUtaGVsbG1hbicpXG5cbmV4cG9ydHMuRGlmZmllSGVsbG1hbkdyb3VwID0gZGguRGlmZmllSGVsbG1hbkdyb3VwXG5leHBvcnRzLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cCA9IGRoLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cFxuZXhwb3J0cy5nZXREaWZmaWVIZWxsbWFuID0gZGguZ2V0RGlmZmllSGVsbG1hblxuZXhwb3J0cy5jcmVhdGVEaWZmaWVIZWxsbWFuID0gZGguY3JlYXRlRGlmZmllSGVsbG1hblxuZXhwb3J0cy5EaWZmaWVIZWxsbWFuID0gZGguRGlmZmllSGVsbG1hblxuXG52YXIgc2lnbiA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktc2lnbicpXG5cbmV4cG9ydHMuY3JlYXRlU2lnbiA9IHNpZ24uY3JlYXRlU2lnblxuZXhwb3J0cy5TaWduID0gc2lnbi5TaWduXG5leHBvcnRzLmNyZWF0ZVZlcmlmeSA9IHNpZ24uY3JlYXRlVmVyaWZ5XG5leHBvcnRzLlZlcmlmeSA9IHNpZ24uVmVyaWZ5XG5cbmV4cG9ydHMuY3JlYXRlRUNESCA9IHJlcXVpcmUoJ2NyZWF0ZS1lY2RoJylcblxudmFyIHB1YmxpY0VuY3J5cHQgPSByZXF1aXJlKCdwdWJsaWMtZW5jcnlwdCcpXG5cbmV4cG9ydHMucHVibGljRW5jcnlwdCA9IHB1YmxpY0VuY3J5cHQucHVibGljRW5jcnlwdFxuZXhwb3J0cy5wcml2YXRlRW5jcnlwdCA9IHB1YmxpY0VuY3J5cHQucHJpdmF0ZUVuY3J5cHRcbmV4cG9ydHMucHVibGljRGVjcnlwdCA9IHB1YmxpY0VuY3J5cHQucHVibGljRGVjcnlwdFxuZXhwb3J0cy5wcml2YXRlRGVjcnlwdCA9IHB1YmxpY0VuY3J5cHQucHJpdmF0ZURlY3J5cHRcblxuLy8gdGhlIGxlYXN0IEkgY2FuIGRvIGlzIG1ha2UgZXJyb3IgbWVzc2FnZXMgZm9yIHRoZSByZXN0IG9mIHRoZSBub2RlLmpzL2NyeXB0byBhcGkuXG4vLyA7W1xuLy8gICAnY3JlYXRlQ3JlZGVudGlhbHMnXG4vLyBdLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbi8vICAgZXhwb3J0c1tuYW1lXSA9IGZ1bmN0aW9uICgpIHtcbi8vICAgICB0aHJvdyBuZXcgRXJyb3IoW1xuLy8gICAgICAgJ3NvcnJ5LCAnICsgbmFtZSArICcgaXMgbm90IGltcGxlbWVudGVkIHlldCcsXG4vLyAgICAgICAnd2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMnLFxuLy8gICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9jcnlwdG8tYnJvd3NlcmlmeS9jcnlwdG8tYnJvd3NlcmlmeSdcbi8vICAgICBdLmpvaW4oJ1xcbicpKVxuLy8gICB9XG4vLyB9KVxuXG52YXIgcmYgPSByZXF1aXJlKCdyYW5kb21maWxsJylcblxuZXhwb3J0cy5yYW5kb21GaWxsID0gcmYucmFuZG9tRmlsbFxuZXhwb3J0cy5yYW5kb21GaWxsU3luYyA9IHJmLnJhbmRvbUZpbGxTeW5jXG5cbmV4cG9ydHMuY3JlYXRlQ3JlZGVudGlhbHMgPSBmdW5jdGlvbiAoKSB7XG4gIHRocm93IG5ldyBFcnJvcihbXG4gICAgJ3NvcnJ5LCBjcmVhdGVDcmVkZW50aWFscyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0JyxcbiAgICAnd2UgYWNjZXB0IHB1bGwgcmVxdWVzdHMnLFxuICAgICdodHRwczovL2dpdGh1Yi5jb20vY3J5cHRvLWJyb3dzZXJpZnkvY3J5cHRvLWJyb3dzZXJpZnknXG4gIF0uam9pbignXFxuJykpXG59XG5cbmV4cG9ydHMuY29uc3RhbnRzID0ge1xuICAnREhfQ0hFQ0tfUF9OT1RfU0FGRV9QUklNRSc6IDIsXG4gICdESF9DSEVDS19QX05PVF9QUklNRSc6IDEsXG4gICdESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SJzogNCxcbiAgJ0RIX05PVF9TVUlUQUJMRV9HRU5FUkFUT1InOiA4LFxuICAnTlBOX0VOQUJMRUQnOiAxLFxuICAnQUxQTl9FTkFCTEVEJzogMSxcbiAgJ1JTQV9QS0NTMV9QQURESU5HJzogMSxcbiAgJ1JTQV9TU0xWMjNfUEFERElORyc6IDIsXG4gICdSU0FfTk9fUEFERElORyc6IDMsXG4gICdSU0FfUEtDUzFfT0FFUF9QQURESU5HJzogNCxcbiAgJ1JTQV9YOTMxX1BBRERJTkcnOiA1LFxuICAnUlNBX1BLQ1MxX1BTU19QQURESU5HJzogNixcbiAgJ1BPSU5UX0NPTlZFUlNJT05fQ09NUFJFU1NFRCc6IDIsXG4gICdQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRCc6IDQsXG4gICdQT0lOVF9DT05WRVJTSU9OX0hZQlJJRCc6IDZcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy51dGlscyA9IHJlcXVpcmUoJy4vZGVzL3V0aWxzJyk7XG5leHBvcnRzLkNpcGhlciA9IHJlcXVpcmUoJy4vZGVzL2NpcGhlcicpO1xuZXhwb3J0cy5ERVMgPSByZXF1aXJlKCcuL2Rlcy9kZXMnKTtcbmV4cG9ydHMuQ0JDID0gcmVxdWlyZSgnLi9kZXMvY2JjJyk7XG5leHBvcnRzLkVERSA9IHJlcXVpcmUoJy4vZGVzL2VkZScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxudmFyIHByb3RvID0ge307XG5cbmZ1bmN0aW9uIENCQ1N0YXRlKGl2KSB7XG4gIGFzc2VydC5lcXVhbChpdi5sZW5ndGgsIDgsICdJbnZhbGlkIElWIGxlbmd0aCcpO1xuXG4gIHRoaXMuaXYgPSBuZXcgQXJyYXkoOCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pdi5sZW5ndGg7IGkrKylcbiAgICB0aGlzLml2W2ldID0gaXZbaV07XG59XG5cbmZ1bmN0aW9uIGluc3RhbnRpYXRlKEJhc2UpIHtcbiAgZnVuY3Rpb24gQ0JDKG9wdGlvbnMpIHtcbiAgICBCYXNlLmNhbGwodGhpcywgb3B0aW9ucyk7XG4gICAgdGhpcy5fY2JjSW5pdCgpO1xuICB9XG4gIGluaGVyaXRzKENCQywgQmFzZSk7XG5cbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhwcm90byk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgIENCQy5wcm90b3R5cGVba2V5XSA9IHByb3RvW2tleV07XG4gIH1cblxuICBDQkMuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IENCQyhvcHRpb25zKTtcbiAgfTtcblxuICByZXR1cm4gQ0JDO1xufVxuXG5leHBvcnRzLmluc3RhbnRpYXRlID0gaW5zdGFudGlhdGU7XG5cbnByb3RvLl9jYmNJbml0ID0gZnVuY3Rpb24gX2NiY0luaXQoKSB7XG4gIHZhciBzdGF0ZSA9IG5ldyBDQkNTdGF0ZSh0aGlzLm9wdGlvbnMuaXYpO1xuICB0aGlzLl9jYmNTdGF0ZSA9IHN0YXRlO1xufTtcblxucHJvdG8uX3VwZGF0ZSA9IGZ1bmN0aW9uIF91cGRhdGUoaW5wLCBpbk9mZiwgb3V0LCBvdXRPZmYpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fY2JjU3RhdGU7XG4gIHZhciBzdXBlclByb3RvID0gdGhpcy5jb25zdHJ1Y3Rvci5zdXBlcl8ucHJvdG90eXBlO1xuXG4gIHZhciBpdiA9IHN0YXRlLml2O1xuICBpZiAodGhpcy50eXBlID09PSAnZW5jcnlwdCcpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYmxvY2tTaXplOyBpKyspXG4gICAgICBpdltpXSBePSBpbnBbaW5PZmYgKyBpXTtcblxuICAgIHN1cGVyUHJvdG8uX3VwZGF0ZS5jYWxsKHRoaXMsIGl2LCAwLCBvdXQsIG91dE9mZik7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYmxvY2tTaXplOyBpKyspXG4gICAgICBpdltpXSA9IG91dFtvdXRPZmYgKyBpXTtcbiAgfSBlbHNlIHtcbiAgICBzdXBlclByb3RvLl91cGRhdGUuY2FsbCh0aGlzLCBpbnAsIGluT2ZmLCBvdXQsIG91dE9mZik7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYmxvY2tTaXplOyBpKyspXG4gICAgICBvdXRbb3V0T2ZmICsgaV0gXj0gaXZbaV07XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYmxvY2tTaXplOyBpKyspXG4gICAgICBpdltpXSA9IGlucFtpbk9mZiArIGldO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xuXG5mdW5jdGlvbiBDaXBoZXIob3B0aW9ucykge1xuICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gIHRoaXMudHlwZSA9IHRoaXMub3B0aW9ucy50eXBlO1xuICB0aGlzLmJsb2NrU2l6ZSA9IDg7XG4gIHRoaXMuX2luaXQoKTtcblxuICB0aGlzLmJ1ZmZlciA9IG5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7XG4gIHRoaXMuYnVmZmVyT2ZmID0gMDtcbn1cbm1vZHVsZS5leHBvcnRzID0gQ2lwaGVyO1xuXG5DaXBoZXIucHJvdG90eXBlLl9pbml0ID0gZnVuY3Rpb24gX2luaXQoKSB7XG4gIC8vIE1pZ2h0IGJlIG92ZXJyaWRlZFxufTtcblxuQ2lwaGVyLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiB1cGRhdGUoZGF0YSkge1xuICBpZiAoZGF0YS5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFtdO1xuXG4gIGlmICh0aGlzLnR5cGUgPT09ICdkZWNyeXB0JylcbiAgICByZXR1cm4gdGhpcy5fdXBkYXRlRGVjcnlwdChkYXRhKTtcbiAgZWxzZVxuICAgIHJldHVybiB0aGlzLl91cGRhdGVFbmNyeXB0KGRhdGEpO1xufTtcblxuQ2lwaGVyLnByb3RvdHlwZS5fYnVmZmVyID0gZnVuY3Rpb24gX2J1ZmZlcihkYXRhLCBvZmYpIHtcbiAgLy8gQXBwZW5kIGRhdGEgdG8gYnVmZmVyXG4gIHZhciBtaW4gPSBNYXRoLm1pbih0aGlzLmJ1ZmZlci5sZW5ndGggLSB0aGlzLmJ1ZmZlck9mZiwgZGF0YS5sZW5ndGggLSBvZmYpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG1pbjsgaSsrKVxuICAgIHRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyT2ZmICsgaV0gPSBkYXRhW29mZiArIGldO1xuICB0aGlzLmJ1ZmZlck9mZiArPSBtaW47XG5cbiAgLy8gU2hpZnQgbmV4dFxuICByZXR1cm4gbWluO1xufTtcblxuQ2lwaGVyLnByb3RvdHlwZS5fZmx1c2hCdWZmZXIgPSBmdW5jdGlvbiBfZmx1c2hCdWZmZXIob3V0LCBvZmYpIHtcbiAgdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLCAwLCBvdXQsIG9mZik7XG4gIHRoaXMuYnVmZmVyT2ZmID0gMDtcbiAgcmV0dXJuIHRoaXMuYmxvY2tTaXplO1xufTtcblxuQ2lwaGVyLnByb3RvdHlwZS5fdXBkYXRlRW5jcnlwdCA9IGZ1bmN0aW9uIF91cGRhdGVFbmNyeXB0KGRhdGEpIHtcbiAgdmFyIGlucHV0T2ZmID0gMDtcbiAgdmFyIG91dHB1dE9mZiA9IDA7XG5cbiAgdmFyIGNvdW50ID0gKCh0aGlzLmJ1ZmZlck9mZiArIGRhdGEubGVuZ3RoKSAvIHRoaXMuYmxvY2tTaXplKSB8IDA7XG4gIHZhciBvdXQgPSBuZXcgQXJyYXkoY291bnQgKiB0aGlzLmJsb2NrU2l6ZSk7XG5cbiAgaWYgKHRoaXMuYnVmZmVyT2ZmICE9PSAwKSB7XG4gICAgaW5wdXRPZmYgKz0gdGhpcy5fYnVmZmVyKGRhdGEsIGlucHV0T2ZmKTtcblxuICAgIGlmICh0aGlzLmJ1ZmZlck9mZiA9PT0gdGhpcy5idWZmZXIubGVuZ3RoKVxuICAgICAgb3V0cHV0T2ZmICs9IHRoaXMuX2ZsdXNoQnVmZmVyKG91dCwgb3V0cHV0T2ZmKTtcbiAgfVxuXG4gIC8vIFdyaXRlIGJsb2Nrc1xuICB2YXIgbWF4ID0gZGF0YS5sZW5ndGggLSAoKGRhdGEubGVuZ3RoIC0gaW5wdXRPZmYpICUgdGhpcy5ibG9ja1NpemUpO1xuICBmb3IgKDsgaW5wdXRPZmYgPCBtYXg7IGlucHV0T2ZmICs9IHRoaXMuYmxvY2tTaXplKSB7XG4gICAgdGhpcy5fdXBkYXRlKGRhdGEsIGlucHV0T2ZmLCBvdXQsIG91dHB1dE9mZik7XG4gICAgb3V0cHV0T2ZmICs9IHRoaXMuYmxvY2tTaXplO1xuICB9XG5cbiAgLy8gUXVldWUgcmVzdFxuICBmb3IgKDsgaW5wdXRPZmYgPCBkYXRhLmxlbmd0aDsgaW5wdXRPZmYrKywgdGhpcy5idWZmZXJPZmYrKylcbiAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZl0gPSBkYXRhW2lucHV0T2ZmXTtcblxuICByZXR1cm4gb3V0O1xufTtcblxuQ2lwaGVyLnByb3RvdHlwZS5fdXBkYXRlRGVjcnlwdCA9IGZ1bmN0aW9uIF91cGRhdGVEZWNyeXB0KGRhdGEpIHtcbiAgdmFyIGlucHV0T2ZmID0gMDtcbiAgdmFyIG91dHB1dE9mZiA9IDA7XG5cbiAgdmFyIGNvdW50ID0gTWF0aC5jZWlsKCh0aGlzLmJ1ZmZlck9mZiArIGRhdGEubGVuZ3RoKSAvIHRoaXMuYmxvY2tTaXplKSAtIDE7XG4gIHZhciBvdXQgPSBuZXcgQXJyYXkoY291bnQgKiB0aGlzLmJsb2NrU2l6ZSk7XG5cbiAgLy8gVE9ETyhpbmR1dG55KTogb3B0aW1pemUgaXQsIHRoaXMgaXMgZmFyIGZyb20gb3B0aW1hbFxuICBmb3IgKDsgY291bnQgPiAwOyBjb3VudC0tKSB7XG4gICAgaW5wdXRPZmYgKz0gdGhpcy5fYnVmZmVyKGRhdGEsIGlucHV0T2ZmKTtcbiAgICBvdXRwdXRPZmYgKz0gdGhpcy5fZmx1c2hCdWZmZXIob3V0LCBvdXRwdXRPZmYpO1xuICB9XG5cbiAgLy8gQnVmZmVyIHJlc3Qgb2YgdGhlIGlucHV0XG4gIGlucHV0T2ZmICs9IHRoaXMuX2J1ZmZlcihkYXRhLCBpbnB1dE9mZik7XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbkNpcGhlci5wcm90b3R5cGUuZmluYWwgPSBmdW5jdGlvbiBmaW5hbChidWZmZXIpIHtcbiAgdmFyIGZpcnN0O1xuICBpZiAoYnVmZmVyKVxuICAgIGZpcnN0ID0gdGhpcy51cGRhdGUoYnVmZmVyKTtcblxuICB2YXIgbGFzdDtcbiAgaWYgKHRoaXMudHlwZSA9PT0gJ2VuY3J5cHQnKVxuICAgIGxhc3QgPSB0aGlzLl9maW5hbEVuY3J5cHQoKTtcbiAgZWxzZVxuICAgIGxhc3QgPSB0aGlzLl9maW5hbERlY3J5cHQoKTtcblxuICBpZiAoZmlyc3QpXG4gICAgcmV0dXJuIGZpcnN0LmNvbmNhdChsYXN0KTtcbiAgZWxzZVxuICAgIHJldHVybiBsYXN0O1xufTtcblxuQ2lwaGVyLnByb3RvdHlwZS5fcGFkID0gZnVuY3Rpb24gX3BhZChidWZmZXIsIG9mZikge1xuICBpZiAob2ZmID09PSAwKVxuICAgIHJldHVybiBmYWxzZTtcblxuICB3aGlsZSAob2ZmIDwgYnVmZmVyLmxlbmd0aClcbiAgICBidWZmZXJbb2ZmKytdID0gMDtcblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbkNpcGhlci5wcm90b3R5cGUuX2ZpbmFsRW5jcnlwdCA9IGZ1bmN0aW9uIF9maW5hbEVuY3J5cHQoKSB7XG4gIGlmICghdGhpcy5fcGFkKHRoaXMuYnVmZmVyLCB0aGlzLmJ1ZmZlck9mZikpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBvdXQgPSBuZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO1xuICB0aGlzLl91cGRhdGUodGhpcy5idWZmZXIsIDAsIG91dCwgMCk7XG4gIHJldHVybiBvdXQ7XG59O1xuXG5DaXBoZXIucHJvdG90eXBlLl91bnBhZCA9IGZ1bmN0aW9uIF91bnBhZChidWZmZXIpIHtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn07XG5cbkNpcGhlci5wcm90b3R5cGUuX2ZpbmFsRGVjcnlwdCA9IGZ1bmN0aW9uIF9maW5hbERlY3J5cHQoKSB7XG4gIGFzc2VydC5lcXVhbCh0aGlzLmJ1ZmZlck9mZiwgdGhpcy5ibG9ja1NpemUsICdOb3QgZW5vdWdoIGRhdGEgdG8gZGVjcnlwdCcpO1xuICB2YXIgb3V0ID0gbmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtcbiAgdGhpcy5fZmx1c2hCdWZmZXIob3V0LCAwKTtcblxuICByZXR1cm4gdGhpcy5fdW5wYWQob3V0KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBhc3NlcnQgPSByZXF1aXJlKCdtaW5pbWFsaXN0aWMtYXNzZXJ0Jyk7XG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuXG52YXIgZGVzID0gcmVxdWlyZSgnLi4vZGVzJyk7XG52YXIgdXRpbHMgPSBkZXMudXRpbHM7XG52YXIgQ2lwaGVyID0gZGVzLkNpcGhlcjtcblxuZnVuY3Rpb24gREVTU3RhdGUoKSB7XG4gIHRoaXMudG1wID0gbmV3IEFycmF5KDIpO1xuICB0aGlzLmtleXMgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBERVMob3B0aW9ucykge1xuICBDaXBoZXIuY2FsbCh0aGlzLCBvcHRpb25zKTtcblxuICB2YXIgc3RhdGUgPSBuZXcgREVTU3RhdGUoKTtcbiAgdGhpcy5fZGVzU3RhdGUgPSBzdGF0ZTtcblxuICB0aGlzLmRlcml2ZUtleXMoc3RhdGUsIG9wdGlvbnMua2V5KTtcbn1cbmluaGVyaXRzKERFUywgQ2lwaGVyKTtcbm1vZHVsZS5leHBvcnRzID0gREVTO1xuXG5ERVMuY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBERVMob3B0aW9ucyk7XG59O1xuXG52YXIgc2hpZnRUYWJsZSA9IFtcbiAgMSwgMSwgMiwgMiwgMiwgMiwgMiwgMixcbiAgMSwgMiwgMiwgMiwgMiwgMiwgMiwgMVxuXTtcblxuREVTLnByb3RvdHlwZS5kZXJpdmVLZXlzID0gZnVuY3Rpb24gZGVyaXZlS2V5cyhzdGF0ZSwga2V5KSB7XG4gIHN0YXRlLmtleXMgPSBuZXcgQXJyYXkoMTYgKiAyKTtcblxuICBhc3NlcnQuZXF1YWwoa2V5Lmxlbmd0aCwgdGhpcy5ibG9ja1NpemUsICdJbnZhbGlkIGtleSBsZW5ndGgnKTtcblxuICB2YXIga0wgPSB1dGlscy5yZWFkVUludDMyQkUoa2V5LCAwKTtcbiAgdmFyIGtSID0gdXRpbHMucmVhZFVJbnQzMkJFKGtleSwgNCk7XG5cbiAgdXRpbHMucGMxKGtMLCBrUiwgc3RhdGUudG1wLCAwKTtcbiAga0wgPSBzdGF0ZS50bXBbMF07XG4gIGtSID0gc3RhdGUudG1wWzFdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YXRlLmtleXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICB2YXIgc2hpZnQgPSBzaGlmdFRhYmxlW2kgPj4+IDFdO1xuICAgIGtMID0gdXRpbHMucjI4c2hsKGtMLCBzaGlmdCk7XG4gICAga1IgPSB1dGlscy5yMjhzaGwoa1IsIHNoaWZ0KTtcbiAgICB1dGlscy5wYzIoa0wsIGtSLCBzdGF0ZS5rZXlzLCBpKTtcbiAgfVxufTtcblxuREVTLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gX3VwZGF0ZShpbnAsIGluT2ZmLCBvdXQsIG91dE9mZikge1xuICB2YXIgc3RhdGUgPSB0aGlzLl9kZXNTdGF0ZTtcblxuICB2YXIgbCA9IHV0aWxzLnJlYWRVSW50MzJCRShpbnAsIGluT2ZmKTtcbiAgdmFyIHIgPSB1dGlscy5yZWFkVUludDMyQkUoaW5wLCBpbk9mZiArIDQpO1xuXG4gIC8vIEluaXRpYWwgUGVybXV0YXRpb25cbiAgdXRpbHMuaXAobCwgciwgc3RhdGUudG1wLCAwKTtcbiAgbCA9IHN0YXRlLnRtcFswXTtcbiAgciA9IHN0YXRlLnRtcFsxXTtcblxuICBpZiAodGhpcy50eXBlID09PSAnZW5jcnlwdCcpXG4gICAgdGhpcy5fZW5jcnlwdChzdGF0ZSwgbCwgciwgc3RhdGUudG1wLCAwKTtcbiAgZWxzZVxuICAgIHRoaXMuX2RlY3J5cHQoc3RhdGUsIGwsIHIsIHN0YXRlLnRtcCwgMCk7XG5cbiAgbCA9IHN0YXRlLnRtcFswXTtcbiAgciA9IHN0YXRlLnRtcFsxXTtcblxuICB1dGlscy53cml0ZVVJbnQzMkJFKG91dCwgbCwgb3V0T2ZmKTtcbiAgdXRpbHMud3JpdGVVSW50MzJCRShvdXQsIHIsIG91dE9mZiArIDQpO1xufTtcblxuREVTLnByb3RvdHlwZS5fcGFkID0gZnVuY3Rpb24gX3BhZChidWZmZXIsIG9mZikge1xuICB2YXIgdmFsdWUgPSBidWZmZXIubGVuZ3RoIC0gb2ZmO1xuICBmb3IgKHZhciBpID0gb2ZmOyBpIDwgYnVmZmVyLmxlbmd0aDsgaSsrKVxuICAgIGJ1ZmZlcltpXSA9IHZhbHVlO1xuXG4gIHJldHVybiB0cnVlO1xufTtcblxuREVTLnByb3RvdHlwZS5fdW5wYWQgPSBmdW5jdGlvbiBfdW5wYWQoYnVmZmVyKSB7XG4gIHZhciBwYWQgPSBidWZmZXJbYnVmZmVyLmxlbmd0aCAtIDFdO1xuICBmb3IgKHZhciBpID0gYnVmZmVyLmxlbmd0aCAtIHBhZDsgaSA8IGJ1ZmZlci5sZW5ndGg7IGkrKylcbiAgICBhc3NlcnQuZXF1YWwoYnVmZmVyW2ldLCBwYWQpO1xuXG4gIHJldHVybiBidWZmZXIuc2xpY2UoMCwgYnVmZmVyLmxlbmd0aCAtIHBhZCk7XG59O1xuXG5ERVMucHJvdG90eXBlLl9lbmNyeXB0ID0gZnVuY3Rpb24gX2VuY3J5cHQoc3RhdGUsIGxTdGFydCwgclN0YXJ0LCBvdXQsIG9mZikge1xuICB2YXIgbCA9IGxTdGFydDtcbiAgdmFyIHIgPSByU3RhcnQ7XG5cbiAgLy8gQXBwbHkgZigpIHgxNiB0aW1lc1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YXRlLmtleXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICB2YXIga2V5TCA9IHN0YXRlLmtleXNbaV07XG4gICAgdmFyIGtleVIgPSBzdGF0ZS5rZXlzW2kgKyAxXTtcblxuICAgIC8vIGYociwgaylcbiAgICB1dGlscy5leHBhbmQociwgc3RhdGUudG1wLCAwKTtcblxuICAgIGtleUwgXj0gc3RhdGUudG1wWzBdO1xuICAgIGtleVIgXj0gc3RhdGUudG1wWzFdO1xuICAgIHZhciBzID0gdXRpbHMuc3Vic3RpdHV0ZShrZXlMLCBrZXlSKTtcbiAgICB2YXIgZiA9IHV0aWxzLnBlcm11dGUocyk7XG5cbiAgICB2YXIgdCA9IHI7XG4gICAgciA9IChsIF4gZikgPj4+IDA7XG4gICAgbCA9IHQ7XG4gIH1cblxuICAvLyBSZXZlcnNlIEluaXRpYWwgUGVybXV0YXRpb25cbiAgdXRpbHMucmlwKHIsIGwsIG91dCwgb2ZmKTtcbn07XG5cbkRFUy5wcm90b3R5cGUuX2RlY3J5cHQgPSBmdW5jdGlvbiBfZGVjcnlwdChzdGF0ZSwgbFN0YXJ0LCByU3RhcnQsIG91dCwgb2ZmKSB7XG4gIHZhciBsID0gclN0YXJ0O1xuICB2YXIgciA9IGxTdGFydDtcblxuICAvLyBBcHBseSBmKCkgeDE2IHRpbWVzXG4gIGZvciAodmFyIGkgPSBzdGF0ZS5rZXlzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaSAtPSAyKSB7XG4gICAgdmFyIGtleUwgPSBzdGF0ZS5rZXlzW2ldO1xuICAgIHZhciBrZXlSID0gc3RhdGUua2V5c1tpICsgMV07XG5cbiAgICAvLyBmKHIsIGspXG4gICAgdXRpbHMuZXhwYW5kKGwsIHN0YXRlLnRtcCwgMCk7XG5cbiAgICBrZXlMIF49IHN0YXRlLnRtcFswXTtcbiAgICBrZXlSIF49IHN0YXRlLnRtcFsxXTtcbiAgICB2YXIgcyA9IHV0aWxzLnN1YnN0aXR1dGUoa2V5TCwga2V5Uik7XG4gICAgdmFyIGYgPSB1dGlscy5wZXJtdXRlKHMpO1xuXG4gICAgdmFyIHQgPSBsO1xuICAgIGwgPSAociBeIGYpID4+PiAwO1xuICAgIHIgPSB0O1xuICB9XG5cbiAgLy8gUmV2ZXJzZSBJbml0aWFsIFBlcm11dGF0aW9uXG4gIHV0aWxzLnJpcChsLCByLCBvdXQsIG9mZik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxudmFyIGRlcyA9IHJlcXVpcmUoJy4uL2RlcycpO1xudmFyIENpcGhlciA9IGRlcy5DaXBoZXI7XG52YXIgREVTID0gZGVzLkRFUztcblxuZnVuY3Rpb24gRURFU3RhdGUodHlwZSwga2V5KSB7XG4gIGFzc2VydC5lcXVhbChrZXkubGVuZ3RoLCAyNCwgJ0ludmFsaWQga2V5IGxlbmd0aCcpO1xuXG4gIHZhciBrMSA9IGtleS5zbGljZSgwLCA4KTtcbiAgdmFyIGsyID0ga2V5LnNsaWNlKDgsIDE2KTtcbiAgdmFyIGszID0ga2V5LnNsaWNlKDE2LCAyNCk7XG5cbiAgaWYgKHR5cGUgPT09ICdlbmNyeXB0Jykge1xuICAgIHRoaXMuY2lwaGVycyA9IFtcbiAgICAgIERFUy5jcmVhdGUoeyB0eXBlOiAnZW5jcnlwdCcsIGtleTogazEgfSksXG4gICAgICBERVMuY3JlYXRlKHsgdHlwZTogJ2RlY3J5cHQnLCBrZXk6IGsyIH0pLFxuICAgICAgREVTLmNyZWF0ZSh7IHR5cGU6ICdlbmNyeXB0Jywga2V5OiBrMyB9KVxuICAgIF07XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5jaXBoZXJzID0gW1xuICAgICAgREVTLmNyZWF0ZSh7IHR5cGU6ICdkZWNyeXB0Jywga2V5OiBrMyB9KSxcbiAgICAgIERFUy5jcmVhdGUoeyB0eXBlOiAnZW5jcnlwdCcsIGtleTogazIgfSksXG4gICAgICBERVMuY3JlYXRlKHsgdHlwZTogJ2RlY3J5cHQnLCBrZXk6IGsxIH0pXG4gICAgXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBFREUob3B0aW9ucykge1xuICBDaXBoZXIuY2FsbCh0aGlzLCBvcHRpb25zKTtcblxuICB2YXIgc3RhdGUgPSBuZXcgRURFU3RhdGUodGhpcy50eXBlLCB0aGlzLm9wdGlvbnMua2V5KTtcbiAgdGhpcy5fZWRlU3RhdGUgPSBzdGF0ZTtcbn1cbmluaGVyaXRzKEVERSwgQ2lwaGVyKTtcblxubW9kdWxlLmV4cG9ydHMgPSBFREU7XG5cbkVERS5jcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEVERShvcHRpb25zKTtcbn07XG5cbkVERS5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIF91cGRhdGUoaW5wLCBpbk9mZiwgb3V0LCBvdXRPZmYpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fZWRlU3RhdGU7XG5cbiAgc3RhdGUuY2lwaGVyc1swXS5fdXBkYXRlKGlucCwgaW5PZmYsIG91dCwgb3V0T2ZmKTtcbiAgc3RhdGUuY2lwaGVyc1sxXS5fdXBkYXRlKG91dCwgb3V0T2ZmLCBvdXQsIG91dE9mZik7XG4gIHN0YXRlLmNpcGhlcnNbMl0uX3VwZGF0ZShvdXQsIG91dE9mZiwgb3V0LCBvdXRPZmYpO1xufTtcblxuRURFLnByb3RvdHlwZS5fcGFkID0gREVTLnByb3RvdHlwZS5fcGFkO1xuRURFLnByb3RvdHlwZS5fdW5wYWQgPSBERVMucHJvdG90eXBlLl91bnBhZDtcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5yZWFkVUludDMyQkUgPSBmdW5jdGlvbiByZWFkVUludDMyQkUoYnl0ZXMsIG9mZikge1xuICB2YXIgcmVzID0gIChieXRlc1swICsgb2ZmXSA8PCAyNCkgfFxuICAgICAgICAgICAgIChieXRlc1sxICsgb2ZmXSA8PCAxNikgfFxuICAgICAgICAgICAgIChieXRlc1syICsgb2ZmXSA8PCA4KSB8XG4gICAgICAgICAgICAgYnl0ZXNbMyArIG9mZl07XG4gIHJldHVybiByZXMgPj4+IDA7XG59O1xuXG5leHBvcnRzLndyaXRlVUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkJFKGJ5dGVzLCB2YWx1ZSwgb2ZmKSB7XG4gIGJ5dGVzWzAgKyBvZmZdID0gdmFsdWUgPj4+IDI0O1xuICBieXRlc1sxICsgb2ZmXSA9ICh2YWx1ZSA+Pj4gMTYpICYgMHhmZjtcbiAgYnl0ZXNbMiArIG9mZl0gPSAodmFsdWUgPj4+IDgpICYgMHhmZjtcbiAgYnl0ZXNbMyArIG9mZl0gPSB2YWx1ZSAmIDB4ZmY7XG59O1xuXG5leHBvcnRzLmlwID0gZnVuY3Rpb24gaXAoaW5MLCBpblIsIG91dCwgb2ZmKSB7XG4gIHZhciBvdXRMID0gMDtcbiAgdmFyIG91dFIgPSAwO1xuXG4gIGZvciAodmFyIGkgPSA2OyBpID49IDA7IGkgLT0gMikge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDw9IDI0OyBqICs9IDgpIHtcbiAgICAgIG91dEwgPDw9IDE7XG4gICAgICBvdXRMIHw9IChpblIgPj4+IChqICsgaSkpICYgMTtcbiAgICB9XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPD0gMjQ7IGogKz0gOCkge1xuICAgICAgb3V0TCA8PD0gMTtcbiAgICAgIG91dEwgfD0gKGluTCA+Pj4gKGogKyBpKSkgJiAxO1xuICAgIH1cbiAgfVxuXG4gIGZvciAodmFyIGkgPSA2OyBpID49IDA7IGkgLT0gMikge1xuICAgIGZvciAodmFyIGogPSAxOyBqIDw9IDI1OyBqICs9IDgpIHtcbiAgICAgIG91dFIgPDw9IDE7XG4gICAgICBvdXRSIHw9IChpblIgPj4+IChqICsgaSkpICYgMTtcbiAgICB9XG4gICAgZm9yICh2YXIgaiA9IDE7IGogPD0gMjU7IGogKz0gOCkge1xuICAgICAgb3V0UiA8PD0gMTtcbiAgICAgIG91dFIgfD0gKGluTCA+Pj4gKGogKyBpKSkgJiAxO1xuICAgIH1cbiAgfVxuXG4gIG91dFtvZmYgKyAwXSA9IG91dEwgPj4+IDA7XG4gIG91dFtvZmYgKyAxXSA9IG91dFIgPj4+IDA7XG59O1xuXG5leHBvcnRzLnJpcCA9IGZ1bmN0aW9uIHJpcChpbkwsIGluUiwgb3V0LCBvZmYpIHtcbiAgdmFyIG91dEwgPSAwO1xuICB2YXIgb3V0UiA9IDA7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcbiAgICBmb3IgKHZhciBqID0gMjQ7IGogPj0gMDsgaiAtPSA4KSB7XG4gICAgICBvdXRMIDw8PSAxO1xuICAgICAgb3V0TCB8PSAoaW5SID4+PiAoaiArIGkpKSAmIDE7XG4gICAgICBvdXRMIDw8PSAxO1xuICAgICAgb3V0TCB8PSAoaW5MID4+PiAoaiArIGkpKSAmIDE7XG4gICAgfVxuICB9XG4gIGZvciAodmFyIGkgPSA0OyBpIDwgODsgaSsrKSB7XG4gICAgZm9yICh2YXIgaiA9IDI0OyBqID49IDA7IGogLT0gOCkge1xuICAgICAgb3V0UiA8PD0gMTtcbiAgICAgIG91dFIgfD0gKGluUiA+Pj4gKGogKyBpKSkgJiAxO1xuICAgICAgb3V0UiA8PD0gMTtcbiAgICAgIG91dFIgfD0gKGluTCA+Pj4gKGogKyBpKSkgJiAxO1xuICAgIH1cbiAgfVxuXG4gIG91dFtvZmYgKyAwXSA9IG91dEwgPj4+IDA7XG4gIG91dFtvZmYgKyAxXSA9IG91dFIgPj4+IDA7XG59O1xuXG5leHBvcnRzLnBjMSA9IGZ1bmN0aW9uIHBjMShpbkwsIGluUiwgb3V0LCBvZmYpIHtcbiAgdmFyIG91dEwgPSAwO1xuICB2YXIgb3V0UiA9IDA7XG5cbiAgLy8gNywgMTUsIDIzLCAzMSwgMzksIDQ3LCA1NSwgNjNcbiAgLy8gNiwgMTQsIDIyLCAzMCwgMzksIDQ3LCA1NSwgNjNcbiAgLy8gNSwgMTMsIDIxLCAyOSwgMzksIDQ3LCA1NSwgNjNcbiAgLy8gNCwgMTIsIDIwLCAyOFxuICBmb3IgKHZhciBpID0gNzsgaSA+PSA1OyBpLS0pIHtcbiAgICBmb3IgKHZhciBqID0gMDsgaiA8PSAyNDsgaiArPSA4KSB7XG4gICAgICBvdXRMIDw8PSAxO1xuICAgICAgb3V0TCB8PSAoaW5SID4+IChqICsgaSkpICYgMTtcbiAgICB9XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPD0gMjQ7IGogKz0gOCkge1xuICAgICAgb3V0TCA8PD0gMTtcbiAgICAgIG91dEwgfD0gKGluTCA+PiAoaiArIGkpKSAmIDE7XG4gICAgfVxuICB9XG4gIGZvciAodmFyIGogPSAwOyBqIDw9IDI0OyBqICs9IDgpIHtcbiAgICBvdXRMIDw8PSAxO1xuICAgIG91dEwgfD0gKGluUiA+PiAoaiArIGkpKSAmIDE7XG4gIH1cblxuICAvLyAxLCA5LCAxNywgMjUsIDMzLCA0MSwgNDksIDU3XG4gIC8vIDIsIDEwLCAxOCwgMjYsIDM0LCA0MiwgNTAsIDU4XG4gIC8vIDMsIDExLCAxOSwgMjcsIDM1LCA0MywgNTEsIDU5XG4gIC8vIDM2LCA0NCwgNTIsIDYwXG4gIGZvciAodmFyIGkgPSAxOyBpIDw9IDM7IGkrKykge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDw9IDI0OyBqICs9IDgpIHtcbiAgICAgIG91dFIgPDw9IDE7XG4gICAgICBvdXRSIHw9IChpblIgPj4gKGogKyBpKSkgJiAxO1xuICAgIH1cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8PSAyNDsgaiArPSA4KSB7XG4gICAgICBvdXRSIDw8PSAxO1xuICAgICAgb3V0UiB8PSAoaW5MID4+IChqICsgaSkpICYgMTtcbiAgICB9XG4gIH1cbiAgZm9yICh2YXIgaiA9IDA7IGogPD0gMjQ7IGogKz0gOCkge1xuICAgIG91dFIgPDw9IDE7XG4gICAgb3V0UiB8PSAoaW5MID4+IChqICsgaSkpICYgMTtcbiAgfVxuXG4gIG91dFtvZmYgKyAwXSA9IG91dEwgPj4+IDA7XG4gIG91dFtvZmYgKyAxXSA9IG91dFIgPj4+IDA7XG59O1xuXG5leHBvcnRzLnIyOHNobCA9IGZ1bmN0aW9uIHIyOHNobChudW0sIHNoaWZ0KSB7XG4gIHJldHVybiAoKG51bSA8PCBzaGlmdCkgJiAweGZmZmZmZmYpIHwgKG51bSA+Pj4gKDI4IC0gc2hpZnQpKTtcbn07XG5cbnZhciBwYzJ0YWJsZSA9IFtcbiAgLy8gaW5MID0+IG91dExcbiAgMTQsIDExLCAxNywgNCwgMjcsIDIzLCAyNSwgMCxcbiAgMTMsIDIyLCA3LCAxOCwgNSwgOSwgMTYsIDI0LFxuICAyLCAyMCwgMTIsIDIxLCAxLCA4LCAxNSwgMjYsXG5cbiAgLy8gaW5SID0+IG91dFJcbiAgMTUsIDQsIDI1LCAxOSwgOSwgMSwgMjYsIDE2LFxuICA1LCAxMSwgMjMsIDgsIDEyLCA3LCAxNywgMCxcbiAgMjIsIDMsIDEwLCAxNCwgNiwgMjAsIDI3LCAyNFxuXTtcblxuZXhwb3J0cy5wYzIgPSBmdW5jdGlvbiBwYzIoaW5MLCBpblIsIG91dCwgb2ZmKSB7XG4gIHZhciBvdXRMID0gMDtcbiAgdmFyIG91dFIgPSAwO1xuXG4gIHZhciBsZW4gPSBwYzJ0YWJsZS5sZW5ndGggPj4+IDE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBvdXRMIDw8PSAxO1xuICAgIG91dEwgfD0gKGluTCA+Pj4gcGMydGFibGVbaV0pICYgMHgxO1xuICB9XG4gIGZvciAodmFyIGkgPSBsZW47IGkgPCBwYzJ0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIG91dFIgPDw9IDE7XG4gICAgb3V0UiB8PSAoaW5SID4+PiBwYzJ0YWJsZVtpXSkgJiAweDE7XG4gIH1cblxuICBvdXRbb2ZmICsgMF0gPSBvdXRMID4+PiAwO1xuICBvdXRbb2ZmICsgMV0gPSBvdXRSID4+PiAwO1xufTtcblxuZXhwb3J0cy5leHBhbmQgPSBmdW5jdGlvbiBleHBhbmQociwgb3V0LCBvZmYpIHtcbiAgdmFyIG91dEwgPSAwO1xuICB2YXIgb3V0UiA9IDA7XG5cbiAgb3V0TCA9ICgociAmIDEpIDw8IDUpIHwgKHIgPj4+IDI3KTtcbiAgZm9yICh2YXIgaSA9IDIzOyBpID49IDE1OyBpIC09IDQpIHtcbiAgICBvdXRMIDw8PSA2O1xuICAgIG91dEwgfD0gKHIgPj4+IGkpICYgMHgzZjtcbiAgfVxuICBmb3IgKHZhciBpID0gMTE7IGkgPj0gMzsgaSAtPSA0KSB7XG4gICAgb3V0UiB8PSAociA+Pj4gaSkgJiAweDNmO1xuICAgIG91dFIgPDw9IDY7XG4gIH1cbiAgb3V0UiB8PSAoKHIgJiAweDFmKSA8PCAxKSB8IChyID4+PiAzMSk7XG5cbiAgb3V0W29mZiArIDBdID0gb3V0TCA+Pj4gMDtcbiAgb3V0W29mZiArIDFdID0gb3V0UiA+Pj4gMDtcbn07XG5cbnZhciBzVGFibGUgPSBbXG4gIDE0LCAwLCA0LCAxNSwgMTMsIDcsIDEsIDQsIDIsIDE0LCAxNSwgMiwgMTEsIDEzLCA4LCAxLFxuICAzLCAxMCwgMTAsIDYsIDYsIDEyLCAxMiwgMTEsIDUsIDksIDksIDUsIDAsIDMsIDcsIDgsXG4gIDQsIDE1LCAxLCAxMiwgMTQsIDgsIDgsIDIsIDEzLCA0LCA2LCA5LCAyLCAxLCAxMSwgNyxcbiAgMTUsIDUsIDEyLCAxMSwgOSwgMywgNywgMTQsIDMsIDEwLCAxMCwgMCwgNSwgNiwgMCwgMTMsXG5cbiAgMTUsIDMsIDEsIDEzLCA4LCA0LCAxNCwgNywgNiwgMTUsIDExLCAyLCAzLCA4LCA0LCAxNCxcbiAgOSwgMTIsIDcsIDAsIDIsIDEsIDEzLCAxMCwgMTIsIDYsIDAsIDksIDUsIDExLCAxMCwgNSxcbiAgMCwgMTMsIDE0LCA4LCA3LCAxMCwgMTEsIDEsIDEwLCAzLCA0LCAxNSwgMTMsIDQsIDEsIDIsXG4gIDUsIDExLCA4LCA2LCAxMiwgNywgNiwgMTIsIDksIDAsIDMsIDUsIDIsIDE0LCAxNSwgOSxcblxuICAxMCwgMTMsIDAsIDcsIDksIDAsIDE0LCA5LCA2LCAzLCAzLCA0LCAxNSwgNiwgNSwgMTAsXG4gIDEsIDIsIDEzLCA4LCAxMiwgNSwgNywgMTQsIDExLCAxMiwgNCwgMTEsIDIsIDE1LCA4LCAxLFxuICAxMywgMSwgNiwgMTAsIDQsIDEzLCA5LCAwLCA4LCA2LCAxNSwgOSwgMywgOCwgMCwgNyxcbiAgMTEsIDQsIDEsIDE1LCAyLCAxNCwgMTIsIDMsIDUsIDExLCAxMCwgNSwgMTQsIDIsIDcsIDEyLFxuXG4gIDcsIDEzLCAxMywgOCwgMTQsIDExLCAzLCA1LCAwLCA2LCA2LCAxNSwgOSwgMCwgMTAsIDMsXG4gIDEsIDQsIDIsIDcsIDgsIDIsIDUsIDEyLCAxMSwgMSwgMTIsIDEwLCA0LCAxNCwgMTUsIDksXG4gIDEwLCAzLCA2LCAxNSwgOSwgMCwgMCwgNiwgMTIsIDEwLCAxMSwgMSwgNywgMTMsIDEzLCA4LFxuICAxNSwgOSwgMSwgNCwgMywgNSwgMTQsIDExLCA1LCAxMiwgMiwgNywgOCwgMiwgNCwgMTQsXG5cbiAgMiwgMTQsIDEyLCAxMSwgNCwgMiwgMSwgMTIsIDcsIDQsIDEwLCA3LCAxMSwgMTMsIDYsIDEsXG4gIDgsIDUsIDUsIDAsIDMsIDE1LCAxNSwgMTAsIDEzLCAzLCAwLCA5LCAxNCwgOCwgOSwgNixcbiAgNCwgMTEsIDIsIDgsIDEsIDEyLCAxMSwgNywgMTAsIDEsIDEzLCAxNCwgNywgMiwgOCwgMTMsXG4gIDE1LCA2LCA5LCAxNSwgMTIsIDAsIDUsIDksIDYsIDEwLCAzLCA0LCAwLCA1LCAxNCwgMyxcblxuICAxMiwgMTAsIDEsIDE1LCAxMCwgNCwgMTUsIDIsIDksIDcsIDIsIDEyLCA2LCA5LCA4LCA1LFxuICAwLCA2LCAxMywgMSwgMywgMTMsIDQsIDE0LCAxNCwgMCwgNywgMTEsIDUsIDMsIDExLCA4LFxuICA5LCA0LCAxNCwgMywgMTUsIDIsIDUsIDEyLCAyLCA5LCA4LCA1LCAxMiwgMTUsIDMsIDEwLFxuICA3LCAxMSwgMCwgMTQsIDQsIDEsIDEwLCA3LCAxLCA2LCAxMywgMCwgMTEsIDgsIDYsIDEzLFxuXG4gIDQsIDEzLCAxMSwgMCwgMiwgMTEsIDE0LCA3LCAxNSwgNCwgMCwgOSwgOCwgMSwgMTMsIDEwLFxuICAzLCAxNCwgMTIsIDMsIDksIDUsIDcsIDEyLCA1LCAyLCAxMCwgMTUsIDYsIDgsIDEsIDYsXG4gIDEsIDYsIDQsIDExLCAxMSwgMTMsIDEzLCA4LCAxMiwgMSwgMywgNCwgNywgMTAsIDE0LCA3LFxuICAxMCwgOSwgMTUsIDUsIDYsIDAsIDgsIDE1LCAwLCAxNCwgNSwgMiwgOSwgMywgMiwgMTIsXG5cbiAgMTMsIDEsIDIsIDE1LCA4LCAxMywgNCwgOCwgNiwgMTAsIDE1LCAzLCAxMSwgNywgMSwgNCxcbiAgMTAsIDEyLCA5LCA1LCAzLCA2LCAxNCwgMTEsIDUsIDAsIDAsIDE0LCAxMiwgOSwgNywgMixcbiAgNywgMiwgMTEsIDEsIDQsIDE0LCAxLCA3LCA5LCA0LCAxMiwgMTAsIDE0LCA4LCAyLCAxMyxcbiAgMCwgMTUsIDYsIDEyLCAxMCwgOSwgMTMsIDAsIDE1LCAzLCAzLCA1LCA1LCA2LCA4LCAxMVxuXTtcblxuZXhwb3J0cy5zdWJzdGl0dXRlID0gZnVuY3Rpb24gc3Vic3RpdHV0ZShpbkwsIGluUikge1xuICB2YXIgb3V0ID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcbiAgICB2YXIgYiA9IChpbkwgPj4+ICgxOCAtIGkgKiA2KSkgJiAweDNmO1xuICAgIHZhciBzYiA9IHNUYWJsZVtpICogMHg0MCArIGJdO1xuXG4gICAgb3V0IDw8PSA0O1xuICAgIG91dCB8PSBzYjtcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgIHZhciBiID0gKGluUiA+Pj4gKDE4IC0gaSAqIDYpKSAmIDB4M2Y7XG4gICAgdmFyIHNiID0gc1RhYmxlWzQgKiAweDQwICsgaSAqIDB4NDAgKyBiXTtcblxuICAgIG91dCA8PD0gNDtcbiAgICBvdXQgfD0gc2I7XG4gIH1cbiAgcmV0dXJuIG91dCA+Pj4gMDtcbn07XG5cbnZhciBwZXJtdXRlVGFibGUgPSBbXG4gIDE2LCAyNSwgMTIsIDExLCAzLCAyMCwgNCwgMTUsIDMxLCAxNywgOSwgNiwgMjcsIDE0LCAxLCAyMixcbiAgMzAsIDI0LCA4LCAxOCwgMCwgNSwgMjksIDIzLCAxMywgMTksIDIsIDI2LCAxMCwgMjEsIDI4LCA3XG5dO1xuXG5leHBvcnRzLnBlcm11dGUgPSBmdW5jdGlvbiBwZXJtdXRlKG51bSkge1xuICB2YXIgb3V0ID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwZXJtdXRlVGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICBvdXQgPDw9IDE7XG4gICAgb3V0IHw9IChudW0gPj4+IHBlcm11dGVUYWJsZVtpXSkgJiAweDE7XG4gIH1cbiAgcmV0dXJuIG91dCA+Pj4gMDtcbn07XG5cbmV4cG9ydHMucGFkU3BsaXQgPSBmdW5jdGlvbiBwYWRTcGxpdChudW0sIHNpemUsIGdyb3VwKSB7XG4gIHZhciBzdHIgPSBudW0udG9TdHJpbmcoMik7XG4gIHdoaWxlIChzdHIubGVuZ3RoIDwgc2l6ZSlcbiAgICBzdHIgPSAnMCcgKyBzdHI7XG5cbiAgdmFyIG91dCA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkgKz0gZ3JvdXApXG4gICAgb3V0LnB1c2goc3RyLnNsaWNlKGksIGkgKyBncm91cCkpO1xuICByZXR1cm4gb3V0LmpvaW4oJyAnKTtcbn07XG4iLCJ2YXIgZ2VuZXJhdGVQcmltZSA9IHJlcXVpcmUoJy4vbGliL2dlbmVyYXRlUHJpbWUnKVxudmFyIHByaW1lcyA9IHJlcXVpcmUoJy4vbGliL3ByaW1lcy5qc29uJylcblxudmFyIERIID0gcmVxdWlyZSgnLi9saWIvZGgnKVxuXG5mdW5jdGlvbiBnZXREaWZmaWVIZWxsbWFuIChtb2QpIHtcbiAgdmFyIHByaW1lID0gbmV3IEJ1ZmZlcihwcmltZXNbbW9kXS5wcmltZSwgJ2hleCcpXG4gIHZhciBnZW4gPSBuZXcgQnVmZmVyKHByaW1lc1ttb2RdLmdlbiwgJ2hleCcpXG5cbiAgcmV0dXJuIG5ldyBESChwcmltZSwgZ2VuKVxufVxuXG52YXIgRU5DT0RJTkdTID0ge1xuICAnYmluYXJ5JzogdHJ1ZSwgJ2hleCc6IHRydWUsICdiYXNlNjQnOiB0cnVlXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURpZmZpZUhlbGxtYW4gKHByaW1lLCBlbmMsIGdlbmVyYXRvciwgZ2VuYykge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKGVuYykgfHwgRU5DT0RJTkdTW2VuY10gPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBjcmVhdGVEaWZmaWVIZWxsbWFuKHByaW1lLCAnYmluYXJ5JywgZW5jLCBnZW5lcmF0b3IpXG4gIH1cblxuICBlbmMgPSBlbmMgfHwgJ2JpbmFyeSdcbiAgZ2VuYyA9IGdlbmMgfHwgJ2JpbmFyeSdcbiAgZ2VuZXJhdG9yID0gZ2VuZXJhdG9yIHx8IG5ldyBCdWZmZXIoWzJdKVxuXG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGdlbmVyYXRvcikpIHtcbiAgICBnZW5lcmF0b3IgPSBuZXcgQnVmZmVyKGdlbmVyYXRvciwgZ2VuYylcbiAgfVxuXG4gIGlmICh0eXBlb2YgcHJpbWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIG5ldyBESChnZW5lcmF0ZVByaW1lKHByaW1lLCBnZW5lcmF0b3IpLCBnZW5lcmF0b3IsIHRydWUpXG4gIH1cblxuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwcmltZSkpIHtcbiAgICBwcmltZSA9IG5ldyBCdWZmZXIocHJpbWUsIGVuYylcbiAgfVxuXG4gIHJldHVybiBuZXcgREgocHJpbWUsIGdlbmVyYXRvciwgdHJ1ZSlcbn1cblxuZXhwb3J0cy5EaWZmaWVIZWxsbWFuR3JvdXAgPSBleHBvcnRzLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cCA9IGV4cG9ydHMuZ2V0RGlmZmllSGVsbG1hbiA9IGdldERpZmZpZUhlbGxtYW5cbmV4cG9ydHMuY3JlYXRlRGlmZmllSGVsbG1hbiA9IGV4cG9ydHMuRGlmZmllSGVsbG1hbiA9IGNyZWF0ZURpZmZpZUhlbGxtYW5cbiIsInZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgTWlsbGVyUmFiaW4gPSByZXF1aXJlKCdtaWxsZXItcmFiaW4nKTtcbnZhciBtaWxsZXJSYWJpbiA9IG5ldyBNaWxsZXJSYWJpbigpO1xudmFyIFRXRU5UWUZPVVIgPSBuZXcgQk4oMjQpO1xudmFyIEVMRVZFTiA9IG5ldyBCTigxMSk7XG52YXIgVEVOID0gbmV3IEJOKDEwKTtcbnZhciBUSFJFRSA9IG5ldyBCTigzKTtcbnZhciBTRVZFTiA9IG5ldyBCTig3KTtcbnZhciBwcmltZXMgPSByZXF1aXJlKCcuL2dlbmVyYXRlUHJpbWUnKTtcbnZhciByYW5kb21CeXRlcyA9IHJlcXVpcmUoJ3JhbmRvbWJ5dGVzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IERIO1xuXG5mdW5jdGlvbiBzZXRQdWJsaWNLZXkocHViLCBlbmMpIHtcbiAgZW5jID0gZW5jIHx8ICd1dGY4JztcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocHViKSkge1xuICAgIHB1YiA9IG5ldyBCdWZmZXIocHViLCBlbmMpO1xuICB9XG4gIHRoaXMuX3B1YiA9IG5ldyBCTihwdWIpO1xuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gc2V0UHJpdmF0ZUtleShwcml2LCBlbmMpIHtcbiAgZW5jID0gZW5jIHx8ICd1dGY4JztcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocHJpdikpIHtcbiAgICBwcml2ID0gbmV3IEJ1ZmZlcihwcml2LCBlbmMpO1xuICB9XG4gIHRoaXMuX3ByaXYgPSBuZXcgQk4ocHJpdik7XG4gIHJldHVybiB0aGlzO1xufVxuXG52YXIgcHJpbWVDYWNoZSA9IHt9O1xuZnVuY3Rpb24gY2hlY2tQcmltZShwcmltZSwgZ2VuZXJhdG9yKSB7XG4gIHZhciBnZW4gPSBnZW5lcmF0b3IudG9TdHJpbmcoJ2hleCcpO1xuICB2YXIgaGV4ID0gW2dlbiwgcHJpbWUudG9TdHJpbmcoMTYpXS5qb2luKCdfJyk7XG4gIGlmIChoZXggaW4gcHJpbWVDYWNoZSkge1xuICAgIHJldHVybiBwcmltZUNhY2hlW2hleF07XG4gIH1cbiAgdmFyIGVycm9yID0gMDtcblxuICBpZiAocHJpbWUuaXNFdmVuKCkgfHxcbiAgICAhcHJpbWVzLnNpbXBsZVNpZXZlIHx8XG4gICAgIXByaW1lcy5mZXJtYXRUZXN0KHByaW1lKSB8fFxuICAgICFtaWxsZXJSYWJpbi50ZXN0KHByaW1lKSkge1xuICAgIC8vbm90IGEgcHJpbWUgc28gKzFcbiAgICBlcnJvciArPSAxO1xuXG4gICAgaWYgKGdlbiA9PT0gJzAyJyB8fCBnZW4gPT09ICcwNScpIHtcbiAgICAgIC8vIHdlJ2QgYmUgYWJsZSB0byBjaGVjayB0aGUgZ2VuZXJhdG9yXG4gICAgICAvLyBpdCB3b3VsZCBmYWlsIHNvICs4XG4gICAgICBlcnJvciArPSA4O1xuICAgIH0gZWxzZSB7XG4gICAgICAvL3dlIHdvdWxkbid0IGJlIGFibGUgdG8gdGVzdCB0aGUgZ2VuZXJhdG9yXG4gICAgICAvLyBzbyArNFxuICAgICAgZXJyb3IgKz0gNDtcbiAgICB9XG4gICAgcHJpbWVDYWNoZVtoZXhdID0gZXJyb3I7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG4gIGlmICghbWlsbGVyUmFiaW4udGVzdChwcmltZS5zaHJuKDEpKSkge1xuICAgIC8vbm90IGEgc2FmZSBwcmltZVxuICAgIGVycm9yICs9IDI7XG4gIH1cbiAgdmFyIHJlbTtcbiAgc3dpdGNoIChnZW4pIHtcbiAgICBjYXNlICcwMic6XG4gICAgICBpZiAocHJpbWUubW9kKFRXRU5UWUZPVVIpLmNtcChFTEVWRU4pKSB7XG4gICAgICAgIC8vIHVuc3VpZGFibGUgZ2VuZXJhdG9yXG4gICAgICAgIGVycm9yICs9IDg7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICcwNSc6XG4gICAgICByZW0gPSBwcmltZS5tb2QoVEVOKTtcbiAgICAgIGlmIChyZW0uY21wKFRIUkVFKSAmJiByZW0uY21wKFNFVkVOKSkge1xuICAgICAgICAvLyBwcmltZSBtb2QgMTAgbmVlZHMgdG8gZXF1YWwgMyBvciA3XG4gICAgICAgIGVycm9yICs9IDg7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgZXJyb3IgKz0gNDtcbiAgfVxuICBwcmltZUNhY2hlW2hleF0gPSBlcnJvcjtcbiAgcmV0dXJuIGVycm9yO1xufVxuXG5mdW5jdGlvbiBESChwcmltZSwgZ2VuZXJhdG9yLCBtYWxsZWFibGUpIHtcbiAgdGhpcy5zZXRHZW5lcmF0b3IoZ2VuZXJhdG9yKTtcbiAgdGhpcy5fX3ByaW1lID0gbmV3IEJOKHByaW1lKTtcbiAgdGhpcy5fcHJpbWUgPSBCTi5tb250KHRoaXMuX19wcmltZSk7XG4gIHRoaXMuX3ByaW1lTGVuID0gcHJpbWUubGVuZ3RoO1xuICB0aGlzLl9wdWIgPSB1bmRlZmluZWQ7XG4gIHRoaXMuX3ByaXYgPSB1bmRlZmluZWQ7XG4gIHRoaXMuX3ByaW1lQ29kZSA9IHVuZGVmaW5lZDtcbiAgaWYgKG1hbGxlYWJsZSkge1xuICAgIHRoaXMuc2V0UHVibGljS2V5ID0gc2V0UHVibGljS2V5O1xuICAgIHRoaXMuc2V0UHJpdmF0ZUtleSA9IHNldFByaXZhdGVLZXk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fcHJpbWVDb2RlID0gODtcbiAgfVxufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KERILnByb3RvdHlwZSwgJ3ZlcmlmeUVycm9yJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX3ByaW1lQ29kZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuX3ByaW1lQ29kZSA9IGNoZWNrUHJpbWUodGhpcy5fX3ByaW1lLCB0aGlzLl9fZ2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ByaW1lQ29kZTtcbiAgfVxufSk7XG5ESC5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzID0gZnVuY3Rpb24gKCkge1xuICBpZiAoIXRoaXMuX3ByaXYpIHtcbiAgICB0aGlzLl9wcml2ID0gbmV3IEJOKHJhbmRvbUJ5dGVzKHRoaXMuX3ByaW1lTGVuKSk7XG4gIH1cbiAgdGhpcy5fcHViID0gdGhpcy5fZ2VuLnRvUmVkKHRoaXMuX3ByaW1lKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpO1xuICByZXR1cm4gdGhpcy5nZXRQdWJsaWNLZXkoKTtcbn07XG5cbkRILnByb3RvdHlwZS5jb21wdXRlU2VjcmV0ID0gZnVuY3Rpb24gKG90aGVyKSB7XG4gIG90aGVyID0gbmV3IEJOKG90aGVyKTtcbiAgb3RoZXIgPSBvdGhlci50b1JlZCh0aGlzLl9wcmltZSk7XG4gIHZhciBzZWNyZXQgPSBvdGhlci5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpO1xuICB2YXIgb3V0ID0gbmV3IEJ1ZmZlcihzZWNyZXQudG9BcnJheSgpKTtcbiAgdmFyIHByaW1lID0gdGhpcy5nZXRQcmltZSgpO1xuICBpZiAob3V0Lmxlbmd0aCA8IHByaW1lLmxlbmd0aCkge1xuICAgIHZhciBmcm9udCA9IG5ldyBCdWZmZXIocHJpbWUubGVuZ3RoIC0gb3V0Lmxlbmd0aCk7XG4gICAgZnJvbnQuZmlsbCgwKTtcbiAgICBvdXQgPSBCdWZmZXIuY29uY2F0KFtmcm9udCwgb3V0XSk7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn07XG5cbkRILnByb3RvdHlwZS5nZXRQdWJsaWNLZXkgPSBmdW5jdGlvbiBnZXRQdWJsaWNLZXkoZW5jKSB7XG4gIHJldHVybiBmb3JtYXRSZXR1cm5WYWx1ZSh0aGlzLl9wdWIsIGVuYyk7XG59O1xuXG5ESC5wcm90b3R5cGUuZ2V0UHJpdmF0ZUtleSA9IGZ1bmN0aW9uIGdldFByaXZhdGVLZXkoZW5jKSB7XG4gIHJldHVybiBmb3JtYXRSZXR1cm5WYWx1ZSh0aGlzLl9wcml2LCBlbmMpO1xufTtcblxuREgucHJvdG90eXBlLmdldFByaW1lID0gZnVuY3Rpb24gKGVuYykge1xuICByZXR1cm4gZm9ybWF0UmV0dXJuVmFsdWUodGhpcy5fX3ByaW1lLCBlbmMpO1xufTtcblxuREgucHJvdG90eXBlLmdldEdlbmVyYXRvciA9IGZ1bmN0aW9uIChlbmMpIHtcbiAgcmV0dXJuIGZvcm1hdFJldHVyblZhbHVlKHRoaXMuX2dlbiwgZW5jKTtcbn07XG5cbkRILnByb3RvdHlwZS5zZXRHZW5lcmF0b3IgPSBmdW5jdGlvbiAoZ2VuLCBlbmMpIHtcbiAgZW5jID0gZW5jIHx8ICd1dGY4JztcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoZ2VuKSkge1xuICAgIGdlbiA9IG5ldyBCdWZmZXIoZ2VuLCBlbmMpO1xuICB9XG4gIHRoaXMuX19nZW4gPSBnZW47XG4gIHRoaXMuX2dlbiA9IG5ldyBCTihnZW4pO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIGZvcm1hdFJldHVyblZhbHVlKGJuLCBlbmMpIHtcbiAgdmFyIGJ1ZiA9IG5ldyBCdWZmZXIoYm4udG9BcnJheSgpKTtcbiAgaWYgKCFlbmMpIHtcbiAgICByZXR1cm4gYnVmO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBidWYudG9TdHJpbmcoZW5jKTtcbiAgfVxufVxuIiwidmFyIHJhbmRvbUJ5dGVzID0gcmVxdWlyZSgncmFuZG9tYnl0ZXMnKTtcbm1vZHVsZS5leHBvcnRzID0gZmluZFByaW1lO1xuZmluZFByaW1lLnNpbXBsZVNpZXZlID0gc2ltcGxlU2lldmU7XG5maW5kUHJpbWUuZmVybWF0VGVzdCA9IGZlcm1hdFRlc3Q7XG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIFRXRU5UWUZPVVIgPSBuZXcgQk4oMjQpO1xudmFyIE1pbGxlclJhYmluID0gcmVxdWlyZSgnbWlsbGVyLXJhYmluJyk7XG52YXIgbWlsbGVyUmFiaW4gPSBuZXcgTWlsbGVyUmFiaW4oKTtcbnZhciBPTkUgPSBuZXcgQk4oMSk7XG52YXIgVFdPID0gbmV3IEJOKDIpO1xudmFyIEZJVkUgPSBuZXcgQk4oNSk7XG52YXIgU0lYVEVFTiA9IG5ldyBCTigxNik7XG52YXIgRUlHSFQgPSBuZXcgQk4oOCk7XG52YXIgVEVOID0gbmV3IEJOKDEwKTtcbnZhciBUSFJFRSA9IG5ldyBCTigzKTtcbnZhciBTRVZFTiA9IG5ldyBCTig3KTtcbnZhciBFTEVWRU4gPSBuZXcgQk4oMTEpO1xudmFyIEZPVVIgPSBuZXcgQk4oNCk7XG52YXIgVFdFTFZFID0gbmV3IEJOKDEyKTtcbnZhciBwcmltZXMgPSBudWxsO1xuXG5mdW5jdGlvbiBfZ2V0UHJpbWVzKCkge1xuICBpZiAocHJpbWVzICE9PSBudWxsKVxuICAgIHJldHVybiBwcmltZXM7XG5cbiAgdmFyIGxpbWl0ID0gMHgxMDAwMDA7XG4gIHZhciByZXMgPSBbXTtcbiAgcmVzWzBdID0gMjtcbiAgZm9yICh2YXIgaSA9IDEsIGsgPSAzOyBrIDwgbGltaXQ7IGsgKz0gMikge1xuICAgIHZhciBzcXJ0ID0gTWF0aC5jZWlsKE1hdGguc3FydChrKSk7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBpICYmIHJlc1tqXSA8PSBzcXJ0OyBqKyspXG4gICAgICBpZiAoayAlIHJlc1tqXSA9PT0gMClcbiAgICAgICAgYnJlYWs7XG5cbiAgICBpZiAoaSAhPT0gaiAmJiByZXNbal0gPD0gc3FydClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgcmVzW2krK10gPSBrO1xuICB9XG4gIHByaW1lcyA9IHJlcztcbiAgcmV0dXJuIHJlcztcbn1cblxuZnVuY3Rpb24gc2ltcGxlU2lldmUocCkge1xuICB2YXIgcHJpbWVzID0gX2dldFByaW1lcygpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJpbWVzLmxlbmd0aDsgaSsrKVxuICAgIGlmIChwLm1vZG4ocHJpbWVzW2ldKSA9PT0gMCkge1xuICAgICAgaWYgKHAuY21wbihwcmltZXNbaV0pID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZmVybWF0VGVzdChwKSB7XG4gIHZhciByZWQgPSBCTi5tb250KHApO1xuICByZXR1cm4gVFdPLnRvUmVkKHJlZCkucmVkUG93KHAuc3VibigxKSkuZnJvbVJlZCgpLmNtcG4oMSkgPT09IDA7XG59XG5cbmZ1bmN0aW9uIGZpbmRQcmltZShiaXRzLCBnZW4pIHtcbiAgaWYgKGJpdHMgPCAxNikge1xuICAgIC8vIHRoaXMgaXMgd2hhdCBvcGVuc3NsIGRvZXNcbiAgICBpZiAoZ2VuID09PSAyIHx8IGdlbiA9PT0gNSkge1xuICAgICAgcmV0dXJuIG5ldyBCTihbMHg4YywgMHg3Yl0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IEJOKFsweDhjLCAweDI3XSk7XG4gICAgfVxuICB9XG4gIGdlbiA9IG5ldyBCTihnZW4pO1xuXG4gIHZhciBudW0sIG4yO1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbnVtID0gbmV3IEJOKHJhbmRvbUJ5dGVzKE1hdGguY2VpbChiaXRzIC8gOCkpKTtcbiAgICB3aGlsZSAobnVtLmJpdExlbmd0aCgpID4gYml0cykge1xuICAgICAgbnVtLmlzaHJuKDEpO1xuICAgIH1cbiAgICBpZiAobnVtLmlzRXZlbigpKSB7XG4gICAgICBudW0uaWFkZChPTkUpO1xuICAgIH1cbiAgICBpZiAoIW51bS50ZXN0bigxKSkge1xuICAgICAgbnVtLmlhZGQoVFdPKTtcbiAgICB9XG4gICAgaWYgKCFnZW4uY21wKFRXTykpIHtcbiAgICAgIHdoaWxlIChudW0ubW9kKFRXRU5UWUZPVVIpLmNtcChFTEVWRU4pKSB7XG4gICAgICAgIG51bS5pYWRkKEZPVVIpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWdlbi5jbXAoRklWRSkpIHtcbiAgICAgIHdoaWxlIChudW0ubW9kKFRFTikuY21wKFRIUkVFKSkge1xuICAgICAgICBudW0uaWFkZChGT1VSKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbjIgPSBudW0uc2hybigxKTtcbiAgICBpZiAoc2ltcGxlU2lldmUobjIpICYmIHNpbXBsZVNpZXZlKG51bSkgJiZcbiAgICAgIGZlcm1hdFRlc3QobjIpICYmIGZlcm1hdFRlc3QobnVtKSAmJlxuICAgICAgbWlsbGVyUmFiaW4udGVzdChuMikgJiYgbWlsbGVyUmFiaW4udGVzdChudW0pKSB7XG4gICAgICByZXR1cm4gbnVtO1xuICAgIH1cbiAgfVxuXG59XG4iLCJtb2R1bGUuZXhwb3J0cz17XG4gICAgXCJtb2RwMVwiOiB7XG4gICAgICAgIFwiZ2VuXCI6IFwiMDJcIixcbiAgICAgICAgXCJwcmltZVwiOiBcImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2M2EzNjIwZmZmZmZmZmZmZmZmZmZmZlwiXG4gICAgfSxcbiAgICBcIm1vZHAyXCI6IHtcbiAgICAgICAgXCJnZW5cIjogXCIwMlwiLFxuICAgICAgICBcInByaW1lXCI6IFwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTY1MzgxZmZmZmZmZmZmZmZmZmZmZlwiXG4gICAgfSxcbiAgICBcIm1vZHA1XCI6IHtcbiAgICAgICAgXCJnZW5cIjogXCIwMlwiLFxuICAgICAgICBcInByaW1lXCI6IFwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2EyMzczMjdmZmZmZmZmZmZmZmZmZmZmXCJcbiAgICB9LFxuICAgIFwibW9kcDE0XCI6IHtcbiAgICAgICAgXCJnZW5cIjogXCIwMlwiLFxuICAgICAgICBcInByaW1lXCI6IFwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFjYWE2OGZmZmZmZmZmZmZmZmZmZmZcIlxuICAgIH0sXG4gICAgXCJtb2RwMTVcIjoge1xuICAgICAgICBcImdlblwiOiBcIjAyXCIsXG4gICAgICAgIFwicHJpbWVcIjogXCJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTNhZDJjYWZmZmZmZmZmZmZmZmZmZmZcIlxuICAgIH0sXG4gICAgXCJtb2RwMTZcIjoge1xuICAgICAgICBcImdlblwiOiBcIjAyXCIsXG4gICAgICAgIFwicHJpbWVcIjogXCJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwNjMxOTlmZmZmZmZmZmZmZmZmZmZmXCJcbiAgICB9LFxuICAgIFwibW9kcDE3XCI6IHtcbiAgICAgICAgXCJnZW5cIjogXCIwMlwiLFxuICAgICAgICBcInByaW1lXCI6IFwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDI4NDkyMzZjM2ZhYjRkMjdjNzAyNmMxZDRkY2IyNjAyNjQ2ZGVjOTc1MWU3NjNkYmEzN2JkZjhmZjk0MDZhZDllNTMwZWU1ZGIzODJmNDEzMDAxYWViMDZhNTNlZDkwMjdkODMxMTc5NzI3YjA4NjVhODkxOGRhM2VkYmViY2Y5YjE0ZWQ0NGNlNmNiYWNlZDRiYjFiZGI3ZjE0NDdlNmNjMjU0YjMzMjA1MTUxMmJkN2FmNDI2ZmI4ZjQwMTM3OGNkMmJmNTk4M2NhMDFjNjRiOTJlY2YwMzJlYTE1ZDE3MjFkMDNmNDgyZDdjZTZlNzRmZWY2ZDU1ZTcwMmY0Njk4MGM4MmI1YTg0MDMxOTAwYjFjOWU1OWU3Yzk3ZmJlYzdlOGYzMjNhOTdhN2UzNmNjODhiZTBmMWQ0NWI3ZmY1ODVhYzU0YmQ0MDdiMjJiNDE1NGFhY2M4ZjZkN2ViZjQ4ZTFkODE0Y2M1ZWQyMGY4MDM3ZTBhNzk3MTVlZWYyOWJlMzI4MDZhMWQ1OGJiN2M1ZGE3NmY1NTBhYTNkOGExZmJmZjBlYjE5Y2NiMWEzMTNkNTVjZGE1NmM5ZWMyZWYyOTYzMjM4N2ZlOGQ3NmUzYzA0NjgwNDNlOGY2NjNmNDg2MGVlMTJiZjJkNWIwYjc0NzRkNmU2OTRmOTFlNmRjYzQwMjRmZmZmZmZmZmZmZmZmZmZmXCJcbiAgICB9LFxuICAgIFwibW9kcDE4XCI6IHtcbiAgICAgICAgXCJnZW5cIjogXCIwMlwiLFxuICAgICAgICBcInByaW1lXCI6IFwiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDI4NDkyMzZjM2ZhYjRkMjdjNzAyNmMxZDRkY2IyNjAyNjQ2ZGVjOTc1MWU3NjNkYmEzN2JkZjhmZjk0MDZhZDllNTMwZWU1ZGIzODJmNDEzMDAxYWViMDZhNTNlZDkwMjdkODMxMTc5NzI3YjA4NjVhODkxOGRhM2VkYmViY2Y5YjE0ZWQ0NGNlNmNiYWNlZDRiYjFiZGI3ZjE0NDdlNmNjMjU0YjMzMjA1MTUxMmJkN2FmNDI2ZmI4ZjQwMTM3OGNkMmJmNTk4M2NhMDFjNjRiOTJlY2YwMzJlYTE1ZDE3MjFkMDNmNDgyZDdjZTZlNzRmZWY2ZDU1ZTcwMmY0Njk4MGM4MmI1YTg0MDMxOTAwYjFjOWU1OWU3Yzk3ZmJlYzdlOGYzMjNhOTdhN2UzNmNjODhiZTBmMWQ0NWI3ZmY1ODVhYzU0YmQ0MDdiMjJiNDE1NGFhY2M4ZjZkN2ViZjQ4ZTFkODE0Y2M1ZWQyMGY4MDM3ZTBhNzk3MTVlZWYyOWJlMzI4MDZhMWQ1OGJiN2M1ZGE3NmY1NTBhYTNkOGExZmJmZjBlYjE5Y2NiMWEzMTNkNTVjZGE1NmM5ZWMyZWYyOTYzMjM4N2ZlOGQ3NmUzYzA0NjgwNDNlOGY2NjNmNDg2MGVlMTJiZjJkNWIwYjc0NzRkNmU2OTRmOTFlNmRiZTExNTk3NGEzOTI2ZjEyZmVlNWU0Mzg3NzdjYjZhOTMyZGY4Y2Q4YmVjNGQwNzNiOTMxYmEzYmM4MzJiNjhkOWRkMzAwNzQxZmE3YmY4YWZjNDdlZDI1NzZmNjkzNmJhNDI0NjYzYWFiNjM5YzVhZTRmNTY4MzQyM2I0NzQyYmYxYzk3ODIzOGYxNmNiZTM5ZDY1MmRlM2ZkYjhiZWZjODQ4YWQ5MjIyMjJlMDRhNDAzN2MwNzEzZWI1N2E4MWEyM2YwYzczNDczZmM2NDZjZWEzMDZiNGJjYmM4ODYyZjgzODVkZGZhOWQ0YjdmYTJjMDg3ZTg3OTY4MzMwM2VkNWJkZDNhMDYyYjNjZjViM2EyNzhhNjZkMmExM2Y4M2Y0NGY4MmRkZjMxMGVlMDc0YWI2YTM2NDU5N2U4OTlhMDI1NWRjMTY0ZjMxY2M1MDg0Njg1MWRmOWFiNDgxOTVkZWQ3ZWExYjFkNTEwYmQ3ZWU3NGQ3M2ZhZjM2YmMzMWVjZmEyNjgzNTkwNDZmNGViODc5ZjkyNDAwOTQzOGI0ODFjNmNkNzg4OWEwMDJlZDVlZTM4MmJjOTE5MGRhNmZjMDI2ZTQ3OTU1OGU0NDc1Njc3ZTlhYTllMzA1MGUyNzY1Njk0ZGZjODFmNTZlODgwYjk2ZTcxNjBjOTgwZGQ5OGVkZDNkZmZmZmZmZmZmZmZmZmZmZmZcIlxuICAgIH1cbn0iLCIndXNlIHN0cmljdCc7XG5cbnZhciBlbGxpcHRpYyA9IGV4cG9ydHM7XG5cbmVsbGlwdGljLnZlcnNpb24gPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuZWxsaXB0aWMudXRpbHMgPSByZXF1aXJlKCcuL2VsbGlwdGljL3V0aWxzJyk7XG5lbGxpcHRpYy5yYW5kID0gcmVxdWlyZSgnYnJvcmFuZCcpO1xuZWxsaXB0aWMuY3VydmUgPSByZXF1aXJlKCcuL2VsbGlwdGljL2N1cnZlJyk7XG5lbGxpcHRpYy5jdXJ2ZXMgPSByZXF1aXJlKCcuL2VsbGlwdGljL2N1cnZlcycpO1xuXG4vLyBQcm90b2NvbHNcbmVsbGlwdGljLmVjID0gcmVxdWlyZSgnLi9lbGxpcHRpYy9lYycpO1xuZWxsaXB0aWMuZWRkc2EgPSByZXF1aXJlKCcuL2VsbGlwdGljL2VkZHNhJyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIHV0aWxzID0gZWxsaXB0aWMudXRpbHM7XG52YXIgZ2V0TkFGID0gdXRpbHMuZ2V0TkFGO1xudmFyIGdldEpTRiA9IHV0aWxzLmdldEpTRjtcbnZhciBhc3NlcnQgPSB1dGlscy5hc3NlcnQ7XG5cbmZ1bmN0aW9uIEJhc2VDdXJ2ZSh0eXBlLCBjb25mKSB7XG4gIHRoaXMudHlwZSA9IHR5cGU7XG4gIHRoaXMucCA9IG5ldyBCTihjb25mLnAsIDE2KTtcblxuICAvLyBVc2UgTW9udGdvbWVyeSwgd2hlbiB0aGVyZSBpcyBubyBmYXN0IHJlZHVjdGlvbiBmb3IgdGhlIHByaW1lXG4gIHRoaXMucmVkID0gY29uZi5wcmltZSA/IEJOLnJlZChjb25mLnByaW1lKSA6IEJOLm1vbnQodGhpcy5wKTtcblxuICAvLyBVc2VmdWwgZm9yIG1hbnkgY3VydmVzXG4gIHRoaXMuemVybyA9IG5ldyBCTigwKS50b1JlZCh0aGlzLnJlZCk7XG4gIHRoaXMub25lID0gbmV3IEJOKDEpLnRvUmVkKHRoaXMucmVkKTtcbiAgdGhpcy50d28gPSBuZXcgQk4oMikudG9SZWQodGhpcy5yZWQpO1xuXG4gIC8vIEN1cnZlIGNvbmZpZ3VyYXRpb24sIG9wdGlvbmFsXG4gIHRoaXMubiA9IGNvbmYubiAmJiBuZXcgQk4oY29uZi5uLCAxNik7XG4gIHRoaXMuZyA9IGNvbmYuZyAmJiB0aGlzLnBvaW50RnJvbUpTT04oY29uZi5nLCBjb25mLmdSZWQpO1xuXG4gIC8vIFRlbXBvcmFyeSBhcnJheXNcbiAgdGhpcy5fd25hZlQxID0gbmV3IEFycmF5KDQpO1xuICB0aGlzLl93bmFmVDIgPSBuZXcgQXJyYXkoNCk7XG4gIHRoaXMuX3duYWZUMyA9IG5ldyBBcnJheSg0KTtcbiAgdGhpcy5fd25hZlQ0ID0gbmV3IEFycmF5KDQpO1xuXG4gIC8vIEdlbmVyYWxpemVkIEdyZWcgTWF4d2VsbCdzIHRyaWNrXG4gIHZhciBhZGp1c3RDb3VudCA9IHRoaXMubiAmJiB0aGlzLnAuZGl2KHRoaXMubik7XG4gIGlmICghYWRqdXN0Q291bnQgfHwgYWRqdXN0Q291bnQuY21wbigxMDApID4gMCkge1xuICAgIHRoaXMucmVkTiA9IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fbWF4d2VsbFRyaWNrID0gdHJ1ZTtcbiAgICB0aGlzLnJlZE4gPSB0aGlzLm4udG9SZWQodGhpcy5yZWQpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IEJhc2VDdXJ2ZTtcblxuQmFzZUN1cnZlLnByb3RvdHlwZS5wb2ludCA9IGZ1bmN0aW9uIHBvaW50KCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xufTtcblxuQmFzZUN1cnZlLnByb3RvdHlwZS52YWxpZGF0ZSA9IGZ1bmN0aW9uIHZhbGlkYXRlKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xufTtcblxuQmFzZUN1cnZlLnByb3RvdHlwZS5fZml4ZWROYWZNdWwgPSBmdW5jdGlvbiBfZml4ZWROYWZNdWwocCwgaykge1xuICBhc3NlcnQocC5wcmVjb21wdXRlZCk7XG4gIHZhciBkb3VibGVzID0gcC5fZ2V0RG91YmxlcygpO1xuXG4gIHZhciBuYWYgPSBnZXROQUYoaywgMSk7XG4gIHZhciBJID0gKDEgPDwgKGRvdWJsZXMuc3RlcCArIDEpKSAtIChkb3VibGVzLnN0ZXAgJSAyID09PSAwID8gMiA6IDEpO1xuICBJIC89IDM7XG5cbiAgLy8gVHJhbnNsYXRlIGludG8gbW9yZSB3aW5kb3dlZCBmb3JtXG4gIHZhciByZXByID0gW107XG4gIGZvciAodmFyIGogPSAwOyBqIDwgbmFmLmxlbmd0aDsgaiArPSBkb3VibGVzLnN0ZXApIHtcbiAgICB2YXIgbmFmVyA9IDA7XG4gICAgZm9yICh2YXIgayA9IGogKyBkb3VibGVzLnN0ZXAgLSAxOyBrID49IGo7IGstLSlcbiAgICAgIG5hZlcgPSAobmFmVyA8PCAxKSArIG5hZltrXTtcbiAgICByZXByLnB1c2gobmFmVyk7XG4gIH1cblxuICB2YXIgYSA9IHRoaXMuanBvaW50KG51bGwsIG51bGwsIG51bGwpO1xuICB2YXIgYiA9IHRoaXMuanBvaW50KG51bGwsIG51bGwsIG51bGwpO1xuICBmb3IgKHZhciBpID0gSTsgaSA+IDA7IGktLSkge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcmVwci5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIG5hZlcgPSByZXByW2pdO1xuICAgICAgaWYgKG5hZlcgPT09IGkpXG4gICAgICAgIGIgPSBiLm1peGVkQWRkKGRvdWJsZXMucG9pbnRzW2pdKTtcbiAgICAgIGVsc2UgaWYgKG5hZlcgPT09IC1pKVxuICAgICAgICBiID0gYi5taXhlZEFkZChkb3VibGVzLnBvaW50c1tqXS5uZWcoKSk7XG4gICAgfVxuICAgIGEgPSBhLmFkZChiKTtcbiAgfVxuICByZXR1cm4gYS50b1AoKTtcbn07XG5cbkJhc2VDdXJ2ZS5wcm90b3R5cGUuX3duYWZNdWwgPSBmdW5jdGlvbiBfd25hZk11bChwLCBrKSB7XG4gIHZhciB3ID0gNDtcblxuICAvLyBQcmVjb21wdXRlIHdpbmRvd1xuICB2YXIgbmFmUG9pbnRzID0gcC5fZ2V0TkFGUG9pbnRzKHcpO1xuICB3ID0gbmFmUG9pbnRzLnduZDtcbiAgdmFyIHduZCA9IG5hZlBvaW50cy5wb2ludHM7XG5cbiAgLy8gR2V0IE5BRiBmb3JtXG4gIHZhciBuYWYgPSBnZXROQUYoaywgdyk7XG5cbiAgLy8gQWRkIGB0aGlzYCooTisxKSBmb3IgZXZlcnkgdy1OQUYgaW5kZXhcbiAgdmFyIGFjYyA9IHRoaXMuanBvaW50KG51bGwsIG51bGwsIG51bGwpO1xuICBmb3IgKHZhciBpID0gbmFmLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgLy8gQ291bnQgemVyb2VzXG4gICAgZm9yICh2YXIgayA9IDA7IGkgPj0gMCAmJiBuYWZbaV0gPT09IDA7IGktLSlcbiAgICAgIGsrKztcbiAgICBpZiAoaSA+PSAwKVxuICAgICAgaysrO1xuICAgIGFjYyA9IGFjYy5kYmxwKGspO1xuXG4gICAgaWYgKGkgPCAwKVxuICAgICAgYnJlYWs7XG4gICAgdmFyIHogPSBuYWZbaV07XG4gICAgYXNzZXJ0KHogIT09IDApO1xuICAgIGlmIChwLnR5cGUgPT09ICdhZmZpbmUnKSB7XG4gICAgICAvLyBKICstIFBcbiAgICAgIGlmICh6ID4gMClcbiAgICAgICAgYWNjID0gYWNjLm1peGVkQWRkKHduZFsoeiAtIDEpID4+IDFdKTtcbiAgICAgIGVsc2VcbiAgICAgICAgYWNjID0gYWNjLm1peGVkQWRkKHduZFsoLXogLSAxKSA+PiAxXS5uZWcoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEogKy0gSlxuICAgICAgaWYgKHogPiAwKVxuICAgICAgICBhY2MgPSBhY2MuYWRkKHduZFsoeiAtIDEpID4+IDFdKTtcbiAgICAgIGVsc2VcbiAgICAgICAgYWNjID0gYWNjLmFkZCh3bmRbKC16IC0gMSkgPj4gMV0ubmVnKCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcC50eXBlID09PSAnYWZmaW5lJyA/IGFjYy50b1AoKSA6IGFjYztcbn07XG5cbkJhc2VDdXJ2ZS5wcm90b3R5cGUuX3duYWZNdWxBZGQgPSBmdW5jdGlvbiBfd25hZk11bEFkZChkZWZXLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphY29iaWFuUmVzdWx0KSB7XG4gIHZhciB3bmRXaWR0aCA9IHRoaXMuX3duYWZUMTtcbiAgdmFyIHduZCA9IHRoaXMuX3duYWZUMjtcbiAgdmFyIG5hZiA9IHRoaXMuX3duYWZUMztcblxuICAvLyBGaWxsIGFsbCBhcnJheXNcbiAgdmFyIG1heCA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgcCA9IHBvaW50c1tpXTtcbiAgICB2YXIgbmFmUG9pbnRzID0gcC5fZ2V0TkFGUG9pbnRzKGRlZlcpO1xuICAgIHduZFdpZHRoW2ldID0gbmFmUG9pbnRzLnduZDtcbiAgICB3bmRbaV0gPSBuYWZQb2ludHMucG9pbnRzO1xuICB9XG5cbiAgLy8gQ29tYiBzbWFsbCB3aW5kb3cgTkFGc1xuICBmb3IgKHZhciBpID0gbGVuIC0gMTsgaSA+PSAxOyBpIC09IDIpIHtcbiAgICB2YXIgYSA9IGkgLSAxO1xuICAgIHZhciBiID0gaTtcbiAgICBpZiAod25kV2lkdGhbYV0gIT09IDEgfHwgd25kV2lkdGhbYl0gIT09IDEpIHtcbiAgICAgIG5hZlthXSA9IGdldE5BRihjb2VmZnNbYV0sIHduZFdpZHRoW2FdKTtcbiAgICAgIG5hZltiXSA9IGdldE5BRihjb2VmZnNbYl0sIHduZFdpZHRoW2JdKTtcbiAgICAgIG1heCA9IE1hdGgubWF4KG5hZlthXS5sZW5ndGgsIG1heCk7XG4gICAgICBtYXggPSBNYXRoLm1heChuYWZbYl0ubGVuZ3RoLCBtYXgpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIGNvbWIgPSBbXG4gICAgICBwb2ludHNbYV0sIC8qIDEgKi9cbiAgICAgIG51bGwsIC8qIDMgKi9cbiAgICAgIG51bGwsIC8qIDUgKi9cbiAgICAgIHBvaW50c1tiXSAvKiA3ICovXG4gICAgXTtcblxuICAgIC8vIFRyeSB0byBhdm9pZCBQcm9qZWN0aXZlIHBvaW50cywgaWYgcG9zc2libGVcbiAgICBpZiAocG9pbnRzW2FdLnkuY21wKHBvaW50c1tiXS55KSA9PT0gMCkge1xuICAgICAgY29tYlsxXSA9IHBvaW50c1thXS5hZGQocG9pbnRzW2JdKTtcbiAgICAgIGNvbWJbMl0gPSBwb2ludHNbYV0udG9KKCkubWl4ZWRBZGQocG9pbnRzW2JdLm5lZygpKTtcbiAgICB9IGVsc2UgaWYgKHBvaW50c1thXS55LmNtcChwb2ludHNbYl0ueS5yZWROZWcoKSkgPT09IDApIHtcbiAgICAgIGNvbWJbMV0gPSBwb2ludHNbYV0udG9KKCkubWl4ZWRBZGQocG9pbnRzW2JdKTtcbiAgICAgIGNvbWJbMl0gPSBwb2ludHNbYV0uYWRkKHBvaW50c1tiXS5uZWcoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbWJbMV0gPSBwb2ludHNbYV0udG9KKCkubWl4ZWRBZGQocG9pbnRzW2JdKTtcbiAgICAgIGNvbWJbMl0gPSBwb2ludHNbYV0udG9KKCkubWl4ZWRBZGQocG9pbnRzW2JdLm5lZygpKTtcbiAgICB9XG5cbiAgICB2YXIgaW5kZXggPSBbXG4gICAgICAtMywgLyogLTEgLTEgKi9cbiAgICAgIC0xLCAvKiAtMSAwICovXG4gICAgICAtNSwgLyogLTEgMSAqL1xuICAgICAgLTcsIC8qIDAgLTEgKi9cbiAgICAgIDAsIC8qIDAgMCAqL1xuICAgICAgNywgLyogMCAxICovXG4gICAgICA1LCAvKiAxIC0xICovXG4gICAgICAxLCAvKiAxIDAgKi9cbiAgICAgIDMgIC8qIDEgMSAqL1xuICAgIF07XG5cbiAgICB2YXIganNmID0gZ2V0SlNGKGNvZWZmc1thXSwgY29lZmZzW2JdKTtcbiAgICBtYXggPSBNYXRoLm1heChqc2ZbMF0ubGVuZ3RoLCBtYXgpO1xuICAgIG5hZlthXSA9IG5ldyBBcnJheShtYXgpO1xuICAgIG5hZltiXSA9IG5ldyBBcnJheShtYXgpO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgbWF4OyBqKyspIHtcbiAgICAgIHZhciBqYSA9IGpzZlswXVtqXSB8IDA7XG4gICAgICB2YXIgamIgPSBqc2ZbMV1bal0gfCAwO1xuXG4gICAgICBuYWZbYV1bal0gPSBpbmRleFsoamEgKyAxKSAqIDMgKyAoamIgKyAxKV07XG4gICAgICBuYWZbYl1bal0gPSAwO1xuICAgICAgd25kW2FdID0gY29tYjtcbiAgICB9XG4gIH1cblxuICB2YXIgYWNjID0gdGhpcy5qcG9pbnQobnVsbCwgbnVsbCwgbnVsbCk7XG4gIHZhciB0bXAgPSB0aGlzLl93bmFmVDQ7XG4gIGZvciAodmFyIGkgPSBtYXg7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIGsgPSAwO1xuXG4gICAgd2hpbGUgKGkgPj0gMCkge1xuICAgICAgdmFyIHplcm8gPSB0cnVlO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW47IGorKykge1xuICAgICAgICB0bXBbal0gPSBuYWZbal1baV0gfCAwO1xuICAgICAgICBpZiAodG1wW2pdICE9PSAwKVxuICAgICAgICAgIHplcm8gPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghemVybylcbiAgICAgICAgYnJlYWs7XG4gICAgICBrKys7XG4gICAgICBpLS07XG4gICAgfVxuICAgIGlmIChpID49IDApXG4gICAgICBrKys7XG4gICAgYWNjID0gYWNjLmRibHAoayk7XG4gICAgaWYgKGkgPCAwKVxuICAgICAgYnJlYWs7XG5cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxlbjsgaisrKSB7XG4gICAgICB2YXIgeiA9IHRtcFtqXTtcbiAgICAgIHZhciBwO1xuICAgICAgaWYgKHogPT09IDApXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgZWxzZSBpZiAoeiA+IDApXG4gICAgICAgIHAgPSB3bmRbal1bKHogLSAxKSA+PiAxXTtcbiAgICAgIGVsc2UgaWYgKHogPCAwKVxuICAgICAgICBwID0gd25kW2pdWygteiAtIDEpID4+IDFdLm5lZygpO1xuXG4gICAgICBpZiAocC50eXBlID09PSAnYWZmaW5lJylcbiAgICAgICAgYWNjID0gYWNjLm1peGVkQWRkKHApO1xuICAgICAgZWxzZVxuICAgICAgICBhY2MgPSBhY2MuYWRkKHApO1xuICAgIH1cbiAgfVxuICAvLyBaZXJvaWZ5IHJlZmVyZW5jZXNcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKylcbiAgICB3bmRbaV0gPSBudWxsO1xuXG4gIGlmIChqYWNvYmlhblJlc3VsdClcbiAgICByZXR1cm4gYWNjO1xuICBlbHNlXG4gICAgcmV0dXJuIGFjYy50b1AoKTtcbn07XG5cbmZ1bmN0aW9uIEJhc2VQb2ludChjdXJ2ZSwgdHlwZSkge1xuICB0aGlzLmN1cnZlID0gY3VydmU7XG4gIHRoaXMudHlwZSA9IHR5cGU7XG4gIHRoaXMucHJlY29tcHV0ZWQgPSBudWxsO1xufVxuQmFzZUN1cnZlLkJhc2VQb2ludCA9IEJhc2VQb2ludDtcblxuQmFzZVBvaW50LnByb3RvdHlwZS5lcSA9IGZ1bmN0aW9uIGVxKC8qb3RoZXIqLykge1xuICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xufTtcblxuQmFzZVBvaW50LnByb3RvdHlwZS52YWxpZGF0ZSA9IGZ1bmN0aW9uIHZhbGlkYXRlKCkge1xuICByZXR1cm4gdGhpcy5jdXJ2ZS52YWxpZGF0ZSh0aGlzKTtcbn07XG5cbkJhc2VDdXJ2ZS5wcm90b3R5cGUuZGVjb2RlUG9pbnQgPSBmdW5jdGlvbiBkZWNvZGVQb2ludChieXRlcywgZW5jKSB7XG4gIGJ5dGVzID0gdXRpbHMudG9BcnJheShieXRlcywgZW5jKTtcblxuICB2YXIgbGVuID0gdGhpcy5wLmJ5dGVMZW5ndGgoKTtcblxuICAvLyB1bmNvbXByZXNzZWQsIGh5YnJpZC1vZGQsIGh5YnJpZC1ldmVuXG4gIGlmICgoYnl0ZXNbMF0gPT09IDB4MDQgfHwgYnl0ZXNbMF0gPT09IDB4MDYgfHwgYnl0ZXNbMF0gPT09IDB4MDcpICYmXG4gICAgICBieXRlcy5sZW5ndGggLSAxID09PSAyICogbGVuKSB7XG4gICAgaWYgKGJ5dGVzWzBdID09PSAweDA2KVxuICAgICAgYXNzZXJ0KGJ5dGVzW2J5dGVzLmxlbmd0aCAtIDFdICUgMiA9PT0gMCk7XG4gICAgZWxzZSBpZiAoYnl0ZXNbMF0gPT09IDB4MDcpXG4gICAgICBhc3NlcnQoYnl0ZXNbYnl0ZXMubGVuZ3RoIC0gMV0gJSAyID09PSAxKTtcblxuICAgIHZhciByZXMgPSAgdGhpcy5wb2ludChieXRlcy5zbGljZSgxLCAxICsgbGVuKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXMuc2xpY2UoMSArIGxlbiwgMSArIDIgKiBsZW4pKTtcblxuICAgIHJldHVybiByZXM7XG4gIH0gZWxzZSBpZiAoKGJ5dGVzWzBdID09PSAweDAyIHx8IGJ5dGVzWzBdID09PSAweDAzKSAmJlxuICAgICAgICAgICAgICBieXRlcy5sZW5ndGggLSAxID09PSBsZW4pIHtcbiAgICByZXR1cm4gdGhpcy5wb2ludEZyb21YKGJ5dGVzLnNsaWNlKDEsIDEgKyBsZW4pLCBieXRlc1swXSA9PT0gMHgwMyk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHBvaW50IGZvcm1hdCcpO1xufTtcblxuQmFzZVBvaW50LnByb3RvdHlwZS5lbmNvZGVDb21wcmVzc2VkID0gZnVuY3Rpb24gZW5jb2RlQ29tcHJlc3NlZChlbmMpIHtcbiAgcmV0dXJuIHRoaXMuZW5jb2RlKGVuYywgdHJ1ZSk7XG59O1xuXG5CYXNlUG9pbnQucHJvdG90eXBlLl9lbmNvZGUgPSBmdW5jdGlvbiBfZW5jb2RlKGNvbXBhY3QpIHtcbiAgdmFyIGxlbiA9IHRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCk7XG4gIHZhciB4ID0gdGhpcy5nZXRYKCkudG9BcnJheSgnYmUnLCBsZW4pO1xuXG4gIGlmIChjb21wYWN0KVxuICAgIHJldHVybiBbIHRoaXMuZ2V0WSgpLmlzRXZlbigpID8gMHgwMiA6IDB4MDMgXS5jb25jYXQoeCk7XG5cbiAgcmV0dXJuIFsgMHgwNCBdLmNvbmNhdCh4LCB0aGlzLmdldFkoKS50b0FycmF5KCdiZScsIGxlbikpIDtcbn07XG5cbkJhc2VQb2ludC5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKGVuYywgY29tcGFjdCkge1xuICByZXR1cm4gdXRpbHMuZW5jb2RlKHRoaXMuX2VuY29kZShjb21wYWN0KSwgZW5jKTtcbn07XG5cbkJhc2VQb2ludC5wcm90b3R5cGUucHJlY29tcHV0ZSA9IGZ1bmN0aW9uIHByZWNvbXB1dGUocG93ZXIpIHtcbiAgaWYgKHRoaXMucHJlY29tcHV0ZWQpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgdmFyIHByZWNvbXB1dGVkID0ge1xuICAgIGRvdWJsZXM6IG51bGwsXG4gICAgbmFmOiBudWxsLFxuICAgIGJldGE6IG51bGxcbiAgfTtcbiAgcHJlY29tcHV0ZWQubmFmID0gdGhpcy5fZ2V0TkFGUG9pbnRzKDgpO1xuICBwcmVjb21wdXRlZC5kb3VibGVzID0gdGhpcy5fZ2V0RG91Ymxlcyg0LCBwb3dlcik7XG4gIHByZWNvbXB1dGVkLmJldGEgPSB0aGlzLl9nZXRCZXRhKCk7XG4gIHRoaXMucHJlY29tcHV0ZWQgPSBwcmVjb21wdXRlZDtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbkJhc2VQb2ludC5wcm90b3R5cGUuX2hhc0RvdWJsZXMgPSBmdW5jdGlvbiBfaGFzRG91YmxlcyhrKSB7XG4gIGlmICghdGhpcy5wcmVjb21wdXRlZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgdmFyIGRvdWJsZXMgPSB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7XG4gIGlmICghZG91YmxlcylcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIGRvdWJsZXMucG9pbnRzLmxlbmd0aCA+PSBNYXRoLmNlaWwoKGsuYml0TGVuZ3RoKCkgKyAxKSAvIGRvdWJsZXMuc3RlcCk7XG59O1xuXG5CYXNlUG9pbnQucHJvdG90eXBlLl9nZXREb3VibGVzID0gZnVuY3Rpb24gX2dldERvdWJsZXMoc3RlcCwgcG93ZXIpIHtcbiAgaWYgKHRoaXMucHJlY29tcHV0ZWQgJiYgdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzKVxuICAgIHJldHVybiB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7XG5cbiAgdmFyIGRvdWJsZXMgPSBbIHRoaXMgXTtcbiAgdmFyIGFjYyA9IHRoaXM7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcG93ZXI7IGkgKz0gc3RlcCkge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3RlcDsgaisrKVxuICAgICAgYWNjID0gYWNjLmRibCgpO1xuICAgIGRvdWJsZXMucHVzaChhY2MpO1xuICB9XG4gIHJldHVybiB7XG4gICAgc3RlcDogc3RlcCxcbiAgICBwb2ludHM6IGRvdWJsZXNcbiAgfTtcbn07XG5cbkJhc2VQb2ludC5wcm90b3R5cGUuX2dldE5BRlBvaW50cyA9IGZ1bmN0aW9uIF9nZXROQUZQb2ludHMod25kKSB7XG4gIGlmICh0aGlzLnByZWNvbXB1dGVkICYmIHRoaXMucHJlY29tcHV0ZWQubmFmKVxuICAgIHJldHVybiB0aGlzLnByZWNvbXB1dGVkLm5hZjtcblxuICB2YXIgcmVzID0gWyB0aGlzIF07XG4gIHZhciBtYXggPSAoMSA8PCB3bmQpIC0gMTtcbiAgdmFyIGRibCA9IG1heCA9PT0gMSA/IG51bGwgOiB0aGlzLmRibCgpO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IG1heDsgaSsrKVxuICAgIHJlc1tpXSA9IHJlc1tpIC0gMV0uYWRkKGRibCk7XG4gIHJldHVybiB7XG4gICAgd25kOiB3bmQsXG4gICAgcG9pbnRzOiByZXNcbiAgfTtcbn07XG5cbkJhc2VQb2ludC5wcm90b3R5cGUuX2dldEJldGEgPSBmdW5jdGlvbiBfZ2V0QmV0YSgpIHtcbiAgcmV0dXJuIG51bGw7XG59O1xuXG5CYXNlUG9pbnQucHJvdG90eXBlLmRibHAgPSBmdW5jdGlvbiBkYmxwKGspIHtcbiAgdmFyIHIgPSB0aGlzO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGs7IGkrKylcbiAgICByID0gci5kYmwoKTtcbiAgcmV0dXJuIHI7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY3VydmUgPSByZXF1aXJlKCcuLi9jdXJ2ZScpO1xudmFyIGVsbGlwdGljID0gcmVxdWlyZSgnLi4vLi4vZWxsaXB0aWMnKTtcbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xudmFyIEJhc2UgPSBjdXJ2ZS5iYXNlO1xuXG52YXIgYXNzZXJ0ID0gZWxsaXB0aWMudXRpbHMuYXNzZXJ0O1xuXG5mdW5jdGlvbiBFZHdhcmRzQ3VydmUoY29uZikge1xuICAvLyBOT1RFOiBJbXBvcnRhbnQgYXMgd2UgYXJlIGNyZWF0aW5nIHBvaW50IGluIEJhc2UuY2FsbCgpXG4gIHRoaXMudHdpc3RlZCA9IChjb25mLmEgfCAwKSAhPT0gMTtcbiAgdGhpcy5tT25lQSA9IHRoaXMudHdpc3RlZCAmJiAoY29uZi5hIHwgMCkgPT09IC0xO1xuICB0aGlzLmV4dGVuZGVkID0gdGhpcy5tT25lQTtcblxuICBCYXNlLmNhbGwodGhpcywgJ2Vkd2FyZHMnLCBjb25mKTtcblxuICB0aGlzLmEgPSBuZXcgQk4oY29uZi5hLCAxNikudW1vZCh0aGlzLnJlZC5tKTtcbiAgdGhpcy5hID0gdGhpcy5hLnRvUmVkKHRoaXMucmVkKTtcbiAgdGhpcy5jID0gbmV3IEJOKGNvbmYuYywgMTYpLnRvUmVkKHRoaXMucmVkKTtcbiAgdGhpcy5jMiA9IHRoaXMuYy5yZWRTcXIoKTtcbiAgdGhpcy5kID0gbmV3IEJOKGNvbmYuZCwgMTYpLnRvUmVkKHRoaXMucmVkKTtcbiAgdGhpcy5kZCA9IHRoaXMuZC5yZWRBZGQodGhpcy5kKTtcblxuICBhc3NlcnQoIXRoaXMudHdpc3RlZCB8fCB0aGlzLmMuZnJvbVJlZCgpLmNtcG4oMSkgPT09IDApO1xuICB0aGlzLm9uZUMgPSAoY29uZi5jIHwgMCkgPT09IDE7XG59XG5pbmhlcml0cyhFZHdhcmRzQ3VydmUsIEJhc2UpO1xubW9kdWxlLmV4cG9ydHMgPSBFZHdhcmRzQ3VydmU7XG5cbkVkd2FyZHNDdXJ2ZS5wcm90b3R5cGUuX211bEEgPSBmdW5jdGlvbiBfbXVsQShudW0pIHtcbiAgaWYgKHRoaXMubU9uZUEpXG4gICAgcmV0dXJuIG51bS5yZWROZWcoKTtcbiAgZWxzZVxuICAgIHJldHVybiB0aGlzLmEucmVkTXVsKG51bSk7XG59O1xuXG5FZHdhcmRzQ3VydmUucHJvdG90eXBlLl9tdWxDID0gZnVuY3Rpb24gX211bEMobnVtKSB7XG4gIGlmICh0aGlzLm9uZUMpXG4gICAgcmV0dXJuIG51bTtcbiAgZWxzZVxuICAgIHJldHVybiB0aGlzLmMucmVkTXVsKG51bSk7XG59O1xuXG4vLyBKdXN0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggU2hvcnQgY3VydmVcbkVkd2FyZHNDdXJ2ZS5wcm90b3R5cGUuanBvaW50ID0gZnVuY3Rpb24ganBvaW50KHgsIHksIHosIHQpIHtcbiAgcmV0dXJuIHRoaXMucG9pbnQoeCwgeSwgeiwgdCk7XG59O1xuXG5FZHdhcmRzQ3VydmUucHJvdG90eXBlLnBvaW50RnJvbVggPSBmdW5jdGlvbiBwb2ludEZyb21YKHgsIG9kZCkge1xuICB4ID0gbmV3IEJOKHgsIDE2KTtcbiAgaWYgKCF4LnJlZClcbiAgICB4ID0geC50b1JlZCh0aGlzLnJlZCk7XG5cbiAgdmFyIHgyID0geC5yZWRTcXIoKTtcbiAgdmFyIHJocyA9IHRoaXMuYzIucmVkU3ViKHRoaXMuYS5yZWRNdWwoeDIpKTtcbiAgdmFyIGxocyA9IHRoaXMub25lLnJlZFN1Yih0aGlzLmMyLnJlZE11bCh0aGlzLmQpLnJlZE11bCh4MikpO1xuXG4gIHZhciB5MiA9IHJocy5yZWRNdWwobGhzLnJlZEludm0oKSk7XG4gIHZhciB5ID0geTIucmVkU3FydCgpO1xuICBpZiAoeS5yZWRTcXIoKS5yZWRTdWIoeTIpLmNtcCh0aGlzLnplcm8pICE9PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBwb2ludCcpO1xuXG4gIHZhciBpc09kZCA9IHkuZnJvbVJlZCgpLmlzT2RkKCk7XG4gIGlmIChvZGQgJiYgIWlzT2RkIHx8ICFvZGQgJiYgaXNPZGQpXG4gICAgeSA9IHkucmVkTmVnKCk7XG5cbiAgcmV0dXJuIHRoaXMucG9pbnQoeCwgeSk7XG59O1xuXG5FZHdhcmRzQ3VydmUucHJvdG90eXBlLnBvaW50RnJvbVkgPSBmdW5jdGlvbiBwb2ludEZyb21ZKHksIG9kZCkge1xuICB5ID0gbmV3IEJOKHksIDE2KTtcbiAgaWYgKCF5LnJlZClcbiAgICB5ID0geS50b1JlZCh0aGlzLnJlZCk7XG5cbiAgLy8geF4yID0gKHleMiAtIDEpIC8gKGQgeV4yICsgMSlcbiAgdmFyIHkyID0geS5yZWRTcXIoKTtcbiAgdmFyIGxocyA9IHkyLnJlZFN1Yih0aGlzLm9uZSk7XG4gIHZhciByaHMgPSB5Mi5yZWRNdWwodGhpcy5kKS5yZWRBZGQodGhpcy5vbmUpO1xuICB2YXIgeDIgPSBsaHMucmVkTXVsKHJocy5yZWRJbnZtKCkpO1xuXG4gIGlmICh4Mi5jbXAodGhpcy56ZXJvKSA9PT0gMCkge1xuICAgIGlmIChvZGQpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcG9pbnQnKTtcbiAgICBlbHNlXG4gICAgICByZXR1cm4gdGhpcy5wb2ludCh0aGlzLnplcm8sIHkpO1xuICB9XG5cbiAgdmFyIHggPSB4Mi5yZWRTcXJ0KCk7XG4gIGlmICh4LnJlZFNxcigpLnJlZFN1Yih4MikuY21wKHRoaXMuemVybykgIT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHBvaW50Jyk7XG5cbiAgaWYgKHguaXNPZGQoKSAhPT0gb2RkKVxuICAgIHggPSB4LnJlZE5lZygpO1xuXG4gIHJldHVybiB0aGlzLnBvaW50KHgsIHkpO1xufTtcblxuRWR3YXJkc0N1cnZlLnByb3RvdHlwZS52YWxpZGF0ZSA9IGZ1bmN0aW9uIHZhbGlkYXRlKHBvaW50KSB7XG4gIGlmIChwb2ludC5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHRydWU7XG5cbiAgLy8gQ3VydmU6IEEgKiBYXjIgKyBZXjIgPSBDXjIgKiAoMSArIEQgKiBYXjIgKiBZXjIpXG4gIHBvaW50Lm5vcm1hbGl6ZSgpO1xuXG4gIHZhciB4MiA9IHBvaW50LngucmVkU3FyKCk7XG4gIHZhciB5MiA9IHBvaW50LnkucmVkU3FyKCk7XG4gIHZhciBsaHMgPSB4Mi5yZWRNdWwodGhpcy5hKS5yZWRBZGQoeTIpO1xuICB2YXIgcmhzID0gdGhpcy5jMi5yZWRNdWwodGhpcy5vbmUucmVkQWRkKHRoaXMuZC5yZWRNdWwoeDIpLnJlZE11bCh5MikpKTtcblxuICByZXR1cm4gbGhzLmNtcChyaHMpID09PSAwO1xufTtcblxuZnVuY3Rpb24gUG9pbnQoY3VydmUsIHgsIHksIHosIHQpIHtcbiAgQmFzZS5CYXNlUG9pbnQuY2FsbCh0aGlzLCBjdXJ2ZSwgJ3Byb2plY3RpdmUnKTtcbiAgaWYgKHggPT09IG51bGwgJiYgeSA9PT0gbnVsbCAmJiB6ID09PSBudWxsKSB7XG4gICAgdGhpcy54ID0gdGhpcy5jdXJ2ZS56ZXJvO1xuICAgIHRoaXMueSA9IHRoaXMuY3VydmUub25lO1xuICAgIHRoaXMueiA9IHRoaXMuY3VydmUub25lO1xuICAgIHRoaXMudCA9IHRoaXMuY3VydmUuemVybztcbiAgICB0aGlzLnpPbmUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHRoaXMueCA9IG5ldyBCTih4LCAxNik7XG4gICAgdGhpcy55ID0gbmV3IEJOKHksIDE2KTtcbiAgICB0aGlzLnogPSB6ID8gbmV3IEJOKHosIDE2KSA6IHRoaXMuY3VydmUub25lO1xuICAgIHRoaXMudCA9IHQgJiYgbmV3IEJOKHQsIDE2KTtcbiAgICBpZiAoIXRoaXMueC5yZWQpXG4gICAgICB0aGlzLnggPSB0aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO1xuICAgIGlmICghdGhpcy55LnJlZClcbiAgICAgIHRoaXMueSA9IHRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCk7XG4gICAgaWYgKCF0aGlzLnoucmVkKVxuICAgICAgdGhpcy56ID0gdGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKTtcbiAgICBpZiAodGhpcy50ICYmICF0aGlzLnQucmVkKVxuICAgICAgdGhpcy50ID0gdGhpcy50LnRvUmVkKHRoaXMuY3VydmUucmVkKTtcbiAgICB0aGlzLnpPbmUgPSB0aGlzLnogPT09IHRoaXMuY3VydmUub25lO1xuXG4gICAgLy8gVXNlIGV4dGVuZGVkIGNvb3JkaW5hdGVzXG4gICAgaWYgKHRoaXMuY3VydmUuZXh0ZW5kZWQgJiYgIXRoaXMudCkge1xuICAgICAgdGhpcy50ID0gdGhpcy54LnJlZE11bCh0aGlzLnkpO1xuICAgICAgaWYgKCF0aGlzLnpPbmUpXG4gICAgICAgIHRoaXMudCA9IHRoaXMudC5yZWRNdWwodGhpcy56LnJlZEludm0oKSk7XG4gICAgfVxuICB9XG59XG5pbmhlcml0cyhQb2ludCwgQmFzZS5CYXNlUG9pbnQpO1xuXG5FZHdhcmRzQ3VydmUucHJvdG90eXBlLnBvaW50RnJvbUpTT04gPSBmdW5jdGlvbiBwb2ludEZyb21KU09OKG9iaikge1xuICByZXR1cm4gUG9pbnQuZnJvbUpTT04odGhpcywgb2JqKTtcbn07XG5cbkVkd2FyZHNDdXJ2ZS5wcm90b3R5cGUucG9pbnQgPSBmdW5jdGlvbiBwb2ludCh4LCB5LCB6LCB0KSB7XG4gIHJldHVybiBuZXcgUG9pbnQodGhpcywgeCwgeSwgeiwgdCk7XG59O1xuXG5Qb2ludC5mcm9tSlNPTiA9IGZ1bmN0aW9uIGZyb21KU09OKGN1cnZlLCBvYmopIHtcbiAgcmV0dXJuIG5ldyBQb2ludChjdXJ2ZSwgb2JqWzBdLCBvYmpbMV0sIG9ialsyXSk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QoKSB7XG4gIGlmICh0aGlzLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gJzxFQyBQb2ludCBJbmZpbml0eT4nO1xuICByZXR1cm4gJzxFQyBQb2ludCB4OiAnICsgdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwgMikgK1xuICAgICAgJyB5OiAnICsgdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwgMikgK1xuICAgICAgJyB6OiAnICsgdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwgMikgKyAnPic7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuaXNJbmZpbml0eSA9IGZ1bmN0aW9uIGlzSW5maW5pdHkoKSB7XG4gIC8vIFhYWCBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHplcm8gaXMgYWx3YXlzIHplcm8gaW4gcmVkXG4gIHJldHVybiB0aGlzLnguY21wbigwKSA9PT0gMCAmJlxuICAgICAgICAgdGhpcy55LmNtcCh0aGlzLnopID09PSAwO1xufTtcblxuUG9pbnQucHJvdG90eXBlLl9leHREYmwgPSBmdW5jdGlvbiBfZXh0RGJsKCkge1xuICAvLyBoeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tdHdpc3RlZC1leHRlbmRlZC0xLmh0bWxcbiAgLy8gICAgICNkb3VibGluZy1kYmwtMjAwOC1od2NkXG4gIC8vIDRNICsgNFNcblxuICAvLyBBID0gWDFeMlxuICB2YXIgYSA9IHRoaXMueC5yZWRTcXIoKTtcbiAgLy8gQiA9IFkxXjJcbiAgdmFyIGIgPSB0aGlzLnkucmVkU3FyKCk7XG4gIC8vIEMgPSAyICogWjFeMlxuICB2YXIgYyA9IHRoaXMuei5yZWRTcXIoKTtcbiAgYyA9IGMucmVkSUFkZChjKTtcbiAgLy8gRCA9IGEgKiBBXG4gIHZhciBkID0gdGhpcy5jdXJ2ZS5fbXVsQShhKTtcbiAgLy8gRSA9IChYMSArIFkxKV4yIC0gQSAtIEJcbiAgdmFyIGUgPSB0aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCkucmVkSVN1YihhKS5yZWRJU3ViKGIpO1xuICAvLyBHID0gRCArIEJcbiAgdmFyIGcgPSBkLnJlZEFkZChiKTtcbiAgLy8gRiA9IEcgLSBDXG4gIHZhciBmID0gZy5yZWRTdWIoYyk7XG4gIC8vIEggPSBEIC0gQlxuICB2YXIgaCA9IGQucmVkU3ViKGIpO1xuICAvLyBYMyA9IEUgKiBGXG4gIHZhciBueCA9IGUucmVkTXVsKGYpO1xuICAvLyBZMyA9IEcgKiBIXG4gIHZhciBueSA9IGcucmVkTXVsKGgpO1xuICAvLyBUMyA9IEUgKiBIXG4gIHZhciBudCA9IGUucmVkTXVsKGgpO1xuICAvLyBaMyA9IEYgKiBHXG4gIHZhciBueiA9IGYucmVkTXVsKGcpO1xuICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChueCwgbnksIG56LCBudCk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuX3Byb2pEYmwgPSBmdW5jdGlvbiBfcHJvakRibCgpIHtcbiAgLy8gaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLXR3aXN0ZWQtcHJvamVjdGl2ZS5odG1sXG4gIC8vICAgICAjZG91YmxpbmctZGJsLTIwMDgtYmJqbHBcbiAgLy8gICAgICNkb3VibGluZy1kYmwtMjAwNy1ibFxuICAvLyBhbmQgb3RoZXJzXG4gIC8vIEdlbmVyYWxseSAzTSArIDRTIG9yIDJNICsgNFNcblxuICAvLyBCID0gKFgxICsgWTEpXjJcbiAgdmFyIGIgPSB0aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCk7XG4gIC8vIEMgPSBYMV4yXG4gIHZhciBjID0gdGhpcy54LnJlZFNxcigpO1xuICAvLyBEID0gWTFeMlxuICB2YXIgZCA9IHRoaXMueS5yZWRTcXIoKTtcblxuICB2YXIgbng7XG4gIHZhciBueTtcbiAgdmFyIG56O1xuICBpZiAodGhpcy5jdXJ2ZS50d2lzdGVkKSB7XG4gICAgLy8gRSA9IGEgKiBDXG4gICAgdmFyIGUgPSB0aGlzLmN1cnZlLl9tdWxBKGMpO1xuICAgIC8vIEYgPSBFICsgRFxuICAgIHZhciBmID0gZS5yZWRBZGQoZCk7XG4gICAgaWYgKHRoaXMuek9uZSkge1xuICAgICAgLy8gWDMgPSAoQiAtIEMgLSBEKSAqIChGIC0gMilcbiAgICAgIG54ID0gYi5yZWRTdWIoYykucmVkU3ViKGQpLnJlZE11bChmLnJlZFN1Yih0aGlzLmN1cnZlLnR3bykpO1xuICAgICAgLy8gWTMgPSBGICogKEUgLSBEKVxuICAgICAgbnkgPSBmLnJlZE11bChlLnJlZFN1YihkKSk7XG4gICAgICAvLyBaMyA9IEZeMiAtIDIgKiBGXG4gICAgICBueiA9IGYucmVkU3FyKCkucmVkU3ViKGYpLnJlZFN1YihmKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSCA9IFoxXjJcbiAgICAgIHZhciBoID0gdGhpcy56LnJlZFNxcigpO1xuICAgICAgLy8gSiA9IEYgLSAyICogSFxuICAgICAgdmFyIGogPSBmLnJlZFN1YihoKS5yZWRJU3ViKGgpO1xuICAgICAgLy8gWDMgPSAoQi1DLUQpKkpcbiAgICAgIG54ID0gYi5yZWRTdWIoYykucmVkSVN1YihkKS5yZWRNdWwoaik7XG4gICAgICAvLyBZMyA9IEYgKiAoRSAtIEQpXG4gICAgICBueSA9IGYucmVkTXVsKGUucmVkU3ViKGQpKTtcbiAgICAgIC8vIFozID0gRiAqIEpcbiAgICAgIG56ID0gZi5yZWRNdWwoaik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIEUgPSBDICsgRFxuICAgIHZhciBlID0gYy5yZWRBZGQoZCk7XG4gICAgLy8gSCA9IChjICogWjEpXjJcbiAgICB2YXIgaCA9IHRoaXMuY3VydmUuX211bEModGhpcy5jLnJlZE11bCh0aGlzLnopKS5yZWRTcXIoKTtcbiAgICAvLyBKID0gRSAtIDIgKiBIXG4gICAgdmFyIGogPSBlLnJlZFN1YihoKS5yZWRTdWIoaCk7XG4gICAgLy8gWDMgPSBjICogKEIgLSBFKSAqIEpcbiAgICBueCA9IHRoaXMuY3VydmUuX211bEMoYi5yZWRJU3ViKGUpKS5yZWRNdWwoaik7XG4gICAgLy8gWTMgPSBjICogRSAqIChDIC0gRClcbiAgICBueSA9IHRoaXMuY3VydmUuX211bEMoZSkucmVkTXVsKGMucmVkSVN1YihkKSk7XG4gICAgLy8gWjMgPSBFICogSlxuICAgIG56ID0gZS5yZWRNdWwoaik7XG4gIH1cbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobngsIG55LCBueik7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZGJsID0gZnVuY3Rpb24gZGJsKCkge1xuICBpZiAodGhpcy5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gRG91YmxlIGluIGV4dGVuZGVkIGNvb3JkaW5hdGVzXG4gIGlmICh0aGlzLmN1cnZlLmV4dGVuZGVkKVxuICAgIHJldHVybiB0aGlzLl9leHREYmwoKTtcbiAgZWxzZVxuICAgIHJldHVybiB0aGlzLl9wcm9qRGJsKCk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuX2V4dEFkZCA9IGZ1bmN0aW9uIF9leHRBZGQocCkge1xuICAvLyBoeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tdHdpc3RlZC1leHRlbmRlZC0xLmh0bWxcbiAgLy8gICAgICNhZGRpdGlvbi1hZGQtMjAwOC1od2NkLTNcbiAgLy8gOE1cblxuICAvLyBBID0gKFkxIC0gWDEpICogKFkyIC0gWDIpXG4gIHZhciBhID0gdGhpcy55LnJlZFN1Yih0aGlzLngpLnJlZE11bChwLnkucmVkU3ViKHAueCkpO1xuICAvLyBCID0gKFkxICsgWDEpICogKFkyICsgWDIpXG4gIHZhciBiID0gdGhpcy55LnJlZEFkZCh0aGlzLngpLnJlZE11bChwLnkucmVkQWRkKHAueCkpO1xuICAvLyBDID0gVDEgKiBrICogVDJcbiAgdmFyIGMgPSB0aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bChwLnQpO1xuICAvLyBEID0gWjEgKiAyICogWjJcbiAgdmFyIGQgPSB0aGlzLnoucmVkTXVsKHAuei5yZWRBZGQocC56KSk7XG4gIC8vIEUgPSBCIC0gQVxuICB2YXIgZSA9IGIucmVkU3ViKGEpO1xuICAvLyBGID0gRCAtIENcbiAgdmFyIGYgPSBkLnJlZFN1YihjKTtcbiAgLy8gRyA9IEQgKyBDXG4gIHZhciBnID0gZC5yZWRBZGQoYyk7XG4gIC8vIEggPSBCICsgQVxuICB2YXIgaCA9IGIucmVkQWRkKGEpO1xuICAvLyBYMyA9IEUgKiBGXG4gIHZhciBueCA9IGUucmVkTXVsKGYpO1xuICAvLyBZMyA9IEcgKiBIXG4gIHZhciBueSA9IGcucmVkTXVsKGgpO1xuICAvLyBUMyA9IEUgKiBIXG4gIHZhciBudCA9IGUucmVkTXVsKGgpO1xuICAvLyBaMyA9IEYgKiBHXG4gIHZhciBueiA9IGYucmVkTXVsKGcpO1xuICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChueCwgbnksIG56LCBudCk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuX3Byb2pBZGQgPSBmdW5jdGlvbiBfcHJvakFkZChwKSB7XG4gIC8vIGh5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by10d2lzdGVkLXByb2plY3RpdmUuaHRtbFxuICAvLyAgICAgI2FkZGl0aW9uLWFkZC0yMDA4LWJiamxwXG4gIC8vICAgICAjYWRkaXRpb24tYWRkLTIwMDctYmxcbiAgLy8gMTBNICsgMVNcblxuICAvLyBBID0gWjEgKiBaMlxuICB2YXIgYSA9IHRoaXMuei5yZWRNdWwocC56KTtcbiAgLy8gQiA9IEFeMlxuICB2YXIgYiA9IGEucmVkU3FyKCk7XG4gIC8vIEMgPSBYMSAqIFgyXG4gIHZhciBjID0gdGhpcy54LnJlZE11bChwLngpO1xuICAvLyBEID0gWTEgKiBZMlxuICB2YXIgZCA9IHRoaXMueS5yZWRNdWwocC55KTtcbiAgLy8gRSA9IGQgKiBDICogRFxuICB2YXIgZSA9IHRoaXMuY3VydmUuZC5yZWRNdWwoYykucmVkTXVsKGQpO1xuICAvLyBGID0gQiAtIEVcbiAgdmFyIGYgPSBiLnJlZFN1YihlKTtcbiAgLy8gRyA9IEIgKyBFXG4gIHZhciBnID0gYi5yZWRBZGQoZSk7XG4gIC8vIFgzID0gQSAqIEYgKiAoKFgxICsgWTEpICogKFgyICsgWTIpIC0gQyAtIEQpXG4gIHZhciB0bXAgPSB0aGlzLngucmVkQWRkKHRoaXMueSkucmVkTXVsKHAueC5yZWRBZGQocC55KSkucmVkSVN1YihjKS5yZWRJU3ViKGQpO1xuICB2YXIgbnggPSBhLnJlZE11bChmKS5yZWRNdWwodG1wKTtcbiAgdmFyIG55O1xuICB2YXIgbno7XG4gIGlmICh0aGlzLmN1cnZlLnR3aXN0ZWQpIHtcbiAgICAvLyBZMyA9IEEgKiBHICogKEQgLSBhICogQylcbiAgICBueSA9IGEucmVkTXVsKGcpLnJlZE11bChkLnJlZFN1Yih0aGlzLmN1cnZlLl9tdWxBKGMpKSk7XG4gICAgLy8gWjMgPSBGICogR1xuICAgIG56ID0gZi5yZWRNdWwoZyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gWTMgPSBBICogRyAqIChEIC0gQylcbiAgICBueSA9IGEucmVkTXVsKGcpLnJlZE11bChkLnJlZFN1YihjKSk7XG4gICAgLy8gWjMgPSBjICogRiAqIEdcbiAgICBueiA9IHRoaXMuY3VydmUuX211bEMoZikucmVkTXVsKGcpO1xuICB9XG4gIHJldHVybiB0aGlzLmN1cnZlLnBvaW50KG54LCBueSwgbnopO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIGFkZChwKSB7XG4gIGlmICh0aGlzLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gcDtcbiAgaWYgKHAuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIGlmICh0aGlzLmN1cnZlLmV4dGVuZGVkKVxuICAgIHJldHVybiB0aGlzLl9leHRBZGQocCk7XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5fcHJvakFkZChwKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiBtdWwoaykge1xuICBpZiAodGhpcy5faGFzRG91YmxlcyhrKSlcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcywgayk7XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLCBrKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5tdWxBZGQgPSBmdW5jdGlvbiBtdWxBZGQoazEsIHAsIGsyKSB7XG4gIHJldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsIFsgdGhpcywgcCBdLCBbIGsxLCBrMiBdLCAyLCBmYWxzZSk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuam11bEFkZCA9IGZ1bmN0aW9uIGptdWxBZGQoazEsIHAsIGsyKSB7XG4gIHJldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsIFsgdGhpcywgcCBdLCBbIGsxLCBrMiBdLCAyLCB0cnVlKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5ub3JtYWxpemUgPSBmdW5jdGlvbiBub3JtYWxpemUoKSB7XG4gIGlmICh0aGlzLnpPbmUpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gTm9ybWFsaXplIGNvb3JkaW5hdGVzXG4gIHZhciB6aSA9IHRoaXMuei5yZWRJbnZtKCk7XG4gIHRoaXMueCA9IHRoaXMueC5yZWRNdWwoemkpO1xuICB0aGlzLnkgPSB0aGlzLnkucmVkTXVsKHppKTtcbiAgaWYgKHRoaXMudClcbiAgICB0aGlzLnQgPSB0aGlzLnQucmVkTXVsKHppKTtcbiAgdGhpcy56ID0gdGhpcy5jdXJ2ZS5vbmU7XG4gIHRoaXMuek9uZSA9IHRydWU7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUG9pbnQucHJvdG90eXBlLm5lZyA9IGZ1bmN0aW9uIG5lZygpIHtcbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE5lZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMueixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ICYmIHRoaXMudC5yZWROZWcoKSk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZ2V0WCA9IGZ1bmN0aW9uIGdldFgoKSB7XG4gIHRoaXMubm9ybWFsaXplKCk7XG4gIHJldHVybiB0aGlzLnguZnJvbVJlZCgpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmdldFkgPSBmdW5jdGlvbiBnZXRZKCkge1xuICB0aGlzLm5vcm1hbGl6ZSgpO1xuICByZXR1cm4gdGhpcy55LmZyb21SZWQoKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5lcSA9IGZ1bmN0aW9uIGVxKG90aGVyKSB7XG4gIHJldHVybiB0aGlzID09PSBvdGhlciB8fFxuICAgICAgICAgdGhpcy5nZXRYKCkuY21wKG90aGVyLmdldFgoKSkgPT09IDAgJiZcbiAgICAgICAgIHRoaXMuZ2V0WSgpLmNtcChvdGhlci5nZXRZKCkpID09PSAwO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmVxWFRvUCA9IGZ1bmN0aW9uIGVxWFRvUCh4KSB7XG4gIHZhciByeCA9IHgudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0aGlzLnopO1xuICBpZiAodGhpcy54LmNtcChyeCkgPT09IDApXG4gICAgcmV0dXJuIHRydWU7XG5cbiAgdmFyIHhjID0geC5jbG9uZSgpO1xuICB2YXIgdCA9IHRoaXMuY3VydmUucmVkTi5yZWRNdWwodGhpcy56KTtcbiAgZm9yICg7Oykge1xuICAgIHhjLmlhZGQodGhpcy5jdXJ2ZS5uKTtcbiAgICBpZiAoeGMuY21wKHRoaXMuY3VydmUucCkgPj0gMClcbiAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIHJ4LnJlZElBZGQodCk7XG4gICAgaWYgKHRoaXMueC5jbXAocngpID09PSAwKVxuICAgICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuLy8gQ29tcGF0aWJpbGl0eSB3aXRoIEJhc2VDdXJ2ZVxuUG9pbnQucHJvdG90eXBlLnRvUCA9IFBvaW50LnByb3RvdHlwZS5ub3JtYWxpemU7XG5Qb2ludC5wcm90b3R5cGUubWl4ZWRBZGQgPSBQb2ludC5wcm90b3R5cGUuYWRkO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY3VydmUgPSBleHBvcnRzO1xuXG5jdXJ2ZS5iYXNlID0gcmVxdWlyZSgnLi9iYXNlJyk7XG5jdXJ2ZS5zaG9ydCA9IHJlcXVpcmUoJy4vc2hvcnQnKTtcbmN1cnZlLm1vbnQgPSByZXF1aXJlKCcuL21vbnQnKTtcbmN1cnZlLmVkd2FyZHMgPSByZXF1aXJlKCcuL2Vkd2FyZHMnKTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGN1cnZlID0gcmVxdWlyZSgnLi4vY3VydmUnKTtcbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xudmFyIEJhc2UgPSBjdXJ2ZS5iYXNlO1xuXG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIHV0aWxzID0gZWxsaXB0aWMudXRpbHM7XG5cbmZ1bmN0aW9uIE1vbnRDdXJ2ZShjb25mKSB7XG4gIEJhc2UuY2FsbCh0aGlzLCAnbW9udCcsIGNvbmYpO1xuXG4gIHRoaXMuYSA9IG5ldyBCTihjb25mLmEsIDE2KS50b1JlZCh0aGlzLnJlZCk7XG4gIHRoaXMuYiA9IG5ldyBCTihjb25mLmIsIDE2KS50b1JlZCh0aGlzLnJlZCk7XG4gIHRoaXMuaTQgPSBuZXcgQk4oNCkudG9SZWQodGhpcy5yZWQpLnJlZEludm0oKTtcbiAgdGhpcy50d28gPSBuZXcgQk4oMikudG9SZWQodGhpcy5yZWQpO1xuICB0aGlzLmEyNCA9IHRoaXMuaTQucmVkTXVsKHRoaXMuYS5yZWRBZGQodGhpcy50d28pKTtcbn1cbmluaGVyaXRzKE1vbnRDdXJ2ZSwgQmFzZSk7XG5tb2R1bGUuZXhwb3J0cyA9IE1vbnRDdXJ2ZTtcblxuTW9udEN1cnZlLnByb3RvdHlwZS52YWxpZGF0ZSA9IGZ1bmN0aW9uIHZhbGlkYXRlKHBvaW50KSB7XG4gIHZhciB4ID0gcG9pbnQubm9ybWFsaXplKCkueDtcbiAgdmFyIHgyID0geC5yZWRTcXIoKTtcbiAgdmFyIHJocyA9IHgyLnJlZE11bCh4KS5yZWRBZGQoeDIucmVkTXVsKHRoaXMuYSkpLnJlZEFkZCh4KTtcbiAgdmFyIHkgPSByaHMucmVkU3FydCgpO1xuXG4gIHJldHVybiB5LnJlZFNxcigpLmNtcChyaHMpID09PSAwO1xufTtcblxuZnVuY3Rpb24gUG9pbnQoY3VydmUsIHgsIHopIHtcbiAgQmFzZS5CYXNlUG9pbnQuY2FsbCh0aGlzLCBjdXJ2ZSwgJ3Byb2plY3RpdmUnKTtcbiAgaWYgKHggPT09IG51bGwgJiYgeiA9PT0gbnVsbCkge1xuICAgIHRoaXMueCA9IHRoaXMuY3VydmUub25lO1xuICAgIHRoaXMueiA9IHRoaXMuY3VydmUuemVybztcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnggPSBuZXcgQk4oeCwgMTYpO1xuICAgIHRoaXMueiA9IG5ldyBCTih6LCAxNik7XG4gICAgaWYgKCF0aGlzLngucmVkKVxuICAgICAgdGhpcy54ID0gdGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKTtcbiAgICBpZiAoIXRoaXMuei5yZWQpXG4gICAgICB0aGlzLnogPSB0aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO1xuICB9XG59XG5pbmhlcml0cyhQb2ludCwgQmFzZS5CYXNlUG9pbnQpO1xuXG5Nb250Q3VydmUucHJvdG90eXBlLmRlY29kZVBvaW50ID0gZnVuY3Rpb24gZGVjb2RlUG9pbnQoYnl0ZXMsIGVuYykge1xuICByZXR1cm4gdGhpcy5wb2ludCh1dGlscy50b0FycmF5KGJ5dGVzLCBlbmMpLCAxKTtcbn07XG5cbk1vbnRDdXJ2ZS5wcm90b3R5cGUucG9pbnQgPSBmdW5jdGlvbiBwb2ludCh4LCB6KSB7XG4gIHJldHVybiBuZXcgUG9pbnQodGhpcywgeCwgeik7XG59O1xuXG5Nb250Q3VydmUucHJvdG90eXBlLnBvaW50RnJvbUpTT04gPSBmdW5jdGlvbiBwb2ludEZyb21KU09OKG9iaikge1xuICByZXR1cm4gUG9pbnQuZnJvbUpTT04odGhpcywgb2JqKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5wcmVjb21wdXRlID0gZnVuY3Rpb24gcHJlY29tcHV0ZSgpIHtcbiAgLy8gTm8tb3Bcbn07XG5cblBvaW50LnByb3RvdHlwZS5fZW5jb2RlID0gZnVuY3Rpb24gX2VuY29kZSgpIHtcbiAgcmV0dXJuIHRoaXMuZ2V0WCgpLnRvQXJyYXkoJ2JlJywgdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSk7XG59O1xuXG5Qb2ludC5mcm9tSlNPTiA9IGZ1bmN0aW9uIGZyb21KU09OKGN1cnZlLCBvYmopIHtcbiAgcmV0dXJuIG5ldyBQb2ludChjdXJ2ZSwgb2JqWzBdLCBvYmpbMV0gfHwgY3VydmUub25lKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5pbnNwZWN0ID0gZnVuY3Rpb24gaW5zcGVjdCgpIHtcbiAgaWYgKHRoaXMuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiAnPEVDIFBvaW50IEluZmluaXR5Pic7XG4gIHJldHVybiAnPEVDIFBvaW50IHg6ICcgKyB0aGlzLnguZnJvbVJlZCgpLnRvU3RyaW5nKDE2LCAyKSArXG4gICAgICAnIHo6ICcgKyB0aGlzLnouZnJvbVJlZCgpLnRvU3RyaW5nKDE2LCAyKSArICc+Jztcbn07XG5cblBvaW50LnByb3RvdHlwZS5pc0luZmluaXR5ID0gZnVuY3Rpb24gaXNJbmZpbml0eSgpIHtcbiAgLy8gWFhYIFRoaXMgY29kZSBhc3N1bWVzIHRoYXQgemVybyBpcyBhbHdheXMgemVybyBpbiByZWRcbiAgcmV0dXJuIHRoaXMuei5jbXBuKDApID09PSAwO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmRibCA9IGZ1bmN0aW9uIGRibCgpIHtcbiAgLy8gaHR0cDovL2h5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by1tb250Z29tLXh6Lmh0bWwjZG91YmxpbmctZGJsLTE5ODctbS0zXG4gIC8vIDJNICsgMlMgKyA0QVxuXG4gIC8vIEEgPSBYMSArIFoxXG4gIHZhciBhID0gdGhpcy54LnJlZEFkZCh0aGlzLnopO1xuICAvLyBBQSA9IEFeMlxuICB2YXIgYWEgPSBhLnJlZFNxcigpO1xuICAvLyBCID0gWDEgLSBaMVxuICB2YXIgYiA9IHRoaXMueC5yZWRTdWIodGhpcy56KTtcbiAgLy8gQkIgPSBCXjJcbiAgdmFyIGJiID0gYi5yZWRTcXIoKTtcbiAgLy8gQyA9IEFBIC0gQkJcbiAgdmFyIGMgPSBhYS5yZWRTdWIoYmIpO1xuICAvLyBYMyA9IEFBICogQkJcbiAgdmFyIG54ID0gYWEucmVkTXVsKGJiKTtcbiAgLy8gWjMgPSBDICogKEJCICsgQTI0ICogQylcbiAgdmFyIG56ID0gYy5yZWRNdWwoYmIucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChjKSkpO1xuICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChueCwgbnopO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIGFkZCgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUnKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5kaWZmQWRkID0gZnVuY3Rpb24gZGlmZkFkZChwLCBkaWZmKSB7XG4gIC8vIGh0dHA6Ly9oeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tbW9udGdvbS14ei5odG1sI2RpZmZhZGQtZGFkZC0xOTg3LW0tM1xuICAvLyA0TSArIDJTICsgNkFcblxuICAvLyBBID0gWDIgKyBaMlxuICB2YXIgYSA9IHRoaXMueC5yZWRBZGQodGhpcy56KTtcbiAgLy8gQiA9IFgyIC0gWjJcbiAgdmFyIGIgPSB0aGlzLngucmVkU3ViKHRoaXMueik7XG4gIC8vIEMgPSBYMyArIFozXG4gIHZhciBjID0gcC54LnJlZEFkZChwLnopO1xuICAvLyBEID0gWDMgLSBaM1xuICB2YXIgZCA9IHAueC5yZWRTdWIocC56KTtcbiAgLy8gREEgPSBEICogQVxuICB2YXIgZGEgPSBkLnJlZE11bChhKTtcbiAgLy8gQ0IgPSBDICogQlxuICB2YXIgY2IgPSBjLnJlZE11bChiKTtcbiAgLy8gWDUgPSBaMSAqIChEQSArIENCKV4yXG4gIHZhciBueCA9IGRpZmYuei5yZWRNdWwoZGEucmVkQWRkKGNiKS5yZWRTcXIoKSk7XG4gIC8vIFo1ID0gWDEgKiAoREEgLSBDQileMlxuICB2YXIgbnogPSBkaWZmLngucmVkTXVsKGRhLnJlZElTdWIoY2IpLnJlZFNxcigpKTtcbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobngsIG56KTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiBtdWwoaykge1xuICB2YXIgdCA9IGsuY2xvbmUoKTtcbiAgdmFyIGEgPSB0aGlzOyAvLyAoTiAvIDIpICogUSArIFFcbiAgdmFyIGIgPSB0aGlzLmN1cnZlLnBvaW50KG51bGwsIG51bGwpOyAvLyAoTiAvIDIpICogUVxuICB2YXIgYyA9IHRoaXM7IC8vIFFcblxuICBmb3IgKHZhciBiaXRzID0gW107IHQuY21wbigwKSAhPT0gMDsgdC5pdXNocm4oMSkpXG4gICAgYml0cy5wdXNoKHQuYW5kbG4oMSkpO1xuXG4gIGZvciAodmFyIGkgPSBiaXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKGJpdHNbaV0gPT09IDApIHtcbiAgICAgIC8vIE4gKiBRICsgUSA9ICgoTiAvIDIpICogUSArIFEpKSArIChOIC8gMikgKiBRXG4gICAgICBhID0gYS5kaWZmQWRkKGIsIGMpO1xuICAgICAgLy8gTiAqIFEgPSAyICogKChOIC8gMikgKiBRICsgUSkpXG4gICAgICBiID0gYi5kYmwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTiAqIFEgPSAoKE4gLyAyKSAqIFEgKyBRKSArICgoTiAvIDIpICogUSlcbiAgICAgIGIgPSBhLmRpZmZBZGQoYiwgYyk7XG4gICAgICAvLyBOICogUSArIFEgPSAyICogKChOIC8gMikgKiBRICsgUSlcbiAgICAgIGEgPSBhLmRibCgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYjtcbn07XG5cblBvaW50LnByb3RvdHlwZS5tdWxBZGQgPSBmdW5jdGlvbiBtdWxBZGQoKSB7XG4gIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlJyk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuanVtbEFkZCA9IGZ1bmN0aW9uIGp1bWxBZGQoKSB7XG4gIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlJyk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZXEgPSBmdW5jdGlvbiBlcShvdGhlcikge1xuICByZXR1cm4gdGhpcy5nZXRYKCkuY21wKG90aGVyLmdldFgoKSkgPT09IDA7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUubm9ybWFsaXplID0gZnVuY3Rpb24gbm9ybWFsaXplKCkge1xuICB0aGlzLnggPSB0aGlzLngucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpO1xuICB0aGlzLnogPSB0aGlzLmN1cnZlLm9uZTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZ2V0WCA9IGZ1bmN0aW9uIGdldFgoKSB7XG4gIC8vIE5vcm1hbGl6ZSBjb29yZGluYXRlc1xuICB0aGlzLm5vcm1hbGl6ZSgpO1xuXG4gIHJldHVybiB0aGlzLnguZnJvbVJlZCgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGN1cnZlID0gcmVxdWlyZSgnLi4vY3VydmUnKTtcbnZhciBlbGxpcHRpYyA9IHJlcXVpcmUoJy4uLy4uL2VsbGlwdGljJyk7XG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcbnZhciBCYXNlID0gY3VydmUuYmFzZTtcblxudmFyIGFzc2VydCA9IGVsbGlwdGljLnV0aWxzLmFzc2VydDtcblxuZnVuY3Rpb24gU2hvcnRDdXJ2ZShjb25mKSB7XG4gIEJhc2UuY2FsbCh0aGlzLCAnc2hvcnQnLCBjb25mKTtcblxuICB0aGlzLmEgPSBuZXcgQk4oY29uZi5hLCAxNikudG9SZWQodGhpcy5yZWQpO1xuICB0aGlzLmIgPSBuZXcgQk4oY29uZi5iLCAxNikudG9SZWQodGhpcy5yZWQpO1xuICB0aGlzLnRpbnYgPSB0aGlzLnR3by5yZWRJbnZtKCk7XG5cbiAgdGhpcy56ZXJvQSA9IHRoaXMuYS5mcm9tUmVkKCkuY21wbigwKSA9PT0gMDtcbiAgdGhpcy50aHJlZUEgPSB0aGlzLmEuZnJvbVJlZCgpLnN1Yih0aGlzLnApLmNtcG4oLTMpID09PSAwO1xuXG4gIC8vIElmIHRoZSBjdXJ2ZSBpcyBlbmRvbW9ycGhpYywgcHJlY2FsY3VsYXRlIGJldGEgYW5kIGxhbWJkYVxuICB0aGlzLmVuZG8gPSB0aGlzLl9nZXRFbmRvbW9ycGhpc20oY29uZik7XG4gIHRoaXMuX2VuZG9XbmFmVDEgPSBuZXcgQXJyYXkoNCk7XG4gIHRoaXMuX2VuZG9XbmFmVDIgPSBuZXcgQXJyYXkoNCk7XG59XG5pbmhlcml0cyhTaG9ydEN1cnZlLCBCYXNlKTtcbm1vZHVsZS5leHBvcnRzID0gU2hvcnRDdXJ2ZTtcblxuU2hvcnRDdXJ2ZS5wcm90b3R5cGUuX2dldEVuZG9tb3JwaGlzbSA9IGZ1bmN0aW9uIF9nZXRFbmRvbW9ycGhpc20oY29uZikge1xuICAvLyBObyBlZmZpY2llbnQgZW5kb21vcnBoaXNtXG4gIGlmICghdGhpcy56ZXJvQSB8fCAhdGhpcy5nIHx8ICF0aGlzLm4gfHwgdGhpcy5wLm1vZG4oMykgIT09IDEpXG4gICAgcmV0dXJuO1xuXG4gIC8vIENvbXB1dGUgYmV0YSBhbmQgbGFtYmRhLCB0aGF0IGxhbWJkYSAqIFAgPSAoYmV0YSAqIFB4OyBQeSlcbiAgdmFyIGJldGE7XG4gIHZhciBsYW1iZGE7XG4gIGlmIChjb25mLmJldGEpIHtcbiAgICBiZXRhID0gbmV3IEJOKGNvbmYuYmV0YSwgMTYpLnRvUmVkKHRoaXMucmVkKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgYmV0YXMgPSB0aGlzLl9nZXRFbmRvUm9vdHModGhpcy5wKTtcbiAgICAvLyBDaG9vc2UgdGhlIHNtYWxsZXN0IGJldGFcbiAgICBiZXRhID0gYmV0YXNbMF0uY21wKGJldGFzWzFdKSA8IDAgPyBiZXRhc1swXSA6IGJldGFzWzFdO1xuICAgIGJldGEgPSBiZXRhLnRvUmVkKHRoaXMucmVkKTtcbiAgfVxuICBpZiAoY29uZi5sYW1iZGEpIHtcbiAgICBsYW1iZGEgPSBuZXcgQk4oY29uZi5sYW1iZGEsIDE2KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBDaG9vc2UgdGhlIGxhbWJkYSB0aGF0IGlzIG1hdGNoaW5nIHNlbGVjdGVkIGJldGFcbiAgICB2YXIgbGFtYmRhcyA9IHRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pO1xuICAgIGlmICh0aGlzLmcubXVsKGxhbWJkYXNbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChiZXRhKSkgPT09IDApIHtcbiAgICAgIGxhbWJkYSA9IGxhbWJkYXNbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhbWJkYSA9IGxhbWJkYXNbMV07XG4gICAgICBhc3NlcnQodGhpcy5nLm11bChsYW1iZGEpLnguY21wKHRoaXMuZy54LnJlZE11bChiZXRhKSkgPT09IDApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdldCBiYXNpcyB2ZWN0b3JzLCB1c2VkIGZvciBiYWxhbmNlZCBsZW5ndGgtdHdvIHJlcHJlc2VudGF0aW9uXG4gIHZhciBiYXNpcztcbiAgaWYgKGNvbmYuYmFzaXMpIHtcbiAgICBiYXNpcyA9IGNvbmYuYmFzaXMubWFwKGZ1bmN0aW9uKHZlYykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYTogbmV3IEJOKHZlYy5hLCAxNiksXG4gICAgICAgIGI6IG5ldyBCTih2ZWMuYiwgMTYpXG4gICAgICB9O1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGJhc2lzID0gdGhpcy5fZ2V0RW5kb0Jhc2lzKGxhbWJkYSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJldGE6IGJldGEsXG4gICAgbGFtYmRhOiBsYW1iZGEsXG4gICAgYmFzaXM6IGJhc2lzXG4gIH07XG59O1xuXG5TaG9ydEN1cnZlLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzID0gZnVuY3Rpb24gX2dldEVuZG9Sb290cyhudW0pIHtcbiAgLy8gRmluZCByb290cyBvZiBmb3IgeF4yICsgeCArIDEgaW4gRlxuICAvLyBSb290ID0gKC0xICstIFNxcnQoLTMpKSAvIDJcbiAgLy9cbiAgdmFyIHJlZCA9IG51bSA9PT0gdGhpcy5wID8gdGhpcy5yZWQgOiBCTi5tb250KG51bSk7XG4gIHZhciB0aW52ID0gbmV3IEJOKDIpLnRvUmVkKHJlZCkucmVkSW52bSgpO1xuICB2YXIgbnRpbnYgPSB0aW52LnJlZE5lZygpO1xuXG4gIHZhciBzID0gbmV3IEJOKDMpLnRvUmVkKHJlZCkucmVkTmVnKCkucmVkU3FydCgpLnJlZE11bCh0aW52KTtcblxuICB2YXIgbDEgPSBudGludi5yZWRBZGQocykuZnJvbVJlZCgpO1xuICB2YXIgbDIgPSBudGludi5yZWRTdWIocykuZnJvbVJlZCgpO1xuICByZXR1cm4gWyBsMSwgbDIgXTtcbn07XG5cblNob3J0Q3VydmUucHJvdG90eXBlLl9nZXRFbmRvQmFzaXMgPSBmdW5jdGlvbiBfZ2V0RW5kb0Jhc2lzKGxhbWJkYSkge1xuICAvLyBhcHJ4U3FydCA+PSBzcXJ0KHRoaXMubilcbiAgdmFyIGFwcnhTcXJ0ID0gdGhpcy5uLnVzaHJuKE1hdGguZmxvb3IodGhpcy5uLmJpdExlbmd0aCgpIC8gMikpO1xuXG4gIC8vIDMuNzRcbiAgLy8gUnVuIEVHQ0QsIHVudGlsIHIoTCArIDEpIDwgYXByeFNxcnRcbiAgdmFyIHUgPSBsYW1iZGE7XG4gIHZhciB2ID0gdGhpcy5uLmNsb25lKCk7XG4gIHZhciB4MSA9IG5ldyBCTigxKTtcbiAgdmFyIHkxID0gbmV3IEJOKDApO1xuICB2YXIgeDIgPSBuZXcgQk4oMCk7XG4gIHZhciB5MiA9IG5ldyBCTigxKTtcblxuICAvLyBOT1RFOiBhbGwgdmVjdG9ycyBhcmUgcm9vdHMgb2Y6IGEgKyBiICogbGFtYmRhID0gMCAobW9kIG4pXG4gIHZhciBhMDtcbiAgdmFyIGIwO1xuICAvLyBGaXJzdCB2ZWN0b3JcbiAgdmFyIGExO1xuICB2YXIgYjE7XG4gIC8vIFNlY29uZCB2ZWN0b3JcbiAgdmFyIGEyO1xuICB2YXIgYjI7XG5cbiAgdmFyIHByZXZSO1xuICB2YXIgaSA9IDA7XG4gIHZhciByO1xuICB2YXIgeDtcbiAgd2hpbGUgKHUuY21wbigwKSAhPT0gMCkge1xuICAgIHZhciBxID0gdi5kaXYodSk7XG4gICAgciA9IHYuc3ViKHEubXVsKHUpKTtcbiAgICB4ID0geDIuc3ViKHEubXVsKHgxKSk7XG4gICAgdmFyIHkgPSB5Mi5zdWIocS5tdWwoeTEpKTtcblxuICAgIGlmICghYTEgJiYgci5jbXAoYXByeFNxcnQpIDwgMCkge1xuICAgICAgYTAgPSBwcmV2Ui5uZWcoKTtcbiAgICAgIGIwID0geDE7XG4gICAgICBhMSA9IHIubmVnKCk7XG4gICAgICBiMSA9IHg7XG4gICAgfSBlbHNlIGlmIChhMSAmJiArK2kgPT09IDIpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBwcmV2UiA9IHI7XG5cbiAgICB2ID0gdTtcbiAgICB1ID0gcjtcbiAgICB4MiA9IHgxO1xuICAgIHgxID0geDtcbiAgICB5MiA9IHkxO1xuICAgIHkxID0geTtcbiAgfVxuICBhMiA9IHIubmVnKCk7XG4gIGIyID0geDtcblxuICB2YXIgbGVuMSA9IGExLnNxcigpLmFkZChiMS5zcXIoKSk7XG4gIHZhciBsZW4yID0gYTIuc3FyKCkuYWRkKGIyLnNxcigpKTtcbiAgaWYgKGxlbjIuY21wKGxlbjEpID49IDApIHtcbiAgICBhMiA9IGEwO1xuICAgIGIyID0gYjA7XG4gIH1cblxuICAvLyBOb3JtYWxpemUgc2lnbnNcbiAgaWYgKGExLm5lZ2F0aXZlKSB7XG4gICAgYTEgPSBhMS5uZWcoKTtcbiAgICBiMSA9IGIxLm5lZygpO1xuICB9XG4gIGlmIChhMi5uZWdhdGl2ZSkge1xuICAgIGEyID0gYTIubmVnKCk7XG4gICAgYjIgPSBiMi5uZWcoKTtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgeyBhOiBhMSwgYjogYjEgfSxcbiAgICB7IGE6IGEyLCBiOiBiMiB9XG4gIF07XG59O1xuXG5TaG9ydEN1cnZlLnByb3RvdHlwZS5fZW5kb1NwbGl0ID0gZnVuY3Rpb24gX2VuZG9TcGxpdChrKSB7XG4gIHZhciBiYXNpcyA9IHRoaXMuZW5kby5iYXNpcztcbiAgdmFyIHYxID0gYmFzaXNbMF07XG4gIHZhciB2MiA9IGJhc2lzWzFdO1xuXG4gIHZhciBjMSA9IHYyLmIubXVsKGspLmRpdlJvdW5kKHRoaXMubik7XG4gIHZhciBjMiA9IHYxLmIubmVnKCkubXVsKGspLmRpdlJvdW5kKHRoaXMubik7XG5cbiAgdmFyIHAxID0gYzEubXVsKHYxLmEpO1xuICB2YXIgcDIgPSBjMi5tdWwodjIuYSk7XG4gIHZhciBxMSA9IGMxLm11bCh2MS5iKTtcbiAgdmFyIHEyID0gYzIubXVsKHYyLmIpO1xuXG4gIC8vIENhbGN1bGF0ZSBhbnN3ZXJcbiAgdmFyIGsxID0gay5zdWIocDEpLnN1YihwMik7XG4gIHZhciBrMiA9IHExLmFkZChxMikubmVnKCk7XG4gIHJldHVybiB7IGsxOiBrMSwgazI6IGsyIH07XG59O1xuXG5TaG9ydEN1cnZlLnByb3RvdHlwZS5wb2ludEZyb21YID0gZnVuY3Rpb24gcG9pbnRGcm9tWCh4LCBvZGQpIHtcbiAgeCA9IG5ldyBCTih4LCAxNik7XG4gIGlmICgheC5yZWQpXG4gICAgeCA9IHgudG9SZWQodGhpcy5yZWQpO1xuXG4gIHZhciB5MiA9IHgucmVkU3FyKCkucmVkTXVsKHgpLnJlZElBZGQoeC5yZWRNdWwodGhpcy5hKSkucmVkSUFkZCh0aGlzLmIpO1xuICB2YXIgeSA9IHkyLnJlZFNxcnQoKTtcbiAgaWYgKHkucmVkU3FyKCkucmVkU3ViKHkyKS5jbXAodGhpcy56ZXJvKSAhPT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcG9pbnQnKTtcblxuICAvLyBYWFggSXMgdGhlcmUgYW55IHdheSB0byB0ZWxsIGlmIHRoZSBudW1iZXIgaXMgb2RkIHdpdGhvdXQgY29udmVydGluZyBpdFxuICAvLyB0byBub24tcmVkIGZvcm0/XG4gIHZhciBpc09kZCA9IHkuZnJvbVJlZCgpLmlzT2RkKCk7XG4gIGlmIChvZGQgJiYgIWlzT2RkIHx8ICFvZGQgJiYgaXNPZGQpXG4gICAgeSA9IHkucmVkTmVnKCk7XG5cbiAgcmV0dXJuIHRoaXMucG9pbnQoeCwgeSk7XG59O1xuXG5TaG9ydEN1cnZlLnByb3RvdHlwZS52YWxpZGF0ZSA9IGZ1bmN0aW9uIHZhbGlkYXRlKHBvaW50KSB7XG4gIGlmIChwb2ludC5pbmYpXG4gICAgcmV0dXJuIHRydWU7XG5cbiAgdmFyIHggPSBwb2ludC54O1xuICB2YXIgeSA9IHBvaW50Lnk7XG5cbiAgdmFyIGF4ID0gdGhpcy5hLnJlZE11bCh4KTtcbiAgdmFyIHJocyA9IHgucmVkU3FyKCkucmVkTXVsKHgpLnJlZElBZGQoYXgpLnJlZElBZGQodGhpcy5iKTtcbiAgcmV0dXJuIHkucmVkU3FyKCkucmVkSVN1YihyaHMpLmNtcG4oMCkgPT09IDA7XG59O1xuXG5TaG9ydEN1cnZlLnByb3RvdHlwZS5fZW5kb1duYWZNdWxBZGQgPVxuICAgIGZ1bmN0aW9uIF9lbmRvV25hZk11bEFkZChwb2ludHMsIGNvZWZmcywgamFjb2JpYW5SZXN1bHQpIHtcbiAgdmFyIG5wb2ludHMgPSB0aGlzLl9lbmRvV25hZlQxO1xuICB2YXIgbmNvZWZmcyA9IHRoaXMuX2VuZG9XbmFmVDI7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNwbGl0ID0gdGhpcy5fZW5kb1NwbGl0KGNvZWZmc1tpXSk7XG4gICAgdmFyIHAgPSBwb2ludHNbaV07XG4gICAgdmFyIGJldGEgPSBwLl9nZXRCZXRhKCk7XG5cbiAgICBpZiAoc3BsaXQuazEubmVnYXRpdmUpIHtcbiAgICAgIHNwbGl0LmsxLmluZWcoKTtcbiAgICAgIHAgPSBwLm5lZyh0cnVlKTtcbiAgICB9XG4gICAgaWYgKHNwbGl0LmsyLm5lZ2F0aXZlKSB7XG4gICAgICBzcGxpdC5rMi5pbmVnKCk7XG4gICAgICBiZXRhID0gYmV0YS5uZWcodHJ1ZSk7XG4gICAgfVxuXG4gICAgbnBvaW50c1tpICogMl0gPSBwO1xuICAgIG5wb2ludHNbaSAqIDIgKyAxXSA9IGJldGE7XG4gICAgbmNvZWZmc1tpICogMl0gPSBzcGxpdC5rMTtcbiAgICBuY29lZmZzW2kgKiAyICsgMV0gPSBzcGxpdC5rMjtcbiAgfVxuICB2YXIgcmVzID0gdGhpcy5fd25hZk11bEFkZCgxLCBucG9pbnRzLCBuY29lZmZzLCBpICogMiwgamFjb2JpYW5SZXN1bHQpO1xuXG4gIC8vIENsZWFuLXVwIHJlZmVyZW5jZXMgdG8gcG9pbnRzIGFuZCBjb2VmZmljaWVudHNcbiAgZm9yICh2YXIgaiA9IDA7IGogPCBpICogMjsgaisrKSB7XG4gICAgbnBvaW50c1tqXSA9IG51bGw7XG4gICAgbmNvZWZmc1tqXSA9IG51bGw7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn07XG5cbmZ1bmN0aW9uIFBvaW50KGN1cnZlLCB4LCB5LCBpc1JlZCkge1xuICBCYXNlLkJhc2VQb2ludC5jYWxsKHRoaXMsIGN1cnZlLCAnYWZmaW5lJyk7XG4gIGlmICh4ID09PSBudWxsICYmIHkgPT09IG51bGwpIHtcbiAgICB0aGlzLnggPSBudWxsO1xuICAgIHRoaXMueSA9IG51bGw7XG4gICAgdGhpcy5pbmYgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHRoaXMueCA9IG5ldyBCTih4LCAxNik7XG4gICAgdGhpcy55ID0gbmV3IEJOKHksIDE2KTtcbiAgICAvLyBGb3JjZSByZWRnb21lcnkgcmVwcmVzZW50YXRpb24gd2hlbiBsb2FkaW5nIGZyb20gSlNPTlxuICAgIGlmIChpc1JlZCkge1xuICAgICAgdGhpcy54LmZvcmNlUmVkKHRoaXMuY3VydmUucmVkKTtcbiAgICAgIHRoaXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCk7XG4gICAgfVxuICAgIGlmICghdGhpcy54LnJlZClcbiAgICAgIHRoaXMueCA9IHRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCk7XG4gICAgaWYgKCF0aGlzLnkucmVkKVxuICAgICAgdGhpcy55ID0gdGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKTtcbiAgICB0aGlzLmluZiA9IGZhbHNlO1xuICB9XG59XG5pbmhlcml0cyhQb2ludCwgQmFzZS5CYXNlUG9pbnQpO1xuXG5TaG9ydEN1cnZlLnByb3RvdHlwZS5wb2ludCA9IGZ1bmN0aW9uIHBvaW50KHgsIHksIGlzUmVkKSB7XG4gIHJldHVybiBuZXcgUG9pbnQodGhpcywgeCwgeSwgaXNSZWQpO1xufTtcblxuU2hvcnRDdXJ2ZS5wcm90b3R5cGUucG9pbnRGcm9tSlNPTiA9IGZ1bmN0aW9uIHBvaW50RnJvbUpTT04ob2JqLCByZWQpIHtcbiAgcmV0dXJuIFBvaW50LmZyb21KU09OKHRoaXMsIG9iaiwgcmVkKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5fZ2V0QmV0YSA9IGZ1bmN0aW9uIF9nZXRCZXRhKCkge1xuICBpZiAoIXRoaXMuY3VydmUuZW5kbylcbiAgICByZXR1cm47XG5cbiAgdmFyIHByZSA9IHRoaXMucHJlY29tcHV0ZWQ7XG4gIGlmIChwcmUgJiYgcHJlLmJldGEpXG4gICAgcmV0dXJuIHByZS5iZXRhO1xuXG4gIHZhciBiZXRhID0gdGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngucmVkTXVsKHRoaXMuY3VydmUuZW5kby5iZXRhKSwgdGhpcy55KTtcbiAgaWYgKHByZSkge1xuICAgIHZhciBjdXJ2ZSA9IHRoaXMuY3VydmU7XG4gICAgdmFyIGVuZG9NdWwgPSBmdW5jdGlvbihwKSB7XG4gICAgICByZXR1cm4gY3VydmUucG9pbnQocC54LnJlZE11bChjdXJ2ZS5lbmRvLmJldGEpLCBwLnkpO1xuICAgIH07XG4gICAgcHJlLmJldGEgPSBiZXRhO1xuICAgIGJldGEucHJlY29tcHV0ZWQgPSB7XG4gICAgICBiZXRhOiBudWxsLFxuICAgICAgbmFmOiBwcmUubmFmICYmIHtcbiAgICAgICAgd25kOiBwcmUubmFmLnduZCxcbiAgICAgICAgcG9pbnRzOiBwcmUubmFmLnBvaW50cy5tYXAoZW5kb011bClcbiAgICAgIH0sXG4gICAgICBkb3VibGVzOiBwcmUuZG91YmxlcyAmJiB7XG4gICAgICAgIHN0ZXA6IHByZS5kb3VibGVzLnN0ZXAsXG4gICAgICAgIHBvaW50czogcHJlLmRvdWJsZXMucG9pbnRzLm1hcChlbmRvTXVsKVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgcmV0dXJuIGJldGE7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OKCkge1xuICBpZiAoIXRoaXMucHJlY29tcHV0ZWQpXG4gICAgcmV0dXJuIFsgdGhpcy54LCB0aGlzLnkgXTtcblxuICByZXR1cm4gWyB0aGlzLngsIHRoaXMueSwgdGhpcy5wcmVjb21wdXRlZCAmJiB7XG4gICAgZG91YmxlczogdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzICYmIHtcbiAgICAgIHN0ZXA6IHRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLFxuICAgICAgcG9pbnRzOiB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMucG9pbnRzLnNsaWNlKDEpXG4gICAgfSxcbiAgICBuYWY6IHRoaXMucHJlY29tcHV0ZWQubmFmICYmIHtcbiAgICAgIHduZDogdGhpcy5wcmVjb21wdXRlZC5uYWYud25kLFxuICAgICAgcG9pbnRzOiB0aGlzLnByZWNvbXB1dGVkLm5hZi5wb2ludHMuc2xpY2UoMSlcbiAgICB9XG4gIH0gXTtcbn07XG5cblBvaW50LmZyb21KU09OID0gZnVuY3Rpb24gZnJvbUpTT04oY3VydmUsIG9iaiwgcmVkKSB7XG4gIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJylcbiAgICBvYmogPSBKU09OLnBhcnNlKG9iaik7XG4gIHZhciByZXMgPSBjdXJ2ZS5wb2ludChvYmpbMF0sIG9ialsxXSwgcmVkKTtcbiAgaWYgKCFvYmpbMl0pXG4gICAgcmV0dXJuIHJlcztcblxuICBmdW5jdGlvbiBvYmoycG9pbnQob2JqKSB7XG4gICAgcmV0dXJuIGN1cnZlLnBvaW50KG9ialswXSwgb2JqWzFdLCByZWQpO1xuICB9XG5cbiAgdmFyIHByZSA9IG9ialsyXTtcbiAgcmVzLnByZWNvbXB1dGVkID0ge1xuICAgIGJldGE6IG51bGwsXG4gICAgZG91YmxlczogcHJlLmRvdWJsZXMgJiYge1xuICAgICAgc3RlcDogcHJlLmRvdWJsZXMuc3RlcCxcbiAgICAgIHBvaW50czogWyByZXMgXS5jb25jYXQocHJlLmRvdWJsZXMucG9pbnRzLm1hcChvYmoycG9pbnQpKVxuICAgIH0sXG4gICAgbmFmOiBwcmUubmFmICYmIHtcbiAgICAgIHduZDogcHJlLm5hZi53bmQsXG4gICAgICBwb2ludHM6IFsgcmVzIF0uY29uY2F0KHByZS5uYWYucG9pbnRzLm1hcChvYmoycG9pbnQpKVxuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHJlcztcbn07XG5cblBvaW50LnByb3RvdHlwZS5pbnNwZWN0ID0gZnVuY3Rpb24gaW5zcGVjdCgpIHtcbiAgaWYgKHRoaXMuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiAnPEVDIFBvaW50IEluZmluaXR5Pic7XG4gIHJldHVybiAnPEVDIFBvaW50IHg6ICcgKyB0aGlzLnguZnJvbVJlZCgpLnRvU3RyaW5nKDE2LCAyKSArXG4gICAgICAnIHk6ICcgKyB0aGlzLnkuZnJvbVJlZCgpLnRvU3RyaW5nKDE2LCAyKSArICc+Jztcbn07XG5cblBvaW50LnByb3RvdHlwZS5pc0luZmluaXR5ID0gZnVuY3Rpb24gaXNJbmZpbml0eSgpIHtcbiAgcmV0dXJuIHRoaXMuaW5mO1xufTtcblxuUG9pbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIGFkZChwKSB7XG4gIC8vIE8gKyBQID0gUFxuICBpZiAodGhpcy5pbmYpXG4gICAgcmV0dXJuIHA7XG5cbiAgLy8gUCArIE8gPSBQXG4gIGlmIChwLmluZilcbiAgICByZXR1cm4gdGhpcztcblxuICAvLyBQICsgUCA9IDJQXG4gIGlmICh0aGlzLmVxKHApKVxuICAgIHJldHVybiB0aGlzLmRibCgpO1xuXG4gIC8vIFAgKyAoLVApID0gT1xuICBpZiAodGhpcy5uZWcoKS5lcShwKSlcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLCBudWxsKTtcblxuICAvLyBQICsgUSA9IE9cbiAgaWYgKHRoaXMueC5jbXAocC54KSA9PT0gMClcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLCBudWxsKTtcblxuICB2YXIgYyA9IHRoaXMueS5yZWRTdWIocC55KTtcbiAgaWYgKGMuY21wbigwKSAhPT0gMClcbiAgICBjID0gYy5yZWRNdWwodGhpcy54LnJlZFN1YihwLngpLnJlZEludm0oKSk7XG4gIHZhciBueCA9IGMucmVkU3FyKCkucmVkSVN1Yih0aGlzLngpLnJlZElTdWIocC54KTtcbiAgdmFyIG55ID0gYy5yZWRNdWwodGhpcy54LnJlZFN1YihueCkpLnJlZElTdWIodGhpcy55KTtcbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobngsIG55KTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5kYmwgPSBmdW5jdGlvbiBkYmwoKSB7XG4gIGlmICh0aGlzLmluZilcbiAgICByZXR1cm4gdGhpcztcblxuICAvLyAyUCA9IE9cbiAgdmFyIHlzMSA9IHRoaXMueS5yZWRBZGQodGhpcy55KTtcbiAgaWYgKHlzMS5jbXBuKDApID09PSAwKVxuICAgIHJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsIG51bGwpO1xuXG4gIHZhciBhID0gdGhpcy5jdXJ2ZS5hO1xuXG4gIHZhciB4MiA9IHRoaXMueC5yZWRTcXIoKTtcbiAgdmFyIGR5aW52ID0geXMxLnJlZEludm0oKTtcbiAgdmFyIGMgPSB4Mi5yZWRBZGQoeDIpLnJlZElBZGQoeDIpLnJlZElBZGQoYSkucmVkTXVsKGR5aW52KTtcblxuICB2YXIgbnggPSBjLnJlZFNxcigpLnJlZElTdWIodGhpcy54LnJlZEFkZCh0aGlzLngpKTtcbiAgdmFyIG55ID0gYy5yZWRNdWwodGhpcy54LnJlZFN1YihueCkpLnJlZElTdWIodGhpcy55KTtcbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobngsIG55KTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5nZXRYID0gZnVuY3Rpb24gZ2V0WCgpIHtcbiAgcmV0dXJuIHRoaXMueC5mcm9tUmVkKCk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZ2V0WSA9IGZ1bmN0aW9uIGdldFkoKSB7XG4gIHJldHVybiB0aGlzLnkuZnJvbVJlZCgpO1xufTtcblxuUG9pbnQucHJvdG90eXBlLm11bCA9IGZ1bmN0aW9uIG11bChrKSB7XG4gIGsgPSBuZXcgQk4oaywgMTYpO1xuXG4gIGlmICh0aGlzLl9oYXNEb3VibGVzKGspKVxuICAgIHJldHVybiB0aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLCBrKTtcbiAgZWxzZSBpZiAodGhpcy5jdXJ2ZS5lbmRvKVxuICAgIHJldHVybiB0aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChbIHRoaXMgXSwgWyBrIF0pO1xuICBlbHNlXG4gICAgcmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWwodGhpcywgayk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUubXVsQWRkID0gZnVuY3Rpb24gbXVsQWRkKGsxLCBwMiwgazIpIHtcbiAgdmFyIHBvaW50cyA9IFsgdGhpcywgcDIgXTtcbiAgdmFyIGNvZWZmcyA9IFsgazEsIGsyIF07XG4gIGlmICh0aGlzLmN1cnZlLmVuZG8pXG4gICAgcmV0dXJuIHRoaXMuY3VydmUuX2VuZG9XbmFmTXVsQWRkKHBvaW50cywgY29lZmZzKTtcbiAgZWxzZVxuICAgIHJldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsIHBvaW50cywgY29lZmZzLCAyKTtcbn07XG5cblBvaW50LnByb3RvdHlwZS5qbXVsQWRkID0gZnVuY3Rpb24gam11bEFkZChrMSwgcDIsIGsyKSB7XG4gIHZhciBwb2ludHMgPSBbIHRoaXMsIHAyIF07XG4gIHZhciBjb2VmZnMgPSBbIGsxLCBrMiBdO1xuICBpZiAodGhpcy5jdXJ2ZS5lbmRvKVxuICAgIHJldHVybiB0aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChwb2ludHMsIGNvZWZmcywgdHJ1ZSk7XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLCBwb2ludHMsIGNvZWZmcywgMiwgdHJ1ZSk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUuZXEgPSBmdW5jdGlvbiBlcShwKSB7XG4gIHJldHVybiB0aGlzID09PSBwIHx8XG4gICAgICAgICB0aGlzLmluZiA9PT0gcC5pbmYgJiZcbiAgICAgICAgICAgICAodGhpcy5pbmYgfHwgdGhpcy54LmNtcChwLngpID09PSAwICYmIHRoaXMueS5jbXAocC55KSA9PT0gMCk7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUubmVnID0gZnVuY3Rpb24gbmVnKF9wcmVjb21wdXRlKSB7XG4gIGlmICh0aGlzLmluZilcbiAgICByZXR1cm4gdGhpcztcblxuICB2YXIgcmVzID0gdGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngsIHRoaXMueS5yZWROZWcoKSk7XG4gIGlmIChfcHJlY29tcHV0ZSAmJiB0aGlzLnByZWNvbXB1dGVkKSB7XG4gICAgdmFyIHByZSA9IHRoaXMucHJlY29tcHV0ZWQ7XG4gICAgdmFyIG5lZ2F0ZSA9IGZ1bmN0aW9uKHApIHtcbiAgICAgIHJldHVybiBwLm5lZygpO1xuICAgIH07XG4gICAgcmVzLnByZWNvbXB1dGVkID0ge1xuICAgICAgbmFmOiBwcmUubmFmICYmIHtcbiAgICAgICAgd25kOiBwcmUubmFmLnduZCxcbiAgICAgICAgcG9pbnRzOiBwcmUubmFmLnBvaW50cy5tYXAobmVnYXRlKVxuICAgICAgfSxcbiAgICAgIGRvdWJsZXM6IHByZS5kb3VibGVzICYmIHtcbiAgICAgICAgc3RlcDogcHJlLmRvdWJsZXMuc3RlcCxcbiAgICAgICAgcG9pbnRzOiBwcmUuZG91Ymxlcy5wb2ludHMubWFwKG5lZ2F0ZSlcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHJldHVybiByZXM7XG59O1xuXG5Qb2ludC5wcm90b3R5cGUudG9KID0gZnVuY3Rpb24gdG9KKCkge1xuICBpZiAodGhpcy5pbmYpXG4gICAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG51bGwsIG51bGwsIG51bGwpO1xuXG4gIHZhciByZXMgPSB0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsIHRoaXMueSwgdGhpcy5jdXJ2ZS5vbmUpO1xuICByZXR1cm4gcmVzO1xufTtcblxuZnVuY3Rpb24gSlBvaW50KGN1cnZlLCB4LCB5LCB6KSB7XG4gIEJhc2UuQmFzZVBvaW50LmNhbGwodGhpcywgY3VydmUsICdqYWNvYmlhbicpO1xuICBpZiAoeCA9PT0gbnVsbCAmJiB5ID09PSBudWxsICYmIHogPT09IG51bGwpIHtcbiAgICB0aGlzLnggPSB0aGlzLmN1cnZlLm9uZTtcbiAgICB0aGlzLnkgPSB0aGlzLmN1cnZlLm9uZTtcbiAgICB0aGlzLnogPSBuZXcgQk4oMCk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy54ID0gbmV3IEJOKHgsIDE2KTtcbiAgICB0aGlzLnkgPSBuZXcgQk4oeSwgMTYpO1xuICAgIHRoaXMueiA9IG5ldyBCTih6LCAxNik7XG4gIH1cbiAgaWYgKCF0aGlzLngucmVkKVxuICAgIHRoaXMueCA9IHRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCk7XG4gIGlmICghdGhpcy55LnJlZClcbiAgICB0aGlzLnkgPSB0aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpO1xuICBpZiAoIXRoaXMuei5yZWQpXG4gICAgdGhpcy56ID0gdGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKTtcblxuICB0aGlzLnpPbmUgPSB0aGlzLnogPT09IHRoaXMuY3VydmUub25lO1xufVxuaW5oZXJpdHMoSlBvaW50LCBCYXNlLkJhc2VQb2ludCk7XG5cblNob3J0Q3VydmUucHJvdG90eXBlLmpwb2ludCA9IGZ1bmN0aW9uIGpwb2ludCh4LCB5LCB6KSB7XG4gIHJldHVybiBuZXcgSlBvaW50KHRoaXMsIHgsIHksIHopO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS50b1AgPSBmdW5jdGlvbiB0b1AoKSB7XG4gIGlmICh0aGlzLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLCBudWxsKTtcblxuICB2YXIgemludiA9IHRoaXMuei5yZWRJbnZtKCk7XG4gIHZhciB6aW52MiA9IHppbnYucmVkU3FyKCk7XG4gIHZhciBheCA9IHRoaXMueC5yZWRNdWwoemludjIpO1xuICB2YXIgYXkgPSB0aGlzLnkucmVkTXVsKHppbnYyKS5yZWRNdWwoemludik7XG5cbiAgcmV0dXJuIHRoaXMuY3VydmUucG9pbnQoYXgsIGF5KTtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUubmVnID0gZnVuY3Rpb24gbmVnKCkge1xuICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LCB0aGlzLnkucmVkTmVnKCksIHRoaXMueik7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIGFkZChwKSB7XG4gIC8vIE8gKyBQID0gUFxuICBpZiAodGhpcy5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHA7XG5cbiAgLy8gUCArIE8gPSBQXG4gIGlmIChwLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gdGhpcztcblxuICAvLyAxMk0gKyA0UyArIDdBXG4gIHZhciBwejIgPSBwLnoucmVkU3FyKCk7XG4gIHZhciB6MiA9IHRoaXMuei5yZWRTcXIoKTtcbiAgdmFyIHUxID0gdGhpcy54LnJlZE11bChwejIpO1xuICB2YXIgdTIgPSBwLngucmVkTXVsKHoyKTtcbiAgdmFyIHMxID0gdGhpcy55LnJlZE11bChwejIucmVkTXVsKHAueikpO1xuICB2YXIgczIgPSBwLnkucmVkTXVsKHoyLnJlZE11bCh0aGlzLnopKTtcblxuICB2YXIgaCA9IHUxLnJlZFN1Yih1Mik7XG4gIHZhciByID0gczEucmVkU3ViKHMyKTtcbiAgaWYgKGguY21wbigwKSA9PT0gMCkge1xuICAgIGlmIChyLmNtcG4oMCkgIT09IDApXG4gICAgICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIHRoaXMuZGJsKCk7XG4gIH1cblxuICB2YXIgaDIgPSBoLnJlZFNxcigpO1xuICB2YXIgaDMgPSBoMi5yZWRNdWwoaCk7XG4gIHZhciB2ID0gdTEucmVkTXVsKGgyKTtcblxuICB2YXIgbnggPSByLnJlZFNxcigpLnJlZElBZGQoaDMpLnJlZElTdWIodikucmVkSVN1Yih2KTtcbiAgdmFyIG55ID0gci5yZWRNdWwodi5yZWRJU3ViKG54KSkucmVkSVN1YihzMS5yZWRNdWwoaDMpKTtcbiAgdmFyIG56ID0gdGhpcy56LnJlZE11bChwLnopLnJlZE11bChoKTtcblxuICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobngsIG55LCBueik7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLm1peGVkQWRkID0gZnVuY3Rpb24gbWl4ZWRBZGQocCkge1xuICAvLyBPICsgUCA9IFBcbiAgaWYgKHRoaXMuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiBwLnRvSigpO1xuXG4gIC8vIFAgKyBPID0gUFxuICBpZiAocC5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gOE0gKyAzUyArIDdBXG4gIHZhciB6MiA9IHRoaXMuei5yZWRTcXIoKTtcbiAgdmFyIHUxID0gdGhpcy54O1xuICB2YXIgdTIgPSBwLngucmVkTXVsKHoyKTtcbiAgdmFyIHMxID0gdGhpcy55O1xuICB2YXIgczIgPSBwLnkucmVkTXVsKHoyKS5yZWRNdWwodGhpcy56KTtcblxuICB2YXIgaCA9IHUxLnJlZFN1Yih1Mik7XG4gIHZhciByID0gczEucmVkU3ViKHMyKTtcbiAgaWYgKGguY21wbigwKSA9PT0gMCkge1xuICAgIGlmIChyLmNtcG4oMCkgIT09IDApXG4gICAgICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIHRoaXMuZGJsKCk7XG4gIH1cblxuICB2YXIgaDIgPSBoLnJlZFNxcigpO1xuICB2YXIgaDMgPSBoMi5yZWRNdWwoaCk7XG4gIHZhciB2ID0gdTEucmVkTXVsKGgyKTtcblxuICB2YXIgbnggPSByLnJlZFNxcigpLnJlZElBZGQoaDMpLnJlZElTdWIodikucmVkSVN1Yih2KTtcbiAgdmFyIG55ID0gci5yZWRNdWwodi5yZWRJU3ViKG54KSkucmVkSVN1YihzMS5yZWRNdWwoaDMpKTtcbiAgdmFyIG56ID0gdGhpcy56LnJlZE11bChoKTtcblxuICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobngsIG55LCBueik7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLmRibHAgPSBmdW5jdGlvbiBkYmxwKHBvdykge1xuICBpZiAocG93ID09PSAwKVxuICAgIHJldHVybiB0aGlzO1xuICBpZiAodGhpcy5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHRoaXM7XG4gIGlmICghcG93KVxuICAgIHJldHVybiB0aGlzLmRibCgpO1xuXG4gIGlmICh0aGlzLmN1cnZlLnplcm9BIHx8IHRoaXMuY3VydmUudGhyZWVBKSB7XG4gICAgdmFyIHIgPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcG93OyBpKyspXG4gICAgICByID0gci5kYmwoKTtcbiAgICByZXR1cm4gcjtcbiAgfVxuXG4gIC8vIDFNICsgMlMgKyAxQSArIE4gKiAoNFMgKyA1TSArIDhBKVxuICAvLyBOID0gMSA9PiA2TSArIDZTICsgOUFcbiAgdmFyIGEgPSB0aGlzLmN1cnZlLmE7XG4gIHZhciB0aW52ID0gdGhpcy5jdXJ2ZS50aW52O1xuXG4gIHZhciBqeCA9IHRoaXMueDtcbiAgdmFyIGp5ID0gdGhpcy55O1xuICB2YXIganogPSB0aGlzLno7XG4gIHZhciBqejQgPSBqei5yZWRTcXIoKS5yZWRTcXIoKTtcblxuICAvLyBSZXVzZSByZXN1bHRzXG4gIHZhciBqeWQgPSBqeS5yZWRBZGQoankpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHBvdzsgaSsrKSB7XG4gICAgdmFyIGp4MiA9IGp4LnJlZFNxcigpO1xuICAgIHZhciBqeWQyID0ganlkLnJlZFNxcigpO1xuICAgIHZhciBqeWQ0ID0ganlkMi5yZWRTcXIoKTtcbiAgICB2YXIgYyA9IGp4Mi5yZWRBZGQoangyKS5yZWRJQWRkKGp4MikucmVkSUFkZChhLnJlZE11bChqejQpKTtcblxuICAgIHZhciB0MSA9IGp4LnJlZE11bChqeWQyKTtcbiAgICB2YXIgbnggPSBjLnJlZFNxcigpLnJlZElTdWIodDEucmVkQWRkKHQxKSk7XG4gICAgdmFyIHQyID0gdDEucmVkSVN1YihueCk7XG4gICAgdmFyIGRueSA9IGMucmVkTXVsKHQyKTtcbiAgICBkbnkgPSBkbnkucmVkSUFkZChkbnkpLnJlZElTdWIoanlkNCk7XG4gICAgdmFyIG56ID0ganlkLnJlZE11bChqeik7XG4gICAgaWYgKGkgKyAxIDwgcG93KVxuICAgICAgano0ID0gano0LnJlZE11bChqeWQ0KTtcblxuICAgIGp4ID0gbng7XG4gICAganogPSBuejtcbiAgICBqeWQgPSBkbnk7XG4gIH1cblxuICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoangsIGp5ZC5yZWRNdWwodGludiksIGp6KTtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUuZGJsID0gZnVuY3Rpb24gZGJsKCkge1xuICBpZiAodGhpcy5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgaWYgKHRoaXMuY3VydmUuemVyb0EpXG4gICAgcmV0dXJuIHRoaXMuX3plcm9EYmwoKTtcbiAgZWxzZSBpZiAodGhpcy5jdXJ2ZS50aHJlZUEpXG4gICAgcmV0dXJuIHRoaXMuX3RocmVlRGJsKCk7XG4gIGVsc2VcbiAgICByZXR1cm4gdGhpcy5fZGJsKCk7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLl96ZXJvRGJsID0gZnVuY3Rpb24gX3plcm9EYmwoKSB7XG4gIHZhciBueDtcbiAgdmFyIG55O1xuICB2YXIgbno7XG4gIC8vIFogPSAxXG4gIGlmICh0aGlzLnpPbmUpIHtcbiAgICAvLyBoeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tc2hvcnR3LWphY29iaWFuLTAuaHRtbFxuICAgIC8vICAgICAjZG91YmxpbmctbWRibC0yMDA3LWJsXG4gICAgLy8gMU0gKyA1UyArIDE0QVxuXG4gICAgLy8gWFggPSBYMV4yXG4gICAgdmFyIHh4ID0gdGhpcy54LnJlZFNxcigpO1xuICAgIC8vIFlZID0gWTFeMlxuICAgIHZhciB5eSA9IHRoaXMueS5yZWRTcXIoKTtcbiAgICAvLyBZWVlZID0gWVleMlxuICAgIHZhciB5eXl5ID0geXkucmVkU3FyKCk7XG4gICAgLy8gUyA9IDIgKiAoKFgxICsgWVkpXjIgLSBYWCAtIFlZWVkpXG4gICAgdmFyIHMgPSB0aGlzLngucmVkQWRkKHl5KS5yZWRTcXIoKS5yZWRJU3ViKHh4KS5yZWRJU3ViKHl5eXkpO1xuICAgIHMgPSBzLnJlZElBZGQocyk7XG4gICAgLy8gTSA9IDMgKiBYWCArIGE7IGEgPSAwXG4gICAgdmFyIG0gPSB4eC5yZWRBZGQoeHgpLnJlZElBZGQoeHgpO1xuICAgIC8vIFQgPSBNIF4gMiAtIDIqU1xuICAgIHZhciB0ID0gbS5yZWRTcXIoKS5yZWRJU3ViKHMpLnJlZElTdWIocyk7XG5cbiAgICAvLyA4ICogWVlZWVxuICAgIHZhciB5eXl5OCA9IHl5eXkucmVkSUFkZCh5eXl5KTtcbiAgICB5eXl5OCA9IHl5eXk4LnJlZElBZGQoeXl5eTgpO1xuICAgIHl5eXk4ID0geXl5eTgucmVkSUFkZCh5eXl5OCk7XG5cbiAgICAvLyBYMyA9IFRcbiAgICBueCA9IHQ7XG4gICAgLy8gWTMgPSBNICogKFMgLSBUKSAtIDggKiBZWVlZXG4gICAgbnkgPSBtLnJlZE11bChzLnJlZElTdWIodCkpLnJlZElTdWIoeXl5eTgpO1xuICAgIC8vIFozID0gMipZMVxuICAgIG56ID0gdGhpcy55LnJlZEFkZCh0aGlzLnkpO1xuICB9IGVsc2Uge1xuICAgIC8vIGh5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by1zaG9ydHctamFjb2JpYW4tMC5odG1sXG4gICAgLy8gICAgICNkb3VibGluZy1kYmwtMjAwOS1sXG4gICAgLy8gMk0gKyA1UyArIDEzQVxuXG4gICAgLy8gQSA9IFgxXjJcbiAgICB2YXIgYSA9IHRoaXMueC5yZWRTcXIoKTtcbiAgICAvLyBCID0gWTFeMlxuICAgIHZhciBiID0gdGhpcy55LnJlZFNxcigpO1xuICAgIC8vIEMgPSBCXjJcbiAgICB2YXIgYyA9IGIucmVkU3FyKCk7XG4gICAgLy8gRCA9IDIgKiAoKFgxICsgQileMiAtIEEgLSBDKVxuICAgIHZhciBkID0gdGhpcy54LnJlZEFkZChiKS5yZWRTcXIoKS5yZWRJU3ViKGEpLnJlZElTdWIoYyk7XG4gICAgZCA9IGQucmVkSUFkZChkKTtcbiAgICAvLyBFID0gMyAqIEFcbiAgICB2YXIgZSA9IGEucmVkQWRkKGEpLnJlZElBZGQoYSk7XG4gICAgLy8gRiA9IEVeMlxuICAgIHZhciBmID0gZS5yZWRTcXIoKTtcblxuICAgIC8vIDggKiBDXG4gICAgdmFyIGM4ID0gYy5yZWRJQWRkKGMpO1xuICAgIGM4ID0gYzgucmVkSUFkZChjOCk7XG4gICAgYzggPSBjOC5yZWRJQWRkKGM4KTtcblxuICAgIC8vIFgzID0gRiAtIDIgKiBEXG4gICAgbnggPSBmLnJlZElTdWIoZCkucmVkSVN1YihkKTtcbiAgICAvLyBZMyA9IEUgKiAoRCAtIFgzKSAtIDggKiBDXG4gICAgbnkgPSBlLnJlZE11bChkLnJlZElTdWIobngpKS5yZWRJU3ViKGM4KTtcbiAgICAvLyBaMyA9IDIgKiBZMSAqIFoxXG4gICAgbnogPSB0aGlzLnkucmVkTXVsKHRoaXMueik7XG4gICAgbnogPSBuei5yZWRJQWRkKG56KTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLmN1cnZlLmpwb2ludChueCwgbnksIG56KTtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUuX3RocmVlRGJsID0gZnVuY3Rpb24gX3RocmVlRGJsKCkge1xuICB2YXIgbng7XG4gIHZhciBueTtcbiAgdmFyIG56O1xuICAvLyBaID0gMVxuICBpZiAodGhpcy56T25lKSB7XG4gICAgLy8gaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLXNob3J0dy1qYWNvYmlhbi0zLmh0bWxcbiAgICAvLyAgICAgI2RvdWJsaW5nLW1kYmwtMjAwNy1ibFxuICAgIC8vIDFNICsgNVMgKyAxNUFcblxuICAgIC8vIFhYID0gWDFeMlxuICAgIHZhciB4eCA9IHRoaXMueC5yZWRTcXIoKTtcbiAgICAvLyBZWSA9IFkxXjJcbiAgICB2YXIgeXkgPSB0aGlzLnkucmVkU3FyKCk7XG4gICAgLy8gWVlZWSA9IFlZXjJcbiAgICB2YXIgeXl5eSA9IHl5LnJlZFNxcigpO1xuICAgIC8vIFMgPSAyICogKChYMSArIFlZKV4yIC0gWFggLSBZWVlZKVxuICAgIHZhciBzID0gdGhpcy54LnJlZEFkZCh5eSkucmVkU3FyKCkucmVkSVN1Yih4eCkucmVkSVN1Yih5eXl5KTtcbiAgICBzID0gcy5yZWRJQWRkKHMpO1xuICAgIC8vIE0gPSAzICogWFggKyBhXG4gICAgdmFyIG0gPSB4eC5yZWRBZGQoeHgpLnJlZElBZGQoeHgpLnJlZElBZGQodGhpcy5jdXJ2ZS5hKTtcbiAgICAvLyBUID0gTV4yIC0gMiAqIFNcbiAgICB2YXIgdCA9IG0ucmVkU3FyKCkucmVkSVN1YihzKS5yZWRJU3ViKHMpO1xuICAgIC8vIFgzID0gVFxuICAgIG54ID0gdDtcbiAgICAvLyBZMyA9IE0gKiAoUyAtIFQpIC0gOCAqIFlZWVlcbiAgICB2YXIgeXl5eTggPSB5eXl5LnJlZElBZGQoeXl5eSk7XG4gICAgeXl5eTggPSB5eXl5OC5yZWRJQWRkKHl5eXk4KTtcbiAgICB5eXl5OCA9IHl5eXk4LnJlZElBZGQoeXl5eTgpO1xuICAgIG55ID0gbS5yZWRNdWwocy5yZWRJU3ViKHQpKS5yZWRJU3ViKHl5eXk4KTtcbiAgICAvLyBaMyA9IDIgKiBZMVxuICAgIG56ID0gdGhpcy55LnJlZEFkZCh0aGlzLnkpO1xuICB9IGVsc2Uge1xuICAgIC8vIGh5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by1zaG9ydHctamFjb2JpYW4tMy5odG1sI2RvdWJsaW5nLWRibC0yMDAxLWJcbiAgICAvLyAzTSArIDVTXG5cbiAgICAvLyBkZWx0YSA9IFoxXjJcbiAgICB2YXIgZGVsdGEgPSB0aGlzLnoucmVkU3FyKCk7XG4gICAgLy8gZ2FtbWEgPSBZMV4yXG4gICAgdmFyIGdhbW1hID0gdGhpcy55LnJlZFNxcigpO1xuICAgIC8vIGJldGEgPSBYMSAqIGdhbW1hXG4gICAgdmFyIGJldGEgPSB0aGlzLngucmVkTXVsKGdhbW1hKTtcbiAgICAvLyBhbHBoYSA9IDMgKiAoWDEgLSBkZWx0YSkgKiAoWDEgKyBkZWx0YSlcbiAgICB2YXIgYWxwaGEgPSB0aGlzLngucmVkU3ViKGRlbHRhKS5yZWRNdWwodGhpcy54LnJlZEFkZChkZWx0YSkpO1xuICAgIGFscGhhID0gYWxwaGEucmVkQWRkKGFscGhhKS5yZWRJQWRkKGFscGhhKTtcbiAgICAvLyBYMyA9IGFscGhhXjIgLSA4ICogYmV0YVxuICAgIHZhciBiZXRhNCA9IGJldGEucmVkSUFkZChiZXRhKTtcbiAgICBiZXRhNCA9IGJldGE0LnJlZElBZGQoYmV0YTQpO1xuICAgIHZhciBiZXRhOCA9IGJldGE0LnJlZEFkZChiZXRhNCk7XG4gICAgbnggPSBhbHBoYS5yZWRTcXIoKS5yZWRJU3ViKGJldGE4KTtcbiAgICAvLyBaMyA9IChZMSArIFoxKV4yIC0gZ2FtbWEgLSBkZWx0YVxuICAgIG56ID0gdGhpcy55LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLnJlZElTdWIoZ2FtbWEpLnJlZElTdWIoZGVsdGEpO1xuICAgIC8vIFkzID0gYWxwaGEgKiAoNCAqIGJldGEgLSBYMykgLSA4ICogZ2FtbWFeMlxuICAgIHZhciBnZ2FtbWE4ID0gZ2FtbWEucmVkU3FyKCk7XG4gICAgZ2dhbW1hOCA9IGdnYW1tYTgucmVkSUFkZChnZ2FtbWE4KTtcbiAgICBnZ2FtbWE4ID0gZ2dhbW1hOC5yZWRJQWRkKGdnYW1tYTgpO1xuICAgIGdnYW1tYTggPSBnZ2FtbWE4LnJlZElBZGQoZ2dhbW1hOCk7XG4gICAgbnkgPSBhbHBoYS5yZWRNdWwoYmV0YTQucmVkSVN1YihueCkpLnJlZElTdWIoZ2dhbW1hOCk7XG4gIH1cblxuICByZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobngsIG55LCBueik7XG59O1xuXG5KUG9pbnQucHJvdG90eXBlLl9kYmwgPSBmdW5jdGlvbiBfZGJsKCkge1xuICB2YXIgYSA9IHRoaXMuY3VydmUuYTtcblxuICAvLyA0TSArIDZTICsgMTBBXG4gIHZhciBqeCA9IHRoaXMueDtcbiAgdmFyIGp5ID0gdGhpcy55O1xuICB2YXIganogPSB0aGlzLno7XG4gIHZhciBqejQgPSBqei5yZWRTcXIoKS5yZWRTcXIoKTtcblxuICB2YXIgangyID0gangucmVkU3FyKCk7XG4gIHZhciBqeTIgPSBqeS5yZWRTcXIoKTtcblxuICB2YXIgYyA9IGp4Mi5yZWRBZGQoangyKS5yZWRJQWRkKGp4MikucmVkSUFkZChhLnJlZE11bChqejQpKTtcblxuICB2YXIganhkNCA9IGp4LnJlZEFkZChqeCk7XG4gIGp4ZDQgPSBqeGQ0LnJlZElBZGQoanhkNCk7XG4gIHZhciB0MSA9IGp4ZDQucmVkTXVsKGp5Mik7XG4gIHZhciBueCA9IGMucmVkU3FyKCkucmVkSVN1Yih0MS5yZWRBZGQodDEpKTtcbiAgdmFyIHQyID0gdDEucmVkSVN1YihueCk7XG5cbiAgdmFyIGp5ZDggPSBqeTIucmVkU3FyKCk7XG4gIGp5ZDggPSBqeWQ4LnJlZElBZGQoanlkOCk7XG4gIGp5ZDggPSBqeWQ4LnJlZElBZGQoanlkOCk7XG4gIGp5ZDggPSBqeWQ4LnJlZElBZGQoanlkOCk7XG4gIHZhciBueSA9IGMucmVkTXVsKHQyKS5yZWRJU3ViKGp5ZDgpO1xuICB2YXIgbnogPSBqeS5yZWRBZGQoankpLnJlZE11bChqeik7XG5cbiAgcmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG54LCBueSwgbnopO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS50cnBsID0gZnVuY3Rpb24gdHJwbCgpIHtcbiAgaWYgKCF0aGlzLmN1cnZlLnplcm9BKVxuICAgIHJldHVybiB0aGlzLmRibCgpLmFkZCh0aGlzKTtcblxuICAvLyBoeXBlcmVsbGlwdGljLm9yZy9FRkQvZzFwL2F1dG8tc2hvcnR3LWphY29iaWFuLTAuaHRtbCN0cmlwbGluZy10cGwtMjAwNy1ibFxuICAvLyA1TSArIDEwUyArIC4uLlxuXG4gIC8vIFhYID0gWDFeMlxuICB2YXIgeHggPSB0aGlzLngucmVkU3FyKCk7XG4gIC8vIFlZID0gWTFeMlxuICB2YXIgeXkgPSB0aGlzLnkucmVkU3FyKCk7XG4gIC8vIFpaID0gWjFeMlxuICB2YXIgenogPSB0aGlzLnoucmVkU3FyKCk7XG4gIC8vIFlZWVkgPSBZWV4yXG4gIHZhciB5eXl5ID0geXkucmVkU3FyKCk7XG4gIC8vIE0gPSAzICogWFggKyBhICogWloyOyBhID0gMFxuICB2YXIgbSA9IHh4LnJlZEFkZCh4eCkucmVkSUFkZCh4eCk7XG4gIC8vIE1NID0gTV4yXG4gIHZhciBtbSA9IG0ucmVkU3FyKCk7XG4gIC8vIEUgPSA2ICogKChYMSArIFlZKV4yIC0gWFggLSBZWVlZKSAtIE1NXG4gIHZhciBlID0gdGhpcy54LnJlZEFkZCh5eSkucmVkU3FyKCkucmVkSVN1Yih4eCkucmVkSVN1Yih5eXl5KTtcbiAgZSA9IGUucmVkSUFkZChlKTtcbiAgZSA9IGUucmVkQWRkKGUpLnJlZElBZGQoZSk7XG4gIGUgPSBlLnJlZElTdWIobW0pO1xuICAvLyBFRSA9IEVeMlxuICB2YXIgZWUgPSBlLnJlZFNxcigpO1xuICAvLyBUID0gMTYqWVlZWVxuICB2YXIgdCA9IHl5eXkucmVkSUFkZCh5eXl5KTtcbiAgdCA9IHQucmVkSUFkZCh0KTtcbiAgdCA9IHQucmVkSUFkZCh0KTtcbiAgdCA9IHQucmVkSUFkZCh0KTtcbiAgLy8gVSA9IChNICsgRSleMiAtIE1NIC0gRUUgLSBUXG4gIHZhciB1ID0gbS5yZWRJQWRkKGUpLnJlZFNxcigpLnJlZElTdWIobW0pLnJlZElTdWIoZWUpLnJlZElTdWIodCk7XG4gIC8vIFgzID0gNCAqIChYMSAqIEVFIC0gNCAqIFlZICogVSlcbiAgdmFyIHl5dTQgPSB5eS5yZWRNdWwodSk7XG4gIHl5dTQgPSB5eXU0LnJlZElBZGQoeXl1NCk7XG4gIHl5dTQgPSB5eXU0LnJlZElBZGQoeXl1NCk7XG4gIHZhciBueCA9IHRoaXMueC5yZWRNdWwoZWUpLnJlZElTdWIoeXl1NCk7XG4gIG54ID0gbngucmVkSUFkZChueCk7XG4gIG54ID0gbngucmVkSUFkZChueCk7XG4gIC8vIFkzID0gOCAqIFkxICogKFUgKiAoVCAtIFUpIC0gRSAqIEVFKVxuICB2YXIgbnkgPSB0aGlzLnkucmVkTXVsKHUucmVkTXVsKHQucmVkSVN1Yih1KSkucmVkSVN1YihlLnJlZE11bChlZSkpKTtcbiAgbnkgPSBueS5yZWRJQWRkKG55KTtcbiAgbnkgPSBueS5yZWRJQWRkKG55KTtcbiAgbnkgPSBueS5yZWRJQWRkKG55KTtcbiAgLy8gWjMgPSAoWjEgKyBFKV4yIC0gWlogLSBFRVxuICB2YXIgbnogPSB0aGlzLnoucmVkQWRkKGUpLnJlZFNxcigpLnJlZElTdWIoenopLnJlZElTdWIoZWUpO1xuXG4gIHJldHVybiB0aGlzLmN1cnZlLmpwb2ludChueCwgbnksIG56KTtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUubXVsID0gZnVuY3Rpb24gbXVsKGssIGtiYXNlKSB7XG4gIGsgPSBuZXcgQk4oaywga2Jhc2UpO1xuXG4gIHJldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsIGspO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS5lcSA9IGZ1bmN0aW9uIGVxKHApIHtcbiAgaWYgKHAudHlwZSA9PT0gJ2FmZmluZScpXG4gICAgcmV0dXJuIHRoaXMuZXEocC50b0ooKSk7XG5cbiAgaWYgKHRoaXMgPT09IHApXG4gICAgcmV0dXJuIHRydWU7XG5cbiAgLy8geDEgKiB6Ml4yID09IHgyICogejFeMlxuICB2YXIgejIgPSB0aGlzLnoucmVkU3FyKCk7XG4gIHZhciBwejIgPSBwLnoucmVkU3FyKCk7XG4gIGlmICh0aGlzLngucmVkTXVsKHB6MikucmVkSVN1YihwLngucmVkTXVsKHoyKSkuY21wbigwKSAhPT0gMClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8geTEgKiB6Ml4zID09IHkyICogejFeM1xuICB2YXIgejMgPSB6Mi5yZWRNdWwodGhpcy56KTtcbiAgdmFyIHB6MyA9IHB6Mi5yZWRNdWwocC56KTtcbiAgcmV0dXJuIHRoaXMueS5yZWRNdWwocHozKS5yZWRJU3ViKHAueS5yZWRNdWwoejMpKS5jbXBuKDApID09PSAwO1xufTtcblxuSlBvaW50LnByb3RvdHlwZS5lcVhUb1AgPSBmdW5jdGlvbiBlcVhUb1AoeCkge1xuICB2YXIgenMgPSB0aGlzLnoucmVkU3FyKCk7XG4gIHZhciByeCA9IHgudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh6cyk7XG4gIGlmICh0aGlzLnguY21wKHJ4KSA9PT0gMClcbiAgICByZXR1cm4gdHJ1ZTtcblxuICB2YXIgeGMgPSB4LmNsb25lKCk7XG4gIHZhciB0ID0gdGhpcy5jdXJ2ZS5yZWROLnJlZE11bCh6cyk7XG4gIGZvciAoOzspIHtcbiAgICB4Yy5pYWRkKHRoaXMuY3VydmUubik7XG4gICAgaWYgKHhjLmNtcCh0aGlzLmN1cnZlLnApID49IDApXG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICByeC5yZWRJQWRkKHQpO1xuICAgIGlmICh0aGlzLnguY21wKHJ4KSA9PT0gMClcbiAgICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbkpQb2ludC5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QoKSB7XG4gIGlmICh0aGlzLmlzSW5maW5pdHkoKSlcbiAgICByZXR1cm4gJzxFQyBKUG9pbnQgSW5maW5pdHk+JztcbiAgcmV0dXJuICc8RUMgSlBvaW50IHg6ICcgKyB0aGlzLngudG9TdHJpbmcoMTYsIDIpICtcbiAgICAgICcgeTogJyArIHRoaXMueS50b1N0cmluZygxNiwgMikgK1xuICAgICAgJyB6OiAnICsgdGhpcy56LnRvU3RyaW5nKDE2LCAyKSArICc+Jztcbn07XG5cbkpQb2ludC5wcm90b3R5cGUuaXNJbmZpbml0eSA9IGZ1bmN0aW9uIGlzSW5maW5pdHkoKSB7XG4gIC8vIFhYWCBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHplcm8gaXMgYWx3YXlzIHplcm8gaW4gcmVkXG4gIHJldHVybiB0aGlzLnouY21wbigwKSA9PT0gMDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjdXJ2ZXMgPSBleHBvcnRzO1xuXG52YXIgaGFzaCA9IHJlcXVpcmUoJ2hhc2guanMnKTtcbnZhciBlbGxpcHRpYyA9IHJlcXVpcmUoJy4uL2VsbGlwdGljJyk7XG5cbnZhciBhc3NlcnQgPSBlbGxpcHRpYy51dGlscy5hc3NlcnQ7XG5cbmZ1bmN0aW9uIFByZXNldEN1cnZlKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMudHlwZSA9PT0gJ3Nob3J0JylcbiAgICB0aGlzLmN1cnZlID0gbmV3IGVsbGlwdGljLmN1cnZlLnNob3J0KG9wdGlvbnMpO1xuICBlbHNlIGlmIChvcHRpb25zLnR5cGUgPT09ICdlZHdhcmRzJylcbiAgICB0aGlzLmN1cnZlID0gbmV3IGVsbGlwdGljLmN1cnZlLmVkd2FyZHMob3B0aW9ucyk7XG4gIGVsc2VcbiAgICB0aGlzLmN1cnZlID0gbmV3IGVsbGlwdGljLmN1cnZlLm1vbnQob3B0aW9ucyk7XG4gIHRoaXMuZyA9IHRoaXMuY3VydmUuZztcbiAgdGhpcy5uID0gdGhpcy5jdXJ2ZS5uO1xuICB0aGlzLmhhc2ggPSBvcHRpb25zLmhhc2g7XG5cbiAgYXNzZXJ0KHRoaXMuZy52YWxpZGF0ZSgpLCAnSW52YWxpZCBjdXJ2ZScpO1xuICBhc3NlcnQodGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwgJ0ludmFsaWQgY3VydmUsIEcqTiAhPSBPJyk7XG59XG5jdXJ2ZXMuUHJlc2V0Q3VydmUgPSBQcmVzZXRDdXJ2ZTtcblxuZnVuY3Rpb24gZGVmaW5lQ3VydmUobmFtZSwgb3B0aW9ucykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3VydmVzLCBuYW1lLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBjdXJ2ZSA9IG5ldyBQcmVzZXRDdXJ2ZShvcHRpb25zKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjdXJ2ZXMsIG5hbWUsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogY3VydmVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGN1cnZlO1xuICAgIH1cbiAgfSk7XG59XG5cbmRlZmluZUN1cnZlKCdwMTkyJywge1xuICB0eXBlOiAnc2hvcnQnLFxuICBwcmltZTogJ3AxOTInLFxuICBwOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYnLFxuICBhOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmMnLFxuICBiOiAnNjQyMTA1MTkgZTU5YzgwZTcgMGZhN2U5YWIgNzIyNDMwNDkgZmViOGRlZWMgYzE0NmI5YjEnLFxuICBuOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgOTlkZWY4MzYgMTQ2YmM5YjEgYjRkMjI4MzEnLFxuICBoYXNoOiBoYXNoLnNoYTI1NixcbiAgZ1JlZDogZmFsc2UsXG4gIGc6IFtcbiAgICAnMTg4ZGE4MGUgYjAzMDkwZjYgN2NiZjIwZWIgNDNhMTg4MDAgZjRmZjBhZmQgODJmZjEwMTInLFxuICAgICcwNzE5MmI5NSBmZmM4ZGE3OCA2MzEwMTFlZCA2YjI0Y2RkNSA3M2Y5NzdhMSAxZTc5NDgxMSdcbiAgXVxufSk7XG5cbmRlZmluZUN1cnZlKCdwMjI0Jywge1xuICB0eXBlOiAnc2hvcnQnLFxuICBwcmltZTogJ3AyMjQnLFxuICBwOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEnLFxuICBhOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUnLFxuICBiOiAnYjQwNTBhODUgMGMwNGIzYWIgZjU0MTMyNTYgNTA0NGIwYjcgZDdiZmQ4YmEgMjcwYjM5NDMgMjM1NWZmYjQnLFxuICBuOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZjE2YTIgZTBiOGYwM2UgMTNkZDI5NDUgNWM1YzJhM2QnLFxuICBoYXNoOiBoYXNoLnNoYTI1NixcbiAgZ1JlZDogZmFsc2UsXG4gIGc6IFtcbiAgICAnYjcwZTBjYmQgNmJiNGJmN2YgMzIxMzkwYjkgNGEwM2MxZDMgNTZjMjExMjIgMzQzMjgwZDYgMTE1YzFkMjEnLFxuICAgICdiZDM3NjM4OCBiNWY3MjNmYiA0YzIyZGZlNiBjZDQzNzVhMCA1YTA3NDc2NCA0NGQ1ODE5OSA4NTAwN2UzNCdcbiAgXVxufSk7XG5cbmRlZmluZUN1cnZlKCdwMjU2Jywge1xuICB0eXBlOiAnc2hvcnQnLFxuICBwcmltZTogbnVsbCxcbiAgcDogJ2ZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmJyxcbiAgYTogJ2ZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjJyxcbiAgYjogJzVhYzYzNWQ4IGFhM2E5M2U3IGIzZWJiZDU1IDc2OTg4NmJjIDY1MWQwNmIwIGNjNTNiMGY2IDNiY2UzYzNlIDI3ZDI2MDRiJyxcbiAgbjogJ2ZmZmZmZmZmIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGJjZTZmYWFkIGE3MTc5ZTg0IGYzYjljYWMyIGZjNjMyNTUxJyxcbiAgaGFzaDogaGFzaC5zaGEyNTYsXG4gIGdSZWQ6IGZhbHNlLFxuICBnOiBbXG4gICAgJzZiMTdkMWYyIGUxMmM0MjQ3IGY4YmNlNmU1IDYzYTQ0MGYyIDc3MDM3ZDgxIDJkZWIzM2EwIGY0YTEzOTQ1IGQ4OThjMjk2JyxcbiAgICAnNGZlMzQyZTIgZmUxYTdmOWIgOGVlN2ViNGEgN2MwZjllMTYgMmJjZTMzNTcgNmIzMTVlY2UgY2JiNjQwNjggMzdiZjUxZjUnXG4gIF1cbn0pO1xuXG5kZWZpbmVDdXJ2ZSgncDM4NCcsIHtcbiAgdHlwZTogJ3Nob3J0JyxcbiAgcHJpbWU6IG51bGwsXG4gIHA6ICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAnICtcbiAgICAgJ2ZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmJyxcbiAgYTogJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmICcgK1xuICAgICAnZmZmZmZmZmUgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmMnLFxuICBiOiAnYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgJyArXG4gICAgICc1MDEzODc1YSBjNjU2Mzk4ZCA4YTJlZDE5ZCAyYTg1YzhlZCBkM2VjMmFlZicsXG4gIG46ICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBjNzYzNGQ4MSAnICtcbiAgICAgJ2Y0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczJyxcbiAgaGFzaDogaGFzaC5zaGEzODQsXG4gIGdSZWQ6IGZhbHNlLFxuICBnOiBbXG4gICAgJ2FhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBhZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5Zjc0MWUwIDgyNTQyYTM4ICcgK1xuICAgICc1NTAyZjI1ZCBiZjU1Mjk2YyAzYTU0NWUzOCA3Mjc2MGFiNycsXG4gICAgJzM2MTdkZTRhIDk2MjYyYzZmIDVkOWU5OGJmIDkyOTJkYzI5IGY4ZjQxZGJkIDI4OWExNDdjIGU5ZGEzMTEzIGI1ZjBiOGMwICcgK1xuICAgICcwYTYwYjFjZSAxZDdlODE5ZCA3YTQzMWQ3YyA5MGVhMGU1ZidcbiAgXVxufSk7XG5cbmRlZmluZUN1cnZlKCdwNTIxJywge1xuICB0eXBlOiAnc2hvcnQnLFxuICBwcmltZTogbnVsbCxcbiAgcDogJzAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmICcgK1xuICAgICAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgJyArXG4gICAgICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZicsXG4gIGE6ICcwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAnICtcbiAgICAgJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmICcgK1xuICAgICAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMnLFxuICBiOiAnMDAwMDAwNTEgOTUzZWI5NjEgOGUxYzlhMWYgOTI5YTIxYTAgYjY4NTQwZWUgYTJkYTcyNWIgJyArXG4gICAgICc5OWIzMTVmMyBiOGI0ODk5MSA4ZWYxMDllMSA1NjE5Mzk1MSBlYzdlOTM3YiAxNjUyYzBiZCAnICtcbiAgICAgJzNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0IDZiNTAzZjAwJyxcbiAgbjogJzAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmICcgK1xuICAgICAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmEgNTE4Njg3ODMgYmYyZjk2NmIgN2ZjYzAxNDggJyArXG4gICAgICdmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQwOScsXG4gIGhhc2g6IGhhc2guc2hhNTEyLFxuICBnUmVkOiBmYWxzZSxcbiAgZzogW1xuICAgICcwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAnICtcbiAgICAnMDUzZmI1MjEgZjgyOGFmNjAgNmI0ZDNkYmEgYTE0YjVlNzcgZWZlNzU5MjggZmUxZGMxMjcgJyArXG4gICAgJ2EyZmZhOGRlIDMzNDhiM2MxIDg1NmE0MjliIGY5N2U3ZTMxIGMyZTViZDY2JyxcbiAgICAnMDAwMDAxMTggMzkyOTZhNzggOWEzYmMwMDQgNWM4YTVmYjQgMmM3ZDFiZDkgOThmNTQ0NDkgJyArXG4gICAgJzU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxICcgK1xuICAgICczZmFkMDc2MSAzNTNjNzA4NiBhMjcyYzI0MCA4OGJlOTQ3NiA5ZmQxNjY1MCdcbiAgXVxufSk7XG5cbmRlZmluZUN1cnZlKCdjdXJ2ZTI1NTE5Jywge1xuICB0eXBlOiAnbW9udCcsXG4gIHByaW1lOiAncDI1NTE5JyxcbiAgcDogJzdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQnLFxuICBhOiAnNzZkMDYnLFxuICBiOiAnMScsXG4gIG46ICcxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkJyxcbiAgaGFzaDogaGFzaC5zaGEyNTYsXG4gIGdSZWQ6IGZhbHNlLFxuICBnOiBbXG4gICAgJzknXG4gIF1cbn0pO1xuXG5kZWZpbmVDdXJ2ZSgnZWQyNTUxOScsIHtcbiAgdHlwZTogJ2Vkd2FyZHMnLFxuICBwcmltZTogJ3AyNTUxOScsXG4gIHA6ICc3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkJyxcbiAgYTogJy0xJyxcbiAgYzogJzEnLFxuICAvLyAtMTIxNjY1ICogKDEyMTY2Nl4oLTEpKSAobW9kIFApXG4gIGQ6ICc1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzJyxcbiAgbjogJzEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQnLFxuICBoYXNoOiBoYXNoLnNoYTI1NixcbiAgZ1JlZDogZmFsc2UsXG4gIGc6IFtcbiAgICAnMjE2OTM2ZDNjZDZlNTNmZWMwYTRlMjMxZmRkNmRjNWM2OTJjYzc2MDk1MjVhN2IyYzk1NjJkNjA4ZjI1ZDUxYScsXG5cbiAgICAvLyA0LzVcbiAgICAnNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY1OCdcbiAgXVxufSk7XG5cbnZhciBwcmU7XG50cnkge1xuICBwcmUgPSByZXF1aXJlKCcuL3ByZWNvbXB1dGVkL3NlY3AyNTZrMScpO1xufSBjYXRjaCAoZSkge1xuICBwcmUgPSB1bmRlZmluZWQ7XG59XG5cbmRlZmluZUN1cnZlKCdzZWNwMjU2azEnLCB7XG4gIHR5cGU6ICdzaG9ydCcsXG4gIHByaW1lOiAnazI1NicsXG4gIHA6ICdmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZicsXG4gIGE6ICcwJyxcbiAgYjogJzcnLFxuICBuOiAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgYmFhZWRjZTYgYWY0OGEwM2IgYmZkMjVlOGMgZDAzNjQxNDEnLFxuICBoOiAnMScsXG4gIGhhc2g6IGhhc2guc2hhMjU2LFxuXG4gIC8vIFByZWNvbXB1dGVkIGVuZG9tb3JwaGlzbVxuICBiZXRhOiAnN2FlOTZhMmI2NTdjMDcxMDZlNjQ0NzllYWMzNDM0ZTk5Y2YwNDk3NTEyZjU4OTk1YzEzOTZjMjg3MTk1MDFlZScsXG4gIGxhbWJkYTogJzUzNjNhZDRjYzA1YzMwZTBhNTI2MWMwMjg4MTI2NDVhMTIyZTIyZWEyMDgxNjY3OGRmMDI5NjdjMWIyM2JkNzInLFxuICBiYXNpczogW1xuICAgIHtcbiAgICAgIGE6ICczMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNScsXG4gICAgICBiOiAnLWU0NDM3ZWQ2MDEwZTg4Mjg2ZjU0N2ZhOTBhYmZlNGMzJ1xuICAgIH0sXG4gICAge1xuICAgICAgYTogJzExNGNhNTBmN2E4ZTJmM2Y2NTdjMTEwOGQ5ZDQ0Y2ZkOCcsXG4gICAgICBiOiAnMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUnXG4gICAgfVxuICBdLFxuXG4gIGdSZWQ6IGZhbHNlLFxuICBnOiBbXG4gICAgJzc5YmU2NjdlZjlkY2JiYWM1NWEwNjI5NWNlODcwYjA3MDI5YmZjZGIyZGNlMjhkOTU5ZjI4MTViMTZmODE3OTgnLFxuICAgICc0ODNhZGE3NzI2YTNjNDY1NWRhNGZiZmMwZTExMDhhOGZkMTdiNDQ4YTY4NTU0MTk5YzQ3ZDA4ZmZiMTBkNGI4JyxcbiAgICBwcmVcbiAgXVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgSG1hY0RSQkcgPSByZXF1aXJlKCdobWFjLWRyYmcnKTtcbnZhciBlbGxpcHRpYyA9IHJlcXVpcmUoJy4uLy4uL2VsbGlwdGljJyk7XG52YXIgdXRpbHMgPSBlbGxpcHRpYy51dGlscztcbnZhciBhc3NlcnQgPSB1dGlscy5hc3NlcnQ7XG5cbnZhciBLZXlQYWlyID0gcmVxdWlyZSgnLi9rZXknKTtcbnZhciBTaWduYXR1cmUgPSByZXF1aXJlKCcuL3NpZ25hdHVyZScpO1xuXG5mdW5jdGlvbiBFQyhvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBFQykpXG4gICAgcmV0dXJuIG5ldyBFQyhvcHRpb25zKTtcblxuICAvLyBTaG9ydGN1dCBgZWxsaXB0aWMuZWMoY3VydmUtbmFtZSlgXG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICBhc3NlcnQoZWxsaXB0aWMuY3VydmVzLmhhc093blByb3BlcnR5KG9wdGlvbnMpLCAnVW5rbm93biBjdXJ2ZSAnICsgb3B0aW9ucyk7XG5cbiAgICBvcHRpb25zID0gZWxsaXB0aWMuY3VydmVzW29wdGlvbnNdO1xuICB9XG5cbiAgLy8gU2hvcnRjdXQgZm9yIGBlbGxpcHRpYy5lYyhlbGxpcHRpYy5jdXJ2ZXMuY3VydmVOYW1lKWBcbiAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBlbGxpcHRpYy5jdXJ2ZXMuUHJlc2V0Q3VydmUpXG4gICAgb3B0aW9ucyA9IHsgY3VydmU6IG9wdGlvbnMgfTtcblxuICB0aGlzLmN1cnZlID0gb3B0aW9ucy5jdXJ2ZS5jdXJ2ZTtcbiAgdGhpcy5uID0gdGhpcy5jdXJ2ZS5uO1xuICB0aGlzLm5oID0gdGhpcy5uLnVzaHJuKDEpO1xuICB0aGlzLmcgPSB0aGlzLmN1cnZlLmc7XG5cbiAgLy8gUG9pbnQgb24gY3VydmVcbiAgdGhpcy5nID0gb3B0aW9ucy5jdXJ2ZS5nO1xuICB0aGlzLmcucHJlY29tcHV0ZShvcHRpb25zLmN1cnZlLm4uYml0TGVuZ3RoKCkgKyAxKTtcblxuICAvLyBIYXNoIGZvciBmdW5jdGlvbiBmb3IgRFJCR1xuICB0aGlzLmhhc2ggPSBvcHRpb25zLmhhc2ggfHwgb3B0aW9ucy5jdXJ2ZS5oYXNoO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFQztcblxuRUMucHJvdG90eXBlLmtleVBhaXIgPSBmdW5jdGlvbiBrZXlQYWlyKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBLZXlQYWlyKHRoaXMsIG9wdGlvbnMpO1xufTtcblxuRUMucHJvdG90eXBlLmtleUZyb21Qcml2YXRlID0gZnVuY3Rpb24ga2V5RnJvbVByaXZhdGUocHJpdiwgZW5jKSB7XG4gIHJldHVybiBLZXlQYWlyLmZyb21Qcml2YXRlKHRoaXMsIHByaXYsIGVuYyk7XG59O1xuXG5FQy5wcm90b3R5cGUua2V5RnJvbVB1YmxpYyA9IGZ1bmN0aW9uIGtleUZyb21QdWJsaWMocHViLCBlbmMpIHtcbiAgcmV0dXJuIEtleVBhaXIuZnJvbVB1YmxpYyh0aGlzLCBwdWIsIGVuYyk7XG59O1xuXG5FQy5wcm90b3R5cGUuZ2VuS2V5UGFpciA9IGZ1bmN0aW9uIGdlbktleVBhaXIob3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMpXG4gICAgb3B0aW9ucyA9IHt9O1xuXG4gIC8vIEluc3RhbnRpYXRlIEhtYWNfRFJCR1xuICB2YXIgZHJiZyA9IG5ldyBIbWFjRFJCRyh7XG4gICAgaGFzaDogdGhpcy5oYXNoLFxuICAgIHBlcnM6IG9wdGlvbnMucGVycyxcbiAgICBwZXJzRW5jOiBvcHRpb25zLnBlcnNFbmMgfHwgJ3V0ZjgnLFxuICAgIGVudHJvcHk6IG9wdGlvbnMuZW50cm9weSB8fCBlbGxpcHRpYy5yYW5kKHRoaXMuaGFzaC5obWFjU3RyZW5ndGgpLFxuICAgIGVudHJvcHlFbmM6IG9wdGlvbnMuZW50cm9weSAmJiBvcHRpb25zLmVudHJvcHlFbmMgfHwgJ3V0ZjgnLFxuICAgIG5vbmNlOiB0aGlzLm4udG9BcnJheSgpXG4gIH0pO1xuXG4gIHZhciBieXRlcyA9IHRoaXMubi5ieXRlTGVuZ3RoKCk7XG4gIHZhciBuczIgPSB0aGlzLm4uc3ViKG5ldyBCTigyKSk7XG4gIGRvIHtcbiAgICB2YXIgcHJpdiA9IG5ldyBCTihkcmJnLmdlbmVyYXRlKGJ5dGVzKSk7XG4gICAgaWYgKHByaXYuY21wKG5zMikgPiAwKVxuICAgICAgY29udGludWU7XG5cbiAgICBwcml2LmlhZGRuKDEpO1xuICAgIHJldHVybiB0aGlzLmtleUZyb21Qcml2YXRlKHByaXYpO1xuICB9IHdoaWxlICh0cnVlKTtcbn07XG5cbkVDLnByb3RvdHlwZS5fdHJ1bmNhdGVUb04gPSBmdW5jdGlvbiB0cnVuY2F0ZVRvTihtc2csIHRydW5jT25seSkge1xuICB2YXIgZGVsdGEgPSBtc2cuYnl0ZUxlbmd0aCgpICogOCAtIHRoaXMubi5iaXRMZW5ndGgoKTtcbiAgaWYgKGRlbHRhID4gMClcbiAgICBtc2cgPSBtc2cudXNocm4oZGVsdGEpO1xuICBpZiAoIXRydW5jT25seSAmJiBtc2cuY21wKHRoaXMubikgPj0gMClcbiAgICByZXR1cm4gbXNnLnN1Yih0aGlzLm4pO1xuICBlbHNlXG4gICAgcmV0dXJuIG1zZztcbn07XG5cbkVDLnByb3RvdHlwZS5zaWduID0gZnVuY3Rpb24gc2lnbihtc2csIGtleSwgZW5jLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgZW5jID09PSAnb2JqZWN0Jykge1xuICAgIG9wdGlvbnMgPSBlbmM7XG4gICAgZW5jID0gbnVsbDtcbiAgfVxuICBpZiAoIW9wdGlvbnMpXG4gICAgb3B0aW9ucyA9IHt9O1xuXG4gIGtleSA9IHRoaXMua2V5RnJvbVByaXZhdGUoa2V5LCBlbmMpO1xuICBtc2cgPSB0aGlzLl90cnVuY2F0ZVRvTihuZXcgQk4obXNnLCAxNikpO1xuXG4gIC8vIFplcm8tZXh0ZW5kIGtleSB0byBwcm92aWRlIGVub3VnaCBlbnRyb3B5XG4gIHZhciBieXRlcyA9IHRoaXMubi5ieXRlTGVuZ3RoKCk7XG4gIHZhciBia2V5ID0ga2V5LmdldFByaXZhdGUoKS50b0FycmF5KCdiZScsIGJ5dGVzKTtcblxuICAvLyBaZXJvLWV4dGVuZCBub25jZSB0byBoYXZlIHRoZSBzYW1lIGJ5dGUgc2l6ZSBhcyBOXG4gIHZhciBub25jZSA9IG1zZy50b0FycmF5KCdiZScsIGJ5dGVzKTtcblxuICAvLyBJbnN0YW50aWF0ZSBIbWFjX0RSQkdcbiAgdmFyIGRyYmcgPSBuZXcgSG1hY0RSQkcoe1xuICAgIGhhc2g6IHRoaXMuaGFzaCxcbiAgICBlbnRyb3B5OiBia2V5LFxuICAgIG5vbmNlOiBub25jZSxcbiAgICBwZXJzOiBvcHRpb25zLnBlcnMsXG4gICAgcGVyc0VuYzogb3B0aW9ucy5wZXJzRW5jIHx8ICd1dGY4J1xuICB9KTtcblxuICAvLyBOdW1iZXIgb2YgYnl0ZXMgdG8gZ2VuZXJhdGVcbiAgdmFyIG5zMSA9IHRoaXMubi5zdWIobmV3IEJOKDEpKTtcblxuICBmb3IgKHZhciBpdGVyID0gMDsgdHJ1ZTsgaXRlcisrKSB7XG4gICAgdmFyIGsgPSBvcHRpb25zLmsgP1xuICAgICAgICBvcHRpb25zLmsoaXRlcikgOlxuICAgICAgICBuZXcgQk4oZHJiZy5nZW5lcmF0ZSh0aGlzLm4uYnl0ZUxlbmd0aCgpKSk7XG4gICAgayA9IHRoaXMuX3RydW5jYXRlVG9OKGssIHRydWUpO1xuICAgIGlmIChrLmNtcG4oMSkgPD0gMCB8fCBrLmNtcChuczEpID49IDApXG4gICAgICBjb250aW51ZTtcblxuICAgIHZhciBrcCA9IHRoaXMuZy5tdWwoayk7XG4gICAgaWYgKGtwLmlzSW5maW5pdHkoKSlcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgdmFyIGtwWCA9IGtwLmdldFgoKTtcbiAgICB2YXIgciA9IGtwWC51bW9kKHRoaXMubik7XG4gICAgaWYgKHIuY21wbigwKSA9PT0gMClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgdmFyIHMgPSBrLmludm0odGhpcy5uKS5tdWwoci5tdWwoa2V5LmdldFByaXZhdGUoKSkuaWFkZChtc2cpKTtcbiAgICBzID0gcy51bW9kKHRoaXMubik7XG4gICAgaWYgKHMuY21wbigwKSA9PT0gMClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgdmFyIHJlY292ZXJ5UGFyYW0gPSAoa3AuZ2V0WSgpLmlzT2RkKCkgPyAxIDogMCkgfFxuICAgICAgICAgICAgICAgICAgICAgICAgKGtwWC5jbXAocikgIT09IDAgPyAyIDogMCk7XG5cbiAgICAvLyBVc2UgY29tcGxlbWVudCBvZiBgc2AsIGlmIGl0IGlzID4gYG4gLyAyYFxuICAgIGlmIChvcHRpb25zLmNhbm9uaWNhbCAmJiBzLmNtcCh0aGlzLm5oKSA+IDApIHtcbiAgICAgIHMgPSB0aGlzLm4uc3ViKHMpO1xuICAgICAgcmVjb3ZlcnlQYXJhbSBePSAxO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2lnbmF0dXJlKHsgcjogciwgczogcywgcmVjb3ZlcnlQYXJhbTogcmVjb3ZlcnlQYXJhbSB9KTtcbiAgfVxufTtcblxuRUMucHJvdG90eXBlLnZlcmlmeSA9IGZ1bmN0aW9uIHZlcmlmeShtc2csIHNpZ25hdHVyZSwga2V5LCBlbmMpIHtcbiAgbXNnID0gdGhpcy5fdHJ1bmNhdGVUb04obmV3IEJOKG1zZywgMTYpKTtcbiAga2V5ID0gdGhpcy5rZXlGcm9tUHVibGljKGtleSwgZW5jKTtcbiAgc2lnbmF0dXJlID0gbmV3IFNpZ25hdHVyZShzaWduYXR1cmUsICdoZXgnKTtcblxuICAvLyBQZXJmb3JtIHByaW1pdGl2ZSB2YWx1ZXMgdmFsaWRhdGlvblxuICB2YXIgciA9IHNpZ25hdHVyZS5yO1xuICB2YXIgcyA9IHNpZ25hdHVyZS5zO1xuICBpZiAoci5jbXBuKDEpIDwgMCB8fCByLmNtcCh0aGlzLm4pID49IDApXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAocy5jbXBuKDEpIDwgMCB8fCBzLmNtcCh0aGlzLm4pID49IDApXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIFZhbGlkYXRlIHNpZ25hdHVyZVxuICB2YXIgc2ludiA9IHMuaW52bSh0aGlzLm4pO1xuICB2YXIgdTEgPSBzaW52Lm11bChtc2cpLnVtb2QodGhpcy5uKTtcbiAgdmFyIHUyID0gc2ludi5tdWwocikudW1vZCh0aGlzLm4pO1xuXG4gIGlmICghdGhpcy5jdXJ2ZS5fbWF4d2VsbFRyaWNrKSB7XG4gICAgdmFyIHAgPSB0aGlzLmcubXVsQWRkKHUxLCBrZXkuZ2V0UHVibGljKCksIHUyKTtcbiAgICBpZiAocC5pc0luZmluaXR5KCkpXG4gICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gcC5nZXRYKCkudW1vZCh0aGlzLm4pLmNtcChyKSA9PT0gMDtcbiAgfVxuXG4gIC8vIE5PVEU6IEdyZWcgTWF4d2VsbCdzIHRyaWNrLCBpbnNwaXJlZCBieTpcbiAgLy8gaHR0cHM6Ly9naXQuaW8vdmFkM0tcblxuICB2YXIgcCA9IHRoaXMuZy5qbXVsQWRkKHUxLCBrZXkuZ2V0UHVibGljKCksIHUyKTtcbiAgaWYgKHAuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiBmYWxzZTtcblxuICAvLyBDb21wYXJlIGBwLnhgIG9mIEphY29iaWFuIHBvaW50IHdpdGggYHJgLFxuICAvLyB0aGlzIHdpbGwgZG8gYHAueCA9PSByICogcC56XjJgIGluc3RlYWQgb2YgbXVsdGlwbHlpbmcgYHAueGAgYnkgdGhlXG4gIC8vIGludmVyc2Ugb2YgYHAuel4yYFxuICByZXR1cm4gcC5lcVhUb1Aocik7XG59O1xuXG5FQy5wcm90b3R5cGUucmVjb3ZlclB1YktleSA9IGZ1bmN0aW9uKG1zZywgc2lnbmF0dXJlLCBqLCBlbmMpIHtcbiAgYXNzZXJ0KCgzICYgaikgPT09IGosICdUaGUgcmVjb3ZlcnkgcGFyYW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzJyk7XG4gIHNpZ25hdHVyZSA9IG5ldyBTaWduYXR1cmUoc2lnbmF0dXJlLCBlbmMpO1xuXG4gIHZhciBuID0gdGhpcy5uO1xuICB2YXIgZSA9IG5ldyBCTihtc2cpO1xuICB2YXIgciA9IHNpZ25hdHVyZS5yO1xuICB2YXIgcyA9IHNpZ25hdHVyZS5zO1xuXG4gIC8vIEEgc2V0IExTQiBzaWduaWZpZXMgdGhhdCB0aGUgeS1jb29yZGluYXRlIGlzIG9kZFxuICB2YXIgaXNZT2RkID0gaiAmIDE7XG4gIHZhciBpc1NlY29uZEtleSA9IGogPj4gMTtcbiAgaWYgKHIuY21wKHRoaXMuY3VydmUucC51bW9kKHRoaXMuY3VydmUubikpID49IDAgJiYgaXNTZWNvbmRLZXkpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCBzZW5jb25kIGtleSBjYW5kaW5hdGUnKTtcblxuICAvLyAxLjEuIExldCB4ID0gciArIGpuLlxuICBpZiAoaXNTZWNvbmRLZXkpXG4gICAgciA9IHRoaXMuY3VydmUucG9pbnRGcm9tWChyLmFkZCh0aGlzLmN1cnZlLm4pLCBpc1lPZGQpO1xuICBlbHNlXG4gICAgciA9IHRoaXMuY3VydmUucG9pbnRGcm9tWChyLCBpc1lPZGQpO1xuXG4gIHZhciBySW52ID0gc2lnbmF0dXJlLnIuaW52bShuKTtcbiAgdmFyIHMxID0gbi5zdWIoZSkubXVsKHJJbnYpLnVtb2Qobik7XG4gIHZhciBzMiA9IHMubXVsKHJJbnYpLnVtb2Qobik7XG5cbiAgLy8gMS42LjEgQ29tcHV0ZSBRID0gcl4tMSAoc1IgLSAgZUcpXG4gIC8vICAgICAgICAgICAgICAgUSA9IHJeLTEgKHNSICsgLWVHKVxuICByZXR1cm4gdGhpcy5nLm11bEFkZChzMSwgciwgczIpO1xufTtcblxuRUMucHJvdG90eXBlLmdldEtleVJlY292ZXJ5UGFyYW0gPSBmdW5jdGlvbihlLCBzaWduYXR1cmUsIFEsIGVuYykge1xuICBzaWduYXR1cmUgPSBuZXcgU2lnbmF0dXJlKHNpZ25hdHVyZSwgZW5jKTtcbiAgaWYgKHNpZ25hdHVyZS5yZWNvdmVyeVBhcmFtICE9PSBudWxsKVxuICAgIHJldHVybiBzaWduYXR1cmUucmVjb3ZlcnlQYXJhbTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgIHZhciBRcHJpbWU7XG4gICAgdHJ5IHtcbiAgICAgIFFwcmltZSA9IHRoaXMucmVjb3ZlclB1YktleShlLCBzaWduYXR1cmUsIGkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChRcHJpbWUuZXEoUSkpXG4gICAgICByZXR1cm4gaTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kIHZhbGlkIHJlY292ZXJ5IGZhY3RvcicpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIEJOID0gcmVxdWlyZSgnYm4uanMnKTtcbnZhciBlbGxpcHRpYyA9IHJlcXVpcmUoJy4uLy4uL2VsbGlwdGljJyk7XG52YXIgdXRpbHMgPSBlbGxpcHRpYy51dGlscztcbnZhciBhc3NlcnQgPSB1dGlscy5hc3NlcnQ7XG5cbmZ1bmN0aW9uIEtleVBhaXIoZWMsIG9wdGlvbnMpIHtcbiAgdGhpcy5lYyA9IGVjO1xuICB0aGlzLnByaXYgPSBudWxsO1xuICB0aGlzLnB1YiA9IG51bGw7XG5cbiAgLy8gS2V5UGFpcihlYywgeyBwcml2OiAuLi4sIHB1YjogLi4uIH0pXG4gIGlmIChvcHRpb25zLnByaXYpXG4gICAgdGhpcy5faW1wb3J0UHJpdmF0ZShvcHRpb25zLnByaXYsIG9wdGlvbnMucHJpdkVuYyk7XG4gIGlmIChvcHRpb25zLnB1YilcbiAgICB0aGlzLl9pbXBvcnRQdWJsaWMob3B0aW9ucy5wdWIsIG9wdGlvbnMucHViRW5jKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gS2V5UGFpcjtcblxuS2V5UGFpci5mcm9tUHVibGljID0gZnVuY3Rpb24gZnJvbVB1YmxpYyhlYywgcHViLCBlbmMpIHtcbiAgaWYgKHB1YiBpbnN0YW5jZW9mIEtleVBhaXIpXG4gICAgcmV0dXJuIHB1YjtcblxuICByZXR1cm4gbmV3IEtleVBhaXIoZWMsIHtcbiAgICBwdWI6IHB1YixcbiAgICBwdWJFbmM6IGVuY1xuICB9KTtcbn07XG5cbktleVBhaXIuZnJvbVByaXZhdGUgPSBmdW5jdGlvbiBmcm9tUHJpdmF0ZShlYywgcHJpdiwgZW5jKSB7XG4gIGlmIChwcml2IGluc3RhbmNlb2YgS2V5UGFpcilcbiAgICByZXR1cm4gcHJpdjtcblxuICByZXR1cm4gbmV3IEtleVBhaXIoZWMsIHtcbiAgICBwcml2OiBwcml2LFxuICAgIHByaXZFbmM6IGVuY1xuICB9KTtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLnZhbGlkYXRlID0gZnVuY3Rpb24gdmFsaWRhdGUoKSB7XG4gIHZhciBwdWIgPSB0aGlzLmdldFB1YmxpYygpO1xuXG4gIGlmIChwdWIuaXNJbmZpbml0eSgpKVxuICAgIHJldHVybiB7IHJlc3VsdDogZmFsc2UsIHJlYXNvbjogJ0ludmFsaWQgcHVibGljIGtleScgfTtcbiAgaWYgKCFwdWIudmFsaWRhdGUoKSlcbiAgICByZXR1cm4geyByZXN1bHQ6IGZhbHNlLCByZWFzb246ICdQdWJsaWMga2V5IGlzIG5vdCBhIHBvaW50JyB9O1xuICBpZiAoIXB1Yi5tdWwodGhpcy5lYy5jdXJ2ZS5uKS5pc0luZmluaXR5KCkpXG4gICAgcmV0dXJuIHsgcmVzdWx0OiBmYWxzZSwgcmVhc29uOiAnUHVibGljIGtleSAqIE4gIT0gTycgfTtcblxuICByZXR1cm4geyByZXN1bHQ6IHRydWUsIHJlYXNvbjogbnVsbCB9O1xufTtcblxuS2V5UGFpci5wcm90b3R5cGUuZ2V0UHVibGljID0gZnVuY3Rpb24gZ2V0UHVibGljKGNvbXBhY3QsIGVuYykge1xuICAvLyBjb21wYWN0IGlzIG9wdGlvbmFsIGFyZ3VtZW50XG4gIGlmICh0eXBlb2YgY29tcGFjdCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmMgPSBjb21wYWN0O1xuICAgIGNvbXBhY3QgPSBudWxsO1xuICB9XG5cbiAgaWYgKCF0aGlzLnB1YilcbiAgICB0aGlzLnB1YiA9IHRoaXMuZWMuZy5tdWwodGhpcy5wcml2KTtcblxuICBpZiAoIWVuYylcbiAgICByZXR1cm4gdGhpcy5wdWI7XG5cbiAgcmV0dXJuIHRoaXMucHViLmVuY29kZShlbmMsIGNvbXBhY3QpO1xufTtcblxuS2V5UGFpci5wcm90b3R5cGUuZ2V0UHJpdmF0ZSA9IGZ1bmN0aW9uIGdldFByaXZhdGUoZW5jKSB7XG4gIGlmIChlbmMgPT09ICdoZXgnKVxuICAgIHJldHVybiB0aGlzLnByaXYudG9TdHJpbmcoMTYsIDIpO1xuICBlbHNlXG4gICAgcmV0dXJuIHRoaXMucHJpdjtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLl9pbXBvcnRQcml2YXRlID0gZnVuY3Rpb24gX2ltcG9ydFByaXZhdGUoa2V5LCBlbmMpIHtcbiAgdGhpcy5wcml2ID0gbmV3IEJOKGtleSwgZW5jIHx8IDE2KTtcblxuICAvLyBFbnN1cmUgdGhhdCB0aGUgcHJpdiB3b24ndCBiZSBiaWdnZXIgdGhhbiBuLCBvdGhlcndpc2Ugd2UgbWF5IGZhaWxcbiAgLy8gaW4gZml4ZWQgbXVsdGlwbGljYXRpb24gbWV0aG9kXG4gIHRoaXMucHJpdiA9IHRoaXMucHJpdi51bW9kKHRoaXMuZWMuY3VydmUubik7XG59O1xuXG5LZXlQYWlyLnByb3RvdHlwZS5faW1wb3J0UHVibGljID0gZnVuY3Rpb24gX2ltcG9ydFB1YmxpYyhrZXksIGVuYykge1xuICBpZiAoa2V5LnggfHwga2V5LnkpIHtcbiAgICAvLyBNb250Z29tZXJ5IHBvaW50cyBvbmx5IGhhdmUgYW4gYHhgIGNvb3JkaW5hdGUuXG4gICAgLy8gV2VpZXJzdHJhc3MvRWR3YXJkcyBwb2ludHMgb24gdGhlIG90aGVyIGhhbmQgaGF2ZSBib3RoIGB4YCBhbmRcbiAgICAvLyBgeWAgY29vcmRpbmF0ZXMuXG4gICAgaWYgKHRoaXMuZWMuY3VydmUudHlwZSA9PT0gJ21vbnQnKSB7XG4gICAgICBhc3NlcnQoa2V5LngsICdOZWVkIHggY29vcmRpbmF0ZScpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5lYy5jdXJ2ZS50eXBlID09PSAnc2hvcnQnIHx8XG4gICAgICAgICAgICAgICB0aGlzLmVjLmN1cnZlLnR5cGUgPT09ICdlZHdhcmRzJykge1xuICAgICAgYXNzZXJ0KGtleS54ICYmIGtleS55LCAnTmVlZCBib3RoIHggYW5kIHkgY29vcmRpbmF0ZScpO1xuICAgIH1cbiAgICB0aGlzLnB1YiA9IHRoaXMuZWMuY3VydmUucG9pbnQoa2V5LngsIGtleS55KTtcbiAgICByZXR1cm47XG4gIH1cbiAgdGhpcy5wdWIgPSB0aGlzLmVjLmN1cnZlLmRlY29kZVBvaW50KGtleSwgZW5jKTtcbn07XG5cbi8vIEVDREhcbktleVBhaXIucHJvdG90eXBlLmRlcml2ZSA9IGZ1bmN0aW9uIGRlcml2ZShwdWIpIHtcbiAgcmV0dXJuIHB1Yi5tdWwodGhpcy5wcml2KS5nZXRYKCk7XG59O1xuXG4vLyBFQ0RTQVxuS2V5UGFpci5wcm90b3R5cGUuc2lnbiA9IGZ1bmN0aW9uIHNpZ24obXNnLCBlbmMsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHRoaXMuZWMuc2lnbihtc2csIHRoaXMsIGVuYywgb3B0aW9ucyk7XG59O1xuXG5LZXlQYWlyLnByb3RvdHlwZS52ZXJpZnkgPSBmdW5jdGlvbiB2ZXJpZnkobXNnLCBzaWduYXR1cmUpIHtcbiAgcmV0dXJuIHRoaXMuZWMudmVyaWZ5KG1zZywgc2lnbmF0dXJlLCB0aGlzKTtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0KCkge1xuICByZXR1cm4gJzxLZXkgcHJpdjogJyArICh0aGlzLnByaXYgJiYgdGhpcy5wcml2LnRvU3RyaW5nKDE2LCAyKSkgK1xuICAgICAgICAgJyBwdWI6ICcgKyAodGhpcy5wdWIgJiYgdGhpcy5wdWIuaW5zcGVjdCgpKSArICcgPic7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgQk4gPSByZXF1aXJlKCdibi5qcycpO1xuXG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIHV0aWxzID0gZWxsaXB0aWMudXRpbHM7XG52YXIgYXNzZXJ0ID0gdXRpbHMuYXNzZXJ0O1xuXG5mdW5jdGlvbiBTaWduYXR1cmUob3B0aW9ucywgZW5jKSB7XG4gIGlmIChvcHRpb25zIGluc3RhbmNlb2YgU2lnbmF0dXJlKVxuICAgIHJldHVybiBvcHRpb25zO1xuXG4gIGlmICh0aGlzLl9pbXBvcnRERVIob3B0aW9ucywgZW5jKSlcbiAgICByZXR1cm47XG5cbiAgYXNzZXJ0KG9wdGlvbnMuciAmJiBvcHRpb25zLnMsICdTaWduYXR1cmUgd2l0aG91dCByIG9yIHMnKTtcbiAgdGhpcy5yID0gbmV3IEJOKG9wdGlvbnMuciwgMTYpO1xuICB0aGlzLnMgPSBuZXcgQk4ob3B0aW9ucy5zLCAxNik7XG4gIGlmIChvcHRpb25zLnJlY292ZXJ5UGFyYW0gPT09IHVuZGVmaW5lZClcbiAgICB0aGlzLnJlY292ZXJ5UGFyYW0gPSBudWxsO1xuICBlbHNlXG4gICAgdGhpcy5yZWNvdmVyeVBhcmFtID0gb3B0aW9ucy5yZWNvdmVyeVBhcmFtO1xufVxubW9kdWxlLmV4cG9ydHMgPSBTaWduYXR1cmU7XG5cbmZ1bmN0aW9uIFBvc2l0aW9uKCkge1xuICB0aGlzLnBsYWNlID0gMDtcbn1cblxuZnVuY3Rpb24gZ2V0TGVuZ3RoKGJ1ZiwgcCkge1xuICB2YXIgaW5pdGlhbCA9IGJ1ZltwLnBsYWNlKytdO1xuICBpZiAoIShpbml0aWFsICYgMHg4MCkpIHtcbiAgICByZXR1cm4gaW5pdGlhbDtcbiAgfVxuICB2YXIgb2N0ZXRMZW4gPSBpbml0aWFsICYgMHhmO1xuICB2YXIgdmFsID0gMDtcbiAgZm9yICh2YXIgaSA9IDAsIG9mZiA9IHAucGxhY2U7IGkgPCBvY3RldExlbjsgaSsrLCBvZmYrKykge1xuICAgIHZhbCA8PD0gODtcbiAgICB2YWwgfD0gYnVmW29mZl07XG4gIH1cbiAgcC5wbGFjZSA9IG9mZjtcbiAgcmV0dXJuIHZhbDtcbn1cblxuZnVuY3Rpb24gcm1QYWRkaW5nKGJ1Zikge1xuICB2YXIgaSA9IDA7XG4gIHZhciBsZW4gPSBidWYubGVuZ3RoIC0gMTtcbiAgd2hpbGUgKCFidWZbaV0gJiYgIShidWZbaSArIDFdICYgMHg4MCkgJiYgaSA8IGxlbikge1xuICAgIGkrKztcbiAgfVxuICBpZiAoaSA9PT0gMCkge1xuICAgIHJldHVybiBidWY7XG4gIH1cbiAgcmV0dXJuIGJ1Zi5zbGljZShpKTtcbn1cblxuU2lnbmF0dXJlLnByb3RvdHlwZS5faW1wb3J0REVSID0gZnVuY3Rpb24gX2ltcG9ydERFUihkYXRhLCBlbmMpIHtcbiAgZGF0YSA9IHV0aWxzLnRvQXJyYXkoZGF0YSwgZW5jKTtcbiAgdmFyIHAgPSBuZXcgUG9zaXRpb24oKTtcbiAgaWYgKGRhdGFbcC5wbGFjZSsrXSAhPT0gMHgzMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgbGVuID0gZ2V0TGVuZ3RoKGRhdGEsIHApO1xuICBpZiAoKGxlbiArIHAucGxhY2UpICE9PSBkYXRhLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoZGF0YVtwLnBsYWNlKytdICE9PSAweDAyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBybGVuID0gZ2V0TGVuZ3RoKGRhdGEsIHApO1xuICB2YXIgciA9IGRhdGEuc2xpY2UocC5wbGFjZSwgcmxlbiArIHAucGxhY2UpO1xuICBwLnBsYWNlICs9IHJsZW47XG4gIGlmIChkYXRhW3AucGxhY2UrK10gIT09IDB4MDIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHNsZW4gPSBnZXRMZW5ndGgoZGF0YSwgcCk7XG4gIGlmIChkYXRhLmxlbmd0aCAhPT0gc2xlbiArIHAucGxhY2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHMgPSBkYXRhLnNsaWNlKHAucGxhY2UsIHNsZW4gKyBwLnBsYWNlKTtcbiAgaWYgKHJbMF0gPT09IDAgJiYgKHJbMV0gJiAweDgwKSkge1xuICAgIHIgPSByLnNsaWNlKDEpO1xuICB9XG4gIGlmIChzWzBdID09PSAwICYmIChzWzFdICYgMHg4MCkpIHtcbiAgICBzID0gcy5zbGljZSgxKTtcbiAgfVxuXG4gIHRoaXMuciA9IG5ldyBCTihyKTtcbiAgdGhpcy5zID0gbmV3IEJOKHMpO1xuICB0aGlzLnJlY292ZXJ5UGFyYW0gPSBudWxsO1xuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gY29uc3RydWN0TGVuZ3RoKGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPCAweDgwKSB7XG4gICAgYXJyLnB1c2gobGVuKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG9jdGV0cyA9IDEgKyAoTWF0aC5sb2cobGVuKSAvIE1hdGguTE4yID4+PiAzKTtcbiAgYXJyLnB1c2gob2N0ZXRzIHwgMHg4MCk7XG4gIHdoaWxlICgtLW9jdGV0cykge1xuICAgIGFyci5wdXNoKChsZW4gPj4+IChvY3RldHMgPDwgMykpICYgMHhmZik7XG4gIH1cbiAgYXJyLnB1c2gobGVuKTtcbn1cblxuU2lnbmF0dXJlLnByb3RvdHlwZS50b0RFUiA9IGZ1bmN0aW9uIHRvREVSKGVuYykge1xuICB2YXIgciA9IHRoaXMuci50b0FycmF5KCk7XG4gIHZhciBzID0gdGhpcy5zLnRvQXJyYXkoKTtcblxuICAvLyBQYWQgdmFsdWVzXG4gIGlmIChyWzBdICYgMHg4MClcbiAgICByID0gWyAwIF0uY29uY2F0KHIpO1xuICAvLyBQYWQgdmFsdWVzXG4gIGlmIChzWzBdICYgMHg4MClcbiAgICBzID0gWyAwIF0uY29uY2F0KHMpO1xuXG4gIHIgPSBybVBhZGRpbmcocik7XG4gIHMgPSBybVBhZGRpbmcocyk7XG5cbiAgd2hpbGUgKCFzWzBdICYmICEoc1sxXSAmIDB4ODApKSB7XG4gICAgcyA9IHMuc2xpY2UoMSk7XG4gIH1cbiAgdmFyIGFyciA9IFsgMHgwMiBdO1xuICBjb25zdHJ1Y3RMZW5ndGgoYXJyLCByLmxlbmd0aCk7XG4gIGFyciA9IGFyci5jb25jYXQocik7XG4gIGFyci5wdXNoKDB4MDIpO1xuICBjb25zdHJ1Y3RMZW5ndGgoYXJyLCBzLmxlbmd0aCk7XG4gIHZhciBiYWNrSGFsZiA9IGFyci5jb25jYXQocyk7XG4gIHZhciByZXMgPSBbIDB4MzAgXTtcbiAgY29uc3RydWN0TGVuZ3RoKHJlcywgYmFja0hhbGYubGVuZ3RoKTtcbiAgcmVzID0gcmVzLmNvbmNhdChiYWNrSGFsZik7XG4gIHJldHVybiB1dGlscy5lbmNvZGUocmVzLCBlbmMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGhhc2ggPSByZXF1aXJlKCdoYXNoLmpzJyk7XG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIHV0aWxzID0gZWxsaXB0aWMudXRpbHM7XG52YXIgYXNzZXJ0ID0gdXRpbHMuYXNzZXJ0O1xudmFyIHBhcnNlQnl0ZXMgPSB1dGlscy5wYXJzZUJ5dGVzO1xudmFyIEtleVBhaXIgPSByZXF1aXJlKCcuL2tleScpO1xudmFyIFNpZ25hdHVyZSA9IHJlcXVpcmUoJy4vc2lnbmF0dXJlJyk7XG5cbmZ1bmN0aW9uIEVERFNBKGN1cnZlKSB7XG4gIGFzc2VydChjdXJ2ZSA9PT0gJ2VkMjU1MTknLCAnb25seSB0ZXN0ZWQgd2l0aCBlZDI1NTE5IHNvIGZhcicpO1xuXG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBFRERTQSkpXG4gICAgcmV0dXJuIG5ldyBFRERTQShjdXJ2ZSk7XG5cbiAgdmFyIGN1cnZlID0gZWxsaXB0aWMuY3VydmVzW2N1cnZlXS5jdXJ2ZTtcbiAgdGhpcy5jdXJ2ZSA9IGN1cnZlO1xuICB0aGlzLmcgPSBjdXJ2ZS5nO1xuICB0aGlzLmcucHJlY29tcHV0ZShjdXJ2ZS5uLmJpdExlbmd0aCgpICsgMSk7XG5cbiAgdGhpcy5wb2ludENsYXNzID0gY3VydmUucG9pbnQoKS5jb25zdHJ1Y3RvcjtcbiAgdGhpcy5lbmNvZGluZ0xlbmd0aCA9IE1hdGguY2VpbChjdXJ2ZS5uLmJpdExlbmd0aCgpIC8gOCk7XG4gIHRoaXMuaGFzaCA9IGhhc2guc2hhNTEyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEVERFNBO1xuXG4vKipcbiogQHBhcmFtIHtBcnJheXxTdHJpbmd9IG1lc3NhZ2UgLSBtZXNzYWdlIGJ5dGVzXG4qIEBwYXJhbSB7QXJyYXl8U3RyaW5nfEtleVBhaXJ9IHNlY3JldCAtIHNlY3JldCBieXRlcyBvciBhIGtleXBhaXJcbiogQHJldHVybnMge1NpZ25hdHVyZX0gLSBzaWduYXR1cmVcbiovXG5FRERTQS5wcm90b3R5cGUuc2lnbiA9IGZ1bmN0aW9uIHNpZ24obWVzc2FnZSwgc2VjcmV0KSB7XG4gIG1lc3NhZ2UgPSBwYXJzZUJ5dGVzKG1lc3NhZ2UpO1xuICB2YXIga2V5ID0gdGhpcy5rZXlGcm9tU2VjcmV0KHNlY3JldCk7XG4gIHZhciByID0gdGhpcy5oYXNoSW50KGtleS5tZXNzYWdlUHJlZml4KCksIG1lc3NhZ2UpO1xuICB2YXIgUiA9IHRoaXMuZy5tdWwocik7XG4gIHZhciBSZW5jb2RlZCA9IHRoaXMuZW5jb2RlUG9pbnQoUik7XG4gIHZhciBzXyA9IHRoaXMuaGFzaEludChSZW5jb2RlZCwga2V5LnB1YkJ5dGVzKCksIG1lc3NhZ2UpXG4gICAgICAgICAgICAgICAubXVsKGtleS5wcml2KCkpO1xuICB2YXIgUyA9IHIuYWRkKHNfKS51bW9kKHRoaXMuY3VydmUubik7XG4gIHJldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoeyBSOiBSLCBTOiBTLCBSZW5jb2RlZDogUmVuY29kZWQgfSk7XG59O1xuXG4vKipcbiogQHBhcmFtIHtBcnJheX0gbWVzc2FnZSAtIG1lc3NhZ2UgYnl0ZXNcbiogQHBhcmFtIHtBcnJheXxTdHJpbmd8U2lnbmF0dXJlfSBzaWcgLSBzaWcgYnl0ZXNcbiogQHBhcmFtIHtBcnJheXxTdHJpbmd8UG9pbnR8S2V5UGFpcn0gcHViIC0gcHVibGljIGtleVxuKiBAcmV0dXJucyB7Qm9vbGVhbn0gLSB0cnVlIGlmIHB1YmxpYyBrZXkgbWF0Y2hlcyBzaWcgb2YgbWVzc2FnZVxuKi9cbkVERFNBLnByb3RvdHlwZS52ZXJpZnkgPSBmdW5jdGlvbiB2ZXJpZnkobWVzc2FnZSwgc2lnLCBwdWIpIHtcbiAgbWVzc2FnZSA9IHBhcnNlQnl0ZXMobWVzc2FnZSk7XG4gIHNpZyA9IHRoaXMubWFrZVNpZ25hdHVyZShzaWcpO1xuICB2YXIga2V5ID0gdGhpcy5rZXlGcm9tUHVibGljKHB1Yik7XG4gIHZhciBoID0gdGhpcy5oYXNoSW50KHNpZy5SZW5jb2RlZCgpLCBrZXkucHViQnl0ZXMoKSwgbWVzc2FnZSk7XG4gIHZhciBTRyA9IHRoaXMuZy5tdWwoc2lnLlMoKSk7XG4gIHZhciBScGx1c0FoID0gc2lnLlIoKS5hZGQoa2V5LnB1YigpLm11bChoKSk7XG4gIHJldHVybiBScGx1c0FoLmVxKFNHKTtcbn07XG5cbkVERFNBLnByb3RvdHlwZS5oYXNoSW50ID0gZnVuY3Rpb24gaGFzaEludCgpIHtcbiAgdmFyIGhhc2ggPSB0aGlzLmhhc2goKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXG4gICAgaGFzaC51cGRhdGUoYXJndW1lbnRzW2ldKTtcbiAgcmV0dXJuIHV0aWxzLmludEZyb21MRShoYXNoLmRpZ2VzdCgpKS51bW9kKHRoaXMuY3VydmUubik7XG59O1xuXG5FRERTQS5wcm90b3R5cGUua2V5RnJvbVB1YmxpYyA9IGZ1bmN0aW9uIGtleUZyb21QdWJsaWMocHViKSB7XG4gIHJldHVybiBLZXlQYWlyLmZyb21QdWJsaWModGhpcywgcHViKTtcbn07XG5cbkVERFNBLnByb3RvdHlwZS5rZXlGcm9tU2VjcmV0ID0gZnVuY3Rpb24ga2V5RnJvbVNlY3JldChzZWNyZXQpIHtcbiAgcmV0dXJuIEtleVBhaXIuZnJvbVNlY3JldCh0aGlzLCBzZWNyZXQpO1xufTtcblxuRUREU0EucHJvdG90eXBlLm1ha2VTaWduYXR1cmUgPSBmdW5jdGlvbiBtYWtlU2lnbmF0dXJlKHNpZykge1xuICBpZiAoc2lnIGluc3RhbmNlb2YgU2lnbmF0dXJlKVxuICAgIHJldHVybiBzaWc7XG4gIHJldHVybiBuZXcgU2lnbmF0dXJlKHRoaXMsIHNpZyk7XG59O1xuXG4vKipcbiogKiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtam9zZWZzc29uLWVkZHNhLWVkMjU1MTktMDMjc2VjdGlvbi01LjJcbipcbiogRUREU0EgZGVmaW5lcyBtZXRob2RzIGZvciBlbmNvZGluZyBhbmQgZGVjb2RpbmcgcG9pbnRzIGFuZCBpbnRlZ2Vycy4gVGhlc2UgYXJlXG4qIGhlbHBlciBjb252ZW5pZW5jZSBtZXRob2RzLCB0aGF0IHBhc3MgYWxvbmcgdG8gdXRpbGl0eSBmdW5jdGlvbnMgaW1wbGllZFxuKiBwYXJhbWV0ZXJzLlxuKlxuKi9cbkVERFNBLnByb3RvdHlwZS5lbmNvZGVQb2ludCA9IGZ1bmN0aW9uIGVuY29kZVBvaW50KHBvaW50KSB7XG4gIHZhciBlbmMgPSBwb2ludC5nZXRZKCkudG9BcnJheSgnbGUnLCB0aGlzLmVuY29kaW5nTGVuZ3RoKTtcbiAgZW5jW3RoaXMuZW5jb2RpbmdMZW5ndGggLSAxXSB8PSBwb2ludC5nZXRYKCkuaXNPZGQoKSA/IDB4ODAgOiAwO1xuICByZXR1cm4gZW5jO1xufTtcblxuRUREU0EucHJvdG90eXBlLmRlY29kZVBvaW50ID0gZnVuY3Rpb24gZGVjb2RlUG9pbnQoYnl0ZXMpIHtcbiAgYnl0ZXMgPSB1dGlscy5wYXJzZUJ5dGVzKGJ5dGVzKTtcblxuICB2YXIgbGFzdEl4ID0gYnl0ZXMubGVuZ3RoIC0gMTtcbiAgdmFyIG5vcm1lZCA9IGJ5dGVzLnNsaWNlKDAsIGxhc3RJeCkuY29uY2F0KGJ5dGVzW2xhc3RJeF0gJiB+MHg4MCk7XG4gIHZhciB4SXNPZGQgPSAoYnl0ZXNbbGFzdEl4XSAmIDB4ODApICE9PSAwO1xuXG4gIHZhciB5ID0gdXRpbHMuaW50RnJvbUxFKG5vcm1lZCk7XG4gIHJldHVybiB0aGlzLmN1cnZlLnBvaW50RnJvbVkoeSwgeElzT2RkKTtcbn07XG5cbkVERFNBLnByb3RvdHlwZS5lbmNvZGVJbnQgPSBmdW5jdGlvbiBlbmNvZGVJbnQobnVtKSB7XG4gIHJldHVybiBudW0udG9BcnJheSgnbGUnLCB0aGlzLmVuY29kaW5nTGVuZ3RoKTtcbn07XG5cbkVERFNBLnByb3RvdHlwZS5kZWNvZGVJbnQgPSBmdW5jdGlvbiBkZWNvZGVJbnQoYnl0ZXMpIHtcbiAgcmV0dXJuIHV0aWxzLmludEZyb21MRShieXRlcyk7XG59O1xuXG5FRERTQS5wcm90b3R5cGUuaXNQb2ludCA9IGZ1bmN0aW9uIGlzUG9pbnQodmFsKSB7XG4gIHJldHVybiB2YWwgaW5zdGFuY2VvZiB0aGlzLnBvaW50Q2xhc3M7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZWxsaXB0aWMgPSByZXF1aXJlKCcuLi8uLi9lbGxpcHRpYycpO1xudmFyIHV0aWxzID0gZWxsaXB0aWMudXRpbHM7XG52YXIgYXNzZXJ0ID0gdXRpbHMuYXNzZXJ0O1xudmFyIHBhcnNlQnl0ZXMgPSB1dGlscy5wYXJzZUJ5dGVzO1xudmFyIGNhY2hlZFByb3BlcnR5ID0gdXRpbHMuY2FjaGVkUHJvcGVydHk7XG5cbi8qKlxuKiBAcGFyYW0ge0VERFNBfSBlZGRzYSAtIGluc3RhbmNlXG4qIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBwdWJsaWMvcHJpdmF0ZSBrZXkgcGFyYW1ldGVyc1xuKlxuKiBAcGFyYW0ge0FycmF5PEJ5dGU+fSBbcGFyYW1zLnNlY3JldF0gLSBzZWNyZXQgc2VlZCBieXRlc1xuKiBAcGFyYW0ge1BvaW50fSBbcGFyYW1zLnB1Yl0gLSBwdWJsaWMga2V5IHBvaW50IChha2EgYEFgIGluIGVkZHNhIHRlcm1zKVxuKiBAcGFyYW0ge0FycmF5PEJ5dGU+fSBbcGFyYW1zLnB1Yl0gLSBwdWJsaWMga2V5IHBvaW50IGVuY29kZWQgYXMgYnl0ZXNcbipcbiovXG5mdW5jdGlvbiBLZXlQYWlyKGVkZHNhLCBwYXJhbXMpIHtcbiAgdGhpcy5lZGRzYSA9IGVkZHNhO1xuICB0aGlzLl9zZWNyZXQgPSBwYXJzZUJ5dGVzKHBhcmFtcy5zZWNyZXQpO1xuICBpZiAoZWRkc2EuaXNQb2ludChwYXJhbXMucHViKSlcbiAgICB0aGlzLl9wdWIgPSBwYXJhbXMucHViO1xuICBlbHNlXG4gICAgdGhpcy5fcHViQnl0ZXMgPSBwYXJzZUJ5dGVzKHBhcmFtcy5wdWIpO1xufVxuXG5LZXlQYWlyLmZyb21QdWJsaWMgPSBmdW5jdGlvbiBmcm9tUHVibGljKGVkZHNhLCBwdWIpIHtcbiAgaWYgKHB1YiBpbnN0YW5jZW9mIEtleVBhaXIpXG4gICAgcmV0dXJuIHB1YjtcbiAgcmV0dXJuIG5ldyBLZXlQYWlyKGVkZHNhLCB7IHB1YjogcHViIH0pO1xufTtcblxuS2V5UGFpci5mcm9tU2VjcmV0ID0gZnVuY3Rpb24gZnJvbVNlY3JldChlZGRzYSwgc2VjcmV0KSB7XG4gIGlmIChzZWNyZXQgaW5zdGFuY2VvZiBLZXlQYWlyKVxuICAgIHJldHVybiBzZWNyZXQ7XG4gIHJldHVybiBuZXcgS2V5UGFpcihlZGRzYSwgeyBzZWNyZXQ6IHNlY3JldCB9KTtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLnNlY3JldCA9IGZ1bmN0aW9uIHNlY3JldCgpIHtcbiAgcmV0dXJuIHRoaXMuX3NlY3JldDtcbn07XG5cbmNhY2hlZFByb3BlcnR5KEtleVBhaXIsICdwdWJCeXRlcycsIGZ1bmN0aW9uIHB1YkJ5dGVzKCkge1xuICByZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLnB1YigpKTtcbn0pO1xuXG5jYWNoZWRQcm9wZXJ0eShLZXlQYWlyLCAncHViJywgZnVuY3Rpb24gcHViKCkge1xuICBpZiAodGhpcy5fcHViQnl0ZXMpXG4gICAgcmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5fcHViQnl0ZXMpO1xuICByZXR1cm4gdGhpcy5lZGRzYS5nLm11bCh0aGlzLnByaXYoKSk7XG59KTtcblxuY2FjaGVkUHJvcGVydHkoS2V5UGFpciwgJ3ByaXZCeXRlcycsIGZ1bmN0aW9uIHByaXZCeXRlcygpIHtcbiAgdmFyIGVkZHNhID0gdGhpcy5lZGRzYTtcbiAgdmFyIGhhc2ggPSB0aGlzLmhhc2goKTtcbiAgdmFyIGxhc3RJeCA9IGVkZHNhLmVuY29kaW5nTGVuZ3RoIC0gMTtcblxuICB2YXIgYSA9IGhhc2guc2xpY2UoMCwgZWRkc2EuZW5jb2RpbmdMZW5ndGgpO1xuICBhWzBdICY9IDI0ODtcbiAgYVtsYXN0SXhdICY9IDEyNztcbiAgYVtsYXN0SXhdIHw9IDY0O1xuXG4gIHJldHVybiBhO1xufSk7XG5cbmNhY2hlZFByb3BlcnR5KEtleVBhaXIsICdwcml2JywgZnVuY3Rpb24gcHJpdigpIHtcbiAgcmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMucHJpdkJ5dGVzKCkpO1xufSk7XG5cbmNhY2hlZFByb3BlcnR5KEtleVBhaXIsICdoYXNoJywgZnVuY3Rpb24gaGFzaCgpIHtcbiAgcmV0dXJuIHRoaXMuZWRkc2EuaGFzaCgpLnVwZGF0ZSh0aGlzLnNlY3JldCgpKS5kaWdlc3QoKTtcbn0pO1xuXG5jYWNoZWRQcm9wZXJ0eShLZXlQYWlyLCAnbWVzc2FnZVByZWZpeCcsIGZ1bmN0aW9uIG1lc3NhZ2VQcmVmaXgoKSB7XG4gIHJldHVybiB0aGlzLmhhc2goKS5zbGljZSh0aGlzLmVkZHNhLmVuY29kaW5nTGVuZ3RoKTtcbn0pO1xuXG5LZXlQYWlyLnByb3RvdHlwZS5zaWduID0gZnVuY3Rpb24gc2lnbihtZXNzYWdlKSB7XG4gIGFzc2VydCh0aGlzLl9zZWNyZXQsICdLZXlQYWlyIGNhbiBvbmx5IHZlcmlmeScpO1xuICByZXR1cm4gdGhpcy5lZGRzYS5zaWduKG1lc3NhZ2UsIHRoaXMpO1xufTtcblxuS2V5UGFpci5wcm90b3R5cGUudmVyaWZ5ID0gZnVuY3Rpb24gdmVyaWZ5KG1lc3NhZ2UsIHNpZykge1xuICByZXR1cm4gdGhpcy5lZGRzYS52ZXJpZnkobWVzc2FnZSwgc2lnLCB0aGlzKTtcbn07XG5cbktleVBhaXIucHJvdG90eXBlLmdldFNlY3JldCA9IGZ1bmN0aW9uIGdldFNlY3JldChlbmMpIHtcbiAgYXNzZXJ0KHRoaXMuX3NlY3JldCwgJ0tleVBhaXIgaXMgcHVibGljIG9ubHknKTtcbiAgcmV0dXJuIHV0aWxzLmVuY29kZSh0aGlzLnNlY3JldCgpLCBlbmMpO1xufTtcblxuS2V5UGFpci5wcm90b3R5cGUuZ2V0UHVibGljID0gZnVuY3Rpb24gZ2V0UHVibGljKGVuYykge1xuICByZXR1cm4gdXRpbHMuZW5jb2RlKHRoaXMucHViQnl0ZXMoKSwgZW5jKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gS2V5UGFpcjtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIEJOID0gcmVxdWlyZSgnYm4uanMnKTtcbnZhciBlbGxpcHRpYyA9IHJlcXVpcmUoJy4uLy4uL2VsbGlwdGljJyk7XG52YXIgdXRpbHMgPSBlbGxpcHRpYy51dGlscztcbnZhciBhc3NlcnQgPSB1dGlscy5hc3NlcnQ7XG52YXIgY2FjaGVkUHJvcGVydHkgPSB1dGlscy5jYWNoZWRQcm9wZXJ0eTtcbnZhciBwYXJzZUJ5dGVzID0gdXRpbHMucGFyc2VCeXRlcztcblxuLyoqXG4qIEBwYXJhbSB7RUREU0F9IGVkZHNhIC0gZWRkc2EgaW5zdGFuY2VcbiogQHBhcmFtIHtBcnJheTxCeXRlcz58T2JqZWN0fSBzaWcgLVxuKiBAcGFyYW0ge0FycmF5PEJ5dGVzPnxQb2ludH0gW3NpZy5SXSAtIFIgcG9pbnQgYXMgUG9pbnQgb3IgYnl0ZXNcbiogQHBhcmFtIHtBcnJheTxCeXRlcz58Ym59IFtzaWcuU10gLSBTIHNjYWxhciBhcyBibiBvciBieXRlc1xuKiBAcGFyYW0ge0FycmF5PEJ5dGVzPn0gW3NpZy5SZW5jb2RlZF0gLSBSIHBvaW50IGVuY29kZWRcbiogQHBhcmFtIHtBcnJheTxCeXRlcz59IFtzaWcuU2VuY29kZWRdIC0gUyBzY2FsYXIgZW5jb2RlZFxuKi9cbmZ1bmN0aW9uIFNpZ25hdHVyZShlZGRzYSwgc2lnKSB7XG4gIHRoaXMuZWRkc2EgPSBlZGRzYTtcblxuICBpZiAodHlwZW9mIHNpZyAhPT0gJ29iamVjdCcpXG4gICAgc2lnID0gcGFyc2VCeXRlcyhzaWcpO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KHNpZykpIHtcbiAgICBzaWcgPSB7XG4gICAgICBSOiBzaWcuc2xpY2UoMCwgZWRkc2EuZW5jb2RpbmdMZW5ndGgpLFxuICAgICAgUzogc2lnLnNsaWNlKGVkZHNhLmVuY29kaW5nTGVuZ3RoKVxuICAgIH07XG4gIH1cblxuICBhc3NlcnQoc2lnLlIgJiYgc2lnLlMsICdTaWduYXR1cmUgd2l0aG91dCBSIG9yIFMnKTtcblxuICBpZiAoZWRkc2EuaXNQb2ludChzaWcuUikpXG4gICAgdGhpcy5fUiA9IHNpZy5SO1xuICBpZiAoc2lnLlMgaW5zdGFuY2VvZiBCTilcbiAgICB0aGlzLl9TID0gc2lnLlM7XG5cbiAgdGhpcy5fUmVuY29kZWQgPSBBcnJheS5pc0FycmF5KHNpZy5SKSA/IHNpZy5SIDogc2lnLlJlbmNvZGVkO1xuICB0aGlzLl9TZW5jb2RlZCA9IEFycmF5LmlzQXJyYXkoc2lnLlMpID8gc2lnLlMgOiBzaWcuU2VuY29kZWQ7XG59XG5cbmNhY2hlZFByb3BlcnR5KFNpZ25hdHVyZSwgJ1MnLCBmdW5jdGlvbiBTKCkge1xuICByZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVJbnQodGhpcy5TZW5jb2RlZCgpKTtcbn0pO1xuXG5jYWNoZWRQcm9wZXJ0eShTaWduYXR1cmUsICdSJywgZnVuY3Rpb24gUigpIHtcbiAgcmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5SZW5jb2RlZCgpKTtcbn0pO1xuXG5jYWNoZWRQcm9wZXJ0eShTaWduYXR1cmUsICdSZW5jb2RlZCcsIGZ1bmN0aW9uIFJlbmNvZGVkKCkge1xuICByZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLlIoKSk7XG59KTtcblxuY2FjaGVkUHJvcGVydHkoU2lnbmF0dXJlLCAnU2VuY29kZWQnLCBmdW5jdGlvbiBTZW5jb2RlZCgpIHtcbiAgcmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlSW50KHRoaXMuUygpKTtcbn0pO1xuXG5TaWduYXR1cmUucHJvdG90eXBlLnRvQnl0ZXMgPSBmdW5jdGlvbiB0b0J5dGVzKCkge1xuICByZXR1cm4gdGhpcy5SZW5jb2RlZCgpLmNvbmNhdCh0aGlzLlNlbmNvZGVkKCkpO1xufTtcblxuU2lnbmF0dXJlLnByb3RvdHlwZS50b0hleCA9IGZ1bmN0aW9uIHRvSGV4KCkge1xuICByZXR1cm4gdXRpbHMuZW5jb2RlKHRoaXMudG9CeXRlcygpLCAnaGV4JykudG9VcHBlckNhc2UoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gU2lnbmF0dXJlO1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIGRvdWJsZXM6IHtcbiAgICBzdGVwOiA0LFxuICAgIHBvaW50czogW1xuICAgICAgW1xuICAgICAgICAnZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYScsXG4gICAgICAgICdmN2UzNTA3Mzk5ZTU5NTkyOWRiOTlmMzRmNTc5MzcxMDEyOTY4OTFlNDRkMjNmMGJlMWYzMmNjZTY5NjE2ODIxJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgnLFxuICAgICAgICAnMTFmOGE4MDk4NTU3ZGZlNDVlODI1NmU4MzBiNjBhY2U2MmQ2MTNhYzJmN2IxN2JlZDMxYjZlYWZmNmUyNmNhZidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcxNzVlMTU5ZjcyOGI4NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5JyxcbiAgICAgICAgJ2QzNTA2ZTBkOWUzYzc5ZWJhNGVmOTdhNTFmZjcxZjVlYWNiNTk1NWFkZDI0MzQ1YzZlZmE2ZmZlZTlmZWQ2OTUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCcsXG4gICAgICAgICc0ZTI3M2FkZmM3MzIyMjE5NTNiNDQ1Mzk3ZjMzNjMxNDViOWE4OTAwODE5OWVjYjYyMDAzYzdmM2JlZTlkZTknXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOGI0YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYycsXG4gICAgICAgICc0YWFkMGE2ZjY4ZDMwOGI0YjNmYmQ3ODEzYWIwZGEwNGY5ZTMzNjU0NjE2MmVlNTZiM2VmZjBjNjVmZDRmZDM2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3YjcwMGRiZmZhNmMwZTc3YmNiNjExNTkyNTIzMmZjZGEnLFxuICAgICAgICAnOTZlODY3YjU1OTVjYzQ5OGE5MjExMzc0ODg4MjRkNmUyNjYwYTA2NTM3Nzk0OTQ4MDFkYzA2OWQ5ZWIzOWY1ZidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhJyxcbiAgICAgICAgJzVkOWE4Y2EzOTcwZWYwZjI2OWVlN2VkYWYxNzgwODlkOWFlNGNkYzNhNzExZjcxMmRkZmQ0ZmRhZTFkZTg5OTknXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCcsXG4gICAgICAgICdjZGQ5ZTEzMTkyYTAwYjc3MmVjOGYzMzAwYzA5MDY2NmI3ZmY0YTE4ZmY1MTk1YWMwZmJkNWNkNjJiYzY1YTA5J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2UxMDMxYmUyNjJjN2VkMWIxZGM5MjI3YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQnLFxuICAgICAgICAnOWQ3MDYxOTI4OTQwNDA1ZTZiYjZhNDE3NjU5NzUzNWFmMjkyZGQ0MTllMWNlZDc5YTQ0ZjE4ZjI5NDU2YTAwZCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVlNjg4ZDkwOTQ2OTZkJyxcbiAgICAgICAgJ2U1N2M2YjZjOTdkY2UxYmFiMDZlNGUxMmJmM2VjZDVjOTgxYzg5NTdjYzQxNDQyZDMxNTVkZWJmMTgwOTAwODgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZGE2N2E5MWQ5MTA0OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVkNjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMScsXG4gICAgICAgICc5YmFjYWEzNTQ4MTY0MmJjNDFmNDYzZjdlYzk3ODBlNWRlYzdhZGM1MDhmNzQwYTE3ZTllYThlMjdhNjhiZTFkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdiYjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAnLFxuICAgICAgICAnNWJjMDg3ZDBiYzgwMTA2ZDg4YzllY2NhYzIwZDNjMWMxMzk5OTk4MWUxNDQzNDY5OWRjYjA5NmIwMjI3NzFjOCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3JyxcbiAgICAgICAgJzEwYjc3NzBiMmEzZGE0YjM5NDAzMTA0MjBjYTk1MTQ1NzllODhlMmU0N2ZkNjhiM2VhMTAwNDdlODQ2MDM3MmEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzg1ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MicsXG4gICAgICAgICcyODNiZWJjM2U4ZWEyM2Y1NjcwMWRlMTllOWViZjQ1NzZiMzA0ZWVjMjA4NmRjOGNjMDQ1OGZlNTU0MmU1NDUzJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgwZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNycsXG4gICAgICAgICc3YzgwYzY4ZTYwMzA1OWJhNjliOGUyYTMwZTQ1YzRkNDdlYTRkZDJmNWMyODEwMDJkODY4OTA2MDNhODQyMTYwJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2YmQnLFxuICAgICAgICAnNTZlNzA3OTdlOTY2NGVmNWJmYjAxOWJjNGRkYWY5YjcyODA1ZjYzZWEyODczYWY2MjRmM2EyZTk2YzI4YjJhMCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMzOTc3MjFkNzRkMjgxMzRhYjgzJyxcbiAgICAgICAgJzdjNDgxYjliNWI0M2IyZWI2Mzc0MDQ5YmZhNjJjMmU1ZTc3ZjE3ZmNjNTI5OGY0NGM4ZTMwOTRmNzkwMzEzYTYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5NTlhZjYwYzgyYTBhJyxcbiAgICAgICAgJzUzYTU2Mjg1NmRjYjY2NDZkYzZiNzRjNWQxYzM0MThjNmQ0ZGZmMDhjOTdjZDJiZWQ0Y2I3Zjg4ZDhjOGU1ODknXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCcsXG4gICAgICAgICdiYzJkYTgyYjZmYTViNTcxYTdmMDkwNDk3NzZhMWVmN2VjZDI5MjIzODA1MWMxOThjMWE4NGU5NWIyYjRhZTE3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2U1MDM3ZGUwYWZjMWQ4ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQnLFxuICAgICAgICAnNDU3MTUzNGJhYTk0ZDNiNWY5Zjk4ZDA5ZmI5OTBiZGRiZDVmNWIwM2VjNDgxZjEwZTBlNWRjODQxZDc1NWJkYSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZhNmM1YjcyNTg2NmEwYWU0ZmNlNzI1JyxcbiAgICAgICAgJzdhOTA4OTc0YmNlMThjZmUxMmEyN2JiMmFkNWE0ODhjZDc0ODRhNzc4NzEwNDg3MGIyNzAzNGY5NGVlZTMxZGQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCcsXG4gICAgICAgICc0YjZkYWQwYjVhZTQ2MjUwNzAxM2FkMDYyNDViYTE5MGJiNDg1MGY1ZjM2YTdlZWRkZmYyYzI3NTM0YjQ1OGYyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNiMDhmYmQ1M2MnLFxuICAgICAgICAnMTc3NDljNzY2YzlkMGIxOGUxNmZkMDlmNmRlZjY4MWI1MzBiOTYxNGJmZjdkZDMzZTBiMzk0MTgxN2RjYWFlNidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIyN2I2JyxcbiAgICAgICAgJzZlMDU2OGRiOWIwYjEzMjk3Y2Y2NzRkZWNjYjZhZjkzMTI2YjU5NmI5NzNmN2I3NzcwMWQzZGI3ZjIzY2I5NmYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOScsXG4gICAgICAgICdjOTBkZGY4ZGVlNGU5NWNmNTc3MDY2ZDcwNjgxZjBkMzVlMmEzM2QyYjU2ZDIwMzJiNGIxNzUyZDE5MDFhYzAxJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2M3MzhjNTZiMDNiMmFiZTFlODI4MWJhYTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEnLFxuICAgICAgICAnODkzZmI1Nzg5NTFhZDI1MzdmNzE4ZjJlYWNiZmJiYmI4MjMxNGVlZjc4ODBjZmU5MTdlNzM1ZDk2OTlhODRjMydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkODk1NjI2NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJlOWY2NTg4ZjZjMTRiJyxcbiAgICAgICAgJ2ZlYmZhYTM4ZjJiYzdlYWU3MjhlYzYwODE4YzM0MGViMDM0MjhkNjMyYmIwNjdlMTc5MzYzZWQ3NWQ3ZDk5MWYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMycsXG4gICAgICAgICcyODA0ZGZhNDQ4MDVhMWU0ZDdjOTljYzk3NjI4MDhiMDkyY2M1ODRkOTVmZjNiNTExNDg4ZTRlNzRlZmRmNmU3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2U4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQnLFxuICAgICAgICAnZWVkMWRlN2Y2MzhlMDA3NzFlODk3NjhjYTNjYTk0NDcyZDE1NWU4MGFmMzIyZWE5ZmNiNDI5MWI2YWM5ZWM3OCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwJyxcbiAgICAgICAgJzczNzBmOTFjZmI2N2U0ZjUwODE4MDlmYTI1ZDQwZjliMTczNWRiZjdjMGExMWExMzBjMGQxYTA0MWUxNzdlYTEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOTBhZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCcsXG4gICAgICAgICdlNTA3YTM2MjBhMzgyNjFhZmZkY2JkOTQyNzIyMmI4MzlhZWZhYmUxNTgyODk0ZDk5MWQ0ZDQ4Y2I2ZWYxNTAnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVlODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYScsXG4gICAgICAgICc2NjJhOWYyZGJhMDYzOTg2ZGUxZDkwYzJiNmJlMjE1ZGJiZWEyY2ZlOTU1MTBiZmRmMjNjYmY3OTUwMWZmZjgyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2U0ZjNmYjAxNzZhZjg1ZDY1ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFlMTEnLFxuICAgICAgICAnMWU2MzYzM2FkMGVmNGYxYzE2NjFhNmQwZWEwMmI3Mjg2Y2M3ZTc0ZWM5NTFkMWM5ODIyYzM4NTc2ZmViNzNiYydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllJyxcbiAgICAgICAgJ2VmYTQ3MjY3ZmVhNTIxYTFhOWRjMzQzYTM3MzZjOTc0YzJmYWRhZmE4MWUzNmM1NGU3ZDJhNGM2NjcwMjQxNGInXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3ZmRkZmM2MGNiM2U0MScsXG4gICAgICAgICcyYTc1OGUzMDBmYTc5ODRiNDcxYjAwNmExYWFmYmIxOGQwYTZiMmMwNDIwZTgzZTIwZThhOTQyMWNmMmNmZDUxJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2I2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYnLFxuICAgICAgICAnNjdjODc2ZDA2ZjNlMDZkZTFkYWRmMTZlNTY2MWRiM2M0YjNhZTZkNDhlMzViMmZmMzBiZjBiNjFhNzFiYTQ1J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2Q2OGE4MGM4MjgwYmI4NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgnLFxuICAgICAgICAnZGI4YmE5ZmZmNGI1ODZkMDBjNGIxZjkxNzdiMGUyOGI1YjBlN2I4Zjc4NDUyOTVhMjk0Yzg0MjY2YjEzMzEyMCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0NDljZWE0MDk1OTgwZmMyOGQzZDVkJyxcbiAgICAgICAgJzY0OGEzNjU3NzRiNjFmMmZmMTMwYzBjMzVhZWMxZjRmMTkyMTNiMGM3ZTMzMjg0Mzk2NzIyNGFmOTZhYjdjODQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNGRmOWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVmZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NicsXG4gICAgICAgICczNWVjNTEwOTJkODcyODA1MDk3NGMyM2ExZDg1ZDRiNWQ1MDZjZGMyODg0OTAxOTJlYmFjMDZjYWQxMGQ1ZCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkJyxcbiAgICAgICAgJ2RkYjg0ZjBmNGE0ZGRkNTc1ODRmMDQ0YmYyNjBlNjQxOTA1MzI2Zjc2YzY0YzhlNmJlN2U1ZTAzZDRmYzU5OWQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTllNScsXG4gICAgICAgICc5YTFhZjBiMjZhNmE0ODA3YWRkOWEyZGFmNzFkZjI2MjQ2NTE1MmJjM2VlMjRjNjVlODk5YmU5MzIzODVhMmE4J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2E1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYnLFxuICAgICAgICAnNDBhNmJmMjBlNzY2NDBiMmM5MmI5N2FmZTU4Y2Q4MmM0MzJlMTBhN2Y1MTRkOWYzZWU4YmUxMWFlMWIyOGVjOCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYyOWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxJyxcbiAgICAgICAgJzM0NjI2ZDlhYjVhNWIyMmZmNzA5OGUxMmYyZmY1ODAwODdiMzg0MTFmZjI0YWM1NjNiNTEzZmMxZmQ5ZjQzYWMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOTI4OTU1ZWU2MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5YzA2ZDkwM2FjJyxcbiAgICAgICAgJ2MyNTYyMTAwM2QzZjQyYTgyN2I3OGExMzA5M2E5NWVlYWMzZDI2ZWZhOGE4ZDgzZmM1MTgwZTkzNWJjZDA5MWYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnODVkMGZlZjNlYzZkYjEwOTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRhOTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MScsXG4gICAgICAgICcxZjAzNjQ4NDEzYTM4YzBiZTI5ZDQ5NmU1ODJjZjU2NjNlODc1MWU5Njg3NzMzMTU4MmMyMzdhMjRlYjFmOTYyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2ZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2UnLFxuICAgICAgICAnNDkzZDEzZmVmNTI0YmExODhhZjRjNGRjNTRkMDc5MzZjN2I3ZWQ2ZmI5MGUyY2ViMmM5NTFlMDFmMGMyOTkwNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxJyxcbiAgICAgICAgJ2M2MGY5YzkyM2M3MjdiMGI3MWJlZjJjNjdkMWQxMjY4N2ZmN2E2MzE4NjkwMzE2NmQ2MDViNjhiYWVjMjkzZWMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZWFhNjQ5ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMycsXG4gICAgICAgICdiZTMyNzllZDViYmJiMDNhYzY5YTgwZjg5ODc5YWE1YTAxYTZiOTY1ZjEzZjdlNTlkNDdhNTMwNWJhNWFkOTNkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2U0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFiNmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYnLFxuICAgICAgICAnNGQ5ZjkyZTcxNmQxYzczNTI2ZmM5OWNjZmI4YWQzNGNlODg2ZWVkZmE4ZDhlNGYxM2E3ZjcxMzFkZWJhOTQxNCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcxZWM4MGZlZjM2MGNiZGQ5NTQxNjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5JyxcbiAgICAgICAgJ2FlZWZlOTM3NTZiNTM0MGQyZjNhNDk1OGE3YWJiZjVlMDE0NmU3N2Y2Mjk1YTA3YjY3MWNkYzFjYzEwN2NlZmQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4OWRkYjU5MjgzNjY2NDJiZScsXG4gICAgICAgICdiMzE4ZTBlYzMzNTQwMjhhZGQ2Njk4MjdmOWQ0YjI4NzBhYWE5NzFkMmY3ZTVlZDFkMGIyOTc0ODNkODNlZmQwJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2ZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjknLFxuICAgICAgICAnNmI4NGM2OTIyMzk3ZWJhOWI3MmNkMjg3MjI4MWE2OGE1ZTY4MzI5M2E1N2EyMTNiMzhjZDhkN2QzZjRmMjgxMSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyJyxcbiAgICAgICAgJzgxNTdmNTVhN2M5OTMwNmM3OWMwNzY2MTYxYzkxZTI5NjZhNzM4OTlkMjc5YjQ4YTY1NWZiYTBmMWFkODM2ZjEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYThlMjgyZmYwYzk3MDY5MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMycsXG4gICAgICAgICc3Zjk3MzU1YjhkYjgxYzA5YWJmYjdmM2M1YjI1MTU4ODhiNjc5YTNlNTBkZDZiZDZjZWY3YzczMTExZjRjYzBjJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1MDhjMDIyZjM4MmRlODMxOTQ5N2MnLFxuICAgICAgICAnY2NjOWRjMzdhYmZjOWMxNjU3YjQxNTVmMmM0N2Y5ZTY2NDZiM2ExZDhjYjk4NTQzODNkYTEzYWMwNzlhZmE3MydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc5NTkzOTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAxOGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhJyxcbiAgICAgICAgJzJlN2U1NTI4ODhjMzMxZGQ4YmEwMzg2YTRiOWNkNjg0OWM2NTNmNjRjODcwOTM4NWU5YjhhYmY4NzUyNGYyZmQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZjY2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5ZDgyYjE1MScsXG4gICAgICAgICdlODJkODZmYjY0NDNmY2I3NTY1YWVlNThiMjk0ODIyMGE3MGY3NTBhZjQ4NGNhNTJkNDE0MjE3NGRjZjg5NDA1J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzMnLFxuICAgICAgICAnZDk5ZmNkZDViZjY5MDJlMmFlOTZkZDY0NDdjMjk5YTE4NWI5MGEzOTEzM2FlYWIzNTgyOTllNWU5ZmFmNjU4OSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4JyxcbiAgICAgICAgJzM4ZWU3YjhjYmE1NDA0ZGQ4NGEyNWJmMzljZWNiMmNhOTAwYTc5YzQyYjI2MmU1NTZkNjRiMWI1OTc3OTA1N2UnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTM0NjRhNTdhNzgxMDJhYTYyYjY5NzlhZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YicsXG4gICAgICAgICc2OWJlMTU5MDA0NjE0NTgwZWY3ZTQzMzQ1M2NjYjBjYTQ4ZjMwMGE4MWQwOTQyZTEzZjQ5NWE5MDdmNmVjYzI3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2JjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEzYTBkMmQ4M2YzNjYnLFxuICAgICAgICAnZDNhODFjYTZlNzg1YzA2MzgzOTM3YWRmNGI3OThjYWE2ZThhOWZiZmE1NDdiMTZkNzU4ZDY2NjU4MWYzM2MxJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzhjMjhhOTdiZjgyOThiYzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEnLFxuICAgICAgICAnNDBhMzA0NjNhMzMwNTE5MzM3OGZlZGYzMWY3Y2MwZWI3YWU3ODRmMDQ1MWNiOTQ1OWU3MWRjNzNjYmVmOTQ4MidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRiYjMzNzQ4YzRiYTExMWZhY2NhZTAnLFxuICAgICAgICAnNjIwZWZhYmJjOGVlMjc4MmUyNGU3YzBjZmI5NWM1ZDczNWI3ODNiZTljZjBmOGU5NTVhZjM0YTMwZTYyYjk0NSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3JyxcbiAgICAgICAgJzdhMTg4ZmEzNTIwZTMwZDQ2MWRhMjUwMTA0NTczMWNhOTQxNDYxOTgyODgzMzk1OTM3ZjY4ZDAwYzY0NGE1NzMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZjcxMGQ3OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZScsXG4gICAgICAgICdlYTk4ZTY3MjMyZDNiMzI5NWQzYjUzNTUzMjExNWNjYWM4NjEyYzcyMTg1MTYxNzUyNmFlNDdhOWM3N2JmYzgyJ1xuICAgICAgXVxuICAgIF1cbiAgfSxcbiAgbmFmOiB7XG4gICAgd25kOiA3LFxuICAgIHBvaW50czogW1xuICAgICAgW1xuICAgICAgICAnZjkzMDhhMDE5MjU4YzMxMDQ5MzQ0Zjg1Zjg5ZDUyMjliNTMxYzg0NTgzNmY5OWIwODYwMWYxMTNiY2UwMzZmOScsXG4gICAgICAgICczODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRjMjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzJmOGJkZTRkMWEwNzIwOTM1NWI0YTcyNTBhNWM1MTI4ZTg4Yjg0YmRkYzYxOWFiN2NiYThkNTY5YjI0MGVmZTQnLFxuICAgICAgICAnZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc1Y2JkZjA2NDZlNWRiNGVhYTM5OGYzNjVmMmVhN2EwZTNkNDE5YjdlMDMzMGUzOWNlOTJiZGRlZGNhYzRmOWJjJyxcbiAgICAgICAgJzZhZWJjYTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYWNkNDg0ZTJmMGM3ZjY1MzA5YWQxNzhhOWY1NTlhYmRlMDk3OTY5NzRjNTdlNzE0YzM1ZjExMGRmYzI3Y2NiZScsXG4gICAgICAgICdjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFkZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzc3NGFlN2Y4NThhOTQxMWU1ZWY0MjQ2YjcwYzY1YWFjNTY0OTk4MGJlNWMxNzg5MWJiZWMxNzg5NWRhMDA4Y2InLFxuICAgICAgICAnZDk4NGEwMzJlYjZiNWUxOTAyNDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYxYidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdmMjg3NzNjMmQ5NzUyODhiYzdkMWQyMDVjMzc0ODY1MWIwNzVmYmM2NjEwZTU4Y2RkZWVkZGY4ZjE5NDA1YWE4JyxcbiAgICAgICAgJ2FiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkNzkyNGQ0ZjdkNDNlYTk2NWE0NjVhZTMwOTVmZjQxMTMxZTU5NDZmM2M4NWY3OWU0NGFkYmNmOGUyN2UwODBlJyxcbiAgICAgICAgJzU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRkYzlmZjZhMjZiNTgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZGVmZGVhNGNkYjY3Nzc1MGE0MjBmZWU4MDdlYWNmMjFlYjk4OThhZTc5Yjk3Njg3NjZlNGZhYTA0YTJkNGEzNCcsXG4gICAgICAgICc0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzJiNGVhMGE3OTdhNDQzZDI5M2VmNWNmZjQ0NGY0OTc5ZjA2YWNmZWJkN2U4NmQyNzc0NzU2NTYxMzgzODViNmMnLFxuICAgICAgICAnODVlODliYzAzNzk0NWQ5M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczNTJiYmY0YTRjZGQxMjU2NGY5M2ZhMzMyY2UzMzMzMDFkOWFkNDAyNzFmODEwNzE4MTM0MGFlZjI1YmU1OWQ1JyxcbiAgICAgICAgJzMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIxMDM5YzY3YmQzZDhiY2Y4MTk5OGMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMmZhMjEwNGQ2YjM4ZDExYjAyMzAwMTA1NTk4NzkxMjRlNDJhYjhkZmVmZjVmZjI5ZGM5Y2RhZGQ0ZWNhY2MzZicsXG4gICAgICAgICcyZGUxMDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVkZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjcnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOTI0ODI3OWIwOWI0ZDY4ZGFiMjFhOWIwNjZlZGRhODMyNjNjM2Q4NGUwOTU3MmUyNjljYTBjZDdmNTQ1MzcxNCcsXG4gICAgICAgICc3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2RhZWQ0ZjJiZTNhOGJmMjc4ZTcwMTMyZmIwYmViNzUyMmY1NzBlMTQ0YmY2MTVjMDdlOTk2ZDQ0M2RlZTg3MjknLFxuICAgICAgICAnYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1NSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdjNDRkMTJjNzA2NWQ4MTJlOGFjZjI4ZDdjYmIxOWY5MDExZWNkOWU5ZmRmMjgxYjBlNmEzYjVlODdkMjJlN2RiJyxcbiAgICAgICAgJzIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODInXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNmEyNDViZjZkYzY5ODUwNGM4OWEyMGNmZGVkNjA4NTMxNTJiNjk1MzM2YzI4MDYzYjYxYzY1Y2JkMjY5ZTZiNCcsXG4gICAgICAgICdlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZmMTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzE2OTdmZmE2ZmQ5ZGU2MjdjMDc3ZTNkMmZlNTQxMDg0Y2UxMzMwMGIwYmVjMTE0NmY5NWFlNTdmMGQwYmQ2YTUnLFxuICAgICAgICAnYjljMzk4ZjE4NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlkNjNkMDFiMjM5NidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc2MDViZGIwMTk5ODE3MThiOTg2ZDBmMDdlODM0Y2IwZDlkZWI4MzYwZmZiN2Y2MWRmOTgyMzQ1ZWYyN2E3NDc5JyxcbiAgICAgICAgJzI5NzJkMmRlNGY4ZDIwNjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFlODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc2MmQxNGRhYjQxNTBiZjQ5NzQwMmZkYzQ1YTIxNWUxMGRjYjAxYzM1NDk1OWIxMGNmZTMxYzdlOWQ4N2ZmMzNkJyxcbiAgICAgICAgJzgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnODBjNjBhZDAwNDBmMjdkYWRlNWI0YjA2YzQwOGU1NmIyYzUwZTlmNTZiOWI4YjQyNWU1NTVjMmY4NjMwOGI2ZicsXG4gICAgICAgICcxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzdhOTM3NWFkNjE2N2FkNTRhYTc0YzYzNDhjYzU0ZDM0NGNjNWRjOTQ4N2Q4NDcwNDlkNWVhYmIwZmEwM2M4ZmInLFxuICAgICAgICAnZDBlM2ZhOWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2Q1MjhlY2Q5YjY5NmI1NGM5MDdhOWVkMDQ1NDQ3YTc5YmI0MDhlYzM5YjY4ZGY1MDRiYjUxZjQ1OWJjM2ZmYzknLFxuICAgICAgICAnZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQzNDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc0OTM3MGE0YjVmNDM0MTJlYTI1ZjUxNGU4ZWNkYWQwNTI2NjExNWU0YTdlY2IxMzg3MjMxODA4ZjhiNDU5NjMnLFxuICAgICAgICAnNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3N2YyMzA5MzZlZTg4Y2JiZDczZGY5MzBkNjQ3MDJlZjg4MWQ4MTFlMGUxNDk4ZTJmMWMxM2ViMWZjMzQ1ZDc0JyxcbiAgICAgICAgJzk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTliYTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJlOGViM2M3NjcxYzYwZDYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZjJkYWM5OTFjYzRjZTRiOWVhNDQ4ODdlNWM3YzBiY2U1OGM4MDA3NGFiOWQ0ZGJhZWIyODUzMWI3NzM5ZjUzMCcsXG4gICAgICAgICdlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzQ2M2IzZDlmNjYyNjIxZmIxYjRiZThmYmJlMjUyMDEyNWEyMTZjZGZjOWRhZTNkZWJjYmE0ODUwYzY5MGQ0NWInLFxuICAgICAgICAnNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdmMTZmODA0MjQ0ZTQ2ZTJhMDkyMzJkNGFmZjNiNTk5NzZiOThmYWMxNDMyOGEyZDFhMzI0OTZiNDk5OThmMjQ3JyxcbiAgICAgICAgJ2NlZGFiZDliODIyMDNmN2UxM2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnY2FmNzU0MjcyZGM4NDU2M2IwMzUyYjdhMTQzMTFhZjU1ZDI0NTMxNWFjZTI3YzY1MzY5ZTE1ZjcxNTFkNDFkMScsXG4gICAgICAgICdjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMyYTVjMzJmOTA4MzE4YTA0NDc2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzI2MDBjYTRiMjgyY2I5ODZmODVkMGYxNzA5OTc5ZDhiNDRhMDljMDdjYjg2ZDdjMTI0NDk3YmM4NmYwODIxMjAnLFxuICAgICAgICAnNDExOWI4ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3NjM1Y2E3MmQ3ZTg0MzJjMzM4ZWM1M2NkMTIyMjBiYzAxYzQ4Njg1ZTI0ZjdkYzhjNjAyYTc3NDY5OThlNDM1JyxcbiAgICAgICAgJzkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNmYzA2MWQ1NzA0OGJhZDllNzZmMzAyYzViOWM2MSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3NTRlMzIzOWYzMjU1NzBjZGJiZjRhODdkZWVlOGE2NmI3ZjJiMzM0NzlkNDY4ZmJjMWE1MDc0M2JmNTZjYzE4JyxcbiAgICAgICAgJzY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlM2U2YmQxMDcxYTFlOTZhZmY1Nzg1OWM4MmQ1NzBmMDMzMDgwMDY2MWQxYzk1MmY5ZmUyNjk0NjkxZDliOWU4JyxcbiAgICAgICAgJzU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTg2YjQ4M2QwNTZhMDMzODI2YWU3M2Q4OGY3MzI5ODVjNGNjYjFmMzJiYTM1ZjRiNGNjNDdmZGNmMDRhYTZlYicsXG4gICAgICAgICczYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQxODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2RmOWQ3MGE2Yjk4NzZjZTU0NGM5ODU2MWY0YmU0ZjcyNTQ0MmU2ZDJiNzM3ZDljOTFhODMyMTcyNGNlMDk2M2YnLFxuICAgICAgICAnNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNmMmJhMjQxNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc1ZWRkNWNjMjNjNTFlODdhNDk3Y2E4MTVkNWRjZTBmOGFiNTI1NTRmODQ5ZWQ4OTk1ZGU2NGM1ZjM0Y2U3MTQzJyxcbiAgICAgICAgJ2VmYWU5YzhkYmMxNDEzMDY2MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBkMTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMjkwNzk4YzJiNjQ3NjgzMGRhMTJmZTAyMjg3ZTllNzc3YWEzZmJhMWMzNTViMTdhNzIyZDM2MmY4NDYxNGZiYScsXG4gICAgICAgICdlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIzMTQ2ZDAwM2FmZDQxOTQzZTdhJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2FmM2M0MjNhOTVkOWY1YjMwNTQ3NTRlZmExNTBhYzM5Y2QyOTU1MmZlMzYwMjU3MzYyZGZkZWNlZjQwNTNiNDUnLFxuICAgICAgICAnZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3NjZkYmIyNGQxMzRlNzQ1Y2NjYWEyOGM5OWJmMjc0OTA2YmI2NmIyNmRjZjk4ZGY4ZDJmZWQ1MGQ4ODQyNDlhJyxcbiAgICAgICAgJzc0NGIxMTUyZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNTlkYmY0NmY4Yzk0NzU5YmEyMTI3N2MzMzc4NGY0MTY0NWY3YjQ0ZjZjNTk2YTU4Y2U5MmU2NjYxOTFhYmUzZScsXG4gICAgICAgICdjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2YxM2FkYTk1MTAzYzQ1MzczMDVlNjkxZTc0ZTlhNGE4ZGQ2NDdlNzExYTk1ZTczY2I2MmRjNjAxOGNmZDg3YjgnLFxuICAgICAgICAnZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3NzU0YjRmYTBlOGFjZWQwNmQ0MTY3YTJjNTljY2E0Y2RhMTg2OWMwNmViYWRmYjY0ODg1NTAwMTVhODg1MjJjJyxcbiAgICAgICAgJzMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMwMjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3YTQ4YjU3ODQxMTYzYTInXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOTQ4ZGNhZGY1OTkwZTA0OGFhMzg3NGQ0NmFiZWY5ZDcwMTg1OGY5NWRlODA0MWQyYTY4MjhjOTllMjI2MjUxOScsXG4gICAgICAgICdlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNhZTUzNDdkNTdlJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzc5NjI0MTQ0NTBjNzZjMTY4OWM3YjQ4ZjgyMDJlYzM3ZmIyMjRjZjVhYzBiZmExNTcwMzI4YThhM2Q3Yzc3YWInLFxuICAgICAgICAnMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczNTE0MDg3ODM0OTY0YjU0YjE1YjE2MDY0NGQ5MTU0ODVhMTY5NzcyMjViODg0N2JiMGRkMDg1MTM3ZWM0N2NhJyxcbiAgICAgICAgJ2VmMGFmYmIyMDU2MjA1NDQ4ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZDNjYzMwYWQ2YjQ4M2U0YmM3OWNlMmM5ZGQ4YmM1NDk5M2U5NDdlYjhkZjc4N2I0NDI5NDNkM2Y3YjUyN2VhZicsXG4gICAgICAgICc4YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2MzBhZmIzNGRiMDRlZWRlMGE0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzE2MjRkODQ3ODA3MzI4NjBjZTFjNzhmY2JmZWZlMDhiMmIyOTgyM2RiOTEzZjY0OTM5NzViYTBmZjQ4NDc2MTAnLFxuICAgICAgICAnNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc3MzNjZTgwZGE5NTVhOGEyNjkwMmM5NTYzM2U2MmE5ODUxOTI0NzRiNWFmMjA3ZGE2ZGY3YjRmZDVmYzYxY2Q0JyxcbiAgICAgICAgJ2Y1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2UxZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRjNWVhMWQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTVkOTQ0MTI1NDk0NTA2NGNmMWExYzMzYmJkM2I0OWY4OTY2YzUwOTIxNzFlNjk5ZWYyNThkZmFiODFjMDQ1YycsXG4gICAgICAgICdkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2ExZDBmY2YyZWM5ZGU2NzViNjEyMTM2ZTVjZTcwZDI3MWMyMTQxN2M5ZDJiOGFhYWFjMTM4NTk5ZDA3MTc5NDAnLFxuICAgICAgICAnZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlMjJmYmUxNWMwYWY4Y2NjNTc4MGMwNzM1Zjg0ZGJlOWE3OTBiYWRlZTgyNDVjMDZjN2NhMzczMzFjYjM2OTgwJyxcbiAgICAgICAgJ2E4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczMTEwOTFkZDk4NjBlOGUyMGVlMTM0NzNjMTE1NWY1ZjY5NjM1ZTM5NDcwNGVhYTc0MDA5NDUyMjQ2Y2ZhOWIzJyxcbiAgICAgICAgJzY2ZGI2NTZmODdkMWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIxMjg2ZDgzNzQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzRjMWZkMDRkMzAxYmU4OWIzMWMwNDQyZDNlNmFjMjQ4ODM5MjhiNDVhOTM0MDc4MTg2N2Q0MjMyZWMyZGJkZicsXG4gICAgICAgICc5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZjIxOWVhNWQ2YjU0NzAxYzFjMTRkZTViNTU3ZWI0MmE4ZDEzZjNhYmJjZDA4YWZmY2MyYTVlNmIwNDliOGQ2MycsXG4gICAgICAgICc0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdmYjhkOGMyOTYyYTQwMDc2NmQxJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2Q3Yjg3NDBmNzRhOGZiYWFiMWY2ODNkYjhmNDVkZTI2NTQzYTU0OTBiY2E2MjcwODcyMzY5MTI0NjlhMGI0NDgnLFxuICAgICAgICAnZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczMmQzMWMyMjJmOGY2ZjBlZjg2ZjdjOThkM2EzMzM1ZWFkNWJjZDMyYWJkZDk0Mjg5ZmU0ZDMwOTFhYTgyNGJmJyxcbiAgICAgICAgJzVmMzAzMmY1ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzQ2MWYzNzE5MTRhYjMyNjcxMDQ1YTE1NWQ5ODMxZWE4NzkzZDc3Y2Q1OTU5MmM0MzQwZjg2Y2JjMTgzNDdiNScsXG4gICAgICAgICc4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUxZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2VlMDc5YWRiMWRmMTg2MDA3NDM1NmEyNWFhMzgyMDZhNmQ3MTZiMmMzZTY3NDUzZDI4NzY5OGJhZDdiMmIyZDYnLFxuICAgICAgICAnOGRjMjQxMmFhZmUzYmU1YzRjNWYzN2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcxNmVjOTNlNDQ3ZWM4M2YwNDY3YjE4MzAyZWU2MjBmN2U2NWRlMzMxODc0YzlkYzcyYmZkODYxNmJhOWRhNmI1JyxcbiAgICAgICAgJzVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZWFhNWY5ODBjMjQ1ZjZmMDM4OTc4MjkwYWZhNzBiNmJkODg1NTg5N2Y5OGI2YWE0ODViOTYwNjVkNTM3YmQ5OScsXG4gICAgICAgICdmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEwMjRlZGMwN2RjJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzc4Yzk0MDc1NDRhYzEzMjY5MmVlMTkxMGEwMjQzOTk1OGFlMDQ4NzcxNTEzNDJlYTk2YzRiNmIzNWE0OWY1MScsXG4gICAgICAgICdmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzQ5NGY0YmUyMTlhMWE3NzAxNmRjZDgzODQzMWFlYTAwMDFjZGM4YWU3YTZmYzY4ODcyNjU3OGQ5NzAyODU3YTUnLFxuICAgICAgICAnNDIyNDJhOTY5MjgzYTVmMzM5YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdhNTk4YTgwMzBkYTZkODZjNmJjN2YyZjUxNDRlYTU0OWQyODIxMWVhNThmYWE3MGViZjRjMWU2NjVjMWZlOWI1JyxcbiAgICAgICAgJzIwNGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2YTEwMDI2ZGJkMmQ4NjRlNmInXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYzQxOTE2MzY1YWJiMmI1ZDA5MTkyZjVmMmRiZWFmZWMyMDhmMDIwZjEyNTcwYTE4NGRiYWRjM2U1ODU5NTk5NycsXG4gICAgICAgICc0ZjE0MzUxZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnODQxZDYwNjNhNTg2ZmE0NzVhNzI0NjA0ZGEwM2JjNWI5MmEyZTBkMmUwYTM2YWNmZTRjNzNhNTUxNDc0Mjg4MScsXG4gICAgICAgICc3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNWU5NWJiMzk5YTY5NzFkMzc2MDI2OTQ3Zjg5YmRlMmYyODJiMzM4MTA5MjhiZTRkZWQxMTJhYzRkNzBlMjBkNScsXG4gICAgICAgICczOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzM2ZTQ2NDFhNTM5NDhmZDQ3NmMzOWY4YTk5ZmQ5NzRlNWVjMDc1NjRiNTMxNWQ4YmY5OTQ3MWJjYTBlZjJmNjYnLFxuICAgICAgICAnZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczMzY1ODFlYTdiZmJiYjI5MGMxOTFhMmY1MDdhNDFjZjU2NDM4NDIxNzBlOTE0ZmFlYWIyN2MyYzU3OWY3MjYnLFxuICAgICAgICAnZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZiMzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4YWI4OTgxNmRhZGZkNmI2YTFmMjYzNGZjZjAwZWM4NDAzNzgxMDI1ZWQ2ODkwYzQ4NDk3NDI3MDZiZDQzZWRlJyxcbiAgICAgICAgJzZmZGNlZjA5ZjJmNmQwYTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjljZGQyNGUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMWUzM2YxYTc0NmM5YzU3NzgxMzMzNDRkOTI5OWZjYWEyMGIwOTM4ZThhY2ZmMjU0NGJiNDAyODRiOGM1ZmI5NCcsXG4gICAgICAgICc2MDY2MDI1N2RkMTFiM2FhOWM4ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQwMzAxMGUzM2E3ZDIwNTdmM2IzYjYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnODViN2MxZGNiM2NlYzFiN2VlN2YzMGRlZDc5ZGQyMGEwZWQxZjRjYzE4Y2JjZmNmYTQxMDM2MWZkOGYwOGYzMScsXG4gICAgICAgICczZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzI5ZGY5ZmJkOGQ5ZTQ2NTA5Mjc1ZjRiMTI1ZDZkNDVkN2ZiZTlhM2I4NzhhN2FmODcyYTI4MDA2NjFhYzVmNTEnLFxuICAgICAgICAnYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2EwYjFjYWUwNmIwYTg0N2EzZmVhNmU2NzFhYWY4YWRmZGZlNThjYTJmNzY4MTA1YzgwODJiMmU0NDlmY2UyNTInLFxuICAgICAgICAnYWU0MzQxMDJlZGRlMDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc0ZThjZWFmYjliM2U5YTEzNmRjN2ZmNjdlODQwMjk1YjQ5OWRmYjNiMjEzM2U0YmExMTNmMmU0YzBlMTIxZTUnLFxuICAgICAgICAnY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYzNDYwNTAyYjgyN2NlNjJhMzI2NjgzYydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdkMjRhNDRlMDQ3ZTE5YjZmNWFmYjgxYzdjYTJmNjkwODBhNTA3NjY4OWEwMTA5MTlmNDI3MjVjMmI3ODlhMzNiJyxcbiAgICAgICAgJzZmYjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFjMGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZWEwMTYwNmE3YTZjOWNkZDI0OWZkZmNmYWNiOTk1ODQwMDFlZGQyOGFiYmFiNzdiNTEwNGU5OGU4ZTNiMzVkNCcsXG4gICAgICAgICczMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNjZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIxODhhM2VhOThkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2FmOGFkZGJmMmI2NjFjOGE2YzYzMjg2NTVlYjk2NjUxMjUyMDA3ZDhjNWVhMzFiZTRhZDE5NmRlOGNlMjEzMWYnLFxuICAgICAgICAnNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlM2FlMTk3NDU2NmNhMDZjYzUxNmQ0N2UwZmIxNjVhNjc0YTNkYWJjZmNhMTVlNzIyZjBlMzQ1MGY0NTg4OScsXG4gICAgICAgICcyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzU5MWVlMzU1MzEzZDk5NzIxY2Y2OTkzZmZlZDFlM2UzMDE5OTNmZjNlZDI1ODgwMjA3NWVhOGNlZDM5N2UyNDYnLFxuICAgICAgICAnYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICcxMTM5NmQ1NWZkYTU0YzQ5ZjE5YWE5NzMxOGQ4ZGE2MWZhODU4NGU0N2IwODQ5NDUwNzdjZjAzMjU1YjUyOTg0JyxcbiAgICAgICAgJzk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3YmVhOTNlYTU3YTQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnM2M1ZDJhMWJhMzljNWExNzkwMDAwNzM4YzllMGM0MGI4ZGNkZmQ1NDY4NzU0YjY0MDU1NDAxNTdlMDE3YWE3YScsXG4gICAgICAgICdiMjI4NDI3OTk5NWEzNGUyZjlkNGRlNzM5NmZjMThiODBmOWI4YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2NjODcwNGI4YTYwYTBkZWZhM2E5OWE3Mjk5ZjJlOWMzZmJjMzk1YWZiMDRhYzA3ODQyNWVmOGExNzkzY2MwMzAnLFxuICAgICAgICAnYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdjNTMzZTRmN2VhODU1NWFhY2Q5Nzc3YWM1Y2FkMjliOTdkZDRkZWZjY2M1M2VlN2VhMjA0MTE5YjI4ODliMTk3JyxcbiAgICAgICAgJzZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYzE0ZjhmMmNjYjI3ZDZmMTA5ZjZkMDhkMDNjYzk2YTY5YmE4YzM0ZWVjMDdiYmNmNTY2ZDQ4ZTMzZGE2NTkzJyxcbiAgICAgICAgJ2MzNTlkNjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYTZjYmMzMDQ2YmM2YTQ1MGJhYzI0Nzg5ZmExNzExNWE0Yzk3MzllZDc1ZjhmMjFjZTQ0MWY3MmUwYjkwZTZlZicsXG4gICAgICAgICcyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBjZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMzQ3ZDZkOWEwMmM0ODkyN2ViZmI4NmMxMzU5YjFjYWYxMzBhM2MwMjY3ZDExY2U2MzQ0YjM5Zjk5ZDQzY2MzOCcsXG4gICAgICAgICc2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2RhNjU0NWQyMTgxZGI4ZDk4M2Y3ZGNiMzc1ZWY1ODY2ZDQ3YzY3YjFiZjMxYzhjZjg1NWVmNzQzN2I3MjY1NmEnLFxuICAgICAgICAnNDliOTY3MTVhYjY4NzhhNzllNzhmMDdjZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5N2ZlYTgyNGI3N2RjMjA4YSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdjNDA3NDdjYzlkMDEyY2IxYTEzYjgxNDgzMDljNmRlN2VjMjVkNjk0NWQ2NTcxNDZiOWQ1OTk0YjhmZWIxMTExJyxcbiAgICAgICAgJzVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4MzAzN2UwZmEyZDQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNGU0MmM4ZWM4MmM5OTc5OGNjZjNhNjEwYmU4NzBlNzgzMzhjN2Y3MTMzNDhiZDM0YzgyMDNlZjQwMzdmMzUwMicsXG4gICAgICAgICc3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzM3NzVhYjcwODliYzZhZjgyM2FiYTJlMWFmNzBiMjM2ZDI1MWNhZGIwYzg2NzQzMjg3NTIyYTFiM2IwZGVkZWEnLFxuICAgICAgICAnYmU1MmQxMDdiY2ZhMDlkOGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdjZWUzMWNiZjdlMzRlYzM3OWQ5NGZiODE0ZDNkNzc1YWQ5NTQ1OTVkMTMxNGJhODg0Njk1OWUzZTgyZjc0ZTI2JyxcbiAgICAgICAgJzhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRlZDRkODBmNDQ4YTAxYzQzYjFjNmQnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYjRmOWVhZWEwOWI2OTE3NjE5ZjZlYTZhNGViNTQ2NGVmZGRiNThmZDQ1YjFlYmVmY2RjMWEwMWQwOGI0Nzk4NicsXG4gICAgICAgICczOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2Q0MjYzZGZjM2QyZGY5MjNhMDE3OWE0ODk2NmQzMGNlODRlMjUxNWFmYzNkY2NjMWI3NzkwNzc5MmViY2M2MGUnLFxuICAgICAgICAnNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIyYTIwOGQ1NCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc0ODQ1NzUyNDgyMGZhNjVhNGY4ZDM1ZWI2OTMwODU3YzAwMzJhY2MwYTRhMmRlNDIyMjMzZWVkYTg5NzYxMmM0JyxcbiAgICAgICAgJzI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBmNzcnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZGZlZWVmMTg4MTEwMWYyY2IxMTY0NGYzYTJhZmRmYzIwNDVlMTk5MTkxNTI5MjNmMzY3YTE3NjdjMTFjY2VkYScsXG4gICAgICAgICdlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzZkN2VmNmIxNzU0M2Y4MzczYzU3M2Y0NGUxZjM4OTgzNWQ4OWJjYmM2MDYyY2VkMzZjODJkZjgzYjhmYWU4NTknLFxuICAgICAgICAnY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBjNTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlNzU2MDVkNTkxMDJhNWEyNjg0NTAwZDNiOTkxZjJlM2YzYzg4YjkzMjI1NTQ3MDM1YWYyNWFmNjZlMDQ1NDFmJyxcbiAgICAgICAgJ2Y1YzU0NzU0YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5OTBlMmJmYWQxMjUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZWI5ODY2MGY0YzRkZmFhMDZhMmJlNDUzZDUwMjBiYzk5YTBjMmU2MGFiZTM4ODQ1N2RkNDNmZWZiMWVkNjIwYycsXG4gICAgICAgICc2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzEzZTg3YjAyN2Q4NTE0ZDM1OTM5ZjJlNjg5MmIxOTkyMjE1NDU5Njk0MTg4ODMzNmRjMzU2M2UzYjhkYmE5NDInLFxuICAgICAgICAnZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdlZTE2MzAyNmU5ZmQ2ZmUwMTdjMzhmMDZhNWJlNmZjMTI1NDI0YjM3MWNlMjcwOGU3YmY0NDkxNjkxZTU3NjRhJyxcbiAgICAgICAgJzFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjInXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYjI2OGY1ZWY5YWQ1MWU0ZDc4ZGUzYTc1MGMyZGM4OWIxZTYyNmQ0MzUwNTg2Nzk5OTkzMmU1ZGIzM2FmM2Q4MCcsXG4gICAgICAgICc1ZjMxMGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2ZmMDdmMzExOGE5ZGYwMzVlOWZhZDg1ZWI2YzdiZmU0MmIwMmYwMWNhOTljZWVhM2JmN2ZmZGJhOTNjNDc1MGQnLFxuICAgICAgICAnNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRjMWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4ZDhiOTg1NWM3YzA1MmEzNDE0NmZkMjBmZmI2NThiZWE0YjlmNjllMGQ4MjVlYmVjMTZlOGMzY2UyYjUyNmExJyxcbiAgICAgICAgJ2NkYjU1OWVlZGMyZDc5ZjkyNmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3NTgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNTJkYjBiNTM4NGRmYmYwNWJmYTlkNDcyZDdhZTI2ZGZlNGI4NTFjZWNhOTFiMWViYTU0MjYzMTgwZGEzMmI2MycsXG4gICAgICAgICdjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzUnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZTYyZjk0OTBkM2Q1MWRhNjM5NWVmZDI0ZTgwOTE5Y2M3ZDBmMjljM2YzZmE0OGM2ZmZmNTQzYmVjYmQ0MzM1MicsXG4gICAgICAgICc2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUwN2JmZDljY2FmYTdkJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzdmMzBlYTI0NzZiMzk5YjQ5NTc1MDljODhmNzdkMDE5MWFmYTJmZjVjYjdiMTRmZDZkOGU3ZDY1YWFhYjExOTMnLFxuICAgICAgICAnY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc1MDk4ZmYxZTFkOWYxNGZiNDZhMjEwZmFkYTZjOTAzZmVmMGZiN2I0YTFkZDFkOWFjNjBhMDM2MTgwMGI3YTAwJyxcbiAgICAgICAgJzk3MzExNDFkODFmYzhmODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczMmI3OGM3ZGU5ZWU1MTJhNzI4OTViZTZiOWNiZWZhNmUyZjNjNGNjY2U0NDVjOTZiOWYyYzgxZTI3NzhhZDU4JyxcbiAgICAgICAgJ2VlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUyMjc1YmE0OTcyMzc3OTRjODc1M2MnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZTJjYjc0ZmRkYzhlOWZiY2QwNzZlZWYyYTdjNzJiMGNlMzdkNTBmMDgyNjlkZmMwNzRiNTgxNTUwNTQ3YTRmNycsXG4gICAgICAgICdkM2FhMmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzg0Mzg0NDc1NjZkNGQ3YmVkYWRjMjk5NDk2YWIzNTc0MjYwMDlhMzVmMjM1Y2IxNDFiZTBkOTljZDEwYWUzYTgnLFxuICAgICAgICAnYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc0MTYyZDQ4OGI4OTQwMjAzOWI1ODRjNmZjNmMzMDg4NzA1ODdkOWM0NmY2NjBiODc4YWI2NWM4MmM3MTFkNjdlJyxcbiAgICAgICAgJzY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2NDknXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnM2ZhZDNmYTg0Y2FmMGYzNGYwZjg5YmZkMmRjZjU0ZmMxNzVkNzY3YWVjM2U1MDY4NGYzYmE0YTRiZjVmNjgzZCcsXG4gICAgICAgICdjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNjc0ZjI2MDBhMzAwN2EwMDU2OGMxYTdjZTA1ZDA4MTZjMWZiODRiZjEzNzA3OThmMWM2OTUzMmZhZWIxYTg2YicsXG4gICAgICAgICcyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1J1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2QzMmY0ZGE1NGFkZTc0YWJiODFiODE1YWQxZmIzYjI2M2Q4MmQ2YzY5MjcxNGJjZmY4N2QyOWJkNWVlOWYwOGYnLFxuICAgICAgICAnZjk0MjllNzM4YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2OTEwYjNlZWE4NydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczMGU0ZTY3MDQzNTM4NTU1NmU1OTM2NTcxMzU4NDVkMzZmYmI2OTMxZjcyYjA4Y2IxZWQ5NTRmMWUzY2UzZmY2JyxcbiAgICAgICAgJzQ2MmY5YmNlNjE5ODk4NjM4NDk5MzUwMTEzYmJjOWIxMGE4NzhkMzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2InXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnYmUyMDYyMDAzYzUxY2MzMDA0NjgyOTA0MzMwZTRkZWU3ZjNkY2QxMGIwMWU1ODBiZjE5NzFiMDRkNGNhZDI5NycsXG4gICAgICAgICc2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzkzMTQ0NDIzYWNlMzQ1MWVkMjllMGZiOWFjMmFmMjExY2I2ZTg0YTYwMWRmNTk5M2M0MTk4NTlmZmY1ZGYwNGEnLFxuICAgICAgICAnN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YydcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICdiMDE1ZjgwNDRmNWZjYmRjZjIxY2EyNmQ2YzM0ZmI4MTk3ODI5MjA1YzdiN2QyYTdjYjY2NDE4YzE1N2IxMTJjJyxcbiAgICAgICAgJ2FiOGMxZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnZDVlOWUxZGE2NDlkOTdkODllNDg2ODExN2E0NjVhM2E0ZjhhMThkZTU3YTE0MGQzNmIzZjJhZjM0MWEyMWI1MicsXG4gICAgICAgICc0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJ2QzYWU0MTA0N2RkN2NhMDY1ZGJmOGVkNzdiOTkyNDM5OTgzMDA1Y2Q3MmUxNmQ2Zjk5NmE1MzE2ZDM2OTY2YmInLFxuICAgICAgICAnYmQxYWViMjFhZDIyZWJiMjJhMTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0NidcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc0NjNlMjc2M2Q4ODVmOTU4ZmM2NmNkZDIyODAwZjBhNDg3MTk3ZDBhODJlMzc3YjQ5ZjgwYWY4N2M4OTdiMDY1JyxcbiAgICAgICAgJ2JmZWZhY2RiMGU1ZDBmZDdkZjNhMzExYTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUwOGI3OTk5MjY3MWVmN2NhN2YnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnNzk4NWZkZmQxMjdjMDU2N2M2ZjUzZWMxYmI2M2VjMzE1OGU1OTdjNDBiZmU3NDdjODNjZGRmYzkxMDY0MTkxNycsXG4gICAgICAgICc2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzc0YTFhZDZiNWY3NmUzOWRiMmRkMjQ5NDEwZWFjN2Y5OWU3NGM1OWNiODNkMmQwZWQ1ZmYxNTQzZGE3NzAzZTknLFxuICAgICAgICAnY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICczMDY4MmE1MDcwMzM3NWY2MDJkNDE2NjY0YmExOWI3ZmM5YmFiNDJjNzI3NDc0NjNhNzFkMDg5NmIyMmY2ZGEzJyxcbiAgICAgICAgJzU1M2UwNGY2YjAxOGI0ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnOWUyMTU4ZjBkN2MwZDVmMjZjMzc5MWVmZWZhNzk1OTc2NTRlN2EyYjI0NjRmNTJiMWVlNmMxMzQ3NzY5ZWY1NycsXG4gICAgICAgICc3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVhMzg1MDllMmZiZjI2MjkwMDgzNzMnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMTc2ZTI2OTg5YTQzYzljZmViYTQwMjljMjAyNTM4YzI4MTcyZTU2NmUzYzRmY2U3MzIyODU3ZjNiZTMyN2Q2NicsXG4gICAgICAgICdlZDhjYzlkMDRiMjllYjg3N2QyNzBiNDg3OGRjNDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzJ1xuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgJzc1ZDQ2ZWZlYTM3NzFlNmU2OGFiYjg5YTEzYWQ3NDdlY2YxODkyMzkzZGZjNGYxYjcwMDQ3ODhjNTAzNzRkYTgnLFxuICAgICAgICAnOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4NjhkN2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4NmE2YmVkOCdcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgICc4MDlhMjBjNjdkNjQ5MDBmZmI2OThjNGM4MjVmNmQ1ZjIzMTBmYjA0NTFjODY5MzQ1YjczMTlmNjQ1NjA1NzIxJyxcbiAgICAgICAgJzllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzEnXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAnMWIzODkwM2E0M2Y3ZjExNGVkNDUwMGI0ZWFjNzA4M2ZkZWZlY2UxY2YyOWM2MzUyOGQ1NjM0NDZmOTcyYzE4MCcsXG4gICAgICAgICc0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5J1xuICAgICAgXVxuICAgIF1cbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gZXhwb3J0cztcbnZhciBCTiA9IHJlcXVpcmUoJ2JuLmpzJyk7XG52YXIgbWluQXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xudmFyIG1pblV0aWxzID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWNyeXB0by11dGlscycpO1xuXG51dGlscy5hc3NlcnQgPSBtaW5Bc3NlcnQ7XG51dGlscy50b0FycmF5ID0gbWluVXRpbHMudG9BcnJheTtcbnV0aWxzLnplcm8yID0gbWluVXRpbHMuemVybzI7XG51dGlscy50b0hleCA9IG1pblV0aWxzLnRvSGV4O1xudXRpbHMuZW5jb2RlID0gbWluVXRpbHMuZW5jb2RlO1xuXG4vLyBSZXByZXNlbnQgbnVtIGluIGEgdy1OQUYgZm9ybVxuZnVuY3Rpb24gZ2V0TkFGKG51bSwgdykge1xuICB2YXIgbmFmID0gW107XG4gIHZhciB3cyA9IDEgPDwgKHcgKyAxKTtcbiAgdmFyIGsgPSBudW0uY2xvbmUoKTtcbiAgd2hpbGUgKGsuY21wbigxKSA+PSAwKSB7XG4gICAgdmFyIHo7XG4gICAgaWYgKGsuaXNPZGQoKSkge1xuICAgICAgdmFyIG1vZCA9IGsuYW5kbG4od3MgLSAxKTtcbiAgICAgIGlmIChtb2QgPiAod3MgPj4gMSkgLSAxKVxuICAgICAgICB6ID0gKHdzID4+IDEpIC0gbW9kO1xuICAgICAgZWxzZVxuICAgICAgICB6ID0gbW9kO1xuICAgICAgay5pc3Vibih6KTtcbiAgICB9IGVsc2Uge1xuICAgICAgeiA9IDA7XG4gICAgfVxuICAgIG5hZi5wdXNoKHopO1xuXG4gICAgLy8gT3B0aW1pemF0aW9uLCBzaGlmdCBieSB3b3JkIGlmIHBvc3NpYmxlXG4gICAgdmFyIHNoaWZ0ID0gKGsuY21wbigwKSAhPT0gMCAmJiBrLmFuZGxuKHdzIC0gMSkgPT09IDApID8gKHcgKyAxKSA6IDE7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBzaGlmdDsgaSsrKVxuICAgICAgbmFmLnB1c2goMCk7XG4gICAgay5pdXNocm4oc2hpZnQpO1xuICB9XG5cbiAgcmV0dXJuIG5hZjtcbn1cbnV0aWxzLmdldE5BRiA9IGdldE5BRjtcblxuLy8gUmVwcmVzZW50IGsxLCBrMiBpbiBhIEpvaW50IFNwYXJzZSBGb3JtXG5mdW5jdGlvbiBnZXRKU0YoazEsIGsyKSB7XG4gIHZhciBqc2YgPSBbXG4gICAgW10sXG4gICAgW11cbiAgXTtcblxuICBrMSA9IGsxLmNsb25lKCk7XG4gIGsyID0gazIuY2xvbmUoKTtcbiAgdmFyIGQxID0gMDtcbiAgdmFyIGQyID0gMDtcbiAgd2hpbGUgKGsxLmNtcG4oLWQxKSA+IDAgfHwgazIuY21wbigtZDIpID4gMCkge1xuXG4gICAgLy8gRmlyc3QgcGhhc2VcbiAgICB2YXIgbTE0ID0gKGsxLmFuZGxuKDMpICsgZDEpICYgMztcbiAgICB2YXIgbTI0ID0gKGsyLmFuZGxuKDMpICsgZDIpICYgMztcbiAgICBpZiAobTE0ID09PSAzKVxuICAgICAgbTE0ID0gLTE7XG4gICAgaWYgKG0yNCA9PT0gMylcbiAgICAgIG0yNCA9IC0xO1xuICAgIHZhciB1MTtcbiAgICBpZiAoKG0xNCAmIDEpID09PSAwKSB7XG4gICAgICB1MSA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBtOCA9IChrMS5hbmRsbig3KSArIGQxKSAmIDc7XG4gICAgICBpZiAoKG04ID09PSAzIHx8IG04ID09PSA1KSAmJiBtMjQgPT09IDIpXG4gICAgICAgIHUxID0gLW0xNDtcbiAgICAgIGVsc2VcbiAgICAgICAgdTEgPSBtMTQ7XG4gICAgfVxuICAgIGpzZlswXS5wdXNoKHUxKTtcblxuICAgIHZhciB1MjtcbiAgICBpZiAoKG0yNCAmIDEpID09PSAwKSB7XG4gICAgICB1MiA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBtOCA9IChrMi5hbmRsbig3KSArIGQyKSAmIDc7XG4gICAgICBpZiAoKG04ID09PSAzIHx8IG04ID09PSA1KSAmJiBtMTQgPT09IDIpXG4gICAgICAgIHUyID0gLW0yNDtcbiAgICAgIGVsc2VcbiAgICAgICAgdTIgPSBtMjQ7XG4gICAgfVxuICAgIGpzZlsxXS5wdXNoKHUyKTtcblxuICAgIC8vIFNlY29uZCBwaGFzZVxuICAgIGlmICgyICogZDEgPT09IHUxICsgMSlcbiAgICAgIGQxID0gMSAtIGQxO1xuICAgIGlmICgyICogZDIgPT09IHUyICsgMSlcbiAgICAgIGQyID0gMSAtIGQyO1xuICAgIGsxLml1c2hybigxKTtcbiAgICBrMi5pdXNocm4oMSk7XG4gIH1cblxuICByZXR1cm4ganNmO1xufVxudXRpbHMuZ2V0SlNGID0gZ2V0SlNGO1xuXG5mdW5jdGlvbiBjYWNoZWRQcm9wZXJ0eShvYmosIG5hbWUsIGNvbXB1dGVyKSB7XG4gIHZhciBrZXkgPSAnXycgKyBuYW1lO1xuICBvYmoucHJvdG90eXBlW25hbWVdID0gZnVuY3Rpb24gY2FjaGVkUHJvcGVydHkoKSB7XG4gICAgcmV0dXJuIHRoaXNba2V5XSAhPT0gdW5kZWZpbmVkID8gdGhpc1trZXldIDpcbiAgICAgICAgICAgdGhpc1trZXldID0gY29tcHV0ZXIuY2FsbCh0aGlzKTtcbiAgfTtcbn1cbnV0aWxzLmNhY2hlZFByb3BlcnR5ID0gY2FjaGVkUHJvcGVydHk7XG5cbmZ1bmN0aW9uIHBhcnNlQnl0ZXMoYnl0ZXMpIHtcbiAgcmV0dXJuIHR5cGVvZiBieXRlcyA9PT0gJ3N0cmluZycgPyB1dGlscy50b0FycmF5KGJ5dGVzLCAnaGV4JykgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzO1xufVxudXRpbHMucGFyc2VCeXRlcyA9IHBhcnNlQnl0ZXM7XG5cbmZ1bmN0aW9uIGludEZyb21MRShieXRlcykge1xuICByZXR1cm4gbmV3IEJOKGJ5dGVzLCAnaGV4JywgJ2xlJyk7XG59XG51dGlscy5pbnRGcm9tTEUgPSBpbnRGcm9tTEU7XG5cbiIsIm1vZHVsZS5leHBvcnRzPXtcbiAgXCJfYXJnc1wiOiBbXG4gICAgW1xuICAgICAge1xuICAgICAgICBcInJhd1wiOiBcImVsbGlwdGljQF42LjAuMFwiLFxuICAgICAgICBcInNjb3BlXCI6IG51bGwsXG4gICAgICAgIFwiZXNjYXBlZE5hbWVcIjogXCJlbGxpcHRpY1wiLFxuICAgICAgICBcIm5hbWVcIjogXCJlbGxpcHRpY1wiLFxuICAgICAgICBcInJhd1NwZWNcIjogXCJeNi4wLjBcIixcbiAgICAgICAgXCJzcGVjXCI6IFwiPj02LjAuMCA8Ny4wLjBcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwicmFuZ2VcIlxuICAgICAgfSxcbiAgICAgIFwiL1VzZXJzL2NoYXJsZXMvU291cmNlcy9nby9zcmMvZ2l0aHViLmNvbS9weWRpby9jZWxscy9mcm9udGVuZC9mcm9udC1zcnYvYXNzZXRzL2d1aS5hamF4L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5LXNpZ25cIlxuICAgIF1cbiAgXSxcbiAgXCJfZnJvbVwiOiBcImVsbGlwdGljQD49Ni4wLjAgPDcuMC4wXCIsXG4gIFwiX2lkXCI6IFwiZWxsaXB0aWNANi40LjBcIixcbiAgXCJfaW5DYWNoZVwiOiB0cnVlLFxuICBcIl9sb2NhdGlvblwiOiBcIi9lbGxpcHRpY1wiLFxuICBcIl9ub2RlVmVyc2lvblwiOiBcIjcuMC4wXCIsXG4gIFwiX25wbU9wZXJhdGlvbmFsSW50ZXJuYWxcIjoge1xuICAgIFwiaG9zdFwiOiBcInBhY2thZ2VzLTE4LWVhc3QuaW50ZXJuYWwubnBtanMuY29tXCIsXG4gICAgXCJ0bXBcIjogXCJ0bXAvZWxsaXB0aWMtNi40LjAudGd6XzE0ODc3OTg4NjY0MjhfMC4zMDUxMDYyMDE5MDc2MTk4M1wiXG4gIH0sXG4gIFwiX25wbVVzZXJcIjoge1xuICAgIFwibmFtZVwiOiBcImluZHV0bnlcIixcbiAgICBcImVtYWlsXCI6IFwiZmVkb3JAaW5kdXRueS5jb21cIlxuICB9LFxuICBcIl9ucG1WZXJzaW9uXCI6IFwiMy4xMC44XCIsXG4gIFwiX3BoYW50b21DaGlsZHJlblwiOiB7fSxcbiAgXCJfcmVxdWVzdGVkXCI6IHtcbiAgICBcInJhd1wiOiBcImVsbGlwdGljQF42LjAuMFwiLFxuICAgIFwic2NvcGVcIjogbnVsbCxcbiAgICBcImVzY2FwZWROYW1lXCI6IFwiZWxsaXB0aWNcIixcbiAgICBcIm5hbWVcIjogXCJlbGxpcHRpY1wiLFxuICAgIFwicmF3U3BlY1wiOiBcIl42LjAuMFwiLFxuICAgIFwic3BlY1wiOiBcIj49Ni4wLjAgPDcuMC4wXCIsXG4gICAgXCJ0eXBlXCI6IFwicmFuZ2VcIlxuICB9LFxuICBcIl9yZXF1aXJlZEJ5XCI6IFtcbiAgICBcIi9icm93c2VyaWZ5LXNpZ25cIixcbiAgICBcIi9jcmVhdGUtZWNkaFwiXG4gIF0sXG4gIFwiX3Jlc29sdmVkXCI6IFwiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZWxsaXB0aWMvLS9lbGxpcHRpYy02LjQuMC50Z3pcIixcbiAgXCJfc2hhc3VtXCI6IFwiY2FjOWFmODc2MmM4NTgzNjE4NzAwM2M4ZGZlMTkzZTVlMmVhZTVkZlwiLFxuICBcIl9zaHJpbmt3cmFwXCI6IG51bGwsXG4gIFwiX3NwZWNcIjogXCJlbGxpcHRpY0BeNi4wLjBcIixcbiAgXCJfd2hlcmVcIjogXCIvVXNlcnMvY2hhcmxlcy9Tb3VyY2VzL2dvL3NyYy9naXRodWIuY29tL3B5ZGlvL2NlbGxzL2Zyb250ZW5kL2Zyb250LXNydi9hc3NldHMvZ3VpLmFqYXgvbm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnktc2lnblwiLFxuICBcImF1dGhvclwiOiB7XG4gICAgXCJuYW1lXCI6IFwiRmVkb3IgSW5kdXRueVwiLFxuICAgIFwiZW1haWxcIjogXCJmZWRvckBpbmR1dG55LmNvbVwiXG4gIH0sXG4gIFwiYnVnc1wiOiB7XG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vaW5kdXRueS9lbGxpcHRpYy9pc3N1ZXNcIlxuICB9LFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJibi5qc1wiOiBcIl40LjQuMFwiLFxuICAgIFwiYnJvcmFuZFwiOiBcIl4xLjAuMVwiLFxuICAgIFwiaGFzaC5qc1wiOiBcIl4xLjAuMFwiLFxuICAgIFwiaG1hYy1kcmJnXCI6IFwiXjEuMC4wXCIsXG4gICAgXCJpbmhlcml0c1wiOiBcIl4yLjAuMVwiLFxuICAgIFwibWluaW1hbGlzdGljLWFzc2VydFwiOiBcIl4xLjAuMFwiLFxuICAgIFwibWluaW1hbGlzdGljLWNyeXB0by11dGlsc1wiOiBcIl4xLjAuMFwiXG4gIH0sXG4gIFwiZGVzY3JpcHRpb25cIjogXCJFQyBjcnlwdG9ncmFwaHlcIixcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiYnJmc1wiOiBcIl4xLjQuM1wiLFxuICAgIFwiY292ZXJhbGxzXCI6IFwiXjIuMTEuM1wiLFxuICAgIFwiZ3J1bnRcIjogXCJeMC40LjVcIixcbiAgICBcImdydW50LWJyb3dzZXJpZnlcIjogXCJeNS4wLjBcIixcbiAgICBcImdydW50LWNsaVwiOiBcIl4xLjIuMFwiLFxuICAgIFwiZ3J1bnQtY29udHJpYi1jb25uZWN0XCI6IFwiXjEuMC4wXCIsXG4gICAgXCJncnVudC1jb250cmliLWNvcHlcIjogXCJeMS4wLjBcIixcbiAgICBcImdydW50LWNvbnRyaWItdWdsaWZ5XCI6IFwiXjEuMC4xXCIsXG4gICAgXCJncnVudC1tb2NoYS1pc3RhbmJ1bFwiOiBcIl4zLjAuMVwiLFxuICAgIFwiZ3J1bnQtc2F1Y2VsYWJzXCI6IFwiXjguNi4yXCIsXG4gICAgXCJpc3RhbmJ1bFwiOiBcIl4wLjQuMlwiLFxuICAgIFwianNjc1wiOiBcIl4yLjkuMFwiLFxuICAgIFwianNoaW50XCI6IFwiXjIuNi4wXCIsXG4gICAgXCJtb2NoYVwiOiBcIl4yLjEuMFwiXG4gIH0sXG4gIFwiZGlyZWN0b3JpZXNcIjoge30sXG4gIFwiZGlzdFwiOiB7XG4gICAgXCJzaGFzdW1cIjogXCJjYWM5YWY4NzYyYzg1ODM2MTg3MDAzYzhkZmUxOTNlNWUyZWFlNWRmXCIsXG4gICAgXCJ0YXJiYWxsXCI6IFwiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZWxsaXB0aWMvLS9lbGxpcHRpYy02LjQuMC50Z3pcIlxuICB9LFxuICBcImZpbGVzXCI6IFtcbiAgICBcImxpYlwiXG4gIF0sXG4gIFwiZ2l0SGVhZFwiOiBcIjZiMGQyYjc2Y2FhZTkxNDcxNjQ5YzhlMjFmMGIxZDNiYTBmOTYwOTBcIixcbiAgXCJob21lcGFnZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9pbmR1dG55L2VsbGlwdGljXCIsXG4gIFwia2V5d29yZHNcIjogW1xuICAgIFwiRUNcIixcbiAgICBcIkVsbGlwdGljXCIsXG4gICAgXCJjdXJ2ZVwiLFxuICAgIFwiQ3J5cHRvZ3JhcGh5XCJcbiAgXSxcbiAgXCJsaWNlbnNlXCI6IFwiTUlUXCIsXG4gIFwibWFpblwiOiBcImxpYi9lbGxpcHRpYy5qc1wiLFxuICBcIm1haW50YWluZXJzXCI6IFtcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJpbmR1dG55XCIsXG4gICAgICBcImVtYWlsXCI6IFwiZmVkb3JAaW5kdXRueS5jb21cIlxuICAgIH1cbiAgXSxcbiAgXCJuYW1lXCI6IFwiZWxsaXB0aWNcIixcbiAgXCJvcHRpb25hbERlcGVuZGVuY2llc1wiOiB7fSxcbiAgXCJyZWFkbWVcIjogXCJFUlJPUjogTm8gUkVBRE1FIGRhdGEgZm91bmQhXCIsXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJnaXQrc3NoOi8vZ2l0QGdpdGh1Yi5jb20vaW5kdXRueS9lbGxpcHRpYy5naXRcIlxuICB9LFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwianNjc1wiOiBcImpzY3MgYmVuY2htYXJrcy8qLmpzIGxpYi8qLmpzIGxpYi8qKi8qLmpzIGxpYi8qKi8qKi8qLmpzIHRlc3QvaW5kZXguanNcIixcbiAgICBcImpzaGludFwiOiBcImpzY3MgYmVuY2htYXJrcy8qLmpzIGxpYi8qLmpzIGxpYi8qKi8qLmpzIGxpYi8qKi8qKi8qLmpzIHRlc3QvaW5kZXguanNcIixcbiAgICBcImxpbnRcIjogXCJucG0gcnVuIGpzY3MgJiYgbnBtIHJ1biBqc2hpbnRcIixcbiAgICBcInRlc3RcIjogXCJucG0gcnVuIGxpbnQgJiYgbnBtIHJ1biB1bml0XCIsXG4gICAgXCJ1bml0XCI6IFwiaXN0YW5idWwgdGVzdCBfbW9jaGEgLS1yZXBvcnRlcj1zcGVjIHRlc3QvaW5kZXguanNcIixcbiAgICBcInZlcnNpb25cIjogXCJncnVudCBkaXN0ICYmIGdpdCBhZGQgZGlzdC9cIlxuICB9LFxuICBcInZlcnNpb25cIjogXCI2LjQuMFwiXG59XG4iLCJ2YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciBNRDUgPSByZXF1aXJlKCdtZDUuanMnKVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbmZ1bmN0aW9uIEVWUF9CeXRlc1RvS2V5IChwYXNzd29yZCwgc2FsdCwga2V5Qml0cywgaXZMZW4pIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocGFzc3dvcmQpKSBwYXNzd29yZCA9IEJ1ZmZlci5mcm9tKHBhc3N3b3JkLCAnYmluYXJ5JylcbiAgaWYgKHNhbHQpIHtcbiAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihzYWx0KSkgc2FsdCA9IEJ1ZmZlci5mcm9tKHNhbHQsICdiaW5hcnknKVxuICAgIGlmIChzYWx0Lmxlbmd0aCAhPT0gOCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NhbHQgc2hvdWxkIGJlIEJ1ZmZlciB3aXRoIDggYnl0ZSBsZW5ndGgnKVxuICB9XG5cbiAgdmFyIGtleUxlbiA9IGtleUJpdHMgLyA4XG4gIHZhciBrZXkgPSBCdWZmZXIuYWxsb2Moa2V5TGVuKVxuICB2YXIgaXYgPSBCdWZmZXIuYWxsb2MoaXZMZW4gfHwgMClcbiAgdmFyIHRtcCA9IEJ1ZmZlci5hbGxvYygwKVxuXG4gIHdoaWxlIChrZXlMZW4gPiAwIHx8IGl2TGVuID4gMCkge1xuICAgIHZhciBoYXNoID0gbmV3IE1ENSgpXG4gICAgaGFzaC51cGRhdGUodG1wKVxuICAgIGhhc2gudXBkYXRlKHBhc3N3b3JkKVxuICAgIGlmIChzYWx0KSBoYXNoLnVwZGF0ZShzYWx0KVxuICAgIHRtcCA9IGhhc2guZGlnZXN0KClcblxuICAgIHZhciB1c2VkID0gMFxuXG4gICAgaWYgKGtleUxlbiA+IDApIHtcbiAgICAgIHZhciBrZXlTdGFydCA9IGtleS5sZW5ndGggLSBrZXlMZW5cbiAgICAgIHVzZWQgPSBNYXRoLm1pbihrZXlMZW4sIHRtcC5sZW5ndGgpXG4gICAgICB0bXAuY29weShrZXksIGtleVN0YXJ0LCAwLCB1c2VkKVxuICAgICAga2V5TGVuIC09IHVzZWRcbiAgICB9XG5cbiAgICBpZiAodXNlZCA8IHRtcC5sZW5ndGggJiYgaXZMZW4gPiAwKSB7XG4gICAgICB2YXIgaXZTdGFydCA9IGl2Lmxlbmd0aCAtIGl2TGVuXG4gICAgICB2YXIgbGVuZ3RoID0gTWF0aC5taW4oaXZMZW4sIHRtcC5sZW5ndGggLSB1c2VkKVxuICAgICAgdG1wLmNvcHkoaXYsIGl2U3RhcnQsIHVzZWQsIHVzZWQgKyBsZW5ndGgpXG4gICAgICBpdkxlbiAtPSBsZW5ndGhcbiAgICB9XG4gIH1cblxuICB0bXAuZmlsbCgwKVxuICByZXR1cm4geyBrZXk6IGtleSwgaXY6IGl2IH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBFVlBfQnl0ZXNUb0tleVxuIiwiJ3VzZSBzdHJpY3QnXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcbnZhciBUcmFuc2Zvcm0gPSByZXF1aXJlKCdzdHJlYW0nKS5UcmFuc2Zvcm1cbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcblxuZnVuY3Rpb24gdGhyb3dJZk5vdFN0cmluZ09yQnVmZmVyICh2YWwsIHByZWZpeCkge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcih2YWwpICYmIHR5cGVvZiB2YWwgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihwcmVmaXggKyAnIG11c3QgYmUgYSBzdHJpbmcgb3IgYSBidWZmZXInKVxuICB9XG59XG5cbmZ1bmN0aW9uIEhhc2hCYXNlIChibG9ja1NpemUpIHtcbiAgVHJhbnNmb3JtLmNhbGwodGhpcylcblxuICB0aGlzLl9ibG9jayA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShibG9ja1NpemUpXG4gIHRoaXMuX2Jsb2NrU2l6ZSA9IGJsb2NrU2l6ZVxuICB0aGlzLl9ibG9ja09mZnNldCA9IDBcbiAgdGhpcy5fbGVuZ3RoID0gWzAsIDAsIDAsIDBdXG5cbiAgdGhpcy5fZmluYWxpemVkID0gZmFsc2Vcbn1cblxuaW5oZXJpdHMoSGFzaEJhc2UsIFRyYW5zZm9ybSlcblxuSGFzaEJhc2UucHJvdG90eXBlLl90cmFuc2Zvcm0gPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYWxsYmFjaykge1xuICB2YXIgZXJyb3IgPSBudWxsXG4gIHRyeSB7XG4gICAgdGhpcy51cGRhdGUoY2h1bmssIGVuY29kaW5nKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBlcnJvciA9IGVyclxuICB9XG5cbiAgY2FsbGJhY2soZXJyb3IpXG59XG5cbkhhc2hCYXNlLnByb3RvdHlwZS5fZmx1c2ggPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgdmFyIGVycm9yID0gbnVsbFxuICB0cnkge1xuICAgIHRoaXMucHVzaCh0aGlzLmRpZ2VzdCgpKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBlcnJvciA9IGVyclxuICB9XG5cbiAgY2FsbGJhY2soZXJyb3IpXG59XG5cbkhhc2hCYXNlLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSwgZW5jb2RpbmcpIHtcbiAgdGhyb3dJZk5vdFN0cmluZ09yQnVmZmVyKGRhdGEsICdEYXRhJylcbiAgaWYgKHRoaXMuX2ZpbmFsaXplZCkgdGhyb3cgbmV3IEVycm9yKCdEaWdlc3QgYWxyZWFkeSBjYWxsZWQnKVxuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihkYXRhKSkgZGF0YSA9IEJ1ZmZlci5mcm9tKGRhdGEsIGVuY29kaW5nKVxuXG4gIC8vIGNvbnN1bWUgZGF0YVxuICB2YXIgYmxvY2sgPSB0aGlzLl9ibG9ja1xuICB2YXIgb2Zmc2V0ID0gMFxuICB3aGlsZSAodGhpcy5fYmxvY2tPZmZzZXQgKyBkYXRhLmxlbmd0aCAtIG9mZnNldCA+PSB0aGlzLl9ibG9ja1NpemUpIHtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5fYmxvY2tPZmZzZXQ7IGkgPCB0aGlzLl9ibG9ja1NpemU7KSBibG9ja1tpKytdID0gZGF0YVtvZmZzZXQrK11cbiAgICB0aGlzLl91cGRhdGUoKVxuICAgIHRoaXMuX2Jsb2NrT2Zmc2V0ID0gMFxuICB9XG4gIHdoaWxlIChvZmZzZXQgPCBkYXRhLmxlbmd0aCkgYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK10gPSBkYXRhW29mZnNldCsrXVxuXG4gIC8vIHVwZGF0ZSBsZW5ndGhcbiAgZm9yICh2YXIgaiA9IDAsIGNhcnJ5ID0gZGF0YS5sZW5ndGggKiA4OyBjYXJyeSA+IDA7ICsraikge1xuICAgIHRoaXMuX2xlbmd0aFtqXSArPSBjYXJyeVxuICAgIGNhcnJ5ID0gKHRoaXMuX2xlbmd0aFtqXSAvIDB4MDEwMDAwMDAwMCkgfCAwXG4gICAgaWYgKGNhcnJ5ID4gMCkgdGhpcy5fbGVuZ3RoW2pdIC09IDB4MDEwMDAwMDAwMCAqIGNhcnJ5XG4gIH1cblxuICByZXR1cm4gdGhpc1xufVxuXG5IYXNoQmFzZS5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdfdXBkYXRlIGlzIG5vdCBpbXBsZW1lbnRlZCcpXG59XG5cbkhhc2hCYXNlLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoZW5jb2RpbmcpIHtcbiAgaWYgKHRoaXMuX2ZpbmFsaXplZCkgdGhyb3cgbmV3IEVycm9yKCdEaWdlc3QgYWxyZWFkeSBjYWxsZWQnKVxuICB0aGlzLl9maW5hbGl6ZWQgPSB0cnVlXG5cbiAgdmFyIGRpZ2VzdCA9IHRoaXMuX2RpZ2VzdCgpXG4gIGlmIChlbmNvZGluZyAhPT0gdW5kZWZpbmVkKSBkaWdlc3QgPSBkaWdlc3QudG9TdHJpbmcoZW5jb2RpbmcpXG5cbiAgLy8gcmVzZXQgc3RhdGVcbiAgdGhpcy5fYmxvY2suZmlsbCgwKVxuICB0aGlzLl9ibG9ja09mZnNldCA9IDBcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyArK2kpIHRoaXMuX2xlbmd0aFtpXSA9IDBcblxuICByZXR1cm4gZGlnZXN0XG59XG5cbkhhc2hCYXNlLnByb3RvdHlwZS5fZGlnZXN0ID0gZnVuY3Rpb24gKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ19kaWdlc3QgaXMgbm90IGltcGxlbWVudGVkJylcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBIYXNoQmFzZVxuIiwidmFyIGhhc2ggPSBleHBvcnRzO1xuXG5oYXNoLnV0aWxzID0gcmVxdWlyZSgnLi9oYXNoL3V0aWxzJyk7XG5oYXNoLmNvbW1vbiA9IHJlcXVpcmUoJy4vaGFzaC9jb21tb24nKTtcbmhhc2guc2hhID0gcmVxdWlyZSgnLi9oYXNoL3NoYScpO1xuaGFzaC5yaXBlbWQgPSByZXF1aXJlKCcuL2hhc2gvcmlwZW1kJyk7XG5oYXNoLmhtYWMgPSByZXF1aXJlKCcuL2hhc2gvaG1hYycpO1xuXG4vLyBQcm94eSBoYXNoIGZ1bmN0aW9ucyB0byB0aGUgbWFpbiBvYmplY3Rcbmhhc2guc2hhMSA9IGhhc2guc2hhLnNoYTE7XG5oYXNoLnNoYTI1NiA9IGhhc2guc2hhLnNoYTI1Njtcbmhhc2guc2hhMjI0ID0gaGFzaC5zaGEuc2hhMjI0O1xuaGFzaC5zaGEzODQgPSBoYXNoLnNoYS5zaGEzODQ7XG5oYXNoLnNoYTUxMiA9IGhhc2guc2hhLnNoYTUxMjtcbmhhc2gucmlwZW1kMTYwID0gaGFzaC5yaXBlbWQucmlwZW1kMTYwO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWFzc2VydCcpO1xuXG5mdW5jdGlvbiBCbG9ja0hhc2goKSB7XG4gIHRoaXMucGVuZGluZyA9IG51bGw7XG4gIHRoaXMucGVuZGluZ1RvdGFsID0gMDtcbiAgdGhpcy5ibG9ja1NpemUgPSB0aGlzLmNvbnN0cnVjdG9yLmJsb2NrU2l6ZTtcbiAgdGhpcy5vdXRTaXplID0gdGhpcy5jb25zdHJ1Y3Rvci5vdXRTaXplO1xuICB0aGlzLmhtYWNTdHJlbmd0aCA9IHRoaXMuY29uc3RydWN0b3IuaG1hY1N0cmVuZ3RoO1xuICB0aGlzLnBhZExlbmd0aCA9IHRoaXMuY29uc3RydWN0b3IucGFkTGVuZ3RoIC8gODtcbiAgdGhpcy5lbmRpYW4gPSAnYmlnJztcblxuICB0aGlzLl9kZWx0YTggPSB0aGlzLmJsb2NrU2l6ZSAvIDg7XG4gIHRoaXMuX2RlbHRhMzIgPSB0aGlzLmJsb2NrU2l6ZSAvIDMyO1xufVxuZXhwb3J0cy5CbG9ja0hhc2ggPSBCbG9ja0hhc2g7XG5cbkJsb2NrSGFzaC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlKG1zZywgZW5jKSB7XG4gIC8vIENvbnZlcnQgbWVzc2FnZSB0byBhcnJheSwgcGFkIGl0LCBhbmQgam9pbiBpbnRvIDMyYml0IGJsb2Nrc1xuICBtc2cgPSB1dGlscy50b0FycmF5KG1zZywgZW5jKTtcbiAgaWYgKCF0aGlzLnBlbmRpbmcpXG4gICAgdGhpcy5wZW5kaW5nID0gbXNnO1xuICBlbHNlXG4gICAgdGhpcy5wZW5kaW5nID0gdGhpcy5wZW5kaW5nLmNvbmNhdChtc2cpO1xuICB0aGlzLnBlbmRpbmdUb3RhbCArPSBtc2cubGVuZ3RoO1xuXG4gIC8vIEVub3VnaCBkYXRhLCB0cnkgdXBkYXRpbmdcbiAgaWYgKHRoaXMucGVuZGluZy5sZW5ndGggPj0gdGhpcy5fZGVsdGE4KSB7XG4gICAgbXNnID0gdGhpcy5wZW5kaW5nO1xuXG4gICAgLy8gUHJvY2VzcyBwZW5kaW5nIGRhdGEgaW4gYmxvY2tzXG4gICAgdmFyIHIgPSBtc2cubGVuZ3RoICUgdGhpcy5fZGVsdGE4O1xuICAgIHRoaXMucGVuZGluZyA9IG1zZy5zbGljZShtc2cubGVuZ3RoIC0gciwgbXNnLmxlbmd0aCk7XG4gICAgaWYgKHRoaXMucGVuZGluZy5sZW5ndGggPT09IDApXG4gICAgICB0aGlzLnBlbmRpbmcgPSBudWxsO1xuXG4gICAgbXNnID0gdXRpbHMuam9pbjMyKG1zZywgMCwgbXNnLmxlbmd0aCAtIHIsIHRoaXMuZW5kaWFuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkgKz0gdGhpcy5fZGVsdGEzMilcbiAgICAgIHRoaXMuX3VwZGF0ZShtc2csIGksIGkgKyB0aGlzLl9kZWx0YTMyKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuQmxvY2tIYXNoLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiBkaWdlc3QoZW5jKSB7XG4gIHRoaXMudXBkYXRlKHRoaXMuX3BhZCgpKTtcbiAgYXNzZXJ0KHRoaXMucGVuZGluZyA9PT0gbnVsbCk7XG5cbiAgcmV0dXJuIHRoaXMuX2RpZ2VzdChlbmMpO1xufTtcblxuQmxvY2tIYXNoLnByb3RvdHlwZS5fcGFkID0gZnVuY3Rpb24gcGFkKCkge1xuICB2YXIgbGVuID0gdGhpcy5wZW5kaW5nVG90YWw7XG4gIHZhciBieXRlcyA9IHRoaXMuX2RlbHRhODtcbiAgdmFyIGsgPSBieXRlcyAtICgobGVuICsgdGhpcy5wYWRMZW5ndGgpICUgYnl0ZXMpO1xuICB2YXIgcmVzID0gbmV3IEFycmF5KGsgKyB0aGlzLnBhZExlbmd0aCk7XG4gIHJlc1swXSA9IDB4ODA7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgazsgaSsrKVxuICAgIHJlc1tpXSA9IDA7XG5cbiAgLy8gQXBwZW5kIGxlbmd0aFxuICBsZW4gPDw9IDM7XG4gIGlmICh0aGlzLmVuZGlhbiA9PT0gJ2JpZycpIHtcbiAgICBmb3IgKHZhciB0ID0gODsgdCA8IHRoaXMucGFkTGVuZ3RoOyB0KyspXG4gICAgICByZXNbaSsrXSA9IDA7XG5cbiAgICByZXNbaSsrXSA9IDA7XG4gICAgcmVzW2krK10gPSAwO1xuICAgIHJlc1tpKytdID0gMDtcbiAgICByZXNbaSsrXSA9IDA7XG4gICAgcmVzW2krK10gPSAobGVuID4+PiAyNCkgJiAweGZmO1xuICAgIHJlc1tpKytdID0gKGxlbiA+Pj4gMTYpICYgMHhmZjtcbiAgICByZXNbaSsrXSA9IChsZW4gPj4+IDgpICYgMHhmZjtcbiAgICByZXNbaSsrXSA9IGxlbiAmIDB4ZmY7XG4gIH0gZWxzZSB7XG4gICAgcmVzW2krK10gPSBsZW4gJiAweGZmO1xuICAgIHJlc1tpKytdID0gKGxlbiA+Pj4gOCkgJiAweGZmO1xuICAgIHJlc1tpKytdID0gKGxlbiA+Pj4gMTYpICYgMHhmZjtcbiAgICByZXNbaSsrXSA9IChsZW4gPj4+IDI0KSAmIDB4ZmY7XG4gICAgcmVzW2krK10gPSAwO1xuICAgIHJlc1tpKytdID0gMDtcbiAgICByZXNbaSsrXSA9IDA7XG4gICAgcmVzW2krK10gPSAwO1xuXG4gICAgZm9yICh0ID0gODsgdCA8IHRoaXMucGFkTGVuZ3RoOyB0KyspXG4gICAgICByZXNbaSsrXSA9IDA7XG4gIH1cblxuICByZXR1cm4gcmVzO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xudmFyIGFzc2VydCA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1hc3NlcnQnKTtcblxuZnVuY3Rpb24gSG1hYyhoYXNoLCBrZXksIGVuYykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgSG1hYykpXG4gICAgcmV0dXJuIG5ldyBIbWFjKGhhc2gsIGtleSwgZW5jKTtcbiAgdGhpcy5IYXNoID0gaGFzaDtcbiAgdGhpcy5ibG9ja1NpemUgPSBoYXNoLmJsb2NrU2l6ZSAvIDg7XG4gIHRoaXMub3V0U2l6ZSA9IGhhc2gub3V0U2l6ZSAvIDg7XG4gIHRoaXMuaW5uZXIgPSBudWxsO1xuICB0aGlzLm91dGVyID0gbnVsbDtcblxuICB0aGlzLl9pbml0KHV0aWxzLnRvQXJyYXkoa2V5LCBlbmMpKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gSG1hYztcblxuSG1hYy5wcm90b3R5cGUuX2luaXQgPSBmdW5jdGlvbiBpbml0KGtleSkge1xuICAvLyBTaG9ydGVuIGtleSwgaWYgbmVlZGVkXG4gIGlmIChrZXkubGVuZ3RoID4gdGhpcy5ibG9ja1NpemUpXG4gICAga2V5ID0gbmV3IHRoaXMuSGFzaCgpLnVwZGF0ZShrZXkpLmRpZ2VzdCgpO1xuICBhc3NlcnQoa2V5Lmxlbmd0aCA8PSB0aGlzLmJsb2NrU2l6ZSk7XG5cbiAgLy8gQWRkIHBhZGRpbmcgdG8ga2V5XG4gIGZvciAodmFyIGkgPSBrZXkubGVuZ3RoOyBpIDwgdGhpcy5ibG9ja1NpemU7IGkrKylcbiAgICBrZXkucHVzaCgwKTtcblxuICBmb3IgKGkgPSAwOyBpIDwga2V5Lmxlbmd0aDsgaSsrKVxuICAgIGtleVtpXSBePSAweDM2O1xuICB0aGlzLmlubmVyID0gbmV3IHRoaXMuSGFzaCgpLnVwZGF0ZShrZXkpO1xuXG4gIC8vIDB4MzYgXiAweDVjID0gMHg2YVxuICBmb3IgKGkgPSAwOyBpIDwga2V5Lmxlbmd0aDsgaSsrKVxuICAgIGtleVtpXSBePSAweDZhO1xuICB0aGlzLm91dGVyID0gbmV3IHRoaXMuSGFzaCgpLnVwZGF0ZShrZXkpO1xufTtcblxuSG1hYy5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlKG1zZywgZW5jKSB7XG4gIHRoaXMuaW5uZXIudXBkYXRlKG1zZywgZW5jKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5IbWFjLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiBkaWdlc3QoZW5jKSB7XG4gIHRoaXMub3V0ZXIudXBkYXRlKHRoaXMuaW5uZXIuZGlnZXN0KCkpO1xuICByZXR1cm4gdGhpcy5vdXRlci5kaWdlc3QoZW5jKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcbnZhciBjb21tb24gPSByZXF1aXJlKCcuL2NvbW1vbicpO1xuXG52YXIgcm90bDMyID0gdXRpbHMucm90bDMyO1xudmFyIHN1bTMyID0gdXRpbHMuc3VtMzI7XG52YXIgc3VtMzJfMyA9IHV0aWxzLnN1bTMyXzM7XG52YXIgc3VtMzJfNCA9IHV0aWxzLnN1bTMyXzQ7XG52YXIgQmxvY2tIYXNoID0gY29tbW9uLkJsb2NrSGFzaDtcblxuZnVuY3Rpb24gUklQRU1EMTYwKCkge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUklQRU1EMTYwKSlcbiAgICByZXR1cm4gbmV3IFJJUEVNRDE2MCgpO1xuXG4gIEJsb2NrSGFzaC5jYWxsKHRoaXMpO1xuXG4gIHRoaXMuaCA9IFsgMHg2NzQ1MjMwMSwgMHhlZmNkYWI4OSwgMHg5OGJhZGNmZSwgMHgxMDMyNTQ3NiwgMHhjM2QyZTFmMCBdO1xuICB0aGlzLmVuZGlhbiA9ICdsaXR0bGUnO1xufVxudXRpbHMuaW5oZXJpdHMoUklQRU1EMTYwLCBCbG9ja0hhc2gpO1xuZXhwb3J0cy5yaXBlbWQxNjAgPSBSSVBFTUQxNjA7XG5cblJJUEVNRDE2MC5ibG9ja1NpemUgPSA1MTI7XG5SSVBFTUQxNjAub3V0U2l6ZSA9IDE2MDtcblJJUEVNRDE2MC5obWFjU3RyZW5ndGggPSAxOTI7XG5SSVBFTUQxNjAucGFkTGVuZ3RoID0gNjQ7XG5cblJJUEVNRDE2MC5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIHVwZGF0ZShtc2csIHN0YXJ0KSB7XG4gIHZhciBBID0gdGhpcy5oWzBdO1xuICB2YXIgQiA9IHRoaXMuaFsxXTtcbiAgdmFyIEMgPSB0aGlzLmhbMl07XG4gIHZhciBEID0gdGhpcy5oWzNdO1xuICB2YXIgRSA9IHRoaXMuaFs0XTtcbiAgdmFyIEFoID0gQTtcbiAgdmFyIEJoID0gQjtcbiAgdmFyIENoID0gQztcbiAgdmFyIERoID0gRDtcbiAgdmFyIEVoID0gRTtcbiAgZm9yICh2YXIgaiA9IDA7IGogPCA4MDsgaisrKSB7XG4gICAgdmFyIFQgPSBzdW0zMihcbiAgICAgIHJvdGwzMihcbiAgICAgICAgc3VtMzJfNChBLCBmKGosIEIsIEMsIEQpLCBtc2dbcltqXSArIHN0YXJ0XSwgSyhqKSksXG4gICAgICAgIHNbal0pLFxuICAgICAgRSk7XG4gICAgQSA9IEU7XG4gICAgRSA9IEQ7XG4gICAgRCA9IHJvdGwzMihDLCAxMCk7XG4gICAgQyA9IEI7XG4gICAgQiA9IFQ7XG4gICAgVCA9IHN1bTMyKFxuICAgICAgcm90bDMyKFxuICAgICAgICBzdW0zMl80KEFoLCBmKDc5IC0gaiwgQmgsIENoLCBEaCksIG1zZ1tyaFtqXSArIHN0YXJ0XSwgS2goaikpLFxuICAgICAgICBzaFtqXSksXG4gICAgICBFaCk7XG4gICAgQWggPSBFaDtcbiAgICBFaCA9IERoO1xuICAgIERoID0gcm90bDMyKENoLCAxMCk7XG4gICAgQ2ggPSBCaDtcbiAgICBCaCA9IFQ7XG4gIH1cbiAgVCA9IHN1bTMyXzModGhpcy5oWzFdLCBDLCBEaCk7XG4gIHRoaXMuaFsxXSA9IHN1bTMyXzModGhpcy5oWzJdLCBELCBFaCk7XG4gIHRoaXMuaFsyXSA9IHN1bTMyXzModGhpcy5oWzNdLCBFLCBBaCk7XG4gIHRoaXMuaFszXSA9IHN1bTMyXzModGhpcy5oWzRdLCBBLCBCaCk7XG4gIHRoaXMuaFs0XSA9IHN1bTMyXzModGhpcy5oWzBdLCBCLCBDaCk7XG4gIHRoaXMuaFswXSA9IFQ7XG59O1xuXG5SSVBFTUQxNjAucHJvdG90eXBlLl9kaWdlc3QgPSBmdW5jdGlvbiBkaWdlc3QoZW5jKSB7XG4gIGlmIChlbmMgPT09ICdoZXgnKVxuICAgIHJldHVybiB1dGlscy50b0hleDMyKHRoaXMuaCwgJ2xpdHRsZScpO1xuICBlbHNlXG4gICAgcmV0dXJuIHV0aWxzLnNwbGl0MzIodGhpcy5oLCAnbGl0dGxlJyk7XG59O1xuXG5mdW5jdGlvbiBmKGosIHgsIHksIHopIHtcbiAgaWYgKGogPD0gMTUpXG4gICAgcmV0dXJuIHggXiB5IF4gejtcbiAgZWxzZSBpZiAoaiA8PSAzMSlcbiAgICByZXR1cm4gKHggJiB5KSB8ICgofngpICYgeik7XG4gIGVsc2UgaWYgKGogPD0gNDcpXG4gICAgcmV0dXJuICh4IHwgKH55KSkgXiB6O1xuICBlbHNlIGlmIChqIDw9IDYzKVxuICAgIHJldHVybiAoeCAmIHopIHwgKHkgJiAofnopKTtcbiAgZWxzZVxuICAgIHJldHVybiB4IF4gKHkgfCAofnopKTtcbn1cblxuZnVuY3Rpb24gSyhqKSB7XG4gIGlmIChqIDw9IDE1KVxuICAgIHJldHVybiAweDAwMDAwMDAwO1xuICBlbHNlIGlmIChqIDw9IDMxKVxuICAgIHJldHVybiAweDVhODI3OTk5O1xuICBlbHNlIGlmIChqIDw9IDQ3KVxuICAgIHJldHVybiAweDZlZDllYmExO1xuICBlbHNlIGlmIChqIDw9IDYzKVxuICAgIHJldHVybiAweDhmMWJiY2RjO1xuICBlbHNlXG4gICAgcmV0dXJuIDB4YTk1M2ZkNGU7XG59XG5cbmZ1bmN0aW9uIEtoKGopIHtcbiAgaWYgKGogPD0gMTUpXG4gICAgcmV0dXJuIDB4NTBhMjhiZTY7XG4gIGVsc2UgaWYgKGogPD0gMzEpXG4gICAgcmV0dXJuIDB4NWM0ZGQxMjQ7XG4gIGVsc2UgaWYgKGogPD0gNDcpXG4gICAgcmV0dXJuIDB4NmQ3MDNlZjM7XG4gIGVsc2UgaWYgKGogPD0gNjMpXG4gICAgcmV0dXJuIDB4N2E2ZDc2ZTk7XG4gIGVsc2VcbiAgICByZXR1cm4gMHgwMDAwMDAwMDtcbn1cblxudmFyIHIgPSBbXG4gIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsXG4gIDcsIDQsIDEzLCAxLCAxMCwgNiwgMTUsIDMsIDEyLCAwLCA5LCA1LCAyLCAxNCwgMTEsIDgsXG4gIDMsIDEwLCAxNCwgNCwgOSwgMTUsIDgsIDEsIDIsIDcsIDAsIDYsIDEzLCAxMSwgNSwgMTIsXG4gIDEsIDksIDExLCAxMCwgMCwgOCwgMTIsIDQsIDEzLCAzLCA3LCAxNSwgMTQsIDUsIDYsIDIsXG4gIDQsIDAsIDUsIDksIDcsIDEyLCAyLCAxMCwgMTQsIDEsIDMsIDgsIDExLCA2LCAxNSwgMTNcbl07XG5cbnZhciByaCA9IFtcbiAgNSwgMTQsIDcsIDAsIDksIDIsIDExLCA0LCAxMywgNiwgMTUsIDgsIDEsIDEwLCAzLCAxMixcbiAgNiwgMTEsIDMsIDcsIDAsIDEzLCA1LCAxMCwgMTQsIDE1LCA4LCAxMiwgNCwgOSwgMSwgMixcbiAgMTUsIDUsIDEsIDMsIDcsIDE0LCA2LCA5LCAxMSwgOCwgMTIsIDIsIDEwLCAwLCA0LCAxMyxcbiAgOCwgNiwgNCwgMSwgMywgMTEsIDE1LCAwLCA1LCAxMiwgMiwgMTMsIDksIDcsIDEwLCAxNCxcbiAgMTIsIDE1LCAxMCwgNCwgMSwgNSwgOCwgNywgNiwgMiwgMTMsIDE0LCAwLCAzLCA5LCAxMVxuXTtcblxudmFyIHMgPSBbXG4gIDExLCAxNCwgMTUsIDEyLCA1LCA4LCA3LCA5LCAxMSwgMTMsIDE0LCAxNSwgNiwgNywgOSwgOCxcbiAgNywgNiwgOCwgMTMsIDExLCA5LCA3LCAxNSwgNywgMTIsIDE1LCA5LCAxMSwgNywgMTMsIDEyLFxuICAxMSwgMTMsIDYsIDcsIDE0LCA5LCAxMywgMTUsIDE0LCA4LCAxMywgNiwgNSwgMTIsIDcsIDUsXG4gIDExLCAxMiwgMTQsIDE1LCAxNCwgMTUsIDksIDgsIDksIDE0LCA1LCA2LCA4LCA2LCA1LCAxMixcbiAgOSwgMTUsIDUsIDExLCA2LCA4LCAxMywgMTIsIDUsIDEyLCAxMywgMTQsIDExLCA4LCA1LCA2XG5dO1xuXG52YXIgc2ggPSBbXG4gIDgsIDksIDksIDExLCAxMywgMTUsIDE1LCA1LCA3LCA3LCA4LCAxMSwgMTQsIDE0LCAxMiwgNixcbiAgOSwgMTMsIDE1LCA3LCAxMiwgOCwgOSwgMTEsIDcsIDcsIDEyLCA3LCA2LCAxNSwgMTMsIDExLFxuICA5LCA3LCAxNSwgMTEsIDgsIDYsIDYsIDE0LCAxMiwgMTMsIDUsIDE0LCAxMywgMTMsIDcsIDUsXG4gIDE1LCA1LCA4LCAxMSwgMTQsIDE0LCA2LCAxNCwgNiwgOSwgMTIsIDksIDEyLCA1LCAxNSwgOCxcbiAgOCwgNSwgMTIsIDksIDEyLCA1LCAxNCwgNiwgOCwgMTMsIDYsIDUsIDE1LCAxMywgMTEsIDExXG5dO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLnNoYTEgPSByZXF1aXJlKCcuL3NoYS8xJyk7XG5leHBvcnRzLnNoYTIyNCA9IHJlcXVpcmUoJy4vc2hhLzIyNCcpO1xuZXhwb3J0cy5zaGEyNTYgPSByZXF1aXJlKCcuL3NoYS8yNTYnKTtcbmV4cG9ydHMuc2hhMzg0ID0gcmVxdWlyZSgnLi9zaGEvMzg0Jyk7XG5leHBvcnRzLnNoYTUxMiA9IHJlcXVpcmUoJy4vc2hhLzUxMicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xudmFyIGNvbW1vbiA9IHJlcXVpcmUoJy4uL2NvbW1vbicpO1xudmFyIHNoYUNvbW1vbiA9IHJlcXVpcmUoJy4vY29tbW9uJyk7XG5cbnZhciByb3RsMzIgPSB1dGlscy5yb3RsMzI7XG52YXIgc3VtMzIgPSB1dGlscy5zdW0zMjtcbnZhciBzdW0zMl81ID0gdXRpbHMuc3VtMzJfNTtcbnZhciBmdF8xID0gc2hhQ29tbW9uLmZ0XzE7XG52YXIgQmxvY2tIYXNoID0gY29tbW9uLkJsb2NrSGFzaDtcblxudmFyIHNoYTFfSyA9IFtcbiAgMHg1QTgyNzk5OSwgMHg2RUQ5RUJBMSxcbiAgMHg4RjFCQkNEQywgMHhDQTYyQzFENlxuXTtcblxuZnVuY3Rpb24gU0hBMSgpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFNIQTEpKVxuICAgIHJldHVybiBuZXcgU0hBMSgpO1xuXG4gIEJsb2NrSGFzaC5jYWxsKHRoaXMpO1xuICB0aGlzLmggPSBbXG4gICAgMHg2NzQ1MjMwMSwgMHhlZmNkYWI4OSwgMHg5OGJhZGNmZSxcbiAgICAweDEwMzI1NDc2LCAweGMzZDJlMWYwIF07XG4gIHRoaXMuVyA9IG5ldyBBcnJheSg4MCk7XG59XG5cbnV0aWxzLmluaGVyaXRzKFNIQTEsIEJsb2NrSGFzaCk7XG5tb2R1bGUuZXhwb3J0cyA9IFNIQTE7XG5cblNIQTEuYmxvY2tTaXplID0gNTEyO1xuU0hBMS5vdXRTaXplID0gMTYwO1xuU0hBMS5obWFjU3RyZW5ndGggPSA4MDtcblNIQTEucGFkTGVuZ3RoID0gNjQ7XG5cblNIQTEucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiBfdXBkYXRlKG1zZywgc3RhcnQpIHtcbiAgdmFyIFcgPSB0aGlzLlc7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKVxuICAgIFdbaV0gPSBtc2dbc3RhcnQgKyBpXTtcblxuICBmb3IoOyBpIDwgVy5sZW5ndGg7IGkrKylcbiAgICBXW2ldID0gcm90bDMyKFdbaSAtIDNdIF4gV1tpIC0gOF0gXiBXW2kgLSAxNF0gXiBXW2kgLSAxNl0sIDEpO1xuXG4gIHZhciBhID0gdGhpcy5oWzBdO1xuICB2YXIgYiA9IHRoaXMuaFsxXTtcbiAgdmFyIGMgPSB0aGlzLmhbMl07XG4gIHZhciBkID0gdGhpcy5oWzNdO1xuICB2YXIgZSA9IHRoaXMuaFs0XTtcblxuICBmb3IgKGkgPSAwOyBpIDwgVy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzID0gfn4oaSAvIDIwKTtcbiAgICB2YXIgdCA9IHN1bTMyXzUocm90bDMyKGEsIDUpLCBmdF8xKHMsIGIsIGMsIGQpLCBlLCBXW2ldLCBzaGExX0tbc10pO1xuICAgIGUgPSBkO1xuICAgIGQgPSBjO1xuICAgIGMgPSByb3RsMzIoYiwgMzApO1xuICAgIGIgPSBhO1xuICAgIGEgPSB0O1xuICB9XG5cbiAgdGhpcy5oWzBdID0gc3VtMzIodGhpcy5oWzBdLCBhKTtcbiAgdGhpcy5oWzFdID0gc3VtMzIodGhpcy5oWzFdLCBiKTtcbiAgdGhpcy5oWzJdID0gc3VtMzIodGhpcy5oWzJdLCBjKTtcbiAgdGhpcy5oWzNdID0gc3VtMzIodGhpcy5oWzNdLCBkKTtcbiAgdGhpcy5oWzRdID0gc3VtMzIodGhpcy5oWzRdLCBlKTtcbn07XG5cblNIQTEucHJvdG90eXBlLl9kaWdlc3QgPSBmdW5jdGlvbiBkaWdlc3QoZW5jKSB7XG4gIGlmIChlbmMgPT09ICdoZXgnKVxuICAgIHJldHVybiB1dGlscy50b0hleDMyKHRoaXMuaCwgJ2JpZycpO1xuICBlbHNlXG4gICAgcmV0dXJuIHV0aWxzLnNwbGl0MzIodGhpcy5oLCAnYmlnJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xudmFyIFNIQTI1NiA9IHJlcXVpcmUoJy4vMjU2Jyk7XG5cbmZ1bmN0aW9uIFNIQTIyNCgpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFNIQTIyNCkpXG4gICAgcmV0dXJuIG5ldyBTSEEyMjQoKTtcblxuICBTSEEyNTYuY2FsbCh0aGlzKTtcbiAgdGhpcy5oID0gW1xuICAgIDB4YzEwNTllZDgsIDB4MzY3Y2Q1MDcsIDB4MzA3MGRkMTcsIDB4ZjcwZTU5MzksXG4gICAgMHhmZmMwMGIzMSwgMHg2ODU4MTUxMSwgMHg2NGY5OGZhNywgMHhiZWZhNGZhNCBdO1xufVxudXRpbHMuaW5oZXJpdHMoU0hBMjI0LCBTSEEyNTYpO1xubW9kdWxlLmV4cG9ydHMgPSBTSEEyMjQ7XG5cblNIQTIyNC5ibG9ja1NpemUgPSA1MTI7XG5TSEEyMjQub3V0U2l6ZSA9IDIyNDtcblNIQTIyNC5obWFjU3RyZW5ndGggPSAxOTI7XG5TSEEyMjQucGFkTGVuZ3RoID0gNjQ7XG5cblNIQTIyNC5wcm90b3R5cGUuX2RpZ2VzdCA9IGZ1bmN0aW9uIGRpZ2VzdChlbmMpIHtcbiAgLy8gSnVzdCB0cnVuY2F0ZSBvdXRwdXRcbiAgaWYgKGVuYyA9PT0gJ2hleCcpXG4gICAgcmV0dXJuIHV0aWxzLnRvSGV4MzIodGhpcy5oLnNsaWNlKDAsIDcpLCAnYmlnJyk7XG4gIGVsc2VcbiAgICByZXR1cm4gdXRpbHMuc3BsaXQzMih0aGlzLmguc2xpY2UoMCwgNyksICdiaWcnKTtcbn07XG5cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcbnZhciBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKTtcbnZhciBzaGFDb21tb24gPSByZXF1aXJlKCcuL2NvbW1vbicpO1xudmFyIGFzc2VydCA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1hc3NlcnQnKTtcblxudmFyIHN1bTMyID0gdXRpbHMuc3VtMzI7XG52YXIgc3VtMzJfNCA9IHV0aWxzLnN1bTMyXzQ7XG52YXIgc3VtMzJfNSA9IHV0aWxzLnN1bTMyXzU7XG52YXIgY2gzMiA9IHNoYUNvbW1vbi5jaDMyO1xudmFyIG1hajMyID0gc2hhQ29tbW9uLm1hajMyO1xudmFyIHMwXzI1NiA9IHNoYUNvbW1vbi5zMF8yNTY7XG52YXIgczFfMjU2ID0gc2hhQ29tbW9uLnMxXzI1NjtcbnZhciBnMF8yNTYgPSBzaGFDb21tb24uZzBfMjU2O1xudmFyIGcxXzI1NiA9IHNoYUNvbW1vbi5nMV8yNTY7XG5cbnZhciBCbG9ja0hhc2ggPSBjb21tb24uQmxvY2tIYXNoO1xuXG52YXIgc2hhMjU2X0sgPSBbXG4gIDB4NDI4YTJmOTgsIDB4NzEzNzQ0OTEsIDB4YjVjMGZiY2YsIDB4ZTliNWRiYTUsXG4gIDB4Mzk1NmMyNWIsIDB4NTlmMTExZjEsIDB4OTIzZjgyYTQsIDB4YWIxYzVlZDUsXG4gIDB4ZDgwN2FhOTgsIDB4MTI4MzViMDEsIDB4MjQzMTg1YmUsIDB4NTUwYzdkYzMsXG4gIDB4NzJiZTVkNzQsIDB4ODBkZWIxZmUsIDB4OWJkYzA2YTcsIDB4YzE5YmYxNzQsXG4gIDB4ZTQ5YjY5YzEsIDB4ZWZiZTQ3ODYsIDB4MGZjMTlkYzYsIDB4MjQwY2ExY2MsXG4gIDB4MmRlOTJjNmYsIDB4NGE3NDg0YWEsIDB4NWNiMGE5ZGMsIDB4NzZmOTg4ZGEsXG4gIDB4OTgzZTUxNTIsIDB4YTgzMWM2NmQsIDB4YjAwMzI3YzgsIDB4YmY1OTdmYzcsXG4gIDB4YzZlMDBiZjMsIDB4ZDVhNzkxNDcsIDB4MDZjYTYzNTEsIDB4MTQyOTI5NjcsXG4gIDB4MjdiNzBhODUsIDB4MmUxYjIxMzgsIDB4NGQyYzZkZmMsIDB4NTMzODBkMTMsXG4gIDB4NjUwYTczNTQsIDB4NzY2YTBhYmIsIDB4ODFjMmM5MmUsIDB4OTI3MjJjODUsXG4gIDB4YTJiZmU4YTEsIDB4YTgxYTY2NGIsIDB4YzI0YjhiNzAsIDB4Yzc2YzUxYTMsXG4gIDB4ZDE5MmU4MTksIDB4ZDY5OTA2MjQsIDB4ZjQwZTM1ODUsIDB4MTA2YWEwNzAsXG4gIDB4MTlhNGMxMTYsIDB4MWUzNzZjMDgsIDB4Mjc0ODc3NGMsIDB4MzRiMGJjYjUsXG4gIDB4MzkxYzBjYjMsIDB4NGVkOGFhNGEsIDB4NWI5Y2NhNGYsIDB4NjgyZTZmZjMsXG4gIDB4NzQ4ZjgyZWUsIDB4NzhhNTYzNmYsIDB4ODRjODc4MTQsIDB4OGNjNzAyMDgsXG4gIDB4OTBiZWZmZmEsIDB4YTQ1MDZjZWIsIDB4YmVmOWEzZjcsIDB4YzY3MTc4ZjJcbl07XG5cbmZ1bmN0aW9uIFNIQTI1NigpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFNIQTI1NikpXG4gICAgcmV0dXJuIG5ldyBTSEEyNTYoKTtcblxuICBCbG9ja0hhc2guY2FsbCh0aGlzKTtcbiAgdGhpcy5oID0gW1xuICAgIDB4NmEwOWU2NjcsIDB4YmI2N2FlODUsIDB4M2M2ZWYzNzIsIDB4YTU0ZmY1M2EsXG4gICAgMHg1MTBlNTI3ZiwgMHg5YjA1Njg4YywgMHgxZjgzZDlhYiwgMHg1YmUwY2QxOVxuICBdO1xuICB0aGlzLmsgPSBzaGEyNTZfSztcbiAgdGhpcy5XID0gbmV3IEFycmF5KDY0KTtcbn1cbnV0aWxzLmluaGVyaXRzKFNIQTI1NiwgQmxvY2tIYXNoKTtcbm1vZHVsZS5leHBvcnRzID0gU0hBMjU2O1xuXG5TSEEyNTYuYmxvY2tTaXplID0gNTEyO1xuU0hBMjU2Lm91dFNpemUgPSAyNTY7XG5TSEEyNTYuaG1hY1N0cmVuZ3RoID0gMTkyO1xuU0hBMjU2LnBhZExlbmd0aCA9IDY0O1xuXG5TSEEyNTYucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiBfdXBkYXRlKG1zZywgc3RhcnQpIHtcbiAgdmFyIFcgPSB0aGlzLlc7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgaSsrKVxuICAgIFdbaV0gPSBtc2dbc3RhcnQgKyBpXTtcbiAgZm9yICg7IGkgPCBXLmxlbmd0aDsgaSsrKVxuICAgIFdbaV0gPSBzdW0zMl80KGcxXzI1NihXW2kgLSAyXSksIFdbaSAtIDddLCBnMF8yNTYoV1tpIC0gMTVdKSwgV1tpIC0gMTZdKTtcblxuICB2YXIgYSA9IHRoaXMuaFswXTtcbiAgdmFyIGIgPSB0aGlzLmhbMV07XG4gIHZhciBjID0gdGhpcy5oWzJdO1xuICB2YXIgZCA9IHRoaXMuaFszXTtcbiAgdmFyIGUgPSB0aGlzLmhbNF07XG4gIHZhciBmID0gdGhpcy5oWzVdO1xuICB2YXIgZyA9IHRoaXMuaFs2XTtcbiAgdmFyIGggPSB0aGlzLmhbN107XG5cbiAgYXNzZXJ0KHRoaXMuay5sZW5ndGggPT09IFcubGVuZ3RoKTtcbiAgZm9yIChpID0gMDsgaSA8IFcubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgVDEgPSBzdW0zMl81KGgsIHMxXzI1NihlKSwgY2gzMihlLCBmLCBnKSwgdGhpcy5rW2ldLCBXW2ldKTtcbiAgICB2YXIgVDIgPSBzdW0zMihzMF8yNTYoYSksIG1hajMyKGEsIGIsIGMpKTtcbiAgICBoID0gZztcbiAgICBnID0gZjtcbiAgICBmID0gZTtcbiAgICBlID0gc3VtMzIoZCwgVDEpO1xuICAgIGQgPSBjO1xuICAgIGMgPSBiO1xuICAgIGIgPSBhO1xuICAgIGEgPSBzdW0zMihUMSwgVDIpO1xuICB9XG5cbiAgdGhpcy5oWzBdID0gc3VtMzIodGhpcy5oWzBdLCBhKTtcbiAgdGhpcy5oWzFdID0gc3VtMzIodGhpcy5oWzFdLCBiKTtcbiAgdGhpcy5oWzJdID0gc3VtMzIodGhpcy5oWzJdLCBjKTtcbiAgdGhpcy5oWzNdID0gc3VtMzIodGhpcy5oWzNdLCBkKTtcbiAgdGhpcy5oWzRdID0gc3VtMzIodGhpcy5oWzRdLCBlKTtcbiAgdGhpcy5oWzVdID0gc3VtMzIodGhpcy5oWzVdLCBmKTtcbiAgdGhpcy5oWzZdID0gc3VtMzIodGhpcy5oWzZdLCBnKTtcbiAgdGhpcy5oWzddID0gc3VtMzIodGhpcy5oWzddLCBoKTtcbn07XG5cblNIQTI1Ni5wcm90b3R5cGUuX2RpZ2VzdCA9IGZ1bmN0aW9uIGRpZ2VzdChlbmMpIHtcbiAgaWYgKGVuYyA9PT0gJ2hleCcpXG4gICAgcmV0dXJuIHV0aWxzLnRvSGV4MzIodGhpcy5oLCAnYmlnJyk7XG4gIGVsc2VcbiAgICByZXR1cm4gdXRpbHMuc3BsaXQzMih0aGlzLmgsICdiaWcnKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlscyA9IHJlcXVpcmUoJy4uL3V0aWxzJyk7XG5cbnZhciBTSEE1MTIgPSByZXF1aXJlKCcuLzUxMicpO1xuXG5mdW5jdGlvbiBTSEEzODQoKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBTSEEzODQpKVxuICAgIHJldHVybiBuZXcgU0hBMzg0KCk7XG5cbiAgU0hBNTEyLmNhbGwodGhpcyk7XG4gIHRoaXMuaCA9IFtcbiAgICAweGNiYmI5ZDVkLCAweGMxMDU5ZWQ4LFxuICAgIDB4NjI5YTI5MmEsIDB4MzY3Y2Q1MDcsXG4gICAgMHg5MTU5MDE1YSwgMHgzMDcwZGQxNyxcbiAgICAweDE1MmZlY2Q4LCAweGY3MGU1OTM5LFxuICAgIDB4NjczMzI2NjcsIDB4ZmZjMDBiMzEsXG4gICAgMHg4ZWI0NGE4NywgMHg2ODU4MTUxMSxcbiAgICAweGRiMGMyZTBkLCAweDY0Zjk4ZmE3LFxuICAgIDB4NDdiNTQ4MWQsIDB4YmVmYTRmYTQgXTtcbn1cbnV0aWxzLmluaGVyaXRzKFNIQTM4NCwgU0hBNTEyKTtcbm1vZHVsZS5leHBvcnRzID0gU0hBMzg0O1xuXG5TSEEzODQuYmxvY2tTaXplID0gMTAyNDtcblNIQTM4NC5vdXRTaXplID0gMzg0O1xuU0hBMzg0LmhtYWNTdHJlbmd0aCA9IDE5MjtcblNIQTM4NC5wYWRMZW5ndGggPSAxMjg7XG5cblNIQTM4NC5wcm90b3R5cGUuX2RpZ2VzdCA9IGZ1bmN0aW9uIGRpZ2VzdChlbmMpIHtcbiAgaWYgKGVuYyA9PT0gJ2hleCcpXG4gICAgcmV0dXJuIHV0aWxzLnRvSGV4MzIodGhpcy5oLnNsaWNlKDAsIDEyKSwgJ2JpZycpO1xuICBlbHNlXG4gICAgcmV0dXJuIHV0aWxzLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsIDEyKSwgJ2JpZycpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbHMnKTtcbnZhciBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKTtcbnZhciBhc3NlcnQgPSByZXF1aXJlKCdtaW5pbWFsaXN0aWMtYXNzZXJ0Jyk7XG5cbnZhciByb3RyNjRfaGkgPSB1dGlscy5yb3RyNjRfaGk7XG52YXIgcm90cjY0X2xvID0gdXRpbHMucm90cjY0X2xvO1xudmFyIHNocjY0X2hpID0gdXRpbHMuc2hyNjRfaGk7XG52YXIgc2hyNjRfbG8gPSB1dGlscy5zaHI2NF9sbztcbnZhciBzdW02NCA9IHV0aWxzLnN1bTY0O1xudmFyIHN1bTY0X2hpID0gdXRpbHMuc3VtNjRfaGk7XG52YXIgc3VtNjRfbG8gPSB1dGlscy5zdW02NF9sbztcbnZhciBzdW02NF80X2hpID0gdXRpbHMuc3VtNjRfNF9oaTtcbnZhciBzdW02NF80X2xvID0gdXRpbHMuc3VtNjRfNF9sbztcbnZhciBzdW02NF81X2hpID0gdXRpbHMuc3VtNjRfNV9oaTtcbnZhciBzdW02NF81X2xvID0gdXRpbHMuc3VtNjRfNV9sbztcblxudmFyIEJsb2NrSGFzaCA9IGNvbW1vbi5CbG9ja0hhc2g7XG5cbnZhciBzaGE1MTJfSyA9IFtcbiAgMHg0MjhhMmY5OCwgMHhkNzI4YWUyMiwgMHg3MTM3NDQ5MSwgMHgyM2VmNjVjZCxcbiAgMHhiNWMwZmJjZiwgMHhlYzRkM2IyZiwgMHhlOWI1ZGJhNSwgMHg4MTg5ZGJiYyxcbiAgMHgzOTU2YzI1YiwgMHhmMzQ4YjUzOCwgMHg1OWYxMTFmMSwgMHhiNjA1ZDAxOSxcbiAgMHg5MjNmODJhNCwgMHhhZjE5NGY5YiwgMHhhYjFjNWVkNSwgMHhkYTZkODExOCxcbiAgMHhkODA3YWE5OCwgMHhhMzAzMDI0MiwgMHgxMjgzNWIwMSwgMHg0NTcwNmZiZSxcbiAgMHgyNDMxODViZSwgMHg0ZWU0YjI4YywgMHg1NTBjN2RjMywgMHhkNWZmYjRlMixcbiAgMHg3MmJlNWQ3NCwgMHhmMjdiODk2ZiwgMHg4MGRlYjFmZSwgMHgzYjE2OTZiMSxcbiAgMHg5YmRjMDZhNywgMHgyNWM3MTIzNSwgMHhjMTliZjE3NCwgMHhjZjY5MjY5NCxcbiAgMHhlNDliNjljMSwgMHg5ZWYxNGFkMiwgMHhlZmJlNDc4NiwgMHgzODRmMjVlMyxcbiAgMHgwZmMxOWRjNiwgMHg4YjhjZDViNSwgMHgyNDBjYTFjYywgMHg3N2FjOWM2NSxcbiAgMHgyZGU5MmM2ZiwgMHg1OTJiMDI3NSwgMHg0YTc0ODRhYSwgMHg2ZWE2ZTQ4MyxcbiAgMHg1Y2IwYTlkYywgMHhiZDQxZmJkNCwgMHg3NmY5ODhkYSwgMHg4MzExNTNiNSxcbiAgMHg5ODNlNTE1MiwgMHhlZTY2ZGZhYiwgMHhhODMxYzY2ZCwgMHgyZGI0MzIxMCxcbiAgMHhiMDAzMjdjOCwgMHg5OGZiMjEzZiwgMHhiZjU5N2ZjNywgMHhiZWVmMGVlNCxcbiAgMHhjNmUwMGJmMywgMHgzZGE4OGZjMiwgMHhkNWE3OTE0NywgMHg5MzBhYTcyNSxcbiAgMHgwNmNhNjM1MSwgMHhlMDAzODI2ZiwgMHgxNDI5Mjk2NywgMHgwYTBlNmU3MCxcbiAgMHgyN2I3MGE4NSwgMHg0NmQyMmZmYywgMHgyZTFiMjEzOCwgMHg1YzI2YzkyNixcbiAgMHg0ZDJjNmRmYywgMHg1YWM0MmFlZCwgMHg1MzM4MGQxMywgMHg5ZDk1YjNkZixcbiAgMHg2NTBhNzM1NCwgMHg4YmFmNjNkZSwgMHg3NjZhMGFiYiwgMHgzYzc3YjJhOCxcbiAgMHg4MWMyYzkyZSwgMHg0N2VkYWVlNiwgMHg5MjcyMmM4NSwgMHgxNDgyMzUzYixcbiAgMHhhMmJmZThhMSwgMHg0Y2YxMDM2NCwgMHhhODFhNjY0YiwgMHhiYzQyMzAwMSxcbiAgMHhjMjRiOGI3MCwgMHhkMGY4OTc5MSwgMHhjNzZjNTFhMywgMHgwNjU0YmUzMCxcbiAgMHhkMTkyZTgxOSwgMHhkNmVmNTIxOCwgMHhkNjk5MDYyNCwgMHg1NTY1YTkxMCxcbiAgMHhmNDBlMzU4NSwgMHg1NzcxMjAyYSwgMHgxMDZhYTA3MCwgMHgzMmJiZDFiOCxcbiAgMHgxOWE0YzExNiwgMHhiOGQyZDBjOCwgMHgxZTM3NmMwOCwgMHg1MTQxYWI1MyxcbiAgMHgyNzQ4Nzc0YywgMHhkZjhlZWI5OSwgMHgzNGIwYmNiNSwgMHhlMTliNDhhOCxcbiAgMHgzOTFjMGNiMywgMHhjNWM5NWE2MywgMHg0ZWQ4YWE0YSwgMHhlMzQxOGFjYixcbiAgMHg1YjljY2E0ZiwgMHg3NzYzZTM3MywgMHg2ODJlNmZmMywgMHhkNmIyYjhhMyxcbiAgMHg3NDhmODJlZSwgMHg1ZGVmYjJmYywgMHg3OGE1NjM2ZiwgMHg0MzE3MmY2MCxcbiAgMHg4NGM4NzgxNCwgMHhhMWYwYWI3MiwgMHg4Y2M3MDIwOCwgMHgxYTY0MzllYyxcbiAgMHg5MGJlZmZmYSwgMHgyMzYzMWUyOCwgMHhhNDUwNmNlYiwgMHhkZTgyYmRlOSxcbiAgMHhiZWY5YTNmNywgMHhiMmM2NzkxNSwgMHhjNjcxNzhmMiwgMHhlMzcyNTMyYixcbiAgMHhjYTI3M2VjZSwgMHhlYTI2NjE5YywgMHhkMTg2YjhjNywgMHgyMWMwYzIwNyxcbiAgMHhlYWRhN2RkNiwgMHhjZGUwZWIxZSwgMHhmNTdkNGY3ZiwgMHhlZTZlZDE3OCxcbiAgMHgwNmYwNjdhYSwgMHg3MjE3NmZiYSwgMHgwYTYzN2RjNSwgMHhhMmM4OThhNixcbiAgMHgxMTNmOTgwNCwgMHhiZWY5MGRhZSwgMHgxYjcxMGIzNSwgMHgxMzFjNDcxYixcbiAgMHgyOGRiNzdmNSwgMHgyMzA0N2Q4NCwgMHgzMmNhYWI3YiwgMHg0MGM3MjQ5MyxcbiAgMHgzYzllYmUwYSwgMHgxNWM5YmViYywgMHg0MzFkNjdjNCwgMHg5YzEwMGQ0YyxcbiAgMHg0Y2M1ZDRiZSwgMHhjYjNlNDJiNiwgMHg1OTdmMjk5YywgMHhmYzY1N2UyYSxcbiAgMHg1ZmNiNmZhYiwgMHgzYWQ2ZmFlYywgMHg2YzQ0MTk4YywgMHg0YTQ3NTgxN1xuXTtcblxuZnVuY3Rpb24gU0hBNTEyKCkge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgU0hBNTEyKSlcbiAgICByZXR1cm4gbmV3IFNIQTUxMigpO1xuXG4gIEJsb2NrSGFzaC5jYWxsKHRoaXMpO1xuICB0aGlzLmggPSBbXG4gICAgMHg2YTA5ZTY2NywgMHhmM2JjYzkwOCxcbiAgICAweGJiNjdhZTg1LCAweDg0Y2FhNzNiLFxuICAgIDB4M2M2ZWYzNzIsIDB4ZmU5NGY4MmIsXG4gICAgMHhhNTRmZjUzYSwgMHg1ZjFkMzZmMSxcbiAgICAweDUxMGU1MjdmLCAweGFkZTY4MmQxLFxuICAgIDB4OWIwNTY4OGMsIDB4MmIzZTZjMWYsXG4gICAgMHgxZjgzZDlhYiwgMHhmYjQxYmQ2YixcbiAgICAweDViZTBjZDE5LCAweDEzN2UyMTc5IF07XG4gIHRoaXMuayA9IHNoYTUxMl9LO1xuICB0aGlzLlcgPSBuZXcgQXJyYXkoMTYwKTtcbn1cbnV0aWxzLmluaGVyaXRzKFNIQTUxMiwgQmxvY2tIYXNoKTtcbm1vZHVsZS5leHBvcnRzID0gU0hBNTEyO1xuXG5TSEE1MTIuYmxvY2tTaXplID0gMTAyNDtcblNIQTUxMi5vdXRTaXplID0gNTEyO1xuU0hBNTEyLmhtYWNTdHJlbmd0aCA9IDE5MjtcblNIQTUxMi5wYWRMZW5ndGggPSAxMjg7XG5cblNIQTUxMi5wcm90b3R5cGUuX3ByZXBhcmVCbG9jayA9IGZ1bmN0aW9uIF9wcmVwYXJlQmxvY2sobXNnLCBzdGFydCkge1xuICB2YXIgVyA9IHRoaXMuVztcblxuICAvLyAzMiB4IDMyYml0IHdvcmRzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMzI7IGkrKylcbiAgICBXW2ldID0gbXNnW3N0YXJ0ICsgaV07XG4gIGZvciAoOyBpIDwgVy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHZhciBjMF9oaSA9IGcxXzUxMl9oaShXW2kgLSA0XSwgV1tpIC0gM10pOyAgLy8gaSAtIDJcbiAgICB2YXIgYzBfbG8gPSBnMV81MTJfbG8oV1tpIC0gNF0sIFdbaSAtIDNdKTtcbiAgICB2YXIgYzFfaGkgPSBXW2kgLSAxNF07ICAvLyBpIC0gN1xuICAgIHZhciBjMV9sbyA9IFdbaSAtIDEzXTtcbiAgICB2YXIgYzJfaGkgPSBnMF81MTJfaGkoV1tpIC0gMzBdLCBXW2kgLSAyOV0pOyAgLy8gaSAtIDE1XG4gICAgdmFyIGMyX2xvID0gZzBfNTEyX2xvKFdbaSAtIDMwXSwgV1tpIC0gMjldKTtcbiAgICB2YXIgYzNfaGkgPSBXW2kgLSAzMl07ICAvLyBpIC0gMTZcbiAgICB2YXIgYzNfbG8gPSBXW2kgLSAzMV07XG5cbiAgICBXW2ldID0gc3VtNjRfNF9oaShcbiAgICAgIGMwX2hpLCBjMF9sbyxcbiAgICAgIGMxX2hpLCBjMV9sbyxcbiAgICAgIGMyX2hpLCBjMl9sbyxcbiAgICAgIGMzX2hpLCBjM19sbyk7XG4gICAgV1tpICsgMV0gPSBzdW02NF80X2xvKFxuICAgICAgYzBfaGksIGMwX2xvLFxuICAgICAgYzFfaGksIGMxX2xvLFxuICAgICAgYzJfaGksIGMyX2xvLFxuICAgICAgYzNfaGksIGMzX2xvKTtcbiAgfVxufTtcblxuU0hBNTEyLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gX3VwZGF0ZShtc2csIHN0YXJ0KSB7XG4gIHRoaXMuX3ByZXBhcmVCbG9jayhtc2csIHN0YXJ0KTtcblxuICB2YXIgVyA9IHRoaXMuVztcblxuICB2YXIgYWggPSB0aGlzLmhbMF07XG4gIHZhciBhbCA9IHRoaXMuaFsxXTtcbiAgdmFyIGJoID0gdGhpcy5oWzJdO1xuICB2YXIgYmwgPSB0aGlzLmhbM107XG4gIHZhciBjaCA9IHRoaXMuaFs0XTtcbiAgdmFyIGNsID0gdGhpcy5oWzVdO1xuICB2YXIgZGggPSB0aGlzLmhbNl07XG4gIHZhciBkbCA9IHRoaXMuaFs3XTtcbiAgdmFyIGVoID0gdGhpcy5oWzhdO1xuICB2YXIgZWwgPSB0aGlzLmhbOV07XG4gIHZhciBmaCA9IHRoaXMuaFsxMF07XG4gIHZhciBmbCA9IHRoaXMuaFsxMV07XG4gIHZhciBnaCA9IHRoaXMuaFsxMl07XG4gIHZhciBnbCA9IHRoaXMuaFsxM107XG4gIHZhciBoaCA9IHRoaXMuaFsxNF07XG4gIHZhciBobCA9IHRoaXMuaFsxNV07XG5cbiAgYXNzZXJ0KHRoaXMuay5sZW5ndGggPT09IFcubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBXLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgdmFyIGMwX2hpID0gaGg7XG4gICAgdmFyIGMwX2xvID0gaGw7XG4gICAgdmFyIGMxX2hpID0gczFfNTEyX2hpKGVoLCBlbCk7XG4gICAgdmFyIGMxX2xvID0gczFfNTEyX2xvKGVoLCBlbCk7XG4gICAgdmFyIGMyX2hpID0gY2g2NF9oaShlaCwgZWwsIGZoLCBmbCwgZ2gsIGdsKTtcbiAgICB2YXIgYzJfbG8gPSBjaDY0X2xvKGVoLCBlbCwgZmgsIGZsLCBnaCwgZ2wpO1xuICAgIHZhciBjM19oaSA9IHRoaXMua1tpXTtcbiAgICB2YXIgYzNfbG8gPSB0aGlzLmtbaSArIDFdO1xuICAgIHZhciBjNF9oaSA9IFdbaV07XG4gICAgdmFyIGM0X2xvID0gV1tpICsgMV07XG5cbiAgICB2YXIgVDFfaGkgPSBzdW02NF81X2hpKFxuICAgICAgYzBfaGksIGMwX2xvLFxuICAgICAgYzFfaGksIGMxX2xvLFxuICAgICAgYzJfaGksIGMyX2xvLFxuICAgICAgYzNfaGksIGMzX2xvLFxuICAgICAgYzRfaGksIGM0X2xvKTtcbiAgICB2YXIgVDFfbG8gPSBzdW02NF81X2xvKFxuICAgICAgYzBfaGksIGMwX2xvLFxuICAgICAgYzFfaGksIGMxX2xvLFxuICAgICAgYzJfaGksIGMyX2xvLFxuICAgICAgYzNfaGksIGMzX2xvLFxuICAgICAgYzRfaGksIGM0X2xvKTtcblxuICAgIGMwX2hpID0gczBfNTEyX2hpKGFoLCBhbCk7XG4gICAgYzBfbG8gPSBzMF81MTJfbG8oYWgsIGFsKTtcbiAgICBjMV9oaSA9IG1hajY0X2hpKGFoLCBhbCwgYmgsIGJsLCBjaCwgY2wpO1xuICAgIGMxX2xvID0gbWFqNjRfbG8oYWgsIGFsLCBiaCwgYmwsIGNoLCBjbCk7XG5cbiAgICB2YXIgVDJfaGkgPSBzdW02NF9oaShjMF9oaSwgYzBfbG8sIGMxX2hpLCBjMV9sbyk7XG4gICAgdmFyIFQyX2xvID0gc3VtNjRfbG8oYzBfaGksIGMwX2xvLCBjMV9oaSwgYzFfbG8pO1xuXG4gICAgaGggPSBnaDtcbiAgICBobCA9IGdsO1xuXG4gICAgZ2ggPSBmaDtcbiAgICBnbCA9IGZsO1xuXG4gICAgZmggPSBlaDtcbiAgICBmbCA9IGVsO1xuXG4gICAgZWggPSBzdW02NF9oaShkaCwgZGwsIFQxX2hpLCBUMV9sbyk7XG4gICAgZWwgPSBzdW02NF9sbyhkbCwgZGwsIFQxX2hpLCBUMV9sbyk7XG5cbiAgICBkaCA9IGNoO1xuICAgIGRsID0gY2w7XG5cbiAgICBjaCA9IGJoO1xuICAgIGNsID0gYmw7XG5cbiAgICBiaCA9IGFoO1xuICAgIGJsID0gYWw7XG5cbiAgICBhaCA9IHN1bTY0X2hpKFQxX2hpLCBUMV9sbywgVDJfaGksIFQyX2xvKTtcbiAgICBhbCA9IHN1bTY0X2xvKFQxX2hpLCBUMV9sbywgVDJfaGksIFQyX2xvKTtcbiAgfVxuXG4gIHN1bTY0KHRoaXMuaCwgMCwgYWgsIGFsKTtcbiAgc3VtNjQodGhpcy5oLCAyLCBiaCwgYmwpO1xuICBzdW02NCh0aGlzLmgsIDQsIGNoLCBjbCk7XG4gIHN1bTY0KHRoaXMuaCwgNiwgZGgsIGRsKTtcbiAgc3VtNjQodGhpcy5oLCA4LCBlaCwgZWwpO1xuICBzdW02NCh0aGlzLmgsIDEwLCBmaCwgZmwpO1xuICBzdW02NCh0aGlzLmgsIDEyLCBnaCwgZ2wpO1xuICBzdW02NCh0aGlzLmgsIDE0LCBoaCwgaGwpO1xufTtcblxuU0hBNTEyLnByb3RvdHlwZS5fZGlnZXN0ID0gZnVuY3Rpb24gZGlnZXN0KGVuYykge1xuICBpZiAoZW5jID09PSAnaGV4JylcbiAgICByZXR1cm4gdXRpbHMudG9IZXgzMih0aGlzLmgsICdiaWcnKTtcbiAgZWxzZVxuICAgIHJldHVybiB1dGlscy5zcGxpdDMyKHRoaXMuaCwgJ2JpZycpO1xufTtcblxuZnVuY3Rpb24gY2g2NF9oaSh4aCwgeGwsIHloLCB5bCwgemgpIHtcbiAgdmFyIHIgPSAoeGggJiB5aCkgXiAoKH54aCkgJiB6aCk7XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cblxuZnVuY3Rpb24gY2g2NF9sbyh4aCwgeGwsIHloLCB5bCwgemgsIHpsKSB7XG4gIHZhciByID0gKHhsICYgeWwpIF4gKCh+eGwpICYgemwpO1xuICBpZiAociA8IDApXG4gICAgciArPSAweDEwMDAwMDAwMDtcbiAgcmV0dXJuIHI7XG59XG5cbmZ1bmN0aW9uIG1hajY0X2hpKHhoLCB4bCwgeWgsIHlsLCB6aCkge1xuICB2YXIgciA9ICh4aCAmIHloKSBeICh4aCAmIHpoKSBeICh5aCAmIHpoKTtcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBtYWo2NF9sbyh4aCwgeGwsIHloLCB5bCwgemgsIHpsKSB7XG4gIHZhciByID0gKHhsICYgeWwpIF4gKHhsICYgemwpIF4gKHlsICYgemwpO1xuICBpZiAociA8IDApXG4gICAgciArPSAweDEwMDAwMDAwMDtcbiAgcmV0dXJuIHI7XG59XG5cbmZ1bmN0aW9uIHMwXzUxMl9oaSh4aCwgeGwpIHtcbiAgdmFyIGMwX2hpID0gcm90cjY0X2hpKHhoLCB4bCwgMjgpO1xuICB2YXIgYzFfaGkgPSByb3RyNjRfaGkoeGwsIHhoLCAyKTsgIC8vIDM0XG4gIHZhciBjMl9oaSA9IHJvdHI2NF9oaSh4bCwgeGgsIDcpOyAgLy8gMzlcblxuICB2YXIgciA9IGMwX2hpIF4gYzFfaGkgXiBjMl9oaTtcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBzMF81MTJfbG8oeGgsIHhsKSB7XG4gIHZhciBjMF9sbyA9IHJvdHI2NF9sbyh4aCwgeGwsIDI4KTtcbiAgdmFyIGMxX2xvID0gcm90cjY0X2xvKHhsLCB4aCwgMik7ICAvLyAzNFxuICB2YXIgYzJfbG8gPSByb3RyNjRfbG8oeGwsIHhoLCA3KTsgIC8vIDM5XG5cbiAgdmFyIHIgPSBjMF9sbyBeIGMxX2xvIF4gYzJfbG87XG4gIGlmIChyIDwgMClcbiAgICByICs9IDB4MTAwMDAwMDAwO1xuICByZXR1cm4gcjtcbn1cblxuZnVuY3Rpb24gczFfNTEyX2hpKHhoLCB4bCkge1xuICB2YXIgYzBfaGkgPSByb3RyNjRfaGkoeGgsIHhsLCAxNCk7XG4gIHZhciBjMV9oaSA9IHJvdHI2NF9oaSh4aCwgeGwsIDE4KTtcbiAgdmFyIGMyX2hpID0gcm90cjY0X2hpKHhsLCB4aCwgOSk7ICAvLyA0MVxuXG4gIHZhciByID0gYzBfaGkgXiBjMV9oaSBeIGMyX2hpO1xuICBpZiAociA8IDApXG4gICAgciArPSAweDEwMDAwMDAwMDtcbiAgcmV0dXJuIHI7XG59XG5cbmZ1bmN0aW9uIHMxXzUxMl9sbyh4aCwgeGwpIHtcbiAgdmFyIGMwX2xvID0gcm90cjY0X2xvKHhoLCB4bCwgMTQpO1xuICB2YXIgYzFfbG8gPSByb3RyNjRfbG8oeGgsIHhsLCAxOCk7XG4gIHZhciBjMl9sbyA9IHJvdHI2NF9sbyh4bCwgeGgsIDkpOyAgLy8gNDFcblxuICB2YXIgciA9IGMwX2xvIF4gYzFfbG8gXiBjMl9sbztcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBnMF81MTJfaGkoeGgsIHhsKSB7XG4gIHZhciBjMF9oaSA9IHJvdHI2NF9oaSh4aCwgeGwsIDEpO1xuICB2YXIgYzFfaGkgPSByb3RyNjRfaGkoeGgsIHhsLCA4KTtcbiAgdmFyIGMyX2hpID0gc2hyNjRfaGkoeGgsIHhsLCA3KTtcblxuICB2YXIgciA9IGMwX2hpIF4gYzFfaGkgXiBjMl9oaTtcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBnMF81MTJfbG8oeGgsIHhsKSB7XG4gIHZhciBjMF9sbyA9IHJvdHI2NF9sbyh4aCwgeGwsIDEpO1xuICB2YXIgYzFfbG8gPSByb3RyNjRfbG8oeGgsIHhsLCA4KTtcbiAgdmFyIGMyX2xvID0gc2hyNjRfbG8oeGgsIHhsLCA3KTtcblxuICB2YXIgciA9IGMwX2xvIF4gYzFfbG8gXiBjMl9sbztcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBnMV81MTJfaGkoeGgsIHhsKSB7XG4gIHZhciBjMF9oaSA9IHJvdHI2NF9oaSh4aCwgeGwsIDE5KTtcbiAgdmFyIGMxX2hpID0gcm90cjY0X2hpKHhsLCB4aCwgMjkpOyAgLy8gNjFcbiAgdmFyIGMyX2hpID0gc2hyNjRfaGkoeGgsIHhsLCA2KTtcblxuICB2YXIgciA9IGMwX2hpIF4gYzFfaGkgXiBjMl9oaTtcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuXG5mdW5jdGlvbiBnMV81MTJfbG8oeGgsIHhsKSB7XG4gIHZhciBjMF9sbyA9IHJvdHI2NF9sbyh4aCwgeGwsIDE5KTtcbiAgdmFyIGMxX2xvID0gcm90cjY0X2xvKHhsLCB4aCwgMjkpOyAgLy8gNjFcbiAgdmFyIGMyX2xvID0gc2hyNjRfbG8oeGgsIHhsLCA2KTtcblxuICB2YXIgciA9IGMwX2xvIF4gYzFfbG8gXiBjMl9sbztcbiAgaWYgKHIgPCAwKVxuICAgIHIgKz0gMHgxMDAwMDAwMDA7XG4gIHJldHVybiByO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuLi91dGlscycpO1xudmFyIHJvdHIzMiA9IHV0aWxzLnJvdHIzMjtcblxuZnVuY3Rpb24gZnRfMShzLCB4LCB5LCB6KSB7XG4gIGlmIChzID09PSAwKVxuICAgIHJldHVybiBjaDMyKHgsIHksIHopO1xuICBpZiAocyA9PT0gMSB8fCBzID09PSAzKVxuICAgIHJldHVybiBwMzIoeCwgeSwgeik7XG4gIGlmIChzID09PSAyKVxuICAgIHJldHVybiBtYWozMih4LCB5LCB6KTtcbn1cbmV4cG9ydHMuZnRfMSA9IGZ0XzE7XG5cbmZ1bmN0aW9uIGNoMzIoeCwgeSwgeikge1xuICByZXR1cm4gKHggJiB5KSBeICgofngpICYgeik7XG59XG5leHBvcnRzLmNoMzIgPSBjaDMyO1xuXG5mdW5jdGlvbiBtYWozMih4LCB5LCB6KSB7XG4gIHJldHVybiAoeCAmIHkpIF4gKHggJiB6KSBeICh5ICYgeik7XG59XG5leHBvcnRzLm1hajMyID0gbWFqMzI7XG5cbmZ1bmN0aW9uIHAzMih4LCB5LCB6KSB7XG4gIHJldHVybiB4IF4geSBeIHo7XG59XG5leHBvcnRzLnAzMiA9IHAzMjtcblxuZnVuY3Rpb24gczBfMjU2KHgpIHtcbiAgcmV0dXJuIHJvdHIzMih4LCAyKSBeIHJvdHIzMih4LCAxMykgXiByb3RyMzIoeCwgMjIpO1xufVxuZXhwb3J0cy5zMF8yNTYgPSBzMF8yNTY7XG5cbmZ1bmN0aW9uIHMxXzI1Nih4KSB7XG4gIHJldHVybiByb3RyMzIoeCwgNikgXiByb3RyMzIoeCwgMTEpIF4gcm90cjMyKHgsIDI1KTtcbn1cbmV4cG9ydHMuczFfMjU2ID0gczFfMjU2O1xuXG5mdW5jdGlvbiBnMF8yNTYoeCkge1xuICByZXR1cm4gcm90cjMyKHgsIDcpIF4gcm90cjMyKHgsIDE4KSBeICh4ID4+PiAzKTtcbn1cbmV4cG9ydHMuZzBfMjU2ID0gZzBfMjU2O1xuXG5mdW5jdGlvbiBnMV8yNTYoeCkge1xuICByZXR1cm4gcm90cjMyKHgsIDE3KSBeIHJvdHIzMih4LCAxOSkgXiAoeCA+Pj4gMTApO1xufVxuZXhwb3J0cy5nMV8yNTYgPSBnMV8yNTY7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBhc3NlcnQgPSByZXF1aXJlKCdtaW5pbWFsaXN0aWMtYXNzZXJ0Jyk7XG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuXG5leHBvcnRzLmluaGVyaXRzID0gaW5oZXJpdHM7XG5cbmZ1bmN0aW9uIHRvQXJyYXkobXNnLCBlbmMpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkobXNnKSlcbiAgICByZXR1cm4gbXNnLnNsaWNlKCk7XG4gIGlmICghbXNnKVxuICAgIHJldHVybiBbXTtcbiAgdmFyIHJlcyA9IFtdO1xuICBpZiAodHlwZW9mIG1zZyA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoIWVuYykge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGMgPSBtc2cuY2hhckNvZGVBdChpKTtcbiAgICAgICAgdmFyIGhpID0gYyA+PiA4O1xuICAgICAgICB2YXIgbG8gPSBjICYgMHhmZjtcbiAgICAgICAgaWYgKGhpKVxuICAgICAgICAgIHJlcy5wdXNoKGhpLCBsbyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICByZXMucHVzaChsbyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlbmMgPT09ICdoZXgnKSB7XG4gICAgICBtc2cgPSBtc2cucmVwbGFjZSgvW15hLXowLTldKy9pZywgJycpO1xuICAgICAgaWYgKG1zZy5sZW5ndGggJSAyICE9PSAwKVxuICAgICAgICBtc2cgPSAnMCcgKyBtc2c7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgbXNnLmxlbmd0aDsgaSArPSAyKVxuICAgICAgICByZXMucHVzaChwYXJzZUludChtc2dbaV0gKyBtc2dbaSArIDFdLCAxNikpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbXNnLmxlbmd0aDsgaSsrKVxuICAgICAgcmVzW2ldID0gbXNnW2ldIHwgMDtcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuZXhwb3J0cy50b0FycmF5ID0gdG9BcnJheTtcblxuZnVuY3Rpb24gdG9IZXgobXNnKSB7XG4gIHZhciByZXMgPSAnJztcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpKyspXG4gICAgcmVzICs9IHplcm8yKG1zZ1tpXS50b1N0cmluZygxNikpO1xuICByZXR1cm4gcmVzO1xufVxuZXhwb3J0cy50b0hleCA9IHRvSGV4O1xuXG5mdW5jdGlvbiBodG9ubCh3KSB7XG4gIHZhciByZXMgPSAodyA+Pj4gMjQpIHxcbiAgICAgICAgICAgICgodyA+Pj4gOCkgJiAweGZmMDApIHxcbiAgICAgICAgICAgICgodyA8PCA4KSAmIDB4ZmYwMDAwKSB8XG4gICAgICAgICAgICAoKHcgJiAweGZmKSA8PCAyNCk7XG4gIHJldHVybiByZXMgPj4+IDA7XG59XG5leHBvcnRzLmh0b25sID0gaHRvbmw7XG5cbmZ1bmN0aW9uIHRvSGV4MzIobXNnLCBlbmRpYW4pIHtcbiAgdmFyIHJlcyA9ICcnO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkrKykge1xuICAgIHZhciB3ID0gbXNnW2ldO1xuICAgIGlmIChlbmRpYW4gPT09ICdsaXR0bGUnKVxuICAgICAgdyA9IGh0b25sKHcpO1xuICAgIHJlcyArPSB6ZXJvOCh3LnRvU3RyaW5nKDE2KSk7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydHMudG9IZXgzMiA9IHRvSGV4MzI7XG5cbmZ1bmN0aW9uIHplcm8yKHdvcmQpIHtcbiAgaWYgKHdvcmQubGVuZ3RoID09PSAxKVxuICAgIHJldHVybiAnMCcgKyB3b3JkO1xuICBlbHNlXG4gICAgcmV0dXJuIHdvcmQ7XG59XG5leHBvcnRzLnplcm8yID0gemVybzI7XG5cbmZ1bmN0aW9uIHplcm84KHdvcmQpIHtcbiAgaWYgKHdvcmQubGVuZ3RoID09PSA3KVxuICAgIHJldHVybiAnMCcgKyB3b3JkO1xuICBlbHNlIGlmICh3b3JkLmxlbmd0aCA9PT0gNilcbiAgICByZXR1cm4gJzAwJyArIHdvcmQ7XG4gIGVsc2UgaWYgKHdvcmQubGVuZ3RoID09PSA1KVxuICAgIHJldHVybiAnMDAwJyArIHdvcmQ7XG4gIGVsc2UgaWYgKHdvcmQubGVuZ3RoID09PSA0KVxuICAgIHJldHVybiAnMDAwMCcgKyB3b3JkO1xuICBlbHNlIGlmICh3b3JkLmxlbmd0aCA9PT0gMylcbiAgICByZXR1cm4gJzAwMDAwJyArIHdvcmQ7XG4gIGVsc2UgaWYgKHdvcmQubGVuZ3RoID09PSAyKVxuICAgIHJldHVybiAnMDAwMDAwJyArIHdvcmQ7XG4gIGVsc2UgaWYgKHdvcmQubGVuZ3RoID09PSAxKVxuICAgIHJldHVybiAnMDAwMDAwMCcgKyB3b3JkO1xuICBlbHNlXG4gICAgcmV0dXJuIHdvcmQ7XG59XG5leHBvcnRzLnplcm84ID0gemVybzg7XG5cbmZ1bmN0aW9uIGpvaW4zMihtc2csIHN0YXJ0LCBlbmQsIGVuZGlhbikge1xuICB2YXIgbGVuID0gZW5kIC0gc3RhcnQ7XG4gIGFzc2VydChsZW4gJSA0ID09PSAwKTtcbiAgdmFyIHJlcyA9IG5ldyBBcnJheShsZW4gLyA0KTtcbiAgZm9yICh2YXIgaSA9IDAsIGsgPSBzdGFydDsgaSA8IHJlcy5sZW5ndGg7IGkrKywgayArPSA0KSB7XG4gICAgdmFyIHc7XG4gICAgaWYgKGVuZGlhbiA9PT0gJ2JpZycpXG4gICAgICB3ID0gKG1zZ1trXSA8PCAyNCkgfCAobXNnW2sgKyAxXSA8PCAxNikgfCAobXNnW2sgKyAyXSA8PCA4KSB8IG1zZ1trICsgM107XG4gICAgZWxzZVxuICAgICAgdyA9IChtc2dbayArIDNdIDw8IDI0KSB8IChtc2dbayArIDJdIDw8IDE2KSB8IChtc2dbayArIDFdIDw8IDgpIHwgbXNnW2tdO1xuICAgIHJlc1tpXSA9IHcgPj4+IDA7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cbmV4cG9ydHMuam9pbjMyID0gam9pbjMyO1xuXG5mdW5jdGlvbiBzcGxpdDMyKG1zZywgZW5kaWFuKSB7XG4gIHZhciByZXMgPSBuZXcgQXJyYXkobXNnLmxlbmd0aCAqIDQpO1xuICBmb3IgKHZhciBpID0gMCwgayA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpKyssIGsgKz0gNCkge1xuICAgIHZhciBtID0gbXNnW2ldO1xuICAgIGlmIChlbmRpYW4gPT09ICdiaWcnKSB7XG4gICAgICByZXNba10gPSBtID4+PiAyNDtcbiAgICAgIHJlc1trICsgMV0gPSAobSA+Pj4gMTYpICYgMHhmZjtcbiAgICAgIHJlc1trICsgMl0gPSAobSA+Pj4gOCkgJiAweGZmO1xuICAgICAgcmVzW2sgKyAzXSA9IG0gJiAweGZmO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNbayArIDNdID0gbSA+Pj4gMjQ7XG4gICAgICByZXNbayArIDJdID0gKG0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICByZXNbayArIDFdID0gKG0gPj4+IDgpICYgMHhmZjtcbiAgICAgIHJlc1trXSA9IG0gJiAweGZmO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzO1xufVxuZXhwb3J0cy5zcGxpdDMyID0gc3BsaXQzMjtcblxuZnVuY3Rpb24gcm90cjMyKHcsIGIpIHtcbiAgcmV0dXJuICh3ID4+PiBiKSB8ICh3IDw8ICgzMiAtIGIpKTtcbn1cbmV4cG9ydHMucm90cjMyID0gcm90cjMyO1xuXG5mdW5jdGlvbiByb3RsMzIodywgYikge1xuICByZXR1cm4gKHcgPDwgYikgfCAodyA+Pj4gKDMyIC0gYikpO1xufVxuZXhwb3J0cy5yb3RsMzIgPSByb3RsMzI7XG5cbmZ1bmN0aW9uIHN1bTMyKGEsIGIpIHtcbiAgcmV0dXJuIChhICsgYikgPj4+IDA7XG59XG5leHBvcnRzLnN1bTMyID0gc3VtMzI7XG5cbmZ1bmN0aW9uIHN1bTMyXzMoYSwgYiwgYykge1xuICByZXR1cm4gKGEgKyBiICsgYykgPj4+IDA7XG59XG5leHBvcnRzLnN1bTMyXzMgPSBzdW0zMl8zO1xuXG5mdW5jdGlvbiBzdW0zMl80KGEsIGIsIGMsIGQpIHtcbiAgcmV0dXJuIChhICsgYiArIGMgKyBkKSA+Pj4gMDtcbn1cbmV4cG9ydHMuc3VtMzJfNCA9IHN1bTMyXzQ7XG5cbmZ1bmN0aW9uIHN1bTMyXzUoYSwgYiwgYywgZCwgZSkge1xuICByZXR1cm4gKGEgKyBiICsgYyArIGQgKyBlKSA+Pj4gMDtcbn1cbmV4cG9ydHMuc3VtMzJfNSA9IHN1bTMyXzU7XG5cbmZ1bmN0aW9uIHN1bTY0KGJ1ZiwgcG9zLCBhaCwgYWwpIHtcbiAgdmFyIGJoID0gYnVmW3Bvc107XG4gIHZhciBibCA9IGJ1Zltwb3MgKyAxXTtcblxuICB2YXIgbG8gPSAoYWwgKyBibCkgPj4+IDA7XG4gIHZhciBoaSA9IChsbyA8IGFsID8gMSA6IDApICsgYWggKyBiaDtcbiAgYnVmW3Bvc10gPSBoaSA+Pj4gMDtcbiAgYnVmW3BvcyArIDFdID0gbG87XG59XG5leHBvcnRzLnN1bTY0ID0gc3VtNjQ7XG5cbmZ1bmN0aW9uIHN1bTY0X2hpKGFoLCBhbCwgYmgsIGJsKSB7XG4gIHZhciBsbyA9IChhbCArIGJsKSA+Pj4gMDtcbiAgdmFyIGhpID0gKGxvIDwgYWwgPyAxIDogMCkgKyBhaCArIGJoO1xuICByZXR1cm4gaGkgPj4+IDA7XG59XG5leHBvcnRzLnN1bTY0X2hpID0gc3VtNjRfaGk7XG5cbmZ1bmN0aW9uIHN1bTY0X2xvKGFoLCBhbCwgYmgsIGJsKSB7XG4gIHZhciBsbyA9IGFsICsgYmw7XG4gIHJldHVybiBsbyA+Pj4gMDtcbn1cbmV4cG9ydHMuc3VtNjRfbG8gPSBzdW02NF9sbztcblxuZnVuY3Rpb24gc3VtNjRfNF9oaShhaCwgYWwsIGJoLCBibCwgY2gsIGNsLCBkaCwgZGwpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgdmFyIGxvID0gYWw7XG4gIGxvID0gKGxvICsgYmwpID4+PiAwO1xuICBjYXJyeSArPSBsbyA8IGFsID8gMSA6IDA7XG4gIGxvID0gKGxvICsgY2wpID4+PiAwO1xuICBjYXJyeSArPSBsbyA8IGNsID8gMSA6IDA7XG4gIGxvID0gKGxvICsgZGwpID4+PiAwO1xuICBjYXJyeSArPSBsbyA8IGRsID8gMSA6IDA7XG5cbiAgdmFyIGhpID0gYWggKyBiaCArIGNoICsgZGggKyBjYXJyeTtcbiAgcmV0dXJuIGhpID4+PiAwO1xufVxuZXhwb3J0cy5zdW02NF80X2hpID0gc3VtNjRfNF9oaTtcblxuZnVuY3Rpb24gc3VtNjRfNF9sbyhhaCwgYWwsIGJoLCBibCwgY2gsIGNsLCBkaCwgZGwpIHtcbiAgdmFyIGxvID0gYWwgKyBibCArIGNsICsgZGw7XG4gIHJldHVybiBsbyA+Pj4gMDtcbn1cbmV4cG9ydHMuc3VtNjRfNF9sbyA9IHN1bTY0XzRfbG87XG5cbmZ1bmN0aW9uIHN1bTY0XzVfaGkoYWgsIGFsLCBiaCwgYmwsIGNoLCBjbCwgZGgsIGRsLCBlaCwgZWwpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgdmFyIGxvID0gYWw7XG4gIGxvID0gKGxvICsgYmwpID4+PiAwO1xuICBjYXJyeSArPSBsbyA8IGFsID8gMSA6IDA7XG4gIGxvID0gKGxvICsgY2wpID4+PiAwO1xuICBjYXJyeSArPSBsbyA8IGNsID8gMSA6IDA7XG4gIGxvID0gKGxvICsgZGwpID4+PiAwO1xuICBjYXJyeSArPSBsbyA8IGRsID8gMSA6IDA7XG4gIGxvID0gKGxvICsgZWwpID4+PiAwO1xuICBjYXJyeSArPSBsbyA8IGVsID8gMSA6IDA7XG5cbiAgdmFyIGhpID0gYWggKyBiaCArIGNoICsgZGggKyBlaCArIGNhcnJ5O1xuICByZXR1cm4gaGkgPj4+IDA7XG59XG5leHBvcnRzLnN1bTY0XzVfaGkgPSBzdW02NF81X2hpO1xuXG5mdW5jdGlvbiBzdW02NF81X2xvKGFoLCBhbCwgYmgsIGJsLCBjaCwgY2wsIGRoLCBkbCwgZWgsIGVsKSB7XG4gIHZhciBsbyA9IGFsICsgYmwgKyBjbCArIGRsICsgZWw7XG5cbiAgcmV0dXJuIGxvID4+PiAwO1xufVxuZXhwb3J0cy5zdW02NF81X2xvID0gc3VtNjRfNV9sbztcblxuZnVuY3Rpb24gcm90cjY0X2hpKGFoLCBhbCwgbnVtKSB7XG4gIHZhciByID0gKGFsIDw8ICgzMiAtIG51bSkpIHwgKGFoID4+PiBudW0pO1xuICByZXR1cm4gciA+Pj4gMDtcbn1cbmV4cG9ydHMucm90cjY0X2hpID0gcm90cjY0X2hpO1xuXG5mdW5jdGlvbiByb3RyNjRfbG8oYWgsIGFsLCBudW0pIHtcbiAgdmFyIHIgPSAoYWggPDwgKDMyIC0gbnVtKSkgfCAoYWwgPj4+IG51bSk7XG4gIHJldHVybiByID4+PiAwO1xufVxuZXhwb3J0cy5yb3RyNjRfbG8gPSByb3RyNjRfbG87XG5cbmZ1bmN0aW9uIHNocjY0X2hpKGFoLCBhbCwgbnVtKSB7XG4gIHJldHVybiBhaCA+Pj4gbnVtO1xufVxuZXhwb3J0cy5zaHI2NF9oaSA9IHNocjY0X2hpO1xuXG5mdW5jdGlvbiBzaHI2NF9sbyhhaCwgYWwsIG51bSkge1xuICB2YXIgciA9IChhaCA8PCAoMzIgLSBudW0pKSB8IChhbCA+Pj4gbnVtKTtcbiAgcmV0dXJuIHIgPj4+IDA7XG59XG5leHBvcnRzLnNocjY0X2xvID0gc2hyNjRfbG87XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBoYXNoID0gcmVxdWlyZSgnaGFzaC5qcycpO1xudmFyIHV0aWxzID0gcmVxdWlyZSgnbWluaW1hbGlzdGljLWNyeXB0by11dGlscycpO1xudmFyIGFzc2VydCA9IHJlcXVpcmUoJ21pbmltYWxpc3RpYy1hc3NlcnQnKTtcblxuZnVuY3Rpb24gSG1hY0RSQkcob3B0aW9ucykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgSG1hY0RSQkcpKVxuICAgIHJldHVybiBuZXcgSG1hY0RSQkcob3B0aW9ucyk7XG4gIHRoaXMuaGFzaCA9IG9wdGlvbnMuaGFzaDtcbiAgdGhpcy5wcmVkUmVzaXN0ID0gISFvcHRpb25zLnByZWRSZXNpc3Q7XG5cbiAgdGhpcy5vdXRMZW4gPSB0aGlzLmhhc2gub3V0U2l6ZTtcbiAgdGhpcy5taW5FbnRyb3B5ID0gb3B0aW9ucy5taW5FbnRyb3B5IHx8IHRoaXMuaGFzaC5obWFjU3RyZW5ndGg7XG5cbiAgdGhpcy5fcmVzZWVkID0gbnVsbDtcbiAgdGhpcy5yZXNlZWRJbnRlcnZhbCA9IG51bGw7XG4gIHRoaXMuSyA9IG51bGw7XG4gIHRoaXMuViA9IG51bGw7XG5cbiAgdmFyIGVudHJvcHkgPSB1dGlscy50b0FycmF5KG9wdGlvbnMuZW50cm9weSwgb3B0aW9ucy5lbnRyb3B5RW5jIHx8ICdoZXgnKTtcbiAgdmFyIG5vbmNlID0gdXRpbHMudG9BcnJheShvcHRpb25zLm5vbmNlLCBvcHRpb25zLm5vbmNlRW5jIHx8ICdoZXgnKTtcbiAgdmFyIHBlcnMgPSB1dGlscy50b0FycmF5KG9wdGlvbnMucGVycywgb3B0aW9ucy5wZXJzRW5jIHx8ICdoZXgnKTtcbiAgYXNzZXJ0KGVudHJvcHkubGVuZ3RoID49ICh0aGlzLm1pbkVudHJvcHkgLyA4KSxcbiAgICAgICAgICdOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICcgKyB0aGlzLm1pbkVudHJvcHkgKyAnIGJpdHMnKTtcbiAgdGhpcy5faW5pdChlbnRyb3B5LCBub25jZSwgcGVycyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEhtYWNEUkJHO1xuXG5IbWFjRFJCRy5wcm90b3R5cGUuX2luaXQgPSBmdW5jdGlvbiBpbml0KGVudHJvcHksIG5vbmNlLCBwZXJzKSB7XG4gIHZhciBzZWVkID0gZW50cm9weS5jb25jYXQobm9uY2UpLmNvbmNhdChwZXJzKTtcblxuICB0aGlzLksgPSBuZXcgQXJyYXkodGhpcy5vdXRMZW4gLyA4KTtcbiAgdGhpcy5WID0gbmV3IEFycmF5KHRoaXMub3V0TGVuIC8gOCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5WLmxlbmd0aDsgaSsrKSB7XG4gICAgdGhpcy5LW2ldID0gMHgwMDtcbiAgICB0aGlzLlZbaV0gPSAweDAxO1xuICB9XG5cbiAgdGhpcy5fdXBkYXRlKHNlZWQpO1xuICB0aGlzLl9yZXNlZWQgPSAxO1xuICB0aGlzLnJlc2VlZEludGVydmFsID0gMHgxMDAwMDAwMDAwMDAwOyAgLy8gMl40OFxufTtcblxuSG1hY0RSQkcucHJvdG90eXBlLl9obWFjID0gZnVuY3Rpb24gaG1hYygpIHtcbiAgcmV0dXJuIG5ldyBoYXNoLmhtYWModGhpcy5oYXNoLCB0aGlzLkspO1xufTtcblxuSG1hY0RSQkcucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiB1cGRhdGUoc2VlZCkge1xuICB2YXIga21hYyA9IHRoaXMuX2htYWMoKVxuICAgICAgICAgICAgICAgICAudXBkYXRlKHRoaXMuVilcbiAgICAgICAgICAgICAgICAgLnVwZGF0ZShbIDB4MDAgXSk7XG4gIGlmIChzZWVkKVxuICAgIGttYWMgPSBrbWFjLnVwZGF0ZShzZWVkKTtcbiAgdGhpcy5LID0ga21hYy5kaWdlc3QoKTtcbiAgdGhpcy5WID0gdGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpO1xuICBpZiAoIXNlZWQpXG4gICAgcmV0dXJuO1xuXG4gIHRoaXMuSyA9IHRoaXMuX2htYWMoKVxuICAgICAgICAgICAgICAgLnVwZGF0ZSh0aGlzLlYpXG4gICAgICAgICAgICAgICAudXBkYXRlKFsgMHgwMSBdKVxuICAgICAgICAgICAgICAgLnVwZGF0ZShzZWVkKVxuICAgICAgICAgICAgICAgLmRpZ2VzdCgpO1xuICB0aGlzLlYgPSB0aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCk7XG59O1xuXG5IbWFjRFJCRy5wcm90b3R5cGUucmVzZWVkID0gZnVuY3Rpb24gcmVzZWVkKGVudHJvcHksIGVudHJvcHlFbmMsIGFkZCwgYWRkRW5jKSB7XG4gIC8vIE9wdGlvbmFsIGVudHJvcHkgZW5jXG4gIGlmICh0eXBlb2YgZW50cm9weUVuYyAhPT0gJ3N0cmluZycpIHtcbiAgICBhZGRFbmMgPSBhZGQ7XG4gICAgYWRkID0gZW50cm9weUVuYztcbiAgICBlbnRyb3B5RW5jID0gbnVsbDtcbiAgfVxuXG4gIGVudHJvcHkgPSB1dGlscy50b0FycmF5KGVudHJvcHksIGVudHJvcHlFbmMpO1xuICBhZGQgPSB1dGlscy50b0FycmF5KGFkZCwgYWRkRW5jKTtcblxuICBhc3NlcnQoZW50cm9weS5sZW5ndGggPj0gKHRoaXMubWluRW50cm9weSAvIDgpLFxuICAgICAgICAgJ05vdCBlbm91Z2ggZW50cm9weS4gTWluaW11bSBpczogJyArIHRoaXMubWluRW50cm9weSArICcgYml0cycpO1xuXG4gIHRoaXMuX3VwZGF0ZShlbnRyb3B5LmNvbmNhdChhZGQgfHwgW10pKTtcbiAgdGhpcy5fcmVzZWVkID0gMTtcbn07XG5cbkhtYWNEUkJHLnByb3RvdHlwZS5nZW5lcmF0ZSA9IGZ1bmN0aW9uIGdlbmVyYXRlKGxlbiwgZW5jLCBhZGQsIGFkZEVuYykge1xuICBpZiAodGhpcy5fcmVzZWVkID4gdGhpcy5yZXNlZWRJbnRlcnZhbClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jlc2VlZCBpcyByZXF1aXJlZCcpO1xuXG4gIC8vIE9wdGlvbmFsIGVuY29kaW5nXG4gIGlmICh0eXBlb2YgZW5jICE9PSAnc3RyaW5nJykge1xuICAgIGFkZEVuYyA9IGFkZDtcbiAgICBhZGQgPSBlbmM7XG4gICAgZW5jID0gbnVsbDtcbiAgfVxuXG4gIC8vIE9wdGlvbmFsIGFkZGl0aW9uYWwgZGF0YVxuICBpZiAoYWRkKSB7XG4gICAgYWRkID0gdXRpbHMudG9BcnJheShhZGQsIGFkZEVuYyB8fCAnaGV4Jyk7XG4gICAgdGhpcy5fdXBkYXRlKGFkZCk7XG4gIH1cblxuICB2YXIgdGVtcCA9IFtdO1xuICB3aGlsZSAodGVtcC5sZW5ndGggPCBsZW4pIHtcbiAgICB0aGlzLlYgPSB0aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCk7XG4gICAgdGVtcCA9IHRlbXAuY29uY2F0KHRoaXMuVik7XG4gIH1cblxuICB2YXIgcmVzID0gdGVtcC5zbGljZSgwLCBsZW4pO1xuICB0aGlzLl91cGRhdGUoYWRkKTtcbiAgdGhpcy5fcmVzZWVkKys7XG4gIHJldHVybiB1dGlscy5lbmNvZGUocmVzLCBlbmMpO1xufTtcbiIsImV4cG9ydHMucmVhZCA9IGZ1bmN0aW9uIChidWZmZXIsIG9mZnNldCwgaXNMRSwgbUxlbiwgbkJ5dGVzKSB7XG4gIHZhciBlLCBtXG4gIHZhciBlTGVuID0gbkJ5dGVzICogOCAtIG1MZW4gLSAxXG4gIHZhciBlTWF4ID0gKDEgPDwgZUxlbikgLSAxXG4gIHZhciBlQmlhcyA9IGVNYXggPj4gMVxuICB2YXIgbkJpdHMgPSAtN1xuICB2YXIgaSA9IGlzTEUgPyAobkJ5dGVzIC0gMSkgOiAwXG4gIHZhciBkID0gaXNMRSA/IC0xIDogMVxuICB2YXIgcyA9IGJ1ZmZlcltvZmZzZXQgKyBpXVxuXG4gIGkgKz0gZFxuXG4gIGUgPSBzICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpXG4gIHMgPj49ICgtbkJpdHMpXG4gIG5CaXRzICs9IGVMZW5cbiAgZm9yICg7IG5CaXRzID4gMDsgZSA9IGUgKiAyNTYgKyBidWZmZXJbb2Zmc2V0ICsgaV0sIGkgKz0gZCwgbkJpdHMgLT0gOCkge31cblxuICBtID0gZSAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBlID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBtTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IG0gPSBtICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgaWYgKGUgPT09IDApIHtcbiAgICBlID0gMSAtIGVCaWFzXG4gIH0gZWxzZSBpZiAoZSA9PT0gZU1heCkge1xuICAgIHJldHVybiBtID8gTmFOIDogKChzID8gLTEgOiAxKSAqIEluZmluaXR5KVxuICB9IGVsc2Uge1xuICAgIG0gPSBtICsgTWF0aC5wb3coMiwgbUxlbilcbiAgICBlID0gZSAtIGVCaWFzXG4gIH1cbiAgcmV0dXJuIChzID8gLTEgOiAxKSAqIG0gKiBNYXRoLnBvdygyLCBlIC0gbUxlbilcbn1cblxuZXhwb3J0cy53cml0ZSA9IGZ1bmN0aW9uIChidWZmZXIsIHZhbHVlLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbSwgY1xuICB2YXIgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMVxuICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMVxuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDFcbiAgdmFyIHJ0ID0gKG1MZW4gPT09IDIzID8gTWF0aC5wb3coMiwgLTI0KSAtIE1hdGgucG93KDIsIC03NykgOiAwKVxuICB2YXIgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpXG4gIHZhciBkID0gaXNMRSA/IDEgOiAtMVxuICB2YXIgcyA9IHZhbHVlIDwgMCB8fCAodmFsdWUgPT09IDAgJiYgMSAvIHZhbHVlIDwgMCkgPyAxIDogMFxuXG4gIHZhbHVlID0gTWF0aC5hYnModmFsdWUpXG5cbiAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gSW5maW5pdHkpIHtcbiAgICBtID0gaXNOYU4odmFsdWUpID8gMSA6IDBcbiAgICBlID0gZU1heFxuICB9IGVsc2Uge1xuICAgIGUgPSBNYXRoLmZsb29yKE1hdGgubG9nKHZhbHVlKSAvIE1hdGguTE4yKVxuICAgIGlmICh2YWx1ZSAqIChjID0gTWF0aC5wb3coMiwgLWUpKSA8IDEpIHtcbiAgICAgIGUtLVxuICAgICAgYyAqPSAyXG4gICAgfVxuICAgIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgdmFsdWUgKz0gcnQgLyBjXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlICs9IHJ0ICogTWF0aC5wb3coMiwgMSAtIGVCaWFzKVxuICAgIH1cbiAgICBpZiAodmFsdWUgKiBjID49IDIpIHtcbiAgICAgIGUrK1xuICAgICAgYyAvPSAyXG4gICAgfVxuXG4gICAgaWYgKGUgKyBlQmlhcyA+PSBlTWF4KSB7XG4gICAgICBtID0gMFxuICAgICAgZSA9IGVNYXhcbiAgICB9IGVsc2UgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICBtID0gKHZhbHVlICogYyAtIDEpICogTWF0aC5wb3coMiwgbUxlbilcbiAgICAgIGUgPSBlICsgZUJpYXNcbiAgICB9IGVsc2Uge1xuICAgICAgbSA9IHZhbHVlICogTWF0aC5wb3coMiwgZUJpYXMgLSAxKSAqIE1hdGgucG93KDIsIG1MZW4pXG4gICAgICBlID0gMFxuICAgIH1cbiAgfVxuXG4gIGZvciAoOyBtTGVuID49IDg7IGJ1ZmZlcltvZmZzZXQgKyBpXSA9IG0gJiAweGZmLCBpICs9IGQsIG0gLz0gMjU2LCBtTGVuIC09IDgpIHt9XG5cbiAgZSA9IChlIDw8IG1MZW4pIHwgbVxuICBlTGVuICs9IG1MZW5cbiAgZm9yICg7IGVMZW4gPiAwOyBidWZmZXJbb2Zmc2V0ICsgaV0gPSBlICYgMHhmZiwgaSArPSBkLCBlIC89IDI1NiwgZUxlbiAtPSA4KSB7fVxuXG4gIGJ1ZmZlcltvZmZzZXQgKyBpIC0gZF0gfD0gcyAqIDEyOFxufVxuIiwiXG52YXIgaW5kZXhPZiA9IFtdLmluZGV4T2Y7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oYXJyLCBvYmope1xuICBpZiAoaW5kZXhPZikgcmV0dXJuIGFyci5pbmRleE9mKG9iaik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKGFycltpXSA9PT0gb2JqKSByZXR1cm4gaTtcbiAgfVxuICByZXR1cm4gLTE7XG59OyIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgfVxuICAgIH0pO1xuICB9O1xufSBlbHNlIHtcbiAgLy8gb2xkIHNjaG9vbCBzaGltIGZvciBvbGQgYnJvd3NlcnNcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgIGN0b3IucHJvdG90eXBlID0gbmV3IFRlbXBDdG9yKClcbiAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgfVxufVxuIiwiLyohXG4gKiBEZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIGEgQnVmZmVyXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG4vLyBUaGUgX2lzQnVmZmVyIGNoZWNrIGlzIGZvciBTYWZhcmkgNS03IHN1cHBvcnQsIGJlY2F1c2UgaXQncyBtaXNzaW5nXG4vLyBPYmplY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yLiBSZW1vdmUgdGhpcyBldmVudHVhbGx5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIChpc0J1ZmZlcihvYmopIHx8IGlzU2xvd0J1ZmZlcihvYmopIHx8ICEhb2JqLl9pc0J1ZmZlcilcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIgKG9iaikge1xuICByZXR1cm4gISFvYmouY29uc3RydWN0b3IgJiYgdHlwZW9mIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIob2JqKVxufVxuXG4vLyBGb3IgTm9kZSB2MC4xMCBzdXBwb3J0LiBSZW1vdmUgdGhpcyBldmVudHVhbGx5LlxuZnVuY3Rpb24gaXNTbG93QnVmZmVyIChvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmoucmVhZEZsb2F0TEUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5zbGljZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0J1ZmZlcihvYmouc2xpY2UoMCwgMCkpXG59XG4iLCIoZnVuY3Rpb24oZXhwb3J0cykge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICBmdW5jdGlvbiBpc0FycmF5KG9iaikge1xuICAgIGlmIChvYmogIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IEFycmF5XVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNPYmplY3Qob2JqKSB7XG4gICAgaWYgKG9iaiAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSBcIltvYmplY3QgT2JqZWN0XVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gc3RyaWN0RGVlcEVxdWFsKGZpcnN0LCBzZWNvbmQpIHtcbiAgICAvLyBDaGVjayB0aGUgc2NhbGFyIGNhc2UgZmlyc3QuXG4gICAgaWYgKGZpcnN0ID09PSBzZWNvbmQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZXkgYXJlIHRoZSBzYW1lIHR5cGUuXG4gICAgdmFyIGZpcnN0VHlwZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaXJzdCk7XG4gICAgaWYgKGZpcnN0VHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHNlY29uZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gV2Uga25vdyB0aGF0IGZpcnN0IGFuZCBzZWNvbmQgaGF2ZSB0aGUgc2FtZSB0eXBlIHNvIHdlIGNhbiBqdXN0IGNoZWNrIHRoZVxuICAgIC8vIGZpcnN0IHR5cGUgZnJvbSBub3cgb24uXG4gICAgaWYgKGlzQXJyYXkoZmlyc3QpID09PSB0cnVlKSB7XG4gICAgICAvLyBTaG9ydCBjaXJjdWl0IGlmIHRoZXkncmUgbm90IHRoZSBzYW1lIGxlbmd0aDtcbiAgICAgIGlmIChmaXJzdC5sZW5ndGggIT09IHNlY29uZC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaXJzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoc3RyaWN0RGVlcEVxdWFsKGZpcnN0W2ldLCBzZWNvbmRbaV0pID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChpc09iamVjdChmaXJzdCkgPT09IHRydWUpIHtcbiAgICAgIC8vIEFuIG9iamVjdCBpcyBlcXVhbCBpZiBpdCBoYXMgdGhlIHNhbWUga2V5L3ZhbHVlIHBhaXJzLlxuICAgICAgdmFyIGtleXNTZWVuID0ge307XG4gICAgICBmb3IgKHZhciBrZXkgaW4gZmlyc3QpIHtcbiAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoZmlyc3QsIGtleSkpIHtcbiAgICAgICAgICBpZiAoc3RyaWN0RGVlcEVxdWFsKGZpcnN0W2tleV0sIHNlY29uZFtrZXldKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAga2V5c1NlZW5ba2V5XSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIE5vdyBjaGVjayB0aGF0IHRoZXJlIGFyZW4ndCBhbnkga2V5cyBpbiBzZWNvbmQgdGhhdCB3ZXJlbid0XG4gICAgICAvLyBpbiBmaXJzdC5cbiAgICAgIGZvciAodmFyIGtleTIgaW4gc2Vjb25kKSB7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNlY29uZCwga2V5MikpIHtcbiAgICAgICAgICBpZiAoa2V5c1NlZW5ba2V5Ml0gIT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmdW5jdGlvbiBpc0ZhbHNlKG9iaikge1xuICAgIC8vIEZyb20gdGhlIHNwZWM6XG4gICAgLy8gQSBmYWxzZSB2YWx1ZSBjb3JyZXNwb25kcyB0byB0aGUgZm9sbG93aW5nIHZhbHVlczpcbiAgICAvLyBFbXB0eSBsaXN0XG4gICAgLy8gRW1wdHkgb2JqZWN0XG4gICAgLy8gRW1wdHkgc3RyaW5nXG4gICAgLy8gRmFsc2UgYm9vbGVhblxuICAgIC8vIG51bGwgdmFsdWVcblxuICAgIC8vIEZpcnN0IGNoZWNrIHRoZSBzY2FsYXIgdmFsdWVzLlxuICAgIGlmIChvYmogPT09IFwiXCIgfHwgb2JqID09PSBmYWxzZSB8fCBvYmogPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KG9iaikgJiYgb2JqLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAvLyBDaGVjayBmb3IgYW4gZW1wdHkgYXJyYXkuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3Qob2JqKSkge1xuICAgICAgICAvLyBDaGVjayBmb3IgYW4gZW1wdHkgb2JqZWN0LlxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IGtleXMsIHRoZW5cbiAgICAgICAgICAgIC8vIHRoZSBvYmplY3QgaXMgbm90IGVtcHR5IHNvIHRoZSBvYmplY3RcbiAgICAgICAgICAgIC8vIGlzIG5vdCBmYWxzZS5cbiAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG9ialZhbHVlcyhvYmopIHtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgdmFyIHZhbHVlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFsdWVzLnB1c2gob2JqW2tleXNbaV1dKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfVxuXG4gIGZ1bmN0aW9uIG1lcmdlKGEsIGIpIHtcbiAgICAgIHZhciBtZXJnZWQgPSB7fTtcbiAgICAgIGZvciAodmFyIGtleSBpbiBhKSB7XG4gICAgICAgICAgbWVyZ2VkW2tleV0gPSBhW2tleV07XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkyIGluIGIpIHtcbiAgICAgICAgICBtZXJnZWRba2V5Ml0gPSBiW2tleTJdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1lcmdlZDtcbiAgfVxuXG4gIHZhciB0cmltTGVmdDtcbiAgaWYgKHR5cGVvZiBTdHJpbmcucHJvdG90eXBlLnRyaW1MZWZ0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0cmltTGVmdCA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgcmV0dXJuIHN0ci50cmltTGVmdCgpO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdHJpbUxlZnQgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIHJldHVybiBzdHIubWF0Y2goL15cXHMqKC4qKS8pWzFdO1xuICAgIH07XG4gIH1cblxuICAvLyBUeXBlIGNvbnN0YW50cyB1c2VkIHRvIGRlZmluZSBmdW5jdGlvbnMuXG4gIHZhciBUWVBFX05VTUJFUiA9IDA7XG4gIHZhciBUWVBFX0FOWSA9IDE7XG4gIHZhciBUWVBFX1NUUklORyA9IDI7XG4gIHZhciBUWVBFX0FSUkFZID0gMztcbiAgdmFyIFRZUEVfT0JKRUNUID0gNDtcbiAgdmFyIFRZUEVfQk9PTEVBTiA9IDU7XG4gIHZhciBUWVBFX0VYUFJFRiA9IDY7XG4gIHZhciBUWVBFX05VTEwgPSA3O1xuICB2YXIgVFlQRV9BUlJBWV9OVU1CRVIgPSA4O1xuICB2YXIgVFlQRV9BUlJBWV9TVFJJTkcgPSA5O1xuXG4gIHZhciBUT0tfRU9GID0gXCJFT0ZcIjtcbiAgdmFyIFRPS19VTlFVT1RFRElERU5USUZJRVIgPSBcIlVucXVvdGVkSWRlbnRpZmllclwiO1xuICB2YXIgVE9LX1FVT1RFRElERU5USUZJRVIgPSBcIlF1b3RlZElkZW50aWZpZXJcIjtcbiAgdmFyIFRPS19SQlJBQ0tFVCA9IFwiUmJyYWNrZXRcIjtcbiAgdmFyIFRPS19SUEFSRU4gPSBcIlJwYXJlblwiO1xuICB2YXIgVE9LX0NPTU1BID0gXCJDb21tYVwiO1xuICB2YXIgVE9LX0NPTE9OID0gXCJDb2xvblwiO1xuICB2YXIgVE9LX1JCUkFDRSA9IFwiUmJyYWNlXCI7XG4gIHZhciBUT0tfTlVNQkVSID0gXCJOdW1iZXJcIjtcbiAgdmFyIFRPS19DVVJSRU5UID0gXCJDdXJyZW50XCI7XG4gIHZhciBUT0tfRVhQUkVGID0gXCJFeHByZWZcIjtcbiAgdmFyIFRPS19QSVBFID0gXCJQaXBlXCI7XG4gIHZhciBUT0tfT1IgPSBcIk9yXCI7XG4gIHZhciBUT0tfQU5EID0gXCJBbmRcIjtcbiAgdmFyIFRPS19FUSA9IFwiRVFcIjtcbiAgdmFyIFRPS19HVCA9IFwiR1RcIjtcbiAgdmFyIFRPS19MVCA9IFwiTFRcIjtcbiAgdmFyIFRPS19HVEUgPSBcIkdURVwiO1xuICB2YXIgVE9LX0xURSA9IFwiTFRFXCI7XG4gIHZhciBUT0tfTkUgPSBcIk5FXCI7XG4gIHZhciBUT0tfRkxBVFRFTiA9IFwiRmxhdHRlblwiO1xuICB2YXIgVE9LX1NUQVIgPSBcIlN0YXJcIjtcbiAgdmFyIFRPS19GSUxURVIgPSBcIkZpbHRlclwiO1xuICB2YXIgVE9LX0RPVCA9IFwiRG90XCI7XG4gIHZhciBUT0tfTk9UID0gXCJOb3RcIjtcbiAgdmFyIFRPS19MQlJBQ0UgPSBcIkxicmFjZVwiO1xuICB2YXIgVE9LX0xCUkFDS0VUID0gXCJMYnJhY2tldFwiO1xuICB2YXIgVE9LX0xQQVJFTj0gXCJMcGFyZW5cIjtcbiAgdmFyIFRPS19MSVRFUkFMPSBcIkxpdGVyYWxcIjtcblxuICAvLyBUaGUgXCImXCIsIFwiW1wiLCBcIjxcIiwgXCI+XCIgdG9rZW5zXG4gIC8vIGFyZSBub3QgaW4gYmFzaWNUb2tlbiBiZWNhdXNlXG4gIC8vIHRoZXJlIGFyZSB0d28gdG9rZW4gdmFyaWFudHNcbiAgLy8gKFwiJiZcIiwgXCJbP1wiLCBcIjw9XCIsIFwiPj1cIikuICBUaGlzIGlzIHNwZWNpYWxseSBoYW5kbGVkXG4gIC8vIGJlbG93LlxuXG4gIHZhciBiYXNpY1Rva2VucyA9IHtcbiAgICBcIi5cIjogVE9LX0RPVCxcbiAgICBcIipcIjogVE9LX1NUQVIsXG4gICAgXCIsXCI6IFRPS19DT01NQSxcbiAgICBcIjpcIjogVE9LX0NPTE9OLFxuICAgIFwie1wiOiBUT0tfTEJSQUNFLFxuICAgIFwifVwiOiBUT0tfUkJSQUNFLFxuICAgIFwiXVwiOiBUT0tfUkJSQUNLRVQsXG4gICAgXCIoXCI6IFRPS19MUEFSRU4sXG4gICAgXCIpXCI6IFRPS19SUEFSRU4sXG4gICAgXCJAXCI6IFRPS19DVVJSRU5UXG4gIH07XG5cbiAgdmFyIG9wZXJhdG9yU3RhcnRUb2tlbiA9IHtcbiAgICAgIFwiPFwiOiB0cnVlLFxuICAgICAgXCI+XCI6IHRydWUsXG4gICAgICBcIj1cIjogdHJ1ZSxcbiAgICAgIFwiIVwiOiB0cnVlXG4gIH07XG5cbiAgdmFyIHNraXBDaGFycyA9IHtcbiAgICAgIFwiIFwiOiB0cnVlLFxuICAgICAgXCJcXHRcIjogdHJ1ZSxcbiAgICAgIFwiXFxuXCI6IHRydWVcbiAgfTtcblxuXG4gIGZ1bmN0aW9uIGlzQWxwaGEoY2gpIHtcbiAgICAgIHJldHVybiAoY2ggPj0gXCJhXCIgJiYgY2ggPD0gXCJ6XCIpIHx8XG4gICAgICAgICAgICAgKGNoID49IFwiQVwiICYmIGNoIDw9IFwiWlwiKSB8fFxuICAgICAgICAgICAgIGNoID09PSBcIl9cIjtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzTnVtKGNoKSB7XG4gICAgICByZXR1cm4gKGNoID49IFwiMFwiICYmIGNoIDw9IFwiOVwiKSB8fFxuICAgICAgICAgICAgIGNoID09PSBcIi1cIjtcbiAgfVxuICBmdW5jdGlvbiBpc0FscGhhTnVtKGNoKSB7XG4gICAgICByZXR1cm4gKGNoID49IFwiYVwiICYmIGNoIDw9IFwielwiKSB8fFxuICAgICAgICAgICAgIChjaCA+PSBcIkFcIiAmJiBjaCA8PSBcIlpcIikgfHxcbiAgICAgICAgICAgICAoY2ggPj0gXCIwXCIgJiYgY2ggPD0gXCI5XCIpIHx8XG4gICAgICAgICAgICAgY2ggPT09IFwiX1wiO1xuICB9XG5cbiAgZnVuY3Rpb24gTGV4ZXIoKSB7XG4gIH1cbiAgTGV4ZXIucHJvdG90eXBlID0ge1xuICAgICAgdG9rZW5pemU6IGZ1bmN0aW9uKHN0cmVhbSkge1xuICAgICAgICAgIHZhciB0b2tlbnMgPSBbXTtcbiAgICAgICAgICB0aGlzLl9jdXJyZW50ID0gMDtcbiAgICAgICAgICB2YXIgc3RhcnQ7XG4gICAgICAgICAgdmFyIGlkZW50aWZpZXI7XG4gICAgICAgICAgdmFyIHRva2VuO1xuICAgICAgICAgIHdoaWxlICh0aGlzLl9jdXJyZW50IDwgc3RyZWFtLmxlbmd0aCkge1xuICAgICAgICAgICAgICBpZiAoaXNBbHBoYShzdHJlYW1bdGhpcy5fY3VycmVudF0pKSB7XG4gICAgICAgICAgICAgICAgICBzdGFydCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICBpZGVudGlmaWVyID0gdGhpcy5fY29uc3VtZVVucXVvdGVkSWRlbnRpZmllcihzdHJlYW0pO1xuICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goe3R5cGU6IFRPS19VTlFVT1RFRElERU5USUZJRVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0fSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoYmFzaWNUb2tlbnNbc3RyZWFtW3RoaXMuX2N1cnJlbnRdXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh7dHlwZTogYmFzaWNUb2tlbnNbc3RyZWFtW3RoaXMuX2N1cnJlbnRdXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzdHJlYW1bdGhpcy5fY3VycmVudF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogdGhpcy5fY3VycmVudH0pO1xuICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzTnVtKHN0cmVhbVt0aGlzLl9jdXJyZW50XSkpIHtcbiAgICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5fY29uc3VtZU51bWJlcihzdHJlYW0pO1xuICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCJbXCIpIHtcbiAgICAgICAgICAgICAgICAgIC8vIE5vIG5lZWQgdG8gaW5jcmVtZW50IHRoaXMuX2N1cnJlbnQuICBUaGlzIGhhcHBlbnNcbiAgICAgICAgICAgICAgICAgIC8vIGluIF9jb25zdW1lTEJyYWNrZXRcbiAgICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5fY29uc3VtZUxCcmFja2V0KHN0cmVhbSk7XG4gICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcIlxcXCJcIikge1xuICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciA9IHRoaXMuX2NvbnN1bWVRdW90ZWRJZGVudGlmaWVyKHN0cmVhbSk7XG4gICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh7dHlwZTogVE9LX1FVT1RFRElERU5USUZJRVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0fSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcIidcIikge1xuICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciA9IHRoaXMuX2NvbnN1bWVSYXdTdHJpbmdMaXRlcmFsKHN0cmVhbSk7XG4gICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh7dHlwZTogVE9LX0xJVEVSQUwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0fSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcImBcIikge1xuICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgdmFyIGxpdGVyYWwgPSB0aGlzLl9jb25zdW1lTGl0ZXJhbChzdHJlYW0pO1xuICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goe3R5cGU6IFRPS19MSVRFUkFMLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBsaXRlcmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydH0pO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdG9yU3RhcnRUb2tlbltzdHJlYW1bdGhpcy5fY3VycmVudF1dICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHRoaXMuX2NvbnN1bWVPcGVyYXRvcihzdHJlYW0pKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChza2lwQ2hhcnNbc3RyZWFtW3RoaXMuX2N1cnJlbnRdXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hpdGVzcGFjZS5cbiAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwiJlwiKSB7XG4gICAgICAgICAgICAgICAgICBzdGFydCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgICAgICBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcIiZcIikge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh7dHlwZTogVE9LX0FORCwgdmFsdWU6IFwiJiZcIiwgc3RhcnQ6IHN0YXJ0fSk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHt0eXBlOiBUT0tfRVhQUkVGLCB2YWx1ZTogXCImXCIsIHN0YXJ0OiBzdGFydH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCJ8XCIpIHtcbiAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICAgICAgICAgIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwifFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHt0eXBlOiBUT0tfT1IsIHZhbHVlOiBcInx8XCIsIHN0YXJ0OiBzdGFydH0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMucHVzaCh7dHlwZTogVE9LX1BJUEUsIHZhbHVlOiBcInxcIiwgc3RhcnQ6IHN0YXJ0fSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoXCJVbmtub3duIGNoYXJhY3RlcjpcIiArIHN0cmVhbVt0aGlzLl9jdXJyZW50XSk7XG4gICAgICAgICAgICAgICAgICBlcnJvci5uYW1lID0gXCJMZXhlckVycm9yXCI7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdG9rZW5zO1xuICAgICAgfSxcblxuICAgICAgX2NvbnN1bWVVbnF1b3RlZElkZW50aWZpZXI6IGZ1bmN0aW9uKHN0cmVhbSkge1xuICAgICAgICAgIHZhciBzdGFydCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgIHdoaWxlICh0aGlzLl9jdXJyZW50IDwgc3RyZWFtLmxlbmd0aCAmJiBpc0FscGhhTnVtKHN0cmVhbVt0aGlzLl9jdXJyZW50XSkpIHtcbiAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3RyZWFtLnNsaWNlKHN0YXJ0LCB0aGlzLl9jdXJyZW50KTtcbiAgICAgIH0sXG5cbiAgICAgIF9jb25zdW1lUXVvdGVkSWRlbnRpZmllcjogZnVuY3Rpb24oc3RyZWFtKSB7XG4gICAgICAgICAgdmFyIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgdmFyIG1heExlbmd0aCA9IHN0cmVhbS5sZW5ndGg7XG4gICAgICAgICAgd2hpbGUgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSAhPT0gXCJcXFwiXCIgJiYgdGhpcy5fY3VycmVudCA8IG1heExlbmd0aCkge1xuICAgICAgICAgICAgICAvLyBZb3UgY2FuIGVzY2FwZSBhIGRvdWJsZSBxdW90ZSBhbmQgeW91IGNhbiBlc2NhcGUgYW4gZXNjYXBlLlxuICAgICAgICAgICAgICB2YXIgY3VycmVudCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1bY3VycmVudF0gPT09IFwiXFxcXFwiICYmIChzdHJlYW1bY3VycmVudCArIDFdID09PSBcIlxcXFxcIiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1bY3VycmVudCArIDFdID09PSBcIlxcXCJcIikpIHtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQgKz0gMjtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQrKztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50ID0gY3VycmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHN0cmVhbS5zbGljZShzdGFydCwgdGhpcy5fY3VycmVudCkpO1xuICAgICAgfSxcblxuICAgICAgX2NvbnN1bWVSYXdTdHJpbmdMaXRlcmFsOiBmdW5jdGlvbihzdHJlYW0pIHtcbiAgICAgICAgICB2YXIgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICB2YXIgbWF4TGVuZ3RoID0gc3RyZWFtLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdICE9PSBcIidcIiAmJiB0aGlzLl9jdXJyZW50IDwgbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIFlvdSBjYW4gZXNjYXBlIGEgc2luZ2xlIHF1b3RlIGFuZCB5b3UgY2FuIGVzY2FwZSBhbiBlc2NhcGUuXG4gICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICAgICAgaWYgKHN0cmVhbVtjdXJyZW50XSA9PT0gXCJcXFxcXCIgJiYgKHN0cmVhbVtjdXJyZW50ICsgMV0gPT09IFwiXFxcXFwiIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbVtjdXJyZW50ICsgMV0gPT09IFwiJ1wiKSkge1xuICAgICAgICAgICAgICAgICAgY3VycmVudCArPSAyO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY3VycmVudCsrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQgPSBjdXJyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgdmFyIGxpdGVyYWwgPSBzdHJlYW0uc2xpY2Uoc3RhcnQgKyAxLCB0aGlzLl9jdXJyZW50IC0gMSk7XG4gICAgICAgICAgcmV0dXJuIGxpdGVyYWwucmVwbGFjZShcIlxcXFwnXCIsIFwiJ1wiKTtcbiAgICAgIH0sXG5cbiAgICAgIF9jb25zdW1lTnVtYmVyOiBmdW5jdGlvbihzdHJlYW0pIHtcbiAgICAgICAgICB2YXIgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICB2YXIgbWF4TGVuZ3RoID0gc3RyZWFtLmxlbmd0aDtcbiAgICAgICAgICB3aGlsZSAoaXNOdW0oc3RyZWFtW3RoaXMuX2N1cnJlbnRdKSAmJiB0aGlzLl9jdXJyZW50IDwgbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIHZhbHVlID0gcGFyc2VJbnQoc3RyZWFtLnNsaWNlKHN0YXJ0LCB0aGlzLl9jdXJyZW50KSk7XG4gICAgICAgICAgcmV0dXJuIHt0eXBlOiBUT0tfTlVNQkVSLCB2YWx1ZTogdmFsdWUsIHN0YXJ0OiBzdGFydH07XG4gICAgICB9LFxuXG4gICAgICBfY29uc3VtZUxCcmFja2V0OiBmdW5jdGlvbihzdHJlYW0pIHtcbiAgICAgICAgICB2YXIgc3RhcnQgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICBpZiAoc3RyZWFtW3RoaXMuX2N1cnJlbnRdID09PSBcIj9cIikge1xuICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgIHJldHVybiB7dHlwZTogVE9LX0ZJTFRFUiwgdmFsdWU6IFwiWz9cIiwgc3RhcnQ6IHN0YXJ0fTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCJdXCIpIHtcbiAgICAgICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19GTEFUVEVOLCB2YWx1ZTogXCJbXVwiLCBzdGFydDogc3RhcnR9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB7dHlwZTogVE9LX0xCUkFDS0VULCB2YWx1ZTogXCJbXCIsIHN0YXJ0OiBzdGFydH07XG4gICAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgX2NvbnN1bWVPcGVyYXRvcjogZnVuY3Rpb24oc3RyZWFtKSB7XG4gICAgICAgICAgdmFyIHN0YXJ0ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICB2YXIgc3RhcnRpbmdDaGFyID0gc3RyZWFtW3N0YXJ0XTtcbiAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgaWYgKHN0YXJ0aW5nQ2hhciA9PT0gXCIhXCIpIHtcbiAgICAgICAgICAgICAgaWYgKHN0cmVhbVt0aGlzLl9jdXJyZW50XSA9PT0gXCI9XCIpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZTogVE9LX05FLCB2YWx1ZTogXCIhPVwiLCBzdGFydDogc3RhcnR9O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZTogVE9LX05PVCwgdmFsdWU6IFwiIVwiLCBzdGFydDogc3RhcnR9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChzdGFydGluZ0NoYXIgPT09IFwiPFwiKSB7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwiPVwiKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19MVEUsIHZhbHVlOiBcIjw9XCIsIHN0YXJ0OiBzdGFydH07XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19MVCwgdmFsdWU6IFwiPFwiLCBzdGFydDogc3RhcnR9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChzdGFydGluZ0NoYXIgPT09IFwiPlwiKSB7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwiPVwiKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19HVEUsIHZhbHVlOiBcIj49XCIsIHN0YXJ0OiBzdGFydH07XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19HVCwgdmFsdWU6IFwiPlwiLCBzdGFydDogc3RhcnR9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChzdGFydGluZ0NoYXIgPT09IFwiPVwiKSB7XG4gICAgICAgICAgICAgIGlmIChzdHJlYW1bdGhpcy5fY3VycmVudF0gPT09IFwiPVwiKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Kys7XG4gICAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IFRPS19FUSwgdmFsdWU6IFwiPT1cIiwgc3RhcnQ6IHN0YXJ0fTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIF9jb25zdW1lTGl0ZXJhbDogZnVuY3Rpb24oc3RyZWFtKSB7XG4gICAgICAgICAgdGhpcy5fY3VycmVudCsrO1xuICAgICAgICAgIHZhciBzdGFydCA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgICAgdmFyIG1heExlbmd0aCA9IHN0cmVhbS5sZW5ndGg7XG4gICAgICAgICAgdmFyIGxpdGVyYWw7XG4gICAgICAgICAgd2hpbGUoc3RyZWFtW3RoaXMuX2N1cnJlbnRdICE9PSBcImBcIiAmJiB0aGlzLl9jdXJyZW50IDwgbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIFlvdSBjYW4gZXNjYXBlIGEgbGl0ZXJhbCBjaGFyIG9yIHlvdSBjYW4gZXNjYXBlIHRoZSBlc2NhcGUuXG4gICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgICAgICAgaWYgKHN0cmVhbVtjdXJyZW50XSA9PT0gXCJcXFxcXCIgJiYgKHN0cmVhbVtjdXJyZW50ICsgMV0gPT09IFwiXFxcXFwiIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbVtjdXJyZW50ICsgMV0gPT09IFwiYFwiKSkge1xuICAgICAgICAgICAgICAgICAgY3VycmVudCArPSAyO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY3VycmVudCsrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQgPSBjdXJyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbGl0ZXJhbFN0cmluZyA9IHRyaW1MZWZ0KHN0cmVhbS5zbGljZShzdGFydCwgdGhpcy5fY3VycmVudCkpO1xuICAgICAgICAgIGxpdGVyYWxTdHJpbmcgPSBsaXRlcmFsU3RyaW5nLnJlcGxhY2UoXCJcXFxcYFwiLCBcImBcIik7XG4gICAgICAgICAgaWYgKHRoaXMuX2xvb2tzTGlrZUpTT04obGl0ZXJhbFN0cmluZykpIHtcbiAgICAgICAgICAgICAgbGl0ZXJhbCA9IEpTT04ucGFyc2UobGl0ZXJhbFN0cmluZyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gVHJ5IHRvIEpTT04gcGFyc2UgaXQgYXMgXCI8bGl0ZXJhbD5cIlxuICAgICAgICAgICAgICBsaXRlcmFsID0gSlNPTi5wYXJzZShcIlxcXCJcIiArIGxpdGVyYWxTdHJpbmcgKyBcIlxcXCJcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vICsxIGdldHMgdXMgdG8gdGhlIGVuZGluZyBcImBcIiwgKzEgdG8gbW92ZSBvbiB0byB0aGUgbmV4dCBjaGFyLlxuICAgICAgICAgIHRoaXMuX2N1cnJlbnQrKztcbiAgICAgICAgICByZXR1cm4gbGl0ZXJhbDtcbiAgICAgIH0sXG5cbiAgICAgIF9sb29rc0xpa2VKU09OOiBmdW5jdGlvbihsaXRlcmFsU3RyaW5nKSB7XG4gICAgICAgICAgdmFyIHN0YXJ0aW5nQ2hhcnMgPSBcIlt7XFxcIlwiO1xuICAgICAgICAgIHZhciBqc29uTGl0ZXJhbHMgPSBbXCJ0cnVlXCIsIFwiZmFsc2VcIiwgXCJudWxsXCJdO1xuICAgICAgICAgIHZhciBudW1iZXJMb29raW5nID0gXCItMDEyMzQ1Njc4OVwiO1xuXG4gICAgICAgICAgaWYgKGxpdGVyYWxTdHJpbmcgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRpbmdDaGFycy5pbmRleE9mKGxpdGVyYWxTdHJpbmdbMF0pID49IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChqc29uTGl0ZXJhbHMuaW5kZXhPZihsaXRlcmFsU3RyaW5nKSA+PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyTG9va2luZy5pbmRleE9mKGxpdGVyYWxTdHJpbmdbMF0pID49IDApIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIEpTT04ucGFyc2UobGl0ZXJhbFN0cmluZyk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gIH07XG5cbiAgICAgIHZhciBiaW5kaW5nUG93ZXIgPSB7fTtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfRU9GXSA9IDA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX1VOUVVPVEVESURFTlRJRklFUl0gPSAwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19RVU9URURJREVOVElGSUVSXSA9IDA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX1JCUkFDS0VUXSA9IDA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX1JQQVJFTl0gPSAwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19DT01NQV0gPSAwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19SQlJBQ0VdID0gMDtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfTlVNQkVSXSA9IDA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0NVUlJFTlRdID0gMDtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfRVhQUkVGXSA9IDA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX1BJUEVdID0gMTtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfT1JdID0gMjtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfQU5EXSA9IDM7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0VRXSA9IDU7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0dUXSA9IDU7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0xUXSA9IDU7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0dURV0gPSA1O1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19MVEVdID0gNTtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfTkVdID0gNTtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfRkxBVFRFTl0gPSA5O1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19TVEFSXSA9IDIwO1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19GSUxURVJdID0gMjE7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0RPVF0gPSA0MDtcbiAgICAgIGJpbmRpbmdQb3dlcltUT0tfTk9UXSA9IDQ1O1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19MQlJBQ0VdID0gNTA7XG4gICAgICBiaW5kaW5nUG93ZXJbVE9LX0xCUkFDS0VUXSA9IDU1O1xuICAgICAgYmluZGluZ1Bvd2VyW1RPS19MUEFSRU5dID0gNjA7XG5cbiAgZnVuY3Rpb24gUGFyc2VyKCkge1xuICB9XG5cbiAgUGFyc2VyLnByb3RvdHlwZSA9IHtcbiAgICAgIHBhcnNlOiBmdW5jdGlvbihleHByZXNzaW9uKSB7XG4gICAgICAgICAgdGhpcy5fbG9hZFRva2VucyhleHByZXNzaW9uKTtcbiAgICAgICAgICB0aGlzLmluZGV4ID0gMDtcbiAgICAgICAgICB2YXIgYXN0ID0gdGhpcy5leHByZXNzaW9uKDApO1xuICAgICAgICAgIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgIT09IFRPS19FT0YpIHtcbiAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLl9sb29rYWhlYWRUb2tlbigwKTtcbiAgICAgICAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJVbmV4cGVjdGVkIHRva2VuIHR5cGU6IFwiICsgdC50eXBlICsgXCIsIHZhbHVlOiBcIiArIHQudmFsdWUpO1xuICAgICAgICAgICAgICBlcnJvci5uYW1lID0gXCJQYXJzZXJFcnJvclwiO1xuICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFzdDtcbiAgICAgIH0sXG5cbiAgICAgIF9sb2FkVG9rZW5zOiBmdW5jdGlvbihleHByZXNzaW9uKSB7XG4gICAgICAgICAgdmFyIGxleGVyID0gbmV3IExleGVyKCk7XG4gICAgICAgICAgdmFyIHRva2VucyA9IGxleGVyLnRva2VuaXplKGV4cHJlc3Npb24pO1xuICAgICAgICAgIHRva2Vucy5wdXNoKHt0eXBlOiBUT0tfRU9GLCB2YWx1ZTogXCJcIiwgc3RhcnQ6IGV4cHJlc3Npb24ubGVuZ3RofSk7XG4gICAgICAgICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgICB9LFxuXG4gICAgICBleHByZXNzaW9uOiBmdW5jdGlvbihyYnApIHtcbiAgICAgICAgICB2YXIgbGVmdFRva2VuID0gdGhpcy5fbG9va2FoZWFkVG9rZW4oMCk7XG4gICAgICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgICAgIHZhciBsZWZ0ID0gdGhpcy5udWQobGVmdFRva2VuKTtcbiAgICAgICAgICB2YXIgY3VycmVudFRva2VuID0gdGhpcy5fbG9va2FoZWFkKDApO1xuICAgICAgICAgIHdoaWxlIChyYnAgPCBiaW5kaW5nUG93ZXJbY3VycmVudFRva2VuXSkge1xuICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgICAgIGxlZnQgPSB0aGlzLmxlZChjdXJyZW50VG9rZW4sIGxlZnQpO1xuICAgICAgICAgICAgICBjdXJyZW50VG9rZW4gPSB0aGlzLl9sb29rYWhlYWQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBsZWZ0O1xuICAgICAgfSxcblxuICAgICAgX2xvb2thaGVhZDogZnVuY3Rpb24obnVtYmVyKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zW3RoaXMuaW5kZXggKyBudW1iZXJdLnR5cGU7XG4gICAgICB9LFxuXG4gICAgICBfbG9va2FoZWFkVG9rZW46IGZ1bmN0aW9uKG51bWJlcikge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRva2Vuc1t0aGlzLmluZGV4ICsgbnVtYmVyXTtcbiAgICAgIH0sXG5cbiAgICAgIF9hZHZhbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICB0aGlzLmluZGV4Kys7XG4gICAgICB9LFxuXG4gICAgICBudWQ6IGZ1bmN0aW9uKHRva2VuKSB7XG4gICAgICAgIHZhciBsZWZ0O1xuICAgICAgICB2YXIgcmlnaHQ7XG4gICAgICAgIHZhciBleHByZXNzaW9uO1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIFRPS19MSVRFUkFMOlxuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIkxpdGVyYWxcIiwgdmFsdWU6IHRva2VuLnZhbHVlfTtcbiAgICAgICAgICBjYXNlIFRPS19VTlFVT1RFRElERU5USUZJRVI6XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiRmllbGRcIiwgbmFtZTogdG9rZW4udmFsdWV9O1xuICAgICAgICAgIGNhc2UgVE9LX1FVT1RFRElERU5USUZJRVI6XG4gICAgICAgICAgICB2YXIgbm9kZSA9IHt0eXBlOiBcIkZpZWxkXCIsIG5hbWU6IHRva2VuLnZhbHVlfTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgPT09IFRPS19MUEFSRU4pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJRdW90ZWQgaWRlbnRpZmllciBub3QgYWxsb3dlZCBmb3IgZnVuY3Rpb24gbmFtZXMuXCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgVE9LX05PVDpcbiAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5leHByZXNzaW9uKGJpbmRpbmdQb3dlci5Ob3QpO1xuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIk5vdEV4cHJlc3Npb25cIiwgY2hpbGRyZW46IFtyaWdodF19O1xuICAgICAgICAgIGNhc2UgVE9LX1NUQVI6XG4gICAgICAgICAgICBsZWZ0ID0ge3R5cGU6IFwiSWRlbnRpdHlcIn07XG4gICAgICAgICAgICByaWdodCA9IG51bGw7XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfUkJSQUNLRVQpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaW4gYSBtdWx0aXNlbGVjdCxcbiAgICAgICAgICAgICAgICAvLyBbYSwgYiwgKl1cbiAgICAgICAgICAgICAgICByaWdodCA9IHt0eXBlOiBcIklkZW50aXR5XCJ9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IHRoaXMuX3BhcnNlUHJvamVjdGlvblJIUyhiaW5kaW5nUG93ZXIuU3Rhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiVmFsdWVQcm9qZWN0aW9uXCIsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHRdfTtcbiAgICAgICAgICBjYXNlIFRPS19GSUxURVI6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sZWQodG9rZW4udHlwZSwge3R5cGU6IFwiSWRlbnRpdHlcIn0pO1xuICAgICAgICAgIGNhc2UgVE9LX0xCUkFDRTpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXJzZU11bHRpc2VsZWN0SGFzaCgpO1xuICAgICAgICAgIGNhc2UgVE9LX0ZMQVRURU46XG4gICAgICAgICAgICBsZWZ0ID0ge3R5cGU6IFRPS19GTEFUVEVOLCBjaGlsZHJlbjogW3t0eXBlOiBcIklkZW50aXR5XCJ9XX07XG4gICAgICAgICAgICByaWdodCA9IHRoaXMuX3BhcnNlUHJvamVjdGlvblJIUyhiaW5kaW5nUG93ZXIuRmxhdHRlbik7XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiUHJvamVjdGlvblwiLCBjaGlsZHJlbjogW2xlZnQsIHJpZ2h0XX07XG4gICAgICAgICAgY2FzZSBUT0tfTEJSQUNLRVQ6XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfTlVNQkVSIHx8IHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0NPTE9OKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9wYXJzZUluZGV4RXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcm9qZWN0SWZTbGljZSh7dHlwZTogXCJJZGVudGl0eVwifSwgcmlnaHQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgPT09IFRPS19TVEFSICYmXG4gICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvb2thaGVhZCgxKSA9PT0gVE9LX1JCUkFDS0VUKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgICAgICAgICAgICByaWdodCA9IHRoaXMuX3BhcnNlUHJvamVjdGlvblJIUyhiaW5kaW5nUG93ZXIuU3Rhcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIlByb2plY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbe3R5cGU6IFwiSWRlbnRpdHlcIn0sIHJpZ2h0XX07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXJzZU11bHRpc2VsZWN0TGlzdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBUT0tfQ1VSUkVOVDpcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogVE9LX0NVUlJFTlR9O1xuICAgICAgICAgIGNhc2UgVE9LX0VYUFJFRjpcbiAgICAgICAgICAgIGV4cHJlc3Npb24gPSB0aGlzLmV4cHJlc3Npb24oYmluZGluZ1Bvd2VyLkV4cHJlZik7XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiRXhwcmVzc2lvblJlZmVyZW5jZVwiLCBjaGlsZHJlbjogW2V4cHJlc3Npb25dfTtcbiAgICAgICAgICBjYXNlIFRPS19MUEFSRU46XG4gICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICAgICAgd2hpbGUgKHRoaXMuX2xvb2thaGVhZCgwKSAhPT0gVE9LX1JQQVJFTikge1xuICAgICAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfQ1VSUkVOVCkge1xuICAgICAgICAgICAgICAgIGV4cHJlc3Npb24gPSB7dHlwZTogVE9LX0NVUlJFTlR9O1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uID0gdGhpcy5leHByZXNzaW9uKDApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFyZ3MucHVzaChleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX21hdGNoKFRPS19SUEFSRU4pO1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3NbMF07XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yVG9rZW4odG9rZW4pO1xuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICBsZWQ6IGZ1bmN0aW9uKHRva2VuTmFtZSwgbGVmdCkge1xuICAgICAgICB2YXIgcmlnaHQ7XG4gICAgICAgIHN3aXRjaCh0b2tlbk5hbWUpIHtcbiAgICAgICAgICBjYXNlIFRPS19ET1Q6XG4gICAgICAgICAgICB2YXIgcmJwID0gYmluZGluZ1Bvd2VyLkRvdDtcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgIT09IFRPS19TVEFSKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLl9wYXJzZURvdFJIUyhyYnApO1xuICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJTdWJleHByZXNzaW9uXCIsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHRdfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gQ3JlYXRpbmcgYSBwcm9qZWN0aW9uLlxuICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgICAgICAgICAgICByaWdodCA9IHRoaXMuX3BhcnNlUHJvamVjdGlvblJIUyhyYnApO1xuICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJWYWx1ZVByb2plY3Rpb25cIiwgY2hpbGRyZW46IFtsZWZ0LCByaWdodF19O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBUT0tfUElQRTpcbiAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5leHByZXNzaW9uKGJpbmRpbmdQb3dlci5QaXBlKTtcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogVE9LX1BJUEUsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHRdfTtcbiAgICAgICAgICBjYXNlIFRPS19PUjpcbiAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5leHByZXNzaW9uKGJpbmRpbmdQb3dlci5Pcik7XG4gICAgICAgICAgICByZXR1cm4ge3R5cGU6IFwiT3JFeHByZXNzaW9uXCIsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHRdfTtcbiAgICAgICAgICBjYXNlIFRPS19BTkQ6XG4gICAgICAgICAgICByaWdodCA9IHRoaXMuZXhwcmVzc2lvbihiaW5kaW5nUG93ZXIuQW5kKTtcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJBbmRFeHByZXNzaW9uXCIsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHRdfTtcbiAgICAgICAgICBjYXNlIFRPS19MUEFSRU46XG4gICAgICAgICAgICB2YXIgbmFtZSA9IGxlZnQubmFtZTtcbiAgICAgICAgICAgIHZhciBhcmdzID0gW107XG4gICAgICAgICAgICB2YXIgZXhwcmVzc2lvbiwgbm9kZTtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLl9sb29rYWhlYWQoMCkgIT09IFRPS19SUEFSRU4pIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0NVUlJFTlQpIHtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9uID0ge3R5cGU6IFRPS19DVVJSRU5UfTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbiA9IHRoaXMuZXhwcmVzc2lvbigwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfQ09NTUEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfQ09NTUEpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFyZ3MucHVzaChleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX21hdGNoKFRPS19SUEFSRU4pO1xuICAgICAgICAgICAgbm9kZSA9IHt0eXBlOiBcIkZ1bmN0aW9uXCIsIG5hbWU6IG5hbWUsIGNoaWxkcmVuOiBhcmdzfTtcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICAgIGNhc2UgVE9LX0ZJTFRFUjpcbiAgICAgICAgICAgIHZhciBjb25kaXRpb24gPSB0aGlzLmV4cHJlc3Npb24oMCk7XG4gICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfUkJSQUNLRVQpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0ZMQVRURU4pIHtcbiAgICAgICAgICAgICAgcmlnaHQgPSB7dHlwZTogXCJJZGVudGl0eVwifTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5fcGFyc2VQcm9qZWN0aW9uUkhTKGJpbmRpbmdQb3dlci5GaWx0ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIkZpbHRlclByb2plY3Rpb25cIiwgY2hpbGRyZW46IFtsZWZ0LCByaWdodCwgY29uZGl0aW9uXX07XG4gICAgICAgICAgY2FzZSBUT0tfRkxBVFRFTjpcbiAgICAgICAgICAgIHZhciBsZWZ0Tm9kZSA9IHt0eXBlOiBUT0tfRkxBVFRFTiwgY2hpbGRyZW46IFtsZWZ0XX07XG4gICAgICAgICAgICB2YXIgcmlnaHROb2RlID0gdGhpcy5fcGFyc2VQcm9qZWN0aW9uUkhTKGJpbmRpbmdQb3dlci5GbGF0dGVuKTtcbiAgICAgICAgICAgIHJldHVybiB7dHlwZTogXCJQcm9qZWN0aW9uXCIsIGNoaWxkcmVuOiBbbGVmdE5vZGUsIHJpZ2h0Tm9kZV19O1xuICAgICAgICAgIGNhc2UgVE9LX0VROlxuICAgICAgICAgIGNhc2UgVE9LX05FOlxuICAgICAgICAgIGNhc2UgVE9LX0dUOlxuICAgICAgICAgIGNhc2UgVE9LX0dURTpcbiAgICAgICAgICBjYXNlIFRPS19MVDpcbiAgICAgICAgICBjYXNlIFRPS19MVEU6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VDb21wYXJhdG9yKGxlZnQsIHRva2VuTmFtZSk7XG4gICAgICAgICAgY2FzZSBUT0tfTEJSQUNLRVQ6XG4gICAgICAgICAgICB2YXIgdG9rZW4gPSB0aGlzLl9sb29rYWhlYWRUb2tlbigwKTtcbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUT0tfTlVNQkVSIHx8IHRva2VuLnR5cGUgPT09IFRPS19DT0xPTikge1xuICAgICAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5fcGFyc2VJbmRleEV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvamVjdElmU2xpY2UobGVmdCwgcmlnaHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfU1RBUik7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX1JCUkFDS0VUKTtcbiAgICAgICAgICAgICAgICByaWdodCA9IHRoaXMuX3BhcnNlUHJvamVjdGlvblJIUyhiaW5kaW5nUG93ZXIuU3Rhcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBcIlByb2plY3Rpb25cIiwgY2hpbGRyZW46IFtsZWZ0LCByaWdodF19O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yVG9rZW4odGhpcy5fbG9va2FoZWFkVG9rZW4oMCkpO1xuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICBfbWF0Y2g6IGZ1bmN0aW9uKHRva2VuVHlwZSkge1xuICAgICAgICAgIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgPT09IHRva2VuVHlwZSkge1xuICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIHQgPSB0aGlzLl9sb29rYWhlYWRUb2tlbigwKTtcbiAgICAgICAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKFwiRXhwZWN0ZWQgXCIgKyB0b2tlblR5cGUgKyBcIiwgZ290OiBcIiArIHQudHlwZSk7XG4gICAgICAgICAgICAgIGVycm9yLm5hbWUgPSBcIlBhcnNlckVycm9yXCI7XG4gICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIF9lcnJvclRva2VuOiBmdW5jdGlvbih0b2tlbikge1xuICAgICAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcihcIkludmFsaWQgdG9rZW4gKFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udHlwZSArIFwiKTogXFxcIlwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udmFsdWUgKyBcIlxcXCJcIik7XG4gICAgICAgICAgZXJyb3IubmFtZSA9IFwiUGFyc2VyRXJyb3JcIjtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0sXG5cblxuICAgICAgX3BhcnNlSW5kZXhFeHByZXNzaW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfQ09MT04gfHwgdGhpcy5fbG9va2FoZWFkKDEpID09PSBUT0tfQ09MT04pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlU2xpY2VFeHByZXNzaW9uKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIG5vZGUgPSB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcIkluZGV4XCIsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5fbG9va2FoZWFkVG9rZW4oMCkudmFsdWV9O1xuICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgICAgIHRoaXMuX21hdGNoKFRPS19SQlJBQ0tFVCk7XG4gICAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIF9wcm9qZWN0SWZTbGljZTogZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgICAgICAgICB2YXIgaW5kZXhFeHByID0ge3R5cGU6IFwiSW5kZXhFeHByZXNzaW9uXCIsIGNoaWxkcmVuOiBbbGVmdCwgcmlnaHRdfTtcbiAgICAgICAgICBpZiAocmlnaHQudHlwZSA9PT0gXCJTbGljZVwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBcIlByb2plY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbaW5kZXhFeHByLCB0aGlzLl9wYXJzZVByb2plY3Rpb25SSFMoYmluZGluZ1Bvd2VyLlN0YXIpXVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBpbmRleEV4cHI7XG4gICAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgX3BhcnNlU2xpY2VFeHByZXNzaW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAvLyBbc3RhcnQ6ZW5kOnN0ZXBdIHdoZXJlIGVhY2ggcGFydCBpcyBvcHRpb25hbCwgYXMgd2VsbCBhcyB0aGUgbGFzdFxuICAgICAgICAgIC8vIGNvbG9uLlxuICAgICAgICAgIHZhciBwYXJ0cyA9IFtudWxsLCBudWxsLCBudWxsXTtcbiAgICAgICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgICAgIHZhciBjdXJyZW50VG9rZW4gPSB0aGlzLl9sb29rYWhlYWQoMCk7XG4gICAgICAgICAgd2hpbGUgKGN1cnJlbnRUb2tlbiAhPT0gVE9LX1JCUkFDS0VUICYmIGluZGV4IDwgMykge1xuICAgICAgICAgICAgICBpZiAoY3VycmVudFRva2VuID09PSBUT0tfQ09MT04pIHtcbiAgICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFRva2VuID09PSBUT0tfTlVNQkVSKSB7XG4gICAgICAgICAgICAgICAgICBwYXJ0c1tpbmRleF0gPSB0aGlzLl9sb29rYWhlYWRUb2tlbigwKS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcy5fbG9va2FoZWFkKDApO1xuICAgICAgICAgICAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKFwiU3ludGF4IGVycm9yLCB1bmV4cGVjdGVkIHRva2VuOiBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC52YWx1ZSArIFwiKFwiICsgdC50eXBlICsgXCIpXCIpO1xuICAgICAgICAgICAgICAgICAgZXJyb3IubmFtZSA9IFwiUGFyc2VyZXJyb3JcIjtcbiAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGN1cnJlbnRUb2tlbiA9IHRoaXMuX2xvb2thaGVhZCgwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX1JCUkFDS0VUKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiBcIlNsaWNlXCIsXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBwYXJ0c1xuICAgICAgICAgIH07XG4gICAgICB9LFxuXG4gICAgICBfcGFyc2VDb21wYXJhdG9yOiBmdW5jdGlvbihsZWZ0LCBjb21wYXJhdG9yKSB7XG4gICAgICAgIHZhciByaWdodCA9IHRoaXMuZXhwcmVzc2lvbihiaW5kaW5nUG93ZXJbY29tcGFyYXRvcl0pO1xuICAgICAgICByZXR1cm4ge3R5cGU6IFwiQ29tcGFyYXRvclwiLCBuYW1lOiBjb21wYXJhdG9yLCBjaGlsZHJlbjogW2xlZnQsIHJpZ2h0XX07XG4gICAgICB9LFxuXG4gICAgICBfcGFyc2VEb3RSSFM6IGZ1bmN0aW9uKHJicCkge1xuICAgICAgICAgIHZhciBsb29rYWhlYWQgPSB0aGlzLl9sb29rYWhlYWQoMCk7XG4gICAgICAgICAgdmFyIGV4cHJUb2tlbnMgPSBbVE9LX1VOUVVPVEVESURFTlRJRklFUiwgVE9LX1FVT1RFRElERU5USUZJRVIsIFRPS19TVEFSXTtcbiAgICAgICAgICBpZiAoZXhwclRva2Vucy5pbmRleE9mKGxvb2thaGVhZCkgPj0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uKHJicCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChsb29rYWhlYWQgPT09IFRPS19MQlJBQ0tFVCkge1xuICAgICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfTEJSQUNLRVQpO1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VNdWx0aXNlbGVjdExpc3QoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGxvb2thaGVhZCA9PT0gVE9LX0xCUkFDRSkge1xuICAgICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfTEJSQUNFKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlTXVsdGlzZWxlY3RIYXNoKCk7XG4gICAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgX3BhcnNlUHJvamVjdGlvblJIUzogZnVuY3Rpb24ocmJwKSB7XG4gICAgICAgICAgdmFyIHJpZ2h0O1xuICAgICAgICAgIGlmIChiaW5kaW5nUG93ZXJbdGhpcy5fbG9va2FoZWFkKDApXSA8IDEwKSB7XG4gICAgICAgICAgICAgIHJpZ2h0ID0ge3R5cGU6IFwiSWRlbnRpdHlcIn07XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgPT09IFRPS19MQlJBQ0tFVCkge1xuICAgICAgICAgICAgICByaWdodCA9IHRoaXMuZXhwcmVzc2lvbihyYnApO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfRklMVEVSKSB7XG4gICAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5leHByZXNzaW9uKHJicCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9sb29rYWhlYWQoMCkgPT09IFRPS19ET1QpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbWF0Y2goVE9LX0RPVCk7XG4gICAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy5fcGFyc2VEb3RSSFMocmJwKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgdCA9IHRoaXMuX2xvb2thaGVhZFRva2VuKDApO1xuICAgICAgICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoXCJTeXRhbnggZXJyb3IsIHVuZXhwZWN0ZWQgdG9rZW46IFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQudmFsdWUgKyBcIihcIiArIHQudHlwZSArIFwiKVwiKTtcbiAgICAgICAgICAgICAgZXJyb3IubmFtZSA9IFwiUGFyc2VyRXJyb3JcIjtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByaWdodDtcbiAgICAgIH0sXG5cbiAgICAgIF9wYXJzZU11bHRpc2VsZWN0TGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIGV4cHJlc3Npb25zID0gW107XG4gICAgICAgICAgd2hpbGUgKHRoaXMuX2xvb2thaGVhZCgwKSAhPT0gVE9LX1JCUkFDS0VUKSB7XG4gICAgICAgICAgICAgIHZhciBleHByZXNzaW9uID0gdGhpcy5leHByZXNzaW9uKDApO1xuICAgICAgICAgICAgICBleHByZXNzaW9ucy5wdXNoKGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfQ09NTUEpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX21hdGNoKFRPS19DT01NQSk7XG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfUkJSQUNLRVQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCB0b2tlbiBSYnJhY2tldFwiKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfUkJSQUNLRVQpO1xuICAgICAgICAgIHJldHVybiB7dHlwZTogXCJNdWx0aVNlbGVjdExpc3RcIiwgY2hpbGRyZW46IGV4cHJlc3Npb25zfTtcbiAgICAgIH0sXG5cbiAgICAgIF9wYXJzZU11bHRpc2VsZWN0SGFzaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBwYWlycyA9IFtdO1xuICAgICAgICB2YXIgaWRlbnRpZmllclR5cGVzID0gW1RPS19VTlFVT1RFRElERU5USUZJRVIsIFRPS19RVU9URURJREVOVElGSUVSXTtcbiAgICAgICAgdmFyIGtleVRva2VuLCBrZXlOYW1lLCB2YWx1ZSwgbm9kZTtcbiAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgIGtleVRva2VuID0gdGhpcy5fbG9va2FoZWFkVG9rZW4oMCk7XG4gICAgICAgICAgaWYgKGlkZW50aWZpZXJUeXBlcy5pbmRleE9mKGtleVRva2VuLnR5cGUpIDwgMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0aW5nIGFuIGlkZW50aWZpZXIgdG9rZW4sIGdvdDogXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleVRva2VuLnR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBrZXlOYW1lID0ga2V5VG9rZW4udmFsdWU7XG4gICAgICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgICAgIHRoaXMuX21hdGNoKFRPS19DT0xPTik7XG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmV4cHJlc3Npb24oMCk7XG4gICAgICAgICAgbm9kZSA9IHt0eXBlOiBcIktleVZhbHVlUGFpclwiLCBuYW1lOiBrZXlOYW1lLCB2YWx1ZTogdmFsdWV9O1xuICAgICAgICAgIHBhaXJzLnB1c2gobm9kZSk7XG4gICAgICAgICAgaWYgKHRoaXMuX2xvb2thaGVhZCgwKSA9PT0gVE9LX0NPTU1BKSB7XG4gICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfQ09NTUEpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbG9va2FoZWFkKDApID09PSBUT0tfUkJSQUNFKSB7XG4gICAgICAgICAgICB0aGlzLl9tYXRjaChUT0tfUkJSQUNFKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge3R5cGU6IFwiTXVsdGlTZWxlY3RIYXNoXCIsIGNoaWxkcmVuOiBwYWlyc307XG4gICAgICB9XG4gIH07XG5cblxuICBmdW5jdGlvbiBUcmVlSW50ZXJwcmV0ZXIocnVudGltZSkge1xuICAgIHRoaXMucnVudGltZSA9IHJ1bnRpbWU7XG4gIH1cblxuICBUcmVlSW50ZXJwcmV0ZXIucHJvdG90eXBlID0ge1xuICAgICAgc2VhcmNoOiBmdW5jdGlvbihub2RlLCB2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnZpc2l0KG5vZGUsIHZhbHVlKTtcbiAgICAgIH0sXG5cbiAgICAgIHZpc2l0OiBmdW5jdGlvbihub2RlLCB2YWx1ZSkge1xuICAgICAgICAgIHZhciBtYXRjaGVkLCBjdXJyZW50LCByZXN1bHQsIGZpcnN0LCBzZWNvbmQsIGZpZWxkLCBsZWZ0LCByaWdodCwgY29sbGVjdGVkLCBpO1xuICAgICAgICAgIHN3aXRjaCAobm9kZS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiRmllbGRcIjpcbiAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsICkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZCA9IHZhbHVlW25vZGUubmFtZV07XG4gICAgICAgICAgICAgICAgICBpZiAoZmllbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiU3ViZXhwcmVzc2lvblwiOlxuICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0sIHZhbHVlKTtcbiAgICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsxXSwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSBcIkluZGV4RXhwcmVzc2lvblwiOlxuICAgICAgICAgICAgICBsZWZ0ID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIHJpZ2h0ID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzFdLCBsZWZ0KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHJpZ2h0O1xuICAgICAgICAgICAgY2FzZSBcIkluZGV4XCI6XG4gICAgICAgICAgICAgIGlmICghaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgaW5kZXggPSBub2RlLnZhbHVlO1xuICAgICAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSB2YWx1ZS5sZW5ndGggKyBpbmRleDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXN1bHQgPSB2YWx1ZVtpbmRleF07XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgXCJTbGljZVwiOlxuICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIHNsaWNlUGFyYW1zID0gbm9kZS5jaGlsZHJlbi5zbGljZSgwKTtcbiAgICAgICAgICAgICAgdmFyIGNvbXB1dGVkID0gdGhpcy5jb21wdXRlU2xpY2VQYXJhbXModmFsdWUubGVuZ3RoLCBzbGljZVBhcmFtcyk7XG4gICAgICAgICAgICAgIHZhciBzdGFydCA9IGNvbXB1dGVkWzBdO1xuICAgICAgICAgICAgICB2YXIgc3RvcCA9IGNvbXB1dGVkWzFdO1xuICAgICAgICAgICAgICB2YXIgc3RlcCA9IGNvbXB1dGVkWzJdO1xuICAgICAgICAgICAgICByZXN1bHQgPSBbXTtcbiAgICAgICAgICAgICAgaWYgKHN0ZXAgPiAwKSB7XG4gICAgICAgICAgICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbHVlW2ldKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpID4gc3RvcDsgaSArPSBzdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWVbaV0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlIFwiUHJvamVjdGlvblwiOlxuICAgICAgICAgICAgICAvLyBFdmFsdWF0ZSBsZWZ0IGNoaWxkLlxuICAgICAgICAgICAgICB2YXIgYmFzZSA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblswXSwgdmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIWlzQXJyYXkoYmFzZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb2xsZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGJhc2UubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzFdLCBiYXNlW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29sbGVjdGVkLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiVmFsdWVQcm9qZWN0aW9uXCI6XG4gICAgICAgICAgICAgIC8vIEV2YWx1YXRlIGxlZnQgY2hpbGQuXG4gICAgICAgICAgICAgIGJhc2UgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0sIHZhbHVlKTtcbiAgICAgICAgICAgICAgaWYgKCFpc09iamVjdChiYXNlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbGxlY3RlZCA9IFtdO1xuICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gb2JqVmFsdWVzKGJhc2UpO1xuICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsxXSwgdmFsdWVzW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgY29sbGVjdGVkLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiRmlsdGVyUHJvamVjdGlvblwiOlxuICAgICAgICAgICAgICBiYXNlID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghaXNBcnJheShiYXNlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhciBmaWx0ZXJlZCA9IFtdO1xuICAgICAgICAgICAgICB2YXIgZmluYWxSZXN1bHRzID0gW107XG4gICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBiYXNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsyXSwgYmFzZVtpXSk7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0ZhbHNlKG1hdGNoZWQpKSB7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZC5wdXNoKGJhc2VbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGZpbHRlcmVkLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsxXSwgZmlsdGVyZWRbal0pO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBmaW5hbFJlc3VsdHMucHVzaChjdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGZpbmFsUmVzdWx0cztcbiAgICAgICAgICAgIGNhc2UgXCJDb21wYXJhdG9yXCI6XG4gICAgICAgICAgICAgIGZpcnN0ID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIHNlY29uZCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsxXSwgdmFsdWUpO1xuICAgICAgICAgICAgICBzd2l0Y2gobm9kZS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBUT0tfRVE6XG4gICAgICAgICAgICAgICAgICByZXN1bHQgPSBzdHJpY3REZWVwRXF1YWwoZmlyc3QsIHNlY29uZCk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFRPS19ORTpcbiAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICFzdHJpY3REZWVwRXF1YWwoZmlyc3QsIHNlY29uZCk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFRPS19HVDpcbiAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcnN0ID4gc2Vjb25kO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBUT0tfR1RFOlxuICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmlyc3QgPj0gc2Vjb25kO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBUT0tfTFQ6XG4gICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXJzdCA8IHNlY29uZDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgVE9LX0xURTpcbiAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpcnN0IDw9IHNlY29uZDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGNvbXBhcmF0b3I6IFwiICsgbm9kZS5uYW1lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSBUT0tfRkxBVFRFTjpcbiAgICAgICAgICAgICAgdmFyIG9yaWdpbmFsID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghaXNBcnJheShvcmlnaW5hbCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgbWVyZ2VkID0gW107XG4gICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBvcmlnaW5hbC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBvcmlnaW5hbFtpXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNBcnJheShjdXJyZW50KSkge1xuICAgICAgICAgICAgICAgICAgbWVyZ2VkLnB1c2guYXBwbHkobWVyZ2VkLCBjdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbWVyZ2VkLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBtZXJnZWQ7XG4gICAgICAgICAgICBjYXNlIFwiSWRlbnRpdHlcIjpcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcIk11bHRpU2VsZWN0TGlzdFwiOlxuICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb2xsZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3RlZC5wdXNoKHRoaXMudmlzaXQobm9kZS5jaGlsZHJlbltpXSwgdmFsdWUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gY29sbGVjdGVkO1xuICAgICAgICAgICAgY2FzZSBcIk11bHRpU2VsZWN0SGFzaFwiOlxuICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb2xsZWN0ZWQgPSB7fTtcbiAgICAgICAgICAgICAgdmFyIGNoaWxkO1xuICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcbiAgICAgICAgICAgICAgICBjb2xsZWN0ZWRbY2hpbGQubmFtZV0gPSB0aGlzLnZpc2l0KGNoaWxkLnZhbHVlLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RlZDtcbiAgICAgICAgICAgIGNhc2UgXCJPckV4cHJlc3Npb25cIjpcbiAgICAgICAgICAgICAgbWF0Y2hlZCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblswXSwgdmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoaXNGYWxzZShtYXRjaGVkKSkge1xuICAgICAgICAgICAgICAgICAgbWF0Y2hlZCA9IHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsxXSwgdmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgICAgICAgICAgY2FzZSBcIkFuZEV4cHJlc3Npb25cIjpcbiAgICAgICAgICAgICAgZmlyc3QgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0sIHZhbHVlKTtcblxuICAgICAgICAgICAgICBpZiAoaXNGYWxzZShmaXJzdCkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3Q7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmlzaXQobm9kZS5jaGlsZHJlblsxXSwgdmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBcIk5vdEV4cHJlc3Npb25cIjpcbiAgICAgICAgICAgICAgZmlyc3QgPSB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0sIHZhbHVlKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGlzRmFsc2UoZmlyc3QpO1xuICAgICAgICAgICAgY2FzZSBcIkxpdGVyYWxcIjpcbiAgICAgICAgICAgICAgcmV0dXJuIG5vZGUudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFRPS19QSVBFOlxuICAgICAgICAgICAgICBsZWZ0ID0gdGhpcy52aXNpdChub2RlLmNoaWxkcmVuWzBdLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0sIGxlZnQpO1xuICAgICAgICAgICAgY2FzZSBUT0tfQ1VSUkVOVDpcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcIkZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgIHZhciByZXNvbHZlZEFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmVkQXJncy5wdXNoKHRoaXMudmlzaXQobm9kZS5jaGlsZHJlbltpXSwgdmFsdWUpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ydW50aW1lLmNhbGxGdW5jdGlvbihub2RlLm5hbWUsIHJlc29sdmVkQXJncyk7XG4gICAgICAgICAgICBjYXNlIFwiRXhwcmVzc2lvblJlZmVyZW5jZVwiOlxuICAgICAgICAgICAgICB2YXIgcmVmTm9kZSA9IG5vZGUuY2hpbGRyZW5bMF07XG4gICAgICAgICAgICAgIC8vIFRhZyB0aGUgbm9kZSB3aXRoIGEgc3BlY2lmaWMgYXR0cmlidXRlIHNvIHRoZSB0eXBlXG4gICAgICAgICAgICAgIC8vIGNoZWNrZXIgdmVyaWZ5IHRoZSB0eXBlLlxuICAgICAgICAgICAgICByZWZOb2RlLmptZXNwYXRoVHlwZSA9IFRPS19FWFBSRUY7XG4gICAgICAgICAgICAgIHJldHVybiByZWZOb2RlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBub2RlIHR5cGU6IFwiICsgbm9kZS50eXBlKTtcbiAgICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICBjb21wdXRlU2xpY2VQYXJhbXM6IGZ1bmN0aW9uKGFycmF5TGVuZ3RoLCBzbGljZVBhcmFtcykge1xuICAgICAgICB2YXIgc3RhcnQgPSBzbGljZVBhcmFtc1swXTtcbiAgICAgICAgdmFyIHN0b3AgPSBzbGljZVBhcmFtc1sxXTtcbiAgICAgICAgdmFyIHN0ZXAgPSBzbGljZVBhcmFtc1syXTtcbiAgICAgICAgdmFyIGNvbXB1dGVkID0gW251bGwsIG51bGwsIG51bGxdO1xuICAgICAgICBpZiAoc3RlcCA9PT0gbnVsbCkge1xuICAgICAgICAgIHN0ZXAgPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKHN0ZXAgPT09IDApIHtcbiAgICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoXCJJbnZhbGlkIHNsaWNlLCBzdGVwIGNhbm5vdCBiZSAwXCIpO1xuICAgICAgICAgIGVycm9yLm5hbWUgPSBcIlJ1bnRpbWVFcnJvclwiO1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdGVwVmFsdWVOZWdhdGl2ZSA9IHN0ZXAgPCAwID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgIGlmIChzdGFydCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgc3RhcnQgPSBzdGVwVmFsdWVOZWdhdGl2ZSA/IGFycmF5TGVuZ3RoIC0gMSA6IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydCA9IHRoaXMuY2FwU2xpY2VSYW5nZShhcnJheUxlbmd0aCwgc3RhcnQsIHN0ZXApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0b3AgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0b3AgPSBzdGVwVmFsdWVOZWdhdGl2ZSA/IC0xIDogYXJyYXlMZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdG9wID0gdGhpcy5jYXBTbGljZVJhbmdlKGFycmF5TGVuZ3RoLCBzdG9wLCBzdGVwKTtcbiAgICAgICAgfVxuICAgICAgICBjb21wdXRlZFswXSA9IHN0YXJ0O1xuICAgICAgICBjb21wdXRlZFsxXSA9IHN0b3A7XG4gICAgICAgIGNvbXB1dGVkWzJdID0gc3RlcDtcbiAgICAgICAgcmV0dXJuIGNvbXB1dGVkO1xuICAgICAgfSxcblxuICAgICAgY2FwU2xpY2VSYW5nZTogZnVuY3Rpb24oYXJyYXlMZW5ndGgsIGFjdHVhbFZhbHVlLCBzdGVwKSB7XG4gICAgICAgICAgaWYgKGFjdHVhbFZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICBhY3R1YWxWYWx1ZSArPSBhcnJheUxlbmd0aDtcbiAgICAgICAgICAgICAgaWYgKGFjdHVhbFZhbHVlIDwgMCkge1xuICAgICAgICAgICAgICAgICAgYWN0dWFsVmFsdWUgPSBzdGVwIDwgMCA/IC0xIDogMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYWN0dWFsVmFsdWUgPj0gYXJyYXlMZW5ndGgpIHtcbiAgICAgICAgICAgICAgYWN0dWFsVmFsdWUgPSBzdGVwIDwgMCA/IGFycmF5TGVuZ3RoIC0gMSA6IGFycmF5TGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWN0dWFsVmFsdWU7XG4gICAgICB9XG5cbiAgfTtcblxuICBmdW5jdGlvbiBSdW50aW1lKGludGVycHJldGVyKSB7XG4gICAgdGhpcy5faW50ZXJwcmV0ZXIgPSBpbnRlcnByZXRlcjtcbiAgICB0aGlzLmZ1bmN0aW9uVGFibGUgPSB7XG4gICAgICAgIC8vIG5hbWU6IFtmdW5jdGlvbiwgPHNpZ25hdHVyZT5dXG4gICAgICAgIC8vIFRoZSA8c2lnbmF0dXJlPiBjYW4gYmU6XG4gICAgICAgIC8vXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICBhcmdzOiBbW3R5cGUxLCB0eXBlMl0sIFt0eXBlMSwgdHlwZTJdXSxcbiAgICAgICAgLy8gICB2YXJpYWRpYzogdHJ1ZXxmYWxzZVxuICAgICAgICAvLyB9XG4gICAgICAgIC8vXG4gICAgICAgIC8vIEVhY2ggYXJnIGluIHRoZSBhcmcgbGlzdCBpcyBhIGxpc3Qgb2YgdmFsaWQgdHlwZXNcbiAgICAgICAgLy8gKGlmIHRoZSBmdW5jdGlvbiBpcyBvdmVybG9hZGVkIGFuZCBzdXBwb3J0cyBtdWx0aXBsZVxuICAgICAgICAvLyB0eXBlcy4gIElmIHRoZSB0eXBlIGlzIFwiYW55XCIgdGhlbiBubyB0eXBlIGNoZWNraW5nXG4gICAgICAgIC8vIG9jY3VycyBvbiB0aGUgYXJndW1lbnQuICBWYXJpYWRpYyBpcyBvcHRpb25hbFxuICAgICAgICAvLyBhbmQgaWYgbm90IHByb3ZpZGVkIGlzIGFzc3VtZWQgdG8gYmUgZmFsc2UuXG4gICAgICAgIGFiczoge19mdW5jOiB0aGlzLl9mdW5jdGlvbkFicywgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfTlVNQkVSXX1dfSxcbiAgICAgICAgYXZnOiB7X2Z1bmM6IHRoaXMuX2Z1bmN0aW9uQXZnLCBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BUlJBWV9OVU1CRVJdfV19LFxuICAgICAgICBjZWlsOiB7X2Z1bmM6IHRoaXMuX2Z1bmN0aW9uQ2VpbCwgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfTlVNQkVSXX1dfSxcbiAgICAgICAgY29udGFpbnM6IHtcbiAgICAgICAgICAgIF9mdW5jOiB0aGlzLl9mdW5jdGlvbkNvbnRhaW5zLFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfU1RSSU5HLCBUWVBFX0FSUkFZXX0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dHlwZXM6IFtUWVBFX0FOWV19XX0sXG4gICAgICAgIFwiZW5kc193aXRoXCI6IHtcbiAgICAgICAgICAgIF9mdW5jOiB0aGlzLl9mdW5jdGlvbkVuZHNXaXRoLFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfU1RSSU5HXX0sIHt0eXBlczogW1RZUEVfU1RSSU5HXX1dfSxcbiAgICAgICAgZmxvb3I6IHtfZnVuYzogdGhpcy5fZnVuY3Rpb25GbG9vciwgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfTlVNQkVSXX1dfSxcbiAgICAgICAgbGVuZ3RoOiB7XG4gICAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25MZW5ndGgsXG4gICAgICAgICAgICBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9TVFJJTkcsIFRZUEVfQVJSQVksIFRZUEVfT0JKRUNUXX1dfSxcbiAgICAgICAgbWFwOiB7XG4gICAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25NYXAsXG4gICAgICAgICAgICBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9FWFBSRUZdfSwge3R5cGVzOiBbVFlQRV9BUlJBWV19XX0sXG4gICAgICAgIG1heDoge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uTWF4LFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQVJSQVlfTlVNQkVSLCBUWVBFX0FSUkFZX1NUUklOR119XX0sXG4gICAgICAgIFwibWVyZ2VcIjoge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uTWVyZ2UsXG4gICAgICAgICAgICBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9PQkpFQ1RdLCB2YXJpYWRpYzogdHJ1ZX1dXG4gICAgICAgIH0sXG4gICAgICAgIFwibWF4X2J5XCI6IHtcbiAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25NYXhCeSxcbiAgICAgICAgICBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BUlJBWV19LCB7dHlwZXM6IFtUWVBFX0VYUFJFRl19XVxuICAgICAgICB9LFxuICAgICAgICBzdW06IHtfZnVuYzogdGhpcy5fZnVuY3Rpb25TdW0sIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX0FSUkFZX05VTUJFUl19XX0sXG4gICAgICAgIFwic3RhcnRzX3dpdGhcIjoge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uU3RhcnRzV2l0aCxcbiAgICAgICAgICAgIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX1NUUklOR119LCB7dHlwZXM6IFtUWVBFX1NUUklOR119XX0sXG4gICAgICAgIG1pbjoge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uTWluLFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQVJSQVlfTlVNQkVSLCBUWVBFX0FSUkFZX1NUUklOR119XX0sXG4gICAgICAgIFwibWluX2J5XCI6IHtcbiAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25NaW5CeSxcbiAgICAgICAgICBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BUlJBWV19LCB7dHlwZXM6IFtUWVBFX0VYUFJFRl19XVxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiB7X2Z1bmM6IHRoaXMuX2Z1bmN0aW9uVHlwZSwgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQU5ZXX1dfSxcbiAgICAgICAga2V5czoge19mdW5jOiB0aGlzLl9mdW5jdGlvbktleXMsIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX09CSkVDVF19XX0sXG4gICAgICAgIHZhbHVlczoge19mdW5jOiB0aGlzLl9mdW5jdGlvblZhbHVlcywgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfT0JKRUNUXX1dfSxcbiAgICAgICAgc29ydDoge19mdW5jOiB0aGlzLl9mdW5jdGlvblNvcnQsIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX0FSUkFZX1NUUklORywgVFlQRV9BUlJBWV9OVU1CRVJdfV19LFxuICAgICAgICBcInNvcnRfYnlcIjoge1xuICAgICAgICAgIF9mdW5jOiB0aGlzLl9mdW5jdGlvblNvcnRCeSxcbiAgICAgICAgICBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BUlJBWV19LCB7dHlwZXM6IFtUWVBFX0VYUFJFRl19XVxuICAgICAgICB9LFxuICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25Kb2luLFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW1xuICAgICAgICAgICAgICAgIHt0eXBlczogW1RZUEVfU1RSSU5HXX0sXG4gICAgICAgICAgICAgICAge3R5cGVzOiBbVFlQRV9BUlJBWV9TVFJJTkddfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICByZXZlcnNlOiB7XG4gICAgICAgICAgICBfZnVuYzogdGhpcy5fZnVuY3Rpb25SZXZlcnNlLFxuICAgICAgICAgICAgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfU1RSSU5HLCBUWVBFX0FSUkFZXX1dfSxcbiAgICAgICAgXCJ0b19hcnJheVwiOiB7X2Z1bmM6IHRoaXMuX2Z1bmN0aW9uVG9BcnJheSwgX3NpZ25hdHVyZTogW3t0eXBlczogW1RZUEVfQU5ZXX1dfSxcbiAgICAgICAgXCJ0b19zdHJpbmdcIjoge19mdW5jOiB0aGlzLl9mdW5jdGlvblRvU3RyaW5nLCBfc2lnbmF0dXJlOiBbe3R5cGVzOiBbVFlQRV9BTlldfV19LFxuICAgICAgICBcInRvX251bWJlclwiOiB7X2Z1bmM6IHRoaXMuX2Z1bmN0aW9uVG9OdW1iZXIsIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX0FOWV19XX0sXG4gICAgICAgIFwibm90X251bGxcIjoge1xuICAgICAgICAgICAgX2Z1bmM6IHRoaXMuX2Z1bmN0aW9uTm90TnVsbCxcbiAgICAgICAgICAgIF9zaWduYXR1cmU6IFt7dHlwZXM6IFtUWVBFX0FOWV0sIHZhcmlhZGljOiB0cnVlfV1cbiAgICAgICAgfVxuICAgIH07XG4gIH1cblxuICBSdW50aW1lLnByb3RvdHlwZSA9IHtcbiAgICBjYWxsRnVuY3Rpb246IGZ1bmN0aW9uKG5hbWUsIHJlc29sdmVkQXJncykge1xuICAgICAgdmFyIGZ1bmN0aW9uRW50cnkgPSB0aGlzLmZ1bmN0aW9uVGFibGVbbmFtZV07XG4gICAgICBpZiAoZnVuY3Rpb25FbnRyeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBmdW5jdGlvbjogXCIgKyBuYW1lICsgXCIoKVwiKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3ZhbGlkYXRlQXJncyhuYW1lLCByZXNvbHZlZEFyZ3MsIGZ1bmN0aW9uRW50cnkuX3NpZ25hdHVyZSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb25FbnRyeS5fZnVuYy5jYWxsKHRoaXMsIHJlc29sdmVkQXJncyk7XG4gICAgfSxcblxuICAgIF92YWxpZGF0ZUFyZ3M6IGZ1bmN0aW9uKG5hbWUsIGFyZ3MsIHNpZ25hdHVyZSkge1xuICAgICAgICAvLyBWYWxpZGF0aW5nIHRoZSBhcmdzIHJlcXVpcmVzIHZhbGlkYXRpbmdcbiAgICAgICAgLy8gdGhlIGNvcnJlY3QgYXJpdHkgYW5kIHRoZSBjb3JyZWN0IHR5cGUgb2YgZWFjaCBhcmcuXG4gICAgICAgIC8vIElmIHRoZSBsYXN0IGFyZ3VtZW50IGlzIGRlY2xhcmVkIGFzIHZhcmlhZGljLCB0aGVuIHdlIG5lZWRcbiAgICAgICAgLy8gYSBtaW5pbXVtIG51bWJlciBvZiBhcmdzIHRvIGJlIHJlcXVpcmVkLiAgT3RoZXJ3aXNlIGl0IGhhcyB0b1xuICAgICAgICAvLyBiZSBhbiBleGFjdCBhbW91bnQuXG4gICAgICAgIHZhciBwbHVyYWxpemVkO1xuICAgICAgICBpZiAoc2lnbmF0dXJlW3NpZ25hdHVyZS5sZW5ndGggLSAxXS52YXJpYWRpYykge1xuICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoIDwgc2lnbmF0dXJlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHBsdXJhbGl6ZWQgPSBzaWduYXR1cmUubGVuZ3RoID09PSAxID8gXCIgYXJndW1lbnRcIiA6IFwiIGFyZ3VtZW50c1wiO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFyZ3VtZW50RXJyb3I6IFwiICsgbmFtZSArIFwiKCkgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRha2VzIGF0IGxlYXN0XCIgKyBzaWduYXR1cmUubGVuZ3RoICsgcGx1cmFsaXplZCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIGJ1dCByZWNlaXZlZCBcIiArIGFyZ3MubGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChhcmdzLmxlbmd0aCAhPT0gc2lnbmF0dXJlLmxlbmd0aCkge1xuICAgICAgICAgICAgcGx1cmFsaXplZCA9IHNpZ25hdHVyZS5sZW5ndGggPT09IDEgPyBcIiBhcmd1bWVudFwiIDogXCIgYXJndW1lbnRzXCI7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudEVycm9yOiBcIiArIG5hbWUgKyBcIigpIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRha2VzIFwiICsgc2lnbmF0dXJlLmxlbmd0aCArIHBsdXJhbGl6ZWQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIGJ1dCByZWNlaXZlZCBcIiArIGFyZ3MubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY3VycmVudFNwZWM7XG4gICAgICAgIHZhciBhY3R1YWxUeXBlO1xuICAgICAgICB2YXIgdHlwZU1hdGNoZWQ7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2lnbmF0dXJlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0eXBlTWF0Y2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgY3VycmVudFNwZWMgPSBzaWduYXR1cmVbaV0udHlwZXM7XG4gICAgICAgICAgICBhY3R1YWxUeXBlID0gdGhpcy5fZ2V0VHlwZU5hbWUoYXJnc1tpXSk7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGN1cnJlbnRTcGVjLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3R5cGVNYXRjaGVzKGFjdHVhbFR5cGUsIGN1cnJlbnRTcGVjW2pdLCBhcmdzW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICB0eXBlTWF0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdHlwZU1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUeXBlRXJyb3I6IFwiICsgbmFtZSArIFwiKCkgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4cGVjdGVkIGFyZ3VtZW50IFwiICsgKGkgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIHRvIGJlIHR5cGUgXCIgKyBjdXJyZW50U3BlYyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIGJ1dCByZWNlaXZlZCB0eXBlIFwiICsgYWN0dWFsVHlwZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIGluc3RlYWQuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIF90eXBlTWF0Y2hlczogZnVuY3Rpb24oYWN0dWFsLCBleHBlY3RlZCwgYXJnVmFsdWUpIHtcbiAgICAgICAgaWYgKGV4cGVjdGVkID09PSBUWVBFX0FOWSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4cGVjdGVkID09PSBUWVBFX0FSUkFZX1NUUklORyB8fFxuICAgICAgICAgICAgZXhwZWN0ZWQgPT09IFRZUEVfQVJSQVlfTlVNQkVSIHx8XG4gICAgICAgICAgICBleHBlY3RlZCA9PT0gVFlQRV9BUlJBWSkge1xuICAgICAgICAgICAgLy8gVGhlIGV4cGVjdGVkIHR5cGUgY2FuIGVpdGhlciBqdXN0IGJlIGFycmF5LFxuICAgICAgICAgICAgLy8gb3IgaXQgY2FuIHJlcXVpcmUgYSBzcGVjaWZpYyBzdWJ0eXBlIChhcnJheSBvZiBudW1iZXJzKS5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBUaGUgc2ltcGxlc3QgY2FzZSBpcyBpZiBcImFycmF5XCIgd2l0aCBubyBzdWJ0eXBlIGlzIHNwZWNpZmllZC5cbiAgICAgICAgICAgIGlmIChleHBlY3RlZCA9PT0gVFlQRV9BUlJBWSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWwgPT09IFRZUEVfQVJSQVk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFjdHVhbCA9PT0gVFlQRV9BUlJBWSkge1xuICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSB3ZSBuZWVkIHRvIGNoZWNrIHN1YnR5cGVzLlxuICAgICAgICAgICAgICAgIC8vIEkgdGhpbmsgdGhpcyBoYXMgcG90ZW50aWFsIHRvIGJlIGltcHJvdmVkLlxuICAgICAgICAgICAgICAgIHZhciBzdWJ0eXBlO1xuICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZCA9PT0gVFlQRV9BUlJBWV9OVU1CRVIpIHtcbiAgICAgICAgICAgICAgICAgIHN1YnR5cGUgPSBUWVBFX05VTUJFUjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV4cGVjdGVkID09PSBUWVBFX0FSUkFZX1NUUklORykge1xuICAgICAgICAgICAgICAgICAgc3VidHlwZSA9IFRZUEVfU1RSSU5HO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ1ZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5fdHlwZU1hdGNoZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2V0VHlwZU5hbWUoYXJnVmFsdWVbaV0pLCBzdWJ0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnVmFsdWVbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0dWFsID09PSBleHBlY3RlZDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgX2dldFR5cGVOYW1lOiBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgc3dpdGNoIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSkge1xuICAgICAgICAgICAgY2FzZSBcIltvYmplY3QgU3RyaW5nXVwiOlxuICAgICAgICAgICAgICByZXR1cm4gVFlQRV9TVFJJTkc7XG4gICAgICAgICAgICBjYXNlIFwiW29iamVjdCBOdW1iZXJdXCI6XG4gICAgICAgICAgICAgIHJldHVybiBUWVBFX05VTUJFUjtcbiAgICAgICAgICAgIGNhc2UgXCJbb2JqZWN0IEFycmF5XVwiOlxuICAgICAgICAgICAgICByZXR1cm4gVFlQRV9BUlJBWTtcbiAgICAgICAgICAgIGNhc2UgXCJbb2JqZWN0IEJvb2xlYW5dXCI6XG4gICAgICAgICAgICAgIHJldHVybiBUWVBFX0JPT0xFQU47XG4gICAgICAgICAgICBjYXNlIFwiW29iamVjdCBOdWxsXVwiOlxuICAgICAgICAgICAgICByZXR1cm4gVFlQRV9OVUxMO1xuICAgICAgICAgICAgY2FzZSBcIltvYmplY3QgT2JqZWN0XVwiOlxuICAgICAgICAgICAgICAvLyBDaGVjayBpZiBpdCdzIGFuIGV4cHJlZi4gIElmIGl0IGhhcywgaXQncyBiZWVuXG4gICAgICAgICAgICAgIC8vIHRhZ2dlZCB3aXRoIGEgam1lc3BhdGhUeXBlIGF0dHIgb2YgJ0V4cHJlZic7XG4gICAgICAgICAgICAgIGlmIChvYmouam1lc3BhdGhUeXBlID09PSBUT0tfRVhQUkVGKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRZUEVfRVhQUkVGO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBUWVBFX09CSkVDVDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIF9mdW5jdGlvblN0YXJ0c1dpdGg6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZWRBcmdzWzBdLmxhc3RJbmRleE9mKHJlc29sdmVkQXJnc1sxXSkgPT09IDA7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbkVuZHNXaXRoOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgdmFyIHNlYXJjaFN0ciA9IHJlc29sdmVkQXJnc1swXTtcbiAgICAgICAgdmFyIHN1ZmZpeCA9IHJlc29sdmVkQXJnc1sxXTtcbiAgICAgICAgcmV0dXJuIHNlYXJjaFN0ci5pbmRleE9mKHN1ZmZpeCwgc2VhcmNoU3RyLmxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpICE9PSAtMTtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uUmV2ZXJzZTogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHZhciB0eXBlTmFtZSA9IHRoaXMuX2dldFR5cGVOYW1lKHJlc29sdmVkQXJnc1swXSk7XG4gICAgICAgIGlmICh0eXBlTmFtZSA9PT0gVFlQRV9TVFJJTkcpIHtcbiAgICAgICAgICB2YXIgb3JpZ2luYWxTdHIgPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgICAgdmFyIHJldmVyc2VkU3RyID0gXCJcIjtcbiAgICAgICAgICBmb3IgKHZhciBpID0gb3JpZ2luYWxTdHIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgcmV2ZXJzZWRTdHIgKz0gb3JpZ2luYWxTdHJbaV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXZlcnNlZFN0cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgcmV2ZXJzZWRBcnJheSA9IHJlc29sdmVkQXJnc1swXS5zbGljZSgwKTtcbiAgICAgICAgICByZXZlcnNlZEFycmF5LnJldmVyc2UoKTtcbiAgICAgICAgICByZXR1cm4gcmV2ZXJzZWRBcnJheTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25BYnM6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgcmV0dXJuIE1hdGguYWJzKHJlc29sdmVkQXJnc1swXSk7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbkNlaWw6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHJlc29sdmVkQXJnc1swXSk7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbkF2ZzogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHZhciBzdW0gPSAwO1xuICAgICAgICB2YXIgaW5wdXRBcnJheSA9IHJlc29sdmVkQXJnc1swXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dEFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzdW0gKz0gaW5wdXRBcnJheVtpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3VtIC8gaW5wdXRBcnJheS5sZW5ndGg7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbkNvbnRhaW5zOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVkQXJnc1swXS5pbmRleE9mKHJlc29sdmVkQXJnc1sxXSkgPj0gMDtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uRmxvb3I6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihyZXNvbHZlZEFyZ3NbMF0pO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25MZW5ndGg6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgIGlmICghaXNPYmplY3QocmVzb2x2ZWRBcmdzWzBdKSkge1xuICAgICAgICAgcmV0dXJuIHJlc29sdmVkQXJnc1swXS5sZW5ndGg7XG4gICAgICAgfSBlbHNlIHtcbiAgICAgICAgIC8vIEFzIGZhciBhcyBJIGNhbiB0ZWxsLCB0aGVyZSdzIG5vIHdheSB0byBnZXQgdGhlIGxlbmd0aFxuICAgICAgICAgLy8gb2YgYW4gb2JqZWN0IHdpdGhvdXQgTyhuKSBpdGVyYXRpb24gdGhyb3VnaCB0aGUgb2JqZWN0LlxuICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHJlc29sdmVkQXJnc1swXSkubGVuZ3RoO1xuICAgICAgIH1cbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uTWFwOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgIHZhciBtYXBwZWQgPSBbXTtcbiAgICAgIHZhciBpbnRlcnByZXRlciA9IHRoaXMuX2ludGVycHJldGVyO1xuICAgICAgdmFyIGV4cHJlZk5vZGUgPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICB2YXIgZWxlbWVudHMgPSByZXNvbHZlZEFyZ3NbMV07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgbWFwcGVkLnB1c2goaW50ZXJwcmV0ZXIudmlzaXQoZXhwcmVmTm9kZSwgZWxlbWVudHNbaV0pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXBwZWQ7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbk1lcmdlOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgIHZhciBtZXJnZWQgPSB7fTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb2x2ZWRBcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gcmVzb2x2ZWRBcmdzW2ldO1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gY3VycmVudCkge1xuICAgICAgICAgIG1lcmdlZFtrZXldID0gY3VycmVudFtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbWVyZ2VkO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25NYXg6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgaWYgKHJlc29sdmVkQXJnc1swXS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHZhciB0eXBlTmFtZSA9IHRoaXMuX2dldFR5cGVOYW1lKHJlc29sdmVkQXJnc1swXVswXSk7XG4gICAgICAgIGlmICh0eXBlTmFtZSA9PT0gVFlQRV9OVU1CRVIpIHtcbiAgICAgICAgICByZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCwgcmVzb2x2ZWRBcmdzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgZWxlbWVudHMgPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgICAgdmFyIG1heEVsZW1lbnQgPSBlbGVtZW50c1swXTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGlmIChtYXhFbGVtZW50LmxvY2FsZUNvbXBhcmUoZWxlbWVudHNbaV0pIDwgMCkge1xuICAgICAgICAgICAgICAgICAgbWF4RWxlbWVudCA9IGVsZW1lbnRzW2ldO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXhFbGVtZW50O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25NaW46IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgaWYgKHJlc29sdmVkQXJnc1swXS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHZhciB0eXBlTmFtZSA9IHRoaXMuX2dldFR5cGVOYW1lKHJlc29sdmVkQXJnc1swXVswXSk7XG4gICAgICAgIGlmICh0eXBlTmFtZSA9PT0gVFlQRV9OVU1CRVIpIHtcbiAgICAgICAgICByZXR1cm4gTWF0aC5taW4uYXBwbHkoTWF0aCwgcmVzb2x2ZWRBcmdzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgZWxlbWVudHMgPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgICAgdmFyIG1pbkVsZW1lbnQgPSBlbGVtZW50c1swXTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGlmIChlbGVtZW50c1tpXS5sb2NhbGVDb21wYXJlKG1pbkVsZW1lbnQpIDwgMCkge1xuICAgICAgICAgICAgICAgICAgbWluRWxlbWVudCA9IGVsZW1lbnRzW2ldO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtaW5FbGVtZW50O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uU3VtOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgIHZhciBzdW0gPSAwO1xuICAgICAgdmFyIGxpc3RUb1N1bSA9IHJlc29sdmVkQXJnc1swXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdFRvU3VtLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHN1bSArPSBsaXN0VG9TdW1baV07XG4gICAgICB9XG4gICAgICByZXR1cm4gc3VtO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25UeXBlOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9nZXRUeXBlTmFtZShyZXNvbHZlZEFyZ3NbMF0pKSB7XG4gICAgICAgICAgY2FzZSBUWVBFX05VTUJFUjpcbiAgICAgICAgICAgIHJldHVybiBcIm51bWJlclwiO1xuICAgICAgICAgIGNhc2UgVFlQRV9TVFJJTkc6XG4gICAgICAgICAgICByZXR1cm4gXCJzdHJpbmdcIjtcbiAgICAgICAgICBjYXNlIFRZUEVfQVJSQVk6XG4gICAgICAgICAgICByZXR1cm4gXCJhcnJheVwiO1xuICAgICAgICAgIGNhc2UgVFlQRV9PQkpFQ1Q6XG4gICAgICAgICAgICByZXR1cm4gXCJvYmplY3RcIjtcbiAgICAgICAgICBjYXNlIFRZUEVfQk9PTEVBTjpcbiAgICAgICAgICAgIHJldHVybiBcImJvb2xlYW5cIjtcbiAgICAgICAgICBjYXNlIFRZUEVfRVhQUkVGOlxuICAgICAgICAgICAgcmV0dXJuIFwiZXhwcmVmXCI7XG4gICAgICAgICAgY2FzZSBUWVBFX05VTEw6XG4gICAgICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uS2V5czogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhyZXNvbHZlZEFyZ3NbMF0pO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25WYWx1ZXM6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICB2YXIgb2JqID0gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgICAgIHZhciB2YWx1ZXMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaChvYmpba2V5c1tpXV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSxcblxuICAgIF9mdW5jdGlvbkpvaW46IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICB2YXIgam9pbkNoYXIgPSByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgIHZhciBsaXN0Sm9pbiA9IHJlc29sdmVkQXJnc1sxXTtcbiAgICAgICAgcmV0dXJuIGxpc3RKb2luLmpvaW4oam9pbkNoYXIpO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25Ub0FycmF5OiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgaWYgKHRoaXMuX2dldFR5cGVOYW1lKHJlc29sdmVkQXJnc1swXSkgPT09IFRZUEVfQVJSQVkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3Jlc29sdmVkQXJnc1swXV07XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uVG9TdHJpbmc6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgICBpZiAodGhpcy5fZ2V0VHlwZU5hbWUocmVzb2x2ZWRBcmdzWzBdKSA9PT0gVFlQRV9TVFJJTkcpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlZEFyZ3NbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzb2x2ZWRBcmdzWzBdKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25Ub051bWJlcjogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICAgIHZhciB0eXBlTmFtZSA9IHRoaXMuX2dldFR5cGVOYW1lKHJlc29sdmVkQXJnc1swXSk7XG4gICAgICAgIHZhciBjb252ZXJ0ZWRWYWx1ZTtcbiAgICAgICAgaWYgKHR5cGVOYW1lID09PSBUWVBFX05VTUJFUikge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkQXJnc1swXTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gVFlQRV9TVFJJTkcpIHtcbiAgICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gK3Jlc29sdmVkQXJnc1swXTtcbiAgICAgICAgICAgIGlmICghaXNOYU4oY29udmVydGVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25Ob3ROdWxsOiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvbHZlZEFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9nZXRUeXBlTmFtZShyZXNvbHZlZEFyZ3NbaV0pICE9PSBUWVBFX05VTEwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWRBcmdzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25Tb3J0OiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgdmFyIHNvcnRlZEFycmF5ID0gcmVzb2x2ZWRBcmdzWzBdLnNsaWNlKDApO1xuICAgICAgICBzb3J0ZWRBcnJheS5zb3J0KCk7XG4gICAgICAgIHJldHVybiBzb3J0ZWRBcnJheTtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uU29ydEJ5OiBmdW5jdGlvbihyZXNvbHZlZEFyZ3MpIHtcbiAgICAgICAgdmFyIHNvcnRlZEFycmF5ID0gcmVzb2x2ZWRBcmdzWzBdLnNsaWNlKDApO1xuICAgICAgICBpZiAoc29ydGVkQXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gc29ydGVkQXJyYXk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGludGVycHJldGVyID0gdGhpcy5faW50ZXJwcmV0ZXI7XG4gICAgICAgIHZhciBleHByZWZOb2RlID0gcmVzb2x2ZWRBcmdzWzFdO1xuICAgICAgICB2YXIgcmVxdWlyZWRUeXBlID0gdGhpcy5fZ2V0VHlwZU5hbWUoXG4gICAgICAgICAgICBpbnRlcnByZXRlci52aXNpdChleHByZWZOb2RlLCBzb3J0ZWRBcnJheVswXSkpO1xuICAgICAgICBpZiAoW1RZUEVfTlVNQkVSLCBUWVBFX1NUUklOR10uaW5kZXhPZihyZXF1aXJlZFR5cGUpIDwgMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHlwZUVycm9yXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgLy8gSW4gb3JkZXIgdG8gZ2V0IGEgc3RhYmxlIHNvcnQgb3V0IG9mIGFuIHVuc3RhYmxlXG4gICAgICAgIC8vIHNvcnQgYWxnb3JpdGhtLCB3ZSBkZWNvcmF0ZS9zb3J0L3VuZGVjb3JhdGUgKERTVSlcbiAgICAgICAgLy8gYnkgY3JlYXRpbmcgYSBuZXcgbGlzdCBvZiBbaW5kZXgsIGVsZW1lbnRdIHBhaXJzLlxuICAgICAgICAvLyBJbiB0aGUgY21wIGZ1bmN0aW9uLCBpZiB0aGUgZXZhbHVhdGVkIGVsZW1lbnRzIGFyZVxuICAgICAgICAvLyBlcXVhbCwgdGhlbiB0aGUgaW5kZXggd2lsbCBiZSB1c2VkIGFzIHRoZSB0aWVicmVha2VyLlxuICAgICAgICAvLyBBZnRlciB0aGUgZGVjb3JhdGVkIGxpc3QgaGFzIGJlZW4gc29ydGVkLCBpdCB3aWxsIGJlXG4gICAgICAgIC8vIHVuZGVjb3JhdGVkIHRvIGV4dHJhY3QgdGhlIG9yaWdpbmFsIGVsZW1lbnRzLlxuICAgICAgICB2YXIgZGVjb3JhdGVkID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydGVkQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBkZWNvcmF0ZWQucHVzaChbaSwgc29ydGVkQXJyYXlbaV1dKTtcbiAgICAgICAgfVxuICAgICAgICBkZWNvcmF0ZWQuc29ydChmdW5jdGlvbihhLCBiKSB7XG4gICAgICAgICAgdmFyIGV4cHJBID0gaW50ZXJwcmV0ZXIudmlzaXQoZXhwcmVmTm9kZSwgYVsxXSk7XG4gICAgICAgICAgdmFyIGV4cHJCID0gaW50ZXJwcmV0ZXIudmlzaXQoZXhwcmVmTm9kZSwgYlsxXSk7XG4gICAgICAgICAgaWYgKHRoYXQuX2dldFR5cGVOYW1lKGV4cHJBKSAhPT0gcmVxdWlyZWRUeXBlKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiVHlwZUVycm9yOiBleHBlY3RlZCBcIiArIHJlcXVpcmVkVHlwZSArIFwiLCByZWNlaXZlZCBcIiArXG4gICAgICAgICAgICAgICAgICB0aGF0Ll9nZXRUeXBlTmFtZShleHByQSkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhhdC5fZ2V0VHlwZU5hbWUoZXhwckIpICE9PSByZXF1aXJlZFR5cGUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJUeXBlRXJyb3I6IGV4cGVjdGVkIFwiICsgcmVxdWlyZWRUeXBlICsgXCIsIHJlY2VpdmVkIFwiICtcbiAgICAgICAgICAgICAgICAgIHRoYXQuX2dldFR5cGVOYW1lKGV4cHJCKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChleHByQSA+IGV4cHJCKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV4cHJBIDwgZXhwckIpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSWYgdGhleSdyZSBlcXVhbCBjb21wYXJlIHRoZSBpdGVtcyBieSB0aGVpclxuICAgICAgICAgICAgLy8gb3JkZXIgdG8gbWFpbnRhaW4gcmVsYXRpdmUgb3JkZXIgb2YgZXF1YWwga2V5c1xuICAgICAgICAgICAgLy8gKGkuZS4gdG8gZ2V0IGEgc3RhYmxlIHNvcnQpLlxuICAgICAgICAgICAgcmV0dXJuIGFbMF0gLSBiWzBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFVuZGVjb3JhdGU6IGV4dHJhY3Qgb3V0IHRoZSBvcmlnaW5hbCBsaXN0IGVsZW1lbnRzLlxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRlY29yYXRlZC5sZW5ndGg7IGorKykge1xuICAgICAgICAgIHNvcnRlZEFycmF5W2pdID0gZGVjb3JhdGVkW2pdWzFdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzb3J0ZWRBcnJheTtcbiAgICB9LFxuXG4gICAgX2Z1bmN0aW9uTWF4Qnk6IGZ1bmN0aW9uKHJlc29sdmVkQXJncykge1xuICAgICAgdmFyIGV4cHJlZk5vZGUgPSByZXNvbHZlZEFyZ3NbMV07XG4gICAgICB2YXIgcmVzb2x2ZWRBcnJheSA9IHJlc29sdmVkQXJnc1swXTtcbiAgICAgIHZhciBrZXlGdW5jdGlvbiA9IHRoaXMuY3JlYXRlS2V5RnVuY3Rpb24oZXhwcmVmTm9kZSwgW1RZUEVfTlVNQkVSLCBUWVBFX1NUUklOR10pO1xuICAgICAgdmFyIG1heE51bWJlciA9IC1JbmZpbml0eTtcbiAgICAgIHZhciBtYXhSZWNvcmQ7XG4gICAgICB2YXIgY3VycmVudDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb2x2ZWRBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjdXJyZW50ID0ga2V5RnVuY3Rpb24ocmVzb2x2ZWRBcnJheVtpXSk7XG4gICAgICAgIGlmIChjdXJyZW50ID4gbWF4TnVtYmVyKSB7XG4gICAgICAgICAgbWF4TnVtYmVyID0gY3VycmVudDtcbiAgICAgICAgICBtYXhSZWNvcmQgPSByZXNvbHZlZEFycmF5W2ldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbWF4UmVjb3JkO1xuICAgIH0sXG5cbiAgICBfZnVuY3Rpb25NaW5CeTogZnVuY3Rpb24ocmVzb2x2ZWRBcmdzKSB7XG4gICAgICB2YXIgZXhwcmVmTm9kZSA9IHJlc29sdmVkQXJnc1sxXTtcbiAgICAgIHZhciByZXNvbHZlZEFycmF5ID0gcmVzb2x2ZWRBcmdzWzBdO1xuICAgICAgdmFyIGtleUZ1bmN0aW9uID0gdGhpcy5jcmVhdGVLZXlGdW5jdGlvbihleHByZWZOb2RlLCBbVFlQRV9OVU1CRVIsIFRZUEVfU1RSSU5HXSk7XG4gICAgICB2YXIgbWluTnVtYmVyID0gSW5maW5pdHk7XG4gICAgICB2YXIgbWluUmVjb3JkO1xuICAgICAgdmFyIGN1cnJlbnQ7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc29sdmVkQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY3VycmVudCA9IGtleUZ1bmN0aW9uKHJlc29sdmVkQXJyYXlbaV0pO1xuICAgICAgICBpZiAoY3VycmVudCA8IG1pbk51bWJlcikge1xuICAgICAgICAgIG1pbk51bWJlciA9IGN1cnJlbnQ7XG4gICAgICAgICAgbWluUmVjb3JkID0gcmVzb2x2ZWRBcnJheVtpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG1pblJlY29yZDtcbiAgICB9LFxuXG4gICAgY3JlYXRlS2V5RnVuY3Rpb246IGZ1bmN0aW9uKGV4cHJlZk5vZGUsIGFsbG93ZWRUeXBlcykge1xuICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgdmFyIGludGVycHJldGVyID0gdGhpcy5faW50ZXJwcmV0ZXI7XG4gICAgICB2YXIga2V5RnVuYyA9IGZ1bmN0aW9uKHgpIHtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBpbnRlcnByZXRlci52aXNpdChleHByZWZOb2RlLCB4KTtcbiAgICAgICAgaWYgKGFsbG93ZWRUeXBlcy5pbmRleE9mKHRoYXQuX2dldFR5cGVOYW1lKGN1cnJlbnQpKSA8IDApIHtcbiAgICAgICAgICB2YXIgbXNnID0gXCJUeXBlRXJyb3I6IGV4cGVjdGVkIG9uZSBvZiBcIiArIGFsbG93ZWRUeXBlcyArXG4gICAgICAgICAgICAgICAgICAgIFwiLCByZWNlaXZlZCBcIiArIHRoYXQuX2dldFR5cGVOYW1lKGN1cnJlbnQpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfTtcbiAgICAgIHJldHVybiBrZXlGdW5jO1xuICAgIH1cblxuICB9O1xuXG4gIGZ1bmN0aW9uIGNvbXBpbGUoc3RyZWFtKSB7XG4gICAgdmFyIHBhcnNlciA9IG5ldyBQYXJzZXIoKTtcbiAgICB2YXIgYXN0ID0gcGFyc2VyLnBhcnNlKHN0cmVhbSk7XG4gICAgcmV0dXJuIGFzdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRva2VuaXplKHN0cmVhbSkge1xuICAgICAgdmFyIGxleGVyID0gbmV3IExleGVyKCk7XG4gICAgICByZXR1cm4gbGV4ZXIudG9rZW5pemUoc3RyZWFtKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNlYXJjaChkYXRhLCBleHByZXNzaW9uKSB7XG4gICAgICB2YXIgcGFyc2VyID0gbmV3IFBhcnNlcigpO1xuICAgICAgLy8gVGhpcyBuZWVkcyB0byBiZSBpbXByb3ZlZC4gIEJvdGggdGhlIGludGVycHJldGVyIGFuZCBydW50aW1lIGRlcGVuZCBvblxuICAgICAgLy8gZWFjaCBvdGhlci4gIFRoZSBydW50aW1lIG5lZWRzIHRoZSBpbnRlcnByZXRlciB0byBzdXBwb3J0IGV4cHJlZnMuXG4gICAgICAvLyBUaGVyZSdzIGxpa2VseSBhIGNsZWFuIHdheSB0byBhdm9pZCB0aGUgY3ljbGljIGRlcGVuZGVuY3kuXG4gICAgICB2YXIgcnVudGltZSA9IG5ldyBSdW50aW1lKCk7XG4gICAgICB2YXIgaW50ZXJwcmV0ZXIgPSBuZXcgVHJlZUludGVycHJldGVyKHJ1bnRpbWUpO1xuICAgICAgcnVudGltZS5faW50ZXJwcmV0ZXIgPSBpbnRlcnByZXRlcjtcbiAgICAgIHZhciBub2RlID0gcGFyc2VyLnBhcnNlKGV4cHJlc3Npb24pO1xuICAgICAgcmV0dXJuIGludGVycHJldGVyLnNlYXJjaChub2RlLCBkYXRhKTtcbiAgfVxuXG4gIGV4cG9ydHMudG9rZW5pemUgPSB0b2tlbml6ZTtcbiAgZXhwb3J0cy5jb21waWxlID0gY29tcGlsZTtcbiAgZXhwb3J0cy5zZWFyY2ggPSBzZWFyY2g7XG4gIGV4cG9ydHMuc3RyaWN0RGVlcEVxdWFsID0gc3RyaWN0RGVlcEVxdWFsO1xufSkodHlwZW9mIGV4cG9ydHMgPT09IFwidW5kZWZpbmVkXCIgPyB0aGlzLmptZXNwYXRoID0ge30gOiBleHBvcnRzKTtcbiIsIid1c2Ugc3RyaWN0J1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEhhc2hCYXNlID0gcmVxdWlyZSgnaGFzaC1iYXNlJylcblxudmFyIEFSUkFZMTYgPSBuZXcgQXJyYXkoMTYpXG5cbmZ1bmN0aW9uIE1ENSAoKSB7XG4gIEhhc2hCYXNlLmNhbGwodGhpcywgNjQpXG5cbiAgLy8gc3RhdGVcbiAgdGhpcy5fYSA9IDB4Njc0NTIzMDFcbiAgdGhpcy5fYiA9IDB4ZWZjZGFiODlcbiAgdGhpcy5fYyA9IDB4OThiYWRjZmVcbiAgdGhpcy5fZCA9IDB4MTAzMjU0NzZcbn1cblxuaW5oZXJpdHMoTUQ1LCBIYXNoQmFzZSlcblxuTUQ1LnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgTSA9IEFSUkFZMTZcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgKytpKSBNW2ldID0gdGhpcy5fYmxvY2sucmVhZEludDMyTEUoaSAqIDQpXG5cbiAgdmFyIGEgPSB0aGlzLl9hXG4gIHZhciBiID0gdGhpcy5fYlxuICB2YXIgYyA9IHRoaXMuX2NcbiAgdmFyIGQgPSB0aGlzLl9kXG5cbiAgYSA9IGZuRihhLCBiLCBjLCBkLCBNWzBdLCAweGQ3NmFhNDc4LCA3KVxuICBkID0gZm5GKGQsIGEsIGIsIGMsIE1bMV0sIDB4ZThjN2I3NTYsIDEyKVxuICBjID0gZm5GKGMsIGQsIGEsIGIsIE1bMl0sIDB4MjQyMDcwZGIsIDE3KVxuICBiID0gZm5GKGIsIGMsIGQsIGEsIE1bM10sIDB4YzFiZGNlZWUsIDIyKVxuICBhID0gZm5GKGEsIGIsIGMsIGQsIE1bNF0sIDB4ZjU3YzBmYWYsIDcpXG4gIGQgPSBmbkYoZCwgYSwgYiwgYywgTVs1XSwgMHg0Nzg3YzYyYSwgMTIpXG4gIGMgPSBmbkYoYywgZCwgYSwgYiwgTVs2XSwgMHhhODMwNDYxMywgMTcpXG4gIGIgPSBmbkYoYiwgYywgZCwgYSwgTVs3XSwgMHhmZDQ2OTUwMSwgMjIpXG4gIGEgPSBmbkYoYSwgYiwgYywgZCwgTVs4XSwgMHg2OTgwOThkOCwgNylcbiAgZCA9IGZuRihkLCBhLCBiLCBjLCBNWzldLCAweDhiNDRmN2FmLCAxMilcbiAgYyA9IGZuRihjLCBkLCBhLCBiLCBNWzEwXSwgMHhmZmZmNWJiMSwgMTcpXG4gIGIgPSBmbkYoYiwgYywgZCwgYSwgTVsxMV0sIDB4ODk1Y2Q3YmUsIDIyKVxuICBhID0gZm5GKGEsIGIsIGMsIGQsIE1bMTJdLCAweDZiOTAxMTIyLCA3KVxuICBkID0gZm5GKGQsIGEsIGIsIGMsIE1bMTNdLCAweGZkOTg3MTkzLCAxMilcbiAgYyA9IGZuRihjLCBkLCBhLCBiLCBNWzE0XSwgMHhhNjc5NDM4ZSwgMTcpXG4gIGIgPSBmbkYoYiwgYywgZCwgYSwgTVsxNV0sIDB4NDliNDA4MjEsIDIyKVxuXG4gIGEgPSBmbkcoYSwgYiwgYywgZCwgTVsxXSwgMHhmNjFlMjU2MiwgNSlcbiAgZCA9IGZuRyhkLCBhLCBiLCBjLCBNWzZdLCAweGMwNDBiMzQwLCA5KVxuICBjID0gZm5HKGMsIGQsIGEsIGIsIE1bMTFdLCAweDI2NWU1YTUxLCAxNClcbiAgYiA9IGZuRyhiLCBjLCBkLCBhLCBNWzBdLCAweGU5YjZjN2FhLCAyMClcbiAgYSA9IGZuRyhhLCBiLCBjLCBkLCBNWzVdLCAweGQ2MmYxMDVkLCA1KVxuICBkID0gZm5HKGQsIGEsIGIsIGMsIE1bMTBdLCAweDAyNDQxNDUzLCA5KVxuICBjID0gZm5HKGMsIGQsIGEsIGIsIE1bMTVdLCAweGQ4YTFlNjgxLCAxNClcbiAgYiA9IGZuRyhiLCBjLCBkLCBhLCBNWzRdLCAweGU3ZDNmYmM4LCAyMClcbiAgYSA9IGZuRyhhLCBiLCBjLCBkLCBNWzldLCAweDIxZTFjZGU2LCA1KVxuICBkID0gZm5HKGQsIGEsIGIsIGMsIE1bMTRdLCAweGMzMzcwN2Q2LCA5KVxuICBjID0gZm5HKGMsIGQsIGEsIGIsIE1bM10sIDB4ZjRkNTBkODcsIDE0KVxuICBiID0gZm5HKGIsIGMsIGQsIGEsIE1bOF0sIDB4NDU1YTE0ZWQsIDIwKVxuICBhID0gZm5HKGEsIGIsIGMsIGQsIE1bMTNdLCAweGE5ZTNlOTA1LCA1KVxuICBkID0gZm5HKGQsIGEsIGIsIGMsIE1bMl0sIDB4ZmNlZmEzZjgsIDkpXG4gIGMgPSBmbkcoYywgZCwgYSwgYiwgTVs3XSwgMHg2NzZmMDJkOSwgMTQpXG4gIGIgPSBmbkcoYiwgYywgZCwgYSwgTVsxMl0sIDB4OGQyYTRjOGEsIDIwKVxuXG4gIGEgPSBmbkgoYSwgYiwgYywgZCwgTVs1XSwgMHhmZmZhMzk0MiwgNClcbiAgZCA9IGZuSChkLCBhLCBiLCBjLCBNWzhdLCAweDg3NzFmNjgxLCAxMSlcbiAgYyA9IGZuSChjLCBkLCBhLCBiLCBNWzExXSwgMHg2ZDlkNjEyMiwgMTYpXG4gIGIgPSBmbkgoYiwgYywgZCwgYSwgTVsxNF0sIDB4ZmRlNTM4MGMsIDIzKVxuICBhID0gZm5IKGEsIGIsIGMsIGQsIE1bMV0sIDB4YTRiZWVhNDQsIDQpXG4gIGQgPSBmbkgoZCwgYSwgYiwgYywgTVs0XSwgMHg0YmRlY2ZhOSwgMTEpXG4gIGMgPSBmbkgoYywgZCwgYSwgYiwgTVs3XSwgMHhmNmJiNGI2MCwgMTYpXG4gIGIgPSBmbkgoYiwgYywgZCwgYSwgTVsxMF0sIDB4YmViZmJjNzAsIDIzKVxuICBhID0gZm5IKGEsIGIsIGMsIGQsIE1bMTNdLCAweDI4OWI3ZWM2LCA0KVxuICBkID0gZm5IKGQsIGEsIGIsIGMsIE1bMF0sIDB4ZWFhMTI3ZmEsIDExKVxuICBjID0gZm5IKGMsIGQsIGEsIGIsIE1bM10sIDB4ZDRlZjMwODUsIDE2KVxuICBiID0gZm5IKGIsIGMsIGQsIGEsIE1bNl0sIDB4MDQ4ODFkMDUsIDIzKVxuICBhID0gZm5IKGEsIGIsIGMsIGQsIE1bOV0sIDB4ZDlkNGQwMzksIDQpXG4gIGQgPSBmbkgoZCwgYSwgYiwgYywgTVsxMl0sIDB4ZTZkYjk5ZTUsIDExKVxuICBjID0gZm5IKGMsIGQsIGEsIGIsIE1bMTVdLCAweDFmYTI3Y2Y4LCAxNilcbiAgYiA9IGZuSChiLCBjLCBkLCBhLCBNWzJdLCAweGM0YWM1NjY1LCAyMylcblxuICBhID0gZm5JKGEsIGIsIGMsIGQsIE1bMF0sIDB4ZjQyOTIyNDQsIDYpXG4gIGQgPSBmbkkoZCwgYSwgYiwgYywgTVs3XSwgMHg0MzJhZmY5NywgMTApXG4gIGMgPSBmbkkoYywgZCwgYSwgYiwgTVsxNF0sIDB4YWI5NDIzYTcsIDE1KVxuICBiID0gZm5JKGIsIGMsIGQsIGEsIE1bNV0sIDB4ZmM5M2EwMzksIDIxKVxuICBhID0gZm5JKGEsIGIsIGMsIGQsIE1bMTJdLCAweDY1NWI1OWMzLCA2KVxuICBkID0gZm5JKGQsIGEsIGIsIGMsIE1bM10sIDB4OGYwY2NjOTIsIDEwKVxuICBjID0gZm5JKGMsIGQsIGEsIGIsIE1bMTBdLCAweGZmZWZmNDdkLCAxNSlcbiAgYiA9IGZuSShiLCBjLCBkLCBhLCBNWzFdLCAweDg1ODQ1ZGQxLCAyMSlcbiAgYSA9IGZuSShhLCBiLCBjLCBkLCBNWzhdLCAweDZmYTg3ZTRmLCA2KVxuICBkID0gZm5JKGQsIGEsIGIsIGMsIE1bMTVdLCAweGZlMmNlNmUwLCAxMClcbiAgYyA9IGZuSShjLCBkLCBhLCBiLCBNWzZdLCAweGEzMDE0MzE0LCAxNSlcbiAgYiA9IGZuSShiLCBjLCBkLCBhLCBNWzEzXSwgMHg0ZTA4MTFhMSwgMjEpXG4gIGEgPSBmbkkoYSwgYiwgYywgZCwgTVs0XSwgMHhmNzUzN2U4MiwgNilcbiAgZCA9IGZuSShkLCBhLCBiLCBjLCBNWzExXSwgMHhiZDNhZjIzNSwgMTApXG4gIGMgPSBmbkkoYywgZCwgYSwgYiwgTVsyXSwgMHgyYWQ3ZDJiYiwgMTUpXG4gIGIgPSBmbkkoYiwgYywgZCwgYSwgTVs5XSwgMHhlYjg2ZDM5MSwgMjEpXG5cbiAgdGhpcy5fYSA9ICh0aGlzLl9hICsgYSkgfCAwXG4gIHRoaXMuX2IgPSAodGhpcy5fYiArIGIpIHwgMFxuICB0aGlzLl9jID0gKHRoaXMuX2MgKyBjKSB8IDBcbiAgdGhpcy5fZCA9ICh0aGlzLl9kICsgZCkgfCAwXG59XG5cbk1ENS5wcm90b3R5cGUuX2RpZ2VzdCA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gY3JlYXRlIHBhZGRpbmcgYW5kIGhhbmRsZSBibG9ja3NcbiAgdGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK10gPSAweDgwXG4gIGlmICh0aGlzLl9ibG9ja09mZnNldCA+IDU2KSB7XG4gICAgdGhpcy5fYmxvY2suZmlsbCgwLCB0aGlzLl9ibG9ja09mZnNldCwgNjQpXG4gICAgdGhpcy5fdXBkYXRlKClcbiAgICB0aGlzLl9ibG9ja09mZnNldCA9IDBcbiAgfVxuXG4gIHRoaXMuX2Jsb2NrLmZpbGwoMCwgdGhpcy5fYmxvY2tPZmZzZXQsIDU2KVxuICB0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSwgNTYpXG4gIHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLCA2MClcbiAgdGhpcy5fdXBkYXRlKClcblxuICAvLyBwcm9kdWNlIHJlc3VsdFxuICB2YXIgYnVmZmVyID0gbmV3IEJ1ZmZlcigxNilcbiAgYnVmZmVyLndyaXRlSW50MzJMRSh0aGlzLl9hLCAwKVxuICBidWZmZXIud3JpdGVJbnQzMkxFKHRoaXMuX2IsIDQpXG4gIGJ1ZmZlci53cml0ZUludDMyTEUodGhpcy5fYywgOClcbiAgYnVmZmVyLndyaXRlSW50MzJMRSh0aGlzLl9kLCAxMilcbiAgcmV0dXJuIGJ1ZmZlclxufVxuXG5mdW5jdGlvbiByb3RsICh4LCBuKSB7XG4gIHJldHVybiAoeCA8PCBuKSB8ICh4ID4+PiAoMzIgLSBuKSlcbn1cblxuZnVuY3Rpb24gZm5GIChhLCBiLCBjLCBkLCBtLCBrLCBzKSB7XG4gIHJldHVybiAocm90bCgoYSArICgoYiAmIGMpIHwgKCh+YikgJiBkKSkgKyBtICsgaykgfCAwLCBzKSArIGIpIHwgMFxufVxuXG5mdW5jdGlvbiBmbkcgKGEsIGIsIGMsIGQsIG0sIGssIHMpIHtcbiAgcmV0dXJuIChyb3RsKChhICsgKChiICYgZCkgfCAoYyAmICh+ZCkpKSArIG0gKyBrKSB8IDAsIHMpICsgYikgfCAwXG59XG5cbmZ1bmN0aW9uIGZuSCAoYSwgYiwgYywgZCwgbSwgaywgcykge1xuICByZXR1cm4gKHJvdGwoKGEgKyAoYiBeIGMgXiBkKSArIG0gKyBrKSB8IDAsIHMpICsgYikgfCAwXG59XG5cbmZ1bmN0aW9uIGZuSSAoYSwgYiwgYywgZCwgbSwgaywgcykge1xuICByZXR1cm4gKHJvdGwoKGEgKyAoKGMgXiAoYiB8ICh+ZCkpKSkgKyBtICsgaykgfCAwLCBzKSArIGIpIHwgMFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1ENVxuIiwidmFyIGJuID0gcmVxdWlyZSgnYm4uanMnKTtcbnZhciBicm9yYW5kID0gcmVxdWlyZSgnYnJvcmFuZCcpO1xuXG5mdW5jdGlvbiBNaWxsZXJSYWJpbihyYW5kKSB7XG4gIHRoaXMucmFuZCA9IHJhbmQgfHwgbmV3IGJyb3JhbmQuUmFuZCgpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBNaWxsZXJSYWJpbjtcblxuTWlsbGVyUmFiaW4uY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKHJhbmQpIHtcbiAgcmV0dXJuIG5ldyBNaWxsZXJSYWJpbihyYW5kKTtcbn07XG5cbk1pbGxlclJhYmluLnByb3RvdHlwZS5fcmFuZGJlbG93ID0gZnVuY3Rpb24gX3JhbmRiZWxvdyhuKSB7XG4gIHZhciBsZW4gPSBuLmJpdExlbmd0aCgpO1xuICB2YXIgbWluX2J5dGVzID0gTWF0aC5jZWlsKGxlbiAvIDgpO1xuXG4gIC8vIEdlbmVyYWdlIHJhbmRvbSBieXRlcyB1bnRpbCBhIG51bWJlciBsZXNzIHRoYW4gbiBpcyBmb3VuZC5cbiAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgMC4ubi0xIGhhdmUgYW4gZXF1YWwgcHJvYmFiaWxpdHkgb2YgYmVpbmcgc2VsZWN0ZWQuXG4gIGRvXG4gICAgdmFyIGEgPSBuZXcgYm4odGhpcy5yYW5kLmdlbmVyYXRlKG1pbl9ieXRlcykpO1xuICB3aGlsZSAoYS5jbXAobikgPj0gMCk7XG5cbiAgcmV0dXJuIGE7XG59O1xuXG5NaWxsZXJSYWJpbi5wcm90b3R5cGUuX3JhbmRyYW5nZSA9IGZ1bmN0aW9uIF9yYW5kcmFuZ2Uoc3RhcnQsIHN0b3ApIHtcbiAgLy8gR2VuZXJhdGUgYSByYW5kb20gbnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBzdGFydCBhbmQgbGVzcyB0aGFuIHN0b3AuXG4gIHZhciBzaXplID0gc3RvcC5zdWIoc3RhcnQpO1xuICByZXR1cm4gc3RhcnQuYWRkKHRoaXMuX3JhbmRiZWxvdyhzaXplKSk7XG59O1xuXG5NaWxsZXJSYWJpbi5wcm90b3R5cGUudGVzdCA9IGZ1bmN0aW9uIHRlc3QobiwgaywgY2IpIHtcbiAgdmFyIGxlbiA9IG4uYml0TGVuZ3RoKCk7XG4gIHZhciByZWQgPSBibi5tb250KG4pO1xuICB2YXIgcm9uZSA9IG5ldyBibigxKS50b1JlZChyZWQpO1xuXG4gIGlmICghaylcbiAgICBrID0gTWF0aC5tYXgoMSwgKGxlbiAvIDQ4KSB8IDApO1xuXG4gIC8vIEZpbmQgZCBhbmQgcywgKG4gLSAxKSA9ICgyIF4gcykgKiBkO1xuICB2YXIgbjEgPSBuLnN1Ym4oMSk7XG4gIGZvciAodmFyIHMgPSAwOyAhbjEudGVzdG4ocyk7IHMrKykge31cbiAgdmFyIGQgPSBuLnNocm4ocyk7XG5cbiAgdmFyIHJuMSA9IG4xLnRvUmVkKHJlZCk7XG5cbiAgdmFyIHByaW1lID0gdHJ1ZTtcbiAgZm9yICg7IGsgPiAwOyBrLS0pIHtcbiAgICB2YXIgYSA9IHRoaXMuX3JhbmRyYW5nZShuZXcgYm4oMiksIG4xKTtcbiAgICBpZiAoY2IpXG4gICAgICBjYihhKTtcblxuICAgIHZhciB4ID0gYS50b1JlZChyZWQpLnJlZFBvdyhkKTtcbiAgICBpZiAoeC5jbXAocm9uZSkgPT09IDAgfHwgeC5jbXAocm4xKSA9PT0gMClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBzOyBpKyspIHtcbiAgICAgIHggPSB4LnJlZFNxcigpO1xuXG4gICAgICBpZiAoeC5jbXAocm9uZSkgPT09IDApXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICh4LmNtcChybjEpID09PSAwKVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gcylcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBwcmltZTtcbn07XG5cbk1pbGxlclJhYmluLnByb3RvdHlwZS5nZXREaXZpc29yID0gZnVuY3Rpb24gZ2V0RGl2aXNvcihuLCBrKSB7XG4gIHZhciBsZW4gPSBuLmJpdExlbmd0aCgpO1xuICB2YXIgcmVkID0gYm4ubW9udChuKTtcbiAgdmFyIHJvbmUgPSBuZXcgYm4oMSkudG9SZWQocmVkKTtcblxuICBpZiAoIWspXG4gICAgayA9IE1hdGgubWF4KDEsIChsZW4gLyA0OCkgfCAwKTtcblxuICAvLyBGaW5kIGQgYW5kIHMsIChuIC0gMSkgPSAoMiBeIHMpICogZDtcbiAgdmFyIG4xID0gbi5zdWJuKDEpO1xuICBmb3IgKHZhciBzID0gMDsgIW4xLnRlc3RuKHMpOyBzKyspIHt9XG4gIHZhciBkID0gbi5zaHJuKHMpO1xuXG4gIHZhciBybjEgPSBuMS50b1JlZChyZWQpO1xuXG4gIGZvciAoOyBrID4gMDsgay0tKSB7XG4gICAgdmFyIGEgPSB0aGlzLl9yYW5kcmFuZ2UobmV3IGJuKDIpLCBuMSk7XG5cbiAgICB2YXIgZyA9IG4uZ2NkKGEpO1xuICAgIGlmIChnLmNtcG4oMSkgIT09IDApXG4gICAgICByZXR1cm4gZztcblxuICAgIHZhciB4ID0gYS50b1JlZChyZWQpLnJlZFBvdyhkKTtcbiAgICBpZiAoeC5jbXAocm9uZSkgPT09IDAgfHwgeC5jbXAocm4xKSA9PT0gMClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBzOyBpKyspIHtcbiAgICAgIHggPSB4LnJlZFNxcigpO1xuXG4gICAgICBpZiAoeC5jbXAocm9uZSkgPT09IDApXG4gICAgICAgIHJldHVybiB4LmZyb21SZWQoKS5zdWJuKDEpLmdjZChuKTtcbiAgICAgIGlmICh4LmNtcChybjEpID09PSAwKVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gcykge1xuICAgICAgeCA9IHgucmVkU3FyKCk7XG4gICAgICByZXR1cm4geC5mcm9tUmVkKCkuc3VibigxKS5nY2Qobik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gYXNzZXJ0O1xuXG5mdW5jdGlvbiBhc3NlcnQodmFsLCBtc2cpIHtcbiAgaWYgKCF2YWwpXG4gICAgdGhyb3cgbmV3IEVycm9yKG1zZyB8fCAnQXNzZXJ0aW9uIGZhaWxlZCcpO1xufVxuXG5hc3NlcnQuZXF1YWwgPSBmdW5jdGlvbiBhc3NlcnRFcXVhbChsLCByLCBtc2cpIHtcbiAgaWYgKGwgIT0gcilcbiAgICB0aHJvdyBuZXcgRXJyb3IobXNnIHx8ICgnQXNzZXJ0aW9uIGZhaWxlZDogJyArIGwgKyAnICE9ICcgKyByKSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdXRpbHMgPSBleHBvcnRzO1xuXG5mdW5jdGlvbiB0b0FycmF5KG1zZywgZW5jKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG1zZykpXG4gICAgcmV0dXJuIG1zZy5zbGljZSgpO1xuICBpZiAoIW1zZylcbiAgICByZXR1cm4gW107XG4gIHZhciByZXMgPSBbXTtcbiAgaWYgKHR5cGVvZiBtc2cgIT09ICdzdHJpbmcnKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpKyspXG4gICAgICByZXNbaV0gPSBtc2dbaV0gfCAwO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgaWYgKGVuYyA9PT0gJ2hleCcpIHtcbiAgICBtc2cgPSBtc2cucmVwbGFjZSgvW15hLXowLTldKy9pZywgJycpO1xuICAgIGlmIChtc2cubGVuZ3RoICUgMiAhPT0gMClcbiAgICAgIG1zZyA9ICcwJyArIG1zZztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkgKz0gMilcbiAgICAgIHJlcy5wdXNoKHBhcnNlSW50KG1zZ1tpXSArIG1zZ1tpICsgMV0sIDE2KSk7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtc2cubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjID0gbXNnLmNoYXJDb2RlQXQoaSk7XG4gICAgICB2YXIgaGkgPSBjID4+IDg7XG4gICAgICB2YXIgbG8gPSBjICYgMHhmZjtcbiAgICAgIGlmIChoaSlcbiAgICAgICAgcmVzLnB1c2goaGksIGxvKTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmVzLnB1c2gobG8pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzO1xufVxudXRpbHMudG9BcnJheSA9IHRvQXJyYXk7XG5cbmZ1bmN0aW9uIHplcm8yKHdvcmQpIHtcbiAgaWYgKHdvcmQubGVuZ3RoID09PSAxKVxuICAgIHJldHVybiAnMCcgKyB3b3JkO1xuICBlbHNlXG4gICAgcmV0dXJuIHdvcmQ7XG59XG51dGlscy56ZXJvMiA9IHplcm8yO1xuXG5mdW5jdGlvbiB0b0hleChtc2cpIHtcbiAgdmFyIHJlcyA9ICcnO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkrKylcbiAgICByZXMgKz0gemVybzIobXNnW2ldLnRvU3RyaW5nKDE2KSk7XG4gIHJldHVybiByZXM7XG59XG51dGlscy50b0hleCA9IHRvSGV4O1xuXG51dGlscy5lbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUoYXJyLCBlbmMpIHtcbiAgaWYgKGVuYyA9PT0gJ2hleCcpXG4gICAgcmV0dXJuIHRvSGV4KGFycik7XG4gIGVsc2VcbiAgICByZXR1cm4gYXJyO1xufTtcbiIsIi8vISBtb21lbnQuanNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuICAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShmYWN0b3J5KSA6XG4gICAgZ2xvYmFsLm1vbWVudCA9IGZhY3RvcnkoKVxufSh0aGlzLCAoZnVuY3Rpb24gKCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgaG9va0NhbGxiYWNrO1xuXG4gICAgZnVuY3Rpb24gaG9va3MgKCkge1xuICAgICAgICByZXR1cm4gaG9va0NhbGxiYWNrLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyBkb25lIHRvIHJlZ2lzdGVyIHRoZSBtZXRob2QgY2FsbGVkIHdpdGggbW9tZW50KClcbiAgICAvLyB3aXRob3V0IGNyZWF0aW5nIGNpcmN1bGFyIGRlcGVuZGVuY2llcy5cbiAgICBmdW5jdGlvbiBzZXRIb29rQ2FsbGJhY2sgKGNhbGxiYWNrKSB7XG4gICAgICAgIGhvb2tDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQXJyYXkoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0IGluc3RhbmNlb2YgQXJyYXkgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09iamVjdChpbnB1dCkge1xuICAgICAgICAvLyBJRTggd2lsbCB0cmVhdCB1bmRlZmluZWQgYW5kIG51bGwgYXMgb2JqZWN0IGlmIGl0IHdhc24ndCBmb3JcbiAgICAgICAgLy8gaW5wdXQgIT0gbnVsbFxuICAgICAgICByZXR1cm4gaW5wdXQgIT0gbnVsbCAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBPYmplY3RdJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09iamVjdEVtcHR5KG9iaikge1xuICAgICAgICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMpIHtcbiAgICAgICAgICAgIHJldHVybiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5sZW5ndGggPT09IDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGs7XG4gICAgICAgICAgICBmb3IgKGsgaW4gb2JqKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1VuZGVmaW5lZChpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgPT09IHZvaWQgMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc051bWJlcihpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJyB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBOdW1iZXJdJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0RhdGUoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0IGluc3RhbmNlb2YgRGF0ZSB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBEYXRlXSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFwKGFyciwgZm4pIHtcbiAgICAgICAgdmFyIHJlcyA9IFtdLCBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICByZXMucHVzaChmbihhcnJbaV0sIGkpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhc093blByb3AoYSwgYikge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4dGVuZChhLCBiKSB7XG4gICAgICAgIGZvciAodmFyIGkgaW4gYikge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoYiwgaSkpIHtcbiAgICAgICAgICAgICAgICBhW2ldID0gYltpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNPd25Qcm9wKGIsICd0b1N0cmluZycpKSB7XG4gICAgICAgICAgICBhLnRvU3RyaW5nID0gYi50b1N0cmluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNPd25Qcm9wKGIsICd2YWx1ZU9mJykpIHtcbiAgICAgICAgICAgIGEudmFsdWVPZiA9IGIudmFsdWVPZjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVUQyAoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsT3JVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QsIHRydWUpLnV0YygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlZmF1bHRQYXJzaW5nRmxhZ3MoKSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gZGVlcCBjbG9uZSB0aGlzIG9iamVjdC5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVtcHR5ICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgdW51c2VkVG9rZW5zICAgIDogW10sXG4gICAgICAgICAgICB1bnVzZWRJbnB1dCAgICAgOiBbXSxcbiAgICAgICAgICAgIG92ZXJmbG93ICAgICAgICA6IC0yLFxuICAgICAgICAgICAgY2hhcnNMZWZ0T3ZlciAgIDogMCxcbiAgICAgICAgICAgIG51bGxJbnB1dCAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgaW52YWxpZE1vbnRoICAgIDogbnVsbCxcbiAgICAgICAgICAgIGludmFsaWRGb3JtYXQgICA6IGZhbHNlLFxuICAgICAgICAgICAgdXNlckludmFsaWRhdGVkIDogZmFsc2UsXG4gICAgICAgICAgICBpc28gICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHBhcnNlZERhdGVQYXJ0cyA6IFtdLFxuICAgICAgICAgICAgbWVyaWRpZW0gICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgIHJmYzI4MjIgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgd2Vla2RheU1pc21hdGNoIDogZmFsc2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRQYXJzaW5nRmxhZ3MobSkge1xuICAgICAgICBpZiAobS5fcGYgPT0gbnVsbCkge1xuICAgICAgICAgICAgbS5fcGYgPSBkZWZhdWx0UGFyc2luZ0ZsYWdzKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG0uX3BmO1xuICAgIH1cblxuICAgIHZhciBzb21lO1xuICAgIGlmIChBcnJheS5wcm90b3R5cGUuc29tZSkge1xuICAgICAgICBzb21lID0gQXJyYXkucHJvdG90eXBlLnNvbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc29tZSA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICAgICAgICAgIHZhciB0ID0gT2JqZWN0KHRoaXMpO1xuICAgICAgICAgICAgdmFyIGxlbiA9IHQubGVuZ3RoID4+PiAwO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgaW4gdCAmJiBmdW4uY2FsbCh0aGlzLCB0W2ldLCBpLCB0KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkKG0pIHtcbiAgICAgICAgaWYgKG0uX2lzVmFsaWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGZsYWdzID0gZ2V0UGFyc2luZ0ZsYWdzKG0pO1xuICAgICAgICAgICAgdmFyIHBhcnNlZFBhcnRzID0gc29tZS5jYWxsKGZsYWdzLnBhcnNlZERhdGVQYXJ0cywgZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaSAhPSBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgaXNOb3dWYWxpZCA9ICFpc05hTihtLl9kLmdldFRpbWUoKSkgJiZcbiAgICAgICAgICAgICAgICBmbGFncy5vdmVyZmxvdyA8IDAgJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MuZW1wdHkgJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZE1vbnRoICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRXZWVrZGF5ICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLndlZWtkYXlNaXNtYXRjaCAmJlxuICAgICAgICAgICAgICAgICFmbGFncy5udWxsSW5wdXQgJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZEZvcm1hdCAmJlxuICAgICAgICAgICAgICAgICFmbGFncy51c2VySW52YWxpZGF0ZWQgJiZcbiAgICAgICAgICAgICAgICAoIWZsYWdzLm1lcmlkaWVtIHx8IChmbGFncy5tZXJpZGllbSAmJiBwYXJzZWRQYXJ0cykpO1xuXG4gICAgICAgICAgICBpZiAobS5fc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaXNOb3dWYWxpZCA9IGlzTm93VmFsaWQgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MuY2hhcnNMZWZ0T3ZlciA9PT0gMCAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy51bnVzZWRUb2tlbnMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmJpZ0hvdXIgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKE9iamVjdC5pc0Zyb3plbiA9PSBudWxsIHx8ICFPYmplY3QuaXNGcm96ZW4obSkpIHtcbiAgICAgICAgICAgICAgICBtLl9pc1ZhbGlkID0gaXNOb3dWYWxpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc05vd1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtLl9pc1ZhbGlkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUludmFsaWQgKGZsYWdzKSB7XG4gICAgICAgIHZhciBtID0gY3JlYXRlVVRDKE5hTik7XG4gICAgICAgIGlmIChmbGFncyAhPSBudWxsKSB7XG4gICAgICAgICAgICBleHRlbmQoZ2V0UGFyc2luZ0ZsYWdzKG0pLCBmbGFncyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MobSkudXNlckludmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIC8vIFBsdWdpbnMgdGhhdCBhZGQgcHJvcGVydGllcyBzaG91bGQgYWxzbyBhZGQgdGhlIGtleSBoZXJlIChudWxsIHZhbHVlKSxcbiAgICAvLyBzbyB3ZSBjYW4gcHJvcGVybHkgY2xvbmUgb3Vyc2VsdmVzLlxuICAgIHZhciBtb21lbnRQcm9wZXJ0aWVzID0gaG9va3MubW9tZW50UHJvcGVydGllcyA9IFtdO1xuXG4gICAgZnVuY3Rpb24gY29weUNvbmZpZyh0bywgZnJvbSkge1xuICAgICAgICB2YXIgaSwgcHJvcCwgdmFsO1xuXG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5faXNBTW9tZW50T2JqZWN0KSkge1xuICAgICAgICAgICAgdG8uX2lzQU1vbWVudE9iamVjdCA9IGZyb20uX2lzQU1vbWVudE9iamVjdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2kpKSB7XG4gICAgICAgICAgICB0by5faSA9IGZyb20uX2k7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9mKSkge1xuICAgICAgICAgICAgdG8uX2YgPSBmcm9tLl9mO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fbCkpIHtcbiAgICAgICAgICAgIHRvLl9sID0gZnJvbS5fbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX3N0cmljdCkpIHtcbiAgICAgICAgICAgIHRvLl9zdHJpY3QgPSBmcm9tLl9zdHJpY3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl90em0pKSB7XG4gICAgICAgICAgICB0by5fdHptID0gZnJvbS5fdHptO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5faXNVVEMpKSB7XG4gICAgICAgICAgICB0by5faXNVVEMgPSBmcm9tLl9pc1VUQztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX29mZnNldCkpIHtcbiAgICAgICAgICAgIHRvLl9vZmZzZXQgPSBmcm9tLl9vZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9wZikpIHtcbiAgICAgICAgICAgIHRvLl9wZiA9IGdldFBhcnNpbmdGbGFncyhmcm9tKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2xvY2FsZSkpIHtcbiAgICAgICAgICAgIHRvLl9sb2NhbGUgPSBmcm9tLl9sb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9tZW50UHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbW9tZW50UHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHByb3AgPSBtb21lbnRQcm9wZXJ0aWVzW2ldO1xuICAgICAgICAgICAgICAgIHZhbCA9IGZyb21bcHJvcF07XG4gICAgICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh2YWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvW3Byb3BdID0gdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0bztcbiAgICB9XG5cbiAgICB2YXIgdXBkYXRlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgLy8gTW9tZW50IHByb3RvdHlwZSBvYmplY3RcbiAgICBmdW5jdGlvbiBNb21lbnQoY29uZmlnKSB7XG4gICAgICAgIGNvcHlDb25maWcodGhpcywgY29uZmlnKTtcbiAgICAgICAgdGhpcy5fZCA9IG5ldyBEYXRlKGNvbmZpZy5fZCAhPSBudWxsID8gY29uZmlnLl9kLmdldFRpbWUoKSA6IE5hTik7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2QgPSBuZXcgRGF0ZShOYU4pO1xuICAgICAgICB9XG4gICAgICAgIC8vIFByZXZlbnQgaW5maW5pdGUgbG9vcCBpbiBjYXNlIHVwZGF0ZU9mZnNldCBjcmVhdGVzIG5ldyBtb21lbnRcbiAgICAgICAgLy8gb2JqZWN0cy5cbiAgICAgICAgaWYgKHVwZGF0ZUluUHJvZ3Jlc3MgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgICAgIHVwZGF0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTW9tZW50IChvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIE1vbWVudCB8fCAob2JqICE9IG51bGwgJiYgb2JqLl9pc0FNb21lbnRPYmplY3QgIT0gbnVsbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWJzRmxvb3IgKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgLy8gLTAgLT4gMFxuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbChudW1iZXIpIHx8IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JbnQoYXJndW1lbnRGb3JDb2VyY2lvbikge1xuICAgICAgICB2YXIgY29lcmNlZE51bWJlciA9ICthcmd1bWVudEZvckNvZXJjaW9uLFxuICAgICAgICAgICAgdmFsdWUgPSAwO1xuXG4gICAgICAgIGlmIChjb2VyY2VkTnVtYmVyICE9PSAwICYmIGlzRmluaXRlKGNvZXJjZWROdW1iZXIpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGFic0Zsb29yKGNvZXJjZWROdW1iZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8vIGNvbXBhcmUgdHdvIGFycmF5cywgcmV0dXJuIHRoZSBudW1iZXIgb2YgZGlmZmVyZW5jZXNcbiAgICBmdW5jdGlvbiBjb21wYXJlQXJyYXlzKGFycmF5MSwgYXJyYXkyLCBkb250Q29udmVydCkge1xuICAgICAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJyYXkxLmxlbmd0aCwgYXJyYXkyLmxlbmd0aCksXG4gICAgICAgICAgICBsZW5ndGhEaWZmID0gTWF0aC5hYnMoYXJyYXkxLmxlbmd0aCAtIGFycmF5Mi5sZW5ndGgpLFxuICAgICAgICAgICAgZGlmZnMgPSAwLFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoKGRvbnRDb252ZXJ0ICYmIGFycmF5MVtpXSAhPT0gYXJyYXkyW2ldKSB8fFxuICAgICAgICAgICAgICAgICghZG9udENvbnZlcnQgJiYgdG9JbnQoYXJyYXkxW2ldKSAhPT0gdG9JbnQoYXJyYXkyW2ldKSkpIHtcbiAgICAgICAgICAgICAgICBkaWZmcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaWZmcyArIGxlbmd0aERpZmY7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Fybihtc2cpIHtcbiAgICAgICAgaWYgKGhvb2tzLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9PT0gZmFsc2UgJiZcbiAgICAgICAgICAgICAgICAodHlwZW9mIGNvbnNvbGUgIT09ICAndW5kZWZpbmVkJykgJiYgY29uc29sZS53YXJuKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0RlcHJlY2F0aW9uIHdhcm5pbmc6ICcgKyBtc2cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVwcmVjYXRlKG1zZywgZm4pIHtcbiAgICAgICAgdmFyIGZpcnN0VGltZSA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIGV4dGVuZChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIobnVsbCwgbXNnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaXJzdFRpbWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICAgICAgICAgIHZhciBhcmc7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYXJndW1lbnRzW2ldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnICs9ICdcXG5bJyArIGkgKyAnXSAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGFyZ3VtZW50c1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyArPSBrZXkgKyAnOiAnICsgYXJndW1lbnRzWzBdW2tleV0gKyAnLCAnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIHRyYWlsaW5nIGNvbW1hIGFuZCBzcGFjZVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MucHVzaChhcmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3YXJuKG1zZyArICdcXG5Bcmd1bWVudHM6ICcgKyBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKS5qb2luKCcnKSArICdcXG4nICsgKG5ldyBFcnJvcigpKS5zdGFjayk7XG4gICAgICAgICAgICAgICAgZmlyc3RUaW1lID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfSwgZm4pO1xuICAgIH1cblxuICAgIHZhciBkZXByZWNhdGlvbnMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGRlcHJlY2F0ZVNpbXBsZShuYW1lLCBtc2cpIHtcbiAgICAgICAgaWYgKGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciAhPSBudWxsKSB7XG4gICAgICAgICAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIobmFtZSwgbXNnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRlcHJlY2F0aW9uc1tuYW1lXSkge1xuICAgICAgICAgICAgd2Fybihtc2cpO1xuICAgICAgICAgICAgZGVwcmVjYXRpb25zW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhvb2tzLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9IGZhbHNlO1xuICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciA9IG51bGw7XG5cbiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIEZ1bmN0aW9uIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0IChjb25maWcpIHtcbiAgICAgICAgdmFyIHByb3AsIGk7XG4gICAgICAgIGZvciAoaSBpbiBjb25maWcpIHtcbiAgICAgICAgICAgIHByb3AgPSBjb25maWdbaV07XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihwcm9wKSkge1xuICAgICAgICAgICAgICAgIHRoaXNbaV0gPSBwcm9wO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzWydfJyArIGldID0gcHJvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIC8vIExlbmllbnQgb3JkaW5hbCBwYXJzaW5nIGFjY2VwdHMganVzdCBhIG51bWJlciBpbiBhZGRpdGlvbiB0b1xuICAgICAgICAvLyBudW1iZXIgKyAocG9zc2libHkpIHN0dWZmIGNvbWluZyBmcm9tIF9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlLlxuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgICAgIHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICh0aGlzLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlLnNvdXJjZSB8fCB0aGlzLl9vcmRpbmFsUGFyc2Uuc291cmNlKSArXG4gICAgICAgICAgICAgICAgJ3wnICsgKC9cXGR7MSwyfS8pLnNvdXJjZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY2hpbGRDb25maWcpIHtcbiAgICAgICAgdmFyIHJlcyA9IGV4dGVuZCh7fSwgcGFyZW50Q29uZmlnKSwgcHJvcDtcbiAgICAgICAgZm9yIChwcm9wIGluIGNoaWxkQ29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcChjaGlsZENvbmZpZywgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNPYmplY3QocGFyZW50Q29uZmlnW3Byb3BdKSAmJiBpc09iamVjdChjaGlsZENvbmZpZ1twcm9wXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzW3Byb3BdID0ge307XG4gICAgICAgICAgICAgICAgICAgIGV4dGVuZChyZXNbcHJvcF0sIHBhcmVudENvbmZpZ1twcm9wXSk7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVuZChyZXNbcHJvcF0sIGNoaWxkQ29uZmlnW3Byb3BdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkQ29uZmlnW3Byb3BdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gY2hpbGRDb25maWdbcHJvcF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJlc1twcm9wXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChwcm9wIGluIHBhcmVudENvbmZpZykge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AocGFyZW50Q29uZmlnLCBwcm9wKSAmJlxuICAgICAgICAgICAgICAgICAgICAhaGFzT3duUHJvcChjaGlsZENvbmZpZywgcHJvcCkgJiZcbiAgICAgICAgICAgICAgICAgICAgaXNPYmplY3QocGFyZW50Q29uZmlnW3Byb3BdKSkge1xuICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBjaGFuZ2VzIHRvIHByb3BlcnRpZXMgZG9uJ3QgbW9kaWZ5IHBhcmVudCBjb25maWdcbiAgICAgICAgICAgICAgICByZXNbcHJvcF0gPSBleHRlbmQoe30sIHJlc1twcm9wXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBMb2NhbGUoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZXQoY29uZmlnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBrZXlzO1xuXG4gICAgaWYgKE9iamVjdC5rZXlzKSB7XG4gICAgICAgIGtleXMgPSBPYmplY3Qua2V5cztcbiAgICB9IGVsc2Uge1xuICAgICAgICBrZXlzID0gZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgdmFyIGksIHJlcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChpIGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKG9iaiwgaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdENhbGVuZGFyID0ge1xuICAgICAgICBzYW1lRGF5IDogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICBuZXh0RGF5IDogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICBsYXN0RGF5IDogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgbGFzdFdlZWsgOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNhbGVuZGFyIChrZXksIG1vbSwgbm93KSB7XG4gICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9jYWxlbmRhcltrZXldIHx8IHRoaXMuX2NhbGVuZGFyWydzYW1lRWxzZSddO1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihvdXRwdXQpID8gb3V0cHV0LmNhbGwobW9tLCBub3cpIDogb3V0cHV0O1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9uZ0RhdGVGb3JtYXQgPSB7XG4gICAgICAgIExUUyAgOiAnaDptbTpzcyBBJyxcbiAgICAgICAgTFQgICA6ICdoOm1tIEEnLFxuICAgICAgICBMICAgIDogJ01NL0REL1lZWVknLFxuICAgICAgICBMTCAgIDogJ01NTU0gRCwgWVlZWScsXG4gICAgICAgIExMTCAgOiAnTU1NTSBELCBZWVlZIGg6bW0gQScsXG4gICAgICAgIExMTEwgOiAnZGRkZCwgTU1NTSBELCBZWVlZIGg6bW0gQSdcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gbG9uZ0RhdGVGb3JtYXQgKGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XSxcbiAgICAgICAgICAgIGZvcm1hdFVwcGVyID0gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5LnRvVXBwZXJDYXNlKCldO1xuXG4gICAgICAgIGlmIChmb3JtYXQgfHwgIWZvcm1hdFVwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XSA9IGZvcm1hdFVwcGVyLnJlcGxhY2UoL01NTU18TU18RER8ZGRkZC9nLCBmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsLnNsaWNlKDEpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdEludmFsaWREYXRlID0gJ0ludmFsaWQgZGF0ZSc7XG5cbiAgICBmdW5jdGlvbiBpbnZhbGlkRGF0ZSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnZhbGlkRGF0ZTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdE9yZGluYWwgPSAnJWQnO1xuICAgIHZhciBkZWZhdWx0RGF5T2ZNb250aE9yZGluYWxQYXJzZSA9IC9cXGR7MSwyfS87XG5cbiAgICBmdW5jdGlvbiBvcmRpbmFsIChudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yZGluYWwucmVwbGFjZSgnJWQnLCBudW1iZXIpO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0UmVsYXRpdmVUaW1lID0ge1xuICAgICAgICBmdXR1cmUgOiAnaW4gJXMnLFxuICAgICAgICBwYXN0ICAgOiAnJXMgYWdvJyxcbiAgICAgICAgcyAgOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgIHNzIDogJyVkIHNlY29uZHMnLFxuICAgICAgICBtICA6ICdhIG1pbnV0ZScsXG4gICAgICAgIG1tIDogJyVkIG1pbnV0ZXMnLFxuICAgICAgICBoICA6ICdhbiBob3VyJyxcbiAgICAgICAgaGggOiAnJWQgaG91cnMnLFxuICAgICAgICBkICA6ICdhIGRheScsXG4gICAgICAgIGRkIDogJyVkIGRheXMnLFxuICAgICAgICBNICA6ICdhIG1vbnRoJyxcbiAgICAgICAgTU0gOiAnJWQgbW9udGhzJyxcbiAgICAgICAgeSAgOiAnYSB5ZWFyJyxcbiAgICAgICAgeXkgOiAnJWQgeWVhcnMnXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZSAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbc3RyaW5nXTtcbiAgICAgICAgcmV0dXJuIChpc0Z1bmN0aW9uKG91dHB1dCkpID9cbiAgICAgICAgICAgIG91dHB1dChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIDpcbiAgICAgICAgICAgIG91dHB1dC5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhc3RGdXR1cmUgKGRpZmYsIG91dHB1dCkge1xuICAgICAgICB2YXIgZm9ybWF0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW2RpZmYgPiAwID8gJ2Z1dHVyZScgOiAncGFzdCddO1xuICAgICAgICByZXR1cm4gaXNGdW5jdGlvbihmb3JtYXQpID8gZm9ybWF0KG91dHB1dCkgOiBmb3JtYXQucmVwbGFjZSgvJXMvaSwgb3V0cHV0KTtcbiAgICB9XG5cbiAgICB2YXIgYWxpYXNlcyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkVW5pdEFsaWFzICh1bml0LCBzaG9ydGhhbmQpIHtcbiAgICAgICAgdmFyIGxvd2VyQ2FzZSA9IHVuaXQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgYWxpYXNlc1tsb3dlckNhc2VdID0gYWxpYXNlc1tsb3dlckNhc2UgKyAncyddID0gYWxpYXNlc1tzaG9ydGhhbmRdID0gdW5pdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBub3JtYWxpemVVbml0cyh1bml0cykge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHVuaXRzID09PSAnc3RyaW5nJyA/IGFsaWFzZXNbdW5pdHNdIHx8IGFsaWFzZXNbdW5pdHMudG9Mb3dlckNhc2UoKV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplT2JqZWN0VW5pdHMoaW5wdXRPYmplY3QpIHtcbiAgICAgICAgdmFyIG5vcm1hbGl6ZWRJbnB1dCA9IHt9LFxuICAgICAgICAgICAgbm9ybWFsaXplZFByb3AsXG4gICAgICAgICAgICBwcm9wO1xuXG4gICAgICAgIGZvciAocHJvcCBpbiBpbnB1dE9iamVjdCkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoaW5wdXRPYmplY3QsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplZFByb3AgPSBub3JtYWxpemVVbml0cyhwcm9wKTtcbiAgICAgICAgICAgICAgICBpZiAobm9ybWFsaXplZFByb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZElucHV0W25vcm1hbGl6ZWRQcm9wXSA9IGlucHV0T2JqZWN0W3Byb3BdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub3JtYWxpemVkSW5wdXQ7XG4gICAgfVxuXG4gICAgdmFyIHByaW9yaXRpZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFVuaXRQcmlvcml0eSh1bml0LCBwcmlvcml0eSkge1xuICAgICAgICBwcmlvcml0aWVzW3VuaXRdID0gcHJpb3JpdHk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UHJpb3JpdGl6ZWRVbml0cyh1bml0c09iaikge1xuICAgICAgICB2YXIgdW5pdHMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgdSBpbiB1bml0c09iaikge1xuICAgICAgICAgICAgdW5pdHMucHVzaCh7dW5pdDogdSwgcHJpb3JpdHk6IHByaW9yaXRpZXNbdV19KTtcbiAgICAgICAgfVxuICAgICAgICB1bml0cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdW5pdHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gemVyb0ZpbGwobnVtYmVyLCB0YXJnZXRMZW5ndGgsIGZvcmNlU2lnbikge1xuICAgICAgICB2YXIgYWJzTnVtYmVyID0gJycgKyBNYXRoLmFicyhudW1iZXIpLFxuICAgICAgICAgICAgemVyb3NUb0ZpbGwgPSB0YXJnZXRMZW5ndGggLSBhYnNOdW1iZXIubGVuZ3RoLFxuICAgICAgICAgICAgc2lnbiA9IG51bWJlciA+PSAwO1xuICAgICAgICByZXR1cm4gKHNpZ24gPyAoZm9yY2VTaWduID8gJysnIDogJycpIDogJy0nKSArXG4gICAgICAgICAgICBNYXRoLnBvdygxMCwgTWF0aC5tYXgoMCwgemVyb3NUb0ZpbGwpKS50b1N0cmluZygpLnN1YnN0cigxKSArIGFic051bWJlcjtcbiAgICB9XG5cbiAgICB2YXIgZm9ybWF0dGluZ1Rva2VucyA9IC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhbSGhdbW0oc3MpP3xNb3xNTT9NP00/fERvfERERG98REQ/RD9EP3xkZGQ/ZD98ZG8/fHdbb3x3XT98V1tvfFddP3xRbz98WVlZWVlZfFlZWVlZfFlZWVl8WVl8Z2coZ2dnPyk/fEdHKEdHRz8pP3xlfEV8YXxBfGhoP3xISD98a2s/fG1tP3xzcz98U3sxLDl9fHh8WHx6ej98Wlo/fC4pL2c7XG5cbiAgICB2YXIgbG9jYWxGb3JtYXR0aW5nVG9rZW5zID0gLyhcXFtbXlxcW10qXFxdKXwoXFxcXCk/KExUU3xMVHxMTD9MP0w/fGx7MSw0fSkvZztcblxuICAgIHZhciBmb3JtYXRGdW5jdGlvbnMgPSB7fTtcblxuICAgIHZhciBmb3JtYXRUb2tlbkZ1bmN0aW9ucyA9IHt9O1xuXG4gICAgLy8gdG9rZW46ICAgICdNJ1xuICAgIC8vIHBhZGRlZDogICBbJ01NJywgMl1cbiAgICAvLyBvcmRpbmFsOiAgJ01vJ1xuICAgIC8vIGNhbGxiYWNrOiBmdW5jdGlvbiAoKSB7IHRoaXMubW9udGgoKSArIDEgfVxuICAgIGZ1bmN0aW9uIGFkZEZvcm1hdFRva2VuICh0b2tlbiwgcGFkZGVkLCBvcmRpbmFsLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgZnVuYyA9IGNhbGxiYWNrO1xuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1tjYWxsYmFja10oKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWRkZWQpIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW3BhZGRlZFswXV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHplcm9GaWxsKGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgcGFkZGVkWzFdLCBwYWRkZWRbMl0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3JkaW5hbCkge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbb3JkaW5hbF0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm9yZGluYWwoZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCB0b2tlbik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhpbnB1dCkge1xuICAgICAgICBpZiAoaW5wdXQubWF0Y2goL1xcW1tcXHNcXFNdLykpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9eXFxbfFxcXSQvZywgJycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXFxcL2csICcnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlRm9ybWF0RnVuY3Rpb24oZm9ybWF0KSB7XG4gICAgICAgIHZhciBhcnJheSA9IGZvcm1hdC5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSwgaSwgbGVuZ3RoO1xuXG4gICAgICAgIGZvciAoaSA9IDAsIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbYXJyYXlbaV1dKSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBmb3JtYXRUb2tlbkZ1bmN0aW9uc1thcnJheVtpXV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcmVtb3ZlRm9ybWF0dGluZ1Rva2VucyhhcnJheVtpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG1vbSkge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9ICcnLCBpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ICs9IGlzRnVuY3Rpb24oYXJyYXlbaV0pID8gYXJyYXlbaV0uY2FsbChtb20sIGZvcm1hdCkgOiBhcnJheVtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gZm9ybWF0IGRhdGUgdXNpbmcgbmF0aXZlIGRhdGUgb2JqZWN0XG4gICAgZnVuY3Rpb24gZm9ybWF0TW9tZW50KG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0uaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbS5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1hdCA9IGV4cGFuZEZvcm1hdChmb3JtYXQsIG0ubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gPSBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XSB8fCBtYWtlRm9ybWF0RnVuY3Rpb24oZm9ybWF0KTtcblxuICAgICAgICByZXR1cm4gZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0obSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhwYW5kRm9ybWF0KGZvcm1hdCwgbG9jYWxlKSB7XG4gICAgICAgIHZhciBpID0gNTtcblxuICAgICAgICBmdW5jdGlvbiByZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnMoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUubG9uZ0RhdGVGb3JtYXQoaW5wdXQpIHx8IGlucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChpID49IDAgJiYgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UobG9jYWxGb3JtYXR0aW5nVG9rZW5zLCByZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnMpO1xuICAgICAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zLmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICBpIC09IDE7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0O1xuICAgIH1cblxuICAgIHZhciBtYXRjaDEgICAgICAgICA9IC9cXGQvOyAgICAgICAgICAgIC8vICAgICAgIDAgLSA5XG4gICAgdmFyIG1hdGNoMiAgICAgICAgID0gL1xcZFxcZC87ICAgICAgICAgIC8vICAgICAgMDAgLSA5OVxuICAgIHZhciBtYXRjaDMgICAgICAgICA9IC9cXGR7M30vOyAgICAgICAgIC8vICAgICAwMDAgLSA5OTlcbiAgICB2YXIgbWF0Y2g0ICAgICAgICAgPSAvXFxkezR9LzsgICAgICAgICAvLyAgICAwMDAwIC0gOTk5OVxuICAgIHZhciBtYXRjaDYgICAgICAgICA9IC9bKy1dP1xcZHs2fS87ICAgIC8vIC05OTk5OTkgLSA5OTk5OTlcbiAgICB2YXIgbWF0Y2gxdG8yICAgICAgPSAvXFxkXFxkPy87ICAgICAgICAgLy8gICAgICAgMCAtIDk5XG4gICAgdmFyIG1hdGNoM3RvNCAgICAgID0gL1xcZFxcZFxcZFxcZD8vOyAgICAgLy8gICAgIDk5OSAtIDk5OTlcbiAgICB2YXIgbWF0Y2g1dG82ICAgICAgPSAvXFxkXFxkXFxkXFxkXFxkXFxkPy87IC8vICAgOTk5OTkgLSA5OTk5OTlcbiAgICB2YXIgbWF0Y2gxdG8zICAgICAgPSAvXFxkezEsM30vOyAgICAgICAvLyAgICAgICAwIC0gOTk5XG4gICAgdmFyIG1hdGNoMXRvNCAgICAgID0gL1xcZHsxLDR9LzsgICAgICAgLy8gICAgICAgMCAtIDk5OTlcbiAgICB2YXIgbWF0Y2gxdG82ICAgICAgPSAvWystXT9cXGR7MSw2fS87ICAvLyAtOTk5OTk5IC0gOTk5OTk5XG5cbiAgICB2YXIgbWF0Y2hVbnNpZ25lZCAgPSAvXFxkKy87ICAgICAgICAgICAvLyAgICAgICAwIC0gaW5mXG4gICAgdmFyIG1hdGNoU2lnbmVkICAgID0gL1srLV0/XFxkKy87ICAgICAgLy8gICAgLWluZiAtIGluZlxuXG4gICAgdmFyIG1hdGNoT2Zmc2V0ICAgID0gL1p8WystXVxcZFxcZDo/XFxkXFxkL2dpOyAvLyArMDA6MDAgLTAwOjAwICswMDAwIC0wMDAwIG9yIFpcbiAgICB2YXIgbWF0Y2hTaG9ydE9mZnNldCA9IC9afFsrLV1cXGRcXGQoPzo6P1xcZFxcZCk/L2dpOyAvLyArMDAgLTAwICswMDowMCAtMDA6MDAgKzAwMDAgLTAwMDAgb3IgWlxuXG4gICAgdmFyIG1hdGNoVGltZXN0YW1wID0gL1srLV0/XFxkKyhcXC5cXGR7MSwzfSk/LzsgLy8gMTIzNDU2Nzg5IDEyMzQ1Njc4OS4xMjNcblxuICAgIC8vIGFueSB3b3JkIChvciB0d28pIGNoYXJhY3RlcnMgb3IgbnVtYmVycyBpbmNsdWRpbmcgdHdvL3RocmVlIHdvcmQgbW9udGggaW4gYXJhYmljLlxuICAgIC8vIGluY2x1ZGVzIHNjb3R0aXNoIGdhZWxpYyB0d28gd29yZCBhbmQgaHlwaGVuYXRlZCBtb250aHNcbiAgICB2YXIgbWF0Y2hXb3JkID0gL1swLTldezAsMjU2fVsnYS16XFx1MDBBMC1cXHUwNUZGXFx1MDcwMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRjA3XFx1RkYxMC1cXHVGRkVGXXsxLDI1Nn18W1xcdTA2MDAtXFx1MDZGRlxcL117MSwyNTZ9KFxccyo/W1xcdTA2MDAtXFx1MDZGRl17MSwyNTZ9KXsxLDJ9L2k7XG5cbiAgICB2YXIgcmVnZXhlcyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkUmVnZXhUb2tlbiAodG9rZW4sIHJlZ2V4LCBzdHJpY3RSZWdleCkge1xuICAgICAgICByZWdleGVzW3Rva2VuXSA9IGlzRnVuY3Rpb24ocmVnZXgpID8gcmVnZXggOiBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZURhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXNTdHJpY3QgJiYgc3RyaWN0UmVnZXgpID8gc3RyaWN0UmVnZXggOiByZWdleDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4gKHRva2VuLCBjb25maWcpIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHJlZ2V4ZXMsIHRva2VuKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAodW5lc2NhcGVGb3JtYXQodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWdleGVzW3Rva2VuXShjb25maWcuX3N0cmljdCwgY29uZmlnLl9sb2NhbGUpO1xuICAgIH1cblxuICAgIC8vIENvZGUgZnJvbSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM1NjE0OTMvaXMtdGhlcmUtYS1yZWdleHAtZXNjYXBlLWZ1bmN0aW9uLWluLWphdmFzY3JpcHRcbiAgICBmdW5jdGlvbiB1bmVzY2FwZUZvcm1hdChzKSB7XG4gICAgICAgIHJldHVybiByZWdleEVzY2FwZShzLnJlcGxhY2UoJ1xcXFwnLCAnJykucmVwbGFjZSgvXFxcXChcXFspfFxcXFwoXFxdKXxcXFsoW15cXF1cXFtdKilcXF18XFxcXCguKS9nLCBmdW5jdGlvbiAobWF0Y2hlZCwgcDEsIHAyLCBwMywgcDQpIHtcbiAgICAgICAgICAgIHJldHVybiBwMSB8fCBwMiB8fCBwMyB8fCBwNDtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlZ2V4RXNjYXBlKHMpIHtcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvWy1cXC9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyk7XG4gICAgfVxuXG4gICAgdmFyIHRva2VucyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkUGFyc2VUb2tlbiAodG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBpLCBmdW5jID0gY2FsbGJhY2s7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0b2tlbiA9IFt0b2tlbl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTnVtYmVyKGNhbGxiYWNrKSkge1xuICAgICAgICAgICAgZnVuYyA9IGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgICAgICAgICBhcnJheVtjYWxsYmFja10gPSB0b0ludChpbnB1dCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0b2tlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW5zW3Rva2VuW2ldXSA9IGZ1bmM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRXZWVrUGFyc2VUb2tlbiAodG9rZW4sIGNhbGxiYWNrKSB7XG4gICAgICAgIGFkZFBhcnNlVG9rZW4odG9rZW4sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgICAgIGNvbmZpZy5fdyA9IGNvbmZpZy5fdyB8fCB7fTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGlucHV0LCBjb25maWcuX3csIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbih0b2tlbiwgaW5wdXQsIGNvbmZpZykge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCAmJiBoYXNPd25Qcm9wKHRva2VucywgdG9rZW4pKSB7XG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5dKGlucHV0LCBjb25maWcuX2EsIGNvbmZpZywgdG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIFlFQVIgPSAwO1xuICAgIHZhciBNT05USCA9IDE7XG4gICAgdmFyIERBVEUgPSAyO1xuICAgIHZhciBIT1VSID0gMztcbiAgICB2YXIgTUlOVVRFID0gNDtcbiAgICB2YXIgU0VDT05EID0gNTtcbiAgICB2YXIgTUlMTElTRUNPTkQgPSA2O1xuICAgIHZhciBXRUVLID0gNztcbiAgICB2YXIgV0VFS0RBWSA9IDg7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignWScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHkgPSB0aGlzLnllYXIoKTtcbiAgICAgICAgcmV0dXJuIHkgPD0gOTk5OSA/ICcnICsgeSA6ICcrJyArIHk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcigpICUgMTAwO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZJywgICA0XSwgICAgICAgMCwgJ3llYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVlZJywgIDVdLCAgICAgICAwLCAneWVhcicpO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVlZWVlZJywgNiwgdHJ1ZV0sIDAsICd5ZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3llYXInLCAneScpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd5ZWFyJywgMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdZJywgICAgICBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignWVknLCAgICAgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZWVknLCAgIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdZWVlZWScsICBtYXRjaDF0bzYsIG1hdGNoNik7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVlZJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ1lZWVlZJywgJ1lZWVlZWSddLCBZRUFSKTtcbiAgICBhZGRQYXJzZVRva2VuKCdZWVlZJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtZRUFSXSA9IGlucHV0Lmxlbmd0aCA9PT0gMiA/IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KSA6IHRvSW50KGlucHV0KTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdZWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBwYXJzZUludChpbnB1dCwgMTApO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgZnVuY3Rpb24gZGF5c0luWWVhcih5ZWFyKSB7XG4gICAgICAgIHJldHVybiBpc0xlYXBZZWFyKHllYXIpID8gMzY2IDogMzY1O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcikge1xuICAgICAgICByZXR1cm4gKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApIHx8IHllYXIgJSA0MDAgPT09IDA7XG4gICAgfVxuXG4gICAgLy8gSE9PS1NcblxuICAgIGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHJldHVybiB0b0ludChpbnB1dCkgKyAodG9JbnQoaW5wdXQpID4gNjggPyAxOTAwIDogMjAwMCk7XG4gICAgfTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRZZWFyID0gbWFrZUdldFNldCgnRnVsbFllYXInLCB0cnVlKTtcblxuICAgIGZ1bmN0aW9uIGdldElzTGVhcFllYXIgKCkge1xuICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih0aGlzLnllYXIoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUdldFNldCAodW5pdCwga2VlcFRpbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXQkMSh0aGlzLCB1bml0LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIGtlZXBUaW1lKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldCh0aGlzLCB1bml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXQgKG1vbSwgdW5pdCkge1xuICAgICAgICByZXR1cm4gbW9tLmlzVmFsaWQoKSA/XG4gICAgICAgICAgICBtb20uX2RbJ2dldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0oKSA6IE5hTjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXQkMSAobW9tLCB1bml0LCB2YWx1ZSkge1xuICAgICAgICBpZiAobW9tLmlzVmFsaWQoKSAmJiAhaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodW5pdCA9PT0gJ0Z1bGxZZWFyJyAmJiBpc0xlYXBZZWFyKG1vbS55ZWFyKCkpICYmIG1vbS5tb250aCgpID09PSAxICYmIG1vbS5kYXRlKCkgPT09IDI5KSB7XG4gICAgICAgICAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKHZhbHVlLCBtb20ubW9udGgoKSwgZGF5c0luTW9udGgodmFsdWUsIG1vbS5tb250aCgpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0odmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gc3RyaW5nR2V0ICh1bml0cykge1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpc1t1bml0c10pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpc1t1bml0c10oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIHN0cmluZ1NldCAodW5pdHMsIHZhbHVlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdW5pdHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKHVuaXRzKTtcbiAgICAgICAgICAgIHZhciBwcmlvcml0aXplZCA9IGdldFByaW9yaXRpemVkVW5pdHModW5pdHMpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmlvcml0aXplZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXNbcHJpb3JpdGl6ZWRbaV0udW5pdF0odW5pdHNbcHJpb3JpdGl6ZWRbaV0udW5pdF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbih0aGlzW3VuaXRzXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1t1bml0c10odmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vZChuLCB4KSB7XG4gICAgICAgIHJldHVybiAoKG4gJSB4KSArIHgpICUgeDtcbiAgICB9XG5cbiAgICB2YXIgaW5kZXhPZjtcblxuICAgIGlmIChBcnJheS5wcm90b3R5cGUuaW5kZXhPZikge1xuICAgICAgICBpbmRleE9mID0gQXJyYXkucHJvdG90eXBlLmluZGV4T2Y7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaW5kZXhPZiA9IGZ1bmN0aW9uIChvKSB7XG4gICAgICAgICAgICAvLyBJIGtub3dcbiAgICAgICAgICAgIHZhciBpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpc1tpXSA9PT0gbykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5c0luTW9udGgoeWVhciwgbW9udGgpIHtcbiAgICAgICAgaWYgKGlzTmFOKHllYXIpIHx8IGlzTmFOKG1vbnRoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbW9kTW9udGggPSBtb2QobW9udGgsIDEyKTtcbiAgICAgICAgeWVhciArPSAobW9udGggLSBtb2RNb250aCkgLyAxMjtcbiAgICAgICAgcmV0dXJuIG1vZE1vbnRoID09PSAxID8gKGlzTGVhcFllYXIoeWVhcikgPyAyOSA6IDI4KSA6ICgzMSAtIG1vZE1vbnRoICUgNyAlIDIpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNJywgWydNTScsIDJdLCAnTW8nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoKCkgKyAxO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ01NTScsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1vbnRoc1Nob3J0KHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignTU1NTScsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1vbnRocyh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdtb250aCcsICdNJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdtb250aCcsIDgpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignTScsICAgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignTU0nLCAgIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdNTU0nLCAgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5tb250aHNTaG9ydFJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcbiAgICBhZGRSZWdleFRva2VuKCdNTU1NJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5tb250aHNSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnTScsICdNTSddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W01PTlRIXSA9IHRvSW50KGlucHV0KSAtIDE7XG4gICAgfSk7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnTU1NJywgJ01NTU0nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB2YXIgbW9udGggPSBjb25maWcuX2xvY2FsZS5tb250aHNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgICAgLy8gaWYgd2UgZGlkbid0IGZpbmQgYSBtb250aCBuYW1lLCBtYXJrIHRoZSBkYXRlIGFzIGludmFsaWQuXG4gICAgICAgIGlmIChtb250aCAhPSBudWxsKSB7XG4gICAgICAgICAgICBhcnJheVtNT05USF0gPSBtb250aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRNb250aCA9IGlucHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICB2YXIgTU9OVEhTX0lOX0ZPUk1BVCA9IC9EW29EXT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK01NTU0/LztcbiAgICB2YXIgZGVmYXVsdExvY2FsZU1vbnRocyA9ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRocyAobSwgZm9ybWF0KSB7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzKSA/IHRoaXMuX21vbnRocyA6XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzWydzdGFuZGFsb25lJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzKSA/IHRoaXMuX21vbnRoc1ttLm1vbnRoKCldIDpcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1sodGhpcy5fbW9udGhzLmlzRm9ybWF0IHx8IE1PTlRIU19JTl9GT1JNQVQpLnRlc3QoZm9ybWF0KSA/ICdmb3JtYXQnIDogJ3N0YW5kYWxvbmUnXVttLm1vbnRoKCldO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQgPSAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlTW9udGhzU2hvcnQgKG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRoc1Nob3J0KSA/IHRoaXMuX21vbnRoc1Nob3J0IDpcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNTaG9ydFsnc3RhbmRhbG9uZSddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRoc1Nob3J0KSA/IHRoaXMuX21vbnRoc1Nob3J0W20ubW9udGgoKV0gOlxuICAgICAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRbTU9OVEhTX0lOX0ZPUk1BVC50ZXN0KGZvcm1hdCkgPyAnZm9ybWF0JyA6ICdzdGFuZGFsb25lJ11bbS5tb250aCgpXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVTdHJpY3RQYXJzZShtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLCBpaSwgbW9tLCBsbGMgPSBtb250aE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgdXNlZFxuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gdGhpcy5tb250aHNTaG9ydChtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXSA9IHRoaXMubW9udGhzKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1BhcnNlIChtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLCBtb20sIHJlZ2V4O1xuXG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlU3RyaWN0UGFyc2UuY2FsbCh0aGlzLCBtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fbW9udGhzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRPRE86IGFkZCBzb3J0aW5nXG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgbW9udGggKG9yIGFiYnIpIGlzIGEgcHJlZml4IG9mIGFub3RoZXJcbiAgICAgICAgLy8gc2VlIHNvcnRpbmcgaW4gY29tcHV0ZU1vbnRoc1BhcnNlXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cCgnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLCAnaScpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykucmVwbGFjZSgnLicsICcnKSArICckJywgJ2knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc3RyaWN0ICYmICF0aGlzLl9tb250aHNQYXJzZVtpXSkge1xuICAgICAgICAgICAgICAgIHJlZ2V4ID0gJ14nICsgdGhpcy5tb250aHMobW9tLCAnJykgKyAnfF4nICsgdGhpcy5tb250aHNTaG9ydChtb20sICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNQYXJzZVtpXSA9IG5ldyBSZWdFeHAocmVnZXgucmVwbGFjZSgnLicsICcnKSwgJ2knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHRlc3QgdGhlIHJlZ2V4XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ01NTU0nICYmIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXS50ZXN0KG1vbnRoTmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ01NTScgJiYgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXS50ZXN0KG1vbnRoTmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmljdCAmJiB0aGlzLl9tb250aHNQYXJzZVtpXS50ZXN0KG1vbnRoTmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIHNldE1vbnRoIChtb20sIHZhbHVlKSB7XG4gICAgICAgIHZhciBkYXlPZk1vbnRoO1xuXG4gICAgICAgIGlmICghbW9tLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgLy8gTm8gb3BcbiAgICAgICAgICAgIHJldHVybiBtb207XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKC9eXFxkKyQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB0b0ludCh2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gbW9tLmxvY2FsZURhdGEoKS5tb250aHNQYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogQW5vdGhlciBzaWxlbnQgZmFpbHVyZT9cbiAgICAgICAgICAgICAgICBpZiAoIWlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRheU9mTW9udGggPSBNYXRoLm1pbihtb20uZGF0ZSgpLCBkYXlzSW5Nb250aChtb20ueWVhcigpLCB2YWx1ZSkpO1xuICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgJ01vbnRoJ10odmFsdWUsIGRheU9mTW9udGgpO1xuICAgICAgICByZXR1cm4gbW9tO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldE1vbnRoICh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0TW9udGgodGhpcywgdmFsdWUpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMsICdNb250aCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGF5c0luTW9udGggKCkge1xuICAgICAgICByZXR1cm4gZGF5c0luTW9udGgodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSk7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRNb250aHNTaG9ydFJlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgIGZ1bmN0aW9uIG1vbnRoc1Nob3J0UmVnZXggKGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZU1vbnRoc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0UmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNTaG9ydFJlZ2V4ID0gZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCA6IHRoaXMuX21vbnRoc1Nob3J0UmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdE1vbnRoc1JlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgIGZ1bmN0aW9uIG1vbnRoc1JlZ2V4IChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fbW9udGhzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVNb250aHNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzUmVnZXggPSBkZWZhdWx0TW9udGhzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgP1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4IDogdGhpcy5fbW9udGhzUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb21wdXRlTW9udGhzUGFyc2UgKCkge1xuICAgICAgICBmdW5jdGlvbiBjbXBMZW5SZXYoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGIubGVuZ3RoIC0gYS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2hvcnRQaWVjZXMgPSBbXSwgbG9uZ1BpZWNlcyA9IFtdLCBtaXhlZFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgaSwgbW9tO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5XG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgIHNob3J0UGllY2VzLnB1c2godGhpcy5tb250aHNTaG9ydChtb20sICcnKSk7XG4gICAgICAgICAgICBsb25nUGllY2VzLnB1c2godGhpcy5tb250aHMobW9tLCAnJykpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaCh0aGlzLm1vbnRocyhtb20sICcnKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgbW9udGggKG9yIGFiYnIpIGlzIGEgcHJlZml4IG9mIGFub3RoZXIgaXRcbiAgICAgICAgLy8gd2lsbCBtYXRjaCB0aGUgbG9uZ2VyIHBpZWNlLlxuICAgICAgICBzaG9ydFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIGxvbmdQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBtaXhlZFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBzaG9ydFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKHNob3J0UGllY2VzW2ldKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXNbaV0gPSByZWdleEVzY2FwZShsb25nUGllY2VzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMjQ7IGkrKykge1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShtaXhlZFBpZWNlc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tb250aHNSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG1peGVkUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRSZWdleCA9IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICB0aGlzLl9tb250aHNTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIGxvbmdQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgc2hvcnRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZURhdGUgKHksIG0sIGQsIGgsIE0sIHMsIG1zKSB7XG4gICAgICAgIC8vIGNhbid0IGp1c3QgYXBwbHkoKSB0byBjcmVhdGUgYSBkYXRlOlxuICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMTgxMzQ4XG4gICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoeSwgbSwgZCwgaCwgTSwgcywgbXMpO1xuXG4gICAgICAgIC8vIHRoZSBkYXRlIGNvbnN0cnVjdG9yIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDAgJiYgaXNGaW5pdGUoZGF0ZS5nZXRGdWxsWWVhcigpKSkge1xuICAgICAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcih5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVVVENEYXRlICh5KSB7XG4gICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCwgYXJndW1lbnRzKSk7XG5cbiAgICAgICAgLy8gdGhlIERhdGUuVVRDIGZ1bmN0aW9uIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDAgJiYgaXNGaW5pdGUoZGF0ZS5nZXRVVENGdWxsWWVhcigpKSkge1xuICAgICAgICAgICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICAvLyBzdGFydC1vZi1maXJzdC13ZWVrIC0gc3RhcnQtb2YteWVhclxuICAgIGZ1bmN0aW9uIGZpcnN0V2Vla09mZnNldCh5ZWFyLCBkb3csIGRveSkge1xuICAgICAgICB2YXIgLy8gZmlyc3Qtd2VlayBkYXkgLS0gd2hpY2ggamFudWFyeSBpcyBhbHdheXMgaW4gdGhlIGZpcnN0IHdlZWsgKDQgZm9yIGlzbywgMSBmb3Igb3RoZXIpXG4gICAgICAgICAgICBmd2QgPSA3ICsgZG93IC0gZG95LFxuICAgICAgICAgICAgLy8gZmlyc3Qtd2VlayBkYXkgbG9jYWwgd2Vla2RheSAtLSB3aGljaCBsb2NhbCB3ZWVrZGF5IGlzIGZ3ZFxuICAgICAgICAgICAgZndkbHcgPSAoNyArIGNyZWF0ZVVUQ0RhdGUoeWVhciwgMCwgZndkKS5nZXRVVENEYXkoKSAtIGRvdykgJSA3O1xuXG4gICAgICAgIHJldHVybiAtZndkbHcgKyBmd2QgLSAxO1xuICAgIH1cblxuICAgIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGUjQ2FsY3VsYXRpbmdfYV9kYXRlX2dpdmVuX3RoZV95ZWFyLjJDX3dlZWtfbnVtYmVyX2FuZF93ZWVrZGF5XG4gICAgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtzKHllYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSB7XG4gICAgICAgIHZhciBsb2NhbFdlZWtkYXkgPSAoNyArIHdlZWtkYXkgLSBkb3cpICUgNyxcbiAgICAgICAgICAgIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpLFxuICAgICAgICAgICAgZGF5T2ZZZWFyID0gMSArIDcgKiAod2VlayAtIDEpICsgbG9jYWxXZWVrZGF5ICsgd2Vla09mZnNldCxcbiAgICAgICAgICAgIHJlc1llYXIsIHJlc0RheU9mWWVhcjtcblxuICAgICAgICBpZiAoZGF5T2ZZZWFyIDw9IDApIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyIC0gMTtcbiAgICAgICAgICAgIHJlc0RheU9mWWVhciA9IGRheXNJblllYXIocmVzWWVhcikgKyBkYXlPZlllYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyKSkge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXIgKyAxO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyIC0gZGF5c0luWWVhcih5ZWFyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHllYXI6IHJlc1llYXIsXG4gICAgICAgICAgICBkYXlPZlllYXI6IHJlc0RheU9mWWVhclxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtPZlllYXIobW9tLCBkb3csIGRveSkge1xuICAgICAgICB2YXIgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldChtb20ueWVhcigpLCBkb3csIGRveSksXG4gICAgICAgICAgICB3ZWVrID0gTWF0aC5mbG9vcigobW9tLmRheU9mWWVhcigpIC0gd2Vla09mZnNldCAtIDEpIC8gNykgKyAxLFxuICAgICAgICAgICAgcmVzV2VlaywgcmVzWWVhcjtcblxuICAgICAgICBpZiAod2VlayA8IDEpIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpIC0gMTtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrICsgd2Vla3NJblllYXIocmVzWWVhciwgZG93LCBkb3kpO1xuICAgICAgICB9IGVsc2UgaWYgKHdlZWsgPiB3ZWVrc0luWWVhcihtb20ueWVhcigpLCBkb3csIGRveSkpIHtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrIC0gd2Vla3NJblllYXIobW9tLnllYXIoKSwgZG93LCBkb3kpO1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCkgKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCk7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3ZWVrOiByZXNXZWVrLFxuICAgICAgICAgICAgeWVhcjogcmVzWWVhclxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtzSW5ZZWFyKHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIHdlZWtPZmZzZXROZXh0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIgKyAxLCBkb3csIGRveSk7XG4gICAgICAgIHJldHVybiAoZGF5c0luWWVhcih5ZWFyKSAtIHdlZWtPZmZzZXQgKyB3ZWVrT2Zmc2V0TmV4dCkgLyA3O1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd3JywgWyd3dycsIDJdLCAnd28nLCAnd2VlaycpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdXJywgWydXVycsIDJdLCAnV28nLCAnaXNvV2VlaycpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrJywgJ3cnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWsnLCAnVycpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd3ZWVrJywgNSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrJywgNSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCd3JywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignd3cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignVycsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1dXJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWyd3JywgJ3d3JywgJ1cnLCAnV1cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW4uc3Vic3RyKDAsIDEpXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIC8vIExPQ0FMRVNcblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWsgKG1vbSkge1xuICAgICAgICByZXR1cm4gd2Vla09mWWVhcihtb20sIHRoaXMuX3dlZWsuZG93LCB0aGlzLl93ZWVrLmRveSkud2VlaztcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWsgPSB7XG4gICAgICAgIGRvdyA6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICBkb3kgOiA2ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxc3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZXZWVrICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWsuZG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZZZWFyICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWsuZG95O1xuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWsgKGlucHV0KSB7XG4gICAgICAgIHZhciB3ZWVrID0gdGhpcy5sb2NhbGVEYXRhKCkud2Vlayh0aGlzKTtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldElTT1dlZWsgKGlucHV0KSB7XG4gICAgICAgIHZhciB3ZWVrID0gd2Vla09mWWVhcih0aGlzLCAxLCA0KS53ZWVrO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWsgOiB0aGlzLmFkZCgoaW5wdXQgLSB3ZWVrKSAqIDcsICdkJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2QnLCAwLCAnZG8nLCAnZGF5Jyk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5c01pbih0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzU2hvcnQodGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZGRkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdlJywgMCwgMCwgJ3dlZWtkYXknKTtcbiAgICBhZGRGb3JtYXRUb2tlbignRScsIDAsIDAsICdpc29XZWVrZGF5Jyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheScsICdkJyk7XG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrZGF5JywgJ2UnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWtkYXknLCAnRScpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RheScsIDExKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWtkYXknLCAxMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrZGF5JywgMTEpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignZCcsICAgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZScsICAgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignRScsICAgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZGQnLCAgIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNNaW5SZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignZGRkJywgICBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignZGRkZCcsICAgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZGQnLCAnZGRkJywgJ2RkZGQnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gY29uZmlnLl9sb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgICAgLy8gaWYgd2UgZGlkbid0IGdldCBhIHdlZWtkYXkgbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkXG4gICAgICAgIGlmICh3ZWVrZGF5ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHdlZWsuZCA9IHdlZWtkYXk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkV2Vla2RheSA9IGlucHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2QnLCAnZScsICdFJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIHBhcnNlV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzTmFOKGlucHV0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCA9IGxvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSXNvV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpICUgNyB8fCA3O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc05hTihpbnB1dCkgPyBudWxsIDogaW5wdXQ7XG4gICAgfVxuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrZGF5cyA9ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5cyAobSwgZm9ybWF0KSB7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fd2Vla2RheXMpID8gdGhpcy5fd2Vla2RheXMgOlxuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzWydzdGFuZGFsb25lJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fd2Vla2RheXMpID8gdGhpcy5fd2Vla2RheXNbbS5kYXkoKV0gOlxuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNbdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdChmb3JtYXQpID8gJ2Zvcm1hdCcgOiAnc3RhbmRhbG9uZSddW20uZGF5KCldO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCA9ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNTaG9ydCAobSkge1xuICAgICAgICByZXR1cm4gKG0pID8gdGhpcy5fd2Vla2RheXNTaG9ydFttLmRheSgpXSA6IHRoaXMuX3dlZWtkYXlzU2hvcnQ7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrZGF5c01pbiA9ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5c01pbiAobSkge1xuICAgICAgICByZXR1cm4gKG0pID8gdGhpcy5fd2Vla2RheXNNaW5bbS5kYXkoKV0gOiB0aGlzLl93ZWVrZGF5c01pbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVTdHJpY3RQYXJzZSQxKHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSwgaWksIG1vbSwgbGxjID0gd2Vla2RheU5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlKSB7XG4gICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2UgPSBbXTtcblxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7ICsraSkge1xuICAgICAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgMV0pLmRheShpKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5c01pbihtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnZGRkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2RkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2RkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5c1BhcnNlICh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVN0cmljdFBhcnNlJDEuY2FsbCh0aGlzLCB3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlKSB7XG4gICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcblxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy53ZWVrZGF5cyhtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLCAnaScpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnXFxcXC4/JykgKyAnJCcsICdpJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy53ZWVrZGF5c01pbihtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVnZXggPSAnXicgKyB0aGlzLndlZWtkYXlzKG1vbSwgJycpICsgJ3xeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSArICd8XicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdkZGRkJyAmJiB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnZGRkJyAmJiB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ2RkJyAmJiB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fd2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0RGF5T2ZXZWVrIChpbnB1dCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgIT0gbnVsbCA/IHRoaXMgOiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRheSA9IHRoaXMuX2lzVVRDID8gdGhpcy5fZC5nZXRVVENEYXkoKSA6IHRoaXMuX2QuZ2V0RGF5KCk7XG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICBpbnB1dCA9IHBhcnNlV2Vla2RheShpbnB1dCwgdGhpcy5sb2NhbGVEYXRhKCkpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkKGlucHV0IC0gZGF5LCAnZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRheTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldExvY2FsZURheU9mV2VlayAoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gKHRoaXMuZGF5KCkgKyA3IC0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93KSAlIDc7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2Vla2RheSA6IHRoaXMuYWRkKGlucHV0IC0gd2Vla2RheSwgJ2QnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09EYXlPZldlZWsgKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGJlaGF2ZXMgdGhlIHNhbWUgYXMgbW9tZW50I2RheSBleGNlcHRcbiAgICAgICAgLy8gYXMgYSBnZXR0ZXIsIHJldHVybnMgNyBpbnN0ZWFkIG9mIDAgKDEtNyByYW5nZSBpbnN0ZWFkIG9mIDAtNilcbiAgICAgICAgLy8gYXMgYSBzZXR0ZXIsIHN1bmRheSBzaG91bGQgYmVsb25nIHRvIHRoZSBwcmV2aW91cyB3ZWVrLlxuXG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgd2Vla2RheSA9IHBhcnNlSXNvV2Vla2RheShpbnB1dCwgdGhpcy5sb2NhbGVEYXRhKCkpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KHRoaXMuZGF5KCkgJSA3ID8gd2Vla2RheSA6IHdlZWtkYXkgLSA3KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpIHx8IDc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFdlZWtkYXlzUmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gd2Vla2RheXNSZWdleCAoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZVdlZWtkYXlzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUmVnZXggPSBkZWZhdWx0V2Vla2RheXNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0ID9cbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4IDogdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0V2Vla2RheXNTaG9ydFJlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgIGZ1bmN0aW9uIHdlZWtkYXlzU2hvcnRSZWdleCAoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZVdlZWtkYXlzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1Nob3J0UmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCA9IGRlZmF1bHRXZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4ICYmIGlzU3RyaWN0ID9cbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggOiB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFdlZWtkYXlzTWluUmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gd2Vla2RheXNNaW5SZWdleCAoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZVdlZWtkYXlzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5SZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzTWluUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzTWluUmVnZXggPSBkZWZhdWx0V2Vla2RheXNNaW5SZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4ICYmIGlzU3RyaWN0ID9cbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4IDogdGhpcy5fd2Vla2RheXNNaW5SZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gY29tcHV0ZVdlZWtkYXlzUGFyc2UgKCkge1xuICAgICAgICBmdW5jdGlvbiBjbXBMZW5SZXYoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGIubGVuZ3RoIC0gYS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbWluUGllY2VzID0gW10sIHNob3J0UGllY2VzID0gW10sIGxvbmdQaWVjZXMgPSBbXSwgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGksIG1vbSwgbWlucCwgc2hvcnRwLCBsb25ncDtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5XG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICBtaW5wID0gdGhpcy53ZWVrZGF5c01pbihtb20sICcnKTtcbiAgICAgICAgICAgIHNob3J0cCA9IHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKTtcbiAgICAgICAgICAgIGxvbmdwID0gdGhpcy53ZWVrZGF5cyhtb20sICcnKTtcbiAgICAgICAgICAgIG1pblBpZWNlcy5wdXNoKG1pbnApO1xuICAgICAgICAgICAgc2hvcnRQaWVjZXMucHVzaChzaG9ydHApO1xuICAgICAgICAgICAgbG9uZ1BpZWNlcy5wdXNoKGxvbmdwKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2gobWlucCk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHNob3J0cCk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKGxvbmdwKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIHdlZWtkYXkgKG9yIGFiYnIpIGlzIGEgcHJlZml4IG9mIGFub3RoZXIgaXRcbiAgICAgICAgLy8gd2lsbCBtYXRjaCB0aGUgbG9uZ2VyIHBpZWNlLlxuICAgICAgICBtaW5QaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBzaG9ydFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIGxvbmdQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBtaXhlZFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIHNob3J0UGllY2VzW2ldID0gcmVnZXhFc2NhcGUoc2hvcnRQaWVjZXNbaV0pO1xuICAgICAgICAgICAgbG9uZ1BpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKGxvbmdQaWVjZXNbaV0pO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShtaXhlZFBpZWNlc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93ZWVrZGF5c1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXggPSB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gdGhpcy5fd2Vla2RheXNSZWdleDtcblxuICAgICAgICB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbG9uZ1BpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIHNob3J0UGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG1pblBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgZnVuY3Rpb24gaEZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKSAlIDEyIHx8IDEyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGtGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvdXJzKCkgfHwgMjQ7XG4gICAgfVxuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0gnLCBbJ0hIJywgMl0sIDAsICdob3VyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ2gnLCBbJ2hoJywgMl0sIDAsIGhGb3JtYXQpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdrJywgWydraycsIDJdLCAwLCBrRm9ybWF0KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdobW0nLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIGhGb3JtYXQuYXBwbHkodGhpcykgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMik7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignaG1tc3MnLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIGhGb3JtYXQuYXBwbHkodGhpcykgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMikgK1xuICAgICAgICAgICAgemVyb0ZpbGwodGhpcy5zZWNvbmRzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0htbScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgdGhpcy5ob3VycygpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyB0aGlzLmhvdXJzKCkgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMikgK1xuICAgICAgICAgICAgemVyb0ZpbGwodGhpcy5zZWNvbmRzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbWVyaWRpZW0gKHRva2VuLCBsb3dlcmNhc2UpIHtcbiAgICAgICAgYWRkRm9ybWF0VG9rZW4odG9rZW4sIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tZXJpZGllbSh0aGlzLmhvdXJzKCksIHRoaXMubWludXRlcygpLCBsb3dlcmNhc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtZXJpZGllbSgnYScsIHRydWUpO1xuICAgIG1lcmlkaWVtKCdBJywgZmFsc2UpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdob3VyJywgJ2gnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdob3VyJywgMTMpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgZnVuY3Rpb24gbWF0Y2hNZXJpZGllbSAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLl9tZXJpZGllbVBhcnNlO1xuICAgIH1cblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2EnLCAgbWF0Y2hNZXJpZGllbSk7XG4gICAgYWRkUmVnZXhUb2tlbignQScsICBtYXRjaE1lcmlkaWVtKTtcbiAgICBhZGRSZWdleFRva2VuKCdIJywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignaCcsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2snLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdISCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdoaCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdraycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2htbScsIG1hdGNoM3RvNCk7XG4gICAgYWRkUmVnZXhUb2tlbignaG1tc3MnLCBtYXRjaDV0bzYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0htbScsIG1hdGNoM3RvNCk7XG4gICAgYWRkUmVnZXhUb2tlbignSG1tc3MnLCBtYXRjaDV0bzYpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ0gnLCAnSEgnXSwgSE9VUik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2snLCAna2snXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBrSW5wdXQgPSB0b0ludChpbnB1dCk7XG4gICAgICAgIGFycmF5W0hPVVJdID0ga0lucHV0ID09PSAyNCA/IDAgOiBrSW5wdXQ7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2EnLCAnQSddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9pc1BtID0gY29uZmlnLl9sb2NhbGUuaXNQTShpbnB1dCk7XG4gICAgICAgIGNvbmZpZy5fbWVyaWRpZW0gPSBpbnB1dDtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKFsnaCcsICdoaCddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dCk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ2htbScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zKSk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ2htbXNzJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwb3MxID0gaW5wdXQubGVuZ3RoIC0gNDtcbiAgICAgICAgdmFyIHBvczIgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0LnN1YnN0cigwLCBwb3MxKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMSwgMikpO1xuICAgICAgICBhcnJheVtTRUNPTkRdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczIpKTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHRydWU7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignSG1tJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwb3MgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0LnN1YnN0cigwLCBwb3MpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MpKTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdIbW1zcycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQ7XG4gICAgICAgIHZhciBwb3MyID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zMSkpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICAgICAgYXJyYXlbU0VDT05EXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MyKSk7XG4gICAgfSk7XG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICBmdW5jdGlvbiBsb2NhbGVJc1BNIChpbnB1dCkge1xuICAgICAgICAvLyBJRTggUXVpcmtzIE1vZGUgJiBJRTcgU3RhbmRhcmRzIE1vZGUgZG8gbm90IGFsbG93IGFjY2Vzc2luZyBzdHJpbmdzIGxpa2UgYXJyYXlzXG4gICAgICAgIC8vIFVzaW5nIGNoYXJBdCBzaG91bGQgYmUgbW9yZSBjb21wYXRpYmxlLlxuICAgICAgICByZXR1cm4gKChpbnB1dCArICcnKS50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKSA9PT0gJ3AnKTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2UgPSAvW2FwXVxcLj9tP1xcLj8vaTtcbiAgICBmdW5jdGlvbiBsb2NhbGVNZXJpZGllbSAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ3BtJyA6ICdQTSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdhbScgOiAnQU0nO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICAvLyBTZXR0aW5nIHRoZSBob3VyIHNob3VsZCBrZWVwIHRoZSB0aW1lLCBiZWNhdXNlIHRoZSB1c2VyIGV4cGxpY2l0bHlcbiAgICAvLyBzcGVjaWZpZWQgd2hpY2ggaG91ciB0aGV5IHdhbnQuIFNvIHRyeWluZyB0byBtYWludGFpbiB0aGUgc2FtZSBob3VyIChpblxuICAgIC8vIGEgbmV3IHRpbWV6b25lKSBtYWtlcyBzZW5zZS4gQWRkaW5nL3N1YnRyYWN0aW5nIGhvdXJzIGRvZXMgbm90IGZvbGxvd1xuICAgIC8vIHRoaXMgcnVsZS5cbiAgICB2YXIgZ2V0U2V0SG91ciA9IG1ha2VHZXRTZXQoJ0hvdXJzJywgdHJ1ZSk7XG5cbiAgICB2YXIgYmFzZUNvbmZpZyA9IHtcbiAgICAgICAgY2FsZW5kYXI6IGRlZmF1bHRDYWxlbmRhcixcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IGRlZmF1bHRMb25nRGF0ZUZvcm1hdCxcbiAgICAgICAgaW52YWxpZERhdGU6IGRlZmF1bHRJbnZhbGlkRGF0ZSxcbiAgICAgICAgb3JkaW5hbDogZGVmYXVsdE9yZGluYWwsXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IGRlZmF1bHREYXlPZk1vbnRoT3JkaW5hbFBhcnNlLFxuICAgICAgICByZWxhdGl2ZVRpbWU6IGRlZmF1bHRSZWxhdGl2ZVRpbWUsXG5cbiAgICAgICAgbW9udGhzOiBkZWZhdWx0TG9jYWxlTW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0LFxuXG4gICAgICAgIHdlZWs6IGRlZmF1bHRMb2NhbGVXZWVrLFxuXG4gICAgICAgIHdlZWtkYXlzOiBkZWZhdWx0TG9jYWxlV2Vla2RheXMsXG4gICAgICAgIHdlZWtkYXlzTWluOiBkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6IGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0LFxuXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IGRlZmF1bHRMb2NhbGVNZXJpZGllbVBhcnNlXG4gICAgfTtcblxuICAgIC8vIGludGVybmFsIHN0b3JhZ2UgZm9yIGxvY2FsZSBjb25maWcgZmlsZXNcbiAgICB2YXIgbG9jYWxlcyA9IHt9O1xuICAgIHZhciBsb2NhbGVGYW1pbGllcyA9IHt9O1xuICAgIHZhciBnbG9iYWxMb2NhbGU7XG5cbiAgICBmdW5jdGlvbiBub3JtYWxpemVMb2NhbGUoa2V5KSB7XG4gICAgICAgIHJldHVybiBrZXkgPyBrZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCdfJywgJy0nKSA6IGtleTtcbiAgICB9XG5cbiAgICAvLyBwaWNrIHRoZSBsb2NhbGUgZnJvbSB0aGUgYXJyYXlcbiAgICAvLyB0cnkgWydlbi1hdScsICdlbi1nYiddIGFzICdlbi1hdScsICdlbi1nYicsICdlbicsIGFzIGluIG1vdmUgdGhyb3VnaCB0aGUgbGlzdCB0cnlpbmcgZWFjaFxuICAgIC8vIHN1YnN0cmluZyBmcm9tIG1vc3Qgc3BlY2lmaWMgdG8gbGVhc3QsIGJ1dCBtb3ZlIHRvIHRoZSBuZXh0IGFycmF5IGl0ZW0gaWYgaXQncyBhIG1vcmUgc3BlY2lmaWMgdmFyaWFudCB0aGFuIHRoZSBjdXJyZW50IHJvb3RcbiAgICBmdW5jdGlvbiBjaG9vc2VMb2NhbGUobmFtZXMpIHtcbiAgICAgICAgdmFyIGkgPSAwLCBqLCBuZXh0LCBsb2NhbGUsIHNwbGl0O1xuXG4gICAgICAgIHdoaWxlIChpIDwgbmFtZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzcGxpdCA9IG5vcm1hbGl6ZUxvY2FsZShuYW1lc1tpXSkuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIGogPSBzcGxpdC5sZW5ndGg7XG4gICAgICAgICAgICBuZXh0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2kgKyAxXSk7XG4gICAgICAgICAgICBuZXh0ID0gbmV4dCA/IG5leHQuc3BsaXQoJy0nKSA6IG51bGw7XG4gICAgICAgICAgICB3aGlsZSAoaiA+IDApIHtcbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKHNwbGl0LnNsaWNlKDAsIGopLmpvaW4oJy0nKSk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobmV4dCAmJiBuZXh0Lmxlbmd0aCA+PSBqICYmIGNvbXBhcmVBcnJheXMoc3BsaXQsIG5leHQsIHRydWUpID49IGogLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vdGhlIG5leHQgYXJyYXkgaXRlbSBpcyBiZXR0ZXIgdGhhbiBhIHNoYWxsb3dlciBzdWJzdHJpbmcgb2YgdGhpcyBvbmVcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGotLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvYWRMb2NhbGUobmFtZSkge1xuICAgICAgICB2YXIgb2xkTG9jYWxlID0gbnVsbDtcbiAgICAgICAgLy8gVE9ETzogRmluZCBhIGJldHRlciB3YXkgdG8gcmVnaXN0ZXIgYW5kIGxvYWQgYWxsIHRoZSBsb2NhbGVzIGluIE5vZGVcbiAgICAgICAgaWYgKCFsb2NhbGVzW25hbWVdICYmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykgJiZcbiAgICAgICAgICAgICAgICBtb2R1bGUgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgb2xkTG9jYWxlID0gZ2xvYmFsTG9jYWxlLl9hYmJyO1xuICAgICAgICAgICAgICAgIHZhciBhbGlhc2VkUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgICAgICAgICAgICAgYWxpYXNlZFJlcXVpcmUoJy4vbG9jYWxlLycgKyBuYW1lKTtcbiAgICAgICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUob2xkTG9jYWxlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGxvYWQgbG9jYWxlIGFuZCB0aGVuIHNldCB0aGUgZ2xvYmFsIGxvY2FsZS4gIElmXG4gICAgLy8gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgaW4sIGl0IHdpbGwgc2ltcGx5IHJldHVybiB0aGUgY3VycmVudCBnbG9iYWxcbiAgICAvLyBsb2NhbGUga2V5LlxuICAgIGZ1bmN0aW9uIGdldFNldEdsb2JhbExvY2FsZSAoa2V5LCB2YWx1ZXMpIHtcbiAgICAgICAgdmFyIGRhdGE7XG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IGRlZmluZUxvY2FsZShrZXksIHZhbHVlcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgLy8gbW9tZW50LmR1cmF0aW9uLl9sb2NhbGUgPSBtb21lbnQuX2xvY2FsZSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgZ2xvYmFsTG9jYWxlID0gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICgodHlwZW9mIGNvbnNvbGUgIT09ICAndW5kZWZpbmVkJykgJiYgY29uc29sZS53YXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vd2FybiB1c2VyIGlmIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ1dCB0aGUgbG9jYWxlIGNvdWxkIG5vdCBiZSBzZXRcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdMb2NhbGUgJyArIGtleSArICAnIG5vdCBmb3VuZC4gRGlkIHlvdSBmb3JnZXQgdG8gbG9hZCBpdD8nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlLl9hYmJyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlZmluZUxvY2FsZSAobmFtZSwgY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBsb2NhbGUsIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG4gICAgICAgICAgICBjb25maWcuYWJiciA9IG5hbWU7XG4gICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZGVwcmVjYXRlU2ltcGxlKCdkZWZpbmVMb2NhbGVPdmVycmlkZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndXNlIG1vbWVudC51cGRhdGVMb2NhbGUobG9jYWxlTmFtZSwgY29uZmlnKSB0byBjaGFuZ2UgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnYW4gZXhpc3RpbmcgbG9jYWxlLiBtb21lbnQuZGVmaW5lTG9jYWxlKGxvY2FsZU5hbWUsICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZykgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgY3JlYXRpbmcgYSBuZXcgbG9jYWxlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1NlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2RlZmluZS1sb2NhbGUvIGZvciBtb3JlIGluZm8uJyk7XG4gICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gbG9jYWxlc1tuYW1lXS5fY29uZmlnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcucGFyZW50TG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxlc1tjb25maWcucGFyZW50TG9jYWxlXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZXNbY29uZmlnLnBhcmVudExvY2FsZV0uX2NvbmZpZztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKGNvbmZpZy5wYXJlbnRMb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZS5fY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUZhbWlsaWVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IG5ldyBMb2NhbGUobWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY29uZmlnKSk7XG5cbiAgICAgICAgICAgIGlmIChsb2NhbGVGYW1pbGllc1tuYW1lXSkge1xuICAgICAgICAgICAgICAgIGxvY2FsZUZhbWlsaWVzW25hbWVdLmZvckVhY2goZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmaW5lTG9jYWxlKHgubmFtZSwgeC5jb25maWcpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBiYWNrd2FyZHMgY29tcGF0IGZvciBub3c6IGFsc28gc2V0IHRoZSBsb2NhbGVcbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSBzZXQgdGhlIGxvY2FsZSBBRlRFUiBhbGwgY2hpbGQgbG9jYWxlcyBoYXZlIGJlZW5cbiAgICAgICAgICAgIC8vIGNyZWF0ZWQsIHNvIHdlIHdvbid0IGVuZCB1cCB3aXRoIHRoZSBjaGlsZCBsb2NhbGUgc2V0LlxuICAgICAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlKG5hbWUpO1xuXG5cbiAgICAgICAgICAgIHJldHVybiBsb2NhbGVzW25hbWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdXNlZnVsIGZvciB0ZXN0aW5nXG4gICAgICAgICAgICBkZWxldGUgbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlTG9jYWxlKG5hbWUsIGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBsb2NhbGUsIHRtcExvY2FsZSwgcGFyZW50Q29uZmlnID0gYmFzZUNvbmZpZztcbiAgICAgICAgICAgIC8vIE1FUkdFXG4gICAgICAgICAgICB0bXBMb2NhbGUgPSBsb2FkTG9jYWxlKG5hbWUpO1xuICAgICAgICAgICAgaWYgKHRtcExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gdG1wTG9jYWxlLl9jb25maWc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25maWcgPSBtZXJnZUNvbmZpZ3MocGFyZW50Q29uZmlnLCBjb25maWcpO1xuICAgICAgICAgICAgbG9jYWxlID0gbmV3IExvY2FsZShjb25maWcpO1xuICAgICAgICAgICAgbG9jYWxlLnBhcmVudExvY2FsZSA9IGxvY2FsZXNbbmFtZV07XG4gICAgICAgICAgICBsb2NhbGVzW25hbWVdID0gbG9jYWxlO1xuXG4gICAgICAgICAgICAvLyBiYWNrd2FyZHMgY29tcGF0IGZvciBub3c6IGFsc28gc2V0IHRoZSBsb2NhbGVcbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHBhc3MgbnVsbCBmb3IgY29uZmlnIHRvIHVudXBkYXRlLCB1c2VmdWwgZm9yIHRlc3RzXG4gICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZXNbbmFtZV0ucGFyZW50TG9jYWxlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYWxlc1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbiAgICB9XG5cbiAgICAvLyByZXR1cm5zIGxvY2FsZSBkYXRhXG4gICAgZnVuY3Rpb24gZ2V0TG9jYWxlIChrZXkpIHtcbiAgICAgICAgdmFyIGxvY2FsZTtcblxuICAgICAgICBpZiAoa2V5ICYmIGtleS5fbG9jYWxlICYmIGtleS5fbG9jYWxlLl9hYmJyKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuX2xvY2FsZS5fYWJicjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0FycmF5KGtleSkpIHtcbiAgICAgICAgICAgIC8vc2hvcnQtY2lyY3VpdCBldmVyeXRoaW5nIGVsc2VcbiAgICAgICAgICAgIGxvY2FsZSA9IGxvYWRMb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5ID0gW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hvb3NlTG9jYWxlKGtleSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdExvY2FsZXMoKSB7XG4gICAgICAgIHJldHVybiBrZXlzKGxvY2FsZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrT3ZlcmZsb3cgKG0pIHtcbiAgICAgICAgdmFyIG92ZXJmbG93O1xuICAgICAgICB2YXIgYSA9IG0uX2E7XG5cbiAgICAgICAgaWYgKGEgJiYgZ2V0UGFyc2luZ0ZsYWdzKG0pLm92ZXJmbG93ID09PSAtMikge1xuICAgICAgICAgICAgb3ZlcmZsb3cgPVxuICAgICAgICAgICAgICAgIGFbTU9OVEhdICAgICAgIDwgMCB8fCBhW01PTlRIXSAgICAgICA+IDExICA/IE1PTlRIIDpcbiAgICAgICAgICAgICAgICBhW0RBVEVdICAgICAgICA8IDEgfHwgYVtEQVRFXSAgICAgICAgPiBkYXlzSW5Nb250aChhW1lFQVJdLCBhW01PTlRIXSkgPyBEQVRFIDpcbiAgICAgICAgICAgICAgICBhW0hPVVJdICAgICAgICA8IDAgfHwgYVtIT1VSXSAgICAgICAgPiAyNCB8fCAoYVtIT1VSXSA9PT0gMjQgJiYgKGFbTUlOVVRFXSAhPT0gMCB8fCBhW1NFQ09ORF0gIT09IDAgfHwgYVtNSUxMSVNFQ09ORF0gIT09IDApKSA/IEhPVVIgOlxuICAgICAgICAgICAgICAgIGFbTUlOVVRFXSAgICAgIDwgMCB8fCBhW01JTlVURV0gICAgICA+IDU5ICA/IE1JTlVURSA6XG4gICAgICAgICAgICAgICAgYVtTRUNPTkRdICAgICAgPCAwIHx8IGFbU0VDT05EXSAgICAgID4gNTkgID8gU0VDT05EIDpcbiAgICAgICAgICAgICAgICBhW01JTExJU0VDT05EXSA8IDAgfHwgYVtNSUxMSVNFQ09ORF0gPiA5OTkgPyBNSUxMSVNFQ09ORCA6XG4gICAgICAgICAgICAgICAgLTE7XG5cbiAgICAgICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93RGF5T2ZZZWFyICYmIChvdmVyZmxvdyA8IFlFQVIgfHwgb3ZlcmZsb3cgPiBEQVRFKSkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gREFURTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93V2Vla3MgJiYgb3ZlcmZsb3cgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBXRUVLO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dXZWVrZGF5ICYmIG92ZXJmbG93ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gV0VFS0RBWTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLm92ZXJmbG93ID0gb3ZlcmZsb3c7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICAvLyBQaWNrIHRoZSBmaXJzdCBkZWZpbmVkIG9mIHR3byBvciB0aHJlZSBhcmd1bWVudHMuXG4gICAgZnVuY3Rpb24gZGVmYXVsdHMoYSwgYiwgYykge1xuICAgICAgICBpZiAoYSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYiAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjdXJyZW50RGF0ZUFycmF5KGNvbmZpZykge1xuICAgICAgICAvLyBob29rcyBpcyBhY3R1YWxseSB0aGUgZXhwb3J0ZWQgbW9tZW50IG9iamVjdFxuICAgICAgICB2YXIgbm93VmFsdWUgPSBuZXcgRGF0ZShob29rcy5ub3coKSk7XG4gICAgICAgIGlmIChjb25maWcuX3VzZVVUQykge1xuICAgICAgICAgICAgcmV0dXJuIFtub3dWYWx1ZS5nZXRVVENGdWxsWWVhcigpLCBub3dWYWx1ZS5nZXRVVENNb250aCgpLCBub3dWYWx1ZS5nZXRVVENEYXRlKCldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbbm93VmFsdWUuZ2V0RnVsbFllYXIoKSwgbm93VmFsdWUuZ2V0TW9udGgoKSwgbm93VmFsdWUuZ2V0RGF0ZSgpXTtcbiAgICB9XG5cbiAgICAvLyBjb252ZXJ0IGFuIGFycmF5IHRvIGEgZGF0ZS5cbiAgICAvLyB0aGUgYXJyYXkgc2hvdWxkIG1pcnJvciB0aGUgcGFyYW1ldGVycyBiZWxvd1xuICAgIC8vIG5vdGU6IGFsbCB2YWx1ZXMgcGFzdCB0aGUgeWVhciBhcmUgb3B0aW9uYWwgYW5kIHdpbGwgZGVmYXVsdCB0byB0aGUgbG93ZXN0IHBvc3NpYmxlIHZhbHVlLlxuICAgIC8vIFt5ZWFyLCBtb250aCwgZGF5ICwgaG91ciwgbWludXRlLCBzZWNvbmQsIG1pbGxpc2Vjb25kXVxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21BcnJheSAoY29uZmlnKSB7XG4gICAgICAgIHZhciBpLCBkYXRlLCBpbnB1dCA9IFtdLCBjdXJyZW50RGF0ZSwgZXhwZWN0ZWRXZWVrZGF5LCB5ZWFyVG9Vc2U7XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudERhdGUgPSBjdXJyZW50RGF0ZUFycmF5KGNvbmZpZyk7XG5cbiAgICAgICAgLy9jb21wdXRlIGRheSBvZiB0aGUgeWVhciBmcm9tIHdlZWtzIGFuZCB3ZWVrZGF5c1xuICAgICAgICBpZiAoY29uZmlnLl93ICYmIGNvbmZpZy5fYVtEQVRFXSA9PSBudWxsICYmIGNvbmZpZy5fYVtNT05USF0gPT0gbnVsbCkge1xuICAgICAgICAgICAgZGF5T2ZZZWFyRnJvbVdlZWtJbmZvKGNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvL2lmIHRoZSBkYXkgb2YgdGhlIHllYXIgaXMgc2V0LCBmaWd1cmUgb3V0IHdoYXQgaXQgaXNcbiAgICAgICAgaWYgKGNvbmZpZy5fZGF5T2ZZZWFyICE9IG51bGwpIHtcbiAgICAgICAgICAgIHllYXJUb1VzZSA9IGRlZmF1bHRzKGNvbmZpZy5fYVtZRUFSXSwgY3VycmVudERhdGVbWUVBUl0pO1xuXG4gICAgICAgICAgICBpZiAoY29uZmlnLl9kYXlPZlllYXIgPiBkYXlzSW5ZZWFyKHllYXJUb1VzZSkgfHwgY29uZmlnLl9kYXlPZlllYXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dEYXlPZlllYXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXRlID0gY3JlYXRlVVRDRGF0ZSh5ZWFyVG9Vc2UsIDAsIGNvbmZpZy5fZGF5T2ZZZWFyKTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtNT05USF0gPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gICAgICAgICAgICBjb25maWcuX2FbREFURV0gPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZmF1bHQgdG8gY3VycmVudCBkYXRlLlxuICAgICAgICAvLyAqIGlmIG5vIHllYXIsIG1vbnRoLCBkYXkgb2YgbW9udGggYXJlIGdpdmVuLCBkZWZhdWx0IHRvIHRvZGF5XG4gICAgICAgIC8vICogaWYgZGF5IG9mIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG1vbnRoIGFuZCB5ZWFyXG4gICAgICAgIC8vICogaWYgbW9udGggaXMgZ2l2ZW4sIGRlZmF1bHQgb25seSB5ZWFyXG4gICAgICAgIC8vICogaWYgeWVhciBpcyBnaXZlbiwgZG9uJ3QgZGVmYXVsdCBhbnl0aGluZ1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyAmJiBjb25maWcuX2FbaV0gPT0gbnVsbDsgKytpKSB7XG4gICAgICAgICAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9IGN1cnJlbnREYXRlW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gWmVybyBvdXQgd2hhdGV2ZXIgd2FzIG5vdCBkZWZhdWx0ZWQsIGluY2x1ZGluZyB0aW1lXG4gICAgICAgIGZvciAoOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9IChjb25maWcuX2FbaV0gPT0gbnVsbCkgPyAoaSA9PT0gMiA/IDEgOiAwKSA6IGNvbmZpZy5fYVtpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGZvciAyNDowMDowMC4wMDBcbiAgICAgICAgaWYgKGNvbmZpZy5fYVtIT1VSXSA9PT0gMjQgJiZcbiAgICAgICAgICAgICAgICBjb25maWcuX2FbTUlOVVRFXSA9PT0gMCAmJlxuICAgICAgICAgICAgICAgIGNvbmZpZy5fYVtTRUNPTkRdID09PSAwICYmXG4gICAgICAgICAgICAgICAgY29uZmlnLl9hW01JTExJU0VDT05EXSA9PT0gMCkge1xuICAgICAgICAgICAgY29uZmlnLl9uZXh0RGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWcuX2QgPSAoY29uZmlnLl91c2VVVEMgPyBjcmVhdGVVVENEYXRlIDogY3JlYXRlRGF0ZSkuYXBwbHkobnVsbCwgaW5wdXQpO1xuICAgICAgICBleHBlY3RlZFdlZWtkYXkgPSBjb25maWcuX3VzZVVUQyA/IGNvbmZpZy5fZC5nZXRVVENEYXkoKSA6IGNvbmZpZy5fZC5nZXREYXkoKTtcblxuICAgICAgICAvLyBBcHBseSB0aW1lem9uZSBvZmZzZXQgZnJvbSBpbnB1dC4gVGhlIGFjdHVhbCB1dGNPZmZzZXQgY2FuIGJlIGNoYW5nZWRcbiAgICAgICAgLy8gd2l0aCBwYXJzZVpvbmUuXG4gICAgICAgIGlmIChjb25maWcuX3R6bSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fbmV4dERheSkge1xuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gMjQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBmb3IgbWlzbWF0Y2hpbmcgZGF5IG9mIHdlZWtcbiAgICAgICAgaWYgKGNvbmZpZy5fdyAmJiB0eXBlb2YgY29uZmlnLl93LmQgIT09ICd1bmRlZmluZWQnICYmIGNvbmZpZy5fdy5kICE9PSBleHBlY3RlZFdlZWtkYXkpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLndlZWtkYXlNaXNtYXRjaCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkYXlPZlllYXJGcm9tV2Vla0luZm8oY29uZmlnKSB7XG4gICAgICAgIHZhciB3LCB3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3ksIHRlbXAsIHdlZWtkYXlPdmVyZmxvdztcblxuICAgICAgICB3ID0gY29uZmlnLl93O1xuICAgICAgICBpZiAody5HRyAhPSBudWxsIHx8IHcuVyAhPSBudWxsIHx8IHcuRSAhPSBudWxsKSB7XG4gICAgICAgICAgICBkb3cgPSAxO1xuICAgICAgICAgICAgZG95ID0gNDtcblxuICAgICAgICAgICAgLy8gVE9ETzogV2UgbmVlZCB0byB0YWtlIHRoZSBjdXJyZW50IGlzb1dlZWtZZWFyLCBidXQgdGhhdCBkZXBlbmRzIG9uXG4gICAgICAgICAgICAvLyBob3cgd2UgaW50ZXJwcmV0IG5vdyAobG9jYWwsIHV0YywgZml4ZWQgb2Zmc2V0KS4gU28gY3JlYXRlXG4gICAgICAgICAgICAvLyBhIG5vdyB2ZXJzaW9uIG9mIGN1cnJlbnQgY29uZmlnICh0YWtlIGxvY2FsL3V0Yy9vZmZzZXQgZmxhZ3MsIGFuZFxuICAgICAgICAgICAgLy8gY3JlYXRlIG5vdykuXG4gICAgICAgICAgICB3ZWVrWWVhciA9IGRlZmF1bHRzKHcuR0csIGNvbmZpZy5fYVtZRUFSXSwgd2Vla09mWWVhcihjcmVhdGVMb2NhbCgpLCAxLCA0KS55ZWFyKTtcbiAgICAgICAgICAgIHdlZWsgPSBkZWZhdWx0cyh3LlcsIDEpO1xuICAgICAgICAgICAgd2Vla2RheSA9IGRlZmF1bHRzKHcuRSwgMSk7XG4gICAgICAgICAgICBpZiAod2Vla2RheSA8IDEgfHwgd2Vla2RheSA+IDcpIHtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZG93ID0gY29uZmlnLl9sb2NhbGUuX3dlZWsuZG93O1xuICAgICAgICAgICAgZG95ID0gY29uZmlnLl9sb2NhbGUuX3dlZWsuZG95O1xuXG4gICAgICAgICAgICB2YXIgY3VyV2VlayA9IHdlZWtPZlllYXIoY3JlYXRlTG9jYWwoKSwgZG93LCBkb3kpO1xuXG4gICAgICAgICAgICB3ZWVrWWVhciA9IGRlZmF1bHRzKHcuZ2csIGNvbmZpZy5fYVtZRUFSXSwgY3VyV2Vlay55ZWFyKTtcblxuICAgICAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IHdlZWsuXG4gICAgICAgICAgICB3ZWVrID0gZGVmYXVsdHMody53LCBjdXJXZWVrLndlZWspO1xuXG4gICAgICAgICAgICBpZiAody5kICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyB3ZWVrZGF5IC0tIGxvdyBkYXkgbnVtYmVycyBhcmUgY29uc2lkZXJlZCBuZXh0IHdlZWtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gdy5kO1xuICAgICAgICAgICAgICAgIGlmICh3ZWVrZGF5IDwgMCB8fCB3ZWVrZGF5ID4gNikge1xuICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAody5lICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBsb2NhbCB3ZWVrZGF5IC0tIGNvdW50aW5nIHN0YXJ0cyBmcm9tIGJlZ2luaW5nIG9mIHdlZWtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gdy5lICsgZG93O1xuICAgICAgICAgICAgICAgIGlmICh3LmUgPCAwIHx8IHcuZSA+IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gYmVnaW5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSBkb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdlZWsgPCAxIHx8IHdlZWsgPiB3ZWVrc0luWWVhcih3ZWVrWWVhciwgZG93LCBkb3kpKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dXZWVrcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla2RheU92ZXJmbG93ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtkYXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGVtcCA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgICAgICAgICAgY29uZmlnLl9hW1lFQVJdID0gdGVtcC55ZWFyO1xuICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0ZW1wLmRheU9mWWVhcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlzbyA4NjAxIHJlZ2V4XG4gICAgLy8gMDAwMC0wMC0wMCAwMDAwLVcwMCBvciAwMDAwLVcwMC0wICsgVCArIDAwIG9yIDAwOjAwIG9yIDAwOjAwOjAwIG9yIDAwOjAwOjAwLjAwMCArICswMDowMCBvciArMDAwMCBvciArMDApXG4gICAgdmFyIGV4dGVuZGVkSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pLSg/OlxcZFxcZC1cXGRcXGR8V1xcZFxcZC1cXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzo6XFxkXFxkKD86OlxcZFxcZCg/OlsuLF1cXGQrKT8pPyk/KShbXFwrXFwtXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC87XG4gICAgdmFyIGJhc2ljSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pKD86XFxkXFxkXFxkXFxkfFdcXGRcXGRcXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzpcXGRcXGQoPzpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoW1xcK1xcLV1cXGRcXGQoPzo6P1xcZFxcZCk/fFxccypaKT8pPyQvO1xuXG4gICAgdmFyIHR6UmVnZXggPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy87XG5cbiAgICB2YXIgaXNvRGF0ZXMgPSBbXG4gICAgICAgIFsnWVlZWVlZLU1NLUREJywgL1srLV1cXGR7Nn0tXFxkXFxkLVxcZFxcZC9dLFxuICAgICAgICBbJ1lZWVktTU0tREQnLCAvXFxkezR9LVxcZFxcZC1cXGRcXGQvXSxcbiAgICAgICAgWydHR0dHLVtXXVdXLUUnLCAvXFxkezR9LVdcXGRcXGQtXFxkL10sXG4gICAgICAgIFsnR0dHRy1bV11XVycsIC9cXGR7NH0tV1xcZFxcZC8sIGZhbHNlXSxcbiAgICAgICAgWydZWVlZLURERCcsIC9cXGR7NH0tXFxkezN9L10sXG4gICAgICAgIFsnWVlZWS1NTScsIC9cXGR7NH0tXFxkXFxkLywgZmFsc2VdLFxuICAgICAgICBbJ1lZWVlZWU1NREQnLCAvWystXVxcZHsxMH0vXSxcbiAgICAgICAgWydZWVlZTU1ERCcsIC9cXGR7OH0vXSxcbiAgICAgICAgLy8gWVlZWU1NIGlzIE5PVCBhbGxvd2VkIGJ5IHRoZSBzdGFuZGFyZFxuICAgICAgICBbJ0dHR0dbV11XV0UnLCAvXFxkezR9V1xcZHszfS9dLFxuICAgICAgICBbJ0dHR0dbV11XVycsIC9cXGR7NH1XXFxkezJ9LywgZmFsc2VdLFxuICAgICAgICBbJ1lZWVlEREQnLCAvXFxkezd9L11cbiAgICBdO1xuXG4gICAgLy8gaXNvIHRpbWUgZm9ybWF0cyBhbmQgcmVnZXhlc1xuICAgIHZhciBpc29UaW1lcyA9IFtcbiAgICAgICAgWydISDptbTpzcy5TU1NTJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkXFwuXFxkKy9dLFxuICAgICAgICBbJ0hIOm1tOnNzLFNTU1MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGQsXFxkKy9dLFxuICAgICAgICBbJ0hIOm1tOnNzJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkL10sXG4gICAgICAgIFsnSEg6bW0nLCAvXFxkXFxkOlxcZFxcZC9dLFxuICAgICAgICBbJ0hIbW1zcy5TU1NTJywgL1xcZFxcZFxcZFxcZFxcZFxcZFxcLlxcZCsvXSxcbiAgICAgICAgWydISG1tc3MsU1NTUycsIC9cXGRcXGRcXGRcXGRcXGRcXGQsXFxkKy9dLFxuICAgICAgICBbJ0hIbW1zcycsIC9cXGRcXGRcXGRcXGRcXGRcXGQvXSxcbiAgICAgICAgWydISG1tJywgL1xcZFxcZFxcZFxcZC9dLFxuICAgICAgICBbJ0hIJywgL1xcZFxcZC9dXG4gICAgXTtcblxuICAgIHZhciBhc3BOZXRKc29uUmVnZXggPSAvXlxcLz9EYXRlXFwoKFxcLT9cXGQrKS9pO1xuXG4gICAgLy8gZGF0ZSBmcm9tIGlzbyBmb3JtYXRcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tSVNPKGNvbmZpZykge1xuICAgICAgICB2YXIgaSwgbCxcbiAgICAgICAgICAgIHN0cmluZyA9IGNvbmZpZy5faSxcbiAgICAgICAgICAgIG1hdGNoID0gZXh0ZW5kZWRJc29SZWdleC5leGVjKHN0cmluZykgfHwgYmFzaWNJc29SZWdleC5leGVjKHN0cmluZyksXG4gICAgICAgICAgICBhbGxvd1RpbWUsIGRhdGVGb3JtYXQsIHRpbWVGb3JtYXQsIHR6Rm9ybWF0O1xuXG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaXNvID0gdHJ1ZTtcblxuICAgICAgICAgICAgZm9yIChpID0gMCwgbCA9IGlzb0RhdGVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpc29EYXRlc1tpXVsxXS5leGVjKG1hdGNoWzFdKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ID0gaXNvRGF0ZXNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgIGFsbG93VGltZSA9IGlzb0RhdGVzW2ldWzJdICE9PSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGVGb3JtYXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaFszXSkge1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSBpc29UaW1lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzb1RpbWVzW2ldWzFdLmV4ZWMobWF0Y2hbM10pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaFsyXSBzaG91bGQgYmUgJ1QnIG9yIHNwYWNlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9ybWF0ID0gKG1hdGNoWzJdIHx8ICcgJykgKyBpc29UaW1lc1tpXVswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aW1lRm9ybWF0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWFsbG93VGltZSAmJiB0aW1lRm9ybWF0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hbNF0pIHtcbiAgICAgICAgICAgICAgICBpZiAodHpSZWdleC5leGVjKG1hdGNoWzRdKSkge1xuICAgICAgICAgICAgICAgICAgICB0ekZvcm1hdCA9ICdaJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbmZpZy5fZiA9IGRhdGVGb3JtYXQgKyAodGltZUZvcm1hdCB8fCAnJykgKyAodHpGb3JtYXQgfHwgJycpO1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSRkMgMjgyMiByZWdleDogRm9yIGRldGFpbHMgc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyODIyI3NlY3Rpb24tMy4zXG4gICAgdmFyIHJmYzI4MjIgPSAvXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLD9cXHMpPyhcXGR7MSwyfSlcXHMoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpXFxzKFxcZHsyLDR9KVxccyhcXGRcXGQpOihcXGRcXGQpKD86OihcXGRcXGQpKT9cXHMoPzooVVR8R01UfFtFQ01QXVtTRF1UKXwoW1p6XSl8KFsrLV1cXGR7NH0pKSQvO1xuXG4gICAgZnVuY3Rpb24gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyh5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cikge1xuICAgICAgICB2YXIgcmVzdWx0ID0gW1xuICAgICAgICAgICAgdW50cnVuY2F0ZVllYXIoeWVhclN0ciksXG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQuaW5kZXhPZihtb250aFN0ciksXG4gICAgICAgICAgICBwYXJzZUludChkYXlTdHIsIDEwKSxcbiAgICAgICAgICAgIHBhcnNlSW50KGhvdXJTdHIsIDEwKSxcbiAgICAgICAgICAgIHBhcnNlSW50KG1pbnV0ZVN0ciwgMTApXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHNlY29uZFN0cikge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocGFyc2VJbnQoc2Vjb25kU3RyLCAxMCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1bnRydW5jYXRlWWVhcih5ZWFyU3RyKSB7XG4gICAgICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoeWVhclN0ciwgMTApO1xuICAgICAgICBpZiAoeWVhciA8PSA0OSkge1xuICAgICAgICAgICAgcmV0dXJuIDIwMDAgKyB5ZWFyO1xuICAgICAgICB9IGVsc2UgaWYgKHllYXIgPD0gOTk5KSB7XG4gICAgICAgICAgICByZXR1cm4gMTkwMCArIHllYXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHllYXI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykge1xuICAgICAgICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC9cXChbXildKlxcKXxbXFxuXFx0XS9nLCAnICcpLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCAnICcpLnJlcGxhY2UoL15cXHNcXHMqLywgJycpLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrV2Vla2RheSh3ZWVrZGF5U3RyLCBwYXJzZWRJbnB1dCwgY29uZmlnKSB7XG4gICAgICAgIGlmICh3ZWVrZGF5U3RyKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBSZXBsYWNlIHRoZSB2YW5pbGxhIEpTIERhdGUgb2JqZWN0IHdpdGggYW4gaW5kZXBlbnRlbnQgZGF5LW9mLXdlZWsgY2hlY2suXG4gICAgICAgICAgICB2YXIgd2Vla2RheVByb3ZpZGVkID0gZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQuaW5kZXhPZih3ZWVrZGF5U3RyKSxcbiAgICAgICAgICAgICAgICB3ZWVrZGF5QWN0dWFsID0gbmV3IERhdGUocGFyc2VkSW5wdXRbMF0sIHBhcnNlZElucHV0WzFdLCBwYXJzZWRJbnB1dFsyXSkuZ2V0RGF5KCk7XG4gICAgICAgICAgICBpZiAod2Vla2RheVByb3ZpZGVkICE9PSB3ZWVrZGF5QWN0dWFsKSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIG9ic09mZnNldHMgPSB7XG4gICAgICAgIFVUOiAwLFxuICAgICAgICBHTVQ6IDAsXG4gICAgICAgIEVEVDogLTQgKiA2MCxcbiAgICAgICAgRVNUOiAtNSAqIDYwLFxuICAgICAgICBDRFQ6IC01ICogNjAsXG4gICAgICAgIENTVDogLTYgKiA2MCxcbiAgICAgICAgTURUOiAtNiAqIDYwLFxuICAgICAgICBNU1Q6IC03ICogNjAsXG4gICAgICAgIFBEVDogLTcgKiA2MCxcbiAgICAgICAgUFNUOiAtOCAqIDYwXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZU9mZnNldChvYnNPZmZzZXQsIG1pbGl0YXJ5T2Zmc2V0LCBudW1PZmZzZXQpIHtcbiAgICAgICAgaWYgKG9ic09mZnNldCkge1xuICAgICAgICAgICAgcmV0dXJuIG9ic09mZnNldHNbb2JzT2Zmc2V0XTtcbiAgICAgICAgfSBlbHNlIGlmIChtaWxpdGFyeU9mZnNldCkge1xuICAgICAgICAgICAgLy8gdGhlIG9ubHkgYWxsb3dlZCBtaWxpdGFyeSB0eiBpcyBaXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBobSA9IHBhcnNlSW50KG51bU9mZnNldCwgMTApO1xuICAgICAgICAgICAgdmFyIG0gPSBobSAlIDEwMCwgaCA9IChobSAtIG0pIC8gMTAwO1xuICAgICAgICAgICAgcmV0dXJuIGggKiA2MCArIG07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGFuZCB0aW1lIGZyb20gcmVmIDI4MjIgZm9ybWF0XG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHJmYzI4MjIuZXhlYyhwcmVwcm9jZXNzUkZDMjgyMihjb25maWcuX2kpKTtcbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICB2YXIgcGFyc2VkQXJyYXkgPSBleHRyYWN0RnJvbVJGQzI4MjJTdHJpbmdzKG1hdGNoWzRdLCBtYXRjaFszXSwgbWF0Y2hbMl0sIG1hdGNoWzVdLCBtYXRjaFs2XSwgbWF0Y2hbN10pO1xuICAgICAgICAgICAgaWYgKCFjaGVja1dlZWtkYXkobWF0Y2hbMV0sIHBhcnNlZEFycmF5LCBjb25maWcpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25maWcuX2EgPSBwYXJzZWRBcnJheTtcbiAgICAgICAgICAgIGNvbmZpZy5fdHptID0gY2FsY3VsYXRlT2Zmc2V0KG1hdGNoWzhdLCBtYXRjaFs5XSwgbWF0Y2hbMTBdKTtcblxuICAgICAgICAgICAgY29uZmlnLl9kID0gY3JlYXRlVVRDRGF0ZS5hcHBseShudWxsLCBjb25maWcuX2EpO1xuICAgICAgICAgICAgY29uZmlnLl9kLnNldFVUQ01pbnV0ZXMoY29uZmlnLl9kLmdldFVUQ01pbnV0ZXMoKSAtIGNvbmZpZy5fdHptKTtcblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykucmZjMjgyMiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgZnJvbSBpc28gZm9ybWF0IG9yIGZhbGxiYWNrXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZyhjb25maWcpIHtcbiAgICAgICAgdmFyIG1hdGNoZWQgPSBhc3BOZXRKc29uUmVnZXguZXhlYyhjb25maWcuX2kpO1xuXG4gICAgICAgIGlmIChtYXRjaGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgrbWF0Y2hlZFsxXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tSVNPKGNvbmZpZyk7XG4gICAgICAgIGlmIChjb25maWcuX2lzVmFsaWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBkZWxldGUgY29uZmlnLl9pc1ZhbGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKTtcbiAgICAgICAgaWYgKGNvbmZpZy5faXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaW5hbCBhdHRlbXB0LCB1c2UgSW5wdXQgRmFsbGJhY2tcbiAgICAgICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soY29uZmlnKTtcbiAgICB9XG5cbiAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ3ZhbHVlIHByb3ZpZGVkIGlzIG5vdCBpbiBhIHJlY29nbml6ZWQgUkZDMjgyMiBvciBJU08gZm9ybWF0LiBtb21lbnQgY29uc3RydWN0aW9uIGZhbGxzIGJhY2sgdG8ganMgRGF0ZSgpLCAnICtcbiAgICAgICAgJ3doaWNoIGlzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYWxsIGJyb3dzZXJzIGFuZCB2ZXJzaW9ucy4gTm9uIFJGQzI4MjIvSVNPIGRhdGUgZm9ybWF0cyBhcmUgJyArXG4gICAgICAgICdkaXNjb3VyYWdlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIG1ham9yIHJlbGVhc2UuIFBsZWFzZSByZWZlciB0byAnICtcbiAgICAgICAgJ2h0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvanMtZGF0ZS8gZm9yIG1vcmUgaW5mby4nLFxuICAgICAgICBmdW5jdGlvbiAoY29uZmlnKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShjb25maWcuX2kgKyAoY29uZmlnLl91c2VVVEMgPyAnIFVUQycgOiAnJykpO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIC8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBJU08gc3RhbmRhcmRcbiAgICBob29rcy5JU09fODYwMSA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIFJGQyAyODIyIGZvcm1cbiAgICBob29rcy5SRkNfMjgyMiA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gZGF0ZSBmcm9tIHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZ1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyB0byBhbm90aGVyIHBhcnQgb2YgdGhlIGNyZWF0aW9uIGZsb3cgdG8gcHJldmVudCBjaXJjdWxhciBkZXBzXG4gICAgICAgIGlmIChjb25maWcuX2YgPT09IGhvb2tzLklTT184NjAxKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tSVNPKGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuUkZDXzI4MjIpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uZmlnLl9hID0gW107XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gdHJ1ZTtcblxuICAgICAgICAvLyBUaGlzIGFycmF5IGlzIHVzZWQgdG8gbWFrZSBhIERhdGUsIGVpdGhlciB3aXRoIGBuZXcgRGF0ZWAgb3IgYERhdGUuVVRDYFxuICAgICAgICB2YXIgc3RyaW5nID0gJycgKyBjb25maWcuX2ksXG4gICAgICAgICAgICBpLCBwYXJzZWRJbnB1dCwgdG9rZW5zLCB0b2tlbiwgc2tpcHBlZCxcbiAgICAgICAgICAgIHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGgsXG4gICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoID0gMDtcblxuICAgICAgICB0b2tlbnMgPSBleHBhbmRGb3JtYXQoY29uZmlnLl9mLCBjb25maWcuX2xvY2FsZSkubWF0Y2goZm9ybWF0dGluZ1Rva2VucykgfHwgW107XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW4gPSB0b2tlbnNbaV07XG4gICAgICAgICAgICBwYXJzZWRJbnB1dCA9IChzdHJpbmcubWF0Y2goZ2V0UGFyc2VSZWdleEZvclRva2VuKHRva2VuLCBjb25maWcpKSB8fCBbXSlbMF07XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygndG9rZW4nLCB0b2tlbiwgJ3BhcnNlZElucHV0JywgcGFyc2VkSW5wdXQsXG4gICAgICAgICAgICAvLyAgICAgICAgICdyZWdleCcsIGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBza2lwcGVkID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkpO1xuICAgICAgICAgICAgICAgIGlmIChza2lwcGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChza2lwcGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKHN0cmluZy5pbmRleE9mKHBhcnNlZElucHV0KSArIHBhcnNlZElucHV0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCArPSBwYXJzZWRJbnB1dC5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBkb24ndCBwYXJzZSBpZiBpdCdzIG5vdCBhIGtub3duIHRva2VuXG4gICAgICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbdG9rZW5dKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFkZFRpbWVUb0FycmF5RnJvbVRva2VuKHRva2VuLCBwYXJzZWRJbnB1dCwgY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNvbmZpZy5fc3RyaWN0ICYmICFwYXJzZWRJbnB1dCkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZFRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFkZCByZW1haW5pbmcgdW5wYXJzZWQgaW5wdXQgbGVuZ3RoIHRvIHRoZSBzdHJpbmdcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuY2hhcnNMZWZ0T3ZlciA9IHN0cmluZ0xlbmd0aCAtIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGg7XG4gICAgICAgIGlmIChzdHJpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2xlYXIgXzEyaCBmbGFnIGlmIGhvdXIgaXMgPD0gMTJcbiAgICAgICAgaWYgKGNvbmZpZy5fYVtIT1VSXSA8PSAxMiAmJlxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9PT0gdHJ1ZSAmJlxuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID4gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnBhcnNlZERhdGVQYXJ0cyA9IGNvbmZpZy5fYS5zbGljZSgwKTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykubWVyaWRpZW0gPSBjb25maWcuX21lcmlkaWVtO1xuICAgICAgICAvLyBoYW5kbGUgbWVyaWRpZW1cbiAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gbWVyaWRpZW1GaXhXcmFwKGNvbmZpZy5fbG9jYWxlLCBjb25maWcuX2FbSE9VUl0sIGNvbmZpZy5fbWVyaWRpZW0pO1xuXG4gICAgICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgICAgICBjaGVja092ZXJmbG93KGNvbmZpZyk7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBtZXJpZGllbUZpeFdyYXAgKGxvY2FsZSwgaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgdmFyIGlzUG07XG5cbiAgICAgICAgaWYgKG1lcmlkaWVtID09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb2NhbGUubWVyaWRpZW1Ib3VyICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUubWVyaWRpZW1Ib3VyKGhvdXIsIG1lcmlkaWVtKTtcbiAgICAgICAgfSBlbHNlIGlmIChsb2NhbGUuaXNQTSAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyBGYWxsYmFja1xuICAgICAgICAgICAgaXNQbSA9IGxvY2FsZS5pc1BNKG1lcmlkaWVtKTtcbiAgICAgICAgICAgIGlmIChpc1BtICYmIGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgKz0gMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzUG0gJiYgaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3Qgc3VwcG9zZWQgdG8gaGFwcGVuXG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgZnJvbSBzdHJpbmcgYW5kIGFycmF5IG9mIGZvcm1hdCBzdHJpbmdzXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZykge1xuICAgICAgICB2YXIgdGVtcENvbmZpZyxcbiAgICAgICAgICAgIGJlc3RNb21lbnQsXG5cbiAgICAgICAgICAgIHNjb3JlVG9CZWF0LFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZTtcblxuICAgICAgICBpZiAoY29uZmlnLl9mLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEZvcm1hdCA9IHRydWU7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShOYU4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy5fZi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY3VycmVudFNjb3JlID0gMDtcbiAgICAgICAgICAgIHRlbXBDb25maWcgPSBjb3B5Q29uZmlnKHt9LCBjb25maWcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0ZW1wQ29uZmlnLl91c2VVVEMgPSBjb25maWcuX3VzZVVUQztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRlbXBDb25maWcuX2YgPSBjb25maWcuX2ZbaV07XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KHRlbXBDb25maWcpO1xuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQodGVtcENvbmZpZykpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYW55IGlucHV0IHRoYXQgd2FzIG5vdCBwYXJzZWQgYWRkIGEgcGVuYWx0eSBmb3IgdGhhdCBmb3JtYXRcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSArPSBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuY2hhcnNMZWZ0T3ZlcjtcblxuICAgICAgICAgICAgLy9vciB0b2tlbnNcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSArPSBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykudW51c2VkVG9rZW5zLmxlbmd0aCAqIDEwO1xuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuc2NvcmUgPSBjdXJyZW50U2NvcmU7XG5cbiAgICAgICAgICAgIGlmIChzY29yZVRvQmVhdCA9PSBudWxsIHx8IGN1cnJlbnRTY29yZSA8IHNjb3JlVG9CZWF0KSB7XG4gICAgICAgICAgICAgICAgc2NvcmVUb0JlYXQgPSBjdXJyZW50U2NvcmU7XG4gICAgICAgICAgICAgICAgYmVzdE1vbWVudCA9IHRlbXBDb25maWc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHRlbmQoY29uZmlnLCBiZXN0TW9tZW50IHx8IHRlbXBDb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoY29uZmlnLl9pKTtcbiAgICAgICAgY29uZmlnLl9hID0gbWFwKFtpLnllYXIsIGkubW9udGgsIGkuZGF5IHx8IGkuZGF0ZSwgaS5ob3VyLCBpLm1pbnV0ZSwgaS5zZWNvbmQsIGkubWlsbGlzZWNvbmRdLCBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqICYmIHBhcnNlSW50KG9iaiwgMTApO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVGcm9tQ29uZmlnIChjb25maWcpIHtcbiAgICAgICAgdmFyIHJlcyA9IG5ldyBNb21lbnQoY2hlY2tPdmVyZmxvdyhwcmVwYXJlQ29uZmlnKGNvbmZpZykpKTtcbiAgICAgICAgaWYgKHJlcy5fbmV4dERheSkge1xuICAgICAgICAgICAgLy8gQWRkaW5nIGlzIHNtYXJ0IGVub3VnaCBhcm91bmQgRFNUXG4gICAgICAgICAgICByZXMuYWRkKDEsICdkJyk7XG4gICAgICAgICAgICByZXMuX25leHREYXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZXBhcmVDb25maWcgKGNvbmZpZykge1xuICAgICAgICB2YXIgaW5wdXQgPSBjb25maWcuX2ksXG4gICAgICAgICAgICBmb3JtYXQgPSBjb25maWcuX2Y7XG5cbiAgICAgICAgY29uZmlnLl9sb2NhbGUgPSBjb25maWcuX2xvY2FsZSB8fCBnZXRMb2NhbGUoY29uZmlnLl9sKTtcblxuICAgICAgICBpZiAoaW5wdXQgPT09IG51bGwgfHwgKGZvcm1hdCA9PT0gdW5kZWZpbmVkICYmIGlucHV0ID09PSAnJykpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKHtudWxsSW5wdXQ6IHRydWV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25maWcuX2kgPSBpbnB1dCA9IGNvbmZpZy5fbG9jYWxlLnByZXBhcnNlKGlucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc01vbWVudChpbnB1dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9tZW50KGNoZWNrT3ZlcmZsb3coaW5wdXQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBpbnB1dDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCkge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xuICAgICAgICB9ICBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21JbnB1dChjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc1ZhbGlkKGNvbmZpZykpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21JbnB1dChjb25maWcpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gY29uZmlnLl9pO1xuICAgICAgICBpZiAoaXNVbmRlZmluZWQoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShob29rcy5ub3coKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaW5wdXQudmFsdWVPZigpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nKGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYSA9IG1hcChpbnB1dC5zbGljZSgwKSwgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uZmlnRnJvbUFycmF5KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tT2JqZWN0KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpKSB7XG4gICAgICAgICAgICAvLyBmcm9tIG1pbGxpc2Vjb25kc1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soY29uZmlnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxvY2FsT3JVVEMgKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCBpc1VUQykge1xuICAgICAgICB2YXIgYyA9IHt9O1xuXG4gICAgICAgIGlmIChsb2NhbGUgPT09IHRydWUgfHwgbG9jYWxlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc3RyaWN0ID0gbG9jYWxlO1xuICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChpc09iamVjdChpbnB1dCkgJiYgaXNPYmplY3RFbXB0eShpbnB1dCkpIHx8XG4gICAgICAgICAgICAgICAgKGlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgICAgIGlucHV0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIG9iamVjdCBjb25zdHJ1Y3Rpb24gbXVzdCBiZSBkb25lIHRoaXMgd2F5LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQyM1xuICAgICAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlO1xuICAgICAgICBjLl91c2VVVEMgPSBjLl9pc1VUQyA9IGlzVVRDO1xuICAgICAgICBjLl9sID0gbG9jYWxlO1xuICAgICAgICBjLl9pID0gaW5wdXQ7XG4gICAgICAgIGMuX2YgPSBmb3JtYXQ7XG4gICAgICAgIGMuX3N0cmljdCA9IHN0cmljdDtcblxuICAgICAgICByZXR1cm4gY3JlYXRlRnJvbUNvbmZpZyhjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVMb2NhbCAoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsT3JVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QsIGZhbHNlKTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG90eXBlTWluID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkubWluIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWF4IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8nLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb3RoZXIgPSBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA8IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgdmFyIHByb3RvdHlwZU1heCA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudCgpLm1heCBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1pbiBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvJyxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJiBvdGhlci5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPiB0aGlzID8gdGhpcyA6IG90aGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIC8vIFBpY2sgYSBtb21lbnQgbSBmcm9tIG1vbWVudHMgc28gdGhhdCBtW2ZuXShvdGhlcikgaXMgdHJ1ZSBmb3IgYWxsXG4gICAgLy8gb3RoZXIuIFRoaXMgcmVsaWVzIG9uIHRoZSBmdW5jdGlvbiBmbiB0byBiZSB0cmFuc2l0aXZlLlxuICAgIC8vXG4gICAgLy8gbW9tZW50cyBzaG91bGQgZWl0aGVyIGJlIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzIG9yIGFuIGFycmF5LCB3aG9zZVxuICAgIC8vIGZpcnN0IGVsZW1lbnQgaXMgYW4gYXJyYXkgb2YgbW9tZW50IG9iamVjdHMuXG4gICAgZnVuY3Rpb24gcGlja0J5KGZuLCBtb21lbnRzKSB7XG4gICAgICAgIHZhciByZXMsIGk7XG4gICAgICAgIGlmIChtb21lbnRzLmxlbmd0aCA9PT0gMSAmJiBpc0FycmF5KG1vbWVudHNbMF0pKSB7XG4gICAgICAgICAgICBtb21lbnRzID0gbW9tZW50c1swXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW1vbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwoKTtcbiAgICAgICAgfVxuICAgICAgICByZXMgPSBtb21lbnRzWzBdO1xuICAgICAgICBmb3IgKGkgPSAxOyBpIDwgbW9tZW50cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgaWYgKCFtb21lbnRzW2ldLmlzVmFsaWQoKSB8fCBtb21lbnRzW2ldW2ZuXShyZXMpKSB7XG4gICAgICAgICAgICAgICAgcmVzID0gbW9tZW50c1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFVzZSBbXS5zb3J0IGluc3RlYWQ/XG4gICAgZnVuY3Rpb24gbWluICgpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG5cbiAgICAgICAgcmV0dXJuIHBpY2tCeSgnaXNCZWZvcmUnLCBhcmdzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXggKCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcblxuICAgICAgICByZXR1cm4gcGlja0J5KCdpc0FmdGVyJywgYXJncyk7XG4gICAgfVxuXG4gICAgdmFyIG5vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIERhdGUubm93ID8gRGF0ZS5ub3coKSA6ICsobmV3IERhdGUoKSk7XG4gICAgfTtcblxuICAgIHZhciBvcmRlcmluZyA9IFsneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsICdtaWxsaXNlY29uZCddO1xuXG4gICAgZnVuY3Rpb24gaXNEdXJhdGlvblZhbGlkKG0pIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIG0pIHtcbiAgICAgICAgICAgIGlmICghKGluZGV4T2YuY2FsbChvcmRlcmluZywga2V5KSAhPT0gLTEgJiYgKG1ba2V5XSA9PSBudWxsIHx8ICFpc05hTihtW2tleV0pKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdW5pdEhhc0RlY2ltYWwgPSBmYWxzZTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcmRlcmluZy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgaWYgKG1bb3JkZXJpbmdbaV1dKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVuaXRIYXNEZWNpbWFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25seSBhbGxvdyBub24taW50ZWdlcnMgZm9yIHNtYWxsZXN0IHVuaXRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlRmxvYXQobVtvcmRlcmluZ1tpXV0pICE9PSB0b0ludChtW29yZGVyaW5nW2ldXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pdEhhc0RlY2ltYWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQkMSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmFsaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZCQxKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oTmFOKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBEdXJhdGlvbiAoZHVyYXRpb24pIHtcbiAgICAgICAgdmFyIG5vcm1hbGl6ZWRJbnB1dCA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGR1cmF0aW9uKSxcbiAgICAgICAgICAgIHllYXJzID0gbm9ybWFsaXplZElucHV0LnllYXIgfHwgMCxcbiAgICAgICAgICAgIHF1YXJ0ZXJzID0gbm9ybWFsaXplZElucHV0LnF1YXJ0ZXIgfHwgMCxcbiAgICAgICAgICAgIG1vbnRocyA9IG5vcm1hbGl6ZWRJbnB1dC5tb250aCB8fCAwLFxuICAgICAgICAgICAgd2Vla3MgPSBub3JtYWxpemVkSW5wdXQud2VlayB8fCAwLFxuICAgICAgICAgICAgZGF5cyA9IG5vcm1hbGl6ZWRJbnB1dC5kYXkgfHwgMCxcbiAgICAgICAgICAgIGhvdXJzID0gbm9ybWFsaXplZElucHV0LmhvdXIgfHwgMCxcbiAgICAgICAgICAgIG1pbnV0ZXMgPSBub3JtYWxpemVkSW5wdXQubWludXRlIHx8IDAsXG4gICAgICAgICAgICBzZWNvbmRzID0gbm9ybWFsaXplZElucHV0LnNlY29uZCB8fCAwLFxuICAgICAgICAgICAgbWlsbGlzZWNvbmRzID0gbm9ybWFsaXplZElucHV0Lm1pbGxpc2Vjb25kIHx8IDA7XG5cbiAgICAgICAgdGhpcy5faXNWYWxpZCA9IGlzRHVyYXRpb25WYWxpZChub3JtYWxpemVkSW5wdXQpO1xuXG4gICAgICAgIC8vIHJlcHJlc2VudGF0aW9uIGZvciBkYXRlQWRkUmVtb3ZlXG4gICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyA9ICttaWxsaXNlY29uZHMgK1xuICAgICAgICAgICAgc2Vjb25kcyAqIDFlMyArIC8vIDEwMDBcbiAgICAgICAgICAgIG1pbnV0ZXMgKiA2ZTQgKyAvLyAxMDAwICogNjBcbiAgICAgICAgICAgIGhvdXJzICogMTAwMCAqIDYwICogNjA7IC8vdXNpbmcgMTAwMCAqIDYwICogNjAgaW5zdGVhZCBvZiAzNmU1IHRvIGF2b2lkIGZsb2F0aW5nIHBvaW50IHJvdW5kaW5nIGVycm9ycyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMjk3OFxuICAgICAgICAvLyBCZWNhdXNlIG9mIGRhdGVBZGRSZW1vdmUgdHJlYXRzIDI0IGhvdXJzIGFzIGRpZmZlcmVudCBmcm9tIGFcbiAgICAgICAgLy8gZGF5IHdoZW4gd29ya2luZyBhcm91bmQgRFNULCB3ZSBuZWVkIHRvIHN0b3JlIHRoZW0gc2VwYXJhdGVseVxuICAgICAgICB0aGlzLl9kYXlzID0gK2RheXMgK1xuICAgICAgICAgICAgd2Vla3MgKiA3O1xuICAgICAgICAvLyBJdCBpcyBpbXBvc3NpYmxlIHRvIHRyYW5zbGF0ZSBtb250aHMgaW50byBkYXlzIHdpdGhvdXQga25vd2luZ1xuICAgICAgICAvLyB3aGljaCBtb250aHMgeW91IGFyZSBhcmUgdGFsa2luZyBhYm91dCwgc28gd2UgaGF2ZSB0byBzdG9yZVxuICAgICAgICAvLyBpdCBzZXBhcmF0ZWx5LlxuICAgICAgICB0aGlzLl9tb250aHMgPSArbW9udGhzICtcbiAgICAgICAgICAgIHF1YXJ0ZXJzICogMyArXG4gICAgICAgICAgICB5ZWFycyAqIDEyO1xuXG4gICAgICAgIHRoaXMuX2RhdGEgPSB7fTtcblxuICAgICAgICB0aGlzLl9sb2NhbGUgPSBnZXRMb2NhbGUoKTtcblxuICAgICAgICB0aGlzLl9idWJibGUoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0R1cmF0aW9uIChvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIER1cmF0aW9uO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic1JvdW5kIChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKC0xICogbnVtYmVyKSAqIC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGZ1bmN0aW9uIG9mZnNldCAodG9rZW4sIHNlcGFyYXRvcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbih0b2tlbiwgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMudXRjT2Zmc2V0KCk7XG4gICAgICAgICAgICB2YXIgc2lnbiA9ICcrJztcbiAgICAgICAgICAgIGlmIChvZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDtcbiAgICAgICAgICAgICAgICBzaWduID0gJy0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNpZ24gKyB6ZXJvRmlsbCh+fihvZmZzZXQgLyA2MCksIDIpICsgc2VwYXJhdG9yICsgemVyb0ZpbGwofn4ob2Zmc2V0KSAlIDYwLCAyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb2Zmc2V0KCdaJywgJzonKTtcbiAgICBvZmZzZXQoJ1paJywgJycpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignWicsICBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgICBhZGRSZWdleFRva2VuKCdaWicsIG1hdGNoU2hvcnRPZmZzZXQpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydaJywgJ1paJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX3VzZVVUQyA9IHRydWU7XG4gICAgICAgIGNvbmZpZy5fdHptID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyB0aW1lem9uZSBjaHVua2VyXG4gICAgLy8gJysxMDowMCcgPiBbJzEwJywgICcwMCddXG4gICAgLy8gJy0xNTMwJyAgPiBbJy0xNScsICczMCddXG4gICAgdmFyIGNodW5rT2Zmc2V0ID0gLyhbXFwrXFwtXXxcXGRcXGQpL2dpO1xuXG4gICAgZnVuY3Rpb24gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaGVyLCBzdHJpbmcpIHtcbiAgICAgICAgdmFyIG1hdGNoZXMgPSAoc3RyaW5nIHx8ICcnKS5tYXRjaChtYXRjaGVyKTtcblxuICAgICAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2h1bmsgICA9IG1hdGNoZXNbbWF0Y2hlcy5sZW5ndGggLSAxXSB8fCBbXTtcbiAgICAgICAgdmFyIHBhcnRzICAgPSAoY2h1bmsgKyAnJykubWF0Y2goY2h1bmtPZmZzZXQpIHx8IFsnLScsIDAsIDBdO1xuICAgICAgICB2YXIgbWludXRlcyA9ICsocGFydHNbMV0gKiA2MCkgKyB0b0ludChwYXJ0c1syXSk7XG5cbiAgICAgICAgcmV0dXJuIG1pbnV0ZXMgPT09IDAgP1xuICAgICAgICAgIDAgOlxuICAgICAgICAgIHBhcnRzWzBdID09PSAnKycgPyBtaW51dGVzIDogLW1pbnV0ZXM7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGEgbW9tZW50IGZyb20gaW5wdXQsIHRoYXQgaXMgbG9jYWwvdXRjL3pvbmUgZXF1aXZhbGVudCB0byBtb2RlbC5cbiAgICBmdW5jdGlvbiBjbG9uZVdpdGhPZmZzZXQoaW5wdXQsIG1vZGVsKSB7XG4gICAgICAgIHZhciByZXMsIGRpZmY7XG4gICAgICAgIGlmIChtb2RlbC5faXNVVEMpIHtcbiAgICAgICAgICAgIHJlcyA9IG1vZGVsLmNsb25lKCk7XG4gICAgICAgICAgICBkaWZmID0gKGlzTW9tZW50KGlucHV0KSB8fCBpc0RhdGUoaW5wdXQpID8gaW5wdXQudmFsdWVPZigpIDogY3JlYXRlTG9jYWwoaW5wdXQpLnZhbHVlT2YoKSkgLSByZXMudmFsdWVPZigpO1xuICAgICAgICAgICAgLy8gVXNlIGxvdy1sZXZlbCBhcGksIGJlY2F1c2UgdGhpcyBmbiBpcyBsb3ctbGV2ZWwgYXBpLlxuICAgICAgICAgICAgcmVzLl9kLnNldFRpbWUocmVzLl9kLnZhbHVlT2YoKSArIGRpZmYpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHJlcywgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVMb2NhbChpbnB1dCkubG9jYWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldERhdGVPZmZzZXQgKG0pIHtcbiAgICAgICAgLy8gT24gRmlyZWZveC4yNCBEYXRlI2dldFRpbWV6b25lT2Zmc2V0IHJldHVybnMgYSBmbG9hdGluZyBwb2ludC5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvcHVsbC8xODcxXG4gICAgICAgIHJldHVybiAtTWF0aC5yb3VuZChtLl9kLmdldFRpbWV6b25lT2Zmc2V0KCkgLyAxNSkgKiAxNTtcbiAgICB9XG5cbiAgICAvLyBIT09LU1xuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBhIG1vbWVudCBpcyBtdXRhdGVkLlxuICAgIC8vIEl0IGlzIGludGVuZGVkIHRvIGtlZXAgdGhlIG9mZnNldCBpbiBzeW5jIHdpdGggdGhlIHRpbWV6b25lLlxuICAgIGhvb2tzLnVwZGF0ZU9mZnNldCA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgLy8ga2VlcExvY2FsVGltZSA9IHRydWUgbWVhbnMgb25seSBjaGFuZ2UgdGhlIHRpbWV6b25lLCB3aXRob3V0XG4gICAgLy8gYWZmZWN0aW5nIHRoZSBsb2NhbCBob3VyLiBTbyA1OjMxOjI2ICswMzAwIC0tW3V0Y09mZnNldCgyLCB0cnVlKV0tLT5cbiAgICAvLyA1OjMxOjI2ICswMjAwIEl0IGlzIHBvc3NpYmxlIHRoYXQgNTozMToyNiBkb2Vzbid0IGV4aXN0IHdpdGggb2Zmc2V0XG4gICAgLy8gKzAyMDAsIHNvIHdlIGFkanVzdCB0aGUgdGltZSBhcyBuZWVkZWQsIHRvIGJlIHZhbGlkLlxuICAgIC8vXG4gICAgLy8gS2VlcGluZyB0aGUgdGltZSBhY3R1YWxseSBhZGRzL3N1YnRyYWN0cyAob25lIGhvdXIpXG4gICAgLy8gZnJvbSB0aGUgYWN0dWFsIHJlcHJlc2VudGVkIHRpbWUuIFRoYXQgaXMgd2h5IHdlIGNhbGwgdXBkYXRlT2Zmc2V0XG4gICAgLy8gYSBzZWNvbmQgdGltZS4gSW4gY2FzZSBpdCB3YW50cyB1cyB0byBjaGFuZ2UgdGhlIG9mZnNldCBhZ2FpblxuICAgIC8vIF9jaGFuZ2VJblByb2dyZXNzID09IHRydWUgY2FzZSwgdGhlbiB3ZSBoYXZlIHRvIGFkanVzdCwgYmVjYXVzZVxuICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2ggdGltZSBpbiB0aGUgZ2l2ZW4gdGltZXpvbmUuXG4gICAgZnVuY3Rpb24gZ2V0U2V0T2Zmc2V0IChpbnB1dCwga2VlcExvY2FsVGltZSwga2VlcE1pbnV0ZXMpIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMuX29mZnNldCB8fCAwLFxuICAgICAgICAgICAgbG9jYWxBZGp1c3Q7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hTaG9ydE9mZnNldCwgaW5wdXQpO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKE1hdGguYWJzKGlucHV0KSA8IDE2ICYmICFrZWVwTWludXRlcykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQgKiA2MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5faXNVVEMgJiYga2VlcExvY2FsVGltZSkge1xuICAgICAgICAgICAgICAgIGxvY2FsQWRqdXN0ID0gZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX29mZnNldCA9IGlucHV0O1xuICAgICAgICAgICAgdGhpcy5faXNVVEMgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGxvY2FsQWRqdXN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZChsb2NhbEFkanVzdCwgJ20nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IGlucHV0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFrZWVwTG9jYWxUaW1lIHx8IHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkU3VidHJhY3QodGhpcywgY3JlYXRlRHVyYXRpb24oaW5wdXQgLSBvZmZzZXQsICdtJyksIDEsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLl9jaGFuZ2VJblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gb2Zmc2V0IDogZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldFpvbmUgKGlucHV0LCBrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gLWlucHV0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldChpbnB1dCwga2VlcExvY2FsVGltZSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIC10aGlzLnV0Y09mZnNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0T2Zmc2V0VG9VVEMgKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXRjT2Zmc2V0KDAsIGtlZXBMb2NhbFRpbWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvTG9jYWwgKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzVVRDKSB7XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJ0cmFjdChnZXREYXRlT2Zmc2V0KHRoaXMpLCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0ICgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3R6bSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCh0aGlzLl90em0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5faSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhciB0Wm9uZSA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hPZmZzZXQsIHRoaXMuX2kpO1xuICAgICAgICAgICAgaWYgKHRab25lICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnV0Y09mZnNldCh0Wm9uZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgwLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNBbGlnbmVkSG91ck9mZnNldCAoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0ID0gaW5wdXQgPyBjcmVhdGVMb2NhbChpbnB1dCkudXRjT2Zmc2V0KCkgOiAwO1xuXG4gICAgICAgIHJldHVybiAodGhpcy51dGNPZmZzZXQoKSAtIGlucHV0KSAlIDYwID09PSAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KCkgPiB0aGlzLmNsb25lKCkubW9udGgoMCkudXRjT2Zmc2V0KCkgfHxcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KCkgPiB0aGlzLmNsb25lKCkubW9udGgoNSkudXRjT2Zmc2V0KClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWQgKCkge1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX2lzRFNUU2hpZnRlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYyA9IHt9O1xuXG4gICAgICAgIGNvcHlDb25maWcoYywgdGhpcyk7XG4gICAgICAgIGMgPSBwcmVwYXJlQ29uZmlnKGMpO1xuXG4gICAgICAgIGlmIChjLl9hKSB7XG4gICAgICAgICAgICB2YXIgb3RoZXIgPSBjLl9pc1VUQyA/IGNyZWF0ZVVUQyhjLl9hKSA6IGNyZWF0ZUxvY2FsKGMuX2EpO1xuICAgICAgICAgICAgdGhpcy5faXNEU1RTaGlmdGVkID0gdGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICAgICBjb21wYXJlQXJyYXlzKGMuX2EsIG90aGVyLnRvQXJyYXkoKSkgPiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faXNEU1RTaGlmdGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTG9jYWwgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyAhdGhpcy5faXNVVEMgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1V0Y09mZnNldCAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2lzVVRDIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVdGMgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9pc1VUQyAmJiB0aGlzLl9vZmZzZXQgPT09IDAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBBU1AuTkVUIGpzb24gZGF0ZSBmb3JtYXQgcmVnZXhcbiAgICB2YXIgYXNwTmV0UmVnZXggPSAvXihcXC18XFwrKT8oPzooXFxkKilbLiBdKT8oXFxkKylcXDooXFxkKykoPzpcXDooXFxkKykoXFwuXFxkKik/KT8kLztcblxuICAgIC8vIGZyb20gaHR0cDovL2RvY3MuY2xvc3VyZS1saWJyYXJ5Lmdvb2dsZWNvZGUuY29tL2dpdC9jbG9zdXJlX2dvb2dfZGF0ZV9kYXRlLmpzLnNvdXJjZS5odG1sXG4gICAgLy8gc29tZXdoYXQgbW9yZSBpbiBsaW5lIHdpdGggNC40LjMuMiAyMDA0IHNwZWMsIGJ1dCBhbGxvd3MgZGVjaW1hbCBhbnl3aGVyZVxuICAgIC8vIGFuZCBmdXJ0aGVyIG1vZGlmaWVkIHRvIGFsbG93IGZvciBzdHJpbmdzIGNvbnRhaW5pbmcgYm90aCB3ZWVrIGFuZCBkYXlcbiAgICB2YXIgaXNvUmVnZXggPSAvXigtfFxcKyk/UCg/OihbLStdP1swLTksLl0qKVkpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVcpPyg/OihbLStdP1swLTksLl0qKUQpPyg/OlQoPzooWy0rXT9bMC05LC5dKilIKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilTKT8pPyQvO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlRHVyYXRpb24gKGlucHV0LCBrZXkpIHtcbiAgICAgICAgdmFyIGR1cmF0aW9uID0gaW5wdXQsXG4gICAgICAgICAgICAvLyBtYXRjaGluZyBhZ2FpbnN0IHJlZ2V4cCBpcyBleHBlbnNpdmUsIGRvIGl0IG9uIGRlbWFuZFxuICAgICAgICAgICAgbWF0Y2ggPSBudWxsLFxuICAgICAgICAgICAgc2lnbixcbiAgICAgICAgICAgIHJldCxcbiAgICAgICAgICAgIGRpZmZSZXM7XG5cbiAgICAgICAgaWYgKGlzRHVyYXRpb24oaW5wdXQpKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICBtcyA6IGlucHV0Ll9taWxsaXNlY29uZHMsXG4gICAgICAgICAgICAgICAgZCAgOiBpbnB1dC5fZGF5cyxcbiAgICAgICAgICAgICAgICBNICA6IGlucHV0Ll9tb250aHNcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uW2tleV0gPSBpbnB1dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb24ubWlsbGlzZWNvbmRzID0gaW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoISEobWF0Y2ggPSBhc3BOZXRSZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSAobWF0Y2hbMV0gPT09ICctJykgPyAtMSA6IDE7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB5ICA6IDAsXG4gICAgICAgICAgICAgICAgZCAgOiB0b0ludChtYXRjaFtEQVRFXSkgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaWduLFxuICAgICAgICAgICAgICAgIGggIDogdG9JbnQobWF0Y2hbSE9VUl0pICAgICAgICAgICAgICAgICAgICAgICAgICogc2lnbixcbiAgICAgICAgICAgICAgICBtICA6IHRvSW50KG1hdGNoW01JTlVURV0pICAgICAgICAgICAgICAgICAgICAgICAqIHNpZ24sXG4gICAgICAgICAgICAgICAgcyAgOiB0b0ludChtYXRjaFtTRUNPTkRdKSAgICAgICAgICAgICAgICAgICAgICAgKiBzaWduLFxuICAgICAgICAgICAgICAgIG1zIDogdG9JbnQoYWJzUm91bmQobWF0Y2hbTUlMTElTRUNPTkRdICogMTAwMCkpICogc2lnbiAvLyB0aGUgbWlsbGlzZWNvbmQgZGVjaW1hbCBwb2ludCBpcyBpbmNsdWRlZCBpbiB0aGUgbWF0Y2hcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoISEobWF0Y2ggPSBpc29SZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSAobWF0Y2hbMV0gPT09ICctJykgPyAtMSA6IChtYXRjaFsxXSA9PT0gJysnKSA/IDEgOiAxO1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeSA6IHBhcnNlSXNvKG1hdGNoWzJdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBNIDogcGFyc2VJc28obWF0Y2hbM10sIHNpZ24pLFxuICAgICAgICAgICAgICAgIHcgOiBwYXJzZUlzbyhtYXRjaFs0XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgZCA6IHBhcnNlSXNvKG1hdGNoWzVdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBoIDogcGFyc2VJc28obWF0Y2hbNl0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIG0gOiBwYXJzZUlzbyhtYXRjaFs3XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgcyA6IHBhcnNlSXNvKG1hdGNoWzhdLCBzaWduKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChkdXJhdGlvbiA9PSBudWxsKSB7Ly8gY2hlY2tzIGZvciBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZHVyYXRpb24gPT09ICdvYmplY3QnICYmICgnZnJvbScgaW4gZHVyYXRpb24gfHwgJ3RvJyBpbiBkdXJhdGlvbikpIHtcbiAgICAgICAgICAgIGRpZmZSZXMgPSBtb21lbnRzRGlmZmVyZW5jZShjcmVhdGVMb2NhbChkdXJhdGlvbi5mcm9tKSwgY3JlYXRlTG9jYWwoZHVyYXRpb24udG8pKTtcblxuICAgICAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgICAgIGR1cmF0aW9uLm1zID0gZGlmZlJlcy5taWxsaXNlY29uZHM7XG4gICAgICAgICAgICBkdXJhdGlvbi5NID0gZGlmZlJlcy5tb250aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXQgPSBuZXcgRHVyYXRpb24oZHVyYXRpb24pO1xuXG4gICAgICAgIGlmIChpc0R1cmF0aW9uKGlucHV0KSAmJiBoYXNPd25Qcm9wKGlucHV0LCAnX2xvY2FsZScpKSB7XG4gICAgICAgICAgICByZXQuX2xvY2FsZSA9IGlucHV0Ll9sb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIGNyZWF0ZUR1cmF0aW9uLmZuID0gRHVyYXRpb24ucHJvdG90eXBlO1xuICAgIGNyZWF0ZUR1cmF0aW9uLmludmFsaWQgPSBjcmVhdGVJbnZhbGlkJDE7XG5cbiAgICBmdW5jdGlvbiBwYXJzZUlzbyAoaW5wLCBzaWduKSB7XG4gICAgICAgIC8vIFdlJ2Qgbm9ybWFsbHkgdXNlIH5+aW5wIGZvciB0aGlzLCBidXQgdW5mb3J0dW5hdGVseSBpdCBhbHNvXG4gICAgICAgIC8vIGNvbnZlcnRzIGZsb2F0cyB0byBpbnRzLlxuICAgICAgICAvLyBpbnAgbWF5IGJlIHVuZGVmaW5lZCwgc28gY2FyZWZ1bCBjYWxsaW5nIHJlcGxhY2Ugb24gaXQuXG4gICAgICAgIHZhciByZXMgPSBpbnAgJiYgcGFyc2VGbG9hdChpbnAucmVwbGFjZSgnLCcsICcuJykpO1xuICAgICAgICAvLyBhcHBseSBzaWduIHdoaWxlIHdlJ3JlIGF0IGl0XG4gICAgICAgIHJldHVybiAoaXNOYU4ocmVzKSA/IDAgOiByZXMpICogc2lnbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXMgPSB7bWlsbGlzZWNvbmRzOiAwLCBtb250aHM6IDB9O1xuXG4gICAgICAgIHJlcy5tb250aHMgPSBvdGhlci5tb250aCgpIC0gYmFzZS5tb250aCgpICtcbiAgICAgICAgICAgIChvdGhlci55ZWFyKCkgLSBiYXNlLnllYXIoKSkgKiAxMjtcbiAgICAgICAgaWYgKGJhc2UuY2xvbmUoKS5hZGQocmVzLm1vbnRocywgJ00nKS5pc0FmdGVyKG90aGVyKSkge1xuICAgICAgICAgICAgLS1yZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9ICtvdGhlciAtICsoYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpKTtcblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXM7XG4gICAgICAgIGlmICghKGJhc2UuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7bWlsbGlzZWNvbmRzOiAwLCBtb250aHM6IDB9O1xuICAgICAgICB9XG5cbiAgICAgICAgb3RoZXIgPSBjbG9uZVdpdGhPZmZzZXQob3RoZXIsIGJhc2UpO1xuICAgICAgICBpZiAoYmFzZS5pc0JlZm9yZShvdGhlcikpIHtcbiAgICAgICAgICAgIHJlcyA9IHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzID0gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShvdGhlciwgYmFzZSk7XG4gICAgICAgICAgICByZXMubWlsbGlzZWNvbmRzID0gLXJlcy5taWxsaXNlY29uZHM7XG4gICAgICAgICAgICByZXMubW9udGhzID0gLXJlcy5tb250aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8vIFRPRE86IHJlbW92ZSAnbmFtZScgYXJnIGFmdGVyIGRlcHJlY2F0aW9uIGlzIHJlbW92ZWRcbiAgICBmdW5jdGlvbiBjcmVhdGVBZGRlcihkaXJlY3Rpb24sIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWwsIHBlcmlvZCkge1xuICAgICAgICAgICAgdmFyIGR1ciwgdG1wO1xuICAgICAgICAgICAgLy9pbnZlcnQgdGhlIGFyZ3VtZW50cywgYnV0IGNvbXBsYWluIGFib3V0IGl0XG4gICAgICAgICAgICBpZiAocGVyaW9kICE9PSBudWxsICYmICFpc05hTigrcGVyaW9kKSkge1xuICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZShuYW1lLCAnbW9tZW50KCkuJyArIG5hbWUgICsgJyhwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4nICsgbmFtZSArICcobnVtYmVyLCBwZXJpb2QpLiAnICtcbiAgICAgICAgICAgICAgICAnU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvYWRkLWludmVydGVkLXBhcmFtLyBmb3IgbW9yZSBpbmZvLicpO1xuICAgICAgICAgICAgICAgIHRtcCA9IHZhbDsgdmFsID0gcGVyaW9kOyBwZXJpb2QgPSB0bXA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbCA9IHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnID8gK3ZhbCA6IHZhbDtcbiAgICAgICAgICAgIGR1ciA9IGNyZWF0ZUR1cmF0aW9uKHZhbCwgcGVyaW9kKTtcbiAgICAgICAgICAgIGFkZFN1YnRyYWN0KHRoaXMsIGR1ciwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFN1YnRyYWN0IChtb20sIGR1cmF0aW9uLCBpc0FkZGluZywgdXBkYXRlT2Zmc2V0KSB7XG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSBkdXJhdGlvbi5fbWlsbGlzZWNvbmRzLFxuICAgICAgICAgICAgZGF5cyA9IGFic1JvdW5kKGR1cmF0aW9uLl9kYXlzKSxcbiAgICAgICAgICAgIG1vbnRocyA9IGFic1JvdW5kKGR1cmF0aW9uLl9tb250aHMpO1xuXG4gICAgICAgIGlmICghbW9tLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgLy8gTm8gb3BcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZU9mZnNldCA9IHVwZGF0ZU9mZnNldCA9PSBudWxsID8gdHJ1ZSA6IHVwZGF0ZU9mZnNldDtcblxuICAgICAgICBpZiAobW9udGhzKSB7XG4gICAgICAgICAgICBzZXRNb250aChtb20sIGdldChtb20sICdNb250aCcpICsgbW9udGhzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXlzKSB7XG4gICAgICAgICAgICBzZXQkMShtb20sICdEYXRlJywgZ2V0KG1vbSwgJ0RhdGUnKSArIGRheXMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbGxpc2Vjb25kcykge1xuICAgICAgICAgICAgbW9tLl9kLnNldFRpbWUobW9tLl9kLnZhbHVlT2YoKSArIG1pbGxpc2Vjb25kcyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXBkYXRlT2Zmc2V0KSB7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQobW9tLCBkYXlzIHx8IG1vbnRocyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgYWRkICAgICAgPSBjcmVhdGVBZGRlcigxLCAnYWRkJyk7XG4gICAgdmFyIHN1YnRyYWN0ID0gY3JlYXRlQWRkZXIoLTEsICdzdWJ0cmFjdCcpO1xuXG4gICAgZnVuY3Rpb24gZ2V0Q2FsZW5kYXJGb3JtYXQobXlNb21lbnQsIG5vdykge1xuICAgICAgICB2YXIgZGlmZiA9IG15TW9tZW50LmRpZmYobm93LCAnZGF5cycsIHRydWUpO1xuICAgICAgICByZXR1cm4gZGlmZiA8IC02ID8gJ3NhbWVFbHNlJyA6XG4gICAgICAgICAgICAgICAgZGlmZiA8IC0xID8gJ2xhc3RXZWVrJyA6XG4gICAgICAgICAgICAgICAgZGlmZiA8IDAgPyAnbGFzdERheScgOlxuICAgICAgICAgICAgICAgIGRpZmYgPCAxID8gJ3NhbWVEYXknIDpcbiAgICAgICAgICAgICAgICBkaWZmIDwgMiA/ICduZXh0RGF5JyA6XG4gICAgICAgICAgICAgICAgZGlmZiA8IDcgPyAnbmV4dFdlZWsnIDogJ3NhbWVFbHNlJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjYWxlbmRhciQxICh0aW1lLCBmb3JtYXRzKSB7XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuXG4gICAgICAgIC8vIEdldHRpbmcgc3RhcnQtb2YtdG9kYXkgZGVwZW5kcyBvbiB3aGV0aGVyIHdlJ3JlIGxvY2FsL3V0Yy9vZmZzZXQgb3Igbm90LlxuICAgICAgICB2YXIgbm93ID0gdGltZSB8fCBjcmVhdGVMb2NhbCgpLFxuICAgICAgICAgICAgc29kID0gY2xvbmVXaXRoT2Zmc2V0KG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksXG4gICAgICAgICAgICBmb3JtYXQgPSBob29rcy5jYWxlbmRhckZvcm1hdCh0aGlzLCBzb2QpIHx8ICdzYW1lRWxzZSc7XG5cbiAgICAgICAgdmFyIG91dHB1dCA9IGZvcm1hdHMgJiYgKGlzRnVuY3Rpb24oZm9ybWF0c1tmb3JtYXRdKSA/IGZvcm1hdHNbZm9ybWF0XS5jYWxsKHRoaXMsIG5vdykgOiBmb3JtYXRzW2Zvcm1hdF0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdChvdXRwdXQgfHwgdGhpcy5sb2NhbGVEYXRhKCkuY2FsZW5kYXIoZm9ybWF0LCB0aGlzLCBjcmVhdGVMb2NhbChub3cpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvbmUgKCkge1xuICAgICAgICByZXR1cm4gbmV3IE1vbWVudCh0aGlzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0FmdGVyIChpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyghaXNVbmRlZmluZWQodW5pdHMpID8gdW5pdHMgOiAnbWlsbGlzZWNvbmQnKTtcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPiBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbElucHV0LnZhbHVlT2YoKSA8IHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0JlZm9yZSAoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCk7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHMoIWlzVW5kZWZpbmVkKHVuaXRzKSA/IHVuaXRzIDogJ21pbGxpc2Vjb25kJyk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpIDwgbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQmV0d2VlbiAoZnJvbSwgdG8sIHVuaXRzLCBpbmNsdXNpdml0eSkge1xuICAgICAgICBpbmNsdXNpdml0eSA9IGluY2x1c2l2aXR5IHx8ICcoKSc7XG4gICAgICAgIHJldHVybiAoaW5jbHVzaXZpdHlbMF0gPT09ICcoJyA/IHRoaXMuaXNBZnRlcihmcm9tLCB1bml0cykgOiAhdGhpcy5pc0JlZm9yZShmcm9tLCB1bml0cykpICYmXG4gICAgICAgICAgICAoaW5jbHVzaXZpdHlbMV0gPT09ICcpJyA/IHRoaXMuaXNCZWZvcmUodG8sIHVuaXRzKSA6ICF0aGlzLmlzQWZ0ZXIodG8sIHVuaXRzKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTYW1lIChpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KSxcbiAgICAgICAgICAgIGlucHV0TXM7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMgfHwgJ21pbGxpc2Vjb25kJyk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID09PSBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlucHV0TXMgPSBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkuc3RhcnRPZih1bml0cykudmFsdWVPZigpIDw9IGlucHV0TXMgJiYgaW5wdXRNcyA8PSB0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzU2FtZU9yQWZ0ZXIgKGlucHV0LCB1bml0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoaW5wdXQsIHVuaXRzKSB8fCB0aGlzLmlzQWZ0ZXIoaW5wdXQsdW5pdHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzU2FtZU9yQmVmb3JlIChpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGlucHV0LCB1bml0cykgfHwgdGhpcy5pc0JlZm9yZShpbnB1dCx1bml0cyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGlmZiAoaW5wdXQsIHVuaXRzLCBhc0Zsb2F0KSB7XG4gICAgICAgIHZhciB0aGF0LFxuICAgICAgICAgICAgem9uZURlbHRhLFxuICAgICAgICAgICAgb3V0cHV0O1xuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cblxuICAgICAgICB0aGF0ID0gY2xvbmVXaXRoT2Zmc2V0KGlucHV0LCB0aGlzKTtcblxuICAgICAgICBpZiAoIXRoYXQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgem9uZURlbHRhID0gKHRoYXQudXRjT2Zmc2V0KCkgLSB0aGlzLnV0Y09mZnNldCgpKSAqIDZlNDtcblxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcblxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzogb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMTI7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOiBvdXRwdXQgPSBtb250aERpZmYodGhpcywgdGhhdCk7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6IG91dHB1dCA9IG1vbnRoRGlmZih0aGlzLCB0aGF0KSAvIDM7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzogb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDFlMzsgYnJlYWs7IC8vIDEwMDBcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6IG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyA2ZTQ7IGJyZWFrOyAvLyAxMDAwICogNjBcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOiBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gMzZlNTsgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwXG4gICAgICAgICAgICBjYXNlICdkYXknOiBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gODY0ZTU7IGJyZWFrOyAvLyAxMDAwICogNjAgKiA2MCAqIDI0LCBuZWdhdGUgZHN0XG4gICAgICAgICAgICBjYXNlICd3ZWVrJzogb3V0cHV0ID0gKHRoaXMgLSB0aGF0IC0gem9uZURlbHRhKSAvIDYwNDhlNTsgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQgKiA3LCBuZWdhdGUgZHN0XG4gICAgICAgICAgICBkZWZhdWx0OiBvdXRwdXQgPSB0aGlzIC0gdGhhdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhc0Zsb2F0ID8gb3V0cHV0IDogYWJzRmxvb3Iob3V0cHV0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb250aERpZmYgKGEsIGIpIHtcbiAgICAgICAgLy8gZGlmZmVyZW5jZSBpbiBtb250aHNcbiAgICAgICAgdmFyIHdob2xlTW9udGhEaWZmID0gKChiLnllYXIoKSAtIGEueWVhcigpKSAqIDEyKSArIChiLm1vbnRoKCkgLSBhLm1vbnRoKCkpLFxuICAgICAgICAgICAgLy8gYiBpcyBpbiAoYW5jaG9yIC0gMSBtb250aCwgYW5jaG9yICsgMSBtb250aClcbiAgICAgICAgICAgIGFuY2hvciA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYsICdtb250aHMnKSxcbiAgICAgICAgICAgIGFuY2hvcjIsIGFkanVzdDtcblxuICAgICAgICBpZiAoYiAtIGFuY2hvciA8IDApIHtcbiAgICAgICAgICAgIGFuY2hvcjIgPSBhLmNsb25lKCkuYWRkKHdob2xlTW9udGhEaWZmIC0gMSwgJ21vbnRocycpO1xuICAgICAgICAgICAgLy8gbGluZWFyIGFjcm9zcyB0aGUgbW9udGhcbiAgICAgICAgICAgIGFkanVzdCA9IChiIC0gYW5jaG9yKSAvIChhbmNob3IgLSBhbmNob3IyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFuY2hvcjIgPSBhLmNsb25lKCkuYWRkKHdob2xlTW9udGhEaWZmICsgMSwgJ21vbnRocycpO1xuICAgICAgICAgICAgLy8gbGluZWFyIGFjcm9zcyB0aGUgbW9udGhcbiAgICAgICAgICAgIGFkanVzdCA9IChiIC0gYW5jaG9yKSAvIChhbmNob3IyIC0gYW5jaG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vY2hlY2sgZm9yIG5lZ2F0aXZlIHplcm8sIHJldHVybiB6ZXJvIGlmIG5lZ2F0aXZlIHplcm9cbiAgICAgICAgcmV0dXJuIC0od2hvbGVNb250aERpZmYgKyBhZGp1c3QpIHx8IDA7XG4gICAgfVxuXG4gICAgaG9va3MuZGVmYXVsdEZvcm1hdCA9ICdZWVlZLU1NLUREVEhIOm1tOnNzWic7XG4gICAgaG9va3MuZGVmYXVsdEZvcm1hdFV0YyA9ICdZWVlZLU1NLUREVEhIOm1tOnNzW1pdJztcblxuICAgIGZ1bmN0aW9uIHRvU3RyaW5nICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCdkZGQgTU1NIEREIFlZWVkgSEg6bW06c3MgW0dNVF1aWicpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSVNPU3RyaW5nKGtlZXBPZmZzZXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHV0YyA9IGtlZXBPZmZzZXQgIT09IHRydWU7XG4gICAgICAgIHZhciBtID0gdXRjID8gdGhpcy5jbG9uZSgpLnV0YygpIDogdGhpcztcbiAgICAgICAgaWYgKG0ueWVhcigpIDwgMCB8fCBtLnllYXIoKSA+IDk5OTkpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQobSwgdXRjID8gJ1lZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXScgOiAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKERhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nKSkge1xuICAgICAgICAgICAgLy8gbmF0aXZlIGltcGxlbWVudGF0aW9uIGlzIH41MHggZmFzdGVyLCB1c2UgaXQgd2hlbiB3ZSBjYW5cbiAgICAgICAgICAgIGlmICh1dGMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b0RhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkgKyB0aGlzLnV0Y09mZnNldCgpICogNjAgKiAxMDAwKS50b0lTT1N0cmluZygpLnJlcGxhY2UoJ1onLCBmb3JtYXRNb21lbnQobSwgJ1onKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1hdE1vbWVudChtLCB1dGMgPyAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXScgOiAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1onKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBodW1hbiByZWFkYWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIG1vbWVudCB0aGF0IGNhblxuICAgICAqIGFsc28gYmUgZXZhbHVhdGVkIHRvIGdldCBhIG5ldyBtb21lbnQgd2hpY2ggaXMgdGhlIHNhbWVcbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vbm9kZWpzLm9yZy9kaXN0L2xhdGVzdC9kb2NzL2FwaS91dGlsLmh0bWwjdXRpbF9jdXN0b21faW5zcGVjdF9mdW5jdGlvbl9vbl9vYmplY3RzXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW5zcGVjdCAoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnbW9tZW50LmludmFsaWQoLyogJyArIHRoaXMuX2kgKyAnICovKSc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZ1bmMgPSAnbW9tZW50JztcbiAgICAgICAgdmFyIHpvbmUgPSAnJztcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9jYWwoKSkge1xuICAgICAgICAgICAgZnVuYyA9IHRoaXMudXRjT2Zmc2V0KCkgPT09IDAgPyAnbW9tZW50LnV0YycgOiAnbW9tZW50LnBhcnNlWm9uZSc7XG4gICAgICAgICAgICB6b25lID0gJ1onO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcmVmaXggPSAnWycgKyBmdW5jICsgJyhcIl0nO1xuICAgICAgICB2YXIgeWVhciA9ICgwIDw9IHRoaXMueWVhcigpICYmIHRoaXMueWVhcigpIDw9IDk5OTkpID8gJ1lZWVknIDogJ1lZWVlZWSc7XG4gICAgICAgIHZhciBkYXRldGltZSA9ICctTU0tRERbVF1ISDptbTpzcy5TU1MnO1xuICAgICAgICB2YXIgc3VmZml4ID0gem9uZSArICdbXCIpXSc7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KHByZWZpeCArIHllYXIgKyBkYXRldGltZSArIHN1ZmZpeCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZm9ybWF0IChpbnB1dFN0cmluZykge1xuICAgICAgICBpZiAoIWlucHV0U3RyaW5nKSB7XG4gICAgICAgICAgICBpbnB1dFN0cmluZyA9IHRoaXMuaXNVdGMoKSA/IGhvb2tzLmRlZmF1bHRGb3JtYXRVdGMgOiBob29rcy5kZWZhdWx0Rm9ybWF0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdXRwdXQgPSBmb3JtYXRNb21lbnQodGhpcywgaW5wdXRTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkucG9zdGZvcm1hdChvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb20gKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmXG4gICAgICAgICAgICAgICAgKChpc01vbWVudCh0aW1lKSAmJiB0aW1lLmlzVmFsaWQoKSkgfHxcbiAgICAgICAgICAgICAgICAgY3JlYXRlTG9jYWwodGltZSkuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKHt0bzogdGhpcywgZnJvbTogdGltZX0pLmxvY2FsZSh0aGlzLmxvY2FsZSgpKS5odW1hbml6ZSghd2l0aG91dFN1ZmZpeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZyb21Ob3cgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbShjcmVhdGVMb2NhbCgpLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0byAodGltZSwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICAgICAoKGlzTW9tZW50KHRpbWUpICYmIHRpbWUuaXNWYWxpZCgpKSB8fFxuICAgICAgICAgICAgICAgICBjcmVhdGVMb2NhbCh0aW1lKS5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oe2Zyb206IHRoaXMsIHRvOiB0aW1lfSkubG9jYWxlKHRoaXMubG9jYWxlKCkpLmh1bWFuaXplKCF3aXRob3V0U3VmZml4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9Ob3cgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG8oY3JlYXRlTG9jYWwoKSwgd2l0aG91dFN1ZmZpeCk7XG4gICAgfVxuXG4gICAgLy8gSWYgcGFzc2VkIGEgbG9jYWxlIGtleSwgaXQgd2lsbCBzZXQgdGhlIGxvY2FsZSBmb3IgdGhpc1xuICAgIC8vIGluc3RhbmNlLiAgT3RoZXJ3aXNlLCBpdCB3aWxsIHJldHVybiB0aGUgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbiAgICAvLyB2YXJpYWJsZXMgZm9yIHRoaXMgaW5zdGFuY2UuXG4gICAgZnVuY3Rpb24gbG9jYWxlIChrZXkpIHtcbiAgICAgICAgdmFyIG5ld0xvY2FsZURhdGE7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3TG9jYWxlRGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKG5ld0xvY2FsZURhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IG5ld0xvY2FsZURhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBsYW5nID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkubGFuZygpIGlzIGRlcHJlY2F0ZWQuIEluc3RlYWQsIHVzZSBtb21lbnQoKS5sb2NhbGVEYXRhKCkgdG8gZ2V0IHRoZSBsYW5ndWFnZSBjb25maWd1cmF0aW9uLiBVc2UgbW9tZW50KCkubG9jYWxlKCkgdG8gY2hhbmdlIGxhbmd1YWdlcy4nLFxuICAgICAgICBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZShrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZURhdGEgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0T2YgKHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICAvLyB0aGUgZm9sbG93aW5nIHN3aXRjaCBpbnRlbnRpb25hbGx5IG9taXRzIGJyZWFrIGtleXdvcmRzXG4gICAgICAgIC8vIHRvIHV0aWxpemUgZmFsbGluZyB0aHJvdWdoIHRoZSBjYXNlcy5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5tb250aCgwKTtcbiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovXG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGUoMSk7XG4gICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICBjYXNlICdpc29XZWVrJzpcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmhvdXJzKDApO1xuICAgICAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHRoaXMubWludXRlcygwKTtcbiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovXG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHRoaXMuc2Vjb25kcygwKTtcbiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovXG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIHRoaXMubWlsbGlzZWNvbmRzKDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gd2Vla3MgYXJlIGEgc3BlY2lhbCBjYXNlXG4gICAgICAgIGlmICh1bml0cyA9PT0gJ3dlZWsnKSB7XG4gICAgICAgICAgICB0aGlzLndlZWtkYXkoMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVuaXRzID09PSAnaXNvV2VlaycpIHtcbiAgICAgICAgICAgIHRoaXMuaXNvV2Vla2RheSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHF1YXJ0ZXJzIGFyZSBhbHNvIHNwZWNpYWxcbiAgICAgICAgaWYgKHVuaXRzID09PSAncXVhcnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGgoTWF0aC5mbG9vcih0aGlzLm1vbnRoKCkgLyAzKSAqIDMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW5kT2YgKHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAodW5pdHMgPT09IHVuZGVmaW5lZCB8fCB1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAnZGF0ZScgaXMgYW4gYWxpYXMgZm9yICdkYXknLCBzbyBpdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhcyBzdWNoLlxuICAgICAgICBpZiAodW5pdHMgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgdW5pdHMgPSAnZGF5JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0T2YodW5pdHMpLmFkZCgxLCAodW5pdHMgPT09ICdpc29XZWVrJyA/ICd3ZWVrJyA6IHVuaXRzKSkuc3VidHJhY3QoMSwgJ21zJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsdWVPZiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kLnZhbHVlT2YoKSAtICgodGhpcy5fb2Zmc2V0IHx8IDApICogNjAwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVuaXggKCkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKSAvIDEwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvRGF0ZSAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9BcnJheSAoKSB7XG4gICAgICAgIHZhciBtID0gdGhpcztcbiAgICAgICAgcmV0dXJuIFttLnllYXIoKSwgbS5tb250aCgpLCBtLmRhdGUoKSwgbS5ob3VyKCksIG0ubWludXRlKCksIG0uc2Vjb25kKCksIG0ubWlsbGlzZWNvbmQoKV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9PYmplY3QgKCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB5ZWFyczogbS55ZWFyKCksXG4gICAgICAgICAgICBtb250aHM6IG0ubW9udGgoKSxcbiAgICAgICAgICAgIGRhdGU6IG0uZGF0ZSgpLFxuICAgICAgICAgICAgaG91cnM6IG0uaG91cnMoKSxcbiAgICAgICAgICAgIG1pbnV0ZXM6IG0ubWludXRlcygpLFxuICAgICAgICAgICAgc2Vjb25kczogbS5zZWNvbmRzKCksXG4gICAgICAgICAgICBtaWxsaXNlY29uZHM6IG0ubWlsbGlzZWNvbmRzKClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0pTT04gKCkge1xuICAgICAgICAvLyBuZXcgRGF0ZShOYU4pLnRvSlNPTigpID09PSBudWxsXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMudG9JU09TdHJpbmcoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZCQyICgpIHtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQodGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2luZ0ZsYWdzICgpIHtcbiAgICAgICAgcmV0dXJuIGV4dGVuZCh7fSwgZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbnZhbGlkQXQgKCkge1xuICAgICAgICByZXR1cm4gZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpLm92ZXJmbG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0aW9uRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlucHV0OiB0aGlzLl9pLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLl9mLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzLl9sb2NhbGUsXG4gICAgICAgICAgICBpc1VUQzogdGhpcy5faXNVVEMsXG4gICAgICAgICAgICBzdHJpY3Q6IHRoaXMuX3N0cmljdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnZ2cnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy53ZWVrWWVhcigpICUgMTAwO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydHRycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzb1dlZWtZZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBhZGRXZWVrWWVhckZvcm1hdFRva2VuICh0b2tlbiwgZ2V0dGVyKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKDAsIFt0b2tlbiwgdG9rZW4ubGVuZ3RoXSwgMCwgZ2V0dGVyKTtcbiAgICB9XG5cbiAgICBhZGRXZWVrWWVhckZvcm1hdFRva2VuKCdnZ2dnJywgICAgICd3ZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ2dnZ2dnJywgICAgJ3dlZWtZZWFyJyk7XG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHRycsICAnaXNvV2Vla1llYXInKTtcbiAgICBhZGRXZWVrWWVhckZvcm1hdFRva2VuKCdHR0dHRycsICdpc29XZWVrWWVhcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrWWVhcicsICdnZycpO1xuICAgIGFkZFVuaXRBbGlhcygnaXNvV2Vla1llYXInLCAnR0cnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWtZZWFyJywgMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrWWVhcicsIDEpO1xuXG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdHJywgICAgICBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignZycsICAgICAgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHJywgICAgIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdnZycsICAgICBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignR0dHRycsICAgbWF0Y2gxdG80LCBtYXRjaDQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnZ2cnLCAgIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdHR0dHRycsICBtYXRjaDF0bzYsIG1hdGNoNik7XG4gICAgYWRkUmVnZXhUb2tlbignZ2dnZ2cnLCAgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydnZ2dnJywgJ2dnZ2dnJywgJ0dHR0cnLCAnR0dHR0cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW4uc3Vic3RyKDAsIDIpXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZ2cnLCAnR0cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW5dID0gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2Vla1llYXIgKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKHRoaXMsXG4gICAgICAgICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgICAgICAgdGhpcy53ZWVrKCksXG4gICAgICAgICAgICAgICAgdGhpcy53ZWVrZGF5KCksXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93LFxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRveSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPV2Vla1llYXIgKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKHRoaXMsXG4gICAgICAgICAgICAgICAgaW5wdXQsIHRoaXMuaXNvV2VlaygpLCB0aGlzLmlzb1dlZWtkYXkoKSwgMSwgNCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SVNPV2Vla3NJblllYXIgKCkge1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIDEsIDQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFdlZWtzSW5ZZWFyICgpIHtcbiAgICAgICAgdmFyIHdlZWtJbmZvID0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLnllYXIoKSwgd2Vla0luZm8uZG93LCB3ZWVrSW5mby5kb3kpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWtZZWFySGVscGVyKGlucHV0LCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgd2Vla3NUYXJnZXQ7XG4gICAgICAgIGlmIChpbnB1dCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gd2Vla09mWWVhcih0aGlzLCBkb3csIGRveSkueWVhcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdlZWtzVGFyZ2V0ID0gd2Vla3NJblllYXIoaW5wdXQsIGRvdywgZG95KTtcbiAgICAgICAgICAgIGlmICh3ZWVrID4gd2Vla3NUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICB3ZWVrID0gd2Vla3NUYXJnZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2V0V2Vla0FsbC5jYWxsKHRoaXMsIGlucHV0LCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRXZWVrQWxsKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgZGF5T2ZZZWFyRGF0YSA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpLFxuICAgICAgICAgICAgZGF0ZSA9IGNyZWF0ZVVUQ0RhdGUoZGF5T2ZZZWFyRGF0YS55ZWFyLCAwLCBkYXlPZlllYXJEYXRhLmRheU9mWWVhcik7XG5cbiAgICAgICAgdGhpcy55ZWFyKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSk7XG4gICAgICAgIHRoaXMubW9udGgoZGF0ZS5nZXRVVENNb250aCgpKTtcbiAgICAgICAgdGhpcy5kYXRlKGRhdGUuZ2V0VVRDRGF0ZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1EnLCAwLCAnUW8nLCAncXVhcnRlcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdxdWFydGVyJywgJ1EnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3F1YXJ0ZXInLCA3KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1EnLCBtYXRjaDEpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1EnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W01PTlRIXSA9ICh0b0ludChpbnB1dCkgLSAxKSAqIDM7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXRRdWFydGVyIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IE1hdGguY2VpbCgodGhpcy5tb250aCgpICsgMSkgLyAzKSA6IHRoaXMubW9udGgoKGlucHV0IC0gMSkgKiAzICsgdGhpcy5tb250aCgpICUgMyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0QnLCBbJ0REJywgMl0sICdEbycsICdkYXRlJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RhdGUnLCAnRCcpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RhdGUnLCA5KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ0QnLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdERCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdEbycsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBcIm9yZGluYWxQYXJzZVwiIGZhbGxiYWNrIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0ID9cbiAgICAgICAgICAobG9jYWxlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlIHx8IGxvY2FsZS5fb3JkaW5hbFBhcnNlKSA6XG4gICAgICAgICAgbG9jYWxlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudDtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydEJywgJ0REJ10sIERBVEUpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0RvJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtEQVRFXSA9IHRvSW50KGlucHV0Lm1hdGNoKG1hdGNoMXRvMilbMF0pO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldERheU9mTW9udGggPSBtYWtlR2V0U2V0KCdEYXRlJywgdHJ1ZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignREREJywgWydEREREJywgM10sICdERERvJywgJ2RheU9mWWVhcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXlPZlllYXInLCAnREREJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnZGF5T2ZZZWFyJywgNCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdEREQnLCAgbWF0Y2gxdG8zKTtcbiAgICBhZGRSZWdleFRva2VuKCdEREREJywgbWF0Y2gzKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnREREJywgJ0REREQnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0RGF5T2ZZZWFyIChpbnB1dCkge1xuICAgICAgICB2YXIgZGF5T2ZZZWFyID0gTWF0aC5yb3VuZCgodGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ2RheScpIC0gdGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ3llYXInKSkgLyA4NjRlNSkgKyAxO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IGRheU9mWWVhciA6IHRoaXMuYWRkKChpbnB1dCAtIGRheU9mWWVhciksICdkJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ20nLCBbJ21tJywgMl0sIDAsICdtaW51dGUnKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbWludXRlJywgJ20nKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21pbnV0ZScsIDE0KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ20nLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdtbScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnbScsICdtbSddLCBNSU5VVEUpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldE1pbnV0ZSA9IG1ha2VHZXRTZXQoJ01pbnV0ZXMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigncycsIFsnc3MnLCAyXSwgMCwgJ3NlY29uZCcpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdzZWNvbmQnLCAncycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnc2Vjb25kJywgMTUpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigncycsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3NzJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydzJywgJ3NzJ10sIFNFQ09ORCk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0U2Vjb25kID0gbWFrZUdldFNldCgnU2Vjb25kcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdTJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gfn4odGhpcy5taWxsaXNlY29uZCgpIC8gMTAwKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1MnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gfn4odGhpcy5taWxsaXNlY29uZCgpIC8gMTApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1MnLCAzXSwgMCwgJ21pbGxpc2Vjb25kJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTJywgNF0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1MnLCA1XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTJywgNl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTJywgN10sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTU1MnLCA4XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTU1NTJywgOV0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwMDA7XG4gICAgfSk7XG5cblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbWlsbGlzZWNvbmQnLCAnbXMnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21pbGxpc2Vjb25kJywgMTYpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignUycsICAgIG1hdGNoMXRvMywgbWF0Y2gxKTtcbiAgICBhZGRSZWdleFRva2VuKCdTUycsICAgbWF0Y2gxdG8zLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1NTUycsICBtYXRjaDF0bzMsIG1hdGNoMyk7XG5cbiAgICB2YXIgdG9rZW47XG4gICAgZm9yICh0b2tlbiA9ICdTU1NTJzsgdG9rZW4ubGVuZ3RoIDw9IDk7IHRva2VuICs9ICdTJykge1xuICAgICAgICBhZGRSZWdleFRva2VuKHRva2VuLCBtYXRjaFVuc2lnbmVkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU1zKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNSUxMSVNFQ09ORF0gPSB0b0ludCgoJzAuJyArIGlucHV0KSAqIDEwMDApO1xuICAgIH1cblxuICAgIGZvciAodG9rZW4gPSAnUyc7IHRva2VuLmxlbmd0aCA8PSA5OyB0b2tlbiArPSAnUycpIHtcbiAgICAgICAgYWRkUGFyc2VUb2tlbih0b2tlbiwgcGFyc2VNcyk7XG4gICAgfVxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRNaWxsaXNlY29uZCA9IG1ha2VHZXRTZXQoJ01pbGxpc2Vjb25kcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd6JywgIDAsIDAsICd6b25lQWJicicpO1xuICAgIGFkZEZvcm1hdFRva2VuKCd6eicsIDAsIDAsICd6b25lTmFtZScpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0Wm9uZUFiYnIgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnVVRDJyA6ICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFpvbmVOYW1lICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gJ0Nvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lJyA6ICcnO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE1vbWVudC5wcm90b3R5cGU7XG5cbiAgICBwcm90by5hZGQgICAgICAgICAgICAgICA9IGFkZDtcbiAgICBwcm90by5jYWxlbmRhciAgICAgICAgICA9IGNhbGVuZGFyJDE7XG4gICAgcHJvdG8uY2xvbmUgICAgICAgICAgICAgPSBjbG9uZTtcbiAgICBwcm90by5kaWZmICAgICAgICAgICAgICA9IGRpZmY7XG4gICAgcHJvdG8uZW5kT2YgICAgICAgICAgICAgPSBlbmRPZjtcbiAgICBwcm90by5mb3JtYXQgICAgICAgICAgICA9IGZvcm1hdDtcbiAgICBwcm90by5mcm9tICAgICAgICAgICAgICA9IGZyb207XG4gICAgcHJvdG8uZnJvbU5vdyAgICAgICAgICAgPSBmcm9tTm93O1xuICAgIHByb3RvLnRvICAgICAgICAgICAgICAgID0gdG87XG4gICAgcHJvdG8udG9Ob3cgICAgICAgICAgICAgPSB0b05vdztcbiAgICBwcm90by5nZXQgICAgICAgICAgICAgICA9IHN0cmluZ0dldDtcbiAgICBwcm90by5pbnZhbGlkQXQgICAgICAgICA9IGludmFsaWRBdDtcbiAgICBwcm90by5pc0FmdGVyICAgICAgICAgICA9IGlzQWZ0ZXI7XG4gICAgcHJvdG8uaXNCZWZvcmUgICAgICAgICAgPSBpc0JlZm9yZTtcbiAgICBwcm90by5pc0JldHdlZW4gICAgICAgICA9IGlzQmV0d2VlbjtcbiAgICBwcm90by5pc1NhbWUgICAgICAgICAgICA9IGlzU2FtZTtcbiAgICBwcm90by5pc1NhbWVPckFmdGVyICAgICA9IGlzU2FtZU9yQWZ0ZXI7XG4gICAgcHJvdG8uaXNTYW1lT3JCZWZvcmUgICAgPSBpc1NhbWVPckJlZm9yZTtcbiAgICBwcm90by5pc1ZhbGlkICAgICAgICAgICA9IGlzVmFsaWQkMjtcbiAgICBwcm90by5sYW5nICAgICAgICAgICAgICA9IGxhbmc7XG4gICAgcHJvdG8ubG9jYWxlICAgICAgICAgICAgPSBsb2NhbGU7XG4gICAgcHJvdG8ubG9jYWxlRGF0YSAgICAgICAgPSBsb2NhbGVEYXRhO1xuICAgIHByb3RvLm1heCAgICAgICAgICAgICAgID0gcHJvdG90eXBlTWF4O1xuICAgIHByb3RvLm1pbiAgICAgICAgICAgICAgID0gcHJvdG90eXBlTWluO1xuICAgIHByb3RvLnBhcnNpbmdGbGFncyAgICAgID0gcGFyc2luZ0ZsYWdzO1xuICAgIHByb3RvLnNldCAgICAgICAgICAgICAgID0gc3RyaW5nU2V0O1xuICAgIHByb3RvLnN0YXJ0T2YgICAgICAgICAgID0gc3RhcnRPZjtcbiAgICBwcm90by5zdWJ0cmFjdCAgICAgICAgICA9IHN1YnRyYWN0O1xuICAgIHByb3RvLnRvQXJyYXkgICAgICAgICAgID0gdG9BcnJheTtcbiAgICBwcm90by50b09iamVjdCAgICAgICAgICA9IHRvT2JqZWN0O1xuICAgIHByb3RvLnRvRGF0ZSAgICAgICAgICAgID0gdG9EYXRlO1xuICAgIHByb3RvLnRvSVNPU3RyaW5nICAgICAgID0gdG9JU09TdHJpbmc7XG4gICAgcHJvdG8uaW5zcGVjdCAgICAgICAgICAgPSBpbnNwZWN0O1xuICAgIHByb3RvLnRvSlNPTiAgICAgICAgICAgID0gdG9KU09OO1xuICAgIHByb3RvLnRvU3RyaW5nICAgICAgICAgID0gdG9TdHJpbmc7XG4gICAgcHJvdG8udW5peCAgICAgICAgICAgICAgPSB1bml4O1xuICAgIHByb3RvLnZhbHVlT2YgICAgICAgICAgID0gdmFsdWVPZjtcbiAgICBwcm90by5jcmVhdGlvbkRhdGEgICAgICA9IGNyZWF0aW9uRGF0YTtcbiAgICBwcm90by55ZWFyICAgICAgID0gZ2V0U2V0WWVhcjtcbiAgICBwcm90by5pc0xlYXBZZWFyID0gZ2V0SXNMZWFwWWVhcjtcbiAgICBwcm90by53ZWVrWWVhciAgICA9IGdldFNldFdlZWtZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtZZWFyID0gZ2V0U2V0SVNPV2Vla1llYXI7XG4gICAgcHJvdG8ucXVhcnRlciA9IHByb3RvLnF1YXJ0ZXJzID0gZ2V0U2V0UXVhcnRlcjtcbiAgICBwcm90by5tb250aCAgICAgICA9IGdldFNldE1vbnRoO1xuICAgIHByb3RvLmRheXNJbk1vbnRoID0gZ2V0RGF5c0luTW9udGg7XG4gICAgcHJvdG8ud2VlayAgICAgICAgICAgPSBwcm90by53ZWVrcyAgICAgICAgPSBnZXRTZXRXZWVrO1xuICAgIHByb3RvLmlzb1dlZWsgICAgICAgID0gcHJvdG8uaXNvV2Vla3MgICAgID0gZ2V0U2V0SVNPV2VlaztcbiAgICBwcm90by53ZWVrc0luWWVhciAgICA9IGdldFdlZWtzSW5ZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtzSW5ZZWFyID0gZ2V0SVNPV2Vla3NJblllYXI7XG4gICAgcHJvdG8uZGF0ZSAgICAgICA9IGdldFNldERheU9mTW9udGg7XG4gICAgcHJvdG8uZGF5ICAgICAgICA9IHByb3RvLmRheXMgICAgICAgICAgICAgPSBnZXRTZXREYXlPZldlZWs7XG4gICAgcHJvdG8ud2Vla2RheSAgICA9IGdldFNldExvY2FsZURheU9mV2VlaztcbiAgICBwcm90by5pc29XZWVrZGF5ID0gZ2V0U2V0SVNPRGF5T2ZXZWVrO1xuICAgIHByb3RvLmRheU9mWWVhciAgPSBnZXRTZXREYXlPZlllYXI7XG4gICAgcHJvdG8uaG91ciA9IHByb3RvLmhvdXJzID0gZ2V0U2V0SG91cjtcbiAgICBwcm90by5taW51dGUgPSBwcm90by5taW51dGVzID0gZ2V0U2V0TWludXRlO1xuICAgIHByb3RvLnNlY29uZCA9IHByb3RvLnNlY29uZHMgPSBnZXRTZXRTZWNvbmQ7XG4gICAgcHJvdG8ubWlsbGlzZWNvbmQgPSBwcm90by5taWxsaXNlY29uZHMgPSBnZXRTZXRNaWxsaXNlY29uZDtcbiAgICBwcm90by51dGNPZmZzZXQgICAgICAgICAgICA9IGdldFNldE9mZnNldDtcbiAgICBwcm90by51dGMgICAgICAgICAgICAgICAgICA9IHNldE9mZnNldFRvVVRDO1xuICAgIHByb3RvLmxvY2FsICAgICAgICAgICAgICAgID0gc2V0T2Zmc2V0VG9Mb2NhbDtcbiAgICBwcm90by5wYXJzZVpvbmUgICAgICAgICAgICA9IHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0O1xuICAgIHByb3RvLmhhc0FsaWduZWRIb3VyT2Zmc2V0ID0gaGFzQWxpZ25lZEhvdXJPZmZzZXQ7XG4gICAgcHJvdG8uaXNEU1QgICAgICAgICAgICAgICAgPSBpc0RheWxpZ2h0U2F2aW5nVGltZTtcbiAgICBwcm90by5pc0xvY2FsICAgICAgICAgICAgICA9IGlzTG9jYWw7XG4gICAgcHJvdG8uaXNVdGNPZmZzZXQgICAgICAgICAgPSBpc1V0Y09mZnNldDtcbiAgICBwcm90by5pc1V0YyAgICAgICAgICAgICAgICA9IGlzVXRjO1xuICAgIHByb3RvLmlzVVRDICAgICAgICAgICAgICAgID0gaXNVdGM7XG4gICAgcHJvdG8uem9uZUFiYnIgPSBnZXRab25lQWJicjtcbiAgICBwcm90by56b25lTmFtZSA9IGdldFpvbmVOYW1lO1xuICAgIHByb3RvLmRhdGVzICA9IGRlcHJlY2F0ZSgnZGF0ZXMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIGRhdGUgaW5zdGVhZC4nLCBnZXRTZXREYXlPZk1vbnRoKTtcbiAgICBwcm90by5tb250aHMgPSBkZXByZWNhdGUoJ21vbnRocyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgbW9udGggaW5zdGVhZCcsIGdldFNldE1vbnRoKTtcbiAgICBwcm90by55ZWFycyAgPSBkZXByZWNhdGUoJ3llYXJzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSB5ZWFyIGluc3RlYWQnLCBnZXRTZXRZZWFyKTtcbiAgICBwcm90by56b25lICAgPSBkZXByZWNhdGUoJ21vbWVudCgpLnpvbmUgaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudCgpLnV0Y09mZnNldCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL3pvbmUvJywgZ2V0U2V0Wm9uZSk7XG4gICAgcHJvdG8uaXNEU1RTaGlmdGVkID0gZGVwcmVjYXRlKCdpc0RTVFNoaWZ0ZWQgaXMgZGVwcmVjYXRlZC4gU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZHN0LXNoaWZ0ZWQvIGZvciBtb3JlIGluZm9ybWF0aW9uJywgaXNEYXlsaWdodFNhdmluZ1RpbWVTaGlmdGVkKTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVuaXggKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbChpbnB1dCAqIDEwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUluWm9uZSAoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpLnBhcnNlWm9uZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZVBhcnNlUG9zdEZvcm1hdCAoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvJDEgPSBMb2NhbGUucHJvdG90eXBlO1xuXG4gICAgcHJvdG8kMS5jYWxlbmRhciAgICAgICAgPSBjYWxlbmRhcjtcbiAgICBwcm90byQxLmxvbmdEYXRlRm9ybWF0ICA9IGxvbmdEYXRlRm9ybWF0O1xuICAgIHByb3RvJDEuaW52YWxpZERhdGUgICAgID0gaW52YWxpZERhdGU7XG4gICAgcHJvdG8kMS5vcmRpbmFsICAgICAgICAgPSBvcmRpbmFsO1xuICAgIHByb3RvJDEucHJlcGFyc2UgICAgICAgID0gcHJlUGFyc2VQb3N0Rm9ybWF0O1xuICAgIHByb3RvJDEucG9zdGZvcm1hdCAgICAgID0gcHJlUGFyc2VQb3N0Rm9ybWF0O1xuICAgIHByb3RvJDEucmVsYXRpdmVUaW1lICAgID0gcmVsYXRpdmVUaW1lO1xuICAgIHByb3RvJDEucGFzdEZ1dHVyZSAgICAgID0gcGFzdEZ1dHVyZTtcbiAgICBwcm90byQxLnNldCAgICAgICAgICAgICA9IHNldDtcblxuICAgIHByb3RvJDEubW9udGhzICAgICAgICAgICAgPSAgICAgICAgbG9jYWxlTW9udGhzO1xuICAgIHByb3RvJDEubW9udGhzU2hvcnQgICAgICAgPSAgICAgICAgbG9jYWxlTW9udGhzU2hvcnQ7XG4gICAgcHJvdG8kMS5tb250aHNQYXJzZSAgICAgICA9ICAgICAgICBsb2NhbGVNb250aHNQYXJzZTtcbiAgICBwcm90byQxLm1vbnRoc1JlZ2V4ICAgICAgID0gbW9udGhzUmVnZXg7XG4gICAgcHJvdG8kMS5tb250aHNTaG9ydFJlZ2V4ICA9IG1vbnRoc1Nob3J0UmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrID0gbG9jYWxlV2VlaztcbiAgICBwcm90byQxLmZpcnN0RGF5T2ZZZWFyID0gbG9jYWxlRmlyc3REYXlPZlllYXI7XG4gICAgcHJvdG8kMS5maXJzdERheU9mV2VlayA9IGxvY2FsZUZpcnN0RGF5T2ZXZWVrO1xuXG4gICAgcHJvdG8kMS53ZWVrZGF5cyAgICAgICA9ICAgICAgICBsb2NhbGVXZWVrZGF5cztcbiAgICBwcm90byQxLndlZWtkYXlzTWluICAgID0gICAgICAgIGxvY2FsZVdlZWtkYXlzTWluO1xuICAgIHByb3RvJDEud2Vla2RheXNTaG9ydCAgPSAgICAgICAgbG9jYWxlV2Vla2RheXNTaG9ydDtcbiAgICBwcm90byQxLndlZWtkYXlzUGFyc2UgID0gICAgICAgIGxvY2FsZVdlZWtkYXlzUGFyc2U7XG5cbiAgICBwcm90byQxLndlZWtkYXlzUmVnZXggICAgICAgPSAgICAgICAgd2Vla2RheXNSZWdleDtcbiAgICBwcm90byQxLndlZWtkYXlzU2hvcnRSZWdleCAgPSAgICAgICAgd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgIHByb3RvJDEud2Vla2RheXNNaW5SZWdleCAgICA9ICAgICAgICB3ZWVrZGF5c01pblJlZ2V4O1xuXG4gICAgcHJvdG8kMS5pc1BNID0gbG9jYWxlSXNQTTtcbiAgICBwcm90byQxLm1lcmlkaWVtID0gbG9jYWxlTWVyaWRpZW07XG5cbiAgICBmdW5jdGlvbiBnZXQkMSAoZm9ybWF0LCBpbmRleCwgZmllbGQsIHNldHRlcikge1xuICAgICAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCk7XG4gICAgICAgIHZhciB1dGMgPSBjcmVhdGVVVEMoKS5zZXQoc2V0dGVyLCBpbmRleCk7XG4gICAgICAgIHJldHVybiBsb2NhbGVbZmllbGRdKHV0YywgZm9ybWF0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzSW1wbCAoZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8ICcnO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEoZm9ybWF0LCBpbmRleCwgZmllbGQsICdtb250aCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGk7XG4gICAgICAgIHZhciBvdXQgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpXSA9IGdldCQxKGZvcm1hdCwgaSwgZmllbGQsICdtb250aCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuXG4gICAgLy8gKClcbiAgICAvLyAoNSlcbiAgICAvLyAoZm10LCA1KVxuICAgIC8vIChmbXQpXG4gICAgLy8gKHRydWUpXG4gICAgLy8gKHRydWUsIDUpXG4gICAgLy8gKHRydWUsIGZtdCwgNSlcbiAgICAvLyAodHJ1ZSwgZm10KVxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c0ltcGwgKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2NhbGVTb3J0ZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGxvY2FsZVNvcnRlZDtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgbG9jYWxlU29ydGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCksXG4gICAgICAgICAgICBzaGlmdCA9IGxvY2FsZVNvcnRlZCA/IGxvY2FsZS5fd2Vlay5kb3cgOiAwO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEoZm9ybWF0LCAoaW5kZXggKyBzaGlmdCkgJSA3LCBmaWVsZCwgJ2RheScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGk7XG4gICAgICAgIHZhciBvdXQgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgb3V0W2ldID0gZ2V0JDEoZm9ybWF0LCAoaSArIHNoaWZ0KSAlIDcsIGZpZWxkLCAnZGF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzIChmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0TW9udGhzSW1wbChmb3JtYXQsIGluZGV4LCAnbW9udGhzJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdE1vbnRoc1Nob3J0IChmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0TW9udGhzSW1wbChmb3JtYXQsIGluZGV4LCAnbW9udGhzU2hvcnQnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXMgKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5cycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c1Nob3J0IChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCAnd2Vla2RheXNTaG9ydCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c01pbiAobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzTWluJyk7XG4gICAgfVxuXG4gICAgZ2V0U2V0R2xvYmFsTG9jYWxlKCdlbicsIHtcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHRofHN0fG5kfHJkKS8sXG4gICAgICAgIG9yZGluYWwgOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0b0ludChudW1iZXIgJSAxMDAgLyAxMCkgPT09IDEpID8gJ3RoJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDEpID8gJ3N0JyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDIpID8gJ25kJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDMpID8gJ3JkJyA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTaWRlIGVmZmVjdCBpbXBvcnRzXG5cbiAgICBob29rcy5sYW5nID0gZGVwcmVjYXRlKCdtb21lbnQubGFuZyBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZSBpbnN0ZWFkLicsIGdldFNldEdsb2JhbExvY2FsZSk7XG4gICAgaG9va3MubGFuZ0RhdGEgPSBkZXByZWNhdGUoJ21vbWVudC5sYW5nRGF0YSBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZURhdGEgaW5zdGVhZC4nLCBnZXRMb2NhbGUpO1xuXG4gICAgdmFyIG1hdGhBYnMgPSBNYXRoLmFicztcblxuICAgIGZ1bmN0aW9uIGFicyAoKSB7XG4gICAgICAgIHZhciBkYXRhICAgICAgICAgICA9IHRoaXMuX2RhdGE7XG5cbiAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzID0gbWF0aEFicyh0aGlzLl9taWxsaXNlY29uZHMpO1xuICAgICAgICB0aGlzLl9kYXlzICAgICAgICAgPSBtYXRoQWJzKHRoaXMuX2RheXMpO1xuICAgICAgICB0aGlzLl9tb250aHMgICAgICAgPSBtYXRoQWJzKHRoaXMuX21vbnRocyk7XG5cbiAgICAgICAgZGF0YS5taWxsaXNlY29uZHMgID0gbWF0aEFicyhkYXRhLm1pbGxpc2Vjb25kcyk7XG4gICAgICAgIGRhdGEuc2Vjb25kcyAgICAgICA9IG1hdGhBYnMoZGF0YS5zZWNvbmRzKTtcbiAgICAgICAgZGF0YS5taW51dGVzICAgICAgID0gbWF0aEFicyhkYXRhLm1pbnV0ZXMpO1xuICAgICAgICBkYXRhLmhvdXJzICAgICAgICAgPSBtYXRoQWJzKGRhdGEuaG91cnMpO1xuICAgICAgICBkYXRhLm1vbnRocyAgICAgICAgPSBtYXRoQWJzKGRhdGEubW9udGhzKTtcbiAgICAgICAgZGF0YS55ZWFycyAgICAgICAgID0gbWF0aEFicyhkYXRhLnllYXJzKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRTdWJ0cmFjdCQxIChkdXJhdGlvbiwgaW5wdXQsIHZhbHVlLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlRHVyYXRpb24oaW5wdXQsIHZhbHVlKTtcblxuICAgICAgICBkdXJhdGlvbi5fbWlsbGlzZWNvbmRzICs9IGRpcmVjdGlvbiAqIG90aGVyLl9taWxsaXNlY29uZHM7XG4gICAgICAgIGR1cmF0aW9uLl9kYXlzICAgICAgICAgKz0gZGlyZWN0aW9uICogb3RoZXIuX2RheXM7XG4gICAgICAgIGR1cmF0aW9uLl9tb250aHMgICAgICAgKz0gZGlyZWN0aW9uICogb3RoZXIuX21vbnRocztcblxuICAgICAgICByZXR1cm4gZHVyYXRpb24uX2J1YmJsZSgpO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnRzIG9ubHkgMi4wLXN0eWxlIGFkZCgxLCAncycpIG9yIGFkZChkdXJhdGlvbilcbiAgICBmdW5jdGlvbiBhZGQkMSAoaW5wdXQsIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBhZGRTdWJ0cmFjdCQxKHRoaXMsIGlucHV0LCB2YWx1ZSwgMSk7XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydHMgb25seSAyLjAtc3R5bGUgc3VidHJhY3QoMSwgJ3MnKSBvciBzdWJ0cmFjdChkdXJhdGlvbilcbiAgICBmdW5jdGlvbiBzdWJ0cmFjdCQxIChpbnB1dCwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGFkZFN1YnRyYWN0JDEodGhpcywgaW5wdXQsIHZhbHVlLCAtMSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWJzQ2VpbCAobnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbChudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYnViYmxlICgpIHtcbiAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IHRoaXMuX21pbGxpc2Vjb25kcztcbiAgICAgICAgdmFyIGRheXMgICAgICAgICA9IHRoaXMuX2RheXM7XG4gICAgICAgIHZhciBtb250aHMgICAgICAgPSB0aGlzLl9tb250aHM7XG4gICAgICAgIHZhciBkYXRhICAgICAgICAgPSB0aGlzLl9kYXRhO1xuICAgICAgICB2YXIgc2Vjb25kcywgbWludXRlcywgaG91cnMsIHllYXJzLCBtb250aHNGcm9tRGF5cztcblxuICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgbWl4IG9mIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSB2YWx1ZXMsIGJ1YmJsZSBkb3duIGZpcnN0XG4gICAgICAgIC8vIGNoZWNrOiBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMjE2NlxuICAgICAgICBpZiAoISgobWlsbGlzZWNvbmRzID49IDAgJiYgZGF5cyA+PSAwICYmIG1vbnRocyA+PSAwKSB8fFxuICAgICAgICAgICAgICAgIChtaWxsaXNlY29uZHMgPD0gMCAmJiBkYXlzIDw9IDAgJiYgbW9udGhzIDw9IDApKSkge1xuICAgICAgICAgICAgbWlsbGlzZWNvbmRzICs9IGFic0NlaWwobW9udGhzVG9EYXlzKG1vbnRocykgKyBkYXlzKSAqIDg2NGU1O1xuICAgICAgICAgICAgZGF5cyA9IDA7XG4gICAgICAgICAgICBtb250aHMgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGJ1YmJsZXMgdXAgdmFsdWVzLCBzZWUgdGhlIHRlc3RzIGZvclxuICAgICAgICAvLyBleGFtcGxlcyBvZiB3aGF0IHRoYXQgbWVhbnMuXG4gICAgICAgIGRhdGEubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzICUgMTAwMDtcblxuICAgICAgICBzZWNvbmRzICAgICAgICAgICA9IGFic0Zsb29yKG1pbGxpc2Vjb25kcyAvIDEwMDApO1xuICAgICAgICBkYXRhLnNlY29uZHMgICAgICA9IHNlY29uZHMgJSA2MDtcblxuICAgICAgICBtaW51dGVzICAgICAgICAgICA9IGFic0Zsb29yKHNlY29uZHMgLyA2MCk7XG4gICAgICAgIGRhdGEubWludXRlcyAgICAgID0gbWludXRlcyAlIDYwO1xuXG4gICAgICAgIGhvdXJzICAgICAgICAgICAgID0gYWJzRmxvb3IobWludXRlcyAvIDYwKTtcbiAgICAgICAgZGF0YS5ob3VycyAgICAgICAgPSBob3VycyAlIDI0O1xuXG4gICAgICAgIGRheXMgKz0gYWJzRmxvb3IoaG91cnMgLyAyNCk7XG5cbiAgICAgICAgLy8gY29udmVydCBkYXlzIHRvIG1vbnRoc1xuICAgICAgICBtb250aHNGcm9tRGF5cyA9IGFic0Zsb29yKGRheXNUb01vbnRocyhkYXlzKSk7XG4gICAgICAgIG1vbnRocyArPSBtb250aHNGcm9tRGF5cztcbiAgICAgICAgZGF5cyAtPSBhYnNDZWlsKG1vbnRoc1RvRGF5cyhtb250aHNGcm9tRGF5cykpO1xuXG4gICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICAgICAgeWVhcnMgPSBhYnNGbG9vcihtb250aHMgLyAxMik7XG4gICAgICAgIG1vbnRocyAlPSAxMjtcblxuICAgICAgICBkYXRhLmRheXMgICA9IGRheXM7XG4gICAgICAgIGRhdGEubW9udGhzID0gbW9udGhzO1xuICAgICAgICBkYXRhLnllYXJzICA9IHllYXJzO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNUb01vbnRocyAoZGF5cykge1xuICAgICAgICAvLyA0MDAgeWVhcnMgaGF2ZSAxNDYwOTcgZGF5cyAodGFraW5nIGludG8gYWNjb3VudCBsZWFwIHllYXIgcnVsZXMpXG4gICAgICAgIC8vIDQwMCB5ZWFycyBoYXZlIDEyIG1vbnRocyA9PT0gNDgwMFxuICAgICAgICByZXR1cm4gZGF5cyAqIDQ4MDAgLyAxNDYwOTc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9udGhzVG9EYXlzIChtb250aHMpIHtcbiAgICAgICAgLy8gdGhlIHJldmVyc2Ugb2YgZGF5c1RvTW9udGhzXG4gICAgICAgIHJldHVybiBtb250aHMgKiAxNDYwOTcgLyA0ODAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFzICh1bml0cykge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXlzO1xuICAgICAgICB2YXIgbW9udGhzO1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gdGhpcy5fbWlsbGlzZWNvbmRzO1xuXG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuXG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21vbnRoJyB8fCB1bml0cyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICBkYXlzICAgPSB0aGlzLl9kYXlzICAgKyBtaWxsaXNlY29uZHMgLyA4NjRlNTtcbiAgICAgICAgICAgIG1vbnRocyA9IHRoaXMuX21vbnRocyArIGRheXNUb01vbnRocyhkYXlzKTtcbiAgICAgICAgICAgIHJldHVybiB1bml0cyA9PT0gJ21vbnRoJyA/IG1vbnRocyA6IG1vbnRocyAvIDEyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaGFuZGxlIG1pbGxpc2Vjb25kcyBzZXBhcmF0ZWx5IGJlY2F1c2Ugb2YgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgKGlzc3VlICMxODY3KVxuICAgICAgICAgICAgZGF5cyA9IHRoaXMuX2RheXMgKyBNYXRoLnJvdW5kKG1vbnRoc1RvRGF5cyh0aGlzLl9tb250aHMpKTtcbiAgICAgICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd3ZWVrJyAgIDogcmV0dXJuIGRheXMgLyA3ICAgICArIG1pbGxpc2Vjb25kcyAvIDYwNDhlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXknICAgIDogcmV0dXJuIGRheXMgICAgICAgICArIG1pbGxpc2Vjb25kcyAvIDg2NGU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hvdXInICAgOiByZXR1cm4gZGF5cyAqIDI0ICAgICsgbWlsbGlzZWNvbmRzIC8gMzZlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdtaW51dGUnIDogcmV0dXJuIGRheXMgKiAxNDQwICArIG1pbGxpc2Vjb25kcyAvIDZlNDtcbiAgICAgICAgICAgICAgICBjYXNlICdzZWNvbmQnIDogcmV0dXJuIGRheXMgKiA4NjQwMCArIG1pbGxpc2Vjb25kcyAvIDEwMDA7XG4gICAgICAgICAgICAgICAgLy8gTWF0aC5mbG9vciBwcmV2ZW50cyBmbG9hdGluZyBwb2ludCBtYXRoIGVycm9ycyBoZXJlXG4gICAgICAgICAgICAgICAgY2FzZSAnbWlsbGlzZWNvbmQnOiByZXR1cm4gTWF0aC5mbG9vcihkYXlzICogODY0ZTUpICsgbWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcignVW5rbm93biB1bml0ICcgKyB1bml0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBVc2UgdGhpcy5hcygnbXMnKT9cbiAgICBmdW5jdGlvbiB2YWx1ZU9mJDEgKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgK1xuICAgICAgICAgICAgdGhpcy5fZGF5cyAqIDg2NGU1ICtcbiAgICAgICAgICAgICh0aGlzLl9tb250aHMgJSAxMikgKiAyNTkyZTYgK1xuICAgICAgICAgICAgdG9JbnQodGhpcy5fbW9udGhzIC8gMTIpICogMzE1MzZlNlxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VBcyAoYWxpYXMpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFzKGFsaWFzKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgYXNNaWxsaXNlY29uZHMgPSBtYWtlQXMoJ21zJyk7XG4gICAgdmFyIGFzU2Vjb25kcyAgICAgID0gbWFrZUFzKCdzJyk7XG4gICAgdmFyIGFzTWludXRlcyAgICAgID0gbWFrZUFzKCdtJyk7XG4gICAgdmFyIGFzSG91cnMgICAgICAgID0gbWFrZUFzKCdoJyk7XG4gICAgdmFyIGFzRGF5cyAgICAgICAgID0gbWFrZUFzKCdkJyk7XG4gICAgdmFyIGFzV2Vla3MgICAgICAgID0gbWFrZUFzKCd3Jyk7XG4gICAgdmFyIGFzTW9udGhzICAgICAgID0gbWFrZUFzKCdNJyk7XG4gICAgdmFyIGFzWWVhcnMgICAgICAgID0gbWFrZUFzKCd5Jyk7XG5cbiAgICBmdW5jdGlvbiBjbG9uZSQxICgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKHRoaXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldCQyICh1bml0cykge1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpc1t1bml0cyArICdzJ10oKSA6IE5hTjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlR2V0dGVyKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2RhdGFbbmFtZV0gOiBOYU47XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIG1pbGxpc2Vjb25kcyA9IG1ha2VHZXR0ZXIoJ21pbGxpc2Vjb25kcycpO1xuICAgIHZhciBzZWNvbmRzICAgICAgPSBtYWtlR2V0dGVyKCdzZWNvbmRzJyk7XG4gICAgdmFyIG1pbnV0ZXMgICAgICA9IG1ha2VHZXR0ZXIoJ21pbnV0ZXMnKTtcbiAgICB2YXIgaG91cnMgICAgICAgID0gbWFrZUdldHRlcignaG91cnMnKTtcbiAgICB2YXIgZGF5cyAgICAgICAgID0gbWFrZUdldHRlcignZGF5cycpO1xuICAgIHZhciBtb250aHMgICAgICAgPSBtYWtlR2V0dGVyKCdtb250aHMnKTtcbiAgICB2YXIgeWVhcnMgICAgICAgID0gbWFrZUdldHRlcigneWVhcnMnKTtcblxuICAgIGZ1bmN0aW9uIHdlZWtzICgpIHtcbiAgICAgICAgcmV0dXJuIGFic0Zsb29yKHRoaXMuZGF5cygpIC8gNyk7XG4gICAgfVxuXG4gICAgdmFyIHJvdW5kID0gTWF0aC5yb3VuZDtcbiAgICB2YXIgdGhyZXNob2xkcyA9IHtcbiAgICAgICAgc3M6IDQ0LCAgICAgICAgIC8vIGEgZmV3IHNlY29uZHMgdG8gc2Vjb25kc1xuICAgICAgICBzIDogNDUsICAgICAgICAgLy8gc2Vjb25kcyB0byBtaW51dGVcbiAgICAgICAgbSA6IDQ1LCAgICAgICAgIC8vIG1pbnV0ZXMgdG8gaG91clxuICAgICAgICBoIDogMjIsICAgICAgICAgLy8gaG91cnMgdG8gZGF5XG4gICAgICAgIGQgOiAyNiwgICAgICAgICAvLyBkYXlzIHRvIG1vbnRoXG4gICAgICAgIE0gOiAxMSAgICAgICAgICAvLyBtb250aHMgdG8geWVhclxuICAgIH07XG5cbiAgICAvLyBoZWxwZXIgZnVuY3Rpb24gZm9yIG1vbWVudC5mbi5mcm9tLCBtb21lbnQuZm4uZnJvbU5vdywgYW5kIG1vbWVudC5kdXJhdGlvbi5mbi5odW1hbml6ZVxuICAgIGZ1bmN0aW9uIHN1YnN0aXR1dGVUaW1lQWdvKHN0cmluZywgbnVtYmVyLCB3aXRob3V0U3VmZml4LCBpc0Z1dHVyZSwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUucmVsYXRpdmVUaW1lKG51bWJlciB8fCAxLCAhIXdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZSQxIChwb3NOZWdEdXJhdGlvbiwgd2l0aG91dFN1ZmZpeCwgbG9jYWxlKSB7XG4gICAgICAgIHZhciBkdXJhdGlvbiA9IGNyZWF0ZUR1cmF0aW9uKHBvc05lZ0R1cmF0aW9uKS5hYnMoKTtcbiAgICAgICAgdmFyIHNlY29uZHMgID0gcm91bmQoZHVyYXRpb24uYXMoJ3MnKSk7XG4gICAgICAgIHZhciBtaW51dGVzICA9IHJvdW5kKGR1cmF0aW9uLmFzKCdtJykpO1xuICAgICAgICB2YXIgaG91cnMgICAgPSByb3VuZChkdXJhdGlvbi5hcygnaCcpKTtcbiAgICAgICAgdmFyIGRheXMgICAgID0gcm91bmQoZHVyYXRpb24uYXMoJ2QnKSk7XG4gICAgICAgIHZhciBtb250aHMgICA9IHJvdW5kKGR1cmF0aW9uLmFzKCdNJykpO1xuICAgICAgICB2YXIgeWVhcnMgICAgPSByb3VuZChkdXJhdGlvbi5hcygneScpKTtcblxuICAgICAgICB2YXIgYSA9IHNlY29uZHMgPD0gdGhyZXNob2xkcy5zcyAmJiBbJ3MnLCBzZWNvbmRzXSAgfHxcbiAgICAgICAgICAgICAgICBzZWNvbmRzIDwgdGhyZXNob2xkcy5zICAgJiYgWydzcycsIHNlY29uZHNdIHx8XG4gICAgICAgICAgICAgICAgbWludXRlcyA8PSAxICAgICAgICAgICAgICYmIFsnbSddICAgICAgICAgICB8fFxuICAgICAgICAgICAgICAgIG1pbnV0ZXMgPCB0aHJlc2hvbGRzLm0gICAmJiBbJ21tJywgbWludXRlc10gfHxcbiAgICAgICAgICAgICAgICBob3VycyAgIDw9IDEgICAgICAgICAgICAgJiYgWydoJ10gICAgICAgICAgIHx8XG4gICAgICAgICAgICAgICAgaG91cnMgICA8IHRocmVzaG9sZHMuaCAgICYmIFsnaGgnLCBob3Vyc10gICB8fFxuICAgICAgICAgICAgICAgIGRheXMgICAgPD0gMSAgICAgICAgICAgICAmJiBbJ2QnXSAgICAgICAgICAgfHxcbiAgICAgICAgICAgICAgICBkYXlzICAgIDwgdGhyZXNob2xkcy5kICAgJiYgWydkZCcsIGRheXNdICAgIHx8XG4gICAgICAgICAgICAgICAgbW9udGhzICA8PSAxICAgICAgICAgICAgICYmIFsnTSddICAgICAgICAgICB8fFxuICAgICAgICAgICAgICAgIG1vbnRocyAgPCB0aHJlc2hvbGRzLk0gICAmJiBbJ01NJywgbW9udGhzXSAgfHxcbiAgICAgICAgICAgICAgICB5ZWFycyAgIDw9IDEgICAgICAgICAgICAgJiYgWyd5J10gICAgICAgICAgIHx8IFsneXknLCB5ZWFyc107XG5cbiAgICAgICAgYVsyXSA9IHdpdGhvdXRTdWZmaXg7XG4gICAgICAgIGFbM10gPSArcG9zTmVnRHVyYXRpb24gPiAwO1xuICAgICAgICBhWzRdID0gbG9jYWxlO1xuICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZVRpbWVBZ28uYXBwbHkobnVsbCwgYSk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCB0aGUgcm91bmRpbmcgZnVuY3Rpb24gZm9yIHJlbGF0aXZlIHRpbWUgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nIChyb3VuZGluZ0Z1bmN0aW9uKSB7XG4gICAgICAgIGlmIChyb3VuZGluZ0Z1bmN0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByb3VuZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mKHJvdW5kaW5nRnVuY3Rpb24pID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByb3VuZCA9IHJvdW5kaW5nRnVuY3Rpb247XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHNldCBhIHRocmVzaG9sZCBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzXG4gICAgZnVuY3Rpb24gZ2V0U2V0UmVsYXRpdmVUaW1lVGhyZXNob2xkICh0aHJlc2hvbGQsIGxpbWl0KSB7XG4gICAgICAgIGlmICh0aHJlc2hvbGRzW3RocmVzaG9sZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaW1pdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyZXNob2xkc1t0aHJlc2hvbGRdO1xuICAgICAgICB9XG4gICAgICAgIHRocmVzaG9sZHNbdGhyZXNob2xkXSA9IGxpbWl0O1xuICAgICAgICBpZiAodGhyZXNob2xkID09PSAncycpIHtcbiAgICAgICAgICAgIHRocmVzaG9sZHMuc3MgPSBsaW1pdCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaHVtYW5pemUgKHdpdGhTdWZmaXgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbG9jYWxlID0gdGhpcy5sb2NhbGVEYXRhKCk7XG4gICAgICAgIHZhciBvdXRwdXQgPSByZWxhdGl2ZVRpbWUkMSh0aGlzLCAhd2l0aFN1ZmZpeCwgbG9jYWxlKTtcblxuICAgICAgICBpZiAod2l0aFN1ZmZpeCkge1xuICAgICAgICAgICAgb3V0cHV0ID0gbG9jYWxlLnBhc3RGdXR1cmUoK3RoaXMsIG91dHB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbG9jYWxlLnBvc3Rmb3JtYXQob3V0cHV0KTtcbiAgICB9XG5cbiAgICB2YXIgYWJzJDEgPSBNYXRoLmFicztcblxuICAgIGZ1bmN0aW9uIHNpZ24oeCkge1xuICAgICAgICByZXR1cm4gKCh4ID4gMCkgLSAoeCA8IDApKSB8fCAreDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0lTT1N0cmluZyQxKCkge1xuICAgICAgICAvLyBmb3IgSVNPIHN0cmluZ3Mgd2UgZG8gbm90IHVzZSB0aGUgbm9ybWFsIGJ1YmJsaW5nIHJ1bGVzOlxuICAgICAgICAvLyAgKiBtaWxsaXNlY29uZHMgYnViYmxlIHVwIHVudGlsIHRoZXkgYmVjb21lIGhvdXJzXG4gICAgICAgIC8vICAqIGRheXMgZG8gbm90IGJ1YmJsZSBhdCBhbGxcbiAgICAgICAgLy8gICogbW9udGhzIGJ1YmJsZSB1cCB1bnRpbCB0aGV5IGJlY29tZSB5ZWFyc1xuICAgICAgICAvLyBUaGlzIGlzIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29udGV4dC1mcmVlIGNvbnZlcnNpb24gYmV0d2VlbiBob3VycyBhbmQgZGF5c1xuICAgICAgICAvLyAodGhpbmsgb2YgY2xvY2sgY2hhbmdlcylcbiAgICAgICAgLy8gYW5kIGFsc28gbm90IGJldHdlZW4gZGF5cyBhbmQgbW9udGhzICgyOC0zMSBkYXlzIHBlciBtb250aClcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2Vjb25kcyA9IGFicyQxKHRoaXMuX21pbGxpc2Vjb25kcykgLyAxMDAwO1xuICAgICAgICB2YXIgZGF5cyAgICAgICAgID0gYWJzJDEodGhpcy5fZGF5cyk7XG4gICAgICAgIHZhciBtb250aHMgICAgICAgPSBhYnMkMSh0aGlzLl9tb250aHMpO1xuICAgICAgICB2YXIgbWludXRlcywgaG91cnMsIHllYXJzO1xuXG4gICAgICAgIC8vIDM2MDAgc2Vjb25kcyAtPiA2MCBtaW51dGVzIC0+IDEgaG91clxuICAgICAgICBtaW51dGVzICAgICAgICAgICA9IGFic0Zsb29yKHNlY29uZHMgLyA2MCk7XG4gICAgICAgIGhvdXJzICAgICAgICAgICAgID0gYWJzRmxvb3IobWludXRlcyAvIDYwKTtcbiAgICAgICAgc2Vjb25kcyAlPSA2MDtcbiAgICAgICAgbWludXRlcyAlPSA2MDtcblxuICAgICAgICAvLyAxMiBtb250aHMgLT4gMSB5ZWFyXG4gICAgICAgIHllYXJzICA9IGFic0Zsb29yKG1vbnRocyAvIDEyKTtcbiAgICAgICAgbW9udGhzICU9IDEyO1xuXG5cbiAgICAgICAgLy8gaW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL2RvcmRpbGxlL21vbWVudC1pc29kdXJhdGlvbi9ibG9iL21hc3Rlci9tb21lbnQuaXNvZHVyYXRpb24uanNcbiAgICAgICAgdmFyIFkgPSB5ZWFycztcbiAgICAgICAgdmFyIE0gPSBtb250aHM7XG4gICAgICAgIHZhciBEID0gZGF5cztcbiAgICAgICAgdmFyIGggPSBob3VycztcbiAgICAgICAgdmFyIG0gPSBtaW51dGVzO1xuICAgICAgICB2YXIgcyA9IHNlY29uZHMgPyBzZWNvbmRzLnRvRml4ZWQoMykucmVwbGFjZSgvXFwuPzArJC8sICcnKSA6ICcnO1xuICAgICAgICB2YXIgdG90YWwgPSB0aGlzLmFzU2Vjb25kcygpO1xuXG4gICAgICAgIGlmICghdG90YWwpIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgdGhlIHNhbWUgYXMgQyMncyAoTm9kYSkgYW5kIHB5dGhvbiAoaXNvZGF0ZSkuLi5cbiAgICAgICAgICAgIC8vIGJ1dCBub3Qgb3RoZXIgSlMgKGdvb2cuZGF0ZSlcbiAgICAgICAgICAgIHJldHVybiAnUDBEJztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0b3RhbFNpZ24gPSB0b3RhbCA8IDAgPyAnLScgOiAnJztcbiAgICAgICAgdmFyIHltU2lnbiA9IHNpZ24odGhpcy5fbW9udGhzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcbiAgICAgICAgdmFyIGRheXNTaWduID0gc2lnbih0aGlzLl9kYXlzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcbiAgICAgICAgdmFyIGhtc1NpZ24gPSBzaWduKHRoaXMuX21pbGxpc2Vjb25kcykgIT09IHNpZ24odG90YWwpID8gJy0nIDogJyc7XG5cbiAgICAgICAgcmV0dXJuIHRvdGFsU2lnbiArICdQJyArXG4gICAgICAgICAgICAoWSA/IHltU2lnbiArIFkgKyAnWScgOiAnJykgK1xuICAgICAgICAgICAgKE0gPyB5bVNpZ24gKyBNICsgJ00nIDogJycpICtcbiAgICAgICAgICAgIChEID8gZGF5c1NpZ24gKyBEICsgJ0QnIDogJycpICtcbiAgICAgICAgICAgICgoaCB8fCBtIHx8IHMpID8gJ1QnIDogJycpICtcbiAgICAgICAgICAgIChoID8gaG1zU2lnbiArIGggKyAnSCcgOiAnJykgK1xuICAgICAgICAgICAgKG0gPyBobXNTaWduICsgbSArICdNJyA6ICcnKSArXG4gICAgICAgICAgICAocyA/IGhtc1NpZ24gKyBzICsgJ1MnIDogJycpO1xuICAgIH1cblxuICAgIHZhciBwcm90byQyID0gRHVyYXRpb24ucHJvdG90eXBlO1xuXG4gICAgcHJvdG8kMi5pc1ZhbGlkICAgICAgICA9IGlzVmFsaWQkMTtcbiAgICBwcm90byQyLmFicyAgICAgICAgICAgID0gYWJzO1xuICAgIHByb3RvJDIuYWRkICAgICAgICAgICAgPSBhZGQkMTtcbiAgICBwcm90byQyLnN1YnRyYWN0ICAgICAgID0gc3VidHJhY3QkMTtcbiAgICBwcm90byQyLmFzICAgICAgICAgICAgID0gYXM7XG4gICAgcHJvdG8kMi5hc01pbGxpc2Vjb25kcyA9IGFzTWlsbGlzZWNvbmRzO1xuICAgIHByb3RvJDIuYXNTZWNvbmRzICAgICAgPSBhc1NlY29uZHM7XG4gICAgcHJvdG8kMi5hc01pbnV0ZXMgICAgICA9IGFzTWludXRlcztcbiAgICBwcm90byQyLmFzSG91cnMgICAgICAgID0gYXNIb3VycztcbiAgICBwcm90byQyLmFzRGF5cyAgICAgICAgID0gYXNEYXlzO1xuICAgIHByb3RvJDIuYXNXZWVrcyAgICAgICAgPSBhc1dlZWtzO1xuICAgIHByb3RvJDIuYXNNb250aHMgICAgICAgPSBhc01vbnRocztcbiAgICBwcm90byQyLmFzWWVhcnMgICAgICAgID0gYXNZZWFycztcbiAgICBwcm90byQyLnZhbHVlT2YgICAgICAgID0gdmFsdWVPZiQxO1xuICAgIHByb3RvJDIuX2J1YmJsZSAgICAgICAgPSBidWJibGU7XG4gICAgcHJvdG8kMi5jbG9uZSAgICAgICAgICA9IGNsb25lJDE7XG4gICAgcHJvdG8kMi5nZXQgICAgICAgICAgICA9IGdldCQyO1xuICAgIHByb3RvJDIubWlsbGlzZWNvbmRzICAgPSBtaWxsaXNlY29uZHM7XG4gICAgcHJvdG8kMi5zZWNvbmRzICAgICAgICA9IHNlY29uZHM7XG4gICAgcHJvdG8kMi5taW51dGVzICAgICAgICA9IG1pbnV0ZXM7XG4gICAgcHJvdG8kMi5ob3VycyAgICAgICAgICA9IGhvdXJzO1xuICAgIHByb3RvJDIuZGF5cyAgICAgICAgICAgPSBkYXlzO1xuICAgIHByb3RvJDIud2Vla3MgICAgICAgICAgPSB3ZWVrcztcbiAgICBwcm90byQyLm1vbnRocyAgICAgICAgID0gbW9udGhzO1xuICAgIHByb3RvJDIueWVhcnMgICAgICAgICAgPSB5ZWFycztcbiAgICBwcm90byQyLmh1bWFuaXplICAgICAgID0gaHVtYW5pemU7XG4gICAgcHJvdG8kMi50b0lTT1N0cmluZyAgICA9IHRvSVNPU3RyaW5nJDE7XG4gICAgcHJvdG8kMi50b1N0cmluZyAgICAgICA9IHRvSVNPU3RyaW5nJDE7XG4gICAgcHJvdG8kMi50b0pTT04gICAgICAgICA9IHRvSVNPU3RyaW5nJDE7XG4gICAgcHJvdG8kMi5sb2NhbGUgICAgICAgICA9IGxvY2FsZTtcbiAgICBwcm90byQyLmxvY2FsZURhdGEgICAgID0gbG9jYWxlRGF0YTtcblxuICAgIHByb3RvJDIudG9Jc29TdHJpbmcgPSBkZXByZWNhdGUoJ3RvSXNvU3RyaW5nKCkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSB0b0lTT1N0cmluZygpIGluc3RlYWQgKG5vdGljZSB0aGUgY2FwaXRhbHMpJywgdG9JU09TdHJpbmckMSk7XG4gICAgcHJvdG8kMi5sYW5nID0gbGFuZztcblxuICAgIC8vIFNpZGUgZWZmZWN0IGltcG9ydHNcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdYJywgMCwgMCwgJ3VuaXgnKTtcbiAgICBhZGRGb3JtYXRUb2tlbigneCcsIDAsIDAsICd2YWx1ZU9mJyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCd4JywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1gnLCBtYXRjaFRpbWVzdGFtcCk7XG4gICAgYWRkUGFyc2VUb2tlbignWCcsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShwYXJzZUZsb2F0KGlucHV0LCAxMCkgKiAxMDAwKTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCd4JywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHRvSW50KGlucHV0KSk7XG4gICAgfSk7XG5cbiAgICAvLyBTaWRlIGVmZmVjdCBpbXBvcnRzXG5cblxuICAgIGhvb2tzLnZlcnNpb24gPSAnMi4yMi4yJztcblxuICAgIHNldEhvb2tDYWxsYmFjayhjcmVhdGVMb2NhbCk7XG5cbiAgICBob29rcy5mbiAgICAgICAgICAgICAgICAgICAgPSBwcm90bztcbiAgICBob29rcy5taW4gICAgICAgICAgICAgICAgICAgPSBtaW47XG4gICAgaG9va3MubWF4ICAgICAgICAgICAgICAgICAgID0gbWF4O1xuICAgIGhvb2tzLm5vdyAgICAgICAgICAgICAgICAgICA9IG5vdztcbiAgICBob29rcy51dGMgICAgICAgICAgICAgICAgICAgPSBjcmVhdGVVVEM7XG4gICAgaG9va3MudW5peCAgICAgICAgICAgICAgICAgID0gY3JlYXRlVW5peDtcbiAgICBob29rcy5tb250aHMgICAgICAgICAgICAgICAgPSBsaXN0TW9udGhzO1xuICAgIGhvb2tzLmlzRGF0ZSAgICAgICAgICAgICAgICA9IGlzRGF0ZTtcbiAgICBob29rcy5sb2NhbGUgICAgICAgICAgICAgICAgPSBnZXRTZXRHbG9iYWxMb2NhbGU7XG4gICAgaG9va3MuaW52YWxpZCAgICAgICAgICAgICAgID0gY3JlYXRlSW52YWxpZDtcbiAgICBob29rcy5kdXJhdGlvbiAgICAgICAgICAgICAgPSBjcmVhdGVEdXJhdGlvbjtcbiAgICBob29rcy5pc01vbWVudCAgICAgICAgICAgICAgPSBpc01vbWVudDtcbiAgICBob29rcy53ZWVrZGF5cyAgICAgICAgICAgICAgPSBsaXN0V2Vla2RheXM7XG4gICAgaG9va3MucGFyc2Vab25lICAgICAgICAgICAgID0gY3JlYXRlSW5ab25lO1xuICAgIGhvb2tzLmxvY2FsZURhdGEgICAgICAgICAgICA9IGdldExvY2FsZTtcbiAgICBob29rcy5pc0R1cmF0aW9uICAgICAgICAgICAgPSBpc0R1cmF0aW9uO1xuICAgIGhvb2tzLm1vbnRoc1Nob3J0ICAgICAgICAgICA9IGxpc3RNb250aHNTaG9ydDtcbiAgICBob29rcy53ZWVrZGF5c01pbiAgICAgICAgICAgPSBsaXN0V2Vla2RheXNNaW47XG4gICAgaG9va3MuZGVmaW5lTG9jYWxlICAgICAgICAgID0gZGVmaW5lTG9jYWxlO1xuICAgIGhvb2tzLnVwZGF0ZUxvY2FsZSAgICAgICAgICA9IHVwZGF0ZUxvY2FsZTtcbiAgICBob29rcy5sb2NhbGVzICAgICAgICAgICAgICAgPSBsaXN0TG9jYWxlcztcbiAgICBob29rcy53ZWVrZGF5c1Nob3J0ICAgICAgICAgPSBsaXN0V2Vla2RheXNTaG9ydDtcbiAgICBob29rcy5ub3JtYWxpemVVbml0cyAgICAgICAgPSBub3JtYWxpemVVbml0cztcbiAgICBob29rcy5yZWxhdGl2ZVRpbWVSb3VuZGluZyAgPSBnZXRTZXRSZWxhdGl2ZVRpbWVSb3VuZGluZztcbiAgICBob29rcy5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQgPSBnZXRTZXRSZWxhdGl2ZVRpbWVUaHJlc2hvbGQ7XG4gICAgaG9va3MuY2FsZW5kYXJGb3JtYXQgICAgICAgID0gZ2V0Q2FsZW5kYXJGb3JtYXQ7XG4gICAgaG9va3MucHJvdG90eXBlICAgICAgICAgICAgID0gcHJvdG87XG5cbiAgICAvLyBjdXJyZW50bHkgSFRNTDUgaW5wdXQgdHlwZSBvbmx5IHN1cHBvcnRzIDI0LWhvdXIgZm9ybWF0c1xuICAgIGhvb2tzLkhUTUw1X0ZNVCA9IHtcbiAgICAgICAgREFURVRJTUVfTE9DQUw6ICdZWVlZLU1NLUREVEhIOm1tJywgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIC8+XG4gICAgICAgIERBVEVUSU1FX0xPQ0FMX1NFQ09ORFM6ICdZWVlZLU1NLUREVEhIOm1tOnNzJywgIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBzdGVwPVwiMVwiIC8+XG4gICAgICAgIERBVEVUSU1FX0xPQ0FMX01TOiAnWVlZWS1NTS1ERFRISDptbTpzcy5TU1MnLCAgIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBzdGVwPVwiMC4wMDFcIiAvPlxuICAgICAgICBEQVRFOiAnWVlZWS1NTS1ERCcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA8aW5wdXQgdHlwZT1cImRhdGVcIiAvPlxuICAgICAgICBUSU1FOiAnSEg6bW0nLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA8aW5wdXQgdHlwZT1cInRpbWVcIiAvPlxuICAgICAgICBUSU1FX1NFQ09ORFM6ICdISDptbTpzcycsICAgICAgICAgICAgICAgICAgICAgICAvLyA8aW5wdXQgdHlwZT1cInRpbWVcIiBzdGVwPVwiMVwiIC8+XG4gICAgICAgIFRJTUVfTVM6ICdISDptbTpzcy5TU1MnLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIHN0ZXA9XCIwLjAwMVwiIC8+XG4gICAgICAgIFdFRUs6ICdZWVlZLVtXXVdXJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwid2Vla1wiIC8+XG4gICAgICAgIE1PTlRIOiAnWVlZWS1NTScgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwibW9udGhcIiAvPlxuICAgIH07XG5cbiAgICByZXR1cm4gaG9va3M7XG5cbn0pKSk7XG4iLCJtb2R1bGUuZXhwb3J0cz17XCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4xXCI6IFwiYWVzLTEyOC1lY2JcIixcblwiMi4xNi44NDAuMS4xMDEuMy40LjEuMlwiOiBcImFlcy0xMjgtY2JjXCIsXG5cIjIuMTYuODQwLjEuMTAxLjMuNC4xLjNcIjogXCJhZXMtMTI4LW9mYlwiLFxuXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40XCI6IFwiYWVzLTEyOC1jZmJcIixcblwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjFcIjogXCJhZXMtMTkyLWVjYlwiLFxuXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMlwiOiBcImFlcy0xOTItY2JjXCIsXG5cIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIzXCI6IFwiYWVzLTE5Mi1vZmJcIixcblwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjRcIjogXCJhZXMtMTkyLWNmYlwiLFxuXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MVwiOiBcImFlcy0yNTYtZWNiXCIsXG5cIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQyXCI6IFwiYWVzLTI1Ni1jYmNcIixcblwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDNcIjogXCJhZXMtMjU2LW9mYlwiLFxuXCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40NFwiOiBcImFlcy0yNTYtY2ZiXCJcbn0iLCIvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmR1dG55L3NlbGYtc2lnbmVkL2Jsb2IvZ2gtcGFnZXMvbGliL2FzbjEuanNcbi8vIEZlZG9yLCB5b3UgYXJlIGFtYXppbmcuXG4ndXNlIHN0cmljdCdcblxudmFyIGFzbjEgPSByZXF1aXJlKCdhc24xLmpzJylcblxuZXhwb3J0cy5jZXJ0aWZpY2F0ZSA9IHJlcXVpcmUoJy4vY2VydGlmaWNhdGUnKVxuXG52YXIgUlNBUHJpdmF0ZUtleSA9IGFzbjEuZGVmaW5lKCdSU0FQcml2YXRlS2V5JywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnNlcSgpLm9iaihcbiAgICB0aGlzLmtleSgndmVyc2lvbicpLmludCgpLFxuICAgIHRoaXMua2V5KCdtb2R1bHVzJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3B1YmxpY0V4cG9uZW50JykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3ByaXZhdGVFeHBvbmVudCcpLmludCgpLFxuICAgIHRoaXMua2V5KCdwcmltZTEnKS5pbnQoKSxcbiAgICB0aGlzLmtleSgncHJpbWUyJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ2V4cG9uZW50MScpLmludCgpLFxuICAgIHRoaXMua2V5KCdleHBvbmVudDInKS5pbnQoKSxcbiAgICB0aGlzLmtleSgnY29lZmZpY2llbnQnKS5pbnQoKVxuICApXG59KVxuZXhwb3J0cy5SU0FQcml2YXRlS2V5ID0gUlNBUHJpdmF0ZUtleVxuXG52YXIgUlNBUHVibGljS2V5ID0gYXNuMS5kZWZpbmUoJ1JTQVB1YmxpY0tleScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ21vZHVsdXMnKS5pbnQoKSxcbiAgICB0aGlzLmtleSgncHVibGljRXhwb25lbnQnKS5pbnQoKVxuICApXG59KVxuZXhwb3J0cy5SU0FQdWJsaWNLZXkgPSBSU0FQdWJsaWNLZXlcblxudmFyIFB1YmxpY0tleSA9IGFzbjEuZGVmaW5lKCdTdWJqZWN0UHVibGljS2V5SW5mbycsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ2FsZ29yaXRobScpLnVzZShBbGdvcml0aG1JZGVudGlmaWVyKSxcbiAgICB0aGlzLmtleSgnc3ViamVjdFB1YmxpY0tleScpLmJpdHN0cigpXG4gIClcbn0pXG5leHBvcnRzLlB1YmxpY0tleSA9IFB1YmxpY0tleVxuXG52YXIgQWxnb3JpdGhtSWRlbnRpZmllciA9IGFzbjEuZGVmaW5lKCdBbGdvcml0aG1JZGVudGlmaWVyJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnNlcSgpLm9iaihcbiAgICB0aGlzLmtleSgnYWxnb3JpdGhtJykub2JqaWQoKSxcbiAgICB0aGlzLmtleSgnbm9uZScpLm51bGxfKCkub3B0aW9uYWwoKSxcbiAgICB0aGlzLmtleSgnY3VydmUnKS5vYmppZCgpLm9wdGlvbmFsKCksXG4gICAgdGhpcy5rZXkoJ3BhcmFtcycpLnNlcSgpLm9iaihcbiAgICAgIHRoaXMua2V5KCdwJykuaW50KCksXG4gICAgICB0aGlzLmtleSgncScpLmludCgpLFxuICAgICAgdGhpcy5rZXkoJ2cnKS5pbnQoKVxuICAgICkub3B0aW9uYWwoKVxuICApXG59KVxuXG52YXIgUHJpdmF0ZUtleUluZm8gPSBhc24xLmRlZmluZSgnUHJpdmF0ZUtleUluZm8nLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCd2ZXJzaW9uJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ2FsZ29yaXRobScpLnVzZShBbGdvcml0aG1JZGVudGlmaWVyKSxcbiAgICB0aGlzLmtleSgnc3ViamVjdFByaXZhdGVLZXknKS5vY3RzdHIoKVxuICApXG59KVxuZXhwb3J0cy5Qcml2YXRlS2V5ID0gUHJpdmF0ZUtleUluZm9cbnZhciBFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbyA9IGFzbjEuZGVmaW5lKCdFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbycsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ2FsZ29yaXRobScpLnNlcSgpLm9iaihcbiAgICAgIHRoaXMua2V5KCdpZCcpLm9iamlkKCksXG4gICAgICB0aGlzLmtleSgnZGVjcnlwdCcpLnNlcSgpLm9iaihcbiAgICAgICAgdGhpcy5rZXkoJ2tkZScpLnNlcSgpLm9iaihcbiAgICAgICAgICB0aGlzLmtleSgnaWQnKS5vYmppZCgpLFxuICAgICAgICAgIHRoaXMua2V5KCdrZGVwYXJhbXMnKS5zZXEoKS5vYmooXG4gICAgICAgICAgICB0aGlzLmtleSgnc2FsdCcpLm9jdHN0cigpLFxuICAgICAgICAgICAgdGhpcy5rZXkoJ2l0ZXJzJykuaW50KClcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHRoaXMua2V5KCdjaXBoZXInKS5zZXEoKS5vYmooXG4gICAgICAgICAgdGhpcy5rZXkoJ2FsZ28nKS5vYmppZCgpLFxuICAgICAgICAgIHRoaXMua2V5KCdpdicpLm9jdHN0cigpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHRoaXMua2V5KCdzdWJqZWN0UHJpdmF0ZUtleScpLm9jdHN0cigpXG4gIClcbn0pXG5cbmV4cG9ydHMuRW5jcnlwdGVkUHJpdmF0ZUtleSA9IEVuY3J5cHRlZFByaXZhdGVLZXlJbmZvXG5cbnZhciBEU0FQcml2YXRlS2V5ID0gYXNuMS5kZWZpbmUoJ0RTQVByaXZhdGVLZXknLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuc2VxKCkub2JqKFxuICAgIHRoaXMua2V5KCd2ZXJzaW9uJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3AnKS5pbnQoKSxcbiAgICB0aGlzLmtleSgncScpLmludCgpLFxuICAgIHRoaXMua2V5KCdnJykuaW50KCksXG4gICAgdGhpcy5rZXkoJ3B1Yl9rZXknKS5pbnQoKSxcbiAgICB0aGlzLmtleSgncHJpdl9rZXknKS5pbnQoKVxuICApXG59KVxuZXhwb3J0cy5EU0FQcml2YXRlS2V5ID0gRFNBUHJpdmF0ZUtleVxuXG5leHBvcnRzLkRTQXBhcmFtID0gYXNuMS5kZWZpbmUoJ0RTQXBhcmFtJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLmludCgpXG59KVxuXG52YXIgRUNQcml2YXRlS2V5ID0gYXNuMS5kZWZpbmUoJ0VDUHJpdmF0ZUtleScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ3ZlcnNpb24nKS5pbnQoKSxcbiAgICB0aGlzLmtleSgncHJpdmF0ZUtleScpLm9jdHN0cigpLFxuICAgIHRoaXMua2V5KCdwYXJhbWV0ZXJzJykub3B0aW9uYWwoKS5leHBsaWNpdCgwKS51c2UoRUNQYXJhbWV0ZXJzKSxcbiAgICB0aGlzLmtleSgncHVibGljS2V5Jykub3B0aW9uYWwoKS5leHBsaWNpdCgxKS5iaXRzdHIoKVxuICApXG59KVxuZXhwb3J0cy5FQ1ByaXZhdGVLZXkgPSBFQ1ByaXZhdGVLZXlcblxudmFyIEVDUGFyYW1ldGVycyA9IGFzbjEuZGVmaW5lKCdFQ1BhcmFtZXRlcnMnLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuY2hvaWNlKHtcbiAgICBuYW1lZEN1cnZlOiB0aGlzLm9iamlkKClcbiAgfSlcbn0pXG5cbmV4cG9ydHMuc2lnbmF0dXJlID0gYXNuMS5kZWZpbmUoJ3NpZ25hdHVyZScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ3InKS5pbnQoKSxcbiAgICB0aGlzLmtleSgncycpLmludCgpXG4gIClcbn0pXG4iLCIvLyBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9SYW50YW5lbi9ub2RlLWR0bHMvYmxvYi8yNWE3ZGM4NjFiZGEzOGNmZWFjOTNhNzIzNTAwZWVhNGYwYWMyZTg2L0NlcnRpZmljYXRlLmpzXG4vLyB0aGFua3MgdG8gQFJhbnRhbmVuXG5cbid1c2Ugc3RyaWN0J1xuXG52YXIgYXNuID0gcmVxdWlyZSgnYXNuMS5qcycpXG5cbnZhciBUaW1lID0gYXNuLmRlZmluZSgnVGltZScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5jaG9pY2Uoe1xuICAgIHV0Y1RpbWU6IHRoaXMudXRjdGltZSgpLFxuICAgIGdlbmVyYWxUaW1lOiB0aGlzLmdlbnRpbWUoKVxuICB9KVxufSlcblxudmFyIEF0dHJpYnV0ZVR5cGVWYWx1ZSA9IGFzbi5kZWZpbmUoJ0F0dHJpYnV0ZVR5cGVWYWx1ZScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ3R5cGUnKS5vYmppZCgpLFxuICAgIHRoaXMua2V5KCd2YWx1ZScpLmFueSgpXG4gIClcbn0pXG5cbnZhciBBbGdvcml0aG1JZGVudGlmaWVyID0gYXNuLmRlZmluZSgnQWxnb3JpdGhtSWRlbnRpZmllcicsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ2FsZ29yaXRobScpLm9iamlkKCksXG4gICAgdGhpcy5rZXkoJ3BhcmFtZXRlcnMnKS5vcHRpb25hbCgpXG4gIClcbn0pXG5cbnZhciBTdWJqZWN0UHVibGljS2V5SW5mbyA9IGFzbi5kZWZpbmUoJ1N1YmplY3RQdWJsaWNLZXlJbmZvJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnNlcSgpLm9iaihcbiAgICB0aGlzLmtleSgnYWxnb3JpdGhtJykudXNlKEFsZ29yaXRobUlkZW50aWZpZXIpLFxuICAgIHRoaXMua2V5KCdzdWJqZWN0UHVibGljS2V5JykuYml0c3RyKClcbiAgKVxufSlcblxudmFyIFJlbGF0aXZlRGlzdGluZ3Vpc2hlZE5hbWUgPSBhc24uZGVmaW5lKCdSZWxhdGl2ZURpc3Rpbmd1aXNoZWROYW1lJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnNldG9mKEF0dHJpYnV0ZVR5cGVWYWx1ZSlcbn0pXG5cbnZhciBSRE5TZXF1ZW5jZSA9IGFzbi5kZWZpbmUoJ1JETlNlcXVlbmNlJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnNlcW9mKFJlbGF0aXZlRGlzdGluZ3Vpc2hlZE5hbWUpXG59KVxuXG52YXIgTmFtZSA9IGFzbi5kZWZpbmUoJ05hbWUnLCBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuY2hvaWNlKHtcbiAgICByZG5TZXF1ZW5jZTogdGhpcy51c2UoUkROU2VxdWVuY2UpXG4gIH0pXG59KVxuXG52YXIgVmFsaWRpdHkgPSBhc24uZGVmaW5lKCdWYWxpZGl0eScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ25vdEJlZm9yZScpLnVzZShUaW1lKSxcbiAgICB0aGlzLmtleSgnbm90QWZ0ZXInKS51c2UoVGltZSlcbiAgKVxufSlcblxudmFyIEV4dGVuc2lvbiA9IGFzbi5kZWZpbmUoJ0V4dGVuc2lvbicsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ2V4dG5JRCcpLm9iamlkKCksXG4gICAgdGhpcy5rZXkoJ2NyaXRpY2FsJykuYm9vbCgpLmRlZihmYWxzZSksXG4gICAgdGhpcy5rZXkoJ2V4dG5WYWx1ZScpLm9jdHN0cigpXG4gIClcbn0pXG5cbnZhciBUQlNDZXJ0aWZpY2F0ZSA9IGFzbi5kZWZpbmUoJ1RCU0NlcnRpZmljYXRlJywgZnVuY3Rpb24gKCkge1xuICB0aGlzLnNlcSgpLm9iaihcbiAgICB0aGlzLmtleSgndmVyc2lvbicpLmV4cGxpY2l0KDApLmludCgpLFxuICAgIHRoaXMua2V5KCdzZXJpYWxOdW1iZXInKS5pbnQoKSxcbiAgICB0aGlzLmtleSgnc2lnbmF0dXJlJykudXNlKEFsZ29yaXRobUlkZW50aWZpZXIpLFxuICAgIHRoaXMua2V5KCdpc3N1ZXInKS51c2UoTmFtZSksXG4gICAgdGhpcy5rZXkoJ3ZhbGlkaXR5JykudXNlKFZhbGlkaXR5KSxcbiAgICB0aGlzLmtleSgnc3ViamVjdCcpLnVzZShOYW1lKSxcbiAgICB0aGlzLmtleSgnc3ViamVjdFB1YmxpY0tleUluZm8nKS51c2UoU3ViamVjdFB1YmxpY0tleUluZm8pLFxuICAgIHRoaXMua2V5KCdpc3N1ZXJVbmlxdWVJRCcpLmltcGxpY2l0KDEpLmJpdHN0cigpLm9wdGlvbmFsKCksXG4gICAgdGhpcy5rZXkoJ3N1YmplY3RVbmlxdWVJRCcpLmltcGxpY2l0KDIpLmJpdHN0cigpLm9wdGlvbmFsKCksXG4gICAgdGhpcy5rZXkoJ2V4dGVuc2lvbnMnKS5leHBsaWNpdCgzKS5zZXFvZihFeHRlbnNpb24pLm9wdGlvbmFsKClcbiAgKVxufSlcblxudmFyIFg1MDlDZXJ0aWZpY2F0ZSA9IGFzbi5kZWZpbmUoJ1g1MDlDZXJ0aWZpY2F0ZScsIGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5zZXEoKS5vYmooXG4gICAgdGhpcy5rZXkoJ3Ric0NlcnRpZmljYXRlJykudXNlKFRCU0NlcnRpZmljYXRlKSxcbiAgICB0aGlzLmtleSgnc2lnbmF0dXJlQWxnb3JpdGhtJykudXNlKEFsZ29yaXRobUlkZW50aWZpZXIpLFxuICAgIHRoaXMua2V5KCdzaWduYXR1cmVWYWx1ZScpLmJpdHN0cigpXG4gIClcbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gWDUwOUNlcnRpZmljYXRlXG4iLCIvLyBhZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FwYXRpbC9wZW1zdHJpcFxudmFyIGZpbmRQcm9jID0gL1Byb2MtVHlwZTogNCxFTkNSWVBURURbXFxuXFxyXStERUstSW5mbzogQUVTLSgoPzoxMjgpfCg/OjE5Mil8KD86MjU2KSktQ0JDLChbMC05QS1IXSspW1xcblxccl0rKFswLTlBLXpcXG5cXHJcXCtcXC9cXD1dKylbXFxuXFxyXSsvbVxudmFyIHN0YXJ0UmVnZXggPSAvXi0tLS0tQkVHSU4gKCg/Oi4qIEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0vbVxudmFyIGZ1bGxSZWdleCA9IC9eLS0tLS1CRUdJTiAoKD86LiogS0VZKXxDRVJUSUZJQ0FURSktLS0tLShbMC05QS16XFxuXFxyXFwrXFwvXFw9XSspLS0tLS1FTkQgXFwxLS0tLS0kL21cbnZhciBldnAgPSByZXF1aXJlKCdldnBfYnl0ZXN0b2tleScpXG52YXIgY2lwaGVycyA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktYWVzJylcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9rZXksIHBhc3N3b3JkKSB7XG4gIHZhciBrZXkgPSBva2V5LnRvU3RyaW5nKClcbiAgdmFyIG1hdGNoID0ga2V5Lm1hdGNoKGZpbmRQcm9jKVxuICB2YXIgZGVjcnlwdGVkXG4gIGlmICghbWF0Y2gpIHtcbiAgICB2YXIgbWF0Y2gyID0ga2V5Lm1hdGNoKGZ1bGxSZWdleClcbiAgICBkZWNyeXB0ZWQgPSBuZXcgQnVmZmVyKG1hdGNoMlsyXS5yZXBsYWNlKC9bXFxyXFxuXS9nLCAnJyksICdiYXNlNjQnKVxuICB9IGVsc2Uge1xuICAgIHZhciBzdWl0ZSA9ICdhZXMnICsgbWF0Y2hbMV1cbiAgICB2YXIgaXYgPSBuZXcgQnVmZmVyKG1hdGNoWzJdLCAnaGV4JylcbiAgICB2YXIgY2lwaGVyVGV4dCA9IG5ldyBCdWZmZXIobWF0Y2hbM10ucmVwbGFjZSgvW1xcclxcbl0vZywgJycpLCAnYmFzZTY0JylcbiAgICB2YXIgY2lwaGVyS2V5ID0gZXZwKHBhc3N3b3JkLCBpdi5zbGljZSgwLCA4KSwgcGFyc2VJbnQobWF0Y2hbMV0sIDEwKSkua2V5XG4gICAgdmFyIG91dCA9IFtdXG4gICAgdmFyIGNpcGhlciA9IGNpcGhlcnMuY3JlYXRlRGVjaXBoZXJpdihzdWl0ZSwgY2lwaGVyS2V5LCBpdilcbiAgICBvdXQucHVzaChjaXBoZXIudXBkYXRlKGNpcGhlclRleHQpKVxuICAgIG91dC5wdXNoKGNpcGhlci5maW5hbCgpKVxuICAgIGRlY3J5cHRlZCA9IEJ1ZmZlci5jb25jYXQob3V0KVxuICB9XG4gIHZhciB0YWcgPSBrZXkubWF0Y2goc3RhcnRSZWdleClbMV1cbiAgcmV0dXJuIHtcbiAgICB0YWc6IHRhZyxcbiAgICBkYXRhOiBkZWNyeXB0ZWRcbiAgfVxufVxuIiwidmFyIGFzbjEgPSByZXF1aXJlKCcuL2FzbjEnKVxudmFyIGFlc2lkID0gcmVxdWlyZSgnLi9hZXNpZC5qc29uJylcbnZhciBmaXhQcm9jID0gcmVxdWlyZSgnLi9maXhQcm9jJylcbnZhciBjaXBoZXJzID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1hZXMnKVxudmFyIGNvbXBhdCA9IHJlcXVpcmUoJ3Bia2RmMicpXG5tb2R1bGUuZXhwb3J0cyA9IHBhcnNlS2V5c1xuXG5mdW5jdGlvbiBwYXJzZUtleXMgKGJ1ZmZlcikge1xuICB2YXIgcGFzc3dvcmRcbiAgaWYgKHR5cGVvZiBidWZmZXIgPT09ICdvYmplY3QnICYmICFCdWZmZXIuaXNCdWZmZXIoYnVmZmVyKSkge1xuICAgIHBhc3N3b3JkID0gYnVmZmVyLnBhc3NwaHJhc2VcbiAgICBidWZmZXIgPSBidWZmZXIua2V5XG4gIH1cbiAgaWYgKHR5cGVvZiBidWZmZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgYnVmZmVyID0gbmV3IEJ1ZmZlcihidWZmZXIpXG4gIH1cblxuICB2YXIgc3RyaXBwZWQgPSBmaXhQcm9jKGJ1ZmZlciwgcGFzc3dvcmQpXG5cbiAgdmFyIHR5cGUgPSBzdHJpcHBlZC50YWdcbiAgdmFyIGRhdGEgPSBzdHJpcHBlZC5kYXRhXG4gIHZhciBzdWJ0eXBlLCBuZGF0YVxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdDRVJUSUZJQ0FURSc6XG4gICAgICBuZGF0YSA9IGFzbjEuY2VydGlmaWNhdGUuZGVjb2RlKGRhdGEsICdkZXInKS50YnNDZXJ0aWZpY2F0ZS5zdWJqZWN0UHVibGljS2V5SW5mb1xuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgIGNhc2UgJ1BVQkxJQyBLRVknOlxuICAgICAgaWYgKCFuZGF0YSkge1xuICAgICAgICBuZGF0YSA9IGFzbjEuUHVibGljS2V5LmRlY29kZShkYXRhLCAnZGVyJylcbiAgICAgIH1cbiAgICAgIHN1YnR5cGUgPSBuZGF0YS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oJy4nKVxuICAgICAgc3dpdGNoIChzdWJ0eXBlKSB7XG4gICAgICAgIGNhc2UgJzEuMi44NDAuMTEzNTQ5LjEuMS4xJzpcbiAgICAgICAgICByZXR1cm4gYXNuMS5SU0FQdWJsaWNLZXkuZGVjb2RlKG5kYXRhLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwgJ2RlcicpXG4gICAgICAgIGNhc2UgJzEuMi44NDAuMTAwNDUuMi4xJzpcbiAgICAgICAgICBuZGF0YS5zdWJqZWN0UHJpdmF0ZUtleSA9IG5kYXRhLnN1YmplY3RQdWJsaWNLZXlcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2VjJyxcbiAgICAgICAgICAgIGRhdGE6IG5kYXRhXG4gICAgICAgICAgfVxuICAgICAgICBjYXNlICcxLjIuODQwLjEwMDQwLjQuMSc6XG4gICAgICAgICAgbmRhdGEuYWxnb3JpdGhtLnBhcmFtcy5wdWJfa2V5ID0gYXNuMS5EU0FwYXJhbS5kZWNvZGUobmRhdGEuc3ViamVjdFB1YmxpY0tleS5kYXRhLCAnZGVyJylcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ2RzYScsXG4gICAgICAgICAgICBkYXRhOiBuZGF0YS5hbGdvcml0aG0ucGFyYW1zXG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24ga2V5IGlkICcgKyBzdWJ0eXBlKVxuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGtleSB0eXBlICcgKyB0eXBlKVxuICAgIGNhc2UgJ0VOQ1JZUFRFRCBQUklWQVRFIEtFWSc6XG4gICAgICBkYXRhID0gYXNuMS5FbmNyeXB0ZWRQcml2YXRlS2V5LmRlY29kZShkYXRhLCAnZGVyJylcbiAgICAgIGRhdGEgPSBkZWNyeXB0KGRhdGEsIHBhc3N3b3JkKVxuICAgICAgLy8gZmFsbHMgdGhyb3VnaFxuICAgIGNhc2UgJ1BSSVZBVEUgS0VZJzpcbiAgICAgIG5kYXRhID0gYXNuMS5Qcml2YXRlS2V5LmRlY29kZShkYXRhLCAnZGVyJylcbiAgICAgIHN1YnR5cGUgPSBuZGF0YS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oJy4nKVxuICAgICAgc3dpdGNoIChzdWJ0eXBlKSB7XG4gICAgICAgIGNhc2UgJzEuMi44NDAuMTEzNTQ5LjEuMS4xJzpcbiAgICAgICAgICByZXR1cm4gYXNuMS5SU0FQcml2YXRlS2V5LmRlY29kZShuZGF0YS5zdWJqZWN0UHJpdmF0ZUtleSwgJ2RlcicpXG4gICAgICAgIGNhc2UgJzEuMi44NDAuMTAwNDUuMi4xJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY3VydmU6IG5kYXRhLmFsZ29yaXRobS5jdXJ2ZSxcbiAgICAgICAgICAgIHByaXZhdGVLZXk6IGFzbjEuRUNQcml2YXRlS2V5LmRlY29kZShuZGF0YS5zdWJqZWN0UHJpdmF0ZUtleSwgJ2RlcicpLnByaXZhdGVLZXlcbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJzEuMi44NDAuMTAwNDAuNC4xJzpcbiAgICAgICAgICBuZGF0YS5hbGdvcml0aG0ucGFyYW1zLnByaXZfa2V5ID0gYXNuMS5EU0FwYXJhbS5kZWNvZGUobmRhdGEuc3ViamVjdFByaXZhdGVLZXksICdkZXInKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiAnZHNhJyxcbiAgICAgICAgICAgIHBhcmFtczogbmRhdGEuYWxnb3JpdGhtLnBhcmFtc1xuICAgICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGtleSBpZCAnICsgc3VidHlwZSlcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBrZXkgdHlwZSAnICsgdHlwZSlcbiAgICBjYXNlICdSU0EgUFVCTElDIEtFWSc6XG4gICAgICByZXR1cm4gYXNuMS5SU0FQdWJsaWNLZXkuZGVjb2RlKGRhdGEsICdkZXInKVxuICAgIGNhc2UgJ1JTQSBQUklWQVRFIEtFWSc6XG4gICAgICByZXR1cm4gYXNuMS5SU0FQcml2YXRlS2V5LmRlY29kZShkYXRhLCAnZGVyJylcbiAgICBjYXNlICdEU0EgUFJJVkFURSBLRVknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2RzYScsXG4gICAgICAgIHBhcmFtczogYXNuMS5EU0FQcml2YXRlS2V5LmRlY29kZShkYXRhLCAnZGVyJylcbiAgICAgIH1cbiAgICBjYXNlICdFQyBQUklWQVRFIEtFWSc6XG4gICAgICBkYXRhID0gYXNuMS5FQ1ByaXZhdGVLZXkuZGVjb2RlKGRhdGEsICdkZXInKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY3VydmU6IGRhdGEucGFyYW1ldGVycy52YWx1ZSxcbiAgICAgICAgcHJpdmF0ZUtleTogZGF0YS5wcml2YXRlS2V5XG4gICAgICB9XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGtleSB0eXBlICcgKyB0eXBlKVxuICB9XG59XG5wYXJzZUtleXMuc2lnbmF0dXJlID0gYXNuMS5zaWduYXR1cmVcbmZ1bmN0aW9uIGRlY3J5cHQgKGRhdGEsIHBhc3N3b3JkKSB7XG4gIHZhciBzYWx0ID0gZGF0YS5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLnNhbHRcbiAgdmFyIGl0ZXJzID0gcGFyc2VJbnQoZGF0YS5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLml0ZXJzLnRvU3RyaW5nKCksIDEwKVxuICB2YXIgYWxnbyA9IGFlc2lkW2RhdGEuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbignLicpXVxuICB2YXIgaXYgPSBkYXRhLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5pdlxuICB2YXIgY2lwaGVyVGV4dCA9IGRhdGEuc3ViamVjdFByaXZhdGVLZXlcbiAgdmFyIGtleWxlbiA9IHBhcnNlSW50KGFsZ28uc3BsaXQoJy0nKVsxXSwgMTApIC8gOFxuICB2YXIga2V5ID0gY29tcGF0LnBia2RmMlN5bmMocGFzc3dvcmQsIHNhbHQsIGl0ZXJzLCBrZXlsZW4pXG4gIHZhciBjaXBoZXIgPSBjaXBoZXJzLmNyZWF0ZURlY2lwaGVyaXYoYWxnbywga2V5LCBpdilcbiAgdmFyIG91dCA9IFtdXG4gIG91dC5wdXNoKGNpcGhlci51cGRhdGUoY2lwaGVyVGV4dCkpXG4gIG91dC5wdXNoKGNpcGhlci5maW5hbCgpKVxuICByZXR1cm4gQnVmZmVyLmNvbmNhdChvdXQpXG59XG4iLCJleHBvcnRzLnBia2RmMiA9IHJlcXVpcmUoJy4vbGliL2FzeW5jJylcbmV4cG9ydHMucGJrZGYyU3luYyA9IHJlcXVpcmUoJy4vbGliL3N5bmMnKVxuIiwidmFyIGNoZWNrUGFyYW1ldGVycyA9IHJlcXVpcmUoJy4vcHJlY29uZGl0aW9uJylcbnZhciBkZWZhdWx0RW5jb2RpbmcgPSByZXF1aXJlKCcuL2RlZmF1bHQtZW5jb2RpbmcnKVxudmFyIHN5bmMgPSByZXF1aXJlKCcuL3N5bmMnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBaRVJPX0JVRlxudmFyIHN1YnRsZSA9IGdsb2JhbC5jcnlwdG8gJiYgZ2xvYmFsLmNyeXB0by5zdWJ0bGVcbnZhciB0b0Jyb3dzZXIgPSB7XG4gICdzaGEnOiAnU0hBLTEnLFxuICAnc2hhLTEnOiAnU0hBLTEnLFxuICAnc2hhMSc6ICdTSEEtMScsXG4gICdzaGEyNTYnOiAnU0hBLTI1NicsXG4gICdzaGEtMjU2JzogJ1NIQS0yNTYnLFxuICAnc2hhMzg0JzogJ1NIQS0zODQnLFxuICAnc2hhLTM4NCc6ICdTSEEtMzg0JyxcbiAgJ3NoYS01MTInOiAnU0hBLTUxMicsXG4gICdzaGE1MTInOiAnU0hBLTUxMidcbn1cbnZhciBjaGVja3MgPSBbXVxuZnVuY3Rpb24gY2hlY2tOYXRpdmUgKGFsZ28pIHtcbiAgaWYgKGdsb2JhbC5wcm9jZXNzICYmICFnbG9iYWwucHJvY2Vzcy5icm93c2VyKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSlcbiAgfVxuICBpZiAoIXN1YnRsZSB8fCAhc3VidGxlLmltcG9ydEtleSB8fCAhc3VidGxlLmRlcml2ZUJpdHMpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKVxuICB9XG4gIGlmIChjaGVja3NbYWxnb10gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBjaGVja3NbYWxnb11cbiAgfVxuICBaRVJPX0JVRiA9IFpFUk9fQlVGIHx8IEJ1ZmZlci5hbGxvYyg4KVxuICB2YXIgcHJvbSA9IGJyb3dzZXJQYmtkZjIoWkVST19CVUYsIFpFUk9fQlVGLCAxMCwgMTI4LCBhbGdvKVxuICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSlcbiAgY2hlY2tzW2FsZ29dID0gcHJvbVxuICByZXR1cm4gcHJvbVxufVxuXG5mdW5jdGlvbiBicm93c2VyUGJrZGYyIChwYXNzd29yZCwgc2FsdCwgaXRlcmF0aW9ucywgbGVuZ3RoLCBhbGdvKSB7XG4gIHJldHVybiBzdWJ0bGUuaW1wb3J0S2V5KFxuICAgICdyYXcnLCBwYXNzd29yZCwge25hbWU6ICdQQktERjInfSwgZmFsc2UsIFsnZGVyaXZlQml0cyddXG4gICkudGhlbihmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmV0dXJuIHN1YnRsZS5kZXJpdmVCaXRzKHtcbiAgICAgIG5hbWU6ICdQQktERjInLFxuICAgICAgc2FsdDogc2FsdCxcbiAgICAgIGl0ZXJhdGlvbnM6IGl0ZXJhdGlvbnMsXG4gICAgICBoYXNoOiB7XG4gICAgICAgIG5hbWU6IGFsZ29cbiAgICAgIH1cbiAgICB9LCBrZXksIGxlbmd0aCA8PCAzKVxuICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20ocmVzKVxuICB9KVxufVxuXG5mdW5jdGlvbiByZXNvbHZlUHJvbWlzZSAocHJvbWlzZSwgY2FsbGJhY2spIHtcbiAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uIChvdXQpIHtcbiAgICBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbGxiYWNrKG51bGwsIG91dClcbiAgICB9KVxuICB9LCBmdW5jdGlvbiAoZSkge1xuICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgY2FsbGJhY2soZSlcbiAgICB9KVxuICB9KVxufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGtleWxlbiwgZGlnZXN0LCBjYWxsYmFjaykge1xuICBpZiAodHlwZW9mIGRpZ2VzdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNhbGxiYWNrID0gZGlnZXN0XG4gICAgZGlnZXN0ID0gdW5kZWZpbmVkXG4gIH1cblxuICBkaWdlc3QgPSBkaWdlc3QgfHwgJ3NoYTEnXG4gIHZhciBhbGdvID0gdG9Ccm93c2VyW2RpZ2VzdC50b0xvd2VyQ2FzZSgpXVxuXG4gIGlmICghYWxnbyB8fCB0eXBlb2YgZ2xvYmFsLlByb21pc2UgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgb3V0XG4gICAgICB0cnkge1xuICAgICAgICBvdXQgPSBzeW5jKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBrZXlsZW4sIGRpZ2VzdClcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGUpXG4gICAgICB9XG4gICAgICBjYWxsYmFjayhudWxsLCBvdXQpXG4gICAgfSlcbiAgfVxuXG4gIGNoZWNrUGFyYW1ldGVycyhwYXNzd29yZCwgc2FsdCwgaXRlcmF0aW9ucywga2V5bGVuKVxuICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB0aHJvdyBuZXcgRXJyb3IoJ05vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIHBia2RmMicpXG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHBhc3N3b3JkKSkgcGFzc3dvcmQgPSBCdWZmZXIuZnJvbShwYXNzd29yZCwgZGVmYXVsdEVuY29kaW5nKVxuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihzYWx0KSkgc2FsdCA9IEJ1ZmZlci5mcm9tKHNhbHQsIGRlZmF1bHRFbmNvZGluZylcblxuICByZXNvbHZlUHJvbWlzZShjaGVja05hdGl2ZShhbGdvKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7XG4gICAgaWYgKHJlc3ApIHJldHVybiBicm93c2VyUGJrZGYyKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBrZXlsZW4sIGFsZ28pXG5cbiAgICByZXR1cm4gc3luYyhwYXNzd29yZCwgc2FsdCwgaXRlcmF0aW9ucywga2V5bGVuLCBkaWdlc3QpXG4gIH0pLCBjYWxsYmFjaylcbn1cbiIsInZhciBkZWZhdWx0RW5jb2Rpbmdcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5pZiAocHJvY2Vzcy5icm93c2VyKSB7XG4gIGRlZmF1bHRFbmNvZGluZyA9ICd1dGYtOCdcbn0gZWxzZSB7XG4gIHZhciBwVmVyc2lvbk1ham9yID0gcGFyc2VJbnQocHJvY2Vzcy52ZXJzaW9uLnNwbGl0KCcuJylbMF0uc2xpY2UoMSksIDEwKVxuXG4gIGRlZmF1bHRFbmNvZGluZyA9IHBWZXJzaW9uTWFqb3IgPj0gNiA/ICd1dGYtOCcgOiAnYmluYXJ5J1xufVxubW9kdWxlLmV4cG9ydHMgPSBkZWZhdWx0RW5jb2RpbmdcbiIsInZhciBNQVhfQUxMT0MgPSBNYXRoLnBvdygyLCAzMCkgLSAxIC8vIGRlZmF1bHQgaW4gaW9qc1xuXG5mdW5jdGlvbiBjaGVja0J1ZmZlciAoYnVmLCBuYW1lKSB7XG4gIGlmICh0eXBlb2YgYnVmICE9PSAnc3RyaW5nJyAmJiAhQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKG5hbWUgKyAnIG11c3QgYmUgYSBidWZmZXIgb3Igc3RyaW5nJylcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChwYXNzd29yZCwgc2FsdCwgaXRlcmF0aW9ucywga2V5bGVuKSB7XG4gIGNoZWNrQnVmZmVyKHBhc3N3b3JkLCAnUGFzc3dvcmQnKVxuICBjaGVja0J1ZmZlcihzYWx0LCAnU2FsdCcpXG5cbiAgaWYgKHR5cGVvZiBpdGVyYXRpb25zICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0l0ZXJhdGlvbnMgbm90IGEgbnVtYmVyJylcbiAgfVxuXG4gIGlmIChpdGVyYXRpb25zIDwgMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0JhZCBpdGVyYXRpb25zJylcbiAgfVxuXG4gIGlmICh0eXBlb2Yga2V5bGVuICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0tleSBsZW5ndGggbm90IGEgbnVtYmVyJylcbiAgfVxuXG4gIGlmIChrZXlsZW4gPCAwIHx8IGtleWxlbiA+IE1BWF9BTExPQyB8fCBrZXlsZW4gIT09IGtleWxlbikgeyAvKiBlc2xpbnQgbm8tc2VsZi1jb21wYXJlOiAwICovXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQmFkIGtleSBsZW5ndGgnKVxuICB9XG59XG4iLCJ2YXIgbWQ1ID0gcmVxdWlyZSgnY3JlYXRlLWhhc2gvbWQ1JylcbnZhciBybWQxNjAgPSByZXF1aXJlKCdyaXBlbWQxNjAnKVxudmFyIHNoYSA9IHJlcXVpcmUoJ3NoYS5qcycpXG5cbnZhciBjaGVja1BhcmFtZXRlcnMgPSByZXF1aXJlKCcuL3ByZWNvbmRpdGlvbicpXG52YXIgZGVmYXVsdEVuY29kaW5nID0gcmVxdWlyZSgnLi9kZWZhdWx0LWVuY29kaW5nJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxudmFyIFpFUk9TID0gQnVmZmVyLmFsbG9jKDEyOClcbnZhciBzaXplcyA9IHtcbiAgbWQ1OiAxNixcbiAgc2hhMTogMjAsXG4gIHNoYTIyNDogMjgsXG4gIHNoYTI1NjogMzIsXG4gIHNoYTM4NDogNDgsXG4gIHNoYTUxMjogNjQsXG4gIHJtZDE2MDogMjAsXG4gIHJpcGVtZDE2MDogMjBcbn1cblxuZnVuY3Rpb24gSG1hYyAoYWxnLCBrZXksIHNhbHRMZW4pIHtcbiAgdmFyIGhhc2ggPSBnZXREaWdlc3QoYWxnKVxuICB2YXIgYmxvY2tzaXplID0gKGFsZyA9PT0gJ3NoYTUxMicgfHwgYWxnID09PSAnc2hhMzg0JykgPyAxMjggOiA2NFxuXG4gIGlmIChrZXkubGVuZ3RoID4gYmxvY2tzaXplKSB7XG4gICAga2V5ID0gaGFzaChrZXkpXG4gIH0gZWxzZSBpZiAoa2V5Lmxlbmd0aCA8IGJsb2Nrc2l6ZSkge1xuICAgIGtleSA9IEJ1ZmZlci5jb25jYXQoW2tleSwgWkVST1NdLCBibG9ja3NpemUpXG4gIH1cblxuICB2YXIgaXBhZCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShibG9ja3NpemUgKyBzaXplc1thbGddKVxuICB2YXIgb3BhZCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShibG9ja3NpemUgKyBzaXplc1thbGddKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGJsb2Nrc2l6ZTsgaSsrKSB7XG4gICAgaXBhZFtpXSA9IGtleVtpXSBeIDB4MzZcbiAgICBvcGFkW2ldID0ga2V5W2ldIF4gMHg1Q1xuICB9XG5cbiAgdmFyIGlwYWQxID0gQnVmZmVyLmFsbG9jVW5zYWZlKGJsb2Nrc2l6ZSArIHNhbHRMZW4gKyA0KVxuICBpcGFkLmNvcHkoaXBhZDEsIDAsIDAsIGJsb2Nrc2l6ZSlcbiAgdGhpcy5pcGFkMSA9IGlwYWQxXG4gIHRoaXMuaXBhZDIgPSBpcGFkXG4gIHRoaXMub3BhZCA9IG9wYWRcbiAgdGhpcy5hbGcgPSBhbGdcbiAgdGhpcy5ibG9ja3NpemUgPSBibG9ja3NpemVcbiAgdGhpcy5oYXNoID0gaGFzaFxuICB0aGlzLnNpemUgPSBzaXplc1thbGddXG59XG5cbkhtYWMucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uIChkYXRhLCBpcGFkKSB7XG4gIGRhdGEuY29weShpcGFkLCB0aGlzLmJsb2Nrc2l6ZSlcbiAgdmFyIGggPSB0aGlzLmhhc2goaXBhZClcbiAgaC5jb3B5KHRoaXMub3BhZCwgdGhpcy5ibG9ja3NpemUpXG4gIHJldHVybiB0aGlzLmhhc2godGhpcy5vcGFkKVxufVxuXG5mdW5jdGlvbiBnZXREaWdlc3QgKGFsZykge1xuICBmdW5jdGlvbiBzaGFGdW5jIChkYXRhKSB7XG4gICAgcmV0dXJuIHNoYShhbGcpLnVwZGF0ZShkYXRhKS5kaWdlc3QoKVxuICB9XG5cbiAgaWYgKGFsZyA9PT0gJ3JtZDE2MCcgfHwgYWxnID09PSAncmlwZW1kMTYwJykgcmV0dXJuIHJtZDE2MFxuICBpZiAoYWxnID09PSAnbWQ1JykgcmV0dXJuIG1kNVxuICByZXR1cm4gc2hhRnVuY1xufVxuXG5mdW5jdGlvbiBwYmtkZjIgKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBrZXlsZW4sIGRpZ2VzdCkge1xuICBjaGVja1BhcmFtZXRlcnMocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGtleWxlbilcblxuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwYXNzd29yZCkpIHBhc3N3b3JkID0gQnVmZmVyLmZyb20ocGFzc3dvcmQsIGRlZmF1bHRFbmNvZGluZylcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoc2FsdCkpIHNhbHQgPSBCdWZmZXIuZnJvbShzYWx0LCBkZWZhdWx0RW5jb2RpbmcpXG5cbiAgZGlnZXN0ID0gZGlnZXN0IHx8ICdzaGExJ1xuXG4gIHZhciBobWFjID0gbmV3IEhtYWMoZGlnZXN0LCBwYXNzd29yZCwgc2FsdC5sZW5ndGgpXG5cbiAgdmFyIERLID0gQnVmZmVyLmFsbG9jVW5zYWZlKGtleWxlbilcbiAgdmFyIGJsb2NrMSA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShzYWx0Lmxlbmd0aCArIDQpXG4gIHNhbHQuY29weShibG9jazEsIDAsIDAsIHNhbHQubGVuZ3RoKVxuXG4gIHZhciBkZXN0UG9zID0gMFxuICB2YXIgaExlbiA9IHNpemVzW2RpZ2VzdF1cbiAgdmFyIGwgPSBNYXRoLmNlaWwoa2V5bGVuIC8gaExlbilcblxuICBmb3IgKHZhciBpID0gMTsgaSA8PSBsOyBpKyspIHtcbiAgICBibG9jazEud3JpdGVVSW50MzJCRShpLCBzYWx0Lmxlbmd0aClcblxuICAgIHZhciBUID0gaG1hYy5ydW4oYmxvY2sxLCBobWFjLmlwYWQxKVxuICAgIHZhciBVID0gVFxuXG4gICAgZm9yICh2YXIgaiA9IDE7IGogPCBpdGVyYXRpb25zOyBqKyspIHtcbiAgICAgIFUgPSBobWFjLnJ1bihVLCBobWFjLmlwYWQyKVxuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBoTGVuOyBrKyspIFRba10gXj0gVVtrXVxuICAgIH1cblxuICAgIFQuY29weShESywgZGVzdFBvcylcbiAgICBkZXN0UG9zICs9IGhMZW5cbiAgfVxuXG4gIHJldHVybiBES1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBia2RmMlxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAoIXByb2Nlc3MudmVyc2lvbiB8fFxuICAgIHByb2Nlc3MudmVyc2lvbi5pbmRleE9mKCd2MC4nKSA9PT0gMCB8fFxuICAgIHByb2Nlc3MudmVyc2lvbi5pbmRleE9mKCd2MS4nKSA9PT0gMCAmJiBwcm9jZXNzLnZlcnNpb24uaW5kZXhPZigndjEuOC4nKSAhPT0gMCkge1xuICBtb2R1bGUuZXhwb3J0cyA9IHsgbmV4dFRpY2s6IG5leHRUaWNrIH07XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHByb2Nlc3Ncbn1cblxuZnVuY3Rpb24gbmV4dFRpY2soZm4sIGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiY2FsbGJhY2tcIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgfVxuICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIGFyZ3MsIGk7XG4gIHN3aXRjaCAobGVuKSB7XG4gIGNhc2UgMDpcbiAgY2FzZSAxOlxuICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZuKTtcbiAgY2FzZSAyOlxuICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uIGFmdGVyVGlja09uZSgpIHtcbiAgICAgIGZuLmNhbGwobnVsbCwgYXJnMSk7XG4gICAgfSk7XG4gIGNhc2UgMzpcbiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiBhZnRlclRpY2tUd28oKSB7XG4gICAgICBmbi5jYWxsKG51bGwsIGFyZzEsIGFyZzIpO1xuICAgIH0pO1xuICBjYXNlIDQ6XG4gICAgcmV0dXJuIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gYWZ0ZXJUaWNrVGhyZWUoKSB7XG4gICAgICBmbi5jYWxsKG51bGwsIGFyZzEsIGFyZzIsIGFyZzMpO1xuICAgIH0pO1xuICBkZWZhdWx0OlxuICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuIC0gMSk7XG4gICAgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCBhcmdzLmxlbmd0aCkge1xuICAgICAgYXJnc1tpKytdID0gYXJndW1lbnRzW2ldO1xuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiBhZnRlclRpY2soKSB7XG4gICAgICBmbi5hcHBseShudWxsLCBhcmdzKTtcbiAgICB9KTtcbiAgfVxufVxuXG4iLCJleHBvcnRzLnB1YmxpY0VuY3J5cHQgPSByZXF1aXJlKCcuL3B1YmxpY0VuY3J5cHQnKTtcbmV4cG9ydHMucHJpdmF0ZURlY3J5cHQgPSByZXF1aXJlKCcuL3ByaXZhdGVEZWNyeXB0Jyk7XG5cbmV4cG9ydHMucHJpdmF0ZUVuY3J5cHQgPSBmdW5jdGlvbiBwcml2YXRlRW5jcnlwdChrZXksIGJ1Zikge1xuICByZXR1cm4gZXhwb3J0cy5wdWJsaWNFbmNyeXB0KGtleSwgYnVmLCB0cnVlKTtcbn07XG5cbmV4cG9ydHMucHVibGljRGVjcnlwdCA9IGZ1bmN0aW9uIHB1YmxpY0RlY3J5cHQoa2V5LCBidWYpIHtcbiAgcmV0dXJuIGV4cG9ydHMucHJpdmF0ZURlY3J5cHQoa2V5LCBidWYsIHRydWUpO1xufTsiLCJ2YXIgY3JlYXRlSGFzaCA9IHJlcXVpcmUoJ2NyZWF0ZS1oYXNoJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChzZWVkLCBsZW4pIHtcbiAgdmFyIHQgPSBuZXcgQnVmZmVyKCcnKTtcbiAgdmFyICBpID0gMCwgYztcbiAgd2hpbGUgKHQubGVuZ3RoIDwgbGVuKSB7XG4gICAgYyA9IGkyb3BzKGkrKyk7XG4gICAgdCA9IEJ1ZmZlci5jb25jYXQoW3QsIGNyZWF0ZUhhc2goJ3NoYTEnKS51cGRhdGUoc2VlZCkudXBkYXRlKGMpLmRpZ2VzdCgpXSk7XG4gIH1cbiAgcmV0dXJuIHQuc2xpY2UoMCwgbGVuKTtcbn07XG5cbmZ1bmN0aW9uIGkyb3BzKGMpIHtcbiAgdmFyIG91dCA9IG5ldyBCdWZmZXIoNCk7XG4gIG91dC53cml0ZVVJbnQzMkJFKGMsMCk7XG4gIHJldHVybiBvdXQ7XG59IiwidmFyIHBhcnNlS2V5cyA9IHJlcXVpcmUoJ3BhcnNlLWFzbjEnKTtcbnZhciBtZ2YgPSByZXF1aXJlKCcuL21nZicpO1xudmFyIHhvciA9IHJlcXVpcmUoJy4veG9yJyk7XG52YXIgYm4gPSByZXF1aXJlKCdibi5qcycpO1xudmFyIGNydCA9IHJlcXVpcmUoJ2Jyb3dzZXJpZnktcnNhJyk7XG52YXIgY3JlYXRlSGFzaCA9IHJlcXVpcmUoJ2NyZWF0ZS1oYXNoJyk7XG52YXIgd2l0aFB1YmxpYyA9IHJlcXVpcmUoJy4vd2l0aFB1YmxpYycpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwcml2YXRlRGVjcnlwdChwcml2YXRlX2tleSwgZW5jLCByZXZlcnNlKSB7XG4gIHZhciBwYWRkaW5nO1xuICBpZiAocHJpdmF0ZV9rZXkucGFkZGluZykge1xuICAgIHBhZGRpbmcgPSBwcml2YXRlX2tleS5wYWRkaW5nO1xuICB9IGVsc2UgaWYgKHJldmVyc2UpIHtcbiAgICBwYWRkaW5nID0gMTtcbiAgfSBlbHNlIHtcbiAgICBwYWRkaW5nID0gNDtcbiAgfVxuICBcbiAgdmFyIGtleSA9IHBhcnNlS2V5cyhwcml2YXRlX2tleSk7XG4gIHZhciBrID0ga2V5Lm1vZHVsdXMuYnl0ZUxlbmd0aCgpO1xuICBpZiAoZW5jLmxlbmd0aCA+IGsgfHwgbmV3IGJuKGVuYykuY21wKGtleS5tb2R1bHVzKSA+PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkZWNyeXB0aW9uIGVycm9yJyk7XG4gIH1cbiAgdmFyIG1zZztcbiAgaWYgKHJldmVyc2UpIHtcbiAgICBtc2cgPSB3aXRoUHVibGljKG5ldyBibihlbmMpLCBrZXkpO1xuICB9IGVsc2Uge1xuICAgIG1zZyA9IGNydChlbmMsIGtleSk7XG4gIH1cbiAgdmFyIHpCdWZmZXIgPSBuZXcgQnVmZmVyKGsgLSBtc2cubGVuZ3RoKTtcbiAgekJ1ZmZlci5maWxsKDApO1xuICBtc2cgPSBCdWZmZXIuY29uY2F0KFt6QnVmZmVyLCBtc2ddLCBrKTtcbiAgaWYgKHBhZGRpbmcgPT09IDQpIHtcbiAgICByZXR1cm4gb2FlcChrZXksIG1zZyk7XG4gIH0gZWxzZSBpZiAocGFkZGluZyA9PT0gMSkge1xuICAgIHJldHVybiBwa2NzMShrZXksIG1zZywgcmV2ZXJzZSk7XG4gIH0gZWxzZSBpZiAocGFkZGluZyA9PT0gMykge1xuICAgIHJldHVybiBtc2c7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIHBhZGRpbmcnKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gb2FlcChrZXksIG1zZyl7XG4gIHZhciBuID0ga2V5Lm1vZHVsdXM7XG4gIHZhciBrID0ga2V5Lm1vZHVsdXMuYnl0ZUxlbmd0aCgpO1xuICB2YXIgbUxlbiA9IG1zZy5sZW5ndGg7XG4gIHZhciBpSGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTEnKS51cGRhdGUobmV3IEJ1ZmZlcignJykpLmRpZ2VzdCgpO1xuICB2YXIgaExlbiA9IGlIYXNoLmxlbmd0aDtcbiAgdmFyIGhMZW4yID0gMiAqIGhMZW47XG4gIGlmIChtc2dbMF0gIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlY3J5cHRpb24gZXJyb3InKTtcbiAgfVxuICB2YXIgbWFza2VkU2VlZCA9IG1zZy5zbGljZSgxLCBoTGVuICsgMSk7XG4gIHZhciBtYXNrZWREYiA9ICBtc2cuc2xpY2UoaExlbiArIDEpO1xuICB2YXIgc2VlZCA9IHhvcihtYXNrZWRTZWVkLCBtZ2YobWFza2VkRGIsIGhMZW4pKTtcbiAgdmFyIGRiID0geG9yKG1hc2tlZERiLCBtZ2Yoc2VlZCwgayAtIGhMZW4gLSAxKSk7XG4gIGlmIChjb21wYXJlKGlIYXNoLCBkYi5zbGljZSgwLCBoTGVuKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlY3J5cHRpb24gZXJyb3InKTtcbiAgfVxuICB2YXIgaSA9IGhMZW47XG4gIHdoaWxlIChkYltpXSA9PT0gMCkge1xuICAgIGkrKztcbiAgfVxuICBpZiAoZGJbaSsrXSAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZGVjcnlwdGlvbiBlcnJvcicpO1xuICB9XG4gIHJldHVybiBkYi5zbGljZShpKTtcbn1cblxuZnVuY3Rpb24gcGtjczEoa2V5LCBtc2csIHJldmVyc2Upe1xuICB2YXIgcDEgPSBtc2cuc2xpY2UoMCwgMik7XG4gIHZhciBpID0gMjtcbiAgdmFyIHN0YXR1cyA9IDA7XG4gIHdoaWxlIChtc2dbaSsrXSAhPT0gMCkge1xuICAgIGlmIChpID49IG1zZy5sZW5ndGgpIHtcbiAgICAgIHN0YXR1cysrO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHZhciBwcyA9IG1zZy5zbGljZSgyLCBpIC0gMSk7XG4gIHZhciBwMiA9IG1zZy5zbGljZShpIC0gMSwgaSk7XG5cbiAgaWYgKChwMS50b1N0cmluZygnaGV4JykgIT09ICcwMDAyJyAmJiAhcmV2ZXJzZSkgfHwgKHAxLnRvU3RyaW5nKCdoZXgnKSAhPT0gJzAwMDEnICYmIHJldmVyc2UpKXtcbiAgICBzdGF0dXMrKztcbiAgfVxuICBpZiAocHMubGVuZ3RoIDwgOCkge1xuICAgIHN0YXR1cysrO1xuICB9XG4gIGlmIChzdGF0dXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlY3J5cHRpb24gZXJyb3InKTtcbiAgfVxuICByZXR1cm4gIG1zZy5zbGljZShpKTtcbn1cbmZ1bmN0aW9uIGNvbXBhcmUoYSwgYil7XG4gIGEgPSBuZXcgQnVmZmVyKGEpO1xuICBiID0gbmV3IEJ1ZmZlcihiKTtcbiAgdmFyIGRpZiA9IDA7XG4gIHZhciBsZW4gPSBhLmxlbmd0aDtcbiAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuICAgIGRpZisrO1xuICAgIGxlbiA9IE1hdGgubWluKGEubGVuZ3RoLCBiLmxlbmd0aCk7XG4gIH1cbiAgdmFyIGkgPSAtMTtcbiAgd2hpbGUgKCsraSA8IGxlbikge1xuICAgIGRpZiArPSAoYVtpXSBeIGJbaV0pO1xuICB9XG4gIHJldHVybiBkaWY7XG59IiwidmFyIHBhcnNlS2V5cyA9IHJlcXVpcmUoJ3BhcnNlLWFzbjEnKTtcbnZhciByYW5kb21CeXRlcyA9IHJlcXVpcmUoJ3JhbmRvbWJ5dGVzJyk7XG52YXIgY3JlYXRlSGFzaCA9IHJlcXVpcmUoJ2NyZWF0ZS1oYXNoJyk7XG52YXIgbWdmID0gcmVxdWlyZSgnLi9tZ2YnKTtcbnZhciB4b3IgPSByZXF1aXJlKCcuL3hvcicpO1xudmFyIGJuID0gcmVxdWlyZSgnYm4uanMnKTtcbnZhciB3aXRoUHVibGljID0gcmVxdWlyZSgnLi93aXRoUHVibGljJyk7XG52YXIgY3J0ID0gcmVxdWlyZSgnYnJvd3NlcmlmeS1yc2EnKTtcblxudmFyIGNvbnN0YW50cyA9IHtcbiAgUlNBX1BLQ1MxX09BRVBfUEFERElORzogNCxcbiAgUlNBX1BLQ1MxX1BBRERJTjogMSxcbiAgUlNBX05PX1BBRERJTkc6IDNcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcHVibGljRW5jcnlwdChwdWJsaWNfa2V5LCBtc2csIHJldmVyc2UpIHtcbiAgdmFyIHBhZGRpbmc7XG4gIGlmIChwdWJsaWNfa2V5LnBhZGRpbmcpIHtcbiAgICBwYWRkaW5nID0gcHVibGljX2tleS5wYWRkaW5nO1xuICB9IGVsc2UgaWYgKHJldmVyc2UpIHtcbiAgICBwYWRkaW5nID0gMTtcbiAgfSBlbHNlIHtcbiAgICBwYWRkaW5nID0gNDtcbiAgfVxuICB2YXIga2V5ID0gcGFyc2VLZXlzKHB1YmxpY19rZXkpO1xuICB2YXIgcGFkZGVkTXNnO1xuICBpZiAocGFkZGluZyA9PT0gNCkge1xuICAgIHBhZGRlZE1zZyA9IG9hZXAoa2V5LCBtc2cpO1xuICB9IGVsc2UgaWYgKHBhZGRpbmcgPT09IDEpIHtcbiAgICBwYWRkZWRNc2cgPSBwa2NzMShrZXksIG1zZywgcmV2ZXJzZSk7XG4gIH0gZWxzZSBpZiAocGFkZGluZyA9PT0gMykge1xuICAgIHBhZGRlZE1zZyA9IG5ldyBibihtc2cpO1xuICAgIGlmIChwYWRkZWRNc2cuY21wKGtleS5tb2R1bHVzKSA+PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RhdGEgdG9vIGxvbmcgZm9yIG1vZHVsdXMnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIHBhZGRpbmcnKTtcbiAgfVxuICBpZiAocmV2ZXJzZSkge1xuICAgIHJldHVybiBjcnQocGFkZGVkTXNnLCBrZXkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB3aXRoUHVibGljKHBhZGRlZE1zZywga2V5KTtcbiAgfVxufTtcblxuZnVuY3Rpb24gb2FlcChrZXksIG1zZyl7XG4gIHZhciBrID0ga2V5Lm1vZHVsdXMuYnl0ZUxlbmd0aCgpO1xuICB2YXIgbUxlbiA9IG1zZy5sZW5ndGg7XG4gIHZhciBpSGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTEnKS51cGRhdGUobmV3IEJ1ZmZlcignJykpLmRpZ2VzdCgpO1xuICB2YXIgaExlbiA9IGlIYXNoLmxlbmd0aDtcbiAgdmFyIGhMZW4yID0gMiAqIGhMZW47XG4gIGlmIChtTGVuID4gayAtIGhMZW4yIC0gMikge1xuICAgIHRocm93IG5ldyBFcnJvcignbWVzc2FnZSB0b28gbG9uZycpO1xuICB9XG4gIHZhciBwcyA9IG5ldyBCdWZmZXIoayAtIG1MZW4gLSBoTGVuMiAtIDIpO1xuICBwcy5maWxsKDApO1xuICB2YXIgZGJsZW4gPSBrIC0gaExlbiAtIDE7XG4gIHZhciBzZWVkID0gcmFuZG9tQnl0ZXMoaExlbik7XG4gIHZhciBtYXNrZWREYiA9IHhvcihCdWZmZXIuY29uY2F0KFtpSGFzaCwgcHMsIG5ldyBCdWZmZXIoWzFdKSwgbXNnXSwgZGJsZW4pLCBtZ2Yoc2VlZCwgZGJsZW4pKTtcbiAgdmFyIG1hc2tlZFNlZWQgPSB4b3Ioc2VlZCwgbWdmKG1hc2tlZERiLCBoTGVuKSk7XG4gIHJldHVybiBuZXcgYm4oQnVmZmVyLmNvbmNhdChbbmV3IEJ1ZmZlcihbMF0pLCBtYXNrZWRTZWVkLCBtYXNrZWREYl0sIGspKTtcbn1cbmZ1bmN0aW9uIHBrY3MxKGtleSwgbXNnLCByZXZlcnNlKXtcbiAgdmFyIG1MZW4gPSBtc2cubGVuZ3RoO1xuICB2YXIgayA9IGtleS5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtcbiAgaWYgKG1MZW4gPiBrIC0gMTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21lc3NhZ2UgdG9vIGxvbmcnKTtcbiAgfVxuICB2YXIgcHM7XG4gIGlmIChyZXZlcnNlKSB7XG4gICAgcHMgPSBuZXcgQnVmZmVyKGsgLSBtTGVuIC0gMyk7XG4gICAgcHMuZmlsbCgweGZmKTtcbiAgfSBlbHNlIHtcbiAgICBwcyA9IG5vblplcm8oayAtIG1MZW4gLSAzKTtcbiAgfVxuICByZXR1cm4gbmV3IGJuKEJ1ZmZlci5jb25jYXQoW25ldyBCdWZmZXIoWzAsIHJldmVyc2U/MToyXSksIHBzLCBuZXcgQnVmZmVyKFswXSksIG1zZ10sIGspKTtcbn1cbmZ1bmN0aW9uIG5vblplcm8obGVuLCBjcnlwdG8pIHtcbiAgdmFyIG91dCA9IG5ldyBCdWZmZXIobGVuKTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgY2FjaGUgPSByYW5kb21CeXRlcyhsZW4qMik7XG4gIHZhciBjdXIgPSAwO1xuICB2YXIgbnVtO1xuICB3aGlsZSAoaSA8IGxlbikge1xuICAgIGlmIChjdXIgPT09IGNhY2hlLmxlbmd0aCkge1xuICAgICAgY2FjaGUgPSByYW5kb21CeXRlcyhsZW4qMik7XG4gICAgICBjdXIgPSAwO1xuICAgIH1cbiAgICBudW0gPSBjYWNoZVtjdXIrK107XG4gICAgaWYgKG51bSkge1xuICAgICAgb3V0W2krK10gPSBudW07XG4gICAgfVxuICB9XG4gIHJldHVybiBvdXQ7XG59IiwidmFyIGJuID0gcmVxdWlyZSgnYm4uanMnKTtcbmZ1bmN0aW9uIHdpdGhQdWJsaWMocGFkZGVkTXNnLCBrZXkpIHtcbiAgcmV0dXJuIG5ldyBCdWZmZXIocGFkZGVkTXNnXG4gICAgLnRvUmVkKGJuLm1vbnQoa2V5Lm1vZHVsdXMpKVxuICAgIC5yZWRQb3cobmV3IGJuKGtleS5wdWJsaWNFeHBvbmVudCkpXG4gICAgLmZyb21SZWQoKVxuICAgIC50b0FycmF5KCkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHdpdGhQdWJsaWM7IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB4b3IoYSwgYikge1xuICB2YXIgbGVuID0gYS5sZW5ndGg7XG4gIHZhciBpID0gLTE7XG4gIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICBhW2ldIF49IGJbaV07XG4gIH1cbiAgcmV0dXJuIGFcbn07IiwiLyohIGh0dHBzOi8vbXRocy5iZS9wdW55Y29kZSB2MS4zLjIgYnkgQG1hdGhpYXMgKi9cbjsoZnVuY3Rpb24ocm9vdCkge1xuXG5cdC8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZXMgKi9cblx0dmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJlxuXHRcdCFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cdHZhciBmcmVlTW9kdWxlID0gdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiZcblx0XHQhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblx0dmFyIGZyZWVHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbDtcblx0aWYgKFxuXHRcdGZyZWVHbG9iYWwuZ2xvYmFsID09PSBmcmVlR2xvYmFsIHx8XG5cdFx0ZnJlZUdsb2JhbC53aW5kb3cgPT09IGZyZWVHbG9iYWwgfHxcblx0XHRmcmVlR2xvYmFsLnNlbGYgPT09IGZyZWVHbG9iYWxcblx0KSB7XG5cdFx0cm9vdCA9IGZyZWVHbG9iYWw7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGBwdW55Y29kZWAgb2JqZWN0LlxuXHQgKiBAbmFtZSBwdW55Y29kZVxuXHQgKiBAdHlwZSBPYmplY3Rcblx0ICovXG5cdHZhciBwdW55Y29kZSxcblxuXHQvKiogSGlnaGVzdCBwb3NpdGl2ZSBzaWduZWQgMzItYml0IGZsb2F0IHZhbHVlICovXG5cdG1heEludCA9IDIxNDc0ODM2NDcsIC8vIGFrYS4gMHg3RkZGRkZGRiBvciAyXjMxLTFcblxuXHQvKiogQm9vdHN0cmluZyBwYXJhbWV0ZXJzICovXG5cdGJhc2UgPSAzNixcblx0dE1pbiA9IDEsXG5cdHRNYXggPSAyNixcblx0c2tldyA9IDM4LFxuXHRkYW1wID0gNzAwLFxuXHRpbml0aWFsQmlhcyA9IDcyLFxuXHRpbml0aWFsTiA9IDEyOCwgLy8gMHg4MFxuXHRkZWxpbWl0ZXIgPSAnLScsIC8vICdcXHgyRCdcblxuXHQvKiogUmVndWxhciBleHByZXNzaW9ucyAqL1xuXHRyZWdleFB1bnljb2RlID0gL154bi0tLyxcblx0cmVnZXhOb25BU0NJSSA9IC9bXlxceDIwLVxceDdFXS8sIC8vIHVucHJpbnRhYmxlIEFTQ0lJIGNoYXJzICsgbm9uLUFTQ0lJIGNoYXJzXG5cdHJlZ2V4U2VwYXJhdG9ycyA9IC9bXFx4MkVcXHUzMDAyXFx1RkYwRVxcdUZGNjFdL2csIC8vIFJGQyAzNDkwIHNlcGFyYXRvcnNcblxuXHQvKiogRXJyb3IgbWVzc2FnZXMgKi9cblx0ZXJyb3JzID0ge1xuXHRcdCdvdmVyZmxvdyc6ICdPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2VzcycsXG5cdFx0J25vdC1iYXNpYyc6ICdJbGxlZ2FsIGlucHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUgcG9pbnQpJyxcblx0XHQnaW52YWxpZC1pbnB1dCc6ICdJbnZhbGlkIGlucHV0J1xuXHR9LFxuXG5cdC8qKiBDb252ZW5pZW5jZSBzaG9ydGN1dHMgKi9cblx0YmFzZU1pbnVzVE1pbiA9IGJhc2UgLSB0TWluLFxuXHRmbG9vciA9IE1hdGguZmxvb3IsXG5cdHN0cmluZ0Zyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUsXG5cblx0LyoqIFRlbXBvcmFyeSB2YXJpYWJsZSAqL1xuXHRrZXk7XG5cblx0LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblx0LyoqXG5cdCAqIEEgZ2VuZXJpYyBlcnJvciB1dGlsaXR5IGZ1bmN0aW9uLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcGFyYW0ge1N0cmluZ30gdHlwZSBUaGUgZXJyb3IgdHlwZS5cblx0ICogQHJldHVybnMge0Vycm9yfSBUaHJvd3MgYSBgUmFuZ2VFcnJvcmAgd2l0aCB0aGUgYXBwbGljYWJsZSBlcnJvciBtZXNzYWdlLlxuXHQgKi9cblx0ZnVuY3Rpb24gZXJyb3IodHlwZSkge1xuXHRcdHRocm93IFJhbmdlRXJyb3IoZXJyb3JzW3R5cGVdKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBIGdlbmVyaWMgYEFycmF5I21hcGAgdXRpbGl0eSBmdW5jdGlvbi5cblx0ICogQHByaXZhdGVcblx0ICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRoYXQgZ2V0cyBjYWxsZWQgZm9yIGV2ZXJ5IGFycmF5XG5cdCAqIGl0ZW0uXG5cdCAqIEByZXR1cm5zIHtBcnJheX0gQSBuZXcgYXJyYXkgb2YgdmFsdWVzIHJldHVybmVkIGJ5IHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cblx0ICovXG5cdGZ1bmN0aW9uIG1hcChhcnJheSwgZm4pIHtcblx0XHR2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXHRcdHZhciByZXN1bHQgPSBbXTtcblx0XHR3aGlsZSAobGVuZ3RoLS0pIHtcblx0XHRcdHJlc3VsdFtsZW5ndGhdID0gZm4oYXJyYXlbbGVuZ3RoXSk7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHQvKipcblx0ICogQSBzaW1wbGUgYEFycmF5I21hcGAtbGlrZSB3cmFwcGVyIHRvIHdvcmsgd2l0aCBkb21haW4gbmFtZSBzdHJpbmdzIG9yIGVtYWlsXG5cdCAqIGFkZHJlc3Nlcy5cblx0ICogQHByaXZhdGVcblx0ICogQHBhcmFtIHtTdHJpbmd9IGRvbWFpbiBUaGUgZG9tYWluIG5hbWUgb3IgZW1haWwgYWRkcmVzcy5cblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRoYXQgZ2V0cyBjYWxsZWQgZm9yIGV2ZXJ5XG5cdCAqIGNoYXJhY3Rlci5cblx0ICogQHJldHVybnMge0FycmF5fSBBIG5ldyBzdHJpbmcgb2YgY2hhcmFjdGVycyByZXR1cm5lZCBieSB0aGUgY2FsbGJhY2tcblx0ICogZnVuY3Rpb24uXG5cdCAqL1xuXHRmdW5jdGlvbiBtYXBEb21haW4oc3RyaW5nLCBmbikge1xuXHRcdHZhciBwYXJ0cyA9IHN0cmluZy5zcGxpdCgnQCcpO1xuXHRcdHZhciByZXN1bHQgPSAnJztcblx0XHRpZiAocGFydHMubGVuZ3RoID4gMSkge1xuXHRcdFx0Ly8gSW4gZW1haWwgYWRkcmVzc2VzLCBvbmx5IHRoZSBkb21haW4gbmFtZSBzaG91bGQgYmUgcHVueWNvZGVkLiBMZWF2ZVxuXHRcdFx0Ly8gdGhlIGxvY2FsIHBhcnQgKGkuZS4gZXZlcnl0aGluZyB1cCB0byBgQGApIGludGFjdC5cblx0XHRcdHJlc3VsdCA9IHBhcnRzWzBdICsgJ0AnO1xuXHRcdFx0c3RyaW5nID0gcGFydHNbMV07XG5cdFx0fVxuXHRcdC8vIEF2b2lkIGBzcGxpdChyZWdleClgIGZvciBJRTggY29tcGF0aWJpbGl0eS4gU2VlICMxNy5cblx0XHRzdHJpbmcgPSBzdHJpbmcucmVwbGFjZShyZWdleFNlcGFyYXRvcnMsICdcXHgyRScpO1xuXHRcdHZhciBsYWJlbHMgPSBzdHJpbmcuc3BsaXQoJy4nKTtcblx0XHR2YXIgZW5jb2RlZCA9IG1hcChsYWJlbHMsIGZuKS5qb2luKCcuJyk7XG5cdFx0cmV0dXJuIHJlc3VsdCArIGVuY29kZWQ7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBhcnJheSBjb250YWluaW5nIHRoZSBudW1lcmljIGNvZGUgcG9pbnRzIG9mIGVhY2ggVW5pY29kZVxuXHQgKiBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZy4gV2hpbGUgSmF2YVNjcmlwdCB1c2VzIFVDUy0yIGludGVybmFsbHksXG5cdCAqIHRoaXMgZnVuY3Rpb24gd2lsbCBjb252ZXJ0IGEgcGFpciBvZiBzdXJyb2dhdGUgaGFsdmVzIChlYWNoIG9mIHdoaWNoXG5cdCAqIFVDUy0yIGV4cG9zZXMgYXMgc2VwYXJhdGUgY2hhcmFjdGVycykgaW50byBhIHNpbmdsZSBjb2RlIHBvaW50LFxuXHQgKiBtYXRjaGluZyBVVEYtMTYuXG5cdCAqIEBzZWUgYHB1bnljb2RlLnVjczIuZW5jb2RlYFxuXHQgKiBAc2VlIDxodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC1lbmNvZGluZz5cblx0ICogQG1lbWJlck9mIHB1bnljb2RlLnVjczJcblx0ICogQG5hbWUgZGVjb2RlXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBzdHJpbmcgVGhlIFVuaWNvZGUgaW5wdXQgc3RyaW5nIChVQ1MtMikuXG5cdCAqIEByZXR1cm5zIHtBcnJheX0gVGhlIG5ldyBhcnJheSBvZiBjb2RlIHBvaW50cy5cblx0ICovXG5cdGZ1bmN0aW9uIHVjczJkZWNvZGUoc3RyaW5nKSB7XG5cdFx0dmFyIG91dHB1dCA9IFtdLFxuXHRcdCAgICBjb3VudGVyID0gMCxcblx0XHQgICAgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCxcblx0XHQgICAgdmFsdWUsXG5cdFx0ICAgIGV4dHJhO1xuXHRcdHdoaWxlIChjb3VudGVyIDwgbGVuZ3RoKSB7XG5cdFx0XHR2YWx1ZSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG5cdFx0XHRpZiAodmFsdWUgPj0gMHhEODAwICYmIHZhbHVlIDw9IDB4REJGRiAmJiBjb3VudGVyIDwgbGVuZ3RoKSB7XG5cdFx0XHRcdC8vIGhpZ2ggc3Vycm9nYXRlLCBhbmQgdGhlcmUgaXMgYSBuZXh0IGNoYXJhY3RlclxuXHRcdFx0XHRleHRyYSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG5cdFx0XHRcdGlmICgoZXh0cmEgJiAweEZDMDApID09IDB4REMwMCkgeyAvLyBsb3cgc3Vycm9nYXRlXG5cdFx0XHRcdFx0b3V0cHV0LnB1c2goKCh2YWx1ZSAmIDB4M0ZGKSA8PCAxMCkgKyAoZXh0cmEgJiAweDNGRikgKyAweDEwMDAwKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyB1bm1hdGNoZWQgc3Vycm9nYXRlOyBvbmx5IGFwcGVuZCB0aGlzIGNvZGUgdW5pdCwgaW4gY2FzZSB0aGUgbmV4dFxuXHRcdFx0XHRcdC8vIGNvZGUgdW5pdCBpcyB0aGUgaGlnaCBzdXJyb2dhdGUgb2YgYSBzdXJyb2dhdGUgcGFpclxuXHRcdFx0XHRcdG91dHB1dC5wdXNoKHZhbHVlKTtcblx0XHRcdFx0XHRjb3VudGVyLS07XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG91dHB1dC5wdXNoKHZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG91dHB1dDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgc3RyaW5nIGJhc2VkIG9uIGFuIGFycmF5IG9mIG51bWVyaWMgY29kZSBwb2ludHMuXG5cdCAqIEBzZWUgYHB1bnljb2RlLnVjczIuZGVjb2RlYFxuXHQgKiBAbWVtYmVyT2YgcHVueWNvZGUudWNzMlxuXHQgKiBAbmFtZSBlbmNvZGVcblx0ICogQHBhcmFtIHtBcnJheX0gY29kZVBvaW50cyBUaGUgYXJyYXkgb2YgbnVtZXJpYyBjb2RlIHBvaW50cy5cblx0ICogQHJldHVybnMge1N0cmluZ30gVGhlIG5ldyBVbmljb2RlIHN0cmluZyAoVUNTLTIpLlxuXHQgKi9cblx0ZnVuY3Rpb24gdWNzMmVuY29kZShhcnJheSkge1xuXHRcdHJldHVybiBtYXAoYXJyYXksIGZ1bmN0aW9uKHZhbHVlKSB7XG5cdFx0XHR2YXIgb3V0cHV0ID0gJyc7XG5cdFx0XHRpZiAodmFsdWUgPiAweEZGRkYpIHtcblx0XHRcdFx0dmFsdWUgLT0gMHgxMDAwMDtcblx0XHRcdFx0b3V0cHV0ICs9IHN0cmluZ0Zyb21DaGFyQ29kZSh2YWx1ZSA+Pj4gMTAgJiAweDNGRiB8IDB4RDgwMCk7XG5cdFx0XHRcdHZhbHVlID0gMHhEQzAwIHwgdmFsdWUgJiAweDNGRjtcblx0XHRcdH1cblx0XHRcdG91dHB1dCArPSBzdHJpbmdGcm9tQ2hhckNvZGUodmFsdWUpO1xuXHRcdFx0cmV0dXJuIG91dHB1dDtcblx0XHR9KS5qb2luKCcnKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZXJ0cyBhIGJhc2ljIGNvZGUgcG9pbnQgaW50byBhIGRpZ2l0L2ludGVnZXIuXG5cdCAqIEBzZWUgYGRpZ2l0VG9CYXNpYygpYFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcGFyYW0ge051bWJlcn0gY29kZVBvaW50IFRoZSBiYXNpYyBudW1lcmljIGNvZGUgcG9pbnQgdmFsdWUuXG5cdCAqIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZSBwb2ludCAoZm9yIHVzZSBpblxuXHQgKiByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGluIHRoZSByYW5nZSBgMGAgdG8gYGJhc2UgLSAxYCwgb3IgYGJhc2VgIGlmXG5cdCAqIHRoZSBjb2RlIHBvaW50IGRvZXMgbm90IHJlcHJlc2VudCBhIHZhbHVlLlxuXHQgKi9cblx0ZnVuY3Rpb24gYmFzaWNUb0RpZ2l0KGNvZGVQb2ludCkge1xuXHRcdGlmIChjb2RlUG9pbnQgLSA0OCA8IDEwKSB7XG5cdFx0XHRyZXR1cm4gY29kZVBvaW50IC0gMjI7XG5cdFx0fVxuXHRcdGlmIChjb2RlUG9pbnQgLSA2NSA8IDI2KSB7XG5cdFx0XHRyZXR1cm4gY29kZVBvaW50IC0gNjU7XG5cdFx0fVxuXHRcdGlmIChjb2RlUG9pbnQgLSA5NyA8IDI2KSB7XG5cdFx0XHRyZXR1cm4gY29kZVBvaW50IC0gOTc7XG5cdFx0fVxuXHRcdHJldHVybiBiYXNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlcnRzIGEgZGlnaXQvaW50ZWdlciBpbnRvIGEgYmFzaWMgY29kZSBwb2ludC5cblx0ICogQHNlZSBgYmFzaWNUb0RpZ2l0KClgXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBkaWdpdCBUaGUgbnVtZXJpYyB2YWx1ZSBvZiBhIGJhc2ljIGNvZGUgcG9pbnQuXG5cdCAqIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBiYXNpYyBjb2RlIHBvaW50IHdob3NlIHZhbHVlICh3aGVuIHVzZWQgZm9yXG5cdCAqIHJlcHJlc2VudGluZyBpbnRlZ2VycykgaXMgYGRpZ2l0YCwgd2hpY2ggbmVlZHMgdG8gYmUgaW4gdGhlIHJhbmdlXG5cdCAqIGAwYCB0byBgYmFzZSAtIDFgLiBJZiBgZmxhZ2AgaXMgbm9uLXplcm8sIHRoZSB1cHBlcmNhc2UgZm9ybSBpc1xuXHQgKiB1c2VkOyBlbHNlLCB0aGUgbG93ZXJjYXNlIGZvcm0gaXMgdXNlZC4gVGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZFxuXHQgKiBpZiBgZmxhZ2AgaXMgbm9uLXplcm8gYW5kIGBkaWdpdGAgaGFzIG5vIHVwcGVyY2FzZSBmb3JtLlxuXHQgKi9cblx0ZnVuY3Rpb24gZGlnaXRUb0Jhc2ljKGRpZ2l0LCBmbGFnKSB7XG5cdFx0Ly8gIDAuLjI1IG1hcCB0byBBU0NJSSBhLi56IG9yIEEuLlpcblx0XHQvLyAyNi4uMzUgbWFwIHRvIEFTQ0lJIDAuLjlcblx0XHRyZXR1cm4gZGlnaXQgKyAyMiArIDc1ICogKGRpZ2l0IDwgMjYpIC0gKChmbGFnICE9IDApIDw8IDUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEJpYXMgYWRhcHRhdGlvbiBmdW5jdGlvbiBhcyBwZXIgc2VjdGlvbiAzLjQgb2YgUkZDIDM0OTIuXG5cdCAqIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM0OTIjc2VjdGlvbi0zLjRcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGZ1bmN0aW9uIGFkYXB0KGRlbHRhLCBudW1Qb2ludHMsIGZpcnN0VGltZSkge1xuXHRcdHZhciBrID0gMDtcblx0XHRkZWx0YSA9IGZpcnN0VGltZSA/IGZsb29yKGRlbHRhIC8gZGFtcCkgOiBkZWx0YSA+PiAxO1xuXHRcdGRlbHRhICs9IGZsb29yKGRlbHRhIC8gbnVtUG9pbnRzKTtcblx0XHRmb3IgKC8qIG5vIGluaXRpYWxpemF0aW9uICovOyBkZWx0YSA+IGJhc2VNaW51c1RNaW4gKiB0TWF4ID4+IDE7IGsgKz0gYmFzZSkge1xuXHRcdFx0ZGVsdGEgPSBmbG9vcihkZWx0YSAvIGJhc2VNaW51c1RNaW4pO1xuXHRcdH1cblx0XHRyZXR1cm4gZmxvb3IoayArIChiYXNlTWludXNUTWluICsgMSkgKiBkZWx0YSAvIChkZWx0YSArIHNrZXcpKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZXJ0cyBhIFB1bnljb2RlIHN0cmluZyBvZiBBU0NJSS1vbmx5IHN5bWJvbHMgdG8gYSBzdHJpbmcgb2YgVW5pY29kZVxuXHQgKiBzeW1ib2xzLlxuXHQgKiBAbWVtYmVyT2YgcHVueWNvZGVcblx0ICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBQdW55Y29kZSBzdHJpbmcgb2YgQVNDSUktb25seSBzeW1ib2xzLlxuXHQgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgcmVzdWx0aW5nIHN0cmluZyBvZiBVbmljb2RlIHN5bWJvbHMuXG5cdCAqL1xuXHRmdW5jdGlvbiBkZWNvZGUoaW5wdXQpIHtcblx0XHQvLyBEb24ndCB1c2UgVUNTLTJcblx0XHR2YXIgb3V0cHV0ID0gW10sXG5cdFx0ICAgIGlucHV0TGVuZ3RoID0gaW5wdXQubGVuZ3RoLFxuXHRcdCAgICBvdXQsXG5cdFx0ICAgIGkgPSAwLFxuXHRcdCAgICBuID0gaW5pdGlhbE4sXG5cdFx0ICAgIGJpYXMgPSBpbml0aWFsQmlhcyxcblx0XHQgICAgYmFzaWMsXG5cdFx0ICAgIGosXG5cdFx0ICAgIGluZGV4LFxuXHRcdCAgICBvbGRpLFxuXHRcdCAgICB3LFxuXHRcdCAgICBrLFxuXHRcdCAgICBkaWdpdCxcblx0XHQgICAgdCxcblx0XHQgICAgLyoqIENhY2hlZCBjYWxjdWxhdGlvbiByZXN1bHRzICovXG5cdFx0ICAgIGJhc2VNaW51c1Q7XG5cblx0XHQvLyBIYW5kbGUgdGhlIGJhc2ljIGNvZGUgcG9pbnRzOiBsZXQgYGJhc2ljYCBiZSB0aGUgbnVtYmVyIG9mIGlucHV0IGNvZGVcblx0XHQvLyBwb2ludHMgYmVmb3JlIHRoZSBsYXN0IGRlbGltaXRlciwgb3IgYDBgIGlmIHRoZXJlIGlzIG5vbmUsIHRoZW4gY29weVxuXHRcdC8vIHRoZSBmaXJzdCBiYXNpYyBjb2RlIHBvaW50cyB0byB0aGUgb3V0cHV0LlxuXG5cdFx0YmFzaWMgPSBpbnB1dC5sYXN0SW5kZXhPZihkZWxpbWl0ZXIpO1xuXHRcdGlmIChiYXNpYyA8IDApIHtcblx0XHRcdGJhc2ljID0gMDtcblx0XHR9XG5cblx0XHRmb3IgKGogPSAwOyBqIDwgYmFzaWM7ICsraikge1xuXHRcdFx0Ly8gaWYgaXQncyBub3QgYSBiYXNpYyBjb2RlIHBvaW50XG5cdFx0XHRpZiAoaW5wdXQuY2hhckNvZGVBdChqKSA+PSAweDgwKSB7XG5cdFx0XHRcdGVycm9yKCdub3QtYmFzaWMnKTtcblx0XHRcdH1cblx0XHRcdG91dHB1dC5wdXNoKGlucHV0LmNoYXJDb2RlQXQoaikpO1xuXHRcdH1cblxuXHRcdC8vIE1haW4gZGVjb2RpbmcgbG9vcDogc3RhcnQganVzdCBhZnRlciB0aGUgbGFzdCBkZWxpbWl0ZXIgaWYgYW55IGJhc2ljIGNvZGVcblx0XHQvLyBwb2ludHMgd2VyZSBjb3BpZWQ7IHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb3RoZXJ3aXNlLlxuXG5cdFx0Zm9yIChpbmRleCA9IGJhc2ljID4gMCA/IGJhc2ljICsgMSA6IDA7IGluZGV4IDwgaW5wdXRMZW5ndGg7IC8qIG5vIGZpbmFsIGV4cHJlc3Npb24gKi8pIHtcblxuXHRcdFx0Ly8gYGluZGV4YCBpcyB0aGUgaW5kZXggb2YgdGhlIG5leHQgY2hhcmFjdGVyIHRvIGJlIGNvbnN1bWVkLlxuXHRcdFx0Ly8gRGVjb2RlIGEgZ2VuZXJhbGl6ZWQgdmFyaWFibGUtbGVuZ3RoIGludGVnZXIgaW50byBgZGVsdGFgLFxuXHRcdFx0Ly8gd2hpY2ggZ2V0cyBhZGRlZCB0byBgaWAuIFRoZSBvdmVyZmxvdyBjaGVja2luZyBpcyBlYXNpZXJcblx0XHRcdC8vIGlmIHdlIGluY3JlYXNlIGBpYCBhcyB3ZSBnbywgdGhlbiBzdWJ0cmFjdCBvZmYgaXRzIHN0YXJ0aW5nXG5cdFx0XHQvLyB2YWx1ZSBhdCB0aGUgZW5kIHRvIG9idGFpbiBgZGVsdGFgLlxuXHRcdFx0Zm9yIChvbGRpID0gaSwgdyA9IDEsIGsgPSBiYXNlOyAvKiBubyBjb25kaXRpb24gKi87IGsgKz0gYmFzZSkge1xuXG5cdFx0XHRcdGlmIChpbmRleCA+PSBpbnB1dExlbmd0aCkge1xuXHRcdFx0XHRcdGVycm9yKCdpbnZhbGlkLWlucHV0Jyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkaWdpdCA9IGJhc2ljVG9EaWdpdChpbnB1dC5jaGFyQ29kZUF0KGluZGV4KyspKTtcblxuXHRcdFx0XHRpZiAoZGlnaXQgPj0gYmFzZSB8fCBkaWdpdCA+IGZsb29yKChtYXhJbnQgLSBpKSAvIHcpKSB7XG5cdFx0XHRcdFx0ZXJyb3IoJ292ZXJmbG93Jyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpICs9IGRpZ2l0ICogdztcblx0XHRcdFx0dCA9IGsgPD0gYmlhcyA/IHRNaW4gOiAoayA+PSBiaWFzICsgdE1heCA/IHRNYXggOiBrIC0gYmlhcyk7XG5cblx0XHRcdFx0aWYgKGRpZ2l0IDwgdCkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YmFzZU1pbnVzVCA9IGJhc2UgLSB0O1xuXHRcdFx0XHRpZiAodyA+IGZsb29yKG1heEludCAvIGJhc2VNaW51c1QpKSB7XG5cdFx0XHRcdFx0ZXJyb3IoJ292ZXJmbG93Jyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR3ICo9IGJhc2VNaW51c1Q7XG5cblx0XHRcdH1cblxuXHRcdFx0b3V0ID0gb3V0cHV0Lmxlbmd0aCArIDE7XG5cdFx0XHRiaWFzID0gYWRhcHQoaSAtIG9sZGksIG91dCwgb2xkaSA9PSAwKTtcblxuXHRcdFx0Ly8gYGlgIHdhcyBzdXBwb3NlZCB0byB3cmFwIGFyb3VuZCBmcm9tIGBvdXRgIHRvIGAwYCxcblx0XHRcdC8vIGluY3JlbWVudGluZyBgbmAgZWFjaCB0aW1lLCBzbyB3ZSdsbCBmaXggdGhhdCBub3c6XG5cdFx0XHRpZiAoZmxvb3IoaSAvIG91dCkgPiBtYXhJbnQgLSBuKSB7XG5cdFx0XHRcdGVycm9yKCdvdmVyZmxvdycpO1xuXHRcdFx0fVxuXG5cdFx0XHRuICs9IGZsb29yKGkgLyBvdXQpO1xuXHRcdFx0aSAlPSBvdXQ7XG5cblx0XHRcdC8vIEluc2VydCBgbmAgYXQgcG9zaXRpb24gYGlgIG9mIHRoZSBvdXRwdXRcblx0XHRcdG91dHB1dC5zcGxpY2UoaSsrLCAwLCBuKTtcblxuXHRcdH1cblxuXHRcdHJldHVybiB1Y3MyZW5jb2RlKG91dHB1dCk7XG5cdH1cblxuXHQvKipcblx0ICogQ29udmVydHMgYSBzdHJpbmcgb2YgVW5pY29kZSBzeW1ib2xzIChlLmcuIGEgZG9tYWluIG5hbWUgbGFiZWwpIHRvIGFcblx0ICogUHVueWNvZGUgc3RyaW5nIG9mIEFTQ0lJLW9ubHkgc3ltYm9scy5cblx0ICogQG1lbWJlck9mIHB1bnljb2RlXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBpbnB1dCBUaGUgc3RyaW5nIG9mIFVuaWNvZGUgc3ltYm9scy5cblx0ICogQHJldHVybnMge1N0cmluZ30gVGhlIHJlc3VsdGluZyBQdW55Y29kZSBzdHJpbmcgb2YgQVNDSUktb25seSBzeW1ib2xzLlxuXHQgKi9cblx0ZnVuY3Rpb24gZW5jb2RlKGlucHV0KSB7XG5cdFx0dmFyIG4sXG5cdFx0ICAgIGRlbHRhLFxuXHRcdCAgICBoYW5kbGVkQ1BDb3VudCxcblx0XHQgICAgYmFzaWNMZW5ndGgsXG5cdFx0ICAgIGJpYXMsXG5cdFx0ICAgIGosXG5cdFx0ICAgIG0sXG5cdFx0ICAgIHEsXG5cdFx0ICAgIGssXG5cdFx0ICAgIHQsXG5cdFx0ICAgIGN1cnJlbnRWYWx1ZSxcblx0XHQgICAgb3V0cHV0ID0gW10sXG5cdFx0ICAgIC8qKiBgaW5wdXRMZW5ndGhgIHdpbGwgaG9sZCB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIGBpbnB1dGAuICovXG5cdFx0ICAgIGlucHV0TGVuZ3RoLFxuXHRcdCAgICAvKiogQ2FjaGVkIGNhbGN1bGF0aW9uIHJlc3VsdHMgKi9cblx0XHQgICAgaGFuZGxlZENQQ291bnRQbHVzT25lLFxuXHRcdCAgICBiYXNlTWludXNULFxuXHRcdCAgICBxTWludXNUO1xuXG5cdFx0Ly8gQ29udmVydCB0aGUgaW5wdXQgaW4gVUNTLTIgdG8gVW5pY29kZVxuXHRcdGlucHV0ID0gdWNzMmRlY29kZShpbnB1dCk7XG5cblx0XHQvLyBDYWNoZSB0aGUgbGVuZ3RoXG5cdFx0aW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGg7XG5cblx0XHQvLyBJbml0aWFsaXplIHRoZSBzdGF0ZVxuXHRcdG4gPSBpbml0aWFsTjtcblx0XHRkZWx0YSA9IDA7XG5cdFx0YmlhcyA9IGluaXRpYWxCaWFzO1xuXG5cdFx0Ly8gSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50c1xuXHRcdGZvciAoaiA9IDA7IGogPCBpbnB1dExlbmd0aDsgKytqKSB7XG5cdFx0XHRjdXJyZW50VmFsdWUgPSBpbnB1dFtqXTtcblx0XHRcdGlmIChjdXJyZW50VmFsdWUgPCAweDgwKSB7XG5cdFx0XHRcdG91dHB1dC5wdXNoKHN0cmluZ0Zyb21DaGFyQ29kZShjdXJyZW50VmFsdWUpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRoYW5kbGVkQ1BDb3VudCA9IGJhc2ljTGVuZ3RoID0gb3V0cHV0Lmxlbmd0aDtcblxuXHRcdC8vIGBoYW5kbGVkQ1BDb3VudGAgaXMgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyB0aGF0IGhhdmUgYmVlbiBoYW5kbGVkO1xuXHRcdC8vIGBiYXNpY0xlbmd0aGAgaXMgdGhlIG51bWJlciBvZiBiYXNpYyBjb2RlIHBvaW50cy5cblxuXHRcdC8vIEZpbmlzaCB0aGUgYmFzaWMgc3RyaW5nIC0gaWYgaXQgaXMgbm90IGVtcHR5IC0gd2l0aCBhIGRlbGltaXRlclxuXHRcdGlmIChiYXNpY0xlbmd0aCkge1xuXHRcdFx0b3V0cHV0LnB1c2goZGVsaW1pdGVyKTtcblx0XHR9XG5cblx0XHQvLyBNYWluIGVuY29kaW5nIGxvb3A6XG5cdFx0d2hpbGUgKGhhbmRsZWRDUENvdW50IDwgaW5wdXRMZW5ndGgpIHtcblxuXHRcdFx0Ly8gQWxsIG5vbi1iYXNpYyBjb2RlIHBvaW50cyA8IG4gaGF2ZSBiZWVuIGhhbmRsZWQgYWxyZWFkeS4gRmluZCB0aGUgbmV4dFxuXHRcdFx0Ly8gbGFyZ2VyIG9uZTpcblx0XHRcdGZvciAobSA9IG1heEludCwgaiA9IDA7IGogPCBpbnB1dExlbmd0aDsgKytqKSB7XG5cdFx0XHRcdGN1cnJlbnRWYWx1ZSA9IGlucHV0W2pdO1xuXHRcdFx0XHRpZiAoY3VycmVudFZhbHVlID49IG4gJiYgY3VycmVudFZhbHVlIDwgbSkge1xuXHRcdFx0XHRcdG0gPSBjdXJyZW50VmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gSW5jcmVhc2UgYGRlbHRhYCBlbm91Z2ggdG8gYWR2YW5jZSB0aGUgZGVjb2RlcidzIDxuLGk+IHN0YXRlIHRvIDxtLDA+LFxuXHRcdFx0Ly8gYnV0IGd1YXJkIGFnYWluc3Qgb3ZlcmZsb3dcblx0XHRcdGhhbmRsZWRDUENvdW50UGx1c09uZSA9IGhhbmRsZWRDUENvdW50ICsgMTtcblx0XHRcdGlmIChtIC0gbiA+IGZsb29yKChtYXhJbnQgLSBkZWx0YSkgLyBoYW5kbGVkQ1BDb3VudFBsdXNPbmUpKSB7XG5cdFx0XHRcdGVycm9yKCdvdmVyZmxvdycpO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWx0YSArPSAobSAtIG4pICogaGFuZGxlZENQQ291bnRQbHVzT25lO1xuXHRcdFx0biA9IG07XG5cblx0XHRcdGZvciAoaiA9IDA7IGogPCBpbnB1dExlbmd0aDsgKytqKSB7XG5cdFx0XHRcdGN1cnJlbnRWYWx1ZSA9IGlucHV0W2pdO1xuXG5cdFx0XHRcdGlmIChjdXJyZW50VmFsdWUgPCBuICYmICsrZGVsdGEgPiBtYXhJbnQpIHtcblx0XHRcdFx0XHRlcnJvcignb3ZlcmZsb3cnKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChjdXJyZW50VmFsdWUgPT0gbikge1xuXHRcdFx0XHRcdC8vIFJlcHJlc2VudCBkZWx0YSBhcyBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyXG5cdFx0XHRcdFx0Zm9yIChxID0gZGVsdGEsIGsgPSBiYXNlOyAvKiBubyBjb25kaXRpb24gKi87IGsgKz0gYmFzZSkge1xuXHRcdFx0XHRcdFx0dCA9IGsgPD0gYmlhcyA/IHRNaW4gOiAoayA+PSBiaWFzICsgdE1heCA/IHRNYXggOiBrIC0gYmlhcyk7XG5cdFx0XHRcdFx0XHRpZiAocSA8IHQpIHtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRxTWludXNUID0gcSAtIHQ7XG5cdFx0XHRcdFx0XHRiYXNlTWludXNUID0gYmFzZSAtIHQ7XG5cdFx0XHRcdFx0XHRvdXRwdXQucHVzaChcblx0XHRcdFx0XHRcdFx0c3RyaW5nRnJvbUNoYXJDb2RlKGRpZ2l0VG9CYXNpYyh0ICsgcU1pbnVzVCAlIGJhc2VNaW51c1QsIDApKVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHEgPSBmbG9vcihxTWludXNUIC8gYmFzZU1pbnVzVCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0b3V0cHV0LnB1c2goc3RyaW5nRnJvbUNoYXJDb2RlKGRpZ2l0VG9CYXNpYyhxLCAwKSkpO1xuXHRcdFx0XHRcdGJpYXMgPSBhZGFwdChkZWx0YSwgaGFuZGxlZENQQ291bnRQbHVzT25lLCBoYW5kbGVkQ1BDb3VudCA9PSBiYXNpY0xlbmd0aCk7XG5cdFx0XHRcdFx0ZGVsdGEgPSAwO1xuXHRcdFx0XHRcdCsraGFuZGxlZENQQ291bnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0KytkZWx0YTtcblx0XHRcdCsrbjtcblxuXHRcdH1cblx0XHRyZXR1cm4gb3V0cHV0LmpvaW4oJycpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlcnRzIGEgUHVueWNvZGUgc3RyaW5nIHJlcHJlc2VudGluZyBhIGRvbWFpbiBuYW1lIG9yIGFuIGVtYWlsIGFkZHJlc3Ncblx0ICogdG8gVW5pY29kZS4gT25seSB0aGUgUHVueWNvZGVkIHBhcnRzIG9mIHRoZSBpbnB1dCB3aWxsIGJlIGNvbnZlcnRlZCwgaS5lLlxuXHQgKiBpdCBkb2Vzbid0IG1hdHRlciBpZiB5b3UgY2FsbCBpdCBvbiBhIHN0cmluZyB0aGF0IGhhcyBhbHJlYWR5IGJlZW5cblx0ICogY29udmVydGVkIHRvIFVuaWNvZGUuXG5cdCAqIEBtZW1iZXJPZiBwdW55Y29kZVxuXHQgKiBAcGFyYW0ge1N0cmluZ30gaW5wdXQgVGhlIFB1bnljb2RlZCBkb21haW4gbmFtZSBvciBlbWFpbCBhZGRyZXNzIHRvXG5cdCAqIGNvbnZlcnQgdG8gVW5pY29kZS5cblx0ICogQHJldHVybnMge1N0cmluZ30gVGhlIFVuaWNvZGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIFB1bnljb2RlXG5cdCAqIHN0cmluZy5cblx0ICovXG5cdGZ1bmN0aW9uIHRvVW5pY29kZShpbnB1dCkge1xuXHRcdHJldHVybiBtYXBEb21haW4oaW5wdXQsIGZ1bmN0aW9uKHN0cmluZykge1xuXHRcdFx0cmV0dXJuIHJlZ2V4UHVueWNvZGUudGVzdChzdHJpbmcpXG5cdFx0XHRcdD8gZGVjb2RlKHN0cmluZy5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKVxuXHRcdFx0XHQ6IHN0cmluZztcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZXJ0cyBhIFVuaWNvZGUgc3RyaW5nIHJlcHJlc2VudGluZyBhIGRvbWFpbiBuYW1lIG9yIGFuIGVtYWlsIGFkZHJlc3MgdG9cblx0ICogUHVueWNvZGUuIE9ubHkgdGhlIG5vbi1BU0NJSSBwYXJ0cyBvZiB0aGUgZG9tYWluIG5hbWUgd2lsbCBiZSBjb252ZXJ0ZWQsXG5cdCAqIGkuZS4gaXQgZG9lc24ndCBtYXR0ZXIgaWYgeW91IGNhbGwgaXQgd2l0aCBhIGRvbWFpbiB0aGF0J3MgYWxyZWFkeSBpblxuXHQgKiBBU0NJSS5cblx0ICogQG1lbWJlck9mIHB1bnljb2RlXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBpbnB1dCBUaGUgZG9tYWluIG5hbWUgb3IgZW1haWwgYWRkcmVzcyB0byBjb252ZXJ0LCBhcyBhXG5cdCAqIFVuaWNvZGUgc3RyaW5nLlxuXHQgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgUHVueWNvZGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGRvbWFpbiBuYW1lIG9yXG5cdCAqIGVtYWlsIGFkZHJlc3MuXG5cdCAqL1xuXHRmdW5jdGlvbiB0b0FTQ0lJKGlucHV0KSB7XG5cdFx0cmV0dXJuIG1hcERvbWFpbihpbnB1dCwgZnVuY3Rpb24oc3RyaW5nKSB7XG5cdFx0XHRyZXR1cm4gcmVnZXhOb25BU0NJSS50ZXN0KHN0cmluZylcblx0XHRcdFx0PyAneG4tLScgKyBlbmNvZGUoc3RyaW5nKVxuXHRcdFx0XHQ6IHN0cmluZztcblx0XHR9KTtcblx0fVxuXG5cdC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cdC8qKiBEZWZpbmUgdGhlIHB1YmxpYyBBUEkgKi9cblx0cHVueWNvZGUgPSB7XG5cdFx0LyoqXG5cdFx0ICogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IFB1bnljb2RlLmpzIHZlcnNpb24gbnVtYmVyLlxuXHRcdCAqIEBtZW1iZXJPZiBwdW55Y29kZVxuXHRcdCAqIEB0eXBlIFN0cmluZ1xuXHRcdCAqL1xuXHRcdCd2ZXJzaW9uJzogJzEuMy4yJyxcblx0XHQvKipcblx0XHQgKiBBbiBvYmplY3Qgb2YgbWV0aG9kcyB0byBjb252ZXJ0IGZyb20gSmF2YVNjcmlwdCdzIGludGVybmFsIGNoYXJhY3RlclxuXHRcdCAqIHJlcHJlc2VudGF0aW9uIChVQ1MtMikgdG8gVW5pY29kZSBjb2RlIHBvaW50cywgYW5kIGJhY2suXG5cdFx0ICogQHNlZSA8aHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmc+XG5cdFx0ICogQG1lbWJlck9mIHB1bnljb2RlXG5cdFx0ICogQHR5cGUgT2JqZWN0XG5cdFx0ICovXG5cdFx0J3VjczInOiB7XG5cdFx0XHQnZGVjb2RlJzogdWNzMmRlY29kZSxcblx0XHRcdCdlbmNvZGUnOiB1Y3MyZW5jb2RlXG5cdFx0fSxcblx0XHQnZGVjb2RlJzogZGVjb2RlLFxuXHRcdCdlbmNvZGUnOiBlbmNvZGUsXG5cdFx0J3RvQVNDSUknOiB0b0FTQ0lJLFxuXHRcdCd0b1VuaWNvZGUnOiB0b1VuaWNvZGVcblx0fTtcblxuXHQvKiogRXhwb3NlIGBwdW55Y29kZWAgKi9cblx0Ly8gU29tZSBBTUQgYnVpbGQgb3B0aW1pemVycywgbGlrZSByLmpzLCBjaGVjayBmb3Igc3BlY2lmaWMgY29uZGl0aW9uIHBhdHRlcm5zXG5cdC8vIGxpa2UgdGhlIGZvbGxvd2luZzpcblx0aWYgKFxuXHRcdHR5cGVvZiBkZWZpbmUgPT0gJ2Z1bmN0aW9uJyAmJlxuXHRcdHR5cGVvZiBkZWZpbmUuYW1kID09ICdvYmplY3QnICYmXG5cdFx0ZGVmaW5lLmFtZFxuXHQpIHtcblx0XHRkZWZpbmUoJ3B1bnljb2RlJywgZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4gcHVueWNvZGU7XG5cdFx0fSk7XG5cdH0gZWxzZSBpZiAoZnJlZUV4cG9ydHMgJiYgZnJlZU1vZHVsZSkge1xuXHRcdGlmIChtb2R1bGUuZXhwb3J0cyA9PSBmcmVlRXhwb3J0cykgeyAvLyBpbiBOb2RlLmpzIG9yIFJpbmdvSlMgdjAuOC4wK1xuXHRcdFx0ZnJlZU1vZHVsZS5leHBvcnRzID0gcHVueWNvZGU7XG5cdFx0fSBlbHNlIHsgLy8gaW4gTmFyd2hhbCBvciBSaW5nb0pTIHYwLjcuMC1cblx0XHRcdGZvciAoa2V5IGluIHB1bnljb2RlKSB7XG5cdFx0XHRcdHB1bnljb2RlLmhhc093blByb3BlcnR5KGtleSkgJiYgKGZyZWVFeHBvcnRzW2tleV0gPSBwdW55Y29kZVtrZXldKTtcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZSB7IC8vIGluIFJoaW5vIG9yIGEgd2ViIGJyb3dzZXJcblx0XHRyb290LnB1bnljb2RlID0gcHVueWNvZGU7XG5cdH1cblxufSh0aGlzKSk7XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG4vLyBJZiBvYmouaGFzT3duUHJvcGVydHkgaGFzIGJlZW4gb3ZlcnJpZGRlbiwgdGhlbiBjYWxsaW5nXG4vLyBvYmouaGFzT3duUHJvcGVydHkocHJvcCkgd2lsbCBicmVhay5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2pveWVudC9ub2RlL2lzc3Vlcy8xNzA3XG5mdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHFzLCBzZXAsIGVxLCBvcHRpb25zKSB7XG4gIHNlcCA9IHNlcCB8fCAnJic7XG4gIGVxID0gZXEgfHwgJz0nO1xuICB2YXIgb2JqID0ge307XG5cbiAgaWYgKHR5cGVvZiBxcyAhPT0gJ3N0cmluZycgfHwgcXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHZhciByZWdleHAgPSAvXFwrL2c7XG4gIHFzID0gcXMuc3BsaXQoc2VwKTtcblxuICB2YXIgbWF4S2V5cyA9IDEwMDA7XG4gIGlmIChvcHRpb25zICYmIHR5cGVvZiBvcHRpb25zLm1heEtleXMgPT09ICdudW1iZXInKSB7XG4gICAgbWF4S2V5cyA9IG9wdGlvbnMubWF4S2V5cztcbiAgfVxuXG4gIHZhciBsZW4gPSBxcy5sZW5ndGg7XG4gIC8vIG1heEtleXMgPD0gMCBtZWFucyB0aGF0IHdlIHNob3VsZCBub3QgbGltaXQga2V5cyBjb3VudFxuICBpZiAobWF4S2V5cyA+IDAgJiYgbGVuID4gbWF4S2V5cykge1xuICAgIGxlbiA9IG1heEtleXM7XG4gIH1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKSB7XG4gICAgdmFyIHggPSBxc1tpXS5yZXBsYWNlKHJlZ2V4cCwgJyUyMCcpLFxuICAgICAgICBpZHggPSB4LmluZGV4T2YoZXEpLFxuICAgICAgICBrc3RyLCB2c3RyLCBrLCB2O1xuXG4gICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICBrc3RyID0geC5zdWJzdHIoMCwgaWR4KTtcbiAgICAgIHZzdHIgPSB4LnN1YnN0cihpZHggKyAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAga3N0ciA9IHg7XG4gICAgICB2c3RyID0gJyc7XG4gICAgfVxuXG4gICAgayA9IGRlY29kZVVSSUNvbXBvbmVudChrc3RyKTtcbiAgICB2ID0gZGVjb2RlVVJJQ29tcG9uZW50KHZzdHIpO1xuXG4gICAgaWYgKCFoYXNPd25Qcm9wZXJ0eShvYmosIGspKSB7XG4gICAgICBvYmpba10gPSB2O1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShvYmpba10pKSB7XG4gICAgICBvYmpba10ucHVzaCh2KTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqW2tdID0gW29ialtrXSwgdl07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9iajtcbn07XG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiAoeHMpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh4cykgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59O1xuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHN0cmluZ2lmeVByaW1pdGl2ZSA9IGZ1bmN0aW9uKHYpIHtcbiAgc3dpdGNoICh0eXBlb2Ygdikge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICByZXR1cm4gdjtcblxuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgcmV0dXJuIHYgPyAndHJ1ZScgOiAnZmFsc2UnO1xuXG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIHJldHVybiBpc0Zpbml0ZSh2KSA/IHYgOiAnJztcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJyc7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob2JqLCBzZXAsIGVxLCBuYW1lKSB7XG4gIHNlcCA9IHNlcCB8fCAnJic7XG4gIGVxID0gZXEgfHwgJz0nO1xuICBpZiAob2JqID09PSBudWxsKSB7XG4gICAgb2JqID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG1hcChvYmplY3RLZXlzKG9iaiksIGZ1bmN0aW9uKGspIHtcbiAgICAgIHZhciBrcyA9IGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUoaykpICsgZXE7XG4gICAgICBpZiAoaXNBcnJheShvYmpba10pKSB7XG4gICAgICAgIHJldHVybiBtYXAob2JqW2tdLCBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIGtzICsgZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZSh2KSk7XG4gICAgICAgIH0pLmpvaW4oc2VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBrcyArIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUob2JqW2tdKSk7XG4gICAgICB9XG4gICAgfSkuam9pbihzZXApO1xuXG4gIH1cblxuICBpZiAoIW5hbWUpIHJldHVybiAnJztcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUobmFtZSkpICsgZXEgK1xuICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShvYmopKTtcbn07XG5cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiAoeHMpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh4cykgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59O1xuXG5mdW5jdGlvbiBtYXAgKHhzLCBmKSB7XG4gIGlmICh4cy5tYXApIHJldHVybiB4cy5tYXAoZik7XG4gIHZhciByZXMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB4cy5sZW5ndGg7IGkrKykge1xuICAgIHJlcy5wdXNoKGYoeHNbaV0sIGkpKTtcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG52YXIgb2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIChvYmopIHtcbiAgdmFyIHJlcyA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHJlcy5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuZGVjb2RlID0gZXhwb3J0cy5wYXJzZSA9IHJlcXVpcmUoJy4vZGVjb2RlJyk7XG5leHBvcnRzLmVuY29kZSA9IGV4cG9ydHMuc3RyaW5naWZ5ID0gcmVxdWlyZSgnLi9lbmNvZGUnKTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbi8vIElmIG9iai5oYXNPd25Qcm9wZXJ0eSBoYXMgYmVlbiBvdmVycmlkZGVuLCB0aGVuIGNhbGxpbmdcbi8vIG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wKSB3aWxsIGJyZWFrLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vam95ZW50L25vZGUvaXNzdWVzLzE3MDdcbmZ1bmN0aW9uIGhhc093blByb3BlcnR5KG9iaiwgcHJvcCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ocXMsIHNlcCwgZXEsIG9wdGlvbnMpIHtcbiAgc2VwID0gc2VwIHx8ICcmJztcbiAgZXEgPSBlcSB8fCAnPSc7XG4gIHZhciBvYmogPSB7fTtcblxuICBpZiAodHlwZW9mIHFzICE9PSAnc3RyaW5nJyB8fCBxcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgdmFyIHJlZ2V4cCA9IC9cXCsvZztcbiAgcXMgPSBxcy5zcGxpdChzZXApO1xuXG4gIHZhciBtYXhLZXlzID0gMTAwMDtcbiAgaWYgKG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMubWF4S2V5cyA9PT0gJ251bWJlcicpIHtcbiAgICBtYXhLZXlzID0gb3B0aW9ucy5tYXhLZXlzO1xuICB9XG5cbiAgdmFyIGxlbiA9IHFzLmxlbmd0aDtcbiAgLy8gbWF4S2V5cyA8PSAwIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIG5vdCBsaW1pdCBrZXlzIGNvdW50XG4gIGlmIChtYXhLZXlzID4gMCAmJiBsZW4gPiBtYXhLZXlzKSB7XG4gICAgbGVuID0gbWF4S2V5cztcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICB2YXIgeCA9IHFzW2ldLnJlcGxhY2UocmVnZXhwLCAnJTIwJyksXG4gICAgICAgIGlkeCA9IHguaW5kZXhPZihlcSksXG4gICAgICAgIGtzdHIsIHZzdHIsIGssIHY7XG5cbiAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgIGtzdHIgPSB4LnN1YnN0cigwLCBpZHgpO1xuICAgICAgdnN0ciA9IHguc3Vic3RyKGlkeCArIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBrc3RyID0geDtcbiAgICAgIHZzdHIgPSAnJztcbiAgICB9XG5cbiAgICBrID0gZGVjb2RlVVJJQ29tcG9uZW50KGtzdHIpO1xuICAgIHYgPSBkZWNvZGVVUklDb21wb25lbnQodnN0cik7XG5cbiAgICBpZiAoIWhhc093blByb3BlcnR5KG9iaiwgaykpIHtcbiAgICAgIG9ialtrXSA9IHY7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG9ialtrXSkpIHtcbiAgICAgIG9ialtrXS5wdXNoKHYpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmpba10gPSBbb2JqW2tdLCB2XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBzdHJpbmdpZnlQcmltaXRpdmUgPSBmdW5jdGlvbih2KSB7XG4gIHN3aXRjaCAodHlwZW9mIHYpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuIHY7XG5cbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIHJldHVybiB2ID8gJ3RydWUnIDogJ2ZhbHNlJztcblxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgICByZXR1cm4gaXNGaW5pdGUodikgPyB2IDogJyc7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICcnO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iaiwgc2VwLCBlcSwgbmFtZSkge1xuICBzZXAgPSBzZXAgfHwgJyYnO1xuICBlcSA9IGVxIHx8ICc9JztcbiAgaWYgKG9iaiA9PT0gbnVsbCkge1xuICAgIG9iaiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLm1hcChmdW5jdGlvbihrKSB7XG4gICAgICB2YXIga3MgPSBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKGspKSArIGVxO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqW2tdKSkge1xuICAgICAgICByZXR1cm4gb2JqW2tdLm1hcChmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIGtzICsgZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZSh2KSk7XG4gICAgICAgIH0pLmpvaW4oc2VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBrcyArIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUob2JqW2tdKSk7XG4gICAgICB9XG4gICAgfSkuam9pbihzZXApO1xuXG4gIH1cblxuICBpZiAoIW5hbWUpIHJldHVybiAnJztcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdpZnlQcmltaXRpdmUobmFtZSkpICsgZXEgK1xuICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShvYmopKTtcbn07XG4iLCIndXNlIHN0cmljdCdcblxuZnVuY3Rpb24gb2xkQnJvd3NlciAoKSB7XG4gIHRocm93IG5ldyBFcnJvcignU2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci5cXG5Vc2UgQ2hyb21lLCBGaXJlZm94IG9yIEludGVybmV0IEV4cGxvcmVyIDExJylcbn1cblxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG52YXIgY3J5cHRvID0gZ2xvYmFsLmNyeXB0byB8fCBnbG9iYWwubXNDcnlwdG9cblxuaWYgKGNyeXB0byAmJiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmFuZG9tQnl0ZXNcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gb2xkQnJvd3NlclxufVxuXG5mdW5jdGlvbiByYW5kb21CeXRlcyAoc2l6ZSwgY2IpIHtcbiAgLy8gcGhhbnRvbWpzIG5lZWRzIHRvIHRocm93XG4gIGlmIChzaXplID4gNjU1MzYpIHRocm93IG5ldyBFcnJvcigncmVxdWVzdGVkIHRvbyBtYW55IHJhbmRvbSBieXRlcycpXG4gIC8vIGluIGNhc2UgYnJvd3NlcmlmeSAgaXNuJ3QgdXNpbmcgdGhlIFVpbnQ4QXJyYXkgdmVyc2lvblxuICB2YXIgcmF3Qnl0ZXMgPSBuZXcgZ2xvYmFsLlVpbnQ4QXJyYXkoc2l6ZSlcblxuICAvLyBUaGlzIHdpbGwgbm90IHdvcmsgaW4gb2xkZXIgYnJvd3NlcnMuXG4gIC8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXNcbiAgaWYgKHNpemUgPiAwKSB7ICAvLyBnZXRSYW5kb21WYWx1ZXMgZmFpbHMgb24gSUUgaWYgc2l6ZSA9PSAwXG4gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhyYXdCeXRlcylcbiAgfVxuXG4gIC8vIFhYWDogcGhhbnRvbWpzIGRvZXNuJ3QgbGlrZSBhIGJ1ZmZlciBiZWluZyBwYXNzZWQgaGVyZVxuICB2YXIgYnl0ZXMgPSBCdWZmZXIuZnJvbShyYXdCeXRlcy5idWZmZXIpXG5cbiAgaWYgKHR5cGVvZiBjYiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNiKG51bGwsIGJ5dGVzKVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gYnl0ZXNcbn1cbiIsIid1c2Ugc3RyaWN0J1xuXG5mdW5jdGlvbiBvbGRCcm93c2VyICgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyXFxudXNlIGNocm9tZSwgRmlyZUZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMScpXG59XG52YXIgc2FmZUJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJylcbnZhciByYW5kb21ieXRlcyA9IHJlcXVpcmUoJ3JhbmRvbWJ5dGVzJylcbnZhciBCdWZmZXIgPSBzYWZlQnVmZmVyLkJ1ZmZlclxudmFyIGtCdWZmZXJNYXhMZW5ndGggPSBzYWZlQnVmZmVyLmtNYXhMZW5ndGhcbnZhciBjcnlwdG8gPSBnbG9iYWwuY3J5cHRvIHx8IGdsb2JhbC5tc0NyeXB0b1xudmFyIGtNYXhVaW50MzIgPSBNYXRoLnBvdygyLCAzMikgLSAxXG5mdW5jdGlvbiBhc3NlcnRPZmZzZXQgKG9mZnNldCwgbGVuZ3RoKSB7XG4gIGlmICh0eXBlb2Ygb2Zmc2V0ICE9PSAnbnVtYmVyJyB8fCBvZmZzZXQgIT09IG9mZnNldCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ29mZnNldCBtdXN0IGJlIGEgbnVtYmVyJylcbiAgfVxuXG4gIGlmIChvZmZzZXQgPiBrTWF4VWludDMyIHx8IG9mZnNldCA8IDApIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMicpXG4gIH1cblxuICBpZiAob2Zmc2V0ID4ga0J1ZmZlck1heExlbmd0aCB8fCBvZmZzZXQgPiBsZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb2Zmc2V0IG91dCBvZiByYW5nZScpXG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0U2l6ZSAoc2l6ZSwgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJyB8fCBzaXplICE9PSBzaXplKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc2l6ZSBtdXN0IGJlIGEgbnVtYmVyJylcbiAgfVxuXG4gIGlmIChzaXplID4ga01heFVpbnQzMiB8fCBzaXplIDwgMCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3NpemUgbXVzdCBiZSBhIHVpbnQzMicpXG4gIH1cblxuICBpZiAoc2l6ZSArIG9mZnNldCA+IGxlbmd0aCB8fCBzaXplID4ga0J1ZmZlck1heExlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdidWZmZXIgdG9vIHNtYWxsJylcbiAgfVxufVxuaWYgKChjcnlwdG8gJiYgY3J5cHRvLmdldFJhbmRvbVZhbHVlcykgfHwgIXByb2Nlc3MuYnJvd3Nlcikge1xuICBleHBvcnRzLnJhbmRvbUZpbGwgPSByYW5kb21GaWxsXG4gIGV4cG9ydHMucmFuZG9tRmlsbFN5bmMgPSByYW5kb21GaWxsU3luY1xufSBlbHNlIHtcbiAgZXhwb3J0cy5yYW5kb21GaWxsID0gb2xkQnJvd3NlclxuICBleHBvcnRzLnJhbmRvbUZpbGxTeW5jID0gb2xkQnJvd3NlclxufVxuZnVuY3Rpb24gcmFuZG9tRmlsbCAoYnVmLCBvZmZzZXQsIHNpemUsIGNiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikgJiYgIShidWYgaW5zdGFuY2VvZiBnbG9iYWwuVWludDhBcnJheSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImJ1ZlwiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpXG4gIH1cblxuICBpZiAodHlwZW9mIG9mZnNldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNiID0gb2Zmc2V0XG4gICAgb2Zmc2V0ID0gMFxuICAgIHNpemUgPSBidWYubGVuZ3RoXG4gIH0gZWxzZSBpZiAodHlwZW9mIHNpemUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYiA9IHNpemVcbiAgICBzaXplID0gYnVmLmxlbmd0aCAtIG9mZnNldFxuICB9IGVsc2UgaWYgKHR5cGVvZiBjYiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiY2JcIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKVxuICB9XG4gIGFzc2VydE9mZnNldChvZmZzZXQsIGJ1Zi5sZW5ndGgpXG4gIGFzc2VydFNpemUoc2l6ZSwgb2Zmc2V0LCBidWYubGVuZ3RoKVxuICByZXR1cm4gYWN0dWFsRmlsbChidWYsIG9mZnNldCwgc2l6ZSwgY2IpXG59XG5cbmZ1bmN0aW9uIGFjdHVhbEZpbGwgKGJ1Ziwgb2Zmc2V0LCBzaXplLCBjYikge1xuICBpZiAocHJvY2Vzcy5icm93c2VyKSB7XG4gICAgdmFyIG91ckJ1ZiA9IGJ1Zi5idWZmZXJcbiAgICB2YXIgdWludCA9IG5ldyBVaW50OEFycmF5KG91ckJ1Ziwgb2Zmc2V0LCBzaXplKVxuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXModWludClcbiAgICBpZiAoY2IpIHtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICBjYihudWxsLCBidWYpXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHJldHVybiBidWZcbiAgfVxuICBpZiAoY2IpIHtcbiAgICByYW5kb21ieXRlcyhzaXplLCBmdW5jdGlvbiAoZXJyLCBieXRlcykge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gY2IoZXJyKVxuICAgICAgfVxuICAgICAgYnl0ZXMuY29weShidWYsIG9mZnNldClcbiAgICAgIGNiKG51bGwsIGJ1ZilcbiAgICB9KVxuICAgIHJldHVyblxuICB9XG4gIHZhciBieXRlcyA9IHJhbmRvbWJ5dGVzKHNpemUpXG4gIGJ5dGVzLmNvcHkoYnVmLCBvZmZzZXQpXG4gIHJldHVybiBidWZcbn1cbmZ1bmN0aW9uIHJhbmRvbUZpbGxTeW5jIChidWYsIG9mZnNldCwgc2l6ZSkge1xuICBpZiAodHlwZW9mIG9mZnNldCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBvZmZzZXQgPSAwXG4gIH1cbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSAmJiAhKGJ1ZiBpbnN0YW5jZW9mIGdsb2JhbC5VaW50OEFycmF5KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiYnVmXCIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBvciBVaW50OEFycmF5JylcbiAgfVxuXG4gIGFzc2VydE9mZnNldChvZmZzZXQsIGJ1Zi5sZW5ndGgpXG5cbiAgaWYgKHNpemUgPT09IHVuZGVmaW5lZCkgc2l6ZSA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcblxuICBhc3NlcnRTaXplKHNpemUsIG9mZnNldCwgYnVmLmxlbmd0aClcblxuICByZXR1cm4gYWN0dWFsRmlsbChidWYsIG9mZnNldCwgc2l6ZSlcbn1cbiIsIiFmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQocmVxdWlyZShcInJlYWN0XCIpKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtcInJlYWN0XCJdLHQpOlwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuU2Nyb2xsQXJlYT10KHJlcXVpcmUoXCJyZWFjdFwiKSk6ZS5TY3JvbGxBcmVhPXQoZS5SZWFjdCl9KHRoaXMsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobyl7aWYobltvXSlyZXR1cm4gbltvXS5leHBvcnRzO3ZhciByPW5bb109e2V4cG9ydHM6e30saWQ6byxsb2FkZWQ6ITF9O3JldHVybiBlW29dLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLHQpLHIubG9hZGVkPSEwLHIuZXhwb3J0c312YXIgbj17fTtyZXR1cm4gdC5tPWUsdC5jPW4sdC5wPVwiXCIsdCgwKX0oW2Z1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxuKDMxKTt2YXIgcj1uKDEzKSxpPW8ocik7dC5kZWZhdWx0PWkuZGVmYXVsdH0sZnVuY3Rpb24odCxuKXt0LmV4cG9ydHM9ZX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKDE5KSgpfSxmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPVwibnVtYmVyXCI9PXR5cGVvZiBlW25dP2Vbbl06ZVtuXS52YWwpO3JldHVybiB0fXQuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9bixlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKHQpeyhmdW5jdGlvbigpe3ZhciBuLG8scjtcInVuZGVmaW5lZFwiIT10eXBlb2YgcGVyZm9ybWFuY2UmJm51bGwhPT1wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHQmJm51bGwhPT10JiZ0LmhydGltZT8oZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuKG4oKS1yKS8xZTZ9LG89dC5ocnRpbWUsbj1mdW5jdGlvbigpe3ZhciBlO3JldHVybiBlPW8oKSwxZTkqZVswXStlWzFdfSxyPW4oKSk6RGF0ZS5ub3c/KGUuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpLXJ9LHI9RGF0ZS5ub3coKSk6KGUuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpLXJ9LHI9KG5ldyBEYXRlKS5nZXRUaW1lKCkpfSkuY2FsbCh0aGlzKX0pLmNhbGwodCxuKDEwKSl9LGZ1bmN0aW9uKGUsdCxuKXsoZnVuY3Rpb24odCl7Zm9yKHZhciBvPW4oMjMpLHI9XCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdz90OndpbmRvdyxpPVtcIm1velwiLFwid2Via2l0XCJdLGE9XCJBbmltYXRpb25GcmFtZVwiLGw9cltcInJlcXVlc3RcIithXSxzPXJbXCJjYW5jZWxcIithXXx8cltcImNhbmNlbFJlcXVlc3RcIithXSx1PTA7IWwmJnU8aS5sZW5ndGg7dSsrKWw9cltpW3VdK1wiUmVxdWVzdFwiK2FdLHM9cltpW3VdK1wiQ2FuY2VsXCIrYV18fHJbaVt1XStcIkNhbmNlbFJlcXVlc3RcIithXTtpZighbHx8IXMpe3ZhciBjPTAsZj0wLHA9W10sZD0xZTMvNjA7bD1mdW5jdGlvbihlKXtpZigwPT09cC5sZW5ndGgpe3ZhciB0PW8oKSxuPU1hdGgubWF4KDAsZC0odC1jKSk7Yz1uK3Qsc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPXAuc2xpY2UoMCk7cC5sZW5ndGg9MDtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylpZighZVt0XS5jYW5jZWxsZWQpdHJ5e2VbdF0uY2FsbGJhY2soYyl9Y2F0Y2goZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGV9LDApfX0sTWF0aC5yb3VuZChuKSl9cmV0dXJuIHAucHVzaCh7aGFuZGxlOisrZixjYWxsYmFjazplLGNhbmNlbGxlZDohMX0pLGZ9LHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxwLmxlbmd0aDt0KyspcFt0XS5oYW5kbGU9PT1lJiYocFt0XS5jYW5jZWxsZWQ9ITApfX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGwuY2FsbChyLGUpfSxlLmV4cG9ydHMuY2FuY2VsPWZ1bmN0aW9uKCl7cy5hcHBseShyLGFyZ3VtZW50cyl9LGUuZXhwb3J0cy5wb2x5ZmlsbD1mdW5jdGlvbihlKXtlfHwoZT1yKSxlLnJlcXVlc3RBbmltYXRpb25GcmFtZT1sLGUuY2FuY2VsQW5pbWF0aW9uRnJhbWU9c319KS5jYWxsKHQsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKSl9LGZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbihlKXt2YXIgdD17fTtmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09MCk7cmV0dXJuIHR9dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD1uLGUuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbihlLHQsbil7Zm9yKHZhciBvIGluIHQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbykpe2lmKDAhPT1uW29dKXJldHVybiExO3ZhciByPVwibnVtYmVyXCI9PXR5cGVvZiB0W29dP3Rbb106dFtvXS52YWw7aWYoZVtvXSE9PXIpcmV0dXJuITF9cmV0dXJuITB9dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD1uLGUuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbihlLHQsbixyLGksYSxsKXt2YXIgcz0taSoodC1yKSx1PS1hKm4sYz1zK3UsZj1uK2MqZSxwPXQrZiplO3JldHVybiBNYXRoLmFicyhmKTxsJiZNYXRoLmFicyhwLXIpPGw/KG9bMF09cixvWzFdPTAsbyk6KG9bMF09cCxvWzFdPWYsbyl9dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD1uO3ZhciBvPVswLDBdO2UuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiByKGUpe3JldHVybiBwP2YuZGVmYXVsdC5maW5kRE9NTm9kZShlKTplfWZ1bmN0aW9uIGkoKXtkfHxwfHwoZD0hMCxjb25zb2xlLmVycm9yKFwiV2l0aCBSZWFjdCAwLjE0IGFuZCBsYXRlciB2ZXJzaW9ucywgeW91IG5vIGxvbmdlciBuZWVkIHRvIHdyYXAgPFNjcm9sbEFyZWE+IGNoaWxkIGludG8gYSBmdW5jdGlvbi5cIikpfWZ1bmN0aW9uIGEoKXshZCYmcCYmKGQ9ITAsY29uc29sZS5lcnJvcihcIldpdGggUmVhY3QgMC4xMywgeW91IG5lZWQgdG8gd3JhcCA8U2Nyb2xsQXJlYT4gY2hpbGQgaW50byBhIGZ1bmN0aW9uLlwiKSl9ZnVuY3Rpb24gbChlKXtyZXR1cm4gZTwwPzA6ZX1mdW5jdGlvbiBzKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpmdW5jdGlvbihlKXtyZXR1cm4gZX0sbj17fTtmb3IodmFyIG8gaW4gZSllLmhhc093blByb3BlcnR5KG8pJiYobltvXT10KGVbb10pKTtyZXR1cm4gbn1mdW5jdGlvbiB1KGUpe3ZhciB0PWUudmVyc2lvbjtpZihcInN0cmluZ1wiIT10eXBlb2YgdClyZXR1cm4hMDt2YXIgbj10LnNwbGl0KFwiLlwiKSxvPXBhcnNlSW50KG5bMF0sMTApLHI9cGFyc2VJbnQoblsxXSwxMCk7cmV0dXJuIDA9PT1vJiYxMz09PXJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5maW5kRE9NTm9kZT1yLHQud2FybkFib3V0RnVuY3Rpb25DaGlsZD1pLHQud2FybkFib3V0RWxlbWVudENoaWxkPWEsdC5wb3NpdGl2ZU9yWmVybz1sLHQubW9kaWZ5T2JqVmFsdWVzPXMsdC5pc1JlYWN0MTM9dTt2YXIgYz1uKDEpLGY9byhjKSxwPXUoZi5kZWZhdWx0KSxkPSExfSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXt0aHJvdyBuZXcgRXJyb3IoXCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkXCIpfWZ1bmN0aW9uIG8oKXt0aHJvdyBuZXcgRXJyb3IoXCJjbGVhclRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWRcIil9ZnVuY3Rpb24gcihlKXtpZihjPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dChlLDApO2lmKChjPT09bnx8IWMpJiZzZXRUaW1lb3V0KXJldHVybiBjPXNldFRpbWVvdXQsc2V0VGltZW91dChlLDApO3RyeXtyZXR1cm4gYyhlLDApfWNhdGNoKHQpe3RyeXtyZXR1cm4gYy5jYWxsKG51bGwsZSwwKX1jYXRjaCh0KXtyZXR1cm4gYy5jYWxsKHRoaXMsZSwwKX19fWZ1bmN0aW9uIGkoZSl7aWYoZj09PWNsZWFyVGltZW91dClyZXR1cm4gY2xlYXJUaW1lb3V0KGUpO2lmKChmPT09b3x8IWYpJiZjbGVhclRpbWVvdXQpcmV0dXJuIGY9Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dChlKTt0cnl7cmV0dXJuIGYoZSl9Y2F0Y2godCl7dHJ5e3JldHVybiBmLmNhbGwobnVsbCxlKX1jYXRjaCh0KXtyZXR1cm4gZi5jYWxsKHRoaXMsZSl9fX1mdW5jdGlvbiBhKCl7eSYmZCYmKHk9ITEsZC5sZW5ndGg/aD1kLmNvbmNhdChoKTp2PS0xLGgubGVuZ3RoJiZsKCkpfWZ1bmN0aW9uIGwoKXtpZigheSl7dmFyIGU9cihhKTt5PSEwO2Zvcih2YXIgdD1oLmxlbmd0aDt0Oyl7Zm9yKGQ9aCxoPVtdOysrdjx0OylkJiZkW3ZdLnJ1bigpO3Y9LTEsdD1oLmxlbmd0aH1kPW51bGwseT0hMSxpKGUpfX1mdW5jdGlvbiBzKGUsdCl7dGhpcy5mdW49ZSx0aGlzLmFycmF5PXR9ZnVuY3Rpb24gdSgpe312YXIgYyxmLHA9ZS5leHBvcnRzPXt9OyFmdW5jdGlvbigpe3RyeXtjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHNldFRpbWVvdXQ/c2V0VGltZW91dDpufWNhdGNoKGUpe2M9bn10cnl7Zj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0Om99Y2F0Y2goZSl7Zj1vfX0oKTt2YXIgZCxoPVtdLHk9ITEsdj0tMTtwLm5leHRUaWNrPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbi0xXT1hcmd1bWVudHNbbl07aC5wdXNoKG5ldyBzKGUsdCkpLDEhPT1oLmxlbmd0aHx8eXx8cihsKX0scy5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX0scC50aXRsZT1cImJyb3dzZXJcIixwLmJyb3dzZXI9ITAscC5lbnY9e30scC5hcmd2PVtdLHAudmVyc2lvbj1cIlwiLHAudmVyc2lvbnM9e30scC5vbj11LHAuYWRkTGlzdGVuZXI9dSxwLm9uY2U9dSxwLm9mZj11LHAucmVtb3ZlTGlzdGVuZXI9dSxwLnJlbW92ZUFsbExpc3RlbmVycz11LHAuZW1pdD11LHAuYmluZGluZz1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoXCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZFwiKX0scC5jd2Q9ZnVuY3Rpb24oKXtyZXR1cm5cIi9cIn0scC5jaGRpcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoXCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWRcIil9LHAudW1hc2s9ZnVuY3Rpb24oKXtyZXR1cm4gMH19LGZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD17bm9Xb2JibGU6e3N0aWZmbmVzczoxNzAsZGFtcGluZzoyNn0sZ2VudGxlOntzdGlmZm5lc3M6MTIwLGRhbXBpbmc6MTR9LHdvYmJseTp7c3RpZmZuZXNzOjE4MCxkYW1waW5nOjEyfSxzdGlmZjp7c3RpZmZuZXNzOjIxMCxkYW1waW5nOjIwfX0sZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lLmRlZmF1bHQ6ZX10Ll9fZXNNb2R1bGU9ITA7dmFyIHI9bigyNCk7dC5Nb3Rpb249byhyKTt2YXIgaT1uKDI1KTt0LlN0YWdnZXJlZE1vdGlvbj1vKGkpO3ZhciBhPW4oMjYpO3QuVHJhbnNpdGlvbk1vdGlvbj1vKGEpO3ZhciBsPW4oMjkpO3Quc3ByaW5nPW8obCk7dmFyIHM9bigxMSk7dC5wcmVzZXRzPW8ocyk7dmFyIHU9bigzKTt0LnN0cmlwU3R5bGU9byh1KTt2YXIgYz1uKDI4KTt0LnJlb3JkZXJLZXlzPW8oYyl9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiByKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX1mdW5jdGlvbiBpKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiF0fHxcIm9iamVjdFwiIT10eXBlb2YgdCYmXCJmdW5jdGlvblwiIT10eXBlb2YgdD9lOnR9ZnVuY3Rpb24gYShlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBsPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmXCJzeW1ib2xcIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlP1wic3ltYm9sXCI6dHlwZW9mIGV9LHM9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgbyBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLG8pJiYoZVtvXT1uW29dKX1yZXR1cm4gZX0sdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIG89dFtuXTtvLmVudW1lcmFibGU9by5lbnVtZXJhYmxlfHwhMSxvLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBvJiYoby53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsby5rZXksbyl9fXJldHVybiBmdW5jdGlvbih0LG4sbyl7cmV0dXJuIG4mJmUodC5wcm90b3R5cGUsbiksbyYmZSh0LG8pLHR9fSgpLGM9bigxKSxmPW8oYykscD1uKDIpLGQ9byhwKSxoPW4oMTgpLHk9byhoKSx2PW4oMTIpLG09big5KSxiPW4oMTQpLFM9byhiKSxnPXt3aGVlbDpcIndoZWVsXCIsYXBpOlwiYXBpXCIsdG91Y2g6XCJ0b3VjaFwiLHRvdWNoRW5kOlwidG91Y2hFbmRcIixtb3VzZW1vdmU6XCJtb3VzZW1vdmVcIixrZXlQcmVzczpcImtleXByZXNzXCJ9LHc9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChlKXtyKHRoaXMsdCk7dmFyIG49aSh0aGlzLCh0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpKS5jYWxsKHRoaXMsZSkpO3JldHVybiBuLnN0YXRlPXt0b3BQb3NpdGlvbjowLGxlZnRQb3NpdGlvbjowLHJlYWxIZWlnaHQ6MCxjb250YWluZXJIZWlnaHQ6MCxyZWFsV2lkdGg6MCxjb250YWluZXJXaWR0aDowfSxuLnNjcm9sbEFyZWE9e3JlZnJlc2g6ZnVuY3Rpb24oKXtuLnNldFNpemVzVG9TdGF0ZSgpfSxzY3JvbGxUb3A6ZnVuY3Rpb24oKXtuLnNjcm9sbFRvcCgpfSxzY3JvbGxCb3R0b206ZnVuY3Rpb24oKXtuLnNjcm9sbEJvdHRvbSgpfSxzY3JvbGxZVG86ZnVuY3Rpb24oZSl7bi5zY3JvbGxZVG8oZSl9LHNjcm9sbExlZnQ6ZnVuY3Rpb24oKXtuLnNjcm9sbExlZnQoKX0sc2Nyb2xsUmlnaHQ6ZnVuY3Rpb24oKXtuLnNjcm9sbFJpZ2h0KCl9LHNjcm9sbFhUbzpmdW5jdGlvbihlKXtuLnNjcm9sbFhUbyhlKX19LG4uZXZudHNQcmV2aW91c1ZhbHVlcz17Y2xpZW50WDowLGNsaWVudFk6MCxkZWx0YVg6MCxkZWx0YVk6MH0sbi5iaW5kZWRIYW5kbGVXaW5kb3dSZXNpemU9bi5oYW5kbGVXaW5kb3dSZXNpemUuYmluZChuKSxufXJldHVybiBhKHQsZSksdSh0LFt7a2V5OlwiZ2V0Q2hpbGRDb250ZXh0XCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57c2Nyb2xsQXJlYTp0aGlzLnNjcm9sbEFyZWF9fX0se2tleTpcImNvbXBvbmVudERpZE1vdW50XCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnByb3BzLmNvbnRlbnRXaW5kb3cmJnRoaXMucHJvcHMuY29udGVudFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5iaW5kZWRIYW5kbGVXaW5kb3dSZXNpemUpLHRoaXMubGluZUhlaWdodFB4PSgwLHkuZGVmYXVsdCkoKDAsbS5maW5kRE9NTm9kZSkodGhpcy5jb250ZW50KSksdGhpcy5zZXRTaXplc1RvU3RhdGUoKX19LHtrZXk6XCJjb21wb25lbnRXaWxsVW5tb3VudFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm9wcy5jb250ZW50V2luZG93JiZ0aGlzLnByb3BzLmNvbnRlbnRXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuYmluZGVkSGFuZGxlV2luZG93UmVzaXplKX19LHtrZXk6XCJjb21wb25lbnREaWRVcGRhdGVcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2V0U2l6ZXNUb1N0YXRlKCl9fSx7a2V5OlwicmVuZGVyXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5wcm9wcyxuPXQuY2hpbGRyZW4sbz10LmNsYXNzTmFtZSxyPXQuY29udGVudENsYXNzTmFtZSxpPXQub3duZXJEb2N1bWVudCxhPXRoaXMucHJvcHMuc21vb3RoU2Nyb2xsaW5nJiYodGhpcy5zdGF0ZS5ldmVudFR5cGU9PT1nLndoZWVsfHx0aGlzLnN0YXRlLmV2ZW50VHlwZT09PWcuYXBpfHx0aGlzLnN0YXRlLmV2ZW50VHlwZT09PWcudG91Y2hFbmR8fHRoaXMuc3RhdGUuZXZlbnRUeXBlPT09Zy5rZXlQcmVzcyksbD10aGlzLmNhblNjcm9sbFkoKT9mLmRlZmF1bHQuY3JlYXRlRWxlbWVudChTLmRlZmF1bHQse293bmVyRG9jdW1lbnQ6aSxyZWFsU2l6ZTp0aGlzLnN0YXRlLnJlYWxIZWlnaHQsY29udGFpbmVyU2l6ZTp0aGlzLnN0YXRlLmNvbnRhaW5lckhlaWdodCxwb3NpdGlvbjp0aGlzLnN0YXRlLnRvcFBvc2l0aW9uLG9uTW92ZTp0aGlzLmhhbmRsZVNjcm9sbGJhck1vdmUuYmluZCh0aGlzKSxvblBvc2l0aW9uQ2hhbmdlOnRoaXMuaGFuZGxlU2Nyb2xsYmFyWVBvc2l0aW9uQ2hhbmdlLmJpbmQodGhpcyksY29udGFpbmVyU3R5bGU6dGhpcy5wcm9wcy52ZXJ0aWNhbENvbnRhaW5lclN0eWxlLHNjcm9sbGJhclN0eWxlOnRoaXMucHJvcHMudmVydGljYWxTY3JvbGxiYXJTdHlsZSxzbW9vdGhTY3JvbGxpbmc6YSxtaW5TY3JvbGxTaXplOnRoaXMucHJvcHMubWluU2Nyb2xsU2l6ZSxvbkZvY3VzOnRoaXMuZm9jdXNDb250ZW50LmJpbmQodGhpcyksdHlwZTpcInZlcnRpY2FsXCJ9KTpudWxsLHU9dGhpcy5jYW5TY3JvbGxYKCk/Zi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUy5kZWZhdWx0LHtvd25lckRvY3VtZW50OmkscmVhbFNpemU6dGhpcy5zdGF0ZS5yZWFsV2lkdGgsY29udGFpbmVyU2l6ZTp0aGlzLnN0YXRlLmNvbnRhaW5lcldpZHRoLHBvc2l0aW9uOnRoaXMuc3RhdGUubGVmdFBvc2l0aW9uLG9uTW92ZTp0aGlzLmhhbmRsZVNjcm9sbGJhck1vdmUuYmluZCh0aGlzKSxvblBvc2l0aW9uQ2hhbmdlOnRoaXMuaGFuZGxlU2Nyb2xsYmFyWFBvc2l0aW9uQ2hhbmdlLmJpbmQodGhpcyksY29udGFpbmVyU3R5bGU6dGhpcy5wcm9wcy5ob3Jpem9udGFsQ29udGFpbmVyU3R5bGUsc2Nyb2xsYmFyU3R5bGU6dGhpcy5wcm9wcy5ob3Jpem9udGFsU2Nyb2xsYmFyU3R5bGUsc21vb3RoU2Nyb2xsaW5nOmEsbWluU2Nyb2xsU2l6ZTp0aGlzLnByb3BzLm1pblNjcm9sbFNpemUsb25Gb2N1czp0aGlzLmZvY3VzQ29udGVudC5iaW5kKHRoaXMpLHR5cGU6XCJob3Jpem9udGFsXCJ9KTpudWxsO1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/KCgwLG0ud2FybkFib3V0RnVuY3Rpb25DaGlsZCkoKSxuPW4oKSk6KDAsbS53YXJuQWJvdXRFbGVtZW50Q2hpbGQpKCk7dmFyIGM9XCJzY3JvbGxhcmVhIFwiKyhvfHxcIlwiKSxwPVwic2Nyb2xsYXJlYS1jb250ZW50IFwiKyhyfHxcIlwiKSxkPXttYXJnaW5Ub3A6LXRoaXMuc3RhdGUudG9wUG9zaXRpb24sbWFyZ2luTGVmdDotdGhpcy5zdGF0ZS5sZWZ0UG9zaXRpb259LGg9YT8oMCxtLm1vZGlmeU9ialZhbHVlcykoZCxmdW5jdGlvbihlKXtyZXR1cm4oMCx2LnNwcmluZykoZSl9KTpkO3JldHVybiBmLmRlZmF1bHQuY3JlYXRlRWxlbWVudCh2Lk1vdGlvbix7c3R5bGU6aH0sZnVuY3Rpb24odCl7cmV0dXJuIGYuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse3JlZjpmdW5jdGlvbih0KXtyZXR1cm4gZS53cmFwcGVyPXR9LGNsYXNzTmFtZTpjLHN0eWxlOmUucHJvcHMuc3R5bGUsb25XaGVlbDplLmhhbmRsZVdoZWVsLmJpbmQoZSl9LGYuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse3JlZjpmdW5jdGlvbih0KXtyZXR1cm4gZS5jb250ZW50PXR9LHN0eWxlOnMoe30sZS5wcm9wcy5jb250ZW50U3R5bGUsdCksY2xhc3NOYW1lOnAsb25Ub3VjaFN0YXJ0OmUuaGFuZGxlVG91Y2hTdGFydC5iaW5kKGUpLG9uVG91Y2hNb3ZlOmUuaGFuZGxlVG91Y2hNb3ZlLmJpbmQoZSksb25Ub3VjaEVuZDplLmhhbmRsZVRvdWNoRW5kLmJpbmQoZSksb25LZXlEb3duOmUuaGFuZGxlS2V5RG93bi5iaW5kKGUpLHRhYkluZGV4OmUucHJvcHMuZm9jdXNhYmxlVGFiSW5kZXh9LG4pLGwsdSl9KX19LHtrZXk6XCJzZXRTdGF0ZUZyb21FdmVudFwiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5wcm9wcy5vblNjcm9sbCYmdGhpcy5wcm9wcy5vblNjcm9sbChlKSx0aGlzLnNldFN0YXRlKHMoe30sZSx7ZXZlbnRUeXBlOnR9KSl9fSx7a2V5OlwiaGFuZGxlVG91Y2hTdGFydFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWUudG91Y2hlcztpZigxPT09dC5sZW5ndGgpe3ZhciBuPXRbMF0sbz1uLmNsaWVudFgscj1uLmNsaWVudFk7dGhpcy5ldmVudFByZXZpb3VzVmFsdWVzPXMoe30sdGhpcy5ldmVudFByZXZpb3VzVmFsdWVzLHtjbGllbnRZOnIsY2xpZW50WDpvLHRpbWVzdGFtcDpEYXRlLm5vdygpfSl9fX0se2tleTpcImhhbmRsZVRvdWNoTW92ZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuY2FuU2Nyb2xsKCkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7dmFyIHQ9ZS50b3VjaGVzO2lmKDE9PT10Lmxlbmd0aCl7dmFyIG49dFswXSxvPW4uY2xpZW50WCxyPW4uY2xpZW50WSxpPXRoaXMuZXZlbnRQcmV2aW91c1ZhbHVlcy5jbGllbnRZLXIsYT10aGlzLmV2ZW50UHJldmlvdXNWYWx1ZXMuY2xpZW50WC1vO3RoaXMuZXZlbnRQcmV2aW91c1ZhbHVlcz1zKHt9LHRoaXMuZXZlbnRQcmV2aW91c1ZhbHVlcyx7ZGVsdGFZOmksZGVsdGFYOmEsY2xpZW50WTpyLGNsaWVudFg6byx0aW1lc3RhbXA6RGF0ZS5ub3coKX0pLHRoaXMuc2V0U3RhdGVGcm9tRXZlbnQodGhpcy5jb21wb3NlTmV3U3RhdGUoLWEsLWkpKX19fSx7a2V5OlwiaGFuZGxlVG91Y2hFbmRcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmV2ZW50UHJldmlvdXNWYWx1ZXMsbj10LmRlbHRhWCxvPXQuZGVsdGFZLHI9dC50aW1lc3RhbXA7XCJ1bmRlZmluZWRcIj09dHlwZW9mIG4mJihuPTApLFwidW5kZWZpbmVkXCI9PXR5cGVvZiBvJiYobz0wKSxEYXRlLm5vdygpLXI8MjAwJiZ0aGlzLnNldFN0YXRlRnJvbUV2ZW50KHRoaXMuY29tcG9zZU5ld1N0YXRlKDEwKi1uLDEwKi1vKSxnLnRvdWNoRW5kKSx0aGlzLmV2ZW50UHJldmlvdXNWYWx1ZXM9cyh7fSx0aGlzLmV2ZW50UHJldmlvdXNWYWx1ZXMse2RlbHRhWTowLGRlbHRhWDowfSl9fSx7a2V5OlwiaGFuZGxlU2Nyb2xsYmFyTW92ZVwiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5zZXRTdGF0ZUZyb21FdmVudCh0aGlzLmNvbXBvc2VOZXdTdGF0ZSh0LGUpKX19LHtrZXk6XCJoYW5kbGVTY3JvbGxiYXJYUG9zaXRpb25DaGFuZ2VcIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLnNjcm9sbFhUbyhlKX19LHtrZXk6XCJoYW5kbGVTY3JvbGxiYXJZUG9zaXRpb25DaGFuZ2VcIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLnNjcm9sbFlUbyhlKX19LHtrZXk6XCJoYW5kbGVXaGVlbFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWUuZGVsdGFZLG49ZS5kZWx0YVg7aWYodGhpcy5wcm9wcy5zd2FwV2hlZWxBeGVzKXt2YXIgbz1bbix0XTt0PW9bMF0sbj1vWzFdfTE9PT1lLmRlbHRhTW9kZSYmKHQqPXRoaXMubGluZUhlaWdodFB4LG4qPXRoaXMubGluZUhlaWdodFB4KSx0Kj10aGlzLnByb3BzLnNwZWVkLG4qPXRoaXMucHJvcHMuc3BlZWQ7dmFyIHI9dGhpcy5jb21wb3NlTmV3U3RhdGUoLW4sLXQpOyhyLnRvcFBvc2l0aW9uJiZ0aGlzLnN0YXRlLnRvcFBvc2l0aW9uIT09ci50b3BQb3NpdGlvbnx8ci5sZWZ0UG9zaXRpb24mJnRoaXMuc3RhdGUubGVmdFBvc2l0aW9uIT09ci5sZWZ0UG9zaXRpb258fHRoaXMucHJvcHMuc3RvcFNjcm9sbFByb3BhZ2F0aW9uKSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKSx0aGlzLnNldFN0YXRlRnJvbUV2ZW50KHIsZy53aGVlbCksdGhpcy5mb2N1c0NvbnRlbnQoKX19LHtrZXk6XCJoYW5kbGVLZXlEb3duXCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoXCJpbnB1dFwiIT09ZS50YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpJiZcInRleHRhcmVhXCIhPT1lLnRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJiFlLnRhcmdldC5pc0NvbnRlbnRFZGl0YWJsZSl7dmFyIHQ9MCxuPTAsbz10aGlzLmxpbmVIZWlnaHRQeD90aGlzLmxpbmVIZWlnaHRQeDoxMDtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIDMzOnQ9dGhpcy5zdGF0ZS5jb250YWluZXJIZWlnaHQtbzticmVhaztjYXNlIDM0OnQ9LXRoaXMuc3RhdGUuY29udGFpbmVySGVpZ2h0K287YnJlYWs7Y2FzZSAzNzpuPW87YnJlYWs7Y2FzZSAzODp0PW87YnJlYWs7Y2FzZSAzOTpuPS1vO2JyZWFrO2Nhc2UgNDA6dD0tb31pZigwIT09dHx8MCE9PW4pe3ZhciByPXRoaXMuY29tcG9zZU5ld1N0YXRlKG4sdCk7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zZXRTdGF0ZUZyb21FdmVudChyLGcua2V5UHJlc3MpfX19fSx7a2V5OlwiaGFuZGxlV2luZG93UmVzaXplXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbXB1dGVTaXplcygpO2U9dGhpcy5nZXRNb2RpZmllZFBvc2l0aW9uc0lmTmVlZGVkKGUpLHRoaXMuc2V0U3RhdGVGcm9tRXZlbnQoZSl9fSx7a2V5OlwiY29tcG9zZU5ld1N0YXRlXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNvbXB1dGVTaXplcygpO3JldHVybiB0aGlzLmNhblNjcm9sbFkobik/bi50b3BQb3NpdGlvbj10aGlzLmNvbXB1dGVUb3BQb3NpdGlvbih0LG4pOm4udG9wUG9zaXRpb249MCx0aGlzLmNhblNjcm9sbFgobikmJihuLmxlZnRQb3NpdGlvbj10aGlzLmNvbXB1dGVMZWZ0UG9zaXRpb24oZSxuKSksbn19LHtrZXk6XCJjb21wdXRlVG9wUG9zaXRpb25cIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuc3RhdGUudG9wUG9zaXRpb24tZTtyZXR1cm4gdGhpcy5ub3JtYWxpemVUb3BQb3NpdGlvbihuLHQpfX0se2tleTpcImNvbXB1dGVMZWZ0UG9zaXRpb25cIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuc3RhdGUubGVmdFBvc2l0aW9uLWU7cmV0dXJuIHRoaXMubm9ybWFsaXplTGVmdFBvc2l0aW9uKG4sdCl9fSx7a2V5Olwibm9ybWFsaXplVG9wUG9zaXRpb25cIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPnQucmVhbEhlaWdodC10LmNvbnRhaW5lckhlaWdodCYmKGU9dC5yZWFsSGVpZ2h0LXQuY29udGFpbmVySGVpZ2h0KSxlPDAmJihlPTApLGV9fSx7a2V5Olwibm9ybWFsaXplTGVmdFBvc2l0aW9uXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT50LnJlYWxXaWR0aC10LmNvbnRhaW5lcldpZHRoP2U9dC5yZWFsV2lkdGgtdC5jb250YWluZXJXaWR0aDplPDAmJihlPTApLGV9fSx7a2V5OlwiY29tcHV0ZVNpemVzXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRlbnQub2Zmc2V0SGVpZ2h0LHQ9dGhpcy53cmFwcGVyLm9mZnNldEhlaWdodCxuPXRoaXMuY29udGVudC5vZmZzZXRXaWR0aCxvPXRoaXMud3JhcHBlci5vZmZzZXRXaWR0aDtyZXR1cm57cmVhbEhlaWdodDplLGNvbnRhaW5lckhlaWdodDp0LHJlYWxXaWR0aDpuLGNvbnRhaW5lcldpZHRoOm99fX0se2tleTpcInNldFNpemVzVG9TdGF0ZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb21wdXRlU2l6ZXMoKTtlLnJlYWxIZWlnaHQ9PT10aGlzLnN0YXRlLnJlYWxIZWlnaHQmJmUucmVhbFdpZHRoPT09dGhpcy5zdGF0ZS5yZWFsV2lkdGh8fHRoaXMuc2V0U3RhdGVGcm9tRXZlbnQodGhpcy5nZXRNb2RpZmllZFBvc2l0aW9uc0lmTmVlZGVkKGUpKX19LHtrZXk6XCJzY3JvbGxUb3BcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsWVRvKDApfX0se2tleTpcInNjcm9sbEJvdHRvbVwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxZVG8odGhpcy5zdGF0ZS5yZWFsSGVpZ2h0LXRoaXMuc3RhdGUuY29udGFpbmVySGVpZ2h0KX19LHtrZXk6XCJzY3JvbGxMZWZ0XCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbFhUbygwKX19LHtrZXk6XCJzY3JvbGxSaWdodFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxYVG8odGhpcy5zdGF0ZS5yZWFsV2lkdGgtdGhpcy5zdGF0ZS5jb250YWluZXJXaWR0aCl9fSx7a2V5Olwic2Nyb2xsWVRvXCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5jYW5TY3JvbGxZKCkpe3ZhciB0PXRoaXMubm9ybWFsaXplVG9wUG9zaXRpb24oZSx0aGlzLmNvbXB1dGVTaXplcygpKTt0aGlzLnNldFN0YXRlRnJvbUV2ZW50KHt0b3BQb3NpdGlvbjp0fSxnLmFwaSl9fX0se2tleTpcInNjcm9sbFhUb1wiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuY2FuU2Nyb2xsWCgpKXt2YXIgdD10aGlzLm5vcm1hbGl6ZUxlZnRQb3NpdGlvbihlLHRoaXMuY29tcHV0ZVNpemVzKCkpO3RoaXMuc2V0U3RhdGVGcm9tRXZlbnQoe2xlZnRQb3NpdGlvbjp0fSxnLmFwaSl9fX0se2tleTpcImNhblNjcm9sbFlcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnN0YXRlLHQ9ZS5yZWFsSGVpZ2h0PmUuY29udGFpbmVySGVpZ2h0O3JldHVybiB0JiZ0aGlzLnByb3BzLnZlcnRpY2FsfX0se2tleTpcImNhblNjcm9sbFhcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnN0YXRlLHQ9ZS5yZWFsV2lkdGg+ZS5jb250YWluZXJXaWR0aDtyZXR1cm4gdCYmdGhpcy5wcm9wcy5ob3Jpem9udGFsfX0se2tleTpcImNhblNjcm9sbFwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuc3RhdGU7cmV0dXJuIHRoaXMuY2FuU2Nyb2xsWShlKXx8dGhpcy5jYW5TY3JvbGxYKGUpfX0se2tleTpcImdldE1vZGlmaWVkUG9zaXRpb25zSWZOZWVkZWRcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1lLnJlYWxIZWlnaHQtZS5jb250YWluZXJIZWlnaHQ7dGhpcy5zdGF0ZS50b3BQb3NpdGlvbj49dCYmKGUudG9wUG9zaXRpb249dGhpcy5jYW5TY3JvbGxZKGUpPygwLG0ucG9zaXRpdmVPclplcm8pKHQpOjApO3ZhciBuPWUucmVhbFdpZHRoLWUuY29udGFpbmVyV2lkdGg7cmV0dXJuIHRoaXMuc3RhdGUubGVmdFBvc2l0aW9uPj1uJiYoZS5sZWZ0UG9zaXRpb249dGhpcy5jYW5TY3JvbGxYKGUpPygwLG0ucG9zaXRpdmVPclplcm8pKG4pOjApLGV9fSx7a2V5OlwiZm9jdXNDb250ZW50XCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbnRlbnQmJigwLG0uZmluZERPTU5vZGUpKHRoaXMuY29udGVudCkuZm9jdXMoKX19XSksdH0oZi5kZWZhdWx0LkNvbXBvbmVudCk7dC5kZWZhdWx0PXcsdy5jaGlsZENvbnRleHRUeXBlcz17c2Nyb2xsQXJlYTpkLmRlZmF1bHQub2JqZWN0fSx3LnByb3BUeXBlcz17Y2xhc3NOYW1lOmQuZGVmYXVsdC5zdHJpbmcsc3R5bGU6ZC5kZWZhdWx0Lm9iamVjdCxzcGVlZDpkLmRlZmF1bHQubnVtYmVyLGNvbnRlbnRDbGFzc05hbWU6ZC5kZWZhdWx0LnN0cmluZyxjb250ZW50U3R5bGU6ZC5kZWZhdWx0Lm9iamVjdCx2ZXJ0aWNhbDpkLmRlZmF1bHQuYm9vbCx2ZXJ0aWNhbENvbnRhaW5lclN0eWxlOmQuZGVmYXVsdC5vYmplY3QsdmVydGljYWxTY3JvbGxiYXJTdHlsZTpkLmRlZmF1bHQub2JqZWN0LGhvcml6b250YWw6ZC5kZWZhdWx0LmJvb2wsaG9yaXpvbnRhbENvbnRhaW5lclN0eWxlOmQuZGVmYXVsdC5vYmplY3QsaG9yaXpvbnRhbFNjcm9sbGJhclN0eWxlOmQuZGVmYXVsdC5vYmplY3Qsb25TY3JvbGw6ZC5kZWZhdWx0LmZ1bmMsY29udGVudFdpbmRvdzpkLmRlZmF1bHQuYW55LG93bmVyRG9jdW1lbnQ6ZC5kZWZhdWx0LmFueSxzbW9vdGhTY3JvbGxpbmc6ZC5kZWZhdWx0LmJvb2wsbWluU2Nyb2xsU2l6ZTpkLmRlZmF1bHQubnVtYmVyLHN3YXBXaGVlbEF4ZXM6ZC5kZWZhdWx0LmJvb2wsc3RvcFNjcm9sbFByb3BhZ2F0aW9uOmQuZGVmYXVsdC5ib29sLGZvY3VzYWJsZVRhYkluZGV4OmQuZGVmYXVsdC5udW1iZXJ9LHcuZGVmYXVsdFByb3BzPXtzcGVlZDoxLHZlcnRpY2FsOiEwLGhvcml6b250YWw6ITAsc21vb3RoU2Nyb2xsaW5nOiExLHN3YXBXaGVlbEF4ZXM6ITEsY29udGVudFdpbmRvdzpcIm9iamVjdFwiPT09KFwidW5kZWZpbmVkXCI9PXR5cGVvZiB3aW5kb3c/XCJ1bmRlZmluZWRcIjpsKHdpbmRvdykpP3dpbmRvdzp2b2lkIDAsb3duZXJEb2N1bWVudDpcIm9iamVjdFwiPT09KFwidW5kZWZpbmVkXCI9PXR5cGVvZiBkb2N1bWVudD9cInVuZGVmaW5lZFwiOmwoZG9jdW1lbnQpKT9kb2N1bWVudDp2b2lkIDAsZm9jdXNhYmxlVGFiSW5kZXg6MX19LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiByKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX1mdW5jdGlvbiBpKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiF0fHxcIm9iamVjdFwiIT10eXBlb2YgdCYmXCJmdW5jdGlvblwiIT10eXBlb2YgdD9lOnR9ZnVuY3Rpb24gYShlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBsPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIG8gaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSl9cmV0dXJuIGV9LHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBvPXRbbl07by5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbyYmKG8ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG8ua2V5LG8pfX1yZXR1cm4gZnVuY3Rpb24odCxuLG8pe3JldHVybiBuJiZlKHQucHJvdG90eXBlLG4pLG8mJmUodCxvKSx0fX0oKSx1PW4oMSksYz1vKHUpLGY9bigyKSxwPW8oZiksZD1uKDEyKSxoPW4oOSkseT1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KGUpe3IodGhpcyx0KTt2YXIgbj1pKHRoaXMsKHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmNhbGwodGhpcyxlKSksbz1uLmNhbGN1bGF0ZVN0YXRlKGUpO3JldHVybiBuLnN0YXRlPXtwb3NpdGlvbjpvLnBvc2l0aW9uLHNjcm9sbFNpemU6by5zY3JvbGxTaXplLGlzRHJhZ2dpbmc6ITEsbGFzdENsaWVudFBvc2l0aW9uOjB9LFwidmVydGljYWxcIj09PWUudHlwZT9uLmJpbmRlZEhhbmRsZU1vdXNlTW92ZT1uLmhhbmRsZU1vdXNlTW92ZUZvclZlcnRpY2FsLmJpbmQobik6bi5iaW5kZWRIYW5kbGVNb3VzZU1vdmU9bi5oYW5kbGVNb3VzZU1vdmVGb3JIb3Jpem9udGFsLmJpbmQobiksbi5iaW5kZWRIYW5kbGVNb3VzZVVwPW4uaGFuZGxlTW91c2VVcC5iaW5kKG4pLG59cmV0dXJuIGEodCxlKSxzKHQsW3trZXk6XCJjb21wb25lbnREaWRNb3VudFwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm9wcy5vd25lckRvY3VtZW50JiYodGhpcy5wcm9wcy5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIix0aGlzLmJpbmRlZEhhbmRsZU1vdXNlTW92ZSksdGhpcy5wcm9wcy5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsdGhpcy5iaW5kZWRIYW5kbGVNb3VzZVVwKSl9fSx7a2V5OlwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1wiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMuc2V0U3RhdGUodGhpcy5jYWxjdWxhdGVTdGF0ZShlKSl9fSx7a2V5OlwiY29tcG9uZW50V2lsbFVubW91bnRcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucHJvcHMub3duZXJEb2N1bWVudCYmKHRoaXMucHJvcHMub3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsdGhpcy5iaW5kZWRIYW5kbGVNb3VzZU1vdmUpLHRoaXMucHJvcHMub3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLHRoaXMuYmluZGVkSGFuZGxlTW91c2VVcCkpfX0se2tleTpcImNhbGN1bGF0ZUZyYWN0aW9uYWxQb3NpdGlvblwiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1lLXQ7cmV0dXJuIDEtKG8tbikvb319LHtrZXk6XCJjYWxjdWxhdGVTdGF0ZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuY2FsY3VsYXRlRnJhY3Rpb25hbFBvc2l0aW9uKGUucmVhbFNpemUsZS5jb250YWluZXJTaXplLGUucG9zaXRpb24pLG49ZS5jb250YWluZXJTaXplKmUuY29udGFpbmVyU2l6ZS9lLnJlYWxTaXplLG89bjxlLm1pblNjcm9sbFNpemU/ZS5taW5TY3JvbGxTaXplOm4scj0oZS5jb250YWluZXJTaXplLW8pKnQ7cmV0dXJue3Njcm9sbFNpemU6byxwb3NpdGlvbjpNYXRoLnJvdW5kKHIpfX19LHtrZXk6XCJyZW5kZXJcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLnByb3BzLG49dC5zbW9vdGhTY3JvbGxpbmcsbz10LmlzRHJhZ2dpbmcscj10LnR5cGUsaT10LnNjcm9sbGJhclN0eWxlLGE9dC5jb250YWluZXJTdHlsZSxzPVwiaG9yaXpvbnRhbFwiPT09cix1PVwidmVydGljYWxcIj09PXIsZj10aGlzLmNyZWF0ZVNjcm9sbFN0eWxlcygpLHA9bj8oMCxoLm1vZGlmeU9ialZhbHVlcykoZixmdW5jdGlvbihlKXtyZXR1cm4oMCxkLnNwcmluZykoZSl9KTpmLHk9XCJzY3JvbGxiYXItY29udGFpbmVyIFwiKyhvP1wiYWN0aXZlXCI6XCJcIikrXCIgXCIrKHM/XCJob3Jpem9udGFsXCI6XCJcIikrXCIgXCIrKHU/XCJ2ZXJ0aWNhbFwiOlwiXCIpO3JldHVybiBjLmRlZmF1bHQuY3JlYXRlRWxlbWVudChkLk1vdGlvbix7c3R5bGU6cH0sZnVuY3Rpb24odCl7cmV0dXJuIGMuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTp5LHN0eWxlOmEsb25Nb3VzZURvd246ZS5oYW5kbGVTY3JvbGxCYXJDb250YWluZXJDbGljay5iaW5kKGUpLHJlZjpmdW5jdGlvbih0KXtyZXR1cm4gZS5zY3JvbGxiYXJDb250YWluZXI9dH19LGMuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcInNjcm9sbGJhclwiLHN0eWxlOmwoe30saSx0KSxvbk1vdXNlRG93bjplLmhhbmRsZU1vdXNlRG93bi5iaW5kKGUpfSkpfSl9fSx7a2V5OlwiaGFuZGxlU2Nyb2xsQmFyQ29udGFpbmVyQ2xpY2tcIix2YWx1ZTpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9dGhpcy5jb21wdXRlTXVsdGlwbGllcigpLG49dGhpcy5pc1ZlcnRpY2FsKCk/ZS5jbGllbnRZOmUuY2xpZW50WCxvPXRoaXMuc2Nyb2xsYmFyQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9by50b3AsaT1vLmxlZnQsYT10aGlzLmlzVmVydGljYWwoKT9yOmksbD1uLWEscz10aGlzLnByb3BzLmNvbnRhaW5lclNpemUqdGhpcy5wcm9wcy5jb250YWluZXJTaXplL3RoaXMucHJvcHMucmVhbFNpemU7dGhpcy5zZXRTdGF0ZSh7aXNEcmFnZ2luZzohMCxsYXN0Q2xpZW50UG9zaXRpb246bn0pLHRoaXMucHJvcHMub25Qb3NpdGlvbkNoYW5nZSgobC1zLzIpL3QpfX0se2tleTpcImhhbmRsZU1vdXNlTW92ZUZvckhvcml6b250YWxcIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmNvbXB1dGVNdWx0aXBsaWVyKCk7aWYodGhpcy5zdGF0ZS5pc0RyYWdnaW5nKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49dGhpcy5zdGF0ZS5sYXN0Q2xpZW50UG9zaXRpb24tZS5jbGllbnRYO3RoaXMuc2V0U3RhdGUoe2xhc3RDbGllbnRQb3NpdGlvbjplLmNsaWVudFh9KSx0aGlzLnByb3BzLm9uTW92ZSgwLG4vdCl9fX0se2tleTpcImhhbmRsZU1vdXNlTW92ZUZvclZlcnRpY2FsXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5jb21wdXRlTXVsdGlwbGllcigpO2lmKHRoaXMuc3RhdGUuaXNEcmFnZ2luZyl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPXRoaXMuc3RhdGUubGFzdENsaWVudFBvc2l0aW9uLWUuY2xpZW50WTt0aGlzLnNldFN0YXRlKHtsYXN0Q2xpZW50UG9zaXRpb246ZS5jbGllbnRZfSksdGhpcy5wcm9wcy5vbk1vdmUobi90LDApfX19LHtrZXk6XCJoYW5kbGVNb3VzZURvd25cIix2YWx1ZTpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgdD10aGlzLmlzVmVydGljYWwoKT9lLmNsaWVudFk6ZS5jbGllbnRYO3RoaXMuc2V0U3RhdGUoe2lzRHJhZ2dpbmc6ITAsbGFzdENsaWVudFBvc2l0aW9uOnR9KSx0aGlzLnByb3BzLm9uRm9jdXMoKX19LHtrZXk6XCJoYW5kbGVNb3VzZVVwXCIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5zdGF0ZS5pc0RyYWdnaW5nJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2V0U3RhdGUoe2lzRHJhZ2dpbmc6ITF9KSl9fSx7a2V5OlwiY3JlYXRlU2Nyb2xsU3R5bGVzXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5cInZlcnRpY2FsXCI9PT10aGlzLnByb3BzLnR5cGU/e2hlaWdodDp0aGlzLnN0YXRlLnNjcm9sbFNpemUsbWFyZ2luVG9wOnRoaXMuc3RhdGUucG9zaXRpb259Ont3aWR0aDp0aGlzLnN0YXRlLnNjcm9sbFNpemUsbWFyZ2luTGVmdDp0aGlzLnN0YXRlLnBvc2l0aW9ufX19LHtrZXk6XCJjb21wdXRlTXVsdGlwbGllclwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvcHMuY29udGFpbmVyU2l6ZS90aGlzLnByb3BzLnJlYWxTaXplfX0se2tleTpcImlzVmVydGljYWxcIix2YWx1ZTpmdW5jdGlvbigpe3JldHVyblwidmVydGljYWxcIj09PXRoaXMucHJvcHMudHlwZX19XSksdH0oYy5kZWZhdWx0LkNvbXBvbmVudCk7eS5wcm9wVHlwZXM9e29uTW92ZTpwLmRlZmF1bHQuZnVuYyxvblBvc2l0aW9uQ2hhbmdlOnAuZGVmYXVsdC5mdW5jLG9uRm9jdXM6cC5kZWZhdWx0LmZ1bmMscmVhbFNpemU6cC5kZWZhdWx0Lm51bWJlcixjb250YWluZXJTaXplOnAuZGVmYXVsdC5udW1iZXIscG9zaXRpb246cC5kZWZhdWx0Lm51bWJlcixjb250YWluZXJTdHlsZTpwLmRlZmF1bHQub2JqZWN0LHNjcm9sbGJhclN0eWxlOnAuZGVmYXVsdC5vYmplY3QsdHlwZTpwLmRlZmF1bHQub25lT2YoW1widmVydGljYWxcIixcImhvcml6b250YWxcIl0pLG93bmVyRG9jdW1lbnQ6cC5kZWZhdWx0LmFueSxzbW9vdGhTY3JvbGxpbmc6cC5kZWZhdWx0LmJvb2wsbWluU2Nyb2xsU2l6ZTpwLmRlZmF1bHQubnVtYmVyfSx5LmRlZmF1bHRQcm9wcz17dHlwZTpcInZlcnRpY2FsXCIsc21vb3RoU2Nyb2xsaW5nOiExfSx0LmRlZmF1bHQ9eX0sZnVuY3Rpb24oZSx0KXt2YXIgbj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG49d2luZG93LmdldENvbXB1dGVkU3R5bGUsKG4/bihlKTplLmN1cnJlbnRTdHlsZSlbdC5yZXBsYWNlKC8tKFxcdykvZ2ksZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfSldfTtlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0LG4pe3Q9ZS5leHBvcnRzPW4oMTcpKCksdC5wdXNoKFtlLmlkLFwiLnNjcm9sbGFyZWEtY29udGVudHttYXJnaW46MDtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5zY3JvbGxhcmVhLWNvbnRlbnQ6Zm9jdXN7b3V0bGluZTowfS5zY3JvbGxhcmVhe3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0uc2Nyb2xsYXJlYSAuc2Nyb2xsYmFyLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOm5vbmU7b3BhY2l0eTouMTt6LWluZGV4Ojk5OTk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuNHM7dHJhbnNpdGlvbjphbGwgLjRzfS5zY3JvbGxhcmVhIC5zY3JvbGxiYXItY29udGFpbmVyLmhvcml6b250YWx7d2lkdGg6MTAwJTtoZWlnaHQ6MTBweDtsZWZ0OjA7Ym90dG9tOjB9LnNjcm9sbGFyZWEgLnNjcm9sbGJhci1jb250YWluZXIuaG9yaXpvbnRhbCAuc2Nyb2xsYmFye3dpZHRoOjIwcHg7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kOiMwMDA7bWFyZ2luLXRvcDoxcHh9LnNjcm9sbGFyZWEgLnNjcm9sbGJhci1jb250YWluZXIudmVydGljYWx7d2lkdGg6MTBweDtoZWlnaHQ6MTAwJTtyaWdodDowO3RvcDowfS5zY3JvbGxhcmVhIC5zY3JvbGxiYXItY29udGFpbmVyLnZlcnRpY2FsIC5zY3JvbGxiYXJ7d2lkdGg6OHB4O2hlaWdodDoyMHB4O2JhY2tncm91bmQ6IzAwMDttYXJnaW4tbGVmdDoxcHh9LnNjcm9sbGFyZWEgLnNjcm9sbGJhci1jb250YWluZXIuYWN0aXZlLC5zY3JvbGxhcmVhIC5zY3JvbGxiYXItY29udGFpbmVyOmhvdmVye2JhY2tncm91bmQ6Z3JheTtvcGFjaXR5Oi42IWltcG9ydGFudH0uc2Nyb2xsYXJlYTpob3ZlciAuc2Nyb2xsYmFyLWNvbnRhaW5lcntvcGFjaXR5Oi4zfVwiLFwiXCJdKX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDx0aGlzLmxlbmd0aDt0Kyspe3ZhciBuPXRoaXNbdF07blsyXT9lLnB1c2goXCJAbWVkaWEgXCIrblsyXStcIntcIituWzFdK1wifVwiKTplLnB1c2goblsxXSl9cmV0dXJuIGUuam9pbihcIlwiKX0sZS5pPWZ1bmN0aW9uKHQsbil7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PVtbbnVsbCx0LFwiXCJdXSk7Zm9yKHZhciBvPXt9LHI9MDtyPHRoaXMubGVuZ3RoO3IrKyl7dmFyIGk9dGhpc1tyXVswXTtcIm51bWJlclwiPT10eXBlb2YgaSYmKG9baV09ITApfWZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBhPXRbcl07XCJudW1iZXJcIj09dHlwZW9mIGFbMF0mJm9bYVswXV18fChuJiYhYVsyXT9hWzJdPW46biYmKGFbMl09XCIoXCIrYVsyXStcIikgYW5kIChcIituK1wiKVwiKSxlLnB1c2goYSkpfX0sZX19LGZ1bmN0aW9uKGUsdCxuKXtmdW5jdGlvbiBvKGUpe3ZhciB0PXIoZSxcImxpbmUtaGVpZ2h0XCIpLG49cGFyc2VGbG9hdCh0LDEwKTtpZih0PT09bitcIlwiKXt2YXIgbz1lLnN0eWxlLmxpbmVIZWlnaHQ7ZS5zdHlsZS5saW5lSGVpZ2h0PXQrXCJlbVwiLHQ9cihlLFwibGluZS1oZWlnaHRcIiksbj1wYXJzZUZsb2F0KHQsMTApLG8/ZS5zdHlsZS5saW5lSGVpZ2h0PW86ZGVsZXRlIGUuc3R5bGUubGluZUhlaWdodH1pZih0LmluZGV4T2YoXCJwdFwiKSE9PS0xPyhuKj00LG4vPTMpOnQuaW5kZXhPZihcIm1tXCIpIT09LTE/KG4qPTk2LG4vPTI1LjQpOnQuaW5kZXhPZihcImNtXCIpIT09LTE/KG4qPTk2LG4vPTIuNTQpOnQuaW5kZXhPZihcImluXCIpIT09LTE/bio9OTY6dC5pbmRleE9mKFwicGNcIikhPT0tMSYmKG4qPTE2KSxuPU1hdGgucm91bmQobiksXCJub3JtYWxcIj09PXQpe3ZhciBpPWUubm9kZU5hbWUsYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGkpO2EuaW5uZXJIVE1MPVwiJm5ic3A7XCI7dmFyIGw9cihlLFwiZm9udC1zaXplXCIpO2Euc3R5bGUuZm9udFNpemU9bDt2YXIgcz1kb2N1bWVudC5ib2R5O3MuYXBwZW5kQ2hpbGQoYSk7dmFyIHU9YS5vZmZzZXRIZWlnaHQ7bj11LHMucmVtb3ZlQ2hpbGQoYSl9cmV0dXJuIG59dmFyIHI9bigxNSk7ZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjt2YXIgbz1uKDIxKSxyPW4oMjIpLGk9bigyMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsbixvLGEsbCl7bCE9PWkmJnIoITEsXCJDYWxsaW5nIFByb3BUeXBlcyB2YWxpZGF0b3JzIGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGBwcm9wLXR5cGVzYCBwYWNrYWdlLiBVc2UgUHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzKCkgdG8gY2FsbCB0aGVtLiBSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzXCIpfWZ1bmN0aW9uIHQoKXtyZXR1cm4gZX1lLmlzUmVxdWlyZWQ9ZTt2YXIgbj17YXJyYXk6ZSxib29sOmUsZnVuYzplLG51bWJlcjplLG9iamVjdDplLHN0cmluZzplLHN5bWJvbDplLGFueTplLGFycmF5T2Y6dCxlbGVtZW50OmUsaW5zdGFuY2VPZjp0LG5vZGU6ZSxvYmplY3RPZjp0LG9uZU9mOnQsb25lT2ZUeXBlOnQsc2hhcGU6dCxleGFjdDp0fTtyZXR1cm4gbi5jaGVja1Byb3BUeXBlcz1vLG4uUHJvcFR5cGVzPW4sbn19LGZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49XCJTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRFwiO2UuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBvPWZ1bmN0aW9uKCl7fTtvLnRoYXRSZXR1cm5zPW4sby50aGF0UmV0dXJuc0ZhbHNlPW4oITEpLG8udGhhdFJldHVybnNUcnVlPW4oITApLG8udGhhdFJldHVybnNOdWxsPW4obnVsbCksby50aGF0UmV0dXJuc1RoaXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sby50aGF0UmV0dXJuc0FyZ3VtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBlfSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSx0LG4sbyxpLGEsbCxzKXtpZihyKHQpLCFlKXt2YXIgdTtpZih2b2lkIDA9PT10KXU9bmV3IEVycm9yKFwiTWluaWZpZWQgZXhjZXB0aW9uIG9jY3VycmVkOyB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIHRoZSBmdWxsIGVycm9yIG1lc3NhZ2UgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy5cIik7ZWxzZXt2YXIgYz1bbixvLGksYSxsLHNdLGY9MDt1PW5ldyBFcnJvcih0LnJlcGxhY2UoLyVzL2csZnVuY3Rpb24oKXtyZXR1cm4gY1tmKytdfSkpLHUubmFtZT1cIkludmFyaWFudCBWaW9sYXRpb25cIn10aHJvdyB1LmZyYW1lc1RvUG9wPTEsdX19dmFyIHI9ZnVuY3Rpb24oZSl7fTtlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyhmdW5jdGlvbih0KXsoZnVuY3Rpb24oKXt2YXIgbixvLHIsaSxhLGw7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHBlcmZvcm1hbmNlJiZudWxsIT09cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9lLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2Uubm93KCl9OlwidW5kZWZpbmVkXCIhPXR5cGVvZiB0JiZudWxsIT09dCYmdC5ocnRpbWU/KGUuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybihuKCktYSkvMWU2fSxvPXQuaHJ0aW1lLG49ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gZT1vKCksMWU5KmVbMF0rZVsxXX0saT1uKCksbD0xZTkqdC51cHRpbWUoKSxhPWktbCk6RGF0ZS5ub3c/KGUuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpLXJ9LHI9RGF0ZS5ub3coKSk6KGUuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpLXJ9LHI9KG5ldyBEYXRlKS5nZXRUaW1lKCkpfSkuY2FsbCh0aGlzKX0pLmNhbGwodCxuKDEwKSl9LGZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBvKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiByKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX1mdW5jdGlvbiBpKGUsdCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmbnVsbCE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9dC5fX2VzTW9kdWxlPSEwO3ZhciBhPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIG8gaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSl9cmV0dXJuIGV9LGw9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBvPXRbbl07by5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbyYmKG8ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG8ua2V5LG8pfX1yZXR1cm4gZnVuY3Rpb24odCxuLG8pe3JldHVybiBuJiZlKHQucHJvdG90eXBlLG4pLG8mJmUodCxvKSx0fX0oKSxzPW4oNiksdT1vKHMpLGM9bigzKSxmPW8oYykscD1uKDgpLGQ9byhwKSxoPW4oNCkseT1vKGgpLHY9big1KSxtPW8odiksYj1uKDcpLFM9byhiKSxnPW4oMSksdz1vKGcpLFA9bigyKSxUPW8oUCksaz0xZTMvNjAsTz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KG4pe3ZhciBvPXRoaXM7cih0aGlzLHQpLGUuY2FsbCh0aGlzLG4pLHRoaXMud2FzQW5pbWF0aW5nPSExLHRoaXMuYW5pbWF0aW9uSUQ9bnVsbCx0aGlzLnByZXZUaW1lPTAsdGhpcy5hY2N1bXVsYXRlZFRpbWU9MCx0aGlzLnVucmVhZFByb3BTdHlsZT1udWxsLHRoaXMuY2xlYXJVbnJlYWRQcm9wU3R5bGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ITEsbj1vLnN0YXRlLHI9bi5jdXJyZW50U3R5bGUsaT1uLmN1cnJlbnRWZWxvY2l0eSxsPW4ubGFzdElkZWFsU3R5bGUscz1uLmxhc3RJZGVhbFZlbG9jaXR5O2Zvcih2YXIgdSBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHUpKXt2YXIgYz1lW3VdO1wibnVtYmVyXCI9PXR5cGVvZiBjJiYodHx8KHQ9ITAscj1hKHt9LHIpLGk9YSh7fSxpKSxsPWEoe30sbCkscz1hKHt9LHMpKSxyW3VdPWMsaVt1XT0wLGxbdV09YyxzW3VdPTApfXQmJm8uc2V0U3RhdGUoe2N1cnJlbnRTdHlsZTpyLGN1cnJlbnRWZWxvY2l0eTppLGxhc3RJZGVhbFN0eWxlOmwsbGFzdElkZWFsVmVsb2NpdHk6c30pfSx0aGlzLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3Nhcnk9ZnVuY3Rpb24oKXtvLmFuaW1hdGlvbklEPW0uZGVmYXVsdChmdW5jdGlvbihlKXt2YXIgdD1vLnByb3BzLnN0eWxlO2lmKFMuZGVmYXVsdChvLnN0YXRlLmN1cnJlbnRTdHlsZSx0LG8uc3RhdGUuY3VycmVudFZlbG9jaXR5KSlyZXR1cm4gby53YXNBbmltYXRpbmcmJm8ucHJvcHMub25SZXN0JiZvLnByb3BzLm9uUmVzdCgpLG8uYW5pbWF0aW9uSUQ9bnVsbCxvLndhc0FuaW1hdGluZz0hMSx2b2lkKG8uYWNjdW11bGF0ZWRUaW1lPTApO28ud2FzQW5pbWF0aW5nPSEwO3ZhciBuPWV8fHkuZGVmYXVsdCgpLHI9bi1vLnByZXZUaW1lO2lmKG8ucHJldlRpbWU9bixvLmFjY3VtdWxhdGVkVGltZT1vLmFjY3VtdWxhdGVkVGltZStyLG8uYWNjdW11bGF0ZWRUaW1lPjEwKmsmJihvLmFjY3VtdWxhdGVkVGltZT0wKSwwPT09by5hY2N1bXVsYXRlZFRpbWUpcmV0dXJuIG8uYW5pbWF0aW9uSUQ9bnVsbCx2b2lkIG8uc3RhcnRBbmltYXRpb25JZk5lY2Vzc2FyeSgpO3ZhciBpPShvLmFjY3VtdWxhdGVkVGltZS1NYXRoLmZsb29yKG8uYWNjdW11bGF0ZWRUaW1lL2spKmspL2ssYT1NYXRoLmZsb29yKG8uYWNjdW11bGF0ZWRUaW1lL2spLGw9e30scz17fSx1PXt9LGM9e307Zm9yKHZhciBmIGluIHQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZikpe3ZhciBwPXRbZl07aWYoXCJudW1iZXJcIj09dHlwZW9mIHApdVtmXT1wLGNbZl09MCxsW2ZdPXAsc1tmXT0wO2Vsc2V7Zm9yKHZhciBoPW8uc3RhdGUubGFzdElkZWFsU3R5bGVbZl0sdj1vLnN0YXRlLmxhc3RJZGVhbFZlbG9jaXR5W2ZdLG09MDttPGE7bSsrKXt2YXIgYj1kLmRlZmF1bHQoay8xZTMsaCx2LHAudmFsLHAuc3RpZmZuZXNzLHAuZGFtcGluZyxwLnByZWNpc2lvbik7aD1iWzBdLHY9YlsxXX12YXIgZz1kLmRlZmF1bHQoay8xZTMsaCx2LHAudmFsLHAuc3RpZmZuZXNzLHAuZGFtcGluZyxwLnByZWNpc2lvbiksdz1nWzBdLFA9Z1sxXTt1W2ZdPWgrKHctaCkqaSxjW2ZdPXYrKFAtdikqaSxsW2ZdPWgsc1tmXT12fX1vLmFuaW1hdGlvbklEPW51bGwsby5hY2N1bXVsYXRlZFRpbWUtPWEqayxvLnNldFN0YXRlKHtjdXJyZW50U3R5bGU6dSxjdXJyZW50VmVsb2NpdHk6YyxsYXN0SWRlYWxTdHlsZTpsLGxhc3RJZGVhbFZlbG9jaXR5OnN9KSxvLnVucmVhZFByb3BTdHlsZT1udWxsLG8uc3RhcnRBbmltYXRpb25JZk5lY2Vzc2FyeSgpfSl9LHRoaXMuc3RhdGU9dGhpcy5kZWZhdWx0U3RhdGUoKX1yZXR1cm4gaSh0LGUpLGwodCxudWxsLFt7a2V5OlwicHJvcFR5cGVzXCIsdmFsdWU6e2RlZmF1bHRTdHlsZTpULmRlZmF1bHQub2JqZWN0T2YoVC5kZWZhdWx0Lm51bWJlciksc3R5bGU6VC5kZWZhdWx0Lm9iamVjdE9mKFQuZGVmYXVsdC5vbmVPZlR5cGUoW1QuZGVmYXVsdC5udW1iZXIsVC5kZWZhdWx0Lm9iamVjdF0pKS5pc1JlcXVpcmVkLGNoaWxkcmVuOlQuZGVmYXVsdC5mdW5jLmlzUmVxdWlyZWQsb25SZXN0OlQuZGVmYXVsdC5mdW5jfSxlbnVtZXJhYmxlOiEwfV0pLHQucHJvdG90eXBlLmRlZmF1bHRTdGF0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMsdD1lLmRlZmF1bHRTdHlsZSxuPWUuc3R5bGUsbz10fHxmLmRlZmF1bHQobikscj11LmRlZmF1bHQobyk7cmV0dXJue2N1cnJlbnRTdHlsZTpvLGN1cnJlbnRWZWxvY2l0eTpyLGxhc3RJZGVhbFN0eWxlOm8sbGFzdElkZWFsVmVsb2NpdHk6cn19LHQucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dGhpcy5wcmV2VGltZT15LmRlZmF1bHQoKSx0aGlzLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKX0sdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz1mdW5jdGlvbihlKXtudWxsIT10aGlzLnVucmVhZFByb3BTdHlsZSYmdGhpcy5jbGVhclVucmVhZFByb3BTdHlsZSh0aGlzLnVucmVhZFByb3BTdHlsZSksdGhpcy51bnJlYWRQcm9wU3R5bGU9ZS5zdHlsZSxudWxsPT10aGlzLmFuaW1hdGlvbklEJiYodGhpcy5wcmV2VGltZT15LmRlZmF1bHQoKSx0aGlzLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKSl9LHQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7bnVsbCE9dGhpcy5hbmltYXRpb25JRCYmKG0uZGVmYXVsdC5jYW5jZWwodGhpcy5hbmltYXRpb25JRCksdGhpcy5hbmltYXRpb25JRD1udWxsKX0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5wcm9wcy5jaGlsZHJlbih0aGlzLnN0YXRlLmN1cnJlbnRTdHlsZSk7cmV0dXJuIGUmJncuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGUpfSx0fSh3LmRlZmF1bHQuQ29tcG9uZW50KTt0LmRlZmF1bHQ9TyxlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gcihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9ZnVuY3Rpb24gaShlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfWZ1bmN0aW9uIGEoZSx0LG4pe2Zvcih2YXIgbz0wO288ZS5sZW5ndGg7bysrKWlmKCFnLmRlZmF1bHQoZVtvXSx0W29dLG5bb10pKXJldHVybiExO3JldHVybiEwfXQuX19lc01vZHVsZT0hMDt2YXIgbD1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1hcmd1bWVudHNbdF07Zm9yKHZhciBvIGluIG4pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sbykmJihlW29dPW5bb10pfXJldHVybiBlfSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgbz10W25dO28uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIG8mJihvLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxvLmtleSxvKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixvKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxvJiZlKHQsbyksdH19KCksdT1uKDYpLGM9byh1KSxmPW4oMykscD1vKGYpLGQ9big4KSxoPW8oZCkseT1uKDQpLHY9byh5KSxtPW4oNSksYj1vKG0pLFM9big3KSxnPW8oUyksdz1uKDEpLFA9byh3KSxUPW4oMiksaz1vKFQpLE89MWUzLzYwLE09ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuKXt2YXIgbz10aGlzO3IodGhpcyx0KSxlLmNhbGwodGhpcyxuKSx0aGlzLmFuaW1hdGlvbklEPW51bGwsdGhpcy5wcmV2VGltZT0wLHRoaXMuYWNjdW11bGF0ZWRUaW1lPTAsdGhpcy51bnJlYWRQcm9wU3R5bGVzPW51bGwsdGhpcy5jbGVhclVucmVhZFByb3BTdHlsZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9by5zdGF0ZSxuPXQuY3VycmVudFN0eWxlcyxyPXQuY3VycmVudFZlbG9jaXRpZXMsaT10Lmxhc3RJZGVhbFN0eWxlcyxhPXQubGFzdElkZWFsVmVsb2NpdGllcyxzPSExLHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIGM9ZVt1XSxmPSExO2Zvcih2YXIgcCBpbiBjKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLHApKXt2YXIgZD1jW3BdO1wibnVtYmVyXCI9PXR5cGVvZiBkJiYoZnx8KGY9ITAscz0hMCxuW3VdPWwoe30sblt1XSksclt1XT1sKHt9LHJbdV0pLGlbdV09bCh7fSxpW3VdKSxhW3VdPWwoe30sYVt1XSkpLG5bdV1bcF09ZCxyW3VdW3BdPTAsaVt1XVtwXT1kLGFbdV1bcF09MCl9fXMmJm8uc2V0U3RhdGUoe2N1cnJlbnRTdHlsZXM6bixjdXJyZW50VmVsb2NpdGllczpyLGxhc3RJZGVhbFN0eWxlczppLGxhc3RJZGVhbFZlbG9jaXRpZXM6YX0pfSx0aGlzLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3Nhcnk9ZnVuY3Rpb24oKXtvLmFuaW1hdGlvbklEPWIuZGVmYXVsdChmdW5jdGlvbihlKXtcbnZhciB0PW8ucHJvcHMuc3R5bGVzKG8uc3RhdGUubGFzdElkZWFsU3R5bGVzKTtpZihhKG8uc3RhdGUuY3VycmVudFN0eWxlcyx0LG8uc3RhdGUuY3VycmVudFZlbG9jaXRpZXMpKXJldHVybiBvLmFuaW1hdGlvbklEPW51bGwsdm9pZChvLmFjY3VtdWxhdGVkVGltZT0wKTt2YXIgbj1lfHx2LmRlZmF1bHQoKSxyPW4tby5wcmV2VGltZTtpZihvLnByZXZUaW1lPW4sby5hY2N1bXVsYXRlZFRpbWU9by5hY2N1bXVsYXRlZFRpbWUrcixvLmFjY3VtdWxhdGVkVGltZT4xMCpPJiYoby5hY2N1bXVsYXRlZFRpbWU9MCksMD09PW8uYWNjdW11bGF0ZWRUaW1lKXJldHVybiBvLmFuaW1hdGlvbklEPW51bGwsdm9pZCBvLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKTtmb3IodmFyIGk9KG8uYWNjdW11bGF0ZWRUaW1lLU1hdGguZmxvb3Ioby5hY2N1bXVsYXRlZFRpbWUvTykqTykvTyxsPU1hdGguZmxvb3Ioby5hY2N1bXVsYXRlZFRpbWUvTykscz1bXSx1PVtdLGM9W10sZj1bXSxwPTA7cDx0Lmxlbmd0aDtwKyspe3ZhciBkPXRbcF0seT17fSxtPXt9LGI9e30sUz17fTtmb3IodmFyIGcgaW4gZClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSl7dmFyIHc9ZFtnXTtpZihcIm51bWJlclwiPT10eXBlb2Ygdyl5W2ddPXcsbVtnXT0wLGJbZ109dyxTW2ddPTA7ZWxzZXtmb3IodmFyIFA9by5zdGF0ZS5sYXN0SWRlYWxTdHlsZXNbcF1bZ10sVD1vLnN0YXRlLmxhc3RJZGVhbFZlbG9jaXRpZXNbcF1bZ10saz0wO2s8bDtrKyspe3ZhciBNPWguZGVmYXVsdChPLzFlMyxQLFQsdy52YWwsdy5zdGlmZm5lc3Msdy5kYW1waW5nLHcucHJlY2lzaW9uKTtQPU1bMF0sVD1NWzFdfXZhciB4PWguZGVmYXVsdChPLzFlMyxQLFQsdy52YWwsdy5zdGlmZm5lc3Msdy5kYW1waW5nLHcucHJlY2lzaW9uKSxJPXhbMF0sRD14WzFdO3lbZ109UCsoSS1QKSppLG1bZ109VCsoRC1UKSppLGJbZ109UCxTW2ddPVR9fWNbcF09eSxmW3BdPW0sc1twXT1iLHVbcF09U31vLmFuaW1hdGlvbklEPW51bGwsby5hY2N1bXVsYXRlZFRpbWUtPWwqTyxvLnNldFN0YXRlKHtjdXJyZW50U3R5bGVzOmMsY3VycmVudFZlbG9jaXRpZXM6ZixsYXN0SWRlYWxTdHlsZXM6cyxsYXN0SWRlYWxWZWxvY2l0aWVzOnV9KSxvLnVucmVhZFByb3BTdHlsZXM9bnVsbCxvLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKX0pfSx0aGlzLnN0YXRlPXRoaXMuZGVmYXVsdFN0YXRlKCl9cmV0dXJuIGkodCxlKSxzKHQsbnVsbCxbe2tleTpcInByb3BUeXBlc1wiLHZhbHVlOntkZWZhdWx0U3R5bGVzOmsuZGVmYXVsdC5hcnJheU9mKGsuZGVmYXVsdC5vYmplY3RPZihrLmRlZmF1bHQubnVtYmVyKSksc3R5bGVzOmsuZGVmYXVsdC5mdW5jLmlzUmVxdWlyZWQsY2hpbGRyZW46ay5kZWZhdWx0LmZ1bmMuaXNSZXF1aXJlZH0sZW51bWVyYWJsZTohMH1dKSx0LnByb3RvdHlwZS5kZWZhdWx0U3RhdGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLHQ9ZS5kZWZhdWx0U3R5bGVzLG49ZS5zdHlsZXMsbz10fHxuKCkubWFwKHAuZGVmYXVsdCkscj1vLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gYy5kZWZhdWx0KGUpfSk7cmV0dXJue2N1cnJlbnRTdHlsZXM6byxjdXJyZW50VmVsb2NpdGllczpyLGxhc3RJZGVhbFN0eWxlczpvLGxhc3RJZGVhbFZlbG9jaXRpZXM6cn19LHQucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dGhpcy5wcmV2VGltZT12LmRlZmF1bHQoKSx0aGlzLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKX0sdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz1mdW5jdGlvbihlKXtudWxsIT10aGlzLnVucmVhZFByb3BTdHlsZXMmJnRoaXMuY2xlYXJVbnJlYWRQcm9wU3R5bGUodGhpcy51bnJlYWRQcm9wU3R5bGVzKSx0aGlzLnVucmVhZFByb3BTdHlsZXM9ZS5zdHlsZXModGhpcy5zdGF0ZS5sYXN0SWRlYWxTdHlsZXMpLG51bGw9PXRoaXMuYW5pbWF0aW9uSUQmJih0aGlzLnByZXZUaW1lPXYuZGVmYXVsdCgpLHRoaXMuc3RhcnRBbmltYXRpb25JZk5lY2Vzc2FyeSgpKX0sdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXtudWxsIT10aGlzLmFuaW1hdGlvbklEJiYoYi5kZWZhdWx0LmNhbmNlbCh0aGlzLmFuaW1hdGlvbklEKSx0aGlzLmFuaW1hdGlvbklEPW51bGwpfSx0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLmNoaWxkcmVuKHRoaXMuc3RhdGUuY3VycmVudFN0eWxlcyk7cmV0dXJuIGUmJlAuZGVmYXVsdC5DaGlsZHJlbi5vbmx5KGUpfSx0fShQLmRlZmF1bHQuQ29tcG9uZW50KTt0LmRlZmF1bHQ9TSxlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZnVuY3Rpb24gcihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9ZnVuY3Rpb24gaShlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiB0KTtlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSx0JiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLHQpOmUuX19wcm90b19fPXQpfWZ1bmN0aW9uIGEoZSx0LG4pe3ZhciBvPXQ7cmV0dXJuIG51bGw9PW8/ZS5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm57a2V5OmUua2V5LGRhdGE6ZS5kYXRhLHN0eWxlOm5bdF19fSk6ZS5tYXAoZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MDtyPG8ubGVuZ3RoO3IrKylpZihvW3JdLmtleT09PWUua2V5KXJldHVybntrZXk6b1tyXS5rZXksZGF0YTpvW3JdLmRhdGEsc3R5bGU6blt0XX07cmV0dXJue2tleTplLmtleSxkYXRhOmUuZGF0YSxzdHlsZTpuW3RdfX0pfWZ1bmN0aW9uIGwoZSx0LG4sbyl7aWYoby5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9MDtyPG8ubGVuZ3RoO3IrKylpZihvW3JdLmtleSE9PXRbcl0ua2V5KXJldHVybiExO2Zvcih2YXIgcj0wO3I8by5sZW5ndGg7cisrKWlmKCFrLmRlZmF1bHQoZVtyXSx0W3JdLnN0eWxlLG5bcl0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHMoZSx0LG4sbyxyLGksYSxsLHMpe2Zvcih2YXIgdT1iLmRlZmF1bHQobyxyLGZ1bmN0aW9uKGUsbyl7dmFyIHI9dChvKTtyZXR1cm4gbnVsbD09cj8obih7a2V5Om8ua2V5LGRhdGE6by5kYXRhfSksbnVsbCk6ay5kZWZhdWx0KGlbZV0scixhW2VdKT8obih7a2V5Om8ua2V5LGRhdGE6by5kYXRhfSksbnVsbCk6e2tleTpvLmtleSxkYXRhOm8uZGF0YSxzdHlsZTpyfX0pLGM9W10sZj1bXSxkPVtdLGg9W10seT0wO3k8dS5sZW5ndGg7eSsrKXtmb3IodmFyIHY9dVt5XSxtPW51bGwsUz0wO1M8by5sZW5ndGg7UysrKWlmKG9bU10ua2V5PT09di5rZXkpe209UzticmVha31pZihudWxsPT1tKXt2YXIgZz1lKHYpO2NbeV09ZyxkW3ldPWc7dmFyIHc9cC5kZWZhdWx0KHYuc3R5bGUpO2ZbeV09dyxoW3ldPXd9ZWxzZSBjW3ldPWlbbV0sZFt5XT1sW21dLGZbeV09YVttXSxoW3ldPXNbbV19cmV0dXJuW3UsYyxmLGQsaF19dC5fX2VzTW9kdWxlPSEwO3ZhciB1PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIG8gaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSl9cmV0dXJuIGV9LGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBvPXRbbl07by5lbnVtZXJhYmxlPW8uZW51bWVyYWJsZXx8ITEsby5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbyYmKG8ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG8ua2V5LG8pfX1yZXR1cm4gZnVuY3Rpb24odCxuLG8pe3JldHVybiBuJiZlKHQucHJvdG90eXBlLG4pLG8mJmUodCxvKSx0fX0oKSxmPW4oNikscD1vKGYpLGQ9bigzKSxoPW8oZCkseT1uKDgpLHY9byh5KSxtPW4oMjcpLGI9byhtKSxTPW4oNCksZz1vKFMpLHc9big1KSxQPW8odyksVD1uKDcpLGs9byhUKSxPPW4oMSksTT1vKE8pLHg9bigyKSxJPW8oeCksRD0xZTMvNjAsXz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KG4pe3ZhciBvPXRoaXM7cih0aGlzLHQpLGUuY2FsbCh0aGlzLG4pLHRoaXMudW5tb3VudGluZz0hMSx0aGlzLmFuaW1hdGlvbklEPW51bGwsdGhpcy5wcmV2VGltZT0wLHRoaXMuYWNjdW11bGF0ZWRUaW1lPTAsdGhpcy51bnJlYWRQcm9wU3R5bGVzPW51bGwsdGhpcy5jbGVhclVucmVhZFByb3BTdHlsZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9cyhvLnByb3BzLndpbGxFbnRlcixvLnByb3BzLndpbGxMZWF2ZSxvLnByb3BzLmRpZExlYXZlLG8uc3RhdGUubWVyZ2VkUHJvcHNTdHlsZXMsZSxvLnN0YXRlLmN1cnJlbnRTdHlsZXMsby5zdGF0ZS5jdXJyZW50VmVsb2NpdGllcyxvLnN0YXRlLmxhc3RJZGVhbFN0eWxlcyxvLnN0YXRlLmxhc3RJZGVhbFZlbG9jaXRpZXMpLG49dFswXSxyPXRbMV0saT10WzJdLGE9dFszXSxsPXRbNF0sYz0wO2M8ZS5sZW5ndGg7YysrKXt2YXIgZj1lW2NdLnN0eWxlLHA9ITE7Zm9yKHZhciBkIGluIGYpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGYsZCkpe3ZhciBoPWZbZF07XCJudW1iZXJcIj09dHlwZW9mIGgmJihwfHwocD0hMCxyW2NdPXUoe30scltjXSksaVtjXT11KHt9LGlbY10pLGFbY109dSh7fSxhW2NdKSxsW2NdPXUoe30sbFtjXSksbltjXT17a2V5Om5bY10ua2V5LGRhdGE6bltjXS5kYXRhLHN0eWxlOnUoe30sbltjXS5zdHlsZSl9KSxyW2NdW2RdPWgsaVtjXVtkXT0wLGFbY11bZF09aCxsW2NdW2RdPTAsbltjXS5zdHlsZVtkXT1oKX19by5zZXRTdGF0ZSh7Y3VycmVudFN0eWxlczpyLGN1cnJlbnRWZWxvY2l0aWVzOmksbWVyZ2VkUHJvcHNTdHlsZXM6bixsYXN0SWRlYWxTdHlsZXM6YSxsYXN0SWRlYWxWZWxvY2l0aWVzOmx9KX0sdGhpcy5zdGFydEFuaW1hdGlvbklmTmVjZXNzYXJ5PWZ1bmN0aW9uKCl7by51bm1vdW50aW5nfHwoby5hbmltYXRpb25JRD1QLmRlZmF1bHQoZnVuY3Rpb24oZSl7aWYoIW8udW5tb3VudGluZyl7dmFyIHQ9by5wcm9wcy5zdHlsZXMsbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QoYShvLnN0YXRlLm1lcmdlZFByb3BzU3R5bGVzLG8udW5yZWFkUHJvcFN0eWxlcyxvLnN0YXRlLmxhc3RJZGVhbFN0eWxlcykpOnQ7aWYobChvLnN0YXRlLmN1cnJlbnRTdHlsZXMsbixvLnN0YXRlLmN1cnJlbnRWZWxvY2l0aWVzLG8uc3RhdGUubWVyZ2VkUHJvcHNTdHlsZXMpKXJldHVybiBvLmFuaW1hdGlvbklEPW51bGwsdm9pZChvLmFjY3VtdWxhdGVkVGltZT0wKTt2YXIgcj1lfHxnLmRlZmF1bHQoKSxpPXItby5wcmV2VGltZTtpZihvLnByZXZUaW1lPXIsby5hY2N1bXVsYXRlZFRpbWU9by5hY2N1bXVsYXRlZFRpbWUraSxvLmFjY3VtdWxhdGVkVGltZT4xMCpEJiYoby5hY2N1bXVsYXRlZFRpbWU9MCksMD09PW8uYWNjdW11bGF0ZWRUaW1lKXJldHVybiBvLmFuaW1hdGlvbklEPW51bGwsdm9pZCBvLnN0YXJ0QW5pbWF0aW9uSWZOZWNlc3NhcnkoKTtmb3IodmFyIHU9KG8uYWNjdW11bGF0ZWRUaW1lLU1hdGguZmxvb3Ioby5hY2N1bXVsYXRlZFRpbWUvRCkqRCkvRCxjPU1hdGguZmxvb3Ioby5hY2N1bXVsYXRlZFRpbWUvRCksZj1zKG8ucHJvcHMud2lsbEVudGVyLG8ucHJvcHMud2lsbExlYXZlLG8ucHJvcHMuZGlkTGVhdmUsby5zdGF0ZS5tZXJnZWRQcm9wc1N0eWxlcyxuLG8uc3RhdGUuY3VycmVudFN0eWxlcyxvLnN0YXRlLmN1cnJlbnRWZWxvY2l0aWVzLG8uc3RhdGUubGFzdElkZWFsU3R5bGVzLG8uc3RhdGUubGFzdElkZWFsVmVsb2NpdGllcykscD1mWzBdLGQ9ZlsxXSxoPWZbMl0seT1mWzNdLG09Zls0XSxiPTA7YjxwLmxlbmd0aDtiKyspe3ZhciBTPXBbYl0uc3R5bGUsdz17fSxQPXt9LFQ9e30saz17fTtmb3IodmFyIE8gaW4gUylpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoUyxPKSl7dmFyIE09U1tPXTtpZihcIm51bWJlclwiPT10eXBlb2YgTSl3W09dPU0sUFtPXT0wLFRbT109TSxrW09dPTA7ZWxzZXtmb3IodmFyIHg9eVtiXVtPXSxJPW1bYl1bT10sXz0wO188YztfKyspe3ZhciBqPXYuZGVmYXVsdChELzFlMyx4LEksTS52YWwsTS5zdGlmZm5lc3MsTS5kYW1waW5nLE0ucHJlY2lzaW9uKTt4PWpbMF0sST1qWzFdfXZhciBDPXYuZGVmYXVsdChELzFlMyx4LEksTS52YWwsTS5zdGlmZm5lc3MsTS5kYW1waW5nLE0ucHJlY2lzaW9uKSx6PUNbMF0sRT1DWzFdO3dbT109eCsoei14KSp1LFBbT109SSsoRS1JKSp1LFRbT109eCxrW09dPUl9fXlbYl09VCxtW2JdPWssZFtiXT13LGhbYl09UH1vLmFuaW1hdGlvbklEPW51bGwsby5hY2N1bXVsYXRlZFRpbWUtPWMqRCxvLnNldFN0YXRlKHtjdXJyZW50U3R5bGVzOmQsY3VycmVudFZlbG9jaXRpZXM6aCxsYXN0SWRlYWxTdHlsZXM6eSxsYXN0SWRlYWxWZWxvY2l0aWVzOm0sbWVyZ2VkUHJvcHNTdHlsZXM6cH0pLG8udW5yZWFkUHJvcFN0eWxlcz1udWxsLG8uc3RhcnRBbmltYXRpb25JZk5lY2Vzc2FyeSgpfX0pKX0sdGhpcy5zdGF0ZT10aGlzLmRlZmF1bHRTdGF0ZSgpfXJldHVybiBpKHQsZSksYyh0LG51bGwsW3trZXk6XCJwcm9wVHlwZXNcIix2YWx1ZTp7ZGVmYXVsdFN0eWxlczpJLmRlZmF1bHQuYXJyYXlPZihJLmRlZmF1bHQuc2hhcGUoe2tleTpJLmRlZmF1bHQuc3RyaW5nLmlzUmVxdWlyZWQsZGF0YTpJLmRlZmF1bHQuYW55LHN0eWxlOkkuZGVmYXVsdC5vYmplY3RPZihJLmRlZmF1bHQubnVtYmVyKS5pc1JlcXVpcmVkfSkpLHN0eWxlczpJLmRlZmF1bHQub25lT2ZUeXBlKFtJLmRlZmF1bHQuZnVuYyxJLmRlZmF1bHQuYXJyYXlPZihJLmRlZmF1bHQuc2hhcGUoe2tleTpJLmRlZmF1bHQuc3RyaW5nLmlzUmVxdWlyZWQsZGF0YTpJLmRlZmF1bHQuYW55LHN0eWxlOkkuZGVmYXVsdC5vYmplY3RPZihJLmRlZmF1bHQub25lT2ZUeXBlKFtJLmRlZmF1bHQubnVtYmVyLEkuZGVmYXVsdC5vYmplY3RdKSkuaXNSZXF1aXJlZH0pKV0pLmlzUmVxdWlyZWQsY2hpbGRyZW46SS5kZWZhdWx0LmZ1bmMuaXNSZXF1aXJlZCx3aWxsRW50ZXI6SS5kZWZhdWx0LmZ1bmMsd2lsbExlYXZlOkkuZGVmYXVsdC5mdW5jLGRpZExlYXZlOkkuZGVmYXVsdC5mdW5jfSxlbnVtZXJhYmxlOiEwfSx7a2V5OlwiZGVmYXVsdFByb3BzXCIsdmFsdWU6e3dpbGxFbnRlcjpmdW5jdGlvbihlKXtyZXR1cm4gaC5kZWZhdWx0KGUuc3R5bGUpfSx3aWxsTGVhdmU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZGlkTGVhdmU6ZnVuY3Rpb24oKXt9fSxlbnVtZXJhYmxlOiEwfV0pLHQucHJvdG90eXBlLmRlZmF1bHRTdGF0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcHMsdD1lLmRlZmF1bHRTdHlsZXMsbj1lLnN0eWxlcyxvPWUud2lsbEVudGVyLHI9ZS53aWxsTGVhdmUsaT1lLmRpZExlYXZlLGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uKHQpOm4sbD12b2lkIDA7bD1udWxsPT10P2E6dC5tYXAoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxhLmxlbmd0aDt0KyspaWYoYVt0XS5rZXk9PT1lLmtleSlyZXR1cm4gYVt0XTtyZXR1cm4gZX0pO3ZhciB1PW51bGw9PXQ/YS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGguZGVmYXVsdChlLnN0eWxlKX0pOnQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBoLmRlZmF1bHQoZS5zdHlsZSl9KSxjPW51bGw9PXQ/YS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHAuZGVmYXVsdChlLnN0eWxlKX0pOnQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBwLmRlZmF1bHQoZS5zdHlsZSl9KSxmPXMobyxyLGksbCxhLHUsYyx1LGMpLGQ9ZlswXSx5PWZbMV0sdj1mWzJdLG09ZlszXSxiPWZbNF07cmV0dXJue2N1cnJlbnRTdHlsZXM6eSxjdXJyZW50VmVsb2NpdGllczp2LGxhc3RJZGVhbFN0eWxlczptLGxhc3RJZGVhbFZlbG9jaXRpZXM6YixtZXJnZWRQcm9wc1N0eWxlczpkfX0sdC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQ9ZnVuY3Rpb24oKXt0aGlzLnByZXZUaW1lPWcuZGVmYXVsdCgpLHRoaXMuc3RhcnRBbmltYXRpb25JZk5lY2Vzc2FyeSgpfSx0LnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzPWZ1bmN0aW9uKGUpe3RoaXMudW5yZWFkUHJvcFN0eWxlcyYmdGhpcy5jbGVhclVucmVhZFByb3BTdHlsZSh0aGlzLnVucmVhZFByb3BTdHlsZXMpO3ZhciB0PWUuc3R5bGVzO1wiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dGhpcy51bnJlYWRQcm9wU3R5bGVzPXQoYSh0aGlzLnN0YXRlLm1lcmdlZFByb3BzU3R5bGVzLHRoaXMudW5yZWFkUHJvcFN0eWxlcyx0aGlzLnN0YXRlLmxhc3RJZGVhbFN0eWxlcykpOnRoaXMudW5yZWFkUHJvcFN0eWxlcz10LG51bGw9PXRoaXMuYW5pbWF0aW9uSUQmJih0aGlzLnByZXZUaW1lPWcuZGVmYXVsdCgpLHRoaXMuc3RhcnRBbmltYXRpb25JZk5lY2Vzc2FyeSgpKX0sdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt0aGlzLnVubW91bnRpbmc9ITAsbnVsbCE9dGhpcy5hbmltYXRpb25JRCYmKFAuZGVmYXVsdC5jYW5jZWwodGhpcy5hbmltYXRpb25JRCksdGhpcy5hbmltYXRpb25JRD1udWxsKX0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzLnN0YXRlLm1lcmdlZFByb3BzU3R5bGVzLHRoaXMudW5yZWFkUHJvcFN0eWxlcyx0aGlzLnN0YXRlLmN1cnJlbnRTdHlsZXMpLHQ9dGhpcy5wcm9wcy5jaGlsZHJlbihlKTtyZXR1cm4gdCYmTS5kZWZhdWx0LkNoaWxkcmVuLm9ubHkodCl9LHR9KE0uZGVmYXVsdC5Db21wb25lbnQpO3QuZGVmYXVsdD1fLGUuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbihlLHQsbil7Zm9yKHZhciBvPXt9LHI9MDtyPGUubGVuZ3RoO3IrKylvW2Vbcl0ua2V5XT1yO2Zvcih2YXIgaT17fSxyPTA7cjx0Lmxlbmd0aDtyKyspaVt0W3JdLmtleV09cjtmb3IodmFyIGE9W10scj0wO3I8dC5sZW5ndGg7cisrKWFbcl09dFtyXTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKylpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksZVtyXS5rZXkpKXt2YXIgbD1uKHIsZVtyXSk7bnVsbCE9bCYmYS5wdXNoKGwpfXJldHVybiBhLnNvcnQoZnVuY3Rpb24oZSxuKXt2YXIgcj1pW2Uua2V5XSxhPWlbbi5rZXldLGw9b1tlLmtleV0scz1vW24ua2V5XTtpZihudWxsIT1yJiZudWxsIT1hKXJldHVybiBpW2Uua2V5XS1pW24ua2V5XTtpZihudWxsIT1sJiZudWxsIT1zKXJldHVybiBvW2Uua2V5XS1vW24ua2V5XTtpZihudWxsIT1yKXtmb3IodmFyIHU9MDt1PHQubGVuZ3RoO3UrKyl7dmFyIGM9dFt1XS5rZXk7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sYykpe2lmKHI8aVtjXSYmcz5vW2NdKXJldHVybi0xO2lmKHI+aVtjXSYmczxvW2NdKXJldHVybiAxfX1yZXR1cm4gMX1mb3IodmFyIHU9MDt1PHQubGVuZ3RoO3UrKyl7dmFyIGM9dFt1XS5rZXk7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sYykpe2lmKGE8aVtjXSYmbD5vW2NdKXJldHVybiAxO2lmKGE+aVtjXSYmbDxvW2NdKXJldHVybi0xfX1yZXR1cm4tMX0pfXQuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9bixlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbygpe310Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PW87ZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIHIoZSx0KXtyZXR1cm4gaSh7fSxzLHQse3ZhbDplfSl9dC5fX2VzTW9kdWxlPSEwO3ZhciBpPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPWFyZ3VtZW50c1t0XTtmb3IodmFyIG8gaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixvKSYmKGVbb109bltvXSl9cmV0dXJuIGV9O3QuZGVmYXVsdD1yO3ZhciBhPW4oMTEpLGw9byhhKSxzPWkoe30sbC5kZWZhdWx0Lm5vV29iYmxlLHtwcmVjaXNpb246LjAxfSk7ZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LG4pe2Z1bmN0aW9uIG8oZSx0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIG89ZVtuXSxyPWRbby5pZF07aWYocil7ci5yZWZzKys7Zm9yKHZhciBpPTA7aTxyLnBhcnRzLmxlbmd0aDtpKyspci5wYXJ0c1tpXShvLnBhcnRzW2ldKTtmb3IoO2k8by5wYXJ0cy5sZW5ndGg7aSsrKXIucGFydHMucHVzaCh1KG8ucGFydHNbaV0sdCkpfWVsc2V7Zm9yKHZhciBhPVtdLGk9MDtpPG8ucGFydHMubGVuZ3RoO2krKylhLnB1c2godShvLnBhcnRzW2ldLHQpKTtkW28uaWRdPXtpZDpvLmlkLHJlZnM6MSxwYXJ0czphfX19fWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0PVtdLG49e30sbz0wO288ZS5sZW5ndGg7bysrKXt2YXIgcj1lW29dLGk9clswXSxhPXJbMV0sbD1yWzJdLHM9clszXSx1PXtjc3M6YSxtZWRpYTpsLHNvdXJjZU1hcDpzfTtuW2ldP25baV0ucGFydHMucHVzaCh1KTp0LnB1c2gobltpXT17aWQ6aSxwYXJ0czpbdV19KX1yZXR1cm4gdH1mdW5jdGlvbiBpKGUsdCl7dmFyIG49digpLG89U1tTLmxlbmd0aC0xXTtpZihcInRvcFwiPT09ZS5pbnNlcnRBdClvP28ubmV4dFNpYmxpbmc/bi5pbnNlcnRCZWZvcmUodCxvLm5leHRTaWJsaW5nKTpuLmFwcGVuZENoaWxkKHQpOm4uaW5zZXJ0QmVmb3JlKHQsbi5maXJzdENoaWxkKSxTLnB1c2godCk7ZWxzZXtpZihcImJvdHRvbVwiIT09ZS5pbnNlcnRBdCl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgJ2luc2VydEF0Jy4gTXVzdCBiZSAndG9wJyBvciAnYm90dG9tJy5cIik7bi5hcHBlbmRDaGlsZCh0KX19ZnVuY3Rpb24gYShlKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSk7dmFyIHQ9Uy5pbmRleE9mKGUpO3Q+PTAmJlMuc3BsaWNlKHQsMSl9ZnVuY3Rpb24gbChlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7cmV0dXJuIHQudHlwZT1cInRleHQvY3NzXCIsaShlLHQpLHR9ZnVuY3Rpb24gcyhlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtyZXR1cm4gdC5yZWw9XCJzdHlsZXNoZWV0XCIsaShlLHQpLHR9ZnVuY3Rpb24gdShlLHQpe3ZhciBuLG8scjtpZih0LnNpbmdsZXRvbil7dmFyIGk9YisrO249bXx8KG09bCh0KSksbz1jLmJpbmQobnVsbCxuLGksITEpLHI9Yy5iaW5kKG51bGwsbixpLCEwKX1lbHNlIGUuc291cmNlTWFwJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBVUkwmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFVSTC5jcmVhdGVPYmplY3RVUkwmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFVSTC5yZXZva2VPYmplY3RVUkwmJlwiZnVuY3Rpb25cIj09dHlwZW9mIEJsb2ImJlwiZnVuY3Rpb25cIj09dHlwZW9mIGJ0b2E/KG49cyh0KSxvPXAuYmluZChudWxsLG4pLHI9ZnVuY3Rpb24oKXthKG4pLG4uaHJlZiYmVVJMLnJldm9rZU9iamVjdFVSTChuLmhyZWYpfSk6KG49bCh0KSxvPWYuYmluZChudWxsLG4pLHI9ZnVuY3Rpb24oKXthKG4pfSk7cmV0dXJuIG8oZSksZnVuY3Rpb24odCl7aWYodCl7aWYodC5jc3M9PT1lLmNzcyYmdC5tZWRpYT09PWUubWVkaWEmJnQuc291cmNlTWFwPT09ZS5zb3VyY2VNYXApcmV0dXJuO28oZT10KX1lbHNlIHIoKX19ZnVuY3Rpb24gYyhlLHQsbixvKXt2YXIgcj1uP1wiXCI6by5jc3M7aWYoZS5zdHlsZVNoZWV0KWUuc3R5bGVTaGVldC5jc3NUZXh0PWcodCxyKTtlbHNle3ZhciBpPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHIpLGE9ZS5jaGlsZE5vZGVzO2FbdF0mJmUucmVtb3ZlQ2hpbGQoYVt0XSksYS5sZW5ndGg/ZS5pbnNlcnRCZWZvcmUoaSxhW3RdKTplLmFwcGVuZENoaWxkKGkpfX1mdW5jdGlvbiBmKGUsdCl7dmFyIG49dC5jc3Msbz10Lm1lZGlhO2lmKG8mJmUuc2V0QXR0cmlidXRlKFwibWVkaWFcIixvKSxlLnN0eWxlU2hlZXQpZS5zdHlsZVNoZWV0LmNzc1RleHQ9bjtlbHNle2Zvcig7ZS5maXJzdENoaWxkOyllLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCk7ZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShuKSl9fWZ1bmN0aW9uIHAoZSx0KXt2YXIgbj10LmNzcyxvPXQuc291cmNlTWFwO28mJihuKz1cIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIrYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkobykpKSkrXCIgKi9cIik7dmFyIHI9bmV3IEJsb2IoW25dLHt0eXBlOlwidGV4dC9jc3NcIn0pLGk9ZS5ocmVmO2UuaHJlZj1VUkwuY3JlYXRlT2JqZWN0VVJMKHIpLGkmJlVSTC5yZXZva2VPYmplY3RVUkwoaSl9dmFyIGQ9e30saD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm5cInVuZGVmaW5lZFwiPT10eXBlb2YgdCYmKHQ9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLHR9fSx5PWgoZnVuY3Rpb24oKXtyZXR1cm4vbXNpZSBbNi05XVxcYi8udGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKX0pLHY9aChmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIilbMF19KSxtPW51bGwsYj0wLFM9W107ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dD10fHx7fSxcInVuZGVmaW5lZFwiPT10eXBlb2YgdC5zaW5nbGV0b24mJih0LnNpbmdsZXRvbj15KCkpLFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0Lmluc2VydEF0JiYodC5pbnNlcnRBdD1cImJvdHRvbVwiKTt2YXIgbj1yKGUpO3JldHVybiBvKG4sdCksZnVuY3Rpb24oZSl7Zm9yKHZhciBpPVtdLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIGw9blthXSxzPWRbbC5pZF07cy5yZWZzLS0saS5wdXNoKHMpfWlmKGUpe3ZhciB1PXIoZSk7byh1LHQpfWZvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgcz1pW2FdO2lmKDA9PT1zLnJlZnMpe2Zvcih2YXIgYz0wO2M8cy5wYXJ0cy5sZW5ndGg7YysrKXMucGFydHNbY10oKTtkZWxldGUgZFtzLmlkXX19fX07dmFyIGc9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gZnVuY3Rpb24odCxuKXtyZXR1cm4gZVt0XT1uLGUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCJcXG5cIil9fSgpfSxmdW5jdGlvbihlLHQsbil7dmFyIG89bigxNik7XCJzdHJpbmdcIj09dHlwZW9mIG8mJihvPVtbZS5pZCxvLFwiXCJdXSk7bigzMCkobyx7fSk7by5sb2NhbHMmJihlLmV4cG9ydHM9by5sb2NhbHMpfV0pfSk7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYi9fc3RyZWFtX2R1cGxleC5qcycpO1xuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi8vIGEgZHVwbGV4IHN0cmVhbSBpcyBqdXN0IGEgc3RyZWFtIHRoYXQgaXMgYm90aCByZWFkYWJsZSBhbmQgd3JpdGFibGUuXG4vLyBTaW5jZSBKUyBkb2Vzbid0IGhhdmUgbXVsdGlwbGUgcHJvdG90eXBhbCBpbmhlcml0YW5jZSwgdGhpcyBjbGFzc1xuLy8gcHJvdG90eXBhbGx5IGluaGVyaXRzIGZyb20gUmVhZGFibGUsIGFuZCB0aGVuIHBhcmFzaXRpY2FsbHkgZnJvbVxuLy8gV3JpdGFibGUuXG5cbid1c2Ugc3RyaWN0JztcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cblxudmFyIHBuYSA9IHJlcXVpcmUoJ3Byb2Nlc3MtbmV4dGljay1hcmdzJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBvYmplY3RLZXlzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24gKG9iaikge1xuICB2YXIga2V5cyA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAga2V5cy5wdXNoKGtleSk7XG4gIH1yZXR1cm4ga2V5cztcbn07XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxubW9kdWxlLmV4cG9ydHMgPSBEdXBsZXg7XG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgdXRpbCA9IHJlcXVpcmUoJ2NvcmUtdXRpbC1pcycpO1xudXRpbC5pbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxudmFyIFJlYWRhYmxlID0gcmVxdWlyZSgnLi9fc3RyZWFtX3JlYWRhYmxlJyk7XG52YXIgV3JpdGFibGUgPSByZXF1aXJlKCcuL19zdHJlYW1fd3JpdGFibGUnKTtcblxudXRpbC5pbmhlcml0cyhEdXBsZXgsIFJlYWRhYmxlKTtcblxue1xuICAvLyBhdm9pZCBzY29wZSBjcmVlcCwgdGhlIGtleXMgYXJyYXkgY2FuIHRoZW4gYmUgY29sbGVjdGVkXG4gIHZhciBrZXlzID0gb2JqZWN0S2V5cyhXcml0YWJsZS5wcm90b3R5cGUpO1xuICBmb3IgKHZhciB2ID0gMDsgdiA8IGtleXMubGVuZ3RoOyB2KyspIHtcbiAgICB2YXIgbWV0aG9kID0ga2V5c1t2XTtcbiAgICBpZiAoIUR1cGxleC5wcm90b3R5cGVbbWV0aG9kXSkgRHVwbGV4LnByb3RvdHlwZVttZXRob2RdID0gV3JpdGFibGUucHJvdG90eXBlW21ldGhvZF07XG4gIH1cbn1cblxuZnVuY3Rpb24gRHVwbGV4KG9wdGlvbnMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIER1cGxleCkpIHJldHVybiBuZXcgRHVwbGV4KG9wdGlvbnMpO1xuXG4gIFJlYWRhYmxlLmNhbGwodGhpcywgb3B0aW9ucyk7XG4gIFdyaXRhYmxlLmNhbGwodGhpcywgb3B0aW9ucyk7XG5cbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5yZWFkYWJsZSA9PT0gZmFsc2UpIHRoaXMucmVhZGFibGUgPSBmYWxzZTtcblxuICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLndyaXRhYmxlID09PSBmYWxzZSkgdGhpcy53cml0YWJsZSA9IGZhbHNlO1xuXG4gIHRoaXMuYWxsb3dIYWxmT3BlbiA9IHRydWU7XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuYWxsb3dIYWxmT3BlbiA9PT0gZmFsc2UpIHRoaXMuYWxsb3dIYWxmT3BlbiA9IGZhbHNlO1xuXG4gIHRoaXMub25jZSgnZW5kJywgb25lbmQpO1xufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRHVwbGV4LnByb3RvdHlwZSwgJ3dyaXRhYmxlSGlnaFdhdGVyTWFyaycsIHtcbiAgLy8gbWFraW5nIGl0IGV4cGxpY2l0IHRoaXMgcHJvcGVydHkgaXMgbm90IGVudW1lcmFibGVcbiAgLy8gYmVjYXVzZSBvdGhlcndpc2Ugc29tZSBwcm90b3R5cGUgbWFuaXB1bGF0aW9uIGluXG4gIC8vIHVzZXJsYW5kIHdpbGwgZmFpbFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFyaztcbiAgfVxufSk7XG5cbi8vIHRoZSBuby1oYWxmLW9wZW4gZW5mb3JjZXJcbmZ1bmN0aW9uIG9uZW5kKCkge1xuICAvLyBpZiB3ZSBhbGxvdyBoYWxmLW9wZW4gc3RhdGUsIG9yIGlmIHRoZSB3cml0YWJsZSBzaWRlIGVuZGVkLFxuICAvLyB0aGVuIHdlJ3JlIG9rLlxuICBpZiAodGhpcy5hbGxvd0hhbGZPcGVuIHx8IHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWQpIHJldHVybjtcblxuICAvLyBubyBtb3JlIGRhdGEgY2FuIGJlIHdyaXR0ZW4uXG4gIC8vIEJ1dCBhbGxvdyBtb3JlIHdyaXRlcyB0byBoYXBwZW4gaW4gdGhpcyB0aWNrLlxuICBwbmEubmV4dFRpY2sob25FbmROVCwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG9uRW5kTlQoc2VsZikge1xuICBzZWxmLmVuZCgpO1xufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRHVwbGV4LnByb3RvdHlwZSwgJ2Rlc3Ryb3llZCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl93cml0YWJsZVN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkICYmIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIC8vIHdlIGlnbm9yZSB0aGUgdmFsdWUgaWYgdGhlIHN0cmVhbVxuICAgIC8vIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXRcbiAgICBpZiAodGhpcy5fcmVhZGFibGVTdGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX3dyaXRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSB1c2VyIGlzIGV4cGxpY2l0bHlcbiAgICAvLyBtYW5hZ2luZyBkZXN0cm95ZWRcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCA9IHZhbHVlO1xuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkID0gdmFsdWU7XG4gIH1cbn0pO1xuXG5EdXBsZXgucHJvdG90eXBlLl9kZXN0cm95ID0gZnVuY3Rpb24gKGVyciwgY2IpIHtcbiAgdGhpcy5wdXNoKG51bGwpO1xuICB0aGlzLmVuZCgpO1xuXG4gIHBuYS5uZXh0VGljayhjYiwgZXJyKTtcbn07IiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi8vIGEgcGFzc3Rocm91Z2ggc3RyZWFtLlxuLy8gYmFzaWNhbGx5IGp1c3QgdGhlIG1vc3QgbWluaW1hbCBzb3J0IG9mIFRyYW5zZm9ybSBzdHJlYW0uXG4vLyBFdmVyeSB3cml0dGVuIGNodW5rIGdldHMgb3V0cHV0IGFzLWlzLlxuXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUGFzc1Rocm91Z2g7XG5cbnZhciBUcmFuc2Zvcm0gPSByZXF1aXJlKCcuL19zdHJlYW1fdHJhbnNmb3JtJyk7XG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgdXRpbCA9IHJlcXVpcmUoJ2NvcmUtdXRpbC1pcycpO1xudXRpbC5pbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxudXRpbC5pbmhlcml0cyhQYXNzVGhyb3VnaCwgVHJhbnNmb3JtKTtcblxuZnVuY3Rpb24gUGFzc1Rocm91Z2gob3B0aW9ucykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUGFzc1Rocm91Z2gpKSByZXR1cm4gbmV3IFBhc3NUaHJvdWdoKG9wdGlvbnMpO1xuXG4gIFRyYW5zZm9ybS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xufVxuXG5QYXNzVGhyb3VnaC5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIGNiKG51bGwsIGNodW5rKTtcbn07IiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cblxudmFyIHBuYSA9IHJlcXVpcmUoJ3Byb2Nlc3MtbmV4dGljay1hcmdzJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFkYWJsZTtcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnaXNhcnJheScpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgRHVwbGV4O1xuLyo8L3JlcGxhY2VtZW50PiovXG5cblJlYWRhYmxlLlJlYWRhYmxlU3RhdGUgPSBSZWFkYWJsZVN0YXRlO1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIEVFID0gcmVxdWlyZSgnZXZlbnRzJykuRXZlbnRFbWl0dGVyO1xuXG52YXIgRUVsaXN0ZW5lckNvdW50ID0gZnVuY3Rpb24gKGVtaXR0ZXIsIHR5cGUpIHtcbiAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJzKHR5cGUpLmxlbmd0aDtcbn07XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBTdHJlYW0gPSByZXF1aXJlKCcuL2ludGVybmFsL3N0cmVhbXMvc3RyZWFtJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cblxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyO1xudmFyIE91clVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheSB8fCBmdW5jdGlvbiAoKSB7fTtcbmZ1bmN0aW9uIF91aW50OEFycmF5VG9CdWZmZXIoY2h1bmspIHtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNodW5rKTtcbn1cbmZ1bmN0aW9uIF9pc1VpbnQ4QXJyYXkob2JqKSB7XG4gIHJldHVybiBCdWZmZXIuaXNCdWZmZXIob2JqKSB8fCBvYmogaW5zdGFuY2VvZiBPdXJVaW50OEFycmF5O1xufVxuXG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciB1dGlsID0gcmVxdWlyZSgnY29yZS11dGlsLWlzJyk7XG51dGlsLmluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIGRlYnVnVXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcbnZhciBkZWJ1ZyA9IHZvaWQgMDtcbmlmIChkZWJ1Z1V0aWwgJiYgZGVidWdVdGlsLmRlYnVnbG9nKSB7XG4gIGRlYnVnID0gZGVidWdVdGlsLmRlYnVnbG9nKCdzdHJlYW0nKTtcbn0gZWxzZSB7XG4gIGRlYnVnID0gZnVuY3Rpb24gKCkge307XG59XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxudmFyIEJ1ZmZlckxpc3QgPSByZXF1aXJlKCcuL2ludGVybmFsL3N0cmVhbXMvQnVmZmVyTGlzdCcpO1xudmFyIGRlc3Ryb3lJbXBsID0gcmVxdWlyZSgnLi9pbnRlcm5hbC9zdHJlYW1zL2Rlc3Ryb3knKTtcbnZhciBTdHJpbmdEZWNvZGVyO1xuXG51dGlsLmluaGVyaXRzKFJlYWRhYmxlLCBTdHJlYW0pO1xuXG52YXIga1Byb3h5RXZlbnRzID0gWydlcnJvcicsICdjbG9zZScsICdkZXN0cm95JywgJ3BhdXNlJywgJ3Jlc3VtZSddO1xuXG5mdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIoZW1pdHRlciwgZXZlbnQsIGZuKSB7XG4gIC8vIFNhZGx5IHRoaXMgaXMgbm90IGNhY2hlYWJsZSBhcyBzb21lIGxpYnJhcmllcyBidW5kbGUgdGhlaXIgb3duXG4gIC8vIGV2ZW50IGVtaXR0ZXIgaW1wbGVtZW50YXRpb24gd2l0aCB0aGVtLlxuICBpZiAodHlwZW9mIGVtaXR0ZXIucHJlcGVuZExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSByZXR1cm4gZW1pdHRlci5wcmVwZW5kTGlzdGVuZXIoZXZlbnQsIGZuKTtcblxuICAvLyBUaGlzIGlzIGEgaGFjayB0byBtYWtlIHN1cmUgdGhhdCBvdXIgZXJyb3IgaGFuZGxlciBpcyBhdHRhY2hlZCBiZWZvcmUgYW55XG4gIC8vIHVzZXJsYW5kIG9uZXMuICBORVZFUiBETyBUSElTLiBUaGlzIGlzIGhlcmUgb25seSBiZWNhdXNlIHRoaXMgY29kZSBuZWVkc1xuICAvLyB0byBjb250aW51ZSB0byB3b3JrIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgTm9kZS5qcyB0aGF0IGRvIG5vdCBpbmNsdWRlXG4gIC8vIHRoZSBwcmVwZW5kTGlzdGVuZXIoKSBtZXRob2QuIFRoZSBnb2FsIGlzIHRvIGV2ZW50dWFsbHkgcmVtb3ZlIHRoaXMgaGFjay5cbiAgaWYgKCFlbWl0dGVyLl9ldmVudHMgfHwgIWVtaXR0ZXIuX2V2ZW50c1tldmVudF0pIGVtaXR0ZXIub24oZXZlbnQsIGZuKTtlbHNlIGlmIChpc0FycmF5KGVtaXR0ZXIuX2V2ZW50c1tldmVudF0pKSBlbWl0dGVyLl9ldmVudHNbZXZlbnRdLnVuc2hpZnQoZm4pO2Vsc2UgZW1pdHRlci5fZXZlbnRzW2V2ZW50XSA9IFtmbiwgZW1pdHRlci5fZXZlbnRzW2V2ZW50XV07XG59XG5cbmZ1bmN0aW9uIFJlYWRhYmxlU3RhdGUob3B0aW9ucywgc3RyZWFtKSB7XG4gIER1cGxleCA9IER1cGxleCB8fCByZXF1aXJlKCcuL19zdHJlYW1fZHVwbGV4Jyk7XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgLy8gRHVwbGV4IHN0cmVhbXMgYXJlIGJvdGggcmVhZGFibGUgYW5kIHdyaXRhYmxlLCBidXQgc2hhcmVcbiAgLy8gdGhlIHNhbWUgb3B0aW9ucyBvYmplY3QuXG4gIC8vIEhvd2V2ZXIsIHNvbWUgY2FzZXMgcmVxdWlyZSBzZXR0aW5nIG9wdGlvbnMgdG8gZGlmZmVyZW50XG4gIC8vIHZhbHVlcyBmb3IgdGhlIHJlYWRhYmxlIGFuZCB0aGUgd3JpdGFibGUgc2lkZXMgb2YgdGhlIGR1cGxleCBzdHJlYW0uXG4gIC8vIFRoZXNlIG9wdGlvbnMgY2FuIGJlIHByb3ZpZGVkIHNlcGFyYXRlbHkgYXMgcmVhZGFibGVYWFggYW5kIHdyaXRhYmxlWFhYLlxuICB2YXIgaXNEdXBsZXggPSBzdHJlYW0gaW5zdGFuY2VvZiBEdXBsZXg7XG5cbiAgLy8gb2JqZWN0IHN0cmVhbSBmbGFnLiBVc2VkIHRvIG1ha2UgcmVhZChuKSBpZ25vcmUgbiBhbmQgdG9cbiAgLy8gbWFrZSBhbGwgdGhlIGJ1ZmZlciBtZXJnaW5nIGFuZCBsZW5ndGggY2hlY2tzIGdvIGF3YXlcbiAgdGhpcy5vYmplY3RNb2RlID0gISFvcHRpb25zLm9iamVjdE1vZGU7XG5cbiAgaWYgKGlzRHVwbGV4KSB0aGlzLm9iamVjdE1vZGUgPSB0aGlzLm9iamVjdE1vZGUgfHwgISFvcHRpb25zLnJlYWRhYmxlT2JqZWN0TW9kZTtcblxuICAvLyB0aGUgcG9pbnQgYXQgd2hpY2ggaXQgc3RvcHMgY2FsbGluZyBfcmVhZCgpIHRvIGZpbGwgdGhlIGJ1ZmZlclxuICAvLyBOb3RlOiAwIGlzIGEgdmFsaWQgdmFsdWUsIG1lYW5zIFwiZG9uJ3QgY2FsbCBfcmVhZCBwcmVlbXB0aXZlbHkgZXZlclwiXG4gIHZhciBod20gPSBvcHRpb25zLmhpZ2hXYXRlck1hcms7XG4gIHZhciByZWFkYWJsZUh3bSA9IG9wdGlvbnMucmVhZGFibGVIaWdoV2F0ZXJNYXJrO1xuICB2YXIgZGVmYXVsdEh3bSA9IHRoaXMub2JqZWN0TW9kZSA/IDE2IDogMTYgKiAxMDI0O1xuXG4gIGlmIChod20gfHwgaHdtID09PSAwKSB0aGlzLmhpZ2hXYXRlck1hcmsgPSBod207ZWxzZSBpZiAoaXNEdXBsZXggJiYgKHJlYWRhYmxlSHdtIHx8IHJlYWRhYmxlSHdtID09PSAwKSkgdGhpcy5oaWdoV2F0ZXJNYXJrID0gcmVhZGFibGVId207ZWxzZSB0aGlzLmhpZ2hXYXRlck1hcmsgPSBkZWZhdWx0SHdtO1xuXG4gIC8vIGNhc3QgdG8gaW50cy5cbiAgdGhpcy5oaWdoV2F0ZXJNYXJrID0gTWF0aC5mbG9vcih0aGlzLmhpZ2hXYXRlck1hcmspO1xuXG4gIC8vIEEgbGlua2VkIGxpc3QgaXMgdXNlZCB0byBzdG9yZSBkYXRhIGNodW5rcyBpbnN0ZWFkIG9mIGFuIGFycmF5IGJlY2F1c2UgdGhlXG4gIC8vIGxpbmtlZCBsaXN0IGNhbiByZW1vdmUgZWxlbWVudHMgZnJvbSB0aGUgYmVnaW5uaW5nIGZhc3RlciB0aGFuXG4gIC8vIGFycmF5LnNoaWZ0KClcbiAgdGhpcy5idWZmZXIgPSBuZXcgQnVmZmVyTGlzdCgpO1xuICB0aGlzLmxlbmd0aCA9IDA7XG4gIHRoaXMucGlwZXMgPSBudWxsO1xuICB0aGlzLnBpcGVzQ291bnQgPSAwO1xuICB0aGlzLmZsb3dpbmcgPSBudWxsO1xuICB0aGlzLmVuZGVkID0gZmFsc2U7XG4gIHRoaXMuZW5kRW1pdHRlZCA9IGZhbHNlO1xuICB0aGlzLnJlYWRpbmcgPSBmYWxzZTtcblxuICAvLyBhIGZsYWcgdG8gYmUgYWJsZSB0byB0ZWxsIGlmIHRoZSBldmVudCAncmVhZGFibGUnLydkYXRhJyBpcyBlbWl0dGVkXG4gIC8vIGltbWVkaWF0ZWx5LCBvciBvbiBhIGxhdGVyIHRpY2suICBXZSBzZXQgdGhpcyB0byB0cnVlIGF0IGZpcnN0LCBiZWNhdXNlXG4gIC8vIGFueSBhY3Rpb25zIHRoYXQgc2hvdWxkbid0IGhhcHBlbiB1bnRpbCBcImxhdGVyXCIgc2hvdWxkIGdlbmVyYWxseSBhbHNvXG4gIC8vIG5vdCBoYXBwZW4gYmVmb3JlIHRoZSBmaXJzdCByZWFkIGNhbGwuXG4gIHRoaXMuc3luYyA9IHRydWU7XG5cbiAgLy8gd2hlbmV2ZXIgd2UgcmV0dXJuIG51bGwsIHRoZW4gd2Ugc2V0IGEgZmxhZyB0byBzYXlcbiAgLy8gdGhhdCB3ZSdyZSBhd2FpdGluZyBhICdyZWFkYWJsZScgZXZlbnQgZW1pc3Npb24uXG4gIHRoaXMubmVlZFJlYWRhYmxlID0gZmFsc2U7XG4gIHRoaXMuZW1pdHRlZFJlYWRhYmxlID0gZmFsc2U7XG4gIHRoaXMucmVhZGFibGVMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgdGhpcy5yZXN1bWVTY2hlZHVsZWQgPSBmYWxzZTtcblxuICAvLyBoYXMgaXQgYmVlbiBkZXN0cm95ZWRcbiAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAvLyBDcnlwdG8gaXMga2luZCBvZiBvbGQgYW5kIGNydXN0eS4gIEhpc3RvcmljYWxseSwgaXRzIGRlZmF1bHQgc3RyaW5nXG4gIC8vIGVuY29kaW5nIGlzICdiaW5hcnknIHNvIHdlIGhhdmUgdG8gbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZS5cbiAgLy8gRXZlcnl0aGluZyBlbHNlIGluIHRoZSB1bml2ZXJzZSB1c2VzICd1dGY4JywgdGhvdWdoLlxuICB0aGlzLmRlZmF1bHRFbmNvZGluZyA9IG9wdGlvbnMuZGVmYXVsdEVuY29kaW5nIHx8ICd1dGY4JztcblxuICAvLyB0aGUgbnVtYmVyIG9mIHdyaXRlcnMgdGhhdCBhcmUgYXdhaXRpbmcgYSBkcmFpbiBldmVudCBpbiAucGlwZSgpc1xuICB0aGlzLmF3YWl0RHJhaW4gPSAwO1xuXG4gIC8vIGlmIHRydWUsIGEgbWF5YmVSZWFkTW9yZSBoYXMgYmVlbiBzY2hlZHVsZWRcbiAgdGhpcy5yZWFkaW5nTW9yZSA9IGZhbHNlO1xuXG4gIHRoaXMuZGVjb2RlciA9IG51bGw7XG4gIHRoaXMuZW5jb2RpbmcgPSBudWxsO1xuICBpZiAob3B0aW9ucy5lbmNvZGluZykge1xuICAgIGlmICghU3RyaW5nRGVjb2RlcikgU3RyaW5nRGVjb2RlciA9IHJlcXVpcmUoJ3N0cmluZ19kZWNvZGVyLycpLlN0cmluZ0RlY29kZXI7XG4gICAgdGhpcy5kZWNvZGVyID0gbmV3IFN0cmluZ0RlY29kZXIob3B0aW9ucy5lbmNvZGluZyk7XG4gICAgdGhpcy5lbmNvZGluZyA9IG9wdGlvbnMuZW5jb2Rpbmc7XG4gIH1cbn1cblxuZnVuY3Rpb24gUmVhZGFibGUob3B0aW9ucykge1xuICBEdXBsZXggPSBEdXBsZXggfHwgcmVxdWlyZSgnLi9fc3RyZWFtX2R1cGxleCcpO1xuXG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZWFkYWJsZSkpIHJldHVybiBuZXcgUmVhZGFibGUob3B0aW9ucyk7XG5cbiAgdGhpcy5fcmVhZGFibGVTdGF0ZSA9IG5ldyBSZWFkYWJsZVN0YXRlKG9wdGlvbnMsIHRoaXMpO1xuXG4gIC8vIGxlZ2FjeVxuICB0aGlzLnJlYWRhYmxlID0gdHJ1ZTtcblxuICBpZiAob3B0aW9ucykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5yZWFkID09PSAnZnVuY3Rpb24nKSB0aGlzLl9yZWFkID0gb3B0aW9ucy5yZWFkO1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLmRlc3Ryb3kgPT09ICdmdW5jdGlvbicpIHRoaXMuX2Rlc3Ryb3kgPSBvcHRpb25zLmRlc3Ryb3k7XG4gIH1cblxuICBTdHJlYW0uY2FsbCh0aGlzKTtcbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwgJ2Rlc3Ryb3llZCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgLy8gd2UgaWdub3JlIHRoZSB2YWx1ZSBpZiB0aGUgc3RyZWFtXG4gICAgLy8gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldFxuICAgIGlmICghdGhpcy5fcmVhZGFibGVTdGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHRoZSB1c2VyIGlzIGV4cGxpY2l0bHlcbiAgICAvLyBtYW5hZ2luZyBkZXN0cm95ZWRcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCA9IHZhbHVlO1xuICB9XG59KTtcblxuUmVhZGFibGUucHJvdG90eXBlLmRlc3Ryb3kgPSBkZXN0cm95SW1wbC5kZXN0cm95O1xuUmVhZGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3kgPSBkZXN0cm95SW1wbC51bmRlc3Ryb3k7XG5SZWFkYWJsZS5wcm90b3R5cGUuX2Rlc3Ryb3kgPSBmdW5jdGlvbiAoZXJyLCBjYikge1xuICB0aGlzLnB1c2gobnVsbCk7XG4gIGNiKGVycik7XG59O1xuXG4vLyBNYW51YWxseSBzaG92ZSBzb21ldGhpbmcgaW50byB0aGUgcmVhZCgpIGJ1ZmZlci5cbi8vIFRoaXMgcmV0dXJucyB0cnVlIGlmIHRoZSBoaWdoV2F0ZXJNYXJrIGhhcyBub3QgYmVlbiBoaXQgeWV0LFxuLy8gc2ltaWxhciB0byBob3cgV3JpdGFibGUud3JpdGUoKSByZXR1cm5zIHRydWUgaWYgeW91IHNob3VsZFxuLy8gd3JpdGUoKSBzb21lIG1vcmUuXG5SZWFkYWJsZS5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVhZGFibGVTdGF0ZTtcbiAgdmFyIHNraXBDaHVua0NoZWNrO1xuXG4gIGlmICghc3RhdGUub2JqZWN0TW9kZSkge1xuICAgIGlmICh0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlbmNvZGluZyA9IGVuY29kaW5nIHx8IHN0YXRlLmRlZmF1bHRFbmNvZGluZztcbiAgICAgIGlmIChlbmNvZGluZyAhPT0gc3RhdGUuZW5jb2RpbmcpIHtcbiAgICAgICAgY2h1bmsgPSBCdWZmZXIuZnJvbShjaHVuaywgZW5jb2RpbmcpO1xuICAgICAgICBlbmNvZGluZyA9ICcnO1xuICAgICAgfVxuICAgICAgc2tpcENodW5rQ2hlY2sgPSB0cnVlO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBza2lwQ2h1bmtDaGVjayA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gcmVhZGFibGVBZGRDaHVuayh0aGlzLCBjaHVuaywgZW5jb2RpbmcsIGZhbHNlLCBza2lwQ2h1bmtDaGVjayk7XG59O1xuXG4vLyBVbnNoaWZ0IHNob3VsZCAqYWx3YXlzKiBiZSBzb21ldGhpbmcgZGlyZWN0bHkgb3V0IG9mIHJlYWQoKVxuUmVhZGFibGUucHJvdG90eXBlLnVuc2hpZnQgPSBmdW5jdGlvbiAoY2h1bmspIHtcbiAgcmV0dXJuIHJlYWRhYmxlQWRkQ2h1bmsodGhpcywgY2h1bmssIG51bGwsIHRydWUsIGZhbHNlKTtcbn07XG5cbmZ1bmN0aW9uIHJlYWRhYmxlQWRkQ2h1bmsoc3RyZWFtLCBjaHVuaywgZW5jb2RpbmcsIGFkZFRvRnJvbnQsIHNraXBDaHVua0NoZWNrKSB7XG4gIHZhciBzdGF0ZSA9IHN0cmVhbS5fcmVhZGFibGVTdGF0ZTtcbiAgaWYgKGNodW5rID09PSBudWxsKSB7XG4gICAgc3RhdGUucmVhZGluZyA9IGZhbHNlO1xuICAgIG9uRW9mQ2h1bmsoc3RyZWFtLCBzdGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGVyO1xuICAgIGlmICghc2tpcENodW5rQ2hlY2spIGVyID0gY2h1bmtJbnZhbGlkKHN0YXRlLCBjaHVuayk7XG4gICAgaWYgKGVyKSB7XG4gICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcik7XG4gICAgfSBlbHNlIGlmIChzdGF0ZS5vYmplY3RNb2RlIHx8IGNodW5rICYmIGNodW5rLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0eXBlb2YgY2h1bmsgIT09ICdzdHJpbmcnICYmICFzdGF0ZS5vYmplY3RNb2RlICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihjaHVuaykgIT09IEJ1ZmZlci5wcm90b3R5cGUpIHtcbiAgICAgICAgY2h1bmsgPSBfdWludDhBcnJheVRvQnVmZmVyKGNodW5rKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFkZFRvRnJvbnQpIHtcbiAgICAgICAgaWYgKHN0YXRlLmVuZEVtaXR0ZWQpIHN0cmVhbS5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcignc3RyZWFtLnVuc2hpZnQoKSBhZnRlciBlbmQgZXZlbnQnKSk7ZWxzZSBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgdHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLmVuZGVkKSB7XG4gICAgICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcignc3RyZWFtLnB1c2goKSBhZnRlciBFT0YnKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5yZWFkaW5nID0gZmFsc2U7XG4gICAgICAgIGlmIChzdGF0ZS5kZWNvZGVyICYmICFlbmNvZGluZykge1xuICAgICAgICAgIGNodW5rID0gc3RhdGUuZGVjb2Rlci53cml0ZShjaHVuayk7XG4gICAgICAgICAgaWYgKHN0YXRlLm9iamVjdE1vZGUgfHwgY2h1bmsubGVuZ3RoICE9PSAwKSBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgZmFsc2UpO2Vsc2UgbWF5YmVSZWFkTW9yZShzdHJlYW0sIHN0YXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghYWRkVG9Gcm9udCkge1xuICAgICAgc3RhdGUucmVhZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZWVkTW9yZURhdGEoc3RhdGUpO1xufVxuXG5mdW5jdGlvbiBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgYWRkVG9Gcm9udCkge1xuICBpZiAoc3RhdGUuZmxvd2luZyAmJiBzdGF0ZS5sZW5ndGggPT09IDAgJiYgIXN0YXRlLnN5bmMpIHtcbiAgICBzdHJlYW0uZW1pdCgnZGF0YScsIGNodW5rKTtcbiAgICBzdHJlYW0ucmVhZCgwKTtcbiAgfSBlbHNlIHtcbiAgICAvLyB1cGRhdGUgdGhlIGJ1ZmZlciBpbmZvLlxuICAgIHN0YXRlLmxlbmd0aCArPSBzdGF0ZS5vYmplY3RNb2RlID8gMSA6IGNodW5rLmxlbmd0aDtcbiAgICBpZiAoYWRkVG9Gcm9udCkgc3RhdGUuYnVmZmVyLnVuc2hpZnQoY2h1bmspO2Vsc2Ugc3RhdGUuYnVmZmVyLnB1c2goY2h1bmspO1xuXG4gICAgaWYgKHN0YXRlLm5lZWRSZWFkYWJsZSkgZW1pdFJlYWRhYmxlKHN0cmVhbSk7XG4gIH1cbiAgbWF5YmVSZWFkTW9yZShzdHJlYW0sIHN0YXRlKTtcbn1cblxuZnVuY3Rpb24gY2h1bmtJbnZhbGlkKHN0YXRlLCBjaHVuaykge1xuICB2YXIgZXI7XG4gIGlmICghX2lzVWludDhBcnJheShjaHVuaykgJiYgdHlwZW9mIGNodW5rICE9PSAnc3RyaW5nJyAmJiBjaHVuayAhPT0gdW5kZWZpbmVkICYmICFzdGF0ZS5vYmplY3RNb2RlKSB7XG4gICAgZXIgPSBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG5vbi1zdHJpbmcvYnVmZmVyIGNodW5rJyk7XG4gIH1cbiAgcmV0dXJuIGVyO1xufVxuXG4vLyBpZiBpdCdzIHBhc3QgdGhlIGhpZ2ggd2F0ZXIgbWFyaywgd2UgY2FuIHB1c2ggaW4gc29tZSBtb3JlLlxuLy8gQWxzbywgaWYgd2UgaGF2ZSBubyBkYXRhIHlldCwgd2UgY2FuIHN0YW5kIHNvbWVcbi8vIG1vcmUgYnl0ZXMuICBUaGlzIGlzIHRvIHdvcmsgYXJvdW5kIGNhc2VzIHdoZXJlIGh3bT0wLFxuLy8gc3VjaCBhcyB0aGUgcmVwbC4gIEFsc28sIGlmIHRoZSBwdXNoKCkgdHJpZ2dlcmVkIGFcbi8vIHJlYWRhYmxlIGV2ZW50LCBhbmQgdGhlIHVzZXIgY2FsbGVkIHJlYWQobGFyZ2VOdW1iZXIpIHN1Y2ggdGhhdFxuLy8gbmVlZFJlYWRhYmxlIHdhcyBzZXQsIHRoZW4gd2Ugb3VnaHQgdG8gcHVzaCBtb3JlLCBzbyB0aGF0IGFub3RoZXJcbi8vICdyZWFkYWJsZScgZXZlbnQgd2lsbCBiZSB0cmlnZ2VyZWQuXG5mdW5jdGlvbiBuZWVkTW9yZURhdGEoc3RhdGUpIHtcbiAgcmV0dXJuICFzdGF0ZS5lbmRlZCAmJiAoc3RhdGUubmVlZFJlYWRhYmxlIHx8IHN0YXRlLmxlbmd0aCA8IHN0YXRlLmhpZ2hXYXRlck1hcmsgfHwgc3RhdGUubGVuZ3RoID09PSAwKTtcbn1cblxuUmVhZGFibGUucHJvdG90eXBlLmlzUGF1c2VkID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nID09PSBmYWxzZTtcbn07XG5cbi8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuUmVhZGFibGUucHJvdG90eXBlLnNldEVuY29kaW5nID0gZnVuY3Rpb24gKGVuYykge1xuICBpZiAoIVN0cmluZ0RlY29kZXIpIFN0cmluZ0RlY29kZXIgPSByZXF1aXJlKCdzdHJpbmdfZGVjb2Rlci8nKS5TdHJpbmdEZWNvZGVyO1xuICB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcihlbmMpO1xuICB0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nID0gZW5jO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIERvbid0IHJhaXNlIHRoZSBod20gPiA4TUJcbnZhciBNQVhfSFdNID0gMHg4MDAwMDA7XG5mdW5jdGlvbiBjb21wdXRlTmV3SGlnaFdhdGVyTWFyayhuKSB7XG4gIGlmIChuID49IE1BWF9IV00pIHtcbiAgICBuID0gTUFYX0hXTTtcbiAgfSBlbHNlIHtcbiAgICAvLyBHZXQgdGhlIG5leHQgaGlnaGVzdCBwb3dlciBvZiAyIHRvIHByZXZlbnQgaW5jcmVhc2luZyBod20gZXhjZXNzaXZlbHkgaW5cbiAgICAvLyB0aW55IGFtb3VudHNcbiAgICBuLS07XG4gICAgbiB8PSBuID4+PiAxO1xuICAgIG4gfD0gbiA+Pj4gMjtcbiAgICBuIHw9IG4gPj4+IDQ7XG4gICAgbiB8PSBuID4+PiA4O1xuICAgIG4gfD0gbiA+Pj4gMTY7XG4gICAgbisrO1xuICB9XG4gIHJldHVybiBuO1xufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlIGlubGluYWJsZSwgc28gcGxlYXNlIHRha2UgY2FyZSB3aGVuIG1ha2luZ1xuLy8gY2hhbmdlcyB0byB0aGUgZnVuY3Rpb24gYm9keS5cbmZ1bmN0aW9uIGhvd011Y2hUb1JlYWQobiwgc3RhdGUpIHtcbiAgaWYgKG4gPD0gMCB8fCBzdGF0ZS5sZW5ndGggPT09IDAgJiYgc3RhdGUuZW5kZWQpIHJldHVybiAwO1xuICBpZiAoc3RhdGUub2JqZWN0TW9kZSkgcmV0dXJuIDE7XG4gIGlmIChuICE9PSBuKSB7XG4gICAgLy8gT25seSBmbG93IG9uZSBidWZmZXIgYXQgYSB0aW1lXG4gICAgaWYgKHN0YXRlLmZsb3dpbmcgJiYgc3RhdGUubGVuZ3RoKSByZXR1cm4gc3RhdGUuYnVmZmVyLmhlYWQuZGF0YS5sZW5ndGg7ZWxzZSByZXR1cm4gc3RhdGUubGVuZ3RoO1xuICB9XG4gIC8vIElmIHdlJ3JlIGFza2luZyBmb3IgbW9yZSB0aGFuIHRoZSBjdXJyZW50IGh3bSwgdGhlbiByYWlzZSB0aGUgaHdtLlxuICBpZiAobiA+IHN0YXRlLmhpZ2hXYXRlck1hcmspIHN0YXRlLmhpZ2hXYXRlck1hcmsgPSBjb21wdXRlTmV3SGlnaFdhdGVyTWFyayhuKTtcbiAgaWYgKG4gPD0gc3RhdGUubGVuZ3RoKSByZXR1cm4gbjtcbiAgLy8gRG9uJ3QgaGF2ZSBlbm91Z2hcbiAgaWYgKCFzdGF0ZS5lbmRlZCkge1xuICAgIHN0YXRlLm5lZWRSZWFkYWJsZSA9IHRydWU7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcmV0dXJuIHN0YXRlLmxlbmd0aDtcbn1cblxuLy8geW91IGNhbiBvdmVycmlkZSBlaXRoZXIgdGhpcyBtZXRob2QsIG9yIHRoZSBhc3luYyBfcmVhZChuKSBiZWxvdy5cblJlYWRhYmxlLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24gKG4pIHtcbiAgZGVidWcoJ3JlYWQnLCBuKTtcbiAgbiA9IHBhcnNlSW50KG4sIDEwKTtcbiAgdmFyIHN0YXRlID0gdGhpcy5fcmVhZGFibGVTdGF0ZTtcbiAgdmFyIG5PcmlnID0gbjtcblxuICBpZiAobiAhPT0gMCkgc3RhdGUuZW1pdHRlZFJlYWRhYmxlID0gZmFsc2U7XG5cbiAgLy8gaWYgd2UncmUgZG9pbmcgcmVhZCgwKSB0byB0cmlnZ2VyIGEgcmVhZGFibGUgZXZlbnQsIGJ1dCB3ZVxuICAvLyBhbHJlYWR5IGhhdmUgYSBidW5jaCBvZiBkYXRhIGluIHRoZSBidWZmZXIsIHRoZW4ganVzdCB0cmlnZ2VyXG4gIC8vIHRoZSAncmVhZGFibGUnIGV2ZW50IGFuZCBtb3ZlIG9uLlxuICBpZiAobiA9PT0gMCAmJiBzdGF0ZS5uZWVkUmVhZGFibGUgJiYgKHN0YXRlLmxlbmd0aCA+PSBzdGF0ZS5oaWdoV2F0ZXJNYXJrIHx8IHN0YXRlLmVuZGVkKSkge1xuICAgIGRlYnVnKCdyZWFkOiBlbWl0UmVhZGFibGUnLCBzdGF0ZS5sZW5ndGgsIHN0YXRlLmVuZGVkKTtcbiAgICBpZiAoc3RhdGUubGVuZ3RoID09PSAwICYmIHN0YXRlLmVuZGVkKSBlbmRSZWFkYWJsZSh0aGlzKTtlbHNlIGVtaXRSZWFkYWJsZSh0aGlzKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIG4gPSBob3dNdWNoVG9SZWFkKG4sIHN0YXRlKTtcblxuICAvLyBpZiB3ZSd2ZSBlbmRlZCwgYW5kIHdlJ3JlIG5vdyBjbGVhciwgdGhlbiBmaW5pc2ggaXQgdXAuXG4gIGlmIChuID09PSAwICYmIHN0YXRlLmVuZGVkKSB7XG4gICAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCkgZW5kUmVhZGFibGUodGhpcyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBBbGwgdGhlIGFjdHVhbCBjaHVuayBnZW5lcmF0aW9uIGxvZ2ljIG5lZWRzIHRvIGJlXG4gIC8vICpiZWxvdyogdGhlIGNhbGwgdG8gX3JlYWQuICBUaGUgcmVhc29uIGlzIHRoYXQgaW4gY2VydGFpblxuICAvLyBzeW50aGV0aWMgc3RyZWFtIGNhc2VzLCBzdWNoIGFzIHBhc3N0aHJvdWdoIHN0cmVhbXMsIF9yZWFkXG4gIC8vIG1heSBiZSBhIGNvbXBsZXRlbHkgc3luY2hyb25vdXMgb3BlcmF0aW9uIHdoaWNoIG1heSBjaGFuZ2VcbiAgLy8gdGhlIHN0YXRlIG9mIHRoZSByZWFkIGJ1ZmZlciwgcHJvdmlkaW5nIGVub3VnaCBkYXRhIHdoZW5cbiAgLy8gYmVmb3JlIHRoZXJlIHdhcyAqbm90KiBlbm91Z2guXG4gIC8vXG4gIC8vIFNvLCB0aGUgc3RlcHMgYXJlOlxuICAvLyAxLiBGaWd1cmUgb3V0IHdoYXQgdGhlIHN0YXRlIG9mIHRoaW5ncyB3aWxsIGJlIGFmdGVyIHdlIGRvXG4gIC8vIGEgcmVhZCBmcm9tIHRoZSBidWZmZXIuXG4gIC8vXG4gIC8vIDIuIElmIHRoYXQgcmVzdWx0aW5nIHN0YXRlIHdpbGwgdHJpZ2dlciBhIF9yZWFkLCB0aGVuIGNhbGwgX3JlYWQuXG4gIC8vIE5vdGUgdGhhdCB0aGlzIG1heSBiZSBhc3luY2hyb25vdXMsIG9yIHN5bmNocm9ub3VzLiAgWWVzLCBpdCBpc1xuICAvLyBkZWVwbHkgdWdseSB0byB3cml0ZSBBUElzIHRoaXMgd2F5LCBidXQgdGhhdCBzdGlsbCBkb2Vzbid0IG1lYW5cbiAgLy8gdGhhdCB0aGUgUmVhZGFibGUgY2xhc3Mgc2hvdWxkIGJlaGF2ZSBpbXByb3Blcmx5LCBhcyBzdHJlYW1zIGFyZVxuICAvLyBkZXNpZ25lZCB0byBiZSBzeW5jL2FzeW5jIGFnbm9zdGljLlxuICAvLyBUYWtlIG5vdGUgaWYgdGhlIF9yZWFkIGNhbGwgaXMgc3luYyBvciBhc3luYyAoaWUsIGlmIHRoZSByZWFkIGNhbGxcbiAgLy8gaGFzIHJldHVybmVkIHlldCksIHNvIHRoYXQgd2Uga25vdyB3aGV0aGVyIG9yIG5vdCBpdCdzIHNhZmUgdG8gZW1pdFxuICAvLyAncmVhZGFibGUnIGV0Yy5cbiAgLy9cbiAgLy8gMy4gQWN0dWFsbHkgcHVsbCB0aGUgcmVxdWVzdGVkIGNodW5rcyBvdXQgb2YgdGhlIGJ1ZmZlciBhbmQgcmV0dXJuLlxuXG4gIC8vIGlmIHdlIG5lZWQgYSByZWFkYWJsZSBldmVudCwgdGhlbiB3ZSBuZWVkIHRvIGRvIHNvbWUgcmVhZGluZy5cbiAgdmFyIGRvUmVhZCA9IHN0YXRlLm5lZWRSZWFkYWJsZTtcbiAgZGVidWcoJ25lZWQgcmVhZGFibGUnLCBkb1JlYWQpO1xuXG4gIC8vIGlmIHdlIGN1cnJlbnRseSBoYXZlIGxlc3MgdGhhbiB0aGUgaGlnaFdhdGVyTWFyaywgdGhlbiBhbHNvIHJlYWQgc29tZVxuICBpZiAoc3RhdGUubGVuZ3RoID09PSAwIHx8IHN0YXRlLmxlbmd0aCAtIG4gPCBzdGF0ZS5oaWdoV2F0ZXJNYXJrKSB7XG4gICAgZG9SZWFkID0gdHJ1ZTtcbiAgICBkZWJ1ZygnbGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsnLCBkb1JlYWQpO1xuICB9XG5cbiAgLy8gaG93ZXZlciwgaWYgd2UndmUgZW5kZWQsIHRoZW4gdGhlcmUncyBubyBwb2ludCwgYW5kIGlmIHdlJ3JlIGFscmVhZHlcbiAgLy8gcmVhZGluZywgdGhlbiBpdCdzIHVubmVjZXNzYXJ5LlxuICBpZiAoc3RhdGUuZW5kZWQgfHwgc3RhdGUucmVhZGluZykge1xuICAgIGRvUmVhZCA9IGZhbHNlO1xuICAgIGRlYnVnKCdyZWFkaW5nIG9yIGVuZGVkJywgZG9SZWFkKTtcbiAgfSBlbHNlIGlmIChkb1JlYWQpIHtcbiAgICBkZWJ1ZygnZG8gcmVhZCcpO1xuICAgIHN0YXRlLnJlYWRpbmcgPSB0cnVlO1xuICAgIHN0YXRlLnN5bmMgPSB0cnVlO1xuICAgIC8vIGlmIHRoZSBsZW5ndGggaXMgY3VycmVudGx5IHplcm8sIHRoZW4gd2UgKm5lZWQqIGEgcmVhZGFibGUgZXZlbnQuXG4gICAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCkgc3RhdGUubmVlZFJlYWRhYmxlID0gdHJ1ZTtcbiAgICAvLyBjYWxsIGludGVybmFsIHJlYWQgbWV0aG9kXG4gICAgdGhpcy5fcmVhZChzdGF0ZS5oaWdoV2F0ZXJNYXJrKTtcbiAgICBzdGF0ZS5zeW5jID0gZmFsc2U7XG4gICAgLy8gSWYgX3JlYWQgcHVzaGVkIGRhdGEgc3luY2hyb25vdXNseSwgdGhlbiBgcmVhZGluZ2Agd2lsbCBiZSBmYWxzZSxcbiAgICAvLyBhbmQgd2UgbmVlZCB0byByZS1ldmFsdWF0ZSBob3cgbXVjaCBkYXRhIHdlIGNhbiByZXR1cm4gdG8gdGhlIHVzZXIuXG4gICAgaWYgKCFzdGF0ZS5yZWFkaW5nKSBuID0gaG93TXVjaFRvUmVhZChuT3JpZywgc3RhdGUpO1xuICB9XG5cbiAgdmFyIHJldDtcbiAgaWYgKG4gPiAwKSByZXQgPSBmcm9tTGlzdChuLCBzdGF0ZSk7ZWxzZSByZXQgPSBudWxsO1xuXG4gIGlmIChyZXQgPT09IG51bGwpIHtcbiAgICBzdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlO1xuICAgIG4gPSAwO1xuICB9IGVsc2Uge1xuICAgIHN0YXRlLmxlbmd0aCAtPSBuO1xuICB9XG5cbiAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vIElmIHdlIGhhdmUgbm90aGluZyBpbiB0aGUgYnVmZmVyLCB0aGVuIHdlIHdhbnQgdG8ga25vd1xuICAgIC8vIGFzIHNvb24gYXMgd2UgKmRvKiBnZXQgc29tZXRoaW5nIGludG8gdGhlIGJ1ZmZlci5cbiAgICBpZiAoIXN0YXRlLmVuZGVkKSBzdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlO1xuXG4gICAgLy8gSWYgd2UgdHJpZWQgdG8gcmVhZCgpIHBhc3QgdGhlIEVPRiwgdGhlbiBlbWl0IGVuZCBvbiB0aGUgbmV4dCB0aWNrLlxuICAgIGlmIChuT3JpZyAhPT0gbiAmJiBzdGF0ZS5lbmRlZCkgZW5kUmVhZGFibGUodGhpcyk7XG4gIH1cblxuICBpZiAocmV0ICE9PSBudWxsKSB0aGlzLmVtaXQoJ2RhdGEnLCByZXQpO1xuXG4gIHJldHVybiByZXQ7XG59O1xuXG5mdW5jdGlvbiBvbkVvZkNodW5rKHN0cmVhbSwgc3RhdGUpIHtcbiAgaWYgKHN0YXRlLmVuZGVkKSByZXR1cm47XG4gIGlmIChzdGF0ZS5kZWNvZGVyKSB7XG4gICAgdmFyIGNodW5rID0gc3RhdGUuZGVjb2Rlci5lbmQoKTtcbiAgICBpZiAoY2h1bmsgJiYgY2h1bmsubGVuZ3RoKSB7XG4gICAgICBzdGF0ZS5idWZmZXIucHVzaChjaHVuayk7XG4gICAgICBzdGF0ZS5sZW5ndGggKz0gc3RhdGUub2JqZWN0TW9kZSA/IDEgOiBjaHVuay5sZW5ndGg7XG4gICAgfVxuICB9XG4gIHN0YXRlLmVuZGVkID0gdHJ1ZTtcblxuICAvLyBlbWl0ICdyZWFkYWJsZScgbm93IHRvIG1ha2Ugc3VyZSBpdCBnZXRzIHBpY2tlZCB1cC5cbiAgZW1pdFJlYWRhYmxlKHN0cmVhbSk7XG59XG5cbi8vIERvbid0IGVtaXQgcmVhZGFibGUgcmlnaHQgYXdheSBpbiBzeW5jIG1vZGUsIGJlY2F1c2UgdGhpcyBjYW4gdHJpZ2dlclxuLy8gYW5vdGhlciByZWFkKCkgY2FsbCA9PiBzdGFjayBvdmVyZmxvdy4gIFRoaXMgd2F5LCBpdCBtaWdodCB0cmlnZ2VyXG4vLyBhIG5leHRUaWNrIHJlY3Vyc2lvbiB3YXJuaW5nLCBidXQgdGhhdCdzIG5vdCBzbyBiYWQuXG5mdW5jdGlvbiBlbWl0UmVhZGFibGUoc3RyZWFtKSB7XG4gIHZhciBzdGF0ZSA9IHN0cmVhbS5fcmVhZGFibGVTdGF0ZTtcbiAgc3RhdGUubmVlZFJlYWRhYmxlID0gZmFsc2U7XG4gIGlmICghc3RhdGUuZW1pdHRlZFJlYWRhYmxlKSB7XG4gICAgZGVidWcoJ2VtaXRSZWFkYWJsZScsIHN0YXRlLmZsb3dpbmcpO1xuICAgIHN0YXRlLmVtaXR0ZWRSZWFkYWJsZSA9IHRydWU7XG4gICAgaWYgKHN0YXRlLnN5bmMpIHBuYS5uZXh0VGljayhlbWl0UmVhZGFibGVfLCBzdHJlYW0pO2Vsc2UgZW1pdFJlYWRhYmxlXyhzdHJlYW0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVtaXRSZWFkYWJsZV8oc3RyZWFtKSB7XG4gIGRlYnVnKCdlbWl0IHJlYWRhYmxlJyk7XG4gIHN0cmVhbS5lbWl0KCdyZWFkYWJsZScpO1xuICBmbG93KHN0cmVhbSk7XG59XG5cbi8vIGF0IHRoaXMgcG9pbnQsIHRoZSB1c2VyIGhhcyBwcmVzdW1hYmx5IHNlZW4gdGhlICdyZWFkYWJsZScgZXZlbnQsXG4vLyBhbmQgY2FsbGVkIHJlYWQoKSB0byBjb25zdW1lIHNvbWUgZGF0YS4gIHRoYXQgbWF5IGhhdmUgdHJpZ2dlcmVkXG4vLyBpbiB0dXJuIGFub3RoZXIgX3JlYWQobikgY2FsbCwgaW4gd2hpY2ggY2FzZSByZWFkaW5nID0gdHJ1ZSBpZlxuLy8gaXQncyBpbiBwcm9ncmVzcy5cbi8vIEhvd2V2ZXIsIGlmIHdlJ3JlIG5vdCBlbmRlZCwgb3IgcmVhZGluZywgYW5kIHRoZSBsZW5ndGggPCBod20sXG4vLyB0aGVuIGdvIGFoZWFkIGFuZCB0cnkgdG8gcmVhZCBzb21lIG1vcmUgcHJlZW1wdGl2ZWx5LlxuZnVuY3Rpb24gbWF5YmVSZWFkTW9yZShzdHJlYW0sIHN0YXRlKSB7XG4gIGlmICghc3RhdGUucmVhZGluZ01vcmUpIHtcbiAgICBzdGF0ZS5yZWFkaW5nTW9yZSA9IHRydWU7XG4gICAgcG5hLm5leHRUaWNrKG1heWJlUmVhZE1vcmVfLCBzdHJlYW0sIHN0YXRlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXliZVJlYWRNb3JlXyhzdHJlYW0sIHN0YXRlKSB7XG4gIHZhciBsZW4gPSBzdGF0ZS5sZW5ndGg7XG4gIHdoaWxlICghc3RhdGUucmVhZGluZyAmJiAhc3RhdGUuZmxvd2luZyAmJiAhc3RhdGUuZW5kZWQgJiYgc3RhdGUubGVuZ3RoIDwgc3RhdGUuaGlnaFdhdGVyTWFyaykge1xuICAgIGRlYnVnKCdtYXliZVJlYWRNb3JlIHJlYWQgMCcpO1xuICAgIHN0cmVhbS5yZWFkKDApO1xuICAgIGlmIChsZW4gPT09IHN0YXRlLmxlbmd0aClcbiAgICAgIC8vIGRpZG4ndCBnZXQgYW55IGRhdGEsIHN0b3Agc3Bpbm5pbmcuXG4gICAgICBicmVhaztlbHNlIGxlbiA9IHN0YXRlLmxlbmd0aDtcbiAgfVxuICBzdGF0ZS5yZWFkaW5nTW9yZSA9IGZhbHNlO1xufVxuXG4vLyBhYnN0cmFjdCBtZXRob2QuICB0byBiZSBvdmVycmlkZGVuIGluIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGNsYXNzZXMuXG4vLyBjYWxsIGNiKGVyLCBkYXRhKSB3aGVyZSBkYXRhIGlzIDw9IG4gaW4gbGVuZ3RoLlxuLy8gZm9yIHZpcnR1YWwgKG5vbi1zdHJpbmcsIG5vbi1idWZmZXIpIHN0cmVhbXMsIFwibGVuZ3RoXCIgaXMgc29tZXdoYXRcbi8vIGFyYml0cmFyeSwgYW5kIHBlcmhhcHMgbm90IHZlcnkgbWVhbmluZ2Z1bC5cblJlYWRhYmxlLnByb3RvdHlwZS5fcmVhZCA9IGZ1bmN0aW9uIChuKSB7XG4gIHRoaXMuZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoJ19yZWFkKCkgaXMgbm90IGltcGxlbWVudGVkJykpO1xufTtcblxuUmVhZGFibGUucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbiAoZGVzdCwgcGlwZU9wdHMpIHtcbiAgdmFyIHNyYyA9IHRoaXM7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG5cbiAgc3dpdGNoIChzdGF0ZS5waXBlc0NvdW50KSB7XG4gICAgY2FzZSAwOlxuICAgICAgc3RhdGUucGlwZXMgPSBkZXN0O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxOlxuICAgICAgc3RhdGUucGlwZXMgPSBbc3RhdGUucGlwZXMsIGRlc3RdO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHN0YXRlLnBpcGVzLnB1c2goZGVzdCk7XG4gICAgICBicmVhaztcbiAgfVxuICBzdGF0ZS5waXBlc0NvdW50ICs9IDE7XG4gIGRlYnVnKCdwaXBlIGNvdW50PSVkIG9wdHM9JWonLCBzdGF0ZS5waXBlc0NvdW50LCBwaXBlT3B0cyk7XG5cbiAgdmFyIGRvRW5kID0gKCFwaXBlT3B0cyB8fCBwaXBlT3B0cy5lbmQgIT09IGZhbHNlKSAmJiBkZXN0ICE9PSBwcm9jZXNzLnN0ZG91dCAmJiBkZXN0ICE9PSBwcm9jZXNzLnN0ZGVycjtcblxuICB2YXIgZW5kRm4gPSBkb0VuZCA/IG9uZW5kIDogdW5waXBlO1xuICBpZiAoc3RhdGUuZW5kRW1pdHRlZCkgcG5hLm5leHRUaWNrKGVuZEZuKTtlbHNlIHNyYy5vbmNlKCdlbmQnLCBlbmRGbik7XG5cbiAgZGVzdC5vbigndW5waXBlJywgb251bnBpcGUpO1xuICBmdW5jdGlvbiBvbnVucGlwZShyZWFkYWJsZSwgdW5waXBlSW5mbykge1xuICAgIGRlYnVnKCdvbnVucGlwZScpO1xuICAgIGlmIChyZWFkYWJsZSA9PT0gc3JjKSB7XG4gICAgICBpZiAodW5waXBlSW5mbyAmJiB1bnBpcGVJbmZvLmhhc1VucGlwZWQgPT09IGZhbHNlKSB7XG4gICAgICAgIHVucGlwZUluZm8uaGFzVW5waXBlZCA9IHRydWU7XG4gICAgICAgIGNsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBvbmVuZCgpIHtcbiAgICBkZWJ1Zygnb25lbmQnKTtcbiAgICBkZXN0LmVuZCgpO1xuICB9XG5cbiAgLy8gd2hlbiB0aGUgZGVzdCBkcmFpbnMsIGl0IHJlZHVjZXMgdGhlIGF3YWl0RHJhaW4gY291bnRlclxuICAvLyBvbiB0aGUgc291cmNlLiAgVGhpcyB3b3VsZCBiZSBtb3JlIGVsZWdhbnQgd2l0aCBhIC5vbmNlKClcbiAgLy8gaGFuZGxlciBpbiBmbG93KCksIGJ1dCBhZGRpbmcgYW5kIHJlbW92aW5nIHJlcGVhdGVkbHkgaXNcbiAgLy8gdG9vIHNsb3cuXG4gIHZhciBvbmRyYWluID0gcGlwZU9uRHJhaW4oc3JjKTtcbiAgZGVzdC5vbignZHJhaW4nLCBvbmRyYWluKTtcblxuICB2YXIgY2xlYW5lZFVwID0gZmFsc2U7XG4gIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgZGVidWcoJ2NsZWFudXAnKTtcbiAgICAvLyBjbGVhbnVwIGV2ZW50IGhhbmRsZXJzIG9uY2UgdGhlIHBpcGUgaXMgYnJva2VuXG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBvbmNsb3NlKTtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdmaW5pc2gnLCBvbmZpbmlzaCk7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZHJhaW4nLCBvbmRyYWluKTtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uZXJyb3IpO1xuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ3VucGlwZScsIG9udW5waXBlKTtcbiAgICBzcmMucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIG9uZW5kKTtcbiAgICBzcmMucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIHVucGlwZSk7XG4gICAgc3JjLnJlbW92ZUxpc3RlbmVyKCdkYXRhJywgb25kYXRhKTtcblxuICAgIGNsZWFuZWRVcCA9IHRydWU7XG5cbiAgICAvLyBpZiB0aGUgcmVhZGVyIGlzIHdhaXRpbmcgZm9yIGEgZHJhaW4gZXZlbnQgZnJvbSB0aGlzXG4gICAgLy8gc3BlY2lmaWMgd3JpdGVyLCB0aGVuIGl0IHdvdWxkIGNhdXNlIGl0IHRvIG5ldmVyIHN0YXJ0XG4gICAgLy8gZmxvd2luZyBhZ2Fpbi5cbiAgICAvLyBTbywgaWYgdGhpcyBpcyBhd2FpdGluZyBhIGRyYWluLCB0aGVuIHdlIGp1c3QgY2FsbCBpdCBub3cuXG4gICAgLy8gSWYgd2UgZG9uJ3Qga25vdywgdGhlbiBhc3N1bWUgdGhhdCB3ZSBhcmUgd2FpdGluZyBmb3Igb25lLlxuICAgIGlmIChzdGF0ZS5hd2FpdERyYWluICYmICghZGVzdC5fd3JpdGFibGVTdGF0ZSB8fCBkZXN0Ll93cml0YWJsZVN0YXRlLm5lZWREcmFpbikpIG9uZHJhaW4oKTtcbiAgfVxuXG4gIC8vIElmIHRoZSB1c2VyIHB1c2hlcyBtb3JlIGRhdGEgd2hpbGUgd2UncmUgd3JpdGluZyB0byBkZXN0IHRoZW4gd2UnbGwgZW5kIHVwXG4gIC8vIGluIG9uZGF0YSBhZ2Fpbi4gSG93ZXZlciwgd2Ugb25seSB3YW50IHRvIGluY3JlYXNlIGF3YWl0RHJhaW4gb25jZSBiZWNhdXNlXG4gIC8vIGRlc3Qgd2lsbCBvbmx5IGVtaXQgb25lICdkcmFpbicgZXZlbnQgZm9yIHRoZSBtdWx0aXBsZSB3cml0ZXMuXG4gIC8vID0+IEludHJvZHVjZSBhIGd1YXJkIG9uIGluY3JlYXNpbmcgYXdhaXREcmFpbi5cbiAgdmFyIGluY3JlYXNlZEF3YWl0RHJhaW4gPSBmYWxzZTtcbiAgc3JjLm9uKCdkYXRhJywgb25kYXRhKTtcbiAgZnVuY3Rpb24gb25kYXRhKGNodW5rKSB7XG4gICAgZGVidWcoJ29uZGF0YScpO1xuICAgIGluY3JlYXNlZEF3YWl0RHJhaW4gPSBmYWxzZTtcbiAgICB2YXIgcmV0ID0gZGVzdC53cml0ZShjaHVuayk7XG4gICAgaWYgKGZhbHNlID09PSByZXQgJiYgIWluY3JlYXNlZEF3YWl0RHJhaW4pIHtcbiAgICAgIC8vIElmIHRoZSB1c2VyIHVucGlwZWQgZHVyaW5nIGBkZXN0LndyaXRlKClgLCBpdCBpcyBwb3NzaWJsZVxuICAgICAgLy8gdG8gZ2V0IHN0dWNrIGluIGEgcGVybWFuZW50bHkgcGF1c2VkIHN0YXRlIGlmIHRoYXQgd3JpdGVcbiAgICAgIC8vIGFsc28gcmV0dXJuZWQgZmFsc2UuXG4gICAgICAvLyA9PiBDaGVjayB3aGV0aGVyIGBkZXN0YCBpcyBzdGlsbCBhIHBpcGluZyBkZXN0aW5hdGlvbi5cbiAgICAgIGlmICgoc3RhdGUucGlwZXNDb3VudCA9PT0gMSAmJiBzdGF0ZS5waXBlcyA9PT0gZGVzdCB8fCBzdGF0ZS5waXBlc0NvdW50ID4gMSAmJiBpbmRleE9mKHN0YXRlLnBpcGVzLCBkZXN0KSAhPT0gLTEpICYmICFjbGVhbmVkVXApIHtcbiAgICAgICAgZGVidWcoJ2ZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZScsIHNyYy5fcmVhZGFibGVTdGF0ZS5hd2FpdERyYWluKTtcbiAgICAgICAgc3JjLl9yZWFkYWJsZVN0YXRlLmF3YWl0RHJhaW4rKztcbiAgICAgICAgaW5jcmVhc2VkQXdhaXREcmFpbiA9IHRydWU7XG4gICAgICB9XG4gICAgICBzcmMucGF1c2UoKTtcbiAgICB9XG4gIH1cblxuICAvLyBpZiB0aGUgZGVzdCBoYXMgYW4gZXJyb3IsIHRoZW4gc3RvcCBwaXBpbmcgaW50byBpdC5cbiAgLy8gaG93ZXZlciwgZG9uJ3Qgc3VwcHJlc3MgdGhlIHRocm93aW5nIGJlaGF2aW9yIGZvciB0aGlzLlxuICBmdW5jdGlvbiBvbmVycm9yKGVyKSB7XG4gICAgZGVidWcoJ29uZXJyb3InLCBlcik7XG4gICAgdW5waXBlKCk7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbmVycm9yKTtcbiAgICBpZiAoRUVsaXN0ZW5lckNvdW50KGRlc3QsICdlcnJvcicpID09PSAwKSBkZXN0LmVtaXQoJ2Vycm9yJywgZXIpO1xuICB9XG5cbiAgLy8gTWFrZSBzdXJlIG91ciBlcnJvciBoYW5kbGVyIGlzIGF0dGFjaGVkIGJlZm9yZSB1c2VybGFuZCBvbmVzLlxuICBwcmVwZW5kTGlzdGVuZXIoZGVzdCwgJ2Vycm9yJywgb25lcnJvcik7XG5cbiAgLy8gQm90aCBjbG9zZSBhbmQgZmluaXNoIHNob3VsZCB0cmlnZ2VyIHVucGlwZSwgYnV0IG9ubHkgb25jZS5cbiAgZnVuY3Rpb24gb25jbG9zZSgpIHtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdmaW5pc2gnLCBvbmZpbmlzaCk7XG4gICAgdW5waXBlKCk7XG4gIH1cbiAgZGVzdC5vbmNlKCdjbG9zZScsIG9uY2xvc2UpO1xuICBmdW5jdGlvbiBvbmZpbmlzaCgpIHtcbiAgICBkZWJ1Zygnb25maW5pc2gnKTtcbiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIG9uY2xvc2UpO1xuICAgIHVucGlwZSgpO1xuICB9XG4gIGRlc3Qub25jZSgnZmluaXNoJywgb25maW5pc2gpO1xuXG4gIGZ1bmN0aW9uIHVucGlwZSgpIHtcbiAgICBkZWJ1ZygndW5waXBlJyk7XG4gICAgc3JjLnVucGlwZShkZXN0KTtcbiAgfVxuXG4gIC8vIHRlbGwgdGhlIGRlc3QgdGhhdCBpdCdzIGJlaW5nIHBpcGVkIHRvXG4gIGRlc3QuZW1pdCgncGlwZScsIHNyYyk7XG5cbiAgLy8gc3RhcnQgdGhlIGZsb3cgaWYgaXQgaGFzbid0IGJlZW4gc3RhcnRlZCBhbHJlYWR5LlxuICBpZiAoIXN0YXRlLmZsb3dpbmcpIHtcbiAgICBkZWJ1ZygncGlwZSByZXN1bWUnKTtcbiAgICBzcmMucmVzdW1lKCk7XG4gIH1cblxuICByZXR1cm4gZGVzdDtcbn07XG5cbmZ1bmN0aW9uIHBpcGVPbkRyYWluKHNyYykge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzdGF0ZSA9IHNyYy5fcmVhZGFibGVTdGF0ZTtcbiAgICBkZWJ1ZygncGlwZU9uRHJhaW4nLCBzdGF0ZS5hd2FpdERyYWluKTtcbiAgICBpZiAoc3RhdGUuYXdhaXREcmFpbikgc3RhdGUuYXdhaXREcmFpbi0tO1xuICAgIGlmIChzdGF0ZS5hd2FpdERyYWluID09PSAwICYmIEVFbGlzdGVuZXJDb3VudChzcmMsICdkYXRhJykpIHtcbiAgICAgIHN0YXRlLmZsb3dpbmcgPSB0cnVlO1xuICAgICAgZmxvdyhzcmMpO1xuICAgIH1cbiAgfTtcbn1cblxuUmVhZGFibGUucHJvdG90eXBlLnVucGlwZSA9IGZ1bmN0aW9uIChkZXN0KSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gIHZhciB1bnBpcGVJbmZvID0geyBoYXNVbnBpcGVkOiBmYWxzZSB9O1xuXG4gIC8vIGlmIHdlJ3JlIG5vdCBwaXBpbmcgYW55d2hlcmUsIHRoZW4gZG8gbm90aGluZy5cbiAgaWYgKHN0YXRlLnBpcGVzQ291bnQgPT09IDApIHJldHVybiB0aGlzO1xuXG4gIC8vIGp1c3Qgb25lIGRlc3RpbmF0aW9uLiAgbW9zdCBjb21tb24gY2FzZS5cbiAgaWYgKHN0YXRlLnBpcGVzQ291bnQgPT09IDEpIHtcbiAgICAvLyBwYXNzZWQgaW4gb25lLCBidXQgaXQncyBub3QgdGhlIHJpZ2h0IG9uZS5cbiAgICBpZiAoZGVzdCAmJiBkZXN0ICE9PSBzdGF0ZS5waXBlcykgcmV0dXJuIHRoaXM7XG5cbiAgICBpZiAoIWRlc3QpIGRlc3QgPSBzdGF0ZS5waXBlcztcblxuICAgIC8vIGdvdCBhIG1hdGNoLlxuICAgIHN0YXRlLnBpcGVzID0gbnVsbDtcbiAgICBzdGF0ZS5waXBlc0NvdW50ID0gMDtcbiAgICBzdGF0ZS5mbG93aW5nID0gZmFsc2U7XG4gICAgaWYgKGRlc3QpIGRlc3QuZW1pdCgndW5waXBlJywgdGhpcywgdW5waXBlSW5mbyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBzbG93IGNhc2UuIG11bHRpcGxlIHBpcGUgZGVzdGluYXRpb25zLlxuXG4gIGlmICghZGVzdCkge1xuICAgIC8vIHJlbW92ZSBhbGwuXG4gICAgdmFyIGRlc3RzID0gc3RhdGUucGlwZXM7XG4gICAgdmFyIGxlbiA9IHN0YXRlLnBpcGVzQ291bnQ7XG4gICAgc3RhdGUucGlwZXMgPSBudWxsO1xuICAgIHN0YXRlLnBpcGVzQ291bnQgPSAwO1xuICAgIHN0YXRlLmZsb3dpbmcgPSBmYWxzZTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGRlc3RzW2ldLmVtaXQoJ3VucGlwZScsIHRoaXMsIHVucGlwZUluZm8pO1xuICAgIH1yZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIHRyeSB0byBmaW5kIHRoZSByaWdodCBvbmUuXG4gIHZhciBpbmRleCA9IGluZGV4T2Yoc3RhdGUucGlwZXMsIGRlc3QpO1xuICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm4gdGhpcztcblxuICBzdGF0ZS5waXBlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICBzdGF0ZS5waXBlc0NvdW50IC09IDE7XG4gIGlmIChzdGF0ZS5waXBlc0NvdW50ID09PSAxKSBzdGF0ZS5waXBlcyA9IHN0YXRlLnBpcGVzWzBdO1xuXG4gIGRlc3QuZW1pdCgndW5waXBlJywgdGhpcywgdW5waXBlSW5mbyk7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vLyBzZXQgdXAgZGF0YSBldmVudHMgaWYgdGhleSBhcmUgYXNrZWQgZm9yXG4vLyBFbnN1cmUgcmVhZGFibGUgbGlzdGVuZXJzIGV2ZW50dWFsbHkgZ2V0IHNvbWV0aGluZ1xuUmVhZGFibGUucHJvdG90eXBlLm9uID0gZnVuY3Rpb24gKGV2LCBmbikge1xuICB2YXIgcmVzID0gU3RyZWFtLnByb3RvdHlwZS5vbi5jYWxsKHRoaXMsIGV2LCBmbik7XG5cbiAgaWYgKGV2ID09PSAnZGF0YScpIHtcbiAgICAvLyBTdGFydCBmbG93aW5nIG9uIG5leHQgdGljayBpZiBzdHJlYW0gaXNuJ3QgZXhwbGljaXRseSBwYXVzZWRcbiAgICBpZiAodGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nICE9PSBmYWxzZSkgdGhpcy5yZXN1bWUoKTtcbiAgfSBlbHNlIGlmIChldiA9PT0gJ3JlYWRhYmxlJykge1xuICAgIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gICAgaWYgKCFzdGF0ZS5lbmRFbWl0dGVkICYmICFzdGF0ZS5yZWFkYWJsZUxpc3RlbmluZykge1xuICAgICAgc3RhdGUucmVhZGFibGVMaXN0ZW5pbmcgPSBzdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlO1xuICAgICAgc3RhdGUuZW1pdHRlZFJlYWRhYmxlID0gZmFsc2U7XG4gICAgICBpZiAoIXN0YXRlLnJlYWRpbmcpIHtcbiAgICAgICAgcG5hLm5leHRUaWNrKG5SZWFkaW5nTmV4dFRpY2ssIHRoaXMpO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5sZW5ndGgpIHtcbiAgICAgICAgZW1pdFJlYWRhYmxlKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXM7XG59O1xuUmVhZGFibGUucHJvdG90eXBlLmFkZExpc3RlbmVyID0gUmVhZGFibGUucHJvdG90eXBlLm9uO1xuXG5mdW5jdGlvbiBuUmVhZGluZ05leHRUaWNrKHNlbGYpIHtcbiAgZGVidWcoJ3JlYWRhYmxlIG5leHR0aWNrIHJlYWQgMCcpO1xuICBzZWxmLnJlYWQoMCk7XG59XG5cbi8vIHBhdXNlKCkgYW5kIHJlc3VtZSgpIGFyZSByZW1uYW50cyBvZiB0aGUgbGVnYWN5IHJlYWRhYmxlIHN0cmVhbSBBUElcbi8vIElmIHRoZSB1c2VyIHVzZXMgdGhlbSwgdGhlbiBzd2l0Y2ggaW50byBvbGQgbW9kZS5cblJlYWRhYmxlLnByb3RvdHlwZS5yZXN1bWUgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gIGlmICghc3RhdGUuZmxvd2luZykge1xuICAgIGRlYnVnKCdyZXN1bWUnKTtcbiAgICBzdGF0ZS5mbG93aW5nID0gdHJ1ZTtcbiAgICByZXN1bWUodGhpcywgc3RhdGUpO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gcmVzdW1lKHN0cmVhbSwgc3RhdGUpIHtcbiAgaWYgKCFzdGF0ZS5yZXN1bWVTY2hlZHVsZWQpIHtcbiAgICBzdGF0ZS5yZXN1bWVTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHBuYS5uZXh0VGljayhyZXN1bWVfLCBzdHJlYW0sIHN0YXRlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXN1bWVfKHN0cmVhbSwgc3RhdGUpIHtcbiAgaWYgKCFzdGF0ZS5yZWFkaW5nKSB7XG4gICAgZGVidWcoJ3Jlc3VtZSByZWFkIDAnKTtcbiAgICBzdHJlYW0ucmVhZCgwKTtcbiAgfVxuXG4gIHN0YXRlLnJlc3VtZVNjaGVkdWxlZCA9IGZhbHNlO1xuICBzdGF0ZS5hd2FpdERyYWluID0gMDtcbiAgc3RyZWFtLmVtaXQoJ3Jlc3VtZScpO1xuICBmbG93KHN0cmVhbSk7XG4gIGlmIChzdGF0ZS5mbG93aW5nICYmICFzdGF0ZS5yZWFkaW5nKSBzdHJlYW0ucmVhZCgwKTtcbn1cblxuUmVhZGFibGUucHJvdG90eXBlLnBhdXNlID0gZnVuY3Rpb24gKCkge1xuICBkZWJ1ZygnY2FsbCBwYXVzZSBmbG93aW5nPSVqJywgdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKTtcbiAgaWYgKGZhbHNlICE9PSB0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcpIHtcbiAgICBkZWJ1ZygncGF1c2UnKTtcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmVtaXQoJ3BhdXNlJyk7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiBmbG93KHN0cmVhbSkge1xuICB2YXIgc3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGU7XG4gIGRlYnVnKCdmbG93Jywgc3RhdGUuZmxvd2luZyk7XG4gIHdoaWxlIChzdGF0ZS5mbG93aW5nICYmIHN0cmVhbS5yZWFkKCkgIT09IG51bGwpIHt9XG59XG5cbi8vIHdyYXAgYW4gb2xkLXN0eWxlIHN0cmVhbSBhcyB0aGUgYXN5bmMgZGF0YSBzb3VyY2UuXG4vLyBUaGlzIGlzICpub3QqIHBhcnQgb2YgdGhlIHJlYWRhYmxlIHN0cmVhbSBpbnRlcmZhY2UuXG4vLyBJdCBpcyBhbiB1Z2x5IHVuZm9ydHVuYXRlIG1lc3Mgb2YgaGlzdG9yeS5cblJlYWRhYmxlLnByb3RvdHlwZS53cmFwID0gZnVuY3Rpb24gKHN0cmVhbSkge1xuICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gIHZhciBwYXVzZWQgPSBmYWxzZTtcblxuICBzdHJlYW0ub24oJ2VuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBkZWJ1Zygnd3JhcHBlZCBlbmQnKTtcbiAgICBpZiAoc3RhdGUuZGVjb2RlciAmJiAhc3RhdGUuZW5kZWQpIHtcbiAgICAgIHZhciBjaHVuayA9IHN0YXRlLmRlY29kZXIuZW5kKCk7XG4gICAgICBpZiAoY2h1bmsgJiYgY2h1bmsubGVuZ3RoKSBfdGhpcy5wdXNoKGNodW5rKTtcbiAgICB9XG5cbiAgICBfdGhpcy5wdXNoKG51bGwpO1xuICB9KTtcblxuICBzdHJlYW0ub24oJ2RhdGEnLCBmdW5jdGlvbiAoY2h1bmspIHtcbiAgICBkZWJ1Zygnd3JhcHBlZCBkYXRhJyk7XG4gICAgaWYgKHN0YXRlLmRlY29kZXIpIGNodW5rID0gc3RhdGUuZGVjb2Rlci53cml0ZShjaHVuayk7XG5cbiAgICAvLyBkb24ndCBza2lwIG92ZXIgZmFsc3kgdmFsdWVzIGluIG9iamVjdE1vZGVcbiAgICBpZiAoc3RhdGUub2JqZWN0TW9kZSAmJiAoY2h1bmsgPT09IG51bGwgfHwgY2h1bmsgPT09IHVuZGVmaW5lZCkpIHJldHVybjtlbHNlIGlmICghc3RhdGUub2JqZWN0TW9kZSAmJiAoIWNodW5rIHx8ICFjaHVuay5sZW5ndGgpKSByZXR1cm47XG5cbiAgICB2YXIgcmV0ID0gX3RoaXMucHVzaChjaHVuayk7XG4gICAgaWYgKCFyZXQpIHtcbiAgICAgIHBhdXNlZCA9IHRydWU7XG4gICAgICBzdHJlYW0ucGF1c2UoKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIHByb3h5IGFsbCB0aGUgb3RoZXIgbWV0aG9kcy5cbiAgLy8gaW1wb3J0YW50IHdoZW4gd3JhcHBpbmcgZmlsdGVycyBhbmQgZHVwbGV4ZXMuXG4gIGZvciAodmFyIGkgaW4gc3RyZWFtKSB7XG4gICAgaWYgKHRoaXNbaV0gPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygc3RyZWFtW2ldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzW2ldID0gZnVuY3Rpb24gKG1ldGhvZCkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBzdHJlYW1bbWV0aG9kXS5hcHBseShzdHJlYW0sIGFyZ3VtZW50cyk7XG4gICAgICAgIH07XG4gICAgICB9KGkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHByb3h5IGNlcnRhaW4gaW1wb3J0YW50IGV2ZW50cy5cbiAgZm9yICh2YXIgbiA9IDA7IG4gPCBrUHJveHlFdmVudHMubGVuZ3RoOyBuKyspIHtcbiAgICBzdHJlYW0ub24oa1Byb3h5RXZlbnRzW25dLCB0aGlzLmVtaXQuYmluZCh0aGlzLCBrUHJveHlFdmVudHNbbl0pKTtcbiAgfVxuXG4gIC8vIHdoZW4gd2UgdHJ5IHRvIGNvbnN1bWUgc29tZSBtb3JlIGJ5dGVzLCBzaW1wbHkgdW5wYXVzZSB0aGVcbiAgLy8gdW5kZXJseWluZyBzdHJlYW0uXG4gIHRoaXMuX3JlYWQgPSBmdW5jdGlvbiAobikge1xuICAgIGRlYnVnKCd3cmFwcGVkIF9yZWFkJywgbik7XG4gICAgaWYgKHBhdXNlZCkge1xuICAgICAgcGF1c2VkID0gZmFsc2U7XG4gICAgICBzdHJlYW0ucmVzdW1lKCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwgJ3JlYWRhYmxlSGlnaFdhdGVyTWFyaycsIHtcbiAgLy8gbWFraW5nIGl0IGV4cGxpY2l0IHRoaXMgcHJvcGVydHkgaXMgbm90IGVudW1lcmFibGVcbiAgLy8gYmVjYXVzZSBvdGhlcndpc2Ugc29tZSBwcm90b3R5cGUgbWFuaXB1bGF0aW9uIGluXG4gIC8vIHVzZXJsYW5kIHdpbGwgZmFpbFxuICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuaGlnaFdhdGVyTWFyaztcbiAgfVxufSk7XG5cbi8vIGV4cG9zZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS5cblJlYWRhYmxlLl9mcm9tTGlzdCA9IGZyb21MaXN0O1xuXG4vLyBQbHVjayBvZmYgbiBieXRlcyBmcm9tIGFuIGFycmF5IG9mIGJ1ZmZlcnMuXG4vLyBMZW5ndGggaXMgdGhlIGNvbWJpbmVkIGxlbmd0aHMgb2YgYWxsIHRoZSBidWZmZXJzIGluIHRoZSBsaXN0LlxuLy8gVGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBpbmxpbmFibGUsIHNvIHBsZWFzZSB0YWtlIGNhcmUgd2hlbiBtYWtpbmdcbi8vIGNoYW5nZXMgdG8gdGhlIGZ1bmN0aW9uIGJvZHkuXG5mdW5jdGlvbiBmcm9tTGlzdChuLCBzdGF0ZSkge1xuICAvLyBub3RoaW5nIGJ1ZmZlcmVkXG4gIGlmIChzdGF0ZS5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gIHZhciByZXQ7XG4gIGlmIChzdGF0ZS5vYmplY3RNb2RlKSByZXQgPSBzdGF0ZS5idWZmZXIuc2hpZnQoKTtlbHNlIGlmICghbiB8fCBuID49IHN0YXRlLmxlbmd0aCkge1xuICAgIC8vIHJlYWQgaXQgYWxsLCB0cnVuY2F0ZSB0aGUgbGlzdFxuICAgIGlmIChzdGF0ZS5kZWNvZGVyKSByZXQgPSBzdGF0ZS5idWZmZXIuam9pbignJyk7ZWxzZSBpZiAoc3RhdGUuYnVmZmVyLmxlbmd0aCA9PT0gMSkgcmV0ID0gc3RhdGUuYnVmZmVyLmhlYWQuZGF0YTtlbHNlIHJldCA9IHN0YXRlLmJ1ZmZlci5jb25jYXQoc3RhdGUubGVuZ3RoKTtcbiAgICBzdGF0ZS5idWZmZXIuY2xlYXIoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyByZWFkIHBhcnQgb2YgbGlzdFxuICAgIHJldCA9IGZyb21MaXN0UGFydGlhbChuLCBzdGF0ZS5idWZmZXIsIHN0YXRlLmRlY29kZXIpO1xuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuLy8gRXh0cmFjdHMgb25seSBlbm91Z2ggYnVmZmVyZWQgZGF0YSB0byBzYXRpc2Z5IHRoZSBhbW91bnQgcmVxdWVzdGVkLlxuLy8gVGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBpbmxpbmFibGUsIHNvIHBsZWFzZSB0YWtlIGNhcmUgd2hlbiBtYWtpbmdcbi8vIGNoYW5nZXMgdG8gdGhlIGZ1bmN0aW9uIGJvZHkuXG5mdW5jdGlvbiBmcm9tTGlzdFBhcnRpYWwobiwgbGlzdCwgaGFzU3RyaW5ncykge1xuICB2YXIgcmV0O1xuICBpZiAobiA8IGxpc3QuaGVhZC5kYXRhLmxlbmd0aCkge1xuICAgIC8vIHNsaWNlIGlzIHRoZSBzYW1lIGZvciBidWZmZXJzIGFuZCBzdHJpbmdzXG4gICAgcmV0ID0gbGlzdC5oZWFkLmRhdGEuc2xpY2UoMCwgbik7XG4gICAgbGlzdC5oZWFkLmRhdGEgPSBsaXN0LmhlYWQuZGF0YS5zbGljZShuKTtcbiAgfSBlbHNlIGlmIChuID09PSBsaXN0LmhlYWQuZGF0YS5sZW5ndGgpIHtcbiAgICAvLyBmaXJzdCBjaHVuayBpcyBhIHBlcmZlY3QgbWF0Y2hcbiAgICByZXQgPSBsaXN0LnNoaWZ0KCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gcmVzdWx0IHNwYW5zIG1vcmUgdGhhbiBvbmUgYnVmZmVyXG4gICAgcmV0ID0gaGFzU3RyaW5ncyA/IGNvcHlGcm9tQnVmZmVyU3RyaW5nKG4sIGxpc3QpIDogY29weUZyb21CdWZmZXIobiwgbGlzdCk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLy8gQ29waWVzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIGxpc3Qgb2YgYnVmZmVyZWQgZGF0YVxuLy8gY2h1bmtzLlxuLy8gVGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBpbmxpbmFibGUsIHNvIHBsZWFzZSB0YWtlIGNhcmUgd2hlbiBtYWtpbmdcbi8vIGNoYW5nZXMgdG8gdGhlIGZ1bmN0aW9uIGJvZHkuXG5mdW5jdGlvbiBjb3B5RnJvbUJ1ZmZlclN0cmluZyhuLCBsaXN0KSB7XG4gIHZhciBwID0gbGlzdC5oZWFkO1xuICB2YXIgYyA9IDE7XG4gIHZhciByZXQgPSBwLmRhdGE7XG4gIG4gLT0gcmV0Lmxlbmd0aDtcbiAgd2hpbGUgKHAgPSBwLm5leHQpIHtcbiAgICB2YXIgc3RyID0gcC5kYXRhO1xuICAgIHZhciBuYiA9IG4gPiBzdHIubGVuZ3RoID8gc3RyLmxlbmd0aCA6IG47XG4gICAgaWYgKG5iID09PSBzdHIubGVuZ3RoKSByZXQgKz0gc3RyO2Vsc2UgcmV0ICs9IHN0ci5zbGljZSgwLCBuKTtcbiAgICBuIC09IG5iO1xuICAgIGlmIChuID09PSAwKSB7XG4gICAgICBpZiAobmIgPT09IHN0ci5sZW5ndGgpIHtcbiAgICAgICAgKytjO1xuICAgICAgICBpZiAocC5uZXh0KSBsaXN0LmhlYWQgPSBwLm5leHQ7ZWxzZSBsaXN0LmhlYWQgPSBsaXN0LnRhaWwgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGlzdC5oZWFkID0gcDtcbiAgICAgICAgcC5kYXRhID0gc3RyLnNsaWNlKG5iKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICArK2M7XG4gIH1cbiAgbGlzdC5sZW5ndGggLT0gYztcbiAgcmV0dXJuIHJldDtcbn1cblxuLy8gQ29waWVzIGEgc3BlY2lmaWVkIGFtb3VudCBvZiBieXRlcyBmcm9tIHRoZSBsaXN0IG9mIGJ1ZmZlcmVkIGRhdGEgY2h1bmtzLlxuLy8gVGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBpbmxpbmFibGUsIHNvIHBsZWFzZSB0YWtlIGNhcmUgd2hlbiBtYWtpbmdcbi8vIGNoYW5nZXMgdG8gdGhlIGZ1bmN0aW9uIGJvZHkuXG5mdW5jdGlvbiBjb3B5RnJvbUJ1ZmZlcihuLCBsaXN0KSB7XG4gIHZhciByZXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUobik7XG4gIHZhciBwID0gbGlzdC5oZWFkO1xuICB2YXIgYyA9IDE7XG4gIHAuZGF0YS5jb3B5KHJldCk7XG4gIG4gLT0gcC5kYXRhLmxlbmd0aDtcbiAgd2hpbGUgKHAgPSBwLm5leHQpIHtcbiAgICB2YXIgYnVmID0gcC5kYXRhO1xuICAgIHZhciBuYiA9IG4gPiBidWYubGVuZ3RoID8gYnVmLmxlbmd0aCA6IG47XG4gICAgYnVmLmNvcHkocmV0LCByZXQubGVuZ3RoIC0gbiwgMCwgbmIpO1xuICAgIG4gLT0gbmI7XG4gICAgaWYgKG4gPT09IDApIHtcbiAgICAgIGlmIChuYiA9PT0gYnVmLmxlbmd0aCkge1xuICAgICAgICArK2M7XG4gICAgICAgIGlmIChwLm5leHQpIGxpc3QuaGVhZCA9IHAubmV4dDtlbHNlIGxpc3QuaGVhZCA9IGxpc3QudGFpbCA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsaXN0LmhlYWQgPSBwO1xuICAgICAgICBwLmRhdGEgPSBidWYuc2xpY2UobmIpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgICsrYztcbiAgfVxuICBsaXN0Lmxlbmd0aCAtPSBjO1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBlbmRSZWFkYWJsZShzdHJlYW0pIHtcbiAgdmFyIHN0YXRlID0gc3RyZWFtLl9yZWFkYWJsZVN0YXRlO1xuXG4gIC8vIElmIHdlIGdldCBoZXJlIGJlZm9yZSBjb25zdW1pbmcgYWxsIHRoZSBieXRlcywgdGhlbiB0aGF0IGlzIGFcbiAgLy8gYnVnIGluIG5vZGUuICBTaG91bGQgbmV2ZXIgaGFwcGVuLlxuICBpZiAoc3RhdGUubGVuZ3RoID4gMCkgdGhyb3cgbmV3IEVycm9yKCdcImVuZFJlYWRhYmxlKClcIiBjYWxsZWQgb24gbm9uLWVtcHR5IHN0cmVhbScpO1xuXG4gIGlmICghc3RhdGUuZW5kRW1pdHRlZCkge1xuICAgIHN0YXRlLmVuZGVkID0gdHJ1ZTtcbiAgICBwbmEubmV4dFRpY2soZW5kUmVhZGFibGVOVCwgc3RhdGUsIHN0cmVhbSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW5kUmVhZGFibGVOVChzdGF0ZSwgc3RyZWFtKSB7XG4gIC8vIENoZWNrIHRoYXQgd2UgZGlkbid0IGdldCBvbmUgbGFzdCB1bnNoaWZ0LlxuICBpZiAoIXN0YXRlLmVuZEVtaXR0ZWQgJiYgc3RhdGUubGVuZ3RoID09PSAwKSB7XG4gICAgc3RhdGUuZW5kRW1pdHRlZCA9IHRydWU7XG4gICAgc3RyZWFtLnJlYWRhYmxlID0gZmFsc2U7XG4gICAgc3RyZWFtLmVtaXQoJ2VuZCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluZGV4T2YoeHMsIHgpIHtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSB4cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBpZiAoeHNbaV0gPT09IHgpIHJldHVybiBpO1xuICB9XG4gIHJldHVybiAtMTtcbn0iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuLy8gYSB0cmFuc2Zvcm0gc3RyZWFtIGlzIGEgcmVhZGFibGUvd3JpdGFibGUgc3RyZWFtIHdoZXJlIHlvdSBkb1xuLy8gc29tZXRoaW5nIHdpdGggdGhlIGRhdGEuICBTb21ldGltZXMgaXQncyBjYWxsZWQgYSBcImZpbHRlclwiLFxuLy8gYnV0IHRoYXQncyBub3QgYSBncmVhdCBuYW1lIGZvciBpdCwgc2luY2UgdGhhdCBpbXBsaWVzIGEgdGhpbmcgd2hlcmVcbi8vIHNvbWUgYml0cyBwYXNzIHRocm91Z2gsIGFuZCBvdGhlcnMgYXJlIHNpbXBseSBpZ25vcmVkLiAgKFRoYXQgd291bGRcbi8vIGJlIGEgdmFsaWQgZXhhbXBsZSBvZiBhIHRyYW5zZm9ybSwgb2YgY291cnNlLilcbi8vXG4vLyBXaGlsZSB0aGUgb3V0cHV0IGlzIGNhdXNhbGx5IHJlbGF0ZWQgdG8gdGhlIGlucHV0LCBpdCdzIG5vdCBhXG4vLyBuZWNlc3NhcmlseSBzeW1tZXRyaWMgb3Igc3luY2hyb25vdXMgdHJhbnNmb3JtYXRpb24uICBGb3IgZXhhbXBsZSxcbi8vIGEgemxpYiBzdHJlYW0gbWlnaHQgdGFrZSBtdWx0aXBsZSBwbGFpbi10ZXh0IHdyaXRlcygpLCBhbmQgdGhlblxuLy8gZW1pdCBhIHNpbmdsZSBjb21wcmVzc2VkIGNodW5rIHNvbWUgdGltZSBpbiB0aGUgZnV0dXJlLlxuLy9cbi8vIEhlcmUncyBob3cgdGhpcyB3b3Jrczpcbi8vXG4vLyBUaGUgVHJhbnNmb3JtIHN0cmVhbSBoYXMgYWxsIHRoZSBhc3BlY3RzIG9mIHRoZSByZWFkYWJsZSBhbmQgd3JpdGFibGVcbi8vIHN0cmVhbSBjbGFzc2VzLiAgV2hlbiB5b3Ugd3JpdGUoY2h1bmspLCB0aGF0IGNhbGxzIF93cml0ZShjaHVuayxjYilcbi8vIGludGVybmFsbHksIGFuZCByZXR1cm5zIGZhbHNlIGlmIHRoZXJlJ3MgYSBsb3Qgb2YgcGVuZGluZyB3cml0ZXNcbi8vIGJ1ZmZlcmVkIHVwLiAgV2hlbiB5b3UgY2FsbCByZWFkKCksIHRoYXQgY2FsbHMgX3JlYWQobikgdW50aWxcbi8vIHRoZXJlJ3MgZW5vdWdoIHBlbmRpbmcgcmVhZGFibGUgZGF0YSBidWZmZXJlZCB1cC5cbi8vXG4vLyBJbiBhIHRyYW5zZm9ybSBzdHJlYW0sIHRoZSB3cml0dGVuIGRhdGEgaXMgcGxhY2VkIGluIGEgYnVmZmVyLiAgV2hlblxuLy8gX3JlYWQobikgaXMgY2FsbGVkLCBpdCB0cmFuc2Zvcm1zIHRoZSBxdWV1ZWQgdXAgZGF0YSwgY2FsbGluZyB0aGVcbi8vIGJ1ZmZlcmVkIF93cml0ZSBjYidzIGFzIGl0IGNvbnN1bWVzIGNodW5rcy4gIElmIGNvbnN1bWluZyBhIHNpbmdsZVxuLy8gd3JpdHRlbiBjaHVuayB3b3VsZCByZXN1bHQgaW4gbXVsdGlwbGUgb3V0cHV0IGNodW5rcywgdGhlbiB0aGUgZmlyc3Rcbi8vIG91dHB1dHRlZCBiaXQgY2FsbHMgdGhlIHJlYWRjYiwgYW5kIHN1YnNlcXVlbnQgY2h1bmtzIGp1c3QgZ28gaW50b1xuLy8gdGhlIHJlYWQgYnVmZmVyLCBhbmQgd2lsbCBjYXVzZSBpdCB0byBlbWl0ICdyZWFkYWJsZScgaWYgbmVjZXNzYXJ5LlxuLy9cbi8vIFRoaXMgd2F5LCBiYWNrLXByZXNzdXJlIGlzIGFjdHVhbGx5IGRldGVybWluZWQgYnkgdGhlIHJlYWRpbmcgc2lkZSxcbi8vIHNpbmNlIF9yZWFkIGhhcyB0byBiZSBjYWxsZWQgdG8gc3RhcnQgcHJvY2Vzc2luZyBhIG5ldyBjaHVuay4gIEhvd2V2ZXIsXG4vLyBhIHBhdGhvbG9naWNhbCBpbmZsYXRlIHR5cGUgb2YgdHJhbnNmb3JtIGNhbiBjYXVzZSBleGNlc3NpdmUgYnVmZmVyaW5nXG4vLyBoZXJlLiAgRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzdHJlYW0gd2hlcmUgZXZlcnkgYnl0ZSBvZiBpbnB1dCBpc1xuLy8gaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlciBmcm9tIDAtMjU1LCBhbmQgdGhlbiByZXN1bHRzIGluIHRoYXQgbWFueVxuLy8gYnl0ZXMgb2Ygb3V0cHV0LiAgV3JpdGluZyB0aGUgNCBieXRlcyB7ZmYsZmYsZmYsZmZ9IHdvdWxkIHJlc3VsdCBpblxuLy8gMWtiIG9mIGRhdGEgYmVpbmcgb3V0cHV0LiAgSW4gdGhpcyBjYXNlLCB5b3UgY291bGQgd3JpdGUgYSB2ZXJ5IHNtYWxsXG4vLyBhbW91bnQgb2YgaW5wdXQsIGFuZCBlbmQgdXAgd2l0aCBhIHZlcnkgbGFyZ2UgYW1vdW50IG9mIG91dHB1dC4gIEluXG4vLyBzdWNoIGEgcGF0aG9sb2dpY2FsIGluZmxhdGluZyBtZWNoYW5pc20sIHRoZXJlJ2QgYmUgbm8gd2F5IHRvIHRlbGxcbi8vIHRoZSBzeXN0ZW0gdG8gc3RvcCBkb2luZyB0aGUgdHJhbnNmb3JtLiAgQSBzaW5nbGUgNE1CIHdyaXRlIGNvdWxkXG4vLyBjYXVzZSB0aGUgc3lzdGVtIHRvIHJ1biBvdXQgb2YgbWVtb3J5LlxuLy9cbi8vIEhvd2V2ZXIsIGV2ZW4gaW4gc3VjaCBhIHBhdGhvbG9naWNhbCBjYXNlLCBvbmx5IGEgc2luZ2xlIHdyaXR0ZW4gY2h1bmtcbi8vIHdvdWxkIGJlIGNvbnN1bWVkLCBhbmQgdGhlbiB0aGUgcmVzdCB3b3VsZCB3YWl0ICh1bi10cmFuc2Zvcm1lZCkgdW50aWxcbi8vIHRoZSByZXN1bHRzIG9mIHRoZSBwcmV2aW91cyB0cmFuc2Zvcm1lZCBjaHVuayB3ZXJlIGNvbnN1bWVkLlxuXG4ndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gVHJhbnNmb3JtO1xuXG52YXIgRHVwbGV4ID0gcmVxdWlyZSgnLi9fc3RyZWFtX2R1cGxleCcpO1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIHV0aWwgPSByZXF1aXJlKCdjb3JlLXV0aWwtaXMnKTtcbnV0aWwuaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbnV0aWwuaW5oZXJpdHMoVHJhbnNmb3JtLCBEdXBsZXgpO1xuXG5mdW5jdGlvbiBhZnRlclRyYW5zZm9ybShlciwgZGF0YSkge1xuICB2YXIgdHMgPSB0aGlzLl90cmFuc2Zvcm1TdGF0ZTtcbiAgdHMudHJhbnNmb3JtaW5nID0gZmFsc2U7XG5cbiAgdmFyIGNiID0gdHMud3JpdGVjYjtcblxuICBpZiAoIWNiKSB7XG4gICAgcmV0dXJuIHRoaXMuZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoJ3dyaXRlIGNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcycpKTtcbiAgfVxuXG4gIHRzLndyaXRlY2h1bmsgPSBudWxsO1xuICB0cy53cml0ZWNiID0gbnVsbDtcblxuICBpZiAoZGF0YSAhPSBudWxsKSAvLyBzaW5nbGUgZXF1YWxzIGNoZWNrIGZvciBib3RoIGBudWxsYCBhbmQgYHVuZGVmaW5lZGBcbiAgICB0aGlzLnB1c2goZGF0YSk7XG5cbiAgY2IoZXIpO1xuXG4gIHZhciBycyA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gIHJzLnJlYWRpbmcgPSBmYWxzZTtcbiAgaWYgKHJzLm5lZWRSZWFkYWJsZSB8fCBycy5sZW5ndGggPCBycy5oaWdoV2F0ZXJNYXJrKSB7XG4gICAgdGhpcy5fcmVhZChycy5oaWdoV2F0ZXJNYXJrKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBUcmFuc2Zvcm0ob3B0aW9ucykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgVHJhbnNmb3JtKSkgcmV0dXJuIG5ldyBUcmFuc2Zvcm0ob3B0aW9ucyk7XG5cbiAgRHVwbGV4LmNhbGwodGhpcywgb3B0aW9ucyk7XG5cbiAgdGhpcy5fdHJhbnNmb3JtU3RhdGUgPSB7XG4gICAgYWZ0ZXJUcmFuc2Zvcm06IGFmdGVyVHJhbnNmb3JtLmJpbmQodGhpcyksXG4gICAgbmVlZFRyYW5zZm9ybTogZmFsc2UsXG4gICAgdHJhbnNmb3JtaW5nOiBmYWxzZSxcbiAgICB3cml0ZWNiOiBudWxsLFxuICAgIHdyaXRlY2h1bms6IG51bGwsXG4gICAgd3JpdGVlbmNvZGluZzogbnVsbFxuICB9O1xuXG4gIC8vIHN0YXJ0IG91dCBhc2tpbmcgZm9yIGEgcmVhZGFibGUgZXZlbnQgb25jZSBkYXRhIGlzIHRyYW5zZm9ybWVkLlxuICB0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZSA9IHRydWU7XG5cbiAgLy8gd2UgaGF2ZSBpbXBsZW1lbnRlZCB0aGUgX3JlYWQgbWV0aG9kLCBhbmQgZG9uZSB0aGUgb3RoZXIgdGhpbmdzXG4gIC8vIHRoYXQgUmVhZGFibGUgd2FudHMgYmVmb3JlIHRoZSBmaXJzdCBfcmVhZCBjYWxsLCBzbyB1bnNldCB0aGVcbiAgLy8gc3luYyBndWFyZCBmbGFnLlxuICB0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmMgPSBmYWxzZTtcblxuICBpZiAob3B0aW9ucykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy50cmFuc2Zvcm0gPT09ICdmdW5jdGlvbicpIHRoaXMuX3RyYW5zZm9ybSA9IG9wdGlvbnMudHJhbnNmb3JtO1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLmZsdXNoID09PSAnZnVuY3Rpb24nKSB0aGlzLl9mbHVzaCA9IG9wdGlvbnMuZmx1c2g7XG4gIH1cblxuICAvLyBXaGVuIHRoZSB3cml0YWJsZSBzaWRlIGZpbmlzaGVzLCB0aGVuIGZsdXNoIG91dCBhbnl0aGluZyByZW1haW5pbmcuXG4gIHRoaXMub24oJ3ByZWZpbmlzaCcsIHByZWZpbmlzaCk7XG59XG5cbmZ1bmN0aW9uIHByZWZpbmlzaCgpIHtcbiAgdmFyIF90aGlzID0gdGhpcztcblxuICBpZiAodHlwZW9mIHRoaXMuX2ZsdXNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhpcy5fZmx1c2goZnVuY3Rpb24gKGVyLCBkYXRhKSB7XG4gICAgICBkb25lKF90aGlzLCBlciwgZGF0YSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZG9uZSh0aGlzLCBudWxsLCBudWxsKTtcbiAgfVxufVxuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLnB1c2ggPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nKSB7XG4gIHRoaXMuX3RyYW5zZm9ybVN0YXRlLm5lZWRUcmFuc2Zvcm0gPSBmYWxzZTtcbiAgcmV0dXJuIER1cGxleC5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMsIGNodW5rLCBlbmNvZGluZyk7XG59O1xuXG4vLyBUaGlzIGlzIHRoZSBwYXJ0IHdoZXJlIHlvdSBkbyBzdHVmZiFcbi8vIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gaW4gaW1wbGVtZW50YXRpb24gY2xhc3Nlcy5cbi8vICdjaHVuaycgaXMgYW4gaW5wdXQgY2h1bmsuXG4vL1xuLy8gQ2FsbCBgcHVzaChuZXdDaHVuaylgIHRvIHBhc3MgYWxvbmcgdHJhbnNmb3JtZWQgb3V0cHV0XG4vLyB0byB0aGUgcmVhZGFibGUgc2lkZS4gIFlvdSBtYXkgY2FsbCAncHVzaCcgemVybyBvciBtb3JlIHRpbWVzLlxuLy9cbi8vIENhbGwgYGNiKGVycilgIHdoZW4geW91IGFyZSBkb25lIHdpdGggdGhpcyBjaHVuay4gIElmIHlvdSBwYXNzXG4vLyBhbiBlcnJvciwgdGhlbiB0aGF0J2xsIHB1dCB0aGUgaHVydCBvbiB0aGUgd2hvbGUgb3BlcmF0aW9uLiAgSWYgeW91XG4vLyBuZXZlciBjYWxsIGNiKCksIHRoZW4geW91J2xsIG5ldmVyIGdldCBhbm90aGVyIGNodW5rLlxuVHJhbnNmb3JtLnByb3RvdHlwZS5fdHJhbnNmb3JtID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZywgY2IpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdfdHJhbnNmb3JtKCkgaXMgbm90IGltcGxlbWVudGVkJyk7XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLl93cml0ZSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIHZhciB0cyA9IHRoaXMuX3RyYW5zZm9ybVN0YXRlO1xuICB0cy53cml0ZWNiID0gY2I7XG4gIHRzLndyaXRlY2h1bmsgPSBjaHVuaztcbiAgdHMud3JpdGVlbmNvZGluZyA9IGVuY29kaW5nO1xuICBpZiAoIXRzLnRyYW5zZm9ybWluZykge1xuICAgIHZhciBycyA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7XG4gICAgaWYgKHRzLm5lZWRUcmFuc2Zvcm0gfHwgcnMubmVlZFJlYWRhYmxlIHx8IHJzLmxlbmd0aCA8IHJzLmhpZ2hXYXRlck1hcmspIHRoaXMuX3JlYWQocnMuaGlnaFdhdGVyTWFyayk7XG4gIH1cbn07XG5cbi8vIERvZXNuJ3QgbWF0dGVyIHdoYXQgdGhlIGFyZ3MgYXJlIGhlcmUuXG4vLyBfdHJhbnNmb3JtIGRvZXMgYWxsIHRoZSB3b3JrLlxuLy8gVGhhdCB3ZSBnb3QgaGVyZSBtZWFucyB0aGF0IHRoZSByZWFkYWJsZSBzaWRlIHdhbnRzIG1vcmUgZGF0YS5cblRyYW5zZm9ybS5wcm90b3R5cGUuX3JlYWQgPSBmdW5jdGlvbiAobikge1xuICB2YXIgdHMgPSB0aGlzLl90cmFuc2Zvcm1TdGF0ZTtcblxuICBpZiAodHMud3JpdGVjaHVuayAhPT0gbnVsbCAmJiB0cy53cml0ZWNiICYmICF0cy50cmFuc2Zvcm1pbmcpIHtcbiAgICB0cy50cmFuc2Zvcm1pbmcgPSB0cnVlO1xuICAgIHRoaXMuX3RyYW5zZm9ybSh0cy53cml0ZWNodW5rLCB0cy53cml0ZWVuY29kaW5nLCB0cy5hZnRlclRyYW5zZm9ybSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gbWFyayB0aGF0IHdlIG5lZWQgYSB0cmFuc2Zvcm0sIHNvIHRoYXQgYW55IGRhdGEgdGhhdCBjb21lcyBpblxuICAgIC8vIHdpbGwgZ2V0IHByb2Nlc3NlZCwgbm93IHRoYXQgd2UndmUgYXNrZWQgZm9yIGl0LlxuICAgIHRzLm5lZWRUcmFuc2Zvcm0gPSB0cnVlO1xuICB9XG59O1xuXG5UcmFuc2Zvcm0ucHJvdG90eXBlLl9kZXN0cm95ID0gZnVuY3Rpb24gKGVyciwgY2IpIHtcbiAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgRHVwbGV4LnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsIGVyciwgZnVuY3Rpb24gKGVycjIpIHtcbiAgICBjYihlcnIyKTtcbiAgICBfdGhpczIuZW1pdCgnY2xvc2UnKTtcbiAgfSk7XG59O1xuXG5mdW5jdGlvbiBkb25lKHN0cmVhbSwgZXIsIGRhdGEpIHtcbiAgaWYgKGVyKSByZXR1cm4gc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXIpO1xuXG4gIGlmIChkYXRhICE9IG51bGwpIC8vIHNpbmdsZSBlcXVhbHMgY2hlY2sgZm9yIGJvdGggYG51bGxgIGFuZCBgdW5kZWZpbmVkYFxuICAgIHN0cmVhbS5wdXNoKGRhdGEpO1xuXG4gIC8vIGlmIHRoZXJlJ3Mgbm90aGluZyBpbiB0aGUgd3JpdGUgYnVmZmVyLCB0aGVuIHRoYXQgbWVhbnNcbiAgLy8gdGhhdCBub3RoaW5nIG1vcmUgd2lsbCBldmVyIGJlIHByb3ZpZGVkXG4gIGlmIChzdHJlYW0uX3dyaXRhYmxlU3RhdGUubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoJ0NhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiB3cy5sZW5ndGggIT0gMCcpO1xuXG4gIGlmIChzdHJlYW0uX3RyYW5zZm9ybVN0YXRlLnRyYW5zZm9ybWluZykgdGhyb3cgbmV3IEVycm9yKCdDYWxsaW5nIHRyYW5zZm9ybSBkb25lIHdoZW4gc3RpbGwgdHJhbnNmb3JtaW5nJyk7XG5cbiAgcmV0dXJuIHN0cmVhbS5wdXNoKG51bGwpO1xufSIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4vLyBBIGJpdCBzaW1wbGVyIHRoYW4gcmVhZGFibGUgc3RyZWFtcy5cbi8vIEltcGxlbWVudCBhbiBhc3luYyAuX3dyaXRlKGNodW5rLCBlbmNvZGluZywgY2IpLCBhbmQgaXQnbGwgaGFuZGxlIGFsbFxuLy8gdGhlIGRyYWluIGV2ZW50IGVtaXNzaW9uIGFuZCBidWZmZXJpbmcuXG5cbid1c2Ugc3RyaWN0JztcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cblxudmFyIHBuYSA9IHJlcXVpcmUoJ3Byb2Nlc3MtbmV4dGljay1hcmdzJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxubW9kdWxlLmV4cG9ydHMgPSBXcml0YWJsZTtcblxuLyogPHJlcGxhY2VtZW50PiAqL1xuZnVuY3Rpb24gV3JpdGVSZXEoY2h1bmssIGVuY29kaW5nLCBjYikge1xuICB0aGlzLmNodW5rID0gY2h1bms7XG4gIHRoaXMuZW5jb2RpbmcgPSBlbmNvZGluZztcbiAgdGhpcy5jYWxsYmFjayA9IGNiO1xuICB0aGlzLm5leHQgPSBudWxsO1xufVxuXG4vLyBJdCBzZWVtcyBhIGxpbmtlZCBsaXN0IGJ1dCBpdCBpcyBub3Rcbi8vIHRoZXJlIHdpbGwgYmUgb25seSAyIG9mIHRoZXNlIGZvciBlYWNoIHN0cmVhbVxuZnVuY3Rpb24gQ29ya2VkUmVxdWVzdChzdGF0ZSkge1xuICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gIHRoaXMubmV4dCA9IG51bGw7XG4gIHRoaXMuZW50cnkgPSBudWxsO1xuICB0aGlzLmZpbmlzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICBvbkNvcmtlZEZpbmlzaChfdGhpcywgc3RhdGUpO1xuICB9O1xufVxuLyogPC9yZXBsYWNlbWVudD4gKi9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBhc3luY1dyaXRlID0gIXByb2Nlc3MuYnJvd3NlciAmJiBbJ3YwLjEwJywgJ3YwLjkuJ10uaW5kZXhPZihwcm9jZXNzLnZlcnNpb24uc2xpY2UoMCwgNSkpID4gLTEgPyBzZXRJbW1lZGlhdGUgOiBwbmEubmV4dFRpY2s7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBEdXBsZXg7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuV3JpdGFibGUuV3JpdGFibGVTdGF0ZSA9IFdyaXRhYmxlU3RhdGU7XG5cbi8qPHJlcGxhY2VtZW50PiovXG52YXIgdXRpbCA9IHJlcXVpcmUoJ2NvcmUtdXRpbC1pcycpO1xudXRpbC5pbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLyo8cmVwbGFjZW1lbnQ+Ki9cbnZhciBpbnRlcm5hbFV0aWwgPSB7XG4gIGRlcHJlY2F0ZTogcmVxdWlyZSgndXRpbC1kZXByZWNhdGUnKVxufTtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG4vKjxyZXBsYWNlbWVudD4qL1xudmFyIFN0cmVhbSA9IHJlcXVpcmUoJy4vaW50ZXJuYWwvc3RyZWFtcy9zdHJlYW0nKTtcbi8qPC9yZXBsYWNlbWVudD4qL1xuXG4vKjxyZXBsYWNlbWVudD4qL1xuXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXI7XG52YXIgT3VyVWludDhBcnJheSA9IGdsb2JhbC5VaW50OEFycmF5IHx8IGZ1bmN0aW9uICgpIHt9O1xuZnVuY3Rpb24gX3VpbnQ4QXJyYXlUb0J1ZmZlcihjaHVuaykge1xuICByZXR1cm4gQnVmZmVyLmZyb20oY2h1bmspO1xufVxuZnVuY3Rpb24gX2lzVWludDhBcnJheShvYmopIHtcbiAgcmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihvYmopIHx8IG9iaiBpbnN0YW5jZW9mIE91clVpbnQ4QXJyYXk7XG59XG5cbi8qPC9yZXBsYWNlbWVudD4qL1xuXG52YXIgZGVzdHJveUltcGwgPSByZXF1aXJlKCcuL2ludGVybmFsL3N0cmVhbXMvZGVzdHJveScpO1xuXG51dGlsLmluaGVyaXRzKFdyaXRhYmxlLCBTdHJlYW0pO1xuXG5mdW5jdGlvbiBub3AoKSB7fVxuXG5mdW5jdGlvbiBXcml0YWJsZVN0YXRlKG9wdGlvbnMsIHN0cmVhbSkge1xuICBEdXBsZXggPSBEdXBsZXggfHwgcmVxdWlyZSgnLi9fc3RyZWFtX2R1cGxleCcpO1xuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIC8vIER1cGxleCBzdHJlYW1zIGFyZSBib3RoIHJlYWRhYmxlIGFuZCB3cml0YWJsZSwgYnV0IHNoYXJlXG4gIC8vIHRoZSBzYW1lIG9wdGlvbnMgb2JqZWN0LlxuICAvLyBIb3dldmVyLCBzb21lIGNhc2VzIHJlcXVpcmUgc2V0dGluZyBvcHRpb25zIHRvIGRpZmZlcmVudFxuICAvLyB2YWx1ZXMgZm9yIHRoZSByZWFkYWJsZSBhbmQgdGhlIHdyaXRhYmxlIHNpZGVzIG9mIHRoZSBkdXBsZXggc3RyZWFtLlxuICAvLyBUaGVzZSBvcHRpb25zIGNhbiBiZSBwcm92aWRlZCBzZXBhcmF0ZWx5IGFzIHJlYWRhYmxlWFhYIGFuZCB3cml0YWJsZVhYWC5cbiAgdmFyIGlzRHVwbGV4ID0gc3RyZWFtIGluc3RhbmNlb2YgRHVwbGV4O1xuXG4gIC8vIG9iamVjdCBzdHJlYW0gZmxhZyB0byBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCB0aGlzIHN0cmVhbVxuICAvLyBjb250YWlucyBidWZmZXJzIG9yIG9iamVjdHMuXG4gIHRoaXMub2JqZWN0TW9kZSA9ICEhb3B0aW9ucy5vYmplY3RNb2RlO1xuXG4gIGlmIChpc0R1cGxleCkgdGhpcy5vYmplY3RNb2RlID0gdGhpcy5vYmplY3RNb2RlIHx8ICEhb3B0aW9ucy53cml0YWJsZU9iamVjdE1vZGU7XG5cbiAgLy8gdGhlIHBvaW50IGF0IHdoaWNoIHdyaXRlKCkgc3RhcnRzIHJldHVybmluZyBmYWxzZVxuICAvLyBOb3RlOiAwIGlzIGEgdmFsaWQgdmFsdWUsIG1lYW5zIHRoYXQgd2UgYWx3YXlzIHJldHVybiBmYWxzZSBpZlxuICAvLyB0aGUgZW50aXJlIGJ1ZmZlciBpcyBub3QgZmx1c2hlZCBpbW1lZGlhdGVseSBvbiB3cml0ZSgpXG4gIHZhciBod20gPSBvcHRpb25zLmhpZ2hXYXRlck1hcms7XG4gIHZhciB3cml0YWJsZUh3bSA9IG9wdGlvbnMud3JpdGFibGVIaWdoV2F0ZXJNYXJrO1xuICB2YXIgZGVmYXVsdEh3bSA9IHRoaXMub2JqZWN0TW9kZSA/IDE2IDogMTYgKiAxMDI0O1xuXG4gIGlmIChod20gfHwgaHdtID09PSAwKSB0aGlzLmhpZ2hXYXRlck1hcmsgPSBod207ZWxzZSBpZiAoaXNEdXBsZXggJiYgKHdyaXRhYmxlSHdtIHx8IHdyaXRhYmxlSHdtID09PSAwKSkgdGhpcy5oaWdoV2F0ZXJNYXJrID0gd3JpdGFibGVId207ZWxzZSB0aGlzLmhpZ2hXYXRlck1hcmsgPSBkZWZhdWx0SHdtO1xuXG4gIC8vIGNhc3QgdG8gaW50cy5cbiAgdGhpcy5oaWdoV2F0ZXJNYXJrID0gTWF0aC5mbG9vcih0aGlzLmhpZ2hXYXRlck1hcmspO1xuXG4gIC8vIGlmIF9maW5hbCBoYXMgYmVlbiBjYWxsZWRcbiAgdGhpcy5maW5hbENhbGxlZCA9IGZhbHNlO1xuXG4gIC8vIGRyYWluIGV2ZW50IGZsYWcuXG4gIHRoaXMubmVlZERyYWluID0gZmFsc2U7XG4gIC8vIGF0IHRoZSBzdGFydCBvZiBjYWxsaW5nIGVuZCgpXG4gIHRoaXMuZW5kaW5nID0gZmFsc2U7XG4gIC8vIHdoZW4gZW5kKCkgaGFzIGJlZW4gY2FsbGVkLCBhbmQgcmV0dXJuZWRcbiAgdGhpcy5lbmRlZCA9IGZhbHNlO1xuICAvLyB3aGVuICdmaW5pc2gnIGlzIGVtaXR0ZWRcbiAgdGhpcy5maW5pc2hlZCA9IGZhbHNlO1xuXG4gIC8vIGhhcyBpdCBiZWVuIGRlc3Ryb3llZFxuICB0aGlzLmRlc3Ryb3llZCA9IGZhbHNlO1xuXG4gIC8vIHNob3VsZCB3ZSBkZWNvZGUgc3RyaW5ncyBpbnRvIGJ1ZmZlcnMgYmVmb3JlIHBhc3NpbmcgdG8gX3dyaXRlP1xuICAvLyB0aGlzIGlzIGhlcmUgc28gdGhhdCBzb21lIG5vZGUtY29yZSBzdHJlYW1zIGNhbiBvcHRpbWl6ZSBzdHJpbmdcbiAgLy8gaGFuZGxpbmcgYXQgYSBsb3dlciBsZXZlbC5cbiAgdmFyIG5vRGVjb2RlID0gb3B0aW9ucy5kZWNvZGVTdHJpbmdzID09PSBmYWxzZTtcbiAgdGhpcy5kZWNvZGVTdHJpbmdzID0gIW5vRGVjb2RlO1xuXG4gIC8vIENyeXB0byBpcyBraW5kIG9mIG9sZCBhbmQgY3J1c3R5LiAgSGlzdG9yaWNhbGx5LCBpdHMgZGVmYXVsdCBzdHJpbmdcbiAgLy8gZW5jb2RpbmcgaXMgJ2JpbmFyeScgc28gd2UgaGF2ZSB0byBtYWtlIHRoaXMgY29uZmlndXJhYmxlLlxuICAvLyBFdmVyeXRoaW5nIGVsc2UgaW4gdGhlIHVuaXZlcnNlIHVzZXMgJ3V0ZjgnLCB0aG91Z2guXG4gIHRoaXMuZGVmYXVsdEVuY29kaW5nID0gb3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcgfHwgJ3V0ZjgnO1xuXG4gIC8vIG5vdCBhbiBhY3R1YWwgYnVmZmVyIHdlIGtlZXAgdHJhY2sgb2YsIGJ1dCBhIG1lYXN1cmVtZW50XG4gIC8vIG9mIGhvdyBtdWNoIHdlJ3JlIHdhaXRpbmcgdG8gZ2V0IHB1c2hlZCB0byBzb21lIHVuZGVybHlpbmdcbiAgLy8gc29ja2V0IG9yIGZpbGUuXG4gIHRoaXMubGVuZ3RoID0gMDtcblxuICAvLyBhIGZsYWcgdG8gc2VlIHdoZW4gd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIHdyaXRlLlxuICB0aGlzLndyaXRpbmcgPSBmYWxzZTtcblxuICAvLyB3aGVuIHRydWUgYWxsIHdyaXRlcyB3aWxsIGJlIGJ1ZmZlcmVkIHVudGlsIC51bmNvcmsoKSBjYWxsXG4gIHRoaXMuY29ya2VkID0gMDtcblxuICAvLyBhIGZsYWcgdG8gYmUgYWJsZSB0byB0ZWxsIGlmIHRoZSBvbndyaXRlIGNiIGlzIGNhbGxlZCBpbW1lZGlhdGVseSxcbiAgLy8gb3Igb24gYSBsYXRlciB0aWNrLiAgV2Ugc2V0IHRoaXMgdG8gdHJ1ZSBhdCBmaXJzdCwgYmVjYXVzZSBhbnlcbiAgLy8gYWN0aW9ucyB0aGF0IHNob3VsZG4ndCBoYXBwZW4gdW50aWwgXCJsYXRlclwiIHNob3VsZCBnZW5lcmFsbHkgYWxzb1xuICAvLyBub3QgaGFwcGVuIGJlZm9yZSB0aGUgZmlyc3Qgd3JpdGUgY2FsbC5cbiAgdGhpcy5zeW5jID0gdHJ1ZTtcblxuICAvLyBhIGZsYWcgdG8ga25vdyBpZiB3ZSdyZSBwcm9jZXNzaW5nIHByZXZpb3VzbHkgYnVmZmVyZWQgaXRlbXMsIHdoaWNoXG4gIC8vIG1heSBjYWxsIHRoZSBfd3JpdGUoKSBjYWxsYmFjayBpbiB0aGUgc2FtZSB0aWNrLCBzbyB0aGF0IHdlIGRvbid0XG4gIC8vIGVuZCB1cCBpbiBhbiBvdmVybGFwcGVkIG9ud3JpdGUgc2l0dWF0aW9uLlxuICB0aGlzLmJ1ZmZlclByb2Nlc3NpbmcgPSBmYWxzZTtcblxuICAvLyB0aGUgY2FsbGJhY2sgdGhhdCdzIHBhc3NlZCB0byBfd3JpdGUoY2h1bmssY2IpXG4gIHRoaXMub253cml0ZSA9IGZ1bmN0aW9uIChlcikge1xuICAgIG9ud3JpdGUoc3RyZWFtLCBlcik7XG4gIH07XG5cbiAgLy8gdGhlIGNhbGxiYWNrIHRoYXQgdGhlIHVzZXIgc3VwcGxpZXMgdG8gd3JpdGUoY2h1bmssZW5jb2RpbmcsY2IpXG4gIHRoaXMud3JpdGVjYiA9IG51bGw7XG5cbiAgLy8gdGhlIGFtb3VudCB0aGF0IGlzIGJlaW5nIHdyaXR0ZW4gd2hlbiBfd3JpdGUgaXMgY2FsbGVkLlxuICB0aGlzLndyaXRlbGVuID0gMDtcblxuICB0aGlzLmJ1ZmZlcmVkUmVxdWVzdCA9IG51bGw7XG4gIHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdCA9IG51bGw7XG5cbiAgLy8gbnVtYmVyIG9mIHBlbmRpbmcgdXNlci1zdXBwbGllZCB3cml0ZSBjYWxsYmFja3NcbiAgLy8gdGhpcyBtdXN0IGJlIDAgYmVmb3JlICdmaW5pc2gnIGNhbiBiZSBlbWl0dGVkXG4gIHRoaXMucGVuZGluZ2NiID0gMDtcblxuICAvLyBlbWl0IHByZWZpbmlzaCBpZiB0aGUgb25seSB0aGluZyB3ZSdyZSB3YWl0aW5nIGZvciBpcyBfd3JpdGUgY2JzXG4gIC8vIFRoaXMgaXMgcmVsZXZhbnQgZm9yIHN5bmNocm9ub3VzIFRyYW5zZm9ybSBzdHJlYW1zXG4gIHRoaXMucHJlZmluaXNoZWQgPSBmYWxzZTtcblxuICAvLyBUcnVlIGlmIHRoZSBlcnJvciB3YXMgYWxyZWFkeSBlbWl0dGVkIGFuZCBzaG91bGQgbm90IGJlIHRocm93biBhZ2FpblxuICB0aGlzLmVycm9yRW1pdHRlZCA9IGZhbHNlO1xuXG4gIC8vIGNvdW50IGJ1ZmZlcmVkIHJlcXVlc3RzXG4gIHRoaXMuYnVmZmVyZWRSZXF1ZXN0Q291bnQgPSAwO1xuXG4gIC8vIGFsbG9jYXRlIHRoZSBmaXJzdCBDb3JrZWRSZXF1ZXN0LCB0aGVyZSBpcyBhbHdheXNcbiAgLy8gb25lIGFsbG9jYXRlZCBhbmQgZnJlZSB0byB1c2UsIGFuZCB3ZSBtYWludGFpbiBhdCBtb3N0IHR3b1xuICB0aGlzLmNvcmtlZFJlcXVlc3RzRnJlZSA9IG5ldyBDb3JrZWRSZXF1ZXN0KHRoaXMpO1xufVxuXG5Xcml0YWJsZVN0YXRlLnByb3RvdHlwZS5nZXRCdWZmZXIgPSBmdW5jdGlvbiBnZXRCdWZmZXIoKSB7XG4gIHZhciBjdXJyZW50ID0gdGhpcy5idWZmZXJlZFJlcXVlc3Q7XG4gIHZhciBvdXQgPSBbXTtcbiAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICBvdXQucHVzaChjdXJyZW50KTtcbiAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0O1xuICB9XG4gIHJldHVybiBvdXQ7XG59O1xuXG4oZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZVN0YXRlLnByb3RvdHlwZSwgJ2J1ZmZlcicsIHtcbiAgICAgIGdldDogaW50ZXJuYWxVdGlsLmRlcHJlY2F0ZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEJ1ZmZlcigpO1xuICAgICAgfSwgJ193cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyICcgKyAnaW5zdGVhZC4nLCAnREVQMDAwMycpXG4gICAgfSk7XG4gIH0gY2F0Y2ggKF8pIHt9XG59KSgpO1xuXG4vLyBUZXN0IF93cml0YWJsZVN0YXRlIGZvciBpbmhlcml0YW5jZSB0byBhY2NvdW50IGZvciBEdXBsZXggc3RyZWFtcyxcbi8vIHdob3NlIHByb3RvdHlwZSBjaGFpbiBvbmx5IHBvaW50cyB0byBSZWFkYWJsZS5cbnZhciByZWFsSGFzSW5zdGFuY2U7XG5pZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaGFzSW5zdGFuY2UgJiYgdHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdID09PSAnZnVuY3Rpb24nKSB7XG4gIHJlYWxIYXNJbnN0YW5jZSA9IEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUsIFN5bWJvbC5oYXNJbnN0YW5jZSwge1xuICAgIHZhbHVlOiBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICBpZiAocmVhbEhhc0luc3RhbmNlLmNhbGwodGhpcywgb2JqZWN0KSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAodGhpcyAhPT0gV3JpdGFibGUpIHJldHVybiBmYWxzZTtcblxuICAgICAgcmV0dXJuIG9iamVjdCAmJiBvYmplY3QuX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2VvZiBXcml0YWJsZVN0YXRlO1xuICAgIH1cbiAgfSk7XG59IGVsc2Uge1xuICByZWFsSGFzSW5zdGFuY2UgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCBpbnN0YW5jZW9mIHRoaXM7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFdyaXRhYmxlKG9wdGlvbnMpIHtcbiAgRHVwbGV4ID0gRHVwbGV4IHx8IHJlcXVpcmUoJy4vX3N0cmVhbV9kdXBsZXgnKTtcblxuICAvLyBXcml0YWJsZSBjdG9yIGlzIGFwcGxpZWQgdG8gRHVwbGV4ZXMsIHRvby5cbiAgLy8gYHJlYWxIYXNJbnN0YW5jZWAgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdXNpbmcgcGxhaW4gYGluc3RhbmNlb2ZgXG4gIC8vIHdvdWxkIHJldHVybiBmYWxzZSwgYXMgbm8gYF93cml0YWJsZVN0YXRlYCBwcm9wZXJ0eSBpcyBhdHRhY2hlZC5cblxuICAvLyBUcnlpbmcgdG8gdXNlIHRoZSBjdXN0b20gYGluc3RhbmNlb2ZgIGZvciBXcml0YWJsZSBoZXJlIHdpbGwgYWxzbyBicmVhayB0aGVcbiAgLy8gTm9kZS5qcyBMYXp5VHJhbnNmb3JtIGltcGxlbWVudGF0aW9uLCB3aGljaCBoYXMgYSBub24tdHJpdmlhbCBnZXR0ZXIgZm9yXG4gIC8vIGBfd3JpdGFibGVTdGF0ZWAgdGhhdCB3b3VsZCBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cbiAgaWYgKCFyZWFsSGFzSW5zdGFuY2UuY2FsbChXcml0YWJsZSwgdGhpcykgJiYgISh0aGlzIGluc3RhbmNlb2YgRHVwbGV4KSkge1xuICAgIHJldHVybiBuZXcgV3JpdGFibGUob3B0aW9ucyk7XG4gIH1cblxuICB0aGlzLl93cml0YWJsZVN0YXRlID0gbmV3IFdyaXRhYmxlU3RhdGUob3B0aW9ucywgdGhpcyk7XG5cbiAgLy8gbGVnYWN5LlxuICB0aGlzLndyaXRhYmxlID0gdHJ1ZTtcblxuICBpZiAob3B0aW9ucykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy53cml0ZSA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fd3JpdGUgPSBvcHRpb25zLndyaXRlO1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zLndyaXRldiA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fd3JpdGV2ID0gb3B0aW9ucy53cml0ZXY7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMuZGVzdHJveSA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fZGVzdHJveSA9IG9wdGlvbnMuZGVzdHJveTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5maW5hbCA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fZmluYWwgPSBvcHRpb25zLmZpbmFsO1xuICB9XG5cbiAgU3RyZWFtLmNhbGwodGhpcyk7XG59XG5cbi8vIE90aGVyd2lzZSBwZW9wbGUgY2FuIHBpcGUgV3JpdGFibGUgc3RyZWFtcywgd2hpY2ggaXMganVzdCB3cm9uZy5cbldyaXRhYmxlLnByb3RvdHlwZS5waXBlID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKCdDYW5ub3QgcGlwZSwgbm90IHJlYWRhYmxlJykpO1xufTtcblxuZnVuY3Rpb24gd3JpdGVBZnRlckVuZChzdHJlYW0sIGNiKSB7XG4gIHZhciBlciA9IG5ldyBFcnJvcignd3JpdGUgYWZ0ZXIgZW5kJyk7XG4gIC8vIFRPRE86IGRlZmVyIGVycm9yIGV2ZW50cyBjb25zaXN0ZW50bHkgZXZlcnl3aGVyZSwgbm90IGp1c3QgdGhlIGNiXG4gIHN0cmVhbS5lbWl0KCdlcnJvcicsIGVyKTtcbiAgcG5hLm5leHRUaWNrKGNiLCBlcik7XG59XG5cbi8vIENoZWNrcyB0aGF0IGEgdXNlci1zdXBwbGllZCBjaHVuayBpcyB2YWxpZCwgZXNwZWNpYWxseSBmb3IgdGhlIHBhcnRpY3VsYXJcbi8vIG1vZGUgdGhlIHN0cmVhbSBpcyBpbi4gQ3VycmVudGx5IHRoaXMgbWVhbnMgdGhhdCBgbnVsbGAgaXMgbmV2ZXIgYWNjZXB0ZWRcbi8vIGFuZCB1bmRlZmluZWQvbm9uLXN0cmluZyB2YWx1ZXMgYXJlIG9ubHkgYWxsb3dlZCBpbiBvYmplY3QgbW9kZS5cbmZ1bmN0aW9uIHZhbGlkQ2h1bmsoc3RyZWFtLCBzdGF0ZSwgY2h1bmssIGNiKSB7XG4gIHZhciB2YWxpZCA9IHRydWU7XG4gIHZhciBlciA9IGZhbHNlO1xuXG4gIGlmIChjaHVuayA9PT0gbnVsbCkge1xuICAgIGVyID0gbmV3IFR5cGVFcnJvcignTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0byBzdHJlYW0nKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgY2h1bmsgIT09ICdzdHJpbmcnICYmIGNodW5rICE9PSB1bmRlZmluZWQgJiYgIXN0YXRlLm9iamVjdE1vZGUpIHtcbiAgICBlciA9IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm9uLXN0cmluZy9idWZmZXIgY2h1bmsnKTtcbiAgfVxuICBpZiAoZXIpIHtcbiAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcik7XG4gICAgcG5hLm5leHRUaWNrKGNiLCBlcik7XG4gICAgdmFsaWQgPSBmYWxzZTtcbiAgfVxuICByZXR1cm4gdmFsaWQ7XG59XG5cbldyaXRhYmxlLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3dyaXRhYmxlU3RhdGU7XG4gIHZhciByZXQgPSBmYWxzZTtcbiAgdmFyIGlzQnVmID0gIXN0YXRlLm9iamVjdE1vZGUgJiYgX2lzVWludDhBcnJheShjaHVuayk7XG5cbiAgaWYgKGlzQnVmICYmICFCdWZmZXIuaXNCdWZmZXIoY2h1bmspKSB7XG4gICAgY2h1bmsgPSBfdWludDhBcnJheVRvQnVmZmVyKGNodW5rKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYiA9IGVuY29kaW5nO1xuICAgIGVuY29kaW5nID0gbnVsbDtcbiAgfVxuXG4gIGlmIChpc0J1ZikgZW5jb2RpbmcgPSAnYnVmZmVyJztlbHNlIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gc3RhdGUuZGVmYXVsdEVuY29kaW5nO1xuXG4gIGlmICh0eXBlb2YgY2IgIT09ICdmdW5jdGlvbicpIGNiID0gbm9wO1xuXG4gIGlmIChzdGF0ZS5lbmRlZCkgd3JpdGVBZnRlckVuZCh0aGlzLCBjYik7ZWxzZSBpZiAoaXNCdWYgfHwgdmFsaWRDaHVuayh0aGlzLCBzdGF0ZSwgY2h1bmssIGNiKSkge1xuICAgIHN0YXRlLnBlbmRpbmdjYisrO1xuICAgIHJldCA9IHdyaXRlT3JCdWZmZXIodGhpcywgc3RhdGUsIGlzQnVmLCBjaHVuaywgZW5jb2RpbmcsIGNiKTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59O1xuXG5Xcml0YWJsZS5wcm90b3R5cGUuY29yayA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHN0YXRlID0gdGhpcy5fd3JpdGFibGVTdGF0ZTtcblxuICBzdGF0ZS5jb3JrZWQrKztcbn07XG5cbldyaXRhYmxlLnByb3RvdHlwZS51bmNvcmsgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3dyaXRhYmxlU3RhdGU7XG5cbiAgaWYgKHN0YXRlLmNvcmtlZCkge1xuICAgIHN0YXRlLmNvcmtlZC0tO1xuXG4gICAgaWYgKCFzdGF0ZS53cml0aW5nICYmICFzdGF0ZS5jb3JrZWQgJiYgIXN0YXRlLmZpbmlzaGVkICYmICFzdGF0ZS5idWZmZXJQcm9jZXNzaW5nICYmIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdCkgY2xlYXJCdWZmZXIodGhpcywgc3RhdGUpO1xuICB9XG59O1xuXG5Xcml0YWJsZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nID0gZnVuY3Rpb24gc2V0RGVmYXVsdEVuY29kaW5nKGVuY29kaW5nKSB7XG4gIC8vIG5vZGU6OlBhcnNlRW5jb2RpbmcoKSByZXF1aXJlcyBsb3dlciBjYXNlLlxuICBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnc3RyaW5nJykgZW5jb2RpbmcgPSBlbmNvZGluZy50b0xvd2VyQ2FzZSgpO1xuICBpZiAoIShbJ2hleCcsICd1dGY4JywgJ3V0Zi04JywgJ2FzY2lpJywgJ2JpbmFyeScsICdiYXNlNjQnLCAndWNzMicsICd1Y3MtMicsICd1dGYxNmxlJywgJ3V0Zi0xNmxlJywgJ3JhdyddLmluZGV4T2YoKGVuY29kaW5nICsgJycpLnRvTG93ZXJDYXNlKCkpID4gLTEpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpO1xuICB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZyA9IGVuY29kaW5nO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIGRlY29kZUNodW5rKHN0YXRlLCBjaHVuaywgZW5jb2RpbmcpIHtcbiAgaWYgKCFzdGF0ZS5vYmplY3RNb2RlICYmIHN0YXRlLmRlY29kZVN0cmluZ3MgIT09IGZhbHNlICYmIHR5cGVvZiBjaHVuayA9PT0gJ3N0cmluZycpIHtcbiAgICBjaHVuayA9IEJ1ZmZlci5mcm9tKGNodW5rLCBlbmNvZGluZyk7XG4gIH1cbiAgcmV0dXJuIGNodW5rO1xufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLCAnd3JpdGFibGVIaWdoV2F0ZXJNYXJrJywge1xuICAvLyBtYWtpbmcgaXQgZXhwbGljaXQgdGhpcyBwcm9wZXJ0eSBpcyBub3QgZW51bWVyYWJsZVxuICAvLyBiZWNhdXNlIG90aGVyd2lzZSBzb21lIHByb3RvdHlwZSBtYW5pcHVsYXRpb24gaW5cbiAgLy8gdXNlcmxhbmQgd2lsbCBmYWlsXG4gIGVudW1lcmFibGU6IGZhbHNlLFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrO1xuICB9XG59KTtcblxuLy8gaWYgd2UncmUgYWxyZWFkeSB3cml0aW5nIHNvbWV0aGluZywgdGhlbiBqdXN0IHB1dCB0aGlzXG4vLyBpbiB0aGUgcXVldWUsIGFuZCB3YWl0IG91ciB0dXJuLiAgT3RoZXJ3aXNlLCBjYWxsIF93cml0ZVxuLy8gSWYgd2UgcmV0dXJuIGZhbHNlLCB0aGVuIHdlIG5lZWQgYSBkcmFpbiBldmVudCwgc28gc2V0IHRoYXQgZmxhZy5cbmZ1bmN0aW9uIHdyaXRlT3JCdWZmZXIoc3RyZWFtLCBzdGF0ZSwgaXNCdWYsIGNodW5rLCBlbmNvZGluZywgY2IpIHtcbiAgaWYgKCFpc0J1Zikge1xuICAgIHZhciBuZXdDaHVuayA9IGRlY29kZUNodW5rKHN0YXRlLCBjaHVuaywgZW5jb2RpbmcpO1xuICAgIGlmIChjaHVuayAhPT0gbmV3Q2h1bmspIHtcbiAgICAgIGlzQnVmID0gdHJ1ZTtcbiAgICAgIGVuY29kaW5nID0gJ2J1ZmZlcic7XG4gICAgICBjaHVuayA9IG5ld0NodW5rO1xuICAgIH1cbiAgfVxuICB2YXIgbGVuID0gc3RhdGUub2JqZWN0TW9kZSA/IDEgOiBjaHVuay5sZW5ndGg7XG5cbiAgc3RhdGUubGVuZ3RoICs9IGxlbjtcblxuICB2YXIgcmV0ID0gc3RhdGUubGVuZ3RoIDwgc3RhdGUuaGlnaFdhdGVyTWFyaztcbiAgLy8gd2UgbXVzdCBlbnN1cmUgdGhhdCBwcmV2aW91cyBuZWVkRHJhaW4gd2lsbCBub3QgYmUgcmVzZXQgdG8gZmFsc2UuXG4gIGlmICghcmV0KSBzdGF0ZS5uZWVkRHJhaW4gPSB0cnVlO1xuXG4gIGlmIChzdGF0ZS53cml0aW5nIHx8IHN0YXRlLmNvcmtlZCkge1xuICAgIHZhciBsYXN0ID0gc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdDtcbiAgICBzdGF0ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0ID0ge1xuICAgICAgY2h1bms6IGNodW5rLFxuICAgICAgZW5jb2Rpbmc6IGVuY29kaW5nLFxuICAgICAgaXNCdWY6IGlzQnVmLFxuICAgICAgY2FsbGJhY2s6IGNiLFxuICAgICAgbmV4dDogbnVsbFxuICAgIH07XG4gICAgaWYgKGxhc3QpIHtcbiAgICAgIGxhc3QubmV4dCA9IHN0YXRlLmxhc3RCdWZmZXJlZFJlcXVlc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdCA9IHN0YXRlLmxhc3RCdWZmZXJlZFJlcXVlc3Q7XG4gICAgfVxuICAgIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdENvdW50ICs9IDE7XG4gIH0gZWxzZSB7XG4gICAgZG9Xcml0ZShzdHJlYW0sIHN0YXRlLCBmYWxzZSwgbGVuLCBjaHVuaywgZW5jb2RpbmcsIGNiKTtcbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGRvV3JpdGUoc3RyZWFtLCBzdGF0ZSwgd3JpdGV2LCBsZW4sIGNodW5rLCBlbmNvZGluZywgY2IpIHtcbiAgc3RhdGUud3JpdGVsZW4gPSBsZW47XG4gIHN0YXRlLndyaXRlY2IgPSBjYjtcbiAgc3RhdGUud3JpdGluZyA9IHRydWU7XG4gIHN0YXRlLnN5bmMgPSB0cnVlO1xuICBpZiAod3JpdGV2KSBzdHJlYW0uX3dyaXRldihjaHVuaywgc3RhdGUub253cml0ZSk7ZWxzZSBzdHJlYW0uX3dyaXRlKGNodW5rLCBlbmNvZGluZywgc3RhdGUub253cml0ZSk7XG4gIHN0YXRlLnN5bmMgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gb253cml0ZUVycm9yKHN0cmVhbSwgc3RhdGUsIHN5bmMsIGVyLCBjYikge1xuICAtLXN0YXRlLnBlbmRpbmdjYjtcblxuICBpZiAoc3luYykge1xuICAgIC8vIGRlZmVyIHRoZSBjYWxsYmFjayBpZiB3ZSBhcmUgYmVpbmcgY2FsbGVkIHN5bmNocm9ub3VzbHlcbiAgICAvLyB0byBhdm9pZCBwaWxpbmcgdXAgdGhpbmdzIG9uIHRoZSBzdGFja1xuICAgIHBuYS5uZXh0VGljayhjYiwgZXIpO1xuICAgIC8vIHRoaXMgY2FuIGVtaXQgZmluaXNoLCBhbmQgaXQgd2lsbCBhbHdheXMgaGFwcGVuXG4gICAgLy8gYWZ0ZXIgZXJyb3JcbiAgICBwbmEubmV4dFRpY2soZmluaXNoTWF5YmUsIHN0cmVhbSwgc3RhdGUpO1xuICAgIHN0cmVhbS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQgPSB0cnVlO1xuICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIGVyKTtcbiAgfSBlbHNlIHtcbiAgICAvLyB0aGUgY2FsbGVyIGV4cGVjdCB0aGlzIHRvIGhhcHBlbiBiZWZvcmUgaWZcbiAgICAvLyBpdCBpcyBhc3luY1xuICAgIGNiKGVyKTtcbiAgICBzdHJlYW0uX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkID0gdHJ1ZTtcbiAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcik7XG4gICAgLy8gdGhpcyBjYW4gZW1pdCBmaW5pc2gsIGJ1dCBmaW5pc2ggbXVzdFxuICAgIC8vIGFsd2F5cyBmb2xsb3cgZXJyb3JcbiAgICBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvbndyaXRlU3RhdGVVcGRhdGUoc3RhdGUpIHtcbiAgc3RhdGUud3JpdGluZyA9IGZhbHNlO1xuICBzdGF0ZS53cml0ZWNiID0gbnVsbDtcbiAgc3RhdGUubGVuZ3RoIC09IHN0YXRlLndyaXRlbGVuO1xuICBzdGF0ZS53cml0ZWxlbiA9IDA7XG59XG5cbmZ1bmN0aW9uIG9ud3JpdGUoc3RyZWFtLCBlcikge1xuICB2YXIgc3RhdGUgPSBzdHJlYW0uX3dyaXRhYmxlU3RhdGU7XG4gIHZhciBzeW5jID0gc3RhdGUuc3luYztcbiAgdmFyIGNiID0gc3RhdGUud3JpdGVjYjtcblxuICBvbndyaXRlU3RhdGVVcGRhdGUoc3RhdGUpO1xuXG4gIGlmIChlcikgb253cml0ZUVycm9yKHN0cmVhbSwgc3RhdGUsIHN5bmMsIGVyLCBjYik7ZWxzZSB7XG4gICAgLy8gQ2hlY2sgaWYgd2UncmUgYWN0dWFsbHkgcmVhZHkgdG8gZmluaXNoLCBidXQgZG9uJ3QgZW1pdCB5ZXRcbiAgICB2YXIgZmluaXNoZWQgPSBuZWVkRmluaXNoKHN0YXRlKTtcblxuICAgIGlmICghZmluaXNoZWQgJiYgIXN0YXRlLmNvcmtlZCAmJiAhc3RhdGUuYnVmZmVyUHJvY2Vzc2luZyAmJiBzdGF0ZS5idWZmZXJlZFJlcXVlc3QpIHtcbiAgICAgIGNsZWFyQnVmZmVyKHN0cmVhbSwgc3RhdGUpO1xuICAgIH1cblxuICAgIGlmIChzeW5jKSB7XG4gICAgICAvKjxyZXBsYWNlbWVudD4qL1xuICAgICAgYXN5bmNXcml0ZShhZnRlcldyaXRlLCBzdHJlYW0sIHN0YXRlLCBmaW5pc2hlZCwgY2IpO1xuICAgICAgLyo8L3JlcGxhY2VtZW50PiovXG4gICAgfSBlbHNlIHtcbiAgICAgIGFmdGVyV3JpdGUoc3RyZWFtLCBzdGF0ZSwgZmluaXNoZWQsIGNiKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWZ0ZXJXcml0ZShzdHJlYW0sIHN0YXRlLCBmaW5pc2hlZCwgY2IpIHtcbiAgaWYgKCFmaW5pc2hlZCkgb253cml0ZURyYWluKHN0cmVhbSwgc3RhdGUpO1xuICBzdGF0ZS5wZW5kaW5nY2ItLTtcbiAgY2IoKTtcbiAgZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSk7XG59XG5cbi8vIE11c3QgZm9yY2UgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIG9uIG5leHRUaWNrLCBzbyB0aGF0IHdlIGRvbid0XG4vLyBlbWl0ICdkcmFpbicgYmVmb3JlIHRoZSB3cml0ZSgpIGNvbnN1bWVyIGdldHMgdGhlICdmYWxzZScgcmV0dXJuXG4vLyB2YWx1ZSwgYW5kIGhhcyBhIGNoYW5jZSB0byBhdHRhY2ggYSAnZHJhaW4nIGxpc3RlbmVyLlxuZnVuY3Rpb24gb253cml0ZURyYWluKHN0cmVhbSwgc3RhdGUpIHtcbiAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5uZWVkRHJhaW4pIHtcbiAgICBzdGF0ZS5uZWVkRHJhaW4gPSBmYWxzZTtcbiAgICBzdHJlYW0uZW1pdCgnZHJhaW4nKTtcbiAgfVxufVxuXG4vLyBpZiB0aGVyZSdzIHNvbWV0aGluZyBpbiB0aGUgYnVmZmVyIHdhaXRpbmcsIHRoZW4gcHJvY2VzcyBpdFxuZnVuY3Rpb24gY2xlYXJCdWZmZXIoc3RyZWFtLCBzdGF0ZSkge1xuICBzdGF0ZS5idWZmZXJQcm9jZXNzaW5nID0gdHJ1ZTtcbiAgdmFyIGVudHJ5ID0gc3RhdGUuYnVmZmVyZWRSZXF1ZXN0O1xuXG4gIGlmIChzdHJlYW0uX3dyaXRldiAmJiBlbnRyeSAmJiBlbnRyeS5uZXh0KSB7XG4gICAgLy8gRmFzdCBjYXNlLCB3cml0ZSBldmVyeXRoaW5nIHVzaW5nIF93cml0ZXYoKVxuICAgIHZhciBsID0gc3RhdGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQ7XG4gICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheShsKTtcbiAgICB2YXIgaG9sZGVyID0gc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlO1xuICAgIGhvbGRlci5lbnRyeSA9IGVudHJ5O1xuXG4gICAgdmFyIGNvdW50ID0gMDtcbiAgICB2YXIgYWxsQnVmZmVycyA9IHRydWU7XG4gICAgd2hpbGUgKGVudHJ5KSB7XG4gICAgICBidWZmZXJbY291bnRdID0gZW50cnk7XG4gICAgICBpZiAoIWVudHJ5LmlzQnVmKSBhbGxCdWZmZXJzID0gZmFsc2U7XG4gICAgICBlbnRyeSA9IGVudHJ5Lm5leHQ7XG4gICAgICBjb3VudCArPSAxO1xuICAgIH1cbiAgICBidWZmZXIuYWxsQnVmZmVycyA9IGFsbEJ1ZmZlcnM7XG5cbiAgICBkb1dyaXRlKHN0cmVhbSwgc3RhdGUsIHRydWUsIHN0YXRlLmxlbmd0aCwgYnVmZmVyLCAnJywgaG9sZGVyLmZpbmlzaCk7XG5cbiAgICAvLyBkb1dyaXRlIGlzIGFsbW9zdCBhbHdheXMgYXN5bmMsIGRlZmVyIHRoZXNlIHRvIHNhdmUgYSBiaXQgb2YgdGltZVxuICAgIC8vIGFzIHRoZSBob3QgcGF0aCBlbmRzIHdpdGggZG9Xcml0ZVxuICAgIHN0YXRlLnBlbmRpbmdjYisrO1xuICAgIHN0YXRlLmxhc3RCdWZmZXJlZFJlcXVlc3QgPSBudWxsO1xuICAgIGlmIChob2xkZXIubmV4dCkge1xuICAgICAgc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlID0gaG9sZGVyLm5leHQ7XG4gICAgICBob2xkZXIubmV4dCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLmNvcmtlZFJlcXVlc3RzRnJlZSA9IG5ldyBDb3JrZWRSZXF1ZXN0KHN0YXRlKTtcbiAgICB9XG4gICAgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFNsb3cgY2FzZSwgd3JpdGUgY2h1bmtzIG9uZS1ieS1vbmVcbiAgICB3aGlsZSAoZW50cnkpIHtcbiAgICAgIHZhciBjaHVuayA9IGVudHJ5LmNodW5rO1xuICAgICAgdmFyIGVuY29kaW5nID0gZW50cnkuZW5jb2Rpbmc7XG4gICAgICB2YXIgY2IgPSBlbnRyeS5jYWxsYmFjaztcbiAgICAgIHZhciBsZW4gPSBzdGF0ZS5vYmplY3RNb2RlID8gMSA6IGNodW5rLmxlbmd0aDtcblxuICAgICAgZG9Xcml0ZShzdHJlYW0sIHN0YXRlLCBmYWxzZSwgbGVuLCBjaHVuaywgZW5jb2RpbmcsIGNiKTtcbiAgICAgIGVudHJ5ID0gZW50cnkubmV4dDtcbiAgICAgIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdENvdW50LS07XG4gICAgICAvLyBpZiB3ZSBkaWRuJ3QgY2FsbCB0aGUgb253cml0ZSBpbW1lZGlhdGVseSwgdGhlblxuICAgICAgLy8gaXQgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgaXQgZG9lcy5cbiAgICAgIC8vIGFsc28sIHRoYXQgbWVhbnMgdGhhdCB0aGUgY2h1bmsgYW5kIGNiIGFyZSBjdXJyZW50bHlcbiAgICAgIC8vIGJlaW5nIHByb2Nlc3NlZCwgc28gbW92ZSB0aGUgYnVmZmVyIGNvdW50ZXIgcGFzdCB0aGVtLlxuICAgICAgaWYgKHN0YXRlLndyaXRpbmcpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVudHJ5ID09PSBudWxsKSBzdGF0ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0ID0gbnVsbDtcbiAgfVxuXG4gIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdCA9IGVudHJ5O1xuICBzdGF0ZS5idWZmZXJQcm9jZXNzaW5nID0gZmFsc2U7XG59XG5cbldyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGUgPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikge1xuICBjYihuZXcgRXJyb3IoJ193cml0ZSgpIGlzIG5vdCBpbXBsZW1lbnRlZCcpKTtcbn07XG5cbldyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGV2ID0gbnVsbDtcblxuV3JpdGFibGUucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXMuX3dyaXRhYmxlU3RhdGU7XG5cbiAgaWYgKHR5cGVvZiBjaHVuayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNiID0gY2h1bms7XG4gICAgY2h1bmsgPSBudWxsO1xuICAgIGVuY29kaW5nID0gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYiA9IGVuY29kaW5nO1xuICAgIGVuY29kaW5nID0gbnVsbDtcbiAgfVxuXG4gIGlmIChjaHVuayAhPT0gbnVsbCAmJiBjaHVuayAhPT0gdW5kZWZpbmVkKSB0aGlzLndyaXRlKGNodW5rLCBlbmNvZGluZyk7XG5cbiAgLy8gLmVuZCgpIGZ1bGx5IHVuY29ya3NcbiAgaWYgKHN0YXRlLmNvcmtlZCkge1xuICAgIHN0YXRlLmNvcmtlZCA9IDE7XG4gICAgdGhpcy51bmNvcmsoKTtcbiAgfVxuXG4gIC8vIGlnbm9yZSB1bm5lY2Vzc2FyeSBlbmQoKSBjYWxscy5cbiAgaWYgKCFzdGF0ZS5lbmRpbmcgJiYgIXN0YXRlLmZpbmlzaGVkKSBlbmRXcml0YWJsZSh0aGlzLCBzdGF0ZSwgY2IpO1xufTtcblxuZnVuY3Rpb24gbmVlZEZpbmlzaChzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUuZW5kaW5nICYmIHN0YXRlLmxlbmd0aCA9PT0gMCAmJiBzdGF0ZS5idWZmZXJlZFJlcXVlc3QgPT09IG51bGwgJiYgIXN0YXRlLmZpbmlzaGVkICYmICFzdGF0ZS53cml0aW5nO1xufVxuZnVuY3Rpb24gY2FsbEZpbmFsKHN0cmVhbSwgc3RhdGUpIHtcbiAgc3RyZWFtLl9maW5hbChmdW5jdGlvbiAoZXJyKSB7XG4gICAgc3RhdGUucGVuZGluZ2NiLS07XG4gICAgaWYgKGVycikge1xuICAgICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgICB9XG4gICAgc3RhdGUucHJlZmluaXNoZWQgPSB0cnVlO1xuICAgIHN0cmVhbS5lbWl0KCdwcmVmaW5pc2gnKTtcbiAgICBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKTtcbiAgfSk7XG59XG5mdW5jdGlvbiBwcmVmaW5pc2goc3RyZWFtLCBzdGF0ZSkge1xuICBpZiAoIXN0YXRlLnByZWZpbmlzaGVkICYmICFzdGF0ZS5maW5hbENhbGxlZCkge1xuICAgIGlmICh0eXBlb2Ygc3RyZWFtLl9maW5hbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgc3RhdGUucGVuZGluZ2NiKys7XG4gICAgICBzdGF0ZS5maW5hbENhbGxlZCA9IHRydWU7XG4gICAgICBwbmEubmV4dFRpY2soY2FsbEZpbmFsLCBzdHJlYW0sIHN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUucHJlZmluaXNoZWQgPSB0cnVlO1xuICAgICAgc3RyZWFtLmVtaXQoJ3ByZWZpbmlzaCcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKSB7XG4gIHZhciBuZWVkID0gbmVlZEZpbmlzaChzdGF0ZSk7XG4gIGlmIChuZWVkKSB7XG4gICAgcHJlZmluaXNoKHN0cmVhbSwgc3RhdGUpO1xuICAgIGlmIChzdGF0ZS5wZW5kaW5nY2IgPT09IDApIHtcbiAgICAgIHN0YXRlLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgIHN0cmVhbS5lbWl0KCdmaW5pc2gnKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5lZWQ7XG59XG5cbmZ1bmN0aW9uIGVuZFdyaXRhYmxlKHN0cmVhbSwgc3RhdGUsIGNiKSB7XG4gIHN0YXRlLmVuZGluZyA9IHRydWU7XG4gIGZpbmlzaE1heWJlKHN0cmVhbSwgc3RhdGUpO1xuICBpZiAoY2IpIHtcbiAgICBpZiAoc3RhdGUuZmluaXNoZWQpIHBuYS5uZXh0VGljayhjYik7ZWxzZSBzdHJlYW0ub25jZSgnZmluaXNoJywgY2IpO1xuICB9XG4gIHN0YXRlLmVuZGVkID0gdHJ1ZTtcbiAgc3RyZWFtLndyaXRhYmxlID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIG9uQ29ya2VkRmluaXNoKGNvcmtSZXEsIHN0YXRlLCBlcnIpIHtcbiAgdmFyIGVudHJ5ID0gY29ya1JlcS5lbnRyeTtcbiAgY29ya1JlcS5lbnRyeSA9IG51bGw7XG4gIHdoaWxlIChlbnRyeSkge1xuICAgIHZhciBjYiA9IGVudHJ5LmNhbGxiYWNrO1xuICAgIHN0YXRlLnBlbmRpbmdjYi0tO1xuICAgIGNiKGVycik7XG4gICAgZW50cnkgPSBlbnRyeS5uZXh0O1xuICB9XG4gIGlmIChzdGF0ZS5jb3JrZWRSZXF1ZXN0c0ZyZWUpIHtcbiAgICBzdGF0ZS5jb3JrZWRSZXF1ZXN0c0ZyZWUubmV4dCA9IGNvcmtSZXE7XG4gIH0gZWxzZSB7XG4gICAgc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlID0gY29ya1JlcTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoV3JpdGFibGUucHJvdG90eXBlLCAnZGVzdHJveWVkJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5fd3JpdGFibGVTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZDtcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAvLyB3ZSBpZ25vcmUgdGhlIHZhbHVlIGlmIHRoZSBzdHJlYW1cbiAgICAvLyBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0XG4gICAgaWYgKCF0aGlzLl93cml0YWJsZVN0YXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdGhlIHVzZXIgaXMgZXhwbGljaXRseVxuICAgIC8vIG1hbmFnaW5nIGRlc3Ryb3llZFxuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkID0gdmFsdWU7XG4gIH1cbn0pO1xuXG5Xcml0YWJsZS5wcm90b3R5cGUuZGVzdHJveSA9IGRlc3Ryb3lJbXBsLmRlc3Ryb3k7XG5Xcml0YWJsZS5wcm90b3R5cGUuX3VuZGVzdHJveSA9IGRlc3Ryb3lJbXBsLnVuZGVzdHJveTtcbldyaXRhYmxlLnByb3RvdHlwZS5fZGVzdHJveSA9IGZ1bmN0aW9uIChlcnIsIGNiKSB7XG4gIHRoaXMuZW5kKCk7XG4gIGNiKGVycik7XG59OyIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyO1xudmFyIHV0aWwgPSByZXF1aXJlKCd1dGlsJyk7XG5cbmZ1bmN0aW9uIGNvcHlCdWZmZXIoc3JjLCB0YXJnZXQsIG9mZnNldCkge1xuICBzcmMuY29weSh0YXJnZXQsIG9mZnNldCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBCdWZmZXJMaXN0KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBCdWZmZXJMaXN0KTtcblxuICAgIHRoaXMuaGVhZCA9IG51bGw7XG4gICAgdGhpcy50YWlsID0gbnVsbDtcbiAgICB0aGlzLmxlbmd0aCA9IDA7XG4gIH1cblxuICBCdWZmZXJMaXN0LnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gcHVzaCh2KSB7XG4gICAgdmFyIGVudHJ5ID0geyBkYXRhOiB2LCBuZXh0OiBudWxsIH07XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gMCkgdGhpcy50YWlsLm5leHQgPSBlbnRyeTtlbHNlIHRoaXMuaGVhZCA9IGVudHJ5O1xuICAgIHRoaXMudGFpbCA9IGVudHJ5O1xuICAgICsrdGhpcy5sZW5ndGg7XG4gIH07XG5cbiAgQnVmZmVyTGlzdC5wcm90b3R5cGUudW5zaGlmdCA9IGZ1bmN0aW9uIHVuc2hpZnQodikge1xuICAgIHZhciBlbnRyeSA9IHsgZGF0YTogdiwgbmV4dDogdGhpcy5oZWFkIH07XG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSB0aGlzLnRhaWwgPSBlbnRyeTtcbiAgICB0aGlzLmhlYWQgPSBlbnRyeTtcbiAgICArK3RoaXMubGVuZ3RoO1xuICB9O1xuXG4gIEJ1ZmZlckxpc3QucHJvdG90eXBlLnNoaWZ0ID0gZnVuY3Rpb24gc2hpZnQoKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgdmFyIHJldCA9IHRoaXMuaGVhZC5kYXRhO1xuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMSkgdGhpcy5oZWFkID0gdGhpcy50YWlsID0gbnVsbDtlbHNlIHRoaXMuaGVhZCA9IHRoaXMuaGVhZC5uZXh0O1xuICAgIC0tdGhpcy5sZW5ndGg7XG4gICAgcmV0dXJuIHJldDtcbiAgfTtcblxuICBCdWZmZXJMaXN0LnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgIHRoaXMuaGVhZCA9IHRoaXMudGFpbCA9IG51bGw7XG4gICAgdGhpcy5sZW5ndGggPSAwO1xuICB9O1xuXG4gIEJ1ZmZlckxpc3QucHJvdG90eXBlLmpvaW4gPSBmdW5jdGlvbiBqb2luKHMpIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgICB2YXIgcCA9IHRoaXMuaGVhZDtcbiAgICB2YXIgcmV0ID0gJycgKyBwLmRhdGE7XG4gICAgd2hpbGUgKHAgPSBwLm5leHQpIHtcbiAgICAgIHJldCArPSBzICsgcC5kYXRhO1xuICAgIH1yZXR1cm4gcmV0O1xuICB9O1xuXG4gIEJ1ZmZlckxpc3QucHJvdG90eXBlLmNvbmNhdCA9IGZ1bmN0aW9uIGNvbmNhdChuKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gQnVmZmVyLmFsbG9jKDApO1xuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIHRoaXMuaGVhZC5kYXRhO1xuICAgIHZhciByZXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUobiA+Pj4gMCk7XG4gICAgdmFyIHAgPSB0aGlzLmhlYWQ7XG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChwKSB7XG4gICAgICBjb3B5QnVmZmVyKHAuZGF0YSwgcmV0LCBpKTtcbiAgICAgIGkgKz0gcC5kYXRhLmxlbmd0aDtcbiAgICAgIHAgPSBwLm5leHQ7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH07XG5cbiAgcmV0dXJuIEJ1ZmZlckxpc3Q7XG59KCk7XG5cbmlmICh1dGlsICYmIHV0aWwuaW5zcGVjdCAmJiB1dGlsLmluc3BlY3QuY3VzdG9tKSB7XG4gIG1vZHVsZS5leHBvcnRzLnByb3RvdHlwZVt1dGlsLmluc3BlY3QuY3VzdG9tXSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgb2JqID0gdXRpbC5pbnNwZWN0KHsgbGVuZ3RoOiB0aGlzLmxlbmd0aCB9KTtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJyAnICsgb2JqO1xuICB9O1xufSIsIid1c2Ugc3RyaWN0JztcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cblxudmFyIHBuYSA9IHJlcXVpcmUoJ3Byb2Nlc3MtbmV4dGljay1hcmdzJyk7XG4vKjwvcmVwbGFjZW1lbnQ+Ki9cblxuLy8gdW5kb2N1bWVudGVkIGNiKCkgQVBJLCBuZWVkZWQgZm9yIGNvcmUsIG5vdCBmb3IgcHVibGljIEFQSVxuZnVuY3Rpb24gZGVzdHJveShlcnIsIGNiKSB7XG4gIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgdmFyIHJlYWRhYmxlRGVzdHJveWVkID0gdGhpcy5fcmVhZGFibGVTdGF0ZSAmJiB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZDtcbiAgdmFyIHdyaXRhYmxlRGVzdHJveWVkID0gdGhpcy5fd3JpdGFibGVTdGF0ZSAmJiB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZDtcblxuICBpZiAocmVhZGFibGVEZXN0cm95ZWQgfHwgd3JpdGFibGVEZXN0cm95ZWQpIHtcbiAgICBpZiAoY2IpIHtcbiAgICAgIGNiKGVycik7XG4gICAgfSBlbHNlIGlmIChlcnIgJiYgKCF0aGlzLl93cml0YWJsZVN0YXRlIHx8ICF0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCkpIHtcbiAgICAgIHBuYS5uZXh0VGljayhlbWl0RXJyb3JOVCwgdGhpcywgZXJyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyB3ZSBzZXQgZGVzdHJveWVkIHRvIHRydWUgYmVmb3JlIGZpcmluZyBlcnJvciBjYWxsYmFja3MgaW4gb3JkZXJcbiAgLy8gdG8gbWFrZSBpdCByZS1lbnRyYW5jZSBzYWZlIGluIGNhc2UgZGVzdHJveSgpIGlzIGNhbGxlZCB3aXRoaW4gY2FsbGJhY2tzXG5cbiAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUpIHtcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCA9IHRydWU7XG4gIH1cblxuICAvLyBpZiB0aGlzIGlzIGEgZHVwbGV4IHN0cmVhbSBtYXJrIHRoZSB3cml0YWJsZSBwYXJ0IGFzIGRlc3Ryb3llZCBhcyB3ZWxsXG4gIGlmICh0aGlzLl93cml0YWJsZVN0YXRlKSB7XG4gICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgdGhpcy5fZGVzdHJveShlcnIgfHwgbnVsbCwgZnVuY3Rpb24gKGVycikge1xuICAgIGlmICghY2IgJiYgZXJyKSB7XG4gICAgICBwbmEubmV4dFRpY2soZW1pdEVycm9yTlQsIF90aGlzLCBlcnIpO1xuICAgICAgaWYgKF90aGlzLl93cml0YWJsZVN0YXRlKSB7XG4gICAgICAgIF90aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYikge1xuICAgICAgY2IoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB0aGlzO1xufVxuXG5mdW5jdGlvbiB1bmRlc3Ryb3koKSB7XG4gIGlmICh0aGlzLl9yZWFkYWJsZVN0YXRlKSB7XG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQgPSBmYWxzZTtcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZGVkID0gZmFsc2U7XG4gICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkID0gZmFsc2U7XG4gIH1cblxuICBpZiAodGhpcy5fd3JpdGFibGVTdGF0ZSkge1xuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkID0gZmFsc2U7XG4gICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nID0gZmFsc2U7XG4gICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkID0gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW1pdEVycm9yTlQoc2VsZiwgZXJyKSB7XG4gIHNlbGYuZW1pdCgnZXJyb3InLCBlcnIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZGVzdHJveTogZGVzdHJveSxcbiAgdW5kZXN0cm95OiB1bmRlc3Ryb3lcbn07IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCdldmVudHMnKS5FdmVudEVtaXR0ZXI7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vcmVhZGFibGUnKS5QYXNzVGhyb3VnaFxuIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvX3N0cmVhbV9yZWFkYWJsZS5qcycpO1xuZXhwb3J0cy5TdHJlYW0gPSBleHBvcnRzO1xuZXhwb3J0cy5SZWFkYWJsZSA9IGV4cG9ydHM7XG5leHBvcnRzLldyaXRhYmxlID0gcmVxdWlyZSgnLi9saWIvX3N0cmVhbV93cml0YWJsZS5qcycpO1xuZXhwb3J0cy5EdXBsZXggPSByZXF1aXJlKCcuL2xpYi9fc3RyZWFtX2R1cGxleC5qcycpO1xuZXhwb3J0cy5UcmFuc2Zvcm0gPSByZXF1aXJlKCcuL2xpYi9fc3RyZWFtX3RyYW5zZm9ybS5qcycpO1xuZXhwb3J0cy5QYXNzVGhyb3VnaCA9IHJlcXVpcmUoJy4vbGliL19zdHJlYW1fcGFzc3Rocm91Z2guanMnKTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9yZWFkYWJsZScpLlRyYW5zZm9ybVxuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYi9fc3RyZWFtX3dyaXRhYmxlLmpzJyk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbjtcbjtcbjtcbnZhciBpc1dlYlNvY2tldCA9IGZ1bmN0aW9uIChjb25zdHJ1Y3Rvcikge1xuICAgIHJldHVybiBjb25zdHJ1Y3RvciAmJiBjb25zdHJ1Y3Rvci5DTE9TSU5HID09PSAyO1xufTtcbnZhciBpc0dsb2JhbFdlYlNvY2tldCA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdHlwZW9mIFdlYlNvY2tldCAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNXZWJTb2NrZXQoV2ViU29ja2V0KTtcbn07XG52YXIgZ2V0RGVmYXVsdE9wdGlvbnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAoe1xuICAgIGNvbnN0cnVjdG9yOiBpc0dsb2JhbFdlYlNvY2tldCgpID8gV2ViU29ja2V0IDogbnVsbCxcbiAgICBtYXhSZWNvbm5lY3Rpb25EZWxheTogMTAwMDAsXG4gICAgbWluUmVjb25uZWN0aW9uRGVsYXk6IDE1MDAsXG4gICAgcmVjb25uZWN0aW9uRGVsYXlHcm93RmFjdG9yOiAxLjMsXG4gICAgY29ubmVjdGlvblRpbWVvdXQ6IDQwMDAsXG4gICAgbWF4UmV0cmllczogSW5maW5pdHksXG4gICAgZGVidWc6IGZhbHNlLFxufSk7IH07XG52YXIgYnlwYXNzUHJvcGVydHkgPSBmdW5jdGlvbiAoc3JjLCBkc3QsIG5hbWUpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZHN0LCBuYW1lLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc3JjW25hbWVdOyB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkgeyBzcmNbbmFtZV0gPSB2YWx1ZTsgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xufTtcbnZhciBpbml0UmVjb25uZWN0aW9uRGVsYXkgPSBmdW5jdGlvbiAoY29uZmlnKSB7XG4gICAgcmV0dXJuIChjb25maWcubWluUmVjb25uZWN0aW9uRGVsYXkgKyBNYXRoLnJhbmRvbSgpICogY29uZmlnLm1pblJlY29ubmVjdGlvbkRlbGF5KTtcbn07XG52YXIgdXBkYXRlUmVjb25uZWN0aW9uRGVsYXkgPSBmdW5jdGlvbiAoY29uZmlnLCBwcmV2aW91c0RlbGF5KSB7XG4gICAgdmFyIG5ld0RlbGF5ID0gcHJldmlvdXNEZWxheSAqIGNvbmZpZy5yZWNvbm5lY3Rpb25EZWxheUdyb3dGYWN0b3I7XG4gICAgcmV0dXJuIChuZXdEZWxheSA+IGNvbmZpZy5tYXhSZWNvbm5lY3Rpb25EZWxheSlcbiAgICAgICAgPyBjb25maWcubWF4UmVjb25uZWN0aW9uRGVsYXlcbiAgICAgICAgOiBuZXdEZWxheTtcbn07XG52YXIgTEVWRUxfMF9FVkVOVFMgPSBbJ29ub3BlbicsICdvbmNsb3NlJywgJ29ubWVzc2FnZScsICdvbmVycm9yJ107XG52YXIgcmVhc3NpZ25FdmVudExpc3RlbmVycyA9IGZ1bmN0aW9uICh3cywgb2xkV3MsIGxpc3RlbmVycykge1xuICAgIE9iamVjdC5rZXlzKGxpc3RlbmVycykuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgICBsaXN0ZW5lcnNbdHlwZV0uZm9yRWFjaChmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICAgIHZhciBsaXN0ZW5lciA9IF9hWzBdLCBvcHRpb25zID0gX2FbMV07XG4gICAgICAgICAgICB3cy5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgaWYgKG9sZFdzKSB7XG4gICAgICAgIExFVkVMXzBfRVZFTlRTLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHdzW25hbWVdID0gb2xkV3NbbmFtZV07XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG52YXIgUmVjb25uZWN0aW5nV2Vic29ja2V0ID0gZnVuY3Rpb24gKHVybCwgcHJvdG9jb2xzLCBvcHRpb25zKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcbiAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7IG9wdGlvbnMgPSB7fTsgfVxuICAgIHZhciB3cztcbiAgICB2YXIgY29ubmVjdGluZ1RpbWVvdXQ7XG4gICAgdmFyIHJlY29ubmVjdERlbGF5ID0gMDtcbiAgICB2YXIgcmV0cmllc0NvdW50ID0gMDtcbiAgICB2YXIgc2hvdWxkUmV0cnkgPSB0cnVlO1xuICAgIHZhciBzYXZlZE9uQ2xvc2UgPSBudWxsO1xuICAgIHZhciBsaXN0ZW5lcnMgPSB7fTtcbiAgICAvLyByZXF1aXJlIG5ldyB0byBjb25zdHJ1Y3RcbiAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVjb25uZWN0aW5nV2Vic29ja2V0KSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnUmVjb25uZWN0aW5nV2ViU29ja2V0JzogUGxlYXNlIHVzZSB0aGUgJ25ldycgb3BlcmF0b3JcIik7XG4gICAgfVxuICAgIC8vIFNldCBjb25maWcuIE5vdCB1c2luZyBgT2JqZWN0LmFzc2lnbmAgYmVjYXVzZSBvZiBJRTExXG4gICAgdmFyIGNvbmZpZyA9IGdldERlZmF1bHRPcHRpb25zKCk7XG4gICAgT2JqZWN0LmtleXMoY29uZmlnKVxuICAgICAgICAuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHsgcmV0dXJuIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KTsgfSlcbiAgICAgICAgLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyByZXR1cm4gY29uZmlnW2tleV0gPSBvcHRpb25zW2tleV07IH0pO1xuICAgIGlmICghaXNXZWJTb2NrZXQoY29uZmlnLmNvbnN0cnVjdG9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIFdlYlNvY2tldCBjb25zdHJ1Y3Rvci4gU2V0IGBvcHRpb25zLmNvbnN0cnVjdG9yYCcpO1xuICAgIH1cbiAgICB2YXIgbG9nID0gY29uZmlnLmRlYnVnID8gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgcGFyYW1zID0gW107XG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICBwYXJhbXNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29uc29sZS5sb2cuYXBwbHkoY29uc29sZSwgWydSV1M6J10uY29uY2F0KHBhcmFtcykpO1xuICAgIH0gOiBmdW5jdGlvbiAoKSB7IH07XG4gICAgLyoqXG4gICAgICogTm90IHVzaW5nIGRpc3BhdGNoRXZlbnQsIG90aGVyd2lzZSB3ZSBtdXN0IHVzZSBhIERPTSBFdmVudCBvYmplY3RcbiAgICAgKiBEZWZlcnJlZCBiZWNhdXNlIHdlIHdhbnQgdG8gaGFuZGxlIHRoZSBjbG9zZSBldmVudCBiZWZvcmUgdGhpc1xuICAgICAqL1xuICAgIHZhciBlbWl0RXJyb3IgPSBmdW5jdGlvbiAoY29kZSwgbXNnKSB7IHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihtc2cpO1xuICAgICAgICBlcnIuY29kZSA9IGNvZGU7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxpc3RlbmVycy5lcnJvcikpIHtcbiAgICAgICAgICAgIGxpc3RlbmVycy5lcnJvci5mb3JFYWNoKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgIHZhciBmbiA9IF9hWzBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBmbihlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdzLm9uZXJyb3IpIHtcbiAgICAgICAgICAgIHdzLm9uZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH0sIDApOyB9O1xuICAgIHZhciBoYW5kbGVDbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG9nKCdoYW5kbGVDbG9zZScsIHsgc2hvdWxkUmV0cnk6IHNob3VsZFJldHJ5IH0pO1xuICAgICAgICByZXRyaWVzQ291bnQrKztcbiAgICAgICAgbG9nKCdyZXRyaWVzIGNvdW50OicsIHJldHJpZXNDb3VudCk7XG4gICAgICAgIGlmIChyZXRyaWVzQ291bnQgPiBjb25maWcubWF4UmV0cmllcykge1xuICAgICAgICAgICAgZW1pdEVycm9yKCdFSE9TVERPV04nLCAnVG9vIG1hbnkgZmFpbGVkIGNvbm5lY3Rpb24gYXR0ZW1wdHMnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJlY29ubmVjdERlbGF5KSB7XG4gICAgICAgICAgICByZWNvbm5lY3REZWxheSA9IGluaXRSZWNvbm5lY3Rpb25EZWxheShjb25maWcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVjb25uZWN0RGVsYXkgPSB1cGRhdGVSZWNvbm5lY3Rpb25EZWxheShjb25maWcsIHJlY29ubmVjdERlbGF5KTtcbiAgICAgICAgfVxuICAgICAgICBsb2coJ2hhbmRsZUNsb3NlIC0gcmVjb25uZWN0RGVsYXk6JywgcmVjb25uZWN0RGVsYXkpO1xuICAgICAgICBpZiAoc2hvdWxkUmV0cnkpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY29ubmVjdCwgcmVjb25uZWN0RGVsYXkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICB2YXIgY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFzaG91bGRSZXRyeSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxvZygnY29ubmVjdCcpO1xuICAgICAgICB2YXIgb2xkV3MgPSB3cztcbiAgICAgICAgdmFyIHdzVXJsID0gKHR5cGVvZiB1cmwgPT09ICdmdW5jdGlvbicpID8gdXJsKCkgOiB1cmw7XG4gICAgICAgIHdzID0gbmV3IGNvbmZpZy5jb25zdHJ1Y3Rvcih3c1VybCwgcHJvdG9jb2xzKTtcbiAgICAgICAgY29ubmVjdGluZ1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxvZygndGltZW91dCcpO1xuICAgICAgICAgICAgd3MuY2xvc2UoKTtcbiAgICAgICAgICAgIGVtaXRFcnJvcignRVRJTUVET1VUJywgJ0Nvbm5lY3Rpb24gdGltZW91dCcpO1xuICAgICAgICB9LCBjb25maWcuY29ubmVjdGlvblRpbWVvdXQpO1xuICAgICAgICBsb2coJ2J5cGFzcyBwcm9wZXJ0aWVzJyk7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiB3cykge1xuICAgICAgICAgICAgLy8gQHRvZG8gbW92ZSB0byBjb25zdGFudFxuICAgICAgICAgICAgaWYgKFsnYWRkRXZlbnRMaXN0ZW5lcicsICdyZW1vdmVFdmVudExpc3RlbmVyJywgJ2Nsb3NlJywgJ3NlbmQnXS5pbmRleE9mKGtleSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgYnlwYXNzUHJvcGVydHkod3MsIF90aGlzLCBrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdzLmFkZEV2ZW50TGlzdGVuZXIoJ29wZW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoY29ubmVjdGluZ1RpbWVvdXQpO1xuICAgICAgICAgICAgbG9nKCdvcGVuJyk7XG4gICAgICAgICAgICByZWNvbm5lY3REZWxheSA9IGluaXRSZWNvbm5lY3Rpb25EZWxheShjb25maWcpO1xuICAgICAgICAgICAgbG9nKCdyZWNvbm5lY3REZWxheTonLCByZWNvbm5lY3REZWxheSk7XG4gICAgICAgICAgICByZXRyaWVzQ291bnQgPSAwO1xuICAgICAgICB9KTtcbiAgICAgICAgd3MuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2UnLCBoYW5kbGVDbG9zZSk7XG4gICAgICAgIHJlYXNzaWduRXZlbnRMaXN0ZW5lcnMod3MsIG9sZFdzLCBsaXN0ZW5lcnMpO1xuICAgICAgICAvLyBiZWNhdXNlIHdoZW4gY2xvc2luZyB3aXRoIGZhc3RDbG9zZT10cnVlLCBpdCBpcyBzYXZlZCBhbmQgc2V0IHRvIG51bGwgdG8gYXZvaWQgZG91YmxlIGNhbGxzXG4gICAgICAgIHdzLm9uY2xvc2UgPSB3cy5vbmNsb3NlIHx8IHNhdmVkT25DbG9zZTtcbiAgICAgICAgc2F2ZWRPbkNsb3NlID0gbnVsbDtcbiAgICB9O1xuICAgIGxvZygnaW5pdCcpO1xuICAgIGNvbm5lY3QoKTtcbiAgICB0aGlzLmNsb3NlID0gZnVuY3Rpb24gKGNvZGUsIHJlYXNvbiwgX2EpIHtcbiAgICAgICAgaWYgKGNvZGUgPT09IHZvaWQgMCkgeyBjb2RlID0gMTAwMDsgfVxuICAgICAgICBpZiAocmVhc29uID09PSB2b2lkIDApIHsgcmVhc29uID0gJyc7IH1cbiAgICAgICAgdmFyIF9iID0gX2EgPT09IHZvaWQgMCA/IHt9IDogX2EsIF9jID0gX2Iua2VlcENsb3NlZCwga2VlcENsb3NlZCA9IF9jID09PSB2b2lkIDAgPyBmYWxzZSA6IF9jLCBfZCA9IF9iLmZhc3RDbG9zZSwgZmFzdENsb3NlID0gX2QgPT09IHZvaWQgMCA/IHRydWUgOiBfZCwgX2UgPSBfYi5kZWxheSwgZGVsYXkgPSBfZSA9PT0gdm9pZCAwID8gMCA6IF9lO1xuICAgICAgICBsb2coJ2Nsb3NlIC0gcGFyYW1zOicsIHsgcmVhc29uOiByZWFzb24sIGtlZXBDbG9zZWQ6IGtlZXBDbG9zZWQsIGZhc3RDbG9zZTogZmFzdENsb3NlLCBkZWxheTogZGVsYXksIHJldHJpZXNDb3VudDogcmV0cmllc0NvdW50LCBtYXhSZXRyaWVzOiBjb25maWcubWF4UmV0cmllcyB9KTtcbiAgICAgICAgc2hvdWxkUmV0cnkgPSAha2VlcENsb3NlZCAmJiByZXRyaWVzQ291bnQgPD0gY29uZmlnLm1heFJldHJpZXM7XG4gICAgICAgIGlmIChkZWxheSkge1xuICAgICAgICAgICAgcmVjb25uZWN0RGVsYXkgPSBkZWxheTtcbiAgICAgICAgfVxuICAgICAgICB3cy5jbG9zZShjb2RlLCByZWFzb24pO1xuICAgICAgICBpZiAoZmFzdENsb3NlKSB7XG4gICAgICAgICAgICB2YXIgZmFrZUNsb3NlRXZlbnRfMSA9IHtcbiAgICAgICAgICAgICAgICBjb2RlOiBjb2RlLFxuICAgICAgICAgICAgICAgIHJlYXNvbjogcmVhc29uLFxuICAgICAgICAgICAgICAgIHdhc0NsZWFuOiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIGV4ZWN1dGUgY2xvc2UgbGlzdGVuZXJzIHNvb24gd2l0aCBhIGZha2UgY2xvc2VFdmVudFxuICAgICAgICAgICAgLy8gYW5kIHJlbW92ZSB0aGVtIGZyb20gdGhlIFdTIGluc3RhbmNlIHNvIHRoZXlcbiAgICAgICAgICAgIC8vIGRvbid0IGdldCBmaXJlZCBvbiB0aGUgcmVhbCBjbG9zZS5cbiAgICAgICAgICAgIGhhbmRsZUNsb3NlKCk7XG4gICAgICAgICAgICB3cy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbG9zZScsIGhhbmRsZUNsb3NlKTtcbiAgICAgICAgICAgIC8vIHJ1biBhbmQgcmVtb3ZlIGxldmVsMlxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdGVuZXJzLmNsb3NlKSkge1xuICAgICAgICAgICAgICAgIGxpc3RlbmVycy5jbG9zZS5mb3JFYWNoKGZ1bmN0aW9uIChfYSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdGVuZXIgPSBfYVswXSwgb3B0aW9ucyA9IF9hWzFdO1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcihmYWtlQ2xvc2VFdmVudF8xKTtcbiAgICAgICAgICAgICAgICAgICAgd3MucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xvc2UnLCBsaXN0ZW5lciwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBydW4gYW5kIHJlbW92ZSBsZXZlbDBcbiAgICAgICAgICAgIGlmICh3cy5vbmNsb3NlKSB7XG4gICAgICAgICAgICAgICAgc2F2ZWRPbkNsb3NlID0gd3Mub25jbG9zZTtcbiAgICAgICAgICAgICAgICB3cy5vbmNsb3NlKGZha2VDbG9zZUV2ZW50XzEpO1xuICAgICAgICAgICAgICAgIHdzLm9uY2xvc2UgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnNlbmQgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICB3cy5zZW5kKGRhdGEpO1xuICAgIH07XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxpc3RlbmVyc1t0eXBlXSkpIHtcbiAgICAgICAgICAgIGlmICghbGlzdGVuZXJzW3R5cGVdLnNvbWUoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgdmFyIGwgPSBfYVswXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbCA9PT0gbGlzdGVuZXI7XG4gICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgICAgIGxpc3RlbmVyc1t0eXBlXS5wdXNoKFtsaXN0ZW5lciwgb3B0aW9uc10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGlzdGVuZXJzW3R5cGVdID0gW1tsaXN0ZW5lciwgb3B0aW9uc11dO1xuICAgICAgICB9XG4gICAgICAgIHdzLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxpc3RlbmVyc1t0eXBlXSkpIHtcbiAgICAgICAgICAgIGxpc3RlbmVyc1t0eXBlXSA9IGxpc3RlbmVyc1t0eXBlXS5maWx0ZXIoZnVuY3Rpb24gKF9hKSB7XG4gICAgICAgICAgICAgICAgdmFyIGwgPSBfYVswXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbCAhPT0gbGlzdGVuZXI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB3cy5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKTtcbiAgICB9O1xufTtcbm1vZHVsZS5leHBvcnRzID0gUmVjb25uZWN0aW5nV2Vic29ja2V0O1xuIiwiJ3VzZSBzdHJpY3QnXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJykuQnVmZmVyXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgSGFzaEJhc2UgPSByZXF1aXJlKCdoYXNoLWJhc2UnKVxuXG52YXIgQVJSQVkxNiA9IG5ldyBBcnJheSgxNilcblxudmFyIHpsID0gW1xuICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LFxuICA3LCA0LCAxMywgMSwgMTAsIDYsIDE1LCAzLCAxMiwgMCwgOSwgNSwgMiwgMTQsIDExLCA4LFxuICAzLCAxMCwgMTQsIDQsIDksIDE1LCA4LCAxLCAyLCA3LCAwLCA2LCAxMywgMTEsIDUsIDEyLFxuICAxLCA5LCAxMSwgMTAsIDAsIDgsIDEyLCA0LCAxMywgMywgNywgMTUsIDE0LCA1LCA2LCAyLFxuICA0LCAwLCA1LCA5LCA3LCAxMiwgMiwgMTAsIDE0LCAxLCAzLCA4LCAxMSwgNiwgMTUsIDEzXG5dXG5cbnZhciB6ciA9IFtcbiAgNSwgMTQsIDcsIDAsIDksIDIsIDExLCA0LCAxMywgNiwgMTUsIDgsIDEsIDEwLCAzLCAxMixcbiAgNiwgMTEsIDMsIDcsIDAsIDEzLCA1LCAxMCwgMTQsIDE1LCA4LCAxMiwgNCwgOSwgMSwgMixcbiAgMTUsIDUsIDEsIDMsIDcsIDE0LCA2LCA5LCAxMSwgOCwgMTIsIDIsIDEwLCAwLCA0LCAxMyxcbiAgOCwgNiwgNCwgMSwgMywgMTEsIDE1LCAwLCA1LCAxMiwgMiwgMTMsIDksIDcsIDEwLCAxNCxcbiAgMTIsIDE1LCAxMCwgNCwgMSwgNSwgOCwgNywgNiwgMiwgMTMsIDE0LCAwLCAzLCA5LCAxMVxuXVxuXG52YXIgc2wgPSBbXG4gIDExLCAxNCwgMTUsIDEyLCA1LCA4LCA3LCA5LCAxMSwgMTMsIDE0LCAxNSwgNiwgNywgOSwgOCxcbiAgNywgNiwgOCwgMTMsIDExLCA5LCA3LCAxNSwgNywgMTIsIDE1LCA5LCAxMSwgNywgMTMsIDEyLFxuICAxMSwgMTMsIDYsIDcsIDE0LCA5LCAxMywgMTUsIDE0LCA4LCAxMywgNiwgNSwgMTIsIDcsIDUsXG4gIDExLCAxMiwgMTQsIDE1LCAxNCwgMTUsIDksIDgsIDksIDE0LCA1LCA2LCA4LCA2LCA1LCAxMixcbiAgOSwgMTUsIDUsIDExLCA2LCA4LCAxMywgMTIsIDUsIDEyLCAxMywgMTQsIDExLCA4LCA1LCA2XG5dXG5cbnZhciBzciA9IFtcbiAgOCwgOSwgOSwgMTEsIDEzLCAxNSwgMTUsIDUsIDcsIDcsIDgsIDExLCAxNCwgMTQsIDEyLCA2LFxuICA5LCAxMywgMTUsIDcsIDEyLCA4LCA5LCAxMSwgNywgNywgMTIsIDcsIDYsIDE1LCAxMywgMTEsXG4gIDksIDcsIDE1LCAxMSwgOCwgNiwgNiwgMTQsIDEyLCAxMywgNSwgMTQsIDEzLCAxMywgNywgNSxcbiAgMTUsIDUsIDgsIDExLCAxNCwgMTQsIDYsIDE0LCA2LCA5LCAxMiwgOSwgMTIsIDUsIDE1LCA4LFxuICA4LCA1LCAxMiwgOSwgMTIsIDUsIDE0LCA2LCA4LCAxMywgNiwgNSwgMTUsIDEzLCAxMSwgMTFcbl1cblxudmFyIGhsID0gWzB4MDAwMDAwMDAsIDB4NWE4Mjc5OTksIDB4NmVkOWViYTEsIDB4OGYxYmJjZGMsIDB4YTk1M2ZkNGVdXG52YXIgaHIgPSBbMHg1MGEyOGJlNiwgMHg1YzRkZDEyNCwgMHg2ZDcwM2VmMywgMHg3YTZkNzZlOSwgMHgwMDAwMDAwMF1cblxuZnVuY3Rpb24gUklQRU1EMTYwICgpIHtcbiAgSGFzaEJhc2UuY2FsbCh0aGlzLCA2NClcblxuICAvLyBzdGF0ZVxuICB0aGlzLl9hID0gMHg2NzQ1MjMwMVxuICB0aGlzLl9iID0gMHhlZmNkYWI4OVxuICB0aGlzLl9jID0gMHg5OGJhZGNmZVxuICB0aGlzLl9kID0gMHgxMDMyNTQ3NlxuICB0aGlzLl9lID0gMHhjM2QyZTFmMFxufVxuXG5pbmhlcml0cyhSSVBFTUQxNjAsIEhhc2hCYXNlKVxuXG5SSVBFTUQxNjAucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB3b3JkcyA9IEFSUkFZMTZcbiAgZm9yICh2YXIgaiA9IDA7IGogPCAxNjsgKytqKSB3b3Jkc1tqXSA9IHRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKGogKiA0KVxuXG4gIHZhciBhbCA9IHRoaXMuX2EgfCAwXG4gIHZhciBibCA9IHRoaXMuX2IgfCAwXG4gIHZhciBjbCA9IHRoaXMuX2MgfCAwXG4gIHZhciBkbCA9IHRoaXMuX2QgfCAwXG4gIHZhciBlbCA9IHRoaXMuX2UgfCAwXG5cbiAgdmFyIGFyID0gdGhpcy5fYSB8IDBcbiAgdmFyIGJyID0gdGhpcy5fYiB8IDBcbiAgdmFyIGNyID0gdGhpcy5fYyB8IDBcbiAgdmFyIGRyID0gdGhpcy5fZCB8IDBcbiAgdmFyIGVyID0gdGhpcy5fZSB8IDBcblxuICAvLyBjb21wdXRhdGlvblxuICBmb3IgKHZhciBpID0gMDsgaSA8IDgwOyBpICs9IDEpIHtcbiAgICB2YXIgdGxcbiAgICB2YXIgdHJcbiAgICBpZiAoaSA8IDE2KSB7XG4gICAgICB0bCA9IGZuMShhbCwgYmwsIGNsLCBkbCwgZWwsIHdvcmRzW3psW2ldXSwgaGxbMF0sIHNsW2ldKVxuICAgICAgdHIgPSBmbjUoYXIsIGJyLCBjciwgZHIsIGVyLCB3b3Jkc1t6cltpXV0sIGhyWzBdLCBzcltpXSlcbiAgICB9IGVsc2UgaWYgKGkgPCAzMikge1xuICAgICAgdGwgPSBmbjIoYWwsIGJsLCBjbCwgZGwsIGVsLCB3b3Jkc1t6bFtpXV0sIGhsWzFdLCBzbFtpXSlcbiAgICAgIHRyID0gZm40KGFyLCBiciwgY3IsIGRyLCBlciwgd29yZHNbenJbaV1dLCBoclsxXSwgc3JbaV0pXG4gICAgfSBlbHNlIGlmIChpIDwgNDgpIHtcbiAgICAgIHRsID0gZm4zKGFsLCBibCwgY2wsIGRsLCBlbCwgd29yZHNbemxbaV1dLCBobFsyXSwgc2xbaV0pXG4gICAgICB0ciA9IGZuMyhhciwgYnIsIGNyLCBkciwgZXIsIHdvcmRzW3pyW2ldXSwgaHJbMl0sIHNyW2ldKVxuICAgIH0gZWxzZSBpZiAoaSA8IDY0KSB7XG4gICAgICB0bCA9IGZuNChhbCwgYmwsIGNsLCBkbCwgZWwsIHdvcmRzW3psW2ldXSwgaGxbM10sIHNsW2ldKVxuICAgICAgdHIgPSBmbjIoYXIsIGJyLCBjciwgZHIsIGVyLCB3b3Jkc1t6cltpXV0sIGhyWzNdLCBzcltpXSlcbiAgICB9IGVsc2UgeyAvLyBpZiAoaTw4MCkge1xuICAgICAgdGwgPSBmbjUoYWwsIGJsLCBjbCwgZGwsIGVsLCB3b3Jkc1t6bFtpXV0sIGhsWzRdLCBzbFtpXSlcbiAgICAgIHRyID0gZm4xKGFyLCBiciwgY3IsIGRyLCBlciwgd29yZHNbenJbaV1dLCBocls0XSwgc3JbaV0pXG4gICAgfVxuXG4gICAgYWwgPSBlbFxuICAgIGVsID0gZGxcbiAgICBkbCA9IHJvdGwoY2wsIDEwKVxuICAgIGNsID0gYmxcbiAgICBibCA9IHRsXG5cbiAgICBhciA9IGVyXG4gICAgZXIgPSBkclxuICAgIGRyID0gcm90bChjciwgMTApXG4gICAgY3IgPSBiclxuICAgIGJyID0gdHJcbiAgfVxuXG4gIC8vIHVwZGF0ZSBzdGF0ZVxuICB2YXIgdCA9ICh0aGlzLl9iICsgY2wgKyBkcikgfCAwXG4gIHRoaXMuX2IgPSAodGhpcy5fYyArIGRsICsgZXIpIHwgMFxuICB0aGlzLl9jID0gKHRoaXMuX2QgKyBlbCArIGFyKSB8IDBcbiAgdGhpcy5fZCA9ICh0aGlzLl9lICsgYWwgKyBicikgfCAwXG4gIHRoaXMuX2UgPSAodGhpcy5fYSArIGJsICsgY3IpIHwgMFxuICB0aGlzLl9hID0gdFxufVxuXG5SSVBFTUQxNjAucHJvdG90eXBlLl9kaWdlc3QgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIGNyZWF0ZSBwYWRkaW5nIGFuZCBoYW5kbGUgYmxvY2tzXG4gIHRoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdID0gMHg4MFxuICBpZiAodGhpcy5fYmxvY2tPZmZzZXQgPiA1Nikge1xuICAgIHRoaXMuX2Jsb2NrLmZpbGwoMCwgdGhpcy5fYmxvY2tPZmZzZXQsIDY0KVxuICAgIHRoaXMuX3VwZGF0ZSgpXG4gICAgdGhpcy5fYmxvY2tPZmZzZXQgPSAwXG4gIH1cblxuICB0aGlzLl9ibG9jay5maWxsKDAsIHRoaXMuX2Jsb2NrT2Zmc2V0LCA1NilcbiAgdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMF0sIDU2KVxuICB0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSwgNjApXG4gIHRoaXMuX3VwZGF0ZSgpXG5cbiAgLy8gcHJvZHVjZSByZXN1bHRcbiAgdmFyIGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyA/IEJ1ZmZlci5hbGxvYygyMCkgOiBuZXcgQnVmZmVyKDIwKVxuICBidWZmZXIud3JpdGVJbnQzMkxFKHRoaXMuX2EsIDApXG4gIGJ1ZmZlci53cml0ZUludDMyTEUodGhpcy5fYiwgNClcbiAgYnVmZmVyLndyaXRlSW50MzJMRSh0aGlzLl9jLCA4KVxuICBidWZmZXIud3JpdGVJbnQzMkxFKHRoaXMuX2QsIDEyKVxuICBidWZmZXIud3JpdGVJbnQzMkxFKHRoaXMuX2UsIDE2KVxuICByZXR1cm4gYnVmZmVyXG59XG5cbmZ1bmN0aW9uIHJvdGwgKHgsIG4pIHtcbiAgcmV0dXJuICh4IDw8IG4pIHwgKHggPj4+ICgzMiAtIG4pKVxufVxuXG5mdW5jdGlvbiBmbjEgKGEsIGIsIGMsIGQsIGUsIG0sIGssIHMpIHtcbiAgcmV0dXJuIChyb3RsKChhICsgKGIgXiBjIF4gZCkgKyBtICsgaykgfCAwLCBzKSArIGUpIHwgMFxufVxuXG5mdW5jdGlvbiBmbjIgKGEsIGIsIGMsIGQsIGUsIG0sIGssIHMpIHtcbiAgcmV0dXJuIChyb3RsKChhICsgKChiICYgYykgfCAoKH5iKSAmIGQpKSArIG0gKyBrKSB8IDAsIHMpICsgZSkgfCAwXG59XG5cbmZ1bmN0aW9uIGZuMyAoYSwgYiwgYywgZCwgZSwgbSwgaywgcykge1xuICByZXR1cm4gKHJvdGwoKGEgKyAoKGIgfCAofmMpKSBeIGQpICsgbSArIGspIHwgMCwgcykgKyBlKSB8IDBcbn1cblxuZnVuY3Rpb24gZm40IChhLCBiLCBjLCBkLCBlLCBtLCBrLCBzKSB7XG4gIHJldHVybiAocm90bCgoYSArICgoYiAmIGQpIHwgKGMgJiAofmQpKSkgKyBtICsgaykgfCAwLCBzKSArIGUpIHwgMFxufVxuXG5mdW5jdGlvbiBmbjUgKGEsIGIsIGMsIGQsIGUsIG0sIGssIHMpIHtcbiAgcmV0dXJuIChyb3RsKChhICsgKGIgXiAoYyB8ICh+ZCkpKSArIG0gKyBrKSB8IDAsIHMpICsgZSkgfCAwXG59XG5cbm1vZHVsZS5leHBvcnRzID0gUklQRU1EMTYwXG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBub2RlL25vLWRlcHJlY2F0ZWQtYXBpICovXG52YXIgYnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJylcbnZhciBCdWZmZXIgPSBidWZmZXIuQnVmZmVyXG5cbi8vIGFsdGVybmF0aXZlIHRvIHVzaW5nIE9iamVjdC5rZXlzIGZvciBvbGQgYnJvd3NlcnNcbmZ1bmN0aW9uIGNvcHlQcm9wcyAoc3JjLCBkc3QpIHtcbiAgZm9yICh2YXIga2V5IGluIHNyYykge1xuICAgIGRzdFtrZXldID0gc3JjW2tleV1cbiAgfVxufVxuaWYgKEJ1ZmZlci5mcm9tICYmIEJ1ZmZlci5hbGxvYyAmJiBCdWZmZXIuYWxsb2NVbnNhZmUgJiYgQnVmZmVyLmFsbG9jVW5zYWZlU2xvdykge1xuICBtb2R1bGUuZXhwb3J0cyA9IGJ1ZmZlclxufSBlbHNlIHtcbiAgLy8gQ29weSBwcm9wZXJ0aWVzIGZyb20gcmVxdWlyZSgnYnVmZmVyJylcbiAgY29weVByb3BzKGJ1ZmZlciwgZXhwb3J0cylcbiAgZXhwb3J0cy5CdWZmZXIgPSBTYWZlQnVmZmVyXG59XG5cbmZ1bmN0aW9uIFNhZmVCdWZmZXIgKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cbi8vIENvcHkgc3RhdGljIG1ldGhvZHMgZnJvbSBCdWZmZXJcbmNvcHlQcm9wcyhCdWZmZXIsIFNhZmVCdWZmZXIpXG5cblNhZmVCdWZmZXIuZnJvbSA9IGZ1bmN0aW9uIChhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICBpZiAodHlwZW9mIGFyZyA9PT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlcicpXG4gIH1cbiAgcmV0dXJuIEJ1ZmZlcihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuU2FmZUJ1ZmZlci5hbGxvYyA9IGZ1bmN0aW9uIChzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIHNpemUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH1cbiAgdmFyIGJ1ZiA9IEJ1ZmZlcihzaXplKVxuICBpZiAoZmlsbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJ1Zi5maWxsKGZpbGwsIGVuY29kaW5nKVxuICAgIH0gZWxzZSB7XG4gICAgICBidWYuZmlsbChmaWxsKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBidWYuZmlsbCgwKVxuICB9XG4gIHJldHVybiBidWZcbn1cblxuU2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZSA9IGZ1bmN0aW9uIChzaXplKSB7XG4gIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJylcbiAgfVxuICByZXR1cm4gQnVmZmVyKHNpemUpXG59XG5cblNhZmVCdWZmZXIuYWxsb2NVbnNhZmVTbG93ID0gZnVuY3Rpb24gKHNpemUpIHtcbiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKVxuICB9XG4gIHJldHVybiBidWZmZXIuU2xvd0J1ZmZlcihzaXplKVxufVxuIiwidmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbi8vIHByb3RvdHlwZSBjbGFzcyBmb3IgaGFzaCBmdW5jdGlvbnNcbmZ1bmN0aW9uIEhhc2ggKGJsb2NrU2l6ZSwgZmluYWxTaXplKSB7XG4gIHRoaXMuX2Jsb2NrID0gQnVmZmVyLmFsbG9jKGJsb2NrU2l6ZSlcbiAgdGhpcy5fZmluYWxTaXplID0gZmluYWxTaXplXG4gIHRoaXMuX2Jsb2NrU2l6ZSA9IGJsb2NrU2l6ZVxuICB0aGlzLl9sZW4gPSAwXG59XG5cbkhhc2gucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhLCBlbmMpIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgIGVuYyA9IGVuYyB8fCAndXRmOCdcbiAgICBkYXRhID0gQnVmZmVyLmZyb20oZGF0YSwgZW5jKVxuICB9XG5cbiAgdmFyIGJsb2NrID0gdGhpcy5fYmxvY2tcbiAgdmFyIGJsb2NrU2l6ZSA9IHRoaXMuX2Jsb2NrU2l6ZVxuICB2YXIgbGVuZ3RoID0gZGF0YS5sZW5ndGhcbiAgdmFyIGFjY3VtID0gdGhpcy5fbGVuXG5cbiAgZm9yICh2YXIgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgbGVuZ3RoOykge1xuICAgIHZhciBhc3NpZ25lZCA9IGFjY3VtICUgYmxvY2tTaXplXG4gICAgdmFyIHJlbWFpbmRlciA9IE1hdGgubWluKGxlbmd0aCAtIG9mZnNldCwgYmxvY2tTaXplIC0gYXNzaWduZWQpXG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbWFpbmRlcjsgaSsrKSB7XG4gICAgICBibG9ja1thc3NpZ25lZCArIGldID0gZGF0YVtvZmZzZXQgKyBpXVxuICAgIH1cblxuICAgIGFjY3VtICs9IHJlbWFpbmRlclxuICAgIG9mZnNldCArPSByZW1haW5kZXJcblxuICAgIGlmICgoYWNjdW0gJSBibG9ja1NpemUpID09PSAwKSB7XG4gICAgICB0aGlzLl91cGRhdGUoYmxvY2spXG4gICAgfVxuICB9XG5cbiAgdGhpcy5fbGVuICs9IGxlbmd0aFxuICByZXR1cm4gdGhpc1xufVxuXG5IYXNoLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoZW5jKSB7XG4gIHZhciByZW0gPSB0aGlzLl9sZW4gJSB0aGlzLl9ibG9ja1NpemVcblxuICB0aGlzLl9ibG9ja1tyZW1dID0gMHg4MFxuXG4gIC8vIHplcm8gKHJlbSArIDEpIHRyYWlsaW5nIGJpdHMsIHdoZXJlIChyZW0gKyAxKSBpcyB0aGUgc21hbGxlc3RcbiAgLy8gbm9uLW5lZ2F0aXZlIHNvbHV0aW9uIHRvIHRoZSBlcXVhdGlvbiAobGVuZ3RoICsgMSArIChyZW0gKyAxKSkgPT09IGZpbmFsU2l6ZSBtb2QgYmxvY2tTaXplXG4gIHRoaXMuX2Jsb2NrLmZpbGwoMCwgcmVtICsgMSlcblxuICBpZiAocmVtID49IHRoaXMuX2ZpbmFsU2l6ZSkge1xuICAgIHRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jaylcbiAgICB0aGlzLl9ibG9jay5maWxsKDApXG4gIH1cblxuICB2YXIgYml0cyA9IHRoaXMuX2xlbiAqIDhcblxuICAvLyB1aW50MzJcbiAgaWYgKGJpdHMgPD0gMHhmZmZmZmZmZikge1xuICAgIHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoYml0cywgdGhpcy5fYmxvY2tTaXplIC0gNClcblxuICAvLyB1aW50NjRcbiAgfSBlbHNlIHtcbiAgICB2YXIgbG93Qml0cyA9IChiaXRzICYgMHhmZmZmZmZmZikgPj4+IDBcbiAgICB2YXIgaGlnaEJpdHMgPSAoYml0cyAtIGxvd0JpdHMpIC8gMHgxMDAwMDAwMDBcblxuICAgIHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoaGlnaEJpdHMsIHRoaXMuX2Jsb2NrU2l6ZSAtIDgpXG4gICAgdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShsb3dCaXRzLCB0aGlzLl9ibG9ja1NpemUgLSA0KVxuICB9XG5cbiAgdGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKVxuICB2YXIgaGFzaCA9IHRoaXMuX2hhc2goKVxuXG4gIHJldHVybiBlbmMgPyBoYXNoLnRvU3RyaW5nKGVuYykgOiBoYXNoXG59XG5cbkhhc2gucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gIHRocm93IG5ldyBFcnJvcignX3VwZGF0ZSBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzJylcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBIYXNoXG4iLCJ2YXIgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gU0hBIChhbGdvcml0aG0pIHtcbiAgYWxnb3JpdGhtID0gYWxnb3JpdGhtLnRvTG93ZXJDYXNlKClcblxuICB2YXIgQWxnb3JpdGhtID0gZXhwb3J0c1thbGdvcml0aG1dXG4gIGlmICghQWxnb3JpdGhtKSB0aHJvdyBuZXcgRXJyb3IoYWxnb3JpdGhtICsgJyBpcyBub3Qgc3VwcG9ydGVkICh3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cyknKVxuXG4gIHJldHVybiBuZXcgQWxnb3JpdGhtKClcbn1cblxuZXhwb3J0cy5zaGEgPSByZXF1aXJlKCcuL3NoYScpXG5leHBvcnRzLnNoYTEgPSByZXF1aXJlKCcuL3NoYTEnKVxuZXhwb3J0cy5zaGEyMjQgPSByZXF1aXJlKCcuL3NoYTIyNCcpXG5leHBvcnRzLnNoYTI1NiA9IHJlcXVpcmUoJy4vc2hhMjU2JylcbmV4cG9ydHMuc2hhMzg0ID0gcmVxdWlyZSgnLi9zaGEzODQnKVxuZXhwb3J0cy5zaGE1MTIgPSByZXF1aXJlKCcuL3NoYTUxMicpXG4iLCIvKlxuICogQSBKYXZhU2NyaXB0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBTZWN1cmUgSGFzaCBBbGdvcml0aG0sIFNIQS0wLCBhcyBkZWZpbmVkXG4gKiBpbiBGSVBTIFBVQiAxODAtMVxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBkZXJpdmVkIGZyb20gc2hhMS5qcyBvZiB0aGUgc2FtZSByZXBvc2l0b3J5LlxuICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBTSEEtMCBhbmQgU0hBLTEgaXMganVzdCBhIGJpdHdpc2Ugcm90YXRlIGxlZnRcbiAqIG9wZXJhdGlvbiB3YXMgYWRkZWQuXG4gKi9cblxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBLID0gW1xuICAweDVhODI3OTk5LCAweDZlZDllYmExLCAweDhmMWJiY2RjIHwgMCwgMHhjYTYyYzFkNiB8IDBcbl1cblxudmFyIFcgPSBuZXcgQXJyYXkoODApXG5cbmZ1bmN0aW9uIFNoYSAoKSB7XG4gIHRoaXMuaW5pdCgpXG4gIHRoaXMuX3cgPSBXXG5cbiAgSGFzaC5jYWxsKHRoaXMsIDY0LCA1Nilcbn1cblxuaW5oZXJpdHMoU2hhLCBIYXNoKVxuXG5TaGEucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuX2EgPSAweDY3NDUyMzAxXG4gIHRoaXMuX2IgPSAweGVmY2RhYjg5XG4gIHRoaXMuX2MgPSAweDk4YmFkY2ZlXG4gIHRoaXMuX2QgPSAweDEwMzI1NDc2XG4gIHRoaXMuX2UgPSAweGMzZDJlMWYwXG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuZnVuY3Rpb24gcm90bDUgKG51bSkge1xuICByZXR1cm4gKG51bSA8PCA1KSB8IChudW0gPj4+IDI3KVxufVxuXG5mdW5jdGlvbiByb3RsMzAgKG51bSkge1xuICByZXR1cm4gKG51bSA8PCAzMCkgfCAobnVtID4+PiAyKVxufVxuXG5mdW5jdGlvbiBmdCAocywgYiwgYywgZCkge1xuICBpZiAocyA9PT0gMCkgcmV0dXJuIChiICYgYykgfCAoKH5iKSAmIGQpXG4gIGlmIChzID09PSAyKSByZXR1cm4gKGIgJiBjKSB8IChiICYgZCkgfCAoYyAmIGQpXG4gIHJldHVybiBiIF4gYyBeIGRcbn1cblxuU2hhLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKE0pIHtcbiAgdmFyIFcgPSB0aGlzLl93XG5cbiAgdmFyIGEgPSB0aGlzLl9hIHwgMFxuICB2YXIgYiA9IHRoaXMuX2IgfCAwXG4gIHZhciBjID0gdGhpcy5fYyB8IDBcbiAgdmFyIGQgPSB0aGlzLl9kIHwgMFxuICB2YXIgZSA9IHRoaXMuX2UgfCAwXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgKytpKSBXW2ldID0gTS5yZWFkSW50MzJCRShpICogNClcbiAgZm9yICg7IGkgPCA4MDsgKytpKSBXW2ldID0gV1tpIC0gM10gXiBXW2kgLSA4XSBeIFdbaSAtIDE0XSBeIFdbaSAtIDE2XVxuXG4gIGZvciAodmFyIGogPSAwOyBqIDwgODA7ICsraikge1xuICAgIHZhciBzID0gfn4oaiAvIDIwKVxuICAgIHZhciB0ID0gKHJvdGw1KGEpICsgZnQocywgYiwgYywgZCkgKyBlICsgV1tqXSArIEtbc10pIHwgMFxuXG4gICAgZSA9IGRcbiAgICBkID0gY1xuICAgIGMgPSByb3RsMzAoYilcbiAgICBiID0gYVxuICAgIGEgPSB0XG4gIH1cblxuICB0aGlzLl9hID0gKGEgKyB0aGlzLl9hKSB8IDBcbiAgdGhpcy5fYiA9IChiICsgdGhpcy5fYikgfCAwXG4gIHRoaXMuX2MgPSAoYyArIHRoaXMuX2MpIHwgMFxuICB0aGlzLl9kID0gKGQgKyB0aGlzLl9kKSB8IDBcbiAgdGhpcy5fZSA9IChlICsgdGhpcy5fZSkgfCAwXG59XG5cblNoYS5wcm90b3R5cGUuX2hhc2ggPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBIID0gQnVmZmVyLmFsbG9jVW5zYWZlKDIwKVxuXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2EgfCAwLCAwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9iIHwgMCwgNClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fYyB8IDAsIDgpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2QgfCAwLCAxMilcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZSB8IDAsIDE2KVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhXG4iLCIvKlxuICogQSBKYXZhU2NyaXB0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBTZWN1cmUgSGFzaCBBbGdvcml0aG0sIFNIQS0xLCBhcyBkZWZpbmVkXG4gKiBpbiBGSVBTIFBVQiAxODAtMVxuICogVmVyc2lvbiAyLjFhIENvcHlyaWdodCBQYXVsIEpvaG5zdG9uIDIwMDAgLSAyMDAyLlxuICogT3RoZXIgY29udHJpYnV0b3JzOiBHcmVnIEhvbHQsIEFuZHJldyBLZXBlcnQsIFlkbmFyLCBMb3N0aW5ldFxuICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlXG4gKiBTZWUgaHR0cDovL3BhamhvbWUub3JnLnVrL2NyeXB0L21kNSBmb3IgZGV0YWlscy5cbiAqL1xuXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgSGFzaCA9IHJlcXVpcmUoJy4vaGFzaCcpXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcblxudmFyIEsgPSBbXG4gIDB4NWE4Mjc5OTksIDB4NmVkOWViYTEsIDB4OGYxYmJjZGMgfCAwLCAweGNhNjJjMWQ2IHwgMFxuXVxuXG52YXIgVyA9IG5ldyBBcnJheSg4MClcblxuZnVuY3Rpb24gU2hhMSAoKSB7XG4gIHRoaXMuaW5pdCgpXG4gIHRoaXMuX3cgPSBXXG5cbiAgSGFzaC5jYWxsKHRoaXMsIDY0LCA1Nilcbn1cblxuaW5oZXJpdHMoU2hhMSwgSGFzaClcblxuU2hhMS5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5fYSA9IDB4Njc0NTIzMDFcbiAgdGhpcy5fYiA9IDB4ZWZjZGFiODlcbiAgdGhpcy5fYyA9IDB4OThiYWRjZmVcbiAgdGhpcy5fZCA9IDB4MTAzMjU0NzZcbiAgdGhpcy5fZSA9IDB4YzNkMmUxZjBcblxuICByZXR1cm4gdGhpc1xufVxuXG5mdW5jdGlvbiByb3RsMSAobnVtKSB7XG4gIHJldHVybiAobnVtIDw8IDEpIHwgKG51bSA+Pj4gMzEpXG59XG5cbmZ1bmN0aW9uIHJvdGw1IChudW0pIHtcbiAgcmV0dXJuIChudW0gPDwgNSkgfCAobnVtID4+PiAyNylcbn1cblxuZnVuY3Rpb24gcm90bDMwIChudW0pIHtcbiAgcmV0dXJuIChudW0gPDwgMzApIHwgKG51bSA+Pj4gMilcbn1cblxuZnVuY3Rpb24gZnQgKHMsIGIsIGMsIGQpIHtcbiAgaWYgKHMgPT09IDApIHJldHVybiAoYiAmIGMpIHwgKCh+YikgJiBkKVxuICBpZiAocyA9PT0gMikgcmV0dXJuIChiICYgYykgfCAoYiAmIGQpIHwgKGMgJiBkKVxuICByZXR1cm4gYiBeIGMgXiBkXG59XG5cblNoYTEucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoTSkge1xuICB2YXIgVyA9IHRoaXMuX3dcblxuICB2YXIgYSA9IHRoaXMuX2EgfCAwXG4gIHZhciBiID0gdGhpcy5fYiB8IDBcbiAgdmFyIGMgPSB0aGlzLl9jIHwgMFxuICB2YXIgZCA9IHRoaXMuX2QgfCAwXG4gIHZhciBlID0gdGhpcy5fZSB8IDBcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IDE2OyArK2kpIFdbaV0gPSBNLnJlYWRJbnQzMkJFKGkgKiA0KVxuICBmb3IgKDsgaSA8IDgwOyArK2kpIFdbaV0gPSByb3RsMShXW2kgLSAzXSBeIFdbaSAtIDhdIF4gV1tpIC0gMTRdIF4gV1tpIC0gMTZdKVxuXG4gIGZvciAodmFyIGogPSAwOyBqIDwgODA7ICsraikge1xuICAgIHZhciBzID0gfn4oaiAvIDIwKVxuICAgIHZhciB0ID0gKHJvdGw1KGEpICsgZnQocywgYiwgYywgZCkgKyBlICsgV1tqXSArIEtbc10pIHwgMFxuXG4gICAgZSA9IGRcbiAgICBkID0gY1xuICAgIGMgPSByb3RsMzAoYilcbiAgICBiID0gYVxuICAgIGEgPSB0XG4gIH1cblxuICB0aGlzLl9hID0gKGEgKyB0aGlzLl9hKSB8IDBcbiAgdGhpcy5fYiA9IChiICsgdGhpcy5fYikgfCAwXG4gIHRoaXMuX2MgPSAoYyArIHRoaXMuX2MpIHwgMFxuICB0aGlzLl9kID0gKGQgKyB0aGlzLl9kKSB8IDBcbiAgdGhpcy5fZSA9IChlICsgdGhpcy5fZSkgfCAwXG59XG5cblNoYTEucHJvdG90eXBlLl9oYXNoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgSCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgyMClcblxuICBILndyaXRlSW50MzJCRSh0aGlzLl9hIHwgMCwgMClcbiAgSC53cml0ZUludDMyQkUodGhpcy5fYiB8IDAsIDQpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2MgfCAwLCA4KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9kIHwgMCwgMTIpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2UgfCAwLCAxNilcblxuICByZXR1cm4gSFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFNoYTFcbiIsIi8qKlxuICogQSBKYXZhU2NyaXB0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBTZWN1cmUgSGFzaCBBbGdvcml0aG0sIFNIQS0yNTYsIGFzIGRlZmluZWRcbiAqIGluIEZJUFMgMTgwLTJcbiAqIFZlcnNpb24gMi4yLWJldGEgQ29weXJpZ2h0IEFuZ2VsIE1hcmluLCBQYXVsIEpvaG5zdG9uIDIwMDAgLSAyMDA5LlxuICogT3RoZXIgY29udHJpYnV0b3JzOiBHcmVnIEhvbHQsIEFuZHJldyBLZXBlcnQsIFlkbmFyLCBMb3N0aW5ldFxuICpcbiAqL1xuXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgU2hhMjU2ID0gcmVxdWlyZSgnLi9zaGEyNTYnKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBXID0gbmV3IEFycmF5KDY0KVxuXG5mdW5jdGlvbiBTaGEyMjQgKCkge1xuICB0aGlzLmluaXQoKVxuXG4gIHRoaXMuX3cgPSBXIC8vIG5ldyBBcnJheSg2NClcblxuICBIYXNoLmNhbGwodGhpcywgNjQsIDU2KVxufVxuXG5pbmhlcml0cyhTaGEyMjQsIFNoYTI1NilcblxuU2hhMjI0LnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLl9hID0gMHhjMTA1OWVkOFxuICB0aGlzLl9iID0gMHgzNjdjZDUwN1xuICB0aGlzLl9jID0gMHgzMDcwZGQxN1xuICB0aGlzLl9kID0gMHhmNzBlNTkzOVxuICB0aGlzLl9lID0gMHhmZmMwMGIzMVxuICB0aGlzLl9mID0gMHg2ODU4MTUxMVxuICB0aGlzLl9nID0gMHg2NGY5OGZhN1xuICB0aGlzLl9oID0gMHhiZWZhNGZhNFxuXG4gIHJldHVybiB0aGlzXG59XG5cblNoYTIyNC5wcm90b3R5cGUuX2hhc2ggPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBIID0gQnVmZmVyLmFsbG9jVW5zYWZlKDI4KVxuXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2EsIDApXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2IsIDQpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2MsIDgpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2QsIDEyKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9lLCAxNilcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZiwgMjApXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2csIDI0KVxuXG4gIHJldHVybiBIXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hhMjI0XG4iLCIvKipcbiAqIEEgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtLCBTSEEtMjU2LCBhcyBkZWZpbmVkXG4gKiBpbiBGSVBTIDE4MC0yXG4gKiBWZXJzaW9uIDIuMi1iZXRhIENvcHlyaWdodCBBbmdlbCBNYXJpbiwgUGF1bCBKb2huc3RvbiAyMDAwIC0gMjAwOS5cbiAqIE90aGVyIGNvbnRyaWJ1dG9yczogR3JlZyBIb2x0LCBBbmRyZXcgS2VwZXJ0LCBZZG5hciwgTG9zdGluZXRcbiAqXG4gKi9cblxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIEhhc2ggPSByZXF1aXJlKCcuL2hhc2gnKVxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyXG5cbnZhciBLID0gW1xuICAweDQyOEEyRjk4LCAweDcxMzc0NDkxLCAweEI1QzBGQkNGLCAweEU5QjVEQkE1LFxuICAweDM5NTZDMjVCLCAweDU5RjExMUYxLCAweDkyM0Y4MkE0LCAweEFCMUM1RUQ1LFxuICAweEQ4MDdBQTk4LCAweDEyODM1QjAxLCAweDI0MzE4NUJFLCAweDU1MEM3REMzLFxuICAweDcyQkU1RDc0LCAweDgwREVCMUZFLCAweDlCREMwNkE3LCAweEMxOUJGMTc0LFxuICAweEU0OUI2OUMxLCAweEVGQkU0Nzg2LCAweDBGQzE5REM2LCAweDI0MENBMUNDLFxuICAweDJERTkyQzZGLCAweDRBNzQ4NEFBLCAweDVDQjBBOURDLCAweDc2Rjk4OERBLFxuICAweDk4M0U1MTUyLCAweEE4MzFDNjZELCAweEIwMDMyN0M4LCAweEJGNTk3RkM3LFxuICAweEM2RTAwQkYzLCAweEQ1QTc5MTQ3LCAweDA2Q0E2MzUxLCAweDE0MjkyOTY3LFxuICAweDI3QjcwQTg1LCAweDJFMUIyMTM4LCAweDREMkM2REZDLCAweDUzMzgwRDEzLFxuICAweDY1MEE3MzU0LCAweDc2NkEwQUJCLCAweDgxQzJDOTJFLCAweDkyNzIyQzg1LFxuICAweEEyQkZFOEExLCAweEE4MUE2NjRCLCAweEMyNEI4QjcwLCAweEM3NkM1MUEzLFxuICAweEQxOTJFODE5LCAweEQ2OTkwNjI0LCAweEY0MEUzNTg1LCAweDEwNkFBMDcwLFxuICAweDE5QTRDMTE2LCAweDFFMzc2QzA4LCAweDI3NDg3NzRDLCAweDM0QjBCQ0I1LFxuICAweDM5MUMwQ0IzLCAweDRFRDhBQTRBLCAweDVCOUNDQTRGLCAweDY4MkU2RkYzLFxuICAweDc0OEY4MkVFLCAweDc4QTU2MzZGLCAweDg0Qzg3ODE0LCAweDhDQzcwMjA4LFxuICAweDkwQkVGRkZBLCAweEE0NTA2Q0VCLCAweEJFRjlBM0Y3LCAweEM2NzE3OEYyXG5dXG5cbnZhciBXID0gbmV3IEFycmF5KDY0KVxuXG5mdW5jdGlvbiBTaGEyNTYgKCkge1xuICB0aGlzLmluaXQoKVxuXG4gIHRoaXMuX3cgPSBXIC8vIG5ldyBBcnJheSg2NClcblxuICBIYXNoLmNhbGwodGhpcywgNjQsIDU2KVxufVxuXG5pbmhlcml0cyhTaGEyNTYsIEhhc2gpXG5cblNoYTI1Ni5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5fYSA9IDB4NmEwOWU2NjdcbiAgdGhpcy5fYiA9IDB4YmI2N2FlODVcbiAgdGhpcy5fYyA9IDB4M2M2ZWYzNzJcbiAgdGhpcy5fZCA9IDB4YTU0ZmY1M2FcbiAgdGhpcy5fZSA9IDB4NTEwZTUyN2ZcbiAgdGhpcy5fZiA9IDB4OWIwNTY4OGNcbiAgdGhpcy5fZyA9IDB4MWY4M2Q5YWJcbiAgdGhpcy5faCA9IDB4NWJlMGNkMTlcblxuICByZXR1cm4gdGhpc1xufVxuXG5mdW5jdGlvbiBjaCAoeCwgeSwgeikge1xuICByZXR1cm4geiBeICh4ICYgKHkgXiB6KSlcbn1cblxuZnVuY3Rpb24gbWFqICh4LCB5LCB6KSB7XG4gIHJldHVybiAoeCAmIHkpIHwgKHogJiAoeCB8IHkpKVxufVxuXG5mdW5jdGlvbiBzaWdtYTAgKHgpIHtcbiAgcmV0dXJuICh4ID4+PiAyIHwgeCA8PCAzMCkgXiAoeCA+Pj4gMTMgfCB4IDw8IDE5KSBeICh4ID4+PiAyMiB8IHggPDwgMTApXG59XG5cbmZ1bmN0aW9uIHNpZ21hMSAoeCkge1xuICByZXR1cm4gKHggPj4+IDYgfCB4IDw8IDI2KSBeICh4ID4+PiAxMSB8IHggPDwgMjEpIF4gKHggPj4+IDI1IHwgeCA8PCA3KVxufVxuXG5mdW5jdGlvbiBnYW1tYTAgKHgpIHtcbiAgcmV0dXJuICh4ID4+PiA3IHwgeCA8PCAyNSkgXiAoeCA+Pj4gMTggfCB4IDw8IDE0KSBeICh4ID4+PiAzKVxufVxuXG5mdW5jdGlvbiBnYW1tYTEgKHgpIHtcbiAgcmV0dXJuICh4ID4+PiAxNyB8IHggPDwgMTUpIF4gKHggPj4+IDE5IHwgeCA8PCAxMykgXiAoeCA+Pj4gMTApXG59XG5cblNoYTI1Ni5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uIChNKSB7XG4gIHZhciBXID0gdGhpcy5fd1xuXG4gIHZhciBhID0gdGhpcy5fYSB8IDBcbiAgdmFyIGIgPSB0aGlzLl9iIHwgMFxuICB2YXIgYyA9IHRoaXMuX2MgfCAwXG4gIHZhciBkID0gdGhpcy5fZCB8IDBcbiAgdmFyIGUgPSB0aGlzLl9lIHwgMFxuICB2YXIgZiA9IHRoaXMuX2YgfCAwXG4gIHZhciBnID0gdGhpcy5fZyB8IDBcbiAgdmFyIGggPSB0aGlzLl9oIHwgMFxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7ICsraSkgV1tpXSA9IE0ucmVhZEludDMyQkUoaSAqIDQpXG4gIGZvciAoOyBpIDwgNjQ7ICsraSkgV1tpXSA9IChnYW1tYTEoV1tpIC0gMl0pICsgV1tpIC0gN10gKyBnYW1tYTAoV1tpIC0gMTVdKSArIFdbaSAtIDE2XSkgfCAwXG5cbiAgZm9yICh2YXIgaiA9IDA7IGogPCA2NDsgKytqKSB7XG4gICAgdmFyIFQxID0gKGggKyBzaWdtYTEoZSkgKyBjaChlLCBmLCBnKSArIEtbal0gKyBXW2pdKSB8IDBcbiAgICB2YXIgVDIgPSAoc2lnbWEwKGEpICsgbWFqKGEsIGIsIGMpKSB8IDBcblxuICAgIGggPSBnXG4gICAgZyA9IGZcbiAgICBmID0gZVxuICAgIGUgPSAoZCArIFQxKSB8IDBcbiAgICBkID0gY1xuICAgIGMgPSBiXG4gICAgYiA9IGFcbiAgICBhID0gKFQxICsgVDIpIHwgMFxuICB9XG5cbiAgdGhpcy5fYSA9IChhICsgdGhpcy5fYSkgfCAwXG4gIHRoaXMuX2IgPSAoYiArIHRoaXMuX2IpIHwgMFxuICB0aGlzLl9jID0gKGMgKyB0aGlzLl9jKSB8IDBcbiAgdGhpcy5fZCA9IChkICsgdGhpcy5fZCkgfCAwXG4gIHRoaXMuX2UgPSAoZSArIHRoaXMuX2UpIHwgMFxuICB0aGlzLl9mID0gKGYgKyB0aGlzLl9mKSB8IDBcbiAgdGhpcy5fZyA9IChnICsgdGhpcy5fZykgfCAwXG4gIHRoaXMuX2ggPSAoaCArIHRoaXMuX2gpIHwgMFxufVxuXG5TaGEyNTYucHJvdG90eXBlLl9oYXNoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgSCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSgzMilcblxuICBILndyaXRlSW50MzJCRSh0aGlzLl9hLCAwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9iLCA0KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9jLCA4KVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9kLCAxMilcbiAgSC53cml0ZUludDMyQkUodGhpcy5fZSwgMTYpXG4gIEgud3JpdGVJbnQzMkJFKHRoaXMuX2YsIDIwKVxuICBILndyaXRlSW50MzJCRSh0aGlzLl9nLCAyNClcbiAgSC53cml0ZUludDMyQkUodGhpcy5faCwgMjgpXG5cbiAgcmV0dXJuIEhcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTaGEyNTZcbiIsInZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBTSEE1MTIgPSByZXF1aXJlKCcuL3NoYTUxMicpXG52YXIgSGFzaCA9IHJlcXVpcmUoJy4vaGFzaCcpXG52YXIgQnVmZmVyID0gcmVxdWlyZSgnc2FmZS1idWZmZXInKS5CdWZmZXJcblxudmFyIFcgPSBuZXcgQXJyYXkoMTYwKVxuXG5mdW5jdGlvbiBTaGEzODQgKCkge1xuICB0aGlzLmluaXQoKVxuICB0aGlzLl93ID0gV1xuXG4gIEhhc2guY2FsbCh0aGlzLCAxMjgsIDExMilcbn1cblxuaW5oZXJpdHMoU2hhMzg0LCBTSEE1MTIpXG5cblNoYTM4NC5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5fYWggPSAweGNiYmI5ZDVkXG4gIHRoaXMuX2JoID0gMHg2MjlhMjkyYVxuICB0aGlzLl9jaCA9IDB4OTE1OTAxNWFcbiAgdGhpcy5fZGggPSAweDE1MmZlY2Q4XG4gIHRoaXMuX2VoID0gMHg2NzMzMjY2N1xuICB0aGlzLl9maCA9IDB4OGViNDRhODdcbiAgdGhpcy5fZ2ggPSAweGRiMGMyZTBkXG4gIHRoaXMuX2hoID0gMHg0N2I1NDgxZFxuXG4gIHRoaXMuX2FsID0gMHhjMTA1OWVkOFxuICB0aGlzLl9ibCA9IDB4MzY3Y2Q1MDdcbiAgdGhpcy5fY2wgPSAweDMwNzBkZDE3XG4gIHRoaXMuX2RsID0gMHhmNzBlNTkzOVxuICB0aGlzLl9lbCA9IDB4ZmZjMDBiMzFcbiAgdGhpcy5fZmwgPSAweDY4NTgxNTExXG4gIHRoaXMuX2dsID0gMHg2NGY5OGZhN1xuICB0aGlzLl9obCA9IDB4YmVmYTRmYTRcblxuICByZXR1cm4gdGhpc1xufVxuXG5TaGEzODQucHJvdG90eXBlLl9oYXNoID0gZnVuY3Rpb24gKCkge1xuICB2YXIgSCA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSg0OClcblxuICBmdW5jdGlvbiB3cml0ZUludDY0QkUgKGgsIGwsIG9mZnNldCkge1xuICAgIEgud3JpdGVJbnQzMkJFKGgsIG9mZnNldClcbiAgICBILndyaXRlSW50MzJCRShsLCBvZmZzZXQgKyA0KVxuICB9XG5cbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2FoLCB0aGlzLl9hbCwgMClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2JoLCB0aGlzLl9ibCwgOClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2NoLCB0aGlzLl9jbCwgMTYpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9kaCwgdGhpcy5fZGwsIDI0KVxuICB3cml0ZUludDY0QkUodGhpcy5fZWgsIHRoaXMuX2VsLCAzMilcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2ZoLCB0aGlzLl9mbCwgNDApXG5cbiAgcmV0dXJuIEhcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTaGEzODRcbiIsInZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBIYXNoID0gcmVxdWlyZSgnLi9oYXNoJylcbnZhciBCdWZmZXIgPSByZXF1aXJlKCdzYWZlLWJ1ZmZlcicpLkJ1ZmZlclxuXG52YXIgSyA9IFtcbiAgMHg0MjhhMmY5OCwgMHhkNzI4YWUyMiwgMHg3MTM3NDQ5MSwgMHgyM2VmNjVjZCxcbiAgMHhiNWMwZmJjZiwgMHhlYzRkM2IyZiwgMHhlOWI1ZGJhNSwgMHg4MTg5ZGJiYyxcbiAgMHgzOTU2YzI1YiwgMHhmMzQ4YjUzOCwgMHg1OWYxMTFmMSwgMHhiNjA1ZDAxOSxcbiAgMHg5MjNmODJhNCwgMHhhZjE5NGY5YiwgMHhhYjFjNWVkNSwgMHhkYTZkODExOCxcbiAgMHhkODA3YWE5OCwgMHhhMzAzMDI0MiwgMHgxMjgzNWIwMSwgMHg0NTcwNmZiZSxcbiAgMHgyNDMxODViZSwgMHg0ZWU0YjI4YywgMHg1NTBjN2RjMywgMHhkNWZmYjRlMixcbiAgMHg3MmJlNWQ3NCwgMHhmMjdiODk2ZiwgMHg4MGRlYjFmZSwgMHgzYjE2OTZiMSxcbiAgMHg5YmRjMDZhNywgMHgyNWM3MTIzNSwgMHhjMTliZjE3NCwgMHhjZjY5MjY5NCxcbiAgMHhlNDliNjljMSwgMHg5ZWYxNGFkMiwgMHhlZmJlNDc4NiwgMHgzODRmMjVlMyxcbiAgMHgwZmMxOWRjNiwgMHg4YjhjZDViNSwgMHgyNDBjYTFjYywgMHg3N2FjOWM2NSxcbiAgMHgyZGU5MmM2ZiwgMHg1OTJiMDI3NSwgMHg0YTc0ODRhYSwgMHg2ZWE2ZTQ4MyxcbiAgMHg1Y2IwYTlkYywgMHhiZDQxZmJkNCwgMHg3NmY5ODhkYSwgMHg4MzExNTNiNSxcbiAgMHg5ODNlNTE1MiwgMHhlZTY2ZGZhYiwgMHhhODMxYzY2ZCwgMHgyZGI0MzIxMCxcbiAgMHhiMDAzMjdjOCwgMHg5OGZiMjEzZiwgMHhiZjU5N2ZjNywgMHhiZWVmMGVlNCxcbiAgMHhjNmUwMGJmMywgMHgzZGE4OGZjMiwgMHhkNWE3OTE0NywgMHg5MzBhYTcyNSxcbiAgMHgwNmNhNjM1MSwgMHhlMDAzODI2ZiwgMHgxNDI5Mjk2NywgMHgwYTBlNmU3MCxcbiAgMHgyN2I3MGE4NSwgMHg0NmQyMmZmYywgMHgyZTFiMjEzOCwgMHg1YzI2YzkyNixcbiAgMHg0ZDJjNmRmYywgMHg1YWM0MmFlZCwgMHg1MzM4MGQxMywgMHg5ZDk1YjNkZixcbiAgMHg2NTBhNzM1NCwgMHg4YmFmNjNkZSwgMHg3NjZhMGFiYiwgMHgzYzc3YjJhOCxcbiAgMHg4MWMyYzkyZSwgMHg0N2VkYWVlNiwgMHg5MjcyMmM4NSwgMHgxNDgyMzUzYixcbiAgMHhhMmJmZThhMSwgMHg0Y2YxMDM2NCwgMHhhODFhNjY0YiwgMHhiYzQyMzAwMSxcbiAgMHhjMjRiOGI3MCwgMHhkMGY4OTc5MSwgMHhjNzZjNTFhMywgMHgwNjU0YmUzMCxcbiAgMHhkMTkyZTgxOSwgMHhkNmVmNTIxOCwgMHhkNjk5MDYyNCwgMHg1NTY1YTkxMCxcbiAgMHhmNDBlMzU4NSwgMHg1NzcxMjAyYSwgMHgxMDZhYTA3MCwgMHgzMmJiZDFiOCxcbiAgMHgxOWE0YzExNiwgMHhiOGQyZDBjOCwgMHgxZTM3NmMwOCwgMHg1MTQxYWI1MyxcbiAgMHgyNzQ4Nzc0YywgMHhkZjhlZWI5OSwgMHgzNGIwYmNiNSwgMHhlMTliNDhhOCxcbiAgMHgzOTFjMGNiMywgMHhjNWM5NWE2MywgMHg0ZWQ4YWE0YSwgMHhlMzQxOGFjYixcbiAgMHg1YjljY2E0ZiwgMHg3NzYzZTM3MywgMHg2ODJlNmZmMywgMHhkNmIyYjhhMyxcbiAgMHg3NDhmODJlZSwgMHg1ZGVmYjJmYywgMHg3OGE1NjM2ZiwgMHg0MzE3MmY2MCxcbiAgMHg4NGM4NzgxNCwgMHhhMWYwYWI3MiwgMHg4Y2M3MDIwOCwgMHgxYTY0MzllYyxcbiAgMHg5MGJlZmZmYSwgMHgyMzYzMWUyOCwgMHhhNDUwNmNlYiwgMHhkZTgyYmRlOSxcbiAgMHhiZWY5YTNmNywgMHhiMmM2NzkxNSwgMHhjNjcxNzhmMiwgMHhlMzcyNTMyYixcbiAgMHhjYTI3M2VjZSwgMHhlYTI2NjE5YywgMHhkMTg2YjhjNywgMHgyMWMwYzIwNyxcbiAgMHhlYWRhN2RkNiwgMHhjZGUwZWIxZSwgMHhmNTdkNGY3ZiwgMHhlZTZlZDE3OCxcbiAgMHgwNmYwNjdhYSwgMHg3MjE3NmZiYSwgMHgwYTYzN2RjNSwgMHhhMmM4OThhNixcbiAgMHgxMTNmOTgwNCwgMHhiZWY5MGRhZSwgMHgxYjcxMGIzNSwgMHgxMzFjNDcxYixcbiAgMHgyOGRiNzdmNSwgMHgyMzA0N2Q4NCwgMHgzMmNhYWI3YiwgMHg0MGM3MjQ5MyxcbiAgMHgzYzllYmUwYSwgMHgxNWM5YmViYywgMHg0MzFkNjdjNCwgMHg5YzEwMGQ0YyxcbiAgMHg0Y2M1ZDRiZSwgMHhjYjNlNDJiNiwgMHg1OTdmMjk5YywgMHhmYzY1N2UyYSxcbiAgMHg1ZmNiNmZhYiwgMHgzYWQ2ZmFlYywgMHg2YzQ0MTk4YywgMHg0YTQ3NTgxN1xuXVxuXG52YXIgVyA9IG5ldyBBcnJheSgxNjApXG5cbmZ1bmN0aW9uIFNoYTUxMiAoKSB7XG4gIHRoaXMuaW5pdCgpXG4gIHRoaXMuX3cgPSBXXG5cbiAgSGFzaC5jYWxsKHRoaXMsIDEyOCwgMTEyKVxufVxuXG5pbmhlcml0cyhTaGE1MTIsIEhhc2gpXG5cblNoYTUxMi5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5fYWggPSAweDZhMDllNjY3XG4gIHRoaXMuX2JoID0gMHhiYjY3YWU4NVxuICB0aGlzLl9jaCA9IDB4M2M2ZWYzNzJcbiAgdGhpcy5fZGggPSAweGE1NGZmNTNhXG4gIHRoaXMuX2VoID0gMHg1MTBlNTI3ZlxuICB0aGlzLl9maCA9IDB4OWIwNTY4OGNcbiAgdGhpcy5fZ2ggPSAweDFmODNkOWFiXG4gIHRoaXMuX2hoID0gMHg1YmUwY2QxOVxuXG4gIHRoaXMuX2FsID0gMHhmM2JjYzkwOFxuICB0aGlzLl9ibCA9IDB4ODRjYWE3M2JcbiAgdGhpcy5fY2wgPSAweGZlOTRmODJiXG4gIHRoaXMuX2RsID0gMHg1ZjFkMzZmMVxuICB0aGlzLl9lbCA9IDB4YWRlNjgyZDFcbiAgdGhpcy5fZmwgPSAweDJiM2U2YzFmXG4gIHRoaXMuX2dsID0gMHhmYjQxYmQ2YlxuICB0aGlzLl9obCA9IDB4MTM3ZTIxNzlcblxuICByZXR1cm4gdGhpc1xufVxuXG5mdW5jdGlvbiBDaCAoeCwgeSwgeikge1xuICByZXR1cm4geiBeICh4ICYgKHkgXiB6KSlcbn1cblxuZnVuY3Rpb24gbWFqICh4LCB5LCB6KSB7XG4gIHJldHVybiAoeCAmIHkpIHwgKHogJiAoeCB8IHkpKVxufVxuXG5mdW5jdGlvbiBzaWdtYTAgKHgsIHhsKSB7XG4gIHJldHVybiAoeCA+Pj4gMjggfCB4bCA8PCA0KSBeICh4bCA+Pj4gMiB8IHggPDwgMzApIF4gKHhsID4+PiA3IHwgeCA8PCAyNSlcbn1cblxuZnVuY3Rpb24gc2lnbWExICh4LCB4bCkge1xuICByZXR1cm4gKHggPj4+IDE0IHwgeGwgPDwgMTgpIF4gKHggPj4+IDE4IHwgeGwgPDwgMTQpIF4gKHhsID4+PiA5IHwgeCA8PCAyMylcbn1cblxuZnVuY3Rpb24gR2FtbWEwICh4LCB4bCkge1xuICByZXR1cm4gKHggPj4+IDEgfCB4bCA8PCAzMSkgXiAoeCA+Pj4gOCB8IHhsIDw8IDI0KSBeICh4ID4+PiA3KVxufVxuXG5mdW5jdGlvbiBHYW1tYTBsICh4LCB4bCkge1xuICByZXR1cm4gKHggPj4+IDEgfCB4bCA8PCAzMSkgXiAoeCA+Pj4gOCB8IHhsIDw8IDI0KSBeICh4ID4+PiA3IHwgeGwgPDwgMjUpXG59XG5cbmZ1bmN0aW9uIEdhbW1hMSAoeCwgeGwpIHtcbiAgcmV0dXJuICh4ID4+PiAxOSB8IHhsIDw8IDEzKSBeICh4bCA+Pj4gMjkgfCB4IDw8IDMpIF4gKHggPj4+IDYpXG59XG5cbmZ1bmN0aW9uIEdhbW1hMWwgKHgsIHhsKSB7XG4gIHJldHVybiAoeCA+Pj4gMTkgfCB4bCA8PCAxMykgXiAoeGwgPj4+IDI5IHwgeCA8PCAzKSBeICh4ID4+PiA2IHwgeGwgPDwgMjYpXG59XG5cbmZ1bmN0aW9uIGdldENhcnJ5IChhLCBiKSB7XG4gIHJldHVybiAoYSA+Pj4gMCkgPCAoYiA+Pj4gMCkgPyAxIDogMFxufVxuXG5TaGE1MTIucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAoTSkge1xuICB2YXIgVyA9IHRoaXMuX3dcblxuICB2YXIgYWggPSB0aGlzLl9haCB8IDBcbiAgdmFyIGJoID0gdGhpcy5fYmggfCAwXG4gIHZhciBjaCA9IHRoaXMuX2NoIHwgMFxuICB2YXIgZGggPSB0aGlzLl9kaCB8IDBcbiAgdmFyIGVoID0gdGhpcy5fZWggfCAwXG4gIHZhciBmaCA9IHRoaXMuX2ZoIHwgMFxuICB2YXIgZ2ggPSB0aGlzLl9naCB8IDBcbiAgdmFyIGhoID0gdGhpcy5faGggfCAwXG5cbiAgdmFyIGFsID0gdGhpcy5fYWwgfCAwXG4gIHZhciBibCA9IHRoaXMuX2JsIHwgMFxuICB2YXIgY2wgPSB0aGlzLl9jbCB8IDBcbiAgdmFyIGRsID0gdGhpcy5fZGwgfCAwXG4gIHZhciBlbCA9IHRoaXMuX2VsIHwgMFxuICB2YXIgZmwgPSB0aGlzLl9mbCB8IDBcbiAgdmFyIGdsID0gdGhpcy5fZ2wgfCAwXG4gIHZhciBobCA9IHRoaXMuX2hsIHwgMFxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgMzI7IGkgKz0gMikge1xuICAgIFdbaV0gPSBNLnJlYWRJbnQzMkJFKGkgKiA0KVxuICAgIFdbaSArIDFdID0gTS5yZWFkSW50MzJCRShpICogNCArIDQpXG4gIH1cbiAgZm9yICg7IGkgPCAxNjA7IGkgKz0gMikge1xuICAgIHZhciB4aCA9IFdbaSAtIDE1ICogMl1cbiAgICB2YXIgeGwgPSBXW2kgLSAxNSAqIDIgKyAxXVxuICAgIHZhciBnYW1tYTAgPSBHYW1tYTAoeGgsIHhsKVxuICAgIHZhciBnYW1tYTBsID0gR2FtbWEwbCh4bCwgeGgpXG5cbiAgICB4aCA9IFdbaSAtIDIgKiAyXVxuICAgIHhsID0gV1tpIC0gMiAqIDIgKyAxXVxuICAgIHZhciBnYW1tYTEgPSBHYW1tYTEoeGgsIHhsKVxuICAgIHZhciBnYW1tYTFsID0gR2FtbWExbCh4bCwgeGgpXG5cbiAgICAvLyBXW2ldID0gZ2FtbWEwICsgV1tpIC0gN10gKyBnYW1tYTEgKyBXW2kgLSAxNl1cbiAgICB2YXIgV2k3aCA9IFdbaSAtIDcgKiAyXVxuICAgIHZhciBXaTdsID0gV1tpIC0gNyAqIDIgKyAxXVxuXG4gICAgdmFyIFdpMTZoID0gV1tpIC0gMTYgKiAyXVxuICAgIHZhciBXaTE2bCA9IFdbaSAtIDE2ICogMiArIDFdXG5cbiAgICB2YXIgV2lsID0gKGdhbW1hMGwgKyBXaTdsKSB8IDBcbiAgICB2YXIgV2loID0gKGdhbW1hMCArIFdpN2ggKyBnZXRDYXJyeShXaWwsIGdhbW1hMGwpKSB8IDBcbiAgICBXaWwgPSAoV2lsICsgZ2FtbWExbCkgfCAwXG4gICAgV2loID0gKFdpaCArIGdhbW1hMSArIGdldENhcnJ5KFdpbCwgZ2FtbWExbCkpIHwgMFxuICAgIFdpbCA9IChXaWwgKyBXaTE2bCkgfCAwXG4gICAgV2loID0gKFdpaCArIFdpMTZoICsgZ2V0Q2FycnkoV2lsLCBXaTE2bCkpIHwgMFxuXG4gICAgV1tpXSA9IFdpaFxuICAgIFdbaSArIDFdID0gV2lsXG4gIH1cblxuICBmb3IgKHZhciBqID0gMDsgaiA8IDE2MDsgaiArPSAyKSB7XG4gICAgV2loID0gV1tqXVxuICAgIFdpbCA9IFdbaiArIDFdXG5cbiAgICB2YXIgbWFqaCA9IG1haihhaCwgYmgsIGNoKVxuICAgIHZhciBtYWpsID0gbWFqKGFsLCBibCwgY2wpXG5cbiAgICB2YXIgc2lnbWEwaCA9IHNpZ21hMChhaCwgYWwpXG4gICAgdmFyIHNpZ21hMGwgPSBzaWdtYTAoYWwsIGFoKVxuICAgIHZhciBzaWdtYTFoID0gc2lnbWExKGVoLCBlbClcbiAgICB2YXIgc2lnbWExbCA9IHNpZ21hMShlbCwgZWgpXG5cbiAgICAvLyB0MSA9IGggKyBzaWdtYTEgKyBjaCArIEtbal0gKyBXW2pdXG4gICAgdmFyIEtpaCA9IEtbal1cbiAgICB2YXIgS2lsID0gS1tqICsgMV1cblxuICAgIHZhciBjaGggPSBDaChlaCwgZmgsIGdoKVxuICAgIHZhciBjaGwgPSBDaChlbCwgZmwsIGdsKVxuXG4gICAgdmFyIHQxbCA9IChobCArIHNpZ21hMWwpIHwgMFxuICAgIHZhciB0MWggPSAoaGggKyBzaWdtYTFoICsgZ2V0Q2FycnkodDFsLCBobCkpIHwgMFxuICAgIHQxbCA9ICh0MWwgKyBjaGwpIHwgMFxuICAgIHQxaCA9ICh0MWggKyBjaGggKyBnZXRDYXJyeSh0MWwsIGNobCkpIHwgMFxuICAgIHQxbCA9ICh0MWwgKyBLaWwpIHwgMFxuICAgIHQxaCA9ICh0MWggKyBLaWggKyBnZXRDYXJyeSh0MWwsIEtpbCkpIHwgMFxuICAgIHQxbCA9ICh0MWwgKyBXaWwpIHwgMFxuICAgIHQxaCA9ICh0MWggKyBXaWggKyBnZXRDYXJyeSh0MWwsIFdpbCkpIHwgMFxuXG4gICAgLy8gdDIgPSBzaWdtYTAgKyBtYWpcbiAgICB2YXIgdDJsID0gKHNpZ21hMGwgKyBtYWpsKSB8IDBcbiAgICB2YXIgdDJoID0gKHNpZ21hMGggKyBtYWpoICsgZ2V0Q2FycnkodDJsLCBzaWdtYTBsKSkgfCAwXG5cbiAgICBoaCA9IGdoXG4gICAgaGwgPSBnbFxuICAgIGdoID0gZmhcbiAgICBnbCA9IGZsXG4gICAgZmggPSBlaFxuICAgIGZsID0gZWxcbiAgICBlbCA9IChkbCArIHQxbCkgfCAwXG4gICAgZWggPSAoZGggKyB0MWggKyBnZXRDYXJyeShlbCwgZGwpKSB8IDBcbiAgICBkaCA9IGNoXG4gICAgZGwgPSBjbFxuICAgIGNoID0gYmhcbiAgICBjbCA9IGJsXG4gICAgYmggPSBhaFxuICAgIGJsID0gYWxcbiAgICBhbCA9ICh0MWwgKyB0MmwpIHwgMFxuICAgIGFoID0gKHQxaCArIHQyaCArIGdldENhcnJ5KGFsLCB0MWwpKSB8IDBcbiAgfVxuXG4gIHRoaXMuX2FsID0gKHRoaXMuX2FsICsgYWwpIHwgMFxuICB0aGlzLl9ibCA9ICh0aGlzLl9ibCArIGJsKSB8IDBcbiAgdGhpcy5fY2wgPSAodGhpcy5fY2wgKyBjbCkgfCAwXG4gIHRoaXMuX2RsID0gKHRoaXMuX2RsICsgZGwpIHwgMFxuICB0aGlzLl9lbCA9ICh0aGlzLl9lbCArIGVsKSB8IDBcbiAgdGhpcy5fZmwgPSAodGhpcy5fZmwgKyBmbCkgfCAwXG4gIHRoaXMuX2dsID0gKHRoaXMuX2dsICsgZ2wpIHwgMFxuICB0aGlzLl9obCA9ICh0aGlzLl9obCArIGhsKSB8IDBcblxuICB0aGlzLl9haCA9ICh0aGlzLl9haCArIGFoICsgZ2V0Q2FycnkodGhpcy5fYWwsIGFsKSkgfCAwXG4gIHRoaXMuX2JoID0gKHRoaXMuX2JoICsgYmggKyBnZXRDYXJyeSh0aGlzLl9ibCwgYmwpKSB8IDBcbiAgdGhpcy5fY2ggPSAodGhpcy5fY2ggKyBjaCArIGdldENhcnJ5KHRoaXMuX2NsLCBjbCkpIHwgMFxuICB0aGlzLl9kaCA9ICh0aGlzLl9kaCArIGRoICsgZ2V0Q2FycnkodGhpcy5fZGwsIGRsKSkgfCAwXG4gIHRoaXMuX2VoID0gKHRoaXMuX2VoICsgZWggKyBnZXRDYXJyeSh0aGlzLl9lbCwgZWwpKSB8IDBcbiAgdGhpcy5fZmggPSAodGhpcy5fZmggKyBmaCArIGdldENhcnJ5KHRoaXMuX2ZsLCBmbCkpIHwgMFxuICB0aGlzLl9naCA9ICh0aGlzLl9naCArIGdoICsgZ2V0Q2FycnkodGhpcy5fZ2wsIGdsKSkgfCAwXG4gIHRoaXMuX2hoID0gKHRoaXMuX2hoICsgaGggKyBnZXRDYXJyeSh0aGlzLl9obCwgaGwpKSB8IDBcbn1cblxuU2hhNTEyLnByb3RvdHlwZS5faGFzaCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIEggPSBCdWZmZXIuYWxsb2NVbnNhZmUoNjQpXG5cbiAgZnVuY3Rpb24gd3JpdGVJbnQ2NEJFIChoLCBsLCBvZmZzZXQpIHtcbiAgICBILndyaXRlSW50MzJCRShoLCBvZmZzZXQpXG4gICAgSC53cml0ZUludDMyQkUobCwgb2Zmc2V0ICsgNClcbiAgfVxuXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9haCwgdGhpcy5fYWwsIDApXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9iaCwgdGhpcy5fYmwsIDgpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9jaCwgdGhpcy5fY2wsIDE2KVxuICB3cml0ZUludDY0QkUodGhpcy5fZGgsIHRoaXMuX2RsLCAyNClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2VoLCB0aGlzLl9lbCwgMzIpXG4gIHdyaXRlSW50NjRCRSh0aGlzLl9maCwgdGhpcy5fZmwsIDQwKVxuICB3cml0ZUludDY0QkUodGhpcy5fZ2gsIHRoaXMuX2dsLCA0OClcbiAgd3JpdGVJbnQ2NEJFKHRoaXMuX2hoLCB0aGlzLl9obCwgNTYpXG5cbiAgcmV0dXJuIEhcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTaGE1MTJcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmVhbTtcblxudmFyIEVFID0gcmVxdWlyZSgnZXZlbnRzJykuRXZlbnRFbWl0dGVyO1xudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKTtcblxuaW5oZXJpdHMoU3RyZWFtLCBFRSk7XG5TdHJlYW0uUmVhZGFibGUgPSByZXF1aXJlKCdyZWFkYWJsZS1zdHJlYW0vcmVhZGFibGUuanMnKTtcblN0cmVhbS5Xcml0YWJsZSA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbS93cml0YWJsZS5qcycpO1xuU3RyZWFtLkR1cGxleCA9IHJlcXVpcmUoJ3JlYWRhYmxlLXN0cmVhbS9kdXBsZXguanMnKTtcblN0cmVhbS5UcmFuc2Zvcm0gPSByZXF1aXJlKCdyZWFkYWJsZS1zdHJlYW0vdHJhbnNmb3JtLmpzJyk7XG5TdHJlYW0uUGFzc1Rocm91Z2ggPSByZXF1aXJlKCdyZWFkYWJsZS1zdHJlYW0vcGFzc3Rocm91Z2guanMnKTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC40LnhcblN0cmVhbS5TdHJlYW0gPSBTdHJlYW07XG5cblxuXG4vLyBvbGQtc3R5bGUgc3RyZWFtcy4gIE5vdGUgdGhhdCB0aGUgcGlwZSBtZXRob2QgKHRoZSBvbmx5IHJlbGV2YW50XG4vLyBwYXJ0IG9mIHRoaXMgY2xhc3MpIGlzIG92ZXJyaWRkZW4gaW4gdGhlIFJlYWRhYmxlIGNsYXNzLlxuXG5mdW5jdGlvbiBTdHJlYW0oKSB7XG4gIEVFLmNhbGwodGhpcyk7XG59XG5cblN0cmVhbS5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uKGRlc3QsIG9wdGlvbnMpIHtcbiAgdmFyIHNvdXJjZSA9IHRoaXM7XG5cbiAgZnVuY3Rpb24gb25kYXRhKGNodW5rKSB7XG4gICAgaWYgKGRlc3Qud3JpdGFibGUpIHtcbiAgICAgIGlmIChmYWxzZSA9PT0gZGVzdC53cml0ZShjaHVuaykgJiYgc291cmNlLnBhdXNlKSB7XG4gICAgICAgIHNvdXJjZS5wYXVzZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNvdXJjZS5vbignZGF0YScsIG9uZGF0YSk7XG5cbiAgZnVuY3Rpb24gb25kcmFpbigpIHtcbiAgICBpZiAoc291cmNlLnJlYWRhYmxlICYmIHNvdXJjZS5yZXN1bWUpIHtcbiAgICAgIHNvdXJjZS5yZXN1bWUoKTtcbiAgICB9XG4gIH1cblxuICBkZXN0Lm9uKCdkcmFpbicsIG9uZHJhaW4pO1xuXG4gIC8vIElmIHRoZSAnZW5kJyBvcHRpb24gaXMgbm90IHN1cHBsaWVkLCBkZXN0LmVuZCgpIHdpbGwgYmUgY2FsbGVkIHdoZW5cbiAgLy8gc291cmNlIGdldHMgdGhlICdlbmQnIG9yICdjbG9zZScgZXZlbnRzLiAgT25seSBkZXN0LmVuZCgpIG9uY2UuXG4gIGlmICghZGVzdC5faXNTdGRpbyAmJiAoIW9wdGlvbnMgfHwgb3B0aW9ucy5lbmQgIT09IGZhbHNlKSkge1xuICAgIHNvdXJjZS5vbignZW5kJywgb25lbmQpO1xuICAgIHNvdXJjZS5vbignY2xvc2UnLCBvbmNsb3NlKTtcbiAgfVxuXG4gIHZhciBkaWRPbkVuZCA9IGZhbHNlO1xuICBmdW5jdGlvbiBvbmVuZCgpIHtcbiAgICBpZiAoZGlkT25FbmQpIHJldHVybjtcbiAgICBkaWRPbkVuZCA9IHRydWU7XG5cbiAgICBkZXN0LmVuZCgpO1xuICB9XG5cblxuICBmdW5jdGlvbiBvbmNsb3NlKCkge1xuICAgIGlmIChkaWRPbkVuZCkgcmV0dXJuO1xuICAgIGRpZE9uRW5kID0gdHJ1ZTtcblxuICAgIGlmICh0eXBlb2YgZGVzdC5kZXN0cm95ID09PSAnZnVuY3Rpb24nKSBkZXN0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8vIGRvbid0IGxlYXZlIGRhbmdsaW5nIHBpcGVzIHdoZW4gdGhlcmUgYXJlIGVycm9ycy5cbiAgZnVuY3Rpb24gb25lcnJvcihlcikge1xuICAgIGNsZWFudXAoKTtcbiAgICBpZiAoRUUubGlzdGVuZXJDb3VudCh0aGlzLCAnZXJyb3InKSA9PT0gMCkge1xuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCBzdHJlYW0gZXJyb3IgaW4gcGlwZS5cbiAgICB9XG4gIH1cblxuICBzb3VyY2Uub24oJ2Vycm9yJywgb25lcnJvcik7XG4gIGRlc3Qub24oJ2Vycm9yJywgb25lcnJvcik7XG5cbiAgLy8gcmVtb3ZlIGFsbCB0aGUgZXZlbnQgbGlzdGVuZXJzIHRoYXQgd2VyZSBhZGRlZC5cbiAgZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2RhdGEnLCBvbmRhdGEpO1xuICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2RyYWluJywgb25kcmFpbik7XG5cbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIG9uZW5kKTtcbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2Nsb3NlJywgb25jbG9zZSk7XG5cbiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25lcnJvcik7XG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbmVycm9yKTtcblxuICAgIHNvdXJjZS5yZW1vdmVMaXN0ZW5lcignZW5kJywgY2xlYW51cCk7XG4gICAgc291cmNlLnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIGNsZWFudXApO1xuXG4gICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBjbGVhbnVwKTtcbiAgfVxuXG4gIHNvdXJjZS5vbignZW5kJywgY2xlYW51cCk7XG4gIHNvdXJjZS5vbignY2xvc2UnLCBjbGVhbnVwKTtcblxuICBkZXN0Lm9uKCdjbG9zZScsIGNsZWFudXApO1xuXG4gIGRlc3QuZW1pdCgncGlwZScsIHNvdXJjZSk7XG5cbiAgLy8gQWxsb3cgZm9yIHVuaXgtbGlrZSB1c2FnZTogQS5waXBlKEIpLnBpcGUoQylcbiAgcmV0dXJuIGRlc3Q7XG59O1xuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxuLyo8cmVwbGFjZW1lbnQ+Ki9cblxudmFyIEJ1ZmZlciA9IHJlcXVpcmUoJ3NhZmUtYnVmZmVyJykuQnVmZmVyO1xuLyo8L3JlcGxhY2VtZW50PiovXG5cbnZhciBpc0VuY29kaW5nID0gQnVmZmVyLmlzRW5jb2RpbmcgfHwgZnVuY3Rpb24gKGVuY29kaW5nKSB7XG4gIGVuY29kaW5nID0gJycgKyBlbmNvZGluZztcbiAgc3dpdGNoIChlbmNvZGluZyAmJiBlbmNvZGluZy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnaGV4JzpjYXNlICd1dGY4JzpjYXNlICd1dGYtOCc6Y2FzZSAnYXNjaWknOmNhc2UgJ2JpbmFyeSc6Y2FzZSAnYmFzZTY0JzpjYXNlICd1Y3MyJzpjYXNlICd1Y3MtMic6Y2FzZSAndXRmMTZsZSc6Y2FzZSAndXRmLTE2bGUnOmNhc2UgJ3Jhdyc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG5mdW5jdGlvbiBfbm9ybWFsaXplRW5jb2RpbmcoZW5jKSB7XG4gIGlmICghZW5jKSByZXR1cm4gJ3V0ZjgnO1xuICB2YXIgcmV0cmllZDtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBzd2l0Y2ggKGVuYykge1xuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiAndXRmOCc7XG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gJ3V0ZjE2bGUnO1xuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiAnbGF0aW4xJztcbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gZW5jO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKHJldHJpZWQpIHJldHVybjsgLy8gdW5kZWZpbmVkXG4gICAgICAgIGVuYyA9ICgnJyArIGVuYykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0cmllZCA9IHRydWU7XG4gICAgfVxuICB9XG59O1xuXG4vLyBEbyBub3QgY2FjaGUgYEJ1ZmZlci5pc0VuY29kaW5nYCB3aGVuIGNoZWNraW5nIGVuY29kaW5nIG5hbWVzIGFzIHNvbWVcbi8vIG1vZHVsZXMgbW9ua2V5LXBhdGNoIGl0IHRvIHN1cHBvcnQgYWRkaXRpb25hbCBlbmNvZGluZ3NcbmZ1bmN0aW9uIG5vcm1hbGl6ZUVuY29kaW5nKGVuYykge1xuICB2YXIgbmVuYyA9IF9ub3JtYWxpemVFbmNvZGluZyhlbmMpO1xuICBpZiAodHlwZW9mIG5lbmMgIT09ICdzdHJpbmcnICYmIChCdWZmZXIuaXNFbmNvZGluZyA9PT0gaXNFbmNvZGluZyB8fCAhaXNFbmNvZGluZyhlbmMpKSkgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jKTtcbiAgcmV0dXJuIG5lbmMgfHwgZW5jO1xufVxuXG4vLyBTdHJpbmdEZWNvZGVyIHByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgZWZmaWNpZW50bHkgc3BsaXR0aW5nIGEgc2VyaWVzIG9mXG4vLyBidWZmZXJzIGludG8gYSBzZXJpZXMgb2YgSlMgc3RyaW5ncyB3aXRob3V0IGJyZWFraW5nIGFwYXJ0IG11bHRpLWJ5dGVcbi8vIGNoYXJhY3RlcnMuXG5leHBvcnRzLlN0cmluZ0RlY29kZXIgPSBTdHJpbmdEZWNvZGVyO1xuZnVuY3Rpb24gU3RyaW5nRGVjb2RlcihlbmNvZGluZykge1xuICB0aGlzLmVuY29kaW5nID0gbm9ybWFsaXplRW5jb2RpbmcoZW5jb2RpbmcpO1xuICB2YXIgbmI7XG4gIHN3aXRjaCAodGhpcy5lbmNvZGluZykge1xuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgdGhpcy50ZXh0ID0gdXRmMTZUZXh0O1xuICAgICAgdGhpcy5lbmQgPSB1dGYxNkVuZDtcbiAgICAgIG5iID0gNDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgdGhpcy5maWxsTGFzdCA9IHV0ZjhGaWxsTGFzdDtcbiAgICAgIG5iID0gNDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICB0aGlzLnRleHQgPSBiYXNlNjRUZXh0O1xuICAgICAgdGhpcy5lbmQgPSBiYXNlNjRFbmQ7XG4gICAgICBuYiA9IDM7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhpcy53cml0ZSA9IHNpbXBsZVdyaXRlO1xuICAgICAgdGhpcy5lbmQgPSBzaW1wbGVFbmQ7XG4gICAgICByZXR1cm47XG4gIH1cbiAgdGhpcy5sYXN0TmVlZCA9IDA7XG4gIHRoaXMubGFzdFRvdGFsID0gMDtcbiAgdGhpcy5sYXN0Q2hhciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShuYik7XG59XG5cblN0cmluZ0RlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gKGJ1Zikge1xuICBpZiAoYnVmLmxlbmd0aCA9PT0gMCkgcmV0dXJuICcnO1xuICB2YXIgcjtcbiAgdmFyIGk7XG4gIGlmICh0aGlzLmxhc3ROZWVkKSB7XG4gICAgciA9IHRoaXMuZmlsbExhc3QoYnVmKTtcbiAgICBpZiAociA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJyc7XG4gICAgaSA9IHRoaXMubGFzdE5lZWQ7XG4gICAgdGhpcy5sYXN0TmVlZCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgaSA9IDA7XG4gIH1cbiAgaWYgKGkgPCBidWYubGVuZ3RoKSByZXR1cm4gciA/IHIgKyB0aGlzLnRleHQoYnVmLCBpKSA6IHRoaXMudGV4dChidWYsIGkpO1xuICByZXR1cm4gciB8fCAnJztcbn07XG5cblN0cmluZ0RlY29kZXIucHJvdG90eXBlLmVuZCA9IHV0ZjhFbmQ7XG5cbi8vIFJldHVybnMgb25seSBjb21wbGV0ZSBjaGFyYWN0ZXJzIGluIGEgQnVmZmVyXG5TdHJpbmdEZWNvZGVyLnByb3RvdHlwZS50ZXh0ID0gdXRmOFRleHQ7XG5cbi8vIEF0dGVtcHRzIHRvIGNvbXBsZXRlIGEgcGFydGlhbCBub24tVVRGLTggY2hhcmFjdGVyIHVzaW5nIGJ5dGVzIGZyb20gYSBCdWZmZXJcblN0cmluZ0RlY29kZXIucHJvdG90eXBlLmZpbGxMYXN0ID0gZnVuY3Rpb24gKGJ1Zikge1xuICBpZiAodGhpcy5sYXN0TmVlZCA8PSBidWYubGVuZ3RoKSB7XG4gICAgYnVmLmNvcHkodGhpcy5sYXN0Q2hhciwgdGhpcy5sYXN0VG90YWwgLSB0aGlzLmxhc3ROZWVkLCAwLCB0aGlzLmxhc3ROZWVkKTtcbiAgICByZXR1cm4gdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLCAwLCB0aGlzLmxhc3RUb3RhbCk7XG4gIH1cbiAgYnVmLmNvcHkodGhpcy5sYXN0Q2hhciwgdGhpcy5sYXN0VG90YWwgLSB0aGlzLmxhc3ROZWVkLCAwLCBidWYubGVuZ3RoKTtcbiAgdGhpcy5sYXN0TmVlZCAtPSBidWYubGVuZ3RoO1xufTtcblxuLy8gQ2hlY2tzIHRoZSB0eXBlIG9mIGEgVVRGLTggYnl0ZSwgd2hldGhlciBpdCdzIEFTQ0lJLCBhIGxlYWRpbmcgYnl0ZSwgb3IgYVxuLy8gY29udGludWF0aW9uIGJ5dGUuIElmIGFuIGludmFsaWQgYnl0ZSBpcyBkZXRlY3RlZCwgLTIgaXMgcmV0dXJuZWQuXG5mdW5jdGlvbiB1dGY4Q2hlY2tCeXRlKGJ5dGUpIHtcbiAgaWYgKGJ5dGUgPD0gMHg3RikgcmV0dXJuIDA7ZWxzZSBpZiAoYnl0ZSA+PiA1ID09PSAweDA2KSByZXR1cm4gMjtlbHNlIGlmIChieXRlID4+IDQgPT09IDB4MEUpIHJldHVybiAzO2Vsc2UgaWYgKGJ5dGUgPj4gMyA9PT0gMHgxRSkgcmV0dXJuIDQ7XG4gIHJldHVybiBieXRlID4+IDYgPT09IDB4MDIgPyAtMSA6IC0yO1xufVxuXG4vLyBDaGVja3MgYXQgbW9zdCAzIGJ5dGVzIGF0IHRoZSBlbmQgb2YgYSBCdWZmZXIgaW4gb3JkZXIgdG8gZGV0ZWN0IGFuXG4vLyBpbmNvbXBsZXRlIG11bHRpLWJ5dGUgVVRGLTggY2hhcmFjdGVyLiBUaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzICgyLCAzLCBvciA0KVxuLy8gbmVlZGVkIHRvIGNvbXBsZXRlIHRoZSBVVEYtOCBjaGFyYWN0ZXIgKGlmIGFwcGxpY2FibGUpIGFyZSByZXR1cm5lZC5cbmZ1bmN0aW9uIHV0ZjhDaGVja0luY29tcGxldGUoc2VsZiwgYnVmLCBpKSB7XG4gIHZhciBqID0gYnVmLmxlbmd0aCAtIDE7XG4gIGlmIChqIDwgaSkgcmV0dXJuIDA7XG4gIHZhciBuYiA9IHV0ZjhDaGVja0J5dGUoYnVmW2pdKTtcbiAgaWYgKG5iID49IDApIHtcbiAgICBpZiAobmIgPiAwKSBzZWxmLmxhc3ROZWVkID0gbmIgLSAxO1xuICAgIHJldHVybiBuYjtcbiAgfVxuICBpZiAoLS1qIDwgaSB8fCBuYiA9PT0gLTIpIHJldHVybiAwO1xuICBuYiA9IHV0ZjhDaGVja0J5dGUoYnVmW2pdKTtcbiAgaWYgKG5iID49IDApIHtcbiAgICBpZiAobmIgPiAwKSBzZWxmLmxhc3ROZWVkID0gbmIgLSAyO1xuICAgIHJldHVybiBuYjtcbiAgfVxuICBpZiAoLS1qIDwgaSB8fCBuYiA9PT0gLTIpIHJldHVybiAwO1xuICBuYiA9IHV0ZjhDaGVja0J5dGUoYnVmW2pdKTtcbiAgaWYgKG5iID49IDApIHtcbiAgICBpZiAobmIgPiAwKSB7XG4gICAgICBpZiAobmIgPT09IDIpIG5iID0gMDtlbHNlIHNlbGYubGFzdE5lZWQgPSBuYiAtIDM7XG4gICAgfVxuICAgIHJldHVybiBuYjtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy8gVmFsaWRhdGVzIGFzIG1hbnkgY29udGludWF0aW9uIGJ5dGVzIGZvciBhIG11bHRpLWJ5dGUgVVRGLTggY2hhcmFjdGVyIGFzXG4vLyBuZWVkZWQgb3IgYXJlIGF2YWlsYWJsZS4gSWYgd2Ugc2VlIGEgbm9uLWNvbnRpbnVhdGlvbiBieXRlIHdoZXJlIHdlIGV4cGVjdFxuLy8gb25lLCB3ZSBcInJlcGxhY2VcIiB0aGUgdmFsaWRhdGVkIGNvbnRpbnVhdGlvbiBieXRlcyB3ZSd2ZSBzZWVuIHNvIGZhciB3aXRoXG4vLyBhIHNpbmdsZSBVVEYtOCByZXBsYWNlbWVudCBjaGFyYWN0ZXIgKCdcXHVmZmZkJyksIHRvIG1hdGNoIHY4J3MgVVRGLTggZGVjb2Rpbmdcbi8vIGJlaGF2aW9yLiBUaGUgY29udGludWF0aW9uIGJ5dGUgY2hlY2sgaXMgaW5jbHVkZWQgdGhyZWUgdGltZXMgaW4gdGhlIGNhc2Vcbi8vIHdoZXJlIGFsbCBvZiB0aGUgY29udGludWF0aW9uIGJ5dGVzIGZvciBhIGNoYXJhY3RlciBleGlzdCBpbiB0aGUgc2FtZSBidWZmZXIuXG4vLyBJdCBpcyBhbHNvIGRvbmUgdGhpcyB3YXkgYXMgYSBzbGlnaHQgcGVyZm9ybWFuY2UgaW5jcmVhc2UgaW5zdGVhZCBvZiB1c2luZyBhXG4vLyBsb29wLlxuZnVuY3Rpb24gdXRmOENoZWNrRXh0cmFCeXRlcyhzZWxmLCBidWYsIHApIHtcbiAgaWYgKChidWZbMF0gJiAweEMwKSAhPT0gMHg4MCkge1xuICAgIHNlbGYubGFzdE5lZWQgPSAwO1xuICAgIHJldHVybiAnXFx1ZmZmZCc7XG4gIH1cbiAgaWYgKHNlbGYubGFzdE5lZWQgPiAxICYmIGJ1Zi5sZW5ndGggPiAxKSB7XG4gICAgaWYgKChidWZbMV0gJiAweEMwKSAhPT0gMHg4MCkge1xuICAgICAgc2VsZi5sYXN0TmVlZCA9IDE7XG4gICAgICByZXR1cm4gJ1xcdWZmZmQnO1xuICAgIH1cbiAgICBpZiAoc2VsZi5sYXN0TmVlZCA+IDIgJiYgYnVmLmxlbmd0aCA+IDIpIHtcbiAgICAgIGlmICgoYnVmWzJdICYgMHhDMCkgIT09IDB4ODApIHtcbiAgICAgICAgc2VsZi5sYXN0TmVlZCA9IDI7XG4gICAgICAgIHJldHVybiAnXFx1ZmZmZCc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEF0dGVtcHRzIHRvIGNvbXBsZXRlIGEgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXIgdXNpbmcgYnl0ZXMgZnJvbSBhIEJ1ZmZlci5cbmZ1bmN0aW9uIHV0ZjhGaWxsTGFzdChidWYpIHtcbiAgdmFyIHAgPSB0aGlzLmxhc3RUb3RhbCAtIHRoaXMubGFzdE5lZWQ7XG4gIHZhciByID0gdXRmOENoZWNrRXh0cmFCeXRlcyh0aGlzLCBidWYsIHApO1xuICBpZiAociAhPT0gdW5kZWZpbmVkKSByZXR1cm4gcjtcbiAgaWYgKHRoaXMubGFzdE5lZWQgPD0gYnVmLmxlbmd0aCkge1xuICAgIGJ1Zi5jb3B5KHRoaXMubGFzdENoYXIsIHAsIDAsIHRoaXMubGFzdE5lZWQpO1xuICAgIHJldHVybiB0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsIDAsIHRoaXMubGFzdFRvdGFsKTtcbiAgfVxuICBidWYuY29weSh0aGlzLmxhc3RDaGFyLCBwLCAwLCBidWYubGVuZ3RoKTtcbiAgdGhpcy5sYXN0TmVlZCAtPSBidWYubGVuZ3RoO1xufVxuXG4vLyBSZXR1cm5zIGFsbCBjb21wbGV0ZSBVVEYtOCBjaGFyYWN0ZXJzIGluIGEgQnVmZmVyLiBJZiB0aGUgQnVmZmVyIGVuZGVkIG9uIGFcbi8vIHBhcnRpYWwgY2hhcmFjdGVyLCB0aGUgY2hhcmFjdGVyJ3MgYnl0ZXMgYXJlIGJ1ZmZlcmVkIHVudGlsIHRoZSByZXF1aXJlZFxuLy8gbnVtYmVyIG9mIGJ5dGVzIGFyZSBhdmFpbGFibGUuXG5mdW5jdGlvbiB1dGY4VGV4dChidWYsIGkpIHtcbiAgdmFyIHRvdGFsID0gdXRmOENoZWNrSW5jb21wbGV0ZSh0aGlzLCBidWYsIGkpO1xuICBpZiAoIXRoaXMubGFzdE5lZWQpIHJldHVybiBidWYudG9TdHJpbmcoJ3V0ZjgnLCBpKTtcbiAgdGhpcy5sYXN0VG90YWwgPSB0b3RhbDtcbiAgdmFyIGVuZCA9IGJ1Zi5sZW5ndGggLSAodG90YWwgLSB0aGlzLmxhc3ROZWVkKTtcbiAgYnVmLmNvcHkodGhpcy5sYXN0Q2hhciwgMCwgZW5kKTtcbiAgcmV0dXJuIGJ1Zi50b1N0cmluZygndXRmOCcsIGksIGVuZCk7XG59XG5cbi8vIEZvciBVVEYtOCwgYSByZXBsYWNlbWVudCBjaGFyYWN0ZXIgaXMgYWRkZWQgd2hlbiBlbmRpbmcgb24gYSBwYXJ0aWFsXG4vLyBjaGFyYWN0ZXIuXG5mdW5jdGlvbiB1dGY4RW5kKGJ1Zikge1xuICB2YXIgciA9IGJ1ZiAmJiBidWYubGVuZ3RoID8gdGhpcy53cml0ZShidWYpIDogJyc7XG4gIGlmICh0aGlzLmxhc3ROZWVkKSByZXR1cm4gciArICdcXHVmZmZkJztcbiAgcmV0dXJuIHI7XG59XG5cbi8vIFVURi0xNkxFIHR5cGljYWxseSBuZWVkcyB0d28gYnl0ZXMgcGVyIGNoYXJhY3RlciwgYnV0IGV2ZW4gaWYgd2UgaGF2ZSBhbiBldmVuXG4vLyBudW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHdlIGVuZCBvbiBhIGxlYWRpbmcvaGlnaFxuLy8gc3Vycm9nYXRlLiBJbiB0aGF0IGNhc2UsIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIG5leHQgdHdvIGJ5dGVzIGluIG9yZGVyIHRvXG4vLyBkZWNvZGUgdGhlIGxhc3QgY2hhcmFjdGVyIHByb3Blcmx5LlxuZnVuY3Rpb24gdXRmMTZUZXh0KGJ1ZiwgaSkge1xuICBpZiAoKGJ1Zi5sZW5ndGggLSBpKSAlIDIgPT09IDApIHtcbiAgICB2YXIgciA9IGJ1Zi50b1N0cmluZygndXRmMTZsZScsIGkpO1xuICAgIGlmIChyKSB7XG4gICAgICB2YXIgYyA9IHIuY2hhckNvZGVBdChyLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGMgPj0gMHhEODAwICYmIGMgPD0gMHhEQkZGKSB7XG4gICAgICAgIHRoaXMubGFzdE5lZWQgPSAyO1xuICAgICAgICB0aGlzLmxhc3RUb3RhbCA9IDQ7XG4gICAgICAgIHRoaXMubGFzdENoYXJbMF0gPSBidWZbYnVmLmxlbmd0aCAtIDJdO1xuICAgICAgICB0aGlzLmxhc3RDaGFyWzFdID0gYnVmW2J1Zi5sZW5ndGggLSAxXTtcbiAgICAgICAgcmV0dXJuIHIuc2xpY2UoMCwgLTEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfVxuICB0aGlzLmxhc3ROZWVkID0gMTtcbiAgdGhpcy5sYXN0VG90YWwgPSAyO1xuICB0aGlzLmxhc3RDaGFyWzBdID0gYnVmW2J1Zi5sZW5ndGggLSAxXTtcbiAgcmV0dXJuIGJ1Zi50b1N0cmluZygndXRmMTZsZScsIGksIGJ1Zi5sZW5ndGggLSAxKTtcbn1cblxuLy8gRm9yIFVURi0xNkxFIHdlIGRvIG5vdCBleHBsaWNpdGx5IGFwcGVuZCBzcGVjaWFsIHJlcGxhY2VtZW50IGNoYXJhY3RlcnMgaWYgd2Vcbi8vIGVuZCBvbiBhIHBhcnRpYWwgY2hhcmFjdGVyLCB3ZSBzaW1wbHkgbGV0IHY4IGhhbmRsZSB0aGF0LlxuZnVuY3Rpb24gdXRmMTZFbmQoYnVmKSB7XG4gIHZhciByID0gYnVmICYmIGJ1Zi5sZW5ndGggPyB0aGlzLndyaXRlKGJ1ZikgOiAnJztcbiAgaWYgKHRoaXMubGFzdE5lZWQpIHtcbiAgICB2YXIgZW5kID0gdGhpcy5sYXN0VG90YWwgLSB0aGlzLmxhc3ROZWVkO1xuICAgIHJldHVybiByICsgdGhpcy5sYXN0Q2hhci50b1N0cmluZygndXRmMTZsZScsIDAsIGVuZCk7XG4gIH1cbiAgcmV0dXJuIHI7XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFRleHQoYnVmLCBpKSB7XG4gIHZhciBuID0gKGJ1Zi5sZW5ndGggLSBpKSAlIDM7XG4gIGlmIChuID09PSAwKSByZXR1cm4gYnVmLnRvU3RyaW5nKCdiYXNlNjQnLCBpKTtcbiAgdGhpcy5sYXN0TmVlZCA9IDMgLSBuO1xuICB0aGlzLmxhc3RUb3RhbCA9IDM7XG4gIGlmIChuID09PSAxKSB7XG4gICAgdGhpcy5sYXN0Q2hhclswXSA9IGJ1ZltidWYubGVuZ3RoIC0gMV07XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5sYXN0Q2hhclswXSA9IGJ1ZltidWYubGVuZ3RoIC0gMl07XG4gICAgdGhpcy5sYXN0Q2hhclsxXSA9IGJ1ZltidWYubGVuZ3RoIC0gMV07XG4gIH1cbiAgcmV0dXJuIGJ1Zi50b1N0cmluZygnYmFzZTY0JywgaSwgYnVmLmxlbmd0aCAtIG4pO1xufVxuXG5mdW5jdGlvbiBiYXNlNjRFbmQoYnVmKSB7XG4gIHZhciByID0gYnVmICYmIGJ1Zi5sZW5ndGggPyB0aGlzLndyaXRlKGJ1ZikgOiAnJztcbiAgaWYgKHRoaXMubGFzdE5lZWQpIHJldHVybiByICsgdGhpcy5sYXN0Q2hhci50b1N0cmluZygnYmFzZTY0JywgMCwgMyAtIHRoaXMubGFzdE5lZWQpO1xuICByZXR1cm4gcjtcbn1cblxuLy8gUGFzcyBieXRlcyBvbiB0aHJvdWdoIGZvciBzaW5nbGUtYnl0ZSBlbmNvZGluZ3MgKGUuZy4gYXNjaWksIGxhdGluMSwgaGV4KVxuZnVuY3Rpb24gc2ltcGxlV3JpdGUoYnVmKSB7XG4gIHJldHVybiBidWYudG9TdHJpbmcodGhpcy5lbmNvZGluZyk7XG59XG5cbmZ1bmN0aW9uIHNpbXBsZUVuZChidWYpIHtcbiAgcmV0dXJuIGJ1ZiAmJiBidWYubGVuZ3RoID8gdGhpcy53cml0ZShidWYpIDogJyc7XG59IiwiZnVuY3Rpb24gQWdlbnQoKSB7XG4gIHRoaXMuX2RlZmF1bHRzID0gW107XG59XG5cbltcInVzZVwiLCBcIm9uXCIsIFwib25jZVwiLCBcInNldFwiLCBcInF1ZXJ5XCIsIFwidHlwZVwiLCBcImFjY2VwdFwiLCBcImF1dGhcIiwgXCJ3aXRoQ3JlZGVudGlhbHNcIiwgXCJzb3J0UXVlcnlcIiwgXCJyZXRyeVwiLCBcIm9rXCIsIFwicmVkaXJlY3RzXCIsXG4gXCJ0aW1lb3V0XCIsIFwiYnVmZmVyXCIsIFwic2VyaWFsaXplXCIsIFwicGFyc2VcIiwgXCJjYVwiLCBcImtleVwiLCBcInBmeFwiLCBcImNlcnRcIl0uZm9yRWFjaChmdW5jdGlvbihmbikge1xuICAvKiogRGVmYXVsdCBzZXR0aW5nIGZvciBhbGwgcmVxdWVzdHMgZnJvbSB0aGlzIGFnZW50ICovXG4gIEFnZW50LnByb3RvdHlwZVtmbl0gPSBmdW5jdGlvbigvKnZhcmFyZ3MqLykge1xuICAgIHRoaXMuX2RlZmF1bHRzLnB1c2goe2ZuOmZuLCBhcmd1bWVudHM6YXJndW1lbnRzfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn0pO1xuXG5BZ2VudC5wcm90b3R5cGUuX3NldERlZmF1bHRzID0gZnVuY3Rpb24ocmVxKSB7XG4gICAgdGhpcy5fZGVmYXVsdHMuZm9yRWFjaChmdW5jdGlvbihkZWYpIHtcbiAgICAgIHJlcVtkZWYuZm5dLmFwcGx5KHJlcSwgZGVmLmFyZ3VtZW50cyk7XG4gICAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEFnZW50O1xuIiwiLyoqXG4gKiBSb290IHJlZmVyZW5jZSBmb3IgaWZyYW1lcy5cbiAqL1xuXG52YXIgcm9vdDtcbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgeyAvLyBCcm93c2VyIHdpbmRvd1xuICByb290ID0gd2luZG93O1xufSBlbHNlIGlmICh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcpIHsgLy8gV2ViIFdvcmtlclxuICByb290ID0gc2VsZjtcbn0gZWxzZSB7IC8vIE90aGVyIGVudmlyb25tZW50c1xuICBjb25zb2xlLndhcm4oXCJVc2luZyBicm93c2VyLW9ubHkgdmVyc2lvbiBvZiBzdXBlcmFnZW50IGluIG5vbi1icm93c2VyIGVudmlyb25tZW50XCIpO1xuICByb290ID0gdGhpcztcbn1cblxudmFyIEVtaXR0ZXIgPSByZXF1aXJlKCdjb21wb25lbnQtZW1pdHRlcicpO1xudmFyIFJlcXVlc3RCYXNlID0gcmVxdWlyZSgnLi9yZXF1ZXN0LWJhc2UnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXMtb2JqZWN0Jyk7XG52YXIgUmVzcG9uc2VCYXNlID0gcmVxdWlyZSgnLi9yZXNwb25zZS1iYXNlJyk7XG52YXIgQWdlbnQgPSByZXF1aXJlKCcuL2FnZW50LWJhc2UnKTtcblxuLyoqXG4gKiBOb29wLlxuICovXG5cbmZ1bmN0aW9uIG5vb3AoKXt9O1xuXG4vKipcbiAqIEV4cG9zZSBgcmVxdWVzdGAuXG4gKi9cblxudmFyIHJlcXVlc3QgPSBleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihtZXRob2QsIHVybCkge1xuICAvLyBjYWxsYmFja1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgdXJsKSB7XG4gICAgcmV0dXJuIG5ldyBleHBvcnRzLlJlcXVlc3QoJ0dFVCcsIG1ldGhvZCkuZW5kKHVybCk7XG4gIH1cblxuICAvLyB1cmwgZmlyc3RcbiAgaWYgKDEgPT0gYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIHJldHVybiBuZXcgZXhwb3J0cy5SZXF1ZXN0KCdHRVQnLCBtZXRob2QpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBleHBvcnRzLlJlcXVlc3QobWV0aG9kLCB1cmwpO1xufVxuXG5leHBvcnRzLlJlcXVlc3QgPSBSZXF1ZXN0O1xuXG4vKipcbiAqIERldGVybWluZSBYSFIuXG4gKi9cblxucmVxdWVzdC5nZXRYSFIgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChyb290LlhNTEh0dHBSZXF1ZXN0XG4gICAgICAmJiAoIXJvb3QubG9jYXRpb24gfHwgJ2ZpbGU6JyAhPSByb290LmxvY2F0aW9uLnByb3RvY29sXG4gICAgICAgICAgfHwgIXJvb3QuQWN0aXZlWE9iamVjdCkpIHtcbiAgICByZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0O1xuICB9IGVsc2Uge1xuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAuNi4wJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjMuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUCcpOyB9IGNhdGNoKGUpIHt9XG4gIH1cbiAgdGhyb3cgRXJyb3IoXCJCcm93c2VyLW9ubHkgdmVyc2lvbiBvZiBzdXBlcmFnZW50IGNvdWxkIG5vdCBmaW5kIFhIUlwiKTtcbn07XG5cbi8qKlxuICogUmVtb3ZlcyBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLCBhZGRlZCB0byBzdXBwb3J0IElFLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG52YXIgdHJpbSA9ICcnLnRyaW1cbiAgPyBmdW5jdGlvbihzKSB7IHJldHVybiBzLnRyaW0oKTsgfVxuICA6IGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMucmVwbGFjZSgvKF5cXHMqfFxccyokKS9nLCAnJyk7IH07XG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBnaXZlbiBgb2JqYC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzZXJpYWxpemUob2JqKSB7XG4gIGlmICghaXNPYmplY3Qob2JqKSkgcmV0dXJuIG9iajtcbiAgdmFyIHBhaXJzID0gW107XG4gIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICBwdXNoRW5jb2RlZEtleVZhbHVlUGFpcihwYWlycywga2V5LCBvYmpba2V5XSk7XG4gIH1cbiAgcmV0dXJuIHBhaXJzLmpvaW4oJyYnKTtcbn1cblxuLyoqXG4gKiBIZWxwcyAnc2VyaWFsaXplJyB3aXRoIHNlcmlhbGl6aW5nIGFycmF5cy5cbiAqIE11dGF0ZXMgdGhlIHBhaXJzIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IHBhaXJzXG4gKiBAcGFyYW0ge1N0cmluZ30ga2V5XG4gKiBAcGFyYW0ge01peGVkfSB2YWxcbiAqL1xuXG5mdW5jdGlvbiBwdXNoRW5jb2RlZEtleVZhbHVlUGFpcihwYWlycywga2V5LCB2YWwpIHtcbiAgaWYgKHZhbCAhPSBudWxsKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgdmFsLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgICAgICBwdXNoRW5jb2RlZEtleVZhbHVlUGFpcihwYWlycywga2V5LCB2KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QodmFsKSkge1xuICAgICAgZm9yKHZhciBzdWJrZXkgaW4gdmFsKSB7XG4gICAgICAgIHB1c2hFbmNvZGVkS2V5VmFsdWVQYWlyKHBhaXJzLCBrZXkgKyAnWycgKyBzdWJrZXkgKyAnXScsIHZhbFtzdWJrZXldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGFpcnMucHVzaChlbmNvZGVVUklDb21wb25lbnQoa2V5KVxuICAgICAgICArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWwpKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodmFsID09PSBudWxsKSB7XG4gICAgcGFpcnMucHVzaChlbmNvZGVVUklDb21wb25lbnQoa2V5KSk7XG4gIH1cbn1cblxuLyoqXG4gKiBFeHBvc2Ugc2VyaWFsaXphdGlvbiBtZXRob2QuXG4gKi9cblxucmVxdWVzdC5zZXJpYWxpemVPYmplY3QgPSBzZXJpYWxpemU7XG5cbi8qKlxuICAqIFBhcnNlIHRoZSBnaXZlbiB4LXd3dy1mb3JtLXVybGVuY29kZWQgYHN0cmAuXG4gICpcbiAgKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gICogQHJldHVybiB7T2JqZWN0fVxuICAqIEBhcGkgcHJpdmF0ZVxuICAqL1xuXG5mdW5jdGlvbiBwYXJzZVN0cmluZyhzdHIpIHtcbiAgdmFyIG9iaiA9IHt9O1xuICB2YXIgcGFpcnMgPSBzdHIuc3BsaXQoJyYnKTtcbiAgdmFyIHBhaXI7XG4gIHZhciBwb3M7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHBhaXJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgcGFpciA9IHBhaXJzW2ldO1xuICAgIHBvcyA9IHBhaXIuaW5kZXhPZignPScpO1xuICAgIGlmIChwb3MgPT0gLTEpIHtcbiAgICAgIG9ialtkZWNvZGVVUklDb21wb25lbnQocGFpcildID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9ialtkZWNvZGVVUklDb21wb25lbnQocGFpci5zbGljZSgwLCBwb3MpKV0gPVxuICAgICAgICBkZWNvZGVVUklDb21wb25lbnQocGFpci5zbGljZShwb3MgKyAxKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBFeHBvc2UgcGFyc2VyLlxuICovXG5cbnJlcXVlc3QucGFyc2VTdHJpbmcgPSBwYXJzZVN0cmluZztcblxuLyoqXG4gKiBEZWZhdWx0IE1JTUUgdHlwZSBtYXAuXG4gKlxuICogICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICovXG5cbnJlcXVlc3QudHlwZXMgPSB7XG4gIGh0bWw6ICd0ZXh0L2h0bWwnLFxuICBqc29uOiAnYXBwbGljYXRpb24vanNvbicsXG4gIHhtbDogJ3RleHQveG1sJyxcbiAgdXJsZW5jb2RlZDogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICdmb3JtJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICdmb3JtLWRhdGEnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xufTtcblxuLyoqXG4gKiBEZWZhdWx0IHNlcmlhbGl6YXRpb24gbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnNlcmlhbGl6ZVsnYXBwbGljYXRpb24veG1sJ10gPSBmdW5jdGlvbihvYmope1xuICogICAgICAgcmV0dXJuICdnZW5lcmF0ZWQgeG1sIGhlcmUnO1xuICogICAgIH07XG4gKlxuICovXG5cbnJlcXVlc3Quc2VyaWFsaXplID0ge1xuICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzogc2VyaWFsaXplLFxuICAnYXBwbGljYXRpb24vanNvbic6IEpTT04uc3RyaW5naWZ5XG59O1xuXG4vKipcbiAgKiBEZWZhdWx0IHBhcnNlcnMuXG4gICpcbiAgKiAgICAgc3VwZXJhZ2VudC5wYXJzZVsnYXBwbGljYXRpb24veG1sJ10gPSBmdW5jdGlvbihzdHIpe1xuICAqICAgICAgIHJldHVybiB7IG9iamVjdCBwYXJzZWQgZnJvbSBzdHIgfTtcbiAgKiAgICAgfTtcbiAgKlxuICAqL1xuXG5yZXF1ZXN0LnBhcnNlID0ge1xuICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzogcGFyc2VTdHJpbmcsXG4gICdhcHBsaWNhdGlvbi9qc29uJzogSlNPTi5wYXJzZVxufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgZ2l2ZW4gaGVhZGVyIGBzdHJgIGludG9cbiAqIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBtYXBwZWQgZmllbGRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyKHN0cikge1xuICB2YXIgbGluZXMgPSBzdHIuc3BsaXQoL1xccj9cXG4vKTtcbiAgdmFyIGZpZWxkcyA9IHt9O1xuICB2YXIgaW5kZXg7XG4gIHZhciBsaW5lO1xuICB2YXIgZmllbGQ7XG4gIHZhciB2YWw7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGxpbmVzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgbGluZSA9IGxpbmVzW2ldO1xuICAgIGluZGV4ID0gbGluZS5pbmRleE9mKCc6Jyk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkgeyAvLyBjb3VsZCBiZSBlbXB0eSBsaW5lLCBqdXN0IHNraXAgaXRcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBmaWVsZCA9IGxpbmUuc2xpY2UoMCwgaW5kZXgpLnRvTG93ZXJDYXNlKCk7XG4gICAgdmFsID0gdHJpbShsaW5lLnNsaWNlKGluZGV4ICsgMSkpO1xuICAgIGZpZWxkc1tmaWVsZF0gPSB2YWw7XG4gIH1cblxuICByZXR1cm4gZmllbGRzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGBtaW1lYCBpcyBqc29uIG9yIGhhcyAranNvbiBzdHJ1Y3R1cmVkIHN5bnRheCBzdWZmaXguXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1pbWVcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc0pTT04obWltZSkge1xuICAvLyBzaG91bGQgbWF0Y2ggL2pzb24gb3IgK2pzb25cbiAgLy8gYnV0IG5vdCAvanNvbi1zZXFcbiAgcmV0dXJuIC9bXFwvK11qc29uKCR8W14tXFx3XSkvLnRlc3QobWltZSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgUmVzcG9uc2VgIHdpdGggdGhlIGdpdmVuIGB4aHJgLlxuICpcbiAqICAtIHNldCBmbGFncyAoLm9rLCAuZXJyb3IsIGV0YylcbiAqICAtIHBhcnNlIGhlYWRlclxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICBBbGlhc2luZyBgc3VwZXJhZ2VudGAgYXMgYHJlcXVlc3RgIGlzIG5pY2U6XG4gKlxuICogICAgICByZXF1ZXN0ID0gc3VwZXJhZ2VudDtcbiAqXG4gKiAgV2UgY2FuIHVzZSB0aGUgcHJvbWlzZS1saWtlIEFQSSwgb3IgcGFzcyBjYWxsYmFja3M6XG4gKlxuICogICAgICByZXF1ZXN0LmdldCgnLycpLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICogICAgICByZXF1ZXN0LmdldCgnLycsIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIFNlbmRpbmcgZGF0YSBjYW4gYmUgY2hhaW5lZDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgT3IgcGFzc2VkIHRvIGAuc2VuZCgpYDpcbiAqXG4gKiAgICAgIHJlcXVlc3RcbiAqICAgICAgICAucG9zdCgnL3VzZXInKVxuICogICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBPciBwYXNzZWQgdG8gYC5wb3N0KClgOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgIC5lbmQoZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiBPciBmdXJ0aGVyIHJlZHVjZWQgdG8gYSBzaW5nbGUgY2FsbCBmb3Igc2ltcGxlIGNhc2VzOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicsIHsgbmFtZTogJ3RqJyB9LCBmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqIEBwYXJhbSB7WE1MSFRUUFJlcXVlc3R9IHhoclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIFJlc3BvbnNlKHJlcSkge1xuICB0aGlzLnJlcSA9IHJlcTtcbiAgdGhpcy54aHIgPSB0aGlzLnJlcS54aHI7XG4gIC8vIHJlc3BvbnNlVGV4dCBpcyBhY2Nlc3NpYmxlIG9ubHkgaWYgcmVzcG9uc2VUeXBlIGlzICcnIG9yICd0ZXh0JyBhbmQgb24gb2xkZXIgYnJvd3NlcnNcbiAgdGhpcy50ZXh0ID0gKCh0aGlzLnJlcS5tZXRob2QgIT0nSEVBRCcgJiYgKHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJycgfHwgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndGV4dCcpKSB8fCB0eXBlb2YgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndW5kZWZpbmVkJylcbiAgICAgPyB0aGlzLnhoci5yZXNwb25zZVRleHRcbiAgICAgOiBudWxsO1xuICB0aGlzLnN0YXR1c1RleHQgPSB0aGlzLnJlcS54aHIuc3RhdHVzVGV4dDtcbiAgdmFyIHN0YXR1cyA9IHRoaXMueGhyLnN0YXR1cztcbiAgLy8gaGFuZGxlIElFOSBidWc6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTAwNDY5NzIvbXNpZS1yZXR1cm5zLXN0YXR1cy1jb2RlLW9mLTEyMjMtZm9yLWFqYXgtcmVxdWVzdFxuICBpZiAoc3RhdHVzID09PSAxMjIzKSB7XG4gICAgc3RhdHVzID0gMjA0O1xuICB9XG4gIHRoaXMuX3NldFN0YXR1c1Byb3BlcnRpZXMoc3RhdHVzKTtcbiAgdGhpcy5oZWFkZXIgPSB0aGlzLmhlYWRlcnMgPSBwYXJzZUhlYWRlcih0aGlzLnhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk7XG4gIC8vIGdldEFsbFJlc3BvbnNlSGVhZGVycyBzb21ldGltZXMgZmFsc2VseSByZXR1cm5zIFwiXCIgZm9yIENPUlMgcmVxdWVzdHMsIGJ1dFxuICAvLyBnZXRSZXNwb25zZUhlYWRlciBzdGlsbCB3b3Jrcy4gc28gd2UgZ2V0IGNvbnRlbnQtdHlwZSBldmVuIGlmIGdldHRpbmdcbiAgLy8gb3RoZXIgaGVhZGVycyBmYWlscy5cbiAgdGhpcy5oZWFkZXJbJ2NvbnRlbnQtdHlwZSddID0gdGhpcy54aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ2NvbnRlbnQtdHlwZScpO1xuICB0aGlzLl9zZXRIZWFkZXJQcm9wZXJ0aWVzKHRoaXMuaGVhZGVyKTtcblxuICBpZiAobnVsbCA9PT0gdGhpcy50ZXh0ICYmIHJlcS5fcmVzcG9uc2VUeXBlKSB7XG4gICAgdGhpcy5ib2R5ID0gdGhpcy54aHIucmVzcG9uc2U7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5ib2R5ID0gdGhpcy5yZXEubWV0aG9kICE9ICdIRUFEJ1xuICAgICAgPyB0aGlzLl9wYXJzZUJvZHkodGhpcy50ZXh0ID8gdGhpcy50ZXh0IDogdGhpcy54aHIucmVzcG9uc2UpXG4gICAgICA6IG51bGw7XG4gIH1cbn1cblxuUmVzcG9uc2VCYXNlKFJlc3BvbnNlLnByb3RvdHlwZSk7XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGJvZHkgYHN0cmAuXG4gKlxuICogVXNlZCBmb3IgYXV0by1wYXJzaW5nIG9mIGJvZGllcy4gUGFyc2Vyc1xuICogYXJlIGRlZmluZWQgb24gdGhlIGBzdXBlcmFnZW50LnBhcnNlYCBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuX3BhcnNlQm9keSA9IGZ1bmN0aW9uKHN0cikge1xuICB2YXIgcGFyc2UgPSByZXF1ZXN0LnBhcnNlW3RoaXMudHlwZV07XG4gIGlmICh0aGlzLnJlcS5fcGFyc2VyKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxLl9wYXJzZXIodGhpcywgc3RyKTtcbiAgfVxuICBpZiAoIXBhcnNlICYmIGlzSlNPTih0aGlzLnR5cGUpKSB7XG4gICAgcGFyc2UgPSByZXF1ZXN0LnBhcnNlWydhcHBsaWNhdGlvbi9qc29uJ107XG4gIH1cbiAgcmV0dXJuIHBhcnNlICYmIHN0ciAmJiAoc3RyLmxlbmd0aCB8fCBzdHIgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgPyBwYXJzZShzdHIpXG4gICAgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYW4gYEVycm9yYCByZXByZXNlbnRhdGl2ZSBvZiB0aGlzIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm4ge0Vycm9yfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUudG9FcnJvciA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgdmFyIG1ldGhvZCA9IHJlcS5tZXRob2Q7XG4gIHZhciB1cmwgPSByZXEudXJsO1xuXG4gIHZhciBtc2cgPSAnY2Fubm90ICcgKyBtZXRob2QgKyAnICcgKyB1cmwgKyAnICgnICsgdGhpcy5zdGF0dXMgKyAnKSc7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gbWV0aG9kO1xuICBlcnIudXJsID0gdXJsO1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVzcG9uc2VgLlxuICovXG5cbnJlcXVlc3QuUmVzcG9uc2UgPSBSZXNwb25zZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXF1ZXN0YCB3aXRoIHRoZSBnaXZlbiBgbWV0aG9kYCBhbmQgYHVybGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0KG1ldGhvZCwgdXJsKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5fcXVlcnkgPSB0aGlzLl9xdWVyeSB8fCBbXTtcbiAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gIHRoaXMudXJsID0gdXJsO1xuICB0aGlzLmhlYWRlciA9IHt9OyAvLyBwcmVzZXJ2ZXMgaGVhZGVyIG5hbWUgY2FzZVxuICB0aGlzLl9oZWFkZXIgPSB7fTsgLy8gY29lcmNlcyBoZWFkZXIgbmFtZXMgdG8gbG93ZXJjYXNlXG4gIHRoaXMub24oJ2VuZCcsIGZ1bmN0aW9uKCl7XG4gICAgdmFyIGVyciA9IG51bGw7XG4gICAgdmFyIHJlcyA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgcmVzID0gbmV3IFJlc3BvbnNlKHNlbGYpO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgZXJyID0gbmV3IEVycm9yKCdQYXJzZXIgaXMgdW5hYmxlIHRvIHBhcnNlIHRoZSByZXNwb25zZScpO1xuICAgICAgZXJyLnBhcnNlID0gdHJ1ZTtcbiAgICAgIGVyci5vcmlnaW5hbCA9IGU7XG4gICAgICAvLyBpc3N1ZSAjNjc1OiByZXR1cm4gdGhlIHJhdyByZXNwb25zZSBpZiB0aGUgcmVzcG9uc2UgcGFyc2luZyBmYWlsc1xuICAgICAgaWYgKHNlbGYueGhyKSB7XG4gICAgICAgIC8vIGllOSBkb2Vzbid0IGhhdmUgJ3Jlc3BvbnNlJyBwcm9wZXJ0eVxuICAgICAgICBlcnIucmF3UmVzcG9uc2UgPSB0eXBlb2Ygc2VsZi54aHIucmVzcG9uc2VUeXBlID09ICd1bmRlZmluZWQnID8gc2VsZi54aHIucmVzcG9uc2VUZXh0IDogc2VsZi54aHIucmVzcG9uc2U7XG4gICAgICAgIC8vIGlzc3VlICM4NzY6IHJldHVybiB0aGUgaHR0cCBzdGF0dXMgY29kZSBpZiB0aGUgcmVzcG9uc2UgcGFyc2luZyBmYWlsc1xuICAgICAgICBlcnIuc3RhdHVzID0gc2VsZi54aHIuc3RhdHVzID8gc2VsZi54aHIuc3RhdHVzIDogbnVsbDtcbiAgICAgICAgZXJyLnN0YXR1c0NvZGUgPSBlcnIuc3RhdHVzOyAvLyBiYWNrd2FyZHMtY29tcGF0IG9ubHlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVyci5yYXdSZXNwb25zZSA9IG51bGw7XG4gICAgICAgIGVyci5zdGF0dXMgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc2VsZi5jYWxsYmFjayhlcnIpO1xuICAgIH1cblxuICAgIHNlbGYuZW1pdCgncmVzcG9uc2UnLCByZXMpO1xuXG4gICAgdmFyIG5ld19lcnI7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghc2VsZi5faXNSZXNwb25zZU9LKHJlcykpIHtcbiAgICAgICAgbmV3X2VyciA9IG5ldyBFcnJvcihyZXMuc3RhdHVzVGV4dCB8fCAnVW5zdWNjZXNzZnVsIEhUVFAgcmVzcG9uc2UnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGN1c3RvbV9lcnIpIHtcbiAgICAgIG5ld19lcnIgPSBjdXN0b21fZXJyOyAvLyBvaygpIGNhbGxiYWNrIGNhbiB0aHJvd1xuICAgIH1cblxuICAgIC8vICMxMDAwIGRvbid0IGNhdGNoIGVycm9ycyBmcm9tIHRoZSBjYWxsYmFjayB0byBhdm9pZCBkb3VibGUgY2FsbGluZyBpdFxuICAgIGlmIChuZXdfZXJyKSB7XG4gICAgICBuZXdfZXJyLm9yaWdpbmFsID0gZXJyO1xuICAgICAgbmV3X2Vyci5yZXNwb25zZSA9IHJlcztcbiAgICAgIG5ld19lcnIuc3RhdHVzID0gcmVzLnN0YXR1cztcbiAgICAgIHNlbGYuY2FsbGJhY2sobmV3X2VyciwgcmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZi5jYWxsYmFjayhudWxsLCByZXMpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogTWl4aW4gYEVtaXR0ZXJgIGFuZCBgUmVxdWVzdEJhc2VgLlxuICovXG5cbkVtaXR0ZXIoUmVxdWVzdC5wcm90b3R5cGUpO1xuUmVxdWVzdEJhc2UoUmVxdWVzdC5wcm90b3R5cGUpO1xuXG4vKipcbiAqIFNldCBDb250ZW50LVR5cGUgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCd4bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnLycpXG4gKiAgICAgICAgLnR5cGUoJ2FwcGxpY2F0aW9uL3htbCcpXG4gKiAgICAgICAgLnNlbmQoeG1sc3RyaW5nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudHlwZSA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBY2NlcHQgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMuanNvbiA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy9hZ2VudCcpXG4gKiAgICAgICAgLmFjY2VwdCgnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFjY2VwdFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQWNjZXB0JywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBdXRob3JpemF0aW9uIGZpZWxkIHZhbHVlIHdpdGggYHVzZXJgIGFuZCBgcGFzc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSBbcGFzc10gb3B0aW9uYWwgaW4gY2FzZSBvZiB1c2luZyAnYmVhcmVyJyBhcyB0eXBlXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyB3aXRoICd0eXBlJyBwcm9wZXJ0eSAnYXV0bycsICdiYXNpYycgb3IgJ2JlYXJlcicgKGRlZmF1bHQgJ2Jhc2ljJylcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hdXRoID0gZnVuY3Rpb24odXNlciwgcGFzcywgb3B0aW9ucyl7XG4gIGlmICgxID09PSBhcmd1bWVudHMubGVuZ3RoKSBwYXNzID0gJyc7XG4gIGlmICh0eXBlb2YgcGFzcyA9PT0gJ29iamVjdCcgJiYgcGFzcyAhPT0gbnVsbCkgeyAvLyBwYXNzIGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBvcHRpb25zXG4gICAgb3B0aW9ucyA9IHBhc3M7XG4gICAgcGFzcyA9ICcnO1xuICB9XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICB0eXBlOiAnZnVuY3Rpb24nID09PSB0eXBlb2YgYnRvYSA/ICdiYXNpYycgOiAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIHZhciBlbmNvZGVyID0gZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBidG9hKSB7XG4gICAgICByZXR1cm4gYnRvYShzdHJpbmcpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgYmFzaWMgYXV0aCwgYnRvYSBpcyBub3QgYSBmdW5jdGlvbicpO1xuICB9O1xuXG4gIHJldHVybiB0aGlzLl9hdXRoKHVzZXIsIHBhc3MsIG9wdGlvbnMsIGVuY29kZXIpO1xufTtcblxuLyoqXG4gKiBBZGQgcXVlcnktc3RyaW5nIGB2YWxgLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgcmVxdWVzdC5nZXQoJy9zaG9lcycpXG4gKiAgICAgLnF1ZXJ5KCdzaXplPTEwJylcbiAqICAgICAucXVlcnkoeyBjb2xvcjogJ2JsdWUnIH0pXG4gKlxuICogQHBhcmFtIHtPYmplY3R8U3RyaW5nfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5xdWVyeSA9IGZ1bmN0aW9uKHZhbCl7XG4gIGlmICgnc3RyaW5nJyAhPSB0eXBlb2YgdmFsKSB2YWwgPSBzZXJpYWxpemUodmFsKTtcbiAgaWYgKHZhbCkgdGhpcy5fcXVlcnkucHVzaCh2YWwpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUXVldWUgdGhlIGdpdmVuIGBmaWxlYCBhcyBhbiBhdHRhY2htZW50IHRvIHRoZSBzcGVjaWZpZWQgYGZpZWxkYCxcbiAqIHdpdGggb3B0aW9uYWwgYG9wdGlvbnNgIChvciBmaWxlbmFtZSkuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuYXR0YWNoKCdjb250ZW50JywgbmV3IEJsb2IoWyc8YSBpZD1cImFcIj48YiBpZD1cImJcIj5oZXkhPC9iPjwvYT4nXSwgeyB0eXBlOiBcInRleHQvaHRtbFwifSkpXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcGFyYW0ge0Jsb2J8RmlsZX0gZmlsZVxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXR0YWNoID0gZnVuY3Rpb24oZmllbGQsIGZpbGUsIG9wdGlvbnMpe1xuICBpZiAoZmlsZSkge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICB0aHJvdyBFcnJvcihcInN1cGVyYWdlbnQgY2FuJ3QgbWl4IC5zZW5kKCkgYW5kIC5hdHRhY2goKVwiKTtcbiAgICB9XG5cbiAgICB0aGlzLl9nZXRGb3JtRGF0YSgpLmFwcGVuZChmaWVsZCwgZmlsZSwgb3B0aW9ucyB8fCBmaWxlLm5hbWUpO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdC5wcm90b3R5cGUuX2dldEZvcm1EYXRhID0gZnVuY3Rpb24oKXtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkge1xuICAgIHRoaXMuX2Zvcm1EYXRhID0gbmV3IHJvb3QuRm9ybURhdGEoKTtcbiAgfVxuICByZXR1cm4gdGhpcy5fZm9ybURhdGE7XG59O1xuXG4vKipcbiAqIEludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBgZXJyYCBhbmQgYHJlc2BcbiAqIGFuZCBoYW5kbGUgYXJpdHkgY2hlY2suXG4gKlxuICogQHBhcmFtIHtFcnJvcn0gZXJyXG4gKiBAcGFyYW0ge1Jlc3BvbnNlfSByZXNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNhbGxiYWNrID0gZnVuY3Rpb24oZXJyLCByZXMpe1xuICBpZiAodGhpcy5fc2hvdWxkUmV0cnkoZXJyLCByZXMpKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JldHJ5KCk7XG4gIH1cblxuICB2YXIgZm4gPSB0aGlzLl9jYWxsYmFjaztcbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcblxuICBpZiAoZXJyKSB7XG4gICAgaWYgKHRoaXMuX21heFJldHJpZXMpIGVyci5yZXRyaWVzID0gdGhpcy5fcmV0cmllcyAtIDE7XG4gICAgdGhpcy5lbWl0KCdlcnJvcicsIGVycik7XG4gIH1cblxuICBmbihlcnIsIHJlcyk7XG59O1xuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHgtZG9tYWluIGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNyb3NzRG9tYWluRXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgZXJyID0gbmV3IEVycm9yKCdSZXF1ZXN0IGhhcyBiZWVuIHRlcm1pbmF0ZWRcXG5Qb3NzaWJsZSBjYXVzZXM6IHRoZSBuZXR3b3JrIGlzIG9mZmxpbmUsIE9yaWdpbiBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sIHRoZSBwYWdlIGlzIGJlaW5nIHVubG9hZGVkLCBldGMuJyk7XG4gIGVyci5jcm9zc0RvbWFpbiA9IHRydWU7XG5cbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gdGhpcy5tZXRob2Q7XG4gIGVyci51cmwgPSB0aGlzLnVybDtcblxuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vLyBUaGlzIG9ubHkgd2FybnMsIGJlY2F1c2UgdGhlIHJlcXVlc3QgaXMgc3RpbGwgbGlrZWx5IHRvIHdvcmtcblJlcXVlc3QucHJvdG90eXBlLmJ1ZmZlciA9IFJlcXVlc3QucHJvdG90eXBlLmNhID0gUmVxdWVzdC5wcm90b3R5cGUuYWdlbnQgPSBmdW5jdGlvbigpe1xuICBjb25zb2xlLndhcm4oXCJUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciB2ZXJzaW9uIG9mIHN1cGVyYWdlbnRcIik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLy8gVGhpcyB0aHJvd3MsIGJlY2F1c2UgaXQgY2FuJ3Qgc2VuZC9yZWNlaXZlIGRhdGEgYXMgZXhwZWN0ZWRcblJlcXVlc3QucHJvdG90eXBlLnBpcGUgPSBSZXF1ZXN0LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKCl7XG4gIHRocm93IEVycm9yKFwiU3RyZWFtaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciB2ZXJzaW9uIG9mIHN1cGVyYWdlbnRcIik7XG59O1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGEgaG9zdCBvYmplY3QsXG4gKiB3ZSBkb24ndCB3YW50IHRvIHNlcmlhbGl6ZSB0aGVzZSA6KVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuUmVxdWVzdC5wcm90b3R5cGUuX2lzSG9zdCA9IGZ1bmN0aW9uIF9pc0hvc3Qob2JqKSB7XG4gIC8vIE5hdGl2ZSBvYmplY3RzIHN0cmluZ2lmeSB0byBbb2JqZWN0IEZpbGVdLCBbb2JqZWN0IEJsb2JdLCBbb2JqZWN0IEZvcm1EYXRhXSwgZXRjLlxuICByZXR1cm4gb2JqICYmICdvYmplY3QnID09PSB0eXBlb2Ygb2JqICYmICFBcnJheS5pc0FycmF5KG9iaikgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgIT09ICdbb2JqZWN0IE9iamVjdF0nO1xufVxuXG4vKipcbiAqIEluaXRpYXRlIHJlcXVlc3QsIGludm9raW5nIGNhbGxiYWNrIGBmbihyZXMpYFxuICogd2l0aCBhbiBpbnN0YW5jZW9mIGBSZXNwb25zZWAuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbihmbil7XG4gIGlmICh0aGlzLl9lbmRDYWxsZWQpIHtcbiAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiAuZW5kKCkgd2FzIGNhbGxlZCB0d2ljZS4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGluIHN1cGVyYWdlbnRcIik7XG4gIH1cbiAgdGhpcy5fZW5kQ2FsbGVkID0gdHJ1ZTtcblxuICAvLyBzdG9yZSBjYWxsYmFja1xuICB0aGlzLl9jYWxsYmFjayA9IGZuIHx8IG5vb3A7XG5cbiAgLy8gcXVlcnlzdHJpbmdcbiAgdGhpcy5fZmluYWxpemVRdWVyeVN0cmluZygpO1xuXG4gIHJldHVybiB0aGlzLl9lbmQoKTtcbn07XG5cblJlcXVlc3QucHJvdG90eXBlLl9lbmQgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgeGhyID0gKHRoaXMueGhyID0gcmVxdWVzdC5nZXRYSFIoKSk7XG4gIHZhciBkYXRhID0gdGhpcy5fZm9ybURhdGEgfHwgdGhpcy5fZGF0YTtcblxuICB0aGlzLl9zZXRUaW1lb3V0cygpO1xuXG4gIC8vIHN0YXRlIGNoYW5nZVxuICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKXtcbiAgICB2YXIgcmVhZHlTdGF0ZSA9IHhoci5yZWFkeVN0YXRlO1xuICAgIGlmIChyZWFkeVN0YXRlID49IDIgJiYgc2VsZi5fcmVzcG9uc2VUaW1lb3V0VGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dChzZWxmLl9yZXNwb25zZVRpbWVvdXRUaW1lcik7XG4gICAgfVxuICAgIGlmICg0ICE9IHJlYWR5U3RhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJbiBJRTksIHJlYWRzIHRvIGFueSBwcm9wZXJ0eSAoZS5nLiBzdGF0dXMpIG9mZiBvZiBhbiBhYm9ydGVkIFhIUiB3aWxsXG4gICAgLy8gcmVzdWx0IGluIHRoZSBlcnJvciBcIkNvdWxkIG5vdCBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uIGR1ZSB0byBlcnJvciBjMDBjMDIzZlwiXG4gICAgdmFyIHN0YXR1cztcbiAgICB0cnkgeyBzdGF0dXMgPSB4aHIuc3RhdHVzIH0gY2F0Y2goZSkgeyBzdGF0dXMgPSAwOyB9XG5cbiAgICBpZiAoIXN0YXR1cykge1xuICAgICAgaWYgKHNlbGYudGltZWRvdXQgfHwgc2VsZi5fYWJvcnRlZCkgcmV0dXJuO1xuICAgICAgcmV0dXJuIHNlbGYuY3Jvc3NEb21haW5FcnJvcigpO1xuICAgIH1cbiAgICBzZWxmLmVtaXQoJ2VuZCcpO1xuICB9O1xuXG4gIC8vIHByb2dyZXNzXG4gIHZhciBoYW5kbGVQcm9ncmVzcyA9IGZ1bmN0aW9uKGRpcmVjdGlvbiwgZSkge1xuICAgIGlmIChlLnRvdGFsID4gMCkge1xuICAgICAgZS5wZXJjZW50ID0gZS5sb2FkZWQgLyBlLnRvdGFsICogMTAwO1xuICAgIH1cbiAgICBlLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICBzZWxmLmVtaXQoJ3Byb2dyZXNzJywgZSk7XG4gIH07XG4gIGlmICh0aGlzLmhhc0xpc3RlbmVycygncHJvZ3Jlc3MnKSkge1xuICAgIHRyeSB7XG4gICAgICB4aHIub25wcm9ncmVzcyA9IGhhbmRsZVByb2dyZXNzLmJpbmQobnVsbCwgJ2Rvd25sb2FkJyk7XG4gICAgICBpZiAoeGhyLnVwbG9hZCkge1xuICAgICAgICB4aHIudXBsb2FkLm9ucHJvZ3Jlc3MgPSBoYW5kbGVQcm9ncmVzcy5iaW5kKG51bGwsICd1cGxvYWQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIC8vIEFjY2Vzc2luZyB4aHIudXBsb2FkIGZhaWxzIGluIElFIGZyb20gYSB3ZWIgd29ya2VyLCBzbyBqdXN0IHByZXRlbmQgaXQgZG9lc24ndCBleGlzdC5cbiAgICAgIC8vIFJlcG9ydGVkIGhlcmU6XG4gICAgICAvLyBodHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9JRS9mZWVkYmFjay9kZXRhaWxzLzgzNzI0NS94bWxodHRwcmVxdWVzdC11cGxvYWQtdGhyb3dzLWludmFsaWQtYXJndW1lbnQtd2hlbi11c2VkLWZyb20td2ViLXdvcmtlci1jb250ZXh0XG4gICAgfVxuICB9XG5cbiAgLy8gaW5pdGlhdGUgcmVxdWVzdFxuICB0cnkge1xuICAgIGlmICh0aGlzLnVzZXJuYW1lICYmIHRoaXMucGFzc3dvcmQpIHtcbiAgICAgIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSwgdGhpcy51c2VybmFtZSwgdGhpcy5wYXNzd29yZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBzZWUgIzExNDlcbiAgICByZXR1cm4gdGhpcy5jYWxsYmFjayhlcnIpO1xuICB9XG5cbiAgLy8gQ09SU1xuICBpZiAodGhpcy5fd2l0aENyZWRlbnRpYWxzKSB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcblxuICAvLyBib2R5XG4gIGlmICghdGhpcy5fZm9ybURhdGEgJiYgJ0dFVCcgIT0gdGhpcy5tZXRob2QgJiYgJ0hFQUQnICE9IHRoaXMubWV0aG9kICYmICdzdHJpbmcnICE9IHR5cGVvZiBkYXRhICYmICF0aGlzLl9pc0hvc3QoZGF0YSkpIHtcbiAgICAvLyBzZXJpYWxpemUgc3R1ZmZcbiAgICB2YXIgY29udGVudFR5cGUgPSB0aGlzLl9oZWFkZXJbJ2NvbnRlbnQtdHlwZSddO1xuICAgIHZhciBzZXJpYWxpemUgPSB0aGlzLl9zZXJpYWxpemVyIHx8IHJlcXVlc3Quc2VyaWFsaXplW2NvbnRlbnRUeXBlID8gY29udGVudFR5cGUuc3BsaXQoJzsnKVswXSA6ICcnXTtcbiAgICBpZiAoIXNlcmlhbGl6ZSAmJiBpc0pTT04oY29udGVudFR5cGUpKSB7XG4gICAgICBzZXJpYWxpemUgPSByZXF1ZXN0LnNlcmlhbGl6ZVsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIH1cbiAgICBpZiAoc2VyaWFsaXplKSBkYXRhID0gc2VyaWFsaXplKGRhdGEpO1xuICB9XG5cbiAgLy8gc2V0IGhlYWRlciBmaWVsZHNcbiAgZm9yICh2YXIgZmllbGQgaW4gdGhpcy5oZWFkZXIpIHtcbiAgICBpZiAobnVsbCA9PSB0aGlzLmhlYWRlcltmaWVsZF0pIGNvbnRpbnVlO1xuXG4gICAgaWYgKHRoaXMuaGVhZGVyLmhhc093blByb3BlcnR5KGZpZWxkKSlcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGZpZWxkLCB0aGlzLmhlYWRlcltmaWVsZF0pO1xuICB9XG5cbiAgaWYgKHRoaXMuX3Jlc3BvbnNlVHlwZSkge1xuICAgIHhoci5yZXNwb25zZVR5cGUgPSB0aGlzLl9yZXNwb25zZVR5cGU7XG4gIH1cblxuICAvLyBzZW5kIHN0dWZmXG4gIHRoaXMuZW1pdCgncmVxdWVzdCcsIHRoaXMpO1xuXG4gIC8vIElFMTEgeGhyLnNlbmQodW5kZWZpbmVkKSBzZW5kcyAndW5kZWZpbmVkJyBzdHJpbmcgYXMgUE9TVCBwYXlsb2FkIChpbnN0ZWFkIG9mIG5vdGhpbmcpXG4gIC8vIFdlIG5lZWQgbnVsbCBoZXJlIGlmIGRhdGEgaXMgdW5kZWZpbmVkXG4gIHhoci5zZW5kKHR5cGVvZiBkYXRhICE9PSAndW5kZWZpbmVkJyA/IGRhdGEgOiBudWxsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5yZXF1ZXN0LmFnZW50ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgQWdlbnQoKTtcbn07XG5cbltcIkdFVFwiLCBcIlBPU1RcIiwgXCJPUFRJT05TXCIsIFwiUEFUQ0hcIiwgXCJQVVRcIiwgXCJERUxFVEVcIl0uZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHtcbiAgQWdlbnQucHJvdG90eXBlW21ldGhvZC50b0xvd2VyQ2FzZSgpXSA9IGZ1bmN0aW9uKHVybCwgZm4pIHtcbiAgICB2YXIgcmVxID0gbmV3IHJlcXVlc3QuUmVxdWVzdChtZXRob2QsIHVybCk7XG4gICAgdGhpcy5fc2V0RGVmYXVsdHMocmVxKTtcbiAgICBpZiAoZm4pIHtcbiAgICAgIHJlcS5lbmQoZm4pO1xuICAgIH1cbiAgICByZXR1cm4gcmVxO1xuICB9O1xufSk7XG5cbkFnZW50LnByb3RvdHlwZS5kZWwgPSBBZ2VudC5wcm90b3R5cGVbJ2RlbGV0ZSddO1xuXG4vKipcbiAqIEdFVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuZ2V0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnR0VUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnF1ZXJ5KGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBIRUFEIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IFtkYXRhXSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5oZWFkID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnSEVBRCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5xdWVyeShkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogT1BUSU9OUyBxdWVyeSB0byBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBbZGF0YV0gb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3Qub3B0aW9ucyA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pIHtcbiAgdmFyIHJlcSA9IHJlcXVlc3QoJ09QVElPTlMnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgKGZuID0gZGF0YSksIChkYXRhID0gbnVsbCk7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogREVMRVRFIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gW2RhdGFdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBkZWwodXJsLCBkYXRhLCBmbikge1xuICB2YXIgcmVxID0gcmVxdWVzdCgnREVMRVRFJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59XG5cbnJlcXVlc3RbJ2RlbCddID0gZGVsO1xucmVxdWVzdFsnZGVsZXRlJ10gPSBkZWw7XG5cbi8qKlxuICogUEFUQ0ggYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBbZGF0YV1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbl1cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucGF0Y2ggPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQQVRDSCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSAoZm4gPSBkYXRhKSwgKGRhdGEgPSBudWxsKTtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQT1NUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gW2RhdGFdXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZm5dXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnBvc3QgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQT1NUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIChmbiA9IGRhdGEpLCAoZGF0YSA9IG51bGwpO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBVVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IFtkYXRhXSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wdXQgPSBmdW5jdGlvbih1cmwsIGRhdGEsIGZuKSB7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdQVVQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgKGZuID0gZGF0YSksIChkYXRhID0gbnVsbCk7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQ2hlY2sgaWYgYG9iamAgaXMgYW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc09iamVjdChvYmopIHtcbiAgcmV0dXJuIG51bGwgIT09IG9iaiAmJiAnb2JqZWN0JyA9PT0gdHlwZW9mIG9iajtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdDtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBNb2R1bGUgb2YgbWl4ZWQtaW4gZnVuY3Rpb25zIHNoYXJlZCBiZXR3ZWVuIG5vZGUgYW5kIGNsaWVudCBjb2RlXG4gKi9cbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXMtb2JqZWN0Jyk7XG5cbi8qKlxuICogRXhwb3NlIGBSZXF1ZXN0QmFzZWAuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBSZXF1ZXN0QmFzZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXF1ZXN0QmFzZWAuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0QmFzZShvYmopIHtcbiAgaWYgKG9iaikgcmV0dXJuIG1peGluKG9iaik7XG59XG5cbi8qKlxuICogTWl4aW4gdGhlIHByb3RvdHlwZSBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIG1peGluKG9iaikge1xuICBmb3IgKHZhciBrZXkgaW4gUmVxdWVzdEJhc2UucHJvdG90eXBlKSB7XG4gICAgb2JqW2tleV0gPSBSZXF1ZXN0QmFzZS5wcm90b3R5cGVba2V5XTtcbiAgfVxuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIENsZWFyIHByZXZpb3VzIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5jbGVhclRpbWVvdXQgPSBmdW5jdGlvbiBfY2xlYXJUaW1lb3V0KCl7XG4gIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcik7XG4gIGNsZWFyVGltZW91dCh0aGlzLl9yZXNwb25zZVRpbWVvdXRUaW1lcik7XG4gIGRlbGV0ZSB0aGlzLl90aW1lcjtcbiAgZGVsZXRlIHRoaXMuX3Jlc3BvbnNlVGltZW91dFRpbWVyO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCByZXNwb25zZSBib2R5IHBhcnNlclxuICpcbiAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgdG8gY29udmVydCBpbmNvbWluZyBkYXRhIGludG8gcmVxdWVzdC5ib2R5XG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnBhcnNlID0gZnVuY3Rpb24gcGFyc2UoZm4pe1xuICB0aGlzLl9wYXJzZXIgPSBmbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBmb3JtYXQgb2YgYmluYXJ5IHJlc3BvbnNlIGJvZHkuXG4gKiBJbiBicm93c2VyIHZhbGlkIGZvcm1hdHMgYXJlICdibG9iJyBhbmQgJ2FycmF5YnVmZmVyJyxcbiAqIHdoaWNoIHJldHVybiBCbG9iIGFuZCBBcnJheUJ1ZmZlciwgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEluIE5vZGUgYWxsIHZhbHVlcyByZXN1bHQgaW4gQnVmZmVyLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnJlc3BvbnNlVHlwZSgnYmxvYicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5yZXNwb25zZVR5cGUgPSBmdW5jdGlvbih2YWwpe1xuICB0aGlzLl9yZXNwb25zZVR5cGUgPSB2YWw7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBPdmVycmlkZSBkZWZhdWx0IHJlcXVlc3QgYm9keSBzZXJpYWxpemVyXG4gKlxuICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB0byBjb252ZXJ0IGRhdGEgc2V0IHZpYSAuc2VuZCBvciAuYXR0YWNoIGludG8gcGF5bG9hZCB0byBzZW5kXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnNlcmlhbGl6ZSA9IGZ1bmN0aW9uIHNlcmlhbGl6ZShmbil7XG4gIHRoaXMuX3NlcmlhbGl6ZXIgPSBmbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCB0aW1lb3V0cy5cbiAqXG4gKiAtIHJlc3BvbnNlIHRpbWVvdXQgaXMgdGltZSBiZXR3ZWVuIHNlbmRpbmcgcmVxdWVzdCBhbmQgcmVjZWl2aW5nIHRoZSBmaXJzdCBieXRlIG9mIHRoZSByZXNwb25zZS4gSW5jbHVkZXMgRE5TIGFuZCBjb25uZWN0aW9uIHRpbWUuXG4gKiAtIGRlYWRsaW5lIGlzIHRoZSB0aW1lIGZyb20gc3RhcnQgb2YgdGhlIHJlcXVlc3QgdG8gcmVjZWl2aW5nIHJlc3BvbnNlIGJvZHkgaW4gZnVsbC4gSWYgdGhlIGRlYWRsaW5lIGlzIHRvbyBzaG9ydCBsYXJnZSBmaWxlcyBtYXkgbm90IGxvYWQgYXQgYWxsIG9uIHNsb3cgY29ubmVjdGlvbnMuXG4gKlxuICogVmFsdWUgb2YgMCBvciBmYWxzZSBtZWFucyBubyB0aW1lb3V0LlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfE9iamVjdH0gbXMgb3Ige3Jlc3BvbnNlLCBkZWFkbGluZX1cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUudGltZW91dCA9IGZ1bmN0aW9uIHRpbWVvdXQob3B0aW9ucyl7XG4gIGlmICghb3B0aW9ucyB8fCAnb2JqZWN0JyAhPT0gdHlwZW9mIG9wdGlvbnMpIHtcbiAgICB0aGlzLl90aW1lb3V0ID0gb3B0aW9ucztcbiAgICB0aGlzLl9yZXNwb25zZVRpbWVvdXQgPSAwO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZm9yKHZhciBvcHRpb24gaW4gb3B0aW9ucykge1xuICAgIHN3aXRjaChvcHRpb24pIHtcbiAgICAgIGNhc2UgJ2RlYWRsaW5lJzpcbiAgICAgICAgdGhpcy5fdGltZW91dCA9IG9wdGlvbnMuZGVhZGxpbmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVzcG9uc2UnOlxuICAgICAgICB0aGlzLl9yZXNwb25zZVRpbWVvdXQgPSBvcHRpb25zLnJlc3BvbnNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUud2FybihcIlVua25vd24gdGltZW91dCBvcHRpb25cIiwgb3B0aW9uKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBudW1iZXIgb2YgcmV0cnkgYXR0ZW1wdHMgb24gZXJyb3IuXG4gKlxuICogRmFpbGVkIHJlcXVlc3RzIHdpbGwgYmUgcmV0cmllZCAnY291bnQnIHRpbWVzIGlmIHRpbWVvdXQgb3IgZXJyLmNvZGUgPj0gNTAwLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb3VudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuXVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5yZXRyeSA9IGZ1bmN0aW9uIHJldHJ5KGNvdW50LCBmbil7XG4gIC8vIERlZmF1bHQgdG8gMSBpZiBubyBjb3VudCBwYXNzZWQgb3IgdHJ1ZVxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCB8fCBjb3VudCA9PT0gdHJ1ZSkgY291bnQgPSAxO1xuICBpZiAoY291bnQgPD0gMCkgY291bnQgPSAwO1xuICB0aGlzLl9tYXhSZXRyaWVzID0gY291bnQ7XG4gIHRoaXMuX3JldHJpZXMgPSAwO1xuICB0aGlzLl9yZXRyeUNhbGxiYWNrID0gZm47XG4gIHJldHVybiB0aGlzO1xufTtcblxudmFyIEVSUk9SX0NPREVTID0gW1xuICAnRUNPTk5SRVNFVCcsXG4gICdFVElNRURPVVQnLFxuICAnRUFERFJJTkZPJyxcbiAgJ0VTT0NLRVRUSU1FRE9VVCdcbl07XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgcmVxdWVzdCBzaG91bGQgYmUgcmV0cmllZC5cbiAqIChCb3Jyb3dlZCBmcm9tIHNlZ21lbnRpby9zdXBlcmFnZW50LXJldHJ5KVxuICpcbiAqIEBwYXJhbSB7RXJyb3J9IGVyclxuICogQHBhcmFtIHtSZXNwb25zZX0gW3Jlc11cbiAqIEByZXR1cm5zIHtCb29sZWFufVxuICovXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX3Nob3VsZFJldHJ5ID0gZnVuY3Rpb24oZXJyLCByZXMpIHtcbiAgaWYgKCF0aGlzLl9tYXhSZXRyaWVzIHx8IHRoaXMuX3JldHJpZXMrKyA+PSB0aGlzLl9tYXhSZXRyaWVzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh0aGlzLl9yZXRyeUNhbGxiYWNrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBvdmVycmlkZSA9IHRoaXMuX3JldHJ5Q2FsbGJhY2soZXJyLCByZXMpO1xuICAgICAgaWYgKG92ZXJyaWRlID09PSB0cnVlKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChvdmVycmlkZSA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcbiAgICAgIC8vIHVuZGVmaW5lZCBmYWxscyBiYWNrIHRvIGRlZmF1bHRzXG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgIH1cbiAgfVxuICBpZiAocmVzICYmIHJlcy5zdGF0dXMgJiYgcmVzLnN0YXR1cyA+PSA1MDAgJiYgcmVzLnN0YXR1cyAhPSA1MDEpIHJldHVybiB0cnVlO1xuICBpZiAoZXJyKSB7XG4gICAgaWYgKGVyci5jb2RlICYmIH5FUlJPUl9DT0RFUy5pbmRleE9mKGVyci5jb2RlKSkgcmV0dXJuIHRydWU7XG4gICAgLy8gU3VwZXJhZ2VudCB0aW1lb3V0XG4gICAgaWYgKGVyci50aW1lb3V0ICYmIGVyci5jb2RlID09ICdFQ09OTkFCT1JURUQnKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZXJyLmNyb3NzRG9tYWluKSByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIFJldHJ5IHJlcXVlc3RcbiAqXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5fcmV0cnkgPSBmdW5jdGlvbigpIHtcblxuICB0aGlzLmNsZWFyVGltZW91dCgpO1xuXG4gIC8vIG5vZGVcbiAgaWYgKHRoaXMucmVxKSB7XG4gICAgdGhpcy5yZXEgPSBudWxsO1xuICAgIHRoaXMucmVxID0gdGhpcy5yZXF1ZXN0KCk7XG4gIH1cblxuICB0aGlzLl9hYm9ydGVkID0gZmFsc2U7XG4gIHRoaXMudGltZWRvdXQgPSBmYWxzZTtcblxuICByZXR1cm4gdGhpcy5fZW5kKCk7XG59O1xuXG4vKipcbiAqIFByb21pc2Ugc3VwcG9ydFxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlc29sdmVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtyZWplY3RdXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS50aGVuID0gZnVuY3Rpb24gdGhlbihyZXNvbHZlLCByZWplY3QpIHtcbiAgaWYgKCF0aGlzLl9mdWxsZmlsbGVkUHJvbWlzZSkge1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBpZiAodGhpcy5fZW5kQ2FsbGVkKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJXYXJuaW5nOiBzdXBlcmFnZW50IHJlcXVlc3Qgd2FzIHNlbnQgdHdpY2UsIGJlY2F1c2UgYm90aCAuZW5kKCkgYW5kIC50aGVuKCkgd2VyZSBjYWxsZWQuIE5ldmVyIGNhbGwgLmVuZCgpIGlmIHlvdSB1c2UgcHJvbWlzZXNcIik7XG4gICAgfVxuICAgIHRoaXMuX2Z1bGxmaWxsZWRQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24oaW5uZXJSZXNvbHZlLCBpbm5lclJlamVjdCkge1xuICAgICAgc2VsZi5lbmQoZnVuY3Rpb24oZXJyLCByZXMpIHtcbiAgICAgICAgaWYgKGVycikgaW5uZXJSZWplY3QoZXJyKTtcbiAgICAgICAgZWxzZSBpbm5lclJlc29sdmUocmVzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiB0aGlzLl9mdWxsZmlsbGVkUHJvbWlzZS50aGVuKHJlc29sdmUsIHJlamVjdCk7XG59O1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGVbJ2NhdGNoJ10gPSBmdW5jdGlvbihjYikge1xuICByZXR1cm4gdGhpcy50aGVuKHVuZGVmaW5lZCwgY2IpO1xufTtcblxuLyoqXG4gKiBBbGxvdyBmb3IgZXh0ZW5zaW9uXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uIHVzZShmbikge1xuICBmbih0aGlzKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUub2sgPSBmdW5jdGlvbihjYikge1xuICBpZiAoJ2Z1bmN0aW9uJyAhPT0gdHlwZW9mIGNiKSB0aHJvdyBFcnJvcihcIkNhbGxiYWNrIHJlcXVpcmVkXCIpO1xuICB0aGlzLl9va0NhbGxiYWNrID0gY2I7XG4gIHJldHVybiB0aGlzO1xufTtcblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLl9pc1Jlc3BvbnNlT0sgPSBmdW5jdGlvbihyZXMpIHtcbiAgaWYgKCFyZXMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodGhpcy5fb2tDYWxsYmFjaykge1xuICAgIHJldHVybiB0aGlzLl9va0NhbGxiYWNrKHJlcyk7XG4gIH1cblxuICByZXR1cm4gcmVzLnN0YXR1cyA+PSAyMDAgJiYgcmVzLnN0YXR1cyA8IDMwMDtcbn07XG5cbi8qKlxuICogR2V0IHJlcXVlc3QgaGVhZGVyIGBmaWVsZGAuXG4gKiBDYXNlLWluc2Vuc2l0aXZlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oZmllbGQpe1xuICByZXR1cm4gdGhpcy5faGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xufTtcblxuLyoqXG4gKiBHZXQgY2FzZS1pbnNlbnNpdGl2ZSBoZWFkZXIgYGZpZWxkYCB2YWx1ZS5cbiAqIFRoaXMgaXMgYSBkZXByZWNhdGVkIGludGVybmFsIEFQSS4gVXNlIGAuZ2V0KGZpZWxkKWAgaW5zdGVhZC5cbiAqXG4gKiAoZ2V0SGVhZGVyIGlzIG5vIGxvbmdlciB1c2VkIGludGVybmFsbHkgYnkgdGhlIHN1cGVyYWdlbnQgY29kZSBiYXNlKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKiBAZGVwcmVjYXRlZFxuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5nZXRIZWFkZXIgPSBSZXF1ZXN0QmFzZS5wcm90b3R5cGUuZ2V0O1xuXG4vKipcbiAqIFNldCBoZWFkZXIgYGZpZWxkYCB0byBgdmFsYCwgb3IgbXVsdGlwbGUgZmllbGRzIHdpdGggb25lIG9iamVjdC5cbiAqIENhc2UtaW5zZW5zaXRpdmUuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICByZXEuZ2V0KCcvJylcbiAqICAgICAgICAuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLnNldCgnWC1BUEktS2V5JywgJ2Zvb2JhcicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogICAgICByZXEuZ2V0KCcvJylcbiAqICAgICAgICAuc2V0KHsgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsICdYLUFQSS1LZXknOiAnZm9vYmFyJyB9KVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZmllbGRcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oZmllbGQsIHZhbCl7XG4gIGlmIChpc09iamVjdChmaWVsZCkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gZmllbGQpIHtcbiAgICAgIHRoaXMuc2V0KGtleSwgZmllbGRba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXSA9IHZhbDtcbiAgdGhpcy5oZWFkZXJbZmllbGRdID0gdmFsO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmVtb3ZlIGhlYWRlciBgZmllbGRgLlxuICogQ2FzZS1pbnNlbnNpdGl2ZS5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnVuc2V0KCdVc2VyLUFnZW50JylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmllbGRcbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLnVuc2V0ID0gZnVuY3Rpb24oZmllbGQpe1xuICBkZWxldGUgdGhpcy5faGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xuICBkZWxldGUgdGhpcy5oZWFkZXJbZmllbGRdO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogV3JpdGUgdGhlIGZpZWxkIGBuYW1lYCBhbmQgYHZhbGAsIG9yIG11bHRpcGxlIGZpZWxkcyB3aXRoIG9uZSBvYmplY3RcbiAqIGZvciBcIm11bHRpcGFydC9mb3JtLWRhdGFcIiByZXF1ZXN0IGJvZGllcy5cbiAqXG4gKiBgYGAganNcbiAqIHJlcXVlc3QucG9zdCgnL3VwbG9hZCcpXG4gKiAgIC5maWVsZCgnZm9vJywgJ2JhcicpXG4gKiAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIHJlcXVlc3QucG9zdCgnL3VwbG9hZCcpXG4gKiAgIC5maWVsZCh7IGZvbzogJ2JhcicsIGJhejogJ3F1eCcgfSlcbiAqICAgLmVuZChjYWxsYmFjayk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IG5hbWVcbiAqIEBwYXJhbSB7U3RyaW5nfEJsb2J8RmlsZXxCdWZmZXJ8ZnMuUmVhZFN0cmVhbX0gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5maWVsZCA9IGZ1bmN0aW9uKG5hbWUsIHZhbCkge1xuICAvLyBuYW1lIHNob3VsZCBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gb2JqZWN0LlxuICBpZiAobnVsbCA9PT0gbmFtZSB8fCB1bmRlZmluZWQgPT09IG5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJy5maWVsZChuYW1lLCB2YWwpIG5hbWUgY2FuIG5vdCBiZSBlbXB0eScpO1xuICB9XG5cbiAgaWYgKHRoaXMuX2RhdGEpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiLmZpZWxkKCkgY2FuJ3QgYmUgdXNlZCBpZiAuc2VuZCgpIGlzIHVzZWQuIFBsZWFzZSB1c2Ugb25seSAuc2VuZCgpIG9yIG9ubHkgLmZpZWxkKCkgJiAuYXR0YWNoKClcIik7XG4gIH1cblxuICBpZiAoaXNPYmplY3QobmFtZSkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gbmFtZSkge1xuICAgICAgdGhpcy5maWVsZChrZXksIG5hbWVba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgIGZvciAodmFyIGkgaW4gdmFsKSB7XG4gICAgICB0aGlzLmZpZWxkKG5hbWUsIHZhbFtpXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gdmFsIHNob3VsZCBiZSBkZWZpbmVkIG5vd1xuICBpZiAobnVsbCA9PT0gdmFsIHx8IHVuZGVmaW5lZCA9PT0gdmFsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCcuZmllbGQobmFtZSwgdmFsKSB2YWwgY2FuIG5vdCBiZSBlbXB0eScpO1xuICB9XG4gIGlmICgnYm9vbGVhbicgPT09IHR5cGVvZiB2YWwpIHtcbiAgICB2YWwgPSAnJyArIHZhbDtcbiAgfVxuICB0aGlzLl9nZXRGb3JtRGF0YSgpLmFwcGVuZChuYW1lLCB2YWwpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWJvcnQgdGhlIHJlcXVlc3QsIGFuZCBjbGVhciBwb3RlbnRpYWwgdGltZW91dC5cbiAqXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuUmVxdWVzdEJhc2UucHJvdG90eXBlLmFib3J0ID0gZnVuY3Rpb24oKXtcbiAgaWYgKHRoaXMuX2Fib3J0ZWQpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB0aGlzLl9hYm9ydGVkID0gdHJ1ZTtcbiAgdGhpcy54aHIgJiYgdGhpcy54aHIuYWJvcnQoKTsgLy8gYnJvd3NlclxuICB0aGlzLnJlcSAmJiB0aGlzLnJlcS5hYm9ydCgpOyAvLyBub2RlXG4gIHRoaXMuY2xlYXJUaW1lb3V0KCk7XG4gIHRoaXMuZW1pdCgnYWJvcnQnKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX2F1dGggPSBmdW5jdGlvbih1c2VyLCBwYXNzLCBvcHRpb25zLCBiYXNlNjRFbmNvZGVyKSB7XG4gIHN3aXRjaCAob3B0aW9ucy50eXBlKSB7XG4gICAgY2FzZSAnYmFzaWMnOlxuICAgICAgdGhpcy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmFzaWMgJyArIGJhc2U2NEVuY29kZXIodXNlciArICc6JyArIHBhc3MpKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnYXV0byc6XG4gICAgICB0aGlzLnVzZXJuYW1lID0gdXNlcjtcbiAgICAgIHRoaXMucGFzc3dvcmQgPSBwYXNzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdiZWFyZXInOiAvLyB1c2FnZSB3b3VsZCBiZSAuYXV0aChhY2Nlc3NUb2tlbiwgeyB0eXBlOiAnYmVhcmVyJyB9KVxuICAgICAgdGhpcy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyB1c2VyKTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBFbmFibGUgdHJhbnNtaXNzaW9uIG9mIGNvb2tpZXMgd2l0aCB4LWRvbWFpbiByZXF1ZXN0cy5cbiAqXG4gKiBOb3RlIHRoYXQgZm9yIHRoaXMgdG8gd29yayB0aGUgb3JpZ2luIG11c3Qgbm90IGJlXG4gKiB1c2luZyBcIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblwiIHdpdGggYSB3aWxkY2FyZCxcbiAqIGFuZCBhbHNvIG11c3Qgc2V0IFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHNcIlxuICogdG8gXCJ0cnVlXCIuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUud2l0aENyZWRlbnRpYWxzID0gZnVuY3Rpb24ob24pIHtcbiAgLy8gVGhpcyBpcyBicm93c2VyLW9ubHkgZnVuY3Rpb25hbGl0eS4gTm9kZSBzaWRlIGlzIG5vLW9wLlxuICBpZiAob24gPT0gdW5kZWZpbmVkKSBvbiA9IHRydWU7XG4gIHRoaXMuX3dpdGhDcmVkZW50aWFscyA9IG9uO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IHRoZSBtYXggcmVkaXJlY3RzIHRvIGBuYC4gRG9lcyBub3RpbmcgaW4gYnJvd3NlciBYSFIgaW1wbGVtZW50YXRpb24uXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG5cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUucmVkaXJlY3RzID0gZnVuY3Rpb24obil7XG4gIHRoaXMuX21heFJlZGlyZWN0cyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBNYXhpbXVtIHNpemUgb2YgYnVmZmVyZWQgcmVzcG9uc2UgYm9keSwgaW4gYnl0ZXMuIENvdW50cyB1bmNvbXByZXNzZWQgc2l6ZS5cbiAqIERlZmF1bHQgMjAwTUIuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG5cbiAqIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuICovXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUubWF4UmVzcG9uc2VTaXplID0gZnVuY3Rpb24obil7XG4gIGlmICgnbnVtYmVyJyAhPT0gdHlwZW9mIG4pIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50XCIpO1xuICB9XG4gIHRoaXMuX21heFJlc3BvbnNlU2l6ZSA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0IHRvIGEgcGxhaW4gamF2YXNjcmlwdCBvYmplY3QgKG5vdCBKU09OIHN0cmluZykgb2Ygc2NhbGFyIHByb3BlcnRpZXMuXG4gKiBOb3RlIGFzIHRoaXMgbWV0aG9kIGlzIGRlc2lnbmVkIHRvIHJldHVybiBhIHVzZWZ1bCBub24tdGhpcyB2YWx1ZSxcbiAqIGl0IGNhbm5vdCBiZSBjaGFpbmVkLlxuICpcbiAqIEByZXR1cm4ge09iamVjdH0gZGVzY3JpYmluZyBtZXRob2QsIHVybCwgYW5kIGRhdGEgb2YgdGhpcyByZXF1ZXN0XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgIHVybDogdGhpcy51cmwsXG4gICAgZGF0YTogdGhpcy5fZGF0YSxcbiAgICBoZWFkZXJzOiB0aGlzLl9oZWFkZXIsXG4gIH07XG59O1xuXG4vKipcbiAqIFNlbmQgYGRhdGFgIGFzIHRoZSByZXF1ZXN0IGJvZHksIGRlZmF1bHRpbmcgdGhlIGAudHlwZSgpYCB0byBcImpzb25cIiB3aGVuXG4gKiBhbiBvYmplY3QgaXMgZ2l2ZW4uXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgICAgLy8gbWFudWFsIGpzb25cbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnanNvbicpXG4gKiAgICAgICAgIC5zZW5kKCd7XCJuYW1lXCI6XCJ0alwifScpXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gYXV0byBqc29uXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gbWFudWFsIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICogICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgIC50eXBlKCdmb3JtJylcbiAqICAgICAgICAgLnNlbmQoJ25hbWU9dGonKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGF1dG8geC13d3ctZm9ybS11cmxlbmNvZGVkXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2Zvcm0nKVxuICogICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBkZWZhdWx0cyB0byB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgLnNlbmQoJ25hbWU9dG9iaScpXG4gKiAgICAgICAgLnNlbmQoJ3NwZWNpZXM9ZmVycmV0JylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZGF0YVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5zZW5kID0gZnVuY3Rpb24oZGF0YSl7XG4gIHZhciBpc09iaiA9IGlzT2JqZWN0KGRhdGEpO1xuICB2YXIgdHlwZSA9IHRoaXMuX2hlYWRlclsnY29udGVudC10eXBlJ107XG5cbiAgaWYgKHRoaXMuX2Zvcm1EYXRhKSB7XG4gICAgY29uc29sZS5lcnJvcihcIi5zZW5kKCkgY2FuJ3QgYmUgdXNlZCBpZiAuYXR0YWNoKCkgb3IgLmZpZWxkKCkgaXMgdXNlZC4gUGxlYXNlIHVzZSBvbmx5IC5zZW5kKCkgb3Igb25seSAuZmllbGQoKSAmIC5hdHRhY2goKVwiKTtcbiAgfVxuXG4gIGlmIChpc09iaiAmJiAhdGhpcy5fZGF0YSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICB0aGlzLl9kYXRhID0gW107XG4gICAgfSBlbHNlIGlmICghdGhpcy5faXNIb3N0KGRhdGEpKSB7XG4gICAgICB0aGlzLl9kYXRhID0ge307XG4gICAgfVxuICB9IGVsc2UgaWYgKGRhdGEgJiYgdGhpcy5fZGF0YSAmJiB0aGlzLl9pc0hvc3QodGhpcy5fZGF0YSkpIHtcbiAgICB0aHJvdyBFcnJvcihcIkNhbid0IG1lcmdlIHRoZXNlIHNlbmQgY2FsbHNcIik7XG4gIH1cblxuICAvLyBtZXJnZVxuICBpZiAoaXNPYmogJiYgaXNPYmplY3QodGhpcy5fZGF0YSkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xuICAgICAgdGhpcy5fZGF0YVtrZXldID0gZGF0YVtrZXldO1xuICAgIH1cbiAgfSBlbHNlIGlmICgnc3RyaW5nJyA9PSB0eXBlb2YgZGF0YSkge1xuICAgIC8vIGRlZmF1bHQgdG8geC13d3ctZm9ybS11cmxlbmNvZGVkXG4gICAgaWYgKCF0eXBlKSB0aGlzLnR5cGUoJ2Zvcm0nKTtcbiAgICB0eXBlID0gdGhpcy5faGVhZGVyWydjb250ZW50LXR5cGUnXTtcbiAgICBpZiAoJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgPT0gdHlwZSkge1xuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuX2RhdGFcbiAgICAgICAgPyB0aGlzLl9kYXRhICsgJyYnICsgZGF0YVxuICAgICAgICA6IGRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2RhdGEgPSAodGhpcy5fZGF0YSB8fCAnJykgKyBkYXRhO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuXG4gIGlmICghaXNPYmogfHwgdGhpcy5faXNIb3N0KGRhdGEpKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBkZWZhdWx0IHRvIGpzb25cbiAgaWYgKCF0eXBlKSB0aGlzLnR5cGUoJ2pzb24nKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNvcnQgYHF1ZXJ5c3RyaW5nYCBieSB0aGUgc29ydCBmdW5jdGlvblxuICpcbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgICAvLyBkZWZhdWx0IG9yZGVyXG4gKiAgICAgICByZXF1ZXN0LmdldCgnL3VzZXInKVxuICogICAgICAgICAucXVlcnkoJ25hbWU9TmljaycpXG4gKiAgICAgICAgIC5xdWVyeSgnc2VhcmNoPU1hbm55JylcbiAqICAgICAgICAgLnNvcnRRdWVyeSgpXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gY3VzdG9taXplZCBzb3J0IGZ1bmN0aW9uXG4gKiAgICAgICByZXF1ZXN0LmdldCgnL3VzZXInKVxuICogICAgICAgICAucXVlcnkoJ25hbWU9TmljaycpXG4gKiAgICAgICAgIC5xdWVyeSgnc2VhcmNoPU1hbm55JylcbiAqICAgICAgICAgLnNvcnRRdWVyeShmdW5jdGlvbihhLCBiKXtcbiAqICAgICAgICAgICByZXR1cm4gYS5sZW5ndGggLSBiLmxlbmd0aDtcbiAqICAgICAgICAgfSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc29ydFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5zb3J0UXVlcnkgPSBmdW5jdGlvbihzb3J0KSB7XG4gIC8vIF9zb3J0IGRlZmF1bHQgdG8gdHJ1ZSBidXQgb3RoZXJ3aXNlIGNhbiBiZSBhIGZ1bmN0aW9uIG9yIGJvb2xlYW5cbiAgdGhpcy5fc29ydCA9IHR5cGVvZiBzb3J0ID09PSAndW5kZWZpbmVkJyA/IHRydWUgOiBzb3J0O1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQ29tcG9zZSBxdWVyeXN0cmluZyB0byBhcHBlbmQgdG8gcmVxLnVybFxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5SZXF1ZXN0QmFzZS5wcm90b3R5cGUuX2ZpbmFsaXplUXVlcnlTdHJpbmcgPSBmdW5jdGlvbigpe1xuICB2YXIgcXVlcnkgPSB0aGlzLl9xdWVyeS5qb2luKCcmJyk7XG4gIGlmIChxdWVyeSkge1xuICAgIHRoaXMudXJsICs9ICh0aGlzLnVybC5pbmRleE9mKCc/JykgPj0gMCA/ICcmJyA6ICc/JykgKyBxdWVyeTtcbiAgfVxuICB0aGlzLl9xdWVyeS5sZW5ndGggPSAwOyAvLyBNYWtlcyB0aGUgY2FsbCBpZGVtcG90ZW50XG5cbiAgaWYgKHRoaXMuX3NvcnQpIHtcbiAgICB2YXIgaW5kZXggPSB0aGlzLnVybC5pbmRleE9mKCc/Jyk7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHZhciBxdWVyeUFyciA9IHRoaXMudXJsLnN1YnN0cmluZyhpbmRleCArIDEpLnNwbGl0KCcmJyk7XG4gICAgICBpZiAoJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIHRoaXMuX3NvcnQpIHtcbiAgICAgICAgcXVlcnlBcnIuc29ydCh0aGlzLl9zb3J0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXJ5QXJyLnNvcnQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXJsID0gdGhpcy51cmwuc3Vic3RyaW5nKDAsIGluZGV4KSArICc/JyArIHF1ZXJ5QXJyLmpvaW4oJyYnKTtcbiAgICB9XG4gIH1cbn07XG5cbi8vIEZvciBiYWNrd2FyZHMgY29tcGF0IG9ubHlcblJlcXVlc3RCYXNlLnByb3RvdHlwZS5fYXBwZW5kUXVlcnlTdHJpbmcgPSBmdW5jdGlvbigpIHtjb25zb2xlLnRyYWNlKFwiVW5zdXBwb3J0ZWRcIik7fVxuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHRpbWVvdXQgZXJyb3IuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdEJhc2UucHJvdG90eXBlLl90aW1lb3V0RXJyb3IgPSBmdW5jdGlvbihyZWFzb24sIHRpbWVvdXQsIGVycm5vKXtcbiAgaWYgKHRoaXMuX2Fib3J0ZWQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIGVyciA9IG5ldyBFcnJvcihyZWFzb24gKyB0aW1lb3V0ICsgJ21zIGV4Y2VlZGVkJyk7XG4gIGVyci50aW1lb3V0ID0gdGltZW91dDtcbiAgZXJyLmNvZGUgPSAnRUNPTk5BQk9SVEVEJztcbiAgZXJyLmVycm5vID0gZXJybm87XG4gIHRoaXMudGltZWRvdXQgPSB0cnVlO1xuICB0aGlzLmFib3J0KCk7XG4gIHRoaXMuY2FsbGJhY2soZXJyKTtcbn07XG5cblJlcXVlc3RCYXNlLnByb3RvdHlwZS5fc2V0VGltZW91dHMgPSBmdW5jdGlvbigpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gIC8vIGRlYWRsaW5lXG4gIGlmICh0aGlzLl90aW1lb3V0ICYmICF0aGlzLl90aW1lcikge1xuICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpe1xuICAgICAgc2VsZi5fdGltZW91dEVycm9yKCdUaW1lb3V0IG9mICcsIHNlbGYuX3RpbWVvdXQsICdFVElNRScpO1xuICAgIH0sIHRoaXMuX3RpbWVvdXQpO1xuICB9XG4gIC8vIHJlc3BvbnNlIHRpbWVvdXRcbiAgaWYgKHRoaXMuX3Jlc3BvbnNlVGltZW91dCAmJiAhdGhpcy5fcmVzcG9uc2VUaW1lb3V0VGltZXIpIHtcbiAgICB0aGlzLl9yZXNwb25zZVRpbWVvdXRUaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgIHNlbGYuX3RpbWVvdXRFcnJvcignUmVzcG9uc2UgdGltZW91dCBvZiAnLCBzZWxmLl9yZXNwb25zZVRpbWVvdXQsICdFVElNRURPVVQnKTtcbiAgICB9LCB0aGlzLl9yZXNwb25zZVRpbWVvdXQpO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG4vKipcbiAqIEV4cG9zZSBgUmVzcG9uc2VCYXNlYC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlc3BvbnNlQmFzZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXNwb25zZUJhc2VgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gUmVzcG9uc2VCYXNlKG9iaikge1xuICBpZiAob2JqKSByZXR1cm4gbWl4aW4ob2JqKTtcbn1cblxuLyoqXG4gKiBNaXhpbiB0aGUgcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7T2JqZWN0fVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbWl4aW4ob2JqKSB7XG4gIGZvciAodmFyIGtleSBpbiBSZXNwb25zZUJhc2UucHJvdG90eXBlKSB7XG4gICAgb2JqW2tleV0gPSBSZXNwb25zZUJhc2UucHJvdG90eXBlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLyoqXG4gKiBHZXQgY2FzZS1pbnNlbnNpdGl2ZSBgZmllbGRgIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZUJhc2UucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGZpZWxkKSB7XG4gIHJldHVybiB0aGlzLmhlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciByZWxhdGVkIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGAudHlwZWAgdGhlIGNvbnRlbnQgdHlwZSB3aXRob3V0IHBhcmFtc1xuICpcbiAqIEEgcmVzcG9uc2Ugb2YgXCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLThcIlxuICogd2lsbCBwcm92aWRlIHlvdSB3aXRoIGEgYC50eXBlYCBvZiBcInRleHQvcGxhaW5cIi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaGVhZGVyXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZUJhc2UucHJvdG90eXBlLl9zZXRIZWFkZXJQcm9wZXJ0aWVzID0gZnVuY3Rpb24oaGVhZGVyKXtcbiAgICAvLyBUT0RPOiBtb2FyIVxuICAgIC8vIFRPRE86IG1ha2UgdGhpcyBhIHV0aWxcblxuICAgIC8vIGNvbnRlbnQtdHlwZVxuICAgIHZhciBjdCA9IGhlYWRlclsnY29udGVudC10eXBlJ10gfHwgJyc7XG4gICAgdGhpcy50eXBlID0gdXRpbHMudHlwZShjdCk7XG5cbiAgICAvLyBwYXJhbXNcbiAgICB2YXIgcGFyYW1zID0gdXRpbHMucGFyYW1zKGN0KTtcbiAgICBmb3IgKHZhciBrZXkgaW4gcGFyYW1zKSB0aGlzW2tleV0gPSBwYXJhbXNba2V5XTtcblxuICAgIHRoaXMubGlua3MgPSB7fTtcblxuICAgIC8vIGxpbmtzXG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKGhlYWRlci5saW5rKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmtzID0gdXRpbHMucGFyc2VMaW5rcyhoZWFkZXIubGluayk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gaWdub3JlXG4gICAgfVxufTtcblxuLyoqXG4gKiBTZXQgZmxhZ3Mgc3VjaCBhcyBgLm9rYCBiYXNlZCBvbiBgc3RhdHVzYC5cbiAqXG4gKiBGb3IgZXhhbXBsZSBhIDJ4eCByZXNwb25zZSB3aWxsIGdpdmUgeW91IGEgYC5va2Agb2YgX190cnVlX19cbiAqIHdoZXJlYXMgNXh4IHdpbGwgYmUgX19mYWxzZV9fIGFuZCBgLmVycm9yYCB3aWxsIGJlIF9fdHJ1ZV9fLiBUaGVcbiAqIGAuY2xpZW50RXJyb3JgIGFuZCBgLnNlcnZlckVycm9yYCBhcmUgYWxzbyBhdmFpbGFibGUgdG8gYmUgbW9yZVxuICogc3BlY2lmaWMsIGFuZCBgLnN0YXR1c1R5cGVgIGlzIHRoZSBjbGFzcyBvZiBlcnJvciByYW5naW5nIGZyb20gMS4uNVxuICogc29tZXRpbWVzIHVzZWZ1bCBmb3IgbWFwcGluZyByZXNwb25kIGNvbG9ycyBldGMuXG4gKlxuICogXCJzdWdhclwiIHByb3BlcnRpZXMgYXJlIGFsc28gZGVmaW5lZCBmb3IgY29tbW9uIGNhc2VzLiBDdXJyZW50bHkgcHJvdmlkaW5nOlxuICpcbiAqICAgLSAubm9Db250ZW50XG4gKiAgIC0gLmJhZFJlcXVlc3RcbiAqICAgLSAudW5hdXRob3JpemVkXG4gKiAgIC0gLm5vdEFjY2VwdGFibGVcbiAqICAgLSAubm90Rm91bmRcbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gc3RhdHVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZUJhc2UucHJvdG90eXBlLl9zZXRTdGF0dXNQcm9wZXJ0aWVzID0gZnVuY3Rpb24oc3RhdHVzKXtcbiAgICB2YXIgdHlwZSA9IHN0YXR1cyAvIDEwMCB8IDA7XG5cbiAgICAvLyBzdGF0dXMgLyBjbGFzc1xuICAgIHRoaXMuc3RhdHVzID0gdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzO1xuICAgIHRoaXMuc3RhdHVzVHlwZSA9IHR5cGU7XG5cbiAgICAvLyBiYXNpY3NcbiAgICB0aGlzLmluZm8gPSAxID09IHR5cGU7XG4gICAgdGhpcy5vayA9IDIgPT0gdHlwZTtcbiAgICB0aGlzLnJlZGlyZWN0ID0gMyA9PSB0eXBlO1xuICAgIHRoaXMuY2xpZW50RXJyb3IgPSA0ID09IHR5cGU7XG4gICAgdGhpcy5zZXJ2ZXJFcnJvciA9IDUgPT0gdHlwZTtcbiAgICB0aGlzLmVycm9yID0gKDQgPT0gdHlwZSB8fCA1ID09IHR5cGUpXG4gICAgICAgID8gdGhpcy50b0Vycm9yKClcbiAgICAgICAgOiBmYWxzZTtcblxuICAgIC8vIHN1Z2FyXG4gICAgdGhpcy5jcmVhdGVkID0gMjAxID09IHN0YXR1cztcbiAgICB0aGlzLmFjY2VwdGVkID0gMjAyID09IHN0YXR1cztcbiAgICB0aGlzLm5vQ29udGVudCA9IDIwNCA9PSBzdGF0dXM7XG4gICAgdGhpcy5iYWRSZXF1ZXN0ID0gNDAwID09IHN0YXR1cztcbiAgICB0aGlzLnVuYXV0aG9yaXplZCA9IDQwMSA9PSBzdGF0dXM7XG4gICAgdGhpcy5ub3RBY2NlcHRhYmxlID0gNDA2ID09IHN0YXR1cztcbiAgICB0aGlzLmZvcmJpZGRlbiA9IDQwMyA9PSBzdGF0dXM7XG4gICAgdGhpcy5ub3RGb3VuZCA9IDQwNCA9PSBzdGF0dXM7XG4gICAgdGhpcy51bnByb2Nlc3NhYmxlRW50aXR5ID0gNDIyID09IHN0YXR1cztcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qKlxuICogUmV0dXJuIHRoZSBtaW1lIHR5cGUgZm9yIHRoZSBnaXZlbiBgc3RyYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLnR5cGUgPSBmdW5jdGlvbihzdHIpe1xuICByZXR1cm4gc3RyLnNwbGl0KC8gKjsgKi8pLnNoaWZ0KCk7XG59O1xuXG4vKipcbiAqIFJldHVybiBoZWFkZXIgZmllbGQgcGFyYW1ldGVycy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLnBhcmFtcyA9IGZ1bmN0aW9uKHN0cil7XG4gIHJldHVybiBzdHIuc3BsaXQoLyAqOyAqLykucmVkdWNlKGZ1bmN0aW9uKG9iaiwgc3RyKXtcbiAgICB2YXIgcGFydHMgPSBzdHIuc3BsaXQoLyAqPSAqLyk7XG4gICAgdmFyIGtleSA9IHBhcnRzLnNoaWZ0KCk7XG4gICAgdmFyIHZhbCA9IHBhcnRzLnNoaWZ0KCk7XG5cbiAgICBpZiAoa2V5ICYmIHZhbCkgb2JqW2tleV0gPSB2YWw7XG4gICAgcmV0dXJuIG9iajtcbiAgfSwge30pO1xufTtcblxuLyoqXG4gKiBQYXJzZSBMaW5rIGhlYWRlciBmaWVsZHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7T2JqZWN0fVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZXhwb3J0cy5wYXJzZUxpbmtzID0gZnVuY3Rpb24oc3RyKXtcbiAgcmV0dXJuIHN0ci5zcGxpdCgvICosICovKS5yZWR1Y2UoZnVuY3Rpb24ob2JqLCBzdHIpe1xuICAgIHZhciBwYXJ0cyA9IHN0ci5zcGxpdCgvICo7ICovKTtcbiAgICB2YXIgdXJsID0gcGFydHNbMF0uc2xpY2UoMSwgLTEpO1xuICAgIHZhciByZWwgPSBwYXJ0c1sxXS5zcGxpdCgvICo9ICovKVsxXS5zbGljZSgxLCAtMSk7XG4gICAgb2JqW3JlbF0gPSB1cmw7XG4gICAgcmV0dXJuIG9iajtcbiAgfSwge30pO1xufTtcblxuLyoqXG4gKiBTdHJpcCBjb250ZW50IHJlbGF0ZWQgZmllbGRzIGZyb20gYGhlYWRlcmAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGhlYWRlclxuICogQHJldHVybiB7T2JqZWN0fSBoZWFkZXJcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMuY2xlYW5IZWFkZXIgPSBmdW5jdGlvbihoZWFkZXIsIGNoYW5nZXNPcmlnaW4pe1xuICBkZWxldGUgaGVhZGVyWydjb250ZW50LXR5cGUnXTtcbiAgZGVsZXRlIGhlYWRlclsnY29udGVudC1sZW5ndGgnXTtcbiAgZGVsZXRlIGhlYWRlclsndHJhbnNmZXItZW5jb2RpbmcnXTtcbiAgZGVsZXRlIGhlYWRlclsnaG9zdCddO1xuICAvLyBzZWN1aXJ0eVxuICBpZiAoY2hhbmdlc09yaWdpbikge1xuICAgIGRlbGV0ZSBoZWFkZXJbJ2F1dGhvcml6YXRpb24nXTtcbiAgICBkZWxldGUgaGVhZGVyWydjb29raWUnXTtcbiAgfVxuICByZXR1cm4gaGVhZGVyO1xufTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG52YXIgcHVueWNvZGUgPSByZXF1aXJlKCdwdW55Y29kZScpO1xuXG5leHBvcnRzLnBhcnNlID0gdXJsUGFyc2U7XG5leHBvcnRzLnJlc29sdmUgPSB1cmxSZXNvbHZlO1xuZXhwb3J0cy5yZXNvbHZlT2JqZWN0ID0gdXJsUmVzb2x2ZU9iamVjdDtcbmV4cG9ydHMuZm9ybWF0ID0gdXJsRm9ybWF0O1xuXG5leHBvcnRzLlVybCA9IFVybDtcblxuZnVuY3Rpb24gVXJsKCkge1xuICB0aGlzLnByb3RvY29sID0gbnVsbDtcbiAgdGhpcy5zbGFzaGVzID0gbnVsbDtcbiAgdGhpcy5hdXRoID0gbnVsbDtcbiAgdGhpcy5ob3N0ID0gbnVsbDtcbiAgdGhpcy5wb3J0ID0gbnVsbDtcbiAgdGhpcy5ob3N0bmFtZSA9IG51bGw7XG4gIHRoaXMuaGFzaCA9IG51bGw7XG4gIHRoaXMuc2VhcmNoID0gbnVsbDtcbiAgdGhpcy5xdWVyeSA9IG51bGw7XG4gIHRoaXMucGF0aG5hbWUgPSBudWxsO1xuICB0aGlzLnBhdGggPSBudWxsO1xuICB0aGlzLmhyZWYgPSBudWxsO1xufVxuXG4vLyBSZWZlcmVuY2U6IFJGQyAzOTg2LCBSRkMgMTgwOCwgUkZDIDIzOTZcblxuLy8gZGVmaW5lIHRoZXNlIGhlcmUgc28gYXQgbGVhc3QgdGhleSBvbmx5IGhhdmUgdG8gYmVcbi8vIGNvbXBpbGVkIG9uY2Ugb24gdGhlIGZpcnN0IG1vZHVsZSBsb2FkLlxudmFyIHByb3RvY29sUGF0dGVybiA9IC9eKFthLXowLTkuKy1dKzopL2ksXG4gICAgcG9ydFBhdHRlcm4gPSAvOlswLTldKiQvLFxuXG4gICAgLy8gUkZDIDIzOTY6IGNoYXJhY3RlcnMgcmVzZXJ2ZWQgZm9yIGRlbGltaXRpbmcgVVJMcy5cbiAgICAvLyBXZSBhY3R1YWxseSBqdXN0IGF1dG8tZXNjYXBlIHRoZXNlLlxuICAgIGRlbGltcyA9IFsnPCcsICc+JywgJ1wiJywgJ2AnLCAnICcsICdcXHInLCAnXFxuJywgJ1xcdCddLFxuXG4gICAgLy8gUkZDIDIzOTY6IGNoYXJhY3RlcnMgbm90IGFsbG93ZWQgZm9yIHZhcmlvdXMgcmVhc29ucy5cbiAgICB1bndpc2UgPSBbJ3snLCAnfScsICd8JywgJ1xcXFwnLCAnXicsICdgJ10uY29uY2F0KGRlbGltcyksXG5cbiAgICAvLyBBbGxvd2VkIGJ5IFJGQ3MsIGJ1dCBjYXVzZSBvZiBYU1MgYXR0YWNrcy4gIEFsd2F5cyBlc2NhcGUgdGhlc2UuXG4gICAgYXV0b0VzY2FwZSA9IFsnXFwnJ10uY29uY2F0KHVud2lzZSksXG4gICAgLy8gQ2hhcmFjdGVycyB0aGF0IGFyZSBuZXZlciBldmVyIGFsbG93ZWQgaW4gYSBob3N0bmFtZS5cbiAgICAvLyBOb3RlIHRoYXQgYW55IGludmFsaWQgY2hhcnMgYXJlIGFsc28gaGFuZGxlZCwgYnV0IHRoZXNlXG4gICAgLy8gYXJlIHRoZSBvbmVzIHRoYXQgYXJlICpleHBlY3RlZCogdG8gYmUgc2Vlbiwgc28gd2UgZmFzdC1wYXRoXG4gICAgLy8gdGhlbS5cbiAgICBub25Ib3N0Q2hhcnMgPSBbJyUnLCAnLycsICc/JywgJzsnLCAnIyddLmNvbmNhdChhdXRvRXNjYXBlKSxcbiAgICBob3N0RW5kaW5nQ2hhcnMgPSBbJy8nLCAnPycsICcjJ10sXG4gICAgaG9zdG5hbWVNYXhMZW4gPSAyNTUsXG4gICAgaG9zdG5hbWVQYXJ0UGF0dGVybiA9IC9eW2EtejAtOUEtWl8tXXswLDYzfSQvLFxuICAgIGhvc3RuYW1lUGFydFN0YXJ0ID0gL14oW2EtejAtOUEtWl8tXXswLDYzfSkoLiopJC8sXG4gICAgLy8gcHJvdG9jb2xzIHRoYXQgY2FuIGFsbG93IFwidW5zYWZlXCIgYW5kIFwidW53aXNlXCIgY2hhcnMuXG4gICAgdW5zYWZlUHJvdG9jb2wgPSB7XG4gICAgICAnamF2YXNjcmlwdCc6IHRydWUsXG4gICAgICAnamF2YXNjcmlwdDonOiB0cnVlXG4gICAgfSxcbiAgICAvLyBwcm90b2NvbHMgdGhhdCBuZXZlciBoYXZlIGEgaG9zdG5hbWUuXG4gICAgaG9zdGxlc3NQcm90b2NvbCA9IHtcbiAgICAgICdqYXZhc2NyaXB0JzogdHJ1ZSxcbiAgICAgICdqYXZhc2NyaXB0Oic6IHRydWVcbiAgICB9LFxuICAgIC8vIHByb3RvY29scyB0aGF0IGFsd2F5cyBjb250YWluIGEgLy8gYml0LlxuICAgIHNsYXNoZWRQcm90b2NvbCA9IHtcbiAgICAgICdodHRwJzogdHJ1ZSxcbiAgICAgICdodHRwcyc6IHRydWUsXG4gICAgICAnZnRwJzogdHJ1ZSxcbiAgICAgICdnb3BoZXInOiB0cnVlLFxuICAgICAgJ2ZpbGUnOiB0cnVlLFxuICAgICAgJ2h0dHA6JzogdHJ1ZSxcbiAgICAgICdodHRwczonOiB0cnVlLFxuICAgICAgJ2Z0cDonOiB0cnVlLFxuICAgICAgJ2dvcGhlcjonOiB0cnVlLFxuICAgICAgJ2ZpbGU6JzogdHJ1ZVxuICAgIH0sXG4gICAgcXVlcnlzdHJpbmcgPSByZXF1aXJlKCdxdWVyeXN0cmluZycpO1xuXG5mdW5jdGlvbiB1cmxQYXJzZSh1cmwsIHBhcnNlUXVlcnlTdHJpbmcsIHNsYXNoZXNEZW5vdGVIb3N0KSB7XG4gIGlmICh1cmwgJiYgaXNPYmplY3QodXJsKSAmJiB1cmwgaW5zdGFuY2VvZiBVcmwpIHJldHVybiB1cmw7XG5cbiAgdmFyIHUgPSBuZXcgVXJsO1xuICB1LnBhcnNlKHVybCwgcGFyc2VRdWVyeVN0cmluZywgc2xhc2hlc0Rlbm90ZUhvc3QpO1xuICByZXR1cm4gdTtcbn1cblxuVXJsLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uKHVybCwgcGFyc2VRdWVyeVN0cmluZywgc2xhc2hlc0Rlbm90ZUhvc3QpIHtcbiAgaWYgKCFpc1N0cmluZyh1cmwpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlBhcmFtZXRlciAndXJsJyBtdXN0IGJlIGEgc3RyaW5nLCBub3QgXCIgKyB0eXBlb2YgdXJsKTtcbiAgfVxuXG4gIHZhciByZXN0ID0gdXJsO1xuXG4gIC8vIHRyaW0gYmVmb3JlIHByb2NlZWRpbmcuXG4gIC8vIFRoaXMgaXMgdG8gc3VwcG9ydCBwYXJzZSBzdHVmZiBsaWtlIFwiICBodHRwOi8vZm9vLmNvbSAgXFxuXCJcbiAgcmVzdCA9IHJlc3QudHJpbSgpO1xuXG4gIHZhciBwcm90byA9IHByb3RvY29sUGF0dGVybi5leGVjKHJlc3QpO1xuICBpZiAocHJvdG8pIHtcbiAgICBwcm90byA9IHByb3RvWzBdO1xuICAgIHZhciBsb3dlclByb3RvID0gcHJvdG8udG9Mb3dlckNhc2UoKTtcbiAgICB0aGlzLnByb3RvY29sID0gbG93ZXJQcm90bztcbiAgICByZXN0ID0gcmVzdC5zdWJzdHIocHJvdG8ubGVuZ3RoKTtcbiAgfVxuXG4gIC8vIGZpZ3VyZSBvdXQgaWYgaXQncyBnb3QgYSBob3N0XG4gIC8vIHVzZXJAc2VydmVyIGlzICphbHdheXMqIGludGVycHJldGVkIGFzIGEgaG9zdG5hbWUsIGFuZCB1cmxcbiAgLy8gcmVzb2x1dGlvbiB3aWxsIHRyZWF0IC8vZm9vL2JhciBhcyBob3N0PWZvbyxwYXRoPWJhciBiZWNhdXNlIHRoYXQnc1xuICAvLyBob3cgdGhlIGJyb3dzZXIgcmVzb2x2ZXMgcmVsYXRpdmUgVVJMcy5cbiAgaWYgKHNsYXNoZXNEZW5vdGVIb3N0IHx8IHByb3RvIHx8IHJlc3QubWF0Y2goL15cXC9cXC9bXkBcXC9dK0BbXkBcXC9dKy8pKSB7XG4gICAgdmFyIHNsYXNoZXMgPSByZXN0LnN1YnN0cigwLCAyKSA9PT0gJy8vJztcbiAgICBpZiAoc2xhc2hlcyAmJiAhKHByb3RvICYmIGhvc3RsZXNzUHJvdG9jb2xbcHJvdG9dKSkge1xuICAgICAgcmVzdCA9IHJlc3Quc3Vic3RyKDIpO1xuICAgICAgdGhpcy5zbGFzaGVzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWhvc3RsZXNzUHJvdG9jb2xbcHJvdG9dICYmXG4gICAgICAoc2xhc2hlcyB8fCAocHJvdG8gJiYgIXNsYXNoZWRQcm90b2NvbFtwcm90b10pKSkge1xuXG4gICAgLy8gdGhlcmUncyBhIGhvc3RuYW1lLlxuICAgIC8vIHRoZSBmaXJzdCBpbnN0YW5jZSBvZiAvLCA/LCA7LCBvciAjIGVuZHMgdGhlIGhvc3QuXG4gICAgLy9cbiAgICAvLyBJZiB0aGVyZSBpcyBhbiBAIGluIHRoZSBob3N0bmFtZSwgdGhlbiBub24taG9zdCBjaGFycyAqYXJlKiBhbGxvd2VkXG4gICAgLy8gdG8gdGhlIGxlZnQgb2YgdGhlIGxhc3QgQCBzaWduLCB1bmxlc3Mgc29tZSBob3N0LWVuZGluZyBjaGFyYWN0ZXJcbiAgICAvLyBjb21lcyAqYmVmb3JlKiB0aGUgQC1zaWduLlxuICAgIC8vIFVSTHMgYXJlIG9ibm94aW91cy5cbiAgICAvL1xuICAgIC8vIGV4OlxuICAgIC8vIGh0dHA6Ly9hQGJAYy8gPT4gdXNlcjphQGIgaG9zdDpjXG4gICAgLy8gaHR0cDovL2FAYj9AYyA9PiB1c2VyOmEgaG9zdDpjIHBhdGg6Lz9AY1xuXG4gICAgLy8gdjAuMTIgVE9ETyhpc2FhY3MpOiBUaGlzIGlzIG5vdCBxdWl0ZSBob3cgQ2hyb21lIGRvZXMgdGhpbmdzLlxuICAgIC8vIFJldmlldyBvdXIgdGVzdCBjYXNlIGFnYWluc3QgYnJvd3NlcnMgbW9yZSBjb21wcmVoZW5zaXZlbHkuXG5cbiAgICAvLyBmaW5kIHRoZSBmaXJzdCBpbnN0YW5jZSBvZiBhbnkgaG9zdEVuZGluZ0NoYXJzXG4gICAgdmFyIGhvc3RFbmQgPSAtMTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhvc3RFbmRpbmdDaGFycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGhlYyA9IHJlc3QuaW5kZXhPZihob3N0RW5kaW5nQ2hhcnNbaV0pO1xuICAgICAgaWYgKGhlYyAhPT0gLTEgJiYgKGhvc3RFbmQgPT09IC0xIHx8IGhlYyA8IGhvc3RFbmQpKVxuICAgICAgICBob3N0RW5kID0gaGVjO1xuICAgIH1cblxuICAgIC8vIGF0IHRoaXMgcG9pbnQsIGVpdGhlciB3ZSBoYXZlIGFuIGV4cGxpY2l0IHBvaW50IHdoZXJlIHRoZVxuICAgIC8vIGF1dGggcG9ydGlvbiBjYW5ub3QgZ28gcGFzdCwgb3IgdGhlIGxhc3QgQCBjaGFyIGlzIHRoZSBkZWNpZGVyLlxuICAgIHZhciBhdXRoLCBhdFNpZ247XG4gICAgaWYgKGhvc3RFbmQgPT09IC0xKSB7XG4gICAgICAvLyBhdFNpZ24gY2FuIGJlIGFueXdoZXJlLlxuICAgICAgYXRTaWduID0gcmVzdC5sYXN0SW5kZXhPZignQCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBhdFNpZ24gbXVzdCBiZSBpbiBhdXRoIHBvcnRpb24uXG4gICAgICAvLyBodHRwOi8vYUBiL2NAZCA9PiBob3N0OmIgYXV0aDphIHBhdGg6L2NAZFxuICAgICAgYXRTaWduID0gcmVzdC5sYXN0SW5kZXhPZignQCcsIGhvc3RFbmQpO1xuICAgIH1cblxuICAgIC8vIE5vdyB3ZSBoYXZlIGEgcG9ydGlvbiB3aGljaCBpcyBkZWZpbml0ZWx5IHRoZSBhdXRoLlxuICAgIC8vIFB1bGwgdGhhdCBvZmYuXG4gICAgaWYgKGF0U2lnbiAhPT0gLTEpIHtcbiAgICAgIGF1dGggPSByZXN0LnNsaWNlKDAsIGF0U2lnbik7XG4gICAgICByZXN0ID0gcmVzdC5zbGljZShhdFNpZ24gKyAxKTtcbiAgICAgIHRoaXMuYXV0aCA9IGRlY29kZVVSSUNvbXBvbmVudChhdXRoKTtcbiAgICB9XG5cbiAgICAvLyB0aGUgaG9zdCBpcyB0aGUgcmVtYWluaW5nIHRvIHRoZSBsZWZ0IG9mIHRoZSBmaXJzdCBub24taG9zdCBjaGFyXG4gICAgaG9zdEVuZCA9IC0xO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9uSG9zdENoYXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaGVjID0gcmVzdC5pbmRleE9mKG5vbkhvc3RDaGFyc1tpXSk7XG4gICAgICBpZiAoaGVjICE9PSAtMSAmJiAoaG9zdEVuZCA9PT0gLTEgfHwgaGVjIDwgaG9zdEVuZCkpXG4gICAgICAgIGhvc3RFbmQgPSBoZWM7XG4gICAgfVxuICAgIC8vIGlmIHdlIHN0aWxsIGhhdmUgbm90IGhpdCBpdCwgdGhlbiB0aGUgZW50aXJlIHRoaW5nIGlzIGEgaG9zdC5cbiAgICBpZiAoaG9zdEVuZCA9PT0gLTEpXG4gICAgICBob3N0RW5kID0gcmVzdC5sZW5ndGg7XG5cbiAgICB0aGlzLmhvc3QgPSByZXN0LnNsaWNlKDAsIGhvc3RFbmQpO1xuICAgIHJlc3QgPSByZXN0LnNsaWNlKGhvc3RFbmQpO1xuXG4gICAgLy8gcHVsbCBvdXQgcG9ydC5cbiAgICB0aGlzLnBhcnNlSG9zdCgpO1xuXG4gICAgLy8gd2UndmUgaW5kaWNhdGVkIHRoYXQgdGhlcmUgaXMgYSBob3N0bmFtZSxcbiAgICAvLyBzbyBldmVuIGlmIGl0J3MgZW1wdHksIGl0IGhhcyB0byBiZSBwcmVzZW50LlxuICAgIHRoaXMuaG9zdG5hbWUgPSB0aGlzLmhvc3RuYW1lIHx8ICcnO1xuXG4gICAgLy8gaWYgaG9zdG5hbWUgYmVnaW5zIHdpdGggWyBhbmQgZW5kcyB3aXRoIF1cbiAgICAvLyBhc3N1bWUgdGhhdCBpdCdzIGFuIElQdjYgYWRkcmVzcy5cbiAgICB2YXIgaXB2Nkhvc3RuYW1lID0gdGhpcy5ob3N0bmFtZVswXSA9PT0gJ1snICYmXG4gICAgICAgIHRoaXMuaG9zdG5hbWVbdGhpcy5ob3N0bmFtZS5sZW5ndGggLSAxXSA9PT0gJ10nO1xuXG4gICAgLy8gdmFsaWRhdGUgYSBsaXR0bGUuXG4gICAgaWYgKCFpcHY2SG9zdG5hbWUpIHtcbiAgICAgIHZhciBob3N0cGFydHMgPSB0aGlzLmhvc3RuYW1lLnNwbGl0KC9cXC4vKTtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gaG9zdHBhcnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICB2YXIgcGFydCA9IGhvc3RwYXJ0c1tpXTtcbiAgICAgICAgaWYgKCFwYXJ0KSBjb250aW51ZTtcbiAgICAgICAgaWYgKCFwYXJ0Lm1hdGNoKGhvc3RuYW1lUGFydFBhdHRlcm4pKSB7XG4gICAgICAgICAgdmFyIG5ld3BhcnQgPSAnJztcbiAgICAgICAgICBmb3IgKHZhciBqID0gMCwgayA9IHBhcnQubGVuZ3RoOyBqIDwgazsgaisrKSB7XG4gICAgICAgICAgICBpZiAocGFydC5jaGFyQ29kZUF0KGopID4gMTI3KSB7XG4gICAgICAgICAgICAgIC8vIHdlIHJlcGxhY2Ugbm9uLUFTQ0lJIGNoYXIgd2l0aCBhIHRlbXBvcmFyeSBwbGFjZWhvbGRlclxuICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRoaXMgdG8gbWFrZSBzdXJlIHNpemUgb2YgaG9zdG5hbWUgaXMgbm90XG4gICAgICAgICAgICAgIC8vIGJyb2tlbiBieSByZXBsYWNpbmcgbm9uLUFTQ0lJIGJ5IG5vdGhpbmdcbiAgICAgICAgICAgICAgbmV3cGFydCArPSAneCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBuZXdwYXJ0ICs9IHBhcnRbal07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHdlIHRlc3QgYWdhaW4gd2l0aCBBU0NJSSBjaGFyIG9ubHlcbiAgICAgICAgICBpZiAoIW5ld3BhcnQubWF0Y2goaG9zdG5hbWVQYXJ0UGF0dGVybikpIHtcbiAgICAgICAgICAgIHZhciB2YWxpZFBhcnRzID0gaG9zdHBhcnRzLnNsaWNlKDAsIGkpO1xuICAgICAgICAgICAgdmFyIG5vdEhvc3QgPSBob3N0cGFydHMuc2xpY2UoaSArIDEpO1xuICAgICAgICAgICAgdmFyIGJpdCA9IHBhcnQubWF0Y2goaG9zdG5hbWVQYXJ0U3RhcnQpO1xuICAgICAgICAgICAgaWYgKGJpdCkge1xuICAgICAgICAgICAgICB2YWxpZFBhcnRzLnB1c2goYml0WzFdKTtcbiAgICAgICAgICAgICAgbm90SG9zdC51bnNoaWZ0KGJpdFsyXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobm90SG9zdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcmVzdCA9ICcvJyArIG5vdEhvc3Quam9pbignLicpICsgcmVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdG5hbWUgPSB2YWxpZFBhcnRzLmpvaW4oJy4nKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmhvc3RuYW1lLmxlbmd0aCA+IGhvc3RuYW1lTWF4TGVuKSB7XG4gICAgICB0aGlzLmhvc3RuYW1lID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGhvc3RuYW1lcyBhcmUgYWx3YXlzIGxvd2VyIGNhc2UuXG4gICAgICB0aGlzLmhvc3RuYW1lID0gdGhpcy5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIGlmICghaXB2Nkhvc3RuYW1lKSB7XG4gICAgICAvLyBJRE5BIFN1cHBvcnQ6IFJldHVybnMgYSBwdW55IGNvZGVkIHJlcHJlc2VudGF0aW9uIG9mIFwiZG9tYWluXCIuXG4gICAgICAvLyBJdCBvbmx5IGNvbnZlcnRzIHRoZSBwYXJ0IG9mIHRoZSBkb21haW4gbmFtZSB0aGF0XG4gICAgICAvLyBoYXMgbm9uIEFTQ0lJIGNoYXJhY3RlcnMuIEkuZS4gaXQgZG9zZW50IG1hdHRlciBpZlxuICAgICAgLy8geW91IGNhbGwgaXQgd2l0aCBhIGRvbWFpbiB0aGF0IGFscmVhZHkgaXMgaW4gQVNDSUkuXG4gICAgICB2YXIgZG9tYWluQXJyYXkgPSB0aGlzLmhvc3RuYW1lLnNwbGl0KCcuJyk7XG4gICAgICB2YXIgbmV3T3V0ID0gW107XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvbWFpbkFycmF5Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHZhciBzID0gZG9tYWluQXJyYXlbaV07XG4gICAgICAgIG5ld091dC5wdXNoKHMubWF0Y2goL1teQS1aYS16MC05Xy1dLykgP1xuICAgICAgICAgICAgJ3huLS0nICsgcHVueWNvZGUuZW5jb2RlKHMpIDogcyk7XG4gICAgICB9XG4gICAgICB0aGlzLmhvc3RuYW1lID0gbmV3T3V0LmpvaW4oJy4nKTtcbiAgICB9XG5cbiAgICB2YXIgcCA9IHRoaXMucG9ydCA/ICc6JyArIHRoaXMucG9ydCA6ICcnO1xuICAgIHZhciBoID0gdGhpcy5ob3N0bmFtZSB8fCAnJztcbiAgICB0aGlzLmhvc3QgPSBoICsgcDtcbiAgICB0aGlzLmhyZWYgKz0gdGhpcy5ob3N0O1xuXG4gICAgLy8gc3RyaXAgWyBhbmQgXSBmcm9tIHRoZSBob3N0bmFtZVxuICAgIC8vIHRoZSBob3N0IGZpZWxkIHN0aWxsIHJldGFpbnMgdGhlbSwgdGhvdWdoXG4gICAgaWYgKGlwdjZIb3N0bmFtZSkge1xuICAgICAgdGhpcy5ob3N0bmFtZSA9IHRoaXMuaG9zdG5hbWUuc3Vic3RyKDEsIHRoaXMuaG9zdG5hbWUubGVuZ3RoIC0gMik7XG4gICAgICBpZiAocmVzdFswXSAhPT0gJy8nKSB7XG4gICAgICAgIHJlc3QgPSAnLycgKyByZXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIG5vdyByZXN0IGlzIHNldCB0byB0aGUgcG9zdC1ob3N0IHN0dWZmLlxuICAvLyBjaG9wIG9mZiBhbnkgZGVsaW0gY2hhcnMuXG4gIGlmICghdW5zYWZlUHJvdG9jb2xbbG93ZXJQcm90b10pIHtcblxuICAgIC8vIEZpcnN0LCBtYWtlIDEwMCUgc3VyZSB0aGF0IGFueSBcImF1dG9Fc2NhcGVcIiBjaGFycyBnZXRcbiAgICAvLyBlc2NhcGVkLCBldmVuIGlmIGVuY29kZVVSSUNvbXBvbmVudCBkb2Vzbid0IHRoaW5rIHRoZXlcbiAgICAvLyBuZWVkIHRvIGJlLlxuICAgIGZvciAodmFyIGkgPSAwLCBsID0gYXV0b0VzY2FwZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHZhciBhZSA9IGF1dG9Fc2NhcGVbaV07XG4gICAgICB2YXIgZXNjID0gZW5jb2RlVVJJQ29tcG9uZW50KGFlKTtcbiAgICAgIGlmIChlc2MgPT09IGFlKSB7XG4gICAgICAgIGVzYyA9IGVzY2FwZShhZSk7XG4gICAgICB9XG4gICAgICByZXN0ID0gcmVzdC5zcGxpdChhZSkuam9pbihlc2MpO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gY2hvcCBvZmYgZnJvbSB0aGUgdGFpbCBmaXJzdC5cbiAgdmFyIGhhc2ggPSByZXN0LmluZGV4T2YoJyMnKTtcbiAgaWYgKGhhc2ggIT09IC0xKSB7XG4gICAgLy8gZ290IGEgZnJhZ21lbnQgc3RyaW5nLlxuICAgIHRoaXMuaGFzaCA9IHJlc3Quc3Vic3RyKGhhc2gpO1xuICAgIHJlc3QgPSByZXN0LnNsaWNlKDAsIGhhc2gpO1xuICB9XG4gIHZhciBxbSA9IHJlc3QuaW5kZXhPZignPycpO1xuICBpZiAocW0gIT09IC0xKSB7XG4gICAgdGhpcy5zZWFyY2ggPSByZXN0LnN1YnN0cihxbSk7XG4gICAgdGhpcy5xdWVyeSA9IHJlc3Quc3Vic3RyKHFtICsgMSk7XG4gICAgaWYgKHBhcnNlUXVlcnlTdHJpbmcpIHtcbiAgICAgIHRoaXMucXVlcnkgPSBxdWVyeXN0cmluZy5wYXJzZSh0aGlzLnF1ZXJ5KTtcbiAgICB9XG4gICAgcmVzdCA9IHJlc3Quc2xpY2UoMCwgcW0pO1xuICB9IGVsc2UgaWYgKHBhcnNlUXVlcnlTdHJpbmcpIHtcbiAgICAvLyBubyBxdWVyeSBzdHJpbmcsIGJ1dCBwYXJzZVF1ZXJ5U3RyaW5nIHN0aWxsIHJlcXVlc3RlZFxuICAgIHRoaXMuc2VhcmNoID0gJyc7XG4gICAgdGhpcy5xdWVyeSA9IHt9O1xuICB9XG4gIGlmIChyZXN0KSB0aGlzLnBhdGhuYW1lID0gcmVzdDtcbiAgaWYgKHNsYXNoZWRQcm90b2NvbFtsb3dlclByb3RvXSAmJlxuICAgICAgdGhpcy5ob3N0bmFtZSAmJiAhdGhpcy5wYXRobmFtZSkge1xuICAgIHRoaXMucGF0aG5hbWUgPSAnLyc7XG4gIH1cblxuICAvL3RvIHN1cHBvcnQgaHR0cC5yZXF1ZXN0XG4gIGlmICh0aGlzLnBhdGhuYW1lIHx8IHRoaXMuc2VhcmNoKSB7XG4gICAgdmFyIHAgPSB0aGlzLnBhdGhuYW1lIHx8ICcnO1xuICAgIHZhciBzID0gdGhpcy5zZWFyY2ggfHwgJyc7XG4gICAgdGhpcy5wYXRoID0gcCArIHM7XG4gIH1cblxuICAvLyBmaW5hbGx5LCByZWNvbnN0cnVjdCB0aGUgaHJlZiBiYXNlZCBvbiB3aGF0IGhhcyBiZWVuIHZhbGlkYXRlZC5cbiAgdGhpcy5ocmVmID0gdGhpcy5mb3JtYXQoKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vLyBmb3JtYXQgYSBwYXJzZWQgb2JqZWN0IGludG8gYSB1cmwgc3RyaW5nXG5mdW5jdGlvbiB1cmxGb3JtYXQob2JqKSB7XG4gIC8vIGVuc3VyZSBpdCdzIGFuIG9iamVjdCwgYW5kIG5vdCBhIHN0cmluZyB1cmwuXG4gIC8vIElmIGl0J3MgYW4gb2JqLCB0aGlzIGlzIGEgbm8tb3AuXG4gIC8vIHRoaXMgd2F5LCB5b3UgY2FuIGNhbGwgdXJsX2Zvcm1hdCgpIG9uIHN0cmluZ3NcbiAgLy8gdG8gY2xlYW4gdXAgcG90ZW50aWFsbHkgd29ua3kgdXJscy5cbiAgaWYgKGlzU3RyaW5nKG9iaikpIG9iaiA9IHVybFBhcnNlKG9iaik7XG4gIGlmICghKG9iaiBpbnN0YW5jZW9mIFVybCkpIHJldHVybiBVcmwucHJvdG90eXBlLmZvcm1hdC5jYWxsKG9iaik7XG4gIHJldHVybiBvYmouZm9ybWF0KCk7XG59XG5cblVybC5wcm90b3R5cGUuZm9ybWF0ID0gZnVuY3Rpb24oKSB7XG4gIHZhciBhdXRoID0gdGhpcy5hdXRoIHx8ICcnO1xuICBpZiAoYXV0aCkge1xuICAgIGF1dGggPSBlbmNvZGVVUklDb21wb25lbnQoYXV0aCk7XG4gICAgYXV0aCA9IGF1dGgucmVwbGFjZSgvJTNBL2ksICc6Jyk7XG4gICAgYXV0aCArPSAnQCc7XG4gIH1cblxuICB2YXIgcHJvdG9jb2wgPSB0aGlzLnByb3RvY29sIHx8ICcnLFxuICAgICAgcGF0aG5hbWUgPSB0aGlzLnBhdGhuYW1lIHx8ICcnLFxuICAgICAgaGFzaCA9IHRoaXMuaGFzaCB8fCAnJyxcbiAgICAgIGhvc3QgPSBmYWxzZSxcbiAgICAgIHF1ZXJ5ID0gJyc7XG5cbiAgaWYgKHRoaXMuaG9zdCkge1xuICAgIGhvc3QgPSBhdXRoICsgdGhpcy5ob3N0O1xuICB9IGVsc2UgaWYgKHRoaXMuaG9zdG5hbWUpIHtcbiAgICBob3N0ID0gYXV0aCArICh0aGlzLmhvc3RuYW1lLmluZGV4T2YoJzonKSA9PT0gLTEgP1xuICAgICAgICB0aGlzLmhvc3RuYW1lIDpcbiAgICAgICAgJ1snICsgdGhpcy5ob3N0bmFtZSArICddJyk7XG4gICAgaWYgKHRoaXMucG9ydCkge1xuICAgICAgaG9zdCArPSAnOicgKyB0aGlzLnBvcnQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRoaXMucXVlcnkgJiZcbiAgICAgIGlzT2JqZWN0KHRoaXMucXVlcnkpICYmXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5KS5sZW5ndGgpIHtcbiAgICBxdWVyeSA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeSh0aGlzLnF1ZXJ5KTtcbiAgfVxuXG4gIHZhciBzZWFyY2ggPSB0aGlzLnNlYXJjaCB8fCAocXVlcnkgJiYgKCc/JyArIHF1ZXJ5KSkgfHwgJyc7XG5cbiAgaWYgKHByb3RvY29sICYmIHByb3RvY29sLnN1YnN0cigtMSkgIT09ICc6JykgcHJvdG9jb2wgKz0gJzonO1xuXG4gIC8vIG9ubHkgdGhlIHNsYXNoZWRQcm90b2NvbHMgZ2V0IHRoZSAvLy4gIE5vdCBtYWlsdG86LCB4bXBwOiwgZXRjLlxuICAvLyB1bmxlc3MgdGhleSBoYWQgdGhlbSB0byBiZWdpbiB3aXRoLlxuICBpZiAodGhpcy5zbGFzaGVzIHx8XG4gICAgICAoIXByb3RvY29sIHx8IHNsYXNoZWRQcm90b2NvbFtwcm90b2NvbF0pICYmIGhvc3QgIT09IGZhbHNlKSB7XG4gICAgaG9zdCA9ICcvLycgKyAoaG9zdCB8fCAnJyk7XG4gICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lLmNoYXJBdCgwKSAhPT0gJy8nKSBwYXRobmFtZSA9ICcvJyArIHBhdGhuYW1lO1xuICB9IGVsc2UgaWYgKCFob3N0KSB7XG4gICAgaG9zdCA9ICcnO1xuICB9XG5cbiAgaWYgKGhhc2ggJiYgaGFzaC5jaGFyQXQoMCkgIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2g7XG4gIGlmIChzZWFyY2ggJiYgc2VhcmNoLmNoYXJBdCgwKSAhPT0gJz8nKSBzZWFyY2ggPSAnPycgKyBzZWFyY2g7XG5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9bPyNdL2csIGZ1bmN0aW9uKG1hdGNoKSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChtYXRjaCk7XG4gIH0pO1xuICBzZWFyY2ggPSBzZWFyY2gucmVwbGFjZSgnIycsICclMjMnKTtcblxuICByZXR1cm4gcHJvdG9jb2wgKyBob3N0ICsgcGF0aG5hbWUgKyBzZWFyY2ggKyBoYXNoO1xufTtcblxuZnVuY3Rpb24gdXJsUmVzb2x2ZShzb3VyY2UsIHJlbGF0aXZlKSB7XG4gIHJldHVybiB1cmxQYXJzZShzb3VyY2UsIGZhbHNlLCB0cnVlKS5yZXNvbHZlKHJlbGF0aXZlKTtcbn1cblxuVXJsLnByb3RvdHlwZS5yZXNvbHZlID0gZnVuY3Rpb24ocmVsYXRpdmUpIHtcbiAgcmV0dXJuIHRoaXMucmVzb2x2ZU9iamVjdCh1cmxQYXJzZShyZWxhdGl2ZSwgZmFsc2UsIHRydWUpKS5mb3JtYXQoKTtcbn07XG5cbmZ1bmN0aW9uIHVybFJlc29sdmVPYmplY3Qoc291cmNlLCByZWxhdGl2ZSkge1xuICBpZiAoIXNvdXJjZSkgcmV0dXJuIHJlbGF0aXZlO1xuICByZXR1cm4gdXJsUGFyc2Uoc291cmNlLCBmYWxzZSwgdHJ1ZSkucmVzb2x2ZU9iamVjdChyZWxhdGl2ZSk7XG59XG5cblVybC5wcm90b3R5cGUucmVzb2x2ZU9iamVjdCA9IGZ1bmN0aW9uKHJlbGF0aXZlKSB7XG4gIGlmIChpc1N0cmluZyhyZWxhdGl2ZSkpIHtcbiAgICB2YXIgcmVsID0gbmV3IFVybCgpO1xuICAgIHJlbC5wYXJzZShyZWxhdGl2ZSwgZmFsc2UsIHRydWUpO1xuICAgIHJlbGF0aXZlID0gcmVsO1xuICB9XG5cbiAgdmFyIHJlc3VsdCA9IG5ldyBVcmwoKTtcbiAgT2JqZWN0LmtleXModGhpcykuZm9yRWFjaChmdW5jdGlvbihrKSB7XG4gICAgcmVzdWx0W2tdID0gdGhpc1trXTtcbiAgfSwgdGhpcyk7XG5cbiAgLy8gaGFzaCBpcyBhbHdheXMgb3ZlcnJpZGRlbiwgbm8gbWF0dGVyIHdoYXQuXG4gIC8vIGV2ZW4gaHJlZj1cIlwiIHdpbGwgcmVtb3ZlIGl0LlxuICByZXN1bHQuaGFzaCA9IHJlbGF0aXZlLmhhc2g7XG5cbiAgLy8gaWYgdGhlIHJlbGF0aXZlIHVybCBpcyBlbXB0eSwgdGhlbiB0aGVyZSdzIG5vdGhpbmcgbGVmdCB0byBkbyBoZXJlLlxuICBpZiAocmVsYXRpdmUuaHJlZiA9PT0gJycpIHtcbiAgICByZXN1bHQuaHJlZiA9IHJlc3VsdC5mb3JtYXQoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gaHJlZnMgbGlrZSAvL2Zvby9iYXIgYWx3YXlzIGN1dCB0byB0aGUgcHJvdG9jb2wuXG4gIGlmIChyZWxhdGl2ZS5zbGFzaGVzICYmICFyZWxhdGl2ZS5wcm90b2NvbCkge1xuICAgIC8vIHRha2UgZXZlcnl0aGluZyBleGNlcHQgdGhlIHByb3RvY29sIGZyb20gcmVsYXRpdmVcbiAgICBPYmplY3Qua2V5cyhyZWxhdGl2ZSkuZm9yRWFjaChmdW5jdGlvbihrKSB7XG4gICAgICBpZiAoayAhPT0gJ3Byb3RvY29sJylcbiAgICAgICAgcmVzdWx0W2tdID0gcmVsYXRpdmVba107XG4gICAgfSk7XG5cbiAgICAvL3VybFBhcnNlIGFwcGVuZHMgdHJhaWxpbmcgLyB0byB1cmxzIGxpa2UgaHR0cDovL3d3dy5leGFtcGxlLmNvbVxuICAgIGlmIChzbGFzaGVkUHJvdG9jb2xbcmVzdWx0LnByb3RvY29sXSAmJlxuICAgICAgICByZXN1bHQuaG9zdG5hbWUgJiYgIXJlc3VsdC5wYXRobmFtZSkge1xuICAgICAgcmVzdWx0LnBhdGggPSByZXN1bHQucGF0aG5hbWUgPSAnLyc7XG4gICAgfVxuXG4gICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlmIChyZWxhdGl2ZS5wcm90b2NvbCAmJiByZWxhdGl2ZS5wcm90b2NvbCAhPT0gcmVzdWx0LnByb3RvY29sKSB7XG4gICAgLy8gaWYgaXQncyBhIGtub3duIHVybCBwcm90b2NvbCwgdGhlbiBjaGFuZ2luZ1xuICAgIC8vIHRoZSBwcm90b2NvbCBkb2VzIHdlaXJkIHRoaW5nc1xuICAgIC8vIGZpcnN0LCBpZiBpdCdzIG5vdCBmaWxlOiwgdGhlbiB3ZSBNVVNUIGhhdmUgYSBob3N0LFxuICAgIC8vIGFuZCBpZiB0aGVyZSB3YXMgYSBwYXRoXG4gICAgLy8gdG8gYmVnaW4gd2l0aCwgdGhlbiB3ZSBNVVNUIGhhdmUgYSBwYXRoLlxuICAgIC8vIGlmIGl0IGlzIGZpbGU6LCB0aGVuIHRoZSBob3N0IGlzIGRyb3BwZWQsXG4gICAgLy8gYmVjYXVzZSB0aGF0J3Mga25vd24gdG8gYmUgaG9zdGxlc3MuXG4gICAgLy8gYW55dGhpbmcgZWxzZSBpcyBhc3N1bWVkIHRvIGJlIGFic29sdXRlLlxuICAgIGlmICghc2xhc2hlZFByb3RvY29sW3JlbGF0aXZlLnByb3RvY29sXSkge1xuICAgICAgT2JqZWN0LmtleXMocmVsYXRpdmUpLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgICAgICByZXN1bHRba10gPSByZWxhdGl2ZVtrXTtcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJlc3VsdC5wcm90b2NvbCA9IHJlbGF0aXZlLnByb3RvY29sO1xuICAgIGlmICghcmVsYXRpdmUuaG9zdCAmJiAhaG9zdGxlc3NQcm90b2NvbFtyZWxhdGl2ZS5wcm90b2NvbF0pIHtcbiAgICAgIHZhciByZWxQYXRoID0gKHJlbGF0aXZlLnBhdGhuYW1lIHx8ICcnKS5zcGxpdCgnLycpO1xuICAgICAgd2hpbGUgKHJlbFBhdGgubGVuZ3RoICYmICEocmVsYXRpdmUuaG9zdCA9IHJlbFBhdGguc2hpZnQoKSkpO1xuICAgICAgaWYgKCFyZWxhdGl2ZS5ob3N0KSByZWxhdGl2ZS5ob3N0ID0gJyc7XG4gICAgICBpZiAoIXJlbGF0aXZlLmhvc3RuYW1lKSByZWxhdGl2ZS5ob3N0bmFtZSA9ICcnO1xuICAgICAgaWYgKHJlbFBhdGhbMF0gIT09ICcnKSByZWxQYXRoLnVuc2hpZnQoJycpO1xuICAgICAgaWYgKHJlbFBhdGgubGVuZ3RoIDwgMikgcmVsUGF0aC51bnNoaWZ0KCcnKTtcbiAgICAgIHJlc3VsdC5wYXRobmFtZSA9IHJlbFBhdGguam9pbignLycpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQucGF0aG5hbWUgPSByZWxhdGl2ZS5wYXRobmFtZTtcbiAgICB9XG4gICAgcmVzdWx0LnNlYXJjaCA9IHJlbGF0aXZlLnNlYXJjaDtcbiAgICByZXN1bHQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTtcbiAgICByZXN1bHQuaG9zdCA9IHJlbGF0aXZlLmhvc3QgfHwgJyc7XG4gICAgcmVzdWx0LmF1dGggPSByZWxhdGl2ZS5hdXRoO1xuICAgIHJlc3VsdC5ob3N0bmFtZSA9IHJlbGF0aXZlLmhvc3RuYW1lIHx8IHJlbGF0aXZlLmhvc3Q7XG4gICAgcmVzdWx0LnBvcnQgPSByZWxhdGl2ZS5wb3J0O1xuICAgIC8vIHRvIHN1cHBvcnQgaHR0cC5yZXF1ZXN0XG4gICAgaWYgKHJlc3VsdC5wYXRobmFtZSB8fCByZXN1bHQuc2VhcmNoKSB7XG4gICAgICB2YXIgcCA9IHJlc3VsdC5wYXRobmFtZSB8fCAnJztcbiAgICAgIHZhciBzID0gcmVzdWx0LnNlYXJjaCB8fCAnJztcbiAgICAgIHJlc3VsdC5wYXRoID0gcCArIHM7XG4gICAgfVxuICAgIHJlc3VsdC5zbGFzaGVzID0gcmVzdWx0LnNsYXNoZXMgfHwgcmVsYXRpdmUuc2xhc2hlcztcbiAgICByZXN1bHQuaHJlZiA9IHJlc3VsdC5mb3JtYXQoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgdmFyIGlzU291cmNlQWJzID0gKHJlc3VsdC5wYXRobmFtZSAmJiByZXN1bHQucGF0aG5hbWUuY2hhckF0KDApID09PSAnLycpLFxuICAgICAgaXNSZWxBYnMgPSAoXG4gICAgICAgICAgcmVsYXRpdmUuaG9zdCB8fFxuICAgICAgICAgIHJlbGF0aXZlLnBhdGhuYW1lICYmIHJlbGF0aXZlLnBhdGhuYW1lLmNoYXJBdCgwKSA9PT0gJy8nXG4gICAgICApLFxuICAgICAgbXVzdEVuZEFicyA9IChpc1JlbEFicyB8fCBpc1NvdXJjZUFicyB8fFxuICAgICAgICAgICAgICAgICAgICAocmVzdWx0Lmhvc3QgJiYgcmVsYXRpdmUucGF0aG5hbWUpKSxcbiAgICAgIHJlbW92ZUFsbERvdHMgPSBtdXN0RW5kQWJzLFxuICAgICAgc3JjUGF0aCA9IHJlc3VsdC5wYXRobmFtZSAmJiByZXN1bHQucGF0aG5hbWUuc3BsaXQoJy8nKSB8fCBbXSxcbiAgICAgIHJlbFBhdGggPSByZWxhdGl2ZS5wYXRobmFtZSAmJiByZWxhdGl2ZS5wYXRobmFtZS5zcGxpdCgnLycpIHx8IFtdLFxuICAgICAgcHN5Y2hvdGljID0gcmVzdWx0LnByb3RvY29sICYmICFzbGFzaGVkUHJvdG9jb2xbcmVzdWx0LnByb3RvY29sXTtcblxuICAvLyBpZiB0aGUgdXJsIGlzIGEgbm9uLXNsYXNoZWQgdXJsLCB0aGVuIHJlbGF0aXZlXG4gIC8vIGxpbmtzIGxpa2UgLi4vLi4gc2hvdWxkIGJlIGFibGVcbiAgLy8gdG8gY3Jhd2wgdXAgdG8gdGhlIGhvc3RuYW1lLCBhcyB3ZWxsLiAgVGhpcyBpcyBzdHJhbmdlLlxuICAvLyByZXN1bHQucHJvdG9jb2wgaGFzIGFscmVhZHkgYmVlbiBzZXQgYnkgbm93LlxuICAvLyBMYXRlciBvbiwgcHV0IHRoZSBmaXJzdCBwYXRoIHBhcnQgaW50byB0aGUgaG9zdCBmaWVsZC5cbiAgaWYgKHBzeWNob3RpYykge1xuICAgIHJlc3VsdC5ob3N0bmFtZSA9ICcnO1xuICAgIHJlc3VsdC5wb3J0ID0gbnVsbDtcbiAgICBpZiAocmVzdWx0Lmhvc3QpIHtcbiAgICAgIGlmIChzcmNQYXRoWzBdID09PSAnJykgc3JjUGF0aFswXSA9IHJlc3VsdC5ob3N0O1xuICAgICAgZWxzZSBzcmNQYXRoLnVuc2hpZnQocmVzdWx0Lmhvc3QpO1xuICAgIH1cbiAgICByZXN1bHQuaG9zdCA9ICcnO1xuICAgIGlmIChyZWxhdGl2ZS5wcm90b2NvbCkge1xuICAgICAgcmVsYXRpdmUuaG9zdG5hbWUgPSBudWxsO1xuICAgICAgcmVsYXRpdmUucG9ydCA9IG51bGw7XG4gICAgICBpZiAocmVsYXRpdmUuaG9zdCkge1xuICAgICAgICBpZiAocmVsUGF0aFswXSA9PT0gJycpIHJlbFBhdGhbMF0gPSByZWxhdGl2ZS5ob3N0O1xuICAgICAgICBlbHNlIHJlbFBhdGgudW5zaGlmdChyZWxhdGl2ZS5ob3N0KTtcbiAgICAgIH1cbiAgICAgIHJlbGF0aXZlLmhvc3QgPSBudWxsO1xuICAgIH1cbiAgICBtdXN0RW5kQWJzID0gbXVzdEVuZEFicyAmJiAocmVsUGF0aFswXSA9PT0gJycgfHwgc3JjUGF0aFswXSA9PT0gJycpO1xuICB9XG5cbiAgaWYgKGlzUmVsQWJzKSB7XG4gICAgLy8gaXQncyBhYnNvbHV0ZS5cbiAgICByZXN1bHQuaG9zdCA9IChyZWxhdGl2ZS5ob3N0IHx8IHJlbGF0aXZlLmhvc3QgPT09ICcnKSA/XG4gICAgICAgICAgICAgICAgICByZWxhdGl2ZS5ob3N0IDogcmVzdWx0Lmhvc3Q7XG4gICAgcmVzdWx0Lmhvc3RuYW1lID0gKHJlbGF0aXZlLmhvc3RuYW1lIHx8IHJlbGF0aXZlLmhvc3RuYW1lID09PSAnJykgP1xuICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlLmhvc3RuYW1lIDogcmVzdWx0Lmhvc3RuYW1lO1xuICAgIHJlc3VsdC5zZWFyY2ggPSByZWxhdGl2ZS5zZWFyY2g7XG4gICAgcmVzdWx0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7XG4gICAgc3JjUGF0aCA9IHJlbFBhdGg7XG4gICAgLy8gZmFsbCB0aHJvdWdoIHRvIHRoZSBkb3QtaGFuZGxpbmcgYmVsb3cuXG4gIH0gZWxzZSBpZiAocmVsUGF0aC5sZW5ndGgpIHtcbiAgICAvLyBpdCdzIHJlbGF0aXZlXG4gICAgLy8gdGhyb3cgYXdheSB0aGUgZXhpc3RpbmcgZmlsZSwgYW5kIHRha2UgdGhlIG5ldyBwYXRoIGluc3RlYWQuXG4gICAgaWYgKCFzcmNQYXRoKSBzcmNQYXRoID0gW107XG4gICAgc3JjUGF0aC5wb3AoKTtcbiAgICBzcmNQYXRoID0gc3JjUGF0aC5jb25jYXQocmVsUGF0aCk7XG4gICAgcmVzdWx0LnNlYXJjaCA9IHJlbGF0aXZlLnNlYXJjaDtcbiAgICByZXN1bHQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTtcbiAgfSBlbHNlIGlmICghaXNOdWxsT3JVbmRlZmluZWQocmVsYXRpdmUuc2VhcmNoKSkge1xuICAgIC8vIGp1c3QgcHVsbCBvdXQgdGhlIHNlYXJjaC5cbiAgICAvLyBsaWtlIGhyZWY9Jz9mb28nLlxuICAgIC8vIFB1dCB0aGlzIGFmdGVyIHRoZSBvdGhlciB0d28gY2FzZXMgYmVjYXVzZSBpdCBzaW1wbGlmaWVzIHRoZSBib29sZWFuc1xuICAgIGlmIChwc3ljaG90aWMpIHtcbiAgICAgIHJlc3VsdC5ob3N0bmFtZSA9IHJlc3VsdC5ob3N0ID0gc3JjUGF0aC5zaGlmdCgpO1xuICAgICAgLy9vY2NhdGlvbmFseSB0aGUgYXV0aCBjYW4gZ2V0IHN0dWNrIG9ubHkgaW4gaG9zdFxuICAgICAgLy90aGlzIGVzcGVjaWFseSBoYXBwZW5zIGluIGNhc2VzIGxpa2VcbiAgICAgIC8vdXJsLnJlc29sdmVPYmplY3QoJ21haWx0bzpsb2NhbDFAZG9tYWluMScsICdsb2NhbDJAZG9tYWluMicpXG4gICAgICB2YXIgYXV0aEluSG9zdCA9IHJlc3VsdC5ob3N0ICYmIHJlc3VsdC5ob3N0LmluZGV4T2YoJ0AnKSA+IDAgP1xuICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaG9zdC5zcGxpdCgnQCcpIDogZmFsc2U7XG4gICAgICBpZiAoYXV0aEluSG9zdCkge1xuICAgICAgICByZXN1bHQuYXV0aCA9IGF1dGhJbkhvc3Quc2hpZnQoKTtcbiAgICAgICAgcmVzdWx0Lmhvc3QgPSByZXN1bHQuaG9zdG5hbWUgPSBhdXRoSW5Ib3N0LnNoaWZ0KCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc3VsdC5zZWFyY2ggPSByZWxhdGl2ZS5zZWFyY2g7XG4gICAgcmVzdWx0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7XG4gICAgLy90byBzdXBwb3J0IGh0dHAucmVxdWVzdFxuICAgIGlmICghaXNOdWxsKHJlc3VsdC5wYXRobmFtZSkgfHwgIWlzTnVsbChyZXN1bHQuc2VhcmNoKSkge1xuICAgICAgcmVzdWx0LnBhdGggPSAocmVzdWx0LnBhdGhuYW1lID8gcmVzdWx0LnBhdGhuYW1lIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgKHJlc3VsdC5zZWFyY2ggPyByZXN1bHQuc2VhcmNoIDogJycpO1xuICAgIH1cbiAgICByZXN1bHQuaHJlZiA9IHJlc3VsdC5mb3JtYXQoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgaWYgKCFzcmNQYXRoLmxlbmd0aCkge1xuICAgIC8vIG5vIHBhdGggYXQgYWxsLiAgZWFzeS5cbiAgICAvLyB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQgdGhlIG90aGVyIHN0dWZmIGFib3ZlLlxuICAgIHJlc3VsdC5wYXRobmFtZSA9IG51bGw7XG4gICAgLy90byBzdXBwb3J0IGh0dHAucmVxdWVzdFxuICAgIGlmIChyZXN1bHQuc2VhcmNoKSB7XG4gICAgICByZXN1bHQucGF0aCA9ICcvJyArIHJlc3VsdC5zZWFyY2g7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdC5wYXRoID0gbnVsbDtcbiAgICB9XG4gICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vIGlmIGEgdXJsIEVORHMgaW4gLiBvciAuLiwgdGhlbiBpdCBtdXN0IGdldCBhIHRyYWlsaW5nIHNsYXNoLlxuICAvLyBob3dldmVyLCBpZiBpdCBlbmRzIGluIGFueXRoaW5nIGVsc2Ugbm9uLXNsYXNoeSxcbiAgLy8gdGhlbiBpdCBtdXN0IE5PVCBnZXQgYSB0cmFpbGluZyBzbGFzaC5cbiAgdmFyIGxhc3QgPSBzcmNQYXRoLnNsaWNlKC0xKVswXTtcbiAgdmFyIGhhc1RyYWlsaW5nU2xhc2ggPSAoXG4gICAgICAocmVzdWx0Lmhvc3QgfHwgcmVsYXRpdmUuaG9zdCkgJiYgKGxhc3QgPT09ICcuJyB8fCBsYXN0ID09PSAnLi4nKSB8fFxuICAgICAgbGFzdCA9PT0gJycpO1xuXG4gIC8vIHN0cmlwIHNpbmdsZSBkb3RzLCByZXNvbHZlIGRvdWJsZSBkb3RzIHRvIHBhcmVudCBkaXJcbiAgLy8gaWYgdGhlIHBhdGggdHJpZXMgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIGB1cGAgZW5kcyB1cCA+IDBcbiAgdmFyIHVwID0gMDtcbiAgZm9yICh2YXIgaSA9IHNyY1BhdGgubGVuZ3RoOyBpID49IDA7IGktLSkge1xuICAgIGxhc3QgPSBzcmNQYXRoW2ldO1xuICAgIGlmIChsYXN0ID09ICcuJykge1xuICAgICAgc3JjUGF0aC5zcGxpY2UoaSwgMSk7XG4gICAgfSBlbHNlIGlmIChsYXN0ID09PSAnLi4nKSB7XG4gICAgICBzcmNQYXRoLnNwbGljZShpLCAxKTtcbiAgICAgIHVwKys7XG4gICAgfSBlbHNlIGlmICh1cCkge1xuICAgICAgc3JjUGF0aC5zcGxpY2UoaSwgMSk7XG4gICAgICB1cC0tO1xuICAgIH1cbiAgfVxuXG4gIC8vIGlmIHRoZSBwYXRoIGlzIGFsbG93ZWQgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIHJlc3RvcmUgbGVhZGluZyAuLnNcbiAgaWYgKCFtdXN0RW5kQWJzICYmICFyZW1vdmVBbGxEb3RzKSB7XG4gICAgZm9yICg7IHVwLS07IHVwKSB7XG4gICAgICBzcmNQYXRoLnVuc2hpZnQoJy4uJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG11c3RFbmRBYnMgJiYgc3JjUGF0aFswXSAhPT0gJycgJiZcbiAgICAgICghc3JjUGF0aFswXSB8fCBzcmNQYXRoWzBdLmNoYXJBdCgwKSAhPT0gJy8nKSkge1xuICAgIHNyY1BhdGgudW5zaGlmdCgnJyk7XG4gIH1cblxuICBpZiAoaGFzVHJhaWxpbmdTbGFzaCAmJiAoc3JjUGF0aC5qb2luKCcvJykuc3Vic3RyKC0xKSAhPT0gJy8nKSkge1xuICAgIHNyY1BhdGgucHVzaCgnJyk7XG4gIH1cblxuICB2YXIgaXNBYnNvbHV0ZSA9IHNyY1BhdGhbMF0gPT09ICcnIHx8XG4gICAgICAoc3JjUGF0aFswXSAmJiBzcmNQYXRoWzBdLmNoYXJBdCgwKSA9PT0gJy8nKTtcblxuICAvLyBwdXQgdGhlIGhvc3QgYmFja1xuICBpZiAocHN5Y2hvdGljKSB7XG4gICAgcmVzdWx0Lmhvc3RuYW1lID0gcmVzdWx0Lmhvc3QgPSBpc0Fic29sdXRlID8gJycgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGF0aC5sZW5ndGggPyBzcmNQYXRoLnNoaWZ0KCkgOiAnJztcbiAgICAvL29jY2F0aW9uYWx5IHRoZSBhdXRoIGNhbiBnZXQgc3R1Y2sgb25seSBpbiBob3N0XG4gICAgLy90aGlzIGVzcGVjaWFseSBoYXBwZW5zIGluIGNhc2VzIGxpa2VcbiAgICAvL3VybC5yZXNvbHZlT2JqZWN0KCdtYWlsdG86bG9jYWwxQGRvbWFpbjEnLCAnbG9jYWwyQGRvbWFpbjInKVxuICAgIHZhciBhdXRoSW5Ib3N0ID0gcmVzdWx0Lmhvc3QgJiYgcmVzdWx0Lmhvc3QuaW5kZXhPZignQCcpID4gMCA/XG4gICAgICAgICAgICAgICAgICAgICByZXN1bHQuaG9zdC5zcGxpdCgnQCcpIDogZmFsc2U7XG4gICAgaWYgKGF1dGhJbkhvc3QpIHtcbiAgICAgIHJlc3VsdC5hdXRoID0gYXV0aEluSG9zdC5zaGlmdCgpO1xuICAgICAgcmVzdWx0Lmhvc3QgPSByZXN1bHQuaG9zdG5hbWUgPSBhdXRoSW5Ib3N0LnNoaWZ0KCk7XG4gICAgfVxuICB9XG5cbiAgbXVzdEVuZEFicyA9IG11c3RFbmRBYnMgfHwgKHJlc3VsdC5ob3N0ICYmIHNyY1BhdGgubGVuZ3RoKTtcblxuICBpZiAobXVzdEVuZEFicyAmJiAhaXNBYnNvbHV0ZSkge1xuICAgIHNyY1BhdGgudW5zaGlmdCgnJyk7XG4gIH1cblxuICBpZiAoIXNyY1BhdGgubGVuZ3RoKSB7XG4gICAgcmVzdWx0LnBhdGhuYW1lID0gbnVsbDtcbiAgICByZXN1bHQucGF0aCA9IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0LnBhdGhuYW1lID0gc3JjUGF0aC5qb2luKCcvJyk7XG4gIH1cblxuICAvL3RvIHN1cHBvcnQgcmVxdWVzdC5odHRwXG4gIGlmICghaXNOdWxsKHJlc3VsdC5wYXRobmFtZSkgfHwgIWlzTnVsbChyZXN1bHQuc2VhcmNoKSkge1xuICAgIHJlc3VsdC5wYXRoID0gKHJlc3VsdC5wYXRobmFtZSA/IHJlc3VsdC5wYXRobmFtZSA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAocmVzdWx0LnNlYXJjaCA/IHJlc3VsdC5zZWFyY2ggOiAnJyk7XG4gIH1cbiAgcmVzdWx0LmF1dGggPSByZWxhdGl2ZS5hdXRoIHx8IHJlc3VsdC5hdXRoO1xuICByZXN1bHQuc2xhc2hlcyA9IHJlc3VsdC5zbGFzaGVzIHx8IHJlbGF0aXZlLnNsYXNoZXM7XG4gIHJlc3VsdC5ocmVmID0gcmVzdWx0LmZvcm1hdCgpO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuVXJsLnByb3RvdHlwZS5wYXJzZUhvc3QgPSBmdW5jdGlvbigpIHtcbiAgdmFyIGhvc3QgPSB0aGlzLmhvc3Q7XG4gIHZhciBwb3J0ID0gcG9ydFBhdHRlcm4uZXhlYyhob3N0KTtcbiAgaWYgKHBvcnQpIHtcbiAgICBwb3J0ID0gcG9ydFswXTtcbiAgICBpZiAocG9ydCAhPT0gJzonKSB7XG4gICAgICB0aGlzLnBvcnQgPSBwb3J0LnN1YnN0cigxKTtcbiAgICB9XG4gICAgaG9zdCA9IGhvc3Quc3Vic3RyKDAsIGhvc3QubGVuZ3RoIC0gcG9ydC5sZW5ndGgpO1xuICB9XG4gIGlmIChob3N0KSB0aGlzLmhvc3RuYW1lID0gaG9zdDtcbn07XG5cbmZ1bmN0aW9uIGlzU3RyaW5nKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gXCJzdHJpbmdcIjtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3QoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiBhcmcgIT09IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkKGFyZykge1xuICByZXR1cm4gIGFyZyA9PSBudWxsO1xufVxuIiwiXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZGVwcmVjYXRlO1xuXG4vKipcbiAqIE1hcmsgdGhhdCBhIG1ldGhvZCBzaG91bGQgbm90IGJlIHVzZWQuXG4gKiBSZXR1cm5zIGEgbW9kaWZpZWQgZnVuY3Rpb24gd2hpY2ggd2FybnMgb25jZSBieSBkZWZhdWx0LlxuICpcbiAqIElmIGBsb2NhbFN0b3JhZ2Uubm9EZXByZWNhdGlvbiA9IHRydWVgIGlzIHNldCwgdGhlbiBpdCBpcyBhIG5vLW9wLlxuICpcbiAqIElmIGBsb2NhbFN0b3JhZ2UudGhyb3dEZXByZWNhdGlvbiA9IHRydWVgIGlzIHNldCwgdGhlbiBkZXByZWNhdGVkIGZ1bmN0aW9uc1xuICogd2lsbCB0aHJvdyBhbiBFcnJvciB3aGVuIGludm9rZWQuXG4gKlxuICogSWYgYGxvY2FsU3RvcmFnZS50cmFjZURlcHJlY2F0aW9uID0gdHJ1ZWAgaXMgc2V0LCB0aGVuIGRlcHJlY2F0ZWQgZnVuY3Rpb25zXG4gKiB3aWxsIGludm9rZSBgY29uc29sZS50cmFjZSgpYCBpbnN0ZWFkIG9mIGBjb25zb2xlLmVycm9yKClgLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIC0gdGhlIGZ1bmN0aW9uIHRvIGRlcHJlY2F0ZVxuICogQHBhcmFtIHtTdHJpbmd9IG1zZyAtIHRoZSBzdHJpbmcgdG8gcHJpbnQgdG8gdGhlIGNvbnNvbGUgd2hlbiBgZm5gIGlzIGludm9rZWRcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gYSBuZXcgXCJkZXByZWNhdGVkXCIgdmVyc2lvbiBvZiBgZm5gXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGRlcHJlY2F0ZSAoZm4sIG1zZykge1xuICBpZiAoY29uZmlnKCdub0RlcHJlY2F0aW9uJykpIHtcbiAgICByZXR1cm4gZm47XG4gIH1cblxuICB2YXIgd2FybmVkID0gZmFsc2U7XG4gIGZ1bmN0aW9uIGRlcHJlY2F0ZWQoKSB7XG4gICAgaWYgKCF3YXJuZWQpIHtcbiAgICAgIGlmIChjb25maWcoJ3Rocm93RGVwcmVjYXRpb24nKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICAgIH0gZWxzZSBpZiAoY29uZmlnKCd0cmFjZURlcHJlY2F0aW9uJykpIHtcbiAgICAgICAgY29uc29sZS50cmFjZShtc2cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKG1zZyk7XG4gICAgICB9XG4gICAgICB3YXJuZWQgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIHJldHVybiBkZXByZWNhdGVkO1xufVxuXG4vKipcbiAqIENoZWNrcyBgbG9jYWxTdG9yYWdlYCBmb3IgYm9vbGVhbiB2YWx1ZXMgZm9yIHRoZSBnaXZlbiBgbmFtZWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEByZXR1cm5zIHtCb29sZWFufVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gY29uZmlnIChuYW1lKSB7XG4gIC8vIGFjY2Vzc2luZyBnbG9iYWwubG9jYWxTdG9yYWdlIGNhbiB0cmlnZ2VyIGEgRE9NRXhjZXB0aW9uIGluIHNhbmRib3hlZCBpZnJhbWVzXG4gIHRyeSB7XG4gICAgaWYgKCFnbG9iYWwubG9jYWxTdG9yYWdlKSByZXR1cm4gZmFsc2U7XG4gIH0gY2F0Y2ggKF8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHZhbCA9IGdsb2JhbC5sb2NhbFN0b3JhZ2VbbmFtZV07XG4gIGlmIChudWxsID09IHZhbCkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gU3RyaW5nKHZhbCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0J1ZmZlcihhcmcpIHtcbiAgcmV0dXJuIGFyZyAmJiB0eXBlb2YgYXJnID09PSAnb2JqZWN0J1xuICAgICYmIHR5cGVvZiBhcmcuY29weSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICYmIHR5cGVvZiBhcmcuZmlsbCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICYmIHR5cGVvZiBhcmcucmVhZFVJbnQ4ID09PSAnZnVuY3Rpb24nO1xufSIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG52YXIgZm9ybWF0UmVnRXhwID0gLyVbc2RqJV0vZztcbmV4cG9ydHMuZm9ybWF0ID0gZnVuY3Rpb24oZikge1xuICBpZiAoIWlzU3RyaW5nKGYpKSB7XG4gICAgdmFyIG9iamVjdHMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgb2JqZWN0cy5wdXNoKGluc3BlY3QoYXJndW1lbnRzW2ldKSk7XG4gICAgfVxuICAgIHJldHVybiBvYmplY3RzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHZhciBpID0gMTtcbiAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gIHZhciBsZW4gPSBhcmdzLmxlbmd0aDtcbiAgdmFyIHN0ciA9IFN0cmluZyhmKS5yZXBsYWNlKGZvcm1hdFJlZ0V4cCwgZnVuY3Rpb24oeCkge1xuICAgIGlmICh4ID09PSAnJSUnKSByZXR1cm4gJyUnO1xuICAgIGlmIChpID49IGxlbikgcmV0dXJuIHg7XG4gICAgc3dpdGNoICh4KSB7XG4gICAgICBjYXNlICclcyc6IHJldHVybiBTdHJpbmcoYXJnc1tpKytdKTtcbiAgICAgIGNhc2UgJyVkJzogcmV0dXJuIE51bWJlcihhcmdzW2krK10pO1xuICAgICAgY2FzZSAnJWonOlxuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmdzW2krK10pO1xuICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgcmV0dXJuICdbQ2lyY3VsYXJdJztcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuICB9KTtcbiAgZm9yICh2YXIgeCA9IGFyZ3NbaV07IGkgPCBsZW47IHggPSBhcmdzWysraV0pIHtcbiAgICBpZiAoaXNOdWxsKHgpIHx8ICFpc09iamVjdCh4KSkge1xuICAgICAgc3RyICs9ICcgJyArIHg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0ciArPSAnICcgKyBpbnNwZWN0KHgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyO1xufTtcblxuXG4vLyBNYXJrIHRoYXQgYSBtZXRob2Qgc2hvdWxkIG5vdCBiZSB1c2VkLlxuLy8gUmV0dXJucyBhIG1vZGlmaWVkIGZ1bmN0aW9uIHdoaWNoIHdhcm5zIG9uY2UgYnkgZGVmYXVsdC5cbi8vIElmIC0tbm8tZGVwcmVjYXRpb24gaXMgc2V0LCB0aGVuIGl0IGlzIGEgbm8tb3AuXG5leHBvcnRzLmRlcHJlY2F0ZSA9IGZ1bmN0aW9uKGZuLCBtc2cpIHtcbiAgLy8gQWxsb3cgZm9yIGRlcHJlY2F0aW5nIHRoaW5ncyBpbiB0aGUgcHJvY2VzcyBvZiBzdGFydGluZyB1cC5cbiAgaWYgKGlzVW5kZWZpbmVkKGdsb2JhbC5wcm9jZXNzKSkge1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBleHBvcnRzLmRlcHJlY2F0ZShmbiwgbXNnKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG4gIH1cblxuICBpZiAocHJvY2Vzcy5ub0RlcHJlY2F0aW9uID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIGZuO1xuICB9XG5cbiAgdmFyIHdhcm5lZCA9IGZhbHNlO1xuICBmdW5jdGlvbiBkZXByZWNhdGVkKCkge1xuICAgIGlmICghd2FybmVkKSB7XG4gICAgICBpZiAocHJvY2Vzcy50aHJvd0RlcHJlY2F0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLnRyYWNlRGVwcmVjYXRpb24pIHtcbiAgICAgICAgY29uc29sZS50cmFjZShtc2cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihtc2cpO1xuICAgICAgfVxuICAgICAgd2FybmVkID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICByZXR1cm4gZGVwcmVjYXRlZDtcbn07XG5cblxudmFyIGRlYnVncyA9IHt9O1xudmFyIGRlYnVnRW52aXJvbjtcbmV4cG9ydHMuZGVidWdsb2cgPSBmdW5jdGlvbihzZXQpIHtcbiAgaWYgKGlzVW5kZWZpbmVkKGRlYnVnRW52aXJvbikpXG4gICAgZGVidWdFbnZpcm9uID0gcHJvY2Vzcy5lbnYuTk9ERV9ERUJVRyB8fCAnJztcbiAgc2V0ID0gc2V0LnRvVXBwZXJDYXNlKCk7XG4gIGlmICghZGVidWdzW3NldF0pIHtcbiAgICBpZiAobmV3IFJlZ0V4cCgnXFxcXGInICsgc2V0ICsgJ1xcXFxiJywgJ2knKS50ZXN0KGRlYnVnRW52aXJvbikpIHtcbiAgICAgIHZhciBwaWQgPSBwcm9jZXNzLnBpZDtcbiAgICAgIGRlYnVnc1tzZXRdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBtc2cgPSBleHBvcnRzLmZvcm1hdC5hcHBseShleHBvcnRzLCBhcmd1bWVudHMpO1xuICAgICAgICBjb25zb2xlLmVycm9yKCclcyAlZDogJXMnLCBzZXQsIHBpZCwgbXNnKTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnc1tzZXRdID0gZnVuY3Rpb24oKSB7fTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlYnVnc1tzZXRdO1xufTtcblxuXG4vKipcbiAqIEVjaG9zIHRoZSB2YWx1ZSBvZiBhIHZhbHVlLiBUcnlzIHRvIHByaW50IHRoZSB2YWx1ZSBvdXRcbiAqIGluIHRoZSBiZXN0IHdheSBwb3NzaWJsZSBnaXZlbiB0aGUgZGlmZmVyZW50IHR5cGVzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogVGhlIG9iamVjdCB0byBwcmludCBvdXQuXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBvcHRpb25zIG9iamVjdCB0aGF0IGFsdGVycyB0aGUgb3V0cHV0LlxuICovXG4vKiBsZWdhY3k6IG9iaiwgc2hvd0hpZGRlbiwgZGVwdGgsIGNvbG9ycyovXG5mdW5jdGlvbiBpbnNwZWN0KG9iaiwgb3B0cykge1xuICAvLyBkZWZhdWx0IG9wdGlvbnNcbiAgdmFyIGN0eCA9IHtcbiAgICBzZWVuOiBbXSxcbiAgICBzdHlsaXplOiBzdHlsaXplTm9Db2xvclxuICB9O1xuICAvLyBsZWdhY3kuLi5cbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPj0gMykgY3R4LmRlcHRoID0gYXJndW1lbnRzWzJdO1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+PSA0KSBjdHguY29sb3JzID0gYXJndW1lbnRzWzNdO1xuICBpZiAoaXNCb29sZWFuKG9wdHMpKSB7XG4gICAgLy8gbGVnYWN5Li4uXG4gICAgY3R4LnNob3dIaWRkZW4gPSBvcHRzO1xuICB9IGVsc2UgaWYgKG9wdHMpIHtcbiAgICAvLyBnb3QgYW4gXCJvcHRpb25zXCIgb2JqZWN0XG4gICAgZXhwb3J0cy5fZXh0ZW5kKGN0eCwgb3B0cyk7XG4gIH1cbiAgLy8gc2V0IGRlZmF1bHQgb3B0aW9uc1xuICBpZiAoaXNVbmRlZmluZWQoY3R4LnNob3dIaWRkZW4pKSBjdHguc2hvd0hpZGRlbiA9IGZhbHNlO1xuICBpZiAoaXNVbmRlZmluZWQoY3R4LmRlcHRoKSkgY3R4LmRlcHRoID0gMjtcbiAgaWYgKGlzVW5kZWZpbmVkKGN0eC5jb2xvcnMpKSBjdHguY29sb3JzID0gZmFsc2U7XG4gIGlmIChpc1VuZGVmaW5lZChjdHguY3VzdG9tSW5zcGVjdCkpIGN0eC5jdXN0b21JbnNwZWN0ID0gdHJ1ZTtcbiAgaWYgKGN0eC5jb2xvcnMpIGN0eC5zdHlsaXplID0gc3R5bGl6ZVdpdGhDb2xvcjtcbiAgcmV0dXJuIGZvcm1hdFZhbHVlKGN0eCwgb2JqLCBjdHguZGVwdGgpO1xufVxuZXhwb3J0cy5pbnNwZWN0ID0gaW5zcGVjdDtcblxuXG4vLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FOU0lfZXNjYXBlX2NvZGUjZ3JhcGhpY3Ncbmluc3BlY3QuY29sb3JzID0ge1xuICAnYm9sZCcgOiBbMSwgMjJdLFxuICAnaXRhbGljJyA6IFszLCAyM10sXG4gICd1bmRlcmxpbmUnIDogWzQsIDI0XSxcbiAgJ2ludmVyc2UnIDogWzcsIDI3XSxcbiAgJ3doaXRlJyA6IFszNywgMzldLFxuICAnZ3JleScgOiBbOTAsIDM5XSxcbiAgJ2JsYWNrJyA6IFszMCwgMzldLFxuICAnYmx1ZScgOiBbMzQsIDM5XSxcbiAgJ2N5YW4nIDogWzM2LCAzOV0sXG4gICdncmVlbicgOiBbMzIsIDM5XSxcbiAgJ21hZ2VudGEnIDogWzM1LCAzOV0sXG4gICdyZWQnIDogWzMxLCAzOV0sXG4gICd5ZWxsb3cnIDogWzMzLCAzOV1cbn07XG5cbi8vIERvbid0IHVzZSAnYmx1ZScgbm90IHZpc2libGUgb24gY21kLmV4ZVxuaW5zcGVjdC5zdHlsZXMgPSB7XG4gICdzcGVjaWFsJzogJ2N5YW4nLFxuICAnbnVtYmVyJzogJ3llbGxvdycsXG4gICdib29sZWFuJzogJ3llbGxvdycsXG4gICd1bmRlZmluZWQnOiAnZ3JleScsXG4gICdudWxsJzogJ2JvbGQnLFxuICAnc3RyaW5nJzogJ2dyZWVuJyxcbiAgJ2RhdGUnOiAnbWFnZW50YScsXG4gIC8vIFwibmFtZVwiOiBpbnRlbnRpb25hbGx5IG5vdCBzdHlsaW5nXG4gICdyZWdleHAnOiAncmVkJ1xufTtcblxuXG5mdW5jdGlvbiBzdHlsaXplV2l0aENvbG9yKHN0ciwgc3R5bGVUeXBlKSB7XG4gIHZhciBzdHlsZSA9IGluc3BlY3Quc3R5bGVzW3N0eWxlVHlwZV07XG5cbiAgaWYgKHN0eWxlKSB7XG4gICAgcmV0dXJuICdcXHUwMDFiWycgKyBpbnNwZWN0LmNvbG9yc1tzdHlsZV1bMF0gKyAnbScgKyBzdHIgK1xuICAgICAgICAgICAnXFx1MDAxYlsnICsgaW5zcGVjdC5jb2xvcnNbc3R5bGVdWzFdICsgJ20nO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzdHI7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBzdHlsaXplTm9Db2xvcihzdHIsIHN0eWxlVHlwZSkge1xuICByZXR1cm4gc3RyO1xufVxuXG5cbmZ1bmN0aW9uIGFycmF5VG9IYXNoKGFycmF5KSB7XG4gIHZhciBoYXNoID0ge307XG5cbiAgYXJyYXkuZm9yRWFjaChmdW5jdGlvbih2YWwsIGlkeCkge1xuICAgIGhhc2hbdmFsXSA9IHRydWU7XG4gIH0pO1xuXG4gIHJldHVybiBoYXNoO1xufVxuXG5cbmZ1bmN0aW9uIGZvcm1hdFZhbHVlKGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcykge1xuICAvLyBQcm92aWRlIGEgaG9vayBmb3IgdXNlci1zcGVjaWZpZWQgaW5zcGVjdCBmdW5jdGlvbnMuXG4gIC8vIENoZWNrIHRoYXQgdmFsdWUgaXMgYW4gb2JqZWN0IHdpdGggYW4gaW5zcGVjdCBmdW5jdGlvbiBvbiBpdFxuICBpZiAoY3R4LmN1c3RvbUluc3BlY3QgJiZcbiAgICAgIHZhbHVlICYmXG4gICAgICBpc0Z1bmN0aW9uKHZhbHVlLmluc3BlY3QpICYmXG4gICAgICAvLyBGaWx0ZXIgb3V0IHRoZSB1dGlsIG1vZHVsZSwgaXQncyBpbnNwZWN0IGZ1bmN0aW9uIGlzIHNwZWNpYWxcbiAgICAgIHZhbHVlLmluc3BlY3QgIT09IGV4cG9ydHMuaW5zcGVjdCAmJlxuICAgICAgLy8gQWxzbyBmaWx0ZXIgb3V0IGFueSBwcm90b3R5cGUgb2JqZWN0cyB1c2luZyB0aGUgY2lyY3VsYXIgY2hlY2suXG4gICAgICAhKHZhbHVlLmNvbnN0cnVjdG9yICYmIHZhbHVlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSA9PT0gdmFsdWUpKSB7XG4gICAgdmFyIHJldCA9IHZhbHVlLmluc3BlY3QocmVjdXJzZVRpbWVzLCBjdHgpO1xuICAgIGlmICghaXNTdHJpbmcocmV0KSkge1xuICAgICAgcmV0ID0gZm9ybWF0VmFsdWUoY3R4LCByZXQsIHJlY3Vyc2VUaW1lcyk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvLyBQcmltaXRpdmUgdHlwZXMgY2Fubm90IGhhdmUgcHJvcGVydGllc1xuICB2YXIgcHJpbWl0aXZlID0gZm9ybWF0UHJpbWl0aXZlKGN0eCwgdmFsdWUpO1xuICBpZiAocHJpbWl0aXZlKSB7XG4gICAgcmV0dXJuIHByaW1pdGl2ZTtcbiAgfVxuXG4gIC8vIExvb2sgdXAgdGhlIGtleXMgb2YgdGhlIG9iamVjdC5cbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSk7XG4gIHZhciB2aXNpYmxlS2V5cyA9IGFycmF5VG9IYXNoKGtleXMpO1xuXG4gIGlmIChjdHguc2hvd0hpZGRlbikge1xuICAgIGtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZSk7XG4gIH1cblxuICAvLyBJRSBkb2Vzbid0IG1ha2UgZXJyb3IgZmllbGRzIG5vbi1lbnVtZXJhYmxlXG4gIC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9kd3c1MnNidCh2PXZzLjk0KS5hc3B4XG4gIGlmIChpc0Vycm9yKHZhbHVlKVxuICAgICAgJiYgKGtleXMuaW5kZXhPZignbWVzc2FnZScpID49IDAgfHwga2V5cy5pbmRleE9mKCdkZXNjcmlwdGlvbicpID49IDApKSB7XG4gICAgcmV0dXJuIGZvcm1hdEVycm9yKHZhbHVlKTtcbiAgfVxuXG4gIC8vIFNvbWUgdHlwZSBvZiBvYmplY3Qgd2l0aG91dCBwcm9wZXJ0aWVzIGNhbiBiZSBzaG9ydGN1dHRlZC5cbiAgaWYgKGtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7XG4gICAgICB2YXIgbmFtZSA9IHZhbHVlLm5hbWUgPyAnOiAnICsgdmFsdWUubmFtZSA6ICcnO1xuICAgICAgcmV0dXJuIGN0eC5zdHlsaXplKCdbRnVuY3Rpb24nICsgbmFtZSArICddJywgJ3NwZWNpYWwnKTtcbiAgICB9XG4gICAgaWYgKGlzUmVnRXhwKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGN0eC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSksICdyZWdleHAnKTtcbiAgICB9XG4gICAgaWYgKGlzRGF0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjdHguc3R5bGl6ZShEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSwgJ2RhdGUnKTtcbiAgICB9XG4gICAgaWYgKGlzRXJyb3IodmFsdWUpKSB7XG4gICAgICByZXR1cm4gZm9ybWF0RXJyb3IodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBiYXNlID0gJycsIGFycmF5ID0gZmFsc2UsIGJyYWNlcyA9IFsneycsICd9J107XG5cbiAgLy8gTWFrZSBBcnJheSBzYXkgdGhhdCB0aGV5IGFyZSBBcnJheVxuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBhcnJheSA9IHRydWU7XG4gICAgYnJhY2VzID0gWydbJywgJ10nXTtcbiAgfVxuXG4gIC8vIE1ha2UgZnVuY3Rpb25zIHNheSB0aGF0IHRoZXkgYXJlIGZ1bmN0aW9uc1xuICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICB2YXIgbiA9IHZhbHVlLm5hbWUgPyAnOiAnICsgdmFsdWUubmFtZSA6ICcnO1xuICAgIGJhc2UgPSAnIFtGdW5jdGlvbicgKyBuICsgJ10nO1xuICB9XG5cbiAgLy8gTWFrZSBSZWdFeHBzIHNheSB0aGF0IHRoZXkgYXJlIFJlZ0V4cHNcbiAgaWYgKGlzUmVnRXhwKHZhbHVlKSkge1xuICAgIGJhc2UgPSAnICcgKyBSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICB9XG5cbiAgLy8gTWFrZSBkYXRlcyB3aXRoIHByb3BlcnRpZXMgZmlyc3Qgc2F5IHRoZSBkYXRlXG4gIGlmIChpc0RhdGUodmFsdWUpKSB7XG4gICAgYmFzZSA9ICcgJyArIERhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwodmFsdWUpO1xuICB9XG5cbiAgLy8gTWFrZSBlcnJvciB3aXRoIG1lc3NhZ2UgZmlyc3Qgc2F5IHRoZSBlcnJvclxuICBpZiAoaXNFcnJvcih2YWx1ZSkpIHtcbiAgICBiYXNlID0gJyAnICsgZm9ybWF0RXJyb3IodmFsdWUpO1xuICB9XG5cbiAgaWYgKGtleXMubGVuZ3RoID09PSAwICYmICghYXJyYXkgfHwgdmFsdWUubGVuZ3RoID09IDApKSB7XG4gICAgcmV0dXJuIGJyYWNlc1swXSArIGJhc2UgKyBicmFjZXNbMV07XG4gIH1cblxuICBpZiAocmVjdXJzZVRpbWVzIDwgMCkge1xuICAgIGlmIChpc1JlZ0V4cCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjdHguc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLCAncmVnZXhwJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjdHguc3R5bGl6ZSgnW09iamVjdF0nLCAnc3BlY2lhbCcpO1xuICAgIH1cbiAgfVxuXG4gIGN0eC5zZWVuLnB1c2godmFsdWUpO1xuXG4gIHZhciBvdXRwdXQ7XG4gIGlmIChhcnJheSkge1xuICAgIG91dHB1dCA9IGZvcm1hdEFycmF5KGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcywgdmlzaWJsZUtleXMsIGtleXMpO1xuICB9IGVsc2Uge1xuICAgIG91dHB1dCA9IGtleXMubWFwKGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIGZvcm1hdFByb3BlcnR5KGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcywgdmlzaWJsZUtleXMsIGtleSwgYXJyYXkpO1xuICAgIH0pO1xuICB9XG5cbiAgY3R4LnNlZW4ucG9wKCk7XG5cbiAgcmV0dXJuIHJlZHVjZVRvU2luZ2xlU3RyaW5nKG91dHB1dCwgYmFzZSwgYnJhY2VzKTtcbn1cblxuXG5mdW5jdGlvbiBmb3JtYXRQcmltaXRpdmUoY3R4LCB2YWx1ZSkge1xuICBpZiAoaXNVbmRlZmluZWQodmFsdWUpKVxuICAgIHJldHVybiBjdHguc3R5bGl6ZSgndW5kZWZpbmVkJywgJ3VuZGVmaW5lZCcpO1xuICBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgdmFyIHNpbXBsZSA9ICdcXCcnICsgSlNPTi5zdHJpbmdpZnkodmFsdWUpLnJlcGxhY2UoL15cInxcIiQvZywgJycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvJy9nLCBcIlxcXFwnXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxcXFwiL2csICdcIicpICsgJ1xcJyc7XG4gICAgcmV0dXJuIGN0eC5zdHlsaXplKHNpbXBsZSwgJ3N0cmluZycpO1xuICB9XG4gIGlmIChpc051bWJlcih2YWx1ZSkpXG4gICAgcmV0dXJuIGN0eC5zdHlsaXplKCcnICsgdmFsdWUsICdudW1iZXInKTtcbiAgaWYgKGlzQm9vbGVhbih2YWx1ZSkpXG4gICAgcmV0dXJuIGN0eC5zdHlsaXplKCcnICsgdmFsdWUsICdib29sZWFuJyk7XG4gIC8vIEZvciBzb21lIHJlYXNvbiB0eXBlb2YgbnVsbCBpcyBcIm9iamVjdFwiLCBzbyBzcGVjaWFsIGNhc2UgaGVyZS5cbiAgaWYgKGlzTnVsbCh2YWx1ZSkpXG4gICAgcmV0dXJuIGN0eC5zdHlsaXplKCdudWxsJywgJ251bGwnKTtcbn1cblxuXG5mdW5jdGlvbiBmb3JtYXRFcnJvcih2YWx1ZSkge1xuICByZXR1cm4gJ1snICsgRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpICsgJ10nO1xufVxuXG5cbmZ1bmN0aW9uIGZvcm1hdEFycmF5KGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcywgdmlzaWJsZUtleXMsIGtleXMpIHtcbiAgdmFyIG91dHB1dCA9IFtdO1xuICBmb3IgKHZhciBpID0gMCwgbCA9IHZhbHVlLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eSh2YWx1ZSwgU3RyaW5nKGkpKSkge1xuICAgICAgb3V0cHV0LnB1c2goZm9ybWF0UHJvcGVydHkoY3R4LCB2YWx1ZSwgcmVjdXJzZVRpbWVzLCB2aXNpYmxlS2V5cyxcbiAgICAgICAgICBTdHJpbmcoaSksIHRydWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0LnB1c2goJycpO1xuICAgIH1cbiAgfVxuICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKCFrZXkubWF0Y2goL15cXGQrJC8pKSB7XG4gICAgICBvdXRwdXQucHVzaChmb3JtYXRQcm9wZXJ0eShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLFxuICAgICAgICAgIGtleSwgdHJ1ZSkpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvdXRwdXQ7XG59XG5cblxuZnVuY3Rpb24gZm9ybWF0UHJvcGVydHkoY3R4LCB2YWx1ZSwgcmVjdXJzZVRpbWVzLCB2aXNpYmxlS2V5cywga2V5LCBhcnJheSkge1xuICB2YXIgbmFtZSwgc3RyLCBkZXNjO1xuICBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2YWx1ZSwga2V5KSB8fCB7IHZhbHVlOiB2YWx1ZVtrZXldIH07XG4gIGlmIChkZXNjLmdldCkge1xuICAgIGlmIChkZXNjLnNldCkge1xuICAgICAgc3RyID0gY3R4LnN0eWxpemUoJ1tHZXR0ZXIvU2V0dGVyXScsICdzcGVjaWFsJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0ciA9IGN0eC5zdHlsaXplKCdbR2V0dGVyXScsICdzcGVjaWFsJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChkZXNjLnNldCkge1xuICAgICAgc3RyID0gY3R4LnN0eWxpemUoJ1tTZXR0ZXJdJywgJ3NwZWNpYWwnKTtcbiAgICB9XG4gIH1cbiAgaWYgKCFoYXNPd25Qcm9wZXJ0eSh2aXNpYmxlS2V5cywga2V5KSkge1xuICAgIG5hbWUgPSAnWycgKyBrZXkgKyAnXSc7XG4gIH1cbiAgaWYgKCFzdHIpIHtcbiAgICBpZiAoY3R4LnNlZW4uaW5kZXhPZihkZXNjLnZhbHVlKSA8IDApIHtcbiAgICAgIGlmIChpc051bGwocmVjdXJzZVRpbWVzKSkge1xuICAgICAgICBzdHIgPSBmb3JtYXRWYWx1ZShjdHgsIGRlc2MudmFsdWUsIG51bGwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RyID0gZm9ybWF0VmFsdWUoY3R4LCBkZXNjLnZhbHVlLCByZWN1cnNlVGltZXMgLSAxKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdHIuaW5kZXhPZignXFxuJykgPiAtMSkge1xuICAgICAgICBpZiAoYXJyYXkpIHtcbiAgICAgICAgICBzdHIgPSBzdHIuc3BsaXQoJ1xcbicpLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gJyAgJyArIGxpbmU7XG4gICAgICAgICAgfSkuam9pbignXFxuJykuc3Vic3RyKDIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0ciA9ICdcXG4nICsgc3RyLnNwbGl0KCdcXG4nKS5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICAgICAgcmV0dXJuICcgICAnICsgbGluZTtcbiAgICAgICAgICB9KS5qb2luKCdcXG4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzdHIgPSBjdHguc3R5bGl6ZSgnW0NpcmN1bGFyXScsICdzcGVjaWFsJyk7XG4gICAgfVxuICB9XG4gIGlmIChpc1VuZGVmaW5lZChuYW1lKSkge1xuICAgIGlmIChhcnJheSAmJiBrZXkubWF0Y2goL15cXGQrJC8pKSB7XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgICBuYW1lID0gSlNPTi5zdHJpbmdpZnkoJycgKyBrZXkpO1xuICAgIGlmIChuYW1lLm1hdGNoKC9eXCIoW2EtekEtWl9dW2EtekEtWl8wLTldKilcIiQvKSkge1xuICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyKDEsIG5hbWUubGVuZ3RoIC0gMik7XG4gICAgICBuYW1lID0gY3R4LnN0eWxpemUobmFtZSwgJ25hbWUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgvJy9nLCBcIlxcXFwnXCIpXG4gICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFxcXCIvZywgJ1wiJylcbiAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLyheXCJ8XCIkKS9nLCBcIidcIik7XG4gICAgICBuYW1lID0gY3R4LnN0eWxpemUobmFtZSwgJ3N0cmluZycpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuYW1lICsgJzogJyArIHN0cjtcbn1cblxuXG5mdW5jdGlvbiByZWR1Y2VUb1NpbmdsZVN0cmluZyhvdXRwdXQsIGJhc2UsIGJyYWNlcykge1xuICB2YXIgbnVtTGluZXNFc3QgPSAwO1xuICB2YXIgbGVuZ3RoID0gb3V0cHV0LnJlZHVjZShmdW5jdGlvbihwcmV2LCBjdXIpIHtcbiAgICBudW1MaW5lc0VzdCsrO1xuICAgIGlmIChjdXIuaW5kZXhPZignXFxuJykgPj0gMCkgbnVtTGluZXNFc3QrKztcbiAgICByZXR1cm4gcHJldiArIGN1ci5yZXBsYWNlKC9cXHUwMDFiXFxbXFxkXFxkP20vZywgJycpLmxlbmd0aCArIDE7XG4gIH0sIDApO1xuXG4gIGlmIChsZW5ndGggPiA2MCkge1xuICAgIHJldHVybiBicmFjZXNbMF0gK1xuICAgICAgICAgICAoYmFzZSA9PT0gJycgPyAnJyA6IGJhc2UgKyAnXFxuICcpICtcbiAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgb3V0cHV0LmpvaW4oJyxcXG4gICcpICtcbiAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgYnJhY2VzWzFdO1xuICB9XG5cbiAgcmV0dXJuIGJyYWNlc1swXSArIGJhc2UgKyAnICcgKyBvdXRwdXQuam9pbignLCAnKSArICcgJyArIGJyYWNlc1sxXTtcbn1cblxuXG4vLyBOT1RFOiBUaGVzZSB0eXBlIGNoZWNraW5nIGZ1bmN0aW9ucyBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBgaW5zdGFuY2VvZmBcbi8vIGJlY2F1c2UgaXQgaXMgZnJhZ2lsZSBhbmQgY2FuIGJlIGVhc2lseSBmYWtlZCB3aXRoIGBPYmplY3QuY3JlYXRlKClgLlxuZnVuY3Rpb24gaXNBcnJheShhcikge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShhcik7XG59XG5leHBvcnRzLmlzQXJyYXkgPSBpc0FycmF5O1xuXG5mdW5jdGlvbiBpc0Jvb2xlYW4oYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnYm9vbGVhbic7XG59XG5leHBvcnRzLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjtcblxuZnVuY3Rpb24gaXNOdWxsKGFyZykge1xuICByZXR1cm4gYXJnID09PSBudWxsO1xufVxuZXhwb3J0cy5pc051bGwgPSBpc051bGw7XG5cbmZ1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkKGFyZykge1xuICByZXR1cm4gYXJnID09IG51bGw7XG59XG5leHBvcnRzLmlzTnVsbE9yVW5kZWZpbmVkID0gaXNOdWxsT3JVbmRlZmluZWQ7XG5cbmZ1bmN0aW9uIGlzTnVtYmVyKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ251bWJlcic7XG59XG5leHBvcnRzLmlzTnVtYmVyID0gaXNOdW1iZXI7XG5cbmZ1bmN0aW9uIGlzU3RyaW5nKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ3N0cmluZyc7XG59XG5leHBvcnRzLmlzU3RyaW5nID0gaXNTdHJpbmc7XG5cbmZ1bmN0aW9uIGlzU3ltYm9sKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ3N5bWJvbCc7XG59XG5leHBvcnRzLmlzU3ltYm9sID0gaXNTeW1ib2w7XG5cbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKGFyZykge1xuICByZXR1cm4gYXJnID09PSB2b2lkIDA7XG59XG5leHBvcnRzLmlzVW5kZWZpbmVkID0gaXNVbmRlZmluZWQ7XG5cbmZ1bmN0aW9uIGlzUmVnRXhwKHJlKSB7XG4gIHJldHVybiBpc09iamVjdChyZSkgJiYgb2JqZWN0VG9TdHJpbmcocmUpID09PSAnW29iamVjdCBSZWdFeHBdJztcbn1cbmV4cG9ydHMuaXNSZWdFeHAgPSBpc1JlZ0V4cDtcblxuZnVuY3Rpb24gaXNPYmplY3QoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiBhcmcgIT09IG51bGw7XG59XG5leHBvcnRzLmlzT2JqZWN0ID0gaXNPYmplY3Q7XG5cbmZ1bmN0aW9uIGlzRGF0ZShkKSB7XG4gIHJldHVybiBpc09iamVjdChkKSAmJiBvYmplY3RUb1N0cmluZyhkKSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xufVxuZXhwb3J0cy5pc0RhdGUgPSBpc0RhdGU7XG5cbmZ1bmN0aW9uIGlzRXJyb3IoZSkge1xuICByZXR1cm4gaXNPYmplY3QoZSkgJiZcbiAgICAgIChvYmplY3RUb1N0cmluZyhlKSA9PT0gJ1tvYmplY3QgRXJyb3JdJyB8fCBlIGluc3RhbmNlb2YgRXJyb3IpO1xufVxuZXhwb3J0cy5pc0Vycm9yID0gaXNFcnJvcjtcblxuZnVuY3Rpb24gaXNGdW5jdGlvbihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbic7XG59XG5leHBvcnRzLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuXG5mdW5jdGlvbiBpc1ByaW1pdGl2ZShhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gbnVsbCB8fFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ2Jvb2xlYW4nIHx8XG4gICAgICAgICB0eXBlb2YgYXJnID09PSAnbnVtYmVyJyB8fFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdzeW1ib2wnIHx8ICAvLyBFUzYgc3ltYm9sXG4gICAgICAgICB0eXBlb2YgYXJnID09PSAndW5kZWZpbmVkJztcbn1cbmV4cG9ydHMuaXNQcmltaXRpdmUgPSBpc1ByaW1pdGl2ZTtcblxuZXhwb3J0cy5pc0J1ZmZlciA9IHJlcXVpcmUoJy4vc3VwcG9ydC9pc0J1ZmZlcicpO1xuXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyhvKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobyk7XG59XG5cblxuZnVuY3Rpb24gcGFkKG4pIHtcbiAgcmV0dXJuIG4gPCAxMCA/ICcwJyArIG4udG9TdHJpbmcoMTApIDogbi50b1N0cmluZygxMCk7XG59XG5cblxudmFyIG1vbnRocyA9IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLFxuICAgICAgICAgICAgICAnT2N0JywgJ05vdicsICdEZWMnXTtcblxuLy8gMjYgRmViIDE2OjE5OjM0XG5mdW5jdGlvbiB0aW1lc3RhbXAoKSB7XG4gIHZhciBkID0gbmV3IERhdGUoKTtcbiAgdmFyIHRpbWUgPSBbcGFkKGQuZ2V0SG91cnMoKSksXG4gICAgICAgICAgICAgIHBhZChkLmdldE1pbnV0ZXMoKSksXG4gICAgICAgICAgICAgIHBhZChkLmdldFNlY29uZHMoKSldLmpvaW4oJzonKTtcbiAgcmV0dXJuIFtkLmdldERhdGUoKSwgbW9udGhzW2QuZ2V0TW9udGgoKV0sIHRpbWVdLmpvaW4oJyAnKTtcbn1cblxuXG4vLyBsb2cgaXMganVzdCBhIHRoaW4gd3JhcHBlciB0byBjb25zb2xlLmxvZyB0aGF0IHByZXBlbmRzIGEgdGltZXN0YW1wXG5leHBvcnRzLmxvZyA9IGZ1bmN0aW9uKCkge1xuICBjb25zb2xlLmxvZygnJXMgLSAlcycsIHRpbWVzdGFtcCgpLCBleHBvcnRzLmZvcm1hdC5hcHBseShleHBvcnRzLCBhcmd1bWVudHMpKTtcbn07XG5cblxuLyoqXG4gKiBJbmhlcml0IHRoZSBwcm90b3R5cGUgbWV0aG9kcyBmcm9tIG9uZSBjb25zdHJ1Y3RvciBpbnRvIGFub3RoZXIuXG4gKlxuICogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5pbmhlcml0cyBmcm9tIGxhbmcuanMgcmV3cml0dGVuIGFzIGEgc3RhbmRhbG9uZVxuICogZnVuY3Rpb24gKG5vdCBvbiBGdW5jdGlvbi5wcm90b3R5cGUpLiBOT1RFOiBJZiB0aGlzIGZpbGUgaXMgdG8gYmUgbG9hZGVkXG4gKiBkdXJpbmcgYm9vdHN0cmFwcGluZyB0aGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIHJld3JpdHRlbiB1c2luZyBzb21lIG5hdGl2ZVxuICogZnVuY3Rpb25zIGFzIHByb3RvdHlwZSBzZXR1cCB1c2luZyBub3JtYWwgSmF2YVNjcmlwdCBkb2VzIG5vdCB3b3JrIGFzXG4gKiBleHBlY3RlZCBkdXJpbmcgYm9vdHN0cmFwcGluZyAoc2VlIG1pcnJvci5qcyBpbiByMTE0OTAzKS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjdG9yIENvbnN0cnVjdG9yIGZ1bmN0aW9uIHdoaWNoIG5lZWRzIHRvIGluaGVyaXQgdGhlXG4gKiAgICAgcHJvdG90eXBlLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gc3VwZXJDdG9yIENvbnN0cnVjdG9yIGZ1bmN0aW9uIHRvIGluaGVyaXQgcHJvdG90eXBlIGZyb20uXG4gKi9cbmV4cG9ydHMuaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpO1xuXG5leHBvcnRzLl9leHRlbmQgPSBmdW5jdGlvbihvcmlnaW4sIGFkZCkge1xuICAvLyBEb24ndCBkbyBhbnl0aGluZyBpZiBhZGQgaXNuJ3QgYW4gb2JqZWN0XG4gIGlmICghYWRkIHx8ICFpc09iamVjdChhZGQpKSByZXR1cm4gb3JpZ2luO1xuXG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMoYWRkKTtcbiAgdmFyIGkgPSBrZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIG9yaWdpbltrZXlzW2ldXSA9IGFkZFtrZXlzW2ldXTtcbiAgfVxuICByZXR1cm4gb3JpZ2luO1xufTtcblxuZnVuY3Rpb24gaGFzT3duUHJvcGVydHkob2JqLCBwcm9wKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTtcbn1cbiIsInZhciB2MSA9IHJlcXVpcmUoJy4vdjEnKTtcbnZhciB2NCA9IHJlcXVpcmUoJy4vdjQnKTtcblxudmFyIHV1aWQgPSB2NDtcbnV1aWQudjEgPSB2MTtcbnV1aWQudjQgPSB2NDtcblxubW9kdWxlLmV4cG9ydHMgPSB1dWlkO1xuIiwiLyoqXG4gKiBDb252ZXJ0IGFycmF5IG9mIDE2IGJ5dGUgdmFsdWVzIHRvIFVVSUQgc3RyaW5nIGZvcm1hdCBvZiB0aGUgZm9ybTpcbiAqIFhYWFhYWFhYLVhYWFgtWFhYWC1YWFhYLVhYWFhYWFhYWFhYWFxuICovXG52YXIgYnl0ZVRvSGV4ID0gW107XG5mb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgKytpKSB7XG4gIGJ5dGVUb0hleFtpXSA9IChpICsgMHgxMDApLnRvU3RyaW5nKDE2KS5zdWJzdHIoMSk7XG59XG5cbmZ1bmN0aW9uIGJ5dGVzVG9VdWlkKGJ1Ziwgb2Zmc2V0KSB7XG4gIHZhciBpID0gb2Zmc2V0IHx8IDA7XG4gIHZhciBidGggPSBieXRlVG9IZXg7XG4gIHJldHVybiBidGhbYnVmW2krK11dICsgYnRoW2J1ZltpKytdXSArXG4gICAgICAgICAgYnRoW2J1ZltpKytdXSArIGJ0aFtidWZbaSsrXV0gKyAnLScgK1xuICAgICAgICAgIGJ0aFtidWZbaSsrXV0gKyBidGhbYnVmW2krK11dICsgJy0nICtcbiAgICAgICAgICBidGhbYnVmW2krK11dICsgYnRoW2J1ZltpKytdXSArICctJyArXG4gICAgICAgICAgYnRoW2J1ZltpKytdXSArIGJ0aFtidWZbaSsrXV0gKyAnLScgK1xuICAgICAgICAgIGJ0aFtidWZbaSsrXV0gKyBidGhbYnVmW2krK11dICtcbiAgICAgICAgICBidGhbYnVmW2krK11dICsgYnRoW2J1ZltpKytdXSArXG4gICAgICAgICAgYnRoW2J1ZltpKytdXSArIGJ0aFtidWZbaSsrXV07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYnl0ZXNUb1V1aWQ7XG4iLCIvLyBVbmlxdWUgSUQgY3JlYXRpb24gcmVxdWlyZXMgYSBoaWdoIHF1YWxpdHkgcmFuZG9tICMgZ2VuZXJhdG9yLiAgSW4gdGhlXG4vLyBicm93c2VyIHRoaXMgaXMgYSBsaXR0bGUgY29tcGxpY2F0ZWQgZHVlIHRvIHVua25vd24gcXVhbGl0eSBvZiBNYXRoLnJhbmRvbSgpXG4vLyBhbmQgaW5jb25zaXN0ZW50IHN1cHBvcnQgZm9yIHRoZSBgY3J5cHRvYCBBUEkuICBXZSBkbyB0aGUgYmVzdCB3ZSBjYW4gdmlhXG4vLyBmZWF0dXJlLWRldGVjdGlvblxudmFyIHJuZztcblxudmFyIGNyeXB0byA9IGdsb2JhbC5jcnlwdG8gfHwgZ2xvYmFsLm1zQ3J5cHRvOyAvLyBmb3IgSUUgMTFcbmlmIChjcnlwdG8gJiYgY3J5cHRvLmdldFJhbmRvbVZhbHVlcykge1xuICAvLyBXSEFUV0cgY3J5cHRvIFJORyAtIGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9DcnlwdG9cbiAgdmFyIHJuZHM4ID0gbmV3IFVpbnQ4QXJyYXkoMTYpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4gIHJuZyA9IGZ1bmN0aW9uIHdoYXR3Z1JORygpIHtcbiAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHJuZHM4KTtcbiAgICByZXR1cm4gcm5kczg7XG4gIH07XG59XG5cbmlmICghcm5nKSB7XG4gIC8vIE1hdGgucmFuZG9tKCktYmFzZWQgKFJORylcbiAgLy9cbiAgLy8gSWYgYWxsIGVsc2UgZmFpbHMsIHVzZSBNYXRoLnJhbmRvbSgpLiAgSXQncyBmYXN0LCBidXQgaXMgb2YgdW5zcGVjaWZpZWRcbiAgLy8gcXVhbGl0eS5cbiAgdmFyIHJuZHMgPSBuZXcgQXJyYXkoMTYpO1xuICBybmcgPSBmdW5jdGlvbigpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgcjsgaSA8IDE2OyBpKyspIHtcbiAgICAgIGlmICgoaSAmIDB4MDMpID09PSAwKSByID0gTWF0aC5yYW5kb20oKSAqIDB4MTAwMDAwMDAwO1xuICAgICAgcm5kc1tpXSA9IHIgPj4+ICgoaSAmIDB4MDMpIDw8IDMpICYgMHhmZjtcbiAgICB9XG5cbiAgICByZXR1cm4gcm5kcztcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBybmc7XG4iLCJ2YXIgcm5nID0gcmVxdWlyZSgnLi9saWIvcm5nJyk7XG52YXIgYnl0ZXNUb1V1aWQgPSByZXF1aXJlKCcuL2xpYi9ieXRlc1RvVXVpZCcpO1xuXG4vLyAqKmB2MSgpYCAtIEdlbmVyYXRlIHRpbWUtYmFzZWQgVVVJRCoqXG4vL1xuLy8gSW5zcGlyZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL0xpb3NLL1VVSUQuanNcbi8vIGFuZCBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvdXVpZC5odG1sXG5cbi8vIHJhbmRvbSAjJ3Mgd2UgbmVlZCB0byBpbml0IG5vZGUgYW5kIGNsb2Nrc2VxXG52YXIgX3NlZWRCeXRlcyA9IHJuZygpO1xuXG4vLyBQZXIgNC41LCBjcmVhdGUgYW5kIDQ4LWJpdCBub2RlIGlkLCAoNDcgcmFuZG9tIGJpdHMgKyBtdWx0aWNhc3QgYml0ID0gMSlcbnZhciBfbm9kZUlkID0gW1xuICBfc2VlZEJ5dGVzWzBdIHwgMHgwMSxcbiAgX3NlZWRCeXRlc1sxXSwgX3NlZWRCeXRlc1syXSwgX3NlZWRCeXRlc1szXSwgX3NlZWRCeXRlc1s0XSwgX3NlZWRCeXRlc1s1XVxuXTtcblxuLy8gUGVyIDQuMi4yLCByYW5kb21pemUgKDE0IGJpdCkgY2xvY2tzZXFcbnZhciBfY2xvY2tzZXEgPSAoX3NlZWRCeXRlc1s2XSA8PCA4IHwgX3NlZWRCeXRlc1s3XSkgJiAweDNmZmY7XG5cbi8vIFByZXZpb3VzIHV1aWQgY3JlYXRpb24gdGltZVxudmFyIF9sYXN0TVNlY3MgPSAwLCBfbGFzdE5TZWNzID0gMDtcblxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9icm9vZmEvbm9kZS11dWlkIGZvciBBUEkgZGV0YWlsc1xuZnVuY3Rpb24gdjEob3B0aW9ucywgYnVmLCBvZmZzZXQpIHtcbiAgdmFyIGkgPSBidWYgJiYgb2Zmc2V0IHx8IDA7XG4gIHZhciBiID0gYnVmIHx8IFtdO1xuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIHZhciBjbG9ja3NlcSA9IG9wdGlvbnMuY2xvY2tzZXEgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuY2xvY2tzZXEgOiBfY2xvY2tzZXE7XG5cbiAgLy8gVVVJRCB0aW1lc3RhbXBzIGFyZSAxMDAgbmFuby1zZWNvbmQgdW5pdHMgc2luY2UgdGhlIEdyZWdvcmlhbiBlcG9jaCxcbiAgLy8gKDE1ODItMTAtMTUgMDA6MDApLiAgSlNOdW1iZXJzIGFyZW4ndCBwcmVjaXNlIGVub3VnaCBmb3IgdGhpcywgc29cbiAgLy8gdGltZSBpcyBoYW5kbGVkIGludGVybmFsbHkgYXMgJ21zZWNzJyAoaW50ZWdlciBtaWxsaXNlY29uZHMpIGFuZCAnbnNlY3MnXG4gIC8vICgxMDAtbmFub3NlY29uZHMgb2Zmc2V0IGZyb20gbXNlY3MpIHNpbmNlIHVuaXggZXBvY2gsIDE5NzAtMDEtMDEgMDA6MDAuXG4gIHZhciBtc2VjcyA9IG9wdGlvbnMubXNlY3MgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMubXNlY3MgOiBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAvLyBQZXIgNC4yLjEuMiwgdXNlIGNvdW50IG9mIHV1aWQncyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBjdXJyZW50IGNsb2NrXG4gIC8vIGN5Y2xlIHRvIHNpbXVsYXRlIGhpZ2hlciByZXNvbHV0aW9uIGNsb2NrXG4gIHZhciBuc2VjcyA9IG9wdGlvbnMubnNlY3MgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMubnNlY3MgOiBfbGFzdE5TZWNzICsgMTtcblxuICAvLyBUaW1lIHNpbmNlIGxhc3QgdXVpZCBjcmVhdGlvbiAoaW4gbXNlY3MpXG4gIHZhciBkdCA9IChtc2VjcyAtIF9sYXN0TVNlY3MpICsgKG5zZWNzIC0gX2xhc3ROU2VjcykvMTAwMDA7XG5cbiAgLy8gUGVyIDQuMi4xLjIsIEJ1bXAgY2xvY2tzZXEgb24gY2xvY2sgcmVncmVzc2lvblxuICBpZiAoZHQgPCAwICYmIG9wdGlvbnMuY2xvY2tzZXEgPT09IHVuZGVmaW5lZCkge1xuICAgIGNsb2Nrc2VxID0gY2xvY2tzZXEgKyAxICYgMHgzZmZmO1xuICB9XG5cbiAgLy8gUmVzZXQgbnNlY3MgaWYgY2xvY2sgcmVncmVzc2VzIChuZXcgY2xvY2tzZXEpIG9yIHdlJ3ZlIG1vdmVkIG9udG8gYSBuZXdcbiAgLy8gdGltZSBpbnRlcnZhbFxuICBpZiAoKGR0IDwgMCB8fCBtc2VjcyA+IF9sYXN0TVNlY3MpICYmIG9wdGlvbnMubnNlY3MgPT09IHVuZGVmaW5lZCkge1xuICAgIG5zZWNzID0gMDtcbiAgfVxuXG4gIC8vIFBlciA0LjIuMS4yIFRocm93IGVycm9yIGlmIHRvbyBtYW55IHV1aWRzIGFyZSByZXF1ZXN0ZWRcbiAgaWYgKG5zZWNzID49IDEwMDAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1dWlkLnYxKCk6IENhblxcJ3QgY3JlYXRlIG1vcmUgdGhhbiAxME0gdXVpZHMvc2VjJyk7XG4gIH1cblxuICBfbGFzdE1TZWNzID0gbXNlY3M7XG4gIF9sYXN0TlNlY3MgPSBuc2VjcztcbiAgX2Nsb2Nrc2VxID0gY2xvY2tzZXE7XG5cbiAgLy8gUGVyIDQuMS40IC0gQ29udmVydCBmcm9tIHVuaXggZXBvY2ggdG8gR3JlZ29yaWFuIGVwb2NoXG4gIG1zZWNzICs9IDEyMjE5MjkyODAwMDAwO1xuXG4gIC8vIGB0aW1lX2xvd2BcbiAgdmFyIHRsID0gKChtc2VjcyAmIDB4ZmZmZmZmZikgKiAxMDAwMCArIG5zZWNzKSAlIDB4MTAwMDAwMDAwO1xuICBiW2krK10gPSB0bCA+Pj4gMjQgJiAweGZmO1xuICBiW2krK10gPSB0bCA+Pj4gMTYgJiAweGZmO1xuICBiW2krK10gPSB0bCA+Pj4gOCAmIDB4ZmY7XG4gIGJbaSsrXSA9IHRsICYgMHhmZjtcblxuICAvLyBgdGltZV9taWRgXG4gIHZhciB0bWggPSAobXNlY3MgLyAweDEwMDAwMDAwMCAqIDEwMDAwKSAmIDB4ZmZmZmZmZjtcbiAgYltpKytdID0gdG1oID4+PiA4ICYgMHhmZjtcbiAgYltpKytdID0gdG1oICYgMHhmZjtcblxuICAvLyBgdGltZV9oaWdoX2FuZF92ZXJzaW9uYFxuICBiW2krK10gPSB0bWggPj4+IDI0ICYgMHhmIHwgMHgxMDsgLy8gaW5jbHVkZSB2ZXJzaW9uXG4gIGJbaSsrXSA9IHRtaCA+Pj4gMTYgJiAweGZmO1xuXG4gIC8vIGBjbG9ja19zZXFfaGlfYW5kX3Jlc2VydmVkYCAoUGVyIDQuMi4yIC0gaW5jbHVkZSB2YXJpYW50KVxuICBiW2krK10gPSBjbG9ja3NlcSA+Pj4gOCB8IDB4ODA7XG5cbiAgLy8gYGNsb2NrX3NlcV9sb3dgXG4gIGJbaSsrXSA9IGNsb2Nrc2VxICYgMHhmZjtcblxuICAvLyBgbm9kZWBcbiAgdmFyIG5vZGUgPSBvcHRpb25zLm5vZGUgfHwgX25vZGVJZDtcbiAgZm9yICh2YXIgbiA9IDA7IG4gPCA2OyArK24pIHtcbiAgICBiW2kgKyBuXSA9IG5vZGVbbl07XG4gIH1cblxuICByZXR1cm4gYnVmID8gYnVmIDogYnl0ZXNUb1V1aWQoYik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdjE7XG4iLCJ2YXIgcm5nID0gcmVxdWlyZSgnLi9saWIvcm5nJyk7XG52YXIgYnl0ZXNUb1V1aWQgPSByZXF1aXJlKCcuL2xpYi9ieXRlc1RvVXVpZCcpO1xuXG5mdW5jdGlvbiB2NChvcHRpb25zLCBidWYsIG9mZnNldCkge1xuICB2YXIgaSA9IGJ1ZiAmJiBvZmZzZXQgfHwgMDtcblxuICBpZiAodHlwZW9mKG9wdGlvbnMpID09ICdzdHJpbmcnKSB7XG4gICAgYnVmID0gb3B0aW9ucyA9PSAnYmluYXJ5JyA/IG5ldyBBcnJheSgxNikgOiBudWxsO1xuICAgIG9wdGlvbnMgPSBudWxsO1xuICB9XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIHZhciBybmRzID0gb3B0aW9ucy5yYW5kb20gfHwgKG9wdGlvbnMucm5nIHx8IHJuZykoKTtcblxuICAvLyBQZXIgNC40LCBzZXQgYml0cyBmb3IgdmVyc2lvbiBhbmQgYGNsb2NrX3NlcV9oaV9hbmRfcmVzZXJ2ZWRgXG4gIHJuZHNbNl0gPSAocm5kc1s2XSAmIDB4MGYpIHwgMHg0MDtcbiAgcm5kc1s4XSA9IChybmRzWzhdICYgMHgzZikgfCAweDgwO1xuXG4gIC8vIENvcHkgYnl0ZXMgdG8gYnVmZmVyLCBpZiBwcm92aWRlZFxuICBpZiAoYnVmKSB7XG4gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDE2OyArK2lpKSB7XG4gICAgICBidWZbaSArIGlpXSA9IHJuZHNbaWldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBidWYgfHwgYnl0ZXNUb1V1aWQocm5kcyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdjQ7XG4iLCIndXNlIHN0cmljdCc7XHJcblxyXG52YXIgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJylcclxuICAgICx1dWlkUGF0dGVybiA9IC9eWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tNFswLTlhLWZdezN9LVs4OWFiXVswLTlhLWZdezN9LVswLTlhLWZdezEyfSQvXHJcbiAgICA7XHJcblxyXG5leHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBnZW5lcmF0ZVV1aWQ7XHJcbmV4cG9ydHMuYXN5bmMgPSBnZW5lcmF0ZVV1aWRBc3luYztcclxuZXhwb3J0cy5zeW5jID0gZ2VuZXJhdGVVdWlkU3luYztcclxuZXhwb3J0cy52YWxpZCA9IGdlbmVyYXRlVXVpZDtcclxuXHJcblxyXG5mdW5jdGlvbiBpc1VVSUQodXVpZCkge1xyXG4gIHJldHVybiB1dWlkUGF0dGVybi50ZXN0KHV1aWQpO1xyXG59XHJcblxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVVdWlkU3luYygpIHtcclxuICB2YXIgcm5kID0gY3J5cHRvLnJhbmRvbUJ5dGVzKDE2KTtcclxuICBybmRbNl0gPSAocm5kWzZdICYgMHgwZikgfCAweDQwO1xyXG4gIHJuZFs4XSA9IChybmRbOF0gJiAweDNmKSB8IDB4ODA7XHJcbiAgcm5kID0gcm5kLnRvU3RyaW5nKCdoZXgnKS5tYXRjaCgvKC57OH0pKC57NH0pKC57NH0pKC57NH0pKC57MTJ9KS8pO1xyXG4gIHJuZC5zaGlmdCgpO1xyXG4gIHJldHVybiBybmQuam9pbignLScpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZW5lcmF0ZVV1aWRBc3luYyhjYWxsYmFjaykge1xyXG4gIGNyeXB0by5yYW5kb21CeXRlcygxNiwgZnVuY3Rpb24oZXJyLCBybmQpIHtcclxuICAgIHJuZFs2XSA9IChybmRbNl0gJiAweDBmKSB8IDB4NDA7XHJcbiAgICBybmRbOF0gPSAocm5kWzhdICYgMHgzZikgfCAweDgwO1xyXG4gICAgcm5kID0gcm5kLnRvU3RyaW5nKCdoZXgnKS5tYXRjaCgvKC57OH0pKC57NH0pKC57NH0pKC57NH0pKC57MTJ9KS8pO1xyXG4gICAgcm5kLnNoaWZ0KCk7XHJcbiAgICBjYWxsYmFjayhudWxsLCBybmQuam9pbignLScpKTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVVdWlkKGNhbGxiYWNrKSB7XHJcbiAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGdlbmVyYXRlVXVpZFN5bmMoKTtcclxuICByZXR1cm4gZ2VuZXJhdGVVdWlkQXN5bmMoY2FsbGJhY2spO1xyXG59XHJcbiIsInZhciBpbmRleE9mID0gcmVxdWlyZSgnaW5kZXhvZicpO1xuXG52YXIgT2JqZWN0X2tleXMgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKSByZXR1cm4gT2JqZWN0LmtleXMob2JqKVxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgcmVzID0gW107XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHJlcy5wdXNoKGtleSlcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59O1xuXG52YXIgZm9yRWFjaCA9IGZ1bmN0aW9uICh4cywgZm4pIHtcbiAgICBpZiAoeHMuZm9yRWFjaCkgcmV0dXJuIHhzLmZvckVhY2goZm4pXG4gICAgZWxzZSBmb3IgKHZhciBpID0gMDsgaSA8IHhzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGZuKHhzW2ldLCBpLCB4cyk7XG4gICAgfVxufTtcblxudmFyIGRlZmluZVByb3AgPSAoZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnXycsIHt9KTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9iaiwgbmFtZSwgdmFsdWUpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIG5hbWUsIHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24ob2JqLCBuYW1lLCB2YWx1ZSkge1xuICAgICAgICAgICAgb2JqW25hbWVdID0gdmFsdWU7XG4gICAgICAgIH07XG4gICAgfVxufSgpKTtcblxudmFyIGdsb2JhbHMgPSBbJ0FycmF5JywgJ0Jvb2xlYW4nLCAnRGF0ZScsICdFcnJvcicsICdFdmFsRXJyb3InLCAnRnVuY3Rpb24nLFxuJ0luZmluaXR5JywgJ0pTT04nLCAnTWF0aCcsICdOYU4nLCAnTnVtYmVyJywgJ09iamVjdCcsICdSYW5nZUVycm9yJyxcbidSZWZlcmVuY2VFcnJvcicsICdSZWdFeHAnLCAnU3RyaW5nJywgJ1N5bnRheEVycm9yJywgJ1R5cGVFcnJvcicsICdVUklFcnJvcicsXG4nZGVjb2RlVVJJJywgJ2RlY29kZVVSSUNvbXBvbmVudCcsICdlbmNvZGVVUkknLCAnZW5jb2RlVVJJQ29tcG9uZW50JywgJ2VzY2FwZScsXG4nZXZhbCcsICdpc0Zpbml0ZScsICdpc05hTicsICdwYXJzZUZsb2F0JywgJ3BhcnNlSW50JywgJ3VuZGVmaW5lZCcsICd1bmVzY2FwZSddO1xuXG5mdW5jdGlvbiBDb250ZXh0KCkge31cbkNvbnRleHQucHJvdG90eXBlID0ge307XG5cbnZhciBTY3JpcHQgPSBleHBvcnRzLlNjcmlwdCA9IGZ1bmN0aW9uIE5vZGVTY3JpcHQgKGNvZGUpIHtcbiAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgU2NyaXB0KSkgcmV0dXJuIG5ldyBTY3JpcHQoY29kZSk7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbn07XG5cblNjcmlwdC5wcm90b3R5cGUucnVuSW5Db250ZXh0ID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBpZiAoIShjb250ZXh0IGluc3RhbmNlb2YgQ29udGV4dCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIm5lZWRzIGEgJ2NvbnRleHQnIGFyZ3VtZW50LlwiKTtcbiAgICB9XG4gICAgXG4gICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgIGlmICghaWZyYW1lLnN0eWxlKSBpZnJhbWUuc3R5bGUgPSB7fTtcbiAgICBpZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICBcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gICAgXG4gICAgdmFyIHdpbiA9IGlmcmFtZS5jb250ZW50V2luZG93O1xuICAgIHZhciB3RXZhbCA9IHdpbi5ldmFsLCB3RXhlY1NjcmlwdCA9IHdpbi5leGVjU2NyaXB0O1xuXG4gICAgaWYgKCF3RXZhbCAmJiB3RXhlY1NjcmlwdCkge1xuICAgICAgICAvLyB3aW4uZXZhbCgpIG1hZ2ljYWxseSBhcHBlYXJzIHdoZW4gdGhpcyBpcyBjYWxsZWQgaW4gSUU6XG4gICAgICAgIHdFeGVjU2NyaXB0LmNhbGwod2luLCAnbnVsbCcpO1xuICAgICAgICB3RXZhbCA9IHdpbi5ldmFsO1xuICAgIH1cbiAgICBcbiAgICBmb3JFYWNoKE9iamVjdF9rZXlzKGNvbnRleHQpLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHdpbltrZXldID0gY29udGV4dFtrZXldO1xuICAgIH0pO1xuICAgIGZvckVhY2goZ2xvYmFscywgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBpZiAoY29udGV4dFtrZXldKSB7XG4gICAgICAgICAgICB3aW5ba2V5XSA9IGNvbnRleHRba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIHZhciB3aW5LZXlzID0gT2JqZWN0X2tleXMod2luKTtcblxuICAgIHZhciByZXMgPSB3RXZhbC5jYWxsKHdpbiwgdGhpcy5jb2RlKTtcbiAgICBcbiAgICBmb3JFYWNoKE9iamVjdF9rZXlzKHdpbiksIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgLy8gQXZvaWQgY29weWluZyBjaXJjdWxhciBvYmplY3RzIGxpa2UgYHRvcGAgYW5kIGB3aW5kb3dgIGJ5IG9ubHlcbiAgICAgICAgLy8gdXBkYXRpbmcgZXhpc3RpbmcgY29udGV4dCBwcm9wZXJ0aWVzIG9yIG5ldyBwcm9wZXJ0aWVzIGluIHRoZSBgd2luYFxuICAgICAgICAvLyB0aGF0IHdhcyBvbmx5IGludHJvZHVjZWQgYWZ0ZXIgdGhlIGV2YWwuXG4gICAgICAgIGlmIChrZXkgaW4gY29udGV4dCB8fCBpbmRleE9mKHdpbktleXMsIGtleSkgPT09IC0xKSB7XG4gICAgICAgICAgICBjb250ZXh0W2tleV0gPSB3aW5ba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgZm9yRWFjaChnbG9iYWxzLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGlmICghKGtleSBpbiBjb250ZXh0KSkge1xuICAgICAgICAgICAgZGVmaW5lUHJvcChjb250ZXh0LCBrZXksIHdpbltrZXldKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgICBcbiAgICByZXR1cm4gcmVzO1xufTtcblxuU2NyaXB0LnByb3RvdHlwZS5ydW5JblRoaXNDb250ZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBldmFsKHRoaXMuY29kZSk7IC8vIG1heWJlLi4uXG59O1xuXG5TY3JpcHQucHJvdG90eXBlLnJ1bkluTmV3Q29udGV4dCA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgdmFyIGN0eCA9IFNjcmlwdC5jcmVhdGVDb250ZXh0KGNvbnRleHQpO1xuICAgIHZhciByZXMgPSB0aGlzLnJ1bkluQ29udGV4dChjdHgpO1xuXG4gICAgZm9yRWFjaChPYmplY3Rfa2V5cyhjdHgpLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGNvbnRleHRba2V5XSA9IGN0eFtrZXldO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlcztcbn07XG5cbmZvckVhY2goT2JqZWN0X2tleXMoU2NyaXB0LnByb3RvdHlwZSksIGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgZXhwb3J0c1tuYW1lXSA9IFNjcmlwdFtuYW1lXSA9IGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICAgIHZhciBzID0gU2NyaXB0KGNvZGUpO1xuICAgICAgICByZXR1cm4gc1tuYW1lXS5hcHBseShzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpO1xuICAgIH07XG59KTtcblxuZXhwb3J0cy5jcmVhdGVTY3JpcHQgPSBmdW5jdGlvbiAoY29kZSkge1xuICAgIHJldHVybiBleHBvcnRzLlNjcmlwdChjb2RlKTtcbn07XG5cbmV4cG9ydHMuY3JlYXRlQ29udGV4dCA9IFNjcmlwdC5jcmVhdGVDb250ZXh0ID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICB2YXIgY29weSA9IG5ldyBDb250ZXh0KCk7XG4gICAgaWYodHlwZW9mIGNvbnRleHQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGZvckVhY2goT2JqZWN0X2tleXMoY29udGV4dCksIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGNvcHlba2V5XSA9IGNvbnRleHRba2V5XTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjb3B5O1xufTtcbiIsIihmdW5jdGlvbigpeyd1c2Ugc3RyaWN0Jzt2YXIgaz10aGlzO1xuZnVuY3Rpb24gYWEoYSl7dmFyIGI9dHlwZW9mIGE7aWYoXCJvYmplY3RcIj09YilpZihhKXtpZihhIGluc3RhbmNlb2YgQXJyYXkpcmV0dXJuXCJhcnJheVwiO2lmKGEgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIGI7dmFyIGM9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpO2lmKFwiW29iamVjdCBXaW5kb3ddXCI9PWMpcmV0dXJuXCJvYmplY3RcIjtpZihcIltvYmplY3QgQXJyYXldXCI9PWN8fFwibnVtYmVyXCI9PXR5cGVvZiBhLmxlbmd0aCYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGEuc3BsaWNlJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgYS5wcm9wZXJ0eUlzRW51bWVyYWJsZSYmIWEucHJvcGVydHlJc0VudW1lcmFibGUoXCJzcGxpY2VcIikpcmV0dXJuXCJhcnJheVwiO2lmKFwiW29iamVjdCBGdW5jdGlvbl1cIj09Y3x8XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGEuY2FsbCYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGEucHJvcGVydHlJc0VudW1lcmFibGUmJiFhLnByb3BlcnR5SXNFbnVtZXJhYmxlKFwiY2FsbFwiKSlyZXR1cm5cImZ1bmN0aW9uXCJ9ZWxzZSByZXR1cm5cIm51bGxcIjtlbHNlIGlmKFwiZnVuY3Rpb25cIj09XG5iJiZcInVuZGVmaW5lZFwiPT10eXBlb2YgYS5jYWxsKXJldHVyblwib2JqZWN0XCI7cmV0dXJuIGJ9ZnVuY3Rpb24gbChhKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgYX1mdW5jdGlvbiBiYShhLGIsYyl7cmV0dXJuIGEuY2FsbC5hcHBseShhLmJpbmQsYXJndW1lbnRzKX1mdW5jdGlvbiBjYShhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZigyPGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGMsZCk7cmV0dXJuIGEuYXBwbHkoYixjKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX1cbmZ1bmN0aW9uIGRhKGEsYixjKXtkYT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmLTEhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLnRvU3RyaW5nKCkuaW5kZXhPZihcIm5hdGl2ZSBjb2RlXCIpP2JhOmNhO3JldHVybiBkYS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZWEoYSxiKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9Yy5zbGljZSgpO2IucHVzaC5hcHBseShiLGFyZ3VtZW50cyk7cmV0dXJuIGEuYXBwbHkodGhpcyxiKX19XG5mdW5jdGlvbiBtKGEpe3ZhciBiPW47ZnVuY3Rpb24gYygpe31jLnByb3RvdHlwZT1iLnByb3RvdHlwZTthLkc9Yi5wcm90b3R5cGU7YS5wcm90b3R5cGU9bmV3IGM7YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YTthLkY9ZnVuY3Rpb24oYSxjLGYpe2Zvcih2YXIgZz1BcnJheShhcmd1bWVudHMubGVuZ3RoLTIpLGg9MjtoPGFyZ3VtZW50cy5sZW5ndGg7aCsrKWdbaC0yXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2NdLmFwcGx5KGEsZyl9fTsvKlxuXG4gVGhlIE1JVCBMaWNlbnNlXG5cbiBDb3B5cmlnaHQgKGMpIDIwMDcgQ3lib3p1IExhYnMsIEluYy5cbiBDb3B5cmlnaHQgKGMpIDIwMTIgR29vZ2xlIEluYy5cblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4gcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4gc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkdcbiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTXG4gSU4gVEhFIFNPRlRXQVJFLlxuKi9cbnZhciBmYT1TdHJpbmcucHJvdG90eXBlLnRyaW0/ZnVuY3Rpb24oYSl7cmV0dXJuIGEudHJpbSgpfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9eW1xcc1xceGEwXSt8W1xcc1xceGEwXSskL2csXCJcIil9O2Z1bmN0aW9uIHEoYSxiKXtyZXR1cm4tMSE9YS5pbmRleE9mKGIpfWZ1bmN0aW9uIGdhKGEsYil7cmV0dXJuIGE8Yj8tMTphPmI/MTowfTt2YXIgaGE9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGEsYixjKX06ZnVuY3Rpb24oYSxiLGMpe2M9bnVsbD09Yz8wOjA+Yz9NYXRoLm1heCgwLGEubGVuZ3RoK2MpOmM7aWYobChhKSlyZXR1cm4gbChiKSYmMT09Yi5sZW5ndGg/YS5pbmRleE9mKGIsYyk6LTE7Zm9yKDtjPGEubGVuZ3RoO2MrKylpZihjIGluIGEmJmFbY109PT1iKXJldHVybiBjO3JldHVybi0xfSxyPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoP2Z1bmN0aW9uKGEsYixjKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGEsYixjKX06ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1hLmxlbmd0aCxlPWwoYSk/YS5zcGxpdChcIlwiKTphLGY9MDtmPGQ7ZisrKWYgaW4gZSYmYi5jYWxsKGMsZVtmXSxmLGEpfSxpYT1BcnJheS5wcm90b3R5cGUuZmlsdGVyP2Z1bmN0aW9uKGEsYixjKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGEsXG5iLGMpfTpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWEubGVuZ3RoLGU9W10sZj0wLGc9bChhKT9hLnNwbGl0KFwiXCIpOmEsaD0wO2g8ZDtoKyspaWYoaCBpbiBnKXt2YXIgcD1nW2hdO2IuY2FsbChjLHAsaCxhKSYmKGVbZisrXT1wKX1yZXR1cm4gZX0sdD1BcnJheS5wcm90b3R5cGUucmVkdWNlP2Z1bmN0aW9uKGEsYixjLGQpe2QmJihiPWRhKGIsZCkpO3JldHVybiBBcnJheS5wcm90b3R5cGUucmVkdWNlLmNhbGwoYSxiLGMpfTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1jO3IoYSxmdW5jdGlvbihjLGcpe2U9Yi5jYWxsKGQsZSxjLGcsYSl9KTtyZXR1cm4gZX0samE9QXJyYXkucHJvdG90eXBlLnNvbWU/ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc29tZS5jYWxsKGEsYixjKX06ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1hLmxlbmd0aCxlPWwoYSk/YS5zcGxpdChcIlwiKTphLGY9MDtmPGQ7ZisrKWlmKGYgaW4gZSYmYi5jYWxsKGMsZVtmXSxmLGEpKXJldHVybiEwO1xucmV0dXJuITF9O2Z1bmN0aW9uIGthKGEsYil7dmFyIGM7YTp7Yz1hLmxlbmd0aDtmb3IodmFyIGQ9bChhKT9hLnNwbGl0KFwiXCIpOmEsZT0wO2U8YztlKyspaWYoZSBpbiBkJiZiLmNhbGwodm9pZCAwLGRbZV0sZSxhKSl7Yz1lO2JyZWFrIGF9Yz0tMX1yZXR1cm4gMD5jP251bGw6bChhKT9hLmNoYXJBdChjKTphW2NdfWZ1bmN0aW9uIGxhKGEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KEFycmF5LnByb3RvdHlwZSxhcmd1bWVudHMpfWZ1bmN0aW9uIG1hKGEsYixjKXtyZXR1cm4gMj49YXJndW1lbnRzLmxlbmd0aD9BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLGIpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEsYixjKX07dmFyIHU7YTp7dmFyIG5hPWsubmF2aWdhdG9yO2lmKG5hKXt2YXIgb2E9bmEudXNlckFnZW50O2lmKG9hKXt1PW9hO2JyZWFrIGF9fXU9XCJcIn07dmFyIHBhPXEodSxcIk9wZXJhXCIpfHxxKHUsXCJPUFJcIiksdj1xKHUsXCJUcmlkZW50XCIpfHxxKHUsXCJNU0lFXCIpLHFhPXEodSxcIkVkZ2VcIikscmE9cSh1LFwiR2Vja29cIikmJiEocSh1LnRvTG93ZXJDYXNlKCksXCJ3ZWJraXRcIikmJiFxKHUsXCJFZGdlXCIpKSYmIShxKHUsXCJUcmlkZW50XCIpfHxxKHUsXCJNU0lFXCIpKSYmIXEodSxcIkVkZ2VcIiksc2E9cSh1LnRvTG93ZXJDYXNlKCksXCJ3ZWJraXRcIikmJiFxKHUsXCJFZGdlXCIpO2Z1bmN0aW9uIHRhKCl7dmFyIGE9ay5kb2N1bWVudDtyZXR1cm4gYT9hLmRvY3VtZW50TW9kZTp2b2lkIDB9dmFyIHVhO1xuYTp7dmFyIHZhPVwiXCIsd2E9ZnVuY3Rpb24oKXt2YXIgYT11O2lmKHJhKXJldHVybi9ydlxcOihbXlxcKTtdKykoXFwpfDspLy5leGVjKGEpO2lmKHFhKXJldHVybi9FZGdlXFwvKFtcXGRcXC5dKykvLmV4ZWMoYSk7aWYodilyZXR1cm4vXFxiKD86TVNJRXxydilbOiBdKFteXFwpO10rKShcXCl8OykvLmV4ZWMoYSk7aWYoc2EpcmV0dXJuL1dlYktpdFxcLyhcXFMrKS8uZXhlYyhhKTtpZihwYSlyZXR1cm4vKD86VmVyc2lvbilbIFxcL10/KFxcUyspLy5leGVjKGEpfSgpO3dhJiYodmE9d2E/d2FbMV06XCJcIik7aWYodil7dmFyIHhhPXRhKCk7aWYobnVsbCE9eGEmJnhhPnBhcnNlRmxvYXQodmEpKXt1YT1TdHJpbmcoeGEpO2JyZWFrIGF9fXVhPXZhfXZhciB5YT17fTtcbmZ1bmN0aW9uIHphKGEpe2lmKCF5YVthXSl7Zm9yKHZhciBiPTAsYz1mYShTdHJpbmcodWEpKS5zcGxpdChcIi5cIiksZD1mYShTdHJpbmcoYSkpLnNwbGl0KFwiLlwiKSxlPU1hdGgubWF4KGMubGVuZ3RoLGQubGVuZ3RoKSxmPTA7MD09YiYmZjxlO2YrKyl7dmFyIGc9Y1tmXXx8XCJcIixoPWRbZl18fFwiXCIscD0vKFxcZCopKFxcRCopL2cseT0vKFxcZCopKFxcRCopL2c7ZG97dmFyIEQ9cC5leGVjKGcpfHxbXCJcIixcIlwiLFwiXCJdLFg9eS5leGVjKGgpfHxbXCJcIixcIlwiLFwiXCJdO2lmKDA9PURbMF0ubGVuZ3RoJiYwPT1YWzBdLmxlbmd0aClicmVhaztiPWdhKDA9PURbMV0ubGVuZ3RoPzA6cGFyc2VJbnQoRFsxXSwxMCksMD09WFsxXS5sZW5ndGg/MDpwYXJzZUludChYWzFdLDEwKSl8fGdhKDA9PURbMl0ubGVuZ3RoLDA9PVhbMl0ubGVuZ3RoKXx8Z2EoRFsyXSxYWzJdKX13aGlsZSgwPT1iKX15YVthXT0wPD1ifX1cbnZhciBBYT1rLmRvY3VtZW50LEJhPUFhJiZ2P3RhKCl8fChcIkNTUzFDb21wYXRcIj09QWEuY29tcGF0TW9kZT9wYXJzZUludCh1YSwxMCk6NSk6dm9pZCAwO3ZhciB3PXYmJiEoOTw9TnVtYmVyKEJhKSksQ2E9diYmISg4PD1OdW1iZXIoQmEpKTtmdW5jdGlvbiB4KGEsYixjLGQpe3RoaXMuYT1hO3RoaXMubm9kZU5hbWU9Yzt0aGlzLm5vZGVWYWx1ZT1kO3RoaXMubm9kZVR5cGU9Mjt0aGlzLnBhcmVudE5vZGU9dGhpcy5vd25lckVsZW1lbnQ9Yn1mdW5jdGlvbiBEYShhLGIpe3ZhciBjPUNhJiZcImhyZWZcIj09Yi5ub2RlTmFtZT9hLmdldEF0dHJpYnV0ZShiLm5vZGVOYW1lLDIpOmIubm9kZVZhbHVlO3JldHVybiBuZXcgeChiLGEsYi5ub2RlTmFtZSxjKX07ZnVuY3Rpb24geihhKXt2YXIgYj1udWxsLGM9YS5ub2RlVHlwZTsxPT1jJiYoYj1hLnRleHRDb250ZW50LGI9dm9pZCAwPT1ifHxudWxsPT1iP2EuaW5uZXJUZXh0OmIsYj12b2lkIDA9PWJ8fG51bGw9PWI/XCJcIjpiKTtpZihcInN0cmluZ1wiIT10eXBlb2YgYilpZih3JiZcInRpdGxlXCI9PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmMT09YyliPWEudGV4dDtlbHNlIGlmKDk9PWN8fDE9PWMpe2E9OT09Yz9hLmRvY3VtZW50RWxlbWVudDphLmZpcnN0Q2hpbGQ7Zm9yKHZhciBjPTAsZD1bXSxiPVwiXCI7YTspe2RvIDEhPWEubm9kZVR5cGUmJihiKz1hLm5vZGVWYWx1ZSksdyYmXCJ0aXRsZVwiPT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJihiKz1hLnRleHQpLGRbYysrXT1hO3doaWxlKGE9YS5maXJzdENoaWxkKTtmb3IoO2MmJiEoYT1kWy0tY10ubmV4dFNpYmxpbmcpOyk7fX1lbHNlIGI9YS5ub2RlVmFsdWU7cmV0dXJuXCJcIitifVxuZnVuY3Rpb24gQShhLGIsYyl7aWYobnVsbD09PWIpcmV0dXJuITA7dHJ5e2lmKCFhLmdldEF0dHJpYnV0ZSlyZXR1cm4hMX1jYXRjaChkKXtyZXR1cm4hMX1DYSYmXCJjbGFzc1wiPT1iJiYoYj1cImNsYXNzTmFtZVwiKTtyZXR1cm4gbnVsbD09Yz8hIWEuZ2V0QXR0cmlidXRlKGIpOmEuZ2V0QXR0cmlidXRlKGIsMik9PWN9ZnVuY3Rpb24gQihhLGIsYyxkLGUpe3JldHVybih3P0VhOkZhKS5jYWxsKG51bGwsYSxiLGwoYyk/YzpudWxsLGwoZCk/ZDpudWxsLGV8fG5ldyBDKX1cbmZ1bmN0aW9uIEVhKGEsYixjLGQsZSl7aWYoYSBpbnN0YW5jZW9mIEV8fDg9PWEuYnx8YyYmbnVsbD09PWEuYil7dmFyIGY9Yi5hbGw7aWYoIWYpcmV0dXJuIGU7YT1HYShhKTtpZihcIipcIiE9YSYmKGY9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSwhZikpcmV0dXJuIGU7aWYoYyl7Zm9yKHZhciBnPVtdLGg9MDtiPWZbaCsrXTspQShiLGMsZCkmJmcucHVzaChiKTtmPWd9Zm9yKGg9MDtiPWZbaCsrXTspXCIqXCI9PWEmJlwiIVwiPT1iLnRhZ05hbWV8fEYoZSxiKTtyZXR1cm4gZX1IYShhLGIsYyxkLGUpO3JldHVybiBlfVxuZnVuY3Rpb24gRmEoYSxiLGMsZCxlKXtiLmdldEVsZW1lbnRzQnlOYW1lJiZkJiZcIm5hbWVcIj09YyYmIXY/KGI9Yi5nZXRFbGVtZW50c0J5TmFtZShkKSxyKGIsZnVuY3Rpb24oYil7YS5hKGIpJiZGKGUsYil9KSk6Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZkJiZcImNsYXNzXCI9PWM/KGI9Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGQpLHIoYixmdW5jdGlvbihiKXtiLmNsYXNzTmFtZT09ZCYmYS5hKGIpJiZGKGUsYil9KSk6YSBpbnN0YW5jZW9mIEc/SGEoYSxiLGMsZCxlKTpiLmdldEVsZW1lbnRzQnlUYWdOYW1lJiYoYj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEuZigpKSxyKGIsZnVuY3Rpb24oYSl7QShhLGMsZCkmJkYoZSxhKX0pKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIElhKGEsYixjLGQsZSl7dmFyIGY7aWYoKGEgaW5zdGFuY2VvZiBFfHw4PT1hLmJ8fGMmJm51bGw9PT1hLmIpJiYoZj1iLmNoaWxkTm9kZXMpKXt2YXIgZz1HYShhKTtpZihcIipcIiE9ZyYmKGY9aWEoZixmdW5jdGlvbihhKXtyZXR1cm4gYS50YWdOYW1lJiZhLnRhZ05hbWUudG9Mb3dlckNhc2UoKT09Z30pLCFmKSlyZXR1cm4gZTtjJiYoZj1pYShmLGZ1bmN0aW9uKGEpe3JldHVybiBBKGEsYyxkKX0pKTtyKGYsZnVuY3Rpb24oYSl7XCIqXCI9PWcmJihcIiFcIj09YS50YWdOYW1lfHxcIipcIj09ZyYmMSE9YS5ub2RlVHlwZSl8fEYoZSxhKX0pO3JldHVybiBlfXJldHVybiBKYShhLGIsYyxkLGUpfWZ1bmN0aW9uIEphKGEsYixjLGQsZSl7Zm9yKGI9Yi5maXJzdENoaWxkO2I7Yj1iLm5leHRTaWJsaW5nKUEoYixjLGQpJiZhLmEoYikmJkYoZSxiKTtyZXR1cm4gZX1cbmZ1bmN0aW9uIEhhKGEsYixjLGQsZSl7Zm9yKGI9Yi5maXJzdENoaWxkO2I7Yj1iLm5leHRTaWJsaW5nKUEoYixjLGQpJiZhLmEoYikmJkYoZSxiKSxIYShhLGIsYyxkLGUpfWZ1bmN0aW9uIEdhKGEpe2lmKGEgaW5zdGFuY2VvZiBHKXtpZig4PT1hLmIpcmV0dXJuXCIhXCI7aWYobnVsbD09PWEuYilyZXR1cm5cIipcIn1yZXR1cm4gYS5mKCl9OyFyYSYmIXZ8fHYmJjk8PU51bWJlcihCYSl8fHJhJiZ6YShcIjEuOS4xXCIpO3YmJnphKFwiOVwiKTtmdW5jdGlvbiBLYShhLGIpe2lmKCFhfHwhYilyZXR1cm4hMTtpZihhLmNvbnRhaW5zJiYxPT1iLm5vZGVUeXBlKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXJldHVybiBhPT1ifHwhIShhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjE2KTtmb3IoO2ImJmEhPWI7KWI9Yi5wYXJlbnROb2RlO3JldHVybiBiPT1hfVxuZnVuY3Rpb24gTGEoYSxiKXtpZihhPT1iKXJldHVybiAwO2lmKGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24pcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikmMj8xOi0xO2lmKHYmJiEoOTw9TnVtYmVyKEJhKSkpe2lmKDk9PWEubm9kZVR5cGUpcmV0dXJuLTE7aWYoOT09Yi5ub2RlVHlwZSlyZXR1cm4gMX1pZihcInNvdXJjZUluZGV4XCJpbiBhfHxhLnBhcmVudE5vZGUmJlwic291cmNlSW5kZXhcImluIGEucGFyZW50Tm9kZSl7dmFyIGM9MT09YS5ub2RlVHlwZSxkPTE9PWIubm9kZVR5cGU7aWYoYyYmZClyZXR1cm4gYS5zb3VyY2VJbmRleC1iLnNvdXJjZUluZGV4O3ZhciBlPWEucGFyZW50Tm9kZSxmPWIucGFyZW50Tm9kZTtyZXR1cm4gZT09Zj9NYShhLGIpOiFjJiZLYShlLGIpPy0xKk5hKGEsYik6IWQmJkthKGYsYSk/TmEoYixhKTooYz9hLnNvdXJjZUluZGV4OmUuc291cmNlSW5kZXgpLShkP2Iuc291cmNlSW5kZXg6Zi5zb3VyY2VJbmRleCl9ZD05PT1hLm5vZGVUeXBlP1xuYTphLm93bmVyRG9jdW1lbnR8fGEuZG9jdW1lbnQ7Yz1kLmNyZWF0ZVJhbmdlKCk7Yy5zZWxlY3ROb2RlKGEpO2MuY29sbGFwc2UoITApO2Q9ZC5jcmVhdGVSYW5nZSgpO2Quc2VsZWN0Tm9kZShiKTtkLmNvbGxhcHNlKCEwKTtyZXR1cm4gYy5jb21wYXJlQm91bmRhcnlQb2ludHMoay5SYW5nZS5TVEFSVF9UT19FTkQsZCl9ZnVuY3Rpb24gTmEoYSxiKXt2YXIgYz1hLnBhcmVudE5vZGU7aWYoYz09YilyZXR1cm4tMTtmb3IodmFyIGQ9YjtkLnBhcmVudE5vZGUhPWM7KWQ9ZC5wYXJlbnROb2RlO3JldHVybiBNYShkLGEpfWZ1bmN0aW9uIE1hKGEsYil7Zm9yKHZhciBjPWI7Yz1jLnByZXZpb3VzU2libGluZzspaWYoYz09YSlyZXR1cm4tMTtyZXR1cm4gMX07ZnVuY3Rpb24gQygpe3RoaXMuYj10aGlzLmE9bnVsbDt0aGlzLmw9MH1mdW5jdGlvbiBPYShhKXt0aGlzLm5vZGU9YTt0aGlzLmE9dGhpcy5iPW51bGx9ZnVuY3Rpb24gUGEoYSxiKXtpZighYS5hKXJldHVybiBiO2lmKCFiLmEpcmV0dXJuIGE7Zm9yKHZhciBjPWEuYSxkPWIuYSxlPW51bGwsZj1udWxsLGc9MDtjJiZkOyl7dmFyIGY9Yy5ub2RlLGg9ZC5ub2RlO2Y9PWh8fGYgaW5zdGFuY2VvZiB4JiZoIGluc3RhbmNlb2YgeCYmZi5hPT1oLmE/KGY9YyxjPWMuYSxkPWQuYSk6MDxMYShjLm5vZGUsZC5ub2RlKT8oZj1kLGQ9ZC5hKTooZj1jLGM9Yy5hKTsoZi5iPWUpP2UuYT1mOmEuYT1mO2U9ZjtnKyt9Zm9yKGY9Y3x8ZDtmOylmLmI9ZSxlPWUuYT1mLGcrKyxmPWYuYTthLmI9ZTthLmw9ZztyZXR1cm4gYX1mdW5jdGlvbiBRYShhLGIpe3ZhciBjPW5ldyBPYShiKTtjLmE9YS5hO2EuYj9hLmEuYj1jOmEuYT1hLmI9YzthLmE9YzthLmwrK31cbmZ1bmN0aW9uIEYoYSxiKXt2YXIgYz1uZXcgT2EoYik7Yy5iPWEuYjthLmE/YS5iLmE9YzphLmE9YS5iPWM7YS5iPWM7YS5sKyt9ZnVuY3Rpb24gUmEoYSl7cmV0dXJuKGE9YS5hKT9hLm5vZGU6bnVsbH1mdW5jdGlvbiBTYShhKXtyZXR1cm4oYT1SYShhKSk/eihhKTpcIlwifWZ1bmN0aW9uIEgoYSxiKXtyZXR1cm4gbmV3IFRhKGEsISFiKX1mdW5jdGlvbiBUYShhLGIpe3RoaXMuZj1hO3RoaXMuYj0odGhpcy5jPWIpP2EuYjphLmE7dGhpcy5hPW51bGx9ZnVuY3Rpb24gSShhKXt2YXIgYj1hLmI7aWYobnVsbD09YilyZXR1cm4gbnVsbDt2YXIgYz1hLmE9YjthLmI9YS5jP2IuYjpiLmE7cmV0dXJuIGMubm9kZX07ZnVuY3Rpb24gbihhKXt0aGlzLmk9YTt0aGlzLmI9dGhpcy5nPSExO3RoaXMuZj1udWxsfWZ1bmN0aW9uIEooYSl7cmV0dXJuXCJcXG4gIFwiK2EudG9TdHJpbmcoKS5zcGxpdChcIlxcblwiKS5qb2luKFwiXFxuICBcIil9ZnVuY3Rpb24gVWEoYSxiKXthLmc9Yn1mdW5jdGlvbiBWYShhLGIpe2EuYj1ifWZ1bmN0aW9uIEsoYSxiKXt2YXIgYz1hLmEoYik7cmV0dXJuIGMgaW5zdGFuY2VvZiBDPytTYShjKTorY31mdW5jdGlvbiBMKGEsYil7dmFyIGM9YS5hKGIpO3JldHVybiBjIGluc3RhbmNlb2YgQz9TYShjKTpcIlwiK2N9ZnVuY3Rpb24gTShhLGIpe3ZhciBjPWEuYShiKTtyZXR1cm4gYyBpbnN0YW5jZW9mIEM/ISFjLmw6ISFjfTtmdW5jdGlvbiBOKGEsYixjKXtuLmNhbGwodGhpcyxhLmkpO3RoaXMuYz1hO3RoaXMuaD1iO3RoaXMubz1jO3RoaXMuZz1iLmd8fGMuZzt0aGlzLmI9Yi5ifHxjLmI7dGhpcy5jPT1XYSYmKGMuYnx8Yy5nfHw0PT1jLml8fDA9PWMuaXx8IWIuZj9iLmJ8fGIuZ3x8ND09Yi5pfHwwPT1iLml8fCFjLmZ8fCh0aGlzLmY9e25hbWU6Yy5mLm5hbWUsczpifSk6dGhpcy5mPXtuYW1lOmIuZi5uYW1lLHM6Y30pfW0oTik7XG5mdW5jdGlvbiBPKGEsYixjLGQsZSl7Yj1iLmEoZCk7Yz1jLmEoZCk7dmFyIGY7aWYoYiBpbnN0YW5jZW9mIEMmJmMgaW5zdGFuY2VvZiBDKXtiPUgoYik7Zm9yKGQ9SShiKTtkO2Q9SShiKSlmb3IoZT1IKGMpLGY9SShlKTtmO2Y9SShlKSlpZihhKHooZCkseihmKSkpcmV0dXJuITA7cmV0dXJuITF9aWYoYiBpbnN0YW5jZW9mIEN8fGMgaW5zdGFuY2VvZiBDKXtiIGluc3RhbmNlb2YgQz8oZT1iLGQ9Yyk6KGU9YyxkPWIpO2Y9SChlKTtmb3IodmFyIGc9dHlwZW9mIGQsaD1JKGYpO2g7aD1JKGYpKXtzd2l0Y2goZyl7Y2FzZSBcIm51bWJlclwiOmg9K3ooaCk7YnJlYWs7Y2FzZSBcImJvb2xlYW5cIjpoPSEheihoKTticmVhaztjYXNlIFwic3RyaW5nXCI6aD16KGgpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoXCJJbGxlZ2FsIHByaW1pdGl2ZSB0eXBlIGZvciBjb21wYXJpc29uLlwiKTt9aWYoZT09YiYmYShoLGQpfHxlPT1jJiZhKGQsaCkpcmV0dXJuITB9cmV0dXJuITF9cmV0dXJuIGU/XCJib29sZWFuXCI9PVxudHlwZW9mIGJ8fFwiYm9vbGVhblwiPT10eXBlb2YgYz9hKCEhYiwhIWMpOlwibnVtYmVyXCI9PXR5cGVvZiBifHxcIm51bWJlclwiPT10eXBlb2YgYz9hKCtiLCtjKTphKGIsYyk6YSgrYiwrYyl9Ti5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5jLm0odGhpcy5oLHRoaXMubyxhKX07Ti5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYT1cIkJpbmFyeSBFeHByZXNzaW9uOiBcIit0aGlzLmMsYT1hK0oodGhpcy5oKTtyZXR1cm4gYSs9Sih0aGlzLm8pfTtmdW5jdGlvbiBYYShhLGIsYyxkKXt0aGlzLmE9YTt0aGlzLnc9Yjt0aGlzLmk9Yzt0aGlzLm09ZH1YYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfTt2YXIgWWE9e307XG5mdW5jdGlvbiBQKGEsYixjLGQpe2lmKFlhLmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKFwiQmluYXJ5IG9wZXJhdG9yIGFscmVhZHkgY3JlYXRlZDogXCIrYSk7YT1uZXcgWGEoYSxiLGMsZCk7cmV0dXJuIFlhW2EudG9TdHJpbmcoKV09YX1QKFwiZGl2XCIsNiwxLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSyhhLGMpL0soYixjKX0pO1AoXCJtb2RcIiw2LDEsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBLKGEsYyklSyhiLGMpfSk7UChcIipcIiw2LDEsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBLKGEsYykqSyhiLGMpfSk7UChcIitcIiw1LDEsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBLKGEsYykrSyhiLGMpfSk7UChcIi1cIiw1LDEsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBLKGEsYyktSyhiLGMpfSk7UChcIjxcIiw0LDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBPKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8Yn0sYSxiLGMpfSk7XG5QKFwiPlwiLDQsMixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIE8oZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT5ifSxhLGIsYyl9KTtQKFwiPD1cIiw0LDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBPKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8PWJ9LGEsYixjKX0pO1AoXCI+PVwiLDQsMixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIE8oZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT49Yn0sYSxiLGMpfSk7dmFyIFdhPVAoXCI9XCIsMywyLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTyhmdW5jdGlvbihhLGIpe3JldHVybiBhPT1ifSxhLGIsYywhMCl9KTtQKFwiIT1cIiwzLDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBPKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEhPWJ9LGEsYixjLCEwKX0pO1AoXCJhbmRcIiwyLDIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBNKGEsYykmJk0oYixjKX0pO1AoXCJvclwiLDEsMixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIE0oYSxjKXx8TShiLGMpfSk7ZnVuY3Rpb24gUShhLGIsYyl7dGhpcy5hPWE7dGhpcy5iPWJ8fDE7dGhpcy5mPWN8fDF9O2Z1bmN0aW9uIFphKGEsYil7aWYoYi5hLmxlbmd0aCYmNCE9YS5pKXRocm93IEVycm9yKFwiUHJpbWFyeSBleHByZXNzaW9uIG11c3QgZXZhbHVhdGUgdG8gbm9kZXNldCBpZiBmaWx0ZXIgaGFzIHByZWRpY2F0ZShzKS5cIik7bi5jYWxsKHRoaXMsYS5pKTt0aGlzLmM9YTt0aGlzLmg9Yjt0aGlzLmc9YS5nO3RoaXMuYj1hLmJ9bShaYSk7WmEucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7YT10aGlzLmMuYShhKTtyZXR1cm4gJGEodGhpcy5oLGEpfTtaYS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYTthPVwiRmlsdGVyOlwiK0oodGhpcy5jKTtyZXR1cm4gYSs9Sih0aGlzLmgpfTtmdW5jdGlvbiBhYihhLGIpe2lmKGIubGVuZ3RoPGEuQSl0aHJvdyBFcnJvcihcIkZ1bmN0aW9uIFwiK2EuaitcIiBleHBlY3RzIGF0IGxlYXN0XCIrYS5BK1wiIGFyZ3VtZW50cywgXCIrYi5sZW5ndGgrXCIgZ2l2ZW5cIik7aWYobnVsbCE9PWEudiYmYi5sZW5ndGg+YS52KXRocm93IEVycm9yKFwiRnVuY3Rpb24gXCIrYS5qK1wiIGV4cGVjdHMgYXQgbW9zdCBcIithLnYrXCIgYXJndW1lbnRzLCBcIitiLmxlbmd0aCtcIiBnaXZlblwiKTthLkImJnIoYixmdW5jdGlvbihiLGQpe2lmKDQhPWIuaSl0aHJvdyBFcnJvcihcIkFyZ3VtZW50IFwiK2QrXCIgdG8gZnVuY3Rpb24gXCIrYS5qK1wiIGlzIG5vdCBvZiB0eXBlIE5vZGVzZXQ6IFwiK2IpO30pO24uY2FsbCh0aGlzLGEuaSk7dGhpcy5oPWE7dGhpcy5jPWI7VWEodGhpcyxhLmd8fGphKGIsZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ30pKTtWYSh0aGlzLGEuRCYmIWIubGVuZ3RofHxhLkMmJiEhYi5sZW5ndGh8fGphKGIsZnVuY3Rpb24oYSl7cmV0dXJuIGEuYn0pKX1tKGFiKTtcbmFiLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmgubS5hcHBseShudWxsLGxhKGEsdGhpcy5jKSl9O2FiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBhPVwiRnVuY3Rpb246IFwiK3RoaXMuaDtpZih0aGlzLmMubGVuZ3RoKXZhciBiPXQodGhpcy5jLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErSihiKX0sXCJBcmd1bWVudHM6XCIpLGE9YStKKGIpO3JldHVybiBhfTtmdW5jdGlvbiBiYihhLGIsYyxkLGUsZixnLGgscCl7dGhpcy5qPWE7dGhpcy5pPWI7dGhpcy5nPWM7dGhpcy5EPWQ7dGhpcy5DPWU7dGhpcy5tPWY7dGhpcy5BPWc7dGhpcy52PXZvaWQgMCE9PWg/aDpnO3RoaXMuQj0hIXB9YmIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07dmFyIGNiPXt9O1xuZnVuY3Rpb24gUihhLGIsYyxkLGUsZixnLGgpe2lmKGNiLmhhc093blByb3BlcnR5KGEpKXRocm93IEVycm9yKFwiRnVuY3Rpb24gYWxyZWFkeSBjcmVhdGVkOiBcIithK1wiLlwiKTtjYlthXT1uZXcgYmIoYSxiLGMsZCwhMSxlLGYsZyxoKX1SKFwiYm9vbGVhblwiLDIsITEsITEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gTShiLGEpfSwxKTtSKFwiY2VpbGluZ1wiLDEsITEsITEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gTWF0aC5jZWlsKEsoYixhKSl9LDEpO1IoXCJjb25jYXRcIiwzLCExLCExLGZ1bmN0aW9uKGEsYil7cmV0dXJuIHQobWEoYXJndW1lbnRzLDEpLGZ1bmN0aW9uKGIsZCl7cmV0dXJuIGIrTChkLGEpfSxcIlwiKX0sMixudWxsKTtSKFwiY29udGFpbnNcIiwyLCExLCExLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gcShMKGIsYSksTChjLGEpKX0sMik7UihcImNvdW50XCIsMSwhMSwhMSxmdW5jdGlvbihhLGIpe3JldHVybiBiLmEoYSkubH0sMSwxLCEwKTtcblIoXCJmYWxzZVwiLDIsITEsITEsZnVuY3Rpb24oKXtyZXR1cm4hMX0sMCk7UihcImZsb29yXCIsMSwhMSwhMSxmdW5jdGlvbihhLGIpe3JldHVybiBNYXRoLmZsb29yKEsoYixhKSl9LDEpO1IoXCJpZFwiLDQsITEsITEsZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEpe2lmKHcpe3ZhciBiPWUuYWxsW2FdO2lmKGIpe2lmKGIubm9kZVR5cGUmJmE9PWIuaWQpcmV0dXJuIGI7aWYoYi5sZW5ndGgpcmV0dXJuIGthKGIsZnVuY3Rpb24oYil7cmV0dXJuIGE9PWIuaWR9KX1yZXR1cm4gbnVsbH1yZXR1cm4gZS5nZXRFbGVtZW50QnlJZChhKX12YXIgZD1hLmEsZT05PT1kLm5vZGVUeXBlP2Q6ZC5vd25lckRvY3VtZW50LGQ9TChiLGEpLnNwbGl0KC9cXHMrLyksZj1bXTtyKGQsZnVuY3Rpb24oYSl7YT1jKGEpOyFhfHwwPD1oYShmLGEpfHxmLnB1c2goYSl9KTtmLnNvcnQoTGEpO3ZhciBnPW5ldyBDO3IoZixmdW5jdGlvbihhKXtGKGcsYSl9KTtyZXR1cm4gZ30sMSk7XG5SKFwibGFuZ1wiLDIsITEsITEsZnVuY3Rpb24oKXtyZXR1cm4hMX0sMSk7UihcImxhc3RcIiwxLCEwLCExLGZ1bmN0aW9uKGEpe2lmKDEhPWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgRXJyb3IoXCJGdW5jdGlvbiBsYXN0IGV4cGVjdHMgKClcIik7cmV0dXJuIGEuZn0sMCk7UihcImxvY2FsLW5hbWVcIiwzLCExLCEwLGZ1bmN0aW9uKGEsYil7dmFyIGM9Yj9SYShiLmEoYSkpOmEuYTtyZXR1cm4gYz9jLmxvY2FsTmFtZXx8Yy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOlwiXCJ9LDAsMSwhMCk7UihcIm5hbWVcIiwzLCExLCEwLGZ1bmN0aW9uKGEsYil7dmFyIGM9Yj9SYShiLmEoYSkpOmEuYTtyZXR1cm4gYz9jLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk6XCJcIn0sMCwxLCEwKTtSKFwibmFtZXNwYWNlLXVyaVwiLDMsITAsITEsZnVuY3Rpb24oKXtyZXR1cm5cIlwifSwwLDEsITApO1xuUihcIm5vcm1hbGl6ZS1zcGFjZVwiLDMsITEsITAsZnVuY3Rpb24oYSxiKXtyZXR1cm4oYj9MKGIsYSk6eihhLmEpKS5yZXBsYWNlKC9bXFxzXFx4YTBdKy9nLFwiIFwiKS5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLFwiXCIpfSwwLDEpO1IoXCJub3RcIiwyLCExLCExLGZ1bmN0aW9uKGEsYil7cmV0dXJuIU0oYixhKX0sMSk7UihcIm51bWJlclwiLDEsITEsITAsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9LKGIsYSk6K3ooYS5hKX0sMCwxKTtSKFwicG9zaXRpb25cIiwxLCEwLCExLGZ1bmN0aW9uKGEpe3JldHVybiBhLmJ9LDApO1IoXCJyb3VuZFwiLDEsITEsITEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gTWF0aC5yb3VuZChLKGIsYSkpfSwxKTtSKFwic3RhcnRzLXdpdGhcIiwyLCExLCExLGZ1bmN0aW9uKGEsYixjKXtiPUwoYixhKTthPUwoYyxhKTtyZXR1cm4gMD09Yi5sYXN0SW5kZXhPZihhLDApfSwyKTtSKFwic3RyaW5nXCIsMywhMSwhMCxmdW5jdGlvbihhLGIpe3JldHVybiBiP0woYixhKTp6KGEuYSl9LDAsMSk7XG5SKFwic3RyaW5nLWxlbmd0aFwiLDEsITEsITAsZnVuY3Rpb24oYSxiKXtyZXR1cm4oYj9MKGIsYSk6eihhLmEpKS5sZW5ndGh9LDAsMSk7UihcInN1YnN0cmluZ1wiLDMsITEsITEsZnVuY3Rpb24oYSxiLGMsZCl7Yz1LKGMsYSk7aWYoaXNOYU4oYyl8fEluZmluaXR5PT1jfHwtSW5maW5pdHk9PWMpcmV0dXJuXCJcIjtkPWQ/SyhkLGEpOkluZmluaXR5O2lmKGlzTmFOKGQpfHwtSW5maW5pdHk9PT1kKXJldHVyblwiXCI7Yz1NYXRoLnJvdW5kKGMpLTE7dmFyIGU9TWF0aC5tYXgoYywwKTthPUwoYixhKTtyZXR1cm4gSW5maW5pdHk9PWQ/YS5zdWJzdHJpbmcoZSk6YS5zdWJzdHJpbmcoZSxjK01hdGgucm91bmQoZCkpfSwyLDMpO1IoXCJzdWJzdHJpbmctYWZ0ZXJcIiwzLCExLCExLGZ1bmN0aW9uKGEsYixjKXtiPUwoYixhKTthPUwoYyxhKTtjPWIuaW5kZXhPZihhKTtyZXR1cm4tMT09Yz9cIlwiOmIuc3Vic3RyaW5nKGMrYS5sZW5ndGgpfSwyKTtcblIoXCJzdWJzdHJpbmctYmVmb3JlXCIsMywhMSwhMSxmdW5jdGlvbihhLGIsYyl7Yj1MKGIsYSk7YT1MKGMsYSk7YT1iLmluZGV4T2YoYSk7cmV0dXJuLTE9PWE/XCJcIjpiLnN1YnN0cmluZygwLGEpfSwyKTtSKFwic3VtXCIsMSwhMSwhMSxmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1IKGIuYShhKSksZD0wLGU9SShjKTtlO2U9SShjKSlkKz0reihlKTtyZXR1cm4gZH0sMSwxLCEwKTtSKFwidHJhbnNsYXRlXCIsMywhMSwhMSxmdW5jdGlvbihhLGIsYyxkKXtiPUwoYixhKTtjPUwoYyxhKTt2YXIgZT1MKGQsYSk7YT17fTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZj1jLmNoYXJBdChkKTtmIGluIGF8fChhW2ZdPWUuY2hhckF0KGQpKX1jPVwiXCI7Zm9yKGQ9MDtkPGIubGVuZ3RoO2QrKylmPWIuY2hhckF0KGQpLGMrPWYgaW4gYT9hW2ZdOmY7cmV0dXJuIGN9LDMpO1IoXCJ0cnVlXCIsMiwhMSwhMSxmdW5jdGlvbigpe3JldHVybiEwfSwwKTtmdW5jdGlvbiBHKGEsYil7dGhpcy5oPWE7dGhpcy5jPXZvaWQgMCE9PWI/YjpudWxsO3RoaXMuYj1udWxsO3N3aXRjaChhKXtjYXNlIFwiY29tbWVudFwiOnRoaXMuYj04O2JyZWFrO2Nhc2UgXCJ0ZXh0XCI6dGhpcy5iPTM7YnJlYWs7Y2FzZSBcInByb2Nlc3NpbmctaW5zdHJ1Y3Rpb25cIjp0aGlzLmI9NzticmVhaztjYXNlIFwibm9kZVwiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoXCJVbmV4cGVjdGVkIGFyZ3VtZW50XCIpO319ZnVuY3Rpb24gZGIoYSl7cmV0dXJuXCJjb21tZW50XCI9PWF8fFwidGV4dFwiPT1hfHxcInByb2Nlc3NpbmctaW5zdHJ1Y3Rpb25cIj09YXx8XCJub2RlXCI9PWF9Ry5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PXRoaXMuYnx8dGhpcy5iPT1hLm5vZGVUeXBlfTtHLnByb3RvdHlwZS5mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaH07XG5HLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBhPVwiS2luZCBUZXN0OiBcIit0aGlzLmg7bnVsbD09PXRoaXMuY3x8KGErPUoodGhpcy5jKSk7cmV0dXJuIGF9O2Z1bmN0aW9uIGViKGEpe3RoaXMuYj1hO3RoaXMuYT0wfWZ1bmN0aW9uIGZiKGEpe2E9YS5tYXRjaChnYik7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspaGIudGVzdChhW2JdKSYmYS5zcGxpY2UoYiwxKTtyZXR1cm4gbmV3IGViKGEpfXZhciBnYj0vXFwkPyg/Oig/IVswLTktXFwuXSkoPzpcXCp8W1xcdy1cXC5dKyk6KT8oPyFbMC05LVxcLl0pKD86XFwqfFtcXHctXFwuXSspfFxcL1xcL3xcXC5cXC58Ojp8XFxkKyg/OlxcLlxcZCopP3xcXC5cXGQrfFwiW15cIl0qXCJ8J1teJ10qJ3xbITw+XT18XFxzK3wuL2csaGI9L15cXHMvO2Z1bmN0aW9uIFMoYSxiKXtyZXR1cm4gYS5iW2EuYSsoYnx8MCldfWZ1bmN0aW9uIFQoYSl7cmV0dXJuIGEuYlthLmErK119ZnVuY3Rpb24gaWIoYSl7cmV0dXJuIGEuYi5sZW5ndGg8PWEuYX07ZnVuY3Rpb24gamIoYSl7bi5jYWxsKHRoaXMsMyk7dGhpcy5jPWEuc3Vic3RyaW5nKDEsYS5sZW5ndGgtMSl9bShqYik7amIucHJvdG90eXBlLmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jfTtqYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIkxpdGVyYWw6IFwiK3RoaXMuY307ZnVuY3Rpb24gRShhLGIpe3RoaXMuaj1hLnRvTG93ZXJDYXNlKCk7dmFyIGM7Yz1cIipcIj09dGhpcy5qP1wiKlwiOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiO3RoaXMuYz1iP2IudG9Mb3dlckNhc2UoKTpjfUUucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlVHlwZTtpZigxIT1iJiYyIT1iKXJldHVybiExO2I9dm9pZCAwIT09YS5sb2NhbE5hbWU/YS5sb2NhbE5hbWU6YS5ub2RlTmFtZTtyZXR1cm5cIipcIiE9dGhpcy5qJiZ0aGlzLmohPWIudG9Mb3dlckNhc2UoKT8hMTpcIipcIj09dGhpcy5jPyEwOnRoaXMuYz09KGEubmFtZXNwYWNlVVJJP2EubmFtZXNwYWNlVVJJLnRvTG93ZXJDYXNlKCk6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIpfTtFLnByb3RvdHlwZS5mPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07XG5FLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiTmFtZSBUZXN0OiBcIisoXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PXRoaXMuYz9cIlwiOnRoaXMuYytcIjpcIikrdGhpcy5qfTtmdW5jdGlvbiBrYihhLGIpe24uY2FsbCh0aGlzLGEuaSk7dGhpcy5oPWE7dGhpcy5jPWI7dGhpcy5nPWEuZzt0aGlzLmI9YS5iO2lmKDE9PXRoaXMuYy5sZW5ndGgpe3ZhciBjPXRoaXMuY1swXTtjLnV8fGMuYyE9bGJ8fChjPWMubyxcIipcIiE9Yy5mKCkmJih0aGlzLmY9e25hbWU6Yy5mKCksczpudWxsfSkpfX1tKGtiKTtmdW5jdGlvbiBtYigpe24uY2FsbCh0aGlzLDQpfW0obWIpO21iLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBDO2E9YS5hOzk9PWEubm9kZVR5cGU/RihiLGEpOkYoYixhLm93bmVyRG9jdW1lbnQpO3JldHVybiBifTttYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5cIlJvb3QgSGVscGVyIEV4cHJlc3Npb25cIn07ZnVuY3Rpb24gbmIoKXtuLmNhbGwodGhpcyw0KX1tKG5iKTtuYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgQztGKGIsYS5hKTtyZXR1cm4gYn07bmIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJDb250ZXh0IEhlbHBlciBFeHByZXNzaW9uXCJ9O1xuZnVuY3Rpb24gb2IoYSl7cmV0dXJuXCIvXCI9PWF8fFwiLy9cIj09YX1rYi5wcm90b3R5cGUuYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmguYShhKTtpZighKGIgaW5zdGFuY2VvZiBDKSl0aHJvdyBFcnJvcihcIkZpbHRlciBleHByZXNzaW9uIG11c3QgZXZhbHVhdGUgdG8gbm9kZXNldC5cIik7YT10aGlzLmM7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtjPGQmJmIubDtjKyspe3ZhciBlPWFbY10sZj1IKGIsZS5jLmEpLGc7aWYoZS5nfHxlLmMhPXBiKWlmKGUuZ3x8ZS5jIT1xYilmb3IoZz1JKGYpLGI9ZS5hKG5ldyBRKGcpKTtudWxsIT0oZz1JKGYpKTspZz1lLmEobmV3IFEoZykpLGI9UGEoYixnKTtlbHNlIGc9SShmKSxiPWUuYShuZXcgUShnKSk7ZWxzZXtmb3IoZz1JKGYpOyhiPUkoZikpJiYoIWcuY29udGFpbnN8fGcuY29udGFpbnMoYikpJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGcpJjg7Zz1iKTtiPWUuYShuZXcgUShnKSl9fXJldHVybiBifTtcbmtiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBhO2E9XCJQYXRoIEV4cHJlc3Npb246XCIrSih0aGlzLmgpO2lmKHRoaXMuYy5sZW5ndGgpe3ZhciBiPXQodGhpcy5jLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGErSihiKX0sXCJTdGVwczpcIik7YSs9SihiKX1yZXR1cm4gYX07ZnVuY3Rpb24gcmIoYSl7bi5jYWxsKHRoaXMsNCk7dGhpcy5jPWE7VWEodGhpcyxqYSh0aGlzLmMsZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ30pKTtWYSh0aGlzLGphKHRoaXMuYyxmdW5jdGlvbihhKXtyZXR1cm4gYS5ifSkpfW0ocmIpO3JiLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBDO3IodGhpcy5jLGZ1bmN0aW9uKGMpe2M9Yy5hKGEpO2lmKCEoYyBpbnN0YW5jZW9mIEMpKXRocm93IEVycm9yKFwiUGF0aCBleHByZXNzaW9uIG11c3QgZXZhbHVhdGUgdG8gTm9kZVNldC5cIik7Yj1QYShiLGMpfSk7cmV0dXJuIGJ9O3JiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0KHRoaXMuYyxmdW5jdGlvbihhLGIpe3JldHVybiBhK0ooYil9LFwiVW5pb24gRXhwcmVzc2lvbjpcIil9O2Z1bmN0aW9uIHNiKGEsYil7dGhpcy5hPWE7dGhpcy5iPSEhYn1cbmZ1bmN0aW9uICRhKGEsYixjKXtmb3IoYz1jfHwwO2M8YS5hLmxlbmd0aDtjKyspZm9yKHZhciBkPWEuYVtjXSxlPUgoYiksZj1iLmwsZyxoPTA7Zz1JKGUpO2grKyl7dmFyIHA9YS5iP2YtaDpoKzE7Zz1kLmEobmV3IFEoZyxwLGYpKTtpZihcIm51bWJlclwiPT10eXBlb2YgZylwPXA9PWc7ZWxzZSBpZihcInN0cmluZ1wiPT10eXBlb2YgZ3x8XCJib29sZWFuXCI9PXR5cGVvZiBnKXA9ISFnO2Vsc2UgaWYoZyBpbnN0YW5jZW9mIEMpcD0wPGcubDtlbHNlIHRocm93IEVycm9yKFwiUHJlZGljYXRlLmV2YWx1YXRlIHJldHVybmVkIGFuIHVuZXhwZWN0ZWQgdHlwZS5cIik7aWYoIXApe3A9ZTtnPXAuZjt2YXIgeT1wLmE7aWYoIXkpdGhyb3cgRXJyb3IoXCJOZXh0IG11c3QgYmUgY2FsbGVkIGF0IGxlYXN0IG9uY2UgYmVmb3JlIHJlbW92ZS5cIik7dmFyIEQ9eS5iLHk9eS5hO0Q/RC5hPXk6Zy5hPXk7eT95LmI9RDpnLmI9RDtnLmwtLTtwLmE9bnVsbH19cmV0dXJuIGJ9XG5zYi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLmEsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYStKKGIpfSxcIlByZWRpY2F0ZXM6XCIpfTtmdW5jdGlvbiBVKGEsYixjLGQpe24uY2FsbCh0aGlzLDQpO3RoaXMuYz1hO3RoaXMubz1iO3RoaXMuaD1jfHxuZXcgc2IoW10pO3RoaXMudT0hIWQ7Yj10aGlzLmg7Yj0wPGIuYS5sZW5ndGg/Yi5hWzBdLmY6bnVsbDthLmImJmImJihhPWIubmFtZSxhPXc/YS50b0xvd2VyQ2FzZSgpOmEsdGhpcy5mPXtuYW1lOmEsczpiLnN9KTthOnthPXRoaXMuaDtmb3IoYj0wO2I8YS5hLmxlbmd0aDtiKyspaWYoYz1hLmFbYl0sYy5nfHwxPT1jLml8fDA9PWMuaSl7YT0hMDticmVhayBhfWE9ITF9dGhpcy5nPWF9bShVKTtcblUucHJvdG90eXBlLmE9ZnVuY3Rpb24oYSl7dmFyIGI9YS5hLGM9bnVsbCxjPXRoaXMuZixkPW51bGwsZT1udWxsLGY9MDtjJiYoZD1jLm5hbWUsZT1jLnM/TChjLnMsYSk6bnVsbCxmPTEpO2lmKHRoaXMudSlpZih0aGlzLmd8fHRoaXMuYyE9dGIpaWYoYT1IKChuZXcgVSh1YixuZXcgRyhcIm5vZGVcIikpKS5hKGEpKSxiPUkoYSkpZm9yKGM9dGhpcy5tKGIsZCxlLGYpO251bGwhPShiPUkoYSkpOyljPVBhKGMsdGhpcy5tKGIsZCxlLGYpKTtlbHNlIGM9bmV3IEM7ZWxzZSBjPUIodGhpcy5vLGIsZCxlKSxjPSRhKHRoaXMuaCxjLGYpO2Vsc2UgYz10aGlzLm0oYS5hLGQsZSxmKTtyZXR1cm4gY307VS5wcm90b3R5cGUubT1mdW5jdGlvbihhLGIsYyxkKXthPXRoaXMuYy5mKHRoaXMubyxhLGIsYyk7cmV0dXJuIGE9JGEodGhpcy5oLGEsZCl9O1xuVS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgYTthPVwiU3RlcDpcIitKKFwiT3BlcmF0b3I6IFwiKyh0aGlzLnU/XCIvL1wiOlwiL1wiKSk7dGhpcy5jLmomJihhKz1KKFwiQXhpczogXCIrdGhpcy5jKSk7YSs9Sih0aGlzLm8pO2lmKHRoaXMuaC5hLmxlbmd0aCl7dmFyIGI9dCh0aGlzLmguYSxmdW5jdGlvbihhLGIpe3JldHVybiBhK0ooYil9LFwiUHJlZGljYXRlczpcIik7YSs9SihiKX1yZXR1cm4gYX07ZnVuY3Rpb24gdmIoYSxiLGMsZCl7dGhpcy5qPWE7dGhpcy5mPWI7dGhpcy5hPWM7dGhpcy5iPWR9dmIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuan07dmFyIHdiPXt9O2Z1bmN0aW9uIFYoYSxiLGMsZCl7aWYod2IuaGFzT3duUHJvcGVydHkoYSkpdGhyb3cgRXJyb3IoXCJBeGlzIGFscmVhZHkgY3JlYXRlZDogXCIrYSk7Yj1uZXcgdmIoYSxiLGMsISFkKTtyZXR1cm4gd2JbYV09Yn1cblYoXCJhbmNlc3RvclwiLGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBDLGQ9YjtkPWQucGFyZW50Tm9kZTspYS5hKGQpJiZRYShjLGQpO3JldHVybiBjfSwhMCk7VihcImFuY2VzdG9yLW9yLXNlbGZcIixmdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBDLGQ9YjtkbyBhLmEoZCkmJlFhKGMsZCk7d2hpbGUoZD1kLnBhcmVudE5vZGUpO3JldHVybiBjfSwhMCk7XG52YXIgbGI9VihcImF0dHJpYnV0ZVwiLGZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IEMsZD1hLmYoKTtpZihcInN0eWxlXCI9PWQmJncmJmIuc3R5bGUpcmV0dXJuIEYoYyxuZXcgeChiLnN0eWxlLGIsXCJzdHlsZVwiLGIuc3R5bGUuY3NzVGV4dCkpLGM7dmFyIGU9Yi5hdHRyaWJ1dGVzO2lmKGUpaWYoYSBpbnN0YW5jZW9mIEcmJm51bGw9PT1hLmJ8fFwiKlwiPT1kKWZvcih2YXIgZD0wLGY7Zj1lW2RdO2QrKyl3P2Yubm9kZVZhbHVlJiZGKGMsRGEoYixmKSk6RihjLGYpO2Vsc2UoZj1lLmdldE5hbWVkSXRlbShkKSkmJih3P2Yubm9kZVZhbHVlJiZGKGMsRGEoYixmKSk6RihjLGYpKTtyZXR1cm4gY30sITEpLHRiPVYoXCJjaGlsZFwiLGZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuKHc/SWE6SmEpLmNhbGwobnVsbCxhLGIsbChjKT9jOm51bGwsbChkKT9kOm51bGwsZXx8bmV3IEMpfSwhMSwhMCk7VihcImRlc2NlbmRhbnRcIixCLCExLCEwKTtcbnZhciB1Yj1WKFwiZGVzY2VuZGFudC1vci1zZWxmXCIsZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IEM7QShiLGMsZCkmJmEuYShiKSYmRihlLGIpO3JldHVybiBCKGEsYixjLGQsZSl9LCExLCEwKSxwYj1WKFwiZm9sbG93aW5nXCIsZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IEM7ZG8gZm9yKHZhciBmPWI7Zj1mLm5leHRTaWJsaW5nOylBKGYsYyxkKSYmYS5hKGYpJiZGKGUsZiksZT1CKGEsZixjLGQsZSk7d2hpbGUoYj1iLnBhcmVudE5vZGUpO3JldHVybiBlfSwhMSwhMCk7VihcImZvbGxvd2luZy1zaWJsaW5nXCIsZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9bmV3IEMsZD1iO2Q9ZC5uZXh0U2libGluZzspYS5hKGQpJiZGKGMsZCk7cmV0dXJuIGN9LCExKTtWKFwibmFtZXNwYWNlXCIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEN9LCExKTtcbnZhciB4Yj1WKFwicGFyZW50XCIsZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgQztpZig5PT1iLm5vZGVUeXBlKXJldHVybiBjO2lmKDI9PWIubm9kZVR5cGUpcmV0dXJuIEYoYyxiLm93bmVyRWxlbWVudCksYzt2YXIgZD1iLnBhcmVudE5vZGU7YS5hKGQpJiZGKGMsZCk7cmV0dXJuIGN9LCExKSxxYj1WKFwicHJlY2VkaW5nXCIsZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bmV3IEMsZj1bXTtkbyBmLnVuc2hpZnQoYik7d2hpbGUoYj1iLnBhcmVudE5vZGUpO2Zvcih2YXIgZz0xLGg9Zi5sZW5ndGg7ZzxoO2crKyl7dmFyIHA9W107Zm9yKGI9ZltnXTtiPWIucHJldmlvdXNTaWJsaW5nOylwLnVuc2hpZnQoYik7Zm9yKHZhciB5PTAsRD1wLmxlbmd0aDt5PEQ7eSsrKWI9cFt5XSxBKGIsYyxkKSYmYS5hKGIpJiZGKGUsYiksZT1CKGEsYixjLGQsZSl9cmV0dXJuIGV9LCEwLCEwKTtcblYoXCJwcmVjZWRpbmctc2libGluZ1wiLGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPW5ldyBDLGQ9YjtkPWQucHJldmlvdXNTaWJsaW5nOylhLmEoZCkmJlFhKGMsZCk7cmV0dXJuIGN9LCEwKTt2YXIgeWI9VihcInNlbGZcIixmdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBDO2EuYShiKSYmRihjLGIpO3JldHVybiBjfSwhMSk7ZnVuY3Rpb24gemIoYSl7bi5jYWxsKHRoaXMsMSk7dGhpcy5jPWE7dGhpcy5nPWEuZzt0aGlzLmI9YS5ifW0oemIpO3piLnByb3RvdHlwZS5hPWZ1bmN0aW9uKGEpe3JldHVybi1LKHRoaXMuYyxhKX07emIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJVbmFyeSBFeHByZXNzaW9uOiAtXCIrSih0aGlzLmMpfTtmdW5jdGlvbiBBYihhKXtuLmNhbGwodGhpcywxKTt0aGlzLmM9YX1tKEFiKTtBYi5wcm90b3R5cGUuYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN9O0FiLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblwiTnVtYmVyOiBcIit0aGlzLmN9O2Z1bmN0aW9uIEJiKGEsYil7dGhpcy5hPWE7dGhpcy5iPWJ9ZnVuY3Rpb24gQ2IoYSl7Zm9yKHZhciBiLGM9W107Oyl7VyhhLFwiTWlzc2luZyByaWdodCBoYW5kIHNpZGUgb2YgYmluYXJ5IGV4cHJlc3Npb24uXCIpO2I9RGIoYSk7dmFyIGQ9VChhLmEpO2lmKCFkKWJyZWFrO3ZhciBlPShkPVlhW2RdfHxudWxsKSYmZC53O2lmKCFlKXthLmEuYS0tO2JyZWFrfWZvcig7Yy5sZW5ndGgmJmU8PWNbYy5sZW5ndGgtMV0udzspYj1uZXcgTihjLnBvcCgpLGMucG9wKCksYik7Yy5wdXNoKGIsZCl9Zm9yKDtjLmxlbmd0aDspYj1uZXcgTihjLnBvcCgpLGMucG9wKCksYik7cmV0dXJuIGJ9ZnVuY3Rpb24gVyhhLGIpe2lmKGliKGEuYSkpdGhyb3cgRXJyb3IoYik7fWZ1bmN0aW9uIEViKGEsYil7dmFyIGM9VChhLmEpO2lmKGMhPWIpdGhyb3cgRXJyb3IoXCJCYWQgdG9rZW4sIGV4cGVjdGVkOiBcIitiK1wiIGdvdDogXCIrYyk7fVxuZnVuY3Rpb24gRmIoYSl7YT1UKGEuYSk7aWYoXCIpXCIhPWEpdGhyb3cgRXJyb3IoXCJCYWQgdG9rZW46IFwiK2EpO31mdW5jdGlvbiBHYihhKXthPVQoYS5hKTtpZigyPmEubGVuZ3RoKXRocm93IEVycm9yKFwiVW5jbG9zZWQgbGl0ZXJhbCBzdHJpbmdcIik7cmV0dXJuIG5ldyBqYihhKX1cbmZ1bmN0aW9uIEhiKGEpe3ZhciBiLGM9W10sZDtpZihvYihTKGEuYSkpKXtiPVQoYS5hKTtkPVMoYS5hKTtpZihcIi9cIj09YiYmKGliKGEuYSl8fFwiLlwiIT1kJiZcIi4uXCIhPWQmJlwiQFwiIT1kJiZcIipcIiE9ZCYmIS8oPyFbMC05XSlbXFx3XS8udGVzdChkKSkpcmV0dXJuIG5ldyBtYjtkPW5ldyBtYjtXKGEsXCJNaXNzaW5nIG5leHQgbG9jYXRpb24gc3RlcC5cIik7Yj1JYihhLGIpO2MucHVzaChiKX1lbHNle2E6e2I9UyhhLmEpO2Q9Yi5jaGFyQXQoMCk7c3dpdGNoKGQpe2Nhc2UgXCIkXCI6dGhyb3cgRXJyb3IoXCJWYXJpYWJsZSByZWZlcmVuY2Ugbm90IGFsbG93ZWQgaW4gSFRNTCBYUGF0aFwiKTtjYXNlIFwiKFwiOlQoYS5hKTtiPUNiKGEpO1coYSwndW5jbG9zZWQgXCIoXCInKTtFYihhLFwiKVwiKTticmVhaztjYXNlICdcIic6Y2FzZSBcIidcIjpiPUdiKGEpO2JyZWFrO2RlZmF1bHQ6aWYoaXNOYU4oK2IpKWlmKCFkYihiKSYmLyg/IVswLTldKVtcXHddLy50ZXN0KGQpJiZcIihcIj09UyhhLmEsMSkpe2I9VChhLmEpO1xuYj1jYltiXXx8bnVsbDtUKGEuYSk7Zm9yKGQ9W107XCIpXCIhPVMoYS5hKTspe1coYSxcIk1pc3NpbmcgZnVuY3Rpb24gYXJndW1lbnQgbGlzdC5cIik7ZC5wdXNoKENiKGEpKTtpZihcIixcIiE9UyhhLmEpKWJyZWFrO1QoYS5hKX1XKGEsXCJVbmNsb3NlZCBmdW5jdGlvbiBhcmd1bWVudCBsaXN0LlwiKTtGYihhKTtiPW5ldyBhYihiLGQpfWVsc2V7Yj1udWxsO2JyZWFrIGF9ZWxzZSBiPW5ldyBBYigrVChhLmEpKX1cIltcIj09UyhhLmEpJiYoZD1uZXcgc2IoSmIoYSkpLGI9bmV3IFphKGIsZCkpfWlmKGIpaWYob2IoUyhhLmEpKSlkPWI7ZWxzZSByZXR1cm4gYjtlbHNlIGI9SWIoYSxcIi9cIiksZD1uZXcgbmIsYy5wdXNoKGIpfWZvcig7b2IoUyhhLmEpKTspYj1UKGEuYSksVyhhLFwiTWlzc2luZyBuZXh0IGxvY2F0aW9uIHN0ZXAuXCIpLGI9SWIoYSxiKSxjLnB1c2goYik7cmV0dXJuIG5ldyBrYihkLGMpfVxuZnVuY3Rpb24gSWIoYSxiKXt2YXIgYyxkLGU7aWYoXCIvXCIhPWImJlwiLy9cIiE9Yil0aHJvdyBFcnJvcignU3RlcCBvcCBzaG91bGQgYmUgXCIvXCIgb3IgXCIvL1wiJyk7aWYoXCIuXCI9PVMoYS5hKSlyZXR1cm4gZD1uZXcgVSh5YixuZXcgRyhcIm5vZGVcIikpLFQoYS5hKSxkO2lmKFwiLi5cIj09UyhhLmEpKXJldHVybiBkPW5ldyBVKHhiLG5ldyBHKFwibm9kZVwiKSksVChhLmEpLGQ7dmFyIGY7aWYoXCJAXCI9PVMoYS5hKSlmPWxiLFQoYS5hKSxXKGEsXCJNaXNzaW5nIGF0dHJpYnV0ZSBuYW1lXCIpO2Vsc2UgaWYoXCI6OlwiPT1TKGEuYSwxKSl7aWYoIS8oPyFbMC05XSlbXFx3XS8udGVzdChTKGEuYSkuY2hhckF0KDApKSl0aHJvdyBFcnJvcihcIkJhZCB0b2tlbjogXCIrVChhLmEpKTtjPVQoYS5hKTtmPXdiW2NdfHxudWxsO2lmKCFmKXRocm93IEVycm9yKFwiTm8gYXhpcyB3aXRoIG5hbWU6IFwiK2MpO1QoYS5hKTtXKGEsXCJNaXNzaW5nIG5vZGUgbmFtZVwiKX1lbHNlIGY9dGI7Yz1TKGEuYSk7aWYoLyg/IVswLTldKVtcXHdcXCpdLy50ZXN0KGMuY2hhckF0KDApKSlpZihcIihcIj09XG5TKGEuYSwxKSl7aWYoIWRiKGMpKXRocm93IEVycm9yKFwiSW52YWxpZCBub2RlIHR5cGU6IFwiK2MpO2M9VChhLmEpO2lmKCFkYihjKSl0aHJvdyBFcnJvcihcIkludmFsaWQgdHlwZSBuYW1lOiBcIitjKTtFYihhLFwiKFwiKTtXKGEsXCJCYWQgbm9kZXR5cGVcIik7ZT1TKGEuYSkuY2hhckF0KDApO3ZhciBnPW51bGw7aWYoJ1wiJz09ZXx8XCInXCI9PWUpZz1HYihhKTtXKGEsXCJCYWQgbm9kZXR5cGVcIik7RmIoYSk7Yz1uZXcgRyhjLGcpfWVsc2UgaWYoYz1UKGEuYSksZT1jLmluZGV4T2YoXCI6XCIpLC0xPT1lKWM9bmV3IEUoYyk7ZWxzZXt2YXIgZz1jLnN1YnN0cmluZygwLGUpLGg7aWYoXCIqXCI9PWcpaD1cIipcIjtlbHNlIGlmKGg9YS5iKGcpLCFoKXRocm93IEVycm9yKFwiTmFtZXNwYWNlIHByZWZpeCBub3QgZGVjbGFyZWQ6IFwiK2cpO2M9Yy5zdWJzdHIoZSsxKTtjPW5ldyBFKGMsaCl9ZWxzZSB0aHJvdyBFcnJvcihcIkJhZCB0b2tlbjogXCIrVChhLmEpKTtlPW5ldyBzYihKYihhKSxmLmEpO3JldHVybiBkfHxcbm5ldyBVKGYsYyxlLFwiLy9cIj09Yil9ZnVuY3Rpb24gSmIoYSl7Zm9yKHZhciBiPVtdO1wiW1wiPT1TKGEuYSk7KXtUKGEuYSk7VyhhLFwiTWlzc2luZyBwcmVkaWNhdGUgZXhwcmVzc2lvbi5cIik7dmFyIGM9Q2IoYSk7Yi5wdXNoKGMpO1coYSxcIlVuY2xvc2VkIHByZWRpY2F0ZSBleHByZXNzaW9uLlwiKTtFYihhLFwiXVwiKX1yZXR1cm4gYn1mdW5jdGlvbiBEYihhKXtpZihcIi1cIj09UyhhLmEpKXJldHVybiBUKGEuYSksbmV3IHpiKERiKGEpKTt2YXIgYj1IYihhKTtpZihcInxcIiE9UyhhLmEpKWE9YjtlbHNle2ZvcihiPVtiXTtcInxcIj09VChhLmEpOylXKGEsXCJNaXNzaW5nIG5leHQgdW5pb24gbG9jYXRpb24gcGF0aC5cIiksYi5wdXNoKEhiKGEpKTthLmEuYS0tO2E9bmV3IHJiKGIpfXJldHVybiBhfTtmdW5jdGlvbiBLYihhKXtzd2l0Y2goYS5ub2RlVHlwZSl7Y2FzZSAxOnJldHVybiBlYShMYixhKTtjYXNlIDk6cmV0dXJuIEtiKGEuZG9jdW1lbnRFbGVtZW50KTtjYXNlIDExOmNhc2UgMTA6Y2FzZSA2OmNhc2UgMTI6cmV0dXJuIE1iO2RlZmF1bHQ6cmV0dXJuIGEucGFyZW50Tm9kZT9LYihhLnBhcmVudE5vZGUpOk1ifX1mdW5jdGlvbiBNYigpe3JldHVybiBudWxsfWZ1bmN0aW9uIExiKGEsYil7aWYoYS5wcmVmaXg9PWIpcmV0dXJuIGEubmFtZXNwYWNlVVJJfHxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIjt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoXCJ4bWxuczpcIitiKTtyZXR1cm4gYyYmYy5zcGVjaWZpZWQ/Yy52YWx1ZXx8bnVsbDphLnBhcmVudE5vZGUmJjkhPWEucGFyZW50Tm9kZS5ub2RlVHlwZT9MYihhLnBhcmVudE5vZGUsYik6bnVsbH07ZnVuY3Rpb24gTmIoYSxiKXtpZighYS5sZW5ndGgpdGhyb3cgRXJyb3IoXCJFbXB0eSBYUGF0aCBleHByZXNzaW9uLlwiKTt2YXIgYz1mYihhKTtpZihpYihjKSl0aHJvdyBFcnJvcihcIkludmFsaWQgWFBhdGggZXhwcmVzc2lvbi5cIik7Yj9cImZ1bmN0aW9uXCI9PWFhKGIpfHwoYj1kYShiLmxvb2t1cE5hbWVzcGFjZVVSSSxiKSk6Yj1mdW5jdGlvbigpe3JldHVybiBudWxsfTt2YXIgZD1DYihuZXcgQmIoYyxiKSk7aWYoIWliKGMpKXRocm93IEVycm9yKFwiQmFkIHRva2VuOiBcIitUKGMpKTt0aGlzLmV2YWx1YXRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZC5hKG5ldyBRKGEpKTtyZXR1cm4gbmV3IFkoYyxiKX19XG5mdW5jdGlvbiBZKGEsYil7aWYoMD09YilpZihhIGluc3RhbmNlb2YgQyliPTQ7ZWxzZSBpZihcInN0cmluZ1wiPT10eXBlb2YgYSliPTI7ZWxzZSBpZihcIm51bWJlclwiPT10eXBlb2YgYSliPTE7ZWxzZSBpZihcImJvb2xlYW5cIj09dHlwZW9mIGEpYj0zO2Vsc2UgdGhyb3cgRXJyb3IoXCJVbmV4cGVjdGVkIGV2YWx1YXRpb24gcmVzdWx0LlwiKTtpZigyIT1iJiYxIT1iJiYzIT1iJiYhKGEgaW5zdGFuY2VvZiBDKSl0aHJvdyBFcnJvcihcInZhbHVlIGNvdWxkIG5vdCBiZSBjb252ZXJ0ZWQgdG8gdGhlIHNwZWNpZmllZCB0eXBlXCIpO3RoaXMucmVzdWx0VHlwZT1iO3ZhciBjO3N3aXRjaChiKXtjYXNlIDI6dGhpcy5zdHJpbmdWYWx1ZT1hIGluc3RhbmNlb2YgQz9TYShhKTpcIlwiK2E7YnJlYWs7Y2FzZSAxOnRoaXMubnVtYmVyVmFsdWU9YSBpbnN0YW5jZW9mIEM/K1NhKGEpOithO2JyZWFrO2Nhc2UgMzp0aGlzLmJvb2xlYW5WYWx1ZT1hIGluc3RhbmNlb2YgQz8wPGEubDohIWE7YnJlYWs7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OnZhciBkPVxuSChhKTtjPVtdO2Zvcih2YXIgZT1JKGQpO2U7ZT1JKGQpKWMucHVzaChlIGluc3RhbmNlb2YgeD9lLmE6ZSk7dGhpcy5zbmFwc2hvdExlbmd0aD1hLmw7dGhpcy5pbnZhbGlkSXRlcmF0b3JTdGF0ZT0hMTticmVhaztjYXNlIDg6Y2FzZSA5OmQ9UmEoYSk7dGhpcy5zaW5nbGVOb2RlVmFsdWU9ZCBpbnN0YW5jZW9mIHg/ZC5hOmQ7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihcIlVua25vd24gWFBhdGhSZXN1bHQgdHlwZS5cIik7fXZhciBmPTA7dGhpcy5pdGVyYXRlTmV4dD1mdW5jdGlvbigpe2lmKDQhPWImJjUhPWIpdGhyb3cgRXJyb3IoXCJpdGVyYXRlTmV4dCBjYWxsZWQgd2l0aCB3cm9uZyByZXN1bHQgdHlwZVwiKTtyZXR1cm4gZj49Yy5sZW5ndGg/bnVsbDpjW2YrK119O3RoaXMuc25hcHNob3RJdGVtPWZ1bmN0aW9uKGEpe2lmKDYhPWImJjchPWIpdGhyb3cgRXJyb3IoXCJzbmFwc2hvdEl0ZW0gY2FsbGVkIHdpdGggd3JvbmcgcmVzdWx0IHR5cGVcIik7cmV0dXJuIGE+PWMubGVuZ3RofHxcbjA+YT9udWxsOmNbYV19fVkuQU5ZX1RZUEU9MDtZLk5VTUJFUl9UWVBFPTE7WS5TVFJJTkdfVFlQRT0yO1kuQk9PTEVBTl9UWVBFPTM7WS5VTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFPTQ7WS5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRT01O1kuVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRT02O1kuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU9NztZLkFOWV9VTk9SREVSRURfTk9ERV9UWVBFPTg7WS5GSVJTVF9PUkRFUkVEX05PREVfVFlQRT05O2Z1bmN0aW9uIE9iKGEpe3RoaXMubG9va3VwTmFtZXNwYWNlVVJJPUtiKGEpfVxuZnVuY3Rpb24gUGIoYSxiKXt2YXIgYz1hfHxrLGQ9Yy5Eb2N1bWVudCYmYy5Eb2N1bWVudC5wcm90b3R5cGV8fGMuZG9jdW1lbnQ7aWYoIWQuZXZhbHVhdGV8fGIpYy5YUGF0aFJlc3VsdD1ZLGQuZXZhbHVhdGU9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuKG5ldyBOYihhLGMpKS5ldmFsdWF0ZShiLGQpfSxkLmNyZWF0ZUV4cHJlc3Npb249ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IE5iKGEsYil9LGQuY3JlYXRlTlNSZXNvbHZlcj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IE9iKGEpfX12YXIgUWI9W1wid2d4cGF0aFwiLFwiaW5zdGFsbFwiXSxaPWs7UWJbMF1pbiBafHwhWi5leGVjU2NyaXB0fHxaLmV4ZWNTY3JpcHQoXCJ2YXIgXCIrUWJbMF0pO2Zvcih2YXIgUmI7UWIubGVuZ3RoJiYoUmI9UWIuc2hpZnQoKSk7KVFiLmxlbmd0aHx8dm9pZCAwPT09UGI/WltSYl0/Wj1aW1JiXTpaPVpbUmJdPXt9OlpbUmJdPVBiO21vZHVsZS5leHBvcnRzLmluc3RhbGw9UGI7bW9kdWxlLmV4cG9ydHMuWFBhdGhSZXN1bHRUeXBlPXtBTllfVFlQRTowLE5VTUJFUl9UWVBFOjEsU1RSSU5HX1RZUEU6MixCT09MRUFOX1RZUEU6MyxVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFOjQsT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU6NSxVTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFOjYsT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU6NyxBTllfVU5PUkRFUkVEX05PREVfVFlQRTo4LEZJUlNUX09SREVSRURfTk9ERV9UWVBFOjl9O30pLmNhbGwoZ2xvYmFsKVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfbGFuZ09ic2VydmFibGUgPSByZXF1aXJlKCcuL2xhbmcvT2JzZXJ2YWJsZScpO1xuXG52YXIgX2xhbmdPYnNlcnZhYmxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdPYnNlcnZhYmxlKTtcblxudmFyIF9sYW5nTG9nZ2VyID0gcmVxdWlyZSgnLi9sYW5nL0xvZ2dlcicpO1xuXG52YXIgX2xhbmdMb2dnZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ0xvZ2dlcik7XG5cbnZhciBfaHR0cFB5ZGlvQXBpID0gcmVxdWlyZSgnLi9odHRwL1B5ZGlvQXBpJyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBQeWRpb0FwaSk7XG5cbnZhciBfbW9kZWxSZWdpc3RyeSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVnaXN0cnknKTtcblxudmFyIF9tb2RlbFJlZ2lzdHJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVnaXN0cnkpO1xuXG52YXIgX21vZGVsQWp4cE5vZGUgPSByZXF1aXJlKCcuL21vZGVsL0FqeHBOb2RlJyk7XG5cbnZhciBfbW9kZWxBanhwTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFqeHBOb2RlKTtcblxudmFyIF9tb2RlbFB5ZGlvRGF0YU1vZGVsID0gcmVxdWlyZSgnLi9tb2RlbC9QeWRpb0RhdGFNb2RlbCcpO1xuXG52YXIgX21vZGVsUHlkaW9EYXRhTW9kZWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxQeWRpb0RhdGFNb2RlbCk7XG5cbnZhciBfbW9kZWxSZXBvc2l0b3J5ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXBvc2l0b3J5Jyk7XG5cbnZhciBfbW9kZWxSZXBvc2l0b3J5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVwb3NpdG9yeSk7XG5cbnZhciBfbW9kZWxDb250cm9sbGVyID0gcmVxdWlyZSgnLi9tb2RlbC9Db250cm9sbGVyJyk7XG5cbnZhciBfbW9kZWxDb250cm9sbGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQ29udHJvbGxlcik7XG5cbnZhciBfdXRpbFhNTFV0aWxzID0gcmVxdWlyZSgnLi91dGlsL1hNTFV0aWxzJyk7XG5cbnZhciBfdXRpbFhNTFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxYTUxVdGlscyk7XG5cbnZhciBfdXRpbFBhdGhVdGlscyA9IHJlcXVpcmUoJy4vdXRpbC9QYXRoVXRpbHMnKTtcblxudmFyIF91dGlsUGF0aFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxQYXRoVXRpbHMpO1xuXG52YXIgX3V0aWxMYW5nVXRpbHMgPSByZXF1aXJlKCcuL3V0aWwvTGFuZ1V0aWxzJyk7XG5cbnZhciBfdXRpbExhbmdVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsTGFuZ1V0aWxzKTtcblxudmFyIF91dGlsQWN0aXZpdHlNb25pdG9yID0gcmVxdWlyZSgnLi91dGlsL0FjdGl2aXR5TW9uaXRvcicpO1xuXG52YXIgX3V0aWxBY3Rpdml0eU1vbml0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbEFjdGl2aXR5TW9uaXRvcik7XG5cbnZhciBfaHR0cFB5ZGlvV2ViU29ja2V0ID0gcmVxdWlyZSgnLi9odHRwL1B5ZGlvV2ViU29ja2V0Jyk7XG5cbnZhciBfaHR0cFB5ZGlvV2ViU29ja2V0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBQeWRpb1dlYlNvY2tldCk7XG5cbnZhciBfbW9kZWxFbXB0eU5vZGVQcm92aWRlciA9IHJlcXVpcmUoXCIuL21vZGVsL0VtcHR5Tm9kZVByb3ZpZGVyXCIpO1xuXG52YXIgX21vZGVsRW1wdHlOb2RlUHJvdmlkZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbXB0eU5vZGVQcm92aWRlcik7XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgbWFpbiBjbGFzcyBmb3IgbGF1bmNoaW5nIHRoZSB3aG9sZSBmcmFtZXdvcmssXG4gKiB3aXRoIG9yIHdpdGhvdXQgYSBVSS5cbiAqIEl0IGNhbiBiZSBsYXVuY2hlZCBieSBQeWRpb0Jvb3RzdHJhcCBvciBkaXJlY3RseSBieSBnaXZpbmcgdGhlIHJpZ2h0IHBhcmFtZXRlcnMuXG4gKi9cblxudmFyIFB5ZGlvID0gKGZ1bmN0aW9uIChfT2JzZXJ2YWJsZSkge1xuICAgIF9pbmhlcml0cyhQeWRpbywgX09ic2VydmFibGUpO1xuXG4gICAgLyoqXG4gICAgICogUHlkaW8gQ29uc3RydWN0b3IgdGFrZXMgYSBNYXAgb2Ygc3RhcnQgcGFyYW1ldGVycy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIHtNYXB9XG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBQeWRpbyhwYXJhbWV0ZXJzKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQeWRpbyk7XG5cbiAgICAgICAgX09ic2VydmFibGUuY2FsbCh0aGlzKTtcbiAgICAgICAgUHlkaW8uaW5zdGFuY2UgPSB0aGlzO1xuICAgICAgICB0aGlzLlBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgICAgICB0aGlzLl9pbml0TG9hZFJlcCA9IHBhcmFtZXRlcnMuZ2V0KCdpbml0TG9hZFJlcCcpIHx8IG51bGw7XG4gICAgICAgIHRoaXMudXNlcnNFbmFibGVkID0gcGFyYW1ldGVycy5nZXQoJ3VzZXJzRW5hYmxlZCcpIHx8IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gcGFyYW1ldGVycy5nZXQoJ2N1cnJlbnRMYW5ndWFnZScpIHx8IG51bGw7XG4gICAgICAgIHRoaXMuYXBwVGl0bGUgPSBcIlB5ZGlvXCI7XG4gICAgICAgIGlmICh0aGlzLlBhcmFtZXRlcnMuaGFzKFwiY3VzdG9tV29yZGluZ1wiKSkge1xuICAgICAgICAgICAgdGhpcy5hcHBUaXRsZSA9IHRoaXMuUGFyYW1ldGVycy5nZXQoXCJjdXN0b21Xb3JkaW5nXCIpLnRpdGxlIHx8IFwiUHlkaW9cIjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVzZXIgPSBudWxsO1xuICAgICAgICB0aGlzLk1lc3NhZ2VIYXNoID0ge307XG4gICAgICAgIGlmICh3aW5kb3cuTWVzc2FnZUhhc2gpIHtcbiAgICAgICAgICAgIHRoaXMuTWVzc2FnZUhhc2ggPSB3aW5kb3cuTWVzc2FnZUhhc2g7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5BcGlDbGllbnQgPSBfaHR0cFB5ZGlvQXBpMlsnZGVmYXVsdCddLmdldENsaWVudCgpO1xuICAgICAgICB0aGlzLkFwaUNsaWVudC5zZXRQeWRpb09iamVjdCh0aGlzKTtcbiAgICAgICAgdGhpcy5BY3Rpdml0eU1vbml0b3IgPSBuZXcgX3V0aWxBY3Rpdml0eU1vbml0b3IyWydkZWZhdWx0J10odGhpcyk7XG4gICAgICAgIHRoaXMuUmVnaXN0cnkgPSBuZXcgX21vZGVsUmVnaXN0cnkyWydkZWZhdWx0J10odGhpcyk7XG4gICAgICAgIHRoaXMuX3Jvb3ROb2RlID0gbmV3IF9tb2RlbEFqeHBOb2RlMlsnZGVmYXVsdCddKFwiL1wiLCBcIlJvb3RcIik7XG4gICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIgPSBuZXcgX21vZGVsUHlkaW9EYXRhTW9kZWwyWydkZWZhdWx0J10oZmFsc2UpO1xuICAgICAgICB0aGlzLl9kYXRhTW9kZWwgPSB0aGlzLl9jb250ZXh0SG9sZGVyO1xuICAgICAgICB0aGlzLl9kYXRhTW9kZWwuc2V0QWp4cE5vZGVQcm92aWRlcihuZXcgX21vZGVsRW1wdHlOb2RlUHJvdmlkZXIyWydkZWZhdWx0J10oKSk7XG4gICAgICAgIHRoaXMuX2RhdGFNb2RlbC5zZXRSb290Tm9kZSh0aGlzLl9yb290Tm9kZSk7XG4gICAgICAgIC8vIE11c3QgaGFwcGVuIEFGVEVSIGRhdGFtb2RlbCBpbml0aXphdGlvbi5cbiAgICAgICAgdGhpcy5Db250cm9sbGVyID0gbmV3IF9tb2RlbENvbnRyb2xsZXIyWydkZWZhdWx0J10odGhpcyk7XG4gICAgICAgIHRoaXMuV2ViU29ja2V0Q2xpZW50ID0gbmV3IF9odHRwUHlkaW9XZWJTb2NrZXQyWydkZWZhdWx0J10odGhpcyk7XG4gICAgICAgIGlmICh0aGlzLnJlcG9zaXRvcnlJZCkge1xuICAgICAgICAgICAgdGhpcy5XZWJTb2NrZXRDbGllbnQuY3VycmVudFJlcG8gPSB0aGlzLnJlcG9zaXRvcnlJZDtcbiAgICAgICAgICAgIHRoaXMuV2ViU29ja2V0Q2xpZW50Lm9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuUGFyYW1ldGVycy5oYXMoJ1NUQVJUX1JFUE9TSVRPUlknKSkge1xuICAgICAgICAgICAgdmFyIGxvYWRVcmlQYXJ0cyA9IF91dGlsTGFuZ1V0aWxzMlsnZGVmYXVsdCddLnRyaW0od2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZShwYXJhbWV0ZXJzLmdldCgnRlJPTlRFTkRfVVJMJyksICcnKSwgJy8nKS5zcGxpdCgnLycpO1xuICAgICAgICAgICAgaWYgKGxvYWRVcmlQYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB2YXIgbG9hZFdzID0gbG9hZFVyaVBhcnRzWzBdO1xuICAgICAgICAgICAgICAgIHZhciBvdGhlciA9IGxvYWRVcmlQYXJ0cy5zbGljZSgxKTtcblxuICAgICAgICAgICAgICAgIGlmIChsb2FkV3MuaW5kZXhPZignd3MtJykgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZFdzID0gbG9hZFdzLnN1YnN0cigzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5QYXJhbWV0ZXJzLnNldCgnU1RBUlRfUkVQT1NJVE9SWScsIGxvYWRXcyk7XG4gICAgICAgICAgICAgICAgaWYgKG90aGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLlBhcmFtZXRlcnMuc2V0KCdTVEFSVF9GT0xERVInLCAnLycgKyBvdGhlci5qb2luKCcvJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5maXJlID0gZnVuY3Rpb24gZmlyZShldmVudE5hbWUsIGRhdGEpIHtcbiAgICAgICAgdGhpcy5ub3RpZnkoZXZlbnROYW1lLCBkYXRhKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1VzZXJ8bnVsbH0gdXNlck9iamVjdFxuICAgICAqIEBwYXJhbSBza2lwRXZlbnQgYm9vbFxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLnVwZGF0ZVVzZXIgPSBmdW5jdGlvbiB1cGRhdGVVc2VyKHVzZXJPYmplY3QpIHtcbiAgICAgICAgdmFyIHNraXBFdmVudCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIHRoaXMudXNlciA9IHVzZXJPYmplY3Q7XG4gICAgICAgIGlmICghc2tpcEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeSgndXNlcl9sb2dnZWQnLCB1c2VyT2JqZWN0KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtudWxsfFVzZXJ9XG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUuZ2V0VXNlciA9IGZ1bmN0aW9uIGdldFVzZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXI7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2ggdXNlci9wcmVmZXJlbmNlcyByZWdpc3RyeSBwYXJ0XG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUucmVmcmVzaFVzZXJEYXRhID0gZnVuY3Rpb24gcmVmcmVzaFVzZXJEYXRhKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZU9uY2UoXCJyZWdpc3RyeV9wYXJ0X2xvYWRlZFwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChldmVudCAhPT0gXCJ1c2VyL3ByZWZlcmVuY2VzXCIpIHJldHVybjtcbiAgICAgICAgICAgIF90aGlzLnVwZGF0ZVVzZXIoX3RoaXMuUmVnaXN0cnkucGFyc2VVc2VyKCksIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuUmVnaXN0cnkubG9hZChcInVzZXIvcHJlZmVyZW5jZXNcIik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlYWwgaW5pdGlhbGlzYXRpb24gc2VxdWVuY2UuIFdpbGwgVHJpZ2dlciB0aGUgd2hvbGUgR1VJIGJ1aWxkaW5nLlxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB0aGlzLm9ic2VydmUoXCJyZWdpc3RyeV9sb2FkZWRcIiwgZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICBfdGhpczIuUmVnaXN0cnkucmVmcmVzaEV4dGVuc2lvbnNSZWdpc3RyeSgpO1xuICAgICAgICAgICAgX3RoaXMyLnVwZGF0ZVVzZXIoX3RoaXMyLlJlZ2lzdHJ5LnBhcnNlVXNlcigpLCBmYWxzZSk7XG4gICAgICAgICAgICBpZiAoX3RoaXMyLnVzZXIpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVwSWQgPSBfdGhpczIudXNlci5nZXRBY3RpdmVSZXBvc2l0b3J5KCk7XG4gICAgICAgICAgICAgICAgdmFyIHJlcExpc3QgPSBfdGhpczIudXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCk7XG4gICAgICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlPYmplY3QgPSByZXBMaXN0LmdldChyZXBJZCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcG9zaXRvcnlPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeU9iamVjdC5sb2FkUmVzb3VyY2VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKF90aGlzMi5VSS5ndWlMb2FkZWQpIHtcbiAgICAgICAgICAgICAgICBfdGhpczIuVUkucmVmcmVzaFRlbXBsYXRlUGFydHMoKTtcbiAgICAgICAgICAgICAgICBfdGhpczIuUmVnaXN0cnkucmVmcmVzaEV4dGVuc2lvbnNSZWdpc3RyeSgpO1xuICAgICAgICAgICAgICAgIF90aGlzMi5Db250cm9sbGVyLmxvYWRBY3Rpb25zRnJvbVJlZ2lzdHJ5KF90aGlzMi5nZXRYbWxSZWdpc3RyeSgpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLm9ic2VydmUoXCJndWlfbG9hZGVkXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLlVJLnJlZnJlc2hUZW1wbGF0ZVBhcnRzKCk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5SZWdpc3RyeS5yZWZyZXNoRXh0ZW5zaW9uc1JlZ2lzdHJ5KCk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5Db250cm9sbGVyLmxvYWRBY3Rpb25zRnJvbVJlZ2lzdHJ5KF90aGlzMi5nZXRYbWxSZWdpc3RyeSgpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF90aGlzMi5sb2FkQWN0aXZlUmVwb3NpdG9yeSgpO1xuICAgICAgICAgICAgaWYgKF90aGlzMi5QYXJhbWV0ZXJzLmhhcyhcIlVTRVJfR1VJX0FDVElPTlwiKSkge1xuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhID0gX3RoaXMyLlBhcmFtZXRlcnMuZ2V0KFwiVVNFUl9HVUlfQUNUSU9OXCIpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuUGFyYW1ldGVyc1snZGVsZXRlJ10oXCJVU0VSX0dVSV9BQ1RJT05cIik7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLkNvbnRyb2xsZXIuZmlyZUFjdGlvbihhKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIHN0YXJ0ZXJGdW5jID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRDbGFzc2VzQW5kQXBwbHkoW1wiUmVhY3RcIiwgXCJQeWRpb1JlYWN0VUlcIl0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczMuVUkgPSBuZXcgd2luZG93LlB5ZGlvUmVhY3RVSS5CdWlsZGVyKF90aGlzMyk7XG4gICAgICAgICAgICAgICAgX3RoaXMzLlVJLmluaXRUZW1wbGF0ZXMoKTtcbiAgICAgICAgICAgICAgICBfdGhpczMuZmlyZShcInJlZ2lzdHJ5X2xvYWRlZFwiLCBfdGhpczMuUmVnaXN0cnkuZ2V0WE1MKCkpO1xuICAgICAgICAgICAgICAgIF90aGlzMy5maXJlKCdsb2FkZWQnKTtcbiAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQoKCkgPT4geyB0aGlzLmZpcmUoJ2xvYWRlZCcpOyB9LCAyMDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG5cbiAgICAgICAgLy8gUHJlbG9nZ2VkIHVzZXJcbiAgICAgICAgaWYgKHRoaXMuUGFyYW1ldGVycy5oYXMoXCJQUkVMT0dfVVNFUlwiKSAmJiAhdGhpcy51c2VyKSB7XG4gICAgICAgICAgICB2YXIgbG9naW4gPSB0aGlzLlBhcmFtZXRlcnMuZ2V0KFwiUFJFTE9HX1VTRVJcIik7XG4gICAgICAgICAgICB2YXIgcHdkID0gbG9naW4gKyBcIiMkIUF6MVwiO1xuICAgICAgICAgICAgX2h0dHBQeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuand0RnJvbUNyZWRlbnRpYWxzKGxvZ2luLCBwd2QsIGZhbHNlKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczIubG9hZFhtbFJlZ2lzdHJ5KG51bGwsIHN0YXJ0ZXJGdW5jLCBfdGhpczIuUGFyYW1ldGVycy5nZXQoXCJTVEFSVF9SRVBPU0lUT1JZXCIpKTtcbiAgICAgICAgICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLmxvYWRYbWxSZWdpc3RyeShudWxsLCBzdGFydGVyRnVuYyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGp3dCB8fCAhX3RoaXMyLlBhcmFtZXRlcnMuaGFzKCdQUkVMT0FERURfUkVHSVNUUlknKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBpcyBhIGp3dFxuICAgICAgICAgICAgICAgICAgICBfdGhpczIubG9hZFhtbFJlZ2lzdHJ5KG51bGwsIHN0YXJ0ZXJGdW5jLCBfdGhpczIuUGFyYW1ldGVycy5nZXQoXCJTVEFSVF9SRVBPU0lUT1JZXCIpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBOb3QgbG9nZ2VkLCB1c2VkIHByZWZldGVjaGVkIHJlZ2lzdHJ5IHRvIHNwZWVkIHVwIGxvZ2luIHNjcmVlblxuICAgICAgICAgICAgICAgICAgICBfdGhpczIuUmVnaXN0cnkubG9hZEZyb21TdHJpbmcoX3RoaXMyLlBhcmFtZXRlcnMuZ2V0KFwiUFJFTE9BREVEX1JFR0lTVFJZXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLlBhcmFtZXRlcnNbJ2RlbGV0ZSddKFwiUFJFTE9BREVEX1JFR0lTVFJZXCIpO1xuICAgICAgICAgICAgICAgICAgICBzdGFydGVyRnVuYygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlKFwic2VydmVyX21lc3NhZ2VcIiwgZnVuY3Rpb24gKHhtbCkge1xuICAgICAgICAgICAgdmFyIHJlbG9hZCA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHhtbCwgXCJ0cmVlL3JlcXVpcmVfcmVnaXN0cnlfcmVsb2FkXCIpO1xuICAgICAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgICAgICAgIGlmIChyZWxvYWQuZ2V0QXR0cmlidXRlKFwicmVwb3NpdG9yeUlkXCIpICE9PSBfdGhpczIucmVwb3NpdG9yeUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5sb2FkWG1sUmVnaXN0cnkobnVsbCwgbnVsbCwgcmVsb2FkLmdldEF0dHJpYnV0ZShcInJlcG9zaXRvcnlJZFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5yZXBvc2l0b3J5SWQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWRzIHRoZSBYTUwgUmVnaXN0cnksIGFuIGltYWdlIG9mIHRoZSBhcHBsaWNhdGlvbiBpbiBpdHMgY3VycmVudCBzdGF0ZVxuICAgICAqIHNlbnQgYnkgdGhlIHNlcnZlci5cbiAgICAgKiBAcGFyYW0geFBhdGggU3RyaW5nIEFuIFhQYXRoIHRvIGxvYWQgb25seSBhIHN1YnBhcnQgb2YgdGhlIHJlZ2lzdHJ5XG4gICAgICogQHBhcmFtIGNvbXBsZXRlRnVuY1xuICAgICAqIEBwYXJhbSB0YXJnZXRSZXBvc2l0b3J5SWRcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5sb2FkWG1sUmVnaXN0cnkgPSBmdW5jdGlvbiBsb2FkWG1sUmVnaXN0cnkoKSB7XG4gICAgICAgIHZhciB4UGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMF07XG4gICAgICAgIHZhciBjb21wbGV0ZUZ1bmMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgdGFyZ2V0UmVwb3NpdG9yeUlkID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICB0aGlzLlJlZ2lzdHJ5LmxvYWQoeFBhdGgsIGNvbXBsZXRlRnVuYywgdGFyZ2V0UmVwb3NpdG9yeUlkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBYTUwgUmVnaXN0cnlcbiAgICAgKiBAcmV0dXJucyBEb2N1bWVudFxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmdldFhtbFJlZ2lzdHJ5ID0gZnVuY3Rpb24gZ2V0WG1sUmVnaXN0cnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLlJlZ2lzdHJ5LmdldFhNTCgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIHRoZSBjdXJyZW50IHJlcG9zaXRvcnkgKGZyb20gdGhlIGN1cnJlbnQgdXNlcikgYW5kIGxvYWQgaXQuXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUubG9hZEFjdGl2ZVJlcG9zaXRvcnkgPSBmdW5jdGlvbiBsb2FkQWN0aXZlUmVwb3NpdG9yeSgpIHtcbiAgICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMudXNlciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIF9yZXBvc2l0b3J5T2JqZWN0ID0gbmV3IF9tb2RlbFJlcG9zaXRvcnkyWydkZWZhdWx0J10obnVsbCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRSZXBvc2l0b3J5KF9yZXBvc2l0b3J5T2JqZWN0KTtcbiAgICAgICAgICAgIHRoaXMuZmlyZShcInJlcG9zaXRvcnlfbGlzdF9yZWZyZXNoZWRcIiwgeyBsaXN0OiBmYWxzZSwgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIHRoaXMuQ29udHJvbGxlci5maXJlQWN0aW9uKFwibG9naW5cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcmVwSWQgPSB0aGlzLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeSgpO1xuICAgICAgICB2YXIgcmVwTGlzdCA9IHRoaXMudXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCk7XG4gICAgICAgIHZhciByZXBvc2l0b3J5T2JqZWN0ID0gcmVwTGlzdC5nZXQocmVwSWQpO1xuXG4gICAgICAgIGlmICghcmVwb3NpdG9yeU9iamVjdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlci5sb2NrKSB7XG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM0LkNvbnRyb2xsZXIubG9hZEFjdGlvbnNGcm9tUmVnaXN0cnkoX3RoaXM0LmdldFhtbFJlZ2lzdHJ5KCkpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbG9jayA9IF90aGlzNC51c2VyLmxvY2suc3BsaXQoXCIsXCIpLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNC5Db250cm9sbGVyLmZpcmVBY3Rpb24obG9jayk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDE1MCk7XG4gICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYWxlcnQoXCJObyBhY3RpdmUgcmVwb3NpdG9yeSBmb3VuZCBmb3IgdXNlciFcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5Db250cm9sbGVyLmZpcmVBY3Rpb24oXCJsb2dvdXRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy51c2VyLmdldFByZWZlcmVuY2UoXCJwZW5kaW5nX2ZvbGRlclwiKSAmJiB0aGlzLnVzZXIuZ2V0UHJlZmVyZW5jZShcInBlbmRpbmdfZm9sZGVyXCIpICE9PSBcIi0xXCIpIHtcblxuICAgICAgICAgICAgdGhpcy5faW5pdExvYWRSZXAgPSB0aGlzLnVzZXIuZ2V0UHJlZmVyZW5jZShcInBlbmRpbmdfZm9sZGVyXCIpO1xuICAgICAgICAgICAgdGhpcy51c2VyLnNldFByZWZlcmVuY2UoXCJwZW5kaW5nX2ZvbGRlclwiLCBcIi0xXCIpO1xuICAgICAgICAgICAgdGhpcy51c2VyLnNhdmVQcmVmZXJlbmNlKFwicGVuZGluZ19mb2xkZXJcIik7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy51c2VyICYmIHRoaXMuUGFyYW1ldGVycy5oYXMoJ1NUQVJUX0ZPTERFUicpKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0TG9hZFJlcCA9IHRoaXMuUGFyYW1ldGVycy5nZXQoJ1NUQVJUX0ZPTERFUicpO1xuICAgICAgICAgICAgdGhpcy5QYXJhbWV0ZXJzWydkZWxldGUnXSgnU1RBUlRfRk9MREVSJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvYWRSZXBvc2l0b3J5KHJlcG9zaXRvcnlPYmplY3QpO1xuICAgICAgICB0aGlzLmZpcmUoXCJyZXBvc2l0b3J5X2xpc3RfcmVmcmVzaGVkXCIsIHsgbGlzdDogcmVwTGlzdCwgYWN0aXZlOiByZXBJZCB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVmcmVzaCB0aGUgcmVwb3NpdG9yaWVzIGxpc3QgZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5yZWxvYWRSZXBvc2l0b3JpZXNMaXN0ID0gZnVuY3Rpb24gcmVsb2FkUmVwb3NpdG9yaWVzTGlzdCgpIHtcbiAgICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLnVzZXIpIHJldHVybjtcbiAgICAgICAgdGhpcy5vYnNlcnZlT25jZShcInJlZ2lzdHJ5X3BhcnRfbG9hZGVkXCIsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSAhPT0gXCJ1c2VyL3JlcG9zaXRvcmllc1wiKSByZXR1cm47XG4gICAgICAgICAgICBfdGhpczUudXBkYXRlVXNlcihfdGhpczUuUmVnaXN0cnkucGFyc2VVc2VyKCkpO1xuICAgICAgICAgICAgaWYgKF90aGlzNS51c2VyLmdldFJlcG9zaXRvcmllc0xpc3QoKS5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM1LmxvYWRYbWxSZWdpc3RyeSgpOyAvLyBVc2VyIG1heWJlIGxvY2tldCBvdXQgUmVsb2FkIGZ1bGwgcmVnaXN0cnkgbm93IVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3RoaXM1LmZpcmUoXCJyZXBvc2l0b3J5X2xpc3RfcmVmcmVzaGVkXCIsIHtcbiAgICAgICAgICAgICAgICBsaXN0OiBfdGhpczUudXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCksXG4gICAgICAgICAgICAgICAgYWN0aXZlOiBfdGhpczUudXNlci5nZXRBY3RpdmVSZXBvc2l0b3J5KClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2FkWG1sUmVnaXN0cnkoXCJ1c2VyL3JlcG9zaXRvcmllc1wiKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZCBhIFJlcG9zaXRvcnkgaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeSBSZXBvc2l0b3J5XG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUubG9hZFJlcG9zaXRvcnkgPSBmdW5jdGlvbiBsb2FkUmVwb3NpdG9yeShyZXBvc2l0b3J5KSB7XG4gICAgICAgIHZhciBfdGhpczYgPSB0aGlzO1xuXG4gICAgICAgIGlmICh0aGlzLnJlcG9zaXRvcnlJZCAhPSBudWxsICYmIHRoaXMucmVwb3NpdG9yeUlkID09PSByZXBvc2l0b3J5LmdldElkKCkpIHtcbiAgICAgICAgICAgIF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmRlYnVnKCdSZXBvc2l0b3J5IGFscmVhZHkgbG9hZGVkLCBkbyBub3RoaW5nJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29udGV4dEhvbGRlci5zZXRTZWxlY3RlZE5vZGVzKFtdKTtcbiAgICAgICAgaWYgKHJlcG9zaXRvcnkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcG9zaXRvcnkubG9hZFJlc291cmNlcygpO1xuICAgICAgICB2YXIgcmVwb3NpdG9yeUlkID0gcmVwb3NpdG9yeS5nZXRJZCgpO1xuICAgICAgICB2YXIgbmV3SWNvbiA9IHJlcG9zaXRvcnkuZ2V0SWNvbigpO1xuXG4gICAgICAgIHZhciBwcm92aWRlckRlZiA9IHJlcG9zaXRvcnkuZ2V0Tm9kZVByb3ZpZGVyRGVmKCk7XG4gICAgICAgIHZhciByb290Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHByb3ZpZGVyRGVmID09IG51bGwpIHtcbiAgICAgICAgICAgIHJvb3ROb2RlID0gbmV3IF9tb2RlbEFqeHBOb2RlMlsnZGVmYXVsdCddKFwiL1wiLCBmYWxzZSwgcmVwb3NpdG9yeS5nZXRMYWJlbCgpLCBuZXdJY29uKTtcbiAgICAgICAgICAgIC8vIERlZmF1bHRcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIuc2V0QWp4cE5vZGVQcm92aWRlcihuZXcgX21vZGVsRW1wdHlOb2RlUHJvdmlkZXIyWydkZWZhdWx0J10oKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgcHJvdmlkZXJDbGFzcyA9IHdpbmRvd1twcm92aWRlckRlZi5uYW1lXTtcbiAgICAgICAgICAgIHZhciBwcm92aWRlciA9IG5ldyBwcm92aWRlckNsYXNzKCk7XG4gICAgICAgICAgICBpZiAocHJvdmlkZXJEZWYub3B0aW9ucykge1xuICAgICAgICAgICAgICAgIHByb3ZpZGVyLmluaXRQcm92aWRlcihwcm92aWRlckRlZi5vcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIuc2V0QWp4cE5vZGVQcm92aWRlcihwcm92aWRlcik7XG4gICAgICAgICAgICByb290Tm9kZSA9IG5ldyBfbW9kZWxBanhwTm9kZTJbJ2RlZmF1bHQnXShcIi9cIiwgZmFsc2UsIHJlcG9zaXRvcnkuZ2V0TGFiZWwoKSwgbmV3SWNvbiwgcHJvdmlkZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGluaXRMb2FkUmVwID0gdGhpcy5faW5pdExvYWRSZXAgJiYgdGhpcy5faW5pdExvYWRSZXAgIT09ICcvJyA/IHRoaXMuX2luaXRMb2FkUmVwLnZhbHVlT2YoKSA6IG51bGw7XG4gICAgICAgIHZhciBmaXJzdExvYWRPYnMgPSBmdW5jdGlvbiBmaXJzdExvYWRPYnMoKSB7fTtcbiAgICAgICAgaWYgKGluaXRMb2FkUmVwKSB7XG4gICAgICAgICAgICBmaXJzdExvYWRPYnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM2LmdvVG8oaW5pdExvYWRSZXApO1xuICAgICAgICAgICAgICAgIF90aGlzNi5faW5pdExvYWRSZXAgPSBudWxsO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIuc2V0Um9vdE5vZGUocm9vdE5vZGUpO1xuICAgICAgICByb290Tm9kZS5vYnNlcnZlT25jZSgnZmlyc3RfbG9hZCcsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLm5vdGlmeSgnY29udGV4dF9jaGFuZ2VkJywgcm9vdE5vZGUpO1xuICAgICAgICAgICAgdGhpcy5Db250cm9sbGVyLmZpcmVDb250ZXh0Q2hhbmdlKCk7XG4gICAgICAgICAgICBmaXJzdExvYWRPYnMoKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMucmVwb3NpdG9yeUlkID0gcmVwb3NpdG9yeUlkO1xuICAgICAgICByb290Tm9kZS5sb2FkKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlcXVpcmUgYSBjb250ZXh0IGNoYW5nZSB0byB0aGUgZ2l2ZW4gcGF0aFxuICAgICAqIEBwYXJhbSBub2RlT3JQYXRoIEFqeHBOb2RlfFN0cmluZyBBIG5vZGUgb3IgYSBwYXRoXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUuZ29UbyA9IGZ1bmN0aW9uIGdvVG8obm9kZU9yUGF0aCkge1xuICAgICAgICB2YXIgZ290b05vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBwYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodHlwZW9mIG5vZGVPclBhdGggPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHBhdGggPSBub2RlT3JQYXRoO1xuICAgICAgICAgICAgZ290b05vZGUgPSBuZXcgX21vZGVsQWp4cE5vZGUyWydkZWZhdWx0J10obm9kZU9yUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnb3RvTm9kZSA9IG5vZGVPclBhdGg7XG4gICAgICAgICAgICBwYXRoID0gZ290b05vZGUuZ2V0UGF0aCgpO1xuICAgICAgICAgICAgaWYgKG5vZGVPclBhdGguZ2V0TWV0YWRhdGEoKS5oYXMoXCJyZXBvc2l0b3J5X2lkXCIpICYmIG5vZGVPclBhdGguZ2V0TWV0YWRhdGEoKS5nZXQoXCJyZXBvc2l0b3J5X2lkXCIpICE9PSB0aGlzLnJlcG9zaXRvcnlJZCAmJiBub2RlT3JQYXRoLmdldEFqeHBNaW1lKCkgIT09IFwicmVwb3NpdG9yeVwiICYmIG5vZGVPclBhdGguZ2V0QWp4cE1pbWUoKSAhPT0gXCJyZXBvc2l0b3J5X2VkaXRhYmxlXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlci5zZXRQcmVmZXJlbmNlKFwicGVuZGluZ19mb2xkZXJcIiwgbm9kZU9yUGF0aC5nZXRQYXRoKCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0TG9hZFJlcCA9IG5vZGVPclBhdGguZ2V0UGF0aCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJSZXBvc2l0b3J5Q2hhbmdlKG5vZGVPclBhdGguZ2V0TWV0YWRhdGEoKS5nZXQoXCJyZXBvc2l0b3J5X2lkXCIpKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3JlcG9zaXRvcnlDdXJyZW50bHlTd2l0Y2hpbmcgJiYgdGhpcy51c2VyKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIuc2V0UHJlZmVyZW5jZShcInBlbmRpbmdfZm9sZGVyXCIsIGdvdG9Ob2RlLmdldFBhdGgoKSk7XG4gICAgICAgICAgICB0aGlzLl9pbml0TG9hZFJlcCA9IGdvdG9Ob2RlLmdldFBhdGgoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY3VycmVudCA9IHRoaXMuX2NvbnRleHRIb2xkZXIuZ2V0Q29udGV4dE5vZGUoKTtcbiAgICAgICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudC5nZXRQYXRoKCkgPT09IHBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aCA9PT0gXCJcIiB8fCBwYXRoID09PSBcIi9cIikge1xuICAgICAgICAgICAgdGhpcy5fY29udGV4dEhvbGRlci5yZXF1aXJlQ29udGV4dENoYW5nZSh0aGlzLl9jb250ZXh0SG9sZGVyLmdldFJvb3ROb2RlKCkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ290b05vZGUgPSBnb3RvTm9kZS5maW5kSW5BcmJvKHRoaXMuX2NvbnRleHRIb2xkZXIuZ2V0Um9vdE5vZGUoKSk7XG4gICAgICAgICAgICBpZiAoZ290b05vZGUpIHtcbiAgICAgICAgICAgICAgICAvLyBOb2RlIGlzIGFscmVhZHkgaGVyZVxuICAgICAgICAgICAgICAgIGlmIChnb3RvTm9kZS5pc0Jyb3dzYWJsZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIucmVxdWlyZUNvbnRleHRDaGFuZ2UoZ290b05vZGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIuc2V0UGVuZGluZ1NlbGVjdGlvbihfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXRCYXNlbmFtZShwYXRoKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIucmVxdWlyZUNvbnRleHRDaGFuZ2UoZ290b05vZGUuZ2V0UGFyZW50KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gQ2hlY2sgb24gc2VydmVyIGlmIGl0IGRvZXMgZXhpc3QsIHRoZW4gbG9hZFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIubG9hZFBhdGhJbmZvQXN5bmMocGF0aCwgKGZ1bmN0aW9uIChmb3VuZE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kTm9kZS5pc0Jyb3dzYWJsZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnb3RvTm9kZSA9IGZvdW5kTm9kZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHRIb2xkZXIuc2V0UGVuZGluZ1NlbGVjdGlvbihfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXRCYXNlbmFtZShwYXRoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBnb3RvTm9kZSA9IG5ldyBfbW9kZWxBanhwTm9kZTJbJ2RlZmF1bHQnXShfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXREaXJuYW1lKHBhdGgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnJlcXVpcmVDb250ZXh0Q2hhbmdlKGdvdG9Ob2RlKTtcbiAgICAgICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgdGhlIHJlcG9zaXRvcnkgb2YgdGhlIGN1cnJlbnQgdXNlciBhbmQgcmVsb2FkIGxpc3QgYW5kIGN1cnJlbnQuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlJZCBTdHJpbmcgSWQgb2YgdGhlIG5ldyByZXBvc2l0b3J5XG4gICAgICogQHBhcmFtIGNhbGxiYWNrIEZ1bmN0aW9uXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUudHJpZ2dlclJlcG9zaXRvcnlDaGFuZ2UgPSBmdW5jdGlvbiB0cmlnZ2VyUmVwb3NpdG9yeUNoYW5nZShyZXBvc2l0b3J5SWQpIHtcbiAgICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB0aGlzLmZpcmUoXCJ0cmlnZ2VyX3JlcG9zaXRvcnlfc3dpdGNoXCIpO1xuICAgICAgICB0aGlzLlJlZ2lzdHJ5LmxvYWQobnVsbCwgY2FsbGJhY2ssIHJlcG9zaXRvcnlJZCk7XG4gICAgfTtcblxuICAgIFB5ZGlvLnByb3RvdHlwZS5nZXRQbHVnaW5Db25maWdzID0gZnVuY3Rpb24gZ2V0UGx1Z2luQ29uZmlncyhwbHVnaW5RdWVyeSkge1xuICAgICAgICByZXR1cm4gdGhpcy5SZWdpc3RyeS5nZXRQbHVnaW5Db25maWdzKHBsdWdpblF1ZXJ5KTtcbiAgICB9O1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmxpc3RMYW5ndWFnZXNXaXRoQ2FsbGJhY2sgPSBmdW5jdGlvbiBsaXN0TGFuZ3VhZ2VzV2l0aENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBsYW5ncyA9IHRoaXMuUGFyYW1ldGVycy5nZXQoXCJhdmFpbGFibGVMYW5ndWFnZXNcIikgfHwgeyBcImVuXCI6IFwiRGVmYXVsdFwiIH07XG4gICAgICAgIHZhciBjdXJyZW50ID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XG4gICAgICAgIE9iamVjdC5rZXlzKGxhbmdzKS5zb3J0KCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGtleSwgbGFuZ3Nba2V5XSwgY3VycmVudCA9PT0ga2V5KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlbG9hZCBhbGwgbWVzc2FnZXMgZnJvbSBzZXJ2ZXIgYW5kIHRyaWdnZXIgdXBkYXRlSTE4blRhZ3NcbiAgICAgKiBAcGFyYW0gbmV3TGFuZ3VhZ2UgU3RyaW5nXG4gICAgICogQHBhcmFtIHJlbG9hZFJlZ2lzdHJ5IGJvb2xcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5sb2FkSTE4Tk1lc3NhZ2VzID0gZnVuY3Rpb24gbG9hZEkxOE5NZXNzYWdlcyhuZXdMYW5ndWFnZSkge1xuICAgICAgICB2YXIgcmVsb2FkUmVnaXN0cnkgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyB0cnVlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIHRoaXMuQXBpQ2xpZW50LnN3aXRjaExhbmd1YWdlKG5ld0xhbmd1YWdlLCAoZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5NZXNzYWdlSGFzaCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cuTWVzc2FnZUhhc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Lk1lc3NhZ2VIYXNoID0gdGhpcy5NZXNzYWdlSGFzaDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMuTWVzc2FnZUhhc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuTWVzc2FnZUhhc2guaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5NZXNzYWdlSGFzaFtrZXldID0gdGhpcy5NZXNzYWdlSGFzaFtrZXldLnJlcGxhY2UoXCJcXFxcblwiLCBcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeShcImxhbmd1YWdlXCIsIG5ld0xhbmd1YWdlKTtcbiAgICAgICAgICAgICAgICB0aGlzLkNvbnRyb2xsZXIucmVmcmVzaEd1aUFjdGlvbnNJMThuKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlbG9hZFJlZ2lzdHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZFhtbFJlZ2lzdHJ5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuVUkucmVmcmVzaFRlbXBsYXRlUGFydHMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpcmVDb250ZXh0UmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlID0gbmV3TGFuZ3VhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIG1haW4gY29udHJvbGxlclxuICAgICAqIEByZXR1cm5zIEFjdGlvbk1hbmFnZXJcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5nZXRDb250cm9sbGVyID0gZnVuY3Rpb24gZ2V0Q29udHJvbGxlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQ29udHJvbGxlcjtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRGlzcGxheSBhbiBpbmZvcm1hdGlvbiBvciBlcnJvciBtZXNzYWdlIHRvIHRoZSB1c2VyXG4gICAgICogQHBhcmFtIG1lc3NhZ2VUeXBlIFN0cmluZyBFUlJPUiBvciBTVUNDRVNTXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgU3RyaW5nIHRoZSBtZXNzYWdlXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUuZGlzcGxheU1lc3NhZ2UgPSBmdW5jdGlvbiBkaXNwbGF5TWVzc2FnZShtZXNzYWdlVHlwZSwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgdXJscyA9IF91dGlsTGFuZ1V0aWxzMlsnZGVmYXVsdCddLnBhcnNlVXJsKG1lc3NhZ2UpO1xuICAgICAgICBpZiAodXJscy5sZW5ndGggJiYgdGhpcy51c2VyICYmIHRoaXMudXNlci5yZXBvc2l0b3JpZXMpIHtcbiAgICAgICAgICAgIHVybHMuZm9yRWFjaCgoZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcG8gPSB0aGlzLnVzZXIucmVwb3NpdG9yaWVzLmdldChtYXRjaC5ob3N0KTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlcG8pIHJldHVybjtcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKG1hdGNoLnVybCwgcmVwby5sYWJlbCArIFwiOlwiICsgbWF0Y2gucGF0aCArIG1hdGNoLmZpbGUpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lc3NhZ2VUeXBlID09PSAnRVJST1InKSBfbGFuZ0xvZ2dlcjJbJ2RlZmF1bHQnXS5lcnJvcihtZXNzYWdlKTtlbHNlIF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmxvZyhtZXNzYWdlKTtcbiAgICAgICAgaWYgKHRoaXMuVUkpIHtcbiAgICAgICAgICAgIHRoaXMuVUkuZGlzcGxheU1lc3NhZ2UobWVzc2FnZVR5cGUsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiAgICAgICAgICBQUk9YWSBNRVRIT0RTIEZPUiBEQVRBTU9ERUxcbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NvciBmb3IgdXBkYXRpbmcgdGhlIGRhdGFtb2RlbCBjb250ZXh0XG4gICAgICogQHBhcmFtIGFqeHBDb250ZXh0Tm9kZSBBanhwTm9kZVxuICAgICAqIEBwYXJhbSBhanhwU2VsZWN0ZWROb2RlcyBBanhwTm9kZVtdXG4gICAgICogQHBhcmFtIHNlbGVjdGlvblNvdXJjZSBTdHJpbmdcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS51cGRhdGVDb250ZXh0RGF0YSA9IGZ1bmN0aW9uIHVwZGF0ZUNvbnRleHREYXRhKGFqeHBDb250ZXh0Tm9kZSwgYWp4cFNlbGVjdGVkTm9kZXMsIHNlbGVjdGlvblNvdXJjZSkge1xuICAgICAgICBpZiAoYWp4cENvbnRleHROb2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnJlcXVpcmVDb250ZXh0Q2hhbmdlKGFqeHBDb250ZXh0Tm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFqeHBTZWxlY3RlZE5vZGVzKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0SG9sZGVyLnNldFNlbGVjdGVkTm9kZXMoYWp4cFNlbGVjdGVkTm9kZXMsIHNlbGVjdGlvblNvdXJjZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgUHlkaW9EYXRhTW9kZWxcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5nZXRDb250ZXh0SG9sZGVyID0gZnVuY3Rpb24gZ2V0Q29udGV4dEhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHRIb2xkZXI7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEFqeHBOb2RlXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUuZ2V0Q29udGV4dE5vZGUgPSBmdW5jdGlvbiBnZXRDb250ZXh0Tm9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHRIb2xkZXIuZ2V0Q29udGV4dE5vZGUoKSB8fCBuZXcgX21vZGVsQWp4cE5vZGUyWydkZWZhdWx0J10oXCJcIik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFB5ZGlvRGF0YU1vZGVsXG4gICAgICovXG5cbiAgICBQeWRpby5wcm90b3R5cGUuZ2V0VXNlclNlbGVjdGlvbiA9IGZ1bmN0aW9uIGdldFVzZXJTZWxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0SG9sZGVyO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NvciBmb3IgZGF0YW1vZGVsLnJlcXVpcmVDb250ZXh0Q2hhbmdlKClcbiAgICAgKi9cblxuICAgIFB5ZGlvLnByb3RvdHlwZS5maXJlQ29udGV4dFJlZnJlc2ggPSBmdW5jdGlvbiBmaXJlQ29udGV4dFJlZnJlc2goKSB7XG4gICAgICAgIHRoaXMuZ2V0Q29udGV4dEhvbGRlcigpLnJlcXVpcmVDb250ZXh0Q2hhbmdlKHRoaXMuZ2V0Q29udGV4dE5vZGUoKSwgdHJ1ZSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFjY2Vzc29yIGZvciBkYXRhbW9kZWwucmVxdWlyZUNvbnRleHRDaGFuZ2UoKVxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmZpcmVOb2RlUmVmcmVzaCA9IGZ1bmN0aW9uIGZpcmVOb2RlUmVmcmVzaChub2RlUGF0aE9yTm9kZSwgY29tcGxldGVDYWxsYmFjaykge1xuICAgICAgICB0aGlzLmdldENvbnRleHRIb2xkZXIoKS5yZXF1aXJlTm9kZVJlbG9hZChub2RlUGF0aE9yTm9kZSwgY29tcGxldGVDYWxsYmFjayk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFjY2Vzc29yIGZvciBkYXRhbW9kZWwucmVxdWlyZUNvbnRleHRDaGFuZ2UoKVxuICAgICAqL1xuXG4gICAgUHlkaW8ucHJvdG90eXBlLmZpcmVDb250ZXh0VXAgPSBmdW5jdGlvbiBmaXJlQ29udGV4dFVwKCkge1xuICAgICAgICBpZiAodGhpcy5nZXRDb250ZXh0Tm9kZSgpLmlzUm9vdCgpKSByZXR1cm47XG4gICAgICAgIHRoaXMudXBkYXRlQ29udGV4dERhdGEodGhpcy5nZXRDb250ZXh0Tm9kZSgpLmdldFBhcmVudCgpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUHJveHkgdG8gUmVzb3VyY2VzTWFuYWdlci5yZXF1aXJlTGliIGZvciBlYXNlIG9mIHdyaXRpbmdcbiAgICAgKiBAcGFyYW0gbW9kdWxlXG4gICAgICogQHBhcmFtIHByb21pc2VcbiAgICAgKiBAcmV0dXJucyB7Kn1cbiAgICAgKi9cblxuICAgIFB5ZGlvLnJlcXVpcmVMaWIgPSBmdW5jdGlvbiByZXF1aXJlTGliKG1vZHVsZSkge1xuICAgICAgICB2YXIgcHJvbWlzZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdweWRpby9odHRwL3Jlc291cmNlcy1tYW5hZ2VyJykucmVxdWlyZUxpYihtb2R1bGUsIHByb21pc2UpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdW5pcXVlIGluc3RhbmNlIG9mIHB5ZGlvIG9iamVjdFxuICAgICAqIEByZXR1cm4geyp8bnVsbH1cbiAgICAgKi9cblxuICAgIFB5ZGlvLmdldEluc3RhbmNlID0gZnVuY3Rpb24gZ2V0SW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiBQeWRpby5pbnN0YW5jZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGN1cnJlbnQgcHlkaW8gdmVyc2lvblxuICAgICAqIEByZXR1cm4geyp9XG4gICAgICovXG5cbiAgICBQeWRpby5nZXRWZXJzaW9uID0gZnVuY3Rpb24gZ2V0VmVyc2lvbigpIHtcbiAgICAgICAgaWYgKFB5ZGlvLmluc3RhbmNlICYmIFB5ZGlvLmluc3RhbmNlLlBhcmFtZXRlcnMgJiYgUHlkaW8uaW5zdGFuY2UuUGFyYW1ldGVycy5nZXQoXCJiYWNrZW5kXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gUHlkaW8uaW5zdGFuY2UuUGFyYW1ldGVycy5nZXQoXCJiYWNrZW5kXCIpW1wiVmVyc2lvblwiXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRGlyZWN0IGFjY2VzcyB0byB1bmlxdWUgaW5zdGFuY2UgTWVzc2FnZUhhc2hcbiAgICAgKiBAcmV0dXJuIHt7fX1cbiAgICAgKi9cblxuICAgIFB5ZGlvLmdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgICAgIHJldHVybiBQeWRpby5pbnN0YW5jZSA/IFB5ZGlvLmluc3RhbmNlLk1lc3NhZ2VIYXNoIDoge307XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNlbmQgbm90aWZpY2F0aW9uIHRvIGRpc3BsYXkgbG9hZGVyXG4gICAgICovXG5cbiAgICBQeWRpby5zdGFydExvYWRpbmcgPSBmdW5jdGlvbiBzdGFydExvYWRpbmcoKSB7XG4gICAgICAgIFB5ZGlvLmluc3RhbmNlLm5vdGlmeShcImNvbm5lY3Rpb24tc3RhcnRcIik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNlbmQgbm90aWZpY2F0aW9uIHRvIGhpZGUgbG9hZGVyXG4gICAgICovXG5cbiAgICBQeWRpby5lbmRMb2FkaW5nID0gZnVuY3Rpb24gZW5kTG9hZGluZygpIHtcbiAgICAgICAgUHlkaW8uaW5zdGFuY2Uubm90aWZ5KFwiY29ubmVjdGlvbi1lbmRcIik7XG4gICAgfTtcblxuICAgIHJldHVybiBQeWRpbztcbn0pKF9sYW5nT2JzZXJ2YWJsZTJbJ2RlZmF1bHQnXSk7XG5cblB5ZGlvLmluc3RhbmNlID0gbnVsbDtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUHlkaW87XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE4IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX3V0aWxYTUxVdGlscyA9IHJlcXVpcmUoJy4uL3V0aWwvWE1MVXRpbHMnKTtcblxudmFyIF91dGlsWE1MVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbFhNTFV0aWxzKTtcblxuLyoqXG4gKiBQeWRpbyBlbmNhcHN1bGF0aW9uIG9mIFhIUiAvIEZldGNoXG4gKi9cbnJlcXVpcmUoJ3doYXR3Zy1mZXRjaCcpO1xuXG52YXIgQ29ubmV4aW9uID0gKGZ1bmN0aW9uICgpIHtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGJhc2VVcmwgU3RyaW5nIFRoZSBiYXNlIHVybCBmb3Igc2VydmljZXNcbiAgICAgKi9cblxuICAgIGZ1bmN0aW9uIENvbm5leGlvbihiYXNlVXJsKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb25uZXhpb24pO1xuXG4gICAgICAgIHRoaXMuX3B5ZGlvID0gd2luZG93LnB5ZGlvO1xuICAgICAgICB0aGlzLl9iYXNlVXJsID0gYmFzZVVybCB8fCB3aW5kb3cuYWp4cFNlcnZlckFjY2Vzc1BhdGg7XG4gICAgICAgIHRoaXMuX2xpYlVybCA9IHdpbmRvdy5hanhwUmVzb3VyY2VzRm9sZGVyICsgJy9idWlsZCc7XG4gICAgICAgIHRoaXMuX3BhcmFtZXRlcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuX21ldGhvZCA9ICdwb3N0JztcbiAgICAgICAgdGhpcy5kaXNjcmV0ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIENvbm5leGlvbi51cGRhdGVTZXJ2ZXJBY2Nlc3MgPSBmdW5jdGlvbiB1cGRhdGVTZXJ2ZXJBY2Nlc3MocGFyYW1ldGVycykge1xuXG4gICAgICAgIGlmIChwYXJhbWV0ZXJzLmdldCgnU0VDVVJFX1RPS0VOJykpIHtcbiAgICAgICAgICAgIENvbm5leGlvbi5TRUNVUkVfVE9LRU4gPSBwYXJhbWV0ZXJzLmdldCgnU0VDVVJFX1RPS0VOJyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNlcnZlckFjY2Vzc1BhdGggPSBwYXJhbWV0ZXJzLmdldCgnYWp4cFNlcnZlckFjY2VzcycpLnNwbGl0KCc/Jykuc2hpZnQoKTtcbiAgICAgICAgaWYgKHBhcmFtZXRlcnMuZ2V0KCdTRVJWRVJfUFJFRklYX1VSSScpKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzLnNldCgnYWp4cFJlc291cmNlc0ZvbGRlcicsIHBhcmFtZXRlcnMuZ2V0KCdTRVJWRVJfUFJFRklYX1VSSScpICsgcGFyYW1ldGVycy5nZXQoJ2FqeHBSZXNvdXJjZXNGb2xkZXInKSk7XG4gICAgICAgICAgICBzZXJ2ZXJBY2Nlc3NQYXRoID0gcGFyYW1ldGVycy5nZXQoJ1NFUlZFUl9QUkVGSVhfVVJJJykgKyBzZXJ2ZXJBY2Nlc3NQYXRoICsgJz8nICsgKENvbm5leGlvbi5TRUNVUkVfVE9LRU4gPyAnc2VjdXJlX3Rva2VuPScgKyBDb25uZXhpb24uU0VDVVJFX1RPS0VOIDogJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VydmVyQWNjZXNzUGF0aCA9IHNlcnZlckFjY2Vzc1BhdGggKyAnPycgKyAoQ29ubmV4aW9uLlNFQ1VSRV9UT0tFTiA/ICdzZWN1cmVfdG9rZW49JyArIENvbm5leGlvbi5TRUNVUkVfVE9LRU4gOiAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtZXRlcnMuZ2V0KCdTRVJWRVJfUEVSTUFORU5UX1BBUkFNUycpKSB7XG4gICAgICAgICAgICB2YXIgcGVybVBhcmFtcyA9IHBhcmFtZXRlcnMuZ2V0KCdTRVJWRVJfUEVSTUFORU5UX1BBUkFNUycpO1xuICAgICAgICAgICAgdmFyIHBlcm1TdHJpbmdzID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBwZXJtYW5lbnQgaW4gcGVybVBhcmFtcykge1xuICAgICAgICAgICAgICAgIGlmIChwZXJtUGFyYW1zLmhhc093blByb3BlcnR5KHBlcm1hbmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGVybVN0cmluZ3MucHVzaChwZXJtYW5lbnQgKyAnPScgKyBwZXJtUGFyYW1zW3Blcm1hbmVudF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlcm1TdHJpbmdzID0gcGVybVN0cmluZ3Muam9pbignJicpO1xuICAgICAgICAgICAgaWYgKHBlcm1TdHJpbmdzKSB7XG4gICAgICAgICAgICAgICAgc2VydmVyQWNjZXNzUGF0aCArPSAnJicgKyBwZXJtU3RyaW5ncztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtZXRlcnMuc2V0KCdhanhwU2VydmVyQWNjZXNzJywgc2VydmVyQWNjZXNzUGF0aCk7XG4gICAgICAgIC8vIEJBQ0tXQVJEIENPTVBBVFxuICAgICAgICB3aW5kb3cuYWp4cFNlcnZlckFjY2Vzc1BhdGggPSBzZXJ2ZXJBY2Nlc3NQYXRoO1xuICAgICAgICBpZiAod2luZG93LnB5ZGlvQm9vdHN0cmFwICYmIHdpbmRvdy5weWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICBweWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzLnNldChcImFqeHBTZXJ2ZXJBY2Nlc3NcIiwgc2VydmVyQWNjZXNzUGF0aCk7XG4gICAgICAgICAgICBweWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzLnNldChcIlNFQ1VSRV9UT0tFTlwiLCBDb25uZXhpb24uU0VDVVJFX1RPS0VOKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDb25uZXhpb24ubG9nID0gZnVuY3Rpb24gbG9nKGFjdGlvbiwgc3luY1N0YXR1cykge1xuICAgICAgICBpZiAoIUNvbm5leGlvbi5QeWRpb0xvZ3MpIHtcbiAgICAgICAgICAgIENvbm5leGlvbi5QeWRpb0xvZ3MgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBDb25uZXhpb24uUHlkaW9Mb2dzLnB1c2goeyBhY3Rpb246IGFjdGlvbiwgc3luYzogc3luY1N0YXR1cyB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBxdWVyeSBtZXRob2QgKGdldCBwb3N0KVxuICAgICAqIEBwYXJhbSBtZXRob2QgU3RyaW5nXG4gICAgICovXG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLnNldE1ldGhvZCA9IGZ1bmN0aW9uIHNldE1ldGhvZChtZXRob2QpIHtcbiAgICAgICAgdGhpcy5fbWV0aG9kID0gbWV0aG9kO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTaG93IGEgc21hbGwgbG9hZGVyXG4gICAgICovXG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLnNob3dMb2FkZXIgPSBmdW5jdGlvbiBzaG93TG9hZGVyKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNjcmV0ZSB8fCAhdGhpcy5fcHlkaW8pIHJldHVybjtcbiAgICAgICAgdGhpcy5fcHlkaW8ubm90aWZ5KFwiY29ubmVjdGlvbi1zdGFydFwiKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSGlkZSBhIHNtYWxsIGxvYWRlclxuICAgICAqL1xuXG4gICAgQ29ubmV4aW9uLnByb3RvdHlwZS5oaWRlTG9hZGVyID0gZnVuY3Rpb24gaGlkZUxvYWRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzY3JldGUgfHwgIXRoaXMuX3B5ZGlvKSByZXR1cm47XG4gICAgICAgIHRoaXMuX3B5ZGlvLm5vdGlmeShcImNvbm5lY3Rpb24tZW5kXCIpO1xuICAgIH07XG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbiBzZW5kKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlcigpO1xuICAgICAgICB2YXIgb1RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1ldGhvZDogdGhpcy5fbWV0aG9kLFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHVybCA9IHRoaXMuX2Jhc2VVcmw7XG4gICAgICAgIHZhciBib2R5UGFydHMgPSBbXTtcbiAgICAgICAgdGhpcy5fcGFyYW1ldGVycy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgIHZhbHVlLm1hcChmdW5jdGlvbiAob25lVikge1xuICAgICAgICAgICAgICAgICAgICBib2R5UGFydHMucHVzaChrZXkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQob25lVikpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBib2R5UGFydHMucHVzaChrZXkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBxdWVyeVN0cmluZyA9IGJvZHlQYXJ0cy5qb2luKCcmJyk7XG4gICAgICAgIGlmICh0aGlzLl9tZXRob2QgPT09ICdwb3N0Jykge1xuICAgICAgICAgICAgb3B0aW9ucy5oZWFkZXJzID0geyBcIkNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOFwiIH07XG4gICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBxdWVyeVN0cmluZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybCArPSAodXJsLmluZGV4T2YoJz8nKSA+IC0xID8gJyYnIDogJz8nKSArIHF1ZXJ5U3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5mZXRjaCh1cmwsIG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG5cbiAgICAgICAgICAgIHZhciBoID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtdHlwZScpO1xuICAgICAgICAgICAgaWYgKGguaW5kZXhPZignL2pzb24nKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXNwb25zZS5qc29uKCkudGhlbihmdW5jdGlvbiAoanNvbikge1xuICAgICAgICAgICAgICAgICAgICBvVGhpcy5hcHBseUNvbXBsZXRlKHsgcmVzcG9uc2VKU09OOiBqc29uIH0sIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaC5pbmRleE9mKCcveG1sJykgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24gKHRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgb1RoaXMuYXBwbHlDb21wbGV0ZSh7IHJlc3BvbnNlWE1MOiBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLnBhcnNlWG1sKHRleHQpIH0sIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVuY3Rpb24gKHRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgb1RoaXMuYXBwbHlDb21wbGV0ZSh7IHJlc3BvbnNlVGV4dDogdGV4dCB9LCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKF90aGlzLl9weWRpbykge1xuICAgICAgICAgICAgICAgIF90aGlzLl9weWRpby5kaXNwbGF5TWVzc2FnZSgnRVJST1InLCAnTmV0d29yayBlcnJvciAnICsgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBcHBseSB0aGUgY29tcGxldGUgY2FsbGJhY2ssIHRyeSB0byBncmFiIG1heGltdW0gb2YgZXJyb3JzXG4gICAgICogQHBhcmFtIHBhcnNlZEJvZHkgVHJhbnNwb3RcbiAgICAgKi9cblxuICAgIENvbm5leGlvbi5wcm90b3R5cGUuYXBwbHlDb21wbGV0ZSA9IGZ1bmN0aW9uIGFwcGx5Q29tcGxldGUocGFyc2VkQm9keSwgcmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy5oaWRlTG9hZGVyKCk7XG4gICAgICAgIHZhciBweWRpbyA9IHRoaXMuX3B5ZGlvO1xuICAgICAgICB2YXIgbWVzc2FnZSA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRva2VuTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIHRvazEgPSBcIk9vb3BzLCBpdCBzZWVtcyB0aGF0IHlvdXIgc2VjdXJpdHkgdG9rZW4gaGFzIGV4cGlyZWQhIFBsZWFzZSAlcyBieSBoaXR0aW5nIHJlZnJlc2ggb3IgRjUgaW4geW91ciBicm93c2VyIVwiO1xuICAgICAgICB2YXIgdG9rMiA9IFwicmVsb2FkIHRoZSBwYWdlXCI7XG4gICAgICAgIGlmICh3aW5kb3cuTWVzc2FnZUhhc2ggJiYgd2luZG93Lk1lc3NhZ2VIYXNoWzQzN10pIHtcbiAgICAgICAgICAgIHRvazEgPSB3aW5kb3cuTWVzc2FnZUhhc2hbNDM3XTtcbiAgICAgICAgICAgIHRvazIgPSB3aW5kb3cuTWVzc2FnZUhhc2hbNDM4XTtcbiAgICAgICAgfVxuICAgICAgICB0b2tlbk1lc3NhZ2UgPSB0b2sxLnJlcGxhY2UoXCIlc1wiLCBcIjxhIGhyZWY9J2phdmFzY3JpcHQ6ZG9jdW1lbnQubG9jYXRpb24ucmVsb2FkKCknIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsnPlwiICsgdG9rMiArIFwiPC9hPlwiKTtcblxuICAgICAgICB2YXIgY3R5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC10eXBlJyk7XG4gICAgICAgIGlmIChwYXJzZWRCb2R5LnJlc3BvbnNlWE1MICYmIHBhcnNlZEJvZHkucmVzcG9uc2VYTUwuZG9jdW1lbnRFbGVtZW50ICYmIHBhcnNlZEJvZHkucmVzcG9uc2VYTUwuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lID09IFwicGFyc2VyZXJyb3JcIikge1xuXG4gICAgICAgICAgICBtZXNzYWdlID0gXCJQYXJzaW5nIGVycm9yIDogXFxuXCIgKyBwYXJzZWRCb2R5LnJlc3BvbnNlWE1MLmRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkLnRleHRDb250ZW50O1xuICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZEJvZHkucmVzcG9uc2VYTUwgJiYgcGFyc2VkQm9keS5yZXNwb25zZVhNTC5wYXJzZUVycm9yICYmIHBhcnNlZEJvZHkucmVzcG9uc2VYTUwucGFyc2VFcnJvci5lcnJvckNvZGUgIT0gMCkge1xuXG4gICAgICAgICAgICBtZXNzYWdlID0gXCJQYXJzaW5nIEVycm9yIDogXFxuXCIgKyBwYXJzZWRCb2R5LnJlc3BvbnNlWE1MLnBhcnNlRXJyb3IucmVhc29uO1xuICAgICAgICB9IGVsc2UgaWYgKGN0eXBlLmluZGV4T2YoXCJ0ZXh0L3htbFwiKSA+IC0xICYmIHBhcnNlZEJvZHkucmVzcG9uc2VYTUwgPT0gbnVsbCkge1xuXG4gICAgICAgICAgICBtZXNzYWdlID0gXCJFeHBlY3RlZCBYTUwgYnV0IGdvdCBlbXB0eSByZXNwb25zZSFcIjtcbiAgICAgICAgfSBlbHNlIGlmIChjdHlwZS5pbmRleE9mKFwidGV4dC94bWxcIikgPT0gLTEgJiYgY3R5cGUuaW5kZXhPZihcImFwcGxpY2F0aW9uL2pzb25cIikgPT0gLTEgJiYgcGFyc2VkQm9keS5yZXNwb25zZVRleHQuaW5kZXhPZihcIjxiPkZhdGFsIGVycm9yPC9iPlwiKSA+IC0xKSB7XG5cbiAgICAgICAgICAgIG1lc3NhZ2UgPSBwYXJzZWRCb2R5LnJlc3BvbnNlVGV4dC5yZXBsYWNlKFwiPGJyIC8+XCIsIFwiXCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSA1MDApIHtcblxuICAgICAgICAgICAgbWVzc2FnZSA9IFwiSW50ZXJuYWwgU2VydmVyIEVycm9yOiB5b3Ugc2hvdWxkIGNoZWNrIHlvdXIgd2ViIHNlcnZlciBsb2dzIHRvIGZpbmQgd2hhdCdzIGdvaW5nIHdyb25nIVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZXNzYWdlKSB7XG5cbiAgICAgICAgICAgIGlmIChtZXNzYWdlLnN0YXJ0c1dpdGgoXCJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlLlwiKSkge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSB0b2tlbk1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHlkaW8pIHtcbiAgICAgICAgICAgICAgICBweWRpby5kaXNwbGF5TWVzc2FnZShcIkVSUk9SXCIsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbGVydChtZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyc2VkQm9keS5yZXNwb25zZVhNTCAmJiBwYXJzZWRCb2R5LnJlc3BvbnNlWE1MLmRvY3VtZW50RWxlbWVudCkge1xuXG4gICAgICAgICAgICB2YXIgYXV0aE5vZGUgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZShwYXJzZWRCb2R5LnJlc3BvbnNlWE1MLmRvY3VtZW50RWxlbWVudCwgXCJyZXF1aXJlX2F1dGhcIik7XG4gICAgICAgICAgICBpZiAoYXV0aE5vZGUgJiYgcHlkaW8pIHtcbiAgICAgICAgICAgICAgICB2YXIgcm9vdCA9IHB5ZGlvLmdldENvbnRleHRIb2xkZXIoKS5nZXRSb290Tm9kZSgpO1xuICAgICAgICAgICAgICAgIGlmIChyb290KSB7XG4gICAgICAgICAgICAgICAgICAgIHB5ZGlvLmdldENvbnRleHRIb2xkZXIoKS5zZXRDb250ZXh0Tm9kZShyb290KTtcbiAgICAgICAgICAgICAgICAgICAgcm9vdC5jbGVhcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBweWRpby5nZXRDb250cm9sbGVyKCkuZmlyZUFjdGlvbignbG9nb3V0Jyk7XG4gICAgICAgICAgICAgICAgcHlkaW8uZ2V0Q29udHJvbGxlcigpLmZpcmVBY3Rpb24oJ2xvZ2luJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBtZXNzYWdlTm9kZSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHBhcnNlZEJvZHkucmVzcG9uc2VYTUwuZG9jdW1lbnRFbGVtZW50LCBcIm1lc3NhZ2VcIik7XG4gICAgICAgICAgICBpZiAobWVzc2FnZU5vZGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZVR5cGUgPSBtZXNzYWdlTm9kZS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VDb250ZW50ID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5nZXREb21Ob2RlVGV4dChtZXNzYWdlTm9kZSk7XG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VDb250ZW50LnN0YXJ0c1dpdGgoXCJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlLlwiKSkge1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlQ29udGVudCA9IHRva2VuTWVzc2FnZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHB5ZGlvKSB7XG4gICAgICAgICAgICAgICAgICAgIHB5ZGlvLmRpc3BsYXlNZXNzYWdlKG1lc3NhZ2VUeXBlLCBtZXNzYWdlQ29udGVudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VUeXBlID09IFwiRVJST1JcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobWVzc2FnZVR5cGUgKyBcIjpcIiArIG1lc3NhZ2VDb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZVR5cGUgPT0gXCJTVUNDRVNTXCIpIG1lc3NhZ2VOb2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobWVzc2FnZU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9uQ29tcGxldGUpIHtcblxuICAgICAgICAgICAgcGFyc2VkQm9keS5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgICAgICAgICBwYXJzZWRCb2R5LnJlc3BvbnNlT2JqZWN0ID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB0aGlzLm9uQ29tcGxldGUocGFyc2VkQm9keSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHB5ZGlvKSB7XG4gICAgICAgICAgICBweWRpby5maXJlKFwic2VydmVyX2Fuc3dlclwiLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLnVwbG9hZEZpbGUgPSBmdW5jdGlvbiB1cGxvYWRGaWxlKGZpbGUsIGZpbGVQYXJhbWV0ZXJOYW1lLCB1cGxvYWRVcmwpIHtcbiAgICAgICAgdmFyIG9uQ29tcGxldGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1szXTtcbiAgICAgICAgdmFyIG9uRXJyb3IgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1s0XTtcblxuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgb25Qcm9ncmVzcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNSB8fCBhcmd1bWVudHNbNV0gPT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uICgpIHt9IDogYXJndW1lbnRzWzVdO1xuICAgICAgICB2YXIgeGhyU2V0dGluZ3MgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDYgfHwgYXJndW1lbnRzWzZdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1s2XTtcblxuICAgICAgICB2YXIgeGhyID0gdGhpcy5pbml0aWFsaXplWEhSRm9yVXBsb2FkKHVwbG9hZFVybCwgb25Db21wbGV0ZSwgb25FcnJvciwgb25Qcm9ncmVzcywgeGhyU2V0dGluZ3MpO1xuICAgICAgICBpZiAoeGhyU2V0dGluZ3MgJiYgeGhyU2V0dGluZ3MubWV0aG9kID09PSAnUFVUJykge1xuICAgICAgICAgICAgeGhyLnNlbmQoZmlsZSk7XG4gICAgICAgICAgICByZXR1cm4geGhyO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3aW5kb3cuRm9ybURhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZEZpbGVVc2luZ0Zvcm1EYXRhKHhociwgZmlsZSwgZmlsZVBhcmFtZXRlck5hbWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5GaWxlUmVhZGVyKSB7XG4gICAgICAgICAgICB2YXIgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICBmaWxlUmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLnhoclNlbmRBc0JpbmFyeSh4aHIsIGZpbGUubmFtZSwgZS50YXJnZXQucmVzdWx0LCBmaWxlUGFyYW1ldGVyTmFtZSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZmlsZVJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsZS5nZXRBc0JpbmFyeSkge1xuICAgICAgICAgICAgdGhpcy54aHJTZW5kQXNCaW5hcnkoeGhyLCBmaWxlLm5hbWUsIGZpbGUuZ2V0QXNCaW5hcnkoKSwgZmlsZVBhcmFtZXRlck5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4aHI7XG4gICAgfTtcblxuICAgIENvbm5leGlvbi5wcm90b3R5cGUuaW5pdGlhbGl6ZVhIUkZvclVwbG9hZCA9IGZ1bmN0aW9uIGluaXRpYWxpemVYSFJGb3JVcGxvYWQodXJsLCBvbkNvbXBsZXRlLCBvbkVycm9yLCBvblByb2dyZXNzKSB7XG4gICAgICAgIHZhciB4aHJTZXR0aW5ncyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNCB8fCBhcmd1bWVudHNbNF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzRdO1xuXG4gICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgICAgdmFyIHVwbG9hZCA9IHhoci51cGxvYWQ7XG4gICAgICAgIGlmICh4aHJTZXR0aW5ncy53aXRoQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHVwbG9hZC5hZGRFdmVudExpc3RlbmVyKFwicHJvZ3Jlc3NcIiwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmICghZS5sZW5ndGhDb21wdXRhYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25Qcm9ncmVzcyhlKTtcbiAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuICAgICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgb25Db21wbGV0ZSh4aHIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9uRXJyb3IoeGhyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIHVwbG9hZC5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgb25FcnJvcih4aHIpO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgbWV0aG9kID0gJ1BPU1QnO1xuICAgICAgICBpZiAoeGhyU2V0dGluZ3MubWV0aG9kKSB7XG4gICAgICAgICAgICBtZXRob2QgPSB4aHJTZXR0aW5ncy5tZXRob2Q7XG4gICAgICAgIH1cbiAgICAgICAgeGhyLm9wZW4obWV0aG9kLCB1cmwsIHRydWUpO1xuICAgICAgICBpZiAoeGhyU2V0dGluZ3MuY3VzdG9tSGVhZGVycykge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoeGhyU2V0dGluZ3MuY3VzdG9tSGVhZGVycykuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGssIHhoclNldHRpbmdzLmN1c3RvbUhlYWRlcnNba10pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geGhyO1xuICAgIH07XG5cbiAgICBDb25uZXhpb24ucHJvdG90eXBlLnNlbmRGaWxlVXNpbmdGb3JtRGF0YSA9IGZ1bmN0aW9uIHNlbmRGaWxlVXNpbmdGb3JtRGF0YSh4aHIsIGZpbGUsIGZpbGVQYXJhbWV0ZXJOYW1lKSB7XG4gICAgICAgIHZhciBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZmlsZVBhcmFtZXRlck5hbWUsIGZpbGUpO1xuICAgICAgICB4aHIuc2VuZChmb3JtRGF0YSk7XG4gICAgfTtcblxuICAgIENvbm5leGlvbi5wcm90b3R5cGUueGhyU2VuZEFzQmluYXJ5ID0gZnVuY3Rpb24geGhyU2VuZEFzQmluYXJ5KHhociwgZmlsZU5hbWUsIGZpbGVEYXRhLCBmaWxlUGFyYW1ldGVyTmFtZSkge1xuICAgICAgICB2YXIgYm91bmRhcnkgPSAnLS0tLU11bHRpUGFydEZvcm1Cb3VuZGFyeScgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJtdWx0aXBhcnQvZm9ybS1kYXRhLCBib3VuZGFyeT1cIiArIGJvdW5kYXJ5KTtcblxuICAgICAgICB2YXIgYm9keSA9IFwiLS1cIiArIGJvdW5kYXJ5ICsgXCJcXHJcXG5cIjtcbiAgICAgICAgYm9keSArPSBcIkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0nXCIgKyBmaWxlUGFyYW1ldGVyTmFtZSArIFwiJzsgZmlsZW5hbWU9J1wiICsgdW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGZpbGVOYW1lKSkgKyBcIidcXHJcXG5cIjtcbiAgICAgICAgYm9keSArPSBcIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXFxyXFxuXFxyXFxuXCI7XG4gICAgICAgIGJvZHkgKz0gZmlsZURhdGEgKyBcIlxcclxcblwiO1xuICAgICAgICBib2R5ICs9IFwiLS1cIiArIGJvdW5kYXJ5ICsgXCItLVxcclxcblwiO1xuXG4gICAgICAgIHhoci5zZW5kQXNCaW5hcnkoYm9keSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBqYXZhc2NyaXB0IGxpYnJhcnlcbiAgICAgKiBAcGFyYW0gZmlsZU5hbWUgU3RyaW5nXG4gICAgICogQHBhcmFtIG9uTG9hZGVkQ29kZSBGdW5jdGlvbiBDYWxsYmFja1xuICAgICAgICAqIEBwYXJhbSBhU3luYyBCb29sZWFuIGxvYWQgbGlicmFyeSBhc3luY2hyb25lb3VzbHlcbiAgICAgKi9cblxuICAgIENvbm5leGlvbi5wcm90b3R5cGUubG9hZExpYnJhcnkgPSBmdW5jdGlvbiBsb2FkTGlicmFyeShmaWxlTmFtZSwgb25Mb2FkZWRDb2RlLCBhU3luYykge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICBpZiAod2luZG93LnB5ZGlvQm9vdHN0cmFwICYmIHdpbmRvdy5weWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzLmdldChcImFqeHBWZXJzaW9uXCIpICYmIGZpbGVOYW1lLmluZGV4T2YoXCI/XCIpID09PSAtMSkge1xuICAgICAgICAgICAgZmlsZU5hbWUgKz0gXCI/dj1cIiArIHdpbmRvdy5weWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzLmdldChcImFqeHBWZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1cmwgPSB0aGlzLl9saWJVcmwgPyB0aGlzLl9saWJVcmwgKyAnLycgKyBmaWxlTmFtZSA6IGZpbGVOYW1lO1xuICAgICAgICB2YXIgcHlkaW8gPSB0aGlzLl9weWRpbztcblxuICAgICAgICB2YXIgc2NyaXB0TG9hZGVkID0gZnVuY3Rpb24gc2NyaXB0TG9hZGVkKHNjcmlwdCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LmV4ZWNTY3JpcHQpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmV4ZWNTY3JpcHQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubXlfY29kZSA9IHNjcmlwdDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2NyaXB0X3RhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgICAgICAgICAgICBzY3JpcHRfdGFnLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0X3RhZy5pbm5lckhUTUwgPSAnZXZhbCh3aW5kb3cubXlfY29kZSknO1xuICAgICAgICAgICAgICAgICAgICBoZWFkLmFwcGVuZENoaWxkKHNjcmlwdF90YWcpO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgd2luZG93Lm15X2NvZGU7XG4gICAgICAgICAgICAgICAgICAgIGhlYWQucmVtb3ZlQ2hpbGQoc2NyaXB0X3RhZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvbkxvYWRlZENvZGUgIT0gbnVsbCkgb25Mb2FkZWRDb2RlKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgYWxlcnQoJ2Vycm9yIGxvYWRpbmcgJyArIGZpbGVOYW1lICsgJzonICsgZS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBpZiAoY29uc29sZSkgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChweWRpbykgcHlkaW8uZmlyZShcInNlcnZlcl9hbnN3ZXJcIik7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGFTeW5jKSB7XG4gICAgICAgICAgICB3aW5kb3cuZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ1xuICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoc2NyaXB0KSB7XG4gICAgICAgICAgICAgICAgc2NyaXB0TG9hZGVkKHNjcmlwdCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgLy8gU0hPVUxEIEJFIFJFTU9WRUQhIVxuICAgICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgICAgICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRMb2FkZWQoeGhyLnJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KCdlcnJvciBsb2FkaW5nICcgKyBmaWxlTmFtZSArICc6IFN0YXR1cyBjb2RlIHdhcyAnICsgeGhyLnN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzMyk7XG4gICAgICAgICAgICAgICAgeGhyLm9wZW4oXCJHRVRcIiwgdXJsLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgeGhyLnNlbmQoKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIENvbm5leGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENvbm5leGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX2dlbkFwaVVzZXJTZXJ2aWNlQXBpID0gcmVxdWlyZShcIi4vZ2VuL2FwaS9Vc2VyU2VydmljZUFwaVwiKTtcblxudmFyIF9nZW5BcGlVc2VyU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5BcGlVc2VyU2VydmljZUFwaSk7XG5cbnZhciBfZ2VuTW9kZWxSZXN0U2VhcmNoVXNlclJlcXVlc3QgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0XCIpO1xuXG52YXIgX2dlbk1vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0KTtcblxudmFyIF9nZW5Nb2RlbElkbVVzZXJTaW5nbGVRdWVyeSA9IHJlcXVpcmUoXCIuL2dlbi9tb2RlbC9JZG1Vc2VyU2luZ2xlUXVlcnlcIik7XG5cbnZhciBfZ2VuTW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuTW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkpO1xuXG52YXIgX2dlbk1vZGVsU2VydmljZU9wZXJhdGlvblR5cGUgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvU2VydmljZU9wZXJhdGlvblR5cGVcIik7XG5cbnZhciBfZ2VuTW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlKTtcblxudmFyIF9nZW5Nb2RlbElkbU5vZGVUeXBlID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL0lkbU5vZGVUeXBlXCIpO1xuXG52YXIgX2dlbk1vZGVsSWRtTm9kZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuTW9kZWxJZG1Ob2RlVHlwZSk7XG5cbnZhciBfZ2VuTW9kZWxJZG1Vc2VyID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL0lkbVVzZXJcIik7XG5cbnZhciBfZ2VuTW9kZWxJZG1Vc2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsSWRtVXNlcik7XG5cbnZhciBfdXRpbExhbmdVdGlscyA9IHJlcXVpcmUoXCIuLi91dGlsL0xhbmdVdGlsc1wiKTtcblxudmFyIF91dGlsTGFuZ1V0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxMYW5nVXRpbHMpO1xuXG52YXIgX2dlbkFwaVJvbGVTZXJ2aWNlQXBpID0gcmVxdWlyZShcIi4vZ2VuL2FwaS9Sb2xlU2VydmljZUFwaVwiKTtcblxudmFyIF9nZW5BcGlSb2xlU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5BcGlSb2xlU2VydmljZUFwaSk7XG5cbnZhciBfZ2VuTW9kZWxJZG1Sb2xlID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL0lkbVJvbGVcIik7XG5cbnZhciBfZ2VuTW9kZWxJZG1Sb2xlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsSWRtUm9sZSk7XG5cbnZhciBfZ2VuTW9kZWxSZXN0U2VhcmNoUm9sZVJlcXVlc3QgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0XCIpO1xuXG52YXIgX2dlbk1vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0KTtcblxudmFyIF9nZW5Nb2RlbElkbVJvbGVTaW5nbGVRdWVyeSA9IHJlcXVpcmUoXCIuL2dlbi9tb2RlbC9JZG1Sb2xlU2luZ2xlUXVlcnlcIik7XG5cbnZhciBfZ2VuTW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuTW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkpO1xuXG52YXIgX3V1aWQ0ID0gcmVxdWlyZSgndXVpZDQnKTtcblxudmFyIF91dWlkNDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dWlkNCk7XG5cbnZhciBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5XCIpO1xuXG52YXIgX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5KTtcblxudmFyIF9nZW5BcGlHcmFwaFNlcnZpY2VBcGkgPSByZXF1aXJlKFwiLi9nZW4vYXBpL0dyYXBoU2VydmljZUFwaVwiKTtcblxudmFyIF9nZW5BcGlHcmFwaFNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuQXBpR3JhcGhTZXJ2aWNlQXBpKTtcblxudmFyIElkbUFwaSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSWRtQXBpKHJlc3RDbGllbnQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbUFwaSk7XG5cbiAgICAgICAgdGhpcy5jbGllbnQgPSByZXN0Q2xpZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJMb2dpblxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8SWRtVXNlcj59XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmxvYWRVc2VyID0gZnVuY3Rpb24gbG9hZFVzZXIodXNlckxvZ2luKSB7XG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVVzZXJTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfZ2VuTW9kZWxSZXN0U2VhcmNoVXNlclJlcXVlc3QyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICByZXF1ZXN0Lk9wZXJhdGlvbiA9IF9nZW5Nb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlMltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCgnQU5EJyk7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcyA9IFtdO1xuICAgICAgICB2YXIgcXVlcnkgPSBuZXcgX2dlbk1vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcXVlcnkuTG9naW4gPSB1c2VyTG9naW47XG4gICAgICAgIHF1ZXJ5Lk5vZGVUeXBlID0gX2dlbk1vZGVsSWRtTm9kZVR5cGUyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KCdVU0VSJyk7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcy5wdXNoKHF1ZXJ5KTtcbiAgICAgICAgcmV0dXJuIGFwaS5zZWFyY2hVc2VycyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5Vc2VycyA/IGNvbGxlY3Rpb24uVXNlcnNbMF0gOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9sZVV1aWRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPElkbVJvbGU+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5sb2FkUm9sZSA9IGZ1bmN0aW9uIGxvYWRSb2xlKHJvbGVVdWlkKSB7XG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVJvbGVTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfZ2VuTW9kZWxSZXN0U2VhcmNoUm9sZVJlcXVlc3QyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbX2dlbk1vZGVsSWRtUm9sZVNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCh7IFV1aWQ6IFtyb2xlVXVpZF0gfSldO1xuICAgICAgICByZXR1cm4gYXBpLnNlYXJjaFJvbGVzKHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uLlJvbGVzID8gY29sbGVjdGlvbi5Sb2xlc1swXSA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBiYXNlR3JvdXAgc3RyaW5nXG4gICAgICogQHBhcmFtIGZpbHRlclN0cmluZyBzdHJpbmdcbiAgICAgKiBAcGFyYW0gcmVjdXJzaXZlIGJvb2xlYW5cbiAgICAgKiBAcGFyYW0gb2Zmc2V0IGludGVnZXJcbiAgICAgKiBAcGFyYW0gbGltaXQgaW50ZWdlclxuICAgICAqIEBwYXJhbSBwcm9maWxlIHN0cmluZyBmaWx0ZXIgYnkgcHJvZmlsZVxuICAgICAqIEByZXR1cm4gUHJvbWlzZTxJZG1Vc2VyW10+XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmxpc3RVc2VycyA9IGZ1bmN0aW9uIGxpc3RVc2VycygpIHtcbiAgICAgICAgdmFyIGJhc2VHcm91cCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/ICcvJyA6IGFyZ3VtZW50c1swXTtcbiAgICAgICAgdmFyIGZpbHRlclN0cmluZyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgcmVjdXJzaXZlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMl07XG4gICAgICAgIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzNdO1xuICAgICAgICB2YXIgbGltaXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyAtMSA6IGFyZ3VtZW50c1s0XTtcbiAgICAgICAgdmFyIHByb2ZpbGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDUgfHwgYXJndW1lbnRzWzVdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1s1XTtcblxuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcmVxdWVzdC5PcGVyYXRpb24gPSBfZ2VuTW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ0FORCcpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbXTtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gbmV3IF9nZW5Nb2RlbElkbVVzZXJTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIHF1ZXJ5Lkdyb3VwUGF0aCA9IGJhc2VHcm91cCB8fCAnLyc7XG4gICAgICAgIHF1ZXJ5LlJlY3Vyc2l2ZSA9IHJlY3Vyc2l2ZTtcbiAgICAgICAgcXVlcnkuTm9kZVR5cGUgPSBfZ2VuTW9kZWxJZG1Ob2RlVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ1VTRVInKTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocXVlcnkpO1xuXG4gICAgICAgIGlmIChmaWx0ZXJTdHJpbmcpIHtcbiAgICAgICAgICAgIHZhciBxdWVyeVN0cmluZyA9IG5ldyBfZ2VuTW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICAgICAgcXVlcnlTdHJpbmcuTG9naW4gPSBmaWx0ZXJTdHJpbmcgKyAnKic7XG4gICAgICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxdWVyeVN0cmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2ZpbGUpIHtcbiAgICAgICAgICAgIHZhciBleGNsdWRlID0gcHJvZmlsZVswXSA9PT0gJyEnO1xuICAgICAgICAgICAgdmFyIHByb2ZpbGVRID0gbmV3IF9nZW5Nb2RlbElkbVVzZXJTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgICAgICBwcm9maWxlUS5BdHRyaWJ1dGVOYW1lID0gJ3Byb2ZpbGUnO1xuICAgICAgICAgICAgcHJvZmlsZVEuQXR0cmlidXRlVmFsdWUgPSBleGNsdWRlID8gcHJvZmlsZS5zdWJzdHJpbmcoMSkgOiBwcm9maWxlO1xuICAgICAgICAgICAgaWYgKGV4Y2x1ZGUpIHtcbiAgICAgICAgICAgICAgICBwcm9maWxlUS5ub3QgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocHJvZmlsZVEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHF1ZXJ5MiA9IG5ldyBfZ2VuTW9kZWxJZG1Vc2VyU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICBxdWVyeTIuQXR0cmlidXRlTmFtZSA9ICdoaWRkZW4nO1xuICAgICAgICBxdWVyeTIuQXR0cmlidXRlVmFsdWUgPSAndHJ1ZSc7XG4gICAgICAgIHF1ZXJ5Mi5ub3QgPSB0cnVlO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxdWVyeTIpO1xuICAgICAgICBpZiAob2Zmc2V0ID4gMCkge1xuICAgICAgICAgICAgcmVxdWVzdC5PZmZzZXQgPSBvZmZzZXQgKyAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobGltaXQgPiAtMSkge1xuICAgICAgICAgICAgcmVxdWVzdC5MaW1pdCA9IGxpbWl0ICsgJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXBpLnNlYXJjaFVzZXJzKHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB7IFVzZXJzOiBjb2xsZWN0aW9uLlVzZXJzIHx8IFtdLCBUb3RhbDogY29sbGVjdGlvbi5Ub3RhbCwgT2Zmc2V0OiBvZmZzZXQsIExpbWl0OiBsaW1pdCB9O1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYmFzZUdyb3VwIHN0cmluZ1xuICAgICAqIEBwYXJhbSByZWN1cnNpdmUgYm9vbGVhblxuICAgICAqIEBwYXJhbSBvZmZzZXQgaW50ZWdlclxuICAgICAqIEBwYXJhbSBsaW1pdCBpbnRlZ2VyXG4gICAgICogQHJldHVybiBQcm9taXNlPFJlc3RVc2Vyc0NvbGxlY3Rpb24+XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmxpc3RVc2Vyc0dyb3VwcyA9IGZ1bmN0aW9uIGxpc3RVc2Vyc0dyb3VwcygpIHtcbiAgICAgICAgdmFyIGJhc2VHcm91cCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/ICcvJyA6IGFyZ3VtZW50c1swXTtcbiAgICAgICAgdmFyIHJlY3Vyc2l2ZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgb2Zmc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gMCA6IGFyZ3VtZW50c1syXTtcbiAgICAgICAgdmFyIGxpbWl0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gLTEgOiBhcmd1bWVudHNbM107XG5cbiAgICAgICAgdmFyIHAxID0gdGhpcy5saXN0R3JvdXBzKGJhc2VHcm91cCwgJycsIHJlY3Vyc2l2ZSwgMCwgMTAwMCk7XG4gICAgICAgIHZhciBwMiA9IHRoaXMubGlzdFVzZXJzKGJhc2VHcm91cCwgJycsIHJlY3Vyc2l2ZSwgb2Zmc2V0LCBsaW1pdCk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbcDEsIHAyXSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICB2YXIgcmVzR3JvdXBzID0gcmVzdWx0WzBdO1xuICAgICAgICAgICAgdmFyIHJlc1VzZXJzID0gcmVzdWx0WzFdO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIEdyb3VwczogcmVzR3JvdXBzLkdyb3VwcyB8fCBbXSxcbiAgICAgICAgICAgICAgICBVc2VyczogcmVzVXNlcnMuVXNlcnMgfHwgW10sXG4gICAgICAgICAgICAgICAgVG90YWw6IHJlc1VzZXJzLlRvdGFsLFxuICAgICAgICAgICAgICAgIE9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgICAgIExpbWl0OiBsaW1pdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8qXG4gICAgICAgIGNvbnN0IGFwaSA9IG5ldyBVc2VyU2VydmljZUFwaSh0aGlzLmNsaWVudCk7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUmVzdFNlYXJjaFVzZXJSZXF1ZXN0KCk7XG4gICAgICAgIHJlcXVlc3QuT3BlcmF0aW9uID0gU2VydmljZU9wZXJhdGlvblR5cGUuY29uc3RydWN0RnJvbU9iamVjdCgnQU5EJyk7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcyA9IFtdO1xuICAgICAgICBjb25zdCBxdWVyeSA9IG5ldyBJZG1Vc2VyU2luZ2xlUXVlcnkoKTtcbiAgICAgICAgcXVlcnkuR3JvdXBQYXRoID0gYmFzZUdyb3VwIHx8ICcvJztcbiAgICAgICAgcXVlcnkuUmVjdXJzaXZlID0gcmVjdXJzaXZlO1xuICAgICAgICBxdWVyeS5Ob2RlVHlwZSA9IElkbU5vZGVUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QoJ1VOS05PV04nKTtcbiAgICAgICAgcmVxdWVzdC5RdWVyaWVzLnB1c2gocXVlcnkpO1xuICAgICAgICAgY29uc3QgcXVlcnkyID0gbmV3IElkbVVzZXJTaW5nbGVRdWVyeSgpO1xuICAgICAgICBxdWVyeTIuQXR0cmlidXRlTmFtZSA9ICdoaWRkZW4nO1xuICAgICAgICBxdWVyeTIuQXR0cmlidXRlVmFsdWUgPSAndHJ1ZSc7XG4gICAgICAgIHF1ZXJ5Mi5ub3QgPSB0cnVlO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxdWVyeTIpO1xuICAgICAgICBpZihvZmZzZXQgPiAwKXtcbiAgICAgICAgICAgIHJlcXVlc3QuT2Zmc2V0ID0gb2Zmc2V0ICsgJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYobGltaXQgPiAtMSl7XG4gICAgICAgICAgICByZXF1ZXN0LkxpbWl0ID0gbGltaXQgKyAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcXVlc3QuTGltaXQgPSAnMTAwMDAnO1xuICAgICAgICB9XG4gICAgICAgICByZXR1cm4gYXBpLnNlYXJjaFVzZXJzKHJlcXVlc3QpO1xuICAgICAgICAqL1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSByb2xlSWQgc3RyaW5nXG4gICAgICogQHBhcmFtIG9mZnNldCBpbnRlZ2VyXG4gICAgICogQHBhcmFtIGxpbWl0IGludGVnZXJcbiAgICAgKiBAcmV0dXJuIFByb21pc2U8UmVzdFVzZXJzQ29sbGVjdGlvbj5cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUubGlzdFVzZXJzV2l0aFJvbGUgPSBmdW5jdGlvbiBsaXN0VXNlcnNXaXRoUm9sZShyb2xlSWQpIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbMV07XG4gICAgICAgIHZhciBsaW1pdCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IC0xIDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVVzZXJTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfZ2VuTW9kZWxSZXN0U2VhcmNoVXNlclJlcXVlc3QyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICByZXF1ZXN0Lk9wZXJhdGlvbiA9IF9nZW5Nb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlMltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCgnQU5EJyk7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcyA9IFtdO1xuICAgICAgICB2YXIgcXVlcnkgPSBuZXcgX2dlbk1vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcXVlcnkuR3JvdXBQYXRoID0gJy8nO1xuICAgICAgICBxdWVyeS5SZWN1cnNpdmUgPSB0cnVlO1xuICAgICAgICBxdWVyeS5Ob2RlVHlwZSA9IF9nZW5Nb2RlbElkbU5vZGVUeXBlMltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCgnVVNFUicpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxdWVyeSk7XG4gICAgICAgIHZhciBxdWVyeTIgPSBuZXcgX2dlbk1vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcXVlcnkyLkhhc1JvbGUgPSByb2xlSWQ7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcy5wdXNoKHF1ZXJ5Mik7XG5cbiAgICAgICAgaWYgKG9mZnNldCA+IDApIHtcbiAgICAgICAgICAgIHJlcXVlc3QuT2Zmc2V0ID0gb2Zmc2V0ICsgJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbWl0ID4gLTEpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuTGltaXQgPSBsaW1pdCArICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVxdWVzdC5MaW1pdCA9ICcxMDAnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFwaS5zZWFyY2hVc2VycyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4geyBVc2VyczogY29sbGVjdGlvbi5Vc2VycyB8fCBbXSwgVG90YWw6IGNvbGxlY3Rpb24uVG90YWwsIE9mZnNldDogb2Zmc2V0LCBMaW1pdDogbGltaXQgfTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGJhc2VHcm91cCBzdHJpbmdcbiAgICAgKiBAcGFyYW0gZmlsdGVyU3RyaW5nIHN0cmluZ1xuICAgICAqIEBwYXJhbSByZWN1cnNpdmUgYm9vbGVhblxuICAgICAqIEBwYXJhbSBvZmZzZXQgaW50ZWdlclxuICAgICAqIEBwYXJhbSBsaW1pdCBpbnRlZ2VyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxJZG1Vc2VyW10+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5saXN0R3JvdXBzID0gZnVuY3Rpb24gbGlzdEdyb3VwcygpIHtcbiAgICAgICAgdmFyIGJhc2VHcm91cCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/ICcvJyA6IGFyZ3VtZW50c1swXTtcbiAgICAgICAgdmFyIGZpbHRlclN0cmluZyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgcmVjdXJzaXZlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMl07XG4gICAgICAgIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzNdO1xuICAgICAgICB2YXIgbGltaXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyAtMSA6IGFyZ3VtZW50c1s0XTtcblxuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcmVxdWVzdC5PcGVyYXRpb24gPSBfZ2VuTW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ0FORCcpO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbXTtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gbmV3IF9nZW5Nb2RlbElkbVVzZXJTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIHF1ZXJ5Lkdyb3VwUGF0aCA9IGJhc2VHcm91cCB8fCAnLyc7XG4gICAgICAgIHF1ZXJ5LlJlY3Vyc2l2ZSA9IHJlY3Vyc2l2ZTtcbiAgICAgICAgcXVlcnkuTm9kZVR5cGUgPSBfZ2VuTW9kZWxJZG1Ob2RlVHlwZTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3QoJ0dST1VQJyk7XG4gICAgICAgIHJlcXVlc3QuUXVlcmllcy5wdXNoKHF1ZXJ5KTtcblxuICAgICAgICBpZiAoZmlsdGVyU3RyaW5nKSB7XG4gICAgICAgICAgICB2YXIgcXVlcnlTdHJpbmcgPSBuZXcgX2dlbk1vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nLkF0dHJpYnV0ZU5hbWUgPSAnZGlzcGxheU5hbWUnO1xuICAgICAgICAgICAgcXVlcnlTdHJpbmcuQXR0cmlidXRlVmFsdWUgPSBmaWx0ZXJTdHJpbmcgKyAnKic7XG4gICAgICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxdWVyeVN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2Zmc2V0ID4gMCkge1xuICAgICAgICAgICAgcmVxdWVzdC5PZmZzZXQgPSBvZmZzZXQgKyAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAobGltaXQgPiAtMSkge1xuICAgICAgICAgICAgcmVxdWVzdC5MaW1pdCA9IGxpbWl0ICsgJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXBpLnNlYXJjaFVzZXJzKHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4geyBHcm91cHM6IHZhbHVlLkdyb3VwcyB8fCBbXSwgVG90YWw6IHZhbHVlLlRvdGFsLCBPZmZzZXQ6IG9mZnNldCwgTGltaXQ6IGxpbWl0IH07XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaG93VGVjaG5pY2FsUm9sZXMgYm9vbGVhblxuICAgICAqIEBwYXJhbSBvZmZzZXQgaW50XG4gICAgICogQHBhcmFtIGxpbWl0IGludFxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUubGlzdFJvbGVzID0gZnVuY3Rpb24gbGlzdFJvbGVzKCkge1xuICAgICAgICB2YXIgc2hvd1RlY2huaWNhbFJvbGVzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMF07XG4gICAgICAgIHZhciBvZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgbGltaXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyAtMSA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlSb2xlU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgaWYgKG9mZnNldCA+IDApIHtcbiAgICAgICAgICAgIHJlcXVlc3QuT2Zmc2V0ID0gb2Zmc2V0ICsgJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbWl0ID4gLTEpIHtcbiAgICAgICAgICAgIHJlcXVlc3QuTGltaXQgPSBsaW1pdCArICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG93VGVjaG5pY2FsUm9sZXMpIHtcblxuICAgICAgICAgICAgcmV0dXJuIGFwaS5zZWFyY2hSb2xlcyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChjb2xsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbGwuUm9sZXMgfHwgW107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFeGNsdWRlIHRlY2ggcm9sZXMgYnV0IHN0aWxsIGxvYWQgUk9PVF9HUk9VUCByb2xlXG4gICAgICAgIHJlcXVlc3QuUXVlcmllcyA9IFtdO1xuICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcSA9IG5ldyBfZ2VuTW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICAgICAgcS5Jc0dyb3VwUm9sZSA9IHRydWU7XG4gICAgICAgICAgICBxLm5vdCA9IHRydWU7XG4gICAgICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxKTtcbiAgICAgICAgfVxuICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcSA9IG5ldyBfZ2VuTW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICAgICAgcS5Jc1VzZXJSb2xlID0gdHJ1ZTtcbiAgICAgICAgICAgIHEubm90ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJlcXVlc3QuUXVlcmllcy5wdXNoKHEpO1xuICAgICAgICB9XG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhciBxID0gbmV3IF9nZW5Nb2RlbElkbVJvbGVTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgICAgICBxLklzVGVhbSA9IHRydWU7XG4gICAgICAgICAgICBxLm5vdCA9IHRydWU7XG4gICAgICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxKTtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0Lk9wZXJhdGlvbiA9IF9nZW5Nb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlMltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCgnQU5EJyk7XG5cbiAgICAgICAgdmFyIHAxID0gYXBpLnNlYXJjaFJvbGVzKHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKGNvbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xsLlJvbGVzIHx8IFtdO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHAyID0gdGhpcy5sb2FkUm9sZSgnUk9PVF9HUk9VUCcpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3AxLCBwMl0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgdmFyIHJvbGVzID0gcmVzdWx0WzBdO1xuICAgICAgICAgICAgaWYgKHJlc3VsdFsxXSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJvbGVzID0gW3Jlc3VsdFsxXV0uY29uY2F0KHJvbGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByb2xlcztcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbHRlclN0cmluZ1xuICAgICAqIEBwYXJhbSBvZmZzZXRcbiAgICAgKiBAcGFyYW0gbGltaXRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmxpc3RUZWFtcyA9IGZ1bmN0aW9uIGxpc3RUZWFtcygpIHtcbiAgICAgICAgdmFyIGZpbHRlclN0cmluZyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzBdO1xuICAgICAgICB2YXIgb2Zmc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gMCA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIGxpbWl0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gLTEgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpUm9sZVNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IF9nZW5Nb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdDJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIGlmIChvZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICByZXF1ZXN0Lk9mZnNldCA9IG9mZnNldCArICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaW1pdCA+IC0xKSB7XG4gICAgICAgICAgICByZXF1ZXN0LkxpbWl0ID0gbGltaXQgKyAnJztcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbXTtcbiAgICAgICAgdmFyIHEgPSBuZXcgX2dlbk1vZGVsSWRtUm9sZVNpbmdsZVF1ZXJ5MltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgcS5Jc1RlYW0gPSB0cnVlO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMucHVzaChxKTtcbiAgICAgICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgICAgICAgdmFyIHEyID0gbmV3IF9nZW5Nb2RlbElkbVJvbGVTaW5nbGVRdWVyeTJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgICAgICBxMi5MYWJlbCA9IGZpbHRlclN0cmluZyArICcqJztcbiAgICAgICAgICAgIHJlcXVlc3QuUXVlcmllcy5wdXNoKHEyKTtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0Lk9wZXJhdGlvbiA9IF9nZW5Nb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlMltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCgnQU5EJyk7XG5cbiAgICAgICAgcmV0dXJuIGFwaS5zZWFyY2hSb2xlcyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChjb2xsKSB7XG4gICAgICAgICAgICByZXR1cm4geyBUZWFtczogY29sbC5Sb2xlcyB8fCBbXSwgVG90YWw6IGNvbGwuVG90YWwsIE9mZnNldDogb2Zmc2V0LCBMaW1pdDogbGltaXQgfTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGJhc2VHcm91cFxuICAgICAqIEBwYXJhbSBncm91cElkZW50aWZpZXJcbiAgICAgKiBAcGFyYW0gZGlzcGxheU5hbWVcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5jcmVhdGVHcm91cCA9IGZ1bmN0aW9uIGNyZWF0ZUdyb3VwKGJhc2VHcm91cCwgZ3JvdXBJZGVudGlmaWVyLCBkaXNwbGF5TmFtZSkge1xuICAgICAgICBpZiAoYmFzZUdyb3VwID09PSB1bmRlZmluZWQpIGJhc2VHcm91cCA9ICcvJztcblxuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgdmFyIG9iamVjdCA9IG5ldyBfZ2VuTW9kZWxJZG1Vc2VyMltcImRlZmF1bHRcIl0oKTtcbiAgICAgICAgb2JqZWN0LklzR3JvdXAgPSB0cnVlO1xuICAgICAgICBvYmplY3QuR3JvdXBQYXRoID0gYmFzZUdyb3VwIHx8ICcvJztcbiAgICAgICAgb2JqZWN0Lkdyb3VwTGFiZWwgPSBncm91cElkZW50aWZpZXI7XG4gICAgICAgIG9iamVjdC5BdHRyaWJ1dGVzID0geyBcImRpc3BsYXlOYW1lXCI6IGRpc3BsYXlOYW1lIH07XG4gICAgICAgIHJldHVybiBhcGkucHV0VXNlcihncm91cElkZW50aWZpZXIsIG9iamVjdCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGJhc2VHcm91cCBzdHJpbmdcbiAgICAgKiBAcGFyYW0gbG9naW4gc3RyaW5nXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIHN0cmluZ1xuICAgICAqIEBwYXJhbSBwcm9maWxlIHN0cmluZ1xuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLmNyZWF0ZVVzZXIgPSBmdW5jdGlvbiBjcmVhdGVVc2VyKGJhc2VHcm91cCwgbG9naW4sIHBhc3N3b3JkKSB7XG4gICAgICAgIGlmIChiYXNlR3JvdXAgPT09IHVuZGVmaW5lZCkgYmFzZUdyb3VwID0gJy8nO1xuICAgICAgICB2YXIgcHJvZmlsZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/ICdzdGFuZGFyZCcgOiBhcmd1bWVudHNbM107XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpVXNlclNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIHZhciBvYmplY3QgPSBuZXcgX2dlbk1vZGVsSWRtVXNlcjJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIG9iamVjdC5Hcm91cFBhdGggPSBiYXNlR3JvdXA7XG4gICAgICAgIG9iamVjdC5Mb2dpbiA9IGxvZ2luO1xuICAgICAgICBvYmplY3QuUGFzc3dvcmQgPSBwYXNzd29yZDtcbiAgICAgICAgb2JqZWN0LkF0dHJpYnV0ZXMgPSB7IHByb2ZpbGU6IHByb2ZpbGUgfTtcbiAgICAgICAgcmV0dXJuIGFwaS5wdXRVc2VyKGxvZ2luLCBvYmplY3QpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhIHsqfVxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzRGVmIFtdXG4gICAgICogQHBhcmFtIGV4aXN0aW5nVXNlciB7SWRtVXNlcn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUucHV0RXh0ZXJuYWxVc2VyID0gZnVuY3Rpb24gcHV0RXh0ZXJuYWxVc2VyKGRhdGEsIHBhcmFtZXRlcnNEZWYpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgZXhpc3RpbmdVc2VyID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICB2YXIgaWRtVXNlciA9IGV4aXN0aW5nVXNlciB8fCBuZXcgX2dlbk1vZGVsSWRtVXNlcjJbXCJkZWZhdWx0XCJdKCk7XG4gICAgICAgIGlkbVVzZXIuQXR0cmlidXRlcyA9IGlkbVVzZXIuQXR0cmlidXRlcyB8fCB7fTtcbiAgICAgICAgaWRtVXNlci5Sb2xlcyA9IGlkbVVzZXIuUm9sZXMgfHwgW107XG4gICAgICAgIGlkbVVzZXIuQXR0cmlidXRlc1tcInByb2ZpbGVcIl0gPSBcInNoYXJlZFwiO1xuXG4gICAgICAgIHBhcmFtZXRlcnNEZWYuZm9yRWFjaChmdW5jdGlvbiAocGFyYW0pIHtcbiAgICAgICAgICAgIHZhciBuYW1lID0gcGFyYW0ubmFtZTtcbiAgICAgICAgICAgIHZhciBJZG1Vc2VyRmllbGQgPSBwYXJhbS5JZG1Vc2VyRmllbGQ7XG4gICAgICAgICAgICB2YXIgc2NvcGUgPSBwYXJhbS5zY29wZTtcbiAgICAgICAgICAgIHZhciBwbHVnaW5JZCA9IHBhcmFtLnBsdWdpbklkO1xuXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW25hbWVdO1xuICAgICAgICAgICAgaWYgKElkbVVzZXJGaWVsZCkge1xuICAgICAgICAgICAgICAgIGlkbVVzZXJbSWRtVXNlckZpZWxkXSA9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzY29wZSA9PT0gJ3VzZXInKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWRtVXNlci5BdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBsdWdpbklkKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGJlIHJlZGlzcGF0Y2hlZCB0byB1c2VyIHJvbGUgaW4gYmFja2VuZFxuICAgICAgICAgICAgICAgIGlkbVVzZXIuQXR0cmlidXRlc1tcInBhcmFtZXRlcjpcIiArIHBsdWdpbklkICsgXCI6XCIgKyBuYW1lXSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBweWRpby51c2VyLmdldElkbVVzZXIoKS50aGVuKGZ1bmN0aW9uIChjcnRVc2VyKSB7XG4gICAgICAgICAgICBpZG1Vc2VyLkdyb3VwUGF0aCA9IGNydFVzZXIuR3JvdXBQYXRoO1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLnBvbGljaWVzRm9yRXh0ZXJuYWxVc2VyKHB5ZGlvLnVzZXIsIGlkbVVzZXIuTG9naW4pLnRoZW4oZnVuY3Rpb24gKHBvbGljaWVzKSB7XG4gICAgICAgICAgICAgICAgaWRtVXNlci5Qb2xpY2llcyA9IHBvbGljaWVzO1xuICAgICAgICAgICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVVzZXJTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0oX3RoaXMuY2xpZW50KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBpLnB1dFVzZXIoaWRtVXNlci5Mb2dpbiwgaWRtVXNlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJMb2dpblxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8UmVzdFJlbGF0aW9uUmVzcG9uc2U+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5sb2FkVXNlckdyYXBoID0gZnVuY3Rpb24gbG9hZFVzZXJHcmFwaCh1c2VyTG9naW4pIHtcbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpR3JhcGhTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICByZXR1cm4gYXBpLnJlbGF0aW9uKHVzZXJMb2dpbik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIHJvbGUgZnJvbSBzY3JhdGNoXG4gICAgICogQHBhcmFtIHJvbGVMYWJlbCBzdHJpbmdcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5jcmVhdGVSb2xlID0gZnVuY3Rpb24gY3JlYXRlUm9sZShyb2xlTGFiZWwpIHtcbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpUm9sZVNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIHZhciBpZG1Sb2xlID0gbmV3IF9nZW5Nb2RlbElkbVJvbGUyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICBpZG1Sb2xlLlV1aWQgPSBfdXVpZDQyW1wiZGVmYXVsdFwiXS5zeW5jKCk7XG4gICAgICAgIGlkbVJvbGUuTGFiZWwgPSByb2xlTGFiZWw7XG4gICAgICAgIHJldHVybiBhcGkuc2V0Um9sZShpZG1Sb2xlLlV1aWQsIGlkbVJvbGUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZG1Vc2VyIHtJZG1Vc2VyfVxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLnVwZGF0ZUlkbVVzZXIgPSBmdW5jdGlvbiB1cGRhdGVJZG1Vc2VyKGlkbVVzZXIpIHtcbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfZ2VuQXBpVXNlclNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIGlmIChpZG1Vc2VyLklzR3JvdXApIHtcbiAgICAgICAgICAgIHJldHVybiBhcGkucHV0VXNlcihpZG1Vc2VyLkdyb3VwTGFiZWwsIGlkbVVzZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFwaS5wdXRVc2VyKGlkbVVzZXIuTG9naW4sIGlkbVVzZXIpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkbVVzZXIge0lkbVVzZXJ9XG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUuZGVsZXRlSWRtVXNlciA9IGZ1bmN0aW9uIGRlbGV0ZUlkbVVzZXIoaWRtVXNlcikge1xuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlVc2VyU2VydmljZUFwaTJbXCJkZWZhdWx0XCJdKHRoaXMuY2xpZW50KTtcbiAgICAgICAgaWYgKGlkbVVzZXIuSXNHcm91cCkge1xuICAgICAgICAgICAgdmFyIGdQYXRoID0gX3V0aWxMYW5nVXRpbHMyW1wiZGVmYXVsdFwiXS50cmltUmlnaHQoaWRtVXNlci5Hcm91cFBhdGgsICcvJykgKyAnLycgKyBpZG1Vc2VyLkdyb3VwTGFiZWwgKyAnLyc7XG4gICAgICAgICAgICBpZiAoZ1BhdGggPT09ICcvJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnY2Fubm90IGRlbGV0ZSByb290IGdyb3VwIScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFwaS5kZWxldGVVc2VyKF91dGlsTGFuZ1V0aWxzMltcImRlZmF1bHRcIl0udHJpbUxlZnQoZ1BhdGgsICcvJykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFwaS5kZWxldGVVc2VyKGlkbVVzZXIuTG9naW4pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhIHJvbGUgYnkgSWRcbiAgICAgKiBAcGFyYW0gcm9sZUlkXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUuZGVsZXRlUm9sZSA9IGZ1bmN0aW9uIGRlbGV0ZVJvbGUocm9sZUlkKSB7XG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVJvbGVTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICByZXR1cm4gYXBpLmRlbGV0ZVJvbGUocm9sZUlkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGVhbU5hbWUgc3RyaW5nXG4gICAgICogQHBhcmFtIHVzZXJJZHMgYXJyYXlcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgb3B0aW9uYWwgY2FsbGJhY2tcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFQ+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5zYXZlU2VsZWN0aW9uQXNUZWFtID0gZnVuY3Rpb24gc2F2ZVNlbGVjdGlvbkFzVGVhbSh0ZWFtTmFtZSwgdXNlcklkcywgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucG9saWNpZXNGb3JVbmlxdWVVc2VyKHB5ZGlvLnVzZXIpLnRoZW4oZnVuY3Rpb24gKHBvbGljaWVzKSB7XG4gICAgICAgICAgICB2YXIgcm9sZUFwaSA9IG5ldyBfZ2VuQXBpUm9sZVNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXShfdGhpczIuY2xpZW50KTtcbiAgICAgICAgICAgIHZhciByb2xlID0gbmV3IF9nZW5Nb2RlbElkbVJvbGUyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICAgICAgcm9sZS5VdWlkID0gX3V0aWxMYW5nVXRpbHMyW1wiZGVmYXVsdFwiXS5jb21wdXRlU3RyaW5nU2x1Zyh0ZWFtTmFtZSkgKyBcIi1cIiArIF91dWlkNDJbXCJkZWZhdWx0XCJdLnN5bmMoKS5zdWJzdHIoMCwgNCk7XG4gICAgICAgICAgICByb2xlLkxhYmVsID0gdGVhbU5hbWU7XG4gICAgICAgICAgICByb2xlLklzVGVhbSA9IHRydWU7XG4gICAgICAgICAgICByb2xlLlBvbGljaWVzID0gcG9saWNpZXM7XG4gICAgICAgICAgICByZXR1cm4gcm9sZUFwaS5zZXRSb2xlKHJvbGUuVXVpZCwgcm9sZSkudGhlbihmdW5jdGlvbiAocikge1xuICAgICAgICAgICAgICAgIHZhciBwcyA9IHVzZXJJZHMubWFwKGZ1bmN0aW9uICh1c2VySWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzMi5hZGRVc2VyVG9UZWFtKHJvbGUuVXVpZCwgdXNlcklkLCBudWxsKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHMpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHRlYW1JZFxuICAgICAqIEBwYXJhbSB1c2VyTG9naW5cbiAgICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFthbnkgLCBhbnldPn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUuYWRkVXNlclRvVGVhbSA9IGZ1bmN0aW9uIGFkZFVzZXJUb1RlYW0odGVhbUlkLCB1c2VyTG9naW4sIGNhbGxiYWNrKSB7XG5cbiAgICAgICAgdmFyIHVzZXJBcGkgPSBuZXcgX2dlbkFwaVVzZXJTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICB2YXIgcDEgPSB0aGlzLmxvYWRVc2VyKHVzZXJMb2dpbik7XG4gICAgICAgIHZhciBwMiA9IHRoaXMubG9hZFJvbGUodGVhbUlkKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtwMSwgcDJdKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHZhciB1c2VyID0gcmVzdWx0WzBdO1xuICAgICAgICAgICAgdmFyIHJvbGUgPSByZXN1bHRbMV07XG5cbiAgICAgICAgICAgIGlmICghdXNlciB8fCAhcm9sZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbmQgdXNlciBvciB0ZWFtIScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXNlci5Sb2xlcyA9IHVzZXIuUm9sZXMgfHwgW107XG4gICAgICAgICAgICB1c2VyLlJvbGVzLnB1c2gocm9sZSk7XG4gICAgICAgICAgICByZXR1cm4gdXNlckFwaS5wdXRSb2xlcyh1c2VyTG9naW4sIHVzZXIpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGVhbUlkXG4gICAgICogQHBhcmFtIHVzZXJMb2dpblxuICAgICAqIEBwYXJhbSBjYWxsYmFja1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8W2FueSAsIGFueV0+fVxuICAgICAqL1xuXG4gICAgSWRtQXBpLnByb3RvdHlwZS5yZW1vdmVVc2VyRnJvbVRlYW0gPSBmdW5jdGlvbiByZW1vdmVVc2VyRnJvbVRlYW0odGVhbUlkLCB1c2VyTG9naW4sIGNhbGxiYWNrKSB7XG5cbiAgICAgICAgdmFyIHVzZXJBcGkgPSBuZXcgX2dlbkFwaVVzZXJTZXJ2aWNlQXBpMltcImRlZmF1bHRcIl0odGhpcy5jbGllbnQpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkVXNlcih1c2VyTG9naW4pLnRoZW4oZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgIGlmICghdSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbmQgdXNlciEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHUuUm9sZXMgPSB1LlJvbGVzIHx8IFtdO1xuICAgICAgICAgICAgdS5Sb2xlcyA9IHUuUm9sZXMuZmlsdGVyKGZ1bmN0aW9uIChyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHIuVXVpZCAhPT0gdGVhbUlkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKHUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVzZXJBcGkucHV0Um9sZXModXNlckxvZ2luLCB1KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHRlYW1JZFxuICAgICAqIEBwYXJhbSBuZXdMYWJlbFxuICAgICAqIEBwYXJhbSBjYWxsYmFja1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8SWRtUm9sZT59XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLnVwZGF0ZVRlYW1MYWJlbCA9IGZ1bmN0aW9uIHVwZGF0ZVRlYW1MYWJlbCh0ZWFtSWQsIG5ld0xhYmVsLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgcm9sZUFwaSA9IG5ldyBfZ2VuQXBpUm9sZVNlcnZpY2VBcGkyW1wiZGVmYXVsdFwiXSh0aGlzLmNsaWVudCk7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRSb2xlKHRlYW1JZCkudGhlbihmdW5jdGlvbiAocikge1xuICAgICAgICAgICAgaWYgKCFyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmluZCB0ZWFtIScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgci5MYWJlbCA9IG5ld0xhYmVsO1xuICAgICAgICAgICAgcmV0dXJuIHJvbGVBcGkuc2V0Um9sZShyLlV1aWQsIHIpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY3VycmVudFVzZXJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5Pn1cbiAgICAgKi9cblxuICAgIElkbUFwaS5wcm90b3R5cGUucG9saWNpZXNGb3JVbmlxdWVVc2VyID0gZnVuY3Rpb24gcG9saWNpZXNGb3JVbmlxdWVVc2VyKGN1cnJlbnRVc2VyKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50VXNlci5nZXRJZG1Vc2VyKCkudGhlbihmdW5jdGlvbiAoaWRtVXNlcikge1xuICAgICAgICAgICAgcmV0dXJuIFtfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBpZG1Vc2VyLlV1aWQsXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnT1dORVInLFxuICAgICAgICAgICAgICAgIEVmZmVjdDogJ2FsbG93J1xuICAgICAgICAgICAgfSksIF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3Qoe1xuICAgICAgICAgICAgICAgIFN1YmplY3Q6IFwidXNlcjpcIiArIGlkbVVzZXIuTG9naW4sXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnUkVBRCcsXG4gICAgICAgICAgICAgICAgRWZmZWN0OiAnYWxsb3cnXG4gICAgICAgICAgICB9KSwgX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5MltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCh7XG4gICAgICAgICAgICAgICAgU3ViamVjdDogXCJ1c2VyOlwiICsgaWRtVXNlci5Mb2dpbixcbiAgICAgICAgICAgICAgICBBY3Rpb246ICdXUklURScsXG4gICAgICAgICAgICAgICAgRWZmZWN0OiAnYWxsb3cnXG4gICAgICAgICAgICB9KSwgX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5MltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCh7XG4gICAgICAgICAgICAgICAgU3ViamVjdDogXCJwcm9maWxlOmFkbWluXCIsXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnV1JJVEUnLFxuICAgICAgICAgICAgICAgIEVmZmVjdDogJ2FsbG93J1xuICAgICAgICAgICAgfSksIF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3Qoe1xuICAgICAgICAgICAgICAgIFN1YmplY3Q6IFwicHJvZmlsZTphZG1pblwiLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ1JFQUQnLFxuICAgICAgICAgICAgICAgIEVmZmVjdDogJ2FsbG93J1xuICAgICAgICAgICAgfSldO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY3VycmVudFVzZXJcbiAgICAgKiBAcGFyYW0gbmV3VXNlckxvZ2luXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheT59XG4gICAgICovXG5cbiAgICBJZG1BcGkucHJvdG90eXBlLnBvbGljaWVzRm9yRXh0ZXJuYWxVc2VyID0gZnVuY3Rpb24gcG9saWNpZXNGb3JFeHRlcm5hbFVzZXIoY3VycmVudFVzZXIsIG5ld1VzZXJMb2dpbikge1xuICAgICAgICByZXR1cm4gY3VycmVudFVzZXIuZ2V0SWRtVXNlcigpLnRoZW4oZnVuY3Rpb24gKGlkbVVzZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBbX2dlbk1vZGVsU2VydmljZVJlc291cmNlUG9saWN5MltcImRlZmF1bHRcIl0uY29uc3RydWN0RnJvbU9iamVjdCh7XG4gICAgICAgICAgICAgICAgU3ViamVjdDogaWRtVXNlci5VdWlkLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ09XTkVSJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pLCBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBcInVzZXI6XCIgKyBpZG1Vc2VyLkxvZ2luLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ1JFQUQnLFxuICAgICAgICAgICAgICAgIEVmZmVjdDogJ2FsbG93J1xuICAgICAgICAgICAgfSksIF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3Qoe1xuICAgICAgICAgICAgICAgIFN1YmplY3Q6IFwidXNlcjpcIiArIGlkbVVzZXIuTG9naW4sXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnV1JJVEUnLFxuICAgICAgICAgICAgICAgIEVmZmVjdDogJ2FsbG93J1xuICAgICAgICAgICAgfSksIF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3Qoe1xuICAgICAgICAgICAgICAgIFN1YmplY3Q6IFwidXNlcjpcIiArIG5ld1VzZXJMb2dpbixcbiAgICAgICAgICAgICAgICBBY3Rpb246ICdSRUFEJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pLCBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBcInVzZXI6XCIgKyBuZXdVc2VyTG9naW4sXG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnV1JJVEUnLFxuICAgICAgICAgICAgICAgIEVmZmVjdDogJ2FsbG93J1xuICAgICAgICAgICAgfSksIF9nZW5Nb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbXCJkZWZhdWx0XCJdLmNvbnN0cnVjdEZyb21PYmplY3Qoe1xuICAgICAgICAgICAgICAgIFN1YmplY3Q6IFwicHJvZmlsZTphZG1pblwiLFxuICAgICAgICAgICAgICAgIEFjdGlvbjogJ1dSSVRFJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pLCBfZ2VuTW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyW1wiZGVmYXVsdFwiXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KHtcbiAgICAgICAgICAgICAgICBTdWJqZWN0OiBcInByb2ZpbGU6YWRtaW5cIixcbiAgICAgICAgICAgICAgICBBY3Rpb246ICdSRUFEJyxcbiAgICAgICAgICAgICAgICBFZmZlY3Q6ICdhbGxvdydcbiAgICAgICAgICAgIH0pXTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBJZG1BcGk7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IElkbUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfbGFuZ09ic2VydmFibGUgPSByZXF1aXJlKCcuLi9sYW5nL09ic2VydmFibGUnKTtcblxudmFyIF9sYW5nT2JzZXJ2YWJsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nT2JzZXJ2YWJsZSk7XG5cbi8qKlxuICogQVBJIENsaWVudFxuICovXG5cbnZhciBNZXRhQ2FjaGVTZXJ2aWNlID0gKGZ1bmN0aW9uIChfT2JzZXJ2YWJsZSkge1xuICAgIF9pbmhlcml0cyhNZXRhQ2FjaGVTZXJ2aWNlLCBfT2JzZXJ2YWJsZSk7XG5cbiAgICBNZXRhQ2FjaGVTZXJ2aWNlLmdldEluc3RhbmNlID0gZnVuY3Rpb24gZ2V0SW5zdGFuY2UoKSB7XG4gICAgICAgIGlmICghTWV0YUNhY2hlU2VydmljZS5JTlNUQU5DRSkge1xuICAgICAgICAgICAgTWV0YUNhY2hlU2VydmljZS5JTlNUQU5DRSA9IG5ldyBNZXRhQ2FjaGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1ldGFDYWNoZVNlcnZpY2UuSU5TVEFOQ0U7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIE1ldGFDYWNoZVNlcnZpY2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNZXRhQ2FjaGVTZXJ2aWNlKTtcblxuICAgICAgICBfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuICAgICAgICB0aGlzLl9zdHJlYW1zID0gbmV3IE1hcCgpO1xuICAgIH1cblxuICAgIE1ldGFDYWNoZVNlcnZpY2UucHJvdG90eXBlLmhhc0tleSA9IGZ1bmN0aW9uIGhhc0tleShzdHJlYW1OYW1lLCBrZXlOYW1lKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkuZ2V0KCdkYXRhJykuaGFzKGtleU5hbWUpO1xuICAgIH07XG5cbiAgICBNZXRhQ2FjaGVTZXJ2aWNlLnByb3RvdHlwZS5nZXRCeUtleSA9IGZ1bmN0aW9uIGdldEJ5S2V5KHN0cmVhbU5hbWUsIGtleU5hbWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdHJlYW1zLmdldChzdHJlYW1OYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0cmVhbXMuZ2V0KHN0cmVhbU5hbWUpLmdldCgnZGF0YScpLmdldChrZXlOYW1lKTtcbiAgICB9O1xuXG4gICAgTWV0YUNhY2hlU2VydmljZS5wcm90b3R5cGUuZGVsZXRlS2V5ID0gZnVuY3Rpb24gZGVsZXRlS2V5KHN0cmVhbU5hbWUsIGtleU5hbWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdHJlYW1zLmdldChzdHJlYW1OYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N0cmVhbXMuZ2V0KHN0cmVhbU5hbWUpLmdldCgnZGF0YScpWydkZWxldGUnXShrZXlOYW1lKTtcbiAgICB9O1xuXG4gICAgTWV0YUNhY2hlU2VydmljZS5wcm90b3R5cGUuc2V0S2V5ID0gZnVuY3Rpb24gc2V0S2V5KHN0cmVhbU5hbWUsIGtleU5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGlmICghdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCdTdHJlYW0gJyArIHN0cmVhbU5hbWUgKyAnIG5vdCByZWdpc3RlcmVkLCBwbGVhc2UgcmVnaXN0ZXIgZmlyc3QnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zdHJlYW1zLmdldChzdHJlYW1OYW1lKS5nZXQoJ2RhdGEnKS5zZXQoa2V5TmFtZSwgdmFsdWUpO1xuICAgIH07XG5cbiAgICBNZXRhQ2FjaGVTZXJ2aWNlLnByb3RvdHlwZS5jbGVhck1ldGFTdHJlYW1LZXlzID0gZnVuY3Rpb24gY2xlYXJNZXRhU3RyZWFtS2V5cyhzdHJlYW1OYW1lKSB7XG4gICAgICAgIGlmICh0aGlzLl9zdHJlYW1zLmhhcyhzdHJlYW1OYW1lKSkge1xuICAgICAgICAgICAgdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkuc2V0KCdkYXRhJywgbmV3IE1hcCgpKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBNZXRhQ2FjaGVTZXJ2aWNlLnByb3RvdHlwZS5yZWdpc3Rlck1ldGFTdHJlYW0gPSBmdW5jdGlvbiByZWdpc3Rlck1ldGFTdHJlYW0oc3RyZWFtTmFtZSwgZXhwaXJhdGlvblBvbGljeSkge1xuICAgICAgICBpZiAodGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF0YSA9IG5ldyBNYXAoKTtcbiAgICAgICAgZGF0YS5zZXQoJ2V4cGlyYXRpb25Qb2xpY3knLCBleHBpcmF0aW9uUG9saWN5KTtcbiAgICAgICAgZGF0YS5zZXQoJ2RhdGEnLCBuZXcgTWFwKCkpO1xuICAgICAgICB0aGlzLl9zdHJlYW1zLnNldChzdHJlYW1OYW1lLCBkYXRhKTtcbiAgICAgICAgcHlkaW8ub2JzZXJ2ZU9uY2UoXCJyZXBvc2l0b3J5X2xpc3RfcmVmcmVzaGVkXCIsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvLyBBbHdheXMga2VlcCB0aGUgY2FjaGUgYXQgd29ya3NwYWNlIHNjb3BlXG4gICAgICAgICAgICB0aGlzLl9zdHJlYW1zWydkZWxldGUnXShzdHJlYW1OYW1lKTtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJNZXRhU3RyZWFtKHN0cmVhbU5hbWUsIGV4cGlyYXRpb25Qb2xpY3kpOyAvLyBSZS1yZWdpc3RlciBkaXJlY3RseVxuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICB9O1xuXG4gICAgTWV0YUNhY2hlU2VydmljZS5wcm90b3R5cGUubWV0YUZvck5vZGUgPSBmdW5jdGlvbiBtZXRhRm9yTm9kZShzdHJlYW1OYW1lLCBhanhwTm9kZSwgbG9hZGVyQ2FsbGJhY2ssIHJlbW90ZVBhcnNlciwgY2FjaGVMb2FkZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICBpZiAoIXRoaXMuX3N0cmVhbXMuaGFzKHN0cmVhbU5hbWUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmaW5kIG1ldGEgc3RyZWFtICcgKyBzdHJlYW1OYW1lICsgJywgcGxlYXNlIHJlZ2lzdGVyIGl0IGJlZm9yZSB1c2luZyBpdCcpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkZWYgPSB0aGlzLl9zdHJlYW1zLmdldChzdHJlYW1OYW1lKTtcbiAgICAgICAgdmFyIGtleSA9IGFqeHBOb2RlLmdldFBhdGgoKTtcbiAgICAgICAgdmFyIGV4cGlyYXRpb25Qb2xpY3kgPSBkZWYuZ2V0KCdleHBpcmF0aW9uUG9saWN5Jyk7XG4gICAgICAgIGlmIChkZWYuZ2V0KCdkYXRhJykuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIGNhY2hlTG9hZGVyKGRlZi5nZXQoJ2RhdGEnKS5nZXQoa2V5KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBjbGVhclZhbHVlT2JzZXJ2ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBkZWYuZ2V0KCdkYXRhJylbJ2RlbGV0ZSddKGtleSk7XG4gICAgICAgICAgICAgICAgfSkuYmluZChfdGhpcyk7XG5cbiAgICAgICAgICAgICAgICAvLyBDYWNoZSByZXNwb25zZSBpZiBzdWNjZXNzXG4gICAgICAgICAgICAgICAgdmFyIGNhY2hlQ2FsbGJhY2sgPSBmdW5jdGlvbiBjYWNoZUNhbGxiYWNrKHRyYW5zcG9ydCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3RGF0YSA9IHJlbW90ZVBhcnNlcih0cmFuc3BvcnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3RGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhY2hlZERhdGEgPSBuZXdEYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0RhdGEgaW5zdGFuY2VvZiBBanhwTm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlZERhdGEgPSBuZXcgQWp4cE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZWREYXRhLnJlcGxhY2VCeShuZXdEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZi5nZXQoJ2RhdGEnKS5zZXQoa2V5LCBjYWNoZWREYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBpcmF0aW9uUG9saWN5ID09IE1ldGFDYWNoZVNlcnZpY2UuRVhQSVJBVElPTl9MT0NBTF9OT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWp4cE5vZGUub2JzZXJ2ZU9uY2UoXCJub2RlX3JlbW92ZWRcIiwgY2xlYXJWYWx1ZU9ic2VydmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhanhwTm9kZS5vYnNlcnZlT25jZShcIm5vZGVfcmVwbGFjZWRcIiwgY2xlYXJWYWx1ZU9ic2VydmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbG9hZGVyQ2FsbGJhY2soYWp4cE5vZGUsIGNhY2hlQ2FsbGJhY2spO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBNZXRhQ2FjaGVTZXJ2aWNlLnByb3RvdHlwZS5pbnZhbGlkYXRlTWV0YUZvcktleXMgPSBmdW5jdGlvbiBpbnZhbGlkYXRlTWV0YUZvcktleXMoc3RyZWFtTmFtZSwga2V5UGF0dGVybikge1xuICAgICAgICBpZiAoIXRoaXMuX3N0cmVhbXMuaGFzKHN0cmVhbU5hbWUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmaW5kIG1ldGEgc3RyZWFtICcgKyBzdHJlYW1OYW1lICsgJywgcGxlYXNlIHJlZ2lzdGVyIGl0IGJlZm9yZSB1c2luZyBpdCcpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXRhID0gdGhpcy5fc3RyZWFtcy5nZXQoc3RyZWFtTmFtZSkuZ2V0KCdkYXRhJyk7XG4gICAgICAgIGRhdGEuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgICAgICAgaWYgKGtleS5tYXRjaChrZXlQYXR0ZXJuKSkge1xuICAgICAgICAgICAgICAgIGRhdGFbJ2RlbGV0ZSddKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gTWV0YUNhY2hlU2VydmljZTtcbn0pKF9sYW5nT2JzZXJ2YWJsZTJbJ2RlZmF1bHQnXSk7XG5cbk1ldGFDYWNoZVNlcnZpY2UuRVhQSVJBVElPTl9MT0NBTF9OT0RFID0gJ0xPQ0FMX05PREUnO1xuTWV0YUNhY2hlU2VydmljZS5FWFBJUkFUSU9OX01BTlVBTF9UUklHR0VSID0gJ01BTlVBTF9UUklHR0VSJztcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTWV0YUNhY2hlU2VydmljZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX1B5ZGlvID0gcmVxdWlyZSgnLi4vUHlkaW8nKTtcblxudmFyIF9QeWRpbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9QeWRpbyk7XG5cbnZhciBfQ29ubmV4aW9uID0gcmVxdWlyZSgnLi9Db25uZXhpb24nKTtcblxudmFyIF9Db25uZXhpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ29ubmV4aW9uKTtcblxudmFyIF91dGlsUGF0aFV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9QYXRoVXRpbHMnKTtcblxudmFyIF91dGlsUGF0aFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxQYXRoVXRpbHMpO1xuXG52YXIgX1Jlc3RDbGllbnQgPSByZXF1aXJlKCcuL1Jlc3RDbGllbnQnKTtcblxudmFyIF9SZXN0Q2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RDbGllbnQpO1xuXG52YXIgX2F3c1NkayA9IHJlcXVpcmUoJ2F3cy1zZGsnKTtcblxudmFyIF9hd3NTZGsyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXdzU2RrKTtcblxudmFyIF9nZW5Nb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0ID0gcmVxdWlyZSgnLi9nZW4vbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QnKTtcblxudmFyIF9nZW5Nb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QpO1xuXG52YXIgX2dlbk1vZGVsVHJlZU5vZGUgPSByZXF1aXJlKFwiLi9nZW4vbW9kZWwvVHJlZU5vZGVcIik7XG5cbnZhciBfZ2VuTW9kZWxUcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbFRyZWVOb2RlKTtcblxudmFyIF9nZW5BcGlUcmVlU2VydmljZUFwaSA9IHJlcXVpcmUoXCIuL2dlbi9hcGkvVHJlZVNlcnZpY2VBcGlcIik7XG5cbnZhciBfZ2VuQXBpVHJlZVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuQXBpVHJlZVNlcnZpY2VBcGkpO1xuXG52YXIgX21vZGVsQWp4cE5vZGUgPSByZXF1aXJlKFwiLi4vbW9kZWwvQWp4cE5vZGVcIik7XG5cbnZhciBfbW9kZWxBanhwTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFqeHBOb2RlKTtcblxuLy8gRXh0ZW5kIFMzIE1hbmFnZWRVcGxvYWQgdG8gZ2V0IHByb2dyZXNzIGluZm8gYWJvdXQgZWFjaCBwYXJ0XG5cbnZhciBNYW5hZ2VkTXVsdGlwYXJ0ID0gKGZ1bmN0aW9uIChfQVdTJFMzJE1hbmFnZWRVcGxvYWQpIHtcbiAgICBfaW5oZXJpdHMoTWFuYWdlZE11bHRpcGFydCwgX0FXUyRTMyRNYW5hZ2VkVXBsb2FkKTtcblxuICAgIGZ1bmN0aW9uIE1hbmFnZWRNdWx0aXBhcnQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNYW5hZ2VkTXVsdGlwYXJ0KTtcblxuICAgICAgICBfQVdTJFMzJE1hbmFnZWRVcGxvYWQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBUEkgQ2xpZW50XG4gICAgICovXG5cbiAgICBNYW5hZ2VkTXVsdGlwYXJ0LnByb3RvdHlwZS5wcm9ncmVzcyA9IGZ1bmN0aW9uIHByb2dyZXNzKGluZm8pIHtcbiAgICAgICAgdmFyIHVwbG9hZCA9IHRoaXMuX21hbmFnZWRVcGxvYWQ7XG4gICAgICAgIGlmICh0aGlzLm9wZXJhdGlvbiA9PT0gJ3B1dE9iamVjdCcpIHtcbiAgICAgICAgICAgIGluZm8ucGFydCA9IDE7XG4gICAgICAgICAgICBpbmZvLmtleSA9IHRoaXMucGFyYW1zLktleTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBwYXJ0TG9hZGVkID0gaW5mby5sb2FkZWQ7XG4gICAgICAgICAgICB2YXIgcGFydFRvdGFsID0gaW5mby50b3RhbDtcbiAgICAgICAgICAgIHVwbG9hZC50b3RhbFVwbG9hZGVkQnl0ZXMgKz0gaW5mby5sb2FkZWQgLSB0aGlzLl9sYXN0VXBsb2FkZWRCeXRlcztcbiAgICAgICAgICAgIHRoaXMuX2xhc3RVcGxvYWRlZEJ5dGVzID0gaW5mby5sb2FkZWQ7XG4gICAgICAgICAgICBpbmZvID0ge1xuICAgICAgICAgICAgICAgIGxvYWRlZDogdXBsb2FkLnRvdGFsVXBsb2FkZWRCeXRlcyxcbiAgICAgICAgICAgICAgICB0b3RhbDogdXBsb2FkLnRvdGFsQnl0ZXMsXG4gICAgICAgICAgICAgICAgcGFydDogdGhpcy5wYXJhbXMuUGFydE51bWJlcixcbiAgICAgICAgICAgICAgICBwYXJ0TG9hZGVkOiBwYXJ0TG9hZGVkLCBwYXJ0VG90YWw6IHBhcnRUb3RhbCxcbiAgICAgICAgICAgICAgICBrZXk6IHRoaXMucGFyYW1zLktleVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB1cGxvYWQuZW1pdCgnaHR0cFVwbG9hZFByb2dyZXNzJywgW2luZm9dKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIE1hbmFnZWRNdWx0aXBhcnQ7XG59KShfYXdzU2RrMlsnZGVmYXVsdCddLlMzLk1hbmFnZWRVcGxvYWQpO1xuXG52YXIgUHlkaW9BcGkgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFB5ZGlvQXBpKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHlkaW9BcGkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge0p3dEFwaUNsaWVudH1cbiAgICAgKi9cblxuICAgIFB5ZGlvQXBpLmdldFJlc3RDbGllbnQgPSBmdW5jdGlvbiBnZXRSZXN0Q2xpZW50KCkge1xuICAgICAgICByZXR1cm4gbmV3IF9SZXN0Q2xpZW50MlsnZGVmYXVsdCddKHRoaXMuZ2V0Q2xpZW50KCkuX3B5ZGlvT2JqZWN0KTtcbiAgICB9O1xuXG4gICAgUHlkaW9BcGkuZ2V0TXVsdGlwYXJ0VGhyZXNob2xkID0gZnVuY3Rpb24gZ2V0TXVsdGlwYXJ0VGhyZXNob2xkKCkge1xuICAgICAgICB2YXIgY29uZiA9IF9QeWRpbzJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSgpLmdldFBsdWdpbkNvbmZpZ3MoXCJjb3JlLnVwbG9hZGVyXCIpLmdldChcIk1VTFRJUEFSVF9VUExPQURfVEhSRVNIT0xEXCIpO1xuICAgICAgICBpZiAoY29uZikge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGNvbmYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDEwMCAqIDEwMjQgKiAxMDI0O1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFB5ZGlvQXBpLmdldE11bHRpcGFydFBhcnRTaXplID0gZnVuY3Rpb24gZ2V0TXVsdGlwYXJ0UGFydFNpemUoKSB7XG4gICAgICAgIHZhciBjb25mID0gX1B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkuZ2V0UGx1Z2luQ29uZmlncyhcImNvcmUudXBsb2FkZXJcIikuZ2V0KFwiTVVMVElQQVJUX1VQTE9BRF9QQVJUX1NJWkVcIik7XG4gICAgICAgIGlmIChjb25mKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY29uZik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gNTAgKiAxMDI0ICogMTAyNDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBQeWRpb0FwaS5nZXRNdWx0aXBhcnRQYXJ0UXVldWVTaXplID0gZnVuY3Rpb24gZ2V0TXVsdGlwYXJ0UGFydFF1ZXVlU2l6ZSgpIHtcbiAgICAgICAgdmFyIGNvbmYgPSBfUHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5nZXRQbHVnaW5Db25maWdzKFwiY29yZS51cGxvYWRlclwiKS5nZXQoXCJNVUxUSVBBUlRfVVBMT0FEX1FVRVVFX1NJWkVcIik7XG4gICAgICAgIGlmIChjb25mKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoY29uZik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBQeWRpb0FwaS5wcm90b3R5cGUuc2V0UHlkaW9PYmplY3QgPSBmdW5jdGlvbiBzZXRQeWRpb09iamVjdChweWRpb09iamVjdCkge1xuICAgICAgICB0aGlzLl9weWRpb09iamVjdCA9IHB5ZGlvT2JqZWN0O1xuICAgICAgICB0aGlzLl9iYXNlVXJsID0gcHlkaW9PYmplY3QuUGFyYW1ldGVycy5nZXQoJ3NlcnZlckFjY2Vzc1BhdGgnKTtcbiAgICB9O1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLmdldFB5ZGlvT2JqZWN0ID0gZnVuY3Rpb24gZ2V0UHlkaW9PYmplY3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9weWRpb09iamVjdDtcbiAgICB9O1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLmxvYWRGaWxlID0gZnVuY3Rpb24gbG9hZEZpbGUoZmlsZVBhdGgpIHtcbiAgICAgICAgdmFyIG9uQ29tcGxldGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuICAgICAgICB2YXIgb25FcnJvciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgdmFyIGMgPSBuZXcgX0Nvbm5leGlvbjJbJ2RlZmF1bHQnXShmaWxlUGF0aCk7XG4gICAgICAgIGMuc2V0TWV0aG9kKCdHRVQnKTtcbiAgICAgICAgYy5vbkNvbXBsZXRlID0gb25Db21wbGV0ZTtcbiAgICAgICAgYy5zZW5kKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFxuICAgICAqIEBwYXJhbSBmaWxlXG4gICAgICogQHBhcmFtIGZpbGVQYXJhbWV0ZXJOYW1lXG4gICAgICogQHBhcmFtIHF1ZXJ5U3RyaW5nUGFyYW1zXG4gICAgICogQHBhcmFtIG9uQ29tcGxldGVcbiAgICAgKiBAcGFyYW0gb25FcnJvclxuICAgICAqIEBwYXJhbSBvblByb2dyZXNzXG4gICAgICogQHBhcmFtIHVwbG9hZFVybFxuICAgICAqIEBwYXJhbSB4aHJTZXR0aW5nc1xuICAgICAqIEByZXR1cm5zIFhIUiBIYW5kbGUgdG8gYWJvcnQgdHJhbnNmZXJcbiAgICAgKi9cblxuICAgIFB5ZGlvQXBpLnByb3RvdHlwZS51cGxvYWRGaWxlID0gZnVuY3Rpb24gdXBsb2FkRmlsZShmaWxlLCBmaWxlUGFyYW1ldGVyTmFtZSkge1xuICAgICAgICB2YXIgcXVlcnlTdHJpbmdQYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1syXTtcbiAgICAgICAgdmFyIG9uQ29tcGxldGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1szXTtcbiAgICAgICAgdmFyIG9uRXJyb3IgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1s0XTtcbiAgICAgICAgdmFyIG9uUHJvZ3Jlc3MgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDUgfHwgYXJndW1lbnRzWzVdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1s1XTtcbiAgICAgICAgdmFyIHVwbG9hZFVybCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNiB8fCBhcmd1bWVudHNbNl0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzZdO1xuICAgICAgICB2YXIgeGhyU2V0dGluZ3MgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDcgfHwgYXJndW1lbnRzWzddID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1s3XTtcblxuICAgICAgICBpZiAoIXVwbG9hZFVybCkge1xuICAgICAgICAgICAgdXBsb2FkVXJsID0gcHlkaW8uUGFyYW1ldGVycy5nZXQoJ2FqeHBTZXJ2ZXJBY2Nlc3MnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocXVlcnlTdHJpbmdQYXJhbXMpIHtcbiAgICAgICAgICAgIHVwbG9hZFVybCArPSAodXBsb2FkVXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJicpICsgcXVlcnlTdHJpbmdQYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXYXJuaW5nLCBhdm9pZCBkb3VibGUgZXJyb3JcbiAgICAgICAgdmFyIGVycm9yU2VudCA9IGZhbHNlO1xuICAgICAgICB2YXIgbG9jYWxFcnJvciA9IGZ1bmN0aW9uIGxvY2FsRXJyb3IoeGhyKSB7XG4gICAgICAgICAgICBpZiAoIWVycm9yU2VudCkge1xuICAgICAgICAgICAgICAgIG9uRXJyb3IoJ1JlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIDonICsgeGhyLnN0YXR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlcnJvclNlbnQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgYyA9IG5ldyBfQ29ubmV4aW9uMlsnZGVmYXVsdCddKCk7XG4gICAgICAgIHJldHVybiBjLnVwbG9hZEZpbGUoZmlsZSwgZmlsZVBhcmFtZXRlck5hbWUsIHVwbG9hZFVybCwgb25Db21wbGV0ZSwgbG9jYWxFcnJvciwgb25Qcm9ncmVzcywgeGhyU2V0dGluZ3MpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyU2VsZWN0aW9uIFVzZXJTZWxlY3Rpb24gQSBQeWRpbyBEYXRhTW9kZWwgd2l0aCBzZWxlY3RlZCBmaWxlc1xuICAgICAqL1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLmRvd25sb2FkU2VsZWN0aW9uID0gZnVuY3Rpb24gZG93bmxvYWRTZWxlY3Rpb24odXNlclNlbGVjdGlvbikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBweWRpbyA9IHRoaXMuZ2V0UHlkaW9PYmplY3QoKTtcbiAgICAgICAgdmFyIGFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudCB8fCAnJztcbiAgICAgICAgdmFyIGFnZW50SXNNb2JpbGUgPSBhZ2VudC5pbmRleE9mKCdpUGhvbmUnKSAhPT0gLTEgfHwgYWdlbnQuaW5kZXhPZignaVBvZCcpICE9PSAtMSB8fCBhZ2VudC5pbmRleE9mKCdpUGFkJykgIT09IC0xIHx8IGFnZW50LmluZGV4T2YoJ2lPcycpICE9PSAtMTtcblxuICAgICAgICB2YXIgaGlkZGVuRm9ybSA9IHB5ZGlvLlVJICYmIHB5ZGlvLlVJLmhhc0hpZGRlbkRvd25sb2FkRm9ybSgpO1xuICAgICAgICB2YXIgYXJjaGl2ZUV4dCA9IHB5ZGlvLmdldFBsdWdpbkNvbmZpZ3MoXCJhY2Nlc3MuZ2F0ZXdheVwiKS5nZXQoXCJET1dOTE9BRF9BUkNISVZFX0ZPUk1BVFwiKSB8fCBcInppcFwiO1xuXG4gICAgICAgIGlmICh1c2VyU2VsZWN0aW9uLmlzVW5pcXVlKCkpIHtcbiAgICAgICAgICAgIHZhciBkb3dubG9hZE5vZGUgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYXR0YWNobWVudE5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB2YXIgdW5pcXVlTm9kZSA9IHVzZXJTZWxlY3Rpb24uZ2V0VW5pcXVlTm9kZSgpO1xuICAgICAgICAgICAgaWYgKHVuaXF1ZU5vZGUuaXNMZWFmKCkpIHtcbiAgICAgICAgICAgICAgICBkb3dubG9hZE5vZGUgPSB1bmlxdWVOb2RlO1xuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnROYW1lID0gdW5pcXVlTm9kZS5nZXRMYWJlbCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkb3dubG9hZE5vZGUgPSBuZXcgX21vZGVsQWp4cE5vZGUyWydkZWZhdWx0J10odW5pcXVlTm9kZS5nZXRQYXRoKCkgKyAnLicgKyBhcmNoaXZlRXh0LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgYXR0YWNobWVudE5hbWUgPSB1bmlxdWVOb2RlLmdldExhYmVsKCkgKyAnLicgKyBhcmNoaXZlRXh0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmJ1aWxkUHJlc2lnbmVkR2V0VXJsKGRvd25sb2FkTm9kZSwgbnVsbCwgJycsIG51bGwsIGF0dGFjaG1lbnROYW1lKS50aGVuKGZ1bmN0aW9uICh1cmwpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWdlbnRJc01vYmlsZSB8fCAhaGlkZGVuRm9ybSkge1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLmdldFB5ZGlvT2JqZWN0KCkuVUkuc2VuZERvd25sb2FkVG9IaWRkZW5Gb3JtKHVzZXJTZWxlY3Rpb24sIHsgcHJlc2lnbmVkVXJsOiB1cmwgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgX2dlbk1vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QyWydkZWZhdWx0J10oKTtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24uTm9kZXMgPSBbXTtcbiAgICAgICAgICAgICAgICB2YXIgc2x1ZyA9IF90aGlzLmdldFB5ZGlvT2JqZWN0KCkudXNlci5nZXRBY3RpdmVSZXBvc2l0b3J5T2JqZWN0KCkuZ2V0U2x1ZygpO1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5Ob2RlcyA9IHVzZXJTZWxlY3Rpb24uZ2V0U2VsZWN0ZWROb2RlcygpLm1hcChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdE5vZGUgPSBuZXcgX2dlbk1vZGVsVHJlZU5vZGUyWydkZWZhdWx0J10oKTtcbiAgICAgICAgICAgICAgICAgICAgdE5vZGUuUGF0aCA9IHNsdWcgKyBub2RlLmdldFBhdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaVRyZWVTZXJ2aWNlQXBpMlsnZGVmYXVsdCddKFB5ZGlvQXBpLmdldFJlc3RDbGllbnQoKSk7XG4gICAgICAgICAgICAgICAgYXBpLmNyZWF0ZVNlbGVjdGlvbihzZWxlY3Rpb24pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBTZWxlY3Rpb25VVUlEID0gcmVzcG9uc2UuU2VsZWN0aW9uVVVJRDtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgZmFrZU5vZGVQYXRoID0gX3RoaXMuZ2V0UHlkaW9PYmplY3QoKS5nZXRDb250ZXh0SG9sZGVyKCkuZ2V0Q29udGV4dE5vZGUoKS5nZXRQYXRoKCkgKyBcIi9cIiArIFNlbGVjdGlvblVVSUQgKyAnLXNlbGVjdGlvbi4nICsgYXJjaGl2ZUV4dDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZha2VOb2RlID0gbmV3IF9tb2RlbEFqeHBOb2RlMlsnZGVmYXVsdCddKGZha2VOb2RlUGF0aCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLmJ1aWxkUHJlc2lnbmVkR2V0VXJsKGZha2VOb2RlLCBudWxsLCAnJywgbnVsbCwgJ3NlbGVjdGlvbi4nICsgYXJjaGl2ZUV4dCkudGhlbihmdW5jdGlvbiAodXJsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWdlbnRJc01vYmlsZSB8fCAhaGlkZGVuRm9ybSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLmdldFB5ZGlvT2JqZWN0KCkuVUkuc2VuZERvd25sb2FkVG9IaWRkZW5Gb3JtKHVzZXJTZWxlY3Rpb24sIHsgcHJlc2lnbmVkVXJsOiB1cmwgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZSBwcmVzaWduZWQgYW5kIHVzZSBpdCBmb3IgdXBsb2Fkc1xuICAgICAqIEBwYXJhbSBmaWxlXG4gICAgICogQHBhcmFtIHBhdGhcbiAgICAgKiBAcGFyYW0gb25Db21wbGV0ZVxuICAgICAqIEBwYXJhbSBvbkVycm9yXG4gICAgICogQHBhcmFtIG9uUHJvZ3Jlc3NcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59XG4gICAgICovXG5cbiAgICBQeWRpb0FwaS5wcm90b3R5cGUudXBsb2FkUHJlc2lnbmVkID0gZnVuY3Rpb24gdXBsb2FkUHJlc2lnbmVkKGZpbGUsIHBhdGgpIHtcbiAgICAgICAgdmFyIG9uQ29tcGxldGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoKSB7fSA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgb25FcnJvciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uICgpIHt9IDogYXJndW1lbnRzWzNdO1xuICAgICAgICB2YXIgb25Qcm9ncmVzcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNCB8fCBhcmd1bWVudHNbNF0gPT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uICgpIHt9IDogYXJndW1lbnRzWzRdO1xuXG4gICAgICAgIHZhciB0YXJnZXRQYXRoID0gcGF0aDtcbiAgICAgICAgaWYgKHBhdGgubm9ybWFsaXplKSB7XG4gICAgICAgICAgICB0YXJnZXRQYXRoID0gcGF0aC5ub3JtYWxpemUoJ05GQycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXRQYXRoWzBdID09PSBcIi9cIikge1xuICAgICAgICAgICAgdGFyZ2V0UGF0aCA9IHRhcmdldFBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1cmwgPSB0aGlzLmdldFB5ZGlvT2JqZWN0KCkuUGFyYW1ldGVycy5nZXQoJ0VORFBPSU5UX1MzX0dBVEVXQVknKTtcbiAgICAgICAgdmFyIHBhcmFtcyA9IHtcbiAgICAgICAgICAgIEJ1Y2tldDogJ2lvJyxcbiAgICAgICAgICAgIEtleTogdGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIENvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICAgICAgUHlkaW9BcGkuZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICAgICAgX2F3c1NkazJbJ2RlZmF1bHQnXS5jb25maWcudXBkYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzS2V5SWQ6ICdnYXRld2F5JyxcbiAgICAgICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiAnZ2F0ZXdheXNlY3JldCcsXG4gICAgICAgICAgICAgICAgICAgIHMzRm9yY2VQYXRoU3R5bGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB2YXIgczMgPSBuZXcgX2F3c1NkazJbJ2RlZmF1bHQnXS5TMyh7IGVuZHBvaW50OiB1cmwucmVwbGFjZSgnL2lvJywgJycpIH0pO1xuICAgICAgICAgICAgICAgIHZhciBzaWduZWQgPSBzMy5nZXRTaWduZWRVcmwoJ3B1dE9iamVjdCcsIHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgdmFyIHhociA9IF90aGlzMi51cGxvYWRGaWxlKGZpbGUsICcnLCAnJywgb25Db21wbGV0ZSwgb25FcnJvciwgb25Qcm9ncmVzcywgc2lnbmVkLCB7IG1ldGhvZDogJ1BVVCcsIGN1c3RvbUhlYWRlcnM6IHsgJ1gtUHlkaW8tQmVhcmVyJzogand0LCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfSB9KTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHhocik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIFB5ZGlvQXBpLnByb3RvdHlwZS51cGxvYWRNdWx0aXBhcnQgPSBmdW5jdGlvbiB1cGxvYWRNdWx0aXBhcnQoZmlsZSwgcGF0aCkge1xuICAgICAgICB2YXIgb25Db21wbGV0ZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uICgpIHt9IDogYXJndW1lbnRzWzJdO1xuICAgICAgICB2YXIgb25FcnJvciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uICgpIHt9IDogYXJndW1lbnRzWzNdO1xuICAgICAgICB2YXIgb25Qcm9ncmVzcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNCB8fCBhcmd1bWVudHNbNF0gPT09IHVuZGVmaW5lZCA/IGZ1bmN0aW9uICgpIHt9IDogYXJndW1lbnRzWzRdO1xuXG4gICAgICAgIHZhciB0YXJnZXRQYXRoID0gcGF0aDtcbiAgICAgICAgaWYgKHBhdGgubm9ybWFsaXplKSB7XG4gICAgICAgICAgICB0YXJnZXRQYXRoID0gcGF0aC5ub3JtYWxpemUoJ05GQycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXRQYXRoWzBdID09PSBcIi9cIikge1xuICAgICAgICAgICAgdGFyZ2V0UGF0aCA9IHRhcmdldFBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1cmwgPSB0aGlzLmdldFB5ZGlvT2JqZWN0KCkuUGFyYW1ldGVycy5nZXQoJ0VORFBPSU5UX1MzX0dBVEVXQVknKTtcbiAgICAgICAgdmFyIHBhcmFtcyA9IHtcbiAgICAgICAgICAgIEJ1Y2tldDogJ2lvJyxcbiAgICAgICAgICAgIEtleTogdGFyZ2V0UGF0aCxcbiAgICAgICAgICAgIENvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICAgICAgUHlkaW9BcGkuZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICAgICAgX2F3c1NkazJbJ2RlZmF1bHQnXS5jb25maWcudXBkYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IGp3dCxcbiAgICAgICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiAnZ2F0ZXdheXNlY3JldCcsXG4gICAgICAgICAgICAgICAgICAgIHMzRm9yY2VQYXRoU3R5bGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB1cmwucmVwbGFjZSgnL2lvJywgJycpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdmFyIG1hbmFnZWQgPSBuZXcgTWFuYWdlZE11bHRpcGFydCh7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogX2V4dGVuZHMoe30sIHBhcmFtcywgeyBCb2R5OiBmaWxlIH0pLFxuICAgICAgICAgICAgICAgICAgICBwYXJ0U2l6ZTogUHlkaW9BcGkuZ2V0TXVsdGlwYXJ0UGFydFNpemUoKSxcbiAgICAgICAgICAgICAgICAgICAgcXVldWVTaXplOiBQeWRpb0FwaS5nZXRNdWx0aXBhcnRQYXJ0UXVldWVTaXplKCksXG4gICAgICAgICAgICAgICAgICAgIGxlYXZlUGFydHNPbkVycm9yOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1hbmFnZWQub24oJ2h0dHBVcGxvYWRQcm9ncmVzcycsIG9uUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgIG1hbmFnZWQuc2VuZChmdW5jdGlvbiAoZSwgZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25FcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29tcGxldGUoZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKG1hbmFnZWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZW5kIGEgcmVxdWVzdCB0byB0aGUgc2VydmVyIHRvIGdldCBhIHVzYWJsZSBwcmVzaWduZWQgdXJsLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgQWp4cE5vZGVcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0gcHJlc2V0VHlwZSBTdHJpbmdcbiAgICAgKiBAcGFyYW0gYnVja2V0UGFyYW1zXG4gICAgICogQHBhcmFtIGF0dGFjaG1lbnROYW1lXG4gICAgICogQHJldHVybiB7UHJvbWlzZX18bnVsbCBSZXR1cm4gYSBQcm9taXNlIGlmIGNhbGxiYWNrIGlzIG51bGwsIG9yIGNhbGwgdGhlIGNhbGxiYWNrXG4gICAgICovXG5cbiAgICBQeWRpb0FwaS5wcm90b3R5cGUuYnVpbGRQcmVzaWduZWRHZXRVcmwgPSBmdW5jdGlvbiBidWlsZFByZXNpZ25lZEdldFVybChub2RlKSB7XG4gICAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMV07XG4gICAgICAgIHZhciBwcmVzZXRUeXBlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gJycgOiBhcmd1bWVudHNbMl07XG4gICAgICAgIHZhciBidWNrZXRQYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzNdO1xuICAgICAgICB2YXIgYXR0YWNobWVudE5hbWUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1s0XTtcblxuICAgICAgICB2YXIgdXJsID0gdGhpcy5nZXRQeWRpb09iamVjdCgpLlBhcmFtZXRlcnMuZ2V0KCdFTkRQT0lOVF9TM19HQVRFV0FZJyk7XG4gICAgICAgIHZhciBzbHVnID0gdGhpcy5nZXRQeWRpb09iamVjdCgpLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeU9iamVjdCgpLmdldFNsdWcoKTtcbiAgICAgICAgdmFyIGNUeXBlID0gJycsXG4gICAgICAgICAgICBjRGlzcG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBsb25nRXhwaXJlID0gZmFsc2U7XG5cbiAgICAgICAgc3dpdGNoIChwcmVzZXRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdpbWFnZS9wbmcnOlxuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvanBlZyc6XG4gICAgICAgICAgICBjYXNlICdpbWFnZS9ibXAnOlxuICAgICAgICAgICAgY2FzZSAndGV4dC9wbGFpbic6XG4gICAgICAgICAgICAgICAgY1R5cGUgPSBwcmVzZXRUeXBlO1xuICAgICAgICAgICAgICAgIGNEaXNwb3NpdGlvbiA9ICdpbmxpbmUnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvanBnJzpcbiAgICAgICAgICAgICAgICBjVHlwZSA9ICdpbWFnZS9qcGVnJztcbiAgICAgICAgICAgICAgICBjRGlzcG9zaXRpb24gPSAnaW5saW5lJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2F1ZGlvL21wMyc6XG4gICAgICAgICAgICAgICAgY1R5cGUgPSBwcmVzZXRUeXBlO1xuICAgICAgICAgICAgICAgIGxvbmdFeHBpcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlkZW8vbXA0JzpcbiAgICAgICAgICAgICAgICBjVHlwZSA9IHByZXNldFR5cGU7XG4gICAgICAgICAgICAgICAgbG9uZ0V4cGlyZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkZXRlY3QnOlxuICAgICAgICAgICAgICAgIGNUeXBlID0gX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0QWp4cE1pbWVUeXBlKG5vZGUpO1xuICAgICAgICAgICAgICAgIGNEaXNwb3NpdGlvbiA9ICdpbmxpbmUnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBwYXJhbXMgPSB7XG4gICAgICAgICAgICBCdWNrZXQ6ICdpbycsXG4gICAgICAgICAgICBLZXk6IHNsdWcgKyBub2RlLmdldFBhdGgoKSxcbiAgICAgICAgICAgIEV4cGlyZXM6IGxvbmdFeHBpcmUgPyA2MDAwIDogNjAwXG4gICAgICAgIH07XG4gICAgICAgIGlmIChidWNrZXRQYXJhbXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IGJ1Y2tldFBhcmFtcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY1R5cGUpIHtcbiAgICAgICAgICAgIHBhcmFtc1snUmVzcG9uc2VDb250ZW50VHlwZSddID0gY1R5cGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNEaXNwb3NpdGlvbikge1xuICAgICAgICAgICAgcGFyYW1zWydSZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbiddID0gY0Rpc3Bvc2l0aW9uO1xuICAgICAgICB9IGVsc2UgaWYgKGF0dGFjaG1lbnROYW1lKSB7XG4gICAgICAgICAgICBwYXJhbXNbJ1Jlc3BvbnNlQ29udGVudERpc3Bvc2l0aW9uJ10gPSAnYXR0YWNobWVudDsgZmlsZW5hbWU9JyArIGVuY29kZVVSSUNvbXBvbmVudChhdHRhY2htZW50TmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcmVzb2x2ZXIgPSBmdW5jdGlvbiByZXNvbHZlcihqd3QsIGNiKSB7XG4gICAgICAgICAgICB2YXIgbWV0YSA9IG5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3ByZXNpZ25lZFVybHMnKTtcbiAgICAgICAgICAgIHZhciBjYWNoZUtleSA9IGp3dCArIHBhcmFtcy5LZXk7XG4gICAgICAgICAgICBpZiAoY1R5cGUpIHtcbiAgICAgICAgICAgICAgICBjYWNoZUtleSArPSBcIiNcIiArIGNUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNhY2hlZCA9IG1ldGEgPyBtZXRhLmdldChjYWNoZUtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGNhY2hlZCkge1xuICAgICAgICAgICAgICAgIGNiKGNhY2hlZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFtZXRhKSB7XG4gICAgICAgICAgICAgICAgbWV0YSA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgX2F3c1NkazJbJ2RlZmF1bHQnXS5jb25maWcudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBhY2Nlc3NLZXlJZDogJ2dhdGV3YXknLFxuICAgICAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleTogJ2dhdGV3YXlzZWNyZXQnLFxuICAgICAgICAgICAgICAgIHMzRm9yY2VQYXRoU3R5bGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIHMzID0gbmV3IF9hd3NTZGsyWydkZWZhdWx0J10uUzMoeyBlbmRwb2ludDogdXJsLnJlcGxhY2UoJy9pbycsICcnKSB9KTtcbiAgICAgICAgICAgIHZhciBzaWduZWQgPSBzMy5nZXRTaWduZWRVcmwoJ2dldE9iamVjdCcsIHBhcmFtcyk7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gc2lnbmVkICsgJyZweWRpb19qd3Q9JyArIGp3dDtcbiAgICAgICAgICAgIGNiKG91dHB1dCk7XG4gICAgICAgICAgICBtZXRhLnNldChjYWNoZUtleSwgb3V0cHV0KTtcbiAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ3ByZXNpZ25lZFVybHMnLCBtZXRhKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoY2FsbGJhY2sgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICAgICAgICAgIFB5ZGlvQXBpLmdldFJlc3RDbGllbnQoKS5nZXRPclVwZGF0ZUp3dCgpLnRoZW4oZnVuY3Rpb24gKGp3dCkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlcihqd3QsIHJlc29sdmUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBQeWRpb0FwaS5nZXRSZXN0Q2xpZW50KCkuZ2V0T3JVcGRhdGVKd3QoKS50aGVuKGZ1bmN0aW9uIChqd3QpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlcihqd3QsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLmdldFBsYWluQ29udGVudCA9IGZ1bmN0aW9uIGdldFBsYWluQ29udGVudChub2RlLCBjb250ZW50Q2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgUHlkaW9BcGkuZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gX3RoaXMzLmdldFB5ZGlvT2JqZWN0KCkuUGFyYW1ldGVycy5nZXQoJ0VORFBPSU5UX1MzX0dBVEVXQVknKTtcbiAgICAgICAgICAgIHZhciBzbHVnID0gX3RoaXMzLmdldFB5ZGlvT2JqZWN0KCkudXNlci5nZXRBY3RpdmVSZXBvc2l0b3J5T2JqZWN0KCkuZ2V0U2x1ZygpO1xuXG4gICAgICAgICAgICBfYXdzU2RrMlsnZGVmYXVsdCddLmNvbmZpZy51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBqd3QsXG4gICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiAnZ2F0ZXdheXNlY3JldCcsXG4gICAgICAgICAgICAgICAgczNGb3JjZVBhdGhTdHlsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIEJ1Y2tldDogXCJpb1wiLFxuICAgICAgICAgICAgICAgIEtleTogc2x1ZyArIG5vZGUuZ2V0UGF0aCgpLFxuICAgICAgICAgICAgICAgIFJlc3BvbnNlQ29udGVudFR5cGU6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgICAgICAgICBSZXNwb25zZUNhY2hlQ29udHJvbDogXCJuby1jYWNoZVwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIHMzID0gbmV3IF9hd3NTZGsyWydkZWZhdWx0J10uUzMoeyBlbmRwb2ludDogdXJsLnJlcGxhY2UoJy9pbycsICcnKSB9KTtcbiAgICAgICAgICAgIHMzLmdldE9iamVjdChwYXJhbXMsIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycikge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50Q2FsbGJhY2soZGF0YS5Cb2R5LnRvU3RyaW5nKCd1dGYtOCcpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczMuZ2V0UHlkaW9PYmplY3QoKS5VSS5kaXNwbGF5TWVzc2FnZSgnRVJST1InLCBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBQeWRpb0FwaS5wcm90b3R5cGUucG9zdFBsYWluVGV4dENvbnRlbnQgPSBmdW5jdGlvbiBwb3N0UGxhaW5UZXh0Q29udGVudChub2RlUGF0aCwgY29udGVudCwgZmluaXNoZWRDYWxsYmFjaykge1xuICAgICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgICBQeWRpb0FwaS5nZXRSZXN0Q2xpZW50KCkuZ2V0T3JVcGRhdGVKd3QoKS50aGVuKGZ1bmN0aW9uIChqd3QpIHtcbiAgICAgICAgICAgIHZhciB1cmwgPSBfdGhpczQuZ2V0UHlkaW9PYmplY3QoKS5QYXJhbWV0ZXJzLmdldCgnRU5EUE9JTlRfUzNfR0FURVdBWScpO1xuICAgICAgICAgICAgdmFyIHNsdWcgPSBfdGhpczQuZ2V0UHlkaW9PYmplY3QoKS51c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnlPYmplY3QoKS5nZXRTbHVnKCk7XG5cbiAgICAgICAgICAgIF9hd3NTZGsyWydkZWZhdWx0J10uY29uZmlnLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgYWNjZXNzS2V5SWQ6IGp3dCxcbiAgICAgICAgICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6ICdnYXRld2F5c2VjcmV0JyxcbiAgICAgICAgICAgICAgICBzM0ZvcmNlUGF0aFN0eWxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBwYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgQnVja2V0OiBcImlvXCIsXG4gICAgICAgICAgICAgICAgS2V5OiBzbHVnICsgbm9kZVBhdGgsXG4gICAgICAgICAgICAgICAgQm9keTogY29udGVudFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBzMyA9IG5ldyBfYXdzU2RrMlsnZGVmYXVsdCddLlMzKHsgZW5kcG9pbnQ6IHVybC5yZXBsYWNlKCcvaW8nLCAnJykgfSk7XG4gICAgICAgICAgICBzMy5wdXRPYmplY3QocGFyYW1zLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRDYWxsYmFjaygnT2snKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczQuZ2V0UHlkaW9PYmplY3QoKS5VSS5kaXNwbGF5TWVzc2FnZSgnRVJST1InLCBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkQ2FsbGJhY2soZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLm9wZW5WZXJzaW9uID0gZnVuY3Rpb24gb3BlblZlcnNpb24obm9kZSwgdmVyc2lvbklkKSB7XG5cbiAgICAgICAgdmFyIHB5ZGlvID0gdGhpcy5nZXRQeWRpb09iamVjdCgpO1xuICAgICAgICB2YXIgYWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50IHx8ICcnO1xuICAgICAgICB2YXIgYWdlbnRJc01vYmlsZSA9IGFnZW50LmluZGV4T2YoJ2lQaG9uZScpICE9PSAtMSB8fCBhZ2VudC5pbmRleE9mKCdpUG9kJykgIT09IC0xIHx8IGFnZW50LmluZGV4T2YoJ2lQYWQnKSAhPT0gLTEgfHwgYWdlbnQuaW5kZXhPZignaU9zJykgIT09IC0xO1xuICAgICAgICB2YXIgaGlkZGVuRm9ybSA9IHB5ZGlvICYmIHB5ZGlvLlVJICYmIHB5ZGlvLlVJLmhhc0hpZGRlbkRvd25sb2FkRm9ybSgpO1xuICAgICAgICB2YXIgc2x1ZyA9IHB5ZGlvLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeU9iamVjdCgpLmdldFNsdWcoKTtcblxuICAgICAgICB0aGlzLmJ1aWxkUHJlc2lnbmVkR2V0VXJsKG5vZGUsIGZ1bmN0aW9uICh1cmwpIHtcbiAgICAgICAgICAgIGlmIChhZ2VudElzTW9iaWxlIHx8ICFoaWRkZW5Gb3JtKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHlkaW8uVUkuc2VuZERvd25sb2FkVG9IaWRkZW5Gb3JtKG51bGwsIHsgcHJlc2lnbmVkVXJsOiB1cmwgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sICcnLCB7XG4gICAgICAgICAgICBCdWNrZXQ6ICdpbycsXG4gICAgICAgICAgICBLZXk6IHNsdWcgKyBub2RlLmdldFBhdGgoKSxcbiAgICAgICAgICAgIFZlcnNpb25JZDogdmVyc2lvbklkXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBQeWRpb0FwaS5wcm90b3R5cGUucmV2ZXJ0VG9WZXJzaW9uID0gZnVuY3Rpb24gcmV2ZXJ0VG9WZXJzaW9uKG5vZGUsIHZlcnNpb25JZCwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgICAgUHlkaW9BcGkuZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoand0KSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gX3RoaXM1LmdldFB5ZGlvT2JqZWN0KCkuUGFyYW1ldGVycy5nZXQoJ0VORFBPSU5UX1MzX0dBVEVXQVknKTtcbiAgICAgICAgICAgIHZhciBzbHVnID0gX3RoaXM1LmdldFB5ZGlvT2JqZWN0KCkudXNlci5nZXRBY3RpdmVSZXBvc2l0b3J5T2JqZWN0KCkuZ2V0U2x1ZygpO1xuXG4gICAgICAgICAgICBfYXdzU2RrMlsnZGVmYXVsdCddLmNvbmZpZy51cGRhdGUoe1xuICAgICAgICAgICAgICAgIGFjY2Vzc0tleUlkOiBqd3QsXG4gICAgICAgICAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiAnZ2F0ZXdheXNlY3JldCcsXG4gICAgICAgICAgICAgICAgczNGb3JjZVBhdGhTdHlsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIEJ1Y2tldDogXCJpb1wiLFxuICAgICAgICAgICAgICAgIEtleTogc2x1ZyArIG5vZGUuZ2V0UGF0aCgpLFxuICAgICAgICAgICAgICAgIENvcHlTb3VyY2U6IGVuY29kZVVSSUNvbXBvbmVudCgnaW8vJyArIHNsdWcgKyBub2RlLmdldFBhdGgoKSArICc/dmVyc2lvbklkPScgKyB2ZXJzaW9uSWQpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIHMzID0gbmV3IF9hd3NTZGsyWydkZWZhdWx0J10uUzMoeyBlbmRwb2ludDogdXJsLnJlcGxhY2UoJy9pbycsICcnKSB9KTtcbiAgICAgICAgICAgIHMzLmNvcHlPYmplY3QocGFyYW1zLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczUuZ2V0UHlkaW9PYmplY3QoKS5VSS5kaXNwbGF5TWVzc2FnZSgnRVJST1InLCBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygnQ29weSB2ZXJzaW9uIHRvIG9yaWdpbmFsIG5vZGUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIERldGVjdCBhIG1pbmlzaXRlX3Nlc3Npb24gcGFyYW1ldGVyIGluIHRoZSBVUkxcbiAgICAgKiBAcGFyYW0gc2VydmVyQWNjZXNzXG4gICAgICogQHJldHVybnMgc3RyaW5nfGJvb2xcbiAgICAgKi9cblxuICAgIFB5ZGlvQXBpLmRldGVjdE1pbmlzaXRlU2Vzc2lvbiA9IGZ1bmN0aW9uIGRldGVjdE1pbmlzaXRlU2Vzc2lvbihzZXJ2ZXJBY2Nlc3MpIHtcbiAgICAgICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgnLio/WyZcXFxcP10nICsgJ21pbmlzaXRlX3Nlc3Npb24nICsgJz0oLio/KSY/Lio/Jyk7XG4gICAgICAgIHZhciB2YWwgPSBzZXJ2ZXJBY2Nlc3MucmVwbGFjZShyZWdleCwgXCIkMVwiKTtcbiAgICAgICAgcmV0dXJuIHZhbCA9PT0gc2VydmVyQWNjZXNzID8gZmFsc2UgOiB2YWw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIERldGVjdHMgaWYgY3VycmVudCBicm93c2VyIHN1cHBvcnRzIEhUTUw1IFVwbG9hZC5cbiAgICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAgICovXG5cbiAgICBQeWRpb0FwaS5zdXBwb3J0c1VwbG9hZCA9IGZ1bmN0aW9uIHN1cHBvcnRzVXBsb2FkKCkge1xuICAgICAgICBpZiAod2luZG93LkNvbm5leGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5Gb3JtRGF0YSB8fCB3aW5kb3cuRmlsZVJlYWRlcjtcbiAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cualF1ZXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93LkZvcm1EYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSW5zdGFuY2lhdGUgYSBQeWRpb0FwaSBjbGllbnQgaWYgaXQncyBub3QgYWxyZWFkeSBpbnN0YW5jaWF0ZWQgYW5kIHJldHVybiBpdC5cbiAgICAgKiBAcmV0dXJucyBQeWRpb0FwaVxuICAgICAqL1xuXG4gICAgUHlkaW9BcGkuZ2V0Q2xpZW50ID0gZnVuY3Rpb24gZ2V0Q2xpZW50KCkge1xuICAgICAgICBpZiAoUHlkaW9BcGkuX1B5ZGlvQ2xpZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gUHlkaW9BcGkuX1B5ZGlvQ2xpZW50O1xuICAgICAgICB9XG4gICAgICAgIHZhciBjbGllbnQgPSBuZXcgUHlkaW9BcGkoKTtcbiAgICAgICAgUHlkaW9BcGkuX1B5ZGlvQ2xpZW50ID0gY2xpZW50O1xuICAgICAgICByZXR1cm4gY2xpZW50O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIGEgamF2YXNjcmlwdCBsaWJyYXJ5XG4gICAgICogQHBhcmFtIGZpbGVOYW1lIFN0cmluZ1xuICAgICAqIEBwYXJhbSBvbkxvYWRlZENvZGUgRnVuY3Rpb24gQ2FsbGJhY2tcbiAgICAgKiBAcGFyYW0gYVN5bmMgQm9vbGVhbiBsb2FkIGxpYnJhcnkgYXN5bmNocm9uZW91c2x5XG4gICAgICovXG5cbiAgICBQeWRpb0FwaS5sb2FkTGlicmFyeSA9IGZ1bmN0aW9uIGxvYWRMaWJyYXJ5KGZpbGVOYW1lLCBvbkxvYWRlZENvZGUsIGFTeW5jKSB7XG4gICAgICAgIGlmICh3aW5kb3cucHlkaW8gJiYgcHlkaW8uUGFyYW1ldGVycy5nZXQoXCJhanhwVmVyc2lvblwiKSAmJiBmaWxlTmFtZS5pbmRleE9mKFwiP1wiKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGZpbGVOYW1lICs9IFwiP3Y9XCIgKyBweWRpby5QYXJhbWV0ZXJzLmdldChcImFqeHBWZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIFB5ZGlvQXBpLl9saWJVcmwgPSBmYWxzZTtcbiAgICAgICAgaWYgKHdpbmRvdy5weWRpbyAmJiBweWRpby5QYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BSRUZJWF9VUkknKSkge1xuICAgICAgICAgICAgUHlkaW9BcGkuX2xpYlVybCA9IHB5ZGlvLlBhcmFtZXRlcnMuZ2V0KCdTRVJWRVJfUFJFRklYX1VSSScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNvbm4gPSBuZXcgX0Nvbm5leGlvbjJbJ2RlZmF1bHQnXSgpO1xuICAgICAgICBjb25uLl9saWJVcmwgPSBmYWxzZTtcbiAgICAgICAgaWYgKHB5ZGlvLlBhcmFtZXRlcnMuZ2V0KCdTRVJWRVJfUFJFRklYX1VSSScpKSB7XG4gICAgICAgICAgICBjb25uLl9saWJVcmwgPSBweWRpby5QYXJhbWV0ZXJzLmdldCgnU0VSVkVSX1BSRUZJWF9VUkknKTtcbiAgICAgICAgfVxuICAgICAgICBjb25uLmxvYWRMaWJyYXJ5KGZpbGVOYW1lLCBvbkxvYWRlZENvZGUsIGFTeW5jKTtcbiAgICB9O1xuXG4gICAgUHlkaW9BcGkucHJvdG90eXBlLnN3aXRjaExhbmd1YWdlID0gZnVuY3Rpb24gc3dpdGNoTGFuZ3VhZ2UobGFuZywgY29tcGxldGVDYWxsYmFjaykge1xuXG4gICAgICAgIHZhciB1cmwgPSBweWRpby5QYXJhbWV0ZXJzLmdldCgnRU5EUE9JTlRfUkVTVF9BUEknKSArICcvZnJvbnRlbmQvbWVzc2FnZXMvJyArIGxhbmc7XG4gICAgICAgIHdpbmRvdy5mZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ1xuICAgICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgcmVzcG9uc2UuanNvbigpLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBjb21wbGV0ZUNhbGxiYWNrKGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gUHlkaW9BcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBQeWRpb0FwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfbW9kZWxBanhwTm9kZSA9IHJlcXVpcmUoJy4uL21vZGVsL0FqeHBOb2RlJyk7XG5cbnZhciBfbW9kZWxBanhwTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFqeHBOb2RlKTtcblxudmFyIF91dGlsUGF0aFV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9QYXRoVXRpbHMnKTtcblxudmFyIF91dGlsUGF0aFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxQYXRoVXRpbHMpO1xuXG52YXIgX1B5ZGlvQXBpID0gcmVxdWlyZSgnLi9QeWRpb0FwaScpO1xuXG52YXIgX1B5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1B5ZGlvQXBpKTtcblxudmFyIF9tb2RlbE1ldGFOb2RlUHJvdmlkZXIgPSByZXF1aXJlKCcuLi9tb2RlbC9NZXRhTm9kZVByb3ZpZGVyJyk7XG5cbnZhciBfbW9kZWxNZXRhTm9kZVByb3ZpZGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsTWV0YU5vZGVQcm92aWRlcik7XG5cbnZhciBfbG9kYXNoRGVib3VuY2UgPSByZXF1aXJlKCdsb2Rhc2guZGVib3VuY2UnKTtcblxudmFyIF9sb2Rhc2hEZWJvdW5jZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sb2Rhc2hEZWJvdW5jZSk7XG5cbi8qKlxuICogV2ViU29ja2V0IGNsaWVudFxuICovXG5cbnZhciBSZWNvbm5lY3RpbmdXZWJTb2NrZXQgPSByZXF1aXJlKCdyZWNvbm5lY3Rpbmctd2Vic29ja2V0Jyk7XG5cbnZhciBQeWRpb1dlYlNvY2tldCA9IChmdW5jdGlvbiAoKSB7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBweWRpb09iamVjdCBQeWRpb1xuICAgICAqL1xuXG4gICAgZnVuY3Rpb24gUHlkaW9XZWJTb2NrZXQocHlkaW9PYmplY3QpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHlkaW9XZWJTb2NrZXQpO1xuXG4gICAgICAgIHRoaXMucHlkaW8gPSBweWRpb09iamVjdDtcblxuICAgICAgICB0aGlzLmNvbm5PcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMud3MgPSBudWxsO1xuICAgICAgICB0aGlzLnJlbG9hZFJlcG9zaXRvcmllc0RlYm91bmNlZCA9IF9sb2Rhc2hEZWJvdW5jZTJbJ2RlZmF1bHQnXShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpcy5weWRpby5yZWxvYWRSZXBvc2l0b3JpZXNMaXN0KCk7XG4gICAgICAgIH0sIDUwMCk7XG5cbiAgICAgICAgdGhpcy5weWRpby5vYnNlcnZlKFwicmVwb3NpdG9yeV9saXN0X3JlZnJlc2hlZFwiLCAoZnVuY3Rpb24gKGRhdGEpIHtcblxuICAgICAgICAgICAgdmFyIHJlcG9JZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChkYXRhLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHJlcG9JZCA9IGRhdGEuYWN0aXZlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnB5ZGlvLnJlcG9zaXRvcnlJZCkge1xuICAgICAgICAgICAgICAgIHJlcG9JZCA9IHRoaXMucHlkaW8ucmVwb3NpdG9yeUlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFyZXBvSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmNvbm5PcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBQeWRpb1dlYlNvY2tldC5wcm90b3R5cGUuaXNPcGVuID0gZnVuY3Rpb24gaXNPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uT3BlbiAmJiB0aGlzLndzICE9PSBudWxsO1xuICAgIH07XG5cbiAgICBQeWRpb1dlYlNvY2tldC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiBjbG9zZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5PcGVuIHx8IHRoaXMud3MgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndzLmNsb3NlKDEwMDAsICdDbG9zaW5nJywgeyBrZWVwQ2xvc2VkOiB0cnVlIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGEgY29ubmVjdGlvblxuICAgICAqL1xuXG4gICAgUHlkaW9XZWJTb2NrZXQucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbiBvcGVuKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgdXJsID0gdGhpcy5weWRpby5QYXJhbWV0ZXJzLmdldChcIkVORFBPSU5UX1dFQlNPQ0tFVFwiKTtcbiAgICAgICAgdGhpcy53cyA9IG5ldyBSZWNvbm5lY3RpbmdXZWJTb2NrZXQodXJsLCBbXSwge1xuICAgICAgICAgICAgbWF4UmVjb25uZWN0aW9uRGVsYXk6IDYwMDAwLFxuICAgICAgICAgICAgcmVjb25uZWN0aW9uRGVsYXlHcm93RmFjdG9yOiAxLjYsXG4gICAgICAgICAgICBtYXhSZXRyaWVzOiAxMFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLndzLmFkZEV2ZW50TGlzdGVuZXIoJ29wZW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpczIuY29ubk9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgUHlkaW9XZWJTb2NrZXQuc3Vic2NyaWJlSldUKF90aGlzMi53cywgdHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLndzLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLnBhcnNlV2Vic29ja2V0TWVzc2FnZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCdjbG9zZScsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgX3RoaXMyLmNvbm5PcGVuID0gZmFsc2U7XG4gICAgICAgICAgICBQeWRpb1dlYlNvY2tldC5sb2dDbG9zZShldmVudCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLndzLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoZXJyb3IuY29kZSA9PT0gJ0VIT1NURE9XTicpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJTb2NrZXQgbWF4UmV0cmllcyByZWFjaGVkLCBob3N0IGlzIGRvd24hJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBQeWRpb1dlYlNvY2tldC5wcm90b3R5cGUucmVmcmVzaCA9IGZ1bmN0aW9uIHJlZnJlc2goKSB7XG4gICAgICAgIGlmICh0aGlzLndzKSB7XG4gICAgICAgICAgICBQeWRpb1dlYlNvY2tldC5zdWJzY3JpYmVKV1QodGhpcy53cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBQeWRpb1dlYlNvY2tldC5wcm90b3R5cGUucGFyc2VXZWJzb2NrZXRNZXNzYWdlID0gZnVuY3Rpb24gcGFyc2VXZWJzb2NrZXRNZXNzYWdlKG1zZykge1xuICAgICAgICB2YXIgZG0gPSB0aGlzLnB5ZGlvLmdldENvbnRleHRIb2xkZXIoKTtcbiAgICAgICAgdmFyIGV2ZW50ID0gSlNPTi5wYXJzZShtc2cuZGF0YSk7XG4gICAgICAgIGlmIChldmVudCA9PT0gXCJkdW1wXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnRbJ0B0eXBlJ10pIHtcbiAgICAgICAgICAgIHRoaXMucHlkaW8uZmlyZShcIndlYnNvY2tldF9ldmVudDpcIiArIGV2ZW50WydAdHlwZSddLCBldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50WydAdHlwZSddICYmIGV2ZW50WydAdHlwZSddID09PSBcImlkbVwiKSB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZFJlcG9zaXRvcmllc0RlYm91bmNlZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudFsnVGFza1VwZGF0ZWQnXSAmJiBldmVudFsnSm9iJ10pIHtcbiAgICAgICAgICAgIHRoaXMucHlkaW8uZmlyZShcInRhc2tfbWVzc2FnZVwiLCBldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFldmVudC5UeXBlICYmIGV2ZW50LlRhcmdldCkge1xuICAgICAgICAgICAgZXZlbnQuVHlwZSA9IFwiQ1JFQVRFXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIGN1cnJlbnRSZXBvSWQgPSB0aGlzLnB5ZGlvLnVzZXIuZ2V0QWN0aXZlUmVwb3NpdG9yeSgpO1xuICAgICAgICBpZiAoIXRoaXMucHlkaW8udXNlci5yZXBvc2l0b3JpZXMuaGFzKGN1cnJlbnRSZXBvSWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGN1cnJlbnRSZXBvU2x1ZyA9IHRoaXMucHlkaW8udXNlci5yZXBvc2l0b3JpZXMuZ2V0KGN1cnJlbnRSZXBvSWQpLmdldFNsdWcoKTtcbiAgICAgICAgc3dpdGNoIChldmVudC5UeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwiQ1JFQVRFXCI6XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gUHlkaW9XZWJTb2NrZXQucGFyc2VFdmVudE5vZGUoZXZlbnQuVGFyZ2V0LCBjdXJyZW50UmVwb0lkLCBjdXJyZW50UmVwb1NsdWcpO1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmdldFBhdGgoKSA9PT0gXCJcIiB8fCB0YXJnZXQuZ2V0UGF0aCgpID09PSBcIi9cIikge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHByb2JhYmx5IGEgbmV3IGNlbGwgZm9sZGVyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkbS5hZGROb2RlKHRhcmdldCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIlVQREFURV9QQVRIXCI6XG4gICAgICAgICAgICBjYXNlIFwiVVBEQVRFX01FVEFcIjpcbiAgICAgICAgICAgIGNhc2UgXCJVUERBVEVfQ09OVEVOVFwiOlxuICAgICAgICAgICAgICAgIHRhcmdldCA9IFB5ZGlvV2ViU29ja2V0LnBhcnNlRXZlbnROb2RlKGV2ZW50LlRhcmdldCwgY3VycmVudFJlcG9JZCwgY3VycmVudFJlcG9TbHVnKTtcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LlNvdXJjZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3NvdXJjZSA9IFB5ZGlvV2ViU29ja2V0LnBhcnNlRXZlbnROb2RlKGV2ZW50LlNvdXJjZSwgY3VycmVudFJlcG9JZCwgY3VycmVudFJlcG9TbHVnKTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmdldE1ldGFkYXRhKCkuc2V0KFwib3JpZ2luYWxfcGF0aFwiLCBfc291cmNlLmdldFBhdGgoKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmdldE1ldGFkYXRhKCkuc2V0KFwib3JpZ2luYWxfcGF0aFwiLCB0YXJnZXQuZ2V0UGF0aCgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZG0udXBkYXRlTm9kZSh0YXJnZXQsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJERUxFVEVcIjpcbiAgICAgICAgICAgICAgICB2YXIgc291cmNlID0gUHlkaW9XZWJTb2NrZXQucGFyc2VFdmVudE5vZGUoZXZlbnQuU291cmNlLCBjdXJyZW50UmVwb0lkLCBjdXJyZW50UmVwb1NsdWcpO1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkbS5yZW1vdmVOb2RlQnlQYXRoKCcvJyArIHNvdXJjZS5nZXRQYXRoKCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBQeWRpb1dlYlNvY2tldC5wYXJzZUV2ZW50Tm9kZSA9IGZ1bmN0aW9uIHBhcnNlRXZlbnROb2RlKG9iaiwgY3VycmVudFJlcG9JZCwgY3VycmVudFJlcG9TbHVnKSB7XG4gICAgICAgIGlmICghb2JqKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd3NJZCA9IEpTT04ucGFyc2Uob2JqLk1ldGFTdG9yZS5FdmVudFdvcmtzcGFjZUlkKTtcbiAgICAgICAgaWYgKHdzSWQgIT09IGN1cnJlbnRSZXBvSWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfbW9kZWxNZXRhTm9kZVByb3ZpZGVyMlsnZGVmYXVsdCddLnBhcnNlVHJlZU5vZGUob2JqLCBjdXJyZW50UmVwb1NsdWcpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB3cyB7UmVjb25uZWN0aW5nV2ViU29ja2V0fVxuICAgICAqIEBwYXJhbSB3aXRoUmV0cmllcyBib29sXG4gICAgICogQHBhcmFtIHJldHJ5IGludGVnZXJcbiAgICAgKiBAcmV0dXJuIHsqfFByb21pc2UuPHN0cmluZz59XG4gICAgICovXG5cbiAgICBQeWRpb1dlYlNvY2tldC5zdWJzY3JpYmVKV1QgPSBmdW5jdGlvbiBzdWJzY3JpYmVKV1Qod3MpIHtcbiAgICAgICAgdmFyIHdpdGhSZXRyaWVzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG4gICAgICAgIHZhciByZXRyeSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgcmV0dXJuIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0T3JVcGRhdGVKd3QoKS50aGVuKGZ1bmN0aW9uIChqd3QpIHtcbiAgICAgICAgICAgIGlmICghand0ICYmIHdpdGhSZXRyaWVzICYmIHJldHJ5IDwgMykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdXZWJTb2NrZXQgY29ubmVjdGVkIGJ1dCB3aXRob3V0IHZhbGlkIEpXVCwgcmV0cnkgaW4gMTAgc2Vjb25kcycpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBQeWRpb1dlYlNvY2tldC5zdWJzY3JpYmVKV1Qod3MsIHdpdGhSZXRyaWVzLCByZXRyeSArIDEpO1xuICAgICAgICAgICAgICAgIH0sIDEwMDAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBcIkB0eXBlXCI6IFwic3Vic2NyaWJlXCIsXG4gICAgICAgICAgICAgICAgXCJqd3RcIjogand0XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBQeWRpb1dlYlNvY2tldC5sb2dDbG9zZSA9IGZ1bmN0aW9uIGxvZ0Nsb3NlKGV2ZW50KSB7XG4gICAgICAgIHZhciByZWFzb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAxMDAwOlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiTm9ybWFsIGNsb3N1cmUsIG1lYW5pbmcgdGhhdCB0aGUgcHVycG9zZSBmb3Igd2hpY2ggdGhlIGNvbm5lY3Rpb24gd2FzIGVzdGFibGlzaGVkIGhhcyBiZWVuIGZ1bGZpbGxlZC5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAwMTpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIkFuIGVuZHBvaW50IGlzIFxcXCJnb2luZyBhd2F5XFxcIiwgc3VjaCBhcyBhIHNlcnZlciBnb2luZyBkb3duIG9yIGEgYnJvd3NlciBoYXZpbmcgbmF2aWdhdGVkIGF3YXkgZnJvbSBhIHBhZ2UuXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDEwMDI6XG4gICAgICAgICAgICAgICAgcmVhc29uID0gXCJBbiBlbmRwb2ludCBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBkdWUgdG8gYSBwcm90b2NvbCBlcnJvclwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxMDAzOlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiQW4gZW5kcG9pbnQgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBpdCBoYXMgcmVjZWl2ZWQgYSB0eXBlIG9mIGRhdGEgaXQgY2Fubm90IGFjY2VwdCAoZS5nLiwgYW4gZW5kcG9pbnQgdGhhdCB1bmRlcnN0YW5kcyBvbmx5IHRleHQgZGF0YSBNQVkgc2VuZCB0aGlzIGlmIGl0IHJlY2VpdmVzIGEgYmluYXJ5IG1lc3NhZ2UpLlwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxMDA0OlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiUmVzZXJ2ZWQuIFRoZSBzcGVjaWZpYyBtZWFuaW5nIG1pZ2h0IGJlIGRlZmluZWQgaW4gdGhlIGZ1dHVyZS5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAwNTpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIk5vIHN0YXR1cyBjb2RlIHdhcyBhY3R1YWxseSBwcmVzZW50LlwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxMDA2OlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiVGhlIGNvbm5lY3Rpb24gd2FzIGNsb3NlZCBhYm5vcm1hbGx5LCBlLmcuLCB3aXRob3V0IHNlbmRpbmcgb3IgcmVjZWl2aW5nIGEgQ2xvc2UgY29udHJvbCBmcmFtZVwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxMDA3OlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiQW4gZW5kcG9pbnQgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBpdCBoYXMgcmVjZWl2ZWQgZGF0YSB3aXRoaW4gYSBtZXNzYWdlIHRoYXQgd2FzIG5vdCBjb25zaXN0ZW50IHdpdGggdGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UgKGUuZy4sIG5vbi1VVEYtOCBbaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzYyOV0gZGF0YSB3aXRoaW4gYSB0ZXh0IG1lc3NhZ2UpLlwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxMDA4OlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiQW4gZW5kcG9pbnQgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBpdCBoYXMgcmVjZWl2ZWQgYSBtZXNzYWdlIHRoYXQgXFxcInZpb2xhdGVzIGl0cyBwb2xpY3lcXFwiLiBUaGlzIHJlYXNvbiBpcyBnaXZlbiBlaXRoZXIgaWYgdGhlcmUgaXMgbm8gb3RoZXIgc3V0aWJsZSByZWFzb24sIG9yIGlmIHRoZXJlIGlzIGEgbmVlZCB0byBoaWRlIHNwZWNpZmljIGRldGFpbHMgYWJvdXQgdGhlIHBvbGljeS5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAwOTpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIkFuIGVuZHBvaW50IGlzIHRlcm1pbmF0aW5nIHRoZSBjb25uZWN0aW9uIGJlY2F1c2UgaXQgaGFzIHJlY2VpdmVkIGEgbWVzc2FnZSB0aGF0IGlzIHRvbyBiaWcgZm9yIGl0IHRvIHByb2Nlc3MuXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDEwMTA6XG4gICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgc3RhdHVzIGNvZGUgaXMgbm90IHVzZWQgYnkgdGhlIHNlcnZlciwgYmVjYXVzZSBpdCBjYW4gZmFpbCB0aGUgV2ViU29ja2V0IGhhbmRzaGFrZSBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiQW4gZW5kcG9pbnQgKGNsaWVudCkgaXMgdGVybWluYXRpbmcgdGhlIGNvbm5lY3Rpb24gYmVjYXVzZSBpdCBoYXMgZXhwZWN0ZWQgdGhlIHNlcnZlciB0byBuZWdvdGlhdGUgb25lIG9yIG1vcmUgZXh0ZW5zaW9uLCBidXQgdGhlIHNlcnZlciBkaWRuJ3QgcmV0dXJuIHRoZW0gaW4gdGhlIHJlc3BvbnNlIG1lc3NhZ2Ugb2YgdGhlIFdlYlNvY2tldCBoYW5kc2hha2UuIFNwZWNpZmljYWxseSwgdGhlIGV4dGVuc2lvbnMgdGhhdCBhcmUgbmVlZGVkIGFyZTogXCIgKyBldmVudC5yZWFzb247XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDEwMTE6XG4gICAgICAgICAgICAgICAgcmVhc29uID0gXCJBIHNlcnZlciBpcyB0ZXJtaW5hdGluZyB0aGUgY29ubmVjdGlvbiBiZWNhdXNlIGl0IGVuY291bnRlcmVkIGFuIHVuZXhwZWN0ZWQgY29uZGl0aW9uIHRoYXQgcHJldmVudGVkIGl0IGZyb20gZnVsZmlsbGluZyB0aGUgcmVxdWVzdC5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTAxNTpcbiAgICAgICAgICAgICAgICByZWFzb24gPSBcIlRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgZHVlIHRvIGEgZmFpbHVyZSB0byBwZXJmb3JtIGEgVExTIGhhbmRzaGFrZSAoZS5nLiwgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBjYW4ndCBiZSB2ZXJpZmllZCkuXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJlYXNvbiA9IFwiVW5rbm93biByZWFzb25cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQuY29kZSA+IDEwMDAgJiYgY29uc29sZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJXZWJTb2NrZXQgQ2xvc2VkIENvbm5lY3Rpb246XCIgKyByZWFzb24gKyBcIiAoY29kZSBcIiArIGV2ZW50LmNvZGUgKyBcIilcIik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIFB5ZGlvV2ViU29ja2V0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUHlkaW9XZWJTb2NrZXQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX3V0aWxYTUxVdGlscyA9IHJlcXVpcmUoJy4uL3V0aWwvWE1MVXRpbHMnKTtcblxudmFyIF91dGlsWE1MVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbFhNTFV0aWxzKTtcblxudmFyIF9QeWRpbyA9IHJlcXVpcmUoJy4uL1B5ZGlvJyk7XG5cbnZhciBfUHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUHlkaW8pO1xuXG52YXIgU3lzdGVtSlMgPSByZXF1aXJlKCdzeXN0ZW1qcycpO1xuXG4vKipcbiAqIEEgbWFuYWdlciB0aGF0IGNhbiBoYW5kbGUgdGhlIGxvYWRpbmcgb2YgSlMsIENTUyBhbmQgY2hlY2tzIGRlcGVuZGVuY2llc1xuICovXG5cbnZhciBSZXNvdXJjZXNNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXNvdXJjZXNNYW5hZ2VyKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzb3VyY2VzTWFuYWdlcik7XG5cbiAgICAgICAgdGhpcy5tYWluRm9ybUNvbnRhaW5lcklkID0gJ2FsbF9mb3Jtcyc7XG4gICAgICAgIHRoaXMucmVzb3VyY2VzID0ge307XG4gICAgICAgIHRoaXMubG9hZGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIEphdmFzY3JpcHQgcmVzb3VyY2VcbiAgICAgKiBAcGFyYW0gZmlsZU5hbWUgU3RyaW5nXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBTdHJpbmdcbiAgICAgKi9cblxuICAgIFJlc291cmNlc01hbmFnZXIucHJvdG90eXBlLmFkZEpTUmVzb3VyY2UgPSBmdW5jdGlvbiBhZGRKU1Jlc291cmNlKGZpbGVOYW1lLCBjbGFzc05hbWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlc291cmNlcy5qcykge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXMuanMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc291cmNlcy5qcy5wdXNoKHtcbiAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlTmFtZSxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICAgICAgYXV0b2xvYWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgQ1NTIHJlc291cmNlXG4gICAgICogQHBhcmFtIGZpbGVOYW1lIFN0cmluZ1xuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5wcm90b3R5cGUuYWRkQ1NTUmVzb3VyY2UgPSBmdW5jdGlvbiBhZGRDU1NSZXNvdXJjZShmaWxlTmFtZSkge1xuICAgICAgICBpZiAoIXRoaXMucmVzb3VyY2VzLmNzcykge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXMuY3NzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNvdXJjZXMuY3NzLnB1c2goZmlsZU5hbWUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgRk9STSBmcm9tIGh0bWwgc25pcHBlclxuICAgICAqIEBwYXJhbSBmb3JtSWQgU3RyaW5nXG4gICAgICogQHBhcmFtIGh0bWxTbmlwcGV0IFN0cmluZ1xuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5wcm90b3R5cGUuYWRkR3VpRm9ybSA9IGZ1bmN0aW9uIGFkZEd1aUZvcm0oZm9ybUlkLCBodG1sU25pcHBldCkge1xuICAgICAgICBpZiAoIXRoaXMucmVzb3VyY2VzLmZvcm1zKSB7XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlcy5mb3JtcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc291cmNlcy5mb3Jtcy5zZXQoZm9ybUlkLCBodG1sU25pcHBldCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZCBhIGRlcGVuZGVuY3kgdG8gYW5vdGhlciBwbHVnaW5cbiAgICAgKiBAcGFyYW0gZGF0YSBPYmplY3RcbiAgICAgKi9cblxuICAgIFJlc291cmNlc01hbmFnZXIucHJvdG90eXBlLmFkZERlcGVuZGVuY3kgPSBmdW5jdGlvbiBhZGREZXBlbmRlbmN5KGRhdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlc291cmNlcy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzLmRlcGVuZGVuY2llcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzb3VyY2VzLmRlcGVuZGVuY2llcy5wdXNoKGRhdGEpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBzb21lIGRlcGVuZGVuY2llcyBtdXN0IGJlIGxvYWRlZCBiZWZvcmVcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLnByb3RvdHlwZS5oYXNEZXBlbmRlbmNpZXMgPSBmdW5jdGlvbiBoYXNEZXBlbmRlbmNpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5kZXBlbmRlbmNpZXMgfHwgZmFsc2U7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgcmVzb3VyY2VzXG4gICAgICogQHBhcmFtIHJlc291cmNlc1JlZ2lzdHJ5IFB5ZGlvIHJlc291cmNlcyByZWdpc3RyeVxuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5wcm90b3R5cGUubG9hZCA9IGZ1bmN0aW9uIGxvYWQocmVzb3VyY2VzUmVnaXN0cnkpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIganNBdXRvbG9hZE9ubHkgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gRnVuY1V0aWxzLkVtcHR5IDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIGlmICh0aGlzLmxvYWRlZCkge1xuICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5oYXNEZXBlbmRlbmNpZXMoKSAmJiAhdGhpcy5kZXBlbmRlbmNpZXNMb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzLmRlcGVuZGVuY2llcy5mb3JFYWNoKChmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2VzUmVnaXN0cnlbZWxdKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIExvYWQgZGVwZW5kZW5jaWVzIGFuZCB0cnkgYWdhaW5cbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzUmVnaXN0cnlbZWxdLmxvYWQocmVzb3VyY2VzUmVnaXN0cnksIGZhbHNlLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXBlbmRlbmNpZXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkKHJlc291cmNlc1JlZ2lzdHJ5LCBmYWxzZSwgY2FsbGJhY2spO1xuICAgICAgICAgICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZXNvdXJjZXMuZm9ybXMpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzLmZvcm1zLmZvckVhY2goKGZ1bmN0aW9uICh2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgICAgICAgLy8gUkVNT1ZFRFxuICAgICAgICAgICAgICAgIC8vdGhpcy5sb2FkR3VpRm9ybShrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlcy5qcykge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgaXQgPSBfdGhpcy5yZXNvdXJjZXMuanMudmFsdWVzKCk7XG4gICAgICAgICAgICAgICAgdmFyIGNiID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG9iamVjdCA9IGl0Lm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9iamVjdC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpzQXV0b2xvYWRPbmx5ICYmICFvYmplY3QudmFsdWUuYXV0b2xvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZEpTUmVzb3VyY2Uob2JqZWN0LnZhbHVlLmZpbGVOYW1lLCBvYmplY3QudmFsdWUuY2xhc3NOYW1lLCBjYiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkuYmluZChfdGhpcyk7XG4gICAgICAgICAgICAgICAgY2IoKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlcy5jc3MpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzLmNzcy5mb3JFYWNoKChmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRDU1NSZXNvdXJjZSh2YWx1ZSk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIGEgamF2YXNjcmlwdCBmaWxlXG4gICAgICogQHBhcmFtIGZpbGVOYW1lIFN0cmluZ1xuICAgICAqIEBwYXJhbSBjbGFzc05hbWUgU3RyaW5nXG4gICAgICAgICogQHBhcmFtIGNhbGxiYWNrIEZ1bmN0aW9uXG4gICAgICAgICogQHBhcmFtIGFTeW5jIEJvb2xlYW5cbiAgICAgKi9cblxuICAgIFJlc291cmNlc01hbmFnZXIucHJvdG90eXBlLmxvYWRKU1Jlc291cmNlID0gZnVuY3Rpb24gbG9hZEpTUmVzb3VyY2UoZmlsZU5hbWUsIGNsYXNzTmFtZSwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGFTeW5jID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGFyZ3VtZW50c1szXTtcblxuICAgICAgICBpZiAoIVJlc291cmNlc01hbmFnZXIuX19jb25maWdzUGFyc2VkKSB7XG4gICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRBdXRvTG9hZFJlc291cmNlcygpO1xuICAgICAgICB9XG4gICAgICAgIFN5c3RlbUpTWydpbXBvcnQnXShjbGFzc05hbWUpLnRoZW4oY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIGEgQ1NTIGZpbGVcbiAgICAgKiBAcGFyYW0gZmlsZU5hbWUgU3RyaW5nXG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLnByb3RvdHlwZS5sb2FkQ1NTUmVzb3VyY2UgPSBmdW5jdGlvbiBsb2FkQ1NTUmVzb3VyY2UoZmlsZU5hbWUpIHtcblxuICAgICAgICBpZiAoX1B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkuUGFyYW1ldGVycy5nZXQoJ1NFUlZFUl9QUkVGSVhfVVJJJykpIHtcbiAgICAgICAgICAgIGZpbGVOYW1lID0gX1B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkuUGFyYW1ldGVycy5nZXQoJ1NFUlZFUl9QUkVGSVhfVVJJJykgKyBmaWxlTmFtZTtcbiAgICAgICAgfVxuICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lICsgXCI/dj1cIiArIF9QeWRpbzJbJ2RlZmF1bHQnXS5nZXRWZXJzaW9uKCk7XG5cbiAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7XG4gICAgICAgIHZhciBsaW5rcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdsaW5rJyk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlua3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBsaW5rID0gbGlua3NbaV07XG4gICAgICAgICAgICBpZiAobGluay5yZWwgPT09ICdzdHlsZXNoZWV0JyAmJiBsaW5rLmhyZWYuZW5kc1dpdGgoZmlsZU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO2JyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgICAgIHZhciBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICAgICAgICAgIHZhciBjc3NOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgY3NzTm9kZS50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgICAgICAgIGNzc05vZGUucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICAgICAgY3NzTm9kZS5ocmVmID0gZmlsZU5hbWU7XG4gICAgICAgICAgICBjc3NOb2RlLm1lZGlhID0gJ3NjcmVlbic7XG4gICAgICAgICAgICBoZWFkLmFwcGVuZENoaWxkKGNzc05vZGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgdGhlIHJlc291cmNlcyBmcm9tIFhNTFxuICAgICAqIEBwYXJhbSBub2RlIFhNTE5vZGVcbiAgICAgKi9cblxuICAgIFJlc291cmNlc01hbmFnZXIucHJvdG90eXBlLmxvYWRGcm9tWG1sTm9kZSA9IGZ1bmN0aW9uIGxvYWRGcm9tWG1sTm9kZShub2RlKSB7XG4gICAgICAgIHZhciBjbEZvcm0gPSB7fSxcbiAgICAgICAgICAgIGsgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09PSBcInJlc291cmNlc1wiKSB7XG4gICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGROb2Rlc1trXS5ub2RlTmFtZSA9PT0gJ2pzJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEpTUmVzb3VyY2UoUmVzb3VyY2VzTWFuYWdlci5nZXRGaWxlT3JGYWxsYmFjayhub2RlLmNoaWxkTm9kZXNba10pLCBub2RlLmNoaWxkTm9kZXNba10uZ2V0QXR0cmlidXRlKCdjbGFzc05hbWUnKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkTm9kZXNba10ubm9kZU5hbWUgPT09ICdjc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkQ1NTUmVzb3VyY2UoUmVzb3VyY2VzTWFuYWdlci5nZXRGaWxlT3JGYWxsYmFjayhub2RlLmNoaWxkTm9kZXNba10pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGROb2Rlc1trXS5ub2RlTmFtZSA9PT0gJ2ltZ19saWJyYXJ5Jykge1xuICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmFkZEltYWdlTGlicmFyeShub2RlLmNoaWxkTm9kZXNba10uZ2V0QXR0cmlidXRlKCdhbGlhcycpLCBub2RlLmNoaWxkTm9kZXNba10uZ2V0QXR0cmlidXRlKCdwYXRoJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVOYW1lID09PSBcImRlcGVuZGVuY2llc1wiKSB7XG4gICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGROb2Rlc1trXS5ub2RlTmFtZSA9PT0gXCJwbHVnaW5SZXNvdXJjZXNcIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZERlcGVuZGVuY3kobm9kZS5jaGlsZE5vZGVzW2tdLmdldEF0dHJpYnV0ZShcInBsdWdpbk5hbWVcIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVOYW1lID09PSBcImNsaWVudEZvcm1cIiAmJiBub2RlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIGlmICghbm9kZS5nZXRBdHRyaWJ1dGUoXCJ0aGVtZVwiKSB8fCBub2RlLmdldEF0dHJpYnV0ZShcInRoZW1lXCIpID09PSBfUHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5QYXJhbWV0ZXJzLmdldChcInRoZW1lXCIpKSB7XG4gICAgICAgICAgICAgICAgY2xGb3JtID0geyBmb3JtSWQ6IG5vZGUuZ2V0QXR0cmlidXRlKFwiaWRcIiksIGZvcm1Db2RlOiBub2RlLmZpcnN0Q2hpbGQubm9kZVZhbHVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsRm9ybS5mb3JtSWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkR3VpRm9ybShjbEZvcm0uZm9ybUlkLCBjbEZvcm0uZm9ybUNvZGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGFsaWFzTmFtZVxuICAgICAqIEBwYXJhbSBhbGlhc1BhdGhcbiAgICAgKiBAdG9kbyBNT1ZFIE9VVFNJREU/XG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLmFkZEltYWdlTGlicmFyeSA9IGZ1bmN0aW9uIGFkZEltYWdlTGlicmFyeShhbGlhc05hbWUsIGFsaWFzUGF0aCkge1xuICAgICAgICBpZiAoIXdpbmRvdy5BanhwSW1hZ2VMaWJyYXJpZXMpIHdpbmRvdy5BanhwSW1hZ2VMaWJyYXJpZXMgPSB7fTtcbiAgICAgICAgd2luZG93LkFqeHBJbWFnZUxpYnJhcmllc1thbGlhc05hbWVdID0gYWxpYXNQYXRoO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIHRoZSBkZWZhdWx0IGltYWdlcyBwYXRoXG4gICAgICogQHBhcmFtIHNyYyBJY29uIHNvdXJjZVxuICAgICAqIEBwYXJhbSBkZWZhdWx0UGF0aCBEZWZhdWx0IHBhdGgsIGNhbiBjb250YWluIElDT05fU0laRVxuICAgICAqIEBwYXJhbSBzaXplIEludGVnZXIgc2l6ZSBvcHRpb25hbFxuICAgICAqIEByZXR1cm5zIHN0cmluZ1xuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5yZXNvbHZlSW1hZ2VTb3VyY2UgPSBmdW5jdGlvbiByZXNvbHZlSW1hZ2VTb3VyY2Uoc3JjLCBkZWZhdWx0UGF0aCwgc2l6ZSkge1xuICAgICAgICBpZiAoIXNyYykgcmV0dXJuIFwiXCI7XG4gICAgICAgIHZhciBpbWFnZXNGb2xkZXIgPSBhanhwUmVzb3VyY2VzRm9sZGVyICsgJy9pbWFnZXMnO1xuICAgICAgICBpZiAocHlkaW9Cb290c3RyYXAucGFyYW1ldGVycy5nZXQoJ2FqeHBJbWFnZXNDb21tb24nKSkge1xuICAgICAgICAgICAgaW1hZ2VzRm9sZGVyID0gaW1hZ2VzRm9sZGVyLnJlcGxhY2UoJy8nICsgcHlkaW9Cb290c3RyYXAucGFyYW1ldGVycy5nZXQoJ3RoZW1lJykgKyAnLycsICcvY29tbW9uLycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlZmF1bHRQYXRoICYmIGRlZmF1bHRQYXRoWzBdICE9PSAnLycpIHtcbiAgICAgICAgICAgIGRlZmF1bHRQYXRoID0gJy8nICsgZGVmYXVsdFBhdGg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdpbmRvdy5BanhwSW1hZ2VMaWJyYXJpZXMgfHwgc3JjLmluZGV4T2YoXCIvXCIpID09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gaW1hZ2VzRm9sZGVyICsgKGRlZmF1bHRQYXRoID8gc2l6ZSA/IGRlZmF1bHRQYXRoLnJlcGxhY2UoXCJJQ09OX1NJWkVcIiwgc2l6ZSkgOiBkZWZhdWx0UGF0aCA6ICcnKSArICcvJyArIHNyYztcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmFkaWMgPSBzcmMuc3Vic3RyaW5nKDAsIHNyYy5pbmRleE9mKFwiL1wiKSk7XG4gICAgICAgIGlmICh3aW5kb3cuQWp4cEltYWdlTGlicmFyaWVzW3JhZGljXSkge1xuICAgICAgICAgICAgc3JjID0gc3JjLnJlcGxhY2UocmFkaWMsIHdpbmRvdy5BanhwSW1hZ2VMaWJyYXJpZXNbcmFkaWNdKTtcbiAgICAgICAgICAgIGlmIChweWRpb0Jvb3RzdHJhcC5wYXJhbWV0ZXJzLmdldChcIlNFUlZFUl9QUkVGSVhfVVJJXCIpKSB7XG4gICAgICAgICAgICAgICAgc3JjID0gcHlkaW9Cb290c3RyYXAucGFyYW1ldGVycy5nZXQoXCJTRVJWRVJfUFJFRklYX1VSSVwiKSArIHNyYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzaXplID8gc3JjLnJlcGxhY2UoXCJJQ09OX1NJWkVcIiwgc2l6ZSkgOiBzcmM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaW1hZ2VzRm9sZGVyICsgKGRlZmF1bHRQYXRoID8gc2l6ZSA/IGRlZmF1bHRQYXRoLnJlcGxhY2UoXCJJQ09OX1NJWkVcIiwgc2l6ZSkgOiBkZWZhdWx0UGF0aCA6ICcnKSArICcvJyArIHNyYztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAqIENoZWNrIGlmIHJlc291cmNlcyBhcmUgdGFnZ2VkIGF1dG9sb2FkIGFuZCBsb2FkIHRoZW1cbiAgICAqIEBwYXJhbSByZWdpc3RyeSBET01Eb2N1bWVudCBYTUwgUmVnaXN0cnlcbiAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkQXV0b0xvYWRSZXNvdXJjZXMgPSBmdW5jdGlvbiBsb2FkQXV0b0xvYWRSZXNvdXJjZXMoKSB7XG4gICAgICAgIHZhciByZWdpc3RyeSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgaWYgKCFyZWdpc3RyeSkge1xuICAgICAgICAgICAgcmVnaXN0cnkgPSBfUHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5SZWdpc3RyeS5nZXRYTUwoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdmVyc2lvbiA9IF9QeWRpbzJbJ2RlZmF1bHQnXS5nZXRWZXJzaW9uKCk7XG4gICAgICAgIHZhciBtYW5hZ2VyID0gbmV3IFJlc291cmNlc01hbmFnZXIoKTtcbiAgICAgICAgdmFyIGpzTm9kZXMgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0Tm9kZXMocmVnaXN0cnksICdwbHVnaW5zLyovY2xpZW50X3NldHRpbmdzL3Jlc291cmNlcy9qcycpO1xuICAgICAgICB2YXIgbm9kZSA9IHVuZGVmaW5lZDtcblxuICAgICAgICB2YXIgc3lzanNNYXAgPSB7fTtcbiAgICAgICAgdmFyIHN5c2pzTWV0YSA9IHtcbiAgICAgICAgICAgICcqJzogeyBhdXRob3JpemF0aW9uOiB0cnVlIH1cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBqc05vZGVzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9pdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdKCk7Oykge1xuICAgICAgICAgICAgaWYgKF9pc0FycmF5KSB7XG4gICAgICAgICAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrO1xuICAgICAgICAgICAgICAgIG5vZGUgPSBfaXRlcmF0b3JbX2krK107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7XG4gICAgICAgICAgICAgICAgbm9kZSA9IF9pLnZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgbmFtZXNwYWNlID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ2NsYXNzTmFtZScpO1xuICAgICAgICAgICAgdmFyIGZpbGVwYXRoID0gUmVzb3VyY2VzTWFuYWdlci5nZXRGaWxlT3JGYWxsYmFjayhub2RlKTtcbiAgICAgICAgICAgIHZhciBkZXBzID0gW107XG4gICAgICAgICAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoJ2RlcGVuZHMnKSkge1xuICAgICAgICAgICAgICAgIGRlcHMgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGVwZW5kcycpLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoJ2V4cG9zZScpKSB7XG4gICAgICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5fX3JlcXVpcmVzW25vZGUuZ2V0QXR0cmlidXRlKCdleHBvc2UnKV0gPSBuYW1lc3BhY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzeXNqc01hcFtuYW1lc3BhY2VdID0gZmlsZXBhdGggKyBcIj92PVwiICsgdmVyc2lvbjtcbiAgICAgICAgICAgIHN5c2pzTWV0YVtuYW1lc3BhY2VdID0geyBmb3JtYXQ6ICdnbG9iYWwnLCBkZXBzOiBkZXBzIH07XG4gICAgICAgIH1cbiAgICAgICAgU3lzdGVtSlMuY29uZmlnKHsgbWFwOiBzeXNqc01hcCwgbWV0YTogc3lzanNNZXRhIH0pO1xuICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLl9fY29uZmlnc1BhcnNlZCA9IHRydWU7XG5cbiAgICAgICAgdmFyIGltZ05vZGVzID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdE5vZGVzKHJlZ2lzdHJ5LCAncGx1Z2lucy8qL2NsaWVudF9zZXR0aW5ncy9yZXNvdXJjZXMvaW1nX2xpYnJhcnknKTtcbiAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IGltZ05vZGVzLCBfaXNBcnJheTIgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjIpLCBfaTIgPSAwLCBfaXRlcmF0b3IyID0gX2lzQXJyYXkyID8gX2l0ZXJhdG9yMiA6IF9pdGVyYXRvcjJbU3ltYm9sLml0ZXJhdG9yXSgpOzspIHtcbiAgICAgICAgICAgIGlmIChfaXNBcnJheTIpIHtcbiAgICAgICAgICAgICAgICBpZiAoX2kyID49IF9pdGVyYXRvcjIubGVuZ3RoKSBicmVhaztcbiAgICAgICAgICAgICAgICBub2RlID0gX2l0ZXJhdG9yMltfaTIrK107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIF9pMiA9IF9pdGVyYXRvcjIubmV4dCgpO1xuICAgICAgICAgICAgICAgIGlmIChfaTIuZG9uZSkgYnJlYWs7XG4gICAgICAgICAgICAgICAgbm9kZSA9IF9pMi52YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5hZGRJbWFnZUxpYnJhcnkobm9kZS5nZXRBdHRyaWJ1dGUoJ2FsaWFzJyksIG5vZGUuZ2V0QXR0cmlidXRlKCdwYXRoJykpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjc3NOb2RlcyA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3ROb2RlcyhyZWdpc3RyeSwgJ3BsdWdpbnMvKi9jbGllbnRfc2V0dGluZ3MvcmVzb3VyY2VzL2Nzc1tAYXV0b2xvYWQ9XCJ0cnVlXCJdJyk7XG4gICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSBjc3NOb2RlcywgX2lzQXJyYXkzID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IzKSwgX2kzID0gMCwgX2l0ZXJhdG9yMyA9IF9pc0FycmF5MyA/IF9pdGVyYXRvcjMgOiBfaXRlcmF0b3IzW1N5bWJvbC5pdGVyYXRvcl0oKTs7KSB7XG4gICAgICAgICAgICBpZiAoX2lzQXJyYXkzKSB7XG4gICAgICAgICAgICAgICAgaWYgKF9pMyA+PSBfaXRlcmF0b3IzLmxlbmd0aCkgYnJlYWs7XG4gICAgICAgICAgICAgICAgbm9kZSA9IF9pdGVyYXRvcjNbX2kzKytdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBfaTMgPSBfaXRlcmF0b3IzLm5leHQoKTtcbiAgICAgICAgICAgICAgICBpZiAoX2kzLmRvbmUpIGJyZWFrO1xuICAgICAgICAgICAgICAgIG5vZGUgPSBfaTMudmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1hbmFnZXIubG9hZENTU1Jlc291cmNlKFJlc291cmNlc01hbmFnZXIuZ2V0RmlsZU9yRmFsbGJhY2sobm9kZSkpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFJlc291cmNlc01hbmFnZXIuZ2V0RmlsZU9yRmFsbGJhY2sgPSBmdW5jdGlvbiBnZXRGaWxlT3JGYWxsYmFjayhub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmdldEF0dHJpYnV0ZSgnZmFsbGJhY2tDb25kaXRpb24nKSAmJiBldmFsKG5vZGUuZ2V0QXR0cmlidXRlKCdmYWxsYmFja0NvbmRpdGlvbicpKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZ2V0QXR0cmlidXRlKCdmYWxsYmFja0ZpbGUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmdldEF0dHJpYnV0ZSgnZmlsZScpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFJlc291cmNlc01hbmFnZXIucmVxdWlyZUxpYiA9IGZ1bmN0aW9uIHJlcXVpcmVMaWIobW9kdWxlKSB7XG4gICAgICAgIHZhciBwcm9taXNlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgaWYgKHdpbmRvd1ttb2R1bGVdKSByZXR1cm4gd2luZG93W21vZHVsZV07XG4gICAgICAgIGlmIChSZXNvdXJjZXNNYW5hZ2VyLl9fcmVxdWlyZXMgJiYgUmVzb3VyY2VzTWFuYWdlci5fX3JlcXVpcmVzW21vZHVsZV0pIHtcbiAgICAgICAgICAgIHZhciBnbG9iYWxOUyA9IFJlc291cmNlc01hbmFnZXIuX19yZXF1aXJlc1ttb2R1bGVdO1xuICAgICAgICAgICAgaWYgKHByb21pc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gU3lzdGVtSlNbJ2ltcG9ydCddKGdsb2JhbE5TKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3aW5kb3dbZ2xvYmFsTlNdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvd1tnbG9iYWxOU107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyaW5nIGEgcmVtb3RlIGxpYiB0aGF0IHdhcyBub3QgcHJldmlvdXNseSBsb2FkZWQgKCcgKyBnbG9iYWxOUyArICcpLiBZb3UgbWF5IGJlIG1pc3NpbmcgYSBkZXBlbmRlbmN5IGRlY2xhcmF0aW9uIGluIG1hbmlmZXN0LCBvciB5b3UgY2FuIHVzZSByZXF1aXJlTGliKG1vZHVsZU5hbWUsIHRydWUpIHRvIHJlY2VpdmUgYSBQcm9taXNlLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmluZCBhbnkgcmVmZXJlbmNlIHRvIGxpYiAnICsgbW9kdWxlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIG1vZHVsZSBpcyByZWdpc3RlcmVkIChub3QgbmVjZXNzYXJpbHkgbG9hZGVkIHlldClcbiAgICAgKiBAcGFyYW0gY2xhc3NOYW1lXG4gICAgICogQHJldHVybnMge01hcHxib29sZWFufVxuICAgICAqL1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5tb2R1bGVJc0F2YWlsYWJsZSA9IGZ1bmN0aW9uIG1vZHVsZUlzQXZhaWxhYmxlKGNsYXNzTmFtZSkge1xuICAgICAgICB2YXIgY29uZmlnID0gU3lzdGVtSlMuZ2V0Q29uZmlnKCk7XG4gICAgICAgIHJldHVybiBjb25maWcubWFwICYmIGNvbmZpZy5tYXBbY2xhc3NOYW1lXTtcbiAgICB9O1xuXG4gICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkQ2xhc3Nlc0FuZEFwcGx5ID0gZnVuY3Rpb24gbG9hZENsYXNzZXNBbmRBcHBseShjbGFzc05hbWVzLCBjYWxsYmFja0Z1bmMpIHtcbiAgICAgICAgaWYgKCFSZXNvdXJjZXNNYW5hZ2VyLl9fY29uZmlnc1BhcnNlZCkge1xuICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkQXV0b0xvYWRSZXNvdXJjZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBQcm9taXNlLmFsbChjbGFzc05hbWVzLm1hcChmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgcmV0dXJuIFN5c3RlbUpTWydpbXBvcnQnXShjKTtcbiAgICAgICAgfSkpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY2FsbGJhY2tGdW5jKCk7XG4gICAgICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCBMb2FkaW5nICcgKyBjbGFzc05hbWVzLmpvaW4oJywgJykgKyAnIDogJywgcmVhc29uKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgY2xhc3MgYW5kIHJldHVybiBhcyBhIHByb21pc2UgLSBkbyBub3QgY2F0Y2ggZXJyb3JcbiAgICAgKiBAcGFyYW0gY2xhc3NOYW1lXG4gICAgICogQHJldHVybiB7KnxQcm9taXNlfFByb21pc2VMaWtlPFQ+fFByb21pc2U8VD59XG4gICAgICovXG5cbiAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRDbGFzcyA9IGZ1bmN0aW9uIGxvYWRDbGFzcyhjbGFzc05hbWUpIHtcbiAgICAgICAgaWYgKCFSZXNvdXJjZXNNYW5hZ2VyLl9fY29uZmlnc1BhcnNlZCkge1xuICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkQXV0b0xvYWRSZXNvdXJjZXMoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3lzdGVtSlNbJ2ltcG9ydCddKGNsYXNzTmFtZSk7XG4gICAgfTtcblxuICAgIFJlc291cmNlc01hbmFnZXIuZGV0ZWN0TW9kdWxlVG9Mb2FkQW5kQXBwbHkgPSBmdW5jdGlvbiBkZXRlY3RNb2R1bGVUb0xvYWRBbmRBcHBseShjYWxsYmFja1N0cmluZywgY2FsbGJhY2tGdW5jKSB7XG4gICAgICAgIHZhciBhc3luYyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgaWYgKCFSZXNvdXJjZXNNYW5hZ2VyLl9fY29uZmlnc1BhcnNlZCkge1xuICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkQXV0b0xvYWRSZXNvdXJjZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2xhc3NOYW1lID0gY2FsbGJhY2tTdHJpbmcuc3BsaXQoJy4nLCAxKS5zaGlmdCgpO1xuICAgICAgICBpZiAoYXN5bmMpIHtcbiAgICAgICAgICAgIFN5c3RlbUpTWydpbXBvcnQnXShjbGFzc05hbWUpLnRoZW4oY2FsbGJhY2tGdW5jKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFJlc291cmNlc01hbmFnZXIubG9hZFNjcmlwdFN5bmMoY2xhc3NOYW1lLCBjYWxsYmFja0Z1bmMpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFJlc291cmNlc01hbmFnZXIubG9hZFNjcmlwdFN5bmMgPSBmdW5jdGlvbiBsb2FkU2NyaXB0U3luYyhuYW1lLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLmFzeW5jKGZ1bmN0aW9uIGxvYWRTY3JpcHRTeW5jJChjb250ZXh0JDIkMCkge1xuICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoY29udGV4dCQyJDAucHJldiA9IGNvbnRleHQkMiQwLm5leHQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQkMiQwLm5leHQgPSAyO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLmF3cmFwKFN5c3RlbUpTWydpbXBvcnQnXShuYW1lKSk7XG5cbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQkMiQwLnN0b3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgbnVsbCwgdGhpcyk7XG4gICAgfTtcblxuICAgIHJldHVybiBSZXNvdXJjZXNNYW5hZ2VyO1xufSkoKTtcblxuUmVzb3VyY2VzTWFuYWdlci5fX2NvbmZpZ3NQYXJzZWQgPSBmYWxzZTtcblJlc291cmNlc01hbmFnZXIuX19yZXF1aXJlcyA9IHt9O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXNvdXJjZXNNYW5hZ2VyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxOCBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9QeWRpb0FwaSA9IHJlcXVpcmUoJy4vUHlkaW9BcGknKTtcblxudmFyIF9QeWRpb0FwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9QeWRpb0FwaSk7XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9tb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcblxudmFyIF9tb21lbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9tZW50KTtcblxudmFyIF9nZW5BcGlKb2JzU2VydmljZUFwaSA9IHJlcXVpcmUoXCIuL2dlbi9hcGkvSm9ic1NlcnZpY2VBcGlcIik7XG5cbnZhciBfZ2VuQXBpSm9ic1NlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2VuQXBpSm9ic1NlcnZpY2VBcGkpO1xuXG52YXIgX2dlbk1vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0ID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdFwiKTtcblxudmFyIF9nZW5Nb2RlbFJlc3RVc2VySm9iUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbFJlc3RVc2VySm9iUmVxdWVzdCk7XG5cbnZhciBfZ2VuQXBpRnJvbnRlbmRTZXJ2aWNlQXBpID0gcmVxdWlyZShcIi4vZ2VuL2FwaS9Gcm9udGVuZFNlcnZpY2VBcGlcIik7XG5cbnZhciBfZ2VuQXBpRnJvbnRlbmRTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbkFwaUZyb250ZW5kU2VydmljZUFwaSk7XG5cbnZhciBfZ2VuTW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCA9IHJlcXVpcmUoXCIuL2dlbi9tb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdFwiKTtcblxudmFyIF9nZW5Nb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QpO1xuXG52YXIgX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlID0gcmVxdWlyZShcIi4vZ2VuL21vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZVwiKTtcblxudmFyIF9nZW5Nb2RlbFJlc3RGcm9udFNlc3Npb25SZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZW5Nb2RlbFJlc3RGcm9udFNlc3Npb25SZXNwb25zZSk7XG5cbnZhciBfSWRtQXBpID0gcmVxdWlyZSgnLi9JZG1BcGknKTtcblxudmFyIF9JZG1BcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtQXBpKTtcblxuLy8gT3ZlcnJpZGUgcGFyc2VEYXRlIG1ldGhvZCB0byBzdXBwb3J0IElTTzg2MDEgY3Jvc3MtYnJvd3NlclxuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCcuL2dlbi9pbmRleCcpO1xuXG52YXIgQXBpQ2xpZW50ID0gX3JlcXVpcmUuQXBpQ2xpZW50O1xuQXBpQ2xpZW50LnBhcnNlRGF0ZSA9IGZ1bmN0aW9uIChzdHIpIHtcbiAgICByZXR1cm4gX21vbWVudDJbJ2RlZmF1bHQnXShzdHIpLnRvRGF0ZSgpO1xufTtcblxuLy8gT3ZlcnJpZGUgY2FsbEFwaSBNZXRob2RcblxudmFyIEp3dEFwaUNsaWVudCA9IChmdW5jdGlvbiAoX0FwaUNsaWVudCkge1xuICAgIF9pbmhlcml0cyhKd3RBcGlDbGllbnQsIF9BcGlDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHlkaW9PYmplY3Qge1B5ZGlvfVxuICAgICAqL1xuXG4gICAgZnVuY3Rpb24gSnd0QXBpQ2xpZW50KHB5ZGlvT2JqZWN0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKd3RBcGlDbGllbnQpO1xuXG4gICAgICAgIF9BcGlDbGllbnQuY2FsbCh0aGlzKTtcbiAgICAgICAgdGhpcy5iYXNlUGF0aCA9IHB5ZGlvT2JqZWN0LlBhcmFtZXRlcnMuZ2V0KCdFTkRQT0lOVF9SRVNUX0FQSScpO1xuICAgICAgICB0aGlzLmVuYWJsZUNvb2tpZXMgPSB0cnVlOyAvLyBlbmFibGVzIHdpdGhDcmVkZW50aWFscygpXG4gICAgICAgIHRoaXMucHlkaW8gPSBweWRpb09iamVjdDtcbiAgICAgICAgcHlkaW9PYmplY3Qub2JzZXJ2ZSgnYmVmb3JlQXBwbHktbG9nb3V0JywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLkpXVF9EQVRBID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVxdWVzdCB7UmVzdEZyb250U2Vzc2lvblJlcXVlc3R9XG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUuand0RW5kcG9pbnQgPSBmdW5jdGlvbiBqd3RFbmRwb2ludChyZXF1ZXN0KSB7XG4gICAgICAgIHZhciBoZWFkZXJzID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMucHlkaW8uUGFyYW1ldGVycy5oYXMoJ01JTklTSVRFJykpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSB7IFwiWC1QeWRpby1NaW5pc2l0ZVwiOiB0aGlzLnB5ZGlvLlBhcmFtZXRlcnMuZ2V0KCdNSU5JU0lURScpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9BcGlDbGllbnQucHJvdG90eXBlLmNhbGxBcGkuY2FsbCh0aGlzLCAnL2Zyb250ZW5kL3Nlc3Npb24nLCAnUE9TVCcsIG51bGwsIG51bGwsIGhlYWRlcnMsIG51bGwsIHJlcXVlc3QsIFtdLCBbJ2FwcGxpY2F0aW9uL2pzb24nXSwgWydhcHBsaWNhdGlvbi9qc29uJ10sIF9nZW5Nb2RlbFJlc3RGcm9udFNlc3Npb25SZXNwb25zZTJbJ2RlZmF1bHQnXSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGZyb250Snd0UmVzcG9uc2Uge1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZX1cbiAgICAgKi9cblxuICAgIEp3dEFwaUNsaWVudC5zdG9yZUp3dExvY2FsbHkgPSBmdW5jdGlvbiBzdG9yZUp3dExvY2FsbHkoZnJvbnRKd3RSZXNwb25zZSkge1xuICAgICAgICB2YXIgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgICAgIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5KV1RfREFUQSA9IHtcbiAgICAgICAgICAgIGp3dDogZnJvbnRKd3RSZXNwb25zZS5KV1QsXG4gICAgICAgICAgICBleHBpcmF0aW9uVGltZTogbm93ICsgZnJvbnRKd3RSZXNwb25zZS5FeHBpcmVUaW1lXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENhbGwgc2Vzc2lvbiBlbmRwb2ludCBmb3IgZGVzdHJveWluZyBzZXNzaW9uXG4gICAgICovXG5cbiAgICBKd3RBcGlDbGllbnQucHJvdG90eXBlLnNlc3Npb25Mb2dvdXQgPSBmdW5jdGlvbiBzZXNzaW9uTG9nb3V0KCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2dlbkFwaUZyb250ZW5kU2VydmljZUFwaTJbJ2RlZmF1bHQnXSh0aGlzKTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QyWydkZWZhdWx0J10oKTtcbiAgICAgICAgcmVxdWVzdC5Mb2dvdXQgPSB0cnVlO1xuICAgICAgICB0aGlzLmp3dEVuZHBvaW50KHJlcXVlc3QpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBfUHlkaW9BcGkyWydkZWZhdWx0J10uSldUX0RBVEEgPSBudWxsO1xuICAgICAgICAgICAgX3RoaXMucHlkaW8ubG9hZFhtbFJlZ2lzdHJ5KCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgQXV0aEluZm8gcmVxdWVzdCB3aXRoIHR5cGUgXCJjcmVkZW50aWFsc1wiXG4gICAgICogQHBhcmFtIGxvZ2luIHN0cmluZ1xuICAgICAqIEBwYXJhbSBwYXNzd29yZCBzdHJpbmdcbiAgICAgKiBAcGFyYW0gcmVsb2FkUmVnaXN0cnkgYm9vbFxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn1cbiAgICAgKi9cblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUuand0RnJvbUNyZWRlbnRpYWxzID0gZnVuY3Rpb24gand0RnJvbUNyZWRlbnRpYWxzKGxvZ2luLCBwYXNzd29yZCkge1xuICAgICAgICB2YXIgcmVsb2FkUmVnaXN0cnkgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyB0cnVlIDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmp3dFdpdGhBdXRoSW5mbyh7IGxvZ2luOiBsb2dpbiwgcGFzc3dvcmQ6IHBhc3N3b3JkLCB0eXBlOiBcImNyZWRlbnRpYWxzXCIgfSwgcmVsb2FkUmVnaXN0cnkpO1xuICAgIH07XG5cbiAgICBKd3RBcGlDbGllbnQucHJvdG90eXBlLmp3dFdpdGhBdXRoSW5mbyA9IGZ1bmN0aW9uIGp3dFdpdGhBdXRoSW5mbyhhdXRoSW5mbykge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgcmVsb2FkUmVnaXN0cnkgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyB0cnVlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IF9nZW5Nb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0MlsnZGVmYXVsdCddKCk7XG4gICAgICAgIHJlcXVlc3QuQXV0aEluZm8gPSBhdXRoSW5mbztcbiAgICAgICAgcmV0dXJuIHRoaXMuand0RW5kcG9pbnQocmVxdWVzdCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhICYmIHJlc3BvbnNlLmRhdGEuSldUKSB7XG4gICAgICAgICAgICAgICAgSnd0QXBpQ2xpZW50LnN0b3JlSnd0TG9jYWxseShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICBpZiAocmVsb2FkUmVnaXN0cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhcmdldFJlcG9zaXRvcnkgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXMyLnB5ZGlvLlBhcmFtZXRlcnMuaGFzKCdTVEFSVF9SRVBPU0lUT1JZJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFJlcG9zaXRvcnkgPSBfdGhpczIucHlkaW8uUGFyYW1ldGVycy5nZXQoXCJTVEFSVF9SRVBPU0lUT1JZXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5weWRpby5sb2FkWG1sUmVnaXN0cnkobnVsbCwgbnVsbCwgdGFyZ2V0UmVwb3NpdG9yeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5kYXRhICYmIHJlc3BvbnNlLmRhdGEuVHJpZ2dlcikge1xuICAgICAgICAgICAgICAgIF90aGlzMi5weWRpby5nZXRDb250cm9sbGVyKCkuZmlyZUFjdGlvbihyZXNwb25zZS5kYXRhLlRyaWdnZXIsIHJlc3BvbnNlLmRhdGEuVHJpZ2dlckluZm8pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBfUHlkaW9BcGkyWydkZWZhdWx0J10uSldUX0RBVEEgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUuZ2V0T3JVcGRhdGVKd3QgPSBmdW5jdGlvbiBnZXRPclVwZGF0ZUp3dCgpIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIG5vdyA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICAgICAgICBpZiAoX1B5ZGlvQXBpMlsnZGVmYXVsdCddLkpXVF9EQVRBICYmIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5KV1RfREFUQVsnand0J10gJiYgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLkpXVF9EQVRBWydleHBpcmF0aW9uVGltZSddID49IG5vdykge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShfUHlkaW9BcGkyWydkZWZhdWx0J10uSldUX0RBVEFbJ2p3dCddKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfUHlkaW9BcGkyWydkZWZhdWx0J10uUmVzb2x2aW5nSnd0KSB7XG4gICAgICAgICAgICByZXR1cm4gX1B5ZGlvQXBpMlsnZGVmYXVsdCddLlJlc29sdmluZ0p3dDtcbiAgICAgICAgfVxuXG4gICAgICAgIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5SZXNvbHZpbmdKd3QgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuXG4gICAgICAgICAgICAvLyBUcnkgdG8gbG9hZCBKV1QgZnJvbSBzZXNzaW9uXG4gICAgICAgICAgICBfdGhpczMuand0RW5kcG9pbnQobmV3IF9nZW5Nb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0MlsnZGVmYXVsdCddKCkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEgJiYgcmVzcG9uc2UuZGF0YS5KV1QpIHtcbiAgICAgICAgICAgICAgICAgICAgSnd0QXBpQ2xpZW50LnN0b3JlSnd0TG9jYWxseShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5kYXRhLkpXVCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5kYXRhICYmIHJlc3BvbnNlLmRhdGEuVHJpZ2dlcikge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczMucHlkaW8uZ2V0Q29udHJvbGxlcigpLmZpcmVBY3Rpb24ocmVzcG9uc2UuZGF0YS5UcmlnZ2VyLCByZXNwb25zZS5kYXRhLlRyaWdnZXJJbmZvKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgnJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX1B5ZGlvQXBpMlsnZGVmYXVsdCddLkpXVF9EQVRBID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5SZXNvbHZpbmdKd3QgPSBudWxsO1xuICAgICAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5yZXNwb25zZSAmJiBlLnJlc3BvbnNlLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMy5weWRpby5nZXRDb250cm9sbGVyKCkuZmlyZUFjdGlvbignbG9nb3V0Jyk7XG4gICAgICAgICAgICAgICAgICAgIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5SZXNvbHZpbmdKd3QgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfUHlkaW9BcGkyWydkZWZhdWx0J10uSldUX0RBVEEgPSBudWxsO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoJycpO1xuICAgICAgICAgICAgICAgIF9QeWRpb0FwaTJbJ2RlZmF1bHQnXS5SZXNvbHZpbmdKd3QgPSBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBfUHlkaW9BcGkyWydkZWZhdWx0J10uUmVzb2x2aW5nSnd0O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJbnZva2VzIHRoZSBSRVNUIHNlcnZpY2UgdXNpbmcgdGhlIHN1cHBsaWVkIHNldHRpbmdzIGFuZCBwYXJhbWV0ZXJzLlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBwYXRoIFRoZSBiYXNlIFVSTCB0byBpbnZva2UuXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGh0dHBNZXRob2QgVGhlIEhUVFAgbWV0aG9kIHRvIHVzZS5cbiAgICAgKiBAcGFyYW0ge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBwYXRoUGFyYW1zIEEgbWFwIG9mIHBhdGggcGFyYW1ldGVycyBhbmQgdGhlaXIgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0LjxTdHJpbmcsIE9iamVjdD59IHF1ZXJ5UGFyYW1zIEEgbWFwIG9mIHF1ZXJ5IHBhcmFtZXRlcnMgYW5kIHRoZWlyIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdC48U3RyaW5nLCBPYmplY3Q+fSBoZWFkZXJQYXJhbXMgQSBtYXAgb2YgaGVhZGVyIHBhcmFtZXRlcnMgYW5kIHRoZWlyIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge09iamVjdC48U3RyaW5nLCBPYmplY3Q+fSBmb3JtUGFyYW1zIEEgbWFwIG9mIGZvcm0gcGFyYW1ldGVycyBhbmQgdGhlaXIgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBib2R5UGFyYW0gVGhlIHZhbHVlIHRvIHBhc3MgYXMgdGhlIHJlcXVlc3QgYm9keS5cbiAgICAgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBhdXRoTmFtZXMgQW4gYXJyYXkgb2YgYXV0aGVudGljYXRpb24gdHlwZSBuYW1lcy5cbiAgICAgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBjb250ZW50VHlwZXMgQW4gYXJyYXkgb2YgcmVxdWVzdCBNSU1FIHR5cGVzLlxuICAgICAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGFjY2VwdHMgQW4gYXJyYXkgb2YgYWNjZXB0YWJsZSByZXNwb25zZSBNSU1FIHR5cGVzLlxuICAgICAqIEBwYXJhbSB7KFN0cmluZ3xBcnJheXxPYmplY3RGdW5jdGlvbil9IHJldHVyblR5cGUgVGhlIHJlcXVpcmVkIHR5cGUgdG8gcmV0dXJuOyBjYW4gYmUgYSBzdHJpbmcgZm9yIHNpbXBsZSB0eXBlcyBvciB0aGVcbiAgICAgKiBjb25zdHJ1Y3RvciBmb3IgYSBjb21wbGV4IHR5cGUuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IEEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9IG9iamVjdC5cbiAgICAgKi9cblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUuY2FsbEFwaSA9IGZ1bmN0aW9uIGNhbGxBcGkocGF0aCwgaHR0cE1ldGhvZCwgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgYm9keVBhcmFtLCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSkge1xuICAgICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5weWRpby51c2VyICYmIHRoaXMucHlkaW8udXNlci5nZXRQcmVmZXJlbmNlKFwibGFuZ1wiKSkge1xuICAgICAgICAgICAgaGVhZGVyUGFyYW1zW1wiWC1QeWRpby1MYW5ndWFnZVwiXSA9IHRoaXMucHlkaW8udXNlci5nZXRQcmVmZXJlbmNlKFwibGFuZ1wiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG5cbiAgICAgICAgICAgIF90aGlzNC5nZXRPclVwZGF0ZUp3dCgpLnRoZW4oZnVuY3Rpb24gKGp3dCkge1xuICAgICAgICAgICAgICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAoand0KSB7XG4gICAgICAgICAgICAgICAgICAgIGF1dGhOYW1lcy5wdXNoKCdvYXV0aDInKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM0LmF1dGhlbnRpY2F0aW9ucyA9IHsgJ29hdXRoMic6IHsgdHlwZTogJ29hdXRoMicsIGFjY2Vzc1Rva2VuOiBqd3QgfSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgcCA9IF9BcGlDbGllbnQucHJvdG90eXBlLmNhbGxBcGkuY2FsbChfdGhpczQsIHBhdGgsIGh0dHBNZXRob2QsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIGJvZHlQYXJhbSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICAgICAgICAgICAgICAgIHAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczQuaGFuZGxlRXJyb3IocmVhc29uKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM0LmhhbmRsZUVycm9yKHJlYXNvbik7XG4gICAgICAgICAgICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUuaGFuZGxlRXJyb3IgPSBmdW5jdGlvbiBoYW5kbGVFcnJvcihyZWFzb24pIHtcbiAgICAgICAgdmFyIG1zZyA9IHJlYXNvbi5tZXNzYWdlO1xuICAgICAgICBpZiAocmVhc29uLnJlc3BvbnNlICYmIHJlYXNvbi5yZXNwb25zZS5ib2R5KSB7XG4gICAgICAgICAgICBtc2cgPSByZWFzb24ucmVzcG9uc2UuYm9keTtcbiAgICAgICAgfSBlbHNlIGlmIChyZWFzb24ucmVzcG9uc2UgJiYgcmVhc29uLnJlc3BvbnNlLnRleHQpIHtcbiAgICAgICAgICAgIG1zZyA9IHJlYXNvbi5yZXNwb25zZS50ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWFzb24ucmVzcG9uc2UgJiYgcmVhc29uLnJlc3BvbnNlLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICB0aGlzLnB5ZGlvLmdldENvbnRyb2xsZXIoKS5maXJlQWN0aW9uKCdsb2dvdXQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVhc29uLnJlc3BvbnNlICYmIHJlYXNvbi5yZXNwb25zZS5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgLy8gNDA0IG1heSBoYXBwZW5cbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnNDA0IG5vdCBmb3VuZCcsIG1zZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHlkaW8gJiYgdGhpcy5weWRpby5VSSkge1xuICAgICAgICAgICAgdGhpcy5weWRpby5VSS5kaXNwbGF5TWVzc2FnZSgnRVJST1InLCBtc2cpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25zb2xlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlYXNvbik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZVxuICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIEp3dEFwaUNsaWVudC5wcm90b3R5cGUudXNlckpvYiA9IGZ1bmN0aW9uIHVzZXJKb2IobmFtZSwgcGFyYW1ldGVycykge1xuICAgICAgICB2YXIgYXBpID0gbmV3IF9nZW5BcGlKb2JzU2VydmljZUFwaTJbJ2RlZmF1bHQnXSh0aGlzKTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2dlbk1vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0MlsnZGVmYXVsdCddKCk7XG4gICAgICAgIHJlcXVlc3QuSm9iTmFtZSA9IG5hbWU7XG4gICAgICAgIHJlcXVlc3QuSnNvblBhcmFtZXRlcnMgPSBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKTtcbiAgICAgICAgcmV0dXJuIGFwaS51c2VyQ3JlYXRlSm9iKG5hbWUsIHJlcXVlc3QpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtJZG1BcGl9XG4gICAgICovXG5cbiAgICBKd3RBcGlDbGllbnQucHJvdG90eXBlLmdldElkbUFwaSA9IGZ1bmN0aW9uIGdldElkbUFwaSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBfSWRtQXBpMlsnZGVmYXVsdCddKHRoaXMpO1xuICAgIH07XG5cbiAgICByZXR1cm4gSnd0QXBpQ2xpZW50O1xufSkoQXBpQ2xpZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSnd0QXBpQ2xpZW50O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX3N1cGVyYWdlbnQgPSByZXF1aXJlKFwic3VwZXJhZ2VudFwiKTtcblxudmFyIF9zdXBlcmFnZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N1cGVyYWdlbnQpO1xuXG52YXIgX3F1ZXJ5c3RyaW5nID0gcmVxdWlyZShcInF1ZXJ5c3RyaW5nXCIpO1xuXG52YXIgX3F1ZXJ5c3RyaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3F1ZXJ5c3RyaW5nKTtcblxuLyoqXG4qIEBtb2R1bGUgQXBpQ2xpZW50XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxuLyoqXG4qIE1hbmFnZXMgbG93IGxldmVsIGNsaWVudC1zZXJ2ZXIgY29tbXVuaWNhdGlvbnMsIHBhcmFtZXRlciBtYXJzaGFsbGluZywgZXRjLiBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBuZWVkIGZvciBhblxuKiBhcHBsaWNhdGlvbiB0byB1c2UgdGhpcyBjbGFzcyBkaXJlY3RseSAtIHRoZSAqQXBpIGFuZCBtb2RlbCBjbGFzc2VzIHByb3ZpZGUgdGhlIHB1YmxpYyBBUEkgZm9yIHRoZSBzZXJ2aWNlLiBUaGVcbiogY29udGVudHMgb2YgdGhpcyBmaWxlIHNob3VsZCBiZSByZWdhcmRlZCBhcyBpbnRlcm5hbCBidXQgYXJlIGRvY3VtZW50ZWQgZm9yIGNvbXBsZXRlbmVzcy5cbiogQGFsaWFzIG1vZHVsZTpBcGlDbGllbnRcbiogQGNsYXNzXG4qL1xuXG52YXIgQXBpQ2xpZW50ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBBcGlDbGllbnQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBcGlDbGllbnQpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgYmFzZSBVUkwgYWdhaW5zdCB3aGljaCB0byByZXNvbHZlIGV2ZXJ5IEFQSSBjYWxsJ3MgKHJlbGF0aXZlKSBwYXRoLlxuICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAgICAgKiBAZGVmYXVsdCBodHRwOi8vbG9jYWxob3N0XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJhc2VQYXRoID0gJ2h0dHA6Ly9sb2NhbGhvc3QnLnJlcGxhY2UoL1xcLyskLywgJycpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgYXV0aGVudGljYXRpb24gbWV0aG9kcyB0byBiZSBpbmNsdWRlZCBmb3IgYWxsIEFQSSBjYWxscy5cbiAgICAgICAgICogQHR5cGUge0FycmF5LjxTdHJpbmc+fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbnMgPSB7fTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGRlZmF1bHQgSFRUUCBoZWFkZXJzIHRvIGJlIGluY2x1ZGVkIGZvciBhbGwgQVBJIGNhbGxzLlxuICAgICAgICAgKiBAdHlwZSB7QXJyYXkuPFN0cmluZz59XG4gICAgICAgICAqIEBkZWZhdWx0IHt9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzID0ge307XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBkZWZhdWx0IEhUVFAgdGltZW91dCBmb3IgYWxsIEFQSSBjYWxscy5cbiAgICAgICAgICogQHR5cGUge051bWJlcn1cbiAgICAgICAgICogQGRlZmF1bHQgNjAwMDBcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudGltZW91dCA9IDYwMDAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBzZXQgdG8gZmFsc2UgYW4gYWRkaXRpb25hbCB0aW1lc3RhbXAgcGFyYW1ldGVyIGlzIGFkZGVkIHRvIGFsbCBBUEkgR0VUIGNhbGxzIHRvXG4gICAgICAgICAqIHByZXZlbnQgYnJvd3NlciBjYWNoaW5nXG4gICAgICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNhY2hlID0gdHJ1ZTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgc2V0IHRvIHRydWUsIHRoZSBjbGllbnQgd2lsbCBzYXZlIHRoZSBjb29raWVzIGZyb20gZWFjaCBzZXJ2ZXJcbiAgICAgICAgICogcmVzcG9uc2UsIGFuZCByZXR1cm4gdGhlbSBpbiB0aGUgbmV4dCByZXF1ZXN0LlxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5lbmFibGVDb29raWVzID0gZmFsc2U7XG5cbiAgICAgICAgLypcbiAgICAgICAgICogVXNlZCB0byBzYXZlIGFuZCByZXR1cm4gY29va2llcyBpbiBhIG5vZGUuanMgKG5vbi1icm93c2VyKSBzZXR0aW5nLFxuICAgICAgICAgKiBpZiB0aGlzLmVuYWJsZUNvb2tpZXMgaXMgc2V0IHRvIHRydWUuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWdlbnQgPSBuZXcgX3N1cGVyYWdlbnQyW1wiZGVmYXVsdFwiXS5hZ2VudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBUaGUgZGVmYXVsdCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uLlxuICAgICogQHR5cGUge21vZHVsZTpBcGlDbGllbnR9XG4gICAgKi9cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgYW4gYWN0dWFsIHBhcmFtZXRlci5cbiAgICAqIEBwYXJhbSBwYXJhbSBUaGUgYWN0dWFsIHBhcmFtZXRlci5cbiAgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgPGNvZGU+cGFyYW08L2NvZGU+LlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLnBhcmFtVG9TdHJpbmcgPSBmdW5jdGlvbiBwYXJhbVRvU3RyaW5nKHBhcmFtKSB7XG4gICAgICAgIGlmIChwYXJhbSA9PSB1bmRlZmluZWQgfHwgcGFyYW0gPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJhbSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJhbS50b0pTT04oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbS50b1N0cmluZygpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEJ1aWxkcyBmdWxsIFVSTCBieSBhcHBlbmRpbmcgdGhlIGdpdmVuIHBhdGggdG8gdGhlIGJhc2UgVVJMIGFuZCByZXBsYWNpbmcgcGF0aCBwYXJhbWV0ZXIgcGxhY2UtaG9sZGVycyB3aXRoIHBhcmFtZXRlciB2YWx1ZXMuXG4gICAgKiBOT1RFOiBxdWVyeSBwYXJhbWV0ZXJzIGFyZSBub3QgaGFuZGxlZCBoZXJlLlxuICAgICogQHBhcmFtIHtTdHJpbmd9IHBhdGggVGhlIHBhdGggdG8gYXBwZW5kIHRvIHRoZSBiYXNlIFVSTC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBwYXRoUGFyYW1zIFRoZSBwYXJhbWV0ZXIgdmFsdWVzIHRvIGFwcGVuZC5cbiAgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBlbmNvZGVkIHBhdGggd2l0aCBwYXJhbWV0ZXIgdmFsdWVzIHN1YnN0aXR1dGVkLlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLmJ1aWxkVXJsID0gZnVuY3Rpb24gYnVpbGRVcmwocGF0aCwgcGF0aFBhcmFtcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIGlmICghcGF0aC5tYXRjaCgvXlxcLy8pKSB7XG4gICAgICAgICAgICBwYXRoID0gJy8nICsgcGF0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB1cmwgPSB0aGlzLmJhc2VQYXRoICsgcGF0aDtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoL1xceyhbXFx3LV0rKVxcfS9nLCBmdW5jdGlvbiAoZnVsbE1hdGNoLCBrZXkpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChwYXRoUGFyYW1zLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IF90aGlzLnBhcmFtVG9TdHJpbmcocGF0aFBhcmFtc1trZXldKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBmdWxsTWF0Y2g7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdXJsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBjb250ZW50IHR5cGUgcmVwcmVzZW50cyBKU09OLjxicj5cbiAgICAqIEpTT04gY29udGVudCB0eXBlIGV4YW1wbGVzOjxicj5cbiAgICAqIDx1bD5cbiAgICAqIDxsaT5hcHBsaWNhdGlvbi9qc29uPC9saT5cbiAgICAqIDxsaT5hcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURjg8L2xpPlxuICAgICogPGxpPkFQUExJQ0FUSU9OL0pTT048L2xpPlxuICAgICogPC91bD5cbiAgICAqIEBwYXJhbSB7U3RyaW5nfSBjb250ZW50VHlwZSBUaGUgTUlNRSBjb250ZW50IHR5cGUgdG8gY2hlY2suXG4gICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgPGNvZGU+Y29udGVudFR5cGU8L2NvZGU+IHJlcHJlc2VudHMgSlNPTiwgb3RoZXJ3aXNlIDxjb2RlPmZhbHNlPC9jb2RlPi5cbiAgICAqL1xuXG4gICAgQXBpQ2xpZW50LnByb3RvdHlwZS5pc0pzb25NaW1lID0gZnVuY3Rpb24gaXNKc29uTWltZShjb250ZW50VHlwZSkge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihjb250ZW50VHlwZSAhPSBudWxsICYmIGNvbnRlbnRUeXBlLm1hdGNoKC9eYXBwbGljYXRpb25cXC9qc29uKDsuKik/JC9pKSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQ2hvb3NlcyBhIGNvbnRlbnQgdHlwZSBmcm9tIHRoZSBnaXZlbiBhcnJheSwgd2l0aCBKU09OIHByZWZlcnJlZDsgaS5lLiByZXR1cm4gSlNPTiBpZiBpbmNsdWRlZCwgb3RoZXJ3aXNlIHJldHVybiB0aGUgZmlyc3QuXG4gICAgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBjb250ZW50VHlwZXNcbiAgICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBjaG9zZW4gY29udGVudCB0eXBlLCBwcmVmZXJyaW5nIEpTT04uXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5wcm90b3R5cGUuanNvblByZWZlcnJlZE1pbWUgPSBmdW5jdGlvbiBqc29uUHJlZmVycmVkTWltZShjb250ZW50VHlwZXMpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb250ZW50VHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzSnNvbk1pbWUoY29udGVudFR5cGVzW2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50VHlwZXNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGVudFR5cGVzWzBdO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBwYXJhbWV0ZXIgdmFsdWUgcmVwcmVzZW50cyBmaWxlLWxpa2UgY29udGVudC5cbiAgICAqIEBwYXJhbSBwYXJhbSBUaGUgcGFyYW1ldGVyIHRvIGNoZWNrLlxuICAgICogQHJldHVybnMge0Jvb2xlYW59IDxjb2RlPnRydWU8L2NvZGU+IGlmIDxjb2RlPnBhcmFtPC9jb2RlPiByZXByZXNlbnRzIGEgZmlsZS5cbiAgICAqL1xuXG4gICAgQXBpQ2xpZW50LnByb3RvdHlwZS5pc0ZpbGVQYXJhbSA9IGZ1bmN0aW9uIGlzRmlsZVBhcmFtKHBhcmFtKSB7XG4gICAgICAgIC8vIGZzLlJlYWRTdHJlYW0gaW4gTm9kZS5qcyBhbmQgRWxlY3Ryb24gKGJ1dCBub3QgaW4gcnVudGltZSBsaWtlIGJyb3dzZXJpZnkpXG4gICAgICAgIGlmICh0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIGZzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHt9XG4gICAgICAgICAgICBpZiAoZnMgJiYgZnMuUmVhZFN0cmVhbSAmJiBwYXJhbSBpbnN0YW5jZW9mIGZzLlJlYWRTdHJlYW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJ1ZmZlciBpbiBOb2RlLmpzXG4gICAgICAgIGlmICh0eXBlb2YgQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIHBhcmFtIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJsb2IgaW4gYnJvd3NlclxuICAgICAgICBpZiAodHlwZW9mIEJsb2IgPT09ICdmdW5jdGlvbicgJiYgcGFyYW0gaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpbGUgaW4gYnJvd3NlciAoaXQgc2VlbXMgRmlsZSBvYmplY3QgaXMgYWxzbyBpbnN0YW5jZSBvZiBCbG9iLCBidXQga2VlcCB0aGlzIGZvciBzYWZlKVxuICAgICAgICBpZiAodHlwZW9mIEZpbGUgPT09ICdmdW5jdGlvbicgJiYgcGFyYW0gaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBOb3JtYWxpemVzIHBhcmFtZXRlciB2YWx1ZXM6XG4gICAgKiA8dWw+XG4gICAgKiA8bGk+cmVtb3ZlIG5pbHM8L2xpPlxuICAgICogPGxpPmtlZXAgZmlsZXMgYW5kIGFycmF5czwvbGk+XG4gICAgKiA8bGk+Zm9ybWF0IHRvIHN0cmluZyB3aXRoIGBwYXJhbVRvU3RyaW5nYCBmb3Igb3RoZXIgY2FzZXM8L2xpPlxuICAgICogPC91bD5cbiAgICAqIEBwYXJhbSB7T2JqZWN0LjxTdHJpbmcsIE9iamVjdD59IHBhcmFtcyBUaGUgcGFyYW1ldGVycyBhcyBvYmplY3QgcHJvcGVydGllcy5cbiAgICAqIEByZXR1cm5zIHtPYmplY3QuPFN0cmluZywgT2JqZWN0Pn0gbm9ybWFsaXplZCBwYXJhbWV0ZXJzLlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLm5vcm1hbGl6ZVBhcmFtcyA9IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhcmFtcyhwYXJhbXMpIHtcbiAgICAgICAgdmFyIG5ld1BhcmFtcyA9IHt9O1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gcGFyYW1zKSB7XG4gICAgICAgICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KGtleSkgJiYgcGFyYW1zW2tleV0gIT0gdW5kZWZpbmVkICYmIHBhcmFtc1trZXldICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBwYXJhbXNba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0ZpbGVQYXJhbSh2YWx1ZSkgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3UGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXdQYXJhbXNba2V5XSA9IHRoaXMucGFyYW1Ub1N0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ld1BhcmFtcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBFbnVtZXJhdGlvbiBvZiBjb2xsZWN0aW9uIGZvcm1hdCBzZXBhcmF0b3Igc3RyYXRlZ2llcy5cbiAgICAqIEBlbnVtIHtTdHJpbmd9XG4gICAgKiBAcmVhZG9ubHlcbiAgICAqL1xuXG4gICAgLyoqXG4gICAgKiBCdWlsZHMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYXJyYXktdHlwZSBhY3R1YWwgcGFyYW1ldGVyLCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGNvbGxlY3Rpb24gZm9ybWF0LlxuICAgICogQHBhcmFtIHtBcnJheX0gcGFyYW0gQW4gYXJyYXkgcGFyYW1ldGVyLlxuICAgICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50LkNvbGxlY3Rpb25Gb3JtYXRFbnVtfSBjb2xsZWN0aW9uRm9ybWF0IFRoZSBhcnJheSBlbGVtZW50IHNlcGFyYXRvciBzdHJhdGVneS5cbiAgICAqIEByZXR1cm5zIHtTdHJpbmd8QXJyYXl9IEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzdXBwbGllZCBjb2xsZWN0aW9uLCB1c2luZyB0aGUgc3BlY2lmaWVkIGRlbGltaXRlci4gUmV0dXJuc1xuICAgICogPGNvZGU+cGFyYW08L2NvZGU+IGFzIGlzIGlmIDxjb2RlPmNvbGxlY3Rpb25Gb3JtYXQ8L2NvZGU+IGlzIDxjb2RlPm11bHRpPC9jb2RlPi5cbiAgICAqL1xuXG4gICAgQXBpQ2xpZW50LnByb3RvdHlwZS5idWlsZENvbGxlY3Rpb25QYXJhbSA9IGZ1bmN0aW9uIGJ1aWxkQ29sbGVjdGlvblBhcmFtKHBhcmFtLCBjb2xsZWN0aW9uRm9ybWF0KSB7XG4gICAgICAgIGlmIChwYXJhbSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGNvbGxlY3Rpb25Gb3JtYXQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Nzdic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtLm1hcCh0aGlzLnBhcmFtVG9TdHJpbmcpLmpvaW4oJywnKTtcbiAgICAgICAgICAgIGNhc2UgJ3Nzdic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtLm1hcCh0aGlzLnBhcmFtVG9TdHJpbmcpLmpvaW4oJyAnKTtcbiAgICAgICAgICAgIGNhc2UgJ3Rzdic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtLm1hcCh0aGlzLnBhcmFtVG9TdHJpbmcpLmpvaW4oJ1xcdCcpO1xuICAgICAgICAgICAgY2FzZSAncGlwZXMnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJhbS5tYXAodGhpcy5wYXJhbVRvU3RyaW5nKS5qb2luKCd8Jyk7XG4gICAgICAgICAgICBjYXNlICdtdWx0aSc6XG4gICAgICAgICAgICAgICAgLy9yZXR1cm4gdGhlIGFycmF5IGRpcmVjdGx5IGFzIFN1cGVyQWdlbnQgd2lsbCBoYW5kbGUgaXQgYXMgZXhwZWN0ZWRcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW0ubWFwKHRoaXMucGFyYW1Ub1N0cmluZyk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBjb2xsZWN0aW9uIGZvcm1hdDogJyArIGNvbGxlY3Rpb25Gb3JtYXQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQXBwbGllcyBhdXRoZW50aWNhdGlvbiBoZWFkZXJzIHRvIHRoZSByZXF1ZXN0LlxuICAgICogQHBhcmFtIHtPYmplY3R9IHJlcXVlc3QgVGhlIHJlcXVlc3Qgb2JqZWN0IGNyZWF0ZWQgYnkgYSA8Y29kZT5zdXBlcmFnZW50KCk8L2NvZGU+IGNhbGwuXG4gICAgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBhdXRoTmFtZXMgQW4gYXJyYXkgb2YgYXV0aGVudGljYXRpb24gbWV0aG9kIG5hbWVzLlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLmFwcGx5QXV0aFRvUmVxdWVzdCA9IGZ1bmN0aW9uIGFwcGx5QXV0aFRvUmVxdWVzdChyZXF1ZXN0LCBhdXRoTmFtZXMpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgYXV0aE5hbWVzLmZvckVhY2goZnVuY3Rpb24gKGF1dGhOYW1lKSB7XG4gICAgICAgICAgICB2YXIgYXV0aCA9IF90aGlzMi5hdXRoZW50aWNhdGlvbnNbYXV0aE5hbWVdO1xuICAgICAgICAgICAgc3dpdGNoIChhdXRoLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdiYXNpYyc6XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRoLnVzZXJuYW1lIHx8IGF1dGgucGFzc3dvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuYXV0aChhdXRoLnVzZXJuYW1lIHx8ICcnLCBhdXRoLnBhc3N3b3JkIHx8ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2FwaUtleSc6XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRoLmFwaUtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRoLmFwaUtleVByZWZpeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbYXV0aC5uYW1lXSA9IGF1dGguYXBpS2V5UHJlZml4ICsgJyAnICsgYXV0aC5hcGlLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbYXV0aC5uYW1lXSA9IGF1dGguYXBpS2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0aFsnaW4nXSA9PT0gJ2hlYWRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldChkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5xdWVyeShkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ29hdXRoMic6XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRoLmFjY2Vzc1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldCh7ICdBdXRob3JpemF0aW9uJzogJ0JlYXJlciAnICsgYXV0aC5hY2Nlc3NUb2tlbiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBhdXRoZW50aWNhdGlvbiB0eXBlOiAnICsgYXV0aC50eXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogRGVzZXJpYWxpemVzIGFuIEhUVFAgcmVzcG9uc2UgYm9keSBpbnRvIGEgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgICogQHBhcmFtIHtPYmplY3R9IHJlc3BvbnNlIEEgU3VwZXJBZ2VudCByZXNwb25zZSBvYmplY3QuXG4gICAgKiBAcGFyYW0geyhTdHJpbmd8QXJyYXkuPFN0cmluZz58T2JqZWN0LjxTdHJpbmcsIE9iamVjdD58RnVuY3Rpb24pfSByZXR1cm5UeXBlIFRoZSB0eXBlIHRvIHJldHVybi4gUGFzcyBhIHN0cmluZyBmb3Igc2ltcGxlIHR5cGVzXG4gICAgKiBvciB0aGUgY29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIGEgY29tcGxleCB0eXBlLiBQYXNzIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHR5cGUgbmFtZSB0byByZXR1cm4gYW4gYXJyYXkgb2YgdGhhdCB0eXBlLiBUb1xuICAgICogcmV0dXJuIGFuIG9iamVjdCwgcGFzcyBhbiBvYmplY3Qgd2l0aCBvbmUgcHJvcGVydHkgd2hvc2UgbmFtZSBpcyB0aGUga2V5IHR5cGUgYW5kIHdob3NlIHZhbHVlIGlzIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIHR5cGU6XG4gICAgKiBhbGwgcHJvcGVydGllcyBvbiA8Y29kZT5kYXRhPGNvZGU+IHdpbGwgYmUgY29udmVydGVkIHRvIHRoaXMgdHlwZS5cbiAgICAqIEByZXR1cm5zIEEgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLmRlc2VyaWFsaXplID0gZnVuY3Rpb24gZGVzZXJpYWxpemUocmVzcG9uc2UsIHJldHVyblR5cGUpIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlID09IG51bGwgfHwgcmV0dXJuVHlwZSA9PSBudWxsIHx8IHJlc3BvbnNlLnN0YXR1cyA9PSAyMDQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVseSBvbiBTdXBlckFnZW50IGZvciBwYXJzaW5nIHJlc3BvbnNlIGJvZHkuXG4gICAgICAgIC8vIFNlZSBodHRwOi8vdmlzaW9ubWVkaWEuZ2l0aHViLmlvL3N1cGVyYWdlbnQvI3BhcnNpbmctcmVzcG9uc2UtYm9kaWVzXG4gICAgICAgIHZhciBkYXRhID0gcmVzcG9uc2UuYm9keTtcbiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGRhdGEubGVuZ3RoID09PSAndW5kZWZpbmVkJyAmJiAhT2JqZWN0LmtleXMoZGF0YSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBTdXBlckFnZW50IGRvZXMgbm90IGFsd2F5cyBwcm9kdWNlIGEgYm9keTsgdXNlIHRoZSB1bnBhcnNlZCByZXNwb25zZSBhcyBhIGZhbGxiYWNrXG4gICAgICAgICAgICBkYXRhID0gcmVzcG9uc2UudGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBBcGlDbGllbnQuY29udmVydFRvVHlwZShkYXRhLCByZXR1cm5UeXBlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBJbnZva2VzIHRoZSBSRVNUIHNlcnZpY2UgdXNpbmcgdGhlIHN1cHBsaWVkIHNldHRpbmdzIGFuZCBwYXJhbWV0ZXJzLlxuICAgICogQHBhcmFtIHtTdHJpbmd9IHBhdGggVGhlIGJhc2UgVVJMIHRvIGludm9rZS5cbiAgICAqIEBwYXJhbSB7U3RyaW5nfSBodHRwTWV0aG9kIFRoZSBIVFRQIG1ldGhvZCB0byB1c2UuXG4gICAgKiBAcGFyYW0ge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBwYXRoUGFyYW1zIEEgbWFwIG9mIHBhdGggcGFyYW1ldGVycyBhbmQgdGhlaXIgdmFsdWVzLlxuICAgICogQHBhcmFtIHtPYmplY3QuPFN0cmluZywgT2JqZWN0Pn0gcXVlcnlQYXJhbXMgQSBtYXAgb2YgcXVlcnkgcGFyYW1ldGVycyBhbmQgdGhlaXIgdmFsdWVzLlxuICAgICogQHBhcmFtIHtPYmplY3QuPFN0cmluZywgT2JqZWN0Pn0gaGVhZGVyUGFyYW1zIEEgbWFwIG9mIGhlYWRlciBwYXJhbWV0ZXJzIGFuZCB0aGVpciB2YWx1ZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdC48U3RyaW5nLCBPYmplY3Q+fSBmb3JtUGFyYW1zIEEgbWFwIG9mIGZvcm0gcGFyYW1ldGVycyBhbmQgdGhlaXIgdmFsdWVzLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGJvZHlQYXJhbSBUaGUgdmFsdWUgdG8gcGFzcyBhcyB0aGUgcmVxdWVzdCBib2R5LlxuICAgICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gYXV0aE5hbWVzIEFuIGFycmF5IG9mIGF1dGhlbnRpY2F0aW9uIHR5cGUgbmFtZXMuXG4gICAgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBjb250ZW50VHlwZXMgQW4gYXJyYXkgb2YgcmVxdWVzdCBNSU1FIHR5cGVzLlxuICAgICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gYWNjZXB0cyBBbiBhcnJheSBvZiBhY2NlcHRhYmxlIHJlc3BvbnNlIE1JTUUgdHlwZXMuXG4gICAgKiBAcGFyYW0geyhTdHJpbmd8QXJyYXl8T2JqZWN0RnVuY3Rpb24pfSByZXR1cm5UeXBlIFRoZSByZXF1aXJlZCB0eXBlIHRvIHJldHVybjsgY2FuIGJlIGEgc3RyaW5nIGZvciBzaW1wbGUgdHlwZXMgb3IgdGhlXG4gICAgKiBjb25zdHJ1Y3RvciBmb3IgYSBjb21wbGV4IHR5cGUuXG4gICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gQSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0gb2JqZWN0LlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucHJvdG90eXBlLmNhbGxBcGkgPSBmdW5jdGlvbiBjYWxsQXBpKHBhdGgsIGh0dHBNZXRob2QsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIGJvZHlQYXJhbSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIHVybCA9IHRoaXMuYnVpbGRVcmwocGF0aCwgcGF0aFBhcmFtcyk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gX3N1cGVyYWdlbnQyW1wiZGVmYXVsdFwiXShodHRwTWV0aG9kLCB1cmwpO1xuXG4gICAgICAgIC8vIGFwcGx5IGF1dGhlbnRpY2F0aW9uc1xuICAgICAgICB0aGlzLmFwcGx5QXV0aFRvUmVxdWVzdChyZXF1ZXN0LCBhdXRoTmFtZXMpO1xuXG4gICAgICAgIC8vIHNldCBxdWVyeSBwYXJhbWV0ZXJzXG4gICAgICAgIGlmIChodHRwTWV0aG9kLnRvVXBwZXJDYXNlKCkgPT09ICdHRVQnICYmIHRoaXMuY2FjaGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtc1snXyddID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXF1ZXN0LnF1ZXJ5KHRoaXMubm9ybWFsaXplUGFyYW1zKHF1ZXJ5UGFyYW1zKSk7XG5cbiAgICAgICAgLy8gc2V0IGhlYWRlciBwYXJhbWV0ZXJzXG4gICAgICAgIHJlcXVlc3Quc2V0KHRoaXMuZGVmYXVsdEhlYWRlcnMpLnNldCh0aGlzLm5vcm1hbGl6ZVBhcmFtcyhoZWFkZXJQYXJhbXMpKTtcblxuICAgICAgICAvLyBzZXQgcmVxdWVzdCB0aW1lb3V0XG4gICAgICAgIHJlcXVlc3QudGltZW91dCh0aGlzLnRpbWVvdXQpO1xuXG4gICAgICAgIHZhciBjb250ZW50VHlwZSA9IHRoaXMuanNvblByZWZlcnJlZE1pbWUoY29udGVudFR5cGVzKTtcbiAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAvLyBJc3N1ZSB3aXRoIHN1cGVyYWdlbnQgYW5kIG11bHRpcGFydC9mb3JtLWRhdGEgKGh0dHBzOi8vZ2l0aHViLmNvbS92aXNpb25tZWRpYS9zdXBlcmFnZW50L2lzc3Vlcy83NDYpXG4gICAgICAgICAgICBpZiAoY29udGVudFR5cGUgIT0gJ211bHRpcGFydC9mb3JtLWRhdGEnKSB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdC50eXBlKGNvbnRlbnRUeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghcmVxdWVzdC5oZWFkZXJbJ0NvbnRlbnQtVHlwZSddKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnR5cGUoJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpIHtcbiAgICAgICAgICAgIHJlcXVlc3Quc2VuZChfcXVlcnlzdHJpbmcyW1wiZGVmYXVsdFwiXS5zdHJpbmdpZnkodGhpcy5ub3JtYWxpemVQYXJhbXMoZm9ybVBhcmFtcykpKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpIHtcbiAgICAgICAgICAgIHZhciBfZm9ybVBhcmFtcyA9IHRoaXMubm9ybWFsaXplUGFyYW1zKGZvcm1QYXJhbXMpO1xuICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIF9mb3JtUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgaWYgKF9mb3JtUGFyYW1zLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNGaWxlUGFyYW0oX2Zvcm1QYXJhbXNba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbGUgZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuYXR0YWNoKGtleSwgX2Zvcm1QYXJhbXNba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmZpZWxkKGtleSwgX2Zvcm1QYXJhbXNba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoYm9keVBhcmFtKSB7XG4gICAgICAgICAgICByZXF1ZXN0LnNlbmQoYm9keVBhcmFtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBhY2NlcHQgPSB0aGlzLmpzb25QcmVmZXJyZWRNaW1lKGFjY2VwdHMpO1xuICAgICAgICBpZiAoYWNjZXB0KSB7XG4gICAgICAgICAgICByZXF1ZXN0LmFjY2VwdChhY2NlcHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJldHVyblR5cGUgPT09ICdCbG9iJykge1xuICAgICAgICAgICAgcmVxdWVzdC5yZXNwb25zZVR5cGUoJ2Jsb2InKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXR1cm5UeXBlID09PSAnU3RyaW5nJykge1xuICAgICAgICAgICAgcmVxdWVzdC5yZXNwb25zZVR5cGUoJ3N0cmluZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXR0YWNoIHByZXZpb3VzbHkgc2F2ZWQgY29va2llcywgaWYgZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5lbmFibGVDb29raWVzKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFnZW50LmF0dGFjaENvb2tpZXMocmVxdWVzdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlcXVlc3Qud2l0aENyZWRlbnRpYWxzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgcmVxdWVzdC5lbmQoZnVuY3Rpb24gKGVycm9yLCByZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IF90aGlzMy5kZXNlcmlhbGl6ZShyZXNwb25zZSwgcmV0dXJuVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXMzLmVuYWJsZUNvb2tpZXMgJiYgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczMuYWdlbnQuc2F2ZUNvb2tpZXMocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHsgZGF0YTogZGF0YSwgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIFBhcnNlcyBhbiBJU08tODYwMSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBkYXRlIHZhbHVlLlxuICAgICogQHBhcmFtIHtTdHJpbmd9IHN0ciBUaGUgZGF0ZSB2YWx1ZSBhcyBhIHN0cmluZy5cbiAgICAqIEByZXR1cm5zIHtEYXRlfSBUaGUgcGFyc2VkIGRhdGUgb2JqZWN0LlxuICAgICovXG5cbiAgICBBcGlDbGllbnQucGFyc2VEYXRlID0gZnVuY3Rpb24gcGFyc2VEYXRlKHN0cikge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoc3RyLnJlcGxhY2UoL1QvaSwgJyAnKSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQ29udmVydHMgYSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAgKiBAcGFyYW0geyhTdHJpbmd8T2JqZWN0KX0gZGF0YSBUaGUgZGF0YSB0byBjb252ZXJ0LCBhcyBhIHN0cmluZyBvciBvYmplY3QuXG4gICAgKiBAcGFyYW0geyhTdHJpbmd8QXJyYXkuPFN0cmluZz58T2JqZWN0LjxTdHJpbmcsIE9iamVjdD58RnVuY3Rpb24pfSB0eXBlIFRoZSB0eXBlIHRvIHJldHVybi4gUGFzcyBhIHN0cmluZyBmb3Igc2ltcGxlIHR5cGVzXG4gICAgKiBvciB0aGUgY29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIGEgY29tcGxleCB0eXBlLiBQYXNzIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHR5cGUgbmFtZSB0byByZXR1cm4gYW4gYXJyYXkgb2YgdGhhdCB0eXBlLiBUb1xuICAgICogcmV0dXJuIGFuIG9iamVjdCwgcGFzcyBhbiBvYmplY3Qgd2l0aCBvbmUgcHJvcGVydHkgd2hvc2UgbmFtZSBpcyB0aGUga2V5IHR5cGUgYW5kIHdob3NlIHZhbHVlIGlzIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIHR5cGU6XG4gICAgKiBhbGwgcHJvcGVydGllcyBvbiA8Y29kZT5kYXRhPGNvZGU+IHdpbGwgYmUgY29udmVydGVkIHRvIHRoaXMgdHlwZS5cbiAgICAqIEByZXR1cm5zIEFuIGluc3RhbmNlIG9mIHRoZSBzcGVjaWZpZWQgdHlwZSBvciBudWxsIG9yIHVuZGVmaW5lZCBpZiBkYXRhIGlzIG51bGwgb3IgdW5kZWZpbmVkLlxuICAgICovXG5cbiAgICBBcGlDbGllbnQuY29udmVydFRvVHlwZSA9IGZ1bmN0aW9uIGNvbnZlcnRUb1R5cGUoZGF0YSwgdHlwZSkge1xuICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHJldHVybiBkYXRhO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW4oZGF0YSk7XG4gICAgICAgICAgICBjYXNlICdJbnRlZ2VyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApO1xuICAgICAgICAgICAgY2FzZSAnTnVtYmVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChkYXRhKTtcbiAgICAgICAgICAgIGNhc2UgJ1N0cmluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhkYXRhKTtcbiAgICAgICAgICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBBcGlDbGllbnQucGFyc2VEYXRlKFN0cmluZyhkYXRhKSk7XG4gICAgICAgICAgICBjYXNlICdCbG9iJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IE9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBnZW5lcmljIG9iamVjdCwgcmV0dXJuIGRpcmVjdGx5XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yIG1vZGVsIHR5cGUgbGlrZTogVXNlclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0eXBlKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3IgYXJyYXkgdHlwZSBsaWtlOiBbJ1N0cmluZyddXG4gICAgICAgICAgICAgICAgICAgIHZhciBpdGVtVHlwZSA9IHR5cGVbMF07XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQXBpQ2xpZW50LmNvbnZlcnRUb1R5cGUoaXRlbSwgaXRlbVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3IgcGxhaW4gb2JqZWN0IHR5cGUgbGlrZTogeydTdHJpbmcnOiAnSW50ZWdlcid9XG4gICAgICAgICAgICAgICAgICAgIHZhciBrZXlUeXBlLCB2YWx1ZVR5cGU7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGsgaW4gdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUuaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlUeXBlID0gaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVR5cGUgPSB0eXBlW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBrIGluIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IEFwaUNsaWVudC5jb252ZXJ0VG9UeXBlKGssIGtleVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IEFwaUNsaWVudC5jb252ZXJ0VG9UeXBlKGRhdGFba10sIHZhbHVlVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHVua25vd24gdHlwZSwgcmV0dXJuIHRoZSBkYXRhIGRpcmVjdGx5XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgbWFwIG9yIGFycmF5IG1vZGVsIGZyb20gUkVTVCBkYXRhLlxuICAgICogQHBhcmFtIGRhdGEge09iamVjdHxBcnJheX0gVGhlIFJFU1QgZGF0YS5cbiAgICAqIEBwYXJhbSBvYmoge09iamVjdHxBcnJheX0gVGhlIHRhcmdldCBvYmplY3Qgb3IgYXJyYXkuXG4gICAgKi9cblxuICAgIEFwaUNsaWVudC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmosIGl0ZW1UeXBlKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShpKSkgb2JqW2ldID0gQXBpQ2xpZW50LmNvbnZlcnRUb1R5cGUoZGF0YVtpXSwgaXRlbVR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoaykpIG9ialtrXSA9IEFwaUNsaWVudC5jb252ZXJ0VG9UeXBlKGRhdGFba10sIGl0ZW1UeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBfY3JlYXRlQ2xhc3MoQXBpQ2xpZW50LCBudWxsLCBbe1xuICAgICAgICBrZXk6IFwiQ29sbGVjdGlvbkZvcm1hdEVudW1cIixcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQ29tbWEtc2VwYXJhdGVkIHZhbHVlcy4gVmFsdWU6IDxjb2RlPmNzdjwvY29kZT5cbiAgICAgICAgICAgICAqIEBjb25zdFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBDU1Y6ICcsJyxcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTcGFjZS1zZXBhcmF0ZWQgdmFsdWVzLiBWYWx1ZTogPGNvZGU+c3N2PC9jb2RlPlxuICAgICAgICAgICAgICogQGNvbnN0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIFNTVjogJyAnLFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRhYi1zZXBhcmF0ZWQgdmFsdWVzLiBWYWx1ZTogPGNvZGU+dHN2PC9jb2RlPlxuICAgICAgICAgICAgICogQGNvbnN0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIFRTVjogJ1xcdCcsXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUGlwZSh8KS1zZXBhcmF0ZWQgdmFsdWVzLiBWYWx1ZTogPGNvZGU+cGlwZXM8L2NvZGU+XG4gICAgICAgICAgICAgKiBAY29uc3RcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgUElQRVM6ICd8JyxcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBOYXRpdmUgYXJyYXkuIFZhbHVlOiA8Y29kZT5tdWx0aTwvY29kZT5cbiAgICAgICAgICAgICAqIEBjb25zdFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBNVUxUSTogJ211bHRpJ1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIEFwaUNsaWVudDtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gQXBpQ2xpZW50O1xuQXBpQ2xpZW50Lmluc3RhbmNlID0gbmV3IEFwaUNsaWVudCgpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxJZG1BQ0wgPSByZXF1aXJlKCcuLi9tb2RlbC9JZG1BQ0wnKTtcblxudmFyIF9tb2RlbElkbUFDTDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbUFDTCk7XG5cbnZhciBfbW9kZWxSZXN0QUNMQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RBQ0xDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0QUNMQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RBQ0xDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3REZWxldGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hBQ0xSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFNlYXJjaEFDTFJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hBQ0xSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaEFDTFJlcXVlc3QpO1xuXG4vKipcbiogQUNMU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9BQ0xTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEFDTFNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgQUNMU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvQUNMU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIEFDTFNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFDTFNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgb25lIG9yIG1vcmUgQUNMc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1BQ0x9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQUNMU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlQWNsV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZGVsZXRlQWNsV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgZGVsZXRlQWNsXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2FjbC9idWxrL2RlbGV0ZScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIG9uZSBvciBtb3JlIEFDTHNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtQUNMfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlUmVzcG9uc2V9XG4gICAqL1xuXG4gIEFDTFNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZUFjbCA9IGZ1bmN0aW9uIGRlbGV0ZUFjbChib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlQWNsV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogU3RvcmUgYW4gQUNMXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUFDTH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtQUNMfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBBQ0xTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRBY2xXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBwdXRBY2xXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBwdXRBY2xcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbElkbUFDTDJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvYWNsJywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN0b3JlIGFuIEFDTFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1BQ0x9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbUFDTH1cbiAgICovXG5cbiAgQUNMU2VydmljZUFwaS5wcm90b3R5cGUucHV0QWNsID0gZnVuY3Rpb24gcHV0QWNsKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wdXRBY2xXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZWFyY2ggQWNsc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEFDTENvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEFDTFNlcnZpY2VBcGkucHJvdG90eXBlLnNlYXJjaEFjbHNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzZWFyY2hBY2xzV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc2VhcmNoQWNsc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdEFDTENvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2FjbCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VhcmNoIEFjbHNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaEFDTFJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RBQ0xDb2xsZWN0aW9ufVxuICAgKi9cblxuICBBQ0xTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZWFyY2hBY2xzID0gZnVuY3Rpb24gc2VhcmNoQWNscyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoQWNsc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIEFDTFNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBQ0xTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlPYmplY3QgPSByZXF1aXJlKCcuLi9tb2RlbC9BY3Rpdml0eU9iamVjdCcpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlPYmplY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBY3Rpdml0eU9iamVjdCk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0FjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3Vic2NyaXB0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb24nKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3Vic2NyaXB0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQWN0aXZpdHlTdWJzY3JpcHRpb24pO1xuXG52YXIgX21vZGVsUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24pO1xuXG4vKipcbiogQWN0aXZpdHlTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL0FjdGl2aXR5U2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBBY3Rpdml0eVNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgQWN0aXZpdHlTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9BY3Rpdml0eVNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBBY3Rpdml0eVNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFjdGl2aXR5U2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgc3Vic2NyaXB0aW9ucyB0byBvdGhlciB1c2Vycy9ub2RlcyBmZWVkc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEFjdGl2aXR5U2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoU3Vic2NyaXB0aW9uc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHNlYXJjaFN1YnNjcmlwdGlvbnNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzZWFyY2hTdWJzY3JpcHRpb25zXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2FjdGl2aXR5L3N1YnNjcmlwdGlvbnMnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgc3Vic2NyaXB0aW9ucyB0byBvdGhlciB1c2Vycy9ub2RlcyBmZWVkc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb259XG4gICAqL1xuXG4gIEFjdGl2aXR5U2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoU3Vic2NyaXB0aW9ucyA9IGZ1bmN0aW9uIHNlYXJjaFN1YnNjcmlwdGlvbnMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbnNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSB0aGUgZmVlZHMgb2YgdGhlIGN1cnJlbnRseSBsb2dnZWQgdXNlclxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9BY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQWN0aXZpdHlTZXJ2aWNlQXBpLnByb3RvdHlwZS5zdHJlYW1XaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzdHJlYW1XaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzdHJlYW1cIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEFjdGl2aXR5T2JqZWN0MlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9hY3Rpdml0eS9zdHJlYW0nLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIHRoZSBmZWVkcyBvZiB0aGUgY3VycmVudGx5IGxvZ2dlZCB1c2VyXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fVxuICAgKi9cblxuICBBY3Rpdml0eVNlcnZpY2VBcGkucHJvdG90eXBlLnN0cmVhbSA9IGZ1bmN0aW9uIHN0cmVhbShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyZWFtV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTWFuYWdlIHN1YnNjcmlwdGlvbnMgdG8gb3RoZXIgdXNlcnMvbm9kZXMgZmVlZHNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb259IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0FjdGl2aXR5U3Vic2NyaXB0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBBY3Rpdml0eVNlcnZpY2VBcGkucHJvdG90eXBlLnN1YnNjcmliZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHN1YnNjcmliZVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHN1YnNjcmliZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsQWN0aXZpdHlTdWJzY3JpcHRpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2FjdGl2aXR5L3N1YnNjcmliZScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTWFuYWdlIHN1YnNjcmlwdGlvbnMgdG8gb3RoZXIgdXNlcnMvbm9kZXMgZmVlZHNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb259IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0FjdGl2aXR5U3Vic2NyaXB0aW9ufVxuICAgKi9cblxuICBBY3Rpdml0eVNlcnZpY2VBcGkucHJvdG90eXBlLnN1YnNjcmliZSA9IGZ1bmN0aW9uIHN1YnNjcmliZShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaWJlV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gQWN0aXZpdHlTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQWN0aXZpdHlTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFRyZWVMaXN0Tm9kZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvVHJlZUxpc3ROb2Rlc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFRyZWVMaXN0Tm9kZXNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZUxpc3ROb2Rlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsVHJlZVJlYWROb2RlUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1RyZWVSZWFkTm9kZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFRyZWVSZWFkTm9kZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlUmVhZE5vZGVSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFRyZWVSZWFkTm9kZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvVHJlZVJlYWROb2RlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFRyZWVSZWFkTm9kZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZVJlYWROb2RlUmVzcG9uc2UpO1xuXG4vKipcbiogQWRtaW5UcmVlU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9BZG1pblRyZWVTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEFkbWluVHJlZVNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgQWRtaW5UcmVlU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvQWRtaW5UcmVlU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIEFkbWluVHJlZVNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFkbWluVHJlZVNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGZpbGVzIGFuZCBmb2xkZXJzIHN0YXJ0aW5nIGF0IHRoZSByb290IChmaXJzdCBsZXZlbCBsaXN0cyB0aGUgZGF0YXNvdXJjZXMpXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVMaXN0Tm9kZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBBZG1pblRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0QWRtaW5UcmVlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdEFkbWluVHJlZVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGxpc3RBZG1pblRyZWVcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3RyZWUvYWRtaW4vbGlzdCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBmaWxlcyBhbmQgZm9sZGVycyBzdGFydGluZyBhdCB0aGUgcm9vdCAoZmlyc3QgbGV2ZWwgbGlzdHMgdGhlIGRhdGFzb3VyY2VzKVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlTGlzdE5vZGVzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgQWRtaW5UcmVlU2VydmljZUFwaS5wcm90b3R5cGUubGlzdEFkbWluVHJlZSA9IGZ1bmN0aW9uIGxpc3RBZG1pblRyZWUoYm9keSkge1xuICAgIHJldHVybiB0aGlzLmxpc3RBZG1pblRyZWVXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZWFkIGEgbm9kZSBpbmZvcm1hdGlvbiBpbnNpZGUgdGhlIGFkbWluIHRyZWVcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEFkbWluVHJlZVNlcnZpY2VBcGkucHJvdG90eXBlLnN0YXRBZG1pblRyZWVXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzdGF0QWRtaW5UcmVlV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc3RhdEFkbWluVHJlZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsVHJlZVJlYWROb2RlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3RyZWUvYWRtaW4vc3RhdCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogUmVhZCBhIG5vZGUgaW5mb3JtYXRpb24gaW5zaWRlIHRoZSBhZG1pbiB0cmVlXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVSZWFkTm9kZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1RyZWVSZWFkTm9kZVJlc3BvbnNlfVxuICAgKi9cblxuICBBZG1pblRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5zdGF0QWRtaW5UcmVlID0gZnVuY3Rpb24gc3RhdEFkbWluVHJlZShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdEFkbWluVHJlZVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIEFkbWluVHJlZVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBZG1pblRyZWVTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdENoYW5nZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0Q2hhbmdlQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdENoYW5nZUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q2hhbmdlQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0Q2hhbmdlUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RDaGFuZ2VSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0Q2hhbmdlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDaGFuZ2VSZXF1ZXN0KTtcblxuLyoqXG4qIENoYW5nZVNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvQ2hhbmdlU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBDaGFuZ2VTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IENoYW5nZVNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL0NoYW5nZVNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBDaGFuZ2VTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDaGFuZ2VTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0IENoYW5nZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IHNlcUlEIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q2hhbmdlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENoYW5nZUNvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENoYW5nZVNlcnZpY2VBcGkucHJvdG90eXBlLmdldENoYW5nZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBnZXRDaGFuZ2VzV2l0aEh0dHBJbmZvKHNlcUlELCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzZXFJRCcgaXMgc2V0XG4gICAgaWYgKHNlcUlEID09PSB1bmRlZmluZWQgfHwgc2VxSUQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnc2VxSUQnIHdoZW4gY2FsbGluZyBnZXRDaGFuZ2VzXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGdldENoYW5nZXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnU2VxSUQnOiBzZXFJRFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Q2hhbmdlQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY2hhbmdlcy97U2VxSUR9JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgQ2hhbmdlc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gc2VxSUQgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDaGFuZ2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Q2hhbmdlQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgQ2hhbmdlU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0Q2hhbmdlcyA9IGZ1bmN0aW9uIGdldENoYW5nZXMoc2VxSUQsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGFuZ2VzV2l0aEh0dHBJbmZvKHNlcUlELCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIENoYW5nZVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDaGFuZ2VTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsQ3RsU2VydmljZSA9IHJlcXVpcmUoJy4uL21vZGVsL0N0bFNlcnZpY2UnKTtcblxudmFyIF9tb2RlbEN0bFNlcnZpY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxDdGxTZXJ2aWNlKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxPYmplY3REYXRhU291cmNlID0gcmVxdWlyZSgnLi4vbW9kZWwvT2JqZWN0RGF0YVNvdXJjZScpO1xuXG52YXIgX21vZGVsT2JqZWN0RGF0YVNvdXJjZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE9iamVjdERhdGFTb3VyY2UpO1xuXG52YXIgX21vZGVsUmVzdENvbmZpZ3VyYXRpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0Q29uZmlndXJhdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdENvbmZpZ3VyYXRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q29uZmlndXJhdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDb250cm9sU2VydmljZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3REaXNjb3ZlcnlSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RPcGVuQXBpUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0T3BlbkFwaVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdE9wZW5BcGlSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0U2VydmljZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0U2VydmljZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RTZXJ2aWNlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTZXJ2aWNlQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxUcmVlVmVyc2lvbmluZ1BvbGljeSA9IHJlcXVpcmUoJy4uL21vZGVsL1RyZWVWZXJzaW9uaW5nUG9saWN5Jyk7XG5cbnZhciBfbW9kZWxUcmVlVmVyc2lvbmluZ1BvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVWZXJzaW9uaW5nUG9saWN5KTtcblxuLyoqXG4qIENvbmZpZ1NlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvQ29uZmlnU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBDb25maWdTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IENvbmZpZ1NlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL0NvbmZpZ1NlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBDb25maWdTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb25maWdTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBGb3JtcyBkZWZpbml0aW9uIGZvciBidWlsZGluZyBzY3JlZW5zIGluIGZyb250ZW5kXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzZXJ2aWNlTmFtZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERpc2NvdmVyeVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5jb25maWdGb3Jtc0Rpc2NvdmVyeVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGNvbmZpZ0Zvcm1zRGlzY292ZXJ5V2l0aEh0dHBJbmZvKHNlcnZpY2VOYW1lKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzZXJ2aWNlTmFtZScgaXMgc2V0XG4gICAgaWYgKHNlcnZpY2VOYW1lID09PSB1bmRlZmluZWQgfHwgc2VydmljZU5hbWUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnc2VydmljZU5hbWUnIHdoZW4gY2FsbGluZyBjb25maWdGb3Jtc0Rpc2NvdmVyeVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdTZXJ2aWNlTmFtZSc6IHNlcnZpY2VOYW1lXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3REaXNjb3ZlcnlSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY29uZmlnL2Rpc2NvdmVyeS9mb3Jtcy97U2VydmljZU5hbWV9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggRm9ybXMgZGVmaW5pdGlvbiBmb3IgYnVpbGRpbmcgc2NyZWVucyBpbiBmcm9udGVuZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gc2VydmljZU5hbWUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZX1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuY29uZmlnRm9ybXNEaXNjb3ZlcnkgPSBmdW5jdGlvbiBjb25maWdGb3Jtc0Rpc2NvdmVyeShzZXJ2aWNlTmFtZSkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ0Zvcm1zRGlzY292ZXJ5V2l0aEh0dHBJbmZvKHNlcnZpY2VOYW1lKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFtOb3QgSW1wbGVtZW50ZWRdICBTdGFydC9TdG9wIGEgc2VydmljZVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9DdGxTZXJ2aWNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5jb250cm9sU2VydmljZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGNvbnRyb2xTZXJ2aWNlV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgY29udHJvbFNlcnZpY2VcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEN0bFNlcnZpY2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9jdGwnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFtOb3QgSW1wbGVtZW50ZWRdICBTdGFydC9TdG9wIGEgc2VydmljZVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9DdGxTZXJ2aWNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5jb250cm9sU2VydmljZSA9IGZ1bmN0aW9uIGNvbnRyb2xTZXJ2aWNlKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sU2VydmljZVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBtYXN0ZXIga2V5XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5jcmVhdGVFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gY3JlYXRlRW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGNyZWF0ZUVuY3J5cHRpb25LZXlcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZW5jcnlwdGlvbi9jcmVhdGUnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBtYXN0ZXIga2V5XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5jcmVhdGVFbmNyeXB0aW9uS2V5ID0gZnVuY3Rpb24gY3JlYXRlRW5jcnlwdGlvbktleShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlRW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIGRhdGFzb3VyY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZURhdGFTb3VyY2VXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBkZWxldGVEYXRhU291cmNlV2l0aEh0dHBJbmZvKG5hbWUpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWUnIGlzIHNldFxuICAgIGlmIChuYW1lID09PSB1bmRlZmluZWQgfHwgbmFtZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICduYW1lJyB3aGVuIGNhbGxpbmcgZGVsZXRlRGF0YVNvdXJjZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdOYW1lJzogbmFtZVxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZGF0YXNvdXJjZS97TmFtZX0nLCAnREVMRVRFJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGEgZGF0YXNvdXJjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZX1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlRGF0YVNvdXJjZSA9IGZ1bmN0aW9uIGRlbGV0ZURhdGFTb3VyY2UobmFtZSkge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZURhdGFTb3VyY2VXaXRoSHR0cEluZm8obmFtZSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgbWFzdGVyIGtleVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlRW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGRlbGV0ZUVuY3J5cHRpb25LZXlXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBkZWxldGVFbmNyeXB0aW9uS2V5XCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY29uZmlnL2VuY3J5cHRpb24vZGVsZXRlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZXhpc3RpbmcgbWFzdGVyIGtleVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZX1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlRW5jcnlwdGlvbktleSA9IGZ1bmN0aW9uIGRlbGV0ZUVuY3J5cHRpb25LZXkoYm9keSkge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZUVuY3J5cHRpb25LZXlXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIGF2YWlsYWJsZSBlbmRwb2ludHNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5lbmRwb2ludFR5cGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZW5kcG9pbnRzRGlzY292ZXJ5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZW5kcG9pbnRzRGlzY292ZXJ5V2l0aEh0dHBJbmZvKG9wdHMpIHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnRW5kcG9pbnRUeXBlJzogb3B0c1snZW5kcG9pbnRUeXBlJ11cbiAgICB9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZGlzY292ZXJ5JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYXZhaWxhYmxlIGVuZHBvaW50c1xuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmVuZHBvaW50VHlwZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERpc2NvdmVyeVJlc3BvbnNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5lbmRwb2ludHNEaXNjb3ZlcnkgPSBmdW5jdGlvbiBlbmRwb2ludHNEaXNjb3Zlcnkob3B0cykge1xuICAgIHJldHVybiB0aGlzLmVuZHBvaW50c0Rpc2NvdmVyeVdpdGhIdHRwSW5mbyhvcHRzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBhIG1hc3RlciBrZXkgZm9yIGJhY2t1cCBwdXJwb3NlLCBwcm90ZWN0ZWQgd2l0aCBhIHBhc3N3b3JkXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5leHBvcnRFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZXhwb3J0RW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGV4cG9ydEVuY3J5cHRpb25LZXlcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZW5jcnlwdGlvbi9leHBvcnQnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBhIG1hc3RlciBrZXkgZm9yIGJhY2t1cCBwdXJwb3NlLCBwcm90ZWN0ZWQgd2l0aCBhIHBhc3N3b3JkXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5leHBvcnRFbmNyeXB0aW9uS2V5ID0gZnVuY3Rpb24gZXhwb3J0RW5jcnlwdGlvbktleShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwb3J0RW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdlbmVyaWMgY29uZmlnIEdldCB1c2luZyBhIGZ1bGwgcGF0aCBpbiB0aGUgY29uZmlnIHRyZWVcbiAgICogQHBhcmFtIHtTdHJpbmd9IGZ1bGxQYXRoIFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmRhdGEgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RDb25maWd1cmF0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRDb25maWdXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBnZXRDb25maWdXaXRoSHR0cEluZm8oZnVsbFBhdGgsIG9wdHMpIHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2Z1bGxQYXRoJyBpcyBzZXRcbiAgICBpZiAoZnVsbFBhdGggPT09IHVuZGVmaW5lZCB8fCBmdWxsUGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdmdWxsUGF0aCcgd2hlbiBjYWxsaW5nIGdldENvbmZpZ1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdGdWxsUGF0aCc6IGZ1bGxQYXRoXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnRGF0YSc6IG9wdHNbJ2RhdGEnXVxuICAgIH07XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Q29uZmlndXJhdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY29uZmlnL3tGdWxsUGF0aH0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJpYyBjb25maWcgR2V0IHVzaW5nIGEgZnVsbCBwYXRoIGluIHRoZSBjb25maWcgdHJlZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gZnVsbFBhdGggXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuZGF0YSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENvbmZpZ3VyYXRpb259XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmdldENvbmZpZyA9IGZ1bmN0aW9uIGdldENvbmZpZyhmdWxsUGF0aCwgb3B0cykge1xuICAgIHJldHVybiB0aGlzLmdldENvbmZpZ1dpdGhIdHRwSW5mbyhmdWxsUGF0aCwgb3B0cykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkIGRhdGFzb3VyY2UgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLmRpc2FibGVkIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9TdHJpbmd9IG9wdHMuc3RvcmFnZVR5cGUgIChkZWZhdWx0IHRvIExPQ0FMKVxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5vYmplY3RzU2VydmljZU5hbWUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9iamVjdHNIb3N0IFxuICAgKiBAcGFyYW0ge051bWJlcn0gb3B0cy5vYmplY3RzUG9ydCBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLm9iamVjdHNTZWN1cmUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9iamVjdHNCdWNrZXQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9iamVjdHNCYXNlRm9sZGVyIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5hcGlLZXkgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmFwaVNlY3JldCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMucGVlckFkZHJlc3MgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy53YXRjaCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvU3RyaW5nfSBvcHRzLmVuY3J5cHRpb25Nb2RlICAoZGVmYXVsdCB0byBDTEVBUilcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuZW5jcnlwdGlvbktleSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMudmVyc2lvbmluZ1BvbGljeU5hbWUgXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBvcHRzLmNyZWF0aW9uRGF0ZSBcbiAgICogQHBhcmFtIHtOdW1iZXJ9IG9wdHMubGFzdFN5bmNocm9uaXphdGlvbkRhdGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmdldERhdGFTb3VyY2VXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBnZXREYXRhU291cmNlV2l0aEh0dHBJbmZvKG5hbWUsIG9wdHMpIHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWUnIGlzIHNldFxuICAgIGlmIChuYW1lID09PSB1bmRlZmluZWQgfHwgbmFtZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICduYW1lJyB3aGVuIGNhbGxpbmcgZ2V0RGF0YVNvdXJjZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdOYW1lJzogbmFtZVxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgJ0Rpc2FibGVkJzogb3B0c1snZGlzYWJsZWQnXSxcbiAgICAgICdTdG9yYWdlVHlwZSc6IG9wdHNbJ3N0b3JhZ2VUeXBlJ10sXG4gICAgICAnT2JqZWN0c1NlcnZpY2VOYW1lJzogb3B0c1snb2JqZWN0c1NlcnZpY2VOYW1lJ10sXG4gICAgICAnT2JqZWN0c0hvc3QnOiBvcHRzWydvYmplY3RzSG9zdCddLFxuICAgICAgJ09iamVjdHNQb3J0Jzogb3B0c1snb2JqZWN0c1BvcnQnXSxcbiAgICAgICdPYmplY3RzU2VjdXJlJzogb3B0c1snb2JqZWN0c1NlY3VyZSddLFxuICAgICAgJ09iamVjdHNCdWNrZXQnOiBvcHRzWydvYmplY3RzQnVja2V0J10sXG4gICAgICAnT2JqZWN0c0Jhc2VGb2xkZXInOiBvcHRzWydvYmplY3RzQmFzZUZvbGRlciddLFxuICAgICAgJ0FwaUtleSc6IG9wdHNbJ2FwaUtleSddLFxuICAgICAgJ0FwaVNlY3JldCc6IG9wdHNbJ2FwaVNlY3JldCddLFxuICAgICAgJ1BlZXJBZGRyZXNzJzogb3B0c1sncGVlckFkZHJlc3MnXSxcbiAgICAgICdXYXRjaCc6IG9wdHNbJ3dhdGNoJ10sXG4gICAgICAnRW5jcnlwdGlvbk1vZGUnOiBvcHRzWydlbmNyeXB0aW9uTW9kZSddLFxuICAgICAgJ0VuY3J5cHRpb25LZXknOiBvcHRzWydlbmNyeXB0aW9uS2V5J10sXG4gICAgICAnVmVyc2lvbmluZ1BvbGljeU5hbWUnOiBvcHRzWyd2ZXJzaW9uaW5nUG9saWN5TmFtZSddLFxuICAgICAgJ0NyZWF0aW9uRGF0ZSc6IG9wdHNbJ2NyZWF0aW9uRGF0ZSddLFxuICAgICAgJ0xhc3RTeW5jaHJvbml6YXRpb25EYXRlJzogb3B0c1snbGFzdFN5bmNocm9uaXphdGlvbkRhdGUnXVxuICAgIH07XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxPYmplY3REYXRhU291cmNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZGF0YXNvdXJjZS97TmFtZX0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCBkYXRhc291cmNlIGluZm9ybWF0aW9uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5kaXNhYmxlZCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvU3RyaW5nfSBvcHRzLnN0b3JhZ2VUeXBlICAoZGVmYXVsdCB0byBMT0NBTClcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMub2JqZWN0c1NlcnZpY2VOYW1lIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5vYmplY3RzSG9zdCBcbiAgICogQHBhcmFtIHtOdW1iZXJ9IG9wdHMub2JqZWN0c1BvcnQgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5vYmplY3RzU2VjdXJlIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5vYmplY3RzQnVja2V0IFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5vYmplY3RzQmFzZUZvbGRlciBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuYXBpS2V5IFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5hcGlTZWNyZXQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLnBlZXJBZGRyZXNzIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMud2F0Y2ggXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1N0cmluZ30gb3B0cy5lbmNyeXB0aW9uTW9kZSAgKGRlZmF1bHQgdG8gQ0xFQVIpXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmVuY3J5cHRpb25LZXkgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLnZlcnNpb25pbmdQb2xpY3lOYW1lIFxuICAgKiBAcGFyYW0ge051bWJlcn0gb3B0cy5jcmVhdGlvbkRhdGUgXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBvcHRzLmxhc3RTeW5jaHJvbml6YXRpb25EYXRlIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXREYXRhU291cmNlID0gZnVuY3Rpb24gZ2V0RGF0YVNvdXJjZShuYW1lLCBvcHRzKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YVNvdXJjZVdpdGhIdHRwSW5mbyhuYW1lLCBvcHRzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgYSBnaXZlbiB2ZXJzaW9uaW5nIHBvbGljeVxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5uYW1lIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5kZXNjcmlwdGlvbiBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMudmVyc2lvbnNEYXRhU291cmNlTmFtZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMudmVyc2lvbnNEYXRhU291cmNlQnVja2V0IFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5tYXhUb3RhbFNpemUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm1heFNpemVQZXJGaWxlIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5pZ25vcmVGaWxlc0dyZWF0ZXJUaGFuIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9UcmVlVmVyc2lvbmluZ1BvbGljeX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0VmVyc2lvbmluZ1BvbGljeVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldFZlcnNpb25pbmdQb2xpY3lXaXRoSHR0cEluZm8odXVpZCwgb3B0cykge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgaXMgc2V0XG4gICAgaWYgKHV1aWQgPT09IHVuZGVmaW5lZCB8fCB1dWlkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIHdoZW4gY2FsbGluZyBnZXRWZXJzaW9uaW5nUG9saWN5XCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1V1aWQnOiB1dWlkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnTmFtZSc6IG9wdHNbJ25hbWUnXSxcbiAgICAgICdEZXNjcmlwdGlvbic6IG9wdHNbJ2Rlc2NyaXB0aW9uJ10sXG4gICAgICAnVmVyc2lvbnNEYXRhU291cmNlTmFtZSc6IG9wdHNbJ3ZlcnNpb25zRGF0YVNvdXJjZU5hbWUnXSxcbiAgICAgICdWZXJzaW9uc0RhdGFTb3VyY2VCdWNrZXQnOiBvcHRzWyd2ZXJzaW9uc0RhdGFTb3VyY2VCdWNrZXQnXSxcbiAgICAgICdNYXhUb3RhbFNpemUnOiBvcHRzWydtYXhUb3RhbFNpemUnXSxcbiAgICAgICdNYXhTaXplUGVyRmlsZSc6IG9wdHNbJ21heFNpemVQZXJGaWxlJ10sXG4gICAgICAnSWdub3JlRmlsZXNHcmVhdGVyVGhhbic6IG9wdHNbJ2lnbm9yZUZpbGVzR3JlYXRlclRoYW4nXVxuICAgIH07XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxUcmVlVmVyc2lvbmluZ1BvbGljeTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY29uZmlnL3ZlcnNpb25pbmcve1V1aWR9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgYSBnaXZlbiB2ZXJzaW9uaW5nIHBvbGljeVxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5uYW1lIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5kZXNjcmlwdGlvbiBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMudmVyc2lvbnNEYXRhU291cmNlTmFtZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMudmVyc2lvbnNEYXRhU291cmNlQnVja2V0IFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5tYXhUb3RhbFNpemUgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm1heFNpemVQZXJGaWxlIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5pZ25vcmVGaWxlc0dyZWF0ZXJUaGFuIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9UcmVlVmVyc2lvbmluZ1BvbGljeX1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0VmVyc2lvbmluZ1BvbGljeSA9IGZ1bmN0aW9uIGdldFZlcnNpb25pbmdQb2xpY3kodXVpZCwgb3B0cykge1xuICAgIHJldHVybiB0aGlzLmdldFZlcnNpb25pbmdQb2xpY3lXaXRoSHR0cEluZm8odXVpZCwgb3B0cykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYSBwcmV2aW91c2x5IGV4cG9ydGVkIG1hc3RlciBrZXksIHJlcXVpcmVzIHRoZSBwYXNzd29yZCBjcmVhdGVkIGF0IGV4cG9ydCB0aW1lXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5pbXBvcnRFbmNyeXB0aW9uS2V5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gaW1wb3J0RW5jcnlwdGlvbktleVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGltcG9ydEVuY3J5cHRpb25LZXlcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZW5jcnlwdGlvbi9pbXBvcnQnLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogSW1wb3J0IGEgcHJldmlvdXNseSBleHBvcnRlZCBtYXN0ZXIga2V5LCByZXF1aXJlcyB0aGUgcGFzc3dvcmQgY3JlYXRlZCBhdCBleHBvcnQgdGltZVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZX1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUuaW1wb3J0RW5jcnlwdGlvbktleSA9IGZ1bmN0aW9uIGltcG9ydEVuY3J5cHRpb25LZXkoYm9keSkge1xuICAgIHJldHVybiB0aGlzLmltcG9ydEVuY3J5cHRpb25LZXlXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZWZpbmVkIGRhdGFzb3VyY2VzXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REYXRhU291cmNlQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdERhdGFTb3VyY2VzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdERhdGFTb3VyY2VzV2l0aEh0dHBJbmZvKCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZGF0YXNvdXJjZScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZWZpbmVkIGRhdGFzb3VyY2VzXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REYXRhU291cmNlQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdERhdGFTb3VyY2VzID0gZnVuY3Rpb24gbGlzdERhdGFTb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLmxpc3REYXRhU291cmNlc1dpdGhIdHRwSW5mbygpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCByZWdpc3RlcmVkIG1hc3RlciBrZXlzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdEVuY3J5cHRpb25LZXlzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdEVuY3J5cHRpb25LZXlzV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgbGlzdEVuY3J5cHRpb25LZXlzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZW5jcnlwdGlvbi9saXN0JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IHJlZ2lzdGVyZWQgbWFzdGVyIGtleXNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0RW5jcnlwdGlvbktleXMgPSBmdW5jdGlvbiBsaXN0RW5jcnlwdGlvbktleXMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLmxpc3RFbmNyeXB0aW9uS2V5c1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgZm9sZGVycyBvbiBhIHBlZXIsIHN0YXJ0aW5nIGZyb20gcm9vdFxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGVlckFkZHJlc3MgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0UGVlckZvbGRlcnNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0UGVlckZvbGRlcnNXaXRoSHR0cEluZm8ocGVlckFkZHJlc3MsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3BlZXJBZGRyZXNzJyBpcyBzZXRcbiAgICBpZiAocGVlckFkZHJlc3MgPT09IHVuZGVmaW5lZCB8fCBwZWVyQWRkcmVzcyA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdwZWVyQWRkcmVzcycgd2hlbiBjYWxsaW5nIGxpc3RQZWVyRm9sZGVyc1wiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBsaXN0UGVlckZvbGRlcnNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnUGVlckFkZHJlc3MnOiBwZWVyQWRkcmVzc1xuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvcGVlcnMve1BlZXJBZGRyZXNzfScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBmb2xkZXJzIG9uIGEgcGVlciwgc3RhcnRpbmcgZnJvbSByb290XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwZWVyQWRkcmVzcyBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb259XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RQZWVyRm9sZGVycyA9IGZ1bmN0aW9uIGxpc3RQZWVyRm9sZGVycyhwZWVyQWRkcmVzcywgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmxpc3RQZWVyRm9sZGVyc1dpdGhIdHRwSW5mbyhwZWVyQWRkcmVzcywgYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZXRlY3RlZCBwZWVycyAoc2VydmVycyBvbiB3aGljaCB0aGUgYXBwIGlzIHJ1bm5pbmcpXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFBlZXJzQWRkcmVzc2VzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdFBlZXJzQWRkcmVzc2VzV2l0aEh0dHBJbmZvKCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvcGVlcnMnLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBhbGwgZGV0ZWN0ZWQgcGVlcnMgKHNlcnZlcnMgb24gd2hpY2ggdGhlIGFwcCBpcyBydW5uaW5nKVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RQZWVyc0FkZHJlc3NlcyA9IGZ1bmN0aW9uIGxpc3RQZWVyc0FkZHJlc3NlcygpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0UGVlcnNBZGRyZXNzZXNXaXRoSHR0cEluZm8oKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIHNlcnZpY2VzIGFuZCB0aGVpciBzdGF0dXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9TdHJpbmd9IG9wdHMuc3RhdHVzRmlsdGVyICAoZGVmYXVsdCB0byBBTlkpXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFNlcnZpY2VzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdFNlcnZpY2VzV2l0aEh0dHBJbmZvKG9wdHMpIHtcbiAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnU3RhdHVzRmlsdGVyJzogb3B0c1snc3RhdHVzRmlsdGVyJ11cbiAgICB9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFNlcnZpY2VDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvY3RsJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIHNlcnZpY2VzIGFuZCB0aGVpciBzdGF0dXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9TdHJpbmd9IG9wdHMuc3RhdHVzRmlsdGVyICAoZGVmYXVsdCB0byBBTlkpXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFNlcnZpY2VzID0gZnVuY3Rpb24gbGlzdFNlcnZpY2VzKG9wdHMpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0U2VydmljZXNXaXRoSHR0cEluZm8ob3B0cykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZWZpbmVkIHZlcnNpb25pbmcgcG9saWNpZXNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0VmVyc2lvbmluZ1BvbGljaWVzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdFZlcnNpb25pbmdQb2xpY2llc1dpdGhIdHRwSW5mbygpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY29uZmlnL3ZlcnNpb25pbmcnLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBhbGwgZGVmaW5lZCB2ZXJzaW9uaW5nIHBvbGljaWVzXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbn1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFZlcnNpb25pbmdQb2xpY2llcyA9IGZ1bmN0aW9uIGxpc3RWZXJzaW9uaW5nUG9saWNpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFZlcnNpb25pbmdQb2xpY2llc1dpdGhIdHRwSW5mbygpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBhbGwgZGVmaW5lZCB2aXJ0dWFsIG5vZGVzXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RWaXJ0dWFsTm9kZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0VmlydHVhbE5vZGVzV2l0aEh0dHBJbmZvKCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvY29uZmlnL3ZpcnR1YWxub2RlcycsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZWZpbmVkIHZpcnR1YWwgbm9kZXNcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFZpcnR1YWxOb2RlcyA9IGZ1bmN0aW9uIGxpc3RWaXJ0dWFsTm9kZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFZpcnR1YWxOb2Rlc1dpdGhIdHRwSW5mbygpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUHVibGlzaCBhdmFpbGFibGUgUkVTVCBBUElzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuZW5kcG9pbnRUeXBlIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5vcGVuQXBpRGlzY292ZXJ5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gb3BlbkFwaURpc2NvdmVyeVdpdGhIdHRwSW5mbyhvcHRzKSB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgJ0VuZHBvaW50VHlwZSc6IG9wdHNbJ2VuZHBvaW50VHlwZSddXG4gICAgfTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RPcGVuQXBpUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2NvbmZpZy9kaXNjb3Zlcnkvb3BlbmFwaScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIGF2YWlsYWJsZSBSRVNUIEFQSXNcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5lbmRwb2ludFR5cGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RPcGVuQXBpUmVzcG9uc2V9XG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLm9wZW5BcGlEaXNjb3ZlcnkgPSBmdW5jdGlvbiBvcGVuQXBpRGlzY292ZXJ5KG9wdHMpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuQXBpRGlzY292ZXJ5V2l0aEh0dHBJbmZvKG9wdHMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJpYyBjb25maWcgUHV0LCB1c2luZyBhIGZ1bGwgcGF0aCBpbiB0aGUgY29uZmlnIHRyZWVcbiAgICogQHBhcmFtIHtTdHJpbmd9IGZ1bGxQYXRoIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q29uZmlndXJhdGlvbn0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENvbmZpZ3VyYXRpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIENvbmZpZ1NlcnZpY2VBcGkucHJvdG90eXBlLnB1dENvbmZpZ1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHB1dENvbmZpZ1dpdGhIdHRwSW5mbyhmdWxsUGF0aCwgYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnZnVsbFBhdGgnIGlzIHNldFxuICAgIGlmIChmdWxsUGF0aCA9PT0gdW5kZWZpbmVkIHx8IGZ1bGxQYXRoID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2Z1bGxQYXRoJyB3aGVuIGNhbGxpbmcgcHV0Q29uZmlnXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHB1dENvbmZpZ1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdGdWxsUGF0aCc6IGZ1bGxQYXRoXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RDb25maWd1cmF0aW9uMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcve0Z1bGxQYXRofScsICdQVVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZW5lcmljIGNvbmZpZyBQdXQsIHVzaW5nIGEgZnVsbCBwYXRoIGluIHRoZSBjb25maWcgdHJlZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gZnVsbFBhdGggXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDb25maWd1cmF0aW9ufSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Q29uZmlndXJhdGlvbn1cbiAgICovXG5cbiAgQ29uZmlnU2VydmljZUFwaS5wcm90b3R5cGUucHV0Q29uZmlnID0gZnVuY3Rpb24gcHV0Q29uZmlnKGZ1bGxQYXRoLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucHV0Q29uZmlnV2l0aEh0dHBJbmZvKGZ1bGxQYXRoLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBvciB1cGRhdGUgYSBkYXRhc291cmNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXREYXRhU291cmNlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcHV0RGF0YVNvdXJjZVdpdGhIdHRwSW5mbyhuYW1lLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICduYW1lJyBpcyBzZXRcbiAgICBpZiAobmFtZSA9PT0gdW5kZWZpbmVkIHx8IG5hbWUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbmFtZScgd2hlbiBjYWxsaW5nIHB1dERhdGFTb3VyY2VcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgcHV0RGF0YVNvdXJjZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdOYW1lJzogbmFtZVxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxPYmplY3REYXRhU291cmNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9jb25maWcvZGF0YXNvdXJjZS97TmFtZX0nLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBvciB1cGRhdGUgYSBkYXRhc291cmNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlfVxuICAgKi9cblxuICBDb25maWdTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXREYXRhU291cmNlID0gZnVuY3Rpb24gcHV0RGF0YVNvdXJjZShuYW1lLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucHV0RGF0YVNvdXJjZVdpdGhIdHRwSW5mbyhuYW1lLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIENvbmZpZ1NlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDb25maWdTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdEZyb250QmluYXJ5UmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RGcm9udEJpbmFyeVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250QmluYXJ5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250QmluYXJ5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFBsdWdpbnNSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RGcm9udFBsdWdpbnNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250U2Vzc2lvblJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U3RhdGVSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RGcm9udFN0YXRlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFN0YXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RTZXR0aW5nc01lbnVSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RTZXR0aW5nc01lbnVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlKTtcblxuLyoqXG4qIEZyb250ZW5kU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9Gcm9udGVuZFNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRnJvbnRlbmRTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IEZyb250ZW5kU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvRnJvbnRlbmRTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gRnJvbnRlbmRTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBGcm9udGVuZFNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc29tZSBkYXRhIHRvIHRoZSBpbml0aWFsIHNldCBvZiBwYXJhbWV0ZXJzIGxvYWRlZCBieSB0aGUgZnJvbnRlbmRcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udEJvb3RDb25mV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZnJvbnRCb290Q29uZldpdGhIdHRwSW5mbygpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2Zyb250ZW5kL2Jvb3Rjb25mJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZCBzb21lIGRhdGEgdG8gdGhlIGluaXRpYWwgc2V0IG9mIHBhcmFtZXRlcnMgbG9hZGVkIGJ5IHRoZSBmcm9udGVuZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlfVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250Qm9vdENvbmYgPSBmdW5jdGlvbiBmcm9udEJvb3RDb25mKCkge1xuICAgIHJldHVybiB0aGlzLmZyb250Qm9vdENvbmZXaXRoSHR0cEluZm8oKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdlbmVyaWMgZW5kcG9pbnQgdGhhdCBjYW4gYmUgaW1wbGVtZW50ZWQgYnkgMkZBIHN5c3RlbXMgZm9yIGVucm9sbG1lbnRcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udEVucm9sbEF1dGhXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBmcm9udEVucm9sbEF1dGhXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBmcm9udEVucm9sbEF1dGhcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvZnJvbnRlbmQvZW5yb2xsJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZW5lcmljIGVuZHBvaW50IHRoYXQgY2FuIGJlIGltcGxlbWVudGVkIGJ5IDJGQSBzeXN0ZW1zIGZvciBlbnJvbGxtZW50XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2V9XG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRFbnJvbGxBdXRoID0gZnVuY3Rpb24gZnJvbnRFbnJvbGxBdXRoKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5mcm9udEVucm9sbEF1dGhXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXJ2ZSBsaXN0IG9mIEkxOG4gbWVzc2FnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxhbmcgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRNZXNzYWdlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGZyb250TWVzc2FnZXNXaXRoSHR0cEluZm8obGFuZykge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbGFuZycgaXMgc2V0XG4gICAgaWYgKGxhbmcgPT09IHVuZGVmaW5lZCB8fCBsYW5nID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2xhbmcnIHdoZW4gY2FsbGluZyBmcm9udE1lc3NhZ2VzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0xhbmcnOiBsYW5nXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2Zyb250ZW5kL21lc3NhZ2VzL3tMYW5nfScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXJ2ZSBsaXN0IG9mIEkxOG4gbWVzc2FnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxhbmcgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2V9XG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRNZXNzYWdlcyA9IGZ1bmN0aW9uIGZyb250TWVzc2FnZXMobGFuZykge1xuICAgIHJldHVybiB0aGlzLmZyb250TWVzc2FnZXNXaXRoSHR0cEluZm8obGFuZykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXJ2ZSBsaXN0IG9mIEkxOG4gbWVzc2FnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxhbmcgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFBsdWdpbnNSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udFBsdWdpbnNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBmcm9udFBsdWdpbnNXaXRoSHR0cEluZm8obGFuZykge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbGFuZycgaXMgc2V0XG4gICAgaWYgKGxhbmcgPT09IHVuZGVmaW5lZCB8fCBsYW5nID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2xhbmcnIHdoZW4gY2FsbGluZyBmcm9udFBsdWdpbnNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTGFuZyc6IGxhbmdcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9mcm9udGVuZC9wbHVnaW5zL3tMYW5nfScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXJ2ZSBsaXN0IG9mIEkxOG4gbWVzc2FnZXNcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxhbmcgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFBsdWdpbnNSZXNwb25zZX1cbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udFBsdWdpbnMgPSBmdW5jdGlvbiBmcm9udFBsdWdpbnMobGFuZykge1xuICAgIHJldHVybiB0aGlzLmZyb250UGx1Z2luc1dpdGhIdHRwSW5mbyhsYW5nKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBmcm9udGVuZCBiaW5hcmllcyAoYXZhdGFycyAvIGxvZ29zIC8gYmcgaW1hZ2VzKVxuICAgKiBAcGFyYW0ge1N0cmluZ30gYmluYXJ5VHlwZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250UHV0QmluYXJ5V2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZnJvbnRQdXRCaW5hcnlXaXRoSHR0cEluZm8oYmluYXJ5VHlwZSwgdXVpZCwgYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYmluYXJ5VHlwZScgaXMgc2V0XG4gICAgaWYgKGJpbmFyeVR5cGUgPT09IHVuZGVmaW5lZCB8fCBiaW5hcnlUeXBlID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JpbmFyeVR5cGUnIHdoZW4gY2FsbGluZyBmcm9udFB1dEJpbmFyeVwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgaXMgc2V0XG4gICAgaWYgKHV1aWQgPT09IHVuZGVmaW5lZCB8fCB1dWlkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIHdoZW4gY2FsbGluZyBmcm9udFB1dEJpbmFyeVwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBmcm9udFB1dEJpbmFyeVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdCaW5hcnlUeXBlJzogYmluYXJ5VHlwZSxcbiAgICAgICdVdWlkJzogdXVpZFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RnJvbnRCaW5hcnlSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvZnJvbnRlbmQvYmluYXJpZXMve0JpbmFyeVR5cGV9L3tVdWlkfScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogVXBsb2FkIGZyb250ZW5kIGJpbmFyaWVzIChhdmF0YXJzIC8gbG9nb3MgLyBiZyBpbWFnZXMpXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBiaW5hcnlUeXBlIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVzcG9uc2V9XG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRQdXRCaW5hcnkgPSBmdW5jdGlvbiBmcm9udFB1dEJpbmFyeShiaW5hcnlUeXBlLCB1dWlkLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRQdXRCaW5hcnlXaXRoSHR0cEluZm8oYmluYXJ5VHlwZSwgdXVpZCwgYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXJ2ZSBmcm9udGVuZCBiaW5hcmllcyBkaXJlY3RseSAoYXZhdGFycyAvIGxvZ29zIC8gYmcgaW1hZ2VzKVxuICAgKiBAcGFyYW0ge1N0cmluZ30gYmluYXJ5VHlwZSBcbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250U2VydmVCaW5hcnlXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBmcm9udFNlcnZlQmluYXJ5V2l0aEh0dHBJbmZvKGJpbmFyeVR5cGUsIHV1aWQpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JpbmFyeVR5cGUnIGlzIHNldFxuICAgIGlmIChiaW5hcnlUeXBlID09PSB1bmRlZmluZWQgfHwgYmluYXJ5VHlwZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdiaW5hcnlUeXBlJyB3aGVuIGNhbGxpbmcgZnJvbnRTZXJ2ZUJpbmFyeVwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgaXMgc2V0XG4gICAgaWYgKHV1aWQgPT09IHVuZGVmaW5lZCB8fCB1dWlkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIHdoZW4gY2FsbGluZyBmcm9udFNlcnZlQmluYXJ5XCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0JpbmFyeVR5cGUnOiBiaW5hcnlUeXBlLFxuICAgICAgJ1V1aWQnOiB1dWlkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9mcm9udGVuZC9iaW5hcmllcy97QmluYXJ5VHlwZX0ve1V1aWR9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlcnZlIGZyb250ZW5kIGJpbmFyaWVzIGRpcmVjdGx5IChhdmF0YXJzIC8gbG9nb3MgLyBiZyBpbWFnZXMpXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBiaW5hcnlUeXBlIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVzcG9uc2V9XG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRTZXJ2ZUJpbmFyeSA9IGZ1bmN0aW9uIGZyb250U2VydmVCaW5hcnkoYmluYXJ5VHlwZSwgdXVpZCkge1xuICAgIHJldHVybiB0aGlzLmZyb250U2VydmVCaW5hcnlXaXRoSHR0cEluZm8oYmluYXJ5VHlwZSwgdXVpZCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGUgSldUXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRTZXNzaW9uV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZnJvbnRTZXNzaW9uV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgZnJvbnRTZXNzaW9uXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2Zyb250ZW5kL3Nlc3Npb24nLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBKV1RcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZX1cbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5mcm9udFNlc3Npb24gPSBmdW5jdGlvbiBmcm9udFNlc3Npb24oYm9keSkge1xuICAgIHJldHVybiB0aGlzLmZyb250U2Vzc2lvbldpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlbmQgWE1MIHN0YXRlIHJlZ2lzdHJ5XG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFN0YXRlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEZyb250ZW5kU2VydmljZUFwaS5wcm90b3R5cGUuZnJvbnRTdGF0ZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGZyb250U3RhdGVXaXRoSHR0cEluZm8oKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9mcm9udGVuZC9zdGF0ZScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZW5kIFhNTCBzdGF0ZSByZWdpc3RyeVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlfVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLmZyb250U3RhdGUgPSBmdW5jdGlvbiBmcm9udFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLmZyb250U3RhdGVXaXRoSHR0cEluZm8oKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgdHJlZSBvZiBub2RlcyB0byBiZSB1c2VkIGEgbWVudSBpbiB0aGUgU2V0dGluZ3MgcGFuZWxcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBGcm9udGVuZFNlcnZpY2VBcGkucHJvdG90eXBlLnNldHRpbmdzTWVudVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHNldHRpbmdzTWVudVdpdGhIdHRwSW5mbygpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RTZXR0aW5nc01lbnVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvZnJvbnRlbmQvc2V0dGluZ3MtbWVudScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZW5kcyBhIHRyZWUgb2Ygbm9kZXMgdG8gYmUgdXNlZCBhIG1lbnUgaW4gdGhlIFNldHRpbmdzIHBhbmVsXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc01lbnVSZXNwb25zZX1cbiAgICovXG5cbiAgRnJvbnRlbmRTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZXR0aW5nc01lbnUgPSBmdW5jdGlvbiBzZXR0aW5nc01lbnUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NNZW51V2l0aEh0dHBJbmZvKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBGcm9udGVuZFNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBGcm9udGVuZFNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxSZXN0UmVsYXRpb25SZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RSZWxhdGlvblJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0UmVsYXRpb25SZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSZWxhdGlvblJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyU3RhdGVSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RVc2VyU3RhdGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJTdGF0ZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJTdGF0ZVJlc3BvbnNlKTtcblxuLyoqXG4qIEdyYXBoU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9HcmFwaFNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgR3JhcGhTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IEdyYXBoU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvR3JhcGhTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gR3JhcGhTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBHcmFwaFNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlIHJlbGF0aW9uIG9mIGNvbnRleHQgdXNlciB3aXRoIGFub3RoZXIgdXNlclxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXNlcklkIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmVsYXRpb25SZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgR3JhcGhTZXJ2aWNlQXBpLnByb3RvdHlwZS5yZWxhdGlvbldpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHJlbGF0aW9uV2l0aEh0dHBJbmZvKHVzZXJJZCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXNlcklkJyBpcyBzZXRcbiAgICBpZiAodXNlcklkID09PSB1bmRlZmluZWQgfHwgdXNlcklkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3VzZXJJZCcgd2hlbiBjYWxsaW5nIHJlbGF0aW9uXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1VzZXJJZCc6IHVzZXJJZFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0UmVsYXRpb25SZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvZ3JhcGgvcmVsYXRpb24ve1VzZXJJZH0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQ29tcHV0ZSByZWxhdGlvbiBvZiBjb250ZXh0IHVzZXIgd2l0aCBhbm90aGVyIHVzZXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IHVzZXJJZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFJlbGF0aW9uUmVzcG9uc2V9XG4gICAqL1xuXG4gIEdyYXBoU2VydmljZUFwaS5wcm90b3R5cGUucmVsYXRpb24gPSBmdW5jdGlvbiByZWxhdGlvbih1c2VySWQpIHtcbiAgICByZXR1cm4gdGhpcy5yZWxhdGlvbldpdGhIdHRwSW5mbyh1c2VySWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ29tcHV0ZSBhY2Nlc3NpYmxlIHdvcmtzcGFjZXMgZm9yIGEgZ2l2ZW4gdXNlclxuICAgKiBAcGFyYW0ge1N0cmluZ30gc2VnbWVudCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBHcmFwaFNlcnZpY2VBcGkucHJvdG90eXBlLnVzZXJTdGF0ZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVzZXJTdGF0ZVdpdGhIdHRwSW5mbyhzZWdtZW50KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzZWdtZW50JyBpcyBzZXRcbiAgICBpZiAoc2VnbWVudCA9PT0gdW5kZWZpbmVkIHx8IHNlZ21lbnQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnc2VnbWVudCcgd2hlbiBjYWxsaW5nIHVzZXJTdGF0ZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdTZWdtZW50Jzogc2VnbWVudFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0VXNlclN0YXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2dyYXBoL3N0YXRlL3tTZWdtZW50fScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb21wdXRlIGFjY2Vzc2libGUgd29ya3NwYWNlcyBmb3IgYSBnaXZlbiB1c2VyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzZWdtZW50IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlclN0YXRlUmVzcG9uc2V9XG4gICAqL1xuXG4gIEdyYXBoU2VydmljZUFwaS5wcm90b3R5cGUudXNlclN0YXRlID0gZnVuY3Rpb24gdXNlclN0YXRlKHNlZ21lbnQpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU3RhdGVXaXRoSHR0cEluZm8oc2VnbWVudCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBHcmFwaFNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBHcmFwaFNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbEluc3RhbGxJbnN0YWxsUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0luc3RhbGxJbnN0YWxsUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSW5zdGFsbEluc3RhbGxSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbEluc3RhbGxSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEluc3RhbGxJbnN0YWxsUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsSW5zdGFsbFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbEluc3RhbGxSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlKTtcblxuLyoqXG4qIEluc3RhbGxTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL0luc3RhbGxTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEluc3RhbGxTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IEluc3RhbGxTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9JbnN0YWxsU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIEluc3RhbGxTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnN0YWxsU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYSBjaGVjayBkdXJpbmcgaW5zdGFsbCAobGlrZSBEQiBjb25uZWN0aW9uLCBwaHAtZnBtIGRldGVjdGlvbiwgZXRjKVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEluc3RhbGxTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRBZ3JlZW1lbnRXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBnZXRBZ3JlZW1lbnRXaXRoSHR0cEluZm8oKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2luc3RhbGwvYWdyZWVtZW50JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYSBjaGVjayBkdXJpbmcgaW5zdGFsbCAobGlrZSBEQiBjb25uZWN0aW9uLCBwaHAtZnBtIGRldGVjdGlvbiwgZXRjKVxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2V9XG4gICAqL1xuXG4gIEluc3RhbGxTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRBZ3JlZW1lbnQgPSBmdW5jdGlvbiBnZXRBZ3JlZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWdyZWVtZW50V2l0aEh0dHBJbmZvKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkcyBkZWZhdWx0IHZhbHVlcyBmb3IgaW5zdGFsbCBmb3JtXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBJbnN0YWxsU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0SW5zdGFsbFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldEluc3RhbGxXaXRoSHR0cEluZm8oKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvaW5zdGFsbCcsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkcyBkZWZhdWx0IHZhbHVlcyBmb3IgaW5zdGFsbCBmb3JtXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlfVxuICAgKi9cblxuICBJbnN0YWxsU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0SW5zdGFsbCA9IGZ1bmN0aW9uIGdldEluc3RhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5zdGFsbFdpdGhIdHRwSW5mbygpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUGVyZm9ybSBhIGNoZWNrIGR1cmluZyBpbnN0YWxsIChsaWtlIERCIGNvbm5lY3Rpb24sIHBocC1mcG0gZGV0ZWN0aW9uLCBldGMpXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEluc3RhbGxTZXJ2aWNlQXBpLnByb3RvdHlwZS5wZXJmb3JtSW5zdGFsbENoZWNrV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcGVyZm9ybUluc3RhbGxDaGVja1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHBlcmZvcm1JbnN0YWxsQ2hlY2tcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvaW5zdGFsbC9jaGVjaycsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogUGVyZm9ybSBhIGNoZWNrIGR1cmluZyBpbnN0YWxsIChsaWtlIERCIGNvbm5lY3Rpb24sIHBocC1mcG0gZGV0ZWN0aW9uLCBldGMpXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2V9XG4gICAqL1xuXG4gIEluc3RhbGxTZXJ2aWNlQXBpLnByb3RvdHlwZS5wZXJmb3JtSW5zdGFsbENoZWNrID0gZnVuY3Rpb24gcGVyZm9ybUluc3RhbGxDaGVjayhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucGVyZm9ybUluc3RhbGxDaGVja1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFBvc3QgdmFsdWVzIHRvIGJlIHNhdmVkIGZvciBpbnN0YWxsXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgSW5zdGFsbFNlcnZpY2VBcGkucHJvdG90eXBlLnBvc3RJbnN0YWxsV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcG9zdEluc3RhbGxXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBwb3N0SW5zdGFsbFwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSW5zdGFsbEluc3RhbGxSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvaW5zdGFsbCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogUG9zdCB2YWx1ZXMgdG8gYmUgc2F2ZWQgZm9yIGluc3RhbGxcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlfVxuICAgKi9cblxuICBJbnN0YWxsU2VydmljZUFwaS5wcm90b3R5cGUucG9zdEluc3RhbGwgPSBmdW5jdGlvbiBwb3N0SW5zdGFsbChib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucG9zdEluc3RhbGxXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBJbnN0YWxsU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEluc3RhbGxTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsSm9ic0N0cmxDb21tYW5kID0gcmVxdWlyZSgnLi4vbW9kZWwvSm9ic0N0cmxDb21tYW5kJyk7XG5cbnZhciBfbW9kZWxKb2JzQ3RybENvbW1hbmQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzQ3RybENvbW1hbmQpO1xuXG52YXIgX21vZGVsSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9Kb2JzQ3RybENvbW1hbmRSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzQ3RybENvbW1hbmRSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxKb2JzRGVsZXRlVGFza3NSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNEZWxldGVUYXNrc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzRGVsZXRlVGFza3NSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxKb2JzTGlzdEpvYnNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvSm9ic0xpc3RKb2JzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSm9ic0xpc3RKb2JzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNMaXN0Sm9ic1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFVzZXJKb2JSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYlJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlckpvYlJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJKb2JSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RVc2VySm9iUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9iUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlckpvYlJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9ic0NvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0VXNlckpvYnNDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYnNDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJKb2JzQ29sbGVjdGlvbik7XG5cbi8qKlxuKiBKb2JzU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9Kb2JzU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBKb2JzU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvSm9ic1NlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBKb2JzU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic1NlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIENvbnRyb2wgQ29tbWFuZHMgdG8gb25lIG9yIG1hbnkgam9icyAvIHRhc2tzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNDdHJsQ29tbWFuZH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEpvYnNTZXJ2aWNlQXBpLnByb3RvdHlwZS51c2VyQ29udHJvbEpvYldpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVzZXJDb250cm9sSm9iV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgdXNlckNvbnRyb2xKb2JcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9qb2JzL3VzZXInLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VuZCBDb250cm9sIENvbW1hbmRzIHRvIG9uZSBvciBtYW55IGpvYnMgLyB0YXNrc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzQ3RybENvbW1hbmR9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0pvYnNDdHJsQ29tbWFuZFJlc3BvbnNlfVxuICAgKi9cblxuICBKb2JzU2VydmljZUFwaS5wcm90b3R5cGUudXNlckNvbnRyb2xKb2IgPSBmdW5jdGlvbiB1c2VyQ29udHJvbEpvYihib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckNvbnRyb2xKb2JXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBwcmVkZWZpbmVkIGpvYiB0byBiZSBydW4gZGlyZWN0bHlcbiAgICogQHBhcmFtIHtTdHJpbmd9IGpvYk5hbWUgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgSm9ic1NlcnZpY2VBcGkucHJvdG90eXBlLnVzZXJDcmVhdGVKb2JXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiB1c2VyQ3JlYXRlSm9iV2l0aEh0dHBJbmZvKGpvYk5hbWUsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2pvYk5hbWUnIGlzIHNldFxuICAgIGlmIChqb2JOYW1lID09PSB1bmRlZmluZWQgfHwgam9iTmFtZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdqb2JOYW1lJyB3aGVuIGNhbGxpbmcgdXNlckNyZWF0ZUpvYlwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyB1c2VyQ3JlYXRlSm9iXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0pvYk5hbWUnOiBqb2JOYW1lXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RVc2VySm9iUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2pvYnMvdXNlci97Sm9iTmFtZX0nLCAnUFVUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgcHJlZGVmaW5lZCBqb2IgdG8gYmUgcnVuIGRpcmVjdGx5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBqb2JOYW1lIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VXNlckpvYlJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVzcG9uc2V9XG4gICAqL1xuXG4gIEpvYnNTZXJ2aWNlQXBpLnByb3RvdHlwZS51c2VyQ3JlYXRlSm9iID0gZnVuY3Rpb24gdXNlckNyZWF0ZUpvYihqb2JOYW1lLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckNyZWF0ZUpvYldpdGhIdHRwSW5mbyhqb2JOYW1lLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlbmQgYSBjb250cm9sIGNvbW1hbmQgdG8gY2xlYW4gdGFza3Mgb24gYSBnaXZlbiBqb2JcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIEpvYnNTZXJ2aWNlQXBpLnByb3RvdHlwZS51c2VyRGVsZXRlVGFza3NXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiB1c2VyRGVsZXRlVGFza3NXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyB1c2VyRGVsZXRlVGFza3NcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9qb2JzL3Rhc2tzL2RlbGV0ZScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VuZCBhIGNvbnRyb2wgY29tbWFuZCB0byBjbGVhbiB0YXNrcyBvbiBhIGdpdmVuIGpvYlxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXNwb25zZX1cbiAgICovXG5cbiAgSm9ic1NlcnZpY2VBcGkucHJvdG90eXBlLnVzZXJEZWxldGVUYXNrcyA9IGZ1bmN0aW9uIHVzZXJEZWxldGVUYXNrcyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckRlbGV0ZVRhc2tzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBqb2JzIGFzc29jaWF0ZWQgd2l0aCBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0xpc3RKb2JzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JzQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgSm9ic1NlcnZpY2VBcGkucHJvdG90eXBlLnVzZXJMaXN0Sm9ic1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVzZXJMaXN0Sm9ic1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHVzZXJMaXN0Sm9ic1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFVzZXJKb2JzQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvam9icy91c2VyJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGpvYnMgYXNzb2NpYXRlZCB3aXRoIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzTGlzdEpvYnNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlckpvYnNDb2xsZWN0aW9ufVxuICAgKi9cblxuICBKb2JzU2VydmljZUFwaS5wcm90b3R5cGUudXNlckxpc3RKb2JzID0gZnVuY3Rpb24gdXNlckxpc3RKb2JzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyTGlzdEpvYnNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBKb2JzU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsTG9nTGlzdExvZ1JlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9Mb2dMaXN0TG9nUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsTG9nTGlzdExvZ1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxMb2dMaXN0TG9nUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbik7XG5cbi8qKlxuKiBMb2dTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL0xvZ1NlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgTG9nU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBMb2dTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9Mb2dTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gTG9nU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9nU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlY2huaWNhbCBMb2dzLCBpbiBKc29uIG9yIENTViBmb3JtYXRcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvTG9nTGlzdExvZ1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgTG9nU2VydmljZUFwaS5wcm90b3R5cGUuc3lzbG9nV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc3lzbG9nV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc3lzbG9nXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2xvZy9zeXMnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFRlY2huaWNhbCBMb2dzLCBpbiBKc29uIG9yIENTViBmb3JtYXRcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvTG9nTGlzdExvZ1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgTG9nU2VydmljZUFwaS5wcm90b3R5cGUuc3lzbG9nID0gZnVuY3Rpb24gc3lzbG9nKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zeXNsb2dXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBMb2dTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTG9nU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbE1haWxlck1haWwgPSByZXF1aXJlKCcuLi9tb2RlbC9NYWlsZXJNYWlsJyk7XG5cbnZhciBfbW9kZWxNYWlsZXJNYWlsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsTWFpbGVyTWFpbCk7XG5cbnZhciBfbW9kZWxNYWlsZXJTZW5kTWFpbFJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvTWFpbGVyU2VuZE1haWxSZXNwb25zZScpO1xuXG52YXIgX21vZGVsTWFpbGVyU2VuZE1haWxSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE1haWxlclNlbmRNYWlsUmVzcG9uc2UpO1xuXG4vKipcbiogTWFpbGVyU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9NYWlsZXJTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIE1haWxlclNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgTWFpbGVyU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvTWFpbGVyU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIE1haWxlclNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1haWxlclNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGFuIGVtYWlsIHRvIGEgdXNlciBvciBhbnkgZW1haWwgYWRkcmVzc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9NYWlsZXJNYWlsfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9NYWlsZXJTZW5kTWFpbFJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBNYWlsZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZW5kV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc2VuZFdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHNlbmRcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbE1haWxlclNlbmRNYWlsUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL21haWxlci9zZW5kJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZW5kIGFuIGVtYWlsIHRvIGEgdXNlciBvciBhbnkgZW1haWwgYWRkcmVzc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9NYWlsZXJNYWlsfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9NYWlsZXJTZW5kTWFpbFJlc3BvbnNlfVxuICAgKi9cblxuICBNYWlsZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZW5kID0gZnVuY3Rpb24gc2VuZChib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZFdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIE1haWxlclNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBNYWlsZXJTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0QnVsa01ldGFSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0R2V0QnVsa01ldGFSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdE1ldGFDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdE1ldGFDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0TWV0YUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TWV0YUNvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsVHJlZU5vZGUgPSByZXF1aXJlKCcuLi9tb2RlbC9UcmVlTm9kZScpO1xuXG52YXIgX21vZGVsVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlTm9kZSk7XG5cbi8qKlxuKiBNZXRhU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9NZXRhU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBNZXRhU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBNZXRhU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvTWV0YVNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBNZXRhU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWV0YVNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgbWV0YWRhdGEgb2YgYSBnaXZlbiBub2RlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBub2RlUGF0aCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9UcmVlTm9kZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZU1ldGFXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBkZWxldGVNZXRhV2l0aEh0dHBJbmZvKG5vZGVQYXRoLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdub2RlUGF0aCcgaXMgc2V0XG4gICAgaWYgKG5vZGVQYXRoID09PSB1bmRlZmluZWQgfHwgbm9kZVBhdGggPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbm9kZVBhdGgnIHdoZW4gY2FsbGluZyBkZWxldGVNZXRhXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGRlbGV0ZU1ldGFcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTm9kZVBhdGgnOiBub2RlUGF0aFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxUcmVlTm9kZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvbWV0YS9kZWxldGUve05vZGVQYXRofScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIG1ldGFkYXRhIG9mIGEgZ2l2ZW4gbm9kZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbm9kZVBhdGggXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvVHJlZU5vZGV9XG4gICAqL1xuXG4gIE1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVNZXRhID0gZnVuY3Rpb24gZGVsZXRlTWV0YShub2RlUGF0aCwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZU1ldGFXaXRoSHR0cEluZm8obm9kZVBhdGgsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBtZXRhIGZvciBhIGxpc3Qgb2Ygbm9kZXMsIG9yIGEgZnVsbCBkaXJlY3RvcnkgdXNpbmcgL3BhdGgvXyogc3ludGF4XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0QnVsa01ldGFXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBnZXRCdWxrTWV0YVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGdldEJ1bGtNZXRhXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvbWV0YS9idWxrL2dldCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBtZXRhIGZvciBhIGxpc3Qgb2Ygbm9kZXMsIG9yIGEgZnVsbCBkaXJlY3RvcnkgdXNpbmcgL3BhdGgvXyogc3ludGF4XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlfVxuICAgKi9cblxuICBNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0QnVsa01ldGEgPSBmdW5jdGlvbiBnZXRCdWxrTWV0YShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnVsa01ldGFXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkIG1ldGFkYXRhIGZvciBhIGdpdmVuIG5vZGVcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5vZGVQYXRoIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1RyZWVOb2RlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0TWV0YVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldE1ldGFXaXRoSHR0cEluZm8obm9kZVBhdGgsIGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25vZGVQYXRoJyBpcyBzZXRcbiAgICBpZiAobm9kZVBhdGggPT09IHVuZGVmaW5lZCB8fCBub2RlUGF0aCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdub2RlUGF0aCcgd2hlbiBjYWxsaW5nIGdldE1ldGFcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgZ2V0TWV0YVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdOb2RlUGF0aCc6IG5vZGVQYXRoXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFRyZWVOb2RlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9tZXRhL2dldC97Tm9kZVBhdGh9JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMb2FkIG1ldGFkYXRhIGZvciBhIGdpdmVuIG5vZGVcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5vZGVQYXRoIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1RyZWVOb2RlfVxuICAgKi9cblxuICBNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0TWV0YSA9IGZ1bmN0aW9uIGdldE1ldGEobm9kZVBhdGgsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhV2l0aEh0dHBJbmZvKG5vZGVQYXRoLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBtZXRhZGF0YSBmb3IgYSBnaXZlbiBub2RlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBub2RlUGF0aCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdE1ldGFDb2xsZWN0aW9ufSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9UcmVlTm9kZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLnNldE1ldGFXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzZXRNZXRhV2l0aEh0dHBJbmZvKG5vZGVQYXRoLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdub2RlUGF0aCcgaXMgc2V0XG4gICAgaWYgKG5vZGVQYXRoID09PSB1bmRlZmluZWQgfHwgbm9kZVBhdGggPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbm9kZVBhdGgnIHdoZW4gY2FsbGluZyBzZXRNZXRhXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHNldE1ldGFcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTm9kZVBhdGgnOiBub2RlUGF0aFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxUcmVlTm9kZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvbWV0YS9zZXQve05vZGVQYXRofScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogVXBkYXRlIG1ldGFkYXRhIGZvciBhIGdpdmVuIG5vZGVcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5vZGVQYXRoIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TWV0YUNvbGxlY3Rpb259IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1RyZWVOb2RlfVxuICAgKi9cblxuICBNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuc2V0TWV0YSA9IGZ1bmN0aW9uIHNldE1ldGEobm9kZVBhdGgsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRNZXRhV2l0aEh0dHBJbmZvKG5vZGVQYXRoLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIE1ldGFTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTWV0YVNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlKTtcblxuLyoqXG4qIFBvbGljeVNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvUG9saWN5U2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBQb2xpY3lTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFBvbGljeVNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL1BvbGljeVNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBQb2xpY3lTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQb2xpY3lTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBhbGwgZGVmaW5lZCBzZWN1cml0eSBwb2xpY2llc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBQb2xpY3lTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0UG9saWNpZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0UG9saWNpZXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBsaXN0UG9saWNpZXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvcG9saWN5JywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBkZWZpbmVkIHNlY3VyaXR5IHBvbGljaWVzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2V9XG4gICAqL1xuXG4gIFBvbGljeVNlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RQb2xpY2llcyA9IGZ1bmN0aW9uIGxpc3RQb2xpY2llcyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFBvbGljaWVzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gUG9saWN5U2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFBvbGljeVNlcnZpY2VBcGk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoXCIuLi9BcGlDbGllbnRcIik7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfbW9kZWxJZG1Sb2xlID0gcmVxdWlyZSgnLi4vbW9kZWwvSWRtUm9sZScpO1xuXG52YXIgX21vZGVsSWRtUm9sZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVJvbGUpO1xuXG52YXIgX21vZGVsUmVzdFJvbGVzQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RSb2xlc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RSb2xlc0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Um9sZXNDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RTZWFyY2hSb2xlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaFJvbGVSZXF1ZXN0KTtcblxuLyoqXG4qIFJvbGVTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL1JvbGVTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJvbGVTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFJvbGVTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9Sb2xlU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIFJvbGVTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSb2xlU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIFJvbGUgYnkgSURcbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVJvbGV9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFJvbGVTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVSb2xlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZGVsZXRlUm9sZVdpdGhIdHRwSW5mbyh1dWlkKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyBpcyBzZXRcbiAgICBpZiAodXVpZCA9PT0gdW5kZWZpbmVkIHx8IHV1aWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgd2hlbiBjYWxsaW5nIGRlbGV0ZVJvbGVcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnVXVpZCc6IHV1aWRcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSWRtUm9sZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvcm9sZS97VXVpZH0nLCAnREVMRVRFJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIGEgUm9sZSBieSBJRFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtUm9sZX1cbiAgICovXG5cbiAgUm9sZVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZVJvbGUgPSBmdW5jdGlvbiBkZWxldGVSb2xlKHV1aWQpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVSb2xlV2l0aEh0dHBJbmZvKHV1aWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0IGEgUm9sZSBieSBJRFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5sYWJlbCBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLmlzVGVhbSBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLmdyb3VwUm9sZSBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLnVzZXJSb2xlIFxuICAgKiBAcGFyYW0ge051bWJlcn0gb3B0cy5sYXN0VXBkYXRlZCBcbiAgICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gb3B0cy5hdXRvQXBwbGllcyBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRzLnBvbGljaWVzQ29udGV4dEVkaXRhYmxlIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1Sb2xlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBSb2xlU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0Um9sZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGdldFJvbGVXaXRoSHR0cEluZm8odXVpZCwgb3B0cykge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgaXMgc2V0XG4gICAgaWYgKHV1aWQgPT09IHVuZGVmaW5lZCB8fCB1dWlkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIHdoZW4gY2FsbGluZyBnZXRSb2xlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1V1aWQnOiB1dWlkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnTGFiZWwnOiBvcHRzWydsYWJlbCddLFxuICAgICAgJ0lzVGVhbSc6IG9wdHNbJ2lzVGVhbSddLFxuICAgICAgJ0dyb3VwUm9sZSc6IG9wdHNbJ2dyb3VwUm9sZSddLFxuICAgICAgJ1VzZXJSb2xlJzogb3B0c1sndXNlclJvbGUnXSxcbiAgICAgICdMYXN0VXBkYXRlZCc6IG9wdHNbJ2xhc3RVcGRhdGVkJ10sXG4gICAgICAnQXV0b0FwcGxpZXMnOiB0aGlzLmFwaUNsaWVudC5idWlsZENvbGxlY3Rpb25QYXJhbShvcHRzWydhdXRvQXBwbGllcyddLCAnY3N2JyksXG4gICAgICAnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnOiBvcHRzWydwb2xpY2llc0NvbnRleHRFZGl0YWJsZSddXG4gICAgfTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbElkbVJvbGUyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3JvbGUve1V1aWR9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCBhIFJvbGUgYnkgSURcbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMubGFiZWwgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5pc1RlYW0gXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5ncm91cFJvbGUgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy51c2VyUm9sZSBcbiAgICogQHBhcmFtIHtOdW1iZXJ9IG9wdHMubGFzdFVwZGF0ZWQgXG4gICAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IG9wdHMuYXV0b0FwcGxpZXMgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gb3B0cy5wb2xpY2llc0NvbnRleHRFZGl0YWJsZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtUm9sZX1cbiAgICovXG5cbiAgUm9sZVNlcnZpY2VBcGkucHJvdG90eXBlLmdldFJvbGUgPSBmdW5jdGlvbiBnZXRSb2xlKHV1aWQsIG9wdHMpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSb2xlV2l0aEh0dHBJbmZvKHV1aWQsIG9wdHMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogU2VhcmNoIFJvbGVzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hSb2xlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFJvbGVzQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgUm9sZVNlcnZpY2VBcGkucHJvdG90eXBlLnNlYXJjaFJvbGVzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc2VhcmNoUm9sZXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBzZWFyY2hSb2xlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFJvbGVzQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvcm9sZScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VhcmNoIFJvbGVzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hSb2xlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFJvbGVzQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgUm9sZVNlcnZpY2VBcGkucHJvdG90eXBlLnNlYXJjaFJvbGVzID0gZnVuY3Rpb24gc2VhcmNoUm9sZXMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFJvbGVzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIG9yIHVwZGF0ZSBhIFJvbGVcbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVJvbGV9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVJvbGV9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFJvbGVTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZXRSb2xlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gc2V0Um9sZVdpdGhIdHRwSW5mbyh1dWlkLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyBpcyBzZXRcbiAgICBpZiAodXVpZCA9PT0gdW5kZWZpbmVkIHx8IHV1aWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgd2hlbiBjYWxsaW5nIHNldFJvbGVcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc2V0Um9sZVwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdVdWlkJzogdXVpZFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJZG1Sb2xlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9yb2xlL3tVdWlkfScsICdQVVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgb3IgdXBkYXRlIGEgUm9sZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtUm9sZX0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtUm9sZX1cbiAgICovXG5cbiAgUm9sZVNlcnZpY2VBcGkucHJvdG90eXBlLnNldFJvbGUgPSBmdW5jdGlvbiBzZXRSb2xlKHV1aWQsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRSb2xlV2l0aEh0dHBJbmZvKHV1aWQsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gUm9sZVNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSb2xlU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hSZXN1bHRzID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFNlYXJjaFJlc3VsdHMnKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hSZXN1bHRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaFJlc3VsdHMpO1xuXG52YXIgX21vZGVsVHJlZVNlYXJjaFJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9UcmVlU2VhcmNoUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsVHJlZVNlYXJjaFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlU2VhcmNoUmVxdWVzdCk7XG5cbi8qKlxuKiBTZWFyY2hTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL1NlYXJjaFNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgU2VhcmNoU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBTZWFyY2hTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9TZWFyY2hTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gU2VhcmNoU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2VhcmNoU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBpbmRleGVkIG5vZGVzIChmaWxlcy9mb2xkZXJzKSBvbiB2YXJpb3VzIGFzcGVjdHNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVNlYXJjaFJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hSZXN1bHRzfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBTZWFyY2hTZXJ2aWNlQXBpLnByb3RvdHlwZS5ub2Rlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIG5vZGVzV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgbm9kZXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RTZWFyY2hSZXN1bHRzMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9zZWFyY2gvbm9kZXMnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBpbmRleGVkIG5vZGVzIChmaWxlcy9mb2xkZXJzKSBvbiB2YXJpb3VzIGFzcGVjdHNcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVNlYXJjaFJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hSZXN1bHRzfVxuICAgKi9cblxuICBTZWFyY2hTZXJ2aWNlQXBpLnByb3RvdHlwZS5ub2RlcyA9IGZ1bmN0aW9uIG5vZGVzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5ub2Rlc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIFNlYXJjaFNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTZWFyY2hTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdENlbGwgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0Q2VsbCcpO1xuXG52YXIgX21vZGVsUmVzdENlbGwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q2VsbCk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERlbGV0ZUNlbGxSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZUNlbGxSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REZWxldGVDZWxsUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RQdXRDZWxsUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RQdXRDZWxsUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFB1dENlbGxSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFB1dENlbGxSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFNoYXJlTGluayA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RTaGFyZUxpbmsnKTtcblxudmFyIF9tb2RlbFJlc3RTaGFyZUxpbmsyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2hhcmVMaW5rKTtcblxuLyoqXG4qIFNoYXJlU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9TaGFyZVNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgU2hhcmVTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFNoYXJlU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvU2hhcmVTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gU2hhcmVTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTaGFyZVNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBzaGFyZSByb29tXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZUNlbGxXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBkZWxldGVDZWxsV2l0aEh0dHBJbmZvKHV1aWQpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIGlzIHNldFxuICAgIGlmICh1dWlkID09PSB1bmRlZmluZWQgfHwgdXVpZCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyB3aGVuIGNhbGxpbmcgZGVsZXRlQ2VsbFwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdVdWlkJzogdXVpZFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9zaGFyZS9jZWxsL3tVdWlkfScsICdERUxFVEUnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYSBzaGFyZSByb29tXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlfVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZUNlbGwgPSBmdW5jdGlvbiBkZWxldGVDZWxsKHV1aWQpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVDZWxsV2l0aEh0dHBJbmZvKHV1aWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogRGVsZXRlIFNoYXJlIExpbmtcbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgU2hhcmVTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVTaGFyZUxpbmtXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBkZWxldGVTaGFyZUxpbmtXaXRoSHR0cEluZm8odXVpZCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXVpZCcgaXMgc2V0XG4gICAgaWYgKHV1aWQgPT09IHVuZGVmaW5lZCB8fCB1dWlkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIHdoZW4gY2FsbGluZyBkZWxldGVTaGFyZUxpbmtcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnVXVpZCc6IHV1aWRcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9zaGFyZS9saW5rL3tVdWlkfScsICdERUxFVEUnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgU2hhcmUgTGlua1xuICAgKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlfVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZVNoYXJlTGluayA9IGZ1bmN0aW9uIGRlbGV0ZVNoYXJlTGluayh1dWlkKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlU2hhcmVMaW5rV2l0aEh0dHBJbmZvKHV1aWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCBhIHNoYXJlIHJvb21cbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RDZWxsfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmdldENlbGxXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBnZXRDZWxsV2l0aEh0dHBJbmZvKHV1aWQpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIGlzIHNldFxuICAgIGlmICh1dWlkID09PSB1bmRlZmluZWQgfHwgdXVpZCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyB3aGVuIGNhbGxpbmcgZ2V0Q2VsbFwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdVdWlkJzogdXVpZFxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Q2VsbDJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvc2hhcmUvY2VsbC97VXVpZH0nLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCBhIHNoYXJlIHJvb21cbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RDZWxsfVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmdldENlbGwgPSBmdW5jdGlvbiBnZXRDZWxsKHV1aWQpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDZWxsV2l0aEh0dHBJbmZvKHV1aWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTG9hZCBhIHNoYXJlIGxpbmsgd2l0aCBhbGwgaW5mb3NcbiAgICogQHBhcmFtIHtTdHJpbmd9IHV1aWQgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmt9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUuZ2V0U2hhcmVMaW5rV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZ2V0U2hhcmVMaW5rV2l0aEh0dHBJbmZvKHV1aWQpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3V1aWQnIGlzIHNldFxuICAgIGlmICh1dWlkID09PSB1bmRlZmluZWQgfHwgdXVpZCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd1dWlkJyB3aGVuIGNhbGxpbmcgZ2V0U2hhcmVMaW5rXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1V1aWQnOiB1dWlkXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RTaGFyZUxpbmsyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3NoYXJlL2xpbmsve1V1aWR9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExvYWQgYSBzaGFyZSBsaW5rIHdpdGggYWxsIGluZm9zXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rfVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLmdldFNoYXJlTGluayA9IGZ1bmN0aW9uIGdldFNoYXJlTGluayh1dWlkKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U2hhcmVMaW5rV2l0aEh0dHBJbmZvKHV1aWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBTaGFyZWQgUmVzb3VyY2VzIGZvciBjdXJyZW50IHVzZXIgb3IgYWxsIHVzZXJzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgU2hhcmVTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0U2hhcmVkUmVzb3VyY2VzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdFNoYXJlZFJlc291cmNlc1dpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIGxpc3RTaGFyZWRSZXNvdXJjZXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3NoYXJlL3Jlc291cmNlcycsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBTaGFyZWQgUmVzb3VyY2VzIGZvciBjdXJyZW50IHVzZXIgb3IgYWxsIHVzZXJzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZX1cbiAgICovXG5cbiAgU2hhcmVTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0U2hhcmVkUmVzb3VyY2VzID0gZnVuY3Rpb24gbGlzdFNoYXJlZFJlc291cmNlcyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFNoYXJlZFJlc291cmNlc1dpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFB1dCBvciBDcmVhdGUgYSBzaGFyZSByb29tXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRDZWxsUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENlbGx9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUucHV0Q2VsbFdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHB1dENlbGxXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBwdXRDZWxsXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Q2VsbDJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvc2hhcmUvY2VsbCcsICdQVVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQdXQgb3IgQ3JlYXRlIGEgc2hhcmUgcm9vbVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RDZWxsfVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLnB1dENlbGwgPSBmdW5jdGlvbiBwdXRDZWxsKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wdXRDZWxsV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUHV0IG9yIENyZWF0ZSBhIHNoYXJlIHJvb21cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmt9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFNoYXJlU2VydmljZUFwaS5wcm90b3R5cGUucHV0U2hhcmVMaW5rV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcHV0U2hhcmVMaW5rV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgcHV0U2hhcmVMaW5rXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0U2hhcmVMaW5rMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9zaGFyZS9saW5rJywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFB1dCBvciBDcmVhdGUgYSBzaGFyZSByb29tXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rfVxuICAgKi9cblxuICBTaGFyZVNlcnZpY2VBcGkucHJvdG90eXBlLnB1dFNoYXJlTGluayA9IGZ1bmN0aW9uIHB1dFNoYXJlTGluayhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucHV0U2hhcmVMaW5rV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gU2hhcmVTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gU2hhcmVTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlKTtcblxuLyoqXG4qIFRlbXBsYXRlc1NlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvVGVtcGxhdGVzU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUZW1wbGF0ZXNTZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFRlbXBsYXRlc1NlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL1RlbXBsYXRlc1NlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBUZW1wbGF0ZXNTZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUZW1wbGF0ZXNTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBhdmFpbGFibGUgdGVtcGxhdGVzXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRlbXBsYXRlc1NlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RUZW1wbGF0ZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBsaXN0VGVtcGxhdGVzV2l0aEh0dHBJbmZvKCkge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdGVtcGxhdGVzJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgYXZhaWxhYmxlIHRlbXBsYXRlc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlfVxuICAgKi9cblxuICBUZW1wbGF0ZXNTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0VGVtcGxhdGVzID0gZnVuY3Rpb24gbGlzdFRlbXBsYXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0VGVtcGxhdGVzV2l0aEh0dHBJbmZvKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBUZW1wbGF0ZXNTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVGVtcGxhdGVzU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0UmV2b2tlUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RSZXZva2VSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0UmV2b2tlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSZXZva2VSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RSZXZva2VSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RSZXZva2VSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFJldm9rZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJldm9rZVJlc3BvbnNlKTtcblxuLyoqXG4qIFRva2VuU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9Ub2tlblNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVG9rZW5TZXJ2aWNlQXBpID0gKGZ1bmN0aW9uICgpIHtcblxuICAvKipcbiAgKiBDb25zdHJ1Y3RzIGEgbmV3IFRva2VuU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvVG9rZW5TZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gVG9rZW5TZXJ2aWNlQXBpKGFwaUNsaWVudCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUb2tlblNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5pc2ggdXAgdGhlIHJlc2V0IHBhc3N3b3JkIHByb2Nlc3MgYnkgcHJvdmlkaW5nIHRoZSB1bmlxdWUgdG9rZW5cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBUb2tlblNlcnZpY2VBcGkucHJvdG90eXBlLnJlc2V0UGFzc3dvcmRXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiByZXNldFBhc3N3b3JkV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgcmVzZXRQYXNzd29yZFwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvYXV0aC9yZXNldC1wYXNzd29yZCcsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogRmluaXNoIHVwIHRoZSByZXNldCBwYXNzd29yZCBwcm9jZXNzIGJ5IHByb3ZpZGluZyB0aGUgdW5pcXVlIHRva2VuXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZX1cbiAgICovXG5cbiAgVG9rZW5TZXJ2aWNlQXBpLnByb3RvdHlwZS5yZXNldFBhc3N3b3JkID0gZnVuY3Rpb24gcmVzZXRQYXNzd29yZChib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucmVzZXRQYXNzd29yZFdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgdW5pcXVlIHRva2VuIGZvciB0aGUgcmVzZXQgcGFzc3dvcmQgcHJvY2Vzc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gdXNlckxvZ2luIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRva2VuU2VydmljZUFwaS5wcm90b3R5cGUucmVzZXRQYXNzd29yZFRva2VuV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcmVzZXRQYXNzd29yZFRva2VuV2l0aEh0dHBJbmZvKHVzZXJMb2dpbikge1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAndXNlckxvZ2luJyBpcyBzZXRcbiAgICBpZiAodXNlckxvZ2luID09PSB1bmRlZmluZWQgfHwgdXNlckxvZ2luID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3VzZXJMb2dpbicgd2hlbiBjYWxsaW5nIHJlc2V0UGFzc3dvcmRUb2tlblwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdVc2VyTG9naW4nOiB1c2VyTG9naW5cbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy9hdXRoL3Jlc2V0LXBhc3N3b3JkLXRva2VuL3tVc2VyTG9naW59JywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgdW5pcXVlIHRva2VuIGZvciB0aGUgcmVzZXQgcGFzc3dvcmQgcHJvY2Vzc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gdXNlckxvZ2luIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2V9XG4gICAqL1xuXG4gIFRva2VuU2VydmljZUFwaS5wcm90b3R5cGUucmVzZXRQYXNzd29yZFRva2VuID0gZnVuY3Rpb24gcmVzZXRQYXNzd29yZFRva2VuKHVzZXJMb2dpbikge1xuICAgIHJldHVybiB0aGlzLnJlc2V0UGFzc3dvcmRUb2tlbldpdGhIdHRwSW5mbyh1c2VyTG9naW4pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUmV2b2tlIGEgSldUIHRva2VuXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmV2b2tlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRva2VuU2VydmljZUFwaS5wcm90b3R5cGUucmV2b2tlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcmV2b2tlV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgcmV2b2tlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0UmV2b2tlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL2F1dGgvdG9rZW4vcmV2b2tlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXZva2UgYSBKV1QgdG9rZW5cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJldm9rZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXNwb25zZX1cbiAgICovXG5cbiAgVG9rZW5TZXJ2aWNlQXBpLnByb3RvdHlwZS5yZXZva2UgPSBmdW5jdGlvbiByZXZva2UoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnJldm9rZVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIFRva2VuU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRva2VuU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZU5vZGVzUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RDcmVhdGVOb2Rlc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3REZWxldGVOb2Rlc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVOb2Rlc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0R2V0QnVsa01ldGFSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RIZWFkTm9kZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RIZWFkTm9kZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEhlYWROb2RlUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Tm9kZXNDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UpO1xuXG4vKipcbiogVHJlZVNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvVHJlZVNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZVNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgVHJlZVNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL1RyZWVTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gVHJlZVNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBtZXRhIGZvciBhIGxpc3Qgb2Ygbm9kZXMsIG9yIGEgZnVsbCBkaXJlY3RvcnkgdXNpbmcgL3BhdGgvXyogc3ludGF4XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUuYnVsa1N0YXROb2Rlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGJ1bGtTdGF0Tm9kZXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBidWxrU3RhdE5vZGVzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdHJlZS9zdGF0cycsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBtZXRhIGZvciBhIGxpc3Qgb2Ygbm9kZXMsIG9yIGEgZnVsbCBkaXJlY3RvcnkgdXNpbmcgL3BhdGgvXyogc3ludGF4XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlfVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUuYnVsa1N0YXROb2RlcyA9IGZ1bmN0aW9uIGJ1bGtTdGF0Tm9kZXMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLmJ1bGtTdGF0Tm9kZXNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgZGlycyBvciBlbXB0eSBmaWxlcyBpbnNpZGUgdGhlIHRyZWVcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENyZWF0ZU5vZGVzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVHJlZVNlcnZpY2VBcGkucHJvdG90eXBlLmNyZWF0ZU5vZGVzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gY3JlYXRlTm9kZXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBjcmVhdGVOb2Rlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdHJlZS9jcmVhdGUnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBkaXJzIG9yIGVtcHR5IGZpbGVzIGluc2lkZSB0aGUgdHJlZVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9ufVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUuY3JlYXRlTm9kZXMgPSBmdW5jdGlvbiBjcmVhdGVOb2Rlcyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTm9kZXNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0ZW1wb3Jhcnkgc2VsZWN0aW9uIGZvciBmdXJ0aGVyIGFjdGlvbiAobmFtZWx5IGRvd25sb2FkKVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUuY3JlYXRlU2VsZWN0aW9uV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gY3JlYXRlU2VsZWN0aW9uV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgY3JlYXRlU2VsZWN0aW9uXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3RyZWUvc2VsZWN0aW9uJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0ZW1wb3Jhcnkgc2VsZWN0aW9uIGZvciBmdXJ0aGVyIGFjdGlvbiAobmFtZWx5IGRvd25sb2FkKVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlfVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUuY3JlYXRlU2VsZWN0aW9uID0gZnVuY3Rpb24gY3JlYXRlU2VsZWN0aW9uKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVTZWxlY3Rpb25XaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGUgbm9kZXMgZGVsZXRpb25cbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5kZWxldGVOb2Rlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGRlbGV0ZU5vZGVzV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgZGVsZXRlTm9kZXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy90cmVlL2RlbGV0ZScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogSGFuZGxlIG5vZGVzIGRlbGV0aW9uXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVOb2Rlc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVOb2Rlc1Jlc3BvbnNlfVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlTm9kZXMgPSBmdW5jdGlvbiBkZWxldGVOb2Rlcyhib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlTm9kZXNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gbm9kZSBtZXRhIHdpdGhvdXQgdGhlIG5vZGUgY29udGVudCBpdHNlbGZcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5vZGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RIZWFkTm9kZVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUuaGVhZE5vZGVXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBoZWFkTm9kZVdpdGhIdHRwSW5mbyhub2RlKSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdub2RlJyBpcyBzZXRcbiAgICBpZiAobm9kZSA9PT0gdW5kZWZpbmVkIHx8IG5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbm9kZScgd2hlbiBjYWxsaW5nIGhlYWROb2RlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ05vZGUnOiBub2RlXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RIZWFkTm9kZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy90cmVlL3N0YXQve05vZGV9JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBub2RlIG1ldGEgd2l0aG91dCB0aGUgbm9kZSBjb250ZW50IGl0c2VsZlxuICAgKiBAcGFyYW0ge1N0cmluZ30gbm9kZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2V9XG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5oZWFkTm9kZSA9IGZ1bmN0aW9uIGhlYWROb2RlKG5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5oZWFkTm9kZVdpdGhIdHRwSW5mbyhub2RlKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBub2RlcyByZXN0b3JhdGlvbiBmcm9tIHJlY3ljbGUgYmluXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFRyZWVTZXJ2aWNlQXBpLnByb3RvdHlwZS5yZXN0b3JlTm9kZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiByZXN0b3JlTm9kZXNXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyByZXN0b3JlTm9kZXNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdHJlZS9yZXN0b3JlJywgJ1BPU1QnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYW5kbGUgbm9kZXMgcmVzdG9yYXRpb24gZnJvbSByZWN5Y2xlIGJpblxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlfVxuICAgKi9cblxuICBUcmVlU2VydmljZUFwaS5wcm90b3R5cGUucmVzdG9yZU5vZGVzID0gZnVuY3Rpb24gcmVzdG9yZU5vZGVzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5yZXN0b3JlTm9kZXNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBUcmVlU2VydmljZUFwaTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1VwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFVwZGF0ZVVwZGF0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvVXBkYXRlVXBkYXRlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFVwZGF0ZVVwZGF0ZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVXBkYXRlVXBkYXRlUmVzcG9uc2UpO1xuXG4vKipcbiogVXBkYXRlU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9VcGRhdGVTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFVwZGF0ZVNlcnZpY2VBcGkgPSAoZnVuY3Rpb24gKCkge1xuXG4gIC8qKlxuICAqIENvbnN0cnVjdHMgYSBuZXcgVXBkYXRlU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvVXBkYXRlU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIFVwZGF0ZVNlcnZpY2VBcGkoYXBpQ2xpZW50KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVwZGF0ZVNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBhbiB1cGRhdGUgdG8gYSBnaXZlbiB2ZXJzaW9uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0YXJnZXRWZXJzaW9uIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBVcGRhdGVTZXJ2aWNlQXBpLnByb3RvdHlwZS5hcHBseVVwZGF0ZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGFwcGx5VXBkYXRlV2l0aEh0dHBJbmZvKHRhcmdldFZlcnNpb24pIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3RhcmdldFZlcnNpb24nIGlzIHNldFxuICAgIGlmICh0YXJnZXRWZXJzaW9uID09PSB1bmRlZmluZWQgfHwgdGFyZ2V0VmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd0YXJnZXRWZXJzaW9uJyB3aGVuIGNhbGxpbmcgYXBwbHlVcGRhdGVcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnVGFyZ2V0VmVyc2lvbic6IHRhcmdldFZlcnNpb25cbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXBkYXRlL3tUYXJnZXRWZXJzaW9ufScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBcHBseSBhbiB1cGRhdGUgdG8gYSBnaXZlbiB2ZXJzaW9uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0YXJnZXRWZXJzaW9uIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9VcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlfVxuICAgKi9cblxuICBVcGRhdGVTZXJ2aWNlQXBpLnByb3RvdHlwZS5hcHBseVVwZGF0ZSA9IGZ1bmN0aW9uIGFwcGx5VXBkYXRlKHRhcmdldFZlcnNpb24pIHtcbiAgICByZXR1cm4gdGhpcy5hcHBseVVwZGF0ZVdpdGhIdHRwSW5mbyh0YXJnZXRWZXJzaW9uKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrIHRoZSByZW1vdGUgc2VydmVyIHRvIHNlZSBpZiB0aGVyZSBhcmUgYXZhaWxhYmxlIGJpbmFyaWVzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuY2hhbm5lbCBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLnBhY2thZ2VOYW1lIE5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIGFwcGxpY2F0aW9uLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5jdXJyZW50VmVyc2lvbiBDdXJyZW50IHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5HT09TIEN1cnJlbnQgR09PUy5cbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuR09BUkNIIEN1cnJlbnQgR09BUkNILlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5zZXJ2aWNlTmFtZSBOb3QgVXNlZCA6IHNwZWNpZmljIHNlcnZpY2UgdG8gZ2V0IHVwZGF0ZXMgZm9yLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9VcGRhdGVVcGRhdGVSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXBkYXRlU2VydmljZUFwaS5wcm90b3R5cGUudXBkYXRlUmVxdWlyZWRXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiB1cGRhdGVSZXF1aXJlZFdpdGhIdHRwSW5mbyhvcHRzKSB7XG4gICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgdmFyIHBvc3RCb2R5ID0gbnVsbDtcblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgJ0NoYW5uZWwnOiBvcHRzWydjaGFubmVsJ10sXG4gICAgICAnUGFja2FnZU5hbWUnOiBvcHRzWydwYWNrYWdlTmFtZSddLFxuICAgICAgJ0N1cnJlbnRWZXJzaW9uJzogb3B0c1snY3VycmVudFZlcnNpb24nXSxcbiAgICAgICdHT09TJzogb3B0c1snR09PUyddLFxuICAgICAgJ0dPQVJDSCc6IG9wdHNbJ0dPQVJDSCddLFxuICAgICAgJ1NlcnZpY2VOYW1lJzogb3B0c1snc2VydmljZU5hbWUnXVxuICAgIH07XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxVcGRhdGVVcGRhdGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXBkYXRlJywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENoZWNrIHRoZSByZW1vdGUgc2VydmVyIHRvIHNlZSBpZiB0aGVyZSBhcmUgYXZhaWxhYmxlIGJpbmFyaWVzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIE9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuY2hhbm5lbCBDaGFubmVsIG5hbWUuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLnBhY2thZ2VOYW1lIE5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIGFwcGxpY2F0aW9uLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5jdXJyZW50VmVyc2lvbiBDdXJyZW50IHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5HT09TIEN1cnJlbnQgR09PUy5cbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMuR09BUkNIIEN1cnJlbnQgR09BUkNILlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5zZXJ2aWNlTmFtZSBOb3QgVXNlZCA6IHNwZWNpZmljIHNlcnZpY2UgdG8gZ2V0IHVwZGF0ZXMgZm9yLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9VcGRhdGVVcGRhdGVSZXNwb25zZX1cbiAgICovXG5cbiAgVXBkYXRlU2VydmljZUFwaS5wcm90b3R5cGUudXBkYXRlUmVxdWlyZWQgPSBmdW5jdGlvbiB1cGRhdGVSZXF1aXJlZChvcHRzKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlUmVxdWlyZWRXaXRoSHR0cEluZm8ob3B0cykudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBVcGRhdGVTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXBkYXRlU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0KTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0KTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QgPSByZXF1aXJlKCcuLi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0QnVsa01ldGFSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UgPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJNZXRhQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlck1ldGFDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbik7XG5cbi8qKlxuKiBVc2VyTWV0YVNlcnZpY2Ugc2VydmljZS5cbiogQG1vZHVsZSBhcGkvVXNlck1ldGFTZXJ2aWNlQXBpXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFVzZXJNZXRhU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBVc2VyTWV0YVNlcnZpY2VBcGkuIFxuICAqIEBhbGlhcyBtb2R1bGU6YXBpL1VzZXJNZXRhU2VydmljZUFwaVxuICAqIEBjbGFzc1xuICAqIEBwYXJhbSB7bW9kdWxlOkFwaUNsaWVudH0gYXBpQ2xpZW50IE9wdGlvbmFsIEFQSSBjbGllbnQgaW1wbGVtZW50YXRpb24gdG8gdXNlLFxuICAqIGRlZmF1bHQgdG8ge0BsaW5rIG1vZHVsZTpBcGlDbGllbnQjaW5zdGFuY2V9IGlmIHVuc3BlY2lmaWVkLlxuICAqL1xuXG4gIGZ1bmN0aW9uIFVzZXJNZXRhU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXNlck1ldGFTZXJ2aWNlQXBpKTtcblxuICAgIHRoaXMuYXBpQ2xpZW50ID0gYXBpQ2xpZW50IHx8IF9BcGlDbGllbnQyWydkZWZhdWx0J10uaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogTGlzdCBUYWdzIGZvciBhIGdpdmVuIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlIFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdGFncyBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBVc2VyTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZVVzZXJNZXRhVGFnc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGRlbGV0ZVVzZXJNZXRhVGFnc1dpdGhIdHRwSW5mbyhuYW1lc3BhY2UsIHRhZ3MpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWVzcGFjZScgaXMgc2V0XG4gICAgaWYgKG5hbWVzcGFjZSA9PT0gdW5kZWZpbmVkIHx8IG5hbWVzcGFjZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICduYW1lc3BhY2UnIHdoZW4gY2FsbGluZyBkZWxldGVVc2VyTWV0YVRhZ3NcIik7XG4gICAgfVxuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3RhZ3MnIGlzIHNldFxuICAgIGlmICh0YWdzID09PSB1bmRlZmluZWQgfHwgdGFncyA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICd0YWdzJyB3aGVuIGNhbGxpbmcgZGVsZXRlVXNlck1ldGFUYWdzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ05hbWVzcGFjZSc6IG5hbWVzcGFjZSxcbiAgICAgICdUYWdzJzogdGFnc1xuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXItbWV0YS90YWdzL3tOYW1lc3BhY2V9L3tUYWdzfScsICdERUxFVEUnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IFRhZ3MgZm9yIGEgZ2l2ZW4gbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2UgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0YWdzIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2V9XG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlVXNlck1ldGFUYWdzID0gZnVuY3Rpb24gZGVsZXRlVXNlck1ldGFUYWdzKG5hbWVzcGFjZSwgdGFncykge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZVVzZXJNZXRhVGFnc1dpdGhIdHRwSW5mbyhuYW1lc3BhY2UsIHRhZ3MpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBkZWZpbmVkIG1ldGEgbmFtZXNwYWNlc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9ufSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBVc2VyTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RVc2VyTWV0YU5hbWVzcGFjZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGxpc3RVc2VyTWV0YU5hbWVzcGFjZVdpdGhIdHRwSW5mbygpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXItbWV0YS9uYW1lc3BhY2UnLCAnR0VUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBkZWZpbmVkIG1ldGEgbmFtZXNwYWNlc1xuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9ufVxuICAgKi9cblxuICBVc2VyTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLmxpc3RVc2VyTWV0YU5hbWVzcGFjZSA9IGZ1bmN0aW9uIGxpc3RVc2VyTWV0YU5hbWVzcGFjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0VXNlck1ldGFOYW1lc3BhY2VXaXRoSHR0cEluZm8oKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgVGFncyBmb3IgYSBnaXZlbiBuYW1lc3BhY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5saXN0VXNlck1ldGFUYWdzV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gbGlzdFVzZXJNZXRhVGFnc1dpdGhIdHRwSW5mbyhuYW1lc3BhY2UpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWVzcGFjZScgaXMgc2V0XG4gICAgaWYgKG5hbWVzcGFjZSA9PT0gdW5kZWZpbmVkIHx8IG5hbWVzcGFjZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICduYW1lc3BhY2UnIHdoZW4gY2FsbGluZyBsaXN0VXNlck1ldGFUYWdzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ05hbWVzcGFjZSc6IG5hbWVzcGFjZVxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91c2VyLW1ldGEvdGFncy97TmFtZXNwYWNlfScsICdHRVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IFRhZ3MgZm9yIGEgZ2l2ZW4gbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2UgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2V9XG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUubGlzdFVzZXJNZXRhVGFncyA9IGZ1bmN0aW9uIGxpc3RVc2VyTWV0YVRhZ3MobmFtZXNwYWNlKSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdFVzZXJNZXRhVGFnc1dpdGhIdHRwSW5mbyhuYW1lc3BhY2UpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBUYWdzIGZvciBhIGdpdmVuIG5hbWVzcGFjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlIFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRVc2VyTWV0YVRhZ1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHB1dFVzZXJNZXRhVGFnV2l0aEh0dHBJbmZvKG5hbWVzcGFjZSwgYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbmFtZXNwYWNlJyBpcyBzZXRcbiAgICBpZiAobmFtZXNwYWNlID09PSB1bmRlZmluZWQgfHwgbmFtZXNwYWNlID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ25hbWVzcGFjZScgd2hlbiBjYWxsaW5nIHB1dFVzZXJNZXRhVGFnXCIpO1xuICAgIH1cblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHB1dFVzZXJNZXRhVGFnXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ05hbWVzcGFjZSc6IG5hbWVzcGFjZVxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci1tZXRhL3RhZ3Mve05hbWVzcGFjZX0nLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QgVGFncyBmb3IgYSBnaXZlbiBuYW1lc3BhY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2V9XG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUucHV0VXNlck1ldGFUYWcgPSBmdW5jdGlvbiBwdXRVc2VyTWV0YVRhZyhuYW1lc3BhY2UsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wdXRVc2VyTWV0YVRhZ1dpdGhIdHRwSW5mbyhuYW1lc3BhY2UsIGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogU2VhcmNoIGEgbGlzdCBvZiBtZXRhIGJ5IG5vZGUgSWQgb3IgYnkgVXNlciBpZCBhbmQgYnkgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFVzZXJNZXRhQ29sbGVjdGlvbn0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZWFyY2hVc2VyTWV0YVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHNlYXJjaFVzZXJNZXRhV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc2VhcmNoVXNlck1ldGFcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXItbWV0YS9zZWFyY2gnLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBhIGxpc3Qgb2YgbWV0YSBieSBub2RlIElkIG9yIGJ5IFVzZXIgaWQgYW5kIGJ5IG5hbWVzcGFjZVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb259XG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoVXNlck1ldGEgPSBmdW5jdGlvbiBzZWFyY2hVc2VyTWV0YShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoVXNlck1ldGFXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBVcGRhdGUvZGVsZXRlIHVzZXIgbWV0YVxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUudXBkYXRlVXNlck1ldGFXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiB1cGRhdGVVc2VyTWV0YVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHVwZGF0ZVVzZXJNZXRhXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91c2VyLW1ldGEvdXBkYXRlJywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFVwZGF0ZS9kZWxldGUgdXNlciBtZXRhXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZX1cbiAgICovXG5cbiAgVXNlck1ldGFTZXJ2aWNlQXBpLnByb3RvdHlwZS51cGRhdGVVc2VyTWV0YSA9IGZ1bmN0aW9uIHVwZGF0ZVVzZXJNZXRhKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVVc2VyTWV0YVdpdGhIdHRwSW5mbyhib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkbWluOiB1cGRhdGUgbmFtZXNwYWNlc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUudXBkYXRlVXNlck1ldGFOYW1lc3BhY2VXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiB1cGRhdGVVc2VyTWV0YU5hbWVzcGFjZVdpdGhIdHRwSW5mbyhib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyBpcyBzZXRcbiAgICBpZiAoYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgd2hlbiBjYWxsaW5nIHVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy91c2VyLW1ldGEvbmFtZXNwYWNlJywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkbWluOiB1cGRhdGUgbmFtZXNwYWNlc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2V9XG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUudXBkYXRlVXNlck1ldGFOYW1lc3BhY2UgPSBmdW5jdGlvbiB1cGRhdGVVc2VyTWV0YU5hbWVzcGFjZShib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlVXNlck1ldGFOYW1lc3BhY2VXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTcGVjaWFsIEFQSSBmb3IgQm9va21hcmtzLCB3aWxsIGxvYWQgdXNlck1ldGEgYW5kIHRoZSBhc3NvY2lhdGVkIG5vZGVzLCBhbmQgcmV0dXJuIGFzIGEgbm9kZSBsaXN0XG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyQm9va21hcmtzUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJNZXRhU2VydmljZUFwaS5wcm90b3R5cGUudXNlckJvb2ttYXJrc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHVzZXJCb29rbWFya3NXaXRoSHR0cEluZm8oYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyB1c2VyQm9va21hcmtzXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge307XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci1tZXRhL2Jvb2ttYXJrcycsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU3BlY2lhbCBBUEkgZm9yIEJvb2ttYXJrcywgd2lsbCBsb2FkIHVzZXJNZXRhIGFuZCB0aGUgYXNzb2NpYXRlZCBub2RlcywgYW5kIHJldHVybiBhcyBhIG5vZGUgbGlzdFxuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlfVxuICAgKi9cblxuICBVc2VyTWV0YVNlcnZpY2VBcGkucHJvdG90eXBlLnVzZXJCb29rbWFya3MgPSBmdW5jdGlvbiB1c2VyQm9va21hcmtzKGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyQm9va21hcmtzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gVXNlck1ldGFTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlck1ldGFTZXJ2aWNlQXBpO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKFwiLi4vQXBpQ2xpZW50XCIpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsSWRtVXNlciA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbVVzZXInKTtcblxudmFyIF9tb2RlbElkbVVzZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Vc2VyKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3REZWxldGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hVc2VyUmVxdWVzdCA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RVc2Vyc0NvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0VXNlcnNDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlcnNDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJzQ29sbGVjdGlvbik7XG5cbi8qKlxuKiBVc2VyU2VydmljZSBzZXJ2aWNlLlxuKiBAbW9kdWxlIGFwaS9Vc2VyU2VydmljZUFwaVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBVc2VyU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBVc2VyU2VydmljZUFwaS4gXG4gICogQGFsaWFzIG1vZHVsZTphcGkvVXNlclNlcnZpY2VBcGlcbiAgKiBAY2xhc3NcbiAgKiBAcGFyYW0ge21vZHVsZTpBcGlDbGllbnR9IGFwaUNsaWVudCBPcHRpb25hbCBBUEkgY2xpZW50IGltcGxlbWVudGF0aW9uIHRvIHVzZSxcbiAgKiBkZWZhdWx0IHRvIHtAbGluayBtb2R1bGU6QXBpQ2xpZW50I2luc3RhbmNlfSBpZiB1bnNwZWNpZmllZC5cbiAgKi9cblxuICBmdW5jdGlvbiBVc2VyU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXNlclNlcnZpY2VBcGkpO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBhcGlDbGllbnQgfHwgX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYSB1c2VyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2dpbiBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlfSBhbmQgSFRUUCByZXNwb25zZVxuICAgKi9cblxuICBVc2VyU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlVXNlcldpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIGRlbGV0ZVVzZXJXaXRoSHR0cEluZm8obG9naW4pIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2xvZ2luJyBpcyBzZXRcbiAgICBpZiAobG9naW4gPT09IHVuZGVmaW5lZCB8fCBsb2dpbiA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdsb2dpbicgd2hlbiBjYWxsaW5nIGRlbGV0ZVVzZXJcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnTG9naW4nOiBsb2dpblxuICAgIH07XG4gICAgdmFyIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgdmFyIGhlYWRlclBhcmFtcyA9IHt9O1xuICAgIHZhciBmb3JtUGFyYW1zID0ge307XG5cbiAgICB2YXIgYXV0aE5hbWVzID0gW107XG4gICAgdmFyIGNvbnRlbnRUeXBlcyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciBhY2NlcHRzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIHJldHVyblR5cGUgPSBfbW9kZWxSZXN0RGVsZXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXIve0xvZ2lufScsICdERUxFVEUnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYSB1c2VyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2dpbiBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlfVxuICAgKi9cblxuICBVc2VyU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlVXNlciA9IGZ1bmN0aW9uIGRlbGV0ZVVzZXIobG9naW4pIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVVc2VyV2l0aEh0dHBJbmZvKGxvZ2luKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCBhIHVzZXIgYnkgbG9naW5cbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvZ2luIFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLnV1aWQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmdyb3VwUGF0aCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMucGFzc3dvcmQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9sZFBhc3N3b3JkIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMuaXNHcm91cCBHcm91cCBzcGVjaWZpYyBkYXRhLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5ncm91cExhYmVsIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMucG9saWNpZXNDb250ZXh0RWRpdGFibGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVVzZXJ9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRVc2VyV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZ2V0VXNlcldpdGhIdHRwSW5mbyhsb2dpbiwgb3B0cykge1xuICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgIHZhciBwb3N0Qm9keSA9IG51bGw7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbG9naW4nIGlzIHNldFxuICAgIGlmIChsb2dpbiA9PT0gdW5kZWZpbmVkIHx8IGxvZ2luID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2xvZ2luJyB3aGVuIGNhbGxpbmcgZ2V0VXNlclwiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdMb2dpbic6IGxvZ2luXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7XG4gICAgICAnVXVpZCc6IG9wdHNbJ3V1aWQnXSxcbiAgICAgICdHcm91cFBhdGgnOiBvcHRzWydncm91cFBhdGgnXSxcbiAgICAgICdQYXNzd29yZCc6IG9wdHNbJ3Bhc3N3b3JkJ10sXG4gICAgICAnT2xkUGFzc3dvcmQnOiBvcHRzWydvbGRQYXNzd29yZCddLFxuICAgICAgJ0lzR3JvdXAnOiBvcHRzWydpc0dyb3VwJ10sXG4gICAgICAnR3JvdXBMYWJlbCc6IG9wdHNbJ2dyb3VwTGFiZWwnXSxcbiAgICAgICdQb2xpY2llc0NvbnRleHRFZGl0YWJsZSc6IG9wdHNbJ3BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ11cbiAgICB9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSWRtVXNlcjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci97TG9naW59JywgJ0dFVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldCBhIHVzZXIgYnkgbG9naW5cbiAgICogQHBhcmFtIHtTdHJpbmd9IGxvZ2luIFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBPcHRpb25hbCBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLnV1aWQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLmdyb3VwUGF0aCBcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdHMucGFzc3dvcmQgXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRzLm9sZFBhc3N3b3JkIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMuaXNHcm91cCBHcm91cCBzcGVjaWZpYyBkYXRhLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0cy5ncm91cExhYmVsIFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMucG9saWNpZXNDb250ZXh0RWRpdGFibGUgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVVzZXJ9XG4gICAqL1xuXG4gIFVzZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5nZXRVc2VyID0gZnVuY3Rpb24gZ2V0VXNlcihsb2dpbiwgb3B0cykge1xuICAgIHJldHVybiB0aGlzLmdldFVzZXJXaXRoSHR0cEluZm8obG9naW4sIG9wdHMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogSnVzdCBzYXZlIGEgdXNlciByb2xlcywgd2l0aG91dCBvdGhlciBkYXRhc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9naW4gXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVzZXJ9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVVzZXJ9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRSb2xlc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHB1dFJvbGVzV2l0aEh0dHBJbmZvKGxvZ2luLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdsb2dpbicgaXMgc2V0XG4gICAgaWYgKGxvZ2luID09PSB1bmRlZmluZWQgfHwgbG9naW4gPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbG9naW4nIHdoZW4gY2FsbGluZyBwdXRSb2xlc1wiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBwdXRSb2xlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHtcbiAgICAgICdMb2dpbic6IGxvZ2luXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbElkbVVzZXIyWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXIvcm9sZXMve0xvZ2lufScsICdQVVQnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBKdXN0IHNhdmUgYSB1c2VyIHJvbGVzLCB3aXRob3V0IG90aGVyIGRhdGFzXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2dpbiBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtVXNlcn0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXNlcn1cbiAgICovXG5cbiAgVXNlclNlcnZpY2VBcGkucHJvdG90eXBlLnB1dFJvbGVzID0gZnVuY3Rpb24gcHV0Um9sZXMobG9naW4sIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5wdXRSb2xlc1dpdGhIdHRwSW5mbyhsb2dpbiwgYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgb3IgdXBkYXRlIGEgdXNlclxuICAgKiBAcGFyYW0ge1N0cmluZ30gbG9naW4gXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVzZXJ9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL0lkbVVzZXJ9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRVc2VyV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gcHV0VXNlcldpdGhIdHRwSW5mbyhsb2dpbiwgYm9keSkge1xuICAgIHZhciBwb3N0Qm9keSA9IGJvZHk7XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnbG9naW4nIGlzIHNldFxuICAgIGlmIChsb2dpbiA9PT0gdW5kZWZpbmVkIHx8IGxvZ2luID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2xvZ2luJyB3aGVuIGNhbGxpbmcgcHV0VXNlclwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBwdXRVc2VyXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ0xvZ2luJzogbG9naW5cbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSWRtVXNlcjJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvdXNlci97TG9naW59JywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBvciB1cGRhdGUgYSB1c2VyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBsb2dpbiBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtVXNlcn0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtVXNlcn1cbiAgICovXG5cbiAgVXNlclNlcnZpY2VBcGkucHJvdG90eXBlLnB1dFVzZXIgPSBmdW5jdGlvbiBwdXRVc2VyKGxvZ2luLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMucHV0VXNlcldpdGhIdHRwSW5mbyhsb2dpbiwgYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0L1NlYXJjaCB1c2Vyc1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoVXNlclJlcXVlc3R9IGJvZHkgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3RVc2Vyc0NvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFVzZXJTZXJ2aWNlQXBpLnByb3RvdHlwZS5zZWFyY2hVc2Vyc1dpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHNlYXJjaFVzZXJzV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc2VhcmNoVXNlcnNcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7fTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3RVc2Vyc0NvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3VzZXInLCAnUE9TVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIExpc3QvU2VhcmNoIHVzZXJzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFVzZXJzQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgVXNlclNlcnZpY2VBcGkucHJvdG90eXBlLnNlYXJjaFVzZXJzID0gZnVuY3Rpb24gc2VhcmNoVXNlcnMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJzV2l0aEh0dHBJbmZvKGJvZHkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gVXNlclNlcnZpY2VBcGk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVc2VyU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZShcIi4uL0FwaUNsaWVudFwiKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9tb2RlbElkbVdvcmtzcGFjZSA9IHJlcXVpcmUoJy4uL21vZGVsL0lkbVdvcmtzcGFjZScpO1xuXG52YXIgX21vZGVsSWRtV29ya3NwYWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtV29ya3NwYWNlKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVSZXNwb25zZSA9IHJlcXVpcmUoJy4uL21vZGVsL1Jlc3REZWxldGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi4vbW9kZWwvUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9tb2RlbC9SZXN0V29ya3NwYWNlQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0V29ya3NwYWNlQ29sbGVjdGlvbik7XG5cbi8qKlxuKiBXb3Jrc3BhY2VTZXJ2aWNlIHNlcnZpY2UuXG4qIEBtb2R1bGUgYXBpL1dvcmtzcGFjZVNlcnZpY2VBcGlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgV29ya3NwYWNlU2VydmljZUFwaSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICogQ29uc3RydWN0cyBhIG5ldyBXb3Jrc3BhY2VTZXJ2aWNlQXBpLiBcbiAgKiBAYWxpYXMgbW9kdWxlOmFwaS9Xb3Jrc3BhY2VTZXJ2aWNlQXBpXG4gICogQGNsYXNzXG4gICogQHBhcmFtIHttb2R1bGU6QXBpQ2xpZW50fSBhcGlDbGllbnQgT3B0aW9uYWwgQVBJIGNsaWVudCBpbXBsZW1lbnRhdGlvbiB0byB1c2UsXG4gICogZGVmYXVsdCB0byB7QGxpbmsgbW9kdWxlOkFwaUNsaWVudCNpbnN0YW5jZX0gaWYgdW5zcGVjaWZpZWQuXG4gICovXG5cbiAgZnVuY3Rpb24gV29ya3NwYWNlU2VydmljZUFwaShhcGlDbGllbnQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgV29ya3NwYWNlU2VydmljZUFwaSk7XG5cbiAgICB0aGlzLmFwaUNsaWVudCA9IGFwaUNsaWVudCB8fCBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbiBleGlzdGluZyB3b3Jrc3BhY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IHNsdWcgXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEge0BsaW5rIGh0dHBzOi8vd3d3LnByb21pc2Vqcy5vcmcvfFByb21pc2V9LCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGRhdGEgb2YgdHlwZSB7QGxpbmsgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVSZXNwb25zZX0gYW5kIEhUVFAgcmVzcG9uc2VcbiAgICovXG5cbiAgV29ya3NwYWNlU2VydmljZUFwaS5wcm90b3R5cGUuZGVsZXRlV29ya3NwYWNlV2l0aEh0dHBJbmZvID0gZnVuY3Rpb24gZGVsZXRlV29ya3NwYWNlV2l0aEh0dHBJbmZvKHNsdWcpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBudWxsO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3NsdWcnIGlzIHNldFxuICAgIGlmIChzbHVnID09PSB1bmRlZmluZWQgfHwgc2x1ZyA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzbHVnJyB3aGVuIGNhbGxpbmcgZGVsZXRlV29ya3NwYWNlXCIpO1xuICAgIH1cblxuICAgIHZhciBwYXRoUGFyYW1zID0ge1xuICAgICAgJ1NsdWcnOiBzbHVnXG4gICAgfTtcbiAgICB2YXIgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB2YXIgaGVhZGVyUGFyYW1zID0ge307XG4gICAgdmFyIGZvcm1QYXJhbXMgPSB7fTtcblxuICAgIHZhciBhdXRoTmFtZXMgPSBbXTtcbiAgICB2YXIgY29udGVudFR5cGVzID0gWydhcHBsaWNhdGlvbi9qc29uJ107XG4gICAgdmFyIGFjY2VwdHMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgcmV0dXJuVHlwZSA9IF9tb2RlbFJlc3REZWxldGVSZXNwb25zZTJbJ2RlZmF1bHQnXTtcblxuICAgIHJldHVybiB0aGlzLmFwaUNsaWVudC5jYWxsQXBpKCcvd29ya3NwYWNlL3tTbHVnfScsICdERUxFVEUnLCBwYXRoUGFyYW1zLCBxdWVyeVBhcmFtcywgaGVhZGVyUGFyYW1zLCBmb3JtUGFyYW1zLCBwb3N0Qm9keSwgYXV0aE5hbWVzLCBjb250ZW50VHlwZXMsIGFjY2VwdHMsIHJldHVyblR5cGUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZXhpc3Rpbmcgd29ya3NwYWNlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzbHVnIFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlUmVzcG9uc2V9XG4gICAqL1xuXG4gIFdvcmtzcGFjZVNlcnZpY2VBcGkucHJvdG90eXBlLmRlbGV0ZVdvcmtzcGFjZSA9IGZ1bmN0aW9uIGRlbGV0ZVdvcmtzcGFjZShzbHVnKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlV29ya3NwYWNlV2l0aEh0dHBJbmZvKHNsdWcpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlX2FuZF9kYXRhKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2VfYW5kX2RhdGEuZGF0YTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlIG9yIHVwZGF0ZSBhIHdvcmtzcGFjZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gc2x1ZyBcbiAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlfSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2V9IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFdvcmtzcGFjZVNlcnZpY2VBcGkucHJvdG90eXBlLnB1dFdvcmtzcGFjZVdpdGhIdHRwSW5mbyA9IGZ1bmN0aW9uIHB1dFdvcmtzcGFjZVdpdGhIdHRwSW5mbyhzbHVnLCBib2R5KSB7XG4gICAgdmFyIHBvc3RCb2R5ID0gYm9keTtcblxuICAgIC8vIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdzbHVnJyBpcyBzZXRcbiAgICBpZiAoc2x1ZyA9PT0gdW5kZWZpbmVkIHx8IHNsdWcgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnc2x1Zycgd2hlbiBjYWxsaW5nIHB1dFdvcmtzcGFjZVwiKTtcbiAgICB9XG5cbiAgICAvLyB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAnYm9keScgaXMgc2V0XG4gICAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIHdoZW4gY2FsbGluZyBwdXRXb3Jrc3BhY2VcIik7XG4gICAgfVxuXG4gICAgdmFyIHBhdGhQYXJhbXMgPSB7XG4gICAgICAnU2x1Zyc6IHNsdWdcbiAgICB9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsSWRtV29ya3NwYWNlMlsnZGVmYXVsdCddO1xuXG4gICAgcmV0dXJuIHRoaXMuYXBpQ2xpZW50LmNhbGxBcGkoJy93b3Jrc3BhY2Uve1NsdWd9JywgJ1BVVCcsIHBhdGhQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBoZWFkZXJQYXJhbXMsIGZvcm1QYXJhbXMsIHBvc3RCb2R5LCBhdXRoTmFtZXMsIGNvbnRlbnRUeXBlcywgYWNjZXB0cywgcmV0dXJuVHlwZSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBvciB1cGRhdGUgYSB3b3Jrc3BhY2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IHNsdWcgXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZX0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlfVxuICAgKi9cblxuICBXb3Jrc3BhY2VTZXJ2aWNlQXBpLnByb3RvdHlwZS5wdXRXb3Jrc3BhY2UgPSBmdW5jdGlvbiBwdXRXb3Jrc3BhY2Uoc2x1ZywgYm9keSkge1xuICAgIHJldHVybiB0aGlzLnB1dFdvcmtzcGFjZVdpdGhIdHRwSW5mbyhzbHVnLCBib2R5KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZV9hbmRfZGF0YSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlX2FuZF9kYXRhLmRhdGE7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlYXJjaCB3b3Jrc3BhY2VzIG9uIGNlcnRhaW4ga2V5c1xuICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdH0gYm9keSBcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSB7QGxpbmsgaHR0cHM6Ly93d3cucHJvbWlzZWpzLm9yZy98UHJvbWlzZX0sIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgZGF0YSBvZiB0eXBlIHtAbGluayBtb2R1bGU6bW9kZWwvUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb259IGFuZCBIVFRQIHJlc3BvbnNlXG4gICAqL1xuXG4gIFdvcmtzcGFjZVNlcnZpY2VBcGkucHJvdG90eXBlLnNlYXJjaFdvcmtzcGFjZXNXaXRoSHR0cEluZm8gPSBmdW5jdGlvbiBzZWFyY2hXb3Jrc3BhY2VzV2l0aEh0dHBJbmZvKGJvZHkpIHtcbiAgICB2YXIgcG9zdEJvZHkgPSBib2R5O1xuXG4gICAgLy8gdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgJ2JvZHknIGlzIHNldFxuICAgIGlmIChib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICdib2R5JyB3aGVuIGNhbGxpbmcgc2VhcmNoV29ya3NwYWNlc1wiKTtcbiAgICB9XG5cbiAgICB2YXIgcGF0aFBhcmFtcyA9IHt9O1xuICAgIHZhciBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHZhciBoZWFkZXJQYXJhbXMgPSB7fTtcbiAgICB2YXIgZm9ybVBhcmFtcyA9IHt9O1xuXG4gICAgdmFyIGF1dGhOYW1lcyA9IFtdO1xuICAgIHZhciBjb250ZW50VHlwZXMgPSBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICB2YXIgYWNjZXB0cyA9IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgIHZhciByZXR1cm5UeXBlID0gX21vZGVsUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5cbiAgICByZXR1cm4gdGhpcy5hcGlDbGllbnQuY2FsbEFwaSgnL3dvcmtzcGFjZScsICdQT1NUJywgcGF0aFBhcmFtcywgcXVlcnlQYXJhbXMsIGhlYWRlclBhcmFtcywgZm9ybVBhcmFtcywgcG9zdEJvZHksIGF1dGhOYW1lcywgY29udGVudFR5cGVzLCBhY2NlcHRzLCByZXR1cm5UeXBlKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VhcmNoIHdvcmtzcGFjZXMgb24gY2VydGFpbiBrZXlzXG4gICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0fSBib2R5IFxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHtAbGluayBodHRwczovL3d3dy5wcm9taXNlanMub3JnL3xQcm9taXNlfSwgd2l0aCBkYXRhIG9mIHR5cGUge0BsaW5rIG1vZHVsZTptb2RlbC9SZXN0V29ya3NwYWNlQ29sbGVjdGlvbn1cbiAgICovXG5cbiAgV29ya3NwYWNlU2VydmljZUFwaS5wcm90b3R5cGUuc2VhcmNoV29ya3NwYWNlcyA9IGZ1bmN0aW9uIHNlYXJjaFdvcmtzcGFjZXMoYm9keSkge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFdvcmtzcGFjZXNXaXRoSHR0cEluZm8oYm9keSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2VfYW5kX2RhdGEpIHtcbiAgICAgIHJldHVybiByZXNwb25zZV9hbmRfZGF0YS5kYXRhO1xuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiBXb3Jrc3BhY2VTZXJ2aWNlQXBpO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gV29ya3NwYWNlU2VydmljZUFwaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlPYmplY3QgPSByZXF1aXJlKCcuL21vZGVsL0FjdGl2aXR5T2JqZWN0Jyk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eU9iamVjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5T2JqZWN0KTtcblxudmFyIF9tb2RlbEFjdGl2aXR5T2JqZWN0VHlwZSA9IHJlcXVpcmUoJy4vbW9kZWwvQWN0aXZpdHlPYmplY3RUeXBlJyk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eU9iamVjdFR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBY3Rpdml0eU9iamVjdFR5cGUpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlPd25lclR5cGUgPSByZXF1aXJlKCcuL21vZGVsL0FjdGl2aXR5T3duZXJUeXBlJyk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eU93bmVyVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5T3duZXJUeXBlKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0FjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0FjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3RyZWFtQ29udGV4dCA9IHJlcXVpcmUoJy4vbW9kZWwvQWN0aXZpdHlTdHJlYW1Db250ZXh0Jyk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eVN0cmVhbUNvbnRleHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBY3Rpdml0eVN0cmVhbUNvbnRleHQpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdWJzY3JpcHRpb24gPSByZXF1aXJlKCcuL21vZGVsL0FjdGl2aXR5U3Vic2NyaXB0aW9uJyk7XG5cbnZhciBfbW9kZWxBY3Rpdml0eVN1YnNjcmlwdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEFjdGl2aXR5U3Vic2NyaXB0aW9uKTtcblxudmFyIF9tb2RlbEFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3ID0gcmVxdWlyZSgnLi9tb2RlbC9BY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldycpO1xuXG52YXIgX21vZGVsQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxBY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldyk7XG5cbnZhciBfbW9kZWxDdGxQZWVyID0gcmVxdWlyZSgnLi9tb2RlbC9DdGxQZWVyJyk7XG5cbnZhciBfbW9kZWxDdGxQZWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQ3RsUGVlcik7XG5cbnZhciBfbW9kZWxDdGxTZXJ2aWNlID0gcmVxdWlyZSgnLi9tb2RlbC9DdGxTZXJ2aWNlJyk7XG5cbnZhciBfbW9kZWxDdGxTZXJ2aWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQ3RsU2VydmljZSk7XG5cbnZhciBfbW9kZWxDdGxTZXJ2aWNlQ29tbWFuZCA9IHJlcXVpcmUoJy4vbW9kZWwvQ3RsU2VydmljZUNvbW1hbmQnKTtcblxudmFyIF9tb2RlbEN0bFNlcnZpY2VDb21tYW5kMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsQ3RsU2VydmljZUNvbW1hbmQpO1xuXG52YXIgX21vZGVsQ3RsU2VydmljZVN0YXR1cyA9IHJlcXVpcmUoJy4vbW9kZWwvQ3RsU2VydmljZVN0YXR1cycpO1xuXG52YXIgX21vZGVsQ3RsU2VydmljZVN0YXR1czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEN0bFNlcnZpY2VTdGF0dXMpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCcpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZScpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdCk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCcpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3QpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkV4cG9ydCA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkV4cG9ydCcpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkV4cG9ydDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25FeHBvcnQpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkltcG9ydCA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbkltcG9ydCcpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbkltcG9ydDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25JbXBvcnQpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbktleSA9IHJlcXVpcmUoJy4vbW9kZWwvRW5jcnlwdGlvbktleScpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbktleTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25LZXkpO1xuXG52YXIgX21vZGVsRW5jcnlwdGlvbktleUluZm8gPSByZXF1aXJlKCcuL21vZGVsL0VuY3J5cHRpb25LZXlJbmZvJyk7XG5cbnZhciBfbW9kZWxFbmNyeXB0aW9uS2V5SW5mbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEVuY3J5cHRpb25LZXlJbmZvKTtcblxudmFyIF9tb2RlbElkbUFDTCA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtQUNMJyk7XG5cbnZhciBfbW9kZWxJZG1BQ0wyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1BQ0wpO1xuXG52YXIgX21vZGVsSWRtQUNMQWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1BQ0xBY3Rpb24nKTtcblxudmFyIF9tb2RlbElkbUFDTEFjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbUFDTEFjdGlvbik7XG5cbnZhciBfbW9kZWxJZG1BQ0xTaW5nbGVRdWVyeSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtQUNMU2luZ2xlUXVlcnknKTtcblxudmFyIF9tb2RlbElkbUFDTFNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtQUNMU2luZ2xlUXVlcnkpO1xuXG52YXIgX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsSWRtTm9kZVR5cGUgPSByZXF1aXJlKCcuL21vZGVsL0lkbU5vZGVUeXBlJyk7XG5cbnZhciBfbW9kZWxJZG1Ob2RlVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbU5vZGVUeXBlKTtcblxudmFyIF9tb2RlbElkbVBvbGljeSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtUG9saWN5Jyk7XG5cbnZhciBfbW9kZWxJZG1Qb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Qb2xpY3kpO1xuXG52YXIgX21vZGVsSWRtUG9saWN5Q29uZGl0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Qb2xpY3lDb25kaXRpb24nKTtcblxudmFyIF9tb2RlbElkbVBvbGljeUNvbmRpdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVBvbGljeUNvbmRpdGlvbik7XG5cbnZhciBfbW9kZWxJZG1Qb2xpY3lFZmZlY3QgPSByZXF1aXJlKCcuL21vZGVsL0lkbVBvbGljeUVmZmVjdCcpO1xuXG52YXIgX21vZGVsSWRtUG9saWN5RWZmZWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtUG9saWN5RWZmZWN0KTtcblxudmFyIF9tb2RlbElkbVBvbGljeUdyb3VwID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Qb2xpY3lHcm91cCcpO1xuXG52YXIgX21vZGVsSWRtUG9saWN5R3JvdXAyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Qb2xpY3lHcm91cCk7XG5cbnZhciBfbW9kZWxJZG1Qb2xpY3lSZXNvdXJjZUdyb3VwID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwJyk7XG5cbnZhciBfbW9kZWxJZG1Qb2xpY3lSZXNvdXJjZUdyb3VwMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtUG9saWN5UmVzb3VyY2VHcm91cCk7XG5cbnZhciBfbW9kZWxJZG1Sb2xlID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Sb2xlJyk7XG5cbnZhciBfbW9kZWxJZG1Sb2xlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtUm9sZSk7XG5cbnZhciBfbW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkgPSByZXF1aXJlKCcuL21vZGVsL0lkbVJvbGVTaW5nbGVRdWVyeScpO1xuXG52YXIgX21vZGVsSWRtUm9sZVNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtUm9sZVNpbmdsZVF1ZXJ5KTtcblxudmFyIF9tb2RlbElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtU2VhcmNoVXNlck1ldGFSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0KTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbElkbVVzZXIgPSByZXF1aXJlKCcuL21vZGVsL0lkbVVzZXInKTtcblxudmFyIF9tb2RlbElkbVVzZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Vc2VyKTtcblxudmFyIF9tb2RlbElkbVVzZXJNZXRhID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Vc2VyTWV0YScpO1xuXG52YXIgX21vZGVsSWRtVXNlck1ldGEyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Vc2VyTWV0YSk7XG5cbnZhciBfbW9kZWxJZG1Vc2VyTWV0YU5hbWVzcGFjZSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtVXNlck1ldGFOYW1lc3BhY2UnKTtcblxudmFyIF9tb2RlbElkbVVzZXJNZXRhTmFtZXNwYWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtVXNlck1ldGFOYW1lc3BhY2UpO1xuXG52YXIgX21vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5ID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Vc2VyU2luZ2xlUXVlcnknKTtcblxudmFyIF9tb2RlbElkbVVzZXJTaW5nbGVRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbElkbVVzZXJTaW5nbGVRdWVyeSk7XG5cbnZhciBfbW9kZWxJZG1Xb3Jrc3BhY2UgPSByZXF1aXJlKCcuL21vZGVsL0lkbVdvcmtzcGFjZScpO1xuXG52YXIgX21vZGVsSWRtV29ya3NwYWNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtV29ya3NwYWNlKTtcblxudmFyIF9tb2RlbElkbVdvcmtzcGFjZVNjb3BlID0gcmVxdWlyZSgnLi9tb2RlbC9JZG1Xb3Jrc3BhY2VTY29wZScpO1xuXG52YXIgX21vZGVsSWRtV29ya3NwYWNlU2NvcGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJZG1Xb3Jrc3BhY2VTY29wZSk7XG5cbnZhciBfbW9kZWxJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeSA9IHJlcXVpcmUoJy4vbW9kZWwvSWRtV29ya3NwYWNlU2luZ2xlUXVlcnknKTtcblxudmFyIF9tb2RlbElkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkpO1xuXG52YXIgX21vZGVsSW5zdGFsbENoZWNrUmVzdWx0ID0gcmVxdWlyZSgnLi9tb2RlbC9JbnN0YWxsQ2hlY2tSZXN1bHQnKTtcblxudmFyIF9tb2RlbEluc3RhbGxDaGVja1Jlc3VsdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEluc3RhbGxDaGVja1Jlc3VsdCk7XG5cbnZhciBfbW9kZWxJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9JbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxJbnN0YWxsSW5zdGFsbENvbmZpZyA9IHJlcXVpcmUoJy4vbW9kZWwvSW5zdGFsbEluc3RhbGxDb25maWcnKTtcblxudmFyIF9tb2RlbEluc3RhbGxJbnN0YWxsQ29uZmlnMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbEluc3RhbGxDb25maWcpO1xuXG52YXIgX21vZGVsSW5zdGFsbEluc3RhbGxSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9JbnN0YWxsSW5zdGFsbFJlcXVlc3QnKTtcblxudmFyIF9tb2RlbEluc3RhbGxJbnN0YWxsUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEluc3RhbGxJbnN0YWxsUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxJbnN0YWxsSW5zdGFsbFJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxJbnN0YWxsSW5zdGFsbFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbEluc3RhbGxSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QpO1xuXG52YXIgX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxKb2JzQWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzQWN0aW9uJyk7XG5cbnZhciBfbW9kZWxKb2JzQWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0FjdGlvbik7XG5cbnZhciBfbW9kZWxKb2JzQWN0aW9uTG9nID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzQWN0aW9uTG9nJyk7XG5cbnZhciBfbW9kZWxKb2JzQWN0aW9uTG9nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0FjdGlvbkxvZyk7XG5cbnZhciBfbW9kZWxKb2JzQWN0aW9uTWVzc2FnZSA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic0FjdGlvbk1lc3NhZ2UnKTtcblxudmFyIF9tb2RlbEpvYnNBY3Rpb25NZXNzYWdlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0FjdGlvbk1lc3NhZ2UpO1xuXG52YXIgX21vZGVsSm9ic0FjdGlvbk91dHB1dCA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic0FjdGlvbk91dHB1dCcpO1xuXG52YXIgX21vZGVsSm9ic0FjdGlvbk91dHB1dDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNBY3Rpb25PdXRwdXQpO1xuXG52YXIgX21vZGVsSm9ic0NvbW1hbmQgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNDb21tYW5kJyk7XG5cbnZhciBfbW9kZWxKb2JzQ29tbWFuZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNDb21tYW5kKTtcblxudmFyIF9tb2RlbEpvYnNDdHJsQ29tbWFuZCA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic0N0cmxDb21tYW5kJyk7XG5cbnZhciBfbW9kZWxKb2JzQ3RybENvbW1hbmQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzQ3RybENvbW1hbmQpO1xuXG52YXIgX21vZGVsSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNDdHJsQ29tbWFuZFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxKb2JzQ3RybENvbW1hbmRSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbEpvYnNEZWxldGVUYXNrc1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNEZWxldGVUYXNrc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbEpvYnNEZWxldGVUYXNrc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzRGVsZXRlVGFza3NSZXF1ZXN0KTtcblxudmFyIF9tb2RlbEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXNwb25zZScpO1xuXG52YXIgX21vZGVsSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzRGVsZXRlVGFza3NSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxKb2JzSm9iID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzSm9iJyk7XG5cbnZhciBfbW9kZWxKb2JzSm9iMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0pvYik7XG5cbnZhciBfbW9kZWxKb2JzTGlzdEpvYnNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzTGlzdEpvYnNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxKb2JzTGlzdEpvYnNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic0xpc3RKb2JzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxKb2JzTm9kZXNTZWxlY3RvciA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic05vZGVzU2VsZWN0b3InKTtcblxudmFyIF9tb2RlbEpvYnNOb2Rlc1NlbGVjdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic05vZGVzU2VsZWN0b3IpO1xuXG52YXIgX21vZGVsSm9ic1NjaGVkdWxlID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzU2NoZWR1bGUnKTtcblxudmFyIF9tb2RlbEpvYnNTY2hlZHVsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNTY2hlZHVsZSk7XG5cbnZhciBfbW9kZWxKb2JzU291cmNlRmlsdGVyID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzU291cmNlRmlsdGVyJyk7XG5cbnZhciBfbW9kZWxKb2JzU291cmNlRmlsdGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic1NvdXJjZUZpbHRlcik7XG5cbnZhciBfbW9kZWxKb2JzVGFzayA9IHJlcXVpcmUoJy4vbW9kZWwvSm9ic1Rhc2snKTtcblxudmFyIF9tb2RlbEpvYnNUYXNrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsSm9ic1Rhc2spO1xuXG52YXIgX21vZGVsSm9ic1Rhc2tTdGF0dXMgPSByZXF1aXJlKCcuL21vZGVsL0pvYnNUYXNrU3RhdHVzJyk7XG5cbnZhciBfbW9kZWxKb2JzVGFza1N0YXR1czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbEpvYnNUYXNrU3RhdHVzKTtcblxudmFyIF9tb2RlbEpvYnNVc2Vyc1NlbGVjdG9yID0gcmVxdWlyZSgnLi9tb2RlbC9Kb2JzVXNlcnNTZWxlY3RvcicpO1xuXG52YXIgX21vZGVsSm9ic1VzZXJzU2VsZWN0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxKb2JzVXNlcnNTZWxlY3Rvcik7XG5cbnZhciBfbW9kZWxMaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCA9IHJlcXVpcmUoJy4vbW9kZWwvTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQnKTtcblxudmFyIF9tb2RlbExpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQpO1xuXG52YXIgX21vZGVsTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlID0gcmVxdWlyZSgnLi9tb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUnKTtcblxudmFyIF9tb2RlbExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZSk7XG5cbnZhciBfbW9kZWxMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZSA9IHJlcXVpcmUoJy4vbW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UnKTtcblxudmFyIF9tb2RlbExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UpO1xuXG52YXIgX21vZGVsTG9nTGlzdExvZ1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL0xvZ0xpc3RMb2dSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxMb2dMaXN0TG9nUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbExvZ0xpc3RMb2dSZXF1ZXN0KTtcblxudmFyIF9tb2RlbExvZ0xvZ01lc3NhZ2UgPSByZXF1aXJlKCcuL21vZGVsL0xvZ0xvZ01lc3NhZ2UnKTtcblxudmFyIF9tb2RlbExvZ0xvZ01lc3NhZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxMb2dMb2dNZXNzYWdlKTtcblxudmFyIF9tb2RlbE1haWxlck1haWwgPSByZXF1aXJlKCcuL21vZGVsL01haWxlck1haWwnKTtcblxudmFyIF9tb2RlbE1haWxlck1haWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxNYWlsZXJNYWlsKTtcblxudmFyIF9tb2RlbE1haWxlclNlbmRNYWlsUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL01haWxlclNlbmRNYWlsUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbE1haWxlclNlbmRNYWlsUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxNYWlsZXJTZW5kTWFpbFJlc3BvbnNlKTtcblxudmFyIF9tb2RlbE1haWxlclVzZXIgPSByZXF1aXJlKCcuL21vZGVsL01haWxlclVzZXInKTtcblxudmFyIF9tb2RlbE1haWxlclVzZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxNYWlsZXJVc2VyKTtcblxudmFyIF9tb2RlbE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZSA9IHJlcXVpcmUoJy4vbW9kZWwvTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlJyk7XG5cbnZhciBfbW9kZWxOb2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxOb2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUpO1xuXG52YXIgX21vZGVsT2JqZWN0RGF0YVNvdXJjZSA9IHJlcXVpcmUoJy4vbW9kZWwvT2JqZWN0RGF0YVNvdXJjZScpO1xuXG52YXIgX21vZGVsT2JqZWN0RGF0YVNvdXJjZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE9iamVjdERhdGFTb3VyY2UpO1xuXG52YXIgX21vZGVsT2JqZWN0RW5jcnlwdGlvbk1vZGUgPSByZXF1aXJlKCcuL21vZGVsL09iamVjdEVuY3J5cHRpb25Nb2RlJyk7XG5cbnZhciBfbW9kZWxPYmplY3RFbmNyeXB0aW9uTW9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbE9iamVjdEVuY3J5cHRpb25Nb2RlKTtcblxudmFyIF9tb2RlbE9iamVjdFN0b3JhZ2VUeXBlID0gcmVxdWlyZSgnLi9tb2RlbC9PYmplY3RTdG9yYWdlVHlwZScpO1xuXG52YXIgX21vZGVsT2JqZWN0U3RvcmFnZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxPYmplY3RTdG9yYWdlVHlwZSk7XG5cbnZhciBfbW9kZWxQYWNrYWdlUGFja2FnZVN0YXR1cyA9IHJlcXVpcmUoJy4vbW9kZWwvUGFja2FnZVBhY2thZ2VTdGF0dXMnKTtcblxudmFyIF9tb2RlbFBhY2thZ2VQYWNrYWdlU3RhdHVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUGFja2FnZVBhY2thZ2VTdGF0dXMpO1xuXG52YXIgX21vZGVsUHJvdG9idWZBbnkgPSByZXF1aXJlKCcuL21vZGVsL1Byb3RvYnVmQW55Jyk7XG5cbnZhciBfbW9kZWxQcm90b2J1ZkFueTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFByb3RvYnVmQW55KTtcblxudmFyIF9tb2RlbFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUgPSByZXF1aXJlKCcuL21vZGVsL1Jlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUnKTtcblxudmFyIF9tb2RlbFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlKTtcblxudmFyIF9tb2RlbFJlc3RBQ0xDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0QUNMQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdEFDTENvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0QUNMQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0QmFja2dyb3VuZEpvYlJlc3VsdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEJhY2tncm91bmRKb2JSZXN1bHQnKTtcblxudmFyIF9tb2RlbFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEJhY2tncm91bmRKb2JSZXN1bHQpO1xuXG52YXIgX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0QnVsa01ldGFSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RCdWxrTWV0YVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RDZWxsID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Q2VsbCcpO1xuXG52YXIgX21vZGVsUmVzdENlbGwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q2VsbCk7XG5cbnZhciBfbW9kZWxSZXN0Q2VsbEFjbCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdENlbGxBY2wnKTtcblxudmFyIF9tb2RlbFJlc3RDZWxsQWNsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENlbGxBY2wpO1xuXG52YXIgX21vZGVsUmVzdENoYW5nZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RDaGFuZ2VDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0Q2hhbmdlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDaGFuZ2VDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RDaGFuZ2VSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Q2hhbmdlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdENoYW5nZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q2hhbmdlUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0Q29uZmlndXJhdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdENvbmZpZ3VyYXRpb24nKTtcblxudmFyIF9tb2RlbFJlc3RDb25maWd1cmF0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdENvbmZpZ3VyYXRpb24pO1xuXG52YXIgX21vZGVsUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDb250cm9sU2VydmljZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZU5vZGVzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdENyZWF0ZU5vZGVzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZU5vZGVzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3REYXRhU291cmNlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REYXRhU291cmNlQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZUNlbGxSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RGVsZXRlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REZWxldGVSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdERlbGV0ZVVzZXJNZXRhVGFnc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RGlzY292ZXJ5UmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3REaXNjb3ZlcnlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3REaXNjb3ZlcnlSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RXJyb3IgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RFcnJvcicpO1xuXG52YXIgX21vZGVsUmVzdEVycm9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEVycm9yKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udEJpbmFyeVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250QmluYXJ5UmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRCaW5hcnlSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udFBsdWdpbnNSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U2Vzc2lvblJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFN0YXRlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RGcm9udFN0YXRlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RGcm9udFN0YXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0R2V0QnVsa01ldGFSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RIZWFkTm9kZVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0SGVhZE5vZGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdEhlYWROb2RlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0SGVhZE5vZGVSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdE1ldGFDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0TWV0YUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RNZXRhQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RNZXRhQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RNZXRhZGF0YSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdE1ldGFkYXRhJyk7XG5cbnZhciBfbW9kZWxSZXN0TWV0YWRhdGEyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0TWV0YWRhdGEpO1xuXG52YXIgX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdE5vZGVzQ29sbGVjdGlvbicpO1xuXG52YXIgX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3ROb2Rlc0NvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdE9wZW5BcGlSZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdE9wZW5BcGlSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdE9wZW5BcGlSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RPcGVuQXBpUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFBhZ2luYXRpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RQYWdpbmF0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0UGFnaW5hdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RQYWdpbmF0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RQdXRDZWxsUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFB1dENlbGxSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0UHV0Q2VsbFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UHV0Q2VsbFJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0UmVsYXRpb25SZXNwb25zZSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFJlbGF0aW9uUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RSZWxhdGlvblJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlbGF0aW9uUmVzcG9uc2UpO1xuXG52YXIgX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeScpO1xuXG52YXIgX21vZGVsUmVzdFJlc291cmNlUG9saWN5UXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSk7XG5cbnZhciBfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0UmV2b2tlUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFJldm9rZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RSZXZva2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJldm9rZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFJldm9rZVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0UmV2b2tlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFJlc3RSZXZva2VSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RSZXZva2VSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0Um9sZXNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0Um9sZXNDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0Um9sZXNDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFJvbGVzQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0U2VhcmNoQUNMUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNlYXJjaEFDTFJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hBQ0xSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaEFDTFJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFJlc3VsdHMgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTZWFyY2hSZXN1bHRzJyk7XG5cbnZhciBfbW9kZWxSZXN0U2VhcmNoUmVzdWx0czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTZWFyY2hSZXN1bHRzKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0U2VhcmNoUm9sZVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2VhcmNoUm9sZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2VhcmNoVXNlclJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hVc2VyUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTZWFyY2hVc2VyUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFNlcnZpY2VDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2VydmljZUNvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RTZXJ2aWNlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTZXJ2aWNlQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0U2V0dGluZ3NFbnRyeSA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNldHRpbmdzRW50cnknKTtcblxudmFyIF9tb2RlbFJlc3RTZXR0aW5nc0VudHJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNldHRpbmdzRW50cnkpO1xuXG52YXIgX21vZGVsUmVzdFNldHRpbmdzRW50cnlNZXRhID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2V0dGluZ3NFbnRyeU1ldGEnKTtcblxudmFyIF9tb2RlbFJlc3RTZXR0aW5nc0VudHJ5TWV0YTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTZXR0aW5nc0VudHJ5TWV0YSk7XG5cbnZhciBfbW9kZWxSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTZXR0aW5nc01lbnVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RTZXR0aW5nc1NlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTZXR0aW5nc1NlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RTZXR0aW5nc1NlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2V0dGluZ3NTZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RTaGFyZUxpbmsgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RTaGFyZUxpbmsnKTtcblxudmFyIF9tb2RlbFJlc3RTaGFyZUxpbmsyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2hhcmVMaW5rKTtcblxudmFyIF9tb2RlbFJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U2hhcmVMaW5rQWNjZXNzVHlwZScpO1xuXG52YXIgX21vZGVsUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0U2hhcmVMaW5rQWNjZXNzVHlwZSk7XG5cbnZhciBfbW9kZWxSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlciA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFNoYXJlTGlua1RhcmdldFVzZXInKTtcblxudmFyIF9tb2RlbFJlc3RTaGFyZUxpbmtUYXJnZXRVc2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFNoYXJlTGlua1RhcmdldFVzZXIpO1xuXG52YXIgX21vZGVsUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0U3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0VGVtcGxhdGUgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RUZW1wbGF0ZScpO1xuXG52YXIgX21vZGVsUmVzdFRlbXBsYXRlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFRlbXBsYXRlKTtcblxudmFyIF9tb2RlbFJlc3RUZW1wbGF0ZU5vZGUgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RUZW1wbGF0ZU5vZGUnKTtcblxudmFyIF9tb2RlbFJlc3RUZW1wbGF0ZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VGVtcGxhdGVOb2RlKTtcblxudmFyIF9tb2RlbFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0VXNlckpvYlJlcXVlc3QnKTtcblxudmFyIF9tb2RlbFJlc3RVc2VySm9iUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RVc2VySm9iUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYlJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0VXNlckpvYlJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYlJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJKb2JSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYnNDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0VXNlckpvYnNDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlckpvYnNDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJKb2JzQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0VXNlck1ldGFDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0VXNlck1ldGFDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlck1ldGFDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJNZXRhQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbik7XG5cbnZhciBfbW9kZWxSZXN0VXNlclN0YXRlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RVc2VyU3RhdGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsUmVzdFVzZXJTdGF0ZVJlc3BvbnNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsUmVzdFVzZXJTdGF0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFJlc3RVc2Vyc0NvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RVc2Vyc0NvbGxlY3Rpb24nKTtcblxudmFyIF9tb2RlbFJlc3RVc2Vyc0NvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VXNlcnNDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbiA9IHJlcXVpcmUoJy4vbW9kZWwvUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24pO1xuXG52YXIgX21vZGVsUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24gPSByZXF1aXJlKCcuL21vZGVsL1Jlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uJyk7XG5cbnZhciBfbW9kZWxSZXN0V29ya3NwYWNlQ29sbGVjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uKTtcblxudmFyIF9tb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlID0gcmVxdWlyZSgnLi9tb2RlbC9TZXJ2aWNlT3BlcmF0aW9uVHlwZScpO1xuXG52YXIgX21vZGVsU2VydmljZU9wZXJhdGlvblR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxTZXJ2aWNlT3BlcmF0aW9uVHlwZSk7XG5cbnZhciBfbW9kZWxTZXJ2aWNlUXVlcnkgPSByZXF1aXJlKCcuL21vZGVsL1NlcnZpY2VRdWVyeScpO1xuXG52YXIgX21vZGVsU2VydmljZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsU2VydmljZVF1ZXJ5KTtcblxudmFyIF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeSA9IHJlcXVpcmUoJy4vbW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5Jyk7XG5cbnZhciBfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3kpO1xuXG52YXIgX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uID0gcmVxdWlyZSgnLi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24nKTtcblxudmFyIF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbik7XG5cbnZhciBfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QgPSByZXF1aXJlKCcuL21vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdCcpO1xuXG52YXIgX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0KTtcblxudmFyIF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gcmVxdWlyZSgnLi9tb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeScpO1xuXG52YXIgX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeSk7XG5cbnZhciBfbW9kZWxUcmVlQ2hhbmdlTG9nID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlQ2hhbmdlTG9nJyk7XG5cbnZhciBfbW9kZWxUcmVlQ2hhbmdlTG9nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZUNoYW5nZUxvZyk7XG5cbnZhciBfbW9kZWxUcmVlR2VvUG9pbnQgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVHZW9Qb2ludCcpO1xuXG52YXIgX21vZGVsVHJlZUdlb1BvaW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZUdlb1BvaW50KTtcblxudmFyIF9tb2RlbFRyZWVHZW9RdWVyeSA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZUdlb1F1ZXJ5Jyk7XG5cbnZhciBfbW9kZWxUcmVlR2VvUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlR2VvUXVlcnkpO1xuXG52YXIgX21vZGVsVHJlZUxpc3ROb2Rlc1JlcXVlc3QgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVMaXN0Tm9kZXNSZXF1ZXN0Jyk7XG5cbnZhciBfbW9kZWxUcmVlTGlzdE5vZGVzUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVMaXN0Tm9kZXNSZXF1ZXN0KTtcblxudmFyIF9tb2RlbFRyZWVOb2RlID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlTm9kZScpO1xuXG52YXIgX21vZGVsVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlTm9kZSk7XG5cbnZhciBfbW9kZWxUcmVlTm9kZUNoYW5nZUV2ZW50ID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlTm9kZUNoYW5nZUV2ZW50Jyk7XG5cbnZhciBfbW9kZWxUcmVlTm9kZUNoYW5nZUV2ZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZU5vZGVDaGFuZ2VFdmVudCk7XG5cbnZhciBfbW9kZWxUcmVlTm9kZVR5cGUgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVOb2RlVHlwZScpO1xuXG52YXIgX21vZGVsVHJlZU5vZGVUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZU5vZGVUeXBlKTtcblxudmFyIF9tb2RlbFRyZWVRdWVyeSA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZVF1ZXJ5Jyk7XG5cbnZhciBfbW9kZWxUcmVlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlUXVlcnkpO1xuXG52YXIgX21vZGVsVHJlZVJlYWROb2RlUmVxdWVzdCA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZVJlYWROb2RlUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsVHJlZVJlYWROb2RlUmVxdWVzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVSZWFkTm9kZVJlcXVlc3QpO1xuXG52YXIgX21vZGVsVHJlZVJlYWROb2RlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVSZWFkTm9kZVJlc3BvbnNlJyk7XG5cbnZhciBfbW9kZWxUcmVlUmVhZE5vZGVSZXNwb25zZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVSZWFkTm9kZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFRyZWVTZWFyY2hSZXF1ZXN0ID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlU2VhcmNoUmVxdWVzdCcpO1xuXG52YXIgX21vZGVsVHJlZVNlYXJjaFJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlU2VhcmNoUmVxdWVzdCk7XG5cbnZhciBfbW9kZWxUcmVlU3luY0NoYW5nZSA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZVN5bmNDaGFuZ2UnKTtcblxudmFyIF9tb2RlbFRyZWVTeW5jQ2hhbmdlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZVN5bmNDaGFuZ2UpO1xuXG52YXIgX21vZGVsVHJlZVN5bmNDaGFuZ2VOb2RlID0gcmVxdWlyZSgnLi9tb2RlbC9UcmVlU3luY0NoYW5nZU5vZGUnKTtcblxudmFyIF9tb2RlbFRyZWVTeW5jQ2hhbmdlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVTeW5jQ2hhbmdlTm9kZSk7XG5cbnZhciBfbW9kZWxUcmVlU3luY0NoYW5nZVR5cGUgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVTeW5jQ2hhbmdlVHlwZScpO1xuXG52YXIgX21vZGVsVHJlZVN5bmNDaGFuZ2VUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVHJlZVN5bmNDaGFuZ2VUeXBlKTtcblxudmFyIF9tb2RlbFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCA9IHJlcXVpcmUoJy4vbW9kZWwvVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kJyk7XG5cbnZhciBfbW9kZWxUcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QpO1xuXG52YXIgX21vZGVsVHJlZVZlcnNpb25pbmdQb2xpY3kgPSByZXF1aXJlKCcuL21vZGVsL1RyZWVWZXJzaW9uaW5nUG9saWN5Jyk7XG5cbnZhciBfbW9kZWxUcmVlVmVyc2lvbmluZ1BvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tb2RlbFRyZWVWZXJzaW9uaW5nUG9saWN5KTtcblxudmFyIF9tb2RlbFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGggPSByZXF1aXJlKCcuL21vZGVsL1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgnKTtcblxudmFyIF9tb2RlbFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxUcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoKTtcblxudmFyIF9tb2RlbFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UgPSByZXF1aXJlKCcuL21vZGVsL1VwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UnKTtcblxudmFyIF9tb2RlbFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlKTtcblxudmFyIF9tb2RlbFVwZGF0ZVBhY2thZ2UgPSByZXF1aXJlKCcuL21vZGVsL1VwZGF0ZVBhY2thZ2UnKTtcblxudmFyIF9tb2RlbFVwZGF0ZVBhY2thZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxVcGRhdGVQYWNrYWdlKTtcblxudmFyIF9tb2RlbFVwZGF0ZVVwZGF0ZVJlc3BvbnNlID0gcmVxdWlyZSgnLi9tb2RlbC9VcGRhdGVVcGRhdGVSZXNwb25zZScpO1xuXG52YXIgX21vZGVsVXBkYXRlVXBkYXRlUmVzcG9uc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxVcGRhdGVVcGRhdGVSZXNwb25zZSk7XG5cbnZhciBfbW9kZWxVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AgPSByZXF1aXJlKCcuL21vZGVsL1VwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcCcpO1xuXG52YXIgX21vZGVsVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21vZGVsVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wKTtcblxudmFyIF9tb2RlbFVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3AgPSByZXF1aXJlKCcuL21vZGVsL1VwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3AnKTtcblxudmFyIF9tb2RlbFVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3AyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxVcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wKTtcblxudmFyIF9hcGlBQ0xTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvQUNMU2VydmljZUFwaScpO1xuXG52YXIgX2FwaUFDTFNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpQUNMU2VydmljZUFwaSk7XG5cbnZhciBfYXBpQWN0aXZpdHlTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvQWN0aXZpdHlTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpQWN0aXZpdHlTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaUFjdGl2aXR5U2VydmljZUFwaSk7XG5cbnZhciBfYXBpQWRtaW5UcmVlU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL0FkbWluVHJlZVNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlBZG1pblRyZWVTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaUFkbWluVHJlZVNlcnZpY2VBcGkpO1xuXG52YXIgX2FwaUNoYW5nZVNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9DaGFuZ2VTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpQ2hhbmdlU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlDaGFuZ2VTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlDb25maWdTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvQ29uZmlnU2VydmljZUFwaScpO1xuXG52YXIgX2FwaUNvbmZpZ1NlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpQ29uZmlnU2VydmljZUFwaSk7XG5cbnZhciBfYXBpRnJvbnRlbmRTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvRnJvbnRlbmRTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpRnJvbnRlbmRTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaUZyb250ZW5kU2VydmljZUFwaSk7XG5cbnZhciBfYXBpR3JhcGhTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvR3JhcGhTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpR3JhcGhTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaUdyYXBoU2VydmljZUFwaSk7XG5cbnZhciBfYXBpSW5zdGFsbFNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9JbnN0YWxsU2VydmljZUFwaScpO1xuXG52YXIgX2FwaUluc3RhbGxTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaUluc3RhbGxTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlKb2JzU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL0pvYnNTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpSm9ic1NlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpSm9ic1NlcnZpY2VBcGkpO1xuXG52YXIgX2FwaUxvZ1NlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9Mb2dTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpTG9nU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlMb2dTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlNYWlsZXJTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvTWFpbGVyU2VydmljZUFwaScpO1xuXG52YXIgX2FwaU1haWxlclNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpTWFpbGVyU2VydmljZUFwaSk7XG5cbnZhciBfYXBpTWV0YVNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9NZXRhU2VydmljZUFwaScpO1xuXG52YXIgX2FwaU1ldGFTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaU1ldGFTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlQb2xpY3lTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvUG9saWN5U2VydmljZUFwaScpO1xuXG52YXIgX2FwaVBvbGljeVNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpUG9saWN5U2VydmljZUFwaSk7XG5cbnZhciBfYXBpUm9sZVNlcnZpY2VBcGkgPSByZXF1aXJlKCcuL2FwaS9Sb2xlU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVJvbGVTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVJvbGVTZXJ2aWNlQXBpKTtcblxudmFyIF9hcGlTZWFyY2hTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvU2VhcmNoU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVNlYXJjaFNlcnZpY2VBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXBpU2VhcmNoU2VydmljZUFwaSk7XG5cbnZhciBfYXBpU2hhcmVTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvU2hhcmVTZXJ2aWNlQXBpJyk7XG5cbnZhciBfYXBpU2hhcmVTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVNoYXJlU2VydmljZUFwaSk7XG5cbnZhciBfYXBpVGVtcGxhdGVzU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL1RlbXBsYXRlc1NlcnZpY2VBcGknKTtcblxudmFyIF9hcGlUZW1wbGF0ZXNTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVRlbXBsYXRlc1NlcnZpY2VBcGkpO1xuXG52YXIgX2FwaVRva2VuU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL1Rva2VuU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVRva2VuU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlUb2tlblNlcnZpY2VBcGkpO1xuXG52YXIgX2FwaVRyZWVTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvVHJlZVNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlUcmVlU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlUcmVlU2VydmljZUFwaSk7XG5cbnZhciBfYXBpVXBkYXRlU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL1VwZGF0ZVNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlVcGRhdGVTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVVwZGF0ZVNlcnZpY2VBcGkpO1xuXG52YXIgX2FwaVVzZXJNZXRhU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL1VzZXJNZXRhU2VydmljZUFwaScpO1xuXG52YXIgX2FwaVVzZXJNZXRhU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlVc2VyTWV0YVNlcnZpY2VBcGkpO1xuXG52YXIgX2FwaVVzZXJTZXJ2aWNlQXBpID0gcmVxdWlyZSgnLi9hcGkvVXNlclNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlVc2VyU2VydmljZUFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlVc2VyU2VydmljZUFwaSk7XG5cbnZhciBfYXBpV29ya3NwYWNlU2VydmljZUFwaSA9IHJlcXVpcmUoJy4vYXBpL1dvcmtzcGFjZVNlcnZpY2VBcGknKTtcblxudmFyIF9hcGlXb3Jrc3BhY2VTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwaVdvcmtzcGFjZVNlcnZpY2VBcGkpO1xuXG4vKipcbiogRVJST1JfVU5LTk9XTi48YnI+XG4qIFRoZSA8Y29kZT5pbmRleDwvY29kZT4gbW9kdWxlIHByb3ZpZGVzIGFjY2VzcyB0byBjb25zdHJ1Y3RvcnMgZm9yIGFsbCB0aGUgY2xhc3NlcyB3aGljaCBjb21wcmlzZSB0aGUgcHVibGljIEFQSS5cbiogPHA+XG4qIEFuIEFNRCAocmVjb21tZW5kZWQhKSBvciBDb21tb25KUyBhcHBsaWNhdGlvbiB3aWxsIGdlbmVyYWxseSBkbyBzb21ldGhpbmcgZXF1aXZhbGVudCB0byB0aGUgZm9sbG93aW5nOlxuKiA8cHJlPlxuKiB2YXIgUHlkaW9DZWxsc1Jlc3RBcGkgPSByZXF1aXJlKCdpbmRleCcpOyAvLyBTZWUgbm90ZSBiZWxvdyouXG4qIHZhciB4eHhTdmMgPSBuZXcgUHlkaW9DZWxsc1Jlc3RBcGkuWHh4QXBpKCk7IC8vIEFsbG9jYXRlIHRoZSBBUEkgY2xhc3Mgd2UncmUgZ29pbmcgdG8gdXNlLlxuKiB2YXIgeXl5TW9kZWwgPSBuZXcgUHlkaW9DZWxsc1Jlc3RBcGkuWXl5KCk7IC8vIENvbnN0cnVjdCBhIG1vZGVsIGluc3RhbmNlLlxuKiB5eXlNb2RlbC5zb21lUHJvcGVydHkgPSAnc29tZVZhbHVlJztcbiogLi4uXG4qIHZhciB6enogPSB4eHhTdmMuZG9Tb21ldGhpbmcoeXl5TW9kZWwpOyAvLyBJbnZva2UgdGhlIHNlcnZpY2UuXG4qIC4uLlxuKiA8L3ByZT5cbiogPGVtPipOT1RFOiBGb3IgYSB0b3AtbGV2ZWwgQU1EIHNjcmlwdCwgdXNlIHJlcXVpcmUoWydpbmRleCddLCBmdW5jdGlvbigpey4uLn0pXG4qIGFuZCBwdXQgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdpdGhpbiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uPC9lbT5cbiogPC9wPlxuKiA8cD5cbiogQSBub24tQU1EIGJyb3dzZXIgYXBwbGljYXRpb24gKGRpc2NvdXJhZ2VkKSBtaWdodCBkbyBzb21ldGhpbmcgbGlrZSB0aGlzOlxuKiA8cHJlPlxuKiB2YXIgeHh4U3ZjID0gbmV3IFB5ZGlvQ2VsbHNSZXN0QXBpLlh4eEFwaSgpOyAvLyBBbGxvY2F0ZSB0aGUgQVBJIGNsYXNzIHdlJ3JlIGdvaW5nIHRvIHVzZS5cbiogdmFyIHl5eSA9IG5ldyBQeWRpb0NlbGxzUmVzdEFwaS5ZeXkoKTsgLy8gQ29uc3RydWN0IGEgbW9kZWwgaW5zdGFuY2UuXG4qIHl5eU1vZGVsLnNvbWVQcm9wZXJ0eSA9ICdzb21lVmFsdWUnO1xuKiAuLi5cbiogdmFyIHp6eiA9IHh4eFN2Yy5kb1NvbWV0aGluZyh5eXlNb2RlbCk7IC8vIEludm9rZSB0aGUgc2VydmljZS5cbiogLi4uXG4qIDwvcHJlPlxuKiA8L3A+XG4qIEBtb2R1bGUgaW5kZXhcbiogQHZlcnNpb24gMS4wXG4qL1xuZXhwb3J0cy5cbi8qKlxuICogVGhlIEFwaUNsaWVudCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOkFwaUNsaWVudH1cbiAqL1xuQXBpQ2xpZW50ID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEFjdGl2aXR5T2JqZWN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9XG4gKi9cbkFjdGl2aXR5T2JqZWN0ID0gX21vZGVsQWN0aXZpdHlPYmplY3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBBY3Rpdml0eU9iamVjdFR5cGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdFR5cGV9XG4gKi9cbkFjdGl2aXR5T2JqZWN0VHlwZSA9IF9tb2RlbEFjdGl2aXR5T2JqZWN0VHlwZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEFjdGl2aXR5T3duZXJUeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPd25lclR5cGV9XG4gKi9cbkFjdGl2aXR5T3duZXJUeXBlID0gX21vZGVsQWN0aXZpdHlPd25lclR5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdH1cbiAqL1xuQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdCA9IF9tb2RlbEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdH1cbiAqL1xuQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdCA9IF9tb2RlbEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBBY3Rpdml0eVN0cmVhbUNvbnRleHQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9BY3Rpdml0eVN0cmVhbUNvbnRleHR9XG4gKi9cbkFjdGl2aXR5U3RyZWFtQ29udGV4dCA9IF9tb2RlbEFjdGl2aXR5U3RyZWFtQ29udGV4dDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEFjdGl2aXR5U3Vic2NyaXB0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb259XG4gKi9cbkFjdGl2aXR5U3Vic2NyaXB0aW9uID0gX21vZGVsQWN0aXZpdHlTdWJzY3JpcHRpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBBY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3fVxuICovXG5BY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldyA9IF9tb2RlbEFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgQ3RsUGVlciBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0N0bFBlZXJ9XG4gKi9cbkN0bFBlZXIgPSBfbW9kZWxDdGxQZWVyMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgQ3RsU2VydmljZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0N0bFNlcnZpY2V9XG4gKi9cbkN0bFNlcnZpY2UgPSBfbW9kZWxDdGxTZXJ2aWNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgQ3RsU2VydmljZUNvbW1hbmQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9DdGxTZXJ2aWNlQ29tbWFuZH1cbiAqL1xuQ3RsU2VydmljZUNvbW1hbmQgPSBfbW9kZWxDdGxTZXJ2aWNlQ29tbWFuZDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEN0bFNlcnZpY2VTdGF0dXMgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9DdGxTZXJ2aWNlU3RhdHVzfVxuICovXG5DdGxTZXJ2aWNlU3RhdHVzID0gX21vZGVsQ3RsU2VydmljZVN0YXR1czJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0fVxuICovXG5FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0ID0gX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2V9XG4gKi9cbkVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlID0gX21vZGVsRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdH1cbiAqL1xuRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdCA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlfVxuICovXG5FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZSA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3R9XG4gKi9cbkVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZX1cbiAqL1xuRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2UgPSBfbW9kZWxFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0fVxuICovXG5FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0ID0gX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2V9XG4gKi9cbkVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlID0gX21vZGVsRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3R9XG4gKi9cbkVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCA9IF9tb2RlbEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlfVxuICovXG5FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlID0gX21vZGVsRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25FeHBvcnQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uRXhwb3J0fVxuICovXG5FbmNyeXB0aW9uRXhwb3J0ID0gX21vZGVsRW5jcnlwdGlvbkV4cG9ydDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25JbXBvcnQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uSW1wb3J0fVxuICovXG5FbmNyeXB0aW9uSW1wb3J0ID0gX21vZGVsRW5jcnlwdGlvbkltcG9ydDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25LZXkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5fVxuICovXG5FbmNyeXB0aW9uS2V5ID0gX21vZGVsRW5jcnlwdGlvbktleTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEVuY3J5cHRpb25LZXlJbmZvIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbktleUluZm99XG4gKi9cbkVuY3J5cHRpb25LZXlJbmZvID0gX21vZGVsRW5jcnlwdGlvbktleUluZm8yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1BQ0wgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1BQ0x9XG4gKi9cbklkbUFDTCA9IF9tb2RlbElkbUFDTDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbUFDTEFjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbUFDTEFjdGlvbn1cbiAqL1xuSWRtQUNMQWN0aW9uID0gX21vZGVsSWRtQUNMQWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtQUNMU2luZ2xlUXVlcnkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1BQ0xTaW5nbGVRdWVyeX1cbiAqL1xuSWRtQUNMU2luZ2xlUXVlcnkgPSBfbW9kZWxJZG1BQ0xTaW5nbGVRdWVyeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3R9XG4gKi9cbklkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0ID0gX21vZGVsSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2V9XG4gKi9cbklkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSA9IF9tb2RlbElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbU5vZGVUeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtTm9kZVR5cGV9XG4gKi9cbklkbU5vZGVUeXBlID0gX21vZGVsSWRtTm9kZVR5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Qb2xpY3kgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1Qb2xpY3l9XG4gKi9cbklkbVBvbGljeSA9IF9tb2RlbElkbVBvbGljeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVBvbGljeUNvbmRpdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeUNvbmRpdGlvbn1cbiAqL1xuSWRtUG9saWN5Q29uZGl0aW9uID0gX21vZGVsSWRtUG9saWN5Q29uZGl0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtUG9saWN5RWZmZWN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtUG9saWN5RWZmZWN0fVxuICovXG5JZG1Qb2xpY3lFZmZlY3QgPSBfbW9kZWxJZG1Qb2xpY3lFZmZlY3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Qb2xpY3lHcm91cCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeUdyb3VwfVxuICovXG5JZG1Qb2xpY3lHcm91cCA9IF9tb2RlbElkbVBvbGljeUdyb3VwMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtUG9saWN5UmVzb3VyY2VHcm91cCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeVJlc291cmNlR3JvdXB9XG4gKi9cbklkbVBvbGljeVJlc291cmNlR3JvdXAgPSBfbW9kZWxJZG1Qb2xpY3lSZXNvdXJjZUdyb3VwMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtUm9sZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVJvbGV9XG4gKi9cbklkbVJvbGUgPSBfbW9kZWxJZG1Sb2xlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtUm9sZVNpbmdsZVF1ZXJ5IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtUm9sZVNpbmdsZVF1ZXJ5fVxuICovXG5JZG1Sb2xlU2luZ2xlUXVlcnkgPSBfbW9kZWxJZG1Sb2xlU2luZ2xlUXVlcnkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3R9XG4gKi9cbklkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCA9IF9tb2RlbElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdH1cbiAqL1xuSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0ID0gX21vZGVsSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2V9XG4gKi9cbklkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UgPSBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0fVxuICovXG5JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QgPSBfbW9kZWxJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZX1cbiAqL1xuSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZSA9IF9tb2RlbElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Vc2VyIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtVXNlcn1cbiAqL1xuSWRtVXNlciA9IF9tb2RlbElkbVVzZXIyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Vc2VyTWV0YSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhfVxuICovXG5JZG1Vc2VyTWV0YSA9IF9tb2RlbElkbVVzZXJNZXRhMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtVXNlck1ldGFOYW1lc3BhY2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1Vc2VyTWV0YU5hbWVzcGFjZX1cbiAqL1xuSWRtVXNlck1ldGFOYW1lc3BhY2UgPSBfbW9kZWxJZG1Vc2VyTWV0YU5hbWVzcGFjZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIElkbVVzZXJTaW5nbGVRdWVyeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVVzZXJTaW5nbGVRdWVyeX1cbiAqL1xuSWRtVXNlclNpbmdsZVF1ZXJ5ID0gX21vZGVsSWRtVXNlclNpbmdsZVF1ZXJ5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtV29ya3NwYWNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlfVxuICovXG5JZG1Xb3Jrc3BhY2UgPSBfbW9kZWxJZG1Xb3Jrc3BhY2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJZG1Xb3Jrc3BhY2VTY29wZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZVNjb3BlfVxuICovXG5JZG1Xb3Jrc3BhY2VTY29wZSA9IF9tb2RlbElkbVdvcmtzcGFjZVNjb3BlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeX1cbiAqL1xuSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkgPSBfbW9kZWxJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEluc3RhbGxDaGVja1Jlc3VsdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0luc3RhbGxDaGVja1Jlc3VsdH1cbiAqL1xuSW5zdGFsbENoZWNrUmVzdWx0ID0gX21vZGVsSW5zdGFsbENoZWNrUmVzdWx0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSW5zdGFsbEdldEFncmVlbWVudFJlc3BvbnNlfVxuICovXG5JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UgPSBfbW9kZWxJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlfVxuICovXG5JbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSA9IF9tb2RlbEluc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSW5zdGFsbEluc3RhbGxDb25maWcgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbENvbmZpZ31cbiAqL1xuSW5zdGFsbEluc3RhbGxDb25maWcgPSBfbW9kZWxJbnN0YWxsSW5zdGFsbENvbmZpZzJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEluc3RhbGxJbnN0YWxsUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsUmVxdWVzdH1cbiAqL1xuSW5zdGFsbEluc3RhbGxSZXF1ZXN0ID0gX21vZGVsSW5zdGFsbEluc3RhbGxSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSW5zdGFsbEluc3RhbGxSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsUmVzcG9uc2V9XG4gKi9cbkluc3RhbGxJbnN0YWxsUmVzcG9uc2UgPSBfbW9kZWxJbnN0YWxsSW5zdGFsbFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdH1cbiAqL1xuSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QgPSBfbW9kZWxJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZX1cbiAqL1xuSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlID0gX21vZGVsSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic0FjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb259XG4gKi9cbkpvYnNBY3Rpb24gPSBfbW9kZWxKb2JzQWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic0FjdGlvbkxvZyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25Mb2d9XG4gKi9cbkpvYnNBY3Rpb25Mb2cgPSBfbW9kZWxKb2JzQWN0aW9uTG9nMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic0FjdGlvbk1lc3NhZ2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9uTWVzc2FnZX1cbiAqL1xuSm9ic0FjdGlvbk1lc3NhZ2UgPSBfbW9kZWxKb2JzQWN0aW9uTWVzc2FnZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNBY3Rpb25PdXRwdXQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9uT3V0cHV0fVxuICovXG5Kb2JzQWN0aW9uT3V0cHV0ID0gX21vZGVsSm9ic0FjdGlvbk91dHB1dDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNDb21tYW5kIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic0NvbW1hbmR9XG4gKi9cbkpvYnNDb21tYW5kID0gX21vZGVsSm9ic0NvbW1hbmQyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzQ3RybENvbW1hbmQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzQ3RybENvbW1hbmR9XG4gKi9cbkpvYnNDdHJsQ29tbWFuZCA9IF9tb2RlbEpvYnNDdHJsQ29tbWFuZDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kUmVzcG9uc2V9XG4gKi9cbkpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlID0gX21vZGVsSm9ic0N0cmxDb21tYW5kUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzRGVsZXRlVGFza3NSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdH1cbiAqL1xuSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdCA9IF9tb2RlbEpvYnNEZWxldGVUYXNrc1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzRGVsZXRlVGFza3NSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNEZWxldGVUYXNrc1Jlc3BvbnNlfVxuICovXG5Kb2JzRGVsZXRlVGFza3NSZXNwb25zZSA9IF9tb2RlbEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic0pvYiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNKb2J9XG4gKi9cbkpvYnNKb2IgPSBfbW9kZWxKb2JzSm9iMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic0xpc3RKb2JzUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNMaXN0Sm9ic1JlcXVlc3R9XG4gKi9cbkpvYnNMaXN0Sm9ic1JlcXVlc3QgPSBfbW9kZWxKb2JzTGlzdEpvYnNSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic05vZGVzU2VsZWN0b3IgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzTm9kZXNTZWxlY3Rvcn1cbiAqL1xuSm9ic05vZGVzU2VsZWN0b3IgPSBfbW9kZWxKb2JzTm9kZXNTZWxlY3RvcjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNTY2hlZHVsZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNTY2hlZHVsZX1cbiAqL1xuSm9ic1NjaGVkdWxlID0gX21vZGVsSm9ic1NjaGVkdWxlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic1NvdXJjZUZpbHRlciBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNTb3VyY2VGaWx0ZXJ9XG4gKi9cbkpvYnNTb3VyY2VGaWx0ZXIgPSBfbW9kZWxKb2JzU291cmNlRmlsdGVyMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgSm9ic1Rhc2sgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Kb2JzVGFza31cbiAqL1xuSm9ic1Rhc2sgPSBfbW9kZWxKb2JzVGFzazJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIEpvYnNUYXNrU3RhdHVzIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvSm9ic1Rhc2tTdGF0dXN9XG4gKi9cbkpvYnNUYXNrU3RhdHVzID0gX21vZGVsSm9ic1Rhc2tTdGF0dXMyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBKb2JzVXNlcnNTZWxlY3RvciBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0pvYnNVc2Vyc1NlbGVjdG9yfVxuICovXG5Kb2JzVXNlcnNTZWxlY3RvciA9IF9tb2RlbEpvYnNVc2Vyc1NlbGVjdG9yMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdH1cbiAqL1xuTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQgPSBfbW9kZWxMaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZX1cbiAqL1xuTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlID0gX21vZGVsTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZX1cbiAqL1xuTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2UgPSBfbW9kZWxMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIExvZ0xpc3RMb2dSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvTG9nTGlzdExvZ1JlcXVlc3R9XG4gKi9cbkxvZ0xpc3RMb2dSZXF1ZXN0ID0gX21vZGVsTG9nTGlzdExvZ1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBMb2dMb2dNZXNzYWdlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvTG9nTG9nTWVzc2FnZX1cbiAqL1xuTG9nTG9nTWVzc2FnZSA9IF9tb2RlbExvZ0xvZ01lc3NhZ2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBNYWlsZXJNYWlsIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvTWFpbGVyTWFpbH1cbiAqL1xuTWFpbGVyTWFpbCA9IF9tb2RlbE1haWxlck1haWwyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBNYWlsZXJTZW5kTWFpbFJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvTWFpbGVyU2VuZE1haWxSZXNwb25zZX1cbiAqL1xuTWFpbGVyU2VuZE1haWxSZXNwb25zZSA9IF9tb2RlbE1haWxlclNlbmRNYWlsUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBNYWlsZXJVc2VyIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvTWFpbGVyVXNlcn1cbiAqL1xuTWFpbGVyVXNlciA9IF9tb2RlbE1haWxlclVzZXIyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBOb2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGV9XG4gKi9cbk5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZSA9IF9tb2RlbE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIE9iamVjdERhdGFTb3VyY2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlfVxuICovXG5PYmplY3REYXRhU291cmNlID0gX21vZGVsT2JqZWN0RGF0YVNvdXJjZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIE9iamVjdEVuY3J5cHRpb25Nb2RlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvT2JqZWN0RW5jcnlwdGlvbk1vZGV9XG4gKi9cbk9iamVjdEVuY3J5cHRpb25Nb2RlID0gX21vZGVsT2JqZWN0RW5jcnlwdGlvbk1vZGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBPYmplY3RTdG9yYWdlVHlwZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL09iamVjdFN0b3JhZ2VUeXBlfVxuICovXG5PYmplY3RTdG9yYWdlVHlwZSA9IF9tb2RlbE9iamVjdFN0b3JhZ2VUeXBlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUGFja2FnZVBhY2thZ2VTdGF0dXMgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9QYWNrYWdlUGFja2FnZVN0YXR1c31cbiAqL1xuUGFja2FnZVBhY2thZ2VTdGF0dXMgPSBfbW9kZWxQYWNrYWdlUGFja2FnZVN0YXR1czJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFByb3RvYnVmQW55IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUHJvdG9idWZBbnl9XG4gKi9cblByb3RvYnVmQW55ID0gX21vZGVsUHJvdG9idWZBbnkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZX1cbiAqL1xuUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZSA9IF9tb2RlbFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0QUNMQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RBQ0xDb2xsZWN0aW9ufVxuICovXG5SZXN0QUNMQ29sbGVjdGlvbiA9IF9tb2RlbFJlc3RBQ0xDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEJhY2tncm91bmRKb2JSZXN1bHQgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdH1cbiAqL1xuUmVzdEJhY2tncm91bmRKb2JSZXN1bHQgPSBfbW9kZWxSZXN0QmFja2dyb3VuZEpvYlJlc3VsdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RCdWxrTWV0YVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2V9XG4gKi9cblJlc3RCdWxrTWV0YVJlc3BvbnNlID0gX21vZGVsUmVzdEJ1bGtNZXRhUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0Q2VsbCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RDZWxsfVxuICovXG5SZXN0Q2VsbCA9IF9tb2RlbFJlc3RDZWxsMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdENlbGxBY2wgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0Q2VsbEFjbH1cbiAqL1xuUmVzdENlbGxBY2wgPSBfbW9kZWxSZXN0Q2VsbEFjbDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RDaGFuZ2VDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdENoYW5nZUNvbGxlY3Rpb259XG4gKi9cblJlc3RDaGFuZ2VDb2xsZWN0aW9uID0gX21vZGVsUmVzdENoYW5nZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0Q2hhbmdlUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RDaGFuZ2VSZXF1ZXN0fVxuICovXG5SZXN0Q2hhbmdlUmVxdWVzdCA9IF9tb2RlbFJlc3RDaGFuZ2VSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdENvbmZpZ3VyYXRpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0Q29uZmlndXJhdGlvbn1cbiAqL1xuUmVzdENvbmZpZ3VyYXRpb24gPSBfbW9kZWxSZXN0Q29uZmlndXJhdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RDb250cm9sU2VydmljZVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0fVxuICovXG5SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0ID0gX21vZGVsUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RDcmVhdGVOb2Rlc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0fVxuICovXG5SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0ID0gX21vZGVsUmVzdENyZWF0ZU5vZGVzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3R9XG4gKi9cblJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0ID0gX21vZGVsUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2V9XG4gKi9cblJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSA9IF9tb2RlbFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3REYXRhU291cmNlQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3REYXRhU291cmNlQ29sbGVjdGlvbn1cbiAqL1xuUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uID0gX21vZGVsUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdERlbGV0ZUNlbGxSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVDZWxsUmVzcG9uc2V9XG4gKi9cblJlc3REZWxldGVDZWxsUmVzcG9uc2UgPSBfbW9kZWxSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2V9XG4gKi9cblJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UgPSBfbW9kZWxSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdERlbGV0ZU5vZGVzUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVOb2Rlc1JlcXVlc3R9XG4gKi9cblJlc3REZWxldGVOb2Rlc1JlcXVlc3QgPSBfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZX1cbiAqL1xuUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UgPSBfbW9kZWxSZXN0RGVsZXRlTm9kZXNSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3REZWxldGVSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVSZXNwb25zZX1cbiAqL1xuUmVzdERlbGV0ZVJlc3BvbnNlID0gX21vZGVsUmVzdERlbGV0ZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlfVxuICovXG5SZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UgPSBfbW9kZWxSZXN0RGVsZXRlU2hhcmVMaW5rUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2V9XG4gKi9cblJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSA9IF9tb2RlbFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3REaXNjb3ZlcnlSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3REaXNjb3ZlcnlSZXNwb25zZX1cbiAqL1xuUmVzdERpc2NvdmVyeVJlc3BvbnNlID0gX21vZGVsUmVzdERpc2NvdmVyeVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEVycm9yIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEVycm9yfVxuICovXG5SZXN0RXJyb3IgPSBfbW9kZWxSZXN0RXJyb3IyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVxdWVzdH1cbiAqL1xuUmVzdEZyb250QmluYXJ5UmVxdWVzdCA9IF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRCaW5hcnlSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlc3BvbnNlfVxuICovXG5SZXN0RnJvbnRCaW5hcnlSZXNwb25zZSA9IF9tb2RlbFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2V9XG4gKi9cblJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UgPSBfbW9kZWxSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdH1cbiAqL1xuUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QgPSBfbW9kZWxSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZX1cbiAqL1xuUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlID0gX21vZGVsUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2V9XG4gKi9cblJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UgPSBfbW9kZWxSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlfVxuICovXG5SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UgPSBfbW9kZWxSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXF1ZXN0fVxuICovXG5SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCA9IF9tb2RlbFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlfVxuICovXG5SZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UgPSBfbW9kZWxSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEZyb250U3RhdGVSZXNwb25zZX1cbiAqL1xuUmVzdEZyb250U3RhdGVSZXNwb25zZSA9IF9tb2RlbFJlc3RGcm9udFN0YXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdH1cbiAqL1xuUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCA9IF9tb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0SGVhZE5vZGVSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RIZWFkTm9kZVJlc3BvbnNlfVxuICovXG5SZXN0SGVhZE5vZGVSZXNwb25zZSA9IF9tb2RlbFJlc3RIZWFkTm9kZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdH1cbiAqL1xuUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QgPSBfbW9kZWxSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZX1cbiAqL1xuUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlID0gX21vZGVsUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0fVxuICovXG5SZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QgPSBfbW9kZWxSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZX1cbiAqL1xuUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZSA9IF9tb2RlbFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZX1cbiAqL1xuUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZSA9IF9tb2RlbFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZX1cbiAqL1xuUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZSA9IF9tb2RlbFJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb259XG4gKi9cblJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbiA9IF9tb2RlbFJlc3RMb2dNZXNzYWdlQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RNZXRhQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhQ29sbGVjdGlvbn1cbiAqL1xuUmVzdE1ldGFDb2xsZWN0aW9uID0gX21vZGVsUmVzdE1ldGFDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0fVxuICovXG5SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QgPSBfbW9kZWxSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0TWV0YWRhdGEgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0TWV0YWRhdGF9XG4gKi9cblJlc3RNZXRhZGF0YSA9IF9tb2RlbFJlc3RNZXRhZGF0YTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3ROb2Rlc0NvbGxlY3Rpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9ufVxuICovXG5SZXN0Tm9kZXNDb2xsZWN0aW9uID0gX21vZGVsUmVzdE5vZGVzQ29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RPcGVuQXBpUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlfVxuICovXG5SZXN0T3BlbkFwaVJlc3BvbnNlID0gX21vZGVsUmVzdE9wZW5BcGlSZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RQYWdpbmF0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFBhZ2luYXRpb259XG4gKi9cblJlc3RQYWdpbmF0aW9uID0gX21vZGVsUmVzdFBhZ2luYXRpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UHV0Q2VsbFJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3R9XG4gKi9cblJlc3RQdXRDZWxsUmVxdWVzdCA9IF9tb2RlbFJlc3RQdXRDZWxsUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3R9XG4gKi9cblJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0ID0gX21vZGVsUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdH1cbiAqL1xuUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCA9IF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlfVxuICovXG5SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZSA9IF9tb2RlbFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJlbGF0aW9uUmVzcG9uc2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0UmVsYXRpb25SZXNwb25zZX1cbiAqL1xuUmVzdFJlbGF0aW9uUmVzcG9uc2UgPSBfbW9kZWxSZXN0UmVsYXRpb25SZXNwb25zZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVxdWVzdH1cbiAqL1xuUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0ID0gX21vZGVsUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2V9XG4gKi9cblJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UgPSBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlfVxuICovXG5SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UgPSBfbW9kZWxSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5fVxuICovXG5SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSA9IF9tb2RlbFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVxdWVzdH1cbiAqL1xuUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QgPSBfbW9kZWxSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RSZXN0b3JlTm9kZXNSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXNwb25zZX1cbiAqL1xuUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlID0gX21vZGVsUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJldm9rZVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0UmV2b2tlUmVxdWVzdH1cbiAqL1xuUmVzdFJldm9rZVJlcXVlc3QgPSBfbW9kZWxSZXN0UmV2b2tlUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RSZXZva2VSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXNwb25zZX1cbiAqL1xuUmVzdFJldm9rZVJlc3BvbnNlID0gX21vZGVsUmVzdFJldm9rZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFJvbGVzQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RSb2xlc0NvbGxlY3Rpb259XG4gKi9cblJlc3RSb2xlc0NvbGxlY3Rpb24gPSBfbW9kZWxSZXN0Um9sZXNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNlYXJjaEFDTFJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdH1cbiAqL1xuUmVzdFNlYXJjaEFDTFJlcXVlc3QgPSBfbW9kZWxSZXN0U2VhcmNoQUNMUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTZWFyY2hSZXN1bHRzIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJlc3VsdHN9XG4gKi9cblJlc3RTZWFyY2hSZXN1bHRzID0gX21vZGVsUmVzdFNlYXJjaFJlc3VsdHMyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2VhcmNoUm9sZVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoUm9sZVJlcXVlc3R9XG4gKi9cblJlc3RTZWFyY2hSb2xlUmVxdWVzdCA9IF9tb2RlbFJlc3RTZWFyY2hSb2xlUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTZWFyY2hVc2VyUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdH1cbiAqL1xuUmVzdFNlYXJjaFVzZXJSZXF1ZXN0ID0gX21vZGVsUmVzdFNlYXJjaFVzZXJSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdH1cbiAqL1xuUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QgPSBfbW9kZWxSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTZXJ2aWNlQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvbn1cbiAqL1xuUmVzdFNlcnZpY2VDb2xsZWN0aW9uID0gX21vZGVsUmVzdFNlcnZpY2VDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNldHRpbmdzRW50cnkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NFbnRyeX1cbiAqL1xuUmVzdFNldHRpbmdzRW50cnkgPSBfbW9kZWxSZXN0U2V0dGluZ3NFbnRyeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTZXR0aW5nc0VudHJ5TWV0YSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YX1cbiAqL1xuUmVzdFNldHRpbmdzRW50cnlNZXRhID0gX21vZGVsUmVzdFNldHRpbmdzRW50cnlNZXRhMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlfVxuICovXG5SZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UgPSBfbW9kZWxSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2V0dGluZ3NTZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzU2VjdGlvbn1cbiAqL1xuUmVzdFNldHRpbmdzU2VjdGlvbiA9IF9tb2RlbFJlc3RTZXR0aW5nc1NlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2hhcmVMaW5rIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua31cbiAqL1xuUmVzdFNoYXJlTGluayA9IF9tb2RlbFJlc3RTaGFyZUxpbmsyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0U2hhcmVMaW5rQWNjZXNzVHlwZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlfVxuICovXG5SZXN0U2hhcmVMaW5rQWNjZXNzVHlwZSA9IF9tb2RlbFJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFNoYXJlTGlua1RhcmdldFVzZXIgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcn1cbiAqL1xuUmVzdFNoYXJlTGlua1RhcmdldFVzZXIgPSBfbW9kZWxSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbn1cbiAqL1xuUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uID0gX21vZGVsUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFRlbXBsYXRlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFRlbXBsYXRlfVxuICovXG5SZXN0VGVtcGxhdGUgPSBfbW9kZWxSZXN0VGVtcGxhdGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VGVtcGxhdGVOb2RlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFRlbXBsYXRlTm9kZX1cbiAqL1xuUmVzdFRlbXBsYXRlTm9kZSA9IF9tb2RlbFJlc3RUZW1wbGF0ZU5vZGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3R9XG4gKi9cblJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCA9IF9tb2RlbFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RVc2VySm9iUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdH1cbiAqL1xuUmVzdFVzZXJKb2JSZXF1ZXN0ID0gX21vZGVsUmVzdFVzZXJKb2JSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFVzZXJKb2JSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVzcG9uc2V9XG4gKi9cblJlc3RVc2VySm9iUmVzcG9uc2UgPSBfbW9kZWxSZXN0VXNlckpvYlJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFVzZXJKb2JzQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9ic0NvbGxlY3Rpb259XG4gKi9cblJlc3RVc2VySm9ic0NvbGxlY3Rpb24gPSBfbW9kZWxSZXN0VXNlckpvYnNDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFVzZXJNZXRhQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb259XG4gKi9cblJlc3RVc2VyTWV0YUNvbGxlY3Rpb24gPSBfbW9kZWxSZXN0VXNlck1ldGFDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb259XG4gKi9cblJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24gPSBfbW9kZWxSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgUmVzdFVzZXJTdGF0ZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlfVxuICovXG5SZXN0VXNlclN0YXRlUmVzcG9uc2UgPSBfbW9kZWxSZXN0VXNlclN0YXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VXNlcnNDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFVzZXJzQ29sbGVjdGlvbn1cbiAqL1xuUmVzdFVzZXJzQ29sbGVjdGlvbiA9IF9tb2RlbFJlc3RVc2Vyc0NvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24gbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb259XG4gKi9cblJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbiA9IF9tb2RlbFJlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvbjJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb259XG4gKi9cblJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uID0gX21vZGVsUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24yWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBTZXJ2aWNlT3BlcmF0aW9uVHlwZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1NlcnZpY2VPcGVyYXRpb25UeXBlfVxuICovXG5TZXJ2aWNlT3BlcmF0aW9uVHlwZSA9IF9tb2RlbFNlcnZpY2VPcGVyYXRpb25UeXBlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgU2VydmljZVF1ZXJ5IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvU2VydmljZVF1ZXJ5fVxuICovXG5TZXJ2aWNlUXVlcnkgPSBfbW9kZWxTZXJ2aWNlUXVlcnkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBTZXJ2aWNlUmVzb3VyY2VQb2xpY3kgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3l9XG4gKi9cblNlcnZpY2VSZXNvdXJjZVBvbGljeSA9IF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFNlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbiBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbn1cbiAqL1xuU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uID0gX21vZGVsU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0fVxuICovXG5TZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QgPSBfbW9kZWxTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5fVxuICovXG5TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeSA9IF9tb2RlbFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZUNoYW5nZUxvZyBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVDaGFuZ2VMb2d9XG4gKi9cblRyZWVDaGFuZ2VMb2cgPSBfbW9kZWxUcmVlQ2hhbmdlTG9nMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZUdlb1BvaW50IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZUdlb1BvaW50fVxuICovXG5UcmVlR2VvUG9pbnQgPSBfbW9kZWxUcmVlR2VvUG9pbnQyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlR2VvUXVlcnkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlR2VvUXVlcnl9XG4gKi9cblRyZWVHZW9RdWVyeSA9IF9tb2RlbFRyZWVHZW9RdWVyeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVMaXN0Tm9kZXNSZXF1ZXN0IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZUxpc3ROb2Rlc1JlcXVlc3R9XG4gKi9cblRyZWVMaXN0Tm9kZXNSZXF1ZXN0ID0gX21vZGVsVHJlZUxpc3ROb2Rlc1JlcXVlc3QyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlTm9kZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlfVxuICovXG5UcmVlTm9kZSA9IF9tb2RlbFRyZWVOb2RlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZU5vZGVDaGFuZ2VFdmVudCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlQ2hhbmdlRXZlbnR9XG4gKi9cblRyZWVOb2RlQ2hhbmdlRXZlbnQgPSBfbW9kZWxUcmVlTm9kZUNoYW5nZUV2ZW50MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZU5vZGVUeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZU5vZGVUeXBlfVxuICovXG5UcmVlTm9kZVR5cGUgPSBfbW9kZWxUcmVlTm9kZVR5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlUXVlcnkgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlUXVlcnl9XG4gKi9cblRyZWVRdWVyeSA9IF9tb2RlbFRyZWVRdWVyeTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVSZWFkTm9kZVJlcXVlc3QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlUmVhZE5vZGVSZXF1ZXN0fVxuICovXG5UcmVlUmVhZE5vZGVSZXF1ZXN0ID0gX21vZGVsVHJlZVJlYWROb2RlUmVxdWVzdDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVSZWFkTm9kZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVzcG9uc2V9XG4gKi9cblRyZWVSZWFkTm9kZVJlc3BvbnNlID0gX21vZGVsVHJlZVJlYWROb2RlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlU2VhcmNoUmVxdWVzdCBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVTZWFyY2hSZXF1ZXN0fVxuICovXG5UcmVlU2VhcmNoUmVxdWVzdCA9IF9tb2RlbFRyZWVTZWFyY2hSZXF1ZXN0MlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZVN5bmNDaGFuZ2UgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZX1cbiAqL1xuVHJlZVN5bmNDaGFuZ2UgPSBfbW9kZWxUcmVlU3luY0NoYW5nZTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVTeW5jQ2hhbmdlTm9kZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlTm9kZX1cbiAqL1xuVHJlZVN5bmNDaGFuZ2VOb2RlID0gX21vZGVsVHJlZVN5bmNDaGFuZ2VOb2RlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVHJlZVN5bmNDaGFuZ2VUeXBlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZVN5bmNDaGFuZ2VUeXBlfVxuICovXG5UcmVlU3luY0NoYW5nZVR5cGUgPSBfbW9kZWxUcmVlU3luY0NoYW5nZVR5cGUyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QgbW9kZWwgY29uc3RydWN0b3IuXG4gKiBAcHJvcGVydHkge21vZHVsZTptb2RlbC9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2R9XG4gKi9cblRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCA9IF9tb2RlbFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuICogVGhlIFRyZWVWZXJzaW9uaW5nUG9saWN5IG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZVZlcnNpb25pbmdQb2xpY3l9XG4gKi9cblRyZWVWZXJzaW9uaW5nUG9saWN5ID0gX21vZGVsVHJlZVZlcnNpb25pbmdQb2xpY3kyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBUcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aH1cbiAqL1xuVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aCA9IF9tb2RlbFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZX1cbiAqL1xuVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZSA9IF9tb2RlbFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBVcGRhdGVQYWNrYWdlIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVXBkYXRlUGFja2FnZX1cbiAqL1xuVXBkYXRlUGFja2FnZSA9IF9tb2RlbFVwZGF0ZVBhY2thZ2UyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBVcGRhdGVVcGRhdGVSZXNwb25zZSBtb2RlbCBjb25zdHJ1Y3Rvci5cbiAqIEBwcm9wZXJ0eSB7bW9kdWxlOm1vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlfVxuICovXG5VcGRhdGVVcGRhdGVSZXNwb25zZSA9IF9tb2RlbFVwZGF0ZVVwZGF0ZVJlc3BvbnNlMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4gKiBUaGUgVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wfVxuICovXG5VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AgPSBfbW9kZWxVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiAqIFRoZSBVcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wIG1vZGVsIGNvbnN0cnVjdG9yLlxuICogQHByb3BlcnR5IHttb2R1bGU6bW9kZWwvVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcH1cbiAqL1xuVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCA9IF9tb2RlbFVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3AyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIEFDTFNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL0FDTFNlcnZpY2VBcGl9XG4qL1xuQUNMU2VydmljZUFwaSA9IF9hcGlBQ0xTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBBY3Rpdml0eVNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL0FjdGl2aXR5U2VydmljZUFwaX1cbiovXG5BY3Rpdml0eVNlcnZpY2VBcGkgPSBfYXBpQWN0aXZpdHlTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBBZG1pblRyZWVTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9BZG1pblRyZWVTZXJ2aWNlQXBpfVxuKi9cbkFkbWluVHJlZVNlcnZpY2VBcGkgPSBfYXBpQWRtaW5UcmVlU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgQ2hhbmdlU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvQ2hhbmdlU2VydmljZUFwaX1cbiovXG5DaGFuZ2VTZXJ2aWNlQXBpID0gX2FwaUNoYW5nZVNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIENvbmZpZ1NlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL0NvbmZpZ1NlcnZpY2VBcGl9XG4qL1xuQ29uZmlnU2VydmljZUFwaSA9IF9hcGlDb25maWdTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBGcm9udGVuZFNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL0Zyb250ZW5kU2VydmljZUFwaX1cbiovXG5Gcm9udGVuZFNlcnZpY2VBcGkgPSBfYXBpRnJvbnRlbmRTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBHcmFwaFNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL0dyYXBoU2VydmljZUFwaX1cbiovXG5HcmFwaFNlcnZpY2VBcGkgPSBfYXBpR3JhcGhTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBJbnN0YWxsU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvSW5zdGFsbFNlcnZpY2VBcGl9XG4qL1xuSW5zdGFsbFNlcnZpY2VBcGkgPSBfYXBpSW5zdGFsbFNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIEpvYnNTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9Kb2JzU2VydmljZUFwaX1cbiovXG5Kb2JzU2VydmljZUFwaSA9IF9hcGlKb2JzU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgTG9nU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvTG9nU2VydmljZUFwaX1cbiovXG5Mb2dTZXJ2aWNlQXBpID0gX2FwaUxvZ1NlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIE1haWxlclNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL01haWxlclNlcnZpY2VBcGl9XG4qL1xuTWFpbGVyU2VydmljZUFwaSA9IF9hcGlNYWlsZXJTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBNZXRhU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvTWV0YVNlcnZpY2VBcGl9XG4qL1xuTWV0YVNlcnZpY2VBcGkgPSBfYXBpTWV0YVNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIFBvbGljeVNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1BvbGljeVNlcnZpY2VBcGl9XG4qL1xuUG9saWN5U2VydmljZUFwaSA9IF9hcGlQb2xpY3lTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBSb2xlU2VydmljZUFwaSBzZXJ2aWNlIGNvbnN0cnVjdG9yLlxuKiBAcHJvcGVydHkge21vZHVsZTphcGkvUm9sZVNlcnZpY2VBcGl9XG4qL1xuUm9sZVNlcnZpY2VBcGkgPSBfYXBpUm9sZVNlcnZpY2VBcGkyWydkZWZhdWx0J107XG5leHBvcnRzLlxuXG4vKipcbiogVGhlIFNlYXJjaFNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1NlYXJjaFNlcnZpY2VBcGl9XG4qL1xuU2VhcmNoU2VydmljZUFwaSA9IF9hcGlTZWFyY2hTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBTaGFyZVNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1NoYXJlU2VydmljZUFwaX1cbiovXG5TaGFyZVNlcnZpY2VBcGkgPSBfYXBpU2hhcmVTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBUZW1wbGF0ZXNTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9UZW1wbGF0ZXNTZXJ2aWNlQXBpfVxuKi9cblRlbXBsYXRlc1NlcnZpY2VBcGkgPSBfYXBpVGVtcGxhdGVzU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgVG9rZW5TZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9Ub2tlblNlcnZpY2VBcGl9XG4qL1xuVG9rZW5TZXJ2aWNlQXBpID0gX2FwaVRva2VuU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgVHJlZVNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1RyZWVTZXJ2aWNlQXBpfVxuKi9cblRyZWVTZXJ2aWNlQXBpID0gX2FwaVRyZWVTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBVcGRhdGVTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9VcGRhdGVTZXJ2aWNlQXBpfVxuKi9cblVwZGF0ZVNlcnZpY2VBcGkgPSBfYXBpVXBkYXRlU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgVXNlck1ldGFTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9Vc2VyTWV0YVNlcnZpY2VBcGl9XG4qL1xuVXNlck1ldGFTZXJ2aWNlQXBpID0gX2FwaVVzZXJNZXRhU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbmV4cG9ydHMuXG5cbi8qKlxuKiBUaGUgVXNlclNlcnZpY2VBcGkgc2VydmljZSBjb25zdHJ1Y3Rvci5cbiogQHByb3BlcnR5IHttb2R1bGU6YXBpL1VzZXJTZXJ2aWNlQXBpfVxuKi9cblVzZXJTZXJ2aWNlQXBpID0gX2FwaVVzZXJTZXJ2aWNlQXBpMlsnZGVmYXVsdCddO1xuZXhwb3J0cy5cblxuLyoqXG4qIFRoZSBXb3Jrc3BhY2VTZXJ2aWNlQXBpIHNlcnZpY2UgY29uc3RydWN0b3IuXG4qIEBwcm9wZXJ0eSB7bW9kdWxlOmFwaS9Xb3Jrc3BhY2VTZXJ2aWNlQXBpfVxuKi9cbldvcmtzcGFjZVNlcnZpY2VBcGkgPSBfYXBpV29ya3NwYWNlU2VydmljZUFwaTJbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0FjdGl2aXR5T2JqZWN0VHlwZSA9IHJlcXVpcmUoJy4vQWN0aXZpdHlPYmplY3RUeXBlJyk7XG5cbnZhciBfQWN0aXZpdHlPYmplY3RUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FjdGl2aXR5T2JqZWN0VHlwZSk7XG5cbi8qKlxuKiBUaGUgQWN0aXZpdHlPYmplY3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0FjdGl2aXR5T2JqZWN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEFjdGl2aXR5T2JqZWN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+QWN0aXZpdHlPYmplY3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEFjdGl2aXR5T2JqZWN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWN0aXZpdHlPYmplY3QpO1xuXG4gICAgICAgIHRoaXMuanNvbkxkQ29udGV4dCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50eXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc3VtbWFyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmF0dGFjaG1lbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYXR0cmlidXRlZFRvID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmF1ZGllbmNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmVuZFRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucHVibGlzaGVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnVwZGF0ZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudXJsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm1lZGlhVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5pY29uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmltYWdlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnByZXZpZXcgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubG9jYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaW5SZXBseVRvID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnJlcGxpZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudGFnID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmdlbmVyYXRvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50byA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5idG8gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuY2MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYmNjID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmFjdG9yID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm9iamVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm9yaWdpbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5pbnN0cnVtZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmhyZWYgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmhyZWZsYW5nID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmhlaWdodCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy53aWR0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5vbmVPZiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5hbnlPZiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jbG9zZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc3ViamVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5yZWxhdGlvbnNoaXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZm9ybWVyVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kZWxldGVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmFjY3VyYWN5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmFsdGl0dWRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmxhdGl0dWRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmxvbmdpdHVkZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5yYWRpdXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudW5pdHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmZpcnN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmxhc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucGFydE9mID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm5leHQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucHJldiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5BY3Rpdml0eU9iamVjdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5BY3Rpdml0eU9iamVjdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBBY3Rpdml0eU9iamVjdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnanNvbkxkQ29udGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydqc29uTGRDb250ZXh0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnanNvbkxkQ29udGV4dCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd0eXBlJ10gPSBfQWN0aXZpdHlPYmplY3RUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsndHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2lkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCduYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ25hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWyduYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzdW1tYXJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3N1bW1hcnknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydzdW1tYXJ5J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdjb250ZXh0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2NvbnRleHQnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnY29udGV4dCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdhdHRhY2htZW50JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2F0dGFjaG1lbnQnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnYXR0YWNobWVudCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdhdHRyaWJ1dGVkVG8nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnYXR0cmlidXRlZFRvJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2F0dHJpYnV0ZWRUbyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdhdWRpZW5jZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydhdWRpZW5jZSddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydhdWRpZW5jZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdjb250ZW50JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2NvbnRlbnQnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnY29udGVudCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzdGFydFRpbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc3RhcnRUaW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnc3RhcnRUaW1lJ10sICdEYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZW5kVGltZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydlbmRUaW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZW5kVGltZSddLCAnRGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3B1Ymxpc2hlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydwdWJsaXNoZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydwdWJsaXNoZWQnXSwgJ0RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCd1cGRhdGVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3VwZGF0ZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWyd1cGRhdGVkJ10sICdEYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZHVyYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZHVyYXRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkdXJhdGlvbiddLCAnRGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3VybCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd1cmwnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsndXJsJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ21lZGlhVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydtZWRpYVR5cGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydtZWRpYVR5cGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2ljb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnaWNvbiddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydpY29uJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2ltYWdlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2ltYWdlJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2ltYWdlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3ByZXZpZXcnKSkge1xuICAgICAgICAgICAgICAgIG9ialsncHJldmlldyddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydwcmV2aWV3J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2xvY2F0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2xvY2F0aW9uJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2xvY2F0aW9uJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2luUmVwbHlUbycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydpblJlcGx5VG8nXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnaW5SZXBseVRvJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3JlcGxpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsncmVwbGllcyddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydyZXBsaWVzJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3RhZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd0YWcnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsndGFnJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2dlbmVyYXRvcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydnZW5lcmF0b3InXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnZ2VuZXJhdG9yJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3RvJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3RvJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ3RvJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2J0bycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydidG8nXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnYnRvJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2NjJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2NjJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2NjJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2JjYycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydiY2MnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnYmNjJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2FjdG9yJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2FjdG9yJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2FjdG9yJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ29iamVjdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydvYmplY3QnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnb2JqZWN0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3RhcmdldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd0YXJnZXQnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsndGFyZ2V0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3Jlc3VsdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydyZXN1bHQnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsncmVzdWx0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ29yaWdpbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydvcmlnaW4nXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnb3JpZ2luJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2luc3RydW1lbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnaW5zdHJ1bWVudCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydpbnN0cnVtZW50J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2hyZWYnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnaHJlZiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2hyZWYnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3JlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydyZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydyZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2hyZWZsYW5nJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2hyZWZsYW5nJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnaHJlZmxhbmcnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2hlaWdodCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydoZWlnaHQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydoZWlnaHQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3dpZHRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3dpZHRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnd2lkdGgnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ29uZU9mJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ29uZU9mJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ29uZU9mJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2FueU9mJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2FueU9mJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2FueU9mJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2Nsb3NlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydjbG9zZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydjbG9zZWQnXSwgJ0RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzdWJqZWN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3N1YmplY3QnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnc3ViamVjdCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdyZWxhdGlvbnNoaXAnKSkge1xuICAgICAgICAgICAgICAgIG9ialsncmVsYXRpb25zaGlwJ10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ3JlbGF0aW9uc2hpcCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmb3JtZXJUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Zvcm1lclR5cGUnXSA9IF9BY3Rpdml0eU9iamVjdFR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydmb3JtZXJUeXBlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2RlbGV0ZWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGVsZXRlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2RlbGV0ZWQnXSwgJ0RhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdhY2N1cmFjeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydhY2N1cmFjeSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2FjY3VyYWN5J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdhbHRpdHVkZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydhbHRpdHVkZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2FsdGl0dWRlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdsYXRpdHVkZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydsYXRpdHVkZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2xhdGl0dWRlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdsb25naXR1ZGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbG9uZ2l0dWRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbG9uZ2l0dWRlJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdyYWRpdXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsncmFkaXVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsncmFkaXVzJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCd1bml0cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd1bml0cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3VuaXRzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdpdGVtcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydpdGVtcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2l0ZW1zJ10sIFtBY3Rpdml0eU9iamVjdF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3RvdGFsSXRlbXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsndG90YWxJdGVtcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3RvdGFsSXRlbXMnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2N1cnJlbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnY3VycmVudCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydjdXJyZW50J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2ZpcnN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2ZpcnN0J10gPSBBY3Rpdml0eU9iamVjdC5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2ZpcnN0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2xhc3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbGFzdCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydsYXN0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3BhcnRPZicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydwYXJ0T2YnXSA9IEFjdGl2aXR5T2JqZWN0LmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsncGFydE9mJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ25leHQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbmV4dCddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWyduZXh0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3ByZXYnKSkge1xuICAgICAgICAgICAgICAgIG9ialsncHJldiddID0gQWN0aXZpdHlPYmplY3QuY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydwcmV2J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBqc29uTGRDb250ZXh0XG4gICAgKi9cbiAgICByZXR1cm4gQWN0aXZpdHlPYmplY3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBY3Rpdml0eU9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0VHlwZX0gdHlwZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gaWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IG5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IHN1bW1hcnlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGNvbnRleHRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGF0dGFjaG1lbnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGF0dHJpYnV0ZWRUb1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gYXVkaWVuY2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGNvbnRlbnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtEYXRlfSBzdGFydFRpbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtEYXRlfSBlbmRUaW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7RGF0ZX0gcHVibGlzaGVkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7RGF0ZX0gdXBkYXRlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0RhdGV9IGR1cmF0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSB1cmxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IG1lZGlhVHlwZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gaWNvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gaW1hZ2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHByZXZpZXdcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGxvY2F0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBpblJlcGx5VG9cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHJlcGxpZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHRhZ1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gZ2VuZXJhdG9yXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSB0b1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gYnRvXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBjY1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gYmNjXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBhY3RvclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gb2JqZWN0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSB0YXJnZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHJlc3VsdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gb3JpZ2luXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBpbnN0cnVtZW50XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBocmVmXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSByZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGhyZWZsYW5nXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBoZWlnaHRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IHdpZHRoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBvbmVPZlxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdH0gYW55T2ZcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtEYXRlfSBjbG9zZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHN1YmplY3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHJlbGF0aW9uc2hpcFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdFR5cGV9IGZvcm1lclR5cGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtEYXRlfSBkZWxldGVkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBhY2N1cmFjeVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gYWx0aXR1ZGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IGxhdGl0dWRlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBsb25naXR1ZGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IHJhZGl1c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gdW5pdHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0Pn0gaXRlbXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IHRvdGFsSXRlbXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGN1cnJlbnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IGZpcnN0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBsYXN0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0fSBwYXJ0T2ZcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IG5leHRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPYmplY3R9IHByZXZcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgQWN0aXZpdHlPYmplY3RUeXBlLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBBY3Rpdml0eU9iamVjdFR5cGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFjdGl2aXR5T2JqZWN0VHlwZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFjdGl2aXR5T2JqZWN0VHlwZSk7XG5cbiAgICAgICAgdGhpcy5CYXNlT2JqZWN0ID0gXCJCYXNlT2JqZWN0XCI7XG4gICAgICAgIHRoaXMuQWN0aXZpdHkgPSBcIkFjdGl2aXR5XCI7XG4gICAgICAgIHRoaXMuTGluayA9IFwiTGlua1wiO1xuICAgICAgICB0aGlzLk1lbnRpb24gPSBcIk1lbnRpb25cIjtcbiAgICAgICAgdGhpcy5Db2xsZWN0aW9uID0gXCJDb2xsZWN0aW9uXCI7XG4gICAgICAgIHRoaXMuT3JkZXJlZENvbGxlY3Rpb24gPSBcIk9yZGVyZWRDb2xsZWN0aW9uXCI7XG4gICAgICAgIHRoaXMuQ29sbGVjdGlvblBhZ2UgPSBcIkNvbGxlY3Rpb25QYWdlXCI7XG4gICAgICAgIHRoaXMuT3JkZXJlZENvbGxlY3Rpb25QYWdlID0gXCJPcmRlcmVkQ29sbGVjdGlvblBhZ2VcIjtcbiAgICAgICAgdGhpcy5BcHBsaWNhdGlvbiA9IFwiQXBwbGljYXRpb25cIjtcbiAgICAgICAgdGhpcy5Hcm91cCA9IFwiR3JvdXBcIjtcbiAgICAgICAgdGhpcy5Pcmdhbml6YXRpb24gPSBcIk9yZ2FuaXphdGlvblwiO1xuICAgICAgICB0aGlzLlBlcnNvbiA9IFwiUGVyc29uXCI7XG4gICAgICAgIHRoaXMuU2VydmljZSA9IFwiU2VydmljZVwiO1xuICAgICAgICB0aGlzLkFydGljbGUgPSBcIkFydGljbGVcIjtcbiAgICAgICAgdGhpcy5BdWRpbyA9IFwiQXVkaW9cIjtcbiAgICAgICAgdGhpcy5Eb2N1bWVudCA9IFwiRG9jdW1lbnRcIjtcbiAgICAgICAgdGhpcy5FdmVudCA9IFwiRXZlbnRcIjtcbiAgICAgICAgdGhpcy5JbWFnZSA9IFwiSW1hZ2VcIjtcbiAgICAgICAgdGhpcy5Ob3RlID0gXCJOb3RlXCI7XG4gICAgICAgIHRoaXMuUGFnZSA9IFwiUGFnZVwiO1xuICAgICAgICB0aGlzLlBsYWNlID0gXCJQbGFjZVwiO1xuICAgICAgICB0aGlzLlByb2ZpbGUgPSBcIlByb2ZpbGVcIjtcbiAgICAgICAgdGhpcy5SZWxhdGlvbnNoaXAgPSBcIlJlbGF0aW9uc2hpcFwiO1xuICAgICAgICB0aGlzLlRvbWJzdG9uZSA9IFwiVG9tYnN0b25lXCI7XG4gICAgICAgIHRoaXMuVmlkZW8gPSBcIlZpZGVvXCI7XG4gICAgICAgIHRoaXMuQWNjZXB0ID0gXCJBY2NlcHRcIjtcbiAgICAgICAgdGhpcy5BZGQgPSBcIkFkZFwiO1xuICAgICAgICB0aGlzLkFubm91bmNlID0gXCJBbm5vdW5jZVwiO1xuICAgICAgICB0aGlzLkFycml2ZSA9IFwiQXJyaXZlXCI7XG4gICAgICAgIHRoaXMuQmxvY2sgPSBcIkJsb2NrXCI7XG4gICAgICAgIHRoaXMuQ3JlYXRlID0gXCJDcmVhdGVcIjtcbiAgICAgICAgdGhpcy5EZWxldGUgPSBcIkRlbGV0ZVwiO1xuICAgICAgICB0aGlzLkRpc2xpa2UgPSBcIkRpc2xpa2VcIjtcbiAgICAgICAgdGhpcy5GbGFnID0gXCJGbGFnXCI7XG4gICAgICAgIHRoaXMuRm9sbG93ID0gXCJGb2xsb3dcIjtcbiAgICAgICAgdGhpcy5JZ25vcmUgPSBcIklnbm9yZVwiO1xuICAgICAgICB0aGlzLkludml0ZSA9IFwiSW52aXRlXCI7XG4gICAgICAgIHRoaXMuSm9pbiA9IFwiSm9pblwiO1xuICAgICAgICB0aGlzLkxlYXZlID0gXCJMZWF2ZVwiO1xuICAgICAgICB0aGlzLkxpa2UgPSBcIkxpa2VcIjtcbiAgICAgICAgdGhpcy5MaXN0ZW4gPSBcIkxpc3RlblwiO1xuICAgICAgICB0aGlzLk1vdmUgPSBcIk1vdmVcIjtcbiAgICAgICAgdGhpcy5PZmZlciA9IFwiT2ZmZXJcIjtcbiAgICAgICAgdGhpcy5RdWVzdGlvbiA9IFwiUXVlc3Rpb25cIjtcbiAgICAgICAgdGhpcy5SZWplY3QgPSBcIlJlamVjdFwiO1xuICAgICAgICB0aGlzLlJlYWQgPSBcIlJlYWRcIjtcbiAgICAgICAgdGhpcy5SZW1vdmUgPSBcIlJlbW92ZVwiO1xuICAgICAgICB0aGlzLlRlbnRhdGl2ZVJlamVjdCA9IFwiVGVudGF0aXZlUmVqZWN0XCI7XG4gICAgICAgIHRoaXMuVGVudGF0aXZlQWNjZXB0ID0gXCJUZW50YXRpdmVBY2NlcHRcIjtcbiAgICAgICAgdGhpcy5UcmF2ZWwgPSBcIlRyYXZlbFwiO1xuICAgICAgICB0aGlzLlVuZG8gPSBcIlVuZG9cIjtcbiAgICAgICAgdGhpcy5VcGRhdGUgPSBcIlVwZGF0ZVwiO1xuICAgICAgICB0aGlzLlZpZXcgPSBcIlZpZXdcIjtcbiAgICAgICAgdGhpcy5Xb3Jrc3BhY2UgPSBcIldvcmtzcGFjZVwiO1xuICAgICAgICB0aGlzLkRpZ2VzdCA9IFwiRGlnZXN0XCI7XG4gICAgICAgIHRoaXMuRm9sZGVyID0gXCJGb2xkZXJcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5BY3Rpdml0eU9iamVjdFR5cGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9BY3Rpdml0eU9iamVjdFR5cGV9IFRoZSBlbnVtIDxjb2RlPkFjdGl2aXR5T2JqZWN0VHlwZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIEFjdGl2aXR5T2JqZWN0VHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEFjdGl2aXR5T2JqZWN0VHlwZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gQWN0aXZpdHlPYmplY3RUeXBlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJCYXNlT2JqZWN0XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQWN0aXZpdHlcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJMaW5rXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTWVudGlvblwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkNvbGxlY3Rpb25cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJPcmRlcmVkQ29sbGVjdGlvblwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkNvbGxlY3Rpb25QYWdlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiT3JkZXJlZENvbGxlY3Rpb25QYWdlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQXBwbGljYXRpb25cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJHcm91cFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk9yZ2FuaXphdGlvblwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlBlcnNvblwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlNlcnZpY2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBcnRpY2xlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQXVkaW9cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJEb2N1bWVudFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkV2ZW50XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiSW1hZ2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJOb3RlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUGFnZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlBsYWNlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUHJvZmlsZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlJlbGF0aW9uc2hpcFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlRvbWJzdG9uZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlZpZGVvXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQWNjZXB0XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQWRkXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQW5ub3VuY2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBcnJpdmVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJCbG9ja1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkNyZWF0ZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkRlbGV0ZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkRpc2xpa2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJGbGFnXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRm9sbG93XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiSWdub3JlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiSW52aXRlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiSm9pblwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkxlYXZlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTGlrZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkxpc3RlblwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk1vdmVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJPZmZlclwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlF1ZXN0aW9uXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUmVqZWN0XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUmVhZFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlJlbW92ZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlRlbnRhdGl2ZVJlamVjdFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlRlbnRhdGl2ZUFjY2VwdFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlRyYXZlbFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlVuZG9cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJVcGRhdGVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJWaWV3XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiV29ya3NwYWNlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRGlnZXN0XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRm9sZGVyXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgQWN0aXZpdHlPd25lclR5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIEFjdGl2aXR5T3duZXJUeXBlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBBY3Rpdml0eU93bmVyVHlwZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFjdGl2aXR5T3duZXJUeXBlKTtcblxuICAgICAgICB0aGlzLk5PREUgPSBcIk5PREVcIjtcbiAgICAgICAgdGhpcy5VU0VSID0gXCJVU0VSXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+QWN0aXZpdHlPd25lclR5cGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9BY3Rpdml0eU93bmVyVHlwZX0gVGhlIGVudW0gPGNvZGU+QWN0aXZpdHlPd25lclR5cGU8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBBY3Rpdml0eU93bmVyVHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEFjdGl2aXR5T3duZXJUeXBlO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBBY3Rpdml0eU93bmVyVHlwZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiTk9ERVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlVTRVJcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0FjdGl2aXR5T3duZXJUeXBlID0gcmVxdWlyZSgnLi9BY3Rpdml0eU93bmVyVHlwZScpO1xuXG52YXIgX0FjdGl2aXR5T3duZXJUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FjdGl2aXR5T3duZXJUeXBlKTtcblxuLyoqXG4qIFRoZSBBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvQWN0aXZpdHlTZWFyY2hTdWJzY3JpcHRpb25zUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlVzZXJJZHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2JqZWN0VHlwZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2JqZWN0SWRzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9BY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VySWRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJJZHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVc2VySWRzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09iamVjdFR5cGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09iamVjdFR5cGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2JqZWN0VHlwZXMnXSwgW19BY3Rpdml0eU93bmVyVHlwZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09iamVjdElkcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPYmplY3RJZHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPYmplY3RJZHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gVXNlcklkc1xuICAgICovXG4gICAgcmV0dXJuIEFjdGl2aXR5U2VhcmNoU3Vic2NyaXB0aW9uc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBY3Rpdml0eVNlYXJjaFN1YnNjcmlwdGlvbnNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0FjdGl2aXR5T3duZXJUeXBlPn0gT2JqZWN0VHlwZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gT2JqZWN0SWRzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfQWN0aXZpdHlTdHJlYW1Db250ZXh0ID0gcmVxdWlyZSgnLi9BY3Rpdml0eVN0cmVhbUNvbnRleHQnKTtcblxudmFyIF9BY3Rpdml0eVN0cmVhbUNvbnRleHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWN0aXZpdHlTdHJlYW1Db250ZXh0KTtcblxudmFyIF9BY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldyA9IHJlcXVpcmUoJy4vQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcnKTtcblxudmFyIF9BY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldyk7XG5cbi8qKlxuKiBUaGUgQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+QWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0FjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBBY3Rpdml0eVN0cmVhbUFjdGl2aXRpZXNSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Db250ZXh0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbnRleHREYXRhID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlN0cmVhbUZpbHRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Cb3hOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVucmVhZENvdW50T25seSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQXNEaWdlc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUG9pbnRPZlZpZXcgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFuZ3VhZ2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+QWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbnRleHQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29udGV4dCddID0gX0FjdGl2aXR5U3RyZWFtQ29udGV4dDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0NvbnRleHQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29udGV4dERhdGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29udGV4dERhdGEnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb250ZXh0RGF0YSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RyZWFtRmlsdGVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N0cmVhbUZpbHRlciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N0cmVhbUZpbHRlciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQm94TmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCb3hOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQm94TmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVW5yZWFkQ291bnRPbmx5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VucmVhZENvdW50T25seSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VucmVhZENvdW50T25seSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPZmZzZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbWl0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGltaXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FzRGlnZXN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FzRGlnZXN0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXNEaWdlc3QnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2ludE9mVmlldycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2ludE9mVmlldyddID0gX0FjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUG9pbnRPZlZpZXcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFuZ3VhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFuZ3VhZ2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYW5ndWFnZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdHJlYW1Db250ZXh0fSBDb250ZXh0XG4gICAgKi9cbiAgICByZXR1cm4gQWN0aXZpdHlTdHJlYW1BY3Rpdml0aWVzUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFjdGl2aXR5U3RyZWFtQWN0aXZpdGllc1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQ29udGV4dERhdGFcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFN0cmVhbUZpbHRlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQm94TmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFVucmVhZENvdW50T25seVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT2Zmc2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMaW1pdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEFzRGlnZXN0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3fSBQb2ludE9mVmlld1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFuZ3VhZ2VcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgQWN0aXZpdHlTdHJlYW1Db250ZXh0LlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBBY3Rpdml0eVN0cmVhbUNvbnRleHQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFjdGl2aXR5U3RyZWFtQ29udGV4dCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFjdGl2aXR5U3RyZWFtQ29udGV4dCk7XG5cbiAgICAgICAgdGhpcy5NWUZFRUQgPSBcIk1ZRkVFRFwiO1xuICAgICAgICB0aGlzLlVTRVJfSUQgPSBcIlVTRVJfSURcIjtcbiAgICAgICAgdGhpcy5OT0RFX0lEID0gXCJOT0RFX0lEXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+QWN0aXZpdHlTdHJlYW1Db250ZXh0PC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdHJlYW1Db250ZXh0fSBUaGUgZW51bSA8Y29kZT5BY3Rpdml0eVN0cmVhbUNvbnRleHQ8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBBY3Rpdml0eVN0cmVhbUNvbnRleHQuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBBY3Rpdml0eVN0cmVhbUNvbnRleHQ7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEFjdGl2aXR5U3RyZWFtQ29udGV4dDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiTVlGRUVEXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVVNFUl9JRFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk5PREVfSURcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0FjdGl2aXR5T3duZXJUeXBlID0gcmVxdWlyZSgnLi9BY3Rpdml0eU93bmVyVHlwZScpO1xuXG52YXIgX0FjdGl2aXR5T3duZXJUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FjdGl2aXR5T3duZXJUeXBlKTtcblxuLyoqXG4qIFRoZSBBY3Rpdml0eVN1YnNjcmlwdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgQWN0aXZpdHlTdWJzY3JpcHRpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5BY3Rpdml0eVN1YnNjcmlwdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0FjdGl2aXR5U3Vic2NyaXB0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gQWN0aXZpdHlTdWJzY3JpcHRpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpdml0eVN1YnNjcmlwdGlvbik7XG5cbiAgICAgICAgdGhpcy5Vc2VySWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2JqZWN0VHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PYmplY3RJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FdmVudHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QWN0aXZpdHlTdWJzY3JpcHRpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U3Vic2NyaXB0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+QWN0aXZpdHlTdWJzY3JpcHRpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBBY3Rpdml0eVN1YnNjcmlwdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgQWN0aXZpdHlTdWJzY3JpcHRpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJJZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2VySWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVc2VySWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09iamVjdFR5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2JqZWN0VHlwZSddID0gX0FjdGl2aXR5T3duZXJUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnT2JqZWN0VHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPYmplY3RJZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPYmplY3RJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09iamVjdElkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFdmVudHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRXZlbnRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRXZlbnRzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVc2VySWRcbiAgICAqL1xuICAgIHJldHVybiBBY3Rpdml0eVN1YnNjcmlwdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFjdGl2aXR5U3Vic2NyaXB0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQWN0aXZpdHlPd25lclR5cGV9IE9iamVjdFR5cGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9iamVjdElkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IEV2ZW50c1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBBY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldy5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXcpO1xuXG4gICAgICAgIHRoaXMuR0VORVJJQyA9IFwiR0VORVJJQ1wiO1xuICAgICAgICB0aGlzLkFDVE9SID0gXCJBQ1RPUlwiO1xuICAgICAgICB0aGlzLlNVQkpFQ1QgPSBcIlNVQkpFQ1RcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5BY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldzwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0FjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3fSBUaGUgZW51bSA8Y29kZT5BY3Rpdml0eVN1bW1hcnlQb2ludE9mVmlldzwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIEFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gQWN0aXZpdHlTdW1tYXJ5UG9pbnRPZlZpZXc7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEFjdGl2aXR5U3VtbWFyeVBvaW50T2ZWaWV3O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJHRU5FUklDXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQUNUT1JcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJTVUJKRUNUXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBDdGxQZWVyIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9DdGxQZWVyXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEN0bFBlZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5DdGxQZWVyPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvQ3RsUGVlclxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEN0bFBlZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDdGxQZWVyKTtcblxuICAgICAgICB0aGlzLklkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFkZHJlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUG9ydCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NZXRhZGF0YSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DdGxQZWVyPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9DdGxQZWVyfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvQ3RsUGVlcn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5DdGxQZWVyPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgQ3RsUGVlci5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgQ3RsUGVlcigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWRkcmVzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBZGRyZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWRkcmVzcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9ydCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb3J0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9ydCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWV0YWRhdGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWV0YWRhdGEnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNZXRhZGF0YSddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSWRcbiAgICAqL1xuICAgIHJldHVybiBDdGxQZWVyO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQ3RsUGVlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBBZGRyZXNzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBQb3J0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IE1ldGFkYXRhXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfQ3RsUGVlciA9IHJlcXVpcmUoJy4vQ3RsUGVlcicpO1xuXG52YXIgX0N0bFBlZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ3RsUGVlcik7XG5cbnZhciBfQ3RsU2VydmljZVN0YXR1cyA9IHJlcXVpcmUoJy4vQ3RsU2VydmljZVN0YXR1cycpO1xuXG52YXIgX0N0bFNlcnZpY2VTdGF0dXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ3RsU2VydmljZVN0YXR1cyk7XG5cbi8qKlxuKiBUaGUgQ3RsU2VydmljZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvQ3RsU2VydmljZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBDdGxTZXJ2aWNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Q3RsU2VydmljZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0N0bFNlcnZpY2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBDdGxTZXJ2aWNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ3RsU2VydmljZSk7XG5cbiAgICAgICAgdGhpcy5OYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlZlcnNpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGFnID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbnRyb2xsYWJsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUnVubmluZ1BlZXJzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkN0bFNlcnZpY2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0N0bFNlcnZpY2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9DdGxTZXJ2aWNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkN0bFNlcnZpY2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBDdGxTZXJ2aWNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBDdGxTZXJ2aWNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdWZXJzaW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1ZlcnNpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydWZXJzaW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUYWcnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGFnJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGFnJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb250cm9sbGFibGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29udHJvbGxhYmxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ29udHJvbGxhYmxlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RhdHVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N0YXR1cyddID0gX0N0bFNlcnZpY2VTdGF0dXMyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydTdGF0dXMnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUnVubmluZ1BlZXJzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1J1bm5pbmdQZWVycyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1J1bm5pbmdQZWVycyddLCBbX0N0bFBlZXIyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTmFtZVxuICAgICovXG4gICAgcmV0dXJuIEN0bFNlcnZpY2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDdGxTZXJ2aWNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFZlcnNpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBUYWdcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBDb250cm9sbGFibGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQ3RsU2VydmljZVN0YXR1c30gU3RhdHVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9DdGxQZWVyPn0gUnVubmluZ1BlZXJzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIEN0bFNlcnZpY2VDb21tYW5kLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBDdGxTZXJ2aWNlQ29tbWFuZCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ3RsU2VydmljZUNvbW1hbmQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDdGxTZXJ2aWNlQ29tbWFuZCk7XG5cbiAgICAgICAgdGhpcy5TVEFSVCA9IFwiU1RBUlRcIjtcbiAgICAgICAgdGhpcy5TVE9QID0gXCJTVE9QXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+Q3RsU2VydmljZUNvbW1hbmQ8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9DdGxTZXJ2aWNlQ29tbWFuZH0gVGhlIGVudW0gPGNvZGU+Q3RsU2VydmljZUNvbW1hbmQ8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBDdGxTZXJ2aWNlQ29tbWFuZC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEN0bFNlcnZpY2VDb21tYW5kO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBDdGxTZXJ2aWNlQ29tbWFuZDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiU1RBUlRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJTVE9QXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgQ3RsU2VydmljZVN0YXR1cy5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgQ3RsU2VydmljZVN0YXR1cyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ3RsU2VydmljZVN0YXR1cygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEN0bFNlcnZpY2VTdGF0dXMpO1xuXG4gICAgICAgIHRoaXMuQU5ZID0gXCJBTllcIjtcbiAgICAgICAgdGhpcy5TVE9QUEVEID0gXCJTVE9QUEVEXCI7XG4gICAgICAgIHRoaXMuU1RBUlRJTkcgPSBcIlNUQVJUSU5HXCI7XG4gICAgICAgIHRoaXMuU1RPUFBJTkcgPSBcIlNUT1BQSU5HXCI7XG4gICAgICAgIHRoaXMuU1RBUlRFRCA9IFwiU1RBUlRFRFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPkN0bFNlcnZpY2VTdGF0dXM8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9DdGxTZXJ2aWNlU3RhdHVzfSBUaGUgZW51bSA8Y29kZT5DdGxTZXJ2aWNlU3RhdHVzPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgQ3RsU2VydmljZVN0YXR1cy5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEN0bFNlcnZpY2VTdGF0dXM7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEN0bFNlcnZpY2VTdGF0dXM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkFOWVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlNUT1BQRURcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJTVEFSVElOR1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlNUT1BQSU5HXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiU1RBUlRFRFwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5LZXlJRCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnS2V5SUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnS2V5SUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydLZXlJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEtleUlEXG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25BZG1pbkNyZWF0ZUtleVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbkFkbWluQ3JlYXRlS2V5UmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbmNyeXB0aW9uQWRtaW5DcmVhdGVLZXlSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5LZXlJRCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnS2V5SUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnS2V5SUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydLZXlJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEtleUlEXG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+RW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbkFkbWluRGVsZXRlS2V5UmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5EZWxldGVLZXlSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVuY3J5cHRpb25BZG1pbkRlbGV0ZUtleVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLktleUlEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlN0clBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdLZXlJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydLZXlJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0tleUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdHJQYXNzd29yZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdHJQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N0clBhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gS2V5SURcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBTdHJQYXNzd29yZFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0VuY3J5cHRpb25LZXkgPSByZXF1aXJlKCcuL0VuY3J5cHRpb25LZXknKTtcblxudmFyIF9FbmNyeXB0aW9uS2V5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0VuY3J5cHRpb25LZXkpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLktleSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEVuY3J5cHRpb25BZG1pbkV4cG9ydEtleVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnS2V5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0tleSddID0gX0VuY3J5cHRpb25LZXkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydLZXknXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbktleX0gS2V5XG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbkFkbWluRXhwb3J0S2V5UmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbmNyeXB0aW9uQWRtaW5FeHBvcnRLZXlSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfRW5jcnlwdGlvbktleSA9IHJlcXVpcmUoJy4vRW5jcnlwdGlvbktleScpO1xuXG52YXIgX0VuY3J5cHRpb25LZXkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRW5jcnlwdGlvbktleSk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5LZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RyUGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3ZlcnJpZGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+RW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0tleScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydLZXknXSA9IF9FbmNyeXB0aW9uS2V5MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnS2V5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N0clBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N0clBhc3N3b3JkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3RyUGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ092ZXJyaWRlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ092ZXJyaWRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT3ZlcnJpZGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5fSBLZXlcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBTdHJQYXNzd29yZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IE92ZXJyaWRlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+RW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uQWRtaW5JbXBvcnRLZXlSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIEVuY3J5cHRpb25BZG1pbkltcG9ydEtleVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkFkbWluSW1wb3J0S2V5UmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVxdWVzdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+RW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1JlcXVlc3QoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICByZXR1cm4gRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9FbmNyeXB0aW9uS2V5ID0gcmVxdWlyZSgnLi9FbmNyeXB0aW9uS2V5Jyk7XG5cbnZhciBfRW5jcnlwdGlvbktleTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9FbmNyeXB0aW9uS2V5KTtcblxuLyoqXG4qIFRoZSBFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5FbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbmNyeXB0aW9uQWRtaW5MaXN0S2V5c1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLktleXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+RW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0tleXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnS2V5cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0tleXMnXSwgW19FbmNyeXB0aW9uS2V5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25LZXk+fSBLZXlzXG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbkFkbWluTGlzdEtleXNSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVuY3J5cHRpb25BZG1pbkxpc3RLZXlzUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25FeHBvcnQgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25FeHBvcnRcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRW5jcnlwdGlvbkV4cG9ydCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25FeHBvcnQ8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uRXhwb3J0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gRW5jcnlwdGlvbkV4cG9ydCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25FeHBvcnQpO1xuXG4gICAgICAgIHRoaXMuQnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGF0ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uRXhwb3J0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uRXhwb3J0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkV4cG9ydH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uRXhwb3J0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkV4cG9ydC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbkV4cG9ydCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQnknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCeSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEYXRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGF0ZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEJ5XG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbkV4cG9ydDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVuY3J5cHRpb25FeHBvcnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gRGF0ZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25JbXBvcnQgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0VuY3J5cHRpb25JbXBvcnRcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgRW5jcnlwdGlvbkltcG9ydCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25JbXBvcnQ8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uSW1wb3J0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gRW5jcnlwdGlvbkltcG9ydCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25JbXBvcnQpO1xuXG4gICAgICAgIHRoaXMuQnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGF0ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uSW1wb3J0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uSW1wb3J0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkltcG9ydH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uSW1wb3J0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgRW5jcnlwdGlvbkltcG9ydC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgRW5jcnlwdGlvbkltcG9ydCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQnknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCeSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEYXRlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGF0ZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEJ5XG4gICAgKi9cbiAgICByZXR1cm4gRW5jcnlwdGlvbkltcG9ydDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVuY3J5cHRpb25JbXBvcnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gRGF0ZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0VuY3J5cHRpb25LZXlJbmZvID0gcmVxdWlyZSgnLi9FbmNyeXB0aW9uS2V5SW5mbycpO1xuXG52YXIgX0VuY3J5cHRpb25LZXlJbmZvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0VuY3J5cHRpb25LZXlJbmZvKTtcblxuLyoqXG4qIFRoZSBFbmNyeXB0aW9uS2V5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uS2V5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEVuY3J5cHRpb25LZXkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5FbmNyeXB0aW9uS2V5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbktleVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEVuY3J5cHRpb25LZXkoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbmNyeXB0aW9uS2V5KTtcblxuICAgICAgICB0aGlzLk93bmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ3JlYXRpb25EYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkluZm8gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RW5jcnlwdGlvbktleTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbktleX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0VuY3J5cHRpb25LZXl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+RW5jcnlwdGlvbktleTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEVuY3J5cHRpb25LZXkuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEVuY3J5cHRpb25LZXkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ093bmVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ093bmVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT3duZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lEJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhYmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbnRlbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29udGVudCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvbnRlbnQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NyZWF0aW9uRGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDcmVhdGlvbkRhdGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDcmVhdGlvbkRhdGUnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0luZm8nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSW5mbyddID0gX0VuY3J5cHRpb25LZXlJbmZvMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnSW5mbyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gT3duZXJcbiAgICAqL1xuICAgIHJldHVybiBFbmNyeXB0aW9uS2V5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbktleTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBJRFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IENvbnRlbnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IENyZWF0aW9uRGF0ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5SW5mb30gSW5mb1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0VuY3J5cHRpb25FeHBvcnQgPSByZXF1aXJlKCcuL0VuY3J5cHRpb25FeHBvcnQnKTtcblxudmFyIF9FbmNyeXB0aW9uRXhwb3J0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0VuY3J5cHRpb25FeHBvcnQpO1xuXG52YXIgX0VuY3J5cHRpb25JbXBvcnQgPSByZXF1aXJlKCcuL0VuY3J5cHRpb25JbXBvcnQnKTtcblxudmFyIF9FbmNyeXB0aW9uSW1wb3J0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0VuY3J5cHRpb25JbXBvcnQpO1xuXG4vKipcbiogVGhlIEVuY3J5cHRpb25LZXlJbmZvIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9FbmNyeXB0aW9uS2V5SW5mb1xuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBFbmNyeXB0aW9uS2V5SW5mbyA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkVuY3J5cHRpb25LZXlJbmZvPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbktleUluZm9cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBFbmNyeXB0aW9uS2V5SW5mbygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEVuY3J5cHRpb25LZXlJbmZvKTtcblxuICAgICAgICB0aGlzLkV4cG9ydHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSW1wb3J0cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FbmNyeXB0aW9uS2V5SW5mbzwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvRW5jcnlwdGlvbktleUluZm99IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9FbmNyeXB0aW9uS2V5SW5mb30gVGhlIHBvcHVsYXRlZCA8Y29kZT5FbmNyeXB0aW9uS2V5SW5mbzwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEVuY3J5cHRpb25LZXlJbmZvLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBFbmNyeXB0aW9uS2V5SW5mbygpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRXhwb3J0cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFeHBvcnRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRXhwb3J0cyddLCBbX0VuY3J5cHRpb25FeHBvcnQyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJbXBvcnRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0ltcG9ydHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJbXBvcnRzJ10sIFtfRW5jcnlwdGlvbkltcG9ydDJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9FbmNyeXB0aW9uRXhwb3J0Pn0gRXhwb3J0c1xuICAgICovXG4gICAgcmV0dXJuIEVuY3J5cHRpb25LZXlJbmZvO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRW5jcnlwdGlvbktleUluZm87XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvRW5jcnlwdGlvbkltcG9ydD59IEltcG9ydHNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1BQ0xBY3Rpb24gPSByZXF1aXJlKCcuL0lkbUFDTEFjdGlvbicpO1xuXG52YXIgX0lkbUFDTEFjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1BQ0xBY3Rpb24pO1xuXG4vKipcbiogVGhlIElkbUFDTCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtQUNMXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbUFDTCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbUFDTDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbUFDTFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbUFDTCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbUFDTCk7XG5cbiAgICAgICAgdGhpcy5JRCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUm9sZUlEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldvcmtzcGFjZUlEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVJRCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1BQ0w8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUFDTH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbUFDTH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1BQ0w8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1BQ0wuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbUFDTCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWN0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FjdGlvbiddID0gX0lkbUFDTEFjdGlvbjJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0FjdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb2xlSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9sZUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9sZUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdXb3Jrc3BhY2VJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXb3Jrc3BhY2VJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1dvcmtzcGFjZUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZUlEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSURcbiAgICAqL1xuICAgIHJldHVybiBJZG1BQ0w7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1BQ0w7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9JZG1BQ0xBY3Rpb259IEFjdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUm9sZUlEXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBXb3Jrc3BhY2VJRFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTm9kZUlEXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgSWRtQUNMQWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1BQ0xBY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtQUNMQWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtQUNMQWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtQUNMQWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtQUNMQWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtQUNMQWN0aW9uKTtcblxuICAgICAgICB0aGlzLk5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtQUNMQWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1BQ0xBY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1BQ0xBY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtQUNMQWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtQUNMQWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1BQ0xBY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1ZhbHVlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1ZhbHVlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVmFsdWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBOYW1lXG4gICAgKi9cbiAgICByZXR1cm4gSWRtQUNMQWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtQUNMQWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFZhbHVlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtQUNMQWN0aW9uID0gcmVxdWlyZSgnLi9JZG1BQ0xBY3Rpb24nKTtcblxudmFyIF9JZG1BQ0xBY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtQUNMQWN0aW9uKTtcblxuLyoqXG4qIFRoZSBJZG1BQ0xTaW5nbGVRdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtQUNMU2luZ2xlUXVlcnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtQUNMU2luZ2xlUXVlcnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1BQ0xTaW5nbGVRdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbUFDTFNpbmdsZVF1ZXJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtQUNMU2luZ2xlUXVlcnkoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1BQ0xTaW5nbGVRdWVyeSk7XG5cbiAgICAgICAgdGhpcy5BY3Rpb25zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJvbGVJRHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuV29ya3NwYWNlSURzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVJRHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubm90ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbUFDTFNpbmdsZVF1ZXJ5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1BQ0xTaW5nbGVRdWVyeX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbUFDTFNpbmdsZVF1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbUFDTFNpbmdsZVF1ZXJ5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtQUNMU2luZ2xlUXVlcnkuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbUFDTFNpbmdsZVF1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBY3Rpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FjdGlvbnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBY3Rpb25zJ10sIFtfSWRtQUNMQWN0aW9uMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUm9sZUlEcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSb2xlSURzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9sZUlEcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdXb3Jrc3BhY2VJRHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV29ya3NwYWNlSURzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV29ya3NwYWNlSURzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVJRHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZUlEcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVJRHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbm90JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ25vdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ25vdCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1BQ0xBY3Rpb24+fSBBY3Rpb25zXG4gICAgKi9cbiAgICByZXR1cm4gSWRtQUNMU2luZ2xlUXVlcnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1BQ0xTaW5nbGVRdWVyeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IFJvbGVJRHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gV29ya3NwYWNlSURzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IE5vZGVJRHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBub3RcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3QoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICByZXR1cm4gSWRtTGlzdFBvbGljeUdyb3Vwc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1MaXN0UG9saWN5R3JvdXBzUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtUG9saWN5R3JvdXAgPSByZXF1aXJlKCcuL0lkbVBvbGljeUdyb3VwJyk7XG5cbnZhciBfSWRtUG9saWN5R3JvdXAyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtUG9saWN5R3JvdXApO1xuXG4vKipcbiogVGhlIElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5Qb2xpY3lHcm91cHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVG90YWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtTGlzdFBvbGljeUdyb3Vwc1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1MaXN0UG9saWN5R3JvdXBzUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljeUdyb3VwcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY3lHcm91cHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY3lHcm91cHMnXSwgW19JZG1Qb2xpY3lHcm91cDJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RvdGFsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RvdGFsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVG90YWwnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Qb2xpY3lHcm91cD59IFBvbGljeUdyb3Vwc1xuICAgICovXG4gICAgcmV0dXJuIElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbUxpc3RQb2xpY3lHcm91cHNSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBUb3RhbFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBJZG1Ob2RlVHlwZS5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgSWRtTm9kZVR5cGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIElkbU5vZGVUeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtTm9kZVR5cGUpO1xuXG4gICAgICAgIHRoaXMuVU5LTk9XTiA9IFwiVU5LTk9XTlwiO1xuICAgICAgICB0aGlzLlVTRVIgPSBcIlVTRVJcIjtcbiAgICAgICAgdGhpcy5HUk9VUCA9IFwiR1JPVVBcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5JZG1Ob2RlVHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbU5vZGVUeXBlfSBUaGUgZW51bSA8Y29kZT5JZG1Ob2RlVHlwZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIElkbU5vZGVUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gSWRtTm9kZVR5cGU7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IElkbU5vZGVUeXBlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJVTktOT1dOXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVVNFUlwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkdST1VQXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Qb2xpY3lDb25kaXRpb24gPSByZXF1aXJlKCcuL0lkbVBvbGljeUNvbmRpdGlvbicpO1xuXG52YXIgX0lkbVBvbGljeUNvbmRpdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Qb2xpY3lDb25kaXRpb24pO1xuXG52YXIgX0lkbVBvbGljeUVmZmVjdCA9IHJlcXVpcmUoJy4vSWRtUG9saWN5RWZmZWN0Jyk7XG5cbnZhciBfSWRtUG9saWN5RWZmZWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVBvbGljeUVmZmVjdCk7XG5cbi8qKlxuKiBUaGUgSWRtUG9saWN5IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1Qb2xpY3lcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtUG9saWN5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtUG9saWN5PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtUG9saWN5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtUG9saWN5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtUG9saWN5KTtcblxuICAgICAgICB0aGlzLmlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnN1YmplY3RzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnJlc291cmNlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmVmZmVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jb25kaXRpb25zID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVBvbGljeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVBvbGljeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIElkbVBvbGljeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtUG9saWN5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2lkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzdWJqZWN0cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydzdWJqZWN0cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3N1YmplY3RzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3Jlc291cmNlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydyZXNvdXJjZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydyZXNvdXJjZXMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnYWN0aW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydhY3Rpb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnYWN0aW9ucyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdlZmZlY3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZWZmZWN0J10gPSBfSWRtUG9saWN5RWZmZWN0MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnZWZmZWN0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2NvbmRpdGlvbnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnY29uZGl0aW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2NvbmRpdGlvbnMnXSwgeyAnU3RyaW5nJzogX0lkbVBvbGljeUNvbmRpdGlvbjJbJ2RlZmF1bHQnXSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gaWRcbiAgICAqL1xuICAgIHJldHVybiBJZG1Qb2xpY3k7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1Qb2xpY3k7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gc3ViamVjdHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gcmVzb3VyY2VzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IGFjdGlvbnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5RWZmZWN0fSBlZmZlY3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgbW9kdWxlOm1vZGVsL0lkbVBvbGljeUNvbmRpdGlvbj59IGNvbmRpdGlvbnNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBJZG1Qb2xpY3lDb25kaXRpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVBvbGljeUNvbmRpdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1Qb2xpY3lDb25kaXRpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Qb2xpY3lDb25kaXRpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1Qb2xpY3lDb25kaXRpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1Qb2xpY3lDb25kaXRpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Qb2xpY3lDb25kaXRpb24pO1xuXG4gICAgICAgIHRoaXMudHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5qc29uT3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1Qb2xpY3lDb25kaXRpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeUNvbmRpdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeUNvbmRpdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1Qb2xpY3lDb25kaXRpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1Qb2xpY3lDb25kaXRpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVBvbGljeUNvbmRpdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd0eXBlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsndHlwZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnanNvbk9wdGlvbnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnanNvbk9wdGlvbnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydqc29uT3B0aW9ucyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IHR5cGVcbiAgICAqL1xuICAgIHJldHVybiBJZG1Qb2xpY3lDb25kaXRpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1Qb2xpY3lDb25kaXRpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30ganNvbk9wdGlvbnNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgSWRtUG9saWN5RWZmZWN0LlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBJZG1Qb2xpY3lFZmZlY3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIElkbVBvbGljeUVmZmVjdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVBvbGljeUVmZmVjdCk7XG5cbiAgICAgICAgdGhpcy51bmtub3duID0gXCJ1bmtub3duXCI7XG4gICAgICAgIHRoaXMuZGVueSA9IFwiZGVueVwiO1xuICAgICAgICB0aGlzLmFsbG93ID0gXCJhbGxvd1wiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPklkbVBvbGljeUVmZmVjdDwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeUVmZmVjdH0gVGhlIGVudW0gPGNvZGU+SWRtUG9saWN5RWZmZWN0PC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgSWRtUG9saWN5RWZmZWN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gSWRtUG9saWN5RWZmZWN0O1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBJZG1Qb2xpY3lFZmZlY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcInVua25vd25cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJkZW55XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiYWxsb3dcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVBvbGljeSA9IHJlcXVpcmUoJy4vSWRtUG9saWN5Jyk7XG5cbnZhciBfSWRtUG9saWN5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVBvbGljeSk7XG5cbnZhciBfSWRtUG9saWN5UmVzb3VyY2VHcm91cCA9IHJlcXVpcmUoJy4vSWRtUG9saWN5UmVzb3VyY2VHcm91cCcpO1xuXG52YXIgX0lkbVBvbGljeVJlc291cmNlR3JvdXAyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtUG9saWN5UmVzb3VyY2VHcm91cCk7XG5cbi8qKlxuKiBUaGUgSWRtUG9saWN5R3JvdXAgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVBvbGljeUdyb3VwXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVBvbGljeUdyb3VwID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtUG9saWN5R3JvdXA8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1Qb2xpY3lHcm91cFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVBvbGljeUdyb3VwKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtUG9saWN5R3JvdXApO1xuXG4gICAgICAgIHRoaXMuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5OYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk93bmVyVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZXNvdXJjZUdyb3VwID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhc3RVcGRhdGVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVBvbGljeUdyb3VwPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Qb2xpY3lHcm91cH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVBvbGljeUdyb3VwfSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVBvbGljeUdyb3VwPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtUG9saWN5R3JvdXAuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVBvbGljeUdyb3VwKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPd25lclV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3duZXJVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT3duZXJVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZXNvdXJjZUdyb3VwJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc291cmNlR3JvdXAnXSA9IF9JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUmVzb3VyY2VHcm91cCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYXN0VXBkYXRlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYXN0VXBkYXRlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhc3RVcGRhdGVkJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzJ10sIFtfSWRtUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBJZG1Qb2xpY3lHcm91cDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVBvbGljeUdyb3VwO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPd25lclV1aWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5UmVzb3VyY2VHcm91cH0gUmVzb3VyY2VHcm91cFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTGFzdFVwZGF0ZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVBvbGljeT59IFBvbGljaWVzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIElkbVBvbGljeVJlc291cmNlR3JvdXAuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIElkbVBvbGljeVJlc291cmNlR3JvdXAgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIElkbVBvbGljeVJlc291cmNlR3JvdXAoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Qb2xpY3lSZXNvdXJjZUdyb3VwKTtcblxuICAgICAgICB0aGlzLnJlc3QgPSBcInJlc3RcIjtcbiAgICAgICAgdGhpcy5hY2wgPSBcImFjbFwiO1xuICAgICAgICB0aGlzLm9pZGMgPSBcIm9pZGNcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5JZG1Qb2xpY3lSZXNvdXJjZUdyb3VwPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtUG9saWN5UmVzb3VyY2VHcm91cH0gVGhlIGVudW0gPGNvZGU+SWRtUG9saWN5UmVzb3VyY2VHcm91cDwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIElkbVBvbGljeVJlc291cmNlR3JvdXAuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBJZG1Qb2xpY3lSZXNvdXJjZUdyb3VwO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBJZG1Qb2xpY3lSZXNvdXJjZUdyb3VwO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJyZXN0XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiYWNsXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwib2lkY1wiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUmVzb3VyY2VQb2xpY3knKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5KTtcblxuLyoqXG4qIFRoZSBJZG1Sb2xlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1Sb2xlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVJvbGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Sb2xlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtUm9sZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVJvbGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Sb2xlKTtcblxuICAgICAgICB0aGlzLlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSXNUZWFtID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkdyb3VwUm9sZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2VyUm9sZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYXN0VXBkYXRlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BdXRvQXBwbGllcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1Sb2xlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Sb2xlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtUm9sZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1Sb2xlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtUm9sZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtUm9sZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNUZWFtJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lzVGVhbSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lzVGVhbSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0dyb3VwUm9sZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydHcm91cFJvbGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydHcm91cFJvbGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VyUm9sZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2VyUm9sZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJSb2xlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFzdFVwZGF0ZWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFzdFVwZGF0ZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYXN0VXBkYXRlZCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXV0b0FwcGxpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQXV0b0FwcGxpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdXRvQXBwbGllcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzJ10sIFtfU2VydmljZVJlc291cmNlUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gSWRtUm9sZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVJvbGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBJc1RlYW1cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBHcm91cFJvbGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBVc2VyUm9sZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTGFzdFVwZGF0ZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gQXV0b0FwcGxpZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeT59IFBvbGljaWVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUG9saWNpZXNDb250ZXh0RWRpdGFibGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBJZG1Sb2xlU2luZ2xlUXVlcnkgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVJvbGVTaW5nbGVRdWVyeVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1Sb2xlU2luZ2xlUXVlcnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Sb2xlU2luZ2xlUXVlcnk8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1Sb2xlU2luZ2xlUXVlcnlcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1Sb2xlU2luZ2xlUXVlcnkoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Sb2xlU2luZ2xlUXVlcnkpO1xuXG4gICAgICAgIHRoaXMuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Jc1RlYW0gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSXNHcm91cFJvbGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSXNVc2VyUm9sZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5IYXNBdXRvQXBwbHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubm90ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVJvbGVTaW5nbGVRdWVyeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtUm9sZVNpbmdsZVF1ZXJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtUm9sZVNpbmdsZVF1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVJvbGVTaW5nbGVRdWVyeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIElkbVJvbGVTaW5nbGVRdWVyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtUm9sZVNpbmdsZVF1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhYmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lzVGVhbScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJc1RlYW0nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJc1RlYW0nXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJc0dyb3VwUm9sZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJc0dyb3VwUm9sZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lzR3JvdXBSb2xlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNVc2VyUm9sZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJc1VzZXJSb2xlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSXNVc2VyUm9sZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0hhc0F1dG9BcHBseScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydIYXNBdXRvQXBwbHknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydIYXNBdXRvQXBwbHknXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdub3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbm90J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbm90J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIElkbVJvbGVTaW5nbGVRdWVyeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVJvbGVTaW5nbGVRdWVyeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IElzVGVhbVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IElzR3JvdXBSb2xlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSXNVc2VyUm9sZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEhhc0F1dG9BcHBseVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IG5vdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeScpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5KTtcblxuLyoqXG4qIFRoZSBJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuTWV0YVV1aWRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVVdWlkcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5OYW1lc3BhY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmVzb3VyY2VTdWJqZWN0T3duZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmVzb3VyY2VRdWVyeSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVNlYXJjaFVzZXJNZXRhUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWV0YVV1aWRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01ldGFVdWlkcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01ldGFVdWlkcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlVXVpZHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZVV1aWRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZVV1aWRzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWVzcGFjZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lc3BhY2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lc3BhY2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc291cmNlU3ViamVjdE93bmVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc291cmNlU3ViamVjdE93bmVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmVzb3VyY2VTdWJqZWN0T3duZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc291cmNlUXVlcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzb3VyY2VRdWVyeSddID0gX1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUmVzb3VyY2VRdWVyeSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBNZXRhVXVpZHNcbiAgICAqL1xuICAgIHJldHVybiBJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1TZWFyY2hVc2VyTWV0YVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBOb2RlVXVpZHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVzcGFjZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUmVzb3VyY2VTdWJqZWN0T3duZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UXVlcnl9IFJlc291cmNlUXVlcnlcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Vc2VyTWV0YU5hbWVzcGFjZSA9IHJlcXVpcmUoJy4vSWRtVXNlck1ldGFOYW1lc3BhY2UnKTtcblxudmFyIF9JZG1Vc2VyTWV0YU5hbWVzcGFjZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyTWV0YU5hbWVzcGFjZSk7XG5cbnZhciBfVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wID0gcmVxdWlyZSgnLi9VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AnKTtcblxudmFyIF9VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wKTtcblxuLyoqXG4qIFRoZSBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuT3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5hbWVzcGFjZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09wZXJhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPcGVyYXRpb24nXSA9IF9VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydPcGVyYXRpb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZXNwYWNlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lc3BhY2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZXNwYWNlcyddLCBbX0lkbVVzZXJNZXRhTmFtZXNwYWNlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wfSBPcGVyYXRpb25cbiAgICAqL1xuICAgIHJldHVybiBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtVXNlck1ldGFOYW1lc3BhY2U+fSBOYW1lc3BhY2VzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtVXNlck1ldGFOYW1lc3BhY2UgPSByZXF1aXJlKCcuL0lkbVVzZXJNZXRhTmFtZXNwYWNlJyk7XG5cbnZhciBfSWRtVXNlck1ldGFOYW1lc3BhY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtVXNlck1ldGFOYW1lc3BhY2UpO1xuXG4vKipcbiogVGhlIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0lkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuTmFtZXNwYWNlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZXNwYWNlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lc3BhY2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZXNwYWNlcyddLCBbX0lkbVVzZXJNZXRhTmFtZXNwYWNlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhTmFtZXNwYWNlPn0gTmFtZXNwYWNlc1xuICAgICovXG4gICAgcmV0dXJuIElkbVVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Vc2VyTWV0YSA9IHJlcXVpcmUoJy4vSWRtVXNlck1ldGEnKTtcblxudmFyIF9JZG1Vc2VyTWV0YTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyTWV0YSk7XG5cbnZhciBfVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCA9IHJlcXVpcmUoJy4vVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCcpO1xuXG52YXIgX1VwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3AyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCk7XG5cbi8qKlxuKiBUaGUgSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk9wZXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NZXRhRGF0YXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtVXBkYXRlVXNlck1ldGFSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1VcGRhdGVVc2VyTWV0YVJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09wZXJhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPcGVyYXRpb24nXSA9IF9VcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnT3BlcmF0aW9uJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01ldGFEYXRhcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXRhRGF0YXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNZXRhRGF0YXMnXSwgW19JZG1Vc2VyTWV0YTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1VwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3B9IE9wZXJhdGlvblxuICAgICovXG4gICAgcmV0dXJuIElkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVVwZGF0ZVVzZXJNZXRhUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Vc2VyTWV0YT59IE1ldGFEYXRhc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVVzZXJNZXRhID0gcmVxdWlyZSgnLi9JZG1Vc2VyTWV0YScpO1xuXG52YXIgX0lkbVVzZXJNZXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVVzZXJNZXRhKTtcblxuLyoqXG4qIFRoZSBJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLk1ldGFEYXRhcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1VcGRhdGVVc2VyTWV0YVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWV0YURhdGFzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01ldGFEYXRhcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01ldGFEYXRhcyddLCBbX0lkbVVzZXJNZXRhMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhPn0gTWV0YURhdGFzXG4gICAgKi9cbiAgICByZXR1cm4gSWRtVXBkYXRlVXNlck1ldGFSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVVwZGF0ZVVzZXJNZXRhUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVJvbGUgPSByZXF1aXJlKCcuL0lkbVJvbGUnKTtcblxudmFyIF9JZG1Sb2xlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVJvbGUpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeSA9IHJlcXVpcmUoJy4vU2VydmljZVJlc291cmNlUG9saWN5Jyk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VSZXNvdXJjZVBvbGljeSk7XG5cbi8qKlxuKiBUaGUgSWRtVXNlciBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtVXNlclxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1Vc2VyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtVXNlcjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVVzZXJcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1Vc2VyKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtVXNlcik7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkdyb3VwUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BdHRyaWJ1dGVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJvbGVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxvZ2luID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9sZFBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklzR3JvdXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBMYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1Vc2VyPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Vc2VyfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtVXNlcn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1Vc2VyPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtVXNlci5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSWRtVXNlcigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR3JvdXBQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0dyb3VwUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXR0cmlidXRlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBdHRyaWJ1dGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXR0cmlidXRlcyddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb2xlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSb2xlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1JvbGVzJ10sIFtfSWRtUm9sZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xvZ2luJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xvZ2luJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTG9naW4nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Bhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Bhc3N3b3JkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09sZFBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09sZFBhc3N3b3JkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2xkUGFzc3dvcmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lzR3JvdXAnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSXNHcm91cCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lzR3JvdXAnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHcm91cExhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydHcm91cExhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzJ10sIFtfU2VydmljZVJlc291cmNlUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gSWRtVXNlcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVVzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gR3JvdXBQYXRoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IEF0dHJpYnV0ZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVJvbGU+fSBSb2xlc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTG9naW5cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPbGRQYXNzd29yZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IElzR3JvdXBcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEdyb3VwTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeT59IFBvbGljaWVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUG9saWNpZXNDb250ZXh0RWRpdGFibGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeScpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kpO1xuXG4vKipcbiogVGhlIElkbVVzZXJNZXRhIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1Vc2VyTWV0YVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJZG1Vc2VyTWV0YSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVVzZXJNZXRhPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtVXNlck1ldGFcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJZG1Vc2VyTWV0YSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVVzZXJNZXRhKTtcblxuICAgICAgICB0aGlzLlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZVV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTmFtZXNwYWNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkpzb25WYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1Vc2VyTWV0YTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSWRtVXNlck1ldGF9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1Vc2VyTWV0YX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1Vc2VyTWV0YTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIElkbVVzZXJNZXRhLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1Vc2VyTWV0YSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZVV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZVV1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZXNwYWNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWVzcGFjZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWVzcGFjZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSnNvblZhbHVlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pzb25WYWx1ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pzb25WYWx1ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llcyddLCBbX1NlcnZpY2VSZXNvdXJjZVBvbGljeTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIElkbVVzZXJNZXRhO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtVXNlck1ldGE7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTm9kZVV1aWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVzcGFjZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSnNvblZhbHVlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3k+fSBQb2xpY2llc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFBvbGljaWVzQ29udGV4dEVkaXRhYmxlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUmVzb3VyY2VQb2xpY3knKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5KTtcblxuLyoqXG4qIFRoZSBJZG1Vc2VyTWV0YU5hbWVzcGFjZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtVXNlck1ldGFOYW1lc3BhY2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtVXNlck1ldGFOYW1lc3BhY2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Vc2VyTWV0YU5hbWVzcGFjZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhTmFtZXNwYWNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtVXNlck1ldGFOYW1lc3BhY2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Vc2VyTWV0YU5hbWVzcGFjZSk7XG5cbiAgICAgICAgdGhpcy5OYW1lc3BhY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3JkZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSW5kZXhhYmxlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkpzb25EZWZpbml0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBvbGljaWVzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVVzZXJNZXRhTmFtZXNwYWNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Vc2VyTWV0YU5hbWVzcGFjZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhTmFtZXNwYWNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVVzZXJNZXRhTmFtZXNwYWNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtVXNlck1ldGFOYW1lc3BhY2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVVzZXJNZXRhTmFtZXNwYWNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lc3BhY2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZXNwYWNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZXNwYWNlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPcmRlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPcmRlciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09yZGVyJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJbmRleGFibGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSW5kZXhhYmxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSW5kZXhhYmxlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSnNvbkRlZmluaXRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSnNvbkRlZmluaXRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKc29uRGVmaW5pdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llcyddLCBbX1NlcnZpY2VSZXNvdXJjZVBvbGljeTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBOYW1lc3BhY2VcbiAgICAqL1xuICAgIHJldHVybiBJZG1Vc2VyTWV0YU5hbWVzcGFjZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IElkbVVzZXJNZXRhTmFtZXNwYWNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExhYmVsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBPcmRlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEluZGV4YWJsZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSnNvbkRlZmluaXRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeT59IFBvbGljaWVzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtTm9kZVR5cGUgPSByZXF1aXJlKCcuL0lkbU5vZGVUeXBlJyk7XG5cbnZhciBfSWRtTm9kZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtTm9kZVR5cGUpO1xuXG4vKipcbiogVGhlIElkbVVzZXJTaW5nbGVRdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtVXNlclNpbmdsZVF1ZXJ5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIElkbVVzZXJTaW5nbGVRdWVyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPklkbVVzZXJTaW5nbGVRdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVVzZXJTaW5nbGVRdWVyeVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIElkbVVzZXJTaW5nbGVRdWVyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIElkbVVzZXJTaW5nbGVRdWVyeSk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxvZ2luID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkdyb3VwUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZWN1cnNpdmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRnVsbFBhdGggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQXR0cmlidXRlTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BdHRyaWJ1dGVWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BdHRyaWJ1dGVBbnlWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5IYXNSb2xlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm5vdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JZG1Vc2VyU2luZ2xlUXVlcnk8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0lkbVVzZXJTaW5nbGVRdWVyeX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVVzZXJTaW5nbGVRdWVyeX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JZG1Vc2VyU2luZ2xlUXVlcnk8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJZG1Vc2VyU2luZ2xlUXVlcnkuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVVzZXJTaW5nbGVRdWVyeSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTG9naW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTG9naW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMb2dpbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGFzc3dvcmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYXNzd29yZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR3JvdXBQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0dyb3VwUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVjdXJzaXZlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JlY3Vyc2l2ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1JlY3Vyc2l2ZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Z1bGxQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Z1bGxQYXRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRnVsbFBhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0F0dHJpYnV0ZU5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQXR0cmlidXRlTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0F0dHJpYnV0ZU5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0F0dHJpYnV0ZVZhbHVlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0F0dHJpYnV0ZVZhbHVlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXR0cmlidXRlVmFsdWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0F0dHJpYnV0ZUFueVZhbHVlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0F0dHJpYnV0ZUFueVZhbHVlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXR0cmlidXRlQW55VmFsdWUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdIYXNSb2xlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0hhc1JvbGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydIYXNSb2xlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlVHlwZSddID0gX0lkbU5vZGVUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnTm9kZVR5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbm90JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ25vdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ25vdCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gSWRtVXNlclNpbmdsZVF1ZXJ5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWRtVXNlclNpbmdsZVF1ZXJ5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExvZ2luXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBQYXNzd29yZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gR3JvdXBQYXRoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUmVjdXJzaXZlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBGdWxsUGF0aFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQXR0cmlidXRlTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQXR0cmlidXRlVmFsdWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBBdHRyaWJ1dGVBbnlWYWx1ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSGFzUm9sZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9JZG1Ob2RlVHlwZX0gTm9kZVR5cGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBub3RcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Xb3Jrc3BhY2VTY29wZSA9IHJlcXVpcmUoJy4vSWRtV29ya3NwYWNlU2NvcGUnKTtcblxudmFyIF9JZG1Xb3Jrc3BhY2VTY29wZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Xb3Jrc3BhY2VTY29wZSk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUmVzb3VyY2VQb2xpY3knKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgSWRtV29ya3NwYWNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JZG1Xb3Jrc3BhY2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtV29ya3NwYWNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SWRtV29ya3NwYWNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtV29ya3NwYWNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtV29ya3NwYWNlKTtcblxuICAgICAgICB0aGlzLlVVSUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU2x1ZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TY29wZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYXN0VXBkYXRlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BdHRyaWJ1dGVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJvb3RVVUlEcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Sb290Tm9kZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUG9saWNpZXNDb250ZXh0RWRpdGFibGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SWRtV29ya3NwYWNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SWRtV29ya3NwYWNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtV29ya3NwYWNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJZG1Xb3Jrc3BhY2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VVSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVVVJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VVSUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhYmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rlc2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Rlc2NyaXB0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGVzY3JpcHRpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NsdWcnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU2x1ZyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NsdWcnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Njb3BlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Njb3BlJ10gPSBfSWRtV29ya3NwYWNlU2NvcGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydTY29wZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMYXN0VXBkYXRlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYXN0VXBkYXRlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhc3RVcGRhdGVkJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzJ10sIFtfU2VydmljZVJlc291cmNlUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXR0cmlidXRlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBdHRyaWJ1dGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXR0cmlidXRlcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUm9vdFVVSURzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jvb3RVVUlEcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Jvb3RVVUlEcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb290Tm9kZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9vdE5vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9vdE5vZGVzJ10sIHsgJ1N0cmluZyc6IF9UcmVlTm9kZTJbJ2RlZmF1bHQnXSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llc0NvbnRleHRFZGl0YWJsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFVVSURcbiAgICAqL1xuICAgIHJldHVybiBJZG1Xb3Jrc3BhY2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1Xb3Jrc3BhY2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBTbHVnXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZVNjb3BlfSBTY29wZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTGFzdFVwZGF0ZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeT59IFBvbGljaWVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBBdHRyaWJ1dGVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IFJvb3RVVUlEc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBSb290Tm9kZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBQb2xpY2llc0NvbnRleHRFZGl0YWJsZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBJZG1Xb3Jrc3BhY2VTY29wZS5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgSWRtV29ya3NwYWNlU2NvcGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIElkbVdvcmtzcGFjZVNjb3BlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtV29ya3NwYWNlU2NvcGUpO1xuXG4gICAgICAgIHRoaXMuQU5ZID0gXCJBTllcIjtcbiAgICAgICAgdGhpcy5BRE1JTiA9IFwiQURNSU5cIjtcbiAgICAgICAgdGhpcy5ST09NID0gXCJST09NXCI7XG4gICAgICAgIHRoaXMuTElOSyA9IFwiTElOS1wiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPklkbVdvcmtzcGFjZVNjb3BlPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlU2NvcGV9IFRoZSBlbnVtIDxjb2RlPklkbVdvcmtzcGFjZVNjb3BlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgSWRtV29ya3NwYWNlU2NvcGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBJZG1Xb3Jrc3BhY2VTY29wZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gSWRtV29ya3NwYWNlU2NvcGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkFOWVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkFETUlOXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUk9PTVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkxJTktcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVdvcmtzcGFjZVNjb3BlID0gcmVxdWlyZSgnLi9JZG1Xb3Jrc3BhY2VTY29wZScpO1xuXG52YXIgX0lkbVdvcmtzcGFjZVNjb3BlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVdvcmtzcGFjZVNjb3BlKTtcblxuLyoqXG4qIFRoZSBJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSWRtV29ya3NwYWNlU2luZ2xlUXVlcnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeSk7XG5cbiAgICAgICAgdGhpcy51dWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnNsdWcgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2NvcGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubm90ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPklkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPklkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IElkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCd1dWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWyd1dWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdsYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydsYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2xhYmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzbHVnJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3NsdWcnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydzbHVnJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzY29wZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydzY29wZSddID0gX0lkbVdvcmtzcGFjZVNjb3BlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnc2NvcGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbm90JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ25vdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ25vdCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSB1dWlkXG4gICAgKi9cbiAgICByZXR1cm4gSWRtV29ya3NwYWNlU2luZ2xlUXVlcnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBsYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IHNsdWdcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlU2NvcGV9IHNjb3BlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gbm90XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgSW5zdGFsbENoZWNrUmVzdWx0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JbnN0YWxsQ2hlY2tSZXN1bHRcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSW5zdGFsbENoZWNrUmVzdWx0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SW5zdGFsbENoZWNrUmVzdWx0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSW5zdGFsbENoZWNrUmVzdWx0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSW5zdGFsbENoZWNrUmVzdWx0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSW5zdGFsbENoZWNrUmVzdWx0KTtcblxuICAgICAgICB0aGlzLk5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Kc29uUmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkluc3RhbGxDaGVja1Jlc3VsdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbENoZWNrUmVzdWx0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSW5zdGFsbENoZWNrUmVzdWx0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkluc3RhbGxDaGVja1Jlc3VsdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEluc3RhbGxDaGVja1Jlc3VsdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSW5zdGFsbENoZWNrUmVzdWx0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSnNvblJlc3VsdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKc29uUmVzdWx0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSnNvblJlc3VsdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVcbiAgICAqL1xuICAgIHJldHVybiBJbnN0YWxsQ2hlY2tSZXN1bHQ7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbnN0YWxsQ2hlY2tSZXN1bHQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEpzb25SZXN1bHRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuVGV4dCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0luc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEluc3RhbGxHZXRBZ3JlZW1lbnRSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUZXh0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGV4dCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFRleHRcbiAgICAqL1xuICAgIHJldHVybiBJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbnN0YWxsR2V0QWdyZWVtZW50UmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0luc3RhbGxJbnN0YWxsQ29uZmlnID0gcmVxdWlyZSgnLi9JbnN0YWxsSW5zdGFsbENvbmZpZycpO1xuXG52YXIgX0luc3RhbGxJbnN0YWxsQ29uZmlnMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0luc3RhbGxJbnN0YWxsQ29uZmlnKTtcblxuLyoqXG4qIFRoZSBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxHZXREZWZhdWx0c1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2NvbmZpZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydjb25maWcnXSA9IF9JbnN0YWxsSW5zdGFsbENvbmZpZzJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2NvbmZpZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbENvbmZpZ30gY29uZmlnXG4gICAgKi9cbiAgICByZXR1cm4gSW5zdGFsbEdldERlZmF1bHRzUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbnN0YWxsR2V0RGVmYXVsdHNSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSW5zdGFsbENoZWNrUmVzdWx0ID0gcmVxdWlyZSgnLi9JbnN0YWxsQ2hlY2tSZXN1bHQnKTtcblxudmFyIF9JbnN0YWxsQ2hlY2tSZXN1bHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSW5zdGFsbENoZWNrUmVzdWx0KTtcblxuLyoqXG4qIFRoZSBJbnN0YWxsSW5zdGFsbENvbmZpZyBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSW5zdGFsbEluc3RhbGxDb25maWdcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSW5zdGFsbEluc3RhbGxDb25maWcgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JbnN0YWxsSW5zdGFsbENvbmZpZzwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsQ29uZmlnXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSW5zdGFsbEluc3RhbGxDb25maWcoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnN0YWxsSW5zdGFsbENvbmZpZyk7XG5cbiAgICAgICAgdGhpcy5pbnRlcm5hbFVybCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYkNvbm5lY3Rpb25UeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRiVENQSG9zdG5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGJUQ1BQb3J0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRiVENQTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYlRDUFVzZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGJUQ1BQYXNzd29yZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYlNvY2tldEZpbGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZGJTb2NrZXROYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRiU29ja2V0VXNlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kYlNvY2tldFBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRiTWFudWFsRFNOID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRzTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5kc1BvcnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZHNGb2xkZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxNaWNybyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5leHRlcm5hbEdhdGV3YXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxXZWJzb2NrZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxGcm9udFBsdWdpbnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxEQVYgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxXT1BJID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmV4dGVybmFsRGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmV4dGVybmFsRGV4SUQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZXh0ZXJuYWxEZXhTZWNyZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZnJvbnRlbmRIb3N0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5mcm9udGVuZExvZ2luID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmZyb250ZW5kUGFzc3dvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZnJvbnRlbmRSZXBlYXRQYXNzd29yZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5mcm9udGVuZEFwcGxpY2F0aW9uVGl0bGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuZnJvbnRlbmREZWZhdWx0TGFuZ3VhZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubGljZW5zZVJlcXVpcmVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmxpY2Vuc2VTdHJpbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ2hlY2tSZXN1bHRzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkluc3RhbGxJbnN0YWxsQ29uZmlnPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbENvbmZpZ30gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsQ29uZmlnfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkluc3RhbGxJbnN0YWxsQ29uZmlnPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSW5zdGFsbEluc3RhbGxDb25maWcuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEluc3RhbGxJbnN0YWxsQ29uZmlnKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdpbnRlcm5hbFVybCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydpbnRlcm5hbFVybCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2ludGVybmFsVXJsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYkNvbm5lY3Rpb25UeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2RiQ29ubmVjdGlvblR5cGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYkNvbm5lY3Rpb25UeXBlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlRDUEhvc3RuYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2RiVENQSG9zdG5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlRDUEhvc3RuYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlRDUFBvcnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJUQ1BQb3J0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGJUQ1BQb3J0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlRDUE5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJUQ1BOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGJUQ1BOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlRDUFVzZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJUQ1BVc2VyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGJUQ1BVc2VyJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlRDUFBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2RiVENQUGFzc3dvcmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlRDUFBhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlNvY2tldEZpbGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJTb2NrZXRGaWxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGJTb2NrZXRGaWxlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlNvY2tldE5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJTb2NrZXROYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGJTb2NrZXROYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlNvY2tldFVzZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZGJTb2NrZXRVc2VyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZGJTb2NrZXRVc2VyJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYlNvY2tldFBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2RiU29ja2V0UGFzc3dvcmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydkYlNvY2tldFBhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkYk1hbnVhbERTTicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkYk1hbnVhbERTTiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2RiTWFudWFsRFNOJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkc05hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZHNOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZHNOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkc1BvcnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZHNQb3J0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZHNQb3J0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdkc0ZvbGRlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydkc0ZvbGRlciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2RzRm9sZGVyJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbE1pY3JvJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2V4dGVybmFsTWljcm8nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydleHRlcm5hbE1pY3JvJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbEdhdGV3YXknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZXh0ZXJuYWxHYXRld2F5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZXh0ZXJuYWxHYXRld2F5J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbFdlYnNvY2tldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydleHRlcm5hbFdlYnNvY2tldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2V4dGVybmFsV2Vic29ja2V0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbEZyb250UGx1Z2lucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydleHRlcm5hbEZyb250UGx1Z2lucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2V4dGVybmFsRnJvbnRQbHVnaW5zJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbERBVicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydleHRlcm5hbERBViddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2V4dGVybmFsREFWJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbFdPUEknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZXh0ZXJuYWxXT1BJJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZXh0ZXJuYWxXT1BJJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbERleCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydleHRlcm5hbERleCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2V4dGVybmFsRGV4J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbERleElEJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2V4dGVybmFsRGV4SUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydleHRlcm5hbERleElEJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdleHRlcm5hbERleFNlY3JldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydleHRlcm5hbERleFNlY3JldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2V4dGVybmFsRGV4U2VjcmV0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmcm9udGVuZEhvc3RzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Zyb250ZW5kSG9zdHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydmcm9udGVuZEhvc3RzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmcm9udGVuZExvZ2luJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Zyb250ZW5kTG9naW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydmcm9udGVuZExvZ2luJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmcm9udGVuZFBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Zyb250ZW5kUGFzc3dvcmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydmcm9udGVuZFBhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmcm9udGVuZFJlcGVhdFBhc3N3b3JkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2Zyb250ZW5kUmVwZWF0UGFzc3dvcmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydmcm9udGVuZFJlcGVhdFBhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmcm9udGVuZEFwcGxpY2F0aW9uVGl0bGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZnJvbnRlbmRBcHBsaWNhdGlvblRpdGxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZnJvbnRlbmRBcHBsaWNhdGlvblRpdGxlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdmcm9udGVuZERlZmF1bHRMYW5ndWFnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydmcm9udGVuZERlZmF1bHRMYW5ndWFnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2Zyb250ZW5kRGVmYXVsdExhbmd1YWdlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdsaWNlbnNlUmVxdWlyZWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnbGljZW5zZVJlcXVpcmVkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbGljZW5zZVJlcXVpcmVkJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbGljZW5zZVN0cmluZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydsaWNlbnNlU3RyaW5nJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbGljZW5zZVN0cmluZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2hlY2tSZXN1bHRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NoZWNrUmVzdWx0cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NoZWNrUmVzdWx0cyddLCBbX0luc3RhbGxDaGVja1Jlc3VsdDJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBpbnRlcm5hbFVybFxuICAgICovXG4gICAgcmV0dXJuIEluc3RhbGxJbnN0YWxsQ29uZmlnO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSW5zdGFsbEluc3RhbGxDb25maWc7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJDb25uZWN0aW9uVHlwZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJUQ1BIb3N0bmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJUQ1BQb3J0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYlRDUE5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGRiVENQVXNlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJUQ1BQYXNzd29yZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJTb2NrZXRGaWxlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkYlNvY2tldE5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGRiU29ja2V0VXNlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJTb2NrZXRQYXNzd29yZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZGJNYW51YWxEU05cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGRzTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZHNQb3J0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBkc0ZvbGRlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZXh0ZXJuYWxNaWNyb1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZXh0ZXJuYWxHYXRld2F5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBleHRlcm5hbFdlYnNvY2tldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZXh0ZXJuYWxGcm9udFBsdWdpbnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGV4dGVybmFsREFWXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBleHRlcm5hbFdPUElcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGV4dGVybmFsRGV4XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBleHRlcm5hbERleElEXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBleHRlcm5hbERleFNlY3JldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZnJvbnRlbmRIb3N0c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZnJvbnRlbmRMb2dpblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZnJvbnRlbmRQYXNzd29yZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZnJvbnRlbmRSZXBlYXRQYXNzd29yZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gZnJvbnRlbmRBcHBsaWNhdGlvblRpdGxlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBmcm9udGVuZERlZmF1bHRMYW5ndWFnZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IGxpY2Vuc2VSZXF1aXJlZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gbGljZW5zZVN0cmluZ1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSW5zdGFsbENoZWNrUmVzdWx0Pn0gQ2hlY2tSZXN1bHRzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSW5zdGFsbEluc3RhbGxDb25maWcgPSByZXF1aXJlKCcuL0luc3RhbGxJbnN0YWxsQ29uZmlnJyk7XG5cbnZhciBfSW5zdGFsbEluc3RhbGxDb25maWcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSW5zdGFsbEluc3RhbGxDb25maWcpO1xuXG4vKipcbiogVGhlIEluc3RhbGxJbnN0YWxsUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSW5zdGFsbEluc3RhbGxSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEluc3RhbGxJbnN0YWxsUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkluc3RhbGxJbnN0YWxsUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEluc3RhbGxJbnN0YWxsUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluc3RhbGxJbnN0YWxsUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SW5zdGFsbEluc3RhbGxSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbFJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbFJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SW5zdGFsbEluc3RhbGxSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSW5zdGFsbEluc3RhbGxSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBJbnN0YWxsSW5zdGFsbFJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2NvbmZpZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydjb25maWcnXSA9IF9JbnN0YWxsSW5zdGFsbENvbmZpZzJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ2NvbmZpZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9JbnN0YWxsSW5zdGFsbENvbmZpZ30gY29uZmlnXG4gICAgKi9cbiAgICByZXR1cm4gSW5zdGFsbEluc3RhbGxSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSW5zdGFsbEluc3RhbGxSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBJbnN0YWxsSW5zdGFsbFJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JbnN0YWxsSW5zdGFsbFJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEluc3RhbGxJbnN0YWxsUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5JbnN0YWxsSW5zdGFsbFJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEluc3RhbGxJbnN0YWxsUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnN0YWxsSW5zdGFsbFJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLnN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SW5zdGFsbEluc3RhbGxSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0luc3RhbGxJbnN0YWxsUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+SW5zdGFsbEluc3RhbGxSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEluc3RhbGxJbnN0YWxsUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEluc3RhbGxJbnN0YWxsUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IHN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBJbnN0YWxsSW5zdGFsbFJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSW5zdGFsbEluc3RhbGxSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSW5zdGFsbEluc3RhbGxDb25maWcgPSByZXF1aXJlKCcuL0luc3RhbGxJbnN0YWxsQ29uZmlnJyk7XG5cbnZhciBfSW5zdGFsbEluc3RhbGxDb25maWcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSW5zdGFsbEluc3RhbGxDb25maWcpO1xuXG4vKipcbiogVGhlIEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29uZmlnID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSW5zdGFsbFBlcmZvcm1DaGVja1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb25maWcnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29uZmlnJ10gPSBfSW5zdGFsbEluc3RhbGxDb25maWcyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydDb25maWcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVcbiAgICAqL1xuICAgIHJldHVybiBJbnN0YWxsUGVyZm9ybUNoZWNrUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEluc3RhbGxQZXJmb3JtQ2hlY2tSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSW5zdGFsbEluc3RhbGxDb25maWd9IENvbmZpZ1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0luc3RhbGxDaGVja1Jlc3VsdCA9IHJlcXVpcmUoJy4vSW5zdGFsbENoZWNrUmVzdWx0Jyk7XG5cbnZhciBfSW5zdGFsbENoZWNrUmVzdWx0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0luc3RhbGxDaGVja1Jlc3VsdCk7XG5cbi8qKlxuKiBUaGUgSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+SW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSW5zdGFsbFBlcmZvcm1DaGVja1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0luc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5JbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBJbnN0YWxsUGVyZm9ybUNoZWNrUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzdWx0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc3VsdCddID0gX0luc3RhbGxDaGVja1Jlc3VsdDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1Jlc3VsdCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9JbnN0YWxsQ2hlY2tSZXN1bHR9IFJlc3VsdFxuICAgICovXG4gICAgcmV0dXJuIEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEluc3RhbGxQZXJmb3JtQ2hlY2tSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSm9ic05vZGVzU2VsZWN0b3IgPSByZXF1aXJlKCcuL0pvYnNOb2Rlc1NlbGVjdG9yJyk7XG5cbnZhciBfSm9ic05vZGVzU2VsZWN0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic05vZGVzU2VsZWN0b3IpO1xuXG52YXIgX0pvYnNTb3VyY2VGaWx0ZXIgPSByZXF1aXJlKCcuL0pvYnNTb3VyY2VGaWx0ZXInKTtcblxudmFyIF9Kb2JzU291cmNlRmlsdGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNTb3VyY2VGaWx0ZXIpO1xuXG52YXIgX0pvYnNVc2Vyc1NlbGVjdG9yID0gcmVxdWlyZSgnLi9Kb2JzVXNlcnNTZWxlY3RvcicpO1xuXG52YXIgX0pvYnNVc2Vyc1NlbGVjdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNVc2Vyc1NlbGVjdG9yKTtcblxuLyoqXG4qIFRoZSBKb2JzQWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzQWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNBY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzQWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0FjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNBY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzQWN0aW9uKTtcblxuICAgICAgICB0aGlzLklEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVzU2VsZWN0b3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlcnNTZWxlY3RvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2Rlc0ZpbHRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2Vyc0ZpbHRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Tb3VyY2VGaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGFyYW1ldGVycyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DaGFpbmVkQWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzQWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzQWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic0FjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSm9ic0FjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZXNTZWxlY3RvcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2Rlc1NlbGVjdG9yJ10gPSBfSm9ic05vZGVzU2VsZWN0b3IyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydOb2Rlc1NlbGVjdG9yJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJzU2VsZWN0b3InKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlcnNTZWxlY3RvciddID0gX0pvYnNVc2Vyc1NlbGVjdG9yMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnVXNlcnNTZWxlY3RvciddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2Rlc0ZpbHRlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2Rlc0ZpbHRlciddID0gX0pvYnNOb2Rlc1NlbGVjdG9yMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnTm9kZXNGaWx0ZXInXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlcnNGaWx0ZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlcnNGaWx0ZXInXSA9IF9Kb2JzVXNlcnNTZWxlY3RvcjJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1VzZXJzRmlsdGVyJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NvdXJjZUZpbHRlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTb3VyY2VGaWx0ZXInXSA9IF9Kb2JzU291cmNlRmlsdGVyMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnU291cmNlRmlsdGVyJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhcmFtZXRlcnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGFyYW1ldGVycyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhcmFtZXRlcnMnXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2hhaW5lZEFjdGlvbnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2hhaW5lZEFjdGlvbnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDaGFpbmVkQWN0aW9ucyddLCBbSm9ic0FjdGlvbl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBJRFxuICAgICovXG4gICAgcmV0dXJuIEpvYnNBY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzQWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic05vZGVzU2VsZWN0b3J9IE5vZGVzU2VsZWN0b3JcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic1VzZXJzU2VsZWN0b3J9IFVzZXJzU2VsZWN0b3JcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic05vZGVzU2VsZWN0b3J9IE5vZGVzRmlsdGVyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0pvYnNVc2Vyc1NlbGVjdG9yfSBVc2Vyc0ZpbHRlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzU291cmNlRmlsdGVyfSBTb3VyY2VGaWx0ZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gUGFyYW1ldGVyc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSm9ic0FjdGlvbj59IENoYWluZWRBY3Rpb25zXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSm9ic0FjdGlvbiA9IHJlcXVpcmUoJy4vSm9ic0FjdGlvbicpO1xuXG52YXIgX0pvYnNBY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic0FjdGlvbik7XG5cbnZhciBfSm9ic0FjdGlvbk1lc3NhZ2UgPSByZXF1aXJlKCcuL0pvYnNBY3Rpb25NZXNzYWdlJyk7XG5cbnZhciBfSm9ic0FjdGlvbk1lc3NhZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSm9ic0FjdGlvbk1lc3NhZ2UpO1xuXG4vKipcbiogVGhlIEpvYnNBY3Rpb25Mb2cgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNBY3Rpb25Mb2dcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic0FjdGlvbkxvZyA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNBY3Rpb25Mb2c8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzQWN0aW9uTG9nXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic0FjdGlvbkxvZygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNBY3Rpb25Mb2cpO1xuXG4gICAgICAgIHRoaXMuQWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklucHV0TWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PdXRwdXRNZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNBY3Rpb25Mb2c8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25Mb2d9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9uTG9nfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNBY3Rpb25Mb2c8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzQWN0aW9uTG9nLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzQWN0aW9uTG9nKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBY3Rpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWN0aW9uJ10gPSBfSm9ic0FjdGlvbjJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0FjdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJbnB1dE1lc3NhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSW5wdXRNZXNzYWdlJ10gPSBfSm9ic0FjdGlvbk1lc3NhZ2UyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydJbnB1dE1lc3NhZ2UnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3V0cHV0TWVzc2FnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPdXRwdXRNZXNzYWdlJ10gPSBfSm9ic0FjdGlvbk1lc3NhZ2UyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydPdXRwdXRNZXNzYWdlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb259IEFjdGlvblxuICAgICovXG4gICAgcmV0dXJuIEpvYnNBY3Rpb25Mb2c7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzQWN0aW9uTG9nO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbk1lc3NhZ2V9IElucHV0TWVzc2FnZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9uTWVzc2FnZX0gT3V0cHV0TWVzc2FnZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0FjdGl2aXR5T2JqZWN0ID0gcmVxdWlyZSgnLi9BY3Rpdml0eU9iamVjdCcpO1xuXG52YXIgX0FjdGl2aXR5T2JqZWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FjdGl2aXR5T2JqZWN0KTtcblxudmFyIF9JZG1Vc2VyID0gcmVxdWlyZSgnLi9JZG1Vc2VyJyk7XG5cbnZhciBfSWRtVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyKTtcblxudmFyIF9Kb2JzQWN0aW9uT3V0cHV0ID0gcmVxdWlyZSgnLi9Kb2JzQWN0aW9uT3V0cHV0Jyk7XG5cbnZhciBfSm9ic0FjdGlvbk91dHB1dDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Kb2JzQWN0aW9uT3V0cHV0KTtcblxudmFyIF9Qcm90b2J1ZkFueSA9IHJlcXVpcmUoJy4vUHJvdG9idWZBbnknKTtcblxudmFyIF9Qcm90b2J1ZkFueTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Qcm90b2J1ZkFueSk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIEpvYnNBY3Rpb25NZXNzYWdlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzQWN0aW9uTWVzc2FnZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzQWN0aW9uTWVzc2FnZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNBY3Rpb25NZXNzYWdlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0FjdGlvbk1lc3NhZ2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzQWN0aW9uTWVzc2FnZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNBY3Rpb25NZXNzYWdlKTtcblxuICAgICAgICB0aGlzLkV2ZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVzZXJzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFjdGl2aXRpZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3V0cHV0Q2hhaW4gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Sm9ic0FjdGlvbk1lc3NhZ2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25NZXNzYWdlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic0FjdGlvbk1lc3NhZ2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+Sm9ic0FjdGlvbk1lc3NhZ2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzQWN0aW9uTWVzc2FnZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSm9ic0FjdGlvbk1lc3NhZ2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0V2ZW50JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0V2ZW50J10gPSBfUHJvdG9idWZBbnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydFdmVudCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VycycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2VycyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJzJ10sIFtfSWRtVXNlcjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FjdGl2aXRpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWN0aXZpdGllcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FjdGl2aXRpZXMnXSwgW19BY3Rpdml0eU9iamVjdDJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ091dHB1dENoYWluJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ091dHB1dENoYWluJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT3V0cHV0Q2hhaW4nXSwgW19Kb2JzQWN0aW9uT3V0cHV0MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUHJvdG9idWZBbnl9IEV2ZW50XG4gICAgKi9cbiAgICByZXR1cm4gSm9ic0FjdGlvbk1lc3NhZ2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzQWN0aW9uTWVzc2FnZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IE5vZGVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Vc2VyPn0gVXNlcnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0FjdGl2aXR5T2JqZWN0Pn0gQWN0aXZpdGllc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSm9ic0FjdGlvbk91dHB1dD59IE91dHB1dENoYWluXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgSm9ic0FjdGlvbk91dHB1dCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSm9ic0FjdGlvbk91dHB1dFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzQWN0aW9uT3V0cHV0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic0FjdGlvbk91dHB1dDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25PdXRwdXRcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzQWN0aW9uT3V0cHV0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic0FjdGlvbk91dHB1dCk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJhd0JvZHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RyaW5nQm9keSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Kc29uQm9keSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FcnJvclN0cmluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5JZ25vcmVkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNBY3Rpb25PdXRwdXQ8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNBY3Rpb25PdXRwdXR9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzQWN0aW9uT3V0cHV0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNBY3Rpb25PdXRwdXQ8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzQWN0aW9uT3V0cHV0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzQWN0aW9uT3V0cHV0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmF3Qm9keScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSYXdCb2R5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmF3Qm9keSddLCAnQmxvYicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N0cmluZ0JvZHknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RyaW5nQm9keSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N0cmluZ0JvZHknXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0pzb25Cb2R5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pzb25Cb2R5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSnNvbkJvZHknXSwgJ0Jsb2InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFcnJvclN0cmluZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFcnJvclN0cmluZyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Vycm9yU3RyaW5nJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdJZ25vcmVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lnbm9yZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJZ25vcmVkJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gSm9ic0FjdGlvbk91dHB1dDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNBY3Rpb25PdXRwdXQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0Jsb2J9IFJhd0JvZHlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFN0cmluZ0JvZHlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCbG9ifSBKc29uQm9keVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRXJyb3JTdHJpbmdcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBJZ25vcmVkXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIEpvYnNDb21tYW5kLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBKb2JzQ29tbWFuZCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSm9ic0NvbW1hbmQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzQ29tbWFuZCk7XG5cbiAgICAgICAgdGhpcy5Ob25lID0gXCJOb25lXCI7XG4gICAgICAgIHRoaXMuUGF1c2UgPSBcIlBhdXNlXCI7XG4gICAgICAgIHRoaXMuUmVzdW1lID0gXCJSZXN1bWVcIjtcbiAgICAgICAgdGhpcy5TdG9wID0gXCJTdG9wXCI7XG4gICAgICAgIHRoaXMuRGVsZXRlID0gXCJEZWxldGVcIjtcbiAgICAgICAgdGhpcy5SdW5PbmNlID0gXCJSdW5PbmNlXCI7XG4gICAgICAgIHRoaXMuSW5hY3RpdmUgPSBcIkluYWN0aXZlXCI7XG4gICAgICAgIHRoaXMuQWN0aXZlID0gXCJBY3RpdmVcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5Kb2JzQ29tbWFuZDwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNDb21tYW5kfSBUaGUgZW51bSA8Y29kZT5Kb2JzQ29tbWFuZDwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIEpvYnNDb21tYW5kLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gSm9ic0NvbW1hbmQ7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEpvYnNDb21tYW5kO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJOb25lXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUGF1c2VcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJSZXN1bWVcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJTdG9wXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRGVsZXRlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUnVuT25jZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkluYWN0aXZlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQWN0aXZlXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9Kb2JzQ29tbWFuZCA9IHJlcXVpcmUoJy4vSm9ic0NvbW1hbmQnKTtcblxudmFyIF9Kb2JzQ29tbWFuZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Kb2JzQ29tbWFuZCk7XG5cbi8qKlxuKiBUaGUgSm9ic0N0cmxDb21tYW5kIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzQ3RybENvbW1hbmRcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic0N0cmxDb21tYW5kID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic0N0cmxDb21tYW5kPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic0N0cmxDb21tYW5kKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic0N0cmxDb21tYW5kKTtcblxuICAgICAgICB0aGlzLkNtZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Kb2JJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UYXNrSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3duZXJJZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzQ3RybENvbW1hbmQ8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNDdHJsQ29tbWFuZH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNDdHJsQ29tbWFuZH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzQ3RybENvbW1hbmQ8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzQ3RybENvbW1hbmQuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNDdHJsQ29tbWFuZCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ21kJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NtZCddID0gX0pvYnNDb21tYW5kMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnQ21kJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0pvYklkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pvYklkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSm9iSWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Rhc2tJZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUYXNrSWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUYXNrSWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ093bmVySWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3duZXJJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ093bmVySWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0pvYnNDb21tYW5kfSBDbWRcbiAgICAqL1xuICAgIHJldHVybiBKb2JzQ3RybENvbW1hbmQ7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzQ3RybENvbW1hbmQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSm9iSWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFRhc2tJZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT3duZXJJZFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzQ3RybENvbW1hbmRSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzQ3RybENvbW1hbmRSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzQ3RybENvbW1hbmRSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLk1zZyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzQ3RybENvbW1hbmRSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic0N0cmxDb21tYW5kUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzQ3RybENvbW1hbmRSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzQ3RybENvbW1hbmRSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzQ3RybENvbW1hbmRSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTXNnJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01zZyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01zZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IE1zZ1xuICAgICovXG4gICAgcmV0dXJuIEpvYnNDdHJsQ29tbWFuZFJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic0N0cmxDb21tYW5kUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0pvYnNUYXNrU3RhdHVzID0gcmVxdWlyZSgnLi9Kb2JzVGFza1N0YXR1cycpO1xuXG52YXIgX0pvYnNUYXNrU3RhdHVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNUYXNrU3RhdHVzKTtcblxuLyoqXG4qIFRoZSBKb2JzRGVsZXRlVGFza3NSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNEZWxldGVUYXNrc1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNEZWxldGVUYXNrc1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzRGVsZXRlVGFza3NSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLkpvYklkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRhc2tJRCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUHJ1bmVMaW1pdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzRGVsZXRlVGFza3NSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSm9iSWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSm9iSWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKb2JJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGFza0lEJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Rhc2tJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Rhc2tJRCddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdGF0dXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RhdHVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3RhdHVzJ10sIFtfSm9ic1Rhc2tTdGF0dXMyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQcnVuZUxpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BydW5lTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQcnVuZUxpbWl0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSm9iSWRcbiAgICAqL1xuICAgIHJldHVybiBKb2JzRGVsZXRlVGFza3NSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic0RlbGV0ZVRhc2tzUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IFRhc2tJRFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSm9ic1Rhc2tTdGF0dXM+fSBTdGF0dXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFBydW5lTGltaXRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBKb2JzRGVsZXRlVGFza3NSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzRGVsZXRlVGFza3NSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0pvYnNEZWxldGVUYXNrc1Jlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzRGVsZXRlVGFza3NSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5EZWxldGVkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzRGVsZXRlVGFza3NSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNEZWxldGVUYXNrc1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic0RlbGV0ZVRhc2tzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZWxldGVkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0RlbGV0ZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZWxldGVkJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IERlbGV0ZWRcbiAgICAqL1xuICAgIHJldHVybiBKb2JzRGVsZXRlVGFza3NSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNEZWxldGVUYXNrc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9Kb2JzQWN0aW9uID0gcmVxdWlyZSgnLi9Kb2JzQWN0aW9uJyk7XG5cbnZhciBfSm9ic0FjdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Kb2JzQWN0aW9uKTtcblxudmFyIF9Kb2JzU2NoZWR1bGUgPSByZXF1aXJlKCcuL0pvYnNTY2hlZHVsZScpO1xuXG52YXIgX0pvYnNTY2hlZHVsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Kb2JzU2NoZWR1bGUpO1xuXG52YXIgX0pvYnNUYXNrID0gcmVxdWlyZSgnLi9Kb2JzVGFzaycpO1xuXG52YXIgX0pvYnNUYXNrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNUYXNrKTtcblxuLyoqXG4qIFRoZSBKb2JzSm9iIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzSm9iXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNKb2IgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzSm9iPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic0pvYlxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNKb2IoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzSm9iKTtcblxuICAgICAgICB0aGlzLklEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk93bmVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkluYWN0aXZlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhbmd1YWdlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FdmVudE5hbWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNjaGVkdWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF1dG9TdGFydCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BdXRvQ2xlYW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NYXhDb25jdXJyZW5jeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UYXNrc1NpbGVudFVwZGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UYXNrcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzSm9iPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzSm9ifSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic0pvYn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzSm9iPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic0pvYi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSm9ic0pvYigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3duZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3duZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPd25lciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSW5hY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSW5hY3RpdmUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJbmFjdGl2ZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhbmd1YWdlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYW5ndWFnZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYW5ndWFnZXMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRXZlbnROYW1lcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFdmVudE5hbWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRXZlbnROYW1lcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTY2hlZHVsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTY2hlZHVsZSddID0gX0pvYnNTY2hlZHVsZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1NjaGVkdWxlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0F1dG9TdGFydCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBdXRvU3RhcnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdXRvU3RhcnQnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBdXRvQ2xlYW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQXV0b0NsZWFuJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXV0b0NsZWFuJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWN0aW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBY3Rpb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWN0aW9ucyddLCBbX0pvYnNBY3Rpb24yWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNYXhDb25jdXJyZW5jeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNYXhDb25jdXJyZW5jeSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01heENvbmN1cnJlbmN5J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUYXNrc1NpbGVudFVwZGF0ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUYXNrc1NpbGVudFVwZGF0ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Rhc2tzU2lsZW50VXBkYXRlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGFza3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGFza3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUYXNrcyddLCBbX0pvYnNUYXNrMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IElEXG4gICAgKi9cbiAgICByZXR1cm4gSm9ic0pvYjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNKb2I7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE93bmVyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSW5hY3RpdmVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gTGFuZ3VhZ2VzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IEV2ZW50TmFtZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic1NjaGVkdWxlfSBTY2hlZHVsZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEF1dG9TdGFydFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEF1dG9DbGVhblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSm9ic0FjdGlvbj59IEFjdGlvbnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IE1heENvbmN1cnJlbmN5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gVGFza3NTaWxlbnRVcGRhdGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0pvYnNUYXNrPn0gVGFza3NcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9Kb2JzVGFza1N0YXR1cyA9IHJlcXVpcmUoJy4vSm9ic1Rhc2tTdGF0dXMnKTtcblxudmFyIF9Kb2JzVGFza1N0YXR1czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Kb2JzVGFza1N0YXR1cyk7XG5cbi8qKlxuKiBUaGUgSm9ic0xpc3RKb2JzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSm9ic0xpc3RKb2JzUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzTGlzdEpvYnNSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic0xpc3RKb2JzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0pvYnNMaXN0Sm9ic1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzTGlzdEpvYnNSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic0xpc3RKb2JzUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Pd25lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FdmVudHNPbmx5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRpbWVyc09ubHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTG9hZFRhc2tzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkpvYnNMaXN0Sm9ic1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNMaXN0Sm9ic1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzTGlzdEpvYnNSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPkpvYnNMaXN0Sm9ic1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzTGlzdEpvYnNSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzTGlzdEpvYnNSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPd25lcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPd25lciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ093bmVyJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFdmVudHNPbmx5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0V2ZW50c09ubHknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFdmVudHNPbmx5J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGltZXJzT25seScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUaW1lcnNPbmx5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGltZXJzT25seSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xvYWRUYXNrcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMb2FkVGFza3MnXSA9IF9Kb2JzVGFza1N0YXR1czJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0xvYWRUYXNrcyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gT3duZXJcbiAgICAqL1xuICAgIHJldHVybiBKb2JzTGlzdEpvYnNSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic0xpc3RKb2JzUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gRXZlbnRzT25seVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFRpbWVyc09ubHlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvSm9ic1Rhc2tTdGF0dXN9IExvYWRUYXNrc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1NlcnZpY2VRdWVyeSA9IHJlcXVpcmUoJy4vU2VydmljZVF1ZXJ5Jyk7XG5cbnZhciBfU2VydmljZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VRdWVyeSk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIEpvYnNOb2Rlc1NlbGVjdG9yIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzTm9kZXNTZWxlY3RvclxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzTm9kZXNTZWxlY3RvciA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkpvYnNOb2Rlc1NlbGVjdG9yPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic05vZGVzU2VsZWN0b3JcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzTm9kZXNTZWxlY3RvcigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEpvYnNOb2Rlc1NlbGVjdG9yKTtcblxuICAgICAgICB0aGlzLkFsbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5QYXRoZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29sbGVjdCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzTm9kZXNTZWxlY3RvcjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic05vZGVzU2VsZWN0b3J9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzTm9kZXNTZWxlY3Rvcn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzTm9kZXNTZWxlY3RvcjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNOb2Rlc1NlbGVjdG9yLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzTm9kZXNTZWxlY3RvcigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWxsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FsbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0FsbCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhdGhlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYXRoZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYXRoZXMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlcyddLCBbX1RyZWVOb2RlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUXVlcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUXVlcnknXSA9IF9TZXJ2aWNlUXVlcnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydRdWVyeSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb2xsZWN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbGxlY3QnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb2xsZWN0J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBBbGxcbiAgICAqL1xuICAgIHJldHVybiBKb2JzTm9kZXNTZWxlY3Rvcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNOb2Rlc1NlbGVjdG9yO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gUGF0aGVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IE5vZGVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1NlcnZpY2VRdWVyeX0gUXVlcnlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBDb2xsZWN0XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgSm9ic1NjaGVkdWxlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9Kb2JzU2NoZWR1bGVcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic1NjaGVkdWxlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic1NjaGVkdWxlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvSm9ic1NjaGVkdWxlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic1NjaGVkdWxlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic1NjaGVkdWxlKTtcblxuICAgICAgICB0aGlzLklzbzg2MDFTY2hlZHVsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Jc284NjAxTWluRGVsdGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Sm9ic1NjaGVkdWxlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzU2NoZWR1bGV9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzU2NoZWR1bGV9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+Sm9ic1NjaGVkdWxlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic1NjaGVkdWxlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzU2NoZWR1bGUoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lzbzg2MDFTY2hlZHVsZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJc284NjAxU2NoZWR1bGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJc284NjAxU2NoZWR1bGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lzbzg2MDFNaW5EZWx0YScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJc284NjAxTWluRGVsdGEnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJc284NjAxTWluRGVsdGEnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogSVNPIDg2MDEgRGVzY3JpcHRpb24gb2YgdGhlIHNjaGVkdWxpbmcgZm9yIGluc3RhbmNlIFxcXCJSMi8yMDE1LTA2LTA0VDE5OjI1OjE2LjgyODY5Ni0wNzowMC9QVDRTXFxcIiB3aGVyZSBmaXJzdCBwYXJ0IGlzIHRoZSBudW1iZXIgb2YgcmVwZXRpdGlvbnMgKGlmIDAsIGluZmluaXRlIHJlcGV0aXRpb24pLCAgc2Vjb25kIHBhcnQgdGhlIHN0YXJ0aW5nIGRhdGUgYW5kIGxhc3QgcGFydCwgdGhlIGR1cmF0aW9uIGJldHdlZW4gMiBvY2N1cnJlbmNlcy5cbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSXNvODYwMVNjaGVkdWxlXG4gICAgKi9cbiAgICByZXR1cm4gSm9ic1NjaGVkdWxlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSm9ic1NjaGVkdWxlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IElzbzg2MDFNaW5EZWx0YVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1NlcnZpY2VRdWVyeSA9IHJlcXVpcmUoJy4vU2VydmljZVF1ZXJ5Jyk7XG5cbnZhciBfU2VydmljZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VRdWVyeSk7XG5cbi8qKlxuKiBUaGUgSm9ic1NvdXJjZUZpbHRlciBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSm9ic1NvdXJjZUZpbHRlclxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBKb2JzU291cmNlRmlsdGVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic1NvdXJjZUZpbHRlcjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0pvYnNTb3VyY2VGaWx0ZXJcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBKb2JzU291cmNlRmlsdGVyKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic1NvdXJjZUZpbHRlcik7XG5cbiAgICAgICAgdGhpcy5RdWVyeSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzU291cmNlRmlsdGVyPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9Kb2JzU291cmNlRmlsdGVyfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic1NvdXJjZUZpbHRlcn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzU291cmNlRmlsdGVyPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgSm9ic1NvdXJjZUZpbHRlci5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSm9ic1NvdXJjZUZpbHRlcigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUXVlcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUXVlcnknXSA9IF9TZXJ2aWNlUXVlcnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydRdWVyeSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9TZXJ2aWNlUXVlcnl9IFF1ZXJ5XG4gICAgKi9cbiAgICByZXR1cm4gSm9ic1NvdXJjZUZpbHRlcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEpvYnNTb3VyY2VGaWx0ZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0pvYnNBY3Rpb25Mb2cgPSByZXF1aXJlKCcuL0pvYnNBY3Rpb25Mb2cnKTtcblxudmFyIF9Kb2JzQWN0aW9uTG9nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNBY3Rpb25Mb2cpO1xuXG52YXIgX0pvYnNUYXNrU3RhdHVzID0gcmVxdWlyZSgnLi9Kb2JzVGFza1N0YXR1cycpO1xuXG52YXIgX0pvYnNUYXNrU3RhdHVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNUYXNrU3RhdHVzKTtcblxuLyoqXG4qIFRoZSBKb2JzVGFzayBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvSm9ic1Rhc2tcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgSm9ic1Rhc2sgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Kb2JzVGFzazwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL0pvYnNUYXNrXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gSm9ic1Rhc2soKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzVGFzayk7XG5cbiAgICAgICAgdGhpcy5JRCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Kb2JJRCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RhdHVzTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UcmlnZ2VyT3duZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RhcnRUaW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkVuZFRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ2FuU3RvcCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DYW5QYXVzZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5IYXNQcm9ncmVzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qcm9ncmVzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BY3Rpb25zTG9ncyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Kb2JzVGFzazwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvSm9ic1Rhc2t9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9Kb2JzVGFza30gVGhlIHBvcHVsYXRlZCA8Y29kZT5Kb2JzVGFzazwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIEpvYnNUYXNrLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBKb2JzVGFzaygpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSm9iSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSm9iSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKb2JJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RhdHVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N0YXR1cyddID0gX0pvYnNUYXNrU3RhdHVzMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnU3RhdHVzJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N0YXR1c01lc3NhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RhdHVzTWVzc2FnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N0YXR1c01lc3NhZ2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RyaWdnZXJPd25lcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUcmlnZ2VyT3duZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUcmlnZ2VyT3duZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N0YXJ0VGltZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdGFydFRpbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdGFydFRpbWUnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0VuZFRpbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRW5kVGltZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0VuZFRpbWUnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NhblN0b3AnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2FuU3RvcCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NhblN0b3AnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDYW5QYXVzZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDYW5QYXVzZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NhblBhdXNlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSGFzUHJvZ3Jlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSGFzUHJvZ3Jlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydIYXNQcm9ncmVzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Byb2dyZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Byb2dyZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUHJvZ3Jlc3MnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FjdGlvbnNMb2dzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FjdGlvbnNMb2dzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWN0aW9uc0xvZ3MnXSwgW19Kb2JzQWN0aW9uTG9nMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IElEXG4gICAgKi9cbiAgICByZXR1cm4gSm9ic1Rhc2s7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzVGFzaztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBKb2JJRFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9Kb2JzVGFza1N0YXR1c30gU3RhdHVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBTdGF0dXNNZXNzYWdlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBUcmlnZ2VyT3duZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFN0YXJ0VGltZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gRW5kVGltZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IENhblN0b3BcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBDYW5QYXVzZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEhhc1Byb2dyZXNzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBQcm9ncmVzc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSm9ic0FjdGlvbkxvZz59IEFjdGlvbnNMb2dzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIEpvYnNUYXNrU3RhdHVzLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBKb2JzVGFza1N0YXR1cyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSm9ic1Rhc2tTdGF0dXMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBKb2JzVGFza1N0YXR1cyk7XG5cbiAgICAgICAgdGhpcy5Vbmtub3duID0gXCJVbmtub3duXCI7XG4gICAgICAgIHRoaXMuSWRsZSA9IFwiSWRsZVwiO1xuICAgICAgICB0aGlzLlJ1bm5pbmcgPSBcIlJ1bm5pbmdcIjtcbiAgICAgICAgdGhpcy5GaW5pc2hlZCA9IFwiRmluaXNoZWRcIjtcbiAgICAgICAgdGhpcy5JbnRlcnJ1cHRlZCA9IFwiSW50ZXJydXB0ZWRcIjtcbiAgICAgICAgdGhpcy5QYXVzZWQgPSBcIlBhdXNlZFwiO1xuICAgICAgICB0aGlzLkFueSA9IFwiQW55XCI7XG4gICAgICAgIHRoaXMuRXJyb3IgPSBcIkVycm9yXCI7XG4gICAgICAgIHRoaXMuUXVldWVkID0gXCJRdWV1ZWRcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5Kb2JzVGFza1N0YXR1czwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0pvYnNUYXNrU3RhdHVzfSBUaGUgZW51bSA8Y29kZT5Kb2JzVGFza1N0YXR1czwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIEpvYnNUYXNrU3RhdHVzLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gSm9ic1Rhc2tTdGF0dXM7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IEpvYnNUYXNrU3RhdHVzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJVbmtub3duXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiSWRsZVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlJ1bm5pbmdcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJGaW5pc2hlZFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkludGVycnVwdGVkXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUGF1c2VkXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQW55XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRXJyb3JcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJRdWV1ZWRcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVVzZXIgPSByZXF1aXJlKCcuL0lkbVVzZXInKTtcblxudmFyIF9JZG1Vc2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVVzZXIpO1xuXG52YXIgX1NlcnZpY2VRdWVyeSA9IHJlcXVpcmUoJy4vU2VydmljZVF1ZXJ5Jyk7XG5cbnZhciBfU2VydmljZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlcnZpY2VRdWVyeSk7XG5cbi8qKlxuKiBUaGUgSm9ic1VzZXJzU2VsZWN0b3IgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0pvYnNVc2Vyc1NlbGVjdG9yXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIEpvYnNVc2Vyc1NlbGVjdG9yID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+Sm9ic1VzZXJzU2VsZWN0b3I8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Kb2JzVXNlcnNTZWxlY3RvclxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIEpvYnNVc2Vyc1NlbGVjdG9yKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSm9ic1VzZXJzU2VsZWN0b3IpO1xuXG4gICAgICAgIHRoaXMuQWxsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVzZXJzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbGxlY3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Sm9ic1VzZXJzU2VsZWN0b3I8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0pvYnNVc2Vyc1NlbGVjdG9yfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvSm9ic1VzZXJzU2VsZWN0b3J9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+Sm9ic1VzZXJzU2VsZWN0b3I8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBKb2JzVXNlcnNTZWxlY3Rvci5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgSm9ic1VzZXJzU2VsZWN0b3IoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FsbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBbGwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBbGwnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VycycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2VycyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJzJ10sIFtfSWRtVXNlcjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1F1ZXJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1F1ZXJ5J10gPSBfU2VydmljZVF1ZXJ5MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUXVlcnknXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29sbGVjdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb2xsZWN0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ29sbGVjdCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gQWxsXG4gICAgKi9cbiAgICByZXR1cm4gSm9ic1VzZXJzU2VsZWN0b3I7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBKb2JzVXNlcnNTZWxlY3Rvcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Vc2VyPn0gVXNlcnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZVF1ZXJ5fSBRdWVyeVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IENvbGxlY3RcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIExpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBMaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0KTtcblxuICAgICAgICB0aGlzLkpTT04gPSBcIkpTT05cIjtcbiAgICAgICAgdGhpcy5DU1YgPSBcIkNTVlwiO1xuICAgICAgICB0aGlzLlhMU1ggPSBcIlhMU1hcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdDwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0xpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0fSBUaGUgZW51bSA8Y29kZT5MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdDwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIExpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQ7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IExpc3RMb2dSZXF1ZXN0TG9nRm9ybWF0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJKU09OXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQ1NWXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiWExTWFwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZS5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUpO1xuXG4gICAgICAgIHRoaXMuQU5ZID0gXCJBTllcIjtcbiAgICAgICAgdGhpcy5MSU5LUyA9IFwiTElOS1NcIjtcbiAgICAgICAgdGhpcy5DRUxMUyA9IFwiQ0VMTFNcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGV9IFRoZSBlbnVtIDxjb2RlPkxpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3RMaXN0U2hhcmVUeXBlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJBTllcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJMSU5LU1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkNFTExTXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0Q2VsbCA9IHJlcXVpcmUoJy4vUmVzdENlbGwnKTtcblxudmFyIF9SZXN0Q2VsbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0Q2VsbCk7XG5cbnZhciBfUmVzdFNoYXJlTGluayA9IHJlcXVpcmUoJy4vUmVzdFNoYXJlTGluaycpO1xuXG52YXIgX1Jlc3RTaGFyZUxpbmsyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFNoYXJlTGluayk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkxpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlKTtcblxuICAgICAgICB0aGlzLk5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGluayA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DZWxscyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlJ10gPSBfVHJlZU5vZGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydOb2RlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbmsnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGluayddID0gX1Jlc3RTaGFyZUxpbmsyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydMaW5rJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NlbGxzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NlbGxzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2VsbHMnXSwgW19SZXN0Q2VsbDJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlfSBOb2RlXG4gICAgKi9cbiAgICByZXR1cm4gTGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlU2hhcmVkUmVzb3VyY2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmt9IExpbmtcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1Jlc3RDZWxsPn0gQ2VsbHNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCA9IHJlcXVpcmUoJy4vTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXQnKTtcblxudmFyIF9MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdCk7XG5cbi8qKlxuKiBUaGUgTG9nTGlzdExvZ1JlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0xvZ0xpc3RMb2dSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIExvZ0xpc3RMb2dSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TG9nTGlzdExvZ1JlcXVlc3Q8L2NvZGU+LlxuICAgICogTGlzdExvZ1JlcXVlc3QgbGF1bmNoZXMgYSBwYXJhbWV0ZXJpc2VkIHF1ZXJ5IGluIHRoZSBsb2cgcmVwb3NpdG9yeSBhbmQgc3RyZWFtcyB0aGUgcmVzdWx0cy5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvTG9nTGlzdExvZ1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBMb2dMaXN0TG9nUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExvZ0xpc3RMb2dSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhZ2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU2l6ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Gb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+TG9nTGlzdExvZ1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL0xvZ0xpc3RMb2dSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvTG9nTGlzdExvZ1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+TG9nTGlzdExvZ1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBMb2dMaXN0TG9nUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgTG9nTGlzdExvZ1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1F1ZXJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1F1ZXJ5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUXVlcnknXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGFnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhZ2UnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NpemUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU2l6ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NpemUnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Zvcm1hdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydGb3JtYXQnXSA9IF9MaXN0TG9nUmVxdWVzdExvZ0Zvcm1hdDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0Zvcm1hdCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gUXVlcnlcbiAgICAqL1xuICAgIHJldHVybiBMb2dMaXN0TG9nUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IExvZ0xpc3RMb2dSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFBhZ2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFNpemVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvTGlzdExvZ1JlcXVlc3RMb2dGb3JtYXR9IEZvcm1hdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIExvZ0xvZ01lc3NhZ2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL0xvZ0xvZ01lc3NhZ2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgTG9nTG9nTWVzc2FnZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPkxvZ0xvZ01lc3NhZ2U8L2NvZGU+LlxuICAgICogTG9nTWVzc2FnZSBpcyB0aGUgZm9ybWF0IHVzZWQgdG8gdHJhbnNtaXQgbG9nIG1lc3NhZ2VzIHRvIGNsaWVudHMgdmlhIHRoZSBSRVNUIEFQSS5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvTG9nTG9nTWVzc2FnZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIExvZ0xvZ01lc3NhZ2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMb2dMb2dNZXNzYWdlKTtcblxuICAgICAgICB0aGlzLlRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxldmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxvZ2dlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Nc2cgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTXNnSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlck5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlclV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlByb2ZpbGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUm9sZVV1aWRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlbW90ZUFkZHJlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlckFnZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkh0dHBQcm90b2NvbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2RlVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2RlUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Xc1V1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuV3NTY29wZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TcGFuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TcGFuUGFyZW50VXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TcGFuUm9vdFV1aWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+TG9nTG9nTWVzc2FnZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvTG9nTG9nTWVzc2FnZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL0xvZ0xvZ01lc3NhZ2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+TG9nTG9nTWVzc2FnZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIExvZ0xvZ01lc3NhZ2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IExvZ0xvZ01lc3NhZ2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVHMnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xldmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xldmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGV2ZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xvZ2dlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMb2dnZXInXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMb2dnZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01zZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNc2cnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNc2cnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01zZ0lkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01zZ0lkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTXNnSWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlck5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VzZXJVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlclV1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0dyb3VwUGF0aCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydHcm91cFBhdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydHcm91cFBhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Byb2ZpbGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUHJvZmlsZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Byb2ZpbGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JvbGVVdWlkcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSb2xlVXVpZHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSb2xlVXVpZHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVtb3RlQWRkcmVzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZW1vdGVBZGRyZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmVtb3RlQWRkcmVzcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlckFnZW50JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJBZ2VudCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJBZ2VudCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSHR0cFByb3RvY29sJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0h0dHBQcm90b2NvbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0h0dHBQcm90b2NvbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZVV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZVV1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZVBhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZVBhdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV3NVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dzVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1dzVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV3NTY29wZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXc1Njb3BlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV3NTY29wZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3BhblV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3BhblV1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTcGFuVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3BhblBhcmVudFV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3BhblBhcmVudFV1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTcGFuUGFyZW50VXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3BhblJvb3RVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NwYW5Sb290VXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NwYW5Sb290VXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtOdW1iZXJ9IFRzXG4gICAgKi9cbiAgICByZXR1cm4gTG9nTG9nTWVzc2FnZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IExvZ0xvZ01lc3NhZ2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGV2ZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExvZ2dlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTXNnXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNc2dJZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVXNlck5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFVzZXJVdWlkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBHcm91cFBhdGhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFByb2ZpbGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gUm9sZVV1aWRzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBSZW1vdGVBZGRyZXNzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBVc2VyQWdlbnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEh0dHBQcm90b2NvbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTm9kZVV1aWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE5vZGVQYXRoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBXc1V1aWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFdzU2NvcGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFNwYW5VdWlkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBTcGFuUGFyZW50VXVpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU3BhblJvb3RVdWlkXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfTWFpbGVyVXNlciA9IHJlcXVpcmUoJy4vTWFpbGVyVXNlcicpO1xuXG52YXIgX01haWxlclVzZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTWFpbGVyVXNlcik7XG5cbi8qKlxuKiBUaGUgTWFpbGVyTWFpbCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvTWFpbGVyTWFpbFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBNYWlsZXJNYWlsID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TWFpbGVyTWFpbDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL01haWxlck1haWxcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBNYWlsZXJNYWlsKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFpbGVyTWFpbCk7XG5cbiAgICAgICAgdGhpcy5Gcm9tID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRvID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNjID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRhdGVTZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlN1YmplY3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ29udGVudFBsYWluID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbnRlbnRIdG1sID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNvbnRlbnRNYXJrZG93biA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BdHRhY2htZW50cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UaHJlYWRVdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRocmVhZEluZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRlbXBsYXRlSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGVtcGxhdGVEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJldHJpZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2VuZEVycm9ycyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5NYWlsZXJNYWlsPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9NYWlsZXJNYWlsfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvTWFpbGVyTWFpbH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5NYWlsZXJNYWlsPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgTWFpbGVyTWFpbC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgTWFpbGVyTWFpbCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRnJvbScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydGcm9tJ10gPSBfTWFpbGVyVXNlcjJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0Zyb20nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG8nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG8nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUbyddLCBbX01haWxlclVzZXIyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDYycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDYyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NjJ10sIFtfTWFpbGVyVXNlcjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0RhdGVTZW50JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0RhdGVTZW50J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGF0ZVNlbnQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1YmplY3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3ViamVjdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1YmplY3QnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbnRlbnRQbGFpbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb250ZW50UGxhaW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb250ZW50UGxhaW4nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbnRlbnRIdG1sJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbnRlbnRIdG1sJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ29udGVudEh0bWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvbnRlbnRNYXJrZG93bicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb250ZW50TWFya2Rvd24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb250ZW50TWFya2Rvd24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0F0dGFjaG1lbnRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0F0dGFjaG1lbnRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQXR0YWNobWVudHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGhyZWFkVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUaHJlYWRVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGhyZWFkVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGhyZWFkSW5kZXgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVGhyZWFkSW5kZXgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUaHJlYWRJbmRleCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGVtcGxhdGVJZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUZW1wbGF0ZUlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGVtcGxhdGVJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGVtcGxhdGVEYXRhJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RlbXBsYXRlRGF0YSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RlbXBsYXRlRGF0YSddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZXRyaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JldHJpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZXRyaWVzJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzZW5kRXJyb3JzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3NlbmRFcnJvcnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydzZW5kRXJyb3JzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL01haWxlclVzZXJ9IEZyb21cbiAgICAqL1xuICAgIHJldHVybiBNYWlsZXJNYWlsO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTWFpbGVyTWFpbDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9NYWlsZXJVc2VyPn0gVG9cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL01haWxlclVzZXI+fSBDY1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGF0ZVNlbnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFN1YmplY3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IENvbnRlbnRQbGFpblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQ29udGVudEh0bWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IENvbnRlbnRNYXJrZG93blxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBBdHRhY2htZW50c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVGhyZWFkVXVpZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVGhyZWFkSW5kZXhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFRlbXBsYXRlSWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gVGVtcGxhdGVEYXRhXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBSZXRyaWVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IHNlbmRFcnJvcnNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBNYWlsZXJTZW5kTWFpbFJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9NYWlsZXJTZW5kTWFpbFJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIE1haWxlclNlbmRNYWlsUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5NYWlsZXJTZW5kTWFpbFJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvTWFpbGVyU2VuZE1haWxSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIE1haWxlclNlbmRNYWlsUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNYWlsZXJTZW5kTWFpbFJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+TWFpbGVyU2VuZE1haWxSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvTWFpbGVyU2VuZE1haWxSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL01haWxlclNlbmRNYWlsUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+TWFpbGVyU2VuZE1haWxSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIE1haWxlclNlbmRNYWlsUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IE1haWxlclNlbmRNYWlsUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBNYWlsZXJTZW5kTWFpbFJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTWFpbGVyU2VuZE1haWxSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgTWFpbGVyVXNlciBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvTWFpbGVyVXNlclxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBNYWlsZXJVc2VyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+TWFpbGVyVXNlcjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL01haWxlclVzZXJcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBNYWlsZXJVc2VyKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFpbGVyVXNlcik7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFkZHJlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYW5ndWFnZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5NYWlsZXJVc2VyPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9NYWlsZXJVc2VyfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvTWFpbGVyVXNlcn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5NYWlsZXJVc2VyPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgTWFpbGVyVXNlci5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgTWFpbGVyVXNlcigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWRkcmVzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBZGRyZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWRkcmVzcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFuZ3VhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFuZ3VhZ2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYW5ndWFnZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBNYWlsZXJVc2VyO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTWFpbGVyVXNlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBBZGRyZXNzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYW5ndWFnZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBOb2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlKTtcblxuICAgICAgICB0aGlzLkNSRUFURSA9IFwiQ1JFQVRFXCI7XG4gICAgICAgIHRoaXMuUkVBRCA9IFwiUkVBRFwiO1xuICAgICAgICB0aGlzLlVQREFURV9QQVRIID0gXCJVUERBVEVfUEFUSFwiO1xuICAgICAgICB0aGlzLlVQREFURV9DT05URU5UID0gXCJVUERBVEVfQ09OVEVOVFwiO1xuICAgICAgICB0aGlzLlVQREFURV9NRVRBID0gXCJVUERBVEVfTUVUQVwiO1xuICAgICAgICB0aGlzLkRFTEVURSA9IFwiREVMRVRFXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+Tm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlfSBUaGUgZW51bSA8Y29kZT5Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGU8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBOb2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBOb2RlQ2hhbmdlRXZlbnRFdmVudFR5cGU7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IE5vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiQ1JFQVRFXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUkVBRFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlVQREFURV9QQVRIXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVVBEQVRFX0NPTlRFTlRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJVUERBVEVfTUVUQVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkRFTEVURVwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfT2JqZWN0RW5jcnlwdGlvbk1vZGUgPSByZXF1aXJlKCcuL09iamVjdEVuY3J5cHRpb25Nb2RlJyk7XG5cbnZhciBfT2JqZWN0RW5jcnlwdGlvbk1vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfT2JqZWN0RW5jcnlwdGlvbk1vZGUpO1xuXG52YXIgX09iamVjdFN0b3JhZ2VUeXBlID0gcmVxdWlyZSgnLi9PYmplY3RTdG9yYWdlVHlwZScpO1xuXG52YXIgX09iamVjdFN0b3JhZ2VUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX09iamVjdFN0b3JhZ2VUeXBlKTtcblxuLyoqXG4qIFRoZSBPYmplY3REYXRhU291cmNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9PYmplY3REYXRhU291cmNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIE9iamVjdERhdGFTb3VyY2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5PYmplY3REYXRhU291cmNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvT2JqZWN0RGF0YVNvdXJjZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIE9iamVjdERhdGFTb3VyY2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBPYmplY3REYXRhU291cmNlKTtcblxuICAgICAgICB0aGlzLk5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGlzYWJsZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RvcmFnZVR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3RvcmFnZUNvbmZpZ3VyYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2JqZWN0c1NlcnZpY2VOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9iamVjdHNIb3N0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9iamVjdHNQb3J0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9iamVjdHNTZWN1cmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2JqZWN0c0J1Y2tldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PYmplY3RzQmFzZUZvbGRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BcGlLZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQXBpU2VjcmV0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBlZXJBZGRyZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldhdGNoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkVuY3J5cHRpb25Nb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkVuY3J5cHRpb25LZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVmVyc2lvbmluZ1BvbGljeU5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ3JlYXRpb25EYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhc3RTeW5jaHJvbml6YXRpb25EYXRlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPk9iamVjdERhdGFTb3VyY2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL09iamVjdERhdGFTb3VyY2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9PYmplY3REYXRhU291cmNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPk9iamVjdERhdGFTb3VyY2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBPYmplY3REYXRhU291cmNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBPYmplY3REYXRhU291cmNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEaXNhYmxlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rpc2FibGVkJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3RvcmFnZVR5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3RvcmFnZVR5cGUnXSA9IF9PYmplY3RTdG9yYWdlVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1N0b3JhZ2VUeXBlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N0b3JhZ2VDb25maWd1cmF0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N0b3JhZ2VDb25maWd1cmF0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3RvcmFnZUNvbmZpZ3VyYXRpb24nXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0c1NlcnZpY2VOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09iamVjdHNTZXJ2aWNlTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09iamVjdHNTZXJ2aWNlTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0c0hvc3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2JqZWN0c0hvc3QnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPYmplY3RzSG9zdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0c1BvcnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2JqZWN0c1BvcnQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPYmplY3RzUG9ydCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2JqZWN0c1NlY3VyZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPYmplY3RzU2VjdXJlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2JqZWN0c1NlY3VyZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09iamVjdHNCdWNrZXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2JqZWN0c0J1Y2tldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09iamVjdHNCdWNrZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09iamVjdHNCYXNlRm9sZGVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09iamVjdHNCYXNlRm9sZGVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2JqZWN0c0Jhc2VGb2xkZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FwaUtleScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBcGlLZXknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBcGlLZXknXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FwaVNlY3JldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBcGlTZWNyZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBcGlTZWNyZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BlZXJBZGRyZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BlZXJBZGRyZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGVlckFkZHJlc3MnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dhdGNoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dhdGNoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV2F0Y2gnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFbmNyeXB0aW9uTW9kZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFbmNyeXB0aW9uTW9kZSddID0gX09iamVjdEVuY3J5cHRpb25Nb2RlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnRW5jcnlwdGlvbk1vZGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRW5jcnlwdGlvbktleScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFbmNyeXB0aW9uS2V5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRW5jcnlwdGlvbktleSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVmVyc2lvbmluZ1BvbGljeU5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVmVyc2lvbmluZ1BvbGljeU5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydWZXJzaW9uaW5nUG9saWN5TmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ3JlYXRpb25EYXRlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NyZWF0aW9uRGF0ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NyZWF0aW9uRGF0ZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFzdFN5bmNocm9uaXphdGlvbkRhdGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFzdFN5bmNocm9uaXphdGlvbkRhdGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYXN0U3luY2hyb25pemF0aW9uRGF0ZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVcbiAgICAqL1xuICAgIHJldHVybiBPYmplY3REYXRhU291cmNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gT2JqZWN0RGF0YVNvdXJjZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gRGlzYWJsZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvT2JqZWN0U3RvcmFnZVR5cGV9IFN0b3JhZ2VUeXBlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IFN0b3JhZ2VDb25maWd1cmF0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPYmplY3RzU2VydmljZU5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9iamVjdHNIb3N0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBPYmplY3RzUG9ydFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IE9iamVjdHNTZWN1cmVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9iamVjdHNCdWNrZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9iamVjdHNCYXNlRm9sZGVyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBBcGlLZXlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEFwaVNlY3JldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUGVlckFkZHJlc3NcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBXYXRjaFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9PYmplY3RFbmNyeXB0aW9uTW9kZX0gRW5jcnlwdGlvbk1vZGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEVuY3J5cHRpb25LZXlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFZlcnNpb25pbmdQb2xpY3lOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBDcmVhdGlvbkRhdGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IExhc3RTeW5jaHJvbml6YXRpb25EYXRlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIE9iamVjdEVuY3J5cHRpb25Nb2RlLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBPYmplY3RFbmNyeXB0aW9uTW9kZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gT2JqZWN0RW5jcnlwdGlvbk1vZGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBPYmplY3RFbmNyeXB0aW9uTW9kZSk7XG5cbiAgICAgICAgdGhpcy5DTEVBUiA9IFwiQ0xFQVJcIjtcbiAgICAgICAgdGhpcy5NQVNURVIgPSBcIk1BU1RFUlwiO1xuICAgICAgICB0aGlzLlVTRVIgPSBcIlVTRVJcIjtcbiAgICAgICAgdGhpcy5VU0VSX1BXRCA9IFwiVVNFUl9QV0RcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5PYmplY3RFbmNyeXB0aW9uTW9kZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL09iamVjdEVuY3J5cHRpb25Nb2RlfSBUaGUgZW51bSA8Y29kZT5PYmplY3RFbmNyeXB0aW9uTW9kZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIE9iamVjdEVuY3J5cHRpb25Nb2RlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0RW5jcnlwdGlvbk1vZGU7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IE9iamVjdEVuY3J5cHRpb25Nb2RlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJDTEVBUlwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk1BU1RFUlwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlVTRVJcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJVU0VSX1BXRFwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIE9iamVjdFN0b3JhZ2VUeXBlLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBPYmplY3RTdG9yYWdlVHlwZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gT2JqZWN0U3RvcmFnZVR5cGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBPYmplY3RTdG9yYWdlVHlwZSk7XG5cbiAgICAgICAgdGhpcy5MT0NBTCA9IFwiTE9DQUxcIjtcbiAgICAgICAgdGhpcy5TMyA9IFwiUzNcIjtcbiAgICAgICAgdGhpcy5TTUIgPSBcIlNNQlwiO1xuICAgICAgICB0aGlzLkNFTExTID0gXCJDRUxMU1wiO1xuICAgICAgICB0aGlzLkFaVVJFID0gXCJBWlVSRVwiO1xuICAgICAgICB0aGlzLkdDUyA9IFwiR0NTXCI7XG4gICAgICAgIHRoaXMuQjIgPSBcIkIyXCI7XG4gICAgICAgIHRoaXMuTUFOVEEgPSBcIk1BTlRBXCI7XG4gICAgICAgIHRoaXMuU0lBID0gXCJTSUFcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5PYmplY3RTdG9yYWdlVHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL09iamVjdFN0b3JhZ2VUeXBlfSBUaGUgZW51bSA8Y29kZT5PYmplY3RTdG9yYWdlVHlwZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIE9iamVjdFN0b3JhZ2VUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0U3RvcmFnZVR5cGU7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IE9iamVjdFN0b3JhZ2VUeXBlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJMT0NBTFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlMzXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiU01CXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQ0VMTFNcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBWlVSRVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkdDU1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkIyXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiTUFOVEFcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJTSUFcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBQYWNrYWdlUGFja2FnZVN0YXR1cy5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgUGFja2FnZVBhY2thZ2VTdGF0dXMgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFBhY2thZ2VQYWNrYWdlU3RhdHVzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUGFja2FnZVBhY2thZ2VTdGF0dXMpO1xuXG4gICAgICAgIHRoaXMuRHJhZnQgPSBcIkRyYWZ0XCI7XG4gICAgICAgIHRoaXMuUGVuZGluZyA9IFwiUGVuZGluZ1wiO1xuICAgICAgICB0aGlzLlJlbGVhc2VkID0gXCJSZWxlYXNlZFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPlBhY2thZ2VQYWNrYWdlU3RhdHVzPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUGFja2FnZVBhY2thZ2VTdGF0dXN9IFRoZSBlbnVtIDxjb2RlPlBhY2thZ2VQYWNrYWdlU3RhdHVzPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgUGFja2FnZVBhY2thZ2VTdGF0dXMuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBQYWNrYWdlUGFja2FnZVN0YXR1cztcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gUGFja2FnZVBhY2thZ2VTdGF0dXM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkRyYWZ0XCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUGVuZGluZ1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIlJlbGVhc2VkXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBQcm90b2J1ZkFueSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUHJvdG9idWZBbnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUHJvdG9idWZBbnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5Qcm90b2J1ZkFueTwvY29kZT4uXG4gICAgKiAmI3g2MDtBbnkmI3g2MDsgY29udGFpbnMgYW4gYXJiaXRyYXJ5IHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgYWxvbmcgd2l0aCBhIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLiAgUHJvdG9idWYgbGlicmFyeSBwcm92aWRlcyBzdXBwb3J0IHRvIHBhY2svdW5wYWNrIEFueSB2YWx1ZXMgaW4gdGhlIGZvcm0gb2YgdXRpbGl0eSBmdW5jdGlvbnMgb3IgYWRkaXRpb25hbCBnZW5lcmF0ZWQgbWV0aG9kcyBvZiB0aGUgQW55IHR5cGUuICBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLiAgICAgIEZvbyBmb28gJiN4M0Q7IC4uLjsgICAgIEFueSBhbnk7ICAgICBhbnkuUGFja0Zyb20oZm9vKTsgICAgIC4uLiAgICAgaWYgKGFueS5VbnBhY2tUbygmYW1wO2ZvbykpIHsgICAgICAgLi4uICAgICB9ICBFeGFtcGxlIDI6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gSmF2YS4gICAgICBGb28gZm9vICYjeDNEOyAuLi47ICAgICBBbnkgYW55ICYjeDNEOyBBbnkucGFjayhmb28pOyAgICAgLi4uICAgICBpZiAoYW55LmlzKEZvby5jbGFzcykpIHsgICAgICAgZm9vICYjeDNEOyBhbnkudW5wYWNrKEZvby5jbGFzcyk7ICAgICB9ICAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4gICAgICBmb28gJiN4M0Q7IEZvbyguLi4pICAgICBhbnkgJiN4M0Q7IEFueSgpICAgICBhbnkuUGFjayhmb28pICAgICAuLi4gICAgIGlmIGFueS5JcyhGb28uREVTQ1JJUFRPUik6ICAgICAgIGFueS5VbnBhY2soZm9vKSAgICAgICAuLi4gICBFeGFtcGxlIDQ6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gR28gICAgICAgZm9vIDomI3gzRDsgJmFtcDtwYi5Gb297Li4ufSAgICAgIGFueSwgZXJyIDomI3gzRDsgcHR5cGVzLk1hcnNoYWxBbnkoZm9vKSAgICAgIC4uLiAgICAgIGZvbyA6JiN4M0Q7ICZhbXA7cGIuRm9ve30gICAgICBpZiBlcnIgOiYjeDNEOyBwdHlwZXMuVW5tYXJzaGFsQW55KGFueSwgZm9vKTsgZXJyICEmI3gzRDsgbmlsIHsgICAgICAgIC4uLiAgICAgIH0gIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlICYjMzk7dHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZSYjMzk7IGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjayBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICYjMzk7LyYjMzk7IGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgXFwmcXVvdDtmb28uYmFyLmNvbS94L3kuelxcJnF1b3Q7IHdpbGwgeWllbGQgdHlwZSBuYW1lIFxcJnF1b3Q7eS56XFwmcXVvdDsuICAgSlNPTiAmI3gzRDsmI3gzRDsmI3gzRDsmI3gzRDsgVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gJiN4NjA7QW55JiN4NjA7IHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbiBhZGRpdGlvbmFsIGZpZWxkICYjeDYwO0B0eXBlJiN4NjA7IHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZTogICAgICBwYWNrYWdlIGdvb2dsZS5wcm9maWxlOyAgICAgbWVzc2FnZSBQZXJzb24geyAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSAmI3gzRDsgMTsgICAgICAgc3RyaW5nIGxhc3RfbmFtZSAmI3gzRDsgMjsgICAgIH0gICAgICB7ICAgICAgIFxcJnF1b3Q7QHR5cGVcXCZxdW90OzogXFwmcXVvdDt0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvblxcJnF1b3Q7LCAgICAgICBcXCZxdW90O2ZpcnN0TmFtZVxcJnF1b3Q7OiAmbHQ7c3RyaW5nJmd0OywgICAgICAgXFwmcXVvdDtsYXN0TmFtZVxcJnF1b3Q7OiAmbHQ7c3RyaW5nJmd0OyAgICAgfSAgSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkICYjeDYwO3ZhbHVlJiN4NjA7IHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgJiN4NjA7QHR5cGUmI3g2MDsgZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOiAgICAgIHsgICAgICAgXFwmcXVvdDtAdHlwZVxcJnF1b3Q7OiBcXCZxdW90O3R5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXFwmcXVvdDssICAgICAgIFxcJnF1b3Q7dmFsdWVcXCZxdW90OzogXFwmcXVvdDsxLjIxMnNcXCZxdW90OyAgICAgfVxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9Qcm90b2J1ZkFueVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFByb3RvYnVmQW55KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHJvdG9idWZBbnkpO1xuXG4gICAgICAgIHRoaXMudHlwZV91cmwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UHJvdG9idWZBbnk8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Byb3RvYnVmQW55fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUHJvdG9idWZBbnl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UHJvdG9idWZBbnk8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBQcm90b2J1ZkFueS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUHJvdG9idWZBbnkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3R5cGVfdXJsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3R5cGVfdXJsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsndHlwZV91cmwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3ZhbHVlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsndmFsdWUnXSwgJ0Jsb2InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEEgVVJML3Jlc291cmNlIG5hbWUgd2hvc2UgY29udGVudCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UuICBGb3IgVVJMcyB3aGljaCB1c2UgdGhlIHNjaGVtZSBgaHR0cGAsIGBodHRwc2AsIG9yIG5vIHNjaGVtZSwgdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnMgYW5kIGludGVycHJldGF0aW9ucyBhcHBseTogICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuICogVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudCB0aGUgZnVsbHkgICBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgdHlwZSAoYXMgaW4gYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuICAgVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0gKGUuZy4sIGxlYWRpbmcgXFxcIi5cXFwiIGlzICAgbm90IGFjY2VwdGVkKS4gKiBBbiBIVFRQIEdFVCBvbiB0aGUgVVJMIG11c3QgeWllbGQgYSBbZ29vZ2xlLnByb3RvYnVmLlR5cGVdW10gICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUgICBVUkwsIG9yIGhhdmUgdGhlbSBwcmVjb21waWxlZCBpbnRvIGEgYmluYXJ5IHRvIGF2b2lkIGFueSAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQgICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZSAgIGJyZWFraW5nIGNoYW5nZXMuKSAgU2NoZW1lcyBvdGhlciB0aGFuIGBodHRwYCwgYGh0dHBzYCAob3IgdGhlIGVtcHR5IHNjaGVtZSkgbWlnaHQgYmUgdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy5cbiAgICAqIEBtZW1iZXIge1N0cmluZ30gdHlwZV91cmxcbiAgICAqL1xuICAgIHJldHVybiBQcm90b2J1ZkFueTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFByb3RvYnVmQW55O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBNdXN0IGJlIGEgdmFsaWQgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgb2YgdGhlIGFib3ZlIHNwZWNpZmllZCB0eXBlLlxuKiBAbWVtYmVyIHtCbG9ifSB2YWx1ZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBSZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBSZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBSZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZSk7XG5cbiAgICAgICAgdGhpcy5DT05URVhUID0gXCJDT05URVhUXCI7XG4gICAgICAgIHRoaXMuQU5ZID0gXCJBTllcIjtcbiAgICAgICAgdGhpcy5OT05FID0gXCJOT05FXCI7XG4gICAgICAgIHRoaXMuVVNFUiA9IFwiVVNFUlwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPlJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlfSBUaGUgZW51bSA8Y29kZT5SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGU7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFJlc291cmNlUG9saWN5UXVlcnlRdWVyeVR5cGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkNPTlRFWFRcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBTllcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJOT05FXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVVNFUlwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtQUNMID0gcmVxdWlyZSgnLi9JZG1BQ0wnKTtcblxudmFyIF9JZG1BQ0wyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtQUNMKTtcblxuLyoqXG4qIFRoZSBSZXN0QUNMQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEFDTENvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEFDTENvbGxlY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0QUNMQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RBQ0xDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEFDTENvbGxlY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0QUNMQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5BQ0xzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRvdGFsID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RBQ0xDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0QUNMQ29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RBQ0xDb2xsZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RBQ0xDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEFDTENvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RBQ0xDb2xsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBQ0xzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FDTHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBQ0xzJ10sIFtfSWRtQUNMMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG90YWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG90YWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb3RhbCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbUFDTD59IEFDTHNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0QUNMQ29sbGVjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RBQ0xDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFRvdGFsXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdEJhY2tncm91bmRKb2JSZXN1bHQgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdEJhY2tncm91bmRKb2JSZXN1bHQ8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdEJhY2tncm91bmRKb2JSZXN1bHQpO1xuXG4gICAgICAgIHRoaXMuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0QmFja2dyb3VuZEpvYlJlc3VsdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEJhY2tncm91bmRKb2JSZXN1bHR9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0QmFja2dyb3VuZEpvYlJlc3VsdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0QmFja2dyb3VuZEpvYlJlc3VsdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBSZXN0QmFja2dyb3VuZEpvYlJlc3VsdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExhYmVsXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUmVzdFBhZ2luYXRpb24gPSByZXF1aXJlKCcuL1Jlc3RQYWdpbmF0aW9uJyk7XG5cbnZhciBfUmVzdFBhZ2luYXRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFBhZ2luYXRpb24pO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0QnVsa01ldGFSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEJ1bGtNZXRhUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEJ1bGtNZXRhUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0QnVsa01ldGFSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEJ1bGtNZXRhUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0QnVsa01ldGFSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5Ob2RlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5QYWdpbmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RCdWxrTWV0YVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0QnVsa01ldGFSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RCdWxrTWV0YVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RCdWxrTWV0YVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEJ1bGtNZXRhUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RCdWxrTWV0YVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQYWdpbmF0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BhZ2luYXRpb24nXSA9IF9SZXN0UGFnaW5hdGlvbjJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1BhZ2luYXRpb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVOb2RlPn0gTm9kZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0QnVsa01ldGFSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RCdWxrTWV0YVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUmVzdFBhZ2luYXRpb259IFBhZ2luYXRpb25cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0Q2VsbEFjbCA9IHJlcXVpcmUoJy4vUmVzdENlbGxBY2wnKTtcblxudmFyIF9SZXN0Q2VsbEFjbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0Q2VsbEFjbCk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUmVzb3VyY2VQb2xpY3knKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgUmVzdENlbGwgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RDZWxsXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RDZWxsID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdENlbGw8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0Q2VsbFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RDZWxsKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdENlbGwpO1xuXG4gICAgICAgIHRoaXMuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Sb290Tm9kZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQUNMcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0Q2VsbDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENlbGx9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0Q2VsbH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0Q2VsbDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RDZWxsLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0Q2VsbCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGVzY3JpcHRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGVzY3JpcHRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZXNjcmlwdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUm9vdE5vZGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jvb3ROb2RlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Jvb3ROb2RlcyddLCBbX1RyZWVOb2RlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQUNMcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBQ0xzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQUNMcyddLCB7ICdTdHJpbmcnOiBfUmVzdENlbGxBY2wyWydkZWZhdWx0J10gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llcyddLCBbX1NlcnZpY2VSZXNvdXJjZVBvbGljeTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzQ29udGV4dEVkaXRhYmxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RDZWxsO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdENlbGw7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlTm9kZT59IFJvb3ROb2Rlc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBtb2R1bGU6bW9kZWwvUmVzdENlbGxBY2w+fSBBQ0xzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3k+fSBQb2xpY2llc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFBvbGljaWVzQ29udGV4dEVkaXRhYmxlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtQUNMQWN0aW9uID0gcmVxdWlyZSgnLi9JZG1BQ0xBY3Rpb24nKTtcblxudmFyIF9JZG1BQ0xBY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtQUNMQWN0aW9uKTtcblxudmFyIF9JZG1Sb2xlID0gcmVxdWlyZSgnLi9JZG1Sb2xlJyk7XG5cbnZhciBfSWRtUm9sZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Sb2xlKTtcblxudmFyIF9JZG1Vc2VyID0gcmVxdWlyZSgnLi9JZG1Vc2VyJyk7XG5cbnZhciBfSWRtVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyKTtcblxuLyoqXG4qIFRoZSBSZXN0Q2VsbEFjbCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdENlbGxBY2xcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdENlbGxBY2wgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0Q2VsbEFjbDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RDZWxsQWNsXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdENlbGxBY2woKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0Q2VsbEFjbCk7XG5cbiAgICAgICAgdGhpcy5Sb2xlSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Jc1VzZXJSb2xlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVzZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUm9sZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0Q2VsbEFjbDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENlbGxBY2x9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0Q2VsbEFjbH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0Q2VsbEFjbDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RDZWxsQWNsLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0Q2VsbEFjbCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUm9sZUlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JvbGVJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1JvbGVJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWN0aW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBY3Rpb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWN0aW9ucyddLCBbX0lkbUFDTEFjdGlvbjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lzVXNlclJvbGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSXNVc2VyUm9sZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lzVXNlclJvbGUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXInXSA9IF9JZG1Vc2VyMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnVXNlciddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHcm91cCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydHcm91cCddID0gX0lkbVVzZXIyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydHcm91cCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb2xlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JvbGUnXSA9IF9JZG1Sb2xlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUm9sZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gUm9sZUlkXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdENlbGxBY2w7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0Q2VsbEFjbDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1BQ0xBY3Rpb24+fSBBY3Rpb25zXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSXNVc2VyUm9sZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9JZG1Vc2VyfSBVc2VyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0lkbVVzZXJ9IEdyb3VwXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0lkbVJvbGV9IFJvbGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlU3luY0NoYW5nZSA9IHJlcXVpcmUoJy4vVHJlZVN5bmNDaGFuZ2UnKTtcblxudmFyIF9UcmVlU3luY0NoYW5nZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlU3luY0NoYW5nZSk7XG5cbi8qKlxuKiBUaGUgUmVzdENoYW5nZUNvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RDaGFuZ2VDb2xsZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RDaGFuZ2VDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdENoYW5nZUNvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0Q2hhbmdlQ29sbGVjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RDaGFuZ2VDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdENoYW5nZUNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuQ2hhbmdlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYXN0U2VxSWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdENoYW5nZUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDaGFuZ2VDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdENoYW5nZUNvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdENoYW5nZUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0Q2hhbmdlQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdENoYW5nZUNvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NoYW5nZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2hhbmdlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NoYW5nZXMnXSwgW19UcmVlU3luY0NoYW5nZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhc3RTZXFJZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMYXN0U2VxSWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYXN0U2VxSWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZT59IENoYW5nZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0Q2hhbmdlQ29sbGVjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RDaGFuZ2VDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExhc3RTZXFJZFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RDaGFuZ2VSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0Q2hhbmdlUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0Q2hhbmdlUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RDaGFuZ2VSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdENoYW5nZVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0Q2hhbmdlUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RDaGFuZ2VSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlNlcUlEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmZpbHRlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5mbGF0dGVuID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnN0cmVhbSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0Q2hhbmdlUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdENoYW5nZVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0Q2hhbmdlUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0Q2hhbmdlUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RDaGFuZ2VSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0Q2hhbmdlUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2VxSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU2VxSUQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTZXFJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2ZpbHRlciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2ZpbHRlciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmxhdHRlbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydmbGF0dGVuJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnZmxhdHRlbiddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3N0cmVhbScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydzdHJlYW0nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydzdHJlYW0nXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gU2VxSURcbiAgICAqL1xuICAgIHJldHVybiBSZXN0Q2hhbmdlUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RDaGFuZ2VSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IGZpbHRlclxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IGZsYXR0ZW5cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBzdHJlYW1cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0Q29uZmlndXJhdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdENvbmZpZ3VyYXRpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdENvbmZpZ3VyYXRpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0Q29uZmlndXJhdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RDb25maWd1cmF0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdENvbmZpZ3VyYXRpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0Q29uZmlndXJhdGlvbik7XG5cbiAgICAgICAgdGhpcy5GdWxsUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EYXRhID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RDb25maWd1cmF0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0Q29uZmlndXJhdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RDb25maWd1cmF0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RDb25maWd1cmF0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdENvbmZpZ3VyYXRpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RDb25maWd1cmF0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdGdWxsUGF0aCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydGdWxsUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Z1bGxQYXRoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEYXRhJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0RhdGEnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEYXRhJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gRnVsbFBhdGhcbiAgICAqL1xuICAgIHJldHVybiBSZXN0Q29uZmlndXJhdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RDb25maWd1cmF0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERhdGFcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9DdGxTZXJ2aWNlQ29tbWFuZCA9IHJlcXVpcmUoJy4vQ3RsU2VydmljZUNvbW1hbmQnKTtcblxudmFyIF9DdGxTZXJ2aWNlQ29tbWFuZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9DdGxTZXJ2aWNlQ29tbWFuZCk7XG5cbi8qKlxuKiBUaGUgUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RDb250cm9sU2VydmljZVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5TZXJ2aWNlTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2RlTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db21tYW5kID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RDb250cm9sU2VydmljZVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDb250cm9sU2VydmljZVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RDb250cm9sU2VydmljZVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0Q29udHJvbFNlcnZpY2VSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTZXJ2aWNlTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTZXJ2aWNlTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NlcnZpY2VOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVOYW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb21tYW5kJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbW1hbmQnXSA9IF9DdGxTZXJ2aWNlQ29tbWFuZDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0NvbW1hbmQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFNlcnZpY2VOYW1lXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdENvbnRyb2xTZXJ2aWNlUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RDb250cm9sU2VydmljZVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTm9kZU5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvQ3RsU2VydmljZUNvbW1hbmR9IENvbW1hbmRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgUmVzdENyZWF0ZU5vZGVzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdENyZWF0ZU5vZGVzUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdENyZWF0ZU5vZGVzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVOb2Rlc1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdENyZWF0ZU5vZGVzUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Ob2RlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZWN1cnNpdmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGVtcGxhdGVVVUlEID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RDcmVhdGVOb2Rlc1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVOb2Rlc1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RDcmVhdGVOb2Rlc1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZWN1cnNpdmUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVjdXJzaXZlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmVjdXJzaXZlJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGVtcGxhdGVVVUlEJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RlbXBsYXRlVVVJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RlbXBsYXRlVVVJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVOb2RlPn0gTm9kZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0Q3JlYXRlTm9kZXNSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdENyZWF0ZU5vZGVzUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUmVjdXJzaXZlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBUZW1wbGF0ZVVVSURcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuTm9kZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGFyZ2V0QWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBlcnNpc3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZXMnXSwgW19UcmVlTm9kZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RhcmdldEFjdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUYXJnZXRBY3Rpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUYXJnZXRBY3Rpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BlcnNpc3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGVyc2lzdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BlcnNpc3QnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBOb2Rlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RDcmVhdGVTZWxlY3Rpb25SZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdENyZWF0ZVNlbGVjdGlvblJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVGFyZ2V0QWN0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUGVyc2lzdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU2VsZWN0aW9uVVVJRCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ob2RlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RDcmVhdGVTZWxlY3Rpb25SZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2VsZWN0aW9uVVVJRCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTZWxlY3Rpb25VVUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2VsZWN0aW9uVVVJRCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlcyddLCBbX1RyZWVOb2RlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFNlbGVjdGlvblVVSURcbiAgICAqL1xuICAgIHJldHVybiBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0Q3JlYXRlU2VsZWN0aW9uUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBOb2Rlc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX09iamVjdERhdGFTb3VyY2UgPSByZXF1aXJlKCcuL09iamVjdERhdGFTb3VyY2UnKTtcblxudmFyIF9PYmplY3REYXRhU291cmNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX09iamVjdERhdGFTb3VyY2UpO1xuXG4vKipcbiogVGhlIFJlc3REYXRhU291cmNlQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3REYXRhU291cmNlQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3REYXRhU291cmNlQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3REYXRhU291cmNlQ29sbGVjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3REYXRhU291cmNlQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3REYXRhU291cmNlQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5EYXRhU291cmNlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3REYXRhU291cmNlQ29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3REYXRhU291cmNlQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RGF0YVNvdXJjZUNvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3REYXRhU291cmNlQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGF0YVNvdXJjZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGF0YVNvdXJjZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEYXRhU291cmNlcyddLCBbX09iamVjdERhdGFTb3VyY2UyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb3RhbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUb3RhbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RvdGFsJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvT2JqZWN0RGF0YVNvdXJjZT59IERhdGFTb3VyY2VzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdERhdGFTb3VyY2VDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFRvdGFsXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdERlbGV0ZUNlbGxSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdERlbGV0ZUNlbGxSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdERlbGV0ZUNlbGxSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVDZWxsUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdERlbGV0ZUNlbGxSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3REZWxldGVDZWxsUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVDZWxsUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlQ2VsbFJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3REZWxldGVDZWxsUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RGVsZXRlQ2VsbFJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdERlbGV0ZUNlbGxSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3REZWxldGVDZWxsUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdERlbGV0ZURhdGFTb3VyY2VSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3REZWxldGVEYXRhU291cmNlUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RGVsZXRlRGF0YVNvdXJjZVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgUmVzdERlbGV0ZU5vZGVzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdERlbGV0ZU5vZGVzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVOb2Rlc1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdERlbGV0ZU5vZGVzUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Ob2RlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZWN1cnNpdmUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdERlbGV0ZU5vZGVzUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVOb2Rlc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdERlbGV0ZU5vZGVzUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3REZWxldGVOb2Rlc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3REZWxldGVOb2Rlc1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZXMnXSwgW19UcmVlTm9kZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JlY3Vyc2l2ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZWN1cnNpdmUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZWN1cnNpdmUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBOb2Rlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3REZWxldGVOb2Rlc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RGVsZXRlTm9kZXNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBSZWN1cnNpdmVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdCA9IHJlcXVpcmUoJy4vUmVzdEJhY2tncm91bmRKb2JSZXN1bHQnKTtcblxudmFyIF9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdCk7XG5cbi8qKlxuKiBUaGUgUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3REZWxldGVOb2Rlc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdERlbGV0ZU5vZGVzUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuRGVsZXRlSm9icyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RGVsZXRlTm9kZXNSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlTm9kZXNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RGVsZXRlTm9kZXNSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RGVsZXRlTm9kZXNSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGVsZXRlSm9icycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZWxldGVKb2JzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGVsZXRlSm9icyddLCBbX1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0Pn0gRGVsZXRlSm9ic1xuICAgICovXG4gICAgcmV0dXJuIFJlc3REZWxldGVOb2Rlc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdERlbGV0ZU5vZGVzUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3REZWxldGVSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdERlbGV0ZVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3REZWxldGVSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3REZWxldGVSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3REZWxldGVSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3REZWxldGVSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk51bVJvd3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdERlbGV0ZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RGVsZXRlUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdERlbGV0ZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdERlbGV0ZVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RGVsZXRlUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOdW1Sb3dzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ051bVJvd3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOdW1Sb3dzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RGVsZXRlUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RGVsZXRlUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTnVtUm93c1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3REZWxldGVTaGFyZUxpbmtSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdERlbGV0ZVNoYXJlTGlua1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RGVsZXRlVXNlck1ldGFUYWdzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3REZWxldGVVc2VyTWV0YVRhZ3NSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdERpc2NvdmVyeVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RGlzY292ZXJ5UmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdERpc2NvdmVyeVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdERpc2NvdmVyeVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdERpc2NvdmVyeVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdERpc2NvdmVyeVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdERpc2NvdmVyeVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlBhY2thZ2VUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhY2thZ2VMYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5WZXJzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkJ1aWxkU3RhbXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQnVpbGRSZXZpc2lvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FbmRwb2ludHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdERpc2NvdmVyeVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RGlzY292ZXJ5UmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RGlzY292ZXJ5UmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdERpc2NvdmVyeVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdERpc2NvdmVyeVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RGlzY292ZXJ5UmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhY2thZ2VUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BhY2thZ2VUeXBlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGFja2FnZVR5cGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhY2thZ2VMYWJlbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYWNrYWdlTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYWNrYWdlTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1ZlcnNpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVmVyc2lvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1ZlcnNpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0J1aWxkU3RhbXAnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQnVpbGRTdGFtcCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0J1aWxkU3RhbXAnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0J1aWxkUmV2aXNpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQnVpbGRSZXZpc2lvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0J1aWxkUmV2aXNpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0VuZHBvaW50cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFbmRwb2ludHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFbmRwb2ludHMnXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFBhY2thZ2VUeXBlXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdERpc2NvdmVyeVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdERpc2NvdmVyeVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFBhY2thZ2VMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVmVyc2lvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gQnVpbGRTdGFtcFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQnVpbGRSZXZpc2lvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBFbmRwb2ludHNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RXJyb3IgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RFcnJvclxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RXJyb3IgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RXJyb3I8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RXJyb3JcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RXJyb3IoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RXJyb3IpO1xuXG4gICAgICAgIHRoaXMuQ29kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UaXRsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXRhaWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU291cmNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1ldGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEVycm9yPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RXJyb3J9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RXJyb3J9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEVycm9yPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEVycm9yLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RXJyb3IoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvZGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ29kZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvZGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RpdGxlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RpdGxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGl0bGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0RldGFpbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXRhaWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZXRhaWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NvdXJjZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTb3VyY2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTb3VyY2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01ldGEnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWV0YSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01ldGEnXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IENvZGVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RXJyb3I7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RXJyb3I7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVGl0bGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERldGFpbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gU291cmNlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IE1ldGFcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RGcm9udEJpbmFyeVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RGcm9udEJpbmFyeVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLkJpbmFyeVR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEZyb250QmluYXJ5UmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RnJvbnRCaW5hcnlSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEZyb250QmluYXJ5UmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEZyb250QmluYXJ5UmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5VHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCaW5hcnlUeXBlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQmluYXJ5VHlwZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEJpbmFyeVR5cGVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RnJvbnRCaW5hcnlSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250QmluYXJ5UmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBVdWlkXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdEZyb250QmluYXJ5UmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdEZyb250QmluYXJ5UmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdEZyb250QmluYXJ5UmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RGcm9udEJpbmFyeVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRCaW5hcnlSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJpbmFyeVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RGcm9udEJpbmFyeVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEZyb250QmluYXJ5UmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFJlc3RGcm9udEJpbmFyeVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250QmluYXJ5UmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuSnNvbkRhdGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEZyb250Qm9vdENvbmZSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEJvb3RDb25mUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEZyb250Qm9vdENvbmZSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RGcm9udEJvb3RDb25mUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0pzb25EYXRhJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pzb25EYXRhJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSnNvbkRhdGEnXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gSnNvbkRhdGFcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RnJvbnRCb290Q29uZlJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250Qm9vdENvbmZSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuRW5yb2xsVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FbnJvbGxJbmZvID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RGcm9udEVucm9sbEF1dGhSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFbnJvbGxUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Vucm9sbFR5cGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFbnJvbGxUeXBlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdFbnJvbGxJbmZvJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Vucm9sbEluZm8nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFbnJvbGxJbmZvJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBFbnJvbGxUeXBlXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdEZyb250RW5yb2xsQXV0aFJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0RnJvbnRFbnJvbGxBdXRoUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IEVucm9sbEluZm9cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuSW5mbyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RnJvbnRFbnJvbGxBdXRoUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RGcm9udEVucm9sbEF1dGhSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSW5mbycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJbmZvJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSW5mbyddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBJbmZvXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250RW5yb2xsQXV0aFJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLk1lc3NhZ2VzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RnJvbnRNZXNzYWdlc1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXNzYWdlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXNzYWdlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01lc3NhZ2VzJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7T2JqZWN0LjxTdHJpbmcsIFN0cmluZz59IE1lc3NhZ2VzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdEZyb250TWVzc2FnZXNSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RGcm9udE1lc3NhZ2VzUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RGcm9udFBsdWdpbnNSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RGcm9udFBsdWdpbnNSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RGcm9udFBsdWdpbnNSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFBsdWdpbnNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RGcm9udFBsdWdpbnNSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RGcm9udFBsdWdpbnNSZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RnJvbnRQbHVnaW5zUmVzcG9uc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICByZXR1cm4gUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250UGx1Z2luc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEZyb250U2Vzc2lvblJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEZyb250U2Vzc2lvblJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEZyb250U2Vzc2lvblJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5DbGllbnRUaW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF1dGhJbmZvID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxvZ291dCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdEZyb250U2Vzc2lvblJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RnJvbnRTZXNzaW9uUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2xpZW50VGltZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDbGllbnRUaW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2xpZW50VGltZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQXV0aEluZm8nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQXV0aEluZm8nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBdXRoSW5mbyddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMb2dvdXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTG9nb3V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTG9nb3V0J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtOdW1iZXJ9IENsaWVudFRpbWVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0RnJvbnRTZXNzaW9uUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RGcm9udFNlc3Npb25SZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gQXV0aEluZm9cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBMb2dvdXRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuSldUID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkV4cGlyZVRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVHJpZ2dlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UcmlnZ2VySW5mbyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RGcm9udFNlc3Npb25SZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0RnJvbnRTZXNzaW9uUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RGcm9udFNlc3Npb25SZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSldUJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0pXVCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pXVCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRXhwaXJlVGltZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFeHBpcmVUaW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRXhwaXJlVGltZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVHJpZ2dlcicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUcmlnZ2VyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVHJpZ2dlciddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVHJpZ2dlckluZm8nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVHJpZ2dlckluZm8nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUcmlnZ2VySW5mbyddLCB7ICdTdHJpbmcnOiAnU3RyaW5nJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gSldUXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250U2Vzc2lvblJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IEV4cGlyZVRpbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFRyaWdnZXJcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gVHJpZ2dlckluZm9cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RGcm9udFN0YXRlUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdEZyb250U3RhdGVSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RGcm9udFN0YXRlUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdEZyb250U3RhdGVSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0RnJvbnRTdGF0ZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEZyb250U3RhdGVSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdEZyb250U3RhdGVSZXNwb25zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIHJldHVybiBSZXN0RnJvbnRTdGF0ZVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEZyb250U3RhdGVSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEdldEJ1bGtNZXRhUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdEdldEJ1bGtNZXRhUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Ob2RlUGF0aHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZVV1aWRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkFsbE1ldGFQcm92aWRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVmVyc2lvbnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2Zmc2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxpbWl0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RHZXRCdWxrTWV0YVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RHZXRCdWxrTWV0YVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0R2V0QnVsa01ldGFSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RHZXRCdWxrTWV0YVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlUGF0aHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZVBhdGhzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZVBhdGhzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVVdWlkcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlVXVpZHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlVXVpZHMnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWxsTWV0YVByb3ZpZGVycycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBbGxNZXRhUHJvdmlkZXJzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWxsTWV0YVByb3ZpZGVycyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1ZlcnNpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1ZlcnNpb25zJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVmVyc2lvbnMnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPZmZzZXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2Zmc2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2Zmc2V0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaW1pdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW1pdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xpbWl0J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBOb2RlUGF0aHNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0R2V0QnVsa01ldGFSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdEdldEJ1bGtNZXRhUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IE5vZGVVdWlkc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEFsbE1ldGFQcm92aWRlcnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBWZXJzaW9uc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gT2Zmc2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBMaW1pdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVOb2RlID0gcmVxdWlyZSgnLi9UcmVlTm9kZScpO1xuXG52YXIgX1RyZWVOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlKTtcblxuLyoqXG4qIFRoZSBSZXN0SGVhZE5vZGVSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdEhlYWROb2RlUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdEhlYWROb2RlUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0SGVhZE5vZGVSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RIZWFkTm9kZVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdEhlYWROb2RlUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0SGVhZE5vZGVSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5Ob2RlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RIZWFkTm9kZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0SGVhZE5vZGVSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RIZWFkTm9kZVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RIZWFkTm9kZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdEhlYWROb2RlUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RIZWFkTm9kZVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGUnXSA9IF9UcmVlTm9kZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ05vZGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IE5vZGVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0SGVhZE5vZGVSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RIZWFkTm9kZVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5QZWVyQWRkcmVzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5QYXRoID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdExpc3RQZWVyRm9sZGVyc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQZWVyQWRkcmVzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQZWVyQWRkcmVzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BlZXJBZGRyZXNzJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BhdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYXRoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gUGVlckFkZHJlc3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TGlzdFBlZXJGb2xkZXJzUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RMaXN0UGVlckZvbGRlcnNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFBhdGhcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuUGVlckFkZHJlc3NlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0TGlzdFBlZXJzQWRkcmVzc2VzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RMaXN0UGVlcnNBZGRyZXNzZXNSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGVlckFkZHJlc3NlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQZWVyQWRkcmVzc2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGVlckFkZHJlc3NlcyddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBQZWVyQWRkcmVzc2VzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdExpc3RQZWVyc0FkZHJlc3Nlc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUgPSByZXF1aXJlKCcuL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZScpO1xuXG52YXIgX0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUpO1xuXG4vKipcbiogVGhlIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5TaGFyZVR5cGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3ViamVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Pd25lZEJ5U3ViamVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NoYXJlVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTaGFyZVR5cGUnXSA9IF9MaXN0U2hhcmVkUmVzb3VyY2VzUmVxdWVzdExpc3RTaGFyZVR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydTaGFyZVR5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3ViamVjdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWJqZWN0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3ViamVjdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3duZWRCeVN1YmplY3QnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3duZWRCeVN1YmplY3QnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPd25lZEJ5U3ViamVjdCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPZmZzZXQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbWl0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGltaXQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL0xpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0TGlzdFNoYXJlVHlwZX0gU2hhcmVUeXBlXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFN1YmplY3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBPd25lZEJ5U3ViamVjdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gT2Zmc2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBMaW1pdFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlID0gcmVxdWlyZSgnLi9MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZScpO1xuXG52YXIgX0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0xpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVNoYXJlZFJlc291cmNlKTtcblxuLyoqXG4qIFRoZSBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlJlc291cmNlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVG90YWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdExpc3RTaGFyZWRSZXNvdXJjZXNSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc291cmNlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZXNvdXJjZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZXNvdXJjZXMnXSwgW19MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPZmZzZXQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbWl0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGltaXQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RvdGFsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RvdGFsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVG90YWwnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9MaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2VTaGFyZWRSZXNvdXJjZT59IFJlc291cmNlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RMaXN0U2hhcmVkUmVzb3VyY2VzUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TGlzdFNoYXJlZFJlc291cmNlc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IE9mZnNldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTGltaXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFRvdGFsXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUmVzdFRlbXBsYXRlID0gcmVxdWlyZSgnLi9SZXN0VGVtcGxhdGUnKTtcblxudmFyIF9SZXN0VGVtcGxhdGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFRlbXBsYXRlKTtcblxuLyoqXG4qIFRoZSBSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RMaXN0VGVtcGxhdGVzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlRlbXBsYXRlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGVtcGxhdGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RlbXBsYXRlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RlbXBsYXRlcyddLCBbX1Jlc3RUZW1wbGF0ZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGU+fSBUZW1wbGF0ZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TGlzdFRlbXBsYXRlc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdExpc3RUZW1wbGF0ZXNSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5UYWdzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RMaXN0VXNlck1ldGFUYWdzUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUYWdzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RhZ3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUYWdzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPFN0cmluZz59IFRhZ3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TGlzdFVzZXJNZXRhVGFnc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdExpc3RVc2VyTWV0YVRhZ3NSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfTG9nTG9nTWVzc2FnZSA9IHJlcXVpcmUoJy4vTG9nTG9nTWVzc2FnZScpO1xuXG52YXIgX0xvZ0xvZ01lc3NhZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTG9nTG9nTWVzc2FnZSk7XG5cbi8qKlxuKiBUaGUgUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uKTtcblxuICAgICAgICB0aGlzLkxvZ3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0TG9nTWVzc2FnZUNvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xvZ3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTG9ncyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xvZ3MnXSwgW19Mb2dMb2dNZXNzYWdlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0xvZ0xvZ01lc3NhZ2U+fSBMb2dzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdExvZ01lc3NhZ2VDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0TWV0YWRhdGEgPSByZXF1aXJlKCcuL1Jlc3RNZXRhZGF0YScpO1xuXG52YXIgX1Jlc3RNZXRhZGF0YTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0TWV0YWRhdGEpO1xuXG4vKipcbiogVGhlIFJlc3RNZXRhQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdE1ldGFDb2xsZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RNZXRhQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RNZXRhQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RNZXRhQ29sbGVjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RNZXRhQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RNZXRhQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5Ob2RlUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NZXRhZGF0YXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdE1ldGFDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0TWV0YUNvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0TWV0YUNvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdE1ldGFDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdE1ldGFDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0TWV0YUNvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGVQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGVQYXRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTm9kZVBhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01ldGFkYXRhcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXRhZGF0YXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNZXRhZGF0YXMnXSwgW19SZXN0TWV0YWRhdGEyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTm9kZVBhdGhcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TWV0YUNvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TWV0YUNvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvUmVzdE1ldGFkYXRhPn0gTWV0YWRhdGFzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdE1ldGFOYW1lc3BhY2VSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk5vZGVQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5hbWVzcGFjZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RNZXRhTmFtZXNwYWNlUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZVBhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZVBhdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydOb2RlUGF0aCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZXNwYWNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWVzcGFjZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWVzcGFjZSddLCBbJ1N0cmluZyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTm9kZVBhdGhcbiAgICAqL1xuICAgIHJldHVybiBSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0TWV0YU5hbWVzcGFjZVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBOYW1lc3BhY2VcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0TWV0YWRhdGEgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RNZXRhZGF0YVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0TWV0YWRhdGEgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0TWV0YWRhdGE8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0TWV0YWRhdGFcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0TWV0YWRhdGEoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0TWV0YWRhdGEpO1xuXG4gICAgICAgIHRoaXMuTmFtZXNwYWNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkpzb25NZXRhID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RNZXRhZGF0YTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdE1ldGFkYXRhfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdE1ldGFkYXRhfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RNZXRhZGF0YTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RNZXRhZGF0YS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdE1ldGFkYXRhKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOYW1lc3BhY2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZXNwYWNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZXNwYWNlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKc29uTWV0YScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKc29uTWV0YSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pzb25NZXRhJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gTmFtZXNwYWNlXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdE1ldGFkYXRhO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdE1ldGFkYXRhO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEpzb25NZXRhXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIFJlc3ROb2Rlc0NvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdE5vZGVzQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3ROb2Rlc0NvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdE5vZGVzQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3ROb2Rlc0NvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuUGFyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNoaWxkcmVuID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3ROb2Rlc0NvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3ROb2Rlc0NvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0Tm9kZXNDb2xsZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3ROb2Rlc0NvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0Tm9kZXNDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0Tm9kZXNDb2xsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQYXJlbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGFyZW50J10gPSBfVHJlZU5vZGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydQYXJlbnQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2hpbGRyZW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2hpbGRyZW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDaGlsZHJlbiddLCBbX1RyZWVOb2RlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IFBhcmVudFxuICAgICovXG4gICAgcmV0dXJuIFJlc3ROb2Rlc0NvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0Tm9kZXNDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVOb2RlPn0gQ2hpbGRyZW5cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0T3BlbkFwaVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RPcGVuQXBpUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0T3BlbkFwaVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdE9wZW5BcGlSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RPcGVuQXBpUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0T3BlbkFwaVJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0T3BlbkFwaVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0T3BlbkFwaVJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdE9wZW5BcGlSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0T3BlbkFwaVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdE9wZW5BcGlSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdE9wZW5BcGlSZXNwb25zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIHJldHVybiBSZXN0T3BlbkFwaVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdE9wZW5BcGlSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdFBhZ2luYXRpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RQYWdpbmF0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RQYWdpbmF0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFBhZ2luYXRpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UGFnaW5hdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RQYWdpbmF0aW9uKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFBhZ2luYXRpb24pO1xuXG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ3VycmVudE9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DdXJyZW50UGFnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbFBhZ2VzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5leHRPZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUHJldk9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0UGFnaW5hdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFBhZ2luYXRpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UGFnaW5hdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0UGFnaW5hdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RQYWdpbmF0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UGFnaW5hdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW1pdCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ3VycmVudE9mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDdXJyZW50T2Zmc2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ3VycmVudE9mZnNldCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG90YWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG90YWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb3RhbCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ3VycmVudFBhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ3VycmVudFBhZ2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDdXJyZW50UGFnZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG90YWxQYWdlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUb3RhbFBhZ2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVG90YWxQYWdlcyddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmV4dE9mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOZXh0T2Zmc2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmV4dE9mZnNldCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUHJldk9mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQcmV2T2Zmc2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUHJldk9mZnNldCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtOdW1iZXJ9IExpbWl0XG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFBhZ2luYXRpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UGFnaW5hdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBDdXJyZW50T2Zmc2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBUb3RhbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gQ3VycmVudFBhZ2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFRvdGFsUGFnZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IE5leHRPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IFByZXZPZmZzZXRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0Q2VsbCA9IHJlcXVpcmUoJy4vUmVzdENlbGwnKTtcblxudmFyIF9SZXN0Q2VsbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0Q2VsbCk7XG5cbi8qKlxuKiBUaGUgUmVzdFB1dENlbGxSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UHV0Q2VsbFJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFB1dENlbGxSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFB1dENlbGxSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFB1dENlbGxSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFB1dENlbGxSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFB1dENlbGxSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlJvb20gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ3JlYXRlRW1wdHlSb290ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RQdXRDZWxsUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFB1dENlbGxSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFB1dENlbGxSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RQdXRDZWxsUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RQdXRDZWxsUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFB1dENlbGxSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb29tJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jvb20nXSA9IF9SZXN0Q2VsbDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1Jvb20nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ3JlYXRlRW1wdHlSb290JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NyZWF0ZUVtcHR5Um9vdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NyZWF0ZUVtcHR5Um9vdCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1Jlc3RDZWxsfSBSb29tXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFB1dENlbGxSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFB1dENlbGxSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBDcmVhdGVFbXB0eVJvb3RcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0U2hhcmVMaW5rID0gcmVxdWlyZSgnLi9SZXN0U2hhcmVMaW5rJyk7XG5cbnZhciBfUmVzdFNoYXJlTGluazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0U2hhcmVMaW5rKTtcblxuLyoqXG4qIFRoZSBSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0UHV0U2hhcmVMaW5rUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5TaGFyZUxpbmsgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUGFzc3dvcmRFbmFibGVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkNyZWF0ZVBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVwZGF0ZVBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVwZGF0ZUN1c3RvbUhhc2ggPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFB1dFNoYXJlTGlua1JlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFB1dFNoYXJlTGlua1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFB1dFNoYXJlTGlua1JlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFB1dFNoYXJlTGlua1JlcXVlc3QoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NoYXJlTGluaycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTaGFyZUxpbmsnXSA9IF9SZXN0U2hhcmVMaW5rMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnU2hhcmVMaW5rJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Bhc3N3b3JkRW5hYmxlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYXNzd29yZEVuYWJsZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYXNzd29yZEVuYWJsZWQnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDcmVhdGVQYXNzd29yZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDcmVhdGVQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NyZWF0ZVBhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVcGRhdGVQYXNzd29yZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVcGRhdGVQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VwZGF0ZVBhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVcGRhdGVDdXN0b21IYXNoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VwZGF0ZUN1c3RvbUhhc2gnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVcGRhdGVDdXN0b21IYXNoJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rfSBTaGFyZUxpbmtcbiAgICAqL1xuICAgIHJldHVybiBSZXN0UHV0U2hhcmVMaW5rUmVxdWVzdDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RQdXRTaGFyZUxpbmtSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBQYXNzd29yZEVuYWJsZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IENyZWF0ZVBhc3N3b3JkXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBVcGRhdGVQYXNzd29yZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVXBkYXRlQ3VzdG9tSGFzaFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuTmFtZXNwYWNlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlRhZyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFB1dFVzZXJNZXRhVGFnUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZXNwYWNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05hbWVzcGFjZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWVzcGFjZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVGFnJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RhZyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RhZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IE5hbWVzcGFjZVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RQdXRVc2VyTWV0YVRhZ1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UHV0VXNlck1ldGFUYWdSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFRhZ1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFB1dFVzZXJNZXRhVGFnUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0UHV0VXNlck1ldGFUYWdSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RQdXRVc2VyTWV0YVRhZ1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Sb2xlID0gcmVxdWlyZSgnLi9JZG1Sb2xlJyk7XG5cbnZhciBfSWRtUm9sZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Sb2xlKTtcblxudmFyIF9JZG1Xb3Jrc3BhY2UgPSByZXF1aXJlKCcuL0lkbVdvcmtzcGFjZScpO1xuXG52YXIgX0lkbVdvcmtzcGFjZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Xb3Jrc3BhY2UpO1xuXG4vKipcbiogVGhlIFJlc3RSZWxhdGlvblJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UmVsYXRpb25SZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UmVsYXRpb25SZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZWxhdGlvblJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFJlbGF0aW9uUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UmVsYXRpb25SZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZWxhdGlvblJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlNoYXJlZENlbGxzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkJlbG9uZ3NUb1RlYW1zID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RSZWxhdGlvblJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVsYXRpb25SZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RSZWxhdGlvblJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RSZWxhdGlvblJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJlbGF0aW9uUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RSZWxhdGlvblJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTaGFyZWRDZWxscycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTaGFyZWRDZWxscyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NoYXJlZENlbGxzJ10sIFtfSWRtV29ya3NwYWNlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmVsb25nc1RvVGVhbXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQmVsb25nc1RvVGVhbXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCZWxvbmdzVG9UZWFtcyddLCBbX0lkbVJvbGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlPn0gU2hhcmVkQ2VsbHNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0UmVsYXRpb25SZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RSZWxhdGlvblJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVJvbGU+fSBCZWxvbmdzVG9UZWFtc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5SZXNldFBhc3N3b3JkVG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlckxvZ2luID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5ld1Bhc3N3b3JkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RSZXNldFBhc3N3b3JkUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZXNldFBhc3N3b3JkVG9rZW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzZXRQYXNzd29yZFRva2VuJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmVzZXRQYXNzd29yZFRva2VuJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VyTG9naW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlckxvZ2luJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXNlckxvZ2luJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOZXdQYXNzd29yZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOZXdQYXNzd29yZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05ld1Bhc3N3b3JkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gUmVzZXRQYXNzd29yZFRva2VuXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFJlc2V0UGFzc3dvcmRSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFVzZXJMb2dpblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTmV3UGFzc3dvcmRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFJlc2V0UGFzc3dvcmRSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01lc3NhZ2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWVzc2FnZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01lc3NhZ2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7Qm9vbGVhbn0gU3VjY2Vzc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RSZXNldFBhc3N3b3JkUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UmVzZXRQYXNzd29yZFJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1lc3NhZ2VcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0UmVzZXRQYXNzd29yZFRva2VuUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuU3VjY2VzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RSZXNldFBhc3N3b3JkVG9rZW5SZXNwb25zZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWNjZXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1Y2Nlc3MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWNjZXNzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWVzc2FnZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNZXNzYWdlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWVzc2FnZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtCb29sZWFufSBTdWNjZXNzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFJlc2V0UGFzc3dvcmRUb2tlblJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1lc3NhZ2VcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlID0gcmVxdWlyZSgnLi9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlJyk7XG5cbnZhciBfUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXNvdXJjZVBvbGljeVF1ZXJ5UXVlcnlUeXBlKTtcblxuLyoqXG4qIFRoZSBSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFJlc291cmNlUG9saWN5UXVlcnlcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFJlc291cmNlUG9saWN5UXVlcnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFJlc291cmNlUG9saWN5UXVlcnkoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSk7XG5cbiAgICAgICAgdGhpcy5UeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlVzZXJJZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJlc291cmNlUG9saWN5UXVlcnl9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUeXBlJ10gPSBfUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1R5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlcklkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUmVzb3VyY2VQb2xpY3lRdWVyeVF1ZXJ5VHlwZX0gVHlwZVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFJlc291cmNlUG9saWN5UXVlcnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVXNlcklkXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UmVzdG9yZU5vZGVzUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLk5vZGVzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05vZGVzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBOb2Rlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RSZXN0b3JlTm9kZXNSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFJlc3RvcmVOb2Rlc1JlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0ID0gcmVxdWlyZSgnLi9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdCcpO1xuXG52YXIgX1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RCYWNrZ3JvdW5kSm9iUmVzdWx0KTtcblxuLyoqXG4qIFRoZSBSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RSZXN0b3JlTm9kZXNSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuUmVzdG9yZUpvYnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UmVzdG9yZU5vZGVzUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc3RvcmVKb2JzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc3RvcmVKb2JzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmVzdG9yZUpvYnMnXSwgW19SZXN0QmFja2dyb3VuZEpvYlJlc3VsdDJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9SZXN0QmFja2dyb3VuZEpvYlJlc3VsdD59IFJlc3RvcmVKb2JzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFJlc3RvcmVOb2Rlc1Jlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0UmV2b2tlUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFJldm9rZVJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFJldm9rZVJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0UmV2b2tlUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFJldm9rZVJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0UmV2b2tlUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Ub2tlbklkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RSZXZva2VSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmV2b2tlUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RSZXZva2VSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJldm9rZVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RSZXZva2VSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb2tlbklkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Rva2VuSWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb2tlbklkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVG9rZW5JZFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RSZXZva2VSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFJldm9rZVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RSZXZva2VSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFJldm9rZVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RSZXZva2VSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSZXZva2VSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RSZXZva2VSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RSZXZva2VSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSZXZva2VSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFJldm9rZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0UmV2b2tlUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0UmV2b2tlUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFJldm9rZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFJldm9rZVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0UmV2b2tlUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXNzYWdlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01lc3NhZ2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNZXNzYWdlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBSZXN0UmV2b2tlUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0UmV2b2tlUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWVzc2FnZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVJvbGUgPSByZXF1aXJlKCcuL0lkbVJvbGUnKTtcblxudmFyIF9JZG1Sb2xlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVJvbGUpO1xuXG4vKipcbiogVGhlIFJlc3RSb2xlc0NvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RSb2xlc0NvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFJvbGVzQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RSb2xlc0NvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0Um9sZXNDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFJvbGVzQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RSb2xlc0NvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuUm9sZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFJvbGVzQ29sbGVjdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFJvbGVzQ29sbGVjdGlvbn0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RSb2xlc0NvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFJvbGVzQ29sbGVjdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RSb2xlc0NvbGxlY3Rpb24uY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RSb2xlc0NvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JvbGVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1JvbGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9sZXMnXSwgW19JZG1Sb2xlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVJvbGU+fSBSb2xlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RSb2xlc0NvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0Um9sZXNDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1BQ0xTaW5nbGVRdWVyeSA9IHJlcXVpcmUoJy4vSWRtQUNMU2luZ2xlUXVlcnknKTtcblxudmFyIF9JZG1BQ0xTaW5nbGVRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1BQ0xTaW5nbGVRdWVyeSk7XG5cbnZhciBfU2VydmljZU9wZXJhdGlvblR5cGUgPSByZXF1aXJlKCcuL1NlcnZpY2VPcGVyYXRpb25UeXBlJyk7XG5cbnZhciBfU2VydmljZU9wZXJhdGlvblR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZU9wZXJhdGlvblR5cGUpO1xuXG4vKipcbiogVGhlIFJlc3RTZWFyY2hBQ0xSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0U2VhcmNoQUNMUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RTZWFyY2hBQ0xSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNlYXJjaEFDTFJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0U2VhcmNoQUNMUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RTZWFyY2hBQ0xSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlF1ZXJpZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2Zmc2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxpbWl0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkdyb3VwQnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ291bnRPbmx5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9wZXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2VhcmNoQUNMUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaEFDTFJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoQUNMUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2VhcmNoQUNMUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTZWFyY2hBQ0xSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U2VhcmNoQUNMUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUXVlcmllcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydRdWVyaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUXVlcmllcyddLCBbX0lkbUFDTFNpbmdsZVF1ZXJ5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09mZnNldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09mZnNldCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW1pdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR3JvdXBCeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydHcm91cEJ5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnR3JvdXBCeSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ291bnRPbmx5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvdW50T25seSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvdW50T25seSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09wZXJhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPcGVyYXRpb24nXSA9IF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ09wZXJhdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtQUNMU2luZ2xlUXVlcnk+fSBRdWVyaWVzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNlYXJjaEFDTFJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2VhcmNoQUNMUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExpbWl0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBHcm91cEJ5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQ291bnRPbmx5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1NlcnZpY2VPcGVyYXRpb25UeXBlfSBPcGVyYXRpb25cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFNlYXJjaFJlc3VsdHMgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZWFyY2hSZXN1bHRzXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTZWFyY2hSZXN1bHRzID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNlYXJjaFJlc3VsdHM8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2VhcmNoUmVzdWx0c1xuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTZWFyY2hSZXN1bHRzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNlYXJjaFJlc3VsdHMpO1xuXG4gICAgICAgIHRoaXMuUmVzdWx0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2VhcmNoUmVzdWx0czwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJlc3VsdHN9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoUmVzdWx0c30gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2VhcmNoUmVzdWx0czwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTZWFyY2hSZXN1bHRzLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U2VhcmNoUmVzdWx0cygpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzdWx0cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZXN1bHRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmVzdWx0cyddLCBbX1RyZWVOb2RlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG90YWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG90YWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb3RhbCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1RyZWVOb2RlPn0gUmVzdWx0c1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RTZWFyY2hSZXN1bHRzO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFNlYXJjaFJlc3VsdHM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gVG90YWxcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Sb2xlU2luZ2xlUXVlcnkgPSByZXF1aXJlKCcuL0lkbVJvbGVTaW5nbGVRdWVyeScpO1xuXG52YXIgX0lkbVJvbGVTaW5nbGVRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Sb2xlU2luZ2xlUXVlcnkpO1xuXG52YXIgX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gcmVxdWlyZSgnLi9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeScpO1xuXG52YXIgX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5KTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSA9IHJlcXVpcmUoJy4vU2VydmljZU9wZXJhdGlvblR5cGUnKTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFNlYXJjaFJvbGVSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2VhcmNoUm9sZVJlcXVlc3RcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFNlYXJjaFJvbGVSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNlYXJjaFJvbGVSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFNlYXJjaFJvbGVSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNlYXJjaFJvbGVSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlF1ZXJpZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmVzb3VyY2VQb2xpY3lRdWVyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBCeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db3VudE9ubHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTZWFyY2hSb2xlUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFJvbGVSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTZWFyY2hSb2xlUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTZWFyY2hSb2xlUmVxdWVzdC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNlYXJjaFJvbGVSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdRdWVyaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1F1ZXJpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydRdWVyaWVzJ10sIFtfSWRtUm9sZVNpbmdsZVF1ZXJ5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzb3VyY2VQb2xpY3lRdWVyeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZXNvdXJjZVBvbGljeVF1ZXJ5J10gPSBfUmVzdFJlc291cmNlUG9saWN5UXVlcnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydSZXNvdXJjZVBvbGljeVF1ZXJ5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPZmZzZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbWl0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGltaXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0dyb3VwQnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnR3JvdXBCeSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0dyb3VwQnknXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NvdW50T25seScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb3VudE9ubHknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDb3VudE9ubHknXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPcGVyYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3BlcmF0aW9uJ10gPSBfU2VydmljZU9wZXJhdGlvblR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydPcGVyYXRpb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVJvbGVTaW5nbGVRdWVyeT59IFF1ZXJpZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0U2VhcmNoUm9sZVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2VhcmNoUm9sZVJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeX0gUmVzb3VyY2VQb2xpY3lRdWVyeVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gT2Zmc2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMaW1pdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gR3JvdXBCeVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IENvdW50T25seVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9TZXJ2aWNlT3BlcmF0aW9uVHlwZX0gT3BlcmF0aW9uXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtVXNlclNpbmdsZVF1ZXJ5ID0gcmVxdWlyZSgnLi9JZG1Vc2VyU2luZ2xlUXVlcnknKTtcblxudmFyIF9JZG1Vc2VyU2luZ2xlUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtVXNlclNpbmdsZVF1ZXJ5KTtcblxudmFyIF9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSA9IHJlcXVpcmUoJy4vUmVzdFJlc291cmNlUG9saWN5UXVlcnknKTtcblxudmFyIF9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSk7XG5cbnZhciBfU2VydmljZU9wZXJhdGlvblR5cGUgPSByZXF1aXJlKCcuL1NlcnZpY2VPcGVyYXRpb25UeXBlJyk7XG5cbnZhciBfU2VydmljZU9wZXJhdGlvblR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZU9wZXJhdGlvblR5cGUpO1xuXG4vKipcbiogVGhlIFJlc3RTZWFyY2hVc2VyUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFNlYXJjaFVzZXJSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTZWFyY2hVc2VyUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RTZWFyY2hVc2VyUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTZWFyY2hVc2VyUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RTZWFyY2hVc2VyUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5RdWVyaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJlc291cmNlUG9saWN5UXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT2Zmc2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxpbWl0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkdyb3VwQnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQ291bnRPbmx5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9wZXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2VhcmNoVXNlclJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hVc2VyUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2VhcmNoVXNlclJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2VhcmNoVXNlclJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RTZWFyY2hVc2VyUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUXVlcmllcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydRdWVyaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUXVlcmllcyddLCBbX0lkbVVzZXJTaW5nbGVRdWVyeTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc291cmNlUG9saWN5UXVlcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVzb3VyY2VQb2xpY3lRdWVyeSddID0gX1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnUmVzb3VyY2VQb2xpY3lRdWVyeSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPZmZzZXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2Zmc2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2Zmc2V0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaW1pdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW1pdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xpbWl0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdHcm91cEJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwQnknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydHcm91cEJ5J10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDb3VudE9ubHknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ291bnRPbmx5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ291bnRPbmx5J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3BlcmF0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09wZXJhdGlvbiddID0gX1NlcnZpY2VPcGVyYXRpb25UeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnT3BlcmF0aW9uJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Vc2VyU2luZ2xlUXVlcnk+fSBRdWVyaWVzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNlYXJjaFVzZXJSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFNlYXJjaFVzZXJSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvUmVzdFJlc291cmNlUG9saWN5UXVlcnl9IFJlc291cmNlUG9saWN5UXVlcnlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE9mZnNldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGltaXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtOdW1iZXJ9IEdyb3VwQnlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBDb3VudE9ubHlcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZU9wZXJhdGlvblR5cGV9IE9wZXJhdGlvblxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0lkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5ID0gcmVxdWlyZSgnLi9JZG1Xb3Jrc3BhY2VTaW5nbGVRdWVyeScpO1xuXG52YXIgX0lkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lkbVdvcmtzcGFjZVNpbmdsZVF1ZXJ5KTtcblxudmFyIF9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSA9IHJlcXVpcmUoJy4vUmVzdFJlc291cmNlUG9saWN5UXVlcnknKTtcblxudmFyIF9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeSk7XG5cbnZhciBfU2VydmljZU9wZXJhdGlvblR5cGUgPSByZXF1aXJlKCcuL1NlcnZpY2VPcGVyYXRpb25UeXBlJyk7XG5cbnZhciBfU2VydmljZU9wZXJhdGlvblR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZU9wZXJhdGlvblR5cGUpO1xuXG4vKipcbiogVGhlIFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlF1ZXJpZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmVzb3VyY2VQb2xpY3lRdWVyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGltaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuR3JvdXBCeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db3VudE9ubHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3BlcmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RTZWFyY2hXb3Jrc3BhY2VSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdRdWVyaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1F1ZXJpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydRdWVyaWVzJ10sIFtfSWRtV29ya3NwYWNlU2luZ2xlUXVlcnkyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSZXNvdXJjZVBvbGljeVF1ZXJ5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc291cmNlUG9saWN5UXVlcnknXSA9IF9SZXN0UmVzb3VyY2VQb2xpY3lRdWVyeTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1Jlc291cmNlUG9saWN5UXVlcnknXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT2Zmc2V0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ09mZnNldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ09mZnNldCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGltaXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGltaXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW1pdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR3JvdXBCeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydHcm91cEJ5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnR3JvdXBCeSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ291bnRPbmx5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvdW50T25seSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvdW50T25seSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09wZXJhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPcGVyYXRpb24nXSA9IF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ09wZXJhdGlvbiddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlU2luZ2xlUXVlcnk+fSBRdWVyaWVzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNlYXJjaFdvcmtzcGFjZVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2VhcmNoV29ya3NwYWNlUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1Jlc3RSZXNvdXJjZVBvbGljeVF1ZXJ5fSBSZXNvdXJjZVBvbGljeVF1ZXJ5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExpbWl0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBHcm91cEJ5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQ291bnRPbmx5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1NlcnZpY2VPcGVyYXRpb25UeXBlfSBPcGVyYXRpb25cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9DdGxTZXJ2aWNlID0gcmVxdWlyZSgnLi9DdGxTZXJ2aWNlJyk7XG5cbnZhciBfQ3RsU2VydmljZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9DdGxTZXJ2aWNlKTtcblxuLyoqXG4qIFRoZSBSZXN0U2VydmljZUNvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZXJ2aWNlQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0U2VydmljZUNvbGxlY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2VydmljZUNvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2VydmljZUNvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0U2VydmljZUNvbGxlY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2VydmljZUNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuU2VydmljZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVG90YWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFNlcnZpY2VDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2VydmljZUNvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0U2VydmljZUNvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFNlcnZpY2VDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFNlcnZpY2VDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0U2VydmljZUNvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NlcnZpY2VzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NlcnZpY2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2VydmljZXMnXSwgW19DdGxTZXJ2aWNlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVG90YWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVG90YWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydUb3RhbCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0N0bFNlcnZpY2U+fSBTZXJ2aWNlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RTZXJ2aWNlQ29sbGVjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RTZXJ2aWNlQ29sbGVjdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBUb3RhbFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RTZXR0aW5nc0VudHJ5TWV0YSA9IHJlcXVpcmUoJy4vUmVzdFNldHRpbmdzRW50cnlNZXRhJyk7XG5cbnZhciBfUmVzdFNldHRpbmdzRW50cnlNZXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RTZXR0aW5nc0VudHJ5TWV0YSk7XG5cbi8qKlxuKiBUaGUgUmVzdFNldHRpbmdzRW50cnkgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTZXR0aW5nc0VudHJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNldHRpbmdzRW50cnk8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NFbnRyeVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTZXR0aW5nc0VudHJ5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNldHRpbmdzRW50cnkpO1xuXG4gICAgICAgIHRoaXMuS2V5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1hbmFnZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWxpYXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWV0YWRhdGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFNldHRpbmdzRW50cnk8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzRW50cnl9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFNldHRpbmdzRW50cnk8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2V0dGluZ3NFbnRyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNldHRpbmdzRW50cnkoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0tleScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydLZXknXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydLZXknXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhYmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rlc2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Rlc2NyaXB0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGVzY3JpcHRpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01hbmFnZXInKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWFuYWdlciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01hbmFnZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FsaWFzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FsaWFzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWxpYXMnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01ldGFkYXRhJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01ldGFkYXRhJ10gPSBfUmVzdFNldHRpbmdzRW50cnlNZXRhMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnTWV0YWRhdGEnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEtleVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RTZXR0aW5nc0VudHJ5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFNldHRpbmdzRW50cnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNYW5hZ2VyXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBBbGlhc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NFbnRyeU1ldGF9IE1ldGFkYXRhXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgUmVzdFNldHRpbmdzRW50cnlNZXRhIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2V0dGluZ3NFbnRyeU1ldGFcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFNldHRpbmdzRW50cnlNZXRhID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNldHRpbmdzRW50cnlNZXRhPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzRW50cnlNZXRhXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFNldHRpbmdzRW50cnlNZXRhKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNldHRpbmdzRW50cnlNZXRhKTtcblxuICAgICAgICB0aGlzLkljb25DbGFzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db21wb25lbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUHJvcHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWR2YW5jZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSW5kZXhlZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2V0dGluZ3NFbnRyeU1ldGE8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2V0dGluZ3NFbnRyeU1ldGE8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2V0dGluZ3NFbnRyeU1ldGEuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RTZXR0aW5nc0VudHJ5TWV0YSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSWNvbkNsYXNzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0ljb25DbGFzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0ljb25DbGFzcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29tcG9uZW50JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NvbXBvbmVudCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NvbXBvbmVudCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUHJvcHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUHJvcHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQcm9wcyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQWR2YW5jZWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQWR2YW5jZWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBZHZhbmNlZCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0luZGV4ZWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSW5kZXhlZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0luZGV4ZWQnXSwgWydTdHJpbmcnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEljb25DbGFzc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RTZXR0aW5nc0VudHJ5TWV0YTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RTZXR0aW5nc0VudHJ5TWV0YTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBDb21wb25lbnRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFByb3BzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQWR2YW5jZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gSW5kZXhlZFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RTZXR0aW5nc0VudHJ5TWV0YSA9IHJlcXVpcmUoJy4vUmVzdFNldHRpbmdzRW50cnlNZXRhJyk7XG5cbnZhciBfUmVzdFNldHRpbmdzRW50cnlNZXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RTZXR0aW5nc0VudHJ5TWV0YSk7XG5cbnZhciBfUmVzdFNldHRpbmdzU2VjdGlvbiA9IHJlcXVpcmUoJy4vUmVzdFNldHRpbmdzU2VjdGlvbicpO1xuXG52YXIgX1Jlc3RTZXR0aW5nc1NlY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVzdFNldHRpbmdzU2VjdGlvbik7XG5cbi8qKlxuKiBUaGUgUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2V0dGluZ3NNZW51UmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNldHRpbmdzTWVudVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlJvb3RNZXRhZGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TZWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2V0dGluZ3NNZW51UmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc01lbnVSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc01lbnVSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2V0dGluZ3NNZW51UmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2V0dGluZ3NNZW51UmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RTZXR0aW5nc01lbnVSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUm9vdE1ldGFkYXRhJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jvb3RNZXRhZGF0YSddID0gX1Jlc3RTZXR0aW5nc0VudHJ5TWV0YTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1Jvb3RNZXRhZGF0YSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTZWN0aW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTZWN0aW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NlY3Rpb25zJ10sIFtfUmVzdFNldHRpbmdzU2VjdGlvbjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc0VudHJ5TWV0YX0gUm9vdE1ldGFkYXRhXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFNldHRpbmdzTWVudVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1Jlc3RTZXR0aW5nc1NlY3Rpb24+fSBTZWN0aW9uc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RTZXR0aW5nc0VudHJ5ID0gcmVxdWlyZSgnLi9SZXN0U2V0dGluZ3NFbnRyeScpO1xuXG52YXIgX1Jlc3RTZXR0aW5nc0VudHJ5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RTZXR0aW5nc0VudHJ5KTtcblxuLyoqXG4qIFRoZSBSZXN0U2V0dGluZ3NTZWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0U2V0dGluZ3NTZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTZXR0aW5nc1NlY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2V0dGluZ3NTZWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzU2VjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTZXR0aW5nc1NlY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2V0dGluZ3NTZWN0aW9uKTtcblxuICAgICAgICB0aGlzLktleSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DaGlsZHJlbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2V0dGluZ3NTZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2V0dGluZ3NTZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzU2VjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2V0dGluZ3NTZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFNldHRpbmdzU2VjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNldHRpbmdzU2VjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnS2V5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0tleSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0tleSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGVzY3JpcHRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGVzY3JpcHRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZXNjcmlwdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2hpbGRyZW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ2hpbGRyZW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDaGlsZHJlbiddLCBbX1Jlc3RTZXR0aW5nc0VudHJ5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEtleVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RTZXR0aW5nc1NlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2V0dGluZ3NTZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExhYmVsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBEZXNjcmlwdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvUmVzdFNldHRpbmdzRW50cnk+fSBDaGlsZHJlblxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Jlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlID0gcmVxdWlyZSgnLi9SZXN0U2hhcmVMaW5rQWNjZXNzVHlwZScpO1xuXG52YXIgX1Jlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Jlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlKTtcblxudmFyIF9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlciA9IHJlcXVpcmUoJy4vUmVzdFNoYXJlTGlua1RhcmdldFVzZXInKTtcblxudmFyIF9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcik7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5ID0gcmVxdWlyZSgnLi9TZXJ2aWNlUmVzb3VyY2VQb2xpY3knKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgUmVzdFNoYXJlTGluayBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFNoYXJlTGlua1xuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0U2hhcmVMaW5rID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+UmVzdFNoYXJlTGluazwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmtcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0U2hhcmVMaW5rKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVzdFNoYXJlTGluayk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxpbmtIYXNoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxpbmtVcmwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlclV1aWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVXNlckxvZ2luID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhc3N3b3JkUmVxdWlyZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWNjZXNzU3RhcnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQWNjZXNzRW5kID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1heERvd25sb2FkcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DdXJyZW50RG93bmxvYWRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlZpZXdUZW1wbGF0ZU5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVGFyZ2V0VXNlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUmVzdHJpY3RUb1RhcmdldFVzZXJzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlJvb3ROb2RlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5QZXJtaXNzaW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Qb2xpY2llc0NvbnRleHRFZGl0YWJsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0U2hhcmVMaW5rPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0U2hhcmVMaW5rfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua30gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0U2hhcmVMaW5rPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFNoYXJlTGluay5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNoYXJlTGluaygpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVdWlkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGlua0hhc2gnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGlua0hhc2gnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMaW5rSGFzaCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGlua1VybCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW5rVXJsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGlua1VybCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGVzY3JpcHRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGVzY3JpcHRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZXNjcmlwdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlclV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXNlclV1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVc2VyVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVXNlckxvZ2luJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1VzZXJMb2dpbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJMb2dpbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFzc3dvcmRSZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQYXNzd29yZFJlcXVpcmVkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGFzc3dvcmRSZXF1aXJlZCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FjY2Vzc1N0YXJ0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0FjY2Vzc1N0YXJ0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQWNjZXNzU3RhcnQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FjY2Vzc0VuZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBY2Nlc3NFbmQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBY2Nlc3NFbmQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01heERvd25sb2FkcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNYXhEb3dubG9hZHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNYXhEb3dubG9hZHMnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0N1cnJlbnREb3dubG9hZHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQ3VycmVudERvd25sb2FkcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0N1cnJlbnREb3dubG9hZHMnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1ZpZXdUZW1wbGF0ZU5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVmlld1RlbXBsYXRlTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1ZpZXdUZW1wbGF0ZU5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RhcmdldFVzZXJzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RhcmdldFVzZXJzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVGFyZ2V0VXNlcnMnXSwgeyAnU3RyaW5nJzogX1Jlc3RTaGFyZUxpbmtUYXJnZXRVc2VyMlsnZGVmYXVsdCddIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc3RyaWN0VG9UYXJnZXRVc2VycycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZXN0cmljdFRvVGFyZ2V0VXNlcnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZXN0cmljdFRvVGFyZ2V0VXNlcnMnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdSb290Tm9kZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUm9vdE5vZGVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUm9vdE5vZGVzJ10sIFtfVHJlZU5vZGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQZXJtaXNzaW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQZXJtaXNzaW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1Blcm1pc3Npb25zJ10sIFtfUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQb2xpY2llcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydQb2xpY2llcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BvbGljaWVzJ10sIFtfU2VydmljZVJlc291cmNlUG9saWN5MlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUG9saWNpZXNDb250ZXh0RWRpdGFibGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQb2xpY2llc0NvbnRleHRFZGl0YWJsZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNoYXJlTGluaztcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RTaGFyZUxpbms7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGlua0hhc2hcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExpbmtVcmxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExhYmVsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBEZXNjcmlwdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVXNlclV1aWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFVzZXJMb2dpblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFBhc3N3b3JkUmVxdWlyZWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEFjY2Vzc1N0YXJ0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBBY2Nlc3NFbmRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1heERvd25sb2Fkc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQ3VycmVudERvd25sb2Fkc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gVmlld1RlbXBsYXRlTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBtb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua1RhcmdldFVzZXI+fSBUYXJnZXRVc2Vyc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFJlc3RyaWN0VG9UYXJnZXRVc2Vyc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZU5vZGU+fSBSb290Tm9kZXNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlPn0gUGVybWlzc2lvbnNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeT59IFBvbGljaWVzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUG9saWNpZXNDb250ZXh0RWRpdGFibGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIFJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBSZXN0U2hhcmVMaW5rQWNjZXNzVHlwZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlKTtcblxuICAgICAgICB0aGlzLk5vQWNjZXNzID0gXCJOb0FjY2Vzc1wiO1xuICAgICAgICB0aGlzLlByZXZpZXcgPSBcIlByZXZpZXdcIjtcbiAgICAgICAgdGhpcy5Eb3dubG9hZCA9IFwiRG93bmxvYWRcIjtcbiAgICAgICAgdGhpcy5VcGxvYWQgPSBcIlVwbG9hZFwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPlJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGV9IFRoZSBlbnVtIDxjb2RlPlJlc3RTaGFyZUxpbmtBY2Nlc3NUeXBlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGUuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBSZXN0U2hhcmVMaW5rQWNjZXNzVHlwZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gUmVzdFNoYXJlTGlua0FjY2Vzc1R5cGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIk5vQWNjZXNzXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUHJldmlld1wiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkRvd25sb2FkXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiVXBsb2FkXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlciBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFNoYXJlTGlua1RhcmdldFVzZXJcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFNoYXJlTGlua1RhcmdldFVzZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmtUYXJnZXRVc2VyXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFNoYXJlTGlua1RhcmdldFVzZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcik7XG5cbiAgICAgICAgdGhpcy5EaXNwbGF5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRvd25sb2FkQ291bnQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFNoYXJlTGlua1RhcmdldFVzZXI8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RTaGFyZUxpbmtUYXJnZXRVc2VyfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFNoYXJlTGlua1RhcmdldFVzZXJ9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFNoYXJlTGlua1RhcmdldFVzZXI8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlci5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFNoYXJlTGlua1RhcmdldFVzZXIoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rpc3BsYXknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGlzcGxheSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rpc3BsYXknXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rvd25sb2FkQ291bnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRG93bmxvYWRDb3VudCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rvd25sb2FkQ291bnQnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBEaXNwbGF5XG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFNoYXJlTGlua1RhcmdldFVzZXI7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0U2hhcmVMaW5rVGFyZ2V0VXNlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBEb3dubG9hZENvdW50XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfQWN0aXZpdHlTdWJzY3JpcHRpb24gPSByZXF1aXJlKCcuL0FjdGl2aXR5U3Vic2NyaXB0aW9uJyk7XG5cbnZhciBfQWN0aXZpdHlTdWJzY3JpcHRpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWN0aXZpdHlTdWJzY3JpcHRpb24pO1xuXG4vKipcbiogVGhlIFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbiBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbjwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbjwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbjwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RTdWJzY3JpcHRpb25zQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzdWJzY3JpcHRpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3N1YnNjcmlwdGlvbnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydzdWJzY3JpcHRpb25zJ10sIFtfQWN0aXZpdHlTdWJzY3JpcHRpb24yWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvQWN0aXZpdHlTdWJzY3JpcHRpb24+fSBzdWJzY3JpcHRpb25zXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9SZXN0VGVtcGxhdGVOb2RlID0gcmVxdWlyZSgnLi9SZXN0VGVtcGxhdGVOb2RlJyk7XG5cbnZhciBfUmVzdFRlbXBsYXRlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZXN0VGVtcGxhdGVOb2RlKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeScpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3kpO1xuXG4vKipcbiogVGhlIFJlc3RUZW1wbGF0ZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFRlbXBsYXRlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RUZW1wbGF0ZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RUZW1wbGF0ZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RUZW1wbGF0ZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RUZW1wbGF0ZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RUZW1wbGF0ZSk7XG5cbiAgICAgICAgdGhpcy5VVUlEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuUG9saWNpZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFRlbXBsYXRlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGV9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGV9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFRlbXBsYXRlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFRlbXBsYXRlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0VGVtcGxhdGUoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1VVSUQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVVVJRCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VVSUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xhYmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhYmVsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZSddID0gX1Jlc3RUZW1wbGF0ZU5vZGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydOb2RlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXMnXSwgW19TZXJ2aWNlUmVzb3VyY2VQb2xpY3kyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVVVJRFxuICAgICovXG4gICAgcmV0dXJuIFJlc3RUZW1wbGF0ZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RUZW1wbGF0ZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBMYWJlbFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGVOb2RlfSBOb2RlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3k+fSBQb2xpY2llc1xuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RUZW1wbGF0ZU5vZGUgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RUZW1wbGF0ZU5vZGVcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFRlbXBsYXRlTm9kZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RUZW1wbGF0ZU5vZGU8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGVOb2RlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFRlbXBsYXRlTm9kZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RUZW1wbGF0ZU5vZGUpO1xuXG4gICAgICAgIHRoaXMuSXNGaWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkJpbmFyeVVVVUlEID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkVtYmVkUGF0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DaGlsZHJlbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VGVtcGxhdGVOb2RlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VGVtcGxhdGVOb2RlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFRlbXBsYXRlTm9kZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VGVtcGxhdGVOb2RlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFRlbXBsYXRlTm9kZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFRlbXBsYXRlTm9kZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNGaWxlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0lzRmlsZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lzRmlsZSddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0JpbmFyeVVVVUlEJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0JpbmFyeVVVVUlEJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQmluYXJ5VVVVSUQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0VtYmVkUGF0aCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFbWJlZFBhdGgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydFbWJlZFBhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0NoaWxkcmVuJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NoaWxkcmVuJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ2hpbGRyZW4nXSwgW1Jlc3RUZW1wbGF0ZU5vZGVdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IElzRmlsZVxuICAgICovXG4gICAgcmV0dXJuIFJlc3RUZW1wbGF0ZU5vZGU7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0VGVtcGxhdGVOb2RlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEJpbmFyeVVVVUlEXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBFbWJlZFBhdGhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL1Jlc3RUZW1wbGF0ZU5vZGU+fSBDaGlsZHJlblxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RVc2VyQm9va21hcmtzUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RVc2VyQm9va21hcmtzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RVc2VyQm9va21hcmtzUmVxdWVzdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0VXNlckJvb2ttYXJrc1JlcXVlc3R9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0VXNlckJvb2ttYXJrc1JlcXVlc3QoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICByZXR1cm4gUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFVzZXJCb29rbWFya3NSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0VXNlckpvYlJlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0VXNlckpvYlJlcXVlc3QgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0VXNlckpvYlJlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0VXNlckpvYlJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0VXNlckpvYlJlcXVlc3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0VXNlckpvYlJlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuSm9iTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Kc29uUGFyYW1ldGVycyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VXNlckpvYlJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VXNlckpvYlJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VXNlckpvYlJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RVc2VySm9iUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSm9iTmFtZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKb2JOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSm9iTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSnNvblBhcmFtZXRlcnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSnNvblBhcmFtZXRlcnMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydKc29uUGFyYW1ldGVycyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEpvYk5hbWVcbiAgICAqL1xuICAgIHJldHVybiBSZXN0VXNlckpvYlJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0VXNlckpvYlJlcXVlc3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSnNvblBhcmFtZXRlcnNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBSZXN0VXNlckpvYlJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0VXNlckpvYlJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RVc2VySm9iUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0VXNlckpvYlJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RVc2VySm9iUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0VXNlckpvYlJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLkpvYlV1aWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFVzZXJKb2JSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VySm9iUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFVzZXJKb2JSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFJlc3RVc2VySm9iUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RVc2VySm9iUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0pvYlV1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSm9iVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pvYlV1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBKb2JVdWlkXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFVzZXJKb2JSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RVc2VySm9iUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX0pvYnNKb2IgPSByZXF1aXJlKCcuL0pvYnNKb2InKTtcblxudmFyIF9Kb2JzSm9iMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0pvYnNKb2IpO1xuXG4vKipcbiogVGhlIFJlc3RVc2VySm9ic0NvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RVc2VySm9ic0NvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFVzZXJKb2JzQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RVc2VySm9ic0NvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0VXNlckpvYnNDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFVzZXJKb2JzQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RVc2VySm9ic0NvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuSm9icyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VXNlckpvYnNDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VXNlckpvYnNDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJKb2JzQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VXNlckpvYnNDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFVzZXJKb2JzQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFVzZXJKb2JzQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSm9icycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKb2JzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSm9icyddLCBbX0pvYnNKb2IyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSm9ic0pvYj59IEpvYnNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0VXNlckpvYnNDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFVzZXJKb2JzQ29sbGVjdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtVXNlck1ldGEgPSByZXF1aXJlKCcuL0lkbVVzZXJNZXRhJyk7XG5cbnZhciBfSWRtVXNlck1ldGEyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtVXNlck1ldGEpO1xuXG4vKipcbiogVGhlIFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFVzZXJNZXRhQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RVc2VyTWV0YUNvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0VXNlck1ldGFDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFVzZXJNZXRhQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RVc2VyTWV0YUNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuTWV0YWRhdGFzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlJlc3RVc2VyTWV0YUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyTWV0YUNvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0VXNlck1ldGFDb2xsZWN0aW9ufSBUaGUgcG9wdWxhdGVkIDxjb2RlPlJlc3RVc2VyTWV0YUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VXNlck1ldGFDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0VXNlck1ldGFDb2xsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXRhZGF0YXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWV0YWRhdGFzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWV0YWRhdGFzJ10sIFtfSWRtVXNlck1ldGEyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtVXNlck1ldGE+fSBNZXRhZGF0YXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0VXNlck1ldGFDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFVzZXJNZXRhQ29sbGVjdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfSWRtVXNlck1ldGFOYW1lc3BhY2UgPSByZXF1aXJlKCcuL0lkbVVzZXJNZXRhTmFtZXNwYWNlJyk7XG5cbnZhciBfSWRtVXNlck1ldGFOYW1lc3BhY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtVXNlck1ldGFOYW1lc3BhY2UpO1xuXG4vKipcbiogVGhlIFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb25cbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuTmFtZXNwYWNlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFVzZXJNZXRhTmFtZXNwYWNlQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTmFtZXNwYWNlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOYW1lc3BhY2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTmFtZXNwYWNlcyddLCBbX0lkbVVzZXJNZXRhTmFtZXNwYWNlMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVVzZXJNZXRhTmFtZXNwYWNlPn0gTmFtZXNwYWNlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RVc2VyTWV0YU5hbWVzcGFjZUNvbGxlY3Rpb247XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0VXNlck1ldGFOYW1lc3BhY2VDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Xb3Jrc3BhY2UgPSByZXF1aXJlKCcuL0lkbVdvcmtzcGFjZScpO1xuXG52YXIgX0lkbVdvcmtzcGFjZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Xb3Jrc3BhY2UpO1xuXG4vKipcbiogVGhlIFJlc3RVc2VyU3RhdGVSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvUmVzdFVzZXJTdGF0ZVJlc3BvbnNlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RVc2VyU3RhdGVSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RVc2VyU3RhdGVSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1Jlc3RVc2VyU3RhdGVSZXNwb25zZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RVc2VyU3RhdGVSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RVc2VyU3RhdGVSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5Xb3Jrc3BhY2VzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldvcmtzcGFjZXNBY2Nlc3NlcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VXNlclN0YXRlUmVzcG9uc2U8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyU3RhdGVSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1Jlc3RVc2VyU3RhdGVSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VXNlclN0YXRlUmVzcG9uc2U8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0VXNlclN0YXRlUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFJlc3RVc2VyU3RhdGVSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV29ya3NwYWNlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXb3Jrc3BhY2VzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV29ya3NwYWNlcyddLCBbX0lkbVdvcmtzcGFjZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dvcmtzcGFjZXNBY2Nlc3NlcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXb3Jrc3BhY2VzQWNjZXNzZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXb3Jrc3BhY2VzQWNjZXNzZXMnXSwgeyAnU3RyaW5nJzogJ1N0cmluZycgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48bW9kdWxlOm1vZGVsL0lkbVdvcmtzcGFjZT59IFdvcmtzcGFjZXNcbiAgICAqL1xuICAgIHJldHVybiBSZXN0VXNlclN0YXRlUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXN0VXNlclN0YXRlUmVzcG9uc2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge09iamVjdC48U3RyaW5nLCBTdHJpbmc+fSBXb3Jrc3BhY2VzQWNjZXNzZXNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Vc2VyID0gcmVxdWlyZSgnLi9JZG1Vc2VyJyk7XG5cbnZhciBfSWRtVXNlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Vc2VyKTtcblxuLyoqXG4qIFRoZSBSZXN0VXNlcnNDb2xsZWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0VXNlcnNDb2xsZWN0aW9uXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFJlc3RVc2Vyc0NvbGxlY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0VXNlcnNDb2xsZWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFVzZXJzQ29sbGVjdGlvblxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFJlc3RVc2Vyc0NvbGxlY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0VXNlcnNDb2xsZWN0aW9uKTtcblxuICAgICAgICB0aGlzLkdyb3VwcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Vc2VycyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Ub3RhbCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5SZXN0VXNlcnNDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VXNlcnNDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFVzZXJzQ29sbGVjdGlvbn0gVGhlIHBvcHVsYXRlZCA8Y29kZT5SZXN0VXNlcnNDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFVzZXJzQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFVzZXJzQ29sbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR3JvdXBzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0dyb3VwcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0dyb3VwcyddLCBbX0lkbVVzZXIyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVc2VycycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydVc2VycyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1VzZXJzJ10sIFtfSWRtVXNlcjJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RvdGFsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RvdGFsJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVG90YWwnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9JZG1Vc2VyPn0gR3JvdXBzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFVzZXJzQ29sbGVjdGlvbjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlc3RVc2Vyc0NvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtVXNlcj59IFVzZXJzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBUb3RhbFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVWZXJzaW9uaW5nUG9saWN5ID0gcmVxdWlyZSgnLi9UcmVlVmVyc2lvbmluZ1BvbGljeScpO1xuXG52YXIgX1RyZWVWZXJzaW9uaW5nUG9saWN5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVWZXJzaW9uaW5nUG9saWN5KTtcblxuLyoqXG4qIFRoZSBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24gbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1Jlc3RWZXJzaW9uaW5nUG9saWN5Q29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb248L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuUG9saWNpZXMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb259IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9SZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBSZXN0VmVyc2lvbmluZ1BvbGljeUNvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BvbGljaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BvbGljaWVzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUG9saWNpZXMnXSwgW19UcmVlVmVyc2lvbmluZ1BvbGljeTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlVmVyc2lvbmluZ1BvbGljeT59IFBvbGljaWVzXG4gICAgKi9cbiAgICByZXR1cm4gUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFZlcnNpb25pbmdQb2xpY3lDb2xsZWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9JZG1Xb3Jrc3BhY2UgPSByZXF1aXJlKCcuL0lkbVdvcmtzcGFjZScpO1xuXG52YXIgX0lkbVdvcmtzcGFjZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JZG1Xb3Jrc3BhY2UpO1xuXG4vKipcbiogVGhlIFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9SZXN0V29ya3NwYWNlQ29sbGVjdGlvblxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBSZXN0V29ya3NwYWNlQ29sbGVjdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb25cbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBSZXN0V29ya3NwYWNlQ29sbGVjdGlvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uKTtcblxuICAgICAgICB0aGlzLldvcmtzcGFjZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVG90YWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+UmVzdFdvcmtzcGFjZUNvbGxlY3Rpb248L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1Jlc3RXb3Jrc3BhY2VDb2xsZWN0aW9ufSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb259IFRoZSBwb3B1bGF0ZWQgPGNvZGU+UmVzdFdvcmtzcGFjZUNvbGxlY3Rpb248L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBSZXN0V29ya3NwYWNlQ29sbGVjdGlvbi5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb24oKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dvcmtzcGFjZXMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV29ya3NwYWNlcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1dvcmtzcGFjZXMnXSwgW19JZG1Xb3Jrc3BhY2UyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb3RhbCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUb3RhbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1RvdGFsJ10sICdOdW1iZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvSWRtV29ya3NwYWNlPn0gV29ya3NwYWNlc1xuICAgICovXG4gICAgcmV0dXJuIFJlc3RXb3Jrc3BhY2VDb2xsZWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVzdFdvcmtzcGFjZUNvbGxlY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gVG90YWxcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgU2VydmljZU9wZXJhdGlvblR5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIFNlcnZpY2VPcGVyYXRpb25UeXBlID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXJ2aWNlT3BlcmF0aW9uVHlwZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlcnZpY2VPcGVyYXRpb25UeXBlKTtcblxuICAgICAgICB0aGlzLk9SID0gXCJPUlwiO1xuICAgICAgICB0aGlzLkFORCA9IFwiQU5EXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+U2VydmljZU9wZXJhdGlvblR5cGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9TZXJ2aWNlT3BlcmF0aW9uVHlwZX0gVGhlIGVudW0gPGNvZGU+U2VydmljZU9wZXJhdGlvblR5cGU8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBTZXJ2aWNlT3BlcmF0aW9uVHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFNlcnZpY2VPcGVyYXRpb25UeXBlO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBTZXJ2aWNlT3BlcmF0aW9uVHlwZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiT1JcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJBTkRcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1Byb3RvYnVmQW55ID0gcmVxdWlyZSgnLi9Qcm90b2J1ZkFueScpO1xuXG52YXIgX1Byb3RvYnVmQW55MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Byb3RvYnVmQW55KTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSA9IHJlcXVpcmUoJy4vU2VydmljZU9wZXJhdGlvblR5cGUnKTtcblxudmFyIF9TZXJ2aWNlT3BlcmF0aW9uVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlT3BlcmF0aW9uVHlwZSk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5Jyk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkpO1xuXG4vKipcbiogVGhlIFNlcnZpY2VRdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvU2VydmljZVF1ZXJ5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFNlcnZpY2VRdWVyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlNlcnZpY2VRdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1NlcnZpY2VRdWVyeVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFNlcnZpY2VRdWVyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlcnZpY2VRdWVyeSk7XG5cbiAgICAgICAgdGhpcy5TdWJRdWVyaWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9wZXJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZXNvdXJjZVBvbGljeVF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk9mZnNldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ncm91cEJ5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlNlcnZpY2VRdWVyeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvU2VydmljZVF1ZXJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvU2VydmljZVF1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlNlcnZpY2VRdWVyeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFNlcnZpY2VRdWVyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgU2VydmljZVF1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWJRdWVyaWVzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1N1YlF1ZXJpZXMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTdWJRdWVyaWVzJ10sIFtfUHJvdG9idWZBbnkyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPcGVyYXRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT3BlcmF0aW9uJ10gPSBfU2VydmljZU9wZXJhdGlvblR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydPcGVyYXRpb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVzb3VyY2VQb2xpY3lRdWVyeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZXNvdXJjZVBvbGljeVF1ZXJ5J10gPSBfU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydSZXNvdXJjZVBvbGljeVF1ZXJ5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ09mZnNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydPZmZzZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydPZmZzZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0xpbWl0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xpbWl0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGltaXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2dyb3VwQnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnZ3JvdXBCeSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ2dyb3VwQnknXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9Qcm90b2J1ZkFueT59IFN1YlF1ZXJpZXNcbiAgICAqL1xuICAgIHJldHVybiBTZXJ2aWNlUXVlcnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTZXJ2aWNlUXVlcnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9TZXJ2aWNlT3BlcmF0aW9uVHlwZX0gT3BlcmF0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5fSBSZXNvdXJjZVBvbGljeVF1ZXJ5XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExpbWl0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBncm91cEJ5XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uID0gcmVxdWlyZSgnLi9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24nKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uKTtcblxudmFyIF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QgPSByZXF1aXJlKCcuL1NlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdCcpO1xuXG52YXIgX1NlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QpO1xuXG4vKipcbiogVGhlIFNlcnZpY2VSZXNvdXJjZVBvbGljeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFNlcnZpY2VSZXNvdXJjZVBvbGljeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlNlcnZpY2VSZXNvdXJjZVBvbGljeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFNlcnZpY2VSZXNvdXJjZVBvbGljeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlcnZpY2VSZXNvdXJjZVBvbGljeSk7XG5cbiAgICAgICAgdGhpcy5pZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZXNvdXJjZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuU3ViamVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5FZmZlY3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuSnNvbkNvbmRpdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3l9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3l9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgU2VydmljZVJlc291cmNlUG9saWN5LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBTZXJ2aWNlUmVzb3VyY2VQb2xpY3koKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2lkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2lkJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnaWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1Jlc291cmNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1Jlc291cmNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUmVzb3VyY2UnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FjdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBY3Rpb24nXSA9IF9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24yWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydBY3Rpb24nXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3ViamVjdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWJqZWN0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3ViamVjdCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRWZmZWN0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0VmZmVjdCddID0gX1NlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0VmZmVjdCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdKc29uQ29uZGl0aW9ucycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydKc29uQ29uZGl0aW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0pzb25Db25kaXRpb25zJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gaWRcbiAgICAqL1xuICAgIHJldHVybiBTZXJ2aWNlUmVzb3VyY2VQb2xpY3k7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTZXJ2aWNlUmVzb3VyY2VQb2xpY3k7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUmVzb3VyY2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9ufSBBY3Rpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFN1YmplY3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0fSBFZmZlY3RcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEpzb25Db25kaXRpb25zXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIFNlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbi5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24oKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb24pO1xuXG4gICAgICAgIHRoaXMuQU5ZID0gXCJBTllcIjtcbiAgICAgICAgdGhpcy5PV05FUiA9IFwiT1dORVJcIjtcbiAgICAgICAgdGhpcy5SRUFEID0gXCJSRUFEXCI7XG4gICAgICAgIHRoaXMuV1JJVEUgPSBcIldSSVRFXCI7XG4gICAgICAgIHRoaXMuRURJVF9SVUxFUyA9IFwiRURJVF9SVUxFU1wiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPlNlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbjwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeUFjdGlvbn0gVGhlIGVudW0gPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gU2VydmljZVJlc291cmNlUG9saWN5QWN0aW9uO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lBY3Rpb247XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIkFOWVwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIk9XTkVSXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiUkVBRFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIldSSVRFXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiRURJVF9SVUxFU1wiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBFbnVtIGNsYXNzIFNlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdC5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3QpO1xuXG4gICAgICAgIHRoaXMuZGVueSA9IFwiZGVueVwiO1xuICAgICAgICB0aGlzLmFsbG93ID0gXCJhbGxvd1wiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPlNlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdDwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVBvbGljeUVmZmVjdH0gVGhlIGVudW0gPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0PC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gU2VydmljZVJlc291cmNlUG9saWN5UG9saWN5RWZmZWN0O1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lQb2xpY3lFZmZlY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcImRlbnlcIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJhbGxvd1wiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+U2VydmljZVJlc291cmNlUG9saWN5UXVlcnk8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkpO1xuXG4gICAgICAgIHRoaXMuU3ViamVjdHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRW1wdHkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQW55ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9TZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1NlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgU2VydmljZVJlc291cmNlUG9saWN5UXVlcnkuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTdWJqZWN0cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWJqZWN0cyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1YmplY3RzJ10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0VtcHR5JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0VtcHR5J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRW1wdHknXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBbnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQW55J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQW55J10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtBcnJheS48U3RyaW5nPn0gU3ViamVjdHNcbiAgICAqL1xuICAgIHJldHVybiBTZXJ2aWNlUmVzb3VyY2VQb2xpY3lRdWVyeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNlcnZpY2VSZXNvdXJjZVBvbGljeVF1ZXJ5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBFbXB0eVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IEFueVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG52YXIgX1RyZWVOb2RlQ2hhbmdlRXZlbnQgPSByZXF1aXJlKCcuL1RyZWVOb2RlQ2hhbmdlRXZlbnQnKTtcblxudmFyIF9UcmVlTm9kZUNoYW5nZUV2ZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlQ2hhbmdlRXZlbnQpO1xuXG4vKipcbiogVGhlIFRyZWVDaGFuZ2VMb2cgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1RyZWVDaGFuZ2VMb2dcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZUNoYW5nZUxvZyA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVDaGFuZ2VMb2c8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9UcmVlQ2hhbmdlTG9nXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZUNoYW5nZUxvZygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVDaGFuZ2VMb2cpO1xuXG4gICAgICAgIHRoaXMuVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NVGltZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TaXplID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkRhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuT3duZXJVdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkV2ZW50ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVDaGFuZ2VMb2c8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVDaGFuZ2VMb2d9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlQ2hhbmdlTG9nfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVDaGFuZ2VMb2c8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlQ2hhbmdlTG9nLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlQ2hhbmdlTG9nKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydVdWlkJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEZXNjcmlwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEZXNjcmlwdGlvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rlc2NyaXB0aW9uJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNVGltZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNVGltZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01UaW1lJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdTaXplJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NpemUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydTaXplJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEYXRhJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0RhdGEnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEYXRhJ10sICdCbG9iJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnT3duZXJVdWlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ093bmVyVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ093bmVyVXVpZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRXZlbnQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRXZlbnQnXSA9IF9UcmVlTm9kZUNoYW5nZUV2ZW50MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnRXZlbnQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBUcmVlQ2hhbmdlTG9nO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZUNoYW5nZUxvZztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBEZXNjcmlwdGlvblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTVRpbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFNpemVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtCbG9ifSBEYXRhXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPd25lclV1aWRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGVDaGFuZ2VFdmVudH0gRXZlbnRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBUcmVlR2VvUG9pbnQgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1RyZWVHZW9Qb2ludFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlR2VvUG9pbnQgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5UcmVlR2VvUG9pbnQ8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9UcmVlR2VvUG9pbnRcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBUcmVlR2VvUG9pbnQoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlR2VvUG9pbnQpO1xuXG4gICAgICAgIHRoaXMuTGF0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkxvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlR2VvUG9pbnQ8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVHZW9Qb2ludH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVHZW9Qb2ludH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlR2VvUG9pbnQ8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlR2VvUG9pbnQuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVHZW9Qb2ludCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGF0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xhdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xhdCddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTG9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0xvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xvbiddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtOdW1iZXJ9IExhdFxuICAgICovXG4gICAgcmV0dXJuIFRyZWVHZW9Qb2ludDtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVHZW9Qb2ludDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBMb25cbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlR2VvUG9pbnQgPSByZXF1aXJlKCcuL1RyZWVHZW9Qb2ludCcpO1xuXG52YXIgX1RyZWVHZW9Qb2ludDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlR2VvUG9pbnQpO1xuXG4vKipcbiogVGhlIFRyZWVHZW9RdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZUdlb1F1ZXJ5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVHZW9RdWVyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVHZW9RdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVHZW9RdWVyeVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVHZW9RdWVyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVHZW9RdWVyeSk7XG5cbiAgICAgICAgdGhpcy5DZW50ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGlzdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVG9wTGVmdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Cb3R0b21SaWdodCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlR2VvUXVlcnk8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVHZW9RdWVyeX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVHZW9RdWVyeX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlR2VvUXVlcnk8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlR2VvUXVlcnkuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVHZW9RdWVyeSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2VudGVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NlbnRlciddID0gX1RyZWVHZW9Qb2ludDJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ0NlbnRlciddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdEaXN0YW5jZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydEaXN0YW5jZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Rpc3RhbmNlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdUb3BMZWZ0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1RvcExlZnQnXSA9IF9UcmVlR2VvUG9pbnQyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydUb3BMZWZ0J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0JvdHRvbVJpZ2h0JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0JvdHRvbVJpZ2h0J10gPSBfVHJlZUdlb1BvaW50MlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnQm90dG9tUmlnaHQnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZUdlb1BvaW50fSBDZW50ZXJcbiAgICAqL1xuICAgIHJldHVybiBUcmVlR2VvUXVlcnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlR2VvUXVlcnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEV4YW1wbGUgZm9ybWF0cyBzdXBwb3J0ZWQ6IFxcXCI1aW5cXFwiIFxcXCI1aW5jaFxcXCIgXFxcIjd5ZFxcXCIgXFxcIjd5YXJkc1xcXCIgXFxcIjlmdFxcXCIgXFxcIjlmZWV0XFxcIiBcXFwiMTFrbVxcXCIgXFxcIjExa2lsb21ldGVyc1xcXCIgXFxcIjNubVxcXCIgXFxcIjNuYXV0aWNhbG1pbGVzXFxcIiBcXFwiMTNtbVxcXCIgXFxcIjEzbWlsbGltZXRlcnNcXFwiIFxcXCIxNWNtXFxcIiBcXFwiMTVjZW50aW1ldGVyc1xcXCIgXFxcIjE3bWlcXFwiIFxcXCIxN21pbGVzXFxcIiBcXFwiMTltXFxcIiBcXFwiMTltZXRlcnNcXFwiIElmIHRoZSB1bml0IGNhbm5vdCBiZSBkZXRlcm1pbmVkLCB0aGUgZW50aXJlIHN0cmluZyBpcyBwYXJzZWQgYW5kIHRoZSB1bml0IG9mIG1ldGVycyBpcyBhc3N1bWVkLlxuKiBAbWVtYmVyIHtTdHJpbmd9IERpc3RhbmNlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVHZW9Qb2ludH0gVG9wTGVmdFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlR2VvUG9pbnR9IEJvdHRvbVJpZ2h0XG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG52YXIgX1RyZWVOb2RlVHlwZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGVUeXBlJyk7XG5cbnZhciBfVHJlZU5vZGVUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVOb2RlVHlwZSk7XG5cbi8qKlxuKiBUaGUgVHJlZUxpc3ROb2Rlc1JlcXVlc3QgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1RyZWVMaXN0Tm9kZXNSZXF1ZXN0XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVMaXN0Tm9kZXNSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZUxpc3ROb2Rlc1JlcXVlc3Q8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9UcmVlTGlzdE5vZGVzUmVxdWVzdFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVMaXN0Tm9kZXNSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZUxpc3ROb2Rlc1JlcXVlc3QpO1xuXG4gICAgICAgIHRoaXMuTm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZWN1cnNpdmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQW5jZXN0b3JzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldpdGhWZXJzaW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5XaXRoQ29tbWl0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MaW1pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5PZmZzZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRmlsdGVyVHlwZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlTGlzdE5vZGVzUmVxdWVzdDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZUxpc3ROb2Rlc1JlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlTGlzdE5vZGVzUmVxdWVzdH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlTGlzdE5vZGVzUmVxdWVzdDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVMaXN0Tm9kZXNSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlTGlzdE5vZGVzUmVxdWVzdCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTm9kZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydOb2RlJ10gPSBfVHJlZU5vZGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydOb2RlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1JlY3Vyc2l2ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydSZWN1cnNpdmUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZWN1cnNpdmUnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBbmNlc3RvcnMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQW5jZXN0b3JzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQW5jZXN0b3JzJ10sICdCb29sZWFuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV2l0aFZlcnNpb25zJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dpdGhWZXJzaW9ucyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1dpdGhWZXJzaW9ucyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dpdGhDb21taXRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dpdGhDb21taXRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV2l0aENvbW1pdHMnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdMaW1pdCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaW1pdCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0xpbWl0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdPZmZzZXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnT2Zmc2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnT2Zmc2V0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdGaWx0ZXJUeXBlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0ZpbHRlclR5cGUnXSA9IF9UcmVlTm9kZVR5cGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydGaWx0ZXJUeXBlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlfSBOb2RlXG4gICAgKi9cbiAgICByZXR1cm4gVHJlZUxpc3ROb2Rlc1JlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlTGlzdE5vZGVzUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gUmVjdXJzaXZlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gQW5jZXN0b3JzXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gV2l0aFZlcnNpb25zXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gV2l0aENvbW1pdHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExpbWl0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBPZmZzZXRcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGVUeXBlfSBGaWx0ZXJUeXBlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZUNoYW5nZUxvZyA9IHJlcXVpcmUoJy4vVHJlZUNoYW5nZUxvZycpO1xuXG52YXIgX1RyZWVDaGFuZ2VMb2cyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZUNoYW5nZUxvZyk7XG5cbnZhciBfVHJlZU5vZGVUeXBlID0gcmVxdWlyZSgnLi9UcmVlTm9kZVR5cGUnKTtcblxudmFyIF9UcmVlTm9kZVR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGVUeXBlKTtcblxudmFyIF9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoID0gcmVxdWlyZSgnLi9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoJyk7XG5cbnZhciBfVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoKTtcblxuLyoqXG4qIFRoZSBUcmVlTm9kZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZU5vZGVcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZU5vZGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5UcmVlTm9kZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVOb2RlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZU5vZGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlTm9kZSk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhdGggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5TaXplID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1UaW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRXRhZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db21taXRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1ldGFTdG9yZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5BcHBlYXJzSW4gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZU5vZGU8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZU5vZGU8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlTm9kZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZU5vZGUoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1V1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1V1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1R5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVHlwZSddID0gX1RyZWVOb2RlVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1R5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU2l6ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTaXplJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2l6ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTVRpbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTVRpbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNVGltZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTW9kZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNb2RlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTW9kZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRXRhZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydFdGFnJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRXRhZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29tbWl0cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb21taXRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ29tbWl0cyddLCBbX1RyZWVDaGFuZ2VMb2cyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXRhU3RvcmUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWV0YVN0b3JlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWV0YVN0b3JlJ10sIHsgJ1N0cmluZyc6ICdTdHJpbmcnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0FwcGVhcnNJbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBcHBlYXJzSW4nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydBcHBlYXJzSW4nXSwgW19UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoMlsnZGVmYXVsdCddXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IFV1aWRcbiAgICAqL1xuICAgIHJldHVybiBUcmVlTm9kZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVOb2RlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFBhdGhcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGVUeXBlfSBUeXBlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBTaXplXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNVGltZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTW9kZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRXRhZ1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZUNoYW5nZUxvZz59IENvbW1pdHNcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtPYmplY3QuPFN0cmluZywgU3RyaW5nPn0gTWV0YVN0b3JlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoPn0gQXBwZWFyc0luXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlID0gcmVxdWlyZSgnLi9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUnKTtcblxudmFyIF9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTm9kZUNoYW5nZUV2ZW50RXZlbnRUeXBlKTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgVHJlZU5vZGVDaGFuZ2VFdmVudCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZU5vZGVDaGFuZ2VFdmVudFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlTm9kZUNoYW5nZUV2ZW50ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZU5vZGVDaGFuZ2VFdmVudDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVOb2RlQ2hhbmdlRXZlbnRcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBUcmVlTm9kZUNoYW5nZUV2ZW50KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZU5vZGVDaGFuZ2VFdmVudCk7XG5cbiAgICAgICAgdGhpcy5UeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNvdXJjZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5UYXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZU5vZGVDaGFuZ2VFdmVudDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZU5vZGVDaGFuZ2VFdmVudH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlQ2hhbmdlRXZlbnR9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZU5vZGVDaGFuZ2VFdmVudDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVOb2RlQ2hhbmdlRXZlbnQuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVOb2RlQ2hhbmdlRXZlbnQoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1R5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVHlwZSddID0gX05vZGVDaGFuZ2VFdmVudEV2ZW50VHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1R5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU291cmNlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NvdXJjZSddID0gX1RyZWVOb2RlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnU291cmNlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1RhcmdldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydUYXJnZXQnXSA9IF9UcmVlTm9kZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1RhcmdldCddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9Ob2RlQ2hhbmdlRXZlbnRFdmVudFR5cGV9IFR5cGVcbiAgICAqL1xuICAgIHJldHVybiBUcmVlTm9kZUNoYW5nZUV2ZW50O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZU5vZGVDaGFuZ2VFdmVudDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlfSBTb3VyY2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IFRhcmdldFxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogRW51bSBjbGFzcyBUcmVlTm9kZVR5cGUuXG4qIEBlbnVtIHt9XG4qIEByZWFkb25seVxuKi9cblxudmFyIFRyZWVOb2RlVHlwZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVHJlZU5vZGVUeXBlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZU5vZGVUeXBlKTtcblxuICAgICAgICB0aGlzLlVOS05PV04gPSBcIlVOS05PV05cIjtcbiAgICAgICAgdGhpcy5MRUFGID0gXCJMRUFGXCI7XG4gICAgICAgIHRoaXMuQ09MTEVDVElPTiA9IFwiQ09MTEVDVElPTlwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPlRyZWVOb2RlVHlwZTwvY29kZT4gZW51bSB2YWx1ZSBmcm9tIGEgSmF2YXNjcmlwdCBvYmplY3QgbmFtZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBlbnVtIHZhbHVlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVOb2RlVHlwZX0gVGhlIGVudW0gPGNvZGU+VHJlZU5vZGVUeXBlPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgVHJlZU5vZGVUeXBlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KG9iamVjdCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH07XG5cbiAgICByZXR1cm4gVHJlZU5vZGVUeXBlO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBUcmVlTm9kZVR5cGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIlVOS05PV05cIlxuICogQGNvbnN0XG4gKi9cblxuLyoqXG4gKiB2YWx1ZTogXCJMRUFGXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiQ09MTEVDVElPTlwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZUdlb1F1ZXJ5ID0gcmVxdWlyZSgnLi9UcmVlR2VvUXVlcnknKTtcblxudmFyIF9UcmVlR2VvUXVlcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZUdlb1F1ZXJ5KTtcblxudmFyIF9UcmVlTm9kZVR5cGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlVHlwZScpO1xuXG52YXIgX1RyZWVOb2RlVHlwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZVR5cGUpO1xuXG4vKipcbiogVGhlIFRyZWVRdWVyeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZVF1ZXJ5XG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVRdWVyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVRdWVyeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVRdWVyeVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVRdWVyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVRdWVyeSk7XG5cbiAgICAgICAgdGhpcy5QYXRoUHJlZml4ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1pblNpemUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWF4U2l6ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5NaW5EYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1heERhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5GaWxlTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Db250ZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkZyZWVTdHJpbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRXh0ZW5zaW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkdlb1F1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVRdWVyeTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVF1ZXJ5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZVF1ZXJ5fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVRdWVyeTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVRdWVyeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZVF1ZXJ5KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdQYXRoUHJlZml4JykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BhdGhQcmVmaXgnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYXRoUHJlZml4J10sIFsnU3RyaW5nJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01pblNpemUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWluU2l6ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01pblNpemUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01heFNpemUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWF4U2l6ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01heFNpemUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01pbkRhdGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWluRGF0ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01pbkRhdGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01heERhdGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTWF4RGF0ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01heERhdGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1R5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVHlwZSddID0gX1RyZWVOb2RlVHlwZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1R5cGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRmlsZU5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRmlsZU5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydGaWxlTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ29udGVudCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydDb250ZW50J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQ29udGVudCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRnJlZVN0cmluZycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydGcmVlU3RyaW5nJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRnJlZVN0cmluZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRXh0ZW5zaW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0V4dGVuc2lvbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0V4dGVuc2lvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnR2VvUXVlcnknKSkge1xuICAgICAgICAgICAgICAgIG9ialsnR2VvUXVlcnknXSA9IF9UcmVlR2VvUXVlcnkyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydHZW9RdWVyeSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0FycmF5LjxTdHJpbmc+fSBQYXRoUHJlZml4XG4gICAgKi9cbiAgICByZXR1cm4gVHJlZVF1ZXJ5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZVF1ZXJ5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1pblNpemVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1heFNpemVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1pbkRhdGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IE1heERhdGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGVUeXBlfSBUeXBlXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBGaWxlTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQ29udGVudFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRnJlZVN0cmluZ1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRXh0ZW5zaW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVHZW9RdWVyeX0gR2VvUXVlcnlcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlTm9kZSA9IHJlcXVpcmUoJy4vVHJlZU5vZGUnKTtcblxudmFyIF9UcmVlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlTm9kZSk7XG5cbi8qKlxuKiBUaGUgVHJlZVJlYWROb2RlUmVxdWVzdCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZVJlYWROb2RlUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlUmVhZE5vZGVSZXF1ZXN0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZVJlYWROb2RlUmVxdWVzdDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVSZWFkTm9kZVJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBUcmVlUmVhZE5vZGVSZXF1ZXN0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVJlYWROb2RlUmVxdWVzdCk7XG5cbiAgICAgICAgdGhpcy5Ob2RlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldpdGhDb21taXRzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLldpdGhFeHRlbmRlZFN0YXRzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVSZWFkTm9kZVJlcXVlc3Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVSZWFkTm9kZVJlcXVlc3R9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlUmVhZE5vZGVSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVSZWFkTm9kZVJlcXVlc3Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlUmVhZE5vZGVSZXF1ZXN0LmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlUmVhZE5vZGVSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdOb2RlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ05vZGUnXSA9IF9UcmVlTm9kZTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ05vZGUnXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnV2l0aENvbW1pdHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV2l0aENvbW1pdHMnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXaXRoQ29tbWl0cyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dpdGhFeHRlbmRlZFN0YXRzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1dpdGhFeHRlbmRlZFN0YXRzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnV2l0aEV4dGVuZGVkU3RhdHMnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlTm9kZX0gTm9kZVxuICAgICovXG4gICAgcmV0dXJuIFRyZWVSZWFkTm9kZVJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlUmVhZE5vZGVSZXF1ZXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtCb29sZWFufSBXaXRoQ29tbWl0c1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge0Jvb2xlYW59IFdpdGhFeHRlbmRlZFN0YXRzXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVOb2RlJyk7XG5cbnZhciBfVHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZU5vZGUpO1xuXG4vKipcbiogVGhlIFRyZWVSZWFkTm9kZVJlc3BvbnNlIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlUmVhZE5vZGVSZXNwb25zZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVSZWFkTm9kZVJlc3BvbnNlPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBUcmVlUmVhZE5vZGVSZXNwb25zZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVSZWFkTm9kZVJlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTm9kZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlUmVhZE5vZGVSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVJlYWROb2RlUmVzcG9uc2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlUmVhZE5vZGVSZXNwb25zZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlUmVhZE5vZGVSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVSZWFkTm9kZVJlc3BvbnNlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlUmVhZE5vZGVSZXNwb25zZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnU3VjY2VzcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdWNjZXNzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU3VjY2VzcyddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05vZGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTm9kZSddID0gX1RyZWVOb2RlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsnTm9kZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBUcmVlUmVhZE5vZGVSZXNwb25zZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVSZWFkTm9kZVJlc3BvbnNlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHttb2R1bGU6bW9kZWwvVHJlZU5vZGV9IE5vZGVcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlUXVlcnkgPSByZXF1aXJlKCcuL1RyZWVRdWVyeScpO1xuXG52YXIgX1RyZWVRdWVyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlUXVlcnkpO1xuXG4vKipcbiogVGhlIFRyZWVTZWFyY2hSZXF1ZXN0IG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlU2VhcmNoUmVxdWVzdFxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBUcmVlU2VhcmNoUmVxdWVzdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVTZWFyY2hSZXF1ZXN0PC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZVNlYXJjaFJlcXVlc3RcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBUcmVlU2VhcmNoUmVxdWVzdCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVTZWFyY2hSZXF1ZXN0KTtcblxuICAgICAgICB0aGlzLlF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNpemUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRnJvbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXRhaWxzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkZhY2V0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlRyZWVTZWFyY2hSZXF1ZXN0PC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlU2VhcmNoUmVxdWVzdH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVTZWFyY2hSZXF1ZXN0fSBUaGUgcG9wdWxhdGVkIDxjb2RlPlRyZWVTZWFyY2hSZXF1ZXN0PC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVHJlZVNlYXJjaFJlcXVlc3QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVTZWFyY2hSZXF1ZXN0KCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdRdWVyeScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydRdWVyeSddID0gX1RyZWVRdWVyeTJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1F1ZXJ5J10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NpemUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU2l6ZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1NpemUnXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Zyb20nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRnJvbSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0Zyb20nXSwgJ051bWJlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0RldGFpbHMnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGV0YWlscyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0RldGFpbHMnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdGYWNldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydGYWNldCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0ZhY2V0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlUXVlcnl9IFF1ZXJ5XG4gICAgKi9cbiAgICByZXR1cm4gVHJlZVNlYXJjaFJlcXVlc3Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlU2VhcmNoUmVxdWVzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBTaXplXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBGcm9tXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gRGV0YWlsc1xuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRmFjZXRcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9UcmVlU3luY0NoYW5nZU5vZGUgPSByZXF1aXJlKCcuL1RyZWVTeW5jQ2hhbmdlTm9kZScpO1xuXG52YXIgX1RyZWVTeW5jQ2hhbmdlTm9kZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UcmVlU3luY0NoYW5nZU5vZGUpO1xuXG52YXIgX1RyZWVTeW5jQ2hhbmdlVHlwZSA9IHJlcXVpcmUoJy4vVHJlZVN5bmNDaGFuZ2VUeXBlJyk7XG5cbnZhciBfVHJlZVN5bmNDaGFuZ2VUeXBlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RyZWVTeW5jQ2hhbmdlVHlwZSk7XG5cbi8qKlxuKiBUaGUgVHJlZVN5bmNDaGFuZ2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1RyZWVTeW5jQ2hhbmdlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVTeW5jQ2hhbmdlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VHJlZVN5bmNDaGFuZ2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVTeW5jQ2hhbmdlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJlZVN5bmNDaGFuZ2UpO1xuXG4gICAgICAgIHRoaXMuc2VxID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm5vZGVJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50eXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnNvdXJjZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubm9kZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlU3luY0NoYW5nZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVN5bmNDaGFuZ2V9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlU3luY0NoYW5nZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVTeW5jQ2hhbmdlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlU3luY0NoYW5nZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnc2VxJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3NlcSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ3NlcSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbm9kZUlkJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ25vZGVJZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ25vZGVJZCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgndHlwZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWyd0eXBlJ10gPSBfVHJlZVN5bmNDaGFuZ2VUeXBlMlsnZGVmYXVsdCddLmNvbnN0cnVjdEZyb21PYmplY3QoZGF0YVsndHlwZSddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdzb3VyY2UnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnc291cmNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnc291cmNlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCd0YXJnZXQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsndGFyZ2V0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsndGFyZ2V0J10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdub2RlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ25vZGUnXSA9IF9UcmVlU3luY0NoYW5nZU5vZGUyWydkZWZhdWx0J10uY29uc3RydWN0RnJvbU9iamVjdChkYXRhWydub2RlJ10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBzZXFcbiAgICAqL1xuICAgIHJldHVybiBUcmVlU3luY0NoYW5nZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVTeW5jQ2hhbmdlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IG5vZGVJZFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge21vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZVR5cGV9IHR5cGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IHNvdXJjZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gdGFyZ2V0XG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlTm9kZX0gbm9kZVxuKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFRyZWVTeW5jQ2hhbmdlTm9kZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZVN5bmNDaGFuZ2VOb2RlXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVTeW5jQ2hhbmdlTm9kZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVTeW5jQ2hhbmdlTm9kZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVTeW5jQ2hhbmdlTm9kZVxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVTeW5jQ2hhbmdlTm9kZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVTeW5jQ2hhbmdlTm9kZSk7XG5cbiAgICAgICAgdGhpcy5ieXRlc2l6ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5tZDUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubXRpbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubm9kZVBhdGggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVwb3NpdG9yeUlkZW50aWZpZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZVN5bmNDaGFuZ2VOb2RlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZU5vZGV9IG9iaiBPcHRpb25hbCBpbnN0YW5jZSB0byBwb3B1bGF0ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZU5vZGV9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZVN5bmNDaGFuZ2VOb2RlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVHJlZVN5bmNDaGFuZ2VOb2RlLmNvbnN0cnVjdEZyb21PYmplY3QgPSBmdW5jdGlvbiBjb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGEsIG9iaikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgb2JqID0gb2JqIHx8IG5ldyBUcmVlU3luY0NoYW5nZU5vZGUoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2J5dGVzaXplJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ2J5dGVzaXplJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnYnl0ZXNpemUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ21kNScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydtZDUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydtZDUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ210aW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ210aW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbXRpbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ25vZGVQYXRoJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ25vZGVQYXRoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnbm9kZVBhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ3JlcG9zaXRvcnlJZGVudGlmaWVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ3JlcG9zaXRvcnlJZGVudGlmaWVyJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsncmVwb3NpdG9yeUlkZW50aWZpZXInXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBieXRlc2l6ZVxuICAgICovXG4gICAgcmV0dXJuIFRyZWVTeW5jQ2hhbmdlTm9kZTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRyZWVTeW5jQ2hhbmdlTm9kZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBtZDVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IG10aW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBub2RlUGF0aFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gcmVwb3NpdG9yeUlkZW50aWZpZXJcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgVHJlZVN5bmNDaGFuZ2VUeXBlLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBUcmVlU3luY0NoYW5nZVR5cGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFRyZWVTeW5jQ2hhbmdlVHlwZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVTeW5jQ2hhbmdlVHlwZSk7XG5cbiAgICAgICAgdGhpcy51bmtub3duID0gXCJ1bmtub3duXCI7XG4gICAgICAgIHRoaXMuY3JlYXRlID0gXCJjcmVhdGVcIjtcbiAgICAgICAgdGhpc1tcImRlbGV0ZVwiXSA9IFwiZGVsZXRlXCI7XG4gICAgICAgIHRoaXMucGF0aCA9IFwicGF0aFwiO1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSBcImNvbnRlbnRcIjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIFJldHVybnMgYSA8Y29kZT5UcmVlU3luY0NoYW5nZVR5cGU8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9UcmVlU3luY0NoYW5nZVR5cGV9IFRoZSBlbnVtIDxjb2RlPlRyZWVTeW5jQ2hhbmdlVHlwZTwvY29kZT4gdmFsdWUuXG4gICAgKi9cblxuICAgIFRyZWVTeW5jQ2hhbmdlVHlwZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFRyZWVTeW5jQ2hhbmdlVHlwZTtcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gVHJlZVN5bmNDaGFuZ2VUeXBlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuLyoqXG4gKiB2YWx1ZTogXCJ1bmtub3duXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiY3JlYXRlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiZGVsZXRlXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwicGF0aFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcImNvbnRlbnRcIlxuICogQGNvbnN0XG4gKi9cbiIsIi8qKlxuICogUHlkaW8gQ2VsbHMgUmVzdCBBUElcbiAqIE5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkIChnZW5lcmF0ZWQgYnkgU3dhZ2dlciBDb2RlZ2VuIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4pXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX0FwaUNsaWVudCA9IHJlcXVpcmUoJy4uL0FwaUNsaWVudCcpO1xuXG52YXIgX0FwaUNsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9BcGlDbGllbnQpO1xuXG4vKipcbiogVGhlIFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZDwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCk7XG5cbiAgICAgICAgdGhpcy5JbnRlcnZhbFN0YXJ0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1heE51bWJlciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2Q8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZH0gVGhlIHBvcHVsYXRlZCA8Y29kZT5UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2Q8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVWZXJzaW9uaW5nS2VlcFBlcmlvZCgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSW50ZXJ2YWxTdGFydCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJbnRlcnZhbFN0YXJ0J10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSW50ZXJ2YWxTdGFydCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTWF4TnVtYmVyJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01heE51bWJlciddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ01heE51bWJlciddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgKiBAbWVtYmVyIHtTdHJpbmd9IEludGVydmFsU3RhcnRcbiAgICAqL1xuICAgIHJldHVybiBUcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2Q7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge051bWJlcn0gTWF4TnVtYmVyXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kID0gcmVxdWlyZSgnLi9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QnKTtcblxudmFyIF9UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kKTtcblxuLyoqXG4qIFRoZSBUcmVlVmVyc2lvbmluZ1BvbGljeSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVHJlZVZlcnNpb25pbmdQb2xpY3lcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVHJlZVZlcnNpb25pbmdQb2xpY3kgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5UcmVlVmVyc2lvbmluZ1BvbGljeTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nUG9saWN5XG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVHJlZVZlcnNpb25pbmdQb2xpY3koKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlVmVyc2lvbmluZ1BvbGljeSk7XG5cbiAgICAgICAgdGhpcy5VdWlkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuRGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVmVyc2lvbnNEYXRhU291cmNlTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5WZXJzaW9uc0RhdGFTb3VyY2VCdWNrZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTWF4VG90YWxTaXplID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1heFNpemVQZXJGaWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLklnbm9yZUZpbGVzR3JlYXRlclRoYW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuS2VlcFBlcmlvZHMgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZVZlcnNpb25pbmdQb2xpY3k8L2NvZGU+IGZyb20gYSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCwgb3B0aW9uYWxseSBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICAqIENvcGllcyBhbGwgcmVsZXZhbnQgcHJvcGVydGllcyBmcm9tIDxjb2RlPmRhdGE8L2NvZGU+IHRvIDxjb2RlPm9iajwvY29kZT4gaWYgc3VwcGxpZWQgb3IgYSBuZXcgaW5zdGFuY2UgaWYgbm90LlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGJlYXJpbmcgcHJvcGVydGllcyBvZiBpbnRlcmVzdC5cbiAgICAqIEBwYXJhbSB7bW9kdWxlOm1vZGVsL1RyZWVWZXJzaW9uaW5nUG9saWN5fSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVHJlZVZlcnNpb25pbmdQb2xpY3l9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZVZlcnNpb25pbmdQb2xpY3k8L2NvZGU+IGluc3RhbmNlLlxuICAgICovXG5cbiAgICBUcmVlVmVyc2lvbmluZ1BvbGljeS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVHJlZVZlcnNpb25pbmdQb2xpY3koKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1V1aWQnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVXVpZCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1V1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ05hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ05hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0Rlc2NyaXB0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0Rlc2NyaXB0aW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnRGVzY3JpcHRpb24nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1ZlcnNpb25zRGF0YVNvdXJjZU5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnVmVyc2lvbnNEYXRhU291cmNlTmFtZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1ZlcnNpb25zRGF0YVNvdXJjZU5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1ZlcnNpb25zRGF0YVNvdXJjZUJ1Y2tldCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydWZXJzaW9uc0RhdGFTb3VyY2VCdWNrZXQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydWZXJzaW9uc0RhdGFTb3VyY2VCdWNrZXQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01heFRvdGFsU2l6ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydNYXhUb3RhbFNpemUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNYXhUb3RhbFNpemUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ01heFNpemVQZXJGaWxlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01heFNpemVQZXJGaWxlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTWF4U2l6ZVBlckZpbGUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0lnbm9yZUZpbGVzR3JlYXRlclRoYW4nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnSWdub3JlRmlsZXNHcmVhdGVyVGhhbiddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0lnbm9yZUZpbGVzR3JlYXRlclRoYW4nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ0tlZXBQZXJpb2RzJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0tlZXBQZXJpb2RzJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnS2VlcFBlcmlvZHMnXSwgW19UcmVlVmVyc2lvbmluZ0tlZXBQZXJpb2QyWydkZWZhdWx0J11dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gVXVpZFxuICAgICovXG4gICAgcmV0dXJuIFRyZWVWZXJzaW9uaW5nUG9saWN5O1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZVZlcnNpb25pbmdQb2xpY3k7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTmFtZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gRGVzY3JpcHRpb25cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFZlcnNpb25zRGF0YVNvdXJjZU5hbWVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFZlcnNpb25zRGF0YVNvdXJjZUJ1Y2tldFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTWF4VG90YWxTaXplXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNYXhTaXplUGVyRmlsZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gSWdub3JlRmlsZXNHcmVhdGVyVGhhblxuKi9cblxuLyoqXG4qIEBtZW1iZXIge0FycmF5Ljxtb2R1bGU6bW9kZWwvVHJlZVZlcnNpb25pbmdLZWVwUGVyaW9kPn0gS2VlcFBlcmlvZHNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIFRoZSBUcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoIG1vZGVsIG1vZHVsZS5cbiogQG1vZHVsZSBtb2RlbC9UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoXG4qIEB2ZXJzaW9uIDEuMFxuKi9cblxudmFyIFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGggPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5UcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoPC9jb2RlPi5cbiAgICAqIEBhbGlhcyBtb2R1bGU6bW9kZWwvVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aFxuICAgICogQGNsYXNzXG4gICAgKi9cblxuICAgIGZ1bmN0aW9uIFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoKTtcblxuICAgICAgICB0aGlzLldzVXVpZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Xc0xhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhdGggPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aDwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aH0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1RyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGh9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aDwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGguY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFRyZWVXb3Jrc3BhY2VSZWxhdGl2ZVBhdGgoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dzVXVpZCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydXc1V1aWQnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydXc1V1aWQnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1dzTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnV3NMYWJlbCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1dzTGFiZWwnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhdGgnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGF0aCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1BhdGgnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBXc1V1aWRcbiAgICAqL1xuICAgIHJldHVybiBUcmVlV29ya3NwYWNlUmVsYXRpdmVQYXRoO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJlZVdvcmtzcGFjZVJlbGF0aXZlUGF0aDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBXc0xhYmVsXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBQYXRoXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbi8qKlxuKiBUaGUgVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZVxuKiBAdmVyc2lvbiAxLjBcbiovXG5cbnZhciBVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1VwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2VcbiAgICAqIEBjbGFzc1xuICAgICovXG5cbiAgICBmdW5jdGlvbiBVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLk1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+VXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZTwvY29kZT4gZnJvbSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCBvcHRpb25hbGx5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgICogQ29waWVzIGFsbCByZWxldmFudCBwcm9wZXJ0aWVzIGZyb20gPGNvZGU+ZGF0YTwvY29kZT4gdG8gPGNvZGU+b2JqPC9jb2RlPiBpZiBzdXBwbGllZCBvciBhIG5ldyBpbnN0YW5jZSBpZiBub3QuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgYmVhcmluZyBwcm9wZXJ0aWVzIG9mIGludGVyZXN0LlxuICAgICogQHBhcmFtIHttb2R1bGU6bW9kZWwvVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1VwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2V9IFRoZSBwb3B1bGF0ZWQgPGNvZGU+VXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZTwvY29kZT4gaW5zdGFuY2UuXG4gICAgKi9cblxuICAgIFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFVwZGF0ZUFwcGx5VXBkYXRlUmVzcG9uc2UoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N1Y2Nlc3MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnU3VjY2VzcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ1N1Y2Nlc3MnXSwgJ0Jvb2xlYW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdNZXNzYWdlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ01lc3NhZ2UnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydNZXNzYWdlJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge0Jvb2xlYW59IFN1Y2Nlc3NcbiAgICAqL1xuICAgIHJldHVybiBVcGRhdGVBcHBseVVwZGF0ZVJlc3BvbnNlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXBkYXRlQXBwbHlVcGRhdGVSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBNZXNzYWdlXG4qL1xuIiwiLyoqXG4gKiBQeWRpbyBDZWxscyBSZXN0IEFQSVxuICogTm8gZGVzY3JpcHRpb24gcHJvdmlkZWQgKGdlbmVyYXRlZCBieSBTd2FnZ2VyIENvZGVnZW4gaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbilcbiAqXG4gKiBPcGVuQVBJIHNwZWMgdmVyc2lvbjogMS4wXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzd2FnZ2VyIGNvZGUgZ2VuZXJhdG9yIHByb2dyYW0uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuLmdpdFxuICogRG8gbm90IGVkaXQgdGhlIGNsYXNzIG1hbnVhbGx5LlxuICpcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfQXBpQ2xpZW50ID0gcmVxdWlyZSgnLi4vQXBpQ2xpZW50Jyk7XG5cbnZhciBfQXBpQ2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FwaUNsaWVudCk7XG5cbnZhciBfUGFja2FnZVBhY2thZ2VTdGF0dXMgPSByZXF1aXJlKCcuL1BhY2thZ2VQYWNrYWdlU3RhdHVzJyk7XG5cbnZhciBfUGFja2FnZVBhY2thZ2VTdGF0dXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUGFja2FnZVBhY2thZ2VTdGF0dXMpO1xuXG4vKipcbiogVGhlIFVwZGF0ZVBhY2thZ2UgbW9kZWwgbW9kdWxlLlxuKiBAbW9kdWxlIG1vZGVsL1VwZGF0ZVBhY2thZ2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVXBkYXRlUGFja2FnZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyoqXG4gICAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPlVwZGF0ZVBhY2thZ2U8L2NvZGU+LlxuICAgICogQGFsaWFzIG1vZHVsZTptb2RlbC9VcGRhdGVQYWNrYWdlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVXBkYXRlUGFja2FnZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVwZGF0ZVBhY2thZ2UpO1xuXG4gICAgICAgIHRoaXMuUGFja2FnZU5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuVmVyc2lvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5SZWxlYXNlRGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5MYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5EZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5DaGFuZ2VMb2cgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuTGljZW5zZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5CaW5hcnlVUkwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQmluYXJ5Q2hlY2tzdW0gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQmluYXJ5U2lnbmF0dXJlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkJpbmFyeUhhc2hUeXBlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkJpbmFyeVNpemUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQmluYXJ5T1MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuQmluYXJ5QXJjaCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5Jc1BhdGNoID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlBhdGNoQWxnb3JpdGhtID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlNlcnZpY2VOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLlN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5VcGRhdGVQYWNrYWdlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9VcGRhdGVQYWNrYWdlfSBvYmogT3B0aW9uYWwgaW5zdGFuY2UgdG8gcG9wdWxhdGUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVXBkYXRlUGFja2FnZX0gVGhlIHBvcHVsYXRlZCA8Y29kZT5VcGRhdGVQYWNrYWdlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVXBkYXRlUGFja2FnZS5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChkYXRhLCBvYmopIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIG9iaiA9IG9iaiB8fCBuZXcgVXBkYXRlUGFja2FnZSgpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUGFja2FnZU5hbWUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUGFja2FnZU5hbWUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydQYWNrYWdlTmFtZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnVmVyc2lvbicpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydWZXJzaW9uJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnVmVyc2lvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnUmVsZWFzZURhdGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnUmVsZWFzZURhdGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydSZWxlYXNlRGF0ZSddLCAnTnVtYmVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnTGFiZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydMYWJlbCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnRGVzY3JpcHRpb24nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnRGVzY3JpcHRpb24nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydEZXNjcmlwdGlvbiddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQ2hhbmdlTG9nJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NoYW5nZUxvZyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0NoYW5nZUxvZyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnTGljZW5zZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydMaWNlbnNlJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnTGljZW5zZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5VVJMJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0JpbmFyeVVSTCddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0JpbmFyeVVSTCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5Q2hlY2tzdW0nKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQmluYXJ5Q2hlY2tzdW0nXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCaW5hcnlDaGVja3N1bSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5U2lnbmF0dXJlJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0JpbmFyeVNpZ25hdHVyZSddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0JpbmFyeVNpZ25hdHVyZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5SGFzaFR5cGUnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQmluYXJ5SGFzaFR5cGUnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCaW5hcnlIYXNoVHlwZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5U2l6ZScpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCaW5hcnlTaXplJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQmluYXJ5U2l6ZSddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5T1MnKSkge1xuICAgICAgICAgICAgICAgIG9ialsnQmluYXJ5T1MnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydCaW5hcnlPUyddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnQmluYXJ5QXJjaCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydCaW5hcnlBcmNoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnQmluYXJ5QXJjaCddLCAnU3RyaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgnSXNQYXRjaCcpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydJc1BhdGNoJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnSXNQYXRjaCddLCAnQm9vbGVhbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1BhdGNoQWxnb3JpdGhtJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1BhdGNoQWxnb3JpdGhtJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnUGF0Y2hBbGdvcml0aG0nXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1NlcnZpY2VOYW1lJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ1NlcnZpY2VOYW1lJ10gPSBfQXBpQ2xpZW50MlsnZGVmYXVsdCddLmNvbnZlcnRUb1R5cGUoZGF0YVsnU2VydmljZU5hbWUnXSwgJ1N0cmluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ1N0YXR1cycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydTdGF0dXMnXSA9IF9QYWNrYWdlUGFja2FnZVN0YXR1czJbJ2RlZmF1bHQnXS5jb25zdHJ1Y3RGcm9tT2JqZWN0KGRhdGFbJ1N0YXR1cyddKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAqIEBtZW1iZXIge1N0cmluZ30gUGFja2FnZU5hbWVcbiAgICAqL1xuICAgIHJldHVybiBVcGRhdGVQYWNrYWdlO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXBkYXRlUGFja2FnZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBWZXJzaW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7TnVtYmVyfSBSZWxlYXNlRGF0ZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gTGFiZWxcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IERlc2NyaXB0aW9uXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBDaGFuZ2VMb2dcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IExpY2Vuc2VcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEJpbmFyeVVSTFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQmluYXJ5Q2hlY2tzdW1cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEJpbmFyeVNpZ25hdHVyZVxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gQmluYXJ5SGFzaFR5cGVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEJpbmFyeVNpemVcbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IEJpbmFyeU9TXG4qL1xuXG4vKipcbiogQG1lbWJlciB7U3RyaW5nfSBCaW5hcnlBcmNoXG4qL1xuXG4vKipcbiogQG1lbWJlciB7Qm9vbGVhbn0gSXNQYXRjaFxuKi9cblxuLyoqXG4qIEBtZW1iZXIge1N0cmluZ30gUGF0Y2hBbGdvcml0aG1cbiovXG5cbi8qKlxuKiBAbWVtYmVyIHtTdHJpbmd9IFNlcnZpY2VOYW1lXG4qL1xuXG4vKipcbiogQG1lbWJlciB7bW9kdWxlOm1vZGVsL1BhY2thZ2VQYWNrYWdlU3RhdHVzfSBTdGF0dXNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxudmFyIF9VcGRhdGVQYWNrYWdlID0gcmVxdWlyZSgnLi9VcGRhdGVQYWNrYWdlJyk7XG5cbnZhciBfVXBkYXRlUGFja2FnZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9VcGRhdGVQYWNrYWdlKTtcblxuLyoqXG4qIFRoZSBVcGRhdGVVcGRhdGVSZXNwb25zZSBtb2RlbCBtb2R1bGUuXG4qIEBtb2R1bGUgbW9kZWwvVXBkYXRlVXBkYXRlUmVzcG9uc2VcbiogQHZlcnNpb24gMS4wXG4qL1xuXG52YXIgVXBkYXRlVXBkYXRlUmVzcG9uc2UgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5VcGRhdGVVcGRhdGVSZXNwb25zZTwvY29kZT4uXG4gICAgKiBAYWxpYXMgbW9kdWxlOm1vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlXG4gICAgKiBAY2xhc3NcbiAgICAqL1xuXG4gICAgZnVuY3Rpb24gVXBkYXRlVXBkYXRlUmVzcG9uc2UoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBVcGRhdGVVcGRhdGVSZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5DaGFubmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLkF2YWlsYWJsZUJpbmFyaWVzID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQ29uc3RydWN0cyBhIDxjb2RlPlVwZGF0ZVVwZGF0ZVJlc3BvbnNlPC9jb2RlPiBmcm9tIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIG9wdGlvbmFsbHkgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgKiBDb3BpZXMgYWxsIHJlbGV2YW50IHByb3BlcnRpZXMgZnJvbSA8Y29kZT5kYXRhPC9jb2RlPiB0byA8Y29kZT5vYmo8L2NvZGU+IGlmIHN1cHBsaWVkIG9yIGEgbmV3IGluc3RhbmNlIGlmIG5vdC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIFRoZSBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdCBiZWFyaW5nIHByb3BlcnRpZXMgb2YgaW50ZXJlc3QuXG4gICAgKiBAcGFyYW0ge21vZHVsZTptb2RlbC9VcGRhdGVVcGRhdGVSZXNwb25zZX0gb2JqIE9wdGlvbmFsIGluc3RhbmNlIHRvIHBvcHVsYXRlLlxuICAgICogQHJldHVybiB7bW9kdWxlOm1vZGVsL1VwZGF0ZVVwZGF0ZVJlc3BvbnNlfSBUaGUgcG9wdWxhdGVkIDxjb2RlPlVwZGF0ZVVwZGF0ZVJlc3BvbnNlPC9jb2RlPiBpbnN0YW5jZS5cbiAgICAqL1xuXG4gICAgVXBkYXRlVXBkYXRlUmVzcG9uc2UuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3QoZGF0YSwgb2JqKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBvYmogPSBvYmogfHwgbmV3IFVwZGF0ZVVwZGF0ZVJlc3BvbnNlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdDaGFubmVsJykpIHtcbiAgICAgICAgICAgICAgICBvYmpbJ0NoYW5uZWwnXSA9IF9BcGlDbGllbnQyWydkZWZhdWx0J10uY29udmVydFRvVHlwZShkYXRhWydDaGFubmVsJ10sICdTdHJpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdBdmFpbGFibGVCaW5hcmllcycpKSB7XG4gICAgICAgICAgICAgICAgb2JqWydBdmFpbGFibGVCaW5hcmllcyddID0gX0FwaUNsaWVudDJbJ2RlZmF1bHQnXS5jb252ZXJ0VG9UeXBlKGRhdGFbJ0F2YWlsYWJsZUJpbmFyaWVzJ10sIFtfVXBkYXRlUGFja2FnZTJbJ2RlZmF1bHQnXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICogQG1lbWJlciB7U3RyaW5nfSBDaGFubmVsXG4gICAgKi9cbiAgICByZXR1cm4gVXBkYXRlVXBkYXRlUmVzcG9uc2U7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVcGRhdGVVcGRhdGVSZXNwb25zZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKipcbiogQG1lbWJlciB7QXJyYXkuPG1vZHVsZTptb2RlbC9VcGRhdGVQYWNrYWdlPn0gQXZhaWxhYmxlQmluYXJpZXNcbiovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wLlxuKiBAZW51bSB7fVxuKiBAcmVhZG9ubHlcbiovXG5cbnZhciBVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcCk7XG5cbiAgICAgICAgdGhpcy5QVVQgPSBcIlBVVFwiO1xuICAgICAgICB0aGlzLkRFTEVURSA9IFwiREVMRVRFXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBSZXR1cm5zIGEgPGNvZGU+VXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wPC9jb2RlPiBlbnVtIHZhbHVlIGZyb20gYSBKYXZhc2NyaXB0IG9iamVjdCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGVudW0gdmFsdWUuXG4gICAgKiBAcmV0dXJuIHttb2R1bGU6bW9kZWwvVXBkYXRlVXNlck1ldGFOYW1lc3BhY2VSZXF1ZXN0VXNlck1ldGFOc09wfSBUaGUgZW51bSA8Y29kZT5VcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3A8L2NvZGU+IHZhbHVlLlxuICAgICovXG5cbiAgICBVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3AuY29uc3RydWN0RnJvbU9iamVjdCA9IGZ1bmN0aW9uIGNvbnN0cnVjdEZyb21PYmplY3Qob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfTtcblxuICAgIHJldHVybiBVcGRhdGVVc2VyTWV0YU5hbWVzcGFjZVJlcXVlc3RVc2VyTWV0YU5zT3A7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFVwZGF0ZVVzZXJNZXRhTmFtZXNwYWNlUmVxdWVzdFVzZXJNZXRhTnNPcDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG5cbi8qKlxuICogdmFsdWU6IFwiUFVUXCJcbiAqIEBjb25zdFxuICovXG5cbi8qKlxuICogdmFsdWU6IFwiREVMRVRFXCJcbiAqIEBjb25zdFxuICovXG4iLCIvKipcbiAqIFB5ZGlvIENlbGxzIFJlc3QgQVBJXG4gKiBObyBkZXNjcmlwdGlvbiBwcm92aWRlZCAoZ2VuZXJhdGVkIGJ5IFN3YWdnZXIgQ29kZWdlbiBodHRwczovL2dpdGh1Yi5jb20vc3dhZ2dlci1hcGkvc3dhZ2dlci1jb2RlZ2VuKVxuICpcbiAqIE9wZW5BUEkgc3BlYyB2ZXJzaW9uOiAxLjBcbiAqIFxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHN3YWdnZXIgY29kZSBnZW5lcmF0b3IgcHJvZ3JhbS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FnZ2VyLWFwaS9zd2FnZ2VyLWNvZGVnZW4uZ2l0XG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIF9BcGlDbGllbnQgPSByZXF1aXJlKCcuLi9BcGlDbGllbnQnKTtcblxudmFyIF9BcGlDbGllbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQXBpQ2xpZW50KTtcblxuLyoqXG4qIEVudW0gY2xhc3MgVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcC5cbiogQGVudW0ge31cbiogQHJlYWRvbmx5XG4qL1xuXG52YXIgVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3ApO1xuXG4gICAgICAgIHRoaXMuUFVUID0gXCJQVVRcIjtcbiAgICAgICAgdGhpcy5ERUxFVEUgPSBcIkRFTEVURVwiO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogUmV0dXJucyBhIDxjb2RlPlVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3A8L2NvZGU+IGVudW0gdmFsdWUgZnJvbSBhIEphdmFzY3JpcHQgb2JqZWN0IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZW51bSB2YWx1ZS5cbiAgICAqIEByZXR1cm4ge21vZHVsZTptb2RlbC9VcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wfSBUaGUgZW51bSA8Y29kZT5VcGRhdGVVc2VyTWV0YVJlcXVlc3RVc2VyTWV0YU9wPC9jb2RlPiB2YWx1ZS5cbiAgICAqL1xuXG4gICAgVXBkYXRlVXNlck1ldGFSZXF1ZXN0VXNlck1ldGFPcC5jb25zdHJ1Y3RGcm9tT2JqZWN0ID0gZnVuY3Rpb24gY29uc3RydWN0RnJvbU9iamVjdChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3A7XG59KSgpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFVwZGF0ZVVzZXJNZXRhUmVxdWVzdFVzZXJNZXRhT3A7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuXG4vKipcbiAqIHZhbHVlOiBcIlBVVFwiXG4gKiBAY29uc3RcbiAqL1xuXG4vKipcbiAqIHZhbHVlOiBcIkRFTEVURVwiXG4gKiBAY29uc3RcbiAqL1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxudmFyIExvZ2dlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTG9nZ2VyKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9nZ2VyKTtcbiAgICB9XG5cbiAgICBMb2dnZXIubG9nID0gZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHdpbmRvdy5jb25zb2xlKSBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbiAgICB9O1xuXG4gICAgTG9nZ2VyLmVycm9yID0gZnVuY3Rpb24gZXJyb3IobWVzc2FnZSkge1xuICAgICAgICBpZiAod2luZG93LmNvbnNvbGUpIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gICAgfTtcblxuICAgIExvZ2dlci5kZWJ1ZyA9IGZ1bmN0aW9uIGRlYnVnKG1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKHdpbmRvdy5jb25zb2xlKSBjb25zb2xlLmRlYnVnKG1lc3NhZ2UpO1xuICAgIH07XG5cbiAgICByZXR1cm4gTG9nZ2VyO1xufSkoKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBMb2dnZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgT2JzZXJ2YWJsZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gT2JzZXJ2YWJsZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE9ic2VydmFibGUpO1xuICAgIH1cblxuICAgIE9ic2VydmFibGUucHJvdG90eXBlLl9vYmplY3RFdmVudFNldHVwID0gZnVuY3Rpb24gX29iamVjdEV2ZW50U2V0dXAoZXZlbnRfbmFtZSkge1xuICAgICAgICB0aGlzLl9vYnNlcnZlcnMgPSB0aGlzLl9vYnNlcnZlcnMgfHwge307XG4gICAgICAgIHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXSA9IHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXSB8fCBbXTtcbiAgICB9O1xuXG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUub2JzZXJ2ZSA9IGZ1bmN0aW9uIG9ic2VydmUoZXZlbnRfbmFtZSwgb2JzZXJ2ZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBldmVudF9uYW1lID09ICdzdHJpbmcnICYmIHR5cGVvZiBvYnNlcnZlciAhPSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5fb2JqZWN0RXZlbnRTZXR1cChldmVudF9uYW1lKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9vYnNlcnZlcnNbZXZlbnRfbmFtZV0uaW5kZXhPZihvYnNlcnZlcikgPT0gLTEpIHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXS5wdXNoKG9ic2VydmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAodmFyIGUgaW4gZXZlbnRfbmFtZSkge1xuICAgICAgICAgICAgICAgIGlmIChldmVudF9uYW1lLmhhc093blByb3BlcnR5KGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZShlLCBldmVudF9uYW1lW2VdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuc3RvcE9ic2VydmluZyA9IGZ1bmN0aW9uIHN0b3BPYnNlcnZpbmcoZXZlbnRfbmFtZSwgb2JzZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5fb2JqZWN0RXZlbnRTZXR1cChldmVudF9uYW1lKTtcbiAgICAgICAgaWYgKGV2ZW50X25hbWUgJiYgb2JzZXJ2ZXIpIHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXSA9IHRoaXMuX29ic2VydmVyc1tldmVudF9uYW1lXS5maWx0ZXIoZnVuY3Rpb24gKG8pIHtcbiAgICAgICAgICAgIHJldHVybiBvICE9IG9ic2VydmVyO1xuICAgICAgICB9KTtlbHNlIGlmIChldmVudF9uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLl9vYnNlcnZlcnNbZXZlbnRfbmFtZV0gPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVycyA9IHt9O1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIE9ic2VydmFibGUucHJvdG90eXBlLm9ic2VydmVPbmNlID0gZnVuY3Rpb24gb2JzZXJ2ZU9uY2UoZXZlbnRfbmFtZSwgb3V0ZXJfb2JzZXJ2ZXIpIHtcbiAgICAgICAgdmFyIGlubmVyX29ic2VydmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIG91dGVyX29ic2VydmVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB0aGlzLnN0b3BPYnNlcnZpbmcoZXZlbnRfbmFtZSwgaW5uZXJfb2JzZXJ2ZXIpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLl9vYmplY3RFdmVudFNldHVwKGV2ZW50X25hbWUpO1xuICAgICAgICB0aGlzLl9vYnNlcnZlcnNbZXZlbnRfbmFtZV0ucHVzaChpbm5lcl9vYnNlcnZlcik7XG4gICAgfTtcblxuICAgIE9ic2VydmFibGUucHJvdG90eXBlLm5vdGlmeSA9IGZ1bmN0aW9uIG5vdGlmeShldmVudF9uYW1lKSB7XG4gICAgICAgIHRoaXMuX29iamVjdEV2ZW50U2V0dXAoZXZlbnRfbmFtZSk7XG4gICAgICAgIHZhciBjb2xsZWN0ZWRfcmV0dXJuX3ZhbHVlcyA9IFtdO1xuICAgICAgICB2YXIgYXJncyA9IEFycmF5LmZyb20oYXJndW1lbnRzKS5zbGljZSgxKTtcbiAgICAgICAgdmFyIG9ic2VydmVyc0NvcHkgPSB0aGlzLl9vYnNlcnZlcnNbZXZlbnRfbmFtZV0uc2xpY2UoMCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JzZXJ2ZXJzQ29weS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgY29sbGVjdGVkX3JldHVybl92YWx1ZXMucHVzaChvYnNlcnZlcnNDb3B5W2ldLmFwcGx5KG9ic2VydmVyc0NvcHlbaV0sIGFyZ3MpIHx8IG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xsZWN0ZWRfcmV0dXJuX3ZhbHVlcztcbiAgICB9O1xuXG4gICAgT2JzZXJ2YWJsZS5wcm90b3R5cGUuaGFzT2JzZXJ2ZXJzID0gZnVuY3Rpb24gaGFzT2JzZXJ2ZXJzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb2JzZXJ2ZXJzLmxlbmd0aDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIE9ic2VydmFibGU7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBPYnNlcnZhYmxlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9sYW5nT2JzZXJ2YWJsZSA9IHJlcXVpcmUoJy4uL2xhbmcvT2JzZXJ2YWJsZScpO1xuXG52YXIgX2xhbmdPYnNlcnZhYmxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdPYnNlcnZhYmxlKTtcblxudmFyIF91dGlsTGFuZ1V0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9MYW5nVXRpbHMnKTtcblxudmFyIF91dGlsTGFuZ1V0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxMYW5nVXRpbHMpO1xuXG52YXIgX2h0dHBSZXNvdXJjZXNNYW5hZ2VyID0gcmVxdWlyZSgnLi4vaHR0cC9SZXNvdXJjZXNNYW5hZ2VyJyk7XG5cbnZhciBfaHR0cFJlc291cmNlc01hbmFnZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cFJlc291cmNlc01hbmFnZXIpO1xuXG52YXIgX2xhbmdMb2dnZXIgPSByZXF1aXJlKCcuLi9sYW5nL0xvZ2dlcicpO1xuXG52YXIgX2xhbmdMb2dnZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ0xvZ2dlcik7XG5cbnZhciBfdXRpbFhNTFV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9YTUxVdGlscycpO1xuXG52YXIgX3V0aWxYTUxVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsWE1MVXRpbHMpO1xuXG52YXIgX3V0aWxGdW5jVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL0Z1bmNVdGlscycpO1xuXG52YXIgX3V0aWxGdW5jVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbEZ1bmNVdGlscyk7XG5cbi8qKlxuICogQSBcIkNvbW1hbmRcIiBvYmplY3QsIGVuY2Fwc3VsYXRpbmcgaXRzIGNhbGxiYWNrcywgZGlzcGxheSBhdHRyaWJ1dGVzLCBldGMuXG4gKi9cblxudmFyIEFjdGlvbiA9IChmdW5jdGlvbiAoX09ic2VydmFibGUpIHtcblx0X2luaGVyaXRzKEFjdGlvbiwgX09ic2VydmFibGUpO1xuXG5cdC8qKlxuICAqIFN0YW5kYXJkIGNvbnN0cnVjdG9yXG4gICovXG5cblx0ZnVuY3Rpb24gQWN0aW9uKCkge1xuXHRcdF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpb24pO1xuXG5cdFx0X09ic2VydmFibGUuY2FsbCh0aGlzKTtcblx0XHR0aGlzLl9fREVGQVVMVF9JQ09OX1BBVEggPSBcImFjdGlvbnMvSUNPTl9TSVpFXCI7XG5cdFx0dGhpcy5vcHRpb25zID0gX3V0aWxMYW5nVXRpbHMyWydkZWZhdWx0J10ub2JqZWN0TWVyZ2Uoe1xuXHRcdFx0bmFtZTogJycsXG5cdFx0XHRpY29uX2NsYXNzOiAnJyxcblx0XHRcdHRleHQ6ICcnLFxuXHRcdFx0dGl0bGU6ICcnLFxuXHRcdFx0dGV4dF9pZDogJycsXG5cdFx0XHR0aXRsZV9pZDogJycsXG5cdFx0XHR3ZWlnaHQ6IDAsXG5cdFx0XHRoYXNBY2Nlc3NLZXk6IGZhbHNlLFxuXHRcdFx0YWNjZXNzS2V5OiAnJyxcblx0XHRcdHN1Yk1lbnU6IGZhbHNlLFxuXHRcdFx0c3ViTWVudVVwZGF0ZUltYWdlOiBmYWxzZSxcblx0XHRcdHN1Yk1lbnVVcGRhdGVUaXRsZTogZmFsc2UsXG5cdFx0XHRjYWxsYmFja0NvZGU6ICcnLFxuXHRcdFx0Y2FsbGJhY2s6IGZ1bmN0aW9uIGNhbGxiYWNrKCkge30sXG5cdFx0XHRsaXN0ZW5lcnM6IFtdLFxuXHRcdFx0YWN0aXZlQ29uZGl0aW9uOiBudWxsXG5cdFx0fSwgYXJndW1lbnRzWzBdIHx8IHt9KTtcblxuXHRcdHRoaXMuY29udGV4dCA9IF91dGlsTGFuZ1V0aWxzMlsnZGVmYXVsdCddLm9iamVjdE1lcmdlKHtcblx0XHRcdHNlbGVjdGlvbjogdHJ1ZSxcblx0XHRcdGRpcjogZmFsc2UsXG5cdFx0XHRhbGxvd2VkTWltZXM6IFtdLFxuXHRcdFx0ZXZhbE1ldGFkYXRhOiAnJyxcblx0XHRcdHJvb3Q6IHRydWUsXG5cdFx0XHRpblppcDogdHJ1ZSxcblx0XHRcdHJlY3ljbGU6IGZhbHNlLFxuXHRcdFx0YmVoYXZpb3VyOiAnaGlkZGVuJyxcblx0XHRcdGFjdGlvbkJhcjogZmFsc2UsXG5cdFx0XHRhY3Rpb25CYXJHcm91cDogJ2RlZmF1bHQnLFxuXHRcdFx0Y29udGV4dE1lbnU6IGZhbHNlLFxuXHRcdFx0YWp4cFdpZGdldHM6IG51bGwsXG5cdFx0XHRpbmZvUGFuZWw6IGZhbHNlXG5cdFx0fSwgYXJndW1lbnRzWzFdIHx8IHt9KTtcblxuXHRcdHRoaXMuc2VsZWN0aW9uQ29udGV4dCA9IF91dGlsTGFuZ1V0aWxzMlsnZGVmYXVsdCddLm9iamVjdE1lcmdlKHtcblx0XHRcdGRpcjogZmFsc2UsXG5cdFx0XHRmaWxlOiB0cnVlLFxuXHRcdFx0cmVjeWNsZTogZmFsc2UsXG5cdFx0XHRiZWhhdmlvdXI6ICdkaXNhYmxlZCcsXG5cdFx0XHRhbGxvd2VkTWltZXM6IFtdLFxuXHRcdFx0ZXZhbE1ldGFkYXRhOiAnJyxcblx0XHRcdHVuaXF1ZTogdHJ1ZSxcblx0XHRcdG11bHRpcGxlT25seTogZmFsc2UsXG5cdFx0XHRlbmFibGVSb290OiBmYWxzZVxuXHRcdH0sIGFyZ3VtZW50c1syXSB8fCB7fSk7XG5cblx0XHR0aGlzLnJpZ2h0c0NvbnRleHQgPSBfdXRpbExhbmdVdGlsczJbJ2RlZmF1bHQnXS5vYmplY3RNZXJnZSh7XG5cdFx0XHRub1VzZXI6IHRydWUsXG5cdFx0XHR1c2VyTG9nZ2VkOiB0cnVlLFxuXHRcdFx0Z3Vlc3RMb2dnZWQ6IGZhbHNlLFxuXHRcdFx0cmVhZDogZmFsc2UsXG5cdFx0XHR3cml0ZTogZmFsc2UsXG5cdFx0XHRhZG1pbk9ubHk6IGZhbHNlLFxuXHRcdFx0cGFyYW1EaXNhYmxlOiAnJ1xuXHRcdH0sIGFyZ3VtZW50c1szXSB8fCB7fSk7XG5cblx0XHR0aGlzLnN1Yk1lbnVJdGVtcyA9IF91dGlsTGFuZ1V0aWxzMlsnZGVmYXVsdCddLm9iamVjdE1lcmdlKHtcblx0XHRcdHN0YXRpY0l0ZW1zOiBudWxsLFxuXHRcdFx0ZHluYW1pY0l0ZW1zOiBudWxsLFxuXHRcdFx0ZHluYW1pY0J1aWxkZXJDb2RlOiBudWxsLFxuXHRcdFx0cG9wb3ZlckNvbnRlbnQ6IG51bGwsXG5cdFx0XHRtYXN0ZXJBY3Rpb246IHVuZGVmaW5lZFxuXHRcdH0sIGFyZ3VtZW50c1s0XSB8fCB7fSk7XG5cblx0XHR0aGlzLmVsZW1lbnRzID0gW107XG5cdFx0dGhpcy5jb250ZXh0SGlkZGVuID0gZmFsc2U7XG5cdFx0dGhpcy5kZW55ID0gZmFsc2U7XG5cdFx0aWYgKHRoaXMuY29udGV4dC5zdWJNZW51KSB7XG5cdFx0XHRpZiAoIXRoaXMub3B0aW9ucy5hY3Rpb25CYXIpIHtcblx0XHRcdFx0YWxlcnQoJ1dhcm5pbmcsIHdyb25nIGFjdGlvbiBkZWZpbml0aW9uLiBDYW5ub3QgdXNlIGEgc3ViTWVudSBpZiBub3QgZGlzcGxheWVkIGluIHRoZSBhY3Rpb25CYXIhJyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0QWN0aW9uLnByb3RvdHlwZS5fZXZhbFNjcmlwdHMgPSBmdW5jdGlvbiBfZXZhbFNjcmlwdHMoZGF0YSwgbG9jYWxTY29wZU1ldGFkYXRhKSB7XG5cdFx0dmFyIG1ldGFkYXRhID0gbG9jYWxTY29wZU1ldGFkYXRhO1xuXHRcdHJldHVybiBldmFsKGRhdGEpO1xuXHR9O1xuXG5cdC8qKlxuICAqIFNldHMgdGhlIG1hbmFnZXIgZm9yIHRoaXMgYWN0aW9uXG4gICogQHBhcmFtIG1hbmFnZXIgQWN0aW9uc01hbmFnZXJcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLnNldE1hbmFnZXIgPSBmdW5jdGlvbiBzZXRNYW5hZ2VyKG1hbmFnZXIpIHtcblx0XHR0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuXHRcdGlmICh0aGlzLm9wdGlvbnMuc3ViTWVudSkge1xuXHRcdFx0aWYgKHRoaXMuc3ViTWVudUl0ZW1zLnN0YXRpY0l0ZW1zKSB7XG5cdFx0XHRcdHRoaXMuYnVpbGRTdWJtZW51U3RhdGljSXRlbXMoKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljSXRlbXMgfHwgdGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXJDb2RlKSB7XG5cdFx0XHRcdHRoaXMucHJlcGFyZVN1Ym1lbnVEeW5hbWljQnVpbGRlcigpO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlck1vZHVsZSkge1xuXHRcdFx0XHRfaHR0cFJlc291cmNlc01hbmFnZXIyWydkZWZhdWx0J10uZGV0ZWN0TW9kdWxlVG9Mb2FkQW5kQXBwbHkodGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXJNb2R1bGUsIHRoaXMucHJlcGFyZVN1Ym1lbnVEeW5hbWljQnVpbGRlci5iaW5kKHRoaXMpKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbJ2luaXQnXSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0d2luZG93Lmxpc3RlbmVyQ29udGV4dCA9IHRoaXM7XG5cdFx0XHRcdGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLmxpc3RlbmVyc1snaW5pdCddID09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0XHR0aGlzLl9ldmFsU2NyaXB0cyh0aGlzLm9wdGlvbnMubGlzdGVuZXJzWydpbml0J10pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbJ2luaXQnXSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmVycm9yKCdFcnJvciB3aGlsZSBldmFsdWF0aW5nIGluaXQgc2NyaXB0IGZvciBhY3Rpb24gJyArIHRoaXMub3B0aW9ucy5uYW1lKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0LyoqXG4gICogRXhlY3V0ZSB0aGUgYWN0aW9uIGNvZGVcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLmFwcGx5ID0gZnVuY3Rpb24gYXBwbHkoKSB7XG5cdFx0aWYgKHRoaXMuZGVueSkgcmV0dXJuO1xuXHRcdHRoaXMubWFuYWdlci5wdWJsaXNoQWN0aW9uRXZlbnQoXCJiZWZvcmVBcHBseS1cIiArIHRoaXMub3B0aW9ucy5uYW1lKTtcblx0XHR3aW5kb3cuYWN0aW9uQXJndW1lbnRzID0gW107XG5cdFx0d2luZG93LmFjdGlvbk1hbmFnZXIgPSB0aGlzLm1hbmFnZXI7XG5cdFx0aWYgKGFyZ3VtZW50c1swXSkgd2luZG93LmFjdGlvbkFyZ3VtZW50cyA9IGFyZ3VtZW50c1swXTtcblx0XHRpZiAodGhpcy5vcHRpb25zLmNhbGxiYWNrQ29kZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0dGhpcy5fZXZhbFNjcmlwdHModGhpcy5vcHRpb25zLmNhbGxiYWNrQ29kZSk7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmVycm9yKGUpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmNhbGxiYWNrKSB7XG5cdFx0XHR0aGlzLm9wdGlvbnMuY2FsbGJhY2sodGhpcy5tYW5hZ2VyLCBhcmd1bWVudHNbMF0pO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vcHRpb25zLnN1Yk1lbnUgJiYgYXJndW1lbnRzWzBdICYmIGFyZ3VtZW50c1swXVswXSkge1xuXHRcdFx0dGhpcy5ub3RpZnkoXCJzdWJtZW51X2FjdGl2ZVwiLCBhcmd1bWVudHNbMF1bMF0pO1xuXHRcdH1cblx0XHR3aW5kb3cuYWN0aW9uQXJndW1lbnRzID0gbnVsbDtcblx0XHR3aW5kb3cuYWN0aW9uTWFuYWdlciA9IG51bGw7XG5cdFx0dGhpcy5tYW5hZ2VyLnB1Ymxpc2hBY3Rpb25FdmVudChcImFmdGVyQXBwbHktXCIgKyB0aGlzLm9wdGlvbnMubmFtZSk7XG5cdH07XG5cblx0LyoqXG4gICogVXBkYXRlcyB0aGUgYWN0aW9uIHN0YXR1cyBvbiBjb250ZXh0IGNoYW5nZVxuICAgICAqIEBwYXJhbSBkYXRhTW9kZWwgUHlkaW9EYXRhTW9kZWxcbiAgICAgKiBAcGFyYW0gdXNlcnNFbmFibGVkIGJvb2xlYW5cbiAgICAgKiBAcGFyYW0gY3J0VXNlciBzdHJpbmdcbiAgKiBAcmV0dXJucyB2b2lkXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5maXJlQ29udGV4dENoYW5nZSA9IGZ1bmN0aW9uIGZpcmVDb250ZXh0Q2hhbmdlKGRhdGFNb2RlbCwgdXNlcnNFbmFibGVkLCBjcnRVc2VyKSB7XG5cblx0XHRpZiAodGhpcy5yaWdodHNDb250ZXh0LnBhcmFtRGlzYWJsZSkge1xuXHRcdFx0Ly8gRnVsbCBkaXNhYmxlXG5cblx0XHRcdHZhciBfcmlnaHRzQ29udGV4dCRwYXJhbURpc2FibGUkc3BsaXQgPSB0aGlzLnJpZ2h0c0NvbnRleHQucGFyYW1EaXNhYmxlLnNwbGl0KCcvJyk7XG5cblx0XHRcdHZhciBwbHVnaW4gPSBfcmlnaHRzQ29udGV4dCRwYXJhbURpc2FibGUkc3BsaXRbMF07XG5cdFx0XHR2YXIgcGFyYW0gPSBfcmlnaHRzQ29udGV4dCRwYXJhbURpc2FibGUkc3BsaXRbMV07XG5cblx0XHRcdGlmICh0aGlzLm1hbmFnZXIuZ2V0UHlkaW8oKS5nZXRQbHVnaW5Db25maWdzKHBsdWdpbikuaGFzKHBhcmFtKSkge1xuXHRcdFx0XHR2YXIgcFZhbHVlID0gdGhpcy5tYW5hZ2VyLmdldFB5ZGlvKCkuZ2V0UGx1Z2luQ29uZmlncyhwbHVnaW4pLmdldChwYXJhbSk7XG5cdFx0XHRcdGlmIChwVmFsdWUgPT09IHRydWUgfHwgcFZhbHVlID09PSAndHJ1ZScpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dmFyIGNydElzUmVjeWNsZSA9IGZhbHNlO1xuXHRcdHZhciBjcnRJblppcCA9IGZhbHNlO1xuXHRcdHZhciBjcnRJc1Jvb3QgPSBmYWxzZTtcblx0XHR2YXIgY3J0QWp4cE1pbWUgPSAnJztcblx0XHR2YXIgY3J0SXNSZWFkT25seSA9IGZhbHNlO1xuXG5cdFx0dmFyIGNydE5vZGUgPSBkYXRhTW9kZWwuZ2V0Q29udGV4dE5vZGUoKTtcblx0XHRpZiAoY3J0Tm9kZSkge1xuXHRcdFx0Y3J0SXNSZWN5Y2xlID0gY3J0Tm9kZS5nZXRBanhwTWltZSgpID09PSBcImFqeHBfcmVjeWNsZVwiO1xuXHRcdFx0Y3J0SW5aaXAgPSBjcnROb2RlLmhhc0FqeHBNaW1lSW5CcmFuY2goXCJhanhwX2Jyb3dzYWJsZV9hcmNoaXZlXCIpO1xuXHRcdFx0Y3J0SXNSb290ID0gY3J0Tm9kZS5pc1Jvb3QoKTtcblx0XHRcdGNydEFqeHBNaW1lID0gY3J0Tm9kZS5nZXRBanhwTWltZSgpO1xuXHRcdFx0Y3J0SXNSZWFkT25seSA9IGNydE5vZGUuaGFzTWV0YWRhdGFJbkJyYW5jaChcIm5vZGVfcmVhZG9ubHlcIiwgXCJ0cnVlXCIpIHx8IGNydE5vZGUuZ2V0TWV0YWRhdGEoKS5oYXMoXCJsZXZlbF9yZWFkb25seVwiKSAmJiBjcnROb2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwibGV2ZWxfcmVhZG9ubHlcIikgPT09IFwidHJ1ZVwiO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm9wdGlvbnMubGlzdGVuZXJzW1wiY29udGV4dENoYW5nZVwiXSkge1xuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbXCJjb250ZXh0Q2hhbmdlXCJdIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcblx0XHRcdFx0dGhpcy5vcHRpb25zLmxpc3RlbmVyc1tcImNvbnRleHRDaGFuZ2VcIl0oKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHdpbmRvdy5saXN0ZW5lckNvbnRleHQgPSB0aGlzO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdHRoaXMuX2V2YWxTY3JpcHRzKHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbXCJjb250ZXh0Q2hhbmdlXCJdKTtcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmVycm9yKFwiRXJyb3Igd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQgZm9yIGNvbnRleHRDaGFuZ2UgZXZlbnQgLSBhY3Rpb24gXCIgKyB0aGlzLm9wdGlvbnMubmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0dmFyIHJpZ2h0c0NvbnRleHQgPSB0aGlzLnJpZ2h0c0NvbnRleHQ7XG5cdFx0aWYgKCFyaWdodHNDb250ZXh0Lm5vVXNlciAmJiAhdXNlcnNFbmFibGVkKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdH1cblx0XHRpZiAocmlnaHRzQ29udGV4dC51c2VyTG9nZ2VkID09PSAnb25seScgJiYgY3J0VXNlciA9PT0gbnVsbCB8fCByaWdodHNDb250ZXh0Lmd1ZXN0TG9nZ2VkICYmIHJpZ2h0c0NvbnRleHQuZ3Vlc3RMb2dnZWQgPT09ICdoaWRkZW4nICYmIGNydFVzZXIgIT09IG51bGwgJiYgY3J0VXNlci5pZCA9PT0gJ2d1ZXN0Jykge1xuXHRcdFx0cmV0dXJuIHRoaXMuaGlkZUZvckNvbnRleHQoKTtcblx0XHR9XG5cdFx0aWYgKHJpZ2h0c0NvbnRleHQudXNlckxvZ2dlZCA9PT0gJ2hpZGRlbicgJiYgY3J0VXNlciAhPT0gbnVsbCAmJiAhKGNydFVzZXIuaWQgPT09ICdndWVzdCcgJiYgcmlnaHRzQ29udGV4dC5ndWVzdExvZ2dlZCAmJiByaWdodHNDb250ZXh0Lmd1ZXN0TG9nZ2VkID09PSAnc2hvdycpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdH1cblx0XHRpZiAocmlnaHRzQ29udGV4dC5hZG1pbk9ubHkgJiYgKGNydFVzZXIgPT0gbnVsbCB8fCAhY3J0VXNlci5pc0FkbWluKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuaGlkZUZvckNvbnRleHQoKTtcblx0XHR9XG5cdFx0aWYgKHJpZ2h0c0NvbnRleHQucmVhZCAmJiBjcnRVc2VyICE9IG51bGwgJiYgIWNydFVzZXIuY2FuUmVhZCgpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdH1cblx0XHRpZiAocmlnaHRzQ29udGV4dC53cml0ZSAmJiBjcnRVc2VyICE9IG51bGwgJiYgIWNydFVzZXIuY2FuV3JpdGUoKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuaGlkZUZvckNvbnRleHQoKTtcblx0XHR9XG5cdFx0aWYgKHJpZ2h0c0NvbnRleHQud3JpdGUgJiYgY3J0SXNSZWFkT25seSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuaGlkZUZvckNvbnRleHQoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuY29udGV4dC5hbGxvd2VkTWltZXMubGVuZ3RoKSB7XG5cdFx0XHRpZiAodGhpcy5jb250ZXh0LmFsbG93ZWRNaW1lcy5pbmRleE9mKFwiKlwiKSA9PT0gLTEgJiYgdGhpcy5jb250ZXh0LmFsbG93ZWRNaW1lcy5pbmRleE9mKGNydEFqeHBNaW1lKSA9PT0gLTEpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuaGlkZUZvckNvbnRleHQoKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmNvbnRleHQuYWxsb3dlZE1pbWVzLmluZGV4T2YoXCJeXCIgKyBjcnRBanhwTWltZSkgIT09IC0xKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmhpZGVGb3JDb250ZXh0KCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0aGlzLmNvbnRleHQucmVjeWNsZSkge1xuXHRcdFx0aWYgKHRoaXMuY29udGV4dC5yZWN5Y2xlID09PSAnb25seScgJiYgIWNydElzUmVjeWNsZSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuY29udGV4dC5yZWN5Y2xlID09PSAnaGlkZGVuJyAmJiBjcnRJc1JlY3ljbGUpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuaGlkZUZvckNvbnRleHQoKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKCF0aGlzLmNvbnRleHQuaW5aaXAgJiYgY3J0SW5aaXApIHtcblx0XHRcdHJldHVybiB0aGlzLmhpZGVGb3JDb250ZXh0KCk7XG5cdFx0fVxuXHRcdGlmICghdGhpcy5jb250ZXh0LnJvb3QgJiYgY3J0SXNSb290KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oaWRlRm9yQ29udGV4dCgpO1xuXHRcdH1cblxuXHRcdHRoaXMuc2hvd0ZvckNvbnRleHQoZGF0YU1vZGVsKTtcblx0fTtcblxuXHQvKipcbiAgKiBVcGF0ZXMgdGhlIGFjdGlvbiBzdGF0dXMgb24gc2VsZWN0aW9uIGNoYW5nZVxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuZmlyZVNlbGVjdGlvbkNoYW5nZSA9IGZ1bmN0aW9uIGZpcmVTZWxlY3Rpb25DaGFuZ2UoKSB7XG5cdFx0aWYgKHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbXCJzZWxlY3Rpb25DaGFuZ2VcIl0pIHtcblx0XHRcdGlmICh0aGlzLm9wdGlvbnMubGlzdGVuZXJzW1wic2VsZWN0aW9uQ2hhbmdlXCJdIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcblx0XHRcdFx0dGhpcy5vcHRpb25zLmxpc3RlbmVyc1tcInNlbGVjdGlvbkNoYW5nZVwiXSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2luZG93Lmxpc3RlbmVyQ29udGV4dCA9IHRoaXM7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0dGhpcy5fZXZhbFNjcmlwdHModGhpcy5vcHRpb25zLmxpc3RlbmVyc1tcInNlbGVjdGlvbkNoYW5nZVwiXSk7XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRfbGFuZ0xvZ2dlcjJbJ2RlZmF1bHQnXS5lcnJvcihcIkVycm9yIHdoaWxlIGV2YWx1YXRpbmcgc2NyaXB0IGZvciBzZWxlY3Rpb25DaGFuZ2UgZXZlbnQgLSBhY3Rpb24gXCIgKyB0aGlzLm9wdGlvbnMubmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRoaXMub3B0aW9ucy5hY3RpdmVDb25kaXRpb24pIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHZhciByZXN1bHQgPSB0aGlzLm9wdGlvbnMuYWN0aXZlQ29uZGl0aW9uKCk7XG5cdFx0XHRcdGlmIChyZXN1bHQgPT09IGZhbHNlKSB0aGlzLmRpc2FibGUoKTtlbHNlIGlmIChyZXN1bHQgPT09IHRydWUpIHRoaXMuZW5hYmxlKCk7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmVycm9yKFwiRXJyb3Igd2hpbGUgZXZhbHVhdGluZyBhY3RpdmVDb25kaXRpb24oKSBzY3JpcHQgZm9yIGFjdGlvbiBcIiArIHRoaXMub3B0aW9ucy5uYW1lKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRoaXMuY29udGV4dEhpZGRlbiB8fCAhdGhpcy5jb250ZXh0LnNlbGVjdGlvbikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR2YXIgdXNlclNlbGVjdGlvbiA9IGFyZ3VtZW50c1swXTtcblx0XHR2YXIgaGFzUm9vdCA9IGZhbHNlO1xuXHRcdGlmICh1c2VyU2VsZWN0aW9uICE9IG51bGwpIHtcblx0XHRcdGhhc1Jvb3QgPSB1c2VyU2VsZWN0aW9uLnNlbGVjdGlvbkhhc1Jvb3ROb2RlKCk7XG5cdFx0XHR2YXIgYlVuaXF1ZSA9IHVzZXJTZWxlY3Rpb24uaXNVbmlxdWUoKTtcblx0XHRcdHZhciBiRmlsZSA9IHVzZXJTZWxlY3Rpb24uaGFzRmlsZSgpO1xuXHRcdFx0dmFyIGJEaXIgPSB1c2VyU2VsZWN0aW9uLmhhc0RpcigpO1xuXHRcdFx0dmFyIGJSZWN5Y2xlID0gdXNlclNlbGVjdGlvbi5pc1JlY3ljbGUoKTtcblx0XHR9XG5cdFx0dmFyIHNlbGVjdGlvbkNvbnRleHQgPSB0aGlzLnNlbGVjdGlvbkNvbnRleHQ7XG5cdFx0aWYgKHNlbGVjdGlvbkNvbnRleHQuYWxsb3dlZE1pbWVzLmxlbmd0aCkge1xuXHRcdFx0aWYgKHNlbGVjdGlvbkNvbnRleHQuYmVoYXZpb3VyID09ICdoaWRkZW4nKSB0aGlzLmhpZGUoKTtlbHNlIHRoaXMuZGlzYWJsZSgpO1xuXHRcdH1cblx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC5ldmFsTWV0YWRhdGEgJiYgdXNlclNlbGVjdGlvbiAmJiB1c2VyU2VsZWN0aW9uLmlzVW5pcXVlKCkpIHtcblx0XHRcdHZhciByZXN1bHQgPSB0aGlzLl9ldmFsU2NyaXB0cyhzZWxlY3Rpb25Db250ZXh0LmV2YWxNZXRhZGF0YSwgdXNlclNlbGVjdGlvbi5nZXRVbmlxdWVOb2RlKCkuZ2V0TWV0YWRhdGEoKSk7XG5cdFx0XHRpZiAoIXJlc3VsdCkge1xuXHRcdFx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC5iZWhhdmlvdXIgPT0gJ2hpZGRlbicpIHRoaXMuaGlkZSgpO2Vsc2UgdGhpcy5kaXNhYmxlKCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKCFzZWxlY3Rpb25Db250ZXh0LmVuYWJsZVJvb3QgJiYgaGFzUm9vdCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzYWJsZSgpO1xuXHRcdH1cblx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC51bmlxdWUgJiYgIWJVbmlxdWUpIHtcblx0XHRcdHJldHVybiB0aGlzLmRpc2FibGUoKTtcblx0XHR9XG5cdFx0aWYgKHNlbGVjdGlvbkNvbnRleHQubXVsdGlwbGVPbmx5ICYmIGJVbmlxdWUpIHtcblx0XHRcdHJldHVybiB0aGlzLmRpc2FibGUoKTtcblx0XHR9XG5cdFx0aWYgKChzZWxlY3Rpb25Db250ZXh0LmZpbGUgfHwgc2VsZWN0aW9uQ29udGV4dC5kaXIpICYmICFiRmlsZSAmJiAhYkRpcikge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzYWJsZSgpO1xuXHRcdH1cblx0XHRpZiAoc2VsZWN0aW9uQ29udGV4dC5kaXIgJiYgIXNlbGVjdGlvbkNvbnRleHQuZmlsZSAmJiBiRmlsZSB8fCAhc2VsZWN0aW9uQ29udGV4dC5kaXIgJiYgc2VsZWN0aW9uQ29udGV4dC5maWxlICYmIGJEaXIpIHtcblx0XHRcdHJldHVybiB0aGlzLmRpc2FibGUoKTtcblx0XHR9XG5cdFx0aWYgKCFzZWxlY3Rpb25Db250ZXh0LnJlY3ljbGUgJiYgYlJlY3ljbGUpIHtcblx0XHRcdHJldHVybiB0aGlzLmRpc2FibGUoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMucmlnaHRzQ29udGV4dC53cml0ZSAmJiB1c2VyU2VsZWN0aW9uLmhhc1JlYWRPbmx5KCkpIHtcblx0XHRcdHJldHVybiB0aGlzLmRpc2FibGUoKTtcblx0XHR9XG5cdFx0aWYgKHNlbGVjdGlvbkNvbnRleHQuYWxsb3dlZE1pbWVzLmxlbmd0aCAmJiB1c2VyU2VsZWN0aW9uICYmIHNlbGVjdGlvbkNvbnRleHQuYWxsb3dlZE1pbWVzLmluZGV4T2YoJyonKSA9PSAtMSAmJiAhdXNlclNlbGVjdGlvbi5oYXNNaW1lKHNlbGVjdGlvbkNvbnRleHQuYWxsb3dlZE1pbWVzKSkge1xuXHRcdFx0aWYgKHNlbGVjdGlvbkNvbnRleHQuYmVoYXZpb3VyID09ICdoaWRkZW4nKSByZXR1cm4gdGhpcy5oaWRlKCk7ZWxzZSByZXR1cm4gdGhpcy5kaXNhYmxlKCk7XG5cdFx0fVxuXHRcdGlmIChzZWxlY3Rpb25Db250ZXh0LmFsbG93ZWRNaW1lcy5sZW5ndGggJiYgdXNlclNlbGVjdGlvbiAmJiBzZWxlY3Rpb25Db250ZXh0LmFsbG93ZWRNaW1lcy5pbmRleE9mKFwiXlwiKSAhPT0gLTEpIHtcblx0XHRcdHZhciBmb3JiaWRkZW5WYWx1ZUZvdW5kID0gZmFsc2U7XG5cdFx0XHRzZWxlY3Rpb25Db250ZXh0LmFsbG93ZWRNaW1lcy5mb3JFYWNoKGZ1bmN0aW9uIChtKSB7XG5cdFx0XHRcdGlmIChtLmluZGV4T2YoXCJeXCIpID09IC0xKSByZXR1cm47XG5cdFx0XHRcdGlmICh1c2VyU2VsZWN0aW9uLmhhc01pbWUoW20ucmVwbGFjZShcIl5cIiwgXCJcIildKSkge1xuXHRcdFx0XHRcdGZvcmJpZGRlblZhbHVlRm91bmQgPSB0cnVlO1xuXHRcdFx0XHRcdC8vdGhyb3cgJGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGlmIChmb3JiaWRkZW5WYWx1ZUZvdW5kKSB7XG5cdFx0XHRcdGlmIChzZWxlY3Rpb25Db250ZXh0LmJlaGF2aW91ciA9PSAnaGlkZGVuJykgcmV0dXJuIHRoaXMuaGlkZSgpO2Vsc2UgcmV0dXJuIHRoaXMuZGlzYWJsZSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLnNob3coKTtcblx0XHR0aGlzLmVuYWJsZSgpO1xuXHR9O1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuZ2V0TWVudURhdGEgPSBmdW5jdGlvbiBnZXRNZW51RGF0YSgpIHtcblx0XHR2YXIgbWVudUl0ZW0gPSB7XG5cdFx0XHRuYW1lOiB0aGlzLmdldEtleWVkVGV4dCgpLFxuXHRcdFx0bGFiZWxfaWQ6IHRoaXMub3B0aW9ucy50ZXh0X2lkLFxuXHRcdFx0cmF3X25hbWU6IHRoaXMub3B0aW9ucy50ZXh0LFxuXHRcdFx0YWx0OiB0aGlzLm9wdGlvbnMudGl0bGUsXG5cdFx0XHRhY3Rpb25faWQ6IHRoaXMub3B0aW9ucy5uYW1lLFxuXHRcdFx0d2VpZ2h0OiB0aGlzLm9wdGlvbnMud2VpZ2h0IHx8IDAsXG5cdFx0XHRjYWxsYmFjazogKGZ1bmN0aW9uIChlKSB7XG5cdFx0XHRcdHRoaXMuYXBwbHkoKTtcblx0XHRcdH0pLmJpbmQodGhpcylcblx0XHR9O1xuXHRcdGlmICh0aGlzLm9wdGlvbnMuaWNvbl9jbGFzcykge1xuXHRcdFx0bWVudUl0ZW0uaWNvbl9jbGFzcyA9IHRoaXMub3B0aW9ucy5pY29uX2NsYXNzO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vcHRpb25zLnN1Yk1lbnUpIHtcblx0XHRcdG1lbnVJdGVtLnN1Yk1lbnUgPSBbXTtcblx0XHRcdGlmICh0aGlzLnN1Yk1lbnVJdGVtcy5zdGF0aWNPcHRpb25zKSB7XG5cdFx0XHRcdG1lbnVJdGVtLnN1Yk1lbnUgPSB0aGlzLnN1Yk1lbnVJdGVtcy5zdGF0aWNPcHRpb25zO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyKSB7XG5cdFx0XHRcdG1lbnVJdGVtLnN1Yk1lbnVCZWZvcmVTaG93ID0gdGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBtZW51SXRlbTtcblx0fTtcblxuXHQvKipcbiAgKiBQYXJzZXMgYW4gWE1MIGZyYWdtZW50IHRvIGNvbmZpZ3VyZSB0aGlzIGFjdGlvblxuICAqIEBwYXJhbSB4bWxOb2RlIE5vZGUgWE1MIEZyYWdtZW50IGRlc2NyaWJpbmcgdGhlIGFjdGlvblxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuY3JlYXRlRnJvbVhNTCA9IGZ1bmN0aW9uIGNyZWF0ZUZyb21YTUwoeG1sTm9kZSkge1xuXHRcdHZhciBfdGhpcyA9IHRoaXM7XG5cblx0XHR0aGlzLm9wdGlvbnMubmFtZSA9IHhtbE5vZGUuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCB4bWxOb2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBub2RlID0geG1sTm9kZS5jaGlsZE5vZGVzW2ldO1xuXHRcdFx0dmFyIGRlZmF1bHRBdHRyaWJ1dGVzID0ge1xuXHRcdFx0XHRkaXI6IFwiZGlyRGVmYXVsdFwiLFxuXHRcdFx0XHRmaWxlOiBcImZpbGVEZWZhdWx0XCIsXG5cdFx0XHRcdGRyYWduZHJvcDogXCJkcmFnbmRyb3BEZWZhdWx0XCIsXG5cdFx0XHRcdGN0cmxkcmFnbmRyb3A6IFwiY3RybERyYWduZHJvcERlZmF1bHRcIixcblx0XHRcdFx0ZXhwaXJlOiBcImV4cGlyZURlZmF1bHRcIlxuXHRcdFx0fTtcblx0XHRcdGZvciAodmFyIGtleSBpbiBkZWZhdWx0QXR0cmlidXRlcykge1xuXHRcdFx0XHRpZiAoIWRlZmF1bHRBdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KGtleSkpIGNvbnRpbnVlO1xuXHRcdFx0XHR2YXIgdmFsdWUgPSBkZWZhdWx0QXR0cmlidXRlc1trZXldO1xuXHRcdFx0XHRpZiAoeG1sTm9kZS5nZXRBdHRyaWJ1dGUodmFsdWUpICYmIHhtbE5vZGUuZ2V0QXR0cmlidXRlKHZhbHVlKSA9PSBcInRydWVcIikge1xuXHRcdFx0XHRcdGlmICghdGhpcy5kZWZhdWx0cykgdGhpcy5kZWZhdWx0cyA9IHt9O1xuXHRcdFx0XHRcdHRoaXMuZGVmYXVsdHNba2V5XSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHZhciBqO1xuXHRcdFx0aWYgKG5vZGUubm9kZU5hbWUgPT0gXCJwcm9jZXNzaW5nXCIpIHtcblx0XHRcdFx0dmFyIGNsaWVudEZvcm1EYXRhID0ge307XG5cdFx0XHRcdGZvciAoaiA9IDA7IGogPCBub2RlLmNoaWxkTm9kZXMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0XHR2YXIgcHJvY2Vzc05vZGUgPSBub2RlLmNoaWxkTm9kZXNbal07XG5cdFx0XHRcdFx0aWYgKHByb2Nlc3NOb2RlLm5vZGVOYW1lID09PSBcImNsaWVudENhbGxiYWNrXCIpIHtcblx0XHRcdFx0XHRcdGlmIChwcm9jZXNzTm9kZS5nZXRBdHRyaWJ1dGUoJ21vZHVsZScpKSB7XG5cdFx0XHRcdFx0XHRcdChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGZOYW1lID0gcHJvY2Vzc05vZGUuZ2V0QXR0cmlidXRlKCdtb2R1bGUnKTtcblx0XHRcdFx0XHRcdFx0XHRfdGhpcy5vcHRpb25zLmNhbGxiYWNrID0gZnVuY3Rpb24gKG1hbmFnZXIsIG90aGVyQXJndW1lbnRzKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRfaHR0cFJlc291cmNlc01hbmFnZXIyWydkZWZhdWx0J10uZGV0ZWN0TW9kdWxlVG9Mb2FkQW5kQXBwbHkoZk5hbWUsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0X3V0aWxGdW5jVXRpbHMyWydkZWZhdWx0J10uZXhlY3V0ZUZ1bmN0aW9uQnlOYW1lKGZOYW1lLCB3aW5kb3csIG1hbmFnZXIsIG90aGVyQXJndW1lbnRzKTtcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0aWYgKF90aGlzLmRlZmF1bHRzICYmIChfdGhpcy5kZWZhdWx0c1snZHJhZ25kcm9wJ10gfHwgX3RoaXMuZGVmYXVsdHNbJ2N0cmxkcmFnbmRyb3AnXSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdF90aGlzLm9wdGlvbnMuZHJhZ25kcm9wQ2hlY2tNb2R1bGUgPSBmTmFtZTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pKCk7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHByb2Nlc3NOb2RlLmZpcnN0Q2hpbGQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb25zLmNhbGxiYWNrQ29kZSA9IHByb2Nlc3NOb2RlLmZpcnN0Q2hpbGQubm9kZVZhbHVlLnRyaW0oKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2UgaWYgKHByb2Nlc3NOb2RlLm5vZGVOYW1lID09PSBcImNsaWVudExpc3RlbmVyXCIpIHtcblx0XHRcdFx0XHRcdGlmIChwcm9jZXNzTm9kZS5nZXRBdHRyaWJ1dGUoJ21vZHVsZScpKSB7XG5cdFx0XHRcdFx0XHRcdChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIG1vZHVsZU5hbWUgPSBwcm9jZXNzTm9kZS5nZXRBdHRyaWJ1dGUoJ21vZHVsZScpO1xuXHRcdFx0XHRcdFx0XHRcdF90aGlzLm9wdGlvbnMubGlzdGVuZXJzW3Byb2Nlc3NOb2RlLmdldEF0dHJpYnV0ZSgnbmFtZScpXSA9IChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRfaHR0cFJlc291cmNlc01hbmFnZXIyWydkZWZhdWx0J10uZGV0ZWN0TW9kdWxlVG9Mb2FkQW5kQXBwbHkobW9kdWxlTmFtZSwgKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGZ1bmMgPSBfdXRpbEZ1bmNVdGlsczJbJ2RlZmF1bHQnXS5nZXRGdW5jdGlvbkJ5TmFtZShtb2R1bGVOYW1lLCB3aW5kb3cpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoZnVuYykgZnVuYy5hcHBseSh0aGlzKTtcblx0XHRcdFx0XHRcdFx0XHRcdH0pLmJpbmQodGhpcykpO1xuXHRcdFx0XHRcdFx0XHRcdH0pLmJpbmQoX3RoaXMpO1xuXHRcdFx0XHRcdFx0XHR9KSgpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChwcm9jZXNzTm9kZS5maXJzdENoaWxkKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9ucy5saXN0ZW5lcnNbcHJvY2Vzc05vZGUuZ2V0QXR0cmlidXRlKCduYW1lJyldID0gcHJvY2Vzc05vZGUuZmlyc3RDaGlsZC5ub2RlVmFsdWUudHJpbSgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAocHJvY2Vzc05vZGUubm9kZU5hbWUgPT09IFwiYWN0aXZlQ29uZGl0aW9uXCIgJiYgcHJvY2Vzc05vZGUuZmlyc3RDaGlsZCkge1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb25zLmFjdGl2ZUNvbmRpdGlvbiA9IG5ldyBGdW5jdGlvbihwcm9jZXNzTm9kZS5maXJzdENoaWxkLm5vZGVWYWx1ZS50cmltKCkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChub2RlLm5vZGVOYW1lID09PSBcImd1aVwiKSB7XG5cdFx0XHRcdHRoaXMub3B0aW9ucy50ZXh0X2lkID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ3RleHQnKTtcblx0XHRcdFx0dGhpcy5vcHRpb25zLnRpdGxlX2lkID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyk7XG5cdFx0XHRcdHRoaXMub3B0aW9ucy50ZXh0ID0gdGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2Uobm9kZS5nZXRBdHRyaWJ1dGUoJ3RleHQnKSkgfHwgJ25vdF9mb3VuZCc7XG5cdFx0XHRcdHRoaXMub3B0aW9ucy50aXRsZSA9IHRoaXMubWFuYWdlci5nZXRNZXNzYWdlKG5vZGUuZ2V0QXR0cmlidXRlKCd0aXRsZScpKSB8fCAnbm90X2ZvdW5kJztcblx0XHRcdFx0dGhpcy5vcHRpb25zLnNyYyA9IG5vZGUuZ2V0QXR0cmlidXRlKCdzcmMnKTtcblx0XHRcdFx0dGhpcy5vcHRpb25zLmljb25fY2xhc3MgPSBub2RlLmdldEF0dHJpYnV0ZSgnaWNvbkNsYXNzJyk7XG5cdFx0XHRcdHRoaXMub3B0aW9ucy53ZWlnaHQgPSBub2RlLmdldEF0dHJpYnV0ZSgnd2VpZ2h0JykgfHwgMDtcblx0XHRcdFx0aWYgKG5vZGUuZ2V0QXR0cmlidXRlKCdoYXNBY2Nlc3NLZXknKSAmJiBub2RlLmdldEF0dHJpYnV0ZSgnaGFzQWNjZXNzS2V5JykgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLmFjY2Vzc0tleSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdhY2Nlc3NLZXknKTtcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMuaGFzQWNjZXNzS2V5ID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobm9kZS5nZXRBdHRyaWJ1dGUoJ3NwZWNpYWxBY2Nlc3NLZXknKSkge1xuXHRcdFx0XHRcdHRoaXMub3B0aW9ucy5zcGVjaWFsQWNjZXNzS2V5ID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ3NwZWNpYWxBY2Nlc3NLZXknKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IgKGogPSAwOyBqIDwgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0aWYgKG5vZGUuY2hpbGROb2Rlc1tqXS5ub2RlTmFtZSA9PT0gXCJjb250ZXh0XCIpIHtcblx0XHRcdFx0XHRcdHRoaXMuYXR0cmlidXRlc1RvT2JqZWN0KHRoaXMuY29udGV4dCwgbm9kZS5jaGlsZE5vZGVzW2pdKTtcblx0XHRcdFx0XHRcdGlmICh0aGlzLmNvbnRleHQuYWp4cFdpZGdldHMpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5jb250ZXh0LmFqeHBXaWRnZXRzID0gdGhpcy5jb250ZXh0LmFqeHBXaWRnZXRzLnNwbGl0KCcsJyk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmNvbnRleHQuYWp4cFdpZGdldHMgPSBbXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHlcblx0XHRcdFx0XHRcdGlmICh0aGlzLmNvbnRleHQuaW5mb1BhbmVsKSB0aGlzLmNvbnRleHQuYWp4cFdpZGdldHMucHVzaCgnSW5mb1BhbmVsJyk7XG5cdFx0XHRcdFx0XHRpZiAodGhpcy5jb250ZXh0LmFjdGlvbkJhcikgdGhpcy5jb250ZXh0LmFqeHBXaWRnZXRzLnB1c2goJ0FjdGlvbnNUb29sYmFyJyk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChub2RlLmNoaWxkTm9kZXNbal0ubm9kZU5hbWUgPT09IFwic2VsZWN0aW9uQ29udGV4dFwiKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmF0dHJpYnV0ZXNUb09iamVjdCh0aGlzLnNlbGVjdGlvbkNvbnRleHQsIG5vZGUuY2hpbGROb2Rlc1tqXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKG5vZGUubm9kZU5hbWUgPT09IFwicmlnaHRzQ29udGV4dFwiKSB7XG5cdFx0XHRcdHRoaXMuYXR0cmlidXRlc1RvT2JqZWN0KHRoaXMucmlnaHRzQ29udGV4dCwgbm9kZSk7XG5cdFx0XHR9IGVsc2UgaWYgKG5vZGUubm9kZU5hbWUgPT09IFwic3ViTWVudVwiKSB7XG5cdFx0XHRcdHRoaXMub3B0aW9ucy5zdWJNZW51ID0gdHJ1ZTtcblx0XHRcdFx0aWYgKG5vZGUuZ2V0QXR0cmlidXRlKFwidXBkYXRlSW1hZ2VPblNlbGVjdFwiKSAmJiBub2RlLmdldEF0dHJpYnV0ZShcInVwZGF0ZUltYWdlT25TZWxlY3RcIikgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnN1Yk1lbnVVcGRhdGVJbWFnZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG5vZGUuZ2V0QXR0cmlidXRlKFwidXBkYXRlVGl0bGVPblNlbGVjdFwiKSAmJiBub2RlLmdldEF0dHJpYnV0ZShcInVwZGF0ZVRpdGxlT25TZWxlY3RcIikgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0dGhpcy5vcHRpb25zLnN1Yk1lbnVVcGRhdGVUaXRsZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG5vZGUuZ2V0QXR0cmlidXRlKFwibWFzdGVyQWN0aW9uXCIpKSB7XG5cdFx0XHRcdFx0dGhpcy5zdWJNZW51SXRlbXMubWFzdGVyQWN0aW9uID0gbm9kZS5nZXRBdHRyaWJ1dGUoXCJtYXN0ZXJBY3Rpb25cIik7XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yIChqID0gMDsgaiA8IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRcdGlmIChub2RlLmNoaWxkTm9kZXNbal0ubm9kZU5hbWUgPT09IFwic3RhdGljSXRlbXNcIiB8fCBub2RlLmNoaWxkTm9kZXNbal0ubm9kZU5hbWUgPT09IFwiZHluYW1pY0l0ZW1zXCIpIHtcblx0XHRcdFx0XHRcdHRoaXMuc3ViTWVudUl0ZW1zW25vZGUuY2hpbGROb2Rlc1tqXS5ub2RlTmFtZV0gPSBbXTtcblx0XHRcdFx0XHRcdGZvciAodmFyIGsgPSAwOyBrIDwgbm9kZS5jaGlsZE5vZGVzW2pdLmNoaWxkTm9kZXMubGVuZ3RoOyBrKyspIHtcblx0XHRcdFx0XHRcdFx0aWYgKG5vZGUuY2hpbGROb2Rlc1tqXS5jaGlsZE5vZGVzW2tdLm5vZGVOYW1lLnN0YXJ0c1dpdGgoXCJpdGVtXCIpKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGl0ZW0gPSB7fTtcblx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciB6ID0gMDsgeiA8IG5vZGUuY2hpbGROb2Rlc1tqXS5jaGlsZE5vZGVzW2tdLmF0dHJpYnV0ZXMubGVuZ3RoOyB6KyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyaWJ1dGUgPSBub2RlLmNoaWxkTm9kZXNbal0uY2hpbGROb2Rlc1trXS5hdHRyaWJ1dGVzW3pdO1xuXHRcdFx0XHRcdFx0XHRcdFx0aXRlbVthdHRyaWJ1dGUubm9kZU5hbWVdID0gYXR0cmlidXRlLnZhbHVlO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR0aGlzLnN1Yk1lbnVJdGVtc1tub2RlLmNoaWxkTm9kZXNbal0ubm9kZU5hbWVdLnB1c2goaXRlbSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2UgaWYgKG5vZGUuY2hpbGROb2Rlc1tqXS5ub2RlTmFtZSA9PT0gXCJkeW5hbWljQnVpbGRlclwiKSB7XG5cdFx0XHRcdFx0XHRpZiAobm9kZS5jaGlsZE5vZGVzW2pdLmdldEF0dHJpYnV0ZShcIm1vZHVsZVwiKSkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlck1vZHVsZSA9IG5vZGUuY2hpbGROb2Rlc1tqXS5nZXRBdHRyaWJ1dGUoXCJtb2R1bGVcIik7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlckNvZGUgPSBub2RlLmNoaWxkTm9kZXNbal0uZmlyc3RDaGlsZC5ub2RlVmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICghdGhpcy5vcHRpb25zLmhhc0FjY2Vzc0tleSkgcmV0dXJuO1xuXHRcdGlmICh0aGlzLm9wdGlvbnMuYWNjZXNzS2V5ID09ICcnIHx8ICF0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZSh0aGlzLm9wdGlvbnMuYWNjZXNzS2V5KSB8fCB0aGlzLm9wdGlvbnMudGV4dC5pbmRleE9mKHRoaXMubWFuYWdlci5nZXRNZXNzYWdlKHRoaXMub3B0aW9ucy5hY2Nlc3NLZXkpKSA9PSAtMSkge1xuXHRcdFx0dGhpcy5vcHRpb25zLmFjY2Vzc0tleSA9IHRoaXMub3B0aW9ucy50ZXh0LmNoYXJBdCgwKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5vcHRpb25zLmFjY2Vzc0tleSA9IHRoaXMubWFuYWdlci5nZXRNZXNzYWdlKHRoaXMub3B0aW9ucy5hY2Nlc3NLZXkpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcbiAgKiBDcmVhdGVzIHRoZSBzdWJtZW51IGl0ZW1zXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5idWlsZFN1Ym1lbnVTdGF0aWNJdGVtcyA9IGZ1bmN0aW9uIGJ1aWxkU3VibWVudVN0YXRpY0l0ZW1zKCkge1xuXHRcdHZhciBtZW51SXRlbXMgPSBbXTtcblx0XHRpZiAodGhpcy5zdWJNZW51SXRlbXMuc3RhdGljSXRlbXMpIHtcblx0XHRcdHRoaXMuc3ViTWVudUl0ZW1zLnN0YXRpY0l0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcblx0XHRcdFx0dmFyIGl0ZW1UZXh0ID0gdGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2UoaXRlbS50ZXh0KTtcblx0XHRcdFx0aWYgKGl0ZW0uaGFzQWNjZXNzS2V5ICYmIChpdGVtLmhhc0FjY2Vzc0tleSA9PSAndHJ1ZScgfHwgaXRlbS5oYXNBY2Nlc3NLZXkgPT09IHRydWUpICYmIHRoaXMubWFuYWdlci5nZXRNZXNzYWdlKGl0ZW0uYWNjZXNzS2V5KSkge1xuXHRcdFx0XHRcdGl0ZW1UZXh0ID0gdGhpcy5nZXRLZXllZFRleHQodGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2UoaXRlbS50ZXh0KSwgdHJ1ZSwgdGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2UoaXRlbS5hY2Nlc3NLZXkpKTtcblx0XHRcdFx0XHRpZiAoIXRoaXMuc3ViTWVudUl0ZW1zLmFjY2Vzc0tleXMpIHRoaXMuc3ViTWVudUl0ZW1zLmFjY2Vzc0tleXMgPSBbXTtcblx0XHRcdFx0XHR0aGlzLm1hbmFnZXIucmVnaXN0ZXJLZXkodGhpcy5tYW5hZ2VyLmdldE1lc3NhZ2UoaXRlbS5hY2Nlc3NLZXkpLCB0aGlzLm9wdGlvbnMubmFtZSwgaXRlbS5jb21tYW5kKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRtZW51SXRlbXMucHVzaCh7XG5cdFx0XHRcdFx0bmFtZTogaXRlbVRleHQsXG5cdFx0XHRcdFx0YWx0OiB0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZShpdGVtLnRpdGxlKSxcblx0XHRcdFx0XHRpbWFnZV91bnJlc29sdmVkOiBpdGVtLnNyYyxcblx0XHRcdFx0XHRpY29uX2NsYXNzOiBpdGVtLmljb25fY2xhc3MsXG5cdFx0XHRcdFx0aXNEZWZhdWx0OiBpdGVtLmlzRGVmYXVsdCA/IHRydWUgOiBmYWxzZSxcblx0XHRcdFx0XHRjYWxsYmFjazogKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHRoaXMuYXBwbHkoW2l0ZW1dKTtcblx0XHRcdFx0XHR9KS5iaW5kKHRoaXMpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSwgdGhpcyk7XG5cdFx0fVxuXHRcdHRoaXMuc3ViTWVudUl0ZW1zLnN0YXRpY09wdGlvbnMgPSBtZW51SXRlbXM7XG5cdH07XG5cblx0LyoqXG4gICogQ2FjaGVzIHNvbWUgZGF0YSBmb3IgZHluYW1pY2FsbHkgYnVpbHQgbWVudXNcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLnByZXBhcmVTdWJtZW51RHluYW1pY0J1aWxkZXIgPSBmdW5jdGlvbiBwcmVwYXJlU3VibWVudUR5bmFtaWNCdWlsZGVyKCkge1xuXHRcdHRoaXMuc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyID0gKGZ1bmN0aW9uIChjb250cm9sbGVyKSB7XG5cdFx0XHR2YXIgbWVudUl0ZW1zID0gW107XG5cdFx0XHRpZiAodGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXJDb2RlKSB7XG5cdFx0XHRcdHdpbmRvdy5idWlsZGVyQ29udGV4dCA9IHRoaXM7XG5cdFx0XHRcdHRoaXMuX2V2YWxTY3JpcHRzKHRoaXMuc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyQ29kZSk7XG5cdFx0XHRcdG1lbnVJdGVtcyA9IHRoaXMuYnVpbGRlck1lbnVJdGVtcyB8fCBbXTtcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXJNb2R1bGUpIHtcblx0XHRcdFx0dmFyIGZ1bmMgPSBfdXRpbEZ1bmNVdGlsczJbJ2RlZmF1bHQnXS5nZXRGdW5jdGlvbkJ5TmFtZSh0aGlzLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlck1vZHVsZSwgd2luZG93KTtcblx0XHRcdFx0aWYgKGZ1bmMpIHtcblx0XHRcdFx0XHRtZW51SXRlbXMgPSBmdW5jLmFwcGx5KHRoaXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRtZW51SXRlbXMgPSBbXTtcblx0XHRcdFx0dGhpcy5zdWJNZW51SXRlbXMuZHluYW1pY0l0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcblx0XHRcdFx0XHRpZiAoaXRlbS5zZXBhcmF0b3IpIHtcblx0XHRcdFx0XHRcdG1lbnVJdGVtcy5wdXNoKGl0ZW0pO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR2YXIgYWN0aW9uID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdGlmIChpdGVtWydhY3Rpb25JZCddIGluc3RhbmNlb2YgQWN0aW9uKSB7XG5cdFx0XHRcdFx0XHRhY3Rpb24gPSBpdGVtWydhY3Rpb25JZCddO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhY3Rpb24gPSB0aGlzLm1hbmFnZXIuYWN0aW9ucy5nZXQoaXRlbVsnYWN0aW9uSWQnXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChhY3Rpb24uZGVueSkgcmV0dXJuO1xuXHRcdFx0XHRcdHZhciBpdGVtRGF0YSA9IHtcblx0XHRcdFx0XHRcdG5hbWU6IGFjdGlvbi5nZXRLZXllZFRleHQoKSxcblx0XHRcdFx0XHRcdGFsdDogYWN0aW9uLm9wdGlvbnMudGl0bGUsXG5cdFx0XHRcdFx0XHRpY29uX2NsYXNzOiBhY3Rpb24ub3B0aW9ucy5pY29uX2NsYXNzLFxuXHRcdFx0XHRcdFx0aW1hZ2VfdW5yZXNvbHZlZDogYWN0aW9uLm9wdGlvbnMuc3JjLFxuXHRcdFx0XHRcdFx0Y2FsbGJhY2s6IChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuYXBwbHkoKTtcblx0XHRcdFx0XHRcdH0pLmJpbmQoYWN0aW9uKVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0aWYgKGFjdGlvbi5vcHRpb25zLnN1Yk1lbnUpIHtcblx0XHRcdFx0XHRcdGl0ZW1EYXRhLnN1Yk1lbnUgPSBbXTtcblx0XHRcdFx0XHRcdGlmIChhY3Rpb24uc3ViTWVudUl0ZW1zLnN0YXRpY09wdGlvbnMpIHtcblx0XHRcdFx0XHRcdFx0aXRlbURhdGEuc3ViTWVudSA9IGFjdGlvbi5zdWJNZW51SXRlbXMuc3RhdGljT3B0aW9ucztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChhY3Rpb24uc3ViTWVudUl0ZW1zLmR5bmFtaWNCdWlsZGVyKSB7XG5cdFx0XHRcdFx0XHRcdGl0ZW1EYXRhLnN1Yk1lbnVCZWZvcmVTaG93ID0gYWN0aW9uLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlcjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0bWVudUl0ZW1zLnB1c2goaXRlbURhdGEpO1xuXHRcdFx0XHR9LCB0aGlzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtZW51SXRlbXM7XG5cdFx0fSkuYmluZCh0aGlzKTtcblx0fTtcblxuXHQvKipcbiAgKiBSZWZyZXNoIGljb24gaW1hZ2Ugc291cmNlXG4gICogQHBhcmFtIG5ld1NyYyBTdHJpbmcgVGhlIGltYWdlIHNvdXJjZS4gQ2FuIHJlZmVyZW5jZSBhbiBpbWFnZSBsaWJyYXJ5XG4gICAgICogQHBhcmFtIGljb25DbGFzcyBTdHJpbmcgT3B0aW9uYWwgY2xhc3MgdG8gcmVwbGFjZSBpbWFnZVxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuc2V0SWNvbkNsYXNzTmFtZSA9IGZ1bmN0aW9uIHNldEljb25DbGFzc05hbWUoaWNvbkNsYXNzKSB7XG5cdFx0dmFyIGljb25fY2xhc3MgPSB0aGlzLm9wdGlvbnMuaWNvbl9jbGFzcztcblxuXHRcdHRoaXMubm90aWZ5KFwidXBkYXRlX2ljb25cIiwgeyBuZXdfY2xhc3M6IGljb25DbGFzcywgcHJldmlvdXNfY2xhc3M6IGljb25fY2xhc3MgfSk7XG5cdFx0dGhpcy5vcHRpb25zLmljb25fY2xhc3MgPSBpY29uQ2xhc3M7XG5cdH07XG5cblx0LyoqXG4gICogUmVmcmVzaCB0aGUgYWN0aW9uIGxhYmVsXG4gICogQHBhcmFtIG5ld0xhYmVsIFN0cmluZyB0aGUgbmV3IGxhYmVsXG4gICogQHBhcmFtIG5ld1RpdGxlIFN0cmluZyB0aGUgbmV3IHRvb2x0aXBcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLnNldExhYmVsID0gZnVuY3Rpb24gc2V0TGFiZWwobmV3TGFiZWwsIG5ld1RpdGxlKSB7XG5cdFx0dGhpcy5vcHRpb25zLnRleHQgPSB0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZShuZXdMYWJlbCk7XG5cdFx0dGhpcy5ub3RpZnkoXCJ1cGRhdGVfbGFiZWxcIiwgdGhpcy5nZXRLZXllZFRleHQoKSk7XG5cdFx0aWYgKG5ld1RpdGxlKSB7XG5cdFx0XHR0aGlzLm9wdGlvbnMudGl0bGUgPSB0aGlzLm1hbmFnZXIuZ2V0TWVzc2FnZShuZXdUaXRsZSk7XG5cdFx0XHR0aGlzLm5vdGlmeShcInVwZGF0ZV90aXRsZVwiLCB0aGlzLm9wdGlvbnMudGl0bGUpO1xuXHRcdH1cblx0fTtcblxuXHRBY3Rpb24ucHJvdG90eXBlLnJlZnJlc2hJbnN0YW5jZXMgPSBmdW5jdGlvbiByZWZyZXNoSW5zdGFuY2VzKCkge307XG5cblx0LyoqXG4gICogR3JhYiBpdHMgbGFiZWwgZnJvbSB0aGUgaTE4blxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUucmVmcmVzaEZyb21JMThOSGFzaCA9IGZ1bmN0aW9uIHJlZnJlc2hGcm9tSTE4Tkhhc2goKSB7XG5cdFx0dGhpcy5zZXRMYWJlbCh0aGlzLm9wdGlvbnMudGV4dF9pZCwgdGhpcy5vcHRpb25zLnRpdGxlX2lkKTtcblx0fTtcblxuXHQvKipcbiAgKiBSZXR1cm4gZGF0YSBuZWNlc3NhcnkgdG8gYnVpbGQgSW5mb1BhbmVsXG4gICogQHJldHVybnMgT2JqZWN0XG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS50b0luZm9QYW5lbCA9IGZ1bmN0aW9uIHRvSW5mb1BhbmVsKCkge1xuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM7XG5cdH07XG5cblx0LyoqXG4gICogUmV0dXJuIG5lY2Vzc2FyeSBkYXRhIHRvIGJ1aWxkIGNvbnRleHR1YWwgbWVudVxuICAqIEByZXR1cm5zIE9iamVjdFxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUudG9Db250ZXh0TWVudSA9IGZ1bmN0aW9uIHRvQ29udGV4dE1lbnUoKSB7XG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucztcblx0fTtcblxuXHQvKipcbiAgKiBDaGFuZ2VzIHNob3cvaGlkZSBzdGF0ZVxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuaGlkZUZvckNvbnRleHQgPSBmdW5jdGlvbiBoaWRlRm9yQ29udGV4dCgpIHtcblx0XHR0aGlzLmhpZGUoKTtcblx0XHR0aGlzLmNvbnRleHRIaWRkZW4gPSB0cnVlO1xuXHR9O1xuXG5cdC8qKlxuICAqIENoYW5nZXMgc2hvdy9oaWRlIHN0YXRlXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5zaG93Rm9yQ29udGV4dCA9IGZ1bmN0aW9uIHNob3dGb3JDb250ZXh0KGRhdGFNb2RlbCkge1xuXHRcdHRoaXMuY29udGV4dEhpZGRlbiA9IGZhbHNlO1xuXHRcdHRoaXMuc2hvdygpO1xuXHRcdGlmICh0aGlzLnNlbGVjdGlvbkNvbnRleHQpIHtcblx0XHRcdHRoaXMuZmlyZVNlbGVjdGlvbkNoYW5nZShkYXRhTW9kZWwpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcbiAgKiBDaGFuZ2VzIHNob3cvaGlkZSBzdGF0ZVxuICAqIE5vdGlmaWVzIFwiaGlkZVwiIEV2ZW50XG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gaGlkZSgpIHtcblx0XHR0aGlzLmRlbnkgPSB0cnVlO1xuXHRcdHRoaXMubm90aWZ5KCdoaWRlJyk7XG5cdH07XG5cblx0LyoqXG4gICogQ2hhbmdlcyBzaG93L2hpZGUgc3RhdGVcbiAgKiBOb3RpZmllcyBcInNob3dcIiBFdmVudCBcbiAgKi9cblxuXHRBY3Rpb24ucHJvdG90eXBlLnNob3cgPSBmdW5jdGlvbiBzaG93KCkge1xuXHRcdHRoaXMuZGVueSA9IGZhbHNlO1xuXHRcdHRoaXMubm90aWZ5KCdzaG93Jyk7XG5cdH07XG5cblx0LyoqXG4gICogQ2hhbmdlcyBlbmFibGUvZGlzYWJsZSBzdGF0ZVxuICAqIE5vdGlmaWVzIFwiZGlzYWJsZVwiIEV2ZW50IFxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uIGRpc2FibGUoKSB7XG5cdFx0dGhpcy5kZW55ID0gdHJ1ZTtcblx0XHR0aGlzLm5vdGlmeSgnZGlzYWJsZScpO1xuXHR9O1xuXG5cdC8qKlxuICAqIENoYW5nZXMgZW5hYmxlL2Rpc2FibGUgc3RhdGVcbiAgKiBOb3RpZmllcyBcImVuYWJsZVwiIEV2ZW50IFxuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuZW5hYmxlID0gZnVuY3Rpb24gZW5hYmxlKCkge1xuXHRcdHRoaXMuZGVueSA9IGZhbHNlO1xuXHRcdHRoaXMubm90aWZ5KCdlbmFibGUnKTtcblx0fTtcblxuXHQvKipcbiAgKiBUbyBiZSBjYWxsZWQgd2hlbiByZW1vdmluZ1xuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gcmVtb3ZlKCkge1xuXHRcdHRoaXMubm90aWZ5KFwicmVtb3ZlXCIpO1xuXHR9O1xuXG5cdC8qKlxuICAqIENyZWF0ZSBhIHRleHQgbGFiZWwgd2l0aCBhY2Nlc3Mta2V5IHVuZGVybGluZWQuXG4gICogQHBhcmFtIGRpc3BsYXlTdHJpbmcgU3RyaW5nIHRoZSBsYWJlbFxuICAqIEBwYXJhbSBoYXNBY2Nlc3NLZXkgQm9vbGVhbiB3aGV0aGVyIHRoZXJlIGlzIGFuIGFjY2Vzc0tleSBvciBub3RcbiAgKiBAcGFyYW0gYWNjZXNzS2V5IFN0cmluZyBUaGUga2V5IHRvIHVuZGVybGluZVxuICAqIEByZXR1cm5zIFN0cmluZ1xuICAqL1xuXG5cdEFjdGlvbi5wcm90b3R5cGUuZ2V0S2V5ZWRUZXh0ID0gZnVuY3Rpb24gZ2V0S2V5ZWRUZXh0KGRpc3BsYXlTdHJpbmcsIGhhc0FjY2Vzc0tleSwgYWNjZXNzS2V5KSB7XG5cdFx0aWYgKCFkaXNwbGF5U3RyaW5nKSB7XG5cdFx0XHRkaXNwbGF5U3RyaW5nID0gdGhpcy5vcHRpb25zLnRleHQ7XG5cdFx0fVxuXHRcdGlmICghaGFzQWNjZXNzS2V5KSB7XG5cdFx0XHRoYXNBY2Nlc3NLZXkgPSB0aGlzLm9wdGlvbnMuaGFzQWNjZXNzS2V5O1xuXHRcdH1cblx0XHRpZiAoIWFjY2Vzc0tleSkge1xuXHRcdFx0YWNjZXNzS2V5ID0gdGhpcy5vcHRpb25zLmFjY2Vzc0tleTtcblx0XHR9XG5cdFx0aWYgKCFoYXNBY2Nlc3NLZXkpIHJldHVybiBkaXNwbGF5U3RyaW5nO1xuXHRcdHZhciBrZXlQb3MgPSBkaXNwbGF5U3RyaW5nLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhY2Nlc3NLZXkudG9Mb3dlckNhc2UoKSk7XG5cdFx0aWYgKGtleVBvcyA9PSAtMSkge1xuXHRcdFx0cmV0dXJuIGRpc3BsYXlTdHJpbmcgKyAnICg8dT4nICsgYWNjZXNzS2V5ICsgJzwvdT4pJztcblx0XHR9XG5cdFx0aWYgKGRpc3BsYXlTdHJpbmcuY2hhckF0KGtleVBvcykgIT0gYWNjZXNzS2V5KSB7XG5cdFx0XHQvLyBjYXNlIGRpZmZlclxuXHRcdFx0YWNjZXNzS2V5ID0gZGlzcGxheVN0cmluZy5jaGFyQXQoa2V5UG9zKTtcblx0XHR9XG5cdFx0dmFyIHJldHVyblN0cmluZyA9IGRpc3BsYXlTdHJpbmcuc3Vic3RyaW5nKDAsIGRpc3BsYXlTdHJpbmcuaW5kZXhPZihhY2Nlc3NLZXkpKTtcblx0XHRyZXR1cm5TdHJpbmcgKz0gJzx1PicgKyBhY2Nlc3NLZXkgKyAnPC91Pic7XG5cdFx0cmV0dXJuU3RyaW5nICs9IGRpc3BsYXlTdHJpbmcuc3Vic3RyaW5nKGRpc3BsYXlTdHJpbmcuaW5kZXhPZihhY2Nlc3NLZXkpICsgMSwgZGlzcGxheVN0cmluZy5sZW5ndGgpO1xuXHRcdHJldHVybiByZXR1cm5TdHJpbmc7XG5cdH07XG5cblx0LyoqXG4gICogVXRpbGl0YXJ5IGZ1bmN0aW9uIHRvIHRyYW5zZm9ybSBYTUwgTm9kZSBhdHRyaWJ1dGVzIGludG8gT2JqZWN0IG1hcHBpbmcga2V5cy5cbiAgKiBAcGFyYW0gb2JqZWN0IE9iamVjdCBUaGUgdGFyZ2V0IG9iamVjdFxuICAqIEBwYXJhbSBub2RlIE5vZGUgVGhlIHNvdXJjZSBub2RlXG4gICovXG5cblx0QWN0aW9uLnByb3RvdHlwZS5hdHRyaWJ1dGVzVG9PYmplY3QgPSBmdW5jdGlvbiBhdHRyaWJ1dGVzVG9PYmplY3Qob2JqZWN0LCBub2RlKSB7XG5cdFx0Zm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuXHRcdFx0aWYgKCFvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5KSB8fCAhbm9kZS5nZXRBdHRyaWJ1dGUoa2V5KSkgY29udGludWU7XG5cdFx0XHR2YXIgdmFsdWUgPSBub2RlLmdldEF0dHJpYnV0ZShrZXkpO1xuXHRcdFx0aWYgKHZhbHVlID09ICd0cnVlJykgdmFsdWUgPSB0cnVlO2Vsc2UgaWYgKHZhbHVlID09ICdmYWxzZScpIHZhbHVlID0gZmFsc2U7XG5cdFx0XHRpZiAoa2V5ID09ICdhbGxvd2VkTWltZXMnKSB7XG5cdFx0XHRcdGlmICh2YWx1ZSAmJiB2YWx1ZS5zcGxpdCgnLCcpLmxlbmd0aCkge1xuXHRcdFx0XHRcdHZhbHVlID0gdmFsdWUuc3BsaXQoJywnKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR2YWx1ZSA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRvYmplY3Rba2V5XSA9IHZhbHVlO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gQWN0aW9uO1xufSkoX2xhbmdPYnNlcnZhYmxlMlsnZGVmYXVsdCddKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQWN0aW9uO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9sYW5nT2JzZXJ2YWJsZSA9IHJlcXVpcmUoJy4uL2xhbmcvT2JzZXJ2YWJsZScpO1xuXG52YXIgX2xhbmdPYnNlcnZhYmxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdPYnNlcnZhYmxlKTtcblxudmFyIF91dGlsUGF0aFV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9QYXRoVXRpbHMnKTtcblxudmFyIF91dGlsUGF0aFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxQYXRoVXRpbHMpO1xuXG52YXIgQWp4cE5vZGUgPSAoZnVuY3Rpb24gKF9PYnNlcnZhYmxlKSB7XG4gICAgX2luaGVyaXRzKEFqeHBOb2RlLCBfT2JzZXJ2YWJsZSk7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFN0cmluZ1xuICAgICAqIEBwYXJhbSBpc0xlYWYgQm9vbGVhblxuICAgICAqIEBwYXJhbSBsYWJlbCBTdHJpbmdcbiAgICAgKiBAcGFyYW0gaWNvbiBTdHJpbmdcbiAgICAgKiBAcGFyYW0gaU5vZGVQcm92aWRlciBJQWp4cE5vZGVQcm92aWRlclxuICAgICAqL1xuXG4gICAgZnVuY3Rpb24gQWp4cE5vZGUocGF0aCkge1xuICAgICAgICB2YXIgaXNMZWFmID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG4gICAgICAgIHZhciBsYWJlbCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzJdO1xuICAgICAgICB2YXIgaWNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzNdO1xuICAgICAgICB2YXIgaU5vZGVQcm92aWRlciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNCB8fCBhcmd1bWVudHNbNF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbNF07XG5cbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFqeHBOb2RlKTtcblxuICAgICAgICBfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuICAgICAgICB0aGlzLl9wYXRoID0gcGF0aDtcbiAgICAgICAgaWYgKHRoaXMuX3BhdGggJiYgdGhpcy5fcGF0aC5sZW5ndGggJiYgdGhpcy5fcGF0aC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcGF0aFt0aGlzLl9wYXRoLmxlbmd0aCAtIDFdID09PSBcIi9cIikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhdGggPSB0aGlzLl9wYXRoLnN1YnN0cmluZygwLCB0aGlzLl9wYXRoLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzTGVhZiA9IGlzTGVhZjtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSBsYWJlbDtcbiAgICAgICAgdGhpcy5faWNvbiA9IGljb247XG4gICAgICAgIHRoaXMuX2lzUm9vdCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuX21ldGFkYXRhID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IG5ldyBNYXAoKTtcblxuICAgICAgICB0aGlzLl9pc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZha2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faU5vZGVQcm92aWRlciA9IGlOb2RlUHJvdmlkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG5vZGUgaXMgbG9hZGVkIG9yIG5vdFxuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5pc0xvYWRlZCA9IGZ1bmN0aW9uIGlzTG9hZGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2FkZWQ7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBub2RlIGlzIGN1cnJlbnRseSBsb2FkaW5nXG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmlzTG9hZGluZyA9IGZ1bmN0aW9uIGlzTG9hZGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTG9hZGluZztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyBsb2FkZWQgc3RhdHVzXG4gICAgICogQHBhcmFtIGJvb2wgQm9vbGVhblxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLnNldExvYWRlZCA9IGZ1bmN0aW9uIHNldExvYWRlZChib29sKSB7XG4gICAgICAgIHRoaXMuX2lzTG9hZGVkID0gYm9vbDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIG5vZGUgcHJvdmlkZXJcbiAgICAgKiBAcGFyYW0gaUFqeHBOb2RlUHJvdmlkZXJcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS51cGRhdGVQcm92aWRlciA9IGZ1bmN0aW9uIHVwZGF0ZVByb3ZpZGVyKGlBanhwTm9kZVByb3ZpZGVyKSB7XG4gICAgICAgIHRoaXMuX2lOb2RlUHJvdmlkZXIgPSBpQWp4cE5vZGVQcm92aWRlcjtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZHMgdGhlIG5vZGUgdXNpbmcgaXRzIG93biBwcm92aWRlciBvciB0aGUgb25lIHBhc3NlZFxuICAgICAqIEBwYXJhbSBpQWp4cE5vZGVQcm92aWRlciBJQWp4cE5vZGVQcm92aWRlciBPcHRpb25uYWxcbiAgICAgKiBAcGFyYW0gYWRkaXRpb25hbFBhcmFtZXRlcnMgT2JqZWN0IG9mIG9wdGlvbmFsIHBhcmFtZXRlcnNcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5sb2FkID0gZnVuY3Rpb24gbG9hZChpQWp4cE5vZGVQcm92aWRlcikge1xuICAgICAgICB2YXIgYWRkaXRpb25hbFBhcmFtZXRlcnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIGlmICh0aGlzLl9pc0xvYWRpbmcpIHJldHVybjtcbiAgICAgICAgaWYgKCFpQWp4cE5vZGVQcm92aWRlcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lOb2RlUHJvdmlkZXIpIHtcbiAgICAgICAgICAgICAgICBpQWp4cE5vZGVQcm92aWRlciA9IHRoaXMuX2lOb2RlUHJvdmlkZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlBanhwTm9kZVByb3ZpZGVyID0gbmV3IEVtcHR5Tm9kZVByb3ZpZGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ub3RpZnkoXCJsb2FkaW5nXCIpO1xuICAgICAgICBpZiAodGhpcy5faXNMb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkoXCJsb2FkZWRcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaUFqeHBOb2RlUHJvdmlkZXIubG9hZE5vZGUodGhpcywgKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5KFwibG9hZGVkXCIpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkoXCJmaXJzdF9sb2FkXCIpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpLCBudWxsLCBmYWxzZSwgLTEsIGFkZGl0aW9uYWxQYXJhbWV0ZXJzKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGNoaWxkcmVuIGFuZCByZWxvYWQgbm9kZVxuICAgICAqIEBwYXJhbSBpQWp4cE5vZGVQcm92aWRlciBJQWp4cE5vZGVQcm92aWRlciBPcHRpb25uYWxcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5yZWxvYWQgPSBmdW5jdGlvbiByZWxvYWQoaUFqeHBOb2RlUHJvdmlkZXIpIHtcbiAgICAgICAgdmFyIHNpbGVudENsZWFyID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgdGhpcy5faXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQsIGtleSkge1xuICAgICAgICAgICAgaWYgKCFzaWxlbnRDbGVhcikgY2hpbGQubm90aWZ5KFwibm9kZV9yZW1vdmVkXCIpO1xuICAgICAgICAgICAgY2hpbGQuX3BhcmVudE5vZGUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW5bJ2RlbGV0ZSddKGtleSk7XG4gICAgICAgICAgICBpZiAoIXNpbGVudENsZWFyKSB0aGlzLm5vdGlmeShcImNoaWxkX3JlbW92ZWRcIiwgY2hpbGQpO1xuICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgdGhpcy5sb2FkKGlBanhwTm9kZVByb3ZpZGVyKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVW5sb2FkIGNoaWxkIGFuZCBub3RpZnkgXCJmb3JjZV9jbGVhclwiXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5fY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQsIGtleSkge1xuICAgICAgICAgICAgY2hpbGQubm90aWZ5KFwibm9kZV9yZW1vdmVkXCIpO1xuICAgICAgICAgICAgY2hpbGQuX3BhcmVudE5vZGUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW5bJ2RlbGV0ZSddKGtleSk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeShcImNoaWxkX3JlbW92ZWRcIiwgY2hpbGQpO1xuICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgdGhpcy5faXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ub3RpZnkoXCJmb3JjZV9jbGVhclwiKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGlzIEFqeHBOb2RlIGFzIGJlaW5nIHRoZSByb290IHBhcmVudFxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLnNldFJvb3QgPSBmdW5jdGlvbiBzZXRSb290KCkge1xuICAgICAgICB0aGlzLl9pc1Jvb3QgPSB0cnVlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIG5vZGUgY2hpbGRyZW4gYXMgYSBidW5jaFxuICAgICAqIEBwYXJhbSBhanhwTm9kZXMgQWp4cE5vZGVzW11cbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5zZXRDaGlsZHJlbiA9IGZ1bmN0aW9uIHNldENoaWxkcmVuKGFqeHBOb2Rlcykge1xuICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IG5ldyBNYXAoKTtcbiAgICAgICAgYWp4cE5vZGVzLmZvckVhY2goKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW4uc2V0KHZhbHVlLmdldFBhdGgoKSwgdmFsdWUpO1xuICAgICAgICAgICAgdmFsdWUuc2V0UGFyZW50KHRoaXMpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0IGFsbCBjaGlsZHJlbiBhcyBhIGJ1bmNoXG4gICAgICogQHJldHVybnMgQWp4cE5vZGVbXVxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmdldENoaWxkcmVuID0gZnVuY3Rpb24gZ2V0Q2hpbGRyZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbjtcbiAgICB9O1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmdldEZpcnN0Q2hpbGRJZkV4aXN0cyA9IGZ1bmN0aW9uIGdldEZpcnN0Q2hpbGRJZkV4aXN0cygpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuLnNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbi52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5pc01vcmVSZWNlbnRUaGFuID0gZnVuY3Rpb24gaXNNb3JlUmVjZW50VGhhbihvdGhlck5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG90aGVyTm9kZS5nZXRNZXRhZGF0YSgpLmdldChcImFqeHBfaW1fdGltZVwiKSAmJiB0aGlzLmdldE1ldGFkYXRhKCkuZ2V0KFwiYWp4cF9pbV90aW1lXCIpICYmIHBhcnNlSW50KHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXQoXCJhanhwX2ltX3RpbWVcIikpID49IHBhcnNlSW50KG90aGVyTm9kZS5nZXRNZXRhZGF0YSgpLmdldChcImFqeHBfaW1fdGltZVwiKSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBjaGlsZCB0byBjaGlsZHJlblxuICAgICAqIEBwYXJhbSBhanhwTm9kZSBBanhwTm9kZSBUaGUgY2hpbGRcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5hZGRDaGlsZCA9IGZ1bmN0aW9uIGFkZENoaWxkKGFqeHBOb2RlKSB7XG4gICAgICAgIGFqeHBOb2RlLnNldFBhcmVudCh0aGlzKTtcbiAgICAgICAgaWYgKHRoaXMuX2lOb2RlUHJvdmlkZXIpIGFqeHBOb2RlLl9pTm9kZVByb3ZpZGVyID0gdGhpcy5faU5vZGVQcm92aWRlcjtcbiAgICAgICAgdmFyIGV4aXN0aW5nTm9kZSA9IHRoaXMuZmluZENoaWxkQnlQYXRoKGFqeHBOb2RlLmdldFBhdGgoKSk7XG4gICAgICAgIGlmIChleGlzdGluZ05vZGUgJiYgIShleGlzdGluZ05vZGUgaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICBpZiAoIWV4aXN0aW5nTm9kZS5pc01vcmVSZWNlbnRUaGFuKGFqeHBOb2RlKSkge1xuICAgICAgICAgICAgICAgIGV4aXN0aW5nTm9kZS5yZXBsYWNlQnkoYWp4cE5vZGUsIFwib3ZlcnJpZGVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nTm9kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW4uc2V0KGFqeHBOb2RlLmdldFBhdGgoKSwgYWp4cE5vZGUpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkoXCJjaGlsZF9hZGRlZFwiLCBhanhwTm9kZS5nZXRQYXRoKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhanhwTm9kZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgY2hpbGQgZnJvbSB0aGUgY2hpbGRyZW5cbiAgICAgKiBAcGFyYW0gYWp4cE5vZGUgQWp4cE5vZGVcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCA9IGZ1bmN0aW9uIHJlbW92ZUNoaWxkKGFqeHBOb2RlKSB7XG4gICAgICAgIHZhciByZW1vdmVQYXRoID0gYWp4cE5vZGUuZ2V0UGF0aCgpO1xuICAgICAgICBhanhwTm9kZS5ub3RpZnkoXCJub2RlX3JlbW92ZWRcIik7XG4gICAgICAgIGFqeHBOb2RlLl9wYXJlbnROb2RlID0gbnVsbDtcbiAgICAgICAgdGhpcy5fY2hpbGRyZW5bJ2RlbGV0ZSddKGFqeHBOb2RlLmdldFBhdGgoKSk7XG4gICAgICAgIHRoaXMubm90aWZ5KFwiY2hpbGRfcmVtb3ZlZFwiLCByZW1vdmVQYXRoKTtcbiAgICB9O1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLnJlcGxhY2VNZXRhZGF0YSA9IGZ1bmN0aW9uIHJlcGxhY2VNZXRhZGF0YShuZXdNZXRhKSB7XG4gICAgICAgIHRoaXMuX21ldGFkYXRhID0gbmV3TWV0YTtcbiAgICAgICAgdGhpcy5ub3RpZnkoXCJtZXRhX3JlcGxhY2VkXCIsIHRoaXMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXBsYWNlcyB0aGUgY3VycmVudCBub2RlIGJ5IGEgbmV3IG9uZS4gQ29weSBhbGwgcHJvcGVydGllcyBkZWVwbHlcbiAgICAgKiBAcGFyYW0gYWp4cE5vZGUgQWp4cE5vZGVcbiAgICAgKiBAcGFyYW0gbWV0YU1lcmdlXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUucmVwbGFjZUJ5ID0gZnVuY3Rpb24gcmVwbGFjZUJ5KGFqeHBOb2RlLCBtZXRhTWVyZ2UpIHtcbiAgICAgICAgdGhpcy5faXNMZWFmID0gYWp4cE5vZGUuX2lzTGVhZjtcbiAgICAgICAgdmFyIHBhdGhDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGlmIChhanhwTm9kZS5nZXRQYXRoKCkgJiYgdGhpcy5fcGF0aCAhPSBhanhwTm9kZS5nZXRQYXRoKCkpIHtcbiAgICAgICAgICAgIHZhciBvcmlnaW5hbFBhdGggPSB0aGlzLl9wYXRoO1xuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0UGFyZW50KCkpIHtcbiAgICAgICAgICAgICAgICB2YXIgcGFyZW50Q2hpbGRyZW5JbmRleCA9IHRoaXMuZ2V0UGFyZW50KCkuX2NoaWxkcmVuO1xuICAgICAgICAgICAgICAgIHBhcmVudENoaWxkcmVuSW5kZXguc2V0KGFqeHBOb2RlLmdldFBhdGgoKSwgdGhpcyk7XG4gICAgICAgICAgICAgICAgcGFyZW50Q2hpbGRyZW5JbmRleFsnZGVsZXRlJ10ob3JpZ2luYWxQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3BhdGggPSBhanhwTm9kZS5nZXRQYXRoKCk7XG4gICAgICAgICAgICBwYXRoQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFqeHBOb2RlLl9sYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5fbGFiZWwgPSBhanhwTm9kZS5fbGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFqeHBOb2RlLl9pY29uKSB7XG4gICAgICAgICAgICB0aGlzLl9pY29uID0gYWp4cE5vZGUuX2ljb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFqeHBOb2RlLl9pTm9kZVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9pTm9kZVByb3ZpZGVyID0gYWp4cE5vZGUuX2lOb2RlUHJvdmlkZXI7XG4gICAgICAgIH1cbiAgICAgICAgLy90aGlzLl9pc1Jvb3QgPSBhanhwTm9kZS5faXNSb290O1xuICAgICAgICB0aGlzLl9pc0xvYWRlZCA9IGFqeHBOb2RlLl9pc0xvYWRlZDtcbiAgICAgICAgdGhpcy5mYWtlID0gYWp4cE5vZGUuZmFrZTtcbiAgICAgICAgdmFyIG1ldGEgPSBhanhwTm9kZS5nZXRNZXRhZGF0YSgpO1xuICAgICAgICBpZiAobWV0YU1lcmdlID09IFwib3ZlcnJpZGVcIikgdGhpcy5fbWV0YWRhdGEgPSBuZXcgTWFwKCk7XG4gICAgICAgIG1ldGEuZm9yRWFjaCgoZnVuY3Rpb24gKHZhbHVlLCBrZXkpIHtcbiAgICAgICAgICAgIGlmIChtZXRhTWVyZ2UgPT0gXCJvdmVycmlkZVwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWV0YWRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fbWV0YWRhdGEuaGFzKGtleSkgJiYgdmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9tZXRhZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICBpZiAocGF0aENoYW5nZWQgJiYgIXRoaXMuX2lzTGVhZiAmJiB0aGlzLmdldENoaWxkcmVuKCkuc2l6ZSkge1xuICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCh0aGlzLl9pTm9kZVByb3ZpZGVyKTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcyksIDEwMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYWp4cE5vZGUuZ2V0Q2hpbGRyZW4oKS5mb3JFYWNoKChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkQ2hpbGQoY2hpbGQpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5ub3RpZnkoXCJub2RlX3JlcGxhY2VkXCIsIHRoaXMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyBhIGNoaWxkIG5vZGUgYnkgaXRzIHBhdGhcbiAgICAgKiBAcGFyYW0gcGF0aCBTdHJpbmdcbiAgICAgKiBAcmV0dXJucyBBanhwTm9kZVxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmZpbmRDaGlsZEJ5UGF0aCA9IGZ1bmN0aW9uIGZpbmRDaGlsZEJ5UGF0aChwYXRoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbi5nZXQocGF0aCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG1ldGFkYXRhIGFzIGEgYnVuY2hcbiAgICAgKiBAcGFyYW0gZGF0YSBNYXAgQSBNYXBcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5zZXRNZXRhZGF0YSA9IGZ1bmN0aW9uIHNldE1ldGFkYXRhKGRhdGEpIHtcbiAgICAgICAgdGhpcy5fbWV0YWRhdGEgPSBkYXRhO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtZXRhZGF0XG4gICAgICogQHJldHVybnMgTWFwXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuZ2V0TWV0YWRhdGEgPSBmdW5jdGlvbiBnZXRNZXRhZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21ldGFkYXRhO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJcyB0aGlzIG5vZGUgYSBsZWFmXG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmlzTGVhZiA9IGZ1bmN0aW9uIGlzTGVhZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTGVhZjtcbiAgICB9O1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmlzQnJvd3NhYmxlID0gZnVuY3Rpb24gaXNCcm93c2FibGUoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5faXNMZWFmIHx8IHRoaXMuZ2V0QWp4cE1pbWUoKSA9PT0gJ2FqeHBfYnJvd3NhYmxlX2FyY2hpdmUnO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5nZXRQYXRoID0gZnVuY3Rpb24gZ2V0UGF0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGg7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFN0cmluZ1xuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmdldExhYmVsID0gZnVuY3Rpb24gZ2V0TGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYWJlbCB8fCBcIlwiO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbCBzdHJpbmdcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5zZXRMYWJlbCA9IGZ1bmN0aW9uIHNldExhYmVsKGwpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSBsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5nZXRJY29uID0gZnVuY3Rpb24gZ2V0SWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb247XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5pc1JlY3ljbGUgPSBmdW5jdGlvbiBpc1JlY3ljbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFqeHBNaW1lKCkgPT09ICdhanhwX3JlY3ljbGUnO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5nZXRTdmdTb3VyY2UgPSBmdW5jdGlvbiBnZXRTdmdTb3VyY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE1ldGFkYXRhKCkuZ2V0KFwiZm9udGljb25cIik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNlYXJjaCB0aGUgbWltZSB0eXBlIGluIHRoZSBwYXJlbnQgYnJhbmNoXG4gICAgICogQHBhcmFtIGFqeHBNaW1lIFN0cmluZ1xuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5oYXNBanhwTWltZUluQnJhbmNoID0gZnVuY3Rpb24gaGFzQWp4cE1pbWVJbkJyYW5jaChhanhwTWltZSkge1xuICAgICAgICBpZiAodGhpcy5nZXRBanhwTWltZSgpID09PSBhanhwTWltZS50b0xvd2VyQ2FzZSgpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgdmFyIHBhcmVudCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNydCA9IHRoaXM7XG4gICAgICAgIHdoaWxlIChwYXJlbnQgPSBjcnQuX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIGlmIChwYXJlbnQuZ2V0QWp4cE1pbWUoKSA9PT0gYWp4cE1pbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3J0ID0gcGFyZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIHRoZSBtaW1lIHR5cGUgaW4gdGhlIHBhcmVudCBicmFuY2hcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAgICogQHBhcmFtIG1ldGFkYXRhS2V5XG4gICAgICogQHBhcmFtIG1ldGFkYXRhVmFsdWVcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5oYXNNZXRhZGF0YUluQnJhbmNoID0gZnVuY3Rpb24gaGFzTWV0YWRhdGFJbkJyYW5jaChtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5nZXRNZXRhZGF0YSgpLmhhcyhtZXRhZGF0YUtleSkpIHtcbiAgICAgICAgICAgIGlmIChtZXRhZGF0YVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXQobWV0YWRhdGFLZXkpID09PSBtZXRhZGF0YVZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgcGFyZW50ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgY3J0ID0gdGhpcztcbiAgICAgICAgd2hpbGUgKHBhcmVudCA9IGNydC5fcGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgaWYgKHBhcmVudC5nZXRNZXRhZGF0YSgpLmhhcyhtZXRhZGF0YUtleSkpIHtcbiAgICAgICAgICAgICAgICBpZiAobWV0YWRhdGFWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50LmdldE1ldGFkYXRhKCkuZ2V0KG1ldGFkYXRhS2V5KSA9PT0gbWV0YWRhdGFWYWx1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjcnQgPSBwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgbm9kZVxuICAgICAqIEBwYXJhbSBwYXJlbnROb2RlIEFqeHBOb2RlXG4gICAgICovXG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuc2V0UGFyZW50ID0gZnVuY3Rpb24gc2V0UGFyZW50KHBhcmVudE5vZGUpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHBhcmVudCBOb2RlXG4gICAgICogQHJldHVybnMgQWp4cE5vZGVcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5nZXRQYXJlbnQgPSBmdW5jdGlvbiBnZXRQYXJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnROb2RlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyB0aGlzIG5vZGUgYnkgcGF0aCBpZiBpdCBhbHJlYWR5IGV4aXN0cyBpbiBhcmJvcmVzY2VuY2VcbiAgICAgKiBAcGFyYW0gcm9vdE5vZGUgQWp4cE5vZGVcbiAgICAgKiBAcGFyYW0gZmFrZU5vZGVzIEFqeHBOb2RlW11cbiAgICAgKiBAcmV0dXJucyBBanhwTm9kZXx1bmRlZmluZWRcbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5maW5kSW5BcmJvID0gZnVuY3Rpb24gZmluZEluQXJibyhyb290Tm9kZSwgZmFrZU5vZGVzKSB7XG4gICAgICAgIGlmICghdGhpcy5nZXRQYXRoKCkpIHJldHVybjtcbiAgICAgICAgdmFyIHBhdGhQYXJ0cyA9IHRoaXMuZ2V0UGF0aCgpLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgdmFyIGNydFBhdGggPSBcIlwiLFxuICAgICAgICAgICAgY3J0Tm9kZSA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNydFBhcmVudE5vZGUgPSByb290Tm9kZTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoUGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXRoUGFydHNbaV0gPT0gXCJcIikgY29udGludWU7XG4gICAgICAgICAgICBjcnRQYXRoID0gY3J0UGF0aCArIFwiL1wiICsgcGF0aFBhcnRzW2ldO1xuICAgICAgICAgICAgdmFyIG5vZGUgPSBjcnRQYXJlbnROb2RlLmZpbmRDaGlsZEJ5UGF0aChjcnRQYXRoKTtcbiAgICAgICAgICAgIGlmIChub2RlICYmICEobm9kZSBpbnN0YW5jZW9mIFN0cmluZykpIHtcbiAgICAgICAgICAgICAgICBjcnROb2RlID0gbm9kZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGZha2VOb2RlcyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGNydE5vZGUgPSBuZXcgQWp4cE5vZGUoY3J0UGF0aCwgZmFsc2UsIF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEJhc2VuYW1lKGNydFBhdGgpKTtcbiAgICAgICAgICAgICAgICBjcnROb2RlLmZha2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNydE5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoXCJ0ZXh0XCIsIF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEJhc2VuYW1lKGNydFBhdGgpKTtcbiAgICAgICAgICAgICAgICBmYWtlTm9kZXMucHVzaChjcnROb2RlKTtcbiAgICAgICAgICAgICAgICBjcnRQYXJlbnROb2RlLmFkZENoaWxkKGNydE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3J0UGFyZW50Tm9kZSA9IGNydE5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNydE5vZGU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICAgKi9cblxuICAgIEFqeHBOb2RlLnByb3RvdHlwZS5pc1Jvb3QgPSBmdW5jdGlvbiBpc1Jvb3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Jvb3Q7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGl0J3MgdGhlIHBhcmVudCBvZiB0aGUgZ2l2ZW4gbm9kZVxuICAgICAqIEBwYXJhbSBub2RlIEFqeHBOb2RlXG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmlzUGFyZW50T2YgPSBmdW5jdGlvbiBpc1BhcmVudE9mKG5vZGUpIHtcbiAgICAgICAgdmFyIGNoaWxkUGF0aCA9IG5vZGUuZ2V0UGF0aCgpO1xuICAgICAgICB2YXIgcGFyZW50UGF0aCA9IHRoaXMuZ2V0UGF0aCgpO1xuICAgICAgICByZXR1cm4gY2hpbGRQYXRoLnN1YnN0cmluZygwLCBwYXJlbnRQYXRoLmxlbmd0aCkgPT09IHBhcmVudFBhdGg7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGl0J3MgYSBjaGlsZCBvZiB0aGUgZ2l2ZW4gbm9kZVxuICAgICAqIEBwYXJhbSBub2RlIEFqeHBOb2RlXG4gICAgICogQHJldHVybnMgQm9vbGVhblxuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmlzQ2hpbGRPZiA9IGZ1bmN0aW9uIGlzQ2hpbGRPZihub2RlKSB7XG4gICAgICAgIHZhciBjaGlsZFBhdGggPSB0aGlzLmdldFBhdGgoKTtcbiAgICAgICAgdmFyIHBhcmVudFBhdGggPSBub2RlLmdldFBhdGgoKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkUGF0aC5zdWJzdHJpbmcoMCwgcGFyZW50UGF0aC5sZW5ndGgpID09PSBwYXJlbnRQYXRoO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50J3Mgbm9kZSBtaW1lIHR5cGUsIGVpdGhlciBieSBhanhwX21pbWUgb3IgYnkgZXh0ZW5zaW9uLlxuICAgICAqIEByZXR1cm5zIFN0cmluZ1xuICAgICAqL1xuXG4gICAgQWp4cE5vZGUucHJvdG90eXBlLmdldEFqeHBNaW1lID0gZnVuY3Rpb24gZ2V0QWp4cE1pbWUoKSB7XG4gICAgICAgIGlmICh0aGlzLl9tZXRhZGF0YSAmJiB0aGlzLl9tZXRhZGF0YS5oYXMoXCJhanhwX21pbWVcIikpIHJldHVybiB0aGlzLl9tZXRhZGF0YS5nZXQoXCJhanhwX21pbWVcIikudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKHRoaXMuX21ldGFkYXRhICYmIHRoaXMuaXNMZWFmKCkpIHJldHVybiBfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXRBanhwTWltZVR5cGUodGhpcy5fbWV0YWRhdGEpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH07XG5cbiAgICBBanhwTm9kZS5wcm90b3R5cGUuYnVpbGRSYW5kb21TZWVkID0gZnVuY3Rpb24gYnVpbGRSYW5kb21TZWVkKGFqeHBOb2RlKSB7XG4gICAgICAgIHZhciBtdGltZVN0cmluZyA9IFwiJnRpbWVfc2VlZD1cIiArIHRoaXMuX21ldGFkYXRhLmdldChcImFqeHBfbW9kaWZ0aW1lXCIpO1xuICAgICAgICBpZiAodGhpcy5nZXRQYXJlbnQoKSkge1xuICAgICAgICAgICAgdmFyIHByZXZpZXdfc2VlZCA9IHRoaXMuZ2V0UGFyZW50KCkuZ2V0TWV0YWRhdGEoKS5nZXQoJ3ByZXZpZXdfc2VlZCcpO1xuICAgICAgICAgICAgaWYgKHByZXZpZXdfc2VlZCkge1xuICAgICAgICAgICAgICAgIG10aW1lU3RyaW5nICs9IFwiJnJhbmQ9XCIgKyBwcmV2aWV3X3NlZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG10aW1lU3RyaW5nO1xuICAgIH07XG5cbiAgICByZXR1cm4gQWp4cE5vZGU7XG59KShfbGFuZ09ic2VydmFibGUyWydkZWZhdWx0J10pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBanhwTm9kZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3B5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9weWRpbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpbyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpID0gcmVxdWlyZSgnLi4vaHR0cC9QeWRpb0FwaScpO1xuXG52YXIgX2h0dHBQeWRpb0FwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwUHlkaW9BcGkpO1xuXG52YXIgX2xhbmdPYnNlcnZhYmxlID0gcmVxdWlyZSgnLi4vbGFuZy9PYnNlcnZhYmxlJyk7XG5cbnZhciBfbGFuZ09ic2VydmFibGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGFuZ09ic2VydmFibGUpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL1BhdGhVdGlscycpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbFBhdGhVdGlscyk7XG5cbnZhciBfSWRtT2JqZWN0SGVscGVyID0gcmVxdWlyZSgnLi9JZG1PYmplY3RIZWxwZXInKTtcblxudmFyIF9JZG1PYmplY3RIZWxwZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWRtT2JqZWN0SGVscGVyKTtcblxudmFyIF9odHRwR2VuSW5kZXggPSByZXF1aXJlKCcuLi9odHRwL2dlbi9pbmRleCcpO1xuXG52YXIgQ2VsbE1vZGVsID0gKGZ1bmN0aW9uIChfT2JzZXJ2YWJsZSkge1xuICAgIF9pbmhlcml0cyhDZWxsTW9kZWwsIF9PYnNlcnZhYmxlKTtcblxuICAgIGZ1bmN0aW9uIENlbGxNb2RlbCgpIHtcbiAgICAgICAgdmFyIGVkaXRNb2RlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENlbGxNb2RlbCk7XG5cbiAgICAgICAgX09ic2VydmFibGUuY2FsbCh0aGlzKTtcbiAgICAgICAgLy8gQ3JlYXRlIGFuIGVtcHR5IHJvb21cbiAgICAgICAgdGhpcy5jZWxsID0gbmV3IF9odHRwR2VuSW5kZXguUmVzdENlbGwoKTtcbiAgICAgICAgdGhpcy5jZWxsLkxhYmVsID0gJyc7XG4gICAgICAgIHRoaXMuY2VsbC5EZXNjcmlwdGlvbiA9ICcnO1xuICAgICAgICB0aGlzLmNlbGwuQUNMcyA9IHt9O1xuICAgICAgICB0aGlzLmNlbGwuUm9vdE5vZGVzID0gW107XG4gICAgICAgIHRoaXMuY2VsbC5Qb2xpY2llcyA9IFtdO1xuICAgICAgICB0aGlzLmNlbGwuUG9saWNpZXNDb250ZXh0RWRpdGFibGUgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lZGl0ID0gZWRpdE1vZGU7XG4gICAgfVxuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5pc0RpcnR5ID0gZnVuY3Rpb24gaXNEaXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlydHk7XG4gICAgfTtcblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuaXNFZGl0YWJsZSA9IGZ1bmN0aW9uIGlzRWRpdGFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGwuUG9saWNpZXNDb250ZXh0RWRpdGFibGU7XG4gICAgfTtcblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuZ2V0Um9vdE5vZGVzID0gZnVuY3Rpb24gZ2V0Um9vdE5vZGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsLlJvb3ROb2RlcztcbiAgICB9O1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5ub3RpZnlEaXJ0eSA9IGZ1bmN0aW9uIG5vdGlmeURpcnR5KCkge1xuICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ub3RpZnkoJ3VwZGF0ZScpO1xuICAgIH07XG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLnJldmVydENoYW5nZXMgPSBmdW5jdGlvbiByZXZlcnRDaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5vcmlnaW5hbENlbGwpIHtcbiAgICAgICAgICAgIHRoaXMuY2VsbCA9IHRoaXMuY2xvbmUodGhpcy5vcmlnaW5hbENlbGwpO1xuICAgICAgICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnkoJ3VwZGF0ZScpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUge1RyZWVOb2RlfVxuICAgICAqIEByZXR1cm4gc3RyaW5nXG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmdldE5vZGVMYWJlbEluQ29udGV4dCA9IGZ1bmN0aW9uIGdldE5vZGVMYWJlbEluQ29udGV4dChub2RlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIHBhdGggPSBub2RlLlBhdGg7XG4gICAgICAgIHZhciBsYWJlbCA9IF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEJhc2VuYW1lKHBhdGgpO1xuICAgICAgICBpZiAobm9kZS5NZXRhU3RvcmUgJiYgbm9kZS5NZXRhU3RvcmUuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuTWV0YVN0b3JlICYmIG5vZGUuTWV0YVN0b3JlLkNlbGxOb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1tDZWxsIEZvbGRlcl0nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLkFwcGVhcnNJbiAmJiBub2RlLkFwcGVhcnNJbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIG5vZGUuQXBwZWFyc0luLm1hcChmdW5jdGlvbiAod29ya3NwYWNlUmVsYXRpdmVQYXRoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtzcGFjZVJlbGF0aXZlUGF0aC5Xc1V1aWQgIT09IF90aGlzLmNlbGwuVXVpZCkge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICdbJyArIHdvcmtzcGFjZVJlbGF0aXZlUGF0aC5Xc0xhYmVsICsgJ10gJyArIF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEJhc2VuYW1lKHdvcmtzcGFjZVJlbGF0aXZlUGF0aC5QYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGFiZWw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybiB7c3RyaW5nfVxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5nZXRBY2xzU3ViamVjdHMgPSBmdW5jdGlvbiBnZXRBY2xzU3ViamVjdHMoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNlbGwuQUNMcykubWFwKGZ1bmN0aW9uIChyb2xlSWQpIHtcbiAgICAgICAgICAgIHZhciBhY2wgPSBfdGhpczIuY2VsbC5BQ0xzW3JvbGVJZF07XG4gICAgICAgICAgICByZXR1cm4gX0lkbU9iamVjdEhlbHBlcjJbJ2RlZmF1bHQnXS5leHRyYWN0TGFiZWwoX3B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCksIGFjbCk7XG4gICAgICAgIH0pLmpvaW4oJywgJyk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge09iamVjdC48U3RyaW5nLCBtb2R1bGU6bW9kZWwvUmVzdENlbGxBY2w+fVxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5nZXRBY2xzID0gZnVuY3Rpb24gZ2V0QWNscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbC5BQ0xzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZG1PYmplY3QgSWRtVXNlcnxJZG1Sb2xlXG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmFkZFVzZXIgPSBmdW5jdGlvbiBhZGRVc2VyKGlkbU9iamVjdCkge1xuICAgICAgICB2YXIgYWNsID0gbmV3IF9odHRwR2VuSW5kZXguUmVzdENlbGxBY2woKTtcbiAgICAgICAgYWNsLlJvbGVJZCA9IGlkbU9iamVjdC5VdWlkO1xuICAgICAgICBpZiAoaWRtT2JqZWN0LkxvZ2luICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFjbC5Jc1VzZXJSb2xlID0gdHJ1ZTtcbiAgICAgICAgICAgIGFjbC5Vc2VyID0gaWRtT2JqZWN0O1xuICAgICAgICB9IGVsc2UgaWYgKGlkbU9iamVjdC5Jc0dyb3VwKSB7XG4gICAgICAgICAgICBhY2wuR3JvdXAgPSBpZG1PYmplY3Q7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY2wuUm9sZSA9IGlkbU9iamVjdDtcbiAgICAgICAgfVxuICAgICAgICBhY2wuQWN0aW9ucyA9IFtdO1xuICAgICAgICB2YXIgYWN0aW9uID0gbmV3IF9odHRwR2VuSW5kZXguSWRtQUNMQWN0aW9uKCk7XG4gICAgICAgIGFjdGlvbi5OYW1lID0gJ3JlYWQnO1xuICAgICAgICBhY3Rpb24uVmFsdWUgPSAnMSc7XG4gICAgICAgIGFjbC5BY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgdGhpcy5jZWxsLkFDTHNbYWNsLlJvbGVJZF0gPSBhY2w7XG4gICAgICAgIHRoaXMubm90aWZ5RGlydHkoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9sZUlkIHN0cmluZ1xuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5yZW1vdmVVc2VyID0gZnVuY3Rpb24gcmVtb3ZlVXNlcihyb2xlSWQpIHtcbiAgICAgICAgaWYgKHRoaXMuY2VsbC5BQ0xzW3JvbGVJZF0pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNlbGwuQUNMc1tyb2xlSWRdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubm90aWZ5RGlydHkoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9sZUlkIHN0cmluZ1xuICAgICAqIEBwYXJhbSByaWdodCBzdHJpbmdcbiAgICAgKiBAcGFyYW0gdmFsdWUgYm9vbFxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS51cGRhdGVVc2VyUmlnaHQgPSBmdW5jdGlvbiB1cGRhdGVVc2VyUmlnaHQocm9sZUlkLCByaWdodCwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB2YXIgYWNsID0gdGhpcy5jZWxsLkFDTHNbcm9sZUlkXTtcbiAgICAgICAgICAgIHZhciBhY3Rpb24gPSBuZXcgX2h0dHBHZW5JbmRleC5JZG1BQ0xBY3Rpb24oKTtcbiAgICAgICAgICAgIGFjdGlvbi5OYW1lID0gcmlnaHQ7XG4gICAgICAgICAgICBhY3Rpb24uVmFsdWUgPSAnMSc7XG4gICAgICAgICAgICBhY2wuQWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICB0aGlzLmNlbGwuQUNMc1tyb2xlSWRdID0gYWNsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2VsbC5BQ0xzW3JvbGVJZF0pIHtcbiAgICAgICAgICAgICAgICB2YXIgYWN0aW9ucyA9IHRoaXMuY2VsbC5BQ0xzW3JvbGVJZF0uQWN0aW9ucztcbiAgICAgICAgICAgICAgICB0aGlzLmNlbGwuQUNMc1tyb2xlSWRdLkFjdGlvbnMgPSBhY3Rpb25zLmZpbHRlcihmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb24uTmFtZSAhPT0gcmlnaHQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNlbGwuQUNMc1tyb2xlSWRdLkFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlVXNlcihyb2xlSWQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubm90aWZ5RGlydHkoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSBOb2RlXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlJZCBTdHJpbmdcbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuYWRkUm9vdE5vZGUgPSBmdW5jdGlvbiBhZGRSb290Tm9kZShub2RlKSB7XG4gICAgICAgIHZhciByZXBvc2l0b3J5SWQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIHZhciBweWRpbyA9IF9weWRpbzJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSgpO1xuICAgICAgICB2YXIgdHJlZU5vZGUgPSBuZXcgX2h0dHBHZW5JbmRleC5UcmVlTm9kZSgpO1xuICAgICAgICB0cmVlTm9kZS5VdWlkID0gbm9kZS5nZXRNZXRhZGF0YSgpLmdldCgndXVpZCcpO1xuICAgICAgICB2YXIgc2x1ZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHJlcG9zaXRvcnlJZCkge1xuICAgICAgICAgICAgc2x1ZyA9IHB5ZGlvLnVzZXIuZ2V0UmVwb3NpdG9yaWVzTGlzdCgpLmdldChyZXBvc2l0b3J5SWQpLmdldFNsdWcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNsdWcgPSBweWRpby51c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnlPYmplY3QoKS5nZXRTbHVnKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJlZU5vZGUuUGF0aCA9IHNsdWcgKyBub2RlLmdldFBhdGgoKTtcbiAgICAgICAgdHJlZU5vZGUuTWV0YVN0b3JlID0geyBzZWxlY3Rpb246IHRydWUgfTtcbiAgICAgICAgdGhpcy5jZWxsLlJvb3ROb2Rlcy5wdXNoKHRyZWVOb2RlKTtcbiAgICAgICAgdGhpcy5ub3RpZnlEaXJ0eSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1dWlkIHN0cmluZ1xuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5yZW1vdmVSb290Tm9kZSA9IGZ1bmN0aW9uIHJlbW92ZVJvb3ROb2RlKHV1aWQpIHtcbiAgICAgICAgdmFyIG5ld05vZGVzID0gW107XG4gICAgICAgIHRoaXMuY2VsbC5Sb290Tm9kZXMubWFwKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgICBpZiAobi5VdWlkICE9PSB1dWlkKSB7XG4gICAgICAgICAgICAgICAgbmV3Tm9kZXMucHVzaChuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2VsbC5Sb290Tm9kZXMgPSBuZXdOb2RlcztcbiAgICAgICAgdGhpcy5ub3RpZnlEaXJ0eSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlSWRcbiAgICAgKiBAcmV0dXJuIGJvb2xcbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuaGFzUm9vdE5vZGUgPSBmdW5jdGlvbiBoYXNSb290Tm9kZShub2RlSWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbC5Sb290Tm9kZXMuZmlsdGVyKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICAgICAgICByZXR1cm4gcm9vdC5VdWlkID09PSBub2RlSWQ7XG4gICAgICAgIH0pLmxlbmd0aDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlcmUgYXJlIGRpZmZlcmVuY2VzIGJldHdlZW4gY3VycmVudCByb290IG5vZGVzIGFuZCBvcmlnaW5hbCBvbmVzXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuaGFzRGlydHlSb290Tm9kZXMgPSBmdW5jdGlvbiBoYXNEaXJ0eVJvb3ROb2RlcygpIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLm9yaWdpbmFsQ2VsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBuZXdOb2RlcyA9IFtdLFxuICAgICAgICAgICAgZGVsZXRlZE5vZGVzID0gW107XG4gICAgICAgIHRoaXMuY2VsbC5Sb290Tm9kZXMubWFwKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgICBpZiAoX3RoaXMzLm9yaWdpbmFsQ2VsbC5Sb290Tm9kZXMuZmlsdGVyKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvb3QuVXVpZCA9PT0gbi5VdWlkO1xuICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgbmV3Tm9kZXMucHVzaChuLlV1aWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vcmlnaW5hbENlbGwuUm9vdE5vZGVzLm1hcChmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgaWYgKF90aGlzMy5jZWxsLlJvb3ROb2Rlcy5maWx0ZXIoZnVuY3Rpb24gKHJvb3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcm9vdC5VdWlkID09PSBuLlV1aWQ7XG4gICAgICAgICAgICB9KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBkZWxldGVkTm9kZXMucHVzaChuLlV1aWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld05vZGVzLmxlbmd0aCA+IDAgfHwgZGVsZXRlZE5vZGVzLmxlbmd0aCA+IDA7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvb21MYWJlbFxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5zZXRMYWJlbCA9IGZ1bmN0aW9uIHNldExhYmVsKHJvb21MYWJlbCkge1xuICAgICAgICB0aGlzLmNlbGwuTGFiZWwgPSByb29tTGFiZWw7XG4gICAgICAgIHRoaXMubm90aWZ5RGlydHkoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtTdHJpbmd9XG4gICAgICovXG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmdldExhYmVsID0gZnVuY3Rpb24gZ2V0TGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGwuTGFiZWw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybiB7U3RyaW5nfVxuICAgICAqL1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5nZXREZXNjcmlwdGlvbiA9IGZ1bmN0aW9uIGdldERlc2NyaXB0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jZWxsLkRlc2NyaXB0aW9uO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1N0cmluZ31cbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuZ2V0VXVpZCA9IGZ1bmN0aW9uIGdldFV1aWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGwuVXVpZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb25cbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuc2V0RGVzY3JpcHRpb24gPSBmdW5jdGlvbiBzZXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLmNlbGwuRGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5ub3RpZnlEaXJ0eSgpO1xuICAgIH07XG5cbiAgICBDZWxsTW9kZWwucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gY2xvbmUocm9vbSkge1xuICAgICAgICByZXR1cm4gX2h0dHBHZW5JbmRleC5SZXN0Q2VsbC5jb25zdHJ1Y3RGcm9tT2JqZWN0KEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocm9vbSkpKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuc2F2ZSA9IGZ1bmN0aW9uIHNhdmUoKSB7XG4gICAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICAgIGlmICghdGhpcy5jZWxsLlJvb3ROb2Rlcy5sZW5ndGggJiYgdGhpcy5jZWxsLlV1aWQpIHtcbiAgICAgICAgICAgIC8vIGNlbGwgd2FzIGVtcHRpZWQsIHJlbW92ZSBpdFxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlQ2VsbCgnVGhpcyBjZWxsIGhhcyBubyBtb3JlIGl0ZW1zIGluIGl0LCBpdCB3aWxsIGJlIGRlbGV0ZWQsIGFyZSB5b3Ugc3VyZT8nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2h0dHBHZW5JbmRleC5TaGFyZVNlcnZpY2VBcGkoX2h0dHBQeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkpO1xuICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBfaHR0cEdlbkluZGV4LlJlc3RQdXRDZWxsUmVxdWVzdCgpO1xuICAgICAgICBpZiAoIXRoaXMuX2VkaXQgJiYgIXRoaXMuY2VsbC5Sb290Tm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXF1ZXN0LkNyZWF0ZUVtcHR5Um9vdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZWxsLlJvb3ROb2Rlcy5tYXAoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgICAgIGlmIChub2RlLk1ldGFTdG9yZSAmJiBub2RlLk1ldGFTdG9yZS5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgbm9kZS5NZXRhU3RvcmUuc2VsZWN0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmVxdWVzdC5Sb29tID0gdGhpcy5jZWxsO1xuICAgICAgICByZXR1cm4gYXBpLnB1dENlbGwocmVxdWVzdCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmICghcmVzcG9uc2UgfHwgIXJlc3BvbnNlLlV1aWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIHdoaWxlIHNhdmluZyBjZWxsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoX3RoaXM0Ll9lZGl0KSB7XG4gICAgICAgICAgICAgICAgX3RoaXM0LmNlbGwgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICBfdGhpczQuZGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBfdGhpczQub3JpZ2luYWxDZWxsID0gX3RoaXM0LmNsb25lKF90aGlzNC5jZWxsKTtcbiAgICAgICAgICAgICAgICBfdGhpczQubm90aWZ5KCd1cGRhdGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgX3B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkub2JzZXJ2ZU9uY2UoJ3JlcG9zaXRvcnlfbGlzdF9yZWZyZXNoZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF9weWRpbzJbJ2RlZmF1bHQnXS5nZXRJbnN0YW5jZSgpLnRyaWdnZXJSZXBvc2l0b3J5Q2hhbmdlKHJlc3BvbnNlLlV1aWQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgQ2VsbE1vZGVsLnByb3RvdHlwZS5sb2FkID0gZnVuY3Rpb24gbG9hZChjZWxsSWQpIHtcbiAgICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfaHR0cEdlbkluZGV4LlNoYXJlU2VydmljZUFwaShfaHR0cFB5ZGlvQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKSk7XG4gICAgICAgIHJldHVybiBhcGkuZ2V0Q2VsbChjZWxsSWQpLnRoZW4oZnVuY3Rpb24gKHJvb20pIHtcbiAgICAgICAgICAgIF90aGlzNS5jZWxsID0gcm9vbTtcbiAgICAgICAgICAgIGlmICghX3RoaXM1LmNlbGwuUm9vdE5vZGVzKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM1LmNlbGwuUm9vdE5vZGVzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIV90aGlzNS5jZWxsLkFDTHMpIHtcbiAgICAgICAgICAgICAgICBfdGhpczUuY2VsbC5BQ0xzID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIV90aGlzNS5jZWxsLlBvbGljaWVzKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM1LmNlbGwuUG9saWNpZXMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghX3RoaXM1LmNlbGwuRGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICBfdGhpczUuY2VsbC5EZXNjcmlwdGlvbiA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3RoaXM1Ll9lZGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgIF90aGlzNS5vcmlnaW5hbENlbGwgPSBfdGhpczUuY2xvbmUoX3RoaXM1LmNlbGwpO1xuICAgICAgICAgICAgX3RoaXM1Lm5vdGlmeSgndXBkYXRlJyk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gY29uZmlybU1lc3NhZ2UgU3RyaW5nXG4gICAgICogQHJldHVybiB7UHJvbWlzZX1cbiAgICAgKi9cblxuICAgIENlbGxNb2RlbC5wcm90b3R5cGUuZGVsZXRlQ2VsbCA9IGZ1bmN0aW9uIGRlbGV0ZUNlbGwoKSB7XG4gICAgICAgIHZhciBfdGhpczYgPSB0aGlzO1xuXG4gICAgICAgIHZhciBjb25maXJtTWVzc2FnZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgIGlmICghY29uZmlybU1lc3NhZ2UpIHtcbiAgICAgICAgICAgIGNvbmZpcm1NZXNzYWdlID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBjZWxsPyBUaGlzIGNhbm5vdCBiZSB1bmRvbmUuJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlybShjb25maXJtTWVzc2FnZSkpIHtcbiAgICAgICAgICAgIHZhciBfcmV0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXBpID0gbmV3IF9odHRwR2VuSW5kZXguU2hhcmVTZXJ2aWNlQXBpKF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpKTtcbiAgICAgICAgICAgICAgICB2YXIgcHlkaW8gPSBfcHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKTtcbiAgICAgICAgICAgICAgICBpZiAocHlkaW8udXNlci5hY3RpdmVSZXBvc2l0b3J5ID09PSBfdGhpczYuY2VsbC5VdWlkKSB7XG4gICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3dpdGNoVG9PdGhlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHB5ZGlvLnVzZXIuZ2V0UmVwb3NpdG9yaWVzTGlzdCgpLmZvckVhY2goZnVuY3Rpb24gKHYsIGspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoayAhPT0gX3RoaXM2LmNlbGwuVXVpZCAmJiAoIXN3aXRjaFRvT3RoZXIgfHwgdi5nZXRBY2Nlc3NUeXBlKCkgPT09ICdnYXRld2F5JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoVG9PdGhlciA9IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3dpdGNoVG9PdGhlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5ZGlvLnRyaWdnZXJSZXBvc2l0b3J5Q2hhbmdlKHN3aXRjaFRvT3RoZXIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpLmRlbGV0ZUNlbGwoX3RoaXM2LmNlbGwuVXVpZCkudGhlbihmdW5jdGlvbiAocmVzKSB7fSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHY6IGFwaS5kZWxldGVDZWxsKF90aGlzNi5jZWxsLlV1aWQpLnRoZW4oZnVuY3Rpb24gKHJlcykge30pXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBfcmV0ID09PSAnb2JqZWN0JykgcmV0dXJuIF9yZXQudjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIENlbGxNb2RlbDtcbn0pKF9sYW5nT2JzZXJ2YWJsZTJbJ2RlZmF1bHQnXSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENlbGxNb2RlbDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfbGFuZ09ic2VydmFibGUgPSByZXF1aXJlKCcuLi9sYW5nL09ic2VydmFibGUnKTtcblxudmFyIF9sYW5nT2JzZXJ2YWJsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nT2JzZXJ2YWJsZSk7XG5cbnZhciBfbGFuZ0xvZ2dlciA9IHJlcXVpcmUoJy4uL2xhbmcvTG9nZ2VyJyk7XG5cbnZhciBfbGFuZ0xvZ2dlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nTG9nZ2VyKTtcblxudmFyIF9odHRwUHlkaW9BcGkgPSByZXF1aXJlKCcuLi9odHRwL1B5ZGlvQXBpJyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBQeWRpb0FwaSk7XG5cbnZhciBfdXRpbFhNTFV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9YTUxVdGlscycpO1xuXG52YXIgX3V0aWxYTUxVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsWE1MVXRpbHMpO1xuXG52YXIgX0FjdGlvbiA9IHJlcXVpcmUoJy4vQWN0aW9uJyk7XG5cbnZhciBfQWN0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FjdGlvbik7XG5cbi8qKlxuICogU2luZ2xldG9uIGNsYXNzIHRoYXQgbWFuYWdlcyBhbGwgYWN0aW9ucy4gQ2FuIGJlIGNhbGxlZCBkaXJlY3RseSB1c2luZyBweWRpby5nZXRDb250cm9sbGVyKCkuXG4gKi9cblxudmFyIENvbnRyb2xsZXIgPSAoZnVuY3Rpb24gKF9PYnNlcnZhYmxlKSB7XG4gICAgX2luaGVyaXRzKENvbnRyb2xsZXIsIF9PYnNlcnZhYmxlKTtcblxuICAgIC8qKlxuICAgICAqIFN0YW5kYXJkIGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHB5ZGlvT2JqZWN0IFB5ZGlvXG4gICAgICogQHBhcmFtIGRhdGFNb2RlbEVsZW1lbnRJZFxuICAgICAqL1xuXG4gICAgZnVuY3Rpb24gQ29udHJvbGxlcihweWRpb09iamVjdCkge1xuICAgICAgICB2YXIgZGF0YU1vZGVsRWxlbWVudElkID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ29udHJvbGxlcik7XG5cbiAgICAgICAgX09ic2VydmFibGUuY2FsbCh0aGlzKTtcbiAgICAgICAgdGhpcy5fcHlkaW9PYmplY3QgPSBweWRpb09iamVjdDtcbiAgICAgICAgdGhpcy5fcmVnaXN0ZXJlZEtleXMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMudXNlcnNFbmFibGVkID0gcHlkaW9PYmplY3QuUGFyYW1ldGVycy5nZXQoXCJ1c2Vyc0VuYWJsZWRcIik7XG5cbiAgICAgICAgdGhpcy5zdWJNZW51cyA9IFtdO1xuICAgICAgICB0aGlzLmFjdGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuZGVmYXVsdEFjdGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMudG9vbGJhcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuX2d1aUFjdGlvbnMgPSBuZXcgTWFwKCk7XG5cbiAgICAgICAgdGhpcy5jb250ZXh0Q2hhbmdlZE9icyA9IChmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dENoYW5nZSgpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSwgMCk7XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZE9icyA9IChmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maXJlU2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpLCAwKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKTtcblxuICAgICAgICBpZiAoZGF0YU1vZGVsRWxlbWVudElkKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsRGF0YU1vZGVsID0gdHJ1ZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YU1vZGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGF0YU1vZGVsRWxlbWVudElkKS5hanhwUGFuZU9iamVjdC5nZXREYXRhTW9kZWwoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgICBpZiAodGhpcy5fZGF0YU1vZGVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29ubmVjdERhdGFNb2RlbCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9weWRpb09iamVjdC5vYnNlcnZlT25jZShcImRhdGFtb2RlbC1sb2FkZWQtXCIgKyBkYXRhTW9kZWxFbGVtZW50SWQsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFNb2RlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRhdGFNb2RlbEVsZW1lbnRJZCkuYWp4cFBhbmVPYmplY3QuZ2V0RGF0YU1vZGVsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nvbm5lY3REYXRhTW9kZWwoKTtcbiAgICAgICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxEYXRhTW9kZWwgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2Nvbm5lY3REYXRhTW9kZWwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnVzZXJzRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fcHlkaW9PYmplY3Qub2JzZXJ2ZShcInVzZXJfbG9nZ2VkXCIsIChmdW5jdGlvbiAodXNlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VXNlcih1c2VyKTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3B5ZGlvT2JqZWN0LnVzZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFVzZXIodGhpcy5fcHlkaW9PYmplY3QudXNlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5nZXRQeWRpbyA9IGZ1bmN0aW9uIGdldFB5ZGlvKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHlkaW9PYmplY3Q7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLnB1Ymxpc2hBY3Rpb25FdmVudCA9IGZ1bmN0aW9uIHB1Ymxpc2hBY3Rpb25FdmVudChldmVudE5hbWUsIGRhdGEpIHtcbiAgICAgICAgdGhpcy5fcHlkaW9PYmplY3QuZmlyZShldmVudE5hbWUsIGRhdGEpO1xuICAgIH07XG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5fY29ubmVjdERhdGFNb2RlbCA9IGZ1bmN0aW9uIF9jb25uZWN0RGF0YU1vZGVsKCkge1xuICAgICAgICBpZiAodGhpcy5sb2NhbERhdGFNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YU1vZGVsLm9ic2VydmUoXCJjb250ZXh0X2NoYW5nZWRcIiwgdGhpcy5jb250ZXh0Q2hhbmdlZE9icyk7XG4gICAgICAgICAgICB0aGlzLl9kYXRhTW9kZWwub2JzZXJ2ZShcInNlbGVjdGlvbl9jaGFuZ2VkXCIsIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZE9icyk7XG4gICAgICAgICAgICB0aGlzLmxvYWRBY3Rpb25zRnJvbVJlZ2lzdHJ5KCk7XG4gICAgICAgICAgICB0aGlzLl9weWRpb09iamVjdC5vYnNlcnZlKFwicmVnaXN0cnlfbG9hZGVkXCIsIChmdW5jdGlvbiAocmVnaXN0cnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRBY3Rpb25zRnJvbVJlZ2lzdHJ5KHJlZ2lzdHJ5KTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcHlkaW9PYmplY3Qub2JzZXJ2ZShcImNvbnRleHRfY2hhbmdlZFwiLCB0aGlzLmNvbnRleHRDaGFuZ2VkT2JzKTtcbiAgICAgICAgICAgIHRoaXMuX3B5ZGlvT2JqZWN0Lm9ic2VydmUoXCJzZWxlY3Rpb25fY2hhbmdlZFwiLCB0aGlzLnNlbGVjdGlvbkNoYW5nZWRPYnMpO1xuICAgICAgICAgICAgdGhpcy5fZGF0YU1vZGVsID0gdGhpcy5fcHlkaW9PYmplY3QuZ2V0Q29udGV4dEhvbGRlcigpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLnVwZGF0ZUd1aUFjdGlvbnMgPSBmdW5jdGlvbiB1cGRhdGVHdWlBY3Rpb25zKGFjdGlvbnMpIHtcbiAgICAgICAgYWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbiAodiwgaykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9ndWlBY3Rpb25zLmhhcyhrKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2d1aUFjdGlvbnMuc2V0KGssIHYpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJBY3Rpb24odik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLm5vdGlmeShcImFjdGlvbnNfcmVmcmVzaGVkXCIpO1xuICAgIH07XG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5kZWxldGVGcm9tR3VpQWN0aW9ucyA9IGZ1bmN0aW9uIGRlbGV0ZUZyb21HdWlBY3Rpb25zKGFjdGlvbk5hbWUpIHtcbiAgICAgICAgdGhpcy5fZ3VpQWN0aW9uc1snZGVsZXRlJ10oYWN0aW9uTmFtZSk7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbnMuaGFzKGFjdGlvbk5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbnNbJ2RlbGV0ZSddKGFjdGlvbk5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubm90aWZ5KFwiYWN0aW9uc19yZWZyZXNoZWRcIik7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLnJlZnJlc2hHdWlBY3Rpb25zSTE4biA9IGZ1bmN0aW9uIHJlZnJlc2hHdWlBY3Rpb25zSTE4bigpIHtcbiAgICAgICAgdGhpcy5fZ3VpQWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgICB2YWx1ZS5yZWZyZXNoRnJvbUkxOE5IYXNoKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5nZXREYXRhTW9kZWwgPSBmdW5jdGlvbiBnZXREYXRhTW9kZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhTW9kZWw7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5sb2NhbERhdGFNb2RlbCAmJiB0aGlzLl9kYXRhTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFNb2RlbC5zdG9wT2JzZXJ2aW5nKFwiY29udGV4dF9jaGFuZ2VkXCIsIHRoaXMuY29udGV4dENoYW5nZWRPYnMpO1xuICAgICAgICAgICAgdGhpcy5fZGF0YU1vZGVsLnN0b3BPYnNlcnZpbmcoXCJzZWxlY3Rpb25fY2hhbmdlZFwiLCB0aGlzLnNlbGVjdGlvbkNoYW5nZWRPYnMpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmdldE1lc3NhZ2UgPSBmdW5jdGlvbiBnZXRNZXNzYWdlKG1lc3NhZ2VJZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3B5ZGlvT2JqZWN0Lk1lc3NhZ2VIYXNoW21lc3NhZ2VJZF07XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBtZXNzYWdlSWQ7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU3RvcmVzIHRoZSBjdXJyZW50bHkgbG9nZ2VkIHVzZXIgb2JqZWN0XG4gICAgICogQHBhcmFtIG9Vc2VyIFVzZXIgVXNlciBpbnN0YW5jZVxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuc2V0VXNlciA9IGZ1bmN0aW9uIHNldFVzZXIob1VzZXIpIHtcbiAgICAgICAgdGhpcy5vVXNlciA9IG9Vc2VyO1xuICAgICAgICBpZiAob1VzZXIgIT0gbnVsbCAmJiBvVXNlci5pZCAhPT0gJ2d1ZXN0JyAmJiBvVXNlci5nZXRQcmVmZXJlbmNlKCdsYW5nJykgIT0gbnVsbCAmJiBvVXNlci5nZXRQcmVmZXJlbmNlKCdsYW5nJykgIT09IFwiXCIgJiYgb1VzZXIuZ2V0UHJlZmVyZW5jZSgnbGFuZycpICE9PSB0aGlzLl9weWRpb09iamVjdC5jdXJyZW50TGFuZ3VhZ2UgJiYgIW9Vc2VyLmxvY2spIHtcbiAgICAgICAgICAgIHRoaXMuX3B5ZGlvT2JqZWN0LmxvYWRJMThOTWVzc2FnZXMob1VzZXIuZ2V0UHJlZmVyZW5jZSgnbGFuZycpLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmlsdGVyIHRoZSBhY3Rpb25zIGdpdmVuIHRoZSBzcmNFbGVtZW50IHBhc3NlZCBhcyBhcmd1bWVudHMuXG4gICAgICogQHBhcmFtIGFjdGlvbnNTZWxlY3RvckF0dCBTdHJpbmcgQW4gaWRlbnRpZmllciBhbW9uZyBzZWxlY3Rpb25Db250ZXh0LCBnZW5lcmljQ29udGV4dCwgYSB3ZWJmeCBvYmplY3QgaWRcbiAgICAgICAgKiBAcGFyYW0gaWdub3JlR3JvdXBzIEFycmF5IGEgbGlzdCBvZiBncm91cHMgdG8gaWdub3JlXG4gICAgICogQHJldHVybnMgQXJyYXlcbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmdldENvbnRleHRBY3Rpb25zID0gZnVuY3Rpb24gZ2V0Q29udGV4dEFjdGlvbnMoYWN0aW9uc1NlbGVjdG9yQXR0LCBpZ25vcmVHcm91cHMsIG9ubHlHcm91cHMpIHtcbiAgICAgICAgdmFyIGNvbnRleHRBY3Rpb25zID0gW107XG4gICAgICAgIHZhciBkZWZhdWx0R3JvdXAgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBjb250ZXh0QWN0aW9uc0dyb3VwID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICAgICAgaWYgKCFhY3Rpb24uY29udGV4dC5jb250ZXh0TWVudSAmJiAhKG9ubHlHcm91cHMgJiYgb25seUdyb3Vwcy5sZW5ndGgpKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoYWN0aW9uc1NlbGVjdG9yQXR0ID09ICdzZWxlY3Rpb25Db250ZXh0JyAmJiAhYWN0aW9uLmNvbnRleHQuc2VsZWN0aW9uKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoYWN0aW9uc1NlbGVjdG9yQXR0ID09ICdkaXJlY3RvcnlDb250ZXh0JyAmJiAhYWN0aW9uLmNvbnRleHQuZGlyKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoYWN0aW9uc1NlbGVjdG9yQXR0ID09ICdnZW5lcmljQ29udGV4dCcgJiYgYWN0aW9uLmNvbnRleHQuc2VsZWN0aW9uKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoYWN0aW9uLmNvbnRleHRIaWRkZW4gfHwgYWN0aW9uLmRlbnkpIHJldHVybjtcbiAgICAgICAgICAgIGFjdGlvbi5jb250ZXh0LmFjdGlvbkJhckdyb3VwLnNwbGl0KCcsJykuZm9yRWFjaChmdW5jdGlvbiAoYmFyR3JvdXApIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRleHRBY3Rpb25zR3JvdXAuaGFzKGJhckdyb3VwKSkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0QWN0aW9uc0dyb3VwLnNldChiYXJHcm91cCwgW10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGlzRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGFjdGlvbnNTZWxlY3RvckF0dCA9PSAnc2VsZWN0aW9uQ29udGV4dCcpIHtcbiAgICAgICAgICAgICAgICAvLyBzZXQgZGVmYXVsdCBpbiBib2xkXG4gICAgICAgICAgICAgICAgdmFyIHVzZXJTZWxlY3Rpb24gPSB0aGlzLl9kYXRhTW9kZWw7XG4gICAgICAgICAgICAgICAgaWYgKCF1c2VyU2VsZWN0aW9uLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGVmYXVsdEFjdGlvbiA9ICdmaWxlJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJTZWxlY3Rpb24uaXNVbmlxdWUoKSAmJiAodXNlclNlbGVjdGlvbi5oYXNEaXIoKSB8fCB1c2VyU2VsZWN0aW9uLmhhc01pbWUoWydhanhwX2Jyb3dzYWJsZV9hcmNoaXZlJ10pKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFjdGlvbiA9ICdkaXInO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zLmdldChkZWZhdWx0QWN0aW9uKSAmJiBhY3Rpb24ub3B0aW9ucy5uYW1lID09IHRoaXMuZGVmYXVsdEFjdGlvbnMuZ2V0KGRlZmF1bHRBY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlZmF1bHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWN0aW9uLmNvbnRleHQuYWN0aW9uQmFyR3JvdXAuc3BsaXQoJywnKS5mb3JFYWNoKGZ1bmN0aW9uIChiYXJHcm91cCkge1xuICAgICAgICAgICAgICAgIHZhciBtZW51SXRlbSA9IGFjdGlvbi5nZXRNZW51RGF0YSgpO1xuICAgICAgICAgICAgICAgIG1lbnVJdGVtLmlzRGVmYXVsdCA9IGlzRGVmYXVsdDtcbiAgICAgICAgICAgICAgICBjb250ZXh0QWN0aW9uc0dyb3VwLmdldChiYXJHcm91cCkucHVzaChtZW51SXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0R3JvdXAgPSBiYXJHcm91cDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIHZhciBmaXJzdCA9IHRydWUsXG4gICAgICAgICAgICBrZXlzID0gW107XG4gICAgICAgIGNvbnRleHRBY3Rpb25zR3JvdXAgPSB0aGlzLl9zb3J0VG9vbGJhcnNBY3Rpb25zKGNvbnRleHRBY3Rpb25zR3JvdXApO1xuICAgICAgICBjb250ZXh0QWN0aW9uc0dyb3VwLmZvckVhY2goZnVuY3Rpb24gKHYsIGspIHtcbiAgICAgICAgICAgIGlmIChkZWZhdWx0R3JvdXAgJiYgayA9PSBkZWZhdWx0R3JvdXApIHJldHVybjtcbiAgICAgICAgICAgIGtleXMucHVzaChrKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGtleXMuc29ydCgpO1xuICAgICAgICBpZiAoZGVmYXVsdEdyb3VwICYmIGNvbnRleHRBY3Rpb25zR3JvdXAuaGFzKGRlZmF1bHRHcm91cCkpIHtcbiAgICAgICAgICAgIGtleXMudW5zaGlmdChkZWZhdWx0R3JvdXApO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhY3Rpb25zUHVzaGVkID0ge307XG4gICAgICAgIGtleXMubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGNvbnRleHRBY3Rpb25zR3JvdXAuZ2V0KGtleSk7XG4gICAgICAgICAgICBpZiAoIWZpcnN0KSB7XG4gICAgICAgICAgICAgICAgY29udGV4dEFjdGlvbnMucHVzaCh7IHNlcGFyYXRvcjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpZ25vcmVHcm91cHMgJiYgaWdub3JlR3JvdXBzLmluZGV4T2Yoa2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob25seUdyb3VwcyAmJiBvbmx5R3JvdXBzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaXJzdCA9IGZhbHNlO1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbiAobUl0ZW0pIHtcbiAgICAgICAgICAgICAgICB2YXIgYWN0aW9uSWQgPSBtSXRlbS5hY3Rpb25faWQ7XG4gICAgICAgICAgICAgICAgaWYgKCFhY3Rpb25zUHVzaGVkW2FjdGlvbklkXSkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0QWN0aW9ucy5wdXNoKG1JdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uc1B1c2hlZFthY3Rpb25JZF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHRBY3Rpb25zO1xuICAgIH07XG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5nZXRUb29sYmFyc0FjdGlvbnMgPSBmdW5jdGlvbiBnZXRUb29sYmFyc0FjdGlvbnMoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIHRvb2xiYXJzTGlzdCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IFtdIDogYXJndW1lbnRzWzBdO1xuICAgICAgICB2YXIgZ3JvdXBPdGhlckxpc3QgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBbXSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB2YXIgdG9vbGJhcnMgPSBuZXcgTWFwKCksXG4gICAgICAgICAgICBncm91cE90aGVyQmFycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdmFyIGxhc3RUYmFyQWRkZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYWN0aW9ucy5mb3JFYWNoKChmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLmNvbnRleHQuYWN0aW9uQmFyKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9uLmNvbnRleHQuYWN0aW9uQmFyR3JvdXAuc3BsaXQoXCIsXCIpLm1hcCgoZnVuY3Rpb24gKGJhckdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b29sYmFyc0xpc3QuaW5kZXhPZihiYXJHcm91cCkgPT09IC0xICYmIGdyb3VwT3RoZXJMaXN0LmluZGV4T2YoYmFyR3JvdXApID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciB0QmFyVXBkYXRlID0gdG9vbGJhcnNMaXN0LmluZGV4T2YoYmFyR3JvdXApICE9PSAtMSA/IHRvb2xiYXJzIDogZ3JvdXBPdGhlckJhcnM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0QmFyVXBkYXRlLmdldChiYXJHcm91cCkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdEJhclVwZGF0ZS5zZXQoYmFyR3JvdXAsIFtdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0QmFyVXBkYXRlLmdldChiYXJHcm91cCkucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBpZiAodEJhclVwZGF0ZSA9PT0gdG9vbGJhcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUYmFyQWRkZWQgPSBiYXJHcm91cDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcblxuICAgICAgICAvLyBSZWdyb3VwIGFjdGlvbnMgYXJ0aWZpY2lhbGx5XG4gICAgICAgIGlmIChncm91cE90aGVyTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN1Ym1lbnVJdGVtcyA9IFtdO1xuICAgICAgICAgICAgICAgIGdyb3VwT3RoZXJMaXN0Lm1hcCgoZnVuY3Rpb24gKG90aGVyVG9vbGJhcikge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBvdGhlckFjdGlvbnMgPSBncm91cE90aGVyQmFycy5nZXQob3RoZXJUb29sYmFyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvdGhlckFjdGlvbnMpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJBY3Rpb25zLm1hcChmdW5jdGlvbiAoYWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJtZW51SXRlbXMucHVzaCh7IGFjdGlvbklkOiBhY3QgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBPdGhlckxpc3QuaW5kZXhPZihvdGhlclRvb2xiYXIpIDwgZ3JvdXBPdGhlckxpc3QubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3VibWVudUl0ZW1zLnB1c2goeyBzZXBhcmF0b3I6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzKSk7XG4gICAgICAgICAgICAgICAgdmFyIG1vcmVBY3Rpb24gPSBuZXcgX0FjdGlvbjJbJ2RlZmF1bHQnXSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdncm91cF9tb3JlX2FjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIGljb25fY2xhc3M6ICdpY29uLW5vbmUnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBNZXNzYWdlSGFzaFs0NTZdLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogTWVzc2FnZUhhc2hbNDU2XSxcbiAgICAgICAgICAgICAgICAgICAgaGFzQWNjZXNzS2V5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc3ViTWVudTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uIGNhbGxiYWNrKCkge31cbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGRpcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uQmFyOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25CYXJHcm91cDogJycsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHRNZW51OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgaW5mb1BhbmVsOiBmYWxzZVxuXG4gICAgICAgICAgICAgICAgfSwge30sIHt9LCB7IGR5bmFtaWNJdGVtczogc3VibWVudUl0ZW1zIH0pO1xuICAgICAgICAgICAgICAgIF90aGlzLnJlZ2lzdGVyQWN0aW9uKG1vcmVBY3Rpb24pO1xuICAgICAgICAgICAgICAgIF90aGlzLmFjdGlvbnMuc2V0KFwiZ3JvdXBfbW9yZV9hY3Rpb25cIiwgbW9yZUFjdGlvbik7XG4gICAgICAgICAgICAgICAgdG9vbGJhcnMuc2V0KCdNT1JFX0FDVElPTicsIFttb3JlQWN0aW9uXSk7XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NvcnRUb29sYmFyc0FjdGlvbnModG9vbGJhcnMpO1xuICAgICAgICByZXR1cm4gdG9vbGJhcnM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdlbmVyaWMgbWV0aG9kIHRvIGdldCBhY3Rpb25zIGZvciBhIGdpdmVuIGNvbXBvbmVudCBwYXJ0LlxuICAgICAqIEBwYXJhbSBhanhwQ2xhc3NOYW1lIFN0cmluZyBcbiAgICAgKiBAcGFyYW0gd2lkZ2V0SWQgU3RyaW5nXG4gICAgICogQHJldHVybnMgW11cbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmdldEFjdGlvbnNGb3JBanhwV2lkZ2V0ID0gZnVuY3Rpb24gZ2V0QWN0aW9uc0ZvckFqeHBXaWRnZXQoYWp4cENsYXNzTmFtZSwgd2lkZ2V0SWQpIHtcbiAgICAgICAgdmFyIGFjdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5jb250ZXh0LmFqeHBXaWRnZXRzICYmIChhY3Rpb24uY29udGV4dC5hanhwV2lkZ2V0cy5pbmRleE9mKGFqeHBDbGFzc05hbWUgKyAnOjonICsgd2lkZ2V0SWQpICE9IC0xIHx8IGFjdGlvbi5jb250ZXh0LmFqeHBXaWRnZXRzLmluZGV4T2YoYWp4cENsYXNzTmFtZSkgIT0gLTEpICYmICFhY3Rpb24uZGVueSkgYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYWN0aW9ucztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmluZHMgYSBkZWZhdWx0IGFjdGlvbiBhbmQgZmlyZXMgaXQuXG4gICAgICogQHBhcmFtIGRlZmF1bHROYW1lIFN0cmluZyAoXCJmaWxlXCIsIFwiZGlyXCIsIFwiZHJhZ25kcm9wXCIsIFwiY3RybGRyYWduZHJvcFwiKVxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZmlyZURlZmF1bHRBY3Rpb24gPSBmdW5jdGlvbiBmaXJlRGVmYXVsdEFjdGlvbihkZWZhdWx0TmFtZSkge1xuICAgICAgICB2YXIgYWN0aW9uTmFtZSA9IHRoaXMuZGVmYXVsdEFjdGlvbnMuZ2V0KGRlZmF1bHROYW1lKTtcbiAgICAgICAgaWYgKGFjdGlvbk5hbWUpIHtcbiAgICAgICAgICAgIGFyZ3VtZW50c1swXSA9IGFjdGlvbk5hbWU7XG4gICAgICAgICAgICBpZiAoYWN0aW9uTmFtZSA9PT0gXCJsc1wiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFjdGlvbiA9IHRoaXMuYWN0aW9ucy5nZXQoYWN0aW9uTmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbikgYWN0aW9uLmVuYWJsZSgpOyAvLyBGb3JjZSBlbmFibGUgb24gZGVmYXVsdCBhY3Rpb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmlyZUFjdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZpcmUgYW4gYWN0aW9uIGJhc2VkIG9uIGl0cyBuYW1lXG4gICAgICogQHBhcmFtIGFjdGlvbk5hbWUgU3RyaW5nIFRoZSBuYW1lIG9mIHRoZSBhY3Rpb25cbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmZpcmVBY3Rpb24gPSBmdW5jdGlvbiBmaXJlQWN0aW9uKGFjdGlvbk5hbWUpIHtcbiAgICAgICAgdmFyIGFjdGlvbiA9IHRoaXMuYWN0aW9ucy5nZXQoYWN0aW9uTmFtZSk7XG4gICAgICAgIGlmIChhY3Rpb24gIT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5mcm9tKGFyZ3VtZW50cykuc2xpY2UoMSk7XG4gICAgICAgICAgICBhY3Rpb24uYXBwbHkoYXJncyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGFuIGFjY2Vzc2tleSBmb3IgYSBnaXZlbiBhY3Rpb24uIFxuICAgICAqIEBwYXJhbSBrZXkgU3RyaW5nIFRoZSBhY2Nlc3Mga2V5XG4gICAgICogQHBhcmFtIGFjdGlvbk5hbWUgU3RyaW5nIFRoZSBuYW1lIG9mIHRoZSBhY3Rpb25cbiAgICAgKiBAcGFyYW0gb3B0aW9ubmFsQ29tbWFuZCBTdHJpbmcgQW4gb3B0aW9ubmFsIGFyZ3VtZW50IFxuICAgICAqIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGFjdGlvbiB3aGVuIGZpcmVkLlxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUucmVnaXN0ZXJLZXkgPSBmdW5jdGlvbiByZWdpc3RlcktleShrZXksIGFjdGlvbk5hbWUsIG9wdGlvbm5hbENvbW1hbmQpIHtcbiAgICAgICAgaWYgKG9wdGlvbm5hbENvbW1hbmQpIHtcbiAgICAgICAgICAgIGFjdGlvbk5hbWUgPSBhY3Rpb25OYW1lICsgXCI6OlwiICsgb3B0aW9ubmFsQ29tbWFuZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZWdpc3RlcmVkS2V5cy5zZXQoa2V5LnRvTG93ZXJDYXNlKCksIGFjdGlvbk5hbWUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYWxsIHJlZ2lzdGVyZWQga2V5cy5cbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmNsZWFyUmVnaXN0ZXJlZEtleXMgPSBmdW5jdGlvbiBjbGVhclJlZ2lzdGVyZWRLZXlzKCkge1xuICAgICAgICB0aGlzLl9yZWdpc3RlcmVkS2V5cyA9IG5ldyBNYXAoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgYW4gYWN0aW9uIGJ5IGl0cyBhY2Nlc3Mga2V5LlxuICAgICAqIEBwYXJhbSBrZXlOYW1lIFN0cmluZyBBIGtleSBuYW1lXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5maXJlQWN0aW9uQnlLZXkgPSBmdW5jdGlvbiBmaXJlQWN0aW9uQnlLZXkoa2V5TmFtZSkge1xuICAgICAgICBpZiAodGhpcy5fcmVnaXN0ZXJlZEtleXMuZ2V0KGtleU5hbWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcmVnaXN0ZXJlZEtleXMuZ2V0KGtleU5hbWUpLmluZGV4T2YoXCI6OlwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB2YXIgcGFydHMgPSB0aGlzLl9yZWdpc3RlcmVkS2V5cy5nZXQoa2V5TmFtZSkuc3BsaXQoXCI6OlwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZpcmVBY3Rpb24ocGFydHNbMF0sIHBhcnRzWzFdKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maXJlQWN0aW9uKHRoaXMuX3JlZ2lzdGVyZWRLZXlzLmdldChrZXlOYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgYWN0aW9uIGRlZmluZWQgYXMgZGVmYXVsdCBmb3IgYSBnaXZlbiBkZWZhdWx0IHN0cmluZ1xuICAgICAqIEBwYXJhbSBkZWZhdWx0TmFtZSBTdHJpbmdcbiAgICAgKiBAcmV0dXJucyBBY3Rpb25cbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmdldERlZmF1bHRBY3Rpb24gPSBmdW5jdGlvbiBnZXREZWZhdWx0QWN0aW9uKGRlZmF1bHROYW1lKSB7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRBY3Rpb25zLmhhcyhkZWZhdWx0TmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnMuZ2V0KHRoaXMuZGVmYXVsdEFjdGlvbnMuZ2V0KGRlZmF1bHROYW1lKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNwcmVhZHMgYSBzZWxlY3Rpb24gY2hhbmdlIHRvIGFsbCBhY3Rpb25zIGFuZCB0byByZWdpc3RlcmVkIGNvbXBvbmVudHMgXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5maXJlU2VsZWN0aW9uQ2hhbmdlID0gZnVuY3Rpb24gZmlyZVNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGFjdGlvbi5maXJlU2VsZWN0aW9uQ2hhbmdlKHRoaXMuX2RhdGFNb2RlbCk7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLm5vdGlmeShcImFjdGlvbnNfcmVmcmVzaGVkXCIpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTcHJlYWRzIGEgY29udGV4dCBjaGFuZ2UgdG8gYWxsIGFjdGlvbnMgYW5kIHRvIHJlZ2lzdGVyZWQgY29tcG9uZW50cyBcbiAgICAgKiBieSB0cmlnZ2VyaW5nIGFjdGlvbnNfcmVmcmVzaGVkIGV2ZW50LlxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUuZmlyZUNvbnRleHRDaGFuZ2UgPSBmdW5jdGlvbiBmaXJlQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGFjdGlvbi5maXJlQ29udGV4dENoYW5nZSh0aGlzLl9kYXRhTW9kZWwsIHRoaXMudXNlcnNFbmFibGVkLCB0aGlzLm9Vc2VyKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMubm90aWZ5KFwiYWN0aW9uc19yZWZyZXNoZWRcIik7XG4gICAgfTtcblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLm5vdGlmeSA9IGZ1bmN0aW9uIG5vdGlmeShldmVudE5hbWUsIG1lbW8pIHtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxEYXRhTW9kZWwpIHtcbiAgICAgICAgICAgIF9PYnNlcnZhYmxlLnByb3RvdHlwZS5ub3RpZnkuY2FsbCh0aGlzLCBcImFjdGlvbnNfcmVmcmVzaGVkXCIsIG1lbW8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcHlkaW9PYmplY3QuZmlyZShcImFjdGlvbnNfcmVmcmVzaGVkXCIpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhbGwgYWN0aW9uc1xuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUucmVtb3ZlQWN0aW9ucyA9IGZ1bmN0aW9uIHJlbW92ZUFjdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuYWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgICAgIGFjdGlvbi5yZW1vdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5jbGVhclJlZ2lzdGVyZWRLZXlzKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhY3Rpb25zIGZyb20gWE1MIFJlZ2lzdHJ5XG4gICAgICogQHBhcmFtIHJlZ2lzdHJ5IERPTURvY3VtZW50XG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5sb2FkQWN0aW9uc0Zyb21SZWdpc3RyeSA9IGZ1bmN0aW9uIGxvYWRBY3Rpb25zRnJvbVJlZ2lzdHJ5KCkge1xuICAgICAgICB2YXIgcmVnaXN0cnkgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgIGlmICghcmVnaXN0cnkpIHtcbiAgICAgICAgICAgIHJlZ2lzdHJ5ID0gcHlkaW8uZ2V0WG1sUmVnaXN0cnkoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUFjdGlvbnMoKTtcbiAgICAgICAgdGhpcy5wYXJzZUFjdGlvbnMocmVnaXN0cnkpO1xuICAgICAgICB0aGlzLl9ndWlBY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uIChhY3QpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJBY3Rpb24oYWN0KTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMubm90aWZ5KFwiYWN0aW9uc19sb2FkZWRcIik7XG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5maXJlU2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhbiBhY3Rpb24gdG8gdGhpcyBtYW5hZ2VyIChkZWZhdWx0LCBhY2Nlc3NrZXkpLlxuICAgICAqIEBwYXJhbSBhY3Rpb24gQWN0aW9uXG4gICAgICovXG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5yZWdpc3RlckFjdGlvbiA9IGZ1bmN0aW9uIHJlZ2lzdGVyQWN0aW9uKGFjdGlvbikge1xuICAgICAgICB2YXIgYWN0aW9uTmFtZSA9IGFjdGlvbi5vcHRpb25zLm5hbWU7XG4gICAgICAgIHRoaXMuYWN0aW9ucy5zZXQoYWN0aW9uTmFtZSwgYWN0aW9uKTtcbiAgICAgICAgaWYgKGFjdGlvbi5kZWZhdWx0cykge1xuICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGFjdGlvbi5kZWZhdWx0cykge1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24uZGVmYXVsdHMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRBY3Rpb25zLnNldChrZXksIGFjdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uLm9wdGlvbnMuaGFzQWNjZXNzS2V5KSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyS2V5KGFjdGlvbi5vcHRpb25zLmFjY2Vzc0tleSwgYWN0aW9uTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbi5vcHRpb25zLnNwZWNpYWxBY2Nlc3NLZXkpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJLZXkoXCJrZXlfXCIgKyBhY3Rpb24ub3B0aW9ucy5zcGVjaWFsQWNjZXNzS2V5LCBhY3Rpb25OYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBhY3Rpb24uc2V0TWFuYWdlcih0aGlzKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUGFyc2UgYW4gWE1MIGFjdGlvbiBub2RlIGFuZCByZWdpc3RlcnMgdGhlIGFjdGlvblxuICAgICAqIEBwYXJhbSBkb2N1bWVudEVsZW1lbnQgRE9NTm9kZSBUaGUgbm9kZSB0byBwYXJzZVxuICAgICAqL1xuXG4gICAgQ29udHJvbGxlci5wcm90b3R5cGUucGFyc2VBY3Rpb25zID0gZnVuY3Rpb24gcGFyc2VBY3Rpb25zKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgICB2YXIgYWN0aW9ucyA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3ROb2Rlcyhkb2N1bWVudEVsZW1lbnQsIFwiYWN0aW9ucy9hY3Rpb25cIik7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGFjdGlvbnNbaV0ubm9kZU5hbWUgIT0gJ2FjdGlvbicpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKGFjdGlvbnNbaV0uZ2V0QXR0cmlidXRlKCdlbmFibGVkJykgPT0gJ2ZhbHNlJykgY29udGludWU7XG4gICAgICAgICAgICB2YXIgbmV3QWN0aW9uID0gbmV3IF9BY3Rpb24yWydkZWZhdWx0J10oKTtcbiAgICAgICAgICAgIG5ld0FjdGlvbi5zZXRNYW5hZ2VyKHRoaXMpO1xuICAgICAgICAgICAgbmV3QWN0aW9uLmNyZWF0ZUZyb21YTUwoYWN0aW9uc1tpXSk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyQWN0aW9uKG5ld0FjdGlvbik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmluZCBhbiBhY3Rpb24gYnkgaXRzIG5hbWVcbiAgICAgKiBAcGFyYW0gYWN0aW9uTmFtZSBTdHJpbmdcbiAgICAgKiBAcmV0dXJucyBBY3Rpb25cbiAgICAgKi9cblxuICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmdldEFjdGlvbkJ5TmFtZSA9IGZ1bmN0aW9uIGdldEFjdGlvbkJ5TmFtZShhY3Rpb25OYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnMuZ2V0KGFjdGlvbk5hbWUpO1xuICAgIH07XG5cbiAgICBDb250cm9sbGVyLnByb3RvdHlwZS5fc29ydFRvb2xiYXJzQWN0aW9ucyA9IGZ1bmN0aW9uIF9zb3J0VG9vbGJhcnNBY3Rpb25zKHRvb2xiYXJzKSB7XG4gICAgICAgIC8vIFNvcnRcbiAgICAgICAgdG9vbGJhcnMuZm9yRWFjaChmdW5jdGlvbiAodiwgaykge1xuICAgICAgICAgICAgaWYgKCF2LnNvcnQpIHJldHVybjtcbiAgICAgICAgICAgIHYuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHZhciB3QSA9IGEud2VpZ2h0IHx8IGEub3B0aW9ucyAmJiBhLm9wdGlvbnMud2VpZ2h0IHx8IDA7XG4gICAgICAgICAgICAgICAgdmFyIHdCID0gYi53ZWlnaHQgfHwgYi5vcHRpb25zICYmIGIub3B0aW9ucy53ZWlnaHQgfHwgMDtcbiAgICAgICAgICAgICAgICByZXR1cm4gd0EgPT09IHdCID8gMCA6IHdBID4gd0IgPyAxIDogLTE7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0b29sYmFycztcbiAgICB9O1xuXG4gICAgcmV0dXJuIENvbnRyb2xsZXI7XG59KShfbGFuZ09ic2VydmFibGUyWydkZWZhdWx0J10pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDb250cm9sbGVyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9sYW5nT2JzZXJ2YWJsZSA9IHJlcXVpcmUoJy4uL2xhbmcvT2JzZXJ2YWJsZScpO1xuXG52YXIgX2xhbmdPYnNlcnZhYmxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdPYnNlcnZhYmxlKTtcblxudmFyIEVtcHR5Tm9kZVByb3ZpZGVyID0gKGZ1bmN0aW9uIChfT2JzZXJ2YWJsZSkge1xuICAgIF9pbmhlcml0cyhFbXB0eU5vZGVQcm92aWRlciwgX09ic2VydmFibGUpO1xuXG4gICAgZnVuY3Rpb24gRW1wdHlOb2RlUHJvdmlkZXIoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFbXB0eU5vZGVQcm92aWRlcik7XG5cbiAgICAgICAgX09ic2VydmFibGUuY2FsbCh0aGlzKTtcbiAgICB9XG5cbiAgICBFbXB0eU5vZGVQcm92aWRlci5wcm90b3R5cGUuaW5pdFByb3ZpZGVyID0gZnVuY3Rpb24gaW5pdFByb3ZpZGVyKHByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSBBanhwTm9kZVxuICAgICAqIEBwYXJhbSBub2RlQ2FsbGJhY2sgRnVuY3Rpb25cbiAgICAgKiBAcGFyYW0gY2hpbGRDYWxsYmFjayBGdW5jdGlvblxuICAgICAqL1xuXG4gICAgRW1wdHlOb2RlUHJvdmlkZXIucHJvdG90eXBlLmxvYWROb2RlID0gZnVuY3Rpb24gbG9hZE5vZGUobm9kZSwgbm9kZUNhbGxiYWNrLCBjaGlsZENhbGxiYWNrKSB7fTtcblxuICAgIEVtcHR5Tm9kZVByb3ZpZGVyLnByb3RvdHlwZS5sb2FkTGVhZk5vZGVTeW5jID0gZnVuY3Rpb24gbG9hZExlYWZOb2RlU3luYyhub2RlLCBjYWxsYmFjaykge307XG5cbiAgICByZXR1cm4gRW1wdHlOb2RlUHJvdmlkZXI7XG59KShfbGFuZ09ic2VydmFibGUyWydkZWZhdWx0J10pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbXB0eU5vZGVQcm92aWRlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIElkbU9iamVjdEhlbHBlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSWRtT2JqZWN0SGVscGVyKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSWRtT2JqZWN0SGVscGVyKTtcbiAgICB9XG5cbiAgICBJZG1PYmplY3RIZWxwZXIuZXh0cmFjdExhYmVsID0gZnVuY3Rpb24gZXh0cmFjdExhYmVsKHB5ZGlvLCBhY2wpIHtcbiAgICAgICAgaWYgKGFjbC5Vc2VyKSB7XG4gICAgICAgICAgICBpZiAoYWNsLlVzZXIuTG9naW4gPT09IHB5ZGlvLnVzZXIuaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHlkaW8uTWVzc2FnZUhhc2hbJzYzNCddO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhY2wuVXNlci5BdHRyaWJ1dGVzICYmIGFjbC5Vc2VyLkF0dHJpYnV0ZXNbJ2Rpc3BsYXlOYW1lJ10pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNsLlVzZXIuQXR0cmlidXRlc1snZGlzcGxheU5hbWUnXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjbC5Vc2VyLkxvZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGFjbC5Hcm91cCkge1xuICAgICAgICAgICAgaWYgKGFjbC5Hcm91cC5VdWlkID09PSAnUk9PVF9HUk9VUCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHlkaW8uTWVzc2FnZUhhc2hbJzYzNGMnXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWNsLkdyb3VwLkdyb3VwTGFiZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHlkaW8uTWVzc2FnZUhhc2hbJzI4OSddICsgJyAnICsgYWNsLkdyb3VwLkdyb3VwTGFiZWw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2wuR3JvdXAuVXVpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChhY2wuUm9sZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFjbC5Sb2xlLkxhYmVsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIElkbU9iamVjdEhlbHBlci5leHRyYWN0TGFiZWxGcm9tSWRtT2JqZWN0ID0gZnVuY3Rpb24gZXh0cmFjdExhYmVsRnJvbUlkbU9iamVjdChpZG1PYmplY3QpIHtcbiAgICAgICAgaWYgKGlkbU9iamVjdC5Mb2dpbikge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHVzZXJcbiAgICAgICAgICAgIHJldHVybiBpZG1PYmplY3QuQXR0cmlidXRlcyAmJiBpZG1PYmplY3QuQXR0cmlidXRlc1snZGlzcGxheU5hbWUnXSB8fCBpZG1PYmplY3QuTG9naW47XG4gICAgICAgIH0gZWxzZSBpZiAoaWRtT2JqZWN0Lkdyb3VwUGF0aCkge1xuICAgICAgICAgICAgaWYgKGlkbU9iamVjdC5VdWlkID09PSAnUk9PVF9HUk9VUCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHlkaW8uTWVzc2FnZUhhc2hbJzYzNGMnXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpZG1PYmplY3QuR3JvdXBMYWJlbCB8fCAnR3JvdXAgJyArIGlkbU9iamVjdC5Hcm91cFBhdGg7XG4gICAgICAgIH0gZWxzZSBpZiAoaWRtT2JqZWN0LkxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gaWRtT2JqZWN0LkxhYmVsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGlkbU9iamVjdC5VdWlkO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBJZG1PYmplY3RIZWxwZXI7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJZG1PYmplY3RIZWxwZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX2h0dHBNZXRhQ2FjaGVTZXJ2aWNlID0gcmVxdWlyZSgnLi4vaHR0cC9NZXRhQ2FjaGVTZXJ2aWNlJyk7XG5cbnZhciBfaHR0cE1ldGFDYWNoZVNlcnZpY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cE1ldGFDYWNoZVNlcnZpY2UpO1xuXG52YXIgX2h0dHBQeWRpb0FwaSA9IHJlcXVpcmUoJy4uL2h0dHAvUHlkaW9BcGknKTtcblxudmFyIF9odHRwUHlkaW9BcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cFB5ZGlvQXBpKTtcblxudmFyIF91dGlsUGF0aFV0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9QYXRoVXRpbHMnKTtcblxudmFyIF91dGlsUGF0aFV0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxQYXRoVXRpbHMpO1xuXG52YXIgX3B5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9weWRpbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpbyk7XG5cbnZhciBfQWp4cE5vZGUgPSByZXF1aXJlKCcuL0FqeHBOb2RlJyk7XG5cbnZhciBfQWp4cE5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWp4cE5vZGUpO1xuXG52YXIgX2h0dHBHZW5BcGlNZXRhU2VydmljZUFwaSA9IHJlcXVpcmUoXCIuLi9odHRwL2dlbi9hcGkvTWV0YVNlcnZpY2VBcGlcIik7XG5cbnZhciBfaHR0cEdlbkFwaU1ldGFTZXJ2aWNlQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBHZW5BcGlNZXRhU2VydmljZUFwaSk7XG5cbnZhciBfaHR0cEdlbk1vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi9odHRwL2dlbi9tb2RlbC9SZXN0R2V0QnVsa01ldGFSZXF1ZXN0XCIpO1xuXG52YXIgX2h0dHBHZW5Nb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaHR0cEdlbk1vZGVsUmVzdEdldEJ1bGtNZXRhUmVxdWVzdCk7XG5cbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIElBanhwTm9kZVByb3ZpZGVyIGludGVyZmFjZSBiYXNlZCBvbiBhIHJlbW90ZSBzZXJ2ZXIgYWNjZXNzLlxuICogRGVmYXVsdCBmb3IgYWxsIHJlcG9zaXRvcmllcy5cbiAqL1xuXG52YXIgTWV0YU5vZGVQcm92aWRlciA9IChmdW5jdGlvbiAoKSB7XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqL1xuXG4gICAgZnVuY3Rpb24gTWV0YU5vZGVQcm92aWRlcigpIHtcbiAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNZXRhTm9kZVByb3ZpZGVyKTtcblxuICAgICAgICB0aGlzLmRpc2NyZXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFByb3ZpZGVyKHByb3BlcnRpZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSBwcm9wZXJ0aWVzXG4gICAgICogQHBhcmFtIHByb3BlcnRpZXMgT2JqZWN0XG4gICAgICovXG5cbiAgICBNZXRhTm9kZVByb3ZpZGVyLnByb3RvdHlwZS5pbml0UHJvdmlkZXIgPSBmdW5jdGlvbiBpbml0UHJvdmlkZXIocHJvcGVydGllcykge1xuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAodmFyIHAgaW4gcHJvcGVydGllcykge1xuICAgICAgICAgICAgaWYgKHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkocCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BlcnRpZXMuc2V0KHAsIHByb3BlcnRpZXNbcF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BlcnRpZXMgJiYgdGhpcy5wcm9wZXJ0aWVzLmhhcygnY29ubmV4aW9uX2Rpc2NyZXRlJykpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzY3JldGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzWydkZWxldGUnXSgnY29ubmV4aW9uX2Rpc2NyZXRlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcGVydGllcyAmJiB0aGlzLnByb3BlcnRpZXMuaGFzKCdjYWNoZV9zZXJ2aWNlJykpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlID0gdGhpcy5wcm9wZXJ0aWVzLmdldCgnY2FjaGVfc2VydmljZScpO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzWydkZWxldGUnXSgnY2FjaGVfc2VydmljZScpO1xuICAgICAgICAgICAgX2h0dHBNZXRhQ2FjaGVTZXJ2aWNlMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkucmVnaXN0ZXJNZXRhU3RyZWFtKHRoaXMuY2FjaGVTZXJ2aWNlWydtZXRhU3RyZWFtTmFtZSddLCB0aGlzLmNhY2hlU2VydmljZVsnZXhwaXJhdGlvblBvbGljeSddKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIGEgbm9kZVxuICAgICAqIEBwYXJhbSBub2RlIEFqeHBOb2RlXG4gICAgICogQHBhcmFtIG5vZGVDYWxsYmFjayBGdW5jdGlvbiBPbiBub2RlIGxvYWRlZFxuICAgICAqIEBwYXJhbSBjaGlsZENhbGxiYWNrIEZ1bmN0aW9uIE9uIGNoaWxkIGFkZGVkXG4gICAgICogQHBhcmFtIHJlY3Vyc2l2ZVxuICAgICAqIEBwYXJhbSBkZXB0aFxuICAgICAqIEBwYXJhbSBvcHRpb25hbFBhcmFtZXRlcnNcbiAgICAgKi9cblxuICAgIE1ldGFOb2RlUHJvdmlkZXIucHJvdG90eXBlLmxvYWROb2RlID0gZnVuY3Rpb24gbG9hZE5vZGUobm9kZSkge1xuICAgICAgICB2YXIgbm9kZUNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIGNoaWxkQ2FsbGJhY2sgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzJdO1xuICAgICAgICB2YXIgcmVjdXJzaXZlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbM107XG5cbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgZGVwdGggPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyAtMSA6IGFyZ3VtZW50c1s0XTtcbiAgICAgICAgdmFyIG9wdGlvbmFsUGFyYW1ldGVycyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNSB8fCBhcmd1bWVudHNbNV0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbNV07XG5cbiAgICAgICAgdmFyIHB5ZGlvID0gX3B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCk7XG4gICAgICAgIHZhciBhcGkgPSBuZXcgX2h0dHBHZW5BcGlNZXRhU2VydmljZUFwaTJbJ2RlZmF1bHQnXShfaHR0cFB5ZGlvQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKSk7XG4gICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IF9odHRwR2VuTW9kZWxSZXN0R2V0QnVsa01ldGFSZXF1ZXN0MlsnZGVmYXVsdCddKCk7XG4gICAgICAgIHZhciBzbHVnID0gJyc7XG4gICAgICAgIGlmIChweWRpby51c2VyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wZXJ0aWVzLmhhcygndG1wX3JlcG9zaXRvcnlfaWQnKSkge1xuICAgICAgICAgICAgICAgIHZhciByZXBvcyA9IHB5ZGlvLnVzZXIuZ2V0UmVwb3NpdG9yaWVzTGlzdCgpO1xuICAgICAgICAgICAgICAgIHNsdWcgPSByZXBvcy5nZXQodGhpcy5wcm9wZXJ0aWVzLmdldCgndG1wX3JlcG9zaXRvcnlfaWQnKSkuZ2V0U2x1ZygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzbHVnID0gcHlkaW8udXNlci5nZXRBY3RpdmVSZXBvc2l0b3J5T2JqZWN0KCkuZ2V0U2x1ZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciBpbnB1dFBhZ2luYXRpb24gPSBub2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwicGFnaW5hdGlvbkRhdGFcIik7XG4gICAgICAgIGlmIChpbnB1dFBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIHJlcXVlc3QuT2Zmc2V0ID0gKGlucHV0UGFnaW5hdGlvbi5nZXQoXCJjdXJyZW50XCIpIC0gMSkgKiBpbnB1dFBhZ2luYXRpb24uZ2V0KFwic2l6ZVwiKTtcbiAgICAgICAgICAgIHJlcXVlc3QuTGltaXQgPSBpbnB1dFBhZ2luYXRpb24uZ2V0KFwic2l6ZVwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcXVlc3QuTGltaXQgPSBweWRpby5nZXRQbHVnaW5Db25maWdzKFwiYWNjZXNzLmdhdGV3YXlcIikuZ2V0KFwiTElTVF9OT0RFU19QRVJfUEFHRVwiKSB8fCAyMDA7XG4gICAgICAgIH1cbiAgICAgICAgcmVxdWVzdC5Ob2RlUGF0aHMgPSBbc2x1ZyArIG5vZGUuZ2V0UGF0aCgpLCBzbHVnICsgbm9kZS5nZXRQYXRoKCkgKyAnLyonXTtcbiAgICAgICAgaWYgKHRoaXMucHJvcGVydGllcy5oYXMoXCJ2ZXJzaW9uc1wiKSkge1xuICAgICAgICAgICAgcmVxdWVzdC5WZXJzaW9ucyA9IHRydWU7XG4gICAgICAgICAgICByZXF1ZXN0Lk5vZGVQYXRocyA9IFtzbHVnICsgdGhpcy5wcm9wZXJ0aWVzLmdldCgnZmlsZScpXTtcbiAgICAgICAgfVxuICAgICAgICBfcHlkaW8yWydkZWZhdWx0J10uc3RhcnRMb2FkaW5nKCk7XG4gICAgICAgIGFwaS5nZXRCdWxrTWV0YShyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgIF9weWRpbzJbJ2RlZmF1bHQnXS5lbmRMb2FkaW5nKCk7XG4gICAgICAgICAgICB2YXIgb3JpZ05vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB2YXIgY2hpbGRyZW5Ob2RlcyA9IFtdO1xuICAgICAgICAgICAgcmVzLk5vZGVzLm1hcChmdW5jdGlvbiAobikge1xuICAgICAgICAgICAgICAgIHZhciBuZXdOb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld05vZGUgPSBNZXRhTm9kZVByb3ZpZGVyLnBhcnNlVHJlZU5vZGUobiwgc2x1Zyk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChuZXdOb2RlLmdldExhYmVsKCkgPT09ICcucHlkaW8nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5ld05vZGUuZ2V0UGF0aCgpID09PSBub2RlLmdldFBhdGgoKSkge1xuICAgICAgICAgICAgICAgICAgICBvcmlnTm9kZSA9IG5ld05vZGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQ2FsbGJhY2sobmV3Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5Ob2Rlcy5wdXNoKG5ld05vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKG9yaWdOb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLlBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhZ2luYXRpb25EYXRhID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgICAgICAgICBwYWdpbmF0aW9uRGF0YS5zZXQoXCJjdXJyZW50XCIsIHJlcy5QYWdpbmF0aW9uLkN1cnJlbnRQYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgcGFnaW5hdGlvbkRhdGEuc2V0KFwidG90YWxcIiwgcmVzLlBhZ2luYXRpb24uVG90YWxQYWdlcyk7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb25EYXRhLnNldChcInNpemVcIiwgcmVzLlBhZ2luYXRpb24uTGltaXQpO1xuICAgICAgICAgICAgICAgICAgICBvcmlnTm9kZS5nZXRNZXRhZGF0YSgpLnNldChcInBhZ2luYXRpb25EYXRhXCIsIHBhZ2luYXRpb25EYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbm9kZS5yZXBsYWNlQnkob3JpZ05vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKF90aGlzLnByb3BlcnRpZXMuaGFzKFwidmVyc2lvbnNcIikpIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbk5vZGVzID0gY2hpbGRyZW5Ob2Rlcy5tYXAoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLl9wYXRoID0gY2hpbGQuZ2V0TWV0YWRhdGEoKS5nZXQoJ3ZlcnNpb25JZCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub2RlLnNldENoaWxkcmVuKGNoaWxkcmVuTm9kZXMpO1xuICAgICAgICAgICAgaWYgKG5vZGVDYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG5vZGVDYWxsYmFjayhub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIF9weWRpbzJbJ2RlZmF1bHQnXS5lbmRMb2FkaW5nKCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExvYWQgYSBub2RlXG4gICAgICogQHBhcmFtIG5vZGUge0FqeHBOb2RlfVxuICAgICAqIEBwYXJhbSBub2RlQ2FsbGJhY2sgRnVuY3Rpb24gT24gbm9kZSBsb2FkZWRcbiAgICAgKiBAcGFyYW0gYVN5bmMgYm9vbFxuICAgICAqIEBwYXJhbSBhZGRpdGlvbmFsUGFyYW1ldGVycyBvYmplY3RcbiAgICAgKi9cblxuICAgIE1ldGFOb2RlUHJvdmlkZXIucHJvdG90eXBlLmxvYWRMZWFmTm9kZVN5bmMgPSBmdW5jdGlvbiBsb2FkTGVhZk5vZGVTeW5jKG5vZGUsIG5vZGVDYWxsYmFjaykge1xuICAgICAgICB2YXIgYVN5bmMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1syXTtcbiAgICAgICAgdmFyIGFkZGl0aW9uYWxQYXJhbWV0ZXJzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbM107XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfaHR0cEdlbkFwaU1ldGFTZXJ2aWNlQXBpMlsnZGVmYXVsdCddKF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpKTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2h0dHBHZW5Nb2RlbFJlc3RHZXRCdWxrTWV0YVJlcXVlc3QyWydkZWZhdWx0J10oKTtcbiAgICAgICAgdmFyIHNsdWcgPSAnJztcbiAgICAgICAgdmFyIHBhdGggPSBub2RlLmdldFBhdGgoKTtcbiAgICAgICAgdmFyIHB5ZGlvID0gX3B5ZGlvMlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCk7XG4gICAgICAgIGlmIChweWRpby51c2VyKSB7XG4gICAgICAgICAgICBpZiAobm9kZS5nZXRNZXRhZGF0YSgpLmhhcygncmVwb3NpdG9yeV9pZCcpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcG9JZCA9IG5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3JlcG9zaXRvcnlfaWQnKTtcbiAgICAgICAgICAgICAgICB2YXIgcmVwbyA9IHB5ZGlvLnVzZXIuZ2V0UmVwb3NpdG9yaWVzTGlzdCgpLmdldChyZXBvSWQpO1xuICAgICAgICAgICAgICAgIGlmIChyZXBvKSB7XG4gICAgICAgICAgICAgICAgICAgIHNsdWcgPSByZXBvLmdldFNsdWcoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNsdWcgPSBweWRpby51c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnlPYmplY3QoKS5nZXRTbHVnKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGggJiYgcGF0aFswXSAhPT0gJy8nKSB7XG4gICAgICAgICAgICBwYXRoID0gJy8nICsgcGF0aDtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0Lk5vZGVQYXRocyA9IFtzbHVnICsgcGF0aF07XG4gICAgICAgIGFwaS5nZXRCdWxrTWV0YShyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgIGlmIChyZXMuTm9kZXMgJiYgcmVzLk5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG5vZGVDYWxsYmFjayhNZXRhTm9kZVByb3ZpZGVyLnBhcnNlVHJlZU5vZGUocmVzLk5vZGVzWzBdLCBzbHVnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBNZXRhTm9kZVByb3ZpZGVyLnByb3RvdHlwZS5yZWZyZXNoTm9kZUFuZFJlcGxhY2UgPSBmdW5jdGlvbiByZWZyZXNoTm9kZUFuZFJlcGxhY2Uobm9kZSwgb25Db21wbGV0ZSkge1xuXG4gICAgICAgIHZhciBub2RlQ2FsbGJhY2sgPSBmdW5jdGlvbiBub2RlQ2FsbGJhY2sobmV3Tm9kZSkge1xuICAgICAgICAgICAgbm9kZS5yZXBsYWNlQnkobmV3Tm9kZSwgXCJvdmVycmlkZVwiKTtcbiAgICAgICAgICAgIGlmIChvbkNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgb25Db21wbGV0ZShub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5sb2FkTGVhZk5vZGVTeW5jKG5vZGUsIG5vZGVDYWxsYmFjayk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm4gQWp4cE5vZGUgfCBudWxsXG4gICAgICogQHBhcmFtIG9ialxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VTbHVnIHN0cmluZ1xuICAgICAqIEBwYXJhbSBkZWZhdWx0U2x1ZyBzdHJpbmdcbiAgICAgKi9cblxuICAgIE1ldGFOb2RlUHJvdmlkZXIucGFyc2VUcmVlTm9kZSA9IGZ1bmN0aW9uIHBhcnNlVHJlZU5vZGUob2JqLCB3b3Jrc3BhY2VTbHVnKSB7XG4gICAgICAgIHZhciBkZWZhdWx0U2x1ZyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/ICcnIDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIGlmICghb2JqKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9iai5NZXRhU3RvcmUpIHtcbiAgICAgICAgICAgIG9iai5NZXRhU3RvcmUgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHlkaW8gPSBfcHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKTtcblxuICAgICAgICB2YXIgbm9kZU5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChvYmouTWV0YVN0b3JlLm5hbWUpIHtcbiAgICAgICAgICAgIG5vZGVOYW1lID0gSlNPTi5wYXJzZShvYmouTWV0YVN0b3JlLm5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZU5hbWUgPSBfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXRCYXNlbmFtZShvYmouUGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNsdWcgPSB3b3Jrc3BhY2VTbHVnO1xuICAgICAgICBpZiAoIXdvcmtzcGFjZVNsdWcpIHtcbiAgICAgICAgICAgIGlmIChvYmouTWV0YVN0b3JlWydyZXBvc2l0b3J5X2lkJ10pIHtcbiAgICAgICAgICAgICAgICB2YXIgd3NJZCA9IEpTT04ucGFyc2Uob2JqLk1ldGFTdG9yZVsncmVwb3NpdG9yeV9pZCddKTtcbiAgICAgICAgICAgICAgICBpZiAocHlkaW8udXNlci5nZXRSZXBvc2l0b3JpZXNMaXN0KCkuaGFzKHdzSWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNsdWcgPSBweWRpby51c2VyLmdldFJlcG9zaXRvcmllc0xpc3QoKS5nZXQod3NJZCkuZ2V0U2x1ZygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNsdWcpIHtcbiAgICAgICAgICAgIHNsdWcgPSBkZWZhdWx0U2x1ZztcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2x1Zykge1xuICAgICAgICAgICAgLy8gU3RyaXAgd29ya3NwYWNlIHNsdWdcbiAgICAgICAgICAgIG9iai5QYXRoID0gb2JqLlBhdGguc3Vic3RyKHNsdWcubGVuZ3RoICsgMSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbm9kZSA9IG5ldyBfQWp4cE5vZGUyWydkZWZhdWx0J10oJy8nICsgb2JqLlBhdGgsIG9iai5UeXBlID09PSBcIkxFQUZcIiwgbm9kZU5hbWUsICcnLCBudWxsKTtcblxuICAgICAgICB2YXIgbWV0YSA9IG9iai5NZXRhU3RvcmU7XG4gICAgICAgIGZvciAodmFyIGsgaW4gbWV0YSkge1xuICAgICAgICAgICAgaWYgKG1ldGEuaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICB2YXIgbWV0YVZhbHVlID0gSlNPTi5wYXJzZShtZXRhW2tdKTtcbiAgICAgICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KGssIG1ldGFWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBtZXRhVmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGtTdWIgaW4gbWV0YVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWV0YVZhbHVlLmhhc093blByb3BlcnR5KGtTdWIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldChrU3ViLCBtZXRhVmFsdWVba1N1Yl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ2ZpbGVuYW1lJywgbm9kZS5nZXRQYXRoKCkpO1xuICAgICAgICBpZiAobm9kZS5nZXRQYXRoKCkgPT09ICcvcmVjeWNsZV9iaW4nKSB7XG4gICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdmb250aWNvbicsICdkZWxldGUnKTtcbiAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ21pbWVzdHJpbmdfaWQnLCAnMTIyJyk7XG4gICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdhanhwX21pbWUnLCAnYWp4cF9yZWN5Y2xlJyk7XG4gICAgICAgICAgICBpZiAocHlkaW8pIG5vZGUuc2V0TGFiZWwocHlkaW8uTWVzc2FnZUhhc2hbMTIyXSk7XG4gICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdtaW1lc3RyaW5nJywgcHlkaW8uTWVzc2FnZUhhc2hbMTIyXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuaXNMZWFmKCkgJiYgcHlkaW8gJiYgcHlkaW8uUmVnaXN0cnkpIHtcbiAgICAgICAgICAgIHZhciBleHQgPSBfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXRGaWxlRXh0ZW5zaW9uKG5vZGUuZ2V0UGF0aCgpKTtcbiAgICAgICAgICAgIHZhciByZWdpc3RlcmVkID0gcHlkaW8uUmVnaXN0cnkuZ2V0RmlsZXNFeHRlbnNpb25zKCk7XG4gICAgICAgICAgICBpZiAocmVnaXN0ZXJlZC5oYXMoZXh0KSkge1xuICAgICAgICAgICAgICAgIHZhciBfcmVnaXN0ZXJlZCRnZXQgPSByZWdpc3RlcmVkLmdldChleHQpO1xuXG4gICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VJZCA9IF9yZWdpc3RlcmVkJGdldC5tZXNzYWdlSWQ7XG4gICAgICAgICAgICAgICAgdmFyIGZvbnRJY29uID0gX3JlZ2lzdGVyZWQkZ2V0LmZvbnRJY29uO1xuXG4gICAgICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgnZm9udGljb24nLCBmb250SWNvbik7XG4gICAgICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgnbWltZXN0cmluZ19pZCcsIG1lc3NhZ2VJZCk7XG4gICAgICAgICAgICAgICAgaWYgKHB5ZGlvLk1lc3NhZ2VIYXNoW21lc3NhZ2VJZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgnbWltZXN0cmluZycsIHB5ZGlvLk1lc3NhZ2VIYXNoW21lc3NhZ2VJZF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghbm9kZS5pc0xlYWYoKSkge1xuICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgnbWltZXN0cmluZycsIHB5ZGlvLk1lc3NhZ2VIYXNoWzhdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLlNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbm9kZS5nZXRNZXRhZGF0YSgpLnNldCgnYnl0ZXNpemUnLCBvYmouU2l6ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5NVGltZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBub2RlLmdldE1ldGFkYXRhKCkuc2V0KCdhanhwX21vZGlmdGltZScsIG9iai5NVGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5FdGFnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ2V0YWcnLCBvYmouRXRhZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5VdWlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoJ3V1aWQnLCBvYmouVXVpZCk7XG4gICAgICAgIH1cbiAgICAgICAgTWV0YU5vZGVQcm92aWRlci5vdmVybGF5cyhub2RlKTtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBtZXRhZGF0YSBmb3Igc3BlY2lmaWMgb3ZlcmxheXNcbiAgICAgKiBAcGFyYW0gbm9kZSBBanhwTm9kZVxuICAgICAqL1xuXG4gICAgTWV0YU5vZGVQcm92aWRlci5vdmVybGF5cyA9IGZ1bmN0aW9uIG92ZXJsYXlzKG5vZGUpIHtcbiAgICAgICAgdmFyIG1ldGEgPSBub2RlLmdldE1ldGFkYXRhKCk7XG4gICAgICAgIHZhciBvdmVybGF5cyA9IFtdO1xuXG4gICAgICAgIC8vIFNIQVJFU1xuICAgICAgICBpZiAobWV0YS5oYXMoJ3dvcmtzcGFjZXNfc2hhcmVzJykpIHtcbiAgICAgICAgICAgIHZhciB3c1Jvb3QgPSBtZXRhLmdldCgnd3Nfcm9vdCcpO1xuICAgICAgICAgICAgbWV0YS5zZXQoJ3B5ZGlvX2lzX3NoYXJlZCcsIFwidHJ1ZVwiKTtcbiAgICAgICAgICAgIG1ldGEuc2V0KCdweWRpb19zaGFyZXMnLCBKU09OLnN0cmluZ2lmeShtZXRhLmdldCgnd29ya3NwYWNlc19zaGFyZXMnKSkpO1xuICAgICAgICAgICAgaWYgKCF3c1Jvb3QpIHtcbiAgICAgICAgICAgICAgICBvdmVybGF5cy5wdXNoKCdtZGkgbWRpLXNoYXJlLXZhcmlhbnQnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIW5vZGUuaXNMZWFmKCkpIHtcbiAgICAgICAgICAgICAgICBtZXRhLnNldCgnZm9udGljb24nLCAnZm9sZGVyLXN0YXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdBVENIRVNcbiAgICAgICAgaWYgKG1ldGEuaGFzKCd1c2VyX3N1YnNjcmlwdGlvbnMnKSkge1xuICAgICAgICAgICAgdmFyIHN1YnMgPSBtZXRhLmdldCgndXNlcl9zdWJzY3JpcHRpb25zJyk7XG4gICAgICAgICAgICB2YXIgcmVhZCA9IHN1YnMuaW5kZXhPZigncmVhZCcpO1xuICAgICAgICAgICAgdmFyIGNoYW5nZXMgPSBzdWJzLmluZGV4T2YoJ2NoYW5nZScpO1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gJyc7XG4gICAgICAgICAgICBpZiAocmVhZCAmJiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSAnTUVUQV9XQVRDSF9CT1RIJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVhZCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gJ01FVEFfV0FUQ0hfUkVBRCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9ICdNRVRBX1dBVENIX0NIQU5HRVMnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbWV0YS5zZXQoJ21ldGFfd2F0Y2hlZCcsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBvdmVybGF5cy5wdXNoKCdtZGkgbWRpLXJzcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQk9PS01BUktTXG4gICAgICAgIGlmIChtZXRhLmhhcygnYm9va21hcmsnKSkge1xuICAgICAgICAgICAgbWV0YS5zZXQoJ2FqeHBfYm9va21hcmtlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICBvdmVybGF5cy5wdXNoKCdtZGkgbWRpLWJvb2ttYXJrLW91dGxpbmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExPQ0tTXG4gICAgICAgIGlmIChtZXRhLmhhcygnY29udGVudF9sb2NrJykpIHtcbiAgICAgICAgICAgIHZhciBsb2NrVXNlciA9IG1ldGEuZ2V0KCdjb250ZW50X2xvY2snKTtcbiAgICAgICAgICAgIG92ZXJsYXlzLnB1c2goJ21kaSBtZGktbG9jay1vdXRsaW5lJyk7XG4gICAgICAgICAgICBtZXRhLnNldCgnc2xfbG9ja2VkJywgJ3RydWUnKTtcbiAgICAgICAgICAgIGlmIChweWRpbyAmJiBweWRpby51c2VyICYmIGxvY2tVc2VyID09PSBweWRpby51c2VyLmlkKSB7XG4gICAgICAgICAgICAgICAgbWV0YS5zZXQoJ3NsX215bG9jaycsICd0cnVlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3ZlcmxheXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBtZXRhLnNldCgnb3ZlcmxheV9jbGFzcycsIG92ZXJsYXlzLmpvaW4oJywnKSk7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5zZXRNZXRhZGF0YShtZXRhKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIE1ldGFOb2RlUHJvdmlkZXI7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBNZXRhTm9kZVByb3ZpZGVyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9sYW5nT2JzZXJ2YWJsZSA9IHJlcXVpcmUoJy4uL2xhbmcvT2JzZXJ2YWJsZScpO1xuXG52YXIgX2xhbmdPYnNlcnZhYmxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdPYnNlcnZhYmxlKTtcblxudmFyIF9sYW5nTG9nZ2VyID0gcmVxdWlyZSgnLi4vbGFuZy9Mb2dnZXInKTtcblxudmFyIF9sYW5nTG9nZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xhbmdMb2dnZXIpO1xuXG52YXIgX0FqeHBOb2RlID0gcmVxdWlyZSgnLi9BanhwTm9kZScpO1xuXG52YXIgX0FqeHBOb2RlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FqeHBOb2RlKTtcblxudmFyIF91dGlsTGFuZ1V0aWxzID0gcmVxdWlyZSgnLi4vdXRpbC9MYW5nVXRpbHMnKTtcblxudmFyIF91dGlsTGFuZ1V0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxMYW5nVXRpbHMpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMgPSByZXF1aXJlKCcuLi91dGlsL1BhdGhVdGlscycpO1xuXG52YXIgX3V0aWxQYXRoVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbFBhdGhVdGlscyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpID0gcmVxdWlyZSgnLi4vaHR0cC9QeWRpb0FwaScpO1xuXG52YXIgX2h0dHBQeWRpb0FwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwUHlkaW9BcGkpO1xuXG52YXIgX21vZGVsTWV0YU5vZGVQcm92aWRlciA9IHJlcXVpcmUoJy4uL21vZGVsL01ldGFOb2RlUHJvdmlkZXInKTtcblxudmFyIF9tb2RlbE1ldGFOb2RlUHJvdmlkZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbW9kZWxNZXRhTm9kZVByb3ZpZGVyKTtcblxuLyoqXG4gKiBGdWxsIGNvbnRhaW5lciBvZiB0aGUgZGF0YSB0cmVlLiBDb250YWlucyB0aGUgU2VsZWN0aW9uTW9kZWwgYXMgd2VsbC5cbiAqL1xuXG52YXIgUHlkaW9EYXRhTW9kZWwgPSAoZnVuY3Rpb24gKF9PYnNlcnZhYmxlKSB7XG5cdF9pbmhlcml0cyhQeWRpb0RhdGFNb2RlbCwgX09ic2VydmFibGUpO1xuXG5cdC8qKlxuICAqIENvbnN0cnVjdG9yXG4gICAgICogPiBXYXJuaW5nLCBldmVudHMgYXJlIG5vdyBMT0NBTCBieSBkZWZhdWx0XG4gICovXG5cblx0ZnVuY3Rpb24gUHlkaW9EYXRhTW9kZWwoKSB7XG5cdFx0dmFyIGxvY2FsRXZlbnRzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGFyZ3VtZW50c1swXTtcblxuXHRcdF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQeWRpb0RhdGFNb2RlbCk7XG5cblx0XHRfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuXHRcdHRoaXMuX2N1cnJlbnRSZXAgPSAnLyc7XG5cdFx0dGhpcy5fc2VsZWN0ZWROb2RlcyA9IFtdO1xuXHRcdHRoaXMuX2JFbXB0eSA9IHRydWU7XG5cdFx0dGhpcy5fZ2xvYmFsRXZlbnRzID0gIWxvY2FsRXZlbnRzO1xuXG5cdFx0dGhpcy5fYkZpbGUgPSBmYWxzZTtcblx0XHR0aGlzLl9iRGlyID0gZmFsc2U7XG5cdFx0dGhpcy5faXNSZWN5Y2xlID0gZmFsc2U7XG5cblx0XHR0aGlzLl9wZW5kaW5nU2VsZWN0aW9uID0gbnVsbDtcblx0XHR0aGlzLl9zZWxlY3Rpb25Tb3VyY2UgPSB7fTtcblxuXHRcdHRoaXMuX3Jvb3ROb2RlID0gbnVsbDtcblx0fVxuXG5cdFB5ZGlvRGF0YU1vZGVsLlJlbW90ZURhdGFNb2RlbEZhY3RvcnkgPSBmdW5jdGlvbiBSZW1vdGVEYXRhTW9kZWxGYWN0b3J5KHByb3ZpZGVyUHJvcGVydGllcykge1xuXHRcdHZhciByb290TGFiZWwgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyAnJyA6IGFyZ3VtZW50c1sxXTtcblxuXHRcdHZhciBkYXRhTW9kZWwgPSBuZXcgUHlkaW9EYXRhTW9kZWwodHJ1ZSk7XG5cdFx0dmFyIHJOb2RlUHJvdmlkZXIgPSBuZXcgX21vZGVsTWV0YU5vZGVQcm92aWRlcjJbJ2RlZmF1bHQnXShwcm92aWRlclByb3BlcnRpZXMpO1xuXHRcdGRhdGFNb2RlbC5zZXRBanhwTm9kZVByb3ZpZGVyKHJOb2RlUHJvdmlkZXIpO1xuXHRcdHZhciByb290Tm9kZSA9IG5ldyBfQWp4cE5vZGUyWydkZWZhdWx0J10oXCIvXCIsIGZhbHNlLCByb290TGFiZWwsICcnLCByTm9kZVByb3ZpZGVyKTtcblx0XHRkYXRhTW9kZWwuc2V0Um9vdE5vZGUocm9vdE5vZGUpO1xuXHRcdHJldHVybiBkYXRhTW9kZWw7XG5cdH07XG5cblx0LyoqXG4gICogU2V0cyB0aGUgZGF0YSBzb3VyY2UgdGhhdCB3aWxsIGZlZWQgdGhlIG5vZGVzIHdpdGggY2hpbGRyZW4uXG4gICogQHBhcmFtIGlBanhwTm9kZVByb3ZpZGVyIElBanhwTm9kZVByb3ZpZGVyXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnNldEFqeHBOb2RlUHJvdmlkZXIgPSBmdW5jdGlvbiBzZXRBanhwTm9kZVByb3ZpZGVyKGlBanhwTm9kZVByb3ZpZGVyKSB7XG5cdFx0dGhpcy5faUFqeHBOb2RlUHJvdmlkZXIgPSBpQWp4cE5vZGVQcm92aWRlcjtcblx0fTtcblxuXHQvKipcbiAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgZGF0YSBzb3VyY2UgcHJvdmlkZXJcbiAgKiBAcmV0dXJuIElBanhwTm9kZVByb3ZpZGVyXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmdldEFqeHBOb2RlUHJvdmlkZXIgPSBmdW5jdGlvbiBnZXRBanhwTm9kZVByb3ZpZGVyKCkge1xuXHRcdHJldHVybiB0aGlzLl9pQWp4cE5vZGVQcm92aWRlcjtcblx0fTtcblxuXHQvKipcbiAgKiBDaGFuZ2VzIHRoZSBjdXJyZW50IGNvbnRleHQgbm9kZS5cbiAgKiBAcGFyYW0gYWp4cE5vZGUgQWp4cE5vZGUgVGFyZ2V0IG5vZGUsIGVpdGhlciBhbiBleGlzdGluZyBvbmUgb3IgYSBmYWtlIG9uZSBjb250YWluaW5nIHRoZSB0YXJnZXQgcGFydC5cbiAgKiBAcGFyYW0gZm9yY2VSZWxvYWQgQm9vbGVhbiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIG5vZGUgd2lsbCBiZSByZWxvYWRlZCBldmVuIGlmIGFscmVhZHkgbG9hZGVkLlxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5yZXF1aXJlQ29udGV4dENoYW5nZSA9IGZ1bmN0aW9uIHJlcXVpcmVDb250ZXh0Q2hhbmdlKGFqeHBOb2RlKSB7XG5cdFx0dmFyIF90aGlzID0gdGhpcztcblxuXHRcdHZhciBmb3JjZVJlbG9hZCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG5cdFx0aWYgKGFqeHBOb2RlID09PSBudWxsKSByZXR1cm47XG5cdFx0dGhpcy5zZXRTZWxlY3RlZE5vZGVzKFtdKTtcblx0XHR2YXIgcGF0aCA9IGFqeHBOb2RlLmdldFBhdGgoKTtcblx0XHRpZiAoKHBhdGggPT09IFwiXCIgfHwgcGF0aCA9PT0gXCIvXCIpICYmIGFqeHBOb2RlICE9PSB0aGlzLl9yb290Tm9kZSkge1xuXHRcdFx0YWp4cE5vZGUgPSB0aGlzLl9yb290Tm9kZTtcblx0XHR9XG5cdFx0dmFyIHBhZ2luYXRpb25QYWdlID0gbnVsbDtcblx0XHRpZiAoYWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5oYXMoJ3BhZ2luYXRpb25EYXRhJykgJiYgYWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3BhZ2luYXRpb25EYXRhJykuaGFzKCduZXdfcGFnZScpICYmIGFqeHBOb2RlLmdldE1ldGFkYXRhKCkuZ2V0KCdwYWdpbmF0aW9uRGF0YScpLmdldCgnbmV3X3BhZ2UnKSAhPT0gYWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3BhZ2luYXRpb25EYXRhJykuZ2V0KCdjdXJyZW50JykpIHtcblx0XHRcdHBhZ2luYXRpb25QYWdlID0gYWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3BhZ2luYXRpb25EYXRhJykuZ2V0KCduZXdfcGFnZScpO1xuXHRcdFx0Zm9yY2VSZWxvYWQgPSB0cnVlO1xuXHRcdH1cblx0XHRpZiAoYWp4cE5vZGUgIT0gdGhpcy5fcm9vdE5vZGUgJiYgKCFhanhwTm9kZS5nZXRQYXJlbnQoKSB8fCBhanhwTm9kZS5mYWtlKSkge1xuXHRcdFx0Ly8gRmluZCBpbiBhcmJvIG9yIGJ1aWxkIGZha2UgYXJib1xuXHRcdFx0dmFyIGZha2VOb2RlcyA9IFtdO1xuXHRcdFx0YWp4cE5vZGUgPSBhanhwTm9kZS5maW5kSW5BcmJvKHRoaXMuX3Jvb3ROb2RlLCBmYWtlTm9kZXMpO1xuXHRcdFx0aWYgKGZha2VOb2Rlcy5sZW5ndGgpIHtcblx0XHRcdFx0dmFyIF9yZXQgPSAoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciBmaXJzdEZha2UgPSBmYWtlTm9kZXMuc2hpZnQoKTtcblx0XHRcdFx0XHRmaXJzdEZha2Uub2JzZXJ2ZU9uY2UoXCJmaXJzdF9sb2FkXCIsIChmdW5jdGlvbiAoZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5yZXF1aXJlQ29udGV4dENoYW5nZShhanhwTm9kZSk7XG5cdFx0XHRcdFx0fSkuYmluZChfdGhpcykpO1xuXHRcdFx0XHRcdGZpcnN0RmFrZS5vYnNlcnZlT25jZShcImVycm9yXCIsIChmdW5jdGlvbiAobWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0X2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IobWVzc2FnZSk7XG5cdFx0XHRcdFx0XHRmaXJzdEZha2Uubm90aWZ5KFwibm9kZV9yZW1vdmVkXCIpO1xuXHRcdFx0XHRcdFx0dmFyIHBhcmVudCA9IGZpcnN0RmFrZS5nZXRQYXJlbnQoKTtcblx0XHRcdFx0XHRcdHBhcmVudC5yZW1vdmVDaGlsZChmaXJzdEZha2UpO1xuXHRcdFx0XHRcdFx0Ly9kZWxldGUoZmlyc3RGYWtlKTtcblx0XHRcdFx0XHRcdHRoaXMucmVxdWlyZUNvbnRleHRDaGFuZ2UocGFyZW50KTtcblx0XHRcdFx0XHR9KS5iaW5kKF90aGlzKSk7XG5cdFx0XHRcdFx0X3RoaXMucHVibGlzaChcImNvbnRleHRfbG9hZGluZ1wiKTtcblx0XHRcdFx0XHRmaXJzdEZha2UubG9hZChfdGhpcy5faUFqeHBOb2RlUHJvdmlkZXIpO1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHR2OiB1bmRlZmluZWRcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KSgpO1xuXG5cdFx0XHRcdGlmICh0eXBlb2YgX3JldCA9PT0gJ29iamVjdCcpIHJldHVybiBfcmV0LnY7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGFqeHBOb2RlLm9ic2VydmVPbmNlKFwibG9hZGVkXCIsIChmdW5jdGlvbiAoKSB7XG5cdFx0XHR0aGlzLnNldENvbnRleHROb2RlKGFqeHBOb2RlLCB0cnVlKTtcblx0XHRcdHRoaXMucHVibGlzaChcImNvbnRleHRfbG9hZGVkXCIpO1xuXHRcdFx0aWYgKHRoaXMuZ2V0UGVuZGluZ1NlbGVjdGlvbigpKSB7XG5cdFx0XHRcdHZhciBzZWxQYXRoID0gYWp4cE5vZGUuZ2V0UGF0aCgpICsgKGFqeHBOb2RlLmdldFBhdGgoKSA9PSBcIi9cIiA/IFwiXCIgOiBcIi9cIikgKyB0aGlzLmdldFBlbmRpbmdTZWxlY3Rpb24oKTtcblx0XHRcdFx0dmFyIHNlbE5vZGUgPSBhanhwTm9kZS5maW5kQ2hpbGRCeVBhdGgoc2VsUGF0aCk7XG5cdFx0XHRcdGlmIChzZWxOb2RlKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRTZWxlY3RlZE5vZGVzKFtzZWxOb2RlXSwgdGhpcyk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aWYgKGFqeHBOb2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwicGFnaW5hdGlvbkRhdGFcIikgJiYgYXJndW1lbnRzLmxlbmd0aCA8IDMpIHtcblx0XHRcdFx0XHRcdHZhciBuZXdQYWdlID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0dmFyIGN1cnJlbnRQYWdlID0gYWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKS5nZXQoXCJjdXJyZW50XCIpO1xuXHRcdFx0XHRcdFx0dGhpcy5sb2FkUGF0aEluZm9TeW5jKHNlbFBhdGgsIGZ1bmN0aW9uIChmb3VuZE5vZGUpIHtcblx0XHRcdFx0XHRcdFx0bmV3UGFnZSA9IGZvdW5kTm9kZS5nZXRNZXRhZGF0YSgpLmdldChcInBhZ2VfcG9zaXRpb25cIik7XG5cdFx0XHRcdFx0XHR9LCB7IHBhZ2VfcG9zaXRpb246ICd0cnVlJyB9KTtcblx0XHRcdFx0XHRcdGlmIChuZXdQYWdlICYmIG5ld1BhZ2UgIT09IGN1cnJlbnRQYWdlKSB7XG5cdFx0XHRcdFx0XHRcdGFqeHBOb2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwicGFnaW5hdGlvbkRhdGFcIikuc2V0KFwibmV3X3BhZ2VcIiwgbmV3UGFnZSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMucmVxdWlyZUNvbnRleHRDaGFuZ2UoYWp4cE5vZGUsIHRydWUsIHRydWUpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuY2xlYXJQZW5kaW5nU2VsZWN0aW9uKCk7XG5cdFx0XHR9XG5cdFx0fSkuYmluZCh0aGlzKSk7XG5cdFx0YWp4cE5vZGUub2JzZXJ2ZU9uY2UoXCJlcnJvclwiLCAoZnVuY3Rpb24gKG1lc3NhZ2UpIHtcblx0XHRcdF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmVycm9yKG1lc3NhZ2UpO1xuXHRcdFx0dGhpcy5wdWJsaXNoKFwiY29udGV4dF9sb2FkZWRcIik7XG5cdFx0fSkuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy5wdWJsaXNoKFwiY29udGV4dF9sb2FkaW5nXCIpO1xuXHRcdHRyeSB7XG5cdFx0XHRpZiAoZm9yY2VSZWxvYWQpIHtcblx0XHRcdFx0aWYgKHBhZ2luYXRpb25QYWdlKSB7XG5cdFx0XHRcdFx0YWp4cE5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3BhZ2luYXRpb25EYXRhJykuc2V0KCdjdXJyZW50JywgcGFnaW5hdGlvblBhZ2UpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFqeHBOb2RlLnJlbG9hZCh0aGlzLl9pQWp4cE5vZGVQcm92aWRlciwgdHJ1ZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRhanhwTm9kZS5sb2FkKHRoaXMuX2lBanhwTm9kZVByb3ZpZGVyKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHR0aGlzLnB1Ymxpc2goXCJjb250ZXh0X2xvYWRlZFwiKTtcblx0XHR9XG5cdH07XG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnJlcXVpcmVOb2RlUmVsb2FkID0gZnVuY3Rpb24gcmVxdWlyZU5vZGVSZWxvYWQobm9kZU9yUGF0aCwgY29tcGxldGVDYWxsYmFjaykge1xuXHRcdGlmIChub2RlT3JQYXRoIGluc3RhbmNlb2YgU3RyaW5nKSB7XG5cdFx0XHRub2RlT3JQYXRoID0gbmV3IF9BanhwTm9kZTJbJ2RlZmF1bHQnXShub2RlT3JQYXRoKTtcblx0XHR9XG5cdFx0dmFyIG9uQ29tcGxldGUgPSBudWxsO1xuXHRcdGlmICh0aGlzLl9zZWxlY3RlZE5vZGVzLmxlbmd0aCkge1xuXHRcdFx0dmFyIGZvdW5kID0gLTE7XG5cdFx0XHR0aGlzLl9zZWxlY3RlZE5vZGVzLm1hcChmdW5jdGlvbiAobm9kZSwga2V5KSB7XG5cdFx0XHRcdGlmIChub2RlLmdldFBhdGgoKSA9PT0gbm9kZU9yUGF0aC5nZXRQYXRoKCkpIGZvdW5kID0ga2V5O1xuXHRcdFx0fSk7XG5cdFx0XHRpZiAoZm91bmQgIT09IC0xKSB7XG5cdFx0XHRcdC8vIE1BS0UgU1VSRSBTRUxFQ1RJT04gSVMgT0sgQUZURVIgUkVMT0FEXG5cdFx0XHRcdHRoaXMuX3NlbGVjdGVkTm9kZXMgPSBfdXRpbExhbmdVdGlsczJbJ2RlZmF1bHQnXS5hcnJheVdpdGhvdXQodGhpcy5fc2VsZWN0ZWROb2RlcywgZm91bmQpO1xuXHRcdFx0XHR0aGlzLnB1Ymxpc2goXCJzZWxlY3Rpb25fY2hhbmdlZFwiLCB0aGlzKTtcblx0XHRcdFx0b25Db21wbGV0ZSA9IChmdW5jdGlvbiAobmV3Tm9kZSkge1xuXHRcdFx0XHRcdHRoaXMuX3NlbGVjdGVkTm9kZXMucHVzaChuZXdOb2RlKTtcblx0XHRcdFx0XHR0aGlzLl9zZWxlY3Rpb25Tb3VyY2UgPSB7fTtcblx0XHRcdFx0XHR0aGlzLnB1Ymxpc2goXCJzZWxlY3Rpb25fY2hhbmdlZFwiLCB0aGlzKTtcblx0XHRcdFx0XHRpZiAoY29tcGxldGVDYWxsYmFjaykgY29tcGxldGVDYWxsYmFjayhuZXdOb2RlKTtcblx0XHRcdFx0fSkuYmluZCh0aGlzKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy5faUFqeHBOb2RlUHJvdmlkZXIucmVmcmVzaE5vZGVBbmRSZXBsYWNlKG5vZGVPclBhdGgsIG9uQ29tcGxldGUpO1xuXHR9O1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5sb2FkUGF0aEluZm9TeW5jID0gZnVuY3Rpb24gbG9hZFBhdGhJbmZvU3luYyhwYXRoLCBjYWxsYmFjaykge1xuXHRcdHZhciBhZGRpdGlvbmFsUGFyYW1ldGVycyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzJdO1xuXG5cdFx0dGhpcy5faUFqeHBOb2RlUHJvdmlkZXIubG9hZExlYWZOb2RlU3luYyhuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKHBhdGgpLCBjYWxsYmFjaywgZmFsc2UsIGFkZGl0aW9uYWxQYXJhbWV0ZXJzKTtcblx0fTtcblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUubG9hZFBhdGhJbmZvQXN5bmMgPSBmdW5jdGlvbiBsb2FkUGF0aEluZm9Bc3luYyhwYXRoLCBjYWxsYmFjaykge1xuXHRcdHRoaXMuX2lBanhwTm9kZVByb3ZpZGVyLmxvYWRMZWFmTm9kZVN5bmMobmV3IF9BanhwTm9kZTJbJ2RlZmF1bHQnXShwYXRoKSwgY2FsbGJhY2ssIHRydWUpO1xuXHR9O1xuXG5cdC8qKlxuICAqIFNldHMgdGhlIHJvb3Qgb2YgdGhlIGRhdGEgc3RvcmVcbiAgKiBAcGFyYW0gYWp4cFJvb3ROb2RlIEFqeHBOb2RlIFRoZSBwYXJlbnQgbm9kZVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5zZXRSb290Tm9kZSA9IGZ1bmN0aW9uIHNldFJvb3ROb2RlKGFqeHBSb290Tm9kZSkge1xuXHRcdHRoaXMuX3Jvb3ROb2RlID0gYWp4cFJvb3ROb2RlO1xuXHRcdHRoaXMuX3Jvb3ROb2RlLnNldFJvb3QoKTtcblx0XHR0aGlzLl9yb290Tm9kZS5vYnNlcnZlKFwiY2hpbGRfYWRkZWRcIiwgZnVuY3Rpb24gKGMpIHtcblx0XHRcdC8vY29uc29sZS5sb2coYyk7XG5cdFx0fSk7XG5cdFx0dGhpcy5wdWJsaXNoKFwicm9vdF9ub2RlX2NoYW5nZWRcIiwgdGhpcy5fcm9vdE5vZGUpO1xuXHRcdHRoaXMuc2V0Q29udGV4dE5vZGUodGhpcy5fcm9vdE5vZGUpO1xuXHR9O1xuXG5cdC8qKlxuICAqIEdldHMgdGhlIGN1cnJlbnQgcm9vdCBub2RlXG4gICogQHJldHVybnMgQWp4cE5vZGVcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuZ2V0Um9vdE5vZGUgPSBmdW5jdGlvbiBnZXRSb290Tm9kZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fcm9vdE5vZGU7XG5cdH07XG5cblx0LyoqXG4gICogU2V0cyB0aGUgY3VycmVudCBjb250ZXh0IG5vZGVcbiAgKiBAcGFyYW0gYWp4cERhdGFOb2RlIEFqeHBOb2RlXG4gICogQHBhcmFtIGZvcmNlRXZlbnQgQm9vbGVhbiBJZiBzZXQgdG8gdHJ1ZSwgZXZlbnQgd2lsbCBiZSB0cmlnZ2VyZWQgZXZlbiBpZiB0aGUgY3VycmVudCBub2RlIGlzIGFscmVhZHkgdGhlIHNhbWUuXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnNldENvbnRleHROb2RlID0gZnVuY3Rpb24gc2V0Q29udGV4dE5vZGUoYWp4cERhdGFOb2RlLCBmb3JjZUV2ZW50KSB7XG5cdFx0aWYgKHRoaXMuX2NvbnRleHROb2RlICYmIHRoaXMuX2NvbnRleHROb2RlID09IGFqeHBEYXRhTm9kZSAmJiB0aGlzLl9jdXJyZW50UmVwID09IGFqeHBEYXRhTm9kZS5nZXRQYXRoKCkgJiYgIWZvcmNlRXZlbnQpIHtcblx0XHRcdHJldHVybjsgLy8gTm8gY2hhbmdlc1xuXHRcdH1cblx0XHRpZiAoIWFqeHBEYXRhTm9kZSkgcmV0dXJuO1xuXHRcdGlmICh0aGlzLl9jb250ZXh0Tm9kZVJlcGxhY2VkT2JzZXJ2ZXIgJiYgdGhpcy5fY29udGV4dE5vZGUpIHtcblx0XHRcdHRoaXMuX2NvbnRleHROb2RlLnN0b3BPYnNlcnZpbmcoXCJub2RlX3JlcGxhY2VkXCIsIHRoaXMuX2NvbnRleHROb2RlUmVwbGFjZWRPYnNlcnZlcik7XG5cdFx0fVxuXHRcdHRoaXMuX2NvbnRleHROb2RlID0gYWp4cERhdGFOb2RlO1xuXHRcdHRoaXMuX2N1cnJlbnRSZXAgPSBhanhwRGF0YU5vZGUuZ2V0UGF0aCgpO1xuXHRcdHRoaXMucHVibGlzaChcImNvbnRleHRfY2hhbmdlZFwiLCBhanhwRGF0YU5vZGUpO1xuXHRcdGlmICghdGhpcy5fY29udGV4dE5vZGVSZXBsYWNlZE9ic2VydmVyKSB0aGlzLl9jb250ZXh0Tm9kZVJlcGxhY2VkT2JzZXJ2ZXIgPSB0aGlzLmNvbnRleHROb2RlUmVwbGFjZWQuYmluZCh0aGlzKTtcblx0XHRhanhwRGF0YU5vZGUub2JzZXJ2ZShcIm5vZGVfcmVwbGFjZWRcIiwgdGhpcy5fY29udGV4dE5vZGVSZXBsYWNlZE9ic2VydmVyKTtcblx0fTtcblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuY29udGV4dE5vZGVSZXBsYWNlZCA9IGZ1bmN0aW9uIGNvbnRleHROb2RlUmVwbGFjZWQobmV3Tm9kZSkge1xuXHRcdHRoaXMuc2V0Q29udGV4dE5vZGUobmV3Tm9kZSwgdHJ1ZSk7XG5cdH07XG5cblx0LyoqXG4gICpcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUucHVibGlzaCA9IGZ1bmN0aW9uIHB1Ymxpc2goZXZlbnROYW1lLCBvcHRpb25hbERhdGEpIHtcblx0XHR2YXIgYXJncyA9IFtdO1xuXHRcdGlmICh0aGlzLl9nbG9iYWxFdmVudHMpIHtcblx0XHRcdGlmICh3aW5kb3cucHlkaW8pIHtcblx0XHRcdFx0YXJncy5wdXNoKGV2ZW50TmFtZSk7XG5cdFx0XHRcdGlmIChvcHRpb25hbERhdGEpIGFyZ3MucHVzaChvcHRpb25hbERhdGEpO1xuXHRcdFx0XHR3aW5kb3cucHlkaW8uZmlyZS5hcHBseSh3aW5kb3cucHlkaW8sIGFyZ3MpO1xuXHRcdFx0fSBlbHNlIGlmIChkb2N1bWVudC5maXJlKSB7XG5cdFx0XHRcdGFyZ3MucHVzaChcInB5ZGlvOlwiICsgZXZlbnROYW1lKTtcblx0XHRcdFx0aWYgKG9wdGlvbmFsRGF0YSkgYXJncy5wdXNoKG9wdGlvbmFsRGF0YSk7XG5cdFx0XHRcdGRvY3VtZW50LmZpcmUuYXBwbHkoZG9jdW1lbnQsIGFyZ3MpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKG9wdGlvbmFsRGF0YSkge1xuXHRcdFx0XHRhcmdzID0gW2V2ZW50TmFtZSwgeyBtZW1vOiBvcHRpb25hbERhdGEgfV07XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRhcmdzID0gW2V2ZW50TmFtZV07XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm5vdGlmeS5hcHBseSh0aGlzLCBhcmdzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKG9wdGlvbmFsRGF0YSkge1xuXHRcdFx0XHRhcmdzID0gW2V2ZW50TmFtZSwgeyBtZW1vOiBvcHRpb25hbERhdGEgfV07XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRhcmdzID0gW2V2ZW50TmFtZV07XG5cdFx0XHR9XG5cdFx0XHR0aGlzLm5vdGlmeS5hcHBseSh0aGlzLCBhcmdzKTtcblx0XHR9XG5cdH07XG5cblx0LyoqXG4gICogR2V0IHRoZSBjdXJyZW50IGNvbnRleHQgbm9kZVxuICAqIEByZXR1cm5zIEFqeHBOb2RlXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmdldENvbnRleHROb2RlID0gZnVuY3Rpb24gZ2V0Q29udGV4dE5vZGUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2NvbnRleHROb2RlO1xuXHR9O1xuXG5cdC8qKlxuICAqIEFmdGVyIGEgY29weSBvciBtb3ZlIG9wZXJhdGlvbiwgbWFueSBub2RlcyBtYXkgaGF2ZSB0byBiZSByZWxvYWRlZFxuICAqIFRoaXMgZnVuY3Rpb24gdHJpZXMgdG8gcmVsb2FkIHRoZW0gaW4gdGhlIHJpZ2h0IG9yZGVyIGFuZCBpZiBuZWNlc3NhcnkuXG4gICogQHBhcmFtIG5vZGVzIEFqeHBOb2Rlc1tdIEFuIGFycmF5IG9mIG5vZGVzXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLm11bHRpcGxlTm9kZXNSZWxvYWQgPSBmdW5jdGlvbiBtdWx0aXBsZU5vZGVzUmVsb2FkKG5vZGVzKSB7XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIG5vZGVQYXRoT3JOb2RlID0gbm9kZXNbaV07XG5cdFx0XHR2YXIgbm9kZTtcblx0XHRcdGlmIChub2RlUGF0aE9yTm9kZSBpbnN0YW5jZW9mIFN0cmluZykge1xuXHRcdFx0XHRub2RlID0gbmV3IF9BanhwTm9kZTJbJ2RlZmF1bHQnXShub2RlUGF0aE9yTm9kZSk7XG5cdFx0XHRcdGlmIChub2RlLmdldFBhdGgoKSA9PSB0aGlzLl9yb290Tm9kZS5nZXRQYXRoKCkpIG5vZGUgPSB0aGlzLl9yb290Tm9kZTtlbHNlIG5vZGUgPSBub2RlLmZpbmRJbkFyYm8odGhpcy5fcm9vdE5vZGUsIFtdKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdG5vZGUgPSBub2RlUGF0aE9yTm9kZTtcblx0XHRcdH1cblx0XHRcdG5vZGVzW2ldID0gbm9kZTtcblx0XHR9XG5cdFx0dmFyIGNoaWxkcmVuID0gW107XG5cdFx0bm9kZXMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuXHRcdFx0aWYgKGEuaXNQYXJlbnRPZihiKSkge1xuXHRcdFx0XHRjaGlsZHJlbi5wdXNoKGIpO1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0XHRpZiAoYS5pc0NoaWxkT2YoYikpIHtcblx0XHRcdFx0Y2hpbGRyZW4ucHVzaChhKTtcblx0XHRcdFx0cmV0dXJuICsxO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fSk7XG5cdFx0Y2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjKSB7XG5cdFx0XHRub2RlcyA9IF91dGlsTGFuZ1V0aWxzMlsnZGVmYXVsdCddLmFycmF5V2l0aG91dChub2RlcywgYyk7XG5cdFx0fSk7XG5cdFx0bm9kZXMubWFwKHRoaXMucXVldWVOb2RlUmVsb2FkLmJpbmQodGhpcykpO1xuXHRcdHRoaXMubmV4dE5vZGVSZWxvYWRlcigpO1xuXHR9O1xuXG5cdC8qKlxuICAqIEFkZCBhIG5vZGUgdG8gdGhlIHF1ZXVlIG9mIG5vZGVzIHRvIHJlbG9hZC5cbiAgKiBAcGFyYW0gbm9kZSBBanhwTm9kZVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5xdWV1ZU5vZGVSZWxvYWQgPSBmdW5jdGlvbiBxdWV1ZU5vZGVSZWxvYWQobm9kZSkge1xuXHRcdGlmICghdGhpcy5xdWV1ZSkgdGhpcy5xdWV1ZSA9IFtdO1xuXHRcdGlmIChub2RlKSB7XG5cdFx0XHR0aGlzLnF1ZXVlLnB1c2gobm9kZSk7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuICAqIFF1ZXVlIHByb2Nlc3NvciBmb3IgdGhlIG5vZGVzIHRvIHJlbG9hZFxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5uZXh0Tm9kZVJlbG9hZGVyID0gZnVuY3Rpb24gbmV4dE5vZGVSZWxvYWRlcigpIHtcblx0XHRpZiAoIXRoaXMucXVldWUubGVuZ3RoKSB7XG5cdFx0XHR3aW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHR0aGlzLnB1Ymxpc2goXCJjb250ZXh0X2NoYW5nZWRcIiwgdGhpcy5fY29udGV4dE5vZGUpO1xuXHRcdFx0fSkuYmluZCh0aGlzKSwgMjAwKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dmFyIG5leHQgPSB0aGlzLnF1ZXVlLnNoaWZ0KCk7XG5cdFx0dmFyIG9ic2VydmVyID0gdGhpcy5uZXh0Tm9kZVJlbG9hZGVyLmJpbmQodGhpcyk7XG5cdFx0bmV4dC5vYnNlcnZlT25jZShcImxvYWRlZFwiLCBvYnNlcnZlcik7XG5cdFx0bmV4dC5vYnNlcnZlT25jZShcImVycm9yXCIsIG9ic2VydmVyKTtcblx0XHRpZiAobmV4dCA9PT0gdGhpcy5fY29udGV4dE5vZGUgfHwgbmV4dC5pc1BhcmVudE9mKHRoaXMuX2NvbnRleHROb2RlKSkge1xuXHRcdFx0dGhpcy5yZXF1aXJlQ29udGV4dENoYW5nZShuZXh0LCB0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bmV4dC5yZWxvYWQodGhpcy5faUFqeHBOb2RlUHJvdmlkZXIpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcbiAgKiBJbnNlcnQgYSBub2RlIHNvbWV3aGVyZSBpbiB0aGUgZGF0YW1vZGVsXG4gICogQHBhcmFtIG5vZGUgQWp4cE5vZGVcbiAgKiBAcGFyYW0gc2V0U2VsZWN0ZWRBZnRlckFkZCBib29sXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmFkZE5vZGUgPSBmdW5jdGlvbiBhZGROb2RlKG5vZGUpIHtcblx0XHR2YXIgc2V0U2VsZWN0ZWRBZnRlckFkZCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG5cdFx0Ly8gSWYgaXQgYWxyZWFkeSBleGlzdHMsIHJlcGxhY2UgaXRcblx0XHR2YXIgZXhpc3RpbmcgPSBub2RlLmZpbmRJbkFyYm8odGhpcy5nZXRSb290Tm9kZSgpLCB1bmRlZmluZWQpO1xuXHRcdGlmIChleGlzdGluZykge1xuXHRcdFx0ZXhpc3RpbmcucmVwbGFjZUJ5KG5vZGUsIFwib3ZlcnJpZGVcIik7XG5cdFx0XHRpZiAoc2V0U2VsZWN0ZWRBZnRlckFkZCAmJiB0aGlzLmdldENvbnRleHROb2RlKCkgPT09IGV4aXN0aW5nLmdldFBhcmVudCgpKSB7XG5cdFx0XHRcdHRoaXMuc2V0U2VsZWN0ZWROb2RlcyhbZXhpc3RpbmddLCB7fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dmFyIHBhcmVudEZha2UgPSBuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldERpcm5hbWUobm9kZS5nZXRQYXRoKCkpKTtcblx0XHR2YXIgcGFyZW50ID0gcGFyZW50RmFrZS5maW5kSW5BcmJvKHRoaXMuZ2V0Um9vdE5vZGUoKSwgdW5kZWZpbmVkKTtcblx0XHRpZiAoIXBhcmVudCAmJiBfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXREaXJuYW1lKG5vZGUuZ2V0UGF0aCgpKSA9PT0gXCJcIikge1xuXHRcdFx0cGFyZW50ID0gdGhpcy5nZXRSb290Tm9kZSgpO1xuXHRcdH1cblx0XHRpZiAocGFyZW50KSB7XG5cdFx0XHR2YXIgYWRkZWROb2RlID0gcGFyZW50LmFkZENoaWxkKG5vZGUpO1xuXHRcdFx0aWYgKGFkZGVkTm9kZSAmJiBzZXRTZWxlY3RlZEFmdGVyQWRkICYmIHRoaXMuZ2V0Q29udGV4dE5vZGUoKSA9PT0gcGFyZW50KSB7XG5cdFx0XHRcdHRoaXMuc2V0U2VsZWN0ZWROb2RlcyhbYWRkZWROb2RlXSwge30pO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblxuXHQvKipcbiAgKiBSZW1vdmUgYSBub2RlIGJ5IHBhdGggc29tZXdoZXJlXG4gICogQHBhcmFtIHBhdGggc3RyaW5nXG4gICogQHBhcmFtIGltVGltZSBpbnRlZ2VyfG51bGxcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUucmVtb3ZlTm9kZUJ5UGF0aCA9IGZ1bmN0aW9uIHJlbW92ZU5vZGVCeVBhdGgocGF0aCkge1xuXHRcdHZhciBpbVRpbWUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuXG5cdFx0dmFyIGZha2UgPSBuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKHBhdGgpO1xuXHRcdHZhciBuID0gZmFrZS5maW5kSW5BcmJvKHRoaXMuZ2V0Um9vdE5vZGUoKSwgdW5kZWZpbmVkKTtcblx0XHRpZiAobikge1xuXHRcdFx0aWYgKGltVGltZSAmJiBuLmdldE1ldGFkYXRhKCkgJiYgbi5nZXRNZXRhZGF0YSgpLmdldChcImFqeHBfaW1fdGltZVwiKSAmJiBwYXJzZUludChuLmdldE1ldGFkYXRhKCkuZ2V0KFwiYWp4cF9pbV90aW1lXCIpKSA+PSBpbVRpbWUpIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdFx0bi5nZXRQYXJlbnQoKS5yZW1vdmVDaGlsZChuKTtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG5cblx0LyoqXG4gICogVXBkYXRlIGEgbm9kZSBzb21ld2hlcmUgaW4gdGhlIGRhdGFtb2RlbFxuICAqIEBwYXJhbSBub2RlIEFqeHBOb2RlXG4gICogQHBhcmFtIHNldFNlbGVjdGVkQWZ0ZXJVcGRhdGUgYm9vbFxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS51cGRhdGVOb2RlID0gZnVuY3Rpb24gdXBkYXRlTm9kZShub2RlKSB7XG5cdFx0dmFyIHNldFNlbGVjdGVkQWZ0ZXJVcGRhdGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcblxuXHRcdHZhciBvcmlnaW5hbCA9IG5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJvcmlnaW5hbF9wYXRoXCIpO1xuXHRcdHZhciBmYWtlLCBuO1xuXHRcdGlmIChvcmlnaW5hbCAmJiBvcmlnaW5hbCAhPT0gbm9kZS5nZXRQYXRoKCkgJiYgX3V0aWxQYXRoVXRpbHMyWydkZWZhdWx0J10uZ2V0RGlybmFtZShvcmlnaW5hbCkgIT09IF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldERpcm5hbWUobm9kZS5nZXRQYXRoKCkpKSB7XG5cdFx0XHQvLyBOb2RlIHdhcyByZWFsbHkgbW92ZWQgdG8gYW5vdGhlciBmb2xkZXJcblx0XHRcdGZha2UgPSBuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKG9yaWdpbmFsKTtcblx0XHRcdG4gPSBmYWtlLmZpbmRJbkFyYm8odGhpcy5nZXRSb290Tm9kZSgpLCB1bmRlZmluZWQpO1xuXHRcdFx0aWYgKG4pIHtcblx0XHRcdFx0bi5nZXRQYXJlbnQoKS5yZW1vdmVDaGlsZChuKTtcblx0XHRcdH1cblx0XHRcdHZhciBwYXJlbnRGYWtlID0gbmV3IF9BanhwTm9kZTJbJ2RlZmF1bHQnXShfdXRpbFBhdGhVdGlsczJbJ2RlZmF1bHQnXS5nZXREaXJuYW1lKG5vZGUuZ2V0UGF0aCgpKSk7XG5cdFx0XHR2YXIgcGFyZW50ID0gcGFyZW50RmFrZS5maW5kSW5BcmJvKHRoaXMuZ2V0Um9vdE5vZGUoKSwgdW5kZWZpbmVkKTtcblx0XHRcdGlmICghcGFyZW50ICYmIF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldERpcm5hbWUobm9kZS5nZXRQYXRoKCkpID09PSBcIlwiKSBwYXJlbnQgPSB0aGlzLmdldFJvb3ROb2RlKCk7XG5cdFx0XHRpZiAocGFyZW50KSB7XG5cdFx0XHRcdG5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoXCJvcmlnaW5hbF9wYXRoXCIsIHVuZGVmaW5lZCk7XG5cdFx0XHRcdHBhcmVudC5hZGRDaGlsZChub2RlKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKG5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJvcmlnaW5hbF9wYXRoXCIpID09PSBcIi9cIiAmJiBub2RlLmdldFBhdGgoKSA9PT0gXCIvXCIpIHtcblx0XHRcdFx0biA9IHRoaXMuZ2V0Um9vdE5vZGUoKTtcblx0XHRcdFx0bi5yZXBsYWNlTWV0YWRhdGEobm9kZS5nZXRNZXRhZGF0YSgpKTtcblx0XHRcdFx0aWYgKHNldFNlbGVjdGVkQWZ0ZXJVcGRhdGUgJiYgdGhpcy5nZXRDb250ZXh0Tm9kZSgpID09PSBuKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRTZWxlY3RlZE5vZGVzKFtuXSwge30pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGZha2UgPSBuZXcgX0FqeHBOb2RlMlsnZGVmYXVsdCddKG9yaWdpbmFsKTtcblx0XHRcdG4gPSBmYWtlLmZpbmRJbkFyYm8odGhpcy5nZXRSb290Tm9kZSgpLCB1bmRlZmluZWQpO1xuXHRcdFx0aWYgKG4gJiYgIW4uaXNNb3JlUmVjZW50VGhhbihub2RlKSkge1xuXHRcdFx0XHRub2RlLl9pc0xvYWRlZCA9IG4uX2lzTG9hZGVkO1xuXHRcdFx0XHRuLnJlcGxhY2VCeShub2RlLCBcIm92ZXJyaWRlXCIpO1xuXHRcdFx0XHRpZiAoc2V0U2VsZWN0ZWRBZnRlclVwZGF0ZSAmJiB0aGlzLmdldENvbnRleHROb2RlKCkgPT09IG4uZ2V0UGFyZW50KCkpIHtcblx0XHRcdFx0XHR0aGlzLnNldFNlbGVjdGVkTm9kZXMoW25dLCB7fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0LyoqXG4gICogU2V0cyBhbiBhcnJheSBvZiBub2RlcyB0byBiZSBzZWxlY3RlZCBhZnRlciB0aGUgY29udGV4dCBpcyAocmUpbG9hZGVkXG4gICogQHBhcmFtIHNlbGVjdGlvbiBBanhwTm9kZVtdXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnNldFBlbmRpbmdTZWxlY3Rpb24gPSBmdW5jdGlvbiBzZXRQZW5kaW5nU2VsZWN0aW9uKHNlbGVjdGlvbikge1xuXHRcdHRoaXMuX3BlbmRpbmdTZWxlY3Rpb24gPSBzZWxlY3Rpb247XG5cdH07XG5cblx0LyoqXG4gICogR2V0cyB0aGUgYXJyYXkgb2Ygbm9kZXMgdG8gYmUgc2VsZWN0ZWQgYWZ0ZXIgdGhlIGNvbnRleHQgaXMgKHJlKWxvYWRlZFxuICAqIEByZXR1cm5zIEFqeHBOb2RlW11cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuZ2V0UGVuZGluZ1NlbGVjdGlvbiA9IGZ1bmN0aW9uIGdldFBlbmRpbmdTZWxlY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3BlbmRpbmdTZWxlY3Rpb247XG5cdH07XG5cblx0LyoqXG4gICogQ2xlYXJzIHRoZSBub2RlcyB0byBiZSBzZWxlY3RlZFxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5jbGVhclBlbmRpbmdTZWxlY3Rpb24gPSBmdW5jdGlvbiBjbGVhclBlbmRpbmdTZWxlY3Rpb24oKSB7XG5cdFx0dGhpcy5fcGVuZGluZ1NlbGVjdGlvbiA9IG51bGw7XG5cdH07XG5cblx0LyoqXG4gICogU2V0IGFuIGFycmF5IG9mIG5vZGVzIGFzIHRoZSBjdXJyZW50IHNlbGVjdGlvblxuICAqIEBwYXJhbSBhanhwRGF0YU5vZGVzIEFqeHBOb2RlW10gVGhlIG5vZGVzIHRvIHNlbGVjdFxuICAqIEBwYXJhbSBzb3VyY2UgU3RyaW5nIFRoZSBzb3VyY2Ugb2YgdGhpcyBzZWxlY3Rpb24gYWN0aW9uXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLnNldFNlbGVjdGVkTm9kZXMgPSBmdW5jdGlvbiBzZXRTZWxlY3RlZE5vZGVzKGFqeHBEYXRhTm9kZXMsIHNvdXJjZSkge1xuXHRcdGlmICh0aGlzLl9zZWxlY3RlZE5vZGVzLmxlbmd0aCA9PT0gYWp4cERhdGFOb2Rlcy5sZW5ndGgpIHtcblx0XHRcdGlmIChhanhwRGF0YU5vZGVzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR2YXIgZXF1YWwgPSB0cnVlO1xuXHRcdFx0Zm9yICh2YXIgayA9IDA7IGsgPCBhanhwRGF0YU5vZGVzLmxlbmd0aDsgaysrKSB7XG5cdFx0XHRcdGVxdWFsID0gZXF1YWwgJiYgYWp4cERhdGFOb2Rlc1trXSA9PT0gdGhpcy5fc2VsZWN0ZWROb2Rlc1trXTtcblx0XHRcdH1cblx0XHRcdGlmIChlcXVhbCkge1xuXHRcdFx0XHR3aW5kb3cucHlkaW8uZmlyZShcInNlbGVjdGlvbl9yZWxvYWRlZFwiLCB0aGlzKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIXNvdXJjZSkge1xuXHRcdFx0dGhpcy5fc2VsZWN0aW9uU291cmNlID0ge307XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3NlbGVjdGlvblNvdXJjZSA9IHNvdXJjZTtcblx0XHR9XG5cdFx0dGhpcy5fc2VsZWN0ZWROb2RlcyA9IGFqeHBEYXRhTm9kZXM7XG5cdFx0dGhpcy5fYkVtcHR5ID0gYWp4cERhdGFOb2RlcyAmJiBhanhwRGF0YU5vZGVzLmxlbmd0aCA/IGZhbHNlIDogdHJ1ZTtcblx0XHR0aGlzLl9iRmlsZSA9IHRoaXMuX2JEaXIgPSB0aGlzLl9pc1JlY3ljbGUgPSBmYWxzZTtcblx0XHRpZiAoIXRoaXMuX2JFbXB0eSkge1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBhanhwRGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHZhciBzZWxlY3RlZE5vZGUgPSBhanhwRGF0YU5vZGVzW2ldO1xuXHRcdFx0XHRpZiAoc2VsZWN0ZWROb2RlLmlzTGVhZigpKSB0aGlzLl9iRmlsZSA9IHRydWU7ZWxzZSB0aGlzLl9iRGlyID0gdHJ1ZTtcblx0XHRcdFx0aWYgKHNlbGVjdGVkTm9kZS5pc1JlY3ljbGUoKSkgdGhpcy5faXNSZWN5Y2xlID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy5wdWJsaXNoKFwic2VsZWN0aW9uX2NoYW5nZWRcIiwgdGhpcyk7XG5cdH07XG5cblx0LyoqXG4gICogR2V0cyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIG5vZGVzXG4gICogQHJldHVybnMgQWp4cE5vZGVbXVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5nZXRTZWxlY3RlZE5vZGVzID0gZnVuY3Rpb24gZ2V0U2VsZWN0ZWROb2RlcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VsZWN0ZWROb2Rlcztcblx0fTtcblxuXHQvKipcbiAgKiBHZXRzIHRoZSBzb3VyY2Ugb2YgdGhlIGxhc3Qgc2VsZWN0aW9uIGFjdGlvblxuICAqIEByZXR1cm5zIFN0cmluZ1xuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5nZXRTZWxlY3Rpb25Tb3VyY2UgPSBmdW5jdGlvbiBnZXRTZWxlY3Rpb25Tb3VyY2UoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlbGVjdGlvblNvdXJjZTtcblx0fTtcblxuXHQvKipcbiAgKiBNYW51YWxseSBzZXRzIHRoZSBzb3VyY2Ugb2YgdGhlIHNlbGVjdGlvblxuICAqIEBwYXJhbSBvYmplY3RcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuc2V0U2VsZWN0aW9uU291cmNlID0gZnVuY3Rpb24gc2V0U2VsZWN0aW9uU291cmNlKG9iamVjdCkge1xuXHRcdHRoaXMuX3NlbGVjdGlvblNvdXJjZSA9IG9iamVjdDtcblx0fTtcblxuXHQvKipcbiAgKiBTZWxlY3QgYWxsIHRoZSBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBjb250ZXh0IG5vZGVcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuc2VsZWN0QWxsID0gZnVuY3Rpb24gc2VsZWN0QWxsKCkge1xuXHRcdHZhciBub2RlcyA9IFtdO1xuXHRcdHZhciBjaGlsZHJlbk1hcCA9IHRoaXMuX2NvbnRleHROb2RlLmdldENoaWxkcmVuKCk7XG5cdFx0Y2hpbGRyZW5NYXAuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcblx0XHRcdG5vZGVzLnB1c2goY2hpbGQpO1xuXHRcdH0pO1xuXHRcdHRoaXMuc2V0U2VsZWN0ZWROb2Rlcyhub2RlcywgXCJkYXRhTW9kZWxcIik7XG5cdH07XG5cblx0LyoqXG4gICogV2hldGhlciB0aGUgc2VsZWN0aW9uIGlzIGVtcHR5XG4gICogQHJldHVybnMgQm9vbGVhblxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5pc0VtcHR5ID0gZnVuY3Rpb24gaXNFbXB0eSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VsZWN0ZWROb2RlcyA/IHRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoID09PSAwIDogdHJ1ZTtcblx0fTtcblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuaGFzUmVhZE9ubHkgPSBmdW5jdGlvbiBoYXNSZWFkT25seSgpIHtcblx0XHR2YXIgdGVzdCA9IGZhbHNlO1xuXHRcdHRyeSB7XG5cdFx0XHR0aGlzLl9zZWxlY3RlZE5vZGVzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHtcblx0XHRcdFx0aWYgKG5vZGUuaGFzTWV0YWRhdGFJbkJyYW5jaChcIm5vZGVfcmVhZG9ubHlcIiwgXCJ0cnVlXCIpKSB7XG5cdFx0XHRcdFx0dGVzdCA9IHRydWU7XG5cdFx0XHRcdFx0dGhyb3cgJGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGNhdGNoIChlKSB7fVxuXHRcdHJldHVybiB0ZXN0O1xuXHR9O1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5zZWxlY3Rpb25IYXNSb290Tm9kZSA9IGZ1bmN0aW9uIHNlbGVjdGlvbkhhc1Jvb3ROb2RlKCkge1xuXHRcdHZhciBmb3VuZCA9IGZhbHNlO1xuXHRcdHRyeSB7XG5cdFx0XHR0aGlzLl9zZWxlY3RlZE5vZGVzLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7XG5cdFx0XHRcdGlmIChlbC5pc1Jvb3QoKSkge1xuXHRcdFx0XHRcdGZvdW5kID0gdHJ1ZTtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSBjYXRjaCAoZSkge31cblx0XHRyZXR1cm4gZm91bmQ7XG5cdH07XG5cblx0LyoqXG4gICogV2hldGhlciB0aGUgc2VsZWN0aW9uIGlzIHVuaXF1ZVxuICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuaXNVbmlxdWUgPSBmdW5jdGlvbiBpc1VuaXF1ZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VsZWN0ZWROb2RlcyAmJiB0aGlzLl9zZWxlY3RlZE5vZGVzLmxlbmd0aCA9PT0gMTtcblx0fTtcblxuXHQvKipcbiAgKiBXaGV0aGVyIHRoZSBzZWxlY3Rpb24gaGFzIGEgZmlsZSBzZWxlY3RlZC5cbiAgKiBTaG91bGQgYmUgaGFzTGVhZlxuICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuaGFzRmlsZSA9IGZ1bmN0aW9uIGhhc0ZpbGUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2JGaWxlO1xuXHR9O1xuXG5cdC8qKlxuICAqIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBoYXMgYSBkaXIgc2VsZWN0ZWRcbiAgKiBAcmV0dXJucyBCb29sZWFuXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmhhc0RpciA9IGZ1bmN0aW9uIGhhc0RpcigpIHtcblx0XHRyZXR1cm4gdGhpcy5fYkRpcjtcblx0fTtcblxuXHQvKipcbiAgKiBXaGV0aGVyIHRoZSBjdXJyZW50IGNvbnRleHQgaXMgdGhlIHJlY3ljbGUgYmluXG4gICogQHJldHVybnMgQm9vbGVhblxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5pc1JlY3ljbGUgPSBmdW5jdGlvbiBpc1JlY3ljbGUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2lzUmVjeWNsZTtcblx0fTtcblxuXHQvKipcbiAgKiBXaGV0aGVyIHRoZSBzZWxlY3Rpb24gaGFzIG1vcmUgdGhhbiBvbmUgbm9kZSBzZWxlY3RlZFxuICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuaXNNdWx0aXBsZSA9IGZ1bmN0aW9uIGlzTXVsdGlwbGUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlbGVjdGVkTm9kZXMgJiYgdGhpcy5fc2VsZWN0ZWROb2Rlcy5sZW5ndGggPiAxO1xuXHR9O1xuXG5cdC8qKlxuICAqIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBoYXMgYSBmaWxlIHdpdGggb25lIG9mIHRoZSBtaW1lc1xuICAqIEBwYXJhbSBtaW1lVHlwZXMgQXJyYXkgQXJyYXkgb2YgbWltZSB0eXBlc1xuICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuaGFzTWltZSA9IGZ1bmN0aW9uIGhhc01pbWUobWltZVR5cGVzKSB7XG5cdFx0aWYgKG1pbWVUeXBlcy5sZW5ndGggPT09IDEgJiYgbWltZVR5cGVzWzBdID09PSBcIipcIikgcmV0dXJuIHRydWU7XG5cdFx0dmFyIGhhcyA9IGZhbHNlO1xuXHRcdG1pbWVUeXBlcy5tYXAoKGZ1bmN0aW9uIChtaW1lKSB7XG5cdFx0XHRpZiAoaGFzKSByZXR1cm47XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEFqeHBNaW1lVHlwZSh0aGlzLl9zZWxlY3RlZE5vZGVzW2ldKSA9PT0gbWltZSkge1xuXHRcdFx0XHRcdGhhcyA9IHRydWU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KS5iaW5kKHRoaXMpKTtcblx0XHRyZXR1cm4gaGFzO1xuXHR9O1xuXG5cdC8qKlxuICAqIEdldCBhbGwgc2VsZWN0ZWQgZmlsZW5hbWVzIGFzIGFuIGFycmF5LlxuICAqIEBwYXJhbSBzZXBhcmF0b3IgU3RyaW5nIElzIGEgc2VwYXJhdG9yLCB3aWxsIHJldHVybiBhIHN0cmluZyBqb2luZWRcbiAgKiBAcmV0dXJucyBBcnJheXxTdHJpbmd8Ym9vbFxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5nZXRGaWxlTmFtZXMgPSBmdW5jdGlvbiBnZXRGaWxlTmFtZXMoc2VwYXJhdG9yKSB7XG5cdFx0aWYgKCF0aGlzLl9zZWxlY3RlZE5vZGVzLmxlbmd0aCkge1xuXHRcdFx0YWxlcnQoJ1BsZWFzZSBzZWxlY3QgYSBmaWxlIScpO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHR2YXIgdG1wID0gbmV3IEFycmF5KHRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoKTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHRtcFtpXSA9IHRoaXMuX3NlbGVjdGVkTm9kZXNbaV0uZ2V0UGF0aCgpO1xuXHRcdH1cblx0XHRpZiAoc2VwYXJhdG9yKSB7XG5cdFx0XHRyZXR1cm4gdG1wLmpvaW4oc2VwYXJhdG9yKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRtcDtcblx0XHR9XG5cdH07XG5cblx0LyoqXG4gICogR2V0IGFsbCB0aGUgZmlsZW5hbWVzIG9mIHRoZSBjdXJyZW50IGNvbnRleHQgbm9kZSBjaGlsZHJlblxuICAqIEBwYXJhbSBzZXBhcmF0b3IgU3RyaW5nIElmIHBhc3NlZCwgd2lsbCBqb2luIHRoZSBhcnJheSBhcyBhIHN0cmluZ1xuICAqIEByZXR1cm4gQXJyYXl8U3RyaW5nfGJvb2xcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuZ2V0Q29udGV4dEZpbGVOYW1lcyA9IGZ1bmN0aW9uIGdldENvbnRleHRGaWxlTmFtZXMoc2VwYXJhdG9yKSB7XG5cdFx0dmFyIGFsbEl0ZW1zID0gdGhpcy5fY29udGV4dE5vZGUuZ2V0Q2hpbGRyZW4oKTtcblx0XHRpZiAoIWFsbEl0ZW1zLmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHR2YXIgbmFtZXMgPSBbXTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGFsbEl0ZW1zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRuYW1lcy5wdXNoKF91dGlsUGF0aFV0aWxzMlsnZGVmYXVsdCddLmdldEJhc2VuYW1lKGFsbEl0ZW1zW2ldLmdldFBhdGgoKSkpO1xuXHRcdH1cblx0XHRpZiAoc2VwYXJhdG9yKSB7XG5cdFx0XHRyZXR1cm4gbmFtZXMuam9pbihzZXBhcmF0b3IpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gbmFtZXM7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuICAqIFdoZXRoZXIgdGhlIGNvbnRleHQgbm9kZSBoYXMgYSBjaGlsZCB3aXRoIHRoaXMgYmFzZW5hbWVcbiAgKiBAcGFyYW0gbmV3RmlsZU5hbWUgU3RyaW5nIFRoZSBuYW1lIHRvIGNoZWNrXG4gICogQHJldHVybnMgQm9vbGVhblxuICAqIEBwYXJhbSBsb2NhbFxuICAqIEBwYXJhbSBjb250ZXh0Tm9kZVxuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5maWxlTmFtZUV4aXN0cyA9IGZ1bmN0aW9uIGZpbGVOYW1lRXhpc3RzKG5ld0ZpbGVOYW1lLCBsb2NhbCwgY29udGV4dE5vZGUpIHtcblx0XHRpZiAoIWNvbnRleHROb2RlKSB7XG5cdFx0XHRjb250ZXh0Tm9kZSA9IHRoaXMuX2NvbnRleHROb2RlO1xuXHRcdH1cblx0XHRpZiAobG9jYWwpIHtcblx0XHRcdHZhciB0ZXN0ID0gKGNvbnRleHROb2RlLmdldFBhdGgoKSA9PT0gXCIvXCIgPyBcIlwiIDogY29udGV4dE5vZGUuZ2V0UGF0aCgpKSArIFwiL1wiICsgbmV3RmlsZU5hbWU7XG5cdFx0XHR2YXIgZm91bmQgPSBmYWxzZTtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnRleHROb2RlLmdldENoaWxkcmVuKCkuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuXHRcdFx0XHRcdGlmIChjLmdldFBhdGgoKSA9PT0gdGVzdCkge1xuXHRcdFx0XHRcdFx0Zm91bmQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0gY2F0Y2ggKGUpIHt9XG5cdFx0XHRyZXR1cm4gZm91bmQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhciBub2RlRXhpc3RzID0gZmFsc2U7XG5cdFx0XHR0aGlzLmxvYWRQYXRoSW5mb1N5bmMoY29udGV4dE5vZGUuZ2V0UGF0aCgpICsgXCIvXCIgKyBuZXdGaWxlTmFtZSwgZnVuY3Rpb24gKGZvdW5kTm9kZSkge1xuXHRcdFx0XHRub2RlRXhpc3RzID0gdHJ1ZTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIG5vZGVFeGlzdHM7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuICAqIEdldHMgdGhlIGZpcnN0IG5hbWUgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uXG4gICogQHJldHVybnMgU3RyaW5nXG4gICovXG5cblx0UHlkaW9EYXRhTW9kZWwucHJvdG90eXBlLmdldFVuaXF1ZUZpbGVOYW1lID0gZnVuY3Rpb24gZ2V0VW5pcXVlRmlsZU5hbWUoKSB7XG5cdFx0aWYgKHRoaXMuZ2V0RmlsZU5hbWVzKCkubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRGaWxlTmFtZXMoKVswXTtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH07XG5cblx0LyoqXG4gICogR2V0cyB0aGUgZmlyc3Qgbm9kZSBvZiB0aGUgc2VsZWN0aW9uLCBvciBOdWxsXG4gICogQHJldHVybnMgQWp4cE5vZGVcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuZ2V0VW5pcXVlTm9kZSA9IGZ1bmN0aW9uIGdldFVuaXF1ZU5vZGUoKSB7XG5cdFx0aWYgKHRoaXMuX3NlbGVjdGVkTm9kZXMubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fc2VsZWN0ZWROb2Rlc1swXTtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH07XG5cblx0LyoqXG4gICogR2V0cyBhIG5vZGUgZnJvbSB0aGUgY3VycmVudCBzZWxlY3Rpb25cbiAgKiBAcGFyYW0gaSBJbnRlZ2VyIHRoZSBub2RlIGluZGV4XG4gICogQHJldHVybnMgQWp4cE5vZGVcbiAgKi9cblxuXHRQeWRpb0RhdGFNb2RlbC5wcm90b3R5cGUuZ2V0Tm9kZSA9IGZ1bmN0aW9uIGdldE5vZGUoaSkge1xuXHRcdHJldHVybiB0aGlzLl9zZWxlY3RlZE5vZGVzW2ldO1xuXHR9O1xuXG5cdC8qKlxuICAqIFdpbGwgYWRkIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBub2RlcyBhcyBzZXJpYWxpemFibGUgZGF0YSB0byB0aGUgZWxlbWVudCBwYXNzZWQgOlxuICAqIGVpdGhlciBhcyBoaWRkZW4gaW5wdXQgZWxlbWVudHMgaWYgaXQncyBhIGZvcm0sIG9yIGFzIHF1ZXJ5IHBhcmFtZXRlcnMgaWYgaXQncyBhbiB1cmxcbiAgKiBAcGFyYW0gb0Zvcm1FbGVtZW50IEhUTUxGb3JtIFRoZSBmb3JtXG4gICogQHBhcmFtIHNVcmwgU3RyaW5nIEFuIHVybCB0byBjb21wbGV0ZVxuICAqIEByZXR1cm5zIFN0cmluZ1xuICAqL1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS51cGRhdGVGb3JtT3JVcmwgPSBmdW5jdGlvbiB1cGRhdGVGb3JtT3JVcmwob0Zvcm1FbGVtZW50LCBzVXJsKSB7XG5cdFx0Ly8gQ0xFQVIgRlJPTSBQUkVWSU9VUyBBQ1RJT05TIVxuXHRcdGlmIChvRm9ybUVsZW1lbnQpIHtcblx0XHRcdCQob0Zvcm1FbGVtZW50KS5zZWxlY3QoJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl0nKS5tYXAoZnVuY3Rpb24gKGVsZW1lbnQpIHtcblx0XHRcdFx0aWYgKGVsZW1lbnQubmFtZSA9PT0gXCJub2Rlc1tdXCIgfHwgZWxlbWVudC5uYW1lID09PSBcImZpbGVcIikge1xuXHRcdFx0XHRcdGVsZW1lbnQucmVtb3ZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHQvLyBVUERBVEUgVEhFICdESVInIEZJRUxEU1xuXHRcdGlmIChvRm9ybUVsZW1lbnQgJiYgb0Zvcm1FbGVtZW50WydyZXAnXSkge1xuXHRcdFx0b0Zvcm1FbGVtZW50WydyZXAnXS52YWx1ZSA9IHRoaXMuX2N1cnJlbnRSZXA7XG5cdFx0fVxuXHRcdHNVcmwgKz0gJyZkaXI9JyArIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLl9jdXJyZW50UmVwKTtcblxuXHRcdC8vIFVQREFURSBUSEUgJ2ZpbGUnIEZJRUxEU1xuXHRcdGlmICh0aGlzLmlzRW1wdHkoKSkge1xuXHRcdFx0cmV0dXJuIHNVcmw7XG5cdFx0fVxuXHRcdHZhciBmaWxlTmFtZXMgPSB0aGlzLmdldEZpbGVOYW1lcygpO1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZU5hbWVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRzVXJsICs9ICcmJyArICdub2Rlc1tdPScgKyBlbmNvZGVVUklDb21wb25lbnQoZmlsZU5hbWVzW2ldKTtcblx0XHRcdGlmIChvRm9ybUVsZW1lbnQpIHtcblx0XHRcdFx0dGhpcy5fYWRkSGlkZGVuRmllbGQob0Zvcm1FbGVtZW50LCAnbm9kZXNbXScsIGZpbGVOYW1lc1tpXSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChmaWxlTmFtZXMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRzVXJsICs9ICcmJyArICdmaWxlPScgKyBlbmNvZGVVUklDb21wb25lbnQoZmlsZU5hbWVzWzBdKTtcblx0XHRcdGlmIChvRm9ybUVsZW1lbnQpIHtcblx0XHRcdFx0dGhpcy5fYWRkSGlkZGVuRmllbGQob0Zvcm1FbGVtZW50LCAnZmlsZScsIGZpbGVOYW1lc1swXSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzVXJsO1xuXHR9O1xuXG5cdFB5ZGlvRGF0YU1vZGVsLnByb3RvdHlwZS5fYWRkSGlkZGVuRmllbGQgPSBmdW5jdGlvbiBfYWRkSGlkZGVuRmllbGQob0Zvcm1FbGVtZW50LCBzRmllbGROYW1lLCBzRmllbGRWYWx1ZSkge1xuXHRcdG9Gb3JtRWxlbWVudC5pbnNlcnQobmV3IEVsZW1lbnQoJ2lucHV0JywgeyB0eXBlOiAnaGlkZGVuJywgbmFtZTogc0ZpZWxkTmFtZSwgdmFsdWU6IHNGaWVsZFZhbHVlIH0pKTtcblx0fTtcblxuXHRyZXR1cm4gUHlkaW9EYXRhTW9kZWw7XG59KShfbGFuZ09ic2VydmFibGUyWydkZWZhdWx0J10pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBQeWRpb0RhdGFNb2RlbDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX3V0aWxYTUxVdGlscyA9IHJlcXVpcmUoJy4uL3V0aWwvWE1MVXRpbHMnKTtcblxudmFyIF91dGlsWE1MVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbFhNTFV0aWxzKTtcblxudmFyIF9odHRwUHlkaW9BcGkgPSByZXF1aXJlKCcuLi9odHRwL1B5ZGlvQXBpJyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBQeWRpb0FwaSk7XG5cbnZhciBfVXNlciA9IHJlcXVpcmUoJy4vVXNlcicpO1xuXG52YXIgX1VzZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXNlcik7XG5cbnZhciBfbGFuZ0xvZ2dlciA9IHJlcXVpcmUoJy4uL2xhbmcvTG9nZ2VyJyk7XG5cbnZhciBfbGFuZ0xvZ2dlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nTG9nZ2VyKTtcblxudmFyIF9odHRwUmVzb3VyY2VzTWFuYWdlciA9IHJlcXVpcmUoJy4uL2h0dHAvUmVzb3VyY2VzTWFuYWdlcicpO1xuXG52YXIgX2h0dHBSZXNvdXJjZXNNYW5hZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBSZXNvdXJjZXNNYW5hZ2VyKTtcblxudmFyIFJlZ2lzdHJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBSZWdpc3RyeShweWRpb09iamVjdCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmVnaXN0cnkpO1xuXG4gICAgICAgIHRoaXMuX3JlZ2lzdHJ5ID0gbnVsbDtcbiAgICAgICAgdGhpcy5fZXh0ZW5zaW9uc1JlZ2lzdHJ5ID0geyBcImVkaXRvclwiOiBbXSwgXCJ1cGxvYWRlclwiOiBbXSB9O1xuICAgICAgICB0aGlzLl9yZXNvdXJjZXNSZWdpc3RyeSA9IHt9O1xuICAgICAgICB0aGlzLl9weWRpb09iamVjdCA9IHB5ZGlvT2JqZWN0O1xuICAgICAgICB0aGlzLl94UGF0aExvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZ2xvYmFsTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlIFhNTCBTdHJpbmcgZGlyZWN0bHlcbiAgICAgKiBAcGFyYW0gc1xuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmxvYWRGcm9tU3RyaW5nID0gZnVuY3Rpb24gbG9hZEZyb21TdHJpbmcocykge1xuICAgICAgICBpZiAodGhpcy5fZmlsZUV4dGVuc2lvbnMpIHRoaXMuX2ZpbGVFeHRlbnNpb25zID0gbnVsbDtcbiAgICAgICAgdGhpcy5fcmVnaXN0cnkgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLnBhcnNlWG1sKHMpLmRvY3VtZW50RWxlbWVudDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5sb2FkWE1MID0gZnVuY3Rpb24gbG9hZFhNTChkb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGVFeHRlbnNpb25zKSB0aGlzLl9maWxlRXh0ZW5zaW9ucyA9IG51bGw7XG4gICAgICAgIHRoaXMuX3JlZ2lzdHJ5ID0gZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICB0aGlzLl9weWRpb09iamVjdC5maXJlKFwicmVnaXN0cnlfbG9hZGVkXCIsIHRoaXMuX3JlZ2lzdHJ5KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTG9hZCByZWdpc3RyeSBmcm9tIHNlcnZlclxuICAgICAqIEBwYXJhbSB4UGF0aFxuICAgICAqIEBwYXJhbSBjb21wbGV0ZUZ1bmNcbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeUlkXG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUubG9hZCA9IGZ1bmN0aW9uIGxvYWQoKSB7XG4gICAgICAgIHZhciB4UGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgY29tcGxldGVGdW5jID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIHJlcG9zaXRvcnlJZCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgaWYgKHRoaXMuX2dsb2JhbExvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9nbG9iYWxMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgX2h0dHBQeWRpb0FwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0T3JVcGRhdGVKd3QoKS50aGVuKGZ1bmN0aW9uIChqd3QpIHtcbiAgICAgICAgICAgIHZhciBfcHlkaW9PYmplY3QgPSBfdGhpcy5fcHlkaW9PYmplY3Q7XG4gICAgICAgICAgICB2YXIgdXNlciA9IF9weWRpb09iamVjdC51c2VyO1xuICAgICAgICAgICAgdmFyIFBhcmFtZXRlcnMgPSBfcHlkaW9PYmplY3QuUGFyYW1ldGVycztcblxuICAgICAgICAgICAgdmFyIHVybCA9IFBhcmFtZXRlcnMuZ2V0KCdFTkRQT0lOVF9SRVNUX0FQSScpICsgJy9mcm9udGVuZC9zdGF0ZS8nO1xuICAgICAgICAgICAgdmFyIGhlYWRlcnMgPSB7fTtcbiAgICAgICAgICAgIGlmIChqd3QpIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0geyBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyBqd3QgfTtcbiAgICAgICAgICAgICAgICBpZiAodXNlciB8fCByZXBvc2l0b3J5SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsICs9ICc/d3M9JyArIChyZXBvc2l0b3J5SWQgPyByZXBvc2l0b3J5SWQgOiB1c2VyLmdldEFjdGl2ZVJlcG9zaXRvcnkoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFBhcmFtZXRlcnMuaGFzKCdNSU5JU0lURScpKSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyc1tcIlgtUHlkaW8tTWluaXNpdGVcIl0gPSBQYXJhbWV0ZXJzLmdldCgnTUlOSVNJVEUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh1c2VyICYmIHVzZXIuZ2V0UHJlZmVyZW5jZSgnbGFuZycpKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxhbmcgPSB1c2VyLmdldFByZWZlcmVuY2UoJ2xhbmcnKTtcbiAgICAgICAgICAgICAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsICs9ICcmbGFuZz0nICsgbGFuZztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1cmwgKz0gJz9sYW5nPScgKyBsYW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5mZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnNcbiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuX2dsb2JhbExvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXNwb25zZS50ZXh0KCkudGhlbihmdW5jdGlvbiAodGV4dCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5fcmVnaXN0cnkgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLnBhcnNlWG1sKHRleHQpLmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlRnVuYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVGdW5jKF90aGlzLl9yZWdpc3RyeSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5fcHlkaW9PYmplY3QuZmlyZShcInJlZ2lzdHJ5X2xvYWRlZFwiLCBfdGhpcy5fcmVnaXN0cnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIF90aGlzLl9nbG9iYWxMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEluc2VydHMgYSBkb2N1bWVudCBmcmFnbWVudCByZXRyaWV2ZWQgZnJvbSBzZXJ2ZXIgaW5zaWRlIHRoZSBmdWxsIHRyZWUuXG4gICAgICogVGhlIG5vZGUgbXVzdCBjb250YWlucyB0aGUgeFBhdGggYXR0cmlidXRlIHRvIGxvY2F0ZSBpdCBpbnNpZGUgdGhlIHJlZ2lzdHJ5LlxuICAgICAqIEBwYXJhbSBkb2N1bWVudEVsZW1lbnQgRE9NTm9kZVxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLnJlZnJlc2hYbWxSZWdpc3RyeVBhcnQgPSBmdW5jdGlvbiByZWZyZXNoWG1sUmVnaXN0cnlQYXJ0KGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgICB2YXIgeFBhdGggPSBkb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwieFBhdGhcIik7XG4gICAgICAgIHZhciBleGlzdGluZ05vZGUgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh0aGlzLl9yZWdpc3RyeSwgeFBhdGgpO1xuICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGV4aXN0aW5nTm9kZSAmJiBleGlzdGluZ05vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgcGFyZW50Tm9kZSA9IGV4aXN0aW5nTm9kZS5wYXJlbnROb2RlO1xuICAgICAgICAgICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChleGlzdGluZ05vZGUpO1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZC5jbG9uZU5vZGUodHJ1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHhQYXRoLmluZGV4T2YoXCIvXCIpID4gLTEpIHtcbiAgICAgICAgICAgIC8vIHRyeSBzZWxlY3RpbmcgcGFyZW50Tm9kZVxuICAgICAgICAgICAgdmFyIHBhcmVudFBhdGggPSB4UGF0aC5zdWJzdHJpbmcoMCwgeFBhdGgubGFzdEluZGV4T2YoXCIvXCIpKTtcbiAgICAgICAgICAgIHBhcmVudE5vZGUgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh0aGlzLl9yZWdpc3RyeSwgcGFyZW50UGF0aCk7XG4gICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAmJiBkb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnRFbGVtZW50LmZpcnN0Q2hpbGQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZCkgdGhpcy5fcmVnaXN0cnkuYXBwZW5kQ2hpbGQoZG9jdW1lbnRFbGVtZW50LmZpcnN0Q2hpbGQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9weWRpb09iamVjdC5maXJlKFwicmVnaXN0cnlfcGFydF9sb2FkZWRcIiwgeFBhdGgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2xhdGUgdGhlIFhNTCBhbnN3ZXIgdG8gYSBuZXcgVXNlciBvYmplY3RcbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5wYXJzZVVzZXIgPSBmdW5jdGlvbiBwYXJzZVVzZXIoKSB7XG4gICAgICAgIHZhciB1c2VyID0gbnVsbCxcbiAgICAgICAgICAgIHVzZXJOb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5fcmVnaXN0cnkpIHtcbiAgICAgICAgICAgIHVzZXJOb2RlID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUodGhpcy5fcmVnaXN0cnksIFwidXNlclwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlck5vZGUpIHtcbiAgICAgICAgICAgIHZhciB1c2VySWQgPSB1c2VyTm9kZS5nZXRBdHRyaWJ1dGUoJ2lkJyk7XG4gICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSB1c2VyTm9kZS5jaGlsZE5vZGVzO1xuICAgICAgICAgICAgaWYgKHVzZXJJZCkge1xuICAgICAgICAgICAgICAgIHVzZXIgPSBuZXcgX1VzZXIyWydkZWZhdWx0J10odXNlcklkLCBjaGlsZHJlbiwgdGhpcy5fcHlkaW9PYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1c2VyO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtFbGVtZW50fCp8bnVsbH1cbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRYTUwgPSBmdW5jdGlvbiBnZXRYTUwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWdpc3RyeTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmluZCBFeHRlbnNpb24gaW5pdGlhbGlzYXRpb24gbm9kZXMgKGFjdGl2ZUNvbmRpdGlvbiwgb25Jbml0LCBldGMpLCBwYXJzZXNcbiAgICAgKiB0aGUgWE1MIGFuZCBleGVjdXRlIEpTLlxuICAgICAqIEBwYXJhbSB4bWxOb2RlIHtFbGVtZW50fSBUaGUgZXh0ZW5zaW9uIG5vZGVcbiAgICAgKiBAcGFyYW0gZXh0ZW5zaW9uRGVmaW5pdGlvbiBPYmplY3QgSW5mb3JtYXRpb24gYWxyZWFkeSBjb2xsZWN0ZWQgYWJvdXQgdGhpcyBleHRlbnNpb25cbiAgICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUuaW5pdEV4dGVuc2lvbiA9IGZ1bmN0aW9uIGluaXRFeHRlbnNpb24oeG1sTm9kZSwgZXh0ZW5zaW9uRGVmaW5pdGlvbikge1xuICAgICAgICB2YXIgYWN0aXZlQ29uZGl0aW9uID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUoeG1sTm9kZSwgJ3Byb2Nlc3NpbmcvYWN0aXZlQ29uZGl0aW9uJyk7XG4gICAgICAgIGlmIChhY3RpdmVDb25kaXRpb24gJiYgYWN0aXZlQ29uZGl0aW9uLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFyIGZ1bmMgPSBuZXcgRnVuY3Rpb24oYWN0aXZlQ29uZGl0aW9uLmZpcnN0Q2hpbGQubm9kZVZhbHVlLnRyaW0oKSk7XG4gICAgICAgICAgICAgICAgaWYgKGZ1bmMoKSA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHhtbE5vZGUubm9kZU5hbWUgPT09ICdlZGl0b3InKSB7XG5cbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZXh0ZW5zaW9uRGVmaW5pdGlvbiwge1xuICAgICAgICAgICAgICAgIG9wZW5hYmxlOiB4bWxOb2RlLmdldEF0dHJpYnV0ZShcIm9wZW5hYmxlXCIpID09PSBcInRydWVcIixcbiAgICAgICAgICAgICAgICBtb2RhbE9ubHk6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwibW9kYWxPbmx5XCIpID09PSBcInRydWVcIixcbiAgICAgICAgICAgICAgICBwcmV2aWV3UHJvdmlkZXI6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwicHJldmlld1Byb3ZpZGVyXCIpID09PSBcInRydWVcIixcbiAgICAgICAgICAgICAgICBvcmRlcjogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJvcmRlclwiKSA/IHBhcnNlSW50KHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwib3JkZXJcIikpIDogMCxcbiAgICAgICAgICAgICAgICBmb3JtSWQ6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwiZm9ybUlkXCIpIHx8IG51bGwsXG4gICAgICAgICAgICAgICAgdGV4dDogdGhpcy5fcHlkaW9PYmplY3QuTWVzc2FnZUhhc2hbeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJ0ZXh0XCIpXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy5fcHlkaW9PYmplY3QuTWVzc2FnZUhhc2hbeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKV0sXG4gICAgICAgICAgICAgICAgaWNvbjogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJpY29uXCIpLFxuICAgICAgICAgICAgICAgIGljb25fY2xhc3M6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwiaWNvbkNsYXNzXCIpLFxuICAgICAgICAgICAgICAgIGVkaXRvckFjdGlvbnM6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwiYWN0aW9uc1wiKSxcbiAgICAgICAgICAgICAgICBlZGl0b3JDbGFzczogeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJjbGFzc05hbWVcIiksXG4gICAgICAgICAgICAgICAgbWltZXM6IHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwibWltZXNcIikuc3BsaXQoXCIsXCIpLFxuICAgICAgICAgICAgICAgIHdyaXRlOiB4bWxOb2RlLmdldEF0dHJpYnV0ZShcIndyaXRlXCIpICYmIHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwid3JpdGVcIikgPT09IFwidHJ1ZVwiID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNhbldyaXRlOiB4bWxOb2RlLmdldEF0dHJpYnV0ZShcImNhbldyaXRlXCIpICYmIHhtbE5vZGUuZ2V0QXR0cmlidXRlKFwiY2FuV3JpdGVcIikgPT09IFwidHJ1ZVwiID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh4bWxOb2RlLm5vZGVOYW1lID09PSAndXBsb2FkZXInKSB7XG5cbiAgICAgICAgICAgIHZhciB0aCA9IHRoaXMuX3B5ZGlvT2JqZWN0LlBhcmFtZXRlcnMuZ2V0KCd0aGVtZScpO1xuICAgICAgICAgICAgdmFyIGNsaWVudEZvcm0gPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh4bWxOb2RlLCAncHJvY2Vzc2luZy9jbGllbnRGb3JtW0B0aGVtZT1cIicgKyB0aCArICdcIl0nKTtcbiAgICAgICAgICAgIGlmICghY2xpZW50Rm9ybSkge1xuICAgICAgICAgICAgICAgIGNsaWVudEZvcm0gPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0U2luZ2xlTm9kZSh4bWxOb2RlLCAncHJvY2Vzc2luZy9jbGllbnRGb3JtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2xpZW50Rm9ybSAmJiBjbGllbnRGb3JtLmdldEF0dHJpYnV0ZSgnbW9kdWxlJykpIHtcbiAgICAgICAgICAgICAgICBleHRlbnNpb25EZWZpbml0aW9uLm1vZHVsZU5hbWUgPSBjbGllbnRGb3JtLmdldEF0dHJpYnV0ZSgnbW9kdWxlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoeG1sTm9kZS5nZXRBdHRyaWJ1dGUoXCJvcmRlclwiKSkge1xuICAgICAgICAgICAgICAgIGV4dGVuc2lvbkRlZmluaXRpb24ub3JkZXIgPSBwYXJzZUludCh4bWxOb2RlLmdldEF0dHJpYnV0ZShcIm9yZGVyXCIpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uRGVmaW5pdGlvbi5vcmRlciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZXh0ZW5zaW9uT25Jbml0ID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUoeG1sTm9kZSwgJ3Byb2Nlc3NpbmcvZXh0ZW5zaW9uT25Jbml0Jyk7XG4gICAgICAgICAgICBpZiAoZXh0ZW5zaW9uT25Jbml0ICYmIGV4dGVuc2lvbk9uSW5pdC5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQFRPRE86IFRISVMgV0lMTCBMSUtFTFkgVFJJR0dFUiBQUk9UT1RZUEUgQ09ERVxuICAgICAgICAgICAgICAgICAgICBldmFsKGV4dGVuc2lvbk9uSW5pdC5maXJzdENoaWxkLm5vZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBfbGFuZ0xvZ2dlcjJbJ2RlZmF1bHQnXS5lcnJvcihcIklnbm9yaW5nIEVycm9yIGluIGV4dGVuc2lvbk9uSW5pdCBjb2RlOlwiKTtcbiAgICAgICAgICAgICAgICAgICAgX2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IoZXh0ZW5zaW9uT25Jbml0LmZpcnN0Q2hpbGQubm9kZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgX2xhbmdMb2dnZXIyWydkZWZhdWx0J10uZXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZGlhbG9nT25PcGVuID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUoeG1sTm9kZSwgJ3Byb2Nlc3NpbmcvZGlhbG9nT25PcGVuJyk7XG4gICAgICAgICAgICBpZiAoZGlhbG9nT25PcGVuICYmIGRpYWxvZ09uT3Blbi5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uRGVmaW5pdGlvbi5kaWFsb2dPbk9wZW4gPSBkaWFsb2dPbk9wZW4uZmlyc3RDaGlsZC5ub2RlVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZGlhbG9nT25Db21wbGV0ZSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHhtbE5vZGUsICdwcm9jZXNzaW5nL2RpYWxvZ09uQ29tcGxldGUnKTtcbiAgICAgICAgICAgIGlmIChkaWFsb2dPbkNvbXBsZXRlICYmIGRpYWxvZ09uQ29tcGxldGUuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgIGV4dGVuc2lvbkRlZmluaXRpb24uZGlhbG9nT25Db21wbGV0ZSA9IGRpYWxvZ09uQ29tcGxldGUuZmlyc3RDaGlsZC5ub2RlVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2ggdGhlIGN1cnJlbnRseSBhY3RpdmUgZXh0ZW5zaW9uc1xuICAgICAqIEV4dGVuc2lvbnMgYXJlIGVkaXRvcnMgYW5kIHVwbG9hZGVycyBmb3IgdGhlIG1vbWVudC5cbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5yZWZyZXNoRXh0ZW5zaW9uc1JlZ2lzdHJ5ID0gZnVuY3Rpb24gcmVmcmVzaEV4dGVuc2lvbnNSZWdpc3RyeSgpIHtcblxuICAgICAgICB0aGlzLl9leHRlbnNpb25zUmVnaXN0cnkgPSB7IFwiZWRpdG9yXCI6IFtdLCBcInVwbG9hZGVyXCI6IFtdIH07XG4gICAgICAgIHZhciBleHRlbnNpb25zID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdE5vZGVzKHRoaXMuX3JlZ2lzdHJ5LCBcInBsdWdpbnMvZWRpdG9yfHBsdWdpbnMvdXBsb2FkZXJcIik7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXh0ZW5zaW9ucy5sZW5ndGg7IGkrKykge1xuXG4gICAgICAgICAgICB2YXIgZXh0ZW5zaW9uRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICAgICAgICBpZDogZXh0ZW5zaW9uc1tpXS5nZXRBdHRyaWJ1dGUoXCJpZFwiKSxcbiAgICAgICAgICAgICAgICB4bWxOb2RlOiBleHRlbnNpb25zW2ldLFxuICAgICAgICAgICAgICAgIHJlc291cmNlc01hbmFnZXI6IG5ldyBfaHR0cFJlc291cmNlc01hbmFnZXIyWydkZWZhdWx0J10oKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlc1JlZ2lzdHJ5W2V4dGVuc2lvbkRlZmluaXRpb24uaWRdID0gZXh0ZW5zaW9uRGVmaW5pdGlvbi5yZXNvdXJjZXNNYW5hZ2VyO1xuICAgICAgICAgICAgdmFyIHJlc291cmNlTm9kZXMgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0Tm9kZXMoZXh0ZW5zaW9uc1tpXSwgXCJjbGllbnRfc2V0dGluZ3MvcmVzb3VyY2VzfGRlcGVuZGVuY2llc3xjbGllbnRGb3JtXCIpO1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCByZXNvdXJjZU5vZGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uRGVmaW5pdGlvbi5yZXNvdXJjZXNNYW5hZ2VyLmxvYWRGcm9tWG1sTm9kZShyZXNvdXJjZU5vZGVzW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRFeHRlbnNpb24oZXh0ZW5zaW9uc1tpXSwgZXh0ZW5zaW9uRGVmaW5pdGlvbikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9leHRlbnNpb25zUmVnaXN0cnlbZXh0ZW5zaW9uc1tpXS5ub2RlTmFtZV0ucHVzaChleHRlbnNpb25EZWZpbml0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfaHR0cFJlc291cmNlc01hbmFnZXIyWydkZWZhdWx0J10ubG9hZEF1dG9Mb2FkUmVzb3VyY2VzKHRoaXMuX3JlZ2lzdHJ5KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmluZCB0aGUgY3VycmVudGx5IGFjdGl2ZSBleHRlbnNpb25zIGJ5IHR5cGVcbiAgICAgKiBAcGFyYW0gZXh0ZW5zaW9uVHlwZSBTdHJpbmcgXCJlZGl0b3JcIiBvciBcInVwbG9hZGVyXCJcbiAgICAgKiBAcmV0dXJucyB7YXJyYXl9XG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUuZ2V0QWN0aXZlRXh0ZW5zaW9uQnlUeXBlID0gZnVuY3Rpb24gZ2V0QWN0aXZlRXh0ZW5zaW9uQnlUeXBlKGV4dGVuc2lvblR5cGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dGVuc2lvbnNSZWdpc3RyeVtleHRlbnNpb25UeXBlXTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmluZCBhIGdpdmVuIGVkaXRvciBieSBpdHMgaWRcbiAgICAgKiBAcGFyYW0gZWRpdG9ySWQgU3RyaW5nXG4gICAgICogQHJldHVybnMgQWJzdHJhY3RFZGl0b3JcbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5maW5kRWRpdG9yQnlJZCA9IGZ1bmN0aW9uIGZpbmRFZGl0b3JCeUlkKGVkaXRvcklkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9leHRlbnNpb25zUmVnaXN0cnkuZWRpdG9yLmZpbmQoZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgICAgICByZXR1cm4gZWwuaWQgPT0gZWRpdG9ySWQ7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIEVkaXRvcnMgdGhhdCBjYW4gaGFuZGxlIGEgZ2l2ZW4gbWltZSB0eXBlXG4gICAgICogQHBhcmFtIG1pbWUgU3RyaW5nXG4gICAgICogQHJldHVybnMgQWJzdHJhY3RFZGl0b3JbXVxuICAgICAqIEBwYXJhbSByZXN0cmljdFRvUHJldmlld1Byb3ZpZGVyc1xuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmZpbmRFZGl0b3JzRm9yTWltZSA9IGZ1bmN0aW9uIGZpbmRFZGl0b3JzRm9yTWltZShtaW1lLCByZXN0cmljdFRvUHJldmlld1Byb3ZpZGVycykge1xuXG4gICAgICAgIHZhciB1c2VyID0gdGhpcy5fcHlkaW9PYmplY3QudXNlcjtcbiAgICAgICAgdmFyIGVkaXRvcnMgPSBbXSxcbiAgICAgICAgICAgIGNoZWNrV3JpdGUgPSBmYWxzZTtcblxuICAgICAgICBpZiAodXNlciAhPSBudWxsICYmICF1c2VyLmNhbldyaXRlKCkpIHtcbiAgICAgICAgICAgIGNoZWNrV3JpdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4dGVuc2lvbnNSZWdpc3RyeS5lZGl0b3IuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgIGlmIChlbC5taW1lcy5pbmRleE9mKG1pbWUpICE9PSAtMSB8fCBlbC5taW1lcy5pbmRleE9mKCcqJykgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3RyaWN0VG9QcmV2aWV3UHJvdmlkZXJzICYmICFlbC5wcmV2aWV3UHJvdmlkZXIpIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAoIWNoZWNrV3JpdGUgfHwgIWVsLndyaXRlKSBlZGl0b3JzLnB1c2goZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVkaXRvcnMubGVuZ3RoICYmIGVkaXRvcnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgZWRpdG9ycyA9IGVkaXRvcnMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHJldHVybiAoYS5vcmRlciB8fCAwKSAtIChiLm9yZGVyIHx8IDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVkaXRvcnM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXIgdGhlIGxvYWQgbWV0aG9kIG9mIHRoZSByZXNvdXJjZXNNYW5hZ2VyLlxuICAgICAqIEBwYXJhbSByZXNvdXJjZXNNYW5hZ2VyIFJlc291cmNlc01hbmFnZXJcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2sgdHJpZ2dlcmVkIGFmdGVyIEpTIGxvYWRlZFxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmxvYWRFZGl0b3JSZXNvdXJjZXMgPSBmdW5jdGlvbiBsb2FkRWRpdG9yUmVzb3VyY2VzKHJlc291cmNlc01hbmFnZXIsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJlc291cmNlc01hbmFnZXIubG9hZCh0aGlzLl9yZXNvdXJjZXNSZWdpc3RyeSwgZmFsc2UsIGNhbGxiYWNrKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGx1Z2luUXVlcnlcbiAgICAgKiBAcmV0dXJucyB7TWFwfVxuICAgICAqL1xuXG4gICAgUmVnaXN0cnkucHJvdG90eXBlLmdldFBsdWdpbkNvbmZpZ3MgPSBmdW5jdGlvbiBnZXRQbHVnaW5Db25maWdzKHBsdWdpblF1ZXJ5KSB7XG5cbiAgICAgICAgdmFyIHhwYXRoID0gJ3BsdWdpbnMvKltAaWQ9XCJjb3JlLicgKyBwbHVnaW5RdWVyeSArICdcIl0vcGx1Z2luX2NvbmZpZ3MvcHJvcGVydHkgfCBwbHVnaW5zLypbQGlkPVwiJyArIHBsdWdpblF1ZXJ5ICsgJ1wiXS9wbHVnaW5fY29uZmlncy9wcm9wZXJ0eSc7XG4gICAgICAgIGlmIChwbHVnaW5RdWVyeS5pbmRleE9mKCcuJykgPT09IC0xKSB7XG4gICAgICAgICAgICB4cGF0aCA9ICdwbHVnaW5zLycgKyBwbHVnaW5RdWVyeSArICcvcGx1Z2luX2NvbmZpZ3MvcHJvcGVydHkgfCcgKyB4cGF0aDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHJvcGVydGllcyA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3ROb2Rlcyh0aGlzLl9yZWdpc3RyeSwgeHBhdGgpO1xuICAgICAgICB2YXIgY29uZmlncyA9IG5ldyBNYXAoKTtcbiAgICAgICAgcHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wTm9kZSkge1xuICAgICAgICAgICAgY29uZmlncy5zZXQocHJvcE5vZGUuZ2V0QXR0cmlidXRlKFwibmFtZVwiKSwgSlNPTi5wYXJzZShwcm9wTm9kZS5maXJzdENoaWxkLm5vZGVWYWx1ZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZ3M7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHBsdWdpbklkXG4gICAgICogQHBhcmFtIHBhcmFtTmFtZVxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAgICovXG5cbiAgICBSZWdpc3RyeS5wcm90b3R5cGUuZ2V0RGVmYXVsdEltYWdlRnJvbVBhcmFtZXRlcnMgPSBmdW5jdGlvbiBnZXREZWZhdWx0SW1hZ2VGcm9tUGFyYW1ldGVycyhwbHVnaW5JZCwgcGFyYW1OYW1lKSB7XG4gICAgICAgIHZhciBub2RlID0gX3V0aWxYTUxVdGlsczJbJ2RlZmF1bHQnXS5YUGF0aFNlbGVjdFNpbmdsZU5vZGUodGhpcy5fcmVnaXN0cnksIFwicGx1Z2lucy8qW0BpZD0nXCIgKyBwbHVnaW5JZCArIFwiJ10vc2VydmVyX3NldHRpbmdzL2dsb2JhbF9wYXJhbVtAbmFtZT0nXCIgKyBwYXJhbU5hbWUgKyBcIiddXCIpO1xuICAgICAgICBpZiAoIW5vZGUpIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIG5vZGUuZ2V0QXR0cmlidXRlKFwiZGVmYXVsdEltYWdlXCIpIHx8ICcnO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlXG4gICAgICogQHBhcmFtIG5hbWVcbiAgICAgKiBAcmV0dXJucyB7Ym9vbH1cbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5oYXNQbHVnaW5PZlR5cGUgPSBmdW5jdGlvbiBoYXNQbHVnaW5PZlR5cGUodHlwZSwgbmFtZSkge1xuICAgICAgICB2YXIgbm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgbm9kZSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHRoaXMuX3JlZ2lzdHJ5LCAncGx1Z2lucy9wbHVnaW5bY29udGFpbnMoQGlkLCBcIicgKyB0eXBlICsgJy5cIildIHwgcGx1Z2lucy8nICsgdHlwZSArICdbQGlkXScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZSA9IF91dGlsWE1MVXRpbHMyWydkZWZhdWx0J10uWFBhdGhTZWxlY3RTaW5nbGVOb2RlKHRoaXMuX3JlZ2lzdHJ5LCAncGx1Z2lucy9wbHVnaW5bQGlkPVwiJyArIHR5cGUgKyAnLicgKyBuYW1lICsgJ1wiXSB8IHBsdWdpbnMvJyArIHR5cGUgKyAnW0BpZD1cIicgKyB0eXBlICsgJy4nICsgbmFtZSArICdcIl0nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZSAhPT0gdW5kZWZpbmVkO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtNYXB8TWFwPHN0cmluZywgb2JqZWN0Pn1cbiAgICAgKi9cblxuICAgIFJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRGaWxlc0V4dGVuc2lvbnMgPSBmdW5jdGlvbiBnZXRGaWxlc0V4dGVuc2lvbnMoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIGlmICh0aGlzLl9maWxlRXh0ZW5zaW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVFeHRlbnNpb25zO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZpbGVFeHRlbnNpb25zID0gbmV3IE1hcCgpO1xuICAgICAgICB2YXIgbm9kZXMgPSBfdXRpbFhNTFV0aWxzMlsnZGVmYXVsdCddLlhQYXRoU2VsZWN0Tm9kZXModGhpcy5fcmVnaXN0cnksICdleHRlbnNpb25zLyonKTtcbiAgICAgICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgX3RoaXMyLl9maWxlRXh0ZW5zaW9ucy5zZXQobm9kZS5nZXRBdHRyaWJ1dGUoJ21pbWUnKSwgeyBtZXNzYWdlSWQ6IG5vZGUuZ2V0QXR0cmlidXRlKCdtZXNzYWdlSWQnKSwgZm9udEljb246IG5vZGUuZ2V0QXR0cmlidXRlKCdmb250JykgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZUV4dGVuc2lvbnM7XG4gICAgfTtcblxuICAgIHJldHVybiBSZWdpc3RyeTtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlZ2lzdHJ5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfUHlkaW8gPSByZXF1aXJlKCcuLi9QeWRpbycpO1xuXG52YXIgX1B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1B5ZGlvKTtcblxudmFyIF9odHRwUmVzb3VyY2VzTWFuYWdlciA9IHJlcXVpcmUoJy4uL2h0dHAvUmVzb3VyY2VzTWFuYWdlcicpO1xuXG52YXIgX2h0dHBSZXNvdXJjZXNNYW5hZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBSZXNvdXJjZXNNYW5hZ2VyKTtcblxudmFyIF9DZWxsTW9kZWwgPSByZXF1aXJlKCcuL0NlbGxNb2RlbCcpO1xuXG52YXIgX0NlbGxNb2RlbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9DZWxsTW9kZWwpO1xuXG4vKiogXG4gKiBDb250YWluZXIgZm9yIGEgUmVwb3NpdG9yeS5cbiAqL1xuXG52YXIgUmVwb3NpdG9yeSA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBpZCBTdHJpbmdcbiAgICogQHBhcmFtIHhtbERlZiBYTUxOb2RlXG4gICAqL1xuXG4gIGZ1bmN0aW9uIFJlcG9zaXRvcnkoaWQsIHhtbERlZikge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZXBvc2l0b3J5KTtcblxuICAgIHRoaXMubGFiZWwgPSAnJztcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy5hY2Nlc3NUeXBlID0gJyc7XG4gICAgdGhpcy5ub2RlUHJvdmlkZXJEZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5hbGxvd0Nyb3NzUmVwb3NpdG9yeUNvcHkgPSBmYWxzZTtcbiAgICB0aGlzLnVzZXJFZGl0YWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuc2x1ZyA9ICcnO1xuICAgIHRoaXMub3duZXIgPSAnJztcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gJyc7XG4gICAgdGhpcy5faGFzQ29udGVudEZpbHRlciA9IGZhbHNlO1xuICAgIHRoaXMuX2hhc1VzZXJTY29wZSA9IGZhbHNlO1xuICAgIHRoaXMuX3JlcG9zaXRvcnlUeXBlID0gJ2xvY2FsJztcbiAgICB0aGlzLl9hY2Nlc3NTdGF0dXMgPSBudWxsO1xuICAgIHRoaXMuX2xhc3RDb25uZWN0aW9uID0gbnVsbDtcbiAgICB0aGlzLmljb24gPSAnJztcbiAgICB0aGlzLnJlc291cmNlc01hbmFnZXIgPSBuZXcgX2h0dHBSZXNvdXJjZXNNYW5hZ2VyMlsnZGVmYXVsdCddKCk7XG4gICAgdGhpcy5sb2FkZWRDZWxsID0gbnVsbDtcbiAgICBpZiAoeG1sRGVmKSB0aGlzLmxvYWRGcm9tWG1sKHhtbERlZik7XG4gIH1cblxuICBSZXBvc2l0b3J5LmlzSW50ZXJuYWwgPSBmdW5jdGlvbiBpc0ludGVybmFsKGRyaXZlck5hbWUpIHtcbiAgICByZXR1cm4gZHJpdmVyTmFtZSA9PT0gJ3NldHRpbmdzJyB8fCBkcml2ZXJOYW1lID09PSAnaG9tZXBhZ2UnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0SWQgPSBmdW5jdGlvbiBnZXRJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pZDtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMgU3RyaW5nXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmdldFNoYXJlSWQgPSBmdW5jdGlvbiBnZXRTaGFyZUlkKCkge1xuICAgIHJldHVybiB0aGlzLmlkLnJlcGxhY2UoL29jc19yZW1vdGVfc2hhcmVfLywgJycpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPENlbGxNb2RlbD59XG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmFzQ2VsbCA9IGZ1bmN0aW9uIGFzQ2VsbCgpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgaWYgKCF0aGlzLmdldE93bmVyKCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxvYWRlZENlbGwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5sb2FkZWRDZWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIF9yZXQgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgY2VsbCA9IG5ldyBfQ2VsbE1vZGVsMlsnZGVmYXVsdCddKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdjogbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgY2VsbC5sb2FkKF90aGlzLmdldElkKCkpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICBfdGhpcy5sb2FkZWRDZWxsID0gY2VsbDtcbiAgICAgICAgICAgICAgcmVzb2x2ZShjZWxsKTtcbiAgICAgICAgICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgfSkoKTtcblxuICAgICAgaWYgKHR5cGVvZiBfcmV0ID09PSAnb2JqZWN0JykgcmV0dXJuIF9yZXQudjtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIFN0cmluZ1xuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXRMYWJlbCA9IGZ1bmN0aW9uIGdldExhYmVsKCkge1xuICAgIGlmICh0aGlzLmFjY2Vzc1R5cGUgPT09ICdob21lcGFnZScpIHtcbiAgICAgIHJldHVybiBfUHlkaW8yWydkZWZhdWx0J10uZ2V0TWVzc2FnZXMoKVsndXNlcl9ob21lLnRpdGxlJ10gfHwgJ0hvbWVwYWdlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWNjZXNzVHlwZSA9PT0gJ3NldHRpbmdzJykge1xuICAgICAgcmV0dXJuIF9QeWRpbzJbJ2RlZmF1bHQnXS5nZXRNZXNzYWdlcygpWycxNjUnXSB8fCAnU2V0dGluZ3MnO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgfTtcblxuICAvKipcbiAgICogQHBhcmFtIGxhYmVsIFN0cmluZ1xuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5zZXRMYWJlbCA9IGZ1bmN0aW9uIHNldExhYmVsKGxhYmVsKSB7XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICB9O1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmdldExldHRlcnNCYWRnZSA9IGZ1bmN0aW9uIGdldExldHRlcnNCYWRnZSgpIHtcbiAgICBpZiAoIXRoaXMubGFiZWwpIHJldHVybiAnJztcbiAgICByZXR1cm4gdGhpcy5sYWJlbC5zcGxpdChcIiBcIikubWFwKGZ1bmN0aW9uICh3b3JkKSB7XG4gICAgICByZXR1cm4gd29yZC5zdWJzdHIoMCwgMSk7XG4gICAgfSkuc2xpY2UoMCwgMikuam9pbihcIlwiKTtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybiBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0RGVzY3JpcHRpb24gPSBmdW5jdGlvbiBnZXREZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdGlvbjtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMgU3RyaW5nXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmdldEljb24gPSBmdW5jdGlvbiBnZXRJY29uKCkge1xuICAgIHJldHVybiB0aGlzLmljb247XG4gIH07XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBpY29uIFN0cmluZ1xuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5zZXRJY29uID0gZnVuY3Rpb24gc2V0SWNvbihpY29uKSB7XG4gICAgdGhpcy5pY29uID0gaWNvbjtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybiBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0T3duZXIgPSBmdW5jdGlvbiBnZXRPd25lcigpIHtcbiAgICByZXR1cm4gdGhpcy5vd25lcjtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMgU3RyaW5nXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmdldEFjY2Vzc1R5cGUgPSBmdW5jdGlvbiBnZXRBY2Nlc3NUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc1R5cGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhY2Nlc3MgU3RyaW5nXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLnNldEFjY2Vzc1R5cGUgPSBmdW5jdGlvbiBzZXRBY2Nlc3NUeXBlKGFjY2Vzcykge1xuICAgIHRoaXMuYWNjZXNzVHlwZSA9IGFjY2VzcztcbiAgfTtcblxuICAvKipcbiAgICogVHJpZ2dlcnMgUmVzb3VyY2VzTWFuYWdlci5sb2FkXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmxvYWRSZXNvdXJjZXMgPSBmdW5jdGlvbiBsb2FkUmVzb3VyY2VzKCkge1xuICAgIHRoaXMucmVzb3VyY2VzTWFuYWdlci5sb2FkKG51bGwsIHRydWUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBPYmplY3RcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0Tm9kZVByb3ZpZGVyRGVmID0gZnVuY3Rpb24gZ2V0Tm9kZVByb3ZpZGVyRGVmKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVQcm92aWRlckRlZjtcbiAgfTtcblxuICAvKipcbiAgICogQHBhcmFtIHNsdWcgU3RyaW5nXG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLnNldFNsdWcgPSBmdW5jdGlvbiBzZXRTbHVnKHNsdWcpIHtcbiAgICB0aGlzLnNsdWcgPSBzbHVnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0U2x1ZyA9IGZ1bmN0aW9uIGdldFNsdWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2x1ZztcbiAgfTtcblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5nZXRPdmVybGF5ID0gZnVuY3Rpb24gZ2V0T3ZlcmxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRPd25lcigpID8gX2h0dHBSZXNvdXJjZXNNYW5hZ2VyMlsnZGVmYXVsdCddLnJlc29sdmVJbWFnZVNvdXJjZShcInNoYXJlZC5wbmdcIiwgXCJvdmVybGF5cy9JQ09OX1NJWkVcIiwgOCkgOiBcIlwiO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuaGFzQ29udGVudEZpbHRlciA9IGZ1bmN0aW9uIGhhc0NvbnRlbnRGaWx0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc0NvbnRlbnRGaWx0ZXI7XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5oYXNVc2VyU2NvcGUgPSBmdW5jdGlvbiBoYXNVc2VyU2NvcGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc1VzZXJTY29wZTtcbiAgfTtcblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0UmVwb3NpdG9yeVR5cGUgPSBmdW5jdGlvbiBnZXRSZXBvc2l0b3J5VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVwb3NpdG9yeVR5cGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLmdldEFjY2Vzc1N0YXR1cyA9IGZ1bmN0aW9uIGdldEFjY2Vzc1N0YXR1cygpIHtcbiAgICByZXR1cm4gdGhpcy5fYWNjZXNzU3RhdHVzO1xuICB9O1xuXG4gIFJlcG9zaXRvcnkucHJvdG90eXBlLnNldEFjY2Vzc1N0YXR1cyA9IGZ1bmN0aW9uIHNldEFjY2Vzc1N0YXR1cyhzdGF0dXMpIHtcbiAgICB0aGlzLl9hY2Nlc3NTdGF0dXMgPSBzdGF0dXM7XG4gIH07XG5cbiAgUmVwb3NpdG9yeS5wcm90b3R5cGUuZ2V0TGFzdENvbm5lY3Rpb24gPSBmdW5jdGlvbiBnZXRMYXN0Q29ubmVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbGFzdENvbm5lY3Rpb247XG4gIH07XG5cbiAgLyoqXG4gICAqIFBhcnNlcyBYTUwgTm9kZVxuICAgKiBAcGFyYW0gcmVwb05vZGUgWE1MTm9kZVxuICAgKi9cblxuICBSZXBvc2l0b3J5LnByb3RvdHlwZS5sb2FkRnJvbVhtbCA9IGZ1bmN0aW9uIGxvYWRGcm9tWG1sKHJlcG9Ob2RlKSB7XG4gICAgaWYgKHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgnYWxsb3dDcm9zc1JlcG9zaXRvcnlDb3B5JykgJiYgcmVwb05vZGUuZ2V0QXR0cmlidXRlKCdhbGxvd0Nyb3NzUmVwb3NpdG9yeUNvcHknKSA9PSBcInRydWVcIikge1xuICAgICAgdGhpcy5hbGxvd0Nyb3NzUmVwb3NpdG9yeUNvcHkgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAocmVwb05vZGUuZ2V0QXR0cmlidXRlKCdoYXNDb250ZW50RmlsdGVyJykgJiYgcmVwb05vZGUuZ2V0QXR0cmlidXRlKCdoYXNDb250ZW50RmlsdGVyJykgPT0gXCJ0cnVlXCIpIHtcbiAgICAgIHRoaXMuX2hhc0NvbnRlbnRGaWx0ZXIgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAocmVwb05vZGUuZ2V0QXR0cmlidXRlKCd1c2VyU2NvcGUnKSAmJiByZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ3VzZXJTY29wZScpID09IFwidHJ1ZVwiKSB7XG4gICAgICB0aGlzLl9oYXNVc2VyU2NvcGUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAocmVwb05vZGUuZ2V0QXR0cmlidXRlKCdyZXBvc2l0b3J5X3R5cGUnKSkge1xuICAgICAgdGhpcy5fcmVwb3NpdG9yeVR5cGUgPSByZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ3JlcG9zaXRvcnlfdHlwZScpO1xuICAgIH1cbiAgICBpZiAocmVwb05vZGUuZ2V0QXR0cmlidXRlKCdhY2Nlc3Nfc3RhdHVzJykpIHtcbiAgICAgIHRoaXMuX2FjY2Vzc1N0YXR1cyA9IHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgnYWNjZXNzX3N0YXR1cycpO1xuICAgIH1cbiAgICBpZiAocmVwb05vZGUuZ2V0QXR0cmlidXRlKCdsYXN0X2Nvbm5lY3Rpb24nKSkge1xuICAgICAgdGhpcy5fbGFzdENvbm5lY3Rpb24gPSByZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ2xhc3RfY29ubmVjdGlvbicpO1xuICAgIH1cblxuICAgIGlmIChyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ3VzZXJfZWRpdGFibGVfcmVwb3NpdG9yeScpICYmIHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgndXNlcl9lZGl0YWJsZV9yZXBvc2l0b3J5JykgPT09IFwidHJ1ZVwiKSB7XG4gICAgICB0aGlzLnVzZXJFZGl0YWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ2FjY2Vzc190eXBlJykpIHtcbiAgICAgIHRoaXMuc2V0QWNjZXNzVHlwZShyZXBvTm9kZS5nZXRBdHRyaWJ1dGUoJ2FjY2Vzc190eXBlJykpO1xuICAgIH1cbiAgICBpZiAocmVwb05vZGUuZ2V0QXR0cmlidXRlKCdyZXBvc2l0b3J5U2x1ZycpKSB7XG4gICAgICB0aGlzLnNldFNsdWcocmVwb05vZGUuZ2V0QXR0cmlidXRlKCdyZXBvc2l0b3J5U2x1ZycpKTtcbiAgICB9XG4gICAgaWYgKHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgnb3duZXInKSkge1xuICAgICAgdGhpcy5vd25lciA9IHJlcG9Ob2RlLmdldEF0dHJpYnV0ZSgnb3duZXInKTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXBvTm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hpbGROb2RlID0gcmVwb05vZGUuY2hpbGROb2Rlc1tpXTtcbiAgICAgIGlmIChjaGlsZE5vZGUubm9kZU5hbWUgPT09IFwibGFiZWxcIikge1xuICAgICAgICB0aGlzLnNldExhYmVsKGNoaWxkTm9kZS5maXJzdENoaWxkLm5vZGVWYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGNoaWxkTm9kZS5ub2RlTmFtZSA9PT0gXCJkZXNjcmlwdGlvblwiKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBjaGlsZE5vZGUuZmlyc3RDaGlsZC5ub2RlVmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKGNoaWxkTm9kZS5ub2RlTmFtZSA9PT0gXCJjbGllbnRfc2V0dGluZ3NcIikge1xuICAgICAgICB0aGlzLnNldEljb24oY2hpbGROb2RlLmdldEF0dHJpYnV0ZSgnaWNvbicpKTtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjaGlsZE5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIHZhciBzdWJDaCA9IGNoaWxkTm9kZS5jaGlsZE5vZGVzW2pdO1xuICAgICAgICAgIGlmIChzdWJDaC5ub2RlTmFtZSA9PT0gJ3Jlc291cmNlcycpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzTWFuYWdlci5sb2FkRnJvbVhtbE5vZGUoc3ViQ2gpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3ViQ2gubm9kZU5hbWUgPT09ICdub2RlX3Byb3ZpZGVyJykge1xuICAgICAgICAgICAgdmFyIG5vZGVQcm92aWRlck5hbWUgPSBzdWJDaC5nZXRBdHRyaWJ1dGUoXCJhanhwQ2xhc3NcIik7XG4gICAgICAgICAgICB2YXIgbm9kZVByb3ZpZGVyT3B0aW9ucyA9IEpTT04ucGFyc2Uoc3ViQ2guZ2V0QXR0cmlidXRlKFwiYWp4cE9wdGlvbnNcIikpO1xuICAgICAgICAgICAgdGhpcy5ub2RlUHJvdmlkZXJEZWYgPSB7IG5hbWU6IG5vZGVQcm92aWRlck5hbWUsIG9wdGlvbnM6IG5vZGVQcm92aWRlck9wdGlvbnMgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIFJlcG9zaXRvcnk7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXBvc2l0b3J5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfbGFuZ0xvZ2dlciA9IHJlcXVpcmUoJy4uL2xhbmcvTG9nZ2VyJyk7XG5cbnZhciBfbGFuZ0xvZ2dlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nTG9nZ2VyKTtcblxudmFyIF9odHRwUHlkaW9BcGkgPSByZXF1aXJlKCcuLi9odHRwL1B5ZGlvQXBpJyk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2h0dHBQeWRpb0FwaSk7XG5cbnZhciBfUmVwb3NpdG9yeSA9IHJlcXVpcmUoJy4vUmVwb3NpdG9yeScpO1xuXG52YXIgX1JlcG9zaXRvcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVwb3NpdG9yeSk7XG5cbnZhciBfQ2VsbE1vZGVsID0gcmVxdWlyZSgnLi9DZWxsTW9kZWwnKTtcblxudmFyIF9DZWxsTW9kZWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ2VsbE1vZGVsKTtcblxudmFyIF9odHRwR2VuSW5kZXggPSByZXF1aXJlKCcuLi9odHRwL2dlbi9pbmRleCcpO1xuXG52YXIgX3V0aWxIYXNoZXJVdGlscyA9IHJlcXVpcmUoXCIuLi91dGlsL0hhc2hlclV0aWxzXCIpO1xuXG52YXIgX3V0aWxIYXNoZXJVdGlsczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsSGFzaGVyVXRpbHMpO1xuXG4vKipcbiAqIEFic3RyYWN0aW9uIG9mIHRoZSBjdXJyZW50bHkgbG9nZ2VkIHVzZXIuIENhbiBiZSBhIFwiZmFrZVwiIHVzZXIgd2hlbiB1c2VycyBtYW5hZ2VtZW50XG4gKiBzeXN0ZW0gaXMgZGlzYWJsZWRcbiAqL1xuXG52YXIgVXNlciA9IChmdW5jdGlvbiAoKSB7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBpZCBTdHJpbmcgVGhlIHVzZXIgdW5pcXVlIGlkXG4gICAqIEBwYXJhbSB4bWxEZWYgWE1MTm9kZSBSZWdpc3RyeSBGcmFnbWVudFxuICAgICAgKiBAcGFyYW0gcHlkaW9PYmplY3QgUHlkaW9cbiAgICovXG5cbiAgZnVuY3Rpb24gVXNlcihpZCwgeG1sRGVmLCBweWRpb09iamVjdCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBVc2VyKTtcblxuICAgIC8qKlxuICAgICAqIEB2YXIgU3RyaW5nXG4gICAgICovXG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIC8qKlxuICAgICAqIEB2YXIgUHlkaW9cbiAgICAgKi9cbiAgICB0aGlzLl9weWRpb09iamVjdCA9IHB5ZGlvT2JqZWN0O1xuICAgIC8qKlxuICAgICAqIEB2YXIgU3RyaW5nXG4gICAgICovXG4gICAgdGhpcy5hY3RpdmVSZXBvc2l0b3J5ID0gdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEB2YXIgQm9vbGVhblxuICAgICAqL1xuICAgIHRoaXMucmVhZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEB2YXIgQm9vbGVhblxuICAgICAqL1xuICAgIHRoaXMud3JpdGUgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAdmFyIEJvb2xlYW5cbiAgICAgKi9cbiAgICB0aGlzLmNyb3NzUmVwb3NpdG9yeUNvcHkgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBAdmFyIE1hcCgpXG4gICAgICovXG4gICAgdGhpcy5wcmVmZXJlbmNlcyA9IG5ldyBNYXAoKTtcbiAgICAvKipcbiAgICAgKiBAdmFyIE1hcCgpXG4gICAgICovXG4gICAgdGhpcy5yZXBvc2l0b3JpZXMgPSBuZXcgTWFwKCk7XG4gICAgLyoqXG4gICAgICogQHZhciBNYXAoKVxuICAgICAqL1xuICAgIHRoaXMuY3Jvc3NSZXBvc2l0b3JpZXMgPSBuZXcgTWFwKCk7XG4gICAgLyoqXG4gICAgICogQHZhciBCb29sZWFuXG4gICAgICovXG4gICAgdGhpcy5pc0FkbWluID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQHZhciBTdHJpbmdcbiAgICAgKi9cbiAgICB0aGlzLmxvY2sgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEB0eXBlIE1hcFxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgdGhpcy5fcGFyc2VkSlNPTkNhY2hlID0gbmV3IE1hcCgpO1xuXG4gICAgaWYgKHhtbERlZikge1xuICAgICAgdGhpcy5sb2FkRnJvbVhtbCh4bWxEZWYpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY3VycmVudCByZXBvc2l0b3J5XG4gICAqIEBwYXJhbSBpZCBTdHJpbmdcbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuc2V0QWN0aXZlUmVwb3NpdG9yeSA9IGZ1bmN0aW9uIHNldEFjdGl2ZVJlcG9zaXRvcnkoaWQpIHtcbiAgICB0aGlzLmFjdGl2ZVJlcG9zaXRvcnkgPSBpZDtcbiAgICBpZiAodGhpcy5yZXBvc2l0b3JpZXMuaGFzKGlkKSkge1xuICAgICAgdGhpcy5jcm9zc1JlcG9zaXRvcnlDb3B5ID0gdGhpcy5yZXBvc2l0b3JpZXMuZ2V0KGlkKS5hbGxvd0Nyb3NzUmVwb3NpdG9yeUNvcHk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNyb3NzUmVwb3NpdG9yaWVzLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMuY3Jvc3NSZXBvc2l0b3JpZXNbJ2RlbGV0ZSddKGlkKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgYWN0aXZlIHJlcG9zaXRvcnlcbiAgICogQHJldHVybnMgU3RyaW5nXG4gICAqL1xuXG4gIFVzZXIucHJvdG90eXBlLmdldEFjdGl2ZVJlcG9zaXRvcnkgPSBmdW5jdGlvbiBnZXRBY3RpdmVSZXBvc2l0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZVJlcG9zaXRvcnk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY3VycmVudCByZXBvIGlzIGFsbG93ZWQgdG8gYmUgcmVhZFxuICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAqL1xuXG4gIFVzZXIucHJvdG90eXBlLmNhblJlYWQgPSBmdW5jdGlvbiBjYW5SZWFkKCkge1xuICAgIHRyeSB7XG4gICAgICAvLyBUT0RPOiBnZXQgXCJyZWFkXCIgcHJvcGVydHkgZnJvbSByb290IG5vZGUgbWV0YWRhdGFcbiAgICAgIHZhciBtZXRhUm9vdCA9IHRoaXMuX3B5ZGlvT2JqZWN0LmdldENvbnRleHRIb2xkZXIoKS5nZXRSb290Tm9kZSgpLmdldE1ldGFkYXRhKCk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgICByZXR1cm4gdHJ1ZTtcbiAgICAvL3JldHVybiB0aGlzLnJlYWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY3VycmVudCByZXBvIGlzIGFsbG93ZWQgdG8gYmUgd3JpdHRlblxuICAgKiBAcmV0dXJucyBCb29sZWFuXG4gICAqL1xuXG4gIFVzZXIucHJvdG90eXBlLmNhbldyaXRlID0gZnVuY3Rpb24gY2FuV3JpdGUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBtZXRhUm9vdCA9IHRoaXMuX3B5ZGlvT2JqZWN0LmdldENvbnRleHRIb2xkZXIoKS5nZXRSb290Tm9kZSgpLmdldE1ldGFkYXRhKCk7XG4gICAgICByZXR1cm4gIW1ldGFSb290LmhhcyhcIm5vZGVfcmVhZG9ubHlcIikgfHwgIW1ldGFSb290LmdldChcIm5vZGVfcmVhZG9ubHlcIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogV2hldGhlciBjdXJyZW50IHJlcG8gaXMgYWxsb3dlZCB0byBiZSBjcm9zcy1jb3BpZWRcbiAgICogQHJldHVybnMgQm9vbGVhblxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5jYW5Dcm9zc1JlcG9zaXRvcnlDb3B5ID0gZnVuY3Rpb24gY2FuQ3Jvc3NSZXBvc2l0b3J5Q29weSgpIHtcbiAgICByZXR1cm4gdGhpcy5jcm9zc1JlcG9zaXRvcnlDb3B5O1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgYSB1c2VyIHByZWZlcmVuY2UgYnkgaXRzIG5hbWVcbiAgICogQHJldHVybnMgTWl4ZWRcbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuZ2V0UHJlZmVyZW5jZSA9IGZ1bmN0aW9uIGdldFByZWZlcmVuY2UocHJlZk5hbWUsIGZyb21KU09OKSB7XG4gICAgaWYgKGZyb21KU09OKSB7XG4gICAgICB2YXIgdGVzdCA9IHRoaXMuX3BhcnNlZEpTT05DYWNoZS5nZXQocHJlZk5hbWUpO1xuICAgICAgaWYgKHRlc3QpIHJldHVybiB0ZXN0O1xuICAgIH1cbiAgICB2YXIgdmFsdWUgPSB0aGlzLnByZWZlcmVuY2VzLmdldChwcmVmTmFtZSk7XG4gICAgaWYgKGZyb21KU09OKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBwYXJzZWQgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICB0aGlzLl9wYXJzZWRKU09OQ2FjaGUuc2V0KHByZWZOYW1lLCBwYXJzZWQpO1xuICAgICAgICAgIGlmICghcGFyc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAod2luZG93LmNvbnNvbGUpIHtcbiAgICAgICAgICAgIF9sYW5nTG9nZ2VyMlsnZGVmYXVsdCddLmxvZyhcIkVycm9yIHBhcnNpbmcgSlNPTiBpbiBwcmVmZXJlbmNlcyAoXCIgKyBwcmVmTmFtZSArIFwiKS4gWW91IHNob3VsZCBjb250YWN0IHN5c3RlbSBhZG1pbiBhbmQgY2xlYXIgdXNlciBwcmVmZXJlbmNlcy5cIik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFsZXJ0KFwiRXJyb3IgcGFyc2luZyBKU09OIGluIHByZWZlcmVuY2VzLiBZb3Ugc2hvdWxkIGNvbnRhY3Qgc3lzdGVtIGFkbWluIGFuZCBjbGVhciB1c2VyIHByZWZlcmVuY2VzLlwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHJlcG9zaXRvcmllcyBcbiAgICogQHJldHVybnMge01hcH1cbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuZ2V0UmVwb3NpdG9yaWVzTGlzdCA9IGZ1bmN0aW9uIGdldFJlcG9zaXRvcmllc0xpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yaWVzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXQgYSBwcmVmZXJlbmNlIHZhbHVlXG4gICAqIEBwYXJhbSBwcmVmTmFtZSBTdHJpbmdcbiAgICogQHBhcmFtIHByZWZWYWx1ZSBNaXhlZFxuICAgKiBAcGFyYW0gdG9KU09OIEJvb2xlYW4gV2hldGhlciB0byBjb252ZXJ0IHRoZSB2YWx1ZSB0byBKU09OIHJlcHJlc2VudGF0aW9uXG4gICAqL1xuXG4gIFVzZXIucHJvdG90eXBlLnNldFByZWZlcmVuY2UgPSBmdW5jdGlvbiBzZXRQcmVmZXJlbmNlKHByZWZOYW1lLCBwcmVmVmFsdWUpIHtcbiAgICB2YXIgdG9KU09OID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMl07XG5cbiAgICBpZiAodG9KU09OKSB7XG4gICAgICB0aGlzLl9wYXJzZWRKU09OQ2FjaGVbJ2RlbGV0ZSddKHByZWZOYW1lKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByZWZWYWx1ZSA9IEpTT04uc3RyaW5naWZ5KHByZWZWYWx1ZSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChjb25zb2xlKSB7XG4gICAgICAgICAgdmFyIGlzQ3ljbGljID0gZnVuY3Rpb24gaXNDeWNsaWMob2JqKSB7XG4gICAgICAgICAgICB2YXIgc2Vlbk9iamVjdHMgPSBbXTtcblxuICAgICAgICAgICAgZnVuY3Rpb24gZGV0ZWN0KG9iaikge1xuICAgICAgICAgICAgICBpZiAob2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNlZW5PYmplY3RzLmluZGV4T2Yob2JqKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZWVuT2JqZWN0cy5wdXNoKG9iaik7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGRldGVjdChvYmpba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cob2JqLCAnY3ljbGUgYXQgJyArIGtleSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZGV0ZWN0KG9iaik7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2F1Z2h0IHRvSlNPTiBlcnJvciBcIiArIGUubWVzc2FnZSwgcHJlZlZhbHVlLCBpc0N5Y2xpYyhwcmVmVmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucHJlZmVyZW5jZXMuc2V0KHByZWZOYW1lLCBwcmVmVmFsdWUpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlcG9zaXRvcmllcyBhcyBhIGJ1bmNoXG4gICAqIEBwYXJhbSByZXBvSGFzaCBNYXBcbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuc2V0UmVwb3NpdG9yaWVzTGlzdCA9IGZ1bmN0aW9uIHNldFJlcG9zaXRvcmllc0xpc3QocmVwb0hhc2gpIHtcbiAgICB0aGlzLnJlcG9zaXRvcmllcyA9IHJlcG9IYXNoO1xuICAgIC8vIGZpbHRlciByZXBvc2l0b3JpZXMgb25jZSBmb3IgYWxsXG4gICAgdGhpcy5jcm9zc1JlcG9zaXRvcmllcyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLnJlcG9zaXRvcmllcy5mb3JFYWNoKChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgaWYgKHZhbHVlLmFsbG93Q3Jvc3NSZXBvc2l0b3J5Q29weSAmJiB2YWx1ZS5hY2Nlc3NUeXBlICE9ICdpbmJveCcpIHtcbiAgICAgICAgdGhpcy5jcm9zc1JlcG9zaXRvcmllcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSkuYmluZCh0aGlzKSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlcmUgYXJlIGFueSByZXBvc2l0b3JpZXMgYWxsb3dpbmcgY3Jvc3NDb3B5XG4gICAqIEByZXR1cm5zIEJvb2xlYW5cbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuaGFzQ3Jvc3NSZXBvc2l0b3JpZXMgPSBmdW5jdGlvbiBoYXNDcm9zc1JlcG9zaXRvcmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5jcm9zc1JlcG9zaXRvcmllcy5zaXplO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgcmVwb3NpdG9yaWVzIGFsbG93aW5nIGNyb3NzIGNvcHlcbiAgICogQHJldHVybnMge01hcH1cbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuZ2V0Q3Jvc3NSZXBvc2l0b3JpZXMgPSBmdW5jdGlvbiBnZXRDcm9zc1JlcG9zaXRvcmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5jcm9zc1JlcG9zaXRvcmllcztcbiAgfTtcblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHJlcG9zaXRvcnkgSWNvblxuICAgKiBAcGFyYW0gcmVwb0lkIFN0cmluZ1xuICAgKiBAcmV0dXJucyBTdHJpbmdcbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuZ2V0UmVwb3NpdG9yeUljb24gPSBmdW5jdGlvbiBnZXRSZXBvc2l0b3J5SWNvbihyZXBvSWQpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvSWNvbi5nZXQocmVwb0lkKTtcbiAgfTtcblxuICAvKipcbiAgICogU2VuZCB0aGUgcHJlZmVyZW5jZSB0byB0aGUgc2VydmVyIGZvciBzYXZpbmdcbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuc2F2ZVByZWZlcmVuY2UgPSBmdW5jdGlvbiBzYXZlUHJlZmVyZW5jZSgpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgaWYgKCF0aGlzLnByZWZlcmVuY2VzLmhhcygnZ3VpX3ByZWZlcmVuY2VzJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGd1aVByZWZzID0gdGhpcy5wcmVmZXJlbmNlcy5nZXQoJ2d1aV9wcmVmZXJlbmNlcycpO1xuICAgIHZhciBzdHJpbmdQcmVmID0gX3V0aWxIYXNoZXJVdGlsczJbJ2RlZmF1bHQnXS5iYXNlNjRfZW5jb2RlKGd1aVByZWZzKTtcbiAgICB0aGlzLmdldElkbVVzZXIoKS50aGVuKGZ1bmN0aW9uIChpZG1Vc2VyKSB7XG4gICAgICBpZG1Vc2VyLkF0dHJpYnV0ZXNbJ3ByZWZlcmVuY2VzJ10gPSBKU09OLnN0cmluZ2lmeSh7IGd1aV9wcmVmZXJlbmNlczogc3RyaW5nUHJlZiB9KTtcbiAgICAgIHZhciBhcGkgPSBuZXcgX2h0dHBHZW5JbmRleC5Vc2VyU2VydmljZUFwaShfaHR0cFB5ZGlvQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKSk7XG4gICAgICBhcGkucHV0VXNlcihpZG1Vc2VyLkxvZ2luLCBpZG1Vc2VyKS50aGVuKGZ1bmN0aW9uIChvaykge1xuICAgICAgICBfdGhpcy5pZG1Vc2VyID0gaWRtVXNlcjtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPElkbVVzZXI+fVxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5nZXRJZG1Vc2VyID0gZnVuY3Rpb24gZ2V0SWRtVXNlcigpIHtcbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIGlmICh0aGlzLmlkbVVzZXIpIHtcblxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmlkbVVzZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX3JldCA9IChmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgdmFyIGFwaSA9IG5ldyBfaHR0cEdlbkluZGV4LlVzZXJTZXJ2aWNlQXBpKF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpKTtcbiAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgX2h0dHBHZW5JbmRleC5SZXN0U2VhcmNoVXNlclJlcXVlc3QoKTtcbiAgICAgICAgdmFyIHF1ZXJ5ID0gbmV3IF9odHRwR2VuSW5kZXguSWRtVXNlclNpbmdsZVF1ZXJ5KCk7XG4gICAgICAgIHF1ZXJ5LkxvZ2luID0gX3RoaXMyLmlkO1xuICAgICAgICByZXF1ZXN0LlF1ZXJpZXMgPSBbcXVlcnldO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHY6IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIGFwaS5zZWFyY2hVc2VycyhyZXF1ZXN0KS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5Ub3RhbCA9PT0gMCB8fCAhcmVzdWx0LlVzZXJzKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ2Fubm90IGZpbmQgdXNlcicpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBfdGhpczIuaWRtVXNlciA9IHJlc3VsdC5Vc2Vyc1swXTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQuVXNlcnNbMF0pO1xuICAgICAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgfSkoKTtcblxuICAgICAgaWYgKHR5cGVvZiBfcmV0ID09PSAnb2JqZWN0JykgcmV0dXJuIF9yZXQudjtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q2VsbE1vZGVsPn1cbiAgICovXG5cbiAgVXNlci5wcm90b3R5cGUuZ2V0QWN0aXZlUmVwb3NpdG9yeUFzQ2VsbCA9IGZ1bmN0aW9uIGdldEFjdGl2ZVJlcG9zaXRvcnlBc0NlbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yaWVzLmdldCh0aGlzLmFjdGl2ZVJlcG9zaXRvcnkpLmFzQ2VsbCgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWN0aXZlIHJlcG9zaXRvcnkgb2JqZWN0XG4gICAqIEByZXR1cm4ge1JlcG9zaXRvcnl9XG4gICAqL1xuXG4gIFVzZXIucHJvdG90eXBlLmdldEFjdGl2ZVJlcG9zaXRvcnlPYmplY3QgPSBmdW5jdGlvbiBnZXRBY3RpdmVSZXBvc2l0b3J5T2JqZWN0KCkge1xuICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcmllcy5nZXQodGhpcy5hY3RpdmVSZXBvc2l0b3J5KTtcbiAgfTtcblxuICAvKipcbiAgICogUGFyc2UgdGhlIHJlZ2lzdHJ5IGZyYWdtZW50IHRvIGxvYWQgdGhpcyB1c2VyXG4gICAqIEBwYXJhbSB1c2VyTm9kZXMgRE9NTm9kZVxuICAgKi9cblxuICBVc2VyLnByb3RvdHlwZS5sb2FkRnJvbVhtbCA9IGZ1bmN0aW9uIGxvYWRGcm9tWG1sKHVzZXJOb2Rlcykge1xuXG4gICAgdmFyIHJlcG9zaXRvcmllcyA9IG5ldyBNYXAoKSxcbiAgICAgICAgYWN0aXZlTm9kZSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgaSA9IHVuZGVmaW5lZCxcbiAgICAgICAgaiA9IHVuZGVmaW5lZDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgdXNlck5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodXNlck5vZGVzW2ldLm5vZGVOYW1lID09PSBcImFjdGl2ZV9yZXBvXCIpIHtcbiAgICAgICAgYWN0aXZlTm9kZSA9IHVzZXJOb2Rlc1tpXTtcbiAgICAgIH0gZWxzZSBpZiAodXNlck5vZGVzW2ldLm5vZGVOYW1lID09PSBcInJlcG9zaXRvcmllc1wiKSB7XG4gICAgICAgIGZvciAoaiA9IDA7IGogPCB1c2VyTm9kZXNbaV0uY2hpbGROb2Rlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIHZhciByZXBvQ2hpbGQgPSB1c2VyTm9kZXNbaV0uY2hpbGROb2Rlc1tqXTtcbiAgICAgICAgICBpZiAocmVwb0NoaWxkLm5vZGVOYW1lID09PSBcInJlcG9cIikge1xuICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBuZXcgX1JlcG9zaXRvcnkyWydkZWZhdWx0J10ocmVwb0NoaWxkLmdldEF0dHJpYnV0ZShcImlkXCIpLCByZXBvQ2hpbGQpO1xuICAgICAgICAgICAgcmVwb3NpdG9yaWVzLnNldChyZXBvQ2hpbGQuZ2V0QXR0cmlidXRlKFwiaWRcIiksIHJlcG9zaXRvcnkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFJlcG9zaXRvcmllc0xpc3QocmVwb3NpdG9yaWVzKTtcbiAgICAgIH0gZWxzZSBpZiAodXNlck5vZGVzW2ldLm5vZGVOYW1lID09PSBcInByZWZlcmVuY2VzXCIpIHtcbiAgICAgICAgZm9yIChqID0gMDsgaiA8IHVzZXJOb2Rlc1tpXS5jaGlsZE5vZGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgdmFyIHByZWZDaGlsZCA9IHVzZXJOb2Rlc1tpXS5jaGlsZE5vZGVzW2pdO1xuICAgICAgICAgIGlmIChwcmVmQ2hpbGQubm9kZU5hbWUgPT09IFwicHJlZlwiKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBwcmVmQ2hpbGQuZ2V0QXR0cmlidXRlKFwidmFsdWVcIik7XG4gICAgICAgICAgICBpZiAoIXZhbHVlICYmIHByZWZDaGlsZC5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICAgIC8vIFJldHJpZXZlIHZhbHVlIGZyb20gQ0RBVEFcbiAgICAgICAgICAgICAgdmFsdWUgPSBwcmVmQ2hpbGQuZmlyc3RDaGlsZC5ub2RlVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldFByZWZlcmVuY2UocHJlZkNoaWxkLmdldEF0dHJpYnV0ZShcIm5hbWVcIiksIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodXNlck5vZGVzW2ldLm5vZGVOYW1lID09PSBcInNwZWNpYWxfcmlnaHRzXCIpIHtcbiAgICAgICAgdmFyIGF0dHIgPSB1c2VyTm9kZXNbaV0uZ2V0QXR0cmlidXRlKFwiaXNfYWRtaW5cIik7XG4gICAgICAgIGlmIChhdHRyICYmIGF0dHIgPT09IFwiMVwiKSB7XG4gICAgICAgICAgdGhpcy5pc0FkbWluID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlck5vZGVzW2ldLmdldEF0dHJpYnV0ZShcImxvY2tcIikpIHtcbiAgICAgICAgICB0aGlzLmxvY2sgPSB1c2VyTm9kZXNbaV0uZ2V0QXR0cmlidXRlKFwibG9ja1wiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBNYWtlIHN1cmUgaXQgaGFwcGVucyBhdCB0aGUgZW5kXG4gICAgaWYgKGFjdGl2ZU5vZGUpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlUmVwb3NpdG9yeShhY3RpdmVOb2RlLmdldEF0dHJpYnV0ZSgnaWQnKSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBVc2VyO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfbGFuZ09ic2VydmFibGUgPSByZXF1aXJlKCcuLi9sYW5nL09ic2VydmFibGUnKTtcblxudmFyIF9sYW5nT2JzZXJ2YWJsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sYW5nT2JzZXJ2YWJsZSk7XG5cbnZhciBfaHR0cFB5ZGlvQXBpID0gcmVxdWlyZSgnLi4vaHR0cC9QeWRpb0FwaScpO1xuXG52YXIgX2h0dHBQeWRpb0FwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9odHRwUHlkaW9BcGkpO1xuXG4vKipcbiAqIEEgbW9uaXRvciBmb3IgdXNlciBcImlkbGVcIiBzdGF0ZSB0byBwcmV2ZW50IHNlc3Npb24gdGltaW5nIG91dC5cbiAqL1xuXG52YXIgQWN0aXZpdHlNb25pdG9yID0gKGZ1bmN0aW9uIChfT2JzZXJ2YWJsZSkge1xuICAgIF9pbmhlcml0cyhBY3Rpdml0eU1vbml0b3IsIF9PYnNlcnZhYmxlKTtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHB5ZGlvIFB5ZGlvXG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBBY3Rpdml0eU1vbml0b3IocHlkaW8pIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWN0aXZpdHlNb25pdG9yKTtcblxuICAgICAgICBfT2JzZXJ2YWJsZS5jYWxsKHRoaXMpO1xuXG4gICAgICAgIHZhciBzZXJ2ZXJTZXNzaW9uVGltZSA9IHB5ZGlvLlBhcmFtZXRlcnMuZ2V0KCdzZXNzaW9uX3RpbWVvdXQnKTtcbiAgICAgICAgdmFyIGNsaWVudFNlc3Npb25UaW1lID0gcHlkaW8uUGFyYW1ldGVycy5nZXQoJ2NsaWVudF90aW1lb3V0Jyk7XG4gICAgICAgIHZhciB3YXJuaW5nTWludXRlcyA9IHB5ZGlvLlBhcmFtZXRlcnMuZ2V0KCdjbGllbnRfdGltZW91dF93YXJuaW5nJyk7XG5cbiAgICAgICAgdGhpcy5fcHlkaW8gPSBweWRpbztcbiAgICAgICAgdGhpcy5fd2FybmluZ01pbnV0ZXMgPSAzO1xuICAgICAgICB0aGlzLl9yZW5ld01pbnV0ZXMgPSAxMDtcbiAgICAgICAgdGhpcy5fbG9nb3V0TWludXRlcyA9IDA7XG5cbiAgICAgICAgdGhpcy5fbGFzdEFjdGl2ZSA9IDA7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ2FjdGl2ZSc7XG4gICAgICAgIHRoaXMuX2xvbmdUYXNrUnVubmluZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmICghc2VydmVyU2Vzc2lvblRpbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZXJ2ZXJTZXNzaW9uVGltZSA8PSA2MCAqIHRoaXMuX3JlbmV3TWludXRlcykge1xuICAgICAgICAgICAgdGhpcy5fcmVuZXdNaW51dGVzID0gMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2xpZW50U2Vzc2lvblRpbWUgPT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5ld1RpbWUgPSBzZXJ2ZXJTZXNzaW9uVGltZSAtIHRoaXMuX3JlbmV3TWludXRlcyAqIDYwO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3B5ZGlvLnVzZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0U2VydmVyTG9uZ1BvbGxlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcHlkaW8ub2JzZXJ2ZSgndXNlcl9sb2dnZWQnLCBmdW5jdGlvbiAodSkge1xuICAgICAgICAgICAgICAgIGlmICh1KSBfdGhpcy5zdGFydFNlcnZlckxvbmdQb2xsZXIoKTtlbHNlIF90aGlzLnN0b3BTZXJ2ZXJMb25nUG9sbGVyKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NlcnZlclNlc3Npb25UaW1lID0gc2VydmVyU2Vzc2lvblRpbWU7XG4gICAgICAgIGlmICh3YXJuaW5nTWludXRlcykge1xuICAgICAgICAgICAgdGhpcy5fd2FybmluZ01pbnV0ZXMgPSB3YXJuaW5nTWludXRlcztcbiAgICAgICAgICAgIHRoaXMuX3dhcm5pbmdUaW1lID0gY2xpZW50U2Vzc2lvblRpbWUgLSB0aGlzLl93YXJuaW5nTWludXRlcyAqIDYwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fd2FybmluZ1RpbWUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sb2dvdXRUaW1lID0gY2xpZW50U2Vzc2lvblRpbWUgLSB0aGlzLl9sb2dvdXRNaW51dGVzICogNjA7XG4gICAgICAgIHRoaXMuX3JlbmV3VGltZSA9IHNlcnZlclNlc3Npb25UaW1lIC0gdGhpcy5fcmVuZXdNaW51dGVzICogNjA7XG4gICAgICAgIHRoaXMuX2xhc3RBY3RpdmUgPSB0aGlzLmdldE5vdygpO1xuXG4gICAgICAgIHRoaXMuX2FjdGl2aXR5T2JzZXJ2ZXIgPSBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLl9weWRpby51c2VyKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHlkaW8ub2JzZXJ2ZSgndXNlcl9sb2dnZWQnLCBmdW5jdGlvbiAodSkge1xuICAgICAgICAgICAgX3RoaXMudXBkYXRlTGFzdEFjdGl2ZSgpO1xuICAgICAgICAgICAgaWYgKHUpIF90aGlzLnJlZ2lzdGVyKCk7ZWxzZSBfdGhpcy51bnJlZ2lzdGVyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEFjdGl2aXR5TW9uaXRvci5wcm90b3R5cGUuc3RhcnRTZXJ2ZXJMb25nUG9sbGVyID0gZnVuY3Rpb24gc3RhcnRTZXJ2ZXJMb25nUG9sbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5fc2VydmVySW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXJ2ZXJJbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF9odHRwUHlkaW9BcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldE9yVXBkYXRlSnd0KCkudGhlbihmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgIH0sIE1hdGgubWluKE1hdGgucG93KDIsIDMxKSAtIDEsIHRoaXMuX3JlbmV3VGltZSAqIDEwMDApKTtcbiAgICB9O1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5zdG9wU2VydmVyTG9uZ1BvbGxlciA9IGZ1bmN0aW9uIHN0b3BTZXJ2ZXJMb25nUG9sbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5fc2VydmVySW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fc2VydmVySW50ZXJ2YWwpO1xuICAgICAgICAgICAgdGhpcy5fc2VydmVySW50ZXJ2YWwgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIEFjdGl2aXR5TW9uaXRvci5wcm90b3R5cGUuc3RhcnRJZGxlUG9sbGVyID0gZnVuY3Rpb24gc3RhcnRJZGxlUG9sbGVyKCkge1xuICAgICAgICB2YXIgcmVzdGFydEF0ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgICBpZiAocmVzdGFydEF0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faWRsZUludGVydmFsKSBjbGVhckludGVydmFsKHRoaXMuX2lkbGVJbnRlcnZhbCk7XG4gICAgICAgICAgICB0aGlzLl9pZGxlSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh0aGlzLmlkbGVPYnNlcnZlci5iaW5kKHRoaXMpLCByZXN0YXJ0QXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lkbGVJbnRlcnZhbCkgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5faWRsZUludGVydmFsID0gc2V0SW50ZXJ2YWwodGhpcy5pZGxlT2JzZXJ2ZXIuYmluZCh0aGlzKSwgNTAwMCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5zdG9wSWRsZVBvbGxlciA9IGZ1bmN0aW9uIHN0b3BJZGxlUG9sbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5faWRsZUludGVydmFsKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuX2lkbGVJbnRlcnZhbCk7XG4gICAgICAgICAgICB0aGlzLl9pZGxlSW50ZXJ2YWwgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIEFjdGl2aXR5TW9uaXRvci5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbiByZWdpc3RlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2aXR5T2JzZXJ2ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIEFscmVhZHkgcmVnaXN0ZXJlZFxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ2FjdGl2ZSc7XG4gICAgICAgIHRoaXMuX2FjdGl2aXR5T2JzZXJ2ZXIgPSB0aGlzLmFjdGl2aXR5T2JzZXJ2ZXIuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5fcHlkaW8ub2JzZXJ2ZSgndXNlcl9hY3Rpdml0eScsIHRoaXMuX2FjdGl2aXR5T2JzZXJ2ZXIpO1xuICAgICAgICB0aGlzLl9weWRpby5vYnNlcnZlKCdzZXJ2ZXJfYW5zd2VyJywgdGhpcy5fYWN0aXZpdHlPYnNlcnZlcik7XG4gICAgICAgIHRoaXMuX3B5ZGlvLm9ic2VydmUoJ2xvbmd0YXNrX3N0YXJ0aW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMyLl9sb25nVGFza1J1bm5pbmcgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcHlkaW8ub2JzZXJ2ZSgnbG9uZ3Rhc2tfZmluaXNoZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpczIuX2xvbmdUYXNrUnVubmluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdGFydElkbGVQb2xsZXIoKTtcbiAgICAgICAgdGhpcy5zdGFydFNlcnZlckxvbmdQb2xsZXIoKTtcbiAgICB9O1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS51bnJlZ2lzdGVyID0gZnVuY3Rpb24gdW5yZWdpc3RlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2aXR5T2JzZXJ2ZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIEFscmVhZHkgaW5hY3RpdmVcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0b3BJZGxlUG9sbGVyKCk7XG4gICAgICAgIHRoaXMuc3RvcFNlcnZlckxvbmdQb2xsZXIoKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSAnaW5hY3RpdmUnO1xuICAgICAgICB0aGlzLl9weWRpby5zdG9wT2JzZXJ2aW5nKCd1c2VyX2FjdGl2aXR5JywgdGhpcy5fYWN0aXZpdHlPYnNlcnZlcik7XG4gICAgICAgIHRoaXMuX3B5ZGlvLnN0b3BPYnNlcnZpbmcoJ3NlcnZlcl9hbnN3ZXInLCB0aGlzLl9hY3Rpdml0eU9ic2VydmVyKTtcbiAgICAgICAgdGhpcy5fcHlkaW8uc3RvcE9ic2VydmluZygnbG9uZ3Rhc2tfc3RhcnRpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpczMuX2xvbmdUYXNrUnVubmluZyA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9weWRpby5zdG9wT2JzZXJ2aW5nKCdsb25ndGFza19maW5pc2hlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMy5fbG9uZ1Rhc2tSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9hY3Rpdml0eU9ic2VydmVyID0gbnVsbDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTGlzdGVuZXIgdG8gY2xlYXIgdGhlIHRpbWVyXG4gICAgICovXG5cbiAgICBBY3Rpdml0eU1vbml0b3IucHJvdG90eXBlLmFjdGl2aXR5T2JzZXJ2ZXIgPSBmdW5jdGlvbiBhY3Rpdml0eU9ic2VydmVyKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudCAmJiAoZXZlbnQubWVtbyAmJiBldmVudC5tZW1vLmRpc2NyZXRlIHx8IGV2ZW50LmRpc2NyZXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ3dhcm5pbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmV4aXRJZGxlU3RhdGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faW50ZXJuYWxUaW1lcikgY2xlYXJUaW1lb3V0KHRoaXMuX2ludGVybmFsVGltZXIpO1xuICAgICAgICB0aGlzLl9pbnRlcm5hbFRpbWVyID0gc2V0VGltZW91dCh0aGlzLnVwZGF0ZUxhc3RBY3RpdmUuYmluZCh0aGlzKSwgMTAwMCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNldCBsYXN0IGFjdGl2aXR5IHRpbWVcbiAgICAgKi9cblxuICAgIEFjdGl2aXR5TW9uaXRvci5wcm90b3R5cGUudXBkYXRlTGFzdEFjdGl2ZSA9IGZ1bmN0aW9uIHVwZGF0ZUxhc3RBY3RpdmUoKSB7XG4gICAgICAgIHRoaXMuX2xhc3RBY3RpdmUgPSB0aGlzLmdldE5vdygpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0ZW5lciBmb3IgXCJpZGxlXCIgc3RhdGUgb2YgdGhlIHVzZXJcbiAgICAgKi9cblxuICAgIEFjdGl2aXR5TW9uaXRvci5wcm90b3R5cGUuaWRsZU9ic2VydmVyID0gZnVuY3Rpb24gaWRsZU9ic2VydmVyKCkge1xuICAgICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgICB2YXIgaWRsZVRpbWUgPSB0aGlzLmdldE5vdygpIC0gdGhpcy5fbGFzdEFjdGl2ZTtcbiAgICAgICAgaWYgKHRoaXMuX3N0YXRlID09PSAnaW5hY3RpdmUnKSByZXR1cm47XG4gICAgICAgIGlmICh0aGlzLl9sb25nVGFza1J1bm5pbmcpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGFzdEFjdGl2ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vY29uc29sZS5sb2coaWRsZVRpbWUsIHRoaXMuX2xvZ291dFRpbWUpO1xuICAgICAgICBpZiAoaWRsZVRpbWUgPj0gdGhpcy5fbG9nb3V0VGltZSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVXYXJuaW5nU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlID0gJ2FjdGl2ZSc7XG4gICAgICAgICAgICB0aGlzLnN0b3BJZGxlUG9sbGVyKCk7XG4gICAgICAgICAgICB0aGlzLnN0b3BTZXJ2ZXJMb25nUG9sbGVyKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczQuX3B5ZGlvLmdldENvbnRyb2xsZXIoKS5maXJlRGVmYXVsdEFjdGlvbihcImV4cGlyZVwiKTtcbiAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl93YXJuaW5nVGltZSAmJiBpZGxlVGltZSA+PSB0aGlzLl93YXJuaW5nVGltZSkge1xuICAgICAgICAgICAgdmFyIHRpbWVyU3RyaW5nID0gdGhpcy5nZXRXYXJuaW5nVGltZXIodGhpcy5fbG9nb3V0VGltZSAtIGlkbGVUaW1lKTtcbiAgICAgICAgICAgIHRoaXMuc2V0V2FybmluZ1N0YXRlKHRpbWVyU3RyaW5nKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZWFjdGl2YXRlIHdpbmRvd1xuICAgICAqL1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5leGl0SWRsZVN0YXRlID0gZnVuY3Rpb24gZXhpdElkbGVTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVXYXJuaW5nU3RhdGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVMYXN0QWN0aXZlKCk7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ2FjdGl2ZSc7XG4gICAgICAgIHRoaXMuc3RhcnRJZGxlUG9sbGVyKDUwMDApO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBQdXQgdGhlIHdpbmRvdyBpbiBcIndhcm5pbmdcIiBzdGF0ZSA6IG92ZXJsYXksIHNoYWtpbmcgdGltZXIsIGNocm9ub21ldGVyLlxuICAgICAqL1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5zZXRXYXJuaW5nU3RhdGUgPSBmdW5jdGlvbiBzZXRXYXJuaW5nU3RhdGUod2FybmluZ1RpbWVyU3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ3dhcm5pbmcnO1xuICAgICAgICB0aGlzLnN0YXJ0SWRsZVBvbGxlcigxMDAwKTtcblxuICAgICAgICB0aGlzLl9weWRpby5ub3RpZnkoJ2FjdGl2aXR5X3N0YXRlX2NoYW5nZScsIHtcbiAgICAgICAgICAgIGFjdGl2ZVN0YXRlOiAnd2FybmluZycsXG4gICAgICAgICAgICBsYXN0QWN0aXZlU2luY2U6IHRoaXMuX3dhcm5pbmdUaW1lIC8gNjAsXG4gICAgICAgICAgICB0aW1lclN0cmluZzogd2FybmluZ1RpbWVyU3RyaW5nXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDaHJvbm9tZXRlciBmb3Igd2FybmluZyBiZWZvcmUgdGltZW91dFxuICAgICAqIEBwYXJhbSB0aW1lIEludGVnZXJcbiAgICAgKi9cblxuICAgIEFjdGl2aXR5TW9uaXRvci5wcm90b3R5cGUuZ2V0V2FybmluZ1RpbWVyID0gZnVuY3Rpb24gZ2V0V2FybmluZ1RpbWVyKHRpbWUpIHtcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IodGltZSAvIDYwKSArICdtbicgKyB0aW1lICUgNjAgKyAncyc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIG92ZXJsYXkgb2Ygd2FybmluZyBzdGF0ZVxuICAgICAqL1xuXG4gICAgQWN0aXZpdHlNb25pdG9yLnByb3RvdHlwZS5yZW1vdmVXYXJuaW5nU3RhdGUgPSBmdW5jdGlvbiByZW1vdmVXYXJuaW5nU3RhdGUoKSB7XG4gICAgICAgIHRoaXMuX3B5ZGlvLm5vdGlmeSgnYWN0aXZpdHlfc3RhdGVfY2hhbmdlJywge1xuICAgICAgICAgICAgYWN0aXZlU3RhdGU6ICdhY3RpdmUnXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBVdGlsaXR5IHRvIGdldCB0aGUgdGltZVxuICAgICAqIEByZXR1cm5zIEludGVnZXJcbiAgICAgKi9cblxuICAgIEFjdGl2aXR5TW9uaXRvci5wcm90b3R5cGUuZ2V0Tm93ID0gZnVuY3Rpb24gZ2V0Tm93KCkge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApO1xuICAgIH07XG5cbiAgICByZXR1cm4gQWN0aXZpdHlNb25pdG9yO1xufSkoX2xhbmdPYnNlcnZhYmxlMlsnZGVmYXVsdCddKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQWN0aXZpdHlNb25pdG9yO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20vPi5cbiAqXG4gKi9cbi8qKlxuICogVXRpbGl0YXJ5IGNsYXNzIGZvciBsYW5ndWFnZSBzcGVjaWZpYyBtZXRob2RzXG4gKi9cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG52YXIgRnVuY1V0aWxzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBGdW5jVXRpbHMoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBGdW5jVXRpbHMpO1xuICAgIH1cblxuICAgIEZ1bmNVdGlscy5FbXB0eSA9IGZ1bmN0aW9uIEVtcHR5KCkge307XG5cbiAgICBGdW5jVXRpbHMuSWRlbnRpdHkgPSBmdW5jdGlvbiBJZGVudGl0eShvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9O1xuXG4gICAgRnVuY1V0aWxzLmV4ZWN1dGVGdW5jdGlvbkJ5TmFtZSA9IGZ1bmN0aW9uIGV4ZWN1dGVGdW5jdGlvbkJ5TmFtZShmdW5jdGlvbk5hbWUsIGNvbnRleHQpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpO1xuICAgICAgICB2YXIgbmFtZXNwYWNlcyA9IGZ1bmN0aW9uTmFtZS5zcGxpdChcIi5cIik7XG4gICAgICAgIHZhciBmdW5jID0gbmFtZXNwYWNlcy5wb3AoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lc3BhY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb250ZXh0ID0gY29udGV4dFtuYW1lc3BhY2VzW2ldXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGV4dFtmdW5jXS5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICB9O1xuXG4gICAgRnVuY1V0aWxzLmdldEZ1bmN0aW9uQnlOYW1lID0gZnVuY3Rpb24gZ2V0RnVuY3Rpb25CeU5hbWUoZnVuY3Rpb25OYW1lLCBjb250ZXh0KSB7XG4gICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKTtcbiAgICAgICAgdmFyIG5hbWVzcGFjZXMgPSBmdW5jdGlvbk5hbWUuc3BsaXQoXCIuXCIpO1xuICAgICAgICB2YXIgZnVuYyA9IG5hbWVzcGFjZXMucG9wKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXNwYWNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCFjb250ZXh0W25hbWVzcGFjZXNbaV1dKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZXh0ID0gY29udGV4dFtuYW1lc3BhY2VzW2ldXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGV4dFtmdW5jXTtcbiAgICB9O1xuXG4gICAgRnVuY1V0aWxzLmJ1ZmZlckNhbGxiYWNrID0gZnVuY3Rpb24gYnVmZmVyQ2FsbGJhY2sobmFtZSwgdGltZSwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKHdpbmRvd1tuYW1lXSkge1xuICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh3aW5kb3dbbmFtZV0pO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvd1tuYW1lXSA9IHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCB0aW1lKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEZ1bmNVdGlscztcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gRnVuY1V0aWxzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbS8+LlxuICpcbiAqL1xuLyoqXG4gKiBVdGlsaXRhcnkgY2xhc3MgZm9yIGhhc2hpbmcgbWV0aG9kc1xuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgSGFzaGVyVXRpbHMgPSAoZnVuY3Rpb24gKCkge1xuXG4gICAgLypcbiAgICAgKiBBIEphdmFTY3JpcHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJTQSBEYXRhIFNlY3VyaXR5LCBJbmMuIE1ENSBNZXNzYWdlXG4gICAgICogRGlnZXN0IEFsZ29yaXRobSwgYXMgZGVmaW5lZCBpbiBSRkMgMTMyMS5cbiAgICAgKiBWZXJzaW9uIDIuMSBDb3B5cmlnaHQgKEMpIFBhdWwgSm9obnN0b24gMTk5OSAtIDIwMDIuXG4gICAgICogT3RoZXIgY29udHJpYnV0b3JzOiBHcmVnIEhvbHQsIEFuZHJldyBLZXBlcnQsIFlkbmFyLCBMb3N0aW5ldFxuICAgICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCU0QgTGljZW5zZVxuICAgICAqIFNlZSBodHRwOi8vcGFqaG9tZS5vcmcudWsvY3J5cHQvbWQ1IGZvciBtb3JlIGluZm8uXG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBIYXNoZXJVdGlscygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEhhc2hlclV0aWxzKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIENvbmZpZ3VyYWJsZSB2YXJpYWJsZXMuIFlvdSBtYXkgbmVlZCB0byB0d2VhayB0aGVzZSB0byBiZSBjb21wYXRpYmxlIHdpdGhcbiAgICAgKiB0aGUgc2VydmVyLXNpZGUsIGJ1dCB0aGUgZGVmYXVsdHMgd29yayBpbiBtb3N0IGNhc2VzLlxuICAgICAqL1xuXG4gICAgLypcbiAgICAgKiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyB5b3UnbGwgdXN1YWxseSB3YW50IHRvIGNhbGxcbiAgICAgKiBUaGV5IHRha2Ugc3RyaW5nIGFyZ3VtZW50cyBhbmQgcmV0dXJuIGVpdGhlciBoZXggb3IgYmFzZS02NCBlbmNvZGVkIHN0cmluZ3NcbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLmhleF9tZDUgPSBmdW5jdGlvbiBoZXhfbWQ1KHMpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLmJpbmwyaGV4KEhhc2hlclV0aWxzLmNvcmVfbWQ1KEhhc2hlclV0aWxzLnN0cjJiaW5sKHMpLCBzLmxlbmd0aCAqIEhhc2hlclV0aWxzLmNocnN6KSk7XG4gICAgfTtcblxuICAgIEhhc2hlclV0aWxzLmI2NF9tZDUgPSBmdW5jdGlvbiBiNjRfbWQ1KHMpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLmJpbmwyYjY0KEhhc2hlclV0aWxzLmNvcmVfbWQ1KEhhc2hlclV0aWxzLnN0cjJiaW5sKHMpLCBzLmxlbmd0aCAqIEhhc2hlclV0aWxzLmNocnN6KSk7XG4gICAgfTtcblxuICAgIEhhc2hlclV0aWxzLnN0cl9tZDUgPSBmdW5jdGlvbiBzdHJfbWQ1KHMpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLmJpbmwyc3RyKEhhc2hlclV0aWxzLmNvcmVfbWQ1KEhhc2hlclV0aWxzLnN0cjJiaW5sKHMpLCBzLmxlbmd0aCAqIEhhc2hlclV0aWxzLmNocnN6KSk7XG4gICAgfTtcblxuICAgIEhhc2hlclV0aWxzLmhleF9obWFjX21kNSA9IGZ1bmN0aW9uIGhleF9obWFjX21kNShrZXksIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLmJpbmwyaGV4KEhhc2hlclV0aWxzLmNvcmVfaG1hY19tZDUoa2V5LCBkYXRhKSk7XG4gICAgfTtcblxuICAgIEhhc2hlclV0aWxzLmI2NF9obWFjX21kNSA9IGZ1bmN0aW9uIGI2NF9obWFjX21kNShrZXksIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLmJpbmwyYjY0KEhhc2hlclV0aWxzLmNvcmVfaG1hY19tZDUoa2V5LCBkYXRhKSk7XG4gICAgfTtcblxuICAgIEhhc2hlclV0aWxzLnN0cl9obWFjX21kNSA9IGZ1bmN0aW9uIHN0cl9obWFjX21kNShrZXksIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLmJpbmwyc3RyKEhhc2hlclV0aWxzLmNvcmVfaG1hY19tZDUoa2V5LCBkYXRhKSk7XG4gICAgfTtcblxuICAgIEhhc2hlclV0aWxzLmJhc2U2NF9lbmNvZGUgPSBmdW5jdGlvbiBiYXNlNjRfZW5jb2RlKGRhdGEpIHtcbiAgICAgICAgLy8gaHR0cDovL2tldmluLnZhbnpvbm5ldmVsZC5uZXRcbiAgICAgICAgLy8gKyAgIG9yaWdpbmFsIGJ5OiBUeWxlciBBa2lucyAoaHR0cDovL3J1bWtpbi5jb20pXG4gICAgICAgIC8vICsgICBpbXByb3ZlZCBieTogQmF5cm9uIEd1ZXZhcmFcbiAgICAgICAgLy8gKyAgIGltcHJvdmVkIGJ5OiBUaHVuZGVyLm1cbiAgICAgICAgLy8gKyAgIGltcHJvdmVkIGJ5OiBLZXZpbiB2YW4gWm9ubmV2ZWxkIChodHRwOi8va2V2aW4udmFuem9ubmV2ZWxkLm5ldClcbiAgICAgICAgLy8gKyAgIGJ1Z2ZpeGVkIGJ5OiBQZWxsZW50ZXNxdWUgTWFsZXN1YWRhXG4gICAgICAgIC8vICsgICBpbXByb3ZlZCBieTogS2V2aW4gdmFuIFpvbm5ldmVsZCAoaHR0cDovL2tldmluLnZhbnpvbm5ldmVsZC5uZXQpXG4gICAgICAgIC8vIC0gICAgZGVwZW5kcyBvbjogdXRmOF9lbmNvZGVcbiAgICAgICAgLy8gKiAgICAgZXhhbXBsZSAxOiBiYXNlNjRfZW5jb2RlKCdLZXZpbiB2YW4gWm9ubmV2ZWxkJyk7XG4gICAgICAgIC8vICogICAgIHJldHVybnMgMTogJ1MyVjJhVzRnZG1GdUlGcHZibTVsZG1Wc1pBPT0nXG5cbiAgICAgICAgLy8gbW96aWxsYSBoYXMgdGhpcyBuYXRpdmVcbiAgICAgICAgLy8gLSBidXQgYnJlYWtzIGluIDIuMC4wLjEyIVxuICAgICAgICAvL2lmICh0eXBlb2Ygd2luZG93WydhdG9iJ10gPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyAgICByZXR1cm4gYXRvYihkYXRhKTtcbiAgICAgICAgLy99XG5cbiAgICAgICAgdmFyIGI2NCA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz1cIjtcbiAgICAgICAgdmFyIG8xLFxuICAgICAgICAgICAgbzIsXG4gICAgICAgICAgICBvMyxcbiAgICAgICAgICAgIGgxLFxuICAgICAgICAgICAgaDIsXG4gICAgICAgICAgICBoMyxcbiAgICAgICAgICAgIGg0LFxuICAgICAgICAgICAgYml0cyxcbiAgICAgICAgICAgIGkgPSAwLFxuICAgICAgICAgICAgYWMgPSAwLFxuICAgICAgICAgICAgZW5jLFxuICAgICAgICAgICAgdG1wX2FyciA9IFtdO1xuXG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhID0gSGFzaGVyVXRpbHMudXRmOF9lbmNvZGUoZGF0YSArICcnKTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICAvLyBwYWNrIHRocmVlIG9jdGV0cyBpbnRvIGZvdXIgaGV4ZXRzXG4gICAgICAgICAgICBvMSA9IGRhdGEuY2hhckNvZGVBdChpKyspO1xuICAgICAgICAgICAgbzIgPSBkYXRhLmNoYXJDb2RlQXQoaSsrKTtcbiAgICAgICAgICAgIG8zID0gZGF0YS5jaGFyQ29kZUF0KGkrKyk7XG5cbiAgICAgICAgICAgIGJpdHMgPSBvMSA8PCAxNiB8IG8yIDw8IDggfCBvMztcblxuICAgICAgICAgICAgaDEgPSBiaXRzID4+IDE4ICYgMHgzZjtcbiAgICAgICAgICAgIGgyID0gYml0cyA+PiAxMiAmIDB4M2Y7XG4gICAgICAgICAgICBoMyA9IGJpdHMgPj4gNiAmIDB4M2Y7XG4gICAgICAgICAgICBoNCA9IGJpdHMgJiAweDNmO1xuXG4gICAgICAgICAgICAvLyB1c2UgaGV4ZXRzIHRvIGluZGV4IGludG8gYjY0LCBhbmQgYXBwZW5kIHJlc3VsdCB0byBlbmNvZGVkIHN0cmluZ1xuICAgICAgICAgICAgdG1wX2FyclthYysrXSA9IGI2NC5jaGFyQXQoaDEpICsgYjY0LmNoYXJBdChoMikgKyBiNjQuY2hhckF0KGgzKSArIGI2NC5jaGFyQXQoaDQpO1xuICAgICAgICB9IHdoaWxlIChpIDwgZGF0YS5sZW5ndGgpO1xuXG4gICAgICAgIGVuYyA9IHRtcF9hcnIuam9pbignJyk7XG5cbiAgICAgICAgc3dpdGNoIChkYXRhLmxlbmd0aCAlIDMpIHtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICBlbmMgPSBlbmMuc2xpY2UoMCwgLTIpICsgJz09JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICBlbmMgPSBlbmMuc2xpY2UoMCwgLTEpICsgJz0nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVuYztcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMudXRmOF9lbmNvZGUgPSBmdW5jdGlvbiB1dGY4X2VuY29kZShzdHJpbmcpIHtcbiAgICAgICAgLy8gaHR0cDovL2tldmluLnZhbnpvbm5ldmVsZC5uZXRcbiAgICAgICAgLy8gKyAgIG9yaWdpbmFsIGJ5OiBXZWJ0b29sa2l0LmluZm8gKGh0dHA6Ly93d3cud2VidG9vbGtpdC5pbmZvLylcbiAgICAgICAgLy8gKyAgIGltcHJvdmVkIGJ5OiBLZXZpbiB2YW4gWm9ubmV2ZWxkIChodHRwOi8va2V2aW4udmFuem9ubmV2ZWxkLm5ldClcbiAgICAgICAgLy8gKyAgIGltcHJvdmVkIGJ5OiBzb3diZXJyeVxuICAgICAgICAvLyArICAgIHR3ZWFrZWQgYnk6IEphY2tcbiAgICAgICAgLy8gKyAgIGJ1Z2ZpeGVkIGJ5OiBPbm5vIE1hcnNtYW5cbiAgICAgICAgLy8gKyAgIGltcHJvdmVkIGJ5OiBZdmVzIFN1Y2FldFxuICAgICAgICAvLyArICAgYnVnZml4ZWQgYnk6IE9ubm8gTWFyc21hblxuICAgICAgICAvLyAqICAgICBleGFtcGxlIDE6IHV0ZjhfZW5jb2RlKCdLZXZpbiB2YW4gWm9ubmV2ZWxkJyk7XG4gICAgICAgIC8vICogICAgIHJldHVybnMgMTogJ0tldmluIHZhbiBab25uZXZlbGQnXG5cbiAgICAgICAgc3RyaW5nID0gKHN0cmluZyArICcnKS5yZXBsYWNlKC9cXHJcXG4vZywgXCJcXG5cIikucmVwbGFjZSgvXFxyL2csIFwiXFxuXCIpO1xuXG4gICAgICAgIHZhciB1dGZ0ZXh0ID0gXCJcIjtcbiAgICAgICAgdmFyIHN0YXJ0LCBlbmQ7XG4gICAgICAgIHZhciBzdHJpbmdsO1xuXG4gICAgICAgIHN0YXJ0ID0gZW5kID0gMDtcbiAgICAgICAgc3RyaW5nbCA9IHN0cmluZy5sZW5ndGg7XG4gICAgICAgIGZvciAodmFyIG4gPSAwOyBuIDwgc3RyaW5nbDsgbisrKSB7XG4gICAgICAgICAgICB2YXIgYzEgPSBzdHJpbmcuY2hhckNvZGVBdChuKTtcbiAgICAgICAgICAgIHZhciBlbmMgPSBudWxsO1xuXG4gICAgICAgICAgICBpZiAoYzEgPCAxMjgpIHtcbiAgICAgICAgICAgICAgICBlbmQrKztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYzEgPiAxMjcgJiYgYzEgPCAyMDQ4KSB7XG4gICAgICAgICAgICAgICAgZW5jID0gU3RyaW5nLmZyb21DaGFyQ29kZShjMSA+PiA2IHwgMTkyKSArIFN0cmluZy5mcm9tQ2hhckNvZGUoYzEgJiA2MyB8IDEyOCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVuYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoYzEgPj4gMTIgfCAyMjQpICsgU3RyaW5nLmZyb21DaGFyQ29kZShjMSA+PiA2ICYgNjMgfCAxMjgpICsgU3RyaW5nLmZyb21DaGFyQ29kZShjMSAmIDYzIHwgMTI4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmMgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChlbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICB1dGZ0ZXh0ICs9IHN0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGVuZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHV0ZnRleHQgKz0gZW5jO1xuICAgICAgICAgICAgICAgIHN0YXJ0ID0gZW5kID0gbiArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgIHV0ZnRleHQgKz0gc3RyaW5nLnN1YnN0cmluZyhzdGFydCwgc3RyaW5nLmxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXRmdGV4dDtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNlbGYtdGVzdCB0byBzZWUgaWYgdGhlIFZNIGlzIHdvcmtpbmdcbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLm1kNV92bV90ZXN0ID0gZnVuY3Rpb24gbWQ1X3ZtX3Rlc3QoKSB7XG4gICAgICAgIHJldHVybiBIYXNoZXJVdGlscy5oZXhfbWQ1KFwiYWJjXCIpID09IFwiOTAwMTUwOTgzY2QyNGZiMGQ2OTYzZjdkMjhlMTdmNzJcIjtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBDYWxjdWxhdGUgdGhlIE1ENSBvZiBhbiBhcnJheSBvZiBsaXR0bGUtZW5kaWFuIHdvcmRzLCBhbmQgYSBiaXQgbGVuZ3RoXG4gICAgICovXG5cbiAgICBIYXNoZXJVdGlscy5jb3JlX21kNSA9IGZ1bmN0aW9uIGNvcmVfbWQ1KHgsIGxlbikge1xuICAgICAgICAvKiBhcHBlbmQgcGFkZGluZyAqL1xuICAgICAgICB4W2xlbiA+PiA1XSB8PSAweDgwIDw8IGxlbiAlIDMyO1xuICAgICAgICB4WyhsZW4gKyA2NCA+Pj4gOSA8PCA0KSArIDE0XSA9IGxlbjtcblxuICAgICAgICB2YXIgYSA9IDE3MzI1ODQxOTM7XG4gICAgICAgIHZhciBiID0gLTI3MTczMzg3OTtcbiAgICAgICAgdmFyIGMgPSAtMTczMjU4NDE5NDtcbiAgICAgICAgdmFyIGQgPSAyNzE3MzM4Nzg7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSArPSAxNikge1xuICAgICAgICAgICAgdmFyIG9sZGEgPSBhO1xuICAgICAgICAgICAgdmFyIG9sZGIgPSBiO1xuICAgICAgICAgICAgdmFyIG9sZGMgPSBjO1xuICAgICAgICAgICAgdmFyIG9sZGQgPSBkO1xuXG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGEsIGIsIGMsIGQsIHhbaSArIDBdLCA3LCAtNjgwODc2OTM2KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfZmYoZCwgYSwgYiwgYywgeFtpICsgMV0sIDEyLCAtMzg5NTY0NTg2KTtcbiAgICAgICAgICAgIGMgPSBIYXNoZXJVdGlscy5tZDVfZmYoYywgZCwgYSwgYiwgeFtpICsgMl0sIDE3LCA2MDYxMDU4MTkpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAzXSwgMjIsIC0xMDQ0NTI1MzMwKTtcbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfZmYoYSwgYiwgYywgZCwgeFtpICsgNF0sIDcsIC0xNzY0MTg4OTcpO1xuICAgICAgICAgICAgZCA9IEhhc2hlclV0aWxzLm1kNV9mZihkLCBhLCBiLCBjLCB4W2kgKyA1XSwgMTIsIDEyMDAwODA0MjYpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9mZihjLCBkLCBhLCBiLCB4W2kgKyA2XSwgMTcsIC0xNDczMjMxMzQxKTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfZmYoYiwgYywgZCwgYSwgeFtpICsgN10sIDIyLCAtNDU3MDU5ODMpO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9mZihhLCBiLCBjLCBkLCB4W2kgKyA4XSwgNywgMTc3MDAzNTQxNik7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGQsIGEsIGIsIGMsIHhbaSArIDldLCAxMiwgLTE5NTg0MTQ0MTcpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9mZihjLCBkLCBhLCBiLCB4W2kgKyAxMF0sIDE3LCAtNDIwNjMpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9mZihiLCBjLCBkLCBhLCB4W2kgKyAxMV0sIDIyLCAtMTk5MDQwNDE2Mik7XG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGEsIGIsIGMsIGQsIHhbaSArIDEyXSwgNywgMTgwNDYwMzY4Mik7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGQsIGEsIGIsIGMsIHhbaSArIDEzXSwgMTIsIC00MDM0MTEwMSk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSArIDE0XSwgMTcsIC0xNTAyMDAyMjkwKTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfZmYoYiwgYywgZCwgYSwgeFtpICsgMTVdLCAyMiwgMTIzNjUzNTMyOSk7XG5cbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfZ2coYSwgYiwgYywgZCwgeFtpICsgMV0sIDUsIC0xNjU3OTY1MTApO1xuICAgICAgICAgICAgZCA9IEhhc2hlclV0aWxzLm1kNV9nZyhkLCBhLCBiLCBjLCB4W2kgKyA2XSwgOSwgLTEwNjk1MDE2MzIpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAxMV0sIDE0LCA2NDM3MTc3MTMpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2kgKyAwXSwgMjAsIC0zNzM4OTczMDIpO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyA1XSwgNSwgLTcwMTU1ODY5MSk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArIDEwXSwgOSwgMzgwMTYwODMpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAxNV0sIDE0LCAtNjYwNDc4MzM1KTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfZ2coYiwgYywgZCwgYSwgeFtpICsgNF0sIDIwLCAtNDA1NTM3ODQ4KTtcbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfZ2coYSwgYiwgYywgZCwgeFtpICsgOV0sIDUsIDU2ODQ0NjQzOCk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSArIDE0XSwgOSwgLTEwMTk4MDM2OTApO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9nZyhjLCBkLCBhLCBiLCB4W2kgKyAzXSwgMTQsIC0xODczNjM5NjEpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9nZyhiLCBjLCBkLCBhLCB4W2kgKyA4XSwgMjAsIDExNjM1MzE1MDEpO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9nZyhhLCBiLCBjLCBkLCB4W2kgKyAxM10sIDUsIC0xNDQ0NjgxNDY3KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfZ2coZCwgYSwgYiwgYywgeFtpICsgMl0sIDksIC01MTQwMzc4NCk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSArIDddLCAxNCwgMTczNTMyODQ3Myk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSArIDEyXSwgMjAsIC0xOTI2NjA3NzM0KTtcblxuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyA1XSwgNCwgLTM3ODU1OCk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArIDhdLCAxMSwgLTIwMjI1NzQ0NjMpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAxMV0sIDE2LCAxODM5MDMwNTYyKTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfaGgoYiwgYywgZCwgYSwgeFtpICsgMTRdLCAyMywgLTM1MzA5NTU2KTtcbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfaGgoYSwgYiwgYywgZCwgeFtpICsgMV0sIDQsIC0xNTMwOTkyMDYwKTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfaGgoZCwgYSwgYiwgYywgeFtpICsgNF0sIDExLCAxMjcyODkzMzUzKTtcbiAgICAgICAgICAgIGMgPSBIYXNoZXJVdGlscy5tZDVfaGgoYywgZCwgYSwgYiwgeFtpICsgN10sIDE2LCAtMTU1NDk3NjMyKTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfaGgoYiwgYywgZCwgYSwgeFtpICsgMTBdLCAyMywgLTEwOTQ3MzA2NDApO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyAxM10sIDQsIDY4MTI3OTE3NCk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArIDBdLCAxMSwgLTM1ODUzNzIyMik7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSArIDNdLCAxNiwgLTcyMjUyMTk3OSk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSArIDZdLCAyMywgNzYwMjkxODkpO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9oaChhLCBiLCBjLCBkLCB4W2kgKyA5XSwgNCwgLTY0MDM2NDQ4Nyk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSArIDEyXSwgMTEsIC00MjE4MTU4MzUpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9oaChjLCBkLCBhLCBiLCB4W2kgKyAxNV0sIDE2LCA1MzA3NDI1MjApO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9oaChiLCBjLCBkLCBhLCB4W2kgKyAyXSwgMjMsIC05OTUzMzg2NTEpO1xuXG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArIDBdLCA2LCAtMTk4NjMwODQ0KTtcbiAgICAgICAgICAgIGQgPSBIYXNoZXJVdGlscy5tZDVfaWkoZCwgYSwgYiwgYywgeFtpICsgN10sIDEwLCAxMTI2ODkxNDE1KTtcbiAgICAgICAgICAgIGMgPSBIYXNoZXJVdGlscy5tZDVfaWkoYywgZCwgYSwgYiwgeFtpICsgMTRdLCAxNSwgLTE0MTYzNTQ5MDUpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyA1XSwgMjEsIC01NzQzNDA1NSk7XG4gICAgICAgICAgICBhID0gSGFzaGVyVXRpbHMubWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSArIDEyXSwgNiwgMTcwMDQ4NTU3MSk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSArIDNdLCAxMCwgLTE4OTQ5ODY2MDYpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLm1kNV9paShjLCBkLCBhLCBiLCB4W2kgKyAxMF0sIDE1LCAtMTA1MTUyMyk7XG4gICAgICAgICAgICBiID0gSGFzaGVyVXRpbHMubWQ1X2lpKGIsIGMsIGQsIGEsIHhbaSArIDFdLCAyMSwgLTIwNTQ5MjI3OTkpO1xuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLm1kNV9paShhLCBiLCBjLCBkLCB4W2kgKyA4XSwgNiwgMTg3MzMxMzM1OSk7XG4gICAgICAgICAgICBkID0gSGFzaGVyVXRpbHMubWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSArIDE1XSwgMTAsIC0zMDYxMTc0NCk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2lpKGMsIGQsIGEsIGIsIHhbaSArIDZdLCAxNSwgLTE1NjAxOTgzODApO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLm1kNV9paShiLCBjLCBkLCBhLCB4W2kgKyAxM10sIDIxLCAxMzA5MTUxNjQ5KTtcbiAgICAgICAgICAgIGEgPSBIYXNoZXJVdGlscy5tZDVfaWkoYSwgYiwgYywgZCwgeFtpICsgNF0sIDYsIC0xNDU1MjMwNzApO1xuICAgICAgICAgICAgZCA9IEhhc2hlclV0aWxzLm1kNV9paShkLCBhLCBiLCBjLCB4W2kgKyAxMV0sIDEwLCAtMTEyMDIxMDM3OSk7XG4gICAgICAgICAgICBjID0gSGFzaGVyVXRpbHMubWQ1X2lpKGMsIGQsIGEsIGIsIHhbaSArIDJdLCAxNSwgNzE4Nzg3MjU5KTtcbiAgICAgICAgICAgIGIgPSBIYXNoZXJVdGlscy5tZDVfaWkoYiwgYywgZCwgYSwgeFtpICsgOV0sIDIxLCAtMzQzNDg1NTUxKTtcblxuICAgICAgICAgICAgYSA9IEhhc2hlclV0aWxzLnNhZmVfYWRkKGEsIG9sZGEpO1xuICAgICAgICAgICAgYiA9IEhhc2hlclV0aWxzLnNhZmVfYWRkKGIsIG9sZGIpO1xuICAgICAgICAgICAgYyA9IEhhc2hlclV0aWxzLnNhZmVfYWRkKGMsIG9sZGMpO1xuICAgICAgICAgICAgZCA9IEhhc2hlclV0aWxzLnNhZmVfYWRkKGQsIG9sZGQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbYSwgYiwgYywgZF07XG4gICAgfTtcblxuICAgIC8qXG4gICAgICogVGhlc2UgZnVuY3Rpb25zIGltcGxlbWVudCB0aGUgZm91ciBiYXNpYyBvcGVyYXRpb25zIHRoZSBhbGdvcml0aG0gdXNlcy5cbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLm1kNV9jbW4gPSBmdW5jdGlvbiBtZDVfY21uKHEsIGEsIGIsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLnNhZmVfYWRkKEhhc2hlclV0aWxzLmJpdF9yb2woSGFzaGVyVXRpbHMuc2FmZV9hZGQoSGFzaGVyVXRpbHMuc2FmZV9hZGQoYSwgcSksIEhhc2hlclV0aWxzLnNhZmVfYWRkKHgsIHQpKSwgcyksIGIpO1xuICAgIH07XG5cbiAgICBIYXNoZXJVdGlscy5tZDVfZmYgPSBmdW5jdGlvbiBtZDVfZmYoYSwgYiwgYywgZCwgeCwgcywgdCkge1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMubWQ1X2NtbihiICYgYyB8IH5iICYgZCwgYSwgYiwgeCwgcywgdCk7XG4gICAgfTtcblxuICAgIEhhc2hlclV0aWxzLm1kNV9nZyA9IGZ1bmN0aW9uIG1kNV9nZyhhLCBiLCBjLCBkLCB4LCBzLCB0KSB7XG4gICAgICAgIHJldHVybiBIYXNoZXJVdGlscy5tZDVfY21uKGIgJiBkIHwgYyAmIH5kLCBhLCBiLCB4LCBzLCB0KTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMubWQ1X2hoID0gZnVuY3Rpb24gbWQ1X2hoKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLm1kNV9jbW4oYiBeIGMgXiBkLCBhLCBiLCB4LCBzLCB0KTtcbiAgICB9O1xuXG4gICAgSGFzaGVyVXRpbHMubWQ1X2lpID0gZnVuY3Rpb24gbWQ1X2lpKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHtcbiAgICAgICAgcmV0dXJuIEhhc2hlclV0aWxzLm1kNV9jbW4oYyBeIChiIHwgfmQpLCBhLCBiLCB4LCBzLCB0KTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBDYWxjdWxhdGUgdGhlIEhNQUMtTUQ1LCBvZiBhIGtleSBhbmQgc29tZSBkYXRhXG4gICAgICovXG5cbiAgICBIYXNoZXJVdGlscy5jb3JlX2htYWNfbWQ1ID0gZnVuY3Rpb24gY29yZV9obWFjX21kNShrZXksIGRhdGEpIHtcbiAgICAgICAgdmFyIGJrZXkgPSBIYXNoZXJVdGlscy5zdHIyYmlubChrZXkpO1xuICAgICAgICBpZiAoYmtleS5sZW5ndGggPiAxNikgYmtleSA9IEhhc2hlclV0aWxzLmNvcmVfbWQ1KGJrZXksIGtleS5sZW5ndGggKiBIYXNoZXJVdGlscy5jaHJzeik7XG5cbiAgICAgICAgdmFyIGlwYWQgPSBuZXcgQXJyYXkoMTYpLFxuICAgICAgICAgICAgb3BhZCA9IG5ldyBBcnJheSgxNik7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7IGkrKykge1xuICAgICAgICAgICAgaXBhZFtpXSA9IGJrZXlbaV0gXiAweDM2MzYzNjM2O1xuICAgICAgICAgICAgb3BhZFtpXSA9IGJrZXlbaV0gXiAweDVDNUM1QzVDO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGhhc2ggPSBIYXNoZXJVdGlscy5jb3JlX21kNShpcGFkLmNvbmNhdChIYXNoZXJVdGlscy5zdHIyYmlubChkYXRhKSksIDUxMiArIGRhdGEubGVuZ3RoICogSGFzaGVyVXRpbHMuY2hyc3opO1xuICAgICAgICByZXR1cm4gSGFzaGVyVXRpbHMuY29yZV9tZDUob3BhZC5jb25jYXQoaGFzaCksIDUxMiArIDEyOCk7XG4gICAgfTtcblxuICAgIC8qXG4gICAgICogQWRkIGludGVnZXJzLCB3cmFwcGluZyBhdCAyXjMyLiBUaGlzIHVzZXMgMTYtYml0IG9wZXJhdGlvbnMgaW50ZXJuYWxseVxuICAgICAqIHRvIHdvcmsgYXJvdW5kIGJ1Z3MgaW4gc29tZSBKUyBpbnRlcnByZXRlcnMuXG4gICAgICovXG5cbiAgICBIYXNoZXJVdGlscy5zYWZlX2FkZCA9IGZ1bmN0aW9uIHNhZmVfYWRkKHgsIHkpIHtcbiAgICAgICAgdmFyIGxzdyA9ICh4ICYgMHhGRkZGKSArICh5ICYgMHhGRkZGKTtcbiAgICAgICAgdmFyIG1zdyA9ICh4ID4+IDE2KSArICh5ID4+IDE2KSArIChsc3cgPj4gMTYpO1xuICAgICAgICByZXR1cm4gbXN3IDw8IDE2IHwgbHN3ICYgMHhGRkZGO1xuICAgIH07XG5cbiAgICAvKlxuICAgICAqIEJpdHdpc2Ugcm90YXRlIGEgMzItYml0IG51bWJlciB0byB0aGUgbGVmdC5cbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLmJpdF9yb2wgPSBmdW5jdGlvbiBiaXRfcm9sKG51bSwgY250KSB7XG4gICAgICAgIHJldHVybiBudW0gPDwgY250IHwgbnVtID4+PiAzMiAtIGNudDtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHNcbiAgICAgKiBJZiBIYXNoZXJVdGlscy5jaHJzeiBpcyBBU0NJSSwgY2hhcmFjdGVycyA+MjU1IGhhdmUgdGhlaXIgaGktYnl0ZSBzaWxlbnRseSBpZ25vcmVkLlxuICAgICAqL1xuXG4gICAgSGFzaGVyVXRpbHMuc3RyMmJpbmwgPSBmdW5jdGlvbiBzdHIyYmlubChzdHIpIHtcbiAgICAgICAgdmFyIGJpbiA9IFtdO1xuICAgICAgICB2YXIgbWFzayA9ICgxIDw8IEhhc2hlclV0aWxzLmNocnN6KSAtIDE7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aCAqIEhhc2hlclV0aWxzLmNocnN6OyBpICs9IEhhc2hlclV0aWxzLmNocnN6KSBiaW5baSA+PiA1XSB8PSAoc3RyLmNoYXJDb2RlQXQoaSAvIEhhc2hlclV0aWxzLmNocnN6KSAmIG1hc2spIDw8IGkgJSAzMjtcbiAgICAgICAgcmV0dXJuIGJpbjtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBDb252ZXJ0IGFuIGFycmF5IG9mIGxpdHRsZS1lbmRpYW4gd29yZHMgdG8gYSBzdHJpbmdcbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLmJpbmwyc3RyID0gZnVuY3Rpb24gYmlubDJzdHIoYmluKSB7XG4gICAgICAgIHZhciBzdHIgPSBcIlwiO1xuICAgICAgICB2YXIgbWFzayA9ICgxIDw8IEhhc2hlclV0aWxzLmNocnN6KSAtIDE7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmluLmxlbmd0aCAqIDMyOyBpICs9IEhhc2hlclV0aWxzLmNocnN6KSBzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShiaW5baSA+PiA1XSA+Pj4gaSAlIDMyICYgbWFzayk7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfTtcblxuICAgIC8qXG4gICAgICogQ29udmVydCBhbiBhcnJheSBvZiBsaXR0bGUtZW5kaWFuIHdvcmRzIHRvIGEgaGV4IHN0cmluZy5cbiAgICAgKi9cblxuICAgIEhhc2hlclV0aWxzLmJpbmwyaGV4ID0gZnVuY3Rpb24gYmlubDJoZXgoYmluYXJyYXkpIHtcbiAgICAgICAgdmFyIGhleF90YWIgPSBIYXNoZXJVdGlscy5oZXhjYXNlID8gXCIwMTIzNDU2Nzg5QUJDREVGXCIgOiBcIjAxMjM0NTY3ODlhYmNkZWZcIjtcbiAgICAgICAgdmFyIHN0ciA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmluYXJyYXkubGVuZ3RoICogNDsgaSsrKSB7XG4gICAgICAgICAgICBzdHIgKz0gaGV4X3RhYi5jaGFyQXQoYmluYXJyYXlbaSA+PiAyXSA+PiBpICUgNCAqIDggKyA0ICYgMHhGKSArIGhleF90YWIuY2hhckF0KGJpbmFycmF5W2kgPj4gMl0gPj4gaSAlIDQgKiA4ICYgMHhGKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RyO1xuICAgIH07XG5cbiAgICAvKlxuICAgICAqIENvbnZlcnQgYW4gYXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcyB0byBhIGJhc2UtNjQgc3RyaW5nXG4gICAgICovXG5cbiAgICBIYXNoZXJVdGlscy5iaW5sMmI2NCA9IGZ1bmN0aW9uIGJpbmwyYjY0KGJpbmFycmF5KSB7XG4gICAgICAgIHZhciB0YWIgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9cIjtcbiAgICAgICAgdmFyIHN0ciA9IFwiXCI7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmluYXJyYXkubGVuZ3RoICogNDsgaSArPSAzKSB7XG4gICAgICAgICAgICB2YXIgdHJpcGxldCA9IChiaW5hcnJheVtpID4+IDJdID4+IDggKiAoaSAlIDQpICYgMHhGRikgPDwgMTYgfCAoYmluYXJyYXlbaSArIDEgPj4gMl0gPj4gOCAqICgoaSArIDEpICUgNCkgJiAweEZGKSA8PCA4IHwgYmluYXJyYXlbaSArIDIgPj4gMl0gPj4gOCAqICgoaSArIDIpICUgNCkgJiAweEZGO1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA0OyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSAqIDggKyBqICogNiA+IGJpbmFycmF5Lmxlbmd0aCAqIDMyKSBzdHIgKz0gSGFzaGVyVXRpbHMuYjY0cGFkO2Vsc2Ugc3RyICs9IHRhYi5jaGFyQXQodHJpcGxldCA+PiA2ICogKDMgLSBqKSAmIDB4M0YpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfTtcblxuICAgIHJldHVybiBIYXNoZXJVdGlscztcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEhhc2hlclV0aWxzO1xuSGFzaGVyVXRpbHMuaGV4Y2FzZSA9IDA7IC8qIGhleCBvdXRwdXQgZm9ybWF0LiAwIC0gbG93ZXJjYXNlOyAxIC0gdXBwZXJjYXNlICAgICAgICAqL1xuSGFzaGVyVXRpbHMuYjY0cGFkID0gXCJcIjsgLyogYmFzZS02NCBwYWQgY2hhcmFjdGVyLiBcIj1cIiBmb3Igc3RyaWN0IFJGQyBjb21wbGlhbmNlICAgKi9cbkhhc2hlclV0aWxzLmNocnN6ID0gODsgLyogYml0cyBwZXIgaW5wdXQgY2hhcmFjdGVyLiA4IC0gQVNDSUk7IDE2IC0gVW5pY29kZSAgICAgICovXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbS8+LlxuICpcbiAqL1xuLyoqXG4gKiBVdGlsaXRhcnkgY2xhc3MgZm9yIGxhbmd1YWdlIHNwZWNpZmljIG1ldGhvZHNcbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIExhbmdVdGlscyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTGFuZ1V0aWxzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGFuZ1V0aWxzKTtcbiAgICB9XG5cbiAgICBMYW5nVXRpbHMuYXJyYXlXaXRob3V0ID0gZnVuY3Rpb24gYXJyYXlXaXRob3V0KGFycmF5LCBrZXkpIHtcbiAgICAgICAgaWYgKCFhcnJheS5sZW5ndGgpIHJldHVybiBhcnJheTtcbiAgICAgICAgaWYgKGtleSA+PSBhcnJheS5sZW5ndGgpIHJldHVybiBhcnJheTtcbiAgICAgICAgdmFyIG5ld0FycmF5O1xuICAgICAgICBpZiAoa2V5ID09IDApIG5ld0FycmF5ID0gYXJyYXkuc2xpY2UoMSk7ZWxzZSBpZiAoa2V5ID09IGFycmF5Lmxlbmd0aCAtIDEpIG5ld0FycmF5ID0gYXJyYXkuc2xpY2UoMCwgLTEpO2Vsc2UgbmV3QXJyYXkgPSBhcnJheS5zbGljZSgwLCBrZXkpLmNvbmNhdChhcnJheS5zbGljZShrZXkgKyAxKSk7XG4gICAgICAgIHJldHVybiBuZXdBcnJheTtcbiAgICB9O1xuXG4gICAgTGFuZ1V0aWxzLm9iamVjdE1lcmdlID0gZnVuY3Rpb24gb2JqZWN0TWVyZ2Uob2JqMSwgb2JqMikge1xuICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIG9iajEsIG9iajIpO1xuICAgIH07XG5cbiAgICBMYW5nVXRpbHMucGFyc2VVcmwgPSBmdW5jdGlvbiBwYXJzZVVybChkYXRhKSB7XG4gICAgICAgIHZhciBtYXRjaGVzID0gW107XG4gICAgICAgIC8vdmFyIGU9LygoaHR0cHxmdHApOlxcLyk/XFwvPyhbXjpcXC9cXHNdKykoKFxcL1xcdyspKlxcLykoW1xcd1xcLVxcLl0rXFwuW14jP1xcc10rKSgjW1xcd1xcLV0rKT8vO1xuICAgICAgICB2YXIgZGV0ZWN0ID0gLyhweWRpbzpcXC8pP1xcLz8oW146XFwvXFxzXSspKChcXC9cXHcrKSpcXC8pKC4qKSgjW1xcd1xcLV0rKT8vZztcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBkYXRhLm1hdGNoKGRldGVjdCk7XG4gICAgICAgIGlmIChyZXN1bHRzICYmIHJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgZSA9IC9eKChweWRpbyk6XFwvKT9cXC8/KFteOlxcL1xcc10rKSgoXFwvXFx3KykqXFwvKSguKikoI1tcXHdcXC1dKyk/JC87XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0c1tpXS5tYXRjaChlKSkge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2goeyB1cmw6IFJlZ0V4cFsnJCYnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvY29sOiBSZWdFeHAuJDIsXG4gICAgICAgICAgICAgICAgICAgICAgICBob3N0OiBSZWdFeHAuJDMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBSZWdFeHAuJDQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiBSZWdFeHAuJDYsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNoOiBSZWdFeHAuJDcgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXRjaGVzO1xuICAgIH07XG5cbiAgICBMYW5nVXRpbHMuY29tcHV0ZVN0cmluZ1NsdWcgPSBmdW5jdGlvbiBjb21wdXRlU3RyaW5nU2x1Zyh2YWx1ZSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gTGFuZ1V0aWxzLnNsdWdUYWJsZS5sZW5ndGg7IGkgPCBsZW47IGkrKykgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKExhbmdVdGlscy5zbHVnVGFibGVbaV0ucmUsIExhbmdVdGlscy5zbHVnVGFibGVbaV0uY2gpO1xuXG4gICAgICAgIC8vIDEpIG1ldCBlbiBiYXMgZGUgY2Fzc2VcbiAgICAgICAgLy8gMikgcmVtcGxhY2UgbGVzIGVzcGFjZSBwYXIgZGVzIHRpcmV0c1xuICAgICAgICAvLyAzKSBlbmxldmUgdG91dCBsZXMgY2FyYXTDqHJlcyBub24gYWxwaGFudW1lcmlxdWVzXG4gICAgICAgIC8vIDQpIGVubMOodmUgbGVzIGRvdWJsZXMgdGlyZXRzXG4gICAgICAgIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJy0nKS5yZXBsYWNlKC9bXmEtejAtOS1dL2csICcnKS5yZXBsYWNlKC9cXC17Mix9L2csICctJyk7XG4gICAgfTtcblxuICAgIExhbmdVdGlscy5mb3JjZUpTT05BcnJheVRvT2JqZWN0ID0gZnVuY3Rpb24gZm9yY2VKU09OQXJyYXlUb09iamVjdChjb250YWluZXIsIHZhbHVlKSB7XG4gICAgICAgIGlmIChjb250YWluZXJbdmFsdWVdIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIC8vIENsb25lXG4gICAgICAgICAgICB2YXIgY29weSA9IGNvbnRhaW5lclt2YWx1ZV0uc2xpY2UoMCk7XG4gICAgICAgICAgICBjb250YWluZXJbdmFsdWVdID0ge307XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcHkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJbdmFsdWVdW2ldID0gY29weVtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBMYW5nVXRpbHMuZGVlcENvcHkgPSBmdW5jdGlvbiBkZWVwQ29weShzb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIExhbmdVdGlscy5tZXJnZU9iamVjdHNSZWN1cnNpdmUoe30sIHNvdXJjZSk7XG4gICAgfTtcblxuICAgIExhbmdVdGlscy5zaW1wbGVDb3B5ID0gZnVuY3Rpb24gc2ltcGxlQ29weShzb3VyY2UpIHtcbiAgICAgICAgdmFyIGNvcHkgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoc291cmNlLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgICAgICAgICAgIGNvcHlbcHJvcGVydHldID0gc291cmNlW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9O1xuXG4gICAgTGFuZ1V0aWxzLm1lcmdlT2JqZWN0c1JlY3Vyc2l2ZSA9IGZ1bmN0aW9uIG1lcmdlT2JqZWN0c1JlY3Vyc2l2ZShzb3VyY2UsIGRlc3RpbmF0aW9uKSB7XG4gICAgICAgIHZhciBuZXdPYmplY3QgPSB7fSxcbiAgICAgICAgICAgIHByb3BlcnR5O1xuICAgICAgICBmb3IgKHByb3BlcnR5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgICAgICAvL2lmIChzb3VyY2VbcHJvcGVydHldID09PSBudWxsKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoZGVzdGluYXRpb24uaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbcHJvcGVydHldIGluc3RhbmNlb2YgT2JqZWN0ICYmIGRlc3RpbmF0aW9uIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gTGFuZ1V0aWxzLm1lcmdlT2JqZWN0c1JlY3Vyc2l2ZShzb3VyY2VbcHJvcGVydHldLCBkZXN0aW5hdGlvbltwcm9wZXJ0eV0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqZWN0W3Byb3BlcnR5XSA9IGRlc3RpbmF0aW9uW3Byb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbcHJvcGVydHldIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gTGFuZ1V0aWxzLm1lcmdlT2JqZWN0c1JlY3Vyc2l2ZShzb3VyY2VbcHJvcGVydHldLCB7fSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gc291cmNlW3Byb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHByb3BlcnR5IGluIGRlc3RpbmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoZGVzdGluYXRpb24uaGFzT3duUHJvcGVydHkocHJvcGVydHkpICYmICFuZXdPYmplY3QuaGFzT3duUHJvcGVydHkocHJvcGVydHkpIC8qJiYgZGVzdGluYXRpb25bcHJvcGVydHldICE9PSBudWxsKi8pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlc3RpbmF0aW9uW3Byb3BlcnR5XSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T2JqZWN0W3Byb3BlcnR5XSA9IExhbmdVdGlscy5tZXJnZU9iamVjdHNSZWN1cnNpdmUoZGVzdGluYXRpb25bcHJvcGVydHldLCB7fSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPYmplY3RbcHJvcGVydHldID0gZGVzdGluYXRpb25bcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdPYmplY3Q7XG4gICAgfTtcblxuICAgIExhbmdVdGlscy5vYmplY3RWYWx1ZXMgPSBmdW5jdGlvbiBvYmplY3RWYWx1ZXMob2JqZWN0KSB7XG4gICAgICAgIHZhciByZXN1bHRzID0gW107XG4gICAgICAgIGZvciAodmFyIHByb3BlcnR5IGluIG9iamVjdCkgaWYgKG9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChvYmplY3RbcHJvcGVydHldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9O1xuXG4gICAgTGFuZ1V0aWxzLnRyaW1MZWZ0ID0gZnVuY3Rpb24gdHJpbUxlZnQoc3RyaW5nLCBjaGFybGlzdCkge1xuICAgICAgICBpZiAoY2hhcmxpc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2hhcmxpc3QgPSBcIlxcc1wiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShuZXcgUmVnRXhwKFwiXltcIiArIGNoYXJsaXN0ICsgXCJdK1wiKSwgXCJcIik7XG4gICAgfTtcblxuICAgIExhbmdVdGlscy50cmltUmlnaHQgPSBmdW5jdGlvbiB0cmltUmlnaHQoc3RyaW5nLCBjaGFybGlzdCkge1xuICAgICAgICBpZiAoY2hhcmxpc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY2hhcmxpc3QgPSBcIlxcc1wiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZShuZXcgUmVnRXhwKFwiW1wiICsgY2hhcmxpc3QgKyBcIl0rJFwiKSwgXCJcIik7XG4gICAgfTtcblxuICAgIExhbmdVdGlscy50cmltID0gZnVuY3Rpb24gdHJpbShzdHJpbmcsIGNoYXJsaXN0KSB7XG4gICAgICAgIHJldHVybiBMYW5nVXRpbHMudHJpbUxlZnQoTGFuZ1V0aWxzLnRyaW1SaWdodChzdHJpbmcsIGNoYXJsaXN0KSwgY2hhcmxpc3QpO1xuICAgIH07XG5cbiAgICBMYW5nVXRpbHMuYXJyYXlTb3J0ZXIgPSBmdW5jdGlvbiBhcnJheVNvcnRlcihrZXkpIHtcbiAgICAgICAgdmFyIGlzRnVuYyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIGlmIChpc0Z1bmMpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHJldHVybiBhW2tleV0oKSA+IGJba2V5XSgpID8gMSA6IGFba2V5XSgpIDwgYltrZXldKCkgPyAtMSA6IDA7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFba2V5XSA+IGJba2V5XSA/IDEgOiBhW2tleV0gPCBiW2tleV0gPyAtMSA6IDA7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBMYW5nVXRpbHM7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBMYW5nVXRpbHM7XG5cbkxhbmdVdGlscy5zbHVnVGFibGUgPSBbeyByZTogL1tcXHhDMC1cXHhDNl0vZywgY2g6ICdBJyB9LCB7IHJlOiAvW1xceEUwLVxceEU2XS9nLCBjaDogJ2EnIH0sIHsgcmU6IC9bXFx4QzgtXFx4Q0JdL2csIGNoOiAnRScgfSwgeyByZTogL1tcXHhFOC1cXHhFQl0vZywgY2g6ICdlJyB9LCB7IHJlOiAvW1xceENDLVxceENGXS9nLCBjaDogJ0knIH0sIHsgcmU6IC9bXFx4RUMtXFx4RUZdL2csIGNoOiAnaScgfSwgeyByZTogL1tcXHhEMi1cXHhENl0vZywgY2g6ICdPJyB9LCB7IHJlOiAvW1xceEYyLVxceEY2XS9nLCBjaDogJ28nIH0sIHsgcmU6IC9bXFx4RDktXFx4RENdL2csIGNoOiAnVScgfSwgeyByZTogL1tcXHhGOS1cXHhGQ10vZywgY2g6ICd1JyB9LCB7IHJlOiAvW1xceEM3LVxceEU3XS9nLCBjaDogJ2MnIH0sIHsgcmU6IC9bXFx4RDFdL2csIGNoOiAnTicgfSwgeyByZTogL1tcXHhGMV0vZywgY2g6ICduJyB9XTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tLz4uXG4gKlxuICovXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfUHlkaW8gPSByZXF1aXJlKCcuLi9QeWRpbycpO1xuXG52YXIgX1B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1B5ZGlvKTtcblxuLyoqXG4gKiBVdGlsaXRhcnkgY2xhc3MgZm9yIG1hbmlwdWxhdGluZyBmaWxlL2ZvbGRlcnMgcGF0aGVzXG4gKi9cblxudmFyIFBhdGhVdGlscyA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUGF0aFV0aWxzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUGF0aFV0aWxzKTtcbiAgICB9XG5cbiAgICBQYXRoVXRpbHMuZ2V0QmFzZW5hbWUgPSBmdW5jdGlvbiBnZXRCYXNlbmFtZShmaWxlTmFtZSkge1xuICAgICAgICBpZiAoZmlsZU5hbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNlcGFyYXRvciA9IFwiL1wiO1xuICAgICAgICBpZiAoZmlsZU5hbWUuaW5kZXhPZihcIlxcXFxcIikgIT09IC0xKSB7XG4gICAgICAgICAgICBzZXBhcmF0b3IgPSBcIlxcXFxcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZU5hbWUuc3Vic3RyKGZpbGVOYW1lLmxhc3RJbmRleE9mKHNlcGFyYXRvcikgKyAxLCBmaWxlTmFtZS5sZW5ndGgpO1xuICAgIH07XG5cbiAgICBQYXRoVXRpbHMuZ2V0RGlybmFtZSA9IGZ1bmN0aW9uIGdldERpcm5hbWUoZmlsZU5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZpbGVOYW1lLnN1YnN0cigwLCBmaWxlTmFtZS5sYXN0SW5kZXhPZihcIi9cIikpO1xuICAgIH07XG5cbiAgICBQYXRoVXRpbHMuZ2V0QWp4cE1pbWVUeXBlID0gZnVuY3Rpb24gZ2V0QWp4cE1pbWVUeXBlKGl0ZW0pIHtcbiAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZ2V0KCdhanhwX21pbWUnKSB8fCBQYXRoVXRpbHMuZ2V0RmlsZUV4dGVuc2lvbihpdGVtLmdldCgnZmlsZW5hbWUnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5nZXRNZXRhZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZ2V0TWV0YWRhdGEoKS5nZXQoJ2FqeHBfbWltZScpIHx8IFBhdGhVdGlscy5nZXRGaWxlRXh0ZW5zaW9uKGl0ZW0uZ2V0UGF0aCgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtLmdldEF0dHJpYnV0ZSgnYWp4cF9taW1lJykgfHwgUGF0aFV0aWxzLmdldEZpbGVFeHRlbnNpb24oaXRlbS5nZXRBdHRyaWJ1dGUoJ2ZpbGVuYW1lJykpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFBhdGhVdGlscy5nZXRGaWxlRXh0ZW5zaW9uID0gZnVuY3Rpb24gZ2V0RmlsZUV4dGVuc2lvbihmaWxlTmFtZSkge1xuICAgICAgICBpZiAoIWZpbGVOYW1lIHx8IGZpbGVOYW1lID09PSBcIlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc3BsaXQgPSBQYXRoVXRpbHMuZ2V0QmFzZW5hbWUoZmlsZU5hbWUpLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gc3BsaXRbc3BsaXQubGVuZ3RoIC0gMV0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfTtcblxuICAgIFBhdGhVdGlscy5yb3VuZEZpbGVTaXplID0gZnVuY3Rpb24gcm91bmRGaWxlU2l6ZShmaWxlc2l6ZSkge1xuICAgICAgICB2YXIgbWVzc2FnZXMgPSBfUHlkaW8yW1wiZGVmYXVsdFwiXS5nZXRNZXNzYWdlcygpO1xuICAgICAgICB2YXIgc2l6ZVVuaXQgPSBtZXNzYWdlc1tcImJ5dGVfdW5pdF9zeW1ib2xcIl0gfHwgXCJCXCI7XG4gICAgICAgIHZhciBzaXplID0gZmlsZXNpemU7XG4gICAgICAgIGlmIChmaWxlc2l6ZSA+PSAxMDczNzQxODI0KSB7XG4gICAgICAgICAgICBzaXplID0gTWF0aC5yb3VuZChmaWxlc2l6ZSAvIDEwNzM3NDE4MjQgKiAxMDApIC8gMTAwICsgXCIgR1wiICsgc2l6ZVVuaXQ7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsZXNpemUgPj0gMTA0ODU3Nikge1xuICAgICAgICAgICAgc2l6ZSA9IE1hdGgucm91bmQoZmlsZXNpemUgLyAxMDQ4NTc2ICogMTAwKSAvIDEwMCArIFwiIE1cIiArIHNpemVVbml0O1xuICAgICAgICB9IGVsc2UgaWYgKGZpbGVzaXplID49IDEwMjQpIHtcbiAgICAgICAgICAgIHNpemUgPSBNYXRoLnJvdW5kKGZpbGVzaXplIC8gMTAyNCAqIDEwMCkgLyAxMDAgKyBcIiBLXCIgKyBzaXplVW5pdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpemUgPSBmaWxlc2l6ZSArIFwiIFwiICsgc2l6ZVVuaXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNpemU7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVPYmplY3QgRGF0ZVxuICAgICAqIEBwYXJhbSBmb3JtYXQgU3RyaW5nXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG5cbiAgICBQYXRoVXRpbHMuZm9ybWF0TW9kaWZEYXRlID0gZnVuY3Rpb24gZm9ybWF0TW9kaWZEYXRlKGRhdGVPYmplY3QsIGZvcm1hdCkge1xuICAgICAgICB2YXIgZiA9IGZvcm1hdDtcbiAgICAgICAgaWYgKCFmb3JtYXQgJiYgcHlkaW8gJiYgcHlkaW8uTWVzc2FnZUhhc2gpIHtcbiAgICAgICAgICAgIGYgPSBfUHlkaW8yW1wiZGVmYXVsdFwiXS5nZXRNZXNzYWdlcygpW1wiZGF0ZV9mb3JtYXRcIl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmKSB7XG4gICAgICAgICAgICByZXR1cm4gJ25vIGZvcm1hdCc7XG4gICAgICAgIH1cbiAgICAgICAgZiA9IGYucmVwbGFjZShcImRcIiwgZGF0ZU9iamVjdC5nZXREYXRlKCkgPCAxMCA/ICcwJyArIGRhdGVPYmplY3QuZ2V0RGF0ZSgpIDogZGF0ZU9iamVjdC5nZXREYXRlKCkpO1xuICAgICAgICBmID0gZi5yZXBsYWNlKFwiRFwiLCBkYXRlT2JqZWN0LmdldERheSgpKTtcbiAgICAgICAgZiA9IGYucmVwbGFjZShcIllcIiwgZGF0ZU9iamVjdC5nZXRGdWxsWWVhcigpKTtcbiAgICAgICAgZiA9IGYucmVwbGFjZShcInlcIiwgZGF0ZU9iamVjdC5nZXRZZWFyKCkpO1xuICAgICAgICB2YXIgbW9udGggPSBkYXRlT2JqZWN0LmdldE1vbnRoKCkgKyAxO1xuICAgICAgICBmID0gZi5yZXBsYWNlKFwibVwiLCBtb250aCA8IDEwID8gJzAnICsgbW9udGggOiBtb250aCk7XG4gICAgICAgIGYgPSBmLnJlcGxhY2UoXCJIXCIsIChkYXRlT2JqZWN0LmdldEhvdXJzKCkgPCAxMCA/ICcwJyA6ICcnKSArIGRhdGVPYmplY3QuZ2V0SG91cnMoKSk7XG4gICAgICAgIC8vIFN1cHBvcnQgMTIgaG91ciBmIGNvbXBhdGliaWxpdHlcbiAgICAgICAgZiA9IGYucmVwbGFjZShcImhcIiwgZGF0ZU9iamVjdC5nZXRIb3VycygpICUgMTIgfHwgMTIpO1xuICAgICAgICBmID0gZi5yZXBsYWNlKFwicFwiLCBkYXRlT2JqZWN0LmdldEhvdXJzKCkgPCAxMiA/IFwiYW1cIiA6IFwicG1cIik7XG4gICAgICAgIGYgPSBmLnJlcGxhY2UoXCJQXCIsIGRhdGVPYmplY3QuZ2V0SG91cnMoKSA8IDEyID8gXCJBTVwiIDogXCJQTVwiKTtcbiAgICAgICAgZiA9IGYucmVwbGFjZShcImlcIiwgKGRhdGVPYmplY3QuZ2V0TWludXRlcygpIDwgMTAgPyAnMCcgOiAnJykgKyBkYXRlT2JqZWN0LmdldE1pbnV0ZXMoKSk7XG4gICAgICAgIGYgPSBmLnJlcGxhY2UoXCJzXCIsIChkYXRlT2JqZWN0LmdldFNlY29uZHMoKSA8IDEwID8gJzAnIDogJycpICsgZGF0ZU9iamVjdC5nZXRTZWNvbmRzKCkpO1xuICAgICAgICByZXR1cm4gZjtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFBhdGhVdGlscztcbn0pKCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gUGF0aFV0aWxzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbS8+LlxuICpcbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgX3dpY2tlZEdvb2RYcGF0aCA9IHJlcXVpcmUoJ3dpY2tlZC1nb29kLXhwYXRoJyk7XG5cbnZhciBfd2lja2VkR29vZFhwYXRoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dpY2tlZEdvb2RYcGF0aCk7XG5cbl93aWNrZWRHb29kWHBhdGgyWydkZWZhdWx0J10uaW5zdGFsbCgpO1xuLyoqXG4gKiBVdGlsaXRhcnkgY2xhc3MgZm9yIG1hbmlwdWxhdGluZyBYTUxcbiAqL1xuXG52YXIgWE1MVXRpbHMgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFhNTFV0aWxzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgWE1MVXRpbHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgdGhlIGZpcnN0IFhtbE5vZGUgdGhhdCBtYXRjaGVzIHRoZSBYUGF0aCBleHByZXNzaW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVsZW1lbnQge0VsZW1lbnQgfCBEb2N1bWVudH0gcm9vdCBlbGVtZW50IGZvciB0aGUgc2VhcmNoXG4gICAgICogQHBhcmFtIHF1ZXJ5IHtTdHJpbmd9IFhQYXRoIHF1ZXJ5XG4gICAgICogQHJldHVybiB7RWxlbWVudH0gZmlyc3QgbWF0Y2hpbmcgZWxlbWVudFxuICAgICAqIEBzaWduYXR1cmUgZnVuY3Rpb24oZWxlbWVudCwgcXVlcnkpXG4gICAgICovXG5cbiAgICBYTUxVdGlscy5YUGF0aFNlbGVjdFNpbmdsZU5vZGUgPSBmdW5jdGlvbiBYUGF0aFNlbGVjdFNpbmdsZU5vZGUoZWxlbWVudCwgcXVlcnkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50WydzZWxlY3RTaW5nbGVOb2RlJ10gJiYgdHlwZW9mIGVsZW1lbnQuc2VsZWN0U2luZ2xlTm9kZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcyA9IGVsZW1lbnQuc2VsZWN0U2luZ2xlTm9kZShxdWVyeSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge31cblxuICAgICAgICBpZiAoIVhNTFV0aWxzLl9feHBlICYmIHdpbmRvdy5YUGF0aEV2YWx1YXRvcikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBYTUxVdGlscy5fX3hwZSA9IG5ldyBYUGF0aEV2YWx1YXRvcigpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghWE1MVXRpbHMuX194cGUpIHtcbiAgICAgICAgICAgIHF1ZXJ5ID0gZG9jdW1lbnQuY3JlYXRlRXhwcmVzc2lvbihxdWVyeSwgbnVsbCk7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gcXVlcnkuZXZhbHVhdGUoZWxlbWVudCwgNywgbnVsbCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LnNuYXBzaG90TGVuZ3RoID8gcmVzdWx0LnNuYXBzaG90SXRlbSgwKSA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgeHBlID0gWE1MVXRpbHMuX194cGU7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB4cGUuZXZhbHVhdGUocXVlcnksIGVsZW1lbnQsIHhwZS5jcmVhdGVOU1Jlc29sdmVyKGVsZW1lbnQpLCBYUGF0aFJlc3VsdC5GSVJTVF9PUkRFUkVEX05PREVfVFlQRSwgbnVsbCkuc2luZ2xlTm9kZVZhbHVlO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInNlbGVjdFNpbmdsZU5vZGU6IHF1ZXJ5OiBcIiArIHF1ZXJ5ICsgXCIsIGVsZW1lbnQ6IFwiICsgZWxlbWVudCArIFwiLCBlcnJvcjogXCIgKyBlcnIpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgYSBsaXN0IG9mIG5vZGVzIG1hdGNoaW5nIHRoZSBYUGF0aCBleHByZXNzaW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVsZW1lbnQge0VsZW1lbnQgfCBEb2N1bWVudH0gcm9vdCBlbGVtZW50IGZvciB0aGUgc2VhcmNoXG4gICAgICogQHBhcmFtIHF1ZXJ5IHtTdHJpbmd9IFhQYXRoIHF1ZXJ5XG4gICAgICogQHJldHVybiB7RWxlbWVudFtdfSBMaXN0IG9mIG1hdGNoaW5nIGVsZW1lbnRzXG4gICAgICogQHNpZ25hdHVyZSBmdW5jdGlvbihlbGVtZW50LCBxdWVyeSlcbiAgICAgKi9cblxuICAgIFhNTFV0aWxzLlhQYXRoU2VsZWN0Tm9kZXMgPSBmdW5jdGlvbiBYUGF0aFNlbGVjdE5vZGVzKGVsZW1lbnQsIHF1ZXJ5KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnQuc2VsZWN0Tm9kZXMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50Lm93bmVyRG9jdW1lbnQgJiYgZWxlbWVudC5vd25lckRvY3VtZW50LnNldFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm93bmVyRG9jdW1lbnQuc2V0UHJvcGVydHkoXCJTZWxlY3Rpb25MYW5ndWFnZVwiLCBcIlhQYXRoXCIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuc2V0UHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0UHJvcGVydHkoXCJTZWxlY3Rpb25MYW5ndWFnZVwiLCBcIlhQYXRoXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICAgICAgICB2YXIgcmVzID0gQXJyYXkuZnJvbShlbGVtZW50LnNlbGVjdE5vZGVzKHF1ZXJ5KSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge31cblxuICAgICAgICB2YXIgeHBlID0gWE1MVXRpbHMuX194cGU7XG5cbiAgICAgICAgaWYgKCF4cGUgJiYgd2luZG93LlhQYXRoRXZhbHVhdG9yKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIFhNTFV0aWxzLl9feHBlID0geHBlID0gbmV3IFhQYXRoRXZhbHVhdG9yKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQsXG4gICAgICAgICAgICBub2RlcyA9IFtdLFxuICAgICAgICAgICAgaTtcbiAgICAgICAgaWYgKCFYTUxVdGlscy5fX3hwZSkge1xuICAgICAgICAgICAgcXVlcnkgPSBkb2N1bWVudC5jcmVhdGVFeHByZXNzaW9uKHF1ZXJ5LCBudWxsKTtcbiAgICAgICAgICAgIHJlc3VsdCA9IHF1ZXJ5LmV2YWx1YXRlKGVsZW1lbnQsIDcsIG51bGwpO1xuICAgICAgICAgICAgbm9kZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCByZXN1bHQuc25hcHNob3RMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChFbGVtZW50LmV4dGVuZCkge1xuICAgICAgICAgICAgICAgICAgICBub2Rlc1tpXSA9IEVsZW1lbnQuZXh0ZW5kKHJlc3VsdC5zbmFwc2hvdEl0ZW0oaSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVzW2ldID0gcmVzdWx0LnNuYXBzaG90SXRlbShpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9kZXM7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzdWx0ID0geHBlLmV2YWx1YXRlKHF1ZXJ5LCBlbGVtZW50LCB4cGUuY3JlYXRlTlNSZXNvbHZlcihlbGVtZW50KSwgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInNlbGVjdE5vZGVzOiBxdWVyeTogXCIgKyBxdWVyeSArIFwiLCBlbGVtZW50OiBcIiArIGVsZW1lbnQgKyBcIiwgZXJyb3I6IFwiICsgZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCByZXN1bHQuc25hcHNob3RMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbm9kZXNbaV0gPSByZXN1bHQuc25hcHNob3RJdGVtKGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGVzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIHRoZSBmaXJzdCBYbWxOb2RlIHRoYXQgbWF0Y2hlcyB0aGUgWFBhdGggZXhwcmVzc2lvbiBhbmQgcmV0dXJucyB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBlbGVtZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gZWxlbWVudCB7RWxlbWVudHxEb2N1bWVudH0gcm9vdCBlbGVtZW50IGZvciB0aGUgc2VhcmNoXG4gICAgICogQHBhcmFtIHF1ZXJ5IHtTdHJpbmd9ICBYUGF0aCBxdWVyeVxuICAgICAqIEByZXR1cm4ge1N0cmluZ30gdGhlIGpvaW5lZCB0ZXh0IGNvbnRlbnQgb2YgdGhlIGZvdW5kIGVsZW1lbnQgb3IgbnVsbCBpZiBub3QgYXBwcm9wcmlhdGUuXG4gICAgICogQHNpZ25hdHVyZSBmdW5jdGlvbihlbGVtZW50LCBxdWVyeSlcbiAgICAgKi9cblxuICAgIFhNTFV0aWxzLlhQYXRoR2V0U2luZ2xlTm9kZVRleHQgPSBmdW5jdGlvbiBYUGF0aEdldFNpbmdsZU5vZGVUZXh0KGVsZW1lbnQsIHF1ZXJ5KSB7XG4gICAgICAgIHZhciBub2RlID0gWE1MVXRpbHMuWFBhdGhTZWxlY3RTaW5nbGVOb2RlKGVsZW1lbnQsIHF1ZXJ5KTtcbiAgICAgICAgcmV0dXJuIFhNTFV0aWxzLmdldERvbU5vZGVUZXh0KG5vZGUpO1xuICAgIH07XG5cbiAgICBYTUxVdGlscy5nZXREb21Ob2RlVGV4dCA9IGZ1bmN0aW9uIGdldERvbU5vZGVUZXh0KG5vZGUpIHtcbiAgICAgICAgdmFyIGluY2x1ZGVDRGF0YSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5ub2RlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAvLyBOT0RFX0VMRU1FTlRcbiAgICAgICAgICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgICAgICAgICAgYSA9IFtdLFxuICAgICAgICAgICAgICAgICAgICBub2RlcyA9IG5vZGUuY2hpbGROb2RlcyxcbiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gbm9kZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBhW2ldID0gWE1MVXRpbHMuZ2V0RG9tTm9kZVRleHQobm9kZXNbaV0sIGluY2x1ZGVDRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuam9pbihcIlwiKTtcblxuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIC8vIE5PREVfQVRUUklCVVRFXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUudmFsdWU7XG5cbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAvLyBOT0RFX1RFWFRcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5ub2RlVmFsdWU7XG5cbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAvLyBDREFUQVxuICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlQ0RhdGEpIHJldHVybiBub2RlLm5vZGVWYWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0geG1sU3RyXG4gICAgICogQHJldHVybnMgeyp9XG4gICAgICovXG5cbiAgICBYTUxVdGlscy5wYXJzZVhtbCA9IGZ1bmN0aW9uIHBhcnNlWG1sKHhtbFN0cikge1xuXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93LkRPTVBhcnNlciAhPSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5ET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoeG1sU3RyLCBcInRleHQveG1sXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93LkFjdGl2ZVhPYmplY3QgIT0gXCJ1bmRlZmluZWRcIiAmJiBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoXCJNU1hNTDIuRE9NRG9jdW1lbnQuNi4wXCIpKSB7XG4gICAgICAgICAgICB2YXIgeG1sRG9jID0gbmV3IHdpbmRvdy5BY3RpdmVYT2JqZWN0KFwiTVNYTUwyLkRPTURvY3VtZW50LjYuMFwiKTtcbiAgICAgICAgICAgIHhtbERvYy52YWxpZGF0ZU9uUGFyc2UgPSBmYWxzZTtcbiAgICAgICAgICAgIHhtbERvYy5hc3luYyA9IGZhbHNlO1xuICAgICAgICAgICAgeG1sRG9jLmxvYWRYTUwoeG1sU3RyKTtcbiAgICAgICAgICAgIHhtbERvYy5zZXRQcm9wZXJ0eSgnU2VsZWN0aW9uTGFuZ3VhZ2UnLCAnWFBhdGgnKTtcbiAgICAgICAgICAgIHJldHVybiB4bWxEb2M7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcGFyc2UgWE1MIHN0cmluZycpO1xuICAgIH07XG5cbiAgICByZXR1cm4gWE1MVXRpbHM7XG59KSgpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBYTUxVdGlscztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX0NoYXRDbGllbnQgPSByZXF1aXJlKCcuL0NoYXRDbGllbnQnKTtcblxudmFyIF9DaGF0Q2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0NoYXRDbGllbnQpO1xuXG52YXIgX01lc3NhZ2UgPSByZXF1aXJlKCcuL01lc3NhZ2UnKTtcblxudmFyIF9NZXNzYWdlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX01lc3NhZ2UpO1xuXG52YXIgX3ZpZXdzRW1wdHlTdGF0ZVZpZXcgPSByZXF1aXJlKCcuLi92aWV3cy9FbXB0eVN0YXRlVmlldycpO1xuXG52YXIgX3ZpZXdzRW1wdHlTdGF0ZVZpZXcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdmlld3NFbXB0eVN0YXRlVmlldyk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfQ2hhdFVzZXJzID0gcmVxdWlyZSgnLi9DaGF0VXNlcnMnKTtcblxudmFyIF9DaGF0VXNlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQ2hhdFVzZXJzKTtcblxudmFyIF9QeWRpbyRyZXF1aXJlTGliID0gX3B5ZGlvMlsnZGVmYXVsdCddLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX1B5ZGlvJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG52YXIgbW9tZW50ID0gX1B5ZGlvJHJlcXVpcmVMaWIubW9tZW50O1xuXG52YXIgQ2hhdCA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhDaGF0LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIENoYXQocHJvcHMpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENoYXQpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcyk7XG4gICAgICAgIHRoaXMuY2xpZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHsgbWVzc2FnZXM6IFtdLCByb29tOiBudWxsLCB2YWx1ZTogXCJcIiB9O1xuICAgICAgICB0aGlzLl9uZXdNZXNzYWdlTGlzdGVuZXIgPSB0aGlzLm9uTmV3TWVzc2FnZS5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIENoYXQucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuam9pbih0aGlzLnByb3BzLnJvb21UeXBlLCB0aGlzLnByb3BzLnJvb21PYmplY3RJZCk7XG4gICAgfTtcblxuICAgIENoYXQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIHRoaXMuc3RvcCgpO1xuICAgIH07XG5cbiAgICBDaGF0LnByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGUgPSBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICAgICAgaWYgKHByZXZTdGF0ZS5tZXNzYWdlcy5sZW5ndGggPD0gdGhpcy5zdGF0ZS5tZXNzYWdlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcy5jb21tZW50cy5zY3JvbGxUb3AgPSAxMDAwMDA7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIHZhciBweWRpbyA9IG5leHRQcm9wcy5weWRpbztcbiAgICAgICAgdmFyIHJvb21UeXBlID0gbmV4dFByb3BzLnJvb21UeXBlO1xuICAgICAgICB2YXIgcm9vbU9iamVjdElkID0gbmV4dFByb3BzLnJvb21PYmplY3RJZDtcblxuICAgICAgICBpZiAocm9vbVR5cGUgIT09IHRoaXMucHJvcHMucm9vbVR5cGUgfHwgcm9vbU9iamVjdElkICE9PSB0aGlzLnByb3BzLnJvb21PYmplY3RJZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xpZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGllbnQubGVhdmVSb29tKHRoaXMucHJvcHMucm9vbVR5cGUsIHRoaXMucHJvcHMucm9vbU9iamVjdElkLCB0aGlzLl9uZXdNZXNzYWdlTGlzdGVuZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1lc3NhZ2VzOiBbXSwgcm9vbTogbnVsbCwgdmFsdWU6IFwiXCIgfSk7XG4gICAgICAgICAgICBpZiAocm9vbVR5cGUgJiYgcm9vbU9iamVjdElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5qb2luKHJvb21UeXBlLCByb29tT2JqZWN0SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYXQucHJvdG90eXBlLm9uUm9vbU1lc3NhZ2UgPSBmdW5jdGlvbiBvblJvb21NZXNzYWdlKG1zZykge1xuICAgICAgICBpZiAobXNnKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgcm9vbTogbXNnWydSb29tJ10gfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUub25OZXdNZXNzYWdlID0gZnVuY3Rpb24gb25OZXdNZXNzYWdlKG1zZykge1xuICAgICAgICB2YXIgZGVsZXRlTXNnID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgaWYgKCFtc2cpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVsZXRlTXNnKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbWVzc2FnZXM6IHRoaXMuc3RhdGUubWVzc2FnZXMuZmlsdGVyKGZ1bmN0aW9uIChtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtLlV1aWQgIT09IG1zZy5VdWlkO1xuICAgICAgICAgICAgICAgIH0pIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1lc3NhZ2VzOiBbXS5jb25jYXQodGhpcy5zdGF0ZS5tZXNzYWdlcywgW21zZ10pIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIENoYXQucHJvdG90eXBlLmpvaW4gPSBmdW5jdGlvbiBqb2luKHJvb21UeXBlLCByb29tT2JqZWN0SWQpIHtcbiAgICAgICAgaWYgKCFyb29tT2JqZWN0SWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcHlkaW8gPSB0aGlzLnByb3BzLnB5ZGlvO1xuXG4gICAgICAgIHRoaXMuY2xpZW50ID0gX0NoYXRDbGllbnQyWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UocHlkaW8pO1xuICAgICAgICB2YXIgcm9vbSA9IHRoaXMuY2xpZW50LmpvaW5Sb29tKHJvb21UeXBlLCByb29tT2JqZWN0SWQsIHRoaXMuX25ld01lc3NhZ2VMaXN0ZW5lciwgdGhpcy5vblJvb21NZXNzYWdlLmJpbmQodGhpcykpO1xuICAgICAgICBpZiAocm9vbSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHJvb206IHJvb20gfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbGllbnQubG9hZEhpc3Rvcnkocm9vbVR5cGUsIHJvb21PYmplY3RJZCk7XG4gICAgfTtcblxuICAgIENoYXQucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbiBzdG9wKCkge1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHJvb21UeXBlID0gX3Byb3BzLnJvb21UeXBlO1xuICAgICAgICB2YXIgcm9vbU9iamVjdElkID0gX3Byb3BzLnJvb21PYmplY3RJZDtcblxuICAgICAgICBpZiAodGhpcy5jbGllbnQpIHRoaXMuY2xpZW50LmxlYXZlUm9vbShyb29tVHlwZSwgcm9vbU9iamVjdElkLCB0aGlzLl9uZXdNZXNzYWdlTGlzdGVuZXIpO1xuICAgIH07XG5cbiAgICBDaGF0LnByb3RvdHlwZS5wb3N0TWVzc2FnZSA9IGZ1bmN0aW9uIHBvc3RNZXNzYWdlKCkge1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGUudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcm9vbSA9IHRoaXMuc3RhdGUucm9vbTtcblxuICAgICAgICBpZiAoIXJvb20gfHwgIXJvb20uVXVpZCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkNhbm5vdCBmaW5kIGNlbGwgaW5mb1wiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgIFwiQHR5cGVcIjogXCJQT1NUXCIsXG4gICAgICAgICAgICBcIk1lc3NhZ2VcIjogeyBcIlJvb21VdWlkXCI6IHJvb20uVXVpZCwgXCJNZXNzYWdlXCI6IHRoaXMuc3RhdGUudmFsdWUgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNsaWVudC5zZW5kKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiAnJyB9KTtcbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUuZGVsZXRlTWVzc2FnZSA9IGZ1bmN0aW9uIGRlbGV0ZU1lc3NhZ2UobXNnKSB7XG4gICAgICAgIHZhciByb29tID0gdGhpcy5zdGF0ZS5yb29tO1xuXG4gICAgICAgIGlmICghcm9vbSB8fCAhcm9vbS5VdWlkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IGZpbmQgY2VsbCBpbmZvXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtZXNzYWdlID0ge1xuICAgICAgICAgICAgXCJAdHlwZVwiOiBcIkRFTEVURV9NU0dcIixcbiAgICAgICAgICAgIFwiTWVzc2FnZVwiOiBtc2dcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jbGllbnQuc2VuZChKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7XG4gICAgfTtcblxuICAgIENoYXQucHJvdG90eXBlLmtleURvd24gPSBmdW5jdGlvbiBrZXlEb3duKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnBvc3RNZXNzYWdlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhdC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzMi5zdHlsZTtcbiAgICAgICAgdmFyIG1zZ0NvbnRhaW5lclN0eWxlID0gX3Byb3BzMi5tc2dDb250YWluZXJTdHlsZTtcbiAgICAgICAgdmFyIGZpZWxkSGludCA9IF9wcm9wczIuZmllbGRIaW50O1xuICAgICAgICB2YXIgZW1wdHlTdGF0ZVByb3BzID0gX3Byb3BzMi5lbXB0eVN0YXRlUHJvcHM7XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wczIucHlkaW87XG4gICAgICAgIHZhciBwdXNoTWVzc2FnZXNUb0JvdHRvbSA9IF9wcm9wczIucHVzaE1lc3NhZ2VzVG9Cb3R0b207XG4gICAgICAgIHZhciBjb21wdXRlUHJlc2VuY2VGcm9tQUNMcyA9IF9wcm9wczIuY29tcHV0ZVByZXNlbmNlRnJvbUFDTHM7XG4gICAgICAgIHZhciBfc3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgICAgICB2YXIgbWVzc2FnZXMgPSBfc3RhdGUubWVzc2FnZXM7XG4gICAgICAgIHZhciByb29tID0gX3N0YXRlLnJvb207XG5cbiAgICAgICAgdmFyIGRhdGEgPSBbXTtcbiAgICAgICAgdmFyIHByZXZpb3VzTURhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBwcmV2aW91c0F1dGhvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgbWVzc2FnZXMuZm9yRWFjaChmdW5jdGlvbiAobSkge1xuICAgICAgICAgICAgaWYgKG1bJ01lc3NhZ2UnXSkge1xuICAgICAgICAgICAgICAgIHZhciBtRGF0ZSA9IG1vbWVudChwYXJzZUZsb2F0KG0uVGltZXN0YW1wKSAqIDEwMDApLmZyb21Ob3coKTtcbiAgICAgICAgICAgICAgICB2YXIgaGlkZURhdGUgPSBwcmV2aW91c01EYXRlICYmIHByZXZpb3VzTURhdGUgPT09IG1EYXRlO1xuICAgICAgICAgICAgICAgIHZhciBzYW1lQXV0aG9yID0gcHJldmlvdXNBdXRob3IgJiYgcHJldmlvdXNBdXRob3IgPT09IG0uQXV0aG9yICYmIGhpZGVEYXRlO1xuICAgICAgICAgICAgICAgIGRhdGEucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfTWVzc2FnZTJbJ2RlZmF1bHQnXSwgeyBrZXk6IG0uVXVpZCwgbWVzc2FnZTogbSwgaGlkZURhdGU6IGhpZGVEYXRlLCBzYW1lQXV0aG9yOiBzYW1lQXV0aG9yLCBvbkRlbGV0ZU1lc3NhZ2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLmRlbGV0ZU1lc3NhZ2UobSk7XG4gICAgICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgICAgIHByZXZpb3VzTURhdGUgPSBtRGF0ZTtcbiAgICAgICAgICAgICAgICBwcmV2aW91c0F1dGhvciA9IG0uQXV0aG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHB1c2hTdHlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIHB1c2hlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHB1c2hNZXNzYWdlc1RvQm90dG9tKSB7XG4gICAgICAgICAgICBwdXNoU3R5bGUgPSB7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgfTtcbiAgICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcHVzaGVyID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nLCB7IHN0eWxlOiB7IGZsZXg6IDEgfSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgZW1wdHlTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGVtcHR5U3RhdGVQcm9wcyAmJiAoIWRhdGEgfHwgIWRhdGEubGVuZ3RoKSkge1xuICAgICAgICAgICAgZW1wdHlTdGF0ZSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF92aWV3c0VtcHR5U3RhdGVWaWV3MlsnZGVmYXVsdCddLCBfZXh0ZW5kcyh7IHB5ZGlvOiBweWRpbyB9LCBlbXB0eVN0YXRlUHJvcHMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IF9leHRlbmRzKHsgcGFkZGluZzogMCB9LCBzdHlsZSkgfSxcbiAgICAgICAgICAgIGNvbXB1dGVQcmVzZW5jZUZyb21BQ0xzICE9PSB1bmRlZmluZWQgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX0NoYXRVc2VyczJbJ2RlZmF1bHQnXSwgeyBweWRpbzogcHlkaW8sIEFDTHM6IGNvbXB1dGVQcmVzZW5jZUZyb21BQ0xzLCByb29tVXNlcnM6IHJvb20gPyByb29tLlVzZXJzIDogW10gfSksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHJlZjogJ2NvbW1lbnRzJywgY2xhc3NOYW1lOiAnY29tbWVudHNfZmVlZCcsIHN0eWxlOiBfZXh0ZW5kcyh7IG1heEhlaWdodDogMzAwLCBvdmVyZmxvd1k6ICdhdXRvJyB9LCBwdXNoU3R5bGUsIG1zZ0NvbnRhaW5lclN0eWxlKSB9LFxuICAgICAgICAgICAgICAgIHB1c2hlcixcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGVcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGJhY2tncm91bmRDb2xvcjogJ3doaXRlJywgcGFkZGluZ0xlZnQ6IDE2LCBwYWRkaW5nUmlnaHQ6IDE2LCBib3JkZXJUb3A6ICcxcHggc29saWQgI2UwZTBlMCcgfSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlRleHRGaWVsZCwge1xuICAgICAgICAgICAgICAgICAgICBoaW50VGV4dDogZmllbGRIaW50LFxuICAgICAgICAgICAgICAgICAgICBoaW50U3R5bGU6IHsgd2hpdGVTcGFjZTogJ25vd3JhcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuc3RhdGUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbiAoZXZlbnQsIG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiBuZXdWYWx1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlMaW5lOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZWY6ICduZXdfY29tbWVudCcsXG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bjogdGhpcy5rZXlEb3duLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lU2hvdzogZmFsc2VcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gQ2hhdDtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5DaGF0LlByb3BUeXBlcyA9IHtcbiAgICByb29tVHlwZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgcm9vbU9iamVjdElkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZ1xufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQ2hhdCA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKENoYXQpO1xuZXhwb3J0c1snZGVmYXVsdCddID0gQ2hhdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcHlkaW9IdHRwV2Vic29ja2V0ID0gcmVxdWlyZSgncHlkaW8vaHR0cC93ZWJzb2NrZXQnKTtcblxudmFyIF9weWRpb0h0dHBXZWJzb2NrZXQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9IdHRwV2Vic29ja2V0KTtcblxudmFyIF9yZWNvbm5lY3RpbmdXZWJzb2NrZXQgPSByZXF1aXJlKCdyZWNvbm5lY3Rpbmctd2Vic29ja2V0Jyk7XG5cbnZhciBfcmVjb25uZWN0aW5nV2Vic29ja2V0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlY29ubmVjdGluZ1dlYnNvY2tldCk7XG5cbnZhciBDaGF0Q2xpZW50ID0gKGZ1bmN0aW9uIChfUHlkaW9XZWJTb2NrZXQpIHtcbiAgICBfaW5oZXJpdHMoQ2hhdENsaWVudCwgX1B5ZGlvV2ViU29ja2V0KTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHB5ZGlvT2JqZWN0XG4gICAgICogQHJldHVybiB7Q2hhdENsaWVudH1cbiAgICAgKi9cblxuICAgIENoYXRDbGllbnQuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbiBnZXRJbnN0YW5jZShweWRpb09iamVjdCkge1xuICAgICAgICBpZiAoQ2hhdENsaWVudC5faW5zdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIENoYXRDbGllbnQuX2luc3RhbmNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgQ2hhdENsaWVudC5faW5zdGFuY2UgPSBuZXcgQ2hhdENsaWVudChweWRpb09iamVjdCk7XG4gICAgICAgICAgICByZXR1cm4gQ2hhdENsaWVudC5faW5zdGFuY2U7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHlkaW9PYmplY3Qge1B5ZGlvfVxuICAgICAqL1xuXG4gICAgZnVuY3Rpb24gQ2hhdENsaWVudChweWRpb09iamVjdCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ2hhdENsaWVudCk7XG5cbiAgICAgICAgX1B5ZGlvV2ViU29ja2V0LmNhbGwodGhpcywgcHlkaW9PYmplY3QpO1xuICAgICAgICB0aGlzLmN1cnJlbnRSZXBvID0gcHlkaW9PYmplY3QucmVwb3NpdG9yeUlkO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSB7fTtcbiAgICAgICAgdGhpcy5yb29tcyA9IHt9O1xuICAgICAgICB0aGlzLnJvb21JbmZvcyA9IHt9O1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG5cbiAgICBDaGF0Q2xpZW50LnByb3RvdHlwZS5nZXRJZGVudGlmaWVyID0gZnVuY3Rpb24gZ2V0SWRlbnRpZmllcihyb29tVHlwZSwgb2JqZWN0SWQpIHtcbiAgICAgICAgcmV0dXJuIHJvb21UeXBlICsgJzonICsgb2JqZWN0SWQ7XG4gICAgfTtcblxuICAgIENoYXRDbGllbnQucHJvdG90eXBlLmdldFJvb21JbmZvRnJvbUlkZW50aWZpZXIgPSBmdW5jdGlvbiBnZXRSb29tSW5mb0Zyb21JZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgICAgICAgdmFyIF9pZGVudGlmaWVyJHNwbGl0ID0gaWRlbnRpZmllci5zcGxpdCgnOicpO1xuXG4gICAgICAgIHZhciByb29tVHlwZSA9IF9pZGVudGlmaWVyJHNwbGl0WzBdO1xuICAgICAgICB2YXIgb2JqZWN0SWQgPSBfaWRlbnRpZmllciRzcGxpdFsxXTtcblxuICAgICAgICByZXR1cm4geyByb29tVHlwZTogcm9vbVR5cGUsIG9iamVjdElkOiBvYmplY3RJZCB9O1xuICAgIH07XG5cbiAgICBDaGF0Q2xpZW50LnByb3RvdHlwZS5vblJvb21NZXNzYWdlID0gZnVuY3Rpb24gb25Sb29tTWVzc2FnZShtc2cpIHtcbiAgICAgICAgaWYgKG1zZykge1xuICAgICAgICAgICAgdmFyIHJvb20gPSBtc2dbJ1Jvb20nXTtcbiAgICAgICAgICAgIHZhciBpZGVudGlmaWVyID0gdGhpcy5nZXRJZGVudGlmaWVyKHJvb20uVHlwZSwgcm9vbS5Sb29tVHlwZU9iamVjdCk7XG4gICAgICAgICAgICB0aGlzLnJvb21JbmZvc1tpZGVudGlmaWVyXSA9IHJvb207XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9vbVR5cGUgc3RyaW5nXG4gICAgICogQHBhcmFtIG9iamVjdElkIHN0cmluZ1xuICAgICAqIEBwYXJhbSBtZXNzYWdlSGFuZGxlciBGdW5jdGlvblxuICAgICAqIEBwYXJhbSByb29tVXBkYXRlSGFuZGxlciBGdW5jdGlvblxuICAgICAqIEBwYXJhbSByZXRyeSBOdW1iZXJcbiAgICAgKi9cblxuICAgIENoYXRDbGllbnQucHJvdG90eXBlLmpvaW5Sb29tID0gZnVuY3Rpb24gam9pblJvb20ocm9vbVR5cGUsIG9iamVjdElkLCBtZXNzYWdlSGFuZGxlciwgcm9vbVVwZGF0ZUhhbmRsZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgcmV0cnkgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzRdO1xuXG4gICAgICAgIHZhciBpZGVudGlmaWVyID0gdGhpcy5nZXRJZGVudGlmaWVyKHJvb21UeXBlLCBvYmplY3RJZCk7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl0pIHtcbiAgICAgICAgICAgIHZhciBhbHJlYWR5ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl0ubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgaWYgKHYubWVzc2FnZUhhbmRsZXIgPT09IG1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGFscmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKCFhbHJlYWR5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2lkZW50aWZpZXJdLnB1c2goeyBtZXNzYWdlSGFuZGxlcjogbWVzc2FnZUhhbmRsZXIsIHJvb21VcGRhdGVIYW5kbGVyOiByb29tVXBkYXRlSGFuZGxlciB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvb21JbmZvc1tpZGVudGlmaWVyXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25uZWN0aW5nKSB7XG4gICAgICAgICAgICBpZiAocmV0cnkgPCAzKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ0Nvbm5lY3Rpbmcgc3RhdGUuLi4gcmV0cnlpbmcgbm93Jywgb2JqZWN0SWQpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5qb2luUm9vbShyb29tVHlwZSwgb2JqZWN0SWQsIG1lc3NhZ2VIYW5kbGVyLCByb29tVXBkYXRlSGFuZGxlciwgcmV0cnkgKyAxKTtcbiAgICAgICAgICAgICAgICB9LCAxNTAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5jb25uT3Blbikge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdOb3Qgb3Blbi4uLiByZXRyeWluZyBub3cnLCBvYmplY3RJZCk7XG4gICAgICAgICAgICAgICAgX3RoaXMuam9pblJvb20ocm9vbVR5cGUsIG9iamVjdElkLCBtZXNzYWdlSGFuZGxlciwgcm9vbVVwZGF0ZUhhbmRsZXIsIHJldHJ5ICsgMSk7XG4gICAgICAgICAgICB9LCAxNTAwKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIC8vY29uc29sZS5sb2coJ05vdyBzdG9yaW5nIHN1YnNjcmlwdGlvbiBmb3IgJywgb2JqZWN0SWQpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbcm9vbVR5cGUgKyAnOicgKyBvYmplY3RJZF0gPSBbeyBtZXNzYWdlSGFuZGxlcjogbWVzc2FnZUhhbmRsZXIsIHJvb21VcGRhdGVIYW5kbGVyOiByb29tVXBkYXRlSGFuZGxlciB9XTtcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSB7IFwiQHR5cGVcIjogXCJKT0lOXCIsIFwiUm9vbVwiOiB7IFwiVHlwZVwiOiByb29tVHlwZSwgXCJSb29tVHlwZU9iamVjdFwiOiBvYmplY3RJZCB9IH07XG4gICAgICAgIHRoaXMud3Muc2VuZChKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7XG4gICAgICAgIHJldHVybiB0aGlzLnJvb21JbmZvc1tpZGVudGlmaWVyXTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU2VuZCBhIEhJU1RPUlkgcmVxdWVzdCB0byByZWNlaXZlIGV4aXN0aW5nIG1lc3NhZ2VzIGluIHJvb21cbiAgICAgKiBAcGFyYW0gcm9vbVR5cGVcbiAgICAgKiBAcGFyYW0gb2JqZWN0SWRcbiAgICAgKiBAcGFyYW0gcmV0cnkgaW50XG4gICAgICovXG5cbiAgICBDaGF0Q2xpZW50LnByb3RvdHlwZS5sb2FkSGlzdG9yeSA9IGZ1bmN0aW9uIGxvYWRIaXN0b3J5KHJvb21UeXBlLCBvYmplY3RJZCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgcmV0cnkgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzJdO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbm5lY3RpbmcpIHtcbiAgICAgICAgICAgIGlmIChyZXRyeSA8IDMpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLmxvYWRIaXN0b3J5KHJvb21UeXBlLCBvYmplY3RJZCwgcmV0cnkgKyAxKTtcbiAgICAgICAgICAgICAgICB9LCAxNTAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1lc3NhZ2UgPSB7IFwiQHR5cGVcIjogXCJISVNUT1JZXCIsIFwiUm9vbVwiOiB7IFwiVHlwZVwiOiByb29tVHlwZSwgXCJSb29tVHlwZU9iamVjdFwiOiBvYmplY3RJZCB9IH07XG4gICAgICAgIHRoaXMud3Muc2VuZChKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvb21UeXBlXG4gICAgICogQHBhcmFtIG9iamVjdElkXG4gICAgICogQHBhcmFtIG1lc3NhZ2VIYW5kbGVyIEZ1bmN0aW9uXG4gICAgICovXG5cbiAgICBDaGF0Q2xpZW50LnByb3RvdHlwZS5sZWF2ZVJvb20gPSBmdW5jdGlvbiBsZWF2ZVJvb20ocm9vbVR5cGUsIG9iamVjdElkKSB7XG4gICAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBtZXNzYWdlSGFuZGxlciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGFyZ3VtZW50c1syXTtcblxuICAgICAgICB2YXIga2VlcCA9IGZhbHNlO1xuICAgICAgICB2YXIgaWRlbnRpZmllciA9IHRoaXMuZ2V0SWRlbnRpZmllcihyb29tVHlwZSwgb2JqZWN0SWQpO1xuICAgICAgICAvL2NvbnNvbGUubG9nKCdMZWF2aW5nIHJvb206ICcgKyBvYmplY3RJZCk7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl0pIHtcbiAgICAgICAgICAgIGlmIChtZXNzYWdlSGFuZGxlcikge1xuICAgICAgICAgICAgICAgIC8vIEp1c3QgcmVtb3ZlIHRoaXMgaGFuZGxlclxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZGVudGlmaWVyXSA9IHRoaXMuc3Vic2NyaXB0aW9uc1tpZGVudGlmaWVyXS5maWx0ZXIoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYubWVzc2FnZUhhbmRsZXIgIT09IG1lc3NhZ2VIYW5kbGVyO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl0ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGtlZXAgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5zdWJzY3JpcHRpb25zW2lkZW50aWZpZXJdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgha2VlcCkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXModGhpcy5yb29tcykubWFwKGZ1bmN0aW9uIChrKSB7XG4gICAgICAgICAgICAgICAgaWYgKF90aGlzMy5yb29tc1trXSA9PT0gaWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgX3RoaXMzLnJvb21zW2tdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29ubk9wZW4pIHtcbiAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IHsgXCJAdHlwZVwiOiBcIkxFQVZFXCIsIFwiUm9vbVwiOiB7IFwiVHlwZVwiOiByb29tVHlwZSwgXCJSb29tVHlwZU9iamVjdFwiOiBvYmplY3RJZCB9IH07XG4gICAgICAgICAgICAgICAgdGhpcy53cy5zZW5kKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtc2dcbiAgICAgKi9cblxuICAgIENoYXRDbGllbnQucHJvdG90eXBlLmhhbmRsZU1lc3NhZ2VSZWNlaXZlZCA9IGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2VSZWNlaXZlZChtc2cpIHtcbiAgICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKG1zZ1snZGF0YSddKTtcbiAgICAgICAgaWYgKGRhdGFbXCJAdHlwZVwiXSA9PT0gJ1JPT01fVVBEQVRFJykge1xuICAgICAgICAgICAgdmFyIGlkZW50aWZpZXIgPSB0aGlzLmdldElkZW50aWZpZXIoZGF0YS5Sb29tLlR5cGUsIGRhdGEuUm9vbS5Sb29tVHlwZU9iamVjdCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zW2lkZW50aWZpZXJdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnJvb21zW2RhdGEuUm9vbS5VdWlkXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb21zW2RhdGEuUm9vbS5VdWlkXSA9IGlkZW50aWZpZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMub25Sb29tTWVzc2FnZShkYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbaWRlbnRpZmllcl0ubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2LnJvb21VcGRhdGVIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYucm9vbVVwZGF0ZUhhbmRsZXIoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBkZWxldGVNc2cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB2YXIgd3NNZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhW1wiQHR5cGVcIl0gPT09ICdERUxFVEVfTVNHJykge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGVNc2cgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB3c01lc3NhZ2UgPSBkYXRhW1wiTWVzc2FnZVwiXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3c01lc3NhZ2UgPSBkYXRhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAod3NNZXNzYWdlLlJvb21VdWlkICYmIF90aGlzNC5yb29tc1t3c01lc3NhZ2UuUm9vbVV1aWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdWJzID0gX3RoaXM0LnN1YnNjcmlwdGlvbnNbX3RoaXM0LnJvb21zW3dzTWVzc2FnZS5Sb29tVXVpZF1dO1xuICAgICAgICAgICAgICAgICAgICB2YXIgd2l0aFJvb21VcGRhdGVIYW5kbGVyID0gc3Vicy5maWx0ZXIoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2LnJvb21VcGRhdGVIYW5kbGVyO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBzdWJzY3JpYmVyIHdpdGggYSByb29tVXBkYXRlSGFuZGxlciwgaXQgaXMgYW4gb3BlbiByb29tLFxuICAgICAgICAgICAgICAgICAgICAvLyBzbyBzZW5kIG1lc3NhZ2Ugb25seSB0byB0aGF0IG9uZS4gVGhlIG9uZXMgd2l0aG91dCBhcmUganVzdCBub3RpZmljYXRpb24gbGlzdGVuZXJzXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aXRoUm9vbVVwZGF0ZUhhbmRsZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzID0gd2l0aFJvb21VcGRhdGVIYW5kbGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN1YnMubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYubWVzc2FnZUhhbmRsZXIod3NNZXNzYWdlLCBkZWxldGVNc2cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXNzYWdlXG4gICAgICovXG5cbiAgICBDaGF0Q2xpZW50LnByb3RvdHlwZS5zZW5kID0gZnVuY3Rpb24gc2VuZChtZXNzYWdlKSB7XG4gICAgICAgIHRoaXMud3Muc2VuZChtZXNzYWdlKTtcbiAgICB9O1xuXG4gICAgQ2hhdENsaWVudC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uIG9wZW4oKSB7XG4gICAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRSZXBvKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHVybCA9IHRoaXMucHlkaW8uUGFyYW1ldGVycy5nZXQoXCJFTkRQT0lOVF9XRUJTT0NLRVRcIikucmVwbGFjZShcIi9ldmVudFwiLCBcIi9jaGF0XCIpO1xuICAgICAgICB0aGlzLndzID0gbmV3IF9yZWNvbm5lY3RpbmdXZWJzb2NrZXQyWydkZWZhdWx0J10odXJsLCBbXSwge1xuICAgICAgICAgICAgbWF4UmVjb25uZWN0aW9uRGVsYXk6IDYwMDAwLFxuICAgICAgICAgICAgcmVjb25uZWN0aW9uRGVsYXlHcm93RmFjdG9yOiAxLjYsXG4gICAgICAgICAgICBtYXhSZXRyaWVzOiAxMFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbm5lY3RpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcignb3BlbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF9weWRpb0h0dHBXZWJzb2NrZXQyWydkZWZhdWx0J10uc3Vic2NyaWJlSldUKF90aGlzNS53cykudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM1LmNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBfdGhpczUuY29ubk9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzNS5jb25uZWN0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgX3RoaXM1LmNvbm5PcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIChtc2cpIHtcbiAgICAgICAgICAgIF90aGlzNS5oYW5kbGVNZXNzYWdlUmVjZWl2ZWQobXNnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcignY2xvc2UnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIF90aGlzNS5jb25uT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgX3RoaXM1LmNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIF9weWRpb0h0dHBXZWJzb2NrZXQyWydkZWZhdWx0J10ubG9nQ2xvc2UoZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy53cy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFSE9TVERPV04nKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IG1heFJldHJpZXMgcmVhY2hlZCwgaG9zdCBpcyBkb3duIScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgQ2hhdENsaWVudC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiBjbG9zZSgpIHtcbiAgICAgICAgdmFyIF90aGlzNiA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMud3MgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnN1YnNjcmlwdGlvbnMpLm1hcChmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgdmFyIF9nZXRSb29tSW5mb0Zyb21JZGVudGlmaWVyID0gX3RoaXM2LmdldFJvb21JbmZvRnJvbUlkZW50aWZpZXIoayk7XG5cbiAgICAgICAgICAgIHZhciByb29tVHlwZSA9IF9nZXRSb29tSW5mb0Zyb21JZGVudGlmaWVyLnJvb21UeXBlO1xuICAgICAgICAgICAgdmFyIG9iamVjdElkID0gX2dldFJvb21JbmZvRnJvbUlkZW50aWZpZXIub2JqZWN0SWQ7XG5cbiAgICAgICAgICAgIF90aGlzNi5sZWF2ZVJvb20ocm9vbVR5cGUsIG9iamVjdElkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMud3MuY2xvc2UoMTAwMCwgJ0Nsb3NpbmcnLCB7IGtlZXBDbG9zZWQ6IHRydWUgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBDaGF0Q2xpZW50O1xufSkoX3B5ZGlvSHR0cFdlYnNvY2tldDJbJ2RlZmF1bHQnXSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENoYXRDbGllbnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX0NoYXRDbGllbnQgPSByZXF1aXJlKCcuL0NoYXRDbGllbnQnKTtcblxudmFyIF9DaGF0Q2xpZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0NoYXRDbGllbnQpO1xuXG52YXIgQ2hhdEljb24gPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoQ2hhdEljb24sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gQ2hhdEljb24ocHJvcHMpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENoYXRJY29uKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBuZXdNZXNzYWdlczogMCB9O1xuICAgICAgICB0aGlzLl9tZXNzYWdlTGlzdGVuZXIgPSB0aGlzLm9uTWVzc2FnZS5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIENoYXRJY29uLnByb3RvdHlwZS5vbk1lc3NhZ2UgPSBmdW5jdGlvbiBvbk1lc3NhZ2UobXNnKSB7XG4gICAgICAgIHZhciBkZWxldGVNc2cgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICBpZiAoZGVsZXRlTXNnKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbmV3TWVzc2FnZXM6IE1hdGgubWF4KDAsIHRoaXMuc3RhdGUubmV3TWVzc2FnZXMgLSAxKSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBuZXdNZXNzYWdlczogdGhpcy5zdGF0ZS5uZXdNZXNzYWdlcyArIDEgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhdEljb24ucHJvdG90eXBlLmxpc3RlblRvUm9vbSA9IGZ1bmN0aW9uIGxpc3RlblRvUm9vbShyb29tVHlwZSwgb2JqZWN0SWQpIHtcbiAgICAgICAgdmFyIGNsaWVudCA9IF9DaGF0Q2xpZW50MlsnZGVmYXVsdCddLmdldEluc3RhbmNlKHRoaXMucHJvcHMucHlkaW8pO1xuICAgICAgICBjbGllbnQuam9pblJvb20ocm9vbVR5cGUsIG9iamVjdElkLCB0aGlzLl9tZXNzYWdlTGlzdGVuZXIsIG51bGwpO1xuICAgIH07XG5cbiAgICBDaGF0SWNvbi5wcm90b3R5cGUubGVhdmVSb29tID0gZnVuY3Rpb24gbGVhdmVSb29tKHJvb21UeXBlLCBvYmplY3RJZCkge1xuICAgICAgICB2YXIgY2xpZW50ID0gX0NoYXRDbGllbnQyWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UodGhpcy5wcm9wcy5weWRpbyk7XG4gICAgICAgIGNsaWVudC5sZWF2ZVJvb20ocm9vbVR5cGUsIG9iamVjdElkLCB0aGlzLl9tZXNzYWdlTGlzdGVuZXIpO1xuICAgIH07XG5cbiAgICBDaGF0SWNvbi5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciByb29tVHlwZSA9IF9wcm9wcy5yb29tVHlwZTtcbiAgICAgICAgdmFyIG9iamVjdElkID0gX3Byb3BzLm9iamVjdElkO1xuXG4gICAgICAgIHRoaXMubGlzdGVuVG9Sb29tKHJvb21UeXBlLCBvYmplY3RJZCk7XG4gICAgfTtcblxuICAgIENoYXRJY29uLnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB2YXIgX3Byb3BzMiA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciByb29tVHlwZSA9IF9wcm9wczIucm9vbVR5cGU7XG4gICAgICAgIHZhciBvYmplY3RJZCA9IF9wcm9wczIub2JqZWN0SWQ7XG5cbiAgICAgICAgdGhpcy5sZWF2ZVJvb20ocm9vbVR5cGUsIG9iamVjdElkKTtcbiAgICB9O1xuXG4gICAgQ2hhdEljb24ucHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHJvb21UeXBlID0gX3Byb3BzMy5yb29tVHlwZTtcbiAgICAgICAgdmFyIG9iamVjdElkID0gX3Byb3BzMy5vYmplY3RJZDtcblxuICAgICAgICBpZiAobmV4dFByb3BzLnJvb21UeXBlICE9PSByb29tVHlwZSB8fCBuZXh0UHJvcHMub2JqZWN0SWQgIT09IG9iamVjdElkKSB7XG4gICAgICAgICAgICB0aGlzLmxlYXZlUm9vbShyb29tVHlwZSwgb2JqZWN0SWQpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG5ld01lc3NhZ2VzOiAwIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5saXN0ZW5Ub1Jvb20obmV4dFByb3BzLnJvb21UeXBlLCBuZXh0UHJvcHMub2JqZWN0SWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2hhdEljb24ucHJvdG90eXBlLm9uQ2xpY2sgPSBmdW5jdGlvbiBvbkNsaWNrKCkge1xuICAgICAgICB2YXIgcHlkaW8gPSB0aGlzLnByb3BzLnB5ZGlvO1xuXG4gICAgICAgIHB5ZGlvLkNvbnRyb2xsZXIuZmlyZUFjdGlvbigndG9nZ2xlX2NoYXRfcGFuZWwnKTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG5ld01lc3NhZ2VzOiAwIH0pO1xuICAgIH07XG5cbiAgICBDaGF0SWNvbi5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgbmV3TWVzc2FnZXMgPSB0aGlzLnN0YXRlLm5ld01lc3NhZ2VzO1xuXG4gICAgICAgIGlmIChuZXdNZXNzYWdlcyA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlZCA9ICcnO1xuICAgICAgICB2YXIgZ3JlZW4gPSAnIzhCQzM0QSc7XG4gICAgICAgIHZhciBzdHlsZSA9IHsgZGlzcGxheTogJ2lubGluZS1ibG9jaycsIHBhZGRpbmc6ICcwIDVweCcsIGZvbnRTaXplOiAxNSwgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGNvbG9yOiBncmVlbiwgZm9udFdlaWdodDogNTAwLCBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9O1xuICAgICAgICB2YXIgaW5uZXJTdHlsZSA9IHsgZm9udFNpemU6IDEzLCBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJywgcG9zaXRpb246ICdhYnNvbHV0ZScsIHRvcDogLTEsIG1hcmdpbkxlZnQ6IDIgfTtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgeyBvbkNsaWNrOiB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKSwgY2xhc3NOYW1lOiAnbWRpIG1kaS1jb21tZW50Jywgc3R5bGU6IHN0eWxlIH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogaW5uZXJTdHlsZSB9LFxuICAgICAgICAgICAgICAgIG5ld01lc3NhZ2VzXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBDaGF0SWNvbjtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDaGF0SWNvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcHlkaW9Nb2RlbElkbU9iamVjdEhlbHBlciA9IHJlcXVpcmUoJ3B5ZGlvL21vZGVsL2lkbS1vYmplY3QtaGVscGVyJyk7XG5cbnZhciBfcHlkaW9Nb2RlbElkbU9iamVjdEhlbHBlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyKTtcblxudmFyIENoYXRVc2VycyA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhDaGF0VXNlcnMsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gQ2hhdFVzZXJzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ2hhdFVzZXJzKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgQ2hhdFVzZXJzLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgQUNMcyA9IF9wcm9wcy5BQ0xzO1xuICAgICAgICB2YXIgcm9vbVVzZXJzID0gX3Byb3BzLnJvb21Vc2VycztcbiAgICAgICAgdmFyIHB5ZGlvID0gX3Byb3BzLnB5ZGlvO1xuXG4gICAgICAgIHZhciBzdHlsZSA9IHsgdXNlcjoge1xuICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAxMFxuICAgICAgICAgICAgfSwgb25saW5lOiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICcjNENBRjUwJyxcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA1XG4gICAgICAgICAgICB9LCBvZmZsaW5lOiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogNVxuICAgICAgICAgICAgfSB9O1xuXG4gICAgICAgIHZhciB1c2VycyA9IE9iamVjdC5rZXlzKEFDTHMpLm1hcChmdW5jdGlvbiAocm9sZUlkKSB7XG4gICAgICAgICAgICB2YXIgYWNsID0gQUNMc1tyb2xlSWRdO1xuICAgICAgICAgICAgdmFyIG9ubGluZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciBsYWJlbCA9IF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyMlsnZGVmYXVsdCddLmV4dHJhY3RMYWJlbChweWRpbywgYWNsKTtcbiAgICAgICAgICAgIGlmIChhY2wuVXNlcikge1xuICAgICAgICAgICAgICAgIGlmIChyb29tVXNlcnMgJiYgcm9vbVVzZXJzLmluZGV4T2YoYWNsLlVzZXIuTG9naW4pID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgb25saW5lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvbmxpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlLnVzZXIgfSxcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICBvbmxpbmUgIT09IHVuZGVmaW5lZCAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiBcIm1kaSBtZGktY2hlY2tib3gtYmxhbmstY2lyY2xlXCIgKyAob25saW5lID8gXCJcIiA6IFwiLW91dGxpbmVcIiksIHN0eWxlOiBvbmxpbmUgPyBzdHlsZS5vbmxpbmUgOiBzdHlsZS5vZmZsaW5lIH0pLFxuICAgICAgICAgICAgICAgIG9ubGluZSA9PT0gdW5kZWZpbmVkICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6IFwibWRpIG1kaS1hY2NvdW50LW11bHRpcGxlLW91dGxpbmVcIiwgc3R5bGU6IHN0eWxlLm9mZmxpbmUgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBzdHlsZTogeyBwYWRkaW5nOiAxNiwgZm9udFdlaWdodDogNTAwLCBjb2xvcjogJyM3NTc1NzUnIH0gfSxcbiAgICAgICAgICAgIHVzZXJzXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBDaGF0VXNlcnM7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQ2hhdFVzZXJzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3B5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9weWRpbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpbyk7XG5cbnZhciBfdXNlcnNBdmF0YXJVc2VyQXZhdGFyID0gcmVxdWlyZSgnLi4vdXNlcnMvYXZhdGFyL1VzZXJBdmF0YXInKTtcblxudmFyIF91c2Vyc0F2YXRhclVzZXJBdmF0YXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXNlcnNBdmF0YXJVc2VyQXZhdGFyKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9weWRpb1V0aWxEb20gPSByZXF1aXJlKCdweWRpby91dGlsL2RvbScpO1xuXG52YXIgX3B5ZGlvVXRpbERvbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb1V0aWxEb20pO1xuXG52YXIgX1B5ZGlvJHJlcXVpcmVMaWIgPSBfcHlkaW8yWydkZWZhdWx0J10ucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfUHlkaW8kcmVxdWlyZUxpYi5QeWRpb0NvbnRleHRDb25zdW1lcjtcbnZhciBtb21lbnQgPSBfUHlkaW8kcmVxdWlyZUxpYi5tb21lbnQ7XG5cbnZhciBNZXNzYWdlID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKE1lc3NhZ2UsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gTWVzc2FnZShwcm9wcykge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWVzc2FnZSk7XG5cbiAgICAgICAgX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHsgaG92ZXI6IGZhbHNlIH07XG4gICAgfVxuXG4gICAgTWVzc2FnZS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgbWVzc2FnZSA9IF9wcm9wcy5tZXNzYWdlO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHMucHlkaW87XG4gICAgICAgIHZhciBoaWRlRGF0ZSA9IF9wcm9wcy5oaWRlRGF0ZTtcbiAgICAgICAgdmFyIHNhbWVBdXRob3IgPSBfcHJvcHMuc2FtZUF1dGhvcjtcbiAgICAgICAgdmFyIG9uRGVsZXRlTWVzc2FnZSA9IF9wcm9wcy5vbkRlbGV0ZU1lc3NhZ2U7XG5cbiAgICAgICAgdmFyIG1EYXRlID0gbW9tZW50KHBhcnNlRmxvYXQobWVzc2FnZS5UaW1lc3RhbXApICogMTAwMCk7XG5cbiAgICAgICAgdmFyIHN0eWxlcyA9IHtcbiAgICAgICAgICAgIGRhdGU6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMCwwLDAsLjIzKScsXG4gICAgICAgICAgICAgICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAnNXB4IDAnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0ZUxpbmU6IHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAgIG1hcmdpbjogJzEwcHggMjBweCcsXG4gICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlZWUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tbWVudDoge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDgsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbW1lbnRDb250ZW50OiB7XG4gICAgICAgICAgICAgICAgZmxleDogJzEnLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDgsXG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogJzhweCAxMHB4JyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZWVlJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbW1lbnREZWxldGVCb3g6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICB0b3A6IDUsXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDUsXG4gICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IDIwLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzQyNDI0MicsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBfcHlkaW9VdGlsRG9tMlsnZGVmYXVsdCddLmdldEJlemllcnNUcmFuc2l0aW9uKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgYXV0aG9ySXNMb2dnZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHB5ZGlvLnVzZXIuaWQgPT09IG1lc3NhZ2UuQXV0aG9yKSB7XG4gICAgICAgICAgICBhdXRob3JJc0xvZ2dlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGF2YXRhciA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBzYW1lQXV0aG9yID8geyB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9IDogeyBwYWRkaW5nVG9wOiAyIH0gfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF91c2Vyc0F2YXRhclVzZXJBdmF0YXIyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICBhdmF0YXJTaXplOiAzMCxcbiAgICAgICAgICAgICAgICBweWRpbzogcHlkaW8sXG4gICAgICAgICAgICAgICAgdXNlcklkOiBtZXNzYWdlLkF1dGhvcixcbiAgICAgICAgICAgICAgICBkaXNwbGF5TGFiZWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJpY2hPbkhvdmVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIGF2YXRhckxldHRlcnM6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHZhciB0ZXh0U3R5bGUgPSBfZXh0ZW5kcyh7fSwgc3R5bGVzLmNvbW1lbnRDb250ZW50KTtcbiAgICAgICAgaWYgKGF1dGhvcklzTG9nZ2VkKSB7XG4gICAgICAgICAgICB0ZXh0U3R5bGUgPSBfZXh0ZW5kcyh7fSwgdGV4dFN0eWxlLCB7IG1hcmdpbkxlZnQ6IDAsIG1hcmdpblJpZ2h0OiA4IH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzYW1lQXV0aG9yKSB7XG4gICAgICAgICAgICB0ZXh0U3R5bGUgPSBfZXh0ZW5kcyh7fSwgdGV4dFN0eWxlLCB7IGJvcmRlclJhZGl1czogMCB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVsZXRlQm94ID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYXV0aG9ySXNMb2dnZWQpIHtcbiAgICAgICAgICAgIHZhciBob3ZlciA9IHRoaXMuc3RhdGUuaG92ZXI7XG5cbiAgICAgICAgICAgIHZhciBkZWxldGVTdHlsZSA9IHN0eWxlcy5jb21tZW50RGVsZXRlQm94O1xuICAgICAgICAgICAgaWYgKGhvdmVyKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlU3R5bGUub3BhY2l0eSA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWxldGVCb3ggPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHtcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiBvbkRlbGV0ZU1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWRpIG1kaS1jbG9zZScsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlcy5jb21tZW50RGVsZXRlQm94LFxuICAgICAgICAgICAgICAgIHRpdGxlOiBweWRpby5NZXNzYWdlSGFzaFsnNyddXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGV4dCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgX21hdGVyaWFsVWkuUGFwZXIsXG4gICAgICAgICAgICB7IHpEZXB0aDogMCwgc3R5bGU6IHRleHRTdHlsZSB9LFxuICAgICAgICAgICAgZGVsZXRlQm94LFxuICAgICAgICAgICAgbWVzc2FnZS5NZXNzYWdlXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBzYW1lQXV0aG9yID8geyBtYXJnaW5Ub3A6IC0xNiB9IDoge30sIG9uTW91c2VPdmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgaG92ZXI6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgfSwgb25Nb3VzZU91dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGhvdmVyOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9IH0sXG4gICAgICAgICAgICAhaGlkZURhdGUgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLmRhdGUgfSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgc3R5bGU6IHN0eWxlcy5kYXRlTGluZSB9KSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtRGF0ZS5mcm9tTm93KClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBzdHlsZTogc3R5bGVzLmRhdGVMaW5lIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgYXV0aG9ySXNMb2dnZWQgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLmNvbW1lbnQgfSxcbiAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgICcgJyxcbiAgICAgICAgICAgICAgICBhdmF0YXJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAhYXV0aG9ySXNMb2dnZWQgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLmNvbW1lbnQgfSxcbiAgICAgICAgICAgICAgICBhdmF0YXIsXG4gICAgICAgICAgICAgICAgJyAnLFxuICAgICAgICAgICAgICAgIHRleHRcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIE1lc3NhZ2U7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuTWVzc2FnZS5Qcm9wVHlwZXMgPSB7XG4gICAgbWVzc2FnZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgaGlkZURhdGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICBzYW1lQXV0aG9yOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2xcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE1lc3NhZ2UgPSBQeWRpb0NvbnRleHRDb25zdW1lcihNZXNzYWdlKTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE1lc3NhZ2U7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfU3RvcmUgPSByZXF1aXJlKCcuL1N0b3JlJyk7XG5cbnZhciBfU3RvcmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3RvcmUpO1xuXG52YXIgX0dyaWRCdWlsZGVyID0gcmVxdWlyZSgnLi9HcmlkQnVpbGRlcicpO1xuXG52YXIgX0dyaWRCdWlsZGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0dyaWRCdWlsZGVyKTtcblxuLyoqXG4gKiBBdXRvbWF0aWMgbGF5b3V0IGZvciBwcmVzZW50aW5nIGRyYWdnYWJsZSBjYXJkcyB0byB1c2Vycy4gVXNlZCBmb3IgdXNlciBhbmQgYWRtaW4gZGFzaGJvYXJkLlxuICovXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xudmFyIFB5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgncmVhY3QtZ3JpZC1sYXlvdXQnKTtcblxudmFyIFJlc3BvbnNpdmUgPSBfcmVxdWlyZS5SZXNwb25zaXZlO1xudmFyIFdpZHRoUHJvdmlkZXIgPSBfcmVxdWlyZS5XaWR0aFByb3ZpZGVyO1xuXG52YXIgX1B5ZGlvJHJlcXVpcmVMaWIgPSBQeWRpby5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9QeWRpbyRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xudmFyIENhcmRzR3JpZCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0NhcmRzR3JpZCcsXG5cbiAgICAvKipcbiAgICAgKiBTYXZlIGxheW91dHMgaW4gdGhlIHVzZXJzIHByZWZlcmVuY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gYWxsTGF5b3V0cyBSZXNwb25zaXZlIGxheW91dHMgcGFzc2VkIGZvciBzYXZpbmdcbiAgICAgKi9cbiAgICBzYXZlRnVsbExheW91dHM6IGZ1bmN0aW9uIHNhdmVGdWxsTGF5b3V0cyhhbGxMYXlvdXRzKSB7XG4gICAgICAgIHZhciBzYXZlZFByZWYgPSB0aGlzLnByb3BzLnN0b3JlLmdldFVzZXJQcmVmZXJlbmNlKCdMYXlvdXQnKTtcbiAgICAgICAgLy8gQ29tcGFyZSBKU09OIHZlcnNpb25zIHRvIGF2b2lkIHNhdmluZyB1bm5lY2Vzc2FyeSBjaGFuZ2VzXG4gICAgICAgIGlmIChzYXZlZFByZWYgJiYgdGhpcy5wcmV2aW91c0xheW91dCAmJiB0aGlzLnByZXZpb3VzTGF5b3V0ID09IEpTT04uc3RyaW5naWZ5KGFsbExheW91dHMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmV2aW91c0xheW91dCA9IEpTT04uc3RyaW5naWZ5KGFsbExheW91dHMpO1xuICAgICAgICB0aGlzLnByb3BzLnN0b3JlLnNhdmVVc2VyUHJlZmVyZW5jZSgnTGF5b3V0JywgYWxsTGF5b3V0cyk7XG4gICAgfSxcblxuICAgIG9uTGF5b3V0Q2hhbmdlOiBmdW5jdGlvbiBvbkxheW91dENoYW5nZShjdXJyZW50TGF5b3V0LCBhbGxMYXlvdXRzKSB7XG4gICAgICAgIGlmICh0aGlzLl9ibG9ja0xheW91dFNhdmUpIHJldHVybjtcbiAgICAgICAgdGhpcy5zYXZlRnVsbExheW91dHMoYWxsTGF5b3V0cyk7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5zdG9yZS5zdG9wT2JzZXJ2aW5nKFwiY2FyZHNcIiwgdGhpcy5fc3RvcmVPYnNlcnZlcik7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzICYmIG5leHRQcm9wcy5lZGl0TW9kZSAhPT0gdGhpcy5wcm9wcy5lZGl0TW9kZSkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXModGhpcy5yZWZzKS5mb3JFYWNoKChmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmc1trXS50b2dnbGVFZGl0TW9kZShuZXh0UHJvcHMuZWRpdE1vZGUpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgc2hvdWxkQ29tcG9uZW50VXBkYXRlOiBmdW5jdGlvbiBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvcmNlVXBkYXRlIHx8IGZhbHNlO1xuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5fc3RvcmVPYnNlcnZlciA9IChmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICAgICAgdGhpcy5fZm9yY2VVcGRhdGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgY2FyZHM6IHRoaXMucHJvcHMuc3RvcmUuZ2V0Q2FyZHMoKVxuICAgICAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzLl9mb3JjZVVwZGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMucHJvcHMuc3RvcmUub2JzZXJ2ZShcImNhcmRzXCIsIHRoaXMuX3N0b3JlT2JzZXJ2ZXIpO1xuICAgICAgICByZXR1cm4geyBjYXJkczogdGhpcy5wcm9wcy5zdG9yZS5nZXRDYXJkcygpIH07XG4gICAgfSxcblxuICAgIHJlbW92ZUNhcmQ6IGZ1bmN0aW9uIHJlbW92ZUNhcmQoaXRlbUtleSkge1xuICAgICAgICB0aGlzLnByb3BzLnJlbW92ZUNhcmQoaXRlbUtleSk7XG4gICAgfSxcblxuICAgIGJ1aWxkQ2FyZHM6IGZ1bmN0aW9uIGJ1aWxkQ2FyZHMoY2FyZHMpIHtcblxuICAgICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgICB2YXIgbGF5b3V0cyA9IHsgbGc6IFtdLCBtZDogW10sIHNtOiBbXSwgeHM6IFtdLCB4eHM6IFtdIH07XG4gICAgICAgIHZhciBpdGVtcyA9IFtdO1xuICAgICAgICB2YXIgYWRkaXRpb25hbE5hbWVzcGFjZXMgPSBbXTtcbiAgICAgICAgdmFyIHJhbmQgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAgICB2YXIgc2F2ZWRMYXlvdXRzID0gdGhpcy5wcm9wcy5zdG9yZS5nZXRVc2VyUHJlZmVyZW5jZSgnTGF5b3V0Jyk7XG4gICAgICAgIHZhciBidWlsZExheW91dCA9IGZ1bmN0aW9uIGJ1aWxkTGF5b3V0KGNsYXNzT2JqZWN0LCBpdGVtS2V5LCBpdGVtLCB4LCB5KSB7XG4gICAgICAgICAgICB2YXIgbGF5b3V0ID0gY2xhc3NPYmplY3QuZ2V0R3JpZExheW91dCh4LCB5KTtcbiAgICAgICAgICAgIGxheW91dFsnaGFuZGxlJ10gPSAnaDQnO1xuICAgICAgICAgICAgaWYgKGl0ZW1bJ2dyaWRIYW5kbGUnXSkge1xuICAgICAgICAgICAgICAgIGxheW91dFsnaGFuZGxlJ10gPSBpdGVtWydncmlkSGFuZGxlJ107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsYXlvdXRbJ2knXSA9IGl0ZW1LZXk7XG4gICAgICAgICAgICByZXR1cm4gbGF5b3V0O1xuICAgICAgICB9O1xuICAgICAgICBjYXJkcy5tYXAoKGZ1bmN0aW9uIChpdGVtKSB7XG5cbiAgICAgICAgICAgIHZhciBwYXJ0cyA9IGl0ZW0uY29tcG9uZW50Q2xhc3Muc3BsaXQoXCIuXCIpO1xuICAgICAgICAgICAgdmFyIGNsYXNzTlMgPSBwYXJ0c1swXTtcbiAgICAgICAgICAgIHZhciBjbGFzc05hbWUgPSBwYXJ0c1sxXTtcbiAgICAgICAgICAgIHZhciBjbGFzc09iamVjdDtcbiAgICAgICAgICAgIGlmIChnbG9iYWxbY2xhc3NOU10gJiYgZ2xvYmFsW2NsYXNzTlNdW2NsYXNzTmFtZV0pIHtcbiAgICAgICAgICAgICAgICBjbGFzc09iamVjdCA9IGdsb2JhbFtjbGFzc05TXVtjbGFzc05hbWVdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWdsb2JhbFtjbGFzc05TXSkge1xuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsTmFtZXNwYWNlcy5wdXNoKGNsYXNzTlMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgaXRlbS5wcm9wcyk7XG4gICAgICAgICAgICB2YXIgaXRlbUtleSA9IHByb3BzWydrZXknXSA9IGl0ZW1bJ2lkJ10gfHwgJ2l0ZW1fJyArIGluZGV4O1xuICAgICAgICAgICAgcHJvcHMucmVmID0gaXRlbUtleTtcbiAgICAgICAgICAgIHByb3BzLnB5ZGlvID0gdGhpcy5wcm9wcy5weWRpbztcbiAgICAgICAgICAgIHByb3BzLm9uQ2xvc2VBY3Rpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2FyZChpdGVtS2V5KTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgICAgICBwcm9wcy5wcmVmZXJlbmNlc1Byb3ZpZGVyID0gdGhpcy5wcm9wcy5zdG9yZTtcbiAgICAgICAgICAgIHZhciBkZWZhdWx0WCA9IDAsXG4gICAgICAgICAgICAgICAgZGVmYXVsdFkgPSAwO1xuICAgICAgICAgICAgaWYgKGl0ZW0uZGVmYXVsdFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdFggPSBpdGVtLmRlZmF1bHRQb3NpdGlvbi54O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRZID0gaXRlbS5kZWZhdWx0UG9zaXRpb24ueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBkZWZhdWx0TGF5b3V0ID0gYnVpbGRMYXlvdXQoY2xhc3NPYmplY3QsIGl0ZW1LZXksIGl0ZW0sIGRlZmF1bHRYLCBkZWZhdWx0WSk7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGJyZWFrcG9pbnQgaW4gbGF5b3V0cykge1xuICAgICAgICAgICAgICAgIGlmICghbGF5b3V0cy5oYXNPd25Qcm9wZXJ0eShicmVha3BvaW50KSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgdmFyIGJyZWFrTGF5b3V0ID0gbGF5b3V0c1ticmVha3BvaW50XTtcbiAgICAgICAgICAgICAgICAvLyBGaW5kIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpbiBwcmVmZXJlbmNlXG4gICAgICAgICAgICAgICAgdmFyIGV4aXN0aW5nO1xuICAgICAgICAgICAgICAgIGlmIChzYXZlZExheW91dHMgJiYgc2F2ZWRMYXlvdXRzW2JyZWFrcG9pbnRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHNhdmVkTGF5b3V0c1ticmVha3BvaW50XS5tYXAoZnVuY3Rpb24gKGdyaWREYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JpZERhdGFbJ2knXSA9PSBpdGVtS2V5ICYmIGdyaWREYXRhWydoJ10gPT0gZGVmYXVsdExheW91dFsnaCddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcgPSBncmlkRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgICAgICBicmVha0xheW91dC5wdXNoKGV4aXN0aW5nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uZGVmYXVsdExheW91dHMgJiYgaXRlbS5kZWZhdWx0TGF5b3V0c1ticmVha3BvaW50XSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY3J0TGF5b3V0ID0gYnVpbGRMYXlvdXQoY2xhc3NPYmplY3QsIGl0ZW1LZXksIGl0ZW0sIGl0ZW0uZGVmYXVsdExheW91dHNbYnJlYWtwb2ludF0ueCwgaXRlbS5kZWZhdWx0TGF5b3V0c1ticmVha3BvaW50XS55KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtMYXlvdXQucHVzaChjcnRMYXlvdXQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrTGF5b3V0LnB1c2goZGVmYXVsdExheW91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChjbGFzc09iamVjdCwgcHJvcHMpKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgaWYgKGFkZGl0aW9uYWxOYW1lc3BhY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5fYmxvY2tMYXlvdXRTYXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIFJlc291cmNlc01hbmFnZXIubG9hZENsYXNzZXNBbmRBcHBseShhZGRpdGlvbmFsTmFtZXNwYWNlcywgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgYWRkaXRpb25hbE5hbWVzcGFjZXNMb2FkZWQ6IGFkZGl0aW9uYWxOYW1lc3BhY2VzIH0sIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Jsb2NrTGF5b3V0U2F2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY2FyZHM6IGl0ZW1zLCBsYXlvdXRzOiBsYXlvdXRzIH07XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX2J1aWxkQ2FyZHMgPSB0aGlzLmJ1aWxkQ2FyZHModGhpcy5zdGF0ZS5jYXJkcyk7XG5cbiAgICAgICAgdmFyIGNhcmRzID0gX2J1aWxkQ2FyZHMuY2FyZHM7XG4gICAgICAgIHZhciBsYXlvdXRzID0gX2J1aWxkQ2FyZHMubGF5b3V0cztcblxuICAgICAgICB2YXIgUmVzcG9uc2l2ZUdyaWRMYXlvdXQgPSBXaWR0aFByb3ZpZGVyKFJlc3BvbnNpdmUpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFJlc3BvbnNpdmVHcmlkTGF5b3V0LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2Rhc2hib2FyZC1sYXlvdXQnLFxuICAgICAgICAgICAgICAgIGNvbHM6IHRoaXMucHJvcHMuY29scyB8fCB7IGxnOiAxMCwgbWQ6IDgsIHNtOiA4LCB4czogNCwgeHhzOiAyIH0sXG4gICAgICAgICAgICAgICAgbGF5b3V0czogbGF5b3V0cyxcbiAgICAgICAgICAgICAgICByb3dIZWlnaHQ6IDUsXG4gICAgICAgICAgICAgICAgb25MYXlvdXRDaGFuZ2U6IHRoaXMub25MYXlvdXRDaGFuZ2UsXG4gICAgICAgICAgICAgICAgaXNEcmFnZ2FibGU6ICF0aGlzLnByb3BzLmRpc2FibGVEcmFnLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB0aGlzLnByb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAgIGF1dG9TaXplOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhcmRzXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcblxudmFyIER5bmFtaWNHcmlkID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnRHluYW1pY0dyaWQnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIHN0b3JlTmFtZXNwYWNlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgIGJ1aWxkZXJOYW1lc3BhY2VzOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIGRlZmF1bHRDYXJkczogUmVhY3QuUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICBweWRpbzogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW8pLFxuICAgICAgICBkaXNhYmxlRHJhZzogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIGRpc2FibGVFZGl0OiBSZWFjdC5Qcm9wVHlwZXMuYm9vbFxuICAgIH0sXG5cbiAgICByZW1vdmVDYXJkOiBmdW5jdGlvbiByZW1vdmVDYXJkKGNhcmRJZCkge1xuXG4gICAgICAgIHRoaXMuc3RhdGUuc3RvcmUucmVtb3ZlQ2FyZChjYXJkSWQpO1xuICAgIH0sXG5cbiAgICBhZGRDYXJkOiBmdW5jdGlvbiBhZGRDYXJkKGNhcmREZWZpbml0aW9uKSB7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5zdG9yZS5hZGRDYXJkKGNhcmREZWZpbml0aW9uKTtcbiAgICB9LFxuXG4gICAgcmVzZXRDYXJkc0FuZExheW91dDogZnVuY3Rpb24gcmVzZXRDYXJkc0FuZExheW91dCgpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5zdG9yZS5zYXZlVXNlclByZWZlcmVuY2UoJ0xheW91dCcsIG51bGwpO1xuICAgICAgICB0aGlzLnN0YXRlLnN0b3JlLnNldENhcmRzKHRoaXMucHJvcHMuZGVmYXVsdENhcmRzKTtcbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHZhciBzdG9yZSA9IG5ldyBfU3RvcmUyWydkZWZhdWx0J10odGhpcy5wcm9wcy5zdG9yZU5hbWVzcGFjZSwgdGhpcy5wcm9wcy5kZWZhdWx0Q2FyZHMsIHRoaXMucHJvcHMucHlkaW8pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZWRpdE1vZGU6IGZhbHNlLFxuICAgICAgICAgICAgc3RvcmU6IHN0b3JlXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIHRvZ2dsZUVkaXRNb2RlOiBmdW5jdGlvbiB0b2dnbGVFZGl0TW9kZSgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRNb2RlOiAhdGhpcy5zdGF0ZS5lZGl0TW9kZSB9KTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciBtb25pdG9yV2lkZ2V0RWRpdGluZyA9IChmdW5jdGlvbiAoc3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgd2lkZ2V0RWRpdGluZzogc3RhdHVzIH0pO1xuICAgICAgICB9KS5iaW5kKHRoaXMpO1xuXG4gICAgICAgIHZhciBidWlsZGVyID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5idWlsZGVyTmFtZXNwYWNlcyAmJiB0aGlzLnN0YXRlLmVkaXRNb2RlKSB7XG4gICAgICAgICAgICBidWlsZGVyID0gUmVhY3QuY3JlYXRlRWxlbWVudChfR3JpZEJ1aWxkZXIyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdhZG1pbi1oZWxwZXItcGFuZWwnLFxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZXM6IHRoaXMucHJvcHMuYnVpbGRlck5hbWVzcGFjZXMsXG4gICAgICAgICAgICAgICAgb25DcmVhdGVDYXJkOiB0aGlzLmFkZENhcmQsXG4gICAgICAgICAgICAgICAgb25SZXNldExheW91dDogdGhpcy5yZXNldENhcmRzQW5kTGF5b3V0LFxuICAgICAgICAgICAgICAgIG9uRWRpdFN0YXR1c0NoYW5nZTogbW9uaXRvcldpZGdldEVkaXRpbmcsXG4gICAgICAgICAgICAgICAgZ2V0TWVzc2FnZTogZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBucyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/ICdhanhwX2FkbWluJyA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzMi5wcm9wcy5nZXRNZXNzYWdlKGlkLCBucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByb3BTdHlsZSA9IHRoaXMucHJvcHMuc3R5bGUgfHwge307XG4gICAgICAgIHZhciByZ2xTdHlsZSA9IHRoaXMucHJvcHMucmdsU3R5bGUgfHwge307XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcy5zdHlsZSwgeyB3aWR0aDogJzEwMCUnLCBmbGV4OiAnMScgfSksIGNsYXNzTmFtZTogdGhpcy5zdGF0ZS5lZGl0TW9kZSA/IFwiYnVpbGRlci1vcGVuXCIgOiBcIlwiIH0sXG4gICAgICAgICAgICAhdGhpcy5wcm9wcy5kaXNhYmxlRWRpdCAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgcG9zaXRpb246ICdhYnNvbHV0ZScsIGJvdHRvbTogMzAsIHJpZ2h0OiAxOCwgekluZGV4OiAxMSB9IH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChNYXRlcmlhbFVJLkZsb2F0aW5nQWN0aW9uQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMucHJvcHMuZ2V0TWVzc2FnZSgnaG9tZS40OScpLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLnRvZ2dsZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiB0aGlzLnN0YXRlLmVkaXRNb2RlID8gXCJpY29uLW9rXCIgOiBcIm1kaSBtZGktcGVuY2lsXCIsXG4gICAgICAgICAgICAgICAgICAgIG1pbmk6IHRoaXMuc3RhdGUuZWRpdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnN0YXRlLmVkaXRNb2RlICYmIHRoaXMuc3RhdGUud2lkZ2V0RWRpdGluZ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgYnVpbGRlcixcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdob21lLWRhc2hib2FyZCcsIHN0eWxlOiB7IGhlaWdodDogJzEwMCUnIH0gfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KENhcmRzR3JpZCwge1xuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlRHJhZzogdGhpcy5wcm9wcy5kaXNhYmxlRHJhZyxcbiAgICAgICAgICAgICAgICAgICAgY29sczogdGhpcy5wcm9wcy5jb2xzLFxuICAgICAgICAgICAgICAgICAgICBzdG9yZTogdGhpcy5zdGF0ZS5zdG9yZSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHJnbFN0eWxlLFxuICAgICAgICAgICAgICAgICAgICBweWRpbzogdGhpcy5wcm9wcy5weWRpbyxcbiAgICAgICAgICAgICAgICAgICAgZWRpdE1vZGU6IHRoaXMuc3RhdGUuZWRpdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUNhcmQ6IHRoaXMucmVtb3ZlQ2FyZFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRHluYW1pY0dyaWQgPSBQeWRpb0NvbnRleHRDb25zdW1lcihEeW5hbWljR3JpZCk7XG5leHBvcnRzWydkZWZhdWx0J10gPSBEeW5hbWljR3JpZDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG52YXIgUHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX1B5ZGlvJHJlcXVpcmVMaWIgPSBQeWRpby5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9QeWRpbyRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xudmFyIEFzeW5jQ29tcG9uZW50ID0gX1B5ZGlvJHJlcXVpcmVMaWIuQXN5bmNDb21wb25lbnQ7XG5cbnZhciBHcmlkQnVpbGRlciA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0dyaWRCdWlsZGVyJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBuYW1lc3BhY2VzOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIG9uQ3JlYXRlQ2FyZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIG9uRWRpdFN0YXR1c0NoYW5nZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWxlY3RlZEluZGV4OiAwLFxuICAgICAgICAgICAgYXZhaWxhYmxlV2lkZ2V0czogdGhpcy5saXN0QXZhaWxhYmxlV2lkZ2V0cygpXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIGxpc3RBdmFpbGFibGVXaWRnZXRzOiBmdW5jdGlvbiBsaXN0QXZhaWxhYmxlV2lkZ2V0cygpIHtcbiAgICAgICAgdmFyIHNlY29uZFBhc3MgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgICB2YXIgd2lkZ2V0cyA9IFtdO1xuICAgICAgICB2YXIgYWRkaXRpb25hbE5hbWVzcGFjZXMgPSBbXTtcbiAgICAgICAgdGhpcy5wcm9wcy5uYW1lc3BhY2VzLm1hcChmdW5jdGlvbiAobnMpIHtcbiAgICAgICAgICAgIGlmICghZ2xvYmFsW25zXSkge1xuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxOYW1lc3BhY2VzLnB1c2gobnMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gZ2xvYmFsW25zXSkge1xuICAgICAgICAgICAgICAgIGlmIChnbG9iYWxbbnNdLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB3aWRnZXRDbGFzcyA9IGdsb2JhbFtuc11ba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aWRnZXRDbGFzcy5oYXNCdWlsZGVyRmllbGRzICYmIHdpZGdldENsYXNzLmhhc0J1aWxkZXJGaWVsZHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkZ2V0cy5wdXNoKHsgcmVhY3RDbGFzczogd2lkZ2V0Q2xhc3MsIGZ1bGxOYW1lOiBucyArICcuJyArIHdpZGdldENsYXNzLmRpc3BsYXlOYW1lIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGFkZGl0aW9uYWxOYW1lc3BhY2VzLmxlbmd0aCAmJiAhc2Vjb25kUGFzcykge1xuICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5sb2FkQ2xhc3Nlc0FuZEFwcGx5KGFkZGl0aW9uYWxOYW1lc3BhY2VzLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGVXaWRnZXRzOiB0aGlzLmxpc3RBdmFpbGFibGVXaWRnZXRzKHRydWUpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd2lkZ2V0cztcbiAgICB9LFxuXG4gICAgb25Ecm9wRG93bkNoYW5nZTogZnVuY3Rpb24gb25Ecm9wRG93bkNoYW5nZShldmVudCwgaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZXMgPSB7fTtcbiAgICAgICAgaWYgKGluZGV4ICE9IDApIHtcbiAgICAgICAgICAgIGl0ZW0ucGF5bG9hZFsncmVhY3RDbGFzcyddLmdldEJ1aWxkZXJGaWVsZHMoKS5tYXAoZnVuY3Rpb24gKGYpIHtcbiAgICAgICAgICAgICAgICBpZiAoZlsnZGVmYXVsdCddKSBkZWZhdWx0VmFsdWVzW2YubmFtZV0gPSBmWydkZWZhdWx0J107XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkVkaXRTdGF0dXNDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25FZGl0U3RhdHVzQ2hhbmdlKGluZGV4ICE9IDApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2VsZWN0ZWRJbmRleDogaW5kZXgsXG4gICAgICAgICAgICBzZWxlY3RlZFdpZGdldDogaXRlbS5wYXlsb2FkLFxuICAgICAgICAgICAgY3VycmVudEZvcm1WYWx1ZXM6IGRlZmF1bHRWYWx1ZXNcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkVkaXRTdGF0dXNDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25FZGl0U3RhdHVzQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2VsZWN0ZWRJbmRleDogMCB9KTtcbiAgICB9LFxuXG4gICAgb25Gb3JtVmFsdWVDaGFuZ2U6IGZ1bmN0aW9uIG9uRm9ybVZhbHVlQ2hhbmdlKG5ld1ZhbHVlcykge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY3VycmVudEZvcm1WYWx1ZXM6IG5ld1ZhbHVlcyB9KTtcbiAgICB9LFxuXG4gICAgb25Gb3JtU3VibWl0OiBmdW5jdGlvbiBvbkZvcm1TdWJtaXQoKSB7XG4gICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLnN0YXRlLmN1cnJlbnRGb3JtVmFsdWVzO1xuICAgICAgICB2YXIgc2VsZWN0ZWRXaWRnZXQgPSB0aGlzLnN0YXRlLnNlbGVjdGVkV2lkZ2V0O1xuICAgICAgICB2YXIgdGl0bGUgPSB2YWx1ZXMudGl0bGUgPyB2YWx1ZXMudGl0bGUgOiB2YWx1ZXMubGVnZW5kO1xuICAgICAgICBpZiAoIXRpdGxlKSB0aXRsZSA9IHRoaXMuc3RhdGUuc2VsZWN0ZWRXaWRnZXRbJ3JlYWN0Q2xhc3MnXS5idWlsZGVyRGlzcGxheU5hbWU7XG4gICAgICAgIHRoaXMucHJvcHMub25DcmVhdGVDYXJkKHtcbiAgICAgICAgICAgIGNvbXBvbmVudENsYXNzOiBzZWxlY3RlZFdpZGdldC5mdWxsTmFtZSxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgIHByb3BzOiB2YWx1ZXNcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgfSxcblxuICAgIHJlc2V0TGF5b3V0OiBmdW5jdGlvbiByZXNldExheW91dCgpIHtcbiAgICAgICAgaWYgKHdpbmRvdy5jb25maXJtKHRoaXMucHJvcHMuZ2V0TWVzc2FnZSgnaG9tZS41MScpKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlc2V0TGF5b3V0KCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gdGhpcy5wcm9wcy5nZXRNZXNzYWdlO1xuXG4gICAgICAgIHZhciBzZWxlY3Rvckl0ZW1zID0gW3sgcGF5bG9hZDogMCwgdGV4dDogZ2V0TWVzc2FnZSgnaG9tZS41MCcpIH1dLmNvbmNhdCh0aGlzLnN0YXRlLmF2YWlsYWJsZVdpZGdldHMubWFwKGZ1bmN0aW9uICh3LCBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgcGF5bG9hZDogdywgdGV4dDogd1sncmVhY3RDbGFzcyddLmJ1aWxkZXJEaXNwbGF5TmFtZSB9O1xuICAgICAgICB9KSk7XG5cbiAgICAgICAgdmFyIHNlbGVjdG9yID0gUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdE1VSS5Ecm9wRG93bk1lbnUsIHtcbiAgICAgICAgICAgIG1lbnVJdGVtczogc2VsZWN0b3JJdGVtcyxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0aGlzLm9uRHJvcERvd25DaGFuZ2UsXG4gICAgICAgICAgICBzZWxlY3RlZEluZGV4OiB0aGlzLnN0YXRlLnNlbGVjdGVkSW5kZXgsXG4gICAgICAgICAgICBhdXRvV2lkdGg6IGZhbHNlLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnd2lkZ2V0LXR5cGUtc2VsZWN0b3InXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBmb3JtLCBhZGQ7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNlbGVjdGVkSW5kZXggIT0gMCkge1xuICAgICAgICAgICAgdmFyIGZpZWxkcyA9IHRoaXMuc3RhdGUuc2VsZWN0ZWRXaWRnZXRbJ3JlYWN0Q2xhc3MnXS5nZXRCdWlsZGVyRmllbGRzKCk7XG4gICAgICAgICAgICB2YXIgZGVmYXVsdFZhbHVlcyA9IHt9O1xuICAgICAgICAgICAgZmllbGRzLm1hcChmdW5jdGlvbiAoZikge1xuICAgICAgICAgICAgICAgIGlmIChmWydkZWZhdWx0J10pIGRlZmF1bHRWYWx1ZXNbZi5uYW1lXSA9IGZbJ2RlZmF1bHQnXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuY3VycmVudEZvcm1WYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWVzID0gTGFuZ1V0aWxzLm1lcmdlT2JqZWN0c1JlY3Vyc2l2ZShkZWZhdWx0VmFsdWVzLCB0aGlzLnN0YXRlLmN1cnJlbnRGb3JtVmFsdWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvcm0gPSBSZWFjdC5jcmVhdGVFbGVtZW50KEFzeW5jQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlOiAnUHlkaW9Gb3JtJyxcbiAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiAnRm9ybVBhbmVsJyxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBmaWVsZHMsXG4gICAgICAgICAgICAgICAgZGVwdGg6IC0xLFxuICAgICAgICAgICAgICAgIHZhbHVlczogZGVmYXVsdFZhbHVlcyxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogdGhpcy5vbkZvcm1WYWx1ZUNoYW5nZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhZGQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgdGV4dEFsaWduOiAnY2VudGVyJywgcGFkZGluZ0JvdHRvbTogMTAwIH0gfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0TVVJLlJhaXNlZEJ1dHRvbiwgeyBsYWJlbDogZ2V0TWVzc2FnZSgnaG9tZS41MicpLCBvbkNsaWNrOiB0aGlzLm9uRm9ybVN1Ym1pdCB9KSxcbiAgICAgICAgICAgICAgICAnwqAnLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3RNVUkuUmFpc2VkQnV0dG9uLCB7IGxhYmVsOiBnZXRNZXNzYWdlKCc1NCcsICcnKSwgb25DbGljazogdGhpcy5jYW5jZWwgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFJlYWN0TVVJLlBhcGVyLFxuICAgICAgICAgICAgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHtcbiAgICAgICAgICAgICAgICB6RGVwdGg6IDMgfSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdoMycsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBnZXRNZXNzYWdlKCdob21lLjUzJylcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnbGVnZW5kJyB9LFxuICAgICAgICAgICAgICAgIGdldE1lc3NhZ2UoJ2hvbWUuNTQnKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KCdicicsIG51bGwpLFxuICAgICAgICAgICAgICAgIGdldE1lc3NhZ2UoJ2hvbWUuNTUnKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHNlbGVjdG9yLFxuICAgICAgICAgICAgZm9ybSxcbiAgICAgICAgICAgIGFkZCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyBwb3NpdGlvbjogJ2Fic29sdXRlJywgYm90dG9tOiAzMCwgbGVmdDogMTAgfSB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3RNVUkuRmxhdEJ1dHRvbiwgeyBkaXNhYmxlZDogdGhpcy5zdGF0ZS5zZWxlY3RlZEluZGV4ICE9IDAsIGxhYmVsOiBnZXRNZXNzYWdlKCdob21lLjU2JyksIHNlY29uZGFyeTogdHJ1ZSwgb25DbGljazogdGhpcy5yZXNldExheW91dCB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxufSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEdyaWRCdWlsZGVyID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoR3JpZEJ1aWxkZXIpO1xuZXhwb3J0c1snZGVmYXVsdCddID0gR3JpZEJ1aWxkZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSB7XG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgc2hvd0Nsb3NlQWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgb25DbG9zZUFjdGlvbjogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbiAgICB9LFxuXG4gICAgZm9jdXNJdGVtOiBmdW5jdGlvbiBmb2N1c0l0ZW0oKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBmb2N1czogdHJ1ZSB9KTtcbiAgICB9LFxuXG4gICAgYmx1ckl0ZW06IGZ1bmN0aW9uIGJsdXJJdGVtKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXM6IGZhbHNlIH0pO1xuICAgIH0sXG5cbiAgICBtZXJnZVN0eWxlV2l0aEZvY3VzOiBmdW5jdGlvbiBtZXJnZVN0eWxlV2l0aEZvY3VzKCkge1xuICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHRoaXMucHJvcHMuc3R5bGUsIHsgekluZGV4OiB0aGlzLnN0YXRlLmZvY3VzID8gMSA6IG51bGwgfSk7XG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTYXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU2F0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHsgZm9jdXM6IGZhbHNlLCBzaG93Q2xvc2VBY3Rpb246IGZhbHNlIH07XG4gICAgfSxcblxuICAgIHRvZ2dsZUVkaXRNb2RlOiBmdW5jdGlvbiB0b2dnbGVFZGl0TW9kZSgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0Nsb3NlQWN0aW9uOiAhKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5zaG93Q2xvc2VBY3Rpb24pIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dDbG9zZUFjdGlvbjogdmFsdWUgfSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0Q2xvc2VCdXR0b246IGZ1bmN0aW9uIGdldENsb3NlQnV0dG9uKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnNob3dDbG9zZUFjdGlvbikge1xuICAgICAgICAgICAgdmFyIGNsb3NlQWN0aW9uID0gdGhpcy5wcm9wcy5vbkNsb3NlQWN0aW9uIHx8IGZ1bmN0aW9uICgpIHt9O1xuICAgICAgICAgICAgdmFyIG92ZXJsYXlTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDAuNTMpJyxcbiAgICAgICAgICAgICAgICB6SW5kZXg6IDEwLFxuICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogb3ZlcmxheVN0eWxlIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChNYXRlcmlhbFVJLkZsYXRCdXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHB5ZGlvLk1lc3NhZ2VIYXNoWydhanhwX2FkbWluLmhvbWUuNDgnXSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnY2FyZC1jbG9zZS1idXR0b24nLFxuICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBjbG9zZUFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgY29sb3I6ICd3aGl0ZScgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgc3RhdGljczoge1xuICAgICAgICBnZXRHcmlkTGF5b3V0OiBmdW5jdGlvbiBnZXRHcmlkTGF5b3V0KHgsIHkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgeDogeCB8fCAwLFxuICAgICAgICAgICAgICAgIHk6IHkgfHwgMCxcbiAgICAgICAgICAgICAgICB3OiB0aGlzLmdyaWRXaWR0aCB8fCA0LFxuICAgICAgICAgICAgICAgIGg6IHRoaXMuZ3JpZEhlaWdodCB8fCAxMixcbiAgICAgICAgICAgICAgICBpc1Jlc2l6YWJsZTogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGhhc0J1aWxkZXJGaWVsZHM6IGZ1bmN0aW9uIGhhc0J1aWxkZXJGaWVsZHMoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5idWlsZGVyRmllbGRzID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBnZXRCdWlsZGVyRmllbGRzOiBmdW5jdGlvbiBnZXRCdWlsZGVyRmllbGRzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRlckZpZWxkcztcbiAgICAgICAgfVxuICAgIH1cblxufTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3RvcmUgPSAoZnVuY3Rpb24gKF9PYnNlcnZhYmxlKSB7XG4gICAgX2luaGVyaXRzKFN0b3JlLCBfT2JzZXJ2YWJsZSk7XG5cbiAgICAvKipcbiAgICAgKiBJbml0IGEgY2FyZCBzdG9yZVxuICAgICAqIEBwYXJhbSBwcmVmTmFtZXNwYWNlIE5hbWVzcGFjZSBmb3IgZ2V0dGluZy9zZXR0aW5nIHVzZXIgcHJlZmVyZW5jZXNcbiAgICAgKiBAcGFyYW0gZGVmYXVsdENhcmRzIEFycmF5IG9mIGNhcmRzIHRvIGJlIGRpc3BsYXllZCBieSBkZWZhdWx0XG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBTdG9yZShwcmVmTmFtZXNwYWNlLCBkZWZhdWx0Q2FyZHMsIHB5ZGlvT2JqZWN0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTdG9yZSk7XG5cbiAgICAgICAgX09ic2VydmFibGUuY2FsbCh0aGlzKTtcbiAgICAgICAgdGhpcy5fbmFtZXNwYWNlID0gcHJlZk5hbWVzcGFjZTtcbiAgICAgICAgdGhpcy5fcHlkaW8gPSBweWRpb09iamVjdDtcbiAgICAgICAgdGhpcy5fY2FyZHMgPSB0aGlzLmdldFVzZXJQcmVmZXJlbmNlKFwiQ2FyZHNcIik7XG4gICAgICAgIGlmICghdGhpcy5fY2FyZHMpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhcmRzID0gZGVmYXVsdENhcmRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgU3RvcmUucHJvdG90eXBlLmdldFVzZXJQcmVmZXJlbmNlID0gZnVuY3Rpb24gZ2V0VXNlclByZWZlcmVuY2UocHJlZk5hbWUpIHtcbiAgICAgICAgdmFyIHByZWZLZXkgPSB0aGlzLl9uYW1lc3BhY2UgKyBwcmVmTmFtZTtcbiAgICAgICAgdmFyIGd1aVByZWZzID0gdGhpcy5fcHlkaW8udXNlci5nZXRQcmVmZXJlbmNlKCdndWlfcHJlZmVyZW5jZXMnLCB0cnVlKTtcbiAgICAgICAgaWYgKGd1aVByZWZzICYmIGd1aVByZWZzW3ByZWZLZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gZ3VpUHJlZnNbcHJlZktleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBTdG9yZS5wcm90b3R5cGUuc2F2ZVVzZXJQcmVmZXJlbmNlID0gZnVuY3Rpb24gc2F2ZVVzZXJQcmVmZXJlbmNlKHByZWZOYW1lLCBwcmVmVmFsdWUpIHtcbiAgICAgICAgdmFyIHByZWZLZXkgPSB0aGlzLl9uYW1lc3BhY2UgKyBwcmVmTmFtZTtcbiAgICAgICAgdmFyIGd1aVByZWZzID0gdGhpcy5fcHlkaW8udXNlci5nZXRQcmVmZXJlbmNlKCdndWlfcHJlZmVyZW5jZXMnLCB0cnVlKTtcbiAgICAgICAgaWYgKCFndWlQcmVmcykgZ3VpUHJlZnMgPSB7fTtcbiAgICAgICAgZ3VpUHJlZnNbcHJlZktleV0gPSBwcmVmVmFsdWU7XG4gICAgICAgIHRoaXMuX3B5ZGlvLnVzZXIuc2V0UHJlZmVyZW5jZSgnZ3VpX3ByZWZlcmVuY2VzJywgZ3VpUHJlZnMsIHRydWUpO1xuICAgICAgICB0aGlzLl9weWRpby51c2VyLnNhdmVQcmVmZXJlbmNlKCdndWlfcHJlZmVyZW5jZXMnKTtcbiAgICB9O1xuXG4gICAgU3RvcmUucHJvdG90eXBlLnNhdmVDYXJkcyA9IGZ1bmN0aW9uIHNhdmVDYXJkcyhjYXJkcykge1xuICAgICAgICB0aGlzLnNhdmVVc2VyUHJlZmVyZW5jZSgnQ2FyZHMnLCBjYXJkcyk7XG4gICAgfTtcblxuICAgIFN0b3JlLnByb3RvdHlwZS5yZXNldENhcmRzID0gZnVuY3Rpb24gcmVzZXRDYXJkcygpIHtcbiAgICAgICAgdGhpcy5zYXZlVXNlclByZWZlcmVuY2UoJ0NhcmRzJywgbnVsbCk7XG4gICAgfTtcblxuICAgIFN0b3JlLnByb3RvdHlwZS5zZXRDYXJkcyA9IGZ1bmN0aW9uIHNldENhcmRzKG5ld0NhcmRzKSB7XG4gICAgICAgIHRoaXMuX2NhcmRzID0gbmV3Q2FyZHM7XG4gICAgICAgIHRoaXMubm90aWZ5KFwiY2FyZHNcIiwgdGhpcy5fY2FyZHMpO1xuICAgICAgICB0aGlzLnNhdmVDYXJkcyhuZXdDYXJkcyk7XG4gICAgfTtcblxuICAgIFN0b3JlLnByb3RvdHlwZS5nZXRDYXJkcyA9IGZ1bmN0aW9uIGdldENhcmRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FyZHM7XG4gICAgfTtcblxuICAgIFN0b3JlLnByb3RvdHlwZS5yZW1vdmVDYXJkID0gZnVuY3Rpb24gcmVtb3ZlQ2FyZChjYXJkSWQpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gLTE7XG4gICAgICAgIHZhciBjdXJyZW50Q2FyZHMgPSB0aGlzLmdldENhcmRzKCk7XG4gICAgICAgIGN1cnJlbnRDYXJkcy5tYXAoZnVuY3Rpb24gKGNhcmQsIGFycmF5SW5kZXgpIHtcbiAgICAgICAgICAgIGlmIChjYXJkLmlkID09IGNhcmRJZCkgaW5kZXggPSBhcnJheUluZGV4O1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NhcmQgSUQgbm90IGZvdW5kLCB0aGlzIGlzIHN0cmFuZ2UuJywgY2FyZElkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmV3Q2FyZHM7XG4gICAgICAgIGlmIChpbmRleCA9PSAwKSBuZXdDYXJkcyA9IGN1cnJlbnRDYXJkcy5zbGljZSgxKTtlbHNlIGlmIChpbmRleCA9PSBjdXJyZW50Q2FyZHMubGVuZ3RoIC0gMSkgbmV3Q2FyZHMgPSBjdXJyZW50Q2FyZHMuc2xpY2UoMCwgLTEpO2Vsc2UgbmV3Q2FyZHMgPSBjdXJyZW50Q2FyZHMuc2xpY2UoMCwgaW5kZXgpLmNvbmNhdChjdXJyZW50Q2FyZHMuc2xpY2UoaW5kZXggKyAxKSk7XG4gICAgICAgIHRoaXMuc2V0Q2FyZHMobmV3Q2FyZHMpO1xuICAgIH07XG5cbiAgICBTdG9yZS5wcm90b3R5cGUuY3JlYXRlQ2FyZElkID0gZnVuY3Rpb24gY3JlYXRlQ2FyZElkKGNhcmREZWZpbml0aW9uKSB7XG4gICAgICAgIHZhciByYW5kb21pemUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB2YXIgaWQgPSBMYW5nVXRpbHMuY29tcHV0ZVN0cmluZ1NsdWcoY2FyZERlZmluaXRpb25bJ3RpdGxlJ10pO1xuICAgICAgICBpZiAocmFuZG9taXplKSB7XG4gICAgICAgICAgICBpZCArPSAnLScgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAgKyAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFscmVhZHlFeGlzdHMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fY2FyZHMubWFwKChmdW5jdGlvbiAoY2FyZCkge1xuICAgICAgICAgICAgaWYgKGNhcmQuaWQgPT0gaWQpIGFscmVhZHlFeGlzdHMgPSB0cnVlO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgaWYgKGFscmVhZHlFeGlzdHMpIHtcbiAgICAgICAgICAgIGlkID0gdGhpcy5jcmVhdGVDYXJkSWQoY2FyZERlZmluaXRpb24sIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpZDtcbiAgICB9O1xuXG4gICAgU3RvcmUucHJvdG90eXBlLmFkZENhcmQgPSBmdW5jdGlvbiBhZGRDYXJkKGNhcmREZWZpbml0aW9uKSB7XG4gICAgICAgIC8vY29uc29sZS5sb2coY2FyZERlZmluaXRpb24pO1xuXG4gICAgICAgIGNhcmREZWZpbml0aW9uWydpZCddID0gdGhpcy5jcmVhdGVDYXJkSWQoY2FyZERlZmluaXRpb24pO1xuICAgICAgICB0aGlzLnNldENhcmRzKHRoaXMuX2NhcmRzLmNvbmNhdChbY2FyZERlZmluaXRpb25dKSk7XG4gICAgfTtcblxuICAgIHJldHVybiBTdG9yZTtcbn0pKE9ic2VydmFibGUpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTdG9yZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgQ29tcG9uZW50ID0gX3JlcXVpcmUuQ29tcG9uZW50O1xudmFyIFByb3BUeXBlcyA9IF9yZXF1aXJlLlByb3BUeXBlcztcblxudmFyIF9yZXF1aXJlMiA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBGbGF0QnV0dG9uID0gX3JlcXVpcmUyLkZsYXRCdXR0b247XG5cbnZhciBfcmVxdWlyZTMgPSByZXF1aXJlKCdtYXRlcmlhbC11aS9zdHlsZXMnKTtcblxudmFyIG11aVRoZW1lYWJsZSA9IF9yZXF1aXJlMy5tdWlUaGVtZWFibGU7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChQeWRpb0NvbXBvbmVudCwgZGlzcGxheU5hbWUpIHtcbiAgICB2YXIgZ3JpZERpbWVuc2lvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IHsgZ3JpZFdpZHRoOiA0LCBncmlkSGVpZ2h0OiAxMiB9IDogYXJndW1lbnRzWzJdO1xuICAgIHZhciBidWlsZGVyRmllbGRzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYXJndW1lbnRzWzNdO1xuXG4gICAgdmFyIG9yaWdpbmFsRGlzcGxheU5hbWUgPSBQeWRpb0NvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBQeWRpb0NvbXBvbmVudC5uYW1lO1xuICAgIFB5ZGlvQ29tcG9uZW50ID0gbXVpVGhlbWVhYmxlKCkoUHlkaW9Db21wb25lbnQpO1xuXG4gICAgdmFyIEdyaWRJdGVtID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gICAgICAgIF9pbmhlcml0cyhHcmlkSXRlbSwgX0NvbXBvbmVudCk7XG5cbiAgICAgICAgZnVuY3Rpb24gR3JpZEl0ZW0ocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBHcmlkSXRlbSk7XG5cbiAgICAgICAgICAgIF9Db21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0geyBmb2N1czogZmFsc2UsIHNob3dDbG9zZUFjdGlvbjogZmFsc2UgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEdyaWRJdGVtLnByb3RvdHlwZS5mb2N1c0l0ZW0gPSBmdW5jdGlvbiBmb2N1c0l0ZW0oKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXM6IHRydWUgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgR3JpZEl0ZW0ucHJvdG90eXBlLmJsdXJJdGVtID0gZnVuY3Rpb24gYmx1ckl0ZW0oKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9jdXM6IGZhbHNlIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIEdyaWRJdGVtLnByb3RvdHlwZS5tZXJnZVN0eWxlV2l0aEZvY3VzID0gZnVuY3Rpb24gbWVyZ2VTdHlsZVdpdGhGb2N1cygpIHtcbiAgICAgICAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcy5zdHlsZSwgeyB6SW5kZXg6IHRoaXMuc3RhdGUuZm9jdXMgPyAxIDogbnVsbCB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBHcmlkSXRlbS5wcm90b3R5cGUudG9nZ2xlRWRpdE1vZGUgPSBmdW5jdGlvbiB0b2dnbGVFZGl0TW9kZSgpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0Nsb3NlQWN0aW9uOiAhKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5zaG93Q2xvc2VBY3Rpb24pIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0Nsb3NlQWN0aW9uOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBHcmlkSXRlbS5wcm90b3R5cGUuZ2V0Q2xvc2VCdXR0b24gPSBmdW5jdGlvbiBnZXRDbG9zZUJ1dHRvbigpIHtcbiAgICAgICAgICAgIHZhciBjbG9zZUFjdGlvbiA9IHRoaXMucHJvcHMub25DbG9zZUFjdGlvbiB8fCBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgICAgIHZhciBvdmVybGF5U3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwLjUzKScsXG4gICAgICAgICAgICAgICAgekluZGV4OiAxMCxcbiAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IG92ZXJsYXlTdHlsZSB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRmxhdEJ1dHRvbiwge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5wcm9wcy5weWRpby5NZXNzYWdlSGFzaFsnYWp4cF9hZG1pbi5ob21lLjQ4J10sXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2NhcmQtY2xvc2UtYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFRhcDogY2xvc2VBY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IGNvbG9yOiAnd2hpdGUnIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfTtcblxuICAgICAgICBHcmlkSXRlbS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICAgICAgdmFyIHByb3BzID0gX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHtcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhpcy5tZXJnZVN0eWxlV2l0aEZvY3VzKCksXG4gICAgICAgICAgICAgICAgY2xvc2VCdXR0b246IHRoaXMuc3RhdGUuc2hvd0Nsb3NlQWN0aW9uID8gdGhpcy5nZXRDbG9zZUJ1dHRvbigpIDogbnVsbCxcbiAgICAgICAgICAgICAgICBvbkZvY3VzSXRlbTogdGhpcy5mb2N1c0l0ZW0uYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBvbkJsdXJJdGVtOiB0aGlzLmJsdXJJdGVtLmJpbmQodGhpcylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUHlkaW9Db21wb25lbnQsIHByb3BzKTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gR3JpZEl0ZW07XG4gICAgfSkoQ29tcG9uZW50KTtcblxuICAgIEdyaWRJdGVtLnByb3BUeXBlcyA9IHtcbiAgICAgICAgb25DbG9zZUFjdGlvbjogUHJvcFR5cGVzLmZ1bmNcbiAgICB9O1xuXG4gICAgR3JpZEl0ZW0uZGlzcGxheU5hbWUgPSBvcmlnaW5hbERpc3BsYXlOYW1lO1xuICAgIEdyaWRJdGVtLmJ1aWxkZXJEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lO1xuXG4gICAgR3JpZEl0ZW0uZ2V0R3JpZExheW91dCA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiB4IHx8IDAsXG4gICAgICAgICAgICB5OiB5IHx8IDAsXG4gICAgICAgICAgICB3OiBncmlkRGltZW5zaW9uLmdyaWRXaWR0aCB8fCA0LFxuICAgICAgICAgICAgaDogZ3JpZERpbWVuc2lvbi5ncmlkSGVpZ2h0IHx8IDEyLFxuICAgICAgICAgICAgaXNSZXNpemFibGU6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIEdyaWRJdGVtLmhhc0J1aWxkZXJGaWVsZHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBidWlsZGVyRmllbGRzICE9PSB1bmRlZmluZWQ7XG4gICAgfTtcbiAgICBHcmlkSXRlbS5nZXRCdWlsZGVyRmllbGRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gYnVpbGRlckZpZWxkcztcbiAgICB9O1xuXG4gICAgcmV0dXJuIEdyaWRJdGVtO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgX21hdGVyaWFsVWlTdHlsZXMgPSByZXF1aXJlKCdtYXRlcmlhbC11aS9zdHlsZXMnKTtcblxuLyoqXG4gKiBUd28gY29sdW1ucyBsYXlvdXQgdXNlZCBmb3IgV29ya3NwYWNlcyBhbmQgUGx1Z2lucyBlZGl0b3JzXG4gKi9cblxudmFyIFBhcGVyRWRpdG9yTGF5b3V0ID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFBhcGVyRWRpdG9yTGF5b3V0LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFBhcGVyRWRpdG9yTGF5b3V0KHByb3BzKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQYXBlckVkaXRvckxheW91dCk7XG5cbiAgICAgICAgX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHsgZm9yY2VMZWZ0T3BlbjogZmFsc2UgfTtcbiAgICB9XG5cbiAgICBQYXBlckVkaXRvckxheW91dC5wcm90b3R5cGUudG9nZ2xlTWVudSA9IGZ1bmN0aW9uIHRvZ2dsZU1lbnUoKSB7XG4gICAgICAgIHZhciBjcnRMZWZ0T3BlbiA9IHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5mb3JjZUxlZnRPcGVuO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZm9yY2VMZWZ0T3BlbjogIWNydExlZnRPcGVuIH0pO1xuICAgIH07XG5cbiAgICBQYXBlckVkaXRvckxheW91dC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIG11aVRoZW1lID0gX3Byb3BzLm11aVRoZW1lO1xuICAgICAgICB2YXIgY2xvc2VBY3Rpb24gPSBfcHJvcHMuY2xvc2VBY3Rpb247XG4gICAgICAgIHZhciBjbGFzc05hbWUgPSBfcHJvcHMuY2xhc3NOYW1lO1xuICAgICAgICB2YXIgdGl0bGUgPSBfcHJvcHMudGl0bGU7XG4gICAgICAgIHZhciB0aXRsZUFjdGlvbkJhciA9IF9wcm9wcy50aXRsZUFjdGlvbkJhcjtcbiAgICAgICAgdmFyIGxlZnROYXYgPSBfcHJvcHMubGVmdE5hdjtcbiAgICAgICAgdmFyIGNvbnRlbnRGaWxsID0gX3Byb3BzLmNvbnRlbnRGaWxsO1xuICAgICAgICB2YXIgY2hpbGRyZW4gPSBfcHJvcHMuY2hpbGRyZW47XG4gICAgICAgIHZhciBmb3JjZUxlZnRPcGVuID0gdGhpcy5zdGF0ZS5mb3JjZUxlZnRPcGVuO1xuXG4gICAgICAgIHZhciBzdHlsZXMgPSB7XG4gICAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbXVpVGhlbWUucGFsZXR0ZS5wcmltYXJ5MUNvbG9yLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzJweCAycHggMCAwJyxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogJzZweCAxMnB4J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRpdGxlSDI6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAyMixcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGl0bGVCYXI6IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGNsb3NlQnV0dG9uID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY2xvc2VBY3Rpb24pIHtcbiAgICAgICAgICAgIGNsb3NlQnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwge1xuICAgICAgICAgICAgICAgIHRvb2x0aXA6IF9weWRpbzJbJ2RlZmF1bHQnXS5nZXRNZXNzYWdlcygpWzg2XSxcbiAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiAnbWRpIG1kaS1jbG9zZScsXG4gICAgICAgICAgICAgICAgb25Ub3VjaFRhcDogY2xvc2VBY3Rpb24sXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlOiB7IGNvbG9yOiAnd2hpdGUnIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwicGFwZXItZWRpdG9yLWNvbnRlbnQgbGF5b3V0LWZpbGwgdmVydGljYWwtbGF5b3V0XCIgKyAoY2xhc3NOYW1lID8gJyAnICsgY2xhc3NOYW1lIDogJycpIH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ3BhcGVyLWVkaXRvci10aXRsZScsIHN0eWxlOiBzdHlsZXMudGl0bGUgfSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2gyJyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLnRpdGxlSDIgfSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICcgJyxcbiAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnbGVmdC1waWNrZXItdG9nZ2xlJyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwgeyBpY29uQ2xhc3NOYW1lOiAnaWNvbi1jYXJldC1kb3duJywgb25DbGljazogdGhpcy50b2dnbGVNZW51LmJpbmQodGhpcykgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiBzdHlsZXMudGl0bGVCYXIgfSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGVBY3Rpb25CYXJcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNsb3NlQnV0dG9uXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdsYXlvdXQtZmlsbCBtYWluLWxheW91dC1uYXYtdG8tc3RhY2snIH0sXG4gICAgICAgICAgICAgICAgbGVmdE5hdiAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcInBhcGVyLWVkaXRvci1sZWZ0XCIgKyAoZm9yY2VMZWZ0T3BlbiA/ICcgcGlja2VyLW9wZW4nIDogJycpLCBvbkNsaWNrOiB0aGlzLnRvZ2dsZU1lbnUuYmluZCh0aGlzKSB9LFxuICAgICAgICAgICAgICAgICAgICBsZWZ0TmF2XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcImxheW91dC1maWxsIHBhcGVyLWVkaXRvci1yaWdodFwiICsgKGNvbnRlbnRGaWxsID8gJyB2ZXJ0aWNhbC1sYXlvdXQnIDogJycpLCBzdHlsZTogY29udGVudEZpbGwgPyB7fSA6IHsgb3ZlcmZsb3dZOiAnYXV0bycgfSB9LFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFBhcGVyRWRpdG9yTGF5b3V0O1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cblBhcGVyRWRpdG9yTGF5b3V0LnByb3BUeXBlcyA9IHtcbiAgICB0aXRsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hbnksXG4gICAgdGl0bGVBY3Rpb25CYXI6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYW55LFxuICAgIGNsb3NlQWN0aW9uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgbGVmdE5hdjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hbnksXG4gICAgY29udGVudEZpbGw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICBjbGFzc05hbWU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nXG59O1xuZXhwb3J0cy5QYXBlckVkaXRvckxheW91dCA9IFBhcGVyRWRpdG9yTGF5b3V0ID0gX21hdGVyaWFsVWlTdHlsZXMubXVpVGhlbWVhYmxlKCkoUGFwZXJFZGl0b3JMYXlvdXQpO1xuUGFwZXJFZGl0b3JMYXlvdXQuYWN0aW9uQnV0dG9uID0gZnVuY3Rpb24gKGxhYmVsLCBpY29uLCBhY3Rpb24pIHtcbiAgICB2YXIgZGlzYWJsZWQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1szXTtcblxuICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7XG4gICAgICAgIHRvb2x0aXA6IGxhYmVsLFxuICAgICAgICBpY29uQ2xhc3NOYW1lOiBpY29uLFxuICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICAgIG9uVG91Y2hUYXA6IGFjdGlvbixcbiAgICAgICAgaWNvblN0eWxlOiB7IGNvbG9yOiBkaXNhYmxlZCA/ICdyZ2JhKDI1NSwyNTUsMjU1LDAuNSknIDogJ3doaXRlJyB9XG4gICAgfSk7XG59O1xuXG4vKipcbiAqIE5hdmlnYXRpb24gc3ViaGVhZGVyIHVzZWQgYnkgUGFwZXJFZGl0b3JMYXlvdXRcbiAqL1xudmFyIFBhcGVyRWRpdG9yTmF2SGVhZGVyID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1BhcGVyRWRpdG9yTmF2SGVhZGVyJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBsYWJlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmdcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJtdWktc3ViaGVhZGVyXCIsIHN0eWxlOiB7IGZvbnRTaXplOiAxMywgZm9udFdlaWdodDogNTAwLCBjb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC4yNSknLCBsaW5lSGVpZ2h0OiAnNDhweCcsIHBhZGRpbmdMZWZ0OiAxNiB9IH0sXG4gICAgICAgICAgICB0aGlzLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgdGhpcy5wcm9wcy5sYWJlbFxuICAgICAgICApO1xuICAgIH1cblxufSk7XG4vKipcbiAqIE5hdmlnYXRpb24gZW50cnkgdXNlZCBieSBQYXBlckVkaXRvckxheW91dC5cbiAqL1xudmFyIFBhcGVyRWRpdG9yTmF2RW50cnkgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnUGFwZXJFZGl0b3JOYXZFbnRyeScsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAga2V5TmFtZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgb25DbGljazogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIGxhYmVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgc2VsZWN0ZWRLZXk6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBpc0xhc3Q6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLy8gRHJvcCBEb3duIERhdGFcbiAgICAgICAgZHJvcERvd246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgZHJvcERvd25EYXRhOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgZHJvcERvd25DaGFuZ2U6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgZHJvcERvd25EZWZhdWx0SXRlbXM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXlcbiAgICB9LFxuXG4gICAgb25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkNsaWNrKHRoaXMucHJvcHMua2V5TmFtZSk7XG4gICAgfSxcblxuICAgIGNhcHR1cmVEcm9wRG93bkNsaWNrOiBmdW5jdGlvbiBjYXB0dXJlRHJvcERvd25DbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMucHJldmVudENsaWNrKSB7XG4gICAgICAgICAgICB0aGlzLnByZXZlbnRDbGljayA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvcHMub25DbGljayh0aGlzLnByb3BzLmtleU5hbWUpO1xuICAgIH0sXG5cbiAgICBkcm9wRG93bkNoYW5nZTogZnVuY3Rpb24gZHJvcERvd25DaGFuZ2UoZXZlbnQsIGluZGV4LCBpdGVtKSB7XG4gICAgICAgIHRoaXMucHJldmVudENsaWNrID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcm9wcy5kcm9wRG93bkNoYW5nZShpdGVtKTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG5cbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmRyb3BEb3duIHx8ICF0aGlzLnByb3BzLmRyb3BEb3duRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWVudS1lbnRyeScgKyAodGhpcy5wcm9wcy5rZXlOYW1lID09PSB0aGlzLnByb3BzLnNlbGVjdGVkS2V5ID8gJyBtZW51LWVudHJ5LXNlbGVjdGVkJyA6ICcnKSArICh0aGlzLnByb3BzLmlzTGFzdCA/ICcgbGFzdCcgOiAnJyksXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMub25DbGljayB9LFxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5sYWJlbFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGRyb3BEb3duICYgZHJvcERvd25EYXRhIGFyZSBsb2FkZWRcbiAgICAgICAgdmFyIG1lbnVJdGVtc1RwbCA9IFt7IHRleHQ6IHRoaXMucHJvcHMubGFiZWwsIHBheWxvYWQ6ICctMScgfV07XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRyb3BEb3duRGVmYXVsdEl0ZW1zKSB7XG4gICAgICAgICAgICBtZW51SXRlbXNUcGwgPSBtZW51SXRlbXNUcGwuY29uY2F0KHRoaXMucHJvcHMuZHJvcERvd25EZWZhdWx0SXRlbXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvcHMuZHJvcERvd25EYXRhLmZvckVhY2goZnVuY3Rpb24gKHYsIGspIHtcbiAgICAgICAgICAgIG1lbnVJdGVtc1RwbC5wdXNoKHsgdGV4dDogdi5sYWJlbCwgcGF5bG9hZDogdiB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBvbkNsaWNrOiB0aGlzLmNhcHR1cmVEcm9wRG93bkNsaWNrLCBjbGFzc05hbWU6ICdtZW51LWVudHJ5LWRyb3Bkb3duJyArICh0aGlzLnByb3BzLmtleU5hbWUgPT09IHRoaXMucHJvcHMuc2VsZWN0ZWRLZXkgPyAnIG1lbnUtZW50cnktc2VsZWN0ZWQnIDogJycpICsgKHRoaXMucHJvcHMuaXNMYXN0ID8gJyBsYXN0JyA6ICcnKSB9LFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRHJvcERvd25NZW51LCB7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW1zOiBtZW51SXRlbXNUcGwsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZHJvcGRvd24tZnVsbC13aWR0aCcsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6IDI1NiB9LFxuICAgICAgICAgICAgICAgIGF1dG9XaWR0aDogZmFsc2UsXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMuZHJvcERvd25DaGFuZ2VcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufSk7XG5cbmV4cG9ydHMuUGFwZXJFZGl0b3JMYXlvdXQgPSBQYXBlckVkaXRvckxheW91dDtcbmV4cG9ydHMuUGFwZXJFZGl0b3JOYXZFbnRyeSA9IFBhcGVyRWRpdG9yTmF2RW50cnk7XG5leHBvcnRzLlBhcGVyRWRpdG9yTmF2SGVhZGVyID0gUGFwZXJFZGl0b3JOYXZIZWFkZXI7XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIHByb3BUeXBlcyA9IHtcbiAgICBub2RlOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihBanhwTm9kZSkuaXNSZXF1aXJlZCxcbiAgICByZWdpc3RyeTogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUmVnaXN0cnkpLmlzUmVxdWlyZWQsXG4gICAgZWRpdG9yRGF0YTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGljb246IFJlYWN0LlByb3BUeXBlcy5ib29sXG59O1xuXG52YXIgZGVmYXVsdFByb3BzID0ge1xuICAgIGljb246IGZhbHNlXG59O1xuXG52YXIgUmVhY3RFZGl0b3JPcGVuZXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoUmVhY3RFZGl0b3JPcGVuZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gUmVhY3RFZGl0b3JPcGVuZXIocHJvcHMpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlYWN0RWRpdG9yT3BlbmVyKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgICAgIHZhciBub2RlID0gcHJvcHMubm9kZTtcbiAgICAgICAgdmFyIGVkaXRvckRhdGEgPSBwcm9wcy5lZGl0b3JEYXRhO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICByZWFkeTogZmFsc2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBSZWFjdEVkaXRvck9wZW5lci5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGVkaXRvckRhdGEgPSBfcHJvcHMuZWRpdG9yRGF0YTtcbiAgICAgICAgdmFyIHJlZ2lzdHJ5ID0gX3Byb3BzLnJlZ2lzdHJ5O1xuXG4gICAgICAgIHJlZ2lzdHJ5LmxvYWRFZGl0b3JSZXNvdXJjZXMoZWRpdG9yRGF0YS5yZXNvdXJjZXNNYW5hZ2VyLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMuc2V0U3RhdGUoeyByZWFkeTogdHJ1ZSB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIFJlYWN0RWRpdG9yT3BlbmVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBlZGl0b3JEYXRhID0gdGhpcy5wcm9wcy5lZGl0b3JEYXRhO1xuICAgICAgICB2YXIgcmVhZHkgPSB0aGlzLnN0YXRlLnJlYWR5O1xuXG4gICAgICAgIGlmICghcmVhZHkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHZhciBFZGl0b3JDbGFzcyA9IG51bGw7XG4gICAgICAgIGlmICghKEVkaXRvckNsYXNzID0gRnVuY1V0aWxzLmdldEZ1bmN0aW9uQnlOYW1lKGVkaXRvckRhdGEuZWRpdG9yQ2xhc3MsIHdpbmRvdykpKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgXCJDYW5ub3QgZmluZCBlZGl0b3IgY29tcG9uZW50IChcIiArIGVkaXRvckRhdGEuZWRpdG9yQ2xhc3MgKyBcIikhXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXR0aW5nIEhPQyBvZiB0aGUgY2xhc3NcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRWRpdG9yQ2xhc3MuRWRpdG9yLCB0aGlzLnByb3BzKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFJlYWN0RWRpdG9yT3BlbmVyO1xufSkoUmVhY3QuQ29tcG9uZW50KTtcblxuUmVhY3RFZGl0b3JPcGVuZXIucHJvcFR5cGVzID0gcHJvcFR5cGVzO1xuUmVhY3RFZGl0b3JPcGVuZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFJlYWN0RWRpdG9yT3BlbmVyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdDbGlwYm9hcmRUZXh0RmllbGQnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGZsb2F0aW5nTGFiZWxUZXh0OiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgICAgIGlucHV0VmFsdWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGlucHV0Q2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBnZXRNZXNzYWdlOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgaW5wdXRDb3B5TWVzc2FnZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZ1xuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHsgY29weU1lc3NhZ2U6IG51bGwgfTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmF0dGFjaENsaXBib2FyZCgpO1xuICAgIH0sXG4gICAgY29tcG9uZW50RGlkVXBkYXRlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMuYXR0YWNoQ2xpcGJvYXJkKCk7XG4gICAgfSxcblxuICAgIGF0dGFjaENsaXBib2FyZDogZnVuY3Rpb24gYXR0YWNoQ2xpcGJvYXJkKCkge1xuICAgICAgICBpZiAodGhpcy5fY2xpcCkge1xuICAgICAgICAgICAgdGhpcy5fY2xpcC5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnJlZnNbJ2NvcHktYnV0dG9uJ10pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jbGlwID0gbmV3IENsaXBib2FyZCh0aGlzLnJlZnNbJ2NvcHktYnV0dG9uJ10sIHtcbiAgICAgICAgICAgIHRleHQ6IChmdW5jdGlvbiAodHJpZ2dlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3BzLmlucHV0VmFsdWU7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9jbGlwLm9uKCdzdWNjZXNzJywgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb3B5TWVzc2FnZTogdGhpcy5wcm9wcy5nZXRNZXNzYWdlKHRoaXMucHJvcHMuaW5wdXRDb3B5TWVzc2FnZSB8fCAnMTkyJykgfSwgdGhpcy5jbGVhckNvcHlNZXNzYWdlKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuX2NsaXAub24oJ2Vycm9yJywgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBjb3B5TWVzc2FnZTtcbiAgICAgICAgICAgIGlmIChnbG9iYWwubmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoXCJNYWNcIikgPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb3B5TWVzc2FnZSA9IHRoaXMucHJvcHMuZ2V0TWVzc2FnZSgnMTQ0Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvcHlNZXNzYWdlID0gdGhpcy5wcm9wcy5nZXRNZXNzYWdlKCcxNDMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVmc1snaW5wdXQnXS5mb2N1cygpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvcHlNZXNzYWdlOiBjb3B5TWVzc2FnZSB9LCB0aGlzLmNsZWFyQ29weU1lc3NhZ2UpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICB9LFxuXG4gICAgY2xlYXJDb3B5TWVzc2FnZTogZnVuY3Rpb24gY2xlYXJDb3B5TWVzc2FnZSgpIHtcbiAgICAgICAgZ2xvYmFsLnNldFRpbWVvdXQoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb3B5TWVzc2FnZTogJycgfSk7XG4gICAgICAgIH0pLmJpbmQodGhpcyksIDMwMDApO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcblxuICAgICAgICB2YXIgc2VsZWN0ID0gZnVuY3Rpb24gc2VsZWN0KGUpIHtcbiAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5zZWxlY3QoKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgY29weU1lc3NhZ2UgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5jb3B5TWVzc2FnZSkge1xuICAgICAgICAgICAgdmFyIHNldEh0bWwgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IF9faHRtbDogdGhpcy5zdGF0ZS5jb3B5TWVzc2FnZSB9O1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgICAgIGNvcHlNZXNzYWdlID0gUmVhY3QuY3JlYXRlRWxlbWVudCgnZGl2JywgeyBzdHlsZTogeyBjb2xvcjogJ3JnYmEoMCwwLDAsMC4yMyknIH0sIGNsYXNzTmFtZTogJ2NvcHktbWVzc2FnZScsIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiBzZXRIdG1sKCkgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYnV0dG9uU3R5bGUgPSBfZXh0ZW5kcyh7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHJpZ2h0OiAtOCxcbiAgICAgICAgICAgIGJvdHRvbTogMTMsXG4gICAgICAgICAgICBmb250U2l6ZTogMTUsXG4gICAgICAgICAgICBjb2xvcjogdGhpcy5wcm9wcy5idXR0b25Db2xvciB8fCAncmdiYSgwLCAxNTAsIDEzNiwgMC41MiknLFxuICAgICAgICAgICAgaGVpZ2h0OiAyNixcbiAgICAgICAgICAgIHdpZHRoOiAyNixcbiAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICcyOHB4JyxcbiAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzUwJSdcbiAgICAgICAgfSwgdGhpcy5wcm9wcy5idXR0b25TdHlsZSk7XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfSB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWF0ZXJpYWxVSS5UZXh0RmllbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZWY6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nTGFiZWxUZXh0OiB0aGlzLnByb3BzLmZsb2F0aW5nTGFiZWxUZXh0LFxuICAgICAgICAgICAgICAgICAgICBmbG9hdGluZ0xhYmVsU3R5bGU6IHsgd2hpdGVTcGFjZTogJ25vd3JhcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lU2hvdzogdGhpcy5wcm9wcy51bmRlcmxpbmVTaG93LFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMucHJvcHMuaW5wdXRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmlucHV0Q2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aUxpbmU6IHRoaXMucHJvcHMubXVsdGlMaW5lLFxuICAgICAgICAgICAgICAgICAgICByb3dzOiB0aGlzLnByb3BzLnJvd3MsXG4gICAgICAgICAgICAgICAgICAgIHJvd3NNYXg6IHRoaXMucHJvcHMucm93c01heCxcbiAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgbWFyZ2luVG9wOiAtMTAsIHdpZHRoOiAnOTIlJywgZm9udFNpemU6IDE0IH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyByZWY6ICdjb3B5LWJ1dHRvbicsIHN0eWxlOiBidXR0b25TdHlsZSwgdGl0bGU6IHRoaXMucHJvcHMuZ2V0TWVzc2FnZSgnMTkxJyksIGNsYXNzTmFtZTogJ2NvcHktYnV0dG9uIG1kaSBtZGktY29udGVudC1jb3B5JyB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNvcHlNZXNzYWdlXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzWydkZWZhdWx0J10gPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdMYWJlbFdpdGhUaXAnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGxhYmVsOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBsYWJlbEVsZW1lbnQ6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIHRvb2x0aXA6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIHRvb2x0aXBDbGFzc05hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGNsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgc3R5bGU6IFJlYWN0LlByb3BUeXBlcy5vYmplY3RcbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7IHNob3c6IGZhbHNlIH07XG4gICAgfSxcblxuICAgIHNob3c6IGZ1bmN0aW9uIHNob3coKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93OiB0cnVlIH0pO1xuICAgIH0sXG4gICAgaGlkZTogZnVuY3Rpb24gaGlkZSgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3c6IGZhbHNlIH0pO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMudG9vbHRpcCkge1xuICAgICAgICAgICAgdmFyIHRvb2x0aXBTdHlsZSA9IHt9O1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMubGFiZWwgfHwgdGhpcy5wcm9wcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG93KSB7XG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXBTdHlsZSA9IHsgYm90dG9tOiAtMTAsIHRvcDogJ2luaGVyaXQnIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0b29sdGlwU3R5bGUgPSB7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgbGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGxhYmVsID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ2VsbGlwc2lzLWxhYmVsJyB9LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmxhYmVsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBsYWJlbCA9IHRoaXMucHJvcHMubGFiZWxFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHN0eWxlID0gdGhpcy5wcm9wcy5zdHlsZSB8fCB7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH07XG5cbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICB7IG9uTW91c2VFbnRlcjogdGhpcy5zaG93LCBvbk1vdXNlTGVhdmU6IHRoaXMuaGlkZSwgc3R5bGU6IHN0eWxlLCBjbGFzc05hbWU6IHRoaXMucHJvcHMuY2xhc3NOYW1lIH0sXG4gICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0TVVJLlRvb2x0aXAsIHsgbGFiZWw6IHRoaXMucHJvcHMudG9vbHRpcCwgc3R5bGU6IHRvb2x0aXBTdHlsZSwgY2xhc3NOYW1lOiB0aGlzLnByb3BzLnRvb2x0aXBDbGFzc05hbWUsIHNob3c6IHRoaXMuc3RhdGUuc2hvdyB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5sYWJlbFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMubGFiZWxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMubGFiZWxFbGVtZW50O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufSk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuLyoqXG4gKiBTaW1wbGUgTXVpUGFwZXIgd2l0aCBhIGZpZ3VyZSBhbmQgYSBsZWdlbmRcbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0c1snZGVmYXVsdCddID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnU2ltcGxlRmlndXJlQmFkZ2UnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIGNvbG9ySW5kaWNhdG9yOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBmaWd1cmU6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICAgICAgbGVnZW5kOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nXG4gICAgfSxcblxuICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gZ2V0RGVmYXVsdFByb3BzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sb3JJbmRpY2F0b3I6ICcnXG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFJlYWN0TVVJLlBhcGVyLFxuICAgICAgICAgICAgeyBzdHlsZTogeyBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJywgbWFyZ2luTGVmdDogMTYgfSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ2ZpZ3VyZS1iYWRnZScsIHN0eWxlOiB0aGlzLnByb3BzLmNvbG9ySW5kaWNhdG9yID8geyBib3JkZXJMZWZ0Q29sb3I6IHRoaXMucHJvcHMuY29sb3JJbmRpY2F0b3IgfSA6IHt9IH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZmlndXJlJyB9LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZpZ3VyZVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnbGVnZW5kJyB9LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmxlZ2VuZFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9saXN0U29ydGFibGVMaXN0ID0gcmVxdWlyZSgnLi9saXN0L1NvcnRhYmxlTGlzdCcpO1xuXG52YXIgX2xpc3RTb3J0YWJsZUxpc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGlzdFNvcnRhYmxlTGlzdCk7XG5cbnZhciBfbGlzdFNpbXBsZUxpc3QgPSByZXF1aXJlKCcuL2xpc3QvU2ltcGxlTGlzdCcpO1xuXG52YXIgX2xpc3RTaW1wbGVMaXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xpc3RTaW1wbGVMaXN0KTtcblxudmFyIF9saXN0Tm9kZUxpc3RDdXN0b21Qcm92aWRlciA9IHJlcXVpcmUoJy4vbGlzdC9Ob2RlTGlzdEN1c3RvbVByb3ZpZGVyJyk7XG5cbnZhciBfbGlzdE5vZGVMaXN0Q3VzdG9tUHJvdmlkZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGlzdE5vZGVMaXN0Q3VzdG9tUHJvdmlkZXIpO1xuXG52YXIgX2xpc3RMaXN0RW50cnkgPSByZXF1aXJlKCcuL2xpc3QvTGlzdEVudHJ5Jyk7XG5cbnZhciBfbGlzdExpc3RQYWdpbmF0b3IgPSByZXF1aXJlKCcuL2xpc3QvTGlzdFBhZ2luYXRvcicpO1xuXG52YXIgX2xpc3RMaXN0UGFnaW5hdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xpc3RMaXN0UGFnaW5hdG9yKTtcblxudmFyIF9saXN0TWF0ZXJpYWxUYWJsZSA9IHJlcXVpcmUoJy4vbGlzdC9NYXRlcmlhbFRhYmxlJyk7XG5cbnZhciBfbGlzdE1hdGVyaWFsVGFibGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbGlzdE1hdGVyaWFsVGFibGUpO1xuXG52YXIgX3ZpZXdzVHJlZVZpZXcgPSByZXF1aXJlKCcuL3ZpZXdzL1RyZWVWaWV3Jyk7XG5cbnZhciBfZWxlbWVudHNMYWJlbFdpdGhUaXAgPSByZXF1aXJlKCcuL2VsZW1lbnRzL0xhYmVsV2l0aFRpcCcpO1xuXG52YXIgX2VsZW1lbnRzTGFiZWxXaXRoVGlwMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2VsZW1lbnRzTGFiZWxXaXRoVGlwKTtcblxudmFyIF9lbGVtZW50c1NpbXBsZUZpZ3VyZUJhZGdlID0gcmVxdWlyZSgnLi9lbGVtZW50cy9TaW1wbGVGaWd1cmVCYWRnZScpO1xuXG52YXIgX2VsZW1lbnRzU2ltcGxlRmlndXJlQmFkZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZWxlbWVudHNTaW1wbGVGaWd1cmVCYWRnZSk7XG5cbnZhciBfZWxlbWVudHNDbGlwYm9hcmRUZXh0RmllbGQgPSByZXF1aXJlKCcuL2VsZW1lbnRzL0NsaXBib2FyZFRleHRGaWVsZCcpO1xuXG52YXIgX2VsZW1lbnRzQ2xpcGJvYXJkVGV4dEZpZWxkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2VsZW1lbnRzQ2xpcGJvYXJkVGV4dEZpZWxkKTtcblxudmFyIF92aWV3c0VtcHR5U3RhdGVWaWV3ID0gcmVxdWlyZSgnLi92aWV3cy9FbXB0eVN0YXRlVmlldycpO1xuXG52YXIgX3ZpZXdzRW1wdHlTdGF0ZVZpZXcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdmlld3NFbXB0eVN0YXRlVmlldyk7XG5cbnZhciBfdmlld3NNb2RhbEFwcEJhciA9IHJlcXVpcmUoJy4vdmlld3MvTW9kYWxBcHBCYXInKTtcblxudmFyIF92aWV3c01vZGFsQXBwQmFyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3ZpZXdzTW9kYWxBcHBCYXIpO1xuXG52YXIgX2VkaXRvclJlYWN0RWRpdG9yT3BlbmVyID0gcmVxdWlyZSgnLi9lZGl0b3IvUmVhY3RFZGl0b3JPcGVuZXInKTtcblxudmFyIF9lZGl0b3JSZWFjdEVkaXRvck9wZW5lcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9lZGl0b3JSZWFjdEVkaXRvck9wZW5lcik7XG5cbnZhciBfZWRpdG9yUGFwZXJFZGl0b3IgPSByZXF1aXJlKCcuL2VkaXRvci9QYXBlckVkaXRvcicpO1xuXG52YXIgX2R5bmFtaWNHcmlkRHluYW1pY0dyaWQgPSByZXF1aXJlKCcuL2R5bmFtaWMtZ3JpZC9EeW5hbWljR3JpZCcpO1xuXG52YXIgX2R5bmFtaWNHcmlkRHluYW1pY0dyaWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZHluYW1pY0dyaWREeW5hbWljR3JpZCk7XG5cbnZhciBfZHluYW1pY0dyaWRTdG9yZSA9IHJlcXVpcmUoJy4vZHluYW1pYy1ncmlkL1N0b3JlJyk7XG5cbnZhciBfZHluYW1pY0dyaWRTdG9yZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9keW5hbWljR3JpZFN0b3JlKTtcblxudmFyIF9keW5hbWljR3JpZEdyaWRJdGVtTWl4aW4gPSByZXF1aXJlKCcuL2R5bmFtaWMtZ3JpZC9HcmlkSXRlbU1peGluJyk7XG5cbnZhciBfZHluYW1pY0dyaWRHcmlkSXRlbU1peGluMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2R5bmFtaWNHcmlkR3JpZEl0ZW1NaXhpbik7XG5cbnZhciBfZHluYW1pY0dyaWRBc0dyaWRJdGVtID0gcmVxdWlyZSgnLi9keW5hbWljLWdyaWQvYXNHcmlkSXRlbScpO1xuXG52YXIgX2R5bmFtaWNHcmlkQXNHcmlkSXRlbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9keW5hbWljR3JpZEFzR3JpZEl0ZW0pO1xuXG52YXIgX3V0aWxETkQgPSByZXF1aXJlKCcuL3V0aWwvRE5EJyk7XG5cbnZhciBfdXNlcnNBdmF0YXJVc2VyQXZhdGFyID0gcmVxdWlyZSgnLi91c2Vycy9hdmF0YXIvVXNlckF2YXRhcicpO1xuXG52YXIgX3VzZXJzQXZhdGFyVXNlckF2YXRhcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91c2Vyc0F2YXRhclVzZXJBdmF0YXIpO1xuXG52YXIgX3VzZXJzVXNlcnNDb21wbGV0ZXIgPSByZXF1aXJlKCcuL3VzZXJzL1VzZXJzQ29tcGxldGVyJyk7XG5cbnZhciBfdXNlcnNVc2Vyc0NvbXBsZXRlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91c2Vyc1VzZXJzQ29tcGxldGVyKTtcblxudmFyIF91c2Vyc1RlYW1DcmVhdGlvbkZvcm0gPSByZXF1aXJlKCcuL3VzZXJzL1RlYW1DcmVhdGlvbkZvcm0nKTtcblxudmFyIF91c2Vyc1RlYW1DcmVhdGlvbkZvcm0yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXNlcnNUZWFtQ3JlYXRpb25Gb3JtKTtcblxudmFyIF9tZW51QnV0dG9uTWVudSA9IHJlcXVpcmUoJy4vbWVudS9CdXR0b25NZW51Jyk7XG5cbnZhciBfbWVudUJ1dHRvbk1lbnUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWVudUJ1dHRvbk1lbnUpO1xuXG52YXIgX21lbnVDb250ZXh0TWVudSA9IHJlcXVpcmUoJy4vbWVudS9Db250ZXh0TWVudScpO1xuXG52YXIgX21lbnVDb250ZXh0TWVudTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZW51Q29udGV4dE1lbnUpO1xuXG52YXIgX21lbnVJY29uQnV0dG9uTWVudSA9IHJlcXVpcmUoJy4vbWVudS9JY29uQnV0dG9uTWVudScpO1xuXG52YXIgX21lbnVJY29uQnV0dG9uTWVudTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZW51SWNvbkJ1dHRvbk1lbnUpO1xuXG52YXIgX21lbnVUb29sYmFyID0gcmVxdWlyZSgnLi9tZW51L1Rvb2xiYXInKTtcblxudmFyIF9tZW51VG9vbGJhcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZW51VG9vbGJhcik7XG5cbnZhciBfdXNlcnNBZGRyZXNzYm9va0FkZHJlc3NCb29rID0gcmVxdWlyZSgnLi91c2Vycy9hZGRyZXNzYm9vay9BZGRyZXNzQm9vaycpO1xuXG52YXIgX3VzZXJzQWRkcmVzc2Jvb2tBZGRyZXNzQm9vazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91c2Vyc0FkZHJlc3Nib29rQWRkcmVzc0Jvb2spO1xuXG52YXIgX2NoYXRDaGF0Q2xpZW50ID0gcmVxdWlyZSgnLi9jaGF0L0NoYXRDbGllbnQnKTtcblxudmFyIF9jaGF0Q2hhdENsaWVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jaGF0Q2hhdENsaWVudCk7XG5cbnZhciBfY2hhdENoYXQgPSByZXF1aXJlKCcuL2NoYXQvQ2hhdCcpO1xuXG52YXIgX2NoYXRDaGF0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NoYXRDaGF0KTtcblxudmFyIF9jaGF0Q2hhdEljb24gPSByZXF1aXJlKCcuL2NoYXQvQ2hhdEljb24nKTtcblxudmFyIF9jaGF0Q2hhdEljb24yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2hhdENoYXRJY29uKTtcblxudmFyIF9wb2xpY2llc1Jlc291cmNlUG9saWNpZXNQYW5lbCA9IHJlcXVpcmUoJy4vcG9saWNpZXMvUmVzb3VyY2VQb2xpY2llc1BhbmVsJyk7XG5cbnZhciBfcG9saWNpZXNSZXNvdXJjZVBvbGljaWVzUGFuZWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcG9saWNpZXNSZXNvdXJjZVBvbGljaWVzUGFuZWwpO1xuXG52YXIgX3VzZXJzQXZhdGFyQ2VsbEFjdGlvbnNSZW5kZXJlciA9IHJlcXVpcmUoJy4vdXNlcnMvYXZhdGFyL0NlbGxBY3Rpb25zUmVuZGVyZXInKTtcblxudmFyIF91c2Vyc0F2YXRhckNlbGxBY3Rpb25zUmVuZGVyZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXNlcnNBdmF0YXJDZWxsQWN0aW9uc1JlbmRlcmVyKTtcblxudmFyIFB5ZGlvQ29tcG9uZW50cyA9IHtcblxuICAgIFNvcnRhYmxlTGlzdDogX2xpc3RTb3J0YWJsZUxpc3QyWydkZWZhdWx0J10sXG4gICAgU2ltcGxlTGlzdDogX2xpc3RTaW1wbGVMaXN0MlsnZGVmYXVsdCddLFxuICAgIE5vZGVMaXN0Q3VzdG9tUHJvdmlkZXI6IF9saXN0Tm9kZUxpc3RDdXN0b21Qcm92aWRlcjJbJ2RlZmF1bHQnXSxcbiAgICBMaXN0RW50cnk6IF9saXN0TGlzdEVudHJ5Lkxpc3RFbnRyeSxcbiAgICBMaXN0UGFnaW5hdG9yOiBfbGlzdExpc3RQYWdpbmF0b3IyWydkZWZhdWx0J10sXG4gICAgTWF0ZXJpYWxUYWJsZTogX2xpc3RNYXRlcmlhbFRhYmxlMlsnZGVmYXVsdCddLFxuXG4gICAgVHJlZVZpZXc6IF92aWV3c1RyZWVWaWV3LlRyZWVWaWV3LFxuICAgIERORFRyZWVWaWV3OiBfdmlld3NUcmVlVmlldy5ETkRUcmVlVmlldyxcbiAgICBGb2xkZXJzVHJlZTogX3ZpZXdzVHJlZVZpZXcuRm9sZGVyc1RyZWUsXG4gICAgQ2xpcGJvYXJkVGV4dEZpZWxkOiBfZWxlbWVudHNDbGlwYm9hcmRUZXh0RmllbGQyWydkZWZhdWx0J10sXG4gICAgTGFiZWxXaXRoVGlwOiBfZWxlbWVudHNMYWJlbFdpdGhUaXAyWydkZWZhdWx0J10sXG4gICAgRW1wdHlTdGF0ZVZpZXc6IF92aWV3c0VtcHR5U3RhdGVWaWV3MlsnZGVmYXVsdCddLFxuICAgIFNpbXBsZUZpZ3VyZUJhZGdlOiBfZWxlbWVudHNTaW1wbGVGaWd1cmVCYWRnZTJbJ2RlZmF1bHQnXSxcbiAgICBNb2RhbEFwcEJhcjogX3ZpZXdzTW9kYWxBcHBCYXIyWydkZWZhdWx0J10sXG5cbiAgICBSZWFjdEVkaXRvck9wZW5lcjogX2VkaXRvclJlYWN0RWRpdG9yT3BlbmVyMlsnZGVmYXVsdCddLFxuICAgIFBhcGVyRWRpdG9yTGF5b3V0OiBfZWRpdG9yUGFwZXJFZGl0b3IuUGFwZXJFZGl0b3JMYXlvdXQsXG4gICAgUGFwZXJFZGl0b3JOYXZFbnRyeTogX2VkaXRvclBhcGVyRWRpdG9yLlBhcGVyRWRpdG9yTmF2RW50cnksXG4gICAgUGFwZXJFZGl0b3JOYXZIZWFkZXI6IF9lZGl0b3JQYXBlckVkaXRvci5QYXBlckVkaXRvck5hdkhlYWRlcixcblxuICAgIER5bmFtaWNHcmlkOiBfZHluYW1pY0dyaWREeW5hbWljR3JpZDJbJ2RlZmF1bHQnXSxcbiAgICBEeW5hbWljR3JpZEl0ZW1NaXhpbjogX2R5bmFtaWNHcmlkR3JpZEl0ZW1NaXhpbjJbJ2RlZmF1bHQnXSxcbiAgICBhc0dyaWRJdGVtOiBfZHluYW1pY0dyaWRBc0dyaWRJdGVtMlsnZGVmYXVsdCddLFxuICAgIER5bmFtaWNHcmlkU3RvcmU6IF9keW5hbWljR3JpZFN0b3JlMlsnZGVmYXVsdCddLFxuXG4gICAgRE5EOiB7XG4gICAgICAgIFR5cGVzOiBfdXRpbERORC5UeXBlcywgY29sbGVjdDogX3V0aWxETkQuY29sbGVjdCwgY29sbGVjdERyb3A6IF91dGlsRE5ELmNvbGxlY3REcm9wLCBub2RlRHJhZ1NvdXJjZTogX3V0aWxETkQubm9kZURyYWdTb3VyY2UsIG5vZGVEcm9wVGFyZ2V0OiBfdXRpbERORC5ub2RlRHJvcFRhcmdldCwgRE5EQWN0aW9uUGFyYW1ldGVyOiBfdXRpbERORC5ETkRBY3Rpb25QYXJhbWV0ZXJcbiAgICB9LFxuICAgIEROREFjdGlvblBhcmFtZXRlcjogX3V0aWxETkQuRE5EQWN0aW9uUGFyYW1ldGVyLFxuXG4gICAgVXNlckF2YXRhcjogX3VzZXJzQXZhdGFyVXNlckF2YXRhcjJbJ2RlZmF1bHQnXSxcbiAgICBVc2Vyc0NvbXBsZXRlcjogX3VzZXJzVXNlcnNDb21wbGV0ZXIyWydkZWZhdWx0J10sXG4gICAgVGVhbUNyZWF0aW9uRm9ybTogX3VzZXJzVGVhbUNyZWF0aW9uRm9ybTJbJ2RlZmF1bHQnXSxcbiAgICBBZGRyZXNzQm9vazogX3VzZXJzQWRkcmVzc2Jvb2tBZGRyZXNzQm9vazJbJ2RlZmF1bHQnXSxcblxuICAgIENvbnRleHRNZW51OiBfbWVudUNvbnRleHRNZW51MlsnZGVmYXVsdCddLFxuICAgIFRvb2xiYXI6IF9tZW51VG9vbGJhcjJbJ2RlZmF1bHQnXSxcbiAgICBCdXR0b25NZW51OiBfbWVudUJ1dHRvbk1lbnUyWydkZWZhdWx0J10sXG4gICAgSWNvbkJ1dHRvbk1lbnU6IF9tZW51SWNvbkJ1dHRvbk1lbnUyWydkZWZhdWx0J10sXG5cbiAgICBDaGF0OiBfY2hhdENoYXQyWydkZWZhdWx0J10sXG4gICAgQ2hhdEljb246IF9jaGF0Q2hhdEljb24yWydkZWZhdWx0J10sXG4gICAgQ2hhdENsaWVudDogX2NoYXRDaGF0Q2xpZW50MlsnZGVmYXVsdCddLFxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbDogX3BvbGljaWVzUmVzb3VyY2VQb2xpY2llc1BhbmVsMlsnZGVmYXVsdCddLFxuICAgIENlbGxBY3Rpb25zUmVuZGVyZXI6IF91c2Vyc0F2YXRhckNlbGxBY3Rpb25zUmVuZGVyZXIyWydkZWZhdWx0J11cbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFB5ZGlvQ29tcG9uZW50cztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX0xpc3RFbnRyeU5vZGVMaXN0ZW5lck1peGluID0gcmVxdWlyZSgnLi9MaXN0RW50cnlOb2RlTGlzdGVuZXJNaXhpbicpO1xuXG52YXIgX0xpc3RFbnRyeU5vZGVMaXN0ZW5lck1peGluMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0xpc3RFbnRyeU5vZGVMaXN0ZW5lck1peGluKTtcblxudmFyIF9JbmxpbmVFZGl0b3IgPSByZXF1aXJlKCcuL0lubGluZUVkaXRvcicpO1xuXG52YXIgX0lubGluZUVkaXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JbmxpbmVFZGl0b3IpO1xuXG52YXIgX0xpc3RFbnRyeSA9IHJlcXVpcmUoJy4vTGlzdEVudHJ5Jyk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbi8qKlxuICogQ2FsbGJhY2sgYmFzZWQgbWF0ZXJpYWwgbGlzdCBlbnRyeSB3aXRoIGN1c3RvbSBpY29uIHJlbmRlciwgZmlyc3RMaW5lLCBzZWNvbmRMaW5lLCBldGMuXG4gKi9cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdDb25maWd1cmFibGVMaXN0RW50cnknLFxuXG4gICAgbWl4aW5zOiBbX0xpc3RFbnRyeU5vZGVMaXN0ZW5lck1peGluMlsnZGVmYXVsdCddXSxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBub2RlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoQWp4cE5vZGUpLFxuICAgICAgICAvLyBTRUUgQUxTTyBMaXN0RW50cnkgUFJPUFNcbiAgICAgICAgcmVuZGVySWNvbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICByZW5kZXJGaXJzdExpbmU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcmVuZGVyU2Vjb25kTGluZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICByZW5kZXJUaGlyZExpbmU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcmVuZGVyQWN0aW9uczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBzdHlsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3RcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGljb24gPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBmaXJzdExpbmUgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBzZWNvbmRMaW5lID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgdGhpcmRMaW5lID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlIHx8IHt9O1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZW5kZXJJY29uKSB7XG4gICAgICAgICAgICBpY29uID0gdGhpcy5wcm9wcy5yZW5kZXJJY29uKHRoaXMucHJvcHMubm9kZSwgdGhpcy5wcm9wcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMucHJvcHMubm9kZTtcbiAgICAgICAgICAgIHZhciBpY29uQ2xhc3MgPSBub2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwiaWNvbl9jbGFzc1wiKSA/IG5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJpY29uX2NsYXNzXCIpIDogbm9kZS5pc0xlYWYoKSA/IFwiaWNvbi1maWxlLWFsdFwiIDogXCJpY29uLWZvbGRlci1jbG9zZVwiO1xuICAgICAgICAgICAgaWNvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZvbnRJY29uLCB7IGNsYXNzTmFtZTogaWNvbkNsYXNzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVuZGVyRmlyc3RMaW5lKSB7XG4gICAgICAgICAgICBmaXJzdExpbmUgPSB0aGlzLnByb3BzLnJlbmRlckZpcnN0TGluZSh0aGlzLnByb3BzLm5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlyc3RMaW5lID0gdGhpcy5wcm9wcy5ub2RlLmdldExhYmVsKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5pbmxpbmVFZGl0aW9uKSB7XG4gICAgICAgICAgICBmaXJzdExpbmUgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfSW5saW5lRWRpdG9yMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGU6IHRoaXMucHJvcHMubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBpbmxpbmVFZGl0aW9uOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMuc3RhdGUuaW5saW5lRWRpdGlvbkNhbGxiYWNrXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlyc3RMaW5lXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlbmRlclNlY29uZExpbmUpIHtcbiAgICAgICAgICAgIHNlY29uZExpbmUgPSB0aGlzLnByb3BzLnJlbmRlclNlY29uZExpbmUodGhpcy5wcm9wcy5ub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5yZW5kZXJUaGlyZExpbmUpIHtcbiAgICAgICAgICAgIHRoaXJkTGluZSA9IHRoaXMucHJvcHMucmVuZGVyVGhpcmRMaW5lKHRoaXMucHJvcHMubm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFjdGlvbnMgPSB0aGlzLnByb3BzLmFjdGlvbnM7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlbmRlckFjdGlvbnMpIHtcbiAgICAgICAgICAgIGFjdGlvbnMgPSB0aGlzLnByb3BzLnJlbmRlckFjdGlvbnModGhpcy5wcm9wcy5ub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfTGlzdEVudHJ5LkRyYWdEcm9wTGlzdEVudHJ5LCBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywge1xuICAgICAgICAgICAgaWNvbkNlbGw6IGljb24sXG4gICAgICAgICAgICBmaXJzdExpbmU6IGZpcnN0TGluZSxcbiAgICAgICAgICAgIHNlY29uZExpbmU6IHNlY29uZExpbmUsXG4gICAgICAgICAgICB0aGlyZExpbmU6IHRoaXJkTGluZSxcbiAgICAgICAgICAgIGFjdGlvbnM6IGFjdGlvbnMsXG4gICAgICAgICAgICBzdHlsZTogc3R5bGVcbiAgICAgICAgfSkpO1xuICAgIH1cblxufSk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBQeWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG52YXIgQWp4cE5vZGUgPSByZXF1aXJlKCdweWRpby9tb2RlbC9ub2RlJyk7XG5cbnZhciBfUHlkaW8kcmVxdWlyZUxpYiA9IFB5ZGlvLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX1B5ZGlvJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBQYXBlciA9IF9yZXF1aXJlLlBhcGVyO1xudmFyIFRleHRGaWVsZCA9IF9yZXF1aXJlLlRleHRGaWVsZDtcbnZhciBGbGF0QnV0dG9uID0gX3JlcXVpcmUuRmxhdEJ1dHRvbjtcblxudmFyIElubGluZUVkaXRvciA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0lubGluZUVkaXRvcicsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgbm9kZTogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoQWp4cE5vZGUpLFxuICAgICAgICBjYWxsYmFjazogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIG9uQ2xvc2U6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBkZXRhY2hlZDogUmVhY3QuUHJvcFR5cGVzLmJvb2xcbiAgICB9LFxuXG4gICAgc3VibWl0OiBmdW5jdGlvbiBzdWJtaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZSB8fCAhdGhpcy5zdGF0ZS52YWx1ZSB8fCB0aGlzLnN0YXRlLnZhbHVlID09PSB0aGlzLnByb3BzLm5vZGUuZ2V0TGFiZWwoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yU3RyaW5nOiAnUGxlYXNlIHVzZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgcmVuYW1pbmchJyB9KTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZ2V0UHlkaW8oKS5kaXNwbGF5TWVzc2FnZSgnRVJST1InLCAnUGxlYXNlIHVzZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgcmVuYW1pbmchJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmNhbGxiYWNrKHRoaXMuc3RhdGUudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnJlZnMudGV4dC5mb2N1cygpO1xuICAgIH0sXG5cbiAgICBjYXRjaENsaWNrczogZnVuY3Rpb24gY2F0Y2hDbGlja3MoZSkge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0sXG5cbiAgICBvbktleURvd246IGZ1bmN0aW9uIG9uS2V5RG93bihlKSB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3JTdHJpbmc6ICcnIH0pO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFBhcGVyLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwiaW5saW5lLWVkaXRvclwiICsgKHRoaXMucHJvcHMuZGV0YWNoZWQgPyBcIiBkZXRhY2hlZFwiIDogXCJcIiksIHN0eWxlOiB7IHBhZGRpbmc6IDggfSwgekRlcHRoOiAyIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRleHRGaWVsZCwge1xuICAgICAgICAgICAgICAgIHJlZjogJ3RleHQnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5wcm9wcy5ub2RlLmdldExhYmVsKCksXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uIChlLCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXNbJ2NhdGNoJ10sIG9uRG91YmxlQ2xpY2s6IHRoaXMuY2F0Y2hDbGlja3MsXG4gICAgICAgICAgICAgICAgdGFiSW5kZXg6ICcwJywgb25LZXlEb3duOiB0aGlzLm9uS2V5RG93bixcbiAgICAgICAgICAgICAgICBlcnJvclRleHQ6IHRoaXMuc3RhdGUgPyB0aGlzLnN0YXRlLmVycm9yU3RyaW5nIDogbnVsbFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgdGV4dEFsaWduOiAncmlnaHQnLCBwYWRkaW5nVG9wOiA4IH0gfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZsYXRCdXR0b24sIHsgbGFiZWw6ICdDYW5jZWwnLCBvbkNsaWNrOiB0aGlzLnByb3BzLm9uQ2xvc2UgfSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChGbGF0QnV0dG9uLCB7IGxhYmVsOiAnU3VibWl0Jywgb25DbGljazogdGhpcy5zdWJtaXQgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbmxpbmVFZGl0b3IgPSBQeWRpb0NvbnRleHRDb25zdW1lcihJbmxpbmVFZGl0b3IpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbmxpbmVFZGl0b3I7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0RG9tID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5cbnZhciBfcmVhY3REb20yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3REb20pO1xuXG52YXIgX3V0aWxETkQgPSByZXF1aXJlKCcuLi91dGlsL0RORCcpO1xuXG52YXIgX3JlYWN0RG5kID0gcmVxdWlyZSgncmVhY3QtZG5kJyk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfbWF0ZXJpYWxVaVN0eWxlcyA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpL3N0eWxlcycpO1xuXG52YXIgX2NvbG9yID0gcmVxdWlyZSgnY29sb3InKTtcblxudmFyIF9jb2xvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jb2xvcik7XG5cbi8qKlxuICogTWF0ZXJpYWwgTGlzdCBFbnRyeVxuICovXG5cbnZhciBMaXN0RW50cnkgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoTGlzdEVudHJ5LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIExpc3RFbnRyeSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExpc3RFbnRyeSk7XG5cbiAgICAgICAgX1JlYWN0JENvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIExpc3RFbnRyeS5wcm90b3R5cGUub25DbGljayA9IGZ1bmN0aW9uIG9uQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc2hvd1NlbGVjdG9yKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5zZWxlY3RvckRpc2FibGVkKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0KHRoaXMucHJvcHMubm9kZSwgZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMub25DbGljaykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNsaWNrKHRoaXMucHJvcHMubm9kZSwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIExpc3RFbnRyeS5wcm90b3R5cGUub25Eb3VibGVDbGljayA9IGZ1bmN0aW9uIG9uRG91YmxlQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3VibGVDbGljaykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvdWJsZUNsaWNrKHRoaXMucHJvcHMubm9kZSwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIExpc3RFbnRyeS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBzZWxlY3RvciA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGljb24gPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBhZGRpdGlvbmFsQ2xhc3NOYW1lID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgbm9kZSA9IF9wcm9wcy5ub2RlO1xuICAgICAgICB2YXIgc2hvd1NlbGVjdG9yID0gX3Byb3BzLnNob3dTZWxlY3RvcjtcbiAgICAgICAgdmFyIHNlbGVjdGVkID0gX3Byb3BzLnNlbGVjdGVkO1xuICAgICAgICB2YXIgc2VsZWN0b3JEaXNhYmxlZCA9IF9wcm9wcy5zZWxlY3RvckRpc2FibGVkO1xuICAgICAgICB2YXIgZmlyc3RMaW5lID0gX3Byb3BzLmZpcnN0TGluZTtcbiAgICAgICAgdmFyIHNlY29uZExpbmUgPSBfcHJvcHMuc2Vjb25kTGluZTtcbiAgICAgICAgdmFyIHRoaXJkTGluZSA9IF9wcm9wcy50aGlyZExpbmU7XG4gICAgICAgIHZhciBzdHlsZSA9IF9wcm9wcy5zdHlsZTtcbiAgICAgICAgdmFyIGFjdGlvbnMgPSBfcHJvcHMuYWN0aW9ucztcbiAgICAgICAgdmFyIGljb25DZWxsID0gX3Byb3BzLmljb25DZWxsO1xuICAgICAgICB2YXIgbWFpbkljb24gPSBfcHJvcHMubWFpbkljb247XG4gICAgICAgIHZhciBjbGFzc05hbWUgPSBfcHJvcHMuY2xhc3NOYW1lO1xuICAgICAgICB2YXIgY2FuRHJvcCA9IF9wcm9wcy5jYW5Ecm9wO1xuICAgICAgICB2YXIgaXNPdmVyID0gX3Byb3BzLmlzT3ZlcjtcbiAgICAgICAgdmFyIGNvbm5lY3REcmFnU291cmNlID0gX3Byb3BzLmNvbm5lY3REcmFnU291cmNlO1xuICAgICAgICB2YXIgY29ubmVjdERyb3BUYXJnZXQgPSBfcHJvcHMuY29ubmVjdERyb3BUYXJnZXQ7XG5cbiAgICAgICAgdmFyIG1haW5DbGFzc2VzID0gWydtYXRlcmlhbC1saXN0LWVudHJ5JywgJ21hdGVyaWFsLWxpc3QtZW50cnktJyArICh0aGlyZExpbmUgPyAzIDogc2Vjb25kTGluZSA/IDIgOiAxKSArICctbGluZXMnXTtcbiAgICAgICAgaWYgKGNsYXNzTmFtZSkgbWFpbkNsYXNzZXMucHVzaChjbGFzc05hbWUpO1xuXG4gICAgICAgIGlmIChzaG93U2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ21hdGVyaWFsLWxpc3Qtc2VsZWN0b3InIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5DaGVja2JveCwgeyBjaGVja2VkOiBzZWxlY3RlZCwgcmVmOiAnc2VsZWN0b3InLCBkaXNhYmxlZDogc2VsZWN0b3JEaXNhYmxlZCB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpY29uQ2VsbCkge1xuICAgICAgICAgICAgaWNvbiA9IHRoaXMucHJvcHMuaWNvbkNlbGw7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5tYWluSWNvbikge1xuICAgICAgICAgICAgdmFyIF9zdHlsZSA9IHtcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMTgsIGNvbG9yOiAnI0ZGRicsIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLCBtYXJnaW46IDE2LCBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2IoMTg5LCAxODksIDE4OSknLCBwYWRkaW5nOiAnN3B4IDNweCcsIHdpZHRoOiAzMywgaGVpZ2h0OiAzMywgdGV4dEFsaWduOiAnY2VudGVyJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGljb24gPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZvbnRJY29uLCB7IGNsYXNzTmFtZTogXCJtdWktZm9udC1pY29uIFwiICsgdGhpcy5wcm9wcy5tYWluSWNvbiwgc3R5bGU6IF9zdHlsZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYW5Ecm9wICYmIGlzT3Zlcikge1xuICAgICAgICAgICAgbWFpbkNsYXNzZXMucHVzaCgnZHJvcHBhYmxlLWFjdGl2ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgIG1haW5DbGFzc2VzLnB1c2goJ2xpc3RlbnRyeScgKyBub2RlLmdldFBhdGgoKS5yZXBsYWNlKC9cXC8vZywgJ18nKSk7XG4gICAgICAgICAgICBtYWluQ2xhc3Nlcy5wdXNoKCdhanhwX25vZGVfJyArIChub2RlLmlzTGVhZigpID8gJ2xlYWYnIDogJ2NvbGxlY3Rpb24nKSk7XG4gICAgICAgICAgICBpZiAobm9kZS5nZXRBanhwTWltZSgpKSB7XG4gICAgICAgICAgICAgICAgbWFpbkNsYXNzZXMucHVzaCgnYWp4cF9taW1lXycgKyBub2RlLmdldEFqeHBNaW1lKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGFkZGl0aW9uYWxTdHlsZSA9IHtcbiAgICAgICAgICAgIC8qdHJhbnNpdGlvbjonYmFja2dyb3VuZC1jb2xvciAyNTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zLCBjb2xvciAyNTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zJyovXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUuaG92ZXIgJiYgIXRoaXMucHJvcHMubm9Ib3Zlcikge1xuICAgICAgICAgICAgYWRkaXRpb25hbFN0eWxlID0gX2V4dGVuZHMoe30sIGFkZGl0aW9uYWxTdHlsZSwge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsMC4wNSknLFxuICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCB0cmFuc3BhcmVudCdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgdmFyIHNlbGVjdGlvbkNvbG9yID0gdGhpcy5wcm9wcy5tdWlUaGVtZS5wYWxldHRlLmFjY2VudDJDb2xvcjtcbiAgICAgICAgICAgIHZhciBzZWxlY3Rpb25Db2xvckRhcmsgPSBfY29sb3IyWydkZWZhdWx0J10oc2VsZWN0aW9uQ29sb3IpLmRhcmsoKTtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxTdHlsZSA9IF9leHRlbmRzKHt9LCBhZGRpdGlvbmFsU3R5bGUsIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHNlbGVjdGlvbkNvbG9yLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBzZWxlY3Rpb25Db2xvckRhcmsgPyAnd2hpdGUnIDogJ3JnYmEoMCwwLDAsLjg3KSdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbWFpbkNsYXNzZXMucHVzaCgnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIG1haW5DbGFzc2VzLnB1c2goJ3NlbGVjdGVkLScgKyAoc2VsZWN0aW9uQ29sb3JEYXJrID8gJ2RhcmsnIDogJ2xpZ2h0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBDb250ZXh0TWVudVdyYXBwZXIsXG4gICAgICAgICAgICBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywge1xuICAgICAgICAgICAgICAgIHJlZjogZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBub2RlID0gX3JlYWN0RG9tMlsnZGVmYXVsdCddLmZpbmRET01Ob2RlKGluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25uZWN0RHJvcFRhcmdldCA9PT0gJ2Z1bmN0aW9uJykgY29ubmVjdERyb3BUYXJnZXQobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29ubmVjdERyYWdTb3VyY2UgPT09ICdmdW5jdGlvbicpIGNvbm5lY3REcmFnU291cmNlKG5vZGUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5vbkNsaWNrLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgb25Eb3VibGVDbGljazogc2hvd1NlbGVjdG9yID8gbnVsbCA6IHRoaXMub25Eb3VibGVDbGljay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbWFpbkNsYXNzZXMuam9pbignICcpLFxuICAgICAgICAgICAgICAgIG9uTW91c2VPdmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgaG92ZXI6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbk1vdXNlT3V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgaG92ZXI6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3R5bGU6IF9leHRlbmRzKHt9LCBzdHlsZSwgYWRkaXRpb25hbFN0eWxlKSB9KSxcbiAgICAgICAgICAgIHNlbGVjdG9yLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJtYXRlcmlhbC1saXN0LWljb25cIiArIChtYWluSWNvbiB8fCBpY29uQ2VsbCA/IFwiXCIgOiBcIiBtYXRlcmlhbC1saXN0LWljb24tbm9uZVwiKSB9LFxuICAgICAgICAgICAgICAgIGljb25cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnbWF0ZXJpYWwtbGlzdC10ZXh0JyB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ2xpbmUtMScsIGNsYXNzTmFtZTogJ21hdGVyaWFsLWxpc3QtbGluZS0xJyB9LFxuICAgICAgICAgICAgICAgICAgICBmaXJzdExpbmVcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IGtleTogJ2xpbmUtMicsIGNsYXNzTmFtZTogJ21hdGVyaWFsLWxpc3QtbGluZS0yJyB9LFxuICAgICAgICAgICAgICAgICAgICBzZWNvbmRMaW5lXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6ICdsaW5lLTMnLCBjbGFzc05hbWU6ICdtYXRlcmlhbC1saXN0LWxpbmUtMycgfSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcmRMaW5lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdtYXRlcmlhbC1saXN0LWFjdGlvbnMnIH0sXG4gICAgICAgICAgICAgICAgYWN0aW9uc1xuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gTGlzdEVudHJ5O1xufSkoUmVhY3QuQ29tcG9uZW50KTtcblxudmFyIENvbnRleHRNZW51V3JhcHBlciA9IGZ1bmN0aW9uIENvbnRleHRNZW51V3JhcHBlcihwcm9wcykge1xuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KCdkaXYnLCBwcm9wcyk7XG59O1xuQ29udGV4dE1lbnVXcmFwcGVyID0gUHlkaW9IT0NzLndpdGhDb250ZXh0TWVudShDb250ZXh0TWVudVdyYXBwZXIpO1xuXG5MaXN0RW50cnkucHJvcFR5cGVzID0ge1xuICAgIHNob3dTZWxlY3RvcjogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgc2VsZWN0ZWQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIHNlbGVjdG9yRGlzYWJsZWQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIG9uU2VsZWN0OiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNsaWNrOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICBpY29uQ2VsbDogUmVhY3QuUHJvcFR5cGVzLmVsZW1lbnQsXG4gICAgbWFpbkljb246IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgZmlyc3RMaW5lOiBSZWFjdC5Qcm9wVHlwZXMubm9kZSxcbiAgICBzZWNvbmRMaW5lOiBSZWFjdC5Qcm9wVHlwZXMubm9kZSxcbiAgICB0aGlyZExpbmU6IFJlYWN0LlByb3BUeXBlcy5ub2RlLFxuICAgIGFjdGlvbnM6IFJlYWN0LlByb3BUeXBlcy5lbGVtZW50LFxuICAgIGFjdGl2ZURyb3BwYWJsZTogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIG5vSG92ZXI6IFJlYWN0LlByb3BUeXBlcy5ib29sXG59O1xuXG5leHBvcnRzLkxpc3RFbnRyeSA9IExpc3RFbnRyeSA9IF9tYXRlcmlhbFVpU3R5bGVzLm11aVRoZW1lYWJsZSgpKExpc3RFbnRyeSk7XG5cbnZhciBEcmFnRHJvcExpc3RFbnRyeSA9IF9yZWFjdERuZC5mbG93KF9yZWFjdERuZC5EcmFnU291cmNlKF91dGlsRE5ELlR5cGVzLk5PREVfUFJPVklERVIsIF91dGlsRE5ELm5vZGVEcmFnU291cmNlLCBfdXRpbERORC5jb2xsZWN0KSwgX3JlYWN0RG5kLkRyb3BUYXJnZXQoX3V0aWxETkQuVHlwZXMuTk9ERV9QUk9WSURFUiwgX3V0aWxETkQubm9kZURyb3BUYXJnZXQsIF91dGlsRE5ELmNvbGxlY3REcm9wKSkoTGlzdEVudHJ5KTtcblxuZXhwb3J0cy5EcmFnRHJvcExpc3RFbnRyeSA9IERyYWdEcm9wTGlzdEVudHJ5O1xuZXhwb3J0cy5MaXN0RW50cnkgPSBMaXN0RW50cnk7XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB7XG5cbiAgICBhdHRhY2g6IGZ1bmN0aW9uIGF0dGFjaChub2RlKSB7XG4gICAgICAgIHRoaXMuX25vZGVMaXN0ZW5lciA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb3VudGVkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRldGFjaChub2RlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuX2FjdGlvbkxpc3RlbmVyID0gKGZ1bmN0aW9uIChldmVudE1lbW8pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGV0YWNoKG5vZGUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudE1lbW8gJiYgZXZlbnRNZW1vLnR5cGUgPT09ICdwcm9tcHQtcmVuYW1lJyAmJiBldmVudE1lbW8uY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaW5saW5lRWRpdGlvbjogdHJ1ZSwgaW5saW5lRWRpdGlvbkNhbGxiYWNrOiBldmVudE1lbW8uY2FsbGJhY2sgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgbm9kZS5vYnNlcnZlKFwibm9kZV9yZXBsYWNlZFwiLCB0aGlzLl9ub2RlTGlzdGVuZXIpO1xuICAgICAgICBub2RlLm9ic2VydmUoXCJub2RlX2FjdGlvblwiLCB0aGlzLl9hY3Rpb25MaXN0ZW5lcik7XG4gICAgfSxcblxuICAgIGRldGFjaDogZnVuY3Rpb24gZGV0YWNoKG5vZGUpIHtcbiAgICAgICAgaWYgKHRoaXMuX25vZGVMaXN0ZW5lcikge1xuICAgICAgICAgICAgbm9kZS5zdG9wT2JzZXJ2aW5nKFwibm9kZV9yZXBsYWNlZFwiLCB0aGlzLl9ub2RlTGlzdGVuZXIpO1xuICAgICAgICAgICAgbm9kZS5zdG9wT2JzZXJ2aW5nKFwibm9kZV9hY3Rpb25cIiwgdGhpcy5fYWN0aW9uTGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5hdHRhY2godGhpcy5wcm9wcy5ub2RlKTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLmRldGFjaCh0aGlzLnByb3BzLm5vZGUpO1xuICAgIH1cblxufTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgX3V0aWxNZXNzYWdlc0NvbnN1bWVyTWl4aW4gPSByZXF1aXJlKCcuLi91dGlsL01lc3NhZ2VzQ29uc3VtZXJNaXhpbicpO1xuXG52YXIgX3V0aWxNZXNzYWdlc0NvbnN1bWVyTWl4aW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbik7XG5cbi8qKlxuICogUGFnaW5hdGlvbiBjb21wb25lbnQgcmVhZGluZyBtZXRhZGF0YSBcInBhZ2luYXRpb25EYXRhXCIgZnJvbSBjdXJyZW50IG5vZGUuXG4gKi9cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdMaXN0UGFnaW5hdG9yJyxcblxuICAgIG1peGluczogW191dGlsTWVzc2FnZXNDb25zdW1lck1peGluMlsnZGVmYXVsdCddXSxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBkYXRhTW9kZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpb0RhdGFNb2RlbCkuaXNSZXF1aXJlZCxcbiAgICAgICAgbm9kZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKEFqeHBOb2RlKVxuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLm5vZGUpIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRtID0gX3RoaXMucHJvcHMuZGF0YU1vZGVsO1xuICAgICAgICAgICAgICAgIF90aGlzLl9kbU9ic2VydmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG5vZGU6IGRtLmdldENvbnRleHROb2RlKCkgfSk7XG4gICAgICAgICAgICAgICAgfSkuYmluZChfdGhpcyk7XG4gICAgICAgICAgICAgICAgZG0ub2JzZXJ2ZShcImNvbnRleHRfY2hhbmdlZFwiLCBfdGhpcy5fZG1PYnNlcnZlcik7XG4gICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBub2RlOiBkbS5nZXRDb250ZXh0Tm9kZSgpIH0pO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9kbU9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5zdG9wT2JzZXJ2aW5nKFwiY29udGV4dF9jaGFuZ2VkXCIsIHRoaXMuX2RtT2JzZXJ2ZXIpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICByZXR1cm4geyBub2RlOiB0aGlzLnByb3BzLm5vZGUgfTtcbiAgICB9LFxuXG4gICAgY2hhbmdlUGFnZTogZnVuY3Rpb24gY2hhbmdlUGFnZShldmVudCkge1xuICAgICAgICB0aGlzLnN0YXRlLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKS5zZXQoXCJuZXdfcGFnZVwiLCBldmVudC5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1wYWdlJykpO1xuICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5yZXF1aXJlQ29udGV4dENoYW5nZSh0aGlzLnN0YXRlLm5vZGUpO1xuICAgIH0sXG5cbiAgICBvbk1lbnVDaGFuZ2U6IGZ1bmN0aW9uIG9uTWVudUNoYW5nZShldmVudCwgaW5kZXgsIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc3RhdGUubm9kZS5nZXRNZXRhZGF0YSgpLmdldChcInBhZ2luYXRpb25EYXRhXCIpLnNldChcIm5ld19wYWdlXCIsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9wcy5kYXRhTW9kZWwucmVxdWlyZUNvbnRleHRDaGFuZ2UodGhpcy5zdGF0ZS5ub2RlKTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5ub2RlIHx8ICF0aGlzLnN0YXRlLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBEYXRhID0gdGhpcy5zdGF0ZS5ub2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwicGFnaW5hdGlvbkRhdGFcIik7XG4gICAgICAgIHZhciBjdXJyZW50ID0gcGFyc2VJbnQocERhdGEuZ2V0KFwiY3VycmVudFwiKSk7XG4gICAgICAgIHZhciB0b3RhbCA9IHBhcnNlSW50KHBEYXRhLmdldChcInRvdGFsXCIpKTtcbiAgICAgICAgdmFyIHBhZ2VzID0gW10sXG4gICAgICAgICAgICBuZXh0ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGFzdCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHByZXZpb3VzID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmlyc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBwYWdlV29yZCA9IHRoaXMuY29udGV4dC5nZXRNZXNzYWdlID8gdGhpcy5jb250ZXh0LmdldE1lc3NhZ2UoJzMzMScsICcnKSA6IHRoaXMucHJvcHMuZ2V0TWVzc2FnZSgnMzMxJywgJycpO1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSB0b3RhbDsgaSsrKSB7XG4gICAgICAgICAgICBwYWdlcy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLk1lbnVJdGVtLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGksXG4gICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6IHBhZ2VXb3JkICsgJyAnICsgaSArIChpID09PSBjdXJyZW50ID8gJyAvICcgKyB0b3RhbCA6ICcnKVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWdlcy5sZW5ndGggPD0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcHJldmlvdXMgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczIub25NZW51Q2hhbmdlKG51bGwsIDAsIGN1cnJlbnQgLSAxKTtcbiAgICAgICAgICAgIH0sIGljb25DbGFzc05hbWU6IFwibWRpIG1kaS1jaGV2cm9uLWxlZnRcIiwgZGlzYWJsZWQ6IGN1cnJlbnQgPT09IDEgfSk7XG4gICAgICAgIG5leHQgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczIub25NZW51Q2hhbmdlKG51bGwsIDAsIGN1cnJlbnQgKyAxKTtcbiAgICAgICAgICAgIH0sIGljb25DbGFzc05hbWU6IFwibWRpIG1kaS1jaGV2cm9uLXJpZ2h0XCIsIGRpc2FibGVkOiBjdXJyZW50ID09PSB0b3RhbCwgc3R5bGU6IHsgbWFyZ2luTGVmdDogLTIwIH0gfSk7XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IGlkOiB0aGlzLnByb3BzLmlkLCBzdHlsZTogX2V4dGVuZHMoeyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH0sIHRoaXMucHJvcHMuc3R5bGUpIH0sXG4gICAgICAgICAgICBwcmV2aW91cyxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLkRyb3BEb3duTWVudSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiAxNTAsIG1hcmdpblRvcDogLTYgfSxcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMub25NZW51Q2hhbmdlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY3VycmVudCxcbiAgICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lU3R5bGU6IHsgZGlzcGxheTogJ25vbmUnIH0sXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsU3R5bGU6IHsgY29sb3I6ICd3aGl0ZScgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcGFnZXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXh0XG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9QeWRpbyRyZXF1aXJlTGliID0gX3B5ZGlvMlsnZGVmYXVsdCddLnJlcXVpcmVMaWIoXCJib290XCIpO1xuXG52YXIgbW9tZW50ID0gX1B5ZGlvJHJlcXVpcmVMaWIubW9tZW50O1xuXG4vKipcbiAqIFNpbXBsZSBtYXRlcmlhbCB0YWJsZVxuICogY29sdW1ucyBhcmUgb2JqZWN0cyBvZiBzaGFwZSB7bmFtZSwgbGFiZWwsIHN0eWxlLCBoZWFkZXJTdHlsZX1cbiAqL1xuXG52YXIgTWF0ZXJpYWxUYWJsZSA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhNYXRlcmlhbFRhYmxlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIE1hdGVyaWFsVGFibGUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNYXRlcmlhbFRhYmxlKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgTWF0ZXJpYWxUYWJsZS5wcm90b3R5cGUub25Sb3dTZWxlY3Rpb24gPSBmdW5jdGlvbiBvblJvd1NlbGVjdGlvbihpbmRleGVzKSB7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgZGF0YSA9IF9wcm9wcy5kYXRhO1xuICAgICAgICB2YXIgb25TZWxlY3RSb3dzID0gX3Byb3BzLm9uU2VsZWN0Um93cztcblxuICAgICAgICBpZiAoIW9uU2VsZWN0Um93cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleGVzID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgIG9uU2VsZWN0Um93cyhbXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXhlcyA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICAgIG9uU2VsZWN0Um93cyhkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgIGluZGV4ZXMubWFwKGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5wdXNoKGRhdGFbaV0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG9uU2VsZWN0Um93cyhzZWxlY3Rpb24pO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBNYXRlcmlhbFRhYmxlLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGNvbHVtbnMgPSBfcHJvcHMyLmNvbHVtbnM7XG4gICAgICAgIHZhciBkYXRhID0gX3Byb3BzMi5kYXRhO1xuICAgICAgICB2YXIgZGVzZWxlY3RPbkNsaWNrQXdheSA9IF9wcm9wczIuZGVzZWxlY3RPbkNsaWNrQXdheTtcbiAgICAgICAgdmFyIGVtcHR5U3RhdGVTdHJpbmcgPSBfcHJvcHMyLmVtcHR5U3RhdGVTdHJpbmc7XG4gICAgICAgIHZhciBvblNlbGVjdFJvd3MgPSBfcHJvcHMyLm9uU2VsZWN0Um93cztcbiAgICAgICAgdmFyIGNvbXB1dGVSb3dTdHlsZSA9IF9wcm9wczIuY29tcHV0ZVJvd1N0eWxlO1xuICAgICAgICB2YXIgc2hvd0NoZWNrYm94ZXMgPSB0aGlzLnByb3BzLnNob3dDaGVja2JveGVzO1xuXG4gICAgICAgIHZhciByb3dzID0gZGF0YS5tYXAoZnVuY3Rpb24gKG1vZGVsKSB7XG4gICAgICAgICAgICB2YXIgcm93U3R5bGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoY29tcHV0ZVJvd1N0eWxlKSB7XG4gICAgICAgICAgICAgICAgcm93U3R5bGUgPSBjb21wdXRlUm93U3R5bGUobW9kZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1vZGVsLlN1YmhlYWRlcikge1xuICAgICAgICAgICAgICAgIHZhciBoZWFkZXJTdHlsZSA9IF9leHRlbmRzKHtcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IDEyLCBjb2xvcjogJyM2MTYxNjEnLCBiYWNrZ3JvdW5kQ29sb3I6ICcjRkFGQUZBJywgZm9udFdlaWdodDogNTAwXG4gICAgICAgICAgICAgICAgfSwgbW9kZWwuc3R5bGUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVGFibGVSb3csXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcIm1lZGlhLXNtYWxsLWhpZGVcIiB9LFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRhYmxlUm93Q29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBjb2xTcGFuOiBjb2x1bW5zLmxlbmd0aCwgc3R5bGU6IGhlYWRlclN0eWxlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlbC5TdWJoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVGFibGVSb3csXG4gICAgICAgICAgICAgICAgeyBzZWxlY3RhYmxlOiBvblNlbGVjdFJvd3MgIT09IHVuZGVmaW5lZCwgc3R5bGU6IHJvd1N0eWxlIH0sXG4gICAgICAgICAgICAgICAgY29sdW1ucy5tYXAoZnVuY3Rpb24gKGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBtb2RlbFtjb2x1bW4ubmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4udXNlTW9tZW50ICYmIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG1vbWVudChuZXcgRGF0ZShwYXJzZUludCh2YWx1ZSkgKiAxMDAwKSkuZnJvbU5vdygpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbHVtbi5yZW5kZXJDZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGNvbHVtbi5yZW5kZXJDZWxsKG1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZVJvd0NvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IGNvbHVtbi5zdHlsZSB8fCB7fSwgdGl0bGU6IHZhbHVlLCBjbGFzc05hbWU6IGNvbHVtbi5oaWRlU21hbGwgPyAnbWVkaWEtc21hbGwtaGlkZScgOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGhlYWRlcnMgPSBjb2x1bW5zLm1hcChmdW5jdGlvbiAoY29sdW1uKSB7XG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVGFibGVIZWFkZXJDb2x1bW4sXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogY29sdW1uLmhlYWRlclN0eWxlIHx8IHt9LCBjbGFzc05hbWU6IGNvbHVtbi5oaWRlU21hbGwgPyAnbWVkaWEtc21hbGwtaGlkZScgOiBudWxsIH0sXG4gICAgICAgICAgICAgICAgY29sdW1uLmxhYmVsXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGVtcHR5U3RhdGVTdHJpbmcgJiYgIXJvd3MubGVuZ3RoKSB7XG4gICAgICAgICAgICBzaG93Q2hlY2tib3hlcyA9IGZhbHNlO1xuICAgICAgICAgICAgcm93cyA9IFtfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZVJvdyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZVJvd0NvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgeyBjb2xTcGFuOiBjb2x1bW5zLmxlbmd0aCB9LFxuICAgICAgICAgICAgICAgICAgICBlbXB0eVN0YXRlU3RyaW5nXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEubGVuZ3RoICYmIGRhdGFbMF0uU3ViaGVhZGVyIHx8IGVtcHR5U3RhdGVTdHJpbmcgJiYgIXJvd3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBBZGQgZmFrZSBmaXJzdCBsaW5lIHRvIGZpeCB3aWR0aFxuICAgICAgICAgICAgcm93cy51bnNoaWZ0KF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRhYmxlUm93LFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgYm9yZGVyQm90dG9tOiAnbm9uZScsIGhlaWdodDogMCB9IH0sXG4gICAgICAgICAgICAgICAgY29sdW1ucy5tYXAoZnVuY3Rpb24gKGNvbCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IGNvbC5zdHlsZSB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlRhYmxlUm93Q29sdW1uLCB7IHN0eWxlOiBfZXh0ZW5kcyh7fSwgcywgeyBoZWlnaHQ6IDAgfSksIGNsYXNzTmFtZTogY29sLmhpZGVTbWFsbCA/ICdtZWRpYS1zbWFsbC1oaWRlJyA6IG51bGwgfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgX21hdGVyaWFsVWkuVGFibGUsXG4gICAgICAgICAgICB7IG9uUm93U2VsZWN0aW9uOiB0aGlzLm9uUm93U2VsZWN0aW9uLmJpbmQodGhpcyksIG11bHRpU2VsZWN0YWJsZTogc2hvd0NoZWNrYm94ZXMgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRhYmxlSGVhZGVyLFxuICAgICAgICAgICAgICAgIHsgZGlzcGxheVNlbGVjdEFsbDogc2hvd0NoZWNrYm94ZXMsIGFkanVzdEZvckNoZWNrYm94OiBzaG93Q2hlY2tib3hlcywgZW5hYmxlU2VsZWN0QWxsOiBzaG93Q2hlY2tib3hlcyB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZVJvdyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5UYWJsZUJvZHksXG4gICAgICAgICAgICAgICAgeyBkZXNlbGVjdE9uQ2xpY2thd2F5OiBkZXNlbGVjdE9uQ2xpY2tBd2F5LCBkaXNwbGF5Um93Q2hlY2tib3g6IHNob3dDaGVja2JveGVzIH0sXG4gICAgICAgICAgICAgICAgcm93c1xuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gTWF0ZXJpYWxUYWJsZTtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5NYXRlcmlhbFRhYmxlLlByb3BUeXBlcyA9IHtcbiAgICBkYXRhOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgIGNvbHVtbnM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXksXG4gICAgb25TZWxlY3RSb3dzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgZW1wdHlTdGF0ZVN0cmluZzogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmdcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE1hdGVyaWFsVGFibGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG52YXIgX1NpbXBsZUxpc3QgPSByZXF1aXJlKCcuL1NpbXBsZUxpc3QnKTtcblxudmFyIF9TaW1wbGVMaXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NpbXBsZUxpc3QpO1xuXG4vKipcbiAqIFNpbXBsZSB0byB1c2UgbGlzdCBjb21wb25lbnQgZW5jYXBzdWxhdGVkIHdpdGggaXRzIG93biBxdWVyeSBtZWNoYW5pc21cbiAqIHVzaW5nIGEgc2V0IG9mIHByb3BlcnRpZXMgZm9yIHRoZSByZW1vdGUgbm9kZSBwcm92aWRlci5cbiAqL1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6IFwiTm9kZUxpc3RDdXN0b21Qcm92aWRlclwiLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIG5vZGVQcm92aWRlclByb3BlcnRpZXM6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIHByZXNldERhdGFNb2RlbDogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW9EYXRhTW9kZWwpLFxuICAgICAgICBhdXRvUmVmcmVzaDogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgYWN0aW9uQmFyR3JvdXBzOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIGhlaWdodEF1dG9XaXRoTWF4OiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICBlbGVtZW50SGVpZ2h0OiBSZWFjdC5Qcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gICAgICAgIG5vZGVDbGlja2VkOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcmVsb2FkT25TZXJ2ZXJNZXNzYWdlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBlbnRyeVJlbmRlckFzQ2FyZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbiAgICB9LFxuXG4gICAgcmVsb2FkOiBmdW5jdGlvbiByZWxvYWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlZnMubGlzdCAmJiB0aGlzLmlzTW91bnRlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnMubGlzdC5yZWxvYWQoKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9zbU9icykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5weWRpby5zdG9wT2JzZXJ2aW5nKFwic2VydmVyX21lc3NhZ2VcIiwgdGhpcy5fc21PYnMpO1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5weWRpby5zdG9wT2JzZXJ2aW5nKFwic2VydmVyX21lc3NhZ2U6XCIgKyB0aGlzLnByb3BzLnJlbG9hZE9uU2VydmVyTWVzc2FnZSwgdGhpcy5yZWxvYWQpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGVQcm92aWRlclByb3BlcnRpZXMgJiYgdGhpcy5wcm9wcy5ub2RlUHJvdmlkZXJQcm9wZXJ0aWVzICE9PSBuZXh0UHJvcHMubm9kZVByb3ZpZGVyUHJvcGVydGllcykge1xuICAgICAgICAgICAgdmFyIF9zdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgICAgICB2YXIgZGF0YU1vZGVsID0gX3N0YXRlLmRhdGFNb2RlbDtcbiAgICAgICAgICAgIHZhciBub2RlID0gX3N0YXRlLm5vZGU7XG5cbiAgICAgICAgICAgIHZhciBwcm92aWRlciA9IG5ldyBSZW1vdGVOb2RlUHJvdmlkZXIobmV4dFByb3BzLm5vZGVQcm92aWRlclByb3BlcnRpZXMpO1xuICAgICAgICAgICAgZGF0YU1vZGVsLnNldEFqeHBOb2RlUHJvdmlkZXIocHJvdmlkZXIpO1xuICAgICAgICAgICAgbm9kZS51cGRhdGVQcm92aWRlcihwcm92aWRlcik7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGF0YU1vZGVsOiBkYXRhTW9kZWwsIG5vZGU6IG5vZGUgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy5wcmVzZXREYXRhTW9kZWwgIT09IG5leHRQcm9wcy5wcmVzZXREYXRhTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGRhdGFNb2RlbDogbmV4dFByb3BzLnByZXNldERhdGFNb2RlbCxcbiAgICAgICAgICAgICAgICBub2RlOiBuZXh0UHJvcHMucHJlc2V0RGF0YU1vZGVsLmdldFJvb3ROb2RlKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuXG4gICAgICAgIHZhciBkYXRhTW9kZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnByZXNldERhdGFNb2RlbCkge1xuICAgICAgICAgICAgZGF0YU1vZGVsID0gdGhpcy5wcm9wcy5wcmVzZXREYXRhTW9kZWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhTW9kZWwgPSBQeWRpb0RhdGFNb2RlbC5SZW1vdGVEYXRhTW9kZWxGYWN0b3J5KHRoaXMucHJvcHMubm9kZVByb3ZpZGVyUHJvcGVydGllcyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJvb3ROb2RlID0gZGF0YU1vZGVsLmdldFJvb3ROb2RlKCk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGVDbGlja2VkKSB7XG4gICAgICAgICAgICAvLyBsZWFmXG4gICAgICAgICAgICB0aGlzLm9wZW5FZGl0b3IgPSAoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm5vZGVDbGlja2VkKG5vZGUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgICAgICAvLyBkaXJcbiAgICAgICAgICAgIGRhdGFNb2RlbC5vYnNlcnZlKFwic2VsZWN0aW9uX2NoYW5nZWRcIiwgKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZE5vZGVzID0gZXZlbnQubWVtby5nZXRTZWxlY3RlZE5vZGVzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkTm9kZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubm9kZUNsaWNrZWQoc2VsZWN0ZWROb2Rlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50Lm1lbW8uc2V0U2VsZWN0ZWROb2RlcyhbXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVsb2FkT25TZXJ2ZXJNZXNzYWdlICYmIHRoaXMucHJvcHMucHlkaW8pIHtcbiAgICAgICAgICAgIHRoaXMuX3NtT2JzID0gKGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgIGlmIChYTUxVdGlscy5YUGF0aFNlbGVjdFNpbmdsZU5vZGUoZXZlbnQsIHRoaXMucHJvcHMucmVsb2FkT25TZXJ2ZXJNZXNzYWdlKSkgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnByb3BzLnB5ZGlvLm9ic2VydmUoXCJzZXJ2ZXJfbWVzc2FnZVwiLCB0aGlzLl9zbU9icyk7XG4gICAgICAgICAgICB0aGlzLnByb3BzLnB5ZGlvLm9ic2VydmUoXCJzZXJ2ZXJfbWVzc2FnZTpcIiArIHRoaXMucHJvcHMucmVsb2FkT25TZXJ2ZXJNZXNzYWdlLCB0aGlzLnJlbG9hZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgbm9kZTogcm9vdE5vZGUsIGRhdGFNb2RlbDogZGF0YU1vZGVsIH07XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgbGVnZW5kO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5sZWdlbmQpIHtcbiAgICAgICAgICAgIGxlZ2VuZCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJzdWJ0aXRsZVwiIH0sXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5sZWdlbmRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IHRoaXMucHJvcHMuaGVpZ2h0QXV0b1dpdGhNYXggPyBcIlwiIDogXCJsYXlvdXQtZmlsbCB2ZXJ0aWNhbC1sYXlvdXRcIiB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfU2ltcGxlTGlzdDJbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcywge1xuICAgICAgICAgICAgICAgIG9wZW5FZGl0b3I6IHRoaXMub3BlbkVkaXRvcixcbiAgICAgICAgICAgICAgICByZWY6IFwibGlzdFwiLFxuICAgICAgICAgICAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKHsgaGVpZ2h0OiAnMTAwJScgfSwgdGhpcy5wcm9wcy5zdHlsZSB8fCB7fSksXG4gICAgICAgICAgICAgICAgbm9kZTogdGhpcy5zdGF0ZS5ub2RlLFxuICAgICAgICAgICAgICAgIGRhdGFNb2RlbDogdGhpcy5zdGF0ZS5kYXRhTW9kZWwsXG4gICAgICAgICAgICAgICAgYWN0aW9uQmFyR3JvdXBzOiB0aGlzLnByb3BzLmFjdGlvbkJhckdyb3VwcyxcbiAgICAgICAgICAgICAgICBza2lwUGFyZW50TmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlTm9kZVJlbG9hZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoaWRlVG9vbGJhcjogdHJ1ZVxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX3JlYWN0U2Nyb2xsYmFyID0gcmVxdWlyZSgncmVhY3Qtc2Nyb2xsYmFyJyk7XG5cbnZhciBfcmVhY3RTY3JvbGxiYXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3RTY3JvbGxiYXIpO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgX3V0aWxNZXNzYWdlc0NvbnN1bWVyTWl4aW4gPSByZXF1aXJlKCcuLi91dGlsL01lc3NhZ2VzQ29uc3VtZXJNaXhpbicpO1xuXG52YXIgX3V0aWxNZXNzYWdlc0NvbnN1bWVyTWl4aW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbik7XG5cbnZhciBfTGlzdEVudHJ5ID0gcmVxdWlyZSgnLi9MaXN0RW50cnknKTtcblxudmFyIF9UYWJsZUxpc3RFbnRyeSA9IHJlcXVpcmUoJy4vVGFibGVMaXN0RW50cnknKTtcblxudmFyIF9UYWJsZUxpc3RFbnRyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UYWJsZUxpc3RFbnRyeSk7XG5cbnZhciBfVGFibGVMaXN0SGVhZGVyID0gcmVxdWlyZSgnLi9UYWJsZUxpc3RIZWFkZXInKTtcblxudmFyIF9UYWJsZUxpc3RIZWFkZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVGFibGVMaXN0SGVhZGVyKTtcblxudmFyIF9Db25maWd1cmFibGVMaXN0RW50cnkgPSByZXF1aXJlKCcuL0NvbmZpZ3VyYWJsZUxpc3RFbnRyeScpO1xuXG52YXIgX0NvbmZpZ3VyYWJsZUxpc3RFbnRyeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Db25maWd1cmFibGVMaXN0RW50cnkpO1xuXG52YXIgX1NvcnRDb2x1bW5zID0gcmVxdWlyZSgnLi9Tb3J0Q29sdW1ucycpO1xuXG52YXIgX1NvcnRDb2x1bW5zMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NvcnRDb2x1bW5zKTtcblxudmFyIF9MaXN0UGFnaW5hdG9yID0gcmVxdWlyZSgnLi9MaXN0UGFnaW5hdG9yJyk7XG5cbnZhciBfTGlzdFBhZ2luYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9MaXN0UGFnaW5hdG9yKTtcblxudmFyIF92aWV3c1NpbXBsZVJlYWN0QWN0aW9uQmFyID0gcmVxdWlyZSgnLi4vdmlld3MvU2ltcGxlUmVhY3RBY3Rpb25CYXInKTtcblxudmFyIF92aWV3c1NpbXBsZVJlYWN0QWN0aW9uQmFyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3ZpZXdzU2ltcGxlUmVhY3RBY3Rpb25CYXIpO1xuXG52YXIgX0lubGluZUVkaXRvciA9IHJlcXVpcmUoJy4vSW5saW5lRWRpdG9yJyk7XG5cbnZhciBfSW5saW5lRWRpdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0lubGluZUVkaXRvcik7XG5cbnZhciBfdmlld3NFbXB0eVN0YXRlVmlldyA9IHJlcXVpcmUoJy4uL3ZpZXdzL0VtcHR5U3RhdGVWaWV3Jyk7XG5cbnZhciBfdmlld3NFbXB0eVN0YXRlVmlldzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF92aWV3c0VtcHR5U3RhdGVWaWV3KTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBJbmZpbml0ZSA9IHJlcXVpcmUoJ3JlYWN0LWluZmluaXRlJyk7XG5cbnZhciBET01VdGlscyA9IHJlcXVpcmUoJ3B5ZGlvL3V0aWwvZG9tJyk7XG52YXIgTGFuZ1V0aWxzID0gcmVxdWlyZSgncHlkaW8vdXRpbC9sYW5nJyk7XG52YXIgUHlkaW9EYXRhTW9kZWwgPSByZXF1aXJlKCdweWRpby9tb2RlbC9kYXRhLW1vZGVsJyk7XG52YXIgUGVyaW9kaWNhbEV4ZWN1dGVyID0gcmVxdWlyZSgncHlkaW8vdXRpbC9wZXJpb2RpY2FsLWV4ZWN1dGVyJyk7XG5cbi8qKlxuICogR2VuZXJpYyBMaXN0IGNvbXBvbmVudCwgdXNpbmcgSW5maW5pdGUgZm9yIGNlbGwgdmlydHVhbGl6YXRpb24sIHBhZ2luYXRpb24sIHZhcmlvdXNcbiAqIGRpc3BsYXlzLCBldGMuLi4gSXQgcHJvdmlkZXMgbWFueSBob29rcyBmb3IgcmVuZGVyaW5nIGNlbGxzIG9uLWRlbWFuZC5cbiAqL1xudmFyIFNpbXBsZUxpc3QgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdTaW1wbGVMaXN0JyxcblxuICAgIG1peGluczogW191dGlsTWVzc2FnZXNDb25zdW1lck1peGluMlsnZGVmYXVsdCddXSxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBpbmZpbml0ZVNsaWNlQ291bnQ6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIGZpbHRlck5vZGVzOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgY3VzdG9tVG9vbGJhcjogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgdGFibGVLZXlzOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICBhdXRvUmVmcmVzaDogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgcmVsb2FkQXRDdXJzb3I6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgICAgICBjbGVhclNlbGVjdGlvbk9uUmVsb2FkOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgaGVpZ2h0QXV0b1dpdGhNYXg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIGNvbnRhaW5lckhlaWdodDogUmVhY3QuUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgb2JzZXJ2ZU5vZGVSZWxvYWQ6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgICAgICBkZWZhdWx0R3JvdXBCeTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgZGVmYXVsdEdyb3VwQnlMYWJlbDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcblxuICAgICAgICBza2lwUGFyZW50TmF2aWdhdGlvbjogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIHNraXBJbnRlcm5hbERhdGFNb2RlbDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIGRlbGF5SW5pdGlhbExvYWQ6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG5cbiAgICAgICAgZW50cnlFbmFibGVTZWxlY3RvcjogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbmRlckN1c3RvbUVudHJ5OiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgZW50cnlSZW5kZXJJY29uOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgZW50cnlSZW5kZXJBY3Rpb25zOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgZW50cnlSZW5kZXJGaXJzdExpbmU6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBlbnRyeVJlbmRlclNlY29uZExpbmU6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBlbnRyeVJlbmRlclRoaXJkTGluZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGVudHJ5SGFuZGxlQ2xpY2tzOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgaGlkZVRvb2xiYXI6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgICAgICBjb21wdXRlQWN0aW9uc0Zvck5vZGU6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgICAgICBtdWx0aXBsZUFjdGlvbnM6IFJlYWN0LlByb3BUeXBlcy5hcnJheSxcblxuICAgICAgICBvcGVuRWRpdG9yOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgb3BlbkNvbGxlY3Rpb246IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuXG4gICAgICAgIGVsZW1lbnRTdHlsZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgcGFzc1Njcm9sbGluZ1N0YXRlVG9DaGlsZHJlbjogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIGVsZW1lbnRIZWlnaHQ6IFJlYWN0LlByb3BUeXBlcy5vbmVPZlR5cGUoW1JlYWN0LlByb3BUeXBlcy5udW1iZXIsIFJlYWN0LlByb3BUeXBlcy5vYmplY3RdKS5pc1JlcXVpcmVkXG5cbiAgICB9LFxuXG4gICAgc3RhdGljczoge1xuICAgICAgICBIRUlHSFRfT05FX0xJTkU6IDUwLFxuICAgICAgICBIRUlHSFRfVFdPX0xJTkVTOiA3MyxcbiAgICAgICAgQ0xJQ0tfVFlQRV9TSU1QTEU6ICdzaW1wbGUnLFxuICAgICAgICBDTElDS19UWVBFX0RPVUJMRTogJ2RvdWJsZScsXG4gICAgICAgIFBBUkVOVF9GT0xERVJfSUNPTjogJ21kaSBtZGktY2hldnJvbi1sZWZ0J1xuICAgIH0sXG5cbiAgICBnZXREZWZhdWx0UHJvcHM6IGZ1bmN0aW9uIGdldERlZmF1bHRQcm9wcygpIHtcbiAgICAgICAgcmV0dXJuIHsgaW5maW5pdGVTbGljZUNvdW50OiAzMCwgY2xlYXJTZWxlY3Rpb25PblJlbG9hZDogdHJ1ZSB9O1xuICAgIH0sXG5cbiAgICBjbGlja1JvdzogZnVuY3Rpb24gY2xpY2tSb3coZ3JpZFJvdywgZXZlbnQpIHtcbiAgICAgICAgdmFyIG5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChncmlkUm93LnByb3BzKSB7XG4gICAgICAgICAgICBub2RlID0gZ3JpZFJvdy5wcm9wcy5kYXRhLm5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlID0gZ3JpZFJvdztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5lbnRyeUhhbmRsZUNsaWNrcykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5lbnRyeUhhbmRsZUNsaWNrcyhub2RlLCBTaW1wbGVMaXN0LkNMSUNLX1RZUEVfU0lNUExFLCBldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuaXNMZWFmKCkgJiYgdGhpcy5wcm9wcy5vcGVuRWRpdG9yKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vcGVuRWRpdG9yKG5vZGUpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB1bmlxdWVTZWxlY3Rpb24gPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB1bmlxdWVTZWxlY3Rpb24uc2V0KG5vZGUsIHRydWUpO1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGlvbjogdW5pcXVlU2VsZWN0aW9uIH0sIHRoaXMucmVidWlsZExvYWRlZEVsZW1lbnRzKTtcbiAgICAgICAgfSBlbHNlIGlmICghbm9kZS5pc0xlYWYoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub3BlbkNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9wZW5Db2xsZWN0aW9uKG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5zZXRTZWxlY3RlZE5vZGVzKFtub2RlXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZG91YmxlQ2xpY2tSb3c6IGZ1bmN0aW9uIGRvdWJsZUNsaWNrUm93KGdyaWRSb3csIGV2ZW50KSB7XG4gICAgICAgIHZhciBub2RlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZ3JpZFJvdy5wcm9wcykge1xuICAgICAgICAgICAgbm9kZSA9IGdyaWRSb3cucHJvcHMuZGF0YS5ub2RlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZSA9IGdyaWRSb3c7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZW50cnlIYW5kbGVDbGlja3MpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZW50cnlIYW5kbGVDbGlja3Mobm9kZSwgU2ltcGxlTGlzdC5DTElDS19UWVBFX0RPVUJMRSwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9uQ29sdW1uU29ydDogZnVuY3Rpb24gb25Db2x1bW5Tb3J0KGNvbHVtbikge1xuICAgICAgICB2YXIgc3RhdGVTZXRDYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgdmFyIHBhZ2luYXRpb24gPSB0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3BhZ2luYXRpb25EYXRhJyk7XG4gICAgICAgIGlmIChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZ2V0KCd0b3RhbCcpID4gMSAmJiBwYWdpbmF0aW9uLmdldCgncmVtb3RlX29yZGVyJykpIHtcblxuICAgICAgICAgICAgdmFyIGRpciA9ICdhc2MnO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMubm9kZS5nZXRNZXRhZGF0YSgpLmdldCgncGFnaW5hdGlvbkRhdGEnKS5nZXQoJ2N1cnJlbnRPcmRlckRpcicpKSB7XG4gICAgICAgICAgICAgICAgZGlyID0gdGhpcy5wcm9wcy5ub2RlLmdldE1ldGFkYXRhKCkuZ2V0KCdwYWdpbmF0aW9uRGF0YScpLmdldCgnY3VycmVudE9yZGVyRGlyJykgPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgb3JkZXJEYXRhID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgb3JkZXJEYXRhLnNldCgnb3JkZXJfY29sdW1uJywgY29sdW1uWydyZW1vdGVTb3J0QXR0cmlidXRlJ10gPyBjb2x1bW4ucmVtb3RlU29ydEF0dHJpYnV0ZSA6IGNvbHVtbi5uYW1lKTtcbiAgICAgICAgICAgIG9yZGVyRGF0YS5zZXQoJ29yZGVyX2RpcmVjdGlvbicsIGRpcik7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKS5zZXQoXCJyZW1vdGVfb3JkZXJcIiwgb3JkZXJEYXRhKTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnJlcXVpcmVDb250ZXh0Q2hhbmdlKHRoaXMucHJvcHMubm9kZSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgIHZhciBhdHQgPSBjb2x1bW5bJ3NvcnRBdHRyaWJ1dGUnXSA/IGNvbHVtblsnc29ydEF0dHJpYnV0ZSddIDogY29sdW1uLm5hbWU7XG4gICAgICAgICAgICB2YXIgc29ydGluZ0luZm8gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB2YXIgX3N0YXRlJHNvcnRpbmdJbmZvID0gdGhpcy5zdGF0ZS5zb3J0aW5nSW5mbztcbiAgICAgICAgICAgIHZhciBhdHRyaWJ1dGUgPSBfc3RhdGUkc29ydGluZ0luZm8uYXR0cmlidXRlO1xuICAgICAgICAgICAgdmFyIGRpcmVjdGlvbiA9IF9zdGF0ZSRzb3J0aW5nSW5mby5kaXJlY3Rpb247XG5cbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgPT09IGF0dCAmJiBkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAnYXNjJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBTd2l0Y2ggZGlyZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIHNvcnRpbmdJbmZvID0geyBhdHRyaWJ1dGU6IGF0dCwgc29ydFR5cGU6IGNvbHVtbi5zb3J0VHlwZSwgZGlyZWN0aW9uOiAnZGVzYycgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCBzb3J0aW5nXG4gICAgICAgICAgICAgICAgICAgIHNvcnRpbmdJbmZvID0gdGhpcy5wcm9wcy5kZWZhdWx0U29ydGluZ0luZm8gfHwge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzb3J0aW5nSW5mbyA9IHsgYXR0cmlidXRlOiBhdHQsIHNvcnRUeXBlOiBjb2x1bW4uc29ydFR5cGUsIGRpcmVjdGlvbjogJ2FzYycgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzb3J0aW5nSW5mbzogc29ydGluZ0luZm8gfSwgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYnVpbGRMb2FkZWRFbGVtZW50cygpO1xuICAgICAgICAgICAgICAgIGlmIChzdGF0ZVNldENhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlU2V0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wdXRlU2VsZWN0aW9uRnJvbUN1cnJlbnRQbHVzVGFyZ2V0Tm9kZTogZnVuY3Rpb24gY29tcHV0ZVNlbGVjdGlvbkZyb21DdXJyZW50UGx1c1RhcmdldE5vZGUoY3VycmVudFNlbGVjdGlvbiwgdGFyZ2V0Tm9kZSkge1xuXG4gICAgICAgIHZhciBjdXJyZW50SW5kZXhTdGFydCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleEVuZCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG5vZGVCZWZvcmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLmluZGV4ZWRFbGVtZW50cykge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmaXJzdFNlbGVjdGVkID0gY3VycmVudFNlbGVjdGlvblswXTtcbiAgICAgICAgdmFyIGxhc3RTZWxlY3RlZCA9IGN1cnJlbnRTZWxlY3Rpb25bY3VycmVudFNlbGVjdGlvbi5sZW5ndGggLSAxXTtcbiAgICAgICAgdmFyIG5ld1NlbGVjdGlvbiA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaW5kZXhlZEVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudEluZGV4U3RhcnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5wdXNoKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUgPT09IHRhcmdldE5vZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudEluZGV4U3RhcnQgIT09IHVuZGVmaW5lZCAmJiBjdXJyZW50SW5kZXhFbmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXhFbmQgPSBpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4U3RhcnQgPSBpO1xuICAgICAgICAgICAgICAgIG5vZGVCZWZvcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5wdXNoKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUgPT09IGZpcnN0U2VsZWN0ZWQgJiYgY3VycmVudEluZGV4U3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleFN0YXJ0ID0gaTtcbiAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24ucHVzaCh0aGlzLmluZGV4ZWRFbGVtZW50c1tpXS5ub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmluZGV4ZWRFbGVtZW50c1tpXS5ub2RlID09PSBsYXN0U2VsZWN0ZWQgJiYgbm9kZUJlZm9yZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleEVuZCA9IGk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld1NlbGVjdGlvbjtcbiAgICB9LFxuXG4gICAgb25LZXlEb3duOiBmdW5jdGlvbiBvbktleURvd24oZSkge1xuICAgICAgICB2YXIgY3VycmVudEluZGV4U3RhcnQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBjdXJyZW50SW5kZXhFbmQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBjb250ZXh0SG9sZGVyID0gd2luZG93LnB5ZGlvLmdldENvbnRleHRIb2xkZXIoKTtcbiAgICAgICAgdmFyIGVsZW1lbnRzUGVyTGluZSA9IHRoaXMucHJvcHMuZWxlbWVudHNQZXJMaW5lIHx8IDE7XG4gICAgICAgIHZhciBzaGlmdEtleSA9IGUuc2hpZnRLZXk7XG4gICAgICAgIHZhciBrZXkgPSBlLmtleTtcblxuICAgICAgICBpZiAoY29udGV4dEhvbGRlci5pc0VtcHR5KCkgfHwgIXRoaXMuaW5kZXhlZEVsZW1lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRvd25LZXlzID0gWydBcnJvd0Rvd24nLCAnQXJyb3dSaWdodCcsICdQYWdlRG93bicsICdFbmQnXTtcblxuICAgICAgICB2YXIgcG9zaXRpb24gPSBzaGlmdEtleSAmJiBkb3duS2V5cy5pbmRleE9mKGtleSkgPiAtMSA/ICdmaXJzdCcgOiAnbGFzdCc7XG4gICAgICAgIHZhciBjdXJyZW50U2VsZWN0aW9uID0gY29udGV4dEhvbGRlci5nZXRTZWxlY3RlZE5vZGVzKCk7XG5cbiAgICAgICAgdmFyIGZpcnN0U2VsZWN0ZWQgPSBjdXJyZW50U2VsZWN0aW9uWzBdO1xuICAgICAgICB2YXIgbGFzdFNlbGVjdGVkID0gY3VycmVudFNlbGVjdGlvbltjdXJyZW50U2VsZWN0aW9uLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmIChrZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMuZG91YmxlQ2xpY2tSb3coZmlyc3RTZWxlY3RlZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ0RlbGV0ZScgJiYgZ2xvYmFsLnB5ZGlvLkNvbnRyb2xsZXIuZmlyZUFjdGlvbkJ5S2V5KCdrZXlfZGVsZXRlJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pbmRleGVkRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmluZGV4ZWRFbGVtZW50c1tpXS5ub2RlID09PSBmaXJzdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4U3RhcnQgPSBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldLm5vZGUgPT09IGxhc3RTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleEVuZCA9IGk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNlbGVjdGlvbkluZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgbWF4SW5kZXggPSB0aGlzLmluZGV4ZWRFbGVtZW50cy5sZW5ndGggLSAxO1xuICAgICAgICB2YXIgaW5jcmVtZW50ID0ga2V5ID09PSAnUGFnZURvd24nIHx8IGtleSA9PT0gJ1BhZ2VVcCcgPyAxMCA6IDE7XG4gICAgICAgIGlmIChrZXkgPT09ICdBcnJvd0Rvd24nIHx8IGtleSA9PT0gJ1BhZ2VEb3duJykge1xuICAgICAgICAgICAgc2VsZWN0aW9uSW5kZXggPSBNYXRoLm1pbihjdXJyZW50SW5kZXhFbmQgKyBlbGVtZW50c1BlckxpbmUgKiBpbmNyZW1lbnQsIG1heEluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdBcnJvd1VwJyB8fCBrZXkgPT09ICdQYWdlVXAnKSB7XG4gICAgICAgICAgICBzZWxlY3Rpb25JbmRleCA9IE1hdGgubWF4KGN1cnJlbnRJbmRleFN0YXJ0IC0gZWxlbWVudHNQZXJMaW5lICogaW5jcmVtZW50LCAwKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdIb21lJykge1xuICAgICAgICAgICAgc2VsZWN0aW9uSW5kZXggPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0VuZCcpIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbkluZGV4ID0gbWF4SW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnRzUGVyTGluZSA+IDEpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvbkluZGV4ID0gY3VycmVudEluZGV4RW5kICsgMTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvbkluZGV4ID0gY3VycmVudEluZGV4U3RhcnQgLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNoaWZ0S2V5ICYmIHNlbGVjdGlvbkluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhciBtaW4gPSBNYXRoLm1pbihjdXJyZW50SW5kZXhTdGFydCwgY3VycmVudEluZGV4RW5kLCBzZWxlY3Rpb25JbmRleCk7XG4gICAgICAgICAgICB2YXIgbWF4ID0gTWF0aC5tYXgoY3VycmVudEluZGV4U3RhcnQsIGN1cnJlbnRJbmRleEVuZCwgc2VsZWN0aW9uSW5kZXgpO1xuICAgICAgICAgICAgaWYgKG1pbiAhPT0gbWF4KSB7XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSBtaW47IGkgPCBtYXggKyAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5kZXhlZEVsZW1lbnRzW2ldKSBzZWxlY3Rpb24ucHVzaCh0aGlzLmluZGV4ZWRFbGVtZW50c1tpXS5ub2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGV4dEhvbGRlci5zZXRTZWxlY3RlZE5vZGVzKHNlbGVjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbmRleGVkRWxlbWVudHNbc2VsZWN0aW9uSW5kZXhdICYmIHRoaXMuaW5kZXhlZEVsZW1lbnRzW3NlbGVjdGlvbkluZGV4XS5ub2RlKSB7XG4gICAgICAgICAgICBjb250ZXh0SG9sZGVyLnNldFNlbGVjdGVkTm9kZXMoW3RoaXMuaW5kZXhlZEVsZW1lbnRzW3NlbGVjdGlvbkluZGV4XS5ub2RlXSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NhY2hlID0geyBtdWx0aXBsZTogbmV3IE1hcCgpIH07XG4gICAgICAgIGlmICghdGhpcy5wcm9wcy5za2lwSW50ZXJuYWxEYXRhTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuZG0gPSBuZXcgUHlkaW9EYXRhTW9kZWwoKTtcbiAgICAgICAgICAgIHRoaXMuZG0uc2V0Um9vdE5vZGUodGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0Q29udGV4dE5vZGUoKSk7XG4gICAgICAgICAgICB0aGlzLmRtLnNldENvbnRleHROb2RlKHRoaXMucHJvcHMuZGF0YU1vZGVsLmdldENvbnRleHROb2RlKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kbSA9IHRoaXMucHJvcHMuZGF0YU1vZGVsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdGF0ZSA9IHtcbiAgICAgICAgICAgIGxvYWRlZDogdGhpcy5wcm9wcy5ub2RlLmlzTG9hZGVkKCksXG4gICAgICAgICAgICBsb2FkaW5nOiAhdGhpcy5wcm9wcy5ub2RlLmlzTG9hZGVkKCksXG4gICAgICAgICAgICBzaG93U2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgZWxlbWVudHM6IHRoaXMucHJvcHMubm9kZS5pc0xvYWRlZCgpID8gdGhpcy5idWlsZEVsZW1lbnRzKDAsIHRoaXMucHJvcHMuaW5maW5pdGVTbGljZUNvdW50KSA6IFtdLFxuICAgICAgICAgICAgY29udGFpbmVySGVpZ2h0OiB0aGlzLnByb3BzLmNvbnRhaW5lckhlaWdodCA/IHRoaXMucHJvcHMuY29udGFpbmVySGVpZ2h0IDogdGhpcy5wcm9wcy5oZWlnaHRBdXRvV2l0aE1heCA/IDAgOiA1MDAsXG4gICAgICAgICAgICBzb3J0aW5nSW5mbzogdGhpcy5wcm9wcy5kZWZhdWx0U29ydGluZ0luZm8gfHwgbnVsbFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5lbGVtZW50SGVpZ2h0IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICBzdGF0ZS5lbGVtZW50SGVpZ2h0ID0gdGhpcy5jb21wdXRlRWxlbWVudEhlaWdodFJlc3BvbnNpdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBzdGF0ZS5pbmZpbml0ZUxvYWRCZWdpbkJvdHRvbU9mZnNldCA9IDIwMDtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH0sXG5cbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuaW5kZXhlZEVsZW1lbnRzID0gbnVsbDtcbiAgICAgICAgdmFyIGN1cnJlbnRMZW5ndGggPSBNYXRoLm1heCh0aGlzLnN0YXRlLmVsZW1lbnRzLmxlbmd0aCwgbmV4dFByb3BzLmluZmluaXRlU2xpY2VDb3VudCk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgbG9hZGVkOiBuZXh0UHJvcHMubm9kZS5pc0xvYWRlZCgpLFxuICAgICAgICAgICAgbG9hZGluZzogIW5leHRQcm9wcy5ub2RlLmlzTG9hZGVkKCksXG4gICAgICAgICAgICBzaG93U2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgZWxlbWVudHM6IG5leHRQcm9wcy5ub2RlLmlzTG9hZGVkKCkgPyB0aGlzLmJ1aWxkRWxlbWVudHMoMCwgY3VycmVudExlbmd0aCwgbmV4dFByb3BzLm5vZGUpIDogW10sXG4gICAgICAgICAgICBpbmZpbml0ZUxvYWRCZWdpbkJvdHRvbU9mZnNldDogMjAwLFxuICAgICAgICAgICAgc29ydGluZ0luZm86IHRoaXMuc3RhdGUuc29ydGluZ0luZm8gfHwgbmV4dFByb3BzLmRlZmF1bHRTb3J0aW5nSW5mbyB8fCBudWxsXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChuZXh0UHJvcHMubm9kZS5pc0xvYWRlZCgpKSBfdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFuZXh0UHJvcHMuYXV0b1JlZnJlc2ggJiYgdGhpcy5yZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMucmVmcmVzaEludGVydmFsKTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEludGVydmFsID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChuZXh0UHJvcHMuYXV0b1JlZnJlc2ggJiYgIXRoaXMucmVmcmVzaEludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hJbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh0aGlzLnJlbG9hZCwgbmV4dFByb3BzLmF1dG9SZWZyZXNoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhdGNoSW5maW5pdGVHcmlkKG5leHRQcm9wcy5lbGVtZW50c1BlckxpbmUpO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5ub2RlICYmIG5leHRQcm9wcy5ub2RlICE9PSB0aGlzLnByb3BzLm5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZU5vZGVDaGlsZHJlbih0aGlzLnByb3BzLm5vZGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9tYW51YWxTY3JvbGxQZSkge1xuICAgICAgICAgICAgdGhpcy5fbWFudWFsU2Nyb2xsUGUuc3RvcCgpO1xuICAgICAgICAgICAgdGhpcy5fbWFudWFsU2Nyb2xsUGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9ic2VydmVOb2RlQ2hpbGRyZW46IGZ1bmN0aW9uIG9ic2VydmVOb2RlQ2hpbGRyZW4obm9kZSkge1xuICAgICAgICB2YXIgc3RvcCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIGlmIChzdG9wICYmICF0aGlzLl9jaGlsZHJlbk9ic2VydmVyKSByZXR1cm47XG5cbiAgICAgICAgaWYgKCF0aGlzLl9jaGlsZHJlbk9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGlsZHJlbk9ic2VydmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluZGV4ZWRFbGVtZW50cyA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWJ1aWxkTG9hZGVkRWxlbWVudHMoKTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9jaGlsZHJlbkFjdGlvbnNPYnNlcnZlcikge1xuICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW5BY3Rpb25zT2JzZXJ2ZXIgPSAoZnVuY3Rpb24gKGV2ZW50TWVtbykge1xuICAgICAgICAgICAgICAgIGlmIChldmVudE1lbW8udHlwZSA9PT0gJ3Byb21wdC1yZW5hbWUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpbmxpbmVFZGl0aW9uRm9yTm9kZTogZXZlbnRNZW1vLmNoaWxkLCBpbmxpbmVFZGl0aW9uQ2FsbGJhY2s6IGV2ZW50TWVtby5jYWxsYmFjayB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdG9wKSB7XG4gICAgICAgICAgICBub2RlLnN0b3BPYnNlcnZpbmcoXCJjaGlsZF9hZGRlZFwiLCB0aGlzLl9jaGlsZHJlbk9ic2VydmVyKTtcbiAgICAgICAgICAgIG5vZGUuc3RvcE9ic2VydmluZyhcImNoaWxkX3JlbW92ZWRcIiwgdGhpcy5fY2hpbGRyZW5PYnNlcnZlcik7XG4gICAgICAgICAgICBub2RlLnN0b3BPYnNlcnZpbmcoXCJjaGlsZF9ub2RlX2FjdGlvblwiLCB0aGlzLl9jaGlsZHJlbkFjdGlvbnNPYnNlcnZlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlLm9ic2VydmUoXCJjaGlsZF9hZGRlZFwiLCB0aGlzLl9jaGlsZHJlbk9ic2VydmVyKTtcbiAgICAgICAgICAgIG5vZGUub2JzZXJ2ZShcImNoaWxkX3JlbW92ZWRcIiwgdGhpcy5fY2hpbGRyZW5PYnNlcnZlcik7XG4gICAgICAgICAgICBub2RlLm9ic2VydmUoXCJjaGlsZF9ub2RlX2FjdGlvblwiLCB0aGlzLl9jaGlsZHJlbkFjdGlvbnNPYnNlcnZlcik7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgX2xvYWROb2RlSWZOb3RMb2FkZWQ6IGZ1bmN0aW9uIF9sb2FkTm9kZUlmTm90TG9hZGVkKCkge1xuICAgICAgICB2YXIgbm9kZSA9IHRoaXMucHJvcHMubm9kZTtcblxuICAgICAgICBpZiAoIW5vZGUuaXNMb2FkZWQoKSkge1xuICAgICAgICAgICAgbm9kZS5vYnNlcnZlT25jZShcImxvYWRlZFwiLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGUgPT09IG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vYnNlcnZlTm9kZUNoaWxkcmVuKG5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHM6IHRoaXMuYnVpbGRFbGVtZW50cygwLCB0aGlzLnByb3BzLmluZmluaXRlU2xpY2VDb3VudClcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmhlaWdodEF1dG9XaXRoTWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIG5vZGUubG9hZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlTm9kZUNoaWxkcmVuKG5vZGUpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIF9sb2FkaW5nTGlzdGVuZXI6IGZ1bmN0aW9uIF9sb2FkaW5nTGlzdGVuZXIoKSB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZU5vZGVDaGlsZHJlbih0aGlzLnByb3BzLm5vZGUsIHRydWUpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGVkOiBmYWxzZSwgbG9hZGluZzogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5pbmRleGVkRWxlbWVudHMgPSBudWxsO1xuICAgIH0sXG4gICAgX2xvYWRlZExpc3RlbmVyOiBmdW5jdGlvbiBfbG9hZGVkTGlzdGVuZXIoKSB7XG4gICAgICAgIHZhciBjdXJyZW50TGVuZ3RoID0gTWF0aC5tYXgodGhpcy5zdGF0ZS5lbGVtZW50cy5sZW5ndGgsIHRoaXMucHJvcHMuaW5maW5pdGVTbGljZUNvdW50KTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVsZW1lbnRzOiB0aGlzLmJ1aWxkRWxlbWVudHMoMCwgY3VycmVudExlbmd0aCwgdGhpcy5wcm9wcy5ub2RlKVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuaGVpZ2h0QXV0b1dpdGhNYXgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9ic2VydmVOb2RlQ2hpbGRyZW4odGhpcy5wcm9wcy5ub2RlKTtcbiAgICB9LFxuXG4gICAgcmVsb2FkOiBmdW5jdGlvbiByZWxvYWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlbG9hZEF0Q3Vyc29yICYmIHRoaXMuX2N1cnJlbnRDdXJzb3IpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZFN0YXJ0aW5nQXRDdXJzb3IoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5jbGVhclNlbGVjdGlvbk9uUmVsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5zZXRTZWxlY3RlZE5vZGVzKFtdKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sb2FkaW5nTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy5wcm9wcy5ub2RlLm9ic2VydmVPbmNlKFwibG9hZGVkXCIsIHRoaXMuX2xvYWRlZExpc3RlbmVyKTtcbiAgICAgICAgdGhpcy5wcm9wcy5ub2RlLnJlbG9hZCgpO1xuICAgIH0sXG5cbiAgICBsb2FkU3RhcnRpbmdBdEN1cnNvcjogZnVuY3Rpb24gbG9hZFN0YXJ0aW5nQXRDdXJzb3IoKSB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmdMaXN0ZW5lcigpO1xuICAgICAgICB2YXIgbm9kZSA9IHRoaXMucHJvcHMubm9kZTtcbiAgICAgICAgdmFyIGNhY2hlZENoaWxkcmVuID0gbm9kZS5nZXRDaGlsZHJlbigpO1xuICAgICAgICB2YXIgbmV3Q2hpbGRyZW4gPSBbXTtcbiAgICAgICAgbm9kZS5vYnNlcnZlT25jZShcImxvYWRlZFwiLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHJlb3JkZXJlZENoaWxkcmVuID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgbmV3Q2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgICAgICAgcmVvcmRlcmVkQ2hpbGRyZW4uc2V0KGMuZ2V0UGF0aCgpLCBjKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FjaGVkQ2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgIHJlb3JkZXJlZENoaWxkcmVuLnNldChjLmdldFBhdGgoKSwgYyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG5vZGUuX2NoaWxkcmVuID0gcmVvcmRlcmVkQ2hpbGRyZW47XG4gICAgICAgICAgICB0aGlzLl9sb2FkZWRMaXN0ZW5lcigpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgbm9kZS5zZXRMb2FkZWQoZmFsc2UpO1xuICAgICAgICBub2RlLm9ic2VydmUoXCJjaGlsZF9hZGRlZFwiLCBmdW5jdGlvbiAobmV3Q2hpbGQpIHtcbiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2gobm9kZS5fY2hpbGRyZW4uZ2V0KG5ld0NoaWxkKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb3BzLm5vZGUubG9hZChudWxsLCB7IGN1cnNvcjogdGhpcy5fY3VycmVudEN1cnNvciB9KTtcbiAgICB9LFxuXG4gICAgd2lyZVJlbG9hZExpc3RlbmVyczogZnVuY3Rpb24gd2lyZVJlbG9hZExpc3RlbmVycygpIHtcbiAgICAgICAgdGhpcy53cmFwcGVkTG9hZGluZyA9IHRoaXMuX2xvYWRpbmdMaXN0ZW5lcjtcbiAgICAgICAgdGhpcy53cmFwcGVkTG9hZGVkID0gdGhpcy5fbG9hZGVkTGlzdGVuZXI7XG4gICAgICAgIHRoaXMucHJvcHMubm9kZS5vYnNlcnZlKFwibG9hZGluZ1wiLCB0aGlzLndyYXBwZWRMb2FkaW5nKTtcbiAgICAgICAgdGhpcy5wcm9wcy5ub2RlLm9ic2VydmUoXCJsb2FkZWRcIiwgdGhpcy53cmFwcGVkTG9hZGVkKTtcbiAgICB9LFxuICAgIHN0b3BSZWxvYWRMaXN0ZW5lcnM6IGZ1bmN0aW9uIHN0b3BSZWxvYWRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIHRoaXMucHJvcHMubm9kZS5zdG9wT2JzZXJ2aW5nKFwibG9hZGluZ1wiLCB0aGlzLndyYXBwZWRMb2FkaW5nKTtcbiAgICAgICAgdGhpcy5wcm9wcy5ub2RlLnN0b3BPYnNlcnZpbmcoXCJsb2FkZWRcIiwgdGhpcy53cmFwcGVkTG9hZGVkKTtcbiAgICB9LFxuXG4gICAgdG9nZ2xlU2VsZWN0b3I6IGZ1bmN0aW9uIHRvZ2dsZVNlbGVjdG9yKCkge1xuICAgICAgICAvLyBGb3JjZSByZWJ1aWxkIGVsZW1lbnRzXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2hvd1NlbGVjdG9yOiAhdGhpcy5zdGF0ZS5zaG93U2VsZWN0b3IsXG4gICAgICAgICAgICBzZWxlY3Rpb246IG5ldyBNYXAoKVxuICAgICAgICB9LCB0aGlzLnJlYnVpbGRMb2FkZWRFbGVtZW50cyk7XG4gICAgfSxcblxuICAgIHRvZ2dsZVNlbGVjdGlvbjogZnVuY3Rpb24gdG9nZ2xlU2VsZWN0aW9uKG5vZGUpIHtcbiAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHRoaXMuc3RhdGUuc2VsZWN0aW9uIHx8IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKHNlbGVjdGlvbi5nZXQobm9kZSkpIHNlbGVjdGlvblsnZGVsZXRlJ10obm9kZSk7ZWxzZSBzZWxlY3Rpb24uc2V0KG5vZGUsIHRydWUpO1xuICAgICAgICBpZiAodGhpcy5yZWZzLmFsbF9zZWxlY3RvcikgdGhpcy5yZWZzLmFsbF9zZWxlY3Rvci5zZXRDaGVja2VkKGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBzZWxlY3Rpb246IHNlbGVjdGlvblxuICAgICAgICB9LCB0aGlzLnJlYnVpbGRMb2FkZWRFbGVtZW50cyk7XG4gICAgfSxcblxuICAgIHNlbGVjdEFsbDogZnVuY3Rpb24gc2VsZWN0QWxsKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5yZWZzLmFsbF9zZWxlY3RvciAmJiAhdGhpcy5yZWZzLmFsbF9zZWxlY3Rvci5pc0NoZWNrZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGlvbjogbmV3IE1hcCgpIH0sIHRoaXMucmVidWlsZExvYWRlZEVsZW1lbnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgICAgICBfdGhpczIucHJvcHMubm9kZS5nZXRDaGlsZHJlbigpLmZvckVhY2goKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5maWx0ZXJOb2RlcyAmJiAhdGhpcy5wcm9wcy5maWx0ZXJOb2RlcyhjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQuaXNMZWFmKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5zZXQoY2hpbGQsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkuYmluZChfdGhpczIpKTtcbiAgICAgICAgICAgICAgICBpZiAoX3RoaXMyLnJlZnMuYWxsX3NlbGVjdG9yKSBfdGhpczIucmVmcy5hbGxfc2VsZWN0b3Iuc2V0Q2hlY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzZWxlY3Rpb246IHNlbGVjdGlvbiB9LCBfdGhpczIucmVidWlsZExvYWRlZEVsZW1lbnRzKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgYXBwbHlNdWx0aXBsZUFjdGlvbjogZnVuY3Rpb24gYXBwbHlNdWx0aXBsZUFjdGlvbihldikge1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGUuc2VsZWN0aW9uIHx8ICF0aGlzLnN0YXRlLnNlbGVjdGlvbi5zaXplKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFjdGlvbk5hbWUgPSBldi5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1hY3Rpb24nKTtcbiAgICAgICAgdmFyIGRtID0gdGhpcy5kbSB8fCBuZXcgUHlkaW9EYXRhTW9kZWwoKTtcbiAgICAgICAgZG0uc2V0Q29udGV4dE5vZGUodGhpcy5wcm9wcy5ub2RlKTtcbiAgICAgICAgdmFyIHNlbE5vZGVzID0gW107XG4gICAgICAgIHRoaXMuc3RhdGUuc2VsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24gKHYsIG5vZGUpIHtcbiAgICAgICAgICAgIHNlbE5vZGVzLnB1c2gobm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkbS5zZXRTZWxlY3RlZE5vZGVzKHNlbE5vZGVzKTtcbiAgICAgICAgdmFyIGEgPSB0aGlzLnByb3BzLnB5ZGlvLkNvbnRyb2xsZXIuZ2V0QWN0aW9uQnlOYW1lKGFjdGlvbk5hbWUpO1xuICAgICAgICBhLmZpcmVDb250ZXh0Q2hhbmdlKGRtLCB0cnVlLCB0aGlzLnByb3BzLnB5ZGlvLnVzZXIpO1xuICAgICAgICBhLmFwcGx5KFtkbV0pO1xuXG4gICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0sXG5cbiAgICBnZXRBY3Rpb25zRm9yTm9kZTogZnVuY3Rpb24gZ2V0QWN0aW9uc0Zvck5vZGUoZG0sIG5vZGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmNvbXB1dGVBY3Rpb25zRm9yTm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYWNoZUtleSA9IG5vZGUuaXNMZWFmKCkgPyAnZmlsZS0nICsgbm9kZS5nZXRBanhwTWltZSgpIDogJ2ZvbGRlcic7XG4gICAgICAgIHZhciBzZWxlY3Rpb25UeXBlID0gbm9kZS5pc0xlYWYoKSA/ICdmaWxlJyA6ICdkaXInO1xuICAgICAgICB2YXIgbm9kZUFjdGlvbnMgPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uc0NhY2hlW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgbm9kZUFjdGlvbnMgPSB0aGlzLmFjdGlvbnNDYWNoZVtjYWNoZUtleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkbS5zZXRTZWxlY3RlZE5vZGVzKFtub2RlXSk7XG4gICAgICAgICAgICB3aW5kb3cucHlkaW8uQ29udHJvbGxlci5hY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgYS5maXJlQ29udGV4dENoYW5nZShkbSwgdHJ1ZSwgd2luZG93LnB5ZGlvLnVzZXIpO1xuICAgICAgICAgICAgICAgIGlmIChhLmNvbnRleHQuc2VsZWN0aW9uICYmIGEuY29udGV4dC5hY3Rpb25CYXIgJiYgYS5zZWxlY3Rpb25Db250ZXh0W3NlbGVjdGlvblR5cGVdICYmICFhLmRlbnkgJiYgYS5vcHRpb25zLmljb25fY2xhc3MgJiYgKCF0aGlzLnByb3BzLmFjdGlvbkJhckdyb3VwcyB8fCB0aGlzLnByb3BzLmFjdGlvbkJhckdyb3Vwcy5pbmRleE9mKGEuY29udGV4dC5hY3Rpb25CYXJHcm91cCkgIT09IC0xKSAmJiAoIWEuc2VsZWN0aW9uQ29udGV4dC5hbGxvd2VkTWltZXMubGVuZ3RoIHx8IGEuc2VsZWN0aW9uQ29udGV4dC5hbGxvd2VkTWltZXMuaW5kZXhPZihub2RlLmdldEFqeHBNaW1lKCkpICE9PSAtMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZUFjdGlvbnMucHVzaChhKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUuaXNMZWFmKCkgJiYgYS5zZWxlY3Rpb25Db250ZXh0LnVuaXF1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uc0NhY2hlLm11bHRpcGxlLnNldChhLm9wdGlvbnMubmFtZSwgYSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc0NhY2hlW2NhY2hlS2V5XSA9IG5vZGVBY3Rpb25zO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlQWN0aW9ucztcbiAgICB9LFxuXG4gICAgdXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQ6IGZ1bmN0aW9uIHVwZGF0ZUluZmluaXRlQ29udGFpbmVySGVpZ2h0KCkge1xuICAgICAgICB2YXIgcmV0cmllcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzBdO1xuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRhaW5lckhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGFpbmVySGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5yZWZzLmluZmluaXRlUGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNvbnRhaW5lckhlaWdodCA9IHRoaXMucmVmcy5pbmZpbml0ZVBhcmVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmhlaWdodEF1dG9XaXRoTWF4KSB7XG4gICAgICAgICAgICB2YXIgbnVtYmVyID0gdGhpcy5pbmRleGVkRWxlbWVudHMgPyB0aGlzLmluZGV4ZWRFbGVtZW50cy5sZW5ndGggOiB0aGlzLnByb3BzLm5vZGUuZ2V0Q2hpbGRyZW4oKS5zaXplO1xuICAgICAgICAgICAgdmFyIGVsZW1lbnRIZWlnaHQgPSB0aGlzLnN0YXRlLmVsZW1lbnRIZWlnaHQgPyB0aGlzLnN0YXRlLmVsZW1lbnRIZWlnaHQgOiB0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQ7XG4gICAgICAgICAgICBjb250YWluZXJIZWlnaHQgPSBNYXRoLm1pbihudW1iZXIgKiBlbGVtZW50SGVpZ2h0LCB0aGlzLnByb3BzLmhlaWdodEF1dG9XaXRoTWF4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbnRhaW5lckhlaWdodCAmJiAhcmV0cmllcykge1xuICAgICAgICAgICAgZ2xvYmFsLnNldFRpbWVvdXQoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUluZmluaXRlQ29udGFpbmVySGVpZ2h0KHRydWUpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSwgNTApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb250YWluZXJIZWlnaHQ6IGNvbnRhaW5lckhlaWdodCB9KTtcbiAgICB9LFxuXG4gICAgY29tcHV0ZUVsZW1lbnRIZWlnaHRSZXNwb25zaXZlOiBmdW5jdGlvbiBjb21wdXRlRWxlbWVudEhlaWdodFJlc3BvbnNpdmUoKSB7XG4gICAgICAgIHZhciBicmVha3MgPSB0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQ7XG4gICAgICAgIGlmICghKGJyZWFrcyBpbnN0YW5jZW9mIE9iamVjdCkpIHtcbiAgICAgICAgICAgIGJyZWFrcyA9IHtcbiAgICAgICAgICAgICAgICBcIm1pbi13aWR0aDo0ODBweFwiOiB0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQsXG4gICAgICAgICAgICAgICAgXCJtYXgtd2lkdGg6NDgwcHhcIjogT2JqZWN0LmtleXModGhpcy5wcm9wcy50YWJsZUtleXMpLmxlbmd0aCAqIDI0ICsgMzNcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIGJyZWFrcykge1xuICAgICAgICAgICAgICAgIGlmIChicmVha3MuaGFzT3duUHJvcGVydHkoaykgJiYgd2luZG93Lm1hdGNoTWVkaWEoJygnICsgayArICcpJykubWF0Y2hlcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYnJlYWtzW2tdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciB3aWR0aCA9IERPTVV0aWxzLmdldFZpZXdwb3J0V2lkdGgoKTtcbiAgICAgICAgICAgIGlmICh3aWR0aCA8IDQ4MCkgcmV0dXJuIGJyZWFrc1tcIm1heC13aWR0aDo0ODBweFwiXTtlbHNlIHJldHVybiBicmVha3NbXCJtYXgtd2lkdGg6NDgwcHhcIl07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDUwO1xuICAgIH0sXG5cbiAgICB1cGRhdGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZTogZnVuY3Rpb24gdXBkYXRlRWxlbWVudEhlaWdodFJlc3BvbnNpdmUoKSB7XG4gICAgICAgIHZhciBuZXdIID0gdGhpcy5jb21wdXRlRWxlbWVudEhlaWdodFJlc3BvbnNpdmUoKTtcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlIHx8ICF0aGlzLnN0YXRlLmVsZW1lbnRIZWlnaHQgfHwgdGhpcy5zdGF0ZS5lbGVtZW50SGVpZ2h0ICE9IG5ld0gpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlbGVtZW50SGVpZ2h0OiBuZXdIIH0sIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuaGVpZ2h0QXV0b1dpdGhNYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIHBhdGNoSW5maW5pdGVHcmlkOiBmdW5jdGlvbiBwYXRjaEluZmluaXRlR3JpZChlbHMpIHtcbiAgICAgICAgaWYgKHRoaXMucmVmcy5pbmZpbml0ZSAmJiBlbHMgPiAxKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnMuaW5maW5pdGUuc3RhdGUuaW5maW5pdGVDb21wdXRlci5fX3Byb3RvX18uZ2V0RGlzcGxheUluZGV4U3RhcnQgPSBmdW5jdGlvbiAod2luZG93VG9wKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVscyAqIE1hdGguZmxvb3Iod2luZG93VG9wIC8gdGhpcy5oZWlnaHREYXRhIC8gZWxzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnJlZnMuaW5maW5pdGUuc3RhdGUuaW5maW5pdGVDb21wdXRlci5fX3Byb3RvX18uZ2V0RGlzcGxheUluZGV4RW5kID0gZnVuY3Rpb24gKHdpbmRvd0JvdHRvbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlbHMgKiBNYXRoLmNlaWwod2luZG93Qm90dG9tIC8gdGhpcy5oZWlnaHREYXRhIC8gZWxzKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5kZWxheUluaXRpYWxMb2FkKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczMuX2xvYWROb2RlSWZOb3RMb2FkZWQoKTtcbiAgICAgICAgICAgIH0sIHRoaXMucHJvcHMuZGVsYXlJbml0aWFsTG9hZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkTm9kZUlmTm90TG9hZGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXRjaEluZmluaXRlR3JpZCh0aGlzLnByb3BzLmVsZW1lbnRzUGVyTGluZSk7XG4gICAgICAgIGlmICh0aGlzLnJlZnMuaW5maW5pdGVQYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9wcy5oZWlnaHRBdXRvV2l0aE1heCAmJiAhdGhpcy5wcm9wcy5leHRlcm5hbFJlc2l6ZSkge1xuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmF0dGFjaEV2ZW50KCdvbnJlc2l6ZScsIHRoaXMudXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5hdXRvUmVmcmVzaCkge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoSW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwodGhpcy5yZWxvYWQsIHRoaXMucHJvcHMuYXV0b1JlZnJlc2gpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9ic2VydmVOb2RlUmVsb2FkKSB7XG4gICAgICAgICAgICB0aGlzLndpcmVSZWxvYWRMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5lbGVtZW50SGVpZ2h0IGluc3RhbmNlb2YgT2JqZWN0IHx8IHRoaXMucHJvcHMudGFibGVLZXlzKSB7XG4gICAgICAgICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hdHRhY2hFdmVudCgnb25yZXNpemUnLCB0aGlzLnVwZGF0ZUVsZW1lbnRIZWlnaHRSZXNwb25zaXZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudXBkYXRlRWxlbWVudEhlaWdodFJlc3BvbnNpdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5vYnNlcnZlKCdyb290X25vZGVfY2hhbmdlZCcsIGZ1bmN0aW9uIChyb290Tm9kZSkge1xuICAgICAgICAgICAgX3RoaXMzLnJvb3ROb2RlQ2hhbmdlZEZsYWcgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9wcy5kYXRhTW9kZWwub2JzZXJ2ZSgnc2VsZWN0aW9uX2NoYW5nZWQnLCAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIHZhciBzZWxlY3RlZE5vZGVzID0gdGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0U2VsZWN0ZWROb2RlcygpO1xuICAgICAgICAgICAgc2VsZWN0ZWROb2Rlcy5tYXAoZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24uc2V0KG4sIHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2VsZWN0aW9uOiBzZWxlY3Rpb24gfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzNC5yZWJ1aWxkTG9hZGVkRWxlbWVudHMoKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWROb2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM0LnNjcm9sbFRvVmlldyhzZWxlY3RlZE5vZGVzWzBdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmhlaWdodEF1dG9XaXRoTWF4KSB7XG4gICAgICAgICAgICBpZiAod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVJbmZpbml0ZUNvbnRhaW5lckhlaWdodCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5kZXRhY2hFdmVudCgnb25yZXNpemUnLCB0aGlzLnVwZGF0ZUluZmluaXRlQ29udGFpbmVySGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy5lbGVtZW50SGVpZ2h0IGluc3RhbmNlb2YgT2JqZWN0IHx8IHRoaXMucHJvcHMudGFibGVLZXlzKSB7XG4gICAgICAgICAgICBpZiAod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5kZXRhY2hFdmVudCgncmVzaXplJywgdGhpcy51cGRhdGVFbGVtZW50SGVpZ2h0UmVzcG9uc2l2ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVmcmVzaEludGVydmFsKSB7XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLnJlZnJlc2hJbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub2JzZXJ2ZU5vZGVSZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcFJlbG9hZExpc3RlbmVycygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZU5vZGVDaGlsZHJlbih0aGlzLnByb3BzLm5vZGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG4gICAgICAgIGlmICghdGhpcy5yb290Tm9kZUNoYW5nZWRGbGFnICYmIHByZXZQcm9wcy5ub2RlICYmIHRoaXMucHJvcHMubm9kZSAmJiBwcmV2UHJvcHMubm9kZS5nZXRQYXRoKCkgPT09IHRoaXMucHJvcHMubm9kZS5nZXRQYXRoKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sb2FkTm9kZUlmTm90TG9hZGVkKCk7XG4gICAgICAgIHRoaXMucm9vdE5vZGVDaGFuZ2VkRmxhZyA9IGZhbHNlO1xuICAgIH0sXG5cbiAgICBvblNjcm9sbDogZnVuY3Rpb24gb25TY3JvbGwoc2Nyb2xsVG9wKSB7XG5cbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLnBhc3NTY3JvbGxpbmdTdGF0ZVRvQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBNYWludGFpbnMgYSBzZXJpZXMgb2YgdGltZW91dHMgdG8gc2V0IHRoaXMuc3RhdGUuaXNTY3JvbGxpbmdcbiAgICAgICAgLy8gdG8gYmUgdHJ1ZSB3aGVuIHRoZSBlbGVtZW50IGlzIHNjcm9sbGluZy5cblxuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zY3JvbGxUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zdGF0ZS5zY3JvbGxUaW1lb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0aGF0ID0gdGhpcyxcbiAgICAgICAgICAgIHNjcm9sbFRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoYXQuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzY3JvbGxUaW1lb3V0OiB1bmRlZmluZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAxNTApO1xuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgaXNTY3JvbGxpbmc6IHRydWUsXG4gICAgICAgICAgICBzY3JvbGxUaW1lb3V0OiBzY3JvbGxUaW1lb3V0XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICBzY3JvbGxUb0xhc3Q6IGZ1bmN0aW9uIHNjcm9sbFRvTGFzdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5kZXhlZEVsZW1lbnRzICYmIHRoaXMuaW5kZXhlZEVsZW1lbnRzW3RoaXMuaW5kZXhlZEVsZW1lbnRzLmxlbmd0aCAtIDFdLm5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9WaWV3KHRoaXMuaW5kZXhlZEVsZW1lbnRzW3RoaXMuaW5kZXhlZEVsZW1lbnRzLmxlbmd0aCAtIDFdLm5vZGUpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIHNjcm9sbFRvVmlldzogZnVuY3Rpb24gc2Nyb2xsVG9WaWV3KG5vZGUpIHtcbiAgICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLmluZGV4ZWRFbGVtZW50cyB8fCAhdGhpcy5yZWZzLmluZmluaXRlIHx8ICF0aGlzLnJlZnMuaW5maW5pdGUuc2Nyb2xsYWJsZSkgcmV0dXJuO1xuICAgICAgICB2YXIgc2Nyb2xsYWJsZSA9IHRoaXMucmVmcy5pbmZpbml0ZS5zY3JvbGxhYmxlO1xuICAgICAgICB2YXIgdmlzaWJsZUZyYW1lID0ge1xuICAgICAgICAgICAgdG9wOiBzY3JvbGxhYmxlLnNjcm9sbFRvcCArIHRoaXMucHJvcHMuZWxlbWVudEhlaWdodCAvIDIsXG4gICAgICAgICAgICBib3R0b206IHNjcm9sbGFibGUuc2Nyb2xsVG9wICsgdGhpcy5zdGF0ZS5jb250YWluZXJIZWlnaHQgLSB0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQgLyAyXG4gICAgICAgIH07XG4gICAgICAgIHZhciByZWFsTWF4U2Nyb2xsVG9wID0gdGhpcy5pbmRleGVkRWxlbWVudHMubGVuZ3RoICogdGhpcy5wcm9wcy5lbGVtZW50SGVpZ2h0IC0gdGhpcy5zdGF0ZS5jb250YWluZXJIZWlnaHQ7XG5cbiAgICAgICAgdmFyIHBvc2l0aW9uID0gLTE7XG4gICAgICAgIHRoaXMuaW5kZXhlZEVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24gKGUsIGspIHtcbiAgICAgICAgICAgIGlmIChlLm5vZGUgJiYgZS5ub2RlID09PSBub2RlKSBwb3NpdGlvbiA9IGs7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocG9zaXRpb24gPT09IC0xKSByZXR1cm47XG4gICAgICAgIHZhciBlbGVtZW50SGVpZ2h0ID0gdGhpcy5wcm9wcy5lbGVtZW50SGVpZ2h0O1xuICAgICAgICB2YXIgc2Nyb2xsVGFyZ2V0ID0gcG9zaXRpb24gKiBlbGVtZW50SGVpZ2h0O1xuXG4gICAgICAgIGlmIChzY3JvbGxUYXJnZXQgPiB2aXNpYmxlRnJhbWUudG9wICYmIHNjcm9sbFRhcmdldCA8IHZpc2libGVGcmFtZS5ib3R0b20pIHtcbiAgICAgICAgICAgIC8vIGFscmVhZHkgdmlzaWJsZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzY3JvbGxUYXJnZXQgPj0gdmlzaWJsZUZyYW1lLmJvdHRvbSkge1xuICAgICAgICAgICAgc2Nyb2xsVGFyZ2V0IC09IHRoaXMuc3RhdGUuY29udGFpbmVySGVpZ2h0IC0gZWxlbWVudEhlaWdodCAqIDI7XG4gICAgICAgIH1cbiAgICAgICAgc2Nyb2xsVGFyZ2V0ID0gTWF0aC5taW4oc2Nyb2xsVGFyZ2V0LCByZWFsTWF4U2Nyb2xsVG9wKTtcbiAgICAgICAgc2Nyb2xsYWJsZS5zY3JvbGxUb3AgPSBzY3JvbGxUYXJnZXQ7XG4gICAgICAgIGlmICh0aGlzLl9tYW51YWxTY3JvbGxQZSkgdGhpcy5fbWFudWFsU2Nyb2xsUGUuc3RvcCgpO1xuICAgICAgICBpZiAoc2Nyb2xsYWJsZS5zY3JvbGxIZWlnaHQgPCBzY3JvbGxUYXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX21hbnVhbFNjcm9sbFBlID0gbmV3IFBlcmlvZGljYWxFeGVjdXRlcihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsYWJsZS5zY3JvbGxUb3AgPSBzY3JvbGxUYXJnZXQ7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGFibGUuc2Nyb2xsSGVpZ2h0ID49IHNjcm9sbFRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczUuX21hbnVhbFNjcm9sbFBlLnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM1Ll9tYW51YWxTY3JvbGxQZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgLjI1KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBidWlsZEVsZW1lbnRzRnJvbU5vZGVFbnRyaWVzOiBmdW5jdGlvbiBidWlsZEVsZW1lbnRzRnJvbU5vZGVFbnRyaWVzKG5vZGVFbnRyaWVzLCBzaG93U2VsZWN0b3IpIHtcblxuICAgICAgICB2YXIgY29tcG9uZW50cyA9IFtdLFxuICAgICAgICAgICAgaW5kZXggPSAwO1xuICAgICAgICB2YXIgbm9kZUVudHJpZXNMZW5ndGggPSBub2RlRW50cmllcy5sZW5ndGg7XG4gICAgICAgIG5vZGVFbnRyaWVzLmZvckVhY2goKGZ1bmN0aW9uIChlbnRyeSkge1xuICAgICAgICAgICAgdmFyIGRhdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoZW50cnkucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogZW50cnkubm9kZSxcbiAgICAgICAgICAgICAgICAgICAga2V5OiBlbnRyeS5ub2RlLmdldFBhdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGVudHJ5Lm5vZGUuZ2V0UGF0aCgpLFxuICAgICAgICAgICAgICAgICAgICBtYWluSWNvbjogU2ltcGxlTGlzdC5QQVJFTlRfRk9MREVSX0lDT04sXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZTogXCIuLlwiLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwibGlzdC1wYXJlbnQtbm9kZVwiLFxuICAgICAgICAgICAgICAgICAgICBzZWNvbmRMaW5lOiB0aGlzLmNvbnRleHQuZ2V0TWVzc2FnZSgncmVhY3QuMScpLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLmNsaWNrUm93LFxuICAgICAgICAgICAgICAgICAgICBvbkRvdWJsZUNsaWNrOiB0aGlzLmRvdWJsZUNsaWNrUm93LFxuICAgICAgICAgICAgICAgICAgICBzaG93U2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvckRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBub0hvdmVyOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuZW50cnlSZW5kZXJQYXJlbnRJY29uICYmICF0aGlzLnByb3BzLnRhYmxlS2V5cykge1xuICAgICAgICAgICAgICAgICAgICBkYXRhWydpY29uQ2VsbCddID0gdGhpcy5wcm9wcy5lbnRyeVJlbmRlclBhcmVudEljb24oZW50cnkubm9kZSwgZW50cnkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbJ21haW5JY29uJ10gPSBTaW1wbGVMaXN0LlBBUkVOVF9GT0xERVJfSUNPTjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuZWxlbWVudFN0eWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbJ3N0eWxlJ10gPSB0aGlzLnByb3BzLmVsZW1lbnRTdHlsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMucGFzc1Njcm9sbGluZ1N0YXRlVG9DaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBkYXRhWydwYXJlbnRJc1Njcm9sbGluZyddID0gdGhpcy5zdGF0ZS5pc1Njcm9sbGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29tcG9uZW50cy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoX0xpc3RFbnRyeS5MaXN0RW50cnksIGRhdGEpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnkuZ3JvdXBIZWFkZXIpIHtcbiAgICAgICAgICAgICAgICB2YXIgaWQgPSBlbnRyeS5ncm91cEhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lID0gZW50cnkuZ3JvdXBIZWFkZXJMYWJlbDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5lbnRyeVJlbmRlckdyb3VwSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZSA9IHRoaXMucHJvcHMuZW50cnlSZW5kZXJHcm91cEhlYWRlcihpZCwgZmlyc3RMaW5lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAga2V5OiBlbnRyeS5ncm91cEhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICBtYWluSWNvbjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RMaW5lOiBmaXJzdExpbmUsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2xpc3QtZ3JvdXAtaGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgc2hvd1NlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3JEaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbm9Ib3ZlcjogdHJ1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMucGFzc1Njcm9sbGluZ1N0YXRlVG9DaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBkYXRhWydwYXJlbnRJc1Njcm9sbGluZyddID0gdGhpcy5zdGF0ZS5pc1Njcm9sbGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29tcG9uZW50cy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoX0xpc3RFbnRyeS5MaXN0RW50cnksIGRhdGEpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZTogZW50cnkubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5jbGlja1JvdyxcbiAgICAgICAgICAgICAgICAgICAgb25Eb3VibGVDbGljazogdGhpcy5kb3VibGVDbGlja1JvdyxcbiAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Q6IHRoaXMudG9nZ2xlU2VsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IGVudHJ5Lm5vZGUuZ2V0UGF0aCgpLFxuICAgICAgICAgICAgICAgICAgICBpZDogZW50cnkubm9kZS5nZXRQYXRoKCksXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckljb246IHRoaXMucHJvcHMuZW50cnlSZW5kZXJJY29uLFxuICAgICAgICAgICAgICAgICAgICByZW5kZXJGaXJzdExpbmU6IHRoaXMucHJvcHMuZW50cnlSZW5kZXJGaXJzdExpbmUsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlclNlY29uZExpbmU6IHRoaXMucHJvcHMuZW50cnlSZW5kZXJTZWNvbmRMaW5lLFxuICAgICAgICAgICAgICAgICAgICByZW5kZXJUaGlyZExpbmU6IHRoaXMucHJvcHMuZW50cnlSZW5kZXJUaGlyZExpbmUsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckFjdGlvbnM6IHRoaXMucHJvcHMuZW50cnlSZW5kZXJBY3Rpb25zLFxuICAgICAgICAgICAgICAgICAgICBzaG93U2VsZWN0b3I6IHNob3dTZWxlY3RvcixcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5zZWxlY3Rpb24gPyB0aGlzLnN0YXRlLnNlbGVjdGlvbi5nZXQoZW50cnkubm9kZSkgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogUmVhY3QuY3JlYXRlRWxlbWVudChfdmlld3NTaW1wbGVSZWFjdEFjdGlvbkJhcjJbJ2RlZmF1bHQnXSwgeyBub2RlOiBlbnRyeS5ub2RlLCBhY3Rpb25zOiBlbnRyeS5hY3Rpb25zLCBkYXRhTW9kZWw6IHRoaXMuZG0gfSksXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yRGlzYWJsZWQ6ICEodGhpcy5wcm9wcy5lbnRyeUVuYWJsZVNlbGVjdG9yID8gdGhpcy5wcm9wcy5lbnRyeUVuYWJsZVNlbGVjdG9yKGVudHJ5Lm5vZGUpIDogZW50cnkubm9kZS5pc0xlYWYoKSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGRhdGFbJ2lzRmlyc3QnXSA9IGluZGV4ID09PSAwO1xuICAgICAgICAgICAgICAgIGRhdGFbJ2lzTGFzdCddID0gaW5kZXggPT09IG5vZGVFbnRyaWVzTGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmVsZW1lbnRTdHlsZSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhWydzdHlsZSddID0gdGhpcy5wcm9wcy5lbGVtZW50U3R5bGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnBhc3NTY3JvbGxpbmdTdGF0ZVRvQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVsncGFyZW50SXNTY3JvbGxpbmcnXSA9IHRoaXMuc3RhdGUuaXNTY3JvbGxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnJlbmRlckN1c3RvbUVudHJ5KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wdXNoKHRoaXMucHJvcHMucmVuZGVyQ3VzdG9tRW50cnkoZGF0YSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9wcy50YWJsZUtleXMpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5kZWZhdWx0R3JvdXBCeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsndGFibGVLZXlzJ10gPSBMYW5nVXRpbHMuZGVlcENvcHkodGhpcy5wcm9wcy50YWJsZUtleXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGRhdGFbJ3RhYmxlS2V5cyddW3RoaXMucHJvcHMuZGVmYXVsdEdyb3VwQnldO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsndGFibGVLZXlzJ10gPSB0aGlzLnByb3BzLnRhYmxlS2V5cztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChfVGFibGVMaXN0RW50cnkyWydkZWZhdWx0J10sIGRhdGEpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KF9Db25maWd1cmFibGVMaXN0RW50cnkyWydkZWZhdWx0J10sIGRhdGEpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuXG4gICAgICAgIHJldHVybiBjb21wb25lbnRzO1xuICAgIH0sXG5cbiAgICBidWlsZEVsZW1lbnRzOiBmdW5jdGlvbiBidWlsZEVsZW1lbnRzKHN0YXJ0LCBlbmQsIG5vZGUsIHNob3dTZWxlY3Rvcikge1xuICAgICAgICB2YXIgX3RoaXM2ID0gdGhpcztcblxuICAgICAgICB2YXIgdGhlTm9kZSA9IHRoaXMucHJvcHMubm9kZTtcbiAgICAgICAgaWYgKG5vZGUpIHRoZU5vZGUgPSBub2RlO1xuICAgICAgICB2YXIgdGhlU2hvd1NlbGVjdG9yID0gdGhpcy5zdGF0ZSAmJiB0aGlzLnN0YXRlLnNob3dTZWxlY3RvcjtcbiAgICAgICAgaWYgKHNob3dTZWxlY3RvciAhPT0gdW5kZWZpbmVkKSB0aGVTaG93U2VsZWN0b3IgPSBzaG93U2VsZWN0b3I7XG5cbiAgICAgICAgaWYgKCF0aGlzLmluZGV4ZWRFbGVtZW50cyB8fCB0aGlzLmluZGV4ZWRFbGVtZW50cy5sZW5ndGggIT09IHRoZU5vZGUuZ2V0Q2hpbGRyZW4oKS5zaXplKSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzNi5pbmRleGVkRWxlbWVudHMgPSBbXTtcbiAgICAgICAgICAgICAgICB2YXIgZ3JvdXBCeSA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBCeUxhYmVsID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBncm91cHMgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwS2V5cyA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBMYWJlbHMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKF90aGlzNi5wcm9wcy5kZWZhdWx0R3JvdXBCeSkge1xuICAgICAgICAgICAgICAgICAgICBncm91cEJ5ID0gX3RoaXM2LnByb3BzLmRlZmF1bHRHcm91cEJ5O1xuICAgICAgICAgICAgICAgICAgICBncm91cEJ5TGFiZWwgPSBfdGhpczYucHJvcHMuZ3JvdXBCeUxhYmVsIHx8IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBncm91cHMgPSB7fSwgZ3JvdXBLZXlzID0gW10sIGdyb3VwTGFiZWxzID0ge307XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFfdGhpczYucHJvcHMuc2tpcFBhcmVudE5hdmlnYXRpb24gJiYgdGhlTm9kZS5nZXRQYXJlbnQoKSAmJiAoX3RoaXM2LnByb3BzLmRhdGFNb2RlbC5nZXRDb250ZXh0Tm9kZSgpICE9PSB0aGVOb2RlIHx8IF90aGlzNi5wcm9wcy5za2lwSW50ZXJuYWxEYXRhTW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzNi5pbmRleGVkRWxlbWVudHMucHVzaCh7IG5vZGU6IHRoZU5vZGUuZ2V0UGFyZW50KCksIHBhcmVudDogdHJ1ZSwgYWN0aW9uczogbnVsbCB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGVOb2RlLmdldENoaWxkcmVuKCkuZm9yRWFjaCgoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5nZXRNZXRhZGF0YSgpLmhhcygnY3Vyc29yJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZEN1cnNvciA9IHBhcnNlSW50KGNoaWxkLmdldE1ldGFkYXRhKCkuZ2V0KCdjdXJzb3InKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Q3Vyc29yID0gTWF0aC5tYXgodGhpcy5fY3VycmVudEN1cnNvciA/IHRoaXMuX2N1cnJlbnRDdXJzb3IgOiAwLCBjaGlsZEN1cnNvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuZmlsdGVyTm9kZXMgJiYgIXRoaXMucHJvcHMuZmlsdGVyTm9kZXMoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG5vZGVBY3Rpb25zID0gdGhpcy5nZXRBY3Rpb25zRm9yTm9kZSh0aGlzLmRtLCBjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChncm91cEJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBWYWx1ZSA9IGNoaWxkLmdldE1ldGFkYXRhKCkuZ2V0KGdyb3VwQnkpIHx8ICdOL0EnO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFncm91cHNbZ3JvdXBWYWx1ZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHNbZ3JvdXBWYWx1ZV0gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cEtleXMucHVzaChncm91cFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cEJ5TGFiZWwgJiYgY2hpbGQuZ2V0TWV0YWRhdGEoKS5oYXMoZ3JvdXBCeUxhYmVsKSAmJiAhZ3JvdXBMYWJlbHNbZ3JvdXBWYWx1ZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cExhYmVsc1tncm91cFZhbHVlXSA9IGNoaWxkLmdldE1ldGFkYXRhKCkuZ2V0KGdyb3VwQnlMYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cHNbZ3JvdXBWYWx1ZV0ucHVzaCh7IG5vZGU6IGNoaWxkLCBwYXJlbnQ6IGZhbHNlLCBhY3Rpb25zOiBub2RlQWN0aW9ucyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5kZXhlZEVsZW1lbnRzLnB1c2goeyBub2RlOiBjaGlsZCwgcGFyZW50OiBmYWxzZSwgYWN0aW9uczogbm9kZUFjdGlvbnMgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzNikpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGdyb3VwQnkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBLZXlzID0gZ3JvdXBLZXlzLnNvcnQoKTtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBLZXlzLm1hcCgoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYWJlbCA9IGs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBMYWJlbHNba10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IGdyb3VwTGFiZWxzW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLnJlbmRlckdyb3VwTGFiZWxzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSB0aGlzLnByb3BzLnJlbmRlckdyb3VwTGFiZWxzKGdyb3VwQnksIGspO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRleGVkRWxlbWVudHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cEhlYWRlcjogayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cEhlYWRlckxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRleGVkRWxlbWVudHMgPSB0aGlzLmluZGV4ZWRFbGVtZW50cy5jb25jYXQoZ3JvdXBzW2tdKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuYmluZChfdGhpczYpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5zb3J0aW5nSW5mbyAmJiAhdGhpcy5yZW1vdGVTb3J0aW5nSW5mbygpKSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBfc3RhdGUkc29ydGluZ0luZm8yID0gX3RoaXM2LnN0YXRlLnNvcnRpbmdJbmZvO1xuICAgICAgICAgICAgICAgIHZhciBhdHRyaWJ1dGUgPSBfc3RhdGUkc29ydGluZ0luZm8yLmF0dHJpYnV0ZTtcbiAgICAgICAgICAgICAgICB2YXIgZGlyZWN0aW9uID0gX3N0YXRlJHNvcnRpbmdJbmZvMi5kaXJlY3Rpb247XG4gICAgICAgICAgICAgICAgdmFyIHNvcnRUeXBlID0gX3N0YXRlJHNvcnRpbmdJbmZvMi5zb3J0VHlwZTtcblxuICAgICAgICAgICAgICAgIHZhciBzb3J0RnVuY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKHNvcnRUeXBlID09PSAnZmlsZS1uYXR1cmFsJykge1xuICAgICAgICAgICAgICAgICAgICBzb3J0RnVuY3Rpb24gPSBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGIucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbm9kZUEgPSBhLm5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbm9kZUIgPSBiLm5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWN5Y2xlIGFsd2F5cyBsYXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZUEuaXNSZWN5Y2xlKCkpIHJldHVybiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGVCLmlzUmVjeWNsZSgpKSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBGb2xkZXJzIGZpcnN0XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYUxlYWYgPSBub2RlQS5pc0xlYWYoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiTGVhZiA9IG5vZGVCLmlzTGVhZigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcyA9IGFMZWFmICYmICFiTGVhZiA/IDEgOiAhYUxlYWYgJiYgYkxlYWYgPyAtMSA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9PSAwKSByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gbm9kZUEuZ2V0TGFiZWwoKS5sb2NhbGVDb21wYXJlKG5vZGVCLmdldExhYmVsKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzb3J0RnVuY3Rpb24gPSBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFNZXRhID0gYS5ub2RlLmdldE1ldGFkYXRhKCkuZ2V0KGF0dHJpYnV0ZSkgfHwgXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiTWV0YSA9IGIubm9kZS5nZXRNZXRhZGF0YSgpLmdldChhdHRyaWJ1dGUpIHx8IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvcnRUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFNZXRhID0gcGFyc2VGbG9hdChhTWV0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYk1ldGEgPSBwYXJzZUZsb2F0KGJNZXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBkaXJlY3Rpb24gPT09ICdhc2MnID8gYU1ldGEgLSBiTWV0YSA6IGJNZXRhIC0gYU1ldGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNvcnRUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGRpcmVjdGlvbiA9PT0gJ2FzYycgPyBhTWV0YS5sb2NhbGVDb21wYXJlKGJNZXRhKSA6IGJNZXRhLmxvY2FsZUNvbXBhcmUoYU1ldGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc29ydCBieSBsYWJlbCB0byBtYWtlIGl0IHN0YWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYWJDb21wID0gYS5ub2RlLmdldExhYmVsKCkubG9jYWxlQ29tcGFyZShiLm5vZGUuZ2V0TGFiZWwoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gZGlyZWN0aW9uID09PSAnYXNjJyA/IGxhYkNvbXAgOiAtbGFiQ29tcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF90aGlzNi5pbmRleGVkRWxlbWVudHMuc29ydChzb3J0RnVuY3Rpb24pO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmVsZW1lbnRQZXJMaW5lID4gMSkge1xuICAgICAgICAgICAgZW5kID0gZW5kICogdGhpcy5wcm9wcy5lbGVtZW50UGVyTGluZTtcbiAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnQgKiB0aGlzLnByb3BzLmVsZW1lbnRQZXJMaW5lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4ZWRFbGVtZW50cy5zbGljZShzdGFydCwgZW5kKTtcbiAgICB9LFxuXG4gICAgcmVidWlsZExvYWRlZEVsZW1lbnRzOiBmdW5jdGlvbiByZWJ1aWxkTG9hZGVkRWxlbWVudHMoKSB7XG4gICAgICAgIHZhciBuZXdFbGVtZW50cyA9IHRoaXMuYnVpbGRFbGVtZW50cygwLCBNYXRoLm1heCh0aGlzLnN0YXRlLmVsZW1lbnRzLmxlbmd0aCwgdGhpcy5wcm9wcy5pbmZpbml0ZVNsaWNlQ291bnQpKTtcbiAgICAgICAgdmFyIGluZmluaXRlTG9hZEJlZ2luQm90dG9tT2Zmc2V0ID0gbmV3RWxlbWVudHMubGVuZ3RoID8gMjAwIDogMDtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBlbGVtZW50czogbmV3RWxlbWVudHMsXG4gICAgICAgICAgICBpbmZpbml0ZUxvYWRCZWdpbkJvdHRvbU9mZnNldDogaW5maW5pdGVMb2FkQmVnaW5Cb3R0b21PZmZzZXRcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXBkYXRlSW5maW5pdGVDb250YWluZXJIZWlnaHQoKTtcbiAgICB9LFxuXG4gICAgaGFuZGxlSW5maW5pdGVMb2FkOiBmdW5jdGlvbiBoYW5kbGVJbmZpbml0ZUxvYWQoKSB7XG4gICAgICAgIHZhciBlbGVtTGVuZ3RoID0gdGhpcy5zdGF0ZS5lbGVtZW50cy5sZW5ndGg7XG4gICAgICAgIHZhciBuZXdFbGVtZW50cyA9IHRoaXMuYnVpbGRFbGVtZW50cyhlbGVtTGVuZ3RoLCBlbGVtTGVuZ3RoICsgdGhpcy5wcm9wcy5pbmZpbml0ZVNsaWNlQ291bnQpO1xuICAgICAgICB2YXIgaW5maW5pdGVMb2FkQmVnaW5Cb3R0b21PZmZzZXQgPSBuZXdFbGVtZW50cy5sZW5ndGggPyAyMDAgOiAwO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGlzSW5maW5pdGVMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVsZW1lbnRzOiB0aGlzLnN0YXRlLmVsZW1lbnRzLmNvbmNhdChuZXdFbGVtZW50cyksXG4gICAgICAgICAgICBpbmZpbml0ZUxvYWRCZWdpbkJvdHRvbU9mZnNldDogaW5maW5pdGVMb2FkQmVnaW5Cb3R0b21PZmZzZXRcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEV4dHJhY3QgcmVtb3RlIHNvcnRpbmcgaW5mbyBmcm9tIGN1cnJlbnQgbm9kZSBtZXRhZGF0YVxuICAgICAqL1xuICAgIHJlbW90ZVNvcnRpbmdJbmZvOiBmdW5jdGlvbiByZW1vdGVTb3J0aW5nSW5mbygpIHtcbiAgICAgICAgdmFyIG1ldGEgPSB0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoJ3BhZ2luYXRpb25EYXRhJyk7XG4gICAgICAgIGlmIChtZXRhICYmIG1ldGEuZ2V0KCd0b3RhbCcpID4gMSAmJiBtZXRhLmhhcygncmVtb3RlX29yZGVyJykpIHtcbiAgICAgICAgICAgIHZhciBjb2wgPSBtZXRhLmdldCgnY3VycmVudE9yZGVyQ29sJyk7XG4gICAgICAgICAgICB2YXIgZGlyID0gbWV0YS5nZXQoJ2N1cnJlbnRPcmRlckRpcicpO1xuICAgICAgICAgICAgaWYgKGNvbCAmJiBkaXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICByZW1vdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogY29sLFxuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGRpclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcblxuICAgIHJlbmRlclRvb2xiYXI6IGZ1bmN0aW9uIHJlbmRlclRvb2xiYXIoKSB7XG4gICAgICAgIHZhciBfdGhpczcgPSB0aGlzO1xuXG4gICAgICAgIHZhciBoaWRkZW5Nb2RlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgICAgaWYgKGhpZGRlbk1vZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnNvcnRLZXlzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNvcnRpbmdJbmZvID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICByZW1vdGVTb3J0aW5nSW5mbyA9IHRoaXMucmVtb3RlU29ydGluZ0luZm8oKTtcbiAgICAgICAgICAgICAgICBpZiAocmVtb3RlU29ydGluZ0luZm8pIHtcbiAgICAgICAgICAgICAgICAgICAgc29ydGluZ0luZm8gPSByZW1vdGVTb3J0aW5nSW5mbztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzb3J0aW5nSW5mbyA9IHRoaXMuc3RhdGUgPyB0aGlzLnN0YXRlLnNvcnRpbmdJbmZvIDogbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX1NvcnRDb2x1bW5zMlsnZGVmYXVsdCddLCB7IGRpc3BsYXlNb2RlOiAnaGlkZGVuJywgdGFibGVLZXlzOiB0aGlzLnByb3BzLnNvcnRLZXlzLCBjb2x1bW5DbGlja2VkOiB0aGlzLm9uQ29sdW1uU29ydCwgc29ydGluZ0luZm86IHNvcnRpbmdJbmZvIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcmlnaHRCdXR0b25zID0gW1JlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRm9udEljb24sIHtcbiAgICAgICAgICAgIGtleTogMSxcbiAgICAgICAgICAgIHRvb2x0aXA6ICdSZWxvYWQnLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBcIm1kaSBtZGktcmVsb2FkXCIgKyAodGhpcy5zdGF0ZS5sb2FkaW5nID8gXCIgcm90YXRpbmdcIiA6IFwiXCIpLFxuICAgICAgICAgICAgb25DbGljazogdGhpcy5yZWxvYWRcbiAgICAgICAgfSldO1xuICAgICAgICB2YXIgaSA9IDI7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNvcnRLZXlzKSB7XG5cbiAgICAgICAgICAgIHZhciBzb3J0aW5nSW5mbyA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICByZW1vdGVTb3J0aW5nSW5mbyA9IHRoaXMucmVtb3RlU29ydGluZ0luZm8oKTtcbiAgICAgICAgICAgIGlmIChyZW1vdGVTb3J0aW5nSW5mbykge1xuICAgICAgICAgICAgICAgIHNvcnRpbmdJbmZvID0gcmVtb3RlU29ydGluZ0luZm87XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNvcnRpbmdJbmZvID0gdGhpcy5zdGF0ZSA/IHRoaXMuc3RhdGUuc29ydGluZ0luZm8gOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmlnaHRCdXR0b25zLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChfU29ydENvbHVtbnMyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICBrZXk6IGksXG4gICAgICAgICAgICAgICAgZGlzcGxheU1vZGU6ICdtZW51JyxcbiAgICAgICAgICAgICAgICB0YWJsZUtleXM6IHRoaXMucHJvcHMuc29ydEtleXMsXG4gICAgICAgICAgICAgICAgY29sdW1uQ2xpY2tlZDogdGhpcy5vbkNvbHVtblNvcnQsXG4gICAgICAgICAgICAgICAgc29ydGluZ0luZm86IHNvcnRpbmdJbmZvXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuYWRkaXRpb25hbEFjdGlvbnMpIHtcbiAgICAgICAgICAgIHJpZ2h0QnV0dG9ucy5wdXNoKHRoaXMucHJvcHMuYWRkaXRpb25hbEFjdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGxlZnRUb29sYmFyID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGFnaW5hdG9yID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5ub2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwicGFnaW5hdGlvbkRhdGFcIikgJiYgdGhpcy5wcm9wcy5ub2RlLmdldE1ldGFkYXRhKCkuZ2V0KFwicGFnaW5hdGlvbkRhdGFcIikuZ2V0KCd0b3RhbCcpID4gMSkge1xuICAgICAgICAgICAgcGFnaW5hdG9yID0gUmVhY3QuY3JlYXRlRWxlbWVudChfTGlzdFBhZ2luYXRvcjJbJ2RlZmF1bHQnXSwgeyBkYXRhTW9kZWw6IHRoaXMuZG0sIG5vZGU6IHRoaXMucHJvcHMubm9kZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmxpc3RUaXRsZSkge1xuICAgICAgICAgICAgbGVmdFRvb2xiYXIgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRvb2xiYXJHcm91cCxcbiAgICAgICAgICAgICAgICB7IGtleTogMCwgZmxvYXQ6ICdsZWZ0JyB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ2xpc3QtdGl0bGUnIH0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubGlzdFRpdGxlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNlYXJjaFJlc3VsdERhdGEpIHtcblxuICAgICAgICAgICAgbGVmdFRvb2xiYXIgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRvb2xiYXJHcm91cCxcbiAgICAgICAgICAgICAgICB7IGtleTogMCwgZmxvYXQ6ICdsZWZ0JyB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGZvbnRTaXplOiAxNSwgZm9udFdlaWdodDogNTAwLCBjb2xvcjogJyM5ZTllOWUnIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmdldE1lc3NhZ2UoJ3JlYWN0LjMnKS5yZXBsYWNlKCclcycsIHRoaXMucHJvcHMuc2VhcmNoUmVzdWx0RGF0YS50ZXJtKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByaWdodEJ1dHRvbnMgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlJhaXNlZEJ1dHRvbiwgeyBrZXk6IDEsIGxhYmVsOiB0aGlzLmNvbnRleHQuZ2V0TWVzc2FnZSgncmVhY3QuNCcpLCBwcmltYXJ5OiB0cnVlLCBvblRvdWNoVGFwOiB0aGlzLnByb3BzLnNlYXJjaFJlc3VsdERhdGEudG9nZ2xlU3RhdGUsIHN0eWxlOiB7IG1hcmdpblJpZ2h0OiAtMTAgfSB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFjdGlvbnNDYWNoZS5tdWx0aXBsZS5zaXplIHx8IHRoaXMucHJvcHMubXVsdGlwbGVBY3Rpb25zKSB7XG4gICAgICAgICAgICB2YXIgYnVsa0xhYmVsID0gdGhpcy5jb250ZXh0LmdldE1lc3NhZ2UoJ3JlYWN0LjInKTtcbiAgICAgICAgICAgIHZhciBoaWRkZW5TdHlsZSA9IHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC04MHB4KSdcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgY2JTdHlsZSA9IF9leHRlbmRzKHsgd2lkdGg6IDI0IH0sIGhpZGRlblN0eWxlKTtcbiAgICAgICAgICAgIHZhciBidXR0b25TdHlsZSA9IF9leHRlbmRzKHt9LCBoaWRkZW5TdHlsZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG93U2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICBjYlN0eWxlID0geyB3aWR0aDogMjQsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTEycHgpJyB9O1xuICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlID0geyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC00MHB4KScgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnNlbGVjdGlvbiAmJiB0aGlzLnN0YXRlLnNob3dTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgIGJ1bGtMYWJlbCArPSBcIiAoXCIgKyB0aGlzLnN0YXRlLnNlbGVjdGlvbi5zaXplICsgXCIpXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZWZ0VG9vbGJhciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuVG9vbGJhckdyb3VwLFxuICAgICAgICAgICAgICAgIHsga2V5OiAwLCBmbG9hdDogJ2xlZnQnLCBjbGFzc05hbWU6ICdoaWRlLW9uLXZlcnRpY2FsLWxheW91dCcgfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkNoZWNrYm94LCB7IHJlZjogJ2FsbF9zZWxlY3RvcicsIG9uQ2xpY2s6IHRoaXMuc2VsZWN0QWxsLCBzdHlsZTogY2JTdHlsZSB9KSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZsYXRCdXR0b24sIHsgbGFiZWw6IGJ1bGtMYWJlbCwgb25DbGljazogdGhpcy50b2dnbGVTZWxlY3Rvciwgc3R5bGU6IGJ1dHRvblN0eWxlIH0pXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG93U2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByaWdodEJ1dHRvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGlvbnMgPSBfdGhpczcucHJvcHMubXVsdGlwbGVBY3Rpb25zIHx8IF90aGlzNy5hY3Rpb25zQ2FjaGUubXVsdGlwbGU7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnMuZm9yRWFjaCgoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0QnV0dG9ucy5wdXNoKFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuUmFpc2VkQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYS5vcHRpb25zLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtYWN0aW9uJzogYS5vcHRpb25zLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5hcHBseU11bHRpcGxlQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnk6IHRydWUgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9KS5iaW5kKF90aGlzNykpO1xuICAgICAgICAgICAgICAgICAgICByaWdodEJ1dHRvbnMgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0QnV0dG9uc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRvb2xiYXIsXG4gICAgICAgICAgICB7IHN0eWxlOiB0aGlzLnByb3BzLnRvb2xiYXJTdHlsZSB9LFxuICAgICAgICAgICAgbGVmdFRvb2xiYXIsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlRvb2xiYXJHcm91cCxcbiAgICAgICAgICAgICAgICB7IGtleTogMSwgZmxvYXQ6ICdyaWdodCcgfSxcbiAgICAgICAgICAgICAgICBwYWdpbmF0b3IsXG4gICAgICAgICAgICAgICAgcmlnaHRCdXR0b25zXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXM4ID0gdGhpcztcblxuICAgICAgICB2YXIgY29udGFpbmVyQ2xhc3NlcyA9IFwibWF0ZXJpYWwtbGlzdCB2ZXJ0aWNhbC1sYXlvdXQgbGF5b3V0LWZpbGxcIjtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICBjb250YWluZXJDbGFzc2VzICs9IFwiIFwiICsgdGhpcy5wcm9wcy5jbGFzc05hbWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc2hvd1NlbGVjdG9yKSB7XG4gICAgICAgICAgICBjb250YWluZXJDbGFzc2VzICs9IFwiIGxpc3Qtc2hvdy1zZWxlY3RvcnNcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcm9wcy50YWJsZUtleXMpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzZXMgKz0gXCIgdGFibGUtbW9kZVwiO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b29sYmFyID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgaGlkZGVuVG9vbGJhciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMudGFibGVLZXlzKSB7XG4gICAgICAgICAgICB2YXIgdGFibGVLZXlzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdEdyb3VwQnkpIHtcbiAgICAgICAgICAgICAgICB0YWJsZUtleXMgPSBMYW5nVXRpbHMuZGVlcENvcHkodGhpcy5wcm9wcy50YWJsZUtleXMpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0YWJsZUtleXNbdGhpcy5wcm9wcy5kZWZhdWx0R3JvdXBCeV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRhYmxlS2V5cyA9IHRoaXMucHJvcHMudGFibGVLZXlzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHNvcnRpbmdJbmZvID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJlbW90ZVNvcnRpbmdJbmZvID0gdGhpcy5yZW1vdGVTb3J0aW5nSW5mbygpO1xuICAgICAgICAgICAgaWYgKHJlbW90ZVNvcnRpbmdJbmZvKSB7XG4gICAgICAgICAgICAgICAgc29ydGluZ0luZm8gPSByZW1vdGVTb3J0aW5nSW5mbztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc29ydGluZ0luZm8gPSB0aGlzLnN0YXRlID8gdGhpcy5zdGF0ZS5zb3J0aW5nSW5mbyA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b29sYmFyID0gUmVhY3QuY3JlYXRlRWxlbWVudChfVGFibGVMaXN0SGVhZGVyMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgdGFibGVLZXlzOiB0YWJsZUtleXMsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogdGhpcy5zdGF0ZS5sb2FkaW5nLFxuICAgICAgICAgICAgICAgIHJlbG9hZDogdGhpcy5yZWxvYWQsXG4gICAgICAgICAgICAgICAgcmVmOiAnbG9hZGluZ19pbmRpY2F0b3InLFxuICAgICAgICAgICAgICAgIGRtOiB0aGlzLnByb3BzLmRhdGFNb2RlbCxcbiAgICAgICAgICAgICAgICBub2RlOiB0aGlzLnByb3BzLm5vZGUsXG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbEFjdGlvbnM6IHRoaXMucHJvcHMuYWRkaXRpb25hbEFjdGlvbnMsXG4gICAgICAgICAgICAgICAgb25IZWFkZXJDbGljazogdGhpcy5vbkNvbHVtblNvcnQsXG4gICAgICAgICAgICAgICAgc29ydGluZ0luZm86IHNvcnRpbmdJbmZvXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvb2xiYXIgPSB0aGlzLnByb3BzLmN1c3RvbVRvb2xiYXIgPyB0aGlzLnByb3BzLmN1c3RvbVRvb2xiYXIgOiAhdGhpcy5wcm9wcy5oaWRlVG9vbGJhciA/IHRoaXMucmVuZGVyVG9vbGJhcigpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLmhpZGVUb29sYmFyIHx8IHRoaXMucHJvcHMuY3VzdG9tVG9vbGJhcikge1xuICAgICAgICAgICAgICAgIGhpZGRlblRvb2xiYXIgPSB0aGlzLnJlbmRlclRvb2xiYXIodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaW5saW5lRWRpdG9yID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5pbmxpbmVFZGl0aW9uRm9yTm9kZSkge1xuICAgICAgICAgICAgaW5saW5lRWRpdG9yID0gUmVhY3QuY3JlYXRlRWxlbWVudChfSW5saW5lRWRpdG9yMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgbm9kZTogdGhpcy5zdGF0ZS5pbmxpbmVFZGl0aW9uRm9yTm9kZSxcbiAgICAgICAgICAgICAgICBjYWxsYmFjazogdGhpcy5zdGF0ZS5pbmxpbmVFZGl0aW9uQ2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgb25DbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczguc2V0U3RhdGUoeyBpbmxpbmVFZGl0aW9uRm9yTm9kZTogbnVsbCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBlbXB0eVN0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGVtcHR5U3RhdGVQcm9wcyA9IF9wcm9wcy5lbXB0eVN0YXRlUHJvcHM7XG4gICAgICAgIHZhciBub2RlID0gX3Byb3BzLm5vZGU7XG5cbiAgICAgICAgaWYgKGVtcHR5U3RhdGVQcm9wcyAmJiB0aGlzLnByb3BzLm5vZGUuaXNMb2FkZWQoKSAmJiAhdGhpcy5wcm9wcy5ub2RlLmlzTG9hZGluZygpICYmICghdGhpcy5zdGF0ZS5lbGVtZW50cy5sZW5ndGggfHwgdGhpcy5zdGF0ZS5lbGVtZW50cy5sZW5ndGggPT09IDEgJiYgdGhpcy5zdGF0ZS5lbGVtZW50c1swXS5wYXJlbnQpKSB7XG5cbiAgICAgICAgICAgIHZhciBhY3Rpb25Qcm9wcyA9IHt9O1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZWxlbWVudHMubGVuZ3RoID09PSAxICYmIHRoaXMuc3RhdGUuZWxlbWVudHNbMF0ucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBfdGhpczguc3RhdGUuZWxlbWVudHNbMF0ubm9kZTtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25MYWJlbElkOiAncmVhY3QuMScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25JY29uQ2xhc3NOYW1lOiBTaW1wbGVMaXN0LlBBUkVOVF9GT0xERVJfSUNPTixcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkNhbGxiYWNrOiBmdW5jdGlvbiBhY3Rpb25DYWxsYmFjayhlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF90aGlzOC5wcm9wcy5lbnRyeUhhbmRsZUNsaWNrcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczgucHJvcHMuZW50cnlIYW5kbGVDbGlja3MocGFyZW50Tm9kZSwgU2ltcGxlTGlzdC5DTElDS19UWVBFX0RPVUJMRSwgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbXB0eVN0YXRlID0gUmVhY3QuY3JlYXRlRWxlbWVudChfdmlld3NFbXB0eVN0YXRlVmlldzJbJ2RlZmF1bHQnXSwgX2V4dGVuZHMoe30sIGVtcHR5U3RhdGVQcm9wcywgYWN0aW9uUHJvcHMpKTtcbiAgICAgICAgfSBlbHNlIGlmIChlbXB0eVN0YXRlUHJvcHMgJiYgZW1wdHlTdGF0ZVByb3BzLmNoZWNrRW1wdHlTdGF0ZSAmJiBlbXB0eVN0YXRlUHJvcHMuY2hlY2tFbXB0eVN0YXRlKHRoaXMucHJvcHMubm9kZSkpIHtcblxuICAgICAgICAgICAgZW1wdHlTdGF0ZSA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoX3ZpZXdzRW1wdHlTdGF0ZVZpZXcyWydkZWZhdWx0J10sIGVtcHR5U3RhdGVQcm9wcyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmJ1aWxkRWxlbWVudHNGcm9tTm9kZUVudHJpZXModGhpcy5zdGF0ZS5lbGVtZW50cywgdGhpcy5zdGF0ZS5zaG93U2VsZWN0b3IpO1xuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogY29udGFpbmVyQ2xhc3Nlcywgb25Db250ZXh0TWVudTogdGhpcy5jb250ZXh0TWVudVJlc3BvbmRlciwgdGFiSW5kZXg6ICcwJywgb25LZXlEb3duOiB0aGlzLm9uS2V5RG93biwgc3R5bGU6IHRoaXMucHJvcHMuc3R5bGUgfSxcbiAgICAgICAgICAgIHRvb2xiYXIsXG4gICAgICAgICAgICBoaWRkZW5Ub29sYmFyLFxuICAgICAgICAgICAgaW5saW5lRWRpdG9yLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogdGhpcy5wcm9wcy5oZWlnaHRBdXRvV2l0aE1heCA/IFwiaW5maW5pdGUtcGFyZW50LXNtb290aC1oZWlnaHRcIiA6IGVtcHR5U3RhdGUgPyBcImxheW91dC1maWxsIHZlcnRpY2FsX2xheW91dFwiIDogXCJsYXlvdXQtZmlsbFwiLCByZWY6ICdpbmZpbml0ZVBhcmVudCcgfSxcbiAgICAgICAgICAgICAgICAhZW1wdHlTdGF0ZSAmJiAhdGhpcy5wcm9wcy52ZXJ0aWNhbFNjcm9sbGVyICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIEluZmluaXRlLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50SGVpZ2h0OiB0aGlzLnN0YXRlLmVsZW1lbnRIZWlnaHQgPyB0aGlzLnN0YXRlLmVsZW1lbnRIZWlnaHQgOiB0aGlzLnByb3BzLmVsZW1lbnRIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJIZWlnaHQ6IHRoaXMuc3RhdGUuY29udGFpbmVySGVpZ2h0ID8gdGhpcy5zdGF0ZS5jb250YWluZXJIZWlnaHQgOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5maW5pdGVMb2FkQmVnaW5FZGdlT2Zmc2V0OiB0aGlzLnN0YXRlLmluZmluaXRlTG9hZEJlZ2luQm90dG9tT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgb25JbmZpbml0ZUxvYWQ6IHRoaXMuaGFuZGxlSW5maW5pdGVMb2FkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2Nyb2xsOiB0aGlzLm9uU2Nyb2xsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiAnaW5maW5pdGUnXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAhZW1wdHlTdGF0ZSAmJiB0aGlzLnByb3BzLnZlcnRpY2FsU2Nyb2xsZXIgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgX3JlYWN0U2Nyb2xsYmFyMlsnZGVmYXVsdCddLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGVlZDogMC44LFxuICAgICAgICAgICAgICAgICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBoZWlnaHQ6IHRoaXMuc3RhdGUuY29udGFpbmVySGVpZ2h0IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhclN0eWxlOiB7IGJvcmRlclJhZGl1czogMTAsIHdpZHRoOiA2IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbENvbnRhaW5lclN0eWxlOiB7IHdpZHRoOiA4IH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGVcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTaW1wbGVMaXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX21lbnVJY29uQnV0dG9uTWVudSA9IHJlcXVpcmUoJy4uL21lbnUvSWNvbkJ1dHRvbk1lbnUnKTtcblxudmFyIF9tZW51SWNvbkJ1dHRvbk1lbnUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWVudUljb25CdXR0b25NZW51KTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBQeWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfUHlkaW8kcmVxdWlyZUxpYiA9IFB5ZGlvLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX1B5ZGlvJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpLWxlZ2FjeScpO1xuXG52YXIgVG9vbGJhckdyb3VwID0gX3JlcXVpcmUuVG9vbGJhckdyb3VwO1xuXG52YXIgU29ydENvbHVtbnMgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdTb3J0Q29sdW1ucycsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgdGFibGVLZXlzOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICAgIGNvbHVtbkNsaWNrZWQ6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBzb3J0aW5nSW5mbzogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgZGlzcGxheU1vZGU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmdcbiAgICB9LFxuXG4gICAgb25NZW51Q2xpY2tlZDogZnVuY3Rpb24gb25NZW51Q2xpY2tlZChvYmplY3QpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5jb2x1bW5DbGlja2VkKG9iamVjdC5wYXlsb2FkKTtcbiAgICB9LFxuXG4gICAgb25IZWFkZXJDbGljazogZnVuY3Rpb24gb25IZWFkZXJDbGljayhrZXksIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBkYXRhID0gdGhpcy5wcm9wcy50YWJsZUtleXNba2V5XTtcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YVsnc29ydFR5cGUnXSAmJiB0aGlzLnByb3BzLmNvbHVtbkNsaWNrZWQpIHtcbiAgICAgICAgICAgIGRhdGFbJ25hbWUnXSA9IGtleTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMuY29sdW1uQ2xpY2tlZChkYXRhLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0Q29sdW1uc0l0ZW1zOiBmdW5jdGlvbiBnZXRDb2x1bW5zSXRlbXMoZGlzcGxheU1vZGUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgY29udHJvbGxlciA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgICAgdmFyIGl0ZW1zID0gW107XG4gICAgICAgIHZhciBfY2FsbGJhY2sgPSBmdW5jdGlvbiBfY2FsbGJhY2soKSB7XG4gICAgICAgICAgICBpZiAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIubm90aWZ5KCdhY3Rpb25zX3JlZnJlc2hlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBfbG9vcCA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGlmICghX3RoaXMucHJvcHMudGFibGVLZXlzLmhhc093blByb3BlcnR5KGtleSkpIHJldHVybiAnY29udGludWUnO1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBfdGhpcy5wcm9wcy50YWJsZUtleXNba2V5XTtcbiAgICAgICAgICAgIHZhciBzdHlsZSA9IGRhdGFbJ3dpZHRoJ10gPyB7IHdpZHRoOiBkYXRhWyd3aWR0aCddIH0gOiBudWxsO1xuICAgICAgICAgICAgdmFyIGljb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB2YXIgY2xhc3NOYW1lID0gJ2NlbGwgaGVhZGVyX2NlbGwgY2VsbC0nICsga2V5O1xuICAgICAgICAgICAgaWYgKGRhdGFbJ3NvcnRUeXBlJ10pIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gJyBzb3J0YWJsZSc7XG4gICAgICAgICAgICAgICAgaWYgKF90aGlzLnByb3BzLnNvcnRpbmdJbmZvICYmIChfdGhpcy5wcm9wcy5zb3J0aW5nSW5mby5hdHRyaWJ1dGUgPT09IGtleSB8fCBfdGhpcy5wcm9wcy5zb3J0aW5nSW5mby5hdHRyaWJ1dGUgPT09IGRhdGFbJ3NvcnRBdHRyaWJ1dGUnXSB8fCBfdGhpcy5wcm9wcy5zb3J0aW5nSW5mby5hdHRyaWJ1dGUgPT09IGRhdGFbJ3JlbW90ZVNvcnRBdHRyaWJ1dGUnXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWNvbiA9IF90aGlzLnByb3BzLnNvcnRpbmdJbmZvLmRpcmVjdGlvbiA9PT0gJ2FzYycgPyAnbWRpIG1kaS1hcnJvdy11cCcgOiAnbWRpIG1kaS1hcnJvdy1kb3duJztcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lICs9ICcgYWN0aXZlLXNvcnQtJyArIF90aGlzLnByb3BzLnNvcnRpbmdJbmZvLmRpcmVjdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGlzcGxheU1vZGUgPT09ICdtZW51Jykge1xuICAgICAgICAgICAgICAgIGRhdGFbJ25hbWUnXSA9IGtleTtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZDogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogZGF0YVsnbGFiZWwnXSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogaWNvblxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5TW9kZSA9PT0gJ21lbnVfZGF0YScpIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZGF0YVsnbGFiZWwnXSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uIGNhbGxiYWNrKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMub25IZWFkZXJDbGljayhrZXksIF9jYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGljb25fY2xhc3M6IGljb24gfHwgJ19fSU5TRVRfXydcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMub25IZWFkZXJDbGljayhrZXksIF9jYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRhdGFbJ2xhYmVsJ11cbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5wcm9wcy50YWJsZUtleXMpIHtcbiAgICAgICAgICAgIHZhciBfcmV0ID0gX2xvb3Aoa2V5KTtcblxuICAgICAgICAgICAgaWYgKF9yZXQgPT09ICdjb250aW51ZScpIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9LFxuXG4gICAgYnVpbGRTb3J0aW5nTWVudUl0ZW1zOiBmdW5jdGlvbiBidWlsZFNvcnRpbmdNZW51SXRlbXMoY29udHJvbGxlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5zSXRlbXMoJ21lbnVfZGF0YScsIGNvbnRyb2xsZXIpO1xuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG5cbiAgICAgICAgdmFyIHNvcnRBY3Rpb24gPSBuZXcgQWN0aW9uKHtcbiAgICAgICAgICAgIG5hbWU6ICdzb3J0X2FjdGlvbicsXG4gICAgICAgICAgICBpY29uX2NsYXNzOiAnbWRpIG1kaS1zb3J0LWRlc2NlbmRpbmcnLFxuICAgICAgICAgICAgdGV4dF9pZDogNDUwLFxuICAgICAgICAgICAgdGl0bGVfaWQ6IDQ1MCxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMucHJvcHMuZ2V0TWVzc2FnZSg0NTApLFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMucHJvcHMuZ2V0TWVzc2FnZSg0NTApLFxuICAgICAgICAgICAgaGFzQWNjZXNzS2V5OiBmYWxzZSxcbiAgICAgICAgICAgIHN1Yk1lbnU6IHRydWUsXG4gICAgICAgICAgICBzdWJNZW51VXBkYXRlSW1hZ2U6IHRydWUsXG4gICAgICAgICAgICB3ZWlnaHQ6IDUwXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBkaXI6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25CYXI6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25CYXJHcm91cDogJ2Rpc3BsYXlfdG9vbGJhcicsXG4gICAgICAgICAgICBjb250ZXh0TWVudTogZmFsc2UsXG4gICAgICAgICAgICBpbmZvUGFuZWw6IGZhbHNlXG4gICAgICAgIH0sIHt9LCB7fSwge1xuICAgICAgICAgICAgZHluYW1pY0J1aWxkZXI6IHRoaXMuYnVpbGRTb3J0aW5nTWVudUl0ZW1zXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgYnV0dG9ucyA9IG5ldyBNYXAoKTtcbiAgICAgICAgYnV0dG9ucy5zZXQoJ3NvcnRfYWN0aW9uJywgc29ydEFjdGlvbik7XG4gICAgICAgIHRoaXMucHJvcHMucHlkaW8uZ2V0Q29udHJvbGxlcigpLnVwZGF0ZUd1aUFjdGlvbnMoYnV0dG9ucyk7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5weWRpby5nZXRDb250cm9sbGVyKCkuZGVsZXRlRnJvbUd1aUFjdGlvbnMoJ3NvcnRfYWN0aW9uJyk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5kaXNwbGF5TW9kZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuZGlzcGxheU1vZGUgPT09ICdtZW51Jykge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21lbnVJY29uQnV0dG9uTWVudTJbJ2RlZmF1bHQnXSwgeyBidXR0b25UaXRsZTogJ1NvcnQgYnkuLi4nLCBidXR0b25DbGFzc05hbWU6ICdtZGkgbWRpLXNvcnQtZGVzY2VuZGluZycsIG1lbnVJdGVtczogdGhpcy5nZXRDb2x1bW5zSXRlbXMoJ21lbnUnLCB0aGlzLnByb3BzLnB5ZGlvLmdldENvbnRyb2xsZXIoKSksIG9uTWVudUNsaWNrZWQ6IHRoaXMub25NZW51Q2xpY2tlZCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFRvb2xiYXJHcm91cCxcbiAgICAgICAgICAgICAgICB7IGZsb2F0OiAnbGVmdCcgfSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldENvbHVtbnNJdGVtcygnaGVhZGVyJywgdGhpcy5wcm9wcy5weWRpby5nZXRDb250cm9sbGVyKCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNvcnRDb2x1bW5zID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoU29ydENvbHVtbnMpO1xuZXhwb3J0c1snZGVmYXVsdCddID0gU29ydENvbHVtbnM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfdXRpbERORCA9IHJlcXVpcmUoJy4uL3V0aWwvRE5EJyk7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBSRUFDVCBETkQgU09SVEFCTEUgTElTVFxuIC8qKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkcmFnIHNvdXJjZSBjb250cmFjdC5cbiAqIE9ubHkgYGJlZ2luRHJhZ2AgZnVuY3Rpb24gaXMgcmVxdWlyZWQuXG4gKi9cbnZhciBzb3J0YWJsZUl0ZW1Tb3VyY2UgPSB7XG4gICAgYmVnaW5EcmFnOiBmdW5jdGlvbiBiZWdpbkRyYWcocHJvcHMpIHtcbiAgICAgICAgLy8gUmV0dXJuIHRoZSBkYXRhIGRlc2NyaWJpbmcgdGhlIGRyYWdnZWQgaXRlbVxuICAgICAgICByZXR1cm4geyBpZDogcHJvcHMuaWQgfTtcbiAgICB9LFxuICAgIGVuZERyYWc6IGZ1bmN0aW9uIGVuZERyYWcocHJvcHMpIHtcbiAgICAgICAgcHJvcHMuZW5kU3dpdGNoaW5nKCk7XG4gICAgfVxufTtcblxudmFyIHNvcnRhYmxlSXRlbVRhcmdldCA9IHtcblxuICAgIGhvdmVyOiBmdW5jdGlvbiBob3Zlcihwcm9wcywgbW9uaXRvcikge1xuICAgICAgICB2YXIgZHJhZ2dlZElkID0gbW9uaXRvci5nZXRJdGVtKCkuaWQ7XG4gICAgICAgIGlmIChkcmFnZ2VkSWQgIT09IHByb3BzLmlkKSB7XG4gICAgICAgICAgICBwcm9wcy5zd2l0Y2hJdGVtcyhkcmFnZ2VkSWQsIHByb3BzLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxufTtcblxudmFyIHNvcnRhYmxlSXRlbSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogXCJzb3J0YWJsZUl0ZW1cIixcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBjb25uZWN0RHJhZ1NvdXJjZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgICAgY29ubmVjdERyb3BUYXJnZXQ6IFJlYWN0LlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIGlzRHJhZ2dpbmc6IFJlYWN0LlByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgICAgIGlkOiBSZWFjdC5Qcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gICAgICAgIGxhYmVsOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgIHN3aXRjaEl0ZW1zOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgICByZW1vdmFibGU6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgICAgICBvblJlbW92ZTogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbiAgICB9LFxuXG4gICAgcmVtb3ZlQ2xpY2tlZDogZnVuY3Rpb24gcmVtb3ZlQ2xpY2tlZCgpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZSh0aGlzLnByb3BzLmlkKTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIC8vIFlvdXIgY29tcG9uZW50IHJlY2VpdmVzIGl0cyBvd24gcHJvcHMgYXMgdXN1YWxcbiAgICAgICAgdmFyIGlkID0gdGhpcy5wcm9wcy5pZDtcblxuICAgICAgICAvLyBUaGVzZSB0d28gcHJvcHMgYXJlIGluamVjdGVkIGJ5IFJlYWN0IERuRCxcbiAgICAgICAgLy8gYXMgZGVmaW5lZCBieSB5b3VyIGBjb2xsZWN0YCBmdW5jdGlvbiBhYm92ZTpcbiAgICAgICAgdmFyIGlzRHJhZ2dpbmcgPSB0aGlzLnByb3BzLmlzRHJhZ2dpbmc7XG4gICAgICAgIHZhciBjb25uZWN0RHJhZ1NvdXJjZSA9IHRoaXMucHJvcHMuY29ubmVjdERyYWdTb3VyY2U7XG4gICAgICAgIHZhciBjb25uZWN0RHJvcFRhcmdldCA9IHRoaXMucHJvcHMuY29ubmVjdERyb3BUYXJnZXQ7XG5cbiAgICAgICAgdmFyIHJlbW92ZTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVtb3ZhYmxlKSB7XG4gICAgICAgICAgICByZW1vdmUgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7IGNsYXNzTmFtZTogXCJidXR0b24gbWRpIG1kaS1jbG9zZVwiLCBvbkNsaWNrOiB0aGlzLnJlbW92ZUNsaWNrZWQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBSZWFjdE1VSS5QYXBlcixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZWY6IGZ1bmN0aW9uIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25uZWN0RHJvcFRhcmdldChSZWFjdERPTS5maW5kRE9NTm9kZShpbnN0YW5jZSkpO1xuICAgICAgICAgICAgICAgICAgICBjb25uZWN0RHJhZ1NvdXJjZShSZWFjdERPTS5maW5kRE9NTm9kZShpbnN0YW5jZSkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgekRlcHRoOiAxLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IG9wYWNpdHk6IGlzRHJhZ2dpbmcgPyAwIDogMSB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZSB9LFxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubGFiZWwsXG4gICAgICAgICAgICAgICAgcmVtb3ZlXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufSk7XG5cbnZhciBOb25EcmFnZ2FibGVMaXN0SXRlbSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogXCJOb25EcmFnZ2FibGVMaXN0SXRlbVwiLFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciByZW1vdmU7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlbW92YWJsZSkge1xuICAgICAgICAgICAgcmVtb3ZlID0gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgeyBjbGFzc05hbWU6IFwiYnV0dG9uIG1kaSBtZGktY2xvc2VcIiwgb25DbGljazogdGhpcy5yZW1vdmVDbGlja2VkIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgUmVhY3RNVUkuUGFwZXIsXG4gICAgICAgICAgICB7IHpEZXB0aDogMSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZSB9LFxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubGFiZWwsXG4gICAgICAgICAgICAgICAgcmVtb3ZlXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufSk7XG5cbnZhciBEcmFnZ2FibGVMaXN0SXRlbTtcbmlmICh3aW5kb3cuUmVhY3RETkQpIHtcbiAgICBEcmFnZ2FibGVMaXN0SXRlbSA9IFJlYWN0RE5ELmZsb3coUmVhY3RETkQuRHJhZ1NvdXJjZShfdXRpbERORC5UeXBlcy5TT1JUQUJMRV9MSVNUX0lURU0sIHNvcnRhYmxlSXRlbVNvdXJjZSwgX3V0aWxETkQuY29sbGVjdCksIFJlYWN0RE5ELkRyb3BUYXJnZXQoX3V0aWxETkQuVHlwZXMuU09SVEFCTEVfTElTVF9JVEVNLCBzb3J0YWJsZUl0ZW1UYXJnZXQsIF91dGlsRE5ELmNvbGxlY3REcm9wKSkoc29ydGFibGVJdGVtKTtcbn0gZWxzZSB7XG4gICAgRHJhZ2dhYmxlTGlzdEl0ZW0gPSBOb25EcmFnZ2FibGVMaXN0SXRlbTtcbn1cblxudmFyIFNvcnRhYmxlTGlzdCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogXCJTb3J0YWJsZUxpc3RcIixcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICB2YWx1ZXM6IFJlYWN0LlByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICBvbk9yZGVyVXBkYXRlZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbW92YWJsZTogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIG9uUmVtb3ZlOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBpdGVtQ2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nXG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICByZXR1cm4geyB2YWx1ZXM6IHRoaXMucHJvcHMudmFsdWVzIH07XG4gICAgfSxcbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHByb3BzKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZXM6IHByb3BzLnZhbHVlcywgc3dpdGNoRGF0YTogbnVsbCB9KTtcbiAgICB9LFxuXG4gICAgZmluZEl0ZW1JbmRleDogZnVuY3Rpb24gZmluZEl0ZW1JbmRleChpdGVtSWQsIGRhdGEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZGF0YVtpXVsncGF5bG9hZCddID09IGl0ZW1JZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIHN3aXRjaEl0ZW1zOiBmdW5jdGlvbiBzd2l0Y2hJdGVtcyhvbGRJZCwgbmV3SWQpIHtcbiAgICAgICAgdmFyIG9sZEluZGV4ID0gdGhpcy5maW5kSXRlbUluZGV4KG9sZElkLCB0aGlzLnN0YXRlLnZhbHVlcyk7XG4gICAgICAgIHZhciBvbGRJdGVtID0gdGhpcy5zdGF0ZS52YWx1ZXNbb2xkSW5kZXhdO1xuICAgICAgICB2YXIgbmV3SW5kZXggPSB0aGlzLmZpbmRJdGVtSW5kZXgobmV3SWQsIHRoaXMuc3RhdGUudmFsdWVzKTtcbiAgICAgICAgdmFyIG5ld0l0ZW0gPSB0aGlzLnN0YXRlLnZhbHVlc1tuZXdJbmRleF07XG5cbiAgICAgICAgdmFyIGN1cnJlbnRWYWx1ZXMgPSB0aGlzLnN0YXRlLnZhbHVlcy5zbGljZSgpO1xuICAgICAgICBjdXJyZW50VmFsdWVzW29sZEluZGV4XSA9IG5ld0l0ZW07XG4gICAgICAgIGN1cnJlbnRWYWx1ZXNbbmV3SW5kZXhdID0gb2xkSXRlbTtcblxuICAgICAgICAvLyBDaGVjayB0aGF0IGl0IGRpZCBub3QgY29tZSBiYWNrIHRvIG9yaWdpbmFsIHN0YXRlXG4gICAgICAgIHZhciBvbGRQcmV2aW91cyA9IHRoaXMuZmluZEl0ZW1JbmRleChvbGRJZCwgdGhpcy5wcm9wcy52YWx1ZXMpO1xuICAgICAgICB2YXIgbmV3UHJldmlvdXMgPSB0aGlzLmZpbmRJdGVtSW5kZXgobmV3SWQsIHRoaXMucHJvcHMudmFsdWVzKTtcbiAgICAgICAgaWYgKG9sZFByZXZpb3VzID09IG5ld0luZGV4ICYmIG5ld1ByZXZpb3VzID09IG9sZEluZGV4KSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWVzOiBjdXJyZW50VmFsdWVzLCBzd2l0Y2hEYXRhOiBudWxsIH0pO1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIm5vIG1vcmUgbW92ZXNcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlczogY3VycmVudFZhbHVlcywgc3dpdGNoRGF0YTogeyBvbGRJZDogb2xkSWQsIG5ld0lkOiBuZXdJZCB9IH0pO1xuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coe29sZElkOm9sZEluZGV4LCBuZXdJZDpuZXdJbmRleH0pO1xuICAgICAgICAgICAgfVxuICAgIH0sXG5cbiAgICBlbmRTd2l0Y2hpbmc6IGZ1bmN0aW9uIGVuZFN3aXRjaGluZygpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuc3dpdGNoRGF0YSkge1xuICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBpdCBkaWQgbm90IGNvbWUgYmFjayB0byBvcmlnaW5hbCBzdGF0ZVxuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25PcmRlclVwZGF0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uT3JkZXJVcGRhdGVkKHRoaXMuc3RhdGUuc3dpdGNoRGF0YS5vbGRJZCwgdGhpcy5zdGF0ZS5zd2l0Y2hEYXRhLm5ld0lkLCB0aGlzLnN0YXRlLnZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHN3aXRjaERhdGE6IG51bGwgfSk7XG4gICAgfSxcblxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgc3dpdGNoSXRlbXMgPSB0aGlzLnN3aXRjaEl0ZW1zO1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWUgfSxcbiAgICAgICAgICAgIHRoaXMuc3RhdGUudmFsdWVzLm1hcCgoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChEcmFnZ2FibGVMaXN0SXRlbSwge1xuICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5wYXlsb2FkLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IGl0ZW0ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoSXRlbXM6IHN3aXRjaEl0ZW1zLFxuICAgICAgICAgICAgICAgICAgICBlbmRTd2l0Y2hpbmc6IHRoaXMuZW5kU3dpdGNoaW5nLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IHRoaXMucHJvcHMucmVtb3ZhYmxlLFxuICAgICAgICAgICAgICAgICAgICBvblJlbW92ZTogdGhpcy5wcm9wcy5vblJlbW92ZSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLml0ZW1DbGFzc05hbWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpXG4gICAgICAgICk7XG4gICAgfVxufSk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU29ydGFibGVMaXN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4gPSByZXF1aXJlKCcuL0xpc3RFbnRyeU5vZGVMaXN0ZW5lck1peGluJyk7XG5cbnZhciBfTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4pO1xuXG52YXIgX0xpc3RFbnRyeSA9IHJlcXVpcmUoJy4vTGlzdEVudHJ5Jyk7XG5cbnZhciBfSW5saW5lRWRpdG9yID0gcmVxdWlyZSgnLi9JbmxpbmVFZGl0b3InKTtcblxudmFyIF9JbmxpbmVFZGl0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSW5saW5lRWRpdG9yKTtcblxudmFyIF9weWRpb1V0aWxQYXRoID0gcmVxdWlyZSgncHlkaW8vdXRpbC9wYXRoJyk7XG5cbnZhciBfcHlkaW9VdGlsUGF0aDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb1V0aWxQYXRoKTtcblxudmFyIF9yZXF1aXJlJHJlcXVpcmVMaWIgPSByZXF1aXJlKCdweWRpbycpLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIG1vbWVudCA9IF9yZXF1aXJlJHJlcXVpcmVMaWIubW9tZW50O1xuXG4vKipcbiAqIFNwZWNpZmljIGxpc3QgZW50cnkgcmVuZGVyZWQgYXMgYSB0YWJsZSByb3cuIE5vdCBhIHJlYWwgdGFibGUsIENTUyB1c2VkLlxuICovXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdUYWJsZUxpc3RFbnRyeScsXG5cbiAgICBtaXhpbnM6IFtfTGlzdEVudHJ5Tm9kZUxpc3RlbmVyTWl4aW4yWydkZWZhdWx0J11dLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIG5vZGU6IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKEFqeHBOb2RlKSxcbiAgICAgICAgdGFibGVLZXlzOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICAgIHJlbmRlckFjdGlvbnM6IFJlYWN0LlByb3BUeXBlcy5mdW5jXG4gICAgICAgIC8vIFNlZSBhbHNvIExpc3RFbnRyeSBub2Rlc1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgYWN0aW9ucyA9IHRoaXMucHJvcHMuYWN0aW9ucztcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVuZGVyQWN0aW9ucykge1xuICAgICAgICAgICAgYWN0aW9ucyA9IHRoaXMucHJvcHMucmVuZGVyQWN0aW9ucyh0aGlzLnByb3BzLm5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNlbGxzID0gW107XG4gICAgICAgIHZhciBmaXJzdEtleSA9IHRydWU7XG4gICAgICAgIHZhciBtZXRhID0gdGhpcy5wcm9wcy5ub2RlLmdldE1ldGFkYXRhKCk7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLnByb3BzLnRhYmxlS2V5cykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnByb3BzLnRhYmxlS2V5cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBkYXRhID0gdGhpcy5wcm9wcy50YWJsZUtleXNba2V5XTtcbiAgICAgICAgICAgIHZhciBzdHlsZSA9IGRhdGFbJ3dpZHRoJ10gPyB7IHdpZHRoOiBkYXRhWyd3aWR0aCddIH0gOiBudWxsO1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJhd1ZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKGRhdGEucmVuZGVyQ2VsbCkge1xuICAgICAgICAgICAgICAgIGRhdGFbJ25hbWUnXSA9IGtleTtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGEucmVuZGVyQ2VsbCh0aGlzLnByb3BzLm5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdhanhwX21vZGlmdGltZScpIHtcbiAgICAgICAgICAgICAgICB2YXIgbURhdGUgPSBtb21lbnQocGFyc2VGbG9hdChtZXRhLmdldCgnYWp4cF9tb2RpZnRpbWUnKSkgKiAxMDAwKTtcbiAgICAgICAgICAgICAgICB2YXIgZGF0ZVN0cmluZyA9IG1EYXRlLmNhbGVuZGFyKCk7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGVTdHJpbmcuaW5kZXhPZignLycpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVN0cmluZyA9IG1EYXRlLmZyb21Ob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRlU3RyaW5nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdieXRlc2l6ZScpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IF9weWRpb1V0aWxQYXRoMlsnZGVmYXVsdCddLnJvdW5kRmlsZVNpemUocGFyc2VJbnQobWV0YS5nZXQoa2V5KSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG1ldGEuZ2V0KGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByYXdWYWx1ZSA9IG1ldGEuZ2V0KGtleSk7XG4gICAgICAgICAgICB2YXIgaW5saW5lRWRpdG9yID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5pbmxpbmVFZGl0aW9uICYmIGZpcnN0S2V5KSB7XG4gICAgICAgICAgICAgICAgaW5saW5lRWRpdG9yID0gUmVhY3QuY3JlYXRlRWxlbWVudChfSW5saW5lRWRpdG9yMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGU6IHRoaXMucHJvcHMubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBpbmxpbmVFZGl0aW9uOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMuc3RhdGUuaW5saW5lRWRpdGlvbkNhbGxiYWNrXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdmFyIF9zdHlsZSA9IHRoaXMucHJvcHMuc3R5bGUgfHwge307XG4gICAgICAgICAgICAgICAgX3N0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnN0eWxlID0gX3N0eWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2VsbHMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICB7IGtleToga2V5LCBjbGFzc05hbWU6ICdjZWxsIGNlbGwtJyArIGtleSwgdGl0bGU6IHJhd1ZhbHVlLCBzdHlsZTogc3R5bGUsICdkYXRhLWxhYmVsJzogZGF0YVsnbGFiZWwnXSB9LFxuICAgICAgICAgICAgICAgIGlubGluZUVkaXRvcixcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICBmaXJzdEtleSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX0xpc3RFbnRyeS5EcmFnRHJvcExpc3RFbnRyeSwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHtcbiAgICAgICAgICAgIGljb25DZWxsOiBudWxsLFxuICAgICAgICAgICAgZmlyc3RMaW5lOiBjZWxscyxcbiAgICAgICAgICAgIGFjdGlvbnM6IGFjdGlvbnNcbiAgICAgICAgfSkpO1xuICAgIH1cblxufSk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbiA9IHJlcXVpcmUoJy4uL3V0aWwvTWVzc2FnZXNDb25zdW1lck1peGluJyk7XG5cbnZhciBfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91dGlsTWVzc2FnZXNDb25zdW1lck1peGluKTtcblxudmFyIF9Tb3J0Q29sdW1ucyA9IHJlcXVpcmUoJy4vU29ydENvbHVtbnMnKTtcblxudmFyIF9Tb3J0Q29sdW1uczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Tb3J0Q29sdW1ucyk7XG5cbnZhciBfTGlzdFBhZ2luYXRvciA9IHJlcXVpcmUoJy4vTGlzdFBhZ2luYXRvcicpO1xuXG52YXIgX0xpc3RQYWdpbmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTGlzdFBhZ2luYXRvcik7XG5cbi8qKlxuICogU3BlY2lmaWMgaGVhZGVyIGZvciBUYWJsZSBsYXlvdXQsIHJlYWRpbmcgbWV0YWRhdGEgZnJvbSBub2RlIGFuZCB1c2luZyBrZXlzXG4gKi9cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1RhYmxlTGlzdEhlYWRlcicsXG5cbiAgICBtaXhpbnM6IFtfdXRpbE1lc3NhZ2VzQ29uc3VtZXJNaXhpbjJbJ2RlZmF1bHQnXV0sXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgdGFibGVLZXlzOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICAgIGxvYWRpbmc6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgICAgICByZWxvYWQ6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBkbTogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW9EYXRhTW9kZWwpLFxuICAgICAgICBub2RlOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihBanhwTm9kZSksXG4gICAgICAgIG9uSGVhZGVyQ2xpY2s6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBzb3J0aW5nSW5mbzogUmVhY3QuUHJvcFR5cGVzLm9iamVjdFxuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIGhlYWRlcnMgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYWdpbmF0b3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKSAmJiB0aGlzLnByb3BzLm5vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKS5nZXQoJ3RvdGFsJykgPiAxKSB7XG4gICAgICAgICAgICBwYWdpbmF0b3IgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9MaXN0UGFnaW5hdG9yMlsnZGVmYXVsdCddLCB7IGRhdGFNb2RlbDogdGhpcy5wcm9wcy5kbSwgbm9kZTogdGhpcy5wcm9wcy5ub2RlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgUmVhY3RNVUkuVG9vbGJhcixcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAndG9vbGJhclRhYmxlSGVhZGVyJyB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfU29ydENvbHVtbnMyWydkZWZhdWx0J10sIF9leHRlbmRzKHsgZGlzcGxheU1vZGU6ICd0YWJsZUhlYWRlcicgfSwgdGhpcy5wcm9wcywgeyBjb2x1bW5DbGlja2VkOiB0aGlzLnByb3BzLm9uSGVhZGVyQ2xpY2sgfSkpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBSZWFjdE1VSS5Ub29sYmFyR3JvdXAsXG4gICAgICAgICAgICAgICAgeyBmbG9hdDogJ3JpZ2h0JyB9LFxuICAgICAgICAgICAgICAgIHBhZ2luYXRvcixcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0TVVJLkZvbnRJY29uLCB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogMSxcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5jb250ZXh0LmdldE1lc3NhZ2UoJzE0OScsICcnKSxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImljb24tcmVmcmVzaFwiICsgKHRoaXMucHJvcHMubG9hZGluZyA/IFwiIHJvdGF0aW5nXCIgOiBcIlwiKSxcbiAgICAgICAgICAgICAgICAgICAgb25DbGljazogdGhpcy5wcm9wcy5yZWxvYWRcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmFkZGl0aW9uYWxBY3Rpb25zXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufSk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE4IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8gQ2VsbHMuXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX1V0aWxzID0gcmVxdWlyZSgnLi9VdGlscycpO1xuXG52YXIgX1V0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1V0aWxzKTtcblxudmFyIF9NZW51SXRlbXNDb25zdW1lciA9IHJlcXVpcmUoJy4vTWVudUl0ZW1zQ29uc3VtZXInKTtcblxudmFyIF9NZW51SXRlbXNDb25zdW1lcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9NZW51SXRlbXNDb25zdW1lcik7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3JlYWN0RG9tID0gcmVxdWlyZShcInJlYWN0LWRvbVwiKTtcblxudmFyIF9yZWFjdERvbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdERvbSk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoXCJtYXRlcmlhbC11aVwiKTtcblxudmFyIEJ1dHRvbkNvbXBvc2VkID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0J1dHRvbkNvbXBvc2VkJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBidXR0b25UaXRsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vbmVPZlR5cGUoW19yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLCBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdF0pLmlzUmVxdWlyZWQsXG4gICAgICAgIG1hc3RlckFjdGlvbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIG1lbnVJdGVtczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICBjbGFzc05hbWU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICByYWlzZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgZGlyZWN0aW9uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9uZU9mKFsnbGVmdCcsICdyaWdodCddKVxuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub3Blbk9uRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucHlkaW8ub2JzZXJ2ZSh0aGlzLnByb3BzLm9wZW5PbkV2ZW50LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuc2hvd01lbnUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICByZXR1cm4geyBzaG93TWVudTogZmFsc2UgfTtcbiAgICB9LFxuXG4gICAgc2hvd01lbnU6IGZ1bmN0aW9uIHNob3dNZW51KGV2ZW50KSB7XG4gICAgICAgIHZhciBhbmNob3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgYW5jaG9yID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFuY2hvciA9IHRoaXMuX2J1dHRvbkRPTTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNob3dNZW51OiB0cnVlLFxuICAgICAgICAgICAgYW5jaG9yOiBhbmNob3JcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIG1lbnVDbGlja2VkOiBmdW5jdGlvbiBtZW51Q2xpY2tlZChldmVudCwgaW5kZXgsIG9iamVjdCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd01lbnU6IGZhbHNlIH0pO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIG1hc3RlckJ1dHRvbiA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGFycm93QnV0dG9uID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGlkID0gX3Byb3BzLmlkO1xuICAgICAgICB2YXIgbWFzdGVyQWN0aW9uID0gX3Byb3BzLm1hc3RlckFjdGlvbjtcbiAgICAgICAgdmFyIGJ1dHRvblRpdGxlID0gX3Byb3BzLmJ1dHRvblRpdGxlO1xuICAgICAgICB2YXIgcHJpbWFyeSA9IF9wcm9wcy5wcmltYXJ5O1xuICAgICAgICB2YXIgc2Vjb25kYXJ5ID0gX3Byb3BzLnNlY29uZGFyeTtcbiAgICAgICAgdmFyIGRpc2FibGVkID0gX3Byb3BzLmRpc2FibGVkO1xuICAgICAgICB2YXIgcmFpc2VkID0gX3Byb3BzLnJhaXNlZDtcbiAgICAgICAgdmFyIG1lbnVJdGVtcyA9IF9wcm9wcy5tZW51SXRlbXM7XG4gICAgICAgIHZhciBidXR0b25TdHlsZSA9IF9wcm9wcy5idXR0b25TdHlsZTtcbiAgICAgICAgdmFyIGJ1dHRvbkxhYmVsU3R5bGUgPSBfcHJvcHMuYnV0dG9uTGFiZWxTdHlsZTtcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IF9wcm9wcy5jbGFzc05hbWU7XG4gICAgICAgIHZhciBkaXJlY3Rpb24gPSBfcHJvcHMuZGlyZWN0aW9uO1xuXG4gICAgICAgIHZhciBtYXN0ZXJQcm9wcyA9IHtcbiAgICAgICAgICAgIHByaW1hcnk6IHByaW1hcnksXG4gICAgICAgICAgICBzZWNvbmRhcnk6IHNlY29uZGFyeSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICAgICAgICAgIGxhYmVsOiBidXR0b25UaXRsZSxcbiAgICAgICAgICAgIHN0eWxlOiBfZXh0ZW5kcyh7fSwgYnV0dG9uU3R5bGUsIHsgbWluV2lkdGg6IDYwIH0pLFxuICAgICAgICAgICAgbGFiZWxTdHlsZTogX2V4dGVuZHMoe30sIGJ1dHRvbkxhYmVsU3R5bGUsIHsgcGFkZGluZ1JpZ2h0OiA4IH0pLFxuICAgICAgICAgICAgb25Ub3VjaFRhcDogbWFzdGVyQWN0aW9uLFxuICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciBhcnJvd1Byb3BzID0ge1xuICAgICAgICAgICAgcHJpbWFyeTogcHJpbWFyeSxcbiAgICAgICAgICAgIHNlY29uZGFyeTogc2Vjb25kYXJ5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgICAgICAgbGFiZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6IFwibWRpIG1kaS1tZW51LWRvd25cIiB9KSxcbiAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRoaXMuc2hvd01lbnUsXG4gICAgICAgICAgICBzdHlsZTogX2V4dGVuZHMoe30sIGJ1dHRvblN0eWxlLCB7IG1pbldpZHRoOiAxNiB9KSxcbiAgICAgICAgICAgIGxhYmVsU3R5bGU6IF9leHRlbmRzKHt9LCBidXR0b25MYWJlbFN0eWxlLCB7IHBhZGRpbmdMZWZ0OiA4LCBwYWRkaW5nUmlnaHQ6IDggfSksXG4gICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIF9zdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciBzaG93TWVudSA9IF9zdGF0ZS5zaG93TWVudTtcbiAgICAgICAgdmFyIGFuY2hvciA9IF9zdGF0ZS5hbmNob3I7XG4gICAgICAgIHZhciBvdmVyID0gX3N0YXRlLm92ZXI7XG5cbiAgICAgICAgaWYgKG1lbnVJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChyYWlzZWQpIHtcbiAgICAgICAgICAgICAgICBhcnJvd0J1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlJhaXNlZEJ1dHRvbiwgX2V4dGVuZHMoe30sIGFycm93UHJvcHMsIHsgcmVmOiBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLl9idXR0b25ET00gPSBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUoYik7XG4gICAgICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgICAgIG1hc3RlckJ1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlJhaXNlZEJ1dHRvbiwgbWFzdGVyUHJvcHMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcnJvd0J1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZsYXRCdXR0b24sIF9leHRlbmRzKHt9LCBhcnJvd1Byb3BzLCB7IHJlZjogZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5fYnV0dG9uRE9NID0gX3JlYWN0RG9tMlsnZGVmYXVsdCddLmZpbmRET01Ob2RlKGIpO1xuICAgICAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICAgICBtYXN0ZXJCdXR0b24gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5GbGF0QnV0dG9uLCBtYXN0ZXJQcm9wcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgeyBpZDogaWQsIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uTW91c2VPdmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IG92ZXI6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgfSwgb25Nb3VzZU91dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBvdmVyOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHN0eWxlOiBvdmVyIHx8IHNob3dNZW51ID8geyBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDE1MywgMTUzLCAxNTMsIDAuMiknLCB3aGl0ZVNwYWNlOiAnbm93cmFwJyB9IDogeyB3aGl0ZVNwYWNlOiAnbm93cmFwJyB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbWFzdGVyQnV0dG9uLFxuICAgICAgICAgICAgYXJyb3dCdXR0b24sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5Qb3BvdmVyLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWVudVBvcG92ZXInLFxuICAgICAgICAgICAgICAgICAgICBvcGVuOiBzaG93TWVudSxcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IGFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6IGRpcmVjdGlvbiB8fCAnbGVmdCcsIHZlcnRpY2FsOiAnYm90dG9tJyB9LFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRPcmlnaW46IHsgaG9yaXpvbnRhbDogZGlyZWN0aW9uIHx8ICdsZWZ0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93TWVudTogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IG1hcmdpblRvcDogMSB9LFxuICAgICAgICAgICAgICAgICAgICB1c2VMYXllckZvckNsaWNrQXdheTogZmFsc2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF9VdGlsczJbJ2RlZmF1bHQnXS5pdGVtc1RvTWVudShtZW51SXRlbXMsIHRoaXMubWVudUNsaWNrZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gX01lbnVJdGVtc0NvbnN1bWVyMlsnZGVmYXVsdCddKEJ1dHRvbkNvbXBvc2VkKTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTggQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpbyBDZWxscy5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfVXRpbHMgPSByZXF1aXJlKCcuL1V0aWxzJyk7XG5cbnZhciBfVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXRpbHMpO1xuXG52YXIgX01lbnVJdGVtc0NvbnN1bWVyID0gcmVxdWlyZSgnLi9NZW51SXRlbXNDb25zdW1lcicpO1xuXG52YXIgX01lbnVJdGVtc0NvbnN1bWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX01lbnVJdGVtc0NvbnN1bWVyKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3REb20gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpO1xuXG52YXIgX3JlYWN0RG9tMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0RG9tKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZShcIm1hdGVyaWFsLXVpXCIpO1xuXG52YXIgQnV0dG9uTWVudSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdCdXR0b25NZW51JyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBidXR0b25UaXRsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vbmVPZlR5cGUoW19yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLCBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdF0pLmlzUmVxdWlyZWQsXG4gICAgICAgIG1lbnVJdGVtczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICBjbGFzc05hbWU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICByYWlzZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgZGlyZWN0aW9uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9uZU9mKFsnbGVmdCcsICdyaWdodCddKVxuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub3Blbk9uRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMucHlkaW8ub2JzZXJ2ZSh0aGlzLnByb3BzLm9wZW5PbkV2ZW50LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuc2hvd01lbnUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICByZXR1cm4geyBzaG93TWVudTogZmFsc2UgfTtcbiAgICB9LFxuXG4gICAgc2hvd01lbnU6IGZ1bmN0aW9uIHNob3dNZW51KGV2ZW50KSB7XG4gICAgICAgIHZhciBhbmNob3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgYW5jaG9yID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFuY2hvciA9IHRoaXMuX2J1dHRvbkRPTTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNob3dNZW51OiB0cnVlLFxuICAgICAgICAgICAgYW5jaG9yOiBhbmNob3JcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIG1lbnVDbGlja2VkOiBmdW5jdGlvbiBtZW51Q2xpY2tlZChldmVudCwgaW5kZXgsIG9iamVjdCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd01lbnU6IGZhbHNlIH0pO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9zdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciBzaG93TWVudSA9IF9zdGF0ZS5zaG93TWVudTtcbiAgICAgICAgdmFyIGFuY2hvciA9IF9zdGF0ZS5hbmNob3I7XG5cbiAgICAgICAgdmFyIGxhYmVsID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICB7IHN0eWxlOiB7IHdoaXRlU3BhY2U6ICdub3dyYXAnIH0gfSxcbiAgICAgICAgICAgIHRoaXMucHJvcHMuYnV0dG9uVGl0bGUsXG4gICAgICAgICAgICAnICcsXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiAnbWRpIG1kaS1tZW51LWRvd24nIH0pXG4gICAgICAgICk7XG4gICAgICAgIHZhciBidXR0b24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgICAgIHByaW1hcnk6IHRoaXMucHJvcHMucHJpbWFyeSxcbiAgICAgICAgICAgIHNlY29uZGFyeTogdGhpcy5wcm9wcy5zZWNvbmRhcnksXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5wcm9wcy5kaXNhYmVsZCxcbiAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRoaXMuc2hvd01lbnUsXG4gICAgICAgICAgICBsYWJlbFN0eWxlOiBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcy5idXR0b25MYWJlbFN0eWxlLCB7IHBhZGRpbmdSaWdodDogMTAgfSksXG4gICAgICAgICAgICBzdHlsZTogX2V4dGVuZHMoe30sIHRoaXMucHJvcHMuYnV0dG9uU3R5bGUsIHsgYmFja2dyb3VuZENvbG9yOiBzaG93TWVudSA/ICdyZ2JhKDE1MywxNTMsMTUzLC4yKScgOiAnJyB9KSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgbWVudUl0ZW1zID0gdGhpcy5wcm9wcy5tZW51SXRlbXM7XG5cbiAgICAgICAgaWYgKG1lbnVJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnJhaXNlZCkge1xuICAgICAgICAgICAgICAgIGJ1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlJhaXNlZEJ1dHRvbiwgX2V4dGVuZHMoe30sIHByb3BzLCB7IHJlZjogZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5fYnV0dG9uRE9NID0gX3JlYWN0RG9tMlsnZGVmYXVsdCddLmZpbmRET01Ob2RlKGIpO1xuICAgICAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRmxhdEJ1dHRvbiwgX2V4dGVuZHMoe30sIHByb3BzLCB7IHJlZjogZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5fYnV0dG9uRE9NID0gX3JlYWN0RG9tMlsnZGVmYXVsdCddLmZpbmRET01Ob2RlKGIpO1xuICAgICAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICB7IGlkOiB0aGlzLnByb3BzLmlkLCBjbGFzc05hbWU6IHRoaXMucHJvcHMuY2xhc3NOYW1lIH0sXG4gICAgICAgICAgICBidXR0b24sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5Qb3BvdmVyLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWVudVBvcG92ZXInLFxuICAgICAgICAgICAgICAgICAgICBvcGVuOiBzaG93TWVudSxcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IGFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6IHRoaXMucHJvcHMuZGlyZWN0aW9uIHx8ICdsZWZ0JywgdmVydGljYWw6ICdib3R0b20nIH0sXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiB0aGlzLnByb3BzLmRpcmVjdGlvbiB8fCAnbGVmdCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd01lbnU6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBtYXJnaW5Ub3A6IDEgfSxcbiAgICAgICAgICAgICAgICAgICAgdXNlTGF5ZXJGb3JDbGlja0F3YXk6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBfVXRpbHMyWydkZWZhdWx0J10uaXRlbXNUb01lbnUobWVudUl0ZW1zLCB0aGlzLm1lbnVDbGlja2VkKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxufSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IF9NZW51SXRlbXNDb25zdW1lcjJbJ2RlZmF1bHQnXShCdXR0b25NZW51KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcHlkaW9Nb2RlbENvbnRleHRNZW51ID0gcmVxdWlyZSgncHlkaW8vbW9kZWwvY29udGV4dC1tZW51Jyk7XG5cbnZhciBfcHlkaW9Nb2RlbENvbnRleHRNZW51MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvTW9kZWxDb250ZXh0TWVudSk7XG5cbnZhciBfVXRpbHMgPSByZXF1aXJlKCcuL1V0aWxzJyk7XG5cbnZhciBfVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXRpbHMpO1xuXG52YXIgX1BvcHVwTWVudSA9IHJlcXVpcmUoJy4vUG9wdXBNZW51Jyk7XG5cbnZhciBfUG9wdXBNZW51MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1BvcHVwTWVudSk7XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBDb21wb25lbnQgPSBfcmVxdWlyZS5Db21wb25lbnQ7XG5cbnZhciBkaW1zID0ge1xuICAgIE1FTlVfSVRFTV9IRUlHSFQ6IDMyLCAvLzQ4IGlmIG5vdCBkaXNwbGF5OmNvbXBhY3RcbiAgICBNRU5VX1NFUF9IRUlHSFQ6IDE2LFxuICAgIE1FTlVfVkVSVElDQUxfUEFERElORzogOCxcbiAgICBNRU5VX1dJRFRIOiAyNTAsXG4gICAgT0ZGU0VUX1ZFUlRJQ0FMOiA4LFxuICAgIE9GRlNFVF9IT1JJWk9OVEFMOiA4XG59O1xuXG52YXIgQ29udGV4dE1lbnUgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoQ29udGV4dE1lbnUsIF9Db21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gQ29udGV4dE1lbnUoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb250ZXh0TWVudSk7XG5cbiAgICAgICAgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIENvbnRleHRNZW51LnByb3RvdHlwZS5tb2RlbE9wZW4gPSBmdW5jdGlvbiBtb2RlbE9wZW4obm9kZSkge1xuICAgICAgICB2YXIgcG9zaXRpb24gPSBfcHlkaW9Nb2RlbENvbnRleHRNZW51MlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkuZ2V0UG9zaXRpb24oKTtcbiAgICAgICAgdmFyIGl0ZW1zID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgdmFyIGRtID0gcHlkaW8uZ2V0Q29udGV4dEhvbGRlcigpO1xuICAgICAgICAgICAgaWYgKGRtLmdldFNlbGVjdGVkTm9kZXMoKS5pbmRleE9mKG5vZGUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3Blbk1lbnUoJ3NlbGVjdGlvbkNvbnRleHQnLCBwb3NpdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHB5ZGlvLm9ic2VydmVPbmNlKFwiYWN0aW9uc19yZWZyZXNoZWRcIiwgKGZ1bmN0aW9uIChkYXRhTW9kZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuTWVudSgnc2VsZWN0aW9uQ29udGV4dCcsIHBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgICAgICBkbS5zZXRTZWxlY3RlZE5vZGVzKFtub2RlXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5NZW51KCdnZW5lcmljQ29udGV4dCcsIHBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDb250ZXh0TWVudS5wcm90b3R5cGUub3Blbk1lbnUgPSBmdW5jdGlvbiBvcGVuTWVudShjb250ZXh0LCBwb3NpdGlvbikge1xuICAgICAgICB2YXIgaXRlbXMgPSB0aGlzLmNvbXB1dGVNZW51SXRlbXMoY29udGV4dCk7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XG4gICAgICAgIHZhciBtb2JpbGUgPSB0aGlzLnByb3BzLnB5ZGlvLlVJLk1PQklMRV9FWFRFTlNJT05TO1xuICAgICAgICBpZiAoIW1vYmlsZSkge1xuICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLmNvbXB1dGVWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24sIGl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMucmVmc1snbWVudSddLnNob3dNZW51KHtcbiAgICAgICAgICAgICAgICB0b3A6IHBvc2l0aW9uLnksXG4gICAgICAgICAgICAgICAgbGVmdDogcG9zaXRpb24ueFxuICAgICAgICAgICAgfSwgaXRlbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZWZzWydtZW51J10uc2hvd01lbnUoe1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgICAgIGhlaWdodDogMjAwLFxuICAgICAgICAgICAgICAgIHpJbmRleDogMTAwMDAsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bydcbiAgICAgICAgICAgIH0sIGl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDb250ZXh0TWVudS5wcm90b3R5cGUuY29tcHV0ZU1lbnVJdGVtcyA9IGZ1bmN0aW9uIGNvbXB1dGVNZW51SXRlbXMoY29udGV4dCkge1xuICAgICAgICB2YXIgYWN0aW9ucyA9IHRoaXMucHJvcHMucHlkaW8uQ29udHJvbGxlci5nZXRDb250ZXh0QWN0aW9ucyhjb250ZXh0LCBbJ2lubGluZScsICdpbmZvX3BhbmVsJywgJ2luZm9fcGFuZWxfc2hhcmUnXSk7XG4gICAgICAgIHJldHVybiBfVXRpbHMyWydkZWZhdWx0J10ucHlkaW9BY3Rpb25zVG9JdGVtcyhhY3Rpb25zKTtcbiAgICB9O1xuXG4gICAgQ29udGV4dE1lbnUucHJvdG90eXBlLmNvbXB1dGVWaXNpYmxlUG9zaXRpb24gPSBmdW5jdGlvbiBjb21wdXRlVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uLCBpdGVtcykge1xuICAgICAgICB2YXIgbWVudUhlaWdodCA9IGRpbXMuTUVOVV9WRVJUSUNBTF9QQURESU5HICogMjtcbiAgICAgICAgaXRlbXMubWFwKGZ1bmN0aW9uIChpdCkge1xuICAgICAgICAgICAgaWYgKGl0LnNlcGFyYXRvcikgbWVudUhlaWdodCArPSBkaW1zLk1FTlVfU0VQX0hFSUdIVDtlbHNlIG1lbnVIZWlnaHQgKz0gZGltcy5NRU5VX0lURU1fSEVJR0hUO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG1lbnVXaWR0aCA9IGRpbXMuTUVOVV9XSURUSDtcbiAgICAgICAgdmFyIHdpbmRvd1cgPSBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsIHdpbmRvdy5pbm5lcldpZHRoIHx8IDApO1xuICAgICAgICB2YXIgd2luZG93SCA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsIHdpbmRvdy5pbm5lckhlaWdodCB8fCAwKTtcbiAgICAgICAgaWYgKHBvc2l0aW9uLnggKyBtZW51V2lkdGggPiB3aW5kb3dXKSB7XG4gICAgICAgICAgICBwb3NpdGlvbi54ID0gTWF0aC5tYXgocG9zaXRpb24ueCAtIG1lbnVXaWR0aCwgMTApIC0gZGltcy5PRkZTRVRfSE9SSVpPTlRBTDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uLnggKz0gZGltcy5PRkZTRVRfSE9SSVpPTlRBTDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zaXRpb24ueSArIG1lbnVIZWlnaHQgPiB3aW5kb3dIKSB7XG4gICAgICAgICAgICBwb3NpdGlvbi55ID0gTWF0aC5tYXgocG9zaXRpb24ueSAtIG1lbnVIZWlnaHQsIDEwKSAtIGRpbXMuT0ZGU0VUX1ZFUlRJQ0FMO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9zaXRpb24ueSArPSBkaW1zLk9GRlNFVF9WRVJUSUNBTDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9zaXRpb247XG4gICAgfTtcblxuICAgIENvbnRleHRNZW51LnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLl9tb2RlbE9wZW4gPSB0aGlzLm1vZGVsT3Blbi5iaW5kKHRoaXMpO1xuICAgICAgICBfcHlkaW9Nb2RlbENvbnRleHRNZW51MlsnZGVmYXVsdCddLmdldEluc3RhbmNlKCkub2JzZXJ2ZShcIm9wZW5cIiwgdGhpcy5fbW9kZWxPcGVuKTtcbiAgICB9O1xuXG4gICAgQ29udGV4dE1lbnUucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIF9weWRpb01vZGVsQ29udGV4dE1lbnUyWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS5zdG9wT2JzZXJ2aW5nKFwib3BlblwiLCB0aGlzLl9tb2RlbE9wZW4pO1xuICAgIH07XG5cbiAgICBDb250ZXh0TWVudS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgbW9iaWxlID0gdGhpcy5wcm9wcy5weWRpby5VSS5NT0JJTEVfRVhURU5TSU9OUztcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX1BvcHVwTWVudTJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgcmVmOiAnbWVudScsXG4gICAgICAgICAgICBtZW51SXRlbXM6IHRoaXMuX2l0ZW1zIHx8IFtdLFxuICAgICAgICAgICAgb25NZW51Q2xvc2VkOiB0aGlzLnByb3BzLm9uTWVudUNsb3NlZCxcbiAgICAgICAgICAgIG1lbnVQcm9wczogbW9iaWxlID8geyB3aWR0aDogNjAwLCBhdXRvV2lkdGg6IGZhbHNlLCBkZXNrdG9wOiBmYWxzZSB9IDoge30sXG4gICAgICAgICAgICB6RGVwdGg6IG1vYmlsZSA/IDIgOiAxXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gQ29udGV4dE1lbnU7XG59KShDb21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBDb250ZXh0TWVudTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfVXRpbHMgPSByZXF1aXJlKCcuL1V0aWxzJyk7XG5cbnZhciBfVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXRpbHMpO1xuXG52YXIgX01lbnVJdGVtc0NvbnN1bWVyID0gcmVxdWlyZSgnLi9NZW51SXRlbXNDb25zdW1lcicpO1xuXG52YXIgX01lbnVJdGVtc0NvbnN1bWVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX01lbnVJdGVtc0NvbnN1bWVyKTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIEljb25CdXR0b24gPSBfcmVxdWlyZS5JY29uQnV0dG9uO1xudmFyIFBvcG92ZXIgPSBfcmVxdWlyZS5Qb3BvdmVyO1xuXG52YXIgSWNvbkJ1dHRvbk1lbnUgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoSWNvbkJ1dHRvbk1lbnUsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gSWNvbkJ1dHRvbk1lbnUocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEljb25CdXR0b25NZW51KTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBzaG93TWVudTogZmFsc2UgfTtcbiAgICB9XG5cbiAgICBJY29uQnV0dG9uTWVudS5wcm90b3R5cGUuc2hvd01lbnUgPSBmdW5jdGlvbiBzaG93TWVudShldmVudCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNob3dNZW51OiB0cnVlLFxuICAgICAgICAgICAgYW5jaG9yOiBldmVudC5jdXJyZW50VGFyZ2V0XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBJY29uQnV0dG9uTWVudS5wcm90b3R5cGUuY2xvc2VNZW51ID0gZnVuY3Rpb24gY2xvc2VNZW51KGV2ZW50LCBpbmRleCwgbWVudUl0ZW0pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dNZW51OiBmYWxzZSB9KTtcbiAgICB9O1xuXG4gICAgSWNvbkJ1dHRvbk1lbnUucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIG1lbnVJdGVtcyA9IF9wcm9wcy5tZW51SXRlbXM7XG4gICAgICAgIHZhciBjbGFzc05hbWUgPSBfcHJvcHMuY2xhc3NOYW1lO1xuICAgICAgICB2YXIgYnV0dG9uVGl0bGUgPSBfcHJvcHMuYnV0dG9uVGl0bGU7XG4gICAgICAgIHZhciBidXR0b25DbGFzc05hbWUgPSBfcHJvcHMuYnV0dG9uQ2xhc3NOYW1lO1xuICAgICAgICB2YXIgY29udGFpbmVyU3R5bGUgPSBfcHJvcHMuY29udGFpbmVyU3R5bGU7XG4gICAgICAgIHZhciBidXR0b25TdHlsZSA9IF9wcm9wcy5idXR0b25TdHlsZTtcbiAgICAgICAgdmFyIHBvcG92ZXJEaXJlY3Rpb24gPSBfcHJvcHMucG9wb3ZlckRpcmVjdGlvbjtcbiAgICAgICAgdmFyIHBvcG92ZXJUYXJnZXRQb3NpdGlvbiA9IF9wcm9wcy5wb3BvdmVyVGFyZ2V0UG9zaXRpb247XG4gICAgICAgIHZhciBtZW51UHJvcHMgPSBfcHJvcHMubWVudVByb3BzO1xuXG4gICAgICAgIGlmICghbWVudUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJ0b29sYmFycy1idXR0b24tbWVudSBcIiArIChjbGFzc05hbWUgPyBjbGFzc05hbWUgOiAnJyksIHN0eWxlOiBjb250YWluZXJTdHlsZSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgcmVmOiAnbWVudUJ1dHRvbicsXG4gICAgICAgICAgICAgICAgdG9vbHRpcDogYnV0dG9uVGl0bGUsXG4gICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogYnV0dG9uQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRoaXMuc2hvd01lbnUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBpY29uU3R5bGU6IGJ1dHRvblN0eWxlXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgUG9wb3ZlcixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW46IHRoaXMuc3RhdGUuc2hvd01lbnUsXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvckVsOiB0aGlzLnN0YXRlLmFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6IHBvcG92ZXJEaXJlY3Rpb24gfHwgJ3JpZ2h0JywgdmVydGljYWw6IHBvcG92ZXJUYXJnZXRQb3NpdGlvbiB8fCAnYm90dG9tJyB9LFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRPcmlnaW46IHsgaG9yaXpvbnRhbDogcG9wb3ZlckRpcmVjdGlvbiB8fCAncmlnaHQnLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgc2hvd01lbnU6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB1c2VMYXllckZvckNsaWNrQXdheTogZmFsc2VcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF9VdGlsczJbJ2RlZmF1bHQnXS5pdGVtc1RvTWVudShtZW51SXRlbXMsIHRoaXMuY2xvc2VNZW51LmJpbmQodGhpcyksIGZhbHNlLCBtZW51UHJvcHMgfHwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gSWNvbkJ1dHRvbk1lbnU7XG59KShSZWFjdC5Db21wb25lbnQpO1xuXG5JY29uQnV0dG9uTWVudS5wcm9wVHlwZXMgPSB7XG4gICAgYnV0dG9uVGl0bGU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBidXR0b25DbGFzc05hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBjbGFzc05hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgcG9wb3ZlckRpcmVjdGlvbjogUmVhY3QuUHJvcFR5cGVzLm9uZU9mKFsncmlnaHQnLCAnbGVmdCddKSxcbiAgICBwb3BvdmVyUG9zaXRpb246IFJlYWN0LlByb3BUeXBlcy5vbmVPZihbJ3RvcCcsICdib3R0b20nXSksXG4gICAgbWVudVByb3BzOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIG1lbnVJdGVtczogUmVhY3QuUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IF9NZW51SXRlbXNDb25zdW1lcjJbJ2RlZmF1bHQnXShJY29uQnV0dG9uTWVudSk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIEljb25CdXR0b24gPSBfcmVxdWlyZS5JY29uQnV0dG9uO1xudmFyIFBvcG92ZXIgPSBfcmVxdWlyZS5Qb3BvdmVyO1xuXG52YXIgSWNvbkJ1dHRvblBvcG92ZXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoSWNvbkJ1dHRvblBvcG92ZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gSWNvbkJ1dHRvblBvcG92ZXIocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEljb25CdXR0b25Qb3BvdmVyKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBzaG93UG9wb3ZlcjogZmFsc2UgfTtcbiAgICB9XG5cbiAgICBJY29uQnV0dG9uUG9wb3Zlci5wcm90b3R5cGUuc2hvd1BvcG92ZXIgPSBmdW5jdGlvbiBzaG93UG9wb3ZlcihldmVudCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNob3dQb3BvdmVyOiB0cnVlLFxuICAgICAgICAgICAgYW5jaG9yOiBldmVudC5jdXJyZW50VGFyZ2V0XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBJY29uQnV0dG9uUG9wb3Zlci5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwidG9vbGJhcnMtYnV0dG9uLW1lbnUgXCIgKyAodGhpcy5wcm9wcy5jbGFzc05hbWUgPyB0aGlzLnByb3BzLmNsYXNzTmFtZSA6ICcnKSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgcmVmOiAnbWVudUJ1dHRvbicsXG4gICAgICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5wcm9wcy5idXR0b25UaXRsZSxcbiAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiB0aGlzLnByb3BzLmJ1dHRvbkNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiB0aGlzLnNob3dQb3BvdmVyLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlOiB0aGlzLnByb3BzLmJ1dHRvblN0eWxlXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgUG9wb3ZlcixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW46IHRoaXMuc3RhdGUuc2hvd1BvcG92ZXIsXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvckVsOiB0aGlzLnN0YXRlLmFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6IHRoaXMucHJvcHMuZGlyZWN0aW9uIHx8ICdyaWdodCcsIHZlcnRpY2FsOiAnYm90dG9tJyB9LFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRPcmlnaW46IHsgaG9yaXpvbnRhbDogdGhpcy5wcm9wcy5kaXJlY3Rpb24gfHwgJ3JpZ2h0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHNob3dQb3BvdmVyOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdXNlTGF5ZXJGb3JDbGlja0F3YXk6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnBvcG92ZXJDb250ZW50XG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBJY29uQnV0dG9uUG9wb3Zlcjtcbn0pKFJlYWN0LkNvbXBvbmVudCk7XG5cbkljb25CdXR0b25Qb3BvdmVyLnByb3BUeXBlcyA9IHtcbiAgICBidXR0b25UaXRsZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGJ1dHRvbkNsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGNsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXJlY3Rpb246IFJlYWN0LlByb3BUeXBlcy5vbmVPZihbJ3JpZ2h0JywgJ2xlZnQnXSksXG4gICAgcG9wb3ZlckNvbnRlbnQ6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSWNvbkJ1dHRvblBvcG92ZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX1V0aWxzID0gcmVxdWlyZSgnLi9VdGlscycpO1xuXG52YXIgX1V0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1V0aWxzKTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBDb250cm9sbGVyID0gcmVxdWlyZSgncHlkaW8vbW9kZWwvY29udHJvbGxlcicpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAoQ29tcG9uZW50KSB7XG4gICAgdmFyIFdyYXBwZWQgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICAgICAgX2luaGVyaXRzKFdyYXBwZWQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgICAgIGZ1bmN0aW9uIFdyYXBwZWQocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBXcmFwcGVkKTtcblxuICAgICAgICAgICAgX1JlYWN0JENvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLCBjb250ZXh0KTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW1zOiB0aGlzLnByb3BzLm1lbnVJdGVtcyB8fCBbXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIFdyYXBwZWQucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5jb250cm9sbGVyICYmICF0aGlzLnByb3BzLm1lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgIHRoaXMuX29ic2VydmVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYWN0aW9ucyA9IF90aGlzLnByb3BzLmNvbnRyb2xsZXIuZ2V0Q29udGV4dEFjdGlvbnMoJ2dlbmVyaWNDb250ZXh0JywgbnVsbCwgX3RoaXMucHJvcHMudG9vbGJhcnMpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbWVudUl0ZW1zID0gX1V0aWxzMlsnZGVmYXVsdCddLnB5ZGlvQWN0aW9uc1RvSXRlbXMoYWN0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgbWVudUl0ZW1zOiBtZW51SXRlbXMgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5jb250cm9sbGVyID09PSB0aGlzLnByb3BzLnB5ZGlvLkNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5weWRpby5vYnNlcnZlKFwiYWN0aW9uc19yZWZyZXNoZWRcIiwgdGhpcy5fb2JzZXJ2ZXIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuY29udHJvbGxlci5vYnNlcnZlKFwiYWN0aW9uc19yZWZyZXNoZWRcIiwgdGhpcy5fb2JzZXJ2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9vYnNlcnZlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIFdyYXBwZWQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fb2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5jb250cm9sbGVyID09PSB0aGlzLnByb3BzLnB5ZGlvLkNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5weWRpby5zdG9wT2JzZXJ2aW5nKFwiYWN0aW9uc19yZWZyZXNoZWRcIiwgdGhpcy5fb2JzZXJ2ZXIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuY29udHJvbGxlci5zdG9wT2JzZXJ2aW5nKFwiYWN0aW9uc19yZWZyZXNoZWRcIiwgdGhpcy5fb2JzZXJ2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBXcmFwcGVkLnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgICAgIGlmIChuZXh0UHJvcHMubWVudUl0ZW1zICYmIG5leHRQcm9wcy5tZW51SXRlbXMgIT09IHRoaXMucHJvcHMubWVudUl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1lbnVJdGVtczogbmV4dFByb3BzLm1lbnVJdGVtcyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBXcmFwcGVkLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLCB7IG1lbnVJdGVtczogdGhpcy5zdGF0ZS5tZW51SXRlbXMgfSkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBXcmFwcGVkO1xuICAgIH0pKFJlYWN0LkNvbXBvbmVudCk7XG5cbiAgICBXcmFwcGVkLnByb3BUeXBlcyA9IHtcbiAgICAgICAgbWVudUl0ZW1zOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIHRvb2xiYXJzOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIGNvbnRyb2xsZXI6IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKENvbnRyb2xsZXIpLFxuICAgICAgICBweWRpbzogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW8pXG4gICAgfTtcblxuICAgIHJldHVybiBXcmFwcGVkO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX1V0aWxzID0gcmVxdWlyZSgnLi9VdGlscycpO1xuXG52YXIgX1V0aWxzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1V0aWxzKTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBSZWFjdERPTSA9IHJlcXVpcmUoJ3JlYWN0LWRvbScpO1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgTWVudSA9IF9yZXF1aXJlLk1lbnU7XG52YXIgUGFwZXIgPSBfcmVxdWlyZS5QYXBlcjtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1BvcHVwTWVudScsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgbWVudUl0ZW1zOiBSZWFjdC5Qcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICAgICAgb25FeHRlcm5hbENsaWNrQ2hlY2tFbGVtZW50czogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGNsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgc3R5bGU6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIG9uTWVudUNsb3NlZDogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7IHNob3dNZW51OiBmYWxzZSwgbWVudUl0ZW1zOiB0aGlzLnByb3BzLm1lbnVJdGVtcyB9O1xuICAgIH0sXG4gICAgc2hvd01lbnU6IGZ1bmN0aW9uIHNob3dNZW51KCkge1xuICAgICAgICB2YXIgc3R5bGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzBdO1xuICAgICAgICB2YXIgbWVudUl0ZW1zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNob3dNZW51OiB0cnVlLFxuICAgICAgICAgICAgc3R5bGU6IHN0eWxlLFxuICAgICAgICAgICAgbWVudUl0ZW1zOiBtZW51SXRlbXMgPyBtZW51SXRlbXMgOiB0aGlzLnN0YXRlLm1lbnVJdGVtc1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGhpZGVNZW51OiBmdW5jdGlvbiBoaWRlTWVudShldmVudCkge1xuICAgICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd01lbnU6IGZhbHNlIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25NZW51Q2xvc2VkKSB0aGlzLnByb3BzLm9uTWVudUNsb3NlZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZpcmVmb3ggdHJpZ2dlciBhIGNsaWNrIGV2ZW50IHdoZW4geW91IG1vdXNlIHVwIG9uIGNvbnRleHRtZW51IGV2ZW50XG4gICAgICAgIGlmICh0eXBlb2YgZXZlbnQgIT09ICd1bmRlZmluZWQnICYmIGV2ZW50LmJ1dHRvbiA9PT0gMiAmJiBldmVudC50eXBlICE9PSAnY29udGV4dG1lbnUnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG5vZGUgPSBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzLnJlZnMubWVudUNvbnRhaW5lcik7XG4gICAgICAgIGlmIChub2RlLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHwgbm9kZSA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd01lbnU6IGZhbHNlIH0pO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbk1lbnVDbG9zZWQpIHRoaXMucHJvcHMub25NZW51Q2xvc2VkKCk7XG4gICAgfSxcbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuX29ic2VydmVyID0gdGhpcy5oaWRlTWVudTtcbiAgICB9LFxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9vYnNlcnZlciwgZmFsc2UpO1xuICAgIH0sXG4gICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgaWYgKG5leHRQcm9wcy5tZW51SXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBtZW51SXRlbXM6IG5leHRQcm9wcy5tZW51SXRlbXMgfSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNvbXBvbmVudERpZFVwZGF0ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgbmV4dFByb3BzKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNob3dNZW51KSB7XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX29ic2VydmVyLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX29ic2VydmVyLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgbWVudUNsaWNrZWQ6IGZ1bmN0aW9uIG1lbnVDbGlja2VkKGV2ZW50LCBpbmRleCwgbWVudUl0ZW0pIHtcbiAgICAgICAgdGhpcy5oaWRlTWVudSgpO1xuICAgIH0sXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG5cbiAgICAgICAgdmFyIHN0eWxlID0gdGhpcy5zdGF0ZS5zdHlsZSB8fCB7fTtcbiAgICAgICAgc3R5bGUgPSBfZXh0ZW5kcyh7fSwgc3R5bGUsIHsgekluZGV4OiAxMDAwIH0pO1xuICAgICAgICB2YXIgbWVudSA9IF9VdGlsczJbJ2RlZmF1bHQnXS5pdGVtc1RvTWVudSh0aGlzLnN0YXRlLm1lbnVJdGVtcywgdGhpcy5tZW51Q2xpY2tlZCwgZmFsc2UsIF9leHRlbmRzKHsgZGVza3RvcDogdHJ1ZSwgZGlzcGxheTogJ3JpZ2h0Jywgd2lkdGg6IDI1MCB9LCB0aGlzLnByb3BzLm1lbnVQcm9wcykpO1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5zaG93TWVudSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgUGFwZXIsXG4gICAgICAgICAgICAgICAgeyB6RGVwdGg6IHRoaXMucHJvcHMuekRlcHRoIHx8IDEsIHJlZjogJ21lbnVDb250YWluZXInLCBjbGFzc05hbWU6ICdtZW51LXBvc2l0aW9uZXInLCBzdHlsZTogc3R5bGUgfSxcbiAgICAgICAgICAgICAgICBtZW51XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfVXRpbHMgPSByZXF1aXJlKCcuL1V0aWxzJyk7XG5cbnZhciBfVXRpbHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXRpbHMpO1xuXG52YXIgX0ljb25CdXR0b25NZW51ID0gcmVxdWlyZSgnLi9JY29uQnV0dG9uTWVudScpO1xuXG52YXIgX0ljb25CdXR0b25NZW51MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0ljb25CdXR0b25NZW51KTtcblxudmFyIF9CdXR0b25NZW51ID0gcmVxdWlyZSgnLi9CdXR0b25NZW51Jyk7XG5cbnZhciBfQnV0dG9uTWVudTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9CdXR0b25NZW51KTtcblxudmFyIF9CdXR0b25Db21wb3NlZCA9IHJlcXVpcmUoJy4vQnV0dG9uQ29tcG9zZWQnKTtcblxudmFyIF9CdXR0b25Db21wb3NlZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9CdXR0b25Db21wb3NlZCk7XG5cbnZhciBfSWNvbkJ1dHRvblBvcG92ZXIgPSByZXF1aXJlKCcuL0ljb25CdXR0b25Qb3BvdmVyJyk7XG5cbnZhciBfSWNvbkJ1dHRvblBvcG92ZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSWNvbkJ1dHRvblBvcG92ZXIpO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlQ2xhc3Moe1xuICAgIGRpc3BsYXlOYW1lOiAnVG9vbGJhcicsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgdG9vbGJhcnM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYXJyYXksXG4gICAgICAgIGdyb3VwT3RoZXJMaXN0OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICByZW5kZXJpbmdUeXBlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgY29udHJvbGxlcjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKENvbnRyb2xsZXIpLFxuICAgICAgICB0b29sYmFyU3R5bGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICBidXR0b25TdHlsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIGZhYkFjdGlvbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIGJ1dHRvbk1lbnVOb0xhYmVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2xcbiAgICB9LFxuXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLl9vYnNlcnZlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb3VudGVkKCkpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGdyb3VwczogdGhpcy5wcm9wcy5jb250cm9sbGVyLmdldFRvb2xiYXJzQWN0aW9ucyh0aGlzLnByb3BzLnRvb2xiYXJzLCB0aGlzLnByb3BzLmdyb3VwT3RoZXJMaXN0KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2xsZXIgPT09IHB5ZGlvLkNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIHB5ZGlvLm9ic2VydmUoXCJhY3Rpb25zX3JlZnJlc2hlZFwiLCB0aGlzLl9vYnNlcnZlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmNvbnRyb2xsZXIub2JzZXJ2ZShcImFjdGlvbnNfcmVmcmVzaGVkXCIsIHRoaXMuX29ic2VydmVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2xsZXIgPT09IHB5ZGlvLkNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIHB5ZGlvLnN0b3BPYnNlcnZpbmcoXCJhY3Rpb25zX3JlZnJlc2hlZFwiLCB0aGlzLl9vYnNlcnZlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmNvbnRyb2xsZXIuc3RvcE9ic2VydmluZyhcImFjdGlvbnNfcmVmcmVzaGVkXCIsIHRoaXMuX29ic2VydmVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICBpZiAobmV4dFByb3BzLnRvb2xiYXJzICE9PSB0aGlzLnByb3BzLnRvb2xiYXJzKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBncm91cHM6IHRoaXMucHJvcHMuY29udHJvbGxlci5nZXRUb29sYmFyc0FjdGlvbnMobmV4dFByb3BzLnRvb2xiYXJzLCBuZXh0UHJvcHMuZ3JvdXBPdGhlckxpc3QpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdyb3VwczogdGhpcy5wcm9wcy5jb250cm9sbGVyLmdldFRvb2xiYXJzQWN0aW9ucyh0aGlzLnByb3BzLnRvb2xiYXJzLCB0aGlzLnByb3BzLmdyb3VwT3RoZXJMaXN0KVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBnZXREZWZhdWx0UHJvcHM6IGZ1bmN0aW9uIGdldERlZmF1bHRQcm9wcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXI6IGdsb2JhbC5weWRpby5Db250cm9sbGVyLFxuICAgICAgICAgICAgcmVuZGVyaW5nVHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICBncm91cE90aGVyTGlzdDogW11cbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBncm91cHMgPSB0aGlzLnN0YXRlLmdyb3VwcztcblxuICAgICAgICB2YXIgYWN0aW9ucyA9IFtdO1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHRvb2xiYXJzID0gX3Byb3BzLnRvb2xiYXJzO1xuICAgICAgICB2YXIgcmVuZGVyaW5nVHlwZSA9IF9wcm9wcy5yZW5kZXJpbmdUeXBlO1xuICAgICAgICB2YXIgZ3JvdXBPdGhlckxpc3QgPSBfcHJvcHMuZ3JvdXBPdGhlckxpc3Q7XG4gICAgICAgIHZhciBidXR0b25TdHlsZSA9IF9wcm9wcy5idXR0b25TdHlsZTtcbiAgICAgICAgdmFyIHRvb2x0aXBQb3NpdGlvbiA9IF9wcm9wcy50b29sdGlwUG9zaXRpb247XG4gICAgICAgIHZhciBjb250cm9sbGVyID0gX3Byb3BzLmNvbnRyb2xsZXI7XG4gICAgICAgIHZhciBmYWJBY3Rpb24gPSBfcHJvcHMuZmFiQWN0aW9uO1xuICAgICAgICB2YXIgdG9vbGJhclN0eWxlID0gX3Byb3BzLnRvb2xiYXJTdHlsZTtcbiAgICAgICAgdmFyIGJ1dHRvbk1lbnVOb0xhYmVsID0gX3Byb3BzLmJ1dHRvbk1lbnVOb0xhYmVsO1xuICAgICAgICB2YXIgYnV0dG9uTWVudVBvcG92ZXJEaXJlY3Rpb24gPSBfcHJvcHMuYnV0dG9uTWVudVBvcG92ZXJEaXJlY3Rpb247XG4gICAgICAgIHZhciBmbGF0QnV0dG9uU3R5bGUgPSBfcHJvcHMuZmxhdEJ1dHRvblN0eWxlO1xuXG4gICAgICAgIHZhciBhbGxUb29sYmFycyA9IFtdLmNvbmNhdCh0b29sYmFycyk7XG4gICAgICAgIGlmIChncm91cE90aGVyTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGFsbFRvb2xiYXJzID0gYWxsVG9vbGJhcnMuY29uY2F0KFsnTU9SRV9BQ1RJT04nXSk7XG4gICAgICAgIH1cbiAgICAgICAgYWxsVG9vbGJhcnMubWFwKGZ1bmN0aW9uIChiYXJOYW1lKSB7XG4gICAgICAgICAgICBpZiAoIWdyb3Vwcy5oYXMoYmFyTmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBncm91cHMuZ2V0KGJhck5hbWUpLm1hcChmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi5kZW55KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVJdGVtcyA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgcG9wb3ZlckNvbnRlbnQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIG1lbnVUaXRsZSA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgbWVudUljb24gPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1VzZU1hc3RlckFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB2YXIgYWN0aW9uTmFtZSA9IGFjdGlvbi5vcHRpb25zLm5hbWU7XG5cbiAgICAgICAgICAgICAgICBtZW51VGl0bGUgPSBweWRpby5NZXNzYWdlSGFzaFthY3Rpb24ub3B0aW9ucy50ZXh0X2lkXSB8fCBhY3Rpb24ub3B0aW9ucy50ZXh0O1xuICAgICAgICAgICAgICAgIG1lbnVJY29uID0gYWN0aW9uLm9wdGlvbnMuaWNvbl9jbGFzcztcblxuICAgICAgICAgICAgICAgIGlmIChiYXJOYW1lID09PSAnTU9SRV9BQ1RJT04nKSB7XG4gICAgICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3ViSXRlbXMgPSBhY3Rpb24uc3ViTWVudUl0ZW1zLmR5bmFtaWNJdGVtcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ViSXRlbXMubWFwKGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JqLnNlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKG9iaik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvYmouYWN0aW9uSWQgJiYgIW9iai5hY3Rpb25JZC5kZW55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2gob2JqLmFjdGlvbklkLmdldE1lbnVEYXRhKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zID0gX1V0aWxzMlsnZGVmYXVsdCddLnB5ZGlvQWN0aW9uc1RvSXRlbXMoaXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVudUljb24gPSBcIm1kaSBtZGktZG90cy12ZXJ0aWNhbFwiO1xuICAgICAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLnN1Yk1lbnVJdGVtcy5zdGF0aWNJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXMgPSBfVXRpbHMyWydkZWZhdWx0J10ucHlkaW9BY3Rpb25zVG9JdGVtcyhhY3Rpb24uc3ViTWVudUl0ZW1zLnN0YXRpY0l0ZW1zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5zdWJNZW51SXRlbXMuZHluYW1pY0J1aWxkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zID0gX1V0aWxzMlsnZGVmYXVsdCddLnB5ZGlvQWN0aW9uc1RvSXRlbXMoYWN0aW9uLnN1Yk1lbnVJdGVtcy5keW5hbWljQnVpbGRlcihjb250cm9sbGVyKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24uc3ViTWVudUl0ZW1zLnBvcG92ZXJDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcG92ZXJDb250ZW50ID0gYWN0aW9uLnN1Yk1lbnVJdGVtcy5wb3BvdmVyQ29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG1lbnVJdGVtcyAmJiBhY3Rpb24uc3ViTWVudUl0ZW1zLm1hc3RlckFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1hc3RlckFjdGlvbiA9IGNvbnRyb2xsZXIuZ2V0QWN0aW9uQnlOYW1lKGFjdGlvbi5zdWJNZW51SXRlbXMubWFzdGVyQWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXN0ZXJBY3Rpb24gJiYgIW1hc3RlckFjdGlvbi5kZW55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zVXNlTWFzdGVyQWN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXN0ZXJBY3Rpb24uYXBwbHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgaWQgPSAnYWN0aW9uLScgKyBhY3Rpb24ub3B0aW9ucy5uYW1lO1xuICAgICAgICAgICAgICAgIGlmIChyZW5kZXJpbmdUeXBlID09PSAnYnV0dG9uLWljb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbnVUaXRsZSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdidXR0b24taWNvbicgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdzcGFuJywgeyBjbGFzc05hbWU6IFwiYnV0dG9uLWljb24taWNvbiBcIiArIG1lbnVJY29uIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnYnV0dG9uLWljb24tbGFiZWwnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudVRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChtZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbmRlcmluZ1R5cGUgPT09ICdidXR0b24nIHx8IHJlbmRlcmluZ1R5cGUgPT09ICdidXR0b24taWNvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZW51SXRlbXNVc2VNYXN0ZXJBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX0J1dHRvbkNvbXBvc2VkMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogYWN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVGl0bGU6IG1lbnVUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zOiBtZW51SXRlbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc3RlckFjdGlvbjogbWVudUl0ZW1zVXNlTWFzdGVyQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25MYWJlbFN0eWxlOiBidXR0b25TdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBidXR0b25NZW51UG9wb3ZlckRpcmVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9CdXR0b25NZW51MlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogYWN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVGl0bGU6IGJ1dHRvbk1lbnVOb0xhYmVsID8gJycgOiBtZW51VGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtczogbWVudUl0ZW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25MYWJlbFN0eWxlOiBidXR0b25TdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBidXR0b25NZW51UG9wb3ZlckRpcmVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfSWNvbkJ1dHRvbk1lbnUyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGFjdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1lbnVDbGlja2VkOiBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC5wYXlsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25DbGFzc05hbWU6IG1lbnVJY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblRpdGxlOiBtZW51VGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zOiBtZW51SXRlbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU6IGJ1dHRvblN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXJEaXJlY3Rpb246IGJ1dHRvbk1lbnVQb3BvdmVyRGlyZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBvcG92ZXJDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfSWNvbkJ1dHRvblBvcG92ZXIyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogYWN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25DbGFzc05hbWU6IG1lbnVJY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uVGl0bGU6IG1lbnVUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlOiBidXR0b25TdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXJDb250ZW50OiBwb3BvdmVyQ29udGVudFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNsaWNrID0gZnVuY3Rpb24gY2xpY2soKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24uYXBwbHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhYkFjdGlvbiAmJiBmYWJBY3Rpb24gPT09IGFjdGlvbk5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5GbG9hdGluZ0FjdGlvbkJ1dHRvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogYWN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBjbGljayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiBtZW51SWNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdG9vbGJhclN0eWxlLmJhY2tncm91bmRDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBwb3NpdGlvbjogJ2Fic29sdXRlJywgdG9wOiAtMjAsIGxlZnQ6IDEwIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZW5kZXJpbmdUeXBlID09PSAnYnV0dG9uLWljb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoUmVhY3RNVUkuRmxhdEJ1dHRvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogYWN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGNsaWNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBtZW51VGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxTdHlsZTogYnV0dG9uU3R5bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZW5kZXJpbmdUeXBlID09PSAnYnV0dG9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZsYXRCdXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGFjdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBjbGljayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbWVudVRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsU3R5bGU6IGJ1dHRvblN0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBmbGF0QnV0dG9uU3R5bGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBhY3Rpb25OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWU6IG1lbnVJY29uICsgJyAnICsgaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN0eWxlOiBidXR0b25TdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBjbGljayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiBtZW51VGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uOiB0b29sdGlwUG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGNOYW1lID0gdGhpcy5wcm9wcy5jbGFzc05hbWUgPyB0aGlzLnByb3BzLmNsYXNzTmFtZSA6ICcnO1xuICAgICAgICBjTmFtZSArPSAnICcgKyAndG9vbGJhcic7XG4gICAgICAgIGlmICghYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNOYW1lICs9ICcgZW1wdHktdG9vbGJhcic7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN0eWxlID0gX2V4dGVuZHMoe30sIHRvb2xiYXJTdHlsZSk7XG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6IGNOYW1lLCBzdHlsZTogc3R5bGUsIGlkOiB0aGlzLnByb3BzLmlkIH0sXG4gICAgICAgICAgICBhY3Rpb25zXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxuZnVuY3Rpb24gcHlkaW9BY3Rpb25zVG9JdGVtcygpIHtcbiAgICB2YXIgYWN0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IFtdIDogYXJndW1lbnRzWzBdO1xuXG4gICAgdmFyIGl0ZW1zID0gW107XG4gICAgdmFyIGxhc3RJc1NlcGFyYXRvciA9IGZhbHNlO1xuICAgIHZhciBtZXNzYWdlcyA9IF9weWRpbzJbJ2RlZmF1bHQnXS5nZXRNZXNzYWdlcygpO1xuXG4gICAgYWN0aW9ucy5tYXAoKGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgaWYgKGFjdGlvbi5zZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGlmIChsYXN0SXNTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdGVtcy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICBsYXN0SXNTZXBhcmF0b3IgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RJc1NlcGFyYXRvciA9IGZhbHNlO1xuICAgICAgICB2YXIgbGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChhY3Rpb24ubGFiZWxfaWQgJiYgbWVzc2FnZXNbYWN0aW9uLmxhYmVsX2lkXSkge1xuICAgICAgICAgICAgbGFiZWwgPSBtZXNzYWdlc1thY3Rpb24ubGFiZWxfaWRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFiZWwgPSBhY3Rpb24ucmF3X25hbWUgPyBhY3Rpb24ucmF3X25hbWUgOiBhY3Rpb24ubmFtZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaWNvbkNsYXNzID0gYWN0aW9uLmljb25fY2xhc3M7XG4gICAgICAgIGlmIChhY3Rpb24uc3ViTWVudSkge1xuICAgICAgICAgICAgdmFyIHN1Ykl0ZW1zID0gYWN0aW9uLnN1Yk1lbnVCZWZvcmVTaG93ID8gcHlkaW9BY3Rpb25zVG9JdGVtcyhhY3Rpb24uc3ViTWVudUJlZm9yZVNob3coKSkgOiBhY3Rpb24uc3ViTWVudTtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIHRleHQ6IGxhYmVsLFxuICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWU6IGljb25DbGFzcyxcbiAgICAgICAgICAgICAgICBzdWJJdGVtczogc3ViSXRlbXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgdGV4dDogbGFiZWwsXG4gICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogaWNvbkNsYXNzLFxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IGFjdGlvbi5jYWxsYmFja1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICBpZiAobGFzdElzU2VwYXJhdG9yKSB7XG4gICAgICAgIGl0ZW1zID0gaXRlbXMuc2xpY2UoMCwgaXRlbXMubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIGlmIChpdGVtcy5sZW5ndGggJiYgaXRlbXNbMF0gJiYgaXRlbXNbMF0uc2VwYXJhdG9yKSB7XG4gICAgICAgIGl0ZW1zLnNoaWZ0KCk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbn1cblxuZnVuY3Rpb24gaXRlbXNUb01lbnUoaXRlbXMsIGNsb3NlTWVudUNhbGxiYWNrKSB7XG4gICAgdmFyIHN1Ykl0ZW1zT25seSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMiB8fCBhcmd1bWVudHNbMl0gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogYXJndW1lbnRzWzJdO1xuICAgIHZhciBtZW51UHJvcHMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1szXTtcblxuICAgIG1lbnVQcm9wcyA9IF9leHRlbmRzKHtcbiAgICAgICAgZGlzcGxheTogJ25vcm1hbCcsXG4gICAgICAgIHdpZHRoOiAyMTYsXG4gICAgICAgIGRlc2t0b3A6IHRydWUsXG4gICAgICAgIGF1dG9XaWR0aDogZmFsc2VcbiAgICB9LCBtZW51UHJvcHMpO1xuXG4gICAgdmFyIG1lbnVJdGVtcyA9IGl0ZW1zLm1hcChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHtcblxuICAgICAgICBpZiAoaXRlbS5zZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIHsga2V5OiBcImRpdmlkZXJcIiArIGluZGV4IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN1Ykl0ZW1zID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGF5bG9hZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGl0ZW0uc3ViSXRlbXMpIHtcbiAgICAgICAgICAgIHN1Ykl0ZW1zID0gaXRlbXNUb01lbnUoaXRlbS5zdWJJdGVtcywgY2xvc2VNZW51Q2FsbGJhY2ssIHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0ucGF5bG9hZCkge1xuICAgICAgICAgICAgcGF5bG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpdGVtLnBheWxvYWQoKTtcbiAgICAgICAgICAgICAgICBjbG9zZU1lbnVDYWxsYmFjaygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsZWZ0SWNvbiA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHJpZ2h0SWNvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIGljb25DbGFzc05hbWUgPSBpdGVtLmljb25DbGFzc05hbWU7dmFyIGluc2V0ID0gZmFsc2U7XG4gICAgICAgIGlmIChpY29uQ2xhc3NOYW1lID09PSAnX19JTlNFVF9fJykge1xuICAgICAgICAgICAgaWNvbkNsYXNzTmFtZSA9ICcnO1xuICAgICAgICAgICAgaW5zZXQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1lbnVQcm9wcy5kaXNwbGF5ID09PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgbGVmdEljb24gPSBpY29uQ2xhc3NOYW1lID8gUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5Gb250SWNvbiwgeyBjbGFzc05hbWU6IGl0ZW0uaWNvbkNsYXNzTmFtZSArICcgbWVudS1pY29ucycsIHN0eWxlOiB7IGZvbnRTaXplOiAxNiwgcGFkZGluZzogNSB9IH0pIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChtZW51UHJvcHMuZGlzcGxheSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgcmlnaHRJY29uID0gaWNvbkNsYXNzTmFtZSA/IFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRm9udEljb24sIHsgY2xhc3NOYW1lOiBpdGVtLmljb25DbGFzc05hbWUgKyAnIG1lbnUtaWNvbnMnLCBzdHlsZTogeyBmb250U2l6ZTogMTYsIHBhZGRpbmc6IDUgfSB9KSA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmlnaHRJY29uID0gc3ViSXRlbXMgJiYgc3ViSXRlbXMubGVuZ3RoID8gUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5Gb250SWNvbiwgeyBjbGFzc05hbWU6ICdtZGkgbWRpLW1lbnUtcmlnaHQgbWVudS1pY29ucycgfSkgOiByaWdodEljb247XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTWVudUl0ZW0sIHtcbiAgICAgICAgICAgIGtleTogaXRlbS50ZXh0LFxuICAgICAgICAgICAgcHJpbWFyeVRleHQ6IGl0ZW0udGV4dCxcbiAgICAgICAgICAgIGluc2V0Q2hpbGRyZW46IGluc2V0LFxuICAgICAgICAgICAgbGVmdEljb246IGxlZnRJY29uLFxuICAgICAgICAgICAgcmlnaHRJY29uOiByaWdodEljb24sXG4gICAgICAgICAgICBvblRvdWNoVGFwOiBwYXlsb2FkLFxuICAgICAgICAgICAgbWVudUl0ZW1zOiBzdWJJdGVtc1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmIChzdWJJdGVtc09ubHkpIHtcbiAgICAgICAgcmV0dXJuIG1lbnVJdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIF9tYXRlcmlhbFVpLk1lbnUsXG4gICAgICAgICAgICBtZW51UHJvcHMsXG4gICAgICAgICAgICBtZW51SXRlbXNcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHsgcHlkaW9BY3Rpb25zVG9JdGVtczogcHlkaW9BY3Rpb25zVG9JdGVtcywgaXRlbXNUb01lbnU6IGl0ZW1zVG9NZW51IH07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE4IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfbWF0ZXJpYWxVaVN0eWxlcyA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpL3N0eWxlcycpO1xuXG52YXIgX3B5ZGlvSHR0cFBvbGljaWVzID0gcmVxdWlyZSgncHlkaW8vaHR0cC9wb2xpY2llcycpO1xuXG52YXIgX3B5ZGlvSHR0cFBvbGljaWVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvSHR0cFBvbGljaWVzKTtcblxudmFyIF9weWRpb0h0dHBVc2Vyc0FwaSA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvdXNlcnMtYXBpJyk7XG5cbnZhciBfcHlkaW9IdHRwUmVzdEFwaSA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvcmVzdC1hcGknKTtcblxudmFyIF9weWRpbzIgPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvMik7XG5cbnZhciBfcHlkaW9IdHRwQXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC9hcGknKTtcblxudmFyIF9weWRpb0h0dHBBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9IdHRwQXBpKTtcblxudmFyIF91c2Vyc1VzZXJzQ29tcGxldGVyID0gcmVxdWlyZSgnLi4vdXNlcnMvVXNlcnNDb21wbGV0ZXInKTtcblxudmFyIF91c2Vyc1VzZXJzQ29tcGxldGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3VzZXJzVXNlcnNDb21wbGV0ZXIpO1xuXG52YXIgUmVzb3VyY2VQb2xpY2llc1BhbmVsID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFJlc291cmNlUG9saWNpZXNQYW5lbCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBSZXNvdXJjZVBvbGljaWVzUGFuZWwocHJvcHMpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc291cmNlUG9saWNpZXNQYW5lbCk7XG5cbiAgICAgICAgaWYgKCFwcm9wcy5zdWJqZWN0c0Rpc2FibGVkKSB7XG4gICAgICAgICAgICBwcm9wcy5zdWJqZWN0c0Rpc2FibGVkID0geyAnUkVBRCc6IHt9LCAnV1JJVEUnOiB7fSB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wcy5jZWxsQWNscykge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMocHJvcHMuY2VsbEFjbHMpLm1hcChmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5jZWxsQWNsc1trXS5Sb2xlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuc3ViamVjdHNEaXNhYmxlZFsnUkVBRCddW1wicm9sZTpcIiArIHByb3BzLmNlbGxBY2xzW2tdLlJvbGVJZF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgICAgICAgcG9saWNpZXM6IFtdLFxuICAgICAgICAgICAgZGlmZlBvbGljaWVzOiB7IGFkZDoge30sIHJlbW92ZToge30gfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfTtcblxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbC5wcm90b3R5cGUucmVsb2FkID0gZnVuY3Rpb24gcmVsb2FkKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcmVzb3VyY2VUeXBlID0gX3Byb3BzLnJlc291cmNlVHlwZTtcbiAgICAgICAgdmFyIHJlc291cmNlSWQgPSBfcHJvcHMucmVzb3VyY2VJZDtcbiAgICAgICAgdmFyIF9weWRpbyA9IHB5ZGlvO1xuICAgICAgICB2YXIgdXNlciA9IF9weWRpby51c2VyO1xuXG4gICAgICAgIHZhciBwcm9tcyA9IFtfcHlkaW9IdHRwUG9saWNpZXMyWydkZWZhdWx0J10ubG9hZFBvbGljaWVzKHJlc291cmNlVHlwZSwgcmVzb3VyY2VJZCksIHVzZXIuZ2V0SWRtVXNlcigpXTtcbiAgICAgICAgaWYgKHJlc291cmNlVHlwZSAhPT0gJ3RlYW0nKSB7XG4gICAgICAgICAgICBwcm9tcy5wdXNoKF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLmxpc3RUZWFtcygpKTtcbiAgICAgICAgfVxuICAgICAgICBQcm9taXNlLmFsbChwcm9tcykudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICB2YXIgcG9saWNpZXMgPSByZXN1bHRbMF07XG4gICAgICAgICAgICB2YXIgcmVzb3VyY2VVdWlkID0gcG9saWNpZXNbMF0uUmVzb3VyY2U7XG4gICAgICAgICAgICB2YXIgaWRtVXNlciA9IHJlc3VsdFsxXTtcbiAgICAgICAgICAgIHZhciB0ZWFtcyA9IFtdO1xuICAgICAgICAgICAgaWYgKHJlc291cmNlVHlwZSAhPT0gJ3RlYW0nICYmIHJlc3VsdFsyXSkge1xuICAgICAgICAgICAgICAgIHRlYW1zID0gcmVzdWx0WzJdLlRlYW1zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIHBvbGljaWVzOiBwb2xpY2llcyxcbiAgICAgICAgICAgICAgICBpZG1Vc2VyOiBpZG1Vc2VyLFxuICAgICAgICAgICAgICAgIHVzZXJUZWFtczogdGVhbXMsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VVdWlkOiByZXNvdXJjZVV1aWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgZXJyb3I6IGVycm9yLm1lc3NhZ2UsIGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsLnByb3RvdHlwZS5yZXZlcnQgPSBmdW5jdGlvbiByZXZlcnQoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkaXJ0eVBvbGljaWVzOiBudWxsLCBkaWZmUG9saWNpZXM6IHsgYWRkOiB7fSwgcmVtb3ZlOiB7fSB9IH0pO1xuICAgIH07XG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLnNhdmUgPSBmdW5jdGlvbiBzYXZlKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdmFyIGRpcnR5UG9saWNpZXMgPSBfc3RhdGUuZGlydHlQb2xpY2llcztcbiAgICAgICAgdmFyIGRpZmZQb2xpY2llcyA9IF9zdGF0ZS5kaWZmUG9saWNpZXM7XG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHJlc291cmNlVHlwZSA9IF9wcm9wczIucmVzb3VyY2VUeXBlO1xuICAgICAgICB2YXIgcmVzb3VyY2VJZCA9IF9wcm9wczIucmVzb3VyY2VJZDtcbiAgICAgICAgdmFyIG9uU2F2ZVBvbGljaWVzID0gX3Byb3BzMi5vblNhdmVQb2xpY2llcztcblxuICAgICAgICBfcHlkaW9IdHRwUG9saWNpZXMyWydkZWZhdWx0J10uc2F2ZVBvbGljaWVzKHJlc291cmNlVHlwZSwgcmVzb3VyY2VJZCwgZGlydHlQb2xpY2llcykudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBwb2xpY2llczogcmVzdWx0LCBkaXJ0eVBvbGljaWVzOiBudWxsLCBkaWZmUG9saWNpZXM6IHsgYWRkOiB7fSwgcmVtb3ZlOiB7fSB9IH0pO1xuICAgICAgICAgICAgaWYgKG9uU2F2ZVBvbGljaWVzKSB7XG4gICAgICAgICAgICAgICAgb25TYXZlUG9saWNpZXMoZGlmZlBvbGljaWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgZXJyb3I6IHJlYXNvbi5tZXNzYWdlIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhkaXJ0eVBvbGljaWVzLCBkaWZmUG9saWNpZXMpO1xuICAgIH07XG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLnJlbW92ZVBvbGljeSA9IGZ1bmN0aW9uIHJlbW92ZVBvbGljeShhY3Rpb24sIHN1YmplY3QpIHtcbiAgICAgICAgdmFyIF9zdGF0ZTIgPSB0aGlzLnN0YXRlO1xuICAgICAgICB2YXIgcG9saWNpZXMgPSBfc3RhdGUyLnBvbGljaWVzO1xuICAgICAgICB2YXIgZGlydHlQb2xpY2llcyA9IF9zdGF0ZTIuZGlydHlQb2xpY2llcztcbiAgICAgICAgdmFyIGRpZmZQb2xpY2llcyA9IF9zdGF0ZTIuZGlmZlBvbGljaWVzO1xuXG4gICAgICAgIGlmIChkaXJ0eVBvbGljaWVzKSB7XG4gICAgICAgICAgICBwb2xpY2llcyA9IGRpcnR5UG9saWNpZXM7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG5ld1BvbGljaWVzID0gW107XG4gICAgICAgIHBvbGljaWVzLm1hcChmdW5jdGlvbiAocCkge1xuICAgICAgICAgICAgaWYgKHAuQWN0aW9uICE9PSBhY3Rpb24gfHwgcC5TdWJqZWN0ICE9PSBzdWJqZWN0KSB7XG4gICAgICAgICAgICAgICAgbmV3UG9saWNpZXMucHVzaChwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGRpZmZQb2xpY2llcy5yZW1vdmVbYWN0aW9uICsgJy8vLycgKyBzdWJqZWN0XSA9IHRydWU7XG4gICAgICAgIGlmIChkaWZmUG9saWNpZXMuYWRkW2FjdGlvbiArICcvLy8nICsgc3ViamVjdF0pIHtcbiAgICAgICAgICAgIGRlbGV0ZSBkaWZmUG9saWNpZXMuYWRkW2FjdGlvbiArICcvLy8nICsgc3ViamVjdF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRpcnR5UG9saWNpZXM6IG5ld1BvbGljaWVzLCBkaWZmUG9saWNpZXM6IGRpZmZQb2xpY2llcyB9KTtcbiAgICB9O1xuXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsLnByb3RvdHlwZS5hZGRQb2xpY3kgPSBmdW5jdGlvbiBhZGRQb2xpY3koYWN0aW9uLCBzdWJqZWN0KSB7XG4gICAgICAgIHZhciBpc1BpY2tlZFVzZXIgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1syXTtcbiAgICAgICAgdmFyIF9zdGF0ZTMgPSB0aGlzLnN0YXRlO1xuICAgICAgICB2YXIgcG9saWNpZXMgPSBfc3RhdGUzLnBvbGljaWVzO1xuICAgICAgICB2YXIgZGlydHlQb2xpY2llcyA9IF9zdGF0ZTMuZGlydHlQb2xpY2llcztcbiAgICAgICAgdmFyIHJlc291cmNlVXVpZCA9IF9zdGF0ZTMucmVzb3VyY2VVdWlkO1xuICAgICAgICB2YXIgZGlmZlBvbGljaWVzID0gX3N0YXRlMy5kaWZmUG9saWNpZXM7XG5cbiAgICAgICAgdmFyIG5ld1BvbGljaWVzID0gZGlydHlQb2xpY2llcyA/IFtdLmNvbmNhdChkaXJ0eVBvbGljaWVzKSA6IFtdLmNvbmNhdChwb2xpY2llcyk7XG4gICAgICAgIHZhciBuZXdQb2wgPSBuZXcgX3B5ZGlvSHR0cFJlc3RBcGkuU2VydmljZVJlc291cmNlUG9saWN5KCk7XG4gICAgICAgIG5ld1BvbC5SZXNvdXJjZSA9IHJlc291cmNlVXVpZDtcbiAgICAgICAgbmV3UG9sLkVmZmVjdCA9ICdhbGxvdyc7XG4gICAgICAgIG5ld1BvbC5TdWJqZWN0ID0gc3ViamVjdDtcbiAgICAgICAgbmV3UG9sLkFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgbmV3UG9saWNpZXMucHVzaChuZXdQb2wpO1xuXG4gICAgICAgIGRpZmZQb2xpY2llcy5hZGRbYWN0aW9uICsgJy8vLycgKyBzdWJqZWN0XSA9IHRydWU7XG4gICAgICAgIGlmIChkaWZmUG9saWNpZXMucmVtb3ZlW2FjdGlvbiArICcvLy8nICsgc3ViamVjdF0pIHtcbiAgICAgICAgICAgIGRlbGV0ZSBkaWZmUG9saWNpZXMucmVtb3ZlW2FjdGlvbiArICcvLy8nICsgc3ViamVjdF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzUGlja2VkVXNlcikge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRpcnR5UG9saWNpZXM6IG5ld1BvbGljaWVzLCBkaWZmUG9saWNpZXM6IGRpZmZQb2xpY2llcywgcGlja2VkVXNlcjogbnVsbCwgcGlja2VkTGFiZWw6IG51bGwgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGlydHlQb2xpY2llczogbmV3UG9saWNpZXMsIGRpZmZQb2xpY2llczogZGlmZlBvbGljaWVzIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXJTdWJqZWN0c1xuICAgICAqIEBwYXJhbSBwb2xpY2llc1xuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAgICovXG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLmhhc09uZVdyaXRlID0gZnVuY3Rpb24gaGFzT25lV3JpdGUodXNlclN1YmplY3RzLCBwb2xpY2llcykge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVzZXJTdWJqZWN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBwb2xpY2llcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGlmIChwb2xpY2llc1tqXS5TdWJqZWN0ID09PSB1c2VyU3ViamVjdHNbaV0gJiYgcG9saWNpZXNbal0uQWN0aW9uID09PSAnV1JJVEUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGlkbVVzZXJcbiAgICAgKiBAcGFyYW0gcG9saWNpZXNcbiAgICAgKiBAcmV0dXJuIHt7Z3JvdXBCbG9ja3M6IEFycmF5LCBoYXNXcml0ZTogYm9vbGVhbn19XG4gICAgICovXG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLmxpc3RVc2VyUm9sZXMgPSBmdW5jdGlvbiBsaXN0VXNlclJvbGVzKGlkbVVzZXIsIHBvbGljaWVzKSB7XG4gICAgICAgIHZhciBjcnRVc2VyU3ViamVjdCA9ICd1c2VyOicgKyBpZG1Vc2VyLkxvZ2luO1xuICAgICAgICB2YXIgdmFsdWVzID0ge307XG4gICAgICAgIGlkbVVzZXIuUm9sZXMubWFwKGZ1bmN0aW9uIChyb2xlKSB7XG4gICAgICAgICAgICBpZiAoIXJvbGUuR3JvdXBSb2xlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWVzWydyb2xlOicgKyByb2xlLlV1aWRdID0gcm9sZS5MYWJlbDtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhbHVlc1tjcnRVc2VyU3ViamVjdF0gPSAnWW91JztcbiAgICAgICAgdmFyIGhhc1dyaXRlID0gdGhpcy5oYXNPbmVXcml0ZShPYmplY3Qua2V5cyh2YWx1ZXMpLCBwb2xpY2llcyk7XG4gICAgICAgIC8vIEFkZCBvdGhlciBzdWJqZWN0c1xuICAgICAgICB2YWx1ZXMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5saXN0T3RoZXJVc2Vyc1N1YmplY3RzKHBvbGljaWVzLCBjcnRVc2VyU3ViamVjdCksIHZhbHVlcyk7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXModmFsdWVzKTtcbiAgICAgICAgLy8gQnVpbGQgTGluZXNcbiAgICAgICAgdmFyIGdyb3VwQmxvY2tzID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSBrZXlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICB2YXIgbmV3S2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICAgIHZhciBuZXdWYWwgPSB2YWx1ZXNbbmV3S2V5XTtcbiAgICAgICAgICAgIGdyb3VwQmxvY2tzLnB1c2godGhpcy5yZW5kZXJMaW5lKG5ld0tleSwgbmV3VmFsLCBwb2xpY2llcywgIWhhc1dyaXRlIHx8IG5ld0tleSA9PT0gY3J0VXNlclN1YmplY3QpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBncm91cEJsb2NrczogZ3JvdXBCbG9ja3MsIGhhc1dyaXRlOiBoYXNXcml0ZSB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VyVGVhbXNcbiAgICAgKiBAcGFyYW0gcG9saWNpZXNcbiAgICAgKiBAcGFyYW0gZGlzYWJsZWRcbiAgICAgKiBAcmV0dXJuIHtYTUx9W11cbiAgICAgKi9cblxuICAgIFJlc291cmNlUG9saWNpZXNQYW5lbC5wcm90b3R5cGUubGlzdFVzZXJUZWFtcyA9IGZ1bmN0aW9uIGxpc3RVc2VyVGVhbXModXNlclRlYW1zLCBwb2xpY2llcywgZGlzYWJsZWQpIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuIHVzZXJUZWFtcy5tYXAoZnVuY3Rpb24gKHJvbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBfdGhpczMucmVuZGVyTGluZSgncm9sZTonICsgcm9sZS5VdWlkLCByb2xlLkxhYmVsLCBwb2xpY2llcywgZGlzYWJsZWQpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsLnByb3RvdHlwZS5saXN0T3RoZXJVc2Vyc1N1YmplY3RzID0gZnVuY3Rpb24gbGlzdE90aGVyVXNlcnNTdWJqZWN0cyhwb2xpY2llcywgY3VycmVudFVzZXJTdWJqZWN0KSB7XG4gICAgICAgIHZhciBfcHJvcHMzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHJlc291cmNlSWQgPSBfcHJvcHMzLnJlc291cmNlSWQ7XG4gICAgICAgIHZhciBjZWxsQWNscyA9IF9wcm9wczMuY2VsbEFjbHM7XG5cbiAgICAgICAgdmFyIHN1YnMgPSB7fTtcbiAgICAgICAgcG9saWNpZXMubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICAgICAgICBpZiAocC5TdWJqZWN0LmluZGV4T2YoJ3VzZXI6JykgPT09IDAgJiYgcC5TdWJqZWN0ICE9PSBjdXJyZW50VXNlclN1YmplY3QgJiYgcC5TdWJqZWN0ICE9PSAndXNlcjonICsgcmVzb3VyY2VJZCkge1xuICAgICAgICAgICAgICAgIHN1YnNbcC5TdWJqZWN0XSA9IHAuU3ViamVjdC5zdWJzdHIoJ3VzZXI6Jy5sZW5ndGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNlbGxBY2xzICYmIHAuU3ViamVjdC5pbmRleE9mKCdyb2xlOicpID09PSAwICYmIGNlbGxBY2xzW3AuU3ViamVjdC5zdWJzdHIoJ3JvbGU6Jy5sZW5ndGgpXSkge1xuICAgICAgICAgICAgICAgIHZhciByb2xlSWQgPSBwLlN1YmplY3Quc3Vic3RyKCdyb2xlOicubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBpZiAoY2VsbEFjbHNbcm9sZUlkXS5Vc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB1c3IgPSBjZWxsQWNsc1tyb2xlSWRdLlVzZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VXNlclN1YmplY3QgIT09ICd1c2VyOicgKyB1c3IuTG9naW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNbcC5TdWJqZWN0XSA9IHVzci5BdHRyaWJ1dGVzICYmIHVzci5BdHRyaWJ1dGVzWydkaXNwbGF5TmFtZSddID8gdXNyLkF0dHJpYnV0ZXNbJ2Rpc3BsYXlOYW1lJ10gOiB1c3IuTG9naW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNlbGxBY2xzW3JvbGVJZF0uR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGdycCA9IGNlbGxBY2xzW3JvbGVJZF0uR3JvdXA7XG4gICAgICAgICAgICAgICAgICAgIHN1YnNbcC5TdWJqZWN0XSA9IGdycC5BdHRyaWJ1dGVzICYmIGdycC5BdHRyaWJ1dGVzWydkaXNwbGF5TmFtZSddID8gZ3JwLkF0dHJpYnV0ZXNbJ2Rpc3BsYXlOYW1lJ10gOiBncnAuR3JvdXBMYWJlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc3VicztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlck9yUm9sZSB7e0lkbVVzZXIsSWRtUm9sZX19XG4gICAgICovXG5cbiAgICBSZXNvdXJjZVBvbGljaWVzUGFuZWwucHJvdG90eXBlLnBpY2tVc2VyID0gZnVuY3Rpb24gcGlja1VzZXIodXNlck9yUm9sZSkge1xuICAgICAgICB2YXIgc3ViamVjdCA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodXNlck9yUm9sZS5JZG1Vc2VyKSB7XG4gICAgICAgICAgICB2YXIgSWRtVXNlciA9IHVzZXJPclJvbGUuSWRtVXNlcjtcblxuICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZXMgPSBJZG1Vc2VyLkF0dHJpYnV0ZXMgfHwge307XG4gICAgICAgICAgICBpZiAoSWRtVXNlci5Jc0dyb3VwKSB7XG4gICAgICAgICAgICAgICAgc3ViamVjdCA9ICdyb2xlOicgKyBJZG1Vc2VyLlV1aWQ7XG4gICAgICAgICAgICAgICAgbGFiZWwgPSBhdHRyaWJ1dGVzWydkaXNwbGF5TmFtZSddIHx8IElkbVVzZXIuR3JvdXBMYWJlbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3ViamVjdCA9ICd1c2VyOicgKyBJZG1Vc2VyLkxvZ2luO1xuICAgICAgICAgICAgICAgIGxhYmVsID0gYXR0cmlidXRlc1snZGlzcGxheU5hbWUnXSB8fCBJZG1Vc2VyLkxvZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIElkbVJvbGUgPSB1c2VyT3JSb2xlLklkbVJvbGU7XG5cbiAgICAgICAgICAgIHN1YmplY3QgPSAncm9sZTonICsgSWRtUm9sZS5VdWlkO1xuICAgICAgICAgICAgbGFiZWwgPSBJZG1Sb2xlLkxhYmVsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBwaWNrZWRVc2VyOiBzdWJqZWN0LCBwaWNrZWRMYWJlbDogbGFiZWwgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1YmplY3RcbiAgICAgKiBAcGFyYW0gbGFiZWxcbiAgICAgKiBAcGFyYW0gcG9saWNpZXNcbiAgICAgKiBAcGFyYW0gZGlzYWJsZWRcbiAgICAgKiBAcGFyYW0gaXNQaWNrZWRVc2VyXG4gICAgICogQHJldHVybiB7WE1MfVxuICAgICAqL1xuXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsLnByb3RvdHlwZS5yZW5kZXJMaW5lID0gZnVuY3Rpb24gcmVuZGVyTGluZShzdWJqZWN0LCBsYWJlbCwgcG9saWNpZXMsIGRpc2FibGVkKSB7XG4gICAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICAgIHZhciBpc1BpY2tlZFVzZXIgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDQgfHwgYXJndW1lbnRzWzRdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1s0XTtcbiAgICAgICAgdmFyIF9wcm9wczQgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgc3ViamVjdHNEaXNhYmxlZCA9IF9wcm9wczQuc3ViamVjdHNEaXNhYmxlZDtcbiAgICAgICAgdmFyIHN1YmplY3RzSGlkZGVuID0gX3Byb3BzNC5zdWJqZWN0c0hpZGRlbjtcbiAgICAgICAgdmFyIHJlYWRvbmx5ID0gX3Byb3BzNC5yZWFkb25seTtcblxuICAgICAgICBpZiAoc3ViamVjdHNIaWRkZW4gJiYgc3ViamVjdHNIaWRkZW5bc3ViamVjdF0pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJlYWQgPSBmYWxzZSxcbiAgICAgICAgICAgIHdyaXRlID0gZmFsc2U7XG4gICAgICAgIHZhciByZWFkQ2hhbmdlID0gZnVuY3Rpb24gcmVhZENoYW5nZSgpIHtcbiAgICAgICAgICAgIF90aGlzNC5hZGRQb2xpY3koJ1JFQUQnLCBzdWJqZWN0LCBpc1BpY2tlZFVzZXIpO1xuICAgICAgICB9O1xuICAgICAgICB2YXIgd3JpdGVDaGFuZ2UgPSBmdW5jdGlvbiB3cml0ZUNoYW5nZSgpIHtcbiAgICAgICAgICAgIF90aGlzNC5hZGRQb2xpY3koJ1dSSVRFJywgc3ViamVjdCwgaXNQaWNrZWRVc2VyKTtcbiAgICAgICAgfTtcbiAgICAgICAgcG9saWNpZXMubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICAgICAgICBpZiAocC5TdWJqZWN0ICE9PSBzdWJqZWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHAuQWN0aW9uID09PSAnV1JJVEUnKSB7XG4gICAgICAgICAgICAgICAgd3JpdGUgPSBwLkFjdGlvbiA9PT0gJ1dSSVRFJztcbiAgICAgICAgICAgICAgICB3cml0ZUNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM0LnJlbW92ZVBvbGljeSgnV1JJVEUnLCBzdWJqZWN0KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwLkFjdGlvbiA9PT0gJ1JFQUQnKSB7XG4gICAgICAgICAgICAgICAgcmVhZCA9IHAuQWN0aW9uID09PSAnUkVBRCc7XG4gICAgICAgICAgICAgICAgcmVhZENoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM0LnJlbW92ZVBvbGljeSgnUkVBRCcsIHN1YmplY3QpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZGlzYWJsZVdyaXRlID0gZGlzYWJsZWQ7XG4gICAgICAgIHZhciBkaXNhYmxlUmVhZCA9IGRpc2FibGVkO1xuICAgICAgICBpZiAocmVhZG9ubHkpIHtcbiAgICAgICAgICAgIGRpc2FibGVSZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgIGRpc2FibGVXcml0ZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc3ViamVjdHNEaXNhYmxlZCAmJiBzdWJqZWN0c0Rpc2FibGVkWydSRUFEJ10gJiYgc3ViamVjdHNEaXNhYmxlZFsnUkVBRCddW3N1YmplY3RdKSB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZVJlYWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN1YmplY3RzRGlzYWJsZWQgJiYgc3ViamVjdHNEaXNhYmxlZFsnV1JJVEUnXSAmJiBzdWJqZWN0c0Rpc2FibGVkWydXUklURSddW3N1YmplY3RdKSB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZVdyaXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHsgZGlzcGxheTogJ2ZsZXgnLCBtYXJnaW46IDEwLCBtYXJnaW5SaWdodDogMCB9IH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDEgfSB9LFxuICAgICAgICAgICAgICAgIGxhYmVsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuQ2hlY2tib3gsIHsgY2hlY2tlZDogcmVhZCwgZGlzYWJsZWQ6IGRpc2FibGVSZWFkLCBzdHlsZTogeyB3aWR0aDogNDAgfSwgb25DaGVjazogcmVhZENoYW5nZSB9KSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkNoZWNrYm94LCB7IGNoZWNrZWQ6IHdyaXRlLCBkaXNhYmxlZDogZGlzYWJsZVdyaXRlLCBzdHlsZTogeyB3aWR0aDogNDAgfSwgb25DaGVjazogd3JpdGVDaGFuZ2UgfSlcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgUmVzb3VyY2VQb2xpY2llc1BhbmVsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gICAgICAgIHZhciBhcHBCYXIgPSB0aGlzLnByb3BzLm11aVRoZW1lLmFwcEJhcjtcblxuICAgICAgICB2YXIgc3R5bGVzID0ge1xuICAgICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogMTAsXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBhcHBCYXIuY29sb3IsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxNixcbiAgICAgICAgICAgICAgICBjb2xvcjogYXBwQmFyLnRleHRDb2xvclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN1YmhlYWRlcjoge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMTAsXG4gICAgICAgICAgICAgICAgZm9udFdlaWdodDogNTAwLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzlFOUU5RScsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3ViamVjdDoge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMTBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoZWFkOiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwLFxuICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IDEwXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciBfc3RhdGU0ID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdmFyIHBvbGljaWVzID0gX3N0YXRlNC5wb2xpY2llcztcbiAgICAgICAgdmFyIGRpcnR5UG9saWNpZXMgPSBfc3RhdGU0LmRpcnR5UG9saWNpZXM7XG4gICAgICAgIHZhciBlcnJvciA9IF9zdGF0ZTQuZXJyb3I7XG4gICAgICAgIHZhciBpZG1Vc2VyID0gX3N0YXRlNC5pZG1Vc2VyO1xuICAgICAgICB2YXIgdXNlclRlYW1zID0gX3N0YXRlNC51c2VyVGVhbXM7XG4gICAgICAgIHZhciBsb2FkaW5nID0gX3N0YXRlNC5sb2FkaW5nO1xuICAgICAgICB2YXIgcGlja2VkVXNlciA9IF9zdGF0ZTQucGlja2VkVXNlcjtcbiAgICAgICAgdmFyIHBpY2tlZExhYmVsID0gX3N0YXRlNC5waWNrZWRMYWJlbDtcbiAgICAgICAgdmFyIF9wcm9wczUgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgb25EaXNtaXNzID0gX3Byb3BzNS5vbkRpc21pc3M7XG4gICAgICAgIHZhciBzdHlsZSA9IF9wcm9wczUuc3R5bGU7XG4gICAgICAgIHZhciBza2lwVGl0bGUgPSBfcHJvcHM1LnNraXBUaXRsZTtcbiAgICAgICAgdmFyIHJlc291cmNlSWQgPSBfcHJvcHM1LnJlc291cmNlSWQ7XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wczUucHlkaW87XG4gICAgICAgIHZhciB1c2VyTGlzdEV4Y2x1ZGVzID0gX3Byb3BzNS51c2VyTGlzdEV4Y2x1ZGVzO1xuICAgICAgICB2YXIgcmVhZG9ubHkgPSBfcHJvcHM1LnJlYWRvbmx5O1xuXG4gICAgICAgIHZhciBibG9ja3MgPSBbXTtcbiAgICAgICAgaWYgKCFsb2FkaW5nICYmICFlcnJvcikge1xuICAgICAgICAgICAgdmFyIF9saXN0VXNlclJvbGVzID0gdGhpcy5saXN0VXNlclJvbGVzKGlkbVVzZXIsIGRpcnR5UG9saWNpZXMgPyBkaXJ0eVBvbGljaWVzIDogcG9saWNpZXMpO1xuXG4gICAgICAgICAgICB2YXIgZ3JvdXBCbG9ja3MgPSBfbGlzdFVzZXJSb2xlcy5ncm91cEJsb2NrcztcbiAgICAgICAgICAgIHZhciBoYXNXcml0ZSA9IF9saXN0VXNlclJvbGVzLmhhc1dyaXRlO1xuXG4gICAgICAgICAgICB2YXIgdGVhbUJsb2NrcyA9IHRoaXMubGlzdFVzZXJUZWFtcyh1c2VyVGVhbXMsIGRpcnR5UG9saWNpZXMgPyBkaXJ0eVBvbGljaWVzIDogcG9saWNpZXMsICFoYXNXcml0ZSk7XG4gICAgICAgICAgICB2YXIgaGVhZHMgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5oZWFkIH0sXG4gICAgICAgICAgICAgICAgICAgICdWaWV3J1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLmhlYWQgfSxcbiAgICAgICAgICAgICAgICAgICAgJ0VkaXQnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChncm91cEJsb2Nrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5zdWJoZWFkZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDEgfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXJzJ1xuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBoZWFkc1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKGdyb3VwQmxvY2tzKTtcbiAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5EaXZpZGVyLCBudWxsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGVhbUJsb2Nrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5zdWJoZWFkZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDEgfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1lvdXIgVGVhbXMnXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIGhlYWRzXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnB1c2godGVhbUJsb2Nrcyk7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRGl2aWRlciwgbnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBpY2tlZFVzZXIpIHtcbiAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5zdWJoZWFkZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgJ1NldCB2aXNpYmxlIHRvLi4uJ1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgIGJsb2Nrcy5wdXNoKHRoaXMucmVuZGVyTGluZShwaWNrZWRVc2VyLCBwaWNrZWRMYWJlbCwgcG9saWNpZXMsIGZhbHNlLCB0cnVlKSk7XG4gICAgICAgICAgICAgICAgYmxvY2tzLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHRleHRBbGlnbjogJ3JpZ2h0JyB9IH0sXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZsYXRCdXR0b24sIHsgbGFiZWw6IFwiQ2FuY2VsXCIsIG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczUuc2V0U3RhdGUoeyBwaWNrZWRVc2VyOiBudWxsLCBwaWNrZWRMYWJlbDogbnVsbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gfSlcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5EaXZpZGVyLCBudWxsKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFyZWFkb25seSkge1xuICAgICAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjcnRVc2VyU3ViamVjdCA9ICd1c2VyOicgKyBpZG1Vc2VyLkxvZ2luO1xuICAgICAgICAgICAgICAgICAgICB2YXIgdXNlclN1YmplY3RzID0gX3RoaXM1Lmxpc3RPdGhlclVzZXJzU3ViamVjdHMoZGlydHlQb2xpY2llcyA/IGRpcnR5UG9saWNpZXMgOiBwb2xpY2llcywgY3J0VXNlclN1YmplY3QpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZXhsdWRlcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh1c2VyU3ViamVjdHMpLm1hcChmdW5jdGlvbiAoaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhsdWRlcy5wdXNoKHVzZXJTdWJqZWN0c1trXSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdCBhbiBhcmJpdHJhcnkgcmVzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tzLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5zdWJoZWFkZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdTZXQgdmlzaWJsZSB0byAuLi4nXG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyBtYXJnaW46ICctMzBweCAxMHB4IDAnIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF91c2Vyc1VzZXJzQ29tcGxldGVyMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc2hhcmUtZm9ybS11c2VycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRMYWJlbDogJ1NlbGVjdCB1c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJTdWdnZXN0aW9uOiBmdW5jdGlvbiAodXNlck9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZm9udFNpemU6IDEzIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJPYmplY3QuZ2V0RXh0ZW5kZWRMYWJlbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblZhbHVlU2VsZWN0ZWQ6IF90aGlzNS5waWNrVXNlci5iaW5kKF90aGlzNSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnNPbmx5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nT25seTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlczogW3Jlc291cmNlSWRdLmNvbmNhdCh1c2VyTGlzdEV4Y2x1ZGVzLCBleGx1ZGVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBweWRpbzogcHlkaW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0FkZHJlc3NCb29rOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc0Zyb206ICdsb2NhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgICAgICBibG9ja3MucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5EaXZpZGVyLCBudWxsKSk7XG4gICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYmxvY2tzLnBvcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBzdHlsZSB9LFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogc3R5bGVzLnRpdGxlIH0sXG4gICAgICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdzcGFuJyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyBmbGV4OiAxIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgc2tpcFRpdGxlID8gJycgOiAnVmlzaWJpbGl0eSdcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGRpcnR5UG9saWNpZXMgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwgeyBpY29uQ2xhc3NOYW1lOiBcIm1kaSBtZGktdW5kby12YXJpYW50XCIsIHRvb2x0aXA6IFwiUmV2ZXJ0IGNoYW5nZXNcIiwgb25Ub3VjaFRhcDogdGhpcy5yZXZlcnQuYmluZCh0aGlzKSwgaWNvblN0eWxlOiB7IGNvbG9yOiBhcHBCYXIudGV4dENvbG9yIH0gfSksXG4gICAgICAgICAgICAgICAgZGlydHlQb2xpY2llcyAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IGljb25DbGFzc05hbWU6IFwibWRpIG1kaS1jb250ZW50LXNhdmVcIiwgdG9vbHRpcDogXCJTYXZlIGNoYW5nZXNcIiwgb25Ub3VjaFRhcDogdGhpcy5zYXZlLmJpbmQodGhpcyksIGljb25TdHlsZTogeyBjb2xvcjogYXBwQmFyLnRleHRDb2xvciB9IH0pLFxuICAgICAgICAgICAgICAgICFkaXJ0eVBvbGljaWVzICYmIG9uRGlzbWlzcyAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IGljb25DbGFzc05hbWU6IFwibWRpIG1kaS1jbG9zZVwiLCBvblRvdWNoVGFwOiBvbkRpc21pc3MsIGljb25TdHlsZTogeyBjb2xvcjogYXBwQmFyLnRleHRDb2xvciB9IH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZXJyb3IgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAnRXJyb3I6ICcsXG4gICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIGJsb2Nrc1xuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gUmVzb3VyY2VQb2xpY2llc1BhbmVsO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cblJlc291cmNlUG9saWNpZXNQYW5lbC5Qcm9wVHlwZXMgPSB7XG4gICAgcHlkaW86IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuaW5zdGFuY2VPZihfcHlkaW8zWydkZWZhdWx0J10pLFxuICAgIHJlc291cmNlVHlwZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICByZXNvdXJjZUlkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9uU2F2ZVBvbGljaWVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgdXNlckxpc3RFeGNsdWRlczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheSxcbiAgICBzdWJqZWN0c0Rpc2FibGVkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgIHN1YmplY3RzSGlkZGVuOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICByZWFkb25seTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgIGNlbGxBY2xzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcblxuICAgIG9uRGlzbWlzczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgIHN0eWxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICBza2lwVGl0bGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbFxuXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXNvdXJjZVBvbGljaWVzUGFuZWwgPSBfbWF0ZXJpYWxVaVN0eWxlcy5tdWlUaGVtZWFibGUoKShSZXNvdXJjZVBvbGljaWVzUGFuZWwpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSZXNvdXJjZVBvbGljaWVzUGFuZWw7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3B5ZGlvSHR0cEFwaSA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvYXBpJyk7XG5cbnZhciBfcHlkaW9IdHRwQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvSHR0cEFwaSk7XG5cbi8qKlxuICogU2ltcGxlIGZvcm0gZm9yIGNyZWF0aW5nIGEgdGVhbVxuICovXG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBDb21wb25lbnQgPSBfcmVxdWlyZS5Db21wb25lbnQ7XG52YXIgUHJvcFR5cGVzID0gX3JlcXVpcmUuUHJvcFR5cGVzO1xuXG52YXIgX3JlcXVpcmUyID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIFRleHRGaWVsZCA9IF9yZXF1aXJlMi5UZXh0RmllbGQ7XG52YXIgRmxhdEJ1dHRvbiA9IF9yZXF1aXJlMi5GbGF0QnV0dG9uO1xuXG52YXIgX3JlcXVpcmUkcmVxdWlyZUxpYiA9IHJlcXVpcmUoJ3B5ZGlvJykucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfcmVxdWlyZSRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xuXG52YXIgVGVhbUNyZWF0aW9uRm9ybSA9IChmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhUZWFtQ3JlYXRpb25Gb3JtLCBfQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFRlYW1DcmVhdGlvbkZvcm0ocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRlYW1DcmVhdGlvbkZvcm0pO1xuXG4gICAgICAgIF9Db21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IHZhbHVlOiAnJyB9O1xuICAgIH1cblxuICAgIFRlYW1DcmVhdGlvbkZvcm0ucHJvdG90eXBlLm9uQ2hhbmdlID0gZnVuY3Rpb24gb25DaGFuZ2UoZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiB2YWx1ZSB9KTtcbiAgICB9O1xuXG4gICAgVGVhbUNyZWF0aW9uRm9ybS5wcm90b3R5cGUuc3VibWl0Q3JlYXRpb25Gb3JtID0gZnVuY3Rpb24gc3VibWl0Q3JlYXRpb25Gb3JtKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnN0YXRlLnZhbHVlO1xuICAgICAgICBfcHlkaW9IdHRwQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKS5nZXRJZG1BcGkoKS5zYXZlU2VsZWN0aW9uQXNUZWFtKHZhbHVlLCBbXSwgdGhpcy5wcm9wcy5vblRlYW1DcmVhdGVkKTtcbiAgICB9O1xuXG4gICAgVGVhbUNyZWF0aW9uRm9ybS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgZ2V0TWVzc2FnZSA9IHRoaXMucHJvcHMuZ2V0TWVzc2FnZTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyBwYWRkaW5nOiAyMCB9IH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGdldE1lc3NhZ2UoNTkxKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXh0RmllbGQsIHsgZmxvYXRpbmdMYWJlbFRleHQ6IGdldE1lc3NhZ2UoNTc4KSwgdmFsdWU6IHRoaXMuc3RhdGUudmFsdWUsIG9uQ2hhbmdlOiB0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyksIGZ1bGxXaWR0aDogdHJ1ZSB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyB0ZXh0QWxpZ246ICdyaWdodCcsIHBhZGRpbmc6IDggfSB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZsYXRCdXR0b24sIHsgbGFiZWw6IGdldE1lc3NhZ2UoNDkpLCBvblRvdWNoVGFwOiB0aGlzLnByb3BzLm9uQ2FuY2VsLmJpbmQodGhpcykgfSksXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRmxhdEJ1dHRvbiwgeyBsYWJlbDogZ2V0TWVzc2FnZSg1NzkpLCBwcmltYXJ5OiB0cnVlLCBvblRvdWNoVGFwOiB0aGlzLnN1Ym1pdENyZWF0aW9uRm9ybS5iaW5kKHRoaXMpIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gVGVhbUNyZWF0aW9uRm9ybTtcbn0pKENvbXBvbmVudCk7XG5cblRlYW1DcmVhdGlvbkZvcm0ucHJvcFR5cGVzID0ge1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRyaWdnZXJlZCBhZnRlciB0ZWFtIGNyZWF0aW9uIHN1Y2NlZWRlZFxuICAgICAqL1xuICAgIG9uVGVhbUNyZWF0ZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgLyoqXG4gICAgICogUmVxdWVzdCBtb2RhbCBjbG9zZVxuICAgICAqL1xuICAgIG9uQ2FuY2VsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUZWFtQ3JlYXRpb25Gb3JtID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoVGVhbUNyZWF0aW9uRm9ybSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRlYW1DcmVhdGlvbkZvcm07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9weWRpb0h0dHBBcGkgPSByZXF1aXJlKCdweWRpby9odHRwL2FwaScpO1xuXG52YXIgX3B5ZGlvSHR0cEFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb0h0dHBBcGkpO1xuXG52YXIgX21hdGVyaWFsVWkgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgX3B5ZGlvSHR0cFVzZXJzQXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC91c2Vycy1hcGknKTtcblxudmFyIF9QeWRpbyRyZXF1aXJlTGliID0gX3B5ZGlvMlsnZGVmYXVsdCddLnJlcXVpcmVMaWIoJ2Zvcm0nKTtcblxudmFyIE1hbmFnZXIgPSBfUHlkaW8kcmVxdWlyZUxpYi5NYW5hZ2VyO1xudmFyIEZvcm1QYW5lbCA9IF9QeWRpbyRyZXF1aXJlTGliLkZvcm1QYW5lbDtcblxudmFyIFVzZXJDcmVhdGlvbkZvcm0gPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoVXNlckNyZWF0aW9uRm9ybSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBVc2VyQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5nZXRDcmVhdGVVc2VyUGFyYW1ldGVycyA9IGZ1bmN0aW9uIGdldENyZWF0ZVVzZXJQYXJhbWV0ZXJzKCkge1xuICAgICAgICB2YXIgZWRpdE1vZGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgICB2YXIgYmFzaWNQYXJhbWV0ZXJzID0gW107XG4gICAgICAgIHZhciBweWRpbyA9IHRoaXMucHJvcHMucHlkaW87XG4gICAgICAgIHZhciBNZXNzYWdlSGFzaCA9IHB5ZGlvLk1lc3NhZ2VIYXNoO1xuXG4gICAgICAgIHZhciBwcmVmaXggPSBweWRpby5nZXRQbHVnaW5Db25maWdzKCdhY3Rpb24uc2hhcmUnKS5nZXQoJ1NIQVJFRF9VU0VSU19UTVBfUFJFRklYJyk7XG4gICAgICAgIGJhc2ljUGFyYW1ldGVycy5wdXNoKHtcbiAgICAgICAgICAgIElkbVVzZXJGaWVsZDogJ0xvZ2luJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBNZXNzYWdlSGFzaFsnNTMzJ10sXG4gICAgICAgICAgICByZWFkb25seTogZWRpdE1vZGUsXG4gICAgICAgICAgICBleHBvc2U6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgbGFiZWw6IE1lc3NhZ2VIYXNoWyc1MjInXSxcbiAgICAgICAgICAgIG5hbWU6IGVkaXRNb2RlID8gXCJleGlzdGluZ191c2VyX2lkXCIgOiBcIm5ld191c2VyX2lkXCIsXG4gICAgICAgICAgICBzY29wZTogXCJ1c2VyXCIsXG4gICAgICAgICAgICB0eXBlOiBcInZhbGlkLWxvZ2luXCIsXG4gICAgICAgICAgICBtYW5kYXRvcnk6IHRydWUsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogcHJlZml4ID8gcHJlZml4IDogJydcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgSWRtVXNlckZpZWxkOiAnUGFzc3dvcmQnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IE1lc3NhZ2VIYXNoWyc1MzQnXSxcbiAgICAgICAgICAgIGVkaXRhYmxlOiBcInRydWVcIixcbiAgICAgICAgICAgIGV4cG9zZTogXCJ0cnVlXCIsXG4gICAgICAgICAgICBsYWJlbDogTWVzc2FnZUhhc2hbJzUyMyddLFxuICAgICAgICAgICAgbmFtZTogXCJuZXdfcGFzc3dvcmRcIixcbiAgICAgICAgICAgIHNjb3BlOiBcInVzZXJcIixcbiAgICAgICAgICAgIHR5cGU6IFwidmFsaWQtcGFzc3dvcmRcIixcbiAgICAgICAgICAgIG1hbmRhdG9yeTogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgcGFyYW1zID0gZ2xvYmFsLnB5ZGlvLmdldFBsdWdpbkNvbmZpZ3MoJ2F1dGgnKS5nZXQoJ05FV1VTRVJTX0VESVRfUEFSQU1FVEVSUycpLnNwbGl0KCcsJyk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwYXJhbXNbaV0gPSBcInVzZXIvcHJlZmVyZW5jZXMvcHJlZltAZXhwb3NlZF18Ly9wYXJhbVtAbmFtZT0nXCIgKyBwYXJhbXNbaV0gKyBcIiddXCI7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHhQYXRoID0gcGFyYW1zLmpvaW4oJ3wnKTtcbiAgICAgICAgTWFuYWdlci5wYXJzZVBhcmFtZXRlcnModGhpcy5wcm9wcy5weWRpby5nZXRYbWxSZWdpc3RyeSgpLCB4UGF0aCkubWFwKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgICAgYmFzaWNQYXJhbWV0ZXJzLnB1c2goZWwpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFlZGl0TW9kZSkge1xuICAgICAgICAgICAgYmFzaWNQYXJhbWV0ZXJzLnB1c2goe1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBNZXNzYWdlSGFzaFsnNTM2J10sXG4gICAgICAgICAgICAgICAgZWRpdGFibGU6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIGV4cG9zZTogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IE1lc3NhZ2VIYXNoWyc1MzUnXSxcbiAgICAgICAgICAgICAgICBuYW1lOiBcInNlbmRfZW1haWxcIixcbiAgICAgICAgICAgICAgICBzY29wZTogXCJ1c2VyXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgbWFuZGF0b3J5OiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmFzaWNQYXJhbWV0ZXJzO1xuICAgIH07XG5cbiAgICBVc2VyQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5nZXREZWZhdWx0UHJvcHMgPSBmdW5jdGlvbiBnZXREZWZhdWx0UHJvcHMoKSB7XG4gICAgICAgIHJldHVybiB7IGVkaXRNb2RlOiBmYWxzZSB9O1xuICAgIH07XG5cbiAgICBVc2VyQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5nZXRQYXJhbWV0ZXJzID0gZnVuY3Rpb24gZ2V0UGFyYW1ldGVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9wYXJzZWRQYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXJzZWRQYXJhbWV0ZXJzID0gdGhpcy5nZXRDcmVhdGVVc2VyUGFyYW1ldGVycyh0aGlzLnByb3BzLmVkaXRNb2RlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VkUGFyYW1ldGVycztcbiAgICB9O1xuXG4gICAgVXNlckNyZWF0aW9uRm9ybS5wcm90b3R5cGUuZ2V0VmFsdWVzRm9yUG9zdCA9IGZ1bmN0aW9uIGdldFZhbHVlc0ZvclBvc3QocHJlZml4KSB7XG4gICAgICAgIHJldHVybiBNYW5hZ2VyLmdldFZhbHVlc0ZvclBPU1QodGhpcy5nZXRQYXJhbWV0ZXJzKCksIHRoaXMuc3RhdGUudmFsdWVzLCBwcmVmaXgpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBVc2VyQ3JlYXRpb25Gb3JtKHByb3BzLCBjb250ZXh0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVzZXJDcmVhdGlvbkZvcm0pO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG5cbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wcy5weWRpbztcbiAgICAgICAgdmFyIG5ld1VzZXJOYW1lID0gX3Byb3BzLm5ld1VzZXJOYW1lO1xuICAgICAgICB2YXIgZWRpdE1vZGUgPSBfcHJvcHMuZWRpdE1vZGU7XG4gICAgICAgIHZhciB1c2VyRGF0YSA9IF9wcm9wcy51c2VyRGF0YTtcblxuICAgICAgICB2YXIgdXNlclByZWZpeCA9IHB5ZGlvLmdldFBsdWdpbkNvbmZpZ3MoJ2FjdGlvbi5zaGFyZScpLmdldCgnU0hBUkVEX1VTRVJTX1RNUF9QUkVGSVgnKTtcbiAgICAgICAgaWYgKCF1c2VyUHJlZml4IHx8IG5ld1VzZXJOYW1lLnN0YXJ0c1dpdGgodXNlclByZWZpeCkpIHVzZXJQcmVmaXggPSAnJztcbiAgICAgICAgdmFyIHZhbHVlcyA9IHtcbiAgICAgICAgICAgIG5ld19wYXNzd29yZDogJycsXG4gICAgICAgICAgICBzZW5kX2VtYWlsOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIGlmIChlZGl0TW9kZSAmJiB1c2VyRGF0YSAmJiB1c2VyRGF0YS5JZG1Vc2VyKSB7XG4gICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBJZG1Vc2VyID0gdXNlckRhdGEuSWRtVXNlcjtcblxuICAgICAgICAgICAgICAgIF90aGlzLmdldFBhcmFtZXRlcnMoKS5mb3JFYWNoKGZ1bmN0aW9uIChwYXJhbSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHBhcmFtLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIHZhciBJZG1Vc2VyRmllbGQgPSBwYXJhbS5JZG1Vc2VyRmllbGQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzY29wZSA9IHBhcmFtLnNjb3BlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcGx1Z2luSWQgPSBwYXJhbS5wbHVnaW5JZDtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChJZG1Vc2VyRmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gSWRtVXNlcltJZG1Vc2VyRmllbGRdO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNjb3BlID09PSAndXNlcicgJiYgSWRtVXNlci5BdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IElkbVVzZXIuQXR0cmlidXRlc1tuYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwbHVnaW5JZCAmJiBJZG1Vc2VyLkF0dHJpYnV0ZXNbXCJwYXJhbWV0ZXI6XCIgKyBwbHVnaW5JZCArIFwiOlwiICsgbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gSlNPTi5wYXJzZShJZG1Vc2VyLkF0dHJpYnV0ZXNbXCJwYXJhbWV0ZXI6XCIgKyBwbHVnaW5JZCArIFwiOlwiICsgbmFtZV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlc1snbmV3X3VzZXJfaWQnXSA9IHVzZXJQcmVmaXggKyBuZXdVc2VyTmFtZTtcbiAgICAgICAgICAgIHZhbHVlc1snbGFuZyddID0gcHlkaW8uY3VycmVudExhbmd1YWdlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IHZhbHVlczogdmFsdWVzIH07XG4gICAgfVxuXG4gICAgVXNlckNyZWF0aW9uRm9ybS5wcm90b3R5cGUub25WYWx1ZXNDaGFuZ2UgPSBmdW5jdGlvbiBvblZhbHVlc0NoYW5nZShuZXdWYWx1ZXMpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlczogbmV3VmFsdWVzIH0pO1xuICAgIH07XG5cbiAgICBVc2VyQ3JlYXRpb25Gb3JtLnByb3RvdHlwZS5jaGFuZ2VWYWxpZFN0YXR1cyA9IGZ1bmN0aW9uIGNoYW5nZVZhbGlkU3RhdHVzKHN0YXR1cykge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsaWQ6IHN0YXR1cyB9KTtcbiAgICB9O1xuXG4gICAgVXNlckNyZWF0aW9uRm9ybS5wcm90b3R5cGUuc3VibWl0Q3JlYXRpb25Gb3JtID0gZnVuY3Rpb24gc3VibWl0Q3JlYXRpb25Gb3JtKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgZXhpc3RpbmdVc2VyID0gdW5kZWZpbmVkO1xuICAgICAgICB2YXIgX3Byb3BzMiA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBlZGl0TW9kZSA9IF9wcm9wczIuZWRpdE1vZGU7XG4gICAgICAgIHZhciB1c2VyRGF0YSA9IF9wcm9wczIudXNlckRhdGE7XG5cbiAgICAgICAgaWYgKGVkaXRNb2RlKSB7XG4gICAgICAgICAgICBleGlzdGluZ1VzZXIgPSB1c2VyRGF0YS5JZG1Vc2VyO1xuICAgICAgICB9XG4gICAgICAgIF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLnB1dEV4dGVybmFsVXNlcih0aGlzLnN0YXRlLnZhbHVlcywgdGhpcy5nZXRQYXJhbWV0ZXJzKCksIGV4aXN0aW5nVXNlcikudGhlbihmdW5jdGlvbiAoaWRtVXNlcikge1xuICAgICAgICAgICAgX3RoaXMyLnByb3BzLm9uVXNlckNyZWF0ZWQoX3B5ZGlvSHR0cFVzZXJzQXBpLlVzZXIuZnJvbUlkbVVzZXIoaWRtVXNlcikpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgVXNlckNyZWF0aW9uRm9ybS5wcm90b3R5cGUuY2FuY2VsQ3JlYXRpb25Gb3JtID0gZnVuY3Rpb24gY2FuY2VsQ3JlYXRpb25Gb3JtKCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQ2FuY2VsKCk7XG4gICAgfTtcblxuICAgIFVzZXJDcmVhdGlvbkZvcm0ucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF9wcm9wczMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHMzLnB5ZGlvO1xuICAgICAgICB2YXIgZWRpdE1vZGUgPSBfcHJvcHMzLmVkaXRNb2RlO1xuICAgICAgICB2YXIgbmV3VXNlck5hbWUgPSBfcHJvcHMzLm5ld1VzZXJOYW1lO1xuXG4gICAgICAgIHZhciBzdGF0dXMgPSB0aGlzLnN0YXRlLnZhbGlkO1xuICAgICAgICBpZiAoIXN0YXR1cyAmJiBlZGl0TW9kZSAmJiAhdGhpcy5zdGF0ZS52YWx1ZXNbJ25ld19wYXNzd29yZCddKSB7XG4gICAgICAgICAgICBzdGF0dXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgX21hdGVyaWFsVWkuUGFwZXIsXG4gICAgICAgICAgICB7IHpEZXB0aDogdGhpcy5wcm9wcy56RGVwdGggIT09IHVuZGVmaW5lZCA/IHRoaXMucHJvcHMuekRlcHRoIDogMiwgc3R5bGU6IF9leHRlbmRzKHsgbWluSGVpZ2h0OiAyNTAsIGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgfSwgdGhpcy5wcm9wcy5zdHlsZSkgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KEZvcm1QYW5lbCwge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3Jlc2V0LXB5ZGlvLWZvcm1zJyxcbiAgICAgICAgICAgICAgICBkZXB0aDogLTEsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogdGhpcy5nZXRQYXJhbWV0ZXJzKCksXG4gICAgICAgICAgICAgICAgdmFsdWVzOiB0aGlzLnN0YXRlLnZhbHVlcyxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogdGhpcy5vblZhbHVlc0NoYW5nZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIG9uVmFsaWRTdGF0dXNDaGFuZ2U6IHRoaXMuY2hhbmdlVmFsaWRTdGF0dXMuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyBvdmVyZmxvd1k6ICdhdXRvJywgZmxleDogMSB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIHsgc3R5bGU6IHsgZmxleFNocmluazogMCB9IH0pLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyBwYWRkaW5nOiA4LCB0ZXh0QWxpZ246ICdyaWdodCcgfSB9LFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZsYXRCdXR0b24sIHsgbGFiZWw6IHB5ZGlvLk1lc3NhZ2VIYXNoWzQ5XSwgb25Ub3VjaFRhcDogdGhpcy5jYW5jZWxDcmVhdGlvbkZvcm0uYmluZCh0aGlzKSB9KSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5GbGF0QnV0dG9uLCB7IGxhYmVsOiB0aGlzLnByb3BzLmVkaXRNb2RlID8gcHlkaW8uTWVzc2FnZUhhc2hbNTE5XSA6IHB5ZGlvLk1lc3NhZ2VIYXNoWzQ4NF0sIHByaW1hcnk6IHRydWUsIG9uVG91Y2hUYXA6IHRoaXMuc3VibWl0Q3JlYXRpb25Gb3JtLmJpbmQodGhpcyksIGRpc2FibGVkOiAhc3RhdHVzIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBVc2VyQ3JlYXRpb25Gb3JtO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cblVzZXJDcmVhdGlvbkZvcm0ucHJvcFR5cGVzID0ge1xuICAgIG5ld1VzZXJOYW1lOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvblVzZXJDcmVhdGVkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkNhbmNlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZWRpdE1vZGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICB1c2VyRGF0YTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3Rcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVzZXJDcmVhdGlvbkZvcm07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcHlkaW9IdHRwQXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC9hcGknKTtcblxudmFyIF9weWRpb0h0dHBBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9IdHRwQXBpKTtcblxudmFyIF9weWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfcHlkaW8yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW8pO1xuXG52YXIgX2FkZHJlc3Nib29rQWRkcmVzc0Jvb2sgPSByZXF1aXJlKCcuL2FkZHJlc3Nib29rL0FkZHJlc3NCb29rJyk7XG5cbnZhciBfYWRkcmVzc2Jvb2tBZGRyZXNzQm9vazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hZGRyZXNzYm9va0FkZHJlc3NCb29rKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9weWRpb1V0aWxGdW5jID0gcmVxdWlyZSgncHlkaW8vdXRpbC9mdW5jJyk7XG5cbnZhciBfcHlkaW9VdGlsRnVuYzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb1V0aWxGdW5jKTtcblxudmFyIF9Vc2VyQ3JlYXRpb25Gb3JtID0gcmVxdWlyZSgnLi9Vc2VyQ3JlYXRpb25Gb3JtJyk7XG5cbnZhciBfVXNlckNyZWF0aW9uRm9ybTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Vc2VyQ3JlYXRpb25Gb3JtKTtcblxuLyoqXG4gKiBSZWFkeSB0byB1c2UgYXV0b2NvbXBsZXRlIGZpZWxkIHRoYXQgd2lsbCBsb2FkIHVzZXJzL2dyb3Vwcy9yb2xlcyBmcm9tXG4gKiB0aGUgc2VydmVyICh1c2luZyB1c2VyX2xpc3RfYXV0aG9yaXplZF91c2VycyBBUEkpLlxuICogVXNlZCBmb3Igc2hhcmluZywgYWRkcmVzc2Jvb2tzLCBzZW5kIGVtYWlsLCBldGMuXG4gKlxuICogQ2FuIGFsc28gb3BlbiBhIFwic2VsZWN0b3Itc3R5bGVcIiBhZHJlc3MgYm9vay5cbiAqL1xudmFyIFVzZXJzTG9hZGVyID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1VzZXJzTG9hZGVyJyxcblxuICAgIHByb3BUeXBlczoge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBNZXRob2QgY2FsbGVkIHRvIHJlbmRlciBhIGNvbW1wb25lbnQsIHRha2luZyBhIFVzZXJPYmplY3QgYXMgaW5wdXRcbiAgICAgICAgICovXG4gICAgICAgIHJlbmRlclN1Z2dlc3Rpb246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogQ2FsbGJhY2sgd2hlbiBhIHZhbHVlIGlzIGZpbmFsbHkgc2VsZWN0ZWRcbiAgICAgICAgICovXG4gICAgICAgIG9uVmFsdWVTZWxlY3RlZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGbG9hdGluZyBMYWJlbCBUZXh0IGRpc3BsYXllZCBvbiB0aGUgZmllbGRcbiAgICAgICAgICovXG4gICAgICAgIGZpZWxkTGFiZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBcnJheSBvZiB2YWx1ZXMgdG8gaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICBleGNsdWRlczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgICAgICAvKipcbiAgICAgICAgICogRGlzcGxheSBvbmx5IHVzZXJzLCBubyBncm91cHMgbm9yIHJvbGVzXG4gICAgICAgICAqL1xuICAgICAgICB1c2Vyc09ubHk6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc3BsYXkgdXNlcnMgZnJvbSBsb2NhbCBkaXJlY3RvcnkgYW5kL29yIGZyb20gcmVtb3RlLlxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcnNGcm9tOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9uZU9mKFsnbG9jYWwnLCAncmVtb3RlJywgJ2FueSddKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERvIG5vdCBwcm9wb3NlIGEgXCJDcmVhdGUgdXNlclwiIG9wdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgZXhpc3RpbmdPbmx5OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbGxvdyBmcmVlIHR5cGluZ1xuICAgICAgICAgKi9cbiAgICAgICAgZnJlZVZhbHVlQWxsb3dlZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogV2lsbCBiZSBwYXNzZWQgdG8gdGhlIHJvb3QgY29tcG9uZW50XG4gICAgICAgICAqL1xuICAgICAgICBjbGFzc05hbWU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nXG4gICAgfSxcblxuICAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YVNvdXJjZTogW10sXG4gICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHNlYXJjaFRleHQ6ICcnLFxuICAgICAgICAgICAgbWluQ2hhcnM6IHBhcnNlSW50KGdsb2JhbC5weWRpby5nZXRQbHVnaW5Db25maWdzKFwiY29yZS5hdXRoXCIpLmdldChcIlVTRVJTX0xJU1RfQ09NUExFVEVfTUlOX0NIQVJTXCIpKVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyB2YWx1ZXMgZnJvbSBzZXJ2ZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gaW5wdXQgQ3VycmVudGx5IHNlYXJjaGVkIHRleHRcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgd2l0aCB0aGUgdmFsdWVzXG4gICAgICovXG4gICAgc3VnZ2VzdGlvbkxvYWRlcjogZnVuY3Rpb24gc3VnZ2VzdGlvbkxvYWRlcihpbnB1dCwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgZXhjbHVkZXMgPSB0aGlzLnByb3BzLmV4Y2x1ZGVzO1xuICAgICAgICAvL2NvbnN0IGRpc2FsbG93VGVtcG9yYXJ5ID0gdGhpcy5wcm9wcy5leGlzdGluZ09ubHkgJiYgIXRoaXMucHJvcHMuZnJlZVZhbHVlQWxsb3dlZDtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRoaXMuc3RhdGUubG9hZGluZyArIDEgfSk7XG4gICAgICAgIHZhciBhcGkgPSBfcHlkaW9IdHRwQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKS5nZXRJZG1BcGkoKTtcbiAgICAgICAgdmFyIHVQcm9taXNlID0gYXBpLmxpc3RVc2VycygnLycsIGlucHV0LCB0cnVlLCAwLCAyMCk7XG4gICAgICAgIHZhciBnUHJvbWlzZSA9IGFwaS5saXN0R3JvdXBzKCcvJywgaW5wdXQsIHRydWUsIDAsIDIwKTtcbiAgICAgICAgdmFyIHRQcm9taXNlID0gYXBpLmxpc3RUZWFtcyhpbnB1dCwgMCwgMjApO1xuICAgICAgICBQcm9taXNlLmFsbChbdVByb21pc2UsIGdQcm9taXNlLCB0UHJvbWlzZV0pLnRoZW4oZnVuY3Rpb24gKHJlc3VsdHMpIHtcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgbG9hZGluZzogX3RoaXMuc3RhdGUubG9hZGluZyAtIDEgfSk7XG4gICAgICAgICAgICB2YXIgdXNlcnMgPSByZXN1bHRzWzBdO1xuICAgICAgICAgICAgdmFyIGdyb3VwcyA9IHJlc3VsdHNbMV07XG4gICAgICAgICAgICB2YXIgdGVhbXMgPSByZXN1bHRzWzJdO1xuXG4gICAgICAgICAgICB1c2VycyA9IHVzZXJzLlVzZXJzO1xuICAgICAgICAgICAgZ3JvdXBzID0gZ3JvdXBzLkdyb3VwcztcbiAgICAgICAgICAgIHRlYW1zID0gdGVhbXMuVGVhbXM7XG4gICAgICAgICAgICBpZiAoZXhjbHVkZXMgJiYgZXhjbHVkZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdXNlcnMgPSB1c2Vycy5maWx0ZXIoZnVuY3Rpb24gKHVzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2x1ZGVzLmluZGV4T2YodXNlci5Mb2dpbikgPT09IC0xO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGdyb3VwcyA9IGdyb3Vwcy5maWx0ZXIoZnVuY3Rpb24gKGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNsdWRlcy5pbmRleE9mKGdyb3VwLkdyb3VwTGFiZWwpID09PSAtMTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0ZWFtcyA9IHRlYW1zLmZpbHRlcihmdW5jdGlvbiAodGVhbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjbHVkZXMuaW5kZXhPZih0ZWFtLkxhYmVsID09PSAtMSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYWxsYmFjayhbXS5jb25jYXQoZ3JvdXBzLm1hcChmdW5jdGlvbiAodSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IElkbVVzZXI6IHUgfTtcbiAgICAgICAgICAgIH0pLCB0ZWFtcy5tYXAoZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBJZG1Sb2xlOiB1IH07XG4gICAgICAgICAgICB9KSwgdXNlcnMubWFwKGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgSWRtVXNlcjogdSB9O1xuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIHRoZSBmaWVsZCBpcyB1cGRhdGVkXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICovXG4gICAgdGV4dEZpZWxkVXBkYXRlOiBmdW5jdGlvbiB0ZXh0RmllbGRVcGRhdGUodmFsdWUpIHtcblxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2VhcmNoVGV4dDogdmFsdWUgfSk7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLm1pbkNoYXJzICYmIHZhbHVlICYmIHZhbHVlLmxlbmd0aCA8IHRoaXMuc3RhdGUubWluQ2hhcnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRCdWZmZXJlZCh2YWx1ZSwgMzUwKTtcbiAgICB9LFxuXG4gICAgZ2V0UGVuZGluZ1NlYXJjaFRleHQ6IGZ1bmN0aW9uIGdldFBlbmRpbmdTZWFyY2hUZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5zZWFyY2hUZXh0IHx8IGZhbHNlO1xuICAgIH0sXG5cbiAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCkge1xuICAgICAgICB0aGlzLl9lbXB0eVZhbHVlTGlzdCA9IG51bGw7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIERlYm91bmNlZCBjYWxsIGZvciByZW5kZXJpbmcgc2VhcmNoXG4gICAgICogQHBhcmFtIHZhbHVlIHtzdHJpbmd9XG4gICAgICogQHBhcmFtIHRpbWVvdXQge2ludH1cbiAgICAgKi9cbiAgICBsb2FkQnVmZmVyZWQ6IGZ1bmN0aW9uIGxvYWRCdWZmZXJlZCh2YWx1ZSwgdGltZW91dCkge1xuXG4gICAgICAgIGlmICghdmFsdWUgJiYgdGhpcy5fZW1wdHlWYWx1ZUxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiB0aGlzLl9lbXB0eVZhbHVlTGlzdCB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGV4aXN0aW5nT25seSA9IF9wcm9wcy5leGlzdGluZ09ubHk7XG4gICAgICAgIHZhciBmcmVlVmFsdWVBbGxvd2VkID0gX3Byb3BzLmZyZWVWYWx1ZUFsbG93ZWQ7XG4gICAgICAgIHZhciBleGNsdWRlcyA9IF9wcm9wcy5leGNsdWRlcztcblxuICAgICAgICBfcHlkaW9VdGlsRnVuYzJbJ2RlZmF1bHQnXS5idWZmZXJDYWxsYmFjaygncmVtb3RlX3VzZXJzX3NlYXJjaCcsIHRpbWVvdXQsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHZhciBleGNsdWRlZCA9IFtfcHlkaW8yWydkZWZhdWx0J10uZ2V0SW5zdGFuY2UoKS51c2VyLmlkLCAncHlkaW8uYW5vbi51c2VyJ107XG4gICAgICAgICAgICB0aGlzLnN1Z2dlc3Rpb25Mb2FkZXIodmFsdWUsIChmdW5jdGlvbiAodXNlcnMpIHtcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVFeGlzdHMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gdXNlcnMuZmlsdGVyKGZ1bmN0aW9uICh1c2VyT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhKHVzZXJPYmplY3QuSWRtVXNlciAmJiAhdXNlck9iamVjdC5JZG1Vc2VyLklzR3JvdXAgJiYgZXhjbHVkZWQuaW5kZXhPZih1c2VyT2JqZWN0LklkbVVzZXIuTG9naW4pID4gLTEpO1xuICAgICAgICAgICAgICAgIH0pLmZpbHRlcihmdW5jdGlvbiAodXNlck9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Y2x1ZGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodXNlck9iamVjdC5JZG1Vc2VyICYmIHVzZXJPYmplY3QuSWRtVXNlci5Jc0dyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjbHVkZXMuZmlsdGVyKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUgPT09IHVzZXJPYmplY3QuSWRtVXNlci5VdWlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVzZXJPYmplY3QuSWRtVXNlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2x1ZGVzLmZpbHRlcihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlID09PSB1c2VyT2JqZWN0LklkbVVzZXIuTG9naW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjbHVkZXMuZmlsdGVyKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUgPT09IHVzZXJPYmplY3QuSWRtUm9sZS5VdWlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkubWFwKGZ1bmN0aW9uICh1c2VyT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpZGVudGlmaWVyID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAodXNlck9iamVjdC5JZG1Vc2VyICYmIHVzZXJPYmplY3QuSWRtVXNlci5Jc0dyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyID0gdXNlck9iamVjdC5JZG1Vc2VyLkdyb3VwTGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHVzZXJPYmplY3QuSWRtVXNlci5BdHRyaWJ1dGVzICYmIHVzZXJPYmplY3QuSWRtVXNlci5BdHRyaWJ1dGVzW1wiZGlzcGxheU5hbWVcIl0gPyB1c2VyT2JqZWN0LklkbVVzZXIuQXR0cmlidXRlc1tcImRpc3BsYXlOYW1lXCJdIDogaWRlbnRpZmllcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcIm1kaSBtZGktZm9sZGVyLWFjY291bnRcIjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1c2VyT2JqZWN0LklkbVVzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgPSB1c2VyT2JqZWN0LklkbVVzZXIuTG9naW47XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHVzZXJPYmplY3QuSWRtVXNlci5BdHRyaWJ1dGVzICYmIHVzZXJPYmplY3QuSWRtVXNlci5BdHRyaWJ1dGVzW1wiZGlzcGxheU5hbWVcIl0gPyB1c2VyT2JqZWN0LklkbVVzZXIuQXR0cmlidXRlc1tcImRpc3BsYXlOYW1lXCJdIDogaWRlbnRpZmllcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzaGFyZWQgPSB1c2VyT2JqZWN0LklkbVVzZXIuQXR0cmlidXRlcyAmJiB1c2VyT2JqZWN0LklkbVVzZXIuQXR0cmlidXRlc1tcInByb2ZpbGVcIl0gPT09IFwic2hhcmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hhcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwibWRpIG1kaS1hY2NvdW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcIm1kaSBtZGktYWNjb3VudC1ib3gtb3V0bGluZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciA9IHVzZXJPYmplY3QuSWRtUm9sZS5VdWlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSB1c2VyT2JqZWN0LklkbVJvbGUuTGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJtZGkgbWRpLWFjY291bnQtbXVsdGlwbGUtb3V0bGluZVwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRXhpc3RzIHw9IGxhYmVsID09PSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbXBvbmVudCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLk1lbnVJdGVtLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0SWNvbjogX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRm9udEljb24sIHsgY2xhc3NOYW1lOiBpY29uLCBzdHlsZTogeyBtYXJnaW46ICcwIDEycHgnIH0gfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyT2JqZWN0OiB1c2VyT2JqZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogaWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtcHR5VmFsdWVMaXN0ID0gdmFsdWVzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGVtcG9yYXJ5IGNyZWF0ZSB1c2VyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICYmICF2YWx1ZUV4aXN0cyAmJiAoIWV4aXN0aW5nT25seSB8fCBmcmVlVmFsdWVBbGxvd2VkKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbSA9IF9weWRpbzJbJ2RlZmF1bHQnXS5nZXRNZXNzYWdlcygpW1wiNDQ4XCJdIHx8IFwiY3JlYXRlXCI7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjcmVhdGVJdGVtID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTWVudUl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiB2YWx1ZSArIChmcmVlVmFsdWVBbGxvd2VkID8gJycgOiAnICgnICsgbSArICcpJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0SWNvbjogX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuRm9udEljb24sIHsgY2xhc3NOYW1lOiBcIm1kaSBtZGktYWNjb3VudC1wbHVzXCIsIHN0eWxlOiB7IG1hcmdpbjogJzAgMTJweCcgfSB9KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gW3sgdGV4dDogdmFsdWUsIHZhbHVlOiBjcmVhdGVJdGVtIH1dLmNvbmNhdCh2YWx1ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGF0YVNvdXJjZTogdmFsdWVzLCBsb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIGEgdmFsdWUgZnJvbSB0aGUgbGlzdFxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqL1xuICAgIG9uQ29tcGxldGVyUmVxdWVzdDogZnVuY3Rpb24gb25Db21wbGV0ZXJSZXF1ZXN0KHZhbHVlLCBpbmRleCkge1xuICAgICAgICB2YXIgZnJlZVZhbHVlQWxsb3dlZCA9IHRoaXMucHJvcHMuZnJlZVZhbHVlQWxsb3dlZDtcblxuICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLmRhdGFTb3VyY2UubWFwKGZ1bmN0aW9uIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS50ZXh0ID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGVudHJ5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmICF2YWx1ZS51c2VyT2JqZWN0ICYmIHRoaXMucHJvcHMuZnJlZVZhbHVlQWxsb3dlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25WYWx1ZVNlbGVjdGVkKHsgRnJlZVZhbHVlOiB2YWx1ZS50ZXh0IH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzZWFyY2hUZXh0OiAnJywgZGF0YVNvdXJjZTogW10gfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlLnVzZXJPYmplY3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uVmFsdWVTZWxlY3RlZCh2YWx1ZS51c2VyT2JqZWN0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnJlZVZhbHVlQWxsb3dlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25WYWx1ZVNlbGVjdGVkKHsgRnJlZVZhbHVlOiB2YWx1ZS50ZXh0IH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgY3JlYXRlVXNlcjogdmFsdWUudGV4dCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzZWFyY2hUZXh0OiAnJywgZGF0YVNvdXJjZTogW10gfSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgb25WYWx1ZVNlbGVjdGVkIHByb3BzIGNhbGxiYWNrXG4gICAgICogQHBhcmFtIHtQeWRpby5Vc2VyfSBuZXdVc2VyXG4gICAgICovXG4gICAgb25Vc2VyQ3JlYXRlZDogZnVuY3Rpb24gb25Vc2VyQ3JlYXRlZChuZXdVc2VyKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25WYWx1ZVNlbGVjdGVkKG5ld1VzZXIpO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY3JlYXRlVXNlcjogbnVsbCB9KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgdXNlciBjcmVhdGlvbiBmb3JtXG4gICAgICovXG4gICAgb25DcmVhdGlvbkNhbmNlbGxlZDogZnVuY3Rpb24gb25DcmVhdGlvbkNhbmNlbGxlZCgpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNyZWF0ZVVzZXI6IG51bGwgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIE9wZW4gYWRkcmVzcyBib29rIGluc2lkZSBhIFBvcG92ZXJcbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKi9cbiAgICBvcGVuQWRkcmVzc0Jvb2s6IGZ1bmN0aW9uIG9wZW5BZGRyZXNzQm9vayhldmVudCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGFkZHJlc3NCb29rT3BlbjogdHJ1ZSxcbiAgICAgICAgICAgIGFkZHJlc3NCb29rQW5jaG9yOiBldmVudC5jdXJyZW50VGFyZ2V0XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBhZGRyZXNzIGJvb2sgcG9wb3ZlclxuICAgICAqL1xuICAgIGNsb3NlQWRkcmVzc0Jvb2s6IGZ1bmN0aW9uIGNsb3NlQWRkcmVzc0Jvb2soKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBhZGRyZXNzQm9va09wZW46IGZhbHNlIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiBhbiBlbnRyeSBmcm9tIGFkcmVzcyBib29rLlxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICovXG4gICAgb25BZGRyZXNzQm9va0l0ZW1TZWxlY3RlZDogZnVuY3Rpb24gb25BZGRyZXNzQm9va0l0ZW1TZWxlY3RlZChpdGVtKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25WYWx1ZVNlbGVjdGVkKGl0ZW0pO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9zdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciBkYXRhU291cmNlID0gX3N0YXRlLmRhdGFTb3VyY2U7XG4gICAgICAgIHZhciBjcmVhdGVVc2VyID0gX3N0YXRlLmNyZWF0ZVVzZXI7XG5cbiAgICAgICAgdmFyIGNvbnRhaW5lclN0eWxlID0geyBwb3NpdGlvbjogJ3JlbGF0aXZlJywgb3ZlcmZsb3c6ICd2aXNpYmxlJyB9O1xuXG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBzdHlsZTogY29udGFpbmVyU3R5bGUsIHJlZjogZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5fcG9wb3ZlckFuY2hvciA9IGVsO1xuICAgICAgICAgICAgICAgIH0gfSxcbiAgICAgICAgICAgICFjcmVhdGVVc2VyICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkF1dG9Db21wbGV0ZSwge1xuICAgICAgICAgICAgICAgIGZpbHRlcjogX21hdGVyaWFsVWkuQXV0b0NvbXBsZXRlLm5vRmlsdGVyLFxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgc2VhcmNoVGV4dDogdGhpcy5zdGF0ZS5zZWFyY2hUZXh0LFxuICAgICAgICAgICAgICAgIG9uVXBkYXRlSW5wdXQ6IHRoaXMudGV4dEZpZWxkVXBkYXRlLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb3Blbk9uRm9jdXM6IHRydWUsXG4gICAgICAgICAgICAgICAgZmxvYXRpbmdMYWJlbFRleHQ6IHRoaXMucHJvcHMuZmllbGRMYWJlbCxcbiAgICAgICAgICAgICAgICB1bmRlcmxpbmVTaG93OiAhdGhpcy5wcm9wcy51bmRlcmxpbmVIaWRlLFxuICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvbk5ld1JlcXVlc3Q6IHRoaXMub25Db21wbGV0ZXJSZXF1ZXN0LFxuICAgICAgICAgICAgICAgIGxpc3RTdHlsZTogeyBtYXhIZWlnaHQ6IDM1MCwgb3ZlcmZsb3dZOiAnYXV0bycgfSxcbiAgICAgICAgICAgICAgICBvbkZvY3VzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5sb2FkQnVmZmVyZWQoX3RoaXMyLnN0YXRlLnNlYXJjaFRleHQsIDEwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjcmVhdGVVc2VyICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlRleHRGaWVsZCwge1xuICAgICAgICAgICAgICAgIGZsb2F0aW5nTGFiZWxUZXh0OiB0aGlzLnByb3BzLmZpZWxkTGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGdsb2JhbC5weWRpby5NZXNzYWdlSGFzaFs0ODVdICsgJyAoJyArIHRoaXMuc3RhdGUuY3JlYXRlVXNlciArICcpJyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmdWxsV2lkdGg6IHRydWUsXG4gICAgICAgICAgICAgICAgdW5kZXJsaW5lU2hvdzogIXRoaXMucHJvcHMudW5kZXJsaW5lSGlkZVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAhY3JlYXRlVXNlciAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCByaWdodDogNCwgYm90dG9tOiAxNCwgaGVpZ2h0OiAyMCwgd2lkdGg6IDIwIH0gfSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5SZWZyZXNoSW5kaWNhdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgIHNpemU6IDIwLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0ZS5sb2FkaW5nID8gJ2xvYWRpbmcnIDogJ2hpZGUnXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0aGlzLnByb3BzLnNob3dBZGRyZXNzQm9vayAmJiAhY3JlYXRlVXNlciAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfYWRkcmVzc2Jvb2tBZGRyZXNzQm9vazJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgIG1vZGU6ICdwb3BvdmVyJyxcbiAgICAgICAgICAgICAgICBweWRpbzogdGhpcy5wcm9wcy5weWRpbyxcbiAgICAgICAgICAgICAgICBsb2FkZXJTdHlsZTogeyB3aWR0aDogMzIwLCBoZWlnaHQ6IDQyMCB9LFxuICAgICAgICAgICAgICAgIG9uSXRlbVNlbGVjdGVkOiB0aGlzLm9uQWRkcmVzc0Jvb2tJdGVtU2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgdXNlcnNGcm9tOiB0aGlzLnByb3BzLnVzZXJzRnJvbSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlU2VhcmNoOiB0cnVlXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlBvcG92ZXIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcGVuOiBjcmVhdGVVc2VyLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JFbDogdGhpcy5fcG9wb3ZlckFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luOiB7IGhvcml6b250YWw6ICdsZWZ0JywgdmVydGljYWw6ICdib3R0b20nIH0sXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiAnbGVmdCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZTogdGhpcy5vbkNyZWF0aW9uQ2FuY2VsbGVkLFxuICAgICAgICAgICAgICAgICAgICBjYW5BdXRvUG9zaXRpb246IGZhbHNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjcmVhdGVVc2VyICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9Vc2VyQ3JlYXRpb25Gb3JtMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgIG9uVXNlckNyZWF0ZWQ6IHRoaXMub25Vc2VyQ3JlYXRlZC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICBvbkNhbmNlbDogdGhpcy5vbkNyZWF0aW9uQ2FuY2VsbGVkLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiAzNTAsIGhlaWdodDogMzIwIH0sXG4gICAgICAgICAgICAgICAgICAgIG5ld1VzZXJOYW1lOiB0aGlzLnN0YXRlLmNyZWF0ZVVzZXIsXG4gICAgICAgICAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBVc2Vyc0xvYWRlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9OZXN0ZWRMaXN0SXRlbSA9IHJlcXVpcmUoJy4vTmVzdGVkTGlzdEl0ZW0nKTtcblxudmFyIF9OZXN0ZWRMaXN0SXRlbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9OZXN0ZWRMaXN0SXRlbSk7XG5cbnZhciBfVXNlcnNMaXN0ID0gcmVxdWlyZSgnLi9Vc2Vyc0xpc3QnKTtcblxudmFyIF9Vc2Vyc0xpc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXNlcnNMaXN0KTtcblxudmFyIF9SaWdodFBhbmVsQ2FyZCA9IHJlcXVpcmUoJy4vUmlnaHRQYW5lbENhcmQnKTtcblxudmFyIF9SaWdodFBhbmVsQ2FyZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SaWdodFBhbmVsQ2FyZCk7XG5cbnZhciBfU2VhcmNoUGFuZWwgPSByZXF1aXJlKCcuL1NlYXJjaFBhbmVsJyk7XG5cbnZhciBfU2VhcmNoUGFuZWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VhcmNoUGFuZWwpO1xuXG52YXIgX0xvYWRlcnMgPSByZXF1aXJlKCcuL0xvYWRlcnMnKTtcblxudmFyIF9Mb2FkZXJzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0xvYWRlcnMpO1xuXG52YXIgX1RlYW1DcmVhdGlvbkZvcm0gPSByZXF1aXJlKCcuLi9UZWFtQ3JlYXRpb25Gb3JtJyk7XG5cbnZhciBfVGVhbUNyZWF0aW9uRm9ybTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UZWFtQ3JlYXRpb25Gb3JtKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3B5ZGlvID0gcmVxdWlyZSgncHlkaW8nKTtcblxudmFyIF9weWRpbzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpbyk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfbWF0ZXJpYWxVaVN0eWxlcyA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpL3N0eWxlcycpO1xuXG52YXIgX2F2YXRhckFjdGlvbnNQYW5lbCA9IHJlcXVpcmUoJy4uL2F2YXRhci9BY3Rpb25zUGFuZWwnKTtcblxudmFyIF9hdmF0YXJBY3Rpb25zUGFuZWwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXZhdGFyQWN0aW9uc1BhbmVsKTtcblxudmFyIF9Vc2VyQ3JlYXRpb25Gb3JtID0gcmVxdWlyZSgnLi4vVXNlckNyZWF0aW9uRm9ybScpO1xuXG52YXIgX1VzZXJDcmVhdGlvbkZvcm0yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXNlckNyZWF0aW9uRm9ybSk7XG5cbnZhciBfcHlkaW9IdHRwQXBpID0gcmVxdWlyZSgncHlkaW8vaHR0cC9hcGknKTtcblxudmFyIF9weWRpb0h0dHBBcGkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHlkaW9IdHRwQXBpKTtcblxuLyoqXG4gKiBIaWdoIGxldmVsIGNvbXBvbmVudCB0byBicm93c2UgdXNlcnMsIGdyb3VwcyBhbmQgdGVhbXMsIGVpdGhlciBpbiBhIGxhcmdlIGZvcm1hdCAobW9kZT0nYm9vaycpIG9yIGEgbW9yZSBjb21wYWN0XG4gKiBmb3JtYXQgKG1vZGU9J3NlbGVjdG9yJ3wncG9wb3ZlcicpLlxuICogQWRkcmVzcyBib29rIGFsbG93cyB0byBjcmVhdGUgZXh0ZXJuYWwgdXNlcnMsIHRlYW1zLCBhbmQgYWxzbyB0byBicm93c2UgdHJ1c3RlZCBzZXJ2ZXIgZGlyZWN0b3JpZXMgaWYgRmVkZXJhdGVkIFNoYXJpbmdcbiAqIGlzIGFjdGl2ZS5cbiAqL1xuXG52YXIgX1B5ZGlvJHJlcXVpcmVMaWIgPSBfcHlkaW8yWydkZWZhdWx0J10ucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfUHlkaW8kcmVxdWlyZUxpYi5QeWRpb0NvbnRleHRDb25zdW1lcjtcbnZhciBBZGRyZXNzQm9vayA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdBZGRyZXNzQm9vaycsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE1haW4gaW5zdGFuY2Ugb2YgcHlkaW9cbiAgICAgICAgICovXG4gICAgICAgIHB5ZGlvOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoX3B5ZGlvMlsnZGVmYXVsdCddKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc3BsYXkgbW9kZSwgZWl0aGVyIGxhcmdlIChib29rKSBvciBzbWFsbCBwaWNrZXIgKCdzZWxlY3RvcicsICdwb3BvdmVyJykuXG4gICAgICAgICAqL1xuICAgICAgICBtb2RlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9uZU9mKFsnYm9vaycsICdzZWxlY3RvcicsICdwb3BvdmVyJ10pLmlzUmVxdWlyZWQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2UgYm9vayBtb2RlIGJ1dCBkaXNwbGF5IGFzIGNvbHVtblxuICAgICAgICAgKi9cbiAgICAgICAgYm9va0NvbHVtbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogQ2FsbGJhY2sgdHJpZ2dlcmVkIGluICdzZWxlY3RvcicgbW9kZSB3aGVuZXZlciBhbiBpdGVtIGlzIGNsaWNrZWQuXG4gICAgICAgICAqL1xuICAgICAgICBvbkl0ZW1TZWxlY3RlZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICAvKipcbiAgICAgICAgICogRGlzcGxheSB1c2VycyBvbmx5LCBubyB0ZWFtcyBvciBncm91cHNcbiAgICAgICAgICovXG4gICAgICAgIHVzZXJzT25seTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICAvKipcbiAgICAgICAgICogQ2hvb3NlIHZhcmlvdXMgdXNlciBzb3VyY2VzLCBlaXRoZXIgdGhlIGxvY2FsIGRpcmVjdG9yeSBvciByZW1vdGUgKCA9IHRydXN0ZWQgKSBzZXJ2ZXJzLlxuICAgICAgICAgKi9cbiAgICAgICAgdXNlcnNGcm9tOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9uZU9mKFsnbG9jYWwnLCAncmVtb3RlJywgJ2FueSddKSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERpc2FibGUgdGhlIHNlYXJjaCBlbmdpbmVcbiAgICAgICAgICovXG4gICAgICAgIGRpc2FibGVTZWFyY2g6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZW1lIG9iamVjdCBwYXNzZWQgYnkgbXVpVGhlbWVhYmxlKCkgd3JhcHBlclxuICAgICAgICAgKi9cbiAgICAgICAgbXVpVGhlbWU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogV2lsbCBiZSBwYXNzZWQgdG8gdGhlIFBvcG92ZXIgb2JqZWN0XG4gICAgICAgICAqL1xuICAgICAgICBwb3BvdmVyU3R5bGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogVXNlZCBhcyBhIGJ1dHRvbiB0byBvcGVuIHRoZSBzZWxlY3RvciBpbiBhIHBvcG92ZXJcbiAgICAgICAgICovXG4gICAgICAgIHBvcG92ZXJCdXR0b246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICAvKipcbiAgICAgICAgICogV2lsbCBiZSBwYXNzZWQgdG8gdGhlIFBvcG92ZXIgY29udGFpbmVyIG9iamVjdFxuICAgICAgICAgKi9cbiAgICAgICAgcG9wb3ZlckNvbnRhaW5lclN0eWxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdpbGwgYmUgcGFzc2VkIHRvIHRoZSBQb3BvdmVyIEljb24gQnV0dG9uLlxuICAgICAgICAgKi9cbiAgICAgICAgcG9wb3Zlckljb25CdXR0b25TdHlsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3RcbiAgICB9LFxuXG4gICAgZ2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbiBnZXREZWZhdWx0UHJvcHMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtb2RlOiAnYm9vaycsXG4gICAgICAgICAgICB1c2Vyc09ubHk6IGZhbHNlLFxuICAgICAgICAgICAgdXNlcnNGcm9tOiAnYW55JyxcbiAgICAgICAgICAgIHRlYW1zT25seTogZmFsc2UsXG4gICAgICAgICAgICBkaXNhYmxlU2VhcmNoOiBmYWxzZVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHB5ZGlvID0gX3Byb3BzLnB5ZGlvO1xuICAgICAgICB2YXIgbW9kZSA9IF9wcm9wcy5tb2RlO1xuICAgICAgICB2YXIgdXNlcnNPbmx5ID0gX3Byb3BzLnVzZXJzT25seTtcbiAgICAgICAgdmFyIHVzZXJzRnJvbSA9IF9wcm9wcy51c2Vyc0Zyb207XG4gICAgICAgIHZhciB0ZWFtc09ubHkgPSBfcHJvcHMudGVhbXNPbmx5O1xuICAgICAgICB2YXIgZGlzYWJsZVNlYXJjaCA9IF9wcm9wcy5kaXNhYmxlU2VhcmNoO1xuXG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gZnVuY3Rpb24gZ2V0TWVzc2FnZShpZCkge1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLnByb3BzLmdldE1lc3NhZ2UoaWQsICcnKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGF1dGhDb25maWdzID0gcHlkaW8uZ2V0UGx1Z2luQ29uZmlncygnY29yZS5hdXRoJyk7XG5cbiAgICAgICAgdmFyIHJvb3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0ZWFtc09ubHkpIHtcbiAgICAgICAgICAgIHJvb3QgPSB7XG4gICAgICAgICAgICAgICAgaWQ6ICd0ZWFtcycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGdldE1lc3NhZ2UoNTY4KSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbkxvYWRlcjogX0xvYWRlcnMyWydkZWZhdWx0J10ubG9hZFRlYW1zLFxuICAgICAgICAgICAgICAgIF9wYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgX25vdFNlbGVjdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgYWN0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGVhbXMnLFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGU6ICcrICcgKyBnZXRNZXNzYWdlKDU2OSksXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZTogZ2V0TWVzc2FnZSg1NzApLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJvb3Q6IHJvb3QsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtOiByb290LFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJpZ2h0UGFuZUl0ZW06IG51bGxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByb290ID0ge1xuICAgICAgICAgICAgaWQ6ICdyb290JyxcbiAgICAgICAgICAgIGxhYmVsOiBnZXRNZXNzYWdlKDU5MiksXG4gICAgICAgICAgICB0eXBlOiAncm9vdCcsXG4gICAgICAgICAgICBjb2xsZWN0aW9uczogW11cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHVzZXJzRnJvbSAhPT0gJ3JlbW90ZScpIHtcbiAgICAgICAgICAgIGlmIChhdXRoQ29uZmlncy5nZXQoJ1VTRVJfQ1JFQVRFX1VTRVJTJykpIHtcbiAgICAgICAgICAgICAgICByb290LmNvbGxlY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBpZDogJ2V4dCcsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRNZXNzYWdlKDU5MyksXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdtZGkgbWRpLWFjY291bnQtbmV0d29yaycsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zTG9hZGVyOiBfTG9hZGVyczJbJ2RlZmF1bHQnXS5sb2FkRXh0ZXJuYWxVc2VycyxcbiAgICAgICAgICAgICAgICAgICAgX3BhcmVudDogcm9vdCxcbiAgICAgICAgICAgICAgICAgICAgX25vdFNlbGVjdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd1c2VycycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGU6ICcrICcgKyBnZXRNZXNzYWdlKDQ4NCksXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmU6IGdldE1lc3NhZ2UoNTgyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdXNlcnNPbmx5KSB7XG4gICAgICAgICAgICAgICAgcm9vdC5jb2xsZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICd0ZWFtcycsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBnZXRNZXNzYWdlKDU2OCksXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdtZGkgbWRpLWFjY291bnQtbXVsdGlwbGUnLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbkxvYWRlcjogX0xvYWRlcnMyWydkZWZhdWx0J10ubG9hZFRlYW1zLFxuICAgICAgICAgICAgICAgICAgICBfcGFyZW50OiByb290LFxuICAgICAgICAgICAgICAgICAgICBfbm90U2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RlYW1zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZTogJysgJyArIGdldE1lc3NhZ2UoNTY5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZTogZ2V0TWVzc2FnZSg1NzApLFxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm9vdC5jb2xsZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogJ1BZRElPX0dSUF8vJyxcbiAgICAgICAgICAgICAgICBsYWJlbDogZ2V0TWVzc2FnZSg1ODQpLFxuICAgICAgICAgICAgICAgIGljb246ICdtZGkgbWRpLWFjY291bnQtYm94JyxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbkxvYWRlcjogX0xvYWRlcnMyWydkZWZhdWx0J10ubG9hZEdyb3VwcyxcbiAgICAgICAgICAgICAgICBpdGVtc0xvYWRlcjogX0xvYWRlcnMyWydkZWZhdWx0J10ubG9hZEdyb3VwVXNlcnMsXG4gICAgICAgICAgICAgICAgX3BhcmVudDogcm9vdCxcbiAgICAgICAgICAgICAgICBfbm90U2VsZWN0YWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb2NzUmVtb3RlcyA9IHB5ZGlvLmdldFBsdWdpbkNvbmZpZ3MoJ2NvcmUub2NzJykuZ2V0KCdUUlVTVEVEX1NFUlZFUlMnKTtcbiAgICAgICAgaWYgKG9jc1JlbW90ZXMgJiYgIXVzZXJzT25seSAmJiB1c2Vyc0Zyb20gIT09ICdsb2NhbCcpIHtcbiAgICAgICAgICAgIHZhciByZW1vdGVzID0gSlNPTi5wYXJzZShvY3NSZW1vdGVzKTtcbiAgICAgICAgICAgIHZhciByZW1vdGVzTm9kZXMgPSB7XG4gICAgICAgICAgICAgICAgaWQ6ICdyZW1vdGVzJyxcbiAgICAgICAgICAgICAgICBsYWJlbDogZ2V0TWVzc2FnZSg1OTQpLFxuICAgICAgICAgICAgICAgIC8vaWNvbjonbWRpIG1kaS1zZXJ2ZXInLFxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXSxcbiAgICAgICAgICAgICAgICBfcGFyZW50OiByb290LFxuICAgICAgICAgICAgICAgIF9ub3RTZWxlY3RhYmxlOiB0cnVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZm9yICh2YXIgayBpbiByZW1vdGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZW1vdGVzLmhhc093blByb3BlcnR5KGspKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICByZW1vdGVzTm9kZXMuY29sbGVjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBrLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogcmVtb3Rlc1trXSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ21kaSBtZGktc2VydmVyLW5ldHdvcmsnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAncmVtb3RlJyxcbiAgICAgICAgICAgICAgICAgICAgX3BhcmVudDogcmVtb3Rlc05vZGVzLFxuICAgICAgICAgICAgICAgICAgICBfbm90U2VsZWN0YWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlbW90ZXNOb2Rlcy5jb2xsZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByb290LmNvbGxlY3Rpb25zLnB1c2gocmVtb3Rlc05vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByb290OiByb290LFxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtOiBtb2RlID09PSAnc2VsZWN0b3InID8gcm9vdCA6IHJvb3QuY29sbGVjdGlvbnNbMF0sXG4gICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIHJpZ2h0UGFuZUl0ZW06IG51bGxcbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbSAmJiB0aGlzLm9uRm9sZGVyQ2xpY2tlZCh0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbSk7XG4gICAgfSxcblxuICAgIG9uRm9sZGVyQ2xpY2tlZDogZnVuY3Rpb24gb25Gb2xkZXJDbGlja2VkKGl0ZW0pIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICAgIC8vIFNwZWNpYWwgY2FzZSBmb3IgdGVhbXNcbiAgICAgICAgaWYgKHRoaXMucHJvcHMubW9kZSA9PT0gJ3NlbGVjdG9yJyAmJiBpdGVtLklkbVJvbGUgJiYgaXRlbS5JZG1Sb2xlLklzVGVhbSkge1xuICAgICAgICAgICAgdGhpcy5vblVzZXJMaXN0SXRlbUNsaWNrZWQoaXRlbSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XG5cbiAgICAgICAgX0xvYWRlcnMyWydkZWZhdWx0J10uY2hpbGRyZW5Bc1Byb21pc2UoaXRlbSwgZmFsc2UpLnRoZW4oZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBfTG9hZGVyczJbJ2RlZmF1bHQnXS5jaGlsZHJlbkFzUHJvbWlzZShpdGVtLCB0cnVlKS50aGVuKGZ1bmN0aW9uIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNlbGVjdGVkSXRlbTogaXRlbSwgbG9hZGluZzogZmFsc2UgfSwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICBvblVzZXJMaXN0SXRlbUNsaWNrZWQ6IGZ1bmN0aW9uIG9uVXNlckxpc3RJdGVtQ2xpY2tlZChpdGVtKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbVNlbGVjdGVkKSB7XG4gICAgICAgICAgICB2YXIgdU9iamVjdCA9IG5ldyBQeWRpb1VzZXJzLlVzZXIoaXRlbS5pZCwgaXRlbS5sYWJlbCwgaXRlbS50eXBlLCBpdGVtLmdyb3VwLCBpdGVtLmF2YXRhciwgaXRlbS50ZW1wb3JhcnksIGl0ZW0uZXh0ZXJuYWwpO1xuICAgICAgICAgICAgaWYgKGl0ZW0udHJ1c3RlZF9zZXJ2ZXJfaWQpIHtcbiAgICAgICAgICAgICAgICB1T2JqZWN0LnRydXN0ZWRTZXJ2ZXJJZCA9IGl0ZW0udHJ1c3RlZF9zZXJ2ZXJfaWQ7XG4gICAgICAgICAgICAgICAgdU9iamVjdC50cnVzdGVkU2VydmVyTGFiZWwgPSBpdGVtLnRydXN0ZWRfc2VydmVyX2xhYmVsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdU9iamVjdC5fdXVpZCA9IGl0ZW0udXVpZDtcbiAgICAgICAgICAgIGlmIChpdGVtLklkbVVzZXIpIHVPYmplY3QuSWRtVXNlciA9IGl0ZW0uSWRtVXNlcjtcbiAgICAgICAgICAgIGlmIChpdGVtLklkbVJvbGUpIHVPYmplY3QuSWRtUm9sZSA9IGl0ZW0uSWRtUm9sZTtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25JdGVtU2VsZWN0ZWQodU9iamVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgcmlnaHRQYW5lSXRlbTogaXRlbSB9KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvbkNyZWF0ZUFjdGlvbjogZnVuY3Rpb24gb25DcmVhdGVBY3Rpb24oaXRlbSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY3JlYXRlRGlhbG9nSXRlbTogaXRlbSB9KTtcbiAgICB9LFxuXG4gICAgY2xvc2VDcmVhdGVEaWFsb2dBbmRSZWxvYWQ6IGZ1bmN0aW9uIGNsb3NlQ3JlYXRlRGlhbG9nQW5kUmVsb2FkKCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY3JlYXRlRGlhbG9nSXRlbTogbnVsbCB9KTtcbiAgICAgICAgdGhpcy5yZWxvYWRDdXJyZW50Tm9kZSgpO1xuICAgIH0sXG5cbiAgICBvbkNhcmRVcGRhdGVBY3Rpb246IGZ1bmN0aW9uIG9uQ2FyZFVwZGF0ZUFjdGlvbihpdGVtKSB7XG4gICAgICAgIGlmIChpdGVtLl9wYXJlbnQgJiYgaXRlbS5fcGFyZW50ID09PSB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5yZWxvYWRDdXJyZW50Tm9kZSgpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9uRGVsZXRlQWN0aW9uOiBmdW5jdGlvbiBvbkRlbGV0ZUFjdGlvbihwYXJlbnRJdGVtLCBzZWxlY3Rpb24pIHtcbiAgICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIHNraXBDb25maXJtID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgICAgaWYgKCFza2lwQ29uZmlybSAmJiAhY29uZmlybSh0aGlzLnByb3BzLmdldE1lc3NhZ2UoMjc4KSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHBhcmVudEl0ZW0uYWN0aW9ucy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICd1c2Vycyc6XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAodXNlcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXMzLnN0YXRlLnJpZ2h0UGFuZUl0ZW0gPT09IHVzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy5zZXRTdGF0ZSh7IHJpZ2h0UGFuZUl0ZW06IG51bGwgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLmRlbGV0ZUlkbVVzZXIodXNlci5JZG1Vc2VyKTtcbiAgICAgICAgICAgICAgICB9KSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMy5yZWxvYWRDdXJyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndGVhbXMnOlxuICAgICAgICAgICAgICAgIFByb21pc2UuYWxsKHNlbGVjdGlvbi5tYXAoZnVuY3Rpb24gKHRlYW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF90aGlzMy5zdGF0ZS5yaWdodFBhbmVJdGVtID09PSB0ZWFtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczMuc2V0U3RhdGUoeyByaWdodFBhbmVJdGVtOiBudWxsIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfcHlkaW9IdHRwQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKS5nZXRJZG1BcGkoKS5kZWxldGVSb2xlKHRlYW0uSWRtUm9sZS5VdWlkKTtcbiAgICAgICAgICAgICAgICB9KSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMy5yZWxvYWRDdXJyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndGVhbSc6XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAodXNlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkucmVtb3ZlVXNlckZyb21UZWFtKHBhcmVudEl0ZW0uSWRtUm9sZS5VdWlkLCB1c2VyLklkbVVzZXIuTG9naW4pO1xuICAgICAgICAgICAgICAgIH0pKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMzLnJlbG9hZEN1cnJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9wZW5Qb3BvdmVyOiBmdW5jdGlvbiBvcGVuUG9wb3ZlcihldmVudCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHBvcG92ZXJPcGVuOiB0cnVlLFxuICAgICAgICAgICAgcG9wb3ZlckFuY2hvcjogZXZlbnQuY3VycmVudFRhcmdldFxuICAgICAgICB9KTtcbiAgICB9LFxuXG4gICAgY2xvc2VQb3BvdmVyOiBmdW5jdGlvbiBjbG9zZVBvcG92ZXIoKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBwb3BvdmVyT3BlbjogZmFsc2UgfSk7XG4gICAgfSxcblxuICAgIHJlbG9hZEN1cnJlbnROb2RlOiBmdW5jdGlvbiByZWxvYWRDdXJyZW50Tm9kZSgpIHtcbiAgICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0ubGVhZkxvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5jb2xsZWN0aW9uc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uRm9sZGVyQ2xpY2tlZCh0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKF90aGlzNC5zdGF0ZS5yaWdodFBhbmVJdGVtKSB7XG4gICAgICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJQYW5lSWQgPSBfdGhpczQuc3RhdGUucmlnaHRQYW5lSXRlbS5pZDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZvdW5kSXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsZWFmcyA9IF90aGlzNC5zdGF0ZS5zZWxlY3RlZEl0ZW0ubGVhZnMgfHwgW107XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb2xsZWN0aW9ucyA9IF90aGlzNC5zdGF0ZS5zZWxlY3RlZEl0ZW0uY29sbGVjdGlvbnMgfHwgW107XG4gICAgICAgICAgICAgICAgICAgIFtdLmNvbmNhdChsZWFmcywgY29sbGVjdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKGxlYWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZWFmLmlkID09PSByUGFuZUlkKSBmb3VuZEl0ZW0gPSBsZWFmO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXM0LnNldFN0YXRlKHsgcmlnaHRQYW5lSXRlbTogZm91bmRJdGVtIH0pO1xuICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICByZWxvYWRDdXJyZW50QXRQYWdlOiBmdW5jdGlvbiByZWxvYWRDdXJyZW50QXRQYWdlKGxldHRlck9yUmFuZ2UpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0ubGVhZkxvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbS5jb2xsZWN0aW9uc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICBpZiAobGV0dGVyT3JSYW5nZSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtLmN1cnJlbnRQYXJhbXMgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKGxldHRlck9yUmFuZ2UuaW5kZXhPZignLScpICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0ucmFuZ2UgPSBsZXR0ZXJPclJhbmdlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0ucmFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0uY3VycmVudFBhcmFtcyA9IHsgYWxwaGFfcGFnZXM6ICd0cnVlJywgdmFsdWU6IGxldHRlck9yUmFuZ2UgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uRm9sZGVyQ2xpY2tlZCh0aGlzLnN0YXRlLnNlbGVjdGVkSXRlbSk7XG4gICAgfSxcblxuICAgIHJlbG9hZEN1cnJlbnRXaXRoU2VhcmNoOiBmdW5jdGlvbiByZWxvYWRDdXJyZW50V2l0aFNlYXJjaCh2YWx1ZSkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZEN1cnJlbnRBdFBhZ2UoLTEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtLmxlYWZMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0uY29sbGVjdGlvbnNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdGF0ZS5zZWxlY3RlZEl0ZW0uY3VycmVudFBhcmFtcyA9IHsgaGFzX3NlYXJjaDogdHJ1ZSwgdmFsdWU6IHZhbHVlLCBleGlzdGluZ19vbmx5OiB0cnVlIH07XG4gICAgICAgIHRoaXMub25Gb2xkZXJDbGlja2VkKHRoaXMuc3RhdGUuc2VsZWN0ZWRJdGVtKTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIG1vZGUgPSBfcHJvcHMyLm1vZGU7XG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gX3Byb3BzMi5nZXRNZXNzYWdlO1xuICAgICAgICB2YXIgYm9va0NvbHVtbiA9IF9wcm9wczIuYm9va0NvbHVtbjtcblxuICAgICAgICBpZiAobW9kZSA9PT0gJ3BvcG92ZXInKSB7XG5cbiAgICAgICAgICAgIHZhciBwb3BvdmVyU3R5bGUgPSB0aGlzLnByb3BzLnBvcG92ZXJTdHlsZSB8fCB7fTtcbiAgICAgICAgICAgIHZhciBwb3BvdmVyQ29udGFpbmVyU3R5bGUgPSB0aGlzLnByb3BzLnBvcG92ZXJDb250YWluZXJTdHlsZSB8fCB7fTtcbiAgICAgICAgICAgIHZhciBpY29uQnV0dG9uU3R5bGUgPSB0aGlzLnByb3BzLnBvcG92ZXJJY29uQnV0dG9uU3R5bGUgfHwge307XG4gICAgICAgICAgICB2YXIgaWNvbkJ1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHtcbiAgICAgICAgICAgICAgICBzdHlsZTogX2V4dGVuZHMoeyBwb3NpdGlvbjogJ2Fic29sdXRlJywgcGFkZGluZzogMTUsIHpJbmRleDogMTAwLCByaWdodDogMCwgdG9wOiAyNSwgZGlzcGxheTogdGhpcy5zdGF0ZS5sb2FkaW5nID8gJ25vbmUnIDogJ2luaXRpYWwnIH0sIGljb25CdXR0b25TdHlsZSksXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlOiB7IGZvbnRTaXplOiAxOSwgY29sb3I6ICdyZ2JhKDAsMCwwLDAuNiknIH0sXG4gICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogJ21kaSBtZGktYm9vay1vcGVuLXZhcmlhbnQnLFxuICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRoaXMub3BlblBvcG92ZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMucG9wb3ZlckJ1dHRvbikge1xuICAgICAgICAgICAgICAgIGljb25CdXR0b24gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCh0aGlzLnByb3BzLnBvcG92ZXJCdXR0b24udHlwZSwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMucG9wb3ZlckJ1dHRvbi5wcm9wcywgeyBvblRvdWNoVGFwOiB0aGlzLm9wZW5Qb3BvdmVyIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBpY29uQnV0dG9uLFxuICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5Qb3BvdmVyLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuOiB0aGlzLnN0YXRlLnBvcG92ZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IHRoaXMuc3RhdGUucG9wb3ZlckFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbjogeyBob3Jpem9udGFsOiAncmlnaHQnLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiAnbGVmdCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U6IHRoaXMuY2xvc2VQb3BvdmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IF9leHRlbmRzKHsgbWFyZ2luTGVmdDogMjAgfSwgcG9wb3ZlclN0eWxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHpEZXB0aDogMlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogX2V4dGVuZHMoeyB3aWR0aDogMzIwLCBoZWlnaHQ6IDQyMCB9LCBwb3BvdmVyQ29udGFpbmVyU3R5bGUpIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChBZGRyZXNzQm9vaywgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHsgbW9kZTogJ3NlbGVjdG9yJyB9KSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdmFyIHNlbGVjdGVkSXRlbSA9IF9zdGF0ZS5zZWxlY3RlZEl0ZW07XG4gICAgICAgIHZhciByb290ID0gX3N0YXRlLnJvb3Q7XG4gICAgICAgIHZhciByaWdodFBhbmVJdGVtID0gX3N0YXRlLnJpZ2h0UGFuZUl0ZW07XG4gICAgICAgIHZhciBjcmVhdGVEaWFsb2dJdGVtID0gX3N0YXRlLmNyZWF0ZURpYWxvZ0l0ZW07XG5cbiAgICAgICAgdmFyIGxlZnRDb2x1bW5TdHlsZSA9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogX21hdGVyaWFsVWlTdHlsZXMuY29sb3JzLmdyZXkxMDAsXG4gICAgICAgICAgICB3aWR0aDogMjU2LFxuICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICBvdmVyZmxvd1g6ICdoaWRkZW4nXG4gICAgICAgIH07XG4gICAgICAgIHZhciBjZW50ZXJDb21wb25lbnQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICByaWdodFBhbmVsID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGVmdFBhbmVsID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgdG9wQWN0aW9uc1BhbmVsID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgb25FZGl0TGFiZWwgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbS5pZCA9PT0gJ3NlYXJjaCcpIHtcblxuICAgICAgICAgICAgY2VudGVyQ29tcG9uZW50ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX1NlYXJjaFBhbmVsMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgaXRlbTogc2VsZWN0ZWRJdGVtLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRNZXNzYWdlKDU4MywgJycpLFxuICAgICAgICAgICAgICAgIHNlYXJjaExhYmVsOiBnZXRNZXNzYWdlKDU5NSwgJycpLFxuICAgICAgICAgICAgICAgIG9uSXRlbUNsaWNrZWQ6IHRoaXMub25Vc2VyTGlzdEl0ZW1DbGlja2VkLFxuICAgICAgICAgICAgICAgIG9uRm9sZGVyQ2xpY2tlZDogdGhpcy5vbkZvbGRlckNsaWNrZWQsXG4gICAgICAgICAgICAgICAgbW9kZTogbW9kZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRJdGVtLnR5cGUgPT09ICdyZW1vdGUnKSB7XG5cbiAgICAgICAgICAgIGNlbnRlckNvbXBvbmVudCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9TZWFyY2hQYW5lbDJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgIGl0ZW06IHNlbGVjdGVkSXRlbSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHsgdHJ1c3RlZF9zZXJ2ZXJfaWQ6IHNlbGVjdGVkSXRlbS5pZCB9LFxuICAgICAgICAgICAgICAgIHNlYXJjaExhYmVsOiBnZXRNZXNzYWdlKDU5NSwgJycpLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRNZXNzYWdlKDU5NiwgJycpLnJlcGxhY2UoJyVzJywgc2VsZWN0ZWRJdGVtLmxhYmVsKSxcbiAgICAgICAgICAgICAgICBvbkl0ZW1DbGlja2VkOiB0aGlzLm9uVXNlckxpc3RJdGVtQ2xpY2tlZCxcbiAgICAgICAgICAgICAgICBvbkZvbGRlckNsaWNrZWQ6IHRoaXMub25Gb2xkZXJDbGlja2VkLFxuICAgICAgICAgICAgICAgIG1vZGU6IG1vZGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICB2YXIgZW1wdHlTdGF0ZVByaW1hcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB2YXIgZW1wdHlTdGF0ZVNlY29uZGFyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciBvdGhlclByb3BzID0ge307XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtLmlkID09PSAndGVhbXMnKSB7XG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVByaW1hcnkgPSBnZXRNZXNzYWdlKDU3MSwgJycpO1xuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGVTZWNvbmRhcnkgPSBnZXRNZXNzYWdlKDU3MiwgJycpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZEl0ZW0uaWQgPT09ICdleHQnKSB7XG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVByaW1hcnkgPSBnZXRNZXNzYWdlKDU4NSwgJycpO1xuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGVTZWNvbmRhcnkgPSBnZXRNZXNzYWdlKDU4NiwgJycpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZEl0ZW0uSWRtVXNlciAmJiBzZWxlY3RlZEl0ZW0uSWRtVXNlci5Jc0dyb3VwIHx8IHNlbGVjdGVkSXRlbS5pZCA9PT0gJ1BZRElPX0dSUF8vJykge1xuICAgICAgICAgICAgICAgIG90aGVyUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dTdWJoZWFkZXJzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBwYWdpbmF0b3JUeXBlOiAhKHNlbGVjdGVkSXRlbS5jdXJyZW50UGFyYW1zICYmIHNlbGVjdGVkSXRlbS5jdXJyZW50UGFyYW1zLmhhc19zZWFyY2gpICYmICdhbHBoYScsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2luYXRvckNhbGxiYWNrOiB0aGlzLnJlbG9hZEN1cnJlbnRBdFBhZ2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlU2VhcmNoOiAhdGhpcy5wcm9wcy5kaXNhYmxlU2VhcmNoLFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hMYWJlbDogZ2V0TWVzc2FnZSg1OTUsICcnKSxcbiAgICAgICAgICAgICAgICAgICAgb25TZWFyY2g6IHRoaXMucmVsb2FkQ3VycmVudFdpdGhTZWFyY2guYmluZCh0aGlzKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgobW9kZSA9PT0gJ2Jvb2snIHx8IGJvb2tDb2x1bW4pICYmIHNlbGVjdGVkSXRlbS5JZG1Sb2xlICYmIHNlbGVjdGVkSXRlbS5JZG1Sb2xlLklzVGVhbSkge1xuICAgICAgICAgICAgICAgIHRvcEFjdGlvbnNQYW5lbCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9hdmF0YXJBY3Rpb25zUGFuZWwyWydkZWZhdWx0J10sIF9leHRlbmRzKHt9LCB0aGlzLnByb3BzLCB7XG4gICAgICAgICAgICAgICAgICAgIHRlYW06IHNlbGVjdGVkSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZWxvYWRBY3Rpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5yZWxvYWRDdXJyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvbkRlbGV0ZUFjdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpcm0oX3RoaXM1LnByb3BzLmdldE1lc3NhZ2UoMjc4KSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyZW50ID0gc2VsZWN0ZWRJdGVtLl9wYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7IHNlbGVjdGVkSXRlbTogcGFyZW50IH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5vbkRlbGV0ZUFjdGlvbihwYXJlbnQsIFtzZWxlY3RlZEl0ZW1dLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLCBib3JkZXJUb3A6IDAsIGJvcmRlckJvdHRvbTogMCB9XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIG9uRWRpdExhYmVsID0gZnVuY3Rpb24gKGl0ZW0sIG5ld0xhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLnVwZGF0ZVRlYW1MYWJlbChpdGVtLklkbVJvbGUuVXVpZCwgbmV3TGFiZWwsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnQgPSBzZWxlY3RlZEl0ZW0uX3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7IHNlbGVjdGVkSXRlbTogcGFyZW50IH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczUucmVsb2FkQ3VycmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjZW50ZXJDb21wb25lbnQgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfVXNlcnNMaXN0MlsnZGVmYXVsdCddLCBfZXh0ZW5kcyh7XG4gICAgICAgICAgICAgICAgaXRlbTogc2VsZWN0ZWRJdGVtLFxuICAgICAgICAgICAgICAgIG9uSXRlbUNsaWNrZWQ6IHRoaXMub25Vc2VyTGlzdEl0ZW1DbGlja2VkLFxuICAgICAgICAgICAgICAgIG9uRm9sZGVyQ2xpY2tlZDogdGhpcy5vbkZvbGRlckNsaWNrZWQsXG4gICAgICAgICAgICAgICAgb25DcmVhdGVBY3Rpb246IHRoaXMub25DcmVhdGVBY3Rpb24sXG4gICAgICAgICAgICAgICAgb25EZWxldGVBY3Rpb246IHRoaXMub25EZWxldGVBY3Rpb24sXG4gICAgICAgICAgICAgICAgcmVsb2FkQWN0aW9uOiB0aGlzLnJlbG9hZEN1cnJlbnROb2RlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgb25FZGl0TGFiZWw6IG9uRWRpdExhYmVsLFxuICAgICAgICAgICAgICAgIGxvYWRpbmc6IHRoaXMuc3RhdGUubG9hZGluZyxcbiAgICAgICAgICAgICAgICBtb2RlOiBtb2RlLFxuICAgICAgICAgICAgICAgIGJvb2tDb2x1bW46IGJvb2tDb2x1bW4sXG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVByaW1hcnlUZXh0OiBlbXB0eVN0YXRlUHJpbWFyeSxcbiAgICAgICAgICAgICAgICBlbXB0eVN0YXRlU2Vjb25kYXJ5VGV4dDogZW1wdHlTdGF0ZVNlY29uZGFyeSxcbiAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiB0aGlzLnN0YXRlLnJpZ2h0UGFuZUl0ZW0gPyBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7IHJpZ2h0UGFuZUl0ZW06IG51bGwgfSk7XG4gICAgICAgICAgICAgICAgfSA6IG51bGwsXG4gICAgICAgICAgICAgICAgYWN0aW9uc1BhbmVsOiB0b3BBY3Rpb25zUGFuZWwsXG4gICAgICAgICAgICAgICAgYWN0aW9uc0ZvckNlbGw6IHRoaXMucHJvcHMuYWN0aW9uc0ZvckNlbGxcbiAgICAgICAgICAgIH0sIG90aGVyUHJvcHMpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmlnaHRQYW5lbFN0eWxlID0gX2V4dGVuZHMoe30sIGxlZnRDb2x1bW5TdHlsZSwge1xuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICdyaWdodCcsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICByaWdodDogOCxcbiAgICAgICAgICAgIGJvdHRvbTogOCxcbiAgICAgICAgICAgIHRvcDogMTIwLFxuICAgICAgICAgICAgekluZGV4OiAyXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXJpZ2h0UGFuZUl0ZW0pIHtcbiAgICAgICAgICAgIHJpZ2h0UGFuZWxTdHlsZSA9IF9leHRlbmRzKHt9LCByaWdodFBhbmVsU3R5bGUsIHtcbiAgICAgICAgICAgICAgICAvL3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMjU2cHgpJyxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwKSdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vICAgICAgICAgICAgICAgIHdpZHRoOiAwXG4gICAgICAgIHJpZ2h0UGFuZWwgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfUmlnaHRQYW5lbENhcmQyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvLFxuICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBfdGhpczUuc2V0U3RhdGUoeyByaWdodFBhbmVJdGVtOiBudWxsIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0eWxlOiByaWdodFBhbmVsU3R5bGUsXG4gICAgICAgICAgICBvbkNyZWF0ZUFjdGlvbjogdGhpcy5vbkNyZWF0ZUFjdGlvbixcbiAgICAgICAgICAgIG9uRGVsZXRlQWN0aW9uOiB0aGlzLm9uRGVsZXRlQWN0aW9uLFxuICAgICAgICAgICAgb25VcGRhdGVBY3Rpb246IHRoaXMub25DYXJkVXBkYXRlQWN0aW9uLFxuICAgICAgICAgICAgaXRlbTogcmlnaHRQYW5lSXRlbSB9KTtcbiAgICAgICAgaWYgKG1vZGUgPT09ICdib29rJykge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmVzdGVkUm9vdHMgPSBbXTtcbiAgICAgICAgICAgICAgICByb290LmNvbGxlY3Rpb25zLm1hcCgoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmVzdGVkUm9vdHMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfTmVzdGVkTGlzdEl0ZW0yWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZEl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWRMZXZlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFRhcDogdGhpcy5vbkZvbGRlckNsaWNrZWRcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICBuZXN0ZWRSb290cy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIHsga2V5OiBlLmlkICsgJy1kaXZpZGVyJyB9KSk7XG4gICAgICAgICAgICAgICAgfSkuYmluZChfdGhpczUpKTtcbiAgICAgICAgICAgICAgICBuZXN0ZWRSb290cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBsZWZ0UGFuZWwgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgTWF0ZXJpYWxVSS5QYXBlcixcbiAgICAgICAgICAgICAgICAgICAgeyB6RGVwdGg6IDEsIHN0eWxlOiBfZXh0ZW5kcyh7fSwgbGVmdENvbHVtblN0eWxlLCB7IHpJbmRleDogMiB9KSB9LFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIE1hdGVyaWFsVUkuTGlzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWRSb290c1xuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGlhbG9nVGl0bGUgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBkaWFsb2dDb250ZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY3JlYXRlRGlhbG9nSXRlbSkge1xuICAgICAgICAgICAgaWYgKGNyZWF0ZURpYWxvZ0l0ZW0uYWN0aW9ucy50eXBlID09PSAndXNlcnMnKSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nVGl0bGUgPSBnZXRNZXNzYWdlKDQ4NCwgJycpO1xuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbnRlbnQgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgaGVpZ2h0OiA1MDAgfSB9LFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfVXNlckNyZWF0aW9uRm9ybTJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgekRlcHRoOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiA1MDAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1VzZXJOYW1lOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25Vc2VyQ3JlYXRlZDogdGhpcy5jbG9zZUNyZWF0ZURpYWxvZ0FuZFJlbG9hZC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25DYW5jZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczUuc2V0U3RhdGUoeyBjcmVhdGVEaWFsb2dJdGVtOiBudWxsIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3JlYXRlRGlhbG9nSXRlbS5hY3Rpb25zLnR5cGUgPT09ICd0ZWFtcycpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSA9IGdldE1lc3NhZ2UoNTY5LCAnJyk7XG4gICAgICAgICAgICAgICAgZGlhbG9nQ29udGVudCA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9UZWFtQ3JlYXRpb25Gb3JtMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgIG9uVGVhbUNyZWF0ZWQ6IHRoaXMuY2xvc2VDcmVhdGVEaWFsb2dBbmRSZWxvYWQsXG4gICAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczUuc2V0U3RhdGUoeyBjcmVhdGVEaWFsb2dJdGVtOiBudWxsIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNyZWF0ZURpYWxvZ0l0ZW0uYWN0aW9ucy50eXBlID09PSAndGVhbScpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0VXNlciA9IGZ1bmN0aW9uIHNlbGVjdFVzZXIoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBfcHlkaW9IdHRwQXBpMlsnZGVmYXVsdCddLmdldFJlc3RDbGllbnQoKS5nZXRJZG1BcGkoKS5hZGRVc2VyVG9UZWFtKGNyZWF0ZURpYWxvZ0l0ZW0uSWRtUm9sZS5VdWlkLCBpdGVtLklkbVVzZXIuTG9naW4pLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM1LnJlbG9hZEN1cnJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZGlhbG9nVGl0bGUgPSBudWxsO1xuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbnRlbnQgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChBZGRyZXNzQm9vaywge1xuICAgICAgICAgICAgICAgICAgICBweWRpbzogdGhpcy5wcm9wcy5weWRpbyxcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogJ3NlbGVjdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgdXNlcnNPbmx5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlU2VhcmNoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBvbkl0ZW1TZWxlY3RlZDogc2VsZWN0VXNlclxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN0eWxlID0gdGhpcy5wcm9wcy5zdHlsZSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBfZXh0ZW5kcyh7IGRpc3BsYXk6ICdmbGV4JywgaGVpZ2h0OiBtb2RlID09PSAnc2VsZWN0b3InID8gNDIwIDogNDUwIH0sIHN0eWxlKSB9LFxuICAgICAgICAgICAgbGVmdFBhbmVsLFxuICAgICAgICAgICAgY2VudGVyQ29tcG9uZW50LFxuICAgICAgICAgICAgcmlnaHRQYW5lbCxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIE1hdGVyaWFsVUkuRGlhbG9nLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudFN0eWxlOiB7IHdpZHRoOiAzODAsIG1pbldpZHRoOiAzODAsIG1heFdpZHRoOiAzODAsIHBhZGRpbmc6IDAgfSxcbiAgICAgICAgICAgICAgICAgICAgYm9keVN0eWxlOiB7IHBhZGRpbmc6IDAgfSxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHBhZGRpbmc6IDIwIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgb3BlbjogY3JlYXRlRGlhbG9nSXRlbSA/IHRydWUgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7IGNyZWF0ZURpYWxvZ0l0ZW06IG51bGwgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbnRlbnRcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbn0pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBZGRyZXNzQm9vayA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKEFkZHJlc3NCb29rKTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEFkZHJlc3NCb29rID0gX21hdGVyaWFsVWlTdHlsZXMubXVpVGhlbWVhYmxlKCkoQWRkcmVzc0Jvb2spO1xuZXhwb3J0c1snZGVmYXVsdCddID0gQWRkcmVzc0Jvb2s7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9tYXRlcmlhbFVpU3R5bGVzID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWkvc3R5bGVzJyk7XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxuLyoqXG4gKiBBbHBoYWJldCBhbmQgcGFnZXMgZ2VuZXJhdG9yIHRvIGdpdmUgYSBmaXJzdC1sZXR0ZXItYmFzZWQgcGFnaW5hdGlvblxuICovXG5cbnZhciBfUHlkaW8kcmVxdWlyZUxpYiA9IF9weWRpbzJbJ2RlZmF1bHQnXS5yZXF1aXJlTGliKCdib290Jyk7XG5cbnZhciBQeWRpb0NvbnRleHRDb25zdW1lciA9IF9QeWRpbyRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xuXG52YXIgQWxwaGFQYWdpbmF0b3IgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoQWxwaGFQYWdpbmF0b3IsIF9Db21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gQWxwaGFQYWdpbmF0b3IoKSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBbHBoYVBhZ2luYXRvcik7XG5cbiAgICAgICAgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIEFscGhhUGFnaW5hdG9yLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG5cbiAgICAgICAgdmFyIGxldHRlcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Jy5zcGxpdCgnJyk7XG4gICAgICAgIGxldHRlcnMgPSBbLTFdLmNvbmNhdChsZXR0ZXJzKTtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBpdGVtID0gX3Byb3BzLml0ZW07XG4gICAgICAgIHZhciBwYWdpbmF0b3JDYWxsYmFjayA9IF9wcm9wcy5wYWdpbmF0b3JDYWxsYmFjaztcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzLnN0eWxlO1xuICAgICAgICB2YXIgZ2V0TWVzc2FnZSA9IF9wcm9wcy5nZXRNZXNzYWdlO1xuXG4gICAgICAgIHZhciBwYWdpbmF0b3IgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChpdGVtLnBhZ2luYXRpb24pIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9pdGVtJHBhZ2luYXRpb24gPSBpdGVtLnBhZ2luYXRpb247XG4gICAgICAgICAgICAgICAgdmFyIHN0YXJ0ID0gX2l0ZW0kcGFnaW5hdGlvbi5zdGFydDtcbiAgICAgICAgICAgICAgICB2YXIgZW5kID0gX2l0ZW0kcGFnaW5hdGlvbi5lbmQ7XG4gICAgICAgICAgICAgICAgdmFyIG1heCA9IF9pdGVtJHBhZ2luYXRpb24ubWF4O1xuICAgICAgICAgICAgICAgIHZhciBpbnRlcnZhbCA9IF9pdGVtJHBhZ2luYXRpb24uaW50ZXJ2YWw7XG5cbiAgICAgICAgICAgICAgICB2YXIgdG90YWxfcGFnZXMgPSBNYXRoLmNlaWwobWF4IC8gaW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gTWF0aC5jZWlsKHN0YXJ0IC8gaW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgIHZhciBwYWdlcyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG90YWxfcGFnZXM7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBwYWdlcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIH1wYWdpbmF0b3IgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBfbWF0ZXJpYWxVaS5TZWxlY3RGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgeyBmbG9hdGluZ0xhYmVsVGV4dDogZ2V0TWVzc2FnZSgzMzEpLCBzdHlsZTogeyB3aWR0aDogNjAgfSwgZnVsbFdpZHRoOiB0cnVlLCB2YWx1ZTogY3VycmVudCwgb25DaGFuZ2U6IGZ1bmN0aW9uIChlLCBpLCB2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnaW5hdG9yQ2FsbGJhY2sodiAqIGludGVydmFsICsgJy0nICsgKHYgKyAxKSAqIGludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgcGFnZXMubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5NZW51SXRlbSwgeyB2YWx1ZTogcCwga2V5OiBwLCBwcmltYXJ5VGV4dDogcCArIDEgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY3VycmVudFBhZ2UgPSBpdGVtLmN1cnJlbnRQYXJhbXMgJiYgaXRlbS5jdXJyZW50UGFyYW1zLmFscGhhX3BhZ2VzICYmIGl0ZW0uY3VycmVudFBhcmFtcy52YWx1ZSB8fCAtMTtcblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBzdHlsZTogX2V4dGVuZHMoe30sIHN0eWxlLCB7IGRpc3BsYXk6ICdmbGV4JywgcGFkZGluZ1JpZ2h0OiA4LCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9KSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDEgfSB9LFxuICAgICAgICAgICAgICAgIGdldE1lc3NhZ2UoMjQ5LCAnJylcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBwYWdpbmF0b3IsXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlNlbGVjdEZpZWxkLFxuICAgICAgICAgICAgICAgIHsgZmxvYXRpbmdMYWJlbFRleHQ6IGdldE1lc3NhZ2UoNjI1KSwgc3R5bGU6IHsgd2lkdGg6IDYwLCBtYXJnaW5MZWZ0OiAyMCB9LCBmdWxsV2lkdGg6IHRydWUsIHZhbHVlOiBjdXJyZW50UGFnZSwgb25DaGFuZ2U6IGZ1bmN0aW9uIChlLCBpLCB2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmF0b3JDYWxsYmFjayh2KTtcbiAgICAgICAgICAgICAgICAgICAgfSB9LFxuICAgICAgICAgICAgICAgIGxldHRlcnMubWFwKGZ1bmN0aW9uIChsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLk1lbnVJdGVtLCB7IHZhbHVlOiBsLCBrZXk6IGwsIHByaW1hcnlUZXh0OiBsID09PSAtMSA/IGdldE1lc3NhZ2UoNTk3LCAnJykgOiBsIH0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBBbHBoYVBhZ2luYXRvcjtcbn0pKF9yZWFjdC5Db21wb25lbnQpO1xuXG5BbHBoYVBhZ2luYXRvci5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogQ3VycmVudGx5IHNlbGVjdGVkIEl0ZW1cbiAgICAgKi9cbiAgICBpdGVtOiBfcmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBXaGVuIGEgbGV0dGVyIGlzIGNsaWNrZWQsIGZ1bmN0aW9uKGxldHRlcilcbiAgICAgKi9cbiAgICBwYWdpbmF0b3JDYWxsYmFjazogX3JlYWN0LlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgLyoqXG4gICAgICogTWFpbiBpbnN0YW5jZSBvZiBweWRpb1xuICAgICAqL1xuICAgIHB5ZGlvOiBfcmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoX3B5ZGlvMlsnZGVmYXVsdCddKSxcbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IG1vZGUsIGVpdGhlciBsYXJnZSAoYm9vaykgb3Igc21hbGwgcGlja2VyICgnc2VsZWN0b3InLCAncG9wb3ZlcicpLlxuICAgICAqL1xuICAgIG1vZGU6IF9yZWFjdC5Qcm9wVHlwZXMub25lT2YoWydib29rJywgJ3NlbGVjdG9yJywgJ3BvcG92ZXInXSkuaXNSZXF1aXJlZFxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQWxwaGFQYWdpbmF0b3IgPSBQeWRpb0NvbnRleHRDb25zdW1lcihBbHBoYVBhZ2luYXRvcik7XG5leHBvcnRzWydkZWZhdWx0J10gPSBBbHBoYVBhZ2luYXRvciA9IF9tYXRlcmlhbFVpU3R5bGVzLm11aVRoZW1lYWJsZSgpKEFscGhhUGFnaW5hdG9yKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQWxwaGFQYWdpbmF0b3I7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIF9weWRpb0h0dHBBcGkgPSByZXF1aXJlKCdweWRpby9odHRwL2FwaScpO1xuXG52YXIgX3B5ZGlvSHR0cEFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb0h0dHBBcGkpO1xuXG52YXIgX3B5ZGlvVXRpbExhbmcgPSByZXF1aXJlKCdweWRpby91dGlsL2xhbmcnKTtcblxudmFyIF9weWRpb1V0aWxMYW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvVXRpbExhbmcpO1xuXG52YXIgSWRtQXBpID0gX3B5ZGlvSHR0cEFwaTJbJ2RlZmF1bHQnXS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCk7XG5cbnZhciBMb2FkZXJzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBMb2FkZXJzKCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9hZGVycyk7XG4gICAgfVxuXG4gICAgTG9hZGVycy5jaGlsZHJlbkFzUHJvbWlzZSA9IGZ1bmN0aW9uIGNoaWxkcmVuQXNQcm9taXNlKGl0ZW0pIHtcbiAgICAgICAgdmFyIGxlYWYgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGFyZ3VtZW50c1sxXTtcbiAgICAgICAgdmFyIGNoaWxkcmVuTG9hZGVyID0gaXRlbS5jaGlsZHJlbkxvYWRlcjtcbiAgICAgICAgdmFyIGl0ZW1zTG9hZGVyID0gaXRlbS5pdGVtc0xvYWRlcjtcbiAgICAgICAgdmFyIGxlYWZMb2FkZWQgPSBpdGVtLmxlYWZMb2FkZWQ7XG4gICAgICAgIHZhciBjb2xsZWN0aW9uc0xvYWRlZCA9IGl0ZW0uY29sbGVjdGlvbnNMb2FkZWQ7XG4gICAgICAgIHZhciBsZWFmcyA9IGl0ZW0ubGVhZnM7XG4gICAgICAgIHZhciBjb2xsZWN0aW9ucyA9IGl0ZW0uY29sbGVjdGlvbnM7XG5cbiAgICAgICAgdmFyIGxvYWRlciA9IGxlYWYgPyBpdGVtc0xvYWRlciA6IGNoaWxkcmVuTG9hZGVyO1xuICAgICAgICB2YXIgbG9hZGVkID0gbGVhZiA/IGxlYWZMb2FkZWQgOiBjb2xsZWN0aW9uc0xvYWRlZDtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIGlmICghbG9hZGVkICYmIGxvYWRlcikge1xuICAgICAgICAgICAgICAgIGxvYWRlcihpdGVtLCBmdW5jdGlvbiAobmV3Q2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxlYWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ubGVhZnMgPSBuZXdDaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ubGVhZkxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbGxlY3Rpb25zID0gbmV3Q2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbGxlY3Rpb25zTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKG5ld0NoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcyA9IChsZWFmID8gbGVhZnMgOiBjb2xsZWN0aW9ucykgfHwgW107XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgTG9hZGVycy5jb21wdXRlUGFnaW5hdGlvbiA9IGZ1bmN0aW9uIGNvbXB1dGVQYWdpbmF0aW9uKHJlc3VsdCkge1xuICAgICAgICB2YXIgY291bnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZXN1bHQuVXNlcnMpIHtcbiAgICAgICAgICAgIGNvdW50ID0gcmVzdWx0LlVzZXJzLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuR3JvdXBzKSB7XG4gICAgICAgICAgICBjb3VudCA9IHJlc3VsdC5Hcm91cHMubGVuZ3RoO1xuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5UZWFtcykge1xuICAgICAgICAgICAgY291bnQgPSByZXN1bHQuVGVhbXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQuVG90YWwgPiBjb3VudCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGFydDogcmVzdWx0Lk9mZnNldCxcbiAgICAgICAgICAgICAgICBlbmQ6IHJlc3VsdC5PZmZzZXQgKyByZXN1bHQuTGltaXQsXG4gICAgICAgICAgICAgICAgbWF4OiByZXN1bHQuVG90YWwsXG4gICAgICAgICAgICAgICAgaW50ZXJ2YWw6IHJlc3VsdC5MaW1pdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIExvYWRlcnMubG9hZFRlYW1zID0gZnVuY3Rpb24gbG9hZFRlYW1zKGVudHJ5LCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgb2Zmc2V0ID0gMCxcbiAgICAgICAgICAgIGxpbWl0ID0gNTA7XG4gICAgICAgIGlmIChlbnRyeS5yYW5nZSkge1xuICAgICAgICAgICAgdmFyIF9lbnRyeSRyYW5nZSRzcGxpdCA9IGVudHJ5LnJhbmdlLnNwbGl0KCctJyk7XG5cbiAgICAgICAgICAgIHZhciBzdGFydCA9IF9lbnRyeSRyYW5nZSRzcGxpdFswXTtcbiAgICAgICAgICAgIHZhciBlbmQgPSBfZW50cnkkcmFuZ2Ukc3BsaXRbMV07XG5cbiAgICAgICAgICAgIG9mZnNldCA9IHBhcnNlSW50KHN0YXJ0KTtcbiAgICAgICAgICAgIGVuZCA9IHBhcnNlSW50KGVuZCk7XG4gICAgICAgICAgICBsaW1pdCA9IGVuZCAtIG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBJZG1BcGkubGlzdFRlYW1zKCcnLCBvZmZzZXQsIGxpbWl0KS50aGVuKGZ1bmN0aW9uIChjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICBlbnRyeS5wYWdpbmF0aW9uID0gTG9hZGVycy5jb21wdXRlUGFnaW5hdGlvbihjb2xsZWN0aW9uKTtcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IGNvbGxlY3Rpb24uVGVhbXMubWFwKGZ1bmN0aW9uICh0ZWFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgX3BhcmVudDogZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGlkOiB0ZWFtLlV1aWQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0ZWFtLkxhYmVsLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGVhbScsXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdtZGkgbWRpLWFjY291bnQtbXVsdGlwbGUtb3V0bGluZScsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zTG9hZGVyOiBMb2FkZXJzLmxvYWRUZWFtVXNlcnMsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZWFtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZTogJzU3NCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBfbm90U2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgSWRtUm9sZTogdGVhbVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGl0ZW1zKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIExvYWRlcnMubG9hZEdyb3VwcyA9IGZ1bmN0aW9uIGxvYWRHcm91cHMoZW50cnksIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBwYXRoID0gJy8nLFxuICAgICAgICAgICAgZmlsdGVyID0gJyc7XG4gICAgICAgIGlmIChlbnRyeS5JZG1Vc2VyKSB7XG4gICAgICAgICAgICBwYXRoID0gX3B5ZGlvVXRpbExhbmcyWydkZWZhdWx0J10udHJpbVJpZ2h0KGVudHJ5LklkbVVzZXIuR3JvdXBQYXRoLCAnLycpICsgJy8nICsgZW50cnkuSWRtVXNlci5Hcm91cExhYmVsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbnRyeS5jdXJyZW50UGFyYW1zICYmIGVudHJ5LmN1cnJlbnRQYXJhbXMuaGFzX3NlYXJjaCkge1xuICAgICAgICAgICAgZmlsdGVyID0gZW50cnkuY3VycmVudFBhcmFtcy52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIElkbUFwaS5saXN0R3JvdXBzKHBhdGgsIGZpbHRlciwgZmFsc2UsIDAsIDEwMDApLnRoZW4oZnVuY3Rpb24gKGdyb3Vwcykge1xuICAgICAgICAgICAgdmFyIGl0ZW1zID0gZ3JvdXBzLkdyb3Vwcy5tYXAoZnVuY3Rpb24gKGlkbVVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBfcGFyZW50OiBlbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGlkbVVzZXIuVXVpZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGlkbVVzZXIuR3JvdXBMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ21kaSBtZGktYWNjb3VudC1tdWx0aXBsZScsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuTG9hZGVyOiBlbnRyeS5jaGlsZHJlbkxvYWRlciA/IExvYWRlcnMubG9hZEdyb3VwcyA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zTG9hZGVyOiBlbnRyeS5pdGVtc0xvYWRlciA/IExvYWRlcnMubG9hZEdyb3VwVXNlcnMgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFyYW1zOiBlbnRyeS5jdXJyZW50UGFyYW1zICYmIGVudHJ5LmN1cnJlbnRQYXJhbXMuYWxwaGFfcGFnZXMgPyBfZXh0ZW5kcyh7fSwgZW50cnkuY3VycmVudFBhcmFtcykgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgSWRtVXNlcjogaWRtVXNlclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGl0ZW1zKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIExvYWRlcnMubG9hZEV4dGVybmFsVXNlcnMgPSBmdW5jdGlvbiBsb2FkRXh0ZXJuYWxVc2VycyhlbnRyeSwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGZpbHRlciA9ICcnLFxuICAgICAgICAgICAgb2Zmc2V0ID0gMCxcbiAgICAgICAgICAgIGxpbWl0ID0gNTA7XG4gICAgICAgIGlmIChlbnRyeS5jdXJyZW50UGFyYW1zICYmIGVudHJ5LmN1cnJlbnRQYXJhbXMuYWxwaGFfcGFnZXMpIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGVudHJ5LmN1cnJlbnRQYXJhbXMudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVudHJ5LnJhbmdlKSB7XG4gICAgICAgICAgICB2YXIgX2VudHJ5JHJhbmdlJHNwbGl0MiA9IGVudHJ5LnJhbmdlLnNwbGl0KCctJyk7XG5cbiAgICAgICAgICAgIHZhciBzdGFydCA9IF9lbnRyeSRyYW5nZSRzcGxpdDJbMF07XG4gICAgICAgICAgICB2YXIgZW5kID0gX2VudHJ5JHJhbmdlJHNwbGl0MlsxXTtcblxuICAgICAgICAgICAgb2Zmc2V0ID0gcGFyc2VJbnQoc3RhcnQpO1xuICAgICAgICAgICAgZW5kID0gcGFyc2VJbnQoZW5kKTtcbiAgICAgICAgICAgIGxpbWl0ID0gZW5kIC0gb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBweWRpbyA9IF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0Q2xpZW50KCkuZ2V0UHlkaW9PYmplY3QoKTtcbiAgICAgICAgSWRtQXBpLmxpc3RVc2VycygnLycsIGZpbHRlciwgdHJ1ZSwgb2Zmc2V0LCBsaW1pdCwgJ3NoYXJlZCcpLnRoZW4oZnVuY3Rpb24gKHVzZXJzKSB7XG4gICAgICAgICAgICBlbnRyeS5wYWdpbmF0aW9uID0gTG9hZGVycy5jb21wdXRlUGFnaW5hdGlvbih1c2Vycyk7XG4gICAgICAgICAgICB2YXIgaXRlbXMgPSB1c2Vycy5Vc2Vycy5maWx0ZXIoZnVuY3Rpb24gKGlkbVVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWRtVXNlci5Mb2dpbiAhPT0gcHlkaW8udXNlci5pZDtcbiAgICAgICAgICAgIH0pLm1hcChmdW5jdGlvbiAoaWRtVXNlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIF9wYXJlbnQ6IGVudHJ5LFxuICAgICAgICAgICAgICAgICAgICBpZDogaWRtVXNlci5Mb2dpbixcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGlkbVVzZXIuQXR0cmlidXRlcyAmJiBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJkaXNwbGF5TmFtZVwiXSA/IGlkbVVzZXIuQXR0cmlidXRlc1tcImRpc3BsYXlOYW1lXCJdIDogaWRtVXNlci5Mb2dpbixcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyOiBpZG1Vc2VyLkF0dHJpYnV0ZXMgJiYgaWRtVXNlci5BdHRyaWJ1dGVzW1wiYXZhdGFyXCJdID8gaWRtVXNlci5BdHRyaWJ1dGVzW1wiYXZhdGFyXCJdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAndXNlcicsXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBJZG1Vc2VyOiBpZG1Vc2VyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FsbGJhY2soaXRlbXMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgTG9hZGVycy5sb2FkR3JvdXBVc2VycyA9IGZ1bmN0aW9uIGxvYWRHcm91cFVzZXJzKGVudHJ5LCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgcGF0aCA9ICcvJyxcbiAgICAgICAgICAgIGZpbHRlciA9ICcnLFxuICAgICAgICAgICAgb2Zmc2V0ID0gMCxcbiAgICAgICAgICAgIGxpbWl0ID0gNTA7XG4gICAgICAgIGlmIChlbnRyeS5JZG1Vc2VyKSB7XG4gICAgICAgICAgICBwYXRoID0gX3B5ZGlvVXRpbExhbmcyWydkZWZhdWx0J10udHJpbVJpZ2h0KGVudHJ5LklkbVVzZXIuR3JvdXBQYXRoLCAnLycpICsgJy8nICsgZW50cnkuSWRtVXNlci5Hcm91cExhYmVsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbnRyeS5jdXJyZW50UGFyYW1zICYmIChlbnRyeS5jdXJyZW50UGFyYW1zLmFscGhhX3BhZ2VzIHx8IGVudHJ5LmN1cnJlbnRQYXJhbXMuaGFzX3NlYXJjaCkpIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGVudHJ5LmN1cnJlbnRQYXJhbXMudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVudHJ5LnJhbmdlKSB7XG4gICAgICAgICAgICB2YXIgX2VudHJ5JHJhbmdlJHNwbGl0MyA9IGVudHJ5LnJhbmdlLnNwbGl0KCctJyk7XG5cbiAgICAgICAgICAgIHZhciBzdGFydCA9IF9lbnRyeSRyYW5nZSRzcGxpdDNbMF07XG4gICAgICAgICAgICB2YXIgZW5kID0gX2VudHJ5JHJhbmdlJHNwbGl0M1sxXTtcblxuICAgICAgICAgICAgb2Zmc2V0ID0gcGFyc2VJbnQoc3RhcnQpO1xuICAgICAgICAgICAgZW5kID0gcGFyc2VJbnQoZW5kKTtcbiAgICAgICAgICAgIGxpbWl0ID0gZW5kIC0gb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBweWRpbyA9IF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0Q2xpZW50KCkuZ2V0UHlkaW9PYmplY3QoKTtcbiAgICAgICAgSWRtQXBpLmxpc3RVc2VycyhwYXRoLCBmaWx0ZXIsIGZhbHNlLCBvZmZzZXQsIGxpbWl0LCAnIXNoYXJlZCcpLnRoZW4oZnVuY3Rpb24gKHVzZXJzKSB7XG4gICAgICAgICAgICBlbnRyeS5wYWdpbmF0aW9uID0gTG9hZGVycy5jb21wdXRlUGFnaW5hdGlvbih1c2Vycyk7XG4gICAgICAgICAgICB2YXIgaXRlbXMgPSB1c2Vycy5Vc2Vycy5maWx0ZXIoZnVuY3Rpb24gKGlkbVVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWRtVXNlci5Mb2dpbiAhPT0gcHlkaW8udXNlci5pZCAmJiBpZG1Vc2VyLkxvZ2luICE9PSBcInB5ZGlvLmFub24udXNlclwiO1xuICAgICAgICAgICAgfSkubWFwKGZ1bmN0aW9uIChpZG1Vc2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgX3BhcmVudDogZW50cnksXG4gICAgICAgICAgICAgICAgICAgIGlkOiBpZG1Vc2VyLkxvZ2luLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogaWRtVXNlci5BdHRyaWJ1dGVzICYmIGlkbVVzZXIuQXR0cmlidXRlc1tcImRpc3BsYXlOYW1lXCJdID8gaWRtVXNlci5BdHRyaWJ1dGVzW1wiZGlzcGxheU5hbWVcIl0gOiBpZG1Vc2VyLkxvZ2luLFxuICAgICAgICAgICAgICAgICAgICBhdmF0YXI6IGlkbVVzZXIuQXR0cmlidXRlcyAmJiBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJhdmF0YXJcIl0gPyBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJhdmF0YXJcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd1c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgSWRtVXNlcjogaWRtVXNlclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGl0ZW1zKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIExvYWRlcnMubG9hZFRlYW1Vc2VycyA9IGZ1bmN0aW9uIGxvYWRUZWFtVXNlcnMoZW50cnksIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBvZmZzZXQgPSAwLFxuICAgICAgICAgICAgbGltaXQgPSA1MDtcbiAgICAgICAgaWYgKGVudHJ5LnJhbmdlKSB7XG4gICAgICAgICAgICB2YXIgX2VudHJ5JHJhbmdlJHNwbGl0NCA9IGVudHJ5LnJhbmdlLnNwbGl0KCctJyk7XG5cbiAgICAgICAgICAgIHZhciBzdGFydCA9IF9lbnRyeSRyYW5nZSRzcGxpdDRbMF07XG4gICAgICAgICAgICB2YXIgZW5kID0gX2VudHJ5JHJhbmdlJHNwbGl0NFsxXTtcblxuICAgICAgICAgICAgb2Zmc2V0ID0gcGFyc2VJbnQoc3RhcnQpO1xuICAgICAgICAgICAgZW5kID0gcGFyc2VJbnQoZW5kKTtcbiAgICAgICAgICAgIGxpbWl0ID0gZW5kIC0gb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIElkbUFwaS5saXN0VXNlcnNXaXRoUm9sZShlbnRyeS5JZG1Sb2xlLlV1aWQsIG9mZnNldCwgbGltaXQpLnRoZW4oZnVuY3Rpb24gKHVzZXJzKSB7XG4gICAgICAgICAgICBlbnRyeS5wYWdpbmF0aW9uID0gTG9hZGVycy5jb21wdXRlUGFnaW5hdGlvbih1c2Vycyk7XG4gICAgICAgICAgICB2YXIgaXRlbXMgPSB1c2Vycy5Vc2Vycy5tYXAoZnVuY3Rpb24gKGlkbVVzZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBfcGFyZW50OiBlbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGlkbVVzZXIuTG9naW4sXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBpZG1Vc2VyLkF0dHJpYnV0ZXMgJiYgaWRtVXNlci5BdHRyaWJ1dGVzW1wiZGlzcGxheU5hbWVcIl0gPyBpZG1Vc2VyLkF0dHJpYnV0ZXNbXCJkaXNwbGF5TmFtZVwiXSA6IGlkbVVzZXIuTG9naW4sXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd1c2VyJyxcbiAgICAgICAgICAgICAgICAgICAgSWRtVXNlcjogaWRtVXNlclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGl0ZW1zKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBMb2FkZXJzO1xufSkoKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTG9hZGVycztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxuLyoqXG4gKiBMZWZ0IHBhbmVsIG9mIHRoZSBhZGRyZXNzIGJvb2tcbiAqIERpc3BsYXkgdHJlZXZpZXcgaGllcmFyY2h5IG9mIHVzZXJzLCB0ZWFtcywgZ3JvdXBzLlxuICovXG5cbnZhciBOZXN0ZWRMaXN0SXRlbSA9IChmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhOZXN0ZWRMaXN0SXRlbSwgX0NvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBOZXN0ZWRMaXN0SXRlbSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE5lc3RlZExpc3RJdGVtKTtcblxuICAgICAgICBfQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgdGhpcy5wcm9wcy5vblRvdWNoVGFwXG4gICAgICovXG5cbiAgICBOZXN0ZWRMaXN0SXRlbS5wcm90b3R5cGUub25Ub3VjaFRhcCA9IGZ1bmN0aW9uIG9uVG91Y2hUYXAoKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25Ub3VjaFRhcCh0aGlzLnByb3BzLmVudHJ5KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVjdXJzaXZlbHkgYnVpbGQgb3RoZXIgTmVzdGVkTGlzdEl0ZW1cbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqL1xuXG4gICAgTmVzdGVkTGlzdEl0ZW0ucHJvdG90eXBlLmJ1aWxkTmVzdGVkSXRlbXMgPSBmdW5jdGlvbiBidWlsZE5lc3RlZEl0ZW1zKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEubWFwKChmdW5jdGlvbiAoZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KE5lc3RlZExpc3RJdGVtLCB7XG4gICAgICAgICAgICAgICAgbmVzdGVkTGV2ZWw6IHRoaXMucHJvcHMubmVzdGVkTGV2ZWwgKyAxLFxuICAgICAgICAgICAgICAgIGVudHJ5OiBlbnRyeSxcbiAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiB0aGlzLnByb3BzLm9uVG91Y2hUYXAsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMucHJvcHMuc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgc2hvd0ljb25zOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgfTtcblxuICAgIE5lc3RlZExpc3RJdGVtLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgc2hvd0ljb25zID0gX3Byb3BzLnNob3dJY29ucztcbiAgICAgICAgdmFyIGVudHJ5ID0gX3Byb3BzLmVudHJ5O1xuICAgICAgICB2YXIgc2VsZWN0ZWQgPSBfcHJvcHMuc2VsZWN0ZWQ7XG4gICAgICAgIHZhciBpZCA9IGVudHJ5LmlkO1xuICAgICAgICB2YXIgbGFiZWwgPSBlbnRyeS5sYWJlbDtcbiAgICAgICAgdmFyIGljb24gPSBlbnRyeS5pY29uO1xuXG4gICAgICAgIHZhciBjaGlsZHJlbiA9IGVudHJ5LmNvbGxlY3Rpb25zIHx8IFtdO1xuICAgICAgICB2YXIgbmVzdGVkID0gdGhpcy5idWlsZE5lc3RlZEl0ZW1zKGNoaWxkcmVuKTtcbiAgICAgICAgdmFyIGZvbnRJY29uID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoaWNvbiAmJiBzaG93SWNvbnMpIHtcbiAgICAgICAgICAgIGZvbnRJY29uID0gUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5Gb250SWNvbiwgeyBjbGFzc05hbWU6IGljb24gfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTGlzdEl0ZW0sIHtcbiAgICAgICAgICAgIG5lc3RlZExldmVsOiB0aGlzLnByb3BzLm5lc3RlZExldmVsLFxuICAgICAgICAgICAga2V5OiBpZCxcbiAgICAgICAgICAgIHByaW1hcnlUZXh0OiBsYWJlbCxcbiAgICAgICAgICAgIG9uVG91Y2hUYXA6IHRoaXMub25Ub3VjaFRhcC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgbmVzdGVkSXRlbXM6IG5lc3RlZCxcbiAgICAgICAgICAgIGluaXRpYWxseU9wZW46IHRydWUsXG4gICAgICAgICAgICBsZWZ0SWNvbjogZm9udEljb24sXG4gICAgICAgICAgICBpbm5lckRpdlN0eWxlOiB7IGZvbnRXZWlnaHQ6IHNlbGVjdGVkID09PSBlbnRyeS5pZCA/IDUwMCA6IDQwMCB9LFxuICAgICAgICAgICAgc3R5bGU6IHNlbGVjdGVkID09PSBlbnRyeS5pZCA/IHsgYmFja2dyb3VuZENvbG9yOiBcIiNlZmVmZWZcIiB9IDoge31cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBOZXN0ZWRMaXN0SXRlbTtcbn0pKF9yZWFjdC5Db21wb25lbnQpO1xuXG5OZXN0ZWRMaXN0SXRlbS5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgZGVwdGggbGV2ZWxcbiAgICAgKi9cbiAgICBuZXN0ZWRMZXZlbDogX3JlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgLyoqXG4gICAgICogQ3VycmVudGx5IHNlbGVjdGVkIG5vZGUgaWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZDogX3JlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdHJpZ2dlcmVkIHdoZW4gYW4gZW50cnkgaXMgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBvblRvdWNoVGFwOiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE5lc3RlZExpc3RJdGVtO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9UZWFtQ2FyZCA9IHJlcXVpcmUoJy4vVGVhbUNhcmQnKTtcblxudmFyIF9UZWFtQ2FyZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9UZWFtQ2FyZCk7XG5cbnZhciBfVXNlckNhcmQgPSByZXF1aXJlKCcuL1VzZXJDYXJkJyk7XG5cbnZhciBfVXNlckNhcmQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXNlckNhcmQpO1xuXG52YXIgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgUGFwZXIgPSBfcmVxdWlyZS5QYXBlcjtcbnZhciBJY29uQnV0dG9uID0gX3JlcXVpcmUuSWNvbkJ1dHRvbjtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIFVzZXJDYXJkIG9yIFRlYW1DYXJkXG4gKi9cblxudmFyIFJpZ2h0UGFuZWxDYXJkID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhSaWdodFBhbmVsQ2FyZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gUmlnaHRQYW5lbENhcmQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJpZ2h0UGFuZWxDYXJkKTtcblxuICAgIF9SZWFjdCRDb21wb25lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIFJpZ2h0UGFuZWxDYXJkLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG5cbiAgICB2YXIgY29udGVudCA9IHVuZGVmaW5lZDtcbiAgICB2YXIgaXRlbSA9IHRoaXMucHJvcHMuaXRlbSB8fCB7fTtcbiAgICBpZiAoaXRlbS50eXBlID09PSAndXNlcicpIHtcbiAgICAgIGNvbnRlbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KF9Vc2VyQ2FyZDJbJ2RlZmF1bHQnXSwgdGhpcy5wcm9wcyk7XG4gICAgfSBlbHNlIGlmIChpdGVtLklkbVJvbGUgJiYgaXRlbS5JZG1Sb2xlLklzVGVhbSkge1xuICAgICAgY29udGVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoX1RlYW1DYXJkMlsnZGVmYXVsdCddLCB0aGlzLnByb3BzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgIFBhcGVyLFxuICAgICAgeyB6RGVwdGg6IDIsIHN0eWxlOiBfZXh0ZW5kcyh7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH0sIHRoaXMucHJvcHMuc3R5bGUpIH0sXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEljb25CdXR0b24sIHsgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLWNsb3NlXCIsIHN0eWxlOiB7IHBvc2l0aW9uOiAnYWJzb2x1dGUnLCB0b3A6IDAsIHJpZ2h0OiAwIH0sIGljb25TdHlsZTogeyBjb2xvcjogJyNlMGUwZTAnIH0sIG9uVG91Y2hUYXA6IHRoaXMucHJvcHMub25SZXF1ZXN0Q2xvc2UgfSksXG4gICAgICBjb250ZW50XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUmlnaHRQYW5lbENhcmQ7XG59KShSZWFjdC5Db21wb25lbnQpO1xuXG5SaWdodFBhbmVsQ2FyZC5wcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiBQeWRpbyBpbnN0YW5jZVxuICAgKi9cbiAgcHlkaW86IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKFB5ZGlvKSxcbiAgLyoqXG4gICAqIFNlbGVjdGVkIGl0ZW1cbiAgICovXG4gIGl0ZW06IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRvIHJvb3QgY29udGFpbmVyXG4gICAqL1xuICBzdHlsZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqXG4gICAqIEZvcndhcmRlZCB0byBjaGlsZFxuICAgKi9cbiAgb25SZXF1ZXN0Q2xvc2U6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICogRm9yd2FyZGVkIHRvIGNoaWxkXG4gICAqL1xuICBvbkRlbGV0ZUFjdGlvbjogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlxuICAgKiBGb3J3YXJkZWQgdG8gY2hpbGRcbiAgICovXG4gIG9uVXBkYXRlQWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuZnVuY1xufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmlnaHRQYW5lbENhcmQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9tYXRlcmlhbFVpID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIF9sb2Rhc2hEZWJvdW5jZSA9IHJlcXVpcmUoJ2xvZGFzaC5kZWJvdW5jZScpO1xuXG52YXIgX2xvZGFzaERlYm91bmNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xvZGFzaERlYm91bmNlKTtcblxuLyoqXG4gKiBSZWFkeSB0byB1c2UgRm9ybSArIFJlc3VsdCBMaXN0IGZvciBzZWFyY2ggdXNlcnNcbiAqL1xuXG52YXIgU2VhcmNoRm9ybSA9IChmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhTZWFyY2hGb3JtLCBfQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNlYXJjaEZvcm0ocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlYXJjaEZvcm0pO1xuXG4gICAgICAgIF9Db21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IHZhbHVlOiAnJyB9O1xuICAgICAgICB0aGlzLnNlYXJjaCA9IF9sb2Rhc2hEZWJvdW5jZTJbJ2RlZmF1bHQnXSh0aGlzLnNlYXJjaC5iaW5kKHRoaXMpLCAzMDApO1xuICAgIH1cblxuICAgIFNlYXJjaEZvcm0ucHJvdG90eXBlLnNlYXJjaCA9IGZ1bmN0aW9uIHNlYXJjaCgpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaCh0aGlzLnN0YXRlLnZhbHVlKTtcbiAgICB9O1xuXG4gICAgU2VhcmNoRm9ybS5wcm90b3R5cGUub25DaGFuZ2UgPSBmdW5jdGlvbiBvbkNoYW5nZShldmVudCwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiB2YWx1ZSB9KTtcbiAgICAgICAgdGhpcy5zZWFyY2goKTtcbiAgICB9O1xuXG4gICAgU2VhcmNoRm9ybS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHVuZGVybGluZVNob3cgPSBfcHJvcHMudW5kZXJsaW5lU2hvdztcbiAgICAgICAgdmFyIHNlYXJjaExhYmVsID0gX3Byb3BzLnNlYXJjaExhYmVsO1xuICAgICAgICB2YXIgc3R5bGUgPSBfcHJvcHMuc3R5bGU7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuc3RhdGUudmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IF9leHRlbmRzKHsgbWluV2lkdGg6IDMyMCB9LCBzdHlsZSkgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuVGV4dEZpZWxkLCB7XG4gICAgICAgICAgICAgICAgZnVsbFdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGhpbnRUZXh0OiBzZWFyY2hMYWJlbCxcbiAgICAgICAgICAgICAgICB1bmRlcmxpbmVTaG93OiB1bmRlcmxpbmVTaG93ID09PSB1bmRlZmluZWQgPyB0cnVlIDogdW5kZXJsaW5lU2hvd1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFNlYXJjaEZvcm07XG59KShfcmVhY3QuQ29tcG9uZW50KTtcblxuU2VhcmNoRm9ybS5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogTGFiZWwgZGlzcGxheWVkIGluIHRoZSBzZWFyY2ggZmllbGRcbiAgICAgKi9cbiAgICBzZWFyY2hMYWJlbDogX3JlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0cmlnZ2VyZWQgdG8gc2VhcmNoXG4gICAgICovXG4gICAgb25TZWFyY2g6IF9yZWFjdC5Qcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIC8qKlxuICAgICAqIFdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIHJvb3QgZWxlbWVudFxuICAgICAqL1xuICAgIHN0eWxlOiBfcmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBUbyBiZSBhcHBsaWVkIG9uIFRleHRGaWVsZFxuICAgICAqL1xuICAgIHVuZGVybGluZVNob3c6IF9yZWFjdC5Qcm9wVHlwZXMuYm9vbFxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gU2VhcmNoRm9ybTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfU2VhcmNoRm9ybSA9IHJlcXVpcmUoJy4vU2VhcmNoRm9ybScpO1xuXG52YXIgX1NlYXJjaEZvcm0yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU2VhcmNoRm9ybSk7XG5cbnZhciBfVXNlcnNMaXN0ID0gcmVxdWlyZSgnLi9Vc2Vyc0xpc3QnKTtcblxudmFyIF9Vc2Vyc0xpc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVXNlcnNMaXN0KTtcblxudmFyIF9Mb2FkZXJzID0gcmVxdWlyZSgnLi9Mb2FkZXJzJyk7XG5cbnZhciBfTG9hZGVyczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Mb2FkZXJzKTtcblxuLyoqXG4gKiBSZWFkeSB0byB1c2UgRm9ybSArIFJlc3VsdCBMaXN0IGZvciBzZWFyY2ggdXNlcnNcbiAqL1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgQ29tcG9uZW50ID0gX3JlcXVpcmUuQ29tcG9uZW50O1xudmFyIFByb3BUeXBlcyA9IF9yZXF1aXJlLlByb3BUeXBlcztcblxudmFyIF9yZXF1aXJlJHJlcXVpcmVMaWIgPSByZXF1aXJlKCdweWRpbycpLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX3JlcXVpcmUkcmVxdWlyZUxpYi5QeWRpb0NvbnRleHRDb25zdW1lcjtcblxudmFyIFNlYXJjaFBhbmVsID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFNlYXJjaFBhbmVsLCBfQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNlYXJjaFBhbmVsKHByb3BzLCBjb250ZXh0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTZWFyY2hQYW5lbCk7XG5cbiAgICAgICAgX0NvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzLmNvbnRleHQpO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBpdGVtczogW10gfTtcbiAgICB9XG5cbiAgICBTZWFyY2hQYW5lbC5wcm90b3R5cGUub25TZWFyY2ggPSBmdW5jdGlvbiBvblNlYXJjaCh2YWx1ZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpdGVtczogW10gfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHBhcmFtcyA9IHsgdmFsdWU6IHZhbHVlLCBleGlzdGluZ19vbmx5OiAndHJ1ZScgfTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucGFyYW1zKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBfZXh0ZW5kcyh7fSwgcGFyYW1zLCB0aGlzLnByb3BzLnBhcmFtcyk7XG4gICAgICAgIH1cbiAgICAgICAgX0xvYWRlcnMyWydkZWZhdWx0J10ubGlzdFVzZXJzKHBhcmFtcywgZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGl0ZW1zOiBjaGlsZHJlbiB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIFNlYXJjaFBhbmVsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgbW9kZSA9IF9wcm9wcy5tb2RlO1xuICAgICAgICB2YXIgaXRlbSA9IF9wcm9wcy5pdGVtO1xuICAgICAgICB2YXIgZ2V0TWVzc2FnZSA9IF9wcm9wcy5nZXRNZXNzYWdlO1xuXG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDEsIGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgfSB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHBhZGRpbmc6IDEwLCBoZWlnaHQ6IDU2LCBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuc3RhdGUuc2VsZWN0ID8gYWN0aXZlVGJhckNvbG9yIDogJyNmYWZhZmEnLCBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCB0cmFuc2l0aW9uOiBET01VdGlscy5nZXRCZXppZXJzVHJhbnNpdGlvbigpIH0gfSxcbiAgICAgICAgICAgICAgICBtb2RlID09PSBcInNlbGVjdG9yXCIgJiYgaXRlbS5fcGFyZW50ICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoTWF0ZXJpYWxVSS5JY29uQnV0dG9uLCB7IGljb25DbGFzc05hbWU6ICdtZGkgbWRpLWNoZXZyb24tbGVmdCcsIG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5wcm9wcy5vbkZvbGRlckNsaWNrZWQoaXRlbS5fcGFyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSB9KSxcbiAgICAgICAgICAgICAgICBtb2RlID09PSAnYm9vaycgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZm9udFNpemU6IDIwLCBjb2xvcjogJ3JnYmEoMCwwLDAsMC44NyknLCBmbGV4OiAxIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy50aXRsZVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfU2VhcmNoRm9ybTJbJ2RlZmF1bHQnXSwgeyBzdHlsZTogbW9kZSA9PT0gJ2Jvb2snID8geyBtaW5XaWR0aDogMzIwIH0gOiB7IGZsZXg6IDEgfSwgc2VhcmNoTGFiZWw6IHRoaXMucHJvcHMuc2VhcmNoTGFiZWwsIG9uU2VhcmNoOiB0aGlzLm9uU2VhcmNoLmJpbmQodGhpcykgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KF9Vc2Vyc0xpc3QyWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICBtb2RlOiB0aGlzLnByb3BzLm1vZGUsXG4gICAgICAgICAgICAgICAgb25JdGVtQ2xpY2tlZDogdGhpcy5wcm9wcy5vbkl0ZW1DbGlja2VkLFxuICAgICAgICAgICAgICAgIGl0ZW06IHsgbGVhZnM6IHRoaXMuc3RhdGUuaXRlbXMgfSxcbiAgICAgICAgICAgICAgICBub1Rvb2xiYXI6IHRydWUsXG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZVByaW1hcnlUZXh0OiBnZXRNZXNzYWdlKDU4NywgJycpLFxuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGVTZWNvbmRhcnlUZXh0OiBnZXRNZXNzYWdlKDU4OCwgJycpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gU2VhcmNoUGFuZWw7XG59KShDb21wb25lbnQpO1xuXG5TZWFyY2hQYW5lbC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgcGFyYW1ldGVycyBhZGRlZCB0byBsaXN0VXNlcnMoKSByZXF1ZXN0XG4gICAgICovXG4gICAgcGFyYW1zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIExhYmVsIGRpc3BsYXllZCBpbiB0aGUgdG9vbGJhclxuICAgICAqL1xuICAgIHNlYXJjaExhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRyaWdnZXJlZCB3aGVuIGEgc2VhcmNoIHJlc3VsdCBpcyBjbGlja2VkXG4gICAgICovXG4gICAgb25JdGVtQ2xpY2tlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgLyoqXG4gICAgICogQ3VycmVudGx5IHNlbGVjdGVkIGl0ZW0sIHJlcXVpcmVkIGZvciBuYXZpZ2F0aW9uXG4gICAgICovXG4gICAgaXRlbTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0cmlnZ2VyZWQgaWYgdGhlIHJlc3VsdCBpcyBhIGNvbGxlY3Rpb25cbiAgICAgKi9cbiAgICBvbkZvbGRlckNsaWNrZWQ6IFByb3BUeXBlcy5mdW5jXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBTZWFyY2hQYW5lbCA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKFNlYXJjaFBhbmVsKTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNlYXJjaFBhbmVsO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMob2JqLCBrZXlzKSB7IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIgaSBpbiBvYmopIHsgaWYgKGtleXMuaW5kZXhPZihpKSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7IHRhcmdldFtpXSA9IG9ialtpXTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX1VzZXJzTGlzdCA9IHJlcXVpcmUoJy4vVXNlcnNMaXN0Jyk7XG5cbnZhciBfVXNlcnNMaXN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1VzZXJzTGlzdCk7XG5cbnZhciBfTG9hZGVycyA9IHJlcXVpcmUoJy4vTG9hZGVycycpO1xuXG52YXIgX0xvYWRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTG9hZGVycyk7XG5cbnZhciBfYXZhdGFyQWN0aW9uc1BhbmVsID0gcmVxdWlyZSgnLi4vYXZhdGFyL0FjdGlvbnNQYW5lbCcpO1xuXG52YXIgX2F2YXRhckFjdGlvbnNQYW5lbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hdmF0YXJBY3Rpb25zUGFuZWwpO1xuXG52YXIgX3B5ZGlvSHR0cEFwaSA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvYXBpJyk7XG5cbnZhciBfcHlkaW9IdHRwQXBpMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvSHR0cEFwaSk7XG5cbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBUZXh0RmllbGQgPSBfcmVxdWlyZS5UZXh0RmllbGQ7XG52YXIgRmxhdEJ1dHRvbiA9IF9yZXF1aXJlLkZsYXRCdXR0b247XG52YXIgQ2FyZFRpdGxlID0gX3JlcXVpcmUuQ2FyZFRpdGxlO1xudmFyIERpdmlkZXIgPSBfcmVxdWlyZS5EaXZpZGVyO1xuXG52YXIgX3JlcXVpcmUkcmVxdWlyZUxpYiA9IHJlcXVpcmUoJ3B5ZGlvJykucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfcmVxdWlyZSRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xuXG4vKipcbiAqIERpc3BsYXkgaW5mbyBhYm91dCBhIFRlYW0gaW5zaWRlIGEgcG9wb3Zlci1hYmxlIGNhcmRcbiAqL1xuXG52YXIgVGVhbUNhcmQgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoVGVhbUNhcmQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gVGVhbUNhcmQocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRlYW1DYXJkKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBsYWJlbDogdGhpcy5wcm9wcy5pdGVtLmxhYmVsIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlIGxvYWRlciB0byBnZXQgdGVhbSBwYXJ0aWNpcGFudHNcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqL1xuXG4gICAgVGVhbUNhcmQucHJvdG90eXBlLmxvYWRNZW1iZXJzID0gZnVuY3Rpb24gbG9hZE1lbWJlcnMoaXRlbSkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xuICAgICAgICBfTG9hZGVyczJbJ2RlZmF1bHQnXS5jaGlsZHJlbkFzUHJvbWlzZShpdGVtLCBmYWxzZSkudGhlbihmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIF9Mb2FkZXJzMlsnZGVmYXVsdCddLmNoaWxkcmVuQXNQcm9taXNlKGl0ZW0sIHRydWUpLnRoZW4oZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBtZW1iZXJzOiBpdGVtLmxlYWZzLCBsb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgVGVhbUNhcmQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgICAgICAgdGhpcy5sb2FkTWVtYmVycyh0aGlzLnByb3BzLml0ZW0pO1xuICAgIH07XG5cbiAgICBUZWFtQ2FyZC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIHRoaXMubG9hZE1lbWJlcnMobmV4dFByb3BzLml0ZW0pO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbGFiZWw6IG5leHRQcm9wcy5pdGVtLmxhYmVsIH0pO1xuICAgIH07XG5cbiAgICBUZWFtQ2FyZC5wcm90b3R5cGUub25MYWJlbENoYW5nZSA9IGZ1bmN0aW9uIG9uTGFiZWxDaGFuZ2UoZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxhYmVsOiB2YWx1ZSB9KTtcbiAgICB9O1xuXG4gICAgVGVhbUNhcmQucHJvdG90eXBlLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24gdXBkYXRlTGFiZWwoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmxhYmVsICE9PSB0aGlzLnByb3BzLml0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgIF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLnVwZGF0ZVRlYW1MYWJlbCh0aGlzLnByb3BzLml0ZW0uSWRtUm9sZS5VdWlkLCB0aGlzLnN0YXRlLmxhYmVsLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLnByb3BzLm9uVXBkYXRlQWN0aW9uKF90aGlzMi5wcm9wcy5pdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlZGl0TW9kZTogZmFsc2UgfSk7XG4gICAgfTtcblxuICAgIFRlYW1DYXJkLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgaXRlbSA9IF9wcm9wcy5pdGVtO1xuICAgICAgICB2YXIgb25EZWxldGVBY3Rpb24gPSBfcHJvcHMub25EZWxldGVBY3Rpb247XG4gICAgICAgIHZhciBvbkNyZWF0ZUFjdGlvbiA9IF9wcm9wcy5vbkNyZWF0ZUFjdGlvbjtcbiAgICAgICAgdmFyIGdldE1lc3NhZ2UgPSBfcHJvcHMuZ2V0TWVzc2FnZTtcblxuICAgICAgICB2YXIgZWRpdFByb3BzID0ge1xuICAgICAgICAgICAgdGVhbTogaXRlbSxcbiAgICAgICAgICAgIHVzZXJFZGl0YWJsZTogdGhpcy5wcm9wcy5pdGVtLklkbVJvbGUuUG9saWNpZXNDb250ZXh0RWRpdGFibGUsXG4gICAgICAgICAgICBvbkRlbGV0ZUFjdGlvbjogZnVuY3Rpb24gb25EZWxldGVBY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMzLnByb3BzLm9uRGVsZXRlQWN0aW9uKGl0ZW0uX3BhcmVudCwgW2l0ZW1dKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkVkaXRBY3Rpb246IGZ1bmN0aW9uIG9uRWRpdEFjdGlvbigpIHtcbiAgICAgICAgICAgICAgICBfdGhpczMuc2V0U3RhdGUoeyBlZGl0TW9kZTogIV90aGlzMy5zdGF0ZS5lZGl0TW9kZSB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWxvYWRBY3Rpb246IGZ1bmN0aW9uIHJlbG9hZEFjdGlvbigpIHtcbiAgICAgICAgICAgICAgICBfdGhpczMucHJvcHMub25VcGRhdGVBY3Rpb24oaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHRpdGxlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5lZGl0TW9kZSkge1xuICAgICAgICAgICAgdGl0bGUgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgbWFyZ2luOiAxNiB9IH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChUZXh0RmllbGQsIHsgc3R5bGU6IHsgZmxleDogMSwgZm9udFNpemU6IDI0IH0sIGZ1bGxXaWR0aDogdHJ1ZSwgZGlzYWJsZWQ6IGZhbHNlLCB1bmRlcmxpbmVTaG93OiBmYWxzZSwgdmFsdWU6IHRoaXMuc3RhdGUubGFiZWwsIG9uQ2hhbmdlOiB0aGlzLm9uTGFiZWxDaGFuZ2UuYmluZCh0aGlzKSB9KSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZsYXRCdXR0b24sIHsgc2Vjb25kYXJ5OiB0cnVlLCBsYWJlbDogZ2V0TWVzc2FnZSg0OCksIG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy51cGRhdGVMYWJlbCgpO1xuICAgICAgICAgICAgICAgICAgICB9IH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGl0bGUgPSBSZWFjdC5jcmVhdGVFbGVtZW50KENhcmRUaXRsZSwgeyB0aXRsZTogdGhpcy5zdGF0ZS5sYWJlbCwgc3VidGl0bGU6IGl0ZW0ubGVhZnMgJiYgaXRlbS5sZWFmcy5sZW5ndGggPyBnZXRNZXNzYWdlKDU3NikucmVwbGFjZSgnJXMnLCBpdGVtLmxlYWZzLmxlbmd0aCkgOiBnZXRNZXNzYWdlKDU3NykgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgc3R5bGUgPSBfcHJvcHMyLnN0eWxlO1xuXG4gICAgICAgIHZhciBvdGhlclByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9wcm9wczIsIFsnc3R5bGUnXSk7XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX2F2YXRhckFjdGlvbnNQYW5lbDJbJ2RlZmF1bHQnXSwgX2V4dGVuZHMoe30sIG90aGVyUHJvcHMsIGVkaXRQcm9wcykpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChEaXZpZGVyLCBudWxsKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX1VzZXJzTGlzdDJbJ2RlZmF1bHQnXSwgeyBzdWJIZWFkZXI6IGdldE1lc3NhZ2UoNTc1KSwgb25JdGVtQ2xpY2tlZDogZnVuY3Rpb24gKCkge30sIGl0ZW06IGl0ZW0sIG1vZGU6ICdpbm5lcicsIG9uRGVsZXRlQWN0aW9uOiBvbkRlbGV0ZUFjdGlvbiB9KVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gVGVhbUNhcmQ7XG59KShSZWFjdC5Db21wb25lbnQpO1xuXG5UZWFtQ2FyZC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogUHlkaW8gaW5zdGFuY2VcbiAgICAgKi9cbiAgICBweWRpbzogUmVhY3QuUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW8pLFxuICAgIC8qKlxuICAgICAqIFRlYW0gZGF0YSBvYmplY3RcbiAgICAgKi9cbiAgICBpdGVtOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIEFwcGxpZWQgdG8gcm9vdCBjb250YWluZXJcbiAgICAgKi9cbiAgICBzdHlsZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdG8gZGlzbWlzcyB0aGUgcG9wb3ZlclxuICAgICAqL1xuICAgIG9uUmVxdWVzdENsb3NlOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAvKipcbiAgICAgKiBEZWxldGUgY3VycmVudCB0ZWFtXG4gICAgICovXG4gICAgb25EZWxldGVBY3Rpb246IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBjdXJyZW50IHRlYW1cbiAgICAgKi9cbiAgICBvblVwZGF0ZUFjdGlvbjogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRlYW1DYXJkID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoVGVhbUNhcmQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUZWFtQ2FyZDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9hdmF0YXJVc2VyQXZhdGFyID0gcmVxdWlyZSgnLi4vYXZhdGFyL1VzZXJBdmF0YXInKTtcblxudmFyIF9hdmF0YXJVc2VyQXZhdGFyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2F2YXRhclVzZXJBdmF0YXIpO1xuXG52YXIgX1VzZXJDcmVhdGlvbkZvcm0gPSByZXF1aXJlKCcuLi9Vc2VyQ3JlYXRpb25Gb3JtJyk7XG5cbnZhciBfVXNlckNyZWF0aW9uRm9ybTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Vc2VyQ3JlYXRpb25Gb3JtKTtcblxuLyoqXG4gKiBDYXJkIHByZXNlbnRhdGlvbiBvZiBhIHVzZXIuIFJlbGllcyBvbiB0aGUgVXNlckF2YXRhciBvYmplY3QsXG4gKiBwbHVzIHRoZSBQeWRpb0Zvcm0uVXNlckNyZWF0aW9uRm9ybSB3aGVuIGluIGVkaXQgbW9kZS5cbiAqL1xuXG52YXIgVXNlckNhcmQgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoVXNlckNhcmQsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gVXNlckNhcmQocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVzZXJDYXJkKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICB0aGlzLnN0YXRlID0geyBlZGl0Rm9ybTogZmFsc2UgfTtcbiAgICB9XG5cbiAgICBVc2VyQ2FyZC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmIChuZXh0UHJvcHMuaXRlbSAhPT0gdGhpcy5wcm9wcy5pdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZWRpdEZvcm06IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFVzZXJDYXJkLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLnByb3BzLml0ZW07XG5cbiAgICAgICAgdmFyIGVkaXRhYmxlUHJvcHMgPSB7fSxcbiAgICAgICAgICAgIGVkaXRGb3JtID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoaXRlbS5fcGFyZW50ICYmIGl0ZW0uX3BhcmVudC5pZCA9PT0gJ2V4dCcpIHtcbiAgICAgICAgICAgIGVkaXRhYmxlUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgdXNlckVkaXRhYmxlOiBpdGVtLklkbVVzZXIuUG9saWNpZXNDb250ZXh0RWRpdGFibGUsXG4gICAgICAgICAgICAgICAgb25EZWxldGVBY3Rpb246IGZ1bmN0aW9uIG9uRGVsZXRlQWN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkRlbGV0ZUFjdGlvbihpdGVtLl9wYXJlbnQsIFtpdGVtXSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbkVkaXRBY3Rpb246IGZ1bmN0aW9uIG9uRWRpdEFjdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBlZGl0Rm9ybTogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlbG9hZEFjdGlvbjogZnVuY3Rpb24gcmVsb2FkQWN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5vblVwZGF0ZUFjdGlvbihpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuZWRpdEZvcm0pIHtcbiAgICAgICAgICAgIGVkaXRGb3JtID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX1VzZXJDcmVhdGlvbkZvcm0yWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICBweWRpbzogdGhpcy5wcm9wcy5weWRpbyxcbiAgICAgICAgICAgICAgICB6RGVwdGg6IDAsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgZmxleDogMSB9LFxuICAgICAgICAgICAgICAgIG5ld1VzZXJOYW1lOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgIGVkaXRNb2RlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHVzZXJEYXRhOiBpdGVtLFxuICAgICAgICAgICAgICAgIG9uVXNlckNyZWF0ZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMucHJvcHMub25VcGRhdGVBY3Rpb24oaXRlbSk7X3RoaXMuc2V0U3RhdGUoeyBlZGl0Rm9ybTogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbkNhbmNlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGVkaXRGb3JtOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGVkaXRhYmxlUHJvcHMgPSBfZXh0ZW5kcyh7fSwgZWRpdGFibGVQcm9wcywge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlMYWJlbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5QXZhdGFyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHVzZURlZmF1bHRBdmF0YXI6IHRydWUsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgdGV4dEFsaWduOiAnY2VudGVyJywgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMGUwZTAnLCBwYWRkaW5nOiAxMCwgYmFja2dyb3VuZENvbG9yOiAnI2ZhZmFmYScgfSxcbiAgICAgICAgICAgICAgICBhdmF0YXJTdHlsZTogeyBtYXJnaW5Cb3R0b206IDE2IH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBlZGl0Rm9ybSA/IHsgaGVpZ2h0OiAnMTAwJScsIGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgfSA6IHt9IH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfYXZhdGFyVXNlckF2YXRhcjJbJ2RlZmF1bHQnXSwgX2V4dGVuZHMoe1xuICAgICAgICAgICAgICAgIHVzZXJJZDogdGhpcy5wcm9wcy5pdGVtLmlkLFxuICAgICAgICAgICAgICAgIHJpY2hDYXJkOiAhZWRpdEZvcm0sXG4gICAgICAgICAgICAgICAgcHlkaW86IHRoaXMucHJvcHMucHlkaW8sXG4gICAgICAgICAgICAgICAgY2FyZFNpemU6IHRoaXMucHJvcHMuc3R5bGUud2lkdGhcbiAgICAgICAgICAgIH0sIGVkaXRhYmxlUHJvcHMpKSxcbiAgICAgICAgICAgIGVkaXRGb3JtXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHJldHVybiBVc2VyQ2FyZDtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5Vc2VyQ2FyZC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogUHlkaW8gaW5zdGFuY2VcbiAgICAgKi9cbiAgICBweWRpbzogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKFB5ZGlvKSxcbiAgICAvKipcbiAgICAgKiBUZWFtIGRhdGEgb2JqZWN0XG4gICAgICovXG4gICAgaXRlbTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgLyoqXG4gICAgICogQXBwbGllZCB0byByb290IGNvbnRhaW5lclxuICAgICAqL1xuICAgIHN0eWxlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBDYWxsZWQgdG8gZGlzbWlzcyB0aGUgcG9wb3ZlclxuICAgICAqL1xuICAgIG9uUmVxdWVzdENsb3NlOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgLyoqXG4gICAgICogRGVsZXRlIGN1cnJlbnQgdGVhbVxuICAgICAqL1xuICAgIG9uRGVsZXRlQWN0aW9uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGN1cnJlbnQgdGVhbVxuICAgICAqL1xuICAgIG9uVXBkYXRlQWN0aW9uOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVzZXJDYXJkO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX2F2YXRhclVzZXJBdmF0YXIgPSByZXF1aXJlKCcuLi9hdmF0YXIvVXNlckF2YXRhcicpO1xuXG52YXIgX2F2YXRhclVzZXJBdmF0YXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXZhdGFyVXNlckF2YXRhcik7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfbWF0ZXJpYWxVaVN0eWxlcyA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpL3N0eWxlcycpO1xuXG52YXIgX3ZpZXdzRW1wdHlTdGF0ZVZpZXcgPSByZXF1aXJlKCcuLi8uLi92aWV3cy9FbXB0eVN0YXRlVmlldycpO1xuXG52YXIgX3ZpZXdzRW1wdHlTdGF0ZVZpZXcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdmlld3NFbXB0eVN0YXRlVmlldyk7XG5cbnZhciBfQWxwaGFQYWdpbmF0b3IgPSByZXF1aXJlKCcuL0FscGhhUGFnaW5hdG9yJyk7XG5cbnZhciBfQWxwaGFQYWdpbmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQWxwaGFQYWdpbmF0b3IpO1xuXG52YXIgX1NlYXJjaEZvcm0gPSByZXF1aXJlKCcuL1NlYXJjaEZvcm0nKTtcblxudmFyIF9TZWFyY2hGb3JtMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1NlYXJjaEZvcm0pO1xuXG52YXIgX3B5ZGlvVXRpbERvbSA9IHJlcXVpcmUoJ3B5ZGlvL3V0aWwvZG9tJyk7XG5cbnZhciBfcHlkaW9VdGlsRG9tMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvVXRpbERvbSk7XG5cbnZhciBfYXZhdGFyQ2VsbEFjdGlvbnNSZW5kZXJlciA9IHJlcXVpcmUoJy4uL2F2YXRhci9DZWxsQWN0aW9uc1JlbmRlcmVyJyk7XG5cbnZhciBfYXZhdGFyQ2VsbEFjdGlvbnNSZW5kZXJlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hdmF0YXJDZWxsQWN0aW9uc1JlbmRlcmVyKTtcblxudmFyIF9yZXF1aXJlJHJlcXVpcmVMaWIgPSByZXF1aXJlKCdweWRpbycpLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIExvYWRlciA9IF9yZXF1aXJlJHJlcXVpcmVMaWIuTG9hZGVyO1xudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX3JlcXVpcmUkcmVxdWlyZUxpYi5QeWRpb0NvbnRleHRDb25zdW1lcjtcblxudmFyIFVzZXJzTGlzdCA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhVc2Vyc0xpc3QsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gVXNlcnNMaXN0KHByb3BzLCBjb250ZXh0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBVc2Vyc0xpc3QpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7IHNlbGVjdDogZmFsc2UsIHNlbGVjdGlvbjogW10sIGVkaXRMYWJlbDogZmFsc2UgfTtcbiAgICB9XG5cbiAgICBVc2Vyc0xpc3QucHJvdG90eXBlLm9uTGFiZWxLZXlFbnRlciA9IGZ1bmN0aW9uIG9uTGFiZWxLZXlFbnRlcihlKSB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMYWJlbCgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFVzZXJzTGlzdC5wcm90b3R5cGUub25MYWJlbENoYW5nZSA9IGZ1bmN0aW9uIG9uTGFiZWxDaGFuZ2UoZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxhYmVsOiB2YWx1ZSB9KTtcbiAgICB9O1xuXG4gICAgVXNlcnNMaXN0LnByb3RvdHlwZS51cGRhdGVMYWJlbCA9IGZ1bmN0aW9uIHVwZGF0ZUxhYmVsKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5sYWJlbCAhPT0gdGhpcy5wcm9wcy5pdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uRWRpdExhYmVsKHRoaXMucHJvcHMuaXRlbSwgdGhpcy5zdGF0ZS5sYWJlbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRMYWJlbDogZmFsc2UgfSk7XG4gICAgfTtcblxuICAgIFVzZXJzTGlzdC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgaXRlbSA9IF9wcm9wcy5pdGVtO1xuICAgICAgICB2YXIgbW9kZSA9IF9wcm9wcy5tb2RlO1xuICAgICAgICB2YXIgcGFnaW5hdG9yVHlwZSA9IF9wcm9wcy5wYWdpbmF0b3JUeXBlO1xuICAgICAgICB2YXIgbG9hZGluZyA9IF9wcm9wcy5sb2FkaW5nO1xuICAgICAgICB2YXIgZW5hYmxlU2VhcmNoID0gX3Byb3BzLmVuYWJsZVNlYXJjaDtcbiAgICAgICAgdmFyIHNob3dTdWJoZWFkZXJzID0gX3Byb3BzLnNob3dTdWJoZWFkZXJzO1xuICAgICAgICB2YXIgZ2V0TWVzc2FnZSA9IF9wcm9wcy5nZXRNZXNzYWdlO1xuICAgICAgICB2YXIgYWN0aW9uc1BhbmVsID0gX3Byb3BzLmFjdGlvbnNQYW5lbDtcbiAgICAgICAgdmFyIG11aVRoZW1lID0gX3Byb3BzLm11aVRoZW1lO1xuICAgICAgICB2YXIgYm9va0NvbHVtbiA9IF9wcm9wcy5ib29rQ29sdW1uO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHMucHlkaW87XG4gICAgICAgIHZhciByZWxvYWRBY3Rpb24gPSBfcHJvcHMucmVsb2FkQWN0aW9uO1xuXG4gICAgICAgIHZhciBmb2xkZXJzID0gaXRlbS5jb2xsZWN0aW9ucyB8fCBbXTtcbiAgICAgICAgdmFyIGxlYWZzID0gaXRlbS5sZWFmcyB8fCBbXTtcbiAgICAgICAgdmFyIGZvbGRlcnNTdWJIZWFkZXIgPSBmb2xkZXJzLmxlbmd0aCAmJiAobGVhZnMubGVuZ3RoIHx8IHNob3dTdWJoZWFkZXJzKSA/IFt7IHN1YmhlYWRlcjogZ2V0TWVzc2FnZSgnNTMyJykgfV0gOiBbXTtcbiAgICAgICAgdmFyIHVzZXJzU3ViSGVhZGVyID0gW107XG4gICAgICAgIGlmIChzaG93U3ViaGVhZGVycyB8fCBwYWdpbmF0b3JUeXBlKSB7XG4gICAgICAgICAgICB1c2Vyc1N1YkhlYWRlciA9IFt7IHN1YmhlYWRlcjogcGFnaW5hdG9yVHlwZSA/IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9BbHBoYVBhZ2luYXRvcjJbJ2RlZmF1bHQnXSwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHsgc3R5bGU6IHsgbGluZUhlaWdodDogJzIwcHgnLCBwYWRkaW5nOiAnMTRweCAwJyB9IH0pKSA6IGdldE1lc3NhZ2UoJzI0OScpIH1dO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpdGVtcyA9IFtdLmNvbmNhdChmb2xkZXJzU3ViSGVhZGVyLCBmb2xkZXJzLCB1c2Vyc1N1YkhlYWRlciwgbGVhZnMpO1xuICAgICAgICB2YXIgdG90YWwgPSBpdGVtcy5sZW5ndGg7XG4gICAgICAgIHZhciBlbGVtZW50cyA9IFtdO1xuICAgICAgICB2YXIgdG9nZ2xlU2VsZWN0ID0gZnVuY3Rpb24gdG9nZ2xlU2VsZWN0KCkge1xuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBzZWxlY3Q6ICFfdGhpcy5zdGF0ZS5zZWxlY3QsIHNlbGVjdGlvbjogW10gfSk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBjcmVhdGVBY3Rpb24gPSBmdW5jdGlvbiBjcmVhdGVBY3Rpb24oKSB7XG4gICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkNyZWF0ZUFjdGlvbihpdGVtKTtcbiAgICAgICAgfTtcbiAgICAgICAgdmFyIGRlbGV0ZUFjdGlvbiA9IGZ1bmN0aW9uIGRlbGV0ZUFjdGlvbigpIHtcbiAgICAgICAgICAgIF90aGlzLnByb3BzLm9uRGVsZXRlQWN0aW9uKGl0ZW0sIF90aGlzLnN0YXRlLnNlbGVjdGlvbik7X3RoaXMuc2V0U3RhdGUoeyBzZWxlY3Q6IGZhbHNlLCBzZWxlY3Rpb246IFtdIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBhY2NlbnRDb2xvciA9IG11aVRoZW1lLnBhbGV0dGUuYWNjZW50MkNvbG9yO1xuICAgICAgICB2YXIgYXBwQmFyID0gbXVpVGhlbWUuYXBwQmFyO1xuICAgICAgICB2YXIgc3R5bGVzUHJvcHMgPSB7XG4gICAgICAgICAgICB0b29sYmFySGVpZ2h0OiBtb2RlID09PSAnYm9vaycgPyA1NiA6IDQ4LFxuICAgICAgICAgICAgdG9vbGJhckJnQ29sb3I6IG1vZGUgPT09ICdib29rJyA/IHRoaXMuc3RhdGUuc2VsZWN0ID8gYWNjZW50Q29sb3IgOiAnI2ZhZmFmYScgOiBhcHBCYXIuY29sb3IsXG4gICAgICAgICAgICB0aXRsZUZvbnRzaXplOiBtb2RlID09PSAnYm9vaycgPyAyMCA6IDE2LFxuICAgICAgICAgICAgdGl0bGVGb250V2VpZ2h0OiA0MDAsXG4gICAgICAgICAgICB0aXRsZUNvbG9yOiBtb2RlID09PSAnYm9vaycgPyB0aGlzLnN0YXRlLnNlbGVjdCA/ICd3aGl0ZScgOiAncmdiYSgwLDAsMCwwLjg3KScgOiBhcHBCYXIudGV4dENvbG9yLFxuICAgICAgICAgICAgdGl0bGVQYWRkaW5nOiAxMCxcbiAgICAgICAgICAgIGJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAnICsgYWNjZW50Q29sb3IsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNTAlJyxcbiAgICAgICAgICAgICAgICBtYXJnaW46ICcwIDRweCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDM2LFxuICAgICAgICAgICAgICAgIGhlaWdodDogMzYsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogNlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGljb246IHtcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMjIsXG4gICAgICAgICAgICAgICAgY29sb3I6IGFjY2VudENvbG9yXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGlmIChib29rQ29sdW1uKSB7XG4gICAgICAgICAgICBzdHlsZXNQcm9wcy50b29sYmFyQmdDb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgICAgICAgICBzdHlsZXNQcm9wcy50aXRsZUNvbG9yID0gJ3JnYmEoMCwwLDAsMC41NCknO1xuICAgICAgICAgICAgc3R5bGVzUHJvcHMudGl0bGVGb250c2l6ZSA9IDE0O1xuICAgICAgICAgICAgc3R5bGVzUHJvcHMudGl0bGVGb250V2VpZ2h0ID0gNTAwO1xuICAgICAgICAgICAgc3R5bGVzUHJvcHMudGl0bGVQYWRkaW5nID0gJzEwcHggMTZweCc7XG4gICAgICAgICAgICBzdHlsZXNQcm9wcy5idXR0b24uYm9yZGVyID0gJzAnO1xuICAgICAgICAgICAgc3R5bGVzUHJvcHMuaWNvbi5jb2xvciA9IG11aVRoZW1lLnBhbGV0dGUucHJpbWFyeTFDb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsYWJlbCA9IGl0ZW0ubGFiZWw7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uRWRpdExhYmVsICYmICF0aGlzLnN0YXRlLnNlbGVjdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZWRpdExhYmVsKSB7XG4gICAgICAgICAgICAgICAgbGFiZWwgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZmxleDogMSB9IH0sXG4gICAgICAgICAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlRleHRGaWVsZCwgeyBzdHlsZTogeyBmb250U2l6ZTogMjAgfSwgdmFsdWU6IHRoaXMuc3RhdGUubGFiZWwsIG9uQ2hhbmdlOiB0aGlzLm9uTGFiZWxDaGFuZ2UuYmluZCh0aGlzKSwgb25LZXlEb3duOiB0aGlzLm9uTGFiZWxLZXlFbnRlci5iaW5kKHRoaXMpIH0pLFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IGljb25TdHlsZTogeyBjb2xvcjogJyNlMGUwZTAnIH0sIHNlY29uZGFyeTogdHJ1ZSwgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLWNvbnRlbnQtc2F2ZVwiLCB0b29sdGlwOiBnZXRNZXNzYWdlKDQ4KSwgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLnVwZGF0ZUxhYmVsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGFiZWwgPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZmxleDogMSB9IH0sXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IGljb25TdHlsZTogeyBjb2xvcjogJyNlMGUwZTAnIH0sIGljb25DbGFzc05hbWU6IFwibWRpIG1kaS1wZW5jaWxcIiwgdG9vbHRpcDogZ2V0TWVzc2FnZSg0OCksIG9uVG91Y2hUYXA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGVkaXRMYWJlbDogdHJ1ZSwgbGFiZWw6IGl0ZW0ubGFiZWwgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgY3JlYXRlSWNvbiA9ICdtZGkgbWRpLWFjY291bnQtcGx1cyc7XG4gICAgICAgIGlmIChpdGVtLmFjdGlvbnMgJiYgaXRlbS5hY3Rpb25zLnR5cGUgPT09ICd0ZWFtcycpIHtcbiAgICAgICAgICAgIGNyZWF0ZUljb24gPSAnbWRpIG1kaS1hY2NvdW50LW11bHRpcGxlLXBsdXMnO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0b29sYmFyID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgc3R5bGU6IHsgcGFkZGluZzogc3R5bGVzUHJvcHMudGl0bGVQYWRkaW5nLCBoZWlnaHQ6IHN0eWxlc1Byb3BzLnRvb2xiYXJIZWlnaHQsIGJhY2tncm91bmRDb2xvcjogc3R5bGVzUHJvcHMudG9vbGJhckJnQ29sb3IsIGJvcmRlclJhZGl1czogJzJweCAycHggMCAwJywgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgdHJhbnNpdGlvbjogX3B5ZGlvVXRpbERvbTJbJ2RlZmF1bHQnXS5nZXRCZXppZXJzVHJhbnNpdGlvbigpIH0gfSxcbiAgICAgICAgICAgIG1vZGUgPT09IFwic2VsZWN0b3JcIiAmJiBpdGVtLl9wYXJlbnQgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwgeyBzdHlsZTogeyBtYXJnaW5MZWZ0OiAtMTAgfSwgaWNvbkNsYXNzTmFtZTogJ21kaSBtZGktY2hldnJvbi1sZWZ0Jywgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkZvbGRlckNsaWNrZWQoaXRlbS5fcGFyZW50KTtcbiAgICAgICAgICAgICAgICB9IH0pLFxuICAgICAgICAgICAgbW9kZSA9PT0gJ2Jvb2snICYmIHRvdGFsID4gMCAmJiBpdGVtLmFjdGlvbnMgJiYgaXRlbS5hY3Rpb25zLm11bHRpcGxlICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkNoZWNrYm94LCB7IHN0eWxlOiB7IHdpZHRoOiAnaW5pdGlhbCcsIG1hcmdpbkxlZnQ6IHRoaXMuc3RhdGUuc2VsZWN0ID8gNyA6IDE0IH0sIGNoZWNrZWQ6IHRoaXMuc3RhdGUuc2VsZWN0LCBvbkNoZWNrOiB0b2dnbGVTZWxlY3QgfSksXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDIsIGZvbnRTaXplOiBzdHlsZXNQcm9wcy50aXRsZUZvbnRzaXplLCBjb2xvcjogc3R5bGVzUHJvcHMudGl0bGVDb2xvciwgZm9udFdlaWdodDogc3R5bGVzUHJvcHMudGl0bGVGb250V2VpZ2h0IH0gfSxcbiAgICAgICAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChtb2RlID09PSAnYm9vaycgfHwgbW9kZSA9PT0gJ3NlbGVjdG9yJyAmJiBib29rQ29sdW1uKSAmJiBpdGVtLmFjdGlvbnMgJiYgaXRlbS5hY3Rpb25zLmNyZWF0ZSAmJiAhdGhpcy5zdGF0ZS5zZWxlY3QgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwgeyBzdHlsZTogc3R5bGVzUHJvcHMuYnV0dG9uLCBpY29uU3R5bGU6IHN0eWxlc1Byb3BzLmljb24sIGljb25DbGFzc05hbWU6IGNyZWF0ZUljb24sIHRvb2x0aXBQb3NpdGlvbjogXCJib3R0b20tbGVmdFwiLCB0b29sdGlwOiBnZXRNZXNzYWdlKGl0ZW0uYWN0aW9ucy5jcmVhdGUpLCBvblRvdWNoVGFwOiBjcmVhdGVBY3Rpb24gfSksXG4gICAgICAgICAgICBib29rQ29sdW1uICYmICFpdGVtLl9wYXJlbnQgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwgeyBzdHlsZTogc3R5bGVzUHJvcHMuYnV0dG9uLCBpY29uU3R5bGU6IHN0eWxlc1Byb3BzLmljb24sIGljb25DbGFzc05hbWU6IFwibWRpIG1kaS13aW5kb3ctcmVzdG9yZVwiLCB0b29sdGlwUG9zaXRpb246IFwiYm90dG9tLWxlZnRcIiwgdG9vbHRpcDogcHlkaW8uTWVzc2FnZUhhc2hbJzQxMSddLCBvblRvdWNoVGFwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHB5ZGlvLkNvbnRyb2xsZXIuZmlyZUFjdGlvbignb3Blbl9hZGRyZXNzX2Jvb2snKTtcbiAgICAgICAgICAgICAgICB9IH0pLFxuICAgICAgICAgICAgbW9kZSA9PT0gJ2Jvb2snICYmIGl0ZW0uYWN0aW9ucyAmJiBpdGVtLmFjdGlvbnMucmVtb3ZlICYmIHRoaXMuc3RhdGUuc2VsZWN0ICYmIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLlJhaXNlZEJ1dHRvbiwgeyBzZWNvbmRhcnk6IHRydWUsIGxhYmVsOiBnZXRNZXNzYWdlKGl0ZW0uYWN0aW9ucy5yZW1vdmUpLCBkaXNhYmxlZDogIXRoaXMuc3RhdGUuc2VsZWN0aW9uLmxlbmd0aCwgb25Ub3VjaFRhcDogZGVsZXRlQWN0aW9uIH0pLFxuICAgICAgICAgICAgIXRoaXMuc3RhdGUuc2VsZWN0ICYmIGFjdGlvbnNQYW5lbCxcbiAgICAgICAgICAgIGVuYWJsZVNlYXJjaCAmJiAhYm9va0NvbHVtbiAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfU2VhcmNoRm9ybTJbJ2RlZmF1bHQnXSwgeyBzZWFyY2hMYWJlbDogdGhpcy5wcm9wcy5zZWFyY2hMYWJlbCwgb25TZWFyY2g6IHRoaXMucHJvcHMub25TZWFyY2gsIHN0eWxlOiB7IGZsZXg6IDEsIG1pbldpZHRoOiAxMTAgfSB9KSxcbiAgICAgICAgICAgIHJlbG9hZEFjdGlvbiAmJiAobW9kZSA9PT0gJ2Jvb2snIHx8IG1vZGUgPT09ICdzZWxlY3RvcicgJiYgYm9va0NvbHVtbikgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwgeyBzdHlsZTogc3R5bGVzUHJvcHMuYnV0dG9uLCBpY29uU3R5bGU6IHN0eWxlc1Byb3BzLmljb24sIGljb25DbGFzc05hbWU6IFwibWRpIG1kaS1yZWZyZXNoXCIsIHRvb2x0aXBQb3NpdGlvbjogXCJib3R0b20tbGVmdFwiLCB0b29sdGlwOiBweWRpby5NZXNzYWdlSGFzaFsnMTQ5J10sIG9uVG91Y2hUYXA6IHJlbG9hZEFjdGlvbiwgZGlzYWJsZWQ6IGxvYWRpbmcgfSlcbiAgICAgICAgKTtcbiAgICAgICAgLy8gUEFSRU5UIE5PREVcbiAgICAgICAgaWYgKGl0ZW0uX3BhcmVudCAmJiBtb2RlID09PSAnYm9vaycgJiYgaXRlbS5fcGFyZW50Ll9wYXJlbnQgJiYgaXRlbS5fcGFyZW50LmlkICE9PSAndGVhbXMnKSB7XG4gICAgICAgICAgICBlbGVtZW50cy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkxpc3RJdGVtLCB7XG4gICAgICAgICAgICAgICAga2V5OiAnX19wYXJlbnRfXycsXG4gICAgICAgICAgICAgICAgcHJpbWFyeVRleHQ6IFwiLi5cIixcbiAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO190aGlzLnByb3BzLm9uRm9sZGVyQ2xpY2tlZChpdGVtLl9wYXJlbnQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbGVmdEF2YXRhcjogX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuQXZhdGFyLCB7IGljb246IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkZvbnRJY29uLCB7IGNsYXNzTmFtZTogJ21kaSBtZGktYXJyb3ctdXAnIH0pLCBzaXplOiAzNiB9KVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgaWYgKHRvdGFsKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5EaXZpZGVyLCB7IGluc2V0OiB0cnVlLCBrZXk6ICdwYXJlbnQtZGl2aWRlcicgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIElURU1TXG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkge1xuICAgICAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgICAgIGlmIChpdGVtLnN1YmhlYWRlcikge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlN1YmhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6IGl0ZW0uc3ViaGVhZGVyIH0sXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3ViaGVhZGVyXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGZvbnRJY29uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX2F2YXRhclVzZXJBdmF0YXIyWydkZWZhdWx0J10sIHsgYXZhdGFyU2l6ZTogMzYsIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvIHx8IHB5ZGlvLFxuICAgICAgICAgICAgICAgIHVzZXJJZDogaXRlbS5pZCxcbiAgICAgICAgICAgICAgICB1c2VyTGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgICAgICAgICAgYXZhdGFyOiBpdGVtLmF2YXRhcixcbiAgICAgICAgICAgICAgICBpY29uOiBpdGVtLmljb24sXG4gICAgICAgICAgICAgICAgaWRtVXNlcjogaXRlbS5JZG1Vc2VyLFxuICAgICAgICAgICAgICAgIHVzZXJUeXBlOiBpdGVtLnR5cGUgfHwgJ2dyb3VwJyxcbiAgICAgICAgICAgICAgICBhdmF0YXJPbmx5OiB0cnVlLFxuICAgICAgICAgICAgICAgIHVzZURlZmF1bHRBdmF0YXI6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIHJpZ2h0SWNvbkJ1dHRvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHZhciB0b3VjaFRhcCA9IGZ1bmN0aW9uIHRvdWNoVGFwKGUpIHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO190aGlzMi5wcm9wcy5vbkl0ZW1DbGlja2VkKGl0ZW0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChmb2xkZXJzLmluZGV4T2YoaXRlbSkgPiAtMSAmJiB0aGlzLnByb3BzLm9uRm9sZGVyQ2xpY2tlZCkge1xuICAgICAgICAgICAgICAgIHRvdWNoVGFwID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtfdGhpczIucHJvcHMub25Gb2xkZXJDbGlja2VkKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdzZWxlY3RvcicgJiYgIWl0ZW0uX25vdFNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHRJY29uQnV0dG9uID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuSWNvbkJ1dHRvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLWFjY291bnQtbXVsdGlwbGUtcGx1c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogXCJTZWxlY3QgdGhpcyBncm91cFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uOiAnYm90dG9tLWxlZnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFRhcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5wcm9wcy5vbkl0ZW1DbGlja2VkKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdpbm5lcicgJiYgdGhpcy5wcm9wcy5vbkRlbGV0ZUFjdGlvbikge1xuICAgICAgICAgICAgICAgIHJpZ2h0SWNvbkJ1dHRvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkljb25CdXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzTmFtZTogXCJtZGkgbWRpLWRlbGV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiBnZXRNZXNzYWdlKDI1NyksXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbjogJ2JvdHRvbS1sZWZ0JyxcbiAgICAgICAgICAgICAgICAgICAgaWNvblN0eWxlOiB7IGNvbG9yOiAncmdiYSgwLDAsMCwwLjEzKScsIGhvdmVyQ29sb3I6ICdyZ2JhKDAsMCwwLDAuNTMpJyB9LFxuICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIucHJvcHMub25EZWxldGVBY3Rpb24oX3RoaXMyLnByb3BzLml0ZW0sIFtpdGVtXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChib29rQ29sdW1uICYmIHRoaXMucHJvcHMuYWN0aW9uc0ZvckNlbGwgJiYgaXRlbS50eXBlKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVJdGVtcyA9IG5ldyBfYXZhdGFyQ2VsbEFjdGlvbnNSZW5kZXJlcjJbJ2RlZmF1bHQnXShweWRpbywgdGhpcy5wcm9wcy5hY3Rpb25zRm9yQ2VsbCwgbnVsbCwgaXRlbSkucmVuZGVySXRlbXMoKTtcbiAgICAgICAgICAgICAgICBpZiAobWVudUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByaWdodEljb25CdXR0b24gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLkljb25NZW51LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25CdXR0b25FbGVtZW50OiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5JY29uQnV0dG9uLCB7IGljb25DbGFzc05hbWU6ICdtZGkgbWRpLWRvdHMtdmVydGljYWwnLCBpY29uU3R5bGU6IHsgY29sb3I6ICdyZ2JhKDAsMCwwLC4zMyknIH0gfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0T3JpZ2luOiB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbjogeyBob3Jpem9udGFsOiAncmlnaHQnLCB2ZXJ0aWNhbDogJ3RvcCcgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0SWNvbkJ1dHRvbiA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGZ1bmN0aW9uIHNlbGVjdChlLCBjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2VsZWN0aW9uOiBbXS5jb25jYXQoX3RoaXMyLnN0YXRlLnNlbGVjdGlvbiwgW2l0ZW1dKSB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdGVTZWwgPSBfdGhpczIuc3RhdGUuc2VsZWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gW10uY29uY2F0KHN0YXRlU2VsLnNsaWNlKDAsIHN0YXRlU2VsLmluZGV4T2YoaXRlbSkpLCBzdGF0ZVNlbC5zbGljZShzdGF0ZVNlbC5pbmRleE9mKGl0ZW0pICsgMSkpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzZWxlY3Rpb246IHNlbGVjdGlvbiB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZWxlbWVudHMucHVzaChfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5MaXN0SXRlbSwge1xuICAgICAgICAgICAgICAgIGtleTogaXRlbS5pZCxcbiAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dDogaXRlbS5sYWJlbCxcbiAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiB0b3VjaFRhcCxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogbW9kZSA9PT0gJ2lubmVyJyxcbiAgICAgICAgICAgICAgICBsZWZ0QXZhdGFyOiAhdGhpcy5zdGF0ZS5zZWxlY3QgJiYgZm9udEljb24sXG4gICAgICAgICAgICAgICAgcmlnaHRJY29uQnV0dG9uOiByaWdodEljb25CdXR0b24sXG4gICAgICAgICAgICAgICAgbGVmdENoZWNrYm94OiB0aGlzLnN0YXRlLnNlbGVjdCAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5DaGVja2JveCwgeyBjaGVja2VkOiB0aGlzLnN0YXRlLnNlbGVjdGlvbi5pbmRleE9mKGl0ZW0pID4gLTEsIG9uQ2hlY2s6IHNlbGVjdCB9KVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgaWYgKG1vZGUgIT09ICdpbm5lcicgJiYgaW5kZXggPCB0b3RhbCAtIDEpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIHsgaW5zZXQ6IHRydWUsIGtleTogaXRlbS5pZCArICctZGl2aWRlcicgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcblxuICAgICAgICB2YXIgZW1wdHlTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBlbXB0eVN0YXRlUHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLCBtaW5IZWlnaHQ6IDMwMCB9LFxuICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWU6ICdtZGkgbWRpLWFjY291bnQtb2ZmJyxcbiAgICAgICAgICAgICAgICBwcmltYXJ5VGV4dElkOiB0aGlzLnByb3BzLmVtcHR5U3RhdGVQcmltYXJ5VGV4dCB8fCBnZXRNZXNzYWdlKDYyOSksXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5VGV4dElkOiBtb2RlID09PSAnYm9vaycgPyB0aGlzLnByb3BzLmVtcHR5U3RhdGVTZWNvbmRhcnlUZXh0IHx8IG51bGwgOiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdib29rJyAmJiBpdGVtLmFjdGlvbnMgJiYgaXRlbS5hY3Rpb25zLmNyZWF0ZSkge1xuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGVQcm9wcyA9IF9leHRlbmRzKHt9LCBlbXB0eVN0YXRlUHJvcHMsIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uTGFiZWxJZDogZ2V0TWVzc2FnZShpdGVtLmFjdGlvbnMuY3JlYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uQ2FsbGJhY2s6IGNyZWF0ZUFjdGlvblxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW1wdHlTdGF0ZSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF92aWV3c0VtcHR5U3RhdGVWaWV3MlsnZGVmYXVsdCddLCBlbXB0eVN0YXRlUHJvcHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDEsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBkaXNwbGF5OiAnZmxleCcgfSwgb25Ub3VjaFRhcDogdGhpcy5wcm9wcy5vblRvdWNoVGFwIH0sXG4gICAgICAgICAgICBtb2RlICE9PSAnaW5uZXInICYmICF0aGlzLnByb3BzLm5vVG9vbGJhciAmJiB0b29sYmFyLFxuICAgICAgICAgICAgIWVtcHR5U3RhdGUgJiYgIWxvYWRpbmcgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgX21hdGVyaWFsVWkuTGlzdCxcbiAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IGZsZXg6IDEsIG92ZXJmbG93WTogbW9kZSAhPT0gJ2lubmVyJyA/ICdhdXRvJyA6ICdpbml0aWFsJyB9IH0sXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5zdWJIZWFkZXIgJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIF9tYXRlcmlhbFVpLlN1YmhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5zdWJIZWFkZXJcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbG9hZGluZyAmJiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChMb2FkZXIsIHsgc3R5bGU6IHsgZmxleDogMSB9IH0pLFxuICAgICAgICAgICAgIWxvYWRpbmcgJiYgZW1wdHlTdGF0ZSxcbiAgICAgICAgICAgIG1vZGUgPT09ICdzZWxlY3RvcicgJiYgZW5hYmxlU2VhcmNoICYmIGJvb2tDb2x1bW4gJiYgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX1NlYXJjaEZvcm0yWydkZWZhdWx0J10sIHtcbiAgICAgICAgICAgICAgICBzZWFyY2hMYWJlbDogdGhpcy5wcm9wcy5zZWFyY2hMYWJlbCxcbiAgICAgICAgICAgICAgICBvblNlYXJjaDogdGhpcy5wcm9wcy5vblNlYXJjaCxcbiAgICAgICAgICAgICAgICBzdHlsZTogeyBwYWRkaW5nOiAnMCAyMHB4JywgbWluV2lkdGg6IG51bGwsIGJvcmRlclRvcDogJzFweCBzb2xpZCAjZTBlMGUwJyB9LFxuICAgICAgICAgICAgICAgIHVuZGVybGluZVNob3c6IGZhbHNlXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gVXNlcnNMaXN0O1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cblVzZXJzTGlzdC5wcm9wVHlwZXMgPSB7XG4gICAgaXRlbTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DcmVhdGVBY3Rpb246IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICBvbkRlbGV0ZUFjdGlvbjogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgIG9uSXRlbUNsaWNrZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICBvbkZvbGRlckNsaWNrZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICBvbkVkaXRMYWJlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgIG1vZGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMub25lT2YoWydib29rJywgJ3NlbGVjdG9yJywgJ2lubmVyJ10pLFxuICAgIGJvb2tDb2x1bW46IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbFxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlcnNMaXN0ID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoVXNlcnNMaXN0KTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVzZXJzTGlzdCA9IF9tYXRlcmlhbFVpU3R5bGVzLm11aVRoZW1lYWJsZSgpKFVzZXJzTGlzdCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVzZXJzTGlzdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfYWRkcmVzc2Jvb2tBZGRyZXNzQm9vayA9IHJlcXVpcmUoJy4uL2FkZHJlc3Nib29rL0FkZHJlc3NCb29rJyk7XG5cbnZhciBfYWRkcmVzc2Jvb2tBZGRyZXNzQm9vazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hZGRyZXNzYm9va0FkZHJlc3NCb29rKTtcblxudmFyIF9wb2xpY2llc1Jlc291cmNlUG9saWNpZXNQYW5lbCA9IHJlcXVpcmUoJy4uLy4uL3BvbGljaWVzL1Jlc291cmNlUG9saWNpZXNQYW5lbCcpO1xuXG52YXIgX3BvbGljaWVzUmVzb3VyY2VQb2xpY2llc1BhbmVsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3BvbGljaWVzUmVzb3VyY2VQb2xpY2llc1BhbmVsKTtcblxudmFyIFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbnZhciBQeWRpb0FwaSA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvYXBpJyk7XG52YXIgUmVzb3VyY2VzTWFuYWdlciA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvcmVzb3VyY2VzLW1hbmFnZXInKTtcblxudmFyIF9yZXF1aXJlID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIEljb25CdXR0b24gPSBfcmVxdWlyZS5JY29uQnV0dG9uO1xudmFyIFBvcG92ZXIgPSBfcmVxdWlyZS5Qb3BvdmVyO1xuXG52YXIgX3JlcXVpcmUyID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWkvc3R5bGVzJyk7XG5cbnZhciBtdWlUaGVtZWFibGUgPSBfcmVxdWlyZTIubXVpVGhlbWVhYmxlO1xuXG52YXIgX3JlcXVpcmUkcmVxdWlyZUxpYiA9IHJlcXVpcmUoJ3B5ZGlvJykucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfcmVxdWlyZSRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xudmFyIEFzeW5jQ29tcG9uZW50ID0gX3JlcXVpcmUkcmVxdWlyZUxpYi5Bc3luY0NvbXBvbmVudDtcblxudmFyIEFjdGlvbnNQYW5lbCA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhBY3Rpb25zUGFuZWwsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gQWN0aW9uc1BhbmVsKHByb3BzLCBjb250ZXh0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBY3Rpb25zUGFuZWwpO1xuXG4gICAgICAgIF9SZWFjdCRDb21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBzaG93UGlja2VyOiBmYWxzZSwgcGlja2VyQW5jaG9yOiBudWxsLFxuICAgICAgICAgICAgc2hvd01haWxlcjogZmFsc2UsIG1haWxlckFuY2hvcjogbnVsbCxcbiAgICAgICAgICAgIHNob3dQb2xpY2llczogZmFsc2UsIHBvbGljaWVzQW5jaG9yOiBudWxsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgQWN0aW9uc1BhbmVsLnByb3RvdHlwZS5vblRlYW1TZWxlY3RlZCA9IGZ1bmN0aW9uIG9uVGVhbVNlbGVjdGVkKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dQaWNrZXI6IGZhbHNlIH0pO1xuICAgICAgICBpZiAoaXRlbS5JZG1Sb2xlICYmIGl0ZW0uSWRtUm9sZS5Jc1RlYW0pIHtcbiAgICAgICAgICAgIFB5ZGlvQXBpLmdldFJlc3RDbGllbnQoKS5nZXRJZG1BcGkoKS5hZGRVc2VyVG9UZWFtKGl0ZW0uSWRtUm9sZS5VdWlkLCB0aGlzLnByb3BzLnVzZXJJZCwgdGhpcy5wcm9wcy5yZWxvYWRBY3Rpb24pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIEFjdGlvbnNQYW5lbC5wcm90b3R5cGUub25Vc2VyU2VsZWN0ZWQgPSBmdW5jdGlvbiBvblVzZXJTZWxlY3RlZChpdGVtKSB7XG4gICAgICAgIC8vdGhpcy5zZXRTdGF0ZSh7c2hvd1BpY2tlcjogZmFsc2V9KTtcbiAgICAgICAgUHlkaW9BcGkuZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLmFkZFVzZXJUb1RlYW0odGhpcy5wcm9wcy50ZWFtLmlkLCBpdGVtLklkbVVzZXIuTG9naW4sIHRoaXMucHJvcHMucmVsb2FkQWN0aW9uKTtcbiAgICB9O1xuXG4gICAgQWN0aW9uc1BhbmVsLnByb3RvdHlwZS5vcGVuUGlja2VyID0gZnVuY3Rpb24gb3BlblBpY2tlcihldmVudCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd1BpY2tlcjogdHJ1ZSwgcGlja2VyQW5jaG9yOiBldmVudC5jdXJyZW50VGFyZ2V0IH0pO1xuICAgIH07XG5cbiAgICBBY3Rpb25zUGFuZWwucHJvdG90eXBlLm9wZW5Qb2xpY2llcyA9IGZ1bmN0aW9uIG9wZW5Qb2xpY2llcyhldmVudCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd1BvbGljaWVzOiB0cnVlLCBwb2xpY2llc0FuY2hvcjogZXZlbnQuY3VycmVudFRhcmdldCB9KTtcbiAgICB9O1xuXG4gICAgQWN0aW9uc1BhbmVsLnByb3RvdHlwZS5vcGVuTWFpbGVyID0gZnVuY3Rpb24gb3Blbk1haWxlcihldmVudCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciB0YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICBSZXNvdXJjZXNNYW5hZ2VyLmxvYWRDbGFzc2VzQW5kQXBwbHkoWydQeWRpb01haWxlciddLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG1haWxlckxpYkxvYWRlZDogdHJ1ZSB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBzaG93TWFpbGVyOiB0cnVlLCBtYWlsZXJBbmNob3I6IHRhcmdldCB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgQWN0aW9uc1BhbmVsLnByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGUgPSBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmxvY2tPblN1YlBvcG92ZXJPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0aGlzLnN0YXRlLnNob3dQaWNrZXIgfHwgdGhpcy5zdGF0ZS5zaG93TWFpbGVyKSAmJiAhKHByZXZTdGF0ZS5zaG93UGlja2VyIHx8IHByZXZTdGF0ZS5zaG93TWFpbGVyKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5sb2NrT25TdWJQb3BvdmVyT3Blbih0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmICghKHRoaXMuc3RhdGUuc2hvd1BpY2tlciB8fCB0aGlzLnN0YXRlLnNob3dNYWlsZXIpICYmIChwcmV2U3RhdGUuc2hvd1BpY2tlciB8fCBwcmV2U3RhdGUuc2hvd01haWxlcikpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMubG9ja09uU3ViUG9wb3Zlck9wZW4oZmFsc2UpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIEFjdGlvbnNQYW5lbC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGdldE1lc3NhZ2UgPSBfcHJvcHMuZ2V0TWVzc2FnZTtcbiAgICAgICAgdmFyIG11aVRoZW1lID0gX3Byb3BzLm11aVRoZW1lO1xuICAgICAgICB2YXIgdGVhbSA9IF9wcm9wcy50ZWFtO1xuICAgICAgICB2YXIgdXNlciA9IF9wcm9wcy51c2VyO1xuICAgICAgICB2YXIgdXNlckVkaXRhYmxlID0gX3Byb3BzLnVzZXJFZGl0YWJsZTtcbiAgICAgICAgdmFyIHVzZXJJZCA9IF9wcm9wcy51c2VySWQ7XG4gICAgICAgIHZhciBzdHlsZSA9IF9wcm9wcy5zdHlsZTtcbiAgICAgICAgdmFyIHpEZXB0aCA9IF9wcm9wcy56RGVwdGg7XG5cbiAgICAgICAgdmFyIHN0eWxlcyA9IHtcbiAgICAgICAgICAgIGJ1dHRvbjoge1xuICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZENvbG9yOiBtdWlUaGVtZS5wYWxldHRlLmFjY2VudDJDb2xvcixcbiAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgJyArIG11aVRoZW1lLnBhbGV0dGUuYWNjZW50MkNvbG9yLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAnMCA0cHgnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAzNixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM2LFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgICAgZm9udFNpemU6IDIyLFxuICAgICAgICAgICAgICAgIC8vY29sb3I6ICd3aGl0ZSdcbiAgICAgICAgICAgICAgICBjb2xvcjogbXVpVGhlbWUucGFsZXR0ZS5hY2NlbnQyQ29sb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdmFyIHVzZXJtYWlscyA9IHt9O1xuICAgICAgICB2YXIgYWN0aW9ucyA9IFtdO1xuICAgICAgICB2YXIgcmVzb3VyY2VUeXBlID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgcmVzb3VyY2VJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHVzZXIgJiYgdXNlci5oYXNFbWFpbCkge1xuICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHsga2V5OiAnbWVzc2FnZScsIGxhYmVsOiBnZXRNZXNzYWdlKDU5OCksIGljb246ICdlbWFpbCcsIGNhbGxiYWNrOiB0aGlzLm9wZW5NYWlsZXIuYmluZCh0aGlzKSB9KTtcbiAgICAgICAgICAgIHVzZXJtYWlsc1t1c2VyLmlkXSA9IFB5ZGlvVXNlcnMuVXNlci5mcm9tT2JqZWN0KHVzZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0ZWFtKSB7XG4gICAgICAgICAgICByZXNvdXJjZVR5cGUgPSAndGVhbSc7XG4gICAgICAgICAgICByZXNvdXJjZUlkID0gdGVhbS5pZDtcbiAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7IGtleTogJ3VzZXJzJywgbGFiZWw6IGdldE1lc3NhZ2UoNTk5KSwgaWNvbjogJ2FjY291bnQtbXVsdGlwbGUtcGx1cycsIGNhbGxiYWNrOiB0aGlzLm9wZW5QaWNrZXIuYmluZCh0aGlzKSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc291cmNlVHlwZSA9ICd1c2VyJztcbiAgICAgICAgICAgIHJlc291cmNlSWQgPSB1c2VySWQ7XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2goeyBrZXk6ICd0ZWFtcycsIGxhYmVsOiBnZXRNZXNzYWdlKDU3MyksIGljb246ICdhY2NvdW50LW11bHRpcGxlLXBsdXMnLCBjYWxsYmFjazogdGhpcy5vcGVuUGlja2VyLmJpbmQodGhpcykgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFZGl0YWJsZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25FZGl0QWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHsga2V5OiAnZWRpdCcsIGxhYmVsOiB0aGlzLnByb3BzLnRlYW0gPyBnZXRNZXNzYWdlKDU4MCkgOiBnZXRNZXNzYWdlKDYwMCksIGljb246ICdwZW5jaWwnLCBjYWxsYmFjazogdGhpcy5wcm9wcy5vbkVkaXRBY3Rpb24gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY3Rpb25zLnB1c2goeyBrZXk6ICdwb2xpY2llcycsIGxhYmVsOiAnVmlzaWJpbGl0eScsIGljb246ICdzZWN1cml0eScsIGNhbGxiYWNrOiB0aGlzLm9wZW5Qb2xpY2llcy5iaW5kKHRoaXMpIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25EZWxldGVBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goeyBrZXk6ICdkZWxldGUnLCBsYWJlbDogdGhpcy5wcm9wcy50ZWFtID8gZ2V0TWVzc2FnZSg1NzApIDogZ2V0TWVzc2FnZSg1ODIpLCBpY29uOiAnZGVsZXRlJywgY2FsbGJhY2s6IHRoaXMucHJvcHMub25EZWxldGVBY3Rpb24gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBzdHlsZTogX2V4dGVuZHMoeyB0ZXh0QWxpZ246ICdjZW50ZXInLCBwYWRkaW5nVG9wOiAxMCwgcGFkZGluZ0JvdHRvbTogMTAsIGJvcmRlclRvcDogJzFweCBzb2xpZCAjZTBlMGUwJywgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMGUwZTAnIH0sIHN0eWxlKSB9LFxuICAgICAgICAgICAgYWN0aW9ucy5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChJY29uQnV0dG9uLCB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogYS5rZXksXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiBzdHlsZXMuYnV0dG9uLFxuICAgICAgICAgICAgICAgICAgICBpY29uU3R5bGU6IHN0eWxlcy5pY29uLFxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiBhLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lOiBcIm1kaSBtZGktXCIgKyBhLmljb24sXG4gICAgICAgICAgICAgICAgICAgIG9uVG91Y2hUYXA6IGEuY2FsbGJhY2tcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBQb3BvdmVyLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb3BlbjogdGhpcy5zdGF0ZS5zaG93UGlja2VyLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JFbDogdGhpcy5zdGF0ZS5waWNrZXJBbmNob3IsXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbjogeyBob3Jpem9udGFsOiAncmlnaHQnLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0T3JpZ2luOiB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd1BpY2tlcjogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHVzZUxheWVyRm9yQ2xpY2tBd2F5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgekluZGV4OiAyMjAwIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IHN0eWxlOiB7IHdpZHRoOiAyNTYsIGhlaWdodDogMzIwIH0gfSxcbiAgICAgICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfYWRkcmVzc2Jvb2tBZGRyZXNzQm9vazJbJ2RlZmF1bHQnXSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogJ3NlbGVjdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB5ZGlvOiB0aGlzLnByb3BzLnB5ZGlvLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyU3R5bGU6IHsgd2lkdGg6IDMyMCwgaGVpZ2h0OiA0MjAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uSXRlbVNlbGVjdGVkOiB0aGlzLnByb3BzLnRlYW0gPyB0aGlzLm9uVXNlclNlbGVjdGVkLmJpbmQodGhpcykgOiB0aGlzLm9uVGVhbVNlbGVjdGVkLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZWFtc09ubHk6ICF0aGlzLnByb3BzLnRlYW0sXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2Vyc09ubHk6ICEhdGhpcy5wcm9wcy50ZWFtXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgUG9wb3ZlcixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW46IHRoaXMuc3RhdGUuc2hvd01haWxlcixcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IHRoaXMuc3RhdGUubWFpbGVyQW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW46IHsgaG9yaXpvbnRhbDogJ3JpZ2h0JywgdmVydGljYWw6ICd0b3AnIH0sXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiAncmlnaHQnLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgdXNlTGF5ZXJGb3JDbGlja0F3YXk6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyB6SW5kZXg6IDIyMDAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHsgd2lkdGg6IDI1NiwgaGVpZ2h0OiAzMjAgfSB9LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLm1haWxlckxpYkxvYWRlZCAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KEFzeW5jQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2U6ICdQeWRpb01haWxlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiAnUGFuZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB6RGVwdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lbFRpdGxlOiBnZXRNZXNzYWdlKDU5OCksXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVVc2VyU3R5bGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyczogdXNlcm1haWxzLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25EaXNtaXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd01haWxlcjogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgb25GaWVsZEZvY3VzOiB0aGlzLnByb3BzLm90aGVyUG9wb3Zlck1vdXNlT3ZlclxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFBvcG92ZXIsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcGVuOiB0aGlzLnN0YXRlLnNob3dQb2xpY2llcyxcbiAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IHRoaXMuc3RhdGUucG9saWNpZXNBbmNob3IsXG4gICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbjogeyBob3Jpem9udGFsOiAncmlnaHQnLCB2ZXJ0aWNhbDogJ3RvcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0T3JpZ2luOiB7IGhvcml6b250YWw6ICdyaWdodCcsIHZlcnRpY2FsOiAndG9wJyB9LFxuICAgICAgICAgICAgICAgICAgICB1c2VMYXllckZvckNsaWNrQXdheTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHpJbmRleDogMjAwMCB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogeyB3aWR0aDogMjU2LCBoZWlnaHQ6IDMyMCB9IH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX3BvbGljaWVzUmVzb3VyY2VQb2xpY2llc1BhbmVsMlsnZGVmYXVsdCddLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBweWRpbzogdGhpcy5wcm9wcy5weWRpbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZTogcmVzb3VyY2VUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VJZDogcmVzb3VyY2VJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRGlzbWlzczogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNob3dQb2xpY2llczogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gQWN0aW9uc1BhbmVsO1xufSkoUmVhY3QuQ29tcG9uZW50KTtcblxuQWN0aW9uc1BhbmVsLnByb3BUeXBlcyA9IHtcblxuICAgIC8qKlxuICAgICAqIFVzZXIgZGF0YSwgcHJvcHMgbXVzdCBwYXNzIGF0IGxlYXN0IG9uZSBvZiAndXNlcicgb3IgJ3RlYW0nXG4gICAgICovXG4gICAgdXNlcjogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICAvKipcbiAgICAgKiBUZWFtIGRhdGEsIHByb3BzIG11c3QgcGFzcyBhdCBsZWFzdCBvbmUgb2YgJ3VzZXInIG9yICd0ZWFtJ1xuICAgICAqL1xuICAgIHRlYW06IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgLyoqXG4gICAgICogRm9yIHVzZXJzLCB3aGV0aGVyIGl0IGlzIGVkaXRhYmxlIG9yIG5vdFxuICAgICAqL1xuICAgIHVzZXJFZGl0YWJsZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdFxuXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBBY3Rpb25zUGFuZWwgPSBQeWRpb0NvbnRleHRDb25zdW1lcihBY3Rpb25zUGFuZWwpO1xuZXhwb3J0c1snZGVmYXVsdCddID0gQWN0aW9uc1BhbmVsID0gbXVpVGhlbWVhYmxlKCkoQWN0aW9uc1BhbmVsKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQWN0aW9uc1BhbmVsO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBfcHlkaW9Nb2RlbElkbU9iamVjdEhlbHBlciA9IHJlcXVpcmUoJ3B5ZGlvL21vZGVsL2lkbS1vYmplY3QtaGVscGVyJyk7XG5cbnZhciBfcHlkaW9Nb2RlbElkbU9iamVjdEhlbHBlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyKTtcblxudmFyIF9weWRpb01vZGVsQ2VsbCA9IHJlcXVpcmUoJ3B5ZGlvL21vZGVsL2NlbGwnKTtcblxudmFyIF9weWRpb01vZGVsQ2VsbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb01vZGVsQ2VsbCk7XG5cbnZhciBDZWxsQWN0aW9uc1JlbmRlcmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDZWxsQWN0aW9uc1JlbmRlcmVyKHB5ZGlvLCBjZWxsTW9kZWwsIGFjbCkge1xuICAgICAgICB2YXIgYWRkcmVzc0Jvb2tJdGVtID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1szXTtcblxuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ2VsbEFjdGlvbnNSZW5kZXJlcik7XG5cbiAgICAgICAgdGhpcy5wcm9wcyA9IHsgcHlkaW86IHB5ZGlvLCBjZWxsTW9kZWw6IGNlbGxNb2RlbCwgYWNsOiBhY2wsIGFkZHJlc3NCb29rSXRlbTogYWRkcmVzc0Jvb2tJdGVtIH07XG4gICAgfVxuXG4gICAgQ2VsbEFjdGlvbnNSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlQ2VsbCA9IGZ1bmN0aW9uIGNyZWF0ZUNlbGwoKSB7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgYWRkcmVzc0Jvb2tJdGVtID0gX3Byb3BzLmFkZHJlc3NCb29rSXRlbTtcbiAgICAgICAgdmFyIHB5ZGlvID0gX3Byb3BzLnB5ZGlvO1xuXG4gICAgICAgIHZhciBtID0gcHlkaW8uTWVzc2FnZUhhc2g7XG5cbiAgICAgICAgdmFyIGlkbU9iamVjdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGFkZHJlc3NCb29rSXRlbS5JZG1Vc2VyKSB7XG4gICAgICAgICAgICBpZG1PYmplY3QgPSBhZGRyZXNzQm9va0l0ZW0uSWRtVXNlcjtcbiAgICAgICAgfSBlbHNlIGlmIChhZGRyZXNzQm9va0l0ZW0uSWRtUm9sZSkge1xuICAgICAgICAgICAgaWRtT2JqZWN0ID0gYWRkcmVzc0Jvb2tJdGVtLklkbVJvbGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkbU9iamVjdCkge1xuICAgICAgICAgICAgcHlkaW8udXNlci5nZXRJZG1Vc2VyKCkudGhlbihmdW5jdGlvbiAobG9nZ2VkVXNlcikge1xuXG4gICAgICAgICAgICAgICAgdmFyIGxvZ2dlZExhYmVsID0gX3B5ZGlvTW9kZWxJZG1PYmplY3RIZWxwZXIyWydkZWZhdWx0J10uZXh0cmFjdExhYmVsRnJvbUlkbU9iamVjdChsb2dnZWRVc2VyKTtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0TGFiZWwgPSBfcHlkaW9Nb2RlbElkbU9iamVjdEhlbHBlcjJbJ2RlZmF1bHQnXS5leHRyYWN0TGFiZWxGcm9tSWRtT2JqZWN0KGFkZHJlc3NCb29rSXRlbS5JZG1Vc2VyIHx8IGFkZHJlc3NCb29rSXRlbS5JZG1Sb2xlKTtcblxuICAgICAgICAgICAgICAgIHZhciBtb2RlbCA9IG5ldyBfcHlkaW9Nb2RlbENlbGwyWydkZWZhdWx0J10oKTtcbiAgICAgICAgICAgICAgICBtb2RlbC5zZXRMYWJlbChsb2dnZWRMYWJlbCArIFwiLCBcIiArIHRhcmdldExhYmVsKTtcbiAgICAgICAgICAgICAgICBtb2RlbC5zZXREZXNjcmlwdGlvbihcIkNyZWF0ZWQgYnkgXCIgKyBsb2dnZWRMYWJlbCk7XG4gICAgICAgICAgICAgICAgbW9kZWwuYWRkVXNlcihpZG1PYmplY3QpO1xuICAgICAgICAgICAgICAgIG1vZGVsLnNhdmUoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcHlkaW8uVUkuZGlzcGxheU1lc3NhZ2UoJ1NVQ0NFU1MnLCBtWyc2NDMnXS5yZXBsYWNlKCclcycsIHRhcmdldExhYmVsKSk7XG4gICAgICAgICAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgICAgICAgICAgICBweWRpby5VSS5kaXNwbGF5TWVzc2FnZSgnRVJST1InLCBtWyc2NDQnXS5yZXBsYWNlKCclcycsIHJlYXNvbi5tZXNzYWdlKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBDZWxsQWN0aW9uc1JlbmRlcmVyLnByb3RvdHlwZS5hZGRUb0NlbGwgPSBmdW5jdGlvbiBhZGRUb0NlbGwoKSB7XG4gICAgICAgIHZhciBpZG1PYmplY3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIGFkZHJlc3NCb29rSXRlbSA9IF9wcm9wczIuYWRkcmVzc0Jvb2tJdGVtO1xuICAgICAgICB2YXIgY2VsbE1vZGVsID0gX3Byb3BzMi5jZWxsTW9kZWw7XG5cbiAgICAgICAgaWYgKGFkZHJlc3NCb29rSXRlbS5JZG1Vc2VyKSB7XG4gICAgICAgICAgICBpZG1PYmplY3QgPSBhZGRyZXNzQm9va0l0ZW0uSWRtVXNlcjtcbiAgICAgICAgfSBlbHNlIGlmIChhZGRyZXNzQm9va0l0ZW0uSWRtUm9sZSkge1xuICAgICAgICAgICAgaWRtT2JqZWN0ID0gYWRkcmVzc0Jvb2tJdGVtLklkbVJvbGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkbU9iamVjdCkge1xuICAgICAgICAgICAgY2VsbE1vZGVsLmFkZFVzZXIoaWRtT2JqZWN0KTtcbiAgICAgICAgICAgIGNlbGxNb2RlbC5zYXZlKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQ2VsbEFjdGlvbnNSZW5kZXJlci5wcm90b3R5cGUucmVtb3ZlRnJvbUNlbGwgPSBmdW5jdGlvbiByZW1vdmVGcm9tQ2VsbCgpIHtcbiAgICAgICAgdmFyIF9wcm9wczMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgYWNsID0gX3Byb3BzMy5hY2w7XG4gICAgICAgIHZhciBjZWxsTW9kZWwgPSBfcHJvcHMzLmNlbGxNb2RlbDtcblxuICAgICAgICBjZWxsTW9kZWwucmVtb3ZlVXNlcihhY2wuUm9sZUlkKTtcbiAgICAgICAgY2VsbE1vZGVsLnNhdmUoKTtcbiAgICB9O1xuXG4gICAgQ2VsbEFjdGlvbnNSZW5kZXJlci5wcm90b3R5cGUucmVuZGVySXRlbXMgPSBmdW5jdGlvbiByZW5kZXJJdGVtcygpIHtcbiAgICAgICAgdmFyIF9wcm9wczQgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHM0LnB5ZGlvO1xuICAgICAgICB2YXIgY2VsbE1vZGVsID0gX3Byb3BzNC5jZWxsTW9kZWw7XG4gICAgICAgIHZhciBhY2wgPSBfcHJvcHM0LmFjbDtcbiAgICAgICAgdmFyIGFkZHJlc3NCb29rSXRlbSA9IF9wcm9wczQuYWRkcmVzc0Jvb2tJdGVtO1xuXG4gICAgICAgIHZhciBtID0gcHlkaW8uTWVzc2FnZUhhc2g7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY3VycmVudCB1c2VyIGl0IHRoZSBsb2dnZWQgb25lXG4gICAgICAgIHZhciBpc0xvZ2dlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGFjbCkge1xuICAgICAgICAgICAgaXNMb2dnZWQgPSBhY2wuVXNlciAmJiBhY2wuVXNlci5Mb2dpbiA9PT0gcHlkaW8udXNlci5pZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlzTG9nZ2VkID0gdXNlclR5cGUgPT09ICd1c2VyJyAmJiBweWRpby51c2VyLmlkID09PSB1c2VySWQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGl0ZW1zID0gW107XG4gICAgICAgIGlmIChpc0xvZ2dlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1c2VySWQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGFkZHJlc3NCb29rSXRlbSkge1xuICAgICAgICAgICAgdXNlcklkID0gYWRkcmVzc0Jvb2tJdGVtLmlkO1xuICAgICAgICAgICAgdXNlclR5cGUgPSBhZGRyZXNzQm9va0l0ZW0udHlwZTtcbiAgICAgICAgICAgIGlmICh1c2VyVHlwZSA9PT0gJ2dyb3VwJyAmJiBhZGRyZXNzQm9va0l0ZW0uSWRtUm9sZSkge1xuICAgICAgICAgICAgICAgIHVzZXJJZCA9IGFkZHJlc3NCb29rSXRlbS5JZG1Sb2xlLlV1aWQ7dXNlclR5cGUgPSAndGVhbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYWNsKSB7XG4gICAgICAgICAgICBsYWJlbCA9IF9weWRpb01vZGVsSWRtT2JqZWN0SGVscGVyMlsnZGVmYXVsdCddLmV4dHJhY3RMYWJlbChweWRpbywgYWNsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsID0gYWRkcmVzc0Jvb2tJdGVtLmxhYmVsO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNwZWNpYWwgY2FzZSBjZWxsTW9kZWwgaXMgXCJUUlVFXCIsIG5vdCBhIHJlYWwgY2VsbCBtb2RlbFxuICAgICAgICBpZiAoY2VsbE1vZGVsID09PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAocHlkaW8uZ2V0UGx1Z2luQ29uZmlncyhcImF1dGhcIikuZ2V0KFwiVVNFUl9DUkVBVEVfQ0VMTFNcIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1JlYWN0LmNyZWF0ZUVsZW1lbnQoX21hdGVyaWFsVWkuTWVudUl0ZW0sIHsgcHJpbWFyeVRleHQ6IG1bJzY0MCddLnJlcGxhY2UoJyVzJywgbGFiZWwpLCBvblRvdWNoVGFwOiB0aGlzLmNyZWF0ZUNlbGwuYmluZCh0aGlzKSB9KV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjYW5Xcml0ZSA9IGNlbGxNb2RlbC5pc0VkaXRhYmxlKCk7XG4gICAgICAgIC8vIENoZWNrIGlmIGN1cnJlbnQgYWNsIG9yIHVzZXJJZC91c2VyVHlwZSBpcyBpbiBjZWxsXG4gICAgICAgIHZhciBhY2xzID0gY2VsbE1vZGVsLmdldEFjbHMoKTtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdXNlciBpcyBhbHJlYWR5IGluIHRoZSBjdXJyZW50IGNlbGxcbiAgICAgICAgdmFyIGlzSW5DdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICBPYmplY3Qua2V5cyhhY2xzKS5tYXAoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICAgIHZhciBjZWxsQWNsID0gYWNsc1trXTtcbiAgICAgICAgICAgIHZhciBjcnQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoYWNsKSB7XG4gICAgICAgICAgICAgICAgY3J0ID0gYWNsLlJvbGVJZCA9PT0gY2VsbEFjbC5Sb2xlSWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNydCA9IHVzZXJUeXBlID09PSAndXNlcicgJiYgY2VsbEFjbC5Vc2VyICYmIGNlbGxBY2wuVXNlci5Mb2dpbiA9PT0gdXNlcklkIHx8IHVzZXJUeXBlID09PSAnZ3JvdXAnICYmIGNlbGxBY2wuR3JvdXAgJiYgY2VsbEFjbC5Hcm91cC5VdWlkID09PSB1c2VySWQgfHwgdXNlclR5cGUgPT09ICd0ZWFtJyAmJiBjZWxsQWNsLlJvbGUgJiYgY2VsbEFjbC5Sb2xlLlV1aWQgPT09IHVzZXJJZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjcnQpIHtcbiAgICAgICAgICAgICAgICBpc0luQ3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpc0luQ3VycmVudCkge1xuICAgICAgICAgICAgaXRlbXMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLk1lbnVJdGVtLCB7IHByaW1hcnlUZXh0OiBtWyc2NDEnXSwgZGlzYWJsZWQ6ICFjYW5Xcml0ZSwgb25Ub3VjaFRhcDogdGhpcy5yZW1vdmVGcm9tQ2VsbC5iaW5kKHRoaXMpIH0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5NZW51SXRlbSwgeyBwcmltYXJ5VGV4dDogbVsnNjQyJ10sIGRpc2FibGVkOiAhY2FuV3JpdGUsIG9uVG91Y2hUYXA6IHRoaXMuYWRkVG9DZWxsLmJpbmQodGhpcykgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChweWRpby5nZXRQbHVnaW5Db25maWdzKFwiYXV0aFwiKS5nZXQoXCJVU0VSX0NSRUFURV9DRUxMU1wiKSkge1xuICAgICAgICAgICAgaXRlbXMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLkRpdmlkZXIsIG51bGwpLCBSZWFjdC5jcmVhdGVFbGVtZW50KF9tYXRlcmlhbFVpLk1lbnVJdGVtLCB7IHByaW1hcnlUZXh0OiBtWyc2NDAnXS5yZXBsYWNlKCclcycsIGxhYmVsKSwgb25Ub3VjaFRhcDogdGhpcy5jcmVhdGVDZWxsLmJpbmQodGhpcykgfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH07XG5cbiAgICByZXR1cm4gQ2VsbEFjdGlvbnNSZW5kZXJlcjtcbn0pKCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IENlbGxBY3Rpb25zUmVuZGVyZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2FkZHJlc3Nib29rVXNlcnNMaXN0ID0gcmVxdWlyZSgnLi4vYWRkcmVzc2Jvb2svVXNlcnNMaXN0Jyk7XG5cbnZhciBfYWRkcmVzc2Jvb2tVc2Vyc0xpc3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYWRkcmVzc2Jvb2tVc2Vyc0xpc3QpO1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgQ29tcG9uZW50ID0gX3JlcXVpcmUuQ29tcG9uZW50O1xuXG52YXIgX3JlcXVpcmUyID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIERpdmlkZXIgPSBfcmVxdWlyZTIuRGl2aWRlcjtcbnZhciBTdWJoZWFkZXIgPSBfcmVxdWlyZTIuU3ViaGVhZGVyO1xudmFyIExpc3QgPSBfcmVxdWlyZTIuTGlzdDtcbnZhciBMaXN0SXRlbSA9IF9yZXF1aXJlMi5MaXN0SXRlbTtcbnZhciBGb250SWNvbiA9IF9yZXF1aXJlMi5Gb250SWNvbjtcbnZhciBBdmF0YXIgPSBfcmVxdWlyZTIuQXZhdGFyO1xuXG52YXIgUHlkaW9BcGkgPSByZXF1aXJlKCdweWRpby9odHRwL2FwaScpO1xuXG52YXIgX3JlcXVpcmUkcmVxdWlyZUxpYiA9IHJlcXVpcmUoJ3B5ZGlvJykucmVxdWlyZUxpYignYm9vdCcpO1xuXG52YXIgUHlkaW9Db250ZXh0Q29uc3VtZXIgPSBfcmVxdWlyZSRyZXF1aXJlTGliLlB5ZGlvQ29udGV4dENvbnN1bWVyO1xuXG4vKipcbiAqIERpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgdXNlciBvciB0ZWFtIHJlbGF0aW9uc1xuICovXG5cbnZhciBHcmFwaFBhbmVsID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKEdyYXBoUGFuZWwsIF9Db21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gR3JhcGhQYW5lbCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEdyYXBoUGFuZWwpO1xuXG4gICAgICAgIF9Db21wb25lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBHcmFwaFBhbmVsLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgZ3JhcGggPSBfcHJvcHMuZ3JhcGg7XG4gICAgICAgIHZhciB1c2VyTGFiZWwgPSBfcHJvcHMudXNlckxhYmVsO1xuICAgICAgICB2YXIgcHlkaW8gPSBfcHJvcHMucHlkaW87XG4gICAgICAgIHZhciBnZXRNZXNzYWdlID0gX3Byb3BzLmdldE1lc3NhZ2U7XG5cbiAgICAgICAgdmFyIGVsZW1lbnRzID0gW107XG4gICAgICAgIGlmIChncmFwaC50ZWFtcyAmJiBncmFwaC50ZWFtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciBvbkRlbGV0ZUFjdGlvbiA9IChmdW5jdGlvbiAocGFyZW50SXRlbSwgdGVhbSkge1xuICAgICAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgICAgICAgICBQeWRpb0FwaS5nZXRSZXN0Q2xpZW50KCkuZ2V0SWRtQXBpKCkucmVtb3ZlVXNlckZyb21UZWFtKHRlYW1bMF0uaWQsIHRoaXMucHJvcHMudXNlcklkLCBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHB5ZGlvLlVJLmRpc3BsYXlNZXNzYWdlKCdTVUNDRVNTJywgcmVzcG9uc2UubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgX3RoaXMucHJvcHMucmVsb2FkQWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgZWxlbWVudHMucHVzaChSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsga2V5OiAndGVhbXMnIH0sXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChfYWRkcmVzc2Jvb2tVc2Vyc0xpc3QyWydkZWZhdWx0J10sIHsgc3ViSGVhZGVyOiBnZXRNZXNzYWdlKDU4MSkucmVwbGFjZSgnJXMnLCBncmFwaC50ZWFtcy5sZW5ndGgpLCBvbkl0ZW1DbGlja2VkOiBmdW5jdGlvbiAoKSB7fSwgaXRlbTogeyBsZWFmczogZ3JhcGgudGVhbXMgfSwgbW9kZTogJ2lubmVyJywgb25EZWxldGVBY3Rpb246IG9uRGVsZXRlQWN0aW9uIH0pXG4gICAgICAgICAgICApKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ3JhcGguY2VsbHMpIHtcbiAgICAgICAgICAgIHZhciBjZWxscyA9IE9iamVjdC52YWx1ZXMoZ3JhcGguY2VsbHMpLmZpbHRlcihmdW5jdGlvbiAoY2VsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjZWxsLlNjb3BlID09PSBcIlJPT01cIjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGNlbGxzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLmxlbmd0aCA/IFJlYWN0LmNyZWF0ZUVsZW1lbnQoRGl2aWRlciwgbnVsbCkgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgU3ViaGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxzLmxlbmd0aCA9PT0gMSA/IGdldE1lc3NhZ2UoJzYwMScpIDogZ2V0TWVzc2FnZSgnNjAyJykucmVwbGFjZSgnJTEnLCBjZWxscy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBMaXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxzLm1hcChmdW5jdGlvbiAoY2VsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KExpc3RJdGVtLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRBdmF0YXI6IFJlYWN0LmNyZWF0ZUVsZW1lbnQoQXZhdGFyLCB7IGljb246IFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9udEljb24sIHsgY2xhc3NOYW1lOiAnbWRpIG1kaS1zaGFyZS12YXJpYW50JyB9KSwgYmFja2dyb3VuZENvbG9yOiBcIiMwMDk2ODhcIiwgc2l6ZTogMzYgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUZXh0OiBjZWxsLkxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRvdWNoVGFwOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweWRpby50cmlnZ2VyUmVwb3NpdG9yeUNoYW5nZShjZWxsLlVVSUQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgZWxlbWVudHNcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEdyYXBoUGFuZWw7XG59KShDb21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBHcmFwaFBhbmVsID0gUHlkaW9Db250ZXh0Q29uc3VtZXIoR3JhcGhQYW5lbCk7XG5leHBvcnRzWydkZWZhdWx0J10gPSBHcmFwaFBhbmVsO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMob2JqLCBrZXlzKSB7IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIgaSBpbiBvYmopIHsgaWYgKGtleXMuaW5kZXhPZihpKSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7IHRhcmdldFtpXSA9IG9ialtpXTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX0dyYXBoUGFuZWwgPSByZXF1aXJlKCcuL0dyYXBoUGFuZWwnKTtcblxudmFyIF9HcmFwaFBhbmVsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0dyYXBoUGFuZWwpO1xuXG52YXIgX0FjdGlvbnNQYW5lbCA9IHJlcXVpcmUoJy4vQWN0aW9uc1BhbmVsJyk7XG5cbnZhciBfQWN0aW9uc1BhbmVsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0FjdGlvbnNQYW5lbCk7XG5cbnZhciBfcHlkaW9IdHRwQXBpID0gcmVxdWlyZShcInB5ZGlvL2h0dHAvYXBpXCIpO1xuXG52YXIgX3B5ZGlvSHR0cEFwaTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9weWRpb0h0dHBBcGkpO1xuXG4vKipcbiAqIEdlbmVyaWMgY29tcG9uZW50IGZvciBkaXNwbGF5IGEgdXNlciBhbmQgaGVyIGF2YXRhciAoZmlyc3QgbGV0dGVycyBvciBwaG90bylcbiAqL1xuXG52YXIgZGVib3VuY2UgPSByZXF1aXJlKCdsb2Rhc2guZGVib3VuY2UnKTtcbnZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG52YXIgQ29sb3IgPSByZXF1aXJlKCdjb2xvcicpO1xuXG52YXIgX3JlcXVpcmUgPSByZXF1aXJlKCdtYXRlcmlhbC11aScpO1xuXG52YXIgRm9udEljb24gPSBfcmVxdWlyZS5Gb250SWNvbjtcbnZhciBQb3BvdmVyID0gX3JlcXVpcmUuUG9wb3ZlcjtcbnZhciBQYXBlciA9IF9yZXF1aXJlLlBhcGVyO1xudmFyIEF2YXRhciA9IF9yZXF1aXJlLkF2YXRhcjtcbnZhciBDYXJkVGl0bGUgPSBfcmVxdWlyZS5DYXJkVGl0bGU7XG52YXIgRGl2aWRlciA9IF9yZXF1aXJlLkRpdmlkZXI7XG5cbnZhciBfcmVxdWlyZTIgPSByZXF1aXJlKCdtYXRlcmlhbC11aS9zdHlsZXMnKTtcblxudmFyIG11aVRoZW1lYWJsZSA9IF9yZXF1aXJlMi5tdWlUaGVtZWFibGU7XG5cbnZhciBNZXRhQ2FjaGVTZXJ2aWNlID0gcmVxdWlyZSgncHlkaW8vaHR0cC9tZXRhLWNhY2hlLXNlcnZpY2UnKTtcblxudmFyIF9yZXF1aXJlMyA9IHJlcXVpcmUoJ3B5ZGlvL2h0dHAvdXNlcnMtYXBpJyk7XG5cbnZhciBVc2Vyc0FwaSA9IF9yZXF1aXJlMy5Vc2Vyc0FwaTtcblxudmFyIFVzZXJBdmF0YXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoVXNlckF2YXRhciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBVc2VyQXZhdGFyKHByb3BzLCBjb250ZXh0KSB7XG4gICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBVc2VyQXZhdGFyKTtcblxuICAgICAgICBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgdXNlcjogbnVsbCxcbiAgICAgICAgICAgIGF2YXRhcjogbnVsbCxcbiAgICAgICAgICAgIGdyYXBoOiBudWxsLFxuICAgICAgICAgICAgbG9jYWw6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgVXNlckF2YXRhci5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5sb2FkUHVibGljRGF0YSh0aGlzLnByb3BzLnVzZXJJZCwgdGhpcy5wcm9wcy5pZG1Vc2VyKTtcbiAgICB9O1xuXG4gICAgVXNlckF2YXRhci5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmICghdGhpcy5wcm9wcy51c2VySWQgfHwgdGhpcy5wcm9wcy51c2VySWQgIT09IG5leHRQcm9wcy51c2VySWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsYWJlbDogbmV4dFByb3BzLnVzZXJJZCB9KTtcbiAgICAgICAgICAgIHRoaXMubG9hZFB1YmxpY0RhdGEobmV4dFByb3BzLnVzZXJJZCwgbmV4dFByb3BzLmlkbVVzZXIpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFVzZXJBdmF0YXIucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIGlmICh0aGlzLl91c2VyTG9nZ2VkT2JzKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLnB5ZGlvLnN0b3BPYnNlcnZpbmcoJ3VzZXJfbG9nZ2VkJywgdGhpcy5fdXNlckxvZ2dlZE9icyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcklkIHN0cmluZ1xuICAgICAqIEBwYXJhbSBpZG1Vc2VyIHtJZG1Vc2VyfVxuICAgICAqL1xuXG4gICAgVXNlckF2YXRhci5wcm90b3R5cGUubG9hZFB1YmxpY0RhdGEgPSBmdW5jdGlvbiBsb2FkUHVibGljRGF0YSh1c2VySWQsIGlkbVVzZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHVzZXJUeXBlID0gX3Byb3BzLnVzZXJUeXBlO1xuICAgICAgICB2YXIgcmljaENhcmQgPSBfcHJvcHMucmljaENhcmQ7XG4gICAgICAgIHZhciBweWRpbyA9IF9wcm9wcy5weWRpbztcblxuICAgICAgICBpZiAodXNlclR5cGUgPT09IFwiZ3JvdXBcIiB8fCB1c2VyVHlwZSA9PT0gXCJ0ZWFtXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBVc2Vyc0FwaS5nZXRVc2VyUHJvbWlzZSh1c2VySWQsIGlkbVVzZXIpLnRoZW4oZnVuY3Rpb24gKHVzZXJPYmplY3QpIHtcbiAgICAgICAgICAgIGlmICh1c2VyT2JqZWN0LmlzTG9jYWwoKSkge1xuICAgICAgICAgICAgICAgIF90aGlzLl91c2VyTG9nZ2VkT2JzID0gZnVuY3Rpb24gKGV2ZW50VXNlcikge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5fdXNlckxvZ2dlZE9icyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudFVzZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLmxvYWRQdWJsaWNEYXRhKHVzZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHB5ZGlvLm9ic2VydmVPbmNlKCd1c2VyX2xvZ2dlZCcsIF90aGlzLl91c2VyTG9nZ2VkT2JzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICB1c2VyOiB1c2VyT2JqZWN0LFxuICAgICAgICAgICAgICAgIGF2YXRhcjogdXNlck9iamVjdC5nZXRBdmF0YXIoKSxcbiAgICAgICAgICAgICAgICBsb2NhbDogdXNlck9iamVjdC5pc0xvY2FsKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gTG9hZCBncmFwaFxuICAgICAgICAgICAgaWYgKHJpY2hDYXJkICYmICF1c2VyT2JqZWN0LmlzTm90Rm91bmQoKSkge1xuICAgICAgICAgICAgICAgIF9weWRpb0h0dHBBcGkyWydkZWZhdWx0J10uZ2V0UmVzdENsaWVudCgpLmdldElkbUFwaSgpLmxvYWRVc2VyR3JhcGgodXNlcklkKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZ3JhcGggPSB7IGNlbGxzOiB7fSwgdGVhbXM6IFtdIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TaGFyZWRDZWxscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuU2hhcmVkQ2VsbHMuZm9yRWFjaChmdW5jdGlvbiAod29ya3NwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGguY2VsbHMgPSByZXNwb25zZS5TaGFyZWRDZWxscztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5CZWxvbmdzVG9UZWFtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuQmVsb25nc1RvVGVhbXMuZm9yRWFjaChmdW5jdGlvbiAocm9sZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoLnRlYW1zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcm9sZS5VdWlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogcm9sZS5MYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RlYW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZG1Sb2xlOiByb2xlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGdyYXBoOiBncmFwaCB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIC8vIFVzZXIgbWF5IGhhdmUgYmVlbiBkZWxldGVkXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGxvYWRFcnJvcjogdHJ1ZSB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIFVzZXJBdmF0YXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9zdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHZhciB1c2VyID0gX3N0YXRlLnVzZXI7XG4gICAgICAgIHZhciBhdmF0YXIgPSBfc3RhdGUuYXZhdGFyO1xuICAgICAgICB2YXIgZ3JhcGggPSBfc3RhdGUuZ3JhcGg7XG4gICAgICAgIHZhciBsb2NhbCA9IF9zdGF0ZS5sb2NhbDtcbiAgICAgICAgdmFyIGxvYWRFcnJvciA9IF9zdGF0ZS5sb2FkRXJyb3I7XG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHB5ZGlvID0gX3Byb3BzMi5weWRpbztcbiAgICAgICAgdmFyIHVzZXJJZCA9IF9wcm9wczIudXNlcklkO1xuICAgICAgICB2YXIgdXNlclR5cGUgPSBfcHJvcHMyLnVzZXJUeXBlO1xuICAgICAgICB2YXIgaWNvbiA9IF9wcm9wczIuaWNvbjtcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzMi5zdHlsZTtcbiAgICAgICAgdmFyIGxhYmVsU3R5bGUgPSBfcHJvcHMyLmxhYmVsU3R5bGU7XG4gICAgICAgIHZhciBhdmF0YXJMZXR0ZXJzID0gX3Byb3BzMi5hdmF0YXJMZXR0ZXJzO1xuICAgICAgICB2YXIgYXZhdGFyU3R5bGUgPSBfcHJvcHMyLmF2YXRhclN0eWxlO1xuICAgICAgICB2YXIgYXZhdGFyU2l6ZSA9IF9wcm9wczIuYXZhdGFyU2l6ZTtcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IF9wcm9wczIuY2xhc3NOYW1lO1xuICAgICAgICB2YXIgbGFiZWxDbGFzc05hbWUgPSBfcHJvcHMyLmxhYmVsQ2xhc3NOYW1lO1xuICAgICAgICB2YXIgZGlzcGxheUxhYmVsID0gX3Byb3BzMi5kaXNwbGF5TGFiZWw7XG4gICAgICAgIHZhciBkaXNwbGF5TG9jYWxMYWJlbCA9IF9wcm9wczIuZGlzcGxheUxvY2FsTGFiZWw7XG4gICAgICAgIHZhciBkaXNwbGF5QXZhdGFyID0gX3Byb3BzMi5kaXNwbGF5QXZhdGFyO1xuICAgICAgICB2YXIgdXNlRGVmYXVsdEF2YXRhciA9IF9wcm9wczIudXNlRGVmYXVsdEF2YXRhcjtcbiAgICAgICAgdmFyIHJpY2hDYXJkID0gX3Byb3BzMi5yaWNoQ2FyZDtcbiAgICAgICAgdmFyIGNhcmRTaXplID0gX3Byb3BzMi5jYXJkU2l6ZTtcbiAgICAgICAgdmFyIG11aVRoZW1lID0gX3Byb3BzMi5tdWlUaGVtZTtcbiAgICAgICAgdmFyIG5vQWN0aW9uc1BhbmVsID0gX3Byb3BzMi5ub0FjdGlvbnNQYW5lbDtcbiAgICAgICAgdmFyIGxhYmVsID0gdGhpcy5zdGF0ZS5sYWJlbDtcblxuICAgICAgICB2YXIgdXNlclR5cGVMYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIHVzZXJOb3RGb3VuZCA9IGxvYWRFcnJvcjtcbiAgICAgICAgdmFyIHVzZXJJc1B1YmxpYyA9IGZhbHNlO1xuICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgbGFiZWwgPSB1c2VyLmdldExhYmVsKCk7XG4gICAgICAgICAgICB1c2VyTm90Rm91bmQgPSB1c2VyLmlzTm90Rm91bmQoKTtcbiAgICAgICAgICAgIHVzZXJJc1B1YmxpYyA9IHVzZXIuaXNQdWJsaWMoKTtcbiAgICAgICAgfSBlbHNlIGlmICghbGFiZWwpIHtcbiAgICAgICAgICAgIGxhYmVsID0gdGhpcy5wcm9wcy51c2VyTGFiZWwgfHwgdGhpcy5wcm9wcy51c2VySWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvY2FsICYmIGRpc3BsYXlMb2NhbExhYmVsKSB7XG4gICAgICAgICAgICBsYWJlbCA9IHB5ZGlvLk1lc3NhZ2VIYXNoWyc2MzQnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBhdmF0YXJDb250ZW50ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgYXZhdGFyQ29sb3IgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBhdmF0YXJJY29uID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAocmljaENhcmQpIHtcbiAgICAgICAgICAgIGRpc3BsYXlBdmF0YXIgPSB0cnVlO1xuICAgICAgICAgICAgdXNlRGVmYXVsdEF2YXRhciA9IHRydWU7XG4gICAgICAgICAgICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkaXNwbGF5QXZhdGFyICYmICFhdmF0YXIgJiYgbGFiZWwgJiYgKCFkaXNwbGF5TGFiZWwgfHwgdXNlRGVmYXVsdEF2YXRhcikpIHtcbiAgICAgICAgICAgIHZhciBhdmF0YXJzQ29sb3IgPSBtdWlUaGVtZS5wYWxldHRlLmF2YXRhcnNDb2xvcjtcbiAgICAgICAgICAgIGlmICh1c2VyVHlwZSA9PT0gJ2dyb3VwJyB8fCB1c2VyVHlwZSA9PT0gJ3RlYW0nIHx8IHVzZXJJZC5pbmRleE9mKCdQWURJT19HUlBfLycpID09PSAwIHx8IHVzZXJJZC5pbmRleE9mKCcvVVNFUl9URUFNLycpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgYXZhdGFyc0NvbG9yID0gQ29sb3IoYXZhdGFyc0NvbG9yKS5kYXJrZW4oMC4yKS50b1N0cmluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGljb25DbGFzc05hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBzd2l0Y2ggKHVzZXJUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZ3JvdXAnOlxuICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gJ21kaSBtZGktYWNjb3VudC1tdWx0aXBsZSc7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJUeXBlTGFiZWwgPSAnMjg5JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAndGVhbSc6XG4gICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSAnbWRpIG1kaS1hY2NvdW50LW11bHRpcGxlLW91dGxpbmUnO1xuICAgICAgICAgICAgICAgICAgICB1c2VyVHlwZUxhYmVsID0gJzYwMyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbW90ZSc6XG4gICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSAnbWRpIG1kaS1hY2NvdW50LW5ldHdvcmsnO1xuICAgICAgICAgICAgICAgICAgICB1c2VyVHlwZUxhYmVsID0gJzYwNCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSAnbWRpIG1kaS1hY2NvdW50JztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1c2VyLmdldEV4dGVybmFsKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyVHlwZUxhYmVsID0gJzU4OSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIuaXNQdWJsaWMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyVHlwZUxhYmVsID0gJzU4OSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gcHlkaW8uTWVzc2FnZUhhc2hbXCJwdWJsaWNfbGlua191c2VyXCJdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3NOYW1lID0gJ21kaSBtZGktbGluayc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyVHlwZUxhYmVsID0gJzU5MCc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyVHlwZUxhYmVsID0gJzI4OCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaWNvbikge1xuICAgICAgICAgICAgICAgIGljb25DbGFzc05hbWUgPSBpY29uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVzZXJUeXBlTGFiZWwpIHtcbiAgICAgICAgICAgICAgICB1c2VyVHlwZUxhYmVsID0gcHlkaW8uTWVzc2FnZUhhc2hbdXNlclR5cGVMYWJlbF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmljaENhcmQpIHtcbiAgICAgICAgICAgICAgICBhdmF0YXJJY29uID0gUmVhY3QuY3JlYXRlRWxlbWVudChGb250SWNvbiwgeyBjbGFzc05hbWU6IGljb25DbGFzc05hbWUsIHN0eWxlOiB7IGNvbG9yOiBhdmF0YXJzQ29sb3IgfSB9KTtcbiAgICAgICAgICAgICAgICBhdmF0YXJDb2xvciA9ICcjZjVmNWY1JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXZhdGFyQ29sb3IgPSBhdmF0YXJzQ29sb3I7XG4gICAgICAgICAgICAgICAgaWYgKGljb25DbGFzc05hbWUgJiYgIWF2YXRhckxldHRlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFySWNvbiA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9udEljb24sIHsgY2xhc3NOYW1lOiBpY29uQ2xhc3NOYW1lIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGF2YXRhckNvbnRlbnQgPSBsYWJlbC5zcGxpdCgnICcpLm1hcChmdW5jdGlvbiAod29yZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmRbMF07XG4gICAgICAgICAgICAgICAgICAgIH0pLmpvaW4oJycpLnN1YnN0cmluZygwLCAyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF2YXRhckNvbnRlbnQubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyQ29udGVudCA9IGxhYmVsLnN1YnN0cmluZygwLCAyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVsb2FkQWN0aW9uID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgb25FZGl0QWN0aW9uID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgb25Nb3VzZU92ZXIgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICBvbk1vdXNlT3V0ID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgb25DbGljayA9IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBvcG92ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyaWNoQ2FyZCkge1xuICAgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgIGRpc3BsYXlBdmF0YXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHN0eWxlID0gX2V4dGVuZHMoe30sIHN0eWxlLCB7IGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nIH0pO1xuICAgICAgICAgICAgICAgIC8vYXZhdGFyU2l6ZSA9IGNhcmRTaXplID8gY2FyZFNpemUgOiAnMTAwJSc7XG4gICAgICAgICAgICAgICAgLy9hdmF0YXJTdHlsZSA9IHtib3JkZXJSYWRpdXM6IDB9O1xuICAgICAgICAgICAgICAgIGF2YXRhclNpemUgPSAxMDA7XG4gICAgICAgICAgICAgICAgYXZhdGFyU3R5bGUgPSB7IG1hcmdpblRvcDogMjAgfTtcbiAgICAgICAgICAgICAgICB2YXIgbG9jYWxSZWxvYWQgPSBmdW5jdGlvbiBsb2NhbFJlbG9hZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgTWV0YUNhY2hlU2VydmljZS5nZXRJbnN0YW5jZSgpLmRlbGV0ZUtleSgndXNlcl9wdWJsaWNfZGF0YS1ncmFwaCcsIF90aGlzMi5wcm9wcy51c2VySWQpO1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIubG9hZFB1YmxpY0RhdGEoX3RoaXMyLnByb3BzLnVzZXJJZCwgX3RoaXMyLnByb3BzLmlkbVVzZXIpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmVsb2FkQWN0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXMyLnByb3BzLnJlbG9hZEFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnByb3BzLnJlbG9hZEFjdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvbkVkaXRBY3Rpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsUmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfdGhpczIucHJvcHMub25FZGl0QWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIucHJvcHMub25FZGl0QWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfSBlbHNlIGlmICghbG9jYWwgJiYgIXVzZXJOb3RGb3VuZCAmJiAhdXNlcklzUHVibGljICYmIHRoaXMucHJvcHMucmljaE9uSG92ZXIpIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICBvbk1vdXNlT3V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIV90aGlzMi5sb2NrZWRCeVN1YlBvcG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNob3dQb3BvdmVyOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgb25Nb3VzZU91dCA9IGRlYm91bmNlKG9uTW91c2VPdXQsIDM1MCk7XG4gICAgICAgICAgICAgICAgb25Nb3VzZU92ZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93UG9wb3ZlcjogdHJ1ZSwgcG9wb3ZlckFuY2hvcjogZS5jdXJyZW50VGFyZ2V0IH0pO1xuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlT3V0LmNhbmNlbCgpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdmFyIG9uTW91c2VPdmVySW5uZXIgPSBmdW5jdGlvbiBvbk1vdXNlT3ZlcklubmVyKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd1BvcG92ZXI6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VPdXQuY2FuY2VsKCk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHZhciBsb2NrT25TdWJQb3BvdmVyT3BlbiA9IGZ1bmN0aW9uIGxvY2tPblN1YlBvcG92ZXJPcGVuKHN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIubG9ja2VkQnlTdWJQb3BvdmVyID0gc3RhdHVzO1xuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlT3ZlcklubmVyKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB2YXIgX3Byb3BzMyA9IF90aGlzMi5wcm9wcztcbiAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBfcHJvcHMzLnN0eWxlO1xuXG4gICAgICAgICAgICAgICAgdmFyIHBvcG92ZXJQcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcHJvcHMzLCBbJ3N0eWxlJ10pO1xuXG4gICAgICAgICAgICAgICAgcG9wb3ZlciA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIFBvcG92ZXIsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IF90aGlzMi5zdGF0ZS5zaG93UG9wb3ZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvckVsOiBfdGhpczIuc3RhdGUucG9wb3ZlckFuY2hvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlOiBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlYXNvbiAhPT0gJ2NsaWNrQXdheScgfHwgIV90aGlzMi5sb2NrZWRCeVN1YlBvcG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHsgc2hvd1BvcG92ZXI6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW46IHsgaG9yaXpvbnRhbDogXCJsZWZ0XCIsIHZlcnRpY2FsOiBcImNlbnRlclwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRPcmlnaW46IHsgaG9yaXpvbnRhbDogXCJyaWdodFwiLCB2ZXJ0aWNhbDogXCJjZW50ZXJcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlTGF5ZXJGb3JDbGlja0F3YXk6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBQYXBlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgekRlcHRoOiAyLCBzdHlsZTogeyB3aWR0aDogMjIwLCBoZWlnaHQ6IDMyMCwgb3ZlcmZsb3dZOiAnYXV0bycgfSwgb25Nb3VzZU92ZXI6IG9uTW91c2VPdmVySW5uZXIsIG9uTW91c2VPdXQ6IG9uTW91c2VPdXQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVXNlckF2YXRhciwgX2V4dGVuZHMoe30sIHBvcG92ZXJQcm9wcywgeyByaWNoQ2FyZDogdHJ1ZSwgcmljaE9uSG92ZXI6IGZhbHNlLCBjYXJkU2l6ZTogMjIwLCBsb2NrT25TdWJQb3BvdmVyT3BlbjogbG9ja09uU3ViUG9wb3Zlck9wZW4gfSkpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfSBlbHNlIGlmICghbG9jYWwgJiYgIXVzZXJOb3RGb3VuZCAmJiAhdXNlcklzUHVibGljICYmIHRoaXMucHJvcHMucmljaE9uQ2xpY2spIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICBvbk1vdXNlT3V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIV90aGlzMi5sb2NrZWRCeVN1YlBvcG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNob3dQb3BvdmVyOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgb25Nb3VzZU91dCA9IGRlYm91bmNlKG9uTW91c2VPdXQsIDM1MCk7XG4gICAgICAgICAgICAgICAgb25DbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHNob3dQb3BvdmVyOiB0cnVlLCBwb3BvdmVyQW5jaG9yOiBlLmN1cnJlbnRUYXJnZXQgfSk7XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VPdXQuY2FuY2VsKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB2YXIgb25Nb3VzZU92ZXJJbm5lciA9IGZ1bmN0aW9uIG9uTW91c2VPdmVySW5uZXIoZSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93UG9wb3ZlcjogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZU91dC5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgdmFyIGxvY2tPblN1YlBvcG92ZXJPcGVuID0gZnVuY3Rpb24gbG9ja09uU3ViUG9wb3Zlck9wZW4oc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzMi5sb2NrZWRCeVN1YlBvcG92ZXIgPSBzdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VPdmVySW5uZXIoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHZhciBfcHJvcHM0ID0gX3RoaXMyLnByb3BzO1xuICAgICAgICAgICAgICAgIHZhciBzdHlsZSA9IF9wcm9wczQuc3R5bGU7XG5cbiAgICAgICAgICAgICAgICB2YXIgcG9wb3ZlclByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9wcm9wczQsIFsnc3R5bGUnXSk7XG5cbiAgICAgICAgICAgICAgICBwb3BvdmVyID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgUG9wb3ZlcixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogX3RoaXMyLnN0YXRlLnNob3dQb3BvdmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yRWw6IF90aGlzMi5zdGF0ZS5wb3BvdmVyQW5jaG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25SZXF1ZXN0Q2xvc2U6IGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVhc29uICE9PSAnY2xpY2tBd2F5JyB8fCAhX3RoaXMyLmxvY2tlZEJ5U3ViUG9wb3Zlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoeyBzaG93UG9wb3ZlcjogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbjogeyBob3Jpem9udGFsOiBcImxlZnRcIiwgdmVydGljYWw6IFwiYm90dG9tXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldE9yaWdpbjogeyBob3Jpem9udGFsOiBcImxlZnRcIiwgdmVydGljYWw6IFwidG9wXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUxheWVyRm9yQ2xpY2tBd2F5OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgUGFwZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHpEZXB0aDogMiwgc3R5bGU6IHsgd2lkdGg6IDIyMCwgaGVpZ2h0OiAzMjAsIG92ZXJmbG93WTogJ2F1dG8nIH0sIG9uTW91c2VPdmVyOiBvbk1vdXNlT3ZlcklubmVyLCBvbk1vdXNlT3V0OiBvbk1vdXNlT3V0IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFVzZXJBdmF0YXIsIF9leHRlbmRzKHt9LCBwb3BvdmVyUHJvcHMsIHsgcmljaENhcmQ6IHRydWUsIHJpY2hPbkhvdmVyOiBmYWxzZSwgY2FyZFNpemU6IDIyMCwgbG9ja09uU3ViUG9wb3Zlck9wZW46IGxvY2tPblN1YlBvcG92ZXJPcGVuIH0pKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXZhdGFyKSB7XG4gICAgICAgICAgICBhdmF0YXJJY29uID0gUmVhY3QuY3JlYXRlRWxlbWVudChGb250SWNvbiwgeyBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IFwidXJsKFwiICsgYXZhdGFyICsgXCI/ZGltPVwiICsgYXZhdGFyU2l6ZSArIFwiKVwiLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogJ2NvdmVyJyxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNTAlJyxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiAnY2VudGVyJ1xuICAgICAgICAgICAgICAgIH0gfSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYXZhdGFyQ29tcG9uZW50ID0gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIEF2YXRhcixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpY29uOiBhdmF0YXJJY29uLFxuICAgICAgICAgICAgICAgIHNpemU6IGF2YXRhclNpemUsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHRoaXMucHJvcHMuYXZhdGFyT25seSA/IHRoaXMucHJvcHMuc3R5bGUgOiBhdmF0YXJTdHlsZSxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGF2YXRhckNvbG9yXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXZhdGFyQ29udGVudFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmF2YXRhck9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybiBhdmF0YXJDb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmljaENhcmQpIHtcbiAgICAgICAgICAgIGF2YXRhckNvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgeyBzdHlsZTogeyB0ZXh0QWxpZ246ICdjZW50ZXInIH0gfSxcbiAgICAgICAgICAgICAgICBhdmF0YXJDb21wb25lbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAodXNlck5vdEZvdW5kKSB7XG4gICAgICAgICAgICBsYWJlbFN0eWxlID0gX2V4dGVuZHMoe30sIGxhYmVsU3R5bGUsIHsgdGV4dERlY29yYXRpb246ICdsaW5lLXRocm91Z2gnIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHN0eWxlOiBzdHlsZSwgb25Nb3VzZU92ZXI6IG9uTW91c2VPdmVyLCBvbk1vdXNlT3V0OiBvbk1vdXNlT3V0LCBvbkNsaWNrOiBvbkNsaWNrIH0sXG4gICAgICAgICAgICBkaXNwbGF5QXZhdGFyICYmIChhdmF0YXIgfHwgYXZhdGFyQ29udGVudCB8fCBhdmF0YXJJY29uKSAmJiBhdmF0YXJDb21wb25lbnQsXG4gICAgICAgICAgICBkaXNwbGF5TGFiZWwgJiYgIXJpY2hDYXJkICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGxhYmVsQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogbGFiZWxTdHlsZSB9LFxuICAgICAgICAgICAgICAgIGxhYmVsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGlzcGxheUxhYmVsICYmIHJpY2hDYXJkICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ2FyZFRpdGxlLCB7IHN0eWxlOiB7IHRleHRBbGlnbjogJ2NlbnRlcicgfSwgdGl0bGU6IGxhYmVsLCBzdWJ0aXRsZTogdXNlclR5cGVMYWJlbCB9KSxcbiAgICAgICAgICAgIHJpY2hDYXJkICYmIHVzZXIgJiYgIW5vQWN0aW9uc1BhbmVsICYmIFJlYWN0LmNyZWF0ZUVsZW1lbnQoX0FjdGlvbnNQYW5lbDJbJ2RlZmF1bHQnXSwgX2V4dGVuZHMoe30sIHRoaXMuc3RhdGUsIHRoaXMucHJvcHMsIHsgcmVsb2FkQWN0aW9uOiByZWxvYWRBY3Rpb24sIG9uRWRpdEFjdGlvbjogb25FZGl0QWN0aW9uIH0pKSxcbiAgICAgICAgICAgIHJpY2hDYXJkICYmIGdyYXBoICYmICFub0FjdGlvbnNQYW5lbCAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KF9HcmFwaFBhbmVsMlsnZGVmYXVsdCddLCBfZXh0ZW5kcyh7IGdyYXBoOiBncmFwaCB9LCB0aGlzLnByb3BzLCB7IHVzZXJMYWJlbDogbGFiZWwsIHJlbG9hZEFjdGlvbjogcmVsb2FkQWN0aW9uLCBvbkVkaXRBY3Rpb246IG9uRWRpdEFjdGlvbiB9KSksXG4gICAgICAgICAgICB0aGlzLnByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgcG9wb3ZlclxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gVXNlckF2YXRhcjtcbn0pKFJlYWN0LkNvbXBvbmVudCk7XG5cblVzZXJBdmF0YXIucHJvcFR5cGVzID0ge1xuICAgIC8qKlxuICAgICAqIElkIG9mIHRoZSB1c2VyIHRvIGJlIGxvYWRlZFxuICAgICAqL1xuICAgIHVzZXJJZDogUmVhY3QuUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKlxuICAgICAqIFB5ZGlvIGluc3RhbmNlXG4gICAgICovXG4gICAgcHlkaW86IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKFB5ZGlvKSxcbiAgICAvKipcbiAgICAgKiBMYWJlbCBvZiB0aGUgdXNlciwgaWYgd2UgYWxyZWFkeSBoYXZlIGl0IChvdGhlcndpc2Ugd2lsbCBiZSBsb2FkZWQpXG4gICAgICovXG4gICAgdXNlckxhYmVsOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFR5cGUgb2YgdXNlclxuICAgICAqL1xuICAgIHVzZXJUeXBlOiBSZWFjdC5Qcm9wVHlwZXMub25lT2YoWyd1c2VyJywgJ2dyb3VwJywgJ3JlbW90ZScsICd0ZWFtJ10pLFxuICAgIC8qKlxuICAgICAqIEljb24gdG8gYmUgZGlzcGxheWVkIGluIGF2YXRhclxuICAgICAqL1xuICAgIGljb246IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqXG4gICAgICogRGlzcGxheSBhIHJpY2ggY2FyZCBvciBhIHNpbXBsZSBhdmF0YXIrbGFiZWwgY2hpcFxuICAgICAqL1xuICAgIHJpY2hDYXJkOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAvKipcbiAgICAgKiBJZiBub3QgcmljaCwgZGlzcGxheSBhIHJpY2ggY2FyZCBhcyBwb3BvdmVyIG9uIG1vdXNlb3ZlclxuICAgICAqL1xuICAgIHJpY2hPbkhvdmVyOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAvKipcbiAgICAgKiBJZiBub3QgcmljaCwgZGlzcGxheSBhIHJpY2ggY2FyZCBhcyBwb3BvdmVyIG9uIGNsaWNrXG4gICAgICovXG4gICAgcmljaE9uQ2xpY2s6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuXG4gICAgLyoqXG4gICAgICogQWRkIGVkaXQgYWN0aW9uIHRvIHRoZSBjYXJkXG4gICAgICovXG4gICAgdXNlckVkaXRhYmxlOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyZWQgYWZ0ZXIgc3VjY2Vzc2Z1bCBlZGl0aW9uXG4gICAgICovXG4gICAgb25FZGl0QWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyZWQgYWZ0ZXIgZGVsZXRpb25cbiAgICAgKi9cbiAgICBvbkRlbGV0ZUFjdGlvbjogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcmVkIGlmIGEgcmVsb2FkIGlzIHJlcXVpcmVkXG4gICAgICovXG4gICAgcmVsb2FkQWN0aW9uOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgbGFiZWwgZWxlbWVudCBvciBub3RcbiAgICAgKi9cbiAgICBkaXNwbGF5TGFiZWw6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgbGFiZWwgZWxlbWVudCBvciBub3RcbiAgICAgKi9cbiAgICBkaXNwbGF5TG9jYWxMYWJlbDogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgLyoqXG4gICAgICogRGlzcGxheSBhdmF0YXIgZWxlbWVudCBvciBub3RcbiAgICAgKi9cbiAgICBkaXNwbGF5QXZhdGFyOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IG9ubHkgYXZhdGFyXG4gICAgICovXG4gICAgYXZhdGFyT25seTogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgLyoqXG4gICAgICogVXNlIGRlZmF1bHQgYXZhdGFyXG4gICAgICovXG4gICAgdXNlRGVmYXVsdEF2YXRhcjogUmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgLyoqXG4gICAgICogQXZhdGFyIHNpemUsIDQwcHggYnkgZGVmYXVsdFxuICAgICAqL1xuICAgIGF2YXRhclNpemU6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgLyoqXG4gICAgICogSWYgb25seSB0aGUgZGVmYXVsdCBpY29uIGlzIGF2YWlsYWJsZSwgd2lsbCBkaXNwbGF5XG4gICAgICogdGhlIGZpcnN0IGxldHRlcnMgb2YgdGhlIG5hbWUgaW5zdGVhZFxuICAgICAqL1xuICAgIGF2YXRhckxldHRlcnM6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuICAgIC8qKlxuICAgICAqIERvIG5vdCBkaXNwbGF5IEFjdGlvbnNQYW5lbCBpbiBSaWNoQ2FyZCBtb2RlXG4gICAgICovXG4gICAgbm9BY3Rpb25zUGFuZWw6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuXG4gICAgLyoqXG4gICAgICogQWRkIGNsYXNzIG5hbWUgdG8gcm9vdCBlbGVtZW50XG4gICAgICovXG4gICAgY2xhc3NOYW1lOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIEFkZCBjbGFzcyBuYW1lIHRvIGxhYmVsIGVsZW1lbnRcbiAgICAgKi9cbiAgICBsYWJlbENsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKipcbiAgICAgKiBBZGQgY2xhc3MgbmFtZSB0byBhdmF0YXIgZWxlbWVudFxuICAgICAqL1xuICAgIGF2YXRhckNsYXNzTmFtZTogUmVhY3QuUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKipcbiAgICAgKiBBZGQgc3R5bGUgdG8gcm9vdCBlbGVtZW50XG4gICAgICovXG4gICAgc3R5bGU6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgLyoqXG4gICAgICogQWRkIHN0eWxlIHRvIGxhYmVsIGVsZW1lbnRcbiAgICAgKi9cbiAgICBsYWJlbFN0eWxlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgIC8qKlxuICAgICAqIEFkZCBzdHlsZSB0byBhdmF0YXIgZWxlbWVudFxuICAgICAqL1xuICAgIGF2YXRhclN0eWxlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0XG59O1xuXG5Vc2VyQXZhdGFyLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBkaXNwbGF5TGFiZWw6IHRydWUsXG4gICAgZGlzcGxheUF2YXRhcjogdHJ1ZSxcbiAgICBhdmF0YXJTaXplOiA0MCxcbiAgICB1c2VyVHlwZTogJ3VzZXInLFxuICAgIGNsYXNzTmFtZTogJ3VzZXItYXZhdGFyLXdpZGdldCcsXG4gICAgYXZhdGFyQ2xhc3NOYW1lOiAndXNlci1hdmF0YXInLFxuICAgIGxhYmVsQ2xhc3NOYW1lOiAndXNlci1sYWJlbCdcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVzZXJBdmF0YXIgPSBtdWlUaGVtZWFibGUoKShVc2VyQXZhdGFyKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVXNlckF2YXRhcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbnZhciBfY29yZU1vZGVsUHlkaW9EYXRhTW9kZWwgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29yZS9tb2RlbC9QeWRpb0RhdGFNb2RlbFwiKTtcblxudmFyIF9jb3JlTW9kZWxQeWRpb0RhdGFNb2RlbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jb3JlTW9kZWxQeWRpb0RhdGFNb2RlbCk7XG5cbnZhciBGdW5jVXRpbHMgPSByZXF1aXJlKFwicHlkaW8vdXRpbC9mdW5jXCIpO1xudmFyIFJlc291cmNlc01hbmFnZXIgPSByZXF1aXJlKFwicHlkaW8vaHR0cC9yZXNvdXJjZXMtbWFuYWdlclwiKTtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFJFQUNUIERORCBHRU5FUklDIENPTVBPTkVOVFNcbiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xudmFyIFR5cGVzID0ge1xuICAgIE5PREVfUFJPVklERVI6ICdub2RlJyxcbiAgICBTT1JUQUJMRV9MSVNUX0lURU06ICdzb3J0YWJsZS1saXN0LWl0ZW0nXG59O1xuXG4vKipcbiAqIFNwZWNpZmllcyB3aGljaCBwcm9wcyB0byBpbmplY3QgaW50byB5b3VyIGNvbXBvbmVudC5cbiAqL1xuZnVuY3Rpb24gY29sbGVjdChjb25uZWN0LCBtb25pdG9yKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29ubmVjdERyYWdTb3VyY2U6IGNvbm5lY3QuZHJhZ1NvdXJjZSgpLFxuICAgICAgICBpc0RyYWdnaW5nOiBtb25pdG9yLmlzRHJhZ2dpbmcoKVxuICAgIH07XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3REcm9wKGNvbm5lY3QsIG1vbml0b3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb25uZWN0RHJvcFRhcmdldDogY29ubmVjdC5kcm9wVGFyZ2V0KCksXG4gICAgICAgIGNhbkRyb3A6IG1vbml0b3IuY2FuRHJvcCgpLFxuICAgICAgICBpc092ZXI6IG1vbml0b3IuaXNPdmVyKCksXG4gICAgICAgIGlzT3ZlckN1cnJlbnQ6IG1vbml0b3IuaXNPdmVyKHsgc2hhbGxvdzogdHJ1ZSB9KVxuICAgIH07XG59XG5cbnZhciBETkRBY3Rpb25QYXJhbWV0ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEROREFjdGlvblBhcmFtZXRlcihzb3VyY2UsIHRhcmdldCwgc3RlcCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRE5EQWN0aW9uUGFyYW1ldGVyKTtcblxuICAgICAgICB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgdGhpcy5fc3RlcCA9IHN0ZXA7XG4gICAgfVxuXG4gICAgRE5EQWN0aW9uUGFyYW1ldGVyLnByb3RvdHlwZS5nZXRTb3VyY2UgPSBmdW5jdGlvbiBnZXRTb3VyY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2U7XG4gICAgfTtcblxuICAgIEROREFjdGlvblBhcmFtZXRlci5wcm90b3R5cGUuZ2V0VGFyZ2V0ID0gZnVuY3Rpb24gZ2V0VGFyZ2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0O1xuICAgIH07XG5cbiAgICBETkRBY3Rpb25QYXJhbWV0ZXIucHJvdG90eXBlLmdldFN0ZXAgPSBmdW5jdGlvbiBnZXRTdGVwKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RlcDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEROREFjdGlvblBhcmFtZXRlcjtcbn0pKCk7XG5cbkROREFjdGlvblBhcmFtZXRlci5TVEVQX0JFR0lOX0RSQUcgPSAnYmVnaW5EcmFnJztcbkROREFjdGlvblBhcmFtZXRlci5TVEVQX0VORF9EUkFHID0gJ2VuZERyYWcnO1xuRE5EQWN0aW9uUGFyYW1ldGVyLlNURVBfQ0FOX0RST1AgPSAnY2FuRHJvcCc7XG5ETkRBY3Rpb25QYXJhbWV0ZXIuU1RFUF9IT1ZFUl9EUk9QID0gJ2hvdmVyJztcblxudmFyIGFwcGx5RE5EQWN0aW9uID0gZnVuY3Rpb24gYXBwbHlETkRBY3Rpb24oc291cmNlLCB0YXJnZXQsIHN0ZXApIHtcbiAgICB2YXIgQ29udHJvbGxlciA9IHdpbmRvdy5weWRpby5Db250cm9sbGVyO1xuXG4gICAgdmFyIGRuZCA9IENvbnRyb2xsZXIuZGVmYXVsdEFjdGlvbnMuZ2V0KFwiZHJhZ25kcm9wXCIpO1xuICAgIGlmIChkbmQpIHtcbiAgICAgICAgdmFyIGRuZEFjdGlvbiA9IENvbnRyb2xsZXIuZ2V0QWN0aW9uQnlOYW1lKGRuZCk7XG4gICAgICAgIGlmIChkbmRBY3Rpb24uZGVueSkge1xuICAgICAgICAgICAgLy8gTWF5YmUgaXQgaGFzIHRvIGJlIGVuYWJsZWQgYnkgY3VycmVudCBzZWxlY3Rpb25cbiAgICAgICAgICAgIHZhciBkbSA9IG5ldyBfY29yZU1vZGVsUHlkaW9EYXRhTW9kZWwyW1wiZGVmYXVsdFwiXSgpO1xuICAgICAgICAgICAgZG0uc2V0U2VsZWN0ZWROb2Rlcyhbc291cmNlXSk7XG4gICAgICAgICAgICBkbmRBY3Rpb24uZmlyZVNlbGVjdGlvbkNoYW5nZShkbSk7XG4gICAgICAgICAgICBpZiAoZG5kQWN0aW9uLmRlbnkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJETkQgYWN0aW9uIGRpc2FibGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vZG5kQWN0aW9uLmVuYWJsZSgpO1xuICAgICAgICB2YXIgcGFyYW1zID0gbmV3IEROREFjdGlvblBhcmFtZXRlcihzb3VyY2UsIHRhcmdldCwgc3RlcCk7XG4gICAgICAgIHZhciBjaGVja01vZHVsZSA9IGRuZEFjdGlvbi5vcHRpb25zLmRyYWduZHJvcENoZWNrTW9kdWxlO1xuICAgICAgICBpZiAoc3RlcCA9PT0gRE5EQWN0aW9uUGFyYW1ldGVyLlNURVBfQ0FOX0RST1AgJiYgY2hlY2tNb2R1bGUpIHtcbiAgICAgICAgICAgIGlmICghRnVuY1V0aWxzLmdldEZ1bmN0aW9uQnlOYW1lKGNoZWNrTW9kdWxlLCB3aW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgUmVzb3VyY2VzTWFuYWdlci5kZXRlY3RNb2R1bGVUb0xvYWRBbmRBcHBseShjaGVja01vZHVsZSwgZnVuY3Rpb24gKCkge30pO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbmQgdGVzdCBtb2R1bGUsIHRyeWluZyB0byBsb2FkIGl0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBGdW5jVXRpbHMuZXhlY3V0ZUZ1bmN0aW9uQnlOYW1lKGRuZEFjdGlvbi5vcHRpb25zLmRyYWduZHJvcENoZWNrTW9kdWxlLCB3aW5kb3csIENvbnRyb2xsZXIsIHBhcmFtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkbmRBY3Rpb24uYXBwbHkocGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gRE5EIEFjdGlvbnMgYXZhaWxhYmxlJyk7XG4gICAgfVxufTtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBSRUFDVCBETkQgRFJBRy9EUk9QIE5PREVTXG4gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxudmFyIG5vZGVEcmFnU291cmNlID0ge1xuICAgIGJlZ2luRHJhZzogZnVuY3Rpb24gYmVnaW5EcmFnKHByb3BzKSB7XG4gICAgICAgIC8vIFJldHVybiB0aGUgZGF0YSBkZXNjcmliaW5nIHRoZSBkcmFnZ2VkIGl0ZW1cbiAgICAgICAgcmV0dXJuIHsgbm9kZTogcHJvcHMubm9kZSB9O1xuICAgIH0sXG5cbiAgICBlbmREcmFnOiBmdW5jdGlvbiBlbmREcmFnKHByb3BzLCBtb25pdG9yLCBjb21wb25lbnQpIHtcbiAgICAgICAgaWYgKCFtb25pdG9yLmRpZERyb3AoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpdGVtID0gbW9uaXRvci5nZXRJdGVtKCk7XG4gICAgICAgIHZhciBkcm9wUmVzdWx0ID0gbW9uaXRvci5nZXREcm9wUmVzdWx0KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhcHBseUROREFjdGlvbihpdGVtLm5vZGUsIGRyb3BSZXN1bHQubm9kZSwgRE5EQWN0aW9uUGFyYW1ldGVyLlNURVBfRU5EX0RSQUcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH1cbn07XG5cbnZhciBub2RlRHJvcFRhcmdldCA9IHtcblxuICAgIGhvdmVyOiBmdW5jdGlvbiBob3Zlcihwcm9wcywgbW9uaXRvcikge30sXG5cbiAgICBjYW5Ecm9wOiBmdW5jdGlvbiBjYW5Ecm9wKHByb3BzLCBtb25pdG9yKSB7XG5cbiAgICAgICAgdmFyIHNvdXJjZSA9IG1vbml0b3IuZ2V0SXRlbSgpLm5vZGU7XG4gICAgICAgIHZhciB0YXJnZXQgPSBwcm9wcy5ub2RlO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhcHBseUROREFjdGlvbihzb3VyY2UsIHRhcmdldCwgRE5EQWN0aW9uUGFyYW1ldGVyLlNURVBfQ0FOX0RST1ApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcblxuICAgIGRyb3A6IGZ1bmN0aW9uIGRyb3AocHJvcHMsIG1vbml0b3IpIHtcbiAgICAgICAgdmFyIGhhc0Ryb3BwZWRPbkNoaWxkID0gbW9uaXRvci5kaWREcm9wKCk7XG4gICAgICAgIGlmIChoYXNEcm9wcGVkT25DaGlsZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IG5vZGU6IHByb3BzLm5vZGUgfTtcbiAgICB9XG5cbn07XG5cbmV4cG9ydHMuVHlwZXMgPSBUeXBlcztcbmV4cG9ydHMuY29sbGVjdCA9IGNvbGxlY3Q7XG5leHBvcnRzLmNvbGxlY3REcm9wID0gY29sbGVjdERyb3A7XG5leHBvcnRzLm5vZGVEcmFnU291cmNlID0gbm9kZURyYWdTb3VyY2U7XG5leHBvcnRzLm5vZGVEcm9wVGFyZ2V0ID0gbm9kZURyb3BUYXJnZXQ7XG5leHBvcnRzLkROREFjdGlvblBhcmFtZXRlciA9IEROREFjdGlvblBhcmFtZXRlcjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAwNy0yMDE3IENoYXJsZXMgZHUgSmV1IC0gQWJzdHJpdW0gU0FTIDx0ZWFtIChhdCkgcHlkLmlvPlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgUHlkaW8uXG4gKlxuICogUHlkaW8gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBQeWRpbyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBQeWRpby4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqXG4gKiBUaGUgbGF0ZXN0IGNvZGUgY2FuIGJlIGZvdW5kIGF0IDxodHRwczovL3B5ZGlvLmNvbT4uXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHtcbiAgICBjb250ZXh0VHlwZXM6IHtcbiAgICAgICAgbWVzc2FnZXM6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIGdldE1lc3NhZ2U6IFJlYWN0LlByb3BUeXBlcy5mdW5jXG4gICAgfVxufTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBDb21wb25lbnQgPSBfcmVxdWlyZS5Db21wb25lbnQ7XG52YXIgUHJvcFR5cGVzID0gX3JlcXVpcmUuUHJvcFR5cGVzO1xuXG52YXIgX3JlcXVpcmUyID0gcmVxdWlyZSgnbWF0ZXJpYWwtdWknKTtcblxudmFyIEZsYXRCdXR0b24gPSBfcmVxdWlyZTIuRmxhdEJ1dHRvbjtcbnZhciBGb250SWNvbiA9IF9yZXF1aXJlMi5Gb250SWNvbjtcblxudmFyIF9yZXF1aXJlMyA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpL3N0eWxlcycpO1xuXG52YXIgbXVpVGhlbWVhYmxlID0gX3JlcXVpcmUzLm11aVRoZW1lYWJsZTtcblxudmFyIENvbG9yID0gcmVxdWlyZSgnY29sb3InKTtcbnZhciBQeWRpbyA9IHJlcXVpcmUoJ3B5ZGlvJyk7XG5cbnZhciBfUHlkaW8kcmVxdWlyZUxpYiA9IFB5ZGlvLnJlcXVpcmVMaWIoJ2Jvb3QnKTtcblxudmFyIFB5ZGlvQ29udGV4dENvbnN1bWVyID0gX1B5ZGlvJHJlcXVpcmVMaWIuUHlkaW9Db250ZXh0Q29uc3VtZXI7XG5cbnZhciBFbXB0eVN0YXRlVmlldyA9IChmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhFbXB0eVN0YXRlVmlldywgX0NvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBFbXB0eVN0YXRlVmlldyhwcm9wcywgY29udGV4dCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRW1wdHlTdGF0ZVZpZXcpO1xuXG4gICAgICAgIF9Db21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgRW1wdHlTdGF0ZVZpZXcucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBzdHlsZSA9IF9wcm9wcy5zdHlsZTtcbiAgICAgICAgdmFyIGljb25DbGFzc05hbWUgPSBfcHJvcHMuaWNvbkNsYXNzTmFtZTtcbiAgICAgICAgdmFyIHByaW1hcnlUZXh0SWQgPSBfcHJvcHMucHJpbWFyeVRleHRJZDtcbiAgICAgICAgdmFyIHNlY29uZGFyeVRleHRJZCA9IF9wcm9wcy5zZWNvbmRhcnlUZXh0SWQ7XG4gICAgICAgIHZhciBhY3Rpb25MYWJlbElkID0gX3Byb3BzLmFjdGlvbkxhYmVsSWQ7XG4gICAgICAgIHZhciBhY3Rpb25DYWxsYmFjayA9IF9wcm9wcy5hY3Rpb25DYWxsYmFjaztcbiAgICAgICAgdmFyIGFjdGlvblN0eWxlID0gX3Byb3BzLmFjdGlvblN0eWxlO1xuICAgICAgICB2YXIgYWN0aW9uSWNvbkNsYXNzTmFtZSA9IF9wcm9wcy5hY3Rpb25JY29uQ2xhc3NOYW1lO1xuICAgICAgICB2YXIgZ2V0TWVzc2FnZSA9IF9wcm9wcy5nZXRNZXNzYWdlO1xuICAgICAgICB2YXIgaWNvblN0eWxlID0gX3Byb3BzLmljb25TdHlsZTtcbiAgICAgICAgdmFyIGxlZ2VuZFN0eWxlID0gX3Byb3BzLmxlZ2VuZFN0eWxlO1xuXG4gICAgICAgIHZhciBtYWluQ29sb3IgPSBDb2xvcih0aGlzLnByb3BzLm11aVRoZW1lLnBhbGV0dGUucHJpbWFyeTFDb2xvcik7XG5cbiAgICAgICAgdmFyIHN0eWxlcyA9IHtcbiAgICAgICAgICAgIGNvbnRhaW5lcjogX2V4dGVuZHMoe1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbWFpbkNvbG9yLmxpZ2h0bmVzcyg5NykucmdiKCkudG9TdHJpbmcoKVxuICAgICAgICAgICAgfSwgc3R5bGUpLFxuICAgICAgICAgICAgY2VudGVyZWQ6IHtcbiAgICAgICAgICAgICAgICBtYXhXaWR0aDogMjgwLFxuICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgY29sb3I6IG1haW5Db2xvci5mYWRlKDAuNikudG9TdHJpbmcoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGljb246IF9leHRlbmRzKHtcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMTAwXG4gICAgICAgICAgICB9LCBpY29uU3R5bGUpLFxuICAgICAgICAgICAgcHJpbWFyeVRleHQ6IF9leHRlbmRzKHtcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMTYsXG4gICAgICAgICAgICAgICAgZm9udFdlaWdodDogNTAwXG4gICAgICAgICAgICB9LCBsZWdlbmRTdHlsZSksXG4gICAgICAgICAgICBzZWNvbmRhcnlUZXh0OiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAyMCxcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogMTNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidXR0b25Db250YWluZXI6IHtcbiAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDEwMCxcbiAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYnV0dG9uU3R5bGU6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5wcm9wcy5tdWlUaGVtZS5wYWxldHRlLmFjY2VudDJDb2xvclxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgYnV0dG9uSWNvbiA9IGFjdGlvbkljb25DbGFzc05hbWUgPyBSZWFjdC5jcmVhdGVFbGVtZW50KEZvbnRJY29uLCB7IGNsYXNzTmFtZTogYWN0aW9uSWNvbkNsYXNzTmFtZSB9KSA6IG51bGw7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IHN0eWxlOiBzdHlsZXMuY29udGFpbmVyIH0sXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5jZW50ZXJlZCB9LFxuICAgICAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHsgY2xhc3NOYW1lOiBpY29uQ2xhc3NOYW1lLCBzdHlsZTogc3R5bGVzLmljb24gfSksXG4gICAgICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5wcmltYXJ5VGV4dCB9LFxuICAgICAgICAgICAgICAgICAgICBnZXRNZXNzYWdlKHByaW1hcnlUZXh0SWQpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnlUZXh0SWQgJiYgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgc3R5bGU6IHN0eWxlcy5zZWNvbmRhcnlUZXh0IH0sXG4gICAgICAgICAgICAgICAgICAgIGdldE1lc3NhZ2Uoc2Vjb25kYXJ5VGV4dElkKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgYWN0aW9uTGFiZWxJZCAmJiBhY3Rpb25DYWxsYmFjayAmJiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICAgICAgeyBzdHlsZTogX2V4dGVuZHMoe30sIHN0eWxlcy5idXR0b25Db250YWluZXIsIGFjdGlvblN0eWxlKSB9LFxuICAgICAgICAgICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KEZsYXRCdXR0b24sIHsgc3R5bGU6IHN0eWxlcy5idXR0b25TdHlsZSwgbGFiZWw6IGdldE1lc3NhZ2UoYWN0aW9uTGFiZWxJZCksIG9uVG91Y2hUYXA6IGFjdGlvbkNhbGxiYWNrLCBpY29uOiBidXR0b25JY29uIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICByZXR1cm4gRW1wdHlTdGF0ZVZpZXc7XG59KShDb21wb25lbnQpO1xuXG5FbXB0eVN0YXRlVmlldy5wcm9wVHlwZXMgPSB7XG5cbiAgICBweWRpbzogUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW8pLmlzUmVxdWlyZWQsXG4gICAgaWNvbkNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIHByaW1hcnlUZXh0SWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblxuICAgIHNlY29uZGFyeVRleHRJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBhY3Rpb25MYWJlbElkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGFjdGlvbkNhbGxiYWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBhY3Rpb25TdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGljb25TdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBsZWdlbmRTdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBnZXRNZXNzYWdlOiBQcm9wVHlwZXMuZnVuY1xuXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbXB0eVN0YXRlVmlldyA9IFB5ZGlvQ29udGV4dENvbnN1bWVyKEVtcHR5U3RhdGVWaWV3KTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEVtcHR5U3RhdGVWaWV3ID0gbXVpVGhlbWVhYmxlKCkoRW1wdHlTdGF0ZVZpZXcpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBFbXB0eVN0YXRlVmlldztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9iaiwga2V5cykgeyB2YXIgdGFyZ2V0ID0ge307IGZvciAodmFyIGkgaW4gb2JqKSB7IGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlOyB0YXJnZXRbaV0gPSBvYmpbaV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfbWF0ZXJpYWxVaSA9IHJlcXVpcmUoJ21hdGVyaWFsLXVpJyk7XG5cbnZhciBNb2RhbEFwcEJhciA9IGZ1bmN0aW9uIE1vZGFsQXBwQmFyKHByb3BzKSB7XG4gICAgdmFyIHN0eWxlID0gcHJvcHMuc3R5bGU7XG4gICAgdmFyIHRpdGxlU3R5bGUgPSBwcm9wcy50aXRsZVN0eWxlO1xuICAgIHZhciBpY29uU3R5bGVSaWdodCA9IHByb3BzLmljb25TdHlsZVJpZ2h0O1xuICAgIHZhciBpY29uU3R5bGVMZWZ0ID0gcHJvcHMuaWNvblN0eWxlTGVmdDtcblxuICAgIHZhciBvdGhlclByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLCBbJ3N0eWxlJywgJ3RpdGxlU3R5bGUnLCAnaWNvblN0eWxlUmlnaHQnLCAnaWNvblN0eWxlTGVmdCddKTtcblxuICAgIHZhciBzdHlsZXMgPSB7XG4gICAgICAgIHN0eWxlOiBfZXh0ZW5kcyh7XG4gICAgICAgICAgICBmbGV4U2hyaW5rOiAwXG4gICAgICAgIH0sIHN0eWxlKSxcbiAgICAgICAgdGl0bGVTdHlsZTogX2V4dGVuZHMoe1xuICAgICAgICAgICAgbGluZUhlaWdodDogJzU2cHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiA1NixcbiAgICAgICAgICAgIG1hcmdpbkxlZnQ6IC04XG4gICAgICAgIH0sIHRpdGxlU3R5bGUpLFxuICAgICAgICBpY29uU3R5bGVSaWdodDogX2V4dGVuZHMoe1xuICAgICAgICAgICAgbWFyZ2luVG9wOiA0XG4gICAgICAgIH0sIGljb25TdHlsZVJpZ2h0KSxcbiAgICAgICAgaWNvblN0eWxlTGVmdDogX2V4dGVuZHMoe1xuICAgICAgICAgICAgbWFyZ2luVG9wOiA0XG4gICAgICAgIH0sIGljb25TdHlsZUxlZnQpXG4gICAgfTtcblxuICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfbWF0ZXJpYWxVaS5BcHBCYXIsIF9leHRlbmRzKHt9LCBvdGhlclByb3BzLCBzdHlsZXMpKTtcbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IE1vZGFsQXBwQmFyO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4vKmJvcmRlclJhZGl1czogJzJweCAycHggMCAwJywqL1xuIiwiLypcbiAqIENvcHlyaWdodCAyMDA3LTIwMTcgQ2hhcmxlcyBkdSBKZXUgLSBBYnN0cml1bSBTQVMgPHRlYW0gKGF0KSBweWQuaW8+XG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBQeWRpby5cbiAqXG4gKiBQeWRpbyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFB5ZGlvIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIFB5ZGlvLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICpcbiAqIFRoZSBsYXRlc3QgY29kZSBjYW4gYmUgZm91bmQgYXQgPGh0dHBzOi8vcHlkaW8uY29tPi5cbiAqL1xuXG4vKipcbiAqIEdldCBpbmZvIGZyb20gUHlkaW8gY29udHJvbGxlciBhbiBidWlsZCBhblxuICogYWN0aW9uIGJhciB3aXRoIGFjdGl2ZSBhY3Rpb25zLlxuICogVEJDXG4gKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1NpbXBsZVJlYWN0QWN0aW9uQmFyJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBkYXRhTW9kZWw6IFJlYWN0LlByb3BUeXBlcy5pbnN0YW5jZU9mKFB5ZGlvRGF0YU1vZGVsKS5pc1JlcXVpcmVkLFxuICAgICAgICBub2RlOiBSZWFjdC5Qcm9wVHlwZXMuaW5zdGFuY2VPZihBanhwTm9kZSkuaXNSZXF1aXJlZCxcbiAgICAgICAgYWN0aW9uczogUmVhY3QuUHJvcFR5cGVzLmFycmF5XG4gICAgfSxcblxuICAgIGNsaWNrQWN0aW9uOiBmdW5jdGlvbiBjbGlja0FjdGlvbihldmVudCkge1xuICAgICAgICB2YXIgYWN0aW9uTmFtZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKFwiZGF0YS1hY3Rpb25cIik7XG4gICAgICAgIHRoaXMucHJvcHMuZGF0YU1vZGVsLnNldFNlbGVjdGVkTm9kZXMoW3RoaXMucHJvcHMubm9kZV0pO1xuICAgICAgICB2YXIgYSA9IHdpbmRvdy5weWRpby5Db250cm9sbGVyLmdldEFjdGlvbkJ5TmFtZShhY3Rpb25OYW1lKTtcbiAgICAgICAgYS5maXJlQ29udGV4dENoYW5nZSh0aGlzLnByb3BzLmRhdGFNb2RlbCwgdHJ1ZSwgd2luZG93LnB5ZGlvLnVzZXIpO1xuICAgICAgICAvL2EuZmlyZVNlbGVjdGlvbkNoYW5nZSh0aGlzLnByb3BzLmRhdGFNb2RlbCk7XG4gICAgICAgIGEuYXBwbHkoW3RoaXMucHJvcHMuZGF0YU1vZGVsXSk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0sXG5cbiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIGFjdGlvbnMgPSB0aGlzLnByb3BzLmFjdGlvbnMubWFwKChmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtcbiAgICAgICAgICAgICAgICBrZXk6IGEub3B0aW9ucy5uYW1lLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogYS5vcHRpb25zLmljb25fY2xhc3MgKyAnIG1hdGVyaWFsLWxpc3QtYWN0aW9uLWlubGluZScgfHwgJycsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGEub3B0aW9ucy50aXRsZSxcbiAgICAgICAgICAgICAgICAnZGF0YS1hY3Rpb24nOiBhLm9wdGlvbnMubmFtZSxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLmNsaWNrQWN0aW9uIH0pO1xuICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgYWN0aW9uc1xuICAgICAgICApO1xuICAgIH1cbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMDctMjAxNyBDaGFybGVzIGR1IEpldSAtIEFic3RyaXVtIFNBUyA8dGVhbSAoYXQpIHB5ZC5pbz5cbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFB5ZGlvLlxuICpcbiAqIFB5ZGlvIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogUHlkaW8gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggUHlkaW8uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKlxuICogVGhlIGxhdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9weWRpby5jb20+LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX3V0aWxETkQgPSByZXF1aXJlKCcuLi91dGlsL0RORCcpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcHlkaW8gPSByZXF1aXJlKCdweWRpbycpO1xuXG52YXIgX3B5ZGlvMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3B5ZGlvKTtcblxudmFyIF9QeWRpbyRyZXF1aXJlTGliID0gX3B5ZGlvMlsnZGVmYXVsdCddLnJlcXVpcmVMaWIoJ2hvYycpO1xuXG52YXIgd2l0aENvbnRleHRNZW51ID0gX1B5ZGlvJHJlcXVpcmVMaWIud2l0aENvbnRleHRNZW51O1xuXG52YXIgQ29udGV4dE1lbnVXcmFwcGVyID0gZnVuY3Rpb24gQ29udGV4dE1lbnVXcmFwcGVyKHByb3BzKSB7XG4gICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdkaXYnLCBwcm9wcyk7XG59O1xuQ29udGV4dE1lbnVXcmFwcGVyID0gd2l0aENvbnRleHRNZW51KENvbnRleHRNZW51V3JhcHBlcik7XG5cbi8qKlxuICogVHJlZSBOb2RlXG4gKi9cbnZhciBTaW1wbGVUcmVlTm9kZSA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVDbGFzcyh7XG4gICAgZGlzcGxheU5hbWU6ICdTaW1wbGVUcmVlTm9kZScsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgY29sbGFwc2U6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgZm9yY2VFeHBhbmQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgY2hpbGRyZW5Pbmx5OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIGRlcHRoOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm51bWJlcixcbiAgICAgICAgb25Ob2RlU2VsZWN0OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIG5vZGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuaW5zdGFuY2VPZihBanhwTm9kZSksXG4gICAgICAgIGRhdGFNb2RlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKFB5ZGlvRGF0YU1vZGVsKSxcbiAgICAgICAgZm9yY2VMYWJlbDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIC8vIE9wdGlvbmFsIGN1cnJlbnRseSBzZWxlY3RlZCBkZXRlY3Rpb25cbiAgICAgICAgbm9kZUlzU2VsZWN0ZWQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgLy8gT3B0aW9uYWwgY2hlY2tib3hlc1xuICAgICAgICBjaGVja2JveGVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICBjaGVja2JveGVzVmFsdWVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgICAgY2hlY2tib3hlc0NvbXB1dGVTdGF0dXM6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgb25DaGVja2JveENoZWNrOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHBhZGRpbmdPZmZzZXQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMubnVtYmVyXG4gICAgfSxcblxuICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gZ2V0RGVmYXVsdFByb3BzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sbGFwc2U6IGZhbHNlLFxuICAgICAgICAgICAgY2hpbGRyZW5Pbmx5OiBmYWxzZSxcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgcGFkZGluZ09mZnNldDogMCxcbiAgICAgICAgICAgIG9uTm9kZVNlbGVjdDogZnVuY3Rpb24gb25Ob2RlU2VsZWN0KG5vZGUpIHt9XG4gICAgICAgIH07XG4gICAgfSxcblxuICAgIGxpc3RlblRvTm9kZTogZnVuY3Rpb24gbGlzdGVuVG9Ob2RlKG5vZGUpIHtcbiAgICAgICAgdGhpcy5fY2hpbGRyZW5MaXN0ZW5lciA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb3VudGVkKCkpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjaGlsZHJlbjogdGhpcy5fbm9kZVRvQ2hpbGRyZW4obm9kZSkgfSk7XG4gICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuX25vZGVMaXN0ZW5lciA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNNb3VudGVkKCkpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKTtcbiAgICAgICAgbm9kZS5vYnNlcnZlKFwiY2hpbGRfYWRkZWRcIiwgdGhpcy5fY2hpbGRyZW5MaXN0ZW5lcik7XG4gICAgICAgIG5vZGUub2JzZXJ2ZShcImNoaWxkX3JlbW92ZWRcIiwgdGhpcy5fY2hpbGRyZW5MaXN0ZW5lcik7XG4gICAgICAgIG5vZGUub2JzZXJ2ZShcImxvYWRlZFwiLCB0aGlzLl9jaGlsZHJlbkxpc3RlbmVyKTtcbiAgICAgICAgbm9kZS5vYnNlcnZlKFwibm9kZV9yZXBsYWNlZFwiLCB0aGlzLl9ub2RlTGlzdGVuZXIpO1xuICAgIH0sXG5cbiAgICBzdG9wTGlzdGVuaW5nOiBmdW5jdGlvbiBzdG9wTGlzdGVuaW5nKG5vZGUpIHtcbiAgICAgICAgbm9kZS5zdG9wT2JzZXJ2aW5nKFwiY2hpbGRfYWRkZWRcIiwgdGhpcy5fY2hpbGRyZW5MaXN0ZW5lcik7XG4gICAgICAgIG5vZGUuc3RvcE9ic2VydmluZyhcImNoaWxkX3JlbW92ZWRcIiwgdGhpcy5fY2hpbGRyZW5MaXN0ZW5lcik7XG4gICAgICAgIG5vZGUuc3RvcE9ic2VydmluZyhcImxvYWRlZFwiLCB0aGlzLl9jaGlsZHJlbkxpc3RlbmVyKTtcbiAgICAgICAgbm9kZS5zdG9wT2JzZXJ2aW5nKFwibm9kZV9yZXBsYWNlZFwiLCB0aGlzLl9ub2RlTGlzdGVuZXIpO1xuICAgIH0sXG5cbiAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMubGlzdGVuVG9Ob2RlKHRoaXMucHJvcHMubm9kZSk7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgdGhpcy5zdG9wTGlzdGVuaW5nKHRoaXMucHJvcHMubm9kZSk7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIHZhciBvbGROb2RlID0gdGhpcy5wcm9wcy5ub2RlO1xuICAgICAgICB2YXIgbmV3Tm9kZSA9IG5leHRQcm9wcy5ub2RlO1xuICAgICAgICBpZiAobmV3Tm9kZSA9PSBvbGROb2RlICYmIG5ld05vZGUuZ2V0TWV0YWRhdGEoKS5nZXQoXCJwYWdpbmF0aW9uRGF0YVwiKSkge1xuICAgICAgICAgICAgdmFyIHJlbWFwZWRDaGlsZHJlbiA9IHRoaXMuc3RhdGUuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgICAgICAgYy5zZXRQYXJlbnQobmV3Tm9kZSk7cmV0dXJuIGM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciByZW1hcGVkUGF0aGVzID0gdGhpcy5zdGF0ZS5jaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYy5nZXRQYXRoKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBuZXdDaGlsZHJlbiA9IHRoaXMuX25vZGVUb0NoaWxkcmVuKG5ld05vZGUpO1xuICAgICAgICAgICAgbmV3Q2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAobmMpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVtYXBlZFBhdGhlcy5pbmRleE9mKG5jLmdldFBhdGgoKSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbWFwZWRDaGlsZHJlbi5wdXNoKG5jKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjaGlsZHJlbjogcmVtYXBlZENoaWxkcmVuIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkcmVuOiB0aGlzLl9ub2RlVG9DaGlsZHJlbihuZXdOb2RlKSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3Tm9kZSAhPT0gb2xkTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9wTGlzdGVuaW5nKG9sZE5vZGUpO1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5Ub05vZGUobmV3Tm9kZSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaG93Q2hpbGRyZW46ICF0aGlzLnByb3BzLmNvbGxhcHNlIHx8IHRoaXMucHJvcHMuZm9yY2VFeHBhbmQsXG4gICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5fbm9kZVRvQ2hpbGRyZW4odGhpcy5wcm9wcy5ub2RlKVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBfbm9kZVRvQ2hpbGRyZW46IGZ1bmN0aW9uIF9ub2RlVG9DaGlsZHJlbigpIHtcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gW107XG4gICAgICAgIHRoaXMucHJvcHMubm9kZS5nZXRDaGlsZHJlbigpLmZvckVhY2goZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgIGlmICghYy5pc0xlYWYoKSB8fCBjLmdldEFqeHBNaW1lKCkgPT09ICdhanhwX2Jyb3dzYWJsZV9hcmNoaXZlJykgY2hpbGRyZW4ucHVzaChjKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICB9LFxuXG4gICAgb25Ob2RlU2VsZWN0OiBmdW5jdGlvbiBvbk5vZGVTZWxlY3QoZXYpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Ob2RlU2VsZWN0KSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uTm9kZVNlbGVjdCh0aGlzLnByb3BzLm5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0sXG4gICAgb25DaGlsZERpc3BsYXlUb2dnbGU6IGZ1bmN0aW9uIG9uQ2hpbGREaXNwbGF5VG9nZ2xlKGV2KSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm5vZGUuZ2V0Q2hpbGRyZW4oKS5zaXplKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0NoaWxkcmVuOiAhdGhpcy5zdGF0ZS5zaG93Q2hpbGRyZW4gfSk7XG4gICAgICAgIH1cbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSxcbiAgICBub2RlSXNTZWxlY3RlZDogZnVuY3Rpb24gbm9kZUlzU2VsZWN0ZWQobikge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5ub2RlSXNTZWxlY3RlZCkgcmV0dXJuIHRoaXMucHJvcHMubm9kZUlzU2VsZWN0ZWQobik7ZWxzZSByZXR1cm4gdGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0U2VsZWN0ZWROb2RlcygpLmluZGV4T2YobikgIT09IC0xO1xuICAgIH0sXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBub2RlID0gX3Byb3BzLm5vZGU7XG4gICAgICAgIHZhciBjaGlsZHJlbk9ubHkgPSBfcHJvcHMuY2hpbGRyZW5Pbmx5O1xuICAgICAgICB2YXIgY2FuRHJvcCA9IF9wcm9wcy5jYW5Ecm9wO1xuICAgICAgICB2YXIgaXNPdmVyQ3VycmVudCA9IF9wcm9wcy5pc092ZXJDdXJyZW50O1xuICAgICAgICB2YXIgY2hlY2tib3hlcyA9IF9wcm9wcy5jaGVja2JveGVzO1xuICAgICAgICB2YXIgY2hlY2tib3hlc0NvbXB1dGVTdGF0dXMgPSBfcHJvcHMuY2hlY2tib3hlc0NvbXB1dGVTdGF0dXM7XG4gICAgICAgIHZhciBjaGVja2JveGVzVmFsdWVzID0gX3Byb3BzLmNoZWNrYm94ZXNWYWx1ZXM7XG4gICAgICAgIHZhciBvbkNoZWNrYm94Q2hlY2sgPSBfcHJvcHMub25DaGVja2JveENoZWNrO1xuICAgICAgICB2YXIgZGVwdGggPSBfcHJvcHMuZGVwdGg7XG4gICAgICAgIHZhciBwYWRkaW5nT2Zmc2V0ID0gX3Byb3BzLnBhZGRpbmdPZmZzZXQ7XG4gICAgICAgIHZhciBmb3JjZUV4cGFuZCA9IF9wcm9wcy5mb3JjZUV4cGFuZDtcbiAgICAgICAgdmFyIHNlbGVjdGVkSXRlbVN0eWxlID0gX3Byb3BzLnNlbGVjdGVkSXRlbVN0eWxlO1xuICAgICAgICB2YXIgZ2V0SXRlbVN0eWxlID0gX3Byb3BzLmdldEl0ZW1TdHlsZTtcbiAgICAgICAgdmFyIGZvcmNlTGFiZWwgPSBfcHJvcHMuZm9yY2VMYWJlbDtcblxuICAgICAgICB2YXIgaGFzRm9sZGVyQ2hpbGRyZW5zID0gdGhpcy5zdGF0ZS5jaGlsZHJlbi5sZW5ndGggPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHZhciBoYXNDaGlsZHJlbjtcbiAgICAgICAgaWYgKGhhc0ZvbGRlckNoaWxkcmVucykge1xuICAgICAgICAgICAgaGFzQ2hpbGRyZW4gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnc3BhbicsXG4gICAgICAgICAgICAgICAgeyBvbkNsaWNrOiB0aGlzLm9uQ2hpbGREaXNwbGF5VG9nZ2xlIH0sXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZS5zaG93Q2hpbGRyZW4gfHwgZm9yY2VFeHBhbmQgPyBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiAndHJlZS1pY29uIGljb24tYW5nbGUtZG93bicgfSkgOiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiAndHJlZS1pY29uIGljb24tYW5nbGUtcmlnaHQnIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGNuYW1lID0gXCJ0cmVlLWljb24gaWNvbi1hbmdsZS1yaWdodFwiO1xuICAgICAgICAgICAgaWYgKG5vZGUuaXNMb2FkZWQoKSkge1xuICAgICAgICAgICAgICAgIGNuYW1lICs9IFwiIG5vLWZvbGRlci1jaGlsZHJlblwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGFzQ2hpbGRyZW4gPSBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiBjbmFtZSB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNTZWxlY3RlZCA9IHRoaXMubm9kZUlzU2VsZWN0ZWQobm9kZSkgPyAnbXVpLW1lbnUtaXRlbSBtdWktaXMtc2VsZWN0ZWQnIDogJ211aS1tZW51LWl0ZW0nO1xuICAgICAgICB2YXIgc2VsZkxhYmVsO1xuICAgICAgICBpZiAoIWNoaWxkcmVuT25seSkge1xuICAgICAgICAgICAgaWYgKGNhbkRyb3AgJiYgaXNPdmVyQ3VycmVudCkge1xuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQgKz0gJyBkcm9wcGFibGUtYWN0aXZlJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBib3hlcztcbiAgICAgICAgICAgIGlmIChjaGVja2JveGVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IHt9LFxuICAgICAgICAgICAgICAgICAgICBpbmhlcml0ZWQgPSBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQgPSB7fSxcbiAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbENsYXNzTmFtZSA9ICcnO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja2JveGVzQ29tcHV0ZVN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdHVzID0gY2hlY2tib3hlc0NvbXB1dGVTdGF0dXMobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IHN0YXR1cy5WQUxVRVM7XG4gICAgICAgICAgICAgICAgICAgIGluaGVyaXRlZCA9IHN0YXR1cy5JTkhFUklURUQ7XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkID0gc3RhdHVzLkRJU0FCTEVEO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzLkNMQVNTTkFNRSkgYWRkaXRpb25hbENsYXNzTmFtZSA9ICcgJyArIHN0YXR1cy5DTEFTU05BTUU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGVja2JveGVzVmFsdWVzICYmIGNoZWNrYm94ZXNWYWx1ZXNbbm9kZS5nZXRQYXRoKCldKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IGNoZWNrYm94ZXNWYWx1ZXNbbm9kZS5nZXRQYXRoKCldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdmFsdWVDbGFzc2VzID0gW107XG4gICAgICAgICAgICAgICAgYm94ZXMgPSBjaGVja2JveGVzLm1hcCgoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdmFsdWVzW2NdICE9PSB1bmRlZmluZWQgPyB2YWx1ZXNbY10gOiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNsaWNrID0gKGZ1bmN0aW9uIChldmVudCwgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hlY2tib3hDaGVjayhub2RlLCBjLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZCkgdmFsdWVDbGFzc2VzLnB1c2goYyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChSZWFjdE1VSS5DaGVja2JveCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogYyArIFwiLVwiICsgKHNlbGVjdGVkID8gXCJ0cnVlXCIgOiBcImZhbHNlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoZWNrOiBjbGljayxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZFtjXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJjYm94LVwiICsgY1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGVkICs9IGluaGVyaXRlZCA/IFwiIGluaGVyaXRlZCBcIiA6IFwiXCI7XG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZCArPSB2YWx1ZUNsYXNzZXMubGVuZ3RoID8gXCIgY2hlY2tib3gtdmFsdWVzLVwiICsgdmFsdWVDbGFzc2VzLmpvaW4oJy0nKSA6IFwiIGNoZWNrYm94LXZhbHVlcy1lbXB0eVwiO1xuICAgICAgICAgICAgICAgIGJveGVzID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogXCJ0cmVlLWNoZWNrYm94ZXNcIiArIGFkZGl0aW9uYWxDbGFzc05hbWUgfSxcbiAgICAgICAgICAgICAgICAgICAgYm94ZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGl0ZW1TdHlsZSA9IHsgcGFkZGluZ0xlZnQ6IHBhZGRpbmdPZmZzZXQgKyBkZXB0aCAqIDIwIH07XG4gICAgICAgICAgICBpZiAodGhpcy5ub2RlSXNTZWxlY3RlZChub2RlKSAmJiBzZWxlY3RlZEl0ZW1TdHlsZSkge1xuICAgICAgICAgICAgICAgIGl0ZW1TdHlsZSA9IF9leHRlbmRzKHt9LCBpdGVtU3R5bGUsIHNlbGVjdGVkSXRlbVN0eWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChnZXRJdGVtU3R5bGUpIHtcbiAgICAgICAgICAgICAgICBpdGVtU3R5bGUgPSBfZXh0ZW5kcyh7fSwgaXRlbVN0eWxlLCBnZXRJdGVtU3R5bGUobm9kZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGljb24gPSAnbWRpIG1kaS1mb2xkZXInO1xuICAgICAgICAgICAgdmFyIGFqeHBNaW1lID0gbm9kZS5nZXRBanhwTWltZSgpO1xuICAgICAgICAgICAgaWYgKGFqeHBNaW1lID09PSAnYWp4cF9icm93c2FibGVfYXJjaGl2ZScpIHtcbiAgICAgICAgICAgICAgICBpY29uID0gJ21kaSBtZGktYXJjaGl2ZSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFqeHBNaW1lID09PSAnYWp4cF9yZWN5Y2xlJykge1xuICAgICAgICAgICAgICAgIGljb24gPSAnbWRpIG1kaS1kZWxldGUnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VsZkxhYmVsID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgQ29udGV4dE1lbnVXcmFwcGVyLFxuICAgICAgICAgICAgICAgIHsgbm9kZTogbm9kZSwgY2xhc3NOYW1lOiAndHJlZS1pdGVtICcgKyBpc1NlbGVjdGVkICsgKGJveGVzID8gJyBoYXMtY2hlY2tib3hlcycgOiAnJyksIHN0eWxlOiBpdGVtU3R5bGUgfSxcbiAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAndHJlZS1pdGVtLWxhYmVsJywgb25DbGljazogdGhpcy5vbk5vZGVTZWxlY3QsIHRpdGxlOiBub2RlLmdldExhYmVsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1pZCc6IG5vZGUuZ2V0UGF0aCgpIH0sXG4gICAgICAgICAgICAgICAgICAgIGhhc0NoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnc3BhbicsIHsgY2xhc3NOYW1lOiBcInRyZWUtaWNvbiBcIiArIGljb24gfSksXG4gICAgICAgICAgICAgICAgICAgIGZvcmNlTGFiZWwgPyBmb3JjZUxhYmVsIDogbm9kZS5nZXRMYWJlbCgpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBib3hlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaGlsZHJlbiA9IFtdO1xuICAgICAgICB2YXIgY29ubmVjdG9yID0gZnVuY3Rpb24gY29ubmVjdG9yKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgIH07XG4gICAgICAgIHZhciBkcmFnZ2FibGUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHdpbmRvdy5SZWFjdERORCAmJiB0aGlzLnByb3BzLmNvbm5lY3REcm9wVGFyZ2V0ICYmIHRoaXMucHJvcHMuY29ubmVjdERyYWdTb3VyY2UpIHtcbiAgICAgICAgICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvbm5lY3REcmFnU291cmNlID0gX3RoaXMucHJvcHMuY29ubmVjdERyYWdTb3VyY2U7XG4gICAgICAgICAgICAgICAgdmFyIGNvbm5lY3REcm9wVGFyZ2V0ID0gX3RoaXMucHJvcHMuY29ubmVjdERyb3BUYXJnZXQ7XG4gICAgICAgICAgICAgICAgY29ubmVjdG9yID0gZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3REcmFnU291cmNlKFJlYWN0RE9NLmZpbmRET01Ob2RlKGluc3RhbmNlKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3REcm9wVGFyZ2V0KFJlYWN0RE9NLmZpbmRET01Ob2RlKGluc3RhbmNlKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBkcmFnZ2FibGUgPSB0cnVlO1xuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnN0YXRlLnNob3dDaGlsZHJlbiB8fCBmb3JjZUV4cGFuZCkge1xuICAgICAgICAgICAgY2hpbGRyZW4gPSB0aGlzLnN0YXRlLmNoaWxkcmVuLm1hcCgoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHByb3BzID0gX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yY2VMYWJlbDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5Pbmx5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAga2V5OiBjaGlsZC5nZXRQYXRoKCksXG4gICAgICAgICAgICAgICAgICAgIG5vZGU6IGNoaWxkLFxuICAgICAgICAgICAgICAgICAgICBkZXB0aDogZGVwdGggKyAxXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KGRyYWdnYWJsZSA/IERyYWdEcm9wVHJlZU5vZGUgOiBTaW1wbGVUcmVlTm9kZSwgcHJvcHMpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2xpJyxcbiAgICAgICAgICAgIHsgcmVmOiBjb25uZWN0b3IsIGNsYXNzTmFtZTogXCJ0cmVlbm9kZVwiICsgbm9kZS5nZXRQYXRoKCkucmVwbGFjZSgvXFwvL2csICdfJykgfSxcbiAgICAgICAgICAgIHNlbGZMYWJlbCxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICd1bCcsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn0pO1xuXG52YXIgRHJhZ0Ryb3BUcmVlTm9kZTtcbmlmICh3aW5kb3cuUmVhY3RETkQpIHtcbiAgICBEcmFnRHJvcFRyZWVOb2RlID0gUmVhY3RETkQuZmxvdyhSZWFjdERORC5EcmFnU291cmNlKF91dGlsRE5ELlR5cGVzLk5PREVfUFJPVklERVIsIF91dGlsRE5ELm5vZGVEcmFnU291cmNlLCBfdXRpbERORC5jb2xsZWN0KSwgUmVhY3RETkQuRHJvcFRhcmdldChfdXRpbERORC5UeXBlcy5OT0RFX1BST1ZJREVSLCBfdXRpbERORC5ub2RlRHJvcFRhcmdldCwgX3V0aWxETkQuY29sbGVjdERyb3ApKShTaW1wbGVUcmVlTm9kZSk7XG59IGVsc2Uge1xuICAgIERyYWdEcm9wVHJlZU5vZGUgPSBTaW1wbGVUcmVlTm9kZTtcbn1cblxuLyoqXG4gKiBTaW1wbGUgb3BlbmFibGUgLyBsb2FkYWJsZSB0cmVlIHRha2luZyBBanhwTm9kZSBhcyBpbnB1dHNcbiAqL1xudmFyIERORFRyZWVWaWV3ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0RORFRyZWVWaWV3JyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBzaG93Um9vdDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICByb290TGFiZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBvbk5vZGVTZWxlY3Q6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgbm9kZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKEFqeHBOb2RlKS5pc1JlcXVpcmVkLFxuICAgICAgICBkYXRhTW9kZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpb0RhdGFNb2RlbCkuaXNSZXF1aXJlZCxcbiAgICAgICAgc2VsZWN0YWJsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBzZWxlY3RhYmxlTXVsdGlwbGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgaW5pdGlhbFNlbGVjdGlvbk1vZGVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICBvblNlbGVjdGlvbkNoYW5nZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBmb3JjZUV4cGFuZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICAvLyBPcHRpb25hbCBjdXJyZW50bHkgc2VsZWN0ZWQgZGV0ZWN0aW9uXG4gICAgICAgIG5vZGVJc1NlbGVjdGVkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8vIE9wdGlvbmFsIGNoZWNrYm94ZXNcbiAgICAgICAgY2hlY2tib3hlczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgY2hlY2tib3hlc1ZhbHVlczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIGNoZWNrYm94ZXNDb21wdXRlU3RhdHVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIG9uQ2hlY2tib3hDaGVjazogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBwYWRkaW5nT2Zmc2V0OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm51bWJlclxuICAgIH0sXG5cbiAgICBnZXREZWZhdWx0UHJvcHM6IGZ1bmN0aW9uIGdldERlZmF1bHRQcm9wcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNob3dSb290OiB0cnVlLFxuICAgICAgICAgICAgb25Ob2RlU2VsZWN0OiB0aGlzLm9uTm9kZVNlbGVjdFxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBvbk5vZGVTZWxlY3Q6IGZ1bmN0aW9uIG9uTm9kZVNlbGVjdChub2RlKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uTm9kZVNlbGVjdCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbk5vZGVTZWxlY3Qobm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5zZXRTZWxlY3RlZE5vZGVzKFtub2RlXSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICd1bCcsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWUgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KERyYWdEcm9wVHJlZU5vZGUsIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbk9ubHk6ICF0aGlzLnByb3BzLnNob3dSb290LFxuICAgICAgICAgICAgICAgIGZvcmNlRXhwYW5kOiB0aGlzLnByb3BzLmZvcmNlRXhwYW5kLFxuICAgICAgICAgICAgICAgIG5vZGU6IHRoaXMucHJvcHMubm9kZSA/IHRoaXMucHJvcHMubm9kZSA6IHRoaXMucHJvcHMuZGF0YU1vZGVsLmdldFJvb3ROb2RlKCksXG4gICAgICAgICAgICAgICAgZGF0YU1vZGVsOiB0aGlzLnByb3BzLmRhdGFNb2RlbCxcbiAgICAgICAgICAgICAgICBvbk5vZGVTZWxlY3Q6IHRoaXMub25Ob2RlU2VsZWN0LFxuICAgICAgICAgICAgICAgIG5vZGVJc1NlbGVjdGVkOiB0aGlzLnByb3BzLm5vZGVJc1NlbGVjdGVkLFxuICAgICAgICAgICAgICAgIGZvcmNlTGFiZWw6IHRoaXMucHJvcHMucm9vdExhYmVsLFxuICAgICAgICAgICAgICAgIGNoZWNrYm94ZXM6IHRoaXMucHJvcHMuY2hlY2tib3hlcyxcbiAgICAgICAgICAgICAgICBjaGVja2JveGVzVmFsdWVzOiB0aGlzLnByb3BzLmNoZWNrYm94ZXNWYWx1ZXMsXG4gICAgICAgICAgICAgICAgY2hlY2tib3hlc0NvbXB1dGVTdGF0dXM6IHRoaXMucHJvcHMuY2hlY2tib3hlc0NvbXB1dGVTdGF0dXMsXG4gICAgICAgICAgICAgICAgb25DaGVja2JveENoZWNrOiB0aGlzLnByb3BzLm9uQ2hlY2tib3hDaGVjayxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1TdHlsZTogdGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1TdHlsZSxcbiAgICAgICAgICAgICAgICBnZXRJdGVtU3R5bGU6IHRoaXMucHJvcHMuZ2V0SXRlbVN0eWxlLFxuICAgICAgICAgICAgICAgIHBhZGRpbmdPZmZzZXQ6IHRoaXMucHJvcHMucGFkZGluZ09mZnNldFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59KTtcblxudmFyIFRyZWVWaWV3ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ1RyZWVWaWV3JyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBzaG93Um9vdDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICByb290TGFiZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICBvbk5vZGVTZWxlY3Q6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgbm9kZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKEFqeHBOb2RlKS5pc1JlcXVpcmVkLFxuICAgICAgICBkYXRhTW9kZWw6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuaW5zdGFuY2VPZihQeWRpb0RhdGFNb2RlbCkuaXNSZXF1aXJlZCxcbiAgICAgICAgc2VsZWN0YWJsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICBzZWxlY3RhYmxlTXVsdGlwbGU6IF9yZWFjdDJbJ2RlZmF1bHQnXS5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgaW5pdGlhbFNlbGVjdGlvbk1vZGVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmFycmF5LFxuICAgICAgICBvblNlbGVjdGlvbkNoYW5nZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBmb3JjZUV4cGFuZDogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sLFxuICAgICAgICAvLyBPcHRpb25hbCBjdXJyZW50bHkgc2VsZWN0ZWQgZGV0ZWN0aW9uXG4gICAgICAgIG5vZGVJc1NlbGVjdGVkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIC8vIE9wdGlvbmFsIGNoZWNrYm94ZXNcbiAgICAgICAgY2hlY2tib3hlczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5hcnJheSxcbiAgICAgICAgY2hlY2tib3hlc1ZhbHVlczogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIGNoZWNrYm94ZXNDb21wdXRlU3RhdHVzOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIG9uQ2hlY2tib3hDaGVjazogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBwYWRkaW5nT2Zmc2V0OiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm51bWJlclxuICAgIH0sXG5cbiAgICBnZXREZWZhdWx0UHJvcHM6IGZ1bmN0aW9uIGdldERlZmF1bHRQcm9wcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNob3dSb290OiB0cnVlLFxuICAgICAgICAgICAgb25Ob2RlU2VsZWN0OiB0aGlzLm9uTm9kZVNlbGVjdFxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBvbk5vZGVTZWxlY3Q6IGZ1bmN0aW9uIG9uTm9kZVNlbGVjdChub2RlKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uTm9kZVNlbGVjdCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbk5vZGVTZWxlY3Qobm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5zZXRTZWxlY3RlZE5vZGVzKFtub2RlXSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICd1bCcsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jbGFzc05hbWUgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFNpbXBsZVRyZWVOb2RlLCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5Pbmx5OiAhdGhpcy5wcm9wcy5zaG93Um9vdCxcbiAgICAgICAgICAgICAgICBmb3JjZUV4cGFuZDogdGhpcy5wcm9wcy5mb3JjZUV4cGFuZCxcbiAgICAgICAgICAgICAgICBub2RlOiB0aGlzLnByb3BzLm5vZGUgPyB0aGlzLnByb3BzLm5vZGUgOiB0aGlzLnByb3BzLmRhdGFNb2RlbC5nZXRSb290Tm9kZSgpLFxuICAgICAgICAgICAgICAgIGRhdGFNb2RlbDogdGhpcy5wcm9wcy5kYXRhTW9kZWwsXG4gICAgICAgICAgICAgICAgb25Ob2RlU2VsZWN0OiB0aGlzLm9uTm9kZVNlbGVjdCxcbiAgICAgICAgICAgICAgICBub2RlSXNTZWxlY3RlZDogdGhpcy5wcm9wcy5ub2RlSXNTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBmb3JjZUxhYmVsOiB0aGlzLnByb3BzLnJvb3RMYWJlbCxcbiAgICAgICAgICAgICAgICBjaGVja2JveGVzOiB0aGlzLnByb3BzLmNoZWNrYm94ZXMsXG4gICAgICAgICAgICAgICAgY2hlY2tib3hlc1ZhbHVlczogdGhpcy5wcm9wcy5jaGVja2JveGVzVmFsdWVzLFxuICAgICAgICAgICAgICAgIGNoZWNrYm94ZXNDb21wdXRlU3RhdHVzOiB0aGlzLnByb3BzLmNoZWNrYm94ZXNDb21wdXRlU3RhdHVzLFxuICAgICAgICAgICAgICAgIG9uQ2hlY2tib3hDaGVjazogdGhpcy5wcm9wcy5vbkNoZWNrYm94Q2hlY2ssXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtU3R5bGU6IHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtU3R5bGUsXG4gICAgICAgICAgICAgICAgZ2V0SXRlbVN0eWxlOiB0aGlzLnByb3BzLmdldEl0ZW1TdHlsZSxcbiAgICAgICAgICAgICAgICBwYWRkaW5nT2Zmc2V0OiB0aGlzLnByb3BzLnBhZGRpbmdPZmZzZXRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG59KTtcblxudmFyIEZvbGRlcnNUcmVlID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUNsYXNzKHtcbiAgICBkaXNwbGF5TmFtZTogJ0ZvbGRlcnNUcmVlJyxcblxuICAgIHByb3BUeXBlczoge1xuICAgICAgICBweWRpbzogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5pbnN0YW5jZU9mKF9weWRpbzJbJ2RlZmF1bHQnXSkuaXNSZXF1aXJlZCxcbiAgICAgICAgZGF0YU1vZGVsOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmluc3RhbmNlT2YoUHlkaW9EYXRhTW9kZWwpLmlzUmVxdWlyZWQsXG4gICAgICAgIGNsYXNzTmFtZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIG9uTm9kZVNlbGVjdGVkOiBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGRyYWdnYWJsZTogX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5ib29sXG4gICAgfSxcblxuICAgIG5vZGVPYnNlcnZlcjogZnVuY3Rpb24gbm9kZU9ic2VydmVyKCkge1xuICAgICAgICB2YXIgciA9IHRoaXMucHJvcHMuZGF0YU1vZGVsLmdldFJvb3ROb2RlKCk7XG4gICAgICAgIGlmICghci5pc0xvYWRlZCgpKSB7XG4gICAgICAgICAgICByLm9ic2VydmVPbmNlKFwibG9hZGVkXCIsIChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB2YXIgZG0gPSB0aGlzLnByb3BzLmRhdGFNb2RlbDtcbiAgICAgICAgdGhpcy5fZG1PYnMgPSB0aGlzLm5vZGVPYnNlcnZlcjtcbiAgICAgICAgZG0ub2JzZXJ2ZShcImNvbnRleHRfY2hhbmdlZFwiLCB0aGlzLl9kbU9icyk7XG4gICAgICAgIGRtLm9ic2VydmUoXCJyb290X25vZGVfY2hhbmdlZFwiLCB0aGlzLl9kbU9icyk7XG4gICAgICAgIHRoaXMubm9kZU9ic2VydmVyKCk7XG4gICAgfSxcblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RtT2JzKSB7XG4gICAgICAgICAgICB2YXIgZG0gPSB0aGlzLnByb3BzLmRhdGFNb2RlbDtcbiAgICAgICAgICAgIGRtLnN0b3BPYnNlcnZpbmcoXCJjb250ZXh0X2NoYW5nZWRcIiwgdGhpcy5fZG1PYnMpO1xuICAgICAgICAgICAgZG0uc3RvcE9ic2VydmluZyhcInJvb3Rfbm9kZV9jaGFuZ2VkXCIsIHRoaXMuX2RtT2JzKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICB0cmVlTm9kZVNlbGVjdGVkOiBmdW5jdGlvbiB0cmVlTm9kZVNlbGVjdGVkKG4pIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Ob2RlU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25Ob2RlU2VsZWN0ZWQobik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmRhdGFNb2RlbC5yZXF1aXJlQ29udGV4dENoYW5nZShuKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBub2RlSXNTZWxlY3RlZDogZnVuY3Rpb24gbm9kZUlzU2VsZWN0ZWQobikge1xuICAgICAgICByZXR1cm4gbiA9PT0gdGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0Q29udGV4dE5vZGUoKTtcbiAgICB9LFxuXG4gICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmRyYWdnYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFB5ZGlvQ29tcG9uZW50cy5ETkRUcmVlVmlldywge1xuICAgICAgICAgICAgICAgIG9uTm9kZVNlbGVjdDogdGhpcy50cmVlTm9kZVNlbGVjdGVkLFxuICAgICAgICAgICAgICAgIG5vZGVJc1NlbGVjdGVkOiB0aGlzLm5vZGVJc1NlbGVjdGVkLFxuICAgICAgICAgICAgICAgIGRhdGFNb2RlbDogdGhpcy5wcm9wcy5kYXRhTW9kZWwsXG4gICAgICAgICAgICAgICAgbm9kZTogdGhpcy5wcm9wcy5kYXRhTW9kZWwuZ2V0Um9vdE5vZGUoKSxcbiAgICAgICAgICAgICAgICBzaG93Um9vdDogdGhpcy5wcm9wcy5zaG93Um9vdCA/IHRydWUgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1TdHlsZTogdGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1TdHlsZSxcbiAgICAgICAgICAgICAgICBnZXRJdGVtU3R5bGU6IHRoaXMucHJvcHMuZ2V0SXRlbVN0eWxlLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJmb2xkZXJzLXRyZWVcIiArICh0aGlzLnByb3BzLmNsYXNzTmFtZSA/ICcgJyArIHRoaXMucHJvcHMuY2xhc3NOYW1lIDogJycpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChQeWRpb0NvbXBvbmVudHMuVHJlZVZpZXcsIHtcbiAgICAgICAgICAgICAgICBvbk5vZGVTZWxlY3Q6IHRoaXMudHJlZU5vZGVTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBub2RlSXNTZWxlY3RlZDogdGhpcy5ub2RlSXNTZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBkYXRhTW9kZWw6IHRoaXMucHJvcHMuZGF0YU1vZGVsLFxuICAgICAgICAgICAgICAgIG5vZGU6IHRoaXMucHJvcHMuZGF0YU1vZGVsLmdldFJvb3ROb2RlKCksXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtU3R5bGU6IHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtU3R5bGUsXG4gICAgICAgICAgICAgICAgZ2V0SXRlbVN0eWxlOiB0aGlzLnByb3BzLmdldEl0ZW1TdHlsZSxcbiAgICAgICAgICAgICAgICBzaG93Um9vdDogdGhpcy5wcm9wcy5zaG93Um9vdCA/IHRydWUgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiZm9sZGVycy10cmVlXCIgKyAodGhpcy5wcm9wcy5jbGFzc05hbWUgPyAnICcgKyB0aGlzLnByb3BzLmNsYXNzTmFtZSA6ICcnKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbn0pO1xuXG5leHBvcnRzLlRyZWVWaWV3ID0gVHJlZVZpZXc7XG5leHBvcnRzLkRORFRyZWVWaWV3ID0gRE5EVHJlZVZpZXc7XG5leHBvcnRzLkZvbGRlcnNUcmVlID0gRm9sZGVyc1RyZWU7XG4iXX0= diff --git a/frontend/front-srv/assets/gui.ajax/res/build/PydioComponents.min.js b/frontend/front-srv/assets/gui.ajax/res/build/PydioComponents.min.js index a39817d8aa..ec11b53aa3 100644 --- a/frontend/front-srv/assets/gui.ajax/res/build/PydioComponents.min.js +++ b/frontend/front-srv/assets/gui.ajax/res/build/PydioComponents.min.js @@ -71,13 +71,13 @@ function addChunk(stream,state,chunk,addToFront){state.flowing&&0===state.length code:code,reason:reason,wasClean:!0};handleClose(),ws.removeEventListener("close",handleClose),Array.isArray(listeners.close)&&listeners.close.forEach(function(_a){var listener=_a[0],options=_a[1];listener(fakeCloseEvent_1),ws.removeEventListener("close",listener,options)}),ws.onclose&&(savedOnClose=ws.onclose,ws.onclose(fakeCloseEvent_1),ws.onclose=null)}},this.send=function(data){ws.send(data)},this.addEventListener=function(type,listener,options){Array.isArray(listeners[type])?listeners[type].some(function(_a){return _a[0]===listener})||listeners[type].push([listener,options]):listeners[type]=[[listener,options]],ws.addEventListener(type,listener,options)},this.removeEventListener=function(type,listener,options){Array.isArray(listeners[type])&&(listeners[type]=listeners[type].filter(function(_a){return _a[0]!==listener})),ws.removeEventListener(type,listener,options)}};module.exports=ReconnectingWebsocket},{}],481:[function(require,module,exports){"use strict";var Buffer=require("buffer").Buffer,inherits=require("inherits"),HashBase=require("hash-base"),ARRAY16=new Array(16),zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];function RIPEMD160(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}inherits(RIPEMD160,HashBase),RIPEMD160.prototype._update=function(){for(var words=ARRAY16,j=0;j<16;++j)words[j]=this._block.readInt32LE(4*j);for(var al=0|this._a,bl=0|this._b,cl=0|this._c,dl=0|this._d,el=0|this._e,ar=0|this._a,br=0|this._b,cr=0|this._c,dr=0|this._d,er=0|this._e,i=0;i<80;i+=1){var tl,tr;i<16?(tl=fn1(al,bl,cl,dl,el,words[zl[i]],hl[0],sl[i]),tr=fn5(ar,br,cr,dr,er,words[zr[i]],hr[0],sr[i])):i<32?(tl=fn2(al,bl,cl,dl,el,words[zl[i]],hl[1],sl[i]),tr=fn4(ar,br,cr,dr,er,words[zr[i]],hr[1],sr[i])):i<48?(tl=fn3(al,bl,cl,dl,el,words[zl[i]],hl[2],sl[i]),tr=fn3(ar,br,cr,dr,er,words[zr[i]],hr[2],sr[i])):i<64?(tl=fn4(al,bl,cl,dl,el,words[zl[i]],hl[3],sl[i]),tr=fn2(ar,br,cr,dr,er,words[zr[i]],hr[3],sr[i])):(tl=fn5(al,bl,cl,dl,el,words[zl[i]],hl[4],sl[i]),tr=fn1(ar,br,cr,dr,er,words[zr[i]],hr[4],sr[i])),al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=tl,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=tr}var t=this._b+cl+dr|0;this._b=this._c+dl+er|0,this._c=this._d+el+ar|0,this._d=this._e+al+br|0,this._e=this._a+bl+cr|0,this._a=t},RIPEMD160.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var buffer=Buffer.alloc?Buffer.alloc(20):new Buffer(20);return buffer.writeInt32LE(this._a,0),buffer.writeInt32LE(this._b,4),buffer.writeInt32LE(this._c,8),buffer.writeInt32LE(this._d,12),buffer.writeInt32LE(this._e,16),buffer};function rotl(x,n){return x<>>32-n}function fn1(a,b,c,d,e,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+e|0}function fn2(a,b,c,d,e,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+e|0}function fn3(a,b,c,d,e,m,k,s){return rotl(a+((b|~c)^d)+m+k|0,s)+e|0}function fn4(a,b,c,d,e,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+e|0}function fn5(a,b,c,d,e,m,k,s){return rotl(a+(b^(c|~d))+m+k|0,s)+e|0}module.exports=RIPEMD160},{buffer:372,"hash-base":415,inherits:431}],482:[function(require,module,exports){var buffer=require("buffer"),Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src)dst[key]=src[key]}Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow?module.exports=buffer:(copyProps(buffer,exports),exports.Buffer=SafeBuffer);function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}copyProps(Buffer,SafeBuffer),SafeBuffer.from=function(arg,encodingOrOffset,length){if("number"==typeof arg)throw new TypeError("Argument must not be a number");return Buffer(arg,encodingOrOffset,length)},SafeBuffer.alloc=function(size,fill,encoding){if("number"!=typeof size)throw new TypeError("Argument must be a number");var buf=Buffer(size);return void 0!==fill?"string"==typeof encoding?buf.fill(fill,encoding):buf.fill(fill):buf.fill(0),buf},SafeBuffer.allocUnsafe=function(size){if("number"!=typeof size)throw new TypeError("Argument must be a number");return Buffer(size)},SafeBuffer.allocUnsafeSlow=function(size){if("number"!=typeof size)throw new TypeError("Argument must be a number");return buffer.SlowBuffer(size)}},{buffer:372}],483:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function Hash(blockSize,finalSize){this._block=Buffer.alloc(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0}Hash.prototype.update=function(data,enc){"string"==typeof data&&(enc=enc||"utf8",data=Buffer.from(data,enc));for(var block=this._block,blockSize=this._blockSize,length=data.length,accum=this._len,offset=0;offset=this._finalSize&&(this._update(this._block),this._block.fill(0));var bits=8*this._len;if(bits<=4294967295)this._block.writeUInt32BE(bits,this._blockSize-4);else{var lowBits=(4294967295&bits)>>>0,highBits=(bits-lowBits)/4294967296;this._block.writeUInt32BE(highBits,this._blockSize-8),this._block.writeUInt32BE(lowBits,this._blockSize-4)}this._update(this._block);var hash=this._hash();return enc?hash.toString(enc):hash},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},module.exports=Hash},{"safe-buffer":482}],484:[function(require,module,exports){var exports=module.exports=function(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm};exports.sha=require("./sha"),exports.sha1=require("./sha1"),exports.sha224=require("./sha224"),exports.sha256=require("./sha256"),exports.sha384=require("./sha384"),exports.sha512=require("./sha512")},{"./sha":485,"./sha1":486,"./sha224":487,"./sha256":488,"./sha384":489,"./sha512":490}],485:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1518500249,1859775393,-1894007588,-899497514],W=new Array(80);function Sha(){this.init(),this._w=W,Hash.call(this,64,56)}inherits(Sha,Hash),Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}Sha.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<80;++i)W[i]=W[i-3]^W[i-8]^W[i-14]^W[i-16];for(var j=0;j<80;++j){var s=~~(j/20),t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d,d=c,c=rotl30(b),b=a,a=t}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha.prototype._hash=function(){var H=Buffer.allocUnsafe(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha},{"./hash":483,inherits:431,"safe-buffer":482}],486:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1518500249,1859775393,-1894007588,-899497514],W=new Array(80);function Sha1(){this.init(),this._w=W,Hash.call(this,64,56)}inherits(Sha1,Hash),Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function rotl1(num){return num<<1|num>>>31}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}Sha1.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<80;++i)W[i]=rotl1(W[i-3]^W[i-8]^W[i-14]^W[i-16]);for(var j=0;j<80;++j){var s=~~(j/20),t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d,d=c,c=rotl30(b),b=a,a=t}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha1.prototype._hash=function(){var H=Buffer.allocUnsafe(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha1},{"./hash":483,inherits:431,"safe-buffer":482}],487:[function(require,module,exports){var inherits=require("inherits"),Sha256=require("./sha256"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,W=new Array(64);function Sha224(){this.init(),this._w=W,Hash.call(this,64,56)}inherits(Sha224,Sha256),Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Sha224.prototype._hash=function(){var H=Buffer.allocUnsafe(28);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H},module.exports=Sha224},{"./hash":483,"./sha256":488,inherits:431,"safe-buffer":482}],488:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W=new Array(64);function Sha256(){this.init(),this._w=W,Hash.call(this,64,56)}inherits(Sha256,Hash),Sha256.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function sigma1(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function gamma0(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}function gamma1(x){return(x>>>17|x<<15)^(x>>>19|x<<13)^x>>>10}Sha256.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<64;++i)W[i]=gamma1(W[i-2])+W[i-7]+gamma0(W[i-15])+W[i-16]|0;for(var j=0;j<64;++j){var T1=h+sigma1(e)+ch(e,f,g)+K[j]+W[j]|0,T2=sigma0(a)+maj(a,b,c)|0;h=g,g=f,f=e,e=d+T1|0,d=c,c=b,b=a,a=T1+T2|0}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){var H=Buffer.allocUnsafe(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},module.exports=Sha256},{"./hash":483,inherits:431,"safe-buffer":482}],489:[function(require,module,exports){var inherits=require("inherits"),SHA512=require("./sha512"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,W=new Array(160);function Sha384(){this.init(),this._w=W,Hash.call(this,128,112)}inherits(Sha384,SHA512),Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Sha384.prototype._hash=function(){var H=Buffer.allocUnsafe(48);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),H},module.exports=Sha384},{"./hash":483,"./sha512":490,inherits:431,"safe-buffer":482}],490:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W=new Array(160);function Sha512(){this.init(),this._w=W,Hash.call(this,128,112)}inherits(Sha512,Hash),Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function Ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x,xl){return(x>>>28|xl<<4)^(xl>>>2|x<<30)^(xl>>>7|x<<25)}function sigma1(x,xl){return(x>>>14|xl<<18)^(x>>>18|xl<<14)^(xl>>>9|x<<23)}function Gamma0(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^x>>>7}function Gamma0l(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^(x>>>7|xl<<25)}function Gamma1(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^x>>>6}function Gamma1l(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^(x>>>6|xl<<26)}function getCarry(a,b){return a>>>0>>0?1:0}Sha512.prototype._update=function(M){for(var W=this._w,ah=0|this._ah,bh=0|this._bh,ch=0|this._ch,dh=0|this._dh,eh=0|this._eh,fh=0|this._fh,gh=0|this._gh,hh=0|this._hh,al=0|this._al,bl=0|this._bl,cl=0|this._cl,dl=0|this._dl,el=0|this._el,fl=0|this._fl,gl=0|this._gl,hl=0|this._hl,i=0;i<32;i+=2)W[i]=M.readInt32BE(4*i),W[i+1]=M.readInt32BE(4*i+4);for(;i<160;i+=2){var xh=W[i-30],xl=W[i-30+1],gamma0=Gamma0(xh,xl),gamma0l=Gamma0l(xl,xh);xh=W[i-4],xl=W[i-4+1];var gamma1=Gamma1(xh,xl),gamma1l=Gamma1l(xl,xh),Wi7h=W[i-14],Wi7l=W[i-14+1],Wi16h=W[i-32],Wi16l=W[i-32+1],Wil=gamma0l+Wi7l|0,Wih=gamma0+Wi7h+getCarry(Wil,gamma0l)|0;Wil=Wil+gamma1l|0,Wih=Wih+gamma1+getCarry(Wil,gamma1l)|0,Wil=Wil+Wi16l|0,Wih=Wih+Wi16h+getCarry(Wil,Wi16l)|0,W[i]=Wih,W[i+1]=Wil}for(var j=0;j<160;j+=2){Wih=W[j],Wil=W[j+1];var majh=maj(ah,bh,ch),majl=maj(al,bl,cl),sigma0h=sigma0(ah,al),sigma0l=sigma0(al,ah),sigma1h=sigma1(eh,el),sigma1l=sigma1(el,eh),Kih=K[j],Kil=K[j+1],chh=Ch(eh,fh,gh),chl=Ch(el,fl,gl),t1l=hl+sigma1l|0,t1h=hh+sigma1h+getCarry(t1l,hl)|0;t1l=t1l+chl|0,t1h=t1h+chh+getCarry(t1l,chl)|0,t1l=t1l+Kil|0,t1h=t1h+Kih+getCarry(t1l,Kil)|0,t1l=t1l+Wil|0,t1h=t1h+Wih+getCarry(t1l,Wil)|0;var t2l=sigma0l+majl|0,t2h=sigma0h+majh+getCarry(t2l,sigma0l)|0;hh=gh,hl=gl,gh=fh,gl=fl,fh=eh,fl=el,el=dl+t1l|0,eh=dh+t1h+getCarry(el,dl)|0,dh=ch,dl=cl,ch=bh,cl=bl,bh=ah,bl=al,al=t1l+t2l|0,ah=t1h+t2h+getCarry(al,t1l)|0}this._al=this._al+al|0,this._bl=this._bl+bl|0,this._cl=this._cl+cl|0,this._dl=this._dl+dl|0,this._el=this._el+el|0,this._fl=this._fl+fl|0,this._gl=this._gl+gl|0,this._hl=this._hl+hl|0,this._ah=this._ah+ah+getCarry(this._al,al)|0,this._bh=this._bh+bh+getCarry(this._bl,bl)|0,this._ch=this._ch+ch+getCarry(this._cl,cl)|0,this._dh=this._dh+dh+getCarry(this._dl,dl)|0,this._eh=this._eh+eh+getCarry(this._el,el)|0,this._fh=this._fh+fh+getCarry(this._fl,fl)|0,this._gh=this._gh+gh+getCarry(this._gl,gl)|0,this._hh=this._hh+hh+getCarry(this._hl,hl)|0},Sha512.prototype._hash=function(){var H=Buffer.allocUnsafe(64);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),writeInt64BE(this._gh,this._gl,48),writeInt64BE(this._hh,this._hl,56),H},module.exports=Sha512},{"./hash":483,inherits:431,"safe-buffer":482}],491:[function(require,module,exports){module.exports=Stream;var EE=require("events").EventEmitter;require("inherits")(Stream,EE),Stream.Readable=require("readable-stream/readable.js"),Stream.Writable=require("readable-stream/writable.js"),Stream.Duplex=require("readable-stream/duplex.js"),Stream.Transform=require("readable-stream/transform.js"),Stream.PassThrough=require("readable-stream/passthrough.js"),Stream.Stream=Stream;function Stream(){EE.call(this)}Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}source.on("data",ondata);function ondrain(){source.readable&&source.resume&&source.resume()}dest.on("drain",ondrain),dest._isStdio||options&&!1===options.end||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}source.on("error",onerror),dest.on("error",onerror);function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}return source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:374,inherits:431,"readable-stream/duplex.js":467,"readable-stream/passthrough.js":476,"readable-stream/readable.js":477,"readable-stream/transform.js":478,"readable-stream/writable.js":479}],492:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,isEncoding=Buffer.isEncoding||function(encoding){switch((encoding=""+encoding)&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function _normalizeEncoding(enc){if(!enc)return"utf8";for(var retried;;)switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase(),retried=!0}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if("string"!=typeof nenc&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}exports.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case"utf16le":this.text=utf16Text,this.end=utf16End,nb=4;break;case"utf8":this.fillLast=utf8FillLast,nb=4;break;case"base64":this.text=base64Text,this.end=base64End,nb=3;break;default:return this.write=simpleWrite,void(this.end=simpleEnd)}this.lastNeed=0,this.lastTotal=0,this.lastChar=Buffer.allocUnsafe(nb)}StringDecoder.prototype.write=function(buf){if(0===buf.length)return"";var r,i;if(this.lastNeed){if(void 0===(r=this.fillLast(buf)))return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i>5==6?2:byte>>4==14?3:byte>>3==30?4:byte>>6==2?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j=0?(nb>0&&(self.lastNeed=nb-1),nb):--j=0?(nb>0&&(self.lastNeed=nb-2),nb):--j=0?(nb>0&&(2===nb?nb=0:self.lastNeed=nb-3),nb):0)}function utf8CheckExtraBytes(self,buf,p){if(128!=(192&buf[0]))return self.lastNeed=0,"�";if(self.lastNeed>1&&buf.length>1){if(128!=(192&buf[1]))return self.lastNeed=1,"�";if(self.lastNeed>2&&buf.length>2&&128!=(192&buf[2]))return self.lastNeed=2,"�"}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed,r=utf8CheckExtraBytes(this,buf,p);return void 0!==r?r:this.lastNeed<=buf.length?(buf.copy(this.lastChar,p,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(buf.copy(this.lastChar,p,0,buf.length),void(this.lastNeed-=buf.length))}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);return buf.copy(this.lastChar,0,end),buf.toString("utf8",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+"�":r}function utf16Text(buf,i){if((buf.length-i)%2==0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=buf[buf.length-1],buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;return 0===n?buf.toString("base64",i):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=buf[buf.length-1]:(this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1]),buf.toString("base64",i,buf.length-n))}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+this.lastChar.toString("base64",0,3-this.lastNeed):r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}},{"safe-buffer":482}],493:[function(require,module,exports){function Agent(){this._defaults=[]}["use","on","once","set","query","type","accept","auth","withCredentials","sortQuery","retry","ok","redirects","timeout","buffer","serialize","parse","ca","key","pfx","cert"].forEach(function(fn){Agent.prototype[fn]=function(){return this._defaults.push({fn:fn,arguments:arguments}),this}}),Agent.prototype._setDefaults=function(req){this._defaults.forEach(function(def){req[def.fn].apply(req,def.arguments)})},module.exports=Agent},{}],494:[function(require,module,exports){var root;"undefined"!=typeof window?root=window:"undefined"!=typeof self?root=self:(console.warn("Using browser-only version of superagent in non-browser environment"),root=this);var Emitter=require("component-emitter"),RequestBase=require("./request-base"),isObject=require("./is-object"),ResponseBase=require("./response-base"),Agent=require("./agent-base");function noop(){}var request=exports=module.exports=function(method,url){return"function"==typeof url?new exports.Request("GET",method).end(url):1==arguments.length?new exports.Request("GET",method):new exports.Request(method,url)};exports.Request=Request,request.getXHR=function(){if(!(!root.XMLHttpRequest||root.location&&"file:"==root.location.protocol&&root.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw Error("Browser-only version of superagent could not find XHR")};var trim="".trim?function(s){return s.trim()}:function(s){return s.replace(/(^\s*|\s*$)/g,"")};function serialize(obj){if(!isObject(obj))return obj;var pairs=[];for(var key in obj)pushEncodedKeyValuePair(pairs,key,obj[key]);return pairs.join("&")}function pushEncodedKeyValuePair(pairs,key,val){if(null!=val)if(Array.isArray(val))val.forEach(function(v){pushEncodedKeyValuePair(pairs,key,v)});else if(isObject(val))for(var subkey in val)pushEncodedKeyValuePair(pairs,key+"["+subkey+"]",val[subkey]);else pairs.push(encodeURIComponent(key)+"="+encodeURIComponent(val));else null===val&&pairs.push(encodeURIComponent(key))}request.serializeObject=serialize;function parseString(str){for(var pair,pos,obj={},pairs=str.split("&"),i=0,len=pairs.length;i=2&&self._responseTimeoutTimer&&clearTimeout(self._responseTimeoutTimer),4==readyState){var status;try{status=xhr.status}catch(e){status=0}if(!status){if(self.timedout||self._aborted)return;return self.crossDomainError()}self.emit("end")}};var handleProgress=function(direction,e){e.total>0&&(e.percent=e.loaded/e.total*100),e.direction=direction,self.emit("progress",e)};if(this.hasListeners("progress"))try{xhr.onprogress=handleProgress.bind(null,"download"),xhr.upload&&(xhr.upload.onprogress=handleProgress.bind(null,"upload"))}catch(e){}try{this.username&&this.password?xhr.open(this.method,this.url,!0,this.username,this.password):xhr.open(this.method,this.url,!0)}catch(err){return this.callback(err)}if(this._withCredentials&&(xhr.withCredentials=!0),!this._formData&&"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof data&&!this._isHost(data)){var contentType=this._header["content-type"],serialize=this._serializer||request.serialize[contentType?contentType.split(";")[0]:""];!serialize&&isJSON(contentType)&&(serialize=request.serialize["application/json"]),serialize&&(data=serialize(data))}for(var field in this.header)null!=this.header[field]&&this.header.hasOwnProperty(field)&&xhr.setRequestHeader(field,this.header[field]);return this._responseType&&(xhr.responseType=this._responseType),this.emit("request",this),xhr.send(void 0!==data?data:null),this},request.agent=function(){return new Agent},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach(function(method){Agent.prototype[method.toLowerCase()]=function(url,fn){var req=new request.Request(method,url);return this._setDefaults(req),fn&&req.end(fn),req}}),Agent.prototype.del=Agent.prototype.delete,request.get=function(url,data,fn){var req=request("GET",url);return"function"==typeof data&&(fn=data,data=null),data&&req.query(data),fn&&req.end(fn),req},request.head=function(url,data,fn){var req=request("HEAD",url);return"function"==typeof data&&(fn=data,data=null),data&&req.query(data),fn&&req.end(fn),req},request.options=function(url,data,fn){var req=request("OPTIONS",url);return"function"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req};function del(url,data,fn){var req=request("DELETE",url);return"function"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req}request.del=del,request.delete=del,request.patch=function(url,data,fn){var req=request("PATCH",url);return"function"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req},request.post=function(url,data,fn){var req=request("POST",url);return"function"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req},request.put=function(url,data,fn){var req=request("PUT",url);return"function"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req}},{"./agent-base":493,"./is-object":495,"./request-base":496,"./response-base":497,"component-emitter":380}],495:[function(require,module,exports){"use strict";function isObject(obj){return null!==obj&&"object"==typeof obj}module.exports=isObject},{}],496:[function(require,module,exports){"use strict";var isObject=require("./is-object");module.exports=RequestBase;function RequestBase(obj){if(obj)return mixin(obj)}function mixin(obj){for(var key in RequestBase.prototype)obj[key]=RequestBase.prototype[key];return obj}RequestBase.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,this},RequestBase.prototype.parse=function(fn){return this._parser=fn,this},RequestBase.prototype.responseType=function(val){return this._responseType=val,this},RequestBase.prototype.serialize=function(fn){return this._serializer=fn,this},RequestBase.prototype.timeout=function(options){if(!options||"object"!=typeof options)return this._timeout=options,this._responseTimeout=0,this;for(var option in options)switch(option){case"deadline":this._timeout=options.deadline;break;case"response":this._responseTimeout=options.response;break;default:console.warn("Unknown timeout option",option)}return this},RequestBase.prototype.retry=function(count,fn){return 0!==arguments.length&&!0!==count||(count=1),count<=0&&(count=0),this._maxRetries=count,this._retries=0,this._retryCallback=fn,this};var ERROR_CODES=["ECONNRESET","ETIMEDOUT","EADDRINFO","ESOCKETTIMEDOUT"];RequestBase.prototype._shouldRetry=function(err,res){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var override=this._retryCallback(err,res);if(!0===override)return!0;if(!1===override)return!1}catch(e){console.error(e)}if(res&&res.status&&res.status>=500&&501!=res.status)return!0;if(err){if(err.code&&~ERROR_CODES.indexOf(err.code))return!0;if(err.timeout&&"ECONNABORTED"==err.code)return!0;if(err.crossDomain)return!0}return!1},RequestBase.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this._end()},RequestBase.prototype.then=function(resolve,reject){if(!this._fullfilledPromise){var self=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise(function(innerResolve,innerReject){self.end(function(err,res){err?innerReject(err):innerResolve(res)})})}return this._fullfilledPromise.then(resolve,reject)},RequestBase.prototype.catch=function(cb){return this.then(void 0,cb)},RequestBase.prototype.use=function(fn){return fn(this),this},RequestBase.prototype.ok=function(cb){if("function"!=typeof cb)throw Error("Callback required");return this._okCallback=cb,this},RequestBase.prototype._isResponseOK=function(res){return!!res&&(this._okCallback?this._okCallback(res):res.status>=200&&res.status<300)},RequestBase.prototype.get=function(field){return this._header[field.toLowerCase()]},RequestBase.prototype.getHeader=RequestBase.prototype.get,RequestBase.prototype.set=function(field,val){if(isObject(field)){for(var key in field)this.set(key,field[key]);return this}return this._header[field.toLowerCase()]=val,this.header[field]=val,this},RequestBase.prototype.unset=function(field){return delete this._header[field.toLowerCase()],delete this.header[field],this},RequestBase.prototype.field=function(name,val){if(null===name||void 0===name)throw new Error(".field(name, val) name can not be empty");if(this._data&&console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"),isObject(name)){for(var key in name)this.field(key,name[key]);return this}if(Array.isArray(val)){for(var i in val)this.field(name,val[i]);return this}if(null===val||void 0===val)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof val&&(val=""+val),this._getFormData().append(name,val),this},RequestBase.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort"),this)},RequestBase.prototype._auth=function(user,pass,options,base64Encoder){switch(options.type){case"basic":this.set("Authorization","Basic "+base64Encoder(user+":"+pass));break;case"auto":this.username=user,this.password=pass;break;case"bearer":this.set("Authorization","Bearer "+user)}return this},RequestBase.prototype.withCredentials=function(on){return void 0==on&&(on=!0),this._withCredentials=on,this},RequestBase.prototype.redirects=function(n){return this._maxRedirects=n,this},RequestBase.prototype.maxResponseSize=function(n){if("number"!=typeof n)throw TypeError("Invalid argument");return this._maxResponseSize=n,this},RequestBase.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},RequestBase.prototype.send=function(data){var isObj=isObject(data),type=this._header["content-type"];if(this._formData&&console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"),isObj&&!this._data)Array.isArray(data)?this._data=[]:this._isHost(data)||(this._data={});else if(data&&this._data&&this._isHost(this._data))throw Error("Can't merge these send calls");if(isObj&&isObject(this._data))for(var key in data)this._data[key]=data[key];else"string"==typeof data?(type||this.type("form"),type=this._header["content-type"],this._data="application/x-www-form-urlencoded"==type?this._data?this._data+"&"+data:data:(this._data||"")+data):this._data=data;return!isObj||this._isHost(data)?this:(type||this.type("json"),this)},RequestBase.prototype.sortQuery=function(sort){return this._sort=void 0===sort||sort,this},RequestBase.prototype._finalizeQueryString=function(){var query=this._query.join("&");if(query&&(this.url+=(this.url.indexOf("?")>=0?"&":"?")+query),this._query.length=0,this._sort){var index=this.url.indexOf("?");if(index>=0){var queryArr=this.url.substring(index+1).split("&");"function"==typeof this._sort?queryArr.sort(this._sort):queryArr.sort(),this.url=this.url.substring(0,index)+"?"+queryArr.join("&")}}},RequestBase.prototype._appendQueryString=function(){console.trace("Unsupported")},RequestBase.prototype._timeoutError=function(reason,timeout,errno){if(!this._aborted){var err=new Error(reason+timeout+"ms exceeded");err.timeout=timeout,err.code="ECONNABORTED",err.errno=errno,this.timedout=!0,this.abort(),this.callback(err)}},RequestBase.prototype._setTimeouts=function(){var self=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){self._timeoutError("Timeout of ",self._timeout,"ETIME")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){self._timeoutError("Response timeout of ",self._responseTimeout,"ETIMEDOUT")},this._responseTimeout))}},{"./is-object":495}],497:[function(require,module,exports){"use strict";var utils=require("./utils");module.exports=ResponseBase;function ResponseBase(obj){if(obj)return mixin(obj)}function mixin(obj){for(var key in ResponseBase.prototype)obj[key]=ResponseBase.prototype[key];return obj}ResponseBase.prototype.get=function(field){return this.header[field.toLowerCase()]},ResponseBase.prototype._setHeaderProperties=function(header){var ct=header["content-type"]||"";this.type=utils.type(ct);var params=utils.params(ct);for(var key in params)this[key]=params[key];this.links={};try{header.link&&(this.links=utils.parseLinks(header.link))}catch(err){}},ResponseBase.prototype._setStatusProperties=function(status){var type=status/100|0;this.status=this.statusCode=status,this.statusType=type,this.info=1==type,this.ok=2==type,this.redirect=3==type,this.clientError=4==type,this.serverError=5==type,this.error=(4==type||5==type)&&this.toError(),this.created=201==status,this.accepted=202==status,this.noContent=204==status,this.badRequest=400==status,this.unauthorized=401==status,this.notAcceptable=406==status,this.forbidden=403==status,this.notFound=404==status,this.unprocessableEntity=422==status}},{"./utils":498}],498:[function(require,module,exports){"use strict";exports.type=function(str){return str.split(/ *; */).shift()},exports.params=function(str){return str.split(/ *; */).reduce(function(obj,str){var parts=str.split(/ *= */),key=parts.shift(),val=parts.shift();return key&&val&&(obj[key]=val),obj},{})},exports.parseLinks=function(str){return str.split(/ *, */).reduce(function(obj,str){var parts=str.split(/ *; */),url=parts[0].slice(1,-1);return obj[parts[1].split(/ *= */)[1].slice(1,-1)]=url,obj},{})},exports.cleanHeader=function(header,changesOrigin){return delete header["content-type"],delete header["content-length"],delete header["transfer-encoding"],delete header.host,changesOrigin&&(delete header.authorization,delete header.cookie),header}},{}],499:[function(require,module,exports){var punycode=require("punycode");exports.parse=urlParse,exports.resolve=urlResolve,exports.resolveObject=urlResolveObject,exports.format=urlFormat,exports.Url=Url;function Url(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var protocolPattern=/^([a-z0-9.+-]+:)/i,portPattern=/:[0-9]*$/,delims=["<",">",'"',"`"," ","\r","\n","\t"],unwise=["{","}","|","\\","^","`"].concat(delims),autoEscape=["'"].concat(unwise),nonHostChars=["%","/","?",";","#"].concat(autoEscape),hostEndingChars=["/","?","#"],hostnameMaxLen=255,hostnamePartPattern=/^[a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([a-z0-9A-Z_-]{0,63})(.*)$/,unsafeProtocol={javascript:!0,"javascript:":!0},hostlessProtocol={javascript:!0,"javascript:":!0},slashedProtocol={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},querystring=require("querystring");function urlParse(url,parseQueryString,slashesDenoteHost){if(url&&isObject(url)&&url instanceof Url)return url;var u=new Url;return u.parse(url,parseQueryString,slashesDenoteHost),u}Url.prototype.parse=function(url,parseQueryString,slashesDenoteHost){if(!isString(url))throw new TypeError("Parameter 'url' must be a string, not "+typeof url);var rest=url;rest=rest.trim();var proto=protocolPattern.exec(rest);if(proto){proto=proto[0];var lowerProto=proto.toLowerCase();this.protocol=lowerProto,rest=rest.substr(proto.length)}if(slashesDenoteHost||proto||rest.match(/^\/\/[^@\/]+@[^@\/]+/)){var slashes="//"===rest.substr(0,2);!slashes||proto&&hostlessProtocol[proto]||(rest=rest.substr(2),this.slashes=!0)}if(!hostlessProtocol[proto]&&(slashes||proto&&!slashedProtocol[proto])){for(var hostEnd=-1,i=0;i127?newpart+="x":newpart+=part[j];if(!newpart.match(hostnamePartPattern)){var validParts=hostparts.slice(0,i),notHost=hostparts.slice(i+1),bit=part.match(hostnamePartStart);bit&&(validParts.push(bit[1]),notHost.unshift(bit[2])),notHost.length&&(rest="/"+notHost.join(".")+rest),this.hostname=validParts.join(".");break}}}if(this.hostname.length>hostnameMaxLen?this.hostname="":this.hostname=this.hostname.toLowerCase(),!ipv6Hostname){for(var domainArray=this.hostname.split("."),newOut=[],i=0;i0)&&result.host.split("@");authInHost&&(result.auth=authInHost.shift(),result.host=result.hostname=authInHost.shift())}return result.search=relative.search,result.query=relative.query,isNull(result.pathname)&&isNull(result.search)||(result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"")),result.href=result.format(),result}if(!srcPath.length)return result.pathname=null,result.search?result.path="/"+result.search:result.path=null,result.href=result.format(),result;for(var last=srcPath.slice(-1)[0],hasTrailingSlash=(result.host||relative.host)&&("."===last||".."===last)||""===last,up=0,i=srcPath.length;i>=0;i--)last=srcPath[i],"."==last?srcPath.splice(i,1):".."===last?(srcPath.splice(i,1),up++):up&&(srcPath.splice(i,1),up--);if(!mustEndAbs&&!removeAllDots)for(;up--;up)srcPath.unshift("..");!mustEndAbs||""===srcPath[0]||srcPath[0]&&"/"===srcPath[0].charAt(0)||srcPath.unshift(""),hasTrailingSlash&&"/"!==srcPath.join("/").substr(-1)&&srcPath.push("");var isAbsolute=""===srcPath[0]||srcPath[0]&&"/"===srcPath[0].charAt(0);if(psychotic){result.hostname=result.host=isAbsolute?"":srcPath.length?srcPath.shift():"";var authInHost=!!(result.host&&result.host.indexOf("@")>0)&&result.host.split("@");authInHost&&(result.auth=authInHost.shift(),result.host=result.hostname=authInHost.shift())}return mustEndAbs=mustEndAbs||result.host&&srcPath.length,mustEndAbs&&!isAbsolute&&srcPath.unshift(""),srcPath.length?result.pathname=srcPath.join("/"):(result.pathname=null,result.path=null),isNull(result.pathname)&&isNull(result.search)||(result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"")),result.auth=relative.auth||result.auth,result.slashes=result.slashes||relative.slashes,result.href=result.format(),result},Url.prototype.parseHost=function(){var host=this.host,port=portPattern.exec(host);port&&(port=port[0],":"!==port&&(this.port=port.substr(1)),host=host.substr(0,host.length-port.length)),host&&(this.hostname=host)};function isString(arg){return"string"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isNull(arg){return null===arg}function isNullOrUndefined(arg){return null==arg}},{punycode:457,querystring:460}],500:[function(require,module,exports){(function(global){module.exports=deprecate;function deprecate(fn,msg){if(config("noDeprecation"))return fn;var warned=!1;function deprecated(){if(!warned){if(config("throwDeprecation"))throw new Error(msg);config("traceDeprecation")?console.trace(msg):console.warn(msg),warned=!0}return fn.apply(this,arguments)}return deprecated}function config(name){try{if(!global.localStorage)return!1}catch(_){return!1}var val=global.localStorage[name];return null!=val&&"true"===String(val).toLowerCase()}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],501:[function(require,module,exports){module.exports=function(arg){return arg&&"object"==typeof arg&&"function"==typeof arg.copy&&"function"==typeof arg.fill&&"function"==typeof arg.readUInt8}},{}],502:[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){for(var objects=[],i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}}),x=args[i];i=3&&(ctx.depth=arguments[2]),arguments.length>=4&&(ctx.colors=arguments[3]),isBoolean(opts)?ctx.showHidden=opts:opts&&exports._extend(ctx,opts),isUndefined(ctx.showHidden)&&(ctx.showHidden=!1),isUndefined(ctx.depth)&&(ctx.depth=2),isUndefined(ctx.colors)&&(ctx.colors=!1),isUndefined(ctx.customInspect)&&(ctx.customInspect=!0),ctx.colors&&(ctx.stylize=stylizeWithColor),formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect,inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];return style?"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m":str}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};return array.forEach(function(val,idx){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&(!value.constructor||value.constructor.prototype!==value)){var ret=value.inspect(recurseTimes,ctx);return isString(ret)||(ret=formatValue(ctx,ret,recurseTimes)),ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden&&(keys=Object.getOwnPropertyNames(value)),isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0))return formatError(value);if(0===keys.length){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),"regexp");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),"date");if(isError(value))return formatError(value)}var base="",array=!1,braces=["{","}"];if(isArray(value)&&(array=!0,braces=["[","]"]),isFunction(value)){base=" [Function"+(value.name?": "+value.name:"")+"]"}if(isRegExp(value)&&(base=" "+RegExp.prototype.toString.call(value)),isDate(value)&&(base=" "+Date.prototype.toUTCString.call(value)),isError(value)&&(base=" "+formatError(value)),0===keys.length&&(!array||0==value.length))return braces[0]+base+braces[1];if(recurseTimes<0)return isRegExp(value)?ctx.stylize(RegExp.prototype.toString.call(value),"regexp"):ctx.stylize("[Object]","special");ctx.seen.push(value);var output;return output=array?formatArray(ctx,value,recurseTimes,visibleKeys,keys):keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)}),ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}return isNumber(value)?ctx.stylize(""+value,"number"):isBoolean(value)?ctx.stylize(""+value,"boolean"):isNull(value)?ctx.stylize("null","null"):void 0}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){for(var output=[],i=0,l=value.length;i-1&&(str=array?str.split("\n").map(function(line){return" "+line}).join("\n").substr(2):"\n"+str.split("\n").map(function(line){return" "+line}).join("\n"))):str=ctx.stylize("[Circular]","special")),isUndefined(name)){if(array&&key.match(/^\d+$/))return str;name=JSON.stringify(""+key),name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(name=name.substr(1,name.length-2),name=ctx.stylize(name,"name")):(name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),name=ctx.stylize(name,"string"))}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;return output.reduce(function(prev,cur){return numLinesEst++,cur.indexOf("\n")>=0&&numLinesEst++,prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?braces[0]+(""===base?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]:braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return"boolean"==typeof arg}exports.isBoolean=isBoolean;function isNull(arg){return null===arg}exports.isNull=isNull;function isNullOrUndefined(arg){return null==arg}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return"number"==typeof arg}exports.isNumber=isNumber;function isString(arg){ return"string"==typeof arg}exports.isString=isString;function isSymbol(arg){return"symbol"==typeof arg}exports.isSymbol=isSymbol;function isUndefined(arg){return void 0===arg}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&"[object RegExp]"===objectToString(re)}exports.isRegExp=isRegExp;function isObject(arg){return"object"==typeof arg&&null!==arg}exports.isObject=isObject;function isDate(d){return isObject(d)&&"[object Date]"===objectToString(d)}exports.isDate=isDate;function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}exports.isError=isError;function isFunction(arg){return"function"==typeof arg}exports.isFunction=isFunction;function isPrimitive(arg){return null===arg||"boolean"==typeof arg||"number"==typeof arg||"string"==typeof arg||"symbol"==typeof arg||void 0===arg}exports.isPrimitive=isPrimitive,exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))},exports.inherits=require("inherits"),exports._extend=function(origin,add){if(!add||!isObject(add))return origin;for(var keys=Object.keys(add),i=keys.length;i--;)origin[keys[i]]=add[keys[i]];return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":501,_process:375,inherits:431}],503:[function(require,module,exports){var v1=require("./v1"),v4=require("./v4"),uuid=v4;uuid.v1=v1,uuid.v4=v4,module.exports=uuid},{"./v1":506,"./v4":507}],504:[function(require,module,exports){for(var byteToHex=[],i=0;i<256;++i)byteToHex[i]=(i+256).toString(16).substr(1);function bytesToUuid(buf,offset){var i=offset||0,bth=byteToHex;return bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+"-"+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]+bth[buf[i++]]}module.exports=bytesToUuid},{}],505:[function(require,module,exports){(function(global){var rng,crypto=global.crypto||global.msCrypto;if(crypto&&crypto.getRandomValues){var rnds8=new Uint8Array(16);rng=function(){return crypto.getRandomValues(rnds8),rnds8}}if(!rng){var rnds=new Array(16);rng=function(){for(var r,i=0;i<16;i++)0==(3&i)&&(r=4294967296*Math.random()),rnds[i]=r>>>((3&i)<<3)&255;return rnds}}module.exports=rng}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],506:[function(require,module,exports){var rng=require("./lib/rng"),bytesToUuid=require("./lib/bytesToUuid"),_seedBytes=rng(),_nodeId=[1|_seedBytes[0],_seedBytes[1],_seedBytes[2],_seedBytes[3],_seedBytes[4],_seedBytes[5]],_clockseq=16383&(_seedBytes[6]<<8|_seedBytes[7]),_lastMSecs=0,_lastNSecs=0;function v1(options,buf,offset){var i=buf&&offset||0,b=buf||[];options=options||{};var clockseq=void 0!==options.clockseq?options.clockseq:_clockseq,msecs=void 0!==options.msecs?options.msecs:(new Date).getTime(),nsecs=void 0!==options.nsecs?options.nsecs:_lastNSecs+1,dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/1e4;if(dt<0&&void 0===options.clockseq&&(clockseq=clockseq+1&16383),(dt<0||msecs>_lastMSecs)&&void 0===options.nsecs&&(nsecs=0),nsecs>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=msecs,_lastNSecs=nsecs,_clockseq=clockseq,msecs+=122192928e5;var tl=(1e4*(268435455&msecs)+nsecs)%4294967296;b[i++]=tl>>>24&255,b[i++]=tl>>>16&255,b[i++]=tl>>>8&255,b[i++]=255&tl;var tmh=msecs/4294967296*1e4&268435455;b[i++]=tmh>>>8&255,b[i++]=255&tmh,b[i++]=tmh>>>24&15|16,b[i++]=tmh>>>16&255,b[i++]=clockseq>>>8|128,b[i++]=255&clockseq;for(var node=options.node||_nodeId,n=0;n<6;++n)b[i+n]=node[n];return buf||bytesToUuid(b)}module.exports=v1},{"./lib/bytesToUuid":504,"./lib/rng":505}],507:[function(require,module,exports){var rng=require("./lib/rng"),bytesToUuid=require("./lib/bytesToUuid");function v4(options,buf,offset){var i=buf&&offset||0;"string"==typeof options&&(buf="binary"==options?new Array(16):null,options=null),options=options||{};var rnds=options.random||(options.rng||rng)();if(rnds[6]=15&rnds[6]|64,rnds[8]=63&rnds[8]|128,buf)for(var ii=0;ii<16;++ii)buf[i+ii]=rnds[ii];return buf||bytesToUuid(rnds)}module.exports=v4},{"./lib/bytesToUuid":504,"./lib/rng":505}],508:[function(require,module,exports){"use strict";var crypto=require("crypto");exports=module.exports=generateUuid,exports.async=generateUuidAsync,exports.sync=generateUuidSync,exports.valid=generateUuid;function generateUuidSync(){var rnd=crypto.randomBytes(16);return rnd[6]=15&rnd[6]|64,rnd[8]=63&rnd[8]|128,rnd=rnd.toString("hex").match(/(.{8})(.{4})(.{4})(.{4})(.{12})/),rnd.shift(),rnd.join("-")}function generateUuidAsync(callback){crypto.randomBytes(16,function(err,rnd){rnd[6]=15&rnd[6]|64,rnd[8]=63&rnd[8]|128,rnd=rnd.toString("hex").match(/(.{8})(.{4})(.{4})(.{4})(.{12})/),rnd.shift(),callback(null,rnd.join("-"))})}function generateUuid(callback){return"function"!=typeof callback?generateUuidSync():generateUuidAsync(callback)}},{crypto:387}],509:[function(require,module,exports){var indexOf=require("indexof"),Object_keys=function(obj){if(Object.keys)return Object.keys(obj);var res=[];for(var key in obj)res.push(key);return res},forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);for(var i=0;ib?1:0}var ha=Array.prototype.indexOf?function(a,b,c){return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){if(c=null==c?0:0>c?Math.max(0,a.length+c):c,l(a))return l(b)&&1==b.length?a.indexOf(b,c):-1;for(;cc?null:l(a)?a.charAt(c):a[c]}function la(a){return Array.prototype.concat.apply(Array.prototype,arguments)}function ma(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)}var u;a:{var na=k.navigator;if(na){var oa=na.userAgent;if(oa){u=oa;break a}}u=""}var pa=q(u,"Opera")||q(u,"OPR"),v=q(u,"Trident")||q(u,"MSIE"),qa=q(u,"Edge"),ra=q(u,"Gecko")&&!(q(u.toLowerCase(),"webkit")&&!q(u,"Edge"))&&!(q(u,"Trident")||q(u,"MSIE"))&&!q(u,"Edge"),sa=q(u.toLowerCase(),"webkit")&&!q(u,"Edge");function ta(){var a=k.document;return a?a.documentMode:void 0}var ua;a:{var va="",wa=function(){var a=u;return ra?/rv\:([^\);]+)(\)|;)/.exec(a):qa?/Edge\/([\d\.]+)/.exec(a):v?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a):sa?/WebKit\/(\S+)/.exec(a):pa?/(?:Version)[ \/]?(\S+)/.exec(a):void 0}();if(wa&&(va=wa?wa[1]:""),v){var xa=ta();if(null!=xa&&xa>parseFloat(va)){ua=String(xa);break a}}ua=va}var ya={};function za(a){if(!ya[a]){for(var b=0,c=fa(String(ua)).split("."),d=fa(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f",4,2,function(a,b,c){return O(function(a,b){return a>b},a,b,c)}),P("<=",4,2,function(a,b,c){return O(function(a,b){return a<=b},a,b,c)}),P(">=",4,2,function(a,b,c){return O(function(a,b){return a>=b},a,b,c)});var Wa=P("=",3,2,function(a,b,c){return O(function(a,b){return a==b},a,b,c,!0)});P("!=",3,2,function(a,b,c){return O(function(a,b){return a!=b},a,b,c,!0)}),P("and",2,2,function(a,b,c){return M(a,c)&&M(b,c)}),P("or",1,2,function(a,b,c){return M(a,c)||M(b,c)});function Q(a,b,c){this.a=a,this.b=b||1,this.f=c||1}function Za(a,b){if(b.a.length&&4!=a.i)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");n.call(this,a.i),this.c=a,this.h=b,this.g=a.g,this.b=a.b}m(Za),Za.prototype.a=function(a){return a=this.c.a(a),$a(this.h,a)},Za.prototype.toString=function(){var a;return a="Filter:"+J(this.c),a+=J(this.h)};function ab(a,b){if(b.lengtha.v)throw Error("Function "+a.j+" expects at most "+a.v+" arguments, "+b.length+" given");a.B&&r(b,function(b,d){if(4!=b.i)throw Error("Argument "+d+" to function "+a.j+" is not of type Nodeset: "+b)}),n.call(this,a.i),this.h=a,this.c=b,Ua(this,a.g||ja(b,function(a){return a.g})),Va(this,a.D&&!b.length||a.C&&!!b.length||ja(b,function(a){return a.b}))}m(ab),ab.prototype.a=function(a){return this.h.m.apply(null,la(a,this.c))},ab.prototype.toString=function(){var a="Function: "+this.h;if(this.c.length)var b=t(this.c,function(a,b){return a+J(b)},"Arguments:"),a=a+J(b);return a};function bb(a,b,c,d,e,f,g,h,p){this.j=a,this.i=b,this.g=c,this.D=d,this.C=e,this.m=f,this.A=g,this.v=void 0!==h?h:g,this.B=!!p}bb.prototype.toString=function(){return this.j};var cb={};function R(a,b,c,d,e,f,g,h){if(cb.hasOwnProperty(a))throw Error("Function already created: "+a+".");cb[a]=new bb(a,b,c,d,!1,e,f,g,h)}R("boolean",2,!1,!1,function(a,b){return M(b,a)},1),R("ceiling",1,!1,!1,function(a,b){return Math.ceil(K(b,a))},1),R("concat",3,!1,!1,function(a,b){return t(ma(arguments,1),function(b,d){return b+L(d,a)},"")},2,null),R("contains",2,!1,!1,function(a,b,c){return q(L(b,a),L(c,a))},2),R("count",1,!1,!1,function(a,b){return b.a(a).l},1,1,!0),R("false",2,!1,!1,function(){return!1},0),R("floor",1,!1,!1,function(a,b){return Math.floor(K(b,a))},1),R("id",4,!1,!1,function(a,b){function c(a){if(w){var b=e.all[a];if(b){if(b.nodeType&&a==b.id)return b;if(b.length)return ka(b,function(b){return a==b.id})}return null}return e.getElementById(a)}var d=a.a,e=9==d.nodeType?d:d.ownerDocument,d=L(b,a).split(/\s+/),f=[];r(d,function(a){!(a=c(a))||0<=ha(f,a)||f.push(a)}),f.sort(La);var g=new C;return r(f,function(a){F(g,a)}),g},1),R("lang",2,!1,!1,function(){return!1},1),R("last",1,!0,!1,function(a){if(1!=arguments.length)throw Error("Function last expects ()");return a.f},0),R("local-name",3,!1,!0,function(a,b){var c=b?Ra(b.a(a)):a.a;return c?c.localName||c.nodeName.toLowerCase():""},0,1,!0),R("name",3,!1,!0,function(a,b){var c=b?Ra(b.a(a)):a.a;return c?c.nodeName.toLowerCase():""},0,1,!0),R("namespace-uri",3,!0,!1,function(){return""},0,1,!0),R("normalize-space",3,!1,!0,function(a,b){return(b?L(b,a):z(a.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1),R("not",2,!1,!1,function(a,b){return!M(b,a)},1),R("number",1,!1,!0,function(a,b){return b?K(b,a):+z(a.a)},0,1),R("position",1,!0,!1,function(a){return a.b},0),R("round",1,!1,!1,function(a,b){return Math.round(K(b,a))},1),R("starts-with",2,!1,!1,function(a,b,c){return b=L(b,a),a=L(c,a),0==b.lastIndexOf(a,0)},2),R("string",3,!1,!0,function(a,b){return b?L(b,a):z(a.a)},0,1),R("string-length",1,!1,!0,function(a,b){return(b?L(b,a):z(a.a)).length},0,1),R("substring",3,!1,!1,function(a,b,c,d){if(c=K(c,a),isNaN(c)||1/0==c||-1/0==c)return"";if(d=d?K(d,a):1/0,isNaN(d)||-1/0===d)return"";c=Math.round(c)-1;var e=Math.max(c,0);return a=L(b,a),1/0==d?a.substring(e):a.substring(e,c+Math.round(d))},2,3),R("substring-after",3,!1,!1,function(a,b,c){return b=L(b,a),a=L(c,a),c=b.indexOf(a),-1==c?"":b.substring(c+a.length)},2),R("substring-before",3,!1,!1,function(a,b,c){return b=L(b,a),a=L(c,a),a=b.indexOf(a),-1==a?"":b.substring(0,a)},2),R("sum",1,!1,!1,function(a,b){for(var c=H(b.a(a)),d=0,e=I(c);e;e=I(c))d+=+z(e);return d},1,1,!0),R("translate",3,!1,!1,function(a,b,c,d){b=L(b,a),c=L(c,a);var e=L(d,a);for(a={},d=0;d]=|\s+|./g,hb=/^\s/;function S(a,b){return a.b[a.a+(b||0)]}function T(a){return a.b[a.a++]}function ib(a){return a.b.length<=a.a}function jb(a){n.call(this,3),this.c=a.substring(1,a.length-1)}m(jb),jb.prototype.a=function(){return this.c},jb.prototype.toString=function(){return"Literal: "+this.c};function E(a,b){this.j=a.toLowerCase();var c;c="*"==this.j?"*":"http://www.w3.org/1999/xhtml",this.c=b?b.toLowerCase():c}E.prototype.a=function(a){var b=a.nodeType;return(1==b||2==b)&&(b=void 0!==a.localName?a.localName:a.nodeName,("*"==this.j||this.j==b.toLowerCase())&&("*"==this.c||this.c==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")))},E.prototype.f=function(){return this.j},E.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.j};function kb(a,b){if(n.call(this,a.i),this.h=a,this.c=b,this.g=a.g,this.b=a.b,1==this.c.length){var c=this.c[0];c.u||c.c!=lb||(c=c.o,"*"!=c.f()&&(this.f={name:c.f(),s:null}))}}m(kb);function mb(){n.call(this,4)}m(mb),mb.prototype.a=function(a){var b=new C;return a=a.a,9==a.nodeType?F(b,a):F(b,a.ownerDocument),b},mb.prototype.toString=function(){return"Root Helper Expression"};function nb(){n.call(this,4)}m(nb),nb.prototype.a=function(a){var b=new C;return F(b,a.a),b},nb.prototype.toString=function(){return"Context Helper Expression"};function ob(a){return"/"==a||"//"==a}kb.prototype.a=function(a){var b=this.h.a(a);if(!(b instanceof C))throw Error("Filter expression must evaluate to nodeset.");a=this.c;for(var c=0,d=a.length;ca.length)throw Error("Unclosed literal string");return new jb(a)}function Hb(a){var b,d,c=[];if(ob(S(a.a))){if(b=T(a.a),d=S(a.a),"/"==b&&(ib(a.a)||"."!=d&&".."!=d&&"@"!=d&&"*"!=d&&!/(?![0-9])[\w]/.test(d)))return new mb;d=new mb,W(a,"Missing next location step."),b=Ib(a,b),c.push(b)}else{a:{switch(b=S(a.a),d=b.charAt(0)){case"$":throw Error("Variable reference not allowed in HTML XPath");case"(":T(a.a),b=Cb(a),W(a,'unclosed "("'),Eb(a,")");break;case'"':case"'":b=Gb(a);break;default:if(isNaN(+b)){if(db(b)||!/(?![0-9])[\w]/.test(d)||"("!=S(a.a,1)){b=null;break a}for(b=T(a.a),b=cb[b]||null,T(a.a),d=[];")"!=S(a.a)&&(W(a,"Missing function argument list."),d.push(Cb(a)),","==S(a.a));)T(a.a);W(a,"Unclosed function argument list."),Fb(a),b=new ab(b,d)}else b=new Ab(+T(a.a))}"["==S(a.a)&&(d=new sb(Jb(a)),b=new Za(b,d))}if(b){if(!ob(S(a.a)))return b;d=b}else b=Ib(a,"/"),d=new nb,c.push(b)}for(;ob(S(a.a));)b=T(a.a),W(a,"Missing next location step."),b=Ib(a,b),c.push(b);return new kb(d,c)}function Ib(a,b){var c,d,e;if("/"!=b&&"//"!=b)throw Error('Step op should be "/" or "//"');if("."==S(a.a))return d=new U(yb,new G("node")),T(a.a),d;if(".."==S(a.a))return d=new U(xb,new G("node")),T(a.a), -d;var f;if("@"==S(a.a))f=lb,T(a.a),W(a,"Missing attribute name");else if("::"==S(a.a,1)){if(!/(?![0-9])[\w]/.test(S(a.a).charAt(0)))throw Error("Bad token: "+T(a.a));if(c=T(a.a),!(f=wb[c]||null))throw Error("No axis with name: "+c);T(a.a),W(a,"Missing node name")}else f=tb;if(c=S(a.a),!/(?![0-9])[\w\*]/.test(c.charAt(0)))throw Error("Bad token: "+T(a.a));if("("==S(a.a,1)){if(!db(c))throw Error("Invalid node type: "+c);if(c=T(a.a),!db(c))throw Error("Invalid type name: "+c);Eb(a,"("),W(a,"Bad nodetype"),e=S(a.a).charAt(0);var g=null;'"'!=e&&"'"!=e||(g=Gb(a)),W(a,"Bad nodetype"),Fb(a),c=new G(c,g)}else if(c=T(a.a),-1==(e=c.indexOf(":")))c=new E(c);else{var h,g=c.substring(0,e);if("*"==g)h="*";else if(!(h=a.b(g)))throw Error("Namespace prefix not declared: "+g);c=c.substr(e+1),c=new E(c,h)}return e=new sb(Jb(a),f.a),d||new U(f,c,e,"//"==b)}function Jb(a){for(var b=[];"["==S(a.a);){T(a.a),W(a,"Missing predicate expression.");var c=Cb(a);b.push(c),W(a,"Unclosed predicate expression."),Eb(a,"]")}return b}function Db(a){if("-"==S(a.a))return T(a.a),new zb(Db(a));var b=Hb(a);if("|"!=S(a.a))a=b;else{for(b=[b];"|"==T(a.a);)W(a,"Missing next union location path."),b.push(Hb(a));a.a.a--,a=new rb(b)}return a}function Kb(a){switch(a.nodeType){case 1:return ea(Lb,a);case 9:return Kb(a.documentElement);case 11:case 10:case 6:case 12:return Mb;default:return a.parentNode?Kb(a.parentNode):Mb}}function Mb(){return null}function Lb(a,b){if(a.prefix==b)return a.namespaceURI||"http://www.w3.org/1999/xhtml";var c=a.getAttributeNode("xmlns:"+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?Lb(a.parentNode,b):null}function Nb(a,b){if(!a.length)throw Error("Empty XPath expression.");var c=fb(a);if(ib(c))throw Error("Invalid XPath expression.");b?"function"==aa(b)||(b=da(b.lookupNamespaceURI,b)):b=function(){return null};var d=Cb(new Bb(c,b));if(!ib(c))throw Error("Bad token: "+T(c));this.evaluate=function(a,b){return new Y(d.a(new Q(a)),b)}}function Y(a,b){if(0==b)if(a instanceof C)b=4;else if("string"==typeof a)b=2;else if("number"==typeof a)b=1;else{if("boolean"!=typeof a)throw Error("Unexpected evaluation result.");b=3}if(2!=b&&1!=b&&3!=b&&!(a instanceof C))throw Error("value could not be converted to the specified type");this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof C?Sa(a):""+a;break;case 1:this.numberValue=a instanceof C?+Sa(a):+a;break;case 3:this.booleanValue=a instanceof C?0=c.length?null:c[f++]},this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return a>=c.length||0>a?null:c[a]}}Y.ANY_TYPE=0,Y.NUMBER_TYPE=1,Y.STRING_TYPE=2,Y.BOOLEAN_TYPE=3,Y.UNORDERED_NODE_ITERATOR_TYPE=4,Y.ORDERED_NODE_ITERATOR_TYPE=5,Y.UNORDERED_NODE_SNAPSHOT_TYPE=6,Y.ORDERED_NODE_SNAPSHOT_TYPE=7,Y.ANY_UNORDERED_NODE_TYPE=8,Y.FIRST_ORDERED_NODE_TYPE=9;function Ob(a){this.lookupNamespaceURI=Kb(a)}function Pb(a,b){var c=a||k,d=c.Document&&c.Document.prototype||c.document;d.evaluate&&!b||(c.XPathResult=Y,d.evaluate=function(a,b,c,d){return new Nb(a,c).evaluate(b,d)},d.createExpression=function(a,b){return new Nb(a,b)},d.createNSResolver=function(a){return new Ob(a)})}var Qb=["wgxpath","install"],Z=k;Qb[0]in Z||!Z.execScript||Z.execScript("var "+Qb[0]);for(var Rb;Qb.length&&(Rb=Qb.shift());)Qb.length||void 0===Pb?Z=Z[Rb]?Z[Rb]:Z[Rb]={}:Z[Rb]=Pb;module.exports.install=Pb,module.exports.XPathResultType={ANY_TYPE:0,NUMBER_TYPE:1,STRING_TYPE:2,BOOLEAN_TYPE:3,UNORDERED_NODE_ITERATOR_TYPE:4,ORDERED_NODE_ITERATOR_TYPE:5,UNORDERED_NODE_SNAPSHOT_TYPE:6,ORDERED_NODE_SNAPSHOT_TYPE:7,ANY_UNORDERED_NODE_TYPE:8,FIRST_ORDERED_NODE_TYPE:9}}).call(global)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],511:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("./lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),_langLogger=require("./lang/Logger"),_langLogger2=_interopRequireDefault(_langLogger),_httpPydioApi=require("./http/PydioApi"),_httpPydioApi2=_interopRequireDefault(_httpPydioApi),_modelRegistry=require("./model/Registry"),_modelRegistry2=_interopRequireDefault(_modelRegistry),_modelAjxpNode=require("./model/AjxpNode"),_modelAjxpNode2=_interopRequireDefault(_modelAjxpNode),_modelPydioDataModel=require("./model/PydioDataModel"),_modelPydioDataModel2=_interopRequireDefault(_modelPydioDataModel),_modelRepository=require("./model/Repository"),_modelRepository2=_interopRequireDefault(_modelRepository),_modelController=require("./model/Controller"),_modelController2=_interopRequireDefault(_modelController),_utilXMLUtils=require("./util/XMLUtils"),_utilXMLUtils2=_interopRequireDefault(_utilXMLUtils),_utilPathUtils=require("./util/PathUtils"),_utilPathUtils2=_interopRequireDefault(_utilPathUtils),_utilLangUtils=require("./util/LangUtils"),_utilLangUtils2=_interopRequireDefault(_utilLangUtils),_utilActivityMonitor=require("./util/ActivityMonitor"),_utilActivityMonitor2=_interopRequireDefault(_utilActivityMonitor),_httpPydioWebSocket=require("./http/PydioWebSocket"),_httpPydioWebSocket2=_interopRequireDefault(_httpPydioWebSocket),_modelEmptyNodeProvider=require("./model/EmptyNodeProvider"),_modelEmptyNodeProvider2=_interopRequireDefault(_modelEmptyNodeProvider),Pydio=function(_Observable){_inherits(Pydio,_Observable);function Pydio(parameters){if(_classCallCheck(this,Pydio),_Observable.call(this),Pydio.instance=this,this.Parameters=parameters,this._initLoadRep=parameters.get("initLoadRep")||null,this.usersEnabled=parameters.get("usersEnabled")||null,this.currentLanguage=parameters.get("currentLanguage")||null,this.appTitle="Pydio",this.Parameters.has("customWording")&&(this.appTitle=this.Parameters.get("customWording").title||"Pydio"),this.user=null,this.MessageHash={},window.MessageHash&&(this.MessageHash=window.MessageHash),this.ApiClient=_httpPydioApi2.default.getClient(),this.ApiClient.setPydioObject(this),this.ActivityMonitor=new _utilActivityMonitor2.default(this),this.Registry=new _modelRegistry2.default(this),this._rootNode=new _modelAjxpNode2.default("/","Root"),this._contextHolder=new _modelPydioDataModel2.default(!1),this._dataModel=this._contextHolder,this._dataModel.setAjxpNodeProvider(new _modelEmptyNodeProvider2.default),this._dataModel.setRootNode(this._rootNode),this.Controller=new _modelController2.default(this),this.WebSocketClient=new _httpPydioWebSocket2.default(this),this.repositoryId&&(this.WebSocketClient.currentRepo=this.repositoryId,this.WebSocketClient.open()),!this.Parameters.has("START_REPOSITORY")){var loadUriParts=_utilLangUtils2.default.trim(window.location.href.replace(parameters.get("FRONTEND_URL"),""),"/").split("/");if(loadUriParts.length){var loadWs=loadUriParts[0],other=loadUriParts.slice(1);0===loadWs.indexOf("ws-")&&(loadWs=loadWs.substr(3)),this.Parameters.set("START_REPOSITORY",loadWs),other.length&&this.Parameters.set("START_FOLDER","/"+other.join("/"))}}}return Pydio.prototype.fire=function(eventName,data){this.notify(eventName,data)},Pydio.prototype.updateUser=function(userObject){var skipEvent=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];this.user=userObject,skipEvent||this.notify("user_logged",userObject)},Pydio.prototype.getUser=function(){return this.user},Pydio.prototype.refreshUserData=function(){var _this=this;this.observeOnce("registry_part_loaded",function(event){"user/preferences"===event&&_this.updateUser(_this.Registry.parseUser(),!1)}),this.Registry.load("user/preferences")},Pydio.prototype.init=function(){var _this2=this;this.observe("registry_loaded",function(){if(_this2.Registry.refreshExtensionsRegistry(),_this2.updateUser(_this2.Registry.parseUser(),!1),_this2.user){var repId=_this2.user.getActiveRepository(),repList=_this2.user.getRepositoriesList(),repositoryObject=repList.get(repId);repositoryObject&&repositoryObject.loadResources()}_this2.UI.guiLoaded?(_this2.UI.refreshTemplateParts(),_this2.Registry.refreshExtensionsRegistry(),_this2.Controller.loadActionsFromRegistry(_this2.getXmlRegistry())):_this2.observe("gui_loaded",function(){_this2.UI.refreshTemplateParts(),_this2.Registry.refreshExtensionsRegistry(),_this2.Controller.loadActionsFromRegistry(_this2.getXmlRegistry())}),_this2.loadActiveRepository(),_this2.Parameters.has("USER_GUI_ACTION")&&function(){var a=_this2.Parameters.get("USER_GUI_ACTION");_this2.Parameters.delete("USER_GUI_ACTION"),setTimeout(function(){_this2.Controller.fireAction(a)},1e3)}()});var starterFunc=function(){var _this3=this;ResourcesManager.loadClassesAndApply(["React","PydioReactUI"],function(){_this3.UI=new window.PydioReactUI.Builder(_this3),_this3.UI.initTemplates(),_this3.fire("registry_loaded",_this3.Registry.getXML()),_this3.fire("loaded")})}.bind(this);if(this.Parameters.has("PRELOG_USER")&&!this.user){var login=this.Parameters.get("PRELOG_USER"),pwd=login+"#$!Az1";_httpPydioApi2.default.getRestClient().jwtFromCredentials(login,pwd,!1).then(function(){_this2.loadXmlRegistry(null,starterFunc,_this2.Parameters.get("START_REPOSITORY"))}).catch(function(e){_this2.loadXmlRegistry(null,starterFunc)})}else _httpPydioApi2.default.getRestClient().getOrUpdateJwt().then(function(jwt){jwt||!_this2.Parameters.has("PRELOADED_REGISTRY")?_this2.loadXmlRegistry(null,starterFunc,_this2.Parameters.get("START_REPOSITORY")):(_this2.Registry.loadFromString(_this2.Parameters.get("PRELOADED_REGISTRY")),_this2.Parameters.delete("PRELOADED_REGISTRY"),starterFunc())});this.observe("server_message",function(xml){var reload=_utilXMLUtils2.default.XPathSelectSingleNode(xml,"tree/require_registry_reload");reload&&reload.getAttribute("repositoryId")!==_this2.repositoryId&&(_this2.loadXmlRegistry(null,null,reload.getAttribute("repositoryId")),_this2.repositoryId=null)})},Pydio.prototype.loadXmlRegistry=function(){var xPath=arguments.length<=0||void 0===arguments[0]?null:arguments[0],completeFunc=arguments.length<=1||void 0===arguments[1]?null:arguments[1],targetRepositoryId=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.Registry.load(xPath,completeFunc,targetRepositoryId)},Pydio.prototype.getXmlRegistry=function(){return this.Registry.getXML()},Pydio.prototype.loadActiveRepository=function(){var _this4=this;if(null===this.user){var _repositoryObject=new _modelRepository2.default(null);return this.loadRepository(_repositoryObject),this.fire("repository_list_refreshed",{list:!1,active:!1}),void this.Controller.fireAction("login")}var repId=this.user.getActiveRepository(),repList=this.user.getRepositoriesList(),repositoryObject=repList.get(repId);if(!repositoryObject)return void(this.user.lock?function(){_this4.Controller.loadActionsFromRegistry(_this4.getXmlRegistry());var lock=_this4.user.lock.split(",").shift();window.setTimeout(function(){_this4.Controller.fireAction(lock)},150)}():(alert("No active repository found for user!"),this.Controller.fireAction("logout")));this.user.getPreference("pending_folder")&&"-1"!==this.user.getPreference("pending_folder")?(this._initLoadRep=this.user.getPreference("pending_folder"),this.user.setPreference("pending_folder","-1"),this.user.savePreference("pending_folder")):this.user&&this.Parameters.has("START_FOLDER")&&(this._initLoadRep=this.Parameters.get("START_FOLDER"),this.Parameters.delete("START_FOLDER")),this.loadRepository(repositoryObject),this.fire("repository_list_refreshed",{list:repList,active:repId})},Pydio.prototype.reloadRepositoriesList=function(){var _this5=this;this.user&&(this.observeOnce("registry_part_loaded",function(data){"user/repositories"===data&&(_this5.updateUser(_this5.Registry.parseUser()),0===_this5.user.getRepositoriesList().size&&_this5.loadXmlRegistry(),_this5.fire("repository_list_refreshed",{list:_this5.user.getRepositoriesList(),active:_this5.user.getActiveRepository()}))}),this.loadXmlRegistry("user/repositories"))},Pydio.prototype.loadRepository=function(repository){var _this6=this;if(null!=this.repositoryId&&this.repositoryId===repository.getId())return void _langLogger2.default.debug("Repository already loaded, do nothing");if(this._contextHolder.setSelectedNodes([]),null!==repository){repository.loadResources();var repositoryId=repository.getId(),newIcon=repository.getIcon(),providerDef=repository.getNodeProviderDef(),rootNode=void 0;if(null==providerDef)rootNode=new _modelAjxpNode2.default("/",!1,repository.getLabel(),newIcon),this._contextHolder.setAjxpNodeProvider(new _modelEmptyNodeProvider2.default);else{var providerClass=window[providerDef.name],provider=new providerClass;providerDef.options&&provider.initProvider(providerDef.options),this._contextHolder.setAjxpNodeProvider(provider),rootNode=new _modelAjxpNode2.default("/",!1,repository.getLabel(),newIcon,provider)}var initLoadRep=this._initLoadRep&&"/"!==this._initLoadRep?this._initLoadRep.valueOf():null,firstLoadObs=function(){};initLoadRep&&(firstLoadObs=function(){_this6.goTo(initLoadRep),_this6._initLoadRep=null}),this._contextHolder.setRootNode(rootNode),rootNode.observeOnce("first_load",function(){this._contextHolder.notify("context_changed",rootNode),this.Controller.fireContextChange(),firstLoadObs()}.bind(this)),this.repositoryId=repositoryId,rootNode.load()}},Pydio.prototype.goTo=function(nodeOrPath){var gotoNode=void 0,path=void 0;if("string"==typeof nodeOrPath)path=nodeOrPath,gotoNode=new _modelAjxpNode2.default(nodeOrPath);else if(gotoNode=nodeOrPath,path=gotoNode.getPath(),nodeOrPath.getMetadata().has("repository_id")&&nodeOrPath.getMetadata().get("repository_id")!==this.repositoryId&&"repository"!==nodeOrPath.getAjxpMime()&&"repository_editable"!==nodeOrPath.getAjxpMime())return this.user&&(this.user.setPreference("pending_folder",nodeOrPath.getPath()),this._initLoadRep=nodeOrPath.getPath()),void this.triggerRepositoryChange(nodeOrPath.getMetadata().get("repository_id"));if(this._repositoryCurrentlySwitching&&this.user)return this.user.setPreference("pending_folder",gotoNode.getPath()),void(this._initLoadRep=gotoNode.getPath());var current=this._contextHolder.getContextNode();return current&¤t.getPath()===path?void 0:""===path||"/"===path?void this._contextHolder.requireContextChange(this._contextHolder.getRootNode()):(gotoNode=gotoNode.findInArbo(this._contextHolder.getRootNode()),void(gotoNode?gotoNode.isBrowsable()?this._contextHolder.requireContextChange(gotoNode):(this._contextHolder.setPendingSelection(_utilPathUtils2.default.getBasename(path)),this._contextHolder.requireContextChange(gotoNode.getParent())):this._contextHolder.loadPathInfoAsync(path,function(foundNode){foundNode.isBrowsable()?gotoNode=foundNode:(this._contextHolder.setPendingSelection(_utilPathUtils2.default.getBasename(path)),gotoNode=new _modelAjxpNode2.default(_utilPathUtils2.default.getDirname(path))),this._contextHolder.requireContextChange(gotoNode)}.bind(this))))},Pydio.prototype.triggerRepositoryChange=function(repositoryId){var callback=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this.fire("trigger_repository_switch"),this.Registry.load(null,callback,repositoryId)},Pydio.prototype.getPluginConfigs=function(pluginQuery){return this.Registry.getPluginConfigs(pluginQuery)},Pydio.prototype.listLanguagesWithCallback=function(callback){var langs=this.Parameters.get("availableLanguages")||{en:"Default"},current=this.currentLanguage;Object.keys(langs).sort().map(function(key){callback(key,langs[key],current===key)})},Pydio.prototype.loadI18NMessages=function(newLanguage){var reloadRegistry=arguments.length<=1||void 0===arguments[1]||arguments[1];this.ApiClient.switchLanguage(newLanguage,function(data){if(data){this.MessageHash=data,window&&window.MessageHash&&(window.MessageHash=this.MessageHash);for(var key in this.MessageHash)this.MessageHash.hasOwnProperty(key)&&(this.MessageHash[key]=this.MessageHash[key].replace("\\n","\n"));this.notify("language",newLanguage),this.Controller.refreshGuiActionsI18n(),reloadRegistry&&this.loadXmlRegistry(),this.UI.refreshTemplateParts(),this.fireContextRefresh(),this.currentLanguage=newLanguage}}.bind(this))},Pydio.prototype.getController=function(){return this.Controller},Pydio.prototype.displayMessage=function(messageType,message){var urls=_utilLangUtils2.default.parseUrl(message);urls.length&&this.user&&this.user.repositories&&urls.forEach(function(match){var repo=this.user.repositories.get(match.host);repo&&(message=message.replace(match.url,repo.label+":"+match.path+match.file))}.bind(this)),"ERROR"===messageType?_langLogger2.default.error(message):_langLogger2.default.log(message),this.UI&&this.UI.displayMessage(messageType,message)},Pydio.prototype.updateContextData=function(ajxpContextNode,ajxpSelectedNodes,selectionSource){ajxpContextNode&&this._contextHolder.requireContextChange(ajxpContextNode),ajxpSelectedNodes&&this._contextHolder.setSelectedNodes(ajxpSelectedNodes,selectionSource)},Pydio.prototype.getContextHolder=function(){return this._contextHolder},Pydio.prototype.getContextNode=function(){return this._contextHolder.getContextNode()||new _modelAjxpNode2.default("")},Pydio.prototype.getUserSelection=function(){return this._contextHolder},Pydio.prototype.fireContextRefresh=function(){this.getContextHolder().requireContextChange(this.getContextNode(),!0)},Pydio.prototype.fireNodeRefresh=function(nodePathOrNode,completeCallback){this.getContextHolder().requireNodeReload(nodePathOrNode,completeCallback)},Pydio.prototype.fireContextUp=function(){this.getContextNode().isRoot()||this.updateContextData(this.getContextNode().getParent())},Pydio.requireLib=function(module){var promise=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];return require("pydio/http/resources-manager").requireLib(module,promise)},Pydio.getInstance=function(){return Pydio.instance},Pydio.getMessages=function(){return Pydio.instance?Pydio.instance.MessageHash:{}},Pydio.startLoading=function(){Pydio.instance.notify("connection-start")},Pydio.endLoading=function(){Pydio.instance.notify("connection-end")},Pydio}(_langObservable2.default);Pydio.instance=null,exports.default=Pydio,module.exports=exports.default},{"./http/PydioApi":515,"./http/PydioWebSocket":516,"./lang/Logger":750,"./lang/Observable":751,"./model/AjxpNode":753,"./model/Controller":755,"./model/EmptyNodeProvider":756,"./model/PydioDataModel":759,"./model/Registry":760,"./model/Repository":761,"./util/ActivityMonitor":763,"./util/LangUtils":766,"./util/PathUtils":767,"./util/XMLUtils":768,"pydio/http/resources-manager":"pydio/http/resources-manager"}],512:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _utilXMLUtils=require("../util/XMLUtils"),_utilXMLUtils2=_interopRequireDefault(_utilXMLUtils);require("whatwg-fetch");var Connexion=function(){function Connexion(baseUrl){_classCallCheck(this,Connexion),this._pydio=window.pydio,this._baseUrl=baseUrl||window.ajxpServerAccessPath,this._libUrl=window.ajxpResourcesFolder+"/build",this._parameters=new Map,this._method="post",this.discrete=!1}return Connexion.updateServerAccess=function(parameters){parameters.get("SECURE_TOKEN")&&(Connexion.SECURE_TOKEN=parameters.get("SECURE_TOKEN"));var serverAccessPath=parameters.get("ajxpServerAccess").split("?").shift();if(parameters.get("SERVER_PREFIX_URI")?(parameters.set("ajxpResourcesFolder",parameters.get("SERVER_PREFIX_URI")+parameters.get("ajxpResourcesFolder")),serverAccessPath=parameters.get("SERVER_PREFIX_URI")+serverAccessPath+"?"+(Connexion.SECURE_TOKEN?"secure_token="+Connexion.SECURE_TOKEN:"")):serverAccessPath=serverAccessPath+"?"+(Connexion.SECURE_TOKEN?"secure_token="+Connexion.SECURE_TOKEN:""),parameters.get("SERVER_PERMANENT_PARAMS")){var permParams=parameters.get("SERVER_PERMANENT_PARAMS"),permStrings=[];for(var permanent in permParams)permParams.hasOwnProperty(permanent)&&permStrings.push(permanent+"="+permParams[permanent]);permStrings=permStrings.join("&"),permStrings&&(serverAccessPath+="&"+permStrings)}parameters.set("ajxpServerAccess",serverAccessPath),window.ajxpServerAccessPath=serverAccessPath,window.pydioBootstrap&&window.pydioBootstrap.parameters&&(pydioBootstrap.parameters.set("ajxpServerAccess",serverAccessPath),pydioBootstrap.parameters.set("SECURE_TOKEN",Connexion.SECURE_TOKEN))},Connexion.log=function(action,syncStatus){Connexion.PydioLogs||(Connexion.PydioLogs=[]),Connexion.PydioLogs.push({action:action,sync:syncStatus})},Connexion.prototype.setMethod=function(method){this._method=method},Connexion.prototype.showLoader=function(){!this.discrete&&this._pydio&&this._pydio.notify("connection-start")},Connexion.prototype.hideLoader=function(){!this.discrete&&this._pydio&&this._pydio.notify("connection-end")},Connexion.prototype.send=function(){var _this=this;this.showLoader();var oThis=this,options={method:this._method,credentials:"same-origin"},url=this._baseUrl,bodyParts=[];this._parameters.forEach(function(value,key){value instanceof Array?value.map(function(oneV){bodyParts.push(key+"="+encodeURIComponent(oneV))}):bodyParts.push(key+"="+encodeURIComponent(value))});var queryString=bodyParts.join("&");"post"===this._method?(options.headers={"Content-type":"application/x-www-form-urlencoded; charset=UTF-8"},options.body=queryString):url+=(url.indexOf("?")>-1?"&":"?")+queryString,window.fetch(url,options).then(function(response){var h=response.headers.get("Content-type");return-1!==h.indexOf("/json")?response.json().then(function(json){oThis.applyComplete({responseJSON:json},response)}):-1!==h.indexOf("/xml")?response.text().then(function(text){oThis.applyComplete({responseXML:_utilXMLUtils2.default.parseXml(text)},response)}):response.text().then(function(text){oThis.applyComplete({responseText:text},response)}),response}).catch(function(error){_this._pydio&&_this._pydio.displayMessage("ERROR","Network error "+error.message)})},Connexion.prototype.applyComplete=function(parsedBody,response){this.hideLoader();var pydio=this._pydio,message=void 0,tokenMessage=void 0,tok1="Ooops, it seems that your security token has expired! Please %s by hitting refresh or F5 in your browser!",tok2="reload the page";window.MessageHash&&window.MessageHash[437]&&(tok1=window.MessageHash[437],tok2=window.MessageHash[438]),tokenMessage=tok1.replace("%s",""+tok2+"");var ctype=response.headers.get("Content-type");if(parsedBody.responseXML&&parsedBody.responseXML.documentElement&&"parsererror"==parsedBody.responseXML.documentElement.nodeName?message="Parsing error : \n"+parsedBody.responseXML.documentElement.firstChild.textContent:parsedBody.responseXML&&parsedBody.responseXML.parseError&&0!=parsedBody.responseXML.parseError.errorCode?message="Parsing Error : \n"+parsedBody.responseXML.parseError.reason:ctype.indexOf("text/xml")>-1&&null==parsedBody.responseXML?message="Expected XML but got empty response!":-1==ctype.indexOf("text/xml")&&-1==ctype.indexOf("application/json")&&parsedBody.responseText.indexOf("Fatal error")>-1?message=parsedBody.responseText.replace("
",""):500==response.status&&(message="Internal Server Error: you should check your web server logs to find what's going wrong!"),message&&(message.startsWith("You are not allowed to access this resource.")&&(message=tokenMessage),pydio?pydio.displayMessage("ERROR",message):alert(message)),parsedBody.responseXML&&parsedBody.responseXML.documentElement){if(_utilXMLUtils2.default.XPathSelectSingleNode(parsedBody.responseXML.documentElement,"require_auth")&&pydio){var root=pydio.getContextHolder().getRootNode();root&&(pydio.getContextHolder().setContextNode(root),root.clear()),pydio.getController().fireAction("logout"),pydio.getController().fireAction("login")}var messageNode=_utilXMLUtils2.default.XPathSelectSingleNode(parsedBody.responseXML.documentElement,"message");if(messageNode){var messageType=messageNode.getAttribute("type").toUpperCase(),messageContent=_utilXMLUtils2.default.getDomNodeText(messageNode);messageContent.startsWith("You are not allowed to access this resource.")&&(messageContent=tokenMessage),pydio?pydio.displayMessage(messageType,messageContent):"ERROR"==messageType&&alert(messageType+":"+messageContent),"SUCCESS"==messageType&&messageNode.parentNode.removeChild(messageNode)}}this.onComplete&&(parsedBody.status=response.status,parsedBody.responseObject=response,this.onComplete(parsedBody)),pydio&&pydio.fire("server_answer",this)},Connexion.prototype.uploadFile=function(file,fileParameterName,uploadUrl){var onComplete=arguments.length<=3||void 0===arguments[3]?function(){}:arguments[3],onError=arguments.length<=4||void 0===arguments[4]?function(){}:arguments[4],_this2=this,onProgress=arguments.length<=5||void 0===arguments[5]?function(){}:arguments[5],xhrSettings=arguments.length<=6||void 0===arguments[6]?{}:arguments[6],xhr=this.initializeXHRForUpload(uploadUrl,onComplete,onError,onProgress,xhrSettings);if(xhrSettings&&"PUT"===xhrSettings.method)return xhr.send(file),xhr;if(window.FormData)this.sendFileUsingFormData(xhr,file,fileParameterName);else if(window.FileReader){var fileReader=new FileReader;fileReader.onload=function(e){_this2.xhrSendAsBinary(xhr,file.name,e.target.result,fileParameterName)},fileReader.readAsBinaryString(file)}else file.getAsBinary&&this.xhrSendAsBinary(xhr,file.name,file.getAsBinary(),fileParameterName);return xhr},Connexion.prototype.initializeXHRForUpload=function(url,onComplete,onError,onProgress){var xhrSettings=arguments.length<=4||void 0===arguments[4]?{}:arguments[4],xhr=new XMLHttpRequest,upload=xhr.upload;xhrSettings.withCredentials&&(xhr.withCredentials=!0),upload.addEventListener("progress",function(e){e.lengthComputable&&onProgress(e)},!1),xhr.onreadystatechange=function(){4===xhr.readyState&&(200===xhr.status?onComplete(xhr):onError(xhr))}.bind(this),upload.onerror=function(){onError(xhr)};var method="POST";return xhrSettings.method&&(method=xhrSettings.method),xhr.open(method,url,!0),xhrSettings.customHeaders&&Object.keys(xhrSettings.customHeaders).forEach(function(k){xhr.setRequestHeader(k,xhrSettings.customHeaders[k])}),xhr},Connexion.prototype.sendFileUsingFormData=function(xhr,file,fileParameterName){var formData=new FormData;formData.append(fileParameterName,file),xhr.send(formData)},Connexion.prototype.xhrSendAsBinary=function(xhr,fileName,fileData,fileParameterName){var boundary="----MultiPartFormBoundary"+(new Date).getTime();xhr.setRequestHeader("Content-Type","multipart/form-data, boundary="+boundary);var body="--"+boundary+"\r\n";body+="Content-Disposition: form-data; name='"+fileParameterName+"'; filename='"+unescape(encodeURIComponent(fileName))+"'\r\n",body+="Content-Type: application/octet-stream\r\n\r\n",body+=fileData+"\r\n",body+="--"+boundary+"--\r\n",xhr.sendAsBinary(body)},Connexion.prototype.loadLibrary=function(fileName,onLoadedCode,aSync){var _this3=this;window.pydioBootstrap&&window.pydioBootstrap.parameters.get("ajxpVersion")&&-1===fileName.indexOf("?")&&(fileName+="?v="+window.pydioBootstrap.parameters.get("ajxpVersion"));var url=this._libUrl?this._libUrl+"/"+fileName:fileName,pydio=this._pydio,scriptLoaded=function(script){try{if(window.execScript)window.execScript(script);else{window.my_code=script;var head=document.getElementsByTagName("head")[0],script_tag=document.createElement("script");script_tag.type="text/javascript",script_tag.innerHTML="eval(window.my_code)",head.appendChild(script_tag),delete window.my_code,head.removeChild(script_tag)}null!=onLoadedCode&&onLoadedCode()}catch(e){alert("error loading "+fileName+":"+e.message),console&&console.error(e)}pydio&&pydio.fire("server_answer")};aSync?window.fetch(url,{method:"GET",credentials:"same-origin"}).then(function(response){return response.text()}).then(function(script){scriptLoaded(script)}):function(){var xhr=new XMLHttpRequest;xhr.onreadystatechange=function(){4==xhr.readyState&&(200===xhr.status?scriptLoaded(xhr.responseText):alert("error loading "+fileName+": Status code was "+xhr.status))}.bind(_this3),xhr.open("GET",url,!1),xhr.send()}()},Connexion}();exports.default=Connexion,module.exports=exports.default},{"../util/XMLUtils":768,"whatwg-fetch":"whatwg-fetch"}],513:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _genApiUserServiceApi=require("./gen/api/UserServiceApi"),_genApiUserServiceApi2=_interopRequireDefault(_genApiUserServiceApi),_genModelRestSearchUserRequest=require("./gen/model/RestSearchUserRequest"),_genModelRestSearchUserRequest2=_interopRequireDefault(_genModelRestSearchUserRequest),_genModelIdmUserSingleQuery=require("./gen/model/IdmUserSingleQuery"),_genModelIdmUserSingleQuery2=_interopRequireDefault(_genModelIdmUserSingleQuery),_genModelServiceOperationType=require("./gen/model/ServiceOperationType"),_genModelServiceOperationType2=_interopRequireDefault(_genModelServiceOperationType),_genModelIdmNodeType=require("./gen/model/IdmNodeType"),_genModelIdmNodeType2=_interopRequireDefault(_genModelIdmNodeType),_genModelIdmUser=require("./gen/model/IdmUser"),_genModelIdmUser2=_interopRequireDefault(_genModelIdmUser),_utilLangUtils=require("../util/LangUtils"),_utilLangUtils2=_interopRequireDefault(_utilLangUtils),_genApiRoleServiceApi=require("./gen/api/RoleServiceApi"),_genApiRoleServiceApi2=_interopRequireDefault(_genApiRoleServiceApi),_genModelIdmRole=require("./gen/model/IdmRole"),_genModelIdmRole2=_interopRequireDefault(_genModelIdmRole),_genModelRestSearchRoleRequest=require("./gen/model/RestSearchRoleRequest"),_genModelRestSearchRoleRequest2=_interopRequireDefault(_genModelRestSearchRoleRequest),_genModelIdmRoleSingleQuery=require("./gen/model/IdmRoleSingleQuery"),_genModelIdmRoleSingleQuery2=_interopRequireDefault(_genModelIdmRoleSingleQuery),_uuid4=require("uuid4"),_uuid42=_interopRequireDefault(_uuid4),_genModelServiceResourcePolicy=require("./gen/model/ServiceResourcePolicy"),_genModelServiceResourcePolicy2=_interopRequireDefault(_genModelServiceResourcePolicy),_genApiGraphServiceApi=require("./gen/api/GraphServiceApi"),_genApiGraphServiceApi2=_interopRequireDefault(_genApiGraphServiceApi),IdmApi=function(){function IdmApi(restClient){_classCallCheck(this,IdmApi),this.client=restClient}return IdmApi.prototype.loadUser=function(userLogin){var api=new _genApiUserServiceApi2.default(this.client),request=new _genModelRestSearchUserRequest2.default;request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),request.Queries=[];var query=new _genModelIdmUserSingleQuery2.default -;return query.Login=userLogin,query.NodeType=_genModelIdmNodeType2.default.constructFromObject("USER"),request.Queries.push(query),api.searchUsers(request).then(function(collection){return collection.Users?collection.Users[0]:null})},IdmApi.prototype.loadRole=function(roleUuid){var api=new _genApiRoleServiceApi2.default(this.client),request=new _genModelRestSearchRoleRequest2.default;return request.Queries=[_genModelIdmRoleSingleQuery2.default.constructFromObject({Uuid:[roleUuid]})],api.searchRoles(request).then(function(collection){return collection.Roles?collection.Roles[0]:null})},IdmApi.prototype.listUsers=function(){var baseGroup=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],filterString=arguments.length<=1||void 0===arguments[1]?"":arguments[1],recursive=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],offset=arguments.length<=3||void 0===arguments[3]?0:arguments[3],limit=arguments.length<=4||void 0===arguments[4]?-1:arguments[4],profile=arguments.length<=5||void 0===arguments[5]?"":arguments[5],api=new _genApiUserServiceApi2.default(this.client),request=new _genModelRestSearchUserRequest2.default;request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),request.Queries=[];var query=new _genModelIdmUserSingleQuery2.default;if(query.GroupPath=baseGroup||"/",query.Recursive=recursive,query.NodeType=_genModelIdmNodeType2.default.constructFromObject("USER"),request.Queries.push(query),filterString){var queryString=new _genModelIdmUserSingleQuery2.default;queryString.Login=filterString+"*",request.Queries.push(queryString)}if(profile){var exclude="!"===profile[0],profileQ=new _genModelIdmUserSingleQuery2.default;profileQ.AttributeName="profile",profileQ.AttributeValue=exclude?profile.substring(1):profile,exclude&&(profileQ.not=!0),request.Queries.push(profileQ)}var query2=new _genModelIdmUserSingleQuery2.default;return query2.AttributeName="hidden",query2.AttributeValue="true",query2.not=!0,request.Queries.push(query2),offset>0&&(request.Offset=offset+""),limit>-1&&(request.Limit=limit+""),api.searchUsers(request).then(function(collection){return{Users:collection.Users||[],Total:collection.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.listUsersGroups=function(){var baseGroup=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],recursive=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],offset=arguments.length<=2||void 0===arguments[2]?0:arguments[2],limit=arguments.length<=3||void 0===arguments[3]?-1:arguments[3],p1=this.listGroups(baseGroup,"",recursive,0,1e3),p2=this.listUsers(baseGroup,"",recursive,offset,limit);return Promise.all([p1,p2]).then(function(result){var resGroups=result[0],resUsers=result[1];return{Groups:resGroups.Groups||[],Users:resUsers.Users||[],Total:resUsers.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.listUsersWithRole=function(roleId){var offset=arguments.length<=1||void 0===arguments[1]?0:arguments[1],limit=arguments.length<=2||void 0===arguments[2]?-1:arguments[2],api=new _genApiUserServiceApi2.default(this.client),request=new _genModelRestSearchUserRequest2.default;request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),request.Queries=[];var query=new _genModelIdmUserSingleQuery2.default;query.GroupPath="/",query.Recursive=!0,query.NodeType=_genModelIdmNodeType2.default.constructFromObject("USER"),request.Queries.push(query);var query2=new _genModelIdmUserSingleQuery2.default;return query2.HasRole=roleId,request.Queries.push(query2),offset>0&&(request.Offset=offset+""),request.Limit=limit>-1?limit+"":"100",api.searchUsers(request).then(function(collection){return{Users:collection.Users||[],Total:collection.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.listGroups=function(){var baseGroup=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],filterString=arguments.length<=1||void 0===arguments[1]?"":arguments[1],recursive=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],offset=arguments.length<=3||void 0===arguments[3]?0:arguments[3],limit=arguments.length<=4||void 0===arguments[4]?-1:arguments[4],api=new _genApiUserServiceApi2.default(this.client),request=new _genModelRestSearchUserRequest2.default;request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),request.Queries=[];var query=new _genModelIdmUserSingleQuery2.default;if(query.GroupPath=baseGroup||"/",query.Recursive=recursive,query.NodeType=_genModelIdmNodeType2.default.constructFromObject("GROUP"),request.Queries.push(query),filterString){var queryString=new _genModelIdmUserSingleQuery2.default;queryString.AttributeName="displayName",queryString.AttributeValue=filterString+"*",request.Queries.push(queryString)}return offset>0&&(request.Offset=offset+""),limit>-1&&(request.Limit=limit+""),api.searchUsers(request).then(function(value){return{Groups:value.Groups||[],Total:value.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.listRoles=function(){var showTechnicalRoles=!(arguments.length<=0||void 0===arguments[0])&&arguments[0],offset=arguments.length<=1||void 0===arguments[1]?0:arguments[1],limit=arguments.length<=2||void 0===arguments[2]?-1:arguments[2],api=new _genApiRoleServiceApi2.default(this.client),request=new _genModelRestSearchRoleRequest2.default;if(offset>0&&(request.Offset=offset+""),limit>-1&&(request.Limit=limit+""),showTechnicalRoles)return api.searchRoles(request).then(function(coll){return coll.Roles||[]});request.Queries=[];var q=new _genModelIdmRoleSingleQuery2.default;q.IsGroupRole=!0,q.not=!0,request.Queries.push(q);var q=new _genModelIdmRoleSingleQuery2.default;q.IsUserRole=!0,q.not=!0,request.Queries.push(q);var q=new _genModelIdmRoleSingleQuery2.default;q.IsTeam=!0,q.not=!0,request.Queries.push(q),request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND");var p1=api.searchRoles(request).then(function(coll){return coll.Roles||[]}),p2=this.loadRole("ROOT_GROUP");return Promise.all([p1,p2]).then(function(result){var roles=result[0];return null!==result[1]&&(roles=[result[1]].concat(roles)),roles})},IdmApi.prototype.listTeams=function(){var filterString=arguments.length<=0||void 0===arguments[0]?"":arguments[0],offset=arguments.length<=1||void 0===arguments[1]?0:arguments[1],limit=arguments.length<=2||void 0===arguments[2]?-1:arguments[2],api=new _genApiRoleServiceApi2.default(this.client),request=new _genModelRestSearchRoleRequest2.default;offset>0&&(request.Offset=offset+""),limit>-1&&(request.Limit=limit+""),request.Queries=[];var q=new _genModelIdmRoleSingleQuery2.default;if(q.IsTeam=!0,request.Queries.push(q),filterString){var q2=new _genModelIdmRoleSingleQuery2.default;q2.Label=filterString+"*",request.Queries.push(q2)}return request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),api.searchRoles(request).then(function(coll){return{Teams:coll.Roles||[],Total:coll.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.createGroup=function(baseGroup,groupIdentifier,displayName){void 0===baseGroup&&(baseGroup="/");var api=new _genApiUserServiceApi2.default(this.client),object=new _genModelIdmUser2.default;return object.IsGroup=!0,object.GroupPath=baseGroup||"/",object.GroupLabel=groupIdentifier,object.Attributes={displayName:displayName},api.putUser(groupIdentifier,object)},IdmApi.prototype.createUser=function(baseGroup,login,password){void 0===baseGroup&&(baseGroup="/");var profile=arguments.length<=3||void 0===arguments[3]?"standard":arguments[3],api=new _genApiUserServiceApi2.default(this.client),object=new _genModelIdmUser2.default;return object.GroupPath=baseGroup,object.Login=login,object.Password=password,object.Attributes={profile:profile},api.putUser(login,object)},IdmApi.prototype.putExternalUser=function(data,parametersDef){var _this=this,existingUser=arguments.length<=2||void 0===arguments[2]?null:arguments[2],idmUser=existingUser||new _genModelIdmUser2.default;return idmUser.Attributes=idmUser.Attributes||{},idmUser.Roles=idmUser.Roles||[],idmUser.Attributes.profile="shared",parametersDef.forEach(function(param){var name=param.name,IdmUserField=param.IdmUserField,scope=param.scope,pluginId=param.pluginId,value=data[name];IdmUserField?idmUser[IdmUserField]=value:"user"===scope?(!0!==value&&!1!==value||(value=JSON.stringify(value)),idmUser.Attributes[name]=value):pluginId&&(idmUser.Attributes["parameter:"+pluginId+":"+name]=JSON.stringify(value))}),pydio.user.getIdmUser().then(function(crtUser){return idmUser.GroupPath=crtUser.GroupPath,_this.policiesForExternalUser(pydio.user,idmUser.Login).then(function(policies){return idmUser.Policies=policies,new _genApiUserServiceApi2.default(_this.client).putUser(idmUser.Login,idmUser)})})},IdmApi.prototype.loadUserGraph=function(userLogin){return new _genApiGraphServiceApi2.default(this.client).relation(userLogin)},IdmApi.prototype.createRole=function(roleLabel){var api=new _genApiRoleServiceApi2.default(this.client),idmRole=new _genModelIdmRole2.default;return idmRole.Uuid=_uuid42.default.sync(),idmRole.Label=roleLabel,api.setRole(idmRole.Uuid,idmRole)},IdmApi.prototype.updateIdmUser=function(idmUser){var api=new _genApiUserServiceApi2.default(this.client);return idmUser.IsGroup?api.putUser(idmUser.GroupLabel,idmUser):api.putUser(idmUser.Login,idmUser)},IdmApi.prototype.deleteIdmUser=function(idmUser){var api=new _genApiUserServiceApi2.default(this.client);if(idmUser.IsGroup){var gPath=_utilLangUtils2.default.trimRight(idmUser.GroupPath,"/")+"/"+idmUser.GroupLabel+"/";return"/"===gPath?Promise.reject("cannot delete root group!"):api.deleteUser(_utilLangUtils2.default.trimLeft(gPath,"/"))}return api.deleteUser(idmUser.Login)},IdmApi.prototype.deleteRole=function(roleId){return new _genApiRoleServiceApi2.default(this.client).deleteRole(roleId)},IdmApi.prototype.saveSelectionAsTeam=function(teamName,userIds,callback){var _this2=this;return this.policiesForUniqueUser(pydio.user).then(function(policies){var roleApi=new _genApiRoleServiceApi2.default(_this2.client),role=new _genModelIdmRole2.default;return role.Uuid=_utilLangUtils2.default.computeStringSlug(teamName)+"-"+_uuid42.default.sync().substr(0,4),role.Label=teamName,role.IsTeam=!0,role.Policies=policies,roleApi.setRole(role.Uuid,role).then(function(r){var ps=userIds.map(function(userId){return _this2.addUserToTeam(role.Uuid,userId,null)});return Promise.all(ps).then(function(){callback&&callback(r)})})})},IdmApi.prototype.addUserToTeam=function(teamId,userLogin,callback){var userApi=new _genApiUserServiceApi2.default(this.client),p1=this.loadUser(userLogin),p2=this.loadRole(teamId);return Promise.all([p1,p2]).then(function(result){var user=result[0],role=result[1];if(!user||!role)throw new Error("Cannot find user or team!");return user.Roles=user.Roles||[],user.Roles.push(role),userApi.putRoles(userLogin,user).then(function(){callback&&callback()})})},IdmApi.prototype.removeUserFromTeam=function(teamId,userLogin,callback){var userApi=new _genApiUserServiceApi2.default(this.client);return this.loadUser(userLogin).then(function(u){if(!u)throw new Error("Cannot find user!");return u.Roles=u.Roles||[],u.Roles=u.Roles.filter(function(r){return r.Uuid!==teamId}),callback&&callback(u),userApi.putRoles(userLogin,u).then(function(){callback&&callback()})})},IdmApi.prototype.updateTeamLabel=function(teamId,newLabel,callback){var roleApi=new _genApiRoleServiceApi2.default(this.client);return this.loadRole(teamId).then(function(r){if(!r)throw new Error("Cannot find team!");return r.Label=newLabel,roleApi.setRole(r.Uuid,r).then(function(){callback&&callback()})})},IdmApi.prototype.policiesForUniqueUser=function(currentUser){return currentUser.getIdmUser().then(function(idmUser){return[_genModelServiceResourcePolicy2.default.constructFromObject({Subject:idmUser.Uuid,Action:"OWNER",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+idmUser.Login,Action:"READ",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+idmUser.Login,Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"profile:admin",Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"profile:admin",Action:"READ",Effect:"allow"})]})},IdmApi.prototype.policiesForExternalUser=function(currentUser,newUserLogin){return currentUser.getIdmUser().then(function(idmUser){return[_genModelServiceResourcePolicy2.default.constructFromObject({Subject:idmUser.Uuid,Action:"OWNER",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+idmUser.Login,Action:"READ",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+idmUser.Login,Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+newUserLogin,Action:"READ",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+newUserLogin,Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"profile:admin",Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"profile:admin",Action:"READ",Effect:"allow"})]})},IdmApi}();exports.default=IdmApi,module.exports=exports.default},{"../util/LangUtils":766,"./gen/api/GraphServiceApi":526,"./gen/api/RoleServiceApi":533,"./gen/api/UserServiceApi":541,"./gen/model/IdmNodeType":575,"./gen/model/IdmRole":581,"./gen/model/IdmRoleSingleQuery":582,"./gen/model/IdmUser":588,"./gen/model/IdmUserSingleQuery":591,"./gen/model/RestSearchRoleRequest":698,"./gen/model/RestSearchUserRequest":699,"./gen/model/ServiceOperationType":722,"./gen/model/ServiceResourcePolicy":724,uuid4:508}],514:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),MetaCacheService=function(_Observable){_inherits(MetaCacheService,_Observable),MetaCacheService.getInstance=function(){return MetaCacheService.INSTANCE||(MetaCacheService.INSTANCE=new MetaCacheService),MetaCacheService.INSTANCE};function MetaCacheService(){_classCallCheck(this,MetaCacheService),_Observable.call(this),this._streams=new Map}return MetaCacheService.prototype.hasKey=function(streamName,keyName){return!!this._streams.get(streamName)&&this._streams.get(streamName).get("data").has(keyName)},MetaCacheService.prototype.getByKey=function(streamName,keyName){return this._streams.get(streamName)?this._streams.get(streamName).get("data").get(keyName):null},MetaCacheService.prototype.deleteKey=function(streamName,keyName){this._streams.get(streamName)&&this._streams.get(streamName).get("data").delete(keyName)},MetaCacheService.prototype.setKey=function(streamName,keyName,value){if(!this._streams.get(streamName))throw Error("Stream "+streamName+" not registered, please register first");this._streams.get(streamName).get("data").set(keyName,value)},MetaCacheService.prototype.clearMetaStreamKeys=function(streamName){this._streams.has(streamName)&&this._streams.get(streamName).set("data",new Map)},MetaCacheService.prototype.registerMetaStream=function(streamName,expirationPolicy){if(!this._streams.get(streamName)){var data=new Map;data.set("expirationPolicy",expirationPolicy),data.set("data",new Map),this._streams.set(streamName,data),pydio.observeOnce("repository_list_refreshed",function(){this._streams.delete(streamName),this.registerMetaStream(streamName,expirationPolicy)}.bind(this))}},MetaCacheService.prototype.metaForNode=function(streamName,ajxpNode,loaderCallback,remoteParser,cacheLoader){var _this=this;if(!this._streams.has(streamName))throw new Error("Cannot find meta stream "+streamName+", please register it before using it");var def=this._streams.get(streamName),key=ajxpNode.getPath(),expirationPolicy=def.get("expirationPolicy");def.get("data").has(key)?cacheLoader(def.get("data").get(key)):function(){var clearValueObserver=function(){def.get("data").delete(key)}.bind(_this);loaderCallback(ajxpNode,function(transport){var newData=remoteParser(transport);if(null!==newData){var cachedData=newData;newData instanceof AjxpNode&&(cachedData=new AjxpNode,cachedData.replaceBy(newData)),def.get("data").set(key,cachedData),expirationPolicy==MetaCacheService.EXPIRATION_LOCAL_NODE&&(ajxpNode.observeOnce("node_removed",clearValueObserver),ajxpNode.observeOnce("node_replaced",clearValueObserver))}})}()},MetaCacheService.prototype.invalidateMetaForKeys=function(streamName,keyPattern){if(!this._streams.has(streamName))throw new Error("Cannot find meta stream "+streamName+", please register it before using it");var data=this._streams.get(streamName).get("data");data.forEach(function(value,key){key.match(keyPattern)&&data.delete(key)})},MetaCacheService}(_langObservable2.default);MetaCacheService.EXPIRATION_LOCAL_NODE="LOCAL_NODE",MetaCacheService.EXPIRATION_MANUAL_TRIGGER="MANUAL_TRIGGER",exports.default=MetaCacheService,module.exports=exports.default},{"../lang/Observable":751}],515:[function(require,module,exports){"use strict";exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i1e3&&console&&console.log("WebSocket Closed Connection:"+reason+" (code "+event.code+")")},PydioWebSocket}();exports.default=PydioWebSocket,module.exports=exports.default},{"../model/AjxpNode":753,"../model/MetaNodeProvider":758,"../util/PathUtils":767,"./PydioApi":515,"lodash.debounce":"lodash.debounce","reconnecting-websocket":480}],517:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _utilXMLUtils=require("../util/XMLUtils"),_utilXMLUtils2=_interopRequireDefault(_utilXMLUtils),SystemJS=require("systemjs"),ResourcesManager=function(){function ResourcesManager(){_classCallCheck(this,ResourcesManager),this.mainFormContainerId="all_forms",this.resources={},this.loaded=!1}return ResourcesManager.prototype.addJSResource=function(fileName,className){this.resources.js||(this.resources.js=[]),this.resources.js.push({fileName:fileName,className:className,autoload:!1})},ResourcesManager.prototype.addCSSResource=function(fileName){this.resources.css||(this.resources.css=[]),this.resources.css.push(fileName)},ResourcesManager.prototype.addGuiForm=function(formId,htmlSnippet){this.resources.forms||(this.resources.forms=new Map),this.resources.forms.set(formId,htmlSnippet)},ResourcesManager.prototype.addDependency=function(data){this.resources.dependencies||(this.resources.dependencies=[]),this.resources.dependencies.push(data)},ResourcesManager.prototype.hasDependencies=function(){return this.resources.dependencies||!1},ResourcesManager.prototype.load=function(resourcesRegistry){var _this=this,jsAutoloadOnly=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],callback=arguments.length<=2||void 0===arguments[2]?FuncUtils.Empty:arguments[2];if(this.loaded)return void callback();this.hasDependencies()&&!this.dependenciesLoaded&&this.resources.dependencies.forEach(function(el){resourcesRegistry[el]&&resourcesRegistry[el].load(resourcesRegistry,!1,function(){this.dependenciesLoaded=!0,this.load(resourcesRegistry,!1,callback)}.bind(this))}.bind(this)),this.resources.forms&&this.resources.forms.forEach(function(value,key){}.bind(this)),this.resources.js?function(){var it=_this.resources.js.values(),cb=function(){var object=it.next();if(object.value){if(jsAutoloadOnly&&!object.value.autoload)return void cb();this.loadJSResource(object.value.fileName,object.value.className,cb,!0)}else this.loaded=!0,callback()}.bind(_this);cb()}():(this.loaded=!0,callback()),this.resources.css&&this.resources.css.forEach(function(value){this.loadCSSResource(value)}.bind(this))},ResourcesManager.prototype.loadJSResource=function(fileName,className,callback){arguments.length<=3||void 0===arguments[3]||arguments[3];ResourcesManager.__configsParsed||ResourcesManager.loadAutoLoadResources(),SystemJS.import(className).then(callback)},ResourcesManager.prototype.loadCSSResource=function(fileName){pydio.Parameters.get("SERVER_PREFIX_URI")&&(fileName=pydio.Parameters.get("SERVER_PREFIX_URI")+fileName),fileName=fileName+"?v="+pydio.Parameters.get("ajxpVersion");for(var found=!1,links=document.getElementsByTagName("link"),i=0;i=_iterator.length)break;node=_iterator[_i++]}else{if(_i=_iterator.next(),_i.done)break;node=_i.value}var namespace=node.getAttribute("className"),filepath=ResourcesManager.getFileOrFallback(node),deps=[];node.getAttribute("depends")&&(deps=node.getAttribute("depends").split(",")),node.getAttribute("expose")&&(ResourcesManager.__requires[node.getAttribute("expose")]=namespace),sysjsMap[namespace]=filepath,sysjsMeta[namespace]={format:"global",deps:deps}}SystemJS.config({map:sysjsMap,meta:sysjsMeta}),ResourcesManager.__configsParsed=!0;for(var imgNodes=_utilXMLUtils2.default.XPathSelectNodes(registry,"plugins/*/client_settings/resources/img_library"),_iterator2=imgNodes,_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[Symbol.iterator]();;){if(_isArray2){if(_i2>=_iterator2.length)break;node=_iterator2[_i2++]}else{if(_i2=_iterator2.next(),_i2.done)break;node=_i2.value}ResourcesManager.addImageLibrary(node.getAttribute("alias"),node.getAttribute("path"))}for(var cssNodes=_utilXMLUtils2.default.XPathSelectNodes(registry,'plugins/*/client_settings/resources/css[@autoload="true"]'),_iterator3=cssNodes,_isArray3=Array.isArray(_iterator3),_i3=0,_iterator3=_isArray3?_iterator3:_iterator3[Symbol.iterator]();;){if(_isArray3){if(_i3>=_iterator3.length)break;node=_iterator3[_i3++]}else{if(_i3=_iterator3.next(),_i3.done)break;node=_i3.value}manager.loadCSSResource(ResourcesManager.getFileOrFallback(node))}},ResourcesManager.getFileOrFallback=function getFileOrFallback(node){return node.getAttribute("fallbackCondition")&&eval(node.getAttribute("fallbackCondition"))?node.getAttribute("fallbackFile"):node.getAttribute("file")},ResourcesManager.requireLib=function(module){var promise=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];if(window[module])return window[module];if(ResourcesManager.__requires&&ResourcesManager.__requires[module]){var globalNS=ResourcesManager.__requires[module];if(promise)return SystemJS.import(globalNS);if(window[globalNS])return window[globalNS];throw new Error("Requiring a remote lib that was not previously loaded ("+globalNS+"). You may be missing a dependency declaration in manifest, or you can use requireLib(moduleName, true) to receive a Promise.")}throw new Error("Cannot find any reference to lib "+module)},ResourcesManager.moduleIsAvailable=function(className){var config=SystemJS.getConfig();return config.map&&config.map[className]},ResourcesManager.loadClassesAndApply=function(classNames,callbackFunc){ResourcesManager.__configsParsed||ResourcesManager.loadAutoLoadResources(),Promise.all(classNames.map(function(c){return SystemJS.import(c)})).then(function(){callbackFunc()}).catch(function(reason){console.error("Failed Loading "+classNames.join(", ")+" : ",reason)})},ResourcesManager.loadClass=function(className){return ResourcesManager.__configsParsed||ResourcesManager.loadAutoLoadResources(),SystemJS.import(className)},ResourcesManager.detectModuleToLoadAndApply=function(callbackString,callbackFunc){var async=arguments.length<=2||void 0===arguments[2]||arguments[2];ResourcesManager.__configsParsed||ResourcesManager.loadAutoLoadResources();var className=callbackString.split(".",1).shift();async?SystemJS.import(className).then(callbackFunc):ResourcesManager.loadScriptSync(className,callbackFunc)},ResourcesManager.loadScriptSync=function(name,callback){return regeneratorRuntime.async(function(context$2$0){for(;;)switch(context$2$0.prev=context$2$0.next){case 0:return context$2$0.next=2,regeneratorRuntime.awrap(SystemJS.import(name));case 2:callback();case 3:case"end":return context$2$0.stop()}},null,this)},ResourcesManager}();ResourcesManager.__configsParsed=!1,ResourcesManager.__requires={},exports.default=ResourcesManager,module.exports=exports.default},{"../util/XMLUtils":768,systemjs:"systemjs"}],518:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _PydioApi=require("./PydioApi"),_PydioApi2=_interopRequireDefault(_PydioApi),_pydio=require("pydio"),_moment=(_interopRequireDefault(_pydio),require("moment")),_moment2=_interopRequireDefault(_moment),_genApiJobsServiceApi=require("./gen/api/JobsServiceApi"),_genApiJobsServiceApi2=_interopRequireDefault(_genApiJobsServiceApi),_genModelRestUserJobRequest=require("./gen/model/RestUserJobRequest"),_genModelRestUserJobRequest2=_interopRequireDefault(_genModelRestUserJobRequest),_genApiFrontendServiceApi=require("./gen/api/FrontendServiceApi"),_genApiFrontendServiceApi2=_interopRequireDefault(_genApiFrontendServiceApi),_genModelRestFrontSessionRequest=require("./gen/model/RestFrontSessionRequest"),_genModelRestFrontSessionRequest2=_interopRequireDefault(_genModelRestFrontSessionRequest),_genModelRestFrontSessionResponse=require("./gen/model/RestFrontSessionResponse"),_genModelRestFrontSessionResponse2=_interopRequireDefault(_genModelRestFrontSessionResponse),_IdmApi=require("./IdmApi"),_IdmApi2=_interopRequireDefault(_IdmApi),_require=require("./gen/index"),ApiClient=_require.ApiClient;ApiClient.parseDate=function(str){return _moment2.default(str).toDate()};var JwtApiClient=function(_ApiClient){_inherits(JwtApiClient,_ApiClient);function JwtApiClient(pydioObject){_classCallCheck(this,JwtApiClient),_ApiClient.call(this),this.basePath=pydioObject.Parameters.get("ENDPOINT_REST_API"),this.enableCookies=!0,this.pydio=pydioObject,pydioObject.observe("beforeApply-logout",function(){_PydioApi2.default.JWT_DATA=null})}return JwtApiClient.prototype.jwtEndpoint=function(request){var headers=null;return this.pydio.Parameters.has("MINISITE")&&(headers={"X-Pydio-Minisite":this.pydio.Parameters.get("MINISITE")}),_ApiClient.prototype.callApi.call(this,"/frontend/session","POST",null,null,headers,null,request,[],["application/json"],["application/json"],_genModelRestFrontSessionResponse2.default)},JwtApiClient.storeJwtLocally=function(frontJwtResponse){var now=Math.floor(Date.now()/1e3);_PydioApi2.default.JWT_DATA={jwt:frontJwtResponse.JWT,expirationTime:now+frontJwtResponse.ExpireTime}},JwtApiClient.prototype.sessionLogout=function(){var _this=this,request=(new _genApiFrontendServiceApi2.default(this),new _genModelRestFrontSessionRequest2.default);request.Logout=!0,this.jwtEndpoint(request).then(function(response){_PydioApi2.default.JWT_DATA=null,_this.pydio.loadXmlRegistry()})},JwtApiClient.prototype.jwtFromCredentials=function(login,password){var reloadRegistry=arguments.length<=2||void 0===arguments[2]||arguments[2];return this.jwtWithAuthInfo({login:login,password:password,type:"credentials"},reloadRegistry)},JwtApiClient.prototype.jwtWithAuthInfo=function(authInfo){var _this2=this,reloadRegistry=arguments.length<=1||void 0===arguments[1]||arguments[1],request=new _genModelRestFrontSessionRequest2.default;return request.AuthInfo=authInfo,this.jwtEndpoint(request).then(function(response){if(response.data&&response.data.JWT){if(JwtApiClient.storeJwtLocally(response.data),reloadRegistry){var targetRepository=null;_this2.pydio.Parameters.has("START_REPOSITORY")&&(targetRepository=_this2.pydio.Parameters.get("START_REPOSITORY")),_this2.pydio.loadXmlRegistry(null,null,targetRepository)}}else response.data&&response.data.Trigger?_this2.pydio.getController().fireAction(response.data.Trigger,response.data.TriggerInfo):_PydioApi2.default.JWT_DATA=null;return response})},JwtApiClient.prototype.getOrUpdateJwt=function(){var _this3=this,now=Math.floor(Date.now()/1e3);return _PydioApi2.default.JWT_DATA&&_PydioApi2.default.JWT_DATA.jwt&&_PydioApi2.default.JWT_DATA.expirationTime>=now?Promise.resolve(_PydioApi2.default.JWT_DATA.jwt):_PydioApi2.default.ResolvingJwt?_PydioApi2.default.ResolvingJwt:(_PydioApi2.default.ResolvingJwt=new Promise(function(resolve){_this3.jwtEndpoint(new _genModelRestFrontSessionRequest2.default).then(function(response){response.data&&response.data.JWT?(JwtApiClient.storeJwtLocally(response.data),resolve(response.data.JWT)):response.data&&response.data.Trigger?(_this3.pydio.getController().fireAction(response.data.Trigger,response.data.TriggerInfo),resolve("")):(_PydioApi2.default.JWT_DATA=null,resolve("")),_PydioApi2.default.ResolvingJwt=null}).catch(function(e){if(e.response&&401===e.response.status)throw _this3.pydio.getController().fireAction("logout"),_PydioApi2.default.ResolvingJwt=null,e;_PydioApi2.default.JWT_DATA=null,resolve(""),_PydioApi2.default.ResolvingJwt=null})}),_PydioApi2.default.ResolvingJwt)},JwtApiClient.prototype.callApi=function(path,httpMethod,pathParams,queryParams,headerParams,formParams,bodyParam,authNames,contentTypes,accepts,returnType){var _this4=this;return this.pydio.user&&this.pydio.user.getPreference("lang")&&(headerParams["X-Pydio-Language"]=this.pydio.user.getPreference("lang")),new Promise(function(resolve,reject){_this4.getOrUpdateJwt().then(function(jwt){var authNames=[];jwt&&(authNames.push("oauth2"),_this4.authentications={oauth2:{type:"oauth2",accessToken:jwt}}),_ApiClient.prototype.callApi.call(_this4,path,httpMethod,pathParams,queryParams,headerParams,formParams,bodyParam,authNames,contentTypes,accepts,returnType).then(function(response){resolve(response)}).catch(function(reason){_this4.handleError(reason),reject(reason)})}).catch(function(reason){_this4.handleError(reason),reject(reason)})})},JwtApiClient.prototype.handleError=function(reason){var msg=reason.message;if(reason.response&&reason.response.body?msg=reason.response.body:reason.response&&reason.response.text&&(msg=reason.response.text),reason.response&&401===reason.response.status&&this.pydio.getController().fireAction("logout"),reason.response&&404===reason.response.status)return void console.info("404 not found",msg);this.pydio&&this.pydio.UI&&this.pydio.UI.displayMessage("ERROR",msg),console&&console.error(reason)},JwtApiClient.prototype.userJob=function(name,parameters){var api=new _genApiJobsServiceApi2.default(this),request=new _genModelRestUserJobRequest2.default;return request.JobName=name,request.JsonParameters=JSON.stringify(parameters),api.userCreateJob(name,request)},JwtApiClient.prototype.getIdmApi=function(){return new _IdmApi2.default(this)},JwtApiClient}(ApiClient);exports.default=JwtApiClient,module.exports=exports.default},{"./IdmApi":513,"./PydioApi":515,"./gen/api/FrontendServiceApi":525,"./gen/api/JobsServiceApi":528,"./gen/index":543,"./gen/model/RestFrontSessionRequest":664,"./gen/model/RestFrontSessionResponse":665,"./gen/model/RestUserJobRequest":713,moment:439,pydio:"pydio"}],519:[function(require,module,exports){(function(Buffer){"use strict";exports.__esModule=!0;var _createClass=function(){function defineProperties(target,props){for(var i=0;i=c.length?null:c[f++]},this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return a>=c.length||0>a?null:c[a]}}Y.ANY_TYPE=0,Y.NUMBER_TYPE=1,Y.STRING_TYPE=2,Y.BOOLEAN_TYPE=3,Y.UNORDERED_NODE_ITERATOR_TYPE=4,Y.ORDERED_NODE_ITERATOR_TYPE=5,Y.UNORDERED_NODE_SNAPSHOT_TYPE=6,Y.ORDERED_NODE_SNAPSHOT_TYPE=7,Y.ANY_UNORDERED_NODE_TYPE=8,Y.FIRST_ORDERED_NODE_TYPE=9;function Ob(a){this.lookupNamespaceURI=Kb(a)}function Pb(a,b){var c=a||k,d=c.Document&&c.Document.prototype||c.document;d.evaluate&&!b||(c.XPathResult=Y,d.evaluate=function(a,b,c,d){return new Nb(a,c).evaluate(b,d)},d.createExpression=function(a,b){return new Nb(a,b)},d.createNSResolver=function(a){return new Ob(a)})}var Qb=["wgxpath","install"],Z=k;Qb[0]in Z||!Z.execScript||Z.execScript("var "+Qb[0]);for(var Rb;Qb.length&&(Rb=Qb.shift());)Qb.length||void 0===Pb?Z=Z[Rb]?Z[Rb]:Z[Rb]={}:Z[Rb]=Pb;module.exports.install=Pb,module.exports.XPathResultType={ANY_TYPE:0,NUMBER_TYPE:1,STRING_TYPE:2,BOOLEAN_TYPE:3,UNORDERED_NODE_ITERATOR_TYPE:4,ORDERED_NODE_ITERATOR_TYPE:5,UNORDERED_NODE_SNAPSHOT_TYPE:6,ORDERED_NODE_SNAPSHOT_TYPE:7,ANY_UNORDERED_NODE_TYPE:8,FIRST_ORDERED_NODE_TYPE:9}}).call(global)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],511:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("./lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),_langLogger=require("./lang/Logger"),_langLogger2=_interopRequireDefault(_langLogger),_httpPydioApi=require("./http/PydioApi"),_httpPydioApi2=_interopRequireDefault(_httpPydioApi),_modelRegistry=require("./model/Registry"),_modelRegistry2=_interopRequireDefault(_modelRegistry),_modelAjxpNode=require("./model/AjxpNode"),_modelAjxpNode2=_interopRequireDefault(_modelAjxpNode),_modelPydioDataModel=require("./model/PydioDataModel"),_modelPydioDataModel2=_interopRequireDefault(_modelPydioDataModel),_modelRepository=require("./model/Repository"),_modelRepository2=_interopRequireDefault(_modelRepository),_modelController=require("./model/Controller"),_modelController2=_interopRequireDefault(_modelController),_utilXMLUtils=require("./util/XMLUtils"),_utilXMLUtils2=_interopRequireDefault(_utilXMLUtils),_utilPathUtils=require("./util/PathUtils"),_utilPathUtils2=_interopRequireDefault(_utilPathUtils),_utilLangUtils=require("./util/LangUtils"),_utilLangUtils2=_interopRequireDefault(_utilLangUtils),_utilActivityMonitor=require("./util/ActivityMonitor"),_utilActivityMonitor2=_interopRequireDefault(_utilActivityMonitor),_httpPydioWebSocket=require("./http/PydioWebSocket"),_httpPydioWebSocket2=_interopRequireDefault(_httpPydioWebSocket),_modelEmptyNodeProvider=require("./model/EmptyNodeProvider"),_modelEmptyNodeProvider2=_interopRequireDefault(_modelEmptyNodeProvider),Pydio=function(_Observable){_inherits(Pydio,_Observable);function Pydio(parameters){if(_classCallCheck(this,Pydio),_Observable.call(this),Pydio.instance=this,this.Parameters=parameters,this._initLoadRep=parameters.get("initLoadRep")||null,this.usersEnabled=parameters.get("usersEnabled")||null,this.currentLanguage=parameters.get("currentLanguage")||null,this.appTitle="Pydio",this.Parameters.has("customWording")&&(this.appTitle=this.Parameters.get("customWording").title||"Pydio"),this.user=null,this.MessageHash={},window.MessageHash&&(this.MessageHash=window.MessageHash),this.ApiClient=_httpPydioApi2.default.getClient(),this.ApiClient.setPydioObject(this),this.ActivityMonitor=new _utilActivityMonitor2.default(this),this.Registry=new _modelRegistry2.default(this),this._rootNode=new _modelAjxpNode2.default("/","Root"),this._contextHolder=new _modelPydioDataModel2.default(!1),this._dataModel=this._contextHolder,this._dataModel.setAjxpNodeProvider(new _modelEmptyNodeProvider2.default),this._dataModel.setRootNode(this._rootNode),this.Controller=new _modelController2.default(this),this.WebSocketClient=new _httpPydioWebSocket2.default(this),this.repositoryId&&(this.WebSocketClient.currentRepo=this.repositoryId,this.WebSocketClient.open()),!this.Parameters.has("START_REPOSITORY")){var loadUriParts=_utilLangUtils2.default.trim(window.location.href.replace(parameters.get("FRONTEND_URL"),""),"/").split("/");if(loadUriParts.length){var loadWs=loadUriParts[0],other=loadUriParts.slice(1);0===loadWs.indexOf("ws-")&&(loadWs=loadWs.substr(3)),this.Parameters.set("START_REPOSITORY",loadWs),other.length&&this.Parameters.set("START_FOLDER","/"+other.join("/"))}}}return Pydio.prototype.fire=function(eventName,data){this.notify(eventName,data)},Pydio.prototype.updateUser=function(userObject){var skipEvent=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];this.user=userObject,skipEvent||this.notify("user_logged",userObject)},Pydio.prototype.getUser=function(){return this.user},Pydio.prototype.refreshUserData=function(){var _this=this;this.observeOnce("registry_part_loaded",function(event){"user/preferences"===event&&_this.updateUser(_this.Registry.parseUser(),!1)}),this.Registry.load("user/preferences")},Pydio.prototype.init=function(){var _this2=this;this.observe("registry_loaded",function(){if(_this2.Registry.refreshExtensionsRegistry(),_this2.updateUser(_this2.Registry.parseUser(),!1),_this2.user){var repId=_this2.user.getActiveRepository(),repList=_this2.user.getRepositoriesList(),repositoryObject=repList.get(repId);repositoryObject&&repositoryObject.loadResources()}_this2.UI.guiLoaded?(_this2.UI.refreshTemplateParts(),_this2.Registry.refreshExtensionsRegistry(),_this2.Controller.loadActionsFromRegistry(_this2.getXmlRegistry())):_this2.observe("gui_loaded",function(){_this2.UI.refreshTemplateParts(),_this2.Registry.refreshExtensionsRegistry(),_this2.Controller.loadActionsFromRegistry(_this2.getXmlRegistry())}),_this2.loadActiveRepository(),_this2.Parameters.has("USER_GUI_ACTION")&&function(){var a=_this2.Parameters.get("USER_GUI_ACTION");_this2.Parameters.delete("USER_GUI_ACTION"),setTimeout(function(){_this2.Controller.fireAction(a)},1e3)}()});var starterFunc=function(){var _this3=this;ResourcesManager.loadClassesAndApply(["React","PydioReactUI"],function(){_this3.UI=new window.PydioReactUI.Builder(_this3),_this3.UI.initTemplates(),_this3.fire("registry_loaded",_this3.Registry.getXML()),_this3.fire("loaded")})}.bind(this);if(this.Parameters.has("PRELOG_USER")&&!this.user){var login=this.Parameters.get("PRELOG_USER"),pwd=login+"#$!Az1";_httpPydioApi2.default.getRestClient().jwtFromCredentials(login,pwd,!1).then(function(){_this2.loadXmlRegistry(null,starterFunc,_this2.Parameters.get("START_REPOSITORY"))}).catch(function(e){_this2.loadXmlRegistry(null,starterFunc)})}else _httpPydioApi2.default.getRestClient().getOrUpdateJwt().then(function(jwt){jwt||!_this2.Parameters.has("PRELOADED_REGISTRY")?_this2.loadXmlRegistry(null,starterFunc,_this2.Parameters.get("START_REPOSITORY")):(_this2.Registry.loadFromString(_this2.Parameters.get("PRELOADED_REGISTRY")),_this2.Parameters.delete("PRELOADED_REGISTRY"),starterFunc())});this.observe("server_message",function(xml){var reload=_utilXMLUtils2.default.XPathSelectSingleNode(xml,"tree/require_registry_reload");reload&&reload.getAttribute("repositoryId")!==_this2.repositoryId&&(_this2.loadXmlRegistry(null,null,reload.getAttribute("repositoryId")),_this2.repositoryId=null)})},Pydio.prototype.loadXmlRegistry=function(){var xPath=arguments.length<=0||void 0===arguments[0]?null:arguments[0],completeFunc=arguments.length<=1||void 0===arguments[1]?null:arguments[1],targetRepositoryId=arguments.length<=2||void 0===arguments[2]?null:arguments[2];this.Registry.load(xPath,completeFunc,targetRepositoryId)},Pydio.prototype.getXmlRegistry=function(){return this.Registry.getXML()},Pydio.prototype.loadActiveRepository=function(){var _this4=this;if(null===this.user){var _repositoryObject=new _modelRepository2.default(null);return this.loadRepository(_repositoryObject),this.fire("repository_list_refreshed",{list:!1,active:!1}),void this.Controller.fireAction("login")}var repId=this.user.getActiveRepository(),repList=this.user.getRepositoriesList(),repositoryObject=repList.get(repId);if(!repositoryObject)return void(this.user.lock?function(){_this4.Controller.loadActionsFromRegistry(_this4.getXmlRegistry());var lock=_this4.user.lock.split(",").shift();window.setTimeout(function(){_this4.Controller.fireAction(lock)},150)}():(alert("No active repository found for user!"),this.Controller.fireAction("logout")));this.user.getPreference("pending_folder")&&"-1"!==this.user.getPreference("pending_folder")?(this._initLoadRep=this.user.getPreference("pending_folder"),this.user.setPreference("pending_folder","-1"),this.user.savePreference("pending_folder")):this.user&&this.Parameters.has("START_FOLDER")&&(this._initLoadRep=this.Parameters.get("START_FOLDER"),this.Parameters.delete("START_FOLDER")),this.loadRepository(repositoryObject),this.fire("repository_list_refreshed",{list:repList,active:repId})},Pydio.prototype.reloadRepositoriesList=function(){var _this5=this;this.user&&(this.observeOnce("registry_part_loaded",function(data){"user/repositories"===data&&(_this5.updateUser(_this5.Registry.parseUser()),0===_this5.user.getRepositoriesList().size&&_this5.loadXmlRegistry(),_this5.fire("repository_list_refreshed",{list:_this5.user.getRepositoriesList(),active:_this5.user.getActiveRepository()}))}),this.loadXmlRegistry("user/repositories"))},Pydio.prototype.loadRepository=function(repository){var _this6=this;if(null!=this.repositoryId&&this.repositoryId===repository.getId())return void _langLogger2.default.debug("Repository already loaded, do nothing");if(this._contextHolder.setSelectedNodes([]),null!==repository){repository.loadResources();var repositoryId=repository.getId(),newIcon=repository.getIcon(),providerDef=repository.getNodeProviderDef(),rootNode=void 0;if(null==providerDef)rootNode=new _modelAjxpNode2.default("/",!1,repository.getLabel(),newIcon),this._contextHolder.setAjxpNodeProvider(new _modelEmptyNodeProvider2.default);else{var providerClass=window[providerDef.name],provider=new providerClass;providerDef.options&&provider.initProvider(providerDef.options),this._contextHolder.setAjxpNodeProvider(provider),rootNode=new _modelAjxpNode2.default("/",!1,repository.getLabel(),newIcon,provider)}var initLoadRep=this._initLoadRep&&"/"!==this._initLoadRep?this._initLoadRep.valueOf():null,firstLoadObs=function(){};initLoadRep&&(firstLoadObs=function(){_this6.goTo(initLoadRep),_this6._initLoadRep=null}),this._contextHolder.setRootNode(rootNode),rootNode.observeOnce("first_load",function(){this._contextHolder.notify("context_changed",rootNode),this.Controller.fireContextChange(),firstLoadObs()}.bind(this)),this.repositoryId=repositoryId,rootNode.load()}},Pydio.prototype.goTo=function(nodeOrPath){var gotoNode=void 0,path=void 0;if("string"==typeof nodeOrPath)path=nodeOrPath,gotoNode=new _modelAjxpNode2.default(nodeOrPath);else if(gotoNode=nodeOrPath,path=gotoNode.getPath(),nodeOrPath.getMetadata().has("repository_id")&&nodeOrPath.getMetadata().get("repository_id")!==this.repositoryId&&"repository"!==nodeOrPath.getAjxpMime()&&"repository_editable"!==nodeOrPath.getAjxpMime())return this.user&&(this.user.setPreference("pending_folder",nodeOrPath.getPath()),this._initLoadRep=nodeOrPath.getPath()),void this.triggerRepositoryChange(nodeOrPath.getMetadata().get("repository_id"));if(this._repositoryCurrentlySwitching&&this.user)return this.user.setPreference("pending_folder",gotoNode.getPath()),void(this._initLoadRep=gotoNode.getPath());var current=this._contextHolder.getContextNode();return current&¤t.getPath()===path?void 0:""===path||"/"===path?void this._contextHolder.requireContextChange(this._contextHolder.getRootNode()):(gotoNode=gotoNode.findInArbo(this._contextHolder.getRootNode()),void(gotoNode?gotoNode.isBrowsable()?this._contextHolder.requireContextChange(gotoNode):(this._contextHolder.setPendingSelection(_utilPathUtils2.default.getBasename(path)),this._contextHolder.requireContextChange(gotoNode.getParent())):this._contextHolder.loadPathInfoAsync(path,function(foundNode){foundNode.isBrowsable()?gotoNode=foundNode:(this._contextHolder.setPendingSelection(_utilPathUtils2.default.getBasename(path)),gotoNode=new _modelAjxpNode2.default(_utilPathUtils2.default.getDirname(path))),this._contextHolder.requireContextChange(gotoNode)}.bind(this))))},Pydio.prototype.triggerRepositoryChange=function(repositoryId){var callback=arguments.length<=1||void 0===arguments[1]?null:arguments[1];this.fire("trigger_repository_switch"),this.Registry.load(null,callback,repositoryId)},Pydio.prototype.getPluginConfigs=function(pluginQuery){return this.Registry.getPluginConfigs(pluginQuery)},Pydio.prototype.listLanguagesWithCallback=function(callback){var langs=this.Parameters.get("availableLanguages")||{en:"Default"},current=this.currentLanguage;Object.keys(langs).sort().map(function(key){callback(key,langs[key],current===key)})},Pydio.prototype.loadI18NMessages=function(newLanguage){var reloadRegistry=arguments.length<=1||void 0===arguments[1]||arguments[1];this.ApiClient.switchLanguage(newLanguage,function(data){if(data){this.MessageHash=data,window&&window.MessageHash&&(window.MessageHash=this.MessageHash);for(var key in this.MessageHash)this.MessageHash.hasOwnProperty(key)&&(this.MessageHash[key]=this.MessageHash[key].replace("\\n","\n"));this.notify("language",newLanguage),this.Controller.refreshGuiActionsI18n(),reloadRegistry&&this.loadXmlRegistry(),this.UI.refreshTemplateParts(),this.fireContextRefresh(),this.currentLanguage=newLanguage}}.bind(this))},Pydio.prototype.getController=function(){return this.Controller},Pydio.prototype.displayMessage=function(messageType,message){var urls=_utilLangUtils2.default.parseUrl(message);urls.length&&this.user&&this.user.repositories&&urls.forEach(function(match){var repo=this.user.repositories.get(match.host);repo&&(message=message.replace(match.url,repo.label+":"+match.path+match.file))}.bind(this)),"ERROR"===messageType?_langLogger2.default.error(message):_langLogger2.default.log(message),this.UI&&this.UI.displayMessage(messageType,message)},Pydio.prototype.updateContextData=function(ajxpContextNode,ajxpSelectedNodes,selectionSource){ajxpContextNode&&this._contextHolder.requireContextChange(ajxpContextNode),ajxpSelectedNodes&&this._contextHolder.setSelectedNodes(ajxpSelectedNodes,selectionSource)},Pydio.prototype.getContextHolder=function(){return this._contextHolder},Pydio.prototype.getContextNode=function(){return this._contextHolder.getContextNode()||new _modelAjxpNode2.default("")},Pydio.prototype.getUserSelection=function(){return this._contextHolder},Pydio.prototype.fireContextRefresh=function(){this.getContextHolder().requireContextChange(this.getContextNode(),!0)},Pydio.prototype.fireNodeRefresh=function(nodePathOrNode,completeCallback){this.getContextHolder().requireNodeReload(nodePathOrNode,completeCallback)},Pydio.prototype.fireContextUp=function(){this.getContextNode().isRoot()||this.updateContextData(this.getContextNode().getParent())},Pydio.requireLib=function(module){var promise=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];return require("pydio/http/resources-manager").requireLib(module,promise)},Pydio.getInstance=function(){return Pydio.instance},Pydio.getVersion=function(){return Pydio.instance&&Pydio.instance.Parameters&&Pydio.instance.Parameters.get("backend")?Pydio.instance.Parameters.get("backend").Version:""},Pydio.getMessages=function(){return Pydio.instance?Pydio.instance.MessageHash:{}},Pydio.startLoading=function(){Pydio.instance.notify("connection-start")},Pydio.endLoading=function(){Pydio.instance.notify("connection-end")},Pydio}(_langObservable2.default);Pydio.instance=null,exports.default=Pydio,module.exports=exports.default},{"./http/PydioApi":515,"./http/PydioWebSocket":516,"./lang/Logger":750,"./lang/Observable":751,"./model/AjxpNode":753,"./model/Controller":755,"./model/EmptyNodeProvider":756,"./model/PydioDataModel":759,"./model/Registry":760,"./model/Repository":761,"./util/ActivityMonitor":763,"./util/LangUtils":766,"./util/PathUtils":767,"./util/XMLUtils":768,"pydio/http/resources-manager":"pydio/http/resources-manager"}],512:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _utilXMLUtils=require("../util/XMLUtils"),_utilXMLUtils2=_interopRequireDefault(_utilXMLUtils);require("whatwg-fetch");var Connexion=function(){function Connexion(baseUrl){_classCallCheck(this,Connexion),this._pydio=window.pydio,this._baseUrl=baseUrl||window.ajxpServerAccessPath,this._libUrl=window.ajxpResourcesFolder+"/build",this._parameters=new Map,this._method="post",this.discrete=!1}return Connexion.updateServerAccess=function(parameters){parameters.get("SECURE_TOKEN")&&(Connexion.SECURE_TOKEN=parameters.get("SECURE_TOKEN"));var serverAccessPath=parameters.get("ajxpServerAccess").split("?").shift();if(parameters.get("SERVER_PREFIX_URI")?(parameters.set("ajxpResourcesFolder",parameters.get("SERVER_PREFIX_URI")+parameters.get("ajxpResourcesFolder")),serverAccessPath=parameters.get("SERVER_PREFIX_URI")+serverAccessPath+"?"+(Connexion.SECURE_TOKEN?"secure_token="+Connexion.SECURE_TOKEN:"")):serverAccessPath=serverAccessPath+"?"+(Connexion.SECURE_TOKEN?"secure_token="+Connexion.SECURE_TOKEN:""),parameters.get("SERVER_PERMANENT_PARAMS")){var permParams=parameters.get("SERVER_PERMANENT_PARAMS"),permStrings=[];for(var permanent in permParams)permParams.hasOwnProperty(permanent)&&permStrings.push(permanent+"="+permParams[permanent]);permStrings=permStrings.join("&"),permStrings&&(serverAccessPath+="&"+permStrings)}parameters.set("ajxpServerAccess",serverAccessPath),window.ajxpServerAccessPath=serverAccessPath,window.pydioBootstrap&&window.pydioBootstrap.parameters&&(pydioBootstrap.parameters.set("ajxpServerAccess",serverAccessPath),pydioBootstrap.parameters.set("SECURE_TOKEN",Connexion.SECURE_TOKEN))},Connexion.log=function(action,syncStatus){Connexion.PydioLogs||(Connexion.PydioLogs=[]),Connexion.PydioLogs.push({action:action,sync:syncStatus})},Connexion.prototype.setMethod=function(method){this._method=method},Connexion.prototype.showLoader=function(){!this.discrete&&this._pydio&&this._pydio.notify("connection-start")},Connexion.prototype.hideLoader=function(){!this.discrete&&this._pydio&&this._pydio.notify("connection-end")},Connexion.prototype.send=function(){var _this=this;this.showLoader();var oThis=this,options={method:this._method,credentials:"same-origin"},url=this._baseUrl,bodyParts=[];this._parameters.forEach(function(value,key){value instanceof Array?value.map(function(oneV){bodyParts.push(key+"="+encodeURIComponent(oneV))}):bodyParts.push(key+"="+encodeURIComponent(value))});var queryString=bodyParts.join("&");"post"===this._method?(options.headers={"Content-type":"application/x-www-form-urlencoded; charset=UTF-8"},options.body=queryString):url+=(url.indexOf("?")>-1?"&":"?")+queryString,window.fetch(url,options).then(function(response){var h=response.headers.get("Content-type");return-1!==h.indexOf("/json")?response.json().then(function(json){oThis.applyComplete({responseJSON:json},response)}):-1!==h.indexOf("/xml")?response.text().then(function(text){oThis.applyComplete({responseXML:_utilXMLUtils2.default.parseXml(text)},response)}):response.text().then(function(text){oThis.applyComplete({responseText:text},response)}),response}).catch(function(error){_this._pydio&&_this._pydio.displayMessage("ERROR","Network error "+error.message)})},Connexion.prototype.applyComplete=function(parsedBody,response){this.hideLoader();var pydio=this._pydio,message=void 0,tokenMessage=void 0,tok1="Ooops, it seems that your security token has expired! Please %s by hitting refresh or F5 in your browser!",tok2="reload the page";window.MessageHash&&window.MessageHash[437]&&(tok1=window.MessageHash[437],tok2=window.MessageHash[438]),tokenMessage=tok1.replace("%s",""+tok2+"");var ctype=response.headers.get("Content-type");if(parsedBody.responseXML&&parsedBody.responseXML.documentElement&&"parsererror"==parsedBody.responseXML.documentElement.nodeName?message="Parsing error : \n"+parsedBody.responseXML.documentElement.firstChild.textContent:parsedBody.responseXML&&parsedBody.responseXML.parseError&&0!=parsedBody.responseXML.parseError.errorCode?message="Parsing Error : \n"+parsedBody.responseXML.parseError.reason:ctype.indexOf("text/xml")>-1&&null==parsedBody.responseXML?message="Expected XML but got empty response!":-1==ctype.indexOf("text/xml")&&-1==ctype.indexOf("application/json")&&parsedBody.responseText.indexOf("Fatal error")>-1?message=parsedBody.responseText.replace("
",""):500==response.status&&(message="Internal Server Error: you should check your web server logs to find what's going wrong!"),message&&(message.startsWith("You are not allowed to access this resource.")&&(message=tokenMessage),pydio?pydio.displayMessage("ERROR",message):alert(message)),parsedBody.responseXML&&parsedBody.responseXML.documentElement){if(_utilXMLUtils2.default.XPathSelectSingleNode(parsedBody.responseXML.documentElement,"require_auth")&&pydio){var root=pydio.getContextHolder().getRootNode();root&&(pydio.getContextHolder().setContextNode(root),root.clear()),pydio.getController().fireAction("logout"),pydio.getController().fireAction("login")}var messageNode=_utilXMLUtils2.default.XPathSelectSingleNode(parsedBody.responseXML.documentElement,"message");if(messageNode){var messageType=messageNode.getAttribute("type").toUpperCase(),messageContent=_utilXMLUtils2.default.getDomNodeText(messageNode);messageContent.startsWith("You are not allowed to access this resource.")&&(messageContent=tokenMessage),pydio?pydio.displayMessage(messageType,messageContent):"ERROR"==messageType&&alert(messageType+":"+messageContent),"SUCCESS"==messageType&&messageNode.parentNode.removeChild(messageNode)}}this.onComplete&&(parsedBody.status=response.status,parsedBody.responseObject=response,this.onComplete(parsedBody)),pydio&&pydio.fire("server_answer",this)},Connexion.prototype.uploadFile=function(file,fileParameterName,uploadUrl){var onComplete=arguments.length<=3||void 0===arguments[3]?function(){}:arguments[3],onError=arguments.length<=4||void 0===arguments[4]?function(){}:arguments[4],_this2=this,onProgress=arguments.length<=5||void 0===arguments[5]?function(){}:arguments[5],xhrSettings=arguments.length<=6||void 0===arguments[6]?{}:arguments[6],xhr=this.initializeXHRForUpload(uploadUrl,onComplete,onError,onProgress,xhrSettings);if(xhrSettings&&"PUT"===xhrSettings.method)return xhr.send(file),xhr;if(window.FormData)this.sendFileUsingFormData(xhr,file,fileParameterName);else if(window.FileReader){var fileReader=new FileReader;fileReader.onload=function(e){_this2.xhrSendAsBinary(xhr,file.name,e.target.result,fileParameterName)},fileReader.readAsBinaryString(file)}else file.getAsBinary&&this.xhrSendAsBinary(xhr,file.name,file.getAsBinary(),fileParameterName);return xhr},Connexion.prototype.initializeXHRForUpload=function(url,onComplete,onError,onProgress){var xhrSettings=arguments.length<=4||void 0===arguments[4]?{}:arguments[4],xhr=new XMLHttpRequest,upload=xhr.upload;xhrSettings.withCredentials&&(xhr.withCredentials=!0),upload.addEventListener("progress",function(e){e.lengthComputable&&onProgress(e)},!1),xhr.onreadystatechange=function(){4===xhr.readyState&&(200===xhr.status?onComplete(xhr):onError(xhr))}.bind(this),upload.onerror=function(){onError(xhr)};var method="POST";return xhrSettings.method&&(method=xhrSettings.method),xhr.open(method,url,!0),xhrSettings.customHeaders&&Object.keys(xhrSettings.customHeaders).forEach(function(k){xhr.setRequestHeader(k,xhrSettings.customHeaders[k])}),xhr},Connexion.prototype.sendFileUsingFormData=function(xhr,file,fileParameterName){var formData=new FormData;formData.append(fileParameterName,file),xhr.send(formData)},Connexion.prototype.xhrSendAsBinary=function(xhr,fileName,fileData,fileParameterName){var boundary="----MultiPartFormBoundary"+(new Date).getTime();xhr.setRequestHeader("Content-Type","multipart/form-data, boundary="+boundary);var body="--"+boundary+"\r\n";body+="Content-Disposition: form-data; name='"+fileParameterName+"'; filename='"+unescape(encodeURIComponent(fileName))+"'\r\n",body+="Content-Type: application/octet-stream\r\n\r\n",body+=fileData+"\r\n",body+="--"+boundary+"--\r\n",xhr.sendAsBinary(body)},Connexion.prototype.loadLibrary=function(fileName,onLoadedCode,aSync){var _this3=this;window.pydioBootstrap&&window.pydioBootstrap.parameters.get("ajxpVersion")&&-1===fileName.indexOf("?")&&(fileName+="?v="+window.pydioBootstrap.parameters.get("ajxpVersion"));var url=this._libUrl?this._libUrl+"/"+fileName:fileName,pydio=this._pydio,scriptLoaded=function(script){try{if(window.execScript)window.execScript(script);else{window.my_code=script;var head=document.getElementsByTagName("head")[0],script_tag=document.createElement("script");script_tag.type="text/javascript",script_tag.innerHTML="eval(window.my_code)",head.appendChild(script_tag),delete window.my_code,head.removeChild(script_tag)}null!=onLoadedCode&&onLoadedCode()}catch(e){alert("error loading "+fileName+":"+e.message),console&&console.error(e)}pydio&&pydio.fire("server_answer")};aSync?window.fetch(url,{method:"GET",credentials:"same-origin"}).then(function(response){return response.text()}).then(function(script){scriptLoaded(script)}):function(){var xhr=new XMLHttpRequest;xhr.onreadystatechange=function(){4==xhr.readyState&&(200===xhr.status?scriptLoaded(xhr.responseText):alert("error loading "+fileName+": Status code was "+xhr.status))}.bind(_this3),xhr.open("GET",url,!1),xhr.send()}()},Connexion}();exports.default=Connexion,module.exports=exports.default},{"../util/XMLUtils":768,"whatwg-fetch":"whatwg-fetch"}],513:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _genApiUserServiceApi=require("./gen/api/UserServiceApi"),_genApiUserServiceApi2=_interopRequireDefault(_genApiUserServiceApi),_genModelRestSearchUserRequest=require("./gen/model/RestSearchUserRequest"),_genModelRestSearchUserRequest2=_interopRequireDefault(_genModelRestSearchUserRequest),_genModelIdmUserSingleQuery=require("./gen/model/IdmUserSingleQuery"),_genModelIdmUserSingleQuery2=_interopRequireDefault(_genModelIdmUserSingleQuery),_genModelServiceOperationType=require("./gen/model/ServiceOperationType"),_genModelServiceOperationType2=_interopRequireDefault(_genModelServiceOperationType),_genModelIdmNodeType=require("./gen/model/IdmNodeType"),_genModelIdmNodeType2=_interopRequireDefault(_genModelIdmNodeType),_genModelIdmUser=require("./gen/model/IdmUser"),_genModelIdmUser2=_interopRequireDefault(_genModelIdmUser),_utilLangUtils=require("../util/LangUtils"),_utilLangUtils2=_interopRequireDefault(_utilLangUtils),_genApiRoleServiceApi=require("./gen/api/RoleServiceApi"),_genApiRoleServiceApi2=_interopRequireDefault(_genApiRoleServiceApi),_genModelIdmRole=require("./gen/model/IdmRole"),_genModelIdmRole2=_interopRequireDefault(_genModelIdmRole),_genModelRestSearchRoleRequest=require("./gen/model/RestSearchRoleRequest"),_genModelRestSearchRoleRequest2=_interopRequireDefault(_genModelRestSearchRoleRequest),_genModelIdmRoleSingleQuery=require("./gen/model/IdmRoleSingleQuery"),_genModelIdmRoleSingleQuery2=_interopRequireDefault(_genModelIdmRoleSingleQuery),_uuid4=require("uuid4"),_uuid42=_interopRequireDefault(_uuid4),_genModelServiceResourcePolicy=require("./gen/model/ServiceResourcePolicy"),_genModelServiceResourcePolicy2=_interopRequireDefault(_genModelServiceResourcePolicy),_genApiGraphServiceApi=require("./gen/api/GraphServiceApi"),_genApiGraphServiceApi2=_interopRequireDefault(_genApiGraphServiceApi),IdmApi=function(){function IdmApi(restClient){_classCallCheck(this,IdmApi),this.client=restClient}return IdmApi.prototype.loadUser=function(userLogin){ +var api=new _genApiUserServiceApi2.default(this.client),request=new _genModelRestSearchUserRequest2.default;request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),request.Queries=[];var query=new _genModelIdmUserSingleQuery2.default;return query.Login=userLogin,query.NodeType=_genModelIdmNodeType2.default.constructFromObject("USER"),request.Queries.push(query),api.searchUsers(request).then(function(collection){return collection.Users?collection.Users[0]:null})},IdmApi.prototype.loadRole=function(roleUuid){var api=new _genApiRoleServiceApi2.default(this.client),request=new _genModelRestSearchRoleRequest2.default;return request.Queries=[_genModelIdmRoleSingleQuery2.default.constructFromObject({Uuid:[roleUuid]})],api.searchRoles(request).then(function(collection){return collection.Roles?collection.Roles[0]:null})},IdmApi.prototype.listUsers=function(){var baseGroup=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],filterString=arguments.length<=1||void 0===arguments[1]?"":arguments[1],recursive=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],offset=arguments.length<=3||void 0===arguments[3]?0:arguments[3],limit=arguments.length<=4||void 0===arguments[4]?-1:arguments[4],profile=arguments.length<=5||void 0===arguments[5]?"":arguments[5],api=new _genApiUserServiceApi2.default(this.client),request=new _genModelRestSearchUserRequest2.default;request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),request.Queries=[];var query=new _genModelIdmUserSingleQuery2.default;if(query.GroupPath=baseGroup||"/",query.Recursive=recursive,query.NodeType=_genModelIdmNodeType2.default.constructFromObject("USER"),request.Queries.push(query),filterString){var queryString=new _genModelIdmUserSingleQuery2.default;queryString.Login=filterString+"*",request.Queries.push(queryString)}if(profile){var exclude="!"===profile[0],profileQ=new _genModelIdmUserSingleQuery2.default;profileQ.AttributeName="profile",profileQ.AttributeValue=exclude?profile.substring(1):profile,exclude&&(profileQ.not=!0),request.Queries.push(profileQ)}var query2=new _genModelIdmUserSingleQuery2.default;return query2.AttributeName="hidden",query2.AttributeValue="true",query2.not=!0,request.Queries.push(query2),offset>0&&(request.Offset=offset+""),limit>-1&&(request.Limit=limit+""),api.searchUsers(request).then(function(collection){return{Users:collection.Users||[],Total:collection.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.listUsersGroups=function(){var baseGroup=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],recursive=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],offset=arguments.length<=2||void 0===arguments[2]?0:arguments[2],limit=arguments.length<=3||void 0===arguments[3]?-1:arguments[3],p1=this.listGroups(baseGroup,"",recursive,0,1e3),p2=this.listUsers(baseGroup,"",recursive,offset,limit);return Promise.all([p1,p2]).then(function(result){var resGroups=result[0],resUsers=result[1];return{Groups:resGroups.Groups||[],Users:resUsers.Users||[],Total:resUsers.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.listUsersWithRole=function(roleId){var offset=arguments.length<=1||void 0===arguments[1]?0:arguments[1],limit=arguments.length<=2||void 0===arguments[2]?-1:arguments[2],api=new _genApiUserServiceApi2.default(this.client),request=new _genModelRestSearchUserRequest2.default;request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),request.Queries=[];var query=new _genModelIdmUserSingleQuery2.default;query.GroupPath="/",query.Recursive=!0,query.NodeType=_genModelIdmNodeType2.default.constructFromObject("USER"),request.Queries.push(query);var query2=new _genModelIdmUserSingleQuery2.default;return query2.HasRole=roleId,request.Queries.push(query2),offset>0&&(request.Offset=offset+""),request.Limit=limit>-1?limit+"":"100",api.searchUsers(request).then(function(collection){return{Users:collection.Users||[],Total:collection.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.listGroups=function(){var baseGroup=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],filterString=arguments.length<=1||void 0===arguments[1]?"":arguments[1],recursive=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],offset=arguments.length<=3||void 0===arguments[3]?0:arguments[3],limit=arguments.length<=4||void 0===arguments[4]?-1:arguments[4],api=new _genApiUserServiceApi2.default(this.client),request=new _genModelRestSearchUserRequest2.default;request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),request.Queries=[];var query=new _genModelIdmUserSingleQuery2.default;if(query.GroupPath=baseGroup||"/",query.Recursive=recursive,query.NodeType=_genModelIdmNodeType2.default.constructFromObject("GROUP"),request.Queries.push(query),filterString){var queryString=new _genModelIdmUserSingleQuery2.default;queryString.AttributeName="displayName",queryString.AttributeValue=filterString+"*",request.Queries.push(queryString)}return offset>0&&(request.Offset=offset+""),limit>-1&&(request.Limit=limit+""),api.searchUsers(request).then(function(value){return{Groups:value.Groups||[],Total:value.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.listRoles=function(){var showTechnicalRoles=!(arguments.length<=0||void 0===arguments[0])&&arguments[0],offset=arguments.length<=1||void 0===arguments[1]?0:arguments[1],limit=arguments.length<=2||void 0===arguments[2]?-1:arguments[2],api=new _genApiRoleServiceApi2.default(this.client),request=new _genModelRestSearchRoleRequest2.default;if(offset>0&&(request.Offset=offset+""),limit>-1&&(request.Limit=limit+""),showTechnicalRoles)return api.searchRoles(request).then(function(coll){return coll.Roles||[]});request.Queries=[];var q=new _genModelIdmRoleSingleQuery2.default;q.IsGroupRole=!0,q.not=!0,request.Queries.push(q);var q=new _genModelIdmRoleSingleQuery2.default;q.IsUserRole=!0,q.not=!0,request.Queries.push(q);var q=new _genModelIdmRoleSingleQuery2.default;q.IsTeam=!0,q.not=!0,request.Queries.push(q),request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND");var p1=api.searchRoles(request).then(function(coll){return coll.Roles||[]}),p2=this.loadRole("ROOT_GROUP");return Promise.all([p1,p2]).then(function(result){var roles=result[0];return null!==result[1]&&(roles=[result[1]].concat(roles)),roles})},IdmApi.prototype.listTeams=function(){var filterString=arguments.length<=0||void 0===arguments[0]?"":arguments[0],offset=arguments.length<=1||void 0===arguments[1]?0:arguments[1],limit=arguments.length<=2||void 0===arguments[2]?-1:arguments[2],api=new _genApiRoleServiceApi2.default(this.client),request=new _genModelRestSearchRoleRequest2.default;offset>0&&(request.Offset=offset+""),limit>-1&&(request.Limit=limit+""),request.Queries=[];var q=new _genModelIdmRoleSingleQuery2.default;if(q.IsTeam=!0,request.Queries.push(q),filterString){var q2=new _genModelIdmRoleSingleQuery2.default;q2.Label=filterString+"*",request.Queries.push(q2)}return request.Operation=_genModelServiceOperationType2.default.constructFromObject("AND"),api.searchRoles(request).then(function(coll){return{Teams:coll.Roles||[],Total:coll.Total,Offset:offset,Limit:limit}})},IdmApi.prototype.createGroup=function(baseGroup,groupIdentifier,displayName){void 0===baseGroup&&(baseGroup="/");var api=new _genApiUserServiceApi2.default(this.client),object=new _genModelIdmUser2.default;return object.IsGroup=!0,object.GroupPath=baseGroup||"/",object.GroupLabel=groupIdentifier,object.Attributes={displayName:displayName},api.putUser(groupIdentifier,object)},IdmApi.prototype.createUser=function(baseGroup,login,password){void 0===baseGroup&&(baseGroup="/");var profile=arguments.length<=3||void 0===arguments[3]?"standard":arguments[3],api=new _genApiUserServiceApi2.default(this.client),object=new _genModelIdmUser2.default;return object.GroupPath=baseGroup,object.Login=login,object.Password=password,object.Attributes={profile:profile},api.putUser(login,object)},IdmApi.prototype.putExternalUser=function(data,parametersDef){var _this=this,existingUser=arguments.length<=2||void 0===arguments[2]?null:arguments[2],idmUser=existingUser||new _genModelIdmUser2.default;return idmUser.Attributes=idmUser.Attributes||{},idmUser.Roles=idmUser.Roles||[],idmUser.Attributes.profile="shared",parametersDef.forEach(function(param){var name=param.name,IdmUserField=param.IdmUserField,scope=param.scope,pluginId=param.pluginId,value=data[name];IdmUserField?idmUser[IdmUserField]=value:"user"===scope?(!0!==value&&!1!==value||(value=JSON.stringify(value)),idmUser.Attributes[name]=value):pluginId&&(idmUser.Attributes["parameter:"+pluginId+":"+name]=JSON.stringify(value))}),pydio.user.getIdmUser().then(function(crtUser){return idmUser.GroupPath=crtUser.GroupPath,_this.policiesForExternalUser(pydio.user,idmUser.Login).then(function(policies){return idmUser.Policies=policies,new _genApiUserServiceApi2.default(_this.client).putUser(idmUser.Login,idmUser)})})},IdmApi.prototype.loadUserGraph=function(userLogin){return new _genApiGraphServiceApi2.default(this.client).relation(userLogin)},IdmApi.prototype.createRole=function(roleLabel){var api=new _genApiRoleServiceApi2.default(this.client),idmRole=new _genModelIdmRole2.default;return idmRole.Uuid=_uuid42.default.sync(),idmRole.Label=roleLabel,api.setRole(idmRole.Uuid,idmRole)},IdmApi.prototype.updateIdmUser=function(idmUser){var api=new _genApiUserServiceApi2.default(this.client);return idmUser.IsGroup?api.putUser(idmUser.GroupLabel,idmUser):api.putUser(idmUser.Login,idmUser)},IdmApi.prototype.deleteIdmUser=function(idmUser){var api=new _genApiUserServiceApi2.default(this.client);if(idmUser.IsGroup){var gPath=_utilLangUtils2.default.trimRight(idmUser.GroupPath,"/")+"/"+idmUser.GroupLabel+"/";return"/"===gPath?Promise.reject("cannot delete root group!"):api.deleteUser(_utilLangUtils2.default.trimLeft(gPath,"/"))}return api.deleteUser(idmUser.Login)},IdmApi.prototype.deleteRole=function(roleId){return new _genApiRoleServiceApi2.default(this.client).deleteRole(roleId)},IdmApi.prototype.saveSelectionAsTeam=function(teamName,userIds,callback){var _this2=this;return this.policiesForUniqueUser(pydio.user).then(function(policies){var roleApi=new _genApiRoleServiceApi2.default(_this2.client),role=new _genModelIdmRole2.default;return role.Uuid=_utilLangUtils2.default.computeStringSlug(teamName)+"-"+_uuid42.default.sync().substr(0,4),role.Label=teamName,role.IsTeam=!0,role.Policies=policies,roleApi.setRole(role.Uuid,role).then(function(r){var ps=userIds.map(function(userId){return _this2.addUserToTeam(role.Uuid,userId,null)});return Promise.all(ps).then(function(){callback&&callback(r)})})})},IdmApi.prototype.addUserToTeam=function(teamId,userLogin,callback){var userApi=new _genApiUserServiceApi2.default(this.client),p1=this.loadUser(userLogin),p2=this.loadRole(teamId);return Promise.all([p1,p2]).then(function(result){var user=result[0],role=result[1];if(!user||!role)throw new Error("Cannot find user or team!");return user.Roles=user.Roles||[],user.Roles.push(role),userApi.putRoles(userLogin,user).then(function(){callback&&callback()})})},IdmApi.prototype.removeUserFromTeam=function(teamId,userLogin,callback){var userApi=new _genApiUserServiceApi2.default(this.client);return this.loadUser(userLogin).then(function(u){if(!u)throw new Error("Cannot find user!");return u.Roles=u.Roles||[],u.Roles=u.Roles.filter(function(r){return r.Uuid!==teamId}),callback&&callback(u),userApi.putRoles(userLogin,u).then(function(){callback&&callback()})})},IdmApi.prototype.updateTeamLabel=function(teamId,newLabel,callback){var roleApi=new _genApiRoleServiceApi2.default(this.client);return this.loadRole(teamId).then(function(r){if(!r)throw new Error("Cannot find team!");return r.Label=newLabel,roleApi.setRole(r.Uuid,r).then(function(){callback&&callback()})})},IdmApi.prototype.policiesForUniqueUser=function(currentUser){return currentUser.getIdmUser().then(function(idmUser){return[_genModelServiceResourcePolicy2.default.constructFromObject({Subject:idmUser.Uuid,Action:"OWNER",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+idmUser.Login,Action:"READ",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+idmUser.Login,Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"profile:admin",Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"profile:admin",Action:"READ",Effect:"allow"})]})},IdmApi.prototype.policiesForExternalUser=function(currentUser,newUserLogin){return currentUser.getIdmUser().then(function(idmUser){return[_genModelServiceResourcePolicy2.default.constructFromObject({Subject:idmUser.Uuid,Action:"OWNER",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+idmUser.Login,Action:"READ",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+idmUser.Login,Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+newUserLogin,Action:"READ",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"user:"+newUserLogin,Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"profile:admin",Action:"WRITE",Effect:"allow"}),_genModelServiceResourcePolicy2.default.constructFromObject({Subject:"profile:admin",Action:"READ",Effect:"allow"})]})},IdmApi}();exports.default=IdmApi,module.exports=exports.default},{"../util/LangUtils":766,"./gen/api/GraphServiceApi":526,"./gen/api/RoleServiceApi":533,"./gen/api/UserServiceApi":541,"./gen/model/IdmNodeType":575,"./gen/model/IdmRole":581,"./gen/model/IdmRoleSingleQuery":582,"./gen/model/IdmUser":588,"./gen/model/IdmUserSingleQuery":591,"./gen/model/RestSearchRoleRequest":698,"./gen/model/RestSearchUserRequest":699,"./gen/model/ServiceOperationType":722,"./gen/model/ServiceResourcePolicy":724,uuid4:508}],514:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),MetaCacheService=function(_Observable){_inherits(MetaCacheService,_Observable),MetaCacheService.getInstance=function(){return MetaCacheService.INSTANCE||(MetaCacheService.INSTANCE=new MetaCacheService),MetaCacheService.INSTANCE};function MetaCacheService(){_classCallCheck(this,MetaCacheService),_Observable.call(this),this._streams=new Map}return MetaCacheService.prototype.hasKey=function(streamName,keyName){return!!this._streams.get(streamName)&&this._streams.get(streamName).get("data").has(keyName)},MetaCacheService.prototype.getByKey=function(streamName,keyName){return this._streams.get(streamName)?this._streams.get(streamName).get("data").get(keyName):null},MetaCacheService.prototype.deleteKey=function(streamName,keyName){this._streams.get(streamName)&&this._streams.get(streamName).get("data").delete(keyName)},MetaCacheService.prototype.setKey=function(streamName,keyName,value){if(!this._streams.get(streamName))throw Error("Stream "+streamName+" not registered, please register first");this._streams.get(streamName).get("data").set(keyName,value)},MetaCacheService.prototype.clearMetaStreamKeys=function(streamName){this._streams.has(streamName)&&this._streams.get(streamName).set("data",new Map)},MetaCacheService.prototype.registerMetaStream=function(streamName,expirationPolicy){if(!this._streams.get(streamName)){var data=new Map;data.set("expirationPolicy",expirationPolicy),data.set("data",new Map),this._streams.set(streamName,data),pydio.observeOnce("repository_list_refreshed",function(){this._streams.delete(streamName),this.registerMetaStream(streamName,expirationPolicy)}.bind(this))}},MetaCacheService.prototype.metaForNode=function(streamName,ajxpNode,loaderCallback,remoteParser,cacheLoader){var _this=this;if(!this._streams.has(streamName))throw new Error("Cannot find meta stream "+streamName+", please register it before using it");var def=this._streams.get(streamName),key=ajxpNode.getPath(),expirationPolicy=def.get("expirationPolicy");def.get("data").has(key)?cacheLoader(def.get("data").get(key)):function(){var clearValueObserver=function(){def.get("data").delete(key)}.bind(_this);loaderCallback(ajxpNode,function(transport){var newData=remoteParser(transport);if(null!==newData){var cachedData=newData;newData instanceof AjxpNode&&(cachedData=new AjxpNode,cachedData.replaceBy(newData)),def.get("data").set(key,cachedData),expirationPolicy==MetaCacheService.EXPIRATION_LOCAL_NODE&&(ajxpNode.observeOnce("node_removed",clearValueObserver),ajxpNode.observeOnce("node_replaced",clearValueObserver))}})}()},MetaCacheService.prototype.invalidateMetaForKeys=function(streamName,keyPattern){if(!this._streams.has(streamName))throw new Error("Cannot find meta stream "+streamName+", please register it before using it");var data=this._streams.get(streamName).get("data");data.forEach(function(value,key){key.match(keyPattern)&&data.delete(key)})},MetaCacheService}(_langObservable2.default);MetaCacheService.EXPIRATION_LOCAL_NODE="LOCAL_NODE",MetaCacheService.EXPIRATION_MANUAL_TRIGGER="MANUAL_TRIGGER",exports.default=MetaCacheService,module.exports=exports.default},{"../lang/Observable":751}],515:[function(require,module,exports){"use strict";exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i1e3&&console&&console.log("WebSocket Closed Connection:"+reason+" (code "+event.code+")")},PydioWebSocket}();exports.default=PydioWebSocket,module.exports=exports.default},{"../model/AjxpNode":753,"../model/MetaNodeProvider":758,"../util/PathUtils":767,"./PydioApi":515,"lodash.debounce":"lodash.debounce","reconnecting-websocket":480}],517:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _utilXMLUtils=require("../util/XMLUtils"),_utilXMLUtils2=_interopRequireDefault(_utilXMLUtils),_Pydio=require("../Pydio"),_Pydio2=_interopRequireDefault(_Pydio),SystemJS=require("systemjs"),ResourcesManager=function(){function ResourcesManager(){_classCallCheck(this,ResourcesManager),this.mainFormContainerId="all_forms",this.resources={},this.loaded=!1}return ResourcesManager.prototype.addJSResource=function(fileName,className){this.resources.js||(this.resources.js=[]),this.resources.js.push({fileName:fileName,className:className,autoload:!1})},ResourcesManager.prototype.addCSSResource=function(fileName){this.resources.css||(this.resources.css=[]),this.resources.css.push(fileName)},ResourcesManager.prototype.addGuiForm=function(formId,htmlSnippet){this.resources.forms||(this.resources.forms=new Map),this.resources.forms.set(formId,htmlSnippet)},ResourcesManager.prototype.addDependency=function(data){this.resources.dependencies||(this.resources.dependencies=[]),this.resources.dependencies.push(data)},ResourcesManager.prototype.hasDependencies=function(){return this.resources.dependencies||!1},ResourcesManager.prototype.load=function(resourcesRegistry){var _this=this,jsAutoloadOnly=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],callback=arguments.length<=2||void 0===arguments[2]?FuncUtils.Empty:arguments[2];if(this.loaded)return void callback();this.hasDependencies()&&!this.dependenciesLoaded&&this.resources.dependencies.forEach(function(el){resourcesRegistry[el]&&resourcesRegistry[el].load(resourcesRegistry,!1,function(){this.dependenciesLoaded=!0,this.load(resourcesRegistry,!1,callback)}.bind(this))}.bind(this)),this.resources.forms&&this.resources.forms.forEach(function(value,key){}.bind(this)),this.resources.js?function(){var it=_this.resources.js.values(),cb=function(){var object=it.next();if(object.value){if(jsAutoloadOnly&&!object.value.autoload)return void cb();this.loadJSResource(object.value.fileName,object.value.className,cb,!0)}else this.loaded=!0,callback()}.bind(_this);cb()}():(this.loaded=!0,callback()),this.resources.css&&this.resources.css.forEach(function(value){this.loadCSSResource(value)}.bind(this))},ResourcesManager.prototype.loadJSResource=function(fileName,className,callback){arguments.length<=3||void 0===arguments[3]||arguments[3];ResourcesManager.__configsParsed||ResourcesManager.loadAutoLoadResources(),SystemJS.import(className).then(callback)},ResourcesManager.prototype.loadCSSResource=function(fileName){_Pydio2.default.getInstance().Parameters.get("SERVER_PREFIX_URI")&&(fileName=_Pydio2.default.getInstance().Parameters.get("SERVER_PREFIX_URI")+fileName),fileName=fileName+"?v="+_Pydio2.default.getVersion();for(var found=!1,links=document.getElementsByTagName("link"),i=0;i=_iterator.length)break;node=_iterator[_i++]}else{if(_i=_iterator.next(),_i.done)break;node=_i.value}var namespace=node.getAttribute("className"),filepath=ResourcesManager.getFileOrFallback(node),deps=[];node.getAttribute("depends")&&(deps=node.getAttribute("depends").split(",")),node.getAttribute("expose")&&(ResourcesManager.__requires[node.getAttribute("expose")]=namespace),sysjsMap[namespace]=filepath+"?v="+version,sysjsMeta[namespace]={format:"global",deps:deps}}SystemJS.config({map:sysjsMap,meta:sysjsMeta}),ResourcesManager.__configsParsed=!0;for(var imgNodes=_utilXMLUtils2.default.XPathSelectNodes(registry,"plugins/*/client_settings/resources/img_library"),_iterator2=imgNodes,_isArray2=Array.isArray(_iterator2),_i2=0,_iterator2=_isArray2?_iterator2:_iterator2[Symbol.iterator]();;){if(_isArray2){if(_i2>=_iterator2.length)break;node=_iterator2[_i2++]}else{if(_i2=_iterator2.next(),_i2.done)break;node=_i2.value}ResourcesManager.addImageLibrary(node.getAttribute("alias"),node.getAttribute("path"))}for(var cssNodes=_utilXMLUtils2.default.XPathSelectNodes(registry,'plugins/*/client_settings/resources/css[@autoload="true"]'),_iterator3=cssNodes,_isArray3=Array.isArray(_iterator3),_i3=0,_iterator3=_isArray3?_iterator3:_iterator3[Symbol.iterator]();;){if(_isArray3){if(_i3>=_iterator3.length)break;node=_iterator3[_i3++]}else{if(_i3=_iterator3.next(),_i3.done)break;node=_i3.value}manager.loadCSSResource(ResourcesManager.getFileOrFallback(node))}},ResourcesManager.getFileOrFallback=function getFileOrFallback(node){return node.getAttribute("fallbackCondition")&&eval(node.getAttribute("fallbackCondition"))?node.getAttribute("fallbackFile"):node.getAttribute("file")},ResourcesManager.requireLib=function(module){var promise=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];if(window[module])return window[module];if(ResourcesManager.__requires&&ResourcesManager.__requires[module]){var globalNS=ResourcesManager.__requires[module];if(promise)return SystemJS.import(globalNS);if(window[globalNS])return window[globalNS];throw new Error("Requiring a remote lib that was not previously loaded ("+globalNS+"). You may be missing a dependency declaration in manifest, or you can use requireLib(moduleName, true) to receive a Promise.")}throw new Error("Cannot find any reference to lib "+module)},ResourcesManager.moduleIsAvailable=function(className){var config=SystemJS.getConfig();return config.map&&config.map[className]},ResourcesManager.loadClassesAndApply=function(classNames,callbackFunc){ResourcesManager.__configsParsed||ResourcesManager.loadAutoLoadResources(),Promise.all(classNames.map(function(c){return SystemJS.import(c)})).then(function(){callbackFunc()}).catch(function(reason){console.error("Failed Loading "+classNames.join(", ")+" : ",reason)})},ResourcesManager.loadClass=function(className){return ResourcesManager.__configsParsed||ResourcesManager.loadAutoLoadResources(),SystemJS.import(className)},ResourcesManager.detectModuleToLoadAndApply=function(callbackString,callbackFunc){var async=arguments.length<=2||void 0===arguments[2]||arguments[2];ResourcesManager.__configsParsed||ResourcesManager.loadAutoLoadResources();var className=callbackString.split(".",1).shift();async?SystemJS.import(className).then(callbackFunc):ResourcesManager.loadScriptSync(className,callbackFunc)},ResourcesManager.loadScriptSync=function(name,callback){return regeneratorRuntime.async(function(context$2$0){for(;;)switch(context$2$0.prev=context$2$0.next){case 0:return context$2$0.next=2,regeneratorRuntime.awrap(SystemJS.import(name));case 2:callback();case 3:case"end":return context$2$0.stop()}},null,this)},ResourcesManager}();ResourcesManager.__configsParsed=!1,ResourcesManager.__requires={},exports.default=ResourcesManager,module.exports=exports.default},{"../Pydio":511,"../util/XMLUtils":768,systemjs:"systemjs"}],518:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _PydioApi=require("./PydioApi"),_PydioApi2=_interopRequireDefault(_PydioApi),_pydio=require("pydio"),_moment=(_interopRequireDefault(_pydio),require("moment")),_moment2=_interopRequireDefault(_moment),_genApiJobsServiceApi=require("./gen/api/JobsServiceApi"),_genApiJobsServiceApi2=_interopRequireDefault(_genApiJobsServiceApi),_genModelRestUserJobRequest=require("./gen/model/RestUserJobRequest"),_genModelRestUserJobRequest2=_interopRequireDefault(_genModelRestUserJobRequest),_genApiFrontendServiceApi=require("./gen/api/FrontendServiceApi"),_genApiFrontendServiceApi2=_interopRequireDefault(_genApiFrontendServiceApi),_genModelRestFrontSessionRequest=require("./gen/model/RestFrontSessionRequest"),_genModelRestFrontSessionRequest2=_interopRequireDefault(_genModelRestFrontSessionRequest),_genModelRestFrontSessionResponse=require("./gen/model/RestFrontSessionResponse"),_genModelRestFrontSessionResponse2=_interopRequireDefault(_genModelRestFrontSessionResponse),_IdmApi=require("./IdmApi"),_IdmApi2=_interopRequireDefault(_IdmApi),_require=require("./gen/index"),ApiClient=_require.ApiClient;ApiClient.parseDate=function(str){return _moment2.default(str).toDate()};var JwtApiClient=function(_ApiClient){_inherits(JwtApiClient,_ApiClient);function JwtApiClient(pydioObject){_classCallCheck(this,JwtApiClient),_ApiClient.call(this),this.basePath=pydioObject.Parameters.get("ENDPOINT_REST_API"),this.enableCookies=!0,this.pydio=pydioObject,pydioObject.observe("beforeApply-logout",function(){_PydioApi2.default.JWT_DATA=null})}return JwtApiClient.prototype.jwtEndpoint=function(request){var headers=null;return this.pydio.Parameters.has("MINISITE")&&(headers={"X-Pydio-Minisite":this.pydio.Parameters.get("MINISITE")}),_ApiClient.prototype.callApi.call(this,"/frontend/session","POST",null,null,headers,null,request,[],["application/json"],["application/json"],_genModelRestFrontSessionResponse2.default)},JwtApiClient.storeJwtLocally=function(frontJwtResponse){var now=Math.floor(Date.now()/1e3);_PydioApi2.default.JWT_DATA={jwt:frontJwtResponse.JWT,expirationTime:now+frontJwtResponse.ExpireTime}},JwtApiClient.prototype.sessionLogout=function(){var _this=this,request=(new _genApiFrontendServiceApi2.default(this),new _genModelRestFrontSessionRequest2.default);request.Logout=!0,this.jwtEndpoint(request).then(function(response){_PydioApi2.default.JWT_DATA=null,_this.pydio.loadXmlRegistry()})},JwtApiClient.prototype.jwtFromCredentials=function(login,password){var reloadRegistry=arguments.length<=2||void 0===arguments[2]||arguments[2];return this.jwtWithAuthInfo({login:login,password:password,type:"credentials"},reloadRegistry)},JwtApiClient.prototype.jwtWithAuthInfo=function(authInfo){var _this2=this,reloadRegistry=arguments.length<=1||void 0===arguments[1]||arguments[1],request=new _genModelRestFrontSessionRequest2.default;return request.AuthInfo=authInfo,this.jwtEndpoint(request).then(function(response){if(response.data&&response.data.JWT){if(JwtApiClient.storeJwtLocally(response.data),reloadRegistry){var targetRepository=null;_this2.pydio.Parameters.has("START_REPOSITORY")&&(targetRepository=_this2.pydio.Parameters.get("START_REPOSITORY")),_this2.pydio.loadXmlRegistry(null,null,targetRepository)}}else response.data&&response.data.Trigger?_this2.pydio.getController().fireAction(response.data.Trigger,response.data.TriggerInfo):_PydioApi2.default.JWT_DATA=null;return response})},JwtApiClient.prototype.getOrUpdateJwt=function(){var _this3=this,now=Math.floor(Date.now()/1e3);return _PydioApi2.default.JWT_DATA&&_PydioApi2.default.JWT_DATA.jwt&&_PydioApi2.default.JWT_DATA.expirationTime>=now?Promise.resolve(_PydioApi2.default.JWT_DATA.jwt):_PydioApi2.default.ResolvingJwt?_PydioApi2.default.ResolvingJwt:(_PydioApi2.default.ResolvingJwt=new Promise(function(resolve){_this3.jwtEndpoint(new _genModelRestFrontSessionRequest2.default).then(function(response){response.data&&response.data.JWT?(JwtApiClient.storeJwtLocally(response.data),resolve(response.data.JWT)):response.data&&response.data.Trigger?(_this3.pydio.getController().fireAction(response.data.Trigger,response.data.TriggerInfo),resolve("")):(_PydioApi2.default.JWT_DATA=null,resolve("")),_PydioApi2.default.ResolvingJwt=null}).catch(function(e){if(e.response&&401===e.response.status)throw _this3.pydio.getController().fireAction("logout"),_PydioApi2.default.ResolvingJwt=null,e;_PydioApi2.default.JWT_DATA=null,resolve(""),_PydioApi2.default.ResolvingJwt=null})}),_PydioApi2.default.ResolvingJwt)},JwtApiClient.prototype.callApi=function(path,httpMethod,pathParams,queryParams,headerParams,formParams,bodyParam,authNames,contentTypes,accepts,returnType){var _this4=this;return this.pydio.user&&this.pydio.user.getPreference("lang")&&(headerParams["X-Pydio-Language"]=this.pydio.user.getPreference("lang")),new Promise(function(resolve,reject){_this4.getOrUpdateJwt().then(function(jwt){var authNames=[];jwt&&(authNames.push("oauth2"),_this4.authentications={oauth2:{type:"oauth2",accessToken:jwt}}),_ApiClient.prototype.callApi.call(_this4,path,httpMethod,pathParams,queryParams,headerParams,formParams,bodyParam,authNames,contentTypes,accepts,returnType).then(function(response){resolve(response)}).catch(function(reason){_this4.handleError(reason),reject(reason)})}).catch(function(reason){_this4.handleError(reason),reject(reason)})})},JwtApiClient.prototype.handleError=function(reason){var msg=reason.message;if(reason.response&&reason.response.body?msg=reason.response.body:reason.response&&reason.response.text&&(msg=reason.response.text),reason.response&&401===reason.response.status&&this.pydio.getController().fireAction("logout"),reason.response&&404===reason.response.status)return void console.info("404 not found",msg);this.pydio&&this.pydio.UI&&this.pydio.UI.displayMessage("ERROR",msg),console&&console.error(reason)},JwtApiClient.prototype.userJob=function(name,parameters){var api=new _genApiJobsServiceApi2.default(this),request=new _genModelRestUserJobRequest2.default;return request.JobName=name,request.JsonParameters=JSON.stringify(parameters),api.userCreateJob(name,request)},JwtApiClient.prototype.getIdmApi=function(){return new _IdmApi2.default(this)},JwtApiClient}(ApiClient);exports.default=JwtApiClient,module.exports=exports.default},{"./IdmApi":513,"./PydioApi":515,"./gen/api/FrontendServiceApi":525,"./gen/api/JobsServiceApi":528,"./gen/index":543,"./gen/model/RestFrontSessionRequest":664,"./gen/model/RestFrontSessionResponse":665,"./gen/model/RestUserJobRequest":713,moment:439,pydio:"pydio"}],519:[function(require,module,exports){(function(Buffer){"use strict";exports.__esModule=!0;var _createClass=function(){function defineProperties(target,props){for(var i=0;i"+accessKey+")";displayString.charAt(keyPos)!=accessKey&&(accessKey=displayString.charAt(keyPos));var returnString=displayString.substring(0,displayString.indexOf(accessKey));return returnString+=""+accessKey+"",returnString+=displayString.substring(displayString.indexOf(accessKey)+1,displayString.length)},Action.prototype.attributesToObject=function(object,node){for(var key in object)if(object.hasOwnProperty(key)&&node.getAttribute(key)){var value=node.getAttribute(key);"true"==value?value=!0:"false"==value&&(value=!1),"allowedMimes"==key&&(value=value&&value.split(",").length?value.split(","):[]),object[key]=value}},Action}(_langObservable2.default);exports.default=Action,module.exports=exports.default},{"../http/ResourcesManager":517,"../lang/Logger":750,"../lang/Observable":751,"../util/FuncUtils":764,"../util/LangUtils":766,"../util/XMLUtils":768}],753:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),_utilPathUtils=require("../util/PathUtils"),_utilPathUtils2=_interopRequireDefault(_utilPathUtils),AjxpNode=function(_Observable){_inherits(AjxpNode,_Observable);function AjxpNode(path){var isLeaf=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],label=arguments.length<=2||void 0===arguments[2]?"":arguments[2],icon=arguments.length<=3||void 0===arguments[3]?"":arguments[3],iNodeProvider=arguments.length<=4||void 0===arguments[4]?null:arguments[4];_classCallCheck(this,AjxpNode),_Observable.call(this),this._path=path,this._path&&this._path.length&&this._path.length>1&&"/"===this._path[this._path.length-1]&&(this._path=this._path.substring(0,this._path.length-1)),this._isLeaf=isLeaf,this._label=label,this._icon=icon,this._isRoot=!1,this._metadata=new Map,this._children=new Map,this._isLoaded=!1,this.fake=!1,this._iNodeProvider=iNodeProvider}return AjxpNode.prototype.isLoaded=function(){return this._isLoaded},AjxpNode.prototype.isLoading=function(){return this._isLoading},AjxpNode.prototype.setLoaded=function(bool){this._isLoaded=bool},AjxpNode.prototype.updateProvider=function(iAjxpNodeProvider){this._iNodeProvider=iAjxpNodeProvider},AjxpNode.prototype.load=function(iAjxpNodeProvider){var additionalParameters=arguments.length<=1||void 0===arguments[1]?null:arguments[1];if(!this._isLoading){if(iAjxpNodeProvider||(iAjxpNodeProvider=this._iNodeProvider?this._iNodeProvider:new EmptyNodeProvider),this._isLoading=!0,this.notify("loading"),this._isLoaded)return this._isLoading=!1,void this.notify("loaded");iAjxpNodeProvider.loadNode(this,function(node){this._isLoaded=!0,this._isLoading=!1,this.notify("loaded"),this.notify("first_load")}.bind(this),null,!1,-1,additionalParameters)}},AjxpNode.prototype.reload=function(iAjxpNodeProvider){ -var silentClear=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];this._isLoaded=!1,this._children.forEach(function(child,key){silentClear||child.notify("node_removed"),child._parentNode=null,this._children.delete(key),silentClear||this.notify("child_removed",child)},this),this.load(iAjxpNodeProvider)},AjxpNode.prototype.clear=function(){this._children.forEach(function(child,key){child.notify("node_removed"),child._parentNode=null,this._children.delete(key),this.notify("child_removed",child)},this),this._isLoaded=!1,this.notify("force_clear")},AjxpNode.prototype.setRoot=function(){this._isRoot=!0},AjxpNode.prototype.setChildren=function(ajxpNodes){this._children=new Map,ajxpNodes.forEach(function(value){this._children.set(value.getPath(),value),value.setParent(this)}.bind(this))},AjxpNode.prototype.getChildren=function(){return this._children},AjxpNode.prototype.getFirstChildIfExists=function(){return this._children.size?this._children.values().next().value:null},AjxpNode.prototype.isMoreRecentThan=function(otherNode){return otherNode.getMetadata().get("ajxp_im_time")&&this.getMetadata().get("ajxp_im_time")&&parseInt(this.getMetadata().get("ajxp_im_time"))>=parseInt(otherNode.getMetadata().get("ajxp_im_time"))},AjxpNode.prototype.addChild=function(ajxpNode){ajxpNode.setParent(this),this._iNodeProvider&&(ajxpNode._iNodeProvider=this._iNodeProvider);var existingNode=this.findChildByPath(ajxpNode.getPath());return!existingNode||existingNode instanceof String?(this._children.set(ajxpNode.getPath(),ajxpNode),this.notify("child_added",ajxpNode.getPath()),ajxpNode):!existingNode.isMoreRecentThan(ajxpNode)&&(existingNode.replaceBy(ajxpNode,"override"),existingNode)},AjxpNode.prototype.removeChild=function(ajxpNode){var removePath=ajxpNode.getPath();ajxpNode.notify("node_removed"),ajxpNode._parentNode=null,this._children.delete(ajxpNode.getPath()),this.notify("child_removed",removePath)},AjxpNode.prototype.replaceMetadata=function(newMeta){this._metadata=newMeta,this.notify("meta_replaced",this)},AjxpNode.prototype.replaceBy=function(ajxpNode,metaMerge){this._isLeaf=ajxpNode._isLeaf;var pathChanged=!1;if(ajxpNode.getPath()&&this._path!=ajxpNode.getPath()){var originalPath=this._path;if(this.getParent()){var parentChildrenIndex=this.getParent()._children;parentChildrenIndex.set(ajxpNode.getPath(),this),parentChildrenIndex.delete(originalPath)}this._path=ajxpNode.getPath(),pathChanged=!0}ajxpNode._label&&(this._label=ajxpNode._label),ajxpNode._icon&&(this._icon=ajxpNode._icon),ajxpNode._iNodeProvider&&(this._iNodeProvider=ajxpNode._iNodeProvider),this._isLoaded=ajxpNode._isLoaded,this.fake=ajxpNode.fake;var meta=ajxpNode.getMetadata();if("override"==metaMerge&&(this._metadata=new Map),meta.forEach(function(value,key){if("override"==metaMerge)this._metadata.set(key,value);else{if(this._metadata.has(key)&&""===value)return;this._metadata.set(key,value)}}.bind(this)),pathChanged&&!this._isLeaf&&this.getChildren().size)return void window.setTimeout(function(){this.reload(this._iNodeProvider)}.bind(this),100);ajxpNode.getChildren().forEach(function(child){this.addChild(child)}.bind(this)),this.notify("node_replaced",this)},AjxpNode.prototype.findChildByPath=function(path){return this._children.get(path)},AjxpNode.prototype.setMetadata=function(data){this._metadata=data},AjxpNode.prototype.getMetadata=function(){return this._metadata},AjxpNode.prototype.isLeaf=function(){return this._isLeaf},AjxpNode.prototype.isBrowsable=function(){return!this._isLeaf||"ajxp_browsable_archive"===this.getAjxpMime()},AjxpNode.prototype.getPath=function(){return this._path},AjxpNode.prototype.getLabel=function(){return this._label},AjxpNode.prototype.setLabel=function(l){this._label=l},AjxpNode.prototype.getIcon=function(){return this._icon},AjxpNode.prototype.isRecycle=function(){return"ajxp_recycle"==this.getAjxpMime()},AjxpNode.prototype.getSvgSource=function(){return this.getMetadata().get("fonticon")},AjxpNode.prototype.hasAjxpMimeInBranch=function(ajxpMime){if(this.getAjxpMime()===ajxpMime.toLowerCase())return!0;for(var parent=void 0,crt=this;parent=crt._parentNode;){if(parent.getAjxpMime()===ajxpMime.toLowerCase())return!0;crt=parent}return!1},AjxpNode.prototype.hasMetadataInBranch=function(metadataKey,metadataValue){if(this.getMetadata().has(metadataKey))return!metadataValue||this.getMetadata().get(metadataKey)===metadataValue;for(var parent=void 0,crt=this;parent=crt._parentNode;){if(parent.getMetadata().has(metadataKey))return!metadataValue||parent.getMetadata().get(metadataKey)===metadataValue;crt=parent}return!1},AjxpNode.prototype.setParent=function(parentNode){this._parentNode=parentNode},AjxpNode.prototype.getParent=function(){return this._parentNode},AjxpNode.prototype.findInArbo=function(rootNode,fakeNodes){if(this.getPath()){for(var pathParts=this.getPath().split("/"),crtPath="",crtNode=void 0,crtParentNode=rootNode,i=0;i0||deletedNodes.length>0},CellModel.prototype.setLabel=function(roomLabel){this.cell.Label=roomLabel,this.notifyDirty()},CellModel.prototype.getLabel=function(){return this.cell.Label},CellModel.prototype.getDescription=function(){return this.cell.Description},CellModel.prototype.getUuid=function(){return this.cell.Uuid},CellModel.prototype.setDescription=function(description){this.cell.Description=description,this.notifyDirty()},CellModel.prototype.clone=function(room){return _httpGenIndex.RestCell.constructFromObject(JSON.parse(JSON.stringify(room)))},CellModel.prototype.save=function(){var _this4=this;if(!this.cell.RootNodes.length&&this.cell.Uuid)return this.deleteCell("This cell has no more items in it, it will be deleted, are you sure?");var api=new _httpGenIndex.ShareServiceApi(_httpPydioApi2.default.getRestClient()),request=new _httpGenIndex.RestPutCellRequest;return this._edit||this.cell.RootNodes.length||(request.CreateEmptyRoot=!0),this.cell.RootNodes.map(function(node){node.MetaStore&&node.MetaStore.selection&&delete node.MetaStore.selection}),request.Room=this.cell,api.putCell(request).then(function(response){if(!response||!response.Uuid)throw new Error("Error while saving cell");_this4._edit?(_this4.cell=response,_this4.dirty=!1,_this4.originalCell=_this4.clone(_this4.cell),_this4.notify("update")):_pydio2.default.getInstance().observeOnce("repository_list_refreshed",function(){_pydio2.default.getInstance().triggerRepositoryChange(response.Uuid)})})},CellModel.prototype.load=function(cellId){var _this5=this;return new _httpGenIndex.ShareServiceApi(_httpPydioApi2.default.getRestClient()).getCell(cellId).then(function(room){_this5.cell=room,_this5.cell.RootNodes||(_this5.cell.RootNodes=[]),_this5.cell.ACLs||(_this5.cell.ACLs={}),_this5.cell.Policies||(_this5.cell.Policies=[]),_this5.cell.Description||(_this5.cell.Description=""),_this5._edit=!0,_this5.originalCell=_this5.clone(_this5.cell),_this5.notify("update")})},CellModel.prototype.deleteCell=function(){var _this6=this,confirmMessage=arguments.length<=0||void 0===arguments[0]?"":arguments[0];if(confirmMessage||(confirmMessage="Are you sure you want to delete this cell? This cannot be undone."),confirm(confirmMessage)){var _ret=function(){var api=new _httpGenIndex.ShareServiceApi(_httpPydioApi2.default.getRestClient()),pydio=_pydio2.default.getInstance();if(pydio.user.activeRepository!==_this6.cell.Uuid)return{v:api.deleteCell(_this6.cell.Uuid).then(function(res){})};!function(){var switchToOther=void 0;pydio.user.getRepositoriesList().forEach(function(v,k){k===_this6.cell.Uuid||switchToOther&&"gateway"!==v.getAccessType()||(switchToOther=k)}),switchToOther&&pydio.triggerRepositoryChange(switchToOther,function(){api.deleteCell(_this6.cell.Uuid).then(function(res){})})}()}();if("object"==typeof _ret)return _ret.v}return Promise.resolve({})},CellModel}(_langObservable2.default);exports.default=CellModel,module.exports=exports.default},{"../http/PydioApi":515,"../http/gen/index":543,"../lang/Observable":751,"../util/PathUtils":767,"./IdmObjectHelper":757,pydio:"pydio"}],755:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),_langLogger=require("../lang/Logger"),_httpPydioApi=(_interopRequireDefault(_langLogger),require("../http/PydioApi")),_utilXMLUtils=(_interopRequireDefault(_httpPydioApi),require("../util/XMLUtils")),_utilXMLUtils2=_interopRequireDefault(_utilXMLUtils),_Action=require("./Action"),_Action2=_interopRequireDefault(_Action),Controller=function(_Observable){_inherits(Controller,_Observable);function Controller(pydioObject){var dataModelElementId=arguments.length<=1||void 0===arguments[1]?null:arguments[1];if(_classCallCheck(this,Controller),_Observable.call(this),this._pydioObject=pydioObject,this._registeredKeys=new Map,this.usersEnabled=pydioObject.Parameters.get("usersEnabled"),this.subMenus=[],this.actions=new Map,this.defaultActions=new Map,this.toolbars=new Map,this._guiActions=new Map,this.contextChangedObs=function(event){window.setTimeout(function(){this.fireContextChange()}.bind(this),0)}.bind(this),this.selectionChangedObs=function(event){window.setTimeout(function(){this.fireSelectionChange()}.bind(this),0)}.bind(this),dataModelElementId){this.localDataModel=!0;try{this._dataModel=document.getElementById(dataModelElementId).ajxpPaneObject.getDataModel()}catch(e){}this._dataModel?this._connectDataModel():this._pydioObject.observeOnce("datamodel-loaded-"+dataModelElementId,function(){this._dataModel=document.getElementById(dataModelElementId).ajxpPaneObject.getDataModel(),this._connectDataModel()}.bind(this))}else this.localDataModel=!1,this._connectDataModel();this.usersEnabled&&(this._pydioObject.observe("user_logged",function(user){this.setUser(user)}.bind(this)),this._pydioObject.user&&this.setUser(this._pydioObject.user))}return Controller.prototype.getPydio=function(){return this._pydioObject},Controller.prototype.publishActionEvent=function(eventName,data){this._pydioObject.fire(eventName,data)},Controller.prototype._connectDataModel=function(){this.localDataModel?(this._dataModel.observe("context_changed",this.contextChangedObs),this._dataModel.observe("selection_changed",this.selectionChangedObs),this.loadActionsFromRegistry(),this._pydioObject.observe("registry_loaded",function(registry){this.loadActionsFromRegistry(registry)}.bind(this))):(this._pydioObject.observe("context_changed",this.contextChangedObs),this._pydioObject.observe("selection_changed",this.selectionChangedObs),this._dataModel=this._pydioObject.getContextHolder())},Controller.prototype.updateGuiActions=function(actions){actions.forEach(function(v,k){this._guiActions.has(k)||(this._guiActions.set(k,v),this.registerAction(v))}.bind(this)),this.notify("actions_refreshed")},Controller.prototype.deleteFromGuiActions=function(actionName){this._guiActions.delete(actionName),this.actions.has(actionName)&&this.actions.delete(actionName),this.notify("actions_refreshed")},Controller.prototype.refreshGuiActionsI18n=function(){this._guiActions.forEach(function(value,key){value.refreshFromI18NHash()})},Controller.prototype.getDataModel=function(){return this._dataModel},Controller.prototype.destroy=function(){this.localDataModel&&this._dataModel&&(this._dataModel.stopObserving("context_changed",this.contextChangedObs),this._dataModel.stopObserving("selection_changed",this.selectionChangedObs))},Controller.prototype.getMessage=function(messageId){try{return this._pydioObject.MessageHash[messageId]}catch(e){return messageId}},Controller.prototype.setUser=function(oUser){this.oUser=oUser,null==oUser||"guest"===oUser.id||null==oUser.getPreference("lang")||""===oUser.getPreference("lang")||oUser.getPreference("lang")===this._pydioObject.currentLanguage||oUser.lock||this._pydioObject.loadI18NMessages(oUser.getPreference("lang"),!1)},Controller.prototype.getContextActions=function(actionsSelectorAtt,ignoreGroups,onlyGroups){var contextActions=[],defaultGroup=void 0,contextActionsGroup=new Map;this.actions.forEach(function(action){if((action.context.contextMenu||onlyGroups&&onlyGroups.length)&&("selectionContext"!=actionsSelectorAtt||action.context.selection)&&("directoryContext"!=actionsSelectorAtt||action.context.dir)&&!("genericContext"==actionsSelectorAtt&&action.context.selection||action.contextHidden||action.deny)){action.context.actionBarGroup.split(",").forEach(function(barGroup){contextActionsGroup.has(barGroup)||contextActionsGroup.set(barGroup,[])});var isDefault=!1;if("selectionContext"==actionsSelectorAtt){var userSelection=this._dataModel;if(!userSelection.isEmpty()){var defaultAction="file";userSelection.isUnique()&&(userSelection.hasDir()||userSelection.hasMime(["ajxp_browsable_archive"]))&&(defaultAction="dir"),this.defaultActions.get(defaultAction)&&action.options.name==this.defaultActions.get(defaultAction)&&(isDefault=!0)}}action.context.actionBarGroup.split(",").forEach(function(barGroup){var menuItem=action.getMenuData();menuItem.isDefault=isDefault,contextActionsGroup.get(barGroup).push(menuItem),isDefault&&(defaultGroup=barGroup)})}}.bind(this));var first=!0,keys=[];contextActionsGroup=this._sortToolbarsActions(contextActionsGroup),contextActionsGroup.forEach(function(v,k){defaultGroup&&k==defaultGroup||keys.push(k)}),keys.sort(),defaultGroup&&contextActionsGroup.has(defaultGroup)&&keys.unshift(defaultGroup);var actionsPushed={};return keys.map(function(key){var value=contextActionsGroup.get(key);first||contextActions.push({separator:!0}),ignoreGroups&&-1!==ignoreGroups.indexOf(key)||onlyGroups&&-1===onlyGroups.indexOf(key)||(first=!1,value.forEach(function(mItem){var actionId=mItem.action_id;actionsPushed[actionId]||(contextActions.push(mItem),actionsPushed[actionId]=!0)}))}),contextActions},Controller.prototype.getToolbarsActions=function(){var _this=this,toolbarsList=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],groupOtherList=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],toolbars=new Map,groupOtherBars=new Map,lastTbarAdded=void 0;return this.actions.forEach(function(action){action.context.actionBar&&action.context.actionBarGroup.split(",").map(function(barGroup){if(-1!==toolbarsList.indexOf(barGroup)||-1!==groupOtherList.indexOf(barGroup)){var tBarUpdate=-1!==toolbarsList.indexOf(barGroup)?toolbars:groupOtherBars;null==tBarUpdate.get(barGroup)&&tBarUpdate.set(barGroup,[]),tBarUpdate.get(barGroup).push(action),tBarUpdate===toolbars&&(lastTbarAdded=barGroup)}}.bind(this))}.bind(this)),groupOtherList.length&&function(){var submenuItems=[];groupOtherList.map(function(otherToolbar){var otherActions=groupOtherBars.get(otherToolbar);otherActions&&(otherActions.map(function(act){submenuItems.push({actionId:act})}),groupOtherList.indexOf(otherToolbar)wB?1:-1})}),toolbars},Controller}(_langObservable2.default);exports.default=Controller,module.exports=exports.default},{"../http/PydioApi":515,"../lang/Logger":750,"../lang/Observable":751,"../util/XMLUtils":768,"./Action":752}],756:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),EmptyNodeProvider=function(_Observable){_inherits(EmptyNodeProvider,_Observable);function EmptyNodeProvider(){_classCallCheck(this,EmptyNodeProvider),_Observable.call(this)}return EmptyNodeProvider.prototype.initProvider=function(properties){this.properties=properties},EmptyNodeProvider.prototype.loadNode=function(node,nodeCallback,childCallback){},EmptyNodeProvider.prototype.loadLeafNodeSync=function(node,callback){},EmptyNodeProvider}(_langObservable2.default);exports.default=EmptyNodeProvider,module.exports=exports.default},{"../lang/Observable":751}],757:[function(require,module,exports){"use strict";exports.__esModule=!0;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var IdmObjectHelper=function(){function IdmObjectHelper(){_classCallCheck(this,IdmObjectHelper)}return IdmObjectHelper.extractLabel=function(pydio,acl){return acl.User?acl.User.Login===pydio.user.id?pydio.MessageHash[634]:acl.User.Attributes&&acl.User.Attributes.displayName?acl.User.Attributes.displayName:acl.User.Login:acl.Group?"ROOT_GROUP"===acl.Group.Uuid?pydio.MessageHash["634c"]:acl.Group.GroupLabel?pydio.MessageHash[289]+" "+acl.Group.GroupLabel:acl.Group.Uuid:acl.Role?acl.Role.Label:""},IdmObjectHelper.extractLabelFromIdmObject=function(idmObject){return idmObject.Login?idmObject.Attributes&&idmObject.Attributes.displayName||idmObject.Login:idmObject.GroupPath?"ROOT_GROUP"===idmObject.Uuid?pydio.MessageHash["634c"]:idmObject.GroupLabel||"Group "+idmObject.GroupPath:idmObject.Label?idmObject.Label:idmObject.Uuid},IdmObjectHelper}();exports.default=IdmObjectHelper,module.exports=exports.default},{}],758:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _httpMetaCacheService=require("../http/MetaCacheService"),_httpMetaCacheService2=_interopRequireDefault(_httpMetaCacheService),_httpPydioApi=require("../http/PydioApi"),_httpPydioApi2=_interopRequireDefault(_httpPydioApi),_utilPathUtils=require("../util/PathUtils"),_utilPathUtils2=_interopRequireDefault(_utilPathUtils),_pydio=require("pydio"),_pydio2=_interopRequireDefault(_pydio),_AjxpNode=require("./AjxpNode"),_AjxpNode2=_interopRequireDefault(_AjxpNode),_httpGenApiMetaServiceApi=require("../http/gen/api/MetaServiceApi"),_httpGenApiMetaServiceApi2=_interopRequireDefault(_httpGenApiMetaServiceApi),_httpGenModelRestGetBulkMetaRequest=require("../http/gen/model/RestGetBulkMetaRequest"),_httpGenModelRestGetBulkMetaRequest2=_interopRequireDefault(_httpGenModelRestGetBulkMetaRequest),MetaNodeProvider=function(){function MetaNodeProvider(){var properties=arguments.length<=0||void 0===arguments[0]?null:arguments[0];_classCallCheck(this,MetaNodeProvider),this.discrete=!1,this.properties=new Map,properties&&this.initProvider(properties)}return MetaNodeProvider.prototype.initProvider=function(properties){this.properties=new Map;for(var p in properties)properties.hasOwnProperty(p)&&this.properties.set(p,properties[p]);this.properties&&this.properties.has("connexion_discrete")&&(this.discrete=!0,this.properties.delete("connexion_discrete")),this.properties&&this.properties.has("cache_service")&&(this.cacheService=this.properties.get("cache_service"),this.properties.delete("cache_service"),_httpMetaCacheService2.default.getInstance().registerMetaStream(this.cacheService.metaStreamName,this.cacheService.expirationPolicy))},MetaNodeProvider.prototype.loadNode=function(node){var nodeCallback=arguments.length<=1||void 0===arguments[1]?null:arguments[1],childCallback=arguments.length<=2||void 0===arguments[2]?null:arguments[2],_this=(!(arguments.length<=3||void 0===arguments[3])&&arguments[3],this),pydio=(arguments.length<=4||void 0===arguments[4]||arguments[4],arguments.length<=5||void 0===arguments[5]||arguments[5],_pydio2.default.getInstance()),api=new _httpGenApiMetaServiceApi2.default(_httpPydioApi2.default.getRestClient()),request=new _httpGenModelRestGetBulkMetaRequest2.default,slug="";if(pydio.user)if(this.properties.has("tmp_repository_id")){var repos=pydio.user.getRepositoriesList();slug=repos.get(this.properties.get("tmp_repository_id")).getSlug() -}else slug=pydio.user.getActiveRepositoryObject().getSlug();var inputPagination=node.getMetadata().get("paginationData");inputPagination?(request.Offset=(inputPagination.get("current")-1)*inputPagination.get("size"),request.Limit=inputPagination.get("size")):request.Limit=pydio.getPluginConfigs("access.gateway").get("LIST_NODES_PER_PAGE")||200,request.NodePaths=[slug+node.getPath(),slug+node.getPath()+"/*"],this.properties.has("versions")&&(request.Versions=!0,request.NodePaths=[slug+this.properties.get("file")]),_pydio2.default.startLoading(),api.getBulkMeta(request).then(function(res){_pydio2.default.endLoading();var origNode=void 0,childrenNodes=[];if(res.Nodes.map(function(n){var newNode=void 0;try{newNode=MetaNodeProvider.parseTreeNode(n,slug)}catch(e){return void console.error(e)}".pydio"!==newNode.getLabel()&&(newNode.getPath()===node.getPath()?origNode=newNode:(childCallback&&childCallback(newNode),childrenNodes.push(newNode)))}),void 0!==origNode){if(res.Pagination){var paginationData=new Map;paginationData.set("current",res.Pagination.CurrentPage),paginationData.set("total",res.Pagination.TotalPages),paginationData.set("size",res.Pagination.Limit),origNode.getMetadata().set("paginationData",paginationData)}node.replaceBy(origNode)}_this.properties.has("versions")&&(childrenNodes=childrenNodes.map(function(child){return child._path=child.getMetadata().get("versionId"),child})),node.setChildren(childrenNodes),null!==nodeCallback&&nodeCallback(node)}).catch(function(e){_pydio2.default.endLoading(),console.log(e)})},MetaNodeProvider.prototype.loadLeafNodeSync=function(node,nodeCallback){var api=(!(arguments.length<=2||void 0===arguments[2])&&arguments[2],arguments.length<=3||void 0===arguments[3]||arguments[3],new _httpGenApiMetaServiceApi2.default(_httpPydioApi2.default.getRestClient())),request=new _httpGenModelRestGetBulkMetaRequest2.default,slug="",path=node.getPath(),pydio=_pydio2.default.getInstance();if(pydio.user)if(node.getMetadata().has("repository_id")){var repoId=node.getMetadata().get("repository_id"),repo=pydio.user.getRepositoriesList().get(repoId);repo&&(slug=repo.getSlug())}else slug=pydio.user.getActiveRepositoryObject().getSlug();path&&"/"!==path[0]&&(path="/"+path),request.NodePaths=[slug+path],api.getBulkMeta(request).then(function(res){res.Nodes&&res.Nodes.length&&nodeCallback(MetaNodeProvider.parseTreeNode(res.Nodes[0],slug))})},MetaNodeProvider.prototype.refreshNodeAndReplace=function(node,onComplete){var nodeCallback=function(newNode){node.replaceBy(newNode,"override"),onComplete&&onComplete(node)};this.loadLeafNodeSync(node,nodeCallback)},MetaNodeProvider.parseTreeNode=function(obj,workspaceSlug){var defaultSlug=arguments.length<=2||void 0===arguments[2]?"":arguments[2];if(!obj||!obj.MetaStore)return null;var pydio=_pydio2.default.getInstance(),nodeName=void 0;nodeName=obj.MetaStore.name?JSON.parse(obj.MetaStore.name):_utilPathUtils2.default.getBasename(obj.Path);var slug=workspaceSlug;if(!workspaceSlug&&obj.MetaStore.repository_id){var wsId=JSON.parse(obj.MetaStore.repository_id);pydio.user.getRepositoriesList().has(wsId)&&(slug=pydio.user.getRepositoriesList().get(wsId).getSlug())}slug||(slug=defaultSlug),slug&&(obj.Path=obj.Path.substr(slug.length+1));var node=new _AjxpNode2.default("/"+obj.Path,"LEAF"===obj.Type,nodeName,"",null),meta=obj.MetaStore;for(var k in meta)if(meta.hasOwnProperty(k)){var metaValue=JSON.parse(meta[k]);if(node.getMetadata().set(k,metaValue),"object"==typeof metaValue)for(var kSub in metaValue)metaValue.hasOwnProperty(kSub)&&node.getMetadata().set(kSub,metaValue[kSub])}if(node.getMetadata().set("filename",node.getPath()),"/recycle_bin"===node.getPath()&&(node.getMetadata().set("fonticon","delete"),node.getMetadata().set("mimestring_id","122"),node.getMetadata().set("ajxp_mime","ajxp_recycle"),pydio&&node.setLabel(pydio.MessageHash[122]),node.getMetadata().set("mimestring",pydio.MessageHash[122])),node.isLeaf()&&pydio&&pydio.Registry){var ext=_utilPathUtils2.default.getFileExtension(node.getPath()),registered=pydio.Registry.getFilesExtensions();if(registered.has(ext)){var _registered$get=registered.get(ext),messageId=_registered$get.messageId,fontIcon=_registered$get.fontIcon;node.getMetadata().set("fonticon",fontIcon),node.getMetadata().set("mimestring_id",messageId),pydio.MessageHash[messageId]&&node.getMetadata().set("mimestring",pydio.MessageHash[messageId])}}else node.isLeaf()||node.getMetadata().set("mimestring",pydio.MessageHash[8]);return void 0!==obj.Size&&node.getMetadata().set("bytesize",obj.Size),void 0!==obj.MTime&&node.getMetadata().set("ajxp_modiftime",obj.MTime),void 0!==obj.Etag&&node.getMetadata().set("etag",obj.Etag),void 0!==obj.Uuid&&node.getMetadata().set("uuid",obj.Uuid),MetaNodeProvider.overlays(node),node},MetaNodeProvider.overlays=function(node){var meta=node.getMetadata(),overlays=[];if(meta.has("workspaces_shares")){var wsRoot=meta.get("ws_root");meta.set("pydio_is_shared","true"),meta.set("pydio_shares",JSON.stringify(meta.get("workspaces_shares"))),wsRoot?node.isLeaf()||meta.set("fonticon","folder-star"):overlays.push("mdi mdi-share-variant")}if(meta.has("user_subscriptions")){var subs=meta.get("user_subscriptions"),read=subs.indexOf("read"),changes=subs.indexOf("change"),value="";read&&changes?value="META_WATCH_BOTH":read?value="META_WATCH_READ":changes&&(value="META_WATCH_CHANGES"),value&&(meta.set("meta_watched",value),overlays.push("mdi mdi-rss"))}if(meta.has("bookmark")&&(meta.set("ajxp_bookmarked","true"),overlays.push("mdi mdi-bookmark-outline")),meta.has("content_lock")){var lockUser=meta.get("content_lock");overlays.push("mdi mdi-lock-outline"),meta.set("sl_locked","true"),pydio&&pydio.user&&lockUser===pydio.user.id&&meta.set("sl_mylock","true")}overlays.length&&meta.set("overlay_class",overlays.join(",")),node.setMetadata(meta)},MetaNodeProvider}();exports.default=MetaNodeProvider,module.exports=exports.default},{"../http/MetaCacheService":514,"../http/PydioApi":515,"../http/gen/api/MetaServiceApi":531,"../http/gen/model/RestGetBulkMetaRequest":667,"../util/PathUtils":767,"./AjxpNode":753,pydio:"pydio"}],759:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),_langLogger=require("../lang/Logger"),_langLogger2=_interopRequireDefault(_langLogger),_AjxpNode=require("./AjxpNode"),_AjxpNode2=_interopRequireDefault(_AjxpNode),_utilLangUtils=require("../util/LangUtils"),_utilLangUtils2=_interopRequireDefault(_utilLangUtils),_utilPathUtils=require("../util/PathUtils"),_utilPathUtils2=_interopRequireDefault(_utilPathUtils),_httpPydioApi=require("../http/PydioApi"),_modelMetaNodeProvider=(_interopRequireDefault(_httpPydioApi),require("../model/MetaNodeProvider")),_modelMetaNodeProvider2=_interopRequireDefault(_modelMetaNodeProvider),PydioDataModel=function(_Observable){_inherits(PydioDataModel,_Observable);function PydioDataModel(){var localEvents=arguments.length<=0||void 0===arguments[0]||arguments[0];_classCallCheck(this,PydioDataModel),_Observable.call(this),this._currentRep="/",this._selectedNodes=[],this._bEmpty=!0,this._globalEvents=!localEvents,this._bFile=!1,this._bDir=!1,this._isRecycle=!1,this._pendingSelection=null,this._selectionSource={},this._rootNode=null}return PydioDataModel.RemoteDataModelFactory=function(providerProperties){var rootLabel=arguments.length<=1||void 0===arguments[1]?"":arguments[1],dataModel=new PydioDataModel(!0),rNodeProvider=new _modelMetaNodeProvider2.default(providerProperties);dataModel.setAjxpNodeProvider(rNodeProvider);var rootNode=new _AjxpNode2.default("/",!1,rootLabel,"",rNodeProvider);return dataModel.setRootNode(rootNode),dataModel},PydioDataModel.prototype.setAjxpNodeProvider=function(iAjxpNodeProvider){this._iAjxpNodeProvider=iAjxpNodeProvider},PydioDataModel.prototype.getAjxpNodeProvider=function(){return this._iAjxpNodeProvider},PydioDataModel.prototype.requireContextChange=function(ajxpNode){var _this=this,forceReload=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];if(null!==ajxpNode){this.setSelectedNodes([]);var path=ajxpNode.getPath();""!==path&&"/"!==path||ajxpNode===this._rootNode||(ajxpNode=this._rootNode);var paginationPage=null;if(ajxpNode.getMetadata().has("paginationData")&&ajxpNode.getMetadata().get("paginationData").has("new_page")&&ajxpNode.getMetadata().get("paginationData").get("new_page")!==ajxpNode.getMetadata().get("paginationData").get("current")&&(paginationPage=ajxpNode.getMetadata().get("paginationData").get("new_page"),forceReload=!0),ajxpNode!=this._rootNode&&(!ajxpNode.getParent()||ajxpNode.fake)){var fakeNodes=[];if(ajxpNode=ajxpNode.findInArbo(this._rootNode,fakeNodes),fakeNodes.length){var _ret=function(){var firstFake=fakeNodes.shift();return firstFake.observeOnce("first_load",function(e){this.requireContextChange(ajxpNode)}.bind(_this)),firstFake.observeOnce("error",function(message){_langLogger2.default.error(message),firstFake.notify("node_removed");var parent=firstFake.getParent();parent.removeChild(firstFake),this.requireContextChange(parent)}.bind(_this)),_this.publish("context_loading"),firstFake.load(_this._iAjxpNodeProvider),{v:void 0}}();if("object"==typeof _ret)return _ret.v}}ajxpNode.observeOnce("loaded",function(){if(this.setContextNode(ajxpNode,!0),this.publish("context_loaded"),this.getPendingSelection()){var selPath=ajxpNode.getPath()+("/"==ajxpNode.getPath()?"":"/")+this.getPendingSelection(),selNode=ajxpNode.findChildByPath(selPath);if(selNode)this.setSelectedNodes([selNode],this);else if(ajxpNode.getMetadata().get("paginationData")&&arguments.length<3){var newPage=void 0,currentPage=ajxpNode.getMetadata().get("paginationData").get("current");if(this.loadPathInfoSync(selPath,function(foundNode){newPage=foundNode.getMetadata().get("page_position")},{page_position:"true"}),newPage&&newPage!==currentPage)return ajxpNode.getMetadata().get("paginationData").set("new_page",newPage),void this.requireContextChange(ajxpNode,!0,!0)}this.clearPendingSelection()}}.bind(this)),ajxpNode.observeOnce("error",function(message){_langLogger2.default.error(message),this.publish("context_loaded")}.bind(this)),this.publish("context_loading");try{forceReload?(paginationPage&&ajxpNode.getMetadata().get("paginationData").set("current",paginationPage),ajxpNode.reload(this._iAjxpNodeProvider,!0)):ajxpNode.load(this._iAjxpNodeProvider)}catch(e){this.publish("context_loaded")}}},PydioDataModel.prototype.requireNodeReload=function(nodeOrPath,completeCallback){nodeOrPath instanceof String&&(nodeOrPath=new _AjxpNode2.default(nodeOrPath));var onComplete=null;if(this._selectedNodes.length){var found=-1;this._selectedNodes.map(function(node,key){node.getPath()===nodeOrPath.getPath()&&(found=key)}),-1!==found&&(this._selectedNodes=_utilLangUtils2.default.arrayWithout(this._selectedNodes,found),this.publish("selection_changed",this),onComplete=function(newNode){this._selectedNodes.push(newNode),this._selectionSource={},this.publish("selection_changed",this),completeCallback&&completeCallback(newNode)}.bind(this))}this._iAjxpNodeProvider.refreshNodeAndReplace(nodeOrPath,onComplete)},PydioDataModel.prototype.loadPathInfoSync=function(path,callback){var additionalParameters=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];this._iAjxpNodeProvider.loadLeafNodeSync(new _AjxpNode2.default(path),callback,!1,additionalParameters)},PydioDataModel.prototype.loadPathInfoAsync=function(path,callback){this._iAjxpNodeProvider.loadLeafNodeSync(new _AjxpNode2.default(path),callback,!0)},PydioDataModel.prototype.setRootNode=function(ajxpRootNode){this._rootNode=ajxpRootNode,this._rootNode.setRoot(),this._rootNode.observe("child_added",function(c){}),this.publish("root_node_changed",this._rootNode),this.setContextNode(this._rootNode)},PydioDataModel.prototype.getRootNode=function(){return this._rootNode},PydioDataModel.prototype.setContextNode=function(ajxpDataNode,forceEvent){this._contextNode&&this._contextNode==ajxpDataNode&&this._currentRep==ajxpDataNode.getPath()&&!forceEvent||ajxpDataNode&&(this._contextNodeReplacedObserver&&this._contextNode&&this._contextNode.stopObserving("node_replaced",this._contextNodeReplacedObserver),this._contextNode=ajxpDataNode,this._currentRep=ajxpDataNode.getPath(),this.publish("context_changed",ajxpDataNode),this._contextNodeReplacedObserver||(this._contextNodeReplacedObserver=this.contextNodeReplaced.bind(this)),ajxpDataNode.observe("node_replaced",this._contextNodeReplacedObserver))},PydioDataModel.prototype.contextNodeReplaced=function(newNode){this.setContextNode(newNode,!0)},PydioDataModel.prototype.publish=function(eventName,optionalData){var args=[];this._globalEvents?(window.pydio?(args.push(eventName),optionalData&&args.push(optionalData),window.pydio.fire.apply(window.pydio,args)):document.fire&&(args.push("pydio:"+eventName),optionalData&&args.push(optionalData),document.fire.apply(document,args)),args=optionalData?[eventName,{memo:optionalData}]:[eventName],this.notify.apply(this,args)):(args=optionalData?[eventName,{memo:optionalData}]:[eventName],this.notify.apply(this,args))},PydioDataModel.prototype.getContextNode=function(){return this._contextNode},PydioDataModel.prototype.multipleNodesReload=function(nodes){for(var i=0;i=imTime)&&(n.getParent().removeChild(n),!0))},PydioDataModel.prototype.updateNode=function(node){var fake,n,setSelectedAfterUpdate=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],original=node.getMetadata().get("original_path");if(original&&original!==node.getPath()&&_utilPathUtils2.default.getDirname(original)!==_utilPathUtils2.default.getDirname(node.getPath())){fake=new _AjxpNode2.default(original),n=fake.findInArbo(this.getRootNode(),void 0),n&&n.getParent().removeChild(n);var parentFake=new _AjxpNode2.default(_utilPathUtils2.default.getDirname(node.getPath())),parent=parentFake.findInArbo(this.getRootNode(),void 0);parent||""!==_utilPathUtils2.default.getDirname(node.getPath())||(parent=this.getRootNode()),parent&&(node.getMetadata().set("original_path",void 0),parent.addChild(node))}else{if("/"===node.getMetadata().get("original_path")&&"/"===node.getPath())return n=this.getRootNode(),n.replaceMetadata(node.getMetadata()),void(setSelectedAfterUpdate&&this.getContextNode()===n&&this.setSelectedNodes([n],{}));fake=new _AjxpNode2.default(original),n=fake.findInArbo(this.getRootNode(),void 0),n&&!n.isMoreRecentThan(node)&&(node._isLoaded=n._isLoaded,n.replaceBy(node,"override"),setSelectedAfterUpdate&&this.getContextNode()===n.getParent()&&this.setSelectedNodes([n],{}))}},PydioDataModel.prototype.setPendingSelection=function(selection){this._pendingSelection=selection},PydioDataModel.prototype.getPendingSelection=function(){return this._pendingSelection},PydioDataModel.prototype.clearPendingSelection=function(){this._pendingSelection=null},PydioDataModel.prototype.setSelectedNodes=function(ajxpDataNodes,source){if(this._selectedNodes.length===ajxpDataNodes.length){if(0===ajxpDataNodes.length)return;for(var equal=!0,k=0;k1},PydioDataModel.prototype.hasMime=function(mimeTypes){if(1===mimeTypes.length&&"*"===mimeTypes[0])return!0;var has=!1;return mimeTypes.map(function(mime){if(!has)for(var i=0;i0?url+="&lang="+lang:url+="?lang="+lang}window.fetch(url,{method:"GET",credentials:"same-origin",headers:headers}).then(function(response){_this._globalLoading=!1,response.text().then(function(text){_this._registry=_utilXMLUtils2.default.parseXml(text).documentElement,completeFunc?completeFunc(_this._registry):_this._pydioObject.fire("registry_loaded",_this._registry)})}).catch(function(e){_this._globalLoading=!1})}))},Registry.prototype.refreshXmlRegistryPart=function(documentElement){var xPath=documentElement.getAttribute("xPath"),existingNode=_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,xPath),parentNode=void 0;if(existingNode&&existingNode.parentNode)parentNode=existingNode.parentNode,parentNode.removeChild(existingNode),documentElement.firstChild&&parentNode.appendChild(documentElement.firstChild.cloneNode(!0));else if(xPath.indexOf("/")>-1){var parentPath=xPath.substring(0,xPath.lastIndexOf("/"));parentNode=_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,parentPath),parentNode&&documentElement.firstChild&&parentNode.appendChild(documentElement.firstChild.cloneNode(!0))}else documentElement.firstChild&&this._registry.appendChild(documentElement.firstChild.cloneNode(!0));this._pydioObject.fire("registry_part_loaded",xPath)},Registry.prototype.parseUser=function(){var user=null,userNode=void 0;if(this._registry&&(userNode=_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,"user")),userNode){var userId=userNode.getAttribute("id"),children=userNode.childNodes;userId&&(user=new _User2.default(userId,children,this._pydioObject))}return user},Registry.prototype.getXML=function(){return this._registry},Registry.prototype.initExtension=function initExtension(xmlNode,extensionDefinition){var activeCondition=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/activeCondition");if(activeCondition&&activeCondition.firstChild)try{var func=new Function(activeCondition.firstChild.nodeValue.trim());if(!1===func())return!1}catch(e){}if("editor"===xmlNode.nodeName)Object.assign(extensionDefinition,{openable:"true"===xmlNode.getAttribute("openable"),modalOnly:"true"===xmlNode.getAttribute("modalOnly"),previewProvider:"true"===xmlNode.getAttribute("previewProvider"),order:xmlNode.getAttribute("order")?parseInt(xmlNode.getAttribute("order")):0,formId:xmlNode.getAttribute("formId")||null,text:this._pydioObject.MessageHash[xmlNode.getAttribute("text")],title:this._pydioObject.MessageHash[xmlNode.getAttribute("title")],icon:xmlNode.getAttribute("icon"),icon_class:xmlNode.getAttribute("iconClass"),editorActions:xmlNode.getAttribute("actions"),editorClass:xmlNode.getAttribute("className"),mimes:xmlNode.getAttribute("mimes").split(","),write:!(!xmlNode.getAttribute("write")||"true"!==xmlNode.getAttribute("write")),canWrite:!(!xmlNode.getAttribute("canWrite")||"true"!==xmlNode.getAttribute("canWrite"))});else if("uploader"===xmlNode.nodeName){var th=this._pydioObject.Parameters.get("theme"),clientForm=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,'processing/clientForm[@theme="'+th+'"]');clientForm||(clientForm=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/clientForm")),clientForm&&clientForm.getAttribute("module")&&(extensionDefinition.moduleName=clientForm.getAttribute("module")),xmlNode.getAttribute("order")?extensionDefinition.order=parseInt(xmlNode.getAttribute("order")):extensionDefinition.order=0;var extensionOnInit=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/extensionOnInit");if(extensionOnInit&&extensionOnInit.firstChild)try{eval(extensionOnInit.firstChild.nodeValue)}catch(e){_langLogger2.default.error("Ignoring Error in extensionOnInit code:"),_langLogger2.default.error(extensionOnInit.firstChild.nodeValue),_langLogger2.default.error(e.message)}var dialogOnOpen=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/dialogOnOpen");dialogOnOpen&&dialogOnOpen.firstChild&&(extensionDefinition.dialogOnOpen=dialogOnOpen.firstChild.nodeValue);var dialogOnComplete=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/dialogOnComplete");dialogOnComplete&&dialogOnComplete.firstChild&&(extensionDefinition.dialogOnComplete=dialogOnComplete.firstChild.nodeValue)}return!0},Registry.prototype.refreshExtensionsRegistry=function(){this._extensionsRegistry={editor:[],uploader:[]};for(var extensions=_utilXMLUtils2.default.XPathSelectNodes(this._registry,"plugins/editor|plugins/uploader"),i=0;i1&&(editors=editors.sort(function(a,b){return(a.order||0)-(b.order||0)})),editors},Registry.prototype.loadEditorResources=function(resourcesManager,callback){resourcesManager.load(this._resourcesRegistry,!1,callback)},Registry.prototype.getPluginConfigs=function(pluginQuery){var xpath='plugins/*[@id="core.'+pluginQuery+'"]/plugin_configs/property | plugins/*[@id="'+pluginQuery+'"]/plugin_configs/property';-1===pluginQuery.indexOf(".")&&(xpath="plugins/"+pluginQuery+"/plugin_configs/property |"+xpath);var properties=_utilXMLUtils2.default.XPathSelectNodes(this._registry,xpath),configs=new Map;return properties.forEach(function(propNode){configs.set(propNode.getAttribute("name"),JSON.parse(propNode.firstChild.nodeValue))}),configs},Registry.prototype.getDefaultImageFromParameters=function(pluginId,paramName){var node=_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,"plugins/*[@id='"+pluginId+"']/server_settings/global_param[@name='"+paramName+"']");return node?node.getAttribute("defaultImage")||"":""},Registry.prototype.hasPluginOfType=function(type,name){ +var silentClear=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];this._isLoaded=!1,this._children.forEach(function(child,key){silentClear||child.notify("node_removed"),child._parentNode=null,this._children.delete(key),silentClear||this.notify("child_removed",child)},this),this.load(iAjxpNodeProvider)},AjxpNode.prototype.clear=function(){this._children.forEach(function(child,key){child.notify("node_removed"),child._parentNode=null,this._children.delete(key),this.notify("child_removed",child)},this),this._isLoaded=!1,this.notify("force_clear")},AjxpNode.prototype.setRoot=function(){this._isRoot=!0},AjxpNode.prototype.setChildren=function(ajxpNodes){this._children=new Map,ajxpNodes.forEach(function(value){this._children.set(value.getPath(),value),value.setParent(this)}.bind(this))},AjxpNode.prototype.getChildren=function(){return this._children},AjxpNode.prototype.getFirstChildIfExists=function(){return this._children.size?this._children.values().next().value:null},AjxpNode.prototype.isMoreRecentThan=function(otherNode){return otherNode.getMetadata().get("ajxp_im_time")&&this.getMetadata().get("ajxp_im_time")&&parseInt(this.getMetadata().get("ajxp_im_time"))>=parseInt(otherNode.getMetadata().get("ajxp_im_time"))},AjxpNode.prototype.addChild=function(ajxpNode){ajxpNode.setParent(this),this._iNodeProvider&&(ajxpNode._iNodeProvider=this._iNodeProvider);var existingNode=this.findChildByPath(ajxpNode.getPath());return!existingNode||existingNode instanceof String?(this._children.set(ajxpNode.getPath(),ajxpNode),this.notify("child_added",ajxpNode.getPath()),ajxpNode):!existingNode.isMoreRecentThan(ajxpNode)&&(existingNode.replaceBy(ajxpNode,"override"),existingNode)},AjxpNode.prototype.removeChild=function(ajxpNode){var removePath=ajxpNode.getPath();ajxpNode.notify("node_removed"),ajxpNode._parentNode=null,this._children.delete(ajxpNode.getPath()),this.notify("child_removed",removePath)},AjxpNode.prototype.replaceMetadata=function(newMeta){this._metadata=newMeta,this.notify("meta_replaced",this)},AjxpNode.prototype.replaceBy=function(ajxpNode,metaMerge){this._isLeaf=ajxpNode._isLeaf;var pathChanged=!1;if(ajxpNode.getPath()&&this._path!=ajxpNode.getPath()){var originalPath=this._path;if(this.getParent()){var parentChildrenIndex=this.getParent()._children;parentChildrenIndex.set(ajxpNode.getPath(),this),parentChildrenIndex.delete(originalPath)}this._path=ajxpNode.getPath(),pathChanged=!0}ajxpNode._label&&(this._label=ajxpNode._label),ajxpNode._icon&&(this._icon=ajxpNode._icon),ajxpNode._iNodeProvider&&(this._iNodeProvider=ajxpNode._iNodeProvider),this._isLoaded=ajxpNode._isLoaded,this.fake=ajxpNode.fake;var meta=ajxpNode.getMetadata();if("override"==metaMerge&&(this._metadata=new Map),meta.forEach(function(value,key){if("override"==metaMerge)this._metadata.set(key,value);else{if(this._metadata.has(key)&&""===value)return;this._metadata.set(key,value)}}.bind(this)),pathChanged&&!this._isLeaf&&this.getChildren().size)return void window.setTimeout(function(){this.reload(this._iNodeProvider)}.bind(this),100);ajxpNode.getChildren().forEach(function(child){this.addChild(child)}.bind(this)),this.notify("node_replaced",this)},AjxpNode.prototype.findChildByPath=function(path){return this._children.get(path)},AjxpNode.prototype.setMetadata=function(data){this._metadata=data},AjxpNode.prototype.getMetadata=function(){return this._metadata},AjxpNode.prototype.isLeaf=function(){return this._isLeaf},AjxpNode.prototype.isBrowsable=function(){return!this._isLeaf||"ajxp_browsable_archive"===this.getAjxpMime()},AjxpNode.prototype.getPath=function(){return this._path},AjxpNode.prototype.getLabel=function(){return this._label||""},AjxpNode.prototype.setLabel=function(l){this._label=l},AjxpNode.prototype.getIcon=function(){return this._icon},AjxpNode.prototype.isRecycle=function(){return"ajxp_recycle"===this.getAjxpMime()},AjxpNode.prototype.getSvgSource=function(){return this.getMetadata().get("fonticon")},AjxpNode.prototype.hasAjxpMimeInBranch=function(ajxpMime){if(this.getAjxpMime()===ajxpMime.toLowerCase())return!0;for(var parent=void 0,crt=this;parent=crt._parentNode;){if(parent.getAjxpMime()===ajxpMime.toLowerCase())return!0;crt=parent}return!1},AjxpNode.prototype.hasMetadataInBranch=function(metadataKey,metadataValue){if(this.getMetadata().has(metadataKey))return!metadataValue||this.getMetadata().get(metadataKey)===metadataValue;for(var parent=void 0,crt=this;parent=crt._parentNode;){if(parent.getMetadata().has(metadataKey))return!metadataValue||parent.getMetadata().get(metadataKey)===metadataValue;crt=parent}return!1},AjxpNode.prototype.setParent=function(parentNode){this._parentNode=parentNode},AjxpNode.prototype.getParent=function(){return this._parentNode},AjxpNode.prototype.findInArbo=function(rootNode,fakeNodes){if(this.getPath()){for(var pathParts=this.getPath().split("/"),crtPath="",crtNode=void 0,crtParentNode=rootNode,i=0;i0||deletedNodes.length>0},CellModel.prototype.setLabel=function(roomLabel){this.cell.Label=roomLabel,this.notifyDirty()},CellModel.prototype.getLabel=function(){return this.cell.Label},CellModel.prototype.getDescription=function(){return this.cell.Description},CellModel.prototype.getUuid=function(){return this.cell.Uuid},CellModel.prototype.setDescription=function(description){this.cell.Description=description,this.notifyDirty()},CellModel.prototype.clone=function(room){return _httpGenIndex.RestCell.constructFromObject(JSON.parse(JSON.stringify(room)))},CellModel.prototype.save=function(){var _this4=this;if(!this.cell.RootNodes.length&&this.cell.Uuid)return this.deleteCell("This cell has no more items in it, it will be deleted, are you sure?");var api=new _httpGenIndex.ShareServiceApi(_httpPydioApi2.default.getRestClient()),request=new _httpGenIndex.RestPutCellRequest;return this._edit||this.cell.RootNodes.length||(request.CreateEmptyRoot=!0),this.cell.RootNodes.map(function(node){node.MetaStore&&node.MetaStore.selection&&delete node.MetaStore.selection}),request.Room=this.cell,api.putCell(request).then(function(response){if(!response||!response.Uuid)throw new Error("Error while saving cell");_this4._edit?(_this4.cell=response,_this4.dirty=!1,_this4.originalCell=_this4.clone(_this4.cell),_this4.notify("update")):_pydio2.default.getInstance().observeOnce("repository_list_refreshed",function(){_pydio2.default.getInstance().triggerRepositoryChange(response.Uuid)})})},CellModel.prototype.load=function(cellId){var _this5=this;return new _httpGenIndex.ShareServiceApi(_httpPydioApi2.default.getRestClient()).getCell(cellId).then(function(room){_this5.cell=room,_this5.cell.RootNodes||(_this5.cell.RootNodes=[]),_this5.cell.ACLs||(_this5.cell.ACLs={}),_this5.cell.Policies||(_this5.cell.Policies=[]),_this5.cell.Description||(_this5.cell.Description=""),_this5._edit=!0,_this5.originalCell=_this5.clone(_this5.cell),_this5.notify("update")})},CellModel.prototype.deleteCell=function(){var _this6=this,confirmMessage=arguments.length<=0||void 0===arguments[0]?"":arguments[0];if(confirmMessage||(confirmMessage="Are you sure you want to delete this cell? This cannot be undone."),confirm(confirmMessage)){var _ret=function(){var api=new _httpGenIndex.ShareServiceApi(_httpPydioApi2.default.getRestClient()),pydio=_pydio2.default.getInstance();if(pydio.user.activeRepository!==_this6.cell.Uuid)return{v:api.deleteCell(_this6.cell.Uuid).then(function(res){})};!function(){var switchToOther=void 0;pydio.user.getRepositoriesList().forEach(function(v,k){k===_this6.cell.Uuid||switchToOther&&"gateway"!==v.getAccessType()||(switchToOther=k)}),switchToOther&&pydio.triggerRepositoryChange(switchToOther,function(){api.deleteCell(_this6.cell.Uuid).then(function(res){})})}()}();if("object"==typeof _ret)return _ret.v}return Promise.resolve({})},CellModel}(_langObservable2.default);exports.default=CellModel,module.exports=exports.default},{"../http/PydioApi":515,"../http/gen/index":543,"../lang/Observable":751,"../util/PathUtils":767,"./IdmObjectHelper":757,pydio:"pydio"}],755:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),_langLogger=require("../lang/Logger"),_httpPydioApi=(_interopRequireDefault(_langLogger),require("../http/PydioApi")),_utilXMLUtils=(_interopRequireDefault(_httpPydioApi),require("../util/XMLUtils")),_utilXMLUtils2=_interopRequireDefault(_utilXMLUtils),_Action=require("./Action"),_Action2=_interopRequireDefault(_Action),Controller=function(_Observable){_inherits(Controller,_Observable);function Controller(pydioObject){var dataModelElementId=arguments.length<=1||void 0===arguments[1]?null:arguments[1];if(_classCallCheck(this,Controller),_Observable.call(this),this._pydioObject=pydioObject,this._registeredKeys=new Map,this.usersEnabled=pydioObject.Parameters.get("usersEnabled"),this.subMenus=[],this.actions=new Map,this.defaultActions=new Map,this.toolbars=new Map,this._guiActions=new Map,this.contextChangedObs=function(event){window.setTimeout(function(){this.fireContextChange()}.bind(this),0)}.bind(this),this.selectionChangedObs=function(event){window.setTimeout(function(){this.fireSelectionChange()}.bind(this),0)}.bind(this),dataModelElementId){this.localDataModel=!0;try{this._dataModel=document.getElementById(dataModelElementId).ajxpPaneObject.getDataModel()}catch(e){}this._dataModel?this._connectDataModel():this._pydioObject.observeOnce("datamodel-loaded-"+dataModelElementId,function(){this._dataModel=document.getElementById(dataModelElementId).ajxpPaneObject.getDataModel(),this._connectDataModel()}.bind(this))}else this.localDataModel=!1,this._connectDataModel();this.usersEnabled&&(this._pydioObject.observe("user_logged",function(user){this.setUser(user)}.bind(this)),this._pydioObject.user&&this.setUser(this._pydioObject.user))}return Controller.prototype.getPydio=function(){return this._pydioObject},Controller.prototype.publishActionEvent=function(eventName,data){this._pydioObject.fire(eventName,data)},Controller.prototype._connectDataModel=function(){this.localDataModel?(this._dataModel.observe("context_changed",this.contextChangedObs),this._dataModel.observe("selection_changed",this.selectionChangedObs),this.loadActionsFromRegistry(),this._pydioObject.observe("registry_loaded",function(registry){this.loadActionsFromRegistry(registry)}.bind(this))):(this._pydioObject.observe("context_changed",this.contextChangedObs),this._pydioObject.observe("selection_changed",this.selectionChangedObs),this._dataModel=this._pydioObject.getContextHolder())},Controller.prototype.updateGuiActions=function(actions){actions.forEach(function(v,k){this._guiActions.has(k)||(this._guiActions.set(k,v),this.registerAction(v))}.bind(this)),this.notify("actions_refreshed")},Controller.prototype.deleteFromGuiActions=function(actionName){this._guiActions.delete(actionName),this.actions.has(actionName)&&this.actions.delete(actionName),this.notify("actions_refreshed")},Controller.prototype.refreshGuiActionsI18n=function(){this._guiActions.forEach(function(value,key){value.refreshFromI18NHash()})},Controller.prototype.getDataModel=function(){return this._dataModel},Controller.prototype.destroy=function(){this.localDataModel&&this._dataModel&&(this._dataModel.stopObserving("context_changed",this.contextChangedObs),this._dataModel.stopObserving("selection_changed",this.selectionChangedObs))},Controller.prototype.getMessage=function(messageId){try{return this._pydioObject.MessageHash[messageId]}catch(e){return messageId}},Controller.prototype.setUser=function(oUser){this.oUser=oUser,null==oUser||"guest"===oUser.id||null==oUser.getPreference("lang")||""===oUser.getPreference("lang")||oUser.getPreference("lang")===this._pydioObject.currentLanguage||oUser.lock||this._pydioObject.loadI18NMessages(oUser.getPreference("lang"),!1)},Controller.prototype.getContextActions=function(actionsSelectorAtt,ignoreGroups,onlyGroups){var contextActions=[],defaultGroup=void 0,contextActionsGroup=new Map;this.actions.forEach(function(action){if((action.context.contextMenu||onlyGroups&&onlyGroups.length)&&("selectionContext"!=actionsSelectorAtt||action.context.selection)&&("directoryContext"!=actionsSelectorAtt||action.context.dir)&&!("genericContext"==actionsSelectorAtt&&action.context.selection||action.contextHidden||action.deny)){action.context.actionBarGroup.split(",").forEach(function(barGroup){contextActionsGroup.has(barGroup)||contextActionsGroup.set(barGroup,[])});var isDefault=!1;if("selectionContext"==actionsSelectorAtt){var userSelection=this._dataModel;if(!userSelection.isEmpty()){var defaultAction="file";userSelection.isUnique()&&(userSelection.hasDir()||userSelection.hasMime(["ajxp_browsable_archive"]))&&(defaultAction="dir"),this.defaultActions.get(defaultAction)&&action.options.name==this.defaultActions.get(defaultAction)&&(isDefault=!0)}}action.context.actionBarGroup.split(",").forEach(function(barGroup){var menuItem=action.getMenuData();menuItem.isDefault=isDefault,contextActionsGroup.get(barGroup).push(menuItem),isDefault&&(defaultGroup=barGroup)})}}.bind(this));var first=!0,keys=[];contextActionsGroup=this._sortToolbarsActions(contextActionsGroup),contextActionsGroup.forEach(function(v,k){defaultGroup&&k==defaultGroup||keys.push(k)}),keys.sort(),defaultGroup&&contextActionsGroup.has(defaultGroup)&&keys.unshift(defaultGroup);var actionsPushed={};return keys.map(function(key){var value=contextActionsGroup.get(key);first||contextActions.push({separator:!0}),ignoreGroups&&-1!==ignoreGroups.indexOf(key)||onlyGroups&&-1===onlyGroups.indexOf(key)||(first=!1,value.forEach(function(mItem){var actionId=mItem.action_id;actionsPushed[actionId]||(contextActions.push(mItem),actionsPushed[actionId]=!0)}))}),contextActions},Controller.prototype.getToolbarsActions=function(){var _this=this,toolbarsList=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],groupOtherList=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],toolbars=new Map,groupOtherBars=new Map,lastTbarAdded=void 0;return this.actions.forEach(function(action){action.context.actionBar&&action.context.actionBarGroup.split(",").map(function(barGroup){if(-1!==toolbarsList.indexOf(barGroup)||-1!==groupOtherList.indexOf(barGroup)){var tBarUpdate=-1!==toolbarsList.indexOf(barGroup)?toolbars:groupOtherBars;null==tBarUpdate.get(barGroup)&&tBarUpdate.set(barGroup,[]),tBarUpdate.get(barGroup).push(action),tBarUpdate===toolbars&&(lastTbarAdded=barGroup)}}.bind(this))}.bind(this)),groupOtherList.length&&function(){var submenuItems=[];groupOtherList.map(function(otherToolbar){var otherActions=groupOtherBars.get(otherToolbar);otherActions&&(otherActions.map(function(act){submenuItems.push({actionId:act})}),groupOtherList.indexOf(otherToolbar)wB?1:-1})}),toolbars},Controller}(_langObservable2.default);exports.default=Controller,module.exports=exports.default},{"../http/PydioApi":515,"../lang/Logger":750,"../lang/Observable":751,"../util/XMLUtils":768,"./Action":752}],756:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),EmptyNodeProvider=function(_Observable){_inherits(EmptyNodeProvider,_Observable);function EmptyNodeProvider(){_classCallCheck(this,EmptyNodeProvider),_Observable.call(this)}return EmptyNodeProvider.prototype.initProvider=function(properties){this.properties=properties},EmptyNodeProvider.prototype.loadNode=function(node,nodeCallback,childCallback){},EmptyNodeProvider.prototype.loadLeafNodeSync=function(node,callback){},EmptyNodeProvider}(_langObservable2.default);exports.default=EmptyNodeProvider,module.exports=exports.default},{"../lang/Observable":751}],757:[function(require,module,exports){"use strict";exports.__esModule=!0;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var IdmObjectHelper=function(){function IdmObjectHelper(){_classCallCheck(this,IdmObjectHelper)}return IdmObjectHelper.extractLabel=function(pydio,acl){return acl.User?acl.User.Login===pydio.user.id?pydio.MessageHash[634]:acl.User.Attributes&&acl.User.Attributes.displayName?acl.User.Attributes.displayName:acl.User.Login:acl.Group?"ROOT_GROUP"===acl.Group.Uuid?pydio.MessageHash["634c"]:acl.Group.GroupLabel?pydio.MessageHash[289]+" "+acl.Group.GroupLabel:acl.Group.Uuid:acl.Role?acl.Role.Label:""},IdmObjectHelper.extractLabelFromIdmObject=function(idmObject){return idmObject.Login?idmObject.Attributes&&idmObject.Attributes.displayName||idmObject.Login:idmObject.GroupPath?"ROOT_GROUP"===idmObject.Uuid?pydio.MessageHash["634c"]:idmObject.GroupLabel||"Group "+idmObject.GroupPath:idmObject.Label?idmObject.Label:idmObject.Uuid},IdmObjectHelper}();exports.default=IdmObjectHelper,module.exports=exports.default},{}],758:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _httpMetaCacheService=require("../http/MetaCacheService"),_httpMetaCacheService2=_interopRequireDefault(_httpMetaCacheService),_httpPydioApi=require("../http/PydioApi"),_httpPydioApi2=_interopRequireDefault(_httpPydioApi),_utilPathUtils=require("../util/PathUtils"),_utilPathUtils2=_interopRequireDefault(_utilPathUtils),_pydio=require("pydio"),_pydio2=_interopRequireDefault(_pydio),_AjxpNode=require("./AjxpNode"),_AjxpNode2=_interopRequireDefault(_AjxpNode),_httpGenApiMetaServiceApi=require("../http/gen/api/MetaServiceApi"),_httpGenApiMetaServiceApi2=_interopRequireDefault(_httpGenApiMetaServiceApi),_httpGenModelRestGetBulkMetaRequest=require("../http/gen/model/RestGetBulkMetaRequest"),_httpGenModelRestGetBulkMetaRequest2=_interopRequireDefault(_httpGenModelRestGetBulkMetaRequest),MetaNodeProvider=function(){function MetaNodeProvider(){var properties=arguments.length<=0||void 0===arguments[0]?null:arguments[0];_classCallCheck(this,MetaNodeProvider),this.discrete=!1,this.properties=new Map,properties&&this.initProvider(properties)}return MetaNodeProvider.prototype.initProvider=function(properties){this.properties=new Map;for(var p in properties)properties.hasOwnProperty(p)&&this.properties.set(p,properties[p]);this.properties&&this.properties.has("connexion_discrete")&&(this.discrete=!0,this.properties.delete("connexion_discrete")),this.properties&&this.properties.has("cache_service")&&(this.cacheService=this.properties.get("cache_service"),this.properties.delete("cache_service"),_httpMetaCacheService2.default.getInstance().registerMetaStream(this.cacheService.metaStreamName,this.cacheService.expirationPolicy))},MetaNodeProvider.prototype.loadNode=function(node){var nodeCallback=arguments.length<=1||void 0===arguments[1]?null:arguments[1],childCallback=arguments.length<=2||void 0===arguments[2]?null:arguments[2],_this=(!(arguments.length<=3||void 0===arguments[3])&&arguments[3],this),pydio=(arguments.length<=4||void 0===arguments[4]||arguments[4],arguments.length<=5||void 0===arguments[5]||arguments[5],_pydio2.default.getInstance()),api=new _httpGenApiMetaServiceApi2.default(_httpPydioApi2.default.getRestClient()),request=new _httpGenModelRestGetBulkMetaRequest2.default,slug="";if(pydio.user)if(this.properties.has("tmp_repository_id")){var repos=pydio.user.getRepositoriesList();slug=repos.get(this.properties.get("tmp_repository_id")).getSlug() +}else slug=pydio.user.getActiveRepositoryObject().getSlug();var inputPagination=node.getMetadata().get("paginationData");inputPagination?(request.Offset=(inputPagination.get("current")-1)*inputPagination.get("size"),request.Limit=inputPagination.get("size")):request.Limit=pydio.getPluginConfigs("access.gateway").get("LIST_NODES_PER_PAGE")||200,request.NodePaths=[slug+node.getPath(),slug+node.getPath()+"/*"],this.properties.has("versions")&&(request.Versions=!0,request.NodePaths=[slug+this.properties.get("file")]),_pydio2.default.startLoading(),api.getBulkMeta(request).then(function(res){_pydio2.default.endLoading();var origNode=void 0,childrenNodes=[];if(res.Nodes.map(function(n){var newNode=void 0;try{newNode=MetaNodeProvider.parseTreeNode(n,slug)}catch(e){return void console.error(e)}".pydio"!==newNode.getLabel()&&(newNode.getPath()===node.getPath()?origNode=newNode:(childCallback&&childCallback(newNode),childrenNodes.push(newNode)))}),void 0!==origNode){if(res.Pagination){var paginationData=new Map;paginationData.set("current",res.Pagination.CurrentPage),paginationData.set("total",res.Pagination.TotalPages),paginationData.set("size",res.Pagination.Limit),origNode.getMetadata().set("paginationData",paginationData)}node.replaceBy(origNode)}_this.properties.has("versions")&&(childrenNodes=childrenNodes.map(function(child){return child._path=child.getMetadata().get("versionId"),child})),node.setChildren(childrenNodes),null!==nodeCallback&&nodeCallback(node)}).catch(function(e){_pydio2.default.endLoading(),console.log(e)})},MetaNodeProvider.prototype.loadLeafNodeSync=function(node,nodeCallback){var api=(!(arguments.length<=2||void 0===arguments[2])&&arguments[2],arguments.length<=3||void 0===arguments[3]||arguments[3],new _httpGenApiMetaServiceApi2.default(_httpPydioApi2.default.getRestClient())),request=new _httpGenModelRestGetBulkMetaRequest2.default,slug="",path=node.getPath(),pydio=_pydio2.default.getInstance();if(pydio.user)if(node.getMetadata().has("repository_id")){var repoId=node.getMetadata().get("repository_id"),repo=pydio.user.getRepositoriesList().get(repoId);repo&&(slug=repo.getSlug())}else slug=pydio.user.getActiveRepositoryObject().getSlug();path&&"/"!==path[0]&&(path="/"+path),request.NodePaths=[slug+path],api.getBulkMeta(request).then(function(res){res.Nodes&&res.Nodes.length&&nodeCallback(MetaNodeProvider.parseTreeNode(res.Nodes[0],slug))})},MetaNodeProvider.prototype.refreshNodeAndReplace=function(node,onComplete){var nodeCallback=function(newNode){node.replaceBy(newNode,"override"),onComplete&&onComplete(node)};this.loadLeafNodeSync(node,nodeCallback)},MetaNodeProvider.parseTreeNode=function(obj,workspaceSlug){var defaultSlug=arguments.length<=2||void 0===arguments[2]?"":arguments[2];if(!obj)return null;obj.MetaStore||(obj.MetaStore={});var pydio=_pydio2.default.getInstance(),nodeName=void 0;nodeName=obj.MetaStore.name?JSON.parse(obj.MetaStore.name):_utilPathUtils2.default.getBasename(obj.Path);var slug=workspaceSlug;if(!workspaceSlug&&obj.MetaStore.repository_id){var wsId=JSON.parse(obj.MetaStore.repository_id);pydio.user.getRepositoriesList().has(wsId)&&(slug=pydio.user.getRepositoriesList().get(wsId).getSlug())}slug||(slug=defaultSlug),slug&&(obj.Path=obj.Path.substr(slug.length+1));var node=new _AjxpNode2.default("/"+obj.Path,"LEAF"===obj.Type,nodeName,"",null),meta=obj.MetaStore;for(var k in meta)if(meta.hasOwnProperty(k)){var metaValue=JSON.parse(meta[k]);if(node.getMetadata().set(k,metaValue),"object"==typeof metaValue)for(var kSub in metaValue)metaValue.hasOwnProperty(kSub)&&node.getMetadata().set(kSub,metaValue[kSub])}if(node.getMetadata().set("filename",node.getPath()),"/recycle_bin"===node.getPath()&&(node.getMetadata().set("fonticon","delete"),node.getMetadata().set("mimestring_id","122"),node.getMetadata().set("ajxp_mime","ajxp_recycle"),pydio&&node.setLabel(pydio.MessageHash[122]),node.getMetadata().set("mimestring",pydio.MessageHash[122])),node.isLeaf()&&pydio&&pydio.Registry){var ext=_utilPathUtils2.default.getFileExtension(node.getPath()),registered=pydio.Registry.getFilesExtensions();if(registered.has(ext)){var _registered$get=registered.get(ext),messageId=_registered$get.messageId,fontIcon=_registered$get.fontIcon;node.getMetadata().set("fonticon",fontIcon),node.getMetadata().set("mimestring_id",messageId),pydio.MessageHash[messageId]&&node.getMetadata().set("mimestring",pydio.MessageHash[messageId])}}else node.isLeaf()||node.getMetadata().set("mimestring",pydio.MessageHash[8]);return void 0!==obj.Size&&node.getMetadata().set("bytesize",obj.Size),void 0!==obj.MTime&&node.getMetadata().set("ajxp_modiftime",obj.MTime),void 0!==obj.Etag&&node.getMetadata().set("etag",obj.Etag),void 0!==obj.Uuid&&node.getMetadata().set("uuid",obj.Uuid),MetaNodeProvider.overlays(node),node},MetaNodeProvider.overlays=function(node){var meta=node.getMetadata(),overlays=[];if(meta.has("workspaces_shares")){var wsRoot=meta.get("ws_root");meta.set("pydio_is_shared","true"),meta.set("pydio_shares",JSON.stringify(meta.get("workspaces_shares"))),wsRoot?node.isLeaf()||meta.set("fonticon","folder-star"):overlays.push("mdi mdi-share-variant")}if(meta.has("user_subscriptions")){var subs=meta.get("user_subscriptions"),read=subs.indexOf("read"),changes=subs.indexOf("change"),value="";read&&changes?value="META_WATCH_BOTH":read?value="META_WATCH_READ":changes&&(value="META_WATCH_CHANGES"),value&&(meta.set("meta_watched",value),overlays.push("mdi mdi-rss"))}if(meta.has("bookmark")&&(meta.set("ajxp_bookmarked","true"),overlays.push("mdi mdi-bookmark-outline")),meta.has("content_lock")){var lockUser=meta.get("content_lock");overlays.push("mdi mdi-lock-outline"),meta.set("sl_locked","true"),pydio&&pydio.user&&lockUser===pydio.user.id&&meta.set("sl_mylock","true")}overlays.length&&meta.set("overlay_class",overlays.join(",")),node.setMetadata(meta)},MetaNodeProvider}();exports.default=MetaNodeProvider,module.exports=exports.default},{"../http/MetaCacheService":514,"../http/PydioApi":515,"../http/gen/api/MetaServiceApi":531,"../http/gen/model/RestGetBulkMetaRequest":667,"../util/PathUtils":767,"./AjxpNode":753,pydio:"pydio"}],759:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _inherits(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}var _langObservable=require("../lang/Observable"),_langObservable2=_interopRequireDefault(_langObservable),_langLogger=require("../lang/Logger"),_langLogger2=_interopRequireDefault(_langLogger),_AjxpNode=require("./AjxpNode"),_AjxpNode2=_interopRequireDefault(_AjxpNode),_utilLangUtils=require("../util/LangUtils"),_utilLangUtils2=_interopRequireDefault(_utilLangUtils),_utilPathUtils=require("../util/PathUtils"),_utilPathUtils2=_interopRequireDefault(_utilPathUtils),_httpPydioApi=require("../http/PydioApi"),_modelMetaNodeProvider=(_interopRequireDefault(_httpPydioApi),require("../model/MetaNodeProvider")),_modelMetaNodeProvider2=_interopRequireDefault(_modelMetaNodeProvider),PydioDataModel=function(_Observable){_inherits(PydioDataModel,_Observable);function PydioDataModel(){var localEvents=arguments.length<=0||void 0===arguments[0]||arguments[0];_classCallCheck(this,PydioDataModel),_Observable.call(this),this._currentRep="/",this._selectedNodes=[],this._bEmpty=!0,this._globalEvents=!localEvents,this._bFile=!1,this._bDir=!1,this._isRecycle=!1,this._pendingSelection=null,this._selectionSource={},this._rootNode=null}return PydioDataModel.RemoteDataModelFactory=function(providerProperties){var rootLabel=arguments.length<=1||void 0===arguments[1]?"":arguments[1],dataModel=new PydioDataModel(!0),rNodeProvider=new _modelMetaNodeProvider2.default(providerProperties);dataModel.setAjxpNodeProvider(rNodeProvider);var rootNode=new _AjxpNode2.default("/",!1,rootLabel,"",rNodeProvider);return dataModel.setRootNode(rootNode),dataModel},PydioDataModel.prototype.setAjxpNodeProvider=function(iAjxpNodeProvider){this._iAjxpNodeProvider=iAjxpNodeProvider},PydioDataModel.prototype.getAjxpNodeProvider=function(){return this._iAjxpNodeProvider},PydioDataModel.prototype.requireContextChange=function(ajxpNode){var _this=this,forceReload=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];if(null!==ajxpNode){this.setSelectedNodes([]);var path=ajxpNode.getPath();""!==path&&"/"!==path||ajxpNode===this._rootNode||(ajxpNode=this._rootNode);var paginationPage=null;if(ajxpNode.getMetadata().has("paginationData")&&ajxpNode.getMetadata().get("paginationData").has("new_page")&&ajxpNode.getMetadata().get("paginationData").get("new_page")!==ajxpNode.getMetadata().get("paginationData").get("current")&&(paginationPage=ajxpNode.getMetadata().get("paginationData").get("new_page"),forceReload=!0),ajxpNode!=this._rootNode&&(!ajxpNode.getParent()||ajxpNode.fake)){var fakeNodes=[];if(ajxpNode=ajxpNode.findInArbo(this._rootNode,fakeNodes),fakeNodes.length){var _ret=function(){var firstFake=fakeNodes.shift();return firstFake.observeOnce("first_load",function(e){this.requireContextChange(ajxpNode)}.bind(_this)),firstFake.observeOnce("error",function(message){_langLogger2.default.error(message),firstFake.notify("node_removed");var parent=firstFake.getParent();parent.removeChild(firstFake),this.requireContextChange(parent)}.bind(_this)),_this.publish("context_loading"),firstFake.load(_this._iAjxpNodeProvider),{v:void 0}}();if("object"==typeof _ret)return _ret.v}}ajxpNode.observeOnce("loaded",function(){if(this.setContextNode(ajxpNode,!0),this.publish("context_loaded"),this.getPendingSelection()){var selPath=ajxpNode.getPath()+("/"==ajxpNode.getPath()?"":"/")+this.getPendingSelection(),selNode=ajxpNode.findChildByPath(selPath);if(selNode)this.setSelectedNodes([selNode],this);else if(ajxpNode.getMetadata().get("paginationData")&&arguments.length<3){var newPage=void 0,currentPage=ajxpNode.getMetadata().get("paginationData").get("current");if(this.loadPathInfoSync(selPath,function(foundNode){newPage=foundNode.getMetadata().get("page_position")},{page_position:"true"}),newPage&&newPage!==currentPage)return ajxpNode.getMetadata().get("paginationData").set("new_page",newPage),void this.requireContextChange(ajxpNode,!0,!0)}this.clearPendingSelection()}}.bind(this)),ajxpNode.observeOnce("error",function(message){_langLogger2.default.error(message),this.publish("context_loaded")}.bind(this)),this.publish("context_loading");try{forceReload?(paginationPage&&ajxpNode.getMetadata().get("paginationData").set("current",paginationPage),ajxpNode.reload(this._iAjxpNodeProvider,!0)):ajxpNode.load(this._iAjxpNodeProvider)}catch(e){this.publish("context_loaded")}}},PydioDataModel.prototype.requireNodeReload=function(nodeOrPath,completeCallback){nodeOrPath instanceof String&&(nodeOrPath=new _AjxpNode2.default(nodeOrPath));var onComplete=null;if(this._selectedNodes.length){var found=-1;this._selectedNodes.map(function(node,key){node.getPath()===nodeOrPath.getPath()&&(found=key)}),-1!==found&&(this._selectedNodes=_utilLangUtils2.default.arrayWithout(this._selectedNodes,found),this.publish("selection_changed",this),onComplete=function(newNode){this._selectedNodes.push(newNode),this._selectionSource={},this.publish("selection_changed",this),completeCallback&&completeCallback(newNode)}.bind(this))}this._iAjxpNodeProvider.refreshNodeAndReplace(nodeOrPath,onComplete)},PydioDataModel.prototype.loadPathInfoSync=function(path,callback){var additionalParameters=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];this._iAjxpNodeProvider.loadLeafNodeSync(new _AjxpNode2.default(path),callback,!1,additionalParameters)},PydioDataModel.prototype.loadPathInfoAsync=function(path,callback){this._iAjxpNodeProvider.loadLeafNodeSync(new _AjxpNode2.default(path),callback,!0)},PydioDataModel.prototype.setRootNode=function(ajxpRootNode){this._rootNode=ajxpRootNode,this._rootNode.setRoot(),this._rootNode.observe("child_added",function(c){}),this.publish("root_node_changed",this._rootNode),this.setContextNode(this._rootNode)},PydioDataModel.prototype.getRootNode=function(){return this._rootNode},PydioDataModel.prototype.setContextNode=function(ajxpDataNode,forceEvent){this._contextNode&&this._contextNode==ajxpDataNode&&this._currentRep==ajxpDataNode.getPath()&&!forceEvent||ajxpDataNode&&(this._contextNodeReplacedObserver&&this._contextNode&&this._contextNode.stopObserving("node_replaced",this._contextNodeReplacedObserver),this._contextNode=ajxpDataNode,this._currentRep=ajxpDataNode.getPath(),this.publish("context_changed",ajxpDataNode),this._contextNodeReplacedObserver||(this._contextNodeReplacedObserver=this.contextNodeReplaced.bind(this)),ajxpDataNode.observe("node_replaced",this._contextNodeReplacedObserver))},PydioDataModel.prototype.contextNodeReplaced=function(newNode){this.setContextNode(newNode,!0)},PydioDataModel.prototype.publish=function(eventName,optionalData){var args=[];this._globalEvents?(window.pydio?(args.push(eventName),optionalData&&args.push(optionalData),window.pydio.fire.apply(window.pydio,args)):document.fire&&(args.push("pydio:"+eventName),optionalData&&args.push(optionalData),document.fire.apply(document,args)),args=optionalData?[eventName,{memo:optionalData}]:[eventName],this.notify.apply(this,args)):(args=optionalData?[eventName,{memo:optionalData}]:[eventName],this.notify.apply(this,args))},PydioDataModel.prototype.getContextNode=function(){return this._contextNode},PydioDataModel.prototype.multipleNodesReload=function(nodes){for(var i=0;i=imTime)&&(n.getParent().removeChild(n),!0))},PydioDataModel.prototype.updateNode=function(node){var fake,n,setSelectedAfterUpdate=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],original=node.getMetadata().get("original_path");if(original&&original!==node.getPath()&&_utilPathUtils2.default.getDirname(original)!==_utilPathUtils2.default.getDirname(node.getPath())){fake=new _AjxpNode2.default(original),n=fake.findInArbo(this.getRootNode(),void 0),n&&n.getParent().removeChild(n);var parentFake=new _AjxpNode2.default(_utilPathUtils2.default.getDirname(node.getPath())),parent=parentFake.findInArbo(this.getRootNode(),void 0);parent||""!==_utilPathUtils2.default.getDirname(node.getPath())||(parent=this.getRootNode()),parent&&(node.getMetadata().set("original_path",void 0),parent.addChild(node))}else{if("/"===node.getMetadata().get("original_path")&&"/"===node.getPath())return n=this.getRootNode(),n.replaceMetadata(node.getMetadata()),void(setSelectedAfterUpdate&&this.getContextNode()===n&&this.setSelectedNodes([n],{}));fake=new _AjxpNode2.default(original),n=fake.findInArbo(this.getRootNode(),void 0),n&&!n.isMoreRecentThan(node)&&(node._isLoaded=n._isLoaded,n.replaceBy(node,"override"),setSelectedAfterUpdate&&this.getContextNode()===n.getParent()&&this.setSelectedNodes([n],{}))}},PydioDataModel.prototype.setPendingSelection=function(selection){this._pendingSelection=selection},PydioDataModel.prototype.getPendingSelection=function(){return this._pendingSelection},PydioDataModel.prototype.clearPendingSelection=function(){this._pendingSelection=null},PydioDataModel.prototype.setSelectedNodes=function(ajxpDataNodes,source){if(this._selectedNodes.length===ajxpDataNodes.length){if(0===ajxpDataNodes.length)return;for(var equal=!0,k=0;k1},PydioDataModel.prototype.hasMime=function(mimeTypes){if(1===mimeTypes.length&&"*"===mimeTypes[0])return!0;var has=!1;return mimeTypes.map(function(mime){if(!has)for(var i=0;i0?url+="&lang="+lang:url+="?lang="+lang}window.fetch(url,{method:"GET",credentials:"same-origin",headers:headers}).then(function(response){_this._globalLoading=!1,response.text().then(function(text){_this._registry=_utilXMLUtils2.default.parseXml(text).documentElement,completeFunc?completeFunc(_this._registry):_this._pydioObject.fire("registry_loaded",_this._registry)})}).catch(function(e){_this._globalLoading=!1})}))},Registry.prototype.refreshXmlRegistryPart=function(documentElement){var xPath=documentElement.getAttribute("xPath"),existingNode=_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,xPath),parentNode=void 0;if(existingNode&&existingNode.parentNode)parentNode=existingNode.parentNode,parentNode.removeChild(existingNode),documentElement.firstChild&&parentNode.appendChild(documentElement.firstChild.cloneNode(!0));else if(xPath.indexOf("/")>-1){var parentPath=xPath.substring(0,xPath.lastIndexOf("/"));parentNode=_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,parentPath),parentNode&&documentElement.firstChild&&parentNode.appendChild(documentElement.firstChild.cloneNode(!0))}else documentElement.firstChild&&this._registry.appendChild(documentElement.firstChild.cloneNode(!0));this._pydioObject.fire("registry_part_loaded",xPath)},Registry.prototype.parseUser=function(){var user=null,userNode=void 0;if(this._registry&&(userNode=_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,"user")),userNode){var userId=userNode.getAttribute("id"),children=userNode.childNodes;userId&&(user=new _User2.default(userId,children,this._pydioObject))}return user},Registry.prototype.getXML=function(){return this._registry},Registry.prototype.initExtension=function initExtension(xmlNode,extensionDefinition){var activeCondition=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/activeCondition");if(activeCondition&&activeCondition.firstChild)try{var func=new Function(activeCondition.firstChild.nodeValue.trim());if(!1===func())return!1}catch(e){}if("editor"===xmlNode.nodeName)Object.assign(extensionDefinition,{openable:"true"===xmlNode.getAttribute("openable"),modalOnly:"true"===xmlNode.getAttribute("modalOnly"),previewProvider:"true"===xmlNode.getAttribute("previewProvider"),order:xmlNode.getAttribute("order")?parseInt(xmlNode.getAttribute("order")):0,formId:xmlNode.getAttribute("formId")||null,text:this._pydioObject.MessageHash[xmlNode.getAttribute("text")],title:this._pydioObject.MessageHash[xmlNode.getAttribute("title")],icon:xmlNode.getAttribute("icon"),icon_class:xmlNode.getAttribute("iconClass"),editorActions:xmlNode.getAttribute("actions"),editorClass:xmlNode.getAttribute("className"),mimes:xmlNode.getAttribute("mimes").split(","),write:!(!xmlNode.getAttribute("write")||"true"!==xmlNode.getAttribute("write")),canWrite:!(!xmlNode.getAttribute("canWrite")||"true"!==xmlNode.getAttribute("canWrite"))});else if("uploader"===xmlNode.nodeName){var th=this._pydioObject.Parameters.get("theme"),clientForm=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,'processing/clientForm[@theme="'+th+'"]');clientForm||(clientForm=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/clientForm")),clientForm&&clientForm.getAttribute("module")&&(extensionDefinition.moduleName=clientForm.getAttribute("module")),xmlNode.getAttribute("order")?extensionDefinition.order=parseInt(xmlNode.getAttribute("order")):extensionDefinition.order=0;var extensionOnInit=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/extensionOnInit");if(extensionOnInit&&extensionOnInit.firstChild)try{eval(extensionOnInit.firstChild.nodeValue)}catch(e){_langLogger2.default.error("Ignoring Error in extensionOnInit code:"),_langLogger2.default.error(extensionOnInit.firstChild.nodeValue),_langLogger2.default.error(e.message)}var dialogOnOpen=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/dialogOnOpen");dialogOnOpen&&dialogOnOpen.firstChild&&(extensionDefinition.dialogOnOpen=dialogOnOpen.firstChild.nodeValue);var dialogOnComplete=_utilXMLUtils2.default.XPathSelectSingleNode(xmlNode,"processing/dialogOnComplete");dialogOnComplete&&dialogOnComplete.firstChild&&(extensionDefinition.dialogOnComplete=dialogOnComplete.firstChild.nodeValue)}return!0},Registry.prototype.refreshExtensionsRegistry=function(){this._extensionsRegistry={editor:[],uploader:[]};for(var extensions=_utilXMLUtils2.default.XPathSelectNodes(this._registry,"plugins/editor|plugins/uploader"),i=0;i1&&(editors=editors.sort(function(a,b){return(a.order||0)-(b.order||0)})),editors},Registry.prototype.loadEditorResources=function(resourcesManager,callback){resourcesManager.load(this._resourcesRegistry,!1,callback)},Registry.prototype.getPluginConfigs=function(pluginQuery){var xpath='plugins/*[@id="core.'+pluginQuery+'"]/plugin_configs/property | plugins/*[@id="'+pluginQuery+'"]/plugin_configs/property';-1===pluginQuery.indexOf(".")&&(xpath="plugins/"+pluginQuery+"/plugin_configs/property |"+xpath);var properties=_utilXMLUtils2.default.XPathSelectNodes(this._registry,xpath),configs=new Map;return properties.forEach(function(propNode){configs.set(propNode.getAttribute("name"),JSON.parse(propNode.firstChild.nodeValue))}),configs},Registry.prototype.getDefaultImageFromParameters=function(pluginId,paramName){var node=_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,"plugins/*[@id='"+pluginId+"']/server_settings/global_param[@name='"+paramName+"']");return node?node.getAttribute("defaultImage")||"":""},Registry.prototype.hasPluginOfType=function(type,name){ return void 0!==(null==name?_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,'plugins/plugin[contains(@id, "'+type+'.")] | plugins/'+type+"[@id]"):_utilXMLUtils2.default.XPathSelectSingleNode(this._registry,'plugins/plugin[@id="'+type+"."+name+'"] | plugins/'+type+'[@id="'+type+"."+name+'"]'))},Registry.prototype.getFilesExtensions=function(){var _this2=this;return this._fileExtensions?this._fileExtensions:(this._fileExtensions=new Map,_utilXMLUtils2.default.XPathSelectNodes(this._registry,"extensions/*").forEach(function(node){_this2._fileExtensions.set(node.getAttribute("mime"),{messageId:node.getAttribute("messageId"),fontIcon:node.getAttribute("font")})}),this._fileExtensions)},Registry}();exports.default=Registry,module.exports=exports.default},{"../http/PydioApi":515,"../http/ResourcesManager":517,"../lang/Logger":750,"../util/XMLUtils":768,"./User":762}],761:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _Pydio=require("../Pydio"),_Pydio2=_interopRequireDefault(_Pydio),_httpResourcesManager=require("../http/ResourcesManager"),_httpResourcesManager2=_interopRequireDefault(_httpResourcesManager),_CellModel=require("./CellModel"),_CellModel2=_interopRequireDefault(_CellModel),Repository=function(){function Repository(id,xmlDef){_classCallCheck(this,Repository),this.label="",this.id=id,this.accessType="",this.nodeProviderDef=void 0,this.allowCrossRepositoryCopy=!1,this.userEditable=!1,this.slug="",this.owner="",this.description="",this._hasContentFilter=!1,this._hasUserScope=!1,this._repositoryType="local",this._accessStatus=null,this._lastConnection=null,this.icon="",this.resourcesManager=new _httpResourcesManager2.default,this.loadedCell=null,xmlDef&&this.loadFromXml(xmlDef)}return Repository.isInternal=function(driverName){return"settings"===driverName||"homepage"===driverName},Repository.prototype.getId=function(){return this.id},Repository.prototype.getShareId=function(){return this.id.replace(/ocs_remote_share_/,"")},Repository.prototype.asCell=function(){var _this=this;if(!this.getOwner())return Promise.resolve(null);if(this.loadedCell)return Promise.resolve(this.loadedCell);var _ret=function(){var cell=new _CellModel2.default;return{v:new Promise(function(resolve,reject){cell.load(_this.getId()).then(function(res){_this.loadedCell=cell,resolve(cell)}).catch(function(reason){reject(reason)})})}}();return"object"==typeof _ret?_ret.v:void 0},Repository.prototype.getLabel=function(){return"homepage"===this.accessType?_Pydio2.default.getMessages()["user_home.title"]||"Homepage":"settings"===this.accessType?_Pydio2.default.getMessages()[165]||"Settings":this.label},Repository.prototype.setLabel=function(label){this.label=label},Repository.prototype.getLettersBadge=function(){return this.label?this.label.split(" ").map(function(word){return word.substr(0,1)}).slice(0,2).join(""):""},Repository.prototype.getDescription=function(){return this.description},Repository.prototype.getIcon=function(){return this.icon},Repository.prototype.setIcon=function(icon){this.icon=icon},Repository.prototype.getOwner=function(){return this.owner},Repository.prototype.getAccessType=function(){return this.accessType},Repository.prototype.setAccessType=function(access){this.accessType=access},Repository.prototype.loadResources=function(){this.resourcesManager.load(null,!0)},Repository.prototype.getNodeProviderDef=function(){return this.nodeProviderDef},Repository.prototype.setSlug=function(slug){this.slug=slug},Repository.prototype.getSlug=function(){return this.slug},Repository.prototype.getOverlay=function(){return this.getOwner()?_httpResourcesManager2.default.resolveImageSource("shared.png","overlays/ICON_SIZE",8):""},Repository.prototype.hasContentFilter=function(){return this._hasContentFilter},Repository.prototype.hasUserScope=function(){return this._hasUserScope},Repository.prototype.getRepositoryType=function(){return this._repositoryType},Repository.prototype.getAccessStatus=function(){return this._accessStatus},Repository.prototype.setAccessStatus=function(status){this._accessStatus=status},Repository.prototype.getLastConnection=function(){return this._lastConnection},Repository.prototype.loadFromXml=function(repoNode){repoNode.getAttribute("allowCrossRepositoryCopy")&&"true"==repoNode.getAttribute("allowCrossRepositoryCopy")&&(this.allowCrossRepositoryCopy=!0),repoNode.getAttribute("hasContentFilter")&&"true"==repoNode.getAttribute("hasContentFilter")&&(this._hasContentFilter=!0),repoNode.getAttribute("userScope")&&"true"==repoNode.getAttribute("userScope")&&(this._hasUserScope=!0),repoNode.getAttribute("repository_type")&&(this._repositoryType=repoNode.getAttribute("repository_type")),repoNode.getAttribute("access_status")&&(this._accessStatus=repoNode.getAttribute("access_status")),repoNode.getAttribute("last_connection")&&(this._lastConnection=repoNode.getAttribute("last_connection")),repoNode.getAttribute("user_editable_repository")&&"true"===repoNode.getAttribute("user_editable_repository")&&(this.userEditable=!0),repoNode.getAttribute("access_type")&&this.setAccessType(repoNode.getAttribute("access_type")),repoNode.getAttribute("repositorySlug")&&this.setSlug(repoNode.getAttribute("repositorySlug")),repoNode.getAttribute("owner")&&(this.owner=repoNode.getAttribute("owner"));for(var i=0;i=this._logoutTime)return this.removeWarningState(),this._state="active",this.stopIdlePoller(),this.stopServerLongPoller(),void setTimeout(function(){_this4._pydio.getController().fireDefaultAction("expire")},1e3);if(this._warningTime&&idleTime>=this._warningTime){var timerString=this.getWarningTimer(this._logoutTime-idleTime);this.setWarningState(timerString)}}},ActivityMonitor.prototype.exitIdleState=function(){this.removeWarningState(),this.updateLastActive(),this._state="active",this.startIdlePoller(5e3)},ActivityMonitor.prototype.setWarningState=function(warningTimerString){this._state="warning",this.startIdlePoller(1e3),this._pydio.notify("activity_state_change",{activeState:"warning",lastActiveSince:this._warningTime/60,timerString:warningTimerString})},ActivityMonitor.prototype.getWarningTimer=function(time){return Math.floor(time/60)+"mn"+time%60+"s"},ActivityMonitor.prototype.removeWarningState=function(){this._pydio.notify("activity_state_change",{activeState:"active"})},ActivityMonitor.prototype.getNow=function(){return Math.round((new Date).getTime()/1e3)},ActivityMonitor}(_langObservable2.default);exports.default=ActivityMonitor,module.exports=exports.default},{"../http/PydioApi":515,"../lang/Observable":751}],764:[function(require,module,exports){"use strict";exports.__esModule=!0;function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var FuncUtils=function(){function FuncUtils(){_classCallCheck(this,FuncUtils)}return FuncUtils.Empty=function(){},FuncUtils.Identity=function(object){return object},FuncUtils.executeFunctionByName=function(functionName,context){for(var args=Array.prototype.slice.call(arguments,2),namespaces=functionName.split("."),func=namespaces.pop(),i=0;i>18&63,h2=bits>>12&63,h3=bits>>6&63,h4=63&bits,tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4)}while(i127&&c1<2048?String.fromCharCode(c1>>6|192)+String.fromCharCode(63&c1|128):String.fromCharCode(c1>>12|224)+String.fromCharCode(c1>>6&63|128)+String.fromCharCode(63&c1|128),null!=enc&&(end>start&&(utftext+=string.substring(start,end)),utftext+=enc,start=end=n+1)}return end>start&&(utftext+=string.substring(start,string.length)),utftext},HasherUtils.md5_vm_test=function(){return"900150983cd24fb0d6963f7d28e17f72"==HasherUtils.hex_md5("abc")},HasherUtils.core_md5=function(x,len){x[len>>5]|=128<>>9<<4)]=len;for(var a=1732584193,b=-271733879,c=-1732584194,d=271733878,i=0;i16&&(bkey=HasherUtils.core_md5(bkey,key.length*HasherUtils.chrsz));for(var ipad=new Array(16),opad=new Array(16),i=0;i<16;i++)ipad[i]=909522486^bkey[i],opad[i]=1549556828^bkey[i];var hash=HasherUtils.core_md5(ipad.concat(HasherUtils.str2binl(data)),512+data.length*HasherUtils.chrsz);return HasherUtils.core_md5(opad.concat(hash),640)},HasherUtils.safe_add=function(x,y){var lsw=(65535&x)+(65535&y);return(x>>16)+(y>>16)+(lsw>>16)<<16|65535&lsw},HasherUtils.bit_rol=function(num,cnt){return num<>>32-cnt},HasherUtils.str2binl=function(str){for(var bin=[],mask=(1<>5]|=(str.charCodeAt(i/HasherUtils.chrsz)&mask)<>5]>>>i%32&mask);return str},HasherUtils.binl2hex=function(binarray){for(var hex_tab=HasherUtils.hexcase?"0123456789ABCDEF":"0123456789abcdef",str="",i=0;i<4*binarray.length;i++)str+=hex_tab.charAt(binarray[i>>2]>>i%4*8+4&15)+hex_tab.charAt(binarray[i>>2]>>i%4*8&15);return str},HasherUtils.binl2b64=function(binarray){for(var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",str="",i=0;i<4*binarray.length;i+=3)for(var triplet=(binarray[i>>2]>>i%4*8&255)<<16|(binarray[i+1>>2]>>(i+1)%4*8&255)<<8|binarray[i+2>>2]>>(i+2)%4*8&255,j=0;j<4;j++)8*i+6*j>32*binarray.length?str+=HasherUtils.b64pad:str+=tab.charAt(triplet>>6*(3-j)&63);return str},HasherUtils}();exports.default=HasherUtils,HasherUtils.hexcase=0,HasherUtils.b64pad="",HasherUtils.chrsz=8,module.exports=exports.default},{}],766:[function(require,module,exports){"use strict";exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i=array.length)return array;return 0==key?array.slice(1):key==array.length-1?array.slice(0,-1):array.slice(0,key).concat(array.slice(key+1))},LangUtils.objectMerge=function(obj1,obj2){return _extends({},obj1,obj2)},LangUtils.parseUrl=function(data){var matches=[],detect=/(pydio:\/)?\/?([^:\/\s]+)((\/\w+)*\/)(.*)(#[\w\-]+)?/g,results=data.match(detect);if(results&&results.length)for(var e=/^((pydio):\/)?\/?([^:\/\s]+)((\/\w+)*\/)(.*)(#[\w\-]+)?$/,i=0;ib[key]?1:a[key]b[key]()?1:a[key]()1?split[split.length-1].toLowerCase():""},PathUtils.roundFileSize=function(filesize){var messages=_Pydio2.default.getMessages(),sizeUnit=messages.byte_unit_symbol||"B";return filesize>=1073741824?Math.round(filesize/1073741824*100)/100+" G"+sizeUnit:filesize>=1048576?Math.round(filesize/1048576*100)/100+" M"+sizeUnit:filesize>=1024?Math.round(filesize/1024*100)/100+" K"+sizeUnit:filesize+" "+sizeUnit},PathUtils.formatModifDate=function(dateObject,format){var f=format;if(!format&&pydio&&pydio.MessageHash&&(f=_Pydio2.default.getMessages().date_format),!f)return"no format";f=f.replace("d",dateObject.getDate()<10?"0"+dateObject.getDate():dateObject.getDate()),f=f.replace("D",dateObject.getDay()),f=f.replace("Y",dateObject.getFullYear()),f=f.replace("y",dateObject.getYear());var month=dateObject.getMonth()+1;return f=f.replace("m",month<10?"0"+month:month),f=f.replace("H",(dateObject.getHours()<10?"0":"")+dateObject.getHours()),f=f.replace("h",dateObject.getHours()%12||12),f=f.replace("p",dateObject.getHours()<12?"am":"pm"),f=f.replace("P",dateObject.getHours()<12?"AM":"PM"),f=f.replace("i",(dateObject.getMinutes()<10?"0":"")+dateObject.getMinutes()),f=f.replace("s",(dateObject.getSeconds()<10?"0":"")+dateObject.getSeconds())},PathUtils}();exports.default=PathUtils,module.exports=exports.default},{"../Pydio":511}],768:[function(require,module,exports){"use strict";exports.__esModule=!0;function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}_interopRequireDefault(require("wicked-good-xpath")).default.install();var XMLUtils=function(){function XMLUtils(){_classCallCheck(this,XMLUtils)}return XMLUtils.XPathSelectSingleNode=function(element,query){try{if(element.selectSingleNode&&"function"==typeof element.selectSingleNode){var res=element.selectSingleNode(query);if(res)return res}}catch(e){}if(!XMLUtils.__xpe&&window.XPathEvaluator)try{XMLUtils.__xpe=new XPathEvaluator}catch(e){}if(!XMLUtils.__xpe){query=document.createExpression(query,null);var result=query.evaluate(element,7,null);return result.snapshotLength?result.snapshotItem(0):null}var xpe=XMLUtils.__xpe;try{return xpe.evaluate(query,element,xpe.createNSResolver(element),XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}catch(err){throw new Error("selectSingleNode: query: "+query+", element: "+element+", error: "+err)}},XMLUtils.XPathSelectNodes=function(element,query){try{if("function"==typeof element.selectNodes){try{element.ownerDocument&&element.ownerDocument.setProperty?element.ownerDocument.setProperty("SelectionLanguage","XPath"):element.setProperty&&element.setProperty("SelectionLanguage","XPath")}catch(e){}var res=Array.from(element.selectNodes(query));if(res)return res}}catch(e){}var xpe=XMLUtils.__xpe;if(!xpe&&window.XPathEvaluator)try{XMLUtils.__xpe=xpe=new XPathEvaluator}catch(e){}var result,i,nodes=[];if(!XMLUtils.__xpe){for(query=document.createExpression(query,null),result=query.evaluate(element,7,null),nodes=[],i=0;i-1)),_react2.default.createElement("span",{style:style.user},label,void 0!==online&&_react2.default.createElement("span",{className:"mdi mdi-checkbox-blank-circle"+(online?"":"-outline"),style:online?style.online:style.offline}),void 0===online&&_react2.default.createElement("span",{className:"mdi mdi-account-multiple-outline",style:style.offline}))});return _react2.default.createElement("div",{style:{padding:16,fontWeight:500,color:"#757575"}},users)},ChatUsers}(_react2.default.Component);exports.default=ChatUsers,module.exports=exports.default},{"pydio/model/idm-object-helper":"pydio/model/idm-object-helper",react:"react"}],773:[function(require,module,exports){"use strict";exports.__esModule=!0;var _extends=Object.assign||function(target){for(var i=1;i&X2HmmBmH-+u#N(vY1iC1%?|+ z5Vqzm*brb*U`PdPk%21#*6qh&N#Z*tyCU5Ryv;iv8lB39@NK}mdzor#IshO)su>!p zXk_Zz<{6@7$9RL?^a^`cQ7B;}65B#KaSBbNyMhf~yt%d+mDu4x-m}QD28^F?u0|dk ze?&-Mi;4zvkh~H3?7bjkGpew{f&6DtnIRlxej63-{o?1(RwJJo8)Oi0UMnZa+=z;% zR*?KGD%yBK^7E)*Sq7=!MAdsZuFfW_=Jh|Vn&+`$vFwEFo8;--B?c;-;v!lJg?U1HzT{mfFCDrwW>Z>y;e}zi! z%xPPZmZ50^SX}Jw;2%2&XZr^`uXcYqJ3iP&t&EXlmEoE0Aey74B_Eh>Lm{dM&lsMs zZMV`A40Wkwl3PKZ!gV)2BY#p!u;ecWhjSRl1!#V!o=RtM=itrO+nu*ZXZu?RTW=1f zt>GD+c2JSfuwIoIlY!4X*Q%m_$^xp@O4_&_-jJ<{b>CjFh`hY? z)9hLwm5i~kyGvl~K5ut|f%ebOpf}4TOOIcuwhWJCfk-G%BzHW4u{o(xSF7m9K@MoP zJRE1Jzd4Pr$I|3f9M@52f7rWai^mfo7&cDZq7;oZ8zK^UvtK%cecBq2+qW%Bwk71l zLHdvIPW8ly1#J+4Ne5kEh~XI6hD-Ml$qSbcr(ryQ73wvV)+PVK_XXkHUbmrWQ{=!O z^A2;83t_-zBERLR_>i#%CLem2*A|lGQiHSdE=P{GrJBI+qA3IaZ=t`B82nXthk}qocbGV%J7ARK5|aXwF8^}X=VokhKDl2E z;uB*zt6lZmW4?m73ZdVlsEYaJ3T=hJI11jTlbhlAeT`bE!Ir>(8%mB_LUt^;EzUPj zdoKV(HQY?6HBl5ah_3+#gi>}aRcDA*dQ(VSOM<=OaFj>2mlZMw6@MYL2FwcjXo3q) zZ=tr2LHg3#|IKTi+uCI|nNaKq76qcKrdOND^-wb%e4a*iXzXx33HafK{9}&r`KIZ6 zmnx>6Jl%MHijPPLbxAh&;LZF7h9=|5lXvY8?VOy*#nQQ+ zwkl`%>*13cg^5a@Ab)Bt_tNfgOa!fhUHBIlR~M3*rTA@T8&ydPgV>op2&17f;4C_pGX^k!JR#m(T}?Dn=fsB^FLc2! zN>B#S8MEZP1Tm5b8GE3Mat@{$H)%&)$kB!}M}NAgN>oF^%99)>4HuDolA@J`=tK9$ zQd&|~s0Y775ACrXnqz|I8+Z$#7nYiotTjl8aHT1PA{XMO(5fW=>KTxYMC2#kLO)>- zvkm-1Z1LuQYc~p{rC$3Q1C#(f1kwm2Z4t7$HNQs2I`k1H3lI9Kc1IHH3mU{ z$--iYDaXk5$SmwH@?(tFdzZ~Yi34I#8HLW(H;Mdpc2nm7+LQUX#~lC-YS7!tUrLjOn5%yi3IZaP-$?hOoG(2VUpEt%THoMr5vrG&k)! z%Dds+Q{E$l1-BFd0DxRaCX|wyQnw5W45?u(=9)e%tuHx_;eeQ7vnR6-$Jda5?_2wO zhev^d4$g+9W0OjHHZu;PT^8@K@_9A$y zO>CqL)()!DWA$Je{(A$Ii9EZ1A=EEKRA|0W?5&+TZOTlkrxW_gzXDLywzXU!ERT)Skp;~TIEUx59uv8fA zQt+fnR8y9?9;A7>h=tAD&ahW8s%V#61TzF#1$)laeLIhKp^V@mI*@in8Fp$ zChZGdM?|OKYQR!c5xAJ?vJDcwu`opo`2wRgSQIz`Fm7iOVEBu=4R9Dl2!kL{e4o&j z!-(Ar)a*)J#k_(TRiE)!GQmW+5=#oAk z;t4B$2z6yRWM|$$;H0Dd&?-D|$j7bVhn=IK;#I5s1w^SaT7vyT1&L}VBFe;R7`tA0 zm&7;*B@UM}#T)P>6Kk+$oO|T5m-jdZB}Kyb_(RrBohS#8ztSFMD|QJ~Mf24xS4s1g z=0@JITcdn(n6}4V@q=7pm`gc# z#iB#<*Z7(g-u)N(?ghZe&dYlyTdwp)zo=)z`%2cUI67qmO;M+zh<#Fhc&O(f6}k$Y z=!pOh!PeWCfr6ufxSXY=Sf-S+Y~VacrvVww9o1^k)Ff(>B2HDukoSzK237dObzo&Z zvw!g>e}pvvCRk2gUKeHE+d~&$2I;5b9d%NJs(*Rn)F>((iB#@rfMG=`=hwCK;Q0KIj{^6Z1(oUhEis%6f%ei{wW z&rv7w0dH}u_5)l$yUHdHc^g<>v)=|_;_;69kXJTqDmDpI{+E+PxIHrABm5*KcZIFw zaYxX_1BEmSeZCCEG_js{lc|Y2_c)D8g7TXUF9m-MDxeU(W2kL`bPP%QvD?4yrAe?r ze~yVb3%9EH`SlFsKRJz#hLd*R%%X&d0gM^Ih#-jxl4{~$f3l&v)nbwh{JTr4bmv(*jtuSzmO$dODi3I)?=BRq`mxWG zLnH8+tDxcDFuANeVGxBxN-3Lb<}+5f0~I9{Q9ZN#TVdRm~YGCf(oPO=TxcP7>>jh)c0rL*iGEU$(~>w#Ax|qKyY-^E{CPKYg=RlYswK zmiBuh-Asz|?rXiiwkS=_x(NJvJ!Mn(%?rJ^xq@=$av<7;o#a~ECGcr>nR$jDU5?9S(J39 zxeY$AtHa8xl(tJUt|zmVkZv&mPzR?Oy?2EZew3L2ZxGdVKa))KNetsopFdrQ?xzHeBT2_ zxH`x#E+_TEmX44gAd{Nn9AL7TJr27=y|mFht?0a$zCZ?V59RiWN=A7xy1m4U z#YGkRmpnlRbbkZfSx;v)*KA^RJ$t6j8J5#)&aIu+U=fS810`XhU4&5sX##+W^-Sn> z^}2l0qA)vxiy@>z&Wcbd9OM-21$h9`ty~au6BWr6g)XmN4F})Hf`BTp3#3ud#ZQ_v z?}24R+2U|Q)-A(GtGb*h)`_c~%&;G*Rv13KrXR6nCYLWl2I7D3Z7dt**XYs_e-aph zsL(E5S%;+==JHEQkC$%(#Q*m7Dq@)Xgmo^P$M6Mo#r9z)! zQ-Z1w?nF46Vlisn1W^Ch#iP5fp2nCx(8p>5(!uo=pkoIp&%#=CGv?sq@xm&)Cpph9 zu0`JJ6eyk9Rb78TLD9EGS9|9zZ>o2`6%2q&1nk+FIkW7S!49BhnU=fZs(=tX;kHU` zTkUdTgh9%;+uch^$utXeW)!>A_~TZH&Z?T55y-7jeE03)(bn7To%{QGX&%S)adJIf z%kopb&D}Ef5&7S>xaEX%Hug)zuA@}2p=sIZjOc$6?fh@4;rNMLAOYC>R6MS8 zD+>!&ALLs}mkwoAiIQw~#f0x-L5Q8!W$V+Z0y+$=eLE+7waWfm^FxQfW!r3rSp_1C zZfC;y+2)S>n{WDn0?Ys`5-OWW{wrY+R8~?~$^c@iODqLMKgSd`E*+=6s5W93_%f+R zUd{s%q!RC4?1f-SYC1=T)&+x(6bKl_I)j)K7z-r_Qz)0+~YN+J+HDKNqp~wNm zlL%J>b1Vu8gnH6TAVAW@4~EcfFDUj9>C*OiY;r;+3`i-Iws`U#5;aQq2I%eFh~kdg zac3gj0lv+p0Hlqol zc@`}x;Q!7q`@08QN4tA(&tC6sZ@oTyyZ3Sj zpi(Gc?PQE@amKF(uz8CM6GoNwXcYd6Au50W)vGCHHUMIup>+HW@6|F&jz|o6i-I#B zx%>mR9j@-&=NnV&s#sO&8eI7pb1P0X*|r75a8Q>_`IrJBX_4yxDqt3$+L^W{k96 z1inra&Y|B*wSn`ee~K6W6fbo6QQnvl zIG7YoRBY;^FFhT$+AUk{OHUPpY6pMH*_H{kP7SOwGB3`O61$wK|_CJbzuIgQIcEp=`WB%G|(HV>SS?q;lkj3DrK} z>=Hpq%~>Ac?9$K(jYcw%7J@o~;@z_4Jz2%V=nVx>@4b<(*9~#p*3XB3IoyBvizvaN z8!W+`Q#JC}Foa=Fg;HUdQ!ezk%+Uh5iaK`Hk?1yJKE}$BD*DxQa4w=fiC_>S?xxut z-VcJ&^@Pcy3eGu{FAO0z(x5q9i|9Aryjc5=gB$~Q%dWpkHw+32m*P~IZZkd9ZJ&@; z4W~}z{g{vHFGFPV7wBbSgSauQ0&)36}yjfRb#5gjgNZWd)`8K%m7g>^E4;(}??Ulc@>R*ymWZCxIW=|z9(^-wsW-;>58 zW)EtlN0%sn8TJb?d-3E?#QADQ%90{-j$pP=769ACCFB?)cr1e}p}ShX$-Fs!eYCs3 zb#Qccy#IP{>*d+ej|V%4KkmJLsa1opw-&{B+6B<@D~#7xpMJCX{MqVi3FwF@huOc= zF9ra2zzxk#T@V{TD*Xb9A{_n>-$2)U?zhS^_iHi3%J{cia4J5lW zf**)-#_!0A&ur#2_MM0fZj|vL^ulye0+S>0H+u3m;|~T#(amQE{VKJ!b?l_pPNQz} z0G}lH_m+(nZF|k7s$H)j4VzsZoSdEBhf&vvpOzT$lDg6dzHfgz=8uk6@OnYH`9rM9 zESqL@z4A2&So_>T)l{^zhlEtKX6)Il$ZXHO%{+HvTs=Q+Dp>CCbrd!czH;9aFy+wL zqCpr&1uTH;p=xI-sZ-n*m0$&KX~CZu!q29X%nTf8#wpXVmj$!) z?#SNohT_4gYmIFWrjiRbo<>L-n^xAt2zVJ7?4bQ2yJ$~_W3uMhx}fO`0?ysd-wZoQ z2PmF7CFzCB_AiG6xIo**znMhZ27nc)TkktsL*7*y~3s@KVeR z7Q_*ayO-IAbmyZHcGWp4IXY(pMx5TXZ{<<>a_{H2bVP0)Z2!3XkDaqudk1f}ju6J+ z-`OZY4&IvRMwYX3aa}&K2}tO=C4z&uCzE#f5;qum^AV}nRFBHpO#&pxDz6?kbwTLu zb=p3!hpm6Q)sHUW_GQ$CW=Y!`AdT(ngxvP!PaP|E1N`!{6f}Y*J;xMIWuAVWdgA%6 zbDi~p7f(@on)ZHx!H@eEd}OzRz7OeNyQ6}20LJIEQ13wr|1rMTy8m**dAJ>u86^!=sNRXjtAg;vHQVB#vSc)f zqgWc)uZ)yE4NYTPM7JDHIlj-XL(>H9EPfJe7yToN3OM!qx1HA8W@{B z`j>yeANJV{(e_O$lK7z&N2O&agoQ)>_X$)ZADHyAIQBnnT zUOjmGY8yF0w$#<-PF7Ftditm3C)$a;S3rLXmkZr_`*MG8_buGWH_m?8I@(?M; z9}jtQ_u{(yKAprtHVmS_p?FAj8j1Ld6kahX3$GYVn})A6 zm`u2Sx|tO0E#BQ==nYrQ#1AgQ@~eKw>=rFg#N3-23MWpd;DJm52r|l1T1)t=5ymjJ*HGo^d+Y;5(0mU zK(0euq*Sn1N{t+N&_|bjS9|~^vS0%G^QqgPu1%kMYl^xwwQ!hqjX=@zn%^G|E_P7q zE=?BJn)ywJDq4C)(4;v}gX{_rW@R+E2x8;=-6*vaI#(m{O<{LocV+`fp#F86HXK1V z=x2j8Xm)^5y>D90U&zX4hqHgHx36KQR<1@H0+1l@PFWU%sBgV=hOZp8S~)D+r1CemZL5^mj070a(O z8wcW=Xq+2Km!mwIV7L6m&4HQ4V|&w-c4tkDu46HoC>&_U7%2oi%I{%wDr0jncBpP_xE*%SSqgnk6^ixZE#rb;q?R<@q}wE1uQK+gL#LQ zhrdmj7cK(lTq>0M<%EAmGRL#7d2wB-fpBVi%>{}r53Sbk$O=i+B#e|z;&B_-KVQ4b zn+A%X$ahZJ+auCpu>tL492Ms++yq!^JnYB8V7N@X0yz6eZ`+32o`PCy%Yt+~X6t_#e64DgP5$w2LpW`H z!*S?g2@ekTP)~Y1RIZZvq6RiJ08q_`nfUt>8E4%)Bh=$O^ZPHD6tZsf}cuaJgG0N zp*@eA8tlCf%5i^lI7$cqfVH+>Jc+)3;8Ym`>VL{Rr+(y|KwP<16(^3+=jT59=#%hfdDQ)pusV3~hK9LpAB-gCR?%`CtvsEHBO zCd1lroLyvtcE2_tEp3NH@+JBWQqv3{ICC4bP4zh$@$Vx2NEeZV6feE?pz+t%$>MLn zwN9@@D`&ZArVd%*VhjEP;(ciM6SFxrXVhX8{AEom6GB=PYM>?K{k=@c(Af*V1;h&rBJCadh*?~8>ey zc`58AT-97NlW(cq7F~Emq5o=D)k?TV#Qzw8;dH#tI^*{E)_!6jU83QDb)UCM)#LDX z&<*dzAgyD=r>7;zUJx!Wk_wh=)Y8C$tGG;ut9XCw1MH?bTGTqwjkA8%L18A^56uDC z;m*N7b`H+=4|ZPd{&EJpoj@qGHg{zqGytqgN>sL*m}!Ff5WuXu^8*!8J!5GrSJba{ zOM*l6{B#YZL!$;-I!0X~g|>O|>rxoi(Q>eJcyzY4ze|3X&&R}2_ErRa%7NHo^G&gk z=P7@RE}>QZ9*4@M5gY&%I-=dr;~`_@YpN2< zsQB4a$J>^&P>P>#K+n>GD_$3-uFwATH#L8cK`8Nf53!Q6P5$b0T1i!z21@%yv>~a_ zX%=W$kjc7MLo;k44dXBr@sW1Wc!+ZRv1j;hk)W*Z45Kl(I68qE_S*U7%d|7RMt@7H zZ%&83${9hSXobHhs~ie|ko@9y8eIIGb`FQghw7fjM)vYe+Q}(D5NDdMP-@+yir9Z9 z5RR*la_b*eUnoTK9kyUEfl%(jJs8g{O1Q}rx;_afDCDVEviw<^%L(Wu?#yY$Fg>I* z-L*yF4GM~PAgMlcOv^%HsfOXrcr5w z1V!Sy!YOM=_#wKH(66O%Xl=t!Kxw!}zfaQ1kmrTGx&<1cU~Os zZT}5TPnrr>>CWNVio{Z!oB~(T{-_HK2QO2&KgG||r_tC={Q-#mt2WuNuQh+3MO1Nu zh#IfK0Oj^TpY%H);3P)$O$RBQ2sl8?#gL3Ppf=a4J3FX!(j8}=^rxSXWN?C;9Q7zG zdlF1k5J_{yJpEY`7jY>xQLLgRT2lk)6tg{$uep%-hZnT$qDCdSWc3hOS6n=NgPkAu z4v$bR9<_8RvC$* z$y-$`Bg$Aix}q2Fg6KZ4auKbscV!}cQI9vGx#e(2)FxJK5UC?`-`@4rD1eDHU*tfPOTPC!!wjiYw{ zo<&+fYdPtsVW-%f3Hk);oGHv_IGYQiJ$mVtZKHY>kZ_%q1ltEYTSq&>Jq{~iNhJ#5 zy856%@XI7#JP^0w*cdap{IS{<792*}p;8YiYlL2-twv03dRF$(V-(6BVxX~b7X?cu z^xYB{T@j&ZqmqueId^~dltd2DVJOy#a8N7QX^|O)6!fHrtfA4nLK;E6atSo@Fts<1 z_g}&o&i1#CeiTX|BIV7_(UzUEz4!KL=k3uK8!uO5F`_uaglnC7y5o8?x@+obb6?1% zyzUJ39fL@8ZA>s(gw*D4ps+x=HY}yBSe}eyf&> zpOjeYOQflW_27R854^a;4-~_y;Vmu_jNfg9+U}g#2;fyrCPMIgX|L9~p3wXZ;a~Fg zR)Z;wYSaw6#9CXe<;WiP@EMIpiJE8GRSFf%3r-d90PLIrBTwVf8n6#*>C>=zld~eI z6VmWboUn1A+6p2VFFuz{Lm!VL`LV=h<@iq2&Xv}neRO|xNgovVbqzTCSdXh@gs511idWdR0kpmshUUO}M|GRaRI2-ejEI1s=+Q&1=I!|F(wQCb#is>(_r8Vj}Tfwd@=l75(8%!)>AsdqTc0 z6_)O)8Xat9T$NslUehphTEwsC7V5GFE zMwBJ=f=k+UyAQ)4l~6!txArqt`>2SVboGI`?6BQH|2C@ev`LD9(}5rl$6_W32Wzy= zurYtsx>KmvB03{O!T9o%JEVgQ!6ikU%JqkZ(WhKDVX-8yOB^FJ2JYh0*{fP#tm#Nm1vK6P65^2tVxS75F_v@elpUAEt+joP7D6W+5}Om&&_M7047Tt=M2aT?de zEw{ll;!M<?Wf1lI#{G>+8vdZ1xb~jj;_{hAf^$50Kfn{0zk{h}C%y+p zLdkHnFvsD-SZG+=RwIgoC2nge05nA!FP9BJmVz)Sa6P3jbgIOB?{sAkb0senkpE59 z!<~9Gi8t3aqr!7TTu6z^9tz^8->lMu+w(sk+~$68!&Uj^&Fd1knKDN{x5@8nr36}7J?LmUEsne0uYYT&mIE1)mH+|4~eL!uArZZ5!9t<8ev zhwF@#H#HpawcCr3O* zrPRx(qK9FUjx@om9>UDCUJ zOJL$2T){p`CR1U;St^!!1&|UcYwTQ&CbzbbM#{B$tJ@||Dkdtwx;c|t2iVx}y*YWT zeyUjIW|IbRsuO<5;IxJg!DAyR zEUQ_fA<3v~4=2z9voz(m8gFRDG&5CG=x&EzK3Rrso;a(K5s}x5vVk1~7Z}$|%lim$ zVP%jg``1Mv4z_HZ2_nx%h*?Bpz5~%v5ue`>+VtbNaoQ{Za(2cl*g3_273tmI7fK+2 zxa_a#`A%fkHM7#lu8^Uu>w}xcvU+pO8vcwUwb~u&d@7W(wd9i;)NH;T#zJ9yt`u2JiDk*)u@loqkFS_Tu)aeSz)P11tnQV3w>lv+t-zA&>*6 zCX|IC9PkA$N0s>eGEK>U>oaEIE9~MT{X%nz26{^PIhz)PQF<5QA-867J>SE62JduDUE<{ZscMH6iY#8bUKk224(h4z zjbBNcS8P!j-P*n2)Aj_ei=FF9ikcu|V+Uav2e>YC!e)}i#{mcZWmgxd`i%O^Gx}Xz zEOY`u?4pYSsQ^8HbFA%t*2c@$%!2ex8iwQ-y+$e*1_SZfWgn5Z$b$m*l#N$TwC1p9 zkC6Ki%Sqq|EcruBE&#r`NS_oLkM<7GQfUQaG>Q_t6bWs4-a_&~+AHe8ML_N{zI(); zJ~ALT(K%gQdui-|OoO2yPg8VLOpP_TEj@+eDpj|#Bjam-n+QfU3&k{*AXMV}CH`W6 z&O)gj1xiLOzVDRg0euOh(%ci((P^T3@&GD~%&GFBbJ*tNZX{NPEIsq=-y-ND7CY>Wa-o>Q)ct zhhZ=!3`EL*TNc=ZUJavQrAw`^1RSnR4s&r4ase-mB=!SkBqZ3E@f}7B6>EqlE-+)- zxCOfu?65hKC9{hb&UVX4(Bs_Q-h0a~(|Ji^qf{L5@Rp!McAU}fWnJoCd#qZG3g9$t zTPF`fQA4LK#0qLo*<4|IG^?J7yjZ?8ehv*gdw4~E9DGP~(=s6~P8^ntf6pcG>^Lvy z>|VUa;y&rQsjqr@`qhGSqgB+Q;8uW)s0ORat-Qx#@-J^*ql%AYO@$p`QpLv#Z&hQV zU~7*&dY7{&S6hy%8v2C{Hp$q8UAjt`BXKF=p3qWJFTc&- zLEj^PWW@M4`dqmS{u;!0a4WqWj2j55m- zGt!>K!9{=AY4-z~hZz4%r|M?RSL^!SReKc64#|5>tlFFw1^e!uoStW7G{38h-*abw znap;m(S1FU{i>a^Uba=%vEI75S=QBVS=ZZTUGJCm*&AkEe61T>X1!|9tiz^Rw|C9D zSykqNx`!h2nm_q}QYHtN>hX0NoIWvDbt91w zs8!u4Th$G$w_&d8hFaAPy{a2}RX1jTuj+>Q+AvmiqiR(*U{yElRoyVFs#V?atm=kX z)hpw4e#8wm^hym1Wz{iXD``drR4O9MxhS|TH3g9Br2u_>zQSRvq8!2!guYAEIpuh7 z4n$l5>kU%{diE9WPuSbmr#x8TU4a?P6K+{q5ZI|$u7dn~L;%LwAX_G&nQp&-Jxu1P zK{pv5qy)>Ae#+)TVt+80URu7hB zn@ez#)_xsc*RI;PsICDp=iHnUP~5^#IP*FB8|vA>j>yi_d_pQuw@|l>8Y?-gp76qp z^``4=4M|Cesw6@k2^tp;*BXF-Kb1j@+k;!Eb)Jq>eC3BGaCE_vz$Opwan5eO^`V{h zF%GCkLF1)ZhOWvk616aFHG}7`6>ciK!0-X2d?J3IsD@5Un0N{Yn&w-B-WG=L^MH^m z;XJ;gg?FD(&Mv1GqwDJa>=+1LMNSG*`EVM#deW%XtAVYP+YyT4Y`j%}qPk6Z=a^f) z;xIM{A>vf9WWe)om<@n?tKp5P7T1DEwBdbGSCi^p%`zo|-{Y;q1Dx<~LWp-nO?ehx zOd$I?a~2=5v7O%zy2)eXZGFaf8sRBKj5o0XmrQpfh}M7uzs%0@>5pJ<&HKJXV~)Mx z9CpXqXoBt~>cv+qs#k)48@i$)b+@0u1d^a1m;s;v2iJp1b_E*+!8i5>o6h}Z{V%H= z6&tt^q3CX8HIS+%W&$!3LjN5#CM5x}@{{$*2f)o3Hm5s(19ovr4X($=qdBE)u<;U5 z=)l)mJ{gYc$ayH+YtPi7(%bCI#9CBw;^7V2)tf8a?jPgf!q%{Vil0CGCX%{MvDR`T zjka(8)M)!NruhGYnBq=IX6;bpf&Mf`w%XxH>KtAT@i-~>?J;7dLsgN>lRppsS>;#b ziX(b+Xr!NpoxD2Ev|S=7sW~gov|ZW>+kKp;V<<2)2)JD?sBC4vpx<^KHMUp6vr+ZT z6iWpaEzFvsVhv}1d{jVqY@0b%p2ETG_U4;3PsPfn*$iM_Sh;jCM~jbvR``>O&USlO z&a!e!pz_L_=X@wAYP&yFnL*UevXN0lAG>A=+eeL8BiSr}9vUq+@DOB0DiOI4_#_VP zQW3$|<7#end}IAoWx>*aC0c_8yF-t*ECgB3$9Vn(LnHK_wDZCF1j~> zlTFsuv5TaC2ge|;aId1v;gN{!Mt=l6{2@k( z9$8MTcsJ;(EhtHxy}4D$)TxDF$WM>ahWPc6jD-xfGi(Ji4y=%TgW*l`2A>7b`$J%b zaMLs(tsbtdr5jWsh)jZI^IO$h1r zqr>XOVv3Wx5!BFg!dMaAbp*spim#@*DXoa4m4aE4llAnGy=kOGaUEi+bsJmDSe@x^EPj8RDc0B?%<|=xjQ%? z*6*l)Vs`iS-bq$#dH5wWOH6?L#%2;KR=)1G6rD;TEG!dsG`I3FHu9pC{4 zbaD4+@8DM=(uH=)nqZBHLK9(RRd9EQroL`}N8yy!t1D;gXq;VKq{0L7y6v85JnZ)= z#wa@F*|OKcsvUV#2_NHGTVJCHH&L+8vq9b{stVW# z!S@OD-I7vY8Qg0|2i}=Gpt{-M0>Fv;g&N>oX5Qvv@Rf@reC&#r#Yk3CRek#l@$q=%iVv$oTXu z5Sn-Bfnbj3gDXm#4;k#7W1Y?{SWY?wL#t^9KHW#?65$QGAf~{Z9Ec0!1deaTZ{}#l z2P%k&pPgZki=e6DrFbvWfnoB9y>pO%4;Uad?6k`bY*OU*(J`3i$xZqt+gDF)uoUgV zg~9$aL?`MBAbmRrr^#FmF+*5J2Vel=il@SN%oU+PO$%xg5xuOdB(~)XhM2G(i1Y0! zS{q#=OT;$MUyQ9R;^0!PF5>4041%yoz1E}}nR)vKtWMYk#*?ZgCsp=Ezx z$ZkcJSf09mn)^JBlx`%WdQ#|u!nx%a34hD@1Wn@DC`FScC!v8;+cN4}8S%{O_^bjb z=4$}6!l=*!(?z#16Gv+c&P5eH%|9(|-ZrNb53(6v9RjFE5_U4r2_keK+0?LDaA8On z>$5CW1U3>CTr{L629z%MH48$2oi{tJ#w#{EP*&p#>WF}y>u2dj!V%P#-65a|y?YWQ zDiKDZS?R=av1Py;0jxAC_KyyY)y;+~nNJ}bESeP4P=s{Q92 z439;f@zafOS&SEpHxYVW{C1AlMNJN0T%W@MIM;h4o!9($<)}6o{u$V}6&#-<^sSQS z(vc!y&M4>SX;SkfJ3mS+*!lI+oLqf|!p8ClX<*jf=jjo3 zboSz6VM2{|jK@MN2&Ms?30x~Fixr-HDko6pG>mmmp7>C<~MqcsW%&c4O@R%$-)vqun=D-$7!z=p28Vu=9x#K^hct{XEg(d zVi=lwR64!sOI|%Kn?BT+ro|}i2TQR=ZAn4W7$44aX%;>i-`<@YPN&XuAhCS+qPT8o zW`7Rn(K*I{)^7Iz6Vmq8;$mStS@~jw3#(#Nd%$4^#?ugIzy|SE>JK}DO@Uwv1H@LlzqgGfIJKpqrOF8_Bsqzm%`Ucouf7{_`3jP_jdx3$EgxRO-A!h{ zA`>M-RD()~M%?VCQiOEtkTzmB|Dd!HnP#Kbad8l#)cy@vn=!~ASg|H6P99kCw~4Gd z%3vQqsP4V2dIhIrHeXfc?69EaF1;S=sjLYTG1QZG=XdH~UnHxy`0RBwl*&1-9)K1m z6<+Uunp$R7a9Ja>w7gBeEIDk;i7a_4kpmORGl#$mI5o3w5OX?Sj`2!-e@~z4{S<{R zeA&iyw=71!HH%}4ORVAmtv22jma$3eQ^w3RnM#MQO2qG;BwW2FBS8{{8(Ea^7 zindBbT10}>l3GGMaY~C0dK7yzVDC`++~Ic`^&U-6D$FA+E-r|hDbU@V*F{>E;ceD` z>W^i9hQ`rwz%hGq1XR`>wtv>Xt|x;HCvcKvr3)OilCSx040Qv1jK|CeVv$C9NK-^X z8evUz6Tt5uk5CV`jghWkfl#8VFFvp;#=JDnSWN|Q59IeBUq;bom%ZPpy2DGD%@`GM zpLwohq0VsIF_*?@NZi}%<|R%A0F~>1!vibuyf&+gqHZIh#Rm}_IFl8`gk{9Mz+uJ} z6o{H8Bd;hCgMAWgbLR391?0KEw`vx(sbI;>w2#X-H#f@!1}r^aJMiLZLKEt_MZat2 zrCnV*wOG|V#~R~9)0vKMBJ8di*LC$|R`V_cY19pk-+n%_USI`{D$GNwv!OkInc&Hb z0;j=HqK`H7R3Mqki!oWlYpyX zNoq+nG3a2yFbHT3WavCRfx_+COSq(HXs=-Bq9Wxl-20 z3ATfgMV2ZN$0rjHVEn;Ii`P4Ub&!c?a^oQNo}W!o&Y6iSIghBpbCI_{qfNY-r6GS5G}0VhZd7u3D>Dl4wlS0+XYaEJBvvYRNiOZAY-t#AYYNac`aL zl4Zc(k})-SQX#%jOuQ6la7Z*NvJ1rH0)2FAK0i+(kwI8n6~*3OUv=DnQm^{M_QY&U zpuH?4u5v~JoD`Mqna;XdMbx3q7n|dhTpkKLaMluGBV$d5Ukou}`phZ=#Gpu_Ff@I0 ze5Jkfc5!N-+O}=m-kMw6-k#bvx3+C08 z*L21?KMG1Z=i{w>h7WPyOr+T>E!O~;@^sxayCwB16l)S1;#&r_4uwbjv*HXmbA-5{ z_w>>o3=%N;s4-ep2OLmfd0zJtix{!=q%dr{Ug>c`ObKiWzOKnYFvLG z6OV-U{w32vqm#_Dkab8UAd3FdIPKYv{@DPpZkgN>eP+jrNK}HgRa<`-6WT|_`c@(`nc)Fka+ARsIKJj4Z?qjpg z;HL`5A>*T=7ADpB){*BeE)H%qhRaWJfbc8KYb-~~GY7*_z$kv&^~sWxji>GDxM@*l z6Y482E;MYpaK8u=j%7Ra=U8x5wO{~C#mk_R*`LuXvI%i~WgBNiHCm%}q$OGUT}+HYrTmTs;(ueS#`(wq7!;2+{#9hksK zGJJb%*tdI&s~ZoKHn@>^@wiNZ!t@K5T7Qoch=}S0^4>-bPQyHegPSC(mmO-$!y82^9aE{dP zQ3>CIG$PxC-ku3nmtL||IPQEvz=^4N8(1TU--~h_LsgHHT2s-f*7S) zTze-f>UcNbXBHZJKUOk#R2@C~lzf}IQkera->0>~j4<1O-`6&RTTFG1Vopr;j$xkq z-DuV>7vs(Y)6`R+R=r>l+CKwcv%7i@Er_=SWVKd#<}nFw)AtDve#g^67h)s|5u>ZZ z(X68RwM5u~Kc{Ve-j{ee5>`cGBXeQR!M5Tq)TC4=Eo}f+|m#edd~hRySBewdv#Q5bXS~CU)z5Kyc}V?l0W$3 zDJ=vvbk*>^qpzfGKYS|&4>WL=b_nd6JQ|@6%3LhM`aMa<`yJ0xlleGoF^q_cBtC(I>_}@1JYanI5AR_vQMe7fP}Dt@BT8E(cw3Ot=|1|&gQm_3y2kXh@` z8omEQUql3ksvlvXy9|GpczOtq?nHZ5wXn~rO7>Yif$R~)H*Jcc!Ti7v~3Zw2W=_h2sZ6J@Xi zD8Mc)hyc>8$;uN))#Zf1{=K_Ph-n%l z*X7AMHW~z{|5+K?1vB)?uw&?l_X61Yfbq)p#(A0a5WNitK578ua^2kt3t^V{-?F#z zUSGS88FG?YwVhW@tBd&tQ$A&}houeS$KE$Be|7Khb=q1YSNbe={JM-HYO(sR22q&&D)$cv~=2{>TCm$E0uy7M7clP8ihihz!I&HYJua|98>>RaG+RBIvJjL# zv3~~cweA*8wBo2AOuY_HF(D{Fp_D*o>DJErfF#}W^LMt^O zmmzmRfA`zV4_@KYzyFM7KDK`{Syp%F{uyXzwBryH_LfDEj)Ma)@R?;$4tnL#B%aaw z0i`BsX)-zNM97*_ZS;eFgZm zQY?S|pr)cCDU>vUg79-5{X6~A*XQn`X>R`QYac&Y3Ytl@nU|XDm-ryar*=vKiu09Yhm%FmJ@RfaH$D`jioS zSy=QwHKwQn;axrm+%*$7V+xaA{^RQ z$RqwZQe-^WJ(wVED+R&)=q)J{T&s^U0wJhziy{rI&;4w*7}(s0vdBH(#`!y#a}Y_P zpDrrc8%>Mi!evJPH>+?au#&RAVtqRyTvzAU&5c+FW-=7?%AOB3wKSpsPj0w>=NvM< zRNKn@Zwi*cx9SCw_lywX%PZF(_e!0wxzKR!6mO#8dFOIL#2z5L;{2qm%-(RgJc>K# z@Vs!@pm0ovWCod@3zH;awsDm|r$odaJiNgaTdLuSf2DurdSqC;Q!u13DcUZa{_H2q zmGI9rZ1eqRa_E2To_vxYit$&QEyeJWfwn8DnEE*Pg4k`DSInm@{54lBDDL0!b)wR- zccc7q2NG@_C`S%dSq7zJef#@2*kUsp6- zI}$90T#Hei5lSzq!-=9L$C~l)2ja%l_l>Cj-z*OpZ$;<%)Wj5UoWw>;H!PnMDqU!M zhqmVQg$#Lc#G|d}h@_~OXz309&}1M-d2e3~g_=Kj1r2KS33?ZK<8P zfPyK`*Xbm$LL>JYY|AHINKVQ*M};25Gu`Gj=t;eb^>3}xWou3s^ZG59NTD@<>|Q-2 zhov}dbA5X1tEeOx3fJy>oPW^AVrKv05fZB)W<)Fd(_VhT|2!bHHn=W5)#wN6&tNcv zvwySR5boKsRrNG&Gy8|ee96dqssaeJQMj%9?CQhqRAkkEKbQNK>H|H=<-FJO1iz@p zd4*L%>Rb~?hU)*Lmdv8FX}xjZVGfMQuRA7+`kTDAY)}VP@}hi(UdODlxi3Q%q7zz2 z$H~kYg5%PY*=ALHe?a*>o)$Lf&gHSl&^A`Dev>z<=t5 zOd}(bV(TN8zjS`#>4pCUyvrY45ljyVCmexp4dFjYX-lMBb`Eb?qTdE7@eLDd!7ZM% zvz!Tc9v-9(shkV{+BBRSk|?2WLrP!Ut|y77w-7Cd8N4rr8w7`Ai5 zE^(Xfqltl`mcNnPPV_*6&X?~)y$8CM`{wSlniPJF3Kay#2xtJtf4_97HIvRCl-Bes z2(qCON!ZGaeo&@RfID_Sggfs z{xLkVV+uAerjir0)^mXyvoP=6?CIlF8r-~KkkEQea$W-T;CKO5WEuTas*H0#fz7ih;)T8{{sp>2<9ys>3b3>IX3Kv1FVLjBG%17&7Lm*&g(6LfH%$RS+TPD zw@S{de@-thJ++gu;k;+Jrx+=Y3Je)|*BI06d>Zyfl->{CDK z*Qp^DEo&w)^eJg$u|tGvEc=~U@3?Fllh4ug+e8Zw_f2!pXAPHbDHn&E4+HP8^o*lP zzk&1(g6VO4EW-=&8RjK(0&U5EcKSbu8%XkD+ zRH%I@FZ|koZO5tYTFH7Pa5peL{Ym{2=zh=3hJmnY@HeM~aH2LHkVS-b-o~ggP|%3> zb>w+i-*Ctxb|Az7Jtr?>5)9q)ckWzS>o5*$JhsI?fOM4*Xg-t;;<(C+7i?TtzoLlk zx~lZdubbf3>3>3?*&&|Y)8Rs)8Nhqfxk90NLC-ADK4+_b$jj+yO(^E0w%J-X9_4lp)up81-ao@h47r3p!lf6o!f#0K-VY3uh^%! zuQ)GY?j#2G;kvitdZB_c#|~BAhMN4zzMT2xAm%^9pRawNFYm%!1wG&9p(|f2KMU~g zQ)WSU6-NBbmX}o@x!!Dl`aJJQs*bYC+Uzc7;`p4;^O(M zuy4mo)J|>wLejmMuo573+b)uQE88 zlv~T_Y%_+avIuipSRRWv8_w}ZN04f|_3}=eag{v%Djb>+oFyGO0vZoICY?3{+CqRx z)D7#D&Xf~4?KEai&L<&y1}JIG$QGQYx|(@vn(nJHm^Y^Jg%Wa;GCkLKA`8 zq|--2OMsjixKSN)h;J+E?)Id194vl^7g6pr5|_)@*gvNXRVljgbMiXz#Vh76fcF(B zO*lMt=klFPXB3(iy|h4|_tqS&9p%+%$IE8BNAxA}8?KEQsuH@qL|IMx+_~8rIMJ+q zpVuZ%s@-#L6SvptO`9*|q`9KWRkh#EG$PsgE(0n}%{=1zb87v*YHNUDU&vmv(2t90 z>)4Zm@#LQvNyVkTV|HBJl(y&mUg=R0x#q$FWRL%_lp@t#cX1*8?#)Sm#{9q0VF!BB*17wM zbZCn=ptfBoeyh4uDn0?=Y=Lx*Lw`R{oFOPPMR?LFchB`iq0wV_)77HZh>eDdUw~SV zB}KcQzc1ocY;boxE$J8>o%X49OF#AuS{idp*n}DpkqpD~MIj_tIG-vM*!iK05#oxE zI!F%Jm*-bI63QAYg(}dgSQ3};9m~i}{rDA{1!B(loO}nvFPMc!6AHi2RZ@ru1kc|=C+0;JZr(3k+YS4FTs~Hv*z!+mzmBm z*vF4r8NqA8`oE_viYZ8%Ec0Bzcf@+4Ww}2`EkAx5%HGrH`(ZG0sM{A!JQ%bMH_@Bi zFcE&O3O&2H{lW=uX3>#2#Ok?NNk5H-W(TiLCys#@0GCMDkAc<)UrO(Yfu;nFNRzIW zwg+0pi`Z|I%qiGTbvcBuLcjl1*A;X9Thizr)1GUi7yXD6Cjs2{5&x~%ca3H3{H|uM zD1~{l-QvBq`)t3kC(a@M*V$8p+d!23oIgJjG!k{9D(;f_^h3LDXZnngrGjQrYgTfbM&IJdujDpF%Y^~?& z2{pg5t}0$OnySnE!2tZ4Z(w36$#!S3sQ;>Vk{^YVWCLNRxss|li(->icNQZYLy?PZ zdU6oaPrfd!*?cV7@Ttqcg<5e#)E0$jNbItZiNRb;kO%>lx=~nt(Q@shIIPr7!toGd zA1VBITcF1U2+8m1{6#?;)ZlUmsxndsq3@_tgw6{jwj8r)=S|AZZXsf~RkH59ck`Dt%+Z%$tI*D}pM0o@ewv$n2lS2pS;H z8lxpi{MJ?xBsinszg5JmbQWOyLxr}mO{RW|;gCHGG&EAu=5Qd_%Ao$;cLUURD9%=e zR&Do6E>Ld}1X7jL%B4NHvErNyl57gNswmqGeI>bUkc+L}fj1{6YK5Cl0HYQcJt~Qg zc^@}C9b0qS=?vAz=uwY3KN7!XQ>f+JWL5zB%a2cw5xK%>QdlB`2XH1tT*Fca5*{cf z9*#`UW_dCrMln!=>BuU^x4rU)8Sa8&c3L|$rfXbkg0MMj9#a`zPT^byq0RfUJcP0V z78P*oVW?`{+)&k$7dms)NA=a|qaqAAavlET9o}BVFk>|b63(EWCFj_ZmUuvQ_siEV z%kGav6@>>9@g{1ISAAx;17KiwlG3^!k$l+D^nTxC z#3cJnoG;V2cNfD-8Et*qz}@Z7ma-J(L*Inbsj#Z!(~xKXrHzhM?`>A{IG2Wx?p&XI z+YYU5V7vXKg=-xv9+}}u0~OI2?;q5qU+K0ciH770wDjTxXnv6TAN#p8-O1mjJI7orQMU*7 z8lGkk`t!bi$UQ`mu<8HWl+MMsdynM@4SR(DTy}9@%iiHO>MGJMK%TJq_)rDv_9O}T zrxbbuDe;)|ToPb^=Sr0!Q;f)lH%u^ZcM?uZbpr$pcFulSXmu_L@?NmC1^I3)>>^v@ zw=N0NgTH_@6t9ehJC#@X1$oXeJkcpN+6FhLleZ3>{tR3={lOxLQ_G9u!6(-P1eoRU zB&r-2Ap8Z7n=FVOf#IyT_q|NK@qK{PZ-f%GZPv@1ov>e=ae2LK8d=+5Zy%mo{^!u% zvT@PsVd9Ar-!7GdQC39Lb8OY|r<9zcrXn2~u0sJtw=l<5$_iDwNb}%xQ^zNM-1!)Q zfR|(i)w_l-saMqMl9+U}@$EL~#bb2g@pQ?G-k#k3?;^pyj-Mub{q2HVV|!mx#=%O> zYtwF{bZ0jBLEZG)9En5bSKmu#SDfZRoFWbztonfQeBEmO=yK&ugl5rrd@B}v=K`_f zOuvGNr7qYY{?SGk@F9fjTT;TR74f49i~qJhzt?1s zr{ThJWwW65_3*6yt2tRAUn%>^*d+_t0?v5UcZu=}Bhq zCbMWifWt;#2u(A5eCtj&!Z^+)$~nCs9Nc)>#;PX%uxER>^SGRq9O~3D=GosL!gH%y z!my>~MTkb_0oFL^n}(tROVe=Ch_2PhA^MLf0Je4N!VJ~?WKP4w(g4dvOqmd~#!-;Q z;FkD@U2{7lqaoc(ty{aMrU34`_HyiN) z>gO=|b(#`Fk6*m8Lxd#xl%{V@@({>^Pwgku&dc2(WF-fevqb;5JV77qHGW=UeHZx5 zkUu>OKQgR=(LTOq;V?c--pw_xW0#}HYbQ-@^0cSv+i$09D4&e4JkJ=pE^IHE<|Nn-f46!)j?Sy%vPk|2qLsO>FM(xR!QXq2Yx<10gJU=qj>B0_Q( zR>-?_iz6^((NFjO^2}&3>KczH$QXFg3lizGY3UgbbQ+u!;MG~U|2Z1hP>#4h{ zzrzy)8%}mNs-Gn%fY9-@{(v$wGnD=135!6o23&dVlmJ7iN!M>*E#N>F7=+?s z&z#pIr;~k122BrgJeAAG+5ch=FNV}Wh?`t@#;9RrSuPD;pO?QVw*X`skVF8HlR%OH z6j<8t3(~25Cry*h*hMCinff{+5Ulc9H@djS10?M+^|BDgnn_Sb6L5G?K`I9qB#>t0 zh~pC+k%0Ee-~E&kGgP|+3C$Q_`Dqz0QHSoJ5W*vT-IFz2UC(07EIfsG#^ZDOb6o2#BP^&KN?d; zdqjymG4dJk6MJ*BiHOi!QucG@{X!8>&e}$K-c6aFY80UQ#HgN1_I2(1 zpfCFt=pe($ArQ1PH71iUPE>Jf2E>Ne!EH(WR1hDSW%klkTpS~{<$G2VHPs!R8+{5qvlM*`^UIbQK&Tcpj(V|i$^K524HY$HL2IH8QCGE64bt1^ z0qLQNk~LA*U(pt{ML)lr{zU)vKZ6PaM;S|aT@@`7LB(MhU~2W}$cwun5DXwe<;@Y~ z5DjS+g7~k-$?#1)P0vrg!mkQ-GCNLW%3-9sQ4&d$_xKPr@F7|7=?~d&#OYEW%wQzJ z*>A!UYNtO>EFY4=ND@i=6Tpl^hCptMw(2l`Y{TY}|Jhjrc@PSm!KPp3-HN;h*b*HJ z2DBawUco6;J8^iCw`8{mEGdl!@*|i4MbRIW!)jdsz}!jA7&Vq}6a7ES8Dke(Df)TR z_0zj1>c8SpNrOB?QpP91S8clA&ZTj)@6c??!6XA!M42GyDSX~5gh4gX4z$ZF78^mA zzAR{x;!-hfCMsiWoDN+6lYYX8nj99bll-P`HY3SvPxR!DkY8=CpM?A?JcO#v><=y{ z0!HLON0>Xn@G-o|rt(8k=Y=aV2s^{OALqUk59N=eTYbP_qyTOj2P!R9By;(HPn+7q z=&Nj&HSRkctFVngmDl>8!Cf%$YAG_9W`(l^I<7>Y-k^VdREYRuu<$J;aDe!+r|&3r z`{Hs@IC6V3^~I5@rY=h^3Q1wXpjv=L!YG3%gqQSanp2x_xfNLOm*GG;v!rC@bPC^_ zTwlAyR8K<3LWt5d+$Rihdeu-{>}oQPo`9}Ul7g`alJ?1^-j5x-shc4b`9o7d#+vOioN{bagi!15GTF04|OMjFM7%L=WyiC%dJ5E9U5{Q6S%uB>dD7SqL^I2#>L^2Uaxf6q#teTnRC=z5i1W?)=a|)49P)oA- zN7I!?N*ID^?qWwvYMSOYy$wS9>KsnECW)1o?sng92ylvN5_im=MQ7)mMaQ@IyVyd} zz1hwXB}moe<|k$nnM1!SVW*@1C&h22SDh!3dN3`%@v^*SJr*sW2Gxd+V9}9afQaul z)q2jBpe}58h9D96g;t|jY+nK1?@(MW5JgbDUS=z%-$&7+x6dqYK$6g}P=R0ZZs2wV zjI&q}A0!-8qyrF+CAcUI0S%Nh&a-{&w4Ucb{mhD2Rg6UnNGr zIh3jR;P*yh{;Rg0R6shaKWm!v){zVAr^d%GxN4f@UHB{#3t4Pm4k#?dpb1#{yD9_k zTvoHt{6d)+dTP*+JgiYHR@)$}vfhA|{|u2*2x3HhI0hv|b*DXF-t4r=)f9w5Ib6iP%<8bqa$W?%9EG%zALu^VUO zFRAmYoFP@oy#~nFG>%|#>jS9SWD-fg%xwn_t^sWB*=&5-Q1lCAP?h;2zW678mw^AZ z73yoJ(Ox+7ojw?uj9D5BxPTPRrZ{O#{v1AR&|P??s8-Z(u!K<%>J}{e_hL>hro5hU ze-cPsS}U+<{y6WSMwkZAG5?G+`gmJ&ItYfY8-1D%TctAgC(q$&KyVZz<1zS{a;0MwM(h0Z}~I z>>m6)$c{*A_DI27078!Luo66B6xE7M;UwE$eXd&Vzn+gBT~FSoFqp{Dow8_Y zHhE7@9}NvKK(Q`j1;A%Bu}h}@@}(iP#2wPeC$;lz`yBNhFKC^QS}SD4W3ay{OD7RP zQiBLYI$`Y`E)|8;bZok5wGHjLmY6j zwzbL!GmtwKH(i#c_Gm^Q&_!iIMQNadNQ02z-ZT{5VhM99Y%y`*gG(Txj)u5l^`OFj z?PlCn^KB*=@%;W00w4~I045DuqSZ=@s6e+lwQhYNUsx|pLj31jF-ZFZz9?Tbc3&kV zJM$crTjFBM-$z&JM_Tk$DX*AgAb>?8f`=i3K~hUW<>I7_CR$Ob5IBDYGurBNk8@$a zP#jT|>?vY)={i_JkYOUG0`uC6c@pm zLF0NZWxl+W{)!|uql3u4ZflFm0hy`nl2uibR{k5pQquZHj>QJEuiA}L9_cP*Z){e*Q6~oegIk8)@;;XO(+!iYknsHbET;n8ZJ!Jv9fEiD) zM_|!DFQl=!*k(<|2xOKgJSoi|hEI(3glFs3zE6oJm?;R!aW?4sumDAEg%uf@g(&H zeq*;WB1oXl$Q7%f^mm>qVP>2d<{}%^m!Nsj=*Dj?8FE@C~<>mE0uR$=o#_hGaPyOoy7Jjv`#tj=F^1 z5;#~d7OCe4=u>dn7=J+12`$47k-wI3CG-}u%C&MuHA>1GtJIVhk?9e)&uin?y~URjprQ%izra%cyli$9cb zCeCN-0Mv1l>3lM!hl?d`HA>CqJCn^MW#MrdF?DL+Gf30_xG;RPERGo7$726N0zklU zz9dRCMSXf86g-HQOnY&_lu(q2Re_;--bjq8d_Dco!30O8rw+HmS0XG^%yv+2MCgXFuO%knSdactcPGWJsLHA@o2jE)O@wj zx|_vn6}B9B&8cyP>*f5C!mMw;aypdvS>Ci*R z(Rd1)aU@!Y#KU0K+5%O>NyQVM{AC(K*wDoCc|f~LVTiJU!8zZsY0?o!6U39P8k3%P zC6XuKIznD);F6_?Eykrq6ZM}~5FgFSB4@RkUJ!9JjCxbpep01U1u~bqAEFIXiUaEw z_L3w{O4g4!Xfw{c69#gq07*%Q?6K^lTQ~hNTexC#=lgai4k@rn@%-85_>@V-)6>O6 zQXn|g%-ZOVs-~d?vp>~;<|$OklsV{6+4E@V=u+b|DY6f~F_p+u$zu9(XU^hKN9@6WsPasWK5UTYQJGs6jMj~Rf1?5C`4_ju4zTV#w>M5RmVv~B7)6qCeHNo4$u9|tXK zNg;WdUt{>{09ALo#n`$T3T%sscZS?~d~y?zC%Dt4;Tp&G)ra=S0M?r~9qV5_PXAVy zUz{oWxgtoi32BmEyV#b=>lQR*S*_IxQ85%4X4vGnVf%^bm?4?HE=OL!$-O&d$jsa# zi)Y7y12?AEN&1Oq6|_cK;ZYQ#o*UvA%S@rqXvi$o>=5GN*Kus*DVrW2bvI-AsR`f zs06e8F|#yLIDkW&61+G>n77eU2or@*{tH>xY~W2`MS1Zig{%!6Wt=h#u9Anzap)3Q*Qp9hXc@ zC~T5X0ZO43>%+q`3_=DbnN04E$+gY$n1}`HWL*cO_mcD^p;MB}G$EN?2n}mn*9Kr< z$^t|-u9YvB`d?p<&fhSQK!&~2b$_X?MyI@YzWD{g*L8pAUab)S0mj%97nkQ4)zEM5 za#oMfA5j;aT&6{qv&ZKdg|*os;qbleH`A88?H!vt9{Px9Nn+QmOaKHEf00(EI){@w zZdXK(kHTIdt9v+)B=lo&!)f18JI*e~8GT1y^uJ!kx%r8fp{axK0m?@1=ax*rDY zK{ZxfWKsMMu&eHZJ^+Cy*t_=`bKjf$Zg5`__1IPUQa#5>yU$Rx&6|JU;2mwb{x^2* z57W2An0<0FaA7#%u^~=nr0N%}!%3tb%U6{R;1LB|C$w1nr?__PI|jdvA=+PuPk+P? zzxt2*8_OZALce}c&e?a8E3SG7fvbRrn>rsK9Kn{2D!jOQXkQSIUJLQ}^8>GZ8)UvV zCrm9-Pu^KB> zF7G_fhD?fxr87(=xRjuv%+HZrPb^O&pHP*+VT1I%VcMtfM1C8)mejZ*0S?><2V=uM zHS|-XWtL;=1}3ttIYo>u#lSs3VerVV8-a^cp8$2ma4%4DFJ{?le8fYB=yJu_Fc*|l z5}2{)->*&_9P&7av1JW`v%#ZIVu=y)>2P?+5wp9vv8f!8aB2*Hl@E3#3r%>*tXL67 zUM)&Vnr{DFJ6q7aXjQr1!xdeg({uO0C*=GhF9-|7E7$Tfv1S`T_qWRNA`P5deI9tF zEFr;=$_)r~kKu;fK2b~}vMGt3ron$C?8zz18CZ+JOj2Pn>n>+{|HSd*Y$xdg{HXQl zBEjZsS+*UIq5%2vJI#n9aj3gW|F7C}n(qAgdi+;%2yYx)JJu47#5a3Z;!*{l9SrHQo=w{?ZE7<}d zOz(0i6p1IFeNu|F5sq9-q$h{3M9A+iL4|U`3ob`DKDpL;dAgBm%L&GE$`cPFxcp9H z7#N2l;_JmO-a<@ue%yipj+?3Gr&V9RdWt2__7z1)Fj1zbkJ82yG|_UeBq46SD*e z9uH#h@p{y3#i{Z9B2XIe9Eg*rXSp&Ek>!D#RRo{+R(`zWfKr#v)3q4tSEUUJJ)OfXtuya@P1>o=l&^1TL~U=yCvr zaPv_!(GPOt&#c^Rd~a4SA7(U}<_jHP1|D<|(yDIoZ){#-j7!L81S^#~HQ5QDVT{wt zXA~)QG&TVEFU)KaF9J+J6&dKR3>BGY)2NnmoDp)>uyvTA%oNJf<=>`q9x zm{R%+!*3pw(*xv!*vJt}DrOR<9y#KiDQiapHLe=qqWWBXHUVaY-Se2AT5 z$bQwM*Ej(HP8flGndl_y2%6t_rC65@r?DVk>&*45!G&{K)hV5fmJm3tM<|y$y50Po z~dB%drA zRpqiXYUQE2{A;gESGy>mWezX@-r1g?e!#YHe{$r$y}Y---20YD`Y=5Qd;KMj zr@p;(qzJ!!-L!SseB1|Z@}mv?yEJ-Pxcnh@M#Agq_06OXeQ%OV-D!ygUO+LDaPM7; zD^4{Bu@2x-2kGLu1Tq3$8o8(cCTWE74}LD&MnqjbEe{91T&|eC*=zy7fie+cHZQZ& zI()jW2AojedDB)21v4^Z_l{PO#M*`P9vy`$3?QGp_}=O>wAf=gvg*3168Jp2YW}unA#sNHplAujZP_W78k9i|*Fng~uC1oiW zg(_w`Vb3Q!jt*H~eX$?CH6u3Nc?#dlGiG6~9;X!75kD?A zMSReUavDhJCIL4m`n+g6ZZwCPTL!6+GIzTR%`dR!vA}>t0_UCZ#j6K(g`=fy;}2Ra zQ~jP;>&M?lpn>G<)ZeaD+*7E{>M;l;79-PE8MvoDDS0j zxBXZn8Zhhbw$1#qg>oNY1|_TMqOYBZgmI^<`16&%lHK32c{4!e{6e{N=ETpth%WijZW@9)Z*s0tJlyL z&i?Z>aPVfq@F_1d3PIZurxreShn3(DL9w1??}(F1iUATlr@5dQi#7c+nLGclKZxrQ zgL@_e(I7jAes0fTZ5<>eVg%*H$6cc-QXF81f`D9@vS5B#&Ku2IfL5%8OH)zv;a-?M z7j|^QJHz)Yoe?Bqgbf4tyRF5lIO=xz160194qe;=?UjULi#;(6DtrV(W3}HrocP4| zEVzrXP~W(mDsekRqQ*wPmP^`Yst?q{Eflzrd%sk+kO)G?@LbT}Y*D)eES@{~dj-6^tI<%AJrwgknQ!ng7SjM2Ky-jg%g!|76-r@@kK-)D&i zW2;=5EBR~;+_Fxf>NDYWlK*445YkXj3O5`r*U2zPqJlxvH_Km=?5;e~1h$saS175sv42pye1=oHYD)w7L7@1Wb7Hs2({EiKjLv{+~JvK z;I4#o;plSUX!)0Hw)nxcEco^w-s5ArQi)4q>sj(?R=@<-+{+zjKtS!Vc>5N(*%$3Z>Uq>3UqF+%8{${{{y{1 zLciw0Ybm2z-4XT|`#4BtCV~S}rt$4`P)(~r2$MWY=v=84FcJSv(KE2Fh6}^PPVFE)0uB_?Ja|Ke_ubo6DKVg{XhEO@AE@D*0;qN3CQxf7Sh5 zshIld9u5Zb$zb6Al-9RUn;OFXR`=j^_(gZ1`e`3N9Zhbedg>oef%Lr;sW|$l>r@@l z$}ZJE-NWH*H2kcdnqTbWA4mP$3!(mX52QX#ewB~(PuKOgIZk4iTUZiveY7c7S%Ue)IPE z3+cw?zs?@6U%ZpnApcFZ*5R(Ew2n$%XC2hiDto$9*=;yqS*tj9ys}QagJCcZS9)bG zXX?qGx1`ZZ21R393sYx*e_sybLs#A-W6wP_v_P6!i$|$wCit|}zF<8wbuY|Zz_8$* zzq@rAa=j$zwVGMjlT3yIO6Tv0+Bw{U9N{bb@772L_}XBCPJf8pq&@TbR-MR4S+cZ~ zJ=;0iEpW0?{xHnZ#tFtK%(BCcz(X=g<}p-?G(TCE21A|%Cm0FvXcTPuVF1S|jsZB@ zo?B^1PtMzCD!)MV+)%P5n8Svrli%LJWBR|0CGg;xoV?E8jz{q!V>wlufiv5$hIhmG z$>q#WUc!grM~u+>7GM*j$WZ>lvV6?bxZ7a!cSX;hSAMD$K7S8V*VxR_qyC3~Q3dupbkBs3-Yv#DNtjA4oBCEO zWIOKF62qNHw94INiJP^)ZF{q3;Ch$I!-5yt1Rtno6@D}(y8xxg@_ldvS?K|jg#;~< z4%H~yWvO+m!8VJ-DX(oi6Ro#cw9cmXTArs`b0zqMnqPB^%z^oOAx`J-wa*F;Huyoz zz5+3SjyVfiasmkpPN5Z}^q9BHhS%npmsIXrdK#HfDi0tQ(2gV5?=Rn}iJLf|*M*S(1loF~ zc2n#xBGBuXZ+^0>Eq@E)ZG-tO#4v>PFNpGg8#z|geM6+6`UYre&EK5|-{2IbP*@S2 z0Tgg36Dgosi&16!o`b_eAL^WrPR$FnS_tV29Pp@13txv@=2e(+mIf{#^H6;e9837X z&xE0Y(*p^G_rzkkQr9f&2zICJx6%=qoYoCJfkA5S3Jji$_ZGTz0o(Qs@`D<`VL{A) z?Tom7a%aWo9-TAb;T*DPqeh%&MrvPSSu5Qg)7~B{g{6u)MhbD5HVV;@;hHc|h}ph< zLJki;IOBE+#bB6aBKfjbxjT!ul~&0gI}@blcG-OFOpqVcHn(ByOvGtsq^pgc-Q6j| z?Xgl*dA`}$32~S<3em`^t{h-o)wsNW;X;b-+b!g94p z@DNF7E$bk5N8ws^5dJgCZ^K#x4))a}WTl`nIojt$U^&0Tj}8)~=AI{t4pet=9n3>T z1_=w&#e@##0(^z?MydJ;Wm9KI1F6_cZfM5()jR2)X&10N1-Qu*JF&;0y+KQV&fw); z^B@G`FkJyeOFRJ;g4l}(a!8#H2UXr}Kql>b4angkoyG=265_^z?RgWq8EoleFs)cSjhvXVMgWYJTvNAT{?`&6hS3f+Qd5?A@+TDq_t%zvN zN>0I24N%!M4V+6`9?z*&NfOdD4PvXdXh;${m;A)|DLduS({g!KQ+CCFT?WAkQDh-!mfK$v&V64x57o~}aA(nSKv=OFmUJ}Urc%_bQOpEku z$f=QW{kwCF+u{1{+z9pjrcEI59KY`-O8-m(Ka`ni69_zqnTrB{(=n|$&L}9>SYt*p zlZee4LNrF)h0oAoLQ!aYs8BSCq+&)$pH<8X%}pz2z@v2-`}K?2?rmRquXWdmwFQq@ zTV2Sl0@>aux-;EnE4wsn9nzz9JD4WRhEwJ0PIrevH|gqL4(=|Wy}C4&-2%@OJ{JIv zrW``;b zAI5$74>`YR8hEH8RNF$*ImgeY!g+yFup}`A*u)UEbt>(&5G~lgJa*A1x}>X&JoM zT$drYk>pM46@BU^{leVDO$wMYMDs?pIodZ~a*6JAcS`l!4qmRMN{y=jTvXGq84C}f z@@5_Y?uFsZ42frER6sLBBAWP_{2r*c2-vsgG6I^p0A&Uu6n^?k11={!Xh`#qe9STf zLCdUJ)WRu$p%#7_EOMDG5xQ{r+7A!Hmszv;g~Lc{lP|nJVXqoWP~@;)qBOK?4mGRQ zplNrKwoRuk`&gY5xtffIH(zxT?v>By(IhkOmB82wTp$6`jxVJ6*LqI?pl9)D@TEhQ zZ{=j_caJt!3BD$XR)Q9hz-A+s0FE%l%t5>id?Q1Diw@w0O>qX>$-F;G;}VM8Ls@0+ zNL~mT7KdssM`Poc zcISgz9*tFGw^9Z4fJVj*I1pF6=gnWV={B_j7fg|-D_rE6PVm; z1O~f4SQP3vTNLWMMWG_2%9^L;W0f|s)$$IR!KB!D&97Mn#=v|lk5Ly%!F*UfRE5Ev z0U|;Ijqb0-?Pbo z`0agm2&ieaITqAJar2yql@aHrCL+ru6>QN@2QOVS2|I$xD?mYav%s5XZQb|Bvf=LT z@OjJAvM7>VVQLoADH^PcFtu?m#-GQNU&j~1{vup_IR1Je)W7zDq&4~VLg*hNv0p=S z*=brxgPN*^FiY$2?gZ^tOxMskQ#4zDV$735@OL)Kq?b`62tnd9_(t%75gXoF`_v#s z^R$G`O34Du+md4-RB14Mdm%xOJ1V~IF`NH#FUOo}0O~PHnT8cPa%)O$j@p_aQ8jrH zOyu;taVsV-7?Zh&J+3qmyCPPMBMazAE$~1gL0R)9fGeyC*J*q=rR9L6lGS;M;sX#8hUHfwO zzUtpakF@G)0m7%h%&KYfkc!_f7xT&G{rzZI&2n*F{7_%+{B8bXFq{XaWCOca?Ardk=oU)_hKXzr%c8?i~*eT`rkgD@e`9s|=G>jZo(16wiMZr-|HuFJs}$tTqtK z1(xE^r3Ti+J)7!L7+Vo-29UVRE1oMMj6RVFI)#P;0(ATss8S9hy48BKWLS%j61~&I zV?D<24(xAsV?upe#-VxuRv38GWA)38!7pd{DExAUj>A9qXU+qBEuX&!g0?rL7Ej=> zHoBG_+qW^k1|L7*)Od`44Ny2dlW{iCH8w~7SR1Nr%`(zsCesk7%(m?-1VHUG!^n!4 z2=th-yDzYH^FlLtlqQE7N@Qs?oF>{aMk?2J)t}ycQkM6+n)h>c3n<{spoYTRp-nwe zjyb&shCJ=xRr*R1x-)QXjt8aLp&WqerUT^EMJGx*+ohJ@@Q$|o*4`51?dPOj5O~?G=LA|3G3y#hi&eV% z`Rr}9BhJSXjd;+1;`3?fF*FZO4W@al%&3}2bh#3x7wRWl>@_g5Ii4rm&bXN8LF@^; zH}QMI^}99s+GT%Q(=Co>vvfF{H6G9G4r*#v=w@pEO$p~-=J2~I)G_%&; z>9Ia$d$zkf^+z2Naypv7@mWAy#(zflKbLZqZC?2-FnL6O9x8i3v-Fy6`zY;jc9-C` z#NiNr2DlfNS4m<&Fy!Qd$^=xDsd2-{1QGFijY7qy5h5orRB+Fw?H8Th1BQcbMSQ@mD_V+O&6Q5Mi|#SZV*D?S6O5YQuJ~H(FzxH`}pwYu47yvA=CNyQp-F zbSttg=R{;Pb#6j$W?%K^pW>5-bE%FW7V|1iTo^xjHMt$e0TW(Tdo)0w+s*V;qVzb& zYKI(E7qsO4B&AIpa;!g8d^}Kpx+cd16+$`bbp8E*{qZ@k65P{sHAa2i-SPcBm(?-O z>DVZvqa7o(Sr-q>Y2Ee5TC^r}kF_Y^VlO7;)0@^#=NC@*_T{Gmfz5HR2zeC7nVtB0 zkTd0G$7q40&nb9dSI4}No_ zp1x&&A|TaXh=Rc_V>}8reKSK& zIw5{L9l)ZW<3aUXFuM4`O1|T8JWMt>=!6h|iE!->OWx~l-mgFS?FRj!{IpDeHtvK> z0W&IO+V38e$#j~)osKz#@`Nnbr)V$?)U3gX=&`nISWJhXTB!=-kXOEk8IX1t**CnZ zT&G};SC-vl5kqBHn0=aMt3Zs~a{#O`$Z&4Y@s@G%#o~9>&0;zmeu;;j9~Yw$y{?>p zLZ)a_Dtqb3^E(iA#oOZMC zL|BCKQ0i=?W>y;wlb3_%FX%^^v0`&8SiCu7y+eV7Kdc7oA=P*gtgQx8aMy6XwNWhS(0r(jgwQN5GX6CF>zZ|Sic|@F4h2< zK(U5#A>uEfvU0irL8Ys_9xZO;2l}fnk)g717-2G3Ql?K;&n&qLUw1=0kzh@Kj)(z& z3Ca`e9_Pk@zc9)lKlsAN2J&Dk-Ku$MMPo8iux0AT!#MI@`3tcAH93~_VtBO|JnzyUcULug;4(rEF#dV@fBDO_r2{R@el^r*4R zHL%IdnMzFiUNU%9Umo?}2^i_R6UaTH>d5ut=BAp>k~1S#4B&$kvTeBEgy<%!df0yO z(|_A9+yw>$9_n2wdXT1>O{$PDWR{puEgaQT$iwiW;B zQz$!!Sgo2lBu>`p)m`pu^eTbz?k~>>3_4=-P?)^QC!#MKykpuW<9D4a?0k3Ce50#A zX#k)4g`icSI7OEb#q+4g%D93Eu;2uM?=f}fm1yJs=$9#2<@q4N#+Bxk9J?EQc>nC` z=gDk7h7%9nawS!NFn#(4h1FN!QwrEg#leT`$<60#{^M{|p$!NJ(||BB4FsRp{qdqd zdVc*Tem+YX%+hzA{WuxHQ~WaA(7pV6cr%@#EkE_=)vx`pXxrba4>K(;+A1B~cz!in z+z!Vx6yW*gUvaW;uU_H^)o;{uaDX6axvp-eK*EnovT8hkP?|DBThcSCt_A%vuJK)U zU-jo%5MAQsMrS#CKb!-FaX{7*U-iegi~em4Be5&#*R9PCur?DvMlFFY&+sudGQ##o z(}*lSjs~V)52m5{Gh^ofrMxf+yog_&gzkmAL<#U15(KU)U>`a#Htzt5$5?rXn5p&` zO&BT!9C&o%uGAkCd~9*b6z*XgURtA(WpDQN0h_SCg2+kL2R}j zhs_my%V2zK$d&m;{WzI$ZT4L~4x20Tb;0P|kb8q~T#xhtb3gjC`PL|9mb3WN&KiBx z8Sit>V!tzMFQGLSi$vp;^M(g=`I(TQoNN zI{Hfl@Nr>75o$!X5Mhv+$Pq=L4MhoY+0w{}HW5Naxea+s6#iF`!E*WmR0Q3$?@}1o#%9X|r;mwL$^5dRTo9iv8JM#s zg26d$L%9HY`D{x(P4=f;!1S4W-X%sW-^7Zh;*h(Ypf}@fkcuxJ&h%@((e$6mHpEe> z?$QNBCdcJ$BP52tyG8WoxPKDbK7cvm&@x9xou^CWD~k$ki2#3IF);DpDIRZ zeNio&t9>22Q?VRnLtiy3dS*|myT8kvwE2S}^>;4s6$4PN=|y|Qv*ohz6^B-T z1iWD62nKbK^jT)qMaZ;g{0Q+)93XubkM7S_8{MCwqdW4d88?G<%!7>cy9^2s5z~i< zNtTP~qXQ@Hoj8g0svK8f@QwUV6k+5JrekOiUb-rbpF_~uqYmVa++rMb5Td_#?0{*Ci|WB=oBc7-O9 zx+F$=m(VYf2@;)o1t}71i(@BAbQt^+IuP$}xcia>+_=k_-ti$M=i5d$B0(`(mE7q{FkM-RcM} z=@Dt2ZlX*A_D#aCS$3!PlakrZ{rd(9&Vx=sK5Ut3NP*1U9`?1*;2wQ{fu)#7BoId` zyF2eo)%RGzo!YO~lk>F>YAv$G%;$Dl0X8|GQy=BaaQ@X=Z{XnK7LmYa=tpqA?k!Ro zH>iqRtcV-=SEJv!LpE&!f#H$#8**ViODnD*m zsPfoRk4kz>c=1IkT{265Oy`GjUQMG2Fx{rJVdT;+|N)VeNs<`$iwP z>~l3zc3u?Eh?-QZQipMpTz&t@PKM%X5Igaw0``TF8EF^mj~tEB_PcY_F4h>5HSjY< z2?BirL#WX)ZYdOxB85m?M|$ol(X9N4>eO$^Q5E>(-pTQCP!w8!)j2%tU~W(jw0g!8 z`mJ8~=m<+!C_#6l@#aS3WO&Q_asyO$Z@yO;CQ1|b`rd}e+M=ddUD7ef6jT=x7?HJ4E4r$b$g-^!OS(*{d_ ze0CS7SCCLI<0tR?v(Mm>98aq0ODxg}7_=1V1Qdz=nL9t0ske!GnQ<=cZa@YBsxN#5 zpnHZp{43z%P;9!^XHhdf&CR2xq07}W&A0MXMf>fz(?kQFCTs)Wh8pa{&$q$?t1}`w zy*t(JZg=Zt!!x(w!)A}H5wJ`z1&*qJy`J6Xolc8q)CkJBl}W*B3sXWetxJLyEh~2z zjgoQ6AmU(mzhu)vg!1aw^ZtA>gK>m!5eaNQn(%PObWMn?p3ZV-+;PyH;ik}g*{I?< zScB289i6F~F2>cX;oWeKn0?BvC96*fZ!$i39>)jI8^s6D8KridQq}7!`ZKV9*Hjd= zT|o{Mvbc=xKdnE{zO@sjxST>9iW(d`)7&+4XQFg)xN}(^kZ9%KuyPlk)%do|J#^3ZhznE8?Y|MhiXV z%_Fy7?hg)Ht>gBRg)i?b)~XwHm{VqUr&$C>6zpvxJ{Dulgu4${V{qc`+H=(fQmy^P zj*L?t)p|4P(2BERe`ck&YVMI0hfw}-wQq>H8E?^mn?_)81LyJ^9>}jx;$uf_$xjzM zHNWx``#SC-P=r;iJ)3xc&1ilY`_l$f#R#$7?HVQK+=yE+V)yxLi~RK=-HsP7fZlx8o6rl7@HHG=2PP z(jQPE65!ZUxCE$fC<5`l6pz!UhnkGj8iV2K>i+lc&VLfF&#N(i7=e%bvOe&szcsbY zM#lyb+%VzHe*;Wv6SbfXr*86(mS(WE6&bh1h@-2QVXjpxk<_ zG)p@5$W8Q45Ah@R2fGVz8{YP)R~0Cy=>T&6(yy1AwZ_@xth;}JE*RRj*TeDiYBcX7 ze$b({H_~8*J9A*Bs@XKzo?5@qU zYSU35*6`MU9IP!FttDB9NLLX6W!*)TXebGkB4-eQw&f54k`F${hjth6C2cR1t*wz) z8|Cgs1j{JDd+?11sZBT3rQ=ND!p7%13 zurwX-r^DNS+iIGwn(0jmwY(CqrHu#4GpQZ=)(CiJZk&V93G>G~DT;9+kxBM4{yd)iI=&G0 z7k7_;bTCqPNaer&zUf$9+ZOg0`}oJ&0w$I;d`c zQH)p8dItTR6)@1<*#73fWGwyWzpN3wdimxr*B3(naAxx2)hqc(|A;Ju!DMMmVbCTm zhk?7aCGDP447-s}!3ga6Q)2O1UDd~b(fmMu1h`$m=F-Bffz69Pj};xqx=7Dg<;z=; zXJ56_xnr-Y+kpNt4!kP;qoRA&?>@HIUx6FhD_}WQsjVzse`NP67W(r)$&yoo+Ew(r zM`xYH(tD>SacXjc>u`7RVUu2;npFgDl>iYmHqDxxMaW;{Hr&@jDAK1wz&&bzE#(Ss z1z!*UCw^di1h`YkpbfVPX*O7-;CUGhT-@Tj3O6#Z8th+Q>21rx-i_*CzjvrQo4ai& zVT;tAZd&^G+mVV|_V-pnYbOl95$bG{54ogMrA)8aJ>1vMb9cpIgU(ZZ=E-fYR6qog z^HnvF^;7TTCE!=p7jQveV%&m%qbfdoS^YQ2ilo-;k~+ZZ;V+9}4EfV^vba|V=-~;K zk3(=C_uXVvDRhtoySkgqtINS4InbimUEab12tUu~_d2Kg&195ZiAbbV4-?`3HcR0C zHoLx&jv;pM_x*7Ks2*O)P-Q$vo8C<(VM90u)E}-T|6kK1&U^%yV)-|JV#^!qTETo| ztksQs3tj=2a}#KN4X&JN_2shA&_y1tWXU5*2f4V6W%0=~a&bA+j5a!&)Vy}^EKW+9 zBTibo8*ozaMNYL7sabiq!sJyWl!F%Io5Hgv+E?+9o+$7lo7&y^g!Huo7d^rEo~#9#;x*ScOF+L#W4^2A98B zhTz7lh*J|YaPUP=W)Q6T*fEjG#XvK7=utIbVn$gu7Y$xMXlMs&KUZ)gH+Q~Z;aQyg z=pXS5f`SHIJr;|%3ojzhbihA?(yfg~##P`$@cbeG~opyg#q5;dJ48VdCrfP>g(= z@%(D!E1^XVKhN(**z?!@>F0queHR_OpU?X@pYBu|hgjB6)2cs6CJE;8%kiN4Eq-3z z-H+r8!0fd4v3$3GKA1L1y8u_fXVrM1bqlWO`<`uK?%|0M>nf74UsX|`FjOVRGK&10 zJjg!rlbQ*8QZwoN9TR~JrJmjRmH8X?viwa$E>2y2(o3hm+^m-tzC3a)Y%R&U0F(Ld z>;g<0yvQartKisDU~BBNOCE>IRoN_Ls_nQLPldu|>D&Q-WLvw5W~?1rk$vEC{875V z3vrLsc@)O^f5->Ervk^y)Qf67ZV9(KeWiG=SgUwI*_JpH$ z_zig~9DX@@JAwpLMKhwXCy5%oxL)K3rJ7SPPBEEz3@pd5ACa(lH5jj!Tw4#~qF(n< zCt*9>-8|oaVEk%6h#dO{>bGnTZ5%WofFV|cqn*RWboaK%l9uXg!$?2O1`*!ej(Jq_Q5Y#&t>aBuP)#Jd?A8A z;^t>>-@JeE=6wxe|BiuPzj%LHL#RJokSpM6PAWNT06FKj9oS3JjyfGXUM|m`7^% zdrcp{hCq}DfpB|7Z1Q|K>wg$k;0Q?Y&d77AG9QPxi)mk%C5ftNXs$DRJ1${nn}43n z=GgPA$#jmByID+8N>3LzpDPsSX@6GzI2jFpz>y)TTz{#)!bg(96p*>9swo!S{jER0 z`2u#Cs6{%n5zb$lZ&bv*nZ2;)33 z{QNCMn2_WqLNuqXezDo9FL$xo!k2I1My6dSe(`pJ7&|Aij<@$b-^j+G0I>nGlhCAp zxcp_d)Uth2^3>?L8OjsPazz&JLZATJtu*7TP`E6WcY-Xn$7;q>p%hmeBgdC^w04J0 z`&c2B)jo2pkh68S%{Ut*ZZCVkoiO(vy`ca#VtF2`hX+56HKPT07OSB-Jj{3#vaur& zpOZl-9}@G!m_H~M3~k)QVjiV@T1Jh3kp8TU9xu5kWfX8(M`65I=gNu(Vmt^e`)Cjc z7G($(CLZwFNxK51V)tT^L(LxzE0|(nxaB>>AWZQah+*u)-8~F&%7=IH7${h{!DA%$ zIu44SmPCai5w^IKgiTBC-k?*RUiWCfgU&`|%YmA}9_?~cv^jxAC#1`+3Sq>5^7A=3 zM>SK0S1&H#T?qZduFJf>yng>eJ~KbvTF$k4r2Y*a{PXH>&&@;in~3KRF}tN!Z!kjW z$_)m%?5fStE=5KAN*_*sR@3-^QeNGo>pPos782OL=^XcJ*czRe{(i^q(sed>gFXaRI4=|QM*cB`# zppr3@0BUI)*(IN7(?+iPH=pGfu|HPKtcVe#ECqvgwX&!EkMj$mf4B^Y)p(#2D%xM% z-a#b;Zk-y@{Z=bCMt>>&#t5M*jsY&M<-5!F8(hEFH&Z?=KB^R(sGj?Oc2d1Ph}G)3 ze6xQprt#6{Fa6O1u7L)qEi8Wq)bL4(ldGPE)Pgdn9S*)Y>C!J-voWvE^aAOY^f0`M-UyEatKSC#_kHyhBNbCK6?cc^U5cpZp)_SmF?Ob z=kgbut5j{t5cU;AWsE8YbjkIey#jZ0CiDIX40;K23qxN*lUUf6^7%DwB`kM2Tf&;8 zwW_;|H%|0x2N!5mC$R6(NZ@oGFL^<17)*O%`CPI}!FngBI;F{f(e4cP1|5L+*QP8Ofz8=50!|$zebxU^Vb+Y0XvwA#%9}Vms$V=))%^!ar)?`JQ7 zV1QZ217P>4g3CdFcOkw9P-)BY0J2+9r8v|Lp9s$N3{;l#E^?qTkyiq5PP!!6Ln|by z3|_6*Jv%^?QXcINkZ(gO;>#N}8?k&WVyJRXVhQByfW#A5q;NSA5CUwx(i@`ZUgsFUzYxD{$enktMiD6 z>s7M0QNZ!ud}K76s@-UA<^kH_uQC;mv4&ulk&KX8%!b*G^mCG0(9gGsp~ju#MVZ(Vk&9n=X>3w zuqZKb%)Qfp!()5^-(6JM{4$~`XqYZ0Uf#G#NBDPXVe!%~{;5Az3OztqJrce(OHBc^ zScWVNS8`*qY%dMRI!vkas)DpZwp?ZO?4>T~r27MASxpnVCW%{#fmTY<;#e!G(YX|Z zv>f)08)Q*rq~oxC2CIZNtPol+$68e_`f2}JeC=d^|E0J!lxqxLm9!{T<3&>SjGmoo zHQwudM`!VjGk7+ktr2qBG^6i-QQL2svbJJ49!X`(4M|EDS6ZjGzN>d~de8|RPw(XH z02W45qs!(FESz-t7LmZ_Ctx1VdVl>pW5){uX2$~n>voX!<5_wO zuKNFfUJfva4#>3S*#TMNK)eywpM|%=bC1Cra62;yzE05r*F6%Sg4cc2aTU9E5luNB#M{ ziWg^O$5s71(krxAyCk7WT<26T;_q+j*WzA(*i^v9c+d1p&B1mPlZAmU^DrIlnb?l! zaxviLn9h7WpJ2^=OKx&C4NcA5!!MP0Tq{&C(e7z?u6on%DY_j^x~C8->z+bDm(q7J z8YT5Og5_X?W$=zLlJP4;ONu$6pXhsQW?H}gT$*5jnErc-`birSw2z6M4 zCq_|AxoHXz+ast;Nm;b#T2k6nY?CH~SRxBVlk^X+qoQL0jna%*ct&<)t8#T#Wb-u; z1uU=JIQ;`YF74=yuS34dk`t@cu6iebC&$_w?#}6NdiAE&&2n|AUjIESy14{2>*Eq= z@_f-dm3U+}{8FI>0e<7^#*V5k{I`8Mi`53*_!a8myCB6zLw4FSwx#vsgD!P6+L?l@j3vTHWg& znx*{R9hMF6ygiqr%)C;^&Whnm3Yv8c33RrY5suQ9`6q>tkA3icq$-6o+YXDPpU3my+L@^`)ZZZ4eQCNlQH09kTtFrus%bSlcuyXxWsP z+NMbj`vG=iQo`TxZcO4oIQt?<54AOMKiQq5-Sm}jEb$Du{*8bL8asb298E@(Xc;S{ zh+x?+C<-J@isCwxn0CrH(QKG+qlU%ZyUDM#xju-ct~<;pA`tWHJ_fN}!Hq%;IDSeZ ze$Tv(uRL?u9e3Rd^S%DmpH{Dim&R+yl=wyaWYz3<<0qh1W9Y={^Z(-tw*R?QJ(urZ6ogvlEvD*m!|xjQGgX}cWG zZYEN3zLw1qLT0TH0`IxZhq}N-Qsve@PZNUK3Te@^r;Fiea6Rwe-KUS=RbPe)!i(|X zej@t=HF_v%Tec2==~6im>kbK$Ao@PrlUqhaa5{891+!}hYY+l1kc||r} zH)>9Sx-gk}jAB{5NaX3>rTI+OB2+?Udy9lC1z)I4FBL!4ta)3y5e%Wzh zcdl~7VTrLqZ)a?yJ!$zu}vL=3HG0 zZT+5kmV~;0K^EN5i=|{*a%m}HB9f`a^>17KTas)ObE7Voe6PjnaT+ttW(wR z!(OOz7>s2x*DHXZ?x;rm6b8pBBt4P!3TeMB>lSur3AfEHa7N}7zL8^yMrW?^w?8(g z)QJ>-<)I-qF~Mbwk1-}AaxZIsyF+=~V1BQw*{pxdI75p<7flZ$?75X_^O!O|h}Nd* zLE6+ZseuZXO0CH3oMvAPFYc)1!aZlw_It-Jt&MVkZg>Dmhb zXw$eLZ=mR)Ilue@fS143Mp88kgZlTr~#RD0xgM2X_*JIpjJQf}s_=qwPy8C?% z2=g_#1t2suaYhg68$d!Fu2%SzN zqUKheQN$N2ci5PpKt!NRYxeHs(S`?q^Pj4qw0wT{kb>rvJcSNYO{g*=vm}M2Iy(bu zXpcsUfb{uahJ$K4!%pAF58r*iJSt))Aps>O2ssYUN7tScjwYt_4{=KB2Ey4CMjAXOVQ6& zf1v&<&H*7{ZrFgZ!JvV-a0uO!1BYa3e;T>ci!`YaT>(b-V`ztvDP@I;aBb!P>F&gNUKkH0bH1c?4wZaDs~d%8QtwW4Yufb-zV-Z5PIoM5{c% zj;q1buV@p00f-i;MNft^Ag-u-EpWF~>n>qyMS1Gs6@a=bYx*@v?P7X>o!Ui%7o({7 zEBdvQ_~UZdP$H~vdBKK%R)pO6L+Ig>lSi&M>vazg^mw&9kh*o_m5D&&$Hfr~LlR9m zG#s@s5}9#}5i%1vjYqC1Xs(|(8H@4-Ycfn9a(K!`+BH~^347M8bWM%W`FjJMDdy;Y zWZrz8WqC5a+-SU5ZMBi_OyrQEmm^PiN2oWQj@%XWg*nLGa{=Ig^4Z26ly~3m3D0pS z&?T3hAne7prm5A91g}MZo6yeJWS%7jnP*L_F}p#kbit#wOWMNs*Ub zU)-It-spU7ax4FTvzO7LIa$~sAY^846@pp&uK#8f?!UX_?NxG14#G||@}23kZK(yTGbmyN(9)sa#5u{QMG+2Tz{*~(`tC4y15doBQ6 zKFW4b#>mxQ4D*h`a)up4f+L+tLQEwHX6!MQmdrdRnm=-XnVh(6df<|k3R1s*ln>H$ zNQ0!18o@^JwF2OdC4PU(rGQ>qA!e`jv)4U6)4pVPntQ`ByZR(=`gbz;>#L%Y`CU8= zxMcbeKIZ^xSi%87S}nQ(NP5%Gpq9t8sym0v%OOxx2JF3aP9W){Wv2?ev%Fhi^*Vsa zS-Ju!S+|LQ8&Ko*8TW`p*ABl$E7rgdZ%-xTbuS$y@oSRY*}>xn|JF0|LoInG>}gb^9M9q@&bS=br^T5KTUlcSIgbx zEWSaZ?BBh$PZ8m|ftw)0!V^`81785%mvRZPTiUvR0dTfE2Hf^Vwi5`cxhcBOYx;`h=j((J7i3h$k+qSS|h@-=xojZx(1RoG9IyjF8(N;O82pSKMk zj(Kz8Uc#s`@B>ZWB&hf(Fq<k==RKO>c`lt41TZC8C~*pgq48q9E*uw9tQ)Rzzd4 z?8p>Bx(i@gkys)7F>~5hadtN?H9WP9?bS)bfN$A&_o0 zerfMoL1%E?Ym7$ZqKjXd^b2vvtg!c?6|vVn()%7~yOWBWb{2IpZs;-U1_2@SzM}@K z9Y|2`yXZwAY{8X4@bEsAeyR96_H6d+WIA{;?td6n1H|Dth`6%X{UG1;Y%!Zp?tbon z&pzRP3JTetvx1Z}m!r&=3@=CN{sCW>c?C*;Uh;-_)XTx@Qr!FOd*2aS`Fc|PC4m#I zzhWaF>afbi&mvXvWzb>`;ub`Uu$a8PE&}d>k~ZS+@$f}>L<=*6NTRSSj3i#Id#C$d zJ)G>0zHWK}V-X&vWcd3Oy5R9sgzUb5n*_t1a!RK?x17@6g3UN7OnBI~!C70<@YDCq zm_E`e%T6(OM{Kvu%nRq+aquRF9-VE!UfkUHR69AlZgrg=Cr;f1*CGb@z>Uc4d*B+J zp0Xi=a7}N;J%Zh-*GB~T>qE!=#;p+@VHsJpHsTxhu#+hFm2~EkGX`fSy_2(p4pj8s z$+_9a-<`wVaAYC>ujX#fTbe(AV8D6*k;3~l1itD0MrH3M>vG?p<(}Bg5A4cn=Zfv zDEJfz`wX-nLq6HELD=r#@OHVWVvK`8H*i#$*-uosuzWULW$Pot@`w$q zBeJZ$6t-Y}v#h=E4kB-pz3UOLnbAimY|D?ZRyY5M+(Y<)h`}Gk5k&9I@&<7)E$I@@ zcL$C)ymPK|E?rGV!<(=Fxu~Y*ADFu|2PX=2vfJz=R_(7KM9xt`*n)?G;4bF~OhBq4 z_Ls!e2-0ZJA3@5*c1W0iEY#!)&3=sX&Uh{_sOgDl?(=fcWa9IZo`OJ`GfpV!n&r1& zX|?Wkk92~B^WAasZ|VA!`hPOj4`z&o83t$;*2DH zu@w$uVd^IX0evj%e0R!sB@ULdIM6e$~w`P|CP3p#w7AUwb zWCUd271H2T)E%&=O)Qjgf7yBd?nvX7*iLb@3&A+nv(mC&NTOw%`u3Oa!uKp$?~2QG zyQ7NV!f`3B5b`%p`Vat@^#n0!eHm_q&v|3$wyZv;O5J%Ig{2F$fZTvq0hdn$#Zr() z350FoEReR+-J!+}Tj}MqSJ%=}k1DfN9ouW%C@_qy4acAo{kocdJsI9qZ>4tYvt@AA z9%~l_9?cnpHm>Bl>Q8SzNwG>1IRwl(69{X)iF)VZGSyXnlC!z{r(fe+a&m$<1# z_XfBDc9*62208(Jm*DsYQGfma?0suj8%dJr_x%-6XRlf{lx4uL9?{h-w&`wm?8a-{ z)3eKRb%azvwMB_hNyaqNf4>=#ugF(b3FL9lT;@z0Rc2)5D>5=NGBTo>s6im>MGXS{ z&m?M)X0KG#Ab7vLs9~><2T|ie)cB_sHOT6z7B%QHySu1i?>gOQe}CS(uc+~2^Wp8x zR~9vt=Y_Dm;RA`nrJMOCc@RG;#1Az}&14W8yj~EoOZ+oQBX-+YDw5d9zr0-HT|y7S z$%An6Pc59->!?~naaP^k#T4&m#blMI_m@>39?^YGS>@GqB&LV%$2v7KV8S>xjNEbY zqk%c016jS#TENn}n181?y|A^AtZc8d@CHnbMO(Fvv21)(BVz&2b~-XOU+wnR>U5YV z*`squc0`D?`|Q~hWFikQ_`bTE{cJjAdqcTjOeZ%O0@HT4Zv#Z3k~Qx4ZE(qONOA?U zAyCzfh5!mC^OwvNs^9caGc%0T>#Q71@+%@}i-!*VqJN%EjDNJfQQj}TVbQ%Ti!^6t z?26#@vkcZ_#W0}v4cP?)trs|9@U*~*L)lc|1mM~V$Xuvu==?OSj1;L4?9QiIKk5+E z-t8N292;4Y8y%V244J_DtsaC}hHunyKD7Ku&wW==2qou~a9QSL4EtYzxc6gxec_f?+iyr5qH) z>~l7(o3dL0U$03JP2?sFV(E-BdHCbiEp!FR{N~k2i#;!q3}A$-_(-frFH`AD=Rh! zif+aG14SK-_&0TAKBG5xmis7{5bu-2Llh!nyc#P+IJ|HuVpEX+MW%0f>e!+&lq(lS zlfc4Yd4JE4r#`&3{zLK9N`C6)rAzQpla(FSDp3u%CJgMzP@vvjxAE#C9}Op2QNi4f zR;*?dZIjc>jb^&j(U{3Yb4EU%{Z){HYs@N{DRel5Y@HqYt6Qgwx z-KTh*%=$p0aOs8-Ty+5()rbD%Jj1wB!G>s%D1ThKVMBBQZS`Vasd~(1On@jYBpg^cIwakYo1+y$S$u&{b>ea6RkLrlENHA zB!A>;jG2cZm6?1snt%4VV;}1EM~9`jA}SN61y5fpp8vyIDDg;7?B$l0nsl}4+H=IQuL84-0)q! z6e$S!KURn!n;SV{sui1BGETKDSFh6~JbzDXPzfJwszlXA>NU2Komv$FgI%gRR-nOk zpXSo!&X2I}#utCOOueXXZ2?+jxA%soqPtbDwgvV+qgvo>Kn+`9munE}S8Y`!MUq=yWj83usS`$p@u<6#8m@BPeRc__xlZBw1*mpzL#elvCvR0?DMt}RIDgQ5 zhX@Q!S&l9u&y^lgzrHm>`p`|0GD_2S2zb^Azl7bm36=olw8$2amTaI^JP=-24Px-f zt%RmkM6V|YHg@EGkyMIqwRHS12p-ueFZ!L!ZRHfiywl4@6nhHbPusM?5AdtNdr%2ee`y2p17RYz`(ZPkZw zjX7}asiqYyhLc&9UP4d!ohkW~bFct=UyOOM@W&o+UVY(2aq|JpZWN-bht$Jlw1 z2fq65i9-GXE}dwTg4{|1RDZE22_r9wemQtubN7Q|TXBa$*_Xt=B7P;&1r)}t?OIn1 z9cij2X0Tshna}Bx#E(l|60Nr&L;Cz9Xm$wCmR$%jX*I3)(4QEqyZd5mt6DLF{QBW7 z?N>hZ8SJ`_ivds*PR2Pje`QeqkdI7e^)fH|lbc^0KDW3>C2Yb{#cirE{W z4A{M6hqT!{?_X1^cZ9CjgOedrHPK;fSRE-+%lp*ms|xjeG^|b)_(xiA*|X;7dyrGd z`*64^gw{A_=zU-iq z)(3oNI)8Y0_?0(on14+S=vnO%$^@$;a}6oBZI<8|Wc_D3F5dMgEP1LeuI%-oF|BYV zXr%t_M6_1zCbIPnHxmI~yK9*PpldV7rD>%`DSuo%v+tq(%Nn7(uIz{RZ-11PUGo6U zf@`$4jb~phg;cxJZyh(S5#!HaS}luWJ4P?(Xep-y}IQp=v$bYgbG1tKl*>LF<;W2_2iBkwR

X3I)rI@Hs^)K%pMA@B<_EL8Kgbe? z^A@`246JpP9|g)aTKx*zWCJRB34Y)y(}Xd2ib=CTnN!6gJjGYcD?Bv>?#5Jm^$nTs zLPNHpOPG8^Pir*;@wB#%llVG#f0m-@v-|AN-1OkVet+?g;=(@Ux88PE-^@e3<{d}V z{xoZJJU1Zg_=Ev0xPz+Qe3qz_xxsCac^EiX$TAGPenz3&s2Bz5O+!YZOIY5~>t8Oo zW8`Uv8os65BTK6HH&WxUa5$DRSXF$=9Mu&#y#}tt4>b?Qm45(<$0Otrxu#Z>(Hy9$ zB4P^w(c5<*uJdCG~v9d@Z-s>p1=zZi%|S zj3;bsRI4~txiaYq4rAW}YubLW)%@Bq&i~3LmQ})bFV}j~mmdYnRlC)&p*cIVQyXx$ zaFHq|7cLdo8c&AHu86UPEBNyEgWj3+pTEM*41Y0=ijLhQ7P>=_-4{>MA@cUWiXq{@ zJsiJ$$1nBSfK7N{tN4Qly!sFp5`8>~R>UPdnE#k(uP-B~c)A~AJHC-x<#}rR!Om}$ zY{naA@2)m}K4hVV?~lC4BhS50qr>;&&Gp{TuhWSAqh4G43f}3dwGWZkgwF?fSJQ;; z2Y>UuuenPyMmZgy&d&AOMt#|xJv&!6en(H7%Hm7vE;if5x`UA@m5qY z3k0ZP5&|W6j6FN`1;@0bRjx2(=D86v(_%x2a|J>MMHg^+tvarqUhA=F>h@ZdV3GwT z^IE~;3&$;7QE<%)Dt?HsX;*M=#n(JvE`Pq}xf5SgNQ{)0ePW_P>vxn5DaY?46-KCk{jfSX7N=$&GAJoJ9S({NMevGvM`g&7;6k6O2nX zl@?W7uk|jwVh=VUYc^y16*lgXmbY68WBILh_Gh*o;a+JxLgYhgzk6V$JIs9^B7eNi zTHTIp;`K99Vl>^{Ub=zzPg%FK=Pls`5aAm*!8EpZF;$g|seV5d3n&iCGr!?-(83JP zQgcZL!0TUCibW@%RC4NSumbD*C)QiVTNO>T##`^7}-p~IH8lL|a3ZKJYf8GZL z5d0BI@Avm!rxE-s5`KMu@L@lV@Q+B^e|_+w_x_hR`$uV{e@B(O#9jjxakcWuhp$S9 z8XvWuRgnz1+0Dr}{x`jZo zHeU|3)SVZ_gMs;1Ji}EeA{#G^CJI5X#*v;VO3Saw)znn{f&RC_F=EBqJrD9q*|@ZY z<8n#qxHO`BhTM*@!67b3V5l0q8)3i=ocb3UKMZ_RulmJ}#~XEcC>x8rcUC+hgL$wr z|Jp`V;3nqPMZY-D_CJ}pAAftYBY&y-Ktu#MP9TvdycwT+nVA6*;$H?(C?-)Tu+ZBN zx#bYzDF59|cx}fKWed?0jfjt%$pDR}t$^nl_`XIcov#oW24_gW>BISI`koJfYb$^W z*P8;&e$x$s!Pbu$4d#lZ)O3u1AflHec;OwoF_DC*FHIC_HoZ5I1%K+5KA&hjaZc@C zCeT31gX>@JJ_b?yHXM`c?_p?XbFuD=C*02N;XT1u+<#zZe$2-2#tbyL3rK*fO+doL z(!;2A3q3A8>{%9C5qFm8LcTu9dC9QjRiPW%QquzlG`I}%!us-t(5 z`JOx&%71N{Pc1r2*ngAhkp)*R-s#mRzQSiz3Q)74={fXO2DO{AS6N%l>P9k})%#p6&LwT{F)FH-&hH~Ho)jXC1r}f$x zV0^HNc`P6NW&0z_1$~F=`P05b$($}*9Vu(Gz2L#unA&@YA%ALpb(!RWyzs$c@E_s) zyNWow>Zfh2NYf(=t{yQrN`$XBY++&~xGGTW!E93IpDZH;HpeBK zS?g7IKD`hxTilFS&gujoaN=5j(fhHg>b_MC!Yndv!JH z#AZRxLt~=_QGcL`W>L&0(J#vRZLDP!1?p>~RH9#ZP||7ozJru$R;{2xqgF|mOH?X~ z)YtjNZ4dtu29$dJsd~tgG`U(m)$5|hCTuUb&}Qr`%zNqvFp^f!=zp!6yg*SEhUzwWi*QjQ7#%@o zR*4KG8iJz=cfuWz{W_pzclGdZZQ)~o+CMjgD0qYjaAS1D=+}}^uCB8Fq&)B`fL0V| zL8AH^T6rVD!7{N88ih45nEjpDJZJD4FAv^QsSioEDSDulI;9?vyjHmb{WrZu zX0Y|~Dt{~iXi4Em3O>gc!>xVxqSmP4sgbYRB|J4^0iVO7fLtqifR<|&S7<8N$^xR# zes=6S8<5K-B*)w}Mn~f8e%%+_-+Bd@q;h-dzIe(-oQIc`D;0693n%=i@oQir7=-Y^ z(hgP1mz0F0fM#h?i!rXd+xO6 zy9Y5o%P1*$k)WJ_qpSPE2YVU(yokd#$yiizP&(9iWTwG&)_rdBRTcC8$;11$RdP(@ z40c!BV2Y%Ukq{RNzx@1{pAUciIgP{*VfXuHfA5Dhf`3KAtHU>M_FsKCIAoyucVzRE zJAeC7pa{H%z7*ij*RKx`L;e8QuZ}+fnjTqjwb!rWuJnsvK~!Jt*52yUD_xL2-%YZ! z{IhwA&kI*W(EseF<;80VRBORGX^wCJ0Slc_P>f=x+J;X6vIg^$g{h19%pgnKm{85A zD`Bkidb#3mS&yfo4-iAVgjRr;Xkh9rrhiHw<;2uAJ;-tJ`g1m)eO-;9hNjhU@cL>v zLDAkIF*WZEfH&!lS&g9C=DlfD&6m~O$TdVS0B$m*$iLMJUrg}S23f2U+=U25WeaR9W1yi(Zd1_nK^_k6d)Z}+%Ox0ck|M-(OXrl zXv?>-{-Z4rzQ%RAGuTGW<}@r(zfsWh7Roc)A+}~u$|`Q3k&ivRxBS=SV-+zre1Oe3 znGs>*Xoi6t46a4ko1amwES`oBZGY%7CbpBj#pLa7{1g+x>zT+ZSfZCPgu`EW2VrHb z;o+s^*Jce~osFTeX`rnUIuQ7Il=UZri#j34fU05)2B6>yu9HSblLDk~J(!&K^O4C( ze&`Rp*C$4uE8-&tPXFRI&oksO)AS@$>5lN8h6yz{`_L3}%4CDz_c_xC_vsWYt-3=s^*rS_bz%Su^ zQka<=dCOGuUK7?q;M1C$xskU_(@M1-U8jZFz5=P_`3g!f{4)Ey!MF?7(F4;)Z)&T= zJ>CVU^uAnU^6dbs1*>BJ3V)%W^RON&z5~5&$aNTKt)`3*mclN^u3-fny0(rf)yz(n zX4ayp`WN`G4vzZ^a@zo)io zG*Gf*V?D{P#%0dN^X6d4x{;sd>aDDwQ?JnQ*+lAJ#?mSL~~RF%MB zHpI_B>rqdsJu#n|rs$_l?1|;n8Vqk4lWqxLTa%AoRIOfOYS;o_*?^#LkWD=kzN?)q zvebt+wyQSOvSjA_n15@TsG9LnV!AaeJ{IHaB8|ikVW~BkWN@n<@xPID>^RCGk^dEm zSFpk&_*WJcSIm+45&3!Oy^Op}G(l4@6YS3P|L}V4D~l95%->(K?CM=M$;ZQ>VBrI< zS{6Qdu{aK(b)Wj9BPMT8ZBr?(Nb<-DK7=ch7JR7vdz8_1wSPI89cs8M8HJh{=tvct zHqjAd)!ayj7x4Sn@eM*~2lNiuUHQPn6OTVmfLg)`flspY zL<@gxT>m>!#{x6trBOcY2cLNS5rR|H1$j9ee9Rn%hY=Y=#-(gzz$negIyf)JlMIr} zA5o5&d|;cg0e_+gwXEc%D~qGyL;E!zo*L$V%b5N(GW+`q&L;hYrfLt+VZ(;_OW&bQ zoU$ugB}o6y?c(K|?2>9Z(T!5CvF3ZFD$~>ySgcjsB3Lfrsv(pkHLRT!al&Ymea8Q~)n-QZlFa?0q<;jr$SynRpqTUUF6%2Fcl_Qi zLgIxNx=O|f__g46nx!LZ{93;0pJtY)!(Fih~9*R~7vd7p9t~8#^&oMe5z*8)EHJLTxjV_A4l- zh<}qq`4Cnu>!wd(RTz!>Na@HMh`&UH{$f_3uk}`1hvu9UfV=u}x*E zx(<&T)&v`qRTu76OVtJ?>eY{Y$J6>ov3~jMkfx|<$abdmZhh0rK#;{t(Sf^6U=iwlqD;YA<`A6TSla7TrxR|@Vv=dZ?|K0GM> znkN|Z6hV$IMn+^qhLKz63I5qw8?uZd#H#}VA)>Gj9($kq`KW(7%8;AonO~m%LVt>o zCOQz&XhU==nhS*jyq1+X!@8YIkpJJy_4~cOPKfEUr&-a)ZBgX6eG|- zeR#3DO5P(Ttjs3h0vC2Sq1VQDa4Nk#yt=bJX7eg)ct-;aQW^5ghcsgU2;y`NSIxmLfYa{}8 z3~aT;4}exc3xTndK?jyVg77YyVRkxOrY#8Xpz(8u^I9UFrHVNb41B=ZkNVJ26R#rQOZa%?6vV5`MXF6(KkipbWOJ*OQ` z9&M#njqWfy&pscXwH3}*tA7goYF1uo*qv;|X!48^1k5#%5NU9%f7-{9Ox7YWwHcW! z;N$Eh4vb?t9bfSb@O)T3nhnN=4z4V?d&k-DoMFtUw%)GvPPMLPY!P>LnaZk;Pr5d( z-Y%-i>k#5-dIx33TGrD;1Cy1rW1~)^i_?Ve^x?*uuf_i4e0IsOmVfd&Kb;O*p@}?R zbWRzWA&z*b!MxNGppD-@EQ~?rXE)V+Al!-_N!Ek$XvCnhVUN#e?^A!o#uL)lDS@@gkdXlBb(H`FBRa&L}I+rx!aL8+jaP zkhwOo)Ny_y=Fd*Xrhmutc`+M};vGS#0mOmfg*B~clhBVqX7yBbfa3D)nmV`P&iU|s ztkGUf`*)E|@@d&FXQ!_KHYsO}E8|bT2dQG~au?DNtrk!W+k;3UZ=;SNe~k_Hgvm-! z@#U~@r1N8S%Y3g8%~|^j%=!?zLcL1#D7!DHf^B(t-+JqfgZ;0 zEz)&Y4M0|~RXYKq>#lDl*KBn7@6CjjI?K;zB5!lCh!a{>TePCgrtf4`hiALqRPT7J zHZWSk#`b!2WciVC)GyA797WHKko8#Sfv(ns4l8R-I96~r%|~xo;xAKh$wX^`oX09F zvSGt@7+|c}#ea0lV7L#D@@>E9!=ZxK1OSh1h$v7pT(1vW42?L+ID^R3BLk{>@Wj!E z560i#z6p$*%!w?>>QR$WqRO)qHbL zvVX4>&vRp1wgdc%%LHP>@4eptVegkWA9@F`4u9^w+kgA;QyTTLVEGu6jt>53Unm&H zXqr%_79}cuHQ(9aW|Q-*eGA)bH;R&+Eoa_5_?l*)r}#IYjxw3h%ZDmW{Jzd08h3Xy zVH@5aS{(i*y8%YgS04LdO6sh1s?+%mJVaoOGdOv*XPZIK{-|z4+&8vvDdj*!}@0V|~MX zf}I?V#@E^KZO+cTP~q}mf#^1q=Cg2bhIt7jJdA3GXIA8YpCP78R#kpAVp94DsV6G{#d{n+qZ8Y- z6BD4la;Y8^W6)$ll}zlJAeS1#*EuM;i7wXGiBWto*0T7^&voHN7$S5cc{l)Eh=d)tocful zBe!#{OB4Gp$due+kbn?>4MuK{FQuyvAsL}JI0e!;nw_%goE_=hwudS^l)mQkV1GWL zHhwT?k}F#UnW*Kp0o9JXb%^-Epw;q=E^2KIvni|%1pY97Gwu)fis7C*bJy39)Har! zzT?;&b+xf{fI8#pfWsYP$xQ#pNsS0F5yFp2?s_Je|1QcuBoPQB?RdPwPlLoC45B&=dZQ}u&9&q8PrWl1o-s~8D z%9?+{@$jgD(P_pi=EnbzeDx+`)OpkPB>MtJW#q_3Mk_S7eztxBs3??01yl$@8mO5% z1HRGJFfddVdeKN-pq1PXc2X#j9M)kD1pUGU;iC+cLhY#JE2YP!sVK3agMTxEn~rx* zFsGIh`e(3R1qs1NfM-l}7t7Fg%L)7#BKD4OuP^serWhuJ3EpOD+BC$74&B^2|L++9 z|4sq^ooz@tU;hM->m%VAugZxQdc^w=hf8jDa5My0m zApSm8C6;K9f8H4D#1VJNExwh%Y-;ccGoY4|;MNB2f#$lY4Ca{a1h{yG2DsqOd3l3W zsZc61m5Qi!T6jLEU-V$iHAlkc)1-eFw^~PDR>4LJU3R)n(&f5FvmDCOW6OrifD~^5 zU*0H?Bm!rZ6VzKL6gCd*e`~X&=fdB$+PTfxIsH6b9)wA1-1L&n+Y_jS<#%OuFK^t@OaKYGBPCJ}oHWP+zyu_6IGgah4Ee0o z9T|E|TK7y2pTF@WKhIIdG0sEED&kzNQt7S?za(2e00nDmL+Xj!fAN5a77Awrz5-(Q zXBOMsij!ER` zr!wJdM>2gG|doOr${vWXK)?CO6$3fwf||}!o83CCnTD=D6G~Zm#FRzqQw zLj^5M467tEE7rs)sA4gTEA@&{ScPf@QYmP!P$EgTeklhd)rFcJQw5)dqe zdccqbx!|bhXL|7to{gj?1ogbjh6mXncNU91)ARXGe|J|^&D|_0)YQ8INFC97s`8HW zllWFvApUN!S~n=fj&jLhROlQFMS1R+r@#YX;XU}_kSIN!9w{NP$XN%X4q+z?V=kIlIuLW#)d2EMANu=>o| z6j}2Ae?fkRHV#XxWo_h;9Vp4GJS1X3p^l~~%OGhK_Spam=@XAWugd1ilE$@=E+&me z;7PVh473mjuC9S*GiU?Nrmwz%WUr|e!{mw5klXp*eu>(kT`ONJjCj7efpxvux!~1~ zcPj{4wipAyn^^2R0>TlR+Q08JasTot%YxdCe@oDE2|K5#1s}Z0=E17wU)!qY3OxI3GZ*{>(-!;@Hfh0Z5q1uP1MFSpZlF4u6Iqbe ze}U;Flw-y7Pi*tkI~a<1?LTFsDfdInyRgL1`G^kUSl{q@3V3W z7&K6aYbBzHB)!hK6JB_vWn}EVdIN5~e@KdSc}rYbK=QlsC?DjZRPiKWf5=&ZHXMLq zOXb+fJyP}95aeFxlj%)JMjArqBJr10)dmVzHPw&voZkfVaj3$op!|5aF45_k?vi8v z!R>B9v*N?YB#vw%LMfCEMybDtl2ZAMWW#@r#)W*IO#r1wH{O~pe{164FhS>$f8Y)Z z=Z#6>aSn(&WG;2%fsL!mnjET7TPg)~L;ynE5!;|LVePHH^;?x)#NVv}hrU5acB5nX zx%R^t-m#rTUG9Bg@9HY+Ps)Qr6ja~JV9rXu>|bf^^YwW0vApUJviI4j4?d#sXn5;Q z?)+N*GRucdUg&8WgA_KMe59h|e`q6A6z5?hI$=UVlL7Uk;Rn}+aQhja_`SiXJenb+ zcAnp3Kt+EKC=Rd>6RBS0JdrP(PTqD2rhCfRb`f7>vFXBF=- z2*z=s`>866^J3M$a~vCb_&KaPc^rjPO?m? zP)$PlAhLEO46+xcC9~BgGnN@~yP$G3JC_~-@Hg$#F17~)6QOJ+vzR;vE;$7{S^`s! z7#{EvX%yZ=M~e!@jqn;q3aAd^W|l&0HY^pTf>1(0YJ@`eO2m9A$fEI*Y{s2`7(L<9 zIJ=fI_l~b(V~1qqe_eEhm@q@xKo;i>EaFA%73d{cm6tmT=25PHl-(XekqQhmkO|@A(8DWQF16(Hie<#_!O=k_ccl{c9usl6OS79M=L0mY#RY-8$Lj&b)$xtWK0i&=4r18MvsnMJi)m*=z+EJ=Q z@YEo<^M4*4{@g(WSpJjWslXW%F@_G9W#4=guU7k0YqeVxZaidC18N56K-z>#+tCM> zum)gjjMuQUf92XG+Yr#pObHK;^J&8VTf5E~z-hK7s5)8eGoYLCY^|J4*wInA#<|Kp z+v?E;I9$pmpYlPrca@t;L1UZ7QAA(WV0#J5E|w5D7QCC`fWPNJ2Jb?}i!cuGj?H}D z7RWoVP$!H}RfL(lcl)py49YG|kKsye4goAwU!lTFe=Q&;Y(N>O!H&un$DQd#RuKM` zl~;`BxTL%;zaXfg_{nEq>)rR=2v&^JAbJ&4Dcy8G<)gUU7GJ1Jkth?9sPrb{n= zpyx5)e*!h%Y+azi9}tA7(544uQoI3T)>ukH5;Rq_b>K}$&vY~g zP6`&VP@bA_QqO3?68)(OPZ+dS#8ld}+axceM?eN8 ze*=#qXn+tiQZO6z5#&t^18-f3pBccEJ>GG|AbP<<+J2*m6Q%O@7pO>z8t}XGNnU)s zV**iL!hsN-%C&Ee)whh5fWE$J?%zXQU3Q;sJxe_IXWeH{pCrp#6(pYPJ_i4SlX_QN zzoPBIvj^LQ2it=Oj~*+y-Pd7R-718ie;(VCp3Uw~g;DJZJ@zZ*v9{h)K!Ju#1rz|^x9OdZ@`SfP%0Sk+ zr+OFm8@~~O_P|@?14OqlCBH?k^uC-8(L1x@CIdG9avwd|4QbJie!ef1!UQlfe_a)8 z^8tAiU{oRFn)&jkJg9}0+B=`+UU1>hP`p-RBckUS!!XCU^^cLjwc#s@#|$u-Y?_~z zm&E(lY&%t~tlOnCfoU{mB=B11!uF{{W2-{xa6CX7g9#KEUfvuG+a9zSb_6_QirELv zn1rICqZd{k^1b)CC|EI4r0Wo-e|gLW43_}RVE7vAjeu*@(>|nXN2qvFg-M=QZU$Nal8*32IX_UW>|8a&vEEGJ z0VnumLgQN`UKCfe(@|bt@HM^v$#{Q(%LikQ(Wh{wfGC%%G^aTScl%j*b_{^5a9+zl#^tN5bDNTKcr(5S4H>$&Y%Iv2L1~7_P3Oy{BJ$ zm*Q`6V;L8L=HS!Y5A z!cacsMb;wF2C=0P4>7;!eG-4C_%AxAO8M{kJUWM~26#-12^~;c5dhrl7}YRY8Ko3B zML`h2NS6peRAg%ZdSn;|vkAOg0mrE`)QfTij7&a?3myX;ST~Tc7`?JxQD3sYRWWgb zMTR&Zmruu&z3DW`f6t5YBtvttG8q@68~#%~!!q$4t0>LfyiC4UG@y8vkmz>|M&c}H zY4gL*M&h>$kvGte*x9(LcC}jix3uJ zAh5+rkmUG;ao8R1<5L{ag|ii3)IxV0ICX(os*Xyj#nSMC*nj|Yak%M}FU5=_XNpn5 zqaC}%FGc?MSq3g&+GZ9vO#uzHla8;;k3;SaPGUf2RnCYYihUEr0?|5WT6Lj z9ATRQh|pUq(h#Ugy+4672&Z2BwWKSa|e5TV%)(d z=P;6Ze?u0)6jW3in6^$5M_H#)zof~demVWX0QbO6o4jYF0%7f@A7Wh2CK+aF2Aykm zhH)VnJ<`!tR7UnW1Tu%t1><8QhCxO{Fs{PJ85RbOt63nT=mJVDXe$&6Z8Lx>RQS)$gY@qske1%D=5dWS+Ply(<9z})ix(z0ZCYfkXSUn@HQaTa7^S? z@xD!W3MwjEa*etA^^|&+vlL5Rw>hVde=`o;PKx5*IOHlI3~kp&)a^zas&RbpUKUAg z9Ao5%`8;Kzw%@>bp6RhBK`jJMh$L!r;{m1G;vEX~PDI(!(IOMoig-~mD)w;PrEw4s8!ZkbC1JtIe|eei zO(y-D&e>#qsRt$Ql%sr*wYOxiM5CcVu&E?GY)WO*gbXh~5rIXV2mpI)r(ifHHM{yJ zCse1r_i|KvN;LhUkamPLE9imxy?N2AA(^I&9gcwU*7yCI~+q3qE-e2)VT=TZDhR9O=7Lb@fIDO$u`OctxhEd(fo*t_e>O zK1mcZ8qlU0VZ&pSl2n+CRPUnxP2UlJJeo%JM3)NBWDk}HNhPu&rz>MCl%Jh#efuN( z`Piv+TkOh8-f)xx2@N)He?j+2xJ-RxX-9Cr$_9CVRE0KTt?EIv#ma)dO27v&55y!(-!SgQZ8N7^iEl#{|$_LIT_(I2pf@NR*(DA=8pT5>>F>Vl{ZNN zrPTMw`AG-f06|Y%EfG_3o#q+=8AZg@p%gM0!>Ks*?x<{M@DiQHf6Y*V?Xd2*b|^L(#6x+)S=trl;!jRKuRSu<``T(5LD3%iYcH_1^dF?^gHG7OGHu z2jQg*; z&yrv9Z9PKp8w=S-H^sn0Jg7pm3>$YR?9Ogbk@vn>HShf+e{f1za<=nDa&l6QwO~Rt zZ980)q-&)c{A@WZ>&RPZJ~7#zAzVG4OwJP(0w< z-~RbzBU*z4KY$D0HEUDuwRYtX?vVn0ELTkiS}n?auX`~uGq!Uu{Y}T(mr4h7KDY1? z?_t;*I78S2Yx*mz7+4F}8xey8m+L(TK^4IL?mgWctB~FF9i2#vNPfjzIvsVFK|Tjt z0i&0lJ_kYpjF;d(2X+DiB$rq}2R(oKn)1e!D}6O4rge@}h`&sIUu>^LUme=z<-hTZ zazwPOyG(9^UtGLHCu5v4Ocy`9PW!km?1YhBgTB7*T zR{SR~1O$(av{$e<`DH#$Dp394@R-my;R@Q~mvKZkHSc<0iQ{$@nC-W+Wledzss z_;y`|wt0dvjB@0Qm@$zsmI3=TX#?wh=x4Q*@GeN#;{F0i9!s%ve_O zSCI(YK&V(1L9>g^0PX0@0UI zK?lbH5|S0tEpVY&gX688~kpf6w<`uy|g%yf`>;~OJ~y){y}3Rl-~yV?ta1MW1>pN ziQ^tp=cxuA%}!;Tc#itzG>w7A!q2j&VwS7xK8DYecoA+Wo*RH<`7O99XyG+b|{LI5G;f(<*vYC_e!Fz?d=L^9qBYNBc6+WSd5EwCEs>0 znHc_)CasB*Kv_{(22mAmN2T}C_sWY7hK&0>tqN@Q0~`DO&(o|Z}@ zRAoypW9SmNx>@botF6rWcX&KR0AW!BV4|F8q!xd4N980iu^77E29X&%^&}xd888guYWLX7o354JVG;*r?PDBF(8U| z02~x02)!$k-|m0d>;1a-;nh#QmxmvIin;*h$$Y=R_d4o|!fg9-AzuBo_w$eYN3uqU z+pNYBe)X>5U=5SVqiH39F`SezF6Pjkj>jJ_`;(8TThM5^cMp+A$s>STf<7A0rlWtn zz#AN03BH9araf@&BWDJFql+RvJ0{pppeo4K)ew3uM_7`!*4V_jGeA|ZWwq048JI3_ zuoV*1LN!Jny)?AQ;Po)*;@N)_k5BDCKbV|67#BYn7yrY2YHO%!)Y7B&YVB-* zNq{4`fLW2sifq_wvmyodkFi{8ZhM8S)3J%UgX?k5gKbRcgWOw3xHDexIKgT?P9Xz^ z=_Yuvl22df6aAH!@A;`;CtYO)+=XZ_aKK!RCb7h$@oX~4RIGCp z_4$P!yt|eGI*cJ;XYR}KG*jO{^wF`OVRwYn|Bl!nq0XM+=4R4M7>^h#(XA8h(i?SR z7A-)Gu8FZIP;us`Wu-;)w0D1pxc|(ilGP~dETaytrqcr#RMjPHYSb8jPR>FjM%$=b zMqX-5{KTpG!lF&nxu@M|VgYSuN%sm)M(U(g)OlW2r{x898N7mF1s=`!S^qp^*_qUS@4tEeW>ZwzWTmJOg+(em!MvGrXQ{( zPyw2q5Zpq?$hLnXJnFlAJTFKXf>ZhdfJ1SQyCjgYmalLwQVmPyXNPAB09!z$zb6K0 zjnGzr>W#Cfm%N$QuUQaLWh-9(m8R8&iEU$lb-7)nc?kiKG>Eb-3I@it)BOFbE|tFx?lBaAy?Xx*iP z6Zi54v50zc&;)QCV9X+0n0oHWnC#1N46-Z8E#!$Z*Fydy?Y*=$(S7)vawP%t0R22D z&c=9ME&8oz`D{EZhT?{QT(m_c1!~TEc$3Ms0LiV9(&bt!9=jN@Vc=!>!8kVQoutX7 zI$0WgSJoiZ>GiyZ(JPSbLc3ORDaUlXnE023tx7j5)L=md>QAu_L@@ z5LdB0J0z5A2yxl2O-7VBR5aTkLi??Sx*1m=gyj+1JTuBvy^>^IzQPl(_P7Tw_Rm2YL@241*t8MTDzM*x0@N=qFRM@d;$(!Wd*v{MD_*K z@j6pJ3xQ?E$He1_O&&NqdCB!U5EmfcRc}f-S)YQa%+4S3j_k*C? zfjqw+ZLBtQ7e*)$Oc15QC+(iku`nT7w`;q9Va*2=hP|wdSgH^1RWr#%($KqZqA%M! z10RpWd)=5M+2_2RGDeho*#i+v+tQ2@?3Q>LwwcMF^reUW%)`@ULEI)k$HTQkNc6!v zuB)Xgl)xtm6WOU=8MW#Grdnao{5qfD>j%q{8J-NHwpt@^I8yL#3d=xLz4bI*zHY{U z97N@AHL_jmn92u6G!v+Z>&}sSc2s_=wbYDoY{5BDXmJv%HAkS%2T-mQHV>V=6Zs`@ zpZhs1IIEa^ejY9G#--sL3h(Rd1zab!c>`Om!c_4&30&ug#+CVH4~?0@)E?en959-0 z03Cmy^2+d~0$mTr#YhpO3b10_c>vgd5JQ2HND60>iqJXtVJ-03HD>}~@Zp~Xz_+Sg zi!PH|E%|HReYeqI70J@^ofaJv{3>Wj;a-Z4l0wi(U>5&?-0L5}x+)&wnAD+$(aYTU zGfy;qd`w^Z)KDDW?K=;H)C)dOyOTohbPBaw7azg4e@TTIZ4u@NaH0}Nq$b8dUyih3I`&Ez5(PZ3w^C&a$>GS ziIjC?R5fEFT(LW<>z;|4&o}*RTTpUEJr{jOY5n10F><1?Of!t6iWm4k+|Gy;(v1yn zfDj8=?CuA}%Spdrpi+ep-XB5)SM_{IJf+|jZYKYJmp4xbDGgng;QJ3>n-QvVrg@l` zZBGX=U&&k70uO)ToezI31e2gr)T6iPPZ3Q&-aLtAJTg3~Fr+|vqPe=fp_qkau6tzQ z);1OHjEuZeapC~+_pPYYC$2y&6w&e3xQS2Sft?|Cgvx2Wfw`t7KV7Lo~J3 z`gh|y7IIVj8+5aIjPFdNi+niDis=G?0BPYgVA zU4w*THw~OViH1Q|U8^?l(kh($#6ZGlr-GO*j3HviOk_O#C-<3jYtTqulpr`DN90NE z2+2B1ZlSKOBUJL*2a>VNBSkX!sNuY@gOGT{Id$-gMni`7Z zEDQ9g4qfAkgYCDKSt2&TUHt)A4-S4{$nR%Gpxsd(4DWvx^S}BqrbzDK(}QQWEme!N}C<$&5+r`jcO;?*IJy-QmH{ zAA0Zik3RJF-W^16&^nu-x2NG_wkb`s$5C>T!D27jiiRUTYb&Enm9{sVUW_OC?|uHf z?Pb=VWRrijXoG<*k~Xw%KBsd77Y#EM1b44XCI+@?=6oJ<_X{WbnDmoBmwtQj^TE-< zhkbmqEShv2{p}G>$fLJ;k+afSbmH_}7mO3`eM(mRZjzm4Oi)K#wLUx}6HYML?=%dw z!}_Ehk?ltD_nW)Cn=LFEZNQ(d=s8JRh`X+{3=V(KEFa8q*^myq(U1EdqGT}1n9MlM z`=hcOm8=tw_|37Jmah1_@Hi=Ea&-ys?)*$Okq{j?a63c^iK=X4mWZWnu4t_DUHZ|s z@W$E0WggkU#JU?{k@aF-p&H`)k@R#Xx} z{|fHIIf8JJ&S1n2gxF!Ql~QktvAcSeJ!Y%y(UuHVz@N^tIrvPx{=yrRO+HK=CJIdt zNLgtxbMINubuWCA?)Jl9`et6^b<@x&8SPpYtc`1i(%u0HK0{^l^V@ zX6ID?hH<%>kk}*EDhP_havoa*zK1!2EOn%P5|48ivY((5gUepP`R>jjbn@&K>U0XWP9&jnYbe2NZF(ba!q)?II} z`%7RpOa&*H^$@`bICv^t{927tLNvgtL78l(cKt}I8@!8--FqI!0*3wyKa7!*qis@+7ZuC$!0YcFr$o{#uV zkQtC{o%E{u2H+>&I^mJYKCY&hpeNTgVcNm4wvrBqL`0^YswjU5wyMK4l?WGcO*=|P zPOiBlEHu2q{V;xKo=r-kHgIJ=)Q0oA(a3B7*Ip=761yWfW~3=sO`}Fv%AMe9vQ3Lf z2Yyup5wO`sk5X(fPzF~zE3|N&&;6OvpFr8nV{ryL-)gO+`GS!uUu@`>Gf`#KK^c8M z7o#C4d=!I6b(w!AZ8Oa8@3&wV5`!qSf-VEveJ+~K=bQ1P_No4W5S5~I@K%Y_fLb>x zRbCqlj`%q8a*=j`$%4D3fetQplmBa$$?!^_(fjN-av%EB@qaK;VZVukEXj(u=DmI2#tqQ0rnPJZc72K6fLQ@wrO91|b-hJC zX8Ty^i4JeLT{*7u!mq$$EBsc)OzZl9WG1?Qn&!dYd~lE#;U!_>8vrsDzFr)Wxog;+nLr{-51Znl#ZK2v5##ui`#lIi)(BahqGc>ZD9&%QSe9DEDN*0x*1sS zRW=&&C=J9sP9;VZB8*#sfL)n1vItm~DH{yNYuT}w;RsrmNl>xGMi`MI5>`fx3o;CU z__IF%g$eE>GPfWWqpS+)@|lB=M&s*OlW|$FovJNYct`LFheXDEcr@)#XC<|) zgIj1;OX0)~feQoG7F)(m>-7wYdQOpl4PkaUYCd1$KunI?Z84GBuuk@+la~iTGvEnC zn>BkIEcN+NfgBa)Qko)_pPpueX*k+k%3JY5S2FIXXJaCml@99=u?J&!jI`} zoKH;%-UizVg(4W>`~penr7r0}$OE^ZP&Xy2Fsy>0E_T4?CZd3f`q9S;VO{b?Jnz{g z289#Zdid~I;7qc933tc5Liq{XFnZ+|)Z}x_zso)HOCSD0Qs8lK96~S%(c(J0g4a`n zJ#jw>FL-!3N+{pqcY-I3u78q$=(+~&FNb;S`7^+EBoTBqpA2-cbUKL8LNm)bY*l#} zAXXbY!o2Jc&x5ax5XG+kDK8DzBI^~-H9O#|qVORDY;Pu8F#Y8yXNzt#*^Wh=MJ9Oj zBZa?luL&y-w2g4<3N|tbBLLnS9$vE~z>2{|mRwO*a)3~^xaWk+?&(c`Fn~alRk-y& zEWDiP1=(x)&j79w)nGbT0Di3t?lI^MHq^ z$+s0N$PrpXra?Af7@rn@bt-Tvpzxr*H|3+S%@PHxTP{MP3L&FnSKXSiQI+^Due=Na zuB<|cTaY2ug<59{e--OcNNH3bdNt;XG5O239|?%a=rv1N|JtxWhe6S`?i#<+%g`^&XMw^ul)&aB$ zs$oH#q!#PQ(zJZ#{PZ$$S|ejcrz^cf*|z5>xLG%*a^|Gt9KD^kn-pw79I)%q8sNL# zuv8E|iWa)l{B&Cl8}FDNJruOIVRf$0RaWYO1`kwVpM~-wIxCP_+B{2k8b#Q)2JqWt zD3dQD@l_$F$M|Z0+#0oY*BwBw+~0$6NZRc)2Gj$~@5D8qi$6mA3R~M-d^!PVE ztV-g7CL*}i``YVtEJQ{XT_DMboF1&|8beBAXb;ALtTpi4=PPO5NDCa|T$CxflL-|U zppmpPxAi}__)6Mtjc~YMc0IK&@PA}e_3LqEZZl0TR}OZ6pKWc`YjBAcuKVKIQ&i1v zKd5FKt7gC8v)wQFQkm#ai9+^0*_tR!7%kPFHc;|HD}Kxhe9;n)Pfhf^PS4M?;xS$z zV^C_iX8_yiY!Y}ePBJ4GzWUub0gMy-8Hl1p$k0mWr2Z*0f9`E7m#beK_pO(OhN2n# z!zl&twXhq1;a`Ia_4Ac_52)|a1U>-UrHS(KN9~h;wBN0t#v_bKVfy(s9TPhqmB5hG zt(qGvS#<+Ly=0gGcY5E3NT=!&p$JxNcvOt%bDhsa0Gs)`H|lAPuQ$G9W?)`C#O0f2 z{aTmCQP0k}BPq5*U?JfSr$3Y*F7JZF{z(*E!w^t;I*<^LE57 z)d2~){Zu0l^apqS^MwtY^}T)&ql*FH0l^k*UFo6nq98-fdQ`d3zh+{ zmeJ&oqUuC(SNQ6yt@fVvh~>wIgpRzA)+qOXd6SpZ5b09(=in)8Xcm454@4-IHFtMl z`21&|w|>G9Y*P~{kfW-VlNoV}=X28LT*>EbvmI9Eb% zxJnurvL+0KWD9=8K&o}tgUm&XN`gsQ#sPqKg-IcJoGzBFj&C2c8=xCV;}rs*JG?G` z-U&mwHbe_;wRFRdS;C3B{u3R>mB2ES2wjS<^`~pm29!(~`&O(^lp&p5>`(+uYMz~6 zOxLDkBxih!!SJZp7@7zYIksdXB*iWk4)-w^y`DM`5r&Bw$QNWfbvZ!f7@5~d&N0LQ z$7TqZ84v4t(b<3qkHafi%MLO7r0J(4JWX|QC#Tl%*~ zw^YJ;4U|cpbBEf1PWxr{{ArK-m21m7gmwY1wJ-62VP9?MJe{!-{-dK56{cW+Z*jd_ ztC?NhNFLsM%{ZcUP^AoEF9#VrH@2HOj)@tUnu=o)Zyeip^CFRLwz@L@C@<*+Kq~(7 z>vj*(h(W2cFO;(@>#Qg@n1tlDD)J4u?_T(Ci4+()*qYzurIn+tI7cMFEJ z{CDTWcnaYa#21zZ_c~}`iYT^_l$>opV zq?-&7UbsSEVYD1`M;r~_mVnk*!O1C0*|Fd z3-3{$Jlvx+xksV>Vg}jYAg8Vf$ z*b{gG&nmv0mD9B>XQIqx?KH#3mTT2*RUMw~ zdQ-jQt=hn72^-t%(UH~HU)rm(dj&>3E{kh0;tjg;Don$D@#`?;PWkla?YMvytmT~^ zX~eCjP76MvV0yJ$P~6L{a}M?15m`lJT0;lck_c7IRZ;MN#O{bwGDbG#A;@f3G9`z= z$e-icR5_KYFDa}KbiwQXq+sWcw|M~v&PJtrqD-W1%eii!mlk(K7UC!B(E?k*GI48D zzDgLMGsH4^le|^nyNyahpP;FbC?i$6IRDTuKfa$8g>WtDj3lxgC-uAZ`R1S8h7m(5 z(%NkZJ`U!88unPnmOUXWgHzyC_sClty*2D`Z=igyo%ScwBgFBB_3+(zGy?SjkHtvK zh(OiCI%xzO-!Rf4DrWKRY`0g1vMY1PS8nD)y5V!F(@C+&X}9gA1@qIS7sTs~upT(G zY}|DVt6NG=RCNdq(o60)g@jA-@{W z#xVq$PTqq5O(rC_@y8XLlI`TlR{Ury*~*^$$(r*RWY(&_yNjf*>x`e^-Hz&~4=7H& z!-J21c&Z!3CgWf@%G|aH2Q2`wH%*)S%C@~yZ{k5sVTwi6GFGSVp|67!LUxa)8FMcb zc%w`%526uIblp2Lbg!oh;fUfs6+O$IfTpr~{{5rv8j;g<+#<-zdOUcWXD+a$%BdVn>+o9q*SkiY{G0Cagi}S`&gV{e5Ds`(wCU;U?aSt%dMtq-t+7fYW-YbAx^;V0 zUYH|;jTYl6TwF(znQ=5Cly{We@?Kygx*E4$D@S=T$lL?p_uh&t?4I@ zg>vm~U=2?WXQT0Wg6XW%cq6(jq7C@^KhHNeqB5$M*zC!5`OzJQNz8n04;lCI+$v(H zCJ@20jn}uYf$IP`j6^$ryyYW*on<1y+1j;xhk~=BzM*RV>8e%pf0PFa;76Vt!~3k& zRcTI3d;-8oYCW5npJ&j6tt&CNSu{E|PuD1~VQ~Ws068%}}QD2O52e z2&??67H`2O=VgjPj44}!cl=yIst%&bc8s3B%BwzoBMw-lzkm*SVM0fL{0fd8_^(vV zN|H=&sYR1yxZ7h5b)27^>}Uf!%mw@>5Yb|EBg4fe(1)0g2sqKY(`b+mwwn%0U?lD` z6iC?qafpcn%bn^WTlj{I4$tZA>@1tS60Q+RSYsFy;HkvpA~*lV8ctd*X$(vyObQVv z^eYwMLpClJs$;EbZ!G1hVPV*_;91jxK#WdP``Reul4?q5N@SlHq^Y-V%cmMVN z=)*66{q=AE{XhNF0b@ny7x`}=N0-I;>hF_sI{S3}`R4b{t?egIpFMx^?VmRurx7s! zq(6Wgwacqse=-4=g=+`b2|M}U;_-PB{co3LYzJlnKeLz3YzJ8_|6}h>x7$dLgwg-= z6k^%tK{XQ)7Ousv=9NUr(r2lqBg)hEp=llvD2lK^0GDlT2P1#&c4w!3u-_XDyW5u+ z?cwghZtrq$*xfHWdzX7%KfKbNJ(r z@b!mYSA0J0Y;QH-V{3Q&r=Na0`0>Z>^el&Ojb#12v)AkH>~D7tdg3B)cK6`Bx4(BF z26y7B3&r5 zCwAMro%YUt=K!c@tOR$ePbGS1q6>|5+S}VZ-JM>qor-_8L)oUGbl{TR+223dt1*-v z8cL_zZnyW_+ub@t*`=X0JKL~Iy-shtQ)4iDJecjBz4i`ZWR0Qh<4`(#d+l~_XS-8p zRStMnItPe4+uNPJ8e{3Sc`)1E_HM7nI657|3}suc%T60sv)esr*BQ?ajR#nc-JRY}uX_+1&inW7aL&XIG_$+2 zcd)zDX~#wbCG61v#vC9f?;h;5JG;GZY&1~B84d2SZLz!EgYCc9iLMP4vBv^S*@Yvx zw+H)juh;I@7|IR}We?~i?Bat?jiDgI9EjdNjH7>zc)WffJ2a5y?rwW~Z@<^usWFmm z9?5olXQ#Kfzr9~$BnLQ>o!$NIZJ4tCIs@63i_$sR2dqSFSv!^<52dre*W2wK>~?Al zWuJ!9fmPq>0cLjU;8%|kY#YY1-`U>Xt1+4`4Q8hU`voSf#!&WXC~&d>((eN$t1%SZ z#<+hhz^uSx?(OxqV}rT6@-b{1adICpEH(}Rx5oj~)#(7U3Hx_v55^zGFenpjm0h4O zy@PhIy@Mp_B38y33!+#LI=0hmAMEVx))+~LM$*9o2S6>`HAb^dqX8bUyMF+fUuQ6T zG!|%PXZv7}NX7cGw0SI@_5mzpdw08CXEc9391h@DckiIHw_Rf}ZC;w*&OU6)Zns-w zFg+d&K<{)r2YUxK2D3|J+1qV*4?6n?H3o7(%L0S$?QU=H@6{Lx;xUe7yW83C?Cc{& zT90EpG!$6;y=@pwyT(YmyebC=z`N|jK@l6vXykKZxb_G8yS+A0ve;Olggq8S7bJf# z-QE3z&UPm{6etp$lSE&TC~Y6KqZAnm*@MAj5~d9HWDluwjj`Y?!=?oOWgGVXUZ=)j zdNddyuLs*O1;8uT8BJS`roGeI>Go<2rNcw%wqfjD!2W|8gW0FC0NDqAueWnhV=RO) zcp3x83;S!k#!zByA< zKDpb0Bj%vSaJn>{J(#uqz3$FIjlmr7%Jcxo0A<1*v*=$I=l$WZK{uVgU!%^Z8_5}-G5(f4y~buRlk4#byW}V2Als~UG>$~ zS5^J@!QZRv9gV)G-of7+7kB?XOiQbF#Hum*EZ)>F;4_bkxzTUKA!h5iV!NB0jR0QD z$}vY6@R(@axUih{hh*eQFLZwmyiQKTB$h99cG(gZ@=r%+`2p}p-R}1O?%%ONj3GFc zIUOLNz&h=B_f-~2;jW+`@g8H9=oM$sU&bZ4>FV*s3E5e;9&qVlQAqMt|sa)k;AX{+#g3gc%Q{nDJmvlGGYc zuloZOwWMMpEY!A@$Haf1dSo!`*j?_r>NFIKbo#3J>~y-18_4t=<%rAvg)dt~iTP1t z9yj=DB+0BKeiKQA96OJ0`v=v8{p?Kxk}WCezk;z71us!nqn%V-p-$q-2lus!D+Hj#PR{M*^=>6pG&Zx8X=kE(k&t#N$03Cdz z5aWB9eau>RA#i^jd7i2mB$X{X?usn8RjjYVu!3D!$~9a#qrW{oYMlNZe*SH7wv{#- z@Z-}~`U7M&T0f+X-<|&L)8CqqbM)}NU_UeqeyFBu8(d>5O`$MXdBRbfM^n)vfB5%? zv=Y8w)4zXzD3p72yJp&!G6~%^TuVoHo11dT>`w0XWao}DJY-%QQ~ZOXw^ zrM76Qh)XY220hS+XAB!>d#$){GR^YTWNYKo3$5aFuk7LEDPoe+*l{;R#94m<>RFOAxY9l6nlNJaCsaUNptn); z0KVA57x1S2D1Q3)e)FI0=0Woevz+Jh=51H3WC43BV4#Bn9d^-O;N8^s>m%cb7IW!8 zMEWb_v{Onuv#8f2W((-i9Q~2{plUy+hkj0eyYk%bV+FqIqg?_oA_xP2SN4#GMKN=o zp-O-1e;d%TYux10&EeZ(a5G<^&N^&pS;DS%F}j8`J6^FKuQdoAG}s(J{Kxl|r~vV_ zq4B5$ecVXY;xu02)?TKR{f=5NB)>B?BOn; z-$-50gCP4z_tl!HbxZ0uYEOkVy;-d8C}@ASb{OBLpSP=cr$Wr|SIu7RIt#P8xuF}X zxyavo^wFwIry#zBI*zj{5gzU2LTM4|j7uYAI!#Z{q8nL)PS?$nIun)aRHx^DMFwMVl_if7xFE``rngI zYigG|z*0|C)}QTCnDtC&-Pk?c!*1-Utbtu&N2UI3*QHY@30$n}UB36emr{5KGXam6 zhIj`sf5)SF*?45{{U+NY+9-@D^(%k$kI%DLqwB&Ai#S>q*SdE6IKqEye0tTNQ5rji z!XQfL*CX_Tcz5U2|I7|--!LVxgX}gj%~Yxi@^IuQuy2?9H-jJzs{t?U(|xM4irQVr zSeWIdOHgn_ecjz9XkzanW0Ei?qUly1MQu}^e`VmMrJIyEhjQ;6i9eNL!(iIs;IIoN`EU>_zCom2L-@5p+EY5Er>3s3!`eHhUIe4r#+5^?b zPkE=k*W26f?02`1EX!1t|IlRr&}p|*_-=0{5B`{JsRlES&Le;z=7@gXG?f91278yZNs$tpSu+qoG~hbt0&c8YO*X z^sm?O^F%b$4>Vs>0d*$v+Kkw z^QNlIqgPPo%`3mmC>Wmfcvdw)4dPX{2r4@%22&LFR#c`z>{BepYU|AV2G%2H7jXYO zGgyZiEE$$&3_pzqABth~{d78Pm&ketBm+{60hjN32R8%G&p($bdj}jTI33VkTKc(t zs@>^wkI9mWSB-@$IR_>vxRFB7>YjvjBr&bUq(56+O_y$a2Ph))mg5P`Ro7BM)AE+v ze)i(+$-DE{Z;zk8eR_QU^XucM=a;y92SynzSABCcnk*d)lXUH9Ekq;XE<-<1)N#{C zmlu2oE&&mjMtlb$B~7H4_}ooz#CGxsZb%wF4xoj}2)5$AP2K+{d)wL7CqF-WbMlvr zd0X6o4JoXGxfqVtA62OH8*ko@2RT8Mp=|eo;m%g}%42M@T}2m&Wvjf~l6Z@ylpD{`2HI+6?;e zZB&$n{&A=UCn)qsJXUd5i;pLN?6+9|Z0RQ;#p;_m_Vbiqa*UdaO)?L#7@$Yschgzk zDR$Nj>uoV8Mi?^|x?|l#08QU8y3qYwPF-#?S{%2=d@Gn#*pr&O04n)V*O=##CEDC{ z>Ih&|jtY;#2&tk5(+5mY|6}nMfbW9?r6_8`+_974b-2#65ROImk#JLgcgDfOaJ{Az z9EKw5dX26Z@6%iO$3&TvU8C+mMhlCrV)dDg=2eG_&4I*UE#CjCYbSNAq3b#-o4y!s zUyjBYSH*NqGl$o$Ki`aoz#!r9@FxZ_&B~WX>DfnG5vNcG#!3w*2v^67#T;EGoHmscx$3IPcKMZ6H&vbi)Mh=%lq>n_PaDarXC zn55&UFQ2}9dj9IS2nFG#3#N`Lml+6DOIC^&@1~EZ%O#+K28m<}X)^N$uD%#-7G-CTp1d@z zmgEcRf#0B+FuFP3(LnfkZg7!I=TZKN%Qc$bEMAcoiVW+2tP&sHEU%_>730~QX4Co8 zz8#GFn#jeqQbCb=LR2F&{ul<}2Nnzhm0bcTx?zUyT+h;!9&R{7+SO=SP%)=l6wcS` zB^;LcS1kJ1h3ul+V^ct8Ly4BkQf-iDQ&u9ES7Uv6$ww9zi0kX4&KI|U@R_7M*J`Wj z&S&a})xpev{1ns4u}wWPKNyBfTwronaHM++#S`F-QjHPdiALbqco(R3y+IRIwVp9t zgl%j}-3~{K*|`5DOD@O7=S1MY$8e#e-e$>QI=;D{z%2+Ta&yyiEg);bdt>FyCW~2r zl89T{yxA?*pLKAw+<&v%RF|1pZg|`9?k?y7@X=O(={4&cyWH!wHl~PdLP-CvdlW=73~!hG@y-IG+wgrH#gUe#|Q}w##)^hSV>k!RFFDQVLDxp z_@JWi)3a60LBiz?(St8d7nbPfj?Tu`&5GyD7iPH|Yn-xY2AF9G&p&59Y>Pzzsl*q!dI|H5 zf=*gt$UT<}nm`kOVs3$3m#l*wtLYMW@?S>74ujH}lJA7|G~3-0@oImGIwHNOBdEc{Nzj6oap)f)*7yX8YY;;mS>a zv%S5xaO8oI(iN5{6ux`Hktt@*7qcsw6zK|@gG|bY@!4mu{ayX-`{T&}-H#)L`_Grl z*)PS#VmkOxEWM`=4m|Wpp4=(09}w*J`I3Dzhnwv3Z84Kk&?WNDAz^``uf8bB44Uf<=A#+* z4URGSl7MHF`}G2D{3c~OE8v!3zaPjUJ5jzka1-zh^N7fAs-=5M4Nm54!C|p~rE*uI ztn# z37LgyK!*o3!=>qLX`vgHz%Pjmhwk#7n!3(NB3af`B@3-sHg(;6-k%J|!0QsXPLDA% zC6JuJ#LmA&qCRg&#opUzNA1ji{;V+(E?((?j1G$1bHH8fkKwc#e#tkq?L~E|)^&eo zBn}^;l9oFcc*%DX;7HMpv{N{3ZsM~bMTwWAh_F)AWGFUE;BmQr z>?yHeMa;~I=)5+TFjim;3DMbUw>e0~3S(+NK;B7r>@^S^CrBt$An~t%?ABpqwW37p zEI<7Qi*{BbUj09>U;La199VWs6iN@z-Tj%Sp(_WmKP~D=pX0a^Cl}UxMJ1v4LV}l4 zgl?1~bX|(jJv$6B7kx4~XuB@nYd8Mbq7lWzgOVkA{^I1_>$iWs@2b>VjU%=Tv9@#fPGQn4tpVx2McNG2N~nttpVNp``x1=SRa7denQvr`|ejdTHg- zFCb4xJ7cNono}gL2_`nMT5~D+P<&Z543Cz&r_l!;@SAc^Kb*ljn(EN$4mIil>GwxP zX&nPw3(;Rbee|DCe;YI}!SgFx1j#f>jf!F9oy!h(O-~Bc5J~!f5vWB@*(kjA+t;sO zo&WjG@uPQ7@!<$FPUQe4M^KH=B;0+g`7ZMrWxlFV+$`g%sRd>EXG;4bnrSU)8hL(Z z|8wG=Oblv5w?ZZktsx@m+=gXJf^YqJYHxTiXO_kT+`$)$`IS<1Tn_8C&|i(ChE=?6 z6{iVNZ#Unl^Q^xk@=?nqny5nr+64af!b>+{*r_u82tv^jU)>27(BD~sR zv?}wULA{K^pcn(%^Ou&_&?RaOJqV%a*j>-ns!?|K;6}E#pn7X__PI(ey9)u8iN3P# z(3Uet`*^z0@x`rMEtj~NkL5!w8J@rC&->RfmidBxH9Y-)`S=YmOYhEqdHVR|^^-q6 zeP?;gOCFNsIT6Xj0rW6Q6`i8neTl$BNlY8ivN$~x_)hRvL(+R%|4X)8Y>T;{`p5b7 z)3ZKFsyeM*K?Q*f7K^OYw&^c7iTJMOvp*a@#jYyNiAI96mk67eiAaXDOj)AxMe%=r zdDq}chHBG)*7B;D1PsxR(}|9-67gh!ey!3LlwCY2Y z9lH$rs!@e6p^=Ow;avYj6O{^Q@nlgZ%gwg;$+Bjz^ZkkC`xDD|`;!X$li$LC1b@F6 z*lwAB*4Z8)^g84}sN^wG&#XqJsuQz=B@Fk?@ECljZdN`*CrO_s;WKe^QK-H3Nx% z_aLsUY?aL8gbQ!iNKUP!zzOC1c>%Yg%OeBBTz@_(RlP86*UV|*9PtYHQJ~N0{w+m?RMI2LGRO~)j5Y-Gg{0i zD>0gAHR@Yabx)M_M%U2?ws(AkYIDnf=`3q@;MzTZKbny8TvtDf)YA=>>z&Etjy`Oy zGE2GedN_Ij|8HuYG}h^(f7hwtxvHpUmxU0OYHG0y2XPcNG{OR%uTW2``~4E} z{Sxv060y#R9niEGzZgoj&*#M$+VHi#t`X+pXn5V^lc#w_U`bUSYqY;&MfeJT!nWPD z?;r%e?h-;kjfxA1vIX~VApO~F{Dr|ZNAKJnsNi}doq!p%Y*$*YO1aG*^5AR(8fiZx zk31k>fV6yYNHuHVET(kgWVd{jCBNH#^61%4JFyR#9e}#LWH2XrC2pt_wqyNdWB24hmPhutMx z*w|?3Sz?1*UJm7hT9s(MoWcmxpWs%M-s^~?e_J>sD;|fjJK!#?Gc!=t#SUP^z>Dc; z;0*ec56!`7J{T9tmK@trl4MD9db7k23SfZ!k$K!LxyK^t71H3pi zNvVA{E_8Qnp24)7nvh5LF(y#_S!dVhw-o;F?cjfj!cECv&{E%;jK{EYFc+Fn_vMl63-R=EMNmW{f}qSAm`j?*%u zX3k}i-=b=Y=8)&_FZzwP!2ep^UYf+@LY|o~GtF7DGyD9Y&E~xY+5Jfae_ajGX#+&J zjglv}e`FhC*95XaNs^Sv7>;P)Z?unHLdT~IPHDoZ=1WtQkQi&AJ|rE7<=>CVuZ(nT zAG*`wZu-`pZvS}xA5T9+M@xiRJ7UgEoWQ_pSjB8Q;%U?(vaaFpw!8RWg2CMfqve;Z zE#Mw7kyX3o!WQyBF8(Ac86pIBI`O9c26uvOUMo4pPcTUt(d*RIn3)D zU%%-CcO-8Ad0fnve^;<<+`3+fl^L))B(y%{SKJTnJ;ey}j>P4=u$xfS@oEaV{u(hj zcu+Af7V-$B#|l;CW?7>|hqRS8)RDFJGVS!7*8@+6)%~RoT<|5|>1&lHS7dY^8fPKt zuWL9J{+7P~_$5B_Ru##EMADg5Y<$DYxlXDc+rdW&iFB1Be*(n{S=RE(S4p|~JKyz< zE0c0aU_{5ZgOh5=(4by1KT(@{%?_57s%KeWc6G@1yZ5n^_xb$HPl$*_wrhw)jL7l* zczV$ve;1N`V<8F6)d}3m9mlbhfR{D;QGQFKYykV?d^CJ~Ga3)=$Ai{GD>-qY%B!@1 zQt>u^@qSZsf1#EsUV-L&sIm!+&-4ZhzbzK9{V6`RD$p`%g1m3QT74W1**6bEILVRw zC?$OBTj-Pie7L{~$!Q`aK_tmUL%nx1N1!2r8|Z&5F#6X^8t}r3+p5zXbpW(4BeP}P z{cq;QWidx*H;v?_oH6NCPdQTJink(G2(SOw{j=MUeb zi&WF+Oc6}TIlaXvej3L;Rs{s6&sF2Rh7EA8Cq`@my0xXVD>>afZ3-XFi0Y5iaeF| zG{Oecf0gZS5^fDw)0^>7pT2A#5*Y|-x=8=Hwsk0m;u{oP?CuVDGeN3eaQEwv3EZA` zr=T;fmZv^n&T$yDqm3O5Ye);0#WoOaLNrYY7)!TGBBjqURulOuv3>Y3tZUJI5NLRV8212S^3uKL3XTK|Wp+kJcG=(E^cdpxr~@_1CgCK@c)HZf4;74jq}V00Ft@02o0Mvh@# z>r{fHKC72|;TZFTR3g<8Nv|9qpz>%*|f1*b+tzbpDK(#Kmf$Tjl>(j`(&@6_J*ivjk z?9g9ed&!@F#jrX!9Qpl53g1ZZAc14~tE)e|Ll7 z{-h{Dx9S({PlYL)n>z6-&z(7Ip$VkwcCKq#;SG%wQ)?`|3v|w*ax7slkseYc(eA$_ z2lIO^-kLfAZ`MHo;sgWIonWKe2LXUnU%H|VxwXY-14G!nuDbj?q>i0QI^0F{Nb%g| z``jI#?HC{puUm^({R!Ne=j3yNf9Phhcr+P4BK@CO-6Dtxpc#Z1_)Dm^7-q4oRZvyf z(T>YX*&mt_pczz$aVGx~3xJP1ng6(B4tJ(N=G*pZ&Bwi&wO)e&Dude<*+^37Q1Jt40(c&gSAoqK=w{&CEDjN411mA^8YP9~YOS z3GLTNEwY3Uh<#Z|4jc#wqevEp4>1*0-D)`)WmrV9_%@zd3zF8j8r`aE8omTkwHaBL zv&2VRll$C>MhsEXwg_x)fCjmD#jKomnoe1RR*9>$l$u$td#(NB2 zm^IlpLrly*t?Cduw`JOaNKTLve<9~BBCJGI$;$>93}84pCp0mV3dSZH@h_kk|bBt>!P)N0C!NwR>h?YVl=?q%E>{H=JZ2i9zkK2 z1|!%CfG49^8FhRNv*@O@5*;G2O7)f(71M0(PaI=Yvm)wQ_V$XI2u6dF>DA&}aciH3 zC2T~DxsfE?KPqG=6n4uqIk@3!vKyN}>u~k1y5x|06>8eroJ)W7?aBfO->zU|H*Fg0J`Vn==qt`2{%$-%;lA)hj&YBU-nJ!9rUQZuxGedOhk6g!sTvw#b9Dl&WnGZc+r z){e3nZ8w5h8=YlQ?G;jL$73ZEQ8U@DBx%C>+)8>nSvb4&pJD+dcp+@WX+z_(WAHd2)@dwG9L+lzoRs~`n2Ancqhwvtw| zWmjq;?}~1@m4cfMv#QAK{06d``iMyWab2O4oDF<$Jcbp(U=HyZ5+vmkMshFDFNzz1 zuB#8*8#%#9QQxfp1qatM6HFS9?rONWb_tYPor^{$%q^T=5{jPX8bZ4gQnGD-tLyjO zcy>c|IIw>XcegqZT&3|;X7&(;e3E@OonLcjGpFl#O8r*xE?Ki`t^}mDIH+%SG4i}ge=Rqp-YE^&KLMkfKzbxaG-PA7V2n`xa#1e{D zWHfs+8JRl~K!dBuPA5rI4^gapaHCYx095%JX_j@-&7%#;#hT7v@T=#oM0iwh#&|Vh zm)c3Xip8$#l_RoQ54}TT zD*}?u^?ef}T(aN&8uFJgho}mV_7=eJG9SHoTcDc#=wsnRS5^(Hj+h)>agQ4{tYnrD z=Zdu?Mm2?31{2?~OlqcmU2;&S1(bBf^u|zh( zdfIUbl~&*Gt}NQ4iVWEH7pJ1ME;Vy@)gVWFMGB3DAw;$MF& z1{+hvvbD(ZY}{X}CDTHs3c4f8@Mjk-x{0&x&%dDQg|p1o=~gCSv2Tb`0gIzWSyB4m zQNXe;0@v<$Q|f9hVSl}E?FYfD=_gB%CH~;%sJfI~`Y)%0n+2Zv6|Xr2Bke9O#y9hN z;2nyjhX)+VEPoj-ubxp(sNPpCfB%1Hz-3SiM;!{=zH(p5;(`m+CE?E-+EZ3MYiW)? zuP=%S0~xf>4mBjz=DQLMdS&sAj%eEhjKoj(tNN&78q(Dr(wXvQW#O+Yo0IBlMt#b? zE0_#x>!oPl^Rbu%rz-txMTxj?t!No@w&AQw6aBW)CgVg&?c0j{t4EM_m9>AR;wS!b zvsjKUzbHdXmA?dbVG*MKGps8yQ4Yo2 z#M|H9ZHp_D#>y6Vcb%?4eT09-=%3Ob0Bkg06cz5&jSZv4qM!(O*OYq@DFzL$wVk1p zXzyG582j$1;=7}YU*V{N?Rbn&0#+8s9@*{)2uj$Q1_LRtfoiHo(ZkX1SRWWr*#w#T z4G$^ryXX2!nY&GKF00{MEy?tO(N>Ene^dXIw@QXpHYc*At0E)!KXrfCjo;_iYz1zV zedXf}zfjxQ8_|}667O$DSc~lOxn+m`9+%tn901QP&EQ0!3A*f_s$_Fh{W_HmpB)7$ z%-0BiNTG&NI3|pfektP|{|iQ^O2Z22ih%nU!H{y@FA+4fSksWI3|owp?xQVDdGRzp zk*qT5+e2tOp*U75t-gPtMx$yIXp~pfCjBM{-3zJ$O8dm>pxg&4mFEOVDOz5+wkA^V zQ+I^b&2)8P+wUX8aBOg>#@GZXWr94=+%rZd&5n8}c;e6iY3PFTKRe$Q%3*ba9zCTr z5EIB31UCf4nOm`702P~^Tt0EwZ+0s5#i#y!!t3$i#W5X6m&kvF3K}hjyI7zTi}yu~ z*B(QQNe{Tx!$b8WZ_8GWoB=GxBUtZF$`2^eQ#+F{63tGmNE`Z{X3-2Dj1n+MKv);M zlbYv|waY%xV*VH20@})xq=rR?JfnXW(dXGREimVKwu6y2Eg>k1AaBs)0xGedjBnn1 z4fA6MkW$q&uJnI!D^Hrq78@7gk~KQ*_79G&(N?D|b;o2h%%`ZOzwpCwo)6-G z_;LwmMC!5H``?8=bxp&+Un0I=B7U8>yO2_?X;|?)H>vQ`>-7Ey9`Yh&TI{IbJeRhqbX=OEkLnt56^EQ%c=lFE~o`-XpJX~ zD(`<@G43jhB}U%o557lU`F=(Ezx#^xD?NJuN`K-toN*hF6ZUvqeQhFLG34l`bDwNh zIkpapRk^qhfGeF{2hjI*drcmf(6cPYP`3H`pyq(JMGe=0y_+vpWqAp=>9lwlF!N4# ztm=^4tm;$UkTU9Srd@K&Z((z$GS6m=j1PYxohcKf8o5kn#ccXlntt}@PM%IB9`xt_ zN0lo-`3g2!J{yh4x-F9=23K&B!Dw}!{1(pK-?}-bFv!P%>HZR6Xx{Jg1Nj!i^{Ft}d;7Aj5wT z0zP4_+sX9Pygy6mzHm97e$pPLNyYoMPA$gc(QGkVsJ3A#vfK5Y2d2ehO_hDSazJG; z1&FH+SKnhWMs@S;gnj@0MoAJ_<8*#@-J&$E@rqZn+0vl zro>d~%BXn>82bQbemMdvq^vf#8oGbaK1$4X{a8 z9#wO$YWGJQ8$+)9qlv_h=A{1-rV5?*4?e(TNvc@W?Qt1eU@d@m4kZNKlPi~Sp$9<$ zf0weM2QYsv*Aa%X;RtKE{YBqW8&#V2(RbrAfw=Q-+&io1cz)fPWjbic6?In|1E?SN z@zgIlnH2013-!7?J3{@x-P%bL>*!jMWZjxaz?J7kUpgp`j3{O)9xLvcjI%s$J-&p7 zarbfSZ-+6s88zXybtStZC3JQa-FQSeDFl5W|JQ%&!fXi)LMNY9lI?vAWFomLiZ0RF zT{-e^&0AV&G=8#4cBks;WI6xx)e}vnoq7IHe5tiFZMR&Cd{@&EyF|U!)CPHfD!!}- z9xYz>7t3|DXDChn>cXLy#P#m>hpvJ38iK0p=4@toE2t}K{;c#YmsuK9u5DK;my&Fh zXRv<<3T^J_*Q0dh(fu`9!a}~|IyK16H#+HI-R6h2&Cet4v>jhwPEG7>Hn!(cIuERbB&(QLi5L#U9n62J-2QM(hs&!-Q&F-)q0jG+;zN4tw84%a zXha{qfqY!0tD3x{XVw^Q9T7!{O=aD!x^hhgYjATh&QG6rk+c$c$%(`gzu7Cp8k@lV_IFE+?=J-ZMlXK^ z*1d9qrhye+P#^u{^Xz8~mtb>m^WyyohW@3h;9Cjf6y%FHu~dFhW~6Ljypxo8R8>yG zNy%Ijp+Gu-$CVK#90pI@q5X(Jnz{Dl zLC~753$5Ba9t~e%7?67f)HFR%@^62uPbwz7TygSz#J$i?ks1aZtqL4ZNg{Gr^WG=q zNKsuWjV$xp_Xw-|UX&3z1kEq9=$_h3Ez3e;oVZDLTSbWs(6G~=LBp*7{k~W}lf8IM z9DqFsg()J~ygW^hV%iQ?-7WrY@keP^uJl4G8H$i!LKAWl9%w{(&`7r8UD|(2(v2iG z(JSfx+}aq?#gNoR|B5V`vxV)Cz#%}mJ!>gt?{~gCDEzgy`D+6^jYl)`C;ASigOofR zS;D1s#!4|g5v0V$H(UW{H|%hw62b_!N}w$NzEP)vT+4L!r3^|*k=8p699XrGI-(U1 zNs-v#s@`8N;Rd5;t&zHg{GfkB<)yr&pa>jBqnUjFrQfimFt+Iz6|08K*b*FsQcXM4 zkq8hT&9EMrCdT=yvd+y_Y zwET9hHNU${ItN`OZ+yQS7yY@F?b*M0ohy(Pb-G5+@22>n^&73HqFc9LeLnZ3kXP#!Dm-8BL?a`voQziZ6{BB}>q z^hwc z$4OikrOdwbcbkH0y_;*OV?^QPEf}4Mkx3l?-}p_5ulk?;bVx#R$?)}L?0A~ueXQh7 zc4XzYM5yGT`v-q3V0&kKRpu*91`(!pu+J`8yM;l@$72btJ?JE9ur;~(1FiqTkDyJ= zOHixBCN$W^e?yN}#4LBeiHJ(vmw_bIMm6+zqgmv+uY}E`Ou4`%f&`(SMN6uX*=sq< z!8!oOqIf52IiJQYOS;+gtNh$#K(g4u;Ld9yJFBvn5et98BLUWPmCX{}}xmDZW+P6v(tx2Wa z^Ms#CvXXI9#6)bVB%j|`2qSXeoayc^KDeqwOZHs`g@1}CqU1x6oXg~wMgOBDT8J06 z4py9;>%@N*Z=~qcQKhTFcf4j1BN@4xDwdSBw(-9B+mJVbhfbE4r(oqP=8aDK+G~4M zlAhh81+Dy3gVIa7+xwrPyCOyg6QILe~7%LMSO|tdodY~26$sBqkJUB4oTnS z=K7+TJCFV3XS3?AeQe2pqIYelKS{Ex(DSI_c2s{cdRqH*G(je*Ns;Xmspe`lGwOL0 z<>_c%@N5Rb)Z8%~-7;f~jXd#rY!`F|$MpUB;F2^>ySGnNdpl4XJNvAO*4zKCRyO}Z z!aH=Ke**2{Bg{+qZHI-&yoYusS}gbl%FQ5rNL83NT)Zuvl?1?R+R<>bAimV#=aZWS zoVR~Eh^yaX94x7fm6=2etZC4K#EFyddHw^dJ@u6SFn~$Qi&so~ynwFC(&vcu z!OF$fhbCs19sJ8GCm|@x)k8a6X=&;5uE*isir5!oSqC^;SENL(MwN?0D@obiz8Zgh z9!*M{b)b@p8ftaJDdAT3XrcXZl=Y>rL6WkvwR&N|p_-fJXng$hvE3*pJ%luD1s(4# z9)0XD`*U<{$G;q41bEn|^oItdv}}0~qu{Clot{gdK46lX$T;ZM(p#ig!i- znqs4jIA%cDwhxh%6GXsA z`51miHi?0IXaOeG^{m@4(Lzw=;Hr<8G^+4;L{ zALMpLwOkHBdLk6RLh_!7i&-J-K*Z&t+1^20tPv^$Oh-gS-H_fDQE@xu&pHsrRxei4>+!Gh$)z{C z+N4Nu0%2e|R8m<-dHdyMpu!jQ=o-p!?exThD{sn%vU?jHU{c3FPg!t|)i<(#Vi|dv zM#VLbe36}2&84dS%zlt3E3I+^@tD1qd?05&qS_ptA)k%rct4yJ^}tUkLS%jTcUPmA zK&}TFWm3(AN?7Qzs+6S~jRq-G`dJ;i8dqjnQff1rWfvejFw5rWuoy22>OSV=KBRU4 zlH(_9FfRK;I3*e>el^I25gV%|=}{e^jDSXqmqq`wksh%Rq|4E`X!gfwiOk=0YnKkN z4r!OZt_K(s%Cr3Gbd-S93=k*Pu-)`I{_{qc>8=N_05kEKTO%k^YT;V$R-793=O{uhs?>bG}1I{ zc$A#1&Nz@%mb@7keZXqO?EZt{=#s*(EjhBm1Gw)zfY1IlfNmr!rvZ$7hd2aByj&%1 z+wk=5+t+Usai6-=w2r|eS*0PyDx)+!f|g{tIQU?xe|nNF*J3%H;VSjt_qh)AdGx2^ z3%P5uK@(DiPVzi2(7lRU8(PrN?#-D!oRerv>o~+pm-MVvYN=65g;JLFxc*=iS{@}2 z)KA;T;H`4Ey1x?tJT7KvJQY{}v@DLuxCN&(UjY%+428;yzw$Q;RJoh-T znvirnf4zabj-SEHESCKXjsuaj6KhGO10(qgdB8mLj?Wk>@=ybJYb zv+)-O(-cip8*}|MG)$gKx$C9THylK}tP`@*mBb=&Za2kPIOIcCI?{37MRMUl(8Z1M zf1i*|lj+hyq?-G5g(9&Bp*Kp&7?ygdv|3z=_*__gO)w))unS<)ElKLRGDZqz6sB}2s?Z@Ew8Vl1 zt><>2I3<=jcjP%j$w^eY`WEQ+oV4y#e=G|5T@`F%(4U}mMrZJ+7%ecsfo_4mkVsER zzeA~SSn(v>3Cc3h!66#7qmb&Tce# zUZb;rARefHQY&!B-t6;(9{S8+?+3k}@~{EFLN^*KmcOr?&zRJm++O3Tnpg#LKj9Rp zR~IQJT*=L_xykq+!5wlZI>Qxcf8y>W!72loeE41@=LsxkSe~NtVaanqeedaF41W`J-9Q>x#ENoHuoaX#y&7E?jWjj{s`eVP z&rQEf2_;@0vKYNT)>ib6;~7VcbTy^f+Hekq=bYH^YqF)mUY@wEj>OnTe-GqrZ~B-G z@skeV(_%V?qXGlLFJ^s|^N_;|wWVyIJ0t1wC3hTtcmZqr1H`^A$E$J69rx!Sa>+oc zYi7d*Nn1kzYNUt1YTRy}az}=JIg-xnoq1~Q@1-am3RhnHGu0KK4%$Y9`W+9ZKvrD^(y;tQfaoPV7}l-45wR`!cytxCJ=D(yn0hT*AM zYj0hxJvNVLmMZS29-WVWcjSDL#MwWYPLG zT3%TI5vr8B*A?YTf7sri(Ki=;wp8UBUM&u#ZjR*-LZhgc=SqD^eK9Eac%j}} z1E&{sp)${|(R}j&8_ia4v1Pqu&gocjQt|2eRsM>EWIsw?%#;k)$T-ZewV`*6jDi@Y z;JG{3q8{{w_Nie$t#iXwyKnvc`uOSjo42q3^TqMgx1vmUf8N)-x1>rf>qNUx-TG1% z)9Fv0!Kz6M2OPfmS4=QHwEOy<^2Wg;D)DW6*<13p%=#@X8DD1oCTafuZ{x(~mc5*s zqn6kP>ELu?=@8_x$RDExJxLZrV9xD`#vGi0Uf#IELm8|ZaD^SPHe8>S+#c`Futk#K zyeh7zuFq4efAu2+v$>f7!MvU=oAi)c&=aQ0Y#|4=xoN)DyRo`7lxg;~MO1|+3u^){ zW22pB@p*6tO*fqB#iE#hEE);jrsVAla3NfQXaSzGBszf@6{e`Sx^Nky%268lni>E) zR=-cNVwF8h>wEGI6n?Ctzl_G?KTocsrRB5-rB^lGf9o84e?I%)sD@qRwE_ve3N@`hzD2CT4f0Dd8-RV>9O8J~gIDlw+ zJYYaHe;1p)M{*f7n2PiI?KJ8VI;#QaRYZ^6C(l7ggMQX=su@$6rQn=c>6?BKgUr_b zYL%%(&lr`V5Mo!7;#9$TQhYj}k#lB#n{pjeql|C~H2C5MW;DUtngr~Hxze*CH@Q;o z;3#Ka-&hWTCX5x~)TAoUHyBo^sdn$~R_IoBe|h70@i%z$YtvtA4h>G2SIQ$7y0R#n7~Y_S2}#i98GT)`Wt|Lna+pY zSGgA~FT_VB>5Zh<>i~~l?kQg73qHPc>K7f_)G-!j)>qhnCBudZsk$%{GG009Z>eEy ze_@#E(N<#wY_6QGqvXLud{w~aDTZ09{dRLlRP59ai})IPioPy7suk+gm)Lb%_BLve zhJIVEc(Wr#W3eFLSH;Kqbi&b%&0AB)j1u^4TIPRkpSNoCSt`NlPAde@86#Ym+vEbX z*(EiTT9NZcL&tCUFc5#%i1#jhBN`Z#e?o$<4tVE8u0wD2mQV5Bl^40ro?<3{YMLxh z>z)TulBPsMHbZLI%55DJ;lu)v3KDN*ELZ+r8=ibm13O(Sf*U(yKudif}K;?e^D%Z zs~$^6c9eNy-rGe*m8HIR&S^Z0N|&Z=9Z`SpuUk z1;94bcw8PF#_8FiEY`a2&rA%UQF^O^nA60HfWG6ir_+E2!#gG%{AKf3q8mpO(6wg_ z4&j??tsB;D$!~imyF8V{f*XI$e@{q{KJ~vCfG|%K+NT2BBxqniBeqCgXO-wK4L3x@ z2}`}L+w#&$@k(hy6^=%RtVELjn;FmMe# zxw*I^_fA|j|Mt~4jH*;ut4i&5@V_KfhWg#JNBAE{c=?4@op##om27a~e+2xg&lD0G z!63X4-osJ9xwrlU0nsYSyL zN%i)g{XtoX%_yn+xt(UeT2d6U6GIDKoV+((mp%*CEuSlXG#-2PivI8)aH)AVovSn- zpqOBFW#zx-yx~0}f2qvNtc&qZ^@(8L!e})(>vZOkx5GR9)u8%*3Q$fTmqEjecPGQLU z*FY-pg|Rv|v>?+2cFgx^@dSe}$Ld_kO5+|8Pz6-Jhgyn4GDSnQxQhCZtqXi5Rbia@ zUP$D_e`MvCVbpUSR@N%*JoMEloH-UE(TP;?i7_kn$MUuq6r+!Y7x@cikgl`@L|gX2rn4Rkg?{eLInTU*N}D?KridGmLoVUX=WTI4T^2uEjWyQx z;n0^%y$47c%Cj<;#X?dVpYSUV4IqpNEON!l_I7?@93S&itZd8R{3}Oau zZq~DnSlnEY@Fjm5cd(v)g;g$KB*+G4Opfo-Z{hgCN8FzSw8fyrGTYNw%!V?HEVDl| zZ@;o}Djw)6ETqF`H`J{<>9qau=K4O*^gi=cSgiH2atw+0`L4j}oz4=A52M)|vI6|M z|8d0j_7stuF$=NbEi*Kbh}U}MDjf}@>U)aw96-}WrcQt8X(RFA(AVFuHouvA>&aj~ z9lPO!Slxf2GW46H23_;`sNw#X>cG}0%VEZlt6X>LdqLbGC@KBYPb>g*Zi<1O$4@^OgBvHjpH=-# zgEb2Y2Zb%kQ@!}!bk2UY-o2Wy6JXGbCnRww5y*c4PX#?B#yl=y8IYVxu?!_LC=%KK zsrXVVq^colVn+7S^2yD7QD%iY7#IDyem;0Tk$g=Qwzfvw+^YH~=bD3~RIi(2dYK#xicYkjz9rRKdpD}*bwi3wfuKFDPCXV&&Fv9KE{7La%P(fp_>NSBm*FW&!4{dB&yO){ zNG>Z9@#fLnr$4_tfA;$2@zb~GFP^;qxkSyJWMJ|*^n|6_>Lo(3d+joEw?S{ph;n~# zr=Lt^7|;lx7cG$w2|10H5PeE8zDyoDUv&SZ>uIJcv+kV%zK6ECC4khhbq2PA8JC?_ zoz!lBTz_mDty$L=wf3XgEICuY>u@4&CZqqlDU8-0%6MP(XNO)o8PHH?H`;+DR*Ts( zuhdFOVlHj~_mP|yLn(+@NCB-gsJnl=hSzPg8IMYH8bSC2N8aqo*bo@yY+`6UtlS4% zzA>se>v%8x;BBY9?U92XxDVjXAd6~0ktF4$SSnlU+!qM^n0M~(c$k1dMjFsLW4jeQ zMHsW9n9J~WMo5UyCT(-m{B}%?e(Ho-a}r#ilVVAdN@4kEo+tgqAUXVszBqrDPp`4s z;}O)nx!KUw=6U|@Dn3d85eG>|HM2OK215p2YX9jJHeI97b6(9vX#Fvq30!b(k9Sm_ zm022ZsfgAOuX!v_gCp-M(% zeOz2l=S9BJG1i`}EpE;^K5S2oM3p@5s8cETyLH+=6L9&h0Pqte^=@|14%1S=KRpwp zmyW{+86q8>v2CoV%0)_Q&HI{`^{K6Ui3e#!bKc8m&wBibOC9XKEwwW z4<`JLnKx92fXd4Xxw+Sumt({SApy9Tg~SISfAb+1PVI-PI`rz^J2JNG?zM}`caCE$ zM7av*ult|*yJ9%aju=e_b4tq%LgjKgDdo>I`F+%BXLQb3DCt02DMwzPUiFt(t?SXG z;f-U<+fYB~?&$uf8MmkV5%eqCR{wK2>&^1k+R)7NDSMBK)Y;Bxk8!4U&#bd`Uwztv ze;0^`y=~*w`?J!KV@6}~(niDKbxv^1 zLA%g3C~kJ&!et!*0yZN+Y;|bcmFyQ_*Y0t69l9hhxSw0ba+U^{Uz59L?lHX1V;3qJRSR;lKKJED z$SfS9R?Ldt%6w-ysa@30saKk>w5)P?J0@;F2--AS@HGHVdxSv6^o!>`dT63q3W`Fkmblq)@j7=gcb&k;3f3~Y< zH4P+L9A(OeQ+`*M16Xu`HUuP-kFH}Woy1L5wg z0UPr%t%Js;)F}w<-8-P%{;!qVC7%M*S-#PzFKGspvOf>80<~o41KE=Do2K3i>SqKl=wd`iREet`NtAF~ zk&ln1z3}p*4p-MZQ>}8Gs@_N~H>ue6J)Eh!b&EPj=i{DHlY! z@yD+#8u4~oGQk*j)b-(7f4|pWk$V003f-rtu&2(Eq~P+sxcqs#WW@8$0%Gye52Hs* zj4<#q;>^iw;20VSpMgmrvvn+ae7XX-DFdEVHz?u2!$%hj@y?Vrm*aAGJR!y#&W8P`-O^BWqm2$6Kd zL%&A&I2YZ|rm(@7u&A-giw!8W$qPDjSVo$}fPw+5b;;E;qFyNU9rsCRpPn7oqD^Fi zRM2aqUAcTawQBS{e+!^miC2oAF$X3flNcawy4^-c>QB+R^;gtH&mH0GKN(0qW>KM?L)NqNQ*i`>o}ab%j{e zPjAbY)2WS@a--4L-ovfEWfHYnC?;Cr3@P{2nZGk2SA95SCSMSCI^!;)`)PKg3FNBW z-gI-b=_%fN0Q&7e(l>&D>cbu)4V!){hPd#?f8v~)S_iD!i-h*PyK7j>%R99%xk^Ke zH%eMzJzq({Y^-Rh2QDJsW(r9oub;-GXK|#;t=^?J?yf}Tr7#O_2|y&#bz4LR*^bH} z+pY|;k<=BNEm!27-7S!pLBnlwq+e^iZUt9pDK8@PfT#|_ ze^G^ELKac|w0HnKqeSFYDe~NORF;vIJ!BpF)1lwVc`!dX(3N6@bmi4`cPA0z?oO(z z0G_^sEit`WHhiwRTKZsk683wr6AE|yS3&Q4Woa^&JjD6vOiCwLhiH`$*H+Uz;ZpW_sDu!5=7Zqg7O^nVDss@JdzC7xw{NOe?nc{ zUnO>Pm2pMz%w=)EQ`TO~@eCoG`EDzB@nRDV!T0;)pWGY!_h#(55qJAR10U5RhdB~%deI>gVkVV?%YXzYN*dsRDTQ!fbG z7pjD;dvGNjjQ8U`Z*Isq9ypsY)oy9@W!GrjvWr;J$J=Z`xn=cpb0I zZ6z@7l_Vk}=7X7U)K^Y%7Q&nyFqChx2qh%<9*a;`Lk*ZlStKkiV?<{}fBZTaI;K*N ziu9IL349S6J{$Mn=jM^9w2dm~R~Et8*1@WR2%~WUk#OB*mFa|4JI->%@)O&YK8f;3 z;8RZ)=aaDQQacm8%f#Jx$%5<*=G_z-lF)S*a%=9vSIdE6DIHRH&M(VRRF7nR70Kby zoL@z9zUh|!218x9v7Mpbf1`X{kw~+SwKb8dsb=K)pb=61xzB^L%NTI5-^_}lUVJ1a zA__M}`zXDYLgtXHY;J0JyC-(nTmbXf6}OP&Jgo;)!68J6T!-vhS@p<_No~`a|Abp* zb?<}?lr=CDw7E%(t5~8kFcwiRuljt|6;5Vec8lyUZA~51JA6KOe`=5+4v^97z)jMB zb$5!ky`s(+T`JWSz3eYSisaq+OO&T8trpH~^l-@L*VdJqPGdc>7bK$6JKk{>9gBC_ zh;j7P7Dd0|Q%-;9mC)kjXfcAn&*mtVzlH6bnM^$sv#m0s`LHW4*cpC#F-AU5R?sZ3 z5p^5-V>nYzR6SKDete?SO4LD|%BeUD4p|0(x6 zz?7hD6!Bc8xZ3LOkZ;G8a1@rFQP`GYfi8N`r?^9ZWTKZMBeqo%RvD>> zWu+)fHf3^Y<%C;^JjZE&z?R1n%7GJ)gvgY~ZcaI!n1c_+7wgl~OBoI0>DPdz2qK(F?$s_>!)&3W}Sha^u$u%cSXjcQ&3e6e}RQtl2^yQL0LMODa2^2>J^J-o(1rol#O z_*3IL?>nl_w#Q}Tk9sOce^PWfENJcXwu&~Xf0FSg#wn5jNI_t*w7o zvhQe0dmasseCkjI%<(oIcU|UyZG?u9(i7wncUXhw+LtK+7PBYQ*_ZfJq+pf72X67x z(uU6DDQ#McRa=iBdOndgV)GPWguoh=#GMa&b-8*Kre2TBwS*{SCk~54%xZ+QB`$iG zWgW{a5`RNQ?M~=Ez}c)jR`RB4w{U1H(vyX}l?fLzn=;iGSxCm3BvI6%h|+@PBwfmj zcLOsEsgw1d@jgScrcNw$qFd99}b|M1C+a?x_7&> zx(2rtyIbgm->D?#RF#eaJ)@k9Qa!hur3T?vWo=+^>QIoN0Q^X=-co%IK zIQBt*sSx(VS?WzSDu;`*!_b)98=ZgUu~BBA{-yt58#o#4sw3cjE)2UheHeC)6GQDF zFbbx<1>%oqve)X+bJAF+dC~_4pie>BRna4(0W2i<;2baU+vVSbsm$S=0tMPv_&a@f0=;C8V+;EB%7gvC7a9CKYND zNJjrQxtc6tXYh8L7~{RX5^r9)Rj$*^;ucbYce%L=r3d5#^R4-euh)g2k9v)yz%QU%6u)S z&a#o+3zCt?H-PJC?iKB|6+ivil%K4`Ey~S1VhJn09L=(Xm6e=FJ{8J=l}M83~{_nT|MSSirBKlYx?1eb@RHIc=EUl)g=w zz-QJb^&bzcpp>Rdo`V^DwtI)MJ@E=_P0YG&CgJFM%c#*7m&p8Pi42HRFSIB<8^(f* zs(yK@;)|j`A6&gH7BFP;&i^m#G{*+Ly#)GlGWutcb#?^){!@i*Q_u|}VES~PCBHi; z@V{gw2UM;o(1X>V7qFesH^?6rN!37GFp6uO42K-98}ZxzXi*FqT2Vw28?4h|*alKJ zn~$#h^Dh)$+2GeRzC(W8sfUQ=@CBlEj^s~67 zn7+2hgv33#wPy>7rg9-x>Do4)!7Qu+k(o7;rz$3(Vct)C{uv9++HM>*`znP92h zUVLB37l*z0wo0QW>NS~yN~+S9RK=J{<4zQgH;2r#p>}2~;(5ZNKdaOcN$%AlgUMpn z2QHNasWvcqx{y3(O|(_S-+q5S3l14XDOEwWj^%9$qLJAR4g$4vN9?xo&qY_6s3Pzb9%ua#HYO&W?EBQ zKANJ$=!s@QtF@WAg!Vja2NaV1DGiWVo!>AcTN5Y|mHyGMlfkxf#Y8WLx86?nb;Uz2 zVa=S|Q4bqVMe@RsCGEtDVI_|o`6&YCbirJyJZM}VNZ91Jo{*+80z{&o zC6u+q;(9t=UNspq$;_%8B^Ix#`OtHDyUXm{gwJ)?X96(B8-;~mHjz`cv6?3;$;U>f z-e|;a#C^{wkiZx()|(r<;|Sj3+9kVt73moe5UvEu%zN+i7$o&c$Wf_jwB~=r}kwh zTd*}D`-Pn!#Yv!4uV2!y0IU=pnuchW;{<({nq*ufXb#i=B-7vJ7kx}OlVeGyG?sZ?K;v1L{4NLkbw5;ZOLMocnXe*AwD zxEMg2sYn^aPc69U*U3sotAdqvLs`IpP!+=a zC8hlZFw>D3UBJp!I=IcQnQjxCH8+346_Pk~w|`yO^&FZ6iS|HsiHEc?tx%jh>1%a5 zyUj1Zv?3|r9!S?E;!dN;7PFf^pLX(KI|$9R=Uq=gO9hh%8qBA6S+uJcYf!pcM3wY$ z4Uk&clSG3_S&}|4*xTwjvWmR!N25&8!(=o$z~As^BYF-&U!6VB(#1gd3F&{(l_;@> zXvN1W$uL^8YceKe6F}V??XY=;a)ChZi$x3PMClTi)x`pfE1iuY1hw3_yNOaKX^e4f zt$BjY@+sSZ8pX8MHXuEfzWj(@QOi$ydT9DF$0KOGFBWt_4mE8bG@ zwE~fuVQtkfNt@$e{j{@MC#B)xgv<|?I?A{J1NWF=kv*PyJiO{r2gf3<#iTSF(7S`- z3{KGmhB6o7D6z$siDAAbP7Lv!7=L5*Q?6(PnL3^lTO7TaakGxIVw8VPWuOJIs|NWv z-P-OXs4$^FV7sx&Vb9-N=*bm;s{jNdd_5Y86fvX7W!+t%TmroF&`n|yzvqX5WnbjN1TyIG;w_pUB&zi7Q%vD9+?%Uv#?0a_R8J#iK9 zY2mu*Q3&KwtbVJn!M8toTS`QeLd*Cuu-IEiXll0b2x@!4;&wklA#L&|@*L2Z}9j6WlxL)3bU z0mMl~={mUqaq%HOC*A3Ek`ND&h7uDToMbE={t@}Wt;gX50bjnI4?liXyf{pEG5}8Y z?T5D(^M>55NEA$qqJIGRWOg?nW&QgLkb*%~+;bcTYL&{v0&7Zb@UggY#6}DPD-r$p zUd1PV4!n@__f3d-$LEnmigEyhf2lBvMsFc&nFL59m_&twS!fHP5BA}?@>;c?dm z6^!o00`(cb;q(iKAbpcCN5|pV1lD#CJvYMi1p6nD%rSqub_~`->i3^AkBhX>zp8>i ze&pj)#SW^HO-Zpg8eXvv2$Kw=?~v41%l7K=fukacHmveXdf;;rgF+RXkG{ z#0XwtBUj0q%`0e4g{sE1_dgx9kA{MsBLy%$naaIqeD4j03cfvj-@eQRDmZ+P7Q(tf zU@GfMER%n~zs+t0`=`a#vzy^4zx|S$724~h-Q{xS*B6~=tI8r{K(mC`PV!+k^^j>T zY6umID);3-#YRwz@y%v?*Pm+XX_Yq0hqrs`2e@tj+|plcPpO-(O$g=W@c8ug_wV)x z?+#8*2M4G7?*n(8z8*o!14Ou-5UN^l@YSl8?(2Wts-eC(ZgI#s4ec1b$xkF0BsLNi zDq!nM`UEEDKGGIk{?NJ!W>d5lA|9ngQ1~^NopHP2>jotOZ)$*0*d|@g<8z5m$g2_a z*ECF7Hi}6vDHq2wP1eb)lXoI$Y%Beh1aKLwA3Zl4%n32o+0Flpcy)3B zm_L7i4q+=G=`2520?~e-iYpuCd}-arM$S3`nnti|0u<2;B%psG9E;U83Cy1UXiS0y zm>^W&%Q{olonsqi6=VCMiXkIhv8wJ|MTkW&355?SjZ5QQ3(j<`FWa!|G4=Q5;CAKg z9L=*&`RuN!nIOLCIF71vZ2VTaUEW?_bqRlhx|{0yY9xE%-DeHU-+t+erS5TzDcd(G z{$0XO<}|w>J(4szbXAsA-9{u8S*>7QZEtI`ywcs}I)?X;X7~zbCrR!%ldzIrZ(N_Z6Ra5{dkPE()8-fU`Jvk`Nt{qA9ahDK1c9ff#BW8 z9mMidvWYx}dCkesU12SO#Ii*UE(0nD&Z7%yHxMlB2aL>)oxzutKIPzVE#9U4<+pk| z*7^ZJ)+^WcsQJL85HHH1;AOWwxBP!Wxx5UoFxUrZk}FGaAWMnDfh+F}hZ2QQ`UBeS z;9$~u$(Gs%A|rAk%j>tmV*N(VAH&`E^3c2Z^$fOOKTy0)S>DO4BSsw+k>nZ{ph(ZE zmQ+=K&WYD)=)GAniHDahh+l}IQIb`j#BC3mWnzd@6A^m99dhqjJi4P5Ysr6VN*v2T zDGS6?=Opz@c*?{_UUV7@aY5HQNxdI}MsGhQW*otX-3G7j&EIkHM%308!_Pmn?_Eg; zD|eA%{IUIRNTnSZFCGSx+}cz!8jAfg5cog8yv?sO5aZ+PHhOh<3;MFO;alBo^FNs< z8sk{OsURj_z}X2hCw;5~u(5yW5LgcEnmiqPGkOulf8OYlx`AEr5;bW*gCt&$PC}6O zFr`KpUv4Rm3H5)^!58Wzwdb?D>G+3yl7XddOM9f#qroMOQ|o(IFNB?3W~g9=GPZQk zEk*zJb+vQj`v+St1g%cWY!1py4&Xfu9-EpPH7sfD1JBPYCM*{B%UyrUYwHLG(L9?B z;jP>@MJDrB(kjLS{g9X9$Wd*O?~-cOtoLKG8$^0AVz1vzTY34Dbem^TOSjUn&p34k z>J&s8#jN97L3>;qDkpU)errJSt)kpmLT3n&9p`z*yOC2b1!>Ed zPqgLlLR-Qz1eI$22d;mx?rofu*HKPwl@<}z@fS%(Hgf$v8>+k+>+RC^QsI)VMqk&3 ztR|2(Sp0CxPHOoY(yn|)gOuGW^qR6|3<@2kHDgfZIKHkT9`Wf|dzqz}(#?oXTS4)G zI+bNKrsqY)e;@d#^rRwnCCdG&RK7!K8*+9PO5GRSlX5>USMYzwWG*Yq8_%s(9lyl_ zK6sSigYAc=L$TE*e53WsI?DVrm3r{#ZoLvWn?Mw7{@_;LkgA``ZIgVSY2vm?u`lGj zDXDZB)bvJgVl&auRsrwm@1E}H-{p=*BYu8gVFKJ!_@n%O!fXMiRnfGjKC8^jj6x;K z8}UFRM;gRgc8@=Zyn-dvSlf#o?bGPBF5nbJz3u3RI|yQNsHbU`K63ZGTRB3lv?I5N{;y>E0bexn73pMBMB;RjA zK31*@a(jQzt7M**utTZxS(5VYqq5|u46?>DbOIRiVEh}EqrT-nSIP8c4wvqnO0a!) z@t$Fl%tl860T`3cEI0D-fohbv z-yUHO!q-QImXT5~g55xtBKEK>gwl9gyDuLwt?vXfO?Q&OB(FG`*CRh0z472BpyjP}#fqQkY<;`pL^4NBdH@i{Wv!BO11kT|}_uxj6sB)Uzm ziFbd2-dJoj_rN}~vl_?g14qpq#{EIZ%z9{zI8K_KFNzizvI&|^1yxXFho9^#NsiB4 zVk+t%nov@ayW0jO@XDi83JHsa+Ua}uAOZh~?+9#jw@g-b|jEKb>|jj*`z; z;1m32I1&hAI{Q2y-bBmvK9st&rkG!wN%Mc{KAPP?XKlPB`Yh9<1gM?VIkWo{Nh`?j zLqUY))AZhWNl5h_vsg$5!!OzVhZzYUUVk2bL5m;BXX%MVbFR}FQh4SPM{LJvrV>qz0B@!8S~h=2 z(M)Xb^Ka=+r9;vXzVAHd(Q;Gn@sYL- zEX;>uDJRmCa|ugW!sU50QOZYmfdzjr>MM|CT{2b^xQ3op{|8z&jiQIJkVaa8bDiVCNMd-^E-+WjS-(z)-&~EcKM7$#kW_2*@u5{Z_j|F z+83<(4GSjI8u*HfOy|p1~-h z=U$ufuIj2`;S?817^THKXnubiaL_)`(unmWAP3#JC=TlYciCG6~Az-N}2L8NC<6@)o#bv5A0-=EZ7Kmtaq z!n;LlRN`H5#dLlRJ1Wrl-Hqb{?}bi`I7E468YB)llv51n8^uc)2XcQpNswNGy10M8 z|KTSzIvxDDfAE(dPt(m_f@vrFM=GiNl9GPjKR!Kp^ZMQ3==IyT2Os{D?oj$K2X9Y* zOncj%1C>VIz zdYrZ_cJUDU7jW!m_(iRkC3&butytz-i5NlQj^GSBejf8+)uw;ukDzgzj{@~3;Wbl5 z`Bn4--e>!NtKm7jS-Tq+ze@^#5oE#i} zIN6i-@|Q$?7zX>Es4a-s0?$t!3NRx6l`eIAolf$1vH|X9Tlh2tHtT;)qv74{OpsUD z30OI``S<{S&WnFsU~9d-6p$>Hl=e!HZm9xpf1$qV@849brBm+CpEvc~E4{_z&=eZS zJ#6PIyB4*2XAvo%3z`UAR1I#xN0s$4D6WR{EIQZD!CfK|Ta)#k&S7N?h=0K>qxod*$B~NTm6u1i(qqdG=Uej$Wj9Ni1Udli$y1vsXsQZOS*0?&VdS@A1idBHoU_u55{EYwSp0cZ2G zY%$`?WtTaT)`TTC#I9g|H(ge^l!i~svph#=JDtuGGyKF1|7$bD|8y^-$E6RW1~q*fN>alBPx0!y4av$UBU(y2aad0b?Hia(20&U6HHg&Vry|g&I!$5V67T=?5Epm~kRh*>5x~v+lXZU1Kq6q$XgVSb_^H;Od`n8dTow{iggJ zKgLsyMk#!0#8s@fs)}v^-UrY>lY>5%(kPxGa38;rPDbBSU#WLw>N-`fFH!5a&Ru^M z-`-QIjmWj4C%5xh6;xZGv>YsHqPB-9XV`_3XdQ+fsdM|cOjdbCb8o_b{7V`#3EjtL z5}ruit)_DW4yLi$Md%*APVidLw> z`ECKlQ?VCH-mL9P)Czy?L^ywM+Yg?OmFuaW10Du}DaeW4M+VII`X}G`fyA|bKYU0^ zH(a2SWw66OqgBCK8Ewfjca#n?AvS?^!So?OAp2NGQO7l6w?rM?l5DfgRbJ@KE{mn# z$~qT!Y&4A|c2&>%^2$leG6K}?sxhwr?TNhoW0>HUP$nvHQ>meArO#fQkSmKt7>zHJt9+aVjaq@B zqo3TnX348q0z+t(C~to`0ZvSYpg%w_Tn`_cTP%8O@~0GeEf$d^cvWOk$^{%lO9Xn= z{b0B>TNC(=dXtTJ(buPZqb*vpLPCv;1=gpV!PLc~RXG6<82hruD%v5O@l!2VeJoh5 zk4hoL&>~tnc5X!@IK(a~l&p2*MiHRuNS{^789ogZ`i4iF%07RQ`x@42;4OMj4|q5p zHyv&I;906Q!gka`)WWsO1ML|1>2hS+eY$jv&S*6{>GxWNev>Ib_p2VFLwLY5AB3l9 z=KEEtRCW@1rzmHv2`ORrAV9N&Ri$em%QdgFU_lYK6-SZO(NMEJ^7E5*~M`3B;EWLR*v98@68XhcR`1Zwkw;}2roA$FR%pAa2~0HD^;YW!c4ghia;Y``=AI_;89?t*9;bQ>kCQcl?G7i5%ED4fy46 zynC?=5(9rb^QXJOkP(qSp6J*?Z!(~BvX224vMP;?Ibg7&Q-JJ)M=cm@^pfQ$(l^C%smR`QSK7)UH-4eIzwE>82G0P7k=r%((_4N=q_d~wE?i$hZlVx9-l=wYz z0j;`<<6XO%HU24gT&wg*vrbv%$R7xh04*7%aNL)4&qnk-bnHQkMrv5X0fp0O-Dk2F z(voOZ4}84lW%4z}@z1m9xjHAy`0J{pK!8hwR>6Imp6^(Z8t!y}WlF_t?Uk+Ao}@Pj zf7CdCQghg7V`L5CjSL!RqOg3-ExuAcsL%s}9b2TV!=96QZbZa156f@&r9Q!{jM_0P zZ#rU+FxiWunrZll573e8G#jLPNN~i@%I~Mt*p%VULE`M{nW_V`!Uo~IdzC3)_1x${ zvkv-w*pw+L&njD^@g&p?SgFg}pK6GBE#UKi0Y}S28zJv%>Ra3>nlkVA%>Y)y5SC}j z8O9`&w~th7cP57^qhn7UHFiBc*ZDLD;lJx5lye7dCsR2&RD$?48eSB$$=xkPe4X8- z8$Ib6sM|rOnbin%g;_B1-;8t3nzQ800=Z{3`(P482CUOx)!!0-px>g)a!njYYE^`P z#rn%lCY=6;x6<=ST-IU$K_gUuSjy_c49sD6Q|BAw;tD!Ph6G2pW);(rT`cmvA3eKO z;#xH|#6K<;Ee(=g-`sxLP=M5=|4_#diSgG|O{9$TPZo`WO3DtZ#7n>bxTnd1yYy*KAF?C(G04a3>uQ{5PR{vWX^!II=flr~siAW8x5`Ie z6pxC!O;qznY_!WJhuG>$G12##I6~RUmB3H+!UzN0@&pgNYqPR z^81NJVVW`A3E9$g#%Sdnu=#g?JRxS+q%(wv z8a~-MuX4G@NU^v1r+f^WGeCy{0Rdlv)`Ds!Iiyd7k|@(oQpcOxl`wl6*j-2s;xA|- zFiDCqvT6*BO^q-nh(okuznYe!-+({hvTW2j;tAFn!Jf9QBr&T+b_>XiW-%HJ4nBaZ z!2yu$7APDLtF|aor8{wdqLyBi(kt7R`(jUb)2d*vZpBP|YDU|8Ll6`*Dl|c2p>&x9 z2{FAr$^V{#3u77dA>9^~A1XE}<*ZO=A+(;J#Xm@YW45qrbAc7yMXigTy6)MrKCl(u zJJG&wIjO5(32f%7R?uy3&1xGiqtX^T;X zg{V+PFVR>X5*tN!x@(Sr1vRUWDmrVZJG>2=Ery@6{z{=Mt$wILl~$tFF9TuHlr!uEee-feP6;U4JmZFFPrk6!!6>>huE_3C$6&)QZe0(`$P-@{cC_LbTsxQ{;ce5$fIG z1@Sc!Yg+%!iruwYy}LG@-DTZt3WO(y_TQ$B;_N-8w4$wc_U!q;(VPvH?E~}dF*)rM zu(%jy)*^h_r6T&`?OVN-nfsTQuu&s%-OoNpDpl=Yxi%_U?sU0u-j1e(xZytac68PD z4{z$K5((c*dtblFlN((dA!mR3CW|Pvd6h;n-~1?nENhzmA{Z%lO9M3{SFO-Hor~5w zyZL`{ATC`~P=6CpfBP?u>LkS91OzITNm}l2=M2B`D$jDUP7yLnARy-jqzW!E4r?7L zUxnA4y3qo03X=|e4s#Hss5moJ)JmBntm+;JD(5L^#UOC|-RxsNO;CTPQ}pkbyDA;) zwlO>KTk$>oZT|&~4FE*k7*tlXW0()e>Aa6WaW?>7mvDA}&im0{XLk`^FJcjC1<8Qj zENP2#lT=M?M!73H@3|I&X+nbxSxW}{LiqnHa4WMi0ps!e`jA1L~I7Y5I+wmeK{GFdA`ePB)lQnJy7y`mrt`60m{;P z?8%y%GrUZpoqpdLmXg-qvo=!pJ5g1n>c_JA4n$_bK5>|ouzQ4fc1AL9TAp}ync!xV z`b$`h&xg0$60_L?jW@v|;qAf$(y4tz4vG0B)8LSn-V9OenihZGJycm0jUYKb*ho_D_IX{jsZJ>Dq5u%VNPVQ>%q$iP)J#vDn)-j_4mz+d-DVZC{h&q+!*oUr z|Lz95f2{E%wWgA20bK!+A?Fm8%PBgnp&7%g@U&TPRpF!rL!0YiizF(wY|mDZ?b))~ zo-JiryT#G6C(@QMo}^hr{+N%)+0=uhWKi@R&p@F_<*NkPx;89o8nEv(MVu?m8=#w! z9D+Lf@=1R!>!S#6IDT_AoPM+lJr!;(4ALyXKRC*cJ6Kc0(&1npJ-y{-|`gG~aM{B!XPO{&khW_ z2D0vOIk$T=%2f_zn@zm_A<=3^1C&6nRXS%#~c6`upYBOvd6mD-5Djwe4 zd_RAjTdrj9^3y9Zf;MGQX9UH1i#AR7Qs?R&8Qge=JXEMXLc<+r0}Lnm$0_OjM57Fz zUZaGobB%Znp!}|`Dy`eZ-=i!%rMN+BWvyRR& zjGBCZ(K+&)iFQo?bP^{EoNVI2=pNkWckXN|P{?&&C~jxFty7YMIbPT%KXgg)YktE+ z2a0r+;$83gqmEqU{}`;aqTXQO2-F8S&h{Vdet-=prj*4v=HMNDEdth zF!@GrWD?EHi$t$Q3(F+>InO>v@mEx^KhAHXIJV>|+7rhGldr6Bo5&V4f?2NAKXVsF zC|8K&bc$<|_lI@Z&S-vpD3xr~aTR~nn+@>CnS#HHGx`koUCBI{PCwQ(7_7DTc*BoQ zvfF2$@*)@4@w3}myWNi5fj9!ZF!E%Qyl#TD(*wJB&u$=6$F3!r$}B<2xDym3N7*Fe z3c@atydCBpOP&J2?)H%uHB~s7Y0j=7?dAgdz8p!3u(%96y0YW!H@a5D<-mU>#=Iq8 z@kth<$*^7xemw_?`M27x&jR~(mAxj(qiAEZbMxD?F8t{<*l!{AI%7%C)aZ+=;XK>8 zoXxK{u#6z4@@yhElNifH%n{0sBk2q4S1qd!7>+u+LhrgfAeg*9vZ1RWs>^hCanu8~w$2yD4 zmZ@iU)0f}{2pfM%e)}bg6GtcFVFv29L7g@Y5lql*Ltv_WIK4G-{-R@4YkD?9wylV~ zzQwWz7CYi#(2<4`Z6mV8wQES- zgd}MBkp_QLlb}&X8ca>X1|DfRIpDA2yT^{}{bV5aWFYp(G7$TwmPlUcB@;|i-o_@F zxCxSGZekOLNhRqzdu0Y`U>f`b@JqUMudUM(!|AhZ#{R3sKgoaJA0RW*L-Xt!s8;+7Z}1g$id}!5--f4?q$F4i_eYHhyAQCF z0eYUeUQzq&0(wPia>?1b9ivEh7}T+JCsSS4D4>m=JIUCAS!aI+pwh85^FV09^ivCD{Af07N zPga@-PoSthDeRO?j4woFquY8Fd(5EP8YF6DqbZ3uU)jL+cdugQ9RV&EkMs0Sh1Fmj z2X^I>h3nl7ZCS-IS=&3c$!wchp|O^O_(XrShZ{o}wB@6%x_TbbO+o_-*QYIap5hWc zIa+w4qn{itpreJa^w9TBsrUv?Aan_oDU@}B`&bwt8s}uT>$s0o+3*-53cVjr#a$-| zYqxM)<|KgGrI^Ko(Rm5CYeNvDw87jk;0cQ`;m4d1^h9=<|0XlU0FEYiAM@!O zJa2^x=F`Uast5^Vfl_{aeZ2p6@YBiu@yX!y{n6m)c>jlk|B2#Vr&H1gpVae33NelF zfieO|Z=-pRF7i_z17mx0^V~=b)l`4seOU;WL!gcxR zp3TQqgWEb!po56V#+5(5~54k@F#Dmfj6IKC#ztPig!tW=U&XWjp$PE0Q+~70y_z)e0|-wQnHJ)j58R(d8#@PDti{)sEGk5NfPq8xaOZ@VP(17|34>( zALu%0tzJt^PM)821ha+J8G~TVr$mYcl**hoqci$uH$CSkLqbl5(~oimqf67gcb5zd z2sZ)8mqZK*D=gfhrqz5ZI4|(^0^c*EnF2MsRn}4a z3}>o%Cs*@)`fJ*$f3GS0O0$zZw&JrNcyjC2x%ZmjA8h;i;%j;kpwRdHUTt?@orgNR zBbexiK7$xjvo&=O#Q}s=sazJqUh0{I;g$Lz+ZI-?QDq9gu{1BDIkg%cEOo8b>P-2s zIG*h6j~F!P5#M{hR`cl9w|X7=MiFKnL;U@%8fOV{9rKpm4H;sKDV< zcnLd`rV>d6f35%^kYF^Neu>Uw+h(Jty~}x);rzV@Z*rB>M{2&BT&$ZijBbB0&2Pm4 zKo&9(-F_@Cs}p=s1}DbMookT|=YlE#6_hA~h>LC0Ar-Ic>Mpm32=Bilj2Tt*; zwA~V)$&5~xNzc2|WrM(^{nfeA~iPBXQ~sr4PC=|*vV?)d*M}6H1OwWL(LJM66sMGAJiziyiU;$id91I ze3#1Le_v#n3sp!)rl(nuMXWj+zOvt?O$shz&j?f3h-xNPrPAScnrOO=yEUNy2ffRM>vH8C!@Zf2^v=kc-q;$>ca2W%;KJ zUv*MfS~I{XoQTlDjHHjItqJd%Gdam^ex1$kZb^4WjyP16^8bVK4cBX?LF1vK%d!^< ze|}NvHwKpG-A)R~O*c4r;NV|}l+vj50;faA*phcB*?SUHoo zkoSR9ND`0sPJMu{tRAPq)c@ehw4XFx7tE`TAlam%#^6{Wj9k#Ta~>bA(t%y$Nsn3O0Vs0? z$#w!Twl~6xY{xlaL&((hkjAa8C@*Idah^7YqY=cnh;#&YziNRKD~HM5j)XIkE8H*Wi1IjDmG}gi<3u%_VgU8$xGdojf>fD8v>5rVV!1k$&JChBO>mYQysi?J*xrQ`#O6@i2YwY5JIiY1Pwq9AqdBz0 zu#6sI#dudY5B3!@16Ur^!40Kqy6Y%jO>gIyf)WTke^s>Z!p5n$b64-X>#lyJHK^<% zt};5@I{YbvD;v-?0BS&$zgW>x1(THbOuE;B4Jsvw^Z+v9ZF!V+sDhhp${mN8-S!DJ zft?zL2J}#r#Hhq3>GgDU1<`&!p(Yh6Z=8}HgJ=p}Ed<-DZ>CFwWu@WdYx$%V=(uuj z5nw5O$fT=9_kYoAtONJxl*CM}$}}mcL^c%H=^Sm}`}a4qBB$r(c{UNN2hKFqb88w& zr#+E&1-`-~sojzo=4EOrZb}`9!OiRj8l(m5gJ0)l&2)Gb9~-alZf6QfCig^tr)2=` z>FfuD;0K1yB0E$;)*Vh2iX#p{T1GIApn^$L**4ILxPRdfr$5X_cLnTT-#m|FNG;4x z;5ls$BoTyaPuCcb&iPSLJC;qJ=v${Bx8J}~ZBp?DjQCHw^Qc+=ZyOX#N@NfXA z->y@xo-HU*ag5x_>vlRo(Cep25Wg#Vse?d+nwepq#m_9)EhWwGg^IEG77!z3A|DSBYxVkZ6$f zyjM^?qQNBhfGJXj#fOM2_ocFijY4JSq1YaRhP@X*^S=Wso}>{hW0Zg^C$Yd2&_suw z0~$tnGd3wAwg8@fi89{6MXK?Md;ce+;S_N0k=nf|?QFj0-UFstZJVZ%9biee?vYf< zD1Yl`K;=kojcvU(HeqXU4U!$rhAmNG(IYm;NC&G6L_)=}u=Ssd#ixcen)a2lUiS@fA3_ou{bj|7c@goU0E4DP&`iN1#-IX(-q^pr2r;lxrv0a8j|MK$(Z5 z0fC7Thp5(hKoBs!fFq6?lW&IeF|XCmiGMuU^7?H!QIPHcvW{deu;j>wDzBRXi6VqR z3SOy9icD^KWfDMudba*NY_*#i1qzfm67XyC`2gV5^3PlA1zQ*?*IU1xzYG5ZD2 z50|P?Px4@^)q);hFX-EAH*CLQU<;BPG9N8@6~OK7ulsC~fgKm$rx#23-VVZMJYue>nfq`#pu9lixjNGtTc zYNNXcj1#Y!<>9rm^C`HlfKD)7wSTgZ!P31}SvrCFM^d&WZEIKwGt9Ar{dxYKTJV-1 zfjk@3&ZHt*zkz;QG8b5iJ;dtXDG4{`-{<2LBdr(8w3xdVdbtxPqpN%(u#Qq*)3>@6 zz@8MEz>ZdsmE;J0FrD4f;a2WC$Usw|E3!tGtrE6Nqvy|}=T_UVVin)o@_%;J5hzQ( z(4o(dP3SIe=fGDR|Y3rS&vHjAj$*^{W6Wx5gc7 z^zMmULlDDkv5cbN;LY*=>(hNQM};teP-UCdD9yv6KjN|oc4w1(2m9|x)9m*1Y%Y!( zNOz0M)#BD=X4P=MYFAAi+SB8oPEPmV4#e5`8IK1bEmMzF9l{;6zAkTWe&}SNOxY?k?te9P(5i?ZA7-G^ zMdzMUf@e)kv3=a@MsJvDV5Mc%vHaIzp%>zu$+8cTWTIib3tR8f`Ph#kcwRJ?wh_ z9Zd@UP5biQ7x)QK)PH$1!AKpg66ly-8W^Pez~(-dDIM0n@4lxSbl=lG-=ox&r@^+j zW{QU&Lz81@UTLz}U+n|*MCq$kl7vzTGStv<9J>{ohl!646k>T@NCj-HC0Xmbde{mu zzHeShr=k-1p2Oar+1A41OrgOj)uRqe5*)v~pg<(?M^nz8$bSI3Bo^y~H#KDIe$ras zSO+Lx;=iP#gFn&18U8|zX8K9&v;@e+UY-x_Am&aCeu>s^M3n_8ZC3bzhXf3Z5M&_EzP<7|WGs$4Tkr zt8y|ru(M%p1b+clGNpiwL>9rvaaSkctza-_AFW#Ox&95yeLWo?XRy&~H4Ip7q-T)G zfEG~t4e12{+H6s0hjaOM8}2a9ltkw8%*!u@AxaTmNsDhYc!70WqdHMZs!;B2{SfBp z4$((*y&#(F*WUyPY_Wi_iJ(=zofJs4a;wJW=ueXjo*D8cn&a zi0-zp#p=dYrzx}ck5pe=UsoU{+e|L$1H3zoao&|f1yt8o$3;+24*rvPZ!@@v@$QA# zX}|8`Ob|)hWF{=@jLMk+$ZtLqaQ3lJmg?qL&&2~a#p)v$H@lU`J^vSueGf+DTsh)m5WblGop$jE2I1?v|h{fkuXxNGf3X z=Q1cpDLTLnDZ9jvc^ugO>+8-4=9n|?mluKC{}Q6T;_<icU}7nMYZ^ZXvMTt&MK{%?@t;WC_+;8czW( zV}Bt5w5iu%MuFs(tIt=d7UVV;DqB9IuDQP`lp!;buSz#b>{UePnk3}-)N6`ljj0#> z!N79i%F-8$`(;@8A1Gl1VA0%`{09m-Zv#%L{=-6%x&DbldS=SmO?Nx_`vDx;wA<-O z?K9E|>uqaSMj@@R>1>)s5WE^64{K=-?3AEjKhRf<8&eP1W<<7~5q)mNa+2y!ld}73brt=S0 zI%Dg}=nY2!&C0LULX+_vT%EGV&_Uyrlka;AtvWC&Jm_-q(;FwsW7kT7AWhw2O@G4R zaj*5>#h#Z-_Ki|@)bc3|AR#@Wd&=S*(<+T{ixR`<7nyUjWlcUDoZFo*J@F_#ad_9cSPzZIpqkfr)S= zEh2UIC)!3*^vp^S`^r+@kjb+t#DDdE=U7xm(ux=yX!0vlFima`YR(?l_%RBOAY4eT zWx{x)_UpqYJW5Jc^>@DHd>gY#ild}$<$_30(i*zLNl^j*fI6eJtyFSucP>yw@Qr4J zJWQweo}evtmSb5rKmNSFdI=eV025c*C~HOk0j6OVsYSxMZ#%Q(j~;CNkYqnNB4atV zD^12pCeZwtWz8Ud1i6L2U+zkoguhSsT7Ko$Ls=K6C)AJy)&sDZ-bz<*WoNrlD?2Z# zm6lb#7J!CQl{NEXVZGu74y?H6`J92C`iTl(jiwobKgg$`5|3d;*IJhi9tax&QsJS>7r)Ud8zrQC7lnw?V=GUbqJ_qf2@-=h+ z03qKUisfO?P~7v}lkKVMlYhXxh9!e=K32T$jG}U27yGx~kK!KkZJBFmmoaN zK0D#J4%-?-?~j!IPRe~}nVXU8HJYD^cf+6|n3o#5WE@DH?t3oviQs=de_vFK=a;0D zHDt&ub29{iyV%0o+@cAk? z7HB)l0&NF{0bRiaNjX6eSZqEIi$$xdlTMyM+^R!@*Ac8=*6PG)RK|$;n)Bso>l=!) z#6Ha7Dpy`%i9+3xJkEbfQzoZQEzYAQKKG_p?*v}5u5It`nWBlsv0(lnTG6hjWnx?Z z$M+1LG*D`m!7=qP%kXRVCCxx&uh5)Jz9-bwyX=!VEQ0I>zXECI%XMtj2AgEnK8Acn ztL{CIHpY|&`%k)NpdI11G`nfVjJK?A^u22H!0|KQ^~4u}Gi-m3S)ELQwF8Sl;vv@U z818@685<+(jse#dKS4>TJ3r;RtS+w~11m^x!D64ex%R^`Z^qVKM8ec=aurKiDSz4S zG_ZZGurHL$&`JDiEi1q%N&=>cn49^=}bcX9FSoiq8?PBaTGruK(G$SW2otLh7ZzS>lW$C)pg{vbofoW zjPl&&Ylw$?l~v;s$FhsjkvMWwf{th9>{^wWiCq$@Qn-&Cg?iI?fTszABb|T>^3eJk zk6XP?y0zVrw{^TU_}Zo48L816#nLikJWZH=+uD4m0}g+0e=#4!-^_=4YY|<$n2o=j z*x?4?Sq+6%4~bQP&H&gpiM2X4?iVpH!wG15qS$|J%@gFVKpB-DOM6#_ZKAnNRxsAE z<(Rvwv@cm!MnbSzTXEx>8pJ9N8Azr(o$r#M5uP-n4%-B#JA#5{Hk|2Bx0m<^v?6&k z@hwzE@>YN1n3amOmx*N}D^gxnT4{$&9Me$Z*N0;6cAspup8_vG1z!Hw3cS3k@$|Ph z=l+Kq7lVBNNJ;lujN@Q*V;eeQK<4<{FmUsRLQC3EF{`RQyt$ctAt;T}G`6wJ)rS2d z1*xJR4KGGw20vcqfBSWEJ)PbB-+6I+_v!O*U;cmI>Gn3awqJg?^D0u2Xrp*n6+GMM zYP~#}R^~}M#}{Uz6mxq0a~@5!ZK<098$X|a& zO+#t2Ea3Ys@E)%{NH;7G_mZ)?bBu@k#PEZnITv)8*>o<`nmX!P&XwwGz<7QG9?s{` zdcOmQ_HR!t+8>BTBf9LHhlzto9uQ+W7(NZcF-I~V((POm4_B!ZbvrC#fb=s`^IsV8oSUk!|Su$BzMg+I&s=^$LyB~m}qpsX##(C*J@sA z3aY%8o{@r2MvT@<;Kn}D8&F*RcemM*;aHr|U9<(!mxW@4l*by(ryyH<1i+J2Fcg_a z-Ysl6N^=0w1Bk%579=LBkSK{t1UBT)2)B2SEQ_k+@ba?AZWD38*eTED*Sq{WM|Laa zRcU@IsX4`$$K_1k z3kRmtc<8OXI`CIs7wwC;LeIiYn<41E(wtP;H)+>#QKJ0Y$a`qTGis2@s@GA~N&VgL zs8$VfSS+e?l&P13lJw2Tk)%KA?>y=6{G;@D$`opxP#-n=EjDymzr}_rlc{^*KpN_|*yY$O zkg+A{yWX~xA4CPf-F(Opmq}^87k7e(r(Ap9hE>s&{5!V zB&t&ySamWV%llr3Ag0fWi8?IvAvmlOxG2iqcJ(D~WvG|#x*Gqe$)$`n>xj&u1%W%% zFn`b;m;|iT04R$V3>HpxWmnlBs8}Fo$`5hun_8)FZp<<@^O4f;L^}MLd{N%-bnsp^ zdI2)c=5O;)%=ynRq_nS>wXaukZ@be;w>nB~KM3O6F8_OW3I9dQ^d4V8?ClxSh4449 z(uLsD=;lZ~vU+ z8ycNBG0Rk%j?h&Zr%XYpz)((QDlKC9H36frvg6X|UYJrwRH7AZUqMNu*aOQ68|5%B zc24v*Lx^G@{uCrf?J|i6Y7V^(Sw@t4(cYX2t4UM4bS=p=vP^MFJDT0sk z@`$V_P{s2&tl>$cF3EIk0*?dKjO*8+1jce~aNLM0a*l8V8$E*=)1B^j3CC_CVJBIQ zZrXmLo1W;VC%WnXHL=%VG8+$ztGC&OU@}LHkfC&ea45qEEq^DQY`8cf<6R8qStC|6 zkYSOU$#0QxWkd?@C1i{Nx8!Oj^t4?Ga~$258z53wFFlF&-8oPQxy69E9AUH5(TK$K zhT$h!Z<(Zy%5YE9^z6D!g0(4oj=t^3KauXa9hdve<+XANPTgsh)!$U+1rfRDpm}z3 zHT$fi9P&i&%YVg_*OOKI9%J)C}&3a z#W%#2I5Q}X;)AtjCe_N&R`OzDeS)18TceQR$6i52MR6aBB{Cgu-=cjg)>^_8EXJo# zTiHYOpdjd}PZKe8P)`rJ2rKncR-}ktK2bzZ6wwn!^ncGu5iy#>i%zd1hnugu*z}Tw z&>lxzkrKHf;SkkAB?NiQSofYBN|At;>rRq28E-%u|1uGkO44<59|NvKgXT^K{K~>^ z2AHFlX2ha&W>iisBESmdq6$P`N-ws9^dhQgK=fXl+{4-|3hl(9_#|y+2c6!nh@@f& zINc^`z<=Dxz$WFPOeiMIa+mwVQrd#DG*^SBq{M@cLqQz5RvZ>93%KYFK;=_d#qhk9 zP@XJQrcZ@>F}Xd*3stTY8WWb%@;hap;02>(TH*8(=~yMO~{ zihs`G1dI*2Zst)ol}~1r#om(%AKS2a?w84Qb}Hz8v0s5~2)jMDyykyb=3L(g-Jt;Y zHa=OlJoZTA87*Zd6B1u?%%(l?2+n825eMTO1cc4DOY1uMFuxdsw*A)aRZ+T;Xxa7F z#t0{ov>kB2R%dko-4i$U`*BmW=RhrYc7Jy(JDX<()Ct{`_GHu(h_az44u%d51CWkz zm&bqZcNU9Aa{(>nY#Q?OzDN@Pm~d4z{wLP&iS>IN*6)wYrTNi5Se;?_nZZ)!ZTYZ{ z1B=IYbn!sN2rW!CoTrhm{xBKdx(X5|ErAzKat&-)T9uSYU*{%EIY0k>*jcU6(tk*e zLqS(5a448Y94*s^aWyy^J%UVJD$@j_*L<#OgIxq*{qjBo{lOyS352n^4nL@(W`G`U zfW`FujF2yjwXSEzZ#d4zm2@g9ak_a;V@sJI5Z&`GMNU~Jfq5CJ+5aV0QK zOK6M)C#{&^T#taGj34{qD_^+$--XLUv%fD&!=aWpWZvEMhCUs4ORZ2a}z&G=voc#1p9qzC;W_#wEirR)4t{zN&0) zk7j~V5;UvCunN8+Zj}ss9_qX$97xXK>l|ZXLA9kdh1S7}b+3|5c-DK<+~h1Jmxy63G;M_O!)aMmn6*)Um4Y|g=*1N3=d(BhPO-#$F&*IsvfL{+})E09^)*HVXKDSZq{ODJNSWu3r0$8oYk95XdHdny!T)a`WsBWkEa0=C~tqsZdy8VRsn zuvreqp2$UPDSttSUI7|P*HlkSA~Yr=0fk}!*Fvq0F$tWtjbn|67_wV>!A#lZz%ioD zF1dwj8K?3B77JAi<}g#`@FBLU7TRL4s-b;WOW(4MSf<)gZj3Y$tkhjlxLrdeXUUTv-q?IA^wLTFMn*9lA`6K2>^>KoNy~lzrfCk zJlOJ+GkrU|4o0^a&#of}u0d=I0i`#|n`|AoNTsUbG19qfeK=hoQBb6xW zf15kU#((?==l{;W?8CCMCuc!-U=r}NSzFxAlJ~Zsc#?`rANYzLsRtuz1Qd96SAJzlFrsj92&eKd&>7ZxE5UHUVuYLR7w;oQ+|p|)P&!58 zySU0oPmB3kGpW^K5{FzTOJ?)5L0v=k@JGbO!k(CT?+o6?uDrLgXnV6K=(}?`j_6j^ zG;nsl+p=p}EUcvj0@*FYTCrgFYB*Wv<_kU_vYn`&so~N2N6B3GIyWZLpWwB(Zhm{# ziGT2Umk+qN^$G^e{mGu`pq}n5t7&)UhL$L%kd?SnYT}cOMuZ_KZ)YDr!v2NT?N+)~}G8&Y$^wo(H zI03^9wkflRxykV6=KCQ7qHki@3#Cy)#(xBA(JgC=?U(7+P9h<`|0sn!7D&jTMt9E$ zf>LU_jTRyF^bKAO3y^`>74|x5_oac5t^l_>9ZGA~hv@T_nCmEDdZIc)6oKx{5ff&i zPDFZ70x&N6ik`EvNdeihz_xcq8f}9hN~(oKoo8EcbSS>$=1XOdBz~#W^pZRTaes4} zo-~(XZ7i3&1}_Taz!t7;uS!2cQzVl4Mu`Qer>$>K$M#knfKOcZa(0y-bpQjd_q6KZmq2^t7t<%b! zUsHK6%ib1gTl2?PaN` zLcmxGMvTKiAGKcaqMONG5m8`lN%O6*V*so|KZVJ3^fw1C;VNp=!MCtlYJXi~xc(|j zr|@eTW>Tm)fJx~F^xiVcajtU%^aRF(|91qDw4&{(&GB>X+6P*aK5Rc0{FMfyA#Zd$ zrCYJFt?2_zO_3J-b4LzM?=fp;J!nEj^5OV@NHT@^<>8njPYe3y2&1l0(2 zC=*VLz62aB@={K!E?0WxqJLM*o>3Joy`m+-5Wega?nt@(9#<$VPFmLdFBXAKW{8ov za#?6};fwccwx&-?Fh7efCE@H_gMAe8JknkqFYrZD?&JV!4Ghl0wVa6%i_K}awZ}V{ zUo(1rYCntHefD`{o)uzc&E;A%7ZmPBPREbK;_7Ux+dVHi^aKo2w|_Y>;`8=pK35!2 zG!r-2K;U9{h8W<63!VLny+zR#l}5+|x7P76FS2nn?dL%2G1Jx#adV1yW%Dz(bX}9s z$*@ExTvQ`=5#LfZ!wlQXuWJ8p`%<$NDiUpE-|gZX3>U?Si+)8!^1Gjjd3Gtbwsl-?>*GJhwitAE>d6o>-5U+EDUAR?~Tf_g?$NYcK!E3R72C)7j-0N4M~ zKvp^!L{<=hsND|V@L7B>_V4ZN1}1sl2oSvG(Pnvwe!T=^wUsFo61o^Kx7XDy+mePOpi`u(g$qSkdZiwCRN+)G^{n*0*g znZ<%6!cq%IsoucnJBO3e@y!r{)0V*3Y=hN>SB19GEuO= z+23?lh};Mgv%T%_;+iS&1rwIwu)7&Y$(5jkl*=SrtbZtSm(6C;5{`SOoLY4iurMcp z*sMyLNl-iR1TC*lII@H)#njzV+$B(lsd(SkE@=t7l(vxQkjt@r@T2fQ@vgg^x@l## zw%Yo>7sY9HsXhspKJG4=-4+|4z>;kQjBn+#w>M#3L8%v2v<}61^J#j2HJj&u7pQ+Y z5zsINQGcQ;Oe29-Km~L<5>U+xEE7Fum$z_6ttK-B041+!Iiu<)$ zx%a9T>=aU@14u~@c1;uRQ0TvqV1%3aaY;tGD$gTMG+J@jkPb7BzLd=Zs50uVNSoMu z8&tjpN-ob+=eFLK1oI~!3pYFE(m{1C&n_=5Uc%O#4!SQ}EZA-JviB-BZw9i4!1JG5 zpMT}$Y_R||LbznNxu`*jv0Cm#Sz7pZo}gl}G!mntt94Q&`hFv0mO7Fo?zXLtJ_u>n zY0}#1q*k|GSuEKt(XMv{-pktHf=lo4tnr|9%Eujuf$>MOX2u|3B`>|o!ABJ?XD~p+ zTux@6|C-vp*^7pEx3kCyg>6@b+A4aL_J0jiMdsgu>SC?!5GM^sC^h2jaltihrpQcO z=;6Q?H2p#3Oj_xr^Nh4mw8RPLjvii4XE!0kl%?lB0d32*%2uu2gjVcQh7--qAZ#s> z$F^_a#`d+qwv)tKaQ#$X2a4wW6%#Q9z3MYUuxziXqkhiG_=>3>v~ zm-JMfwMrTsf>zw9mS$EWWlGTLPVZ$>qlznFx>W`xzOHk+)9nUbPFC3HhqSxXP-57c zUu!IVK-MFuSNKR_fXjudHfMlB&Yu{ctMSg?SKku7EbK z395nH$ePfZN3$CsgIP2KO3?N8YV3jd6{>6LSvTwNKA@M}HNN-;ft=+s;@wOTe-G&AO*W+|cH*5?E=I@RJXoMTx|@SY z=#)s9nkMDWY1F9RaUFNZt$*GyZEvqx$2LcL@eWkK>*8g!u)*sQdNqEHL4D66Tw!V~ zI!`LJFX@yC+=Hz97;g0{aDGHP_7S~RvO)v}WE zfwk7Uaas%0iOZ+@A>mdk4XjG-rvM?SMEH$w);eUMdc;;@S35C{BFdnAl#G=4mlX0f*0Oc+b^p(>`Fwm% zk`NS3wDC^3oX@U__(wxB&|VR{W3Ocm5fzCdK16lD1crfjTERiQQkOtI2p$3XmtQ>y z7Jt3%olg3)(^1`3+WmI_{3e%iXg<_csoITx&WrpapX9e+BH2KZiMtKI15+T2+ncUJ zgCWobrFKw1@b5b5_D)X?T$KwC-0>5dtPr&{;Mho_5|AEuJL*gMBusBhtXEdBOiJPelwvaV63~$uDKOd8q!l@}{FpGPvnDo%|2jbpM!* zlW!^iU_@MMey*?~nBYkoB|5BEz)iTznW-mS*pOvjzA>gk zNuK4gGYsRuR9ZsB;A5pN+p8?^JWw_-+4z~VMpT~ebmW6&iHtwp5oFUhe1B-Ha2sAN z8c(aU1J9J*$9bmwSAWbyu|@;OVmSTaWOZ^dmVD`t+2qE5+W_Kb@**E!Z_t_AxI(bX zI%+&)g^F0!!NYsFA0v?yd9Y2|1GqQ|IpJc+POoJEPU;^+53oYPModVIG&Cm;$hW@x zp8a3_&BcOb75zSY%-%fTLx1Hrp0XQ!a0oi_GWcFO5OsQ(T76B${}ZRHsq?L03<3>u z!6jZ(xJs@>&6A?JlcSsw*~uZ#Lf3uIoC~Z%XxAv&k5i8l!S5Ns5{NXAPH!2l%CZ0x zn|`dXQzudGLoWtUd&>>JHJN?CqKP;vww0DCD&&!w>Ho1U^cw3 zf-e_L`YpE%6WuIk(|?M}_m7VckE!Y{r)nzOmSW0SJ|a{fNipuzS?EN%CngC5*9o7| zo_9z!KG6_5r$U0^b4C)Ca;*%QO5C`WXg)+~EV(xy)*ci|^%~wd{o}!#@mE?>vY-N}?UI72G~lvXP21cjfKr;VSK4Uj^03tZUS4MQJxWdr#v|ZBoYajF}l(yyy%xT~UU< zPCBC2AD9OZnWsIb$WR3)N4j8Xpx6BSsQ&(CK7YKqa@BZ)3cLm~8H5yfO@6CHQ`bPm ztP1e9JNZHoTKJ~zK1`W<1u|c03<_&~G5C{cb8!z=n0z#%ROo%q$!W*WrfZCV&L?A%Jyg;%dDx%}V!}pQoOxh=-*-f^LQPg2v zw>O=9)NyxAomVaNi z*gfHL2<+ksKK=5`qP%Rw;LSmD=GzBn?rlDqbN+tjoMoZtMLKj-B3WtCaKF@p&td4$ zFaQ|`C-I;AoyDTjTtEvsn}+; zqgx6#Jb)NWj~uv);9<6*9%9cQ1%L9aVT(9ijc$R2ij#46A@0l(V=*VQ@vyjRtBk1B z0+k{_=w!5+Xka|*F@=UFEHxZG8s1pR@ab}pih+c%o2XpKSYwsMSmTz?Ris#@O=>fv z)c4u#@Xc^^m7QesPdT4ewp!N$Xk!FW8wG)}S=$U2K^@2qT4ubKVJGM!ZGV-Nuo!@i zBaz8zs|iI$P>o}e>0p5mGBQQoI;57Q!%h5+1U>zn%s|o62}wq6mKdtN2dfP)Df~{ekpIPQG9Z*CCdk)d_wE@O&D|aV9^T3JagfcnT0bx7c606 z(&gwH4ezJvb#OWdC?&vW%74R)!Wt4$)8H0V&w#Wcq9jm5S!e8FnQq8Y zsj<|DOVjU=Ov*u;rZVud4h<&10}4O8@(pT@KO)h)l9i+mDF`Isx0v_qyvW>6JE|U# zD|G?x&F?n628$!m0@7&^m^sHfm8K&Ii04UCAsTjleGu9|^5JVKpMP^^xRTl76qrkE zEkiBEencuf=Vnyuw6k%-J0)SBSRVS&B%q62TA=myH4Eay?Dhv>3Sp+~3z7%LC>0pN z1i*ygWv|BXYvV}S5bQUSq}?OyoI*%65OP4Atz9kqIRV~v3=cmAlOnNH-(&OV+5A^j zw2$wZT%#W9x5tYMm%?gnxssdIn$RBOS)DN2XZZ z@U|x{Z*jp+tPGPR2mB5!U3K)vUfW8QFm@FzEin$a-E535qU1P65lf{|-`;otcCvB` zs8j_Bh9_zWScou~&QY+6khI|>UF3S?=5udlxOYa+TpHTyx~0c0l5t8@f&z(?>Fl*1 z1+&+-lM^r47=Nj?s15OssnTGg!h?OY6>(D)gx>pW-Cg+JlS(&AFH{D+va29nC5Bq< zs$@2Owch++VUfu(rFMx@H|>$L`J>*>t7!K^aI3%WVs$tj zO>5hj-GAMJ!$+^ymz_qcdPP1FM!vocAsp^z)uDT|wVNV^<{oe#$o&piH z*K(@f7UNHx!zlIhT&R-sBrbg@HV_l>D-v@_N#6iK@W`oK_p45ndaJS%Euk7vpR#I$ zuh^a+ue<({xAM;oA-LCKN4x3sg4H2qDJO$yvVRQ@f-8W~tmVbEHm%AV^Y1$0aO}e`^Dfq^yK5wMpNGUL?J-{eH z4}XzM0*N_ZCL-xR?2lM4ITAPBPRF8!WQaR3^6zz)q|FK!)-ev6Q=+bj2-yuOpB4-U z`7QYG?2F{6avuH4#O4zwTo+^#;&zItiNm+ZWIqYNKp-@g2sS~@FvxC3VkWEWPh>XCgQL|4yQlDrrCQ?QQUs)O)0)-o7A^M z1=l~>`1>!$`OjieVxo$<+GttVspPROla_35cVc}MJie*4YJFam3oO_D6>C>es-jWg zv3E&3Lm$oqc(7lk)slLXkXs~EFHpC4Ma4w+2_kX3230E?0=|3H;7K^wQZ@i|_%1z{~uss9OOs}qfsc{eCAP^vyK58Qa==IIpA z#Tc7Yn3qZeb+<^ReR^1Bg(Uv>(uF`Tv8~dLI|}ej!CbJT&-EqW8mYTY*q%(y&u}le zxSZV^d_yJo>hghe#?TDBg(VJ^XtC)g#JB` z;)rQ+VV4E*{Ry-Jr8~clbmSKa^7}s`HU07{;04gsX2O!Gt+0%3L6Op@u76ckGxI>2 zWlX+FBj=&MbZ|c&Q-;8}*wj^CV@%}I=DmzwOt2MaG^rM4?KK&v?efLs3>*em_RaE1R&2YaXhfODRT5{;Z=S`8$sr+~8 z%I)NyUo5O8P@k{`z!K7)5r0bOKdbON8U|iGqa~-Yul|1oQ{l@EqUd1kIe!@<*-Sexq-KzO z)b`+%*4*J`>xh*7%}B#_nn0(XVJg`9D!*r!T(nviVvTsm(osa)T2ZazeJv2MKz z06OqNfJ)Cy2w|3*y z?)pMMr%G{WxDxx2hJRrUrYzYdHUce!l1RG_jL>C?CohAQ%OKblU+U_M9bJiYWavC= z6PQOP9T%9-`IfQ!mj=~rqA+2Dpf>~oC5Yz8n*a_Jxsynlm>7k_C`qwuAoh{c1S>Dq zL^Iu1q)c}NDf@4>)}}~Pew(E#V&bVXre4Y;c^O;HuUJ3>3yxl)eqp4^*N=^=sPhWrkZh!FZ;N*00aJv6KjS8_Z z;DB#T^5S*_%zwHfW}YC<9{6x=iHm#+IPiKl&2i;uSKQ0=xAWo06YNSVQ`%#lgl;JS z;v;xymo>Ca63G1B2H%Pat#4FdUz8fKMpcq%bTpg-h;C7SV|S3HFkOL9oh}_dxY_r` zmDp<#Fc6fLaBsc+@Rl&y(Qqy>>urf2Hy=z{jgZhoTz^d2O^N!gUslqV18K*iYQi*W z)FG>taH8@){88Gqew9qwN|d8j<0Iirs%&?e)Kx?4P+E<&1gWj&1iD|^7Z_Hc3UJL3 zsQBb`|7h_2{$CD04Bj5U{!2f)$ixPOeHbNW;QJrmN?^e_RD-^G4fP%#^&`2}%0YiT z{CWRa0+-QG2opDRI5G47=X^SzeU_TJCOsKX$9?muu3>orldBFms#7>RQH;TWMG=N` zCBFSIgN>u2_<*1#p8%H|PzW1;=@%Nx_?q0dmEl?KzYWS?qx4a_m;NB~i`E&EN^ z?Uw>!o~V$`($sH!%^|RTZ>%s-^3VQEc}bDC$qg(cMT>8CswoP&ymC#uvm2U!J@s!4 z7>p1PZNFc))7IBn^>m%;+XZI-2f2ad{4?N$_KUh)y&yJY(b(vgU{7a%;6?iXZ|~T4 z+qjj#V(){YJzlwS+g!SWVC2LpY9L7u>ZEQYpGf@am23z2=MdqoOhfxSb0)Nbx%~1$Gf9?~VEJwU=8KvNr z=iz6$@4Zz#uC*OMNy8HTzqj_|1Al=tM`rbnL-a`0OEQIgo zb;+G;VW(=7x?M7Te^u>*kg8uF`NURNN(tN1{$W+W(H5)?M!kr|BPUD61*S_sOqkH$ z`BGRu?RrTEJnwS9f25()E|@e-FSAx%MEPZEGHSIbN*BF@d!|GbJ*_*sr)$47+9OX2{80hFf1&X|gu-H_ za=m>^rG#Dhe@eco3yN~~%q@!m1y$~pJe-Q0OB;Z;ouFewa%sfaiLHCmSI0k5wkCH` zqfU22*DB7N+mbz^{n#SBC+dD087bol5lpVmdp9h0MJ-PGK;f=D53yIPiiK)G6;w?G zRpzqPjze{*l%DII{Rt}73=0ba)A>bERM zM$%+U`KXF1npHX=U4j-Z0;zbQ;|aE^D9EL6g$!1(jAg%aR+_Ty)Rci}UMy7^-SxKV zWFK2GmLYp=R<>OogG*y{DGfNJq@S>mf$69tkmcU4boZq;5Y>KxU{A3S^zr>2`rgS{ zi<2?FfBhxB9Z`C-@D{TTSa%RBGgsBs)Ajn_(n}9N7voMq##Hk9sEcX7dOH(h7=#h}VwBg`%s7)kiNf-wE@fTa*bsXZcy+4 z$_I`e^>qtKP!#=vS>cC|Ag(tv#t$E{hA^~Me-5A2qI@3Akf_h|fZx^uRIcZ&vk(BG z5gl$P-Yd?-NV6Au+6GD$(k}&1nIXlIPe`$cKFwQvj3l3YnP*eU)gZ}tHzHCoI$yk7 zo5=?#mH>hxl4C3kTCs1)or;QHb3*a~A`0F01^DpZQuOH`AJ!lkRE0R^a#XI`Y^slS zL52{d$$zIk?yvxh-NGF=6`$!9CLaTI?VRm@j>+$YJ0d?qO*XT zn=E5RYF`?^3$?sqqgD}}0!#Q!rCmVht#`idx>~Z2S)LGZP1{qt@ZCLU^iOj}I9DLD zI(>DjRLf9|WfC3Jad&29-SBLSKRR4Qre1fspd)PZo%i<@XrcXO*apTR5Md?p!W%#o z;(zxq8-qb+F;~=!tkRLD67?uiYtZl@1|j4La#ECnZe}yUvIUVQ`#DZ`qnW1Jf{L1f z%(hx@4SN&R7U(;hjXs$@|6tDcvc+({Um>Ezo!~M*7+e zlcKbRr|G>4hI)}WIiw)nT%ND>(7m&*i+@qyF&NZX`EB*VELAfkG64egXLLN@Qh@LE zz689e7}|f12Blqn0)-?hh=04l*VS}t2L9uGZn%cdrN&3FQ=x!fMjCW}&w^E<+-&B1 z>SDXgRv+jcVvXK0Yr3W*lB53V*K&Y@3c-E`sIGwUy;a4$hW~ow?{>HxlFkjQDLgO6eiT(h23& zPcSk?`-q~QUl##Lcqg>=L7bu3JbKC7*ENt>YO~T4@FzQ~=77|*%CIOGzin23p)T)5 zwJ}ZnIRj^Uxah#ayj+;;bANtwGf@kU>ur>4=-)1y=3O<%7rFRx~ey-7?L*ttifHL?8O-GtxLx9DcTqWN>Eb@+WZJ@83mjwxLZ zkIlj*A5<>G2bJ6(@5UzxbE~xDD_Y%4FY&q{5U=E#Y=%s;s<1APK7X~DiBo8hiGr#0 z72A|1jx&Z-*%50S!&7?5np(IZnV3YIi65F@bUG?BQC@*8fJ7!+UO&*KP&yq^M!{Oc z3QDGl3x#Tlyv3Sj|K8wEGv&Nu+wuN>iWb=ijQJogl8enV?zqs>i_W!r97-K!X+Ez` z-_4DfsFQxJ3A@pqxi`2D;q42Zb`GnhX=^xL{RPhO%Fk09d1?V)96|`WDEER zQ51Op26hjfT4JHYakjTy4VN-n2qS+<_U`>+XsUgWMsj=bwb%~rwuF~>nV+F0jl>4v z1{Kf$!GSvK7gtwp@V> zIDvrjD&dnk%XDQ5Sy;*|y%nwJqbPq0TnKYj7$`MKx`r=Pw0;rUNzub(lW`hIcF z>Df8hB%T)h{p`il^Yd3vUp@zq9jSirWrrasvsxi0WAhl1^48KrV)TABmjzo0AOW41 zCR+$8f9CASHdyiKGPZa!6yE|^dQ##5ecWmL zgU0SK%fz&2>YoI!<%K*XZhM_%d+zt1=|iT#)X+J`Ugmbmkfz?WrQpbE>M+a87<2|| z5#XHY11Sb~K43;D({GjRFtNL9s+$nh!cn(tf2N@*y;St{@aqTvLfTu88d2B5K}0+O z>3G^H!+gfB~p3b#KSO*8; zEjEN0U$m7kqW048Hh0uI`lxzB>8C%we>?(xQ(tOf&Eb=nNUYmsMfMT5n586n#AkA-L5^-Q6zjx#RhsSl^PxHf#|0I+#m0DC} z#aNP@b&=rgYLS7*ta<4cI>aaF)8SB`Ocx&ZtN(uW)n$=gWboSS7~PIG-(RuFf7wo7 z4npTqIJ|LiZcglvBk-9xa9?8kS>6D20cZ#*ksv zkd@~Hy>5B1jwAN@0NE$O&FWte}52TV2Z&TN; zV#|gH+LNY-TP#)f)aN24uGGt8KP3o2$bxf{41vEfwAT^oKU{0tC_S0-oT{zd@aT`2 zBY36_pKZ&gM_OnE*$JsLkkn0UU)t~>H9i|l-2&h>x>VqmHKFW+5`GVpObnu=C-V?!lB6v>(|6w8+ z+{f-o;5`ZaJS33hfm_&Fx1fTelp=&=@z#rs1iHIlh$8t@cPon9jn3WMNe7i6H3Cxb zibeOEarf~WZG>#`B-ZaMe>XbvvDG>Y^|>0A0=qQI*tuP*r>w#>eFveN-SfR2Z83c( z6bI?0`C@`(*r~Q*(Of~oiAD{Z2H2>bK@XL-#e5(uX&n@J=L?hoyE-4hcMQQ0vmK-I zqZ6S@aynAkJf2Vb9EzIkQ{=O{N z4cZ4GF$rffNl*e((m}EM5Kz&J#C&K1SLN0!@A3SHoQ$G3n+jhfru)!+c ZK7R7;uld0I51O2R2?JBapg%b+G60ksThIUi delta 134565 zcmV(>K-j`fCPRWBvUjc8(j@Lt{ zvLVnK@QzugntE@+jpk9!Kt0vS)U|gr#Iue;1iQW!Hlm_X!iE{P)obLFge( zYv@B{h;|b3@BO_f!^{gRRc&=KXdelQf4NFO>tGF|pn4g5Md#j9u+q6EZ``7DZCZs3 z@}@l!8IX86>?Ih*bs`D_>(~YCLDwfzVP6eKoMk3hhJ?T{4Rh@x4tKVX4|dLu_Wrg* z+N*Wlq?wge*Awcb&ZHD7xihEjFItB724Hcqw}XG|9GvYR?7Z6jIk4 z8QeK|v-Ni8?a|r(*1^`BLutP=O2=0u1P1}%of;QX3+)~_Df;f6DYJ~lnJLkM76d-0ky)Y zg4PsPIx>mZ3*c~p*0)DW0%RvQG&BHxY2N&h&S=6S6pyGbcZ8g10p7pe77~g2ovirN;ojRA%S|H% z9xQL6zmFJDRdBV>zo`_1j|-g0~8x zGoz@A`Q-{1LWK}E3f`uZo8kC2z5y|_u$R^24mEjlYs5$mz)0!+(GbNyM|`i$&+{O5AB>B zv&GV3own3w`0L@58iig;o*;i}E%(yya7+c_8v6Mf_p?FTeDZy;gfJ}y->tO2m)=*& z(bHT6fNv853mV2o0tV5W?z-V!Tnwn-m@qLwb&7easff-kiAMntYjQozs2$gS8w5*p zHb!b$+Ze}*_OKXZ{J@b>GF|u=7graOnWgx>V;j{o3WM00JqV+rG2kpZtZP?T3k$M{ zLt)Yghl32I#TwP5xQs=~n z8n0f#E=o`a&>6GjyaX|l2N1T*%QbF-IS@sGd_p!OD{yCJh&n{CuM2 zg6Ko{#!^~({;vnWLJ#e+9qwX+CJ}fGpjV5R0W<~^e`$>kFXSiPLO)>-vt9W^?AzvR zHwvWnTl*S=egHh=Vuv3%;ZBr{q!8VG{;-sxnpjp|$9$!8`%MCiv(9Lv3&#lQl;Keu>2BJ6b<|1|b6JotJ4f20?#w!eWRi$H?`_ zEbK4xV~o}%m(4+m17c7ah0fJCiTrhTQ|AEMlS#J6#GVE<=xyaMC{CM#M8rjIux+mJ zI`08*8X4W7fskxTSgO;Eh-fs}ERtDKLdb=xA#f{^O+jIf^g8%=s2@EH*Fm!|MA&Lq zVr}Ubb2k=ZEv^-u9Y23gCiH}r<`Y315X}TdX_^>^j?@i54L}vKpp%+l%u=r0X!m;L zq6kge(g7UF!AK0obo&$DrD6a$`fF0{UtH7!uX8X|LTW%GG66%Hn|2+A*zoQt?-9a+ zTk@(8K&~SbO36&ATLuM&)G!uvO&^vfl^n-#K+Le&lUavjR>*(%t^K{jqrgB1XT#F5 zNhLj-nTLp8#)Nzju>vR5EX&UMe&ieC;-aZeT3ReDiU;3^cT6-UV)eOb{e5|7C+|;D zNK%U9Udp0pt%Afb9g#JNiinS%>K7s_SR$i2XeA})_=pTsn%+rQcYI`6;O=yV4Wj+)3P~+V4c6#$ zN&XbkgHT`zfavt4;I}c{W1E<>l&IEU0w0E|3?z|IEjKB?Rq`ZQDhzfhc+w=QDN9@r z(!ARqrFD;BS596SLN)3?a{51__*>?^bO;yU$#On{9eaO;Rm^H~4a8t%WA-?gmpM}| zzoODux&#GqQ@_qSV{7@<(hmphifWs*4-an#-J%1bN4`(#*Vuo+SH@RzytyZ`cT2!b zwtJio<8FO`g?~g3B4)LEPT(i~mie)SUi4&Fv6_jZ1d#<`JU@EsI5oVRjBoEWo1h~Z zgoPAYg$;j3MfTP08RAsJc?31e!4f5IgRzM#R{rAlsC|Jz)&ndPgy@BYE1pf-7rKs! z_`ubGrKTcqG1FxmBzj|EiWc$(Mr*JrZ~|Z~%p|~&5_KEkFo+NaL7@0Pp(}?Go9x%@ zN?gUff*4h%Y@lpnBA$r)s~%2SK8@P1?9qW`aD78oAFJu*q?=NzA~9qoCqdtNaB-sRmkt{XzwaY9=De#Az72o^6-pI0hvS z=P<<^@FWv!ux6Zl+Q=x z!O=ie&Qj7VQ#x5TaGsM>cJN&@gw^Fi|n`hw<=w z^bqHz!AfBJE`9EVWGJ)=#71`8nz&KHx2G z)qa5MXII(eA#VfAYxdg!Og!FEAM(m(O~oc*%KvVfh>vef_y|8q$z5S9d9e|6@jxMs zLZ2@~F-@%J-DGOw&OJ_}lA!!%!%M+mg9<1_?-;&XARR-Je(d(Idub9Zkh6au&cdxK ze*S%a_+*WS4$_X2>_DUkQLz9=Ru(X{M7{`Vg71lIVJs3OQ3&+|WHWH_rzbG)sAVa> z{{M@a&bh~89<%H2fG)FMFC7T9T6aei0E(n4lVPk_nDtQ5q3>5=Y-*P=Y2utEw4@bJPNSpYq}?~OC?R41V+JrHNMeFyT79n2uKb-& zm+DhtPQ&T)Q=!xo_NwIuyYy5jJyonz0gjc?8b1W!r15;!)dWRBpvM`lQcQ+uw5}`g z(wCGM%S8~Xcl3QW^lo4DQ^ zQH!xo)-B+i%J?*lLxrm%-zfb!m9BOvFS2U0B4w*xiY?Y^um5>~i-XNLy?sYE(9kb& zRyRNWu=uf^vjB;(>@!e)54lGzVM+JnU~P3Z_}Yp8?@9Onyj9q@ia#mJAA2SE;b8B0 z|I6PA94=KT0^^4mu3LYO`PD~UBIH}(m*rd8nDNeLEZDBnU@Dkoaq^?76$wgQVuhBc zM``zRkagRAF5#mSWpvA;6RQ<;;*a7yem993?8eW9D#bOBTDcF9m|3zi7K$P2Ov7dw z^(kz~G67%nUyWVnbcqK*uBG}47(S*0qQ<{t`$uW}YM!>E-{F4*V0+57N0b?T1}G@gf3c zJI`;1G*$I=A#QGxQQmodH_!Z=r?J$|eF{EX;YL!P=%D5y`|L z)MH;2m|S8f4*!-(=`Bp>5y)<1UpWVdieq6jiqAh5V1S)*i0DnUJQf^HFN#M>+cJb9eKp$(UxKn5Zm zD4fc@_!i$$3@=aZE4F9{*mrw*WXJF@Y{#vLx0l{P25%3#_K8YHc`;(V#EZp66;792 zK?ZbxSKC=nXEfJrVst%wrp+0a(`(MHoz`Fxi?stKVWC}wk@#o=fQj`?=ymnFeA1#Y zJA#WLq(RP#PS6zm0g0MV^n5OWh1$rObHuU-uY-^YT0DzFQrQP9Otnl$f$Wkjyx z5Ixo{!$_;ToG8|btDVfSAE;IsKD?$Mv1BHfPeKObe{YIyALZ905$2x22voHN846sN zU@x-3v>TPYKpkQ}dSgbXS=jN_bv~)38JvpaS|=r40KBwmC?j(97%Ua~44V>EeQ+nj z(G-hO>n4Euw=N#tb@epH?14U36OazBuK*o8KzSC{qMI=X^o|!+(LKp|c5yB8R;NJe z%&zJJe+r6dExOt}Z+TO_^Q~Y2Tq0o4&dix*zYKN&Ez7jr4Oaz(*a^2)YTIg;3nL8t zz1{9!N=l|#pfjV`oyH%xLUdNu+>GF8h2pz!50AFqZtvXR*Guy_rjL{B=~|Yb>TT|p zsh8O47F#z)*}yF)oU^fCB6c06f(=c}MrTBie`x1_OAW_Q+yV)}-lyVmom*L0u=*h1 zO1g9?qe_%yvnwWi7Yjn{v@TnpMitOuu5!ZOI>0qAo@9`sB!5y?M1Z_yTF%8HS%&Eh`_&d ze+@R*OCcbw94|Rb#(ahk#-95I@2&=-;{#SBR{%z0pH)L8$FBkNt_VdAAf80H8kl2I zNFdacUIGD?=SF07)Q&q7;STU^ z-VNTV+7|e1jEXxi&RXSU+3}Yv*W(JZf8f4thle%VZi^_3QJ(@xZ0iv2S3`;wjd$@b zw#^YH3Q=&1>*ioswOkG1tL45OR@_qA1elrg;W({bliU7mB9w1{7fdQ~2Pr@zhsrTf zCm8A4o!JCh;yqbFsIaN>Y{DM4jOnSng#>*K3l7R?`;y8#pK*3XBexk%2rb`We__*J zwz^tQEngkC2RU-#LK!5zAxE3$`Wj_$IR(=xN(yLkh&}0|le}|^f34U;qIY1{>C|u>>`wXSyZ+NekQF26Lz*`iY`N-uTuf8m`BVwfds z&Fni@!LFGtEeV?x5+E2lc9{-<2up`SfVfB~dbD_RBlsb6`&^cg14I1~FemVJns5&N zR;mr0KmAj@@TYj;s}(O$+(t{PKq)9opdaNT1j>eDI&!e#g-ay{W{L8~jKIO9Xrf|M z7k%mJu+?taYF~P)7*sn@f6lf{pml0sl__smmw^iHoBXi%UN;Ee%X#m8pt8!_;e5wk z-8P}0(m9&x|IS}Nn5)(KJmLB48XX*sQx0Y01ybe)o*J_OkR_EPH%zGZ0cV#8N@~vX z0B4tmMrbsWfwU0R2^8;^E$_)H7DjIF$xtZF!Qfzu z16OE0(pdl01C7-$c>G$F8 zKX-P%1!>sq>fq$;^gfKbM*OtIh?mrrKJb0he=&b_w1U?Q%FQ2QO=j6NqwAHg zIl$WI4yvZ2ojoL^nl)q3W<_Ru?rr9|6XWXnX;Z;+f3KskiSU*Co`5Nb#ug32Fe+dH zTn|+{OG%yLwx|Rva7zpR#2CJOsn7@u%_u0uA)beDKgB4*{T(~P6vmahQ>E_jWxT0C z@c*^*e>UK5uZGdLY8)`47F*#XBBPJhsUVN_l3f=Xdt_$dKr>F6hP^D9op(p}hBp)s zPF-tkdoYz;u<tOrG-GA(yz1ll?vvq_p2LH}R0dnxx zL^raWm5b~0iA_L4*DVnoygiw;yO+4Z$eWKyy{39p&TbMQIaYb~u&E0|Z?Dt#c|B~^ zf31FW3AZn!E;LKp)&Oa2S107QFMsM-u^Zr*pQWG?Ea^F>a4Pfk>(mp^cb)6354?Da z($lo}0}OuLx8NhY74&^b|JofDtOGDUr-icj_X`?{TE!6L6r~)h#b@5#foO(Dq{OhJ z;g6~{8x^9vksJh!AciJMF&(dK3$FJef3P+_6<0%Gzz}hBk+d3iZsB_0!Fy zU~lp6219SSVkUlY5td)|J7!k^{M}w0NTwyqQy^@UEt#isI34mgV54+tf8QTYZu#Yg zCpX_-Cy{srk-$yxe+cpr&D#7NvzZ0pLY2^YlDXqKjir7>{cb9zIl6l>?A=nF z)G19piEZObp>CZ73M?XxXG>9`ct34_z$^G9-{Y+lFRTIF0_FxxruPlNh!`HpvK$v# zMcj^h;a%F2B83zqV5^AOJtT~hkcj%_#KgyXB_2Ln8o7R&xDh#{f0PjTQv`Ay+9IWb zy;5rAz=J-z?7QLvD3Jvd(4SA;{&a2n)LT>3rKyF(tZM{{me>6LaB#7MN_T0pu-43P zGE~vhD}pA?c^YI_fG{hg!9@@o-|t4LozS@&iEj$K3%fHLKmzrz+qB^bvOzx^q(QR- zgzA0MYW_l2HanbMf4zMTGqrLx+7Q5e$a*P$KlQ+3j(^o`qz9`5tb(ZFXh)bY9(bX7 zlULuvDt0jY##~Q@evvecIm!_uB?lF-b!RtRo*mE{6xNU z%HAH44vP(FALFPvhpF2|A4?l-0`N)TN*0(K{G?N`tceFm55E9^D)!PtsJw?B$L8^= z3*aWeQsZGi4hF+z+7-arKYH6X)bl=y+4YNr9>>!IG!mQqWS%2VAbE37&SPC-qKpf(xShU4ra z8?^hi0cmMFB$6-DZ;+a1_`sRlm~E=h$%ua!=|{SV9He;Ztp|<2woVp*`>l0)C0aSl zMKg8C3Kv`O7ZC45yPufNsX3z-qu?)VTA2{aqGgOxdT|lb47l^_5!qF-6waftcLM}+ ze|XbSDmN{WfK&r58Sn39LWa&>@GT%-SP*IN$VbfLqEp9K!z?P+!aY(IV9iTmFX5`@ znwfk{<+kX;BMLREDkWSY;(rXda5i3NopF17Yrim%D$#Jjs?Xb`>2Y{F=!SPT$`Eov3$##uk>pe%D?E&8u{AUoVS_{Yw{ z+5W-KtKDDDV7C(th34k2EQAJtHA#ueRueN#I3EI-Rd;@%BC2PsZRL{swQfmph@PLW zfploxKugD{E2PjiFMeGLqdHm+b`Fouw)S_)@ACPW7|Py?piemvTWr257V&K`*|GX(9tr}tYBKMU7>U--sQOUoN|0Ia!19_Wf*2b(l=4LiBG(_;c-n>Vi^@bd+K=G zQWi?_^9|@(T5!ed!qoNIpZ=!ie=!Ip9`7MmQntxoeNHQ>D$_t|zlb&@^*PM~4GS_^ z*J@~nEu>)_h9W-F4jK?IJ&J-7$snMDaVc|zAG;RJ;|^-7jMOLI8^y~Le4tr(_isDLp#O=g+059AaQ;;MDnrj9nYF>B`a)IYv@!0VaE)uq2{zNdep=nBTHy zuO()Sz^jL`w7?t4-`)N&e^2XN8CN4K(yZimh&oPYrOy>$j(@$=4$!@cdlq3KCe z;VRuZJX?`iijz~|D%u})f#Kj~3iqe@S^6{@yQx0_v47Pj8}_xvf3t`xP7qP!H5j1W z9_W*P=L4L?h`#9{g%be>Xt@}Y(FWA!T6Jd!l}@_jtdsuq^N|craFe4RWo1u-i3%cV zj+m!EOX4Cfg(iwsv_xxa0G(pC2l6!+^8WCGmR;1S1edHH0_%#4hi|a+P$0 z4kb3aJ2JCZsfQxFE!+cW9a?*}p2*OGn6nnFP{5N^4YGp(j zYe!e~;$0Bk=T$DE_4TeygfHsxMl`n^?ugpNstqD_WbWI$z8VFvQ^le|68$;}{vU!7 zoQkc>&7aeOq|Tr-DjEk%b`|bY^lUT~WW6g|B`e)}6Pw791O6CYL`}yTXFQNIO*OA!UuwYqZsfsZGzy9(s&I*+UF87Ve^8$%MXJ;-V`e z6m3+}5jW?~f1Z-a0XhuDIuQnL0m ziMa>B*hd()_~Mq}MKg!u6u^H`B|Mr)!)1@?M$iZsp%tf?9@~wO*P@}KI8MD0%FEOMtqA37r@%r@ z#ih2WhYexQU_4R3LgVEk?))F$b~VE`Lr@)v>?OnbG? z^@QeU2>+5BxEf4hRHJ6lTh`iYEl19=hc9e2N>obAu2QIA-hHar3gGk%72aZgSb4z@M}>x*o$Rme$UPfMS zcBfD8v^6*_Yn?P5)XuN_=UKm>_8O*2Ak6jZn(Y3`)}SVzSCH!qE{527n-r*O`8D)L ze^MBJAgFOJvWDyjs{_nE21>eYf4~g!U<)u{1GV$<@Cpizkbi#SK(MYRz<~g+C|5u@ zCp-t%Kzr9IKC`rI#2a>peKs<72eWJI}*H(S5f5EF?dt7YfdsOS%8 z8ZH`b*c0;MsjzfU)#zX=f1C~k zc{mm`K{!~WZHA4Znh#(TTwvXPpMS=+rqw}^V4~V`0eCra6eOMmI!E^~re@T#L=gNf zD+#n13Um2fwH=eD3d+Go{7*mP{ z-<0j(Mq!LT-@#Qb`a zb^58O6XEKb<=VAD3Z27-zJ$|R<8Kd+?W_;^9YhVHfCNH;gnav1_qjC%*vN1Qd+~zE zE|dl^f$Gp}s$3emZPX6Mn(&^*VyerWC#nr# z;4HA6HS69h=_CVT>k zV^Fp~=4YD1GH%X6!qf?b0=_Aiby@}^eg9m;%<8VNybgf~#VHQwd-_w_l#i#Ls`e}UgVtbo1%b2s+@4T(OeySV^cwKfZuAFeaf%G7Yc z*KRLDChKsJjYjFD01>TZ5hhAb?7#_5E{SL0gf|6YlxrQoL+jeV3v9y zG;@8^XXf)fvPwo3bijbTG@C7XBP#gsbHu4oaRhw9bjXJ_U7cVVv%@YC|SgU zNBOkRMljYio}~R#6wi2)3EJYsM+<9(KpsWd@U=}1+24q^!Lc4>i%)0HPAUwW_g9q% z{mMq)|Ymw zIM}jrCWt&6A!ZSY`3^)w_j`T|XVXFB#%Z$v$k`d|R_7Ejq<4Q`e<*0}{&Ll~Uu+D|27O|yfW3V$1=~3BiYnl|f0L3w{-OEB<$n*W`2IUe z?;BD@n?VEea!9yBBWh zb3I8>b3^RcAPnOG*JV!FOltQy;GnH<}jQQvq*zl)27P5_8qbO|68mS>K&-Ot*1 zhniWC-Y&zCfBcx&NJYZn3m&`dBl7NeP{5wD@ydzTjPvXfavx$j3H*S?afrzUz!w+k zlOoyC-T~4ntyYXiQH+)%T`kXBNJ>bp$Ok@N?k2uE#GbY?AS=;1-8*|}?0`lrtf1hQcY>v_#qZVIRO7nn@gi&ek ziR$PyQ9XG86~^CG`OrBl^Kmy4k`uDP%(H)sV2F?-*s&lW)fIB3k-s7ZA&Q%(I^wjY zV1u#>MaTvGGm_XplaY{MU&ePBEmW)_+Md9SX{!_LQgE~8NS4elS~%M+BSDXI zcYE(GyE5k`iH%Zmz{6XD4%wkayO(vTd+kYTH7bD9v~7?)2t^H@wh$|*Ib{ol>Cvou zA|hh>()bxK?CjwcaquC{P0NI|IB{4m{ymq#f3xGfjIVod8jI_o=c2vpWyx0yPKQ=e zfq`2AGNKwZEtDGa)`>Iu%bVAzP9r(aDzk|L<$U53hJKQ zq>xRRIa7CDL!H? zpUktC(EQ2&lj1PA_>QmB;Pi>HsvC)fK&|RV*{W_}y$y3!H`JV{cWt?Gtne^occs$Ll<>mzQFq4#EAD65X>T1hi1NKp|{&PBm( z`NWQNE(Pf8^A!$T73C0?AoN{;&MC*s^%FS-tT)vE>Ah6A6k!impYm3Kd_MCUC)~2q z%C}RoTm`}RT+@xyK(GqG{lXp22$0;Oh9HrD2}75p(G$yezG3< z0Js^$=5*(8z-~jS!S&d9ucnj@w)z1I9r!xSC&N)4IS*ye?3p^$7Mp#USc@u7JiIfz z3TK7;{9Gz$wk}fq{Mk2=)FX0~6%cOEW=@r-a4@^Q`6kU% zv9f7an4cF`e=Z%&(c)vE6;7F=v)$g6v#gvFsJ!y#IUfp&+V0Tkg#{XdLc#}{EZI;= zP4$bdDPIERG@jrlV|BvGEv;OcU}j@7#2Ua!5L@`u%|v%*1SOYgW+Za6Y-AMC$F5nz zcJ$)a{xyq-MvDzR1X*cGguesEh~uMFgu(SV?Bd$#e*g*p_Hg)~3`AGUJjj@hE2k}; z6d1;oc>m@8@M3s9v0Y;nZ9RYb`RMHB*3lL@o|!7YDCS@dHIR2VlO18Xl2|MdZVsgq z1B0aInx;Bv;lUfN^@BINZ+8!O(MJHBY_hHn03_WY262Ut65YnsS{K9j3ak)1UsEd; z8NShke{aMf3ikI7k3@Jh`Xk`s4>3w~YjR=*jX{5BK}q85&8^~&PAvpO26~Lvwy%d| zR%57mVJnbvV8yi?3~!P*_=b1h9|9|co2CJ2^>Ae^-3Xgi3x9`ZtZu8Ajm&JuQWrF_ zjiJ4zLOG7IfcaBr1ZI3`8uM#HNUt**R^=5_f1K2f$bg;`#tMtB!w6PVd^OEYY1bp5 zksHjwY=zLJzV2r2qsa8Vg!jW=uKMyZvQ83)^8JNcR@>VDp5Yg8c##dF5fG-E;kYLs zQrYoG>2vCw*LQQH0t~1I2UqjU-NE^=en%b0cK5OT5lzVZy5TV}m_{~OmBTf=GW1A9 ze@f9`(aaH-32@C3ll45~+JmsCsV?!1Lke&S?;~&tZa>O(BI@3gR<`~`#G*n~)WL2c zbm#w0yI;}%RG2~wmqUKye0YQ*<_~s&F76)f9sEi}y3kHp6Rf^aXd;ZP3hwUE)Yt7O zoU$r&nW>EKXPYx2a#l?!u2KjBMDqtT3-zU&_ONx1Agsd4IcxUc_>Slur7=LRACJQwQM#YjIp?kms&RDP|`JOs_+f6>gv zBlgpk>oa{MBqN{}7oV=8t7DxagS@jqXx^a*f;pZKt|)CjWUzCNbvm~I z_<_y?-jE+(ieAaltT5Q#_*VR8j#hl2Mu_;?8TPmcn)O|Z2O=F^C6CyT1$j#WQp29F z+~^=hZXdmCS?_0`U6(IiV9kEtKyYTOc2_@_l4|MWQpae>$kYi(@5z?GO8zqE=W-@f4@lhTRQn~ z630dDRQP;|dXI95|6hJXw1DF*?g%+4Dx`mlIT3c`~s_1F{X=(Ge>6&|8%fFA|QRw(Jf8e?{n_lOR!vFbd5|Cyp~J1KtQ=rBShyacHb=HdM)c3fW-M ze3ynIq=WWo?dGO+L#*b$!dddSIbPtTU^3oZ+wk~osFX*?o9k8)N0<-U$}Kw!E#u9n z8_`_SWrUme9L0ISiFhQ>*BX_f4nYga`@u<91g&_ z-W%z>=Eo~Xm%;Fbz+Rx>_#B}Zk~Eht2LW?NIlo7fUMCsfQDVXPu9xQY91bLv3ZMy| zPHX6wuf&^*7UGeSW4?!>xF(>Nv>+Q89g&Kzsv%#~pmZ1s5vethcZyHz|0{fp z(90#q0n`3JR2p()`m6k@LzjUH#5ysx)omJyfnBD&RilvkO5)pg`XQp^^}%?0upb!$ z;W7+kb@kCJbD-=vR(@Mq`pXIiKjJzCj#PLe5o`RT6u*n)e+m0lOweC9J1a-u&q`wI zJXEYj0eZ6|A96t=U-4Ok5XD9Wz=e#dW3Gz2`|twDjpsYH=;S*R5fIJW4R-)@#qm%`tsD;N5~=Nv}< z20LSK2-q^wP9vz(b(&~!QR=sMGf+elYqid#w{t!5bzS8I%AAI=?#UD6OBnZ;Ok$QJ zvxCu~6I%spAfjmtU|$S@&1(<@z=2Rmz69m0R#*2 zb#k2cO5rJ-fo7h06iVM8dVE$ha43eMsW_$6o4(}L)3WJ91!-E0!hWz6Yt)t$B#rUm zJeRiGlkx4{x#6DaJO>iXcP|Q#hPLnLa2}mwfa-P+Fd=PUEiM+ela((b*-Bg*pz>YvA zWl;__u}e4C;v!G}0+T1+O;X*-NHX@WncNfzrZ7NkwflS9DuPp63Rpt z5lVI6fYld+{DBo~vf|`{6@Qz^nxhQ%@q_B#%c@s!I%e}#Rc-+bYVFcLpq|Q_un9xO zXm@_6{`Ez&dW+9qM?jp8Wv}TSaH0=Me^$D{ zK`Z&1@5WF!z{jA*d>|HSl!r7$6zLGwL^lEa{_zO)VA~ij3Kj?@s`}yst76PctA^_%50n@C~e;MbP43wdp zAQDQ4fxnHjnZ89azyRd%gTy4@YFLt55={&`STKwOW{d19x_P^f67Lk{8!*G=;*FLT zZivYhwUqXcnpSk%ZfJMa=Y6h}^>Kpjh+dJUO2k3F!~+CBf2or!9}4dflvo^IoEaNhGse|Z4~Lin`+%#~DwZS~6SctP zXeEn~rMFtL4prOfYBaIg331$8=elGW@V8`44W3kpFBB6m#Tgt|jEd|6@wh;5)|$`H zQ%GbG)>cKax7Sx4x74ftust!`5@;_AiL0DZ04GIdd#1B)RuOe*fAhuWI3<^d!Va9Z zMA*n!li?RbOqf2i$^bDaQYefXkRtB7in?ZBXsNFB*_mGPc?N&jD~#&dwmHR;3NOld zDJ&GpHWAejc$cf2DEbcc5DP|hN5)^8h?6IMEGXutK(}E4qI&XPH^Ad~e=0lKTOr0!z zV_+ps({^xTYlDq#+qP}nc5-6d$;QdX+Ss<84L7#!e7T?Z`#C)`HQm)$p=+v&@37`i z!vf=YQr1_;7d0*4UJ+do%U^5Mt`~FC0TEOjfid|?sH~jRPlyXz`3~T;7}Ax3h5YYJ zBb-bH=U1UrH$nwuv0cOUwwx>Ynp!aZ_-FgKYXT=^h&dq9rw&{p$@^1_6!OK@vhlnU$hD+)u4o_-Q)-S6jAukHF`X7KNKtSHA~^qRBRbse7H2lURe_kR`CnFL!BH z2qIUT&q2VRk2N&AEEceijhNAST}k!6bl2y_pM4851+t3TKH~pEZ_Py*RN#%S{yZ`7 z)WJaEG%Q{95lKzo&3 zqNUBRL_Mk6b9sees=C77#|6Rzgyw~2(uO*VSR{#~Nt6V#NuXivWYdLbVbM-Ga%qtrABPGE?D z0_vZ|;rGs7lX`7NO`*-4F=&%Qda3&rLj2njc ztJA@g&>R)FBi)AlB4=(!c(P9X~arHb!88#1eKhC8gkhO>; ze9g+OJNYpu5Ad)*wW79P-q7)NCl6!8jzUNOxs!2Rvj`~pENfj`0Tow%;A z-d`T=q4c>EoXng$Pa$4A+ViG1B5!|MBH|Q!NZo66(G~!U^-3{7`b6bTrPS$7V+i@( zDaC!F5nhH`_l2z6)S4uLwk7|HK~xO{l%qQMJ>T&Z);#T0DxRWUrB9O)Z~4BmdLt_! zvE@qKHLNPW|FVSqiR)nBp1#TK&+6a(N~fo}^3_@QIftpPO930oc;~*80!yu(vB$o% zm=KE>yKwJDUO!P=-EADW3aK4uc<7t1V&KyKmRD-#_tC&IRJ3*OpYv$$L1O>}t9;G* z1JX_H7=NZ`20oePmPnKK%P*N``DMRS_m33IG%0N<^-a?a;t$6!&?gQLpP4ECUazE@ zMyFyL&O?R?p2>IuHF!}fVn2TJLR7^@l4om_Rj^AM2~&m~UwHDp{2pT2=H>iX*p<)Q zjPrx==pp_@qQ@JGn}#EE6ov^PvcNyh=!zK+%3InjrynAjM}xEW?_;z62=Et=W=hHd7eD^M4yd=Zf#7k;nppHm&wf&1A04i zay`dVJebz6b91<91hG@Qc{_D(Mi16(t)ct_Tsrw#Hw~qgN*H9pU^cG2{2zCo??v$= z7g7d>!AHpRnL>ZwW55+LQ`9^lH*e@*z9M!^Mx22%4iiXy*la!UY$ov>xitpe39~J4Y4I-+?M9F8% z(B>`g8Dnl8nI_I~d};Fb1^WZ!Es9;mzcwqw*qnW8xQcy zQlE(wDQZP}(N^#-MUiW_FX|5K5AF8x+D+Sms8?CDL9QelJXDJ>~2KWa-&k7iC4VNl$}AP3K8$Mcs# zrxeCa7Fx$Coj2Qx=u zgx3YFTRFZ!Et$bKl)}@dPFy$sbr&y;Y|^KN6_wUhf49FnfEyZ#oy@}3aANlg9NnGO zXY1L{R`%3Z{a8B#upOW2rN#J*V6Kd;z_BTK{Gnm^sP|~NJgB8eD{SA`4e89m?LJvJ z)!%u;2U5hB)?n8&>pjfi2huh7 z9pioGMbIG<*=0F&3isJ5wU7ky&aoG${7GEGfQqs(GY+~e_Th71A0gG+9&&r~ zvtBtORm;yQeIK>PR31B)#wuD@tcfrOmztf@WZy{3L+Or>I#Qa(ISDzoa7CLL<3JCP zM{|xDr16qrp{uv-(g724A}GA~1zzuqk|qYJ-v62&Y8RKjZ_iOcbb!(mYzvIYFOmU1 zeq;hE>1dC;eGvl(G=xzmL=pU>G>L4Vh0*84#02y@yQjV5^P@H8=EUATIrRp$#o9G} zvFQ~@Ov~QdvlKSmjvct zKQ0WgsWM`}E=x_|dkbN)tmZC<3^{@FHx{4ZV|F7F>2^#dlfRzAf9d_my(W-`Vr|kb zc=(Ju78DxlYe~noR&2tIweDe%8?EVno%jPa_*FIGq%`$}MnA&)(_nu6dZ4cK)Sef7 zwR>p`jtq71n`) z>hqe~SbY3*;OnTUXRfRdBnJVGMbwGa(-`RGWTrlh!(-xut@dQH3M@k|RZiuGIJ~{F zuNqy)I=90kBr%4gyYQu*AUy-CQDhHu2b6JI$cSX$rQ0aOK4Z?HO>GCNn&_T?>Ycof z>{wo=Sy}WYPf_H_Uz*T*_`Cgdo%HM2Xy$o{UHP+9;~6{@yR&ju#*7IxO*80SLzR>6 zQJywA=sDr;Ts8<_cqtT^CmLU=P^cW%$de<8!N{~zD%x%^#fW(Jjj!fLb6LMa^0@l-Pp7eWigAYN1+Y-W^zJIxi-&&lnG3&;4w(*`l(&1ifK$v)b zXd!e%TST73yU-e-)szPIa<2{isT|>&M3ZWz_Zi10c(tctDB&GnO{mtiiRy-`NbfCi z4i~|nD5>l0L^dBX4HRN;+Zr2F3eP)|3-aJWNUD{3UO*IB$OH(Su}TV%@67PL>l$<= zU;38{fziVNXLl?*lD@k}KvI>F`j%W7^;5w3ZR{KwC2bo)OppTMlxux5_Tyui(I47J z!tvy%31K`Jjfx)<9ZT`dweeu!e#H=ON0Nt z!Y4CcLwX|RUHS%v=N^}^b+Y4Mnvh@Q;q6}@YHd`3_@Z<&iY@^O;xYh8@4 znBe;NB|*7Rm7WwB;-3wG0W~x&5~@=!Opbiy3$+!YtfEvlfrGh5?VlN$e~P6yqwIf9 zfTg*o&n+o03(oFUwx(5ddE33K9fdmja<9}>pQvlhUD)hS$j%^-ki_bE9iD1$iMO}MdXa{=ttrT7k+K+XT=x^y5FBd?=FJ&AWe0cy_Tz?t2 zzOJWMQ9r~fEO>7o|@;-ZFV<=Rm)g=L3 zjo}DO%3i!84$`Rcmf%Ku) z1*Y`Q$Av3=To)-b;*xa@h(`fI0MWJ*3V`?KrGI!!AcGJRclM?WjOSk?TSJ-FB6+W$ zT0wXoSUz2-m&Ga@PN|BUh$d$Z9__%Y8CEwBi>&4y*@boM;tw;UpFe{laS?_e*+gN+ zKA0;@vi-gQ@}}jC#nO(C+yZiMKqLaV^%Ibi)^x;ejZI0Y{h%E~YoAO>5sH70Vonf! zf-hqoLe~6#E1rgNyZZyE(^k*9LhH@XL`t6S=Z>Y_OK4A93g8fJ=EBz_s zpv}lav%7TJZpvhhjTl3F#EV{}KmK>%m1X>n&jMMYq{$19QA5!>p@I z6%;mX>?4&|2mo^_*G-BS6+-J8wzTw+gmi$RvDVGA+&)e^JPDstC<|^$o=pg=Ux@Si zltvOoc@-}Qn~fDI?B=_L@QsFww1bk^lPRrYIe&^ndkbab>1ad&#TQ7gxb(0Tl+;x$ zt&~#d0DAe&yq=+TFFo)CAjsI6bwzf4bA|Cg!d_yTS}6viK^DEx8>v?~@Le~Yu(p*y zv7uhVU~1V^q*#^H7^p!`xtnWMJ;SM8*#;&O%pxNDQvVV)SK9HPCKM;U7gub|v}y^n z?LOO6$*~QxPAAhWqwJ=SVQ$;-^7Q4#N^Ib&JA6#DB}3Ic2Efi7##Wdn*FgxC*(fA_U{LMm04|I_p)+X?N=O^u$v&79GNSe0}%>^XI*ad)CH3nV*8>RX`A7fZj6-vA>4GBOa@1tl;VQfp@C&a)Z*sbd&kL`q5S zb9<>s<*wk_cpoTG!+XRa3{*8Kk;NI`6_7I1aHVE0umgI~!Lpw#Oqpj0{8pHCcrX(UAZAW@*G&T19*=2 zEhbU-%aU`pALXr}frKZmD%tqbWoTWf9^E>T>-W+d6B1)N^MIFNeM2e3LYQt}+gd?@ z48+SrTnJ&)M&MlB3NIt{Fc^4P^Gc!u91T2*s8b+OkiMHA5%G^LvRCGxa+l3^*=)*w z5b5qAklaX11aTGRub9{_zC{r`4i)J=--Dnw>8~M>EMO;U=?tNew4ep)x}lIC^3q+TV4zub~nz1YZ`T&$?zRhi!WWGK;nO%JdK>kue#^5lruIxW3ba0_fuGPZ(GPLU_ zE3zU*i(`bz<5h$PWx{?FZVpouO?&?h-cl8QTO*js?eYD*eDNOU591falhjx*Sbm>X zH$qZw@379*Seo7!LZCeT2lp`Z^?B9f{}nH1S)1Azc-np5QwtR5BfHNNKV6xQUhSv= zI^@DXT;cJJQnw$T zCBUz=n<4}(!TjPEQCb>i`sD#(;}|m4Z+4%)jM-2Bc$Dz3hig~mSJF6}Od-oogWZ%C z#SxB8a89f6(S$74J-n-aT+sYQ2sTn8$2~73ch!%)TSBQW#=j{$Urd?Khlr$C2p*W;l!7fU@C&bJn zi<;Lqh5RinK?uFrzwCG(yiW=CWMy(S%frV!Fga$Qu^MJ{Sdo4c0ZAz6!2ejfG_muH zCesbjW~8hqlVdF6Sr@T#fE6_3$)GK1S)%P>RUnBV)^i8r&w}yd$vK3gFJB1A?l@(2 zAKmv(SBiub1)gcz6K-${9I6?t{MvW7cHVaFW_Oc^ zdJp5K>)2UvKW!v1`t~PIS8y8NYO)-PfX&8!a%)v0@2ML%YwV9vrwI!hq9)5lr8;Lp zBCFlxu@6Ki()b=ci)jZoRCLgYl_*AiD8 z&LZQB>hvTq0b1s{K}Z=~x-!dM9T?)}wgTPn^c-XH@~|oi2DrHa@l+N}K3^4~f#otP zRJ#23C<(au;<~>FupsmOHOY@5U6*rOrLCc}XZU-HC&K=0R3y`02)sx9<_iq?lMRv?VeEt>V)_8Sk0* z17c?ba`0NR|B5`X!pTUs2n7&tuToC3pD|>ys`}au8q-_%(|0Za{ew!R;`(QpU6nmF z%KmYUcOh&22;+egUzmZHX#5z2$O!9u$vXRbY{(nVWl#QP0G=A&Rt^K>k6PrC!RNZc=!Q#Frda=WUb&Y!%sz1~ku@IOEIk(GIL)ysN&ggs zC8rLq*M&jPZ;+=iB#*3-sJF}dCF=?NCDB>JIHr9Ci=hTyA@a279Y=3m1+&+HNR6$ zA~S1W+8VchmV53oK2eQ&ZdfiXI0p7RB#=kbaj0&EPt1KP38Pd0={xjISmHVR zVh?Atprc8i*DM|NG4!6bIzntDmZ)vClQI|$!$LL*+Y+LyNP6dC#Dxilf$2)rUm??; zpwCEr?#4BIp>LBvxxl1cyNd}FbwkZ>L=H7I)&GlRw1~oiP%jRSH>dBHBEOX?(aHw= z{yEW-_v(>)YNcb_D{!n!SE90dCm)Gmd|!39@QZ_^MCgP3tJBx#p}{BL|LU*CJ+Ap@ z-;c6SYwezzXm(q>KpfO=$Z8FNMzu+h@kp_i?=$Oj79x~)sghz$+&C)mP!%F@bH7^fWT4TssFbQ)|*v$fRjWCUKnJWtD!291UOi3p1iZBCR9GD2hpjq zRVNgzANO}aS2eYyTgj7aPn`3aaK~|84)(-&^4#hN4RgEf{a2!l%wD#xD^liUV z5WtWRHp&N^kAl-=;f5=ceoz}Hyew_ZnUkPG6|Z-nA9C@fSkFp2qg%<{c$w^DQtis_ z8w*Q$Zc_dTF0zw1w6$O%piqb%;Jw(dbNqCf_J*OW>KR&FmcRj4=<+9>dwdvGR}5jH zH5+pVFyD3FvLDL*^P*MgT!y$IKMk!wH$!b)_j7IVj0pNr&L8BmsQ)n$F{CepF&=WD zVHq`;U56*4`_Cx@5=YL4N%B}y6I9g4)+bx+tY}@U@UPSpM*469BoEMK(QfWsd$Lw; zXu+-?<7jHV>~i$Ht@!B~*P9O#nZC;*XDz(nZy`Ob%e$xcpNGwE@-d5PQo+wm{eCAoB&eRxj}Mc>p;S@7mg8679?Z+;9X zcJXFtkTFgt;(~b*%qno)Op%|lNY;kyk6R=MPv>Z@rf}ZNmM#1R>FX7F2ahKfu`L}I zj?usVbZt7?bZpvP^k3rRJH>KR$xA4CFU&cY%SlLTt1#f9I%fh^ON#7dO<-j!mChgb z4cx-!-L60}SxM($eLFa!n#Ju7h{+B*Di0wZE)q(wR%++e*The&D!EP@o-51^k4jHW zZyf2ErW$yjEJn=YT{*xf4RSb&gf^IOkhmGlv$CzQvIOA6(?6arAN%w^JdV7H5e&;N zU!+1`|If1l{)^u*19Up=u>jdR>1~2-HUX1VoHdL2i=_6zoaIY6MP`25Lk9|yQ`9z; zAQmqmYljP1jg80*)0;G8^+AgE9UG+f_N>X%oYHnrmPS$%iLg_rcH>JEnJ& z$$3up4hGWzn?h?w27Tjw`_WO(d!gjj{kCo`0siGOQj6iowL|g=MT1W`J@N7s*Z>s+ z#d5w*SBa*~n3iTpZ=$8!9x6>t0%Ox;#C1eE4ho1k1(Bvt&a08pCQ2X;JwGvLWsM*) zX|fow1P7Af)}m-g&x%U9Z&9RM+>&>nhSn92xvtgpZ%?8mU+7CUt=Q+O{$r$niyMOk zyE0}O@ku*rg%)Ic=qMpWRZJmv)Ku0DUz~gRH)E!smR6NnTWgHPY<_*+G@&kuGNKgI zl{JkS>ThfDqB@*3&Q3gGOd|ZTEN-)|bxQ*Nm6aG@5Yx@`_Y_SXCXa*ud)gpzW$Z(7 z6fPrAl$_A+(T>C-XRPFKb$=~5Ll)ocM*o7x<)`EK=uTz!!J7^Ay8G-g1BMjK)ec>N zNzll`8yjYaG(UlPK#*A8iz{1_gckebX)FX0B8n!A>N4T-lA1QYnBVxj^WgDQ$_WGK zWkCK|;`UL@pl6dO)MY7Des+D>Xfo-8OCZbkZ(#QRaUypQZY6DiK+__Q-EZK8>C6Ae zA`GEOED=Pb9FUaM(Q`FHV#p^k5@T4^1<^|Cd=YS2ipk9Zkwk{tiau!K3^gN_VHb`;tGbI+8jPtigrsIo}|N%s%*oI>l(1gRGK z5&`s)ZpivZ=$ZGQe*r`sr5HZIRzHC?1GA7HNGRX$vfL24XTmgmp~3f&bph|;Oy9nS z{02V5p@XDaGoO(=CPP-gV8XVO^j{(BKWgpeB+IZ{-atFI6Ya=(1nKJy-T6enSu+8v z@X)~&o81a2tXO6n2=6I9OerA`22Mn&+6;i?B_r{n9MNZoLyw%&>@Nh|GaKhNfT55& zqrss2*4g-YJusWu2Y8!Z6I7%|KxWX|2X>%mN^Sx0(CNVFJ{oe)!T+SfWD< zXLba`C&V&RGAxjyZZi{rrxWVS4F?lhQGtlh9_xZyhlDKNArZ`q0YyLvp+##zAi0SO z1^mL=>@hiU(wiXVB_-W{eV-T9q=KO3_s1N`q7uN8P9qqpqpXoZ>Lz7{K#P+a0E|K6 zM}I~>%%~E5f_X0~1-00T{dhR|c*(7)CV0}HVX+ri9TJ^hhjg!XGGYBgWv^x2yvu8U zx;nL4tV^TiZK2xV0h8)JR4BR&I5X}=sleisgG3Yjwi0pI2|Z-P00s#-5D7G1njj>W zuDP_W;Y0E+{JTce*Q-+(`vtw~!O*B}fgm{eWU9~bSoxI5*2I{%YKtghK9@?`C2J81 z5Hf~-9+e4z%$d~FS&WjC%lq$OuV|ViNx`-y3=W(DT5lw8W>`>x!F799MY71U>upY0 zZxl0EZVI$7=DA_;m2M05HCeYATm0&4gefKiRh^*SUixBQ8P%-_QR4N?|{o2 zM2OIt)5kIh+RhK~--^jG%$>~dZuEeUk@|^)JEFPpB8}*gq?u9TsXsXn7@Wv(2m-TpN_7jq2agZpmf*@Uhy5#+#2@t4_u%TSn zFx3w6@5zujDl7)eVIV)r%zDH2J>$h6tHN^9Hq&G9crk{;<3>Y#3o__?&q?t@kYMC4 zN6T2Oe^80$j%>(Cyd*73V-8zkvh0Ye>n) z0zY|(otq~qv z-|A)dNAhC3Llz=ak)0eIjiw93Axbq@QCUlO+y0}<9!)lykXZFt)V>^s{vZD0PC4QX z<8xld8;{xI(g$uR;v`|}43SOYG7U=x|A77E3Y-hV{qBMChiN}z$kCnW1xOqG5!8z; zYZ~b|7|cl|loJR@7v+cqWb`QwghmL+n`K|Sa$YL*n0AT6ey;k@U(y3lL0jI=Z%H0BM0c0QHnHCkQ#@hT>?xEHF68KC=+A z*QJ`yX{>r-MJ3YVR5ai&SxBu!bjMBx326X2nX)blsJ8Hj)7caC8*x3E0m2RB8iJg%+*7LR4E6hksV14z~Qe#DwmEXKy)if z%fx+OYL)DBIwy*iFTi|Tx6Z0-&z_#jO9JtE1;%}OL9s+Em1O`D>fwy;sBjQ&lB|=A z%a5Kr9qoxeLa|76326Ww>CY9$K{IeSL@U=YUM4V7wQfprp(s?U65B;P#+4dnhC#4@g2q`lF%NQgk;qR|-Yu^{f$zOONsMuieRv_Y%=j{x8OOro> z9KMAdeD=( z#FML^>wx@pG;NHI$g<+bp;D=*GZ6GYT#L{HBT$onskvz6(7y#TNh%Q!CDDsbBushW zf>B2eX2EG4k9Z_2EVTxfq5Nl%sa-?hHG9#pi${^a;dT=eq8V`P%WP&_OBhfn7(szI zSQz=E+XL)>dlligIdeOJ=}rGXdzt})Pm*#~fc$L@5dcE3B1`!+Lna`Sra)-NkVvNa zEShu;h6Vy?;YeJVFhOK8GK*=PDd$~HWFg`Ph(FiRM5|6QaWLP80os5#exSO2ioQLk zvHo||xIIVN`a+d05@P=k=IRYJ;lHv~US~4@Jt)H(fQFVm6Ta86dUunJ^FsU|EmD|m zDPd1Y81!$zv!+r`G5}H7yDNsHJD-NXw@wxOMwm6`Tu#4;m@tuORC76R8 zBdP9!fOFSD5@|&AvAPw# z28wrj&RWY4oJd!JL~F#5SSEx*HYS-&lB|CWa-isG;eZKv|q>LxlAko(O_+-yrmV zOUE@QIbY>8$3EsX)AuC$5&(rE``20_HYms`eRSD$tv$g$Ypf05AcAHTgJvXT@}-5< z`KDls8^?93B|fD5u}iH{sO4~`;*LE8_CE^@-rF0gBt-F_(ZGR0m&mS|0@B%9cvF0P zip(Mj(EP;rX1+G)$;bu&8P{+xgqY-fI{q*eR&Nrje1U7aM!ex~7tDbarcsu_OCD1IQ>!lPvIdW54nWM zb)QUxhtFZ&(OiT8CBKK&6Oz7TN$aNQDW=U@`I59Sw6?MVD|D;)T7@jmAA$$5wRtmJ zya~?Cj$$tEogT)>{aWC?w`XMkdC+swq<@p7zKqH$CKuf@MWoEulgpF{p&J3n^TaC{ zMp9`oA^D1TlW2}I;;EI)BwSR&u*8!4oyb(3M5f|&+CacxddEgu7ie3lV*nENbiUrU zrPnmb--KBYn~Ix&!yI8~ShfiP2o6*KtVaU=`E#KL!NmF)&?+KBv>yw;Xx|Q!xfjK3 zSj04pRDIkx`;*LYf^l5AUP`gWW5I+*>!S$~>L;?qnL@r#OB3~>y=fu$h1lInmA#6$ zyd;XjKzn2MEDBppPVF=X06VFx6JC}?F`mp{(9C9slxx}XYf70GP!g3z1DC3 zcr`Os5h)rR6mXGzJ9E?00lhlHr`y)zLI1ls%~VB}fEPEH*xE-J6Wc@1TIkj99#~}d zB5WwrKWu=#^*@HZqd6*&&)^*ZHv(w(kIzyPY*D`Tg9U`(_EYy;yfh|6&WF^e8yil= z&^U0p2mjN`@S2A$1p!|!cObgey3;lz_+*0`{*s8i09o-?ZD|u2s}VC zQg2G)wEI#_FHHX9A{vSyq=Z7dJ=Lbl0Z9^>ZmN&>caYlsGN|59SKPyuo zQt;YwnW9YZ7E3-o94h*>Uvz=dD06Ohd%I2OSQX-R_q1Wan3WW|#mFIO4Cx-{%2sw_ zgr-JSttQz{LVAPoBuB4Ib2q@Db(FH<>#~G47Aw>x9MBxrTN$7z7L38kWNM&|MwOE( z#+b@fUYPEsDy!WnZYE7$%_F6rQk*cSoOrMnkL@f)H)8B29;K;k&!i&$M-W64Ui-dI z63ho%Gd}@H9HfRvyNt4rGB7Ai^Fg*BH0~#5*9~9CJsY;PJdxjuL$0dS3130yA(2uq zg0csrs~Ls}g)~07!?rJNxlN)d_D_*nlBmVjtC=}b^hZ?!&UYgfiD;Vq0>ip-Y`t!H zvG|E3C5#cp#r8BTWg2)1XqiA1vu;IEy*@bA6Jk(ck(B^tLn!eOTVvU+CJeROGqu4K zEZIQ0;!@QldOU(Qb%j+^X^NV1Z6x(jNZ~87j3&Zw09jc=%Az1~Kr*q!>bw{rk#HB5 z8j-BmRO-9;Kz@j#@=JKxsR&_E5MQP+FCeh48&Qp$LP#un*EDLg7!ZWRZk3n?;MEBU zQ&I&&l0aJzDjpaps#ev>bZf)OL#i8&sj3UX90yV5Q^LZOo#qyY$~ih}wvwtOkctpK zqFKS9;IdI83NL-+D<($a|0c%cEN?s)Z_W@8lT;=u(!2|jpq<06poWk}tY%g!!wp1} zjutYN;WdpQbo+_rhQ$nsyb4E`p+qABM6m!bO-B>ZIY+JB0-f6e;JH{M$!RhL;k~ z^~Yo7lY>^L;jkyIgbAs<_!l^X;pvekp>v7QH}$7WF2y4WUs@Zqnw5y9PS0hfZBu|C zi6`wD9o#bTQsPt6baJRcHNveGw$uO}_L7M)%!qY}6 z$dciLDUQWZuM43Wd+2jGF~!1RoK9q0D7_Q1mBWS+~2su5uBRjbIj$O9F#N* z6k@Dxn>jN>Qi)QxHiyaP%%g@3>Etb>(4jBX<*F%Ksv$lp{HPL;UPLD$@s!^LnUeFF zM0yYOij}Dk6@yJ9+i)YWQH{(8bo=|^BS{gAnEnt7!JETQl7Wy)hFE=+#Q^=x77aCi zDEvt$Lm``{Asv`NZ5MhalGhC{T7fyK^L6n`A^fGwFQ%I-oA5}NH-SJQvTs2{p(`@B z1hbd`u+j=y@pob$vkN0Gw3>h|AC(jqa%W<8(8T9b63RHC36JyOO-hd@6&6pIgsrAU zp=J2NFoq$OmUa8vt4tEr6$*&qLy?RamAU~#7G-8VUTPpcnopI=T%JS;W@L(L##x9g z2v(%4PmCXFdB>m5A0dJGod7X?K0p$Ck3o|Vy>M)(<*b;(4TYGr7bXlX7NfkF4=n|m zC2NkIBDn2-R?J9hnDG=Ue=J-G^&Pk{7D6!;Fy#g%mnmq-N1r7@3I&?e3Be4GNtW@F za8}F^1|33C5eC*m&3mIK^c{g@aw?j#4v7=lg^}D7a2AZh6?|utN?i|P{MJQ>q2lfk zr7{8tjsFhlW#&bu#2)6&t#XBnMI%Sg_>GO^c>*_2!==O=#JVncc&QSTdI&42lqd?a zi1&5xkI>l@zcsBew+%e-xwrNU3fsu0upgo*yB_CpFUsLwgqoc{JAQsC!GhBzA3^K@ ziFxMc^z!~zsF5KhdM* zBck*;DjpFkrj7zw9iK8W(M@^Pp9U>YT6Dw_gQ`hZnU4@60Q!e6H~ zQqJ(B!|gVP_&|_V^(Q!Y6@%s#Kk%!$iRN~Tq$^L=Cs}72J@)0CVBMcrIk;CI*FKx| z<(K&9mrb@Se5SV;LmU}udrV7Z4ee3^Xn@{LBlU~T#+>f-Dr9*SzRJUAck7qhtOc&6!h1F#JYAQ})gupF5A6y+Vf$LVB8Y!q&}UbIl(SW!A|M{S zH<$I5YwBl(`TZLU@b_kC^)i z`HkPI0YC|e-gX!Hc#=`>*h*WjNNw97(U;C>-r8DD>Hrl$?_qpewS{Em4;i*xlGwRe zQ5e@B9{D(i--Vg`RvTUxPDceA&={H~+;D}4U$NkY)a?hS^yx*O~5^D(~O zX}n7qX{HlgYsxazLeo!Z39U3Ud)+lqoJ+0|9KaJDr;3jV%XsXNoGe{i6%Yy-5O)i? zZy}cSB#;BmB@dX3Wr1)O4}89I_m>~w)ZhI006@1PmVh9^2IQK~-h9rdSabH{sG>Tr zy2muFs<2ml0Bkro{;0Ze*w;w>z5JxIyh$%oJ;Pqb>7Mg~Pt}i25`=og&d*xx6M`rE z0%|A-r3ZG%!h+rFxf)3|1%J9|B&(tww_k%LSwrfTlB&lmER4|8pWp}BM_(eAKjsfa zR0^ShnwDq4%*eSD2cw}$gxF=$mnpr`}YFH;iKgEsXw zd15>^Ikk=fgY*8WAD}dKRL9l5ODq)k2qcnpj2CNy@{8J3RU#C6f=E|Zm6>&FJ0pj^ z=LCzrN-29xZpCY3F3fKSfz^doA}nQ!;07(h&-)$E;NUjFWeNJkMLK%J54nqR{0!0< z&cX7%wez|99g2<;AoOkO1p#qPgq~)?ptnn^Bu?iiY_%3mx#V$ME3NKnE(y zSr>Tp&dV`>$TD&_=K!HlkZ>$PX9+W(8`oD8hTI-Zjnfv!Z7-Vqvsz#Q{F-nIsK zUDsQ6&^(G>se)qtC*K|wT5*N~MDByEYt-|)1)#)Wa&3vKTs}X`XD0t+wISRW=rsG%lz%5gQ?+4WUfb!h)_M5;Ud^iMnXw#e zHZE2Gc+U4La-{=`+0rhk zjK?3Xr@w4@&bEhEO&7eNY73Wn5Gax?Gg)AqXQgZs#zw+(Y?~NioEH1wyv9oQ5S3kJ z_ytZ(qfMkD>?sUtrGoDun;*gCHk)Z*S|L z0PXNvv40&^DNoX%v1*&$dlxWrsOr_9JrD6W_7cUy=gW-sqcphwd)~*FBWpJWs)EAS z*V9%{$&xP<9*_a})dEcZ0+4>*yl3$(@X{;A_} z@g)n>Ev~I@^@I`lKMS}mJYA-bg0I-Pa>w1*z7 z7!KZF9oYS_=OoiVK5e}<& z&W9)8=)JnG5x`^qsh}Mm@On4pti256mOK2Ii{Af(?g%R|8@}Vp4z(Kyg)}cH)Du_W zqsVSV@NO@W|JQ|TokL_WeqoHyHQHLL7!46`w$ z!oeTUK&Dn#?#RF&Ine^$Ck$|%E;$83wrL@?vnlFlLnj~eoe?uX7kf3hg+J|C1BE!D z;IjiXr=~aTGHRt(jT&)ObV;z!dBGVFQgUabTuga@?klb~j9$EeR$*}@K}-&ZV5kSS zLHyf5Fg9aj^`+$%+lmLWg&RulGv82R^FIXOINui8g6p%Pj!nhQ=O+JbUe%=)er$;8 zv%uzfr*-vMnhVyb<<8xv&Ja0{u&_1@F*XxP%1VS&%CM#N43xs#TeS6E957WSLDyXE zEjQl>qayzar*F7R{3lBWFNK!zE-PsG;gA}Kbc74Ygz)=8LW?t#)vBEp|gnm+=5v5mJJd})pB*u z)zflh%F%-a-R&TF!zXw9xQwLP^8V*E4V{Vbxf^uoiB*a(=kB}JUb4bs&y+7d3r!W( zx)gDGBWS6bx*P*|^-_ae_b#>L+S)w|u7j=j+IR~ag#2SpyHR^r-kOs}#r&F(Pz+gY0&fBjMo{J)5qUUe3P-J_{maB_6%PT^kbSkxY8!$ukT=-hex z+@iNalGevgW5L>n$z1H&7+!-XE|Akt)YGU?(nE!Nj7cQ6?%7m&dj&aX`QU5wAHAv7C*CSOMQ0O1-(RA`* zsHC&Mh|YKV`P(oo7U5qO@!jP9{cJ90A{V0m)i(WgIH=^S=^wR{-By1ObERVHr+YXU z$R~q=`%_xqLTzdY_gmeA)8S{`f$FDy_;fV6mFlT~I0e%8Ql#SOpRQANL@T>g|8x(B zv(fOAdTM^LkAEEX?=FP;*FBK>H2GCN(m!3--;F0z)%W_RdpMSsqaNy?_Tir=L#ZU{ zUuRNPU%iO_QCpdk{#ol(^{Y~;%6$c2>r(hDyYB1Wsf236{Pdr4pn8AI{1o{1xAK|!EpWSV z77Sr(#711N9K}n+xZZMDVkp<+b$2&jKgM|N(vGY?Tsum|(b@sp!TR-^XV0Y@m;X9@ zxOx6oT7&#I)mn$Un$kKdd7X7oORMbZPGz^@d}XcT*zw9b?GA>)I9%zKxtysdd)|^p zD;X4xX)R2h{e6Eih!0(PkBmL{(9i;DW-T72qM6{+Qu~7S%+$Rwa{xhDboC8SsDy^5}aTpz*B#)<%a-?czZs9>L&kEdHUnq2Uk>kw@srD$oxFq( z!;cuD_s4e&f9yROn(#hob6mnX;656j_Vwp{QOz%JhF#^4f(9QH^3)%hIW7b!#eIrU zS8AS-0x_3rxCVeD5f*ad0BqI8oQN7P_NYTLvwr(uKR$o{>_V8I!NSfzUpzCH4Y>x0 ze~dUHT}N3tm`F&LeOnJ^e{mb;SMT1uy%73`JDl*#(?37IdUql0 zFKJMb@K`OfNXX^Giv)b>7~^nf2b+sAY&`>Xl(%h^vfE~>*D5^BB5Z52VLugijIS? zC(q;J;5+{^@6mJb^LsrW+pmKS!S2H?>r;+)K4pXR7Uxug*@~;1;#+A_wPX1wERO;x z#-&pb_$-eIQhP#oAdql|wmIVuErdH50(Tp1{;ufRv&v7k!sqWm>KdCldenbEf2zQK zhwhp1(c8sXCka!jWmDg3g>1*YT4J~piB`FrEOE2ew{36M3|#Lrd06lwo8SZ0tiq4R zWEY?mS-uNyAS*p!vXG!f(xDnfyDYVCHP~ixIOVl%XQK5Mi`LoHUd!`TYpw*JQ1feU zkvTA5FU0Bmz4lqb!3IBw*;gROe=%nvOHLqR!6~$2lpgbT+3?yN^ODM4OHU&cO638> z0@`up=H2C6H4#)l-0bk(n``yt&9z89yTx8=I+##FXMqXS(t+CU7R%!(t@W_0>#QME zR#_KDnc3g#|GE(JpFmr$)ozOYMFe{N;`L8fwdHRiylpVQg&2mA{smEfeCD$h3?J0T9!Mj;wG)s+K`s~VR#e_TkheY=GmHZVdS%M&EnzYLF35@l*@1isjF~sst zhc?30%}WA#AFtH0jcJj74LLP3u77uqaXVbUog1N^-?Rw?p5yo3MCqSN;D<6ZZ32Pk zFmq90e>$cW#~B618f(lbW)iVkLx{$R`|ue$OehL%4;6|gkyOkG>9dMip}A?r40yB- zW50ee+r8}z@3rn5v9{n5YpV;nRUq3NMR%sVY-N{btwVaWZU@t3*>I{{-RbTy=q6p= zi^2Wn)yqp$*)8xq;d24tXv!hfUdQ}}x){?$fB6;Dx`&3UR@5lH$z)UksJfyQc>a1a zsFI5shFuGu#}Ha?@aR5~OD<))C;ndL=*NCCDvO5hV4pw3^fxzihK4S_NASgJM&Vav zatlz3ER8bwgfvDsxG8Bgbb5-`bUfx{t#&NwStEn&ot*02)2F+GvKw@sk?*9v+~sX9 ze;sb@GKoA<{n4UAotD9C&2<@a8%f@zUeTv+(l5+S+@ydhLo{zho1=Z>C70+6^c;a>TC9!)aiUI~o7zy%T@ z?f629f35cf0D2aW246Z<`BqM*e)rYJD#6zT(Mr%F64-3S62K9rm^p}-fp27Jf6)QF zuqn=9JDK-KX{hCP9?;0R0SDr0_q_hg>o5N{viT4;K(hNsWHH(e}+@nzV!IHJFU7E!>5#TFhnN&pjDtajG?rK4GBE| z@Ik2|#?ds16q>=y0BWN(52#Vvv}TOa09aET##dGcL`M19LR(KfNKdQTWHG%3Mb!Jq zDn(`bBz$!1`fipE^G3pU26aOVA3BHrHtLXl33XV$dpbbUz7LwGeIGPPfBWt}P|dIY zVoYWZo-xU#H57yQAcr-Is!6Wp-St z!HNS+FgR+5KZkW0|9dtWf4_Oi4gocdHphaRC~ltfurlJ@)I?;Nq=GH_>ENYnCSgY~ zc?BrwZWegctgZY0ST@|<9X@Y)S{6l;D@@HoIz@wZ5vDfI#rV^B^6U6Q*k6Q;5653F zg!3UXNqP^e~fuj2>#Yane;Mh z1R+RV2HyxiFk-_yYo8jVXr7j^St(h7d0TP}gencDZ!aY1aYx0sJ!bP?9^{x)4M06c zDbuhbM{Z52%~4wuB&sGaf{C1dH*Uq`1!FSzxMx{5P$8^Vf%yJQla8wqip+q4xefM6 z-zcLiPqbpABd^TVe<~bYobhVSzCKf<6z`ch>xlOShE=mYfngQx2OtNwW9!I9dB%QL zoz|&YTem}d(B8?}z8X@`b|4lD1e|aX{IQ+wnug7 ziwf&hTgIAHGZo0Cw`*U_-c|kk=#f@kEkOA6msvGU9#Zk!WX2dBt-jgwZDwL8s7AK!A=P z169gFM7LURmJDn0QKENxc&x|x-GTkhZcM08%Q#dIzzPFzdaQoAG5Ey{ABA7c&~f*uRFXi+1K+yJv)Zz*J)kfE{WBWG7*Wlv^oEnd@e*p@IXEM$Py2j?nA8SLEtyxBT z%w!tkl-ag@g#f61W*AxV5`i8wcJ~FgZeC~xkJ98&Ly0VnhSNkl#z^J5sru8~kIM31 zRr7wXZUF_H8PrgCJG7}M$}y+cz>uf?`$}IaLU#sk%<-T!JCp-3y_}3>sC4a&XDDgh zr_}vWe|r|+Gfe+dBQUR9#q4~SH@I@eX6L?Kv`t~YWrMv6jlf>e4;3O=*N?P?dy5Xi zWlLkN7l>hWGH22JEe2!F!MK8|A2GV%s@mqP#dLt2y68kHXS>w$8{W}&-`ZPZy#1WC z3j!~@^_)OUB4%A9X|YOIKcBsccEtHuq7e^Te|$a-J%;ANslhall^Ip@h%Q&6^g{h) zi@gR$Hpla1+Zh-0JcvDE_a=T%xPG@LU%Tv2Yr4hJY?cmZv&Q3@-9b&w3f)Z2zbWC| z3;n(PmTT%GdMD@moo3eBJ3ZFNY|nOgr~arzLQY5XH$Dq!%lOae{^wGzvdt@>1twpS ze}~H6&n&%W+dfJ=oZTh3Epa%6p8@WLDlnY5PTI_lV(OTTx*8rCJF6>JEyQX-tMLGI!o#7>f+# z%o6kNzSOtqR}mF!5}P#+$v`C5z&AZ!fBcmXyEg3|8bnwv23FcXXuIFtvf8lS>y6gf z=FN6&-I}#^bL?*$&Mqq5BHfB?%Q+F*Or4w1o7va>`N#OA;asZY`^CIU6Bou$UQX_Y zalnLE)gBGd=XNtal_)*VvDzU=)dekiKS^m5haBq<6(0}OpRURAK!s3FI$eK%e}8<= zs|5G-T#Zp*cXxb$&t-Ltb2>K4=xE0XZPvxZa$0x&u@)A@zd zy?yyO((V*zbP`9oJ1Trqo^bhK zNe{y^P�o>fBxS{e$1!sHbn4e+Wpm7os3DZ6mJZ+S41112%u2O~zr)_O>DvC0=_` zilVlW%eS^8lY=x(&(W~1`L68{P5sepW?l`L%xZ+)DAaruQtF%;iL|yq%AJDq-M!e| z=mU0v3&T(i$QX};P2bFrlTL`=Ob4*&=Xg;47K|=_u#)dM91oMt4LTu2eLFe!D?`C_gRJpN%^qQ^1T0nfAK}Wip*6aHnGqp*$gr^(h(*12tqXUWCA`tuYo?ScMjZcshQPA!{p`Q`3w3{W~|s8n=b3Ka%IJKopNq8 ze~z*Eyq)7n+1D^hAeKyPN?V4yWqMXg9Z$B&doT1%{Cguwu|HSWx)qyJ=M^Eev_O zXCi2)DLV)qG}bRjg^M*nCQz(lT!{D!sH~hWKv3x_Z$^u|_<{baOJt}l97dSTm6YjI z)iX=3!q?r9Yw0)$c7|A>L5S%7)4ugH7#3C^6bJu<+VrM*219lq0SBI!a zf}keE_V3oz=0e1B-YYI2#et}xcXED|UpVW8gKY2g=un4#f4kHlEvGyMq1+1DPGd@( z(8UILCTMv5Ul&6DV^f-5K6~}zwS1s{*hg>Qym@sY)W7z@%NMWzav{{e0*eSV^<^`j z##E?er!myB`E1U2i3I*g^O@*TdF>d3Wf@npioAfU$fIP6K$a$hQ-oPEML?HpF=<+k z)QbzZi*Vs~f6-v!cEMS=9YsO=s7cU1Vg>D+sB;zu?Xw0!`-~H`&!V7xwtUb&%LVOi zuXf6Qw}hbL@*H#j(9`zoy^mh>m; zS<+r#HsIW44cNTv_^Fy--pTpxy?mIzhDyU1oC$_vy~?}lH^Nn5NbUIyj5<+rT}tRH zt}Ai51=l4kX=51wjIp8OE^BqWJLRofo&7}4El$QChIg#>i*R~}&`<*bN<1^mL!d)L zw}3OIf1N|{vYA7Sy}JIh>J-Y(Ay%tq4vCX>dUcok8of$jy!*>D0)vj&JQOBx@`>on z2Je`5$@pF83OnCjHQ(r}Pa43dej#WTC{EEOMDaZ8u`;e80xUQI;CoEnc_rGoKl)_~ zR(ak_uyLh%CCBat@84Zr|2&z^$8h4ITdt)Ff2L1gqpXo6rh(w|sy|-zN6&6v$IoXegIW5nvmYlTc#2FC;>-T{ZqdJsVI+1X{kpZ; z0oG>X$EYQ+4)Xd02l$I-yl>%lZMe`f3)pp+LTffwOq6tHVz+?70e|f{#P2cV{`^}U~jhSgD+k~0EYtHLNcrZC0 zBpP)m_lR;h+5~)qA&AY^(jq8y< zVD3kMHs2bh%yJfg+F7HII^%uLS?qUajhxPm=W%S96L7I{51WsHFLH`vr=E?XKI(I!HuD7PVR ziNgO1GFVPOfQq1-_Pxa6zi9Pa`l2#AZ~CIuZ%tSR2Uz3Kzd2jRk=A4mfibtUi{=6t z#G(+UCCjFW9>UeQrwUz2{y|Z_6Zf;xce{y;KA-ApU zk8DDB43f7_9j9{7?Nh}FtuLx&bG5HycPf^nZ0M_IMbGR>b@z9flQw@ar2fw3y}PZVE$jmpcN|-QOjG*@8Xac<3z- ztF4Zz*VXjHWO{D{t>Vy%e}ET^9KoOtl3ry-U4%?~#*Yx+!~xQ)cyzy7ZFIjvM|b2^ zGj0a!m`54scNr8OBc=}zlPnj}M+Z*YJ8=^0RXMJ};2Zg!D8k4cOvlh3%hBXQ4RF5O zo$by{*t6A)Rp)0tK{4V$MQ?p}-`(F`sNG~l^5@C>nZ81PQ;jMme_|MpB#i>Ypcy5g z7X3zFwf=E9l30*m*d`G8Jhu?iBCFkE^6jEVfnntNMWA~f_2^Q6G1R&FX3Cd&2`VnkX~zqQ2Q zPhxB$0UHR?W%(XQf9!&nIm@dL!5!$ROa2mlZ$xj)++*dr{6C^tG3Q{E27ROGK=rH&tbYcSzwi_b5W^Xuz zSe?InoAnzE{uvg31XjLexRH)qz3#zr2OD8zL$`wt2C~I0f0^u(BeWWz1Y=~wDT>F` zQxpGZevEeGY4FFZYBp2bmnd=DC@>5TCkq-z11~3cg@8aplw$%3c6Z*Fs_(IaJGEb}C+BM&)LLYVna}OA0&H?Vr#{N(;rxrW z-oU}dEh2%<(2wAJ-CLwGZcr7sSP?h!uSUOdhiuve0?%>B22vtRE1gf?FFst3quiar zV-Z8q)B~WFvva0nRDRsBQ01|s9+mW%@cgq$U1?&qUGtw^B zA2}MM?RV#`Qzvf(Yt_dal55MqgKy24?(};zwtKl*S`E15 zGn%}olL^(|$G?yNWZYM(F<8Y3BW|@OG{`5!GC^lW|v#6P#=H^k;(B*2G=3DuxqWyNtAbW}vR9?c(TE!(u*> zLm9}ls-9k{<^SXa!~|qQebxU>D(vlII<3aHUy>Mbb~7AFVNBu0v=#B2^8c3nr2K!q zC*>c#f~eMiig>A~(Lzso^T@52`-6j4>$tsS;miAqwdw{P=9HP;X%>MI1$&!_kHr`> z;qJrL7@WAf_FQ#=RBL~+Bjc1uwcd<6wBl^opIND`ntNo$A(TH{?HeL)##=PtrV$w2 zz`6W}2lDHa_}CF!^3%mm&9D5#zK**H6k!!>&n8}fGnya9{Tn+@_#B^RF1pd)4H`S%IVrkIEzyc^osMr?k46RVQuW?a5h&zOABKFE*I4S&^;=E z(}TzC&3FW&q~U!vO&`CU^aoUk1UR-7E&-|=ia>lX#pAT;p(f+B#$b55y8peq^Phz4 z^J)x#M&RSVtPgzZZ%r+;(Xl~|8#!0-Eh$F}KY7bbV!OLzn{=tRwzsKn8#vVPxd3o9 z8X-iHyqDe%^ zBR}U<@5qgeN29W@GJO=>$kkoOzKyG(88fASwcaMMdT*JT?;G1d+36Z9AoCh&1ql)x z8HM3qAvWN|0nA7rD7PLf&5}+%audDNL;Q&S!S2G_hPOTHRRzjvI)I$N^y{T&t#LLv z>+T<*3x>As)o}c*8qNENA9QFfxj;vbSh0#l^$S>V0^ zet5(QN11;u{IXjtyK6J8+H@3%HN5p72Wv}4Yf082(p3aNS$7d78cG7C$QcBnZ8?O1 zG1A{%FaoDN^g*uGF6_I^XuJ$@#W21LEXa<25d;zF96X z>qx9>jZV9{tIfsZdx6gSwZl-6xvPf(4yRL%L4>brO@#lN2BEkaW$nx_#ag?6WirI zMW%}fb?8zAe}tD|2lh6sd#Doh2$j|%$VPBsE|QCSs1Z{!s;>in9}scl+{O2Il~7Di_vYNH1SiDJ)np~OEZIii01nDfYzCQ z>FeH{i9Qq+rNm!z*_84iPZGLhbhx|j*QS$Ihb3fiXwOQ>-+r7-@B8zm;}wD)<-Z7U zcLVR{&Fc%H{>tVc;%pNxQ36n+(e3H=SQqGI$H(X!lG6?KCw9VS%+myc~`{ zL5g*QfRK6GHCW3Bz)-z5*97Co7i^D$VK?$A7=b;1N-RFBtNJ*9njgrI0JjU+Tw0hl zuzAtvv7+Nx7wP$`e0dALVx}zS#nBHyNX`-=&X}idhgUEPEAg59qukZY|`sfvx>m25+H)crdgA-2>EN= zhWlCwMfy|-xJRvjrCh_U;G5z9#1Cwb0Cx%*wBa@(%?67UJTIexi(7ox;YQ|lgZ;~E zy=__8yHWk?_YPHObGHp8Y>~RtO-tW?J5o{0{@yBR?S$bsLY-~$A(wQjly2zuIEO{j9AQzXhEIxTg zE-q)9(MCs;n%54V#Yri1#7S#+15OIQ$f!@7-$9$J*oyw%qYv|qQT1t z4edbf=L&A*=FS%^Jd2Yb{Ud%sP|$#@$71nz;YGx`jyW3ebvWt0ohY=RrYt`8Sat<} zcN=eilWRGz`f>!D!jm=rsfb``njU7aV}4ivq7xk7OwDdQgq_-`@HjquKZzHwZ=*k- z_2<F&mhaYo2h%2L7vKu`tQrrrZow6O-?J^uJv=dD zT}2Z1t19XfhN{F^Mv;G$2iYfnQZr#sY9^h(V$A^ z&3b9!%Ol6a){?9XFq!YpF2JP0i)=!(3XUxWw#GiYqUN0syPMY6qA|9z;gWh z5ebV|gYjy~we=t_>U9rw61KzL&GQX^#;@js$gyvre#_?2#zFHTD1=5!IL5IRL}@L~ zf`r#qVlgr;C>_0ldlLHz&-2>$MG6YPoB)(SAXby#m%gf%{BJe&nXBN@$pOp?_Qv@l;L&3WugKwW-zI%Ql%ujb$^7-Yn3!(nC z4}Q6RCR_h`efjR^3laPgH($MZ{qFhecQu6lI|h37{M}^@q5g11LZ82Ut^_eZ>+{@{ z_)8t&rih^@wkhDH4QqFAa+3>xyhcTyk8h`69u%in-~cq%E(koDBL-a)xse?seY!UP zgmcg+FpLt<0CcZo9;w;y4So0;0#P0W!tD{U$+O|C|9(_~BOt*$BhRJEd>Gy>rhQ$O zB&wpJxz6nExP+N){&_N+W6!TA(>YG=b}>aMJzd;>s!*J#{aN+nWHbPOM~0+w{iXT> zA4vvNK<2utrdV+IxBmS0BS?)CX(!$Unf|q!&g5emBwSBM!`m-OS6xjj-M!CX8IPC! z+5G0q_*Po#c=$gM#(7})`CEuEA<0dIXii)GVzX0U?qairFW{Tn>^=k?#7 znTP5(5zilDc1x|^V1&?>8w_ySRhy$-ii-A?KAillrttx#yt+rrBWCvd=IZk0h0s5& z7T+9Qh?^t#$E&CEuUAj8Y!i06|Ns8-_W6a-KkTEQt|W|q{Kx+J^zcGFJ*+M1wOabr zKOB!2@`3yZ7)v1R3YHR3$(Tt1wX}`wl25d0BiH@gPx6b{A1h{7#E4Org2B34+0*`q z`GwFwTn5ByJkSXh?JsWcpppT%PL1e(tCbt0zm$Gsgisa70GHPC-DUd?uHWmMDeo5_ zREkYh&wV?8sooyMYV};c**_Q4_-OOz{%8T$Km*hkmOle(_@u6fk9m{(`=(7lD-gr!YmcZF!fnRzd- zUV_BD@`~FNh6;X)i3FOI9gZ@8ndc zG&$OTox$Fq15jV}shnxtO(%=-;Lnry@`3u=lm#QOIXgzcsiUMX`|m5vnh_E$*)&3V z6Ng9jiwA4>?;E7zP{8SNOXB4ytH%0a+0lG=;Cs_4J+J$B!?8IT0n%{#7LmZ_6LEUD zmNRi`^;?WSy{hK@>;(`EFza{#>>gEcIp{8b#P+98z9qXBBQ*|j_88TpWU^dJXCtF3-WbUMvFH)i4Go8tbYJTBt~lSl*&s-b`Y9l1j4 zI*uB#wUMouN?Q5(UiT<0N(>xx@AUA07$3lQ7gaXDjA#lPri+P}w{FrA{#{yFytIpd z>Q9wI571SQgm2AKQvfZNAq&Hm+*mBzOT)1aQ|i2`AZ?H>R~bEfp$j_c{(xCl(}b=` z;#Ojyl~S}g)=Fx0F2x`%hkfG)Sri%RIBcK6DxnQ4gx1TkR#l6B+J6>bJK2AKDQ*qr z8iQ9QElSmRkyJgSXJ=ZC_d4IvSv=zmo=s?Lgj_bw==)#P_FJZ`tr(6+QrU7tlG4SM z)~T)U>Ybb(bOOiIJ2^Xmh0)YFbi6xny2)`!#RclrsIu9|WlNMA zK8q~=!*DbQA>M~ke?G6`#TnUgRsWv!3hmV{NoW$+In|5!`u@$GyPI? zu-(LDVW7)AOh_$KEoSM!lw=)9WT-}lFZaLST23Jim0lz`U$VLqLV z>IK$97=u9<{6&gThc$R&6t$F_rU0=$g1VHHMSHF#rA@^)X)=fu}bZ#cXD!nti9pxoc^X)Z(7|f zSC{Jb-?O5dOF*+eE`cV`7rj-9M`pv%6UgY2s`fYi)gzy%eJ*vAXNMh|e zjh)8YB9tdtVb>@5y7l*Hn6F#m5Mf->+oXR>zsm}%M$yjb@$Q1fx98JtD!aJI^J@^i z?Ass)>EGV%5OkzD#R=Zg-F5oAz^s!{G#cBTpCC32@JY7%g>zS-;lmp>cvb zH8l-{4<@JKE3v1i0TOG1`UoyH=XCNX$*FE@&F$=Nylg&yLvoNbILT4$+XMn%%1|6; z5LW8s|7L9dW579wgu(Cm#dXufy90}nYRM5{r0JD$D|EC#?p~z9I=MxW?jiYt8@e!y zbpz#u&@Njk5niCxz3!n|%HQ2#+3?QWGdar4D|PIw7_OwCS;vq-XNwu(C~cX4LU_%^ zjBp`H(@VvFU3RN%cf@=v?9018rj?}#Wm`*em=>2JwrY1N`Hfj$DoWl45z&{l#FO12 z+iz*AZ`6aeO_PF_O?jzpn$)l#VK*iv{0;BMB>sc5FM{+?TNC$_-8tG#U-`xo&w%US z2#BDu^Vh=BWHgDEu|kRnmhFO~K*F?0NoFON^9W&oL`0doTR4=#I)lCzHHD53UdOV;I(Sb z3H6PCP2Uqq@|KqhzN`uE&RA}R394($D#g~j{v9{!#ZbzIh+#2p5kqa&95DtPvq(&s zyiua!FKd^(bAp?;%i-*HA{FOL*&HEc)(Ro;p38iw3rr+cZte3lA(*X@7Cn2q7>))v z^Zxxq`uJ`2d6*zP9}gZTvOiFxhmy8s>yR#gl>@QvkRS=7?row)f$R8_r_IqN?0=Y@0+anB1WU`F0X)y2WGs_t?2 zlB$9(@^DAqT)1jJAvanzr8-MIloHe&v_>%LE7*dg(_f!*Zbmhhb!fX2n;Uj$(k+bV zPlw~a8lCbRzA0$V)uqtZ@0n*ws2gN|!417wN~R^3mJ%i+nOa;Q#`rhj#xONT(U9B9 zgB#dy`l^&MBb~CWW$#Wvwp?Z_{y274xp+~L-z&!A zyCaBOF?3BPI{Qj-od$(2>pMWOW7wZ(x(<7v9IyadtA+q*>ov?z4Z z^dQ2XTZuN0DdU4^ZJHjWO)Zles9>qoip*XvHSioGgd$~4Fp+;*1Kb^}dz6Kj>(Sy) z3en!m3m{muIRKxoy#RnVjSKPyiVm9d%P#_LM(!(r1h%N~F}T|` z)dIX5f&`^1bP2*fTbW^UH(AW7!6+u*rnSVBiEY#RJ^bdWe>LtFYK>7mkl{MW7vpg~ z#;wL<;jw{_CEbDQ0r}DPS<8UHd0L=F}@pA9q z-oy7K>W9Np|YQ;kvda<;eqff4&fxJO0|c==R{|EQ2v6PFsGaHbRBWAZ%Sib2-yz}cfrCT`~a z;NINIQ;CRN*~f*@=`g1iG|l?@k_VcrgEesR~NV=VuQoXimvf z=pfaEDkCyWQb?+^GoXg{Xru^8pZ|F{sHQXQ^nLvB&4&-OY93EOhWA5k{*g-9lAWc5 z=`0qyC!$Oirf(W#v(N~gzq>K(AGu7Fx{D)rrqdg+(+CW9@Z0%05B#XyxevfAU($6N z0?+l&8XoLturhjoS2MC|$Yf)ni*c1!WIvPBYR#RaXG)5CZ0g4G0?y8i)&r&@DM|NS5}ekt@AOlM2xlV01r* zb_khLR+tFaR{o#v?kwGggRz&x+5Ebyraw+bYJe*RWH@+#&bn|6cl}W|Tn+|PnB^m= zYZuxcPOBvg#EDZG{cE{{tp5I8*qQxn6vi#ZppIUX8hW69USR(C8&ghz=%3|=2B9_+MewQ9qB041&w~SJJr9mj@;o?} zOMX)KTXffUVH`=c%Jb{E8a(}iHt`pLXn|VvWHr2qb=79I-GY(S$?8Q41rH8MhcAGlA21}@F%v39o+@K}7g(th zm|eE`F1yCqB>O2T^0MoTyHnO1ov%&qmGFmhz3mXK4%*?GqFl*oS-;BbY7;x6E z5%|6OJ_u^l2u54>jF2WTOU%Nn60-&uCG?CY`WnPQi%3J7H75D85qP9JGRi*IhQ2#n zyy+-g`D~>`Fv@n%1%S&(*$&DWx%!J?-Z5CtuwzJYq%%o~sRY4{J*Luer9*L7EO}kQ7oQ*a*H>0Nk;}?@zfD&`T@C?6rROx~FH_m+Ve+Z#ZUG zpX7D_UIu@CRa7#+i-!T1OdrDM96$|AH~>hiMK=IRZ`v8u@_1Ht=WuyB1Zv8Fy?4$D zBz?5(RAG0PcMGgu2M{?+R{$mJHgN-gYP>$<9+BwU;kRhT8u;<;sbswFrK2Q%O_Do1 zc>Lg>d()h)>YiBEK6l4@zopv1x~L-~qz7<0(+8k+HI%99htT}5J`P6%`4lmKK%*ru z0H{)jai{vz)W>nP+)d8n8x+d^-CO$<5w07!2_h^!QFS=*1>k)tmjJt^ts4M;XS-v- zZC^Bg^H7cDvsP{y16nzg2B6XXV$jx-sX~rksX+^Qtr);9JKmk`j>c{{9=-104afcL z=;T3iTI`|rsM9l7i>dP6$Vr>pTsAlYO&my^|8ZmsXKxZ>3Op?{podJ`9wv$=hj+B0sOf zexl^HnmbdfF^c@WZTN7^n+x|6MvZ|VX!0gO#YchBEIWwo&Z};ETjZ)5jo_AudM1MQ z{8os9up`n!|4~{Ijlr@bQv~S_flem(@qja}`t$1f{lol=Y(vM3h)!F7V@5=jILawy z^`|(M;J#DK6DEZ~y4Coly=w)X!F8`O8j*`Ger3`x#2vH3-iKDiUiV1vdz|e~DsI|Y z)Wx`=$EX_wgv|Sn8mx98LA~#y7lE(^R|3Jq`%wC&;_KM6*{_r7;Q6@!epC$*hvOjP z%3cqHeACrpHlN)8+@F1a#QhW$vOQ-7DQ7N6nJ*b$j?(=DzAWWTr4ezLzgVm+D z_u2QpBee4Mr1(n$Ct82SMn2SGm5ZN6s^ZI_#Tvvdh!$Znd3#+1+yf(_bGJ2w@0l@uq*IoiV(yOEZkd@E&bQ;>O$WP-imt!yHl^5oUy$a+`p9?5zf`@BjHnc1-=kM|7D&GB#JIL3Ej{A*UBRaw|vS@9@H|$|2QSK}0 z%q3?G&P;kIX9pdq=)IG3vyHzyhr8j(LjGUP-JG{Hf53o$^Zp}+_h|@x)4R#1`lyaw z=#eAn%gNnv4E8yH1Gyy@BtBn zKZqlU-kIeM;$B+PC7kaL9B+8%T<2W6o{WaKU;cAZP0c?rcWDkz6zF8P*-5P0UqOhR zqk^yn4+X(p&Jmb^R7LDBh^Y~z(Vjnol!@(-Fj=U7$rGCW80DSuTwYMq6Vcq~#h}T= z=LJ0lfih>DP|`KaZ@% z+H)X~GJOX+E(q1A7}TtMrwI`yW7~<;ZQX4;-<{~)^dY^c{o7A>)5&5y`19nwe4su% zIIf3(fCw5pe}oS~zjUg>ia9zj<$i6G2!KtV_U{9M^DC4s8fBfB%#x1d(;%FCwaja*hWxbF@ z%Qp4xFW-glS+d?0m+5v#6~Be!Qd%M8Z=CcY050nZV$k|B+z6lZ#?Wn9eN2_Q^EL`g z7ia;w0j&Zqp9YGhAdM0T+rn8OZKbjI0gEpc4J2 zntmSM8dh(lcI&fcaMd1b7X%*78G|;i^g&JRVs1aCC zKGX=!Z23?Fjyk=Q^Z%c{Z|!O$NfP}&zXIyaRjY=w4EWU}x|+o{-OY~Oc#V5|c3G~D zkP4`_C^0I@m`3{VHzV>D`Kl^`Jno&#oN1%VjEsCmMn*nzS`}r)#)%#vPb8R z?1&I&_t~>2$V47q@O^bR``L8L_J(r5m`-jm1g7n7-v)?6C2QR8+u)MnkmL$xL!hb| z4FMEP=5LuPRKMw;W@Z?v*I7B3b$(djEFW2sIquf~NP*%p?C3AZ==1jA}ZN;xQo+2?Fn z$Gf2sUxI&Q5NYpXR((~gS@*sn*H8s&IfoiTa{QKq+W7b_3e;AHGee@u!8|n%B*%d3 z8LgOT&1>b%H)Xd1zFw0c$VbnSAg87?#KDte*`KS5|Be6y1vV z2Z}lv@o(zLd`55XEca0?A>Jp4hbTnEcr{jtaCqTR#HJwsi%j3})UiclC|53uCV_>) z@}41oPknf6{fFYImHgDpOPAoICM!FtRiYYjO&Hjbp+LR6ZsXNOJ{nH4qJp^{tys-! zV13YBtUz-iCsB*-a#ov4?E>Cn!JO)=8Sqh^-q@V(Rk2-QtNaG);c@&QCPwQXx=-;q zne~B0;nEEwxatBnst^6id4_SNf(_9iQMhz}!-nVr+Umu;QuUb2m;h0zWUaxB3H~J> zY^rFi!Tn1@RPJ0l@GkehJIjZbg-r30M5)z@zf4AV+}&VGoO=AhQfTZ8HWp?PPH9Ke z{$%P&-!F#NeZl9~$)oj9;?9`w6pLuruA-lX9^`{wxO|;@fN(yrfk&vr@ zF=ifuU?MzqQ!09!O)m4YB*z+&4n$;IJIO@Gh^E=+>HaXELaU$s?{kiUBSY8?7k z6-jP+mEE8qr%o6Z#-r{|YPiaE_t_dgf{1SHKCRhTH(;{0yTC#yw@j!T8HHg6@w-TCG z5xt%q*w~T#MN)B&V)@@D!2?eB#r9L58xMx`;RL_J6MX1I-fnQ5uRY*te2tEJ^n@+~ zCh(**lD{H(PoI5a`$!szA0kIf6Avf zN3&C{wIFI#Uw#xQS5cz}T5uhb(!`l_0KSs@_=^Y*RMK1@xAB)=702;o_p<||sfrz# z9cai7j6&>~;GNFEHJHE2K~@py;TsKuPW5@(XcvI;Gb!|WzU+Q??Fx-@54F2 z;~{qI;XUuF6}q5PVC&@LWqHOj0;aA?UVKy;;pl7v5C=;xX%r&IgwpoH>koE87xOmr}u;i(>xU$!S#AFKdMEy0RbMzx`2GcFhAY3$D@H zHlBU46k;LjUBN4T*JWW1u3^KdO*XRm8n#T@eCw$C(UjeP&bzLphgVNuQwa%yy4inJ z6DX1*of}3a0E{Ks-lMSfkCHR4-OcTc7DJIPVWlj}~@DyJ$ukh3mxEoXL)i-3i3k}(Z zE@AQwJ+0LY#M9b3PU7p}{aK2p&+fCoa?^tc`^7(hiVORY-+J3weKQaBns*#c`_rt^ z@!Wu{;}Zt3;0~&G^I4)!<_5Px=3(GmAYiOgD6Fwi{T}>0VAI$fE zzUD5;80B<)Iy>7d3{jgTM2s#Z*-;ruzLlDHff4Qpu^S!3wPJpIC1dZ&ftW8gEqyEids_MVE4I?7iKo*n2IizT+lb#fsUc z`YdV04;kch+B;$Ge?>-c!Nj!@1P1u}77>dq4jdXn6ihD0~io{dpf0K=4N- zz2Dz^oksAlNci>r!H4}c!apKu|MkI#-uqwP>>s6({vB2B5_=6)#MR0pAHFIbk`MmQ zs-y>V`7gd+3@LA=tA=7;YVDY^9@73WD{j&V{uPUXp&4JN5&o%O0uJ|dU+I%_C zQg>by4+iF6@eEg?h-|ztnkWRl8b^AfC@sGxS5s5*2m0Rz$A}ec_dLieW#iHoj>{#b zPf-dXX44CcYg{A(Lc zft#3D7yaTq+y7+Ze(cGAj{K$S0}&D6IDtf-@Me7OWo8CMh<_PCp_oLWz(Q|7;k6w{lr2P0G$KB3CId8@wgR4K;QJb(biP7h7@Q&frVr<<>3co^uB`wjTyF|6 z`%O0l23tR3G?*)rQqwU4f{0#@;DvYS#zYdLzBEy!+4SB-7N}Q$`h24C#5uKlnLq<2 z53YZ?`xr#++i*;(zlWin&BeMeo^U(6hxY_uasPpt`7s;68#B=0E+7G_HUS9}OAn*g zE%dnXuxD9lMci4U3;FsamyiACSC4(_+dP1paO5}5Iq@6d!1iS$?MP@rs*c`K=6mvB zDF3x(KDFp9VNa%iM;2VQc&AsN_zIsA#_JRjrV`}dqhN$&_)n$?g^1=s)!GDDF?<(T# zs-L#8B2AAhxO&9gC=tHiu!V_{;HrEj`T(mKtqmIoJhH#f2D3?-f3l1a*c_K^X02D< z`Se1(Y;iMQjV~{AOQYyo33^Nkf5=B{pm1l$M1dxMnnf|2M87EKx3QK{6sWI_Qi*=uK}o0S`wmj3S+#-&jansLE>Wo{QeWp6 zw>|u47*Oiy7hnZ@Ji-u@6uXZ zZ0)QnBeEf@_g11e{-QfKeyWF8@3T>V%9t^_p|@&(@&ZLw7^>UgEy6{KU~~kTStT-% zXb6rf+zEF;_UnL>-POatwS|xUY5&{|qTmrCz>U!nqhCuxxw^{wlk&i)09sL;1&Qiw zXyuIn2g}4ZXcX4KVD@)n^PItd4ek3EzdU$Lr9LFtrs#oI>Xdpw@>=B%^xyOrnZee_ ztFQ!rpe2PLDfk>)47c{#i&~?Gr$)YNm+;hx1$+*R0&=b70a~tAT%oC4D+`D|``NMU zY(OrTkQ{T@7#)eT`*mMzf9n-slFIF+`{F4VaUNb$u2jUaE}Zb6#;<{iU=YFsOFLLe zSS|>aSg|g|XID@qZV?7qGuT~i zgDH|aMnYU9{POePem?y5=QI*Ogx&9({kulbuMXe5*?;xn;E;jp-;vEv?(9Q< zfg*b2OWj&sTK0pld5?TRXqJgQim@0jLloM0e^dQH<>(AMI_H{La8k$za!RxEx1Vwv; z#MHbu0N$iGW;KFloA;(sHD6Y9Bi9hU2*{R+P$uCUC@OGa5=8}HsErjB2ws1;q1L+Y zl3xBzJEcn0TU1IWqE$SKtu)p1$O5&M>0L#7l9kNL++^x$LhUqEPOmhYScS!Zgmf$M zWHWq0^YD1@U&V|9e!b87L-?vQbgo~-pxzTMsHQIqAlOT z`p>pN_!`&c&R`ogo71pF{YF90TPV+HhuE4uDXX}BMn3lN-tu3Qk5$Cj@BudCWJZLI zqZtNrFt`?BZ+=F#vUnOkw4uj;nAlG87L&KT@l#9$uV*5wV2NJF5DtIg9fXy!hKHAu zUz;^}bvA~=rh&Fb=s@7-QP!UfF6x9F1FDKK7=VH+xK0`!O$v~{^_bz?DU%I;oahQ^2pyV2^H!0l$RvNnvJg zD};W3&ck}B_zv{8A=hD`wVEUXedg?`rZbGV$B!-hT%r{FLchD{WDK{Bror{GQsT(Ll+L zjrAnE8kad6&zplG>qdT-tGBX#PQ60IXA`M^8Oy$^rK~#NkX=alT86;}P*nnh*$_Vi ztw%kj_QZT5Hgr(MClEJNd#Q#RpvEwL%ME+MKUcm~B z;9pr(Tro%DN95n6)#hY>cBtX5WE5&*pd(dm+C)c; zRdXX9Ucm2P$2SO}9nd>qcjW^QPdxrO0cr^&2nMOuFi}PMron0{ckl+wt!GHp5iR_& zasBT^9Sh8mmqz)pAAI8RM+i<)7v$w^@G)~39!6vg8JDt=0i!e{>)^Z?Pcld@e?&QA z@_}u}28bSi)UuM3t}Kp*5AD}@cxsscEo1uE$n5VcIGgknnyNiOhYcIzFMWqLamub} zl_32)w~Lo=vP-JvL^n#k#+vVys!UT;V6j$hi(t8gmop3&rE2T;GXpJ|_<2QB5ye}& zwoQclsD@CE)Ub9^#0jHK_8I@{R+|~sOEUM1k`mm1BD?IMgJRCZyR5H#-0^$62#FV7 z=qec_;MaoNX_k(t@oV{}f0~U#ZYt=0?Zw=5)BaPqARNa#kRi6?AN9MQpdOyieMQ#t%M~MxZ13u7bi;pEnpFm&L#!oO zpu)g^@-0i~pWD~sK};)<|AV-{uC=8Y2;$a*4@_gH9tiHP_h5H@>peU+cU|uf&q}^( zc=7(=BclrO2h8?or4eV`lOF}jRYV^5KucyL5-S*tfT(6F0!Y1l#jlVa!*aXHmR*@S z&strPCZs^oj?+w!n}ZBEr{O3$FZz?4U*5le@uXsx%GsqS>nJ}j*qBXx$bRaV7tRY@ zS?qUT^5Kyuac?p(Z@dpmwvAh9n6fuIA5Ze>h1pOMx5gQ9K~g^MEhcGY99!TE2}z0~ zh^(Zkq_N1PiZoR%*qVeT6$cGst}6N^E=)B|H+EvGiqyNqH^kbdgxY2z?N?Av5hsU# z@*%8R)=i(nsxTV$k~pEwRk4QEOHORnt{C)EmCI6%yZ*b|>))5|@b69QJ3O*#W1GrSbsZix ztO+(It1jHDmZ}X()Tl^eRxp%HBT_+ zDS{kbjEu;J3?sMB6a2HWHe?w^h*t*!LPTL5JoY~I^HKkFlp#0EGrv6jg%lxwO>`il z(T3<$G#3g5cr7b&#zA`Tbdne-?moV?Szn&ywV*s@c5wofVOP4{sB{+)}dUX=Urj!P{)nIK}RSRM|}25Z78 zbJvCNY~|0R{wQSoW_*60O}xSz&k9iw&y6Jk@XyYO##O%L*DLYubzTg|*GL5H7}#ow z9{{a@76M}@gAOc#1mRsY!|ZgnOj{7%LE{r)cuqYjA>nNOs}j!PX$j_k%}h%45|7Rf z5s-#ZM5L2CSCjE{43AAaJBEgRUyJ?8`RtNmE#-56emWhrLKAts=$tY# zLmcr=gL$bXKpVe*SQvxK&u*&uK)4k($)jiDM$GrYj4GhBFk6ftD8y+;zc&&Bu_VY^6!j-ol#btPcL>hHu5;oAaiYE zspI@a%%7c%O^@e)^I|p{#XEvf1Be5|3u{`@CZQjJ%<8G=0LA6oHFa*oo%7-OSfjm| z_U|H_%e% zUCZ(*t9|V>TLUy};|XbHvIf0~Hk>-+9obY(eJMX3h^Lf)ZQ4NnTZ1RJ13ir0Tcqo* z8i1@|t9AlJ*InOAuG#4D->435K*9HxLzN$7#eYsaR!m6M+Q{&;EAIRAB?}h zeG?crnG;!%)uSe%M4=zp8VTT6S&ZWJXsTh6?B@HNdoPw{U)9c411mk(8%_Av0#`=c&1Uoqz zjjyxe+nk+wq4tdNPSBFT6#z7NG9FI>JTLw`zk(l=Y;ZH+ojc7g`k!*P3cJxoJ{)F6 zl<@g{+2^?B$B&co?5Z1yMn#EewH(m?Z=bJ!e$9vH*|fyovdYfJ@A^eHV!5>ITeRz{ zH?Ni%1JP|J&1d1>4D%95co@|V&#cJ*F+)t3tg8HK#H92QQcqR@iuX8tMklsuCni99 zuC>#q8f{^e`lP1XO+9Yj&dt{U*iC4Y$);q*K21@$ZH^fl=jyI-nIM;#UDmlSEK$-HiWY@laca0;YxG&^O}IXlw1Z4Xs;D1FW6!F)o0ZTw)) zBv-ZyGEvKG1F9W&>k#pSL968#UDVnbW>Z)j2>fCEX51g{6~jGs=B}?HsckGdeaEpm z>S|-@0CmRG$&J)}${fjha2t2jQx(XBc7u{&Rn^^!%yzsOfU!;+#1SH%sX^q*-3X5! zYu6WycO$vZ7-6s_2q@OLIV0$Qs^pSnCkbGoO)(0GyxB4Qlr{f? zOKy!bce>h1yZcS4xjdQ&D0;2WJF-Hy!VsU`{P1 z^v__s3KD{k0MD4{E|#I~mJ|3fMC={mUSIB`OfgIb6THpRv}uSD9lE)5{@*hI{!9V> z%r>N)um1`(9fWE}kJ%~YYBW2~i?kLe8)hzNGyvT?*|FCd69?bj4D)e2#-CW}D?G24 zZQg_!bX0A`7V~~y{U@Bam>CC|0Rb1cG8+dX0s)qnRUHR@0sFVq9S1E5e+gg5eKw4p09#P}!&RqaP6FqLThfU6d?0Rt`LGC&6>yY?A>)}nxQr>dR}bw^M%OjW zMwvL9BnEC{#1UNK=BUlvA{au?$ax2RfJ102BbxPp#a&*qm+q`7njEvUO%Hn(#UZAN z+lbR|xxH+LioKE>iz?a|e{iKec53fY5bkJlb9{TySv@=leb%tuvmGZKG7-l}NQQy+ zncn(Ze(r0zwa>`vLkNCQ#tsK(`=9f2TGpcKl=<({6S_*{ey7`Ur$GHQ{}zrey&L4) z@g#en4On+ST=Yr%(W0HdOOeMqnc{Qqf^KZ`%ic8SLH?w!ybg|$e{h){h_S9O5PzSl z5=*qlKW~h6;)uKC7T?NWHZ}N!8Bj|}aBBniKy%$x26N1I0$jX816=Utyu3lGR45gh zN=4KNJY0|%oTdgB6t6(FAE<4>O>2h78Sq^3Cv1P+$K#I43FK-k` z5`nYI3F@sA3L6LZe>Gra!Kvh`KmdU@r*0>9R8oN5>e+3^aed=d#ej9|LLI~rk~D7I zc|oG&aa3N1bhA>(?Fm%E^1HISmpATcCV&LpkrF8fP8wtZU;+|3oK5&$hJ04)jto5} zt$QYi&);~GpXVs!80R5n6>+XssdQI{Uy>~!fPyu(A@#)Ve|W${3x%@*UjZ@uw5`Hk zji2K@$cz!%TH{h~CgFZ&wSM7Lnr4WtQzV-GGq{dmrS)9L+W$1~;YuvO2*kY$hWKWw3Cz5*br>f6 z6B5l_6jo~_mXHbp_+y3sfn^6uzLahO-Qot>%;zCDe}YogWOxS*b<`YotD!K;p@Nnr zhE)=oRZzWR7FDVhp{xqk2xctdF=d&75tZ&?oT9c*$L6DU^y&NvFMLAn@kpm<<6?@& zGJdQcN0H`Mj6S|@$>yh<31@QgVO`M*!r4@I`g{+QL4OAm;q*x)vu`Tz>|lNTd+8bh zH!mvve|T+$I&M3tq!H$L4qU#=-`psij)di_k`z+yF$xO>fICUFWXksrRcJLsxO`K+ zWosMTboA9xhw@(8c)2i%1gw9CIf{wS;VG2}U`IG8_9mxejbS2ONhKgt2+e>Y1ag^C z&(HMY9lRJxO$h3AmkkecKJF(Ld#2~}o$juxf0}z(P^hV61rRu*^;G2@=O^*4tU&zT zV6|>gh#lpP!KlzV5sLEMCr^QAzruUw!y!>BIz3WCR*}5~IZ9m>3FM$vv~I7cN$yLw zu)$bVwI!BgCba#ViQfY(2t@o<>yqeI>$wf2z#f}(L*x;W&ux2EPhs_$vnjIV)r0&D zf9)HVLd)92Av;i#S9wSzfI^*0QH(*-DC}ba6w-$seN>grl_iZEAze(`i@g zzd(bUrw;}-4+b^=+6FaO;M8ARxZo#PwcwAiH4A2oh;tYhVDBn-W7Nr<$bzhne@Q2y z90Q*J#pXV}gP{o3{!=!(GD7P;wz47@I$VtfD8~6msRngsA@t8Cl=HN{y^Ij=$dasl>%`4^2fZdL&soHR7z`#)EHHM?}J}akyK?8NT zQX+~-((8=---Y*CM#kQ&H{j8Wf22rnx5SGDB)=Pv@acOrzaUM3J6DAZi8BjkOesEm~kDuX*-y4j|qZu-4=jA;% zew!pa! zpQ^G*9^CqClhKV%e=}xle76l{4oavPN&>%u6l{pDzpINKlo*tA7ohN$2J6cDbrK>I z9*5waH+dNBc7@Fp8yyZU-@)QT&Ikf_$QYp=9;zwYiYRifKM}8Jtqts0kIPBQep4QX zytf@>r*Ly^PKu;If2#^Xb*&b^CSCJqH?Em8R-6^|DP~olpywlT|Ay)?{!5Zcp!VfQ zp4W5dfuHC>Ul?!b9T3@ePAPsES>;X;iy}4oQv56*F(FcO57AD!EJ;^o=o-e^)~k_A zhbB{1cP;Q=#2{V)pWO3fWB3{H^fnI_&Zuo@`eqmBAFvzeh?5s+-dr$@7gHsjv z`gAZ{$d_=zR$wc=61fsLo^WwPnROd7uDm$fu?9Qg+kd?$zMdKHI9S#*|!l z&99LM%hNM-6&3;)#D(Kqg#^bvG*I4_40R$MFbYdR8V?+v8qG;j&Giea9i=)1Ck=u- z|NGJ5&mFXVw09UX;NoU7cktsY%~ zucd7ADIa8eSGlPaG`49RMRZdQW|yGsVhMp`!Mhm__ce*$8{29$9c?5J#U+?ifv1>s*=dBtds zOUmo=3*s4ypM3VU-hJN|gh5+HOr@~%?mu)3Q}SEnO2^CD5FIlc9x`C#FZa=T-H;aT=$HFKDNFz(f745`HXo2T z0Y()vq?s>o%HvsBslD@A?gbaF48=nwHX?eSF#>aZTmKFTyc)iuc+A*>$)@>fIY_*3 z&9*pk{rKjC*p^_D!#R7-K8Po{>x$ zMXILs@?8)Ry8Q=R-xjXF7Si&nN7meHipQ;Vo9o5`e9p@@3|^-QFgO!zC5>-t*p7S? zGSmqUBPyrkD=zcFJC(b$BMZ+mi>_j%r23A$gv10CQJ5?ef7&2Aq9Dx0u_|+-B@E?0 zUSur-Z4g@;aSro~-Y4;QivOZts+9kp&!cm=YJexmn9u>G6#>A#j!_Mhl~GE8QxwGi zi*$(qL`9}{tw)AoFq^=;74VrlL%k?Rz{upIxZp9sfpr53i_t6F74;?STNM*0SY(Lv zartyS*_%$2fBd`{Pck$YE0b|Cy5T>?Gb|I&u?o=4&CBF#MFWaw35kBkU?k3BmNq}^ zY$SfG=y(I|gPo0=YFDeJe@km0h{fZ?$y-m|&d%pnC8`wS7%~xLfSSi;aIjLW^m;ow zhZv{%K*!5-3%6RK2H0r1BX^aGu`}d`C{A?mfi;UHDn?1uS&Ofm0WVrRu1ZS}YAOhz$rZ7l)fp`BKa{a;6v%Jle5K z{8Hrqm}TJYrEO+$(-hE9JL&kk{5a&<;3NiQR^^NcqS$v5#&fli6e}VyLae7v3%ALT zv!mow>{9Yx9xs;kT$f{`k1CPVLpd8@qXeR2Yx~; zm|Sm`3@tzk#pW3i%!=|NKbx9)#8kI@Hv@qyf4yDEn_4Vp-1iGvNxDrBO%^&&#}T#} zfQY)Kf((I*Ha0d69<(l{Ny@i8;59ioxa&^|8#f`_VwSgrS3GAjE)P@)HyLCo#WX?t zy?nT1jLxwHJK;BzPS-fbBv1&K8QRsGWy9OAMR?w8SP>aZK*BZLGIy}YC&nFYatY?SOhHAZfoba`ag=o$^-G#O>X*|G3~&!Tw8?u$DiGFg`XR>UY?5J?X3)82XBZNK z(IXvQMP+24Lm+eLTrfUoQ&v5X#+o)jy(_c3=IHHkF;pWn*(5tL=p1{)O+uwCGjH8c z-Aa6eLg!2KSzmy6aZa^HMp|as7tTBmf1QdKXO%Lh2t6l?)gk<=L5f@_=3rqjjS@Q) zn)Qi(nicgyi%(l7c$f-a#(uzEa1xk(quTGh1Mz4JF2S4{OfD%$v`2O^uu$70=KkX1 zL+fA{ek z&Jz!foy@3pHADx2o+WBc8XrhgUGQh3rFST#qG)%)1I#V|KMio#r6aizR$R6sMGu^? ziBUWToqTu(jFymVfdjuie81n@d-dVq@aHHw)^I0a8<2!$2#H1G3vUBb4aY=Y73$k` zr=S9&CD)j%Ur(uLIZLtBb(?eQe-Puq?W8E~4MDDA!O(VXMBQ$*p&G~c?q!k0#xX{I zn9oxdYWoe0=b63>6pM%0&tfvyed*!DS28tHHI~s45IG9?B%5oh^O9(U@vA8`c{gQD z64XNAgh-+`Hy%r>E#9F(??iwd9VjwUt%w&Dqhb%oT^a|Wu+ic`QW6%Nf1H=;-el6h z>6}f*mwHg*PC3d4S$j+NN;Db@1e;1C!=_X=O~~-_6A@U%iP*2Vb_zyfQnRanazb^= zdoM?&lSI=W3Ta13vx3g2-x5pW5xDxkNMFO7#AjGgmD_+Jn3m%PBOs?Pgxz)4 zNE7xE3oqBf3AV0-9g=A(Df_OLEv?CFZW^51^LsVfyoa|M>>4N}TDiNL-tZE>yU5Gz za_qk`q=pzaCT*FKcv``cb^{ljOWl>g(=*Qza;XX6Sla3ZlGk{{f5X?>p=Jf{7wt2y zyl!0PP;1%DY=ZE^vEY*jfsk8^vPJm!%aOi2Rab9h(4-)Tk5^=xx(7|_@0#!w;gdum zqXBK2!8JTKDM^LNNcAr2-}D{v$D?UfPjsp9O!i=TkW?ZYa=J3MqWIa_*0(>XpO2kN zkHxO6M^$Je)~X%^TC6PSs|4Kt@)&$FBC_9L zg3u+|yoAk*Fm2H;CFRmJP4AQ?`rpC0my;1bgRl`PX7#u)ZSJ@~$-eP+T6vQcP)dD& zoS$^y4G{FS)e_+p*J-X1i%|qi9ZDgCF`SA+?~clL1~1WBf7}ce*beJ{Ti5KrcUR?t zBB?r~@j&l>5!!bEv&83+or>oGsq0WDNmYY9p!(I%pHQ3JYVp5>NhPOzgs=C~e&;%a zm-6h4B?*=tI27&5%+2KbWqPVUPc`hR3oB2c41JnjzuevIUhjR+{%&<2ZJ`RqcMx96 zAYNN(-p3;Te-1$|ji8l@wnk-8+i3Rw{K4$~!R-CP?EU^`?@l1KTH9@>M8JgGfrE#W zK09kqEH}TowX~CT3Q*5wMLu=Aa>b>cTt$u2390_MNUAW)_->}x28^WqO6X^K+${MO z-_|1pzp;>gbW;p0#Dgj{%dl~G!tU$_6?yNARrB6Ie*&k3C1*QdBqt};SPLdZ)3(D! zNxD|L;ZKW@E9{}@KubH_;r^v|UK_#>BpKLj96S zR|*8~IUxp%S#Vdm6+1jTW85-rTL6Nu@JB6C{Aerwix&doMn>8z*qi(^pQaU%an}S@ zH+=6{Cv$j6aF(A#I32um=}3PwqFZkcjz08$K774@)O)x8zV~kL$9;IKv%R^gT7Xl0 zgvnoJdhGKk>Pg#(9{(jeNxUTUDVu=Ku|#GptN2fm2-`rYS}$?nvxWF1c9s}hU6Uz< zHiZ{mxWv!}xFGuqhib0lu&fv=L_0F7tr2fbgteEbKnJ8O@wL?mEqe7!$|Oc}77S7p zabaoTFA?yV|Mu`eQPBZh$|KN%Z8e1mx2|H)mv})3#{mtOKtcyFf2(0Whkvz$Sm{O& zm?z2{P2Af{`w}TusBZ%`nlbGXzr=2C+-(v@1RAeCn$-j+j41n?7h^sqs$`rv&LDN3YS7W_RJMuds9#Rg7-%fKDtjtsxw`IS z_&kXh;fCTV0Z2AV%w3E%`>}`}-aE~~TFctzKtvAVl(E2*e~9aXqBse`LXcAK_#5`B zB-+~Eu7K8YO%pS`x!85ZxJbwGZTCuv;Xi58nkWgB6@_KURN-V)`Wk(&eCA+)xX;t7 zFjhaXvETnZ&5Ba)33U9mDSK+-mPJcdw&W6pE`h6?)vkTm%A7yLQy~Hfiy8nE{e_YET*?K!t`)t`O!9{Z^#pr7u z1REhyaK0{k5b7cVuLSZSi&NXnMOk1`)5#1NjtwGkCsr&2g5A@OIN^=hwTMn5C(QH= z9aB95{Y?~iWq-K>A-WvqYwW*Ai24!hUfu^?+QJwLbP)#|uyi7>#sU(_NcaE~h{%;f zqJHaxe?hw7#LJ@(nwdP6Wpn=kQM3c#pcX;sU6K5D|HEGI*S!y~e(JqE{P0uM1t?GE z`~AJwQCAdZ+m8$J>ZiS*f80NkHA0kTHIDGBcMZpAm_!~sD+!F@q=a!XhwgMd{&?A+ zd_+xxM$3J9h&)Oj0n`%o(Rel;L|Gw>T766x77!FB>wL9VWb z&}%uulC-tPCdOU=sd_CNomR`hba{iVkeC*#G4i0Lp+y$ION{ggi4c1c(U_=pjZ&J+ zA$;~3Hp~)6zm7>k_u1Cdq=}bo&%Jf`*^{lL`3-XSIXcV^I?`4b@ZA^Bo_IWH|MkJZ zf8@cG_`#I;pXNbZLsg@e{qvCQw@m1pN`Z!Cl6vhicM820dnVHD1HT zh0^=%3Y53fvjsjA)4}sZ@+sPI>k#1Qf1~lK>ccwekc5Zxt@e$4`Z}NJue^NEPyIUS zDl6dTL;HLK=4v#FB_54ulR>5;o1>`DukYZMwG78$3;{cHUyi4l`u?GhZu|@@Bb@$s z#M%fo^b9vQieAE0#87~4ooEN%s1vhj0U~luj75QpGe0dWEt;pjJH**%HkGVKf7xOg zb#OJE9=M>YE@4xn#sGA378)_yM%6OTQd{CDF3cAeZJMq;?M4%OXFE$eQ*bg;C#9m! z^Qt;6pRdc{6$~rzM7}S#0o&Qv*?58xyCLwF?_MrMamKwIk0c<38(o$30DeSQcKi5* zlLFq|NMNnK+KJ>9554YTEJ$vJf6AeRnCkgl_0GzX^~h^rxO2u8i_TR@&GyZiZI#0M z>WB8)uy7oVzu+>e6IHn-^F1FnC91^#49>F{y=d5s7Tw8hKXjx;eEIyf@X; z*g5NelyS1)C$;iW)2V^;Vt7#OO-{#cv!Xoe}?-sRP058 zn9&0;8Q;(oZ|9kMknb)*z4A=2TS=e-G%_K$g^rPJ|3rAyH}`m6kT3+NeDx29;vRQE zAR{YZ;asE|mdwu%&lD~T(DtCM0M(0TPcL~nyN|-Kg8Sgto}@?I*dU?}hBRKz!}j9j z_EVR$p~VtmvKESdj3IWsf7NS;Hl=b?jJt^}pQsp?-o9ve3NVzGJRv>9GFbp?K$O4Y zouA`vz^<2iGGJF{S@A{~cf!!RO9dzHsI3m*E&>SCCuC z6J?x*{6|`MY1^Uu@Hgc+0_Fkwc~G2<@p4-9ThH>@cvcL>eYj|gN($7R^?&dtlWPHz zTO*~*wN^Y*F<`?m%kYD7Y|=YPlS_57H2AKpL8#N~c@3jiAlZd>q~cPJ>0~kSFO_?7 zqv{3Yaa9s#6llvwHlJN58k3o)a5Da6^ngeKk^)?xRi)S-M)n$5H4Un+kEQt~xu}P{RVt<=Ylk+fAuW2nf z93rm;b5R)-Y#Fnl+l6Ts6zZF6+2mgc+{#S05e}-p7B=nvURl-uRkw9Bu09CMBeZ#D zl&Q**poF5CmQqAwQ$9;oh7RHb0!ptxH07`X#6qhrkU zb?Y21@l=l>soxw#fPd$Q71+V{dDJ!)x=WUkp;<^07Yb!@1)#NOMn2_<>$)m_=F&*o zPBmgN54p-t#qO$UoE_gq95pzqD5A{SaJu5XqKrBnfv(hxWl zz!9lba~0_?Jxo=^>nRu7ZL9?%Z9uE}f*4hwpF-}FiTfucu76pNC6}do+TFH@QHXbs zyXcdZ?{^AcY#_vAga9!rN+=?9QYYNJ()0v$dl*{PFX$UwLdU|!wJ_bqpfv*vSX&ZlJ9Q2%4F0m&5a9ETOPG` zH+^n5GrC2!3hVd;+_lOIbghZ(3#Q|BrhEhf%Z!hS$M2dvaCY*N>vbRsK)kD7kZ`g- z1yPxuUlMkhS$1X| z*X_+sVIB?kq@)=_+nJ1w9nJ0sLA3*Uem&Y)ZRjqHP#~BfN`+6_J)dJ?Lb7hxcEg$v zC=7d97k{x-AKa^El8L0DSKLHjws!^|9f$Y2F-fw|c{yc_DD|=jB9^wL870^)@iJ^P zlRxRZ4*OAur^$l2O@5AtYlV>LgLM>FOI0X=PZB1wQ@t{3)dNhm!k+ncKEc-ymL)Sh z5JYXYM&59w;FT1Xff#!0X}Wyfj5&zP-D+gJ)PFIR4~%FgP!ZRiBlYa4{8nqJ8R6K1 zbD+@TBvfmTK%EbuTq$fGI(aAZOW;2Db5C$qG5P#FTHuXK!#Nbb*4GQTPHOW8wpxX$ z;&T$X&JT?%^UEF@GlQu;yuUbLG~EC?{yycE;Y$U&9*m2TB1RQp#kliuuOWs4Basx& zB7YTua_+-g;Av~l1i;`kKM8;@Q@IvhCbe4f*Sh;|qrobYrQuw%npfK^%)-wl}?M8#_<9EIyJ0IEMn#1A0{C{Fi zK^=cQQNp{?N|phe2$u03ZnVCJ-dS)tU0qr%tP#-n9(;)Ab7g>MUg?jTEpbTT!#`V>&B>R#zb&pcU0Fs6E&Z2`q#Fg0 z!^2|a#9WzX7&jF!@O`+Q5h2|74D3Tvr=*50P**&sM9B|K;#pb5l{yi0>YS= zEKmn00W6nPPzNa#iCeQzp^p&>Y>p`zvjXcnK9M1Nmyu8hL;~Lam)B4SX@8@uWLZc< zG_}?Gv+*4ZxvBjPI@LVJcc#%rJ{)F6bn=ZA7Cn=3#3Fvjc>;Pak%+#MAea|8p|q0c zbNNML2%62JU!W%eM?zLohd=+f?Mq_p=|&p0hD<_n3!RT5*4nPb75+aC^p!g=^1&qhOYZq@iF z1|GStK|-;c22P(u!yv1!RhxHd70!KPAmOu9LChA$5HVvWG9Lbu`%JnuXe2L65FC&r z@}zczWE~~9P*+zHc7kEi2~P1iT4P?g7X-@$u(6(c{_|py1>U@}{C{r~&y(Tqi|5Z9 zdm;ee1J5@fd=E4ZZb5@9y05BL#5nP&T7_Y(d{Zr zKEw^Q$SFo@?9Qmyvr_3f&E%B(@UuoF5TF#Vh5vpzVs&(^*rbaj&_sr%A~Nc|TWW_$ z4MlC11$tD6uJOdd_S?!V5eeX~{s6282R|_6_p>6colVf&)9^9dl&0C^D7naBv6pN`!x5jgl~JZj+nY@<#*_T_ zK7Zc!GV4#W$$wh3!N3+t8(KG?)473*h8YTiyVoTX1KTunJ`Xwfg%f>D`pKV5zdiW* z;OOAPK0a9%O*)SL{s<@J(c8SpS?Me~aeA%`#tHX6B`bb6$<8t+sH3e~AD)p3Cm8H^ z8V1^7ebSD|cBA^_=2%TjSNvUgToN<6x`cOkex{m8hz=aM9ioIpRkkrp#8Ng_G}iep z{b*bG<8H4p>#~b30*=cATS|;lwujw`M@u9sJ0qWI1@{K}z@e6$sW-*gUA@X4vsLzJO9m$3PiNU2d?sFh;f={AAEpiy zg{B9jtTdRp_blkT=~T2@Uvf;i=g_Je%tqdEEr2Dx0>Ttjn(grNqLJL}2M;UC zK#YcC_|F8-<*jO-m(z4Ov#Z7#hQ`a{(Ong`4e>lV5bs*P$5A2 zxPLRVb1HwsxZF%g>=A1fgur1rk1d4Uu+U0`;HyRgq1hNz+o&=FAri*@2W2u7EYtxN z7Wa3}rudSH7kGVvsw>!*Vs&#t)Y@RL#!o?@niqZPNKfFgSRw4hm7f=F&j2R3W3~v< zvmL*FCRj{rlW^chb3E*i;F7$qi~3>*8t;QIsV^_D}ws=$r)0?7e+fLG`M9Oi-Nf~!$JMTe*8YJV~7 zuD93yB`_PNf)mVoh+qU9JQXf}twt#!8er9+Og2-yek9cm-bKf6%q~)QzHOPGNw+v+ z13Z+0=Jsy9>l?zmG_K=+L;Pv<&BpX%;~TiW*wMLg|98)7BX6}h2kNWU(!X8qFdOl( ziyqF@;n{fqRf{4{s`-KsKjx)PIe$hN1Gi>S`G>^;%fA1BS_t_bWF>+SZ6w%xQ1+=m zYKLL;mP4*eD_o*P2j|5YBv^jI3gH?oqnvK6tV0qb>68wYW2ZFloPTO)1qw=M z(gvvNoV)MpdL1j~=K5f5H>@?5^`pwo6m2>E3Zo{Lk9kdV`Kk5;c@L_qa_nb4gPGpu zL(O5N*@!Lbi^(+slZmC3@2Wsvj&@(&uk8dhmCM8iDxH2DV!+G6kWHx|nFO(^X-4Pr!(v+*FQKKv6PH;8Z zrbVO!zp8-<*zBT5DK;1=gDagCS~$+<{>(GV0qiov70On;NM8Rqx*Td)g>L6liRmjUfQ7tQAL&G=FKRDVD~N>Ms^tHfzQ zt(%l8uZ;yqd>nbXNISq}!QIk82b%LQLnAsbdFG1A|1ryCc%{$iefAr<5B=r%-x#S! z1Biz9%?5!6@&7UZ?s0$ij^k!|oW|ePT^qZYWpr0VnnlyAeDB1G{s(mvuFh}7g zMH^UBJZjW&>+iU6e->_}#DK~uv10j=kg3k%fjq8}6NP!Ody$vpSqCQp5SI&D2Ok1| zgO@B?2P=QcjzHDsycWY8-e+jkn&W?u!AP{vzT0e|k~KJUvqo%u!&bowSzsbLg5hLi z(OqQ=#M0#zbfOLDA}n6F`fq};-^4+dWW`(a-o9_+254B*TDAhazQk_8tbni5EZy&_6UxbbAOlz&~i|1fU$IYSG$2OY9Z9SO9H8zXGSuw1(Fa@+I_#{!fj1TD)Xs90hnj7Sj)Dr*g@I~|E#s#3dWJ+jr^tVXFuNQzpD%GBCdcizm`H6{C;QUL%LAYp z@C2ew9wzLZI^nVoFA+&O1hn!xn@JECe0VHyCRx9PyJKFV{Df^7z48lc@;T<;cah+Yk z>#4z>xF3WUJUkpFl<)96!4pQ;KS_UdU4!j9q?6A_>cj%HpgcS$cM!0na8ySQV0B;QsuUQgc#o!`Kt|%)xK&V>WbHZi!^d^58K%mJg z+g3PXwjSuIwfl#=3&GxrkvD{Xzty`v z{8O=K7-h`{RF^#Dp+hU)28yjuFkWsO#Zq3-JO8k~r zUWNcyRw2YK$dKwntuuwcighTYG^!818gs>%{AJsZ1Vm)?nkB4%?ohN{BY#6sI6qdK z-WoK-SEL=1&BHa%BxyFN(tvIIr2TL`ns9qCaRh^PGH6;pSQDqk9;bgoQjbBS&B_Mr z0NMoAupmxSi*;maTE23AdYL$_k+GuFmENIj+jA7$tQ%7~bJB5+-cH+13N|1P*mY

H+I@jkaEA>Ew2P&}7LU|FL704`Yo+UetB5Yd& z_-!(j$rq9Msu0s-d^LY=joP~F4xm@=??E^u?e-Z1>Vf5V;u_i=+2537ui5FVi_`~t z{2L!uC2>I$5!~v1?R7d9BBP2fkYq$o4_0-JAtf=i2jf828u;z=m9%c81rBj8%9Py6 zgo+E$NLrcO`kz~TC2hAxINUG0o>~|9KeDO%^|&&(nI@Mj2fKgIwzlduxI_!reevum zs%EzzRI`m$vtRJp?iYNiO!TKjA^VXgR)*&$2 zSN*|7riwPz_QJT?Cn9T9v_530^avJ+9BHXH`BNUTnuS9RJ}!COLQ+0_@1S>W?D#r7<&gUV3&3xS(^|Z#<8{aWAFfShB z@=ddTtxMymXJ_1z6k8#%kZ_07AIcAxcfn!*BnqzK2j5uKRU{xF9)k#na0?r4z(QzG z?h9DUbESWo1xmK!`6Fu|6}vc~X&hkpq9hGTcxEjAg4bL2|Y$;)YobSe9D@RT()3qOPhA{5J- zyE`y^{z7#ahw&L zE1@@BB@GN&69z)E1wUdS)jI1z=AuO>kLMqZqbKS%4S091c!oSvYs3BLJNl2w(Q0<28DZ(0B|Xw|0(nFA>Wm_LuM!;oX_$eNtC`cSTf)( z{ad43D&f2a%B0S@Lv28({W5$0w8#C*wPhVbyMWi)mw3RiueNiZ&e#b5(NT&DQ?P%x zxZbVR%&u-E5AVHZ9ML+cQiiaXgN&UU+sz!u#EeT##j%Jtj%~Ynk;pb%T^WCrm-GT4 z6@U44yN77Rpj6ox%Gs55Rv9lyn4slCpB=$hH8yyn1sTmn2yjPiGap<4>h~Nj`3KlR zd!WT2aN|!jmX>l8mf&Na3e!b)>JfkSb^sJs?J1-SRS z1w&f?yYpc@h42dE3rmB09ki@au2_}E1zuUKNoNPD`Io}AnnnTsnB+8C={}b#P=~VT z;9qw!=cqrA?K!qMArT50hxe=&3yYq1qZ6P|8r-i&ry}o-o^&B09<+Eh1ss1haf*@T z^2cw|O$G=rT%oTpT8_CRjs|Z_KtxVRS7tw}OXS^eus`t)R=qm@4tUraz zMBPCBTZ1R?ZcGki_f~&6R+a;h6|>81g8p~bx6l;||Gg=mh0R3XCcKfPRkcMckTZ#@ z4$pSIsowEcZD6#7jqUa5$m;7a?N!;m0wW%m#Wfi523>g-rs2N$br^D|e0uYCT)+y} z@=lL5;#O0q1)oqby;?0O?&a1whkEabtfDckp#y74gevB$D0qKjcf=_fBb)LNWVS1r zl0#tR&+%-koXXUf6xIj2;B|jeuye=Tynq8|qf$LlCepU$T({3li#s9<@e}oEfh}N} zxV0%?C5+D*Vwt>2-YW3jMkS$7&{Rm2kt$uBf9RJV-_MFdxR!KA5?PLu`d#{b^Dl10 zh#?he?KT7-2XlW7d#q#2o{*KnDR8QL`La`P28* z&wA7j=iN{pMx_-^B$W4to!rMTy4AP-ELJkUd$0ZApHj72;F zccg~RMIAoy%EJzj!)ExlR6I;`g|=z3yWdt$yk^zjsehuUe!Xt$O+wa<^2q?E^pzJT zx$xnFlDrP^dVH73w=mp+1S|{<2;oTsLI`0Elf#oLa`4LmmDBE&(Aw}%=mH#$_4so> zU*~^moy+WU+-m9HonczsS;?+?&xNbk(1rKHL8D= z9K&BP%#p!Hi}4gLt|Q6JI2sYkJ4$YOFR&3^ja#pkqr4bo?t$;|^UZ`zLDy~eqO$+i z^b^NIxpp_Oh9`%!(Re(;bXIA+5nUG127LXW=bIZ*8C6Sc_T;+!=nlgqX1=zEjQe)Y4BbpRYjq8&fp@{xbeGLhhH?b^LV!C6t?P&NN_)vEbF%7X;(BhQWD zeb(wKw;ixfR{+ZHTBUTH5bFyK-Z{XCFEn4qpw~AO7<672$v$U;84sy4MNg7uC{y_Z zjlM*LRen{Aw_ua=GQ}Xqlr6zKey$)@2hn6ZMo(YmRiC~Q2dvUxKnJ`qp(B5O1;-Bj zS1M*DNhY_{qDeB`?XiYB&QDHuw1FMw0{#<-Xfe8x;bIf$Lrg~moM_!?G)M>AO$Q|~ z5_cI2By9gU#KeK+PW6y2d_zWu=X7>*N7ynF^mcDRN`@woBv`BC#{w=2Bs1w zg@_aSl?reof=I+z4V^RJC8dALtmj?GjGq0gG9&sn$H$IHeuyE_S2&VDNLuG2``o)6 zJ~LwIdBE5qV6@F(+cXipU_xOdk#&6=pc$e>68T?@QWul*cQ|ny_@6&*+zbZ$rJBJ? zHEss@Klwt<`SgfZ-~<%~*1RBqCkjGxm3>%{vdZwZRbIr8a->aM$;Z8i*3# zR#+7*vGGxc&dwd(-VUk|SaC|2&0Qws}y^1O$M4v8#C{QL^+|YUzmb zw0&rr2Ly^DENqv8Z3iQNMQ8tNzYFLbInLoGd)ZGsTBr^v)5>Q7T}y92pTVD>e%d|1 z%V7?G{1LwXu-z4(&pJC>4fxpF+xh9IpALWgaVI^`;aekFFYoMccXtnVI)~fhGH-VG z;d}dF|4{Vvrq0?CgIwhtNIv+pVSn?^o+QPiK`-wK_;Z9*T{?SuACx6V-ZXeiCj4y@94XM3kpV=((Xn4R7I_AX##jiDUiP&)hj z?e_NWPN&YQ9P+Ak4iR;Bb~^ht#?oo?V0OCgz3m#~=yc?&93HlJ+R(3VjiGe9G!~fO zz4rFrLAMTuZS!Du+AzPJcBjrzcI3M3wqZ59-NSaB@$Axnc!1^D+uh#X?jFX5^Zva% zoO7`Y&Ft;&AMWjT+Og3<341hvF^7oBdxyL2&fa!6HX116j0X4Ej@aAThV8%KiLMP4 zvBv^S*@Yu`dmr}Y{&u@tV<@{clzpI+u!|2nHHLx+b11eCU>t44Th@+cn}^al z*x%mUKHTfn7|H<+r30(JyA7Dxse@nJj9@!3mV?gD-hPeIbZIcV9oR20VKs)bPeXx| z1(5y#C|Ql6;5No(0cHgjbANw(CpMVtYahdQ5GN0R0K;PA0C0O8FkPJvFq^P{clTlZ zQ4E7J!B*J=`m%l4-fr(ANxF=camIouwhbNI-EJT5?(WqXNry(#!2*XsE!#ClvqPf+ z9ftEM$9cr(I_>+c+G+ukQX~XMd;0VA{Mi z+q(yUuqnIUZjHfg^I!max7#_~KddpBJsQjYUb}nPIXJ8_kV9G)81(ku&d$Mpje#H@ z<4AV8orBKq0aB#(IJQeefyLk7fx)zEjHJt}a(D>5%K;n|v9Sz?J|~82e|WIB-3Ce) z8w-@M$AajBC$laVb%`zySs-q26M3OMenM(=nV!9 zy6N=%8g(|^fG+(m>TJ3h_5ES%>;YYz)TQ-I&fIx;^X!i;v+@7paf^jmMg?)YdRIEP zyqHf%jkSQ*$p0%9(VWlFa4HrsDQVb$)ho-ButtT_zRJNhE;svk|9!bRu!a^^{r>&e zRXw=tZ~k|6)z{ZwRrTNdf3L20IQ*J=`+sj--u?F=Ev?!StH$KBcvHWG&payTM!yY5 zn62ZA?QL#00(dPe#~fk6W1?~6!gAIdkdY_7&^7QnISrFozR=lYOIXN18=mKXhrl0o zyE_Maf5!$fhTv4@bbx>Y>vYgPP+25}yM}(mdyG}0SDb!t8JG047+UOhx?7f1GBUEG z$U5m}rdBi9nN%Q4w2E#UTc9JumW>vl^2Q$AJa#ufr(5#Z7u96r^G~oakp4yf1#tRB zVqgY_Bu|vi``mgqycvuB#NZo$eE;|(B;3J|pMLsjyW511K=@CStva9xSUqxl)2SFaj`~+W`P3MGzMbkO=R*wWo0p8J3#=+_Oe=q@!w?Plm0C~- zcNR=n!*n%_jN!UNHsc3>KLEq_!#{pv$3E^;H;uRUd#$FY3 zI|d9Sb_D#>)d#nKLgU8mN|;=`B61e@=lLl1f<8u9F$IO*WzS~$L$=k;{`N3E{@cUj z#@XND=ie6RTWO;KKR#`xKR{Na^+VeD-Pzwh{jCW(#}D5N_CvGahia;}!8NAR6bf^d zCmgkTG!-rKhktKKE8+V!{riVPxktBarfn&c&|Sk=I=b6`+>}FRcXGEk^HKJ;c>nbC z>@4~HW^yiQQ}(ASwe|b1xSlSS`g2=guvGoIBQPqV{@fGD@9EF|m8Pe%S$kpn)A8(P zSuj`N#yVjy85Zej<7;1T%3}DFcVrT+#)~h1G-~$T!EV*mLv^Ge&I(Y^lAQjv?m5?l z5wky`0@?z9y^Wd&@WmFsfH&<&@w318n*VG!51Z$h#(6^3A@_Ga13X5ykb3GYY;kU zusMGCkMAo{0pe*x<53Cvz|je*QSd|$u4@M3_Y)}1VhJ1zg=@dH`-ooHsxtBPH zh_TgNs&Ap*iCU<4&hPFv?9XFc{AjA9JH=0z^yj#j*mnmcBMchM9-jT}^OJTH{@FtY zqko+xj}o{b%B-iD^;Bo|tgI&ommhcs9z0rECtb)o(fxRBWj({JXF6+Ympa5!PgK^Q z?NXTaOlRHLJ>17`?5nK4U13M1{%qH!Qzr>rtm|FA_rI5Ucn329hnKB*2QUIB!xD~j{OAo?Q;KS5Ts!>;Dvp^)>m62?R{-O8h= zZK|^jytH%^Q}i>}F@2udiOtTrd*$^;K}LU|IF8fdKRv8N@8MFqBI5|>l`)0|7Wnf7 z#-ZR_mtU5}#SJ7~EWV5{rz4ny$7-WJP;LB_ciQ{g`#YV3?#{7gnX2+1n(QAs?RE;^ z?XBd&ACoQBU}jgfbFjO=S5gn<*_FI1sid?gZXf;>DGtdd)t+i#fXBTh5dY!TiDQ2T zj5gjfQV_%NtY78)MMfI@b90kKOY%=k&OM5ufi_)LFHZ}bxsVNrjVpzKlj#FaOpc&M z%~U3XM3{~dX(Ge)A3N>iq@8TV^0HVW5J|h*ld#$^0nlH4pl3j`|626s0pu4SQbN(L z8c!$7>)g$Mg=r0-#2O9l>c)wnLTZ1M^pVlOUc=85(Qs>i4tL0fo*>v~=~fiLtLWMv zfdu3Yz!66ha0-Q%P;hGu8u#4Gcrs?4KTQ0C1mzsxWgp7eNDH9!sGRkjE! zJ1zQC6!unBra|meEXHc<%=-q`BWCd6J2O~^87vu=W(+?K`yYxy^Zj%>XnvRRdIuu| zT8sdf7kdXc11>H;mr;8M90M@z)0c322O12%gmfe^t;M7_TU<|z;_d0Xi`Q>Yp1ys0a`E%)lcyJ#;Clx~86sDGb2FMO9Sf6m?RYIjBjGMX zKTyIO>e|@@(^xF8a@u7g~qgjd0r=&2#d<2o_W466Xh8byM3#t-3x9ftdrvvaS%s8>p>YA2_W zygG&6cdHh|6CN1mB_;h9yx@UWVjxOj5ilYZHqpz%62abU{p zGcZs<3NGy$Wl~~t%j=Q=0QzxQd|Hs(J93@)pMUV_yk}AVLl+>4mn&~B0t{7*;pcqV z8~xdeccRjoH$ycq6!XrXI!bgPswa*>)T`X@Wo0jim$_U;EsQZ)jpTAV#nquQGAuU| z6U6mAsHqhLgEIn2as-+)1oq7e#_|?X?)Oio7Ki@=me4W>{~Felf(DvCtjs9s+3khS7!Y-*W15lhNY1HRfBvq{5!m+yzj{N4my5 zk1WyVrc*}%qjFSu3`R&5HJCnNf_fi|w*Y(}94JLm6XuSc46nm=o`rBMvX6wDx_>hc z7KZCJo!~GOQP*oUUc66l;U5!aPIisD0~swWwu;qfHkwx*E;a`ef3R9@(L@ zRqO+-D~?Tb!X)ABFSyA)hx##^VSI{K!Nel13>?7IL|JpDcTRrcZCZyYT!g##s0J~( z-^7KuF`F)y!QL@m=NZSOg1WneoQ2;clffT%cl3ua+3`=WqRJOxY~X$YtbhG*ay6Cy z<|IDnx5@v59mE&O*Qf6iAv>Af;;^xSOgE+T{4TFn_7nmV0E&1av}JQ?KoAY-3)fwe zfl`w5KQKurPhUQL_w?e`=^xEhL4WQs0l_HY>U%Q%GzsENBu|m`LUEfg8nS$`!yx>;UN=PJgt zInAc?r#(9u_n64VSgD{$Jt3-*8Gj4|@B<45fyyoc6x}dGcgC|crH31ikaj&B6jaRV z7KQV*dI^Um{uPVfxR70Rdu$5GY$(xES*i{4Y|2XH@@lLPFZsyA0&#tP)cN8T5I&QX zXRNlG?tG?xSRKsFPk%9;oY>SO^Mhfy#04gI1xLEKP&@(NDAgDNo@fM)jdy`s*BdlZ zRqGkUMcBrs)a_unn2ma0vgB%1d`<-Zdjc0a>TQLt(cXvS#fRDCHuYXzJ*yUcYwJ}9x6GHlT z)dH5Xu?~hG^-!%!dxHVSt7xy7paE^vqVbY_zqz?)JVr=hFxKk4z)G?*qJq?c z3e)L&%m)>HpPjF24iYYJh#q`-O9WldQEAa6UR)IzG0C5eaqsi<0&NMh?RHyCKNj<= z(e%?_v!r*kM1O^Hjhi8*PgfGX2_3EVx!1znqD%Pqr0Dl#I)Z(he7YVki$utELfeO| zv!_1E?g76qr*k;K;DVYZo!RFHaEikk{;p`_e+jS;YgWw2hFbV?^b8LoaeEC%5q@Uo zV8WzR?kRQb6n*Vy$z=Lz-kZS$G0)<2K|pezP~ecvJ%7p3G>v1POUmOjKPn&ZTx00> z@FmPQ3OZ?pA@@QqXaY_AiMa)CU9t{#tfnjA$$uFRme*Lp4IcO-sO|K6`YFS(Sc)xJ z1?1S0{}A7RI}SPCMSiQ8-^?$gVI-sDaK~$*SHgc+A<0!t=G9<9Qw+YI3R+a;m>qQY zgey1A_J8-=!jT6;N>^B-Q25>!j!ZFgzL;Ifq)1oL9Ar{HjL$y%?eFSu-ycW*?|vL1 z+<(4Y&VDH_7t{WSV(C3~aNwa&Dp$XJIAzv6gE+8s{=nEL$Tv;iN7}Wsn@-Eof>lpA z5%5%4PclaKPP7bwP8rA(y)(G*p{%NG36CWRMt}I%Zk!;^&sc>o)TTU+C1#CSD!uBP z45uv-E0C_-_ku{d^0x#1_T)~1{eWP%&zJ0*IoxEIZ;P3Xf-aGF4hahkef332X3$)x zKOfGpZ*Yvsmjpbc+^-jK<2NbOSpl~M`~5%;*@^PSft!G5m`6l@Q!U+7YH%`V3l57d zm4CYuWtG2`okD&w*3eL=$veDB_&wXTm;`0Ql4pb_%owd((=OekD^HoWwtAx#X zYjs36O2{ls13EmQ87@s{OAFno1b#_mIC7Wo%+z&G63McjDp_d7vZ?Fl^WJ1I0$!K6 zb$X1EDS_k!CU*WM67_i}D)!zvKW=CCXMc@}aPdk9WOPv6o&)Y;Zv>~!;7h)tZ7-@z zwZ^@fkvM#WN?Pt*;3eNlfFngW(oW&DkzaRrYg%F_DsE-jx{1$%6eV7cBEm{dlcCrw zfyd?gaa)N6D`I9wMCY}!gs}o+NQlmEyUjr=Rv1(J0rF0|W3PeWI6*?00*QZRw||Zz zs}&_$=lR(;ShVvJ@#_D1{o?0D;J~t5qELEx?(WYt4P7~i{b^B0`W(lVIJvOiD=G=S z7ZSXbB6On^q3cqF?)g!Ox#*L@LECllUc2$f7L6z#9+WJ}^B1S@Ucde8eOIN{a+J-v zdUmNd;~a_G!~6S8J*PVJFFq8-41X06zddCJis^Rscuj$P4JGy8JwF{cc@Vh zNWVWSO6wTdT8RGg>7)OA`rDv+37%imB1oo5YE%p&?_74UYkE?khDg$nKz}WA%0}U> z-@bnR>f+CDP9D8`iVsJaaV7^SIf80@CgJW|&3Bp4DDzc?;$|7oOf4wOKUdlp(M)SW z)5!BP`=1l{WMWVgx)m~UXbllb=Qb=;5`62&Q+vaEIkPk#;10e}%&(N9<8oN9h5l+B zH>~1qt2j-FdgIC5bOY8>&wsOnJ`I=GZ~bY?v6f2O z6XDg4qE(p(4eDhS2E`cAp1-ubhAvTS=s^fQ$L@NrR*kZ=2RE{{1=U-dv(Hs(*z zO!Sp?m$sZa+DFrcjxTQAYPrPCd?X)Y$?*J5Z{8cjSmq1%)$sJ^lYckBEWNw<<>}+o z*H8ZR^qu7`FL_9k=R_nA`_RKARdkAO_ay=kB{6M4%i`=@;5)%v4N325y)W5bu_NYw z>L2IRPtSTJsp_=$1Qi4_SS+$m+or$VB;vc8&)#706uYW4CmIRPULtH>CL$TqGG&R% zm&O12!&PA59TO2m@^`n5`1j3@Ul+Ci0~ieX8du|`JZUDgvl z2?(OHQoH8;ypj>HXKS-6r?gxIO2E+5$r|(W)|MD|wF<@e= zPo}<}4u%%|JTR#907d54#XvkjCz=n2iwA@0r^!Z=u1e2SntzVy&fDXiCndphATh?n zA&nseLKT(^Xt=F%2@X_YsVS9$wF0)X3RuA$$<`xEOPV{iR*|Vsr`Q$=t}|M_;FEhX zqg5ZE?AT?{SB)xs35{ed3FrDJny6GbizkaRS#Gv-K$bQ8o$pU9-=A2%+n-d}pZpdE zB>4M9-*(Hi&VTj*q1V|TAk11D1O%#Whak-kjN0Y`6+>8;a~wA@sJ1V_)*V@RTn_&A zE*Cwu0lVjx7J`+$)d}^R?Na1v3C`L^Tf{49c2cDR?u~9lQ}b@RRz9;5(b;1{~@qivUWlXRdmo`2w2c7I1(N)V6vRPe?KZN@ZNbb>rIML zvSuLh9)HA@m93I_oN(do8p)}Z6gZ)LKQG``l>F}C@ssVHM^Zt~Qp6liP-m)nIRds) zE2U*g`@!xE6*OVo=(;cK>%Jt6V zaYrAvR+*(-I35fi!2g?CCyjOb=-+iJc&;j{8Tm@s%Vi-%rJ7po!a*EG4UMos=PT6H z>VCgOe7{6|zeKDvVh1!WMlS|Z?elptf;N0@uQ9?r91g}!K6#qg1eR3Qu}1qVR)nu0 zY=7Hb`wl|j>n7bV;`aKZ96`=F@m#jA>?uaQ%YR~&S0IW$8{jaW!}Pzz0<3^0pl;&}s6Qel zd)QsFg^i7do+UQ8<>gR5s8xy9%PEX7{RwVG>Aj9P`nQEMvf^2`OxeS=lxNUY{{`5CrOqxr#DOdpa2HgADPG9lFKYVcr}3x=^N>A7cW=pLO9mSjuiXN*_X_R2CfV)?7G$_;?EY}8E_l?K#uoR%3i zb1sYg7FAO;hdh6O*=w`~{@3bmr%6mM4&C3Jkc;FKneYQ8i@35l@=>O<0TSpI{U z{K`nj4xl?7?xt_u>GqH3|MB!QbhJd6wJYY##0dd_L!L%0BI_FdZl{a?B^cbj zKU{vv+5+wY6Ir!OE^HzH2N-r(iz;@SLyvAv_u~+6E(sXXO zg>AizC0`6Occ==T=z@jkEHIkauP4u$KC}f__p(@`ni4Az&`yv}BCK$;yo-NYF50C> z?nEN*7cH$*g?;yI3;P~>fQ_5^tWy_nueZIy@P_2lyov*bu9jk-+fOETL?vyZG$lw4 zG;Y@&wcZCu1gYH~o${@SaXIg#!t~&N!d#!!#qN--KxAFV!tROXa0$6V{FAf&^A)o< zIEQ(C|c=A(5_9M4*3IAM2J`oE%NebI*pxYEr38cqMRxNgr1( zk-A3&!I`9aRH`SF#q?xMQ?~j_F&JVDy<)?0sH##oH$&^K;%bqG4$MBt1~B{V0|rS% zO_8Uvo<`VUy0U-WO~S3=dU`V&=+l?&Lm~qqO&94O*R~GDP<;J@i{0G;Zzf393+{fs z5rNy&?i6&U)$-Km%Q=pMcC@jBVGU`)ve*WqO^Bu`0b}V_iCm?vo)OeF<*rsDhp5q! z6`ZfkLHYwL}WdM(gD6Q$!u8_2DdH#nYTZvyN?BQi-96f5Pf zOA=%Hj)YUjjg+ILzv8oyF<^Koxdn*LAYJ9U8VIRwF$^q?Kl0>yClMSE6~Nh+2~Ktw z$jeXV+_is(x#|xmX#F3WZujk#qt9Y*?eWZd$m3D{nrN_G+r&VXSIEi5`E+w1O4o0@b?M2D10KtWP8BLbDh? zVoR|Fu|t1>?InNy6~pS_aOC$JDSRWrg9MJ{w?2#i&{aeMzNB`Oa?@BFsC?h3hIJoP z%@SV%tMY-we#jY15|ILO$)6rm+%WLc!ngQ5T%du7pd8sNS@_IA6T;ebV{_B~vLVZJ z+zo$*`;(#s-Kt-(KNY5IZtBGAJa^`-g(i@y+qte~g*P-#Os%o-F3>qg%CUsKM0!Y( zM7#fz9L(>vcx&neyjceUh!YG*cY=*>9|QnSed&re2Md( zBgJ!{SnWq)W!fM!q~#+m#}EC4?4Wd7rhIoz27nQz;tH6Qna{^V8}&d^7{og>q% zdzLvrbLSe>Fd+I+jV*qxCP!ms&|6$zPN8*m%fq(?hc&|QyF27iI&I`o4v;}PK>mMZ zhuD+u%AYwgpMH{lHh2B|gw(UO)5LIbGVi^A&+pV$%WzG@G|W_@Qk&qT=o%e&k`y0# zTAp!y=RWx|>5Yf|TK7K-HlYndVx{bsP85x68CTG3@)kZ|#;KSa^bE@MFp#98 z_{<%~L0CfM=PAXC*H?`<{J?F^Pyl~T5;O^bSB)q@oXy3FL>)B?o0)O6j%o?BLh=!o zJ}It-6WXtlT4V_y5c{%_95@gVMv*KGA7U!1y47+p%CLxH@ohY_79_24HM&*TG<*r7 zYBRDfXNixtCil4$jToY&Z4ubq01a~Qidi}BG@Y^rtrAyhDK)cP_l&0#bR(BAl?OC` zdV}$BB2~+jd3HgAPBJITh>9T3(|HK>H6X>=+#1V{YZ-AV_oi zAu*4jFiZU*Yz4rRVXTZgJ_cEIQ(B1*5m=>q%ZrL>w)Q8Ev8h=R^(=dP%}fNNLCN%L z@vXSEPs0*6BF5ZE67C-rvJ(os<(VAZa5dSD&7XC+dRJX?NWBU*ZEemafBJT10fg^Y zR_3}ltkhC{O3+<4oWsSys7&4yW3WOjZ7SxtRJB>%Xs&`Hh)zBiu03ScmYcnk@WatR~3 zm**G7jX>AcN9~QAV5F#T*875kYncfqjYoGiTwJ>XO0CXCBNOHp&aMbW&vOl-T?r}K zw!hW&`))kDp*kE`e}}tUod>Sccq%h{h(bQeKAX_PbMRCCjw}271`}1Y3d=0bq{WoN*aJFkCA3s7u`JCkX)?k`~|;y-b#c= z^=6D$6LzVcq^nr$N}oo#`~DLX7k$*KWC}8L3Mbg}c!rs74ti5tU(ZI=12~6Wk^;jZM`q+^ETG#716Lom@F0 zoAuB;B(@?T*<9Z@A;Km5-LD~k33G_5@Mv!V{4Vp+i?;=;*$+P!E_7wpu@8p{j7Rf5V}dJPIG6j7N8wN66QUIwDpZ zQr}+MT)+*yOZ{B3WzCmu_5dOO4`i^xLRlQBNeo2TZbx)UuP5RB}02a__LvZeo!u zp=t52e-(p`C}P=Kt8@4G2=wU)5I-naIH;Pv#ArNC?{0!tCqk2e>31RsD7HCuVit-h3b;<=MC*C zE1tD9N1xXhMTCJ2+UG|al4|o^2?o8g_(n&x?EyyOr~6fXR51JI5l`LeR`*Okpl zbv2_t<=z!chPCxlwD0*?%z;yt{Ml!R7X)+`a4!l-EEtRio(PXm_j+ z45(~^O#Oz3l=s~WeWlFZrZ|_?aIKbPdf#ZPMU=m(f67}W!z!B-S<+RJk^7&zf9uBY zb8EH&H_E>9afV;0ZS0L`OF@bEH$$vN_V~iGLw}FUZF&xX7nWvlBG3d~c28BZxv74g z$%fC5gB0d#gg>NE!zdgR#!0`DagP55qf@0}g>*&0{fl5ox$c(;8d|JrNL7X{MoRb4 zmZrRT8lOm3ne^=;w4G2KE0tDXe^8@QwFxxJD{7N|lY{OBRRN`aVs%jN1C`2i0;Ciz zuUuObsrRWn!s=$ay0Go{kzqJCI8!Fy%RifXn-_yLHVDZ?+WFx zIzf+~QW}T}(k{Y8qF1f3TG&&18#>i*U&rop$>N$JS`8)0VnpG8*Pn)Y4!0VK^`P zaa^+y3=DM9tJ!JH@r`8)760{WNB3uut)mOe0-VD`f%*O_M>=KvG+!E)h z!jx6R<}!S_1T!M_SnY%FLZ7;(;omP2-!Bor&f8tgiXJ#?ONB|9f5n?;BI80sXX+$v zncpq*9%n=yx_H-?f2hRmXax`19SGDjz8Su|F2)5;pss1VWhVz@Nbh?oNmnDXR8@GN zlS$VQwm2f#eIk_JYMDp2BaEyg>vUIc*iuIh5ouvN+QN23bhv#krt{(Z;iNaRo_lk5 zh_*J)-JO?*JpYlKf0o&BMrM!@BIHx zsdr@Dt{~hW_jl=b9qD!`(hdTX{Hvwgv89eX#0;&^?H6^+f4DEQH5+L5VO~+nk@Q&K zZ4G!MrTs|yW9rq7z%(JU4V9*o$Lg((h1>GW4u4f?;^LiyY;SAkY1ObOc7#YOPg?FP zqW^xVOIT-69yziMV5q&64`Oi6!$e-|VZu4t{TGTbv+Aircf)_Ph!AJ(P2PL9u!pj) zj*_A^o-nGse|yEat1Olnd7nT09(m>a73u%(E7Gs@=>04GiPvz(Z9q=h<8k%1iFCz~ zqnplsvRUQWIw)4<;yM7Xbaov;-`DLmd0axzvKT|z=I4W&1J)KbTm$xQzEqXvCETXd z;!(iNJKeFWLvFLGPjy4esJoeV$t}Ny&6&zPn=vvze}HtROpt2iGMN>#>0fF3*_%6g zI+b|PpL-uwuKeUH*kt)^I2!4;Op@qd!$}6C)p_z;ICGbm&A9gM&3fdwKJTpNqc!V| z(8n=M+i={Qf9X)RaNGwcUG&8E*bme76SYBc?%JxY^`_iLS6j7G!RVz^Lk!%}3o>pKrji^ZBM z`*!7k%3ul*R~xRr$6$===GzJT{`-xRB(Tb72Yct9F|hCRxP;5cLZ>C1zNqD2*1BBG za91`9+Lld;snV5E^9nHb0nGez2vkT}ZEiJmf9c}{&P}T>d`|pT?bC{SzMd&=@<+@S|Be=OG#hOyxYYq?peNh;UK}`au4#f7ONA5*UO|KC2`<2N=ji za#a*vqO-ShuAqFn*7y;LobQz-R%!t1M4*eRoBhg%B^(~YqEree8+WakehFG(xbY~4{DpAN7`vSzPy~8*xPJu z&!coKQta+7mP(E=zm`e>o6;<37i~obpF3`?Ep!G(!xU|*3}QB%dKjqz8k$^2m?im9 zlY9`R*2b~#W~2O!3==aSQYb^+q}fSUF|QIa9ELlXe^a^r;g}AWSCOWoWQ9VX-yg+? z^ww#E9Y4^BK6(TBxJp+wc}LHzG2A*LiU3XQEnN!!MVN4(D@~bwv^{y*;e+aC5XW7jI&z{G!ZA*}!-w zDeYp9tr~B%7=mgy2e9+bO4VlBTP69p0*?V z5rH&w?Z<2wRbWcyuvUb_X?6ch=C$t;R`(yUzRg;X*WA-{qqFi4xl#(K?cN*BY zY9Vz*D;|;}vB6cnw_L&vM$cL!bqo1He}~FTc}YPLIE;of`Tk44VM$?Z(=RGk4Vkee zI0&VhcCI54AUv93Jupp{l@WZ|GFU$!z6X--T35;Yi(ccE^Ee``PC^aI;-(L018~*l zx~KNs$Ngye?OJPocb9YyyGY*nem5$5b1U1kfAKn3AS>#0jh^34@gwUuT2D#;e}=6| z@8j@&4@g)GcFz)h!?Z~50i06us@G4_;}VBpot>Q|%}O)36Kg?vtgLs}2;9iovu6FS zH4liW9)OK=a*)s#hO5`jltVg(_&UB!o8bW$yXf9}vgYxqSc zp6EXAm~<%e^^V8&2`Fw+WFmzkZNTNLETMgg$`$^3XbmOEbiw88OhofyCD3)z9Ow7+ zdiu$()5&n0#AQ*+>^pzADX7-F8ABaI3MX&D=tPW6;`sl@Z%TaC`|PJf5{gR(uO}nN z(-iMxC2z7LE4L*=C5PQVe^>$AJ3Ff~UtuzcFs*}qcFEc;3{pNGOK9z3CrN{?$;BUN z{SSTwZDL-6S{*i_!7lzAdbA>Dx%*8-RN}r2B%wB{p}!l>BF}v#Y#wFG1uhXJ2=y#l zQiaT3%Te~%0WcQDJ5kH|G;Uea&8A=F=OzP^#SR8{UJKb-mA#Bue+Vw8fzLqsAuT>u zNB*OL3^;0~$Tc|j3f3A2VMW2o;T@AkDHH#R@$kkM_q^z}#_r>3aya_yXvb;P6D_=2h zblTTm+vAe->>e#><)0dqUeev|{~5Y_IvmeN#WNH{7ms@bv$8dbhj4d|u#OJYH&=nlh_v?d8(m3tjK2h!MKxypkvnE>a z{JUD&{09l|(1rdfw1sv;1?)2gYY3$VcKxOq5}%WKMspei+A&)_)qv@w?-KcRSvdP@E%>*EV5lf`SxvOz@wv`Z1ue{^Lf>pK;eQ49KXJX?Mt<~zQu zZhjIkR^EXKu&M&+TyOMfHbZNdpjj(3i4<7VpaqE&C*Sk@2UdIPDg9vplav>)nDlr7 zU6rNJ5$S`Ki>(h#%q~0lmsL(eP?W2OcDT~g(&b%`!@Cu+FT}DAaI~&SiCT>+7l&4o zvb%jXfBZb0ls4-?B^5Q)>V{Lot?bc4`{5|-OHYF&Wo2vi!hl0HH_PGZ<^2VkgEqA0?~+UzAL4KXT!gv>n=6%#_vz6iz9kbFq*I=kN;UDtJV{jFZCq}StL<&#TqbhSy5 z-~__Ja;T)Tj`H@)%Rq%M=+QNl;o9km2Up&d4Q2N>I>4lkf1k489IJ0+|HLx#GL4Ec zj(m}wRn4WU{oH<#Co8RT1M!%>mV6**KBC$jogtqM=XgJy6!pMQDMDm@_;=UC`8~iT z0bB>n&+O~W^UE}fEt4m-A(QGw;!4egN?7Qzs+6S~jRq-G`dJ;h8dqjnQff1rWfvej zFw5rWs2D8@f9gKw^Xo<|tVl3j8f}luv;66Flz`L> z5GU2J-Sj#B^M;zfu(L7Kr8PF?ma5R232_LW=EZsQmnp9YnJRK1s*LeNqxx?cX!mWL zyLuD%qpFTrFXtgNUW^{%x+8l*g?}$WUJft$m+Y?xL>!<%8@XaoVne>5c<7-TbwK&a zv_DMQ$n)}37{6+OUe#O&UK!SIU0uPr&U!2`JOJb=&M7(h3YmD2!5zC#>> zBVMkOwrzO&_U-GpiMUVQX`|RCAxMP$c#s^hPNe!%`2GR*NeUp9_nx31-Bp+yeBPwQ}y&cu8ml zBePWVtYnaXwhS|L;Y8BH3#)B=2~~!jroFG~O!+PR1$F^Ux+O`yP{v51jKY)-MHM=P zgO*sZp!LEI6sN>87mhqfC^?BrSKk8No|D#{ibWy6tAb7RdlQt-=nVc8!vzL7&@Ipx z66p!)cPRA@E1ra#VL+7%M*ymIJFu5Tg@J^f8QO(^@2AoMsfeXE`S!uHcf4&0gpRve zC*4Y#$Qdq@a|%bzbUV4hi`r64f&?b33UDCvjHXmJ$=iyPST8+VB_L z>@`Nx1xQzATwePaNxt|MA_M|>l|dr*2QE=lNFsM3qoL&v`at=A{@t@@&#b5%G1J1V zvlk72p4aFc9Eu0(pVSK6u|NC#U>kjAu=j)QZRKGDeuZu{RxE#CH=i-7JGs5aQ8lp& z^JnE`T>zm&4x{(4! zggNaOjfa1G`0%|*E)rPGuslWO!;%+(`rgxj#R&c;=(>S4u!t4qo?t5|b$T@%7mYMF z1gdrn*%zi?ri2nN4_J)e8)++g$MK9KM!KHTY;8D)!gEe+_%+$mU@uSHR!3rNqX%-f zH+{^8_(=!wX)ztaQGtQr7qcG9dB|af+ETX9ouTyjk~mK4M>&X#^qxt3mHkz$}-eSvo$DGrN;-uo!^Q-(73CVtxyqGB&tdVh;Uu#3} z7#RgIO2Kn?u0=iQ3GGwEd|Ky*t9IY|`Sr=ui#Kmy|L2R7r*B1>?!2#eZ%LI})`@nX zy7i?jrqiD~gH@9j4mf=Aub5zZX!rFy<&A?yRN~wCvbW@Gne|&(GQP}z`c2aOgWtx9 z%`JO5HAgM64bs8s#L^+iW060G3wn|)2Ed%#5sf)G0lmC&g-0@2HQ)+6U~RZQDY-q~ zoneb4!Fg4Tr>@UatMy|8v$>f7!5q()O?pTz=m}G0wvdC`+%(_n-B?{3$~1f0BC5iZ zg*5?}vC&Sm_&hj+rW?+G^m0+mKNgLIZd3C11-KBdK(qi)SrVNKp`m-jEK{ETX;ukba0xt<0zak3|>j1zw1 zE7Yjh&;n0K#M{u;E|Sp#$N7b=3Zi;>#Hkm9F;gn{Nb{&ajbboH`IF?$=}w<&SIQSm z!U06n<30nTx!B}AlFOjMR9w_=r%{*CSq(U^B6{RLc@8=n^s|mr&6vt81?R*{-}HhQ zWVY^Ct4t+&#;6Q`g%G=v6sHQ#lj76GjGQy`+m!2&8fAn_puv|nFrx|9)+Asr%$1%E zxyhAs2S+*c`o?kyG-0d=rzTZ-zQM3UO|^S>w?en7%NxgwzrmYl<12da1np4A&dfyq zxL<8Tu4X>#%@@TBxJXk~3@r0#EvL)gC<;V52!fNj$j{Dy#RO(bz0%=B=5Ttm(BA;` z%XB{AzRJB|c_BV7NpB?E+a2K1%RR-be8IxnA%=!xZuVmOTAypTKLdGj6 z{Vg?&Eeta~+-eMg&6TrtoIH4luL{^a#V|{?-)`=Rik;eF5nn@3(bq*swL+cx61#58 z-bM}5&~K}M6>oN=Xe<`w`?~lzpH4Wsv3YCim{9_sP0ReR?ekWRK1(Gy-D!p3Ib($D za+_RWHoK%|QY&)aaNzh29|Yph8u8wRZ$txwQb_RC0q>m1b?B|$@+rQz@*>ySQ_SQ~ zO_Swm-SZ$y(p2eCHy+}hDF7ozZPofpRxdl~?%q#-Y5uVN{o?Rl@9w+a-Tz{}yWjNo zIg4AoaC(KSC(Mr7yvTx@Tt}>5##7wv5qlTTa9tDCQ>t@{R4LXufMv>cz6;lTDcCuM z9mTS@>ak>KN0}$)9Zm^mkOLjAffaxcf9ux}s7>oX*=a}i2jD56Q*heLhK}w0#@TtA zB{2GbQUGi-jmPD|VVs>G$zrW>Z)Rcu4bxi<#GEEp1oR!BJ)H(L7~V1A;4hoM65TkO zfUZ4ba0uUwwQg9qCBN;N?DA9&3U2&0KOsH()caxp!aPxEp9*Y~pn?62*dleERie8z z+z=5bEcLc-%S$K4E2RZhICh9`4#iu^aaituLXc8E&(&PDC1Wa}_Ltilpo<3bvSdZX z!oW4~^yc!K+&gjA{M%RGFsf2rttz$G!T*v_8R~b>9^ro+;pG=rb=qyWSF*u{6Y!@# zQ%Gn8gYZIl4~D(wVho7i#0Uz>ec~#s8lMne;qfv$o%JS}#52j{NIuw_m{l-!nr3`| z&2Sh!>2%`tgp=99Fz$d_&z0I2E_!exFCra{Id$@k(_8prp+kYoG~g9qO*u9Ol{i-A zsI$lmoZz|KDYk#m*JG9_q-pDFJ{|u&{nSY1bjfXvZ?u4XTvL#vaqsIFi6=wWtPS;L z_@9qnAS4Nfm~o0YavUNIn2^rd$8h_rZ=BMm*j4LSPN$#g6o{g_&dDq_1v zYlRcXYUgP=4g&WfU1v3O=mq83jN%fbDnwsls0wdO%XRBhg`y&&)Z@=T^2uE zjWyQx;mDVFy$47c%d;|<#)-zxK29)QeCq*3lt{N)Tz&5$}og1@^svdG+$o z%i(Cz`U~2har>u014p!{rMktsRt;5`v^-EPwP~%j9QPs7CB^PdoTallg|Q++H>yG} z1~CISH|yC(EN(7I_!57OJ6O-Y!YUUq5@Z82BFFdWw{Y~}Bks>W+G0>*neAyTWt3aJ)goetsg~?(A!}Nlsj-ii@@Zk}DaFFd76Gtr=L< z4=PHo)0xiEq4Ix7QCbIk*}-}YEUBtvP0Yqvk>A?Wc69{I-!cSdiQCQ>fKhN+D17=g zl<5F+^7<8VcD@TwqABdg=p``0NCkBZ)0KOelFNWLZtTU#cDI=MaA7V}D}RD_+1 zHY=Bdc(cb}$|O-P6ghS*wfc;)cX2CRfP8_QaMBx<%L8RE0pH}k{AFw`N?wOF{i*c? z5?L9`^*etHH8~_z6wH#qMXhyxphqQ!wLaXlQuAIP^0eI2*9U!9YV>O$pZ6vM>A;|* zmo~>8U5o#a8X9t}&!)5;8!*Y>4;2TK+qo6tA!FXXC5{ALD-=Ik!!P&`kqul0J~Z=TBe!@%g)p z*FQhKc=_Vzr`c{>$fS3_yr!hnY=2ukdHLeWpDy10_07|Z(-*JaynG6`S|Y-Uoptj1 z&yO){KrSm1@#fLnr$4{Dc=r0`$Lo(3x7%gpZiC*G z5#@j0PCuE-FrX1WFIplW5^@?XA^MbHe3?9UzUcl**V9Z@X5Bjjd=G7NO8}{1>kMoK zGcG%=I;q|Mxc=BQTC=V#YVAj}S#qX)*WpCmOosn;Qy8s1l<~gm&5pcuGN7T(ZnOhQ ztQNCnUa6Im#9ZD0?jt!Z22v2QkOEp~P%K^E11B1y_=u~fFyxi1j-G4I^n@h|~_j5MHg z&UPzyiZEtHF_+=%jF1qYP1@$B`R$k({nQDw<|MejAjOg-mBRAjJWqOyesc5`eQ|#* zpI&3NCqt-tbF-nV&GY=*ReYQPBKDJvYG!dd4TcQ5)c(^cY`R9D7rdH@(E4LI6S&~o z9`Cq3E3-7-QW32m#w$ID3Ha&AWFuo<1gl|cy|-g`3kG*ohkH$#lUptk=>xFImh3dn;Ps`p_)m# z)zBIIq9Nh&o>_y(Z_|&AackvJLq1_oO(#(Lntesx*uPak{Y|}@^?N14SK`Pq&`5<( zmo_*36!(Q8U9FUIu|8>@&8OohywTo_ZWe5*O5CC$g`BO6h@}Q%A|e6Et2=*;ZLTdE z?Tn|Bfl5YXeOz2k=S9BJG1i`}EpE;^K5Wm7M3p@5s8cETyLHw+7jXHl0Pqte^=@|1 z4%1S=KRXx09N3#5W8HFOz|eQCVH?cC=B8aMtGdT(JR6>~ZLFxuMM`ST`fSptw(IV-i^_M7V=P3u3g^eY z&-`66oMuN1C;d64RuTQUf%j?#7IB9s}*zz{i z54t3#(Lini7J9L{>PytOto^L)zQqat;-GumUEsogW{Y~5F%cHn;nqG4~_ zc=i6QbmW-PSiH2+aCjZ`HLJJ0KG@uHOkiLw;)_Bx`E*oxRp8=O%=5b9h(ypXbPbA| z-M4UA2Y`Uh2oPHx+IA)T1=zKF99~B*$qVl1ma&|r!R6QHj^{j1$$h96duLwLfwS6G zokJHZ)wtNH77HYwU{Iv|R*8QpGkMQ*H6vnTYLK7a3tga|+Bt8F#SBn&_>pix1=8eM!fAb6ydO^3mgn`=72rnR#c?3qeKlZXKBl}q zmy^32i`#rjN2Vcrb{H-9SQSPMGqTD@-UU{osH?^r#n5t)QUon6630(xsKPBw=vlcQ zSvQ7Pfph~9N>^NpZuWomy>t+po9tkVb#~Pw^%Hk9pt`HD=FWQZG}__#MYQi@Z*<&{ zHv|&%tJFpeG!?N_LY*`#X>uc0M5#^sHOZbVkjlILK&%kaCbZrrhKo~^^2hmbV5v%b zd`ci|!&|pK>0x9>Id|6Ut9oIINz|mW<+wMwfs=}!rrs1q42rE!acF~tDDZgpzy`X+Z;DRnjbVQZ7%8^6~w-x#LSlSCO zKk9IGy))G+$EoU#)N+%GZQsM0syjZM{^O{tQmXf&Hy9X)cK&3?ot1JylpBBix}p(p zrzI1NVMkpbuJwO=?G>rlU$4-8dJ22$0!a!k-;1lCr%OgW-z*>&AN?qLw8RJlA0y73 zyatY;k?H$3!fgpYI4 z{cH*wj0uYxo4nY7LYusxGe>2lN%Scguv(W~JtOLcLf>(pboSZ#Q7zg;CP)RnHrkcT zw^OS|&$E93s+D-9=ozzb0y2p{;-=eebfo?iom+oJO*9@&_Vb`rbcq@a}ep_8E~QVAcj804|3D%%H)H&9_BB5kJC#q@vHaoVTQH>k&3JvysWkAJyek0OOj z`?Z|De{X3bmOEN@FRJ$aFpQFjZ@#Xaszj5=X&y_(ZUS1kXg8`7@k+{@*9a4JNG2n# zZSj+VL%5lf#AT zqvU_?Vm++0R^^V))B;GKtghOJq1O>w$Rx%>UrTq|4FzXq$YOVQ^w-jBb61tGFQ^h? z`2p{y(zACrHiu<7&Pum+4Qtj~*A`uEJTu8z-YZA{)b?L(7!42Sow#|{sE7ZQTZV5A z6uYzdxZVl3yl9}4^jr#Xd0V-1;iF2qE(?F@C1$WeEF8+wjs}SEQSf$GCCy2LCki(k zNc-uB3^bSrMxfRcB92(TAmWrX%jCJu|482m0;&&th%{{asTknG8;gH)YHA&@YA+Jn^X{%;EidoXp5!VGE#4?;h4p+T z0kg59r5?D5c$+CCjl5nOlb*$qDz|!<+PJ$Cm6yUSxFrCQMAvN*8Du*ugKWDp$oBb> zdr|bBdeZP&#)Hu1=|oajY_?pHcXqcxUIq=f$)SF&@wydUp{2Zt%mbo22*-aFiV0an z_0!@3@Qf0XSEa~v({WiwR`!r}`c*WH~&h`T$fssecW4z|Sf zX4&w$=4$DK;Yrx*fW*hJIH3F9FdA�qmm%X&JvX8pa+{z&*hP1u+H6O2oitl;{GbJo2!f~ zf@dy^`yDN87g36uZEivaspf=vE%)8|2~XkN_z*{wIbpj{OP@ zgj|iLfH@lAAvMl(fZXvz?CnZ?gD#Phx4ZWRgc&4%G_20<6cQ3 zB4R$6`9^)^6lWpK$pJ(87K>0qa__MSWi`}*X_Q66(lSPLM#O)wgP~(8<)}z+NtM7C zp~16J?|p6_iAvk3a(-nIj2#`UDu^%|7Z3^8T~?V+SheFUM=U?FUFnl3j|4vTWN|(T z+bOj(!MjY{eU~iA&S2h6ks%3PcOkdt9(=VN7?#o@h3EXT97Xj=)>n}n4$b*hB2EO9bsO6m>OFtT#}$b*>sVV8shVm=o(~!k)t~!3D7%aS2m8&eDC)&WQX-;oQ?!rL zTPb7?$;#%YhPQiScg+Pbk6m#KNzT)HFclm^l*o0+u9a1f%$U?Ro%v6=RaW;-*g#nW zGeMi1w77~TDg$E?8R7sLy$;+Y{a1IVXxl65 ze9@&+P0`EVBBV&(jlV>By3%Ul+(r+FY<_KBsp&M<6MI1-D!uC+SJAO}myH-lPi;~3 z8$RXqcU}oCJ`NW{`1@>*Qu$lh&Y8*7GcnsLBbpDp;*y==mltE?^JE3h@)}XMp*Mmv z=5^2Wt%x**N5yxA$6`cRNth!5#)Au*-!G=_AIAMl`Wb~f@{CGm~- zRf?;v?k@RuTnR^E=^2G>85HQE2Yre=^hYK-THZ=>E6-jEgF0keC1I73dRSJ9vSd>x zmsU==g~)T9_6KZvETJ4Y@koeFdFB zYnmRBQI|$w43IT@ZpGOe4)P$!U|g6-9>R{|OYuho2IDl9tc7k22d2%GT}#XTMJiBc zXW6}kZ3X4@CL&0)SM;x7!%!Vf4ttX5JwV0ph1l)YzwN5CDPNpSeeI@KQBXM3(?EZ^ zKk=Iz-)nLFz$^)6oT|k^b-si@^{8M_zyQb+#=}~?fXgtB9n zyWz@>X=aJ$3My=wxlN_3X61{`LzZ%PpxP~UfGVm&PLf}~!|1^n1DOUJrQuJF>%8x{ zI@=zXjX&zC9Q{er;jo~!&)X{6q)LCrn;54^9@yaz$POIxwzmFV$-bj0?Rhjj_NhY^ zFvr_;+;y1)wh7l-++huxYhR`SSj?VGXJ6t^k%CnQAGpQON*g+t0C7N$zo)cm zDOPPgg6R1~)`-nhfDr;~R1$YS?A7J!RhW7`F4q#GkexUz4l%0{&X&07J(hJWuSpDl z6}3B|`v7ON?pVp2rrpAktw>K6@>V8X$ZX0~Ut}Q}Ym!7!hayS~mXmZTFWw8xETm4> zd&URl&f&e~k<>|BIA4S@b^;YpNk_8D7~;W1swOL-+Zk8H^n*{-XzB*_uFnHJX`pZjO{fJ6z4rV9XInhl9siF z)jT;VD$%obgz};Ot+6U|H2nfKN9AaMnKbm~#1DB}+QqwCwl=!`WvZsXZOxBew`yl+QVn$8IrcDuxh~ZtdUEtXJy`@6f z59g^j)umK8vgb=T@j*x1o;}Kc+3za*d&@7G zN0E+mACV*E{+Ip;pXYU1nfo}B+vJ*i$l&Ly3g-63rA~Zo66eJtCumqw0yyqu8!~~v zo1Lt!cpqeYpu{o!Kf{vT0uU5JQ=l!QX}>ojWg{4`?4`+0S6Pkuq5&Yil2a2QUm6jR zE+^uWpf77eW5WW6DwH0O56rjbGrnGzem?3o#yTY{%$o9ta>X~N z7`kyzh{&|Ps|>AiE`_!eEFi2u5$5Ms_1u1=sU0rt(M65Qy&=gn*J>dBb!&n6>Ycm(ERT^+eWiGvnfAWiCdJLcf=A_d^wzD2`ei(k9;bW11pgxTQ-T72F}OHgZUI= zO~ApNCH})67hI+2W3YSl+pYY!T5@|TE97)>B*6I`3I`Pc{N^`91fYjoTPs_$cfd}6 zdLwx$+}sR*2UG>micc7@L(&1Y6f+%h%&>r8K_>$xv-+;}Eppm0y(xX0GJ(&mP3k`$ zSV1XGmplhE_-ywMV|(Hi)|!}g+f2gI^_EeiEv}IH%@P?9rCw-JdNzy&7ghc8RK*uX zZ{ELtTP$G6gZNVtUI2jH(TsPvkz2Tx5FtnnGBsN&5!>|LSZZ;o|d-E?8 zXLRyzdegst*PEAq*9Rwm^x>tEyOfWn3!~vj9Taf>axr zJY7g0vnJXq;%`5HpK=bbq`eiy{kK9#Z3XIPvNG(5+wn9O+go2>4)}pnt7uZ(NtDy* z@V$7Z`mwbiSaG)#*V~uekVvMyI*~p&vCB1Z1xiP2q2nLnnrfqB;MmwRbx8%3Pw_it z{Gp}G*)bt@**%ZDGY{-EndY@zLRUQGfBhSNz32Ptm;0lCf1iuRvg#c0105Td)w(%o zbp+*=FT9H>$9J~j9|v#e{0krufZ9au2jgfIwJ1w0f{Q{{b&CMP#RIX(SIw&}zlO=V zviFZ2fc3a6!*RuJB2IEdGdU@iki#=#v`RRfmD2=TIJsLUQtw7vIz}Jbfs5_kqO6QV zcdk&sQ!0voFixOj>w-fDQA$-%tz&sxLb-x11yt^1=`5Nq9Q$`Bs_VSd@>?5lwLBw* zj)ANLbmXD?=F?ym| z&}waFE}=aS+X01Se@X)+R_8a&$kqf(M5TZ9>twL4Trts$;jOomeO>X8OIS0fG+qPz z^AcKpWWG&fYXJgRUHG!|YX;=Cr*>rdgMnu#5qqF1V`sE5ww9E`XIzAKKlG}Y+&EWp zOki7oPSnGOQ<1zdWJx=*Vpz!|M}CTcIbASUDi0c$2NE{pNcO1c6oP3^>wy6@g_{&`e zSb##mRXIy>@0GY9`pYnvj-vEpR=^40IuO^>`S71OFS05!8eo~y^}4xT3AY>Srk34a z(%aNqI16tUSqHtaq2OiD6wuF?vH$}dtg2*#bjQ?FW7B0c&q|Mq&*&6L^Y@mujDVYe z%gqR|iy?9ka+Q)hd!kGtxdBoDD^U!RjU4^wPp=-Z=ci--lf@w5UUh|DN3Wu}Y!fam z*RxxEMZ8T~t%o;om3b(IXbYH<#m%^wzZ!lX!ZrS&yDJcei19<08e{IB_z#mEQ;SES z1E}I*R3A9W_7AXuhc*|8iF=snfbFY)6fF+N)I&_Qo-iQoa2wO!`RyF;I?2q{WBQ&j zx90z!y?6g=BS{j4f8W0XYG=8sbs_D84>x2eAGi2Pxs8_^bA&IM!qv6BO>E*mkZp)zmf=j_B{utbNn179QadzfR$vZ z5;&`)>5Yce2^Pe7h>uNfiUo74?GraMX`pBq2>~Q{>Ll?a>cf9G_3=*K1O-v3LlmXk zFJ3Iq6EUIbnQ`+$p>XA1PUIer@1r|GH-J)$XiT4h!5}N%Az**Kv#07<6TF+~A-EL4 zx|E;F>BZl)qapEoV?+F5RqTs@&-7j%mQ;K!@x^ce?@~b0k>mvK)V}Ow3$`X?KezLv zI0=;M^-KB{fR&;{(-6&aoS@HAlZTz*E41D#T@X^Z0>=!nfT|_Euc-#h`H9sh2_X2C zFCc+H4-Z^2V6;uMFPax+Ca@uy&Y6Hc--GOp4YHEas$gZ^P!=#CRE6+=GLK27W_OA=OodE0Xf< zfplFW?lg*QF}>~cX(tc1gV0QS-t`2uR4|F4!F+O;MSFU&2BoV-R7oG#0I7w2Ni>+0 zCF%2my{(QTtH|qqbeRcyn2aU|_#6IgM$aJVtFs4Mx)=yQAsxDZ5+&9Ut@v0a8AfY% zUB-lL0;qeV9X78}E)d9lv1s9(C|$y`x>#UwrL!@Fpq86=w^8aOjWCX_HBYcvK4qIw zqnOs(Mg#>%nhmJks1L%vbIfr6N}X+q0&vL_z`wNkq@kT#!UgzR#xW^R3;@h+hgS@( z@wzTOv4fO4v@P6!gD6LzD{(Z8<6rE+Vi64nhwo1hJ`4uYGEP~O6>ll{T7k&Su(s-# zq|NcKe%e{BlhW{TOy&nm9c5gAfqTrb$R5u;9$xjRgJY4_Vp5t7=-t6^2B&BOLz#jS9>@ZgO*eITV1QNko2P=}yCr^mxdHb(yj_w>Kf7cp)5<@d0r*^EW$ zaTj>0-sB5^9R)ysqdPWx-pvZdzISzL`$g;Bilvt8U+!}G4A8nz?}@8;PYc&gk3t}i zV)a{n4Zi)!+e#|r*?y}yLczONqqGvB@Vli?5*t>XCIGc`h~itj_|gVH8kF(cSG4ms z^^HE5<%ch-U7OgU;3TSHNdm=%#%I69+Nwa|4k_P%2DM!ZGyaT(4pHkZ1`sC|rR(Gd z#KnjBoOHL-NkTk88cIxXaFVff_($Xew;zWO1bq2sHvITe@!~Mu$pARnH}BtA%o}pI zB2h3civ9uM)9KypGV9-8fD{a>;-2F$P^(lP7FbhigO9|GBQ|0XSc&LIr=Ror@W=yR1y4%h#rt71)E5SQ=@8@Wo> zY+gZYDpWP5z5D5~eLNKG94Ub5$yDw=<9lx~RPfEwyY^KsP{GkVv=G(>0#jL6VwwDZ z{Y`c&*gq|&yjBhsEd;U~QPph<1-oM#bKfrDK=a&9rdrIAOZ9*ugM<*X%egF1g@b>WZ!{G44 z!Mng+r>{ql@&FMoCxoij8+^5@rTaR6w`!;_j$0fuPD48eZ}L+K28oSCg$mfZl0JdS zxsS93mp`;_g6RaUg@{Kf5fpw6W@p@P__{$!!0Q?y6t+oM^Y~oi6Y^@r{51_zmW^W4 zOUlKuOp|r;>g1gW8rw>LB>`Lp>qpPc26IBvh&;30D}FrhclPrCB3_*w0Orqso&rImdQAO&Ik-JJJIAx^Q$D>b zY9@#;I*y~N92>t?ZjZOuS6zaCpzfx+z8cAXc=uVu^0!~QVySx^W6JhTihq}|lR3@q zM~@^;4qcTcRksmIMOG_VSKHf~EU$ETxsKueqZz(}*-4W7%_OX(oKkV)SzFlhp8*G3 z%gsW~_{ru3tu(#*GT4zAN&a!d{7234(&q@iD-gW}4 z9yK4B6ykX~6uj(~=axTzD3_Pv6$bkNO>$)k4rD1&IB?~i;ZULwN`FAR9UM$LFWFMt zKx9NNWO@A-SghZu`D3{IULJZEznQ}J>j#RrDa$*Vb;PKnB9h#|0uYSv0 z2~U~$$cs*6Aui~8C#m;C(CF=_#Ec{Ou-o9(z4<#X-iX@TV)*%I_Pr2lK{O8RssT^jdg-i@4kDM(wsc%m(T7uph* zA*fXAKX8SAb#LROypD2etF(xyj=xAUvXSfW*-+)pSZ|lMmkO6`HTt?PWHo`T!QzKg zc2djNkap!W8l>!2q1TixV^HWQtr>$N$I(p{@rX~y+RH4(lx{|B+6syf)Tu0^F+DFT z{`xq?4`CUaR?-gxF#b^I0!_~22354Ing z4#ifN@Qv0h>nQWjRO-Q_yZut!YywfR`GZ?|Q>uO{w@vbSrit4o#lDd9rlitkP}3W| ziOobqTLrwMzk9l)f0sKNjrjR}g$Zy^;g9nB39|*5Rz=gA`m8c9GYXX`Z^Q#d;YrZ! zfYQrGTvjSL4vh| zn4y=J3OJ-fjL*cHscW4{S3MHrpEnNV?Zxqb7KeXwG{MNG)UK!--Iksun~%aoIwepZj=bTg{;VC8no%qGcBxD11j=>8_3{6coF z5Nms^hY%>i#&>@U)X?N3`EJ`?#@q{koVC`Tx__o`UJ7Lh!yQrt4pgJW{q_iR5WYSt zw2YK`5$p!C6tRb8A(Y0`+I{hWX?-h@X}X&PCV9olBq#Pv=|JN&>EGTANMbOVOkWA8 zuc{>Yt=KkwVzi%*79Fnr7RMLWYf$PojL(tT4vym9g~ahahE@B9B++ehO}q<#^u}VN zxd--d{MN(kWJ8ZBB+8QJNjf_NpgJV5>rwC(1enT z+|3)5z$=eVDI_cwYNzktg9Q8|z9YOQx16(&7sFO}XDeAVe>&}693`Kx!6*3b@KPX% z$@KGVcpEL#`%voAnqq!!Ce5dR`*?Z_owf0j=(9|Z5}lxAEqRHc=dVs1ucFgpQR@f&AC2Ik-{^VIAS|SGnHs!1b8cz*RnZ(ie_SapMOht zJH14+iQ;Rg(sw}60-sz0nBOP>*nJWJJP82)RRsV?~O zwFEzfDr-jD$*Vg|46*g)+-S5GC6B_HDO+Ccrr+im`M&d*N6SsQ$4A;WurMErr5sC7 z&Lu2i376;1L@6KL1s1%2sINelb;(#w;2L^X{U2!AG>RU=LK{%ulJus@gE9PriJ{PU8U1S(pX>B@Vy-e0%6wx!U&3I3B)v$1i zizJNF;vF=<4LE3jALwb6R(+|S0I^%e9z|=7^=|T6%ntpAXe!1zAjpQ`+GI_&WG}>V zK2}W~UF`=`gY&KXAodb=b}-;GOUxkBv#1Kf9Jaa|@Z|4L>MkGwqgCPEqBSbNhV!-JC5!_(og_$qFF{@0zdLyU6B?Zkempq* z%a0$@tzLp@rw7L>sr!PGem*$)aQOPw+rjaxH*XH#|0Ug}^j{9&eE2c#?R1i(AASH2 zMhZ{>$dn(CP7eRSqxT;mZJF?;(+F#zyC!Z1eJ~kl!XONeVgPWZIQRw0b9?=CB^2U< zK(ydQ3pH4OAto%ropmIxU(@f2cFCr-c1yOJzMGJtBBVyDQ^&GoD^^isrGETP-*RRm zYWi^s4tE6LW*7W;-9Q#OLC!`Ld^^?(;#d(`00PN?a};U+K(a!?z{}R-v}Li2N6^23 zV>iPuYP~GULp5r}GS^DP2nu%uXVCHUm)V z+Pk0WT~XISAuj)6>$3t^-X{OrdlnXa(Di`spnqlEgpxa&^Yd4J73wgsMR}* zNcmjQMBt)oa0@=FtdBu)J)C9Hxpofj5{cNFtoOr|mRfeIZfwrfnh`p4EaQAm?#K~x zzxSVjc-ujQx<_8$9K%jQh`{}MJDh=%+PsjAa#n5#afZ=#)hX8Q+T*{yjl_%sb z;g`OSlslSUB6@7AAChemY)+0Q@S+x3N+2I`J~3sn=)^Mh$HsL@x81xlN`l(dI-0Hc zOpoHvve)}2(==+*Hg$od+le=E=>8?e8t8{X5_3GBnHiUz_|bIYOP~{9Hcbhy7y9yl zWDWE~0J;ZNJJk{;_Fe1ifw|9!Gg6-nMJKD>W=hl;0os*TE2f#awy(@%8}IIFodA)_ z5q1RpM6K8rlK1u9P`%TO+_u^&$M#j`-i)|2`pxLoom{Iq4%q0bSuD=ZwM#X49J5u1 zO*$4QHx$%iWit0d+#^Gb5&&P|889n@W1<4-|`(=L;Epavn>kkZYdrf-9ssOzBKt(^szu&ZP4Kl=86Ynwzp zcFpWI(=So(V_f}9THrknZiUjO&_!6FE&1A}ZnnDjw$l2;7c(=Y_f=#ov`#CuMQc=L z9dD{Oh)y<8&`eRO;>=lO2*S_-^N$^VgV*VGSaJmH6dZED|XlotwaftHdx|IWPA8_SElSSkyE`;!>J!4 zHrPG=V1o}cPJ}A^jfQ2`J=eHvEGCWA1k4jlaA5^p{S!`u%A394l%M0rc&gDTg)fb` ziuG1i(G9@+0QzTg(8p35#WMu%;}_D&=v(S5^^Qzkr^@vuYW>!^tK!>#drGwtxmNV# zb{?yOY73N>gC$MW_7LR^yHFCX!>}WDZvU3aDz9knP56(0Nkb-~``Apv6G{I>(tia> z|GN>$3S>nZSyj}COqReaQp&Q_*AUCHiZHz_GaZuIn~!p;S=Zj2aQ54*qiria2sWp{ zLK-Ujp+vCJ{t8;GL=nw@Cd)jaY6?wFT98N!t7|=kUQ?M5A=ye4V?4_0!74V7LZh+c zP(`M3Q74r^IUmFn4(#PhLW}M9KMbukdMJ@4XQAHPh))suh_jyVS&5$MJ=rMyqiqzP zXul`g?~ftQEg>GwV|uxs6y-<$(~dsvj1Yv*{xTch-e#j_^r8fRuA&kpNF&-%!akHD zbY9pTxgb2XX(~~+)bvfY+&qH^Ph1Z*3n&cV`{etnM+z!ki9xW|fSQD-D1#33tf+~S zNQ}9dbOjBGJ(svJGkasge=U<>kL|cuuG+_bsR>I+AIYA%I1NwH3N<+2EueTR_Cm>< zwOxr?;jf(t=WY9c!PBvFJ@s?I!yqsPIkEf5fcakkRDf2IcZr&fVy2Z#`V8Fk+**g6WkKYLctc0j(8{bo{49tF)i8QlY7@Jc@;}w z2(1$3EhoT#iOCT32k3?C;bU`)MQ>gHlp?RiB9a8JiY!XGfMaNhK(D$V43}nW0>4&o zvhg1J`jl_9MN3vlsBy8t`gAjxx>&R-C*T2NU)ESfJA^ZSs^zMW1*`Q@DTEkWL@US6 zt>_XCu}cai>)p6f1gJXFXH{~BPXmR%;nAkDPvpLThP4`ai{94*9*#y$N1Hx)mTHZ# z9kmd(aINw{JH~yw9GP~XE*+yYT8&Qny;h;$V#?3`s)y(h9`MWu;VGK=epM=!okZR# z${A}yN|-$e(ClDU>DtF~&Fd^!P=sv-(_?i~%3{$?v~XUZ<|uJ2N;j1XG2}7SNXsT) z)Ehc~P=91=#@$YnNVY~#{^NLhF&sZhH@^k>_m%!kzFJMu(c|OMbnIBl9&ANK9aj}E z+<;wqlZpeCYVWFE#oB$U2V2*Gag#LgUvYyoq|C=dC7R5Wd5EobD&reeH})*^K}DhG z9^MtVTjSLw0mlrtM<9BJyQvnO?iWE~Lt?#u_ZP-hm&2Cu*K!EbQALeY8?F^t4}3Me zsC9KKM{uF{=KJZ}puEx^&JejuH$$>^Cs_sqJuXr7E{902v{xLf zFHUkIs7bXQ#d^UYFNgD%e*4+8C)ap?65{39Z&krr^zP{7VDReohr^@y(Rm#6hHMj7 zkpg#nERPM)yE<)SLncC~5S3^br_Dx!7Wyr2tH~E*SxXWl<&w%$(om@YM*93L0Z1F` z8|wL~$lh^R+R7m}exbU*?8EdH&j5yz+cWjkDU?wsejFCpXAV5bX9oG`e6a|BWSD+A znV{)JkD-Y*@!}qkv$pTD$#)l0ltwj)Z>>Pv9(@tr&M%3pC2RJx^F39>o_}N-fKf0u z$YiICF~=YmSOpof@Nl%TvCcnntu{975+)Y|i%jm`U=*2nx$0A-v}4z^roEPprt@M` zsYyl4R-A^W0g#%Uh5d)TftJ>n==KL8IE{@EIQK)ovEdrg@{?s>nUwfFasjQnisL=I znRWgtcU-IVNV85^<;WihkN_eM(voDHyyD@nCwSU%{2VO2k6LknhjDtBsk({<@Zx+Y|3!w zAaQo}Ox1sZSz&{4-o46{uX=8Dpjij~K5WXAlxLN#(RdPS2CUR&?N2pCycY2JfTQK1 zjga>=^(}4`O_}%mW&kT;2+OnN6l0Rf+efOkJCnnd(XpqF8oQpJn|zXk@ZWV2%DIEK zlc}5>DnWc24KIr6_-+mnU#GX}W>0zs>UPj+W;K5TU11hX{5RuVv*s*0vq0`y%{~|h zkpb)USM|5VALzH}vRo5~ky;gDvHo(C38%l|t@JDsm$eu`&u2oY*{NrNL(jeK*?flE80;DGWhdO>pjK8L8B4w0+ zvS@!4Y|?t-cb&B^6Ybuq{#h$#`lOLKu-R2U$wo$7n&d9~^iLXsD6;X@KKu#hlCPkB z`X{{y(bK*EGLU}v5+e_@mk5!xoA|FE>29Z!1V#QLr~6fQk~>d!1;5M78#029+P3y( zS>wC1(L;^ycZlV*HIG-&>^VEP^?H7lBid`fujwi*V1u6=`5%?@yxelyAaoF z*6PsymD_%^D~jco*LD07``r988&HY9itGGp-jXGanGRPu$)#Ts>GI&U?6SR1N0afF z{(8$ljJ@Dt?41iN#y^?c55JDBU>$#3=ll1|lz;Cr-yv@3V~9sEyBUtP(o6S6!Zc&J z6SAf0jM2(DWb^NMLd%6|s$0L_``v)BXU6+>o2P6R(m%IB18h_96W-2t#`QvpAdwwf3gC%M>Ru0OGpJc`S)otEyg&GtHY*uUzZ(&TKe6bbhlx_It5{7!Kx_dp| zC+JV8IqHZ7*I?8FN)*DO`~-hM`ZLbvmMUkPhWgwFh{EN{+YA7MB^KdHHT%clKE0W7 zcd%%csegB{02zLl7<>my#EA?hc83SAcq2oJEf%eCM*sfg;ME&&cKpl9;fDk9W2x%6 z%*Nwamt%3bi+*?BU`uddXzrT2oQgn#jq4F^nswsa3p@k+kLjeef#%2J0I zP!DW%?GWTjK0ar%N?WVUq-lV|k(+%uk|&kacEA_TOv<6!@Eax?1Xlq}ro~jyUzOS_ zX*b52(MkE}2F_k9KHrPx+3-eOw|!n{V*{I%FANqI;exRf^z{S&@+p9bs8)c8-{ZWP ze}5457A=A9#6@(I7g-zj4OSbs#Z5eEF{-c-6{_eZ8mmJhi0xFze!9y?eU%T=4Yi6% zPQy`Uy5|WD3YCdUh9@C==Rl_+tWIfT$K%9xE1>tY`k|Ul<-a()SUANh6TJhw))-R$ z0la}YQuE7eGang{F}~9zOiuA{TMFw~6Msuo8m-^hpp8^fZLc75uYya_l?lwGK?`@i_6SfgfDwkL|?pptG6=q;OYuCY9y}v z>E}qLs{Je1MkULgE*H+*(UcH3+^61-uG;?LOo<9Ft7{|VOn={G5rsCd z(kSMeA0?1wO|oAEBgJlMpl0N%6?&(0(OPFO|1S>2rE3c6ZvyIX|D{o#g!r3)K&3KC z%l++~;Wu98SuWNoLPiM$^yv zXo=ku)xns{Pqm=dY8p)~z8_C7f5pf6ybrnhS#vM{GwiI*P3bEl`+xl3*%t&6n*lJy z&%<$FP6lP3@39&QZ%B3zl)T>NldMI6va}w1vaaR~FH>lz-*<+kq_y{~jgY_>q-O>jtfyYPT?YTuAU zVm`?D`x#*_MSgMY*s`uLYIL_fxK7q`7FPO zct6Rfc1sgTOoIV$OVJM%lOKIQKN;#V^koto7P>i6$%h3FYQLpAp|FbrKm;T8k%BX` zSSV04J#lL4lYcwt(7JS+Rmk>(8Zivh88Q637wGgH1w@9NQ&cXe=&*)n z46nk|X1!H~;}Q&Qu7_=ssMNAO+d;Nx+h%*Vm1XTVN6Vf_Tf%sfW)1mcJ{n~c4~~*S z(Q`Bfg(8)&5@74vu&8OkzRwhKt~76eZbotl>gdZSwSTOSBDmq`_4RP_(UL^boEc`a z6@hd-Qa!ikQLG)-)}$7qSxc&^;{82FU!Y4y0ZY1fzeVHnb85QCr73PN#XXmqFdEwR=fHHnpKJFE>~M)zr~@**O93TRGV7vZZvzx zdI>2>K7TWeqSI8IG^iP8wk$nRx9)eXO&qD4OI01M?RGWJev6VDadh)Z+U>|+Cltnc zxm>AIs4MM?LWphZI>gmf@U`q>`de~;3BNLsbr1D|j#4&}O4*3i^R_z>J^+iSW?wD8 zu5COCUgJ2^<*l>hgML$+Ve6o9dxuc*@b>om;eX6>C3}~DxE3R5Qx zS8vJS#xvxhLhVa5+;KL*aGZafkj_tZnZeU*lyG&fOI`!$K4Fzh*wNQw+Qrp%Z}t!r z{DlI5?{qq{Z1nFh58%JZX?m$n1*>71K&5P#QmE|B3t*j;X6AM$L5I=M^H8U8_oD1; zyMIFVwp}fI+jeAcD2~>7_@!TwRI2x^qjLaAK2Y2|L zJDms=a+4Q|+u3RBl%!ye7k0=GT~hp--}2CbB3-5UY}F2DtLP*{U!*Qe4{rqiDu?SqSvB@WfJ|IXP=|^D=Ih` z1bAWO$s~E* z1Zk%ScJZFwK%|acOEQ&Nf|7A3C`MjpKx`zS zY*RiC0A6_%>&`GV5($Sc>vbtU|QaM6}|8y;)lFdXXSdz|MDSyB8 z4m49C4od`%O@G)F!X}NJvr3I`1r%EfYPFtJdBg{U?^Y^it9Mlt#UK$b2CemN>&m|x z7a;L&z1vwu%G9`!)sJfRHR?@UHyK4U$G93()_S@1qlARi;XR89Elz?NZpEz$Jph`YfBV|0?lM^53`lg=gl~HhHZ`V15`7#x;{M65&w6n)d^hwL^djh=g9lW)nO0 z2f_C-lYgn8v6Ks+3_=!CE>xqam~Nq%)!i&GChh+y(ndjUmF)2a9&PLg$c*&RJi7*} z75~B;d_|pN*Wcvx@N|-t1Z&~`s4-#h0d_J#&lA@xYJXKguSiWUIXkyw6zL9wI#yNp z!|zeXiw%E=GO3k;-3{4Xo~;-}u3WNky?dc8s~9G0d#5&;Z8Ix0)^ZS^ zh=2BQV+ez`e6&?p&m+1?Xh7lmwB_zoT%spO3r}?PlcNQ6wD6T4`o1X@-@plkE`c(I zvQBUx3j;*soXmC|_i-v49z#T-cf*Oe>jYu#7H-R&1Tec4vv@E%FM(c`(AyO*3fxk@ zcLJ|sh6W+DI-Uc7IUdf2Hz0K>TtY7!<$v>c5Dzn?^I7I8(bDUK>VG$<$m=l7Y$gc9=WQG{P@%ZjzK6#Djtx&;y+W1}-Az>^~%8##34&DrYIz2c! z9ej9qJUBi%_~Gz>qIl2gl=Q(T^?Z>+Oe1`tjKI;`cIYzz_2q_MYi8Hcefhs;vXQQgYZJ#I5LBwNnF!e**l0(Dp-|ALM z`)@$_5SGU72VCLZ6n!fkP+;xv=6}~}&EFsVLhF6-=J3Pd_|?g)cLyKDx5zJU$GLz= z#Nj1_Gpe1_7nC9h3VN=74wIM(F6c5V@b}sOrb!r`FP=X~;Isb?BkupN=$S72Ec##P zWJdMd@o+BoGBxwJX+CL1i%7fgl6aym@{7!D#+G|9U||1qGd{^aifuCc(wCwN2pE6G z19rmJj@k)@ApHi}%`hJa_W=m2v*EOx;NH}KXuiGnEuw(l=*$aQldE7ec9mVMS_l&g{*Kp)|hw^q2C<)p@505f~ zCF%2_@-#w+-3qaMREGM-jN`|=luU&i8|$oZumpm&`bCh!EdvvaO~<+rNjK!me3WD0 zG!kb|pF=ocdun)K9!29Zzm(aI8-9r!_;9$rL1_211r9$La(@np2c;z@tO9?2qo?15 z-%m1~ClTh58TdQ7#hE@-(CU+C zRCOR!_AI(p69Z0?B;+%3%|FA!%5t~=e@>6y({<2Vy_T4qJg;>GvxU_egJ8_3M2ZEJ z%A7W%Gx}yXJ>w@sLXL-%k8%a0OVhl!mplvzHvvbNbPNb9EZ(7})oda-FYxu`-weSE zgm=XCJd-QiLFwK_Ng(xHXQP(S%b{&(`)W45QJ2dM2pb#8%g9;aEwjM1>G~~|!B3(+ z>-oqyg2h6M#k!XP4G0>4@1>+YrQ@J|1Ki}3AIT!5x6^TrPvEZ!EEHW%$9FdnGmKS? z^~H5cXNJ?}dX2M8oc2vz4AgEcfER*pZgvxmW@R{3cUMdF*R)fAUsL#%W;c0k#b-b8 z>+UdSL4|R4|FwqZv1~H~)>*^kg0|=>7xh#ae)H4ag zEA>IPEv#Il$`pKKXRPMSnetz8JlWYFF=);szW02s=F!V<^*Z#8BFsF7 z`1@PQufI~ZJ|ta#a&ZEFWoqTjqwaGC@tlD~rG?8I4a2V>gooHnKZrGUXYo#?KZnKl zAZunofr(M(%UklL5lDQ#oq_>JiRm4_zUX)%L}IW~QKB(#dhgjutb$J+ z+lIy^nbpQB8ogOV-CSPA*ifx{>85_Tp{C6Wk#Tme8J!Du-75}n7k%|=ao zSFu^YL4)fNRPt!phnTd5SOA!>Z+1QW*L;OcQ@df~;Tmkmz_jgzDG&YhthFd$G7}4OdxZcG6 zJv9xNyrNLerh|(GI9$|T*?-B$~}aSbXzh$8Z+tn)TxDB#LLs2`T$>9Jx+tE|G|}MKWVxym{%J? zvPnga!I3~1xu9`pJU(2d1G~nP9<#~=Q05Af?F3+KZ-f=uj&s6>kg4e*jayq$UQNg1 zJZ%myFCo4~q$9BVRSTS0IZW;*?{^)4A;mL<2h~wsN62`66ot1dYf0cyu|cyvoIEPD zujf!rUh1Z7UQB=66ettC5Jl2SWZ4|LzW)NbZ*}a?zSq*t9T@bEGu@mL{4;#G=u_45 z@h`bIZLqVB^aI~8q}kY9MrwlL@$h%#N>GQnTS4R+3M~lVj(>yBTDN!mTZ9pRzQrFn z#@KVMdEpQP%0IBY<=5Fn2~u{Q-@J>3d&S0tRc@-|_nvKU@18Ff5e+U%=wFzd{?|?? z_V!uJ?H8KIueG9QH_xItiXUsfz3p~8zB2(FLo1;CJfBh6TH0{5lgunEHQg*1V_8m0 z$p;iG0tpXlYkwpZOB_u_LF^zRhzFO{lR;Hs89l;^@vd$j>?>pjuso=P8%ou5*HOHh z%x9Of5(qqhSG4ZJ#;Lb+SMR&)uKrSMP}xIVWpuc8_)`W~HlS;;qN55XDeswduLB!Y zN)YJ*WX#+0DClXf`}u^LRHVG|f$SJW zQ|M|T*j9ZrT^cMa4JTjAC#^uom2-;#OX))Oc%`r?=1`Em$A? zIw$Ljn%cy$17K#{*UpDHAo+!OtsmI1UU(;pCm9~d@^>`(<+cQ{ojjyMEq8NoP$ z3MNfu+dwDce}+Gr{4l+|D`5Bf=6M`LYGHN)&uKFti6B&ay3T-f&X0oHv25~0Z{KI1 z)y1LA_?!zR0TJM-x&nWbiV9mhoy2{BhXX+UcAawdY(a^NW8_X=x6=WdCVALGSK2g& zCyj1uORj9cTko7dLpp;kw&@(u9_)3xW6y2F1p!wwf6d41C>-cxI=m>R<2xX}P~RZk zPA;bN`Sd33ZYS4LwWOnhws%(2MmWjD9adZ)PDc49=p~ER!3CA54ydlQlR)tIj#SqP z$hh|-`9qLw*J8ln=E+iCu{}cxqF{yPFL}u`9=vYg1wE43M7AnufWmmJVj0aM;r6vT)h`a zAsc}_0;K{>L&44g{RBIuTsy&rlZp)m$~+tm2uzGPM77QXf`I7-9C6f`d_A0vc&&C$ zf8@cI*Kfm#f^-LvbtG$nB}XNVg4_7E_uI0q9JFexlvfsj<@mqLPf35$ibb>Ch&8R@?b2@|DQ4+l8F;_?exYwvZ zUZ?TnP`eEr82-Z)oow2fi`_W6yw1l0>nP`9>s>}Um9NsiD5lj)oew{q7(2ATq0 zku|bxm9SkJJzI;OS#7_JReWp9f7?+X!U$>yJ@GjY^Fx?5DP7Pl@ltA_JcyK2%ge|gEOZSQUe zS8ccFtQzwMzF1UDL*>>CPlReGddSvoHVKckb?JpiGJP(Z@COSO+ zi|KC-hb}b}>o*JnHrXx9n6#Cqmx3aIb5Vn;1f0^O{c!Tr>4$?i193Kf#^V7<%hV%P zhj7PiY{;9NA37N*Q?|;Ce|t?Gv?}7q`zfe&(YdFT;8_z>Y#;Z!(HmwOSZP^xEdO;_ z=+>`*09b#*``}mEF$sD0>$$V+V*KL%HpgEgD@oDl4zq?r%eGhA6Qz3Q_bD~yX|V0Bnd0Hc(Bv4JSDGyLSNjk>QTi&CB%xG- z3^jBd$6kfzVdA3$g;-t{QUM!lN!Gir9<~CE@0(ZBsi;K0=dibDwzaT0Q)nkBiN*ThO%2()pS0FD)&Yu__%EsG;7@dLhQCmwnSK&GEdesI zmuJJ-7y8WP}*&Ye?dT%Oer8Ekwx%v+|>zq zBN&Y7N2?Zmu7AyPUrk0Q8Emv#4Fgsi=@}$4paqnEO?m-_sji%gIM0eZQVs+!H)0A2JN2)JwY$%YDZ6=rW z0p1-(IPc1#0;+4P<07ah2meXDw-sE(c<(~&v|smdCWs_$G82|{M&(QZZ(yI$?I=WMnhph_e#)}KqJE|Bo#3Ha~Tw)6dmA(lwIP-JPvICjSXi6Gt3$F z%ZtG6e+AKA@%UgoYh%u274wE&EEd3Bl)|t<17yJ86Vwvl!(Y)2adu^Q#ieVygfMVc zWjiG&e_9tn??vA7z7mih*#e70Jjami;7+5I`u>{LMI}+Inf=o8)W>6TWe97KZg$t5 z(%QZx+Kl4Ts%GdR$tsw(s)14P)vRmx!}0C)P~71kvqJgyBUK@*MMX9==US|_0ykz- zlIq&7X|pV!TL>(7YqJ}Fvx8edS%P(z##4aHe^^KWZR$0cQXskI>ho2q1-Zk8%9hWl z8}2U(WynnAtI|ypdlk{SCJ8w{^_n7CW9kKeFtA*>vh>B`ei;`22TIrgSTwgK|A9iz z+kjK5|FBSGu79GCo|$rX)7?q_eh5c4?RGj+`;2tLdOO;cQAjInGM!`*1h2-&gUB1K ze-($#L_U0}B4*D%UJP4cvn>8=zldc8fe31_n454pn-F)d0~&U9FSRczf3m4}0&O>* z;j%i2^E5MTxpT51X;a@HLG0&e(b~dc#pbv+`@T&}2LZSEuYTbkI2E zaSrkzkikqw7`QO? zazUggX$@WBq^JOYK%G(ARw_BSI~OP-_(roq9;VZKPtcY+%dxDRAAeq7zJLrtfQc*Z zGHXTu0j6OVsYSxMZ#%Q(j~;CNWspBOCSy6ZD^12}CeZwdWlbS|1i6L2U+zhnguhSs zTYlx%Ls=K6C)AJy)&sDZ-bz<*Wp}4hE4weKm6lb#7J!CQl{NEXVZGu74y?H6`J92C z`l$+EjiwobKgcJb5|3d;*ISo79tax&6PH*X2t5PnU}Tq=9ta@;d6&8#2qAwdsBk2> zsF^qyAJ7(ret%CEC>;z!%&$vJd=A?4YzWB`GdF*va#ij)y`S6YhIH6 zhQuXOo1;UA3{QfbJ|1&$4J^4Z#j1Ju;PZ8EEYNn91==nO1G<6I@ zC!IWjxK)P)uOnE$tksFpsEiTwHRsFG);APoiG7&ERj$0k5{0@Wd7OWfrc6$qTAW8q zeC|!H-U+;9UEAK>GeHxJ6T$pJw4yyv%fz<+kM9{gX`s|BgJbGpmf_dzOPYbmUZFXc zd{3yUx7jCgSOnP%eg)FZm+RQ54K~TDeGK`ER^59RZH_1n_MddkKs&;1X?oj=8E;wL z=sVTsq2p(~>xnM{XV`xnvpSgqYX=sA#6zsxG2H*CGd4oj9Rsc_eu9!vcYeZkSzTT~ z23C;Xg2g^_bM1#?-i)oeh=i%#%M})a zc8OJ3rbLZlS#D`)*mBMJJ!maGn=X-q!Kb;A@wDXQW1R6idsD z@ibxfZEN%04mf|j{l$C?e={HItwnV0VmkVAYKI$uXEhX7JtS5EIs;(aB-ZNGxL?G) z49B49iDLitbx)AH0%cTsEbUzxwu$C8S;1JtmSgU!(!OL_841B=ZN-giY7nb9WFVRD zcD_r3MtIVQI&2e|?g|Q;*>I-2-Cp7w(2C@(#J5lt$=iR4V^%8CUL=-@tVnrTX{8-9 zaZE#rUmuFO+kLXtehR$&6nObxEAaBF#?#;4ockYcTnzI4V)7Zu?R~z<=6r_rNG`zSJGx+g3|J$$Qo5}R{|IUi} z-KWpLeffWTr`y}w-g)ue?#oC;qK)D`Rq$-HtM&3^TA3&59AB7;Qq1Y~&v`V_wxwM9rj(4P!Y-zk(}Jj=cdMqw_21njrGJTdEu zmncBv1kZv%6MlUvClO0G9FtyKUr?sk?aM45w?u#G=L#fFV-bG{FMPq9h zkzVe;^}PEXOkz65-6ht-M(rwq8jqXiBY%GtH4UZ7vViZmz-`QK+P^)qXn!CUjp(v(9wrVVc|eTi zVE8l$#~itk4Z^1ZSe%ex_93yClz%Nw_o>B^d1bV?@~x$|i~ROYZ~FnWW>Dzwhb({m z$_$w;3%~BU<9Az>B;xou&P_+|uo(7FKYC`|E!m-Na=_nc@Vv(FtO zIK3WIlL%%ym3pl!q6aO7rHwNWQ8gWZ0?))0RRc~CRlKo5{fOxw(q7?yvtMh2XzW7E z46n~}liW4S=)`Hu9kX8|V4~3hrwM=9U8{MeDX8*VdPWL988KQbfgAfoZ$NSN-_5gQ z!?8G_yJ!odFAK#8DUUUnPeHc!34kZ5U??(;yj$3Cl;!}U2M~dAEl5mMAyE>Q2yDoo z5pMq;Sr%2t(bZLv%@c9I*eTEC*W3IiM|LaaRcU@IFLXdX ztR=<*I!%1UvX|oLCYO{Y2rmIrm&7FqA_Sf9wj-D7B?uZVD_HqHMEWD|=lw{KVz?;A zRRDrGcc{Jw1^IS^d|k^bMkn@IluShB@iXz~S(h;;2q6c0H|ZqZY|EEfCI~AU{e3{M zc6^soL6+i|!i`HMtr<=mFBy|J>~oi%CI~$NdzaiM2qJ&3ZJbe zcT}qeIV={{w^;mG*kfx|?6FmjJ+}T(*u%N8ZS=AJPk=u*HoTag0wi|=LO!9G=mBU& z)7IaH#oB*f^;B(_pQ`OgX* zSBg@Ba>~?8K}q`7<4Dq<^mm^0cm7fOJ7o$rPN{T3TKtlwh8l*!b+a3Br!TkLY| z70B3<^j&XT$`7If;BG!-h|8q3-itfI!&5FkkDGtmAtViT)`{>%W){aV`A?PUZ zI1<$<4XiqukK}!?LlD#F*hC$c`4Ajd30xHAZoB%DwldU9cU_Ht)Z|LWnsr3x(1O4n zY8Zd$4om{pX#kW(3kD0Py0WY64^%7=Gv$Xk_D!wSH#cUPnE6QQcOo7BjK3)FcRF~l z8odCSWV1K@&!B&@gs-UJoc6C$3h*EIx1ZFnpVY6P$hUt^ z@(qnnoS0=QO-Jaej8mo{RA4BlGL;sw{F;DKSlLNwbT3RPBP!7fwy&V1QS71RgpG2T z7dt0N#54Yf}n3 z;+7%6yYk7jua|=<2t$8MMTB(VKXh9cCcL?E9k>yZCUQ$>XDwSNF1g}w9!0K@THi^z zrsXkNPoRqDNm#>^MqQHW*aV&gs2SIL^nOrO;2>w|7&8e!FW0v7T0gG3&CVwGD3#Z1;U{WAGCj*Y_j3vgp7AFm}iYx z%|M1lY9_x$!j(%>a4#Wa47ep%Goh#LN|@v5zT5zjx_aqJwC~P=LdY!!#N`NEosLE% zrZ)^f$$HBqbyS9Xnx<#hWfH7S*>m)5KmLhy&+WL}XD+XmOK|E=tE~Q}GB1e8Jp;|N z)9dMH9p#WGa$kRbM%Ja1LUwN0(Y`ws53mF>4hwqBX+oX&31mphEXTL1A;;m`o<=z{ z!Y{rduEm)_X%ruJh zb~C^ny)+{hr8A>)Y7qfeAQx32`cita9i$ggMFXPu+TILT4#g*FGdt+?UPUAo zL%``aNdtf8Rt7dH4`o6zVU~N`AC}SXiUJc>D$n9Fd#+|&Sk|=-h&Cxs1Q^m>nKKpwv*7SqUZGj!Q z=Yz}+AGom*8Y6Ql)J?cI0pe?v+dHlPCm>p#-MG#b$eBmZX{ZE zy|ppINhIwA+^^Lc-GBGQP5pk{6zw@s%bkDT&1GlvtbjV9o6??)dIC{4^u)o?pJ;vW;PipKxM`aQ9JkHh-?ak(@<+6SvM>^?JCs=O^9 z)^T9**p4n9s2HJzsfP13^3@;4!?~*&!?X~fYoZ5UUBqtPSC*rhT}AbQQ`sy5g~0M;+>GSD9^LY_bvo9pm{DryGk z;RaYt&(8??vRLnWX8eZZY+OmFq7tW@H#D}C`2o>A?^5KHWfGW|OEvqy^bFxX z{IIEOIrHA2&Xepi6D%M_eqt^@ew%+&WDUO!okvY1?tDp(;!%5ehlc-%h^Ba3ye_xr(ZyRq>I(R$pPEdwXFCrLTO%GE?#RvxXlw;b6h zpT7fkj3Q(QrmI3uvQ;K0@x&swl8ef6!gny)NlQamF+e<#ir`Dc0AyS;3}b(ld*Q3f z=Jt3h7$rfoN(`&uE8=|6u2)S>}rX9kDIcM@Agn7fL38D*AtJsJQLjxJs6^#nBB&y5cwuHE8IKdvam#jYklwlw$*k_ENg9Deu03DW3+$CixayYJ#9cQI=PlV%YBTPiv$)%Y>22r0U zaA+K)V}GL5NulO|h9k$?|8M9vYAQG=xH3d)S-EBr3s#9futMyBua5|@`y~2$QY3hi zCjD!vR#MEGQYi^$YvB!`n^*WNB=9l0QJ_Sfu*X0un-&(E#cIwA+!82IV+_L}<3t)*^-vOJ)WaI^wVQ2F_iF4SWb>o;w6(NCkpo5E8ueti))2-j=HzM36f?k&VVvw zN|?TdZ*VPjD3;R4khFv%wprE*%yS$kE5tEVbF;5PF-F}^=Rcx`IwWBGoivIp&aROF z+Xb8DaO8&bm%ppp>$pKv?M}faw(ut4B%R*wJ|1vv$k=p@eo6HOD~uyyBs)1 zwAm%MP%YzBUch3ZYQY?4svJJVR@FjV3|2L?&uZygwh_xz8_JE5CW4jP3NSY>pO~8` z=H`jHd17w9J#*8*nr+oMZJ+Y&b8(;*%6=A~)*!_H5afTk4O3FId^7=IQH2w3h3OaA zIgtlj-jWwD?VD)AYiFi!rZ>Up7NhA+- z9TzAPKUjG{hN1|m3&_|HU#DJRR9zag;0RvFgCkI5CS2*sJctV?O=7@~^b3fdvvZ^p zCH-%6=h%Ok|KR-J*_Q)YR`%p9=nhN*el}~1yIJzy_7hK1QRxF;u|qYMJYzS1wze3y z12sGDQ?&Q`9DG976I;^RT8Tr0H)K!wUI*8LtK1842#HFGLS@QNafzC6+{Rm)NkbQF zr*{|E8R=;;KWiqnI!xk_>txAno|dSVc~-6C^z>hzb6PxLDW|6YrnF+t{`DHWuw{^#px)4#yGQ zs+tDQ&i7h&EsKS)d?7=R>v=)iX6bI{zq{>t5&9MEVoF_V(>> zYn^`xpLh9yd)qHzz}%ngnGWjd&a#?zXKrYTVhUM_E2Snr$!J6vf^t6n_!0ImtZu(T zh@#Nrz%%!-@Fkq&OQw6#FO~Ih4Gk&YN=97Uqq$%%@jC?(P?EASbiFPQFF{6wl9s+Y zQ35Amn87w>_AoaY-rjycWI*&y411w8O2~hhKrOmuO|kPL-QG2$5WB)&C+)s45YiRkcBeyW&H501z7}&G1x!y=M~EWOojGR0 zEYyie?@0j0MPJb~Ha00BI}zCSu1KRD5JX9}kf^h^4M&IKOK!bT_DJHFI!!OgLlA#A zm+47!8P>*fxo7aAKn`r-+V-mSBQ!-KnQxR>fO^{c_H^uQ#{o#SEdB0wIFnYSztidX z`EnZjQCHxOweAa;1r9`W+oq}OM;$vCW`uT#zptfF$}SFsa1A;1G}rxJ__p8JSobyv zV0SF-NT{*E{t6<=CdxwE*r^6(huwcB_-0khuTuvSV1n*@GyOcV;1n%rD-Jd9vTL1I z=KRW1H7YY>BhOcx#qbk))|x_`oE0>Z0t!jrYE5b8AAg!kX681VT;}5k%}J1&RoY&b ziYf$*rC`K34D?a!1uwcC-xU!B#+EeS#s&t!D)dvBOhr2U?GQJocvm(*BTLsc z37rf}bize7Vi)l(RWr=6t^BI?@3t>BTcIM+M)ut4r?A|-!wg1Y**Jx75ku=|xBkpUv&YCWiDB!wjH+q>er)qFxtbO3Pu z9}Q%sgF$2k0f^e|@C~2E_hSFfr?)W4!;chRNXasqT>BUgK&qoO?=}@60(ymFp*RYL z5}nNiUc9@F;7t*(-K`f(boqdE$i~J)r&uZ8-{%uSfdhuYsiuDk*c?%A1SB^_@@!vC zX9vT}>y~8$n4lTCZ^4yc(S&L#q2>AJp?%g8O4=883#8xAS|n;+N3(daip{;$6{5*6 zQJq;VNFpq?aFpr|e71VKR^_RdWPx zfx;S9fDM7JV*Y>1Ra`VLz)aQY>4iLlNYNv#x{_9F_X3df=gqG3=3$+^{nkVK;2+_b zb0O;r)zjg&q8u+4Eq6j5&MgO!cbJ3J$U35)pcAMyxro(hzLD1)e^KBBD^nN4!<31F z17YDfiIY_1c%+NI7+Ss9i&_)*k3M}sG@Zw#+y&l`|If}|GPl_ z!?A#dDTsd(Rbd(lv;r!ilS={ByudQia~ETvYE-)^oL8SrG2y5rrGCpzUaCyH5cnZ$fs|Y(ShzY)9KbNxv#z*bD@LV% zf!uEIap*vGsd5sKU8_8NfeIC-iCh~4a`G<3^5}mcP|oQ|oo}p132xG_V*QNxr&Ndo z9GrWvYQat+MLK|#BD!N)HMWXN5GG?hGN#btX>ga=z zW}POjola_X+m*$V-4gA3N8r7z4KBF!4$nFdN~e6>ffyKnB=4pbLwZHG8%I6|orXO9c6X){G; z;zADxwxH<`B4^S{C!ICYLeUZ@oI84W`7pf=8Kx{f_X%iQu2r^b?IyHhmol7aW(Hwv zi9EJ_12?v>1-6|e)`IJ&@;Xp7=dYNE3FuXy5rSoVO&#@fPR3W%6ZUIw)HZ_#@l1cG zvb?0H>a11L;1IOpMzu7v5-C%HPIr4Rk{VT90n@EADDicj)7@@2=yI~cMn9z8orV&_ z*8EyyIdv0!gO^_C$>8P5;N{8S<)72wMLyR7?tVo-zZXAky8;99oWY<`L9ld%ML`fA z%p#Rb%D=&1ZoYro;8=tF z&0w^h3Gc6E6#@>4PF0+4$FrrY^vwIaq!+Q8NTcdxRr(?nI0a~^4^t@9Dsew318(8N z5>Mf;xq^`>9VfIW|3gYhp{k+X4G{sK5v&zNj*qa9nv@h>w zAQJjOBuq_{a_2N^RPVTsyW@XWZcOkEYBQc+X=&&TYdXqTnUb@?hg|3`IyQu`bAFO$?D5-yVJyf&kN2qF9 zN%_E9>)kl5h3UlQQ~i)|E0qRTrS?;R5L6=k#y4vnGEhBYD=#uULwlAXJjb&RN1*_M zbj@pTrQ~8Ixv#R4s5VOZR(2DWtpec;V}$dAj(wyY7OaXCO@$_Q^08i}i5apz|3D=h z8}JvHzXPaGoCqb=ML|$M>C)WL8b-cC+0M(|m_`w0P(Dg7mH3ww@-^17b@6ro&#?J? zbWV~G6il@7PPm#)Z;1FuLo(1_5xZl*WepJ(i6TBkb-x6Lfp%KKLA+F#ZaoMdfAuI` zv(6B(@~(M_ddd&<4OHv{U32dA{hi%T`l8cO-BsHCcK`e)mvLx5)K#h4jegFH{30Lc z^DmKXpvc7ChTnlHkj3pySE0cW=z>x^s2})uopfinrv|Rdg$M5V2~AdrS{iU{BvA=S zkGmc9rF;@~s%6WyUXe^>RIQ>uf4nuSTth9xsf$Ao(>VnD>x3&hmgzW>Hj`5J7|Ms* zlBc=o*^uDb8_lq-rhZxGFIcgK_pn*g;6*K;`VYoDn-h*J>jJEb?sjEsO2^(Mb!wH&n8=OQQHQvSh+xYYbyVM8#%lQc?n zSg(MaaF;VvPq?rl%e;JJOofs>%VTF4#($}_gowe%N?W#9S>Ab|e{5c|@iS$Os65^6 z$Op?38GpJf$fj@j&{*L%yjnD#R%ZvEDZ7vJO!=?=n1^DG29CvW`oYQS_;4io(jT+& zt^c+G#Lf75KDybYGqrh*V3l>$c*Y79v8scI_i#ThMNZ_wHfayw;w0pRiy=F`mH{}a ze+)gq3I!W6CNa{`f1EfV-}>%*_J8%a77LP9^!w~Fd+U53mEU;EUhu&o=)}w5d*wjX z>0xU1H5LC)oUW$Mw|+4QG{^;)cunCdxe_%`isnv^azZvaam(m*=BWwa{G0!(cBv9Up&M7a;W7(neUH~7|gfBNxbhHnToQS?pzvnmdf zR>2Wh)J)()Ebzl@dZPh(&62ixj9N=(ZLuhw51mYQf1JJ8-a5B~+3>y!zFaWrb8Z-yo6_p>HoE)7{)!R$)uf7JELSz45y+T(QR3? zc&X-Ps|~o;ovkf4Tc$VE4E9zOYQv}wM}Bwfd#f#8f5Khe=3V93cDwCd8#>*(K6Gl} z8Zmj!h6$qZ;w>Iqtpl&VMaBCt1wWx2U;U!TRB>-IJe!Y5`VFeG$|TT2#Q8|(9F8pC zXK0iu+lyJifC8c9yNf(0s^XHHMmmHO@b2EsM~Spa6rE`4YFw~6xs@y5{Uy~~uj9IQ zdO3)>fBPk4V?f_9zpGvflIQ_a$2+Ga$y^7TM(-3gsk9aXK^~9q#PYpHU8$l4y4%+g zKCQQ+pH2@>2Cq*JUVS(iygqpQ_B4w3&w_j~Q`LSa?T-Z0%S>PZi*_6=Dt%|T+U|yS zv83tX6_6b33@5+L#GWu?YUhRGGg~0t9~Uf7e~jdnND&!%aX5KR&(qGsl+^ixnA32^ zi`bSt|4PU763;g-Q*rj|d2%_^^|au(Iv#`}JbXRyV3CGS!@f5NNcRsok<#csc=0V;@t!MS34k?_vsB4OJjOHilad-X zIjzY@*+%b4w(+E>{Qr!iawwj?EyA>d+lNXvQc>ovygfZ!rTy!xpcF?BAo zw&TLCxLVtcd0GZ~9_z)|S#f^Zhh;+S1idzzg=j2{+X@PKA?zFJ!y2v?NF`E=e-(eu z#FZb^+2s-!u?9s37ZLs1*igTe#6z)iRU#R;jP2Qo>)WboiR)NZPFd0AY9W2&rQS$D$P|VN(dJut!xR=!`zjv`1ZbESNLEBe zbaHg`E|Q!{`}A^pn=NA$br{#}e@!PJb=)1(`2E`G$)p+|0&`4!yRw&|z}3-%Pw2-rD$j|#CN&KT@-plbnv2;%? z-Q%!y44tw-TqYG54D(gaf3jILx}{*l1BkKo$bqW}9%dWrA@=-HAkP}Mh{M(B7D%W# z8D$sZ&b(wS=6E_97T0Z+5tUk?QUnN{j5ZSuj7L4D(C~z%hNH*BTPqnpT@F$)kPvng zl?xebtdbaO+|s#<6sxpJZDy4EE}IWu4==B?(`@!B=d;RI>qY==e_jIAWQ*a^BwTO}nd24LezWOCYSLXi~ zP;_)cl2Mx_hHCG?YQqcp1?<-G-GyLRAXsy&(r8n9_LPoa${TAGpWJK7@^!3Di*58GBf!8*)@?EcM~i^gASza*(E}47{vEgURoJ!q1+3gIed0Nc65` zC8=hdwk3=pvUEXk%mD zf_Oij{{T!O%#?jW@}L-{0wb6Jm=L_|)%bmF94Q-u{YH|sdt{wc2#E$l4v4e0r)58< zz`Ks%;iq6yeVgFT4s>rj#xlq9`9OF1c}k(?B_f2B&ok3@IVB+G=58WTq;y*777 ztrI1VaL`rH;H&&nhcWDtDHb=p?Mcg9T(DCs!z9T8zXeNI9lf#Fwo)aGT?I=^jKgg= z8>5RTIgU}pQYqB8*B*eKtegTWRY8K`i5dbHA`GT;6s#g7Z8%96xgNRs+*=v$ozXLw zhPJwHf9Y|HWSkO}pg`heGJWMo!R)o|x8pDo9s}p;o&pnN44FIn1)SguGvP?+ToEM*SK>ezt@%`nn$mEz(yF{s* zfA+}P{84ZBWwdu8xYb|xusWQMrnPNO@8;m}(W~`EXUnP;o|GUkWKF%3Yz}vLpt@~U zof6Jf*F-h!s{?xQo50HxAcFQ=PSrbN{E2fIrGB0ZRdSxhr4PjhVj_M;VlFA^8vqC% zId$uP*@;qbRd%B#R0HZ$R&DSV+wSr)yjb_YwzEstG~qm4)3!h}`MedaMUM8K*o-4BFNTk^ z&bc7L{x;1gtw;bDcNYbn+fLFmqs6L~eMk@dRD{~J%EHqK9DFO{vc$gJ1%XM^e`c6& z(%syo;2Wd*yp@6@rNF560HXjsL@o&==6IQir2DWxV!h-@+;lq~ix!e0?!d^u*IAM_ zD_mG7IA~6Zx*{TEH>7-8FdXE!;J>pklB1F*a3q@AM0zu_BWbA1QYJbKTL9E9u7w(V z*7C6avSGMUJnSG%rCBYszGVyDf2?-fBSvW!gfDCf8UrfAn^e;&^rgs>#e$oN!wxx` z{0N(7|3O7@`>{8r_?~T2-wqXA|74@@zZmB~i$#fvD&}gVWnHI|$F@vbvbEER^-=Kn zrqZhQc~LH~T=!S3T|udeMuErPBkc@*I1k~$ew9{B>P6c#tFMy^t z6P8SEg=K6Dij+Qet*V-t2huEK@=Y2!5A~&k`|+4E1jfatuJRgVB9}JrW%Oc#tvI7e zwJ2-9$vAD7FTSU~cCA(u#nXWfQbs?mk{eHQv|^ z_j~EE>4Z*84qf=Xe<{*AmH#eXxt-kei-olW>JzpASVGz}VhIBUn{Q-^jfUmOyJ>7@ z_H=A*yOrujjQT^x(k2+jo0>`l2Tz}tbj5mRBe#|7wpcpczOD75^^E!cU=K0uW#pc- zk#-DR&H|>kCqv##WSN_GlWF|~I?3OwtWKIpp)`39>@+*jf0x(!cqHf}h2-s5`GAum z`xT74C^{T@PKHP})6NU286+RIJvgN`cXZV{CS`v!(r}$7(5dIxNCt8tXPhebsS=(h zB%3{#&KpZA*LR$o57Aw$Tdx9u4tx-x(lZl6SnKCPgo5w{VXXZTgy4re+!OCnq!P^1 z!gfGd{MoWuf3YLdR@8!bwwph>ySdQMsZ!h-uEaj1VHkrcOLmEkK+B*c(yjv|bXnrb z%V6a)2zJGny82>ASK=HQI?vh!=8;Lq1?F?UZS4M~K{cBwOxPsoO+i2jqB-&=fCEMD zBvK|OM&U3@Qmh(?eWWzO%1brTOt%#&(_KNz{+q3}e<{+G-)5CP7dhTZ$H`UHugg%NYf16B;d6Nf^>2);sk^d{{u*ABW=TiMrTPi z<(j!A1>)of(ZQeQIV${E%Apt_3%dU`(Ox9A@c!t{!QlAh=;y;X2PbJX5lu(Q>CwrD zSKq%qe;B+yJpC{@{BZCtjS8_Z;DB$A^J2aUW?d08PY`Dhe7Ls6MLq!>cr%^kxN@{B z?q&L$+3@2jb|sZ5?U7DGw-f;J5j?cZ8rmiaWd3f0Z^VSwH!83%N)1?}DoHeYIh+89 zZc%%7E|n-8X}Mo8!( zE~f0ZME%w;D{0Gtv|~{qWFNIB_9Lch)D1v z%E(T$#?UVfB!2$|D32CY3@vD2(VfW`e;Uf@hTOK5;aTm!4a(o3^ijH(elPNi))~!_ z;5tn0R{~+4s*ugn)NgddA+UXKtT0gW&%UO-q{!Rk7M78s#Wy?E6op(~xu)IeEzQ54 z`qu^wMu>;D->=(g8yl>8x=!`&0<-^v+(2^v8E``TMP0655Sx)`>~c=9AEw|%e_F?~ z;k9s^;5cDZD6i)$(aPF9E9PsGJXxF1z6hMZHlMEj|Lq;wZX7rASEPOrrdK_(mH0{z z27=de5COKcuyQKGFf>vn2|3?{qJENB&$gFA=wW0Vfbm>-i=%n8HIVLWAicE^-dYHM ziG}dpye_$OE$mcnQnyQ{A1|t_Af)Pd2R^aYl~TfXw0~ID@3jSMgHbPH@yN+iafa#A z4-+QzcfJ&sPrF{y0nfYKFMnz1v>#g z$+@9sE@tOu-c_bZf{2()Y1$wJbCD4S&*mZ7J=oBO$Re0p4A<-BhkyKjUuK|RoD~&_ zU(xZg4XO=Vjbgk&1bReLz@-R{$aAP>QfTBw?DT5y#=LhTaw*zUDVWW!` z)YNQh7@F$S@1)`K@K#V>2&RvMtkH*fj=tX_wO|R zhfr9oRIaygsg$q_Uw_H>bwN?ip1EZaprFc~l7~}~Q)vUxwi9%0NG^>SJF#_-`s(;6 z%GTsAYSig&=vu{jb6c`Uv>#i9_e9-KBO_%zA%e-(dGChBuBgQ+A1K_F=OOlLRk2VF zsDi4ApvpYgxX;EYv>2^NlaYmijk)J`qeP2&da?y4aGeO>cYo^5JEa3K)pg~;Ho(hx zT>X~i$Vi%ODIZlaMYBo=q)X7EMIaRqbUeXU6$QEUt&qVAma*(t&Pr3ZotiQb&5NZf zqr2WFo$O;P#xi7&&C0f`V{mDVE~Np7l=Kr8GB6!=1hU-QmF~XO2BO+;5bP-yfGNzK(M_s&Ak?a#Z za(N9r(m3FCG10@kn9U;)NGm7`B3?Th7mBVTRv*2{d?(C@Zc!#c{h-=qdE<~O0tb8g zr$N2{EAKmY)YmN_K~eN4W`!R!AGLsKbECB>XB*$17v|`_oI~5hZ=7i)6@Zr6s=+nPGtw1oS3USQks9d#PSD)*G z3?WF9Pk(#dVGDjt!Fw#GYP%Pdc3zoTG@O^g5@_RD@dM&W+%??D6EaKz1_QL-51NF# zk$~0rFdtPY{SD94Ujx5nd7LM&b^Ev4yMT%83XengOB-UG}ZeoAZAeaLnmVXg}L=#|PD4sO{lm ziOvFUZnBIOseNhuF4Xddjao%?3M}C_m39H0x8C_St7^$UW_d!uHEmDn!Vg={=%40{ zaIQdPb^PjBsg|J_%OpCckVy>tcS*0UQCF)V4)}Y}*3_{2gMl(&b z1r;>|nQgV&81^QpEzoy18+|f+{>hx}X&0!q8bDp{4%jK0v^4{<(zc-trsG6%TA=Y} zjP$h`CPirrPt$u94D}*$a!5hCxjbL%p?fDA7o&f^V=$<(^7itRS*m78WC8@}Z|Hcw zr2yaSeF=C`F|_{_4NANE1PV!15dU_8ud3!ebA~?t0*7(7 zFj0TjGpP5M%V(TO&1f21c)(jUh#T?O)fC#))j>tpQQ{!O?m+kj@9;7lUb+YcuIOC| z6s7t@!`B%{32=qv44|0caz&q@k{c`(Ru}m8>_60G!F~e{iuM|IP^Qn|BS*4j!lU*LZ=VI0&2T6dW4-M^yF)M7rcIb$xmx5p_Y zTDz(MV-GlBo8jRXOXT7KCugjbW>&6R&8GH{Ngs7~MS_qLj=)b)gpYwAZoIi&jSzFr6ay!rqcjrWhGHj}OH_1DJsvwx2765Im|RwSYLm< z38WMhsafstb~uc?Z-&P|cg5-r5<81Ct&3o}b8Tfgl7o}w;>uifup0?-07m?_8>RG+ zW9fwQ>L(bPqJ2cs&aaCAB)k*a`XJ6wY#zPj?duvyEVWtb3HXzpRdYbYV{a1E1$OQcX-zD@cQ@g;^ews>uxS1qY8`&xO%Ht3 zm}5$p!$Y%h$p@A5@IfW_$GhGhw%1=PCJLy(zG?4UVa2;c;(lrjXbr0FAku5gv^)d zTCxRvgeVHUe*?RRPA##}{y5uNUJjRFS_mV5QTFcrVrZ&;k4ADk@U_?s?Y4xMc$uG} zC5^-e;06`X|K6TD>lk?0wgrO*ZS)nI3h_z<49&}kn&ePhUOwC>&by_w76d4>4A6Fa;m92B_h9opugn@`Z1H3$z6G%Kq{IRGxYPCrjoo3EiD}Q&KM7vT3wcP~_BzUT z-0vOJhfIN~p>vGA%H9)-zwRDVt3b6 zHzBBnqi)xKOhZw6sp#qcclZB=w6`8LqOQHYh4i+vGt*P4MU8k2^O zMUEex3o;3!^BIy$pc~n~*r5YlZL=p0O_N*0Y-ARHv6pT(>*7uu4$8B$ha%uT{B?w- zTz1~ApLmjTEevtf$gnOH(|mW{!Au6}5_-n$<|gPxE{}w`8y0NzeJP&w?CY|-V%P+* z@v6?xQCEKV&>~3|dm_3!es!#FYmt$8I@cOu?d^rP*briT)>giV+DpUR+)?Z3qv{Ez zAOHM+@&GI{&0l;Va0T+X`K}UbM(=}fxj`Sk71_J~k4cb9^GVmS$jcOaZ4$Brigg-1 zXd~T%G{1>S#DR(Y-i`n7AJ%z4%?~&Jqfo|FYEh9DV@Yz>MS`=7MFt+T=A~Qc5TBq= zhkboAU3l1g|GjtbyvWWnc((K5&L|AZ&a%6FFO>a zl;9A~$?MC@t1b!O+Q9S_jeTP&pVX)MGJ&5~^M&rBomj_Ac*vI=+@Y()f*(GuBY>`d z9+M#Oav69I=$gx0$ac5V%P*E*x`VSDNF^iQrmkDXmJJWIM@Vh1;ric;Fbt(iQtw9Zi(POOaz1b*p>utN#NHZfg}&yz|Oh_6%?fu zAtZ~pUSuTD-Tg)s$)CDgQQU5H?%qy1s067Ikb+k%x?hjGkJo4|WQ#|!eqXtN){&2` z)>){})ua-cc1Z4Yz6kBlwvgT9<$Y(mWCc=gIe_e%dFwGq+`&Cx~UZ|bVJ$oZ{ zb1l5yxlDN?Y`!Gq;y3%jb4EPnlkXn18>WK|R`KTXlLvp~1M@#